@ibiz-template/vue3-components 0.7.41-alpha.12 → 0.7.41-alpha.13

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 (114) hide show
  1. package/dist/ibiz-markdown-editor-0VHzFa2l.js +1 -0
  2. package/dist/index-LzKAcXeH.js +4 -0
  3. package/dist/index.min.css +1 -1
  4. package/dist/index.system.min.js +1 -1
  5. package/dist/{wang-editor-TYKjfyR5.js → wang-editor-Iw-hqw1q.js} +1 -1
  6. package/dist/{xlsx-util-Q9msA8ef.js → xlsx-util-FnTIZeKq.js} +1 -1
  7. package/es/control/calendar/components/calendar-user/calendar-user.css +1 -1
  8. package/es/control/calendar/components/calendar-user/calendar-user.mjs +76 -2
  9. package/es/control/data-view/data-view.d.ts +1 -1
  10. package/es/control/data-view/index.d.ts +1 -1
  11. package/es/control/form/form/index.mjs +2 -0
  12. package/es/control/form/form-detail/form-iframe/form-iframe.css +1 -0
  13. package/es/control/form/form-detail/form-iframe/form-iframe.d.ts +29 -0
  14. package/es/control/form/form-detail/form-iframe/form-iframe.mjs +53 -0
  15. package/es/control/form/form-detail/form-iframe/form-iframe.provider.d.ts +13 -0
  16. package/es/control/form/form-detail/form-iframe/form-iframe.provider.mjs +21 -0
  17. package/es/control/form/form-detail/form-iframe/index.d.ts +25 -0
  18. package/es/control/form/form-detail/form-iframe/index.mjs +12 -0
  19. package/es/control/form/form-detail/form-item/form-item.css +1 -1
  20. package/es/control/form/form-detail/form-item/form-item.mjs +6 -4
  21. package/es/control/form/form-detail/index.d.ts +1 -0
  22. package/es/control/form/form-detail/index.mjs +1 -0
  23. package/es/control/form/index.mjs +1 -0
  24. package/es/control/gantt/gantt.d.ts +1 -1
  25. package/es/control/gantt/index.d.ts +1 -1
  26. package/es/control/grid/grid/grid.d.ts +1 -1
  27. package/es/control/grid/grid/index.d.ts +1 -1
  28. package/es/control/grid/grid/index.mjs +2 -0
  29. package/es/control/grid/grid-column/grid-field-column/grid-field-column.d.ts +4 -4
  30. package/es/control/grid/grid-column/grid-field-column/grid-field-column.mjs +5 -8
  31. package/es/control/grid/virtualized-table/index.d.ts +136 -0
  32. package/es/control/grid/virtualized-table/index.mjs +18 -0
  33. package/es/control/grid/virtualized-table/virtualized-table.css +1 -0
  34. package/es/control/grid/virtualized-table/virtualized-table.d.ts +200 -0
  35. package/es/control/grid/virtualized-table/virtualized-table.mjs +325 -0
  36. package/es/control/grid/virtualized-table/virtualized-table.provider.d.ts +10 -0
  37. package/es/control/grid/virtualized-table/virtualized-table.provider.mjs +14 -0
  38. package/es/control/grid/virtualized-table/virtualized-table.util.d.ts +95 -0
  39. package/es/control/grid/virtualized-table/virtualized-table.util.mjs +191 -0
  40. package/es/control/index.mjs +1 -0
  41. package/es/control/kanban/index.d.ts +44 -1
  42. package/es/control/kanban/kanban.d.ts +56 -1
  43. package/es/control/kanban/kanban.mjs +36 -2
  44. package/es/control/list/index.d.ts +1 -1
  45. package/es/control/list/list.d.ts +1 -1
  46. package/es/control/list/list.mjs +1 -1
  47. package/es/control/search-bar/search-bar.mjs +3 -0
  48. package/es/control/tree/index.d.ts +1 -1
  49. package/es/control/tree/tree.d.ts +1 -1
  50. package/es/control/tree-grid/index.d.ts +1 -1
  51. package/es/control/tree-grid/tree-grid.d.ts +1 -1
  52. package/es/editor/array/ibiz-array/ibiz-array.css +1 -1
  53. package/es/editor/array/ibiz-array/ibiz-array.mjs +4 -1
  54. package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.d.ts +1 -1
  55. package/es/editor/data-picker/ibiz-transfer-picker/components/transfer/transfer.d.ts +1 -1
  56. package/es/editor/data-picker/ibiz-transfer-picker/ibiz-transfer-picker.d.ts +3 -2
  57. package/es/editor/date-range-select/date-range-select-picker/date-range-select.d.ts +5 -5
  58. package/es/editor/date-range-select/date-range-select.controller.mjs +9 -0
  59. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.d.ts +1 -0
  60. package/es/editor/dropdown-list/ibiz-tree-picker/ibiz-tree-picker.d.ts +4 -3
  61. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.css +1 -1
  62. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.d.ts +10 -7
  63. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.mjs +5 -5
  64. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +1 -1
  65. package/es/editor/slider/ibiz-slider/ibiz-slider.d.ts +3 -3
  66. package/es/editor/span/span/span.d.ts +1 -1
  67. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.css +1 -1
  68. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.d.ts +3 -77
  69. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.mjs +167 -108
  70. package/es/editor/text-box/input/input.d.ts +4 -4
  71. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.mjs +1 -1
  72. package/es/index.mjs +1 -0
  73. package/es/panel-component/panel-button/panel-button.controller.mjs +2 -1
  74. package/es/panel-component/panel-button/panel-button.mjs +1 -1
  75. package/es/util/app-util/app-util.d.ts +54 -2
  76. package/es/util/app-util/app-util.mjs +48 -1
  77. package/lib/control/calendar/components/calendar-user/calendar-user.cjs +76 -2
  78. package/lib/control/calendar/components/calendar-user/calendar-user.css +1 -1
  79. package/lib/control/form/form/index.cjs +2 -0
  80. package/lib/control/form/form-detail/form-iframe/form-iframe.cjs +58 -0
  81. package/lib/control/form/form-detail/form-iframe/form-iframe.css +1 -0
  82. package/lib/control/form/form-detail/form-iframe/form-iframe.provider.cjs +23 -0
  83. package/lib/control/form/form-detail/form-iframe/index.cjs +17 -0
  84. package/lib/control/form/form-detail/form-item/form-item.cjs +5 -3
  85. package/lib/control/form/form-detail/form-item/form-item.css +1 -1
  86. package/lib/control/form/form-detail/index.cjs +2 -0
  87. package/lib/control/form/index.cjs +6 -4
  88. package/lib/control/grid/grid/index.cjs +2 -0
  89. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.cjs +3 -6
  90. package/lib/control/grid/virtualized-table/index.cjs +23 -0
  91. package/lib/control/grid/virtualized-table/virtualized-table.cjs +327 -0
  92. package/lib/control/grid/virtualized-table/virtualized-table.css +1 -0
  93. package/lib/control/grid/virtualized-table/virtualized-table.provider.cjs +16 -0
  94. package/lib/control/grid/virtualized-table/virtualized-table.util.cjs +193 -0
  95. package/lib/control/index.cjs +82 -80
  96. package/lib/control/kanban/kanban.cjs +34 -0
  97. package/lib/control/list/list.cjs +1 -1
  98. package/lib/control/search-bar/search-bar.cjs +3 -0
  99. package/lib/editor/array/ibiz-array/ibiz-array.cjs +4 -1
  100. package/lib/editor/array/ibiz-array/ibiz-array.css +1 -1
  101. package/lib/editor/date-range-select/date-range-select.controller.cjs +9 -0
  102. package/lib/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.cjs +5 -5
  103. package/lib/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.css +1 -1
  104. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +1 -1
  105. package/lib/editor/text-box/ibiz-input-ip/ibiz-input-ip.cjs +166 -107
  106. package/lib/editor/text-box/ibiz-input-ip/ibiz-input-ip.css +1 -1
  107. package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.cjs +1 -1
  108. package/lib/index.cjs +112 -110
  109. package/lib/panel-component/panel-button/panel-button.cjs +1 -1
  110. package/lib/panel-component/panel-button/panel-button.controller.cjs +2 -1
  111. package/lib/util/app-util/app-util.cjs +47 -0
  112. package/package.json +4 -4
  113. package/dist/ibiz-markdown-editor-KyK5mBTS.js +0 -1
  114. package/dist/index-pyv7Wdpx.js +0 -4
@@ -1 +1 @@
1
- .ibiz-calendar-user{--ibiz-calendar-user-cell-min-height:60px;display:flex;flex-direction:column;width:100%;height:100%;padding:var(--ibiz-spacing-base);overflow:hidden}.ibiz-calendar-user__cell{min-height:var(--ibiz-calendar-user-cell-min-height);border-bottom:1px solid var(--ibiz-color-tertiary);border-left:1px solid var(--ibiz-color-tertiary)}.ibiz-calendar-user__cell:last-child{border-right:1px solid var(--ibiz-color-tertiary)}.ibiz-calendar-user__black{width:100%;height:100%}.ibiz-calendar-user .ibiz-calendar-user-more{flex-shrink:0;padding-left:var(--ibiz-spacing-tight);overflow:hidden;font-size:var(--ibiz-font-size-small);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-calendar-user .ibiz-calendar-user-more:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-calendar-user .ibiz-calendar-user-header{flex-shrink:0;padding-right:4px}.ibiz-calendar-user-header__top{border-top:1px solid var(--ibiz-color-tertiary)}.ibiz-calendar-user-header__time-item{display:flex;justify-content:space-between;width:100%}.ibiz-calendar-user-header__week-day{display:flex;flex:1;align-items:center;justify-content:center;width:100%}.ibiz-calendar-user-header__week-item{display:flex;flex:1;flex-direction:column;flex-shrink:0;justify-content:center;overflow:hidden}.ibiz-calendar-user-header__time-text{display:flex;flex:1;align-items:center;justify-content:center}.ibiz-calendar-user .ibiz-calendar-user-content{flex:1;width:100%;height:100%;overflow:auto}.ibiz-calendar-user-content__time-item{display:flex;justify-content:space-between;width:100%}.ibiz-calendar-user-content__time-text{display:flex;flex:1;align-items:center;justify-content:center}.ibiz-calendar-user-content__week-item{display:flex;flex:1;flex-direction:column;flex-shrink:0;justify-content:center;overflow:hidden}
1
+ .ibiz-calendar-user{--ibiz-calendar-user-cell-min-height:60px;display:flex;flex-direction:column;width:100%;height:100%;padding:var(--ibiz-spacing-base);overflow:hidden}.ibiz-calendar-user__cell{min-height:var(--ibiz-calendar-user-cell-min-height);border-bottom:1px solid var(--ibiz-color-tertiary);border-left:1px solid var(--ibiz-color-tertiary)}.ibiz-calendar-user__cell:last-child{border-right:1px solid var(--ibiz-color-tertiary)}.ibiz-calendar-user__black{width:100%;height:100%}.ibiz-calendar-user .ibiz-calendar-user-more{flex-shrink:0;padding-left:var(--ibiz-spacing-tight);overflow:hidden;font-size:var(--ibiz-font-size-small);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-calendar-user .ibiz-calendar-user-more:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-calendar-user .ibiz-calendar-user-header{flex-shrink:0}.ibiz-calendar-user-header__top{border-top:1px solid var(--ibiz-color-tertiary)}.ibiz-calendar-user-header__time-item{display:flex;justify-content:space-between;width:100%}.ibiz-calendar-user-header__week-day{display:flex;flex:1;align-items:center;justify-content:center;width:100%}.ibiz-calendar-user-header__week-item{display:flex;flex:1;flex-direction:column;flex-shrink:0;justify-content:center;overflow:hidden}.ibiz-calendar-user-header__time-text{display:flex;flex:1;align-items:center;justify-content:center}.ibiz-calendar-user .ibiz-calendar-user-content{position:relative;flex:1;width:100%;height:100%;overflow:hidden}.ibiz-calendar-user-content__time-item{display:flex;justify-content:space-between;width:100%}.ibiz-calendar-user-content__time-text{display:flex;flex:1;align-items:center;justify-content:center}.ibiz-calendar-user-content__week-item{display:flex;flex:1;flex-direction:column;flex-shrink:0;justify-content:center;overflow:hidden}.ibiz-calendar-user-content__wrapping{width:100%;height:100%;overflow:auto}.ibiz-calendar-user-content__wrapping::-webkit-scrollbar{display:none}.ibiz-calendar-user-scroll-bar{position:absolute;top:var(--ibiz-calendar-user-scroll-bar-thumb-top);right:0;z-index:10;width:4px;height:100%;border-radius:var(--ibiz-border-radius-extra-small)}.ibiz-calendar-user-scroll-bar__thumb{width:4px;height:var(--ibiz-calendar-user-scroll-bar-thumb-height);cursor:pointer;background-color:#d3d3d3;border-radius:var(--ibiz-border-radius-extra-small)}
@@ -20,6 +20,14 @@ const CalendarUser = /* @__PURE__ */ defineComponent({
20
20
  timeList.value = getDayTime();
21
21
  const popoverValue = ref("");
22
22
  const curPopover = ref();
23
+ const scrollContainerRef = ref();
24
+ const scrollTop = ref(0);
25
+ const thumbHeight = ref(0);
26
+ const enableScroll = ref(false);
27
+ const orginY = ref(0);
28
+ const realHeight = ref(1);
29
+ const visibleHeight = ref(1);
30
+ const isScroll = ref(false);
23
31
  watch(() => props.selectedDay, () => {
24
32
  if (props.selectedDay) {
25
33
  weekday.value = calcCurWeek(new Date(props.selectedDay));
@@ -102,9 +110,62 @@ const CalendarUser = /* @__PURE__ */ defineComponent({
102
110
  }, [renderEvent(item)]);
103
111
  })])]);
104
112
  };
113
+ const onMouseMove = (event) => {
114
+ if (enableScroll.value) {
115
+ const y = event.clientY - orginY.value;
116
+ scrollTop.value += y;
117
+ orginY.value = event.clientY;
118
+ if (scrollContainerRef.value) {
119
+ scrollContainerRef.value.scrollTop = realHeight.value * (scrollTop.value / visibleHeight.value);
120
+ }
121
+ }
122
+ event.preventDefault();
123
+ event.stopPropagation();
124
+ };
125
+ const onMouseUp = (event) => {
126
+ enableScroll.value = false;
127
+ event.preventDefault();
128
+ event.stopPropagation();
129
+ document.removeEventListener("mousemove", onMouseMove);
130
+ document.removeEventListener("mouseup", onMouseUp);
131
+ };
132
+ const onMouseDown = (event) => {
133
+ orginY.value = event.clientY;
134
+ enableScroll.value = true;
135
+ event.preventDefault();
136
+ event.stopPropagation();
137
+ document.addEventListener("mousemove", onMouseMove);
138
+ document.addEventListener("mouseup", onMouseUp);
139
+ };
140
+ const renderScrollbar = () => {
141
+ return createVNode("div", {
142
+ "class": ns.b("scroll-bar")
143
+ }, [createVNode("div", {
144
+ "class": ns.be("scroll-bar", "thumb"),
145
+ "onMousedown": onMouseDown
146
+ }, null)]);
147
+ };
148
+ const onScroll = (event) => {
149
+ var _a, _b, _c;
150
+ const realTop = ((_a = event.target) == null ? void 0 : _a.scrollTop) || 0;
151
+ realHeight.value = (_b = event.target) == null ? void 0 : _b.scrollHeight;
152
+ visibleHeight.value = (_c = event.target) == null ? void 0 : _c.clientHeight;
153
+ const realRatio = realTop / realHeight.value;
154
+ scrollTop.value = realRatio * visibleHeight.value;
155
+ };
105
156
  const renderWeekContent = () => {
106
157
  return createVNode("div", {
107
- "class": ns.b("content")
158
+ "class": ns.b("content"),
159
+ "style": {
160
+ ["--".concat(ns.namespace, "-calendar-user-scroll-bar-thumb-height")]: "".concat(thumbHeight.value, "px"),
161
+ ["--".concat(ns.namespace, "-calendar-user-scroll-bar-thumb-top")]: "".concat(scrollTop.value, "px")
162
+ }
163
+ }, [createVNode("div", {
164
+ "class": ns.be("content", "wrapping"),
165
+ "ref": (el) => {
166
+ scrollContainerRef.value = el;
167
+ },
168
+ "onScroll": onScroll
108
169
  }, [timeList.value.map((item) => {
109
170
  return createVNode("div", {
110
171
  "class": ns.be("content", "time-item")
@@ -115,8 +176,21 @@ const CalendarUser = /* @__PURE__ */ defineComponent({
115
176
  "class": [ns.be("content", "week-item"), ns.e("cell")]
116
177
  }, [renderEvent(day, item)]);
117
178
  })]);
118
- })]);
179
+ })]), isScroll.value && renderScrollbar()]);
119
180
  };
181
+ watch(() => scrollContainerRef.value, () => {
182
+ if (scrollContainerRef.value) {
183
+ realHeight.value = scrollContainerRef.value.scrollHeight;
184
+ visibleHeight.value = scrollContainerRef.value.clientHeight;
185
+ if (realHeight.value > visibleHeight.value) {
186
+ isScroll.value = true;
187
+ }
188
+ thumbHeight.value = visibleHeight.value * (visibleHeight.value / realHeight.value);
189
+ }
190
+ }, {
191
+ immediate: true,
192
+ deep: true
193
+ });
120
194
  return {
121
195
  ns,
122
196
  renderWeekHeader,
@@ -175,8 +175,8 @@ export declare const DataViewControl: import("vue").DefineComponent<{
175
175
  };
176
176
  }>>, {
177
177
  params: import("@ibiz-template/core").IApiParams;
178
- mdctrlActiveMode: number;
179
178
  singleSelect: boolean;
179
+ mdctrlActiveMode: number;
180
180
  isSimple: boolean;
181
181
  loadDefault: boolean;
182
182
  }, {}>;
@@ -114,8 +114,8 @@ export declare const IBizDataViewControl: import("@ibiz-template/vue3-util").Typ
114
114
  };
115
115
  }>>, {
116
116
  params: import("@ibiz-template/core").IApiParams;
117
- mdctrlActiveMode: number;
118
117
  singleSelect: boolean;
118
+ mdctrlActiveMode: number;
119
119
  isSimple: boolean;
120
120
  loadDefault: boolean;
121
121
  }, {}>>;
@@ -11,6 +11,7 @@ import { IBizFormRawItem } from '../form-detail/form-rawitem/index.mjs';
11
11
  import { IBizFormTabPanel } from '../form-detail/form-tab-panel/index.mjs';
12
12
  import { IBizFormTabPage } from '../form-detail/form-tab-page/index.mjs';
13
13
  import { IBizFormButtonList } from '../form-detail/form-button-list/index.mjs';
14
+ import { IBizFormIFrame } from '../form-detail/form-iframe/index.mjs';
14
15
 
15
16
  "use strict";
16
17
  const IBizFormControl = withInstall(FormControl, function(v) {
@@ -25,6 +26,7 @@ const IBizFormControl = withInstall(FormControl, function(v) {
25
26
  v.use(IBizFormTabPanel);
26
27
  v.use(IBizFormTabPage);
27
28
  v.use(IBizFormButtonList);
29
+ v.use(IBizFormIFrame);
28
30
  });
29
31
 
30
32
  export { IBizFormControl, IBizFormControl as default };
@@ -0,0 +1 @@
1
+ .ibiz-form-iframe{width:100%;height:100%}.ibiz-form-iframe__iframe{width:100%;height:100%}
@@ -0,0 +1,29 @@
1
+ import { PropType } from 'vue';
2
+ import { IDEFormIFrame } from '@ibiz/model-core';
3
+ import { FormIFrameController } from '@ibiz-template/runtime';
4
+ import './form-iframe.scss';
5
+ export declare const FormIFrame: import("vue").DefineComponent<{
6
+ modelData: {
7
+ type: PropType<IDEFormIFrame>;
8
+ required: true;
9
+ };
10
+ controller: {
11
+ type: typeof FormIFrameController;
12
+ required: true;
13
+ };
14
+ }, {
15
+ ns: import("@ibiz-template/core").Namespace;
16
+ url: import("vue").ComputedRef<string>;
17
+ loading: import("vue").Ref<boolean>;
18
+ onLoad: () => void;
19
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
20
+ modelData: {
21
+ type: PropType<IDEFormIFrame>;
22
+ required: true;
23
+ };
24
+ controller: {
25
+ type: typeof FormIFrameController;
26
+ required: true;
27
+ };
28
+ }>>, {}, {}>;
29
+ export default FormIFrame;
@@ -0,0 +1,53 @@
1
+ import { ref, computed, createVNode, resolveDirective, withDirectives, defineComponent } from 'vue';
2
+ import { useNamespace, useController } from '@ibiz-template/vue3-util';
3
+ import { FormIFrameController } from '@ibiz-template/runtime';
4
+ import './form-iframe.css';
5
+
6
+ "use strict";
7
+ const FormIFrame = /* @__PURE__ */ defineComponent({
8
+ name: "IBizFormIFrame",
9
+ props: {
10
+ modelData: {
11
+ type: Object,
12
+ required: true
13
+ },
14
+ controller: {
15
+ type: FormIFrameController,
16
+ required: true
17
+ }
18
+ },
19
+ setup(props) {
20
+ const c = props.controller;
21
+ const ns = useNamespace("form-iframe");
22
+ useController(c);
23
+ const loading = ref(true);
24
+ const url = computed(() => {
25
+ return c.calcIFrameUrl();
26
+ });
27
+ const onLoad = () => {
28
+ loading.value = false;
29
+ };
30
+ return {
31
+ ns,
32
+ url,
33
+ loading,
34
+ onLoad
35
+ };
36
+ },
37
+ render() {
38
+ if (!this.controller.state.visible || !this.url) {
39
+ return null;
40
+ }
41
+ return withDirectives(createVNode("div", {
42
+ "class": this.ns.b()
43
+ }, [createVNode("iframe", {
44
+ "class": this.ns.e("iframe"),
45
+ "src": this.url,
46
+ "frameborder": "0",
47
+ "onLoad": () => this.onLoad(),
48
+ "onError": () => this.onLoad()
49
+ }, null)]), [[resolveDirective("loading"), this.loading]]);
50
+ }
51
+ });
52
+
53
+ export { FormIFrame, FormIFrame as default };
@@ -0,0 +1,13 @@
1
+ import { FormController, FormIFrameController, IFormDetailContainerController, IFormDetailProvider } from '@ibiz-template/runtime';
2
+ import { IDEFormIFrame } from '@ibiz/model-core';
3
+ /**
4
+ * 表单直接嵌入视图
5
+ *
6
+ * @export
7
+ * @class FormIFrameProvider
8
+ * @implements {IFormDetailProvider}
9
+ */
10
+ export declare class FormIFrameProvider implements IFormDetailProvider {
11
+ component: string;
12
+ createController(detailModel: IDEFormIFrame, form: FormController, parent: IFormDetailContainerController | undefined): Promise<FormIFrameController>;
13
+ }
@@ -0,0 +1,21 @@
1
+ import { FormIFrameController } from '@ibiz-template/runtime';
2
+
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+ class FormIFrameProvider {
11
+ constructor() {
12
+ __publicField(this, "component", "IBizFormIFrame");
13
+ }
14
+ async createController(detailModel, form, parent) {
15
+ const c = new FormIFrameController(detailModel, form, parent);
16
+ await c.init();
17
+ return c;
18
+ }
19
+ }
20
+
21
+ export { FormIFrameProvider };
@@ -0,0 +1,25 @@
1
+ export declare const IBizFormIFrame: import("@ibiz-template/vue3-util").TypeWithInstall<import("vue").DefineComponent<{
2
+ modelData: {
3
+ type: import("vue").PropType<import("@ibiz/model-core").IDEFormIFrame>;
4
+ required: true;
5
+ };
6
+ controller: {
7
+ type: typeof import("@ibiz-template/runtime").FormIFrameController;
8
+ required: true;
9
+ };
10
+ }, {
11
+ ns: import("@ibiz-template/core").Namespace;
12
+ url: import("vue").ComputedRef<string>;
13
+ loading: import("vue").Ref<boolean>;
14
+ onLoad: () => void;
15
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
16
+ modelData: {
17
+ type: import("vue").PropType<import("@ibiz/model-core").IDEFormIFrame>;
18
+ required: true;
19
+ };
20
+ controller: {
21
+ type: typeof import("@ibiz-template/runtime").FormIFrameController;
22
+ required: true;
23
+ };
24
+ }>>, {}, {}>>;
25
+ export default IBizFormIFrame;
@@ -0,0 +1,12 @@
1
+ import { withInstall } from '@ibiz-template/vue3-util';
2
+ import { registerFormDetailProvider } from '@ibiz-template/runtime';
3
+ import { FormIFrame } from './form-iframe.mjs';
4
+ import { FormIFrameProvider } from './form-iframe.provider.mjs';
5
+
6
+ "use strict";
7
+ const IBizFormIFrame = withInstall(FormIFrame, function(v) {
8
+ v.component(FormIFrame.name, FormIFrame);
9
+ registerFormDetailProvider("IFRAME", () => new FormIFrameProvider());
10
+ });
11
+
12
+ export { IBizFormIFrame, IBizFormIFrame as default };
@@ -1 +1 @@
1
- .ibiz-form-item{border-color:var(--ibiz-color-border);--ibiz-form-item-label-color:var(--ibiz-color-text-1);--ibiz-form-item-text-color:var(--ibiz-color-text-2);--ibiz-form-item-hover-color:var(--ibiz-color-text-0);--ibiz-form-item-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-form-item-readonly-color:var(--ibiz-color-disabled-text);--ibiz-form-item-border-color:transparent;--ibiz-form-item-font-size:var(--ibiz-font-size-regular);--ibiz-form-item-placeholder-color:var(--ibiz-color-text-3);--ibiz-form-item-disabled-color:var(--ibiz-color-disabled-text);--ibiz-form-item-disabled-bg-color:var(--ibiz-color-disabled-fill);--ibiz-form-item-disabled-border-color:var(--ibiz-color-disabled-border);--ibiz-form-item-active-bg:var(--ibiz-color-fill-2);--ibiz-form-item-active-border:var(--ibiz-active-bg);--ibiz-form-item-focus-bg:var(--ibiz-color-fill-0);--ibiz-form-item-focus-border:var(--ibiz-color-focus-border);--ibiz-form-item-line-height:var(--ibiz-editor-default-line-height);--ibiz-form-item-font-weight:var(--ibiz-font-weight-regular);--ibiz-form-item-hover-edit-padding:var(--ibiz-spacing-none) 11px}.ibiz-form-item.is-compositeItem{--ibiz-form-item-compositeItem-gap:var(--ibiz-spacing-tight)}.ibiz-form-item.is-compositeItem .ibiz-form-item-container__editor{display:flex;gap:var(--ibiz-form-item-compositeItem-gap)}
1
+ .ibiz-form-item{border-color:var(--ibiz-color-border);--ibiz-form-item-label-color:var(--ibiz-color-text-1);--ibiz-form-item-text-color:var(--ibiz-color-text-2);--ibiz-form-item-hover-color:var(--ibiz-color-text-0);--ibiz-form-item-hover-bg-color:var(--ibiz-color-fill-1);--ibiz-form-item-readonly-color:var(--ibiz-color-disabled-text);--ibiz-form-item-border-color:transparent;--ibiz-form-item-font-size:var(--ibiz-font-size-regular);--ibiz-form-item-placeholder-color:var(--ibiz-color-text-3);--ibiz-form-item-disabled-color:var(--ibiz-color-disabled-text);--ibiz-form-item-disabled-bg-color:var(--ibiz-color-disabled-fill);--ibiz-form-item-disabled-border-color:var(--ibiz-color-disabled-border);--ibiz-form-item-active-bg:var(--ibiz-color-fill-2);--ibiz-form-item-active-border:var(--ibiz-active-bg);--ibiz-form-item-focus-bg:var(--ibiz-color-fill-0);--ibiz-form-item-focus-border:var(--ibiz-color-focus-border);--ibiz-form-item-line-height:var(--ibiz-editor-default-line-height);--ibiz-form-item-font-weight:var(--ibiz-font-weight-regular);--ibiz-form-item-hover-edit-padding:var(--ibiz-spacing-none) 11px}.ibiz-form-item.is-compositeItem{--ibiz-form-item-compositeItem-gap:var(--ibiz-spacing-tight)}.ibiz-form-item.is-compositeItem .ibiz-form-item__composite-separator{line-height:var(--ibiz-form-item-container-line-height)}.ibiz-form-item.is-compositeItem .ibiz-form-item-container__editor{display:flex;gap:var(--ibiz-form-item-compositeItem-gap)}
@@ -1,4 +1,4 @@
1
- import { isVNode, ref, createVNode, resolveComponent, h, defineComponent } from 'vue';
1
+ import { isVNode, ref, createVNode, createTextVNode, resolveComponent, h, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { CompositeFormItem } from './composite-form-item/composite-form-item.mjs';
4
4
  import './form-item.css';
@@ -64,13 +64,15 @@ const FormItem = /* @__PURE__ */ defineComponent({
64
64
  const {
65
65
  editorItems = []
66
66
  } = this.c.model.editor || {};
67
- editor = editorItems.map((item) => {
67
+ editor = editorItems.map((item, index) => {
68
68
  const controller = this.c.form.details[item.id];
69
- return createVNode(CompositeFormItem, {
69
+ return [createVNode(CompositeFormItem, {
70
70
  "modelData": controller.model,
71
71
  "controller": controller,
72
72
  "attrs": this.attrs
73
- }, null);
73
+ }, null), editorItems.length - 1 > index && createVNode("span", {
74
+ "class": this.ns.e("composite-separator")
75
+ }, [createTextVNode("-")])];
74
76
  });
75
77
  } else {
76
78
  const editMode = (_d = (_c = (_b = this.c.editor) == null ? void 0 : _b.model) == null ? void 0 : _c.editorParams) == null ? void 0 : _d.editMode;
@@ -8,3 +8,4 @@ export * from './form-rawitem/index';
8
8
  export * from './form-tab-panel/index';
9
9
  export * from './form-tab-page/index';
10
10
  export * from './form-button-list/index';
11
+ export * from './form-iframe';
@@ -8,6 +8,7 @@ export { IBizFormRawItem } from './form-rawitem/index.mjs';
8
8
  export { IBizFormTabPanel } from './form-tab-panel/index.mjs';
9
9
  export { IBizFormTabPage } from './form-tab-page/index.mjs';
10
10
  export { IBizFormButtonList } from './form-button-list/index.mjs';
11
+ export { IBizFormIFrame } from './form-iframe/index.mjs';
11
12
  export { IBizFormItemContainer } from './form-item/form-item-container/form-item-container.mjs';
12
13
  export { IBizFormPageItem } from './form-page/form-page-item/form-page.item.mjs';
13
14
 
@@ -14,5 +14,6 @@ export { IBizFormRawItem } from './form-detail/form-rawitem/index.mjs';
14
14
  export { IBizFormTabPanel } from './form-detail/form-tab-panel/index.mjs';
15
15
  export { IBizFormTabPage } from './form-detail/form-tab-page/index.mjs';
16
16
  export { IBizFormButtonList } from './form-detail/form-button-list/index.mjs';
17
+ export { IBizFormIFrame } from './form-detail/form-iframe/index.mjs';
17
18
 
18
19
  "use strict";
@@ -132,7 +132,7 @@ export declare const GanttControl: import("vue").DefineComponent<{
132
132
  };
133
133
  }>>, {
134
134
  params: import("@ibiz-template/core").IApiParams;
135
- mdctrlActiveMode: number;
136
135
  singleSelect: boolean;
136
+ mdctrlActiveMode: number;
137
137
  loadDefault: boolean;
138
138
  }, {}>;
@@ -83,8 +83,8 @@ export declare const IBizGanttControl: import("@ibiz-template/vue3-util").TypeWi
83
83
  };
84
84
  }>>, {
85
85
  params: import("@ibiz-template/core").IApiParams;
86
- mdctrlActiveMode: number;
87
86
  singleSelect: boolean;
87
+ mdctrlActiveMode: number;
88
88
  loadDefault: boolean;
89
89
  }, {}>>;
90
90
  export default IBizGanttControl;
@@ -226,8 +226,8 @@ export declare const GridControl: import("vue").DefineComponent<{
226
226
  };
227
227
  }>>, {
228
228
  params: import("@ibiz-template/core").IApiParams;
229
- mdctrlActiveMode: number;
230
229
  singleSelect: boolean;
230
+ mdctrlActiveMode: number;
231
231
  rowEditOpen: boolean;
232
232
  isSimple: boolean;
233
233
  loadDefault: boolean;
@@ -162,8 +162,8 @@ export declare const IBizGridControl: import("@ibiz-template/vue3-util").TypeWit
162
162
  };
163
163
  }>>, {
164
164
  params: import("@ibiz-template/core").IApiParams;
165
- mdctrlActiveMode: number;
166
165
  singleSelect: boolean;
166
+ mdctrlActiveMode: number;
167
167
  rowEditOpen: boolean;
168
168
  isSimple: boolean;
169
169
  loadDefault: boolean;
@@ -2,6 +2,7 @@ import { ControlType, registerControlProvider } from '@ibiz-template/runtime';
2
2
  import { withInstall } from '@ibiz-template/vue3-util';
3
3
  import '../grid-column/index.mjs';
4
4
  import { IBizRowEditPopover } from '../row-edit-popover/row-edit-popover.mjs';
5
+ import { IBizVirtualizedTableControl } from '../virtualized-table/index.mjs';
5
6
  import { GridControl } from './grid.mjs';
6
7
  import { GridProvider } from './grid.provider.mjs';
7
8
  export { useAppGridBase, useAppGridPagination, useGridDraggable, useGridHeaderStyle, useITableEvent } from './grid-control.util.mjs';
@@ -22,6 +23,7 @@ const IBizGridControl = withInstall(GridControl, (v) => {
22
23
  v.use(IBizGridFieldEditColumn);
23
24
  v.use(IBizGridGroupColumn);
24
25
  v.use(IBizDynamicGridFieldEditColumn);
26
+ v.use(IBizVirtualizedTableControl);
25
27
  registerControlProvider(ControlType.GRID, () => new GridProvider());
26
28
  });
27
29
 
@@ -1,6 +1,6 @@
1
1
  import { ILayoutPanel, IPanel, IUIActionGroupDetail } from '@ibiz/model-core';
2
- import { Ref, VNode } from 'vue';
3
- import { GridFieldColumnController, GridRowState } from '@ibiz-template/runtime';
2
+ import { VNode } from 'vue';
3
+ import { GridRowState, GridFieldColumnController } from '@ibiz-template/runtime';
4
4
  import './grid-field-column.scss';
5
5
  export declare const GridFieldColumn: import("vue").DefineComponent<{
6
6
  controller: {
@@ -17,7 +17,7 @@ export declare const GridFieldColumn: import("vue").DefineComponent<{
17
17
  onTextClick: (event: MouseEvent) => void;
18
18
  onInfoTextChange: (text: string) => void;
19
19
  onActionClick: (detail: IUIActionGroupDetail, event: MouseEvent) => Promise<void>;
20
- CustomHtml: Ref<string | undefined>;
20
+ CustomHtml: import("vue").Ref<string | undefined>;
21
21
  fieldValue: import("vue").ComputedRef<any>;
22
22
  formatValue: import("vue").ComputedRef<string>;
23
23
  percent: import("vue").ComputedRef<string>;
@@ -25,7 +25,7 @@ export declare const GridFieldColumn: import("vue").DefineComponent<{
25
25
  tooltip: import("vue").ComputedRef<string | undefined>;
26
26
  zIndex: number | undefined;
27
27
  columnType: string | undefined;
28
- codeListItems: Ref<readonly import("@ibiz-template/core").IApiData[]>;
28
+ codeListItems: import("vue").Ref<readonly import("@ibiz-template/core").IApiData[]>;
29
29
  hiddenEmpty: import("vue").ComputedRef<boolean>;
30
30
  findLayoutPanel: () => IPanel | undefined;
31
31
  renderPanelItemLayout: (item: IData, modelData: ILayoutPanel) => VNode;
@@ -1,5 +1,5 @@
1
- import { ref, watch, computed, resolveComponent, createVNode, defineComponent } from 'vue';
2
- import { useNamespace, useCodeListListen } from '@ibiz-template/vue3-util';
1
+ import { computed, ref, resolveComponent, createVNode, defineComponent } from 'vue';
2
+ import { useNamespace, computedAsync, useCodeListListen } from '@ibiz-template/vue3-util';
3
3
  import { GridFieldColumnController, GridRowState, ValueExUtil } from '@ibiz-template/runtime';
4
4
  import { isNotNil } from 'ramda';
5
5
  import { showTitle } from '@ibiz-template/core';
@@ -35,12 +35,9 @@ const GridFieldColumn = /* @__PURE__ */ defineComponent({
35
35
  props.controller.openLinkView(props.row, event);
36
36
  }
37
37
  };
38
- const CustomHtml = ref("");
39
- watch(() => props.row, async () => {
40
- CustomHtml.value = await props.controller.getCustomHtml(props.row);
41
- }, {
42
- deep: true,
43
- immediate: true
38
+ const CustomHtml = computedAsync(async () => {
39
+ const html = await props.controller.getCustomHtml(props.row);
40
+ return html;
44
41
  });
45
42
  const fieldValue = computed(() => props.row.data[props.controller.fieldName]);
46
43
  const formatValue = computed(() => props.controller.formatValue(fieldValue.value));
@@ -0,0 +1,136 @@
1
+ export declare const IBizVirtualizedTableControl: import("@ibiz-template/vue3-util").TypeWithInstall<import("vue").DefineComponent<{
2
+ modelData: {
3
+ type: import("vue").PropType<import("@ibiz/model-core").IDEGrid>;
4
+ required: true;
5
+ };
6
+ context: {
7
+ type: import("vue").PropType<import("@ibiz-template/core").IApiContext>;
8
+ required: true;
9
+ };
10
+ params: {
11
+ type: import("vue").PropType<import("@ibiz-template/core").IApiParams>;
12
+ default: () => {};
13
+ };
14
+ provider: {
15
+ type: import("vue").PropType<import("@ibiz-template/runtime").IControlProvider>;
16
+ };
17
+ mdctrlActiveMode: {
18
+ type: NumberConstructor;
19
+ default: undefined;
20
+ };
21
+ singleSelect: {
22
+ type: BooleanConstructor;
23
+ default: undefined;
24
+ };
25
+ rowEditOpen: {
26
+ type: BooleanConstructor;
27
+ default: undefined;
28
+ };
29
+ isSimple: {
30
+ type: BooleanConstructor;
31
+ required: false;
32
+ };
33
+ data: {
34
+ type: {
35
+ (arrayLength: number): import("@ibiz-template/core").IApiData[];
36
+ (...items: import("@ibiz-template/core").IApiData[]): import("@ibiz-template/core").IApiData[];
37
+ new (arrayLength: number): import("@ibiz-template/core").IApiData[];
38
+ new (...items: import("@ibiz-template/core").IApiData[]): import("@ibiz-template/core").IApiData[];
39
+ isArray(arg: any): arg is any[];
40
+ readonly prototype: any[];
41
+ from<T>(arrayLike: ArrayLike<T>): T[];
42
+ from<T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
43
+ from<T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
44
+ from<T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
45
+ of<T_4>(...items: T_4[]): T_4[];
46
+ readonly [Symbol.species]: ArrayConstructor;
47
+ };
48
+ required: false;
49
+ };
50
+ loadDefault: {
51
+ type: BooleanConstructor;
52
+ default: boolean;
53
+ };
54
+ }, {
55
+ c: import("@ibiz-template/runtime").GridController<import("@ibiz/model-core").IDEGrid, import("@ibiz-template/runtime").IGridState, import("@ibiz-template/runtime").IGridEvent>;
56
+ ns: import("@ibiz-template/core").Namespace;
57
+ tableRef: import("vue").Ref<any>;
58
+ tableData: import("vue").ComputedRef<import("@ibiz-template/runtime").ControlVO[]>;
59
+ columnModel: import("vue").ComputedRef<import("./virtualized-table.util").IColumn[]>;
60
+ onPageChange: (page: number) => void;
61
+ onPageRefresh: () => void;
62
+ onPageSizeChange: (size: number) => void;
63
+ renderNoData: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
64
+ [key: string]: any;
65
+ }> | null;
66
+ calcRowClass: (params: import("@ibiz-template/core").IApiParams) => string;
67
+ renderBodyCell: (params: import("@ibiz-template/core").IApiParams) => JSX.Element;
68
+ handleRowClick: (event: MouseEvent, data: import("@ibiz-template/runtime").ControlVO) => Promise<void>;
69
+ calcColumnWidth: (_columns: import("./virtualized-table.util").IColumn[], bodyWidth: number) => import("./virtualized-table.util").IColumn[];
70
+ handleDbRowClick: (event: MouseEvent, data: import("@ibiz-template/runtime").ControlVO) => Promise<void>;
71
+ renderHeaderCell: (params: import("@ibiz-template/core").IApiParams) => JSX.Element;
72
+ renderBatchToolBar: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
73
+ [key: string]: any;
74
+ }> | undefined;
75
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
76
+ modelData: {
77
+ type: import("vue").PropType<import("@ibiz/model-core").IDEGrid>;
78
+ required: true;
79
+ };
80
+ context: {
81
+ type: import("vue").PropType<import("@ibiz-template/core").IApiContext>;
82
+ required: true;
83
+ };
84
+ params: {
85
+ type: import("vue").PropType<import("@ibiz-template/core").IApiParams>;
86
+ default: () => {};
87
+ };
88
+ provider: {
89
+ type: import("vue").PropType<import("@ibiz-template/runtime").IControlProvider>;
90
+ };
91
+ mdctrlActiveMode: {
92
+ type: NumberConstructor;
93
+ default: undefined;
94
+ };
95
+ singleSelect: {
96
+ type: BooleanConstructor;
97
+ default: undefined;
98
+ };
99
+ rowEditOpen: {
100
+ type: BooleanConstructor;
101
+ default: undefined;
102
+ };
103
+ isSimple: {
104
+ type: BooleanConstructor;
105
+ required: false;
106
+ };
107
+ data: {
108
+ type: {
109
+ (arrayLength: number): import("@ibiz-template/core").IApiData[];
110
+ (...items: import("@ibiz-template/core").IApiData[]): import("@ibiz-template/core").IApiData[];
111
+ new (arrayLength: number): import("@ibiz-template/core").IApiData[];
112
+ new (...items: import("@ibiz-template/core").IApiData[]): import("@ibiz-template/core").IApiData[];
113
+ isArray(arg: any): arg is any[];
114
+ readonly prototype: any[];
115
+ from<T>(arrayLike: ArrayLike<T>): T[];
116
+ from<T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
117
+ from<T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
118
+ from<T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
119
+ of<T_4>(...items: T_4[]): T_4[];
120
+ readonly [Symbol.species]: ArrayConstructor;
121
+ };
122
+ required: false;
123
+ };
124
+ loadDefault: {
125
+ type: BooleanConstructor;
126
+ default: boolean;
127
+ };
128
+ }>>, {
129
+ params: import("@ibiz-template/core").IApiParams;
130
+ singleSelect: boolean;
131
+ mdctrlActiveMode: number;
132
+ rowEditOpen: boolean;
133
+ isSimple: boolean;
134
+ loadDefault: boolean;
135
+ }, {}>>;
136
+ export default IBizVirtualizedTableControl;
@@ -0,0 +1,18 @@
1
+ import { withInstall } from '@ibiz-template/vue3-util';
2
+ import { registerControlProvider } from '@ibiz-template/runtime';
3
+ import { VirtualizedTableControl } from './virtualized-table.mjs';
4
+ import { VirtualizedTableProvider } from './virtualized-table.provider.mjs';
5
+
6
+ "use strict";
7
+ const IBizVirtualizedTableControl = withInstall(
8
+ VirtualizedTableControl,
9
+ (v) => {
10
+ v.component(VirtualizedTableControl.name, VirtualizedTableControl);
11
+ registerControlProvider(
12
+ "GRID_VIRTUALIZED_TABLE",
13
+ () => new VirtualizedTableProvider()
14
+ );
15
+ }
16
+ );
17
+
18
+ export { IBizVirtualizedTableControl, IBizVirtualizedTableControl as default };