@ibiz-template/runtime 0.7.41-alpha.7 → 0.7.41-alpha.8

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.
Files changed (40) hide show
  1. package/dist/index.esm.js +427 -287
  2. package/dist/index.system.min.js +1 -1
  3. package/out/controller/common/editor/editor.controller.d.ts.map +1 -1
  4. package/out/controller/common/editor/editor.controller.js +3 -0
  5. package/out/controller/control/data-view/data-view.controller.d.ts +9 -11
  6. package/out/controller/control/data-view/data-view.controller.d.ts.map +1 -1
  7. package/out/controller/control/data-view/data-view.controller.js +30 -37
  8. package/out/controller/control/form/edit-form/edit-form.service.d.ts.map +1 -1
  9. package/out/controller/control/form/edit-form/edit-form.service.js +5 -1
  10. package/out/controller/control/kanban/kanban.controller.d.ts +31 -12
  11. package/out/controller/control/kanban/kanban.controller.d.ts.map +1 -1
  12. package/out/controller/control/kanban/kanban.controller.js +146 -50
  13. package/out/controller/ctx/ctx.js +2 -2
  14. package/out/interface/api/controller/control/i-api-edit-form.controller.d.ts +1 -0
  15. package/out/interface/api/controller/control/i-api-edit-form.controller.d.ts.map +1 -1
  16. package/out/interface/api/controller/control/i-api-kanban.controller.d.ts +2 -0
  17. package/out/interface/api/controller/control/i-api-kanban.controller.d.ts.map +1 -1
  18. package/out/interface/common/i-modal/i-modal.d.ts +3 -0
  19. package/out/interface/common/i-modal/i-modal.d.ts.map +1 -1
  20. package/out/interface/controller/controller/common/i-drag-change-info.d.ts +22 -14
  21. package/out/interface/controller/controller/common/i-drag-change-info.d.ts.map +1 -1
  22. package/out/interface/controller/state/control/i-data-view-control.state.d.ts +8 -0
  23. package/out/interface/controller/state/control/i-data-view-control.state.d.ts.map +1 -1
  24. package/out/interface/controller/state/control/i-kanban.state.d.ts +43 -8
  25. package/out/interface/controller/state/control/i-kanban.state.d.ts.map +1 -1
  26. package/out/interface/util/i-app-util/i-app-util.d.ts +6 -0
  27. package/out/interface/util/i-app-util/i-app-util.d.ts.map +1 -1
  28. package/out/ui-action/provider/custom-ui-action-provider.js +1 -1
  29. package/out/ui-action/provider/front-ui-action-provider.d.ts.map +1 -1
  30. package/out/ui-action/provider/front-ui-action-provider.js +54 -40
  31. package/out/ui-action/provider/ui-action-provider-base.d.ts +1 -0
  32. package/out/ui-action/provider/ui-action-provider-base.d.ts.map +1 -1
  33. package/out/ui-action/provider/ui-action-provider-base.js +14 -2
  34. package/out/ui-action/uiaction-util.js +2 -2
  35. package/out/ui-logic/ui-logic.d.ts.map +1 -1
  36. package/out/ui-logic/ui-logic.js +5 -1
  37. package/out/utils/modal/modal.d.ts +3 -0
  38. package/out/utils/modal/modal.d.ts.map +1 -1
  39. package/out/utils/modal/modal.js +7 -0
  40. package/package.json +4 -4
package/dist/index.esm.js CHANGED
@@ -16623,25 +16623,25 @@ var require_html2canvas = __commonJS({
16623
16623
  if (isStyleElement(node)) {
16624
16624
  return this.createStyleClone(node);
16625
16625
  }
16626
- var clone54 = node.cloneNode(false);
16627
- if (isImageElement(clone54)) {
16626
+ var clone55 = node.cloneNode(false);
16627
+ if (isImageElement(clone55)) {
16628
16628
  if (isImageElement(node) && node.currentSrc && node.currentSrc !== node.src) {
16629
- clone54.src = node.currentSrc;
16630
- clone54.srcset = "";
16629
+ clone55.src = node.currentSrc;
16630
+ clone55.srcset = "";
16631
16631
  }
16632
- if (clone54.loading === "lazy") {
16633
- clone54.loading = "eager";
16632
+ if (clone55.loading === "lazy") {
16633
+ clone55.loading = "eager";
16634
16634
  }
16635
16635
  }
16636
- if (isCustomElement(clone54)) {
16637
- return this.createCustomElementClone(clone54);
16636
+ if (isCustomElement(clone55)) {
16637
+ return this.createCustomElementClone(clone55);
16638
16638
  }
16639
- return clone54;
16639
+ return clone55;
16640
16640
  };
16641
16641
  DocumentCloner2.prototype.createCustomElementClone = function(node) {
16642
- var clone54 = document.createElement("html2canvascustomelement");
16643
- copyCSSStyles(node.style, clone54);
16644
- return clone54;
16642
+ var clone55 = document.createElement("html2canvascustomelement");
16643
+ copyCSSStyles(node.style, clone55);
16644
+ return clone55;
16645
16645
  };
16646
16646
  DocumentCloner2.prototype.createStyleClone = function(node) {
16647
16647
  try {
@@ -16723,25 +16723,25 @@ var require_html2canvas = __commonJS({
16723
16723
  blankCanvas.height = video.offsetHeight;
16724
16724
  return blankCanvas;
16725
16725
  };
16726
- DocumentCloner2.prototype.appendChildNode = function(clone54, child, copyStyles) {
16726
+ DocumentCloner2.prototype.appendChildNode = function(clone55, child, copyStyles) {
16727
16727
  if (!isElementNode(child) || !isScriptElement(child) && !child.hasAttribute(IGNORE_ATTRIBUTE) && (typeof this.options.ignoreElements !== "function" || !this.options.ignoreElements(child))) {
16728
16728
  if (!this.options.copyStyles || !isElementNode(child) || !isStyleElement(child)) {
16729
- clone54.appendChild(this.cloneNode(child, copyStyles));
16729
+ clone55.appendChild(this.cloneNode(child, copyStyles));
16730
16730
  }
16731
16731
  }
16732
16732
  };
16733
- DocumentCloner2.prototype.cloneChildNodes = function(node, clone54, copyStyles) {
16733
+ DocumentCloner2.prototype.cloneChildNodes = function(node, clone55, copyStyles) {
16734
16734
  var _this = this;
16735
16735
  for (var child = node.shadowRoot ? node.shadowRoot.firstChild : node.firstChild; child; child = child.nextSibling) {
16736
16736
  if (isElementNode(child) && isSlotElement(child) && typeof child.assignedNodes === "function") {
16737
16737
  var assignedNodes = child.assignedNodes();
16738
16738
  if (assignedNodes.length) {
16739
16739
  assignedNodes.forEach(function(assignedNode) {
16740
- return _this.appendChildNode(clone54, assignedNode, copyStyles);
16740
+ return _this.appendChildNode(clone55, assignedNode, copyStyles);
16741
16741
  });
16742
16742
  }
16743
16743
  } else {
16744
- this.appendChildNode(clone54, child, copyStyles);
16744
+ this.appendChildNode(clone55, child, copyStyles);
16745
16745
  }
16746
16746
  }
16747
16747
  };
@@ -16754,53 +16754,53 @@ var require_html2canvas = __commonJS({
16754
16754
  }
16755
16755
  var window2 = node.ownerDocument.defaultView;
16756
16756
  if (window2 && isElementNode(node) && (isHTMLElementNode(node) || isSVGElementNode(node))) {
16757
- var clone54 = this.createElementClone(node);
16758
- clone54.style.transitionProperty = "none";
16757
+ var clone55 = this.createElementClone(node);
16758
+ clone55.style.transitionProperty = "none";
16759
16759
  var style = window2.getComputedStyle(node);
16760
16760
  var styleBefore = window2.getComputedStyle(node, ":before");
16761
16761
  var styleAfter = window2.getComputedStyle(node, ":after");
16762
- if (this.referenceElement === node && isHTMLElementNode(clone54)) {
16763
- this.clonedReferenceElement = clone54;
16762
+ if (this.referenceElement === node && isHTMLElementNode(clone55)) {
16763
+ this.clonedReferenceElement = clone55;
16764
16764
  }
16765
- if (isBodyElement(clone54)) {
16766
- createPseudoHideStyles(clone54);
16765
+ if (isBodyElement(clone55)) {
16766
+ createPseudoHideStyles(clone55);
16767
16767
  }
16768
16768
  var counters = this.counters.parse(new CSSParsedCounterDeclaration(this.context, style));
16769
- var before = this.resolvePseudoContent(node, clone54, styleBefore, PseudoElementType.BEFORE);
16769
+ var before = this.resolvePseudoContent(node, clone55, styleBefore, PseudoElementType.BEFORE);
16770
16770
  if (isCustomElement(node)) {
16771
16771
  copyStyles = true;
16772
16772
  }
16773
16773
  if (!isVideoElement(node)) {
16774
- this.cloneChildNodes(node, clone54, copyStyles);
16774
+ this.cloneChildNodes(node, clone55, copyStyles);
16775
16775
  }
16776
16776
  if (before) {
16777
- clone54.insertBefore(before, clone54.firstChild);
16777
+ clone55.insertBefore(before, clone55.firstChild);
16778
16778
  }
16779
- var after = this.resolvePseudoContent(node, clone54, styleAfter, PseudoElementType.AFTER);
16779
+ var after = this.resolvePseudoContent(node, clone55, styleAfter, PseudoElementType.AFTER);
16780
16780
  if (after) {
16781
- clone54.appendChild(after);
16781
+ clone55.appendChild(after);
16782
16782
  }
16783
16783
  this.counters.pop(counters);
16784
16784
  if (style && (this.options.copyStyles || isSVGElementNode(node)) && !isIFrameElement(node) || copyStyles) {
16785
- copyCSSStyles(style, clone54);
16785
+ copyCSSStyles(style, clone55);
16786
16786
  }
16787
16787
  if (node.scrollTop !== 0 || node.scrollLeft !== 0) {
16788
- this.scrolledElements.push([clone54, node.scrollLeft, node.scrollTop]);
16788
+ this.scrolledElements.push([clone55, node.scrollLeft, node.scrollTop]);
16789
16789
  }
16790
- if ((isTextareaElement(node) || isSelectElement(node)) && (isTextareaElement(clone54) || isSelectElement(clone54))) {
16791
- clone54.value = node.value;
16790
+ if ((isTextareaElement(node) || isSelectElement(node)) && (isTextareaElement(clone55) || isSelectElement(clone55))) {
16791
+ clone55.value = node.value;
16792
16792
  }
16793
- return clone54;
16793
+ return clone55;
16794
16794
  }
16795
16795
  return node.cloneNode(false);
16796
16796
  };
16797
- DocumentCloner2.prototype.resolvePseudoContent = function(node, clone54, style, pseudoElt) {
16797
+ DocumentCloner2.prototype.resolvePseudoContent = function(node, clone55, style, pseudoElt) {
16798
16798
  var _this = this;
16799
16799
  if (!style) {
16800
16800
  return;
16801
16801
  }
16802
16802
  var value = style.content;
16803
- var document2 = clone54.ownerDocument;
16803
+ var document2 = clone55.ownerDocument;
16804
16804
  if (!document2 || !value || value === "none" || value === "-moz-alt-content" || style.display === "none") {
16805
16805
  return;
16806
16806
  }
@@ -16857,10 +16857,10 @@ var require_html2canvas = __commonJS({
16857
16857
  });
16858
16858
  anonymousReplacedElement.className = PSEUDO_HIDE_ELEMENT_CLASS_BEFORE + " " + PSEUDO_HIDE_ELEMENT_CLASS_AFTER;
16859
16859
  var newClassName = pseudoElt === PseudoElementType.BEFORE ? " " + PSEUDO_HIDE_ELEMENT_CLASS_BEFORE : " " + PSEUDO_HIDE_ELEMENT_CLASS_AFTER;
16860
- if (isSVGElementNode(clone54)) {
16861
- clone54.className.baseValue += newClassName;
16860
+ if (isSVGElementNode(clone55)) {
16861
+ clone55.className.baseValue += newClassName;
16862
16862
  } else {
16863
- clone54.className += newClassName;
16863
+ clone55.className += newClassName;
16864
16864
  }
16865
16865
  return anonymousReplacedElement;
16866
16866
  };
@@ -22232,6 +22232,7 @@ var Modal = class {
22232
22232
  this.viewUsage = 4;
22233
22233
  this.ignoreDismissCheck = false;
22234
22234
  this.hooks = {
22235
+ preDismiss: new AsyncSeriesHook(),
22235
22236
  shouldDismiss: new AsyncSeriesHook(),
22236
22237
  beforeDismiss: new AsyncSeriesHook()
22237
22238
  };
@@ -22270,6 +22271,10 @@ var Modal = class {
22270
22271
  }
22271
22272
  async dismiss(data = { ok: false, data: [] }) {
22272
22273
  const context = {};
22274
+ await this.hooks.preDismiss.call(context);
22275
+ if (context.allowNext === false) {
22276
+ return false;
22277
+ }
22273
22278
  if (this.ignoreDismissCheck !== true) {
22274
22279
  await this.hooks.shouldDismiss.call(context);
22275
22280
  }
@@ -22289,6 +22294,7 @@ var Modal = class {
22289
22294
  * @protected
22290
22295
  */
22291
22296
  destroy() {
22297
+ this.hooks.preDismiss.clear();
22292
22298
  this.hooks.shouldDismiss.clear();
22293
22299
  this.hooks.beforeDismiss.clear();
22294
22300
  }
@@ -22453,7 +22459,7 @@ var TextUtil = class {
22453
22459
  };
22454
22460
 
22455
22461
  // src/utils/theme-util/theme-util.ts
22456
- import { clone as clone48 } from "ramda";
22462
+ import { clone as clone49 } from "ramda";
22457
22463
 
22458
22464
  // src/utils/theme-util/custom-theme-util.ts
22459
22465
  import { notNilEmpty as notNilEmpty7 } from "qx-util";
@@ -34047,10 +34053,10 @@ var CTX = class {
34047
34053
  * @return {*} {IViewController}
34048
34054
  */
34049
34055
  getTopView() {
34050
- if (!this.parent) {
34056
+ if (!this.parent || this.parent && this.parent.isDestroyed) {
34051
34057
  return this.view;
34052
34058
  }
34053
- if (this.view.modal.routeDepth === 2) {
34059
+ if (this.view && this.view.modal.routeDepth === 2) {
34054
34060
  return this.view;
34055
34061
  }
34056
34062
  return this.parent.getTopView();
@@ -36676,6 +36682,9 @@ var EditorController = class {
36676
36682
  if (this.editorParams.triggerMode) {
36677
36683
  return this.editorParams.triggerMode;
36678
36684
  }
36685
+ if (this.editorParams.triggermode) {
36686
+ return this.editorParams.triggermode;
36687
+ }
36679
36688
  const { form, grid, treeGrid } = this.parent;
36680
36689
  const control = form || grid || treeGrid;
36681
36690
  if (control == null ? void 0 : control.controlParams.triggermode) {
@@ -38992,7 +39001,12 @@ import { RuntimeModelError as RuntimeModelError44 } from "@ibiz-template/core";
38992
39001
  import { RuntimeError as RuntimeError41 } from "@ibiz-template/core";
38993
39002
 
38994
39003
  // src/ui-logic/ui-logic.ts
38995
- import { ModelError as ModelError23, RuntimeModelError as RuntimeModelError43 } from "@ibiz-template/core";
39004
+ import {
39005
+ IBizContext as IBizContext6,
39006
+ ModelError as ModelError23,
39007
+ RuntimeModelError as RuntimeModelError43
39008
+ } from "@ibiz-template/core";
39009
+ import { clone as clone25 } from "ramda";
38996
39010
 
38997
39011
  // src/ui-logic/ui-logic-context.ts
38998
39012
  var UILogicContext = class {
@@ -40681,6 +40695,8 @@ var UILogic = class {
40681
40695
  * @return {*} {Promise<IData>}
40682
40696
  */
40683
40697
  async exec(parameters) {
40698
+ parameters.context = IBizContext6.create(parameters.context);
40699
+ parameters.params = clone25(parameters.params || {});
40684
40700
  const ctx = new UILogicContext(this.params, parameters);
40685
40701
  this.initLogicParams(ctx);
40686
40702
  const { startDEUILogicNodeId } = this.model;
@@ -40805,6 +40821,7 @@ var UIActionUtil = class {
40805
40821
  var _a3, _b2;
40806
40822
  const result = await this.exec(actionId, params, appId2);
40807
40823
  if (result.closeView) {
40824
+ params.view.modal.ignoreDismissCheck = true;
40808
40825
  params.view.closeView({ ok: true });
40809
40826
  } else if (result.refresh) {
40810
40827
  switch (result.refreshMode) {
@@ -40871,7 +40888,7 @@ var UIActionProviderBase = class {
40871
40888
  refreshMode: action.refreshMode,
40872
40889
  closeView: action.closeEditView
40873
40890
  };
40874
- const { view } = args;
40891
+ const { context, params, data, view } = args;
40875
40892
  if (action.closeEditView) {
40876
40893
  view.state.isClosing = true;
40877
40894
  }
@@ -40891,6 +40908,15 @@ var UIActionProviderBase = class {
40891
40908
  return this.returnError(result, view);
40892
40909
  }
40893
40910
  const _result = await this.execAction(action, args);
40911
+ const { presetParams } = await this.handleParams(
40912
+ action,
40913
+ context,
40914
+ data,
40915
+ params
40916
+ );
40917
+ if (presetParams.ignoredirtycheck === "true") {
40918
+ view.modal.ignoreDismissCheck = true;
40919
+ }
40894
40920
  Object.assign(result, _result);
40895
40921
  if (result.cancel === true) {
40896
40922
  return this.returnError(result, view);
@@ -41079,7 +41105,12 @@ var UIActionProviderBase = class {
41079
41105
  },
41080
41106
  tempContext
41081
41107
  );
41082
- return { resultContext, resultData, resultParams };
41108
+ const presetParams = {};
41109
+ if (resultParams.hasOwnProperty("ignoredirtycheck")) {
41110
+ presetParams.ignoredirtycheck = resultParams.ignoredirtycheck;
41111
+ delete resultParams.ignoredirtycheck;
41112
+ }
41113
+ return { resultContext, resultData, resultParams, presetParams };
41083
41114
  }
41084
41115
  /**
41085
41116
  * 计算消息信息(动态,多语言资源)
@@ -41295,7 +41326,7 @@ import {
41295
41326
  ModelError as ModelError24,
41296
41327
  RuntimeError as RuntimeError43
41297
41328
  } from "@ibiz-template/core";
41298
- import { clone as clone25, mergeRight as mergeRight4 } from "ramda";
41329
+ import { clone as clone26, mergeRight as mergeRight4 } from "ramda";
41299
41330
  var FrontUIActionProvider = class extends UIActionProviderBase {
41300
41331
  async execAction(action, args) {
41301
41332
  const { context, params, data, event, noWaitRoute, view } = args;
@@ -41400,7 +41431,7 @@ var FrontUIActionProvider = class extends UIActionProviderBase {
41400
41431
  }
41401
41432
  if (scriptCode) {
41402
41433
  const result = await ScriptFactory.asyncExecScriptFn(
41403
- { context, params, data, el: event == null ? void 0 : event.target, view, ctrl },
41434
+ { context, params, data, el: event == null ? void 0 : event.target, view, ctrl, action },
41404
41435
  scriptCode
41405
41436
  );
41406
41437
  return result || {};
@@ -41418,55 +41449,69 @@ var FrontUIActionProvider = class extends UIActionProviderBase {
41418
41449
  * @return {*}
41419
41450
  */
41420
41451
  async executePrint(action, args) {
41421
- var _a3;
41422
- const { resultContext, resultParams } = await this.handleParams(
41423
- action,
41424
- args.context,
41425
- args.data,
41426
- args.params
41427
- );
41428
- const appDataEntity = await ibiz.hub.getAppDataEntity(
41429
- action.appDataEntityId,
41430
- action.appId
41431
- );
41432
- const appDEPrint = (_a3 = appDataEntity.appDEPrints) == null ? void 0 : _a3.find((print) => {
41433
- return print.id === action.appDEPrintId;
41434
- });
41435
- if (appDEPrint) {
41436
- let requestUrl = "";
41437
- if (resultContext && resultContext[appDataEntity.codeName.toLowerCase()]) {
41438
- requestUrl += "/".concat(appDataEntity.deapicodeName2, "/printdata/").concat(resultContext[appDataEntity.codeName.toLowerCase()]);
41439
- } else {
41440
- throw new RuntimeError43(ibiz.i18n.t("runtime.uiAction.dataPrimaryKey"));
41441
- }
41442
- const res = await ibiz.net.request(requestUrl, {
41443
- method: "get",
41444
- responseType: "blob",
41445
- params: {
41446
- srfprinttag: appDEPrint.codeName,
41447
- ...resultParams
41448
- }
41452
+ const execute = async (data) => {
41453
+ var _a3;
41454
+ const { resultContext, resultParams } = await this.handleParams(
41455
+ action,
41456
+ args.context,
41457
+ data,
41458
+ args.params
41459
+ );
41460
+ const appDataEntity = await ibiz.hub.getAppDataEntity(
41461
+ action.appDataEntityId,
41462
+ action.appId
41463
+ );
41464
+ const appDEPrint = (_a3 = appDataEntity.appDEPrints) == null ? void 0 : _a3.find((print) => {
41465
+ return print.id === action.appDEPrintId;
41449
41466
  });
41450
- if (res.ok) {
41451
- if (resultParams && resultParams.srfcontenttype) {
41452
- const fileName = ibiz.util.file.getFileName(res);
41453
- const href = URL.createObjectURL(res.data);
41454
- const a = document.createElement("a");
41455
- a.href = href;
41456
- a.download = fileName;
41457
- document.body.appendChild(a);
41458
- a.click();
41459
- document.body.removeChild(a);
41460
- URL.revokeObjectURL(href);
41467
+ if (appDEPrint) {
41468
+ let requestUrl = "";
41469
+ if (resultContext && resultContext[appDataEntity.codeName.toLowerCase()]) {
41470
+ const resPath = calcResPath(resultContext, appDataEntity);
41471
+ requestUrl += "".concat(resPath, "/").concat(appDataEntity.deapicodeName2, "/printdata/").concat(resultContext[appDataEntity.codeName.toLowerCase()]);
41472
+ } else {
41473
+ throw new RuntimeError43(
41474
+ ibiz.i18n.t("runtime.uiAction.dataPrimaryKey")
41475
+ );
41476
+ }
41477
+ const app = await ibiz.hub.getAppAsync(action.appId);
41478
+ const res = await app.net.request(requestUrl, {
41479
+ method: "get",
41480
+ responseType: "blob",
41481
+ params: {
41482
+ srfprinttag: appDEPrint.codeName,
41483
+ ...resultParams
41484
+ }
41485
+ });
41486
+ if (res.ok) {
41487
+ if (resultParams && resultParams.srfcontenttype) {
41488
+ const fileName = ibiz.util.file.getFileName(res);
41489
+ const href = URL.createObjectURL(res.data);
41490
+ const a = document.createElement("a");
41491
+ a.href = href;
41492
+ a.download = fileName;
41493
+ document.body.appendChild(a);
41494
+ a.click();
41495
+ document.body.removeChild(a);
41496
+ URL.revokeObjectURL(href);
41497
+ } else {
41498
+ const link = window.URL.createObjectURL(res.data);
41499
+ window.open(link, "_blank");
41500
+ }
41461
41501
  } else {
41462
- const link = window.URL.createObjectURL(res.data);
41463
- window.open(link, "_blank");
41502
+ throw new RuntimeError43(ibiz.i18n.t("runtime.uiAction.printFailure"));
41464
41503
  }
41465
41504
  } else {
41466
- throw new RuntimeError43(ibiz.i18n.t("runtime.uiAction.printFailure"));
41505
+ throw new RuntimeError43(ibiz.i18n.t("runtime.uiAction.physicalPrint"));
41467
41506
  }
41507
+ };
41508
+ const isMultiData = ["MULTIKEY", "MULTIDATA"].includes(
41509
+ action.actionTarget
41510
+ );
41511
+ if (isMultiData) {
41512
+ await Promise.all(args.data.map((item) => execute([item])));
41468
41513
  } else {
41469
- throw new RuntimeError43(ibiz.i18n.t("runtime.uiAction.physicalPrint"));
41514
+ await execute(args.data);
41470
41515
  }
41471
41516
  }
41472
41517
  /**
@@ -41525,7 +41570,8 @@ var FrontUIActionProvider = class extends UIActionProviderBase {
41525
41570
  return dataExport.id === action.appDEDataExportId;
41526
41571
  });
41527
41572
  if (appDEDataExport) {
41528
- const url = "/".concat(appDataEntity.deapicodeName2, "/exportdata/fetchdefault");
41573
+ const resPath = calcResPath(resultContext, appDataEntity);
41574
+ const url = "".concat(resPath, "/").concat(appDataEntity.deapicodeName2, "/exportdata/fetchdefault");
41529
41575
  const queryParam = { srfexporttag: appDEDataExport.codeName };
41530
41576
  if (resultContext == null ? void 0 : resultContext.srfdatatype) {
41531
41577
  Object.assign(queryParam, { srfdatatype: resultContext.srfdatatype });
@@ -41536,7 +41582,8 @@ var FrontUIActionProvider = class extends UIActionProviderBase {
41536
41582
  ...args.params,
41537
41583
  ...resultParams
41538
41584
  };
41539
- const res = await ibiz.net.request(url, {
41585
+ const app = await ibiz.hub.getAppAsync(action.appId);
41586
+ const res = await app.net.request(url, {
41540
41587
  method: "post",
41541
41588
  responseType: "blob",
41542
41589
  params: queryParam,
@@ -41688,7 +41735,7 @@ var FrontUIActionProvider = class extends UIActionProviderBase {
41688
41735
  * @memberof FrontUIActionProvider
41689
41736
  */
41690
41737
  mergeFormItemModel(formModel, editorModel) {
41691
- const tempFormModel = clone25(formModel);
41738
+ const tempFormModel = clone26(formModel);
41692
41739
  if (tempFormModel && editorModel && tempFormModel.deformPages && tempFormModel.deformPages.length > 0) {
41693
41740
  const { deformDetails } = tempFormModel.deformPages[0];
41694
41741
  deformDetails == null ? void 0 : deformDetails.push(editorModel);
@@ -41774,7 +41821,7 @@ var CustomUIActionProvider = class extends UIActionProviderBase {
41774
41821
  const { context, params, data, event, view, ctrl } = args;
41775
41822
  if (scriptCode) {
41776
41823
  const result = await ScriptFactory.asyncExecScriptFn(
41777
- { context, params, data, el: event == null ? void 0 : event.target, view, ctrl },
41824
+ { context, params, data, el: event == null ? void 0 : event.target, view, ctrl, action },
41778
41825
  scriptCode
41779
41826
  );
41780
41827
  return result || {};
@@ -42664,7 +42711,7 @@ var CalendarController = class extends MDControlController {
42664
42711
  import { RuntimeError as RuntimeError47 } from "@ibiz-template/core";
42665
42712
 
42666
42713
  // src/controller/control/chart/generator/chart-options-generator.ts
42667
- import { clone as clone28, mergeDeepRight as mergeDeepRight3 } from "ramda";
42714
+ import { clone as clone29, mergeDeepRight as mergeDeepRight3 } from "ramda";
42668
42715
  import { isObject as isObject2, isString as isString2 } from "qx-util";
42669
42716
  import { RuntimeError as RuntimeError46 } from "@ibiz-template/core";
42670
42717
 
@@ -42679,7 +42726,7 @@ import isSameOrBefore from "dayjs/plugin/isSameOrBefore";
42679
42726
  import quarterOfYear from "dayjs/plugin/quarterOfYear";
42680
42727
  import weekOfYear from "dayjs/plugin/weekOfYear";
42681
42728
  import isoWeek from "dayjs/plugin/isoWeek";
42682
- import { clone as clone26, isNil as isNil26, mergeDeepRight } from "ramda";
42729
+ import { clone as clone27, isNil as isNil26, mergeDeepRight } from "ramda";
42683
42730
  dayjs5.extend(minMax);
42684
42731
  dayjs5.extend(isSameOrBefore);
42685
42732
  dayjs5.extend(quarterOfYear);
@@ -42980,7 +43027,7 @@ var BaseSeriesGenerator = class {
42980
43027
  })
42981
43028
  )
42982
43029
  );
42983
- const cloneItem = clone26(codeListItems);
43030
+ const cloneItem = clone27(codeListItems);
42984
43031
  cloneItem.sort((a, b) => {
42985
43032
  const aIndex = orginItem.findIndex((_code) => {
42986
43033
  return _code === a.value;
@@ -42993,9 +43040,9 @@ var BaseSeriesGenerator = class {
42993
43040
  return cloneItem;
42994
43041
  }
42995
43042
  if (sort === "desc") {
42996
- return clone26(codeListItems).reverse();
43043
+ return clone27(codeListItems).reverse();
42997
43044
  }
42998
- return clone26(codeListItems);
43045
+ return clone27(codeListItems);
42999
43046
  }
43000
43047
  /**
43001
43048
  * 计算分组数据
@@ -43294,7 +43341,7 @@ var BaseSeriesGenerator = class {
43294
43341
  dataPreprocess(data) {
43295
43342
  const tempData = [];
43296
43343
  data.forEach((singleData) => {
43297
- tempData.push(clone26(singleData));
43344
+ tempData.push(clone27(singleData));
43298
43345
  });
43299
43346
  const { groupMode } = this.model;
43300
43347
  if (groupMode) {
@@ -43620,7 +43667,7 @@ var ScatterSeriesGenerator = class extends BaseSeriesGenerator {
43620
43667
  };
43621
43668
 
43622
43669
  // src/controller/control/chart/generator/radar-series-generator.ts
43623
- import { clone as clone27, mergeDeepRight as mergeDeepRight2 } from "ramda";
43670
+ import { clone as clone28, mergeDeepRight as mergeDeepRight2 } from "ramda";
43624
43671
 
43625
43672
  // src/controller/control/chart/generator/radar-coord-system.ts
43626
43673
  var RadarCoordSystem = class {
@@ -43696,7 +43743,7 @@ var RadarSeriesGenerator = class extends BaseSeriesGenerator {
43696
43743
  */
43697
43744
  calcRadarCoordSystem(data) {
43698
43745
  const tempItems = data.map((item) => {
43699
- return clone27(item);
43746
+ return clone28(item);
43700
43747
  });
43701
43748
  const groupData = this.calcGroupData(tempItems);
43702
43749
  if (!this.chartGenerator.radarMap.has(this.catalogField)) {
@@ -44388,8 +44435,8 @@ var ChartOptionsGenerator3 = class {
44388
44435
  const xaxis = [];
44389
44436
  const yaxis = [];
44390
44437
  for (let i = 0; i < seriesModel.length; i++) {
44391
- const tempXAxis = clone28(xAxisParam);
44392
- const tempYAxis = clone28(yAxisParam);
44438
+ const tempXAxis = clone29(xAxisParam);
44439
+ const tempYAxis = clone29(yAxisParam);
44393
44440
  Object.assign(tempXAxis, { gridIndex: i });
44394
44441
  Object.assign(tempYAxis, { gridIndex: i });
44395
44442
  if (!tempYAxis.axisLabel)
@@ -44441,7 +44488,7 @@ var ChartOptionsGenerator3 = class {
44441
44488
  }
44442
44489
  });
44443
44490
  if (left) {
44444
- const tempAxis = clone28(axisParam);
44491
+ const tempAxis = clone29(axisParam);
44445
44492
  if (tempAxis.showTitle) {
44446
44493
  const serietext = left.map((serie) => {
44447
44494
  return serie.serieText;
@@ -44453,7 +44500,7 @@ var ChartOptionsGenerator3 = class {
44453
44500
  axis.push(tempAxis);
44454
44501
  }
44455
44502
  if (right) {
44456
- const tempAxis = clone28(axisParam);
44503
+ const tempAxis = clone29(axisParam);
44457
44504
  if (tempAxis.showTitle) {
44458
44505
  const serietext = right.map((serie) => {
44459
44506
  return serie.serieText;
@@ -44562,9 +44609,9 @@ var ChartOptionsGenerator3 = class {
44562
44609
  );
44563
44610
  if (codeListItems) {
44564
44611
  if (catalog.sort === "desc") {
44565
- currentLevelItems = clone28(codeListItems).reverse();
44612
+ currentLevelItems = clone29(codeListItems).reverse();
44566
44613
  } else {
44567
- currentLevelItems = clone28(codeListItems);
44614
+ currentLevelItems = clone29(codeListItems);
44568
44615
  }
44569
44616
  }
44570
44617
  } else {
@@ -44773,7 +44820,7 @@ var ChartOptionsGenerator3 = class {
44773
44820
  * @memberof ChartOptionsGenerator
44774
44821
  */
44775
44822
  handleAxisTitleParam(option = {}, titleshow = true) {
44776
- const tempOption = clone28(option);
44823
+ const tempOption = clone29(option);
44777
44824
  Object.assign(tempOption, { show: titleshow });
44778
44825
  return tempOption;
44779
44826
  }
@@ -45434,10 +45481,10 @@ var CaptionBarController = class extends ControlController {
45434
45481
  };
45435
45482
 
45436
45483
  // src/controller/control/dashboard/dashboard.controller.ts
45437
- import { clone as clone30 } from "ramda";
45484
+ import { clone as clone31 } from "ramda";
45438
45485
 
45439
45486
  // src/controller/control/dashboard/dashboard.util.ts
45440
- import { clone as clone29 } from "ramda";
45487
+ import { clone as clone30 } from "ramda";
45441
45488
  function filterDEDQConditions2SearchConds(filterDEDQConditions) {
45442
45489
  const result = [];
45443
45490
  filterDEDQConditions.forEach((filterDEDQCondition) => {
@@ -45481,7 +45528,7 @@ function generateCacheKy(context, dashboard, key) {
45481
45528
  function getFilterSearchConds(searchConds, filterDEDQConditions) {
45482
45529
  let result;
45483
45530
  if (searchConds) {
45484
- result = clone29(searchConds);
45531
+ result = clone30(searchConds);
45485
45532
  }
45486
45533
  if (filterDEDQConditions) {
45487
45534
  if (!result || !result.searchconds) {
@@ -45776,7 +45823,7 @@ var DashboardController = class extends ControlController {
45776
45823
  */
45777
45824
  async loadDynaPortletById(id) {
45778
45825
  const app = ibiz.hub.getApp(ibiz.env.appId);
45779
- const tempContext = clone30(this.context);
45826
+ const tempContext = clone31(this.context);
45780
45827
  Object.assign(tempContext, { psappportlet: id });
45781
45828
  const res = await app.deService.exec(
45782
45829
  "psappportlet",
@@ -46042,7 +46089,7 @@ var DashboardController = class extends ControlController {
46042
46089
  };
46043
46090
 
46044
46091
  // src/controller/control/dashboard/custom-dashboard.controller.ts
46045
- import { clone as clone31 } from "ramda";
46092
+ import { clone as clone32 } from "ramda";
46046
46093
  var CustomDashboardController = class {
46047
46094
  /**
46048
46095
  * Creates an instance of BaseController.
@@ -46264,7 +46311,7 @@ var CustomDashboardController = class {
46264
46311
  async saveCustomModelData(model, config = {}, filter = {}) {
46265
46312
  Object.assign(this.portletConfig, config);
46266
46313
  let res;
46267
- const cloneFilter = clone31(this.portletFilter);
46314
+ const cloneFilter = clone32(this.portletFilter);
46268
46315
  if (Object.keys(filter).length > 0) {
46269
46316
  Object.assign(cloneFilter, filter);
46270
46317
  }
@@ -46315,7 +46362,7 @@ var CustomDashboardController = class {
46315
46362
  // src/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.ts
46316
46363
  import { merge } from "lodash-es";
46317
46364
  import {
46318
- IBizContext as IBizContext6,
46365
+ IBizContext as IBizContext7,
46319
46366
  IBizParams as IBizParams2,
46320
46367
  listenJSEvent,
46321
46368
  Namespace as Namespace2
@@ -46375,7 +46422,7 @@ var PortletPartController = class {
46375
46422
  this.dashboard = dashboard;
46376
46423
  this.parent = parent;
46377
46424
  this.state = this.createState();
46378
- this.state.context = IBizContext6.create({}, this.dashboard.context);
46425
+ this.state.context = IBizContext7.create({}, this.dashboard.context);
46379
46426
  const tempParams = this.getExtendParams();
46380
46427
  if (tempParams) {
46381
46428
  this.params = new IBizParams2(
@@ -46891,7 +46938,7 @@ var ReportPortletController = class extends PortletPartController {
46891
46938
 
46892
46939
  // src/controller/control/search-bar/search-bar.controller.ts
46893
46940
  import { mergeInLeft, recursiveIterate as recursiveIterate4 } from "@ibiz-template/core";
46894
- import { clone as clone33 } from "ramda";
46941
+ import { clone as clone34 } from "ramda";
46895
46942
  import { isString as isString3 } from "lodash-es";
46896
46943
 
46897
46944
  // src/controller/control/search-bar/search-bar-filter.controller.ts
@@ -47387,7 +47434,7 @@ async function calcFilterModelBySchema(json, appDataEntityId, modelAppId) {
47387
47434
 
47388
47435
  // src/controller/control/search-bar/search-bar-filter-items.controller.ts
47389
47436
  import { RuntimeError as RuntimeError48 } from "@ibiz-template/core";
47390
- import { clone as clone32 } from "ramda";
47437
+ import { clone as clone33 } from "ramda";
47391
47438
  var SubFieldRegex2 = /^N_(.\w+)_(.\w+)$/;
47392
47439
  var SearchBarFilterItemsController = class extends SearchBarFilterController {
47393
47440
  constructor(filterModels, appDataEntity, context, params) {
@@ -47472,7 +47519,7 @@ var SearchBarFilterItemsController = class extends SearchBarFilterController {
47472
47519
  const matches = subStr.match(SubFieldRegex2);
47473
47520
  const subField = matches[1];
47474
47521
  const subOP = matches[2];
47475
- const cloneItem = clone32(item);
47522
+ const cloneItem = clone33(item);
47476
47523
  cloneItem.defsearchMode.valueOP = subOP;
47477
47524
  cloneItem.id = subField;
47478
47525
  const filterC = new SearchBarFilterController(
@@ -47983,7 +48030,7 @@ var SearchBarController = class extends ControlController {
47983
48030
  if (!this.addSchemaFilters) {
47984
48031
  return;
47985
48032
  }
47986
- const tempParams = clone33(this.jsonSchemaParams);
48033
+ const tempParams = clone34(this.jsonSchemaParams);
47987
48034
  Object.assign(tempParams, this.params);
47988
48035
  const json = await getEntitySchema(
47989
48036
  this.model.appDataEntityId,
@@ -48012,7 +48059,7 @@ var SearchBarController = class extends ControlController {
48012
48059
  }
48013
48060
  });
48014
48061
  if (addSearchBarFilters.length > 0) {
48015
- this.model = clone33(this.model);
48062
+ this.model = clone34(this.model);
48016
48063
  this.model.searchBarFilters = mergeFilters.concat(...addSearchBarFilters);
48017
48064
  this.model.enableFilter = true;
48018
48065
  }
@@ -48234,7 +48281,7 @@ var SearchBarController = class extends ControlController {
48234
48281
  if (!this.enableFilter) {
48235
48282
  return;
48236
48283
  }
48237
- const nodes = clone33(this.state.filterNodes);
48284
+ const nodes = clone34(this.state.filterNodes);
48238
48285
  this.attachCustomCond(nodes);
48239
48286
  const searchconds = calcSearchConds(nodes, {
48240
48287
  after: (node, cond) => {
@@ -48431,7 +48478,7 @@ var SearchBarController = class extends ControlController {
48431
48478
  */
48432
48479
  async handleSave() {
48433
48480
  if (this.grid && this.state.selectedSearchGroupItem) {
48434
- const nodes = clone33(this.state.filterNodes);
48481
+ const nodes = clone34(this.state.filterNodes);
48435
48482
  this.attachCustomCond(nodes);
48436
48483
  let filters = calcSearchCondExs(nodes);
48437
48484
  if (!filters) {
@@ -48447,7 +48494,7 @@ var SearchBarController = class extends ControlController {
48447
48494
  }
48448
48495
  const tempColumnState = this.grid.state.columnStates.map(
48449
48496
  (item) => {
48450
- const state = clone33(item);
48497
+ const state = clone34(item);
48451
48498
  delete state.columnWidth;
48452
48499
  return state;
48453
48500
  }
@@ -48773,7 +48820,7 @@ var FilterPortletController = class extends PortletPartController {
48773
48820
 
48774
48821
  // src/controller/control/data-view/data-view.controller.ts
48775
48822
  import { RuntimeModelError as RuntimeModelError56, isElementSame as isElementSame2 } from "@ibiz-template/core";
48776
- import { clone as clone34, isNil as isNil29 } from "ramda";
48823
+ import { clone as clone35, isNil as isNil29 } from "ramda";
48777
48824
  import { createUUID as createUUID11, isBoolean } from "qx-util";
48778
48825
 
48779
48826
  // src/controller/control/data-view/data-view.service.ts
@@ -48831,6 +48878,7 @@ var DataViewControlController = class extends MDControlController {
48831
48878
  this.state.collapseKeys = [];
48832
48879
  const { enablePagingBar } = this.model;
48833
48880
  this.state.enablePagingBar = enablePagingBar;
48881
+ this.state.uaState = {};
48834
48882
  }
48835
48883
  /**
48836
48884
  * 初始化
@@ -49009,68 +49057,56 @@ var DataViewControlController = class extends MDControlController {
49009
49057
  await this.initGroupCodeListItems();
49010
49058
  await this.handleDataGroup();
49011
49059
  await this.initGroupActionStates();
49060
+ await this.calcOptItemState(items);
49012
49061
  this.calcShowMode(items);
49013
49062
  return items;
49014
49063
  }
49015
49064
  /**
49016
- * 获取操作项模型
49017
- *
49018
- * @return {*} {(IDEDataViewItem | null)}
49065
+ * @description 获取操作项行为集合模型
49066
+ * @returns {*} {IUIActionGroupDetail[]}
49019
49067
  * @memberof DataViewControlController
49020
49068
  */
49021
49069
  getOptItemModel() {
49022
- let optItemModel = null;
49070
+ const actions = [];
49023
49071
  const { dedataViewItems } = this.model;
49024
- if (dedataViewItems) {
49025
- for (let index = 0; index < dedataViewItems.length; index++) {
49026
- if (dedataViewItems[index].itemType === "ACTIONITEM") {
49027
- optItemModel = dedataViewItems[index];
49028
- }
49072
+ dedataViewItems == null ? void 0 : dedataViewItems.forEach((item) => {
49073
+ if (item.itemType === "ACTIONITEM" && item.deuiactionGroup && item.deuiactionGroup.uiactionGroupDetails) {
49074
+ actions.push(...item.deuiactionGroup.uiactionGroupDetails);
49029
49075
  }
49030
- }
49031
- return optItemModel;
49076
+ });
49077
+ return actions;
49032
49078
  }
49033
49079
  /**
49034
- * 获取操作项行为
49035
- *
49036
- * @param {IData} item
49037
- * @return {*}
49080
+ * @description 计算操作项状态
49081
+ * @param {IData[]} items
49082
+ * @returns {*} {Promise<void>}
49038
49083
  * @memberof DataViewControlController
49039
49084
  */
49040
- getOptItemAction(item) {
49041
- var _a3;
49042
- const containerState = new ButtonContainerState();
49043
- const optItemModel = this.getOptItemModel();
49044
- if (optItemModel) {
49045
- if (!optItemModel.deuiactionGroup) {
49046
- throw new RuntimeModelError56(
49047
- this.model,
49048
- ibiz.i18n.t("runtime.controller.control.dataView.noBehaviourGroup")
49049
- );
49050
- }
49051
- if (!((_a3 = optItemModel.deuiactionGroup.uiactionGroupDetails) == null ? void 0 : _a3.length)) {
49052
- ibiz.log.debug(
49053
- ibiz.i18n.t(
49054
- "runtime.controller.control.dataView.noBehaviourGroupAction"
49055
- )
49056
- );
49057
- return containerState;
49058
- }
49059
- optItemModel.deuiactionGroup.uiactionGroupDetails.forEach((detail) => {
49060
- const actionid = detail.uiactionId;
49061
- if (actionid) {
49062
- const buttonState = new UIActionButtonState(
49063
- detail.id,
49064
- this.context.srfappid,
49065
- actionid,
49066
- detail
49085
+ async calcOptItemState(items) {
49086
+ const actions = this.getOptItemModel();
49087
+ if (actions.length)
49088
+ await Promise.all(
49089
+ items.map(async (item) => {
49090
+ const containerState = new ButtonContainerState();
49091
+ actions.forEach((action) => {
49092
+ const actionid = action.uiactionId;
49093
+ if (actionid) {
49094
+ const buttonState = new UIActionButtonState(
49095
+ action.id,
49096
+ this.context.srfappid,
49097
+ actionid
49098
+ );
49099
+ containerState.addState(action.id, buttonState);
49100
+ }
49101
+ });
49102
+ await containerState.update(
49103
+ this.context,
49104
+ item.getOrigin(),
49105
+ this.model.appDataEntityId
49067
49106
  );
49068
- containerState.addState(detail.id, buttonState);
49069
- }
49070
- });
49071
- containerState.update(this.context, item.getOrigin());
49072
- }
49073
- return containerState;
49107
+ this.state.uaState[item.srfkey] = containerState;
49108
+ })
49109
+ );
49074
49110
  }
49075
49111
  /**
49076
49112
  * 行为点击
@@ -49105,7 +49141,7 @@ var DataViewControlController = class extends MDControlController {
49105
49141
  */
49106
49142
  async execGroup(arg, _params) {
49107
49143
  const group = arg[0];
49108
- this.model = clone34(this.model);
49144
+ this.model = clone35(this.model);
49109
49145
  this.model.groupMode = "AUTO";
49110
49146
  if (!group || !group.groupFieldId) {
49111
49147
  this.state.groups = [];
@@ -50248,7 +50284,7 @@ import {
50248
50284
  RuntimeError as RuntimeError51
50249
50285
  } from "@ibiz-template/core";
50250
50286
  import { isBoolean as isBoolean2 } from "qx-util";
50251
- import { clone as clone35 } from "ramda";
50287
+ import { clone as clone36 } from "ramda";
50252
50288
  var FormController = class extends ControlController {
50253
50289
  constructor() {
50254
50290
  super(...arguments);
@@ -50522,7 +50558,7 @@ var FormController = class extends ControlController {
50522
50558
  * @return {*} {Promise<void>}
50523
50559
  */
50524
50560
  async checkIgnoreInput(data) {
50525
- const formData = clone35(data);
50561
+ const formData = clone36(data);
50526
50562
  const formDataUIMap = formData.$dataUIMap;
50527
50563
  const isCreate = formData.srfuf === 0 /* CREATE */;
50528
50564
  this.formItems.forEach((formItem) => {
@@ -50722,7 +50758,7 @@ import { recursiveIterate as recursiveIterate7 } from "@ibiz-template/core";
50722
50758
 
50723
50759
  // src/controller/control/form/form/form.service.ts
50724
50760
  import { recursiveIterate as recursiveIterate6 } from "@ibiz-template/core";
50725
- import { clone as clone36, isNil as isNil30, isNotNil as isNotNil3 } from "ramda";
50761
+ import { clone as clone37, isNil as isNil30, isNotNil as isNotNil3 } from "ramda";
50726
50762
  var FormService = class extends ControlService {
50727
50763
  constructor() {
50728
50764
  super(...arguments);
@@ -50784,7 +50820,7 @@ var FormService = class extends ControlService {
50784
50820
  * @return {*} {IParams}
50785
50821
  */
50786
50822
  getLoadParams(params) {
50787
- const copyArgs = clone36(params);
50823
+ const copyArgs = clone37(params);
50788
50824
  const defaultData = {};
50789
50825
  if (copyArgs.srfdefdata) {
50790
50826
  Object.assign(defaultData, copyArgs.srfdefdata);
@@ -52122,7 +52158,7 @@ var FormDRUIPartController = class extends FormDetailController {
52122
52158
  };
52123
52159
 
52124
52160
  // src/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.ts
52125
- import { clone as clone37 } from "ramda";
52161
+ import { clone as clone38 } from "ramda";
52126
52162
 
52127
52163
  // src/controller/control/form/form-detail/form-group-panel/form-group-panel.state.ts
52128
52164
  var FormGroupPanelState = class extends FormDetailState {
@@ -52230,7 +52266,7 @@ var FormGroupPanelController = class extends FormDetailController {
52230
52266
  */
52231
52267
  async onActionClick(detail, event, args) {
52232
52268
  const actionId = detail.uiactionId;
52233
- const tempParams = clone37(this.form.params);
52269
+ const tempParams = clone38(this.form.params);
52234
52270
  if (args) {
52235
52271
  Object.assign(tempParams, args);
52236
52272
  }
@@ -53346,7 +53382,7 @@ var FormMDCtrlFormController = class extends FormMDCtrlController {
53346
53382
 
53347
53383
  // src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.ts
53348
53384
  import { ModelError as ModelError26 } from "@ibiz-template/core";
53349
- import { clone as clone38 } from "ramda";
53385
+ import { clone as clone39 } from "ramda";
53350
53386
  var FormMDCtrlRepeaterController = class extends FormMDCtrlController {
53351
53387
  constructor() {
53352
53388
  super(...arguments);
@@ -53451,7 +53487,7 @@ var FormMDCtrlRepeaterController = class extends FormMDCtrlController {
53451
53487
  copyFields.forEach((key) => {
53452
53488
  tempForm[key] = this.form.model[key];
53453
53489
  });
53454
- this.repeatedForm = clone38(tempForm);
53490
+ this.repeatedForm = clone39(tempForm);
53455
53491
  }
53456
53492
  /**
53457
53493
  * @description 设置重复器控制器
@@ -53928,14 +53964,14 @@ var FormButtonListController = class extends FormDetailController {
53928
53964
  // src/controller/control/form/edit-form/edit-form.controller.ts
53929
53965
  import {
53930
53966
  awaitTimeout,
53931
- IBizContext as IBizContext7,
53967
+ IBizContext as IBizContext8,
53932
53968
  isElementSame as isElementSame3,
53933
53969
  mergeInLeft as mergeInLeft3,
53934
53970
  RuntimeError as RuntimeError54
53935
53971
  } from "@ibiz-template/core";
53936
53972
  import { debounce } from "lodash-es";
53937
53973
  import { createUUID as createUUID14 } from "qx-util";
53938
- import { clone as clone39, isNil as isNil31 } from "ramda";
53974
+ import { clone as clone40, isNil as isNil31 } from "ramda";
53939
53975
 
53940
53976
  // src/controller/control/form/edit-form/edit-form.service.ts
53941
53977
  import {
@@ -54088,7 +54124,10 @@ var EditFormService = class extends FormService {
54088
54124
  * @returns {*} {Promise<IHttpResponse<ControlVO>>}
54089
54125
  */
54090
54126
  async updateFormItem(methodName, context, data = {}, params = {}) {
54091
- Object.assign(params, { srfupdateitem: true });
54127
+ var _a3;
54128
+ const { controlParam } = this.model;
54129
+ const srfupdateitem = ((_a3 = controlParam == null ? void 0 : controlParam.ctrlParams) == null ? void 0 : _a3.IGNOREUPDATEITEM) !== "false";
54130
+ Object.assign(params, { srfupdateitem });
54092
54131
  let res = await this.exec(methodName, context, data, params);
54093
54132
  res = this.handleResponse(res);
54094
54133
  return res;
@@ -54357,8 +54396,8 @@ var EditFormController = class extends FormController {
54357
54396
  * @return {*} {Promise<IData>}
54358
54397
  */
54359
54398
  async copy() {
54360
- const context = clone39(this.context);
54361
- const queryParams = clone39(this.params);
54399
+ const context = clone40(this.context);
54400
+ const queryParams = clone40(this.params);
54362
54401
  const appDataEntity = await ibiz.hub.getAppDataEntity(
54363
54402
  this.model.appDataEntityId,
54364
54403
  this.model.appId
@@ -54415,7 +54454,7 @@ var EditFormController = class extends FormController {
54415
54454
  return this.loadDraft();
54416
54455
  }
54417
54456
  const { context, params } = this.handlerAbilityParams(args);
54418
- const queryParams = clone39(params);
54457
+ const queryParams = clone40(params);
54419
54458
  const silent = this.getSilent(args) === true;
54420
54459
  let res;
54421
54460
  try {
@@ -54769,7 +54808,7 @@ var EditFormController = class extends FormController {
54769
54808
  switch (autoSaveMode) {
54770
54809
  case 3:
54771
54810
  saveParam.data = this.getDiffData();
54772
- saveParam.context = IBizContext7.create({ srfsimple: true });
54811
+ saveParam.context = IBizContext8.create({ srfsimple: true });
54773
54812
  break;
54774
54813
  default:
54775
54814
  }
@@ -54799,7 +54838,7 @@ var EditFormController = class extends FormController {
54799
54838
  switch (autoSaveMode) {
54800
54839
  case 3:
54801
54840
  saveParam.data = this.getDiffData();
54802
- saveParam.context = IBizContext7.create({ srfsimple: true });
54841
+ saveParam.context = IBizContext8.create({ srfsimple: true });
54803
54842
  break;
54804
54843
  default:
54805
54844
  }
@@ -55274,7 +55313,7 @@ import {
55274
55313
  mergeDefaultInLeft as mergeDefaultInLeft2,
55275
55314
  debounceAndAsyncMerge as debounceAndAsyncMerge2
55276
55315
  } from "@ibiz-template/core";
55277
- import { clone as clone41, isNil as isNil32 } from "ramda";
55316
+ import { clone as clone42, isNil as isNil32 } from "ramda";
55278
55317
  import dayjs6 from "dayjs";
55279
55318
 
55280
55319
  // src/controller/control/grid/grid/grid.service.ts
@@ -55445,7 +55484,7 @@ async function calcColumnModelBySchema(json, c) {
55445
55484
  }
55446
55485
 
55447
55486
  // src/controller/control/grid/grid/auto-grid.util.ts
55448
- import { clone as clone40 } from "ramda";
55487
+ import { clone as clone41 } from "ramda";
55449
55488
  import { mergeDefaultInLeft } from "@ibiz-template/core";
55450
55489
  var TypeToDataType2 = {
55451
55490
  string: 25,
@@ -55498,7 +55537,7 @@ function getEditorModel(item, appId2, enableCond, isSingleSelect = false) {
55498
55537
  type = "dropdown";
55499
55538
  if (enableCond === 0)
55500
55539
  type = "span";
55501
- const model = Object.assign(clone40(TypeToEditor[type]), {
55540
+ const model = Object.assign(clone41(TypeToEditor[type]), {
55502
55541
  appId: appId2
55503
55542
  });
55504
55543
  if (type === "dropdown" && isSingleSelect)
@@ -55649,7 +55688,7 @@ async function initModelByEntitySchema(c) {
55649
55688
  if (!json)
55650
55689
  return;
55651
55690
  const { degridColumns, degridDataItems, degridEditItems, degridEditItemVRs } = await calcColumnModelBySchema2(json, c);
55652
- c.model = clone40(c.model);
55691
+ c.model = clone41(c.model);
55653
55692
  const uaColumns = ((_a3 = c.model.degridColumns) == null ? void 0 : _a3.filter(
55654
55693
  (column) => column.columnType === "UAGRIDCOLUMN"
55655
55694
  )) || [];
@@ -55696,7 +55735,7 @@ async function switchRowEditDynamic(c, row, editable, _isSave = true) {
55696
55735
  await switchRowEditDynamic(c, editingRow);
55697
55736
  }
55698
55737
  if (row.data.srfuf === 1 /* UPDATE */) {
55699
- row.cacheData = clone40(row.data);
55738
+ row.cacheData = clone41(row.data);
55700
55739
  const defaultVal = c.calcDefaultValue(row.data, false);
55701
55740
  Object.assign(row.data, defaultVal);
55702
55741
  }
@@ -56068,7 +56107,7 @@ var GridController = class extends MDControlController {
56068
56107
  if (!this.addSchemaColumn) {
56069
56108
  return;
56070
56109
  }
56071
- const tempParams = clone41(this.jsonSchemaParams);
56110
+ const tempParams = clone42(this.jsonSchemaParams);
56072
56111
  Object.assign(tempParams, this.params);
56073
56112
  const json = await getEntitySchema(
56074
56113
  this.model.appDataEntityId,
@@ -56082,7 +56121,7 @@ var GridController = class extends MDControlController {
56082
56121
  if (result && result.degridColumns.length > 0) {
56083
56122
  const { degridColumns, degridDataItems } = result;
56084
56123
  this.allCustomColumns = degridColumns;
56085
- this.model = clone41(this.model);
56124
+ this.model = clone42(this.model);
56086
56125
  this.model.degridColumns = [
56087
56126
  ...this.model.degridColumns || [],
56088
56127
  ...degridColumns
@@ -56304,7 +56343,7 @@ var GridController = class extends MDControlController {
56304
56343
  async execGroup(arg, _params) {
56305
56344
  var _a3;
56306
56345
  const group = arg[0];
56307
- this.model = clone41(this.model);
56346
+ this.model = clone42(this.model);
56308
56347
  this.model.groupMode = "AUTO";
56309
56348
  const { columnStates } = this.state;
56310
56349
  const column = (_a3 = this.model.degridColumns) == null ? void 0 : _a3.find(
@@ -56842,7 +56881,7 @@ var GridController = class extends MDControlController {
56842
56881
  await this.switchRowEdit(editingRow, false, false);
56843
56882
  }
56844
56883
  if (row.data.srfuf === 1 /* UPDATE */) {
56845
- row.cacheData = clone41(row.data);
56884
+ row.cacheData = clone42(row.data);
56846
56885
  const defaultVal = this.calcDefaultValue(row.data, false);
56847
56886
  Object.assign(row.data, defaultVal);
56848
56887
  }
@@ -57016,7 +57055,7 @@ var GridController = class extends MDControlController {
57016
57055
  * @Date: 2024-03-20 17:54:16
57017
57056
  */
57018
57057
  formatExcelData(data, fields) {
57019
- const cloneData = clone41(
57058
+ const cloneData = clone42(
57020
57059
  data.map((item) => {
57021
57060
  return fields.reduce((obj, key) => {
57022
57061
  obj[key] = item[key];
@@ -57499,7 +57538,7 @@ import {
57499
57538
  } from "@ibiz-template/core";
57500
57539
  import dayjs7 from "dayjs";
57501
57540
  import { debounce as debounce2 } from "lodash-es";
57502
- import { clone as clone42, isNil as isNil33 } from "ramda";
57541
+ import { clone as clone43, isNil as isNil33 } from "ramda";
57503
57542
  import { isNilOrEmpty as isNilOrEmpty8 } from "qx-util";
57504
57543
  var GridFieldColumnController = class extends GridColumnController {
57505
57544
  constructor() {
@@ -57691,7 +57730,7 @@ var GridFieldColumnController = class extends GridColumnController {
57691
57730
  srfkey: value,
57692
57731
  ...wfContext
57693
57732
  });
57694
- const tempParams = clone42(this.params);
57733
+ const tempParams = clone43(this.params);
57695
57734
  const { context: newContext, params: newParams } = this.handlePublicParams(
57696
57735
  row.data,
57697
57736
  tempContext,
@@ -58250,7 +58289,7 @@ var GridGroupColumnController = class extends GridColumnController {
58250
58289
 
58251
58290
  // src/controller/control/list/list.controller.ts
58252
58291
  import { createUUID as createUUID15, isBoolean as isBoolean3 } from "qx-util";
58253
- import { clone as clone43, isNil as isNil34 } from "ramda";
58292
+ import { clone as clone44, isNil as isNil34 } from "ramda";
58254
58293
  import { isElementSame as isElementSame4 } from "@ibiz-template/core";
58255
58294
 
58256
58295
  // src/controller/control/list/list.service.ts
@@ -58454,7 +58493,7 @@ var ListController = class extends MDControlController {
58454
58493
  */
58455
58494
  async execGroup(arg, _params) {
58456
58495
  const group = arg[0];
58457
- this.model = clone43(this.model);
58496
+ this.model = clone44(this.model);
58458
58497
  this.model.groupMode = "AUTO";
58459
58498
  if (!group || !group.groupFieldId) {
58460
58499
  this.state.groups = [];
@@ -62282,10 +62321,10 @@ import {
62282
62321
  RuntimeError as RuntimeError60,
62283
62322
  RuntimeModelError as RuntimeModelError69
62284
62323
  } from "@ibiz-template/core";
62285
- import { clone as clone45, isNil as isNil37 } from "ramda";
62324
+ import { clone as clone46, isNil as isNil37 } from "ramda";
62286
62325
 
62287
62326
  // src/controller/control/kanban/kanban.service.ts
62288
- import { clone as clone44 } from "ramda";
62327
+ import { clone as clone45 } from "ramda";
62289
62328
  var KanbanService = class extends DataViewControlService {
62290
62329
  /**
62291
62330
  * 更新分组数据
@@ -62314,7 +62353,7 @@ var KanbanService = class extends DataViewControlService {
62314
62353
  */
62315
62354
  async moveOrderItem(context, data, args) {
62316
62355
  const moveAction = this.model.moveControlAction.appDEMethodId;
62317
- const params = clone44(data.getOrigin());
62356
+ const params = clone45(data.getOrigin());
62318
62357
  Object.assign(params, args);
62319
62358
  let res = await this.exec(moveAction, context, params, {
62320
62359
  srfupdateitem: true
@@ -62346,6 +62385,32 @@ var KanbanController = class extends DataViewControlController {
62346
62385
  get enableEditGroup() {
62347
62386
  return this.model.enableCardEditGroup === true;
62348
62387
  }
62388
+ /**
62389
+ * @description 拖拽模式
62390
+ * @readonly
62391
+ * @type {(0 | 1 | 2 | 3)} (无 | 仅分组 | 仅泳道 | 全部)
62392
+ * @memberof KanbanController
62393
+ */
62394
+ get draggableMode() {
62395
+ if (this.controlParams.draggablemode) {
62396
+ const draggablemode = Number(this.controlParams.draggablemode);
62397
+ if (!isNaN(draggablemode))
62398
+ return draggablemode;
62399
+ }
62400
+ return 3;
62401
+ }
62402
+ /**
62403
+ * @description 获取泳道描述
62404
+ * @readonly
62405
+ * @type {(string | undefined)}
62406
+ * @memberof KanbanController
62407
+ */
62408
+ get laneDescription() {
62409
+ var _a3;
62410
+ if (this.controlParams.lanedescription)
62411
+ return this.controlParams.lanedescription;
62412
+ return (_a3 = this.dataEntity) == null ? void 0 : _a3.logicName;
62413
+ }
62349
62414
  async initControlService() {
62350
62415
  this.service = new KanbanService(this.model);
62351
62416
  await this.service.init(this.context);
@@ -62358,7 +62423,7 @@ var KanbanController = class extends DataViewControlController {
62358
62423
  this.state.selectGroupKey = "";
62359
62424
  this.state.readonly = !!(this.context.srfreadonly === true || this.context.srfreadonly === "true");
62360
62425
  this.state.draggable = this.enableEditOrder || this.enableEditGroup;
62361
- this.state.uaState = {};
62426
+ this.state.lanes = [];
62362
62427
  }
62363
62428
  /**
62364
62429
  * 初始化
@@ -62435,43 +62500,9 @@ var KanbanController = class extends DataViewControlController {
62435
62500
  );
62436
62501
  }
62437
62502
  async afterLoad(args, items) {
62438
- var _a3;
62439
62503
  this.sortItems(this.state.items);
62440
62504
  super.afterLoad(args, items);
62441
- const actions = [];
62442
- (_a3 = this.model.dedataViewItems) == null ? void 0 : _a3.forEach((item) => {
62443
- if (item.itemType === "ACTIONITEM") {
62444
- if (item.deuiactionGroup && item.deuiactionGroup.uiactionGroupDetails) {
62445
- actions.push(...item.deuiactionGroup.uiactionGroupDetails);
62446
- }
62447
- }
62448
- });
62449
- if (actions && actions.length > 0) {
62450
- items.forEach((item) => {
62451
- const containerState = new ButtonContainerState();
62452
- actions.forEach((action) => {
62453
- const actionid = action.uiactionId;
62454
- if (actionid) {
62455
- const buttonState = new UIActionButtonState(
62456
- action.id,
62457
- this.context.srfappid,
62458
- actionid
62459
- );
62460
- containerState.addState(action.id, buttonState);
62461
- }
62462
- });
62463
- this.state.uaState[item.srfkey] = containerState;
62464
- });
62465
- }
62466
- items.forEach((item) => {
62467
- if (this.state.uaState[item.srfkey] && Object.keys(this.state.uaState[item.srfkey]).length > 0) {
62468
- this.state.uaState[item.srfkey].update(
62469
- this.context,
62470
- item.getOrigin(),
62471
- this.model.appDataEntityId
62472
- );
62473
- }
62474
- });
62505
+ this.handleLaneData();
62475
62506
  return items;
62476
62507
  }
62477
62508
  /**
@@ -62499,42 +62530,70 @@ var KanbanController = class extends DataViewControlController {
62499
62530
  super.onRowClick(data);
62500
62531
  }
62501
62532
  /**
62502
- * 点击新建时设置选中分组
62503
- *
62533
+ * @description 点击新建并设置设置选中分组
62504
62534
  * @param {MouseEvent} event
62505
- * @param {(string | number)} group
62535
+ * @param {(string | number)} group 分组
62536
+ * @param {IKanbanLane} [lane] 泳道
62506
62537
  * @memberof KanbanController
62507
62538
  */
62508
- onClickNew(event, group) {
62539
+ onClickNew(event, group, lane) {
62509
62540
  this.setSelectGroup(group);
62510
- super.onClickNew(event, group);
62541
+ const params = { ...this.params, srfgroup: group };
62542
+ if (lane)
62543
+ Object.assign(params, { srflane: lane.key });
62544
+ UIActionUtil.execAndResolved(
62545
+ "new",
62546
+ {
62547
+ context: this.context,
62548
+ params,
62549
+ data: [],
62550
+ view: this.view,
62551
+ ctrl: this,
62552
+ event
62553
+ },
62554
+ this.view.model.appId
62555
+ );
62511
62556
  }
62512
62557
  /**
62513
- * 分组工具栏需设置选中分组
62514
- *
62558
+ * @description 分组工具栏点击,需携带分组
62515
62559
  * @param {IUIActionGroupDetail} detail
62516
62560
  * @param {MouseEvent} event
62517
62561
  * @param {IKanbanGroupState} group
62518
- * @return {*} {Promise<void>}
62562
+ * @returns {*} {Promise<void>}
62519
62563
  * @memberof KanbanController
62520
62564
  */
62521
62565
  async onGroupToolbarClick(detail, event, group) {
62522
62566
  this.setSelectGroup(group.key);
62523
- super.onGroupToolbarClick(detail, event, group);
62567
+ const actionId = detail.uiactionId;
62568
+ const params = { ...this.params, srfgroup: group.key };
62569
+ await UIActionUtil.execAndResolved(
62570
+ actionId,
62571
+ {
62572
+ context: this.context,
62573
+ params,
62574
+ data: group.selectedData || [],
62575
+ view: this.view,
62576
+ ctrl: this,
62577
+ event
62578
+ },
62579
+ detail.appId
62580
+ );
62524
62581
  }
62525
62582
  /**
62526
- * 分组行为项点击,需携带分组标识
62527
- *
62583
+ * @description 分组行为项点击, 需携带分组(有泳道时携带泳道)
62528
62584
  * @param {IUIActionGroupDetail} detail
62529
62585
  * @param {IData} item
62530
62586
  * @param {MouseEvent} event
62531
62587
  * @param {IKanbanGroupState} group
62532
- * @return {*} {Promise<void>}
62588
+ * @param {IKanbanLane} [lane]
62589
+ * @returns {*} {Promise<void>}
62533
62590
  * @memberof KanbanController
62534
62591
  */
62535
- async onGroupActionClick(detail, item, event, group) {
62592
+ async onGroupActionClick(detail, item, event, group, lane) {
62536
62593
  this.setSelectGroup(group.key);
62537
62594
  const params = { ...this.params, srfgroup: group };
62595
+ if (lane)
62596
+ Object.assign(params, { srflane: lane.key });
62538
62597
  const actionId = detail.uiactionId;
62539
62598
  await UIActionUtil.execAndResolved(
62540
62599
  actionId,
@@ -62557,6 +62616,80 @@ var KanbanController = class extends DataViewControlController {
62557
62616
  }
62558
62617
  return super.handleDataGroup();
62559
62618
  }
62619
+ /**
62620
+ * @description 处理泳道数据
62621
+ * @returns {*} {Promise<void>}
62622
+ * @memberof KanbanController
62623
+ */
62624
+ async handleLaneData() {
62625
+ var _a3;
62626
+ const { swimlaneCodeListId, swimlaneAppDEFieldId } = this.model;
62627
+ if (!swimlaneAppDEFieldId)
62628
+ return;
62629
+ let lanes = [];
62630
+ const unclassified = {
62631
+ count: 0,
62632
+ key: void 0,
62633
+ isExpand: true,
62634
+ caption: ibiz.i18n.t("runtime.controller.common.md.unclassified")
62635
+ };
62636
+ const { items } = this.state;
62637
+ if (swimlaneCodeListId) {
62638
+ const app = ibiz.hub.getApp(this.context.srfappid);
62639
+ const codeListItems = await app.codeList.get(
62640
+ swimlaneCodeListId,
62641
+ this.context,
62642
+ this.params
62643
+ );
62644
+ lanes = codeListItems.map((item) => {
62645
+ var _a4;
62646
+ return {
62647
+ count: 0,
62648
+ isExpand: true,
62649
+ key: (_a4 = item.value) == null ? void 0 : _a4.toString(),
62650
+ caption: item.text
62651
+ };
62652
+ });
62653
+ items.forEach((item) => {
62654
+ const lane = lanes.find(
62655
+ (l) => {
62656
+ var _a4;
62657
+ return l.key === ((_a4 = item[swimlaneAppDEFieldId]) == null ? void 0 : _a4.toLowerCase());
62658
+ }
62659
+ );
62660
+ if (lane) {
62661
+ lane.count += 1;
62662
+ } else {
62663
+ unclassified.count += 1;
62664
+ }
62665
+ });
62666
+ } else {
62667
+ const deRss = (_a3 = this.dataEntity.minorAppDERSs) == null ? void 0 : _a3.find(
62668
+ (rss) => rss.parentAppDEFieldId === swimlaneAppDEFieldId
62669
+ );
62670
+ const textDEFieldId = (deRss == null ? void 0 : deRss.parentTextAppDEFieldId) || swimlaneAppDEFieldId;
62671
+ items.forEach((item) => {
62672
+ if (item[swimlaneAppDEFieldId]) {
62673
+ const lane = lanes.find((l) => l.key === item[swimlaneAppDEFieldId]);
62674
+ if (lane) {
62675
+ lane.count += 1;
62676
+ } else {
62677
+ lanes.push({
62678
+ count: 1,
62679
+ isExpand: true,
62680
+ key: item[swimlaneAppDEFieldId],
62681
+ caption: item[textDEFieldId]
62682
+ });
62683
+ }
62684
+ } else {
62685
+ unclassified.count += 1;
62686
+ }
62687
+ });
62688
+ }
62689
+ if (unclassified.count)
62690
+ lanes.push(unclassified);
62691
+ this.state.lanes = lanes;
62692
+ }
62560
62693
  /**
62561
62694
  * 处理代码表分组
62562
62695
  *
@@ -62605,7 +62738,6 @@ var KanbanController = class extends DataViewControlController {
62605
62738
  * @return {*} {Promise<void>}
62606
62739
  */
62607
62740
  async onDragChange(info) {
62608
- var _a3;
62609
62741
  if (!this.enableEditGroup) {
62610
62742
  if (info.from !== info.to) {
62611
62743
  ibiz.message.warning(
@@ -62614,24 +62746,32 @@ var KanbanController = class extends DataViewControlController {
62614
62746
  return;
62615
62747
  }
62616
62748
  }
62617
- const { from, to, fromIndex, toIndex } = info;
62618
- const groupField = this.model.groupAppDEFieldId;
62619
- const sortField = this.model.minorSortAppDEFieldId;
62749
+ const { from, to, fromIndex, toIndex, fromLane, toLane } = info;
62750
+ const {
62751
+ groupAppDEFieldId,
62752
+ minorSortAppDEFieldId,
62753
+ moveControlAction,
62754
+ laneAppDEFieldId = "testname"
62755
+ } = this.model;
62756
+ const groupField = groupAppDEFieldId;
62757
+ const sortField = minorSortAppDEFieldId;
62620
62758
  const fromGroup = this.state.groups.find((x) => x.key === from);
62621
62759
  const toGroup = this.state.groups.find((x) => x.key === to);
62622
62760
  if (!this.enableEditOrder) {
62623
- if (info.from === info.to) {
62761
+ if (from === to && fromLane === toLane) {
62624
62762
  ibiz.message.warning(
62625
62763
  ibiz.i18n.t("runtime.controller.control.kanban.noAllowReorder")
62626
62764
  );
62627
62765
  return;
62628
62766
  }
62629
62767
  const draggedItem2 = fromGroup.children[fromIndex];
62630
- draggedItem2[groupField] = info.to;
62768
+ draggedItem2[groupField] = to;
62769
+ if (laneAppDEFieldId)
62770
+ draggedItem2[laneAppDEFieldId] = toLane;
62631
62771
  return this.updateChangedItems([draggedItem2]);
62632
62772
  }
62633
62773
  const originArr = [...toGroup.children];
62634
- const moveAction = (_a3 = this.model.moveControlAction) == null ? void 0 : _a3.appDEMethodId;
62774
+ const moveAction = moveControlAction == null ? void 0 : moveControlAction.appDEMethodId;
62635
62775
  if (!moveAction) {
62636
62776
  throw new RuntimeModelError69(
62637
62777
  this.model,
@@ -62673,7 +62813,7 @@ var KanbanController = class extends DataViewControlController {
62673
62813
  }
62674
62814
  return moveData;
62675
62815
  };
62676
- const draggedItem = clone45(fromGroup.children[fromIndex]);
62816
+ const draggedItem = clone46(fromGroup.children[fromIndex]);
62677
62817
  const removeItems = fromGroup.children.splice(fromIndex, 1);
62678
62818
  toGroup.children.splice(toIndex, 0, ...removeItems);
62679
62819
  if (info.from !== info.to) {
@@ -62948,7 +63088,7 @@ import {
62948
63088
  awaitTimeout as awaitTimeout3,
62949
63089
  recursiveIterate as recursiveIterate12
62950
63090
  } from "@ibiz-template/core";
62951
- import { clone as clone46 } from "ramda";
63091
+ import { clone as clone47 } from "ramda";
62952
63092
 
62953
63093
  // src/controller/control/tree-grid-ex/tree-grid-ex.service.ts
62954
63094
  var TreeGridExService = class extends TreeService {
@@ -63500,7 +63640,7 @@ var TreeGridExController = class extends TreeController {
63500
63640
  );
63501
63641
  }
63502
63642
  if (row.data._deData.srfuf === 1 /* UPDATE */) {
63503
- row.cacheData = clone46(row.data);
63643
+ row.cacheData = clone47(row.data);
63504
63644
  const defaultVal = this.calcDefaultValue(row.data, false);
63505
63645
  Object.assign(row.data, defaultVal);
63506
63646
  }
@@ -63687,7 +63827,7 @@ import {
63687
63827
  RuntimeError as RuntimeError62,
63688
63828
  RuntimeModelError as RuntimeModelError71
63689
63829
  } from "@ibiz-template/core";
63690
- import { clone as clone47 } from "ramda";
63830
+ import { clone as clone48 } from "ramda";
63691
63831
  import dayjs8 from "dayjs";
63692
63832
  var TreeGridExNodeColumnController = class {
63693
63833
  /**
@@ -63895,7 +64035,7 @@ var TreeGridExNodeColumnController = class {
63895
64035
  srfkey: value,
63896
64036
  ...wfContext
63897
64037
  });
63898
- const tempParams = clone47(this.params);
64038
+ const tempParams = clone48(this.params);
63899
64039
  const { userParam } = this.nodeColumn;
63900
64040
  if (userParam) {
63901
64041
  const { navigateContexts, navigateParams } = parseUserParams(userParam);
@@ -66364,7 +66504,7 @@ var ThemeUtil = class {
66364
66504
  * @memberof ThemeUtil
66365
66505
  */
66366
66506
  async loadTheme(theme, type = "COLOR") {
66367
- const data = clone48(theme.themeParams || {});
66507
+ const data = clone49(theme.themeParams || {});
66368
66508
  const path2 = data["theme-package-path"] || theme.themeUrl;
66369
66509
  delete data.appId;
66370
66510
  delete data["theme-package-path"];
@@ -67012,8 +67152,8 @@ var baseStyle = {
67012
67152
  position: "fixed",
67013
67153
  zIndex: "10000"
67014
67154
  };
67015
- function cloneElement(clone54, teleport = document.body, isRemoveChild = true) {
67016
- const element = getAnimationElement(clone54);
67155
+ function cloneElement(clone55, teleport = document.body, isRemoveChild = true) {
67156
+ const element = getAnimationElement(clone55);
67017
67157
  if (element == null) {
67018
67158
  throw new Error(ibiz.i18n.t("runtime.utils.anime.noClone"));
67019
67159
  }
@@ -67432,11 +67572,11 @@ function arrayContains(arr, val) {
67432
67572
  });
67433
67573
  }
67434
67574
  function cloneObject(o) {
67435
- var clone54 = {};
67575
+ var clone55 = {};
67436
67576
  for (var p in o) {
67437
- clone54[p] = o[p];
67577
+ clone55[p] = o[p];
67438
67578
  }
67439
- return clone54;
67579
+ return clone55;
67440
67580
  }
67441
67581
  function replaceObjectProps(o1, o2) {
67442
67582
  var o = cloneObject(o1);
@@ -69019,7 +69159,7 @@ var ShortCutUtil = class {
69019
69159
  };
69020
69160
 
69021
69161
  // src/utils/bi-report-util/bi-report-util.ts
69022
- import { clone as clone49 } from "ramda";
69162
+ import { clone as clone50 } from "ramda";
69023
69163
  import { RuntimeError as RuntimeError66 } from "@ibiz-template/core";
69024
69164
  var BIReportUtil = class {
69025
69165
  /**
@@ -69035,7 +69175,7 @@ var BIReportUtil = class {
69035
69175
  async openDesignPage(context, params, data) {
69036
69176
  if (!data.mode)
69037
69177
  data.mode = "DATA";
69038
- const tempContext = clone49(context);
69178
+ const tempContext = clone50(context);
69039
69179
  let config = {};
69040
69180
  if (data.mode === "DATA") {
69041
69181
  const app = ibiz.hub.getApp(ibiz.env.appId);
@@ -69702,7 +69842,7 @@ var RecordNavUtil = class {
69702
69842
 
69703
69843
  // src/utils/jsonschema-util/jsonschema-util.ts
69704
69844
  import qs5 from "qs";
69705
- import { clone as clone50 } from "ramda";
69845
+ import { clone as clone51 } from "ramda";
69706
69846
  var JsonSchemaUtil = class {
69707
69847
  constructor() {
69708
69848
  /**
@@ -69955,7 +70095,7 @@ var JsonSchemaUtil = class {
69955
70095
  getMockEditor(context, item, valueOP) {
69956
70096
  if (valueOP && this.excludeOPs.includes(valueOP))
69957
70097
  return;
69958
- const baseMockEditor = clone50(this.DataTypeToEditor[item.type]);
70098
+ const baseMockEditor = clone51(this.DataTypeToEditor[item.type]);
69959
70099
  if (!baseMockEditor)
69960
70100
  return;
69961
70101
  baseMockEditor.appId = context.srfappid;
@@ -74131,7 +74271,7 @@ async function getDeDataMajorField(data, context, appDataEntityId) {
74131
74271
 
74132
74272
  // src/command/app/open-app-view/open-app-view.ts
74133
74273
  import { ModelError as ModelError30, RuntimeError as RuntimeError69 } from "@ibiz-template/core";
74134
- import { clone as clone51 } from "ramda";
74274
+ import { clone as clone52 } from "ramda";
74135
74275
  var _OpenAppViewCommand = class _OpenAppViewCommand {
74136
74276
  constructor() {
74137
74277
  ibiz.commands.register(_OpenAppViewCommand.TAG, this.exec.bind(this));
@@ -74148,7 +74288,7 @@ var _OpenAppViewCommand = class _OpenAppViewCommand {
74148
74288
  * @return {*} {(Promise<IModalData | void>)}
74149
74289
  */
74150
74290
  async exec(appViewId, _context, params = {}, opts = {}) {
74151
- const context = clone51(_context);
74291
+ const context = clone52(_context);
74152
74292
  if (context.srfsimple) {
74153
74293
  delete context.srfsimple;
74154
74294
  }
@@ -74900,7 +75040,7 @@ import { QXEvent as QXEvent14 } from "qx-util";
74900
75040
 
74901
75041
  // src/controller/notification/async-action.controller.ts
74902
75042
  import { QXEvent as QXEvent12 } from "qx-util";
74903
- import { clone as clone52 } from "ramda";
75043
+ import { clone as clone53 } from "ramda";
74904
75044
  import { isNil as isNil38, isNumber as isNumber4 } from "lodash-es";
74905
75045
  import dayjs9 from "dayjs";
74906
75046
  var AsyncActionController = class {
@@ -75011,7 +75151,7 @@ var AsyncActionController = class {
75011
75151
  } else {
75012
75152
  this.noticeResult(action);
75013
75153
  }
75014
- this.evt.emit("add", clone52(action));
75154
+ this.evt.emit("add", clone53(action));
75015
75155
  this.evt.emit("dataChange");
75016
75156
  }
75017
75157
  /**
@@ -75033,7 +75173,7 @@ var AsyncActionController = class {
75033
75173
  }
75034
75174
  this.noticeResult(action);
75035
75175
  }
75036
- this.evt.emit("change", clone52(action));
75176
+ this.evt.emit("change", clone53(action));
75037
75177
  this.evt.emit("dataChange");
75038
75178
  }
75039
75179
  noticeResult(action) {
@@ -76159,7 +76299,7 @@ var EngineFactory = class {
76159
76299
  import {
76160
76300
  RuntimeError as RuntimeError73,
76161
76301
  findRecursiveChild as findRecursiveChild3,
76162
- IBizContext as IBizContext8
76302
+ IBizContext as IBizContext9
76163
76303
  } from "@ibiz-template/core";
76164
76304
  import qs6 from "qs";
76165
76305
  var ViewEngineBase = class {
@@ -76490,7 +76630,7 @@ var ViewEngineBase = class {
76490
76630
  caption,
76491
76631
  icon: model.sysImage,
76492
76632
  appViewId: model.id,
76493
- context: IBizContext8.create(context),
76633
+ context: IBizContext9.create(context),
76494
76634
  params: { ...params },
76495
76635
  openMode: modal.mode,
76496
76636
  fullPath: window.location.hash
@@ -76686,7 +76826,7 @@ var ViewEngineBase = class {
76686
76826
 
76687
76827
  // src/engine/md-view.engine.ts
76688
76828
  import { RuntimeModelError as RuntimeModelError74 } from "@ibiz-template/core";
76689
- import { clone as clone53 } from "ramda";
76829
+ import { clone as clone54 } from "ramda";
76690
76830
  var MDViewEngine = class extends ViewEngineBase {
76691
76831
  /**
76692
76832
  * 多数据部件名称
@@ -76965,7 +77105,7 @@ var MDViewEngine = class extends ViewEngineBase {
76965
77105
  ibiz.i18n.t("runtime.engine.logicNewdata")
76966
77106
  );
76967
77107
  }
76968
- const params = clone53(this.view.params);
77108
+ const params = clone54(this.view.params);
76969
77109
  if (copyMode) {
76970
77110
  params.srfcopymode = copyMode;
76971
77111
  }