@ankhorage/studio 5.6.0 → 5.7.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 +1 -1
- package/apm/update.json +1 -1
- package/dist/features/authoring-engine/adapters/outbound/resolveModuleAdminAuthoring.d.ts +8 -0
- package/dist/features/authoring-engine/adapters/outbound/resolveModuleAdminAuthoring.d.ts.map +1 -0
- package/dist/features/authoring-engine/adapters/outbound/resolveModuleAdminAuthoring.js +40 -0
- package/dist/features/authoring-engine/adapters/outbound/resolveModuleAdminAuthoring.js.map +1 -0
- package/dist/ui/admin/pages/ModuleDetailAdminPage.d.ts.map +1 -1
- package/dist/ui/admin/pages/ModuleDetailAdminPage.js +29 -18
- package/dist/ui/admin/pages/ModuleDetailAdminPage.js.map +1 -1
- package/package.json +1 -1
- package/dist/moduleAdminModel.d.ts +0 -25
- package/dist/moduleAdminModel.d.ts.map +0 -1
- package/dist/moduleAdminModel.js +0 -26
- package/dist/moduleAdminModel.js.map +0 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
# @ankhorage/studio
|
|
5
5
|
|
|
6
|
-
         
|
|
7
7
|
|
|
8
8
|
Studio authoring package for Ankhorage apps
|
|
9
9
|
|
package/apm/update.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"protocolVersion": 1,
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"owner": { "name": "@ankhorage/studio", "version": "5.
|
|
4
|
+
"owner": { "name": "@ankhorage/studio", "version": "5.7.0" },
|
|
5
5
|
"history": {
|
|
6
6
|
"supported": [{ "sourceRange": ">=2.5.7 <3.0.0", "mode": "no-migration" }],
|
|
7
7
|
"unsupported": [],
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { StudioModuleAdminContribution } from '../../../../moduleAdminContracts';
|
|
2
|
+
import type { AuthoringPresentationPolicy, AuthoringStructure } from '../../../../types/authoring-engine';
|
|
3
|
+
/*** Adapt one module-owned config-schema contribution into Studio's neutral Authoring Engine vocabulary. */
|
|
4
|
+
export declare function resolveModuleAdminAuthoring(contribution: StudioModuleAdminContribution): {
|
|
5
|
+
readonly structure: AuthoringStructure;
|
|
6
|
+
readonly policy: AuthoringPresentationPolicy;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=resolveModuleAdminAuthoring.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveModuleAdminAuthoring.d.ts","sourceRoot":"","sources":["../../../../../src/features/authoring-engine/adapters/outbound/resolveModuleAdminAuthoring.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAE9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,2BAA2B,EAC3B,kBAAkB,EACnB,MAAM,oCAAoC,CAAC;AAE5C,4GAA4G;AAC5G,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,6BAA6B,GAAG;IACxF,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;CAC9C,CAkBA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/*** Adapt one module-owned config-schema contribution into Studio's neutral Authoring Engine vocabulary. */
|
|
2
|
+
export function resolveModuleAdminAuthoring(contribution) {
|
|
3
|
+
return {
|
|
4
|
+
structure: {
|
|
5
|
+
kind: 'object',
|
|
6
|
+
fields: contribution.fields.map((field) => ({
|
|
7
|
+
name: field.key,
|
|
8
|
+
optional: !field.required,
|
|
9
|
+
structure: resolveModuleAdminFieldStructure(field),
|
|
10
|
+
})),
|
|
11
|
+
},
|
|
12
|
+
policy: {
|
|
13
|
+
label: contribution.title,
|
|
14
|
+
description: contribution.description,
|
|
15
|
+
fields: Object.fromEntries(contribution.fields.map((field) => [field.key, { label: field.label }])),
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/*** Translate one exercised module control and fail closed for owner controls without central semantics. */
|
|
20
|
+
function resolveModuleAdminFieldStructure(field) {
|
|
21
|
+
if (field.control === 'text') {
|
|
22
|
+
return { kind: 'scalar', scalarType: 'string' };
|
|
23
|
+
}
|
|
24
|
+
if (field.control === 'string-list') {
|
|
25
|
+
return {
|
|
26
|
+
kind: 'ordered-list',
|
|
27
|
+
item: { kind: 'scalar', scalarType: 'string' },
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
kind: 'unsupported',
|
|
32
|
+
sourceKind: `module-control:${field.control}`,
|
|
33
|
+
diagnostic: {
|
|
34
|
+
code: 'unsupported-structure',
|
|
35
|
+
message: `Module admin control "${field.control}" does not have a central Authoring Engine adapter.`,
|
|
36
|
+
path: [field.key],
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=resolveModuleAdminAuthoring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveModuleAdminAuthoring.js","sourceRoot":"","sources":["../../../../../src/features/authoring-engine/adapters/outbound/resolveModuleAdminAuthoring.ts"],"names":[],"mappings":"AASA,4GAA4G;AAC5G,MAAM,UAAU,2BAA2B,CAAC,YAA2C;IAIrF,OAAO;QACL,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC1C,IAAI,EAAE,KAAK,CAAC,GAAG;gBACf,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ;gBACzB,SAAS,EAAE,gCAAgC,CAAC,KAAK,CAAC;aACnD,CAAC,CAAC;SACJ;QACD,MAAM,EAAE;YACN,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,MAAM,EAAE,MAAM,CAAC,WAAW,CACxB,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAU,CAAC,CACjF;SACF;KACF,CAAC;AACJ,CAAC;AAED,4GAA4G;AAC5G,SAAS,gCAAgC,CAAC,KAA6B;IACrE,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QACpC,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE;SAC/C,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,kBAAkB,KAAK,CAAC,OAAO,EAAE;QAC7C,UAAU,EAAE;YACV,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,yBAAyB,KAAK,CAAC,OAAO,qDAAqD;YACpG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;SAClB;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleDetailAdminPage.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/pages/ModuleDetailAdminPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModuleDetailAdminPage.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/pages/ModuleDetailAdminPage.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAqBhE,yHAAyH;AACzH,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,qBA+NvF"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { isRecord } from '@ankhorage/utility/object';
|
|
3
|
+
import { Button, ButtonGroup, Card, Text } from '@ankhorage/zora';
|
|
3
4
|
import { useRouter } from 'expo-router';
|
|
4
5
|
import React, { useCallback, useEffect, useState } from 'react';
|
|
5
6
|
import { ActivityIndicator, StyleSheet, View } from 'react-native';
|
|
6
7
|
import { useStudio } from '../../../core/StudioContext';
|
|
8
|
+
import { AuthoringEditor } from '../../../features/authoring-engine/adapters/inbound/AuthoringEditor';
|
|
9
|
+
import { resolveModuleAdminAuthoring } from '../../../features/authoring-engine/adapters/outbound/resolveModuleAdminAuthoring';
|
|
10
|
+
import { applyAuthoringMutation } from '../../../features/authoring-engine/application/use-cases/applyAuthoringMutation';
|
|
11
|
+
import { deriveAuthoringModel } from '../../../features/authoring-engine/application/use-cases/deriveAuthoringModel';
|
|
7
12
|
import { getProjectModule, installProjectModule, StudioModuleApiError, uninstallProjectModule, updateProjectModuleConfig, } from '../../../moduleAdminApi';
|
|
8
|
-
import {
|
|
9
|
-
import { AdminHeader, AdminScroll, Field, KeyValue } from '../adminPagePrimitives';
|
|
13
|
+
import { AdminHeader, AdminScroll, KeyValue } from '../adminPagePrimitives';
|
|
10
14
|
import { ModuleAdminViewHost } from '../ModuleAdminViewHost';
|
|
11
15
|
import { getStudioModuleAdminView } from '../moduleAdminViewRegistry';
|
|
12
16
|
/*** Render lifecycle, package-owned administration, and fallback metadata-driven configuration for one Studio module. */
|
|
@@ -14,17 +18,15 @@ export function ModuleDetailAdminPage({ moduleId }) {
|
|
|
14
18
|
const studio = useStudio();
|
|
15
19
|
const router = useRouter();
|
|
16
20
|
const [module, setModule] = useState(null);
|
|
17
|
-
const [draft, setDraft] = useState(
|
|
21
|
+
const [draft, setDraft] = useState(null);
|
|
18
22
|
const [loading, setLoading] = useState(true);
|
|
19
23
|
const [busy, setBusy] = useState(false);
|
|
20
24
|
const [unknown, setUnknown] = useState(false);
|
|
21
25
|
const [message, setMessage] = useState(null);
|
|
22
|
-
/*** Store a freshly loaded module and
|
|
26
|
+
/*** Store a freshly loaded module and keep its owner-normalized config as the authoring draft. */
|
|
23
27
|
const applyLoadedModule = useCallback((loaded) => {
|
|
24
28
|
setModule(loaded);
|
|
25
|
-
setDraft(loaded.
|
|
26
|
-
? createStudioModuleAdminDraft({ contribution: loaded.admin, config: loaded.config })
|
|
27
|
-
: {});
|
|
29
|
+
setDraft(loaded.config);
|
|
28
30
|
}, []);
|
|
29
31
|
/*** Reload the selected module lifecycle/admin state and classify an unknown module id. */
|
|
30
32
|
const reload = useCallback(async () => {
|
|
@@ -74,17 +76,22 @@ export function ModuleDetailAdminPage({ moduleId }) {
|
|
|
74
76
|
setBusy(false);
|
|
75
77
|
}
|
|
76
78
|
}, [applyLoadedModule, moduleId, studio]);
|
|
77
|
-
/***
|
|
79
|
+
/*** Apply one central authoring mutation to the module-owned configuration draft. */
|
|
80
|
+
const applyConfigMutation = useCallback((mutation) => {
|
|
81
|
+
const result = applyAuthoringMutation(draft, mutation);
|
|
82
|
+
if (!result.ok) {
|
|
83
|
+
setMessage(result.diagnostic.message);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
setDraft(result.value);
|
|
87
|
+
setMessage(null);
|
|
88
|
+
}, [draft]);
|
|
89
|
+
/*** Persist the neutral authoring draft through the existing Orchestrator module config lifecycle. */
|
|
78
90
|
const saveConfig = useCallback(async () => {
|
|
79
91
|
if (!moduleId || !module?.admin)
|
|
80
92
|
return;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
currentConfig: module.config,
|
|
84
|
-
draft,
|
|
85
|
-
});
|
|
86
|
-
if (!parsed.ok) {
|
|
87
|
-
setMessage(parsed.message);
|
|
93
|
+
if (!isRecord(draft)) {
|
|
94
|
+
setMessage('Module configuration must be an object before it can be saved.');
|
|
88
95
|
return;
|
|
89
96
|
}
|
|
90
97
|
setBusy(true);
|
|
@@ -93,7 +100,7 @@ export function ModuleDetailAdminPage({ moduleId }) {
|
|
|
93
100
|
const result = await updateProjectModuleConfig({
|
|
94
101
|
projectId: studio.projectId,
|
|
95
102
|
moduleId,
|
|
96
|
-
config:
|
|
103
|
+
config: draft,
|
|
97
104
|
});
|
|
98
105
|
if (result.module)
|
|
99
106
|
applyLoadedModule(result.module);
|
|
@@ -114,10 +121,14 @@ export function ModuleDetailAdminPage({ moduleId }) {
|
|
|
114
121
|
return (_jsxs(AdminScroll, { children: [_jsx(AdminHeader, { title: "Unknown module", description: "This module ID is not registered and has no installed lifecycle state." }), message ? _jsx(Text, { color: "danger", children: message }) : null, _jsx(Button, { variant: "outline", onPress: () => router.replace('/ankh/modules'), children: "Back to modules" })] }));
|
|
115
122
|
}
|
|
116
123
|
const adminView = getStudioModuleAdminView(module.id);
|
|
124
|
+
const fallbackAuthoring = module.admin ? resolveModuleAdminAuthoring(module.admin) : null;
|
|
125
|
+
const fallbackModel = fallbackAuthoring
|
|
126
|
+
? deriveAuthoringModel({ ...fallbackAuthoring, value: draft })
|
|
127
|
+
: null;
|
|
117
128
|
return (_jsxs(AdminScroll, { children: [_jsx(AdminHeader, { title: module.name, description: module.description }), message ? (_jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: message })) : null, _jsxs(Card, { title: "Lifecycle status", children: [_jsxs(View, { style: styles.statusGrid, children: [_jsx(KeyValue, { label: "Module ID", value: module.id }), _jsx(KeyValue, { label: "Available", value: module.available ? 'yes' : 'no' }), _jsx(KeyValue, { label: "Installed", value: module.installed ? 'yes' : 'no' }), _jsx(KeyValue, { label: "Pending removal", value: module.pendingRemoval ? 'yes' : 'no' }), _jsx(KeyValue, { label: "Dependents", value: module.dependents.length > 0 ? module.dependents.join(', ') : 'none' })] }), _jsxs(ButtonGroup, { orientation: "responsive", align: "start", children: [!module.installed && module.available ? (_jsx(Button, { loading: busy, onPress: () => void runLifecycle('install'), children: "Install" })) : null, module.installed && !module.pendingRemoval ? (_jsx(Button, { color: "danger", variant: "outline", loading: busy, disabled: module.dependents.length > 0, onPress: () => void runLifecycle('uninstall'), children: "Uninstall" })) : null] })] }), adminView && !module.installed ? (_jsx(Card, { title: module.admin?.title ?? 'Administration', description: module.admin?.description, children: _jsx(Text, { color: "neutral", emphasis: "muted", children: "Install the module before using its package-owned administration view." }) })) : adminView && module.pendingRemoval ? (_jsx(Card, { title: "Administration unavailable", children: _jsx(Text, { color: "neutral", emphasis: "muted", children: "This module is pending removal and cannot be administered." }) })) : adminView ? (_jsx(ModuleAdminViewHost, { moduleId: module.id, contribution: adminView })) : !module.admin ? (_jsx(Card, { title: module.adminError
|
|
118
129
|
? 'Administration contribution error'
|
|
119
130
|
: 'No administration contribution', children: _jsx(Text, { color: "neutral", emphasis: "muted", children: module.adminError ??
|
|
120
|
-
'This module is lifecycle-only. It does not provide a fake configuration form.' }) })) : !module.installed ? (_jsx(Card, { title: module.admin.title, description: module.admin.description, children: _jsx(Text, { color: "neutral", emphasis: "muted", children: "Install the module before editing its package-owned configuration." }) })) : (_jsxs(Card, { title: module.admin.title, description: module.admin.description, children: [
|
|
131
|
+
'This module is lifecycle-only. It does not provide a fake configuration form.' }) })) : !module.installed ? (_jsx(Card, { title: module.admin.title, description: module.admin.description, children: _jsx(Text, { color: "neutral", emphasis: "muted", children: "Install the module before editing its package-owned configuration." }) })) : (_jsxs(Card, { title: module.admin.title, description: module.admin.description, children: [fallbackModel ? (_jsx(AuthoringEditor, { model: fallbackModel, onMutation: applyConfigMutation })) : null, _jsx(Button, { loading: busy, onPress: () => void saveConfig(), children: "Save configuration" })] }))] }));
|
|
121
132
|
}
|
|
122
133
|
/***
|
|
123
134
|
* Normalize an unknown thrown value to a display message.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleDetailAdminPage.js","sourceRoot":"","sources":["../../../../src/ui/admin/pages/ModuleDetailAdminPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"ModuleDetailAdminPage.js","sourceRoot":"","sources":["../../../../src/ui/admin/pages/ModuleDetailAdminPage.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { StudioModuleAdminContribution } from './moduleAdminContracts';
|
|
2
|
-
export type StudioModuleAdminDraft = Record<string, string>;
|
|
3
|
-
export type StudioModuleAdminDraftResult = {
|
|
4
|
-
readonly ok: true;
|
|
5
|
-
readonly config: Record<string, unknown>;
|
|
6
|
-
} | {
|
|
7
|
-
readonly ok: false;
|
|
8
|
-
readonly message: string;
|
|
9
|
-
};
|
|
10
|
-
/***
|
|
11
|
-
* Project a Studio contribution schema through the canonical generic form-draft utility.
|
|
12
|
-
*/
|
|
13
|
-
export declare function createStudioModuleAdminDraft(args: {
|
|
14
|
-
readonly contribution: StudioModuleAdminContribution;
|
|
15
|
-
readonly config: unknown;
|
|
16
|
-
}): StudioModuleAdminDraft;
|
|
17
|
-
/***
|
|
18
|
-
* Parse a Studio contribution draft through the canonical generic form-draft utility.
|
|
19
|
-
*/
|
|
20
|
-
export declare function parseStudioModuleAdminDraft(args: {
|
|
21
|
-
readonly contribution: StudioModuleAdminContribution;
|
|
22
|
-
readonly currentConfig: unknown;
|
|
23
|
-
readonly draft: StudioModuleAdminDraft;
|
|
24
|
-
}): StudioModuleAdminDraftResult;
|
|
25
|
-
//# sourceMappingURL=moduleAdminModel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"moduleAdminModel.d.ts","sourceRoot":"","sources":["../src/moduleAdminModel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAE5E,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5D,MAAM,MAAM,4BAA4B,GACpC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,GAAG,sBAAsB,CAEzB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC;IACrD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;CACxC,GAAG,4BAA4B,CAO/B"}
|
package/dist/moduleAdminModel.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { createFormDraft, parseFormDraft } from '@ankhorage/utility/form';
|
|
2
|
-
/***
|
|
3
|
-
* Project a Studio contribution schema through the canonical generic form-draft utility.
|
|
4
|
-
*/
|
|
5
|
-
export function createStudioModuleAdminDraft(args) {
|
|
6
|
-
return createFormDraft(toFormDraftFields(args.contribution), args.config);
|
|
7
|
-
}
|
|
8
|
-
/***
|
|
9
|
-
* Parse a Studio contribution draft through the canonical generic form-draft utility.
|
|
10
|
-
*/
|
|
11
|
-
export function parseStudioModuleAdminDraft(args) {
|
|
12
|
-
const result = parseFormDraft({
|
|
13
|
-
fields: toFormDraftFields(args.contribution),
|
|
14
|
-
currentValues: args.currentConfig,
|
|
15
|
-
draft: args.draft,
|
|
16
|
-
});
|
|
17
|
-
return result.ok ? { ok: true, config: result.values } : { ok: false, message: result.message };
|
|
18
|
-
}
|
|
19
|
-
/*** Translate open Studio control identifiers into the canonical generic form controls. */
|
|
20
|
-
function toFormDraftFields(contribution) {
|
|
21
|
-
return contribution.fields.map((field) => ({
|
|
22
|
-
...field,
|
|
23
|
-
control: field.control === 'text' || field.control === 'string-list' ? field.control : 'json',
|
|
24
|
-
}));
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=moduleAdminModel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"moduleAdminModel.js","sourceRoot":"","sources":["../src/moduleAdminModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAuB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAU/F;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAG5C;IACC,OAAO,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAI3C;IACC,MAAM,MAAM,GAAG,cAAc,CAAC;QAC5B,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC;QAC5C,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AAClG,CAAC;AAED,2FAA2F;AAC3F,SAAS,iBAAiB,CAAC,YAA2C;IACpE,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACzC,GAAG,KAAK;QACR,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;KAC9F,CAAC,CAAC,CAAC;AACN,CAAC"}
|