@evanschleret/formforgeclient 1.2.4 → 2.0.0
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 +10 -0
- package/dist/module.cjs +1 -0
- package/dist/module.d.cts +1 -0
- package/dist/module.d.mts +1 -0
- package/dist/module.d.ts +1 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +1 -0
- package/dist/runtime/api/client.js +4 -2
- package/dist/runtime/api/request.d.ts +1 -0
- package/dist/runtime/api/schema.js +4 -4
- package/dist/runtime/assets/formforge.css +1 -0
- package/dist/runtime/composables/index.d.ts +1 -1
- package/dist/runtime/composables/useFormForgeBuilder.d.ts +24 -2
- package/dist/runtime/composables/useFormForgeBuilder.js +299 -43
- package/dist/runtime/composables/useFormForgeForm.js +15 -5
- package/dist/runtime/composables/useFormForgeI18n.d.ts +245 -19
- package/dist/runtime/composables/useFormForgeI18n.js +245 -19
- package/dist/runtime/composables/useFormForgeSubmit.js +31 -9
- package/dist/runtime/index.d.ts +1 -0
- package/dist/runtime/renderers/default/FormForgeBuilder.d.vue.ts +21 -2
- package/dist/runtime/renderers/default/FormForgeBuilder.vue +689 -738
- package/dist/runtime/renderers/default/FormForgeBuilder.vue.d.ts +21 -2
- package/dist/runtime/renderers/default/FormForgeBuilderBlockSettingsModal.d.vue.ts +17 -0
- package/dist/runtime/renderers/default/FormForgeBuilderBlockSettingsModal.vue +32 -0
- package/dist/runtime/renderers/default/FormForgeBuilderBlockSettingsModal.vue.d.ts +17 -0
- package/dist/runtime/renderers/default/FormForgeRenderer.d.vue.ts +3 -4
- package/dist/runtime/renderers/default/FormForgeRenderer.vue +344 -294
- package/dist/runtime/renderers/default/FormForgeRenderer.vue.d.ts +3 -4
- package/dist/runtime/renderers/default/FormForgeRendererField.d.vue.ts +22 -0
- package/dist/runtime/renderers/default/FormForgeRendererField.vue +237 -0
- package/dist/runtime/renderers/default/FormForgeRendererField.vue.d.ts +22 -0
- package/dist/runtime/renderers/default/FormForgeRendererPage.d.vue.ts +18 -0
- package/dist/runtime/renderers/default/FormForgeRendererPage.vue +31 -0
- package/dist/runtime/renderers/default/FormForgeRendererPage.vue.d.ts +18 -0
- package/dist/runtime/renderers/default/FormForgeResponse.vue +4 -3
- package/dist/runtime/renderers/default/builder/FormForgeBuilderAddressFieldsCard.d.vue.ts +11 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderAddressFieldsCard.vue +118 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderAddressFieldsCard.vue.d.ts +11 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderBlockCard.d.vue.ts +46 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderBlockCard.vue +205 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderBlockCard.vue.d.ts +46 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceDisplayField.d.vue.ts +11 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceDisplayField.vue +37 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceDisplayField.vue.d.ts +11 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceOptionsField.d.vue.ts +11 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceOptionsField.vue +195 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceOptionsField.vue.d.ts +11 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderDescriptionField.d.vue.ts +14 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderDescriptionField.vue +91 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderDescriptionField.vue.d.ts +14 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderLogicPanel.d.vue.ts +13 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderLogicPanel.vue +387 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderLogicPanel.vue.d.ts +13 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderQuestionRow.d.vue.ts +44 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderQuestionRow.vue +328 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderQuestionRow.vue.d.ts +44 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderTemporalModeField.d.vue.ts +11 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderTemporalModeField.vue +47 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderTemporalModeField.vue.d.ts +11 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderValidationRulesSection.d.vue.ts +14 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderValidationRulesSection.vue +595 -0
- package/dist/runtime/renderers/default/builder/FormForgeBuilderValidationRulesSection.vue.d.ts +14 -0
- package/dist/runtime/renderers/default/builder/builderFieldHelpers.d.ts +3 -0
- package/dist/runtime/renderers/default/builder/builderFieldHelpers.js +4 -0
- package/dist/runtime/types/index.d.ts +1 -1
- package/dist/runtime/types/management.d.ts +12 -0
- package/dist/runtime/types/schema.d.ts +72 -4
- package/dist/runtime/utils/defaults.d.ts +7 -0
- package/dist/runtime/utils/defaults.js +86 -0
- package/dist/runtime/utils/page-logic.d.ts +24 -0
- package/dist/runtime/utils/page-logic.js +351 -0
- package/dist/runtime/utils/rich-text.d.ts +3 -0
- package/dist/runtime/utils/rich-text.js +72 -0
- package/dist/runtime/utils/schema.d.ts +1 -1
- package/dist/runtime/utils/schema.js +70 -16
- package/dist/runtime/utils/temporal.d.ts +10 -0
- package/dist/runtime/utils/temporal.js +28 -0
- package/dist/runtime/utils/validation.d.ts +5 -0
- package/dist/runtime/utils/validation.js +36 -0
- package/dist/runtime/validation/zod.d.ts +5 -2
- package/dist/runtime/validation/zod.js +563 -54
- package/dist/types.d.mts +2 -0
- package/package.json +18 -14
package/README.md
CHANGED
|
@@ -60,6 +60,16 @@ const route = useRoute()
|
|
|
60
60
|
</template>
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
+
## Playground
|
|
64
|
+
|
|
65
|
+
Run the local playground with:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
bun run playground
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
It mounts `FormForgeBuilder` in `standalone` mode with sample data.
|
|
72
|
+
|
|
63
73
|
## Scoped routes quick example
|
|
64
74
|
|
|
65
75
|
```ts
|
package/dist/module.cjs
CHANGED
|
@@ -39,6 +39,7 @@ const module$1 = kit.defineNuxtModule({
|
|
|
39
39
|
datetimeMode: options.datetimeMode,
|
|
40
40
|
locale: options.locale
|
|
41
41
|
};
|
|
42
|
+
nuxt.options.css.push(resolver.resolve("./runtime/assets/formforge.css"));
|
|
42
43
|
kit.addPlugin(resolver.resolve("./runtime/plugin"));
|
|
43
44
|
kit.addComponent({
|
|
44
45
|
name: "FormForgeRenderer",
|
package/dist/module.d.cts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
2
|
import { FormForgeScopedRouteMap, FormForgeScopeParams, FormForgeUploadMode, FormForgeDatetimeMode } from '../dist/runtime/types/index.js';
|
|
3
|
+
export { FormForgeBuilderExpose } from '../dist/runtime/composables/useFormForgeBuilder.js';
|
|
3
4
|
|
|
4
5
|
interface ModuleOptions {
|
|
5
6
|
baseURL?: string;
|
package/dist/module.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
2
|
import { FormForgeScopedRouteMap, FormForgeScopeParams, FormForgeUploadMode, FormForgeDatetimeMode } from '../dist/runtime/types/index.js';
|
|
3
|
+
export { FormForgeBuilderExpose } from '../dist/runtime/composables/useFormForgeBuilder.js';
|
|
3
4
|
|
|
4
5
|
interface ModuleOptions {
|
|
5
6
|
baseURL?: string;
|
package/dist/module.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
2
|
import { FormForgeScopedRouteMap, FormForgeScopeParams, FormForgeUploadMode, FormForgeDatetimeMode } from '../dist/runtime/types/index.js';
|
|
3
|
+
export { FormForgeBuilderExpose } from '../dist/runtime/composables/useFormForgeBuilder.js';
|
|
3
4
|
|
|
4
5
|
interface ModuleOptions {
|
|
5
6
|
baseURL?: string;
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -36,6 +36,7 @@ const module$1 = defineNuxtModule({
|
|
|
36
36
|
datetimeMode: options.datetimeMode,
|
|
37
37
|
locale: options.locale
|
|
38
38
|
};
|
|
39
|
+
nuxt.options.css.push(resolver.resolve("./runtime/assets/formforge.css"));
|
|
39
40
|
addPlugin(resolver.resolve("./runtime/plugin"));
|
|
40
41
|
addComponent({
|
|
41
42
|
name: "FormForgeRenderer",
|
|
@@ -66,12 +66,14 @@ class FormForgeClientImpl {
|
|
|
66
66
|
}
|
|
67
67
|
withRequestScope(options) {
|
|
68
68
|
const resolvedScope = this.resolveRequestScope(options.scope);
|
|
69
|
-
|
|
69
|
+
const resolvedLocale = options.locale ?? this.config.locale;
|
|
70
|
+
if (resolvedScope === void 0 && resolvedLocale === void 0) {
|
|
70
71
|
return options;
|
|
71
72
|
}
|
|
72
73
|
return {
|
|
73
74
|
...options,
|
|
74
|
-
scope: resolvedScope
|
|
75
|
+
...resolvedScope === void 0 ? {} : { scope: resolvedScope },
|
|
76
|
+
...resolvedLocale === void 0 ? {} : { locale: resolvedLocale }
|
|
75
77
|
};
|
|
76
78
|
}
|
|
77
79
|
async getForm(key, options = {}) {
|
|
@@ -2,6 +2,7 @@ import type { FormForgeScope } from '../types/index.js';
|
|
|
2
2
|
export interface FormForgeRequestOptions {
|
|
3
3
|
endpoint?: string;
|
|
4
4
|
scope?: FormForgeScope;
|
|
5
|
+
locale?: string;
|
|
5
6
|
}
|
|
6
7
|
export declare function applyFormForgeScope(path: string, scope: FormForgeScope | undefined): string;
|
|
7
8
|
export declare function resolveEndpointPath(endpoint: string | undefined, fallback: string, params?: Record<string, string | number>, scope?: FormForgeScope | undefined): string;
|
|
@@ -8,7 +8,7 @@ export async function fetchFormForgeSchema(http, key, options = {}) {
|
|
|
8
8
|
}, options.scope),
|
|
9
9
|
method: "GET"
|
|
10
10
|
});
|
|
11
|
-
return normalizeFormForgeSchema(response.data);
|
|
11
|
+
return normalizeFormForgeSchema(response.data, options.locale);
|
|
12
12
|
}
|
|
13
13
|
export async function fetchFormForgeSchemaVersions(http, key, options = {}) {
|
|
14
14
|
const response = await http({
|
|
@@ -30,7 +30,7 @@ export async function fetchFormForgeSchemaVersion(http, key, version, options =
|
|
|
30
30
|
}, options.scope),
|
|
31
31
|
method: "GET"
|
|
32
32
|
});
|
|
33
|
-
return normalizeFormForgeSchema(response.data);
|
|
33
|
+
return normalizeFormForgeSchema(response.data, options.locale);
|
|
34
34
|
}
|
|
35
35
|
export async function resolveFormForgeSchema(http, key, input = {}, version, options = {}) {
|
|
36
36
|
const fallbackPath = version !== void 0 && version !== "" ? `/forms/${key}/versions/${version}/resolve` : `/forms/${key}/resolve`;
|
|
@@ -50,7 +50,7 @@ export async function resolveFormForgeSchema(http, key, input = {}, version, opt
|
|
|
50
50
|
const data = pickFormForgeDataEnvelope(response.data);
|
|
51
51
|
const schemaValue = data.schema;
|
|
52
52
|
if (isFormForgeJsonObject(schemaValue)) {
|
|
53
|
-
return normalizeFormForgeSchema(schemaValue);
|
|
53
|
+
return normalizeFormForgeSchema(schemaValue, options.locale);
|
|
54
54
|
}
|
|
55
|
-
return normalizeFormForgeSchema(data);
|
|
55
|
+
return normalizeFormForgeSchema(data, options.locale);
|
|
56
56
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "#build/ui.css";@source "../renderers/**/*.{vue,ts}"
|
|
@@ -27,5 +27,5 @@ export type { UseFormForgeResponsesOptions, UseFormForgeResponsesQuerySync, Form
|
|
|
27
27
|
export type { UseFormForgeCategoryOptions, FormForgeCategoryRequestOptions, FormForgeCategoryRefreshOptions, UseFormForgeCategoryOptionsHelperInput } from './useFormForgeCategory.js';
|
|
28
28
|
export type { UseFormForgeManagementOptions, UseFormForgeManagementMutationInputOptions, FormForgeManagementListResult } from './useFormForgeManagement.js';
|
|
29
29
|
export type { UseFormForgeWizardOptions } from './useFormForgeWizard.js';
|
|
30
|
-
export type { UseFormForgeBuilderOptions, FormForgeBuilderDraft } from './useFormForgeBuilder.js';
|
|
30
|
+
export type { UseFormForgeBuilderOptions, FormForgeBuilderDraft, FormForgeBuilderExpose } from './useFormForgeBuilder.js';
|
|
31
31
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
import type { FormForgeClient, FormForgeClientConfig, FormForgeCondition, FormForgeConditionAction, FormForgeConditionMatch, FormForgeConditionOperator, FormForgeConditionTargetType, FormForgeDraftSettings, FormForgeFieldType, FormForgeScope, FormForgePageSchema } from '../types/index.js';
|
|
1
|
+
import type { FormForgeClient, FormForgeClientConfig, FormForgeCondition, FormForgeConditionAction, FormForgeConditionMatch, FormForgeConditionOperator, FormForgeConditionTargetType, FormForgeDraftSettings, FormForgeFieldType, FormForgeJsonObject, FormForgeScope, FormForgePageSchema } from '../types/index.js';
|
|
2
2
|
export interface FormForgeBuilderDraft {
|
|
3
3
|
uuid: string | null;
|
|
4
4
|
key: string | null;
|
|
5
|
+
schema_version: number;
|
|
5
6
|
title: string;
|
|
7
|
+
publish_at?: string | null;
|
|
8
|
+
pause_at?: string | null;
|
|
9
|
+
response_limit?: number | null;
|
|
10
|
+
submission_code_required?: boolean;
|
|
11
|
+
submission_code?: string | null;
|
|
12
|
+
public_url?: string | null;
|
|
6
13
|
category: string | null;
|
|
7
14
|
pages: FormForgePageSchema[];
|
|
8
15
|
conditions: FormForgeCondition[];
|
|
9
16
|
drafts: FormForgeDraftSettings;
|
|
17
|
+
api: FormForgeJsonObject;
|
|
10
18
|
}
|
|
11
19
|
export interface UseFormForgeBuilderOptions {
|
|
12
20
|
formUuid?: string;
|
|
@@ -16,6 +24,8 @@ export interface UseFormForgeBuilderOptions {
|
|
|
16
24
|
initial?: Partial<FormForgeBuilderDraft>;
|
|
17
25
|
autosave?: boolean;
|
|
18
26
|
autosaveDelay?: number;
|
|
27
|
+
autoPublishOnSave?: boolean;
|
|
28
|
+
locale?: string;
|
|
19
29
|
client?: FormForgeClient;
|
|
20
30
|
clientConfig?: FormForgeClientConfig;
|
|
21
31
|
}
|
|
@@ -23,6 +33,12 @@ export interface FormForgeBuilderSaveOptions {
|
|
|
23
33
|
idempotencyKey?: string;
|
|
24
34
|
autoPublish?: boolean;
|
|
25
35
|
}
|
|
36
|
+
export interface FormForgeBuilderExpose {
|
|
37
|
+
save: () => Promise<void>;
|
|
38
|
+
publish: () => Promise<void>;
|
|
39
|
+
unpublish: () => Promise<void>;
|
|
40
|
+
togglePublishState: () => Promise<void>;
|
|
41
|
+
}
|
|
26
42
|
export declare const FORM_FORGE_BUILDER_FIELD_TYPES: FormForgeFieldType[];
|
|
27
43
|
export declare const FORM_FORGE_BUILDER_CONDITION_TARGET_TYPES: FormForgeConditionTargetType[];
|
|
28
44
|
export declare const FORM_FORGE_BUILDER_CONDITION_ACTIONS: FormForgeConditionAction[];
|
|
@@ -39,13 +55,19 @@ export declare function useFormForgeBuilder(options?: UseFormForgeBuilderOptions
|
|
|
39
55
|
};
|
|
40
56
|
autosaveEnabled: any;
|
|
41
57
|
autosaveDelay: any;
|
|
58
|
+
autoPublishOnSave: any;
|
|
42
59
|
lastSavedAt: any;
|
|
43
60
|
publishable: any;
|
|
44
|
-
addPage: () =>
|
|
61
|
+
addPage: (type?: FormForgeFieldType) => FormForgePageSchema;
|
|
45
62
|
removePage: (pageKey: string) => void;
|
|
63
|
+
movePage: (pageKey: string, direction: -1 | 1) => void;
|
|
64
|
+
duplicatePage: (pageKey: string) => void;
|
|
46
65
|
mergePageWithPrevious: (pageKey: string) => void;
|
|
47
66
|
addField: (pageKey: string, type: FormForgeFieldType) => void;
|
|
67
|
+
insertFieldAfter: (pageKey: string, fieldKey: string, type: FormForgeFieldType) => void;
|
|
48
68
|
duplicateField: (pageKey: string, fieldKey: string) => void;
|
|
69
|
+
moveField: (pageKey: string, fieldKey: string, direction: -1 | 1) => void;
|
|
70
|
+
moveFieldToPage: (pageKey: string, fieldKey: string, targetPageKey: string) => void;
|
|
49
71
|
removeField: (pageKey: string, fieldKey: string) => void;
|
|
50
72
|
addCondition: () => void;
|
|
51
73
|
removeCondition: (conditionKey: string) => void;
|