@ibiz-template/runtime 0.4.3 → 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 (52) hide show
  1. package/dist/index.esm.js +158 -11
  2. package/dist/index.system.min.js +2 -2
  3. package/dist/index.system.min.js.map +1 -1
  4. package/out/controller/control/exp-bar/tree-exp-bar.controller.d.ts +8 -0
  5. package/out/controller/control/exp-bar/tree-exp-bar.controller.d.ts.map +1 -1
  6. package/out/controller/control/exp-bar/tree-exp-bar.controller.js +17 -0
  7. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.d.ts +1 -1
  8. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.d.ts.map +1 -1
  9. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.js +9 -3
  10. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.d.ts +1 -1
  11. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.d.ts.map +1 -1
  12. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.js +7 -2
  13. package/out/controller/control/grid/grid/grid.controller.d.ts +8 -0
  14. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  15. package/out/controller/control/grid/grid/grid.controller.js +15 -0
  16. package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.d.ts.map +1 -1
  17. package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.js +5 -0
  18. package/out/controller/control/tree/tree.controller.d.ts +8 -0
  19. package/out/controller/control/tree/tree.controller.d.ts.map +1 -1
  20. package/out/controller/control/tree/tree.controller.js +38 -0
  21. package/out/controller/control/tree/tree.service.js +1 -1
  22. package/out/global/global-util/global-util.d.ts +8 -1
  23. package/out/global/global-util/global-util.d.ts.map +1 -1
  24. package/out/global/global-util/global-util.js +8 -1
  25. package/out/interface/common/i-plugin-factory/i-plugin-factory.d.ts +4 -5
  26. package/out/interface/common/i-plugin-factory/i-plugin-factory.d.ts.map +1 -1
  27. package/out/interface/controller/state/control/i-tree.state.d.ts +14 -0
  28. package/out/interface/controller/state/control/i-tree.state.d.ts.map +1 -1
  29. package/out/platform/provider/platform-provider-base.d.ts.map +1 -1
  30. package/out/platform/provider/platform-provider-base.js +1 -0
  31. package/out/ui-action/provider/front-ui-action-provider.js +2 -2
  32. package/out/utils/index.d.ts +1 -0
  33. package/out/utils/index.d.ts.map +1 -1
  34. package/out/utils/index.js +1 -0
  35. package/out/utils/theme-util/theme-util.d.ts +46 -0
  36. package/out/utils/theme-util/theme-util.d.ts.map +1 -0
  37. package/out/utils/theme-util/theme-util.js +61 -0
  38. package/package.json +4 -4
  39. package/src/controller/control/exp-bar/tree-exp-bar.controller.ts +18 -0
  40. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.ts +8 -3
  41. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.ts +6 -2
  42. package/src/controller/control/grid/grid/grid.controller.ts +17 -0
  43. package/src/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.ts +6 -0
  44. package/src/controller/control/tree/tree.controller.ts +45 -0
  45. package/src/controller/control/tree/tree.service.ts +1 -1
  46. package/src/global/global-util/global-util.ts +9 -0
  47. package/src/interface/common/i-plugin-factory/i-plugin-factory.ts +4 -5
  48. package/src/interface/controller/state/control/i-tree.state.ts +16 -0
  49. package/src/platform/provider/platform-provider-base.ts +1 -0
  50. package/src/ui-action/provider/front-ui-action-provider.ts +2 -2
  51. package/src/utils/index.ts +1 -0
  52. package/src/utils/theme-util/theme-util.ts +64 -0
package/dist/index.esm.js CHANGED
@@ -2579,6 +2579,61 @@ var TextUtil = class {
2579
2579
  }
2580
2580
  };
2581
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
+
2582
2637
  // src/utils/raw-value-util/raw-value-util.ts
2583
2638
  var RawValueUtil = class {
2584
2639
  /**
@@ -3478,7 +3533,8 @@ var PlatformProviderBase = class {
3478
3533
  async download(url, name) {
3479
3534
  const response = await ibiz.net.request(url, {
3480
3535
  method: "get",
3481
- responseType: "blob"
3536
+ responseType: "blob",
3537
+ baseURL: ""
3482
3538
  });
3483
3539
  if (response.status !== 200) {
3484
3540
  throw new RuntimeError9("\u4E0B\u8F7D\u6587\u4EF6\u5931\u8D25");
@@ -15695,10 +15751,10 @@ var FrontUIActionProvider = class extends UIActionProviderBase {
15695
15751
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
15696
15752
  doOther(action, args) {
15697
15753
  const { scriptCode } = action;
15698
- const { context, params, data, event } = args;
15754
+ const { context, params, data, event, view } = args;
15699
15755
  if (scriptCode) {
15700
15756
  const result = ScriptFactory.execScriptFn(
15701
- { context, params, data, el: event == null ? void 0 : event.target },
15757
+ { context, params, data, el: event == null ? void 0 : event.target, view },
15702
15758
  scriptCode
15703
15759
  );
15704
15760
  return result || {};
@@ -17556,6 +17612,23 @@ var TreeExpBarController = class extends ExpBarControlController {
17556
17612
  }
17557
17613
  await super.onRouterChange(info);
17558
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
+ }
17559
17632
  };
17560
17633
 
17561
17634
  // src/controller/control/exp-bar/chart-exp-bar.controller.ts
@@ -19589,17 +19662,22 @@ var FormMDCtrlFormController = class extends FormMDCtrlController {
19589
19662
  * @author lxm
19590
19663
  * @date 2023-11-11 08:01:49
19591
19664
  */
19592
- create() {
19665
+ create(index) {
19593
19666
  const context = this.context.clone();
19594
19667
  const params = { ...this.params };
19595
19668
  if (!this.state.items) {
19596
19669
  this.state.items = [];
19597
19670
  }
19598
- this.state.items.push({
19671
+ const item = {
19599
19672
  id: createUUID9(),
19600
19673
  context,
19601
19674
  params
19602
- });
19675
+ };
19676
+ if (index !== void 0) {
19677
+ this.state.items.splice(index, 0, item);
19678
+ } else {
19679
+ this.state.items.push(item);
19680
+ }
19603
19681
  }
19604
19682
  refresh() {
19605
19683
  this.fetchData();
@@ -19722,13 +19800,17 @@ var FormMDCtrlRepeaterController = class extends FormMDCtrlController {
19722
19800
  * @author lxm
19723
19801
  * @date 2023-11-22 04:50:19
19724
19802
  */
19725
- create() {
19803
+ create(index) {
19726
19804
  if (this.isSingleData) {
19727
19805
  this.setValue({});
19728
19806
  } else {
19729
19807
  let tempValue = this.value;
19730
19808
  tempValue = tempValue ? [...tempValue] : [];
19731
- tempValue.push({});
19809
+ if (index !== void 0) {
19810
+ tempValue.splice(index, 0, {});
19811
+ } else {
19812
+ tempValue.push({});
19813
+ }
19732
19814
  this.setValue(tempValue);
19733
19815
  }
19734
19816
  }
@@ -21712,6 +21794,19 @@ var GridController = class extends MDControlController {
21712
21794
  const index = this.findRowStateIndex(data);
21713
21795
  return index !== -1 ? this.state.rows[index] : void 0;
21714
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
+ }
21715
21810
  };
21716
21811
 
21717
21812
  // src/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.ts
@@ -22148,6 +22243,10 @@ var GridFieldEditColumnController = class extends GridFieldColumnController {
22148
22243
  * @param {string[]} names 变更属性名称
22149
22244
  */
22150
22245
  async dataChangeNotify(row, names) {
22246
+ const { resetItemName } = this.editItem;
22247
+ if (resetItemName && names.includes(resetItemName)) {
22248
+ this.setRowValue(row, null);
22249
+ }
22151
22250
  this.calcColumnDisabled(row);
22152
22251
  const oldRequired = row.editColStates[this.fieldName].required;
22153
22252
  this.calcColumnRequired(row);
@@ -23897,7 +23996,7 @@ var TreeService = class extends MDControlService {
23897
23996
  const { resultContext, resultParams } = calcNavParams(
23898
23997
  {
23899
23998
  deName,
23900
- navFilter: navFilter ? "n_".concat(navFilter, "_eq") : void 0,
23999
+ navFilter: navFilter ? "n_".concat(navFilter.toLowerCase(), "_eq") : void 0,
23901
24000
  pickupDEFName,
23902
24001
  navParams,
23903
24002
  navContexts
@@ -24001,6 +24100,13 @@ var TreeController = class extends MDControlController {
24001
24100
  * @type {{ [p: string]: ContextMenuController }}
24002
24101
  */
24003
24102
  this.contextMenus = {};
24103
+ /**
24104
+ * 是否启用快速搜索
24105
+ * @author lxm
24106
+ * @date 2023-12-04 03:33:32
24107
+ * @type {boolean}
24108
+ */
24109
+ this.enableQuickSearch = false;
24004
24110
  }
24005
24111
  initState() {
24006
24112
  super.initState();
@@ -24008,15 +24114,41 @@ var TreeController = class extends MDControlController {
24008
24114
  this.state.expandedKeys = [];
24009
24115
  this.state.navigational = false;
24010
24116
  this.state.size = 0;
24117
+ this.state.query = "";
24011
24118
  }
24012
24119
  async onCreated() {
24120
+ var _a, _b;
24013
24121
  await super.onCreated();
24014
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
+ }
24015
24147
  this.service = new TreeService(this.model);
24016
24148
  await this.service.init(this.context);
24017
24149
  this.model.detreeNodes.forEach((node) => {
24018
- var _a, _b;
24019
- 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) {
24020
24152
  this.contextMenus[node.decontextMenu.id] = new ContextMenuController(
24021
24153
  node.decontextMenu,
24022
24154
  this.context,
@@ -24055,6 +24187,13 @@ var TreeController = class extends MDControlController {
24055
24187
  });
24056
24188
  return nodes;
24057
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
+ }
24058
24197
  /**
24059
24198
  * 加载子节点数据
24060
24199
  *
@@ -27270,6 +27409,13 @@ var GlobalUtil = class {
27270
27409
  * @date 2023-04-27 21:04:46
27271
27410
  */
27272
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();
27273
27419
  /**
27274
27420
  * 文本工具
27275
27421
  *
@@ -28620,6 +28766,7 @@ export {
28620
28766
  SysUIActionTag,
28621
28767
  TabExpPanelController,
28622
28768
  TextUtil,
28769
+ ThemeUtil,
28623
28770
  ToolbarController,
28624
28771
  TreeCodeListNodeData,
28625
28772
  TreeController,