@ankhorage/studio 0.0.12 → 0.0.14
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/dist/localizationPanelModel.d.ts +50 -0
- package/dist/localizationPanelModel.d.ts.map +1 -0
- package/dist/localizationPanelModel.js +81 -0
- package/dist/localizationPanelModel.js.map +1 -0
- package/dist/runtimeDiagnosticsModel.d.ts +7 -0
- package/dist/runtimeDiagnosticsModel.d.ts.map +1 -0
- package/dist/runtimeDiagnosticsModel.js +26 -0
- package/dist/runtimeDiagnosticsModel.js.map +1 -0
- package/dist/runtimeLocalization.d.ts +25 -0
- package/dist/runtimeLocalization.d.ts.map +1 -0
- package/dist/runtimeLocalization.js +78 -0
- package/dist/runtimeLocalization.js.map +1 -0
- package/dist/studioAdminRouteModel.d.ts +21 -0
- package/dist/studioAdminRouteModel.d.ts.map +1 -0
- package/dist/studioAdminRouteModel.js +42 -0
- package/dist/studioAdminRouteModel.js.map +1 -0
- package/dist/studioSelectionModel.d.ts +13 -0
- package/dist/studioSelectionModel.d.ts.map +1 -0
- package/dist/studioSelectionModel.js +15 -0
- package/dist/studioSelectionModel.js.map +1 -0
- package/package.json +21 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
# @ankhorage/studio
|
|
5
5
|
|
|
6
|
-
         
|
|
7
7
|
|
|
8
8
|
Standalone Studio authoring package for Ankhorage apps.
|
|
9
9
|
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { UiNode } from '@ankhorage/contracts';
|
|
2
|
+
export interface TranslatableFieldRef {
|
|
3
|
+
screenId: string;
|
|
4
|
+
nodeId: string;
|
|
5
|
+
componentName: string;
|
|
6
|
+
keyProp: string;
|
|
7
|
+
defaultTextProp: string;
|
|
8
|
+
currentKey: string;
|
|
9
|
+
defaultText: string;
|
|
10
|
+
path: string;
|
|
11
|
+
}
|
|
12
|
+
export interface TranslatableComponentMetaField {
|
|
13
|
+
keyProp: string;
|
|
14
|
+
defaultTextProp: string;
|
|
15
|
+
}
|
|
16
|
+
export interface TranslatableComponentMeta {
|
|
17
|
+
i18n?: {
|
|
18
|
+
fields?: readonly TranslatableComponentMetaField[];
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export type TranslatableComponentMetaRegistry = Record<string, TranslatableComponentMeta | undefined>;
|
|
22
|
+
export declare function collectTranslatableFields(args: {
|
|
23
|
+
root: UiNode;
|
|
24
|
+
componentMeta: TranslatableComponentMetaRegistry;
|
|
25
|
+
screenId: string;
|
|
26
|
+
}): TranslatableFieldRef[];
|
|
27
|
+
export declare function createLocalizationKeyFromText(text: string): string;
|
|
28
|
+
export declare function filterTranslatableFields(args: {
|
|
29
|
+
fields: readonly TranslatableFieldRef[];
|
|
30
|
+
searchQuery: string;
|
|
31
|
+
showOnlyMissing: boolean;
|
|
32
|
+
activeLocale: string;
|
|
33
|
+
dictionaries: Record<string, Record<string, string>>;
|
|
34
|
+
}): TranslatableFieldRef[];
|
|
35
|
+
export declare function createLocaleAddConfig(args: {
|
|
36
|
+
currentLocales: readonly string[];
|
|
37
|
+
localeInput: string;
|
|
38
|
+
}): {
|
|
39
|
+
locale: string;
|
|
40
|
+
nextLocales: string[];
|
|
41
|
+
} | null;
|
|
42
|
+
export declare function createLocaleRemoveConfig(args: {
|
|
43
|
+
locales: readonly string[];
|
|
44
|
+
defaultLocale: string;
|
|
45
|
+
localeToRemove: string;
|
|
46
|
+
}): {
|
|
47
|
+
nextLocales: string[];
|
|
48
|
+
nextDefaultLocale: string;
|
|
49
|
+
} | null;
|
|
50
|
+
//# sourceMappingURL=localizationPanelModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localizationPanelModel.d.ts","sourceRoot":"","sources":["../src/localizationPanelModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,SAAS,8BAA8B,EAAE,CAAC;KACpD,CAAC;CACH;AAED,MAAM,MAAM,iCAAiC,GAAG,MAAM,CACpD,MAAM,EACN,yBAAyB,GAAG,SAAS,CACtC,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,iCAAiC,CAAC;IACjD,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,oBAAoB,EAAE,CA+BzB;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBlE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD,GAAG,oBAAoB,EAAE,CAkBzB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAOnD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG;IAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAY9D"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export function collectTranslatableFields(args) {
|
|
2
|
+
const { root, componentMeta, screenId } = args;
|
|
3
|
+
const refs = [];
|
|
4
|
+
function traverse(node, path) {
|
|
5
|
+
const meta = componentMeta[node.type] ?? null;
|
|
6
|
+
const fields = meta?.i18n?.fields ?? [];
|
|
7
|
+
for (const field of fields) {
|
|
8
|
+
const currentKey = node.props?.[field.keyProp] ?? '';
|
|
9
|
+
const defaultText = node.props?.[field.defaultTextProp] ?? '';
|
|
10
|
+
refs.push({
|
|
11
|
+
screenId,
|
|
12
|
+
nodeId: node.id,
|
|
13
|
+
componentName: node.type,
|
|
14
|
+
keyProp: field.keyProp,
|
|
15
|
+
defaultTextProp: field.defaultTextProp,
|
|
16
|
+
currentKey,
|
|
17
|
+
defaultText,
|
|
18
|
+
path: `${path} > ${node.alias ?? node.type}`,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
node.children?.forEach((child) => {
|
|
22
|
+
traverse(child, `${path} > ${node.alias ?? node.type}`);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
traverse(root, screenId);
|
|
26
|
+
return refs;
|
|
27
|
+
}
|
|
28
|
+
export function createLocalizationKeyFromText(text) {
|
|
29
|
+
const normalized = text.trim().toLowerCase();
|
|
30
|
+
let key = '';
|
|
31
|
+
let previousWasSeparator = false;
|
|
32
|
+
for (const char of normalized) {
|
|
33
|
+
if ((char >= 'a' && char <= 'z') || (char >= '0' && char <= '9') || char === '-') {
|
|
34
|
+
key += char;
|
|
35
|
+
previousWasSeparator = false;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (char === ' ' || char === '_' || char === '\t' || char === '\n') {
|
|
39
|
+
if (!previousWasSeparator && key.length > 0) {
|
|
40
|
+
key += '_';
|
|
41
|
+
previousWasSeparator = true;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return key.endsWith('_') ? key.slice(0, -1) : key;
|
|
46
|
+
}
|
|
47
|
+
export function filterTranslatableFields(args) {
|
|
48
|
+
const { fields, searchQuery, showOnlyMissing, activeLocale, dictionaries } = args;
|
|
49
|
+
const normalizedQuery = searchQuery.trim().toLowerCase();
|
|
50
|
+
return fields.filter((field) => {
|
|
51
|
+
const matchesSearch = normalizedQuery.length === 0 ||
|
|
52
|
+
field.nodeId.toLowerCase().includes(normalizedQuery) ||
|
|
53
|
+
field.currentKey.toLowerCase().includes(normalizedQuery) ||
|
|
54
|
+
field.defaultText.toLowerCase().includes(normalizedQuery) ||
|
|
55
|
+
field.path.toLowerCase().includes(normalizedQuery);
|
|
56
|
+
if (!matchesSearch)
|
|
57
|
+
return false;
|
|
58
|
+
if (showOnlyMissing) {
|
|
59
|
+
return !field.currentKey || !dictionaries[activeLocale]?.[field.currentKey];
|
|
60
|
+
}
|
|
61
|
+
return true;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
export function createLocaleAddConfig(args) {
|
|
65
|
+
const locale = args.localeInput.trim().toLowerCase();
|
|
66
|
+
if (!locale || args.currentLocales.includes(locale)) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
return { locale, nextLocales: [...args.currentLocales, locale] };
|
|
70
|
+
}
|
|
71
|
+
export function createLocaleRemoveConfig(args) {
|
|
72
|
+
if (args.locales.length <= 1) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const nextLocales = args.locales.filter((locale) => locale !== args.localeToRemove);
|
|
76
|
+
const nextDefaultLocale = args.defaultLocale === args.localeToRemove
|
|
77
|
+
? (nextLocales[0] ?? args.defaultLocale)
|
|
78
|
+
: args.defaultLocale;
|
|
79
|
+
return { nextLocales, nextDefaultLocale };
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=localizationPanelModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localizationPanelModel.js","sourceRoot":"","sources":["../src/localizationPanelModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DataSourceDiagnostic } from '@ankhorage/contracts';
|
|
2
|
+
export type RuntimeDiagnosticsNoticeColor = 'danger' | 'warning';
|
|
3
|
+
export declare function formatRuntimeDiagnostic(diagnostic: DataSourceDiagnostic): string;
|
|
4
|
+
export declare function formatRuntimeDiagnostics(diagnostics: readonly DataSourceDiagnostic[]): string;
|
|
5
|
+
export declare function resolveRuntimeDiagnosticsNoticeColor(diagnostics: readonly DataSourceDiagnostic[]): RuntimeDiagnosticsNoticeColor;
|
|
6
|
+
export declare function areRuntimeDiagnosticsEqual(left: readonly DataSourceDiagnostic[], right: readonly DataSourceDiagnostic[]): boolean;
|
|
7
|
+
//# sourceMappingURL=runtimeDiagnosticsModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeDiagnosticsModel.d.ts","sourceRoot":"","sources":["../src/runtimeDiagnosticsModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,MAAM,6BAA6B,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjE,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,CAEhF;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,GAAG,MAAM,CAE7F;AAED,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,SAAS,oBAAoB,EAAE,GAC3C,6BAA6B,CAE/B;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,SAAS,oBAAoB,EAAE,EACrC,KAAK,EAAE,SAAS,oBAAoB,EAAE,GACrC,OAAO,CAkBT"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function formatRuntimeDiagnostic(diagnostic) {
|
|
2
|
+
return `[${diagnostic.severity}] ${diagnostic.code}: ${diagnostic.message}`;
|
|
3
|
+
}
|
|
4
|
+
export function formatRuntimeDiagnostics(diagnostics) {
|
|
5
|
+
return diagnostics.map(formatRuntimeDiagnostic).join('\n');
|
|
6
|
+
}
|
|
7
|
+
export function resolveRuntimeDiagnosticsNoticeColor(diagnostics) {
|
|
8
|
+
return diagnostics.some((diagnostic) => diagnostic.severity === 'error') ? 'danger' : 'warning';
|
|
9
|
+
}
|
|
10
|
+
export function areRuntimeDiagnosticsEqual(left, right) {
|
|
11
|
+
if (left.length !== right.length) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
return left.every((diagnostic, index) => {
|
|
15
|
+
const other = right[index];
|
|
16
|
+
if (!other)
|
|
17
|
+
return false;
|
|
18
|
+
return (diagnostic.code === other.code &&
|
|
19
|
+
diagnostic.message === other.message &&
|
|
20
|
+
diagnostic.severity === other.severity &&
|
|
21
|
+
diagnostic.dataSourceId === other.dataSourceId &&
|
|
22
|
+
diagnostic.endpointId === other.endpointId &&
|
|
23
|
+
diagnostic.operationId === other.operationId);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=runtimeDiagnosticsModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeDiagnosticsModel.js","sourceRoot":"","sources":["../src/runtimeDiagnosticsModel.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,uBAAuB,CAAC,UAAgC;IACtE,OAAO,IAAI,UAAU,CAAC,QAAQ,KAAK,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,WAA4C;IACnF,OAAO,WAAW,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,WAA4C;IAE5C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAAqC,EACrC,KAAsC;IAEtC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAEzB,OAAO,CACL,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YAC9B,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YACpC,UAAU,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;YACtC,UAAU,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY;YAC9C,UAAU,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;YAC1C,UAAU,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CAC7C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const STUDIO_LOCALIZED_PROP_PAIRS: readonly [readonly ["i18nKey", "text"], readonly ["titleI18nKey", "title"], readonly ["descriptionI18nKey", "description"], readonly ["eyebrowI18nKey", "eyebrow"], readonly ["labelI18nKey", "label"], readonly ["helperTextI18nKey", "helperText"], readonly ["errorTextI18nKey", "errorText"], readonly ["metaI18nKey", "meta"], readonly ["childrenI18nKey", "children"]];
|
|
2
|
+
export type StudioLocalizedPropPair = (typeof STUDIO_LOCALIZED_PROP_PAIRS)[number];
|
|
3
|
+
export interface StudioRuntimeNodePropsResolverContext {
|
|
4
|
+
node: {
|
|
5
|
+
id: string;
|
|
6
|
+
type: string;
|
|
7
|
+
};
|
|
8
|
+
props: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
export type StudioRuntimeNodePropsResolver = (context: StudioRuntimeNodePropsResolverContext) => Record<string, unknown>;
|
|
11
|
+
export interface StudioRuntimeActionHandlerContext {
|
|
12
|
+
action: unknown;
|
|
13
|
+
context: StudioRuntimeNodePropsResolverContext;
|
|
14
|
+
}
|
|
15
|
+
export type StudioRuntimeActionHandlers = Record<string, (context: StudioRuntimeActionHandlerContext) => void>;
|
|
16
|
+
export declare function resolveLocalizedPropValue(args: {
|
|
17
|
+
props: Record<string, unknown>;
|
|
18
|
+
keyProp: string;
|
|
19
|
+
targetProp: string;
|
|
20
|
+
translate: (key: string) => string;
|
|
21
|
+
}): string | undefined;
|
|
22
|
+
export declare function createStudioLocalizationNodePropsResolver(translate: (key: string) => string): StudioRuntimeNodePropsResolver;
|
|
23
|
+
export declare function getSetLanguageLocale(action: unknown): string | undefined;
|
|
24
|
+
export declare function createStudioLocalizationActionHandlers(setActiveLocale: (locale: string) => void): StudioRuntimeActionHandlers;
|
|
25
|
+
//# sourceMappingURL=runtimeLocalization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeLocalization.d.ts","sourceRoot":"","sources":["../src/runtimeLocalization.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,+WAU9B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnF,MAAM,WAAW,qCAAqC;IACpD,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,MAAM,8BAA8B,GAAG,CAC3C,OAAO,EAAE,qCAAqC,KAC3C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7B,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,qCAAqC,CAAC;CAChD;AAED,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAC9C,MAAM,EACN,CAAC,OAAO,EAAE,iCAAiC,KAAK,IAAI,CACrD,CAAC;AAUF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC,GAAG,MAAM,GAAG,SAAS,CAkBrB;AAED,wBAAgB,yCAAyC,CACvD,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GACjC,8BAA8B,CAuBhC;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAiBxE;AAED,wBAAgB,sCAAsC,CACpD,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACxC,2BAA2B,CAS7B"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
export const STUDIO_LOCALIZED_PROP_PAIRS = [
|
|
2
|
+
['i18nKey', 'text'],
|
|
3
|
+
['titleI18nKey', 'title'],
|
|
4
|
+
['descriptionI18nKey', 'description'],
|
|
5
|
+
['eyebrowI18nKey', 'eyebrow'],
|
|
6
|
+
['labelI18nKey', 'label'],
|
|
7
|
+
['helperTextI18nKey', 'helperText'],
|
|
8
|
+
['errorTextI18nKey', 'errorText'],
|
|
9
|
+
['metaI18nKey', 'meta'],
|
|
10
|
+
['childrenI18nKey', 'children'],
|
|
11
|
+
];
|
|
12
|
+
function isNonEmptyString(value) {
|
|
13
|
+
return typeof value === 'string' && value.length > 0;
|
|
14
|
+
}
|
|
15
|
+
function hasOwnProp(props, key) {
|
|
16
|
+
return Object.prototype.hasOwnProperty.call(props, key);
|
|
17
|
+
}
|
|
18
|
+
export function resolveLocalizedPropValue(args) {
|
|
19
|
+
const { props, keyProp, targetProp, translate } = args;
|
|
20
|
+
const key = props[keyProp];
|
|
21
|
+
if (!isNonEmptyString(key)) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
const translated = translate(key);
|
|
25
|
+
if (isNonEmptyString(translated) && translated !== key) {
|
|
26
|
+
return translated;
|
|
27
|
+
}
|
|
28
|
+
if (hasOwnProp(props, targetProp)) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
return key;
|
|
32
|
+
}
|
|
33
|
+
export function createStudioLocalizationNodePropsResolver(translate) {
|
|
34
|
+
return ({ props }) => {
|
|
35
|
+
let resolvedProps;
|
|
36
|
+
for (const [keyProp, targetProp] of STUDIO_LOCALIZED_PROP_PAIRS) {
|
|
37
|
+
const localizedValue = resolveLocalizedPropValue({
|
|
38
|
+
props,
|
|
39
|
+
keyProp,
|
|
40
|
+
targetProp,
|
|
41
|
+
translate,
|
|
42
|
+
});
|
|
43
|
+
if (localizedValue === undefined) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const nextProps = resolvedProps ?? { ...props };
|
|
47
|
+
nextProps[targetProp] = localizedValue;
|
|
48
|
+
resolvedProps = nextProps;
|
|
49
|
+
}
|
|
50
|
+
return resolvedProps ?? props;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export function getSetLanguageLocale(action) {
|
|
54
|
+
if (typeof action !== 'object' || action === null || Array.isArray(action)) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
const record = action;
|
|
58
|
+
if (record.type !== 'setLanguage') {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
const { payload } = record;
|
|
62
|
+
if (typeof payload !== 'object' || payload === null || Array.isArray(payload)) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
const { locale } = payload;
|
|
66
|
+
return typeof locale === 'string' && locale.length > 0 ? locale : undefined;
|
|
67
|
+
}
|
|
68
|
+
export function createStudioLocalizationActionHandlers(setActiveLocale) {
|
|
69
|
+
return {
|
|
70
|
+
setLanguage: ({ action }) => {
|
|
71
|
+
const locale = getSetLanguageLocale(action);
|
|
72
|
+
if (locale !== undefined) {
|
|
73
|
+
setActiveLocale(locale);
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=runtimeLocalization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeLocalization.js","sourceRoot":"","sources":["../src/runtimeLocalization.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,CAAC,SAAS,EAAE,MAAM,CAAC;IACnB,CAAC,cAAc,EAAE,OAAO,CAAC;IACzB,CAAC,oBAAoB,EAAE,aAAa,CAAC;IACrC,CAAC,gBAAgB,EAAE,SAAS,CAAC;IAC7B,CAAC,cAAc,EAAE,OAAO,CAAC;IACzB,CAAC,mBAAmB,EAAE,YAAY,CAAC;IACnC,CAAC,kBAAkB,EAAE,WAAW,CAAC;IACjC,CAAC,aAAa,EAAE,MAAM,CAAC;IACvB,CAAC,iBAAiB,EAAE,UAAU,CAAC;CACvB,CAAC;AAuBX,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,UAAU,CAAC,KAA8B,EAAE,GAAW;IAC7D,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAKzC;IACC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACvD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAE3B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,yCAAyC,CACvD,SAAkC;IAElC,OAAO,CAAC,EAAE,KAAK,EAAyC,EAAE,EAAE;QAC1D,IAAI,aAAkD,CAAC;QAEvD,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,2BAA2B,EAAE,CAAC;YAChE,MAAM,cAAc,GAAG,yBAAyB,CAAC;gBAC/C,KAAK;gBACL,OAAO;gBACP,UAAU;gBACV,SAAS;aACV,CAAC,CAAC;YAEH,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,aAAa,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC;YAChD,SAAS,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC;YACvC,aAAa,GAAG,SAAS,CAAC;QAC5B,CAAC;QAED,OAAO,aAAa,IAAI,KAAK,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAe;IAClD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC3B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,OAAkC,CAAC;IACtD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,sCAAsC,CACpD,eAAyC;IAEzC,OAAO;QACL,WAAW,EAAE,CAAC,EAAE,MAAM,EAAqC,EAAE,EAAE;YAC7D,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,eAAe,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { StudioAdminRoutePath, StudioPanelId } from './index';
|
|
2
|
+
export interface StudioAdminRouteRenderState {
|
|
3
|
+
routeAdminPath: StudioAdminRoutePath | null;
|
|
4
|
+
resolvedAdminRoutePath: StudioAdminRoutePath;
|
|
5
|
+
propertiesNodeId: string | null;
|
|
6
|
+
shouldRenderAppContent: true;
|
|
7
|
+
shouldRenderAdminOverlay: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function resolveStudioAdminRoutePath(pathname: string): StudioAdminRoutePath | null;
|
|
10
|
+
export declare function resolveStudioPropertiesNodeId(pathname: string): string | null;
|
|
11
|
+
export declare function createStudioAdminRouteRenderState(args: {
|
|
12
|
+
pathname: string;
|
|
13
|
+
activeAdminRoutePath: StudioAdminRoutePath;
|
|
14
|
+
}): StudioAdminRouteRenderState;
|
|
15
|
+
export declare function openStudioAdminRoute(args: {
|
|
16
|
+
next: Exclude<StudioAdminRoutePath, '/'>;
|
|
17
|
+
setActivePanelId: (panelId: StudioPanelId | null) => void;
|
|
18
|
+
pushRoute: (routePath: Exclude<StudioAdminRoutePath, '/'>) => void;
|
|
19
|
+
}): void;
|
|
20
|
+
export declare function createStudioPropertiesRoutePath(nodeId: string): `/ankh/properties/${string}`;
|
|
21
|
+
//# sourceMappingURL=studioAdminRouteModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studioAdminRouteModel.d.ts","sourceRoot":"","sources":["../src/studioAdminRouteModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEnE,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC5C,sBAAsB,EAAE,oBAAoB,CAAC;IAC7C,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,sBAAsB,EAAE,IAAI,CAAC;IAC7B,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAKD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAMzF;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe7E;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C,GAAG,2BAA2B,CAW9B;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,IAAI,EAAE,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IACzC,gBAAgB,EAAE,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1D,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CACpE,GAAG,IAAI,CAGP;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,MAAM,EAAE,CAE5F"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const ADMIN_ROUTE_PATHS = ['/ankh/apis', '/ankh/auth', '/ankh/theme'];
|
|
2
|
+
const PROPERTIES_ROUTE_PREFIX = '/ankh/properties/';
|
|
3
|
+
export function resolveStudioAdminRoutePath(pathname) {
|
|
4
|
+
if (pathname.startsWith(PROPERTIES_ROUTE_PREFIX)) {
|
|
5
|
+
return '/ankh/properties';
|
|
6
|
+
}
|
|
7
|
+
return ADMIN_ROUTE_PATHS.find((routePath) => routePath === pathname) ?? null;
|
|
8
|
+
}
|
|
9
|
+
export function resolveStudioPropertiesNodeId(pathname) {
|
|
10
|
+
if (!pathname.startsWith(PROPERTIES_ROUTE_PREFIX)) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
const [encodedNodeId] = pathname.slice(PROPERTIES_ROUTE_PREFIX.length).split('/');
|
|
14
|
+
if (!encodedNodeId) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
return decodeURIComponent(encodedNodeId);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return encodedNodeId;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export function createStudioAdminRouteRenderState(args) {
|
|
25
|
+
const routeAdminPath = resolveStudioAdminRoutePath(args.pathname);
|
|
26
|
+
const resolvedAdminRoutePath = routeAdminPath ?? args.activeAdminRoutePath;
|
|
27
|
+
return {
|
|
28
|
+
routeAdminPath,
|
|
29
|
+
resolvedAdminRoutePath,
|
|
30
|
+
propertiesNodeId: resolveStudioPropertiesNodeId(args.pathname),
|
|
31
|
+
shouldRenderAppContent: true,
|
|
32
|
+
shouldRenderAdminOverlay: resolvedAdminRoutePath !== '/',
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export function openStudioAdminRoute(args) {
|
|
36
|
+
args.setActivePanelId(null);
|
|
37
|
+
args.pushRoute(args.next);
|
|
38
|
+
}
|
|
39
|
+
export function createStudioPropertiesRoutePath(nodeId) {
|
|
40
|
+
return `/ankh/properties/${encodeURIComponent(nodeId)}`;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=studioAdminRouteModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studioAdminRouteModel.js","sourceRoot":"","sources":["../src/studioAdminRouteModel.ts"],"names":[],"mappings":"AAUA,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,CAAU,CAAC;AAC/E,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAEpD,MAAM,UAAU,2BAA2B,CAAC,QAAgB;IAC1D,IAAI,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACjD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,QAAgB;IAC5D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,IAGjD;IACC,MAAM,cAAc,GAAG,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,MAAM,sBAAsB,GAAG,cAAc,IAAI,IAAI,CAAC,oBAAoB,CAAC;IAE3E,OAAO;QACL,cAAc;QACd,sBAAsB;QACtB,gBAAgB,EAAE,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9D,sBAAsB,EAAE,IAAI;QAC5B,wBAAwB,EAAE,sBAAsB,KAAK,GAAG;KACzD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAIpC;IACC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,MAAc;IAC5D,OAAO,oBAAoB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface StudioSelectionProviderAdapterProps {
|
|
2
|
+
mode: 'single';
|
|
3
|
+
disabled: boolean;
|
|
4
|
+
selectedIds: readonly string[];
|
|
5
|
+
onSelectionChange?: (ids: readonly string[]) => void;
|
|
6
|
+
}
|
|
7
|
+
export interface CreateStudioSelectionProviderPropsArgs {
|
|
8
|
+
previewMode: boolean;
|
|
9
|
+
selectedNodeId: string | null;
|
|
10
|
+
selectNode: (id: string | null) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function createStudioSelectionProviderProps(args: CreateStudioSelectionProviderPropsArgs): StudioSelectionProviderAdapterProps;
|
|
13
|
+
//# sourceMappingURL=studioSelectionModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studioSelectionModel.d.ts","sourceRoot":"","sources":["../src/studioSelectionModel.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mCAAmC;IAClD,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;CACtD;AAED,MAAM,WAAW,sCAAsC;IACrD,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACzC;AAID,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,sCAAsC,GAC3C,mCAAmC,CAarC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const EMPTY_IDS = [];
|
|
2
|
+
export function createStudioSelectionProviderProps(args) {
|
|
3
|
+
const { previewMode, selectedNodeId, selectNode } = args;
|
|
4
|
+
return {
|
|
5
|
+
mode: 'single',
|
|
6
|
+
disabled: previewMode,
|
|
7
|
+
selectedIds: previewMode ? EMPTY_IDS : selectedNodeId ? [selectedNodeId] : EMPTY_IDS,
|
|
8
|
+
onSelectionChange: previewMode
|
|
9
|
+
? undefined
|
|
10
|
+
: (ids) => {
|
|
11
|
+
selectNode(ids[0] ?? null);
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=studioSelectionModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studioSelectionModel.js","sourceRoot":"","sources":["../src/studioSelectionModel.ts"],"names":[],"mappings":"AAaA,MAAM,SAAS,GAAsB,EAAE,CAAC;AAExC,MAAM,UAAU,kCAAkC,CAChD,IAA4C;IAE5C,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAEzD,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,WAAW;QACrB,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;QACpF,iBAAiB,EAAE,WAAW;YAC5B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE;gBACN,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;YAC7B,CAAC;KACN,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ankhorage/studio",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.14",
|
|
4
4
|
"description": "Studio authoring package for Ankhorage apps",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/ankhorage/studio#readme",
|
|
@@ -44,6 +44,10 @@
|
|
|
44
44
|
"types": "./dist/localizationConfig.d.ts",
|
|
45
45
|
"import": "./dist/localizationConfig.js"
|
|
46
46
|
},
|
|
47
|
+
"./localizationPanelModel": {
|
|
48
|
+
"types": "./dist/localizationPanelModel.d.ts",
|
|
49
|
+
"import": "./dist/localizationPanelModel.js"
|
|
50
|
+
},
|
|
47
51
|
"./manifestNavigatorPreviewModel": {
|
|
48
52
|
"types": "./dist/manifestNavigatorPreviewModel.d.ts",
|
|
49
53
|
"import": "./dist/manifestNavigatorPreviewModel.js"
|
|
@@ -59,6 +63,22 @@
|
|
|
59
63
|
"./routeUtils": {
|
|
60
64
|
"types": "./dist/routeUtils.d.ts",
|
|
61
65
|
"import": "./dist/routeUtils.js"
|
|
66
|
+
},
|
|
67
|
+
"./runtimeDiagnosticsModel": {
|
|
68
|
+
"types": "./dist/runtimeDiagnosticsModel.d.ts",
|
|
69
|
+
"import": "./dist/runtimeDiagnosticsModel.js"
|
|
70
|
+
},
|
|
71
|
+
"./runtimeLocalization": {
|
|
72
|
+
"types": "./dist/runtimeLocalization.d.ts",
|
|
73
|
+
"import": "./dist/runtimeLocalization.js"
|
|
74
|
+
},
|
|
75
|
+
"./studioAdminRouteModel": {
|
|
76
|
+
"types": "./dist/studioAdminRouteModel.d.ts",
|
|
77
|
+
"import": "./dist/studioAdminRouteModel.js"
|
|
78
|
+
},
|
|
79
|
+
"./studioSelectionModel": {
|
|
80
|
+
"types": "./dist/studioSelectionModel.d.ts",
|
|
81
|
+
"import": "./dist/studioSelectionModel.js"
|
|
62
82
|
}
|
|
63
83
|
},
|
|
64
84
|
"scripts": {
|