@ibiz-template/vue3-components 0.4.16 → 0.4.17-dev.1

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 (100) hide show
  1. package/dist/index-mqFVS4VE.js +13 -0
  2. package/dist/index.min.css +1 -1
  3. package/dist/index.system.min.js +1 -1
  4. package/dist/{xlsx-util-s1PLJYmT.js → xlsx-util-fayKvEnJ.js} +1 -1
  5. package/es/common/grid-setting/grid-setting.css +1 -0
  6. package/es/common/grid-setting/grid-setting.d.ts +19 -0
  7. package/es/common/grid-setting/grid-setting.mjs +52 -0
  8. package/es/common/index.mjs +2 -0
  9. package/es/control/drtab/drtab.controller.d.ts +10 -5
  10. package/es/control/drtab/drtab.controller.mjs +18 -9
  11. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.d.ts +14 -35
  12. package/es/control/grid/grid/grid-control.util.mjs +16 -0
  13. package/es/control/grid/grid/grid.css +1 -1
  14. package/es/control/grid/grid/grid.d.ts +2 -1
  15. package/es/control/grid/grid/grid.mjs +8 -1
  16. package/es/control/grid/grid/index.d.ts +1 -0
  17. package/es/control/grid/grid-column/grid-field-column/grid-field-column.d.ts +2 -10
  18. package/es/control/grid/grid-column/grid-field-column/grid-field-column.mjs +5 -19
  19. package/es/control/grid/grid-column/grid-field-column/index.d.ts +0 -7
  20. package/es/control/grid/grid-column/grid-ua-column/grid-ua-column.mjs +3 -3
  21. package/es/control/search-bar/index.d.ts +1 -0
  22. package/es/control/search-bar/index.mjs +2 -0
  23. package/es/control/search-bar/search-bar.css +1 -1
  24. package/es/control/search-bar/search-bar.d.ts +1 -0
  25. package/es/control/search-bar/search-bar.mjs +31 -26
  26. package/es/control/search-bar/search-groups/edit-group-util.d.ts +10 -0
  27. package/es/control/search-bar/search-groups/edit-group-util.mjs +50 -0
  28. package/es/control/search-bar/search-groups/new-group-util.d.ts +10 -0
  29. package/es/control/search-bar/search-groups/new-group-util.mjs +42 -0
  30. package/es/control/search-bar/search-groups/search-groups.css +1 -0
  31. package/es/control/search-bar/search-groups/search-groups.d.ts +38 -0
  32. package/es/control/search-bar/search-groups/search-groups.mjs +328 -0
  33. package/es/control/tree/index.d.ts +1 -1
  34. package/es/control/tree/tree.d.ts +1 -1
  35. package/es/control/tree-grid-ex/index.d.ts +2 -3
  36. package/es/control/tree-grid-ex/index.mjs +5 -0
  37. package/es/control/tree-grid-ex/tree-grid-ex-column/index.d.ts +2 -0
  38. package/es/control/tree-grid-ex/tree-grid-ex-column/index.mjs +4 -0
  39. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/index.d.ts +25 -0
  40. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/index.mjs +18 -0
  41. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.css +1 -0
  42. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.d.ts +27 -0
  43. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.mjs +66 -0
  44. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.provider.d.ts +15 -0
  45. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.provider.mjs +21 -0
  46. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/index.d.ts +24 -0
  47. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/index.mjs +18 -0
  48. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.css +1 -0
  49. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.d.ts +27 -0
  50. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.mjs +47 -0
  51. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.provider.d.ts +15 -0
  52. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.provider.mjs +21 -0
  53. package/es/control/tree-grid-ex/tree-grid-ex.css +1 -1
  54. package/es/control/tree-grid-ex/tree-grid-ex.d.ts +6 -7
  55. package/es/control/tree-grid-ex/tree-grid-ex.mjs +36 -38
  56. package/es/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.d.ts +1 -5
  57. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.d.ts +1 -5
  58. package/es/editor/markdown/markdown-editor.controller.mjs +1 -1
  59. package/es/editor/span/span/span.mjs +2 -2
  60. package/es/editor/text-box/text-box-editor.controller.mjs +1 -1
  61. package/es/view-engine/edit-view.engine.mjs +2 -0
  62. package/es/view-engine/tree-grid-ex-view.engine.d.ts +3 -2
  63. package/es/view-engine/tree-grid-ex-view.engine.mjs +2 -2
  64. package/es/view-engine/wf-dyna-edit-view.engine.mjs +7 -1
  65. package/lib/common/grid-setting/grid-setting.cjs +54 -0
  66. package/lib/common/grid-setting/grid-setting.css +1 -0
  67. package/lib/common/index.cjs +2 -0
  68. package/lib/control/drtab/drtab.controller.cjs +17 -8
  69. package/lib/control/grid/grid/grid-control.util.cjs +16 -0
  70. package/lib/control/grid/grid/grid.cjs +8 -1
  71. package/lib/control/grid/grid/grid.css +1 -1
  72. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.cjs +5 -19
  73. package/lib/control/grid/grid-column/grid-ua-column/grid-ua-column.cjs +3 -3
  74. package/lib/control/search-bar/index.cjs +2 -0
  75. package/lib/control/search-bar/search-bar.cjs +30 -25
  76. package/lib/control/search-bar/search-bar.css +1 -1
  77. package/lib/control/search-bar/search-groups/edit-group-util.cjs +52 -0
  78. package/lib/control/search-bar/search-groups/new-group-util.cjs +44 -0
  79. package/lib/control/search-bar/search-groups/search-groups.cjs +330 -0
  80. package/lib/control/search-bar/search-groups/search-groups.css +1 -0
  81. package/lib/control/tree-grid-ex/index.cjs +5 -0
  82. package/lib/control/tree-grid-ex/tree-grid-ex-column/index.cjs +9 -0
  83. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/index.cjs +23 -0
  84. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.cjs +71 -0
  85. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.css +1 -0
  86. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.provider.cjs +23 -0
  87. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/index.cjs +23 -0
  88. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.cjs +52 -0
  89. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.css +1 -0
  90. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.provider.cjs +23 -0
  91. package/lib/control/tree-grid-ex/tree-grid-ex.cjs +36 -38
  92. package/lib/control/tree-grid-ex/tree-grid-ex.css +1 -1
  93. package/lib/editor/markdown/markdown-editor.controller.cjs +1 -1
  94. package/lib/editor/span/span/span.cjs +2 -2
  95. package/lib/editor/text-box/text-box-editor.controller.cjs +1 -1
  96. package/lib/view-engine/edit-view.engine.cjs +2 -0
  97. package/lib/view-engine/tree-grid-ex-view.engine.cjs +2 -2
  98. package/lib/view-engine/wf-dyna-edit-view.engine.cjs +7 -1
  99. package/package.json +5 -5
  100. package/dist/index-iCjyBjMt.js +0 -13
@@ -95,6 +95,7 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
95
95
  };
96
96
  data: IData;
97
97
  container?: {
98
+ readonly id: string;
98
99
  state: object;
99
100
  readonly model: {
100
101
  appId: string;
@@ -114,12 +115,8 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
114
115
  readonly context: {
115
116
  [x: string]: any;
116
117
  [x: symbol]: any;
117
- srfsandbox?: string | undefined;
118
+ srfsessionid: string;
118
119
  srfappid: string;
119
- getOwnContext: () => IData;
120
- destroy: () => void;
121
- clone: () => IContext;
122
- reset: (context?: IData | undefined, parent?: IContext | undefined) => void;
123
120
  };
124
121
  readonly params: IParams;
125
122
  childNames: string[];
@@ -218,6 +215,7 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
218
215
  context?: IContext | undefined;
219
216
  params?: IParams | undefined;
220
217
  }) => void;
218
+ readonly id: string;
221
219
  state: {
222
220
  data: IData;
223
221
  activated: boolean;
@@ -2571,12 +2569,8 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
2571
2569
  readonly context: {
2572
2570
  [x: string]: any;
2573
2571
  [x: symbol]: any;
2574
- srfsandbox?: string | undefined;
2572
+ srfsessionid: string;
2575
2573
  srfappid: string;
2576
- getOwnContext: () => IData;
2577
- destroy: () => void;
2578
- clone: () => IContext;
2579
- reset: (context?: IData | undefined, parent?: IContext | undefined) => void;
2580
2574
  };
2581
2575
  readonly params: IParams;
2582
2576
  childNames: string[];
@@ -2594,6 +2588,7 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
2594
2588
  endLoading: () => void;
2595
2589
  onActivated: () => void;
2596
2590
  onDeactivated: () => void;
2591
+ readonly id: string;
2597
2592
  state: {
2598
2593
  activated: boolean;
2599
2594
  caption: string;
@@ -5931,12 +5926,8 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
5931
5926
  readonly context: {
5932
5927
  [x: string]: any;
5933
5928
  [x: symbol]: any;
5934
- srfsandbox?: string | undefined;
5929
+ srfsessionid: string;
5935
5930
  srfappid: string;
5936
- getOwnContext: () => IData;
5937
- destroy: () => void;
5938
- clone: () => IContext;
5939
- reset: (context?: IData | undefined, parent?: IContext | undefined) => void;
5940
5931
  };
5941
5932
  readonly params: IParams;
5942
5933
  childNames: string[];
@@ -5952,6 +5943,7 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
5952
5943
  };
5953
5944
  data: IData;
5954
5945
  container?: {
5946
+ readonly id: string;
5955
5947
  state: object;
5956
5948
  readonly model: {
5957
5949
  appId: string;
@@ -5971,12 +5963,8 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
5971
5963
  readonly context: {
5972
5964
  [x: string]: any;
5973
5965
  [x: symbol]: any;
5974
- srfsandbox?: string | undefined;
5966
+ srfsessionid: string;
5975
5967
  srfappid: string;
5976
- getOwnContext: () => IData;
5977
- destroy: () => void;
5978
- clone: () => IContext;
5979
- reset: (context?: IData | undefined, parent?: IContext | undefined) => void;
5980
5968
  };
5981
5969
  readonly params: IParams;
5982
5970
  childNames: string[];
@@ -6070,6 +6058,7 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
6070
6058
  endLoading: () => void;
6071
6059
  onActivated: () => void;
6072
6060
  onDeactivated: () => void;
6061
+ readonly id: string;
6073
6062
  state: {
6074
6063
  activated: boolean;
6075
6064
  caption: string;
@@ -9357,12 +9346,8 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
9357
9346
  readonly context: {
9358
9347
  [x: string]: any;
9359
9348
  [x: symbol]: any;
9360
- srfsandbox?: string | undefined;
9349
+ srfsessionid: string;
9361
9350
  srfappid: string;
9362
- getOwnContext: () => IData;
9363
- destroy: () => void;
9364
- clone: () => IContext;
9365
- reset: (context?: IData | undefined, parent?: IContext | undefined) => void;
9366
9351
  };
9367
9352
  readonly params: IParams;
9368
9353
  childNames: string[];
@@ -9457,6 +9442,7 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
9457
9442
  context?: IContext | undefined;
9458
9443
  params?: IParams | undefined;
9459
9444
  }) => void;
9445
+ readonly id: string;
9460
9446
  state: {
9461
9447
  data: IData;
9462
9448
  activated: boolean;
@@ -11810,12 +11796,8 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
11810
11796
  readonly context: {
11811
11797
  [x: string]: any;
11812
11798
  [x: symbol]: any;
11813
- srfsandbox?: string | undefined;
11799
+ srfsessionid: string;
11814
11800
  srfappid: string;
11815
- getOwnContext: () => IData;
11816
- destroy: () => void;
11817
- clone: () => IContext;
11818
- reset: (context?: IData | undefined, parent?: IContext | undefined) => void;
11819
11801
  };
11820
11802
  readonly params: IParams;
11821
11803
  childNames: string[];
@@ -11909,6 +11891,7 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
11909
11891
  context?: IContext | undefined;
11910
11892
  params?: IParams | undefined;
11911
11893
  }) => void;
11894
+ readonly id: string;
11912
11895
  state: {
11913
11896
  isLoaded: boolean;
11914
11897
  data: IData;
@@ -15439,12 +15422,8 @@ export declare const RepeaterGrid: import("vue").DefineComponent<{
15439
15422
  readonly context: {
15440
15423
  [x: string]: any;
15441
15424
  [x: symbol]: any;
15442
- srfsandbox?: string | undefined;
15425
+ srfsessionid: string;
15443
15426
  srfappid: string;
15444
- getOwnContext: () => IData;
15445
- destroy: () => void;
15446
- clone: () => IContext;
15447
- reset: (context?: IData | undefined, parent?: IContext | undefined) => void;
15448
15427
  };
15449
15428
  readonly params: IParams;
15450
15429
  childNames: string[];
@@ -92,6 +92,22 @@ function useITableEvent(c) {
92
92
  }
93
93
  return "";
94
94
  }
95
+ watch(
96
+ () => c.state.sortQuery,
97
+ (newVal) => {
98
+ if (newVal) {
99
+ const prop = c.state.sortQuery.split(",")[0];
100
+ const sortDir = c.state.sortQuery.split(",")[1];
101
+ if (tableRef.value && prop && sortDir) {
102
+ const order = sortDir === "desc" ? "descending" : "ascending";
103
+ setTimeout(() => {
104
+ var _a;
105
+ (_a = tableRef.value) == null ? void 0 : _a.sort(prop, order);
106
+ });
107
+ }
108
+ }
109
+ }
110
+ );
95
111
  return {
96
112
  tableRef,
97
113
  onRowClick,
@@ -1 +1 @@
1
- .ibiz-control-grid{--ibiz-control-grid-text-color:var(--ibiz-color-text-0);--ibiz-control-grid-bg-color:transparent;--ibiz-control-grid-padding:0;--ibiz-control-grid-cell-padding:var(--ibiz-spacing-tight);--ibiz-control-grid-selection-padding:var(--ibiz-spacing-base-loose);--ibiz-control-grid-row-edit-bg-color:var(--ibiz-color-fill-2);--ibiz-control-grid-row-bg-color:var(--ibiz-color-bg-1);--ibiz-control-grid-row-bg-color-2:var(--ibiz-color-bg-0);--ibiz-control-grid-header-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-header-cell-padding:var(--ibiz-control-grid-cell-padding);--ibiz-control-grid-header-height:auto;--ibiz-control-grid-header-bg-color:var(--ibiz-color-tertiary-light-hover);--ibiz-control-grid-header-font-size:var(--ibiz-font-size-regular);--ibiz-control-grid-header-font-weight:var(--ibiz-font-weight-regular);--ibiz-control-grid-content-text-color:var(--ibiz-control-grid-text-color);--ibiz-control-grid-content-row-height:48px;--ibiz-control-grid-page-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-page-height:50px;--ibiz-control-grid-page-padding:0 var(--ibiz-spacing-base-tight);--ibiz-control-grid-footer-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-footer-bg-color:var(--ibiz-color-tertiary-light-hover);--ibiz-control-grid-footer-font-size:var(--ibiz-font-size-regular);--ibiz-control-grid-footer-font-weight:var(--ibiz-font-weight-bold);width:100%;height:100%;padding:var(--ibiz-control-grid-padding);background-color:var(--ibiz-control-grid-bg-color)}.ibiz-control-grid .el-table{--el-table-header-bg-color:var(--ibiz-control-grid-header-bg-color);--el-table-border-color:transparent}.ibiz-control-grid .el-table--border .el-table__cell{border-right:none}.ibiz-control-grid .el-table-fixed-column--left,.ibiz-control-grid .el-table-fixed-column--right{--el-bg-color:transparent}.ibiz-control-grid .el-table thead.is-group th.el-table__cell{background:var(--ibiz-control-grid-header-bg-color)}.ibiz-control-grid.is-enable-page .ibiz-control-grid__table{height:calc(100% - var(--ibiz-control-grid-page-height))}.ibiz-control-grid.is-enable-group .el-table__indent{display:none}.ibiz-control-grid__table{width:100%;height:100%}.ibiz-control-grid__table .caret-wrapper{gap:3px;justify-content:center}.ibiz-control-grid__table .sort-caret{position:initial}.ibiz-control-grid__table.el-table .el-table__cell{padding:0}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr td{background:var(--ibiz-control-grid-row-bg-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr:nth-child(2n) td{background-color:var(--ibiz-control-grid-row-bg-color-2)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr:hover td{background-color:var(--el-table-row-hover-bg-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr.current-row td{background-color:var(--el-table-current-row-bg-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr.editing-row td{background-color:var(--ibiz-control-grid-row-edit-bg-color)}.ibiz-control-grid__table .el-table__header-wrapper .cell{height:var(--ibiz-control-grid-header-height);padding:var(--ibiz-control-grid-header-cell-padding);font-size:var(--ibiz-control-grid-header-font-size);font-weight:var(--ibiz-control-grid-header-font-weight);color:var(--ibiz-control-grid-header-text-color);word-break:break-word;white-space:pre-wrap}.ibiz-control-grid__table .el-table__header-wrapper .el-table-column--selection .cell{padding:var(--ibiz-control-grid-selection-padding)}.ibiz-control-grid__table .el-table__header-wrapper .is-sortable.el-table__cell .cell{display:flex;align-items:center;justify-content:var(--ibiz-grid-column-justify-content)}.ibiz-control-grid__table .el-table__body-wrapper{color:var(--ibiz-control-grid-content-text-color);border-bottom:.1px solid var(--ibiz-color-border)}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row{height:var(--ibiz-control-grid-content-row-height);cursor:pointer}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row>td{height:0;padding:0}@-moz-document url-prefix(){.ibiz-control-grid__table .el-table__body-wrapper .el-table__row>td{height:100%}}.ibiz-control-grid__table .el-table__body-wrapper .cell{display:flex;align-items:center;height:100%;padding:0}.ibiz-control-grid__table .el-table__body-wrapper .el-table-column--selection .cell{padding:var(--ibiz-control-grid-selection-padding)}.ibiz-control-grid__table .el-table__cell.is-center{--ibiz-grid-column-text-align:center;--ibiz-grid-column-justify-content:center}.ibiz-control-grid__table .el-table__cell.is-left{--ibiz-grid-column-text-align:left;--ibiz-grid-column-justify-content:flex-start}.ibiz-control-grid__table .el-table__cell.is-right{--ibiz-grid-column-text-align:right;--ibiz-grid-column-justify-content:flex-end}.ibiz-control-grid__table .el-scrollbar__wrap{position:relative}.ibiz-control-grid__table .el-table__footer-wrapper tfoot td.el-table__cell{font-size:var(--ibiz-control-grid-footer-font-size);font-weight:var(--ibiz-control-grid-footer-font-weight);color:var(--ibiz-control-grid-footer-text-color);background-color:var(--ibiz-control-grid-footer-bg-color)}.ibiz-control-grid__table .el-table__footer-wrapper tfoot td.el-table__cell:first-child>div{display:inline;vertical-align:4px}.ibiz-control-grid .el-table td.el-table__cell,.ibiz-control-grid .el-table th.el-table__cell.is-leaf{border-bottom:none}.ibiz-control-grid .ibiz-pagination{--ibiz-pagination-height:var(--ibiz-control-grid-page-height);--ibiz-pagination-text-color:var(--ibiz-control-grid-text-color);--ibiz-pagination-padding:var(--ibiz-control-grid-page-padding)}
1
+ .ibiz-control-grid{--ibiz-control-grid-text-color:var(--ibiz-color-text-0);--ibiz-control-grid-bg-color:transparent;--ibiz-control-grid-padding:0;--ibiz-control-grid-cell-padding:var(--ibiz-spacing-tight);--ibiz-control-grid-selection-padding:var(--ibiz-spacing-base-loose);--ibiz-control-grid-row-edit-bg-color:var(--ibiz-color-fill-2);--ibiz-control-grid-row-bg-color:var(--ibiz-color-bg-1);--ibiz-control-grid-row-bg-color-2:var(--ibiz-color-bg-0);--ibiz-control-grid-header-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-header-cell-padding:var(--ibiz-control-grid-cell-padding);--ibiz-control-grid-header-height:auto;--ibiz-control-grid-header-bg-color:var(--ibiz-color-tertiary-light-hover);--ibiz-control-grid-header-font-size:var(--ibiz-font-size-regular);--ibiz-control-grid-header-font-weight:var(--ibiz-font-weight-regular);--ibiz-control-grid-content-text-color:var(--ibiz-control-grid-text-color);--ibiz-control-grid-content-row-height:48px;--ibiz-control-grid-page-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-page-height:50px;--ibiz-control-grid-page-padding:0 var(--ibiz-spacing-base-tight);--ibiz-control-grid-footer-text-color:var(--ibiz-color-text-2);--ibiz-control-grid-footer-bg-color:var(--ibiz-color-tertiary-light-hover);--ibiz-control-grid-footer-font-size:var(--ibiz-font-size-regular);--ibiz-control-grid-footer-font-weight:var(--ibiz-font-weight-bold);position:relative;width:100%;height:100%;padding:var(--ibiz-control-grid-padding);background-color:var(--ibiz-control-grid-bg-color)}.ibiz-control-grid .el-table{--el-table-header-bg-color:var(--ibiz-control-grid-header-bg-color);--el-table-border-color:transparent}.ibiz-control-grid .el-table--border .el-table__cell{border-right:none}.ibiz-control-grid .el-table-fixed-column--left,.ibiz-control-grid .el-table-fixed-column--right{--el-bg-color:transparent}.ibiz-control-grid .el-table thead.is-group th.el-table__cell{background:var(--ibiz-control-grid-header-bg-color)}.ibiz-control-grid.is-enable-page .ibiz-control-grid__table{height:calc(100% - var(--ibiz-control-grid-page-height))}.ibiz-control-grid.is-enable-group .el-table__indent{display:none}.ibiz-control-grid__table{width:100%;height:100%}.ibiz-control-grid__table .caret-wrapper{gap:3px;justify-content:center}.ibiz-control-grid__table .sort-caret{position:initial}.ibiz-control-grid__table.el-table .el-table__cell{padding:0}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr td{background:var(--ibiz-control-grid-row-bg-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr:nth-child(2n) td{background-color:var(--ibiz-control-grid-row-bg-color-2)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr:hover td{background-color:var(--el-table-row-hover-bg-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr.current-row td{background-color:var(--el-table-current-row-bg-color)}.ibiz-control-grid__table.el-table .el-table__body-wrapper tr.editing-row td{background-color:var(--ibiz-control-grid-row-edit-bg-color)}.ibiz-control-grid__table .el-table__header-wrapper .cell{height:var(--ibiz-control-grid-header-height);padding:var(--ibiz-control-grid-header-cell-padding);font-size:var(--ibiz-control-grid-header-font-size);font-weight:var(--ibiz-control-grid-header-font-weight);color:var(--ibiz-control-grid-header-text-color);word-break:break-word;white-space:pre-wrap}.ibiz-control-grid__table .el-table__header-wrapper .el-table-column--selection .cell{padding:var(--ibiz-control-grid-selection-padding)}.ibiz-control-grid__table .el-table__header-wrapper .is-sortable.el-table__cell .cell{display:flex;align-items:center;justify-content:var(--ibiz-grid-column-justify-content)}.ibiz-control-grid__table .el-table__body-wrapper{color:var(--ibiz-control-grid-content-text-color);border-bottom:.1px solid var(--ibiz-color-border)}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row{height:var(--ibiz-control-grid-content-row-height);cursor:pointer}.ibiz-control-grid__table .el-table__body-wrapper .el-table__row>td{height:0;padding:0}@-moz-document url-prefix(){.ibiz-control-grid__table .el-table__body-wrapper .el-table__row>td{height:100%}}.ibiz-control-grid__table .el-table__body-wrapper .cell{display:flex;align-items:center;height:100%;padding:0}.ibiz-control-grid__table .el-table__body-wrapper .el-table-column--selection .cell{padding:var(--ibiz-control-grid-selection-padding)}.ibiz-control-grid__table .el-table__cell.is-center{--ibiz-grid-column-text-align:center;--ibiz-grid-column-justify-content:center}.ibiz-control-grid__table .el-table__cell.is-left{--ibiz-grid-column-text-align:left;--ibiz-grid-column-justify-content:flex-start}.ibiz-control-grid__table .el-table__cell.is-right{--ibiz-grid-column-text-align:right;--ibiz-grid-column-justify-content:flex-end}.ibiz-control-grid__table .el-scrollbar__wrap{position:relative}.ibiz-control-grid__table .el-table__footer-wrapper tfoot td.el-table__cell{font-size:var(--ibiz-control-grid-footer-font-size);font-weight:var(--ibiz-control-grid-footer-font-weight);color:var(--ibiz-control-grid-footer-text-color);background-color:var(--ibiz-control-grid-footer-bg-color)}.ibiz-control-grid__table .el-table__footer-wrapper tfoot td.el-table__cell:first-child>div{display:inline;vertical-align:4px}.ibiz-control-grid .el-table td.el-table__cell,.ibiz-control-grid .el-table th.el-table__cell.is-leaf{border-bottom:none}.ibiz-control-grid .ibiz-pagination{--ibiz-pagination-height:var(--ibiz-control-grid-page-height);--ibiz-pagination-text-color:var(--ibiz-control-grid-text-color);--ibiz-pagination-padding:var(--ibiz-control-grid-page-padding)}.ibiz-control-grid .ibiz-grid-setting{position:absolute;bottom:var(--ibiz-spacing-base-tight);left:0;z-index:99;cursor:pointer}
@@ -1,6 +1,6 @@
1
1
  import { PropType, VNode } from 'vue';
2
2
  import { IDEGrid, IDEGridColumn } from '@ibiz/model-core';
3
- import { GridController, IControlProvider } from '@ibiz-template/runtime';
3
+ import { GridController, IColumnState, IControlProvider } from '@ibiz-template/runtime';
4
4
  import './grid.scss';
5
5
  export declare function renderColumn(c: GridController, model: IDEGridColumn, renderColumns: IDEGridColumn[], index: number): VNode | null;
6
6
  export declare function renderChildColumn(c: GridController, model: IDEGridColumn, renderColumns: IDEGridColumn[], index: number): VNode | null;
@@ -98,6 +98,7 @@ export declare const GridControl: import("vue").DefineComponent<{
98
98
  }) => string[];
99
99
  renderPopover: () => JSX.Element[];
100
100
  defaultSort: import("vue").Ref<IData>;
101
+ onColumnStateClick: (columnState: IColumnState) => void;
101
102
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
102
103
  modelData: {
103
104
  type: PropType<IDEGrid>;
@@ -160,6 +160,9 @@ const GridControl = /* @__PURE__ */ defineComponent({
160
160
  const {
161
161
  renderPopover
162
162
  } = useRowEditPopover(tableRef, c);
163
+ const onColumnStateClick = (columnState) => {
164
+ c.setColumnVisible(columnState);
165
+ };
163
166
  return {
164
167
  c,
165
168
  ns,
@@ -178,7 +181,8 @@ const GridControl = /* @__PURE__ */ defineComponent({
178
181
  renderNoData,
179
182
  summaryMethod,
180
183
  renderPopover,
181
- defaultSort
184
+ defaultSort,
185
+ onColumnStateClick
182
186
  };
183
187
  },
184
188
  render() {
@@ -233,6 +237,9 @@ const GridControl = /* @__PURE__ */ defineComponent({
233
237
  "onChange": this.onPageChange,
234
238
  "onPageSizeChange": this.onPageSizeChange,
235
239
  "onPageRefresh": this.onPageRefresh
240
+ }, null), createVNode(resolveComponent("iBizGridSetting"), {
241
+ "columnStates": state.columnStates,
242
+ "onColumnStateClick": this.onColumnStateClick
236
243
  }, null)]
237
244
  });
238
245
  }
@@ -87,6 +87,7 @@ export declare const IBizGridControl: import("@ibiz-template/vue3-util").TypeWit
87
87
  }) => string[];
88
88
  renderPopover: () => JSX.Element[];
89
89
  defaultSort: import("vue").Ref<IData>;
90
+ onColumnStateClick: (columnState: import("@ibiz-template/runtime").IColumnState) => void;
90
91
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
91
92
  modelData: {
92
93
  type: import("vue").PropType<import("@ibiz/model-core").IDEGrid>;
@@ -1,7 +1,6 @@
1
- import { IDETreeNode, IUIActionGroupDetail } from '@ibiz/model-core';
2
- import { PropType } from 'vue';
3
- import { GridFieldColumnController, GridRowState } from '@ibiz-template/runtime';
1
+ import { IUIActionGroupDetail } from '@ibiz/model-core';
4
2
  import './grid-field-column.scss';
3
+ import { GridFieldColumnController, GridRowState } from '@ibiz-template/runtime';
5
4
  export declare const GridFieldColumn: import("vue").DefineComponent<{
6
5
  controller: {
7
6
  type: typeof GridFieldColumnController;
@@ -11,9 +10,6 @@ export declare const GridFieldColumn: import("vue").DefineComponent<{
11
10
  type: typeof GridRowState;
12
11
  required: true;
13
12
  };
14
- nodeModel: {
15
- type: PropType<IDETreeNode>;
16
- };
17
13
  }, {
18
14
  ns: import("@ibiz-template/core").Namespace;
19
15
  onCellClick: (event: MouseEvent) => void;
@@ -24,7 +20,6 @@ export declare const GridFieldColumn: import("vue").DefineComponent<{
24
20
  fieldValue: import("vue").ComputedRef<any>;
25
21
  formatValue: import("vue").ComputedRef<string>;
26
22
  tooltip: import("vue").ComputedRef<string | undefined>;
27
- isShowContextMenu: import("vue").ComputedRef<boolean | undefined>;
28
23
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
29
24
  controller: {
30
25
  type: typeof GridFieldColumnController;
@@ -34,8 +29,5 @@ export declare const GridFieldColumn: import("vue").DefineComponent<{
34
29
  type: typeof GridRowState;
35
30
  required: true;
36
31
  };
37
- nodeModel: {
38
- type: PropType<IDETreeNode>;
39
- };
40
32
  }>>, {}, {}>;
41
33
  export default GridFieldColumn;
@@ -1,8 +1,8 @@
1
1
  import { computed, ref, resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
+ import './grid-field-column.css';
3
4
  import { GridFieldColumnController, GridRowState } from '@ibiz-template/runtime';
4
5
  import { isNotNil } from 'ramda';
5
- import './grid-field-column.css';
6
6
 
7
7
  "use strict";
8
8
  const GridFieldColumn = /* @__PURE__ */ defineComponent({
@@ -15,17 +15,10 @@ const GridFieldColumn = /* @__PURE__ */ defineComponent({
15
15
  row: {
16
16
  type: GridRowState,
17
17
  required: true
18
- },
19
- nodeModel: {
20
- type: Object
21
18
  }
22
19
  },
23
20
  setup(props) {
24
21
  const ns = useNamespace("grid-field-column");
25
- const isShowContextMenu = computed(() => {
26
- var _a, _b;
27
- return ((_b = (_a = props.nodeModel) == null ? void 0 : _a.decontextMenu) == null ? void 0 : _b.detoolbarItems) && props.controller.model.codeName === "name";
28
- });
29
22
  const onCellClick = (event) => {
30
23
  if (props.controller.hasAction) {
31
24
  event.stopPropagation();
@@ -65,8 +58,7 @@ const GridFieldColumn = /* @__PURE__ */ defineComponent({
65
58
  CustomHtml,
66
59
  fieldValue,
67
60
  formatValue,
68
- tooltip,
69
- isShowContextMenu
61
+ tooltip
70
62
  };
71
63
  },
72
64
  render() {
@@ -78,12 +70,6 @@ const GridFieldColumn = /* @__PURE__ */ defineComponent({
78
70
  "actions-state": this.row.uiActionGroupStates[this.controller.model.codeName],
79
71
  "onActionClick": this.onActionClick
80
72
  }, null) : null;
81
- const nodeContextMenu = this.isShowContextMenu ? createVNode("div", {
82
- "class": this.ns.b("context-menu-trigger")
83
- }, [createVNode("ion-icon", {
84
- "class": this.ns.be("context-menu-trigger", "caption-icon"),
85
- "name": "ellipsis-horizontal"
86
- }, null)]) : null;
87
73
  let content = null;
88
74
  if (c.isCustomCode) {
89
75
  content = createVNode("span", {
@@ -110,11 +96,11 @@ const GridFieldColumn = /* @__PURE__ */ defineComponent({
110
96
  return createVNode("div", {
111
97
  "class": [this.ns.b(), c.clickable(this.row) && this.ns.m("clickable"), this.ns.m(this.controller.grid.overflowMode), (_a = this.controller.model.cellSysCss) == null ? void 0 : _a.cssName, this.ns.is("has-action", !!c.model.deuiactionGroup)],
112
98
  "onClick": this.onCellClick
113
- }, [createVNode("div", {
99
+ }, [c.model.deuiactionGroup ? [createVNode("div", {
114
100
  "class": this.ns.b("text-container")
115
- }, [content]), (c.model.deuiactionGroup || this.isShowContextMenu) && createVNode("div", {
101
+ }, [content]), createVNode("div", {
116
102
  "class": this.ns.b("toolbar-container")
117
- }, [actionToolbar, nodeContextMenu])]);
103
+ }, [actionToolbar])] : content]);
118
104
  }
119
105
  });
120
106
 
@@ -7,9 +7,6 @@ export declare const IBizGridFieldColumn: import("@ibiz-template/vue3-util").Typ
7
7
  type: typeof import("@ibiz-template/runtime").GridRowState;
8
8
  required: true;
9
9
  };
10
- nodeModel: {
11
- type: import("vue").PropType<import("@ibiz/model-core").IDETreeNode>;
12
- };
13
10
  }, {
14
11
  ns: import("@ibiz-template/core").Namespace;
15
12
  onCellClick: (event: MouseEvent) => void;
@@ -20,7 +17,6 @@ export declare const IBizGridFieldColumn: import("@ibiz-template/vue3-util").Typ
20
17
  fieldValue: import("vue").ComputedRef<any>;
21
18
  formatValue: import("vue").ComputedRef<string>;
22
19
  tooltip: import("vue").ComputedRef<string | undefined>;
23
- isShowContextMenu: import("vue").ComputedRef<boolean | undefined>;
24
20
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
25
21
  controller: {
26
22
  type: typeof import("@ibiz-template/runtime").GridFieldColumnController;
@@ -30,8 +26,5 @@ export declare const IBizGridFieldColumn: import("@ibiz-template/vue3-util").Typ
30
26
  type: typeof import("@ibiz-template/runtime").GridRowState;
31
27
  required: true;
32
28
  };
33
- nodeModel: {
34
- type: import("vue").PropType<import("@ibiz/model-core").IDETreeNode>;
35
- };
36
29
  }>>, {}, {}>>;
37
30
  export default IBizGridFieldColumn;
@@ -33,10 +33,10 @@ const GridUAColumn = /* @__PURE__ */ defineComponent({
33
33
  render() {
34
34
  var _a, _b, _c;
35
35
  return createVNode("div", {
36
- "class": [this.ns.b(), (_a = this.controller.model.cellSysCss) == null ? void 0 : _a.cssName],
37
- "onDblclick": this.onStopPropagation,
38
- "onClick": this.onStopPropagation
36
+ "class": [this.ns.b(), (_a = this.controller.model.cellSysCss) == null ? void 0 : _a.cssName]
39
37
  }, [((_c = (_b = this.controller.model.deuiactionGroup) == null ? void 0 : _b.uiactionGroupDetails) == null ? void 0 : _c.length) && createVNode(resolveComponent("iBizActionToolbar"), {
38
+ "onDblclick": this.onStopPropagation,
39
+ "onClick": this.onStopPropagation,
40
40
  "action-details": this.controller.model.deuiactionGroup.uiactionGroupDetails,
41
41
  "actions-state": this.row.uaColStates[this.controller.model.codeName],
42
42
  "onActionClick": this.onActionClick
@@ -23,6 +23,7 @@ export declare const IBizSearchBarControl: import("@ibiz-template/vue3-util").Ty
23
23
  onKeydown: (e: KeyboardEvent) => void;
24
24
  onGroupClick: (item: import("@ibiz/model-core").ISearchBarGroup) => void;
25
25
  triggerFilter: () => void;
26
+ handleSave: () => void;
26
27
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
27
28
  modelData: {
28
29
  type: import("vue").PropType<import("@ibiz/model-core").ISearchBar>;
@@ -4,6 +4,7 @@ import { SearchBarControl } from './search-bar.mjs';
4
4
  import { SearchBarProvider } from './search-bar.provider.mjs';
5
5
  import { FilterTreeControl } from './filter-tree/filter-tree.mjs';
6
6
  import { FilterModeSelect } from './filter-mode-select/filter-mode-select.mjs';
7
+ import { SearchGroups } from './search-groups/search-groups.mjs';
7
8
 
8
9
  "use strict";
9
10
  const IBizSearchBarControl = withInstall(
@@ -12,6 +13,7 @@ const IBizSearchBarControl = withInstall(
12
13
  v.component(SearchBarControl.name, SearchBarControl);
13
14
  v.component(FilterTreeControl.name, FilterTreeControl);
14
15
  v.component(FilterModeSelect.name, FilterModeSelect);
16
+ v.component(SearchGroups.name, SearchGroups);
15
17
  registerControlProvider(
16
18
  ControlType.SEARCHBAR,
17
19
  () => new SearchBarProvider()
@@ -1 +1 @@
1
- @charset "UTF-8";.ibiz-control-searchbar{--ibiz-control-searchbar-quick-search-width:220px;--ibiz-control-searchbar-quick-group-item-padding:var(--ibiz-spacing-tight);--ibiz-control-searchbar-quick-group-item-margin:var(--ibiz-spacing-tight);display:flex;align-items:center;justify-content:flex-start;height:100%}.ibiz-control-searchbar .ibiz-control-searchbar-quick-search{width:var(--ibiz-control-searchbar-quick-search-width);font-size:14px;color:var(--ibiz-text-color);background:var(--ibiz-color-white);border:1px solid var(--ibiz-border-color);border-radius:4px}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group{height:100%}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group .ibiz-control-searchbar-quick-group-item{position:relative;display:inline-block;height:100%;padding:var(--ibiz-control-searchbar-quick-group-item-padding);margin-right:var(--ibiz-control-searchbar-quick-group-item-margin);font-size:var(--ibiz-font-size-regular);cursor:pointer}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group .ibiz-control-searchbar-quick-group-item.is-selected::after{position:absolute;bottom:2px;left:0;width:100%;height:2px;content:"";background-color:var(--ibiz-color-primary)}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group .ibiz-control-searchbar-quick-group-item:hover{color:var(--ibiz-color-primary)}.ibiz-control-searchbar .el-input__icon{cursor:pointer}
1
+ @charset "UTF-8";.ibiz-control-searchbar{--ibiz-control-searchbar-quick-search-width:220px;--ibiz-control-searchbar-quick-group-item-padding:var(--ibiz-spacing-tight);--ibiz-control-searchbar-quick-group-item-margin:var(--ibiz-spacing-tight);display:flex;align-items:center;justify-content:flex-start;height:100%}.ibiz-control-searchbar .ibiz-control-searchbar-quick-search{width:var(--ibiz-control-searchbar-quick-search-width);margin-left:var(--ibiz-spacing-base-tight);font-size:14px;color:var(--ibiz-text-color);background:var(--ibiz-color-white);border:1px solid var(--ibiz-border-color);border-radius:4px}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group{height:100%}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group .ibiz-control-searchbar-quick-group-item{position:relative;display:inline-block;height:100%;padding:var(--ibiz-control-searchbar-quick-group-item-padding);margin-right:var(--ibiz-control-searchbar-quick-group-item-margin);font-size:var(--ibiz-font-size-regular);cursor:pointer}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group .ibiz-control-searchbar-quick-group-item.is-selected::after{position:absolute;bottom:2px;left:0;width:100%;height:2px;content:"";background-color:var(--ibiz-color-primary)}.ibiz-control-searchbar .ibiz-control-searchbar-quick-group .ibiz-control-searchbar-quick-group-item:hover{color:var(--ibiz-color-primary)}.ibiz-control-searchbar .el-input__icon{cursor:pointer}.ibiz-control-searchbar-filter{margin-left:var(--ibiz-spacing-base-tight)}.ibiz-control-searchbar-save{margin-left:var(--ibiz-spacing-base-tight)}
@@ -27,6 +27,7 @@ export declare const SearchBarControl: import("vue").DefineComponent<{
27
27
  onKeydown: (e: KeyboardEvent) => void;
28
28
  onGroupClick: (item: ISearchBarGroup) => void;
29
29
  triggerFilter: () => void;
30
+ handleSave: () => void;
30
31
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
31
32
  modelData: {
32
33
  type: PropType<ISearchBar>;
@@ -1,12 +1,9 @@
1
- import { isVNode, computed, ref, resolveComponent, createVNode, defineComponent } from 'vue';
1
+ import { computed, ref, resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { useControlController, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import './search-bar.css';
4
4
  import { SearchBarController } from '@ibiz-template/runtime';
5
5
 
6
6
  "use strict";
7
- function _isSlot(s) {
8
- return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
9
- }
10
7
  const SearchBarControl = /* @__PURE__ */ defineComponent({
11
8
  name: "IBizSearchBarControl",
12
9
  props: {
@@ -80,6 +77,9 @@ const SearchBarControl = /* @__PURE__ */ defineComponent({
80
77
  showFilter();
81
78
  }
82
79
  };
80
+ const handleSave = () => {
81
+ c.handleSave();
82
+ };
83
83
  return {
84
84
  c,
85
85
  ns,
@@ -88,26 +88,11 @@ const SearchBarControl = /* @__PURE__ */ defineComponent({
88
88
  onSearch,
89
89
  onKeydown,
90
90
  onGroupClick,
91
- triggerFilter
91
+ triggerFilter,
92
+ handleSave
92
93
  };
93
94
  },
94
95
  render() {
95
- const quickSearchSlots = {};
96
- if (this.c.model.enableFilter) {
97
- quickSearchSlots.append = () => {
98
- return createVNode(resolveComponent("el-button"), {
99
- "ref": "filterButtonRef",
100
- "type": "primary",
101
- "onClick": () => this.triggerFilter()
102
- }, {
103
- default: () => [createVNode(resolveComponent("iBizIcon"), {
104
- "icon": {
105
- cssClass: "funnel-outline"
106
- }
107
- }, null)]
108
- });
109
- };
110
- }
111
96
  return createVNode(resolveComponent("iBizControlBase"), {
112
97
  "controller": this.c,
113
98
  "class": [this.ns.b()],
@@ -115,7 +100,9 @@ const SearchBarControl = /* @__PURE__ */ defineComponent({
115
100
  }, {
116
101
  default: () => {
117
102
  var _a;
118
- return [this.c.model.enableGroup && createVNode("div", {
103
+ return [this.c.model.enableGroup && (this.c.isBackendSearchGroup ? createVNode(resolveComponent("iBizSearchGroups"), {
104
+ "controller": this.c
105
+ }, null) : createVNode("div", {
119
106
  "class": this.ns.b("quick-group")
120
107
  }, [(_a = this.c.model.searchBarGroups) == null ? void 0 : _a.map((groupItem) => {
121
108
  var _a2;
@@ -123,7 +110,27 @@ const SearchBarControl = /* @__PURE__ */ defineComponent({
123
110
  "class": [this.ns.b("quick-group-item"), this.ns.is("selected", ((_a2 = this.c.state.selectedGroupItem) == null ? void 0 : _a2.id) === groupItem.id)],
124
111
  "onClick": () => this.onGroupClick(groupItem)
125
112
  }, [groupItem.caption]);
126
- })]), this.c.model.enableQuickSearch && createVNode(resolveComponent("el-input"), {
113
+ })])), this.c.model.enableFilter && createVNode(resolveComponent("el-button"), {
114
+ "ref": "filterButtonRef",
115
+ "type": "primary",
116
+ "title": "\u8FC7\u6EE4",
117
+ "class": this.ns.b("filter"),
118
+ "onClick": () => this.triggerFilter()
119
+ }, {
120
+ default: () => [createVNode(resolveComponent("iBizIcon"), {
121
+ "icon": {
122
+ cssClass: "funnel-outline"
123
+ }
124
+ }, null)]
125
+ }), this.c.model.enableGroup && this.c.isBackendSearchGroup && createVNode(resolveComponent("el-button"), {
126
+ "class": this.ns.b("save"),
127
+ "title": "\u4FDD\u5B58",
128
+ "onClick": this.handleSave
129
+ }, {
130
+ default: () => [createVNode("ion-icon", {
131
+ "name": "save-outline"
132
+ }, null)]
133
+ }), this.c.model.enableQuickSearch && createVNode(resolveComponent("el-input"), {
127
134
  "modelValue": this.c.state.query,
128
135
  "onUpdate:modelValue": ($event) => this.c.state.query = $event,
129
136
  "class": this.ns.b("quick-search"),
@@ -135,9 +142,7 @@ const SearchBarControl = /* @__PURE__ */ defineComponent({
135
142
  "class": this.ns.e("search-icon"),
136
143
  "name": "search"
137
144
  }, null)
138
- }, _isSlot(quickSearchSlots) ? quickSearchSlots : {
139
- default: () => [quickSearchSlots]
140
- })];
145
+ }, null)];
141
146
  }
142
147
  });
143
148
  }
@@ -0,0 +1,10 @@
1
+ import { SearchBarController } from '@ibiz-template/runtime';
2
+ import { Ref } from 'vue';
3
+ export declare function useEditGroup(c: SearchBarController): {
4
+ editDialogVisible: Ref<boolean>;
5
+ editForm: IData;
6
+ editFormRef: Ref<IData>;
7
+ editFormRules: IData;
8
+ handleEditFormSubmit: () => Promise<void>;
9
+ handleEditFormCancel: () => void;
10
+ };
@@ -0,0 +1,50 @@
1
+ import { ref, reactive } from 'vue';
2
+
3
+ "use strict";
4
+ function useEditGroup(c) {
5
+ const editDialogVisible = ref(false);
6
+ const editForm = reactive({
7
+ caption: ""
8
+ });
9
+ const editFormRef = ref();
10
+ const editFormRules = reactive({
11
+ caption: [{ required: true, message: "\u5206\u7EC4\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A", trigger: "blur" }]
12
+ });
13
+ const handleEditFormSubmit = async () => {
14
+ if (editFormRef.value) {
15
+ await editFormRef.value.validate(
16
+ async (valid, _fields) => {
17
+ if (valid) {
18
+ if (c.currentEditGroup) {
19
+ const res = await c.service.update(c.currentEditGroup.id, {
20
+ caption: editForm.caption
21
+ });
22
+ if (res.ok) {
23
+ const index = c.state.searchBarGroups.findIndex(
24
+ (item) => item.id === c.currentEditGroup.id
25
+ );
26
+ if (index !== -1) {
27
+ c.state.searchBarGroups[index].caption = editForm.caption;
28
+ }
29
+ }
30
+ }
31
+ editDialogVisible.value = false;
32
+ }
33
+ }
34
+ );
35
+ }
36
+ };
37
+ const handleEditFormCancel = () => {
38
+ editDialogVisible.value = false;
39
+ };
40
+ return {
41
+ editDialogVisible,
42
+ editForm,
43
+ editFormRef,
44
+ editFormRules,
45
+ handleEditFormSubmit,
46
+ handleEditFormCancel
47
+ };
48
+ }
49
+
50
+ export { useEditGroup };
@@ -0,0 +1,10 @@
1
+ import { SearchBarController } from '@ibiz-template/runtime';
2
+ import { Ref } from 'vue';
3
+ export declare function useNewGroup(c: SearchBarController): {
4
+ newDialogVisible: Ref<boolean>;
5
+ newForm: IData;
6
+ newFormRef: Ref<IData>;
7
+ newFormRules: IData;
8
+ handleNewFormSubmit: () => Promise<void>;
9
+ handleNewFormCancel: () => void;
10
+ };