@nocobase/plugin-flow-engine 2.1.0-alpha.28 → 2.1.0-alpha.29

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.
@@ -8,16 +8,16 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
- "@nocobase/client": "2.1.0-alpha.28",
11
+ "@nocobase/client": "2.1.0-alpha.29",
12
12
  "lodash": "4.18.1",
13
- "@nocobase/database": "2.1.0-alpha.28",
14
- "@nocobase/data-source-manager": "2.1.0-alpha.28",
15
- "@nocobase/resourcer": "2.1.0-alpha.28",
16
- "@nocobase/utils": "2.1.0-alpha.28",
17
- "@nocobase/cache": "2.1.0-alpha.28",
18
- "@nocobase/plugin-localization": "2.1.0-alpha.28",
19
- "@nocobase/server": "2.1.0-alpha.28",
20
- "@nocobase/actions": "2.1.0-alpha.28",
13
+ "@nocobase/database": "2.1.0-alpha.29",
14
+ "@nocobase/data-source-manager": "2.1.0-alpha.29",
15
+ "@nocobase/resourcer": "2.1.0-alpha.29",
16
+ "@nocobase/utils": "2.1.0-alpha.29",
17
+ "@nocobase/cache": "2.1.0-alpha.29",
18
+ "@nocobase/plugin-localization": "2.1.0-alpha.29",
19
+ "@nocobase/server": "2.1.0-alpha.29",
20
+ "@nocobase/actions": "2.1.0-alpha.29",
21
21
  "@formily/json-schema": "2.3.7",
22
- "@nocobase/ai": "2.1.0-alpha.28"
22
+ "@nocobase/ai": "2.1.0-alpha.29"
23
23
  };
@@ -1 +1 @@
1
- {"name":"ses","version":"1.14.0","description":"Hardened JavaScript for Fearless Cooperation","keywords":["lockdown","harden","Compartment","assert","security","confinement","isolation","object capabilities","ocaps","secure execution","third-party code","prototype pollution","supply-chain attack","plugin"],"author":"Agoric","license":"Apache-2.0","homepage":"https://github.com/Agoric/SES-shim/tree/master/packages/ses#readme","repository":{"type":"git","url":"git+https://github.com/endojs/endo.git","directory":"packages/ses"},"bugs":{"url":"https://github.com/endojs/endo/issues"},"type":"module","main":"./dist/ses.cjs","module":"./index.js","unpkg":"./dist/ses.umd.js","types":"./types.d.ts","exports":{".":{"import":{"types":"./types.d.ts","xs":"./src-xs/index.js","default":"./index.js"},"require":{"types":"./dist/types.d.cts","default":"./dist/ses.cjs"}},"./lockdown":{"import":{"types":"./types.d.ts","default":"./index.js"},"require":{"types":"./dist/types.d.cts","default":"./dist/ses.cjs"}},"./hermes":{"require":{"types":"./dist/types.d.cts","default":"./dist/ses-hermes.cjs"}},"./tools.js":"./tools.js","./assert-shim.js":"./assert-shim.js","./lockdown-shim.js":{"xs":"./src-xs/lockdown-shim.js","default":"./lockdown-shim.js"},"./compartment-shim.js":{"xs":"./src-xs/compartment-shim.js","default":"./compartment-shim.js"},"./console-shim.js":"./console-shim.js","./package.json":"./package.json"},"scripts":{"build:vanilla":"node scripts/bundle.js","build:hermes":"node scripts/bundle.js hermes","build":"yarn build:vanilla && yarn build:hermes","clean":"rm -rf dist","cover":"c8 ava","demo":"python3 -m http.server","lint":"yarn lint:types && yarn lint:eslint","lint-fix":"eslint --fix .","lint:eslint":"eslint .","lint:types":"tsc","prepare":"npm run clean && npm run build","qt":"ava","test":"tsd && ava","test:hermes":"./scripts/hermes-test.sh","test:xs":"xst dist/ses.umd.js test/_lockdown-safe.js && node scripts/generate-test-xs.js && xst tmp/test-xs.js && rm -rf tmp","postpack":"git clean -fX \"*.d.ts*\" \"*.d.cts*\" \"*.d.mts*\" \"*.tsbuildinfo\""},"dependencies":{"@endo/cache-map":"^1.1.0","@endo/env-options":"^1.1.11","@endo/immutable-arraybuffer":"^1.1.2"},"devDependencies":{"@babel/generator":"^7.26.3","@babel/parser":"~7.26.2","@babel/traverse":"~7.25.9","@babel/types":"~7.26.0","@endo/compartment-mapper":"^1.6.3","@endo/module-source":"^1.3.3","@endo/test262-runner":"^0.1.48","@types/babel__traverse":"^7.20.5","ava":"^6.1.3","babel-eslint":"^10.1.0","c8":"^7.14.0","core-js":"^3.31.0","eslint":"^8.57.1","eslint-config-airbnb-base":"^15.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import":"^2.31.0","hermes-engine-cli":"^0.12.0","prettier":"^3.5.3","terser":"^5.16.6","tsd":"^0.31.2","typescript":"~5.8.3"},"files":["./*.d.ts","./*.js","./*.map","LICENSE*","SECURITY*","dist","lib","src","tools"],"publishConfig":{"access":"public"},"eslintConfig":{"extends":["plugin:@endo/ses"]},"ava":{"files":["test/**/*.test.*"],"timeout":"2m"},"typeCoverage":{"atLeast":81.17},"gitHead":"9815aea9541f241389d2135c6097a7442bdffa17","_lastModified":"2026-05-03T23:59:02.475Z"}
1
+ {"name":"ses","version":"1.14.0","description":"Hardened JavaScript for Fearless Cooperation","keywords":["lockdown","harden","Compartment","assert","security","confinement","isolation","object capabilities","ocaps","secure execution","third-party code","prototype pollution","supply-chain attack","plugin"],"author":"Agoric","license":"Apache-2.0","homepage":"https://github.com/Agoric/SES-shim/tree/master/packages/ses#readme","repository":{"type":"git","url":"git+https://github.com/endojs/endo.git","directory":"packages/ses"},"bugs":{"url":"https://github.com/endojs/endo/issues"},"type":"module","main":"./dist/ses.cjs","module":"./index.js","unpkg":"./dist/ses.umd.js","types":"./types.d.ts","exports":{".":{"import":{"types":"./types.d.ts","xs":"./src-xs/index.js","default":"./index.js"},"require":{"types":"./dist/types.d.cts","default":"./dist/ses.cjs"}},"./lockdown":{"import":{"types":"./types.d.ts","default":"./index.js"},"require":{"types":"./dist/types.d.cts","default":"./dist/ses.cjs"}},"./hermes":{"require":{"types":"./dist/types.d.cts","default":"./dist/ses-hermes.cjs"}},"./tools.js":"./tools.js","./assert-shim.js":"./assert-shim.js","./lockdown-shim.js":{"xs":"./src-xs/lockdown-shim.js","default":"./lockdown-shim.js"},"./compartment-shim.js":{"xs":"./src-xs/compartment-shim.js","default":"./compartment-shim.js"},"./console-shim.js":"./console-shim.js","./package.json":"./package.json"},"scripts":{"build:vanilla":"node scripts/bundle.js","build:hermes":"node scripts/bundle.js hermes","build":"yarn build:vanilla && yarn build:hermes","clean":"rm -rf dist","cover":"c8 ava","demo":"python3 -m http.server","lint":"yarn lint:types && yarn lint:eslint","lint-fix":"eslint --fix .","lint:eslint":"eslint .","lint:types":"tsc","prepare":"npm run clean && npm run build","qt":"ava","test":"tsd && ava","test:hermes":"./scripts/hermes-test.sh","test:xs":"xst dist/ses.umd.js test/_lockdown-safe.js && node scripts/generate-test-xs.js && xst tmp/test-xs.js && rm -rf tmp","postpack":"git clean -fX \"*.d.ts*\" \"*.d.cts*\" \"*.d.mts*\" \"*.tsbuildinfo\""},"dependencies":{"@endo/cache-map":"^1.1.0","@endo/env-options":"^1.1.11","@endo/immutable-arraybuffer":"^1.1.2"},"devDependencies":{"@babel/generator":"^7.26.3","@babel/parser":"~7.26.2","@babel/traverse":"~7.25.9","@babel/types":"~7.26.0","@endo/compartment-mapper":"^1.6.3","@endo/module-source":"^1.3.3","@endo/test262-runner":"^0.1.48","@types/babel__traverse":"^7.20.5","ava":"^6.1.3","babel-eslint":"^10.1.0","c8":"^7.14.0","core-js":"^3.31.0","eslint":"^8.57.1","eslint-config-airbnb-base":"^15.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import":"^2.31.0","hermes-engine-cli":"^0.12.0","prettier":"^3.5.3","terser":"^5.16.6","tsd":"^0.31.2","typescript":"~5.8.3"},"files":["./*.d.ts","./*.js","./*.map","LICENSE*","SECURITY*","dist","lib","src","tools"],"publishConfig":{"access":"public"},"eslintConfig":{"extends":["plugin:@endo/ses"]},"ava":{"files":["test/**/*.test.*"],"timeout":"2m"},"typeCoverage":{"atLeast":81.17},"gitHead":"9815aea9541f241389d2135c6097a7442bdffa17","_lastModified":"2026-05-04T14:27:34.834Z"}
@@ -1 +1 @@
1
- {"name":"zod","version":"4.3.5","type":"module","license":"MIT","author":"Colin McDonnell <zod@colinhacks.com>","description":"TypeScript-first schema declaration and validation library with static type inference","homepage":"https://zod.dev","llms":"https://zod.dev/llms.txt","llmsFull":"https://zod.dev/llms-full.txt","mcpServer":"https://mcp.inkeep.com/zod/mcp","funding":"https://github.com/sponsors/colinhacks","sideEffects":false,"files":["src","**/*.js","**/*.mjs","**/*.cjs","**/*.d.ts","**/*.d.mts","**/*.d.cts","**/package.json"],"keywords":["typescript","schema","validation","type","inference"],"main":"./index.cjs","types":"./index.d.cts","module":"./index.js","zshy":{"exports":{"./package.json":"./package.json",".":"./src/index.ts","./mini":"./src/mini/index.ts","./locales":"./src/locales/index.ts","./v3":"./src/v3/index.ts","./v4":"./src/v4/index.ts","./v4-mini":"./src/v4-mini/index.ts","./v4/mini":"./src/v4/mini/index.ts","./v4/core":"./src/v4/core/index.ts","./v4/locales":"./src/v4/locales/index.ts","./v4/locales/*":"./src/v4/locales/*"},"conditions":{"@zod/source":"src"}},"exports":{"./package.json":"./package.json",".":{"@zod/source":"./src/index.ts","types":"./index.d.cts","import":"./index.js","require":"./index.cjs"},"./mini":{"@zod/source":"./src/mini/index.ts","types":"./mini/index.d.cts","import":"./mini/index.js","require":"./mini/index.cjs"},"./locales":{"@zod/source":"./src/locales/index.ts","types":"./locales/index.d.cts","import":"./locales/index.js","require":"./locales/index.cjs"},"./v3":{"@zod/source":"./src/v3/index.ts","types":"./v3/index.d.cts","import":"./v3/index.js","require":"./v3/index.cjs"},"./v4":{"@zod/source":"./src/v4/index.ts","types":"./v4/index.d.cts","import":"./v4/index.js","require":"./v4/index.cjs"},"./v4-mini":{"@zod/source":"./src/v4-mini/index.ts","types":"./v4-mini/index.d.cts","import":"./v4-mini/index.js","require":"./v4-mini/index.cjs"},"./v4/mini":{"@zod/source":"./src/v4/mini/index.ts","types":"./v4/mini/index.d.cts","import":"./v4/mini/index.js","require":"./v4/mini/index.cjs"},"./v4/core":{"@zod/source":"./src/v4/core/index.ts","types":"./v4/core/index.d.cts","import":"./v4/core/index.js","require":"./v4/core/index.cjs"},"./v4/locales":{"@zod/source":"./src/v4/locales/index.ts","types":"./v4/locales/index.d.cts","import":"./v4/locales/index.js","require":"./v4/locales/index.cjs"},"./v4/locales/*":{"@zod/source":"./src/v4/locales/*","types":"./v4/locales/*","import":"./v4/locales/*","require":"./v4/locales/*"}},"repository":{"type":"git","url":"git+https://github.com/colinhacks/zod.git"},"bugs":{"url":"https://github.com/colinhacks/zod/issues"},"support":{"backing":{"npm-funding":true}},"scripts":{"clean":"git clean -xdf . -e node_modules","build":"zshy --project tsconfig.build.json","postbuild":"tsx ../../scripts/write-stub-package-jsons.ts && pnpm biome check --write .","test:watch":"pnpm vitest","test":"pnpm vitest run","prepublishOnly":"tsx ../../scripts/check-versions.ts"},"_lastModified":"2026-05-03T23:59:03.568Z"}
1
+ {"name":"zod","version":"4.3.5","type":"module","license":"MIT","author":"Colin McDonnell <zod@colinhacks.com>","description":"TypeScript-first schema declaration and validation library with static type inference","homepage":"https://zod.dev","llms":"https://zod.dev/llms.txt","llmsFull":"https://zod.dev/llms-full.txt","mcpServer":"https://mcp.inkeep.com/zod/mcp","funding":"https://github.com/sponsors/colinhacks","sideEffects":false,"files":["src","**/*.js","**/*.mjs","**/*.cjs","**/*.d.ts","**/*.d.mts","**/*.d.cts","**/package.json"],"keywords":["typescript","schema","validation","type","inference"],"main":"./index.cjs","types":"./index.d.cts","module":"./index.js","zshy":{"exports":{"./package.json":"./package.json",".":"./src/index.ts","./mini":"./src/mini/index.ts","./locales":"./src/locales/index.ts","./v3":"./src/v3/index.ts","./v4":"./src/v4/index.ts","./v4-mini":"./src/v4-mini/index.ts","./v4/mini":"./src/v4/mini/index.ts","./v4/core":"./src/v4/core/index.ts","./v4/locales":"./src/v4/locales/index.ts","./v4/locales/*":"./src/v4/locales/*"},"conditions":{"@zod/source":"src"}},"exports":{"./package.json":"./package.json",".":{"@zod/source":"./src/index.ts","types":"./index.d.cts","import":"./index.js","require":"./index.cjs"},"./mini":{"@zod/source":"./src/mini/index.ts","types":"./mini/index.d.cts","import":"./mini/index.js","require":"./mini/index.cjs"},"./locales":{"@zod/source":"./src/locales/index.ts","types":"./locales/index.d.cts","import":"./locales/index.js","require":"./locales/index.cjs"},"./v3":{"@zod/source":"./src/v3/index.ts","types":"./v3/index.d.cts","import":"./v3/index.js","require":"./v3/index.cjs"},"./v4":{"@zod/source":"./src/v4/index.ts","types":"./v4/index.d.cts","import":"./v4/index.js","require":"./v4/index.cjs"},"./v4-mini":{"@zod/source":"./src/v4-mini/index.ts","types":"./v4-mini/index.d.cts","import":"./v4-mini/index.js","require":"./v4-mini/index.cjs"},"./v4/mini":{"@zod/source":"./src/v4/mini/index.ts","types":"./v4/mini/index.d.cts","import":"./v4/mini/index.js","require":"./v4/mini/index.cjs"},"./v4/core":{"@zod/source":"./src/v4/core/index.ts","types":"./v4/core/index.d.cts","import":"./v4/core/index.js","require":"./v4/core/index.cjs"},"./v4/locales":{"@zod/source":"./src/v4/locales/index.ts","types":"./v4/locales/index.d.cts","import":"./v4/locales/index.js","require":"./v4/locales/index.cjs"},"./v4/locales/*":{"@zod/source":"./src/v4/locales/*","types":"./v4/locales/*","import":"./v4/locales/*","require":"./v4/locales/*"}},"repository":{"type":"git","url":"git+https://github.com/colinhacks/zod.git"},"bugs":{"url":"https://github.com/colinhacks/zod/issues"},"support":{"backing":{"npm-funding":true}},"scripts":{"clean":"git clean -xdf . -e node_modules","build":"zshy --project tsconfig.build.json","postbuild":"tsx ../../scripts/write-stub-package-jsons.ts && pnpm biome check --write .","test:watch":"pnpm vitest","test":"pnpm vitest run","prepublishOnly":"tsx ../../scripts/check-versions.ts"},"_lastModified":"2026-05-04T14:27:35.902Z"}
@@ -47,6 +47,7 @@ var import_default_block_actions = require("../default-block-actions");
47
47
  var import_public_data_surface_default_filter = require("../public-data-surface-default-filter");
48
48
  var import_public_compatibility = require("../public-compatibility");
49
49
  var import_defaults = require("./defaults");
50
+ var import_hidden_popup_contract = require("../hidden-popup-contract");
50
51
  var import_private_utils = require("./private-utils");
51
52
  var import_field_type_resolver = require("../field-type-resolver");
52
53
  const APPLY_BLUEPRINT_BLOCK_TYPE_ENUM = [
@@ -163,6 +164,24 @@ function assertNoBlockLevelLayout(input, context) {
163
164
  (0, import_errors.throwBadRequest)(`${context}.layout is not supported; layout is only allowed on tabs[] and popup`);
164
165
  }
165
166
  }
167
+ function normalizeApplyBlueprintCalendarPopupSettings(settings, blockContext, defaultsMetadata) {
168
+ return (0, import_hidden_popup_contract.normalizeBlockHiddenPopupSettings)(
169
+ settings,
170
+ blockContext,
171
+ ["quickCreatePopup", "eventPopup"],
172
+ defaultsMetadata,
173
+ import_errors.throwBadRequest
174
+ );
175
+ }
176
+ function normalizeApplyBlueprintKanbanPopupSettings(settings, blockContext, defaultsMetadata) {
177
+ return (0, import_hidden_popup_contract.normalizeBlockHiddenPopupSettings)(
178
+ settings,
179
+ blockContext,
180
+ ["quickCreatePopup", "cardPopup"],
181
+ defaultsMetadata,
182
+ import_errors.throwBadRequest
183
+ );
184
+ }
166
185
  function assertApplyBlueprintFieldsLayoutHost(block, context) {
167
186
  if (!Object.prototype.hasOwnProperty.call(block, "fieldsLayout")) {
168
187
  return;
@@ -1026,6 +1045,11 @@ function compileBlocks(input, scopePrefix, assets, context, defaults, requiredEx
1026
1045
  type: blockType,
1027
1046
  settings
1028
1047
  });
1048
+ if (blockType === "calendar") {
1049
+ settings = normalizeApplyBlueprintCalendarPopupSettings(settings, blockContext, popupDefaultsMetadata);
1050
+ } else if (blockType === "kanban") {
1051
+ settings = normalizeApplyBlueprintKanbanPopupSettings(settings, blockContext, popupDefaultsMetadata);
1052
+ }
1029
1053
  const template = ensureOptionalTemplate(block.template, `${blockContext}.template`);
1030
1054
  const blockDefaultFilter = (0, import_public_data_surface_default_filter.normalizeFlowSurfacePublicBlockDefaultFilter)("applyBlueprint", block.defaultFilter, {
1031
1055
  blockType,
@@ -54,6 +54,7 @@ var import_catalog = require("./catalog");
54
54
  var import_chart_config = require("./chart-config");
55
55
  var import_approval = require("./approval");
56
56
  var import_service_utils = require("./service-utils");
57
+ var import_hidden_popup_contract = require("./hidden-popup-contract");
57
58
  const JS_BLOCK_DEFAULT_CODE = [
58
59
  "// Welcome to the JS block",
59
60
  "ctx.render(`",
@@ -122,11 +123,75 @@ const CALENDAR_QUICK_CREATE_ACTION_KEY = "quickCreateAction";
122
123
  const CALENDAR_EVENT_VIEW_ACTION_KEY = "eventViewAction";
123
124
  const KANBAN_QUICK_CREATE_ACTION_KEY = "quickCreateAction";
124
125
  const KANBAN_CARD_VIEW_ACTION_KEY = "cardViewAction";
126
+ const KANBAN_LEGACY_PARENT_CARD_POPUP_PROP_KEYS = [
127
+ "cardOpenMode",
128
+ "cardPopupSize",
129
+ "cardPopupTemplateUid",
130
+ "cardPopupPageModelClass",
131
+ "cardPopupTargetUid"
132
+ ];
133
+ const KANBAN_LEGACY_QUICK_CREATE_POPUP_PROP_KEYS = [
134
+ "popupMode",
135
+ "popupSize",
136
+ "popupTemplateUid",
137
+ "popupPageModelClass",
138
+ "popupTargetUid"
139
+ ];
140
+ const KANBAN_BLOCK_CARD_POPUP_STEP_PARAMS_PATH = ["cardSettings", "popup"];
125
141
  const CALENDAR_READONLY_ACTION_MODEL_USES = /* @__PURE__ */ new Set([
126
142
  "CalendarNavActionModel",
127
143
  "CalendarTitleActionModel",
128
144
  "CalendarViewSelectActionModel"
129
145
  ]);
146
+ function resolveModelStepParamsOrLegacyObject(model, path, legacyValue) {
147
+ if (import_lodash.default.has(model.stepParams, path)) {
148
+ const value = import_lodash.default.get(model.stepParams, path);
149
+ return import_lodash.default.isPlainObject(value) ? value : {};
150
+ }
151
+ return import_lodash.default.isPlainObject(legacyValue) ? legacyValue : void 0;
152
+ }
153
+ function resolvePersistableModelStepParamsOrLegacyObject(model, path, legacyValue) {
154
+ const value = resolveModelStepParamsOrLegacyObject(model, path, legacyValue);
155
+ if (!import_lodash.default.isPlainObject(value)) {
156
+ return void 0;
157
+ }
158
+ const normalized = normalizeInitialKanbanPopupSettings(value);
159
+ return Object.keys(normalized).length ? normalized : void 0;
160
+ }
161
+ function extractPersistableModelStepParamsOrLegacyObject(model, path, legacyValue) {
162
+ const value = resolvePersistableModelStepParamsOrLegacyObject(model, path, legacyValue);
163
+ import_lodash.default.unset(model.stepParams, path);
164
+ return value;
165
+ }
166
+ function persistModelPopupStepParams(model, path, popupSettings) {
167
+ if (!import_lodash.default.isPlainObject(popupSettings)) {
168
+ return;
169
+ }
170
+ import_lodash.default.set(model.stepParams, path, import_lodash.default.cloneDeep(popupSettings));
171
+ }
172
+ function normalizeInitialKanbanPopupSettings(popupSettings) {
173
+ return (0, import_hidden_popup_contract.normalizeHiddenPopupSettings)(popupSettings);
174
+ }
175
+ function normalizeInitialKanbanPopupSettingsFromProps(actionKey, props) {
176
+ if (!import_lodash.default.isPlainObject(props)) {
177
+ return void 0;
178
+ }
179
+ const rawSettings = actionKey === KANBAN_QUICK_CREATE_ACTION_KEY ? (0, import_service_utils.buildDefinedPayload)({
180
+ mode: props.popupMode,
181
+ size: props.popupSize,
182
+ popupTemplateUid: props.popupTemplateUid,
183
+ pageModelClass: props.popupPageModelClass,
184
+ uid: props.popupTargetUid
185
+ }) : (0, import_service_utils.buildDefinedPayload)({
186
+ mode: props.cardOpenMode,
187
+ size: props.cardPopupSize,
188
+ popupTemplateUid: props.cardPopupTemplateUid,
189
+ pageModelClass: props.cardPopupPageModelClass,
190
+ uid: props.cardPopupTargetUid
191
+ });
192
+ const normalized = normalizeInitialKanbanPopupSettings(rawSettings);
193
+ return Object.keys(normalized).length ? normalized : void 0;
194
+ }
130
195
  const JS_ACTION_DEFAULT_CODE_BY_USE = {
131
196
  JSCollectionActionModel: [
132
197
  "const rows = ctx.resource?.getSelectedRows?.() || [];",
@@ -217,7 +282,7 @@ function buildSyntheticRootPageTabModel(options) {
217
282
  };
218
283
  }
219
284
  function buildBlockTree(options) {
220
- var _a, _b;
285
+ var _a, _b, _c, _d;
221
286
  const use = (0, import_catalog.resolveSupportedBlockCatalogItem)(
222
287
  {
223
288
  type: options.type,
@@ -365,10 +430,38 @@ function buildBlockTree(options) {
365
430
  } else if (use === "KanbanBlockModel") {
366
431
  const blockUid = model.uid || (0, import_utils.uid)();
367
432
  model.uid = blockUid;
433
+ const quickCreatePopupSettings = resolvePersistableModelStepParamsOrLegacyObject(
434
+ model,
435
+ ["kanbanSettings", "popup"],
436
+ (_a = model.props) == null ? void 0 : _a.quickCreatePopupSettings
437
+ ) || normalizeInitialKanbanPopupSettingsFromProps(KANBAN_QUICK_CREATE_ACTION_KEY, model.props);
438
+ const cardPopupSettings = extractPersistableModelStepParamsOrLegacyObject(
439
+ model,
440
+ KANBAN_BLOCK_CARD_POPUP_STEP_PARAMS_PATH,
441
+ (_b = model.props) == null ? void 0 : _b.cardPopupSettings
442
+ ) || normalizeInitialKanbanPopupSettingsFromProps(KANBAN_CARD_VIEW_ACTION_KEY, model.props);
443
+ persistModelPopupStepParams(model, ["kanbanSettings", "popup"], quickCreatePopupSettings);
444
+ if (model.props) {
445
+ delete model.props.quickCreatePopupSettings;
446
+ delete model.props.cardPopupSettings;
447
+ for (const propKey of KANBAN_LEGACY_QUICK_CREATE_POPUP_PROP_KEYS) {
448
+ delete model.props[propKey];
449
+ }
450
+ for (const propKey of KANBAN_LEGACY_PARENT_CARD_POPUP_PROP_KEYS) {
451
+ delete model.props[propKey];
452
+ }
453
+ }
368
454
  model.subModels = {
369
455
  item: {
370
456
  uid: (0, import_utils.uid)(),
371
457
  use: "KanbanCardItemModel",
458
+ ...cardPopupSettings && import_lodash.default.isPlainObject(cardPopupSettings) ? {
459
+ stepParams: {
460
+ cardSettings: {
461
+ popup: import_lodash.default.cloneDeep(cardPopupSettings)
462
+ }
463
+ }
464
+ } : {},
372
465
  subModels: {
373
466
  grid: {
374
467
  uid: (0, import_utils.uid)(),
@@ -379,29 +472,47 @@ function buildBlockTree(options) {
379
472
  [KANBAN_QUICK_CREATE_ACTION_KEY]: buildKanbanPopupActionNode({
380
473
  actionKey: KANBAN_QUICK_CREATE_ACTION_KEY,
381
474
  blockUid,
382
- resourceInit: normalizedResourceInit
475
+ resourceInit: normalizedResourceInit,
476
+ popupSettings: quickCreatePopupSettings
383
477
  }),
384
478
  [KANBAN_CARD_VIEW_ACTION_KEY]: buildKanbanPopupActionNode({
385
479
  actionKey: KANBAN_CARD_VIEW_ACTION_KEY,
386
480
  blockUid,
387
- resourceInit: normalizedResourceInit
481
+ resourceInit: normalizedResourceInit,
482
+ popupSettings: cardPopupSettings
388
483
  })
389
484
  };
390
485
  } else if (use === "CalendarBlockModel") {
391
486
  const blockUid = model.uid || (0, import_utils.uid)();
392
487
  model.uid = blockUid;
488
+ const quickCreatePopupSettings = resolveModelStepParamsOrLegacyObject(
489
+ model,
490
+ ["calendarSettings", "quickCreatePopupSettings"],
491
+ (_c = model.props) == null ? void 0 : _c.quickCreatePopupSettings
492
+ );
493
+ const eventPopupSettings = resolveModelStepParamsOrLegacyObject(
494
+ model,
495
+ ["calendarSettings", "eventPopupSettings"],
496
+ (_d = model.props) == null ? void 0 : _d.eventPopupSettings
497
+ );
498
+ persistModelPopupStepParams(model, ["calendarSettings", "quickCreatePopupSettings"], quickCreatePopupSettings);
499
+ persistModelPopupStepParams(model, ["calendarSettings", "eventPopupSettings"], eventPopupSettings);
500
+ if (model.props) {
501
+ delete model.props.quickCreatePopupSettings;
502
+ delete model.props.eventPopupSettings;
503
+ }
393
504
  model.subModels = {
394
505
  [CALENDAR_QUICK_CREATE_ACTION_KEY]: buildCalendarPopupActionNode({
395
506
  actionKey: CALENDAR_QUICK_CREATE_ACTION_KEY,
396
507
  blockUid,
397
508
  resourceInit: normalizedResourceInit,
398
- popupSettings: (_a = model.props) == null ? void 0 : _a.quickCreatePopupSettings
509
+ popupSettings: quickCreatePopupSettings
399
510
  }),
400
511
  [CALENDAR_EVENT_VIEW_ACTION_KEY]: buildCalendarPopupActionNode({
401
512
  actionKey: CALENDAR_EVENT_VIEW_ACTION_KEY,
402
513
  blockUid,
403
514
  resourceInit: normalizedResourceInit,
404
- popupSettings: (_b = model.props) == null ? void 0 : _b.eventPopupSettings
515
+ popupSettings: eventPopupSettings
405
516
  })
406
517
  };
407
518
  }
@@ -424,29 +535,12 @@ function buildKanbanPopupActionNode(options) {
424
535
  };
425
536
  }
426
537
  function buildKanbanPopupOpenView(options) {
427
- var _a, _b, _c;
428
- const defaults = import_lodash.default.pickBy(
429
- {
430
- mode: "drawer",
431
- size: "medium",
432
- pageModelClass: "ChildPageModel",
433
- uid: options.actionUid,
434
- collectionName: (_a = options.resourceInit) == null ? void 0 : _a.collectionName,
435
- dataSourceKey: ((_b = options.resourceInit) == null ? void 0 : _b.dataSourceKey) || (((_c = options.resourceInit) == null ? void 0 : _c.collectionName) ? "main" : void 0)
436
- },
437
- (value) => !import_lodash.default.isUndefined(value)
438
- );
439
- const current = import_lodash.default.cloneDeep(options.popupSettings || {});
440
- return import_lodash.default.pickBy(
441
- {
442
- ...defaults,
443
- ...current,
444
- uid: current.uid || defaults.uid,
445
- collectionName: current.collectionName || defaults.collectionName,
446
- dataSourceKey: current.dataSourceKey || defaults.dataSourceKey
447
- },
448
- (value) => !import_lodash.default.isUndefined(value)
449
- );
538
+ return (0, import_hidden_popup_contract.buildHiddenPopupOpenView)({
539
+ actionUid: options.actionUid,
540
+ resourceInit: options.resourceInit,
541
+ popupSettings: options.popupSettings,
542
+ normalizePopupSettings: normalizeInitialKanbanPopupSettings
543
+ });
450
544
  }
451
545
  function buildCalendarPopupActionNode(options) {
452
546
  const actionUid = `${options.blockUid}-${options.actionKey}`;
@@ -465,29 +559,7 @@ function buildCalendarPopupActionNode(options) {
465
559
  };
466
560
  }
467
561
  function buildCalendarPopupOpenView(options) {
468
- var _a, _b, _c;
469
- const defaults = import_lodash.default.pickBy(
470
- {
471
- mode: "drawer",
472
- size: "medium",
473
- pageModelClass: "ChildPageModel",
474
- uid: options.actionUid,
475
- collectionName: (_a = options.resourceInit) == null ? void 0 : _a.collectionName,
476
- dataSourceKey: ((_b = options.resourceInit) == null ? void 0 : _b.dataSourceKey) || (((_c = options.resourceInit) == null ? void 0 : _c.collectionName) ? "main" : void 0)
477
- },
478
- (value) => !import_lodash.default.isUndefined(value)
479
- );
480
- const current = import_lodash.default.cloneDeep(options.popupSettings || {});
481
- return import_lodash.default.pickBy(
482
- {
483
- ...defaults,
484
- ...current,
485
- uid: current.uid || defaults.uid,
486
- collectionName: current.collectionName || defaults.collectionName,
487
- dataSourceKey: current.dataSourceKey || defaults.dataSourceKey
488
- },
489
- (value) => !import_lodash.default.isUndefined(value)
490
- );
562
+ return (0, import_hidden_popup_contract.buildHiddenPopupOpenView)(options);
491
563
  }
492
564
  function buildPopupPageTree(options) {
493
565
  const pageUid = options.pageUid || (0, import_utils.uid)();
@@ -327,6 +327,8 @@ const CALENDAR_SETTINGS_GROUP = {
327
327
  "quickCreateEvent.enableQuickCreateEvent",
328
328
  "showLunar.showLunar",
329
329
  "weekStart.weekStart",
330
+ "quickCreatePopupSettings",
331
+ "eventPopupSettings",
330
332
  "dataScope.filter",
331
333
  "linkageRules.value"
332
334
  ],
@@ -342,6 +344,8 @@ const CALENDAR_SETTINGS_GROUP = {
342
344
  "quickCreateEvent.enableQuickCreateEvent": BOOLEAN_SCHEMA,
343
345
  "showLunar.showLunar": BOOLEAN_SCHEMA,
344
346
  "weekStart.weekStart": NUMBER_SCHEMA,
347
+ quickCreatePopupSettings: OBJECT_SCHEMA,
348
+ eventPopupSettings: OBJECT_SCHEMA,
345
349
  "dataScope.filter": FILTER_GROUP_SCHEMA,
346
350
  "linkageRules.value": ARRAY_SCHEMA
347
351
  }
@@ -390,8 +394,20 @@ const KANBAN_SETTINGS_GROUP = {
390
394
  "popup.mode",
391
395
  "popup.size",
392
396
  "popup.popupTemplateUid",
397
+ "popup.popupTemplateContext",
398
+ "popup.popupTemplateMode",
399
+ "popup.popupTemplateHasFilterByTk",
400
+ "popup.popupTemplateHasSourceId",
393
401
  "popup.pageModelClass",
394
402
  "popup.uid",
403
+ "popup.collectionName",
404
+ "popup.dataSourceKey",
405
+ "popup.associationName",
406
+ "popup.filterByTk",
407
+ "popup.sourceId",
408
+ "popup.title",
409
+ "popup.template",
410
+ "popup.tryTemplate",
395
411
  "pageSize.pageSize",
396
412
  "columnWidth.columnWidth",
397
413
  "dataScope.filter"
@@ -412,8 +428,20 @@ const KANBAN_SETTINGS_GROUP = {
412
428
  "popup.mode": STRING_SCHEMA,
413
429
  "popup.size": STRING_SCHEMA,
414
430
  "popup.popupTemplateUid": NULLABLE_STRING_SCHEMA,
431
+ "popup.popupTemplateContext": BOOLEAN_SCHEMA,
432
+ "popup.popupTemplateMode": STRING_SCHEMA,
433
+ "popup.popupTemplateHasFilterByTk": BOOLEAN_SCHEMA,
434
+ "popup.popupTemplateHasSourceId": BOOLEAN_SCHEMA,
415
435
  "popup.pageModelClass": NULLABLE_STRING_SCHEMA,
416
436
  "popup.uid": NULLABLE_STRING_SCHEMA,
437
+ "popup.collectionName": STRING_SCHEMA,
438
+ "popup.dataSourceKey": STRING_SCHEMA,
439
+ "popup.associationName": NULLABLE_STRING_SCHEMA,
440
+ "popup.filterByTk": STRING_SCHEMA,
441
+ "popup.sourceId": STRING_SCHEMA,
442
+ "popup.title": STRING_SCHEMA,
443
+ "popup.template": OBJECT_SCHEMA,
444
+ "popup.tryTemplate": BOOLEAN_SCHEMA,
417
445
  "pageSize.pageSize": NUMBER_SCHEMA,
418
446
  "columnWidth.columnWidth": NUMBER_SCHEMA,
419
447
  "dataScope.filter": FILTER_GROUP_SCHEMA
@@ -1141,8 +1169,20 @@ KANBAN_CARD_ITEM_CONTRACT.domains.stepParams = groupedDomain({
1141
1169
  "popup.mode",
1142
1170
  "popup.size",
1143
1171
  "popup.popupTemplateUid",
1172
+ "popup.popupTemplateContext",
1173
+ "popup.popupTemplateMode",
1174
+ "popup.popupTemplateHasFilterByTk",
1175
+ "popup.popupTemplateHasSourceId",
1144
1176
  "popup.pageModelClass",
1145
1177
  "popup.uid",
1178
+ "popup.collectionName",
1179
+ "popup.dataSourceKey",
1180
+ "popup.associationName",
1181
+ "popup.filterByTk",
1182
+ "popup.sourceId",
1183
+ "popup.title",
1184
+ "popup.template",
1185
+ "popup.tryTemplate",
1146
1186
  "layout.layout",
1147
1187
  "layout.labelAlign",
1148
1188
  "layout.labelWidth",
@@ -1157,8 +1197,20 @@ KANBAN_CARD_ITEM_CONTRACT.domains.stepParams = groupedDomain({
1157
1197
  "popup.mode": STRING_SCHEMA,
1158
1198
  "popup.size": STRING_SCHEMA,
1159
1199
  "popup.popupTemplateUid": NULLABLE_STRING_SCHEMA,
1200
+ "popup.popupTemplateContext": BOOLEAN_SCHEMA,
1201
+ "popup.popupTemplateMode": STRING_SCHEMA,
1202
+ "popup.popupTemplateHasFilterByTk": BOOLEAN_SCHEMA,
1203
+ "popup.popupTemplateHasSourceId": BOOLEAN_SCHEMA,
1160
1204
  "popup.pageModelClass": NULLABLE_STRING_SCHEMA,
1161
1205
  "popup.uid": NULLABLE_STRING_SCHEMA,
1206
+ "popup.collectionName": STRING_SCHEMA,
1207
+ "popup.dataSourceKey": STRING_SCHEMA,
1208
+ "popup.associationName": NULLABLE_STRING_SCHEMA,
1209
+ "popup.filterByTk": STRING_SCHEMA,
1210
+ "popup.sourceId": STRING_SCHEMA,
1211
+ "popup.title": STRING_SCHEMA,
1212
+ "popup.template": OBJECT_SCHEMA,
1213
+ "popup.tryTemplate": BOOLEAN_SCHEMA,
1162
1214
  "layout.layout": STRING_SCHEMA,
1163
1215
  "layout.labelAlign": STRING_SCHEMA,
1164
1216
  "layout.labelWidth": NULLABLE_NUMBER_OR_STRING_SCHEMA,
@@ -678,6 +678,10 @@ function getActionConfigureOptionsByUse(use) {
678
678
  case "ViewActionModel":
679
679
  case "EditActionModel":
680
680
  case "PopupCollectionActionModel":
681
+ case "CalendarQuickCreateActionModel":
682
+ case "CalendarEventViewActionModel":
683
+ case "KanbanQuickCreateActionModel":
684
+ case "KanbanCardViewActionModel":
681
685
  case "UploadActionModel":
682
686
  return merged(ACTION_OPEN_VIEW_OPTIONS, ACTION_LINKAGE_OPTIONS);
683
687
  case "DeleteActionModel":
@@ -0,0 +1,86 @@
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 _ from 'lodash';
10
+ export declare const CALENDAR_POPUP_ACTION_KEYS: readonly ["quickCreateAction", "eventViewAction"];
11
+ export type CalendarPopupActionKey = (typeof CALENDAR_POPUP_ACTION_KEYS)[number];
12
+ export declare const CALENDAR_POPUP_PROP_KEYS: readonly ["quickCreatePopupSettings", "eventPopupSettings"];
13
+ export type HiddenPopupOpenViewNormalizer = (actionName: string, value: any, options: {
14
+ transaction?: any;
15
+ popupTemplateHostUid?: string;
16
+ popupActionContext?: {
17
+ hasCurrentRecord?: boolean;
18
+ };
19
+ }) => Promise<Record<string, any> | undefined> | Record<string, any> | undefined;
20
+ export type HiddenPopupTemplateOpenViewBuilder = (input: {
21
+ actionName: string;
22
+ actionUid: string;
23
+ openView: Record<string, any>;
24
+ popupSettings?: Record<string, any>;
25
+ existingHost?: any;
26
+ transaction?: any;
27
+ hasCurrentRecord?: boolean;
28
+ normalizePopupSettings: (popupSettings?: Record<string, any>) => Record<string, any>;
29
+ mergeDisplaySettings: (openView: Record<string, any>, popupSettings?: Record<string, any>, fallbackOpenView?: Record<string, any> | null) => Record<string, any>;
30
+ }) => Promise<Record<string, any>> | Record<string, any>;
31
+ export type HiddenPopupHostDefaultContentEnsurer = (input: {
32
+ actionName: string;
33
+ actionUid: string;
34
+ popupSettings?: Record<string, any>;
35
+ transaction?: any;
36
+ hasCurrentRecord?: boolean;
37
+ mergeDisplaySettings: (openView: Record<string, any>, popupSettings?: Record<string, any>, fallbackOpenView?: Record<string, any> | null) => Record<string, any>;
38
+ }) => Promise<boolean> | boolean;
39
+ export type HiddenPopupHostRuntime = {
40
+ repository: {
41
+ findModelById: (uid: string, options?: any) => Promise<any>;
42
+ patch: (payload: Record<string, any>, options?: any) => Promise<any>;
43
+ upsertModel: (payload: Record<string, any>, options?: any) => Promise<any>;
44
+ };
45
+ buildPopupOpenViewWithTemplate: HiddenPopupTemplateOpenViewBuilder;
46
+ clearFlowTemplateUsagesForNodeTree: (uid: string, transaction?: any) => Promise<any>;
47
+ ensurePopupHostDefaultContent: HiddenPopupHostDefaultContentEnsurer;
48
+ reconcilePopupOpenViewTransition: (uid: string, currentOpenView: Record<string, any> | null | undefined, nextOpenView: Record<string, any>, transaction?: any) => Promise<any>;
49
+ removeNodeTreeWithBindings: (uid: string, transaction?: any) => Promise<any>;
50
+ syncFlowTemplateUsagesForNodeTree: (uid: string, transaction?: any) => Promise<any>;
51
+ };
52
+ export declare function normalizeCalendarPopupSettings(actionKey: CalendarPopupActionKey, popupSettings?: Record<string, any>): Record<string, any>;
53
+ export declare function getCalendarPopupActionUse(actionKey: CalendarPopupActionKey): "CalendarQuickCreateActionModel" | "CalendarEventViewActionModel";
54
+ export declare function getCalendarPopupPropKey(actionKey: CalendarPopupActionKey): "quickCreatePopupSettings" | "eventPopupSettings";
55
+ export declare function getCalendarPopupActionUid(calendarUid: string, actionKey: CalendarPopupActionKey): string;
56
+ export declare function getCalendarBlockResourceInit(blockNode: any): any;
57
+ export declare function getCalendarPopupStoredSettings(blockNode: any, actionKey: CalendarPopupActionKey): Record<string, any>;
58
+ export declare function replaceCalendarStoredPopupSettings(runtime: Pick<HiddenPopupHostRuntime, 'repository'>, blockNode: any, actionKey: CalendarPopupActionKey, popupSettings: Record<string, any>, transaction?: any): Promise<void>;
59
+ export declare function buildCalendarInitialStepParams(input: {
60
+ stepParams?: Record<string, any>;
61
+ props?: Record<string, any>;
62
+ settings?: Record<string, any>;
63
+ }): Record<string, any>;
64
+ export declare function buildCalendarPopupOpenView(input: {
65
+ blockNode: any;
66
+ actionKey: CalendarPopupActionKey;
67
+ resourceInit?: Record<string, any>;
68
+ popupSettings?: Record<string, any>;
69
+ }): _.Dictionary<any>;
70
+ export declare function mergeCalendarPopupSettings(actionKey: CalendarPopupActionKey, current: any, value: any): Record<string, any>;
71
+ export declare function stripCalendarPopupTargetSettingsForResourceChange(actionKey: CalendarPopupActionKey, popupSettings?: Record<string, any>): Record<string, any>;
72
+ export declare function normalizeCalendarPopupConfigureValue(input: {
73
+ actionName: string;
74
+ blockUid: string;
75
+ actionKey: CalendarPopupActionKey;
76
+ value: any;
77
+ transaction?: any;
78
+ normalizeOpenView: HiddenPopupOpenViewNormalizer;
79
+ }): Promise<Record<string, any>>;
80
+ export declare function normalizeCalendarInlineSettingsForConfigure(settings?: Record<string, any>): Record<string, any>;
81
+ export declare function resolveCalendarInitialPopupOverride(settings: Record<string, any> | undefined, primaryKey: 'quickCreatePopup' | 'eventPopup', legacyKey: 'quickCreatePopupSettings' | 'eventPopupSettings'): any;
82
+ export declare function ensureCalendarBlockPopupHosts(runtime: HiddenPopupHostRuntime, blockNode: any, transaction?: any, popupSettingsOverrides?: Partial<Record<CalendarPopupActionKey, Record<string, any> | undefined>>, options?: {
83
+ displayFallbackOpenViews?: Partial<Record<CalendarPopupActionKey, Record<string, any> | undefined>>;
84
+ }): Promise<any>;
85
+ export declare function projectCalendarBlockPopupHosts<T = any>(node: T): T;
86
+ export declare function projectCalendarBlockPopupHostsInTree<T = any>(node: T): T;