@ibiz-template/runtime 0.4.3-dev.1 → 0.4.4

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 (77) hide show
  1. package/dist/index.esm.js +224 -29
  2. package/dist/index.system.min.js +2 -2
  3. package/dist/index.system.min.js.map +1 -1
  4. package/out/controller/common/control/md-control.controller.d.ts.map +1 -1
  5. package/out/controller/common/control/md-control.controller.js +5 -1
  6. package/out/controller/control/chart/generator/chart-options-generator.d.ts.map +1 -1
  7. package/out/controller/control/chart/generator/chart-options-generator.js +3 -0
  8. package/out/controller/control/exp-bar/tree-exp-bar.controller.d.ts +8 -0
  9. package/out/controller/control/exp-bar/tree-exp-bar.controller.d.ts.map +1 -1
  10. package/out/controller/control/exp-bar/tree-exp-bar.controller.js +17 -0
  11. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.d.ts +1 -1
  12. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.d.ts.map +1 -1
  13. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.js +9 -3
  14. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.d.ts +1 -1
  15. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.d.ts.map +1 -1
  16. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.js +7 -2
  17. package/out/controller/control/grid/grid/grid.controller.d.ts +8 -0
  18. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  19. package/out/controller/control/grid/grid/grid.controller.js +15 -0
  20. package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.d.ts.map +1 -1
  21. package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.js +5 -0
  22. package/out/controller/control/tree/tree.controller.d.ts +8 -0
  23. package/out/controller/control/tree/tree.controller.d.ts.map +1 -1
  24. package/out/controller/control/tree/tree.controller.js +38 -0
  25. package/out/controller/control/tree/tree.service.js +1 -1
  26. package/out/global/global-util/global-util.d.ts +8 -1
  27. package/out/global/global-util/global-util.d.ts.map +1 -1
  28. package/out/global/global-util/global-util.js +8 -1
  29. package/out/interface/common/i-plugin-factory/i-plugin-factory.d.ts +4 -5
  30. package/out/interface/common/i-plugin-factory/i-plugin-factory.d.ts.map +1 -1
  31. package/out/interface/controller/state/control/i-tree.state.d.ts +14 -0
  32. package/out/interface/controller/state/control/i-tree.state.d.ts.map +1 -1
  33. package/out/platform/provider/platform-provider-base.d.ts.map +1 -1
  34. package/out/platform/provider/platform-provider-base.js +1 -0
  35. package/out/ui-action/provider/front-ui-action-provider.d.ts.map +1 -1
  36. package/out/ui-action/provider/front-ui-action-provider.js +7 -3
  37. package/out/ui-logic/ui-logic-context.d.ts +10 -1
  38. package/out/ui-logic/ui-logic-context.d.ts.map +1 -1
  39. package/out/ui-logic/ui-logic-context.js +11 -0
  40. package/out/ui-logic/ui-logic-node/index.d.ts +1 -0
  41. package/out/ui-logic/ui-logic-node/index.d.ts.map +1 -1
  42. package/out/ui-logic/ui-logic-node/index.js +1 -0
  43. package/out/ui-logic/ui-logic-node/raw-js-code-node/raw-js-code-node.d.ts +8 -0
  44. package/out/ui-logic/ui-logic-node/raw-js-code-node/raw-js-code-node.d.ts.map +1 -0
  45. package/out/ui-logic/ui-logic-node/raw-js-code-node/raw-js-code-node.js +13 -0
  46. package/out/ui-logic/ui-logic.d.ts.map +1 -1
  47. package/out/ui-logic/ui-logic.js +4 -1
  48. package/out/utils/index.d.ts +1 -0
  49. package/out/utils/index.d.ts.map +1 -1
  50. package/out/utils/index.js +1 -0
  51. package/out/utils/script/script-function.d.ts.map +1 -1
  52. package/out/utils/script/script-function.js +22 -16
  53. package/out/utils/theme-util/theme-util.d.ts +46 -0
  54. package/out/utils/theme-util/theme-util.d.ts.map +1 -0
  55. package/out/utils/theme-util/theme-util.js +61 -0
  56. package/package.json +4 -4
  57. package/src/controller/common/control/md-control.controller.ts +5 -1
  58. package/src/controller/control/chart/generator/chart-options-generator.ts +4 -1
  59. package/src/controller/control/exp-bar/tree-exp-bar.controller.ts +18 -0
  60. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.ts +8 -3
  61. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.ts +6 -2
  62. package/src/controller/control/grid/grid/grid.controller.ts +17 -0
  63. package/src/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.ts +6 -0
  64. package/src/controller/control/tree/tree.controller.ts +45 -0
  65. package/src/controller/control/tree/tree.service.ts +1 -1
  66. package/src/global/global-util/global-util.ts +9 -0
  67. package/src/interface/common/i-plugin-factory/i-plugin-factory.ts +4 -5
  68. package/src/interface/controller/state/control/i-tree.state.ts +16 -0
  69. package/src/platform/provider/platform-provider-base.ts +1 -0
  70. package/src/ui-action/provider/front-ui-action-provider.ts +7 -3
  71. package/src/ui-logic/ui-logic-context.ts +13 -1
  72. package/src/ui-logic/ui-logic-node/index.ts +1 -0
  73. package/src/ui-logic/ui-logic-node/raw-js-code-node/raw-js-code-node.ts +22 -0
  74. package/src/ui-logic/ui-logic.ts +4 -0
  75. package/src/utils/index.ts +1 -0
  76. package/src/utils/script/script-function.ts +22 -16
  77. package/src/utils/theme-util/theme-util.ts +64 -0
package/dist/index.esm.js CHANGED
@@ -1423,7 +1423,6 @@ var ScriptFunction = class {
1423
1423
  * @param {IParams} param
1424
1424
  */
1425
1425
  fillDefaultParams(key, param) {
1426
- const view = param.view;
1427
1426
  switch (key) {
1428
1427
  case "util":
1429
1428
  param.util = {
@@ -1443,27 +1442,34 @@ var ScriptFunction = class {
1443
1442
  case "app":
1444
1443
  param.app = ibiz.hub.controller;
1445
1444
  break;
1446
- case "parent":
1447
- param.parent = view == null ? void 0 : view.parentView;
1448
- break;
1449
- case "topView":
1450
- param.topView = view == null ? void 0 : view.getTopView();
1451
- break;
1452
- case "parentView":
1453
- param.parentView = view == null ? void 0 : view.parentView;
1454
- break;
1455
- case "topViewSession":
1456
- param.topViewSession = view == null ? void 0 : view.getTopView().session;
1457
- break;
1458
- case "viewSession":
1459
- param.viewSession = view == null ? void 0 : view.session;
1460
- break;
1461
1445
  case "appSession":
1462
1446
  param.appSession = ibiz.hub.controller.session;
1463
1447
  break;
1464
1448
  default:
1465
1449
  break;
1466
1450
  }
1451
+ const view = param.view;
1452
+ if (view) {
1453
+ switch (key) {
1454
+ case "parent":
1455
+ param.parent = view.parentView;
1456
+ break;
1457
+ case "topView":
1458
+ param.topView = view.getTopView();
1459
+ break;
1460
+ case "parentView":
1461
+ param.parentView = view.parentView;
1462
+ break;
1463
+ case "topViewSession":
1464
+ param.topViewSession = view.getTopView().session;
1465
+ break;
1466
+ case "viewSession":
1467
+ param.viewSession = view.session;
1468
+ break;
1469
+ default:
1470
+ break;
1471
+ }
1472
+ }
1467
1473
  }
1468
1474
  /**
1469
1475
  * 执行脚本代码
@@ -2573,6 +2579,61 @@ var TextUtil = class {
2573
2579
  }
2574
2580
  };
2575
2581
 
2582
+ // src/utils/theme-util/theme-util.ts
2583
+ var ThemeUtil = class {
2584
+ constructor() {
2585
+ /**
2586
+ * 主题设置元素 html
2587
+ *
2588
+ * @author chitanda
2589
+ * @date 2023-12-02 23:12:26
2590
+ * @protected
2591
+ * @type {HTMLElement}
2592
+ */
2593
+ this.html = document.getElementsByTagName("html")[0];
2594
+ }
2595
+ /**
2596
+ * 加载主题插件
2597
+ *
2598
+ * @author chitanda
2599
+ * @date 2023-12-03 01:12:44
2600
+ * @param {IAppUITheme} theme
2601
+ * @return {*} {Promise<void>}
2602
+ */
2603
+ async loadTheme(theme) {
2604
+ const data = theme.themeParams || {};
2605
+ await ibiz.plugin.loadPlugin({
2606
+ runtimeObject: true,
2607
+ rtobjectName: theme.name,
2608
+ rtobjectRepo: data["theme-package-path"]
2609
+ });
2610
+ this.setTheme(theme.themeTag);
2611
+ }
2612
+ /**
2613
+ * 设置主题
2614
+ *
2615
+ * @author chitanda
2616
+ * @date 2023-12-02 23:12:37
2617
+ * @param {string} tag
2618
+ */
2619
+ setTheme(tag) {
2620
+ const theme = this.getTheme();
2621
+ this.html.classList.remove(theme);
2622
+ this.html.setAttribute("theme", tag);
2623
+ this.html.classList.add(tag);
2624
+ }
2625
+ /**
2626
+ * 获取当前主题
2627
+ *
2628
+ * @author chitanda
2629
+ * @date 2023-12-02 23:12:10
2630
+ * @return {*} {string}
2631
+ */
2632
+ getTheme() {
2633
+ return this.html.getAttribute("theme");
2634
+ }
2635
+ };
2636
+
2576
2637
  // src/utils/raw-value-util/raw-value-util.ts
2577
2638
  var RawValueUtil = class {
2578
2639
  /**
@@ -3472,7 +3533,8 @@ var PlatformProviderBase = class {
3472
3533
  async download(url, name) {
3473
3534
  const response = await ibiz.net.request(url, {
3474
3535
  method: "get",
3475
- responseType: "blob"
3536
+ responseType: "blob",
3537
+ baseURL: ""
3476
3538
  });
3477
3539
  if (response.status !== 200) {
3478
3540
  throw new RuntimeError9("\u4E0B\u8F7D\u6587\u4EF6\u5931\u8D25");
@@ -12186,8 +12248,12 @@ var MDControlController = class extends ControlController {
12186
12248
  if (!dataImport) {
12187
12249
  throw new RuntimeError31("\u65E0\u5BFC\u5165\u6A21\u578B\uFF01");
12188
12250
  }
12251
+ let importName = "DataImport";
12252
+ if (dataImport.enableCustomized) {
12253
+ importName = "DataImport2";
12254
+ }
12189
12255
  const modal = ibiz.overlay.createModal(
12190
- "DataImport",
12256
+ importName,
12191
12257
  {
12192
12258
  dismiss: () => modal.dismiss(),
12193
12259
  appDataEntity
@@ -13515,6 +13581,9 @@ var ChartOptionsGenerator2 = class {
13515
13581
  position,
13516
13582
  axisLabel: {
13517
13583
  formatter: (value) => {
13584
+ if (typeof value === "number") {
13585
+ value = value.toString();
13586
+ }
13518
13587
  if (dataShowMode === 1) {
13519
13588
  if (value.length > 4) {
13520
13589
  return "".concat(value.slice(0, 4).split("").join("\n"), "\n...");
@@ -13881,6 +13950,17 @@ var UILogicContext = class {
13881
13950
  */
13882
13951
  this.defaultParamName = "Default";
13883
13952
  }
13953
+ /**
13954
+ * 视图控制器
13955
+ *
13956
+ * @author chitanda
13957
+ * @date 2023-12-01 11:12:48
13958
+ * @readonly
13959
+ * @type {IViewController}
13960
+ */
13961
+ get view() {
13962
+ return this.parameters.view;
13963
+ }
13884
13964
  /**
13885
13965
  * 上下文
13886
13966
  */
@@ -14852,6 +14932,23 @@ var ExecuteDELogicNode = class extends UILogicNode {
14852
14932
  }
14853
14933
  };
14854
14934
 
14935
+ // src/ui-logic/ui-logic-node/raw-js-code-node/raw-js-code-node.ts
14936
+ var RawJSCodeNode = class extends UILogicNode {
14937
+ async exec(ctx) {
14938
+ console.log(ctx);
14939
+ ScriptFactory.execScriptFn(
14940
+ {
14941
+ view: ctx.view,
14942
+ context: ctx.context,
14943
+ params: ctx.viewParam,
14944
+ uiLogic: ctx.params
14945
+ },
14946
+ this.model.code || "",
14947
+ { isAsync: false }
14948
+ );
14949
+ }
14950
+ };
14951
+
14855
14952
  // src/ui-logic/ui-logic-param/ui-logic-param.ts
14856
14953
  import { ModelError as ModelError23 } from "@ibiz-template/core";
14857
14954
  var UILogicParam = class {
@@ -15041,6 +15138,9 @@ var UILogic = class {
15041
15138
  case "PFPLUGIN":
15042
15139
  logicNode = new PFPluginNode(node);
15043
15140
  break;
15141
+ case "RAWJSCODE":
15142
+ logicNode = new RawJSCodeNode(node);
15143
+ break;
15044
15144
  default:
15045
15145
  throw new ModelError24(node, "\u672A\u652F\u6301\u7684\u903B\u8F91\u8282\u70B9\u7C7B\u578B: ".concat(logicNodeType));
15046
15146
  }
@@ -15651,10 +15751,10 @@ var FrontUIActionProvider = class extends UIActionProviderBase {
15651
15751
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
15652
15752
  doOther(action, args) {
15653
15753
  const { scriptCode } = action;
15654
- const { context, params, data, event } = args;
15754
+ const { context, params, data, event, view } = args;
15655
15755
  if (scriptCode) {
15656
15756
  const result = ScriptFactory.execScriptFn(
15657
- { context, params, data, el: event == null ? void 0 : event.target },
15757
+ { context, params, data, el: event == null ? void 0 : event.target, view },
15658
15758
  scriptCode
15659
15759
  );
15660
15760
  return result || {};
@@ -15735,9 +15835,13 @@ var FrontUIActionProvider = class extends UIActionProviderBase {
15735
15835
  const appDEDataImport = (_a = appDataEntity.appDEDataImports) == null ? void 0 : _a.find(
15736
15836
  (dataImport) => dataImport.id === action.appDEDataImportId
15737
15837
  );
15838
+ let importName = "DataImport";
15839
+ if (appDEDataImport && appDEDataImport.enableCustomized) {
15840
+ importName = "DataImport2";
15841
+ }
15738
15842
  if (appDEDataImport) {
15739
15843
  const modal = ibiz.overlay.createModal(
15740
- "DataImport",
15844
+ importName,
15741
15845
  {
15742
15846
  dismiss: () => modal.dismiss(),
15743
15847
  appDataEntity,
@@ -17508,6 +17612,23 @@ var TreeExpBarController = class extends ExpBarControlController {
17508
17612
  }
17509
17613
  await super.onRouterChange(info);
17510
17614
  }
17615
+ /**
17616
+ * 是否显示部件头部
17617
+ * @author lxm
17618
+ * @date 2023-08-02 07:54:18
17619
+ * @protected
17620
+ * @return {*} {boolean}
17621
+ */
17622
+ calcControlHeaderVisible() {
17623
+ const hasToolbar = !!this.toolbarController;
17624
+ if (!hasToolbar && this.layoutPanel) {
17625
+ const controller = this.layoutPanel.panelItems.control_toolbar;
17626
+ if (controller) {
17627
+ controller.state.visible = false;
17628
+ }
17629
+ }
17630
+ return hasToolbar || !!(this.model.showTitleBar && this.model.title);
17631
+ }
17511
17632
  };
17512
17633
 
17513
17634
  // src/controller/control/exp-bar/chart-exp-bar.controller.ts
@@ -19541,17 +19662,22 @@ var FormMDCtrlFormController = class extends FormMDCtrlController {
19541
19662
  * @author lxm
19542
19663
  * @date 2023-11-11 08:01:49
19543
19664
  */
19544
- create() {
19665
+ create(index) {
19545
19666
  const context = this.context.clone();
19546
19667
  const params = { ...this.params };
19547
19668
  if (!this.state.items) {
19548
19669
  this.state.items = [];
19549
19670
  }
19550
- this.state.items.push({
19671
+ const item = {
19551
19672
  id: createUUID9(),
19552
19673
  context,
19553
19674
  params
19554
- });
19675
+ };
19676
+ if (index !== void 0) {
19677
+ this.state.items.splice(index, 0, item);
19678
+ } else {
19679
+ this.state.items.push(item);
19680
+ }
19555
19681
  }
19556
19682
  refresh() {
19557
19683
  this.fetchData();
@@ -19674,13 +19800,17 @@ var FormMDCtrlRepeaterController = class extends FormMDCtrlController {
19674
19800
  * @author lxm
19675
19801
  * @date 2023-11-22 04:50:19
19676
19802
  */
19677
- create() {
19803
+ create(index) {
19678
19804
  if (this.isSingleData) {
19679
19805
  this.setValue({});
19680
19806
  } else {
19681
19807
  let tempValue = this.value;
19682
19808
  tempValue = tempValue ? [...tempValue] : [];
19683
- tempValue.push({});
19809
+ if (index !== void 0) {
19810
+ tempValue.splice(index, 0, {});
19811
+ } else {
19812
+ tempValue.push({});
19813
+ }
19684
19814
  this.setValue(tempValue);
19685
19815
  }
19686
19816
  }
@@ -21664,6 +21794,19 @@ var GridController = class extends MDControlController {
21664
21794
  const index = this.findRowStateIndex(data);
21665
21795
  return index !== -1 ? this.state.rows[index] : void 0;
21666
21796
  }
21797
+ /**
21798
+ * 行单击事件
21799
+ *
21800
+ * @author lxm
21801
+ * @date 2022-08-18 22:08:16
21802
+ * @param {IData} data 选中的单条数据
21803
+ */
21804
+ async onRowClick(data) {
21805
+ this.setSelection([data]);
21806
+ if (this.state.mdctrlActiveMode === 1) {
21807
+ await this.setActive(data);
21808
+ }
21809
+ }
21667
21810
  };
21668
21811
 
21669
21812
  // src/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.ts
@@ -22100,6 +22243,10 @@ var GridFieldEditColumnController = class extends GridFieldColumnController {
22100
22243
  * @param {string[]} names 变更属性名称
22101
22244
  */
22102
22245
  async dataChangeNotify(row, names) {
22246
+ const { resetItemName } = this.editItem;
22247
+ if (resetItemName && names.includes(resetItemName)) {
22248
+ this.setRowValue(row, null);
22249
+ }
22103
22250
  this.calcColumnDisabled(row);
22104
22251
  const oldRequired = row.editColStates[this.fieldName].required;
22105
22252
  this.calcColumnRequired(row);
@@ -23849,7 +23996,7 @@ var TreeService = class extends MDControlService {
23849
23996
  const { resultContext, resultParams } = calcNavParams(
23850
23997
  {
23851
23998
  deName,
23852
- navFilter: navFilter ? "n_".concat(navFilter, "_eq") : void 0,
23999
+ navFilter: navFilter ? "n_".concat(navFilter.toLowerCase(), "_eq") : void 0,
23853
24000
  pickupDEFName,
23854
24001
  navParams,
23855
24002
  navContexts
@@ -23953,6 +24100,13 @@ var TreeController = class extends MDControlController {
23953
24100
  * @type {{ [p: string]: ContextMenuController }}
23954
24101
  */
23955
24102
  this.contextMenus = {};
24103
+ /**
24104
+ * 是否启用快速搜索
24105
+ * @author lxm
24106
+ * @date 2023-12-04 03:33:32
24107
+ * @type {boolean}
24108
+ */
24109
+ this.enableQuickSearch = false;
23956
24110
  }
23957
24111
  initState() {
23958
24112
  super.initState();
@@ -23960,15 +24114,41 @@ var TreeController = class extends MDControlController {
23960
24114
  this.state.expandedKeys = [];
23961
24115
  this.state.navigational = false;
23962
24116
  this.state.size = 0;
24117
+ this.state.query = "";
23963
24118
  }
23964
24119
  async onCreated() {
24120
+ var _a, _b;
23965
24121
  await super.onCreated();
23966
24122
  this.state.expandedKeys = [...this.state.defaultExpandedKeys];
24123
+ if ((_a = this.model.detreeNodes) == null ? void 0 : _a[0].enableQuickSearch) {
24124
+ this.enableQuickSearch = true;
24125
+ }
24126
+ if (this.dataEntity) {
24127
+ const searchFields = (_b = this.dataEntity.appDEFields) == null ? void 0 : _b.filter((field) => {
24128
+ return field.enableQuickSearch;
24129
+ });
24130
+ const placeHolders = [];
24131
+ searchFields == null ? void 0 : searchFields.forEach((searchField) => {
24132
+ if ((searchField == null ? void 0 : searchField.lnlanguageRes) && searchField.lnlanguageRes.lanResTag) {
24133
+ placeHolders.push(
24134
+ ibiz.i18n.t(
24135
+ searchField.lnlanguageRes.lanResTag,
24136
+ searchField.logicName
24137
+ )
24138
+ );
24139
+ } else if (searchField == null ? void 0 : searchField.logicName) {
24140
+ placeHolders.push(searchField.logicName);
24141
+ }
24142
+ });
24143
+ if (placeHolders.length > 0) {
24144
+ this.state.placeHolder = placeHolders.join("\u3001");
24145
+ }
24146
+ }
23967
24147
  this.service = new TreeService(this.model);
23968
24148
  await this.service.init(this.context);
23969
24149
  this.model.detreeNodes.forEach((node) => {
23970
- var _a, _b;
23971
- if ((_b = (_a = node.decontextMenu) == null ? void 0 : _a.detoolbarItems) == null ? void 0 : _b.length) {
24150
+ var _a2, _b2;
24151
+ if ((_b2 = (_a2 = node.decontextMenu) == null ? void 0 : _a2.detoolbarItems) == null ? void 0 : _b2.length) {
23972
24152
  this.contextMenus[node.decontextMenu.id] = new ContextMenuController(
23973
24153
  node.decontextMenu,
23974
24154
  this.context,
@@ -24007,6 +24187,13 @@ var TreeController = class extends MDControlController {
24007
24187
  });
24008
24188
  return nodes;
24009
24189
  }
24190
+ async getFetchParams(extraParams) {
24191
+ const params = await super.getFetchParams(extraParams);
24192
+ if (this.state.query) {
24193
+ params.query = this.state.query;
24194
+ }
24195
+ return params;
24196
+ }
24010
24197
  /**
24011
24198
  * 加载子节点数据
24012
24199
  *
@@ -27222,6 +27409,13 @@ var GlobalUtil = class {
27222
27409
  * @date 2023-04-27 21:04:46
27223
27410
  */
27224
27411
  this.layoutPanel = new LayoutPanelUtil();
27412
+ /**
27413
+ * 主题设置工具
27414
+ *
27415
+ * @author chitanda
27416
+ * @date 2023-12-02 23:12:27
27417
+ */
27418
+ this.theme = new ThemeUtil();
27225
27419
  /**
27226
27420
  * 文本工具
27227
27421
  *
@@ -28572,6 +28766,7 @@ export {
28572
28766
  SysUIActionTag,
28573
28767
  TabExpPanelController,
28574
28768
  TextUtil,
28769
+ ThemeUtil,
28575
28770
  ToolbarController,
28576
28771
  TreeCodeListNodeData,
28577
28772
  TreeController,