@evanschleret/formforgeclient 1.1.2 → 1.2.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/dist/module.json +1 -1
- package/dist/runtime/api/categories.d.ts +1 -0
- package/dist/runtime/api/categories.js +11 -0
- package/dist/runtime/api/client.d.ts +2 -0
- package/dist/runtime/api/client.js +8 -2
- package/dist/runtime/api/index.d.ts +2 -1
- package/dist/runtime/api/index.js +2 -0
- package/dist/runtime/api/management.d.ts +1 -0
- package/dist/runtime/api/management.js +9 -0
- package/dist/runtime/composables/useFormForgeCategory.d.ts +2 -0
- package/dist/runtime/composables/useFormForgeCategory.js +29 -2
- package/dist/runtime/composables/useFormForgeManagement.d.ts +1 -0
- package/dist/runtime/composables/useFormForgeManagement.js +18 -0
- package/dist/runtime/renderers/default/FormForgeBuilder.d.vue.ts +4 -0
- package/dist/runtime/renderers/default/FormForgeBuilder.vue +28 -2
- package/dist/runtime/renderers/default/FormForgeBuilder.vue.d.ts +4 -0
- package/dist/runtime/renderers/default/FormForgeCategoryCreateModal.d.vue.ts +2 -0
- package/dist/runtime/renderers/default/FormForgeCategoryCreateModal.vue +4 -2
- package/dist/runtime/renderers/default/FormForgeCategoryCreateModal.vue.d.ts +2 -0
- package/dist/runtime/renderers/default/FormForgeResponse.vue +14 -14
- package/package.json +1 -1
package/dist/module.json
CHANGED
|
@@ -2,6 +2,7 @@ import type { FormForgeCategory, FormForgeCategoryCreateInput, FormForgeCategory
|
|
|
2
2
|
import type { FormForgeMutationOptions } from './management.js';
|
|
3
3
|
import { type FormForgeRequestOptions } from './request.js';
|
|
4
4
|
export declare function fetchFormForgeCategories(http: FormForgeHttpAdapter, query?: FormForgeCategoryListQuery, options?: FormForgeRequestOptions): Promise<FormForgeCategoryListResponse>;
|
|
5
|
+
export declare function fetchFormForgeCategoryRoute(http: FormForgeHttpAdapter, routeKey: string, query?: FormForgeCategoryListQuery, options?: FormForgeRequestOptions): Promise<FormForgeCategoryListResponse>;
|
|
5
6
|
export declare function fetchFormForgeCategory(http: FormForgeHttpAdapter, categoryKey: string, options?: FormForgeRequestOptions): Promise<FormForgeCategory>;
|
|
6
7
|
export declare function createFormForgeCategory(http: FormForgeHttpAdapter, input: FormForgeCategoryCreateInput, options?: FormForgeMutationOptions): Promise<FormForgeCategory>;
|
|
7
8
|
export declare function patchFormForgeCategory(http: FormForgeHttpAdapter, categoryKey: string, input: FormForgeCategoryUpdateInput, options?: FormForgeMutationOptions): Promise<FormForgeCategory>;
|
|
@@ -42,6 +42,17 @@ export async function fetchFormForgeCategories(http, query = {}, options = {}) {
|
|
|
42
42
|
});
|
|
43
43
|
return normalizeFormForgeCategoryListResponse(response.data);
|
|
44
44
|
}
|
|
45
|
+
export async function fetchFormForgeCategoryRoute(http, routeKey, query = {}, options = {}) {
|
|
46
|
+
const resolvedQuery = {
|
|
47
|
+
per_page: query.per_page
|
|
48
|
+
};
|
|
49
|
+
const response = await http({
|
|
50
|
+
path: resolveEndpointPath(options.endpoint, `/category-routes/${routeKey}`, { routeKey }, options.scope),
|
|
51
|
+
method: "GET",
|
|
52
|
+
query: resolvedQuery
|
|
53
|
+
});
|
|
54
|
+
return normalizeFormForgeCategoryListResponse(response.data);
|
|
55
|
+
}
|
|
45
56
|
export async function fetchFormForgeCategory(http, categoryKey, options = {}) {
|
|
46
57
|
const response = await http({
|
|
47
58
|
path: resolveEndpointPath(options.endpoint, `/categories/${categoryKey}`, {
|
|
@@ -28,6 +28,7 @@ export interface FormForgeClient {
|
|
|
28
28
|
getResponse(key: string, submissionId: string, options?: FormForgeResponsesRequestOptions): Promise<FormForgeJsonObject>;
|
|
29
29
|
deleteResponse(key: string, submissionId: string, options?: FormForgeResponsesRequestOptions): Promise<FormForgeJsonObject>;
|
|
30
30
|
listForms(includeDeleted?: boolean, options?: FormForgeManagementRequestOptions): Promise<FormForgeManagementForm[]>;
|
|
31
|
+
listFormRoute(routeKey: string, options?: FormForgeManagementRequestOptions): Promise<FormForgeManagementForm[]>;
|
|
31
32
|
createForm(input: FormForgeManagementCreateInput, options?: FormForgeMutationOptions): Promise<FormForgeManagementForm>;
|
|
32
33
|
patchForm(key: string, input: FormForgeManagementPatchInput, options?: FormForgeMutationOptions): Promise<FormForgeManagementForm>;
|
|
33
34
|
publishForm(key: string, options?: FormForgeMutationOptions): Promise<FormForgeManagementForm>;
|
|
@@ -36,6 +37,7 @@ export interface FormForgeClient {
|
|
|
36
37
|
getRevisions(key: string, includeDeleted?: boolean, options?: FormForgeManagementRequestOptions): Promise<FormForgeRevisionSummary[]>;
|
|
37
38
|
getDiff(key: string, fromVersion: number, toVersion: number, options?: FormForgeManagementRequestOptions): Promise<FormForgeDiffResponse>;
|
|
38
39
|
listCategories(query?: FormForgeCategoryListQuery, options?: FormForgeCategoryRequestOptions): Promise<FormForgeCategoryListResponse>;
|
|
40
|
+
listCategoryRoute(routeKey: string, query?: FormForgeCategoryListQuery, options?: FormForgeCategoryRequestOptions): Promise<FormForgeCategoryListResponse>;
|
|
39
41
|
getCategory(categoryKey: string, options?: FormForgeCategoryRequestOptions): Promise<FormForgeCategory>;
|
|
40
42
|
createCategory(input: FormForgeCategoryCreateInput, options?: FormForgeMutationOptions): Promise<FormForgeCategory>;
|
|
41
43
|
patchCategory(categoryKey: string, input: FormForgeCategoryUpdateInput, options?: FormForgeMutationOptions): Promise<FormForgeCategory>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createFormForgeHttpAdapter } from "./http.js";
|
|
2
2
|
import { deleteCurrentFormForgeDraft, fetchCurrentFormForgeDraft, saveFormForgeDraft } from "./drafts.js";
|
|
3
|
-
import { fetchFormForgeDiff, fetchFormForgeForms, fetchFormForgeRevisions, createFormForgeForm, deleteFormForgeForm, patchFormForgeForm, publishFormForgeForm, unpublishFormForgeForm } from "./management.js";
|
|
4
|
-
import { createFormForgeCategory, deleteFormForgeCategory, fetchFormForgeCategories, fetchFormForgeCategory, patchFormForgeCategory } from "./categories.js";
|
|
3
|
+
import { fetchFormForgeDiff, fetchFormForgeFormRoute, fetchFormForgeForms, fetchFormForgeRevisions, createFormForgeForm, deleteFormForgeForm, patchFormForgeForm, publishFormForgeForm, unpublishFormForgeForm } from "./management.js";
|
|
4
|
+
import { createFormForgeCategory, deleteFormForgeCategory, fetchFormForgeCategories, fetchFormForgeCategory, fetchFormForgeCategoryRoute, patchFormForgeCategory } from "./categories.js";
|
|
5
5
|
import { fetchFormForgeSchema, fetchFormForgeSchemaVersion, fetchFormForgeSchemaVersions, resolveFormForgeSchema } from "./schema.js";
|
|
6
6
|
import { deleteFormForgeResponse, fetchFormForgeResponse, fetchFormForgeResponses } from "./responses.js";
|
|
7
7
|
import { submitFormForgeJson, submitFormForgeMultipart } from "./submission.js";
|
|
@@ -116,6 +116,9 @@ class FormForgeClientImpl {
|
|
|
116
116
|
async listForms(includeDeleted = false, options = {}) {
|
|
117
117
|
return fetchFormForgeForms(this.http, includeDeleted, this.withRequestScope(options));
|
|
118
118
|
}
|
|
119
|
+
async listFormRoute(routeKey, options = {}) {
|
|
120
|
+
return fetchFormForgeFormRoute(this.http, routeKey, this.withRequestScope(options));
|
|
121
|
+
}
|
|
119
122
|
async createForm(input, options = {}) {
|
|
120
123
|
return createFormForgeForm(this.http, input, this.withRequestScope(options));
|
|
121
124
|
}
|
|
@@ -140,6 +143,9 @@ class FormForgeClientImpl {
|
|
|
140
143
|
async listCategories(query = {}, options = {}) {
|
|
141
144
|
return fetchFormForgeCategories(this.http, query, this.withRequestScope(options));
|
|
142
145
|
}
|
|
146
|
+
async listCategoryRoute(routeKey, query = {}, options = {}) {
|
|
147
|
+
return fetchFormForgeCategoryRoute(this.http, routeKey, query, this.withRequestScope(options));
|
|
148
|
+
}
|
|
143
149
|
async getCategory(categoryKey, options = {}) {
|
|
144
150
|
return fetchFormForgeCategory(this.http, categoryKey, this.withRequestScope(options));
|
|
145
151
|
}
|
|
@@ -2,7 +2,8 @@ export { createFormForgeClient } from './client.js';
|
|
|
2
2
|
export { resolveFormForgeSchema, fetchFormForgeSchema, fetchFormForgeSchemaVersion, fetchFormForgeSchemaVersions } from './schema.js';
|
|
3
3
|
export { saveFormForgeDraft, fetchCurrentFormForgeDraft, deleteCurrentFormForgeDraft } from './drafts.js';
|
|
4
4
|
export { fetchFormForgeResponses, fetchFormForgeResponse, deleteFormForgeResponse } from './responses.js';
|
|
5
|
-
export {
|
|
5
|
+
export { fetchFormForgeFormRoute } from './management.js';
|
|
6
|
+
export { fetchFormForgeCategories, fetchFormForgeCategoryRoute, fetchFormForgeCategory, createFormForgeCategory, patchFormForgeCategory, deleteFormForgeCategory } from './categories.js';
|
|
6
7
|
export type { FormForgeClient, FormForgeSubmitRequestOptions, FormForgeSubmitMultipartOptions } from './client.js';
|
|
7
8
|
export type { FormForgeMutationOptions, FormForgeManagementRequestOptions } from './management.js';
|
|
8
9
|
export type { FormForgeRequestOptions } from './request.js';
|
|
@@ -2,8 +2,10 @@ export { createFormForgeClient } from "./client.js";
|
|
|
2
2
|
export { resolveFormForgeSchema, fetchFormForgeSchema, fetchFormForgeSchemaVersion, fetchFormForgeSchemaVersions } from "./schema.js";
|
|
3
3
|
export { saveFormForgeDraft, fetchCurrentFormForgeDraft, deleteCurrentFormForgeDraft } from "./drafts.js";
|
|
4
4
|
export { fetchFormForgeResponses, fetchFormForgeResponse, deleteFormForgeResponse } from "./responses.js";
|
|
5
|
+
export { fetchFormForgeFormRoute } from "./management.js";
|
|
5
6
|
export {
|
|
6
7
|
fetchFormForgeCategories,
|
|
8
|
+
fetchFormForgeCategoryRoute,
|
|
7
9
|
fetchFormForgeCategory,
|
|
8
10
|
createFormForgeCategory,
|
|
9
11
|
patchFormForgeCategory,
|
|
@@ -10,6 +10,7 @@ export interface FormForgeManagementRequestOptions extends FormForgeRequestOptio
|
|
|
10
10
|
}
|
|
11
11
|
export declare function createFormForgeForm(http: FormForgeHttpAdapter, input: FormForgeManagementCreateInput, options?: FormForgeMutationOptions): Promise<FormForgeManagementForm>;
|
|
12
12
|
export declare function fetchFormForgeForms(http: FormForgeHttpAdapter, includeDeleted?: boolean, options?: FormForgeManagementRequestOptions): Promise<FormForgeManagementForm[]>;
|
|
13
|
+
export declare function fetchFormForgeFormRoute(http: FormForgeHttpAdapter, routeKey: string, options?: FormForgeManagementRequestOptions): Promise<FormForgeManagementForm[]>;
|
|
13
14
|
export declare function patchFormForgeForm(http: FormForgeHttpAdapter, key: string, input: FormForgeManagementPatchInput, options?: FormForgeMutationOptions): Promise<FormForgeManagementForm>;
|
|
14
15
|
export declare function publishFormForgeForm(http: FormForgeHttpAdapter, key: string, options?: FormForgeMutationOptions): Promise<FormForgeManagementForm>;
|
|
15
16
|
export declare function unpublishFormForgeForm(http: FormForgeHttpAdapter, key: string, options?: FormForgeMutationOptions): Promise<FormForgeManagementForm>;
|
|
@@ -92,6 +92,15 @@ export async function fetchFormForgeForms(http, includeDeleted = false, options
|
|
|
92
92
|
});
|
|
93
93
|
return normalizeFormsList(response.data);
|
|
94
94
|
}
|
|
95
|
+
export async function fetchFormForgeFormRoute(http, routeKey, options = {}) {
|
|
96
|
+
const filters = options.filters ?? {};
|
|
97
|
+
const response = await http({
|
|
98
|
+
path: resolveEndpointPath(options.endpoint, `/form-routes/${routeKey}`, { routeKey }, options.scope),
|
|
99
|
+
method: "GET",
|
|
100
|
+
query: filters
|
|
101
|
+
});
|
|
102
|
+
return normalizeFormsList(response.data);
|
|
103
|
+
}
|
|
95
104
|
export async function patchFormForgeForm(http, key, input, options = {}) {
|
|
96
105
|
const response = await http({
|
|
97
106
|
path: resolveEndpointPath(options.endpoint, `/forms/${key}`, {
|
|
@@ -4,6 +4,7 @@ import type { FormForgeMutationOptions } from '../api/management.js';
|
|
|
4
4
|
export interface UseFormForgeCategoryOptions {
|
|
5
5
|
immediate?: boolean;
|
|
6
6
|
initialQuery?: FormForgeCategoryListQuery;
|
|
7
|
+
categoryRouteKey?: string;
|
|
7
8
|
endpoint?: string;
|
|
8
9
|
scope?: FormForgeScope;
|
|
9
10
|
client?: FormForgeClient;
|
|
@@ -34,6 +35,7 @@ export declare function useFormForgeCategory(options?: UseFormForgeCategoryOptio
|
|
|
34
35
|
lastListScope: any;
|
|
35
36
|
lastCategoryKey: any;
|
|
36
37
|
listCategories: (query?: FormForgeCategoryListQuery, requestOptions?: FormForgeCategoryRequestOptions) => Promise<FormForgeCategoryListResponse>;
|
|
38
|
+
listCategoryRoute: (routeKey: string, query?: FormForgeCategoryListQuery, requestOptions?: FormForgeCategoryRequestOptions) => Promise<FormForgeCategoryListResponse>;
|
|
37
39
|
getCategory: (categoryKey: string, requestOptions?: FormForgeCategoryRequestOptions) => Promise<FormForgeCategory>;
|
|
38
40
|
createCategory: (input: FormForgeCategoryCreateInput, options?: FormForgeMutationOptions) => Promise<FormForgeCategory>;
|
|
39
41
|
patchCategory: (categoryKey: string, input: FormForgeCategoryUpdateInput, options?: FormForgeMutationOptions) => Promise<FormForgeCategory>;
|
|
@@ -83,6 +83,28 @@ export function useFormForgeCategory(options = {}) {
|
|
|
83
83
|
return response;
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
|
+
async function listCategoryRoute(routeKey, query = {}, requestOptions = {}) {
|
|
87
|
+
return withLoading(async () => {
|
|
88
|
+
const resolvedQuery = {
|
|
89
|
+
...lastListQuery.value,
|
|
90
|
+
...query
|
|
91
|
+
};
|
|
92
|
+
const endpoint = resolveEndpoint(requestOptions);
|
|
93
|
+
const scope = resolveScope(requestOptions);
|
|
94
|
+
const response = await client.listCategoryRoute(routeKey, resolvedQuery, {
|
|
95
|
+
endpoint,
|
|
96
|
+
scope
|
|
97
|
+
});
|
|
98
|
+
list.value = response.data;
|
|
99
|
+
lastMeta.value = response.meta;
|
|
100
|
+
lastLinks.value = response.links;
|
|
101
|
+
lastListQuery.value = resolvedQuery;
|
|
102
|
+
lastListEndpoint.value = endpoint;
|
|
103
|
+
lastListScope.value = scope;
|
|
104
|
+
lastMode.value = "list";
|
|
105
|
+
return response;
|
|
106
|
+
});
|
|
107
|
+
}
|
|
86
108
|
async function getCategory(categoryKey, requestOptions = {}) {
|
|
87
109
|
return withLoading(async () => {
|
|
88
110
|
const response = await client.getCategory(categoryKey, {
|
|
@@ -159,10 +181,14 @@ export function useFormForgeCategory(options = {}) {
|
|
|
159
181
|
});
|
|
160
182
|
}
|
|
161
183
|
if (immediateLoad) {
|
|
162
|
-
|
|
184
|
+
const loader = typeof options.categoryRouteKey === "string" && options.categoryRouteKey !== "" ? listCategoryRoute(options.categoryRouteKey, options.initialQuery, {
|
|
163
185
|
endpoint: options.endpoint,
|
|
164
186
|
scope: options.scope
|
|
165
|
-
}).
|
|
187
|
+
}) : listCategories(options.initialQuery, {
|
|
188
|
+
endpoint: options.endpoint,
|
|
189
|
+
scope: options.scope
|
|
190
|
+
});
|
|
191
|
+
loader.catch(() => {
|
|
166
192
|
});
|
|
167
193
|
}
|
|
168
194
|
return {
|
|
@@ -182,6 +208,7 @@ export function useFormForgeCategory(options = {}) {
|
|
|
182
208
|
lastListScope,
|
|
183
209
|
lastCategoryKey,
|
|
184
210
|
listCategories,
|
|
211
|
+
listCategoryRoute,
|
|
185
212
|
getCategory,
|
|
186
213
|
createCategory,
|
|
187
214
|
patchCategory,
|
|
@@ -26,6 +26,7 @@ export declare function useFormForgeManagement(options?: UseFormForgeManagementO
|
|
|
26
26
|
lastListScope: any;
|
|
27
27
|
lastListFilters: any;
|
|
28
28
|
listForms: (includeDeleted?: boolean, options?: FormForgeManagementRequestOptions) => Promise<FormForgeManagementForm[]>;
|
|
29
|
+
listFormRoute: (routeKey: string, options?: FormForgeManagementRequestOptions) => Promise<FormForgeManagementForm[]>;
|
|
29
30
|
refreshForms: () => Promise<FormForgeManagementForm[]>;
|
|
30
31
|
refresh: () => Promise<FormForgeManagementForm[]>;
|
|
31
32
|
createForm: (input: FormForgeManagementCreateInput, options?: UseFormForgeManagementMutationOptions) => Promise<FormForgeManagementForm>;
|
|
@@ -83,6 +83,23 @@ export function useFormForgeManagement(options = {}) {
|
|
|
83
83
|
return response;
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
|
+
async function listFormRoute(routeKey, options2 = {}) {
|
|
87
|
+
return withLoading(async () => {
|
|
88
|
+
const endpoint = resolveRequestEndpoint(options2.endpoint);
|
|
89
|
+
const scope = resolveRequestScope(options2.scope);
|
|
90
|
+
const filters = options2.filters ?? {};
|
|
91
|
+
const response = await client.listFormRoute(routeKey, {
|
|
92
|
+
endpoint,
|
|
93
|
+
scope,
|
|
94
|
+
filters
|
|
95
|
+
});
|
|
96
|
+
forms.value = response;
|
|
97
|
+
lastListEndpoint.value = endpoint;
|
|
98
|
+
lastListScope.value = scope;
|
|
99
|
+
lastListFilters.value = filters;
|
|
100
|
+
return response;
|
|
101
|
+
});
|
|
102
|
+
}
|
|
86
103
|
async function refreshForms() {
|
|
87
104
|
return listForms(lastListIncludeDeleted.value, {
|
|
88
105
|
endpoint: lastListEndpoint.value,
|
|
@@ -140,6 +157,7 @@ export function useFormForgeManagement(options = {}) {
|
|
|
140
157
|
lastListScope,
|
|
141
158
|
lastListFilters,
|
|
142
159
|
listForms,
|
|
160
|
+
listFormRoute,
|
|
143
161
|
refreshForms,
|
|
144
162
|
refresh: refreshForms,
|
|
145
163
|
createForm,
|
|
@@ -5,6 +5,8 @@ interface Props {
|
|
|
5
5
|
endpoint?: string;
|
|
6
6
|
loadFormKey?: string;
|
|
7
7
|
loadFormVersion?: string;
|
|
8
|
+
formRouteKey?: string;
|
|
9
|
+
categoryRouteKey?: string;
|
|
8
10
|
locale?: string;
|
|
9
11
|
modelValue?: Partial<FormForgeBuilderDraft>;
|
|
10
12
|
autosave?: boolean;
|
|
@@ -31,10 +33,12 @@ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {},
|
|
|
31
33
|
readonly: boolean;
|
|
32
34
|
locale: string;
|
|
33
35
|
endpoint: string;
|
|
36
|
+
categoryRouteKey: string;
|
|
34
37
|
formUuid: string;
|
|
35
38
|
formKey: string;
|
|
36
39
|
loadFormKey: string;
|
|
37
40
|
loadFormVersion: string;
|
|
41
|
+
formRouteKey: string;
|
|
38
42
|
modelValue: Partial<FormForgeBuilderDraft>;
|
|
39
43
|
autosave: boolean;
|
|
40
44
|
autosaveDelay: number;
|
|
@@ -19,6 +19,8 @@ const props = defineProps({
|
|
|
19
19
|
endpoint: { type: String, required: false, default: void 0 },
|
|
20
20
|
loadFormKey: { type: String, required: false, default: void 0 },
|
|
21
21
|
loadFormVersion: { type: String, required: false, default: void 0 },
|
|
22
|
+
formRouteKey: { type: String, required: false, default: void 0 },
|
|
23
|
+
categoryRouteKey: { type: String, required: false, default: void 0 },
|
|
22
24
|
locale: { type: String, required: false, default: void 0 },
|
|
23
25
|
modelValue: { type: Object, required: false, default: void 0 },
|
|
24
26
|
autosave: { type: Boolean, required: false, default: true },
|
|
@@ -56,7 +58,8 @@ const categoryManager = useFormForgeCategory({
|
|
|
56
58
|
initialQuery: {
|
|
57
59
|
per_page: 200
|
|
58
60
|
},
|
|
59
|
-
endpoint: props.endpoint
|
|
61
|
+
endpoint: props.endpoint,
|
|
62
|
+
categoryRouteKey: props.categoryRouteKey
|
|
60
63
|
});
|
|
61
64
|
const categoryOptions = useFormForgeCategoryOptions({
|
|
62
65
|
source: categoryManager,
|
|
@@ -472,6 +475,17 @@ async function loadFormIntoBuilder(key, version) {
|
|
|
472
475
|
}
|
|
473
476
|
}
|
|
474
477
|
}
|
|
478
|
+
async function loadFormRouteIntoBuilder(routeKey, version) {
|
|
479
|
+
const forms = await builder.client.listFormRoute(routeKey, {
|
|
480
|
+
endpoint: props.endpoint
|
|
481
|
+
});
|
|
482
|
+
const first = forms[0];
|
|
483
|
+
const key = typeof first?.key === "string" ? first.key : "";
|
|
484
|
+
if (key === "") {
|
|
485
|
+
return;
|
|
486
|
+
}
|
|
487
|
+
await loadFormIntoBuilder(key, version);
|
|
488
|
+
}
|
|
475
489
|
function addField(page, type) {
|
|
476
490
|
builder.addField(page.page_key, type);
|
|
477
491
|
builder.normalizeFieldLocations();
|
|
@@ -674,7 +688,8 @@ async function openCategoryCreateModal() {
|
|
|
674
688
|
});
|
|
675
689
|
const result = await createCategoryModal.open({
|
|
676
690
|
locale: props.locale,
|
|
677
|
-
endpoint: props.endpoint
|
|
691
|
+
endpoint: props.endpoint,
|
|
692
|
+
categoryRouteKey: props.categoryRouteKey
|
|
678
693
|
});
|
|
679
694
|
if (!isFormForgeCategory(result)) {
|
|
680
695
|
return;
|
|
@@ -741,6 +756,17 @@ watch(() => [props.loadFormKey, props.loadFormVersion], ([key, version]) => {
|
|
|
741
756
|
}, {
|
|
742
757
|
immediate: true
|
|
743
758
|
});
|
|
759
|
+
watch(() => [props.formRouteKey, props.loadFormKey, props.loadFormVersion], ([routeKey, loadKey, version]) => {
|
|
760
|
+
if (typeof loadKey === "string" && loadKey !== "") {
|
|
761
|
+
return;
|
|
762
|
+
}
|
|
763
|
+
if (typeof routeKey !== "string" || routeKey === "") {
|
|
764
|
+
return;
|
|
765
|
+
}
|
|
766
|
+
loadFormRouteIntoBuilder(routeKey, version);
|
|
767
|
+
}, {
|
|
768
|
+
immediate: true
|
|
769
|
+
});
|
|
744
770
|
watch(() => safePages.value, (pages) => {
|
|
745
771
|
syncSelectionWithDraft(pages);
|
|
746
772
|
nextTick(() => {
|
|
@@ -5,6 +5,8 @@ interface Props {
|
|
|
5
5
|
endpoint?: string;
|
|
6
6
|
loadFormKey?: string;
|
|
7
7
|
loadFormVersion?: string;
|
|
8
|
+
formRouteKey?: string;
|
|
9
|
+
categoryRouteKey?: string;
|
|
8
10
|
locale?: string;
|
|
9
11
|
modelValue?: Partial<FormForgeBuilderDraft>;
|
|
10
12
|
autosave?: boolean;
|
|
@@ -31,10 +33,12 @@ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {},
|
|
|
31
33
|
readonly: boolean;
|
|
32
34
|
locale: string;
|
|
33
35
|
endpoint: string;
|
|
36
|
+
categoryRouteKey: string;
|
|
34
37
|
formUuid: string;
|
|
35
38
|
formKey: string;
|
|
36
39
|
loadFormKey: string;
|
|
37
40
|
loadFormVersion: string;
|
|
41
|
+
formRouteKey: string;
|
|
38
42
|
modelValue: Partial<FormForgeBuilderDraft>;
|
|
39
43
|
autosave: boolean;
|
|
40
44
|
autosaveDelay: number;
|
|
@@ -2,6 +2,7 @@ import type { FormForgeCategory } from '../../types/index.js';
|
|
|
2
2
|
interface Props {
|
|
3
3
|
locale?: string;
|
|
4
4
|
endpoint?: string;
|
|
5
|
+
categoryRouteKey?: string;
|
|
5
6
|
}
|
|
6
7
|
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
7
8
|
close: (value: FormForgeCategory | null) => any;
|
|
@@ -10,6 +11,7 @@ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {},
|
|
|
10
11
|
}>, {
|
|
11
12
|
locale: string;
|
|
12
13
|
endpoint: string;
|
|
14
|
+
categoryRouteKey: string;
|
|
13
15
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
16
|
declare const _default: typeof __VLS_export;
|
|
15
17
|
export default _default;
|
|
@@ -4,7 +4,8 @@ import { useFormForgeCategory } from "../../composables/useFormForgeCategory";
|
|
|
4
4
|
import { useFormForgeI18n } from "../../composables/useFormForgeI18n";
|
|
5
5
|
const props = defineProps({
|
|
6
6
|
locale: { type: String, required: false, default: void 0 },
|
|
7
|
-
endpoint: { type: String, required: false, default: void 0 }
|
|
7
|
+
endpoint: { type: String, required: false, default: void 0 },
|
|
8
|
+
categoryRouteKey: { type: String, required: false, default: void 0 }
|
|
8
9
|
});
|
|
9
10
|
const emit = defineEmits(["close"]);
|
|
10
11
|
const { t } = useFormForgeI18n({
|
|
@@ -12,7 +13,8 @@ const { t } = useFormForgeI18n({
|
|
|
12
13
|
});
|
|
13
14
|
const categoryManager = useFormForgeCategory({
|
|
14
15
|
immediate: false,
|
|
15
|
-
endpoint: props.endpoint
|
|
16
|
+
endpoint: props.endpoint,
|
|
17
|
+
categoryRouteKey: props.categoryRouteKey
|
|
16
18
|
});
|
|
17
19
|
const name = ref("");
|
|
18
20
|
const description = ref("");
|
|
@@ -2,6 +2,7 @@ import type { FormForgeCategory } from '../../types/index.js';
|
|
|
2
2
|
interface Props {
|
|
3
3
|
locale?: string;
|
|
4
4
|
endpoint?: string;
|
|
5
|
+
categoryRouteKey?: string;
|
|
5
6
|
}
|
|
6
7
|
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
7
8
|
close: (value: FormForgeCategory | null) => any;
|
|
@@ -10,6 +11,7 @@ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {},
|
|
|
10
11
|
}>, {
|
|
11
12
|
locale: string;
|
|
12
13
|
endpoint: string;
|
|
14
|
+
categoryRouteKey: string;
|
|
13
15
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
16
|
declare const _default: typeof __VLS_export;
|
|
15
17
|
export default _default;
|
|
@@ -468,7 +468,7 @@ watch(
|
|
|
468
468
|
<div class="w-full">
|
|
469
469
|
<p
|
|
470
470
|
v-if="loading"
|
|
471
|
-
class="text-sm text-
|
|
471
|
+
class="text-sm text-default"
|
|
472
472
|
>
|
|
473
473
|
{{ t("response.loading") }}
|
|
474
474
|
</p>
|
|
@@ -482,7 +482,7 @@ watch(
|
|
|
482
482
|
|
|
483
483
|
<p
|
|
484
484
|
v-else-if="responsePages.length === 0"
|
|
485
|
-
class="text-sm text-
|
|
485
|
+
class="text-sm text-default"
|
|
486
486
|
>
|
|
487
487
|
{{ t("response.empty") }}
|
|
488
488
|
</p>
|
|
@@ -504,12 +504,12 @@ watch(
|
|
|
504
504
|
class="space-y-4"
|
|
505
505
|
>
|
|
506
506
|
<div class="space-y-1">
|
|
507
|
-
<h3 class="text-base font-semibold text-
|
|
507
|
+
<h3 class="text-base font-semibold text-default">
|
|
508
508
|
{{ page.title || t("response.page.fallback", { index: pageIndex + 1 }) }}
|
|
509
509
|
</h3>
|
|
510
510
|
<p
|
|
511
511
|
v-if="typeof page.description === 'string' && page.description.trim() !== ''"
|
|
512
|
-
class="text-sm text-
|
|
512
|
+
class="text-sm text-default"
|
|
513
513
|
>
|
|
514
514
|
{{ page.description }}
|
|
515
515
|
</p>
|
|
@@ -525,13 +525,13 @@ watch(
|
|
|
525
525
|
v-if="isLineLayout"
|
|
526
526
|
class="grid grid-cols-1 gap-2 md:grid-cols-[minmax(0,1fr)_minmax(0,2fr)] md:gap-6"
|
|
527
527
|
>
|
|
528
|
-
<p class="whitespace-pre-wrap text-sm font-medium text-
|
|
528
|
+
<p class="whitespace-pre-wrap text-sm font-medium text-default">
|
|
529
529
|
{{ item.question }}
|
|
530
530
|
</p>
|
|
531
531
|
|
|
532
532
|
<div
|
|
533
533
|
v-if="item.answer.kind === 'text'"
|
|
534
|
-
class="whitespace-pre-wrap text-sm text-
|
|
534
|
+
class="whitespace-pre-wrap text-sm text-default"
|
|
535
535
|
>
|
|
536
536
|
{{ item.answer.value }}
|
|
537
537
|
</div>
|
|
@@ -561,16 +561,16 @@ watch(
|
|
|
561
561
|
<UIcon
|
|
562
562
|
v-else
|
|
563
563
|
name="i-lucide-file"
|
|
564
|
-
class="h-5 w-5 shrink-0 text-
|
|
564
|
+
class="h-5 w-5 shrink-0 text-default"
|
|
565
565
|
/>
|
|
566
566
|
|
|
567
567
|
<div class="min-w-0 flex-1">
|
|
568
|
-
<p class="truncate text-sm text-
|
|
568
|
+
<p class="truncate text-sm text-default">
|
|
569
569
|
{{ file.name }}
|
|
570
570
|
</p>
|
|
571
571
|
<p
|
|
572
572
|
v-if="file.mimeType"
|
|
573
|
-
class="text-xs text-
|
|
573
|
+
class="text-xs text-default"
|
|
574
574
|
>
|
|
575
575
|
{{ file.mimeType }}
|
|
576
576
|
</p>
|
|
@@ -622,13 +622,13 @@ watch(
|
|
|
622
622
|
v-else
|
|
623
623
|
class="space-y-1"
|
|
624
624
|
>
|
|
625
|
-
<p class="whitespace-pre-wrap text-sm font-medium text-
|
|
625
|
+
<p class="whitespace-pre-wrap text-sm font-medium text-default">
|
|
626
626
|
{{ item.question }}
|
|
627
627
|
</p>
|
|
628
628
|
|
|
629
629
|
<p
|
|
630
630
|
v-if="item.answer.kind === 'text'"
|
|
631
|
-
class="whitespace-pre-wrap text-sm text-
|
|
631
|
+
class="whitespace-pre-wrap text-sm text-default"
|
|
632
632
|
>
|
|
633
633
|
{{ item.answer.value }}
|
|
634
634
|
</p>
|
|
@@ -658,16 +658,16 @@ watch(
|
|
|
658
658
|
<UIcon
|
|
659
659
|
v-else
|
|
660
660
|
name="i-lucide-file"
|
|
661
|
-
class="h-5 w-5 shrink-0 text-
|
|
661
|
+
class="h-5 w-5 shrink-0 text-default"
|
|
662
662
|
/>
|
|
663
663
|
|
|
664
664
|
<div class="min-w-0 flex-1">
|
|
665
|
-
<p class="truncate text-sm text-
|
|
665
|
+
<p class="truncate text-sm text-default">
|
|
666
666
|
{{ file.name }}
|
|
667
667
|
</p>
|
|
668
668
|
<p
|
|
669
669
|
v-if="file.mimeType"
|
|
670
|
-
class="text-xs text-
|
|
670
|
+
class="text-xs text-default"
|
|
671
671
|
>
|
|
672
672
|
{{ file.mimeType }}
|
|
673
673
|
</p>
|