@nocobase/plugin-ui-templates 2.0.0-alpha.57
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/LICENSE.txt +172 -0
- package/build.config.ts +12 -0
- package/client.js +1 -0
- package/dist/client/collections/flowModelTemplates.d.ts +67 -0
- package/dist/client/components/FlowModelTemplatesPage.d.ts +12 -0
- package/dist/client/components/TemplateSelectOption.d.ts +20 -0
- package/dist/client/constants.d.ts +9 -0
- package/dist/client/hooks/useFlowModelTemplateActions.d.ts +24 -0
- package/dist/client/index.d.ts +13 -0
- package/dist/client/index.js +10 -0
- package/dist/client/locale.d.ts +18 -0
- package/dist/client/menuExtensions.d.ts +9 -0
- package/dist/client/models/ReferenceBlockModel.d.ts +47 -0
- package/dist/client/models/ReferenceFormGridModel.d.ts +38 -0
- package/dist/client/models/SubModelTemplateImporterModel.d.ts +55 -0
- package/dist/client/models/referenceShared.d.ts +23 -0
- package/dist/client/openViewActionExtensions.d.ts +10 -0
- package/dist/client/schemas/flowModelTemplates.d.ts +11 -0
- package/dist/client/subModelMenuExtensions.d.ts +10 -0
- package/dist/client/utils/infiniteSelect.d.ts +28 -0
- package/dist/client/utils/refHost.d.ts +20 -0
- package/dist/client/utils/templateCompatibility.d.ts +91 -0
- package/dist/client.d.ts +9 -0
- package/dist/client.js +42 -0
- package/dist/externalVersion.js +24 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +48 -0
- package/dist/locale/de-DE.json +14 -0
- package/dist/locale/en-US.json +72 -0
- package/dist/locale/es-ES.json +14 -0
- package/dist/locale/fr-FR.json +14 -0
- package/dist/locale/hu-HU.json +14 -0
- package/dist/locale/id-ID.json +14 -0
- package/dist/locale/it-IT.json +14 -0
- package/dist/locale/ja-JP.json +14 -0
- package/dist/locale/ko-KR.json +14 -0
- package/dist/locale/nl-NL.json +14 -0
- package/dist/locale/pt-BR.json +14 -0
- package/dist/locale/ru-RU.json +14 -0
- package/dist/locale/tr-TR.json +14 -0
- package/dist/locale/uk-UA.json +14 -0
- package/dist/locale/vi-VN.json +14 -0
- package/dist/locale/zh-CN.json +71 -0
- package/dist/locale/zh-TW.json +14 -0
- package/dist/server/collections/flowModelTemplateUsages.d.ts +11 -0
- package/dist/server/collections/flowModelTemplateUsages.js +71 -0
- package/dist/server/collections/flowModelTemplates.d.ts +11 -0
- package/dist/server/collections/flowModelTemplates.js +96 -0
- package/dist/server/index.d.ts +9 -0
- package/dist/server/index.js +42 -0
- package/dist/server/plugin.d.ts +17 -0
- package/dist/server/plugin.js +242 -0
- package/dist/server/resources/flowModelTemplateUsages.d.ts +19 -0
- package/dist/server/resources/flowModelTemplateUsages.js +91 -0
- package/dist/server/resources/flowModelTemplates.d.ts +20 -0
- package/dist/server/resources/flowModelTemplates.js +267 -0
- package/package.json +37 -0
- package/server.js +1 -0
- package/src/client/__tests__/openViewActionExtensions.test.ts +1208 -0
- package/src/client/collections/flowModelTemplates.ts +131 -0
- package/src/client/components/FlowModelTemplatesPage.tsx +78 -0
- package/src/client/components/TemplateSelectOption.tsx +106 -0
- package/src/client/constants.ts +10 -0
- package/src/client/hooks/useFlowModelTemplateActions.tsx +137 -0
- package/src/client/index.ts +54 -0
- package/src/client/locale.ts +40 -0
- package/src/client/menuExtensions.tsx +1033 -0
- package/src/client/models/ReferenceBlockModel.tsx +793 -0
- package/src/client/models/ReferenceFormGridModel.tsx +302 -0
- package/src/client/models/SubModelTemplateImporterModel.tsx +634 -0
- package/src/client/models/__tests__/ReferenceBlockModel.test.tsx +482 -0
- package/src/client/models/__tests__/ReferenceFormGridModel.test.tsx +175 -0
- package/src/client/models/__tests__/SubModelTemplateImporterModel.test.ts +447 -0
- package/src/client/models/referenceShared.tsx +99 -0
- package/src/client/openViewActionExtensions.tsx +981 -0
- package/src/client/schemas/flowModelTemplates.ts +264 -0
- package/src/client/subModelMenuExtensions.ts +103 -0
- package/src/client/utils/infiniteSelect.ts +150 -0
- package/src/client/utils/refHost.ts +44 -0
- package/src/client/utils/templateCompatibility.ts +374 -0
- package/src/client.ts +10 -0
- package/src/index.ts +11 -0
- package/src/locale/de-DE.json +14 -0
- package/src/locale/en-US.json +72 -0
- package/src/locale/es-ES.json +14 -0
- package/src/locale/fr-FR.json +14 -0
- package/src/locale/hu-HU.json +14 -0
- package/src/locale/id-ID.json +14 -0
- package/src/locale/it-IT.json +14 -0
- package/src/locale/ja-JP.json +14 -0
- package/src/locale/ko-KR.json +14 -0
- package/src/locale/nl-NL.json +14 -0
- package/src/locale/pt-BR.json +14 -0
- package/src/locale/ru-RU.json +14 -0
- package/src/locale/tr-TR.json +14 -0
- package/src/locale/uk-UA.json +14 -0
- package/src/locale/vi-VN.json +14 -0
- package/src/locale/zh-CN.json +71 -0
- package/src/locale/zh-TW.json +14 -0
- package/src/server/__tests__/template-usage.test.ts +351 -0
- package/src/server/collections/flowModelTemplateUsages.ts +51 -0
- package/src/server/collections/flowModelTemplates.ts +76 -0
- package/src/server/index.ts +10 -0
- package/src/server/plugin.ts +236 -0
- package/src/server/resources/flowModelTemplateUsages.ts +61 -0
- package/src/server/resources/flowModelTemplates.ts +251 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
import type { FlowModel } from '@nocobase/flow-engine';
|
|
10
|
+
export type RefHostInfo = {
|
|
11
|
+
ref?: {
|
|
12
|
+
mountSubKey?: unknown;
|
|
13
|
+
mode?: unknown;
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
};
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
};
|
|
18
|
+
export declare function findRefHostInfoFromAncestors(model: FlowModel, options?: {
|
|
19
|
+
maxDepth?: number;
|
|
20
|
+
}): RefHostInfo | undefined;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
export declare const TEMPLATE_LIST_PAGE_SIZE = 20;
|
|
10
|
+
export declare function normalizeStr(value: unknown): string;
|
|
11
|
+
export declare function parseResourceListResponse<T = any>(res: any): {
|
|
12
|
+
rows: T[];
|
|
13
|
+
count?: number;
|
|
14
|
+
};
|
|
15
|
+
export declare function calcHasMore(args: {
|
|
16
|
+
page: number;
|
|
17
|
+
pageSize: number;
|
|
18
|
+
rowsLength: number;
|
|
19
|
+
count?: number;
|
|
20
|
+
}): boolean;
|
|
21
|
+
export declare function tWithNs(ctx: any, key: string, options?: Record<string, any>): string;
|
|
22
|
+
export declare function resolveTargetResourceByAssociation(ctx: any, init: {
|
|
23
|
+
dataSourceKey?: unknown;
|
|
24
|
+
collectionName?: unknown;
|
|
25
|
+
associationName?: unknown;
|
|
26
|
+
}, options?: {
|
|
27
|
+
dataSourceManager?: any;
|
|
28
|
+
}): {
|
|
29
|
+
dataSourceKey: string;
|
|
30
|
+
collectionName: string;
|
|
31
|
+
} | undefined;
|
|
32
|
+
export declare function resolveBaseResourceByAssociation(init: {
|
|
33
|
+
dataSourceKey?: unknown;
|
|
34
|
+
collectionName?: unknown;
|
|
35
|
+
associationName?: unknown;
|
|
36
|
+
}): {
|
|
37
|
+
dataSourceKey: string;
|
|
38
|
+
collectionName: string;
|
|
39
|
+
} | undefined;
|
|
40
|
+
export declare function resolveExpectedResourceInfoByModelChain(ctx: any, startModel?: any, options?: {
|
|
41
|
+
maxDepth?: number;
|
|
42
|
+
dataSourceManager?: any;
|
|
43
|
+
fallbackCollectionFromCtx?: boolean;
|
|
44
|
+
includeAssociationName?: boolean;
|
|
45
|
+
}): {
|
|
46
|
+
dataSourceKey?: string;
|
|
47
|
+
collectionName?: string;
|
|
48
|
+
associationName?: string;
|
|
49
|
+
};
|
|
50
|
+
export type TemplateAssociationMatchStrategy = 'none' | 'exactIfTemplateHasAssociationName' | 'associationResourceOnly';
|
|
51
|
+
/**
|
|
52
|
+
* 推断弹窗模板是否需要 record/source 上下文。
|
|
53
|
+
* 用于避免 Collection 模板被误判为 Record 模板(尤其是默认值里带 `{{ ctx.record.* }}` 的情况)。
|
|
54
|
+
*/
|
|
55
|
+
export type PopupTemplateContextFlags = {
|
|
56
|
+
hasFilterByTk: boolean;
|
|
57
|
+
hasSourceId: boolean;
|
|
58
|
+
/** 是否有足够信息确定 hasFilterByTk(用于运行时决定是否覆盖) */
|
|
59
|
+
confidentFilterByTk: boolean;
|
|
60
|
+
/** 是否有足够信息确定 hasSourceId */
|
|
61
|
+
confidentSourceId: boolean;
|
|
62
|
+
};
|
|
63
|
+
export type ActionSceneType = 'record' | 'collection' | 'both' | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* 根据 Model 类的 _isScene 方法推断 action 场景类型
|
|
66
|
+
*/
|
|
67
|
+
export declare function resolveActionScene(getModelClass: ((use: string) => any) | undefined, useModel?: unknown): ActionSceneType;
|
|
68
|
+
/**
|
|
69
|
+
* 推断弹窗模板的 filterByTk/sourceId 上下文需求
|
|
70
|
+
*/
|
|
71
|
+
export declare function inferPopupTemplateContextFlags(scene: ActionSceneType, filterByTkExpr?: string, sourceIdExpr?: string): PopupTemplateContextFlags;
|
|
72
|
+
/**
|
|
73
|
+
* 从已保存的 openView params 中提取 PopupTemplateContextFlags(用于 copy 模式或无法获取模板记录时的兜底)
|
|
74
|
+
*/
|
|
75
|
+
export declare function extractPopupTemplateContextFlagsFromParams(params: {
|
|
76
|
+
popupTemplateHasFilterByTk?: boolean;
|
|
77
|
+
popupTemplateHasSourceId?: boolean;
|
|
78
|
+
}): PopupTemplateContextFlags;
|
|
79
|
+
export declare function getTemplateAvailabilityDisabledReason(ctx: any, tpl: {
|
|
80
|
+
dataSourceKey?: unknown;
|
|
81
|
+
collectionName?: unknown;
|
|
82
|
+
associationName?: unknown;
|
|
83
|
+
}, expected: {
|
|
84
|
+
dataSourceKey?: unknown;
|
|
85
|
+
collectionName?: unknown;
|
|
86
|
+
associationName?: unknown;
|
|
87
|
+
}, options?: {
|
|
88
|
+
dataSourceManager?: any;
|
|
89
|
+
checkResource?: boolean;
|
|
90
|
+
associationMatch?: TemplateAssociationMatchStrategy;
|
|
91
|
+
}): string | undefined;
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
export { default } from './client/index';
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
var __create = Object.create;
|
|
11
|
+
var __defProp = Object.defineProperty;
|
|
12
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
15
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
+
var __export = (target, all) => {
|
|
17
|
+
for (var name in all)
|
|
18
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
19
|
+
};
|
|
20
|
+
var __copyProps = (to, from, except, desc) => {
|
|
21
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
22
|
+
for (let key of __getOwnPropNames(from))
|
|
23
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
24
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
25
|
+
}
|
|
26
|
+
return to;
|
|
27
|
+
};
|
|
28
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
29
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
30
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
31
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
32
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
33
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
34
|
+
mod
|
|
35
|
+
));
|
|
36
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
37
|
+
var client_exports = {};
|
|
38
|
+
__export(client_exports, {
|
|
39
|
+
default: () => import_client.default
|
|
40
|
+
});
|
|
41
|
+
module.exports = __toCommonJS(client_exports);
|
|
42
|
+
var import_client = __toESM(require("./client/index"));
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
module.exports = {
|
|
11
|
+
"@nocobase/client": "2.0.0-alpha.57",
|
|
12
|
+
"@nocobase/flow-engine": "2.0.0-alpha.57",
|
|
13
|
+
"react": "18.2.0",
|
|
14
|
+
"antd": "5.24.2",
|
|
15
|
+
"@ant-design/icons": "5.6.1",
|
|
16
|
+
"lodash": "4.17.21",
|
|
17
|
+
"@formily/react": "2.3.7",
|
|
18
|
+
"@nocobase/server": "2.0.0-alpha.57",
|
|
19
|
+
"@nocobase/plugin-flow-engine": "2.0.0-alpha.57",
|
|
20
|
+
"@nocobase/utils": "2.0.0-alpha.57",
|
|
21
|
+
"@formily/core": "2.3.7",
|
|
22
|
+
"@nocobase/database": "2.0.0-alpha.57",
|
|
23
|
+
"@nocobase/actions": "2.0.0-alpha.57"
|
|
24
|
+
};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
export * from './server';
|
|
10
|
+
export { default } from './server';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
var __create = Object.create;
|
|
11
|
+
var __defProp = Object.defineProperty;
|
|
12
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
15
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
+
var __export = (target, all) => {
|
|
17
|
+
for (var name in all)
|
|
18
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
19
|
+
};
|
|
20
|
+
var __copyProps = (to, from, except, desc) => {
|
|
21
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
22
|
+
for (let key of __getOwnPropNames(from))
|
|
23
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
24
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
25
|
+
}
|
|
26
|
+
return to;
|
|
27
|
+
};
|
|
28
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
29
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
30
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
31
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
32
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
33
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
34
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
35
|
+
mod
|
|
36
|
+
));
|
|
37
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
38
|
+
var src_exports = {};
|
|
39
|
+
__export(src_exports, {
|
|
40
|
+
default: () => import_server.default
|
|
41
|
+
});
|
|
42
|
+
module.exports = __toCommonJS(src_exports);
|
|
43
|
+
__reExport(src_exports, require("./server"), module.exports);
|
|
44
|
+
var import_server = __toESM(require("./server"));
|
|
45
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
46
|
+
0 && (module.exports = {
|
|
47
|
+
...require("./server")
|
|
48
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"UI templates": "UI templates",
|
|
3
|
+
"Block templates (v2)": "Block templates (v2)",
|
|
4
|
+
"Popup templates (v2)": "Popup templates (v2)",
|
|
5
|
+
"Actions": "Actions",
|
|
6
|
+
"Are you sure you want to delete this item? This action cannot be undone.": "Are you sure you want to delete this item? This action cannot be undone.",
|
|
7
|
+
"Block UID": "Block UID",
|
|
8
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
9
|
+
"Block template": "Block template",
|
|
10
|
+
"Select block template": "Select block template",
|
|
11
|
+
"Block templates": "Block templates",
|
|
12
|
+
"Duplicate": "Duplicate",
|
|
13
|
+
"Delete template": "Delete template",
|
|
14
|
+
"Edit": "Edit",
|
|
15
|
+
"Edit template": "Edit template",
|
|
16
|
+
"Mode": "Mode",
|
|
17
|
+
"Other blocks": "Other blocks",
|
|
18
|
+
"Please configure target block": "Please configure target block",
|
|
19
|
+
"Reference": "Reference",
|
|
20
|
+
"Saved": "Saved",
|
|
21
|
+
"Search templates": "Search templates",
|
|
22
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
23
|
+
"Target UID": "Target UID",
|
|
24
|
+
"Target block is invalid": "Target block is invalid",
|
|
25
|
+
"Template": "Template",
|
|
26
|
+
"Cannot resolve template parameter {{param}}": "Missing {{param}}, cannot use",
|
|
27
|
+
"Template description": "Template description",
|
|
28
|
+
"Template name": "Template name",
|
|
29
|
+
"Template name is required": "Template name is required",
|
|
30
|
+
"Template settings": "Template settings",
|
|
31
|
+
"Template is in use and cannot be deleted": "Template is in use and cannot be deleted",
|
|
32
|
+
"Usage count": "Usage count",
|
|
33
|
+
"Deleted": "Deleted",
|
|
34
|
+
"Using reference fields will remove existing fields": "Using reference fields will remove existing fields.",
|
|
35
|
+
"This block already references field template, please convert fields to copy first": "This block already references a field template. Please convert fields to duplicate first.",
|
|
36
|
+
"Convert reference to duplicate": "Convert reference to duplicate",
|
|
37
|
+
"Save as template": "Save as template",
|
|
38
|
+
"Convert reference to duplicate is unavailable": "Convert reference to duplicate is unavailable",
|
|
39
|
+
"Are you sure to convert this template block to copy mode?": "Are you sure to convert this template block to duplicate mode?",
|
|
40
|
+
"Convert reference fields to duplicate": "Convert reference fields to duplicate",
|
|
41
|
+
"Field template": "Field template",
|
|
42
|
+
"Are you sure to convert referenced fields to copy mode?": "Are you sure to convert referenced fields to duplicate mode?",
|
|
43
|
+
"Template missing data source/collection info": "Template missing data source/collection info",
|
|
44
|
+
"Template collection mismatch": "Collection mismatch: requires \"{{expected}}\", but template is for \"{{actual}}\"",
|
|
45
|
+
"Template data source mismatch": "Data source mismatch: requires \"{{expected}}\", but template is for \"{{actual}}\"",
|
|
46
|
+
"No association": "(none)",
|
|
47
|
+
"Template association mismatch": "Association mismatch: requires \"{{expected}}\", but template is for \"{{actual}}\"",
|
|
48
|
+
"Popup template": "Popup template",
|
|
49
|
+
"Popup templates": "Popup templates",
|
|
50
|
+
"Select popup template": "Select popup template",
|
|
51
|
+
"Replace current block with reference template": "Replace current block with reference template",
|
|
52
|
+
"Replace current popup with reference template": "Replace current popup with reference template",
|
|
53
|
+
"Are you sure to convert this pop-up to copy mode?": "Are you sure to convert this pop-up to duplicate mode?",
|
|
54
|
+
"This pop-up is not using a popup template": "This pop-up is not using a popup template",
|
|
55
|
+
"Converted": "Converted",
|
|
56
|
+
"Only Popup can be saved as popup template": "Only Popup can be saved as popup template",
|
|
57
|
+
"Popup template not found": "Popup template not found",
|
|
58
|
+
"Failed to duplicate pop-up": "Failed to duplicate pop-up",
|
|
59
|
+
"Failed to copy popup from template": "Failed to duplicate popup from template",
|
|
60
|
+
"Template field section description": "The field section of the specified block template will be used",
|
|
61
|
+
"Reference mode description": "Modifying the block will update all places that reference this template.",
|
|
62
|
+
"Duplicate mode description": "Generates new content based on the template. All UIDs (including child node UIDs) will be regenerated. Cross-block UID references will no longer work after duplication.",
|
|
63
|
+
"Save mode": "Save mode",
|
|
64
|
+
"Convert current block to template": "Convert current block to template",
|
|
65
|
+
"Convert current block to template description": "The current block itself will become a template reference",
|
|
66
|
+
"Duplicate current block as template": "Duplicate current block as template",
|
|
67
|
+
"Duplicate current block as template description": "Keep original block, create a copy as template",
|
|
68
|
+
"Convert current popup to template": "Convert current popup to template",
|
|
69
|
+
"Convert current popup to template description": "The current popup itself will become a template reference",
|
|
70
|
+
"Duplicate current popup as template": "Duplicate current popup as template",
|
|
71
|
+
"Duplicate current popup as template description": "Keep original popup, create a copy as template"
|
|
72
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"UI templates": "界面模板",
|
|
3
|
+
"Block templates (v2)": "区块模板 (v2)",
|
|
4
|
+
"Popup templates (v2)": "弹窗模板 (v2)",
|
|
5
|
+
"Actions": "操作",
|
|
6
|
+
"Are you sure you want to delete this item? This action cannot be undone.": "确定要删除此项吗?此操作不可撤销。",
|
|
7
|
+
"Block UID": "区块 UID",
|
|
8
|
+
"Block UID is already set and cannot be modified": "当前已经指定区块UID,不允许修改",
|
|
9
|
+
"Block template": "区块模板",
|
|
10
|
+
"Select block template": "选择区块模板",
|
|
11
|
+
"Block templates": "区块模板",
|
|
12
|
+
"Duplicate": "复制",
|
|
13
|
+
"Delete template": "删除模板",
|
|
14
|
+
"Deleted": "已删除",
|
|
15
|
+
"Edit": "编辑",
|
|
16
|
+
"Edit template": "编辑模板",
|
|
17
|
+
"Mode": "模式",
|
|
18
|
+
"Other blocks": "其他区块",
|
|
19
|
+
"Please configure target block": "请先配置目标区块",
|
|
20
|
+
"Reference": "引用",
|
|
21
|
+
"Saved": "已保存",
|
|
22
|
+
"Search templates": "搜索模板",
|
|
23
|
+
"Some configurations using uid may need to be reconfigured": "部分使用uid的配置可能需要重新配置",
|
|
24
|
+
"Target block is invalid": "目标区块无效",
|
|
25
|
+
"Template": "模板",
|
|
26
|
+
"Cannot resolve template parameter {{param}}": "缺少 {{param}},无法使用",
|
|
27
|
+
"Template description": "模板描述",
|
|
28
|
+
"Template name": "模板名称",
|
|
29
|
+
"Template name is required": "模板名称必填",
|
|
30
|
+
"Template settings": "模板配置",
|
|
31
|
+
"Template is in use and cannot be deleted": "当前模板正在被使用中,无法删除",
|
|
32
|
+
"Usage count": "引用数量",
|
|
33
|
+
"Using reference fields will remove existing fields": "使用引用字段会将当前已经添加的字段移除",
|
|
34
|
+
"This block already references field template, please convert fields to copy first": "当前区块已引用字段模板,请先将引用字段转换为复制",
|
|
35
|
+
"Convert reference to duplicate": "将引用转换为复制",
|
|
36
|
+
"Save as template": "保存为模板",
|
|
37
|
+
"Convert reference to duplicate is unavailable": "将引用转换为复制不可用",
|
|
38
|
+
"Are you sure to convert this template block to copy mode?": "确定将此模板区块转换为复制模式吗?",
|
|
39
|
+
"Convert reference fields to duplicate": "将引用字段转换为复制",
|
|
40
|
+
"Field template": "字段模板",
|
|
41
|
+
"Are you sure to convert referenced fields to copy mode?": "确定将引用字段转换为复制模式吗?",
|
|
42
|
+
"Template missing data source/collection info": "模板缺少数据源/数据表信息",
|
|
43
|
+
"Template collection mismatch": "数据表不匹配:当前为 \"{{expected}}\",模板适用于 \"{{actual}}\"",
|
|
44
|
+
"Template data source mismatch": "数据源不匹配:当前为 \"{{expected}}\",模板适用于 \"{{actual}}\"",
|
|
45
|
+
"No association": "(无)",
|
|
46
|
+
"Template association mismatch": "关联名不匹配:当前为 \"{{expected}}\",模板适用于 \"{{actual}}\"",
|
|
47
|
+
"Popup template": "弹窗模板",
|
|
48
|
+
"Popup templates": "弹窗模板",
|
|
49
|
+
"Select popup template": "选择弹窗模板",
|
|
50
|
+
"Replace current block with reference template": "用模板引用替换当前区块",
|
|
51
|
+
"Replace current popup with reference template": "用模板引用替换当前弹窗",
|
|
52
|
+
"Are you sure to convert this pop-up to copy mode?": "确定将此弹窗转换为复制模式吗?",
|
|
53
|
+
"This pop-up is not using a popup template": "当前弹窗未使用弹窗模板",
|
|
54
|
+
"Converted": "已转换",
|
|
55
|
+
"Only Popup can be saved as popup template": "仅支持将「弹窗」保存为弹窗模板",
|
|
56
|
+
"Popup template not found": "弹窗模板不存在",
|
|
57
|
+
"Failed to duplicate pop-up": "复制弹窗失败",
|
|
58
|
+
"Failed to copy popup from template": "从弹窗模板复制失败",
|
|
59
|
+
"Template field section description": "将使用指定区块模板的字段部分",
|
|
60
|
+
"Reference mode description": "修改区块所有引用该模板的地方都会被修改。",
|
|
61
|
+
"Duplicate mode description": "基于模板生成新内容,所有 UID(包括子节点的 UID)都会重新生成。涉及跨区块的 UID 引用在复制后将不再生效。",
|
|
62
|
+
"Save mode": "保存模式",
|
|
63
|
+
"Convert current block to template": "将当前区块转为模板",
|
|
64
|
+
"Convert current block to template description": "当前区块本身会变成模板引用",
|
|
65
|
+
"Duplicate current block as template": "复制当前区块为模板",
|
|
66
|
+
"Duplicate current block as template description": "保留原区块,复制一份作为模板",
|
|
67
|
+
"Convert current popup to template": "将当前弹窗转为模板",
|
|
68
|
+
"Convert current popup to template description": "当前弹窗本身会变成模板引用",
|
|
69
|
+
"Duplicate current popup as template": "复制当前弹窗为模板",
|
|
70
|
+
"Duplicate current popup as template description": "保留原弹窗,复制一份作为模板"
|
|
71
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Block UID": "Block UID",
|
|
3
|
+
"Block UID is already set and cannot be modified": "Block UID is already set and cannot be modified",
|
|
4
|
+
"Copy": "Copy",
|
|
5
|
+
"Other blocks": "Other blocks",
|
|
6
|
+
"Please configure target block": "Please configure target block",
|
|
7
|
+
"Reference": "Reference",
|
|
8
|
+
"Reference block": "Reference block",
|
|
9
|
+
"Reference mode": "Reference mode",
|
|
10
|
+
"Reference settings": "Reference settings",
|
|
11
|
+
"Some configurations using uid may need to be reconfigured": "Some configurations using uid may need to be reconfigured",
|
|
12
|
+
"Target UID": "Target UID",
|
|
13
|
+
"Target block is invalid": "Target block is invalid"
|
|
14
|
+
}
|