@ibiz-template/runtime 0.1.10 → 0.1.12-dev.0
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.
- package/dist/index.esm.js +16418 -7232
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/out/config/global-config.js +1 -1
- package/out/controller/control/app-menu/app-menu.controller.d.ts +62 -0
- package/out/controller/control/app-menu/app-menu.controller.d.ts.map +1 -0
- package/out/controller/control/app-menu/app-menu.controller.js +133 -0
- package/out/controller/control/app-menu/index.d.ts +2 -0
- package/out/controller/control/app-menu/index.d.ts.map +1 -0
- package/out/controller/control/app-menu/index.js +1 -0
- package/out/controller/control/app-menu-icon-view/app-menu-icon-view.controller.d.ts +5 -0
- package/out/controller/control/app-menu-icon-view/app-menu-icon-view.controller.d.ts.map +1 -0
- package/out/controller/control/app-menu-icon-view/app-menu-icon-view.controller.js +29 -0
- package/out/controller/control/app-menu-icon-view/index.d.ts +2 -0
- package/out/controller/control/app-menu-icon-view/index.d.ts.map +1 -0
- package/out/controller/control/app-menu-icon-view/index.js +1 -0
- package/out/controller/control/calendar/calendar.controller.d.ts +95 -0
- package/out/controller/control/calendar/calendar.controller.d.ts.map +1 -0
- package/out/controller/control/calendar/calendar.controller.js +167 -0
- package/out/controller/control/calendar/calendar.service.d.ts +51 -0
- package/out/controller/control/calendar/calendar.service.d.ts.map +1 -0
- package/out/controller/control/calendar/calendar.service.js +79 -0
- package/out/controller/control/calendar/index.d.ts +3 -0
- package/out/controller/control/calendar/index.d.ts.map +1 -0
- package/out/controller/control/calendar/index.js +2 -0
- package/out/controller/control/caption-bar/caption-bar.controller.d.ts +17 -0
- package/out/controller/control/caption-bar/caption-bar.controller.d.ts.map +1 -0
- package/out/controller/control/caption-bar/caption-bar.controller.js +28 -0
- package/out/controller/control/caption-bar/index.d.ts +2 -0
- package/out/controller/control/caption-bar/index.d.ts.map +1 -0
- package/out/controller/control/caption-bar/index.js +1 -0
- package/out/controller/control/chart/chart.controller.d.ts +56 -0
- package/out/controller/control/chart/chart.controller.d.ts.map +1 -0
- package/out/controller/control/chart/chart.controller.js +84 -0
- package/out/controller/control/chart/chart.service.d.ts +13 -0
- package/out/controller/control/chart/chart.service.d.ts.map +1 -0
- package/out/controller/control/chart/chart.service.js +11 -0
- package/out/controller/control/chart/generator/bar-series-generator.d.ts +15 -0
- package/out/controller/control/chart/generator/bar-series-generator.d.ts.map +1 -0
- package/out/controller/control/chart/generator/bar-series-generator.js +28 -0
- package/out/controller/control/chart/generator/base-series-generator.d.ts +189 -0
- package/out/controller/control/chart/generator/base-series-generator.d.ts.map +1 -0
- package/out/controller/control/chart/generator/base-series-generator.js +433 -0
- package/out/controller/control/chart/generator/chart-options-generator.d.ts +84 -0
- package/out/controller/control/chart/generator/chart-options-generator.d.ts.map +1 -0
- package/out/controller/control/chart/generator/chart-options-generator.js +285 -0
- package/out/controller/control/chart/generator/funnel-series-generator.d.ts +20 -0
- package/out/controller/control/chart/generator/funnel-series-generator.d.ts.map +1 -0
- package/out/controller/control/chart/generator/funnel-series-generator.js +27 -0
- package/out/controller/control/chart/generator/line-series-generator.d.ts +15 -0
- package/out/controller/control/chart/generator/line-series-generator.d.ts.map +1 -0
- package/out/controller/control/chart/generator/line-series-generator.js +32 -0
- package/out/controller/control/chart/generator/pie-series-generator.d.ts +20 -0
- package/out/controller/control/chart/generator/pie-series-generator.d.ts.map +1 -0
- package/out/controller/control/chart/generator/pie-series-generator.js +27 -0
- package/out/controller/control/chart/generator/radar-coord-system.d.ts +53 -0
- package/out/controller/control/chart/generator/radar-coord-system.d.ts.map +1 -0
- package/out/controller/control/chart/generator/radar-coord-system.js +65 -0
- package/out/controller/control/chart/generator/radar-series-generator.d.ts +24 -0
- package/out/controller/control/chart/generator/radar-series-generator.d.ts.map +1 -0
- package/out/controller/control/chart/generator/radar-series-generator.js +64 -0
- package/out/controller/control/chart/generator/scatter-series-generator.d.ts +15 -0
- package/out/controller/control/chart/generator/scatter-series-generator.d.ts.map +1 -0
- package/out/controller/control/chart/generator/scatter-series-generator.js +24 -0
- package/out/controller/control/chart/index.d.ts +3 -0
- package/out/controller/control/chart/index.d.ts.map +1 -0
- package/out/controller/control/chart/index.js +2 -0
- package/out/controller/control/context-menu/context-menu.controllerr.d.ts +14 -0
- package/out/controller/control/context-menu/context-menu.controllerr.d.ts.map +1 -0
- package/out/controller/control/context-menu/context-menu.controllerr.js +11 -0
- package/out/controller/control/context-menu/index.d.ts +2 -0
- package/out/controller/control/context-menu/index.d.ts.map +1 -0
- package/out/controller/control/context-menu/index.js +1 -0
- package/out/controller/control/dashboard/dashboard.controller.d.ts +55 -0
- package/out/controller/control/dashboard/dashboard.controller.d.ts.map +1 -0
- package/out/controller/control/dashboard/dashboard.controller.js +94 -0
- package/out/controller/control/dashboard/index.d.ts +3 -0
- package/out/controller/control/dashboard/index.d.ts.map +1 -0
- package/out/controller/control/dashboard/index.js +2 -0
- package/out/controller/control/dashboard/portlet/container-portlet/container-portlet.controller.d.ts +5 -0
- package/out/controller/control/dashboard/portlet/container-portlet/container-portlet.controller.d.ts.map +1 -0
- package/out/controller/control/dashboard/portlet/container-portlet/container-portlet.controller.js +3 -0
- package/out/controller/control/dashboard/portlet/container-portlet/index.d.ts +2 -0
- package/out/controller/control/dashboard/portlet/container-portlet/index.d.ts.map +1 -0
- package/out/controller/control/dashboard/portlet/container-portlet/index.js +1 -0
- package/out/controller/control/dashboard/portlet/index.d.ts +4 -0
- package/out/controller/control/dashboard/portlet/index.d.ts.map +1 -0
- package/out/controller/control/dashboard/portlet/index.js +3 -0
- package/out/controller/control/dashboard/portlet/portlet-part/index.d.ts +3 -0
- package/out/controller/control/dashboard/portlet/portlet-part/index.d.ts.map +1 -0
- package/out/controller/control/dashboard/portlet/portlet-part/index.js +2 -0
- package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.d.ts +123 -0
- package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.d.ts.map +1 -0
- package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.js +182 -0
- package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.state.d.ts +21 -0
- package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.state.d.ts.map +1 -0
- package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.state.js +30 -0
- package/out/controller/control/dashboard/portlet/view-portlet/index.d.ts +2 -0
- package/out/controller/control/dashboard/portlet/view-portlet/index.d.ts.map +1 -0
- package/out/controller/control/dashboard/portlet/view-portlet/index.js +1 -0
- package/out/controller/control/dashboard/portlet/view-portlet/view-portlet.controller.d.ts +5 -0
- package/out/controller/control/dashboard/portlet/view-portlet/view-portlet.controller.d.ts.map +1 -0
- package/out/controller/control/dashboard/portlet/view-portlet/view-portlet.controller.js +3 -0
- package/out/controller/control/data-view/data-view.controller.d.ts +90 -0
- package/out/controller/control/data-view/data-view.controller.d.ts.map +1 -0
- package/out/controller/control/data-view/data-view.controller.js +207 -0
- package/out/controller/control/data-view/data-view.service.d.ts +18 -0
- package/out/controller/control/data-view/data-view.service.d.ts.map +1 -0
- package/out/controller/control/data-view/data-view.service.js +37 -0
- package/out/controller/control/data-view/index.d.ts +3 -0
- package/out/controller/control/data-view/index.d.ts.map +1 -0
- package/out/controller/control/data-view/index.js +2 -0
- package/out/controller/control/exp-bar/calendar-exp-bar.controller.d.ts +35 -0
- package/out/controller/control/exp-bar/calendar-exp-bar.controller.d.ts.map +1 -0
- package/out/controller/control/exp-bar/calendar-exp-bar.controller.js +74 -0
- package/out/controller/control/exp-bar/exp-bar.controller.d.ts +184 -0
- package/out/controller/control/exp-bar/exp-bar.controller.d.ts.map +1 -0
- package/out/controller/control/exp-bar/exp-bar.controller.js +315 -0
- package/out/controller/control/exp-bar/index.d.ts +4 -0
- package/out/controller/control/exp-bar/index.d.ts.map +1 -0
- package/out/controller/control/exp-bar/index.js +3 -0
- package/out/controller/control/exp-bar/tree-exp-bar.controller.d.ts +66 -0
- package/out/controller/control/exp-bar/tree-exp-bar.controller.d.ts.map +1 -0
- package/out/controller/control/exp-bar/tree-exp-bar.controller.js +134 -0
- package/out/controller/control/form/edit-form/edit-form.controller.d.ts +97 -0
- package/out/controller/control/form/edit-form/edit-form.controller.d.ts.map +1 -0
- package/out/controller/control/form/edit-form/edit-form.controller.js +258 -0
- package/out/controller/control/form/edit-form/edit-form.service.d.ts +115 -0
- package/out/controller/control/form/edit-form/edit-form.service.d.ts.map +1 -0
- package/out/controller/control/form/edit-form/edit-form.service.js +231 -0
- package/out/controller/control/form/edit-form/index.d.ts +3 -0
- package/out/controller/control/form/edit-form/index.d.ts.map +1 -0
- package/out/controller/control/form/edit-form/index.js +2 -0
- package/out/controller/control/form/form/form.controller.d.ts +130 -0
- package/out/controller/control/form/form/form.controller.d.ts.map +1 -0
- package/out/controller/control/form/form/form.controller.js +199 -0
- package/out/controller/control/form/form/index.d.ts +2 -0
- package/out/controller/control/form/form/index.d.ts.map +1 -0
- package/out/controller/control/form/form/index.js +1 -0
- package/out/controller/control/form/form-detail/form-button/form-button.controller.d.ts +50 -0
- package/out/controller/control/form/form-detail/form-button/form-button.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-button/form-button.controller.js +79 -0
- package/out/controller/control/form/form-detail/form-button/form-button.state.d.ts +17 -0
- package/out/controller/control/form/form-detail/form-button/form-button.state.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-button/form-button.state.js +19 -0
- package/out/controller/control/form/form-detail/form-button/index.d.ts +3 -0
- package/out/controller/control/form/form-detail/form-button/index.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-button/index.js +2 -0
- package/out/controller/control/form/form-detail/form-detail/form-detail.controller.d.ts +130 -0
- package/out/controller/control/form/form-detail/form-detail/form-detail.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-detail/form-detail.controller.js +188 -0
- package/out/controller/control/form/form-detail/form-detail/form-detail.state.d.ts +34 -0
- package/out/controller/control/form/form-detail/form-detail/form-detail.state.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-detail/form-detail.state.js +89 -0
- package/out/controller/control/form/form-detail/form-detail/index.d.ts +3 -0
- package/out/controller/control/form/form-detail/form-detail/index.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-detail/index.js +2 -0
- package/out/controller/control/form/form-detail/form-druipart/form-druipart.controller.d.ts +92 -0
- package/out/controller/control/form/form-detail/form-druipart/form-druipart.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-druipart/form-druipart.controller.js +148 -0
- package/out/controller/control/form/form-detail/form-druipart/form-druipart.state.d.ts +25 -0
- package/out/controller/control/form/form-detail/form-druipart/form-druipart.state.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-druipart/form-druipart.state.js +19 -0
- package/out/controller/control/form/form-detail/form-druipart/index.d.ts +3 -0
- package/out/controller/control/form/form-detail/form-druipart/index.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-druipart/index.js +2 -0
- package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.d.ts +54 -0
- package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.js +95 -0
- package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.state.d.ts +28 -0
- package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.state.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.state.js +29 -0
- package/out/controller/control/form/form-detail/form-group-panel/index.d.ts +3 -0
- package/out/controller/control/form/form-detail/form-group-panel/index.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-group-panel/index.js +2 -0
- package/out/controller/control/form/form-detail/form-item/form-item.controller.d.ts +165 -0
- package/out/controller/control/form/form-detail/form-item/form-item.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-item/form-item.controller.js +308 -0
- package/out/controller/control/form/form-detail/form-item/form-item.state.d.ts +28 -0
- package/out/controller/control/form/form-detail/form-item/form-item.state.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-item/form-item.state.js +43 -0
- package/out/controller/control/form/form-detail/form-item/index.d.ts +3 -0
- package/out/controller/control/form/form-detail/form-item/index.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-item/index.js +2 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-content-type.controller.d.ts +96 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-content-type.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-content-type.controller.js +116 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-control/form-mdctrl-control.controller.d.ts +41 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-control/form-mdctrl-control.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-control/form-mdctrl-control.controller.js +34 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-data-view/form-mdctrl-data-view.controller.d.ts +97 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-data-view/form-mdctrl-data-view.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-data-view/form-mdctrl-data-view.controller.js +104 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.controller.d.ts +135 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.controller.js +189 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-grid/form-mdctrl-grid.controller.d.ts +114 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-grid/form-mdctrl-grid.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-grid/form-mdctrl-grid.controller.js +140 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-list/form-mdctrl-list.controller.d.ts +97 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-list/form-mdctrl-list.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-list/form-mdctrl-list.controller.js +104 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-item.controller.d.ts +18 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-item.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-item.controller.js +20 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.controller.d.ts +101 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.controller.js +150 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.controller.d.ts +80 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.controller.js +130 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-grid/form-mdctrl-repeater-grid.controller.d.ts +75 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-grid/form-mdctrl-repeater-grid.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-grid/form-mdctrl-repeater-grid.controller.js +108 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.d.ts +87 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.js +119 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.d.ts +16 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.js +18 -0
- package/out/controller/control/form/form-detail/form-mdctrl/index.d.ts +13 -0
- package/out/controller/control/form/form-detail/form-mdctrl/index.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-mdctrl/index.js +12 -0
- package/out/controller/control/form/form-detail/form-page/form-page.controller.d.ts +17 -0
- package/out/controller/control/form/form-detail/form-page/form-page.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-page/form-page.controller.js +17 -0
- package/out/controller/control/form/form-detail/form-page/form-page.state.d.ts +13 -0
- package/out/controller/control/form/form-detail/form-page/form-page.state.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-page/form-page.state.js +12 -0
- package/out/controller/control/form/form-detail/form-page/index.d.ts +3 -0
- package/out/controller/control/form/form-detail/form-page/index.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-page/index.js +2 -0
- package/out/controller/control/form/form-detail/form-rawitem/form-rawitem.controller.d.ts +17 -0
- package/out/controller/control/form/form-detail/form-rawitem/form-rawitem.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-rawitem/form-rawitem.controller.js +17 -0
- package/out/controller/control/form/form-detail/form-rawitem/form-rawitem.state.d.ts +10 -0
- package/out/controller/control/form/form-detail/form-rawitem/form-rawitem.state.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-rawitem/form-rawitem.state.js +9 -0
- package/out/controller/control/form/form-detail/form-rawitem/index.d.ts +3 -0
- package/out/controller/control/form/form-detail/form-rawitem/index.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-rawitem/index.js +2 -0
- package/out/controller/control/form/form-detail/form-tab-page/form-tab-page.controller.d.ts +18 -0
- package/out/controller/control/form/form-detail/form-tab-page/form-tab-page.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-tab-page/form-tab-page.controller.js +17 -0
- package/out/controller/control/form/form-detail/form-tab-page/form-tab-page.state.d.ts +10 -0
- package/out/controller/control/form/form-detail/form-tab-page/form-tab-page.state.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-tab-page/form-tab-page.state.js +9 -0
- package/out/controller/control/form/form-detail/form-tab-page/index.d.ts +3 -0
- package/out/controller/control/form/form-detail/form-tab-page/index.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-tab-page/index.js +2 -0
- package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.d.ts +18 -0
- package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.js +17 -0
- package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.state.d.ts +10 -0
- package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.state.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.state.js +9 -0
- package/out/controller/control/form/form-detail/form-tab-panel/index.d.ts +3 -0
- package/out/controller/control/form/form-detail/form-tab-panel/index.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-tab-panel/index.js +2 -0
- package/out/controller/control/form/form-detail/index.d.ts +11 -0
- package/out/controller/control/form/form-detail/index.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/index.js +10 -0
- package/out/controller/control/form/index.d.ts +5 -0
- package/out/controller/control/form/index.d.ts.map +1 -0
- package/out/controller/control/form/index.js +4 -0
- package/out/controller/control/form/search-form/index.d.ts +3 -0
- package/out/controller/control/form/search-form/index.d.ts.map +1 -0
- package/out/controller/control/form/search-form/index.js +2 -0
- package/out/controller/control/form/search-form/search-form.controller.d.ts +79 -0
- package/out/controller/control/form/search-form/search-form.controller.d.ts.map +1 -0
- package/out/controller/control/form/search-form/search-form.controller.js +108 -0
- package/out/controller/control/form/search-form/search-form.service.d.ts +42 -0
- package/out/controller/control/form/search-form/search-form.service.d.ts.map +1 -0
- package/out/controller/control/form/search-form/search-form.service.js +61 -0
- package/out/controller/control/grid/grid/grid-column.controller.d.ts +107 -0
- package/out/controller/control/grid/grid/grid-column.controller.d.ts.map +1 -0
- package/out/controller/control/grid/grid/grid-column.controller.js +119 -0
- package/out/controller/control/grid/grid/grid-row.state.d.ts +75 -0
- package/out/controller/control/grid/grid/grid-row.state.d.ts.map +1 -0
- package/out/controller/control/grid/grid/grid-row.state.js +80 -0
- package/out/controller/control/grid/grid/grid.controller.d.ts +298 -0
- package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -0
- package/out/controller/control/grid/grid/grid.controller.js +739 -0
- package/out/controller/control/grid/grid/grid.service.d.ts +32 -0
- package/out/controller/control/grid/grid/grid.service.d.ts.map +1 -0
- package/out/controller/control/grid/grid/grid.service.js +64 -0
- package/out/controller/control/grid/grid/index.d.ts +5 -0
- package/out/controller/control/grid/grid/index.d.ts.map +1 -0
- package/out/controller/control/grid/grid/index.js +4 -0
- package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts +100 -0
- package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts.map +1 -0
- package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.js +224 -0
- package/out/controller/control/grid/grid-column/grid-field-column/index.d.ts +2 -0
- package/out/controller/control/grid/grid-column/grid-field-column/index.d.ts.map +1 -0
- package/out/controller/control/grid/grid-column/grid-field-column/index.js +1 -0
- package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.d.ts +168 -0
- package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.d.ts.map +1 -0
- package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.js +270 -0
- package/out/controller/control/grid/grid-column/grid-field-edit-column/index.d.ts +2 -0
- package/out/controller/control/grid/grid-column/grid-field-edit-column/index.d.ts.map +1 -0
- package/out/controller/control/grid/grid-column/grid-field-edit-column/index.js +1 -0
- package/out/controller/control/grid/grid-column/grid-group-column/grid-group-column.controller.d.ts +11 -0
- package/out/controller/control/grid/grid-column/grid-group-column/grid-group-column.controller.d.ts.map +1 -0
- package/out/controller/control/grid/grid-column/grid-group-column/grid-group-column.controller.js +9 -0
- package/out/controller/control/grid/grid-column/grid-group-column/index.d.ts +2 -0
- package/out/controller/control/grid/grid-column/grid-group-column/index.d.ts.map +1 -0
- package/out/controller/control/grid/grid-column/grid-group-column/index.js +1 -0
- package/out/controller/control/grid/grid-column/grid-ua-column/grid-ua-column.controller.d.ts +29 -0
- package/out/controller/control/grid/grid-column/grid-ua-column/grid-ua-column.controller.d.ts.map +1 -0
- package/out/controller/control/grid/grid-column/grid-ua-column/grid-ua-column.controller.js +59 -0
- package/out/controller/control/grid/grid-column/grid-ua-column/index.d.ts +2 -0
- package/out/controller/control/grid/grid-column/grid-ua-column/index.d.ts.map +1 -0
- package/out/controller/control/grid/grid-column/grid-ua-column/index.js +1 -0
- package/out/controller/control/grid/grid-column/index.d.ts +5 -0
- package/out/controller/control/grid/grid-column/index.d.ts.map +1 -0
- package/out/controller/control/grid/grid-column/index.js +4 -0
- package/out/controller/control/grid/index.d.ts +3 -0
- package/out/controller/control/grid/index.d.ts.map +1 -0
- package/out/controller/control/grid/index.js +2 -0
- package/out/controller/control/index.d.ts +20 -0
- package/out/controller/control/index.d.ts.map +1 -0
- package/out/controller/control/index.js +19 -0
- package/out/controller/control/list/index.d.ts +3 -0
- package/out/controller/control/list/index.d.ts.map +1 -0
- package/out/controller/control/list/index.js +2 -0
- package/out/controller/control/list/list.controller.d.ts +92 -0
- package/out/controller/control/list/list.controller.d.ts.map +1 -0
- package/out/controller/control/list/list.controller.js +186 -0
- package/out/controller/control/list/list.service.d.ts +20 -0
- package/out/controller/control/list/list.service.d.ts.map +1 -0
- package/out/controller/control/list/list.service.js +39 -0
- package/out/controller/control/panel/index.d.ts +3 -0
- package/out/controller/control/panel/index.d.ts.map +1 -0
- package/out/controller/control/panel/index.js +2 -0
- package/out/controller/control/panel/panel/index.d.ts +4 -0
- package/out/controller/control/panel/panel/index.d.ts.map +1 -0
- package/out/controller/control/panel/panel/index.js +3 -0
- package/out/controller/control/panel/panel/panel-item.controller.d.ts +120 -0
- package/out/controller/control/panel/panel/panel-item.controller.d.ts.map +1 -0
- package/out/controller/control/panel/panel/panel-item.controller.js +206 -0
- package/out/controller/control/panel/panel/panel-item.state.d.ts +27 -0
- package/out/controller/control/panel/panel/panel-item.state.d.ts.map +1 -0
- package/out/controller/control/panel/panel/panel-item.state.js +73 -0
- package/out/controller/control/panel/panel/panel.controller.d.ts +115 -0
- package/out/controller/control/panel/panel/panel.controller.d.ts.map +1 -0
- package/out/controller/control/panel/panel/panel.controller.js +202 -0
- package/out/controller/control/panel/view-layout-panel/index.d.ts +2 -0
- package/out/controller/control/panel/view-layout-panel/index.d.ts.map +1 -0
- package/out/controller/control/panel/view-layout-panel/index.js +1 -0
- package/out/controller/control/panel/view-layout-panel/view-layout-panel.controller.d.ts +24 -0
- package/out/controller/control/panel/view-layout-panel/view-layout-panel.controller.d.ts.map +1 -0
- package/out/controller/control/panel/view-layout-panel/view-layout-panel.controller.js +57 -0
- package/out/controller/control/pickup-view-panel/index.d.ts +2 -0
- package/out/controller/control/pickup-view-panel/index.d.ts.map +1 -0
- package/out/controller/control/pickup-view-panel/index.js +1 -0
- package/out/controller/control/pickup-view-panel/pickup-view-panel.controller.d.ts +60 -0
- package/out/controller/control/pickup-view-panel/pickup-view-panel.controller.d.ts.map +1 -0
- package/out/controller/control/pickup-view-panel/pickup-view-panel.controller.js +93 -0
- package/out/controller/control/search-bar/index.d.ts +2 -0
- package/out/controller/control/search-bar/index.d.ts.map +1 -0
- package/out/controller/control/search-bar/index.js +1 -0
- package/out/controller/control/search-bar/search-bar.controller.d.ts +39 -0
- package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -0
- package/out/controller/control/search-bar/search-bar.controller.js +61 -0
- package/out/controller/control/tab-exp-panel/index.d.ts +2 -0
- package/out/controller/control/tab-exp-panel/index.d.ts.map +1 -0
- package/out/controller/control/tab-exp-panel/index.js +1 -0
- package/out/controller/control/tab-exp-panel/tab-exp-panel.controller.d.ts +87 -0
- package/out/controller/control/tab-exp-panel/tab-exp-panel.controller.d.ts.map +1 -0
- package/out/controller/control/tab-exp-panel/tab-exp-panel.controller.js +163 -0
- package/out/controller/control/toolbar/index.d.ts +2 -0
- package/out/controller/control/toolbar/index.d.ts.map +1 -0
- package/out/controller/control/toolbar/index.js +1 -0
- package/out/controller/control/toolbar/toolbar.controllerr.d.ts +47 -0
- package/out/controller/control/toolbar/toolbar.controllerr.d.ts.map +1 -0
- package/out/controller/control/toolbar/toolbar.controllerr.js +148 -0
- package/out/controller/control/tree/index.d.ts +3 -0
- package/out/controller/control/tree/index.d.ts.map +1 -0
- package/out/controller/control/tree/index.js +2 -0
- package/out/controller/control/tree/tree.controller.d.ts +110 -0
- package/out/controller/control/tree/tree.controller.d.ts.map +1 -0
- package/out/controller/control/tree/tree.controller.js +268 -0
- package/out/controller/control/tree/tree.service.d.ts +115 -0
- package/out/controller/control/tree/tree.service.d.ts.map +1 -0
- package/out/controller/control/tree/tree.service.js +249 -0
- package/out/controller/control/wizard-panel/index.d.ts +3 -0
- package/out/controller/control/wizard-panel/index.d.ts.map +1 -0
- package/out/controller/control/wizard-panel/index.js +2 -0
- package/out/controller/control/wizard-panel/wizard-panel.controller.d.ts +147 -0
- package/out/controller/control/wizard-panel/wizard-panel.controller.d.ts.map +1 -0
- package/out/controller/control/wizard-panel/wizard-panel.controller.js +275 -0
- package/out/controller/control/wizard-panel/wizard-panel.service.d.ts +37 -0
- package/out/controller/control/wizard-panel/wizard-panel.service.d.ts.map +1 -0
- package/out/controller/control/wizard-panel/wizard-panel.service.js +46 -0
- package/out/controller/index.d.ts +1 -0
- package/out/controller/index.d.ts.map +1 -1
- package/out/controller/index.js +1 -0
- package/out/controller/utils/counter/counter.d.ts +1 -1
- package/out/controller/utils/counter/counter.js +1 -1
- package/out/global/global-util/global-util.d.ts +15 -1
- package/out/global/global-util/global-util.d.ts.map +1 -1
- package/out/global/global-util/global-util.js +8 -1
- package/out/install.d.ts.map +1 -1
- package/out/install.js +3 -1
- package/out/interface/common/i-drawer-options/i-drawer-options.d.ts +6 -6
- package/out/interface/common/i-drawer-options/i-drawer-options.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-calendar-exp-bar.controller.d.ts +4 -4
- package/out/interface/controller/controller/control/i-calendar-exp-bar.controller.d.ts.map +1 -1
- package/out/interface/provider/i-app-counter.provider.d.ts +22 -0
- package/out/interface/provider/i-app-counter.provider.d.ts.map +1 -0
- package/out/interface/provider/i-app-counter.provider.js +1 -0
- package/out/interface/provider/index.d.ts +1 -0
- package/out/interface/provider/index.d.ts.map +1 -1
- package/out/interface/util/i-export-excel/i-export-excel.d.ts +21 -0
- package/out/interface/util/i-export-excel/i-export-excel.d.ts.map +1 -0
- package/out/interface/util/i-export-excel/i-export-excel.js +1 -0
- package/out/interface/util/index.d.ts +1 -0
- package/out/interface/util/index.d.ts.map +1 -1
- package/out/register/helper/app-counter-register.d.ts +23 -0
- package/out/register/helper/app-counter-register.d.ts.map +1 -0
- package/out/register/helper/app-counter-register.js +61 -0
- package/out/register/helper/index.d.ts +1 -0
- package/out/register/helper/index.d.ts.map +1 -1
- package/out/register/helper/index.js +1 -0
- package/out/service/service/counter/counter.service.d.ts.map +1 -1
- package/out/service/service/counter/counter.service.js +4 -6
- package/out/service/utils/app-counter/app-counter.d.ts +1 -3
- package/out/service/utils/app-counter/app-counter.d.ts.map +1 -1
- package/out/service/utils/app-counter/app-counter.js +3 -15
- package/out/service/utils/app-counter/app-de-counter.d.ts +34 -0
- package/out/service/utils/app-counter/app-de-counter.d.ts.map +1 -0
- package/out/service/utils/app-counter/app-de-counter.js +46 -0
- package/out/service/utils/app-counter/app-de-counter.provider.d.ts +15 -0
- package/out/service/utils/app-counter/app-de-counter.provider.d.ts.map +1 -0
- package/out/service/utils/app-counter/app-de-counter.provider.js +14 -0
- package/out/service/utils/app-counter/index.d.ts +13 -0
- package/out/service/utils/app-counter/index.d.ts.map +1 -0
- package/out/service/utils/app-counter/index.js +16 -0
- package/out/service/utils/index.d.ts +1 -1
- package/out/service/utils/index.d.ts.map +1 -1
- package/out/service/utils/index.js +1 -1
- package/out/utils/index.d.ts +1 -0
- package/out/utils/index.d.ts.map +1 -1
- package/out/utils/index.js +1 -0
- package/out/utils/text-util/text-util.d.ts +21 -0
- package/out/utils/text-util/text-util.d.ts.map +1 -0
- package/out/utils/text-util/text-util.js +22 -0
- package/package.json +5 -3
- package/src/config/global-config.ts +1 -1
- package/src/controller/control/app-menu/app-menu.controller.ts +169 -0
- package/src/controller/control/app-menu/index.ts +1 -0
- package/src/controller/control/app-menu-icon-view/app-menu-icon-view.controller.ts +48 -0
- package/src/controller/control/app-menu-icon-view/index.ts +1 -0
- package/src/controller/control/calendar/calendar.controller.ts +212 -0
- package/src/controller/control/calendar/calendar.service.ts +112 -0
- package/src/controller/control/calendar/index.ts +2 -0
- package/src/controller/control/caption-bar/caption-bar.controller.ts +44 -0
- package/src/controller/control/caption-bar/index.ts +1 -0
- package/src/controller/control/chart/chart.controller.ts +123 -0
- package/src/controller/control/chart/chart.service.ts +12 -0
- package/src/controller/control/chart/generator/bar-series-generator.ts +32 -0
- package/src/controller/control/chart/generator/base-series-generator.ts +593 -0
- package/src/controller/control/chart/generator/chart-options-generator.ts +409 -0
- package/src/controller/control/chart/generator/funnel-series-generator.ts +36 -0
- package/src/controller/control/chart/generator/line-series-generator.ts +37 -0
- package/src/controller/control/chart/generator/pie-series-generator.ts +36 -0
- package/src/controller/control/chart/generator/radar-coord-system.ts +85 -0
- package/src/controller/control/chart/generator/radar-series-generator.ts +80 -0
- package/src/controller/control/chart/generator/scatter-series-generator.ts +28 -0
- package/src/controller/control/chart/index.ts +2 -0
- package/src/controller/control/context-menu/context-menu.controllerr.ts +23 -0
- package/src/controller/control/context-menu/index.ts +1 -0
- package/src/controller/control/dashboard/dashboard.controller.ts +127 -0
- package/src/controller/control/dashboard/index.ts +2 -0
- package/src/controller/control/dashboard/portlet/container-portlet/container-portlet.controller.ts +4 -0
- package/src/controller/control/dashboard/portlet/container-portlet/index.ts +1 -0
- package/src/controller/control/dashboard/portlet/index.ts +3 -0
- package/src/controller/control/dashboard/portlet/portlet-part/index.ts +2 -0
- package/src/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.ts +246 -0
- package/src/controller/control/dashboard/portlet/portlet-part/portlet-part.state.ts +39 -0
- package/src/controller/control/dashboard/portlet/view-portlet/index.ts +1 -0
- package/src/controller/control/dashboard/portlet/view-portlet/view-portlet.controller.ts +4 -0
- package/src/controller/control/data-view/data-view.controller.ts +258 -0
- package/src/controller/control/data-view/data-view.service.ts +37 -0
- package/src/controller/control/data-view/index.ts +2 -0
- package/src/controller/control/exp-bar/calendar-exp-bar.controller.ts +108 -0
- package/src/controller/control/exp-bar/exp-bar.controller.ts +400 -0
- package/src/controller/control/exp-bar/index.ts +3 -0
- package/src/controller/control/exp-bar/tree-exp-bar.controller.ts +178 -0
- package/src/controller/control/form/edit-form/edit-form.controller.ts +325 -0
- package/src/controller/control/form/edit-form/edit-form.service.ts +322 -0
- package/src/controller/control/form/edit-form/index.ts +2 -0
- package/src/controller/control/form/form/form.controller.ts +271 -0
- package/src/controller/control/form/form/index.ts +1 -0
- package/src/controller/control/form/form-detail/form-button/form-button.controller.ts +88 -0
- package/src/controller/control/form/form-detail/form-button/form-button.state.ts +17 -0
- package/src/controller/control/form/form-detail/form-button/index.ts +2 -0
- package/src/controller/control/form/form-detail/form-detail/form-detail.controller.ts +253 -0
- package/src/controller/control/form/form-detail/form-detail/form-detail.state.ts +106 -0
- package/src/controller/control/form/form-detail/form-detail/index.ts +2 -0
- package/src/controller/control/form/form-detail/form-druipart/form-druipart.controller.ts +207 -0
- package/src/controller/control/form/form-detail/form-druipart/form-druipart.state.ts +26 -0
- package/src/controller/control/form/form-detail/form-druipart/index.ts +2 -0
- package/src/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.ts +118 -0
- package/src/controller/control/form/form-detail/form-group-panel/form-group-panel.state.ts +29 -0
- package/src/controller/control/form/form-detail/form-group-panel/index.ts +2 -0
- package/src/controller/control/form/form-detail/form-item/form-item.controller.ts +401 -0
- package/src/controller/control/form/form-detail/form-item/form-item.state.ts +48 -0
- package/src/controller/control/form/form-detail/form-item/index.ts +2 -0
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-content-type.controller.ts +138 -0
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-control/form-mdctrl-control.controller.ts +56 -0
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-data-view/form-mdctrl-data-view.controller.ts +120 -0
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.controller.ts +224 -0
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-grid/form-mdctrl-grid.controller.ts +161 -0
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-list/form-mdctrl-list.controller.ts +120 -0
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-item.controller.ts +36 -0
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.controller.ts +213 -0
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.controller.ts +178 -0
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-grid/form-mdctrl-repeater-grid.controller.ts +119 -0
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.ts +153 -0
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.ts +16 -0
- package/src/controller/control/form/form-detail/form-mdctrl/index.ts +12 -0
- package/src/controller/control/form/form-detail/form-page/form-page.controller.ts +20 -0
- package/src/controller/control/form/form-detail/form-page/form-page.state.ts +12 -0
- package/src/controller/control/form/form-detail/form-page/index.ts +2 -0
- package/src/controller/control/form/form-detail/form-rawitem/form-rawitem.controller.ts +20 -0
- package/src/controller/control/form/form-detail/form-rawitem/form-rawitem.state.ts +9 -0
- package/src/controller/control/form/form-detail/form-rawitem/index.ts +2 -0
- package/src/controller/control/form/form-detail/form-tab-page/form-tab-page.controller.ts +24 -0
- package/src/controller/control/form/form-detail/form-tab-page/form-tab-page.state.ts +9 -0
- package/src/controller/control/form/form-detail/form-tab-page/index.ts +2 -0
- package/src/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.ts +24 -0
- package/src/controller/control/form/form-detail/form-tab-panel/form-tab-panel.state.ts +9 -0
- package/src/controller/control/form/form-detail/form-tab-panel/index.ts +2 -0
- package/src/controller/control/form/form-detail/index.ts +10 -0
- package/src/controller/control/form/index.ts +4 -0
- package/src/controller/control/form/search-form/index.ts +2 -0
- package/src/controller/control/form/search-form/search-form.controller.ts +136 -0
- package/src/controller/control/form/search-form/search-form.service.ts +74 -0
- package/src/controller/control/grid/grid/grid-column.controller.ts +151 -0
- package/src/controller/control/grid/grid/grid-row.state.ts +102 -0
- package/src/controller/control/grid/grid/grid.controller.ts +905 -0
- package/src/controller/control/grid/grid/grid.service.ts +71 -0
- package/src/controller/control/grid/grid/index.ts +4 -0
- package/src/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.ts +270 -0
- package/src/controller/control/grid/grid-column/grid-field-column/index.ts +1 -0
- package/src/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.ts +364 -0
- package/src/controller/control/grid/grid-column/grid-field-edit-column/index.ts +1 -0
- package/src/controller/control/grid/grid-column/grid-group-column/grid-group-column.controller.ts +10 -0
- package/src/controller/control/grid/grid-column/grid-group-column/index.ts +1 -0
- package/src/controller/control/grid/grid-column/grid-ua-column/grid-ua-column.controller.ts +70 -0
- package/src/controller/control/grid/grid-column/grid-ua-column/index.ts +1 -0
- package/src/controller/control/grid/grid-column/index.ts +4 -0
- package/src/controller/control/grid/index.ts +2 -0
- package/src/controller/control/index.ts +19 -0
- package/src/controller/control/list/index.ts +2 -0
- package/src/controller/control/list/list.controller.ts +228 -0
- package/src/controller/control/list/list.service.ts +39 -0
- package/src/controller/control/panel/index.ts +2 -0
- package/src/controller/control/panel/panel/index.ts +3 -0
- package/src/controller/control/panel/panel/panel-item.controller.ts +244 -0
- package/src/controller/control/panel/panel/panel-item.state.ts +86 -0
- package/src/controller/control/panel/panel/panel.controller.ts +267 -0
- package/src/controller/control/panel/view-layout-panel/index.ts +1 -0
- package/src/controller/control/panel/view-layout-panel/view-layout-panel.controller.ts +77 -0
- package/src/controller/control/pickup-view-panel/index.ts +1 -0
- package/src/controller/control/pickup-view-panel/pickup-view-panel.controller.ts +138 -0
- package/src/controller/control/search-bar/index.ts +1 -0
- package/src/controller/control/search-bar/search-bar.controller.ts +76 -0
- package/src/controller/control/tab-exp-panel/index.ts +1 -0
- package/src/controller/control/tab-exp-panel/tab-exp-panel.controller.ts +195 -0
- package/src/controller/control/toolbar/index.ts +1 -0
- package/src/controller/control/toolbar/toolbar.controllerr.ts +215 -0
- package/src/controller/control/tree/index.ts +2 -0
- package/src/controller/control/tree/tree.controller.ts +327 -0
- package/src/controller/control/tree/tree.service.ts +425 -0
- package/src/controller/control/wizard-panel/index.ts +2 -0
- package/src/controller/control/wizard-panel/wizard-panel.controller.ts +325 -0
- package/src/controller/control/wizard-panel/wizard-panel.service.ts +58 -0
- package/src/controller/index.ts +1 -0
- package/src/controller/utils/counter/counter.ts +1 -1
- package/src/global/global-util/global-util.ts +17 -1
- package/src/install.ts +3 -1
- package/src/interface/common/i-drawer-options/i-drawer-options.ts +6 -6
- package/src/interface/controller/controller/control/i-calendar-exp-bar.controller.ts +6 -6
- package/src/interface/provider/i-app-counter.provider.ts +22 -0
- package/src/interface/provider/index.ts +1 -0
- package/src/interface/util/i-export-excel/i-export-excel.ts +20 -0
- package/src/interface/util/index.ts +1 -0
- package/src/register/helper/app-counter-register.ts +75 -0
- package/src/register/helper/index.ts +1 -0
- package/src/service/service/counter/counter.service.ts +4 -5
- package/src/service/utils/app-counter/app-counter.ts +3 -24
- package/src/service/utils/app-counter/app-de-counter.provider.ts +18 -0
- package/src/service/utils/app-counter/app-de-counter.ts +60 -0
- package/src/service/utils/app-counter/index.ts +18 -0
- package/src/service/utils/index.ts +1 -1
- package/src/utils/index.ts +1 -0
- package/src/utils/text-util/text-util.ts +22 -0
package/dist/index.system.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["@ibiz-template/core","lodash-es","qx-util","qs","ramda"],(function(e){"use strict";var t,i,s,a,n,r,o,c,l,d,h,u,p,E,g,m,f,w,I,D,A,P,y,v,T,C,b,V,_,R,L,O,N;return{setters:[function(e){t=e.RuntimeError,i=e.RuntimeModelError,s=e.ModelError,a=e.IBizContext,n=e.HttpResponse,r=e.HttpError,o=e.CoreConst,c=e.Net,l=e.NOOP,d=e.isElementSame,h=e.StringUtil},function(e){u=e.isEmpty,p=e.isFunction},function(e){E=e.notNilEmpty,g=e.isNilOrEmpty,m=e.AsyncSeriesHook,f=e.QXEvent,w=e.createUUID,I=e.isArray,D=e.setCookie,A=e.clearCookie,P=e.clearAll,y=e.ascSort,v=e.descSort},function(e){T=e.default},function(e){C=e.isNotNil,b=e.isNil,V=e.mergeRight,_=e.isEmpty,R=e.clone,L=e.equals,O=e.where,N=e.mergeLeft}],execute:function(){e({calcContentAlignStyle:function(e){const{valignSelf:t,halignSelf:i}=e,s={};if(t||i){switch(Object.assign(s,{display:"flex"}),t){case"TOP":Object.assign(s,{"align-items":"flex-start"});break;case"MIDDLE":Object.assign(s,{"align-items":"center"});break;case"BOTTOM":Object.assign(s,{"align-items":"flex-end"})}switch(i){case"LEFT":Object.assign(s,{"justify-content":"flex-start"});break;case"CENTER":Object.assign(s,{"justify-content":"center"});break;case"RIGHT":Object.assign(s,{"justify-content":"flex-end"});break;case"JUSTIFY":Object.assign(s,{"justify-content":"space-between"})}}return s},calcDeCodeNameById:Z,calcDynaClass:function(e,t){return fe.execScriptFn({data:t},e,{singleRowReturn:!0,isAsync:!1})},calcGridLayoutPos:function(e){const{layout:t,colXS:i,colXSOffset:s,colSM:a,colSMOffset:n,colMD:r,colMDOffset:o,colLG:c,colLGOffset:l}=e,d=(e,i)=>({span:(e&&-1!==e?e:"TABLE_24COL"===t?24:12)*("TABLE_24COL"===t?1:2),offset:i&&-1!==i?i:void 0});return{xs:d(i,s),sm:d(a,n),md:d(r,o),lg:d(c,l)}},calcLayoutHeightWidth:function(e){const{width:t,height:i,widthMode:s,heightMode:a}=e,n={width:"",height:""};"FULL"===s?n.width="100%":t&&t>0&&(n.width=t>0&&t<=1?"".concat(100*t,"%"):"".concat(t,"PERCENTAGE"===s?"%":"px"));"FULL"===a?n.height="100%":i&&i>0&&(n.height=i>0&&i<=1?"".concat(100*i,"%"):"".concat(i,"PERCENTAGE"===a?"%":"px"));return n},calcMainStateOPPrivsStrs:J,calcNavParams:function(e,t){const{deName:i,navFilter:s,pickupDEFName:a,navContexts:n,navParams:r}=e,{context:o,params:c,data:l,derValue:d}=t,h={},u={},p=d||l.srfkey;p&&(i&&(h[i]=p),s&&(u[s]=p),a&&(u["n_".concat(a.toLowerCase(),"_eq")]=p));const E=j(n,o,c,l),g=j(r,o,c,l);return Object.assign(h,E),Object.assign(u,g),{resultContext:h,resultParams:u}},calcResPath:qe,calcRouteContext:function(e){let t=[];t=t.sort(((e,t)=>t.length-e.length));const[i]=t;if(i){const e={};return i.forEach((([t,i])=>{e[t]=i})),e}return{}},compare:he,compareNumber:ue,contains:pe,convertNavData:j,convertNavDataByArray:H,convertNavDataByObject:K,convertObjectToNavParams:Y,execDELogic:yt,execDELogicAction:vt,execDELogicById:async function(e,i,s,a,n){const r=await async function(e,t,i){const s=await ibiz.hub.getAppDataEntity(t,i);return ee(e,s)}(e,i,s.srfappid);if(!r)throw new t("".concat(i,"找不到实体逻辑").concat(e));return yt(r,s,a,n)},execFieldLogics:Tt,execUILogic:Si,filterFieldLogics:te,filterValueRules:function(e,t){return e.filter((e=>{const{checkMode:i}=e,s=e.deformItemName||e.degridEditItemName;return 2!==i&&s===t}))},findChildFormDetails:function(e){let t;switch(e.detailType){case"TABPANEL":t=e.deformTabPages;break;case"FORMPAGE":case"TABPAGE":case"GROUPPANEL":t=e.deformDetails}return t||[]},findDELogic:ee,findEditItem:function(e,t){var i;return null==(i=e.degridEditItems)?void 0:i.find((e=>e.codeName===t))},findFieldById:ie,findModelChild:$,formatMultiData:q,generateRules:function(e,i,s){const a=[];return e.forEach((e=>{const{valueRuleType:n}=e,r=e.sysValueRule,o=e.defvalueRule;if("SYSVALUERULE"===n&&r)"REG"===r.ruleType?a.push({pattern:new RegExp(r.regExCode),message:r.ruleInfo,trigger:"change blur"}):"SCRIPT"===r.ruleType&&a.push({validator:(e,t,i,s)=>{if(!t)return!0;try{fe.execScriptFn({rule:e,value:t,callback:i,source:s},r.scriptCode,{isAsync:!1})}catch(e){return console.error(e),!1}return!0},trigger:"change blur"});else if("DEFVALUERULE"===n&&o){const e=s||i;a.push({validator:(i,s,a,n)=>{if(g(n[e]))return!0;const{isPast:r,infoMessage:c}=we(e,n,o.groupCond);return r||a(new t(c||o.ruleInfo)),!0},trigger:"change blur"})}})),a},getAppViewRef:function(e,t){var i,s;let a=e.appViewRefs||[];(null==(s=null==(i=e.viewLayoutPanel)?void 0:i.appViewRefs)?void 0:s.length)&&(a=a.concat(e.viewLayoutPanel.appViewRefs));return a.find((e=>e.name===t||e.id===t))},getChildNodeRSs:function(e,t){const i=t.parentId||ae(e).id;return e.detreeNodeRSs.filter((e=>{return e.parentDETreeNodeId===i&&(s=e.searchMode,a=t.hasQuery,3===s||(a?1===s:2===s));var s,a}))},getControl:function(e,t){var i,s;let a=e.controls||[];(null==(s=null==(i=e.viewLayoutPanel)?void 0:i.controls)?void 0:s.length)&&(a=a.concat(e.viewLayoutPanel.controls));return a.find((e=>e.name===t||e.codeName===t||e.id===t))},getControlProvider:Jt,getControlsByView:ne,getDeACMode:async function(e,t,i){var s;const a=await ibiz.hub.getAppDataEntity(t,i);return null==(s=a.appDEACModes)?void 0:s.find((t=>t.id===e))},getEditorProvider:async function(e){let t;const{editorType:i,editorStyle:s,predefinedType:a,sysPFPluginId:n,appId:r}=e;if(n){const e=await qt(n,r);if(e&&(t=ei(e)),t)return t;ibiz.log.error("找不到编辑器插件".concat(e,"对应的适配器"))}if(s&&"DEFAULT"!==s){if(t=ei("".concat(i,"_").concat(s)),t)return t;ibiz.log.error("找不到编辑器类型:[".concat(i,"]的编辑器样式:[").concat(s,"]对应的适配器"),e)}if(a){let n="".concat(a,"_").concat(i);if(s&&"DEFAULT"!==s&&(n+="_".concat(s)),t=ei(n),t)return t;ibiz.log.error("找不到编辑器类型:[".concat(i,"]的预置类型:[").concat(a,"]对应的适配器"),e)}if(t=ei(i),t)return t;ibiz.log.error("找不到编辑器类型".concat(i,"对应的适配器"))},getFormDetailProvider:async function(e){let t;const{detailType:i,sysPFPluginId:s,appId:a}=e;if(s){const e=await qt(s,a);if(e&&(t=ii(e)),t)return t;ibiz.log.error("找不到表单成员插件".concat(e,"对应的适配器"))}if(t=ii(i),t)return t;ibiz.log.error("找不到表单成员类型".concat(i,"对应的适配器"))},getGridColumnProvider:async function(e){let t;const{columnType:i,enableRowEdit:s,sysPFPluginId:a,appId:n}=e;if(a){const e=await qt(a,n);if(e&&(t=ai(e)),t)return t;ibiz.log.error("找不到表格列插件".concat(e,"对应的适配器"))}const r=s?"".concat(i,"_EDIT"):i;if(t=ai(r),t)return t;ibiz.log.error("找不到表格列类型".concat(r,"对应的适配器"))},getMatchResPath:Ye,getOriginData:function(e){let t=Array.isArray(e)?e[0]:e;t&&t instanceof _t&&(t=t.getOrigin());return t},getPanelItemProvider:async function(e){var t;let i;const{itemType:s,sysPFPluginId:a,appId:n}=e;if(a){const e=await qt(a,n);if(e&&(i=ri(e)),i)return i;ibiz.log.error("找不到面板成员插件".concat(e,"对应的适配器"))}if("CONTAINER"===s){const t=e.predefinedType||"DEFAULT";if(i=ri("CONTAINER_".concat(t)),i)return i;ibiz.log.error("找不到面板容器预置类型为".concat(t,"的适配器"))}if("RAWITEM"===s){const s=(null==(t=e.rawItem)?void 0:t.predefinedType)||"DEFAULT";if(i=ri("RAWITEM_".concat(s)),i)return i;ibiz.log.error("找不到面板成员直接内容预置类型为".concat(s,"的适配器"))}if(i=ri(s),i)return i;ibiz.log.error("找不到面板成员类型".concat(s,"对应的适配器"))},getPortletProvider:async function(e){let t;const{portletType:i,sysPFPluginId:s,appId:a}=e;if(s){const e=await qt(s,a);if(e&&(t=Ei(e)),t)return t;ibiz.log.error("找不到门户部件插件".concat(e,"对应的适配器"))}if(t=Ei(i),t)return t;ibiz.log.error("找不到门户部件成员类型".concat(i,"对应的适配器"))},getRootNode:ae,getTreeNode:function(e,t){return e.detreeNodes.find((e=>e.id===t))},getUIActionById:se,getUIActionProvider:di,getViewEngines:oe,getViewLogics:re,getViewProvider:async function(e){let t;const{viewType:i,viewStyle:s,sysPFPluginId:a,appId:n}=e;if(a){const e=await qt(a,n);if(e&&(t=ui(e)),t)return t;ibiz.log.error("找不到视图插件".concat(e,"对应的适配器"))}if(s&&"DEFAULT"!==s){if(t=ui("".concat(i,"_").concat(s)),t)return t;ibiz.log.error("找不到视图类型:[".concat(i,"]的视图样式:[").concat(s,"]对应的适配器"),e)}t||(t=ui(i));t||(t=ui("DEFAULT"));return t},getWFContext:function(e){const t={};e.param09&&(t.srfprocessinstanceid=e.param09);return t},getWFSubmitViewId:function(e,t){var i;const{type:s,sequenceflowview:a,sequenceflowmobview:n}=t,r=(null==(i=e.viewLayoutPanel)?void 0:i.appViewRefs)||e.appViewRefs,o=s?"WFUTILACTION@".concat(s.toUpperCase()):"WFACTION@".concat(ibiz.env.isMob?n:a),c=r.find((e=>e.name===o));return null==c?void 0:c.refAppViewId},hasDeCodeName:function(e,t){const i=Z(t);return C(e[i])},install:function(){const{ibiz:e}=window;e.util=new Pi,e.hub=new Ii,e.register=new X,e.config=new G,e.auth=new Nt,e.engine=new Di,Ne(),Xi(),ibiz.scheduler=new Qi,ibiz.scheduler.triggerFactory.register("ITEMVISIBLE",((e,t)=>new es(e,t))),ibiz.scheduler.triggerFactory.register("ITEMENABLE",((e,t)=>new es(e,t))),ibiz.scheduler.triggerFactory.register("ITEMBLANK",((e,t)=>new es(e,t))),ibiz.scheduler.triggerFactory.register("TIMER",((e,t)=>new ts(e,t))),ibiz.scheduler.triggerFactory.register("CUSTOM",((e,t)=>new Zi(e,t))),ibiz.scheduler.triggerFactory.register("VIEWEVENT",((e,t)=>new ss(e,t))),ibiz.scheduler.triggerFactory.register("CTRLEVENT",((e,t)=>new as(e,t))),ibiz.scheduler.executorFactory.register("SCRIPT",((e,t)=>new Hi(e,t))),ibiz.scheduler.executorFactory.register("APPDEUILOGIC",((e,t)=>new Ki(e,t))),ibiz.scheduler.executorFactory.register("DEUILOGIC",((e,t)=>new Ki(e,t))),ibiz.scheduler.executorFactory.register("APPUILOGIC",((e,t)=>new is(e,t)))},installCommand:Ne,isValueChange:function(e,t){if((b(e)||""===e)&&(b(t)||""===t))return!1;return e!==t},matchMainState:Q,openRedirectView:ce,parseUserParams:function(e){const t={},i={},s={};for(const a in e)if(Object.prototype.hasOwnProperty.call(e,a)){const n=e[a];if(-1!==a.indexOf(".")){const e=a.split(".");switch(e[0]){case"SRFNAVPARAM":Object.assign(t,{[e[1]]:n});break;case"SRFNAVCTX":Object.assign(i,{[e[1]]:n});break;default:Object.assign(s,{key:n})}}}return{navigateContexts:t,navigateParams:i,other:s}},presetUIActionProvider:Xi,registerControlProvider:function(e,t){ibiz.register.register("".concat($t,"_").concat(e),t)},registerEditorProvider:function(e,t){ibiz.register.register("".concat(Zt,"_").concat(e),t)},registerFormDetailProvider:function(e,t){ibiz.register.register("".concat(ti,"_").concat(e),t)},registerGridColumnProvider:function(e,t){ibiz.register.register("".concat(si,"_").concat(e),t)},registerPanelItemProvider:function(e,t){ibiz.register.register("".concat(ni,"_").concat(e.toUpperCase()),t)},registerPortletProvider:function(e,t){ibiz.register.register("".concat(pi,"_").concat(e),t)},registerUIActionProvider:ci,registerViewProvider:function(e,t){ibiz.register.register("".concat(hi,"_").concat(e),t)},strContain:Ee,testCond:de,toLocalOpenWFRedirectView:le,verifyDeRules:we,verifyFormGroupLogic:function e(t,a){if(function(e){return"GROUP"===e.logicType}(a)){const s=a.defdlogics;if(!s||0===s.length)throw new i(a,"发现空逻辑组,逻辑无法正常执行!");let n=!0;if("AND"===a.groupOP){n=void 0===s.find((i=>!e(t,i)))}else if("OR"===a.groupOP){n=void 0!==a.defdlogics.find((i=>e(t,i)))}return a.notMode?!n:n}if(function(e){return"SINGLE"===e.logicType}(a))return de(t[a.defdname.toLowerCase()],a.condOP,a.value);throw new s(a,"未支持的逻辑类型".concat(a.logicType))},verifyPanelGroupLogic:function e(t,a){if(function(e){return"GROUP"===e.logicType}(a)){const s=a.panelItemLogics;if(!s||0===s.length)throw new i(a,"发现空逻辑组,逻辑无法正常执行!");let n=!0;if("AND"===a.groupOP){n=void 0===s.find((i=>!e(t,i)))}else if("OR"===a.groupOP){n=void 0!==a.panelItemLogics.find((i=>e(t,i)))}return a.notMode?!n:n}if(function(e){return"SINGLE"===e.logicType}(a))return de(t[a.dstModelField.toLowerCase()],a.condOp,a.value);throw new s(a,"未支持的逻辑类型".concat(a.logicType))}});var M,W,x=Object.create,S=Object.defineProperty,F=Object.getOwnPropertyDescriptor,B=Object.getOwnPropertyNames,k=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty,z=(M={"../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js"(e,t){function i(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function s(e,t){for(var i,s="",a=0,n=-1,r=0,o=0;o<=e.length;++o){if(o<e.length)i=e.charCodeAt(o);else{if(47===i)break;i=47}if(47===i){if(n===o-1||1===r);else if(n!==o-1&&2===r){if(s.length<2||2!==a||46!==s.charCodeAt(s.length-1)||46!==s.charCodeAt(s.length-2))if(s.length>2){var c=s.lastIndexOf("/");if(c!==s.length-1){-1===c?(s="",a=0):a=(s=s.slice(0,c)).length-1-s.lastIndexOf("/"),n=o,r=0;continue}}else if(2===s.length||1===s.length){s="",a=0,n=o,r=0;continue}t&&(s.length>0?s+="/..":s="..",a=2)}else s.length>0?s+="/"+e.slice(n+1,o):s=e.slice(n+1,o),a=o-n-1;n=o,r=0}else 46===i&&-1!==r?++r:r=-1}return s}var a={resolve:function(){for(var e,t="",a=!1,n=arguments.length-1;n>=-1&&!a;n--){var r;n>=0?r=arguments[n]:(void 0===e&&(e=process.cwd()),r=e),i(r),0!==r.length&&(t=r+"/"+t,a=47===r.charCodeAt(0))}return t=s(t,!a),a?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function(e){if(i(e),0===e.length)return".";var t=47===e.charCodeAt(0),a=47===e.charCodeAt(e.length-1);return 0!==(e=s(e,!t)).length||t||(e="."),e.length>0&&a&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return i(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,t=0;t<arguments.length;++t){var s=arguments[t];i(s),s.length>0&&(void 0===e?e=s:e+="/"+s)}return void 0===e?".":a.normalize(e)},relative:function(e,t){if(i(e),i(t),e===t)return"";if((e=a.resolve(e))===(t=a.resolve(t)))return"";for(var s=1;s<e.length&&47===e.charCodeAt(s);++s);for(var n=e.length,r=n-s,o=1;o<t.length&&47===t.charCodeAt(o);++o);for(var c=t.length-o,l=r<c?r:c,d=-1,h=0;h<=l;++h){if(h===l){if(c>l){if(47===t.charCodeAt(o+h))return t.slice(o+h+1);if(0===h)return t.slice(o+h)}else r>l&&(47===e.charCodeAt(s+h)?d=h:0===h&&(d=0));break}var u=e.charCodeAt(s+h);if(u!==t.charCodeAt(o+h))break;47===u&&(d=h)}var p="";for(h=s+d+1;h<=n;++h)h!==n&&47!==e.charCodeAt(h)||(0===p.length?p+="..":p+="/..");return p.length>0?p+t.slice(o+d):(o+=d,47===t.charCodeAt(o)&&++o,t.slice(o))},_makeLong:function(e){return e},dirname:function(e){if(i(e),0===e.length)return".";for(var t=e.charCodeAt(0),s=47===t,a=-1,n=!0,r=e.length-1;r>=1;--r)if(47===(t=e.charCodeAt(r))){if(!n){a=r;break}}else n=!1;return-1===a?s?"/":".":s&&1===a?"//":e.slice(0,a)},basename:function(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');i(e);var s,a=0,n=-1,r=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var o=t.length-1,c=-1;for(s=e.length-1;s>=0;--s){var l=e.charCodeAt(s);if(47===l){if(!r){a=s+1;break}}else-1===c&&(r=!1,c=s+1),o>=0&&(l===t.charCodeAt(o)?-1==--o&&(n=s):(o=-1,n=c))}return a===n?n=c:-1===n&&(n=e.length),e.slice(a,n)}for(s=e.length-1;s>=0;--s)if(47===e.charCodeAt(s)){if(!r){a=s+1;break}}else-1===n&&(r=!1,n=s+1);return-1===n?"":e.slice(a,n)},extname:function(e){i(e);for(var t=-1,s=0,a=-1,n=!0,r=0,o=e.length-1;o>=0;--o){var c=e.charCodeAt(o);if(47!==c)-1===a&&(n=!1,a=o+1),46===c?-1===t?t=o:1!==r&&(r=1):-1!==t&&(r=-1);else if(!n){s=o+1;break}}return-1===t||-1===a||0===r||1===r&&t===a-1&&t===s+1?"":e.slice(t,a)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var i=t.dir||t.root,s=t.base||(t.name||"")+(t.ext||"");return i?i===t.root?i+s:i+e+s:s}("/",e)},parse:function(e){i(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var s,a=e.charCodeAt(0),n=47===a;n?(t.root="/",s=1):s=0;for(var r=-1,o=0,c=-1,l=!0,d=e.length-1,h=0;d>=s;--d)if(47!==(a=e.charCodeAt(d)))-1===c&&(l=!1,c=d+1),46===a?-1===r?r=d:1!==h&&(h=1):-1!==r&&(h=-1);else if(!l){o=d+1;break}return-1===r||-1===c||0===h||1===h&&r===c-1&&r===o+1?-1!==c&&(t.base=t.name=0===o&&n?e.slice(1,c):e.slice(o,c)):(0===o&&n?(t.name=e.slice(1,r),t.base=e.slice(1,c)):(t.name=e.slice(o,r),t.base=e.slice(o,c)),t.ext=e.slice(r,c)),o>0?t.dir=e.slice(0,o-1):n&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};a.posix=a,t.exports=a}},function(){return W||(0,M[B(M)[0]])((W={exports:{}}).exports,W),W.exports}),G=class{constructor(){this.view={enableDataInfoBar:!0},this.grid={editShowMode:"row",editSaveMode:"cell-blur"},this.appMenu={enableEcho:!1},this.codeList={timeout:36e5}}},X=e("RegisterCenter",class{constructor(){this.providers=new Map}register(e,t){this.providers.set(e,t)}unRegister(e){this.providers.delete(e)}get(e,...t){const i=this.providers.get(e);if(i)return i(...t)}});function j(e,...t){return!e||u(e)?{}:"[object Array]"===Object.prototype.toString.call(e)?H(e,...t):"[object Object]"===Object.prototype.toString.call(e)?K(e,...t):{}}function H(e,...t){const i={};for(const s of e)if(E(s.value)&&!s.rawValue){const e=t.find((e=>!g(e)&&(e[s.value]||Object.prototype.hasOwnProperty.call(e,s.value))));e&&(i[s.key.toLowerCase()]=e[s.value])}else i[s.key.toLowerCase()]=s.value||null;return i}function K(e,...t){const i={},s=/^%(.+)%$/;for(const a in e)if(E(e[a])&&s.test(e[a])){const s=e[a].substring(1,e[a].length-1),n=t.find((e=>Object.prototype.hasOwnProperty.call(e,s)));n&&(i[a.toLowerCase()]=n[s])}else i[a.toLowerCase()]=e[a]||null;return i}function Y(e){const t=[],i=/^%(.+)%$/;for(const s in e){let a=!0,n=e[s];E(e[s])&&i.test(e[s])&&(a=!1,n=e[s].substring(1,e[s].length-1)),t.push({key:s.toLowerCase(),rawValue:a,value:n})}return t}function q(e,t){const i={};if(!e)return i;const s=Array.isArray(e)?e:Y(e),a=t[0];return s.forEach((e=>{const{rawValue:s,value:n}=e;!s&&n&&Object.prototype.hasOwnProperty.call(a,n)&&(i[n]=t.map((e=>e[n])).join(";"))})),i}function $(e,t){if(e){const i=e.find((e=>e.id===t));if(i)return i}return null}function Q(e,t){const{mainStateAppDEFieldIds:i,demainStates:s}=e;if(i&&s){const e=[];return i.forEach((i=>{e.push(t[i])})),s.find((t=>{const{stateValue:i,state2Value:s,state3Value:a}=t;let n=!0;const r=[i,s,a];for(let t=0;t<e.length;t++)if("".concat(e[t])!=="".concat(r[t])){n=!1;break}return n}))}}function J(e,t){const i=ibiz.hub.getApp().model,{demainStateOPPrivs:s,opprivAllowMode:a}=e,n=(null==s?void 0:s.map((e=>e.name)))||[];let r=[];if(a)r=n;else{r=[...i.deopprivs,...t.deopprivs].filter((e=>!n.includes(e.name))).map((e=>e.name))}return r}function Z(e){return e.split(".").pop()}function ee(e,t){var i;return null==(i=t.appDELogics)?void 0:i.find((t=>t.id===e))}function te(e,t){var i,s;const a=[];return null==(i=e.appDEFields)||i.forEach((e=>{"compute"===t&&e.computeAppDEFLogicId?a.push(e.computeAppDEFLogicId):"change"===t&&e.onChangeAppDEFLogicId?a.push(e.onChangeAppDEFLogicId):"default"===t&&e.defaultValueAppDEFLogicId&&a.push(e.defaultValueAppDEFLogicId)})),(null==(s=e.appDELogics)?void 0:s.filter((e=>a.includes(e.id))))||[]}function ie(e,t){var i;return null==(i=e.appDEFields)?void 0:i.find((e=>e.id===t))}async function se(e){const[,,t]=e.split("@");return ibiz.hub.getApp(t).getUIAction(e)}function ae(e){return e.detreeNodes.find((e=>e.rootNode))}function ne(e){const{viewLayoutPanel:t}=e,i=e.controls||[];return t&&i.push(...t.controls||[]),i}function re(e){const{viewLayoutPanel:t}=e,i=e.appViewLogics||[];return t&&i.push(...t.appViewLogics||[]),i}function oe(e){const{viewLayoutPanel:t}=e,i=e.appViewEngines||[];return t&&i.push(...t.appViewEngines||[]),i}async function ce(e,t,s={},a={}){return async function(e,t,s={},a={}){var n;const r=e.appViewNavContexts||[],o=j(r,t,s);t=Object.assign(t.clone(),o);const c=e.appViewNavParams||[],l=j(c,t,s);Object.assign(s,l);const d=e.appDataEntityId,h=Z(d);let u=(null==(n=a.data)?void 0:n[0])||{};t[h]=u[h]||t[h]||s[h];const p=e.getDataAppDEActionId,m=ibiz.hub.getApp(e.appId),f=await m.deService.getService(d);ibiz.loading.showRedirect();try{const e=await f.exec(p||"get",t,s);if(e.ok){u=e.data;let i=u.linkurl;if(i)return t.srfprocessinstanceid&&(i+=";srfprocessinstanceid=".concat(t.srfprocessinstanceid)),ibiz.env.dev&&-1!==i.indexOf("appredirectview?")&&(i=i.slice(i.indexOf("appredirectview?"))),i.startsWith("http://")||i.startsWith("https://")?new Promise((e=>{const t=window.open(i,"_blank");t&&(t.callback=()=>{e({ok:!0,data:[]})})})):i.startsWith("appredirectview?")?(await le(t,i,a),{ok:!0,data:[]}):{ok:!1,data:[]}}}finally{ibiz.loading.hideRedirect()}const w=await ibiz.hub.getAppDataEntity(d,e.appId),I=await async function(e,t,i,s){let a="";const n=t.typeAppDEFieldId;if(n){const{codeName:i}=ie(e,n),a=s[i.toLowerCase()];if(E(a))return"".concat(a);ibiz.log.warn("重定向视图[".concat(t.name,"]自定义类别属性[").concat(n,"]值为空"),s)}const r="".concat(ibiz.env.isMob?"MOB":"","EDITVIEW"),o=i.srfwf;if(E(o))return E(i.wf)?"".concat(r,":").concat(o.toUpperCase(),":").concat(i.wf.toUpperCase()):"".concat(r,":").concat(o.toUpperCase());let c="";if(e.indexTypeAppDEFieldId){const{codeName:t}=ie(e,e.indexTypeAppDEFieldId);c=s[t.toLowerCase()]}if(g(c)&&e.formTypeAppDEFieldId){const{codeName:t}=ie(e,e.formTypeAppDEFieldId);c=s[t.toLowerCase()]}a=E(c)?"".concat(r,":").concat(c.toString().toUpperCase()):"".concat(r);return a}(w,e,s,u),D=I.split(":"),A=2===D.length?I:D.slice(0,2).join(":"),P="".concat(w.name.toUpperCase(),":").concat(I),y=e.redirectAppViewRefs,v=null==y?void 0:y.find((e=>{const t=e.name||e.id;return t===P||t===I||t===A}));if(!v)throw ibiz.log.error("重定向视图引用有:",null==y?void 0:y.map((({refAppViewId:e,name:t,realTitle:i})=>({viewId:e,tag:t,title:i})))),new i(e,"未找到重定向标识[".concat(I,"]或[").concat(P,"]或工作流[").concat(A,"]对应视图"));{const e=v.refAppViewId;if(!e)throw new i(v,"未配置实际引用视图");{const i=await ibiz.commands.execute(Re.TAG,e,t,s,{...a,data:[u]});if(i)return i}}return{ok:!0,data:[]}}(e,t,s,a)}async function le(e,i,s={}){const a=i.lastIndexOf("?"),n=decodeURIComponent(i.substring(a+1,i.length)),r=T.parse(n,{delimiter:";"}),o=r.srfdename||"";if(!o)throw new t("重定向参数缺少实体名称");const c=ibiz.hub.getApp(e.srfappid).deName2DeCodeName.get(o.toUpperCase());if(!c)throw new t("未找到指定实体的codeName: ".concat(o));r[c.toLowerCase()]=r[o.toLowerCase()];const l="".concat(c).concat(ibiz.env.isMob?"Mob":"","RedirectView"),d=await ibiz.hub.getAppView(l);if(delete r.srfdename,"undo"!==r.srfwf){const e=r.processDefinitionKey.split("-")[3],t=e.substring(0,e.lastIndexOf("v")),i=e.substring(e.lastIndexOf("v"));r.wf=t,r.wfVersion=i}r.srfprocessinstanceid&&(e.srfprocessinstanceid=r.srfprocessinstanceid,delete r.srfprocessinstanceid),await ibiz.commands.execute(Re.TAG,d.id,e,r,s)}function de(e,i,s){if(Object.is(i,"IN"))return pe(e,s);if(Object.is(i,"NOTIN"))return!pe(e,s);switch(i){case"EQ":return"".concat(e)==="".concat(s);case"NOTEQ":return"".concat(e)!=="".concat(s);case"LT":return he(e,s)<0;case"LTANDEQ":return he(e,s)<=0;case"GT":return he(e,s)>0;case"GTANDEQ":return he(e,s)>=0;case"ISNULL":return g(e);case"ISNOTNULL":return E(e);case"TESTNULL":return b(e);case"IN":return pe(e,s);case"NOTIN":return!pe(e,s);case"LIKE":return Ee(e,s);case"LEFTLIKE":return Ee(e,s,"start");case"RIGHTLIKE":return Ee(e,s,"end");default:throw new t("值操作:".concat(i,",暂未支持"))}}function he(e,i){const s=Number(e),a=Number(i);if(!Number.isNaN(s)&&!Number.isNaN(a))return ue(s,a);const n=new Date(e).getTime(),r=new Date(i).getTime();if(!Number.isNaN(n)&&!Number.isNaN(r))return ue(n,r);throw new t("".concat(e," 和 ").concat(i," 无法比较大小"))}function ue(e,t){return Number.isNaN(e)&&(e=0),Number.isNaN(t)&&(t=0),e>t?1:e<t?-1:0}function pe(e,i){if(!i||"string"!=typeof i)throw new t("范围比较的条件值不存或者不是字符串");if(e){return i.split(",").includes("".concat(e))}return!1}function Ee(e,t,i){if(!e||!t)return!1;const s="".concat(e).toUpperCase(),a="".concat(t).toUpperCase(),n=s.indexOf(a);switch(i){case"start":return 0===n;case"end":return n+a.length===s.length;default:return-1!==n}}var ge={singleRowReturn:!1,isAsync:!0},me=e("ScriptFunction",class{constructor(e,t,i=ge){this.argKeys=[],this.options=i;const s=this.formatCode(t,i);this.calcArgKeys(e,i);const a=new Function(...this.argKeys,s);this.scriptFn=function(...e){return a.apply({},e)}}formatCode(e,t){let i=e;return t.singleRowReturn&&(i="return (".concat(i,")")),t.isAsync&&(i="return (async function() { ".concat(i,"} )();")),i}calcArgKeys(e,t){const i=t.presetParams?Object.keys(t.presetParams):[];i.push(...e);i.push("document","el","selector","env","appSession","topViewSession","viewSession","context","viewParam","activeData","data","app","topView","parentView","view","parent","util"),this.argKeys=Array.from(new Set(i))}convertArgs(e){const{presetParams:t}=this.options,i=t?V(t,e):e;i.document=document,i.selector=e=>document.getElementsByClassName(e);const s=[];return this.argKeys.forEach((e=>{void 0===i[e]&&this.fillDefaultParams(e,i),s.push(i[e])})),s}fillDefaultParams(e,t){const i=t.view;switch(e){case"util":t.util={message:ibiz.message,notification:ibiz.notification,modal:ibiz.modal,confirm:ibiz.confirm,openView:ibiz.openView};break;case"env":t.env=ibiz.env;break;case"app":t.app=ibiz.hub.controller;break;case"parent":t.parent=null==i?void 0:i.parentView;break;case"topView":t.topView=null==i?void 0:i.getTopView();break;case"parentView":t.parentView=null==i?void 0:i.parentView;break;case"topViewSession":t.topViewSession=null==i?void 0:i.getTopView().session;break;case"viewSession":t.viewSession=null==i?void 0:i.session;break;case"appSession":t.appSession=ibiz.hub.controller.session}}exec(e){const t=this.convertArgs(e);return this.scriptFn(...t)}}),fe=e("ScriptFactory",class{static createScriptFn(e,t,i){return new me(e,t,i)}static execScriptFn(e,t,i){return this.createScriptFn(Object.keys(e),t,i).exec(e)}});function we(e,i,s){const a={isPast:!0,infoMessage:s.ruleInfo};if(function(e){return"GROUP"===e.condType}(s)){const t=s.conds;t&&t.length>0&&(a.isPast=function(e,t,i="AND",s=!1){if(!((null==e?void 0:e.length)>0))return!1;let a="AND"===i;for(let s=0,n=e.length;s<n;s++){const n=t(e[s],s);if("AND"===i){if(!n){a=!1;break}}else if("OR"===i&&n){a=!0;break}}return s?!a:a}(t,(t=>{const{isPast:s,infoMessage:n}=we(e,i,t);return a.infoMessage=n,s}),s.condOp,!!s.notMode),!a.isPast&&("AND"===s.condOp&&s.notMode||"OR"===s.condOp&&!s.notMode)&&(a.infoMessage=s.ruleInfo))}else{e=null==s?void 0:s.defname.toLowerCase();try{if(function(e){return"SIMPLE"===e.condType}(s))a.isPast=!function(e,i,s,a,n,r,o){Object.is(n,"CURTIME")&&(s="".concat(new Date));if(Object.is(n,"ENTITYFIELD")){s=r[s=s?s.toLowerCase():""]?r[s]:s}(b(a)||_(a))&&(a="内容必须符合值规则");const c=de(e,i,s);if(!c&&o)throw new t(a);return!c}(i[e],s.condOp,s.paramValue,s.ruleInfo,s.paramType,i,s.keyCond);else if(function(e){return"VALUERANGE2"===e.condType}(s))a.isPast=!function(e,i,s,a,n,r,o){g(r)&&(r="值必须符合值范围规则");if(g(e)){if(o)throw new t("值为空");return r="值为空",!0}if(Ie(e,/^-?\d*\.?\d+$/,"",o))return!0;const c=Number.parseFloat(e);if(null!==i)if(s){if(c<i){if(o)throw new t(r);return!0}}else if(c<=i){if(o)throw new t(r);return!0}if(null!=a)if(n){if(c>a){if(o)throw new t(r);return!0}}else if(c>=a){if(o)throw new t(r);return!0}return r="",!1}(i[e],s.minValue,s.includeMinValue,s.maxValue,s.includeMaxValue,s.ruleInfo,s.keyCond);else if(function(e){return"REGEX"===e.condType}(s))a.isPast=!Ie(i[e],s.regExCode,s.ruleInfo,s.keyCond);else if(function(e){return"STRINGLENGTH"===e.condType}(s))a.isPast=!function(e,i,s,a,n,r,o){g(r)&&(r="内容长度必须符合范围规则");if(g(e)){if(o)throw new t("值为空");return r="值为空",!0}const c=e.length;if(null!==i)if(s){if(c<i){if(o)throw new t(r);return!0}}else if(c<=i){if(o)throw new t(r);return!0}if(null!==a)if(n){if(c>a){if(o)throw new t(r);return!0}}else if(c>=a){if(o)throw new t(r);return!0}return r="",!1}(i[e],s.minValue,s.includeMinValue,s.maxValue,s.includeMaxValue,s.ruleInfo,s.keyCond);else if(function(e){return"SYSVALUERULE"===e.condType}(s)&&(null==s?void 0:s.sysValueRule)){const{ruleType:n,regExCode:r,scriptCode:o,ruleInfo:c}=s.sysValueRule;if(a.infoMessage=s.ruleInfo||c,"REG"===n)a.isPast=!Ie(i[e],r,a.infoMessage,s.keyCond);else if("SCRIPT"===n){const{isPast:n,infoMessage:r}=function(e,i,s,a,n){g(a)&&(a="值必须符合脚本规则");const r=i;let o="",c=!0;const l=e=>{c=!1,(null==e?void 0:e.length)>0?e.forEach((e=>{(null==e?void 0:e.message)&&(o+=e.message)})):(null==e?void 0:e.message)&&(o=e.message)};try{const t=fe.execScriptFn({value:e,data:r},s,{isAsync:!1});"boolean"==typeof t&&(c=t)}catch(e){ibiz.log.error(e),l(e)}if(a="",!c&&n)throw new t(a);return{isPast:c,infoMessage:o||a}}(i[e],i,o,a.infoMessage,s.keyCond);a.isPast=n,a.infoMessage=r||a.infoMessage}}}catch(e){a.isPast=!1}a.isPast=s.notMode?!a.isPast:a.isPast}return a}function Ie(e,i,s,a){g(s)&&(s="值必须符合正则规则");if(g(e)){if(a)throw new t("值为空");return s="值为空",!0}if(!new RegExp(i).test(e)){if(a)throw new t(s);return!0}return s="",!1}var De=e("LayoutPanelUtil",class{constructor(){this.cache=new Map}register(e,t){this.cache.set(e,t)}get(e){return this.cache.get(e)}fill(e){const{viewLayoutPanel:t}=e;if(!t||!0===t.useDefaultLayout){const t=this.calcLayoutTag(e);if(this.cache.has(t)){const i=R(this.cache.get(t));e.viewLayoutPanel=i,e.appCounterRefs&&(i.appCounterRefs=e.appCounterRefs,delete e.appCounterRefs),e.appViewEngines&&(i.appViewEngines=e.appViewEngines,delete e.appViewEngines),e.appViewLogics&&(i.appViewLogics=e.appViewLogics,delete e.appViewLogics),e.appViewRefs&&(i.appViewRefs=e.appViewRefs,delete e.appViewRefs),e.controls&&(i.controls=e.controls,delete e.controls)}}return e}calcLayoutTag(e){const{viewType:t,viewStyle:i}=e;return"APPINDEXVIEW"===t?this.calcIndexViewLayoutTag(e):"".concat(t,"_").concat(i)}calcIndexViewLayoutTag(e){const{viewType:t,viewStyle:i,blankMode:s,mainMenuAlign:a}=e;let n="";return s?n="BLANK_MODE":a&&(n=a.toUpperCase()),""!==n?"".concat(t,"_").concat(i,"_").concat(n):"".concat(t,"_").concat(i)}});var Ae=e("ControlType",(e=>(e.APP_MENU="APPMENU",e.GRID="GRID",e.FORM="FORM",e.SEARCHFORM="SEARCHFORM",e.TOOLBAR="TOOLBAR",e.DRBAR="DRBAR",e.VIEWPANEL="VIEWPANEL",e.PICKUP_VIEW_PANEL="PICKUPVIEWPANEL",e.DATAVIEW="DATAVIEW",e.TREEGRID="TREEGRID",e.WF_EXPBAR="WFEXPBAR",e.TREEVIEW="TREEVIEW",e.TREE_EXP_BAR="TREEEXPBAR",e.TAB_VIEWPANEL="TABVIEWPANEL",e.DRTAB="DRTAB",e.CHART="CHART",e.REPORT_PANEL="REPORTPANEL",e.LIST="LIST",e.MOB_MDCTRL="MOBMDCTRL",e.MULTI_EDIT_VIEWPANEL="MULTIEDITVIEWPANEL",e.WIZARD_PANEL="WIZARDPANEL",e.UPDATE_PANEL="UPDATEPANEL",e.SEARCHBAR="SEARCHBAR",e.DASHBOARD="DASHBOARD",e.CALENDAR="CALENDAR",e.PANEL="PANEL",e.VIEW_LAYOUT_PANEL="VIEWLAYOUTPANEL",e.MAP="MAP",e.GANTT="GANTT",e.TREE_GRIDEX="TREEGRIDEX",e.KANBAN="KANBAN",e.CALENDAR_EXPBAR="CALENDAREXPBAR",e.CHART_EXPBAR="CHARTEXPBAR",e.DATA_VIEW_EXPBAR="DATAVIEWEXPBAR",e.GANTT_EXPBAR="GANTTEXPBAR",e.GRID_EXPBAR="GRIDEXPBAR",e.LIST_EXPBAR="LISTEXPBAR",e.MAP_EXPBAR="MAPEXPBAR",e.STATE_WIZARD_PANEL="STATEWIZARDPANEL",e.TAB_EXP_PANEL="TABEXPPANEL",e.CUSTOM="CUSTOM",e.CAPTIONBAR="CAPTIONBAR",e))(Ae||{})),Pe=e("ViewType",(e=>(e.APP_INDEX_VIEW="APPINDEXVIEW",e.DE_GRID_VIEW="DEGRIDVIEW",e.DE_EDIT_VIEW="DEEDITVIEW",e.APP_DATA_UPLOAD_VIEW="APPDATAUPLOADVIEW",e.APP_ERROR_VIEW="APPERRORVIEW",e.APP_FILE_UPLOAD_VIEW="APPFILEUPLOADVIEW",e.APP_FUN_PICKUP_VIEW="APPFUNCPICKUPVIEW",e.APP_LOGIN_VIEW="APPLOGINVIEW",e.APP_LOGOUT_VIEW="APPLOGOUTVIEW",e.APP_PANEL_VIEW="APPPANELVIEW",e.APP_PIC_UPLOAD_VIEW="APPPICUPLOADVIEW",e.APP_PORTAL_VIEW="APPPORTALVIEW",e.APP_REDIRECT_VIEW="APPREDIRECTVIEW",e.APP_START_VIEW="APPSTARTVIEW",e.APP_WELCOME_VIEW="APPWELCOMEVIEW",e.APP_WF_ADD_STEP_AFTER_VIEW="APPWFADDSTEPAFTERVIEW",e.APP_WF_ADD_STEP_BEFORE_VIEW="APPWFADDSTEPBEFOREVIEW",e.APP_WF_REDIRECT_VIEW="APPWFREDIRECTVIEW",e.APP_WF_SENDBAC_VIEW="APPWFSENDBACKVIEW",e.APP_WF_STEP_ACTOR_VIEW="APPWFSTEPACTORVIEW",e.APP_WF_STEP_DATA_VIEW="APPWFSTEPDATAVIEW",e.APP_WF_STEP_TRACE_VIEW="APPWFSTEPTRACEVIEW",e.APP_WF_SUPPLY_INFO_VIEW="APPWFSUPPLYINFOVIEW",e.APP_WF_TAKE_ADVICE_VIEW="APPWFTAKEADVICEVIEW",e.DE_CALENDAR_EXP_VIEW="DECALENDAREXPVIEW",e.DE_CALENDAR_VIEW="DECALENDARVIEW",e.DE_CHART_EXP_VIEW="DECHARTEXPVIEW",e.DE_CHART_VIEW="DECHARTVIEW",e.DE_CHART_VIEW9="DECHARTVIEW9",e.DE_CUSTOM_VIEW="DECUSTOMVIEW",e.DE_DATA_VIEW="DEDATAVIEW",e.DE_DATA_VIEW9="DEDATAVIEW9",e.DE_DATAVIEW_EXP_VIEW="DEDATAVIEWEXPVIEW",e.DE_EDIT_VIEW2="DEEDITVIEW2",e.DE_EDIT_VIEW3="DEEDITVIEW3",e.DE_EDIT_VIEW4="DEEDITVIEW4",e.DE_EDIT_VIEW9="DEEDITVIEW9",e.DE_FORM_PICKUP_DATA_VIEW="DEFORMPICKUPDATAVIEW",e.DE_GANTT_EXP_VIEW="DEGANTTEXPVIEW",e.DE_GANTT_VIEW="DEGANTTVIEW",e.DE_GANTT_VIEW9="DEGANTTVIEW9",e.DE_GRID_EXP_VIEW="DEGRIDEXPVIEW",e.DE_GRID_VIEW2="DEGRIDVIEW2",e.DE_GRID_VIEW4="DEGRIDVIEW4",e.DE_GRID_VIEW8="DEGRIDVIEW8",e.DE_GRID_VIEW9="DEGRIDVIEW9",e.DE_HTML_VIEW="DEHTMLVIEW",e.DE_INDEX_PICKUP_DATA_VIEW="DEINDEXPICKUPDATAVIEW",e.DE_INDEX_VIEW="DEINDEXVIEW",e.DE_KANBAN_VIEW="DEKANBANVIEW",e.DE_KANBAN_VIEW9="DEKANBANVIEW9",e.DE_LIST_EXP_VIEW="DELISTEXPVIEW",e.DE_LIST_VIEW="DELISTVIEW",e.DE_LIST_VIEW9="DELISTVIEW9",e.DE_MAP_EXP_VIEW="DEMAPEXPVIEW",e.DE_MAP_VIEW="DEMAPVIEW",e.DE_MAP_VIEW9="DEMAPVIEW9",e.DE_MD_CUSTOM_VIEW="DEMDCUSTOMVIEW",e.DE_MEDITVIEW9="DEMEDITVIEW9",e.DE_MOB_CALENDAR_EXP_VIEW="DEMOBCALENDAREXPVIEW",e.DE_MOB_CALENDAR_VIEW="DEMOBCALENDARVIEW",e.DE_MOB_CALENDAR_VIEW9="DEMOBCALENDARVIEW9",e.DE_MOB_CHART_EXP_VIEW="DEMOBCHARTEXPVIEW",e.DE_MO_BCHART_VIEW="DEMOBCHARTVIEW",e.D_EMOB_CHART_VIEW9="DEMOBCHARTVIEW9",e.DE_MOB_CUSTOM_VIEW="DEMOBCUSTOMVIEW",e.DE_MOB_DATA_VIEW="DEMOBDATAVIEW",e.DE_MOB_DATA_VIEW_EXP_VIEW="DEMOBDATAVIEWEXPVIEW",e.DE_MOB_EDIT_VIEW="DEMOBEDITVIEW",e.DE_MOB_EDIT_VIEW3="DEMOBEDITVIEW3",e.DE_MOB_EDITVIEW9="DEMOBEDITVIEW9",e.DE_MOB_FORM_PICKUP_MDVIEW="DEMOBFORMPICKUPMDVIEW",e.DE_MOB_GANTT_EXP_VIEW="DEMOBGANTTEXPVIEW",e.DE_MOB_GANTT_VIEW="DEMOBGANTTVIEW",e.DE_MOB_GANTT_VIEW9="DEMOBGANTTVIEW9",e.DE_MOB_HTML_VIEW="DEMOBHTMLVIEW",e.DE_MOB_INDEX_PICKUP_MDVIEW="DEMOBINDEXPICKUPMDVIEW",e.DE_MOB_LIST_EXP_VIEW="DEMOBLISTEXPVIEW",e.DE_MOB_LIST_VIEW="DEMOBLISTVIEW",e.DE_MOB_MAP_VIEW="DEMOBMAPVIEW",e.DE_MOB_MAP_VIEW9="DEMOBMAPVIEW9",e.DE_MOB_MDVIEW="DEMOBMDVIEW",e.DE_MOB_MDVIEW9="DEMOBMDVIEW9",e.DE_MOB_MEDIT_VIEW9="DEMOBMEDITVIEW9",e.DE_MOB_MPICKUP_VIEW="DEMOBMPICKUPVIEW",e.DE_MOB_OPT_VIEW="DEMOBOPTVIEW",e.DE_MOB_PANEL_VIEW="DEMOBPANELVIEW",e.DE_MOB_PANEL_VIEW9="DEMOBPANELVIEW9",e.DE_MOB_PICKUP_LIST_VIEW="DEMOBPICKUPLISTVIEW",e.DE_MOB_PICKUP_MDVIEW="DEMOBPICKUPMDVIEW",e.DE_MOB_PICKUP_TREE_VIEW="DEMOBPICKUPTREEVIEW",e.DE_MOB_PICKUP_VIEW="DEMOBPICKUPVIEW",e.DE_MOB_PORTAL_VIEW="DEMOBPORTALVIEW",e.DE_MOB_PORTAL_VIEW9="DEMOBPORTALVIEW9",e.DE_MOB_REDIRECT_VIEW="DEMOBREDIRECTVIEW",e.DE_MOB_REPORT_VIEW="DEMOBREPORTVIEW",e.DE_MOB_TAB_EXP_VIEW="DEMOBTABEXPVIEW",e.DE_MOB_TAB_EXP_VIEW9="DEMOBTABEXPVIEW9",e.DE_MOB_TAB_SEARCH_VIEW="DEMOBTABSEARCHVIEW",e.DE_MOB_TAB_SEARCH_VIEW9="DEMOBTABSEARCHVIEW9",e.DE_MOB_TREE_EXP_VIEW="DEMOBTREEEXPVIEW",e.DEMOBTREEEXPVIEW9="DEMOBTREEEXPVIEW9",e.DE_MOB_TREE_VIEW="DEMOBTREEVIEW",e.DE_MOB_WFACTION_VIEW="DEMOBWFACTIONVIEW",e.DE_MOB_WF_DATA_REDIRECT_VIEW="DEMOBWFDATAREDIRECTVIEW",e.DE_MOB_WF_DYNAACTIO_NVIEW="DEMOBWFDYNAACTIONVIEW",e.DE_MOB_WFDYNA_EDIT_VIEW="DEMOBWFDYNAEDITVIEW",e.DE_MOB_WF_DYNA_EDIT_VIEW3="DEMOBWFDYNAEDITVIEW3",e.DE_MOB_WF_DYNA_EXP_MDVIEW="DEMOBWFDYNAEXPMDVIEW",e.DE_MO_BWF_DYNA_START_VIEW="DEMOBWFDYNASTARTVIEW",e.DE_MOB_WF_EDIT_VIEW="DEMOBWFEDITVIEW",e.DE_MOB_WF_EDIT_VIEW3="DEMOBWFEDITVIEW3",e.DE_MOB_WF_MDVIEW="DEMOBWFMDVIEW",e.DE_MOB_WF_PROXY_RESULT_VIEW="DEMOBWFPROXYRESULTVIEW",e.DE_MOB_WF_PROXY_START_VIEW="DEMOBWFPROXYSTARTVIEW",e.DE_MOB_WF_START_VIEW="DEMOBWFSTARTVIEW",e.DE_MOB_WIZARD_VIEW="DEMOBWIZARDVIEW",e.DE_MPICKUP_VIEW="DEMPICKUPVIEW",e.DE_MPICKUP_VIEW2="DEMPICKUPVIEW2",e.DE_OPT_VIEW="DEOPTVIEW",e.DE_PANEL_VIEW="DEPANELVIEW",e.DE_PANEL_VIEW9="DEPANELVIEW9",e.DE_PICKUP_DATA_VIEW="DEPICKUPDATAVIEW",e.DE_PICKUP_GRID_VIEW="DEPICKUPGRIDVIEW",e.DE_PICKUP_TREE_VIEW="DEPICKUPTREEVIEW",e.DE_PICKUP_VIEW="DEPICKUPVIEW",e.DE_PICKUP_VIEW2="DEPICKUPVIEW2",e.DE_PICK_UP_VIEW3="DEPICKUPVIEW3",e.DE_PORTAL_VIEW="DEPORTALVIEW",e.DE_PORTAL_VIEW9="DEPORTALVIEW9",e.DE_REDIRECT_VIEW="DEREDIRECTVIEW",e.DE_REPORT_VIEW="DEREPORTVIEW",e.DE_TAB_EXP_VIEW="DETABEXPVIEW",e.DE_TAB_EXP_VIEW9="DETABEXPVIEW9",e.DE_TAB_SEARCH_VIEW="DETABSEARCHVIEW",e.DE_TAB_SEARCH_VIEW9="DETABSEARCHVIEW9",e.DE_TREE_EXP_VIEW="DETREEEXPVIEW",e.DE_TREE_EXP_VIEW2="DETREEEXPVIEW2",e.DE_TREE_EXP_VIEW3="DETREEEXPVIEW3",e.DE_TREE_GRID_EXVIEW="DETREEGRIDEXVIEW",e.DE_TREE_GRID_EXVIEW9="DETREEGRIDEXVIEW9",e.DE_TREE_GRID_VIEW="DETREEGRIDVIEW",e.DE_TREE_GRID_VIEW9="DETREEGRIDVIEW9",e.DE_TREE_VIEW="DETREEVIEW",e.DE_TREE_VIEW9="DETREEVIEW9",e.DE_WF_ACTION_VIEW="DEWFACTIONVIEW",e.DE_WF_DATA_REDIRECT_VIEW="DEWFDATAREDIRECTVIEW",e.DE_WF_DYNA_ACTION_VIEW="DEWFDYNAACTIONVIEW",e.DE_WF_DYNA_EDIT_VIEW="DEWFDYNAEDITVIEW",e.DE_WF_DYNA_EDIT_VIEW3="DEWFDYNAEDITVIEW3",e.DE_WF_DYNA_EXP_GRID_VIEW="DEWFDYNAEXPGRIDVIEW",e.DE_WF_DYNA_START_VIEW="DEWFDYNASTARTVIEW",e.DE_WF_EDIT_PROXY_DATA_VIEW="DEWFEDITPROXYDATAVIEW",e.DE_WF_EDIT_VIEW="DEWFEDITVIEW",e.DE_WF_EDIT_VIEW2="DEWFEDITVIEW2",e.DE_WF_EDIT_VIEW3="DEWFEDITVIEW3",e.DE_WF_EDIT_VIEW9="DEWFEDITVIEW9",e.DE_WF_EXP_VIEW="DEWFEXPVIEW",e.DE_WF_GRID_VIEW="DEWFGRIDVIEW",e.DE_WF_PROXY_DATA_VIEW="DEWFPROXYDATAVIEW",e.DE_WF_PROXY_RESULT_VIEW="DEWFPROXYRESULTVIEW",e.DE_WF_PROXY_START_VIEW="DEWFPROXYSTARTVIEW",e.DE_WF_START_VIEW="DEWFSTARTVIEW",e.DE_WIZARD_VIEW="DEWIZARDVIEW",e))(Pe||{})),ye=e("ViewMode",(e=>(e.ROUTE="ROUTE",e.MODAL="MODAL",e.DRAWER="DRAWER",e.EMBED="EMBED",e.POPOVER="POPOVER",e))(ye||{})),ve=e("SysUIActionTag",(e=>(e.NEW="New",e.EDIT="Edit",e.REFRESH="Refresh",e.EXIT="Exit",e.SAVE_AND_EXIT="SaveAndExit",e.SAVE_AND_NEW="SaveAndNew",e.SAVE="Save",e.SAVE_ROW="SaveRow",e.REMOVE="Remove",e.REMOVE_AND_EXIT="RemoveAndExit",e.NEW_ROW="NewRow",e.TOGGLE_FILTER="ToggleFilter",e.IMPORT="Import",e.EXPORT_EXCEL="ExportExcel",e.SAVE_AND_START="SaveAndStart",e.VIEW_WF_STEP="ViewWFStep",e.NO="No",e.YES="Yes",e.CANCEL="Cancel",e.OK="Ok",e.SEARCH="Search",e.FINISH="Finish",e.NEXT_STEP="NextStep",e.PREV_STEP="PrevStep",e.ADD_SELECTION="AddSelection",e.REMOVE_SELECTION="RemoveSelection",e.REMOVE_ALL="RemoveAll",e.ADD_ALL="AddAll",e.LOGOUT="Logout",e.LOGIN="Login",e.CANCEL_CHANGES="CancelChanges",e.COPY="Copy",e.VIEW="View",e.TOGGLE_ROW_EDIT="ToggleRowEdit",e.REFRESH_ALL="RefreshAll",e.REFRESH_PARENT="RefreshParent",e.LOAD_MORE="LoadMore",e))(ve||{})),Te=e("StudioViewEvents",class{});Te.onViewMounted="onMounted",Te.onViewDestroyed="onDestroyed";var Ce=e("StudioPanelEvents",class{});Ce.onClick="onClick",Ce.onChange="onChange",Ce.onEnter="onEnter",Ce.onLeave="onLeave";var be=e("StudioControlEvents",class{});be.onBeforeLoad="onBeforeLoad",be.onLoadSuccess="onLoadSuccess",be.onLoadError="onLoadError",be.onBeforeLoadDraft="onBeforeLoadDraft",be.onLoadDraftSuccess="onLoadDraftSuccess",be.onLoadDraftError="onLoadDraftError",be.onBeforeSave="onBeforeSave",be.onSaveSuccess="onSaveSuccess",be.onSaveError="onSaveError",be.onBeforeRemove="onBeforeRemove",be.onRemoveSuccess="onRemoveSuccess",be.onRemoveError="onRemoveError",be.CLICK="onClick";var Ve=e("Modal",class{constructor(e){this.mode="EMBED",this.viewUsage=4,this.hooks={shouldDismiss:new m,beforeDismiss:new m},this._dismiss=e=>{ibiz.log.error("外部关闭能力未注册",e)},e.mode&&(this.mode=e.mode),e.routeDepth&&(this.routeDepth=e.routeDepth),e.viewUsage&&(this.viewUsage=e.viewUsage),e.dismiss&&(this._dismiss=e.dismiss)}injectDismiss(e){this._dismiss=e}async dismiss(e={ok:!1,data:[]}){const t={allowClose:!0};return await this.hooks.shouldDismiss.call(t),t.allowClose?(await this.hooks.beforeDismiss.call(e),this._dismiss(e),this.destroy(),!0):(ibiz.log.debug("shouldDismiss结果为false,关闭中断。"),!1)}destroy(){this.hooks.shouldDismiss.clear(),this.hooks.beforeDismiss.clear()}});var _e=class e{constructor(){ibiz.commands.register(e.TAG,this.exec.bind(this))}async exec(e,i,a={},n={}){const r=await ibiz.hub.config.view.get(e);if(!r)throw new t("应用视图[".concat(e,"]不存在"));if(i.srfkey&&r.appDataEntityId){i[Z(r.appDataEntityId)]=i.srfkey,i.srfkey=void 0}if(r.redirectView){return ce(await ibiz.hub.getAppView(e),i,a,n)}const{openMode:o="INDEXVIEWTAB"}=r;switch(n.openMode||o){case"INDEXVIEWTAB":return n.noWaitRoute?void this.openIndexViewTab(r,i,a):this.openIndexViewTab(r,i,a);case"POPUP":throw new s(r,"未支持的视图打开模式: POPUP");case"POPUPMODAL":return this.openModal(r,i,a);case"POPUPAPP":throw new s(r,"未支持的视图打开模式: POPUPAPP");case"POPOVER":return this.openPopover(r,n.event,i,a);case"DRAWER_LEFT":case"DRAWER_RIGHT":case"DRAWER_TOP":case"DRAWER_BOTTOM":return this.openDrawer(r,i,a);case"USER":return this.openUserCustom(r,i,a);default:return this.openIndexViewTab(r,i,a)}}openIndexViewTab(e,t,i={}){return ibiz.openView.root(e.id,t,i)}async openModal(e,t,i={}){return ibiz.openView.modal(e.id,t,i)}async openPopover(e,i,s,a={}){if(!i)throw new t("气泡打开缺少event");return ibiz.openView.popover(e.id,i,s,a)}async openDrawer(e,t,i={}){return ibiz.openView.drawer(e.id,t,i)}async openUserCustom(e,t,i={}){return ibiz.openView.custom(e.id,t,i)}};_e.TAG="ibiz.app-view.open";var Re=e("OpenAppViewCommand",_e),Le=class e{constructor(){ibiz.commands.register(e.TAG,this.exec.bind(this))}async exec(e,i,a={},n={}){const r=ibiz.hub.getApp(i.srfappid).getAppFunc(e);if(!r)throw new t("找不到叫".concat(e,"的应用功能"));const{navigateContexts:o,navigateParams:c,appFuncType:l}=r,d=i.clone();Object.assign(d,j(o,i,a));const h=j(c,i,a);switch(l){case"APPVIEW":return this.openAppView(r,d,h,n);case"OPENHTMLPAGE":return this.openHtmlPage(r);case"PDTAPPFUNC":return this.openPdAppFunc(r,d,h);case"JAVASCRIPT":return this.executeJavaScript(r,d,h);case"CUSTOM":return this.custom(r,d,h);default:throw new s(r,"未支持的应用功能类型: ".concat(l))}}async openAppView(e,i,s,a){if(!e.appViewId)throw new t("应用视图[".concat(e.appViewId,"]不存在"));return ibiz.commands.execute(Re.TAG,e.appViewId,i,s,a)}openHtmlPage(e){const t=e.htmlPageUrl;window.open(t,"_blank")}openPdAppFunc(e,i,s){throw ibiz.log.warn("openPdAppFunc",e,i,s),new t("未实现")}executeJavaScript(e,i,s){throw ibiz.log.warn("executeJavaScript",e,i,s),new t("未实现")}custom(e,i,s){throw ibiz.log.warn("custom",e,i,s),new t("未实现")}};Le.TAG="ibiz.app-func.exec";var Oe=e("AppFuncCommand",Le);function Ne(){new Oe,new Re}var Me=e("AppCounter",class{constructor(e){this.model=e,this.destroyed=!1,this.context=a.create(),this.params={},this.evt=new f,this.data={}}get isDestroyed(){return this.destroyed}async init(e,t){this.setParams(e,t),this.appDataEntityId=this.model.appDataEntityId;const s=this.model.getAppDEActionId;if(!s)throw new i(this.model,"未找到获取计数器行为!");this.action=s,this.interval(),await this.load()}setParams(e,t){e&&(this.context=R(e)),t&&(this.params=R(t))}interval(){this.destroyInterval(),this.intervalTimer=setInterval((()=>{this.evt.getSize("change")>0&&this.load()}),this.model.timer||6e3)}destroyInterval(){this.intervalTimer&&(clearInterval(this.intervalTimer),this.intervalTimer=null)}async load(){const e=ibiz.hub.getApp(this.context.srfappid),t=await e.deService.exec(this.appDataEntityId,this.action,this.context,this.params);return t.ok&&(this.data=t.data,this.evt.emit("change",this.data)),this.data}refresh(e,t){return this.setParams(e,t),this.load()}onChange(e,t=!0){this.evt.on("change",e),t&&E(this.data)&&e(this.data)}offChange(e){this.evt.off("change",e)}getCounter(e){return this.data[e.toLowerCase()]||0}destroy(){this.destroyed=!0,this.context.destroy(),this.destroyInterval(),this.evt.reset()}}),We=class{constructor(){this.psModelGroupCondBase=null}parse(e){if(e instanceof Array){const t=this.createPSModelGroupCond();t.parse(e),this.psModelGroupCondBase=t}}testSingleCond(e,t,i){try{if("ISNULL"===e)return null==t;if("ISNOTNULL"===e)return null!=t;if("EQ"===e||"ABSEQ"===e||"GT"===e||"GTANDEQ"===e||"LT"===e||"LTANDEQ"===e||"NOTEQ"===e){let s=-1;if(t==i?s=0:t>i&&(s=1),"EQ"===e||"ABSEQ"===e)return 0===s;if("GT"===e)return s>0;if("GTANDEQ"===e)return s>=0;if("LT"===e)return s<0;if("LTANDEQ"===e)return s<=0;if("NOTEQ"===e)return 0!==s}if("LIKE"===e)return null!=t&&null!=i&&-1!==t.toString().toUpperCase().indexOf(i.toString().toUpperCase());if("LEFTLIKE"===e)return null!=t&&null!=i&&0===t.toString().toUpperCase().indexOf(i.toString().toUpperCase())}catch(e){ibiz.log.error(e)}return!1}getPSModelGroupCondBase(){return this.psModelGroupCondBase}},xe=class{constructor(){this.strCondOp=null}getCondOp(){return this.strCondOp}setCondOp(e){this.strCondOp=e}},Se=class extends xe{parse(e){const t=e.length;let i=!0,s=!1,a=!1;for(let n=0;n<t;n++)if(i){const t=e[n];this.setCondOp(t),i=!1,s=!0}else if(s){const t=e[n];this.setParam(t),s=!1,a=!0}else if(a){const t=e[n];if(t instanceof Object&&!(t instanceof Array)){const e=t;null!=e.type&&this.setValueType(e.type.toString()),null!=e.value&&this.setValue(e.value.toString())}else this.setValue(t);break}}getValueType(){return this.strValueType}setValueType(e){this.strValueType=e}getValue(){return this.strValue}setValue(e){this.strValue=e}getParamType(){return this.strParamType}setParamType(e){this.strParamType=e}getParam(){return this.strParam}setParam(e){this.strParam=e}},Fe=class e extends xe{constructor(){super(...arguments),this.childCondList=[],this.bNotMode=!1}parse(i){const s=i.length;let a=!0,n=!0,r=!1;for(let o=0;o<s;o++){if(a&&n){if("!"===i[o]){this.setNotMode(!0),a=!1;continue}}if(n){const e=i[o];this.setCondOp(e),n=!1,a=!1,r=!0}else if(r){const s=i[o];if(!(s instanceof Array))throw new t("值必须为数组");s.forEach((t=>{if(t.length>0){const i=t[0].toString();if("!"===i||"OR"===i||"AND"===i){const i=new e;i.parse(t),this.childCondList.push(i)}else{const e=new Se;e.parse(t),this.childCondList.push(e)}}}))}}}setNotMode(e){this.bNotMode=e}isNotMode(){return this.bNotMode}getChildPSModelCondBases(){return this.childCondList}},Be=class extends Fe{},ke=class extends Se{},Ue=class e extends We{test(e,t){return this.testCond(this.getPSModelGroupCondBase(),e,t)}testCond(t,i,s){if(t instanceof Fe){const e=t.getChildPSModelCondBases();if(null==e||_(e))return!t.isNotMode();const a="AND"===t.getCondOp();let n=a;for(let t=0;t<e.length;t++){const r=e[t];if(this.testCond(r,i,s)){if(!a){n=!0;break}}else if(a){n=!1;break}}return t.isNotMode()?!n:n}if(t instanceof Se){_(t.getParam())&&ibiz.log.warn("没有指定属性名称",t);const a=i[t.getParam().toLowerCase()];let n=null;const r=t.getValueType(),o=t.getValue();return null==r||_(r)?n=t.getValue():(_(o)&&ibiz.log.warn("没有指定上下文参数名称"),e.PARAMTYPE_WEBCONTEXT===r?n=s.data[o.toLowerCase()]:e.PARAMTYPE_DATACONTEXT===r&&(n=s.getValue(o.toLowerCase()))),this.testSingleCond(t.getCondOp(),a,n)}return ibiz.log.warn("无法识别的条件对象",t),!1}createPSModelSingleCond(){return new ke}createPSModelGroupCond(){return new Be}};Ue.PARAMTYPE_DATACONTEXT="DATACONTEXT",Ue.PARAMTYPE_WEBCONTEXT="WEBCONTEXT";var ze=e("PSDEDQCondEngine",Ue);e("DEDQCondUtil",class{static getCond(e){if(this.map.has(e))return this.map.get(e);const t=e.dedqgroupConditions;if(t){const i=new ze;return i.parse(["OR",this.calcCond(t)]),this.map.set(e,i),i}return null}static calcCond(e){const t=[];return e.forEach((e=>{const i=[];if("GROUP"===e.condType){const t=e;t.notMode&&i.push("!"),i.push(e.condOp);const s=t.dedqconditions;if(s){const e=this.calcCond(s);i.push(e)}}else{if("SINGLE"!==e.condType)throw new s(e,"暂未支持的查询条件类型: ".concat(e.condType));{const t=e;i.push(t.fieldName),t.condValue||i.push("")}}t.push(i)})),t}}).map=new WeakMap;var Ge=e("DynamicCodeListCache",class{constructor(e){this.cache=new Map,this.isPredefined=!1,this.codeList=e}async init(){return this.initPromise=(async()=>{const{predefinedType:e}=this.codeList;if(e){if(this.isPredefined=!0,!["OPERATOR","RUNTIME"].includes(e))throw new s(this.codeList,"预定义类型".concat(e,"暂不支持"))}else this.initPromise=void 0})(),this.initPromise}convertData(e){const t={},{valueAppDEFieldId:i,textAppDEFieldId:s}=this.codeList,a=i?e[i]:e.srfkey;return t.id=a,t.value=a,t.text=s?e[s]:e.srfmajortext,Object.freeze(t)}async load(e={},t={}){const s=ibiz.hub.getApp(e.srfappid);if(this.isPredefined){t.size||(t.size=1e4);const e=await s.net.get("/dictionaries/codelist/".concat(this.codeList.codeName),t);return Object.freeze(e.data.items)}const{appDataEntityId:a,appDEDataSetId:n}=this.codeList;if(!a)throw new i(this.codeList,"未配置应用实体");if(!n)throw new i(this.codeList,"未配置数据集");const r=await s.deService.exec(a,n,e,{},t);let o=[];return r.data.length&&(o=r.data.map((e=>this.convertData(e)))),o}async get(e={},t={}){if(this.initPromise&&await this.initPromise,!this.codeList.enableCache)return this.load(e,t);const i=JSON.stringify(e)+JSON.stringify(t);if(this.cache.has(i)){const e=this.cache.get(i);if(e.expirationTime>(new Date).getTime())return e.promise?e.promise:e.items;this.cache.delete(i)}const s=this.load(e,t),{cacheTimeout:a}=this.codeList,n=-1===a||b(a)?ibiz.config.codeList.timeout:this.codeList.cacheTimeout,r={expirationTime:(new Date).getTime()+n,promise:s};this.cache.set(i,r);const o=await s;return r.items=o,delete r.promise,o}});function Xe(e,i){if(null!=i){const{srfkey:e}=i;if(!b(e)&&!_(e))return!0}throw new t("执行「".concat(e,"」不存在「srfkey」无法处理"))}function je(e,i){const{srfsessionid:s}=i;if(!b(s)&&!_(s))return!0;throw new t("执行「".concat(e,"」不存在「srfsessionid」无法处理"))}var He=e("DECache",class{constructor(){this.cacheMap=new Map}forceAdd(e,t){const i=this.getCacheByTag(e).get(t.srfkey);i&&(i.assign(t),ibiz.log.warn("forceAdd",t.srfkey,t))}forceUpdate(e,t){this.getCacheByTag(e).set(t.srfkey,R(t)),ibiz.log.warn("forceUpdate",t.srfkey,t)}forceDelete(e,t){this.getCacheByTag(e).delete(t),ibiz.log.warn("forceDelete",t)}add(e,t){try{je("add",e),(b(t.srfkey)||_(t.srfkey))&&(t.srfkey=w()),t.srftempdate=(new Date).getTime();return this.getCacheByTag(e).set(t.srfkey,R(t)),ibiz.log.warn("add",t.srfkey,t),t}catch(e){return ibiz.log.error(e),null}}get(e,t){try{je("get",e);const i=this.getCacheByTag(e).get(t);return ibiz.log.warn("get",t,i),R(i)}catch(e){return ibiz.log.error(e),null}}update(e,t){try{je("update",e),Xe("update",t),t.srftempdate=(new Date).getTime();const i=this.getCacheByTag(e),s=i.get(t.srfkey);if(s)return s.assign(t),i.set(t.srfkey,s),ibiz.log.warn("update",t.srfkey,t),R(s);throw new Error("数据不存在,无法更新!")}catch(e){return ibiz.log.error(e),null}}delete(e,t){try{je("delete",e);const i=this.getCacheByTag(e),s=t;if(i.has(s)){const e=i.get(s);return e.srftempdate=(new Date).getTime(),i.delete(s),ibiz.log.warn("delete",s),e}return null}catch(e){return ibiz.log.error(e),null}}createBatch(e,t){try{je("add",e);const i=this.getCacheByTag(e);for(let e=0;e<t.length;e++){const s=t[e];(b(s.srfkey)||_(s.srfkey))&&(s.srfkey=w()),s.srftempdate=(new Date).getTime();const a=R(s);i.set(s.srfkey,a),t[e]=a,ibiz.log.warn("add",s.srfkey,s)}return t}catch(e){ibiz.log.error(e)}return[]}updateBatch(e,t){try{je("update",e);const i=this.getCacheByTag(e);for(let e=0;e<t.length;e++){const s=t[e];Xe("update",s),s.srftempdate=(new Date).getTime();const a=i.get(s.srfkey);if(!a)throw new Error("数据[".concat(s.srfdename,"-").concat(s.srfmajortext,"(").concat(s.srfkey,")]不存在,无法更新!"));a.assign(s),i.set(s.srfkey,a),ibiz.log.warn("update",s.srfkey,s),t[e]=R(a)}return t}catch(e){return ibiz.log.error(e),null}}deleteBatch(e,t){try{je("delete",e)}catch(e){return ibiz.log.error(e),t}const i=this.getCacheByTag(e),s=[];for(let e=0;e<t.length;e++){const a=t[e];i.has(a)||s.push(a)}if(s.length>0)throw new Error("未找到以下数据「".concat(s.join("、"),"」,无法删除!"));for(let e=0;e<t.length;e++){const s=t[e];i.delete(s),ibiz.log.warn("delete",s)}return[]}checkData(e,t){return-1!==this.getList(e).findIndex((e=>e.srfkey===t))}getList(e){try{je("getList",e);const t=this.getCacheByTag(e);if(!t)return[];const i=t.values();return Array.from(i)}catch(e){return ibiz.log.error(e),[]}}generatePred(e={}){const t={};e.srfkey&&(t.srfkey=L(e.srfkey)),delete e.srfkey;for(const i in e)if(Object.prototype.hasOwnProperty.call(e,i)){const s=e[i];t[i]=L(s)}return O(t)}clear(e){const t=e.srfsessionid;this.cacheMap.size>0&&this.cacheMap.delete(t)}getCacheByTag(e){const t=e.srfsessionid;return this.cacheMap.has(t)||this.cacheMap.set(t,new Map),this.cacheMap.get(t)}}),Ke=new RegExp("(?<=\\$\\{)(.*?)(?=\\})","g");function Ye(e,t){const i=(t.requestPaths||[]).map((e=>({path:e,keys:e.match(Ke)||[]}))).filter((t=>{const{keys:i}=t;return 0===i.length||i.every(((t,s)=>s===i.length-1||null!=e[t]))})).sort(((e,t)=>t.keys.length-e.keys.length));if(i.length>0)return i[0]}function qe(e,t){const i=Ye(e,t);if(i){if(i.keys.length>0){let{path:t}=i;return i.keys.forEach(((s,a)=>{t=a===i.keys.length-1?t.replace(new RegExp("/[^/]+/\\$\\{".concat(s,"\\}")),""):t.replace("${".concat(s,"}"),e[s])})),t}return i.path}return""}var $e=e("SearchFilter",class{constructor(e,t){if(this.page=0,this.size=1e3,this.data={},this.sortField="srfordervalue",this.sortMode="ASC",this.context=e,t){if(b(t.page)||_(t.page)||(this.page=t.page),b(t.size)||_(t.size)||(this.size=t.size),b(t.query)||_(t.query)||(this.query=t.query),!b(t.sort)&&!_(t.sort)){const e=t.sort.split(",");e.length>=1&&([this.sortField]=e),e.length>=2&&(this.sortMode=e[1].toUpperCase())}b(t.srfparentkey)||_(t.srfparentkey)||(this.srfparentkey=t.srfparentkey),b(t.srfparentdename)||_(t.srfparentdename)||(this.srfparentdename=t.srfparentdename),this.data={...t},delete this.data.page,delete this.data.size,delete this.data.query,delete this.data.sort,delete this.data.srfparentkey,delete this.data.srfparentdename}}getValue(e){return this.data[e]?this.data[e]:this.context[e]}}),Qe=e("CodeListService",class{constructor(e){this.appModel=e,this.allCodeLists=new Map,this.cache=new Map}getStatic(e){const t=e.codeName;if(this.cache.has(t))return this.cache.get(t);const i=e.codeItems;let s=[];return(null==i?void 0:i.length)&&(s=this.formatStaticItems(i,e.codeItemValueNumber)),this.cache.set(t,Object.freeze(s)),s}setCodeList(e){const{id:t,codeName:i}=e;this.allCodeLists.set(t,e),this.allCodeLists.set(i,e)}getCodeList(e){return this.allCodeLists.get(e)}formatStaticItems(e,t){return e.map((e=>{var i;let s=e.text;e.textLanguageRes&&(s=ibiz.i18n.t(e.textLanguageRes.lanResTag,e.textLanguageRes.defaultContent));const a={text:s,value:t?Number(e.value):e.value,color:e.color,id:e.codeName};return(null==(i=e.codeItems)?void 0:i.length)&&(a.children=this.formatStaticItems(e.codeItems,t)),Object.freeze(a)}))}async getDynamicCodeList(e,t={},i={}){let s;const a=e.codeName;return this.cache.has(a)?s=this.cache.get(a):(s=new Ge(e),this.cache.set(a,s),await s.init()),s.get(t,i)}async get(e,i,s){const a=this.allCodeLists.get(e);if(!a)throw new t("找不到".concat(e,"代码表"));return"STATIC"===a.codeListType?this.getStatic(a):"DYNAMIC"===a.codeListType?this.getDynamicCodeList(a,i,s):[]}}),Je=e("CounterService",class{static async getCounter(e,t,i){const s=e.id;if(this.counterMap.has(s)){const e=this.counterMap.get(s);if(!1===e.isDestroyed)return e;this.counterMap.delete(s)}const a=new Me(e);return await a.init(t,i),this.counterMap.set(s,a),a}static async getCounterByRef(e,t,a){const{appCounter:n}=e;if(!n)throw new i(e,"未配置应用计数器!");if("CUSTOM"===n.counterType)throw new s(n,"未支持自定义计数器");return this.getCounter(n,t,a)}});Je.counterMap=new Map;var Ze=e("WorkFlowService",class{constructor(e){this.model=e,this.commonBaseUrl="",this.app=ibiz.hub.getApp(e.appId);const t=ibiz.appData.context;this.commonBaseUrl="/wfcore/".concat(t.srfsystemid,"-app-").concat(this.app.model.codeName.toLowerCase(),"/").concat(this.model.name.toLowerCase())}getBaseUrl(){return this.commonBaseUrl}getActiveData(e,t){return t.srfprocessinstanceid&&(e.srfprocessinstanceid=t.srfprocessinstanceid),e}async getWFStep(e){const{processDefinitionKey:t,taskDefinitionKey:i}=e;return this.app.net.get("".concat(this.getBaseUrl(),"/process-definitions/").concat(t,"/usertasks/").concat(i))}async getWFLink(e,t){const i=e[this.model.codeName.toLowerCase()],{taskDefinitionKey:s}=e;return this.app.net.post("".concat(this.getBaseUrl(),"/").concat(i,"/usertasks/").concat(s,"/ways"),{activedata:this.getActiveData(t,e)})}async getWFHistory(e){const t=e[this.model.codeName.toLowerCase()];return this.app.net.get("".concat(this.getBaseUrl(),"/").concat(t,"/process-instances/alls/history"))}async getWFProcessDiagram(e){const t=e[this.model.codeName.toLowerCase()];return this.app.net.request("".concat(this.getBaseUrl(),"/").concat(t,"/process-instances/alls/processdiagram"),{method:"post",data:{},responseType:"blob"})}async getWFVersion(){return this.app.net.get("".concat(this.getBaseUrl(),"/process-definitions2"))}async wfStart(e,t,i){return this.app.net.post("".concat(this.getBaseUrl(),"/").concat(e[this.model.codeName.toLowerCase()],"/process-instances"),{...t,activedata:this.getActiveData(i,e)})}async wfSubmit(e,t,i){return this.app.net.post("".concat(this.getBaseUrl(),"/").concat(e[this.model.codeName.toLowerCase()],"/tasks/").concat(t.taskId),{...t,activedata:this.getActiveData(i,e)})}async wfWithdraw(e,t,i){return this.app.net.post("".concat(this.getBaseUrl(),"/").concat(e[this.model.codeName.toLowerCase()],"/tasks/").concat(t.taskId,"/withdraw"),{...t,activedata:this.getActiveData(i,e)})}async wfReassign(e,t,i){return ibiz.net.post("".concat(this.getBaseUrl(),"/").concat(e[this.model.codeName.toLowerCase()],"/tasks/").concat(t.taskId,"/transfer"),{...t,activedata:this.getActiveData(i,e)})}async wfAddStepBefore(e,t,i){return ibiz.net.post("".concat(this.getBaseUrl(),"/").concat(e[this.model.codeName.toLowerCase()],"/tasks/").concat(t.taskId,"/beforesign"),{...t,activedata:this.getActiveData(i,e)})}async wfSendBack(e,t,i){return ibiz.net.post("".concat(this.getBaseUrl(),"/").concat(e[this.model.codeName.toLowerCase()],"/tasks/").concat(t.taskId,"/sendback"),{...t,activedata:this.getActiveData(i,e)})}async wfSendCopy(e,t,i){return ibiz.net.post("".concat(this.getBaseUrl(),"/").concat(e[this.model.codeName.toLowerCase()],"/tasks/").concat(t.taskId,"/sendcopy"),{...t,activedata:this.getActiveData(i,e)})}async exec(e,i,s={},a={}){switch(e){case"wfstart":return this.wfStart(i,s,a);case"wfsubmit":return this.wfSubmit(i,s,a);case"reassign":return this.wfReassign(i,s,a);case"addstepbefore":return this.wfAddStepBefore(i,s,a);case"sendback":return this.wfSendBack(i,s,a);case"sendcopy":return this.wfSendCopy(i,s,a);default:throw new t("「".concat(e,"」未实现"))}}}),et=e("Srfuf",(e=>(e[e.CREATE=0]="CREATE",e[e.UPDATE=1]="UPDATE",e))(et||{})),tt=e("AppDataEntity",class e{get srfuf(){return this.srfkey?1:0}constructor(t,i){let s;Object.defineProperty(this,"_entity",{enumerable:!1,configurable:!0,value:t}),Object.defineProperty(this,"_data",{enumerable:!1,configurable:!0,value:R(i instanceof e?i._data:i)}),Object.defineProperty(this,"srfdeid",{get:()=>t.id}),Object.defineProperty(this,"srfdecodename",{get:()=>t.codeName});const a=$(t.appDEFields||[],t.keyAppDEFieldId);if(a){const e=a.codeName.toLowerCase();Object.defineProperty(this,"srfkeyfile",{get:()=>e}),Object.defineProperty(this,"srfkey",{set(e){s=e},get(){return this._data[e]||s}})}else ibiz.log.warn("实体[".concat(t.codeName,"]未配置主键字段"));const n=$(t.appDEFields||[],t.majorAppDEFieldId);if(n){const e=n.codeName.toLowerCase();Object.defineProperty(this,"srfmajorfile",{get:()=>e}),Object.defineProperty(this,"srfmajortext",{set(t){this._data[e]=t},get(){return this._data[e]}})}else ibiz.log.warn("实体[".concat(t.codeName,"]未配置主文本字段"));this.defineProperties()}defineProperties(){var e;const{_data:t}=this,i={},s=Object.keys(t);s.forEach((e=>{i[e]={enumerable:!0,set(i){t[e]=i},get:()=>t[e]}})),null==(e=this._entity.appDEFields)||e.forEach((e=>{const a=e.codeName.toLowerCase();s.includes(a)||(i[a]={enumerable:!0,set(e){t[a]=e},get:()=>t[a]})})),Object.defineProperties(this,i)}clone(){return new e(this._entity,this._data)}assign(t){return t instanceof e?Object.assign(this._data,t._data):Object.assign(this._data,t),this}}),it=e("MethodDto",class e{constructor(e,t){this.entity=e,this.dto=t,this.dtoMap=new Map,t?(this.app=ibiz.hub.getApp(e.appId),this.fields=t.appDEMethodDTOFields||[]):this.fields=[]}get isLocalMode(){return 1===this.entity.storageMode||4===this.entity.storageMode}async get(e,t){const i={};for(let t=0;t<this.fields.length;t++){const a=this.fields[t],n=a.codeName.toLowerCase();switch(a.type){case"SIMPLE":break;case"DTOS":{if(!a.refAppDataEntityId)break;const t=await this.getFieldDto(a),s=(await this.app.deService.getService(a.refAppDataEntityId)).local.getList(e);if(s){const a=[];for(let i=0;i<s.length;i++)a.push(await t.get(e,s[i]));i[n]=a}break}default:throw new s(a,"未支持的应用实体方法输入属性类型: ".concat(a.type))}}return{...t,...i}}async sets(e,t){const i=await this.app.deService.getService(this.entity.id);return i.local.clear(e),Promise.all(t.map((async t=>{const s=this.fields.filter((e=>"DTOS"===e.type)).map((async i=>{if(!i.refAppDataEntityId)return;const s=i.codeName.toLowerCase(),a=await this.getFieldDto(i),n=t[s];n&&await a.sets(e,n)}));for(let e=0;e<s.length;e++)await s[e];const a=new tt(this.entity,t);return this.isLocalMode&&await i.local.add(e,a),a})))}async getFieldDto(t){if(this.dtoMap.has(t.codeName))return this.dtoMap.get(t.codeName);const i=await ibiz.hub.getAppDataEntity(t.refAppDataEntityId,this.entity.appId),s=$(i.appDEMethodDTOs||[],t.refAppDEMethodDTOId),a=new e(i,s);return this.dtoMap.set(t.codeName,a),a}}),st=class{constructor(e,t){this.entity=e,this.method=t,this.app=ibiz.hub.getApp(e.appId),this.input=new class{constructor(e,t){if(this.entity=e,this.input=t,t){const i=$(e.appDEMethodDTOs||[],t.appDEMethodDTOId);i&&(this.dto=new it(e,i))}}async handle(e,t){return this.dto?this.dto.get(e,t):t}}(e,t.appDEMethodInput),this.result=new class{constructor(e,t){if(this.entity=e,this.output=t,t){const i=$(e.appDEMethodDTOs||[],t.appDEMethodDTOId);i&&(this.dto=new it(e,i))}}async handle(e,t){return this.dto?(await this.dto.sets(e,[t]))[0]:new tt(this.entity,t)}}(e,t.appDEMethodReturn)}get isLocalMode(){return 1===this.entity.storageMode||4===this.entity.storageMode}async request(e,t,s,a){const{actionType:n,requestMethod:r}=this.method;if("REMOTE"===n){const t=this.method.codeName.toLowerCase();let n=null;switch(r){case"POST":n=await this.app.net.post("".concat(e,"/").concat(t),s,a);break;case"GET":n=await this.app.net.get("".concat(e,"/").concat(t),s,a);break;case"PUT":n=await this.app.net.put("".concat(e,"/").concat(t),s,a);break;case"DELETE":n=await this.app.net.delete("".concat(e,"/").concat(t),s,a);break;default:throw new i(this.method,r?"未支持的请求方式: ".concat(r):"未配置请求方式")}return n}throw new i(this.method,"未支持的行为类型[".concat(n,"]"))}calcPath(e){const t="/".concat(this.entity.codeName2.toLowerCase());return qe(e,this.entity)+t}async getService(){return this.service||(this.service=await this.app.deService.getService(this.entity.id)),this.service}createEntity(e){return new tt(this.entity,e)}},at=class{},nt=class extends at{constructor(e){super(),this.model=e,this.srcParam=e.srcLogicParamId,this.dstParam=e.dstLogicParamId}get dstField(){return this.model.dstFieldName.toLowerCase()}get op(){return this.model.condOP}get type(){return this.model.paramType}get value(){return this.model.paramValue}test(e,t,a){const n=e.params[this.dstParam];switch(this.type){case"ENTITYFIELD":{if(!this.value)throw new i(this.model,"当前条件值类型为[数据对象属性],缺少配置条件值");const e=null!=a[this.value]?a[this.value]:t[this.value];return de(n[this.dstField],this.op,e)}case"SRCENTITYFIELD":{if(!this.value)throw new i(this.model,"当前条件值类型为[源数据对象属性],缺少配置条件值");const t=e.params[this.srcParam];return de(n[this.dstField],this.op,t[this.value])}case"CURTIME":throw new s(this.model,"暂未支持条件值类型为[当前时间]");default:return de(n[this.dstField],this.op,this.value)}}},rt=class e extends at{constructor(t){super(),this.model=t;const i=t.conds||[];this.conds=i.map((t=>"SINGLE"===t.logicType?new nt(t):new e(t)))}get op(){return this.model.groupOP}get notMode(){return!0===this.model.notMode}test(e,t,s){let a=!0;if(0===this.conds.length)throw new i(this.model,"界面连接条件逻辑组未配置逻辑项");for(let i=0;i<this.conds.length;i++){const n=this.conds[i].test(e,t,s);if("AND"===this.op&&!1===n){a=!1;break}if("OR"===this.op&&!0===n){a=!0;break}}return this.notMode?!a:a}},ot=class{constructor(e){var t;this.model=e,this.links=null==(t=e.links||[])?void 0:t.map((e=>new class{constructor(e){this.model=e,this.srcNode=null,this.dstNode=null,this.groupCond=null;const t=this.model.delogicLinkGroupCond;t&&(this.groupCond=new rt(t))}async exec(e){const{defaultLink:t}=this.model;return!(!t&&this.groupCond)||this.groupCond.test(e,e.context,e.data||{})}}(e)))}},ct=class extends ot{async exec(e){const{dstAppDataEntityId:t,dstAppDEActionId:s,dstDELogicParamId:a,retDELogicParamId:n}=this.model;if(!t)throw new i(this.model,"未指定应用实体");if(!s)throw new i(this.model,"未指定实体行为");const r=e.params[a],o=ibiz.hub.getApp(e.context.srfappid),c=await o.deService.exec(t,s,e.context,r,e.viewParams);c.ok&&(e.params[n]=c.data)}},lt=class extends ot{async exec(e){}},dt=class extends ot{async exec(e){e.isEndNode=!0;const{returnParamId:t,returnType:i,rawValue:a}=this.model;switch(i){case"NONEVALUE":e.result=void 0;break;case"NULLVALUE":e.result=null;break;case"SRCVALUE":e.result=a;break;case"LOGICPARAM":e.result=e.params[t];break;default:throw new s(this.model,"暂未支持的结束节点返回值类型: ".concat(i))}}};function ht(e,t){const{srcDELogicParamId:i,srcValueType:a,srcFieldName:n,srcValue:r}=t;let o;switch(t.srcValueType||(t.srcValueType="SRCDLPARAM"),a){case"SRCDLPARAM":o=e.params[i];break;case"NULLVALUE":return null;case"NONEVALUE":return;case"SRCVALUE":return r;case"VIEWPARAM":o=e.viewParams;break;case"APPDATA":o=e.context;break;case"ENVPARAM":o=R(ibiz.env);break;default:throw new s(t,"暂未支持源值类型".concat(a))}const c=null==n?void 0:n.toLowerCase();return o&&c&&(o=o[c]),o}var ut=class extends ot{async exec(e){const t=this.model.delogicNodeParams;(null==t?void 0:t.length)&&await Promise.all(t.map((t=>{switch(t.paramAction){case"SETPARAMVALUE":return this.setParamValue(t,e);case"RESETPARAM":return this.resetParam(t,e);case"COPYPARAM":return this.copyParam(t,e);case"BINDPARAM":return this.bindParam(t,e);case"RENEWPARAM":return this.renewParam(t,e);case"APPENDPARAM":return this.appendParam(t,e);case"SORTPARAM":return this.sortParam(t,e);default:throw new s(t,"暂未支持逻辑处理参数操作".concat(t.paramAction))}})))}copyParam(e,t){const{dstDELogicParamId:i}=e,s=ht(t,e);t.params[i]=R(s)}bindParam(e,t){const i=ht(t,e);t.params[e.dstDELogicParamId]=i}setParamValue(e,t){const{dstFieldName:i,dstDELogicParamId:s}=e,a=null==i?void 0:i.toLowerCase(),n=ht(t,e);a?t.params[s][a]=n:t.params[s]=n}resetParam(e,t){const{dstDELogicParamId:i}=e;t.resetParam(i)}renewParam(e,t){const{dstDELogicParamId:i}=e;t.renewParam(i)}appendParam(e,t){const{dstDELogicParamId:i,dstIndex:s,srcIndex:a,srcSize:n}=e,r=ht(t,e),o=s||0,c=a||0,l=n||r.length;t.params[i].splice(o,0,...r.slice(c,l))}sortParam(e,t){const{dstDELogicParamId:i,dstFieldName:s,dstSortDir:a}=e,n=s.toLowerCase();t.params[i].sort(((e,t)=>"ASC"===a?e[n]-t[n]:t[n]-e[n]))}},pt=class extends ot{async exec(e){const{dstAppDEDataSetId:t,dstAppDataEntityId:i,dstDELogicParamId:s,retDELogicParamId:a}=this.model,n=e.params[s],r=ibiz.hub.getApp(e.context.srfappid),o=await r.deService.exec(i,t,e.context,n,e.viewParams);o.ok&&(e.params[a]=o.data)}},Et=class extends ot{async exec(e){const{dstDELogicParamId:t,srcDELogicParamId:s}=this.model;if(!t||!s)throw new i(this.model,"缺少目标参数对象或者源参数对象配置");const a=ht(e,this.model);e.params[t]=a}},gt=class extends ot{async exec(e){const{dstDELogicParamId:t}=this.model;if(!t)throw new i(this.model,"缺少目标参数对象配置");e.resetParam(t)}},mt=class extends ot{async exec(e){const{dstDELogicParamId:t}=this.model;if(!t)throw new i(this.model,"缺少目标参数对象配置");e.renewParam(t)}},ft=class extends ot{async exec(e){const{dstDELogicParamId:t,srcDELogicParamId:s}=this.model;if(!t||!s)throw new i(this.model,"缺少目标参数对象或者源参数对象配置");const a=ht(e,this.model);e.params[t]=R(a)}},wt=class extends ot{async exec(e){const{dstDELogicParamId:t,dstSortDir:s,dstFieldName:a}=this.model;if(!t||!a)throw new i(this.model,"缺少目标参数对象或目标属性配置");const n=a.toLowerCase();e.params[t].sort(((e,t)=>"ASC"===s?e[n]-t[n]:t[n]-e[n]))}},It=class extends ot{async exec(e){const{dstDELogicParamId:t,srcDELogicParamId:s,dstIndex:a,srcIndex:n,srcSize:r}=this.model;if(!t||!s)throw new i(this.model,"缺少目标参数对象或者源参数对象配置");const o=ht(e,this.model),c=a||0,l=n||0,d=r||o.length;e.params[t].splice(c,0,...o.slice(l,d))}},Dt=class extends ot{async exec(e){const{errorCode:t,errorInfo:i}=this.model;throw new r({response:{status:t,statusText:i}})}},At=class{constructor(e){var t,a;if(this.model=e,this.nodes=new Map,this.params=new Map,!(null==(t=e.delogicNodes)?void 0:t.length))throw new i(e,"实体逻辑没有配置逻辑节点");e.delogicNodes.forEach((e=>{const{logicNodeType:t}=e;let i;switch(t){case"BEGIN":i=new lt(e);break;case"END":i=new dt(e);break;case"DEACTION":i=new ct(e);break;case"PREPAREPARAM":i=new ut(e);break;case"DEDATASET":i=new pt(e);break;case"THROWEXCEPTION":i=new Dt(e);break;case"BINDPARAM":i=new Et(e);break;case"RESETPARAM":i=new gt(e);break;case"COPYPARAM":i=new ft(e);break;case"RENEWPARAM":i=new mt(e);break;case"APPENDPARAM":i=new It(e);break;case"SORTPARAM":i=new wt(e);break;default:throw new s(e,"未支持的逻辑节点类型: ".concat(t))}this.nodes.set(e.id,i)})),null==(a=e.delogicParams)||a.forEach((e=>{this.params.set(e.id,new class{constructor(e){this.model=e}calc(e){const t=this.model.id,i=this.model;if(i.default)e.params[t]=e.data||{};else if(i.appGlobalParam)e.params[t]=R(ibiz.env);else if(i.entityListParam)e.params[t]=[];else{if(i.entityPageParam)throw new s(i,"未支持的逻辑参数类型: 分页查询结果");if(i.entityParam)e.params[t]={};else{if(i.lastReturnParam)throw new s(i,"未支持的逻辑参数类型: 上次调用返回");if(i.appContextParam)e.params[t]=e.context;else if(i.simpleListParam)e.params[t]=[];else if(i.simpleParam)e.params[t]={};else if(i.cloneParam)e.params[t]=R(e.data||{});else{if(i.envParam)throw new s(i,"未支持的逻辑参数类型: 系统环境变量");if(i.fileListParam)throw new s(i,"未支持的逻辑参数类型: 文件对象列表变量");if(i.fileParam)throw new s(i,"未支持的逻辑参数类型: 文件对象变量");if(i.filterParam)throw new s(i,"未支持的逻辑参数类型: 过滤器对象变量");if(i.lastParam)throw new s(i,"未支持的逻辑参数类型: 最后数据变量");if(i.originEntity)throw new s(i,"未支持的逻辑参数类型: 原始数据对象");if(i.sessionParam)throw new s(i,"未支持的逻辑参数类型: 操作会话变量")}}}}renew(e){const t=this.model.id,i=this.model;if(i.entityListParam||i.simpleListParam||i.entityPageParam)e.params[t]=[];else{if(!i.simpleParam&&!i.entityParam)throw new s(i,"未支持的逻辑参数类型重新建立变量");e.params[t]={}}}}(e))})),this.nodes.forEach((e=>{e.links.forEach((t=>{t.srcNode=e,this.nodes.has(t.model.thenId)&&(t.dstNode=this.nodes.get(t.model.thenId))}))}))}initLogicParams(e){this.params.forEach((t=>{t.model.default&&(e.defaultParamName=t.model.id),t.calc(e)}))}async exec(e,t,s){const a=new class{constructor(e,t,i,s){this.deLogicParams=e,this.context=t,this.data=i,this.viewParams=s,this.params={},this.result=null,this.isEndNode=!1,this.defaultParamName="Default"}resetParam(e){var t;null==(t=this.deLogicParams.get(e))||t.calc(this)}renewParam(e){var t;null==(t=this.deLogicParams.get(e))||t.renew(this)}}(this.params,e,t,s);this.initLogicParams(a);const{startDELogicNodeId:n}=this.model;if(!n||!this.nodes.has(n))throw new i(this.model,"未设置起始节点");{const e=this.nodes.get(n);await this.deepExec(e,a)}return a.isEndNode?a.result:a.params[a.defaultParamName]?a.params[a.defaultParamName]:null}async deepExec(e,t){await e.exec(t);const{links:i}=e;for(let s=0;s<i.length;s++){const a=i[s];if(await a.exec(t)&&a.dstNode&&(await this.deepExec(a.dstNode,t),!1===e.model.parallelOutput))break}}},Pt=new Map;async function yt(e,t,i,s){Pt.has(e)||Pt.set(e,new At(e));return Pt.get(e).exec(t,i,s)}async function vt(e,t,i,s){try{const a=await yt(e,t,i,s);return new n(a)}catch(e){if(e instanceof r)return new n(e,500);throw e}}async function Tt(e,t,i,s,a){const n=te(e,t);if(n.length){(await Promise.all(n.map((e=>yt(e,i,s,a))))).forEach((e=>{Object.assign(s,e)}))}}var Ct=class extends st{async exec(e,t,s){if("DELOGIC"===this.method.actionType){const a=ee(this.method.appDELogicId,this.entity);if(!a)throw new i(this.method,"缺少实体处理逻辑");return vt(a,e,t,s)}let a;switch(this.isLocalMode||(t=await this.input.handle(e,t)),["READ","GETDRAFT"].includes(this.method.actionMode)||await Tt(this.entity,"change",e,t,s),this.method.codeName){case"Create":a=await this.create(e,t,s);break;case"Get":a=await this.get(e,s);break;case"GetDraft":a=await this.getDraft(e,s);break;case"Remove":a=await this.remove(e,s);break;case"Update":a=await this.update(e,t,s);break;case"CreateTemp":a=await this.createTemp(e,t);break;case"GetTemp":a=await this.getTemp(e,t);break;case"GetDraftTemp":a=await this.getDraftTemp(e,s);break;case"RemoveTemp":a=await this.removeTemp(e,t);break;case"UpdateTemp":a=await this.updateTemp(e,t);break;default:{let i=this.calcPath(e);this.method.needResourceKey&&(i="".concat(i,"/").concat(e[this.entity.codeName.toLowerCase()]||t[this.entity.keyAppDEFieldId]));const n=await this.request(i,e,t,s);n.data=await this.result.handle(e,n.data),a=n}}return await Tt(this.entity,"compute",e,a.data,s),a}async create(e,t,i){if(this.isLocalMode)return this.createTemp(e,this.createEntity(t));const s=this.calcPath(e),a=await this.app.net.post(s,t,i);return a.data=await this.result.handle(e,a.data),a}async remove(e,t){if(this.isLocalMode)return this.removeTemp(e,t);const i=this.calcPath(e);return await this.app.net.delete("".concat(i,"/").concat(e[this.entity.codeName.toLowerCase()]),t)}async update(e,t,i={}){if(this.isLocalMode)return this.updateTemp(e,this.createEntity(t));const s=this.calcPath(e),a=await this.app.net.put("".concat(s,"/").concat(e[this.entity.codeName.toLowerCase()]),t,i);return a.data=await this.result.handle(e,a.data),a}async get(e,t={}){if(this.isLocalMode)return this.getTemp(e,t);const i=this.calcPath(e),s=await this.app.net.get("".concat(i,"/").concat(e[this.entity.codeName.toLowerCase()]),t);return s.data=await this.result.handle(e,s.data),s}async getDraft(e,t){if(this.isLocalMode)return this.getDraftTemp(e,t);const i=this.calcPath(e),s=await this.app.net.get("".concat(i,"/getdraft"),t);return s.data=await this.result.handle(e,s.data),s}async createTemp(e,t){try{const i=await this.getService(),s=await i.local.add(e,this.createEntity(t));return new n(s)}catch(e){return new n(e,500)}}async getDraftTemp(e,t){try{const e=this.createEntity({});return e?new n(e):new n(e,500)}catch(e){return new n(e,500)}}async removeTemp(e,t){try{let t=null;!t&&e&&(t=e[this.entity.codeName.toLowerCase()]);const i=(await this.getService()).local.delete(e,t);return i?new n(i):new n(i,500)}catch(e){return new n(e,500)}}async updateTemp(e,t){try{const i=(await this.getService()).local.update(e,this.createEntity(t));return i?new n(i):new n(i,500)}catch(e){return new n(e,500)}}async getTemp(e,t){try{let t=null;!t&&e&&(t=e[this.entity.codeName.toLowerCase()]);const i=(await this.getService()).local.get(e,t);return i?new n(i):new n(i,500)}catch(e){return new n(e,500)}}async removeBatchTemp(e,t){return new n(!0)}},bt=class extends st{async exec(e,t,i){if(this.isLocalMode){const i=await this.searchLocal(null,new $e(e,t));return new n(i,200)}let a;switch(this.method.dataSetType){case"INDEXDE":case"CODELIST":a=await this.fetchCodeListSet(e,i);break;case"REMOTE":{const s=this.calcPath(e);a=await this.request(s,e,t,i)}break;default:throw new s(this.method,"数据来源类型".concat(this.method.dataSetType,"暂未支持"))}const r=a.data||[];return a.data=r.map((e=>this.createEntity(e))),a.data.length&&await Promise.all(a.data.map((t=>Tt(this.entity,"compute",e,t,i)))),a}async selectLocal(e,t={}){let i=(await this.getService()).local.getList(e);i=y(i,"srfordervalue");const s={},a={},n={},r={};t.srfkey&&(s.srfkey=L(t.srfkey),delete t.srfkey);for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e)){const i=t[e];null==i?(a[e]=L(null),n[e]=L(void 0),r[e]=L("")):s[e]=L(i)}if(!_(s)){const e=O(s),t=O(a),o=O(n),c=O(r);i=i.filter((i=>{if(_(a)){if(e(i))return!0}else if(e(i)&&(t(i)||o(i)||c(i)))return!0;return!1}))}return i.map((e=>e.clone()))}async searchLocal(e,t,i=this.entity.quickSearchAppDEFieldIds){const s=await this.getService();let a=[];e?(a=s.local.getList(t.context),a.length>0&&(a=a.filter((i=>e.test(i,t))))):(a=await this.selectLocal(t.context),a.length>0&&t.query&&""!==t.query&&i&&(a=a.filter((e=>{const s=new RegExp(t.query);for(let t=0;t<i.length;t+=1){const a=e[i[t]];if(s.test(a))return!0}return!1})))),b(t.sortField)||_(t.sortField)||(a="DESC"===t.sortMode?v(a,t.sortField):y(a,t.sortField));const{page:n,size:r}=t,o=n*r,c=(n+1)*r-1;return a.slice(o,c).map((e=>R(e)))}async fetchCodeListSet(e,t){const{appCodeListId:s}=this.method;if(!s)throw new i(this.method,"没有指定数据来源代码表");const a=await this.app.codeList.get(s,e,t),{keyAppDEFieldId:r,majorAppDEFieldId:o}=this.entity,c=a.map((e=>({[r]:e.value,[o]:e.text})));return new n(c,200)}},Vt=e("DEService",class{constructor(e){this.model=e,this.methodMap=new Map,this.local=new He,this.wf=new Ze(e),this.file=new class{constructor(e){this.model=e}exportData(e,t,i,s){const a=qe(i,this.model),n="".concat(a,"/").concat(this.model.codeName2.toLowerCase(),"/exportdata/").concat(t.toLowerCase(),"/?srfexporttag=").concat(e.codeName);return ibiz.net.request(n,{method:"post",data:s,responseType:"blob"})}}(e)}getMethod(e){if(this.methodMap.has(e))return this.methodMap.get(e);const t=$(this.model.appDEMethods,e);let i=null;switch(t.methodType){case"DEACTION":i=new Ct(this.model,t);break;case"FETCH":case"FETCHTEMP":i=new bt(this.model,t);break;default:throw new s(t,"未支持的服务方法类型: ".concat(t.methodType))}return this.methodMap.set(e,i),i}exec(e,i,s={},a={}){const n=this.getMethod(e);if(n)return n.exec(i,s,a);throw new t("".concat(this.model.codeName,"未支持「").concat(e,"」方法"))}}),_t=e("ControlVO",class e{get srfuf(){return b(this.$origin.srfuf)?this.srfkey?1:0:this.$origin.srfuf}get srfkey(){return this.$origin.srfkey}get srfmajortext(){return this.$origin.srfmajortext}get srfdeid(){return this.$origin.srfdeid}get srfdecodename(){return this.$origin.srfdecodename}get srfkeyfile(){return this.$origin.srfkeyfile}get srfmajorfile(){return this.$origin.srfmajorfile}constructor(e={},t=new Map){Object.defineProperty(this,"$origin",{enumerable:!1,configurable:!0,value:e||{}}),Object.defineProperty(this,"$dataUIMap",{enumerable:!1,configurable:!0,value:t||new Map}),this.$dataUIMap.forEach(((e,t)=>{const i=e.dataKey;this.linkProperty(t,i,e.isOriginField)})),Object.keys(e).forEach((e=>{Object.prototype.hasOwnProperty.call(this,e)||this.linkProperty(e,e)}))}linkProperty(e,t,i=!0){"srfuf"!==e&&(i||Object.prototype.hasOwnProperty.call(this.$origin,e)?Object.defineProperty(this,e,{enumerable:!0,configurable:!0,get(){return this.$origin[t]},set(e){this.$origin[t]=e}}):Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:null}))}getOrigin(){return this.$origin}setOrigin(t){this.$origin=t instanceof e?t.getOrigin():t}clone(){const t=R(this.$origin),i=new e(t,this.$dataUIMap);return Object.keys(this).forEach((e=>{i[e]=this[e]})),i}}),Rt=e("ControlService",class{constructor(e){this.dataUIMap=new Map,this.model=e}async init(e){this.app=ibiz.hub.getApp(null==e?void 0:e.srfappid),this.initUIDataMap()}initUIDataMap(){}async exec(e,t,i={},s={}){return await this.app.deService.exec(this.model.appDataEntityId,e,t,i,s)}handleResponse(e){return e}toUIData(e){return new _t(e,this.dataUIMap)}}),Lt=(e("MDControlService",class extends Rt{async fetch(e,t={}){var i;const s=(null==(i=this.model.fetchControlAction)?void 0:i.appDEMethodId)||"fetchdefault";let a=await this.exec(s,e,t);return a=this.handleResponse(a),a}async get(e,t={}){var i;const s=(null==(i=this.model.getControlAction)?void 0:i.appDEMethodId)||"get";let a=await this.exec(s,e,void 0,t);return a=this.handleResponse(a),a}async getDraft(e,t={}){var i;const s=(null==(i=this.model.getDraftControlAction)?void 0:i.appDEMethodId)||"getdraft";let a=await this.exec(s,e,void 0,t);return a=this.handleResponse(a),a}async remove(e,t={}){var i;const s=(null==(i=this.model.removeControlAction)?void 0:i.appDEMethodId)||"remove";return await this.exec(s,e,void 0,t)}async create(e,t){var i;const s=(null==(i=this.model.createControlAction)?void 0:i.appDEMethodId)||"create";let a=await this.exec(s,e,t.getOrigin());return a=this.handleResponse(a),a}async update(e,t){var i;const s=(null==(i=this.model.updateControlAction)?void 0:i.appDEMethodId)||"update";let a=await this.exec(s,e,t.getOrigin());return a=this.handleResponse(a),a}async exportData(e,i,s={}){throw new t("未实现")}handleResponse(e){const t=super.handleResponse(e);return t.headers&&(t.headers["x-page"]&&(t.page=Number(t.headers["x-page"])),t.headers["x-per-page"]&&(t.size=Number(t.headers["x-per-page"])),t.headers["x-total"]&&(t.total=Number(t.headers["x-total"]))),t.ok&&(I(t.data)?t.data=t.data.map((e=>this.toUIData(e))):t.data=this.toUIData(t.data)),t}}),e("DeAuthorityService",class{constructor(e){this.entityModel=e}async calcByDataAccessAction(e,t){if(t.srfopprivs&&!t.srfopprivs.includes(e))return!1;return!!await this.calcByDeMainState(e,t)}async calcByDeMainState(e,t){let i=!0;const s=this.entityModel;if(!s.enableDEMainState)return ibiz.log.debug("".concat(s.codeName,"实体不存在或者为启用主状态,返回true")),i;ibiz.log.debug("操作标识".concat(e,"主状态计算开始"),t,s);const a=Q(s,t);if(a){ibiz.log.debug("匹配主状态",a);const t=J(a,s);ibiz.log.debug("允许的主状态权限集合",t),i=t.includes(e)}else ibiz.log.debug("没匹配主状态,返回false"),i=!1;return ibiz.log.debug("操作标识".concat(e,"权限计算结束:").concat(i)),i}})),Ot=e("AuthorityService",class{constructor(e){this.appModel=e,this.cache=new Map,this.constructorCache=new Map,this.resCodes=[],this.enablePermission=!1}register(e,t){this.constructorCache.set(e,t)}async getService(e){if(!this.cache.has(e)){const i=await ibiz.hub.getAppDataEntity(e,this.appModel.appId);if(!i)throw new t("未找到应用实体[".concat(e,"]"));const s=this.constructorCache.get(e);let a;a=s?await s(i):new Lt(i),this.cache.set(e,a)}return this.cache.get(e)}async init(e=ibiz.appData){if(!e)throw new t("没有appData数据");e.unires&&(this.resCodes=e.unires),!0===e.enablepermissionvalid&&ibiz.env.enablePermission&&(this.enablePermission=!0)}calcByResCode(e){return!this.enablePermission||this.resCodes.includes(e)}async calcByDataAccessAction(e,t,i){if(this.enablePermission){const t=await ibiz.hub.getApp(this.appModel.appId),s=await t.getOPPriv(e,i);if(this.enablePermission&&(null==s?void 0:s.mapSysUniResCode)&&!this.calcByResCode(s.mapSysUniResCode))return!1}if(t&&i){return(await this.getService(i)).calcByDataAccessAction(e,t)}return!0}}),Nt=e("V7AuthService",class{async login(e,t){try{const i=await ibiz.net.post("/v7/login",{loginname:e,password:t}),{data:s}=i;if(s&&s.token){D(o.TOKEN,s.token,0,!0);const e=(new Date).getTime()+1e3*(s.expirein||7199);D(o.TOKEN_EXPIRES,"".concat(e),0,!0)}return!0}catch(e){ibiz.notification.error({title:"登录失败",desc:e.message||""})}return!1}async logout(){try{return await ibiz.net.get("/v7/logout"),A(o.TOKEN),A(o.TOKEN_EXPIRES),!0}catch(e){ibiz.notification.error({title:"登出失败",desc:e.message||""})}return!1}}),Mt=e("TreeNodeData",class{constructor(e,t,i){this.leaf=!1,this.leaf=!0===i.leaf,this.parent=t,this.parent&&(this.context={...this.parent.context}),i.navContext&&(this.context=Object.assign(this.context||{},i.navContext)),i.navParams&&(this.params={...i.navParams}),this.nodeId=e.id}calcIcon(e){const{sysImage:t}=e,i={};return t&&(t.cssClass&&(i.cssClass=t.cssClass),t.imagePath&&(i.imagePath=t.imagePath)),Object.values(i).length>0?i:void 0}}),Wt=(e("TreeCodeListNodeData",class extends Mt{constructor(e,t,i){super(e,t,i);const{data:s}=i;if(this.deData=s,this.text=s.text,this.value=s.value,this.id=t?"".concat(t.id,":").concat(e.id,"@").concat(this.value):e.id+this.value,this.id=this.id.toLowerCase(),e.appDataEntityId){const t=Z(e.appDataEntityId);this.context=Object.assign(this.context||{},{[t]:this.value})}this.srfkey=this.value,this.srfmajortext=this.text,this.icon=this.calcIcon(e)}}),e("TreeDataSetNodeData",class extends Mt{constructor(e,t,i){super(e,t,i);const{data:s}=i;if(this.deData=s,this.text=s.srfmajortext,this.value=s.srfkey,this.id=t?"".concat(t.id,":").concat(e.id,"@").concat(s.srfkey):e.id+s.srfkey,this.id=this.id.toLowerCase(),e.appDataEntityId){const t=Z(e.appDataEntityId);this.context=Object.assign(this.context||{},{[t]:s.srfkey})}this.srfkey=this.deData.srfkey,this.srfmajortext=this.deData.srfmajortext,this.icon=this.calcIcon(e),this.textHtml=this.calcTextHtml(e)}calcIcon(e){const t=super.calcIcon(e)||{},{iconAppDEFieldId:i,detreeNodeDataItems:s}=e;i&&this.deData[i]&&(t.imagePath=this.deData[i]),t&&(this.icon=t);const a=null==s?void 0:s.find((e=>"icon"===e.id));return a&&(t.htmlStr=this.calcDataItemScript(a)),Object.values(t).length>0?t:void 0}calcDataItemScript(e){if(e.customCode&&e.scriptCode)return fe.execScriptFn({data:this.deData},e.scriptCode,{isAsync:!1})}calcTextHtml(e){let t;const{detreeNodeDataItems:i}=e,s=null==i?void 0:i.find((e=>"text"===e.id));return s&&(t=this.calcDataItemScript(s)),t}}),e("TreeStaticNodeData",class extends Mt{constructor(e,t,i){var s,a;super(e,t,i);const n="root"===e.nodeValue?void 0:e.nodeValue;if(this.id=t?"".concat(t.id,":").concat(e.id):e.id,this.id=this.id.toLowerCase(),this.text=e.text,this.value=n,t&&i.parentValueLevel){let e=t;for(let t=1;t<i.parentValueLevel;t++)e=null==e?void 0:e.parent;(null==e?void 0:e.deData)&&(this.deData=e.deData),this.value=n||(null==e?void 0:e.value)}this.srfkey=(null==(s=this.deData)?void 0:s.srfkey)||this.value,this.srfmajortext=(null==(a=this.deData)?void 0:a.srfmajortext)||this.text,this.icon=this.calcIcon(e)}}),e("UIMapField",class{constructor(e,t,i={}){this.isOriginField=!1,this.isRequestNeed=!0,this.uiKey=e,this.dataKey=t,b(i.isOriginField)||(this.isOriginField=i.isOriginField)}}),e("CalendarItemData",class{constructor(e,t){this.model=e,this.data=t}get deData(){return this.data}get navId(){return"".concat(this.itemType,"@").concat(this.id)}get itemType(){return this.model.itemType}get bkColor(){const e=this.model.bkcolorAppDEFieldId;return e&&this.data[e]?this.data[e]:this.model.bkcolor}get beginTime(){const e=this.model.beginTimeAppDEFieldId;return e?this.data[e]:void 0}get color(){const e=this.model.colorAppDEFieldId;return e&&this.data[e]?this.data[e]:this.model.color}get content(){const e=this.model.contentAppDEFieldId;return e?this.data[e]:void 0}get endTime(){const e=this.model.endTimeAppDEFieldId;return e?this.data[e]:void 0}get icon(){const e=this.model.iconAppDEFieldId;return e?this.data[e]:void 0}get id(){const e=this.model.idAppDEFieldId;return e&&this.data[e]?this.data[e]:this.data.srfkey}get level(){const e=this.model.levelAppDEFieldId;return e?this.data[e]:void 0}get tag2(){const e=this.model.tag2AppDEFieldId;return e?this.data[e]:void 0}get tag(){const e=this.model.tagAppDEFieldId;return e?this.data[e]:void 0}get text(){const e=this.model.textAppDEFieldId;return e?this.data[e]:void 0}get tips(){const e=this.model.tipsAppDEFieldId;return e?this.data[e]:void 0}}),e("DEServiceUtil",class{constructor(e){this.appModel=e,this.cache=new Map,this.constructorCache=new Map}register(e,t){this.constructorCache.set(e,t)}async getService(e){if(!this.cache.has(e)){const i=await ibiz.hub.getAppDataEntity(e,this.appModel.appId);if(!i)throw new t("未找到应用实体[".concat(e,"]"));const s=this.constructorCache.get(e);let a;a=s?await s(i):new Vt(i),this.cache.set(e,a)}return this.cache.get(e)}clearTempCache(e){this.cache.forEach((t=>{t.local.clear(e)}))}async exec(e,t,i,s,a){return(await this.getService(e)).exec(t,i,s,a)}})),xt=e("Application",class{constructor(e){this.model=e,this.deName2DeCodeName=new Map,this.net=new c({baseURL:"".concat(ibiz.env.baseUrl,"/").concat(e.appId)}),this.deService=new Wt(e),this.codeList=new Qe(e),this.authority=new Ot(e)}get appId(){return this.model.appId}async init(){await this.authority.init(),await this.loadAppModelStyle()}async loadAppModelStyle(){await this.net.get("".concat(ibiz.env.remoteModelUrl,"/PSSYSAPP.json.css")).then((e=>{const t=document.createElement("style");if(t.setAttribute("type","text/css"),e.request&&e.request.responseURL){const i=new URL(e.request.responseURL);t.id=i.pathname}t.innerHTML=e.data,document.head.appendChild(t)})).catch((e=>{ibiz.log.error("应用[".concat(this.appId,"]模型全局样式加载失败:").concat(e.message))}))}getAppFunc(e){return(this.model.appFuncs||[]).find((t=>t.id===e))||null}async getUIAction(e){const[,t]=e.split("@");if(t){const i=(await ibiz.hub.getAppDataEntity(t,this.model.appId)).appDEUIActions.find((t=>t.id===e));if(i)return i}return this.model.appDEUIActions.find((t=>t.id===e))}async getOPPriv(e,t){var i,s;let a=null==(i=this.model.deopprivs)?void 0:i.find((t=>t.name===e));if(!a&&t){a=null==(s=(await ibiz.hub.getAppDataEntity(t,this.model.appId)).deopprivs)?void 0:s.find((t=>t.name===e))}return a}async getDEUILogic(e,t){return(await ibiz.hub.getAppDataEntity(t,this.model.appId)).appDEUILogics.find((t=>t.id===e))}}),St=e("FormNotifyState",(e=>(e.LOAD="LOAD",e.DRAFT="DRAFT",e.SAVE="SAVE",e))(St||{})),Ft=e("GridNotifyState",(e=>(e.LOAD="LOAD",e.DRAFT="DRAFT",e.SAVE="SAVE",e))(Ft||{})),Bt=e("PanelNotifyState",(e=>(e.LOAD="LOAD",e.DRAFT="DRAFT",e.SAVE="SAVE",e))(Bt||{})),kt=e("Counter",class{constructor(e){this.callback=e,this.count=0,this.state="Unused",this.reusable=!0}increment(){return"Used"===this.state||(this.count+=1),this.count}decrement(e){if("Used"!==this.state){if(0===this.count)throw new t("错误的调用!decrement不能对count为0调用");this.count-=1,0===this.count&&(e?e():this.callback&&this.callback(),this.reusable||(this.state="Used"))}}destroy(){this.callback=void 0}}),Ut=e("LoadingState",class{constructor(){this.isLoading=!1,this.counter=new kt(l)}begin(){this.isLoading=!0,this.counter.increment()}end(){this.counter.decrement((()=>{this.isLoading=!1}))}}),zt=e("CTXState",class{}),Gt=e("CTX",class{constructor(e){this.parent=e,this.evt=new f(3e3),this.controllersMap=new Map,this.state=new zt}async init(e){this.view=e,this.registerController(e.model.name,e)}destroy(){this.controllersMap.clear(),this.view=null,this.state=null}async setState(e){Object.assign(this.state,e)}startLoading(){this.view.startLoading()}endLoading(){this.view.endLoading()}registerController(e,t){this.controllersMap.set(e,t),this.evt.emit("onRegister",e,t)}getController(e,t=!1){return this.controllersMap.has(e)?this.controllersMap.get(e):this.parent&&t?this.parent.getController(e):void 0}getTopView(){return this.parent?2===this.view.modal.routeDepth?this.view:this.parent.getTopView():this.view}}),Xt=e("ActivityCounter",class extends kt{constructor(){super(...arguments),this.reusable=!1,this.registration=new Map}enroll(e){"Unused"!==this.state||this.registration.has(e)||(this.registration.set(e,!1),this.increment())}attend(e){this.registration.has(e)&&!1===this.registration.get(e)&&(this.registration.set(e,!0),this.decrement())}}),jt=(e("UIActionButtonState",class{constructor(e,t,i){this.disabled=!1,this.visible=!0,this.loading=!1,this.permitted=!0,this.noPermissionHidden=!0,this.noDataDisabled=!1,this.isInit=!1,this.name=e,this.uiActionId=i,this.appId=t}async init(){if(!this.uiActionId)return void(this.isInit=!0);const e=await se(this.uiActionId);if([,this.appDeName]=this.uiActionId.split("@"),!e)return;const{dataAccessAction:t,noPrivDisplayMode:i,actionTarget:s,uiactionMode:a,uiactionTag:n}=e;this.dataAccessAction=t,1===i?this.noPermissionHidden=!1:6===i&&(this.visible=!1),(s&&"NONE"!==s||"SYS"===a&&["Save","SaveAndExit","SaveAndNew","Edit","Remove","RemoveAndExit"].includes(n))&&(this.noDataDisabled=!0),this.isInit=!0}async calcPermission(e,t){if(!this.dataAccessAction)return;const i=await ibiz.hub.getApp(this.appId);this.appDeName&&t&&!t.includes(this.appDeName)&&ibiz.log.warn("".concat(this.uiActionId,"界面行为的实体").concat(this.appDeName,"和数据的实体").concat(t,"不一致")),this.permitted=await i.authority.calcByDataAccessAction(this.dataAccessAction,e,t)}async update(e,t){this.isInit||await this.init(),await this.calcPermission(e,t),this.permitted?(this.visible=!0,this.disabled=this.noDataDisabled&&!e):(this.disabled=!0,this.visible=!this.noPermissionHidden)}}),e("ButtonContainerState",class{constructor(){Object.defineProperty(this,"children",{enumerable:!1,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"visible",{enumerable:!0,configurable:!0,get:()=>0!==this.children.length&&!!this.children.find((e=>e.visible))})}addState(e,t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t}),this.children.push(t)}setLoading(e){this.children.forEach((t=>{t.setLoading?t.setLoading(e):t.loading=!!e&&t.name===e}))}async update(e,t){await Promise.all(this.children.map((i=>i.update(e,t))))}}),e("QXEventEx",class extends f{constructor(){super(...arguments),this.anyEventFns=[]}onAll(e){this.anyEventFns.includes(e)||this.anyEventFns.push(e)}emit(e,...t){super.emit(e,...t),this.anyEventFns.forEach((i=>{i(e,...t)}))}async asyncEmit(e,...t){const i=super.asyncEmit(e,...t),s=this.anyEventFns.map((i=>i(e,...t))),a=Promise.all(s),n=await i,r=await a;return n.concat(...r)}reset(){super.reset(),P(this.anyEventFns)}})),Ht=e("ControllerEvent",class{constructor(e){this.getBaseArgs=e,this.evt=new jt}async emit(e,t){await this.evt.asyncEmit(e,{...this.getBaseArgs(),eventName:e,...t||{}})}on(e,t){this.evt.on(e,t)}onAll(e){this.evt.onAll(e)}destroy(){this.getBaseArgs=void 0,this.evt.reset()}});var Kt="__self",Yt=e("BaseController",class{constructor(e,t,i,s){this.model=e,this.context=t,this.params=i,this.ctx=s,this.state={},this.name="",this.evt=new Ht(this.getEventArgs.bind(this)),this.mountCounter=new Xt(this.mounted.bind(this)),this.childNames=[],this.name=e.name||e.id,this.initState()}get _evt(){return this.evt}initState(){this.state.isCreated=!1,this.state.isMounted=!1}getEventArgs(){return{context:this.context,params:this.params,data:[],targetName:this.model.name,view:this.ctx.view}}async created(){this.mountCounter.enroll(Kt),await this.onCreated(),this.state.isCreated=!0,this.force((()=>{this.mountSelf()})),ibiz.log.debug("".concat(this.constructor.name,":").concat(this.name," onCreated")),this._evt.emit("onCreated",void 0)}async onCreated(){this.ctx.evt.on("onForecast",(e=>{this.childNames.includes(e)&&this.mountCounter.enroll(e)})),this.ctx.evt.on("onRegister",((e,t)=>{this.childNames.includes(e)&&t.evt.on("onMounted",(()=>{this.mountCounter.attend(e)}))}))}async mountSelf(){this.mountCounter.registration.get(Kt)||this.mountCounter.attend(Kt)}async mounted(){await this.onMounted(),this.state.isMounted=!0,ibiz.log.debug("".concat(this.constructor.name,":").concat(this.name," onMounted")),this._evt.emit("onMounted",void 0)}async onMounted(){}async destroyed(){await this.onDestroyed(),ibiz.log.debug("".concat(this.constructor.name,":").concat(this.name," onDestroyed")),await this._evt.emit("onDestroyed",void 0),this.evt.destroy()}async onDestroyed(){}force(e){}getController(e,t=!1){return this.ctx.getController(e,t)}getTopView(){return this.ctx.getTopView()}listenNewController(e){this.ctx.evt.on("onRegister",e)}});async function qt(e,t){var i;const s=null==(i=ibiz.hub.getApp(t).model.appPFPluginRefs)?void 0:i.find((t=>t.pluginCode.toLowerCase()===e));if(s)return await ibiz.plugin.loadPlugin(s),"".concat(s.pluginType,"_").concat(s.pluginCode);ibiz.log.error("找不到".concat(e,"的插件模型"))}var $t=e("CONTROL_PROVIDER_PREFIX","CONTROL");function Qt(e){return ibiz.register.get("".concat($t,"_").concat(e))}async function Jt(e){let t;const{controlType:i,controlStyle:s,sysPFPluginId:a,appId:n}=e;if(a){const e=await qt(a,n);if(e&&(t=Qt(e)),t)return t;ibiz.log.error("找不到部件插件".concat(e,"对应的适配器"))}if(s&&"DEFAULT"!==s){if(t=Qt("".concat(i,"_").concat(s)),t)return t;ibiz.log.error("找不到部件类型:[".concat(i,"]的部件样式:[").concat(s,"]对应的适配器"),e)}if(t=Qt(i),t)return t;ibiz.log.error("找不到部件类型".concat(i,"对应的适配器"))}var Zt=e("EDITOR_PROVIDER_PREFIX","EDITOR");function ei(e){return ibiz.register.get("".concat(Zt,"_").concat(e))}var ti=e("FORMDETAIL_PROVIDER_PREFIX","FORMDETAIL");function ii(e){return ibiz.register.get("".concat(ti,"_").concat(e))}var si=e("GRIDCOLUMN_PROVIDER_PREFIX","GRIDCOLUMN");function ai(e){return ibiz.register.get("".concat(si,"_").concat(e))}var ni=e("PANELITEM_PROVIDER_PREFIX","PANELITEM");function ri(e){return ibiz.register.get("".concat(ni,"_").concat(e.toUpperCase()))}var oi=e("UIACTION_PROVIDER_PREFIX","UIACTION");function ci(e,t){ibiz.register.register("".concat(oi,"_").concat(e),t)}function li(e){return ibiz.register.get("".concat(oi,"_").concat(e))}async function di(e){let i;const{uiactionMode:s,sysPFPluginId:a,appId:n}=e;if(a){const e=await qt(a,n);if(e&&(i=li(e)),i)return i;ibiz.log.error("找不到界面行为插件".concat(e,"对应的适配器"))}if(i=li(s),i)return i;throw new t("找不界面行为模式".concat(s,"对应的适配器"))}var hi=e("VIEW_PROVIDER_PREFIX","VIEW");function ui(e){return ibiz.register.get("".concat(hi,"_").concat(e))}var pi=e("PORTLET_PROVIDER_PREFIX","PORTLET");function Ei(e){return ibiz.register.get("".concat(pi,"_").concat(e))}var gi=e("ViewController",class extends Yt{constructor(e,t,i,s){super(ibiz.util.layoutPanel.fill(e),a.create({},t),i||{},new Gt(s)),this.session={},this.modal=new Ve({}),this.providers={},this.engines=[],this.slotProps={},this.counters={},this.viewLoading=new Ut,this.isCloseView=!1,this._isActive=!0,s&&s.registerController(this.model.name,this),this.ctx.init(this),this.initEngines()}get _evt(){return this.evt}get parentView(){var e;return null==(e=this.ctx.parent)?void 0:e.view}get isActive(){return this._isActive}onActivated(){this._isActive=!0,ibiz.log.debug("视图[".concat(this.model.name,"](").concat(this.model.id,")激活"))}onDeactivated(){this._isActive=!1,ibiz.log.debug("视图[".concat(this.model.name,"](").concat(this.model.id,")暂停"))}initEngines(){const e=oe(this.model);if(e.length)e.forEach((e=>{const t=ibiz.engine.getEngine(e,this);t&&this.engines.push(t)}));else{const e=ibiz.engine.getEngine({engineCat:"VIEW",engineType:this.model.viewType},this);e&&this.engines.push(e)}}async initCounters(){const e=this.model.viewLayoutPanel,{appCounterRefs:t}=e;if(t&&t.length>0)try{await Promise.all(t.map((async e=>{const t=await Je.getCounterByRef(e,this.context);this.counters[e.id]=t})))}catch(e){console.error(e)}}initState(){super.initState(),this.state.isLoading=!1,this.state.caption=this.model.caption,this.state.srfactiveviewdata=null}async onCreated(){await super.onCreated(),this.modal.hooks.beforeDismiss.tapPromise((async e=>{await this._evt.emit("onCloseView",{...e})})),this._evt.emit("onViewInfoChange",{caption:this.model.caption,title:this.model.title}),this.handleContextParams();const e=this.model.viewLayoutPanel;this.childNames.push(e.name);const t=await Jt(e);this.providers[e.name]=t;const i=ne(this.model);i&&await Promise.all(i.map((async e=>{const t=await Jt(e);this.providers[e.name||e.id]=t}))),await this.initCounters();const s=re(this.model);s.length&&(this.scheduler=ibiz.scheduler.createViewScheduler(s),this.scheduler.defaultParamsCb=()=>this.getEventArgs(),this.scheduler.hasViewEventTrigger&&this.evt.onAll(((e,t)=>{this.scheduler.triggerViewEvent(t)}))),this.engines.length&&await Promise.all(this.engines.map((e=>e.onCreated())))}async onMounted(){var e;await super.onMounted(),this.engines.length&&await Promise.all(this.engines.map((e=>e.onMounted()))),null==(e=this.scheduler)||e.startTimerTrigger()}async onDestroyed(){await super.onDestroyed(),this.engines.length&&await Promise.all(this.engines.map((e=>e.onDestroyed()))),this.ctx.destroy(),this.context.destroy(),this.engines=[],this.scheduler&&this.scheduler.destroy(),ibiz.log.debug("视图[".concat(this.model.name,"](").concat(this.model.id,")销毁"))}handleContextParams(){this.context.srfappid=this.model.appId,(b(this.context.srfsessionid)||_(this.context.srfsessionid))&&(this.context.srfsessionid=w());const e=this.model.appViewNavContexts;let t={};E(e)&&(t=j(e,this.context,this.params)),Object.assign(this.context,t);const i=this.model.appViewNavParams;let s={};E(i)&&(s=j(i,this.context,this.params)),Object.assign(this.params,s),this.state.isMounted&&this.callUIAction("Refresh")}async call(e,t){let i;for(const s of this.engines)if(i=await s.call(e,t),void 0!==i)break;return i}async callUIAction(e,i){const s=this.call(e,i);if(void 0===s)throw new t("没有引擎支持预置界面行为".concat(e));return s}async closeView(e={ok:!1,data:[]}){await this.modal.dismiss(e)}startLoading(){this.viewLoading.begin(),this.state.isLoading=this.viewLoading.isLoading}endLoading(){this.viewLoading.end(),this.state.isLoading=this.viewLoading.isLoading}setLayoutPanel(e){var t;this.layoutPanel=e,this.layoutPanel.state.isMounted?this.mountCounter.attend(this.layoutPanel.model.name):this.layoutPanel.evt.on("onMounted",(()=>{this.mountCounter.attend(this.layoutPanel.model.name)})),(null==(t=this.scheduler)?void 0:t.hasControlEventTrigger)&&e.evt.on("onControlEvent",(e=>{this.scheduler.triggerControlEvent(e.triggerControlName,e.triggerEvent)}))}}),mi=(e("MobViewController",class extends gi{}),e("EditorController",class{constructor(e,t){this.placeHolder="",this.editorParams={},this.model=e,this.parent=t,this.context=t.context,this.params=t.params}get readonly(){return!!this.model.readOnly}async init(){await this.onInit()}async onInit(){this.model.placeHolder&&(this.placeHolder=this.model.placeHolder),this.model.editorParams&&Object.keys(this.model.editorParams).forEach((e=>{this.editorParams[e.toLowerCase()]=this.model.editorParams[e]}))}handlePublicParams(e,t,i){const{navigateContexts:s,navigateParams:a}=this.model;let n={};s&&e&&(n=j(s,t,i,e));const r=Object.assign(t.clone(),n);let o={};a&&e&&(o=j(a,t,i,e));return{context:r,params:{...i,...o}}}toObj(e){if(!e)return;return new Function("return (".concat(e,");"))()}toBoolean(e){return Object.is("true",e)}})),fi=(e("CodeListEditorController",class extends mi{async loadCodeList(e){const{context:t,params:s}=this.handlePublicParams(e,this.context,this.params);if(this.model.appCodeListId){const e=await ibiz.hub.getApp(this.context.srfappid);let i=[];return i=await e.codeList.get(this.model.appCodeListId,t,s),i}throw new i(this.model,"请配置代码表")}}),e("ControlController",class extends Yt{constructor(e,t,i,s){super(e,t,i,s),this.providers={},this.registerToCtx();const a=ibiz.util.layoutPanel.get("".concat(e.controlType,"_DEFAULT"));a&&(this.controlPanel=a)}get _evt(){return this.evt}get view(){return this.ctx.view}registerToCtx(){this.ctx.registerController(this.model.name||this.model.id,this)}getEventArgs(){return{...super.getEventArgs(),data:this.getData()||[],ctrl:this}}initState(){super.initState(),this.state.isLoading=!1}async onCreated(){if(await super.onCreated(),this.controlPanel){this.childNames.push(this.controlPanel.name);const e=await Jt(this.controlPanel);this.providers[this.controlPanel.name]=e}this.initControlScheduler(this.model.controlLogics)}async onDestroyed(){await super.onDestroyed(),this.scheduler&&this.scheduler.destroy()}getControlType(){return this.model.controlType}getData(){return null}async startLoading(){this.state.isLoading=!0,this.ctx.startLoading()}async endLoading(){this.state.isLoading=!1,this.ctx.endLoading()}handlerAbilityParams(e){return{context:this.context.clone(),params:{...this.params},data:(null==e?void 0:e.data)||this.getData()||[]}}setLayoutPanel(e){this.layoutPanel=e,this.layoutPanel.state.isMounted?this.mountCounter.attend(this.layoutPanel.model.name):this.layoutPanel.evt.on("onMounted",(()=>{this.mountCounter.attend(this.layoutPanel.model.name)}))}initControlScheduler(e=[]){0!==e.length&&(this.scheduler=ibiz.scheduler.createControlScheduler(e),this.scheduler.defaultParamsCb=()=>this.getEventArgs())}})),wi=(e("MDControlController",class extends fi{get _evt(){return this.evt}initState(){super.initState(),this.state.items=[],this.state.selectedData=[],this.state.searchParams={},this.state.noSort=!1,this.state.sortQuery="",this.state.curPage=1,this.state.size=20,this.state.total=0,this.state.isLoaded=!1,this.state.singleSelect=!0,this.state.mdctrlActiveMode=0,this.state.groups=[]}async onCreated(){await super.onCreated(),this.setSort()}setSort(e,t){e&&t&&(this.state.sortQuery="".concat(e,",").concat(t))}async getFetchParams(e){const{curPage:t,size:i,sortQuery:s,noSort:a}=this.state,n={...this.params};return i&&(n.page=t-1,n.size=i),!a&&s&&(n.sort=s),await this._evt.emit("onBeforeLoad",void 0),Object.assign(n,{...this.state.searchParams}),e&&Object.assign(n,e),n}async load(e={}){await this.startLoading();try{const t=!0===e.isInitialLoad,i=!0===e.isLoadMore;t?this.state.curPage=1:i&&(this.state.curPage+=1);const{context:s}=this.handlerAbilityParams(e),a=await this.getFetchParams(null==e?void 0:e.params),n=await this.service.fetch(s,a);"number"==typeof n.total&&(this.state.total=n.total),i?this.state.items.push(...n.data):this.state.items=n.data,await this.afterLoad(e,n.data),this.state.isLoaded=!0,await this._evt.emit("onLoadSuccess",{isInitialLoad:t})}finally{await this.endLoading()}return this.state.items}async afterLoad(e,t){return t}async refresh(){await this.load({isInitialLoad:!1})}async remove(e){const{context:i,params:s,data:a}=this.handlerAbilityParams(e);if(!(null==a?void 0:a.length))throw new t("未选中数据");if(!0!==(null==e?void 0:e.silent)){if(!await ibiz.confirm.error({title:"数据删除",desc:"确认删除数据?"}))return}await this.startLoading();let n=!1;try{const t=Z(this.model.appDataEntityId);await Promise.allSettled(a.map((async e=>{if(0!==e.srfuf){const a=i.clone();a[t]=e.srfkey,await this.service.remove(a,s),n=!0}this.afterRemove(a)}))),!0!==(null==e?void 0:e.silent)&&ibiz.notification.success({desc:"数据[".concat(a.map((e=>e.srfmajortext)).join("、"),"]删除成功!")}),n&&this.refresh()}finally{await this.endLoading()}this.state.selectedData=[],await this._evt.emit("onRemoveSuccess",void 0)}afterRemove(e){const t=this.state.items.findIndex((t=>t.srfkey===e.srfkey));this.state.items.splice(t,1)}getData(){return this.state.selectedData||[]}setActive(e){return this._evt.emit("onActive",{data:[e]})}setSelection(e){const{selectedData:t}=this.state;d(t,e)||(this.state.selectedData=e,this._evt.emit("onSelectionChange",{data:e}))}async onRowClick(e){const{selectedData:t}=this.state,i=t.filter((t=>t.srfkey!==e.srfkey));i.length===t.length?this.setSelection(this.state.singleSelect?[e]:t.concat([e])):this.setSelection(i),1===this.state.mdctrlActiveMode&&await this.setActive(e)}async onDbRowClick(e){2===this.state.mdctrlActiveMode&&await this.setActive(e)}async importData(){}async exportData(e){}}),e("HubController",class{constructor(){this.session={}}login(e,t){return ibiz.auth.login(e,t)}logout(){return ibiz.auth.logout()}})),Ii=class{constructor(){this.convert=new class{constructor(){this.appMenu=new class{parse(e){return e}}}},this.controller=new wi,this.appMap=new Map,this.apps=new Map,this.view2appMap=new Map,this.views=new Map,this.dataEntities=new Map,this.config=new class{constructor(){this.view=new class{constructor(){this.viewConfigs=new Map}set(e,t){this.viewConfigs.set(e,t)}async get(e){if(!this.viewConfigs.has(e)){const i=await ibiz.hub.getAppView(e);if(!i)throw new t("视图[".concat(e,"]不存在"));this.set(i.id,{id:i.id,codeName:i.codeName,openMode:i.openMode,width:i.width,height:i.height,appDataEntityId:i.appDataEntityId,redirectView:i.redirectView})}return this.viewConfigs.get(e)}}}},this.defaultAppIndexViewName="Index"}calcAppViewId(e){let t="";if(-1!==e.indexOf(".")){const i=e.split(".");t=i[i.length-1]}else t=e.toLowerCase();return t}registerModelLoaderProvider(e){this.modelLoaderProvider=e}registerApp(e){this.apps.set(e.codeName,e)}registerAppView(e){this.views.set(e.codeName,e)}registerAppDataEntity(e,t=ibiz.env.appId){this.dataEntities.has(t)||this.dataEntities.set(t,new Map);this.dataEntities.get(t).set(e.id,e)}setAppView(e,t=ibiz.env.appId){const i=this.calcAppViewId(e);this.view2appMap.set(i,t)}hasAppView(e){const t=this.calcAppViewId(e);return this.view2appMap.has(t)}async getAppView(e){const i=this.calcAppViewId(e),s=this.view2appMap.get(i)||ibiz.env.appId;if(this.appMap.has(s)||await this.createApp(s),this.views.has(i))return this.views.get(i);if(this.modelLoaderProvider){const e=await this.modelLoaderProvider.getAppView(s,i);return this.registerAppView(e),e}throw new t("视图[".concat(i,"]不存在"))}async getAppDataEntity(e,i=ibiz.env.appId){if(this.dataEntities.has(i)){const t=this.dataEntities.get(i);if(t.has(e))return t.get(e)}if(this.modelLoaderProvider){let t;return t=-1!==e.indexOf(".")?await this.modelLoaderProvider.getAppDataEntity(i,e):await this.modelLoaderProvider.getAppDataEntityByCodeName(i,e),this.registerAppDataEntity(t,i),t}throw new t("未找到应用实体[".concat(e,"]"))}async createApp(e){if(this.appMap.has(e))return this.appMap.get(e);let i;if(this.apps.has(e))i=this.apps.get(e);else{if(!this.modelLoaderProvider)throw new t("未找到应用[".concat(e,"]模型"));i=await this.modelLoaderProvider.getApp(e),this.registerApp(i)}const s=new xt(i);return this.appMap.set(e,s),await s.init(),s}async getAppAsync(e=ibiz.env.appId){return this.createApp(e)}getApp(e){let t=null;return t=e?e instanceof Object?e.id:e:ibiz.env.appId,this.appMap.get(t)}},Di=e("EngineFactory",class{constructor(){this.viewEngines=new Map}register(e,t){this.viewEngines.set(e,t)}unRegister(e){this.viewEngines.delete(e)}getEngine(e,...t){const{engineType:i,engineCat:s}=e,a="".concat(s,"_").concat(i),n=this.viewEngines.get(a);if(n)return n(...t);ibiz.log.error("没有".concat(a,"对应的引擎"),e)}}),Ai=e("ViewEngineBase",class{constructor(e){this.view=e,this.initViewState()}get toolbar(){return this.view.getController("toolbar")}get leftToolbar(){return this.view.getController("lefttoolbar")}get rightToolbar(){return this.view.getController("righttoolbar")}get footerToolbar(){return this.view.getController("footertoolbar")}get viewLayoutPanel(){return this.view.layoutPanel}async onCreated(){const{childNames:e}=this.view;e.push("captionbar","toolbar")}async onMounted(){var e,t;const{model:i,childNames:s}=this.view;ibiz.log.debug("".concat(i.id,"的子组件:").concat(s.join(";"),"都已mounted"));if(!this.calcViewHeaderVisible()){const t=null==(e=this.viewLayoutPanel)?void 0:e.panelItems.view_header;t&&(t.state.visible=!1)}if(ibiz.env.isMob){if(!this.calcViewFooterVisible()){const e=null==(t=this.viewLayoutPanel)?void 0:t.panelItems.view_footer;e&&(e.state.visible=!1)}}}async onDestroyed(){}async call(e,t){if("GetData"===e)return this.getData()}initViewState(){}getData(){return[]}calcViewHeaderVisible(){var e,t,i,s;let a=!1;const{model:n}=this.view;if(!1===n.showCaptionBar){const t=null==(e=this.viewLayoutPanel)?void 0:e.panelItems.view_captionbar;t&&(t.state.visible=!1)}else a=!0;if(ibiz.env.isMob){if(this.leftToolbar)a=!0;else{const e=null==(t=this.viewLayoutPanel)?void 0:t.panelItems.lefttoolbar;e&&(e.state.visible=!1)}if(this.rightToolbar)a=!0;else{const e=null==(i=this.viewLayoutPanel)?void 0:i.panelItems.righttoolbar;e&&(e.state.visible=!1)}}else if(this.toolbar)a=!0;else{const e=null==(s=this.viewLayoutPanel)?void 0:s.panelItems.view_toolbar;e&&(e.state.visible=!1)}return a}calcViewFooterVisible(){let e=!1;return this.footerToolbar&&(e=!0),e}async loadEntityData(){const{appDataEntityId:e}=this.view.model,{evt:i,context:s,params:a}=this.view;if(!e)throw new t("该视图没有实体,无法加载实体数据");const n=ibiz.hub.getApp(s.srfappid),r=await n.deService.exec(e,"get",s,a),{data:o}=r;o&&(this.view.state.srfactiveviewdata=o,i.emit("onDataChange",{actionType:"LOAD",data:[o]}),o.srfkey&&i.emit("onViewInfoChange",{dataInfo:o.srfmajortext||""}))}}),Pi=(e("MDViewEngine",class extends Ai{get xdataControlName(){return this.view.model.xdataControlName}get searchForm(){return this.view.getController("searchform")}get searchBar(){return this.view.getController("searchbar")}get xdataControl(){return this.view.getController(this.xdataControlName)}async onCreated(){await super.onCreated();const{childNames:e}=this.view;e.push(this.xdataControlName,"searchform","searchbar")}async onMounted(){await super.onMounted();const{model:e}=this.view;this.xdataControl.evt.on("onActive",(async e=>{await this.openData(e)})),this.xdataControl.evt.on("onSelectionChange",(async e=>{var t;null==(t=this.toolbar)||t.calcButtonState(e.data[0],this.xdataControl.model.appDataEntityId)})),this.xdataControl.evt.on("onBeforeLoad",(()=>{this.xdataControl.state.searchParams=this.getSearchParams()})),this.xdataControl.evt.on("onLoadSuccess",(e=>{this.view.evt.emit("onDataChange",{...e,actionType:"LOAD"})})),this.xdataControl.evt.on("onRemoveSuccess",(e=>{this.view.evt.emit("onDataChange",{...e,actionType:"REMOVE"})})),this.xdataControl.evt.on("onSaveSuccess",(e=>{this.view.evt.emit("onDataChange",{...e,actionType:"SAVE"})}));const t=this.viewLayoutPanel.panelItems.view_searchform;if(t){const i=!!this.searchForm;t.state.keepAlive=i,t.state.visible=i&&!!e.expandSearchForm}this.searchForm&&this.searchForm.evt.on("onSearch",(()=>{this.refresh()})),this.searchBar&&this.searchBar.evt.on("onSearch",(()=>{this.refresh()})),!this.view.state.noLoadDefault&&e.loadDefault&&this.load()}async call(e,t){return"ToggleFilter"===e?(this.toggleFilter(),null):"Edit"===e||"View"===e?(await this.openData(t),null):"New"===e?(await this.newData(t),null):"Remove"===e?(await this.remove(t),null):"Import"===e?(await this.importData(),null):"Refresh"===e?(await this.refresh(),null):"ExportExcel"===e?(await this.exportData(t),null):"Copy"===e?(this.copy(t),null):"load"===e?(this.load(t),null):super.call(e,t)}getData(){return this.xdataControl.getData()}async openData(e){var t,i;const{data:s,event:a}=e,n=(e.context||this.view.context).clone(),r=e.params||this.view.params;n[((null==(t=s[0].srfdecodename)?void 0:t.toLowerCase())||Z(this.xdataControl.model.appDataEntityId)).toLowerCase()]=s[0].srfkey;-1===await(null==(i=this.view.scheduler)?void 0:i.triggerCustom("opendata",{context:n,params:r,data:s,event:a,view:this.view}))&&ibiz.log.warn("视图[".concat(this.view.model.codeName,"],未配置编辑打开视图"))}async newData(e){var t,s,a;const{data:n,event:r,copyMode:o}=e;if(!(null==(s=null==(t=this.view.model.viewLayoutPanel)?void 0:t.appViewLogics)?void 0:s.find((e=>"newdata"===e.id))))throw new i(this.view.model,"缺少newdata的视图逻辑");const c=this.view.context.clone();o&&(c.srfcopymode=!0);if(-1===await(null==(a=this.view.scheduler)?void 0:a.triggerCustom("newdata",{context:c,params:this.view.params,data:n,event:r,view:this.view})))throw new i(this.view.model,"缺少newdata的视图逻辑")}async remove(e){await this.xdataControl.remove(e)}async load(e={}){await this.xdataControl.load({isInitialLoad:!0,...e})}async refresh(){await this.xdataControl.refresh()}getSearchParams(){const e={};if(this.searchForm){const t=this.searchForm.getData()[0],i=Object.entries(t).reduce(((e,[t,i])=>(null!=i&&""!==i&&(e[t]=i),e)),{});Object.assign(e,i)}if(this.searchBar&&this.searchBar.state.query){const t={query:this.searchBar.state.query};Object.assign(e,t)}return e}async importData(){await this.xdataControl.importData()}async exportData(e){await this.xdataControl.exportData(e)}async copy(e){this.newData(Object.assign(e,{copyMode:!0}))}calcViewHeaderVisible(){let e=super.calcViewHeaderVisible();if(this.searchBar)e=!0;else{const e=this.viewLayoutPanel.panelItems.view_searchbar;e&&(e.state.visible=!1)}return e}toggleFilter(){if(this.searchForm){const e=this.viewLayoutPanel.panelItems.view_searchform;e&&(e.state.visible=!e.state.visible)}}}),class{constructor(){this.layoutPanel=new De}}),yi=class{},vi=class extends yi{constructor(e){super(),this.model=e,this.srcParam=e.srcLogicParamId,this.dstParam=e.dstLogicParamId}get dstField(){return this.model.dstFieldName.toLowerCase()}get op(){return this.model.condOP}get type(){return this.model.paramType}get value(){return this.model.paramValue}test(e,t,a){const n=e.params[this.dstParam];switch(this.type){case"ENTITYFIELD":{if(!this.value)throw new i(this.model,"当前条件值类型为[数据对象属性],缺少配置条件值");const e=null!=a[this.value]?a[this.value]:t[this.value];return de(n[this.dstField],this.op,e)}case"SRCENTITYFIELD":{if(!this.value)throw new i(this.model,"当前条件值类型为[源数据对象属性],缺少配置条件值");const t=e.params[this.srcParam];return de(n[this.dstField],this.op,t[this.value])}case"CURTIME":throw new s(this.model,"暂未支持条件值类型为[当前时间]");default:return de(n[this.dstField],this.op,this.value)}}},Ti=class e extends yi{constructor(t){super(),this.model=t;const i=t.deuilogicLinkConds||[];this.conds=i.map((t=>"SINGLE"===t.logicType?new vi(t):new e(t)))}get op(){return this.model.groupOP}get notMode(){return!0===this.model.notMode}test(e,t,s){let a=!0;if(0===this.conds.length)throw new i(this.model,"界面连接条件逻辑组未配置逻辑项");for(let i=0;i<this.conds.length;i++){const n=this.conds[i].test(e,t,s);if("AND"===this.op&&!1===n){a=!1;break}if("OR"===this.op&&!0===n){a=!0;break}}return this.notMode?!a:a}},Ci=class{constructor(e){this.model=e,this.links=(e.deuilogicLinks||[]).map((e=>new class{constructor(e){this.model=e,this.srcNode=null,this.dstNode=null,this.groupCond=null;const{linkMode:t,deuilogicLinkGroupCond:i}=this.model;0===t&&i&&(this.groupCond=new Ti(i))}async exec(e){const{linkMode:t}=this.model,{context:i,data:a}=e;switch(t||0){case 0:return!this.groupCond||this.groupCond.test(e,i,a&&a.length>0?a[0]:{});case 1:return!0;case 2:throw new s(this.model,"未支持的逻辑连接类型: 异步结束");case 3:throw new s(this.model,"未支持的逻辑连接类型: 异步拒绝");case 9:throw new s(this.model,"未支持的逻辑连接类型: 异常处理");default:throw new s(this.model,"未支持的逻辑连接类型:".concat(t))}}}(e)))}},bi=class extends Ci{async exec(e){const{dstAppDataEntityId:t,dstAppDEActionId:s,dstDEUILogicParamId:a,retDEUILogicParamId:n}=this.model;if(!t)throw new i(this.model,"未指定应用实体");if(!s)throw new i(this.model,"未指定实体行为");const r=e.params[a],o=ibiz.hub.getApp(e.context.srfappid),c=await o.deService.exec(t,s,e.context,r,e.viewParams);c.ok&&(e.params[n]=c.data)}},Vi=class extends Ci{async exec(e){const{dstAppDEUIActionId:t,dstDEUILogicParamId:s}=this.model,{data:a,parameters:n}=e;if(!t)throw new i(this.model,"未配置界面行为");let r=[a];if(s){const t=e.params[s];r=t instanceof Array?t:[t]}await Fi.execAndResolved(t,{...n,data:r})}},_i=class extends Ci{async exec(e){}},Ri=class extends Ci{async exec(e){e.isEndNode=!0;const{returnType:t,rawValue:i,returnParamId:a}=this.model;switch(t){case"NONEVALUE":e.result=void 0;break;case"NULLVALUE":e.result=null;break;case"SRCVALUE":e.result=i;break;case"LOGICPARAM":e.result=e.params[a];break;default:throw new s(this.model,"暂未支持的结束节点返回值类型: ".concat(t))}}};function Li(e,t){const{srcDEUILogicParamId:i,srcFieldName:a,srcValue:n}=t,r=t.srcValueType||"SRCDLPARAM";let o;switch(r){case"SRCDLPARAM":o=e.params[i];break;case"NULLVALUE":return null;case"NONEVALUE":return;case"SRCVALUE":return n;case"VIEWPARAM":o=e.viewParams;break;case"APPDATA":o=e.context;break;case"ENVPARAM":o=R(ibiz.env);break;default:throw new s(t,"暂未支持源值类型".concat(r))}const c=null==a?void 0:a.toLowerCase();return o&&c&&(o=o[c]),o}var Oi=class extends Ci{async exec(e){const t=this.model.deuilogicNodeParams;(null==t?void 0:t.length)&&await Promise.all(t.map((t=>{if("SETPARAMVALUE"===t.paramAction)return this.setParamValue(t,e);throw new s(t,"暂未支持逻辑处理参数操作".concat(t.paramAction))})))}setParamValue(e,t){const{dstFieldName:i,dstDEUILogicParamId:s}=e,a=null==i?void 0:i.toLowerCase(),n=Li(t,e);a?t.params[s][a]=n:t.params[s]=n}},Ni=class extends Ci{async exec(e){e.isEndNode=!0;const{invokeMethod:s,invokeCtrlId:a,invokeParamId:n}=this.model;if(!a)throw new i(this.model,"没有配置界面对象");if(!n)throw new i(this.model,"没有配置操作参数");if(!s)throw new i(this.model,"没有配置调用方法");const r=e.params[n];if(!r)throw new t("没有找到操作参数".concat(n));const o=e.params[a];if(!o)throw new t("没有找到界面对象".concat(a));if(!o[s]||!p(o[s]))throw new t("没有找到调用方法".concat(s));await o[s](r)}},Mi=class extends Ci{async exec(e){const{dstDEUILogicParamId:t,srcDEUILogicParamId:s}=this.model;if(!t||!s)throw new i(this.model,"缺少目标参数对象或者源参数对象配置");const a=Li(e,this.model);e.params[t]=a}},Wi=class{constructor(e){var t;if(this.model=e,this.nodes=new Map,this.params=new Map,!(null==(t=e.deuilogicNodes)?void 0:t.length))throw new i(e,"界面逻辑没有配置逻辑节点");e.deuilogicNodes.forEach((e=>{const{logicNodeType:t}=e;let i;switch(t){case"BEGIN":i=new _i(e);break;case"END":i=new Ri(e);break;case"DEACTION":i=new bi(e);break;case"DEUIACTION":i=new Vi(e);break;case"PREPAREJSPARAM":i=new Oi(e);break;case"BINDPARAM":i=new Mi(e);break;case"VIEWCTRLINVOKE":i=new Ni(e);break;default:throw new s(e,"未支持的逻辑节点类型: ".concat(t))}this.nodes.set(e.id,i)})),e.deuilogicParams.forEach((e=>{this.params.set(e.id,new class{constructor(e){this.model=e}calc(e){const t=this.model.id,a=this.model,{context:n,viewParams:r,data:o,parameters:c}=e,l=ibiz.hub.getApp(n.srfappid);if(a.default)e.params[t]=o&&o.length>0?o[0]:{};else if(a.activeContainerParam)e.params[t]=c.ctrl||c.view;else if(a.activeCtrlParam)e.params[t]=c.ctrl;else if(a.ctrlParam){const s=c.view.getController(a.codeName.toLowerCase());if(!s)throw new i(this.model,"视图逻辑初始化参数,未找到".concat(a.codeName,"指定部件对象"));e.params[t]=s}else if(a.activeViewParam)e.params[t]=c.view;else if(a.appGlobalParam)e.params[t]=ibiz.env;else if(a.applicationParam)e.params[t]=l;else if(a.entityListParam)e.params[t]=[];else{if(a.entityPageParam)throw new s(a,"未支持的逻辑参数类型: 分页查询结果");if(a.entityParam)e.params[t]={};else{if(a.lastReturnParam)throw new s(a,"未支持的逻辑参数类型: 上次调用返回");if(a.navContextParam)e.params[t]=n;else{if(a.navViewParamParam)throw new s(a,"未支持的逻辑参数类型: 视图路由参数");if(a.routeViewSessionParam)throw new s(a,"未支持的逻辑参数类型: 路由视图会话");if(a.simpleListParam)e.params[t]=[];else if(a.simpleParam)e.params[t]={};else if(a.viewNavDataParam)e.params[t]=r;else if(a.viewSessionParam)throw new s(a,"未支持的逻辑参数类型: 当前视图会话")}}}}renew(e){const t=this.model.id,i=this.model;if(i.entityListParam||i.simpleListParam||i.entityPageParam)e.params[t]=[];else{if(!i.simpleParam&&!i.entityParam)throw new s(i,"未支持的逻辑参数类型重新建立变量");e.params[t]={}}}}(e))})),this.nodes.forEach((e=>{e.links.forEach((t=>{t.srcNode=e,this.nodes.has(t.model.dstDEUILogicNodeId)&&(t.dstNode=this.nodes.get(t.model.dstDEUILogicNodeId))}))}))}initLogicParams(e){this.params.forEach((t=>{t.model.default&&(e.defaultParamName=t.model.id),t.calc(e)}))}async exec(e){const t=new class{constructor(e,t){this.deLogicParams=e,this.parameters=t,this.params={},this.result=null,this.isEndNode=!1,this.defaultParamName="Default"}get context(){return this.parameters.context}get data(){return this.parameters.data}get viewParams(){return this.parameters.params}resetParam(e){var t;null==(t=this.deLogicParams.get(e))||t.calc(this)}renewParam(e){var t;null==(t=this.deLogicParams.get(e))||t.renew(this)}}(this.params,e);this.initLogicParams(t);const{startDEUILogicNodeId:s}=this.model;if(!s||!this.nodes.has(s))throw new i(this.model,"未设置起始节点");{const e=this.nodes.get(s);await this.deepExec(e,t)}return t.isEndNode?t.result:t.params[t.defaultParamName]?t.params[t.defaultParamName]:null}async deepExec(e,t){await e.exec(t);const{links:i}=e;for(let s=0;s<i.length;s++){const a=i[s];if(await a.exec(t)&&a.dstNode&&(await this.deepExec(a.dstNode,t),!1===e.model.parallelOutput))break}}},xi=new Map;async function Si(e,i,s){const a=ibiz.hub.getApp(s.context.srfappid),n=await a.getDEUILogic(e,i);if(!n)throw new t("找不到实体".concat(i,"的界面逻辑").concat(e));xi.has(n)||xi.set(n,new Wi(n));const r=xi.get(n);return await r.exec(s),null}var Fi=e("UIActionUtil",class{static async exec(e,i){const s=await se(e);if(!s)throw new t("没找到".concat(e,"的界面行为模型"));return(await di(s)).exec(s,i)}static async execAndResolved(e,t){var i,s;const a=await this.exec(e,t);if(a.closeView)t.view.closeView();else if(a.refresh)switch(a.refreshMode){case 1:await t.view.callUIAction("Refresh");break;case 2:await(null==(i=t.view.parentView)?void 0:i.callUIAction("Refresh"));break;case 3:await(null==(s=t.view.getTopView())?void 0:s.callUIAction("Refresh"))}}}),Bi=class{async exec(e,t){const{context:s,params:a,data:n}=t,r={refresh:e.reloadData,refreshMode:e.refreshMode,closeView:e.closeEditView},{appDEUILogicId:o,appDataEntityId:c,uilogicAttachMode:l}=e;if("REPLACE"===l){if(!o)throw new i(e,"没有配置实体界面逻辑");return await Si(o,c,t),r}if(!await this.isConfirm(e))return this.returnError(r);const d=await this.execAction(e,t);if(Object.assign(r,d),!0===r.cancel)return this.returnError(r);const h=await this.doNextAction(e,{...t,context:r.nextContext||s,data:r.data||n,params:r.nextParams||a});if(h&&(Object.assign(r,h),!0===h.cancel))return this.returnError(r);if("AFTER"===e.uilogicAttachMode){if(!o)throw new i(e,"没有配置实体界面逻辑");await Si(o,c,t)}return r}returnError(e){return Object.assign(e,{refresh:!1,closeView:!1})}async isConfirm(e){return!e.enableConfirm||!e.confirmMsg||ibiz.modal.confirm({title:e.confirmMsg})}async doNextAction(e,t){const i=e.nextId;if(i)return Fi.exec(i,t)}async handleParams(e,t,i,s){let a=[];const n=Z(e.appDataEntityId);switch(e.actionTarget){case"NONE":a=[];break;case"SINGLEDATA":a=[i[0]];break;case"MULTIDATA":a=i;break;case"MULTIKEY":a=n&&i.length>0?i.map((e=>({[n]:e.srfkey||e[n]}))):[{}];break;case"SINGLEKEY":{const e=i[0]||{};a=n?[{[n]:e.srfkey||e[n]}]:[{}]}}const r=t.clone(),o=[...e.navigateContexts||[]];if(n&&"NONE"!==e.actionTarget){const{valueItem:t,paramItem:i}=e,s=i||n,a=t||"srfkey";o.unshift({key:s,value:a,rawValue:!1})}const c=["MULTIKEY","MULTIDATA"].includes(e.actionTarget)&&i.length>0,l=j(o,t,s,c?q(o,i):i[0]||{});Object.assign(r,l);const d=e.navigateParams;return{resultContext:r,resultData:a,resultParams:j(d,r,s,c?q(d,i):i[0]||{})}}},ki=e("BackendUIActionProvider",class extends Bi{async execAction(e,t){const{context:s,params:a,data:n,event:r}=t,o={},c=e.appDataEntityId,l=e.appDEMethodId;if(!c||!l)throw new i(e,"未配置实体或实体行为");const{resultContext:d,resultParams:h,resultData:u}=await this.handleParams(e,s,n,a),p={...a,...h},E=e.frontAppViewId;if(E){const e=await ibiz.commands.execute(Re.TAG,E,d,h,{event:r});if(!(null==e?void 0:e.ok))return o.cancel=!0,o;(null==e?void 0:e.ok)&&e.data&&(0===u.length&&u.push({}),u.forEach((t=>{t.srfactionparam=e.data})))}const g=ibiz.hub.getApp(null==s?void 0:s.srfappid),m=u.map((e=>{var t;return(null==(t=e.getOrigin)?void 0:t.call(e))||e||{}})),f=["MULTIKEY","MULTIDATA"].includes(e.actionTarget),w=await g.deService.exec(c,l,d,f?m:m[0],p);return w.ok&&e.successMsg&&ibiz.message.success(e.successMsg),Object.assign(o,{data:I(w.data)?w.data:[w.data],nextContext:d,nextParams:p}),o}}),Ui=e("SysUIActionProvider",class extends Bi{constructor(){super(...arguments),this.predefinedActionMap=new Map([["EDITVIEW_EXITACTION","Exit"],["EDITVIEW_SAVEANDEXITACTION","SaveAndExit"],["TREEVIEW_REFRESHPARENTACTION","RefreshParent"],["GRIDVIEW_EXPORTXMLACTION","ExportModel"],["GRIDVIEW_EXPORTACTION","ExportExcel"],["EDITVIEW_REMOVEANDEXITACTION","RemoveAndExit"],["GRIDVIEW_PRINTACTION","Print"],["EDITVIEW_NEXTRECORDACTION","NextRecord"],["GRIDVIEW_NEWROWACTION","NewRow"],["EDITVIEW_LASTRECORDACTION","LastRecord"],["EDITVIEW_PREVRECORDACTION","PrevRecord"],["GRIDVIEW_SEARCHBAR","ToggleFilter"],["EDITVIEW_SAVEANDSTARTWFACTION","SaveAndStart"],["EDITVIEW_NEWACTION","New"],["EDITVIEW_PRINTACTION","Print"],["EDITVIEW_COPYACTION","Copy"],["EDITVIEW_HELPACTION","Help"],["EDITVIEW_FIRSTRECORDACTION","FirstRecord"],["GRIDVIEW_REFRESHACTION","Refresh"],["EDITVIEW_SAVEANDNEWACTION","SaveAndNew"],["EDITVIEW_VIEWWFSTEPACTORACTION","ViewWFStep"],["EDITVIEW_SAVEACTION","Save"],["TREEVIEW_REFRESHALLACTION","RefreshAll"],["GRIDVIEW_IMPORTBAR","Import"],["GRIDVIEW_ROWEDITACTION","ToggleRowEdit"],["GRIDVIEW_NEWACTION","New"],["GRIDVIEW_EDITACTION","Edit"],["GRIDVIEW_HELPACTION","Help"],["EDITVIEW_REFRESHACTION","Refresh"],["GRIDVIEW_REMOVEACTION","Remove"],["GRIDVIEW_COPYACTION","Copy"],["GRIDVIEW_VIEWACTION","View"],["GRIDVIEW_SAVEROWACTION","SaveRow"],["APP_LOGIN","login"],["APP_LOGOUT","logout"]])}async execAction(e,t){const{view:i}=t,s=this.predefinedActionMap.get(e.predefinedType)||e.uiactionTag;if("Exit"===s)return{closeView:!0};return await i.callUIAction(s,t)||{}}}),zi=e("FrontUIActionProvider",class extends Bi{async execAction(e,t){const{context:a,params:n,data:r,event:o,noWaitRoute:c}=t;let l={};switch(e.frontProcessType){case"OPENHTMLPAGE":{const t=h.fill(e.htmlPageUrl,a,null==r?void 0:r[0]);window.open(t,"_blank");break}case"TOP":case"WIZARD":{const t=e.frontAppViewId;if(!t)throw new i(e,"未配置打开视图");const{resultContext:s,resultParams:d}=await this.handleParams(e,a,r,n),h=await ibiz.commands.execute(Re.TAG,t,s,d,{event:o,noWaitRoute:c});(null==h?void 0:h.ok)||(l.cancel=!0),(null==h?void 0:h.ok)&&h.data&&(l.data=h.data,l.nextContext=s,l.nextParams={...n,...d});break}case"OTHER":l=this.doOther(e,t);break;default:throw new s(e,"未支持的前台处理模式[".concat(e.frontProcessType,"]"))}return l}doOther(e,t){const{scriptCode:s}=e,{context:a,params:n,data:r,event:o}=t;if(s){return fe.execScriptFn({context:a,params:n,data:r,el:null==o?void 0:o.target},s)||{}}throw new i(e,"自定义类型缺少配置脚本代码")}}),Gi=e("WFWithdrawUIActionProvider",class extends Bi{async execAction(e,t){const{view:i}=t;let s=!1;return await ibiz.modal.confirm({title:"提示",desc:"是否确认执行撤回操作?"})&&i&&(await i.call("WFWithdraw",t),s=!0),{refresh:!1,closeView:s}}});function Xi(){const e=new zi;ci("FRONT",(()=>e));const t=new ki;ci("BACKEND",(()=>t));const i=new Ui;ci("SYS",(()=>i));const s=new Gi;ci("DEUIACTION_WFWithdraw",(()=>s))}var ji=class{constructor(e,t){this.logic=e,this.scheduler=t,this.type=e.logicType}execute(e){throw new t("Method not implemented.")}destroy(){}},Hi=class extends ji{constructor(){super(...arguments),this.initialized=!1}convertScriptArgs(e){return e}init(e,t,i){this.convertScriptArgs=t;const s=this.logic.scriptCode;this.scriptFn=fe.createScriptFn(e,s,i),this.initialized=!0}execute(e){const t=this.convertScriptArgs(e);return this.scriptFn.exec(t)}},Ki=class extends ji{execute(e){const{appDEUILogicId:t,appDataEntityId:s}=this.logic;if(!t)throw new i(this.logic,"没有配置实体界面逻辑");Si(t,s,e)}},Yi=class{constructor(e){this.triggers=new Map,this.executors=new Map,this.hasViewEventTrigger=!1,this.hasControlEventTrigger=!1,this.logics=e,e.forEach((e=>{try{const t=this.createExecutor(e);this.executors.set(e.id,t);const i=this.createTrigger(e);this.triggers.set(e.id,i),i.bindExecutor(t)}catch(e){ibiz.log.error(e.message)}}))}destroy(){this.triggers.forEach((e=>e.destroy())),this.executors.forEach((e=>e.destroy()))}getExecuteParams(e){let t={};return this.defaultParamsCb&&(t=this.defaultParamsCb()),N(e,t)}createTrigger(e){switch(e.triggerType){case"VIEWEVENT":this.hasViewEventTrigger=!0;break;case"CTRLEVENT":this.hasControlEventTrigger=!0}return ibiz.scheduler.triggerFactory.createTrigger(e,this)}createExecutor(e){return ibiz.scheduler.executorFactory.createExecutor(e,this)}getMatchTriggers(e){const t=[];return this.triggers.forEach((i=>{i.match(e)&&t.push(i)})),t}triggerAndExecute(e,t={}){const i=this.getMatchTriggers(e);if(i.length>0){const e=this.getExecuteParams(t);return i.map((t=>t.execute(e)))}}triggerItemDynaLogic(e,t,i){const s={itemName:e,triggerType:t},a=this.triggerAndExecute(s,i);if(null==a?void 0:a.length)return a.pop()}triggerItemVisible(e,t){return this.triggerItemDynaLogic(e,"ITEMVISIBLE",t)}triggerItemEnable(e,t){return this.triggerItemDynaLogic(e,"ITEMENABLE",t)}triggerItemBlank(e,t){return this.triggerItemDynaLogic(e,"ITEMBLANK",t)}startTimerTrigger(){this.getMatchTriggers({triggerType:"TIMER"}).forEach((e=>e.start()))}triggerCustom(e,t){const i=this.triggers.get(e);if(!i)return-1;const s=this.getExecuteParams(t);return i.execute(s)}triggerControlEvent(e,t){const i={ctrlName:e,eventName:t.eventName,triggerType:"CTRLEVENT"};this.triggerAndExecute(i,t)}},qi=class extends Yi{constructor(e){super(e.filter((e=>"APPVIEWENGINE"!==e.triggerType)))}},$i=class extends Yi{constructor(e){e.forEach((e=>{e.triggerType=e.logicTrigger})),super(e)}triggerViewEvent(e){const t={eventName:e.eventName,triggerType:"VIEWEVENT"};this.triggerAndExecute(t,e)}},Qi=class{constructor(){this.executorFactory=new class{constructor(){this.constructorMap=new Map}register(e,t){this.constructorMap.set(e,t)}createExecutor(e,t){const i=this.constructorMap.get(e.logicType);if(!i)throw new s(e,"逻辑类型 ".concat(e.logicType," 暂未支持!"));return i(e,t)}},this.triggerFactory=new class{constructor(){this.constructorMap=new Map}register(e,t){this.constructorMap.set(e,t)}createTrigger(e,t){const i=this.constructorMap.get(e.triggerType);if(!i)throw new s(e,"触发器类型 ".concat(e.triggerType," 暂未支持!"));return i(e,t)}}}createViewScheduler(e){return new $i(e)}createControlScheduler(e){return new qi(e)}},Ji=class{constructor(e,t){this.logic=e,this.scheduler=t,this.type=e.triggerType}bindExecutor(e){this.executor=e,"SCRIPT"===this.executor.type&&this.bindScriptExecutor(e)}bindScriptExecutor(e){e.initialized||e.init([],(e=>e),{isAsync:!0,singleRowReturn:!1})}match(e){return e.triggerType===this.type}execute(e){if(this.executor)return this.executor.execute(e);throw new t("".concat(this.logic.id,"没有绑定executor"))}destroy(){this.executor=void 0}},Zi=class extends Ji{},es=class extends Ji{bindExecutor(e){if(super.bindExecutor(e),"SCRIPT"!==this.executor.type)throw new t("预定义逻辑类型".concat(this.type,"的触发器类型只能是脚本"))}bindScriptExecutor(e){e.init(["context","viewparams","data","env"],(e=>{const{context:t,params:i,data:s}=e;return{context:t,params:i,data:(null==s?void 0:s[0])||{},env:ibiz.env}}),{singleRowReturn:!0,isAsync:!1})}match(e){return super.match(e)&&e.itemName===this.logic.itemName}execute(e){const i=this.executor.execute(e);if("boolean"==typeof i)return i;throw new t("".concat(this.logic.id,"逻辑返回值不是布尔值"))}},ts=class extends Ji{constructor(){super(...arguments),this.timer=null}start(){this.timer=setInterval((()=>{if(!this.scheduler.defaultParamsCb)throw new t("定时器缺少默认参数回调");const e=this.scheduler.defaultParamsCb();this.executor.execute(e)}),this.logic.timer)}destroy(){super.destroy(),this.timer&&clearInterval(this.timer)}},is=class extends ji{execute(e){return"opendata"===this.logic.id&&this.logic.builtinAppUILogic?this.executeOpenDataAppUILogic(this.logic.builtinAppUILogic,e):"newdata"===this.logic.id&&this.logic.builtinAppUILogic?this.executeNewDataAppUILogic(this.logic.builtinAppUILogic,e):void 0}async executeOpenDataAppUILogic(e,s){const{context:a,params:n,...r}=s,{data:o}=s;if(!(null==o?void 0:o[0]))throw new t("opendata没有可操作数据!");const c=e.openDataAppView;if(!c)throw new i(e,"opendata视图逻辑没有配置默认打开视图");const l=c.refAppViewId;if(!l)throw new i(e,"opendata视图逻辑的默认打开视图没有实际引用视图");const d=c.navigateContexts||[],h=Object.assign(a,j(d,a,n,o[0]));let u={};const p=c.navigateParams;E(p)&&(u=j(p,n,a,o[0])),await ibiz.commands.execute(Re.TAG,l,h,u,r)}async executeNewDataAppUILogic(e,t){const{context:a,params:n,...r}=t,{data:o}=t,{enableWizardAdd:c,enableBatchAdd:l,batchAddOnly:d,newDataAppView:h}=e;let u;if(c){if(u=await this.getWizardNewViewRef(e,t),!u)return}else{if(l)throw new s(e,"enableBatchAdd暂未支持");if(d)throw new s(e,"batchAddOnly暂未支持");if(u=h,!u||!u.refAppViewId)throw new i(e,"newdata视图逻辑没有配置默认新建数据视图")}let p={},g={};const m=(null==o?void 0:o[0])||{},f=u.navigateContexts;E(f)&&(p=j(f,a,n,m)),p=Object.assign(a,p);const w=u.navigateParams;E(w)&&(g=j(w,n,a,m)),a.srfcopymode&&(m.srfkey=void 0,g=Object.assign(g,m.$origin)),await ibiz.commands.execute(Re.TAG,u.refAppViewId,p,g,r)}async getWizardNewViewRef(e,s){var a;const{wizardAppView:n,newDataAppViews:r}=e,{context:o,params:c,...l}=s;if(!n||!n.refAppViewId)throw new i(e,"缺少默认索引实体选择视图");const d=await ibiz.commands.execute(Re.TAG,n.refAppViewId,o,c,{...l,openMode:"POPUPMODAL"});if(!d.ok)return;const h=null==(a=d.data)?void 0:a[0];if(!h)throw new t("请选中一条数据");const u=h.srfkey,p=null==r?void 0:r.find((e=>e.refMode===u));if(!p)throw new t("没有找到与索引类型".concat(u,"相关的实体的编辑视图"));return p}},ss=class extends Ji{constructor(e,t){super(e,t),this.logic=e,this.scheduler=t,this.listenEventNames=[];const i=e.eventNames.split(",");this.listenEventNames=i.map((e=>Te[e]||e))}match(e){return super.match(e)&&this.listenEventNames.includes(e.eventName)}},as=class extends Ji{constructor(e,t){super(e,t),this.logic=e,this.scheduler=t,this.listenEventNames=[];const i=e.eventNames.split(",");this.listenEventNames=i.map((e=>be[e]||e))}match(e){return super.match(e)&&e.ctrlName===this.logic.ctrlName&&this.listenEventNames.includes(e.eventName)}};var ns=((e,t,i)=>(i=null!=e?x(k(e)):{},((e,t,i,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of B(t))U.call(e,a)||a===i||S(e,a,{get:()=>t[a],enumerable:!(s=F(t,a))||s.enumerable});return e})(!t&&e&&e.__esModule?i:S(i,"default",{value:e,enumerable:!0}),e)))(z(),1);e("PluginStaticResource",class{constructor(e){this.styleElementMap=new Map,this.url=new URL(e);const t=ns.default.dirname(this.url.pathname);this.baseDir=t}dir(e){return ns.default.resolve(this.baseDir,e)}async loadStyle(e){const t=e.map((e=>{const t=this.dir(e);return!this.styleElementMap.has(t)&&(this.styleElementMap.set(t,null),new Promise(((e,i)=>{const s=document.createElement("link");s.setAttribute("type","text/css"),s.setAttribute("rel","stylesheet"),s.setAttribute("href",t),s.onload=e,s.onerror=i,document.head.appendChild(s)})))}));try{await Promise.all(t)}catch(e){ibiz.log.error(e)}}}),e("RemotePluginItem",class{constructor(e,t,i){this.tag=e,this.repo=t,this.config=i}})}}}));
|
|
1
|
+
System.register(["@ibiz-template/core","lodash-es","qx-util","qs","ramda","dayjs","dayjs/plugin/minMax","dayjs/plugin/isSameOrBefore","dayjs/plugin/quarterOfYear","dayjs/plugin/weekOfYear","dayjs/plugin/isoWeek","async-validator"],(function(t){"use strict";var e,a,s,i,n,o,r,c,l,d,h,u,p,m,g,f,E,w,I,v,D,y,C,A,P,b,T,x,N,L,R,V,O,M,S,_,F,W,k,B,U,z,G,j,X,Y,K,H,q,Q,$;return{setters:[function(t){e=t.RuntimeError,a=t.RuntimeModelError,s=t.ModelError,i=t.IBizContext,n=t.HttpResponse,o=t.HttpError,r=t.CoreConst,c=t.Net,l=t.NOOP,d=t.isElementSame,h=t.findRecursiveChild,u=t.StringUtil,p=t.recursiveIterate,m=t.debounceAndAsyncMerge,g=t.mergeDefaultInLeft,f=t.isOverlap,E=t.mergeInLeft,w=t.awaitTimeout,I=t.toNumberOrNil},function(t){v=t.isEmpty,D=t.debounce,y=t.isArray,C=t.isFunction},function(t){A=t.notNilEmpty,P=t.isNilOrEmpty,b=t.AsyncSeriesHook,T=t.QXEvent,x=t.createUUID,N=t.isArray,L=t.setCookie,R=t.clearCookie,V=t.clearAll,O=t.ascSort,M=t.descSort},function(t){S=t.default},function(t){_=t.isNotNil,F=t.isNil,W=t.mergeRight,k=t.isEmpty,B=t.clone,U=t.equals,z=t.where,G=t.mergeDeepRight,j=t.mergeLeft},function(t){X=t.default},function(t){Y=t.default},function(t){K=t.default},function(t){H=t.default},function(t){q=t.default},function(t){Q=t.default},function(t){$=t.default}],execute:function(){t({calcContentAlignStyle:function(t){const{valignSelf:e,halignSelf:a}=t,s={};if(e||a){switch(Object.assign(s,{display:"flex"}),e){case"TOP":Object.assign(s,{"align-items":"flex-start"});break;case"MIDDLE":Object.assign(s,{"align-items":"center"});break;case"BOTTOM":Object.assign(s,{"align-items":"flex-end"})}switch(a){case"LEFT":Object.assign(s,{"justify-content":"flex-start"});break;case"CENTER":Object.assign(s,{"justify-content":"center"});break;case"RIGHT":Object.assign(s,{"justify-content":"flex-end"});break;case"JUSTIFY":Object.assign(s,{"justify-content":"space-between"})}}return s},calcDeCodeNameById:Dt,calcDynaClass:wt,calcGridLayoutPos:function(t){const{layout:e,colXS:a,colXSOffset:s,colSM:i,colSMOffset:n,colMD:o,colMDOffset:r,colLG:c,colLGOffset:l}=t,d=(t,a)=>({span:(t&&-1!==t?t:"TABLE_24COL"===e?24:12)*("TABLE_24COL"===e?1:2),offset:a&&-1!==a?a:void 0});return{xs:d(a,s),sm:d(i,n),md:d(o,r),lg:d(c,l)}},calcLayoutHeightWidth:Et,calcMainStateOPPrivsStrs:vt,calcNavParams:mt,calcResPath:na,calcRouteContext:function(t){let e=[];e=e.sort(((t,e)=>e.length-t.length));const[a]=e;if(a){const t={};return a.forEach((([e,a])=>{t[e]=a})),t}return{}},compare:Wt,compareNumber:kt,contains:Bt,convertNavData:lt,convertNavDataByArray:dt,convertNavDataByObject:ht,convertObjectToNavParams:ut,execDELogic:Oa,execDELogicAction:Ma,execDELogicById:async function(t,a,s,i,n){const o=await async function(t,e,a){const s=await ibiz.hub.getAppDataEntity(e,a);return Ct(t,s)}(t,a,s.srfappid);if(!o)throw new e("".concat(a,"找不到实体逻辑").concat(t));return Oa(o,s,i,n)},execFieldLogics:Sa,execUILogic:Ys,filterFieldLogics:At,filterValueRules:ne,findChildFormDetails:Rt,findDELogic:Ct,findEditItem:Lt,findFieldById:Pt,findModelChild:gt,formatMultiData:pt,generateRules:ps,getAppCounterProvider:He,getAppViewRef:function(t,e){var a,s;let i=t.appViewRefs||[];(null==(s=null==(a=t.viewLayoutPanel)?void 0:a.appViewRefs)?void 0:s.length)&&(i=i.concat(t.viewLayoutPanel.appViewRefs));return i.find((t=>t.name===e||t.id===e))},getChildNodeRSs:Nt,getControl:function(t,e){var a,s;let i=t.controls||[];(null==(s=null==(a=t.viewLayoutPanel)?void 0:a.controls)?void 0:s.length)&&(i=i.concat(t.viewLayoutPanel.controls));return i.find((t=>t.name===e||t.codeName===e||t.id===e))},getControlProvider:Ce,getControlsByView:Vt,getDeACMode:async function(t,e,a){var s;const i=await ibiz.hub.getAppDataEntity(e,a);return null==(s=i.appDEACModes)?void 0:s.find((e=>e.id===t))},getEditorProvider:be,getFormDetailProvider:Ne,getGridColumnProvider:Ve,getMatchResPath:ia,getOriginData:us,getPanelItemProvider:Se,getPortletProvider:je,getRootNode:Tt,getTreeNode:xt,getUIActionById:bt,getUIActionProvider:ke,getViewEngines:Mt,getViewLogics:Ot,getViewProvider:async function(t){let e;const{viewType:a,viewStyle:s,sysPFPluginId:i,appId:n}=t;if(i){const t=await ve(i,n);if(t&&(e=Ue(t)),e)return e;ibiz.log.error("找不到视图插件".concat(t,"对应的适配器"))}if(s&&"DEFAULT"!==s){if(e=Ue("".concat(a,"_").concat(s)),e)return e;ibiz.log.error("找不到视图类型:[".concat(a,"]的视图样式:[").concat(s,"]对应的适配器"),t)}e||(e=Ue(a));e||(e=Ue("DEFAULT"));return e},getWFContext:Qt,getWFSubmitViewId:function(t,e){var a;const{type:s,sequenceflowview:i,sequenceflowmobview:n}=e,o=(null==(a=t.viewLayoutPanel)?void 0:a.appViewRefs)||t.appViewRefs,r=s?"WFUTILACTION@".concat(s.toUpperCase()):"WFACTION@".concat(ibiz.env.isMob?n:i),c=o.find((t=>t.name===r));return null==c?void 0:c.refAppViewId},hasDeCodeName:yt,install:function(){const{ibiz:t}=window;t.util=new Xi,t.hub=new zi,t.register=new ct,t.config=new rt,t.auth=new ja,t.engine=new Gi,he(),Zs(),Je(),ibiz.scheduler=new Ji,ibiz.scheduler.triggerFactory.register("ITEMVISIBLE",((t,e)=>new en(t,e))),ibiz.scheduler.triggerFactory.register("ITEMENABLE",((t,e)=>new en(t,e))),ibiz.scheduler.triggerFactory.register("ITEMBLANK",((t,e)=>new en(t,e))),ibiz.scheduler.triggerFactory.register("TIMER",((t,e)=>new an(t,e))),ibiz.scheduler.triggerFactory.register("CUSTOM",((t,e)=>new tn(t,e))),ibiz.scheduler.triggerFactory.register("VIEWEVENT",((t,e)=>new nn(t,e))),ibiz.scheduler.triggerFactory.register("CTRLEVENT",((t,e)=>new on(t,e))),ibiz.scheduler.executorFactory.register("SCRIPT",((t,e)=>new Ki(t,e))),ibiz.scheduler.executorFactory.register("APPDEUILOGIC",((t,e)=>new Hi(t,e))),ibiz.scheduler.executorFactory.register("DEUILOGIC",((t,e)=>new Hi(t,e))),ibiz.scheduler.executorFactory.register("APPUILOGIC",((t,e)=>new sn(t,e)))},installCommand:he,isValueChange:hs,matchMainState:It,openRedirectView:St,parseUserParams:ft,presetAppCounterProvider:Je,presetUIActionProvider:Zs,registerAppCounterProvider:Ye,registerControlProvider:function(t,e){ibiz.register.register("".concat(De,"_").concat(t),e)},registerEditorProvider:function(t,e){ibiz.register.register("".concat(Ae,"_").concat(t),e)},registerFormDetailProvider:function(t,e){ibiz.register.register("".concat(Te,"_").concat(t),e)},registerGridColumnProvider:function(t,e){ibiz.register.register("".concat(Le,"_").concat(t),e)},registerPanelItemProvider:function(t,e){ibiz.register.register("".concat(Oe,"_").concat(t.toUpperCase()),e)},registerPortletProvider:function(t,e){ibiz.register.register("".concat(ze,"_").concat(t),e)},registerUIActionProvider:Fe,registerViewProvider:function(t,e){ibiz.register.register("".concat(Be,"_").concat(t),e)},strContain:Ut,testCond:Ft,toLocalOpenWFRedirectView:_t,verifyDeRules:Xt,verifyFormGroupLogic:Kt,verifyPanelGroupLogic:Ht});var J,Z,tt=Object.create,et=Object.defineProperty,at=Object.getOwnPropertyDescriptor,st=Object.getOwnPropertyNames,it=Object.getPrototypeOf,nt=Object.prototype.hasOwnProperty,ot=(J={"../../node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js"(t,e){function a(t){if("string"!=typeof t)throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}function s(t,e){for(var a,s="",i=0,n=-1,o=0,r=0;r<=t.length;++r){if(r<t.length)a=t.charCodeAt(r);else{if(47===a)break;a=47}if(47===a){if(n===r-1||1===o);else if(n!==r-1&&2===o){if(s.length<2||2!==i||46!==s.charCodeAt(s.length-1)||46!==s.charCodeAt(s.length-2))if(s.length>2){var c=s.lastIndexOf("/");if(c!==s.length-1){-1===c?(s="",i=0):i=(s=s.slice(0,c)).length-1-s.lastIndexOf("/"),n=r,o=0;continue}}else if(2===s.length||1===s.length){s="",i=0,n=r,o=0;continue}e&&(s.length>0?s+="/..":s="..",i=2)}else s.length>0?s+="/"+t.slice(n+1,r):s=t.slice(n+1,r),i=r-n-1;n=r,o=0}else 46===a&&-1!==o?++o:o=-1}return s}var i={resolve:function(){for(var t,e="",i=!1,n=arguments.length-1;n>=-1&&!i;n--){var o;n>=0?o=arguments[n]:(void 0===t&&(t=process.cwd()),o=t),a(o),0!==o.length&&(e=o+"/"+e,i=47===o.charCodeAt(0))}return e=s(e,!i),i?e.length>0?"/"+e:"/":e.length>0?e:"."},normalize:function(t){if(a(t),0===t.length)return".";var e=47===t.charCodeAt(0),i=47===t.charCodeAt(t.length-1);return 0!==(t=s(t,!e)).length||e||(t="."),t.length>0&&i&&(t+="/"),e?"/"+t:t},isAbsolute:function(t){return a(t),t.length>0&&47===t.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var t,e=0;e<arguments.length;++e){var s=arguments[e];a(s),s.length>0&&(void 0===t?t=s:t+="/"+s)}return void 0===t?".":i.normalize(t)},relative:function(t,e){if(a(t),a(e),t===e)return"";if((t=i.resolve(t))===(e=i.resolve(e)))return"";for(var s=1;s<t.length&&47===t.charCodeAt(s);++s);for(var n=t.length,o=n-s,r=1;r<e.length&&47===e.charCodeAt(r);++r);for(var c=e.length-r,l=o<c?o:c,d=-1,h=0;h<=l;++h){if(h===l){if(c>l){if(47===e.charCodeAt(r+h))return e.slice(r+h+1);if(0===h)return e.slice(r+h)}else o>l&&(47===t.charCodeAt(s+h)?d=h:0===h&&(d=0));break}var u=t.charCodeAt(s+h);if(u!==e.charCodeAt(r+h))break;47===u&&(d=h)}var p="";for(h=s+d+1;h<=n;++h)h!==n&&47!==t.charCodeAt(h)||(0===p.length?p+="..":p+="/..");return p.length>0?p+e.slice(r+d):(r+=d,47===e.charCodeAt(r)&&++r,e.slice(r))},_makeLong:function(t){return t},dirname:function(t){if(a(t),0===t.length)return".";for(var e=t.charCodeAt(0),s=47===e,i=-1,n=!0,o=t.length-1;o>=1;--o)if(47===(e=t.charCodeAt(o))){if(!n){i=o;break}}else n=!1;return-1===i?s?"/":".":s&&1===i?"//":t.slice(0,i)},basename:function(t,e){if(void 0!==e&&"string"!=typeof e)throw new TypeError('"ext" argument must be a string');a(t);var s,i=0,n=-1,o=!0;if(void 0!==e&&e.length>0&&e.length<=t.length){if(e.length===t.length&&e===t)return"";var r=e.length-1,c=-1;for(s=t.length-1;s>=0;--s){var l=t.charCodeAt(s);if(47===l){if(!o){i=s+1;break}}else-1===c&&(o=!1,c=s+1),r>=0&&(l===e.charCodeAt(r)?-1==--r&&(n=s):(r=-1,n=c))}return i===n?n=c:-1===n&&(n=t.length),t.slice(i,n)}for(s=t.length-1;s>=0;--s)if(47===t.charCodeAt(s)){if(!o){i=s+1;break}}else-1===n&&(o=!1,n=s+1);return-1===n?"":t.slice(i,n)},extname:function(t){a(t);for(var e=-1,s=0,i=-1,n=!0,o=0,r=t.length-1;r>=0;--r){var c=t.charCodeAt(r);if(47!==c)-1===i&&(n=!1,i=r+1),46===c?-1===e?e=r:1!==o&&(o=1):-1!==e&&(o=-1);else if(!n){s=r+1;break}}return-1===e||-1===i||0===o||1===o&&e===i-1&&e===s+1?"":t.slice(e,i)},format:function(t){if(null===t||"object"!=typeof t)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t);return function(t,e){var a=e.dir||e.root,s=e.base||(e.name||"")+(e.ext||"");return a?a===e.root?a+s:a+t+s:s}("/",t)},parse:function(t){a(t);var e={root:"",dir:"",base:"",ext:"",name:""};if(0===t.length)return e;var s,i=t.charCodeAt(0),n=47===i;n?(e.root="/",s=1):s=0;for(var o=-1,r=0,c=-1,l=!0,d=t.length-1,h=0;d>=s;--d)if(47!==(i=t.charCodeAt(d)))-1===c&&(l=!1,c=d+1),46===i?-1===o?o=d:1!==h&&(h=1):-1!==o&&(h=-1);else if(!l){r=d+1;break}return-1===o||-1===c||0===h||1===h&&o===c-1&&o===r+1?-1!==c&&(e.base=e.name=0===r&&n?t.slice(1,c):t.slice(r,c)):(0===r&&n?(e.name=t.slice(1,o),e.base=t.slice(1,c)):(e.name=t.slice(r,o),e.base=t.slice(r,c)),e.ext=t.slice(o,c)),r>0?e.dir=t.slice(0,r-1):n&&(e.dir="/"),e},sep:"/",delimiter:":",win32:null,posix:null};i.posix=i,e.exports=i}},function(){return Z||(0,J[st(J)[0]])((Z={exports:{}}).exports,Z),Z.exports}),rt=class{constructor(){this.view={enableDataInfoBar:!0},this.grid={editShowMode:"row",editSaveMode:"cell-blur"},this.appMenu={enableEcho:!0},this.codeList={timeout:36e5}}},ct=t("RegisterCenter",class{constructor(){this.providers=new Map}register(t,e){this.providers.set(t,e)}unRegister(t){this.providers.delete(t)}get(t,...e){const a=this.providers.get(t);if(a)return a(...e)}});function lt(t,...e){return!t||v(t)?{}:"[object Array]"===Object.prototype.toString.call(t)?dt(t,...e):"[object Object]"===Object.prototype.toString.call(t)?ht(t,...e):{}}function dt(t,...e){const a={};for(const s of t)if(A(s.value)&&!s.rawValue){const t=e.find((t=>!P(t)&&(t[s.value]||Object.prototype.hasOwnProperty.call(t,s.value))));t&&(a[s.key.toLowerCase()]=t[s.value])}else a[s.key.toLowerCase()]=s.value||null;return a}function ht(t,...e){const a={},s=/^%(.+)%$/;for(const i in t)if(A(t[i])&&s.test(t[i])){const s=t[i].substring(1,t[i].length-1),n=e.find((t=>Object.prototype.hasOwnProperty.call(t,s)));n&&(a[i.toLowerCase()]=n[s])}else a[i.toLowerCase()]=t[i]||null;return a}function ut(t){const e=[],a=/^%(.+)%$/;for(const s in t){let i=!0,n=t[s];A(t[s])&&a.test(t[s])&&(i=!1,n=t[s].substring(1,t[s].length-1)),e.push({key:s.toLowerCase(),rawValue:i,value:n})}return e}function pt(t,e){const a={};if(!t)return a;const s=Array.isArray(t)?t:ut(t),i=e[0];return s.forEach((t=>{const{rawValue:s,value:n}=t;!s&&n&&Object.prototype.hasOwnProperty.call(i,n)&&(a[n]=e.map((t=>t[n])).join(";"))})),a}function mt(t,e){const{deName:a,navFilter:s,pickupDEFName:i,navContexts:n,navParams:o}=t,{context:r,params:c,data:l,derValue:d}=e,h={},u={},p=d||l.srfkey;p&&(a&&(h[a]=p),s&&(u[s]=p),i&&(u["n_".concat(i.toLowerCase(),"_eq")]=p));const m=lt(n,r,c,l),g=lt(o,r,c,l);return Object.assign(h,m),Object.assign(u,g),{resultContext:h,resultParams:u}}function gt(t,e){if(t){const a=t.find((t=>t.id===e));if(a)return a}return null}function ft(t){const e={},a={},s={};for(const i in t)if(Object.prototype.hasOwnProperty.call(t,i)){const n=t[i];if(-1!==i.indexOf(".")){const t=i.split(".");switch(t[0]){case"SRFNAVPARAM":Object.assign(e,{[t[1]]:n});break;case"SRFNAVCTX":Object.assign(a,{[t[1]]:n});break;default:Object.assign(s,{key:n})}}}return{navigateContexts:e,navigateParams:a,other:s}}function Et(t){const{width:e,height:a,widthMode:s,heightMode:i}=t,n={width:"",height:""};return"FULL"===s?n.width="100%":e&&e>0&&(n.width=e>0&&e<=1?"".concat(100*e,"%"):"".concat(e,"PERCENTAGE"===s?"%":"px")),"FULL"===i?n.height="100%":a&&a>0&&(n.height=a>0&&a<=1?"".concat(100*a,"%"):"".concat(a,"PERCENTAGE"===i?"%":"px")),n}function wt(t,e){return jt.execScriptFn({data:e},t,{singleRowReturn:!0,isAsync:!1})}function It(t,e){const{mainStateAppDEFieldIds:a,demainStates:s}=t;if(a&&s){const t=[];return a.forEach((a=>{t.push(e[a])})),s.find((e=>{const{stateValue:a,state2Value:s,state3Value:i}=e;let n=!0;const o=[a,s,i];for(let e=0;e<t.length;e++)if("".concat(t[e])!=="".concat(o[e])){n=!1;break}return n}))}}function vt(t,e){const a=ibiz.hub.getApp().model,{demainStateOPPrivs:s,opprivAllowMode:i}=t,n=(null==s?void 0:s.map((t=>t.name)))||[];let o=[];if(i)o=n;else{o=[...a.deopprivs,...e.deopprivs].filter((t=>!n.includes(t.name))).map((t=>t.name))}return o}function Dt(t){return t.split(".").pop()}function yt(t,e){const a=Dt(e);return _(t[a])}function Ct(t,e){var a;return null==(a=e.appDELogics)?void 0:a.find((e=>e.id===t))}function At(t,e){var a,s;const i=[];return null==(a=t.appDEFields)||a.forEach((t=>{"compute"===e&&t.computeAppDEFLogicId?i.push(t.computeAppDEFLogicId):"change"===e&&t.onChangeAppDEFLogicId?i.push(t.onChangeAppDEFLogicId):"default"===e&&t.defaultValueAppDEFLogicId&&i.push(t.defaultValueAppDEFLogicId)})),(null==(s=t.appDELogics)?void 0:s.filter((t=>i.includes(t.id))))||[]}function Pt(t,e){var a;return null==(a=t.appDEFields)?void 0:a.find((t=>t.id===e))}async function bt(t){const[,,e]=t.split("@");return ibiz.hub.getApp(e).getUIAction(t)}function Tt(t){return t.detreeNodes.find((t=>t.rootNode))}function xt(t,e){return t.detreeNodes.find((t=>t.id===e))}function Nt(t,e){const a=e.parentId||Tt(t).id;return t.detreeNodeRSs.filter((t=>{return t.parentDETreeNodeId===a&&(s=t.searchMode,i=e.hasQuery,3===s||(i?1===s:2===s));var s,i}))}function Lt(t,e){var a;return null==(a=t.degridEditItems)?void 0:a.find((t=>t.codeName===e))}function Rt(t){let e;switch(t.detailType){case"TABPANEL":e=t.deformTabPages;break;case"FORMPAGE":case"TABPAGE":case"GROUPPANEL":e=t.deformDetails}return e||[]}function Vt(t){const{viewLayoutPanel:e}=t,a=t.controls||[];return e&&a.push(...e.controls||[]),a}function Ot(t){const{viewLayoutPanel:e}=t,a=t.appViewLogics||[];return e&&a.push(...e.appViewLogics||[]),a}function Mt(t){const{viewLayoutPanel:e}=t,a=t.appViewEngines||[];return e&&a.push(...e.appViewEngines||[]),a}async function St(t,e,s={},i={}){return async function(t,e,s={},i={}){var n;const o=t.appViewNavContexts||[],r=lt(o,e,s);e=Object.assign(e.clone(),r);const c=t.appViewNavParams||[],l=lt(c,e,s);Object.assign(s,l);const d=t.appDataEntityId,h=Dt(d);let u=(null==(n=i.data)?void 0:n[0])||{};e[h]=u[h]||e[h]||s[h];const p=t.getDataAppDEActionId,m=ibiz.hub.getApp(t.appId),g=await m.deService.getService(d);ibiz.loading.showRedirect();try{const t=await g.exec(p||"get",e,s);if(t.ok){u=t.data;let a=u.linkurl;if(a)return e.srfprocessinstanceid&&(a+=";srfprocessinstanceid=".concat(e.srfprocessinstanceid)),ibiz.env.dev&&-1!==a.indexOf("appredirectview?")&&(a=a.slice(a.indexOf("appredirectview?"))),a.startsWith("http://")||a.startsWith("https://")?new Promise((t=>{const e=window.open(a,"_blank");e&&(e.callback=()=>{t({ok:!0,data:[]})})})):a.startsWith("appredirectview?")?(await _t(e,a,i),{ok:!0,data:[]}):{ok:!1,data:[]}}}finally{ibiz.loading.hideRedirect()}const f=await ibiz.hub.getAppDataEntity(d,t.appId),E=await async function(t,e,a,s){let i="";const n=e.typeAppDEFieldId;if(n){const{codeName:a}=Pt(t,n),i=s[a.toLowerCase()];if(A(i))return"".concat(i);ibiz.log.warn("重定向视图[".concat(e.name,"]自定义类别属性[").concat(n,"]值为空"),s)}const o="".concat(ibiz.env.isMob?"MOB":"","EDITVIEW"),r=a.srfwf;if(A(r))return A(a.wf)?"".concat(o,":").concat(r.toUpperCase(),":").concat(a.wf.toUpperCase()):"".concat(o,":").concat(r.toUpperCase());let c="";if(t.indexTypeAppDEFieldId){const{codeName:e}=Pt(t,t.indexTypeAppDEFieldId);c=s[e.toLowerCase()]}if(P(c)&&t.formTypeAppDEFieldId){const{codeName:e}=Pt(t,t.formTypeAppDEFieldId);c=s[e.toLowerCase()]}i=A(c)?"".concat(o,":").concat(c.toString().toUpperCase()):"".concat(o);return i}(f,t,s,u),w=E.split(":"),I=2===w.length?E:w.slice(0,2).join(":"),v="".concat(f.name.toUpperCase(),":").concat(E),D=t.redirectAppViewRefs,y=null==D?void 0:D.find((t=>{const e=t.name||t.id;return e===v||e===E||e===I}));if(!y)throw ibiz.log.error("重定向视图引用有:",null==D?void 0:D.map((({refAppViewId:t,name:e,realTitle:a})=>({viewId:t,tag:e,title:a})))),new a(t,"未找到重定向标识[".concat(E,"]或[").concat(v,"]或工作流[").concat(I,"]对应视图"));{const t=y.refAppViewId;if(!t)throw new a(y,"未配置实际引用视图");{const a=await ibiz.commands.execute(ce.TAG,t,e,s,{...i,data:[u]});if(a)return a}}return{ok:!0,data:[]}}(t,e,s,i)}async function _t(t,a,s={}){const i=a.lastIndexOf("?"),n=decodeURIComponent(a.substring(i+1,a.length)),o=S.parse(n,{delimiter:";"}),r=o.srfdename||"";if(!r)throw new e("重定向参数缺少实体名称");const c=ibiz.hub.getApp(t.srfappid).deName2DeCodeName.get(r.toUpperCase());if(!c)throw new e("未找到指定实体的codeName: ".concat(r));o[c.toLowerCase()]=o[r.toLowerCase()];const l="".concat(c).concat(ibiz.env.isMob?"Mob":"","RedirectView"),d=await ibiz.hub.getAppView(l);if(delete o.srfdename,"undo"!==o.srfwf){const t=o.processDefinitionKey.split("-")[3],e=t.substring(0,t.lastIndexOf("v")),a=t.substring(t.lastIndexOf("v"));o.wf=e,o.wfVersion=a}o.srfprocessinstanceid&&(t.srfprocessinstanceid=o.srfprocessinstanceid,delete o.srfprocessinstanceid),await ibiz.commands.execute(ce.TAG,d.id,t,o,s)}function Ft(t,a,s){if(Object.is(a,"IN"))return Bt(t,s);if(Object.is(a,"NOTIN"))return!Bt(t,s);switch(a){case"EQ":return"".concat(t)==="".concat(s);case"NOTEQ":return"".concat(t)!=="".concat(s);case"LT":return Wt(t,s)<0;case"LTANDEQ":return Wt(t,s)<=0;case"GT":return Wt(t,s)>0;case"GTANDEQ":return Wt(t,s)>=0;case"ISNULL":return P(t);case"ISNOTNULL":return A(t);case"TESTNULL":return F(t);case"IN":return Bt(t,s);case"NOTIN":return!Bt(t,s);case"LIKE":return Ut(t,s);case"LEFTLIKE":return Ut(t,s,"start");case"RIGHTLIKE":return Ut(t,s,"end");default:throw new e("值操作:".concat(a,",暂未支持"))}}function Wt(t,a){const s=Number(t),i=Number(a);if(!Number.isNaN(s)&&!Number.isNaN(i))return kt(s,i);const n=new Date(t).getTime(),o=new Date(a).getTime();if(!Number.isNaN(n)&&!Number.isNaN(o))return kt(n,o);throw new e("".concat(t," 和 ").concat(a," 无法比较大小"))}function kt(t,e){return Number.isNaN(t)&&(t=0),Number.isNaN(e)&&(e=0),t>e?1:t<e?-1:0}function Bt(t,a){if(!a||"string"!=typeof a)throw new e("范围比较的条件值不存或者不是字符串");if(t){return a.split(",").includes("".concat(t))}return!1}function Ut(t,e,a){if(!t||!e)return!1;const s="".concat(t).toUpperCase(),i="".concat(e).toUpperCase(),n=s.indexOf(i);switch(a){case"start":return 0===n;case"end":return n+i.length===s.length;default:return-1!==n}}var zt={singleRowReturn:!1,isAsync:!0},Gt=t("ScriptFunction",class{constructor(t,e,a=zt){this.argKeys=[],this.options=a;const s=this.formatCode(e,a);this.calcArgKeys(t,a);const i=new Function(...this.argKeys,s);this.scriptFn=function(...t){return i.apply({},t)}}formatCode(t,e){let a=t;return e.singleRowReturn&&(a="return (".concat(a,")")),e.isAsync&&(a="return (async function() { ".concat(a,"} )();")),a}calcArgKeys(t,e){const a=e.presetParams?Object.keys(e.presetParams):[];a.push(...t);a.push("document","el","selector","env","appSession","topViewSession","viewSession","context","viewParam","activeData","data","app","topView","parentView","view","parent","util"),this.argKeys=Array.from(new Set(a))}convertArgs(t){const{presetParams:e}=this.options,a=e?W(e,t):t;a.document=document,a.selector=t=>document.getElementsByClassName(t);const s=[];return this.argKeys.forEach((t=>{void 0===a[t]&&this.fillDefaultParams(t,a),s.push(a[t])})),s}fillDefaultParams(t,e){const a=e.view;switch(t){case"util":e.util={message:ibiz.message,notification:ibiz.notification,modal:ibiz.modal,confirm:ibiz.confirm,openView:ibiz.openView};break;case"env":e.env=ibiz.env;break;case"app":e.app=ibiz.hub.controller;break;case"parent":e.parent=null==a?void 0:a.parentView;break;case"topView":e.topView=null==a?void 0:a.getTopView();break;case"parentView":e.parentView=null==a?void 0:a.parentView;break;case"topViewSession":e.topViewSession=null==a?void 0:a.getTopView().session;break;case"viewSession":e.viewSession=null==a?void 0:a.session;break;case"appSession":e.appSession=ibiz.hub.controller.session}}exec(t){const e=this.convertArgs(t);return this.scriptFn(...e)}}),jt=t("ScriptFactory",class{static createScriptFn(t,e,a){return new Gt(t,e,a)}static execScriptFn(t,e,a){return this.createScriptFn(Object.keys(t),e,a).exec(t)}});function Xt(t,a,s){const i={isPast:!0,infoMessage:s.ruleInfo};if(function(t){return"GROUP"===t.condType}(s)){const e=s.conds;e&&e.length>0&&(i.isPast=function(t,e,a="AND",s=!1){if(!((null==t?void 0:t.length)>0))return!1;let i="AND"===a;for(let s=0,n=t.length;s<n;s++){const n=e(t[s],s);if("AND"===a){if(!n){i=!1;break}}else if("OR"===a&&n){i=!0;break}}return s?!i:i}(e,(e=>{const{isPast:s,infoMessage:n}=Xt(t,a,e);return i.infoMessage=n,s}),s.condOp,!!s.notMode),!i.isPast&&("AND"===s.condOp&&s.notMode||"OR"===s.condOp&&!s.notMode)&&(i.infoMessage=s.ruleInfo))}else{t=null==s?void 0:s.defname.toLowerCase();try{if(function(t){return"SIMPLE"===t.condType}(s))i.isPast=!function(t,a,s,i,n,o,r){Object.is(n,"CURTIME")&&(s="".concat(new Date));if(Object.is(n,"ENTITYFIELD")){s=o[s=s?s.toLowerCase():""]?o[s]:s}(F(i)||k(i))&&(i="内容必须符合值规则");const c=Ft(t,a,s);if(!c&&r)throw new e(i);return!c}(a[t],s.condOp,s.paramValue,s.ruleInfo,s.paramType,a,s.keyCond);else if(function(t){return"VALUERANGE2"===t.condType}(s))i.isPast=!function(t,a,s,i,n,o,r){P(o)&&(o="值必须符合值范围规则");if(P(t)){if(r)throw new e("值为空");return o="值为空",!0}if(Yt(t,/^-?\d*\.?\d+$/,"",r))return!0;const c=Number.parseFloat(t);if(null!==a)if(s){if(c<a){if(r)throw new e(o);return!0}}else if(c<=a){if(r)throw new e(o);return!0}if(null!=i)if(n){if(c>i){if(r)throw new e(o);return!0}}else if(c>=i){if(r)throw new e(o);return!0}return o="",!1}(a[t],s.minValue,s.includeMinValue,s.maxValue,s.includeMaxValue,s.ruleInfo,s.keyCond);else if(function(t){return"REGEX"===t.condType}(s))i.isPast=!Yt(a[t],s.regExCode,s.ruleInfo,s.keyCond);else if(function(t){return"STRINGLENGTH"===t.condType}(s))i.isPast=!function(t,a,s,i,n,o,r){P(o)&&(o="内容长度必须符合范围规则");if(P(t)){if(r)throw new e("值为空");return o="值为空",!0}const c=t.length;if(null!==a)if(s){if(c<a){if(r)throw new e(o);return!0}}else if(c<=a){if(r)throw new e(o);return!0}if(null!==i)if(n){if(c>i){if(r)throw new e(o);return!0}}else if(c>=i){if(r)throw new e(o);return!0}return o="",!1}(a[t],s.minValue,s.includeMinValue,s.maxValue,s.includeMaxValue,s.ruleInfo,s.keyCond);else if(function(t){return"SYSVALUERULE"===t.condType}(s)&&(null==s?void 0:s.sysValueRule)){const{ruleType:n,regExCode:o,scriptCode:r,ruleInfo:c}=s.sysValueRule;if(i.infoMessage=s.ruleInfo||c,"REG"===n)i.isPast=!Yt(a[t],o,i.infoMessage,s.keyCond);else if("SCRIPT"===n){const{isPast:n,infoMessage:o}=function(t,a,s,i,n){P(i)&&(i="值必须符合脚本规则");const o=a;let r="",c=!0;const l=t=>{c=!1,(null==t?void 0:t.length)>0?t.forEach((t=>{(null==t?void 0:t.message)&&(r+=t.message)})):(null==t?void 0:t.message)&&(r=t.message)};try{const e=jt.execScriptFn({value:t,data:o},s,{isAsync:!1});"boolean"==typeof e&&(c=e)}catch(t){ibiz.log.error(t),l(t)}if(i="",!c&&n)throw new e(i);return{isPast:c,infoMessage:r||i}}(a[t],a,r,i.infoMessage,s.keyCond);i.isPast=n,i.infoMessage=o||i.infoMessage}}}catch(t){i.isPast=!1}i.isPast=s.notMode?!i.isPast:i.isPast}return i}function Yt(t,a,s,i){P(s)&&(s="值必须符合正则规则");if(P(t)){if(i)throw new e("值为空");return s="值为空",!0}if(!new RegExp(a).test(t)){if(i)throw new e(s);return!0}return s="",!1}function Kt(t,e){if(function(t){return"GROUP"===t.logicType}(e)){const s=e.defdlogics;if(!s||0===s.length)throw new a(e,"发现空逻辑组,逻辑无法正常执行!");let i=!0;if("AND"===e.groupOP){i=void 0===s.find((e=>!Kt(t,e)))}else if("OR"===e.groupOP){i=void 0!==e.defdlogics.find((e=>Kt(t,e)))}return e.notMode?!i:i}if(function(t){return"SINGLE"===t.logicType}(e))return Ft(t[e.defdname.toLowerCase()],e.condOP,e.value);throw new s(e,"未支持的逻辑类型".concat(e.logicType))}function Ht(t,e){if(function(t){return"GROUP"===t.logicType}(e)){const s=e.panelItemLogics;if(!s||0===s.length)throw new a(e,"发现空逻辑组,逻辑无法正常执行!");let i=!0;if("AND"===e.groupOP){i=void 0===s.find((e=>!Ht(t,e)))}else if("OR"===e.groupOP){i=void 0!==e.panelItemLogics.find((e=>Ht(t,e)))}return e.notMode?!i:i}if(function(t){return"SINGLE"===t.logicType}(e))return Ft(t[e.dstModelField.toLowerCase()],e.condOp,e.value);throw new s(e,"未支持的逻辑类型".concat(e.logicType))}var qt=t("LayoutPanelUtil",class{constructor(){this.cache=new Map}register(t,e){this.cache.set(t,e)}get(t){return this.cache.get(t)}fill(t){const{viewLayoutPanel:e}=t;if(!e||!0===e.useDefaultLayout){const e=this.calcLayoutTag(t);if(this.cache.has(e)){const a=B(this.cache.get(e));t.viewLayoutPanel=a,t.appCounterRefs&&(a.appCounterRefs=t.appCounterRefs,delete t.appCounterRefs),t.appViewEngines&&(a.appViewEngines=t.appViewEngines,delete t.appViewEngines),t.appViewLogics&&(a.appViewLogics=t.appViewLogics,delete t.appViewLogics),t.appViewRefs&&(a.appViewRefs=t.appViewRefs,delete t.appViewRefs),t.controls&&(a.controls=t.controls,delete t.controls)}}return t}calcLayoutTag(t){const{viewType:e,viewStyle:a}=t;return"APPINDEXVIEW"===e?this.calcIndexViewLayoutTag(t):"".concat(e,"_").concat(a)}calcIndexViewLayoutTag(t){const{viewType:e,viewStyle:a,blankMode:s,mainMenuAlign:i}=t;let n="";return s?n="BLANK_MODE":i&&(n=i.toUpperCase()),""!==n?"".concat(e,"_").concat(a,"_").concat(n):"".concat(e,"_").concat(a)}});function Qt(t){const e={};return t.param09&&(e.srfprocessinstanceid=t.param09),e}var $t=t("ControlType",(t=>(t.APP_MENU="APPMENU",t.GRID="GRID",t.FORM="FORM",t.SEARCHFORM="SEARCHFORM",t.TOOLBAR="TOOLBAR",t.DRBAR="DRBAR",t.VIEWPANEL="VIEWPANEL",t.PICKUP_VIEW_PANEL="PICKUPVIEWPANEL",t.DATAVIEW="DATAVIEW",t.TREEGRID="TREEGRID",t.WF_EXPBAR="WFEXPBAR",t.TREEVIEW="TREEVIEW",t.TREE_EXP_BAR="TREEEXPBAR",t.TAB_VIEWPANEL="TABVIEWPANEL",t.DRTAB="DRTAB",t.CHART="CHART",t.REPORT_PANEL="REPORTPANEL",t.LIST="LIST",t.MOB_MDCTRL="MOBMDCTRL",t.MULTI_EDIT_VIEWPANEL="MULTIEDITVIEWPANEL",t.WIZARD_PANEL="WIZARDPANEL",t.UPDATE_PANEL="UPDATEPANEL",t.SEARCHBAR="SEARCHBAR",t.DASHBOARD="DASHBOARD",t.CALENDAR="CALENDAR",t.PANEL="PANEL",t.VIEW_LAYOUT_PANEL="VIEWLAYOUTPANEL",t.MAP="MAP",t.GANTT="GANTT",t.TREE_GRIDEX="TREEGRIDEX",t.KANBAN="KANBAN",t.CALENDAR_EXPBAR="CALENDAREXPBAR",t.CHART_EXPBAR="CHARTEXPBAR",t.DATA_VIEW_EXPBAR="DATAVIEWEXPBAR",t.GANTT_EXPBAR="GANTTEXPBAR",t.GRID_EXPBAR="GRIDEXPBAR",t.LIST_EXPBAR="LISTEXPBAR",t.MAP_EXPBAR="MAPEXPBAR",t.STATE_WIZARD_PANEL="STATEWIZARDPANEL",t.TAB_EXP_PANEL="TABEXPPANEL",t.CUSTOM="CUSTOM",t.CAPTIONBAR="CAPTIONBAR",t))($t||{})),Jt=t("ViewType",(t=>(t.APP_INDEX_VIEW="APPINDEXVIEW",t.DE_GRID_VIEW="DEGRIDVIEW",t.DE_EDIT_VIEW="DEEDITVIEW",t.APP_DATA_UPLOAD_VIEW="APPDATAUPLOADVIEW",t.APP_ERROR_VIEW="APPERRORVIEW",t.APP_FILE_UPLOAD_VIEW="APPFILEUPLOADVIEW",t.APP_FUN_PICKUP_VIEW="APPFUNCPICKUPVIEW",t.APP_LOGIN_VIEW="APPLOGINVIEW",t.APP_LOGOUT_VIEW="APPLOGOUTVIEW",t.APP_PANEL_VIEW="APPPANELVIEW",t.APP_PIC_UPLOAD_VIEW="APPPICUPLOADVIEW",t.APP_PORTAL_VIEW="APPPORTALVIEW",t.APP_REDIRECT_VIEW="APPREDIRECTVIEW",t.APP_START_VIEW="APPSTARTVIEW",t.APP_WELCOME_VIEW="APPWELCOMEVIEW",t.APP_WF_ADD_STEP_AFTER_VIEW="APPWFADDSTEPAFTERVIEW",t.APP_WF_ADD_STEP_BEFORE_VIEW="APPWFADDSTEPBEFOREVIEW",t.APP_WF_REDIRECT_VIEW="APPWFREDIRECTVIEW",t.APP_WF_SENDBAC_VIEW="APPWFSENDBACKVIEW",t.APP_WF_STEP_ACTOR_VIEW="APPWFSTEPACTORVIEW",t.APP_WF_STEP_DATA_VIEW="APPWFSTEPDATAVIEW",t.APP_WF_STEP_TRACE_VIEW="APPWFSTEPTRACEVIEW",t.APP_WF_SUPPLY_INFO_VIEW="APPWFSUPPLYINFOVIEW",t.APP_WF_TAKE_ADVICE_VIEW="APPWFTAKEADVICEVIEW",t.DE_CALENDAR_EXP_VIEW="DECALENDAREXPVIEW",t.DE_CALENDAR_VIEW="DECALENDARVIEW",t.DE_CHART_EXP_VIEW="DECHARTEXPVIEW",t.DE_CHART_VIEW="DECHARTVIEW",t.DE_CHART_VIEW9="DECHARTVIEW9",t.DE_CUSTOM_VIEW="DECUSTOMVIEW",t.DE_DATA_VIEW="DEDATAVIEW",t.DE_DATA_VIEW9="DEDATAVIEW9",t.DE_DATAVIEW_EXP_VIEW="DEDATAVIEWEXPVIEW",t.DE_EDIT_VIEW2="DEEDITVIEW2",t.DE_EDIT_VIEW3="DEEDITVIEW3",t.DE_EDIT_VIEW4="DEEDITVIEW4",t.DE_EDIT_VIEW9="DEEDITVIEW9",t.DE_FORM_PICKUP_DATA_VIEW="DEFORMPICKUPDATAVIEW",t.DE_GANTT_EXP_VIEW="DEGANTTEXPVIEW",t.DE_GANTT_VIEW="DEGANTTVIEW",t.DE_GANTT_VIEW9="DEGANTTVIEW9",t.DE_GRID_EXP_VIEW="DEGRIDEXPVIEW",t.DE_GRID_VIEW2="DEGRIDVIEW2",t.DE_GRID_VIEW4="DEGRIDVIEW4",t.DE_GRID_VIEW8="DEGRIDVIEW8",t.DE_GRID_VIEW9="DEGRIDVIEW9",t.DE_HTML_VIEW="DEHTMLVIEW",t.DE_INDEX_PICKUP_DATA_VIEW="DEINDEXPICKUPDATAVIEW",t.DE_INDEX_VIEW="DEINDEXVIEW",t.DE_KANBAN_VIEW="DEKANBANVIEW",t.DE_KANBAN_VIEW9="DEKANBANVIEW9",t.DE_LIST_EXP_VIEW="DELISTEXPVIEW",t.DE_LIST_VIEW="DELISTVIEW",t.DE_LIST_VIEW9="DELISTVIEW9",t.DE_MAP_EXP_VIEW="DEMAPEXPVIEW",t.DE_MAP_VIEW="DEMAPVIEW",t.DE_MAP_VIEW9="DEMAPVIEW9",t.DE_MD_CUSTOM_VIEW="DEMDCUSTOMVIEW",t.DE_MEDITVIEW9="DEMEDITVIEW9",t.DE_MOB_CALENDAR_EXP_VIEW="DEMOBCALENDAREXPVIEW",t.DE_MOB_CALENDAR_VIEW="DEMOBCALENDARVIEW",t.DE_MOB_CALENDAR_VIEW9="DEMOBCALENDARVIEW9",t.DE_MOB_CHART_EXP_VIEW="DEMOBCHARTEXPVIEW",t.DE_MO_BCHART_VIEW="DEMOBCHARTVIEW",t.D_EMOB_CHART_VIEW9="DEMOBCHARTVIEW9",t.DE_MOB_CUSTOM_VIEW="DEMOBCUSTOMVIEW",t.DE_MOB_DATA_VIEW="DEMOBDATAVIEW",t.DE_MOB_DATA_VIEW_EXP_VIEW="DEMOBDATAVIEWEXPVIEW",t.DE_MOB_EDIT_VIEW="DEMOBEDITVIEW",t.DE_MOB_EDIT_VIEW3="DEMOBEDITVIEW3",t.DE_MOB_EDITVIEW9="DEMOBEDITVIEW9",t.DE_MOB_FORM_PICKUP_MDVIEW="DEMOBFORMPICKUPMDVIEW",t.DE_MOB_GANTT_EXP_VIEW="DEMOBGANTTEXPVIEW",t.DE_MOB_GANTT_VIEW="DEMOBGANTTVIEW",t.DE_MOB_GANTT_VIEW9="DEMOBGANTTVIEW9",t.DE_MOB_HTML_VIEW="DEMOBHTMLVIEW",t.DE_MOB_INDEX_PICKUP_MDVIEW="DEMOBINDEXPICKUPMDVIEW",t.DE_MOB_LIST_EXP_VIEW="DEMOBLISTEXPVIEW",t.DE_MOB_LIST_VIEW="DEMOBLISTVIEW",t.DE_MOB_MAP_VIEW="DEMOBMAPVIEW",t.DE_MOB_MAP_VIEW9="DEMOBMAPVIEW9",t.DE_MOB_MDVIEW="DEMOBMDVIEW",t.DE_MOB_MDVIEW9="DEMOBMDVIEW9",t.DE_MOB_MEDIT_VIEW9="DEMOBMEDITVIEW9",t.DE_MOB_MPICKUP_VIEW="DEMOBMPICKUPVIEW",t.DE_MOB_OPT_VIEW="DEMOBOPTVIEW",t.DE_MOB_PANEL_VIEW="DEMOBPANELVIEW",t.DE_MOB_PANEL_VIEW9="DEMOBPANELVIEW9",t.DE_MOB_PICKUP_LIST_VIEW="DEMOBPICKUPLISTVIEW",t.DE_MOB_PICKUP_MDVIEW="DEMOBPICKUPMDVIEW",t.DE_MOB_PICKUP_TREE_VIEW="DEMOBPICKUPTREEVIEW",t.DE_MOB_PICKUP_VIEW="DEMOBPICKUPVIEW",t.DE_MOB_PORTAL_VIEW="DEMOBPORTALVIEW",t.DE_MOB_PORTAL_VIEW9="DEMOBPORTALVIEW9",t.DE_MOB_REDIRECT_VIEW="DEMOBREDIRECTVIEW",t.DE_MOB_REPORT_VIEW="DEMOBREPORTVIEW",t.DE_MOB_TAB_EXP_VIEW="DEMOBTABEXPVIEW",t.DE_MOB_TAB_EXP_VIEW9="DEMOBTABEXPVIEW9",t.DE_MOB_TAB_SEARCH_VIEW="DEMOBTABSEARCHVIEW",t.DE_MOB_TAB_SEARCH_VIEW9="DEMOBTABSEARCHVIEW9",t.DE_MOB_TREE_EXP_VIEW="DEMOBTREEEXPVIEW",t.DEMOBTREEEXPVIEW9="DEMOBTREEEXPVIEW9",t.DE_MOB_TREE_VIEW="DEMOBTREEVIEW",t.DE_MOB_WFACTION_VIEW="DEMOBWFACTIONVIEW",t.DE_MOB_WF_DATA_REDIRECT_VIEW="DEMOBWFDATAREDIRECTVIEW",t.DE_MOB_WF_DYNAACTIO_NVIEW="DEMOBWFDYNAACTIONVIEW",t.DE_MOB_WFDYNA_EDIT_VIEW="DEMOBWFDYNAEDITVIEW",t.DE_MOB_WF_DYNA_EDIT_VIEW3="DEMOBWFDYNAEDITVIEW3",t.DE_MOB_WF_DYNA_EXP_MDVIEW="DEMOBWFDYNAEXPMDVIEW",t.DE_MO_BWF_DYNA_START_VIEW="DEMOBWFDYNASTARTVIEW",t.DE_MOB_WF_EDIT_VIEW="DEMOBWFEDITVIEW",t.DE_MOB_WF_EDIT_VIEW3="DEMOBWFEDITVIEW3",t.DE_MOB_WF_MDVIEW="DEMOBWFMDVIEW",t.DE_MOB_WF_PROXY_RESULT_VIEW="DEMOBWFPROXYRESULTVIEW",t.DE_MOB_WF_PROXY_START_VIEW="DEMOBWFPROXYSTARTVIEW",t.DE_MOB_WF_START_VIEW="DEMOBWFSTARTVIEW",t.DE_MOB_WIZARD_VIEW="DEMOBWIZARDVIEW",t.DE_MPICKUP_VIEW="DEMPICKUPVIEW",t.DE_MPICKUP_VIEW2="DEMPICKUPVIEW2",t.DE_OPT_VIEW="DEOPTVIEW",t.DE_PANEL_VIEW="DEPANELVIEW",t.DE_PANEL_VIEW9="DEPANELVIEW9",t.DE_PICKUP_DATA_VIEW="DEPICKUPDATAVIEW",t.DE_PICKUP_GRID_VIEW="DEPICKUPGRIDVIEW",t.DE_PICKUP_TREE_VIEW="DEPICKUPTREEVIEW",t.DE_PICKUP_VIEW="DEPICKUPVIEW",t.DE_PICKUP_VIEW2="DEPICKUPVIEW2",t.DE_PICK_UP_VIEW3="DEPICKUPVIEW3",t.DE_PORTAL_VIEW="DEPORTALVIEW",t.DE_PORTAL_VIEW9="DEPORTALVIEW9",t.DE_REDIRECT_VIEW="DEREDIRECTVIEW",t.DE_REPORT_VIEW="DEREPORTVIEW",t.DE_TAB_EXP_VIEW="DETABEXPVIEW",t.DE_TAB_EXP_VIEW9="DETABEXPVIEW9",t.DE_TAB_SEARCH_VIEW="DETABSEARCHVIEW",t.DE_TAB_SEARCH_VIEW9="DETABSEARCHVIEW9",t.DE_TREE_EXP_VIEW="DETREEEXPVIEW",t.DE_TREE_EXP_VIEW2="DETREEEXPVIEW2",t.DE_TREE_EXP_VIEW3="DETREEEXPVIEW3",t.DE_TREE_GRID_EXVIEW="DETREEGRIDEXVIEW",t.DE_TREE_GRID_EXVIEW9="DETREEGRIDEXVIEW9",t.DE_TREE_GRID_VIEW="DETREEGRIDVIEW",t.DE_TREE_GRID_VIEW9="DETREEGRIDVIEW9",t.DE_TREE_VIEW="DETREEVIEW",t.DE_TREE_VIEW9="DETREEVIEW9",t.DE_WF_ACTION_VIEW="DEWFACTIONVIEW",t.DE_WF_DATA_REDIRECT_VIEW="DEWFDATAREDIRECTVIEW",t.DE_WF_DYNA_ACTION_VIEW="DEWFDYNAACTIONVIEW",t.DE_WF_DYNA_EDIT_VIEW="DEWFDYNAEDITVIEW",t.DE_WF_DYNA_EDIT_VIEW3="DEWFDYNAEDITVIEW3",t.DE_WF_DYNA_EXP_GRID_VIEW="DEWFDYNAEXPGRIDVIEW",t.DE_WF_DYNA_START_VIEW="DEWFDYNASTARTVIEW",t.DE_WF_EDIT_PROXY_DATA_VIEW="DEWFEDITPROXYDATAVIEW",t.DE_WF_EDIT_VIEW="DEWFEDITVIEW",t.DE_WF_EDIT_VIEW2="DEWFEDITVIEW2",t.DE_WF_EDIT_VIEW3="DEWFEDITVIEW3",t.DE_WF_EDIT_VIEW9="DEWFEDITVIEW9",t.DE_WF_EXP_VIEW="DEWFEXPVIEW",t.DE_WF_GRID_VIEW="DEWFGRIDVIEW",t.DE_WF_PROXY_DATA_VIEW="DEWFPROXYDATAVIEW",t.DE_WF_PROXY_RESULT_VIEW="DEWFPROXYRESULTVIEW",t.DE_WF_PROXY_START_VIEW="DEWFPROXYSTARTVIEW",t.DE_WF_START_VIEW="DEWFSTARTVIEW",t.DE_WIZARD_VIEW="DEWIZARDVIEW",t))(Jt||{})),Zt=t("ViewMode",(t=>(t.ROUTE="ROUTE",t.MODAL="MODAL",t.DRAWER="DRAWER",t.EMBED="EMBED",t.POPOVER="POPOVER",t))(Zt||{})),te=t("SysUIActionTag",(t=>(t.NEW="New",t.EDIT="Edit",t.REFRESH="Refresh",t.EXIT="Exit",t.SAVE_AND_EXIT="SaveAndExit",t.SAVE_AND_NEW="SaveAndNew",t.SAVE="Save",t.SAVE_ROW="SaveRow",t.REMOVE="Remove",t.REMOVE_AND_EXIT="RemoveAndExit",t.NEW_ROW="NewRow",t.TOGGLE_FILTER="ToggleFilter",t.IMPORT="Import",t.EXPORT_EXCEL="ExportExcel",t.SAVE_AND_START="SaveAndStart",t.VIEW_WF_STEP="ViewWFStep",t.NO="No",t.YES="Yes",t.CANCEL="Cancel",t.OK="Ok",t.SEARCH="Search",t.FINISH="Finish",t.NEXT_STEP="NextStep",t.PREV_STEP="PrevStep",t.ADD_SELECTION="AddSelection",t.REMOVE_SELECTION="RemoveSelection",t.REMOVE_ALL="RemoveAll",t.ADD_ALL="AddAll",t.LOGOUT="Logout",t.LOGIN="Login",t.CANCEL_CHANGES="CancelChanges",t.COPY="Copy",t.VIEW="View",t.TOGGLE_ROW_EDIT="ToggleRowEdit",t.REFRESH_ALL="RefreshAll",t.REFRESH_PARENT="RefreshParent",t.LOAD_MORE="LoadMore",t))(te||{})),ee=t("StudioViewEvents",class{});ee.onViewMounted="onMounted",ee.onViewDestroyed="onDestroyed";var ae=t("StudioPanelEvents",class{});ae.onClick="onClick",ae.onChange="onChange",ae.onEnter="onEnter",ae.onLeave="onLeave";var se=t("StudioControlEvents",class{});se.onBeforeLoad="onBeforeLoad",se.onLoadSuccess="onLoadSuccess",se.onLoadError="onLoadError",se.onBeforeLoadDraft="onBeforeLoadDraft",se.onLoadDraftSuccess="onLoadDraftSuccess",se.onLoadDraftError="onLoadDraftError",se.onBeforeSave="onBeforeSave",se.onSaveSuccess="onSaveSuccess",se.onSaveError="onSaveError",se.onBeforeRemove="onBeforeRemove",se.onRemoveSuccess="onRemoveSuccess",se.onRemoveError="onRemoveError",se.CLICK="onClick";var ie=t("Modal",class{constructor(t){this.mode="EMBED",this.viewUsage=4,this.hooks={shouldDismiss:new b,beforeDismiss:new b},this._dismiss=t=>{ibiz.log.error("外部关闭能力未注册",t)},t.mode&&(this.mode=t.mode),t.routeDepth&&(this.routeDepth=t.routeDepth),t.viewUsage&&(this.viewUsage=t.viewUsage),t.dismiss&&(this._dismiss=t.dismiss)}injectDismiss(t){this._dismiss=t}async dismiss(t={ok:!1,data:[]}){const e={allowClose:!0};return await this.hooks.shouldDismiss.call(e),e.allowClose?(await this.hooks.beforeDismiss.call(t),this._dismiss(t),this.destroy(),!0):(ibiz.log.debug("shouldDismiss结果为false,关闭中断。"),!1)}destroy(){this.hooks.shouldDismiss.clear(),this.hooks.beforeDismiss.clear()}});function ne(t,e){return t.filter((t=>{const{checkMode:a}=t,s=t.deformItemName||t.degridEditItemName;return 2!==a&&s===e}))}var oe=t("TextUtil",class{format(t,e){return t}}),re=class t{constructor(){ibiz.commands.register(t.TAG,this.exec.bind(this))}async exec(t,a,i={},n={}){const o=await ibiz.hub.config.view.get(t);if(!o)throw new e("应用视图[".concat(t,"]不存在"));if(a.srfkey&&o.appDataEntityId){a[Dt(o.appDataEntityId)]=a.srfkey,a.srfkey=void 0}if(o.redirectView){return St(await ibiz.hub.getAppView(t),a,i,n)}const{openMode:r="INDEXVIEWTAB"}=o;switch(n.openMode||r){case"INDEXVIEWTAB":return n.noWaitRoute?void this.openIndexViewTab(o,a,i):this.openIndexViewTab(o,a,i);case"POPUP":throw new s(o,"未支持的视图打开模式: POPUP");case"POPUPMODAL":return this.openModal(o,a,i);case"POPUPAPP":throw new s(o,"未支持的视图打开模式: POPUPAPP");case"POPOVER":return this.openPopover(o,n.event,a,i);case"DRAWER_LEFT":case"DRAWER_RIGHT":case"DRAWER_TOP":case"DRAWER_BOTTOM":return this.openDrawer(o,a,i);case"USER":return this.openUserCustom(o,a,i);default:return this.openIndexViewTab(o,a,i)}}openIndexViewTab(t,e,a={}){return ibiz.openView.root(t.id,e,a)}async openModal(t,e,a={}){return ibiz.openView.modal(t.id,e,a)}async openPopover(t,a,s,i={}){if(!a)throw new e("气泡打开缺少event");return ibiz.openView.popover(t.id,a,s,i)}async openDrawer(t,e,a={}){return ibiz.openView.drawer(t.id,e,a)}async openUserCustom(t,e,a={}){return ibiz.openView.custom(t.id,e,a)}};re.TAG="ibiz.app-view.open";var ce=t("OpenAppViewCommand",re),le=class t{constructor(){ibiz.commands.register(t.TAG,this.exec.bind(this))}async exec(t,a,i={},n={}){const o=ibiz.hub.getApp(a.srfappid).getAppFunc(t);if(!o)throw new e("找不到叫".concat(t,"的应用功能"));const{navigateContexts:r,navigateParams:c,appFuncType:l}=o,d=a.clone();Object.assign(d,lt(r,a,i));const h=lt(c,a,i);switch(l){case"APPVIEW":return this.openAppView(o,d,h,n);case"OPENHTMLPAGE":return this.openHtmlPage(o);case"PDTAPPFUNC":return this.openPdAppFunc(o,d,h);case"JAVASCRIPT":return this.executeJavaScript(o,d,h);case"CUSTOM":return this.custom(o,d,h);default:throw new s(o,"未支持的应用功能类型: ".concat(l))}}async openAppView(t,a,s,i){if(!t.appViewId)throw new e("应用视图[".concat(t.appViewId,"]不存在"));return ibiz.commands.execute(ce.TAG,t.appViewId,a,s,i)}openHtmlPage(t){const e=t.htmlPageUrl;window.open(e,"_blank")}openPdAppFunc(t,a,s){throw ibiz.log.warn("openPdAppFunc",t,a,s),new e("未实现")}executeJavaScript(t,a,s){throw ibiz.log.warn("executeJavaScript",t,a,s),new e("未实现")}custom(t,a,s){throw ibiz.log.warn("custom",t,a,s),new e("未实现")}};le.TAG="ibiz.app-func.exec";var de=t("AppFuncCommand",le);function he(){new de,new ce}var ue=class{constructor(){this.psModelGroupCondBase=null}parse(t){if(t instanceof Array){const e=this.createPSModelGroupCond();e.parse(t),this.psModelGroupCondBase=e}}testSingleCond(t,e,a){try{if("ISNULL"===t)return null==e;if("ISNOTNULL"===t)return null!=e;if("EQ"===t||"ABSEQ"===t||"GT"===t||"GTANDEQ"===t||"LT"===t||"LTANDEQ"===t||"NOTEQ"===t){let s=-1;if(e==a?s=0:e>a&&(s=1),"EQ"===t||"ABSEQ"===t)return 0===s;if("GT"===t)return s>0;if("GTANDEQ"===t)return s>=0;if("LT"===t)return s<0;if("LTANDEQ"===t)return s<=0;if("NOTEQ"===t)return 0!==s}if("LIKE"===t)return null!=e&&null!=a&&-1!==e.toString().toUpperCase().indexOf(a.toString().toUpperCase());if("LEFTLIKE"===t)return null!=e&&null!=a&&0===e.toString().toUpperCase().indexOf(a.toString().toUpperCase())}catch(t){ibiz.log.error(t)}return!1}getPSModelGroupCondBase(){return this.psModelGroupCondBase}},pe=class{constructor(){this.strCondOp=null}getCondOp(){return this.strCondOp}setCondOp(t){this.strCondOp=t}},me=class extends pe{parse(t){const e=t.length;let a=!0,s=!1,i=!1;for(let n=0;n<e;n++)if(a){const e=t[n];this.setCondOp(e),a=!1,s=!0}else if(s){const e=t[n];this.setParam(e),s=!1,i=!0}else if(i){const e=t[n];if(e instanceof Object&&!(e instanceof Array)){const t=e;null!=t.type&&this.setValueType(t.type.toString()),null!=t.value&&this.setValue(t.value.toString())}else this.setValue(e);break}}getValueType(){return this.strValueType}setValueType(t){this.strValueType=t}getValue(){return this.strValue}setValue(t){this.strValue=t}getParamType(){return this.strParamType}setParamType(t){this.strParamType=t}getParam(){return this.strParam}setParam(t){this.strParam=t}},ge=class t extends pe{constructor(){super(...arguments),this.childCondList=[],this.bNotMode=!1}parse(a){const s=a.length;let i=!0,n=!0,o=!1;for(let r=0;r<s;r++){if(i&&n){if("!"===a[r]){this.setNotMode(!0),i=!1;continue}}if(n){const t=a[r];this.setCondOp(t),n=!1,i=!1,o=!0}else if(o){const s=a[r];if(!(s instanceof Array))throw new e("值必须为数组");s.forEach((e=>{if(e.length>0){const a=e[0].toString();if("!"===a||"OR"===a||"AND"===a){const a=new t;a.parse(e),this.childCondList.push(a)}else{const t=new me;t.parse(e),this.childCondList.push(t)}}}))}}}setNotMode(t){this.bNotMode=t}isNotMode(){return this.bNotMode}getChildPSModelCondBases(){return this.childCondList}},fe=class extends ge{},Ee=class extends me{},we=class t extends ue{test(t,e){return this.testCond(this.getPSModelGroupCondBase(),t,e)}testCond(e,a,s){if(e instanceof ge){const t=e.getChildPSModelCondBases();if(null==t||k(t))return!e.isNotMode();const i="AND"===e.getCondOp();let n=i;for(let e=0;e<t.length;e++){const o=t[e];if(this.testCond(o,a,s)){if(!i){n=!0;break}}else if(i){n=!1;break}}return e.isNotMode()?!n:n}if(e instanceof me){k(e.getParam())&&ibiz.log.warn("没有指定属性名称",e);const i=a[e.getParam().toLowerCase()];let n=null;const o=e.getValueType(),r=e.getValue();return null==o||k(o)?n=e.getValue():(k(r)&&ibiz.log.warn("没有指定上下文参数名称"),t.PARAMTYPE_WEBCONTEXT===o?n=s.data[r.toLowerCase()]:t.PARAMTYPE_DATACONTEXT===o&&(n=s.getValue(r.toLowerCase()))),this.testSingleCond(e.getCondOp(),i,n)}return ibiz.log.warn("无法识别的条件对象",e),!1}createPSModelSingleCond(){return new Ee}createPSModelGroupCond(){return new fe}};we.PARAMTYPE_DATACONTEXT="DATACONTEXT",we.PARAMTYPE_WEBCONTEXT="WEBCONTEXT";var Ie=t("PSDEDQCondEngine",we);async function ve(t,e){var a;const s=null==(a=ibiz.hub.getApp(e).model.appPFPluginRefs)?void 0:a.find((e=>e.pluginCode.toLowerCase()===t));if(s)return await ibiz.plugin.loadPlugin(s),"".concat(s.pluginType,"_").concat(s.pluginCode);ibiz.log.error("找不到".concat(t,"的插件模型"))}var De=t("CONTROL_PROVIDER_PREFIX","CONTROL");function ye(t){return ibiz.register.get("".concat(De,"_").concat(t))}async function Ce(t){let e;const{controlType:a,controlStyle:s,sysPFPluginId:i,appId:n}=t;if(i){const t=await ve(i,n);if(t&&(e=ye(t)),e)return e;ibiz.log.error("找不到部件插件".concat(t,"对应的适配器"))}if(s&&"DEFAULT"!==s){if(e=ye("".concat(a,"_").concat(s)),e)return e;ibiz.log.error("找不到部件类型:[".concat(a,"]的部件样式:[").concat(s,"]对应的适配器"),t)}if(e=ye(a),e)return e;ibiz.log.error("找不到部件类型".concat(a,"对应的适配器"))}var Ae=t("EDITOR_PROVIDER_PREFIX","EDITOR");function Pe(t){return ibiz.register.get("".concat(Ae,"_").concat(t))}async function be(t){let e;const{editorType:a,editorStyle:s,predefinedType:i,sysPFPluginId:n,appId:o}=t;if(n){const t=await ve(n,o);if(t&&(e=Pe(t)),e)return e;ibiz.log.error("找不到编辑器插件".concat(t,"对应的适配器"))}if(s&&"DEFAULT"!==s){if(e=Pe("".concat(a,"_").concat(s)),e)return e;ibiz.log.error("找不到编辑器类型:[".concat(a,"]的编辑器样式:[").concat(s,"]对应的适配器"),t)}if(i){let n="".concat(i,"_").concat(a);if(s&&"DEFAULT"!==s&&(n+="_".concat(s)),e=Pe(n),e)return e;ibiz.log.error("找不到编辑器类型:[".concat(a,"]的预置类型:[").concat(i,"]对应的适配器"),t)}if(e=Pe(a),e)return e;ibiz.log.error("找不到编辑器类型".concat(a,"对应的适配器"))}var Te=t("FORMDETAIL_PROVIDER_PREFIX","FORMDETAIL");function xe(t){return ibiz.register.get("".concat(Te,"_").concat(t))}async function Ne(t){let e;const{detailType:a,sysPFPluginId:s,appId:i}=t;if(s){const t=await ve(s,i);if(t&&(e=xe(t)),e)return e;ibiz.log.error("找不到表单成员插件".concat(t,"对应的适配器"))}if(e=xe(a),e)return e;ibiz.log.error("找不到表单成员类型".concat(a,"对应的适配器"))}var Le=t("GRIDCOLUMN_PROVIDER_PREFIX","GRIDCOLUMN");function Re(t){return ibiz.register.get("".concat(Le,"_").concat(t))}async function Ve(t){let e;const{columnType:a,enableRowEdit:s,sysPFPluginId:i,appId:n}=t;if(i){const t=await ve(i,n);if(t&&(e=Re(t)),e)return e;ibiz.log.error("找不到表格列插件".concat(t,"对应的适配器"))}const o=s?"".concat(a,"_EDIT"):a;if(e=Re(o),e)return e;ibiz.log.error("找不到表格列类型".concat(o,"对应的适配器"))}var Oe=t("PANELITEM_PROVIDER_PREFIX","PANELITEM");function Me(t){return ibiz.register.get("".concat(Oe,"_").concat(t.toUpperCase()))}async function Se(t){var e;let a;const{itemType:s,sysPFPluginId:i,appId:n}=t;if(i){const t=await ve(i,n);if(t&&(a=Me(t)),a)return a;ibiz.log.error("找不到面板成员插件".concat(t,"对应的适配器"))}if("CONTAINER"===s){const e=t.predefinedType||"DEFAULT";if(a=Me("CONTAINER_".concat(e)),a)return a;ibiz.log.error("找不到面板容器预置类型为".concat(e,"的适配器"))}if("RAWITEM"===s){const s=(null==(e=t.rawItem)?void 0:e.predefinedType)||"DEFAULT";if(a=Me("RAWITEM_".concat(s)),a)return a;ibiz.log.error("找不到面板成员直接内容预置类型为".concat(s,"的适配器"))}if(a=Me(s),a)return a;ibiz.log.error("找不到面板成员类型".concat(s,"对应的适配器"))}var _e=t("UIACTION_PROVIDER_PREFIX","UIACTION");function Fe(t,e){ibiz.register.register("".concat(_e,"_").concat(t),e)}function We(t){return ibiz.register.get("".concat(_e,"_").concat(t))}async function ke(t){let a;const{uiactionMode:s,sysPFPluginId:i,appId:n}=t;if(i){const t=await ve(i,n);if(t&&(a=We(t)),a)return a;ibiz.log.error("找不到界面行为插件".concat(t,"对应的适配器"))}if(a=We(s),a)return a;throw new e("找不界面行为模式".concat(s,"对应的适配器"))}var Be=t("VIEW_PROVIDER_PREFIX","VIEW");function Ue(t){return ibiz.register.get("".concat(Be,"_").concat(t))}var ze=t("PORTLET_PROVIDER_PREFIX","PORTLET");function Ge(t){return ibiz.register.get("".concat(ze,"_").concat(t))}async function je(t){let e;const{portletType:a,sysPFPluginId:s,appId:i}=t;if(s){const t=await ve(s,i);if(t&&(e=Ge(t)),e)return e;ibiz.log.error("找不到门户部件插件".concat(t,"对应的适配器"))}if(e=Ge(a),e)return e;ibiz.log.error("找不到门户部件成员类型".concat(a,"对应的适配器"))}var Xe=t("APP_COUNTER_PROVIDER_PREFIX","APPCOUNTER");function Ye(t,e){ibiz.register.register("".concat(Xe,"_").concat(t),e)}function Ke(t){return ibiz.register.get("".concat(Xe,"_").concat(t))}async function He(t){let a;const{codeName:s,counterType:i,sysPFPluginId:n,appId:o}=t;if(n){const t=await ve(n,o);if(t&&(a=Ke(t)),a)return a;ibiz.log.error("找不到系统计数器插件".concat(t,"对应的适配器"))}if("CUSTOM"===i){if(a=Ke(s),a)return a;throw new e("找不到自定义系统计数器".concat(s,"对应的适配器"))}if(a=Ke(i),a)return a;throw new e("找不系统计数器类型".concat(i,"对应的适配器"))}var qe=t("AppCounter",class{constructor(t){this.model=t,this.destroyed=!1,this.context=i.create(),this.params={},this.evt=new T,this.data={}}get isDestroyed(){return this.destroyed}async init(t,e){this.setParams(t,e),this.interval(),await this.load()}setParams(t,e){t&&(this.context=B(t)),e&&(this.params=B(e))}interval(){this.destroyInterval(),this.intervalTimer=setInterval((()=>{this.evt.getSize("change")>0&&this.load()}),this.model.timer||6e3)}destroyInterval(){this.intervalTimer&&(clearInterval(this.intervalTimer),this.intervalTimer=null)}async load(){throw new e("未实现计数器加载方法")}refresh(t,e){return this.setParams(t,e),this.load()}onChange(t,e=!0){this.evt.on("change",t),e&&A(this.data)&&t(this.data)}offChange(t){this.evt.off("change",t)}getCounter(t){return this.data[t.toLowerCase()]||0}destroy(){this.destroyed=!0,this.context.destroy(),this.destroyInterval(),this.evt.reset()}}),Qe=t("AppDECounter",class extends qe{async init(t,e){this.appDataEntityId=this.model.appDataEntityId;const s=this.model.getAppDEActionId;if(!s)throw new a(this.model,"未找到获取计数器行为!");this.action=s,await super.init(t,e)}async load(){const t=ibiz.hub.getApp(this.context.srfappid),e=await t.deService.exec(this.appDataEntityId,this.action,this.context,this.params);return e.ok&&(this.data=e.data,this.evt.emit("change",this.data)),this.data}}),$e=t("AppDECounterProvider",class{createCounter(t){return new Qe(t)}});function Je(){Ye("DEDR",(()=>new $e))}t("DEDQCondUtil",class{static getCond(t){if(this.map.has(t))return this.map.get(t);const e=t.dedqgroupConditions;if(e){const a=new Ie;return a.parse(["OR",this.calcCond(e)]),this.map.set(t,a),a}return null}static calcCond(t){const e=[];return t.forEach((t=>{const a=[];if("GROUP"===t.condType){const e=t;e.notMode&&a.push("!"),a.push(t.condOp);const s=e.dedqconditions;if(s){const t=this.calcCond(s);a.push(t)}}else{if("SINGLE"!==t.condType)throw new s(t,"暂未支持的查询条件类型: ".concat(t.condType));{const e=t;a.push(e.fieldName),e.condValue||a.push("")}}e.push(a)})),e}}).map=new WeakMap;var Ze=t("DynamicCodeListCache",class{constructor(t){this.cache=new Map,this.isPredefined=!1,this.codeList=t}async init(){return this.initPromise=(async()=>{const{predefinedType:t}=this.codeList;if(t){if(this.isPredefined=!0,!["OPERATOR","RUNTIME"].includes(t))throw new s(this.codeList,"预定义类型".concat(t,"暂不支持"))}else this.initPromise=void 0})(),this.initPromise}convertData(t){const e={},{valueAppDEFieldId:a,textAppDEFieldId:s}=this.codeList,i=a?t[a]:t.srfkey;return e.id=i,e.value=i,e.text=s?t[s]:t.srfmajortext,Object.freeze(e)}async load(t={},e={}){const s=ibiz.hub.getApp(t.srfappid);if(this.isPredefined){e.size||(e.size=1e4);const t=await s.net.get("/dictionaries/codelist/".concat(this.codeList.codeName),e);return Object.freeze(t.data.items)}const{appDataEntityId:i,appDEDataSetId:n}=this.codeList;if(!i)throw new a(this.codeList,"未配置应用实体");if(!n)throw new a(this.codeList,"未配置数据集");const o=await s.deService.exec(i,n,t,{},e);let r=[];return o.data.length&&(r=o.data.map((t=>this.convertData(t)))),r}async get(t={},e={}){if(this.initPromise&&await this.initPromise,!this.codeList.enableCache)return this.load(t,e);const a=JSON.stringify(t)+JSON.stringify(e);if(this.cache.has(a)){const t=this.cache.get(a);if(t.expirationTime>(new Date).getTime())return t.promise?t.promise:t.items;this.cache.delete(a)}const s=this.load(t,e),{cacheTimeout:i}=this.codeList,n=-1===i||F(i)?ibiz.config.codeList.timeout:this.codeList.cacheTimeout,o={expirationTime:(new Date).getTime()+n,promise:s};this.cache.set(a,o);const r=await s;return o.items=r,delete o.promise,r}});function ta(t,a){if(null!=a){const{srfkey:t}=a;if(!F(t)&&!k(t))return!0}throw new e("执行「".concat(t,"」不存在「srfkey」无法处理"))}function ea(t,a){const{srfsessionid:s}=a;if(!F(s)&&!k(s))return!0;throw new e("执行「".concat(t,"」不存在「srfsessionid」无法处理"))}var aa=t("DECache",class{constructor(){this.cacheMap=new Map}forceAdd(t,e){const a=this.getCacheByTag(t).get(e.srfkey);a&&(a.assign(e),ibiz.log.warn("forceAdd",e.srfkey,e))}forceUpdate(t,e){this.getCacheByTag(t).set(e.srfkey,B(e)),ibiz.log.warn("forceUpdate",e.srfkey,e)}forceDelete(t,e){this.getCacheByTag(t).delete(e),ibiz.log.warn("forceDelete",e)}add(t,e){try{ea("add",t),(F(e.srfkey)||k(e.srfkey))&&(e.srfkey=x()),e.srftempdate=(new Date).getTime();return this.getCacheByTag(t).set(e.srfkey,B(e)),ibiz.log.warn("add",e.srfkey,e),e}catch(t){return ibiz.log.error(t),null}}get(t,e){try{ea("get",t);const a=this.getCacheByTag(t).get(e);return ibiz.log.warn("get",e,a),B(a)}catch(t){return ibiz.log.error(t),null}}update(t,e){try{ea("update",t),ta("update",e),e.srftempdate=(new Date).getTime();const a=this.getCacheByTag(t),s=a.get(e.srfkey);if(s)return s.assign(e),a.set(e.srfkey,s),ibiz.log.warn("update",e.srfkey,e),B(s);throw new Error("数据不存在,无法更新!")}catch(t){return ibiz.log.error(t),null}}delete(t,e){try{ea("delete",t);const a=this.getCacheByTag(t),s=e;if(a.has(s)){const t=a.get(s);return t.srftempdate=(new Date).getTime(),a.delete(s),ibiz.log.warn("delete",s),t}return null}catch(t){return ibiz.log.error(t),null}}createBatch(t,e){try{ea("add",t);const a=this.getCacheByTag(t);for(let t=0;t<e.length;t++){const s=e[t];(F(s.srfkey)||k(s.srfkey))&&(s.srfkey=x()),s.srftempdate=(new Date).getTime();const i=B(s);a.set(s.srfkey,i),e[t]=i,ibiz.log.warn("add",s.srfkey,s)}return e}catch(t){ibiz.log.error(t)}return[]}updateBatch(t,e){try{ea("update",t);const a=this.getCacheByTag(t);for(let t=0;t<e.length;t++){const s=e[t];ta("update",s),s.srftempdate=(new Date).getTime();const i=a.get(s.srfkey);if(!i)throw new Error("数据[".concat(s.srfdename,"-").concat(s.srfmajortext,"(").concat(s.srfkey,")]不存在,无法更新!"));i.assign(s),a.set(s.srfkey,i),ibiz.log.warn("update",s.srfkey,s),e[t]=B(i)}return e}catch(t){return ibiz.log.error(t),null}}deleteBatch(t,e){try{ea("delete",t)}catch(t){return ibiz.log.error(t),e}const a=this.getCacheByTag(t),s=[];for(let t=0;t<e.length;t++){const i=e[t];a.has(i)||s.push(i)}if(s.length>0)throw new Error("未找到以下数据「".concat(s.join("、"),"」,无法删除!"));for(let t=0;t<e.length;t++){const s=e[t];a.delete(s),ibiz.log.warn("delete",s)}return[]}checkData(t,e){return-1!==this.getList(t).findIndex((t=>t.srfkey===e))}getList(t){try{ea("getList",t);const e=this.getCacheByTag(t);if(!e)return[];const a=e.values();return Array.from(a)}catch(t){return ibiz.log.error(t),[]}}generatePred(t={}){const e={};t.srfkey&&(e.srfkey=U(t.srfkey)),delete t.srfkey;for(const a in t)if(Object.prototype.hasOwnProperty.call(t,a)){const s=t[a];e[a]=U(s)}return z(e)}clear(t){const e=t.srfsessionid;this.cacheMap.size>0&&this.cacheMap.delete(e)}getCacheByTag(t){const e=t.srfsessionid;return this.cacheMap.has(e)||this.cacheMap.set(e,new Map),this.cacheMap.get(e)}}),sa=new RegExp("(?<=\\$\\{)(.*?)(?=\\})","g");function ia(t,e){const a=(e.requestPaths||[]).map((t=>({path:t,keys:t.match(sa)||[]}))).filter((e=>{const{keys:a}=e;return 0===a.length||a.every(((e,s)=>s===a.length-1||null!=t[e]))})).sort(((t,e)=>e.keys.length-t.keys.length));if(a.length>0)return a[0]}function na(t,e){const a=ia(t,e);if(a){if(a.keys.length>0){let{path:e}=a;return a.keys.forEach(((s,i)=>{e=i===a.keys.length-1?e.replace(new RegExp("/[^/]+/\\$\\{".concat(s,"\\}")),""):e.replace("${".concat(s,"}"),t[s])})),e}return a.path}return""}var oa=t("SearchFilter",class{constructor(t,e){if(this.page=0,this.size=1e3,this.data={},this.sortField="srfordervalue",this.sortMode="ASC",this.context=t,e){if(F(e.page)||k(e.page)||(this.page=e.page),F(e.size)||k(e.size)||(this.size=e.size),F(e.query)||k(e.query)||(this.query=e.query),!F(e.sort)&&!k(e.sort)){const t=e.sort.split(",");t.length>=1&&([this.sortField]=t),t.length>=2&&(this.sortMode=t[1].toUpperCase())}F(e.srfparentkey)||k(e.srfparentkey)||(this.srfparentkey=e.srfparentkey),F(e.srfparentdename)||k(e.srfparentdename)||(this.srfparentdename=e.srfparentdename),this.data={...e},delete this.data.page,delete this.data.size,delete this.data.query,delete this.data.sort,delete this.data.srfparentkey,delete this.data.srfparentdename}}getValue(t){return this.data[t]?this.data[t]:this.context[t]}}),ra=t("CodeListService",class{constructor(t){this.appModel=t,this.allCodeLists=new Map,this.cache=new Map}getStatic(t){const e=t.codeName;if(this.cache.has(e))return this.cache.get(e);const a=t.codeItems;let s=[];return(null==a?void 0:a.length)&&(s=this.formatStaticItems(a,t.codeItemValueNumber)),this.cache.set(e,Object.freeze(s)),s}setCodeList(t){const{id:e,codeName:a}=t;this.allCodeLists.set(e,t),this.allCodeLists.set(a,t)}getCodeList(t){return this.allCodeLists.get(t)}formatStaticItems(t,e){return t.map((t=>{var a;let s=t.text;t.textLanguageRes&&(s=ibiz.i18n.t(t.textLanguageRes.lanResTag,t.textLanguageRes.defaultContent));const i={text:s,value:e?Number(t.value):t.value,color:t.color,id:t.codeName};return(null==(a=t.codeItems)?void 0:a.length)&&(i.children=this.formatStaticItems(t.codeItems,e)),Object.freeze(i)}))}async getDynamicCodeList(t,e={},a={}){let s;const i=t.codeName;return this.cache.has(i)?s=this.cache.get(i):(s=new Ze(t),this.cache.set(i,s),await s.init()),s.get(e,a)}async get(t,a,s){const i=this.allCodeLists.get(t);if(!i)throw new e("找不到".concat(t,"代码表"));return"STATIC"===i.codeListType?this.getStatic(i):"DYNAMIC"===i.codeListType?this.getDynamicCodeList(i,a,s):[]}}),ca=t("CounterService",class{static async getCounter(t,e,a){const s=t.id;if(this.counterMap.has(s)){const t=this.counterMap.get(s);if(!1===t.isDestroyed)return t;this.counterMap.delete(s)}const i=(await He(t)).createCounter(t);return await i.init(e,a),this.counterMap.set(s,i),i}static async getCounterByRef(t,e,s){const{appCounter:i}=t;if(!i)throw new a(t,"未配置应用计数器!");return this.getCounter(i,e,s)}});ca.counterMap=new Map;var la=t("WorkFlowService",class{constructor(t){this.model=t,this.commonBaseUrl="",this.app=ibiz.hub.getApp(t.appId);const e=ibiz.appData.context;this.commonBaseUrl="/wfcore/".concat(e.srfsystemid,"-app-").concat(this.app.model.codeName.toLowerCase(),"/").concat(this.model.name.toLowerCase())}getBaseUrl(){return this.commonBaseUrl}getActiveData(t,e){return e.srfprocessinstanceid&&(t.srfprocessinstanceid=e.srfprocessinstanceid),t}async getWFStep(t){const{processDefinitionKey:e,taskDefinitionKey:a}=t;return this.app.net.get("".concat(this.getBaseUrl(),"/process-definitions/").concat(e,"/usertasks/").concat(a))}async getWFLink(t,e){const a=t[this.model.codeName.toLowerCase()],{taskDefinitionKey:s}=t;return this.app.net.post("".concat(this.getBaseUrl(),"/").concat(a,"/usertasks/").concat(s,"/ways"),{activedata:this.getActiveData(e,t)})}async getWFHistory(t){const e=t[this.model.codeName.toLowerCase()];return this.app.net.get("".concat(this.getBaseUrl(),"/").concat(e,"/process-instances/alls/history"))}async getWFProcessDiagram(t){const e=t[this.model.codeName.toLowerCase()];return this.app.net.request("".concat(this.getBaseUrl(),"/").concat(e,"/process-instances/alls/processdiagram"),{method:"post",data:{},responseType:"blob"})}async getWFVersion(){return this.app.net.get("".concat(this.getBaseUrl(),"/process-definitions2"))}async wfStart(t,e,a){return this.app.net.post("".concat(this.getBaseUrl(),"/").concat(t[this.model.codeName.toLowerCase()],"/process-instances"),{...e,activedata:this.getActiveData(a,t)})}async wfSubmit(t,e,a){return this.app.net.post("".concat(this.getBaseUrl(),"/").concat(t[this.model.codeName.toLowerCase()],"/tasks/").concat(e.taskId),{...e,activedata:this.getActiveData(a,t)})}async wfWithdraw(t,e,a){return this.app.net.post("".concat(this.getBaseUrl(),"/").concat(t[this.model.codeName.toLowerCase()],"/tasks/").concat(e.taskId,"/withdraw"),{...e,activedata:this.getActiveData(a,t)})}async wfReassign(t,e,a){return ibiz.net.post("".concat(this.getBaseUrl(),"/").concat(t[this.model.codeName.toLowerCase()],"/tasks/").concat(e.taskId,"/transfer"),{...e,activedata:this.getActiveData(a,t)})}async wfAddStepBefore(t,e,a){return ibiz.net.post("".concat(this.getBaseUrl(),"/").concat(t[this.model.codeName.toLowerCase()],"/tasks/").concat(e.taskId,"/beforesign"),{...e,activedata:this.getActiveData(a,t)})}async wfSendBack(t,e,a){return ibiz.net.post("".concat(this.getBaseUrl(),"/").concat(t[this.model.codeName.toLowerCase()],"/tasks/").concat(e.taskId,"/sendback"),{...e,activedata:this.getActiveData(a,t)})}async wfSendCopy(t,e,a){return ibiz.net.post("".concat(this.getBaseUrl(),"/").concat(t[this.model.codeName.toLowerCase()],"/tasks/").concat(e.taskId,"/sendcopy"),{...e,activedata:this.getActiveData(a,t)})}async exec(t,a,s={},i={}){switch(t){case"wfstart":return this.wfStart(a,s,i);case"wfsubmit":return this.wfSubmit(a,s,i);case"reassign":return this.wfReassign(a,s,i);case"addstepbefore":return this.wfAddStepBefore(a,s,i);case"sendback":return this.wfSendBack(a,s,i);case"sendcopy":return this.wfSendCopy(a,s,i);default:throw new e("「".concat(t,"」未实现"))}}}),da=t("Srfuf",(t=>(t[t.CREATE=0]="CREATE",t[t.UPDATE=1]="UPDATE",t))(da||{})),ha=t("AppDataEntity",class t{get srfuf(){return this.srfkey?1:0}constructor(e,a){let s;Object.defineProperty(this,"_entity",{enumerable:!1,configurable:!0,value:e}),Object.defineProperty(this,"_data",{enumerable:!1,configurable:!0,value:B(a instanceof t?a._data:a)}),Object.defineProperty(this,"srfdeid",{get:()=>e.id}),Object.defineProperty(this,"srfdecodename",{get:()=>e.codeName});const i=gt(e.appDEFields||[],e.keyAppDEFieldId);if(i){const t=i.codeName.toLowerCase();Object.defineProperty(this,"srfkeyfile",{get:()=>t}),Object.defineProperty(this,"srfkey",{set(t){s=t},get(){return this._data[t]||s}})}else ibiz.log.warn("实体[".concat(e.codeName,"]未配置主键字段"));const n=gt(e.appDEFields||[],e.majorAppDEFieldId);if(n){const t=n.codeName.toLowerCase();Object.defineProperty(this,"srfmajorfile",{get:()=>t}),Object.defineProperty(this,"srfmajortext",{set(e){this._data[t]=e},get(){return this._data[t]}})}else ibiz.log.warn("实体[".concat(e.codeName,"]未配置主文本字段"));this.defineProperties()}defineProperties(){var t;const{_data:e}=this,a={},s=Object.keys(e);s.forEach((t=>{a[t]={enumerable:!0,set(a){e[t]=a},get:()=>e[t]}})),null==(t=this._entity.appDEFields)||t.forEach((t=>{const i=t.codeName.toLowerCase();s.includes(i)||(a[i]={enumerable:!0,set(t){e[i]=t},get:()=>e[i]})})),Object.defineProperties(this,a)}clone(){return new t(this._entity,this._data)}assign(e){return e instanceof t?Object.assign(this._data,e._data):Object.assign(this._data,e),this}}),ua=t("MethodDto",class t{constructor(t,e){this.entity=t,this.dto=e,this.dtoMap=new Map,e?(this.app=ibiz.hub.getApp(t.appId),this.fields=e.appDEMethodDTOFields||[]):this.fields=[]}get isLocalMode(){return 1===this.entity.storageMode||4===this.entity.storageMode}async get(t,e){const a={};for(let e=0;e<this.fields.length;e++){const i=this.fields[e],n=i.codeName.toLowerCase();switch(i.type){case"SIMPLE":break;case"DTOS":{if(!i.refAppDataEntityId)break;const e=await this.getFieldDto(i),s=(await this.app.deService.getService(i.refAppDataEntityId)).local.getList(t);if(s){const i=[];for(let a=0;a<s.length;a++)i.push(await e.get(t,s[a]));a[n]=i}break}default:throw new s(i,"未支持的应用实体方法输入属性类型: ".concat(i.type))}}return{...e,...a}}async sets(t,e){const a=await this.app.deService.getService(this.entity.id);return a.local.clear(t),Promise.all(e.map((async e=>{const s=this.fields.filter((t=>"DTOS"===t.type)).map((async a=>{if(!a.refAppDataEntityId)return;const s=a.codeName.toLowerCase(),i=await this.getFieldDto(a),n=e[s];n&&await i.sets(t,n)}));for(let t=0;t<s.length;t++)await s[t];const i=new ha(this.entity,e);return this.isLocalMode&&await a.local.add(t,i),i})))}async getFieldDto(e){if(this.dtoMap.has(e.codeName))return this.dtoMap.get(e.codeName);const a=await ibiz.hub.getAppDataEntity(e.refAppDataEntityId,this.entity.appId),s=gt(a.appDEMethodDTOs||[],e.refAppDEMethodDTOId),i=new t(a,s);return this.dtoMap.set(e.codeName,i),i}}),pa=class{constructor(t,e){this.entity=t,this.method=e,this.app=ibiz.hub.getApp(t.appId),this.input=new class{constructor(t,e){if(this.entity=t,this.input=e,e){const a=gt(t.appDEMethodDTOs||[],e.appDEMethodDTOId);a&&(this.dto=new ua(t,a))}}async handle(t,e){return this.dto?this.dto.get(t,e):e}}(t,e.appDEMethodInput),this.result=new class{constructor(t,e){if(this.entity=t,this.output=e,e){const a=gt(t.appDEMethodDTOs||[],e.appDEMethodDTOId);a&&(this.dto=new ua(t,a))}}async handle(t,e){return this.dto?(await this.dto.sets(t,[e]))[0]:new ha(this.entity,e)}}(t,e.appDEMethodReturn)}get isLocalMode(){return 1===this.entity.storageMode||4===this.entity.storageMode}async request(t,e,s,i){const{actionType:n,requestMethod:o}=this.method;if("REMOTE"===n){const e=this.method.codeName.toLowerCase();let n=null;switch(o){case"POST":n=await this.app.net.post("".concat(t,"/").concat(e),s,i);break;case"GET":n=await this.app.net.get("".concat(t,"/").concat(e),s,i);break;case"PUT":n=await this.app.net.put("".concat(t,"/").concat(e),s,i);break;case"DELETE":n=await this.app.net.delete("".concat(t,"/").concat(e),s,i);break;default:throw new a(this.method,o?"未支持的请求方式: ".concat(o):"未配置请求方式")}return n}throw new a(this.method,"未支持的行为类型[".concat(n,"]"))}calcPath(t){const e="/".concat(this.entity.codeName2.toLowerCase());return na(t,this.entity)+e}async getService(){return this.service||(this.service=await this.app.deService.getService(this.entity.id)),this.service}createEntity(t){return new ha(this.entity,t)}},ma=class{},ga=class extends ma{constructor(t){super(),this.model=t,this.srcParam=t.srcLogicParamId,this.dstParam=t.dstLogicParamId}get dstField(){return this.model.dstFieldName.toLowerCase()}get op(){return this.model.condOP}get type(){return this.model.paramType}get value(){return this.model.paramValue}test(t,e,i){const n=t.params[this.dstParam];switch(this.type){case"ENTITYFIELD":{if(!this.value)throw new a(this.model,"当前条件值类型为[数据对象属性],缺少配置条件值");const t=null!=i[this.value]?i[this.value]:e[this.value];return Ft(n[this.dstField],this.op,t)}case"SRCENTITYFIELD":{if(!this.value)throw new a(this.model,"当前条件值类型为[源数据对象属性],缺少配置条件值");const e=t.params[this.srcParam];return Ft(n[this.dstField],this.op,e[this.value])}case"CURTIME":throw new s(this.model,"暂未支持条件值类型为[当前时间]");default:return Ft(n[this.dstField],this.op,this.value)}}},fa=class t extends ma{constructor(e){super(),this.model=e;const a=e.conds||[];this.conds=a.map((e=>"SINGLE"===e.logicType?new ga(e):new t(e)))}get op(){return this.model.groupOP}get notMode(){return!0===this.model.notMode}test(t,e,s){let i=!0;if(0===this.conds.length)throw new a(this.model,"界面连接条件逻辑组未配置逻辑项");for(let a=0;a<this.conds.length;a++){const n=this.conds[a].test(t,e,s);if("AND"===this.op&&!1===n){i=!1;break}if("OR"===this.op&&!0===n){i=!0;break}}return this.notMode?!i:i}},Ea=class{constructor(t){var e;this.model=t,this.links=null==(e=t.links||[])?void 0:e.map((t=>new class{constructor(t){this.model=t,this.srcNode=null,this.dstNode=null,this.groupCond=null;const e=this.model.delogicLinkGroupCond;e&&(this.groupCond=new fa(e))}async exec(t){const{defaultLink:e}=this.model;return!(!e&&this.groupCond)||this.groupCond.test(t,t.context,t.data||{})}}(t)))}},wa=class extends Ea{async exec(t){const{dstAppDataEntityId:e,dstAppDEActionId:s,dstDELogicParamId:i,retDELogicParamId:n}=this.model;if(!e)throw new a(this.model,"未指定应用实体");if(!s)throw new a(this.model,"未指定实体行为");const o=t.params[i],r=ibiz.hub.getApp(t.context.srfappid),c=await r.deService.exec(e,s,t.context,o,t.viewParams);c.ok&&(t.params[n]=c.data)}},Ia=class extends Ea{async exec(t){}},va=class extends Ea{async exec(t){t.isEndNode=!0;const{returnParamId:e,returnType:a,rawValue:i}=this.model;switch(a){case"NONEVALUE":t.result=void 0;break;case"NULLVALUE":t.result=null;break;case"SRCVALUE":t.result=i;break;case"LOGICPARAM":t.result=t.params[e];break;default:throw new s(this.model,"暂未支持的结束节点返回值类型: ".concat(a))}}};function Da(t,e){const{srcDELogicParamId:a,srcValueType:i,srcFieldName:n,srcValue:o}=e;let r;switch(e.srcValueType||(e.srcValueType="SRCDLPARAM"),i){case"SRCDLPARAM":r=t.params[a];break;case"NULLVALUE":return null;case"NONEVALUE":return;case"SRCVALUE":return o;case"VIEWPARAM":r=t.viewParams;break;case"APPDATA":r=t.context;break;case"ENVPARAM":r=B(ibiz.env);break;default:throw new s(e,"暂未支持源值类型".concat(i))}const c=null==n?void 0:n.toLowerCase();return r&&c&&(r=r[c]),r}var ya=class extends Ea{async exec(t){const e=this.model.delogicNodeParams;(null==e?void 0:e.length)&&await Promise.all(e.map((e=>{switch(e.paramAction){case"SETPARAMVALUE":return this.setParamValue(e,t);case"RESETPARAM":return this.resetParam(e,t);case"COPYPARAM":return this.copyParam(e,t);case"BINDPARAM":return this.bindParam(e,t);case"RENEWPARAM":return this.renewParam(e,t);case"APPENDPARAM":return this.appendParam(e,t);case"SORTPARAM":return this.sortParam(e,t);default:throw new s(e,"暂未支持逻辑处理参数操作".concat(e.paramAction))}})))}copyParam(t,e){const{dstDELogicParamId:a}=t,s=Da(e,t);e.params[a]=B(s)}bindParam(t,e){const a=Da(e,t);e.params[t.dstDELogicParamId]=a}setParamValue(t,e){const{dstFieldName:a,dstDELogicParamId:s}=t,i=null==a?void 0:a.toLowerCase(),n=Da(e,t);i?e.params[s][i]=n:e.params[s]=n}resetParam(t,e){const{dstDELogicParamId:a}=t;e.resetParam(a)}renewParam(t,e){const{dstDELogicParamId:a}=t;e.renewParam(a)}appendParam(t,e){const{dstDELogicParamId:a,dstIndex:s,srcIndex:i,srcSize:n}=t,o=Da(e,t),r=s||0,c=i||0,l=n||o.length;e.params[a].splice(r,0,...o.slice(c,l))}sortParam(t,e){const{dstDELogicParamId:a,dstFieldName:s,dstSortDir:i}=t,n=s.toLowerCase();e.params[a].sort(((t,e)=>"ASC"===i?t[n]-e[n]:e[n]-t[n]))}},Ca=class extends Ea{async exec(t){const{dstAppDEDataSetId:e,dstAppDataEntityId:a,dstDELogicParamId:s,retDELogicParamId:i}=this.model,n=t.params[s],o=ibiz.hub.getApp(t.context.srfappid),r=await o.deService.exec(a,e,t.context,n,t.viewParams);r.ok&&(t.params[i]=r.data)}},Aa=class extends Ea{async exec(t){const{dstDELogicParamId:e,srcDELogicParamId:s}=this.model;if(!e||!s)throw new a(this.model,"缺少目标参数对象或者源参数对象配置");const i=Da(t,this.model);t.params[e]=i}},Pa=class extends Ea{async exec(t){const{dstDELogicParamId:e}=this.model;if(!e)throw new a(this.model,"缺少目标参数对象配置");t.resetParam(e)}},ba=class extends Ea{async exec(t){const{dstDELogicParamId:e}=this.model;if(!e)throw new a(this.model,"缺少目标参数对象配置");t.renewParam(e)}},Ta=class extends Ea{async exec(t){const{dstDELogicParamId:e,srcDELogicParamId:s}=this.model;if(!e||!s)throw new a(this.model,"缺少目标参数对象或者源参数对象配置");const i=Da(t,this.model);t.params[e]=B(i)}},xa=class extends Ea{async exec(t){const{dstDELogicParamId:e,dstSortDir:s,dstFieldName:i}=this.model;if(!e||!i)throw new a(this.model,"缺少目标参数对象或目标属性配置");const n=i.toLowerCase();t.params[e].sort(((t,e)=>"ASC"===s?t[n]-e[n]:e[n]-t[n]))}},Na=class extends Ea{async exec(t){const{dstDELogicParamId:e,srcDELogicParamId:s,dstIndex:i,srcIndex:n,srcSize:o}=this.model;if(!e||!s)throw new a(this.model,"缺少目标参数对象或者源参数对象配置");const r=Da(t,this.model),c=i||0,l=n||0,d=o||r.length;t.params[e].splice(c,0,...r.slice(l,d))}},La=class extends Ea{async exec(t){const{errorCode:e,errorInfo:a}=this.model;throw new o({response:{status:e,statusText:a}})}},Ra=class{constructor(t){var e,i;if(this.model=t,this.nodes=new Map,this.params=new Map,!(null==(e=t.delogicNodes)?void 0:e.length))throw new a(t,"实体逻辑没有配置逻辑节点");t.delogicNodes.forEach((t=>{const{logicNodeType:e}=t;let a;switch(e){case"BEGIN":a=new Ia(t);break;case"END":a=new va(t);break;case"DEACTION":a=new wa(t);break;case"PREPAREPARAM":a=new ya(t);break;case"DEDATASET":a=new Ca(t);break;case"THROWEXCEPTION":a=new La(t);break;case"BINDPARAM":a=new Aa(t);break;case"RESETPARAM":a=new Pa(t);break;case"COPYPARAM":a=new Ta(t);break;case"RENEWPARAM":a=new ba(t);break;case"APPENDPARAM":a=new Na(t);break;case"SORTPARAM":a=new xa(t);break;default:throw new s(t,"未支持的逻辑节点类型: ".concat(e))}this.nodes.set(t.id,a)})),null==(i=t.delogicParams)||i.forEach((t=>{this.params.set(t.id,new class{constructor(t){this.model=t}calc(t){const e=this.model.id,a=this.model;if(a.default)t.params[e]=t.data||{};else if(a.appGlobalParam)t.params[e]=B(ibiz.env);else if(a.entityListParam)t.params[e]=[];else{if(a.entityPageParam)throw new s(a,"未支持的逻辑参数类型: 分页查询结果");if(a.entityParam)t.params[e]={};else{if(a.lastReturnParam)throw new s(a,"未支持的逻辑参数类型: 上次调用返回");if(a.appContextParam)t.params[e]=t.context;else if(a.simpleListParam)t.params[e]=[];else if(a.simpleParam)t.params[e]={};else if(a.cloneParam)t.params[e]=B(t.data||{});else{if(a.envParam)throw new s(a,"未支持的逻辑参数类型: 系统环境变量");if(a.fileListParam)throw new s(a,"未支持的逻辑参数类型: 文件对象列表变量");if(a.fileParam)throw new s(a,"未支持的逻辑参数类型: 文件对象变量");if(a.filterParam)throw new s(a,"未支持的逻辑参数类型: 过滤器对象变量");if(a.lastParam)throw new s(a,"未支持的逻辑参数类型: 最后数据变量");if(a.originEntity)throw new s(a,"未支持的逻辑参数类型: 原始数据对象");if(a.sessionParam)throw new s(a,"未支持的逻辑参数类型: 操作会话变量")}}}}renew(t){const e=this.model.id,a=this.model;if(a.entityListParam||a.simpleListParam||a.entityPageParam)t.params[e]=[];else{if(!a.simpleParam&&!a.entityParam)throw new s(a,"未支持的逻辑参数类型重新建立变量");t.params[e]={}}}}(t))})),this.nodes.forEach((t=>{t.links.forEach((e=>{e.srcNode=t,this.nodes.has(e.model.thenId)&&(e.dstNode=this.nodes.get(e.model.thenId))}))}))}initLogicParams(t){this.params.forEach((e=>{e.model.default&&(t.defaultParamName=e.model.id),e.calc(t)}))}async exec(t,e,s){const i=new class{constructor(t,e,a,s){this.deLogicParams=t,this.context=e,this.data=a,this.viewParams=s,this.params={},this.result=null,this.isEndNode=!1,this.defaultParamName="Default"}resetParam(t){var e;null==(e=this.deLogicParams.get(t))||e.calc(this)}renewParam(t){var e;null==(e=this.deLogicParams.get(t))||e.renew(this)}}(this.params,t,e,s);this.initLogicParams(i);const{startDELogicNodeId:n}=this.model;if(!n||!this.nodes.has(n))throw new a(this.model,"未设置起始节点");{const t=this.nodes.get(n);await this.deepExec(t,i)}return i.isEndNode?i.result:i.params[i.defaultParamName]?i.params[i.defaultParamName]:null}async deepExec(t,e){await t.exec(e);const{links:a}=t;for(let s=0;s<a.length;s++){const i=a[s];if(await i.exec(e)&&i.dstNode&&(await this.deepExec(i.dstNode,e),!1===t.model.parallelOutput))break}}},Va=new Map;async function Oa(t,e,a,s){Va.has(t)||Va.set(t,new Ra(t));return Va.get(t).exec(e,a,s)}async function Ma(t,e,a,s){try{const i=await Oa(t,e,a,s);return new n(i)}catch(t){if(t instanceof o)return new n(t,500);throw t}}async function Sa(t,e,a,s,i){const n=At(t,e);if(n.length){(await Promise.all(n.map((t=>Oa(t,a,s,i))))).forEach((t=>{Object.assign(s,t)}))}}var _a=class extends pa{async exec(t,e,s){if("DELOGIC"===this.method.actionType){const i=Ct(this.method.appDELogicId,this.entity);if(!i)throw new a(this.method,"缺少实体处理逻辑");return Ma(i,t,e,s)}let i;switch(this.isLocalMode||(e=await this.input.handle(t,e)),["READ","GETDRAFT"].includes(this.method.actionMode)||await Sa(this.entity,"change",t,e,s),this.method.codeName){case"Create":i=await this.create(t,e,s);break;case"Get":i=await this.get(t,s);break;case"GetDraft":i=await this.getDraft(t,s);break;case"Remove":i=await this.remove(t,s);break;case"Update":i=await this.update(t,e,s);break;case"CreateTemp":i=await this.createTemp(t,e);break;case"GetTemp":i=await this.getTemp(t,e);break;case"GetDraftTemp":i=await this.getDraftTemp(t,s);break;case"RemoveTemp":i=await this.removeTemp(t,e);break;case"UpdateTemp":i=await this.updateTemp(t,e);break;default:{let a=this.calcPath(t);this.method.needResourceKey&&(a="".concat(a,"/").concat(t[this.entity.codeName.toLowerCase()]||e[this.entity.keyAppDEFieldId]));const n=await this.request(a,t,e,s);n.data=await this.result.handle(t,n.data),i=n}}return await Sa(this.entity,"compute",t,i.data,s),i}async create(t,e,a){if(this.isLocalMode)return this.createTemp(t,this.createEntity(e));const s=this.calcPath(t),i=await this.app.net.post(s,e,a);return i.data=await this.result.handle(t,i.data),i}async remove(t,e){if(this.isLocalMode)return this.removeTemp(t,e);const a=this.calcPath(t);return await this.app.net.delete("".concat(a,"/").concat(t[this.entity.codeName.toLowerCase()]),e)}async update(t,e,a={}){if(this.isLocalMode)return this.updateTemp(t,this.createEntity(e));const s=this.calcPath(t),i=await this.app.net.put("".concat(s,"/").concat(t[this.entity.codeName.toLowerCase()]),e,a);return i.data=await this.result.handle(t,i.data),i}async get(t,e={}){if(this.isLocalMode)return this.getTemp(t,e);const a=this.calcPath(t),s=await this.app.net.get("".concat(a,"/").concat(t[this.entity.codeName.toLowerCase()]),e);return s.data=await this.result.handle(t,s.data),s}async getDraft(t,e){if(this.isLocalMode)return this.getDraftTemp(t,e);const a=this.calcPath(t),s=await this.app.net.get("".concat(a,"/getdraft"),e);return s.data=await this.result.handle(t,s.data),s}async createTemp(t,e){try{const a=await this.getService(),s=await a.local.add(t,this.createEntity(e));return new n(s)}catch(t){return new n(t,500)}}async getDraftTemp(t,e){try{const t=this.createEntity({});return t?new n(t):new n(t,500)}catch(t){return new n(t,500)}}async removeTemp(t,e){try{let e=null;!e&&t&&(e=t[this.entity.codeName.toLowerCase()]);const a=(await this.getService()).local.delete(t,e);return a?new n(a):new n(a,500)}catch(t){return new n(t,500)}}async updateTemp(t,e){try{const a=(await this.getService()).local.update(t,this.createEntity(e));return a?new n(a):new n(a,500)}catch(t){return new n(t,500)}}async getTemp(t,e){try{let e=null;!e&&t&&(e=t[this.entity.codeName.toLowerCase()]);const a=(await this.getService()).local.get(t,e);return a?new n(a):new n(a,500)}catch(t){return new n(t,500)}}async removeBatchTemp(t,e){return new n(!0)}},Fa=class extends pa{async exec(t,e,a){if(this.isLocalMode){const a=await this.searchLocal(null,new oa(t,e));return new n(a,200)}let i;switch(this.method.dataSetType){case"INDEXDE":case"CODELIST":i=await this.fetchCodeListSet(t,a);break;case"REMOTE":{const s=this.calcPath(t);i=await this.request(s,t,e,a)}break;default:throw new s(this.method,"数据来源类型".concat(this.method.dataSetType,"暂未支持"))}const o=i.data||[];return i.data=o.map((t=>this.createEntity(t))),i.data.length&&await Promise.all(i.data.map((e=>Sa(this.entity,"compute",t,e,a)))),i}async selectLocal(t,e={}){let a=(await this.getService()).local.getList(t);a=O(a,"srfordervalue");const s={},i={},n={},o={};e.srfkey&&(s.srfkey=U(e.srfkey),delete e.srfkey);for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){const a=e[t];null==a?(i[t]=U(null),n[t]=U(void 0),o[t]=U("")):s[t]=U(a)}if(!k(s)){const t=z(s),e=z(i),r=z(n),c=z(o);a=a.filter((a=>{if(k(i)){if(t(a))return!0}else if(t(a)&&(e(a)||r(a)||c(a)))return!0;return!1}))}return a.map((t=>t.clone()))}async searchLocal(t,e,a=this.entity.quickSearchAppDEFieldIds){const s=await this.getService();let i=[];t?(i=s.local.getList(e.context),i.length>0&&(i=i.filter((a=>t.test(a,e))))):(i=await this.selectLocal(e.context),i.length>0&&e.query&&""!==e.query&&a&&(i=i.filter((t=>{const s=new RegExp(e.query);for(let e=0;e<a.length;e+=1){const i=t[a[e]];if(s.test(i))return!0}return!1})))),F(e.sortField)||k(e.sortField)||(i="DESC"===e.sortMode?M(i,e.sortField):O(i,e.sortField));const{page:n,size:o}=e,r=n*o,c=(n+1)*o-1;return i.slice(r,c).map((t=>B(t)))}async fetchCodeListSet(t,e){const{appCodeListId:s}=this.method;if(!s)throw new a(this.method,"没有指定数据来源代码表");const i=await this.app.codeList.get(s,t,e),{keyAppDEFieldId:o,majorAppDEFieldId:r}=this.entity,c=i.map((t=>({[o]:t.value,[r]:t.text})));return new n(c,200)}},Wa=t("DEService",class{constructor(t){this.model=t,this.methodMap=new Map,this.local=new aa,this.wf=new la(t),this.file=new class{constructor(t){this.model=t}exportData(t,e,a,s){const i=na(a,this.model),n="".concat(i,"/").concat(this.model.codeName2.toLowerCase(),"/exportdata/").concat(e.toLowerCase(),"/?srfexporttag=").concat(t.codeName);return ibiz.net.request(n,{method:"post",data:s,responseType:"blob"})}}(t)}getMethod(t){if(this.methodMap.has(t))return this.methodMap.get(t);const e=gt(this.model.appDEMethods,t);let a=null;switch(e.methodType){case"DEACTION":a=new _a(this.model,e);break;case"FETCH":case"FETCHTEMP":a=new Fa(this.model,e);break;default:throw new s(e,"未支持的服务方法类型: ".concat(e.methodType))}return this.methodMap.set(t,a),a}exec(t,a,s={},i={}){const n=this.getMethod(t);if(n)return n.exec(a,s,i);throw new e("".concat(this.model.codeName,"未支持「").concat(t,"」方法"))}}),ka=t("ControlVO",class t{get srfuf(){return F(this.$origin.srfuf)?this.srfkey?1:0:this.$origin.srfuf}get srfkey(){return this.$origin.srfkey}get srfmajortext(){return this.$origin.srfmajortext}get srfdeid(){return this.$origin.srfdeid}get srfdecodename(){return this.$origin.srfdecodename}get srfkeyfile(){return this.$origin.srfkeyfile}get srfmajorfile(){return this.$origin.srfmajorfile}constructor(t={},e=new Map){Object.defineProperty(this,"$origin",{enumerable:!1,configurable:!0,value:t||{}}),Object.defineProperty(this,"$dataUIMap",{enumerable:!1,configurable:!0,value:e||new Map}),this.$dataUIMap.forEach(((t,e)=>{const a=t.dataKey;this.linkProperty(e,a,t.isOriginField)})),Object.keys(t).forEach((t=>{Object.prototype.hasOwnProperty.call(this,t)||this.linkProperty(t,t)}))}linkProperty(t,e,a=!0){"srfuf"!==t&&(a||Object.prototype.hasOwnProperty.call(this.$origin,t)?Object.defineProperty(this,t,{enumerable:!0,configurable:!0,get(){return this.$origin[e]},set(t){this.$origin[e]=t}}):Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:null}))}getOrigin(){return this.$origin}setOrigin(e){this.$origin=e instanceof t?e.getOrigin():e}clone(){const e=B(this.$origin),a=new t(e,this.$dataUIMap);return Object.keys(this).forEach((t=>{a[t]=this[t]})),a}}),Ba=t("ControlService",class{constructor(t){this.dataUIMap=new Map,this.model=t}async init(t){this.app=ibiz.hub.getApp(null==t?void 0:t.srfappid),this.initUIDataMap()}initUIDataMap(){}async exec(t,e,a={},s={}){return await this.app.deService.exec(this.model.appDataEntityId,t,e,a,s)}handleResponse(t){return t}toUIData(t){return new ka(t,this.dataUIMap)}}),Ua=t("MDControlService",class extends Ba{async fetch(t,e={}){var a;const s=(null==(a=this.model.fetchControlAction)?void 0:a.appDEMethodId)||"fetchdefault";let i=await this.exec(s,t,e);return i=this.handleResponse(i),i}async get(t,e={}){var a;const s=(null==(a=this.model.getControlAction)?void 0:a.appDEMethodId)||"get";let i=await this.exec(s,t,void 0,e);return i=this.handleResponse(i),i}async getDraft(t,e={}){var a;const s=(null==(a=this.model.getDraftControlAction)?void 0:a.appDEMethodId)||"getdraft";let i=await this.exec(s,t,void 0,e);return i=this.handleResponse(i),i}async remove(t,e={}){var a;const s=(null==(a=this.model.removeControlAction)?void 0:a.appDEMethodId)||"remove";return await this.exec(s,t,void 0,e)}async create(t,e){var a;const s=(null==(a=this.model.createControlAction)?void 0:a.appDEMethodId)||"create";let i=await this.exec(s,t,e.getOrigin());return i=this.handleResponse(i),i}async update(t,e){var a;const s=(null==(a=this.model.updateControlAction)?void 0:a.appDEMethodId)||"update";let i=await this.exec(s,t,e.getOrigin());return i=this.handleResponse(i),i}async exportData(t,a,s={}){throw new e("未实现")}handleResponse(t){const e=super.handleResponse(t);return e.headers&&(e.headers["x-page"]&&(e.page=Number(e.headers["x-page"])),e.headers["x-per-page"]&&(e.size=Number(e.headers["x-per-page"])),e.headers["x-total"]&&(e.total=Number(e.headers["x-total"]))),e.ok&&(N(e.data)?e.data=e.data.map((t=>this.toUIData(t))):e.data=this.toUIData(e.data)),e}}),za=t("DeAuthorityService",class{constructor(t){this.entityModel=t}async calcByDataAccessAction(t,e){if(e.srfopprivs&&!e.srfopprivs.includes(t))return!1;return!!await this.calcByDeMainState(t,e)}async calcByDeMainState(t,e){let a=!0;const s=this.entityModel;if(!s.enableDEMainState)return ibiz.log.debug("".concat(s.codeName,"实体不存在或者为启用主状态,返回true")),a;ibiz.log.debug("操作标识".concat(t,"主状态计算开始"),e,s);const i=It(s,e);if(i){ibiz.log.debug("匹配主状态",i);const e=vt(i,s);ibiz.log.debug("允许的主状态权限集合",e),a=e.includes(t)}else ibiz.log.debug("没匹配主状态,返回false"),a=!1;return ibiz.log.debug("操作标识".concat(t,"权限计算结束:").concat(a)),a}}),Ga=t("AuthorityService",class{constructor(t){this.appModel=t,this.cache=new Map,this.constructorCache=new Map,this.resCodes=[],this.enablePermission=!1}register(t,e){this.constructorCache.set(t,e)}async getService(t){if(!this.cache.has(t)){const a=await ibiz.hub.getAppDataEntity(t,this.appModel.appId);if(!a)throw new e("未找到应用实体[".concat(t,"]"));const s=this.constructorCache.get(t);let i;i=s?await s(a):new za(a),this.cache.set(t,i)}return this.cache.get(t)}async init(t=ibiz.appData){if(!t)throw new e("没有appData数据");t.unires&&(this.resCodes=t.unires),!0===t.enablepermissionvalid&&ibiz.env.enablePermission&&(this.enablePermission=!0)}calcByResCode(t){return!this.enablePermission||this.resCodes.includes(t)}async calcByDataAccessAction(t,e,a){if(this.enablePermission){const e=await ibiz.hub.getApp(this.appModel.appId),s=await e.getOPPriv(t,a);if(this.enablePermission&&(null==s?void 0:s.mapSysUniResCode)&&!this.calcByResCode(s.mapSysUniResCode))return!1}if(e&&a){return(await this.getService(a)).calcByDataAccessAction(t,e)}return!0}}),ja=t("V7AuthService",class{async login(t,e){try{const a=await ibiz.net.post("/v7/login",{loginname:t,password:e}),{data:s}=a;if(s&&s.token){L(r.TOKEN,s.token,0,!0);const t=(new Date).getTime()+1e3*(s.expirein||7199);L(r.TOKEN_EXPIRES,"".concat(t),0,!0)}return!0}catch(t){ibiz.notification.error({title:"登录失败",desc:t.message||""})}return!1}async logout(){try{return await ibiz.net.get("/v7/logout"),R(r.TOKEN),R(r.TOKEN_EXPIRES),!0}catch(t){ibiz.notification.error({title:"登出失败",desc:t.message||""})}return!1}}),Xa=t("TreeNodeData",class{constructor(t,e,a){this.leaf=!1,this.leaf=!0===a.leaf,this.parent=e,this.parent&&(this.context={...this.parent.context}),a.navContext&&(this.context=Object.assign(this.context||{},a.navContext)),a.navParams&&(this.params={...a.navParams}),this.nodeId=t.id}calcIcon(t){const{sysImage:e}=t,a={};return e&&(e.cssClass&&(a.cssClass=e.cssClass),e.imagePath&&(a.imagePath=e.imagePath)),Object.values(a).length>0?a:void 0}}),Ya=t("TreeCodeListNodeData",class extends Xa{constructor(t,e,a){super(t,e,a);const{data:s}=a;if(this.deData=s,this.text=s.text,this.value=s.value,this.id=e?"".concat(e.id,":").concat(t.id,"@").concat(this.value):t.id+this.value,this.id=this.id.toLowerCase(),t.appDataEntityId){const e=Dt(t.appDataEntityId);this.context=Object.assign(this.context||{},{[e]:this.value})}this.srfkey=this.value,this.srfmajortext=this.text,this.icon=this.calcIcon(t)}}),Ka=t("TreeDataSetNodeData",class extends Xa{constructor(t,e,a){super(t,e,a);const{data:s}=a;if(this.deData=s,this.text=s.srfmajortext,this.value=s.srfkey,this.id=e?"".concat(e.id,":").concat(t.id,"@").concat(s.srfkey):t.id+s.srfkey,this.id=this.id.toLowerCase(),t.appDataEntityId){const e=Dt(t.appDataEntityId);this.context=Object.assign(this.context||{},{[e]:s.srfkey})}this.srfkey=this.deData.srfkey,this.srfmajortext=this.deData.srfmajortext,this.icon=this.calcIcon(t),this.textHtml=this.calcTextHtml(t)}calcIcon(t){const e=super.calcIcon(t)||{},{iconAppDEFieldId:a,detreeNodeDataItems:s}=t;a&&this.deData[a]&&(e.imagePath=this.deData[a]),e&&(this.icon=e);const i=null==s?void 0:s.find((t=>"icon"===t.id));return i&&(e.htmlStr=this.calcDataItemScript(i)),Object.values(e).length>0?e:void 0}calcDataItemScript(t){if(t.customCode&&t.scriptCode)return jt.execScriptFn({data:this.deData},t.scriptCode,{isAsync:!1})}calcTextHtml(t){let e;const{detreeNodeDataItems:a}=t,s=null==a?void 0:a.find((t=>"text"===t.id));return s&&(e=this.calcDataItemScript(s)),e}}),Ha=t("TreeStaticNodeData",class extends Xa{constructor(t,e,a){var s,i;super(t,e,a);const n="root"===t.nodeValue?void 0:t.nodeValue;if(this.id=e?"".concat(e.id,":").concat(t.id):t.id,this.id=this.id.toLowerCase(),this.text=t.text,this.value=n,e&&a.parentValueLevel){let t=e;for(let e=1;e<a.parentValueLevel;e++)t=null==t?void 0:t.parent;(null==t?void 0:t.deData)&&(this.deData=t.deData),this.value=n||(null==t?void 0:t.value)}this.srfkey=(null==(s=this.deData)?void 0:s.srfkey)||this.value,this.srfmajortext=(null==(i=this.deData)?void 0:i.srfmajortext)||this.text,this.icon=this.calcIcon(t)}}),qa=t("UIMapField",class{constructor(t,e,a={}){this.isOriginField=!1,this.isRequestNeed=!0,this.uiKey=t,this.dataKey=e,F(a.isOriginField)||(this.isOriginField=a.isOriginField)}}),Qa=t("CalendarItemData",class{constructor(t,e){this.model=t,this.data=e}get deData(){return this.data}get navId(){return"".concat(this.itemType,"@").concat(this.id)}get itemType(){return this.model.itemType}get bkColor(){const t=this.model.bkcolorAppDEFieldId;return t&&this.data[t]?this.data[t]:this.model.bkcolor}get beginTime(){const t=this.model.beginTimeAppDEFieldId;return t?this.data[t]:void 0}get color(){const t=this.model.colorAppDEFieldId;return t&&this.data[t]?this.data[t]:this.model.color}get content(){const t=this.model.contentAppDEFieldId;return t?this.data[t]:void 0}get endTime(){const t=this.model.endTimeAppDEFieldId;return t?this.data[t]:void 0}get icon(){const t=this.model.iconAppDEFieldId;return t?this.data[t]:void 0}get id(){const t=this.model.idAppDEFieldId;return t&&this.data[t]?this.data[t]:this.data.srfkey}get level(){const t=this.model.levelAppDEFieldId;return t?this.data[t]:void 0}get tag2(){const t=this.model.tag2AppDEFieldId;return t?this.data[t]:void 0}get tag(){const t=this.model.tagAppDEFieldId;return t?this.data[t]:void 0}get text(){const t=this.model.textAppDEFieldId;return t?this.data[t]:void 0}get tips(){const t=this.model.tipsAppDEFieldId;return t?this.data[t]:void 0}}),$a=t("DEServiceUtil",class{constructor(t){this.appModel=t,this.cache=new Map,this.constructorCache=new Map}register(t,e){this.constructorCache.set(t,e)}async getService(t){if(!this.cache.has(t)){const a=await ibiz.hub.getAppDataEntity(t,this.appModel.appId);if(!a)throw new e("未找到应用实体[".concat(t,"]"));const s=this.constructorCache.get(t);let i;i=s?await s(a):new Wa(a),this.cache.set(t,i)}return this.cache.get(t)}clearTempCache(t){this.cache.forEach((e=>{e.local.clear(t)}))}async exec(t,e,a,s,i){return(await this.getService(t)).exec(e,a,s,i)}}),Ja=t("Application",class{constructor(t){this.model=t,this.deName2DeCodeName=new Map,this.net=new c({baseURL:"".concat(ibiz.env.baseUrl,"/").concat(t.appId)}),this.deService=new $a(t),this.codeList=new ra(t),this.authority=new Ga(t)}get appId(){return this.model.appId}async init(){await this.authority.init(),await this.loadAppModelStyle()}async loadAppModelStyle(){await this.net.get("".concat(ibiz.env.remoteModelUrl,"/PSSYSAPP.json.css")).then((t=>{const e=document.createElement("style");if(e.setAttribute("type","text/css"),t.request&&t.request.responseURL){const a=new URL(t.request.responseURL);e.id=a.pathname}e.innerHTML=t.data,document.head.appendChild(e)})).catch((t=>{ibiz.log.error("应用[".concat(this.appId,"]模型全局样式加载失败:").concat(t.message))}))}getAppFunc(t){return(this.model.appFuncs||[]).find((e=>e.id===t))||null}async getUIAction(t){const[,e]=t.split("@");if(e){const a=(await ibiz.hub.getAppDataEntity(e,this.model.appId)).appDEUIActions.find((e=>e.id===t));if(a)return a}return this.model.appDEUIActions.find((e=>e.id===t))}async getOPPriv(t,e){var a,s;let i=null==(a=this.model.deopprivs)?void 0:a.find((e=>e.name===t));if(!i&&e){i=null==(s=(await ibiz.hub.getAppDataEntity(e,this.model.appId)).deopprivs)?void 0:s.find((e=>e.name===t))}return i}async getDEUILogic(t,e){return(await ibiz.hub.getAppDataEntity(e,this.model.appId)).appDEUILogics.find((e=>e.id===t))}}),Za=t("FormNotifyState",(t=>(t.LOAD="LOAD",t.DRAFT="DRAFT",t.SAVE="SAVE",t))(Za||{})),ts=t("GridNotifyState",(t=>(t.LOAD="LOAD",t.DRAFT="DRAFT",t.SAVE="SAVE",t))(ts||{})),es=t("PanelNotifyState",(t=>(t.LOAD="LOAD",t.DRAFT="DRAFT",t.SAVE="SAVE",t))(es||{})),as=t("Counter",class{constructor(t){this.callback=t,this.count=0,this.state="Unused",this.reusable=!0}increment(){return"Used"===this.state||(this.count+=1),this.count}decrement(t){if("Used"!==this.state){if(0===this.count)throw new e("错误的调用!decrement不能对count为0调用");this.count-=1,0===this.count&&(t?t():this.callback&&this.callback(),this.reusable||(this.state="Used"))}}destroy(){this.callback=void 0}}),ss=t("LoadingState",class{constructor(){this.isLoading=!1,this.counter=new as(l)}begin(){this.isLoading=!0,this.counter.increment()}end(){this.counter.decrement((()=>{this.isLoading=!1}))}}),is=t("CTXState",class{}),ns=t("CTX",class{constructor(t){this.parent=t,this.evt=new T(3e3),this.controllersMap=new Map,this.state=new is}async init(t){this.view=t,this.registerController(t.model.name,t)}destroy(){this.controllersMap.clear(),this.view=null,this.state=null}async setState(t){Object.assign(this.state,t)}startLoading(){this.view.startLoading()}endLoading(){this.view.endLoading()}registerController(t,e){this.controllersMap.set(t,e),this.evt.emit("onRegister",t,e)}getController(t,e=!1){return this.controllersMap.has(t)?this.controllersMap.get(t):this.parent&&e?this.parent.getController(t):void 0}getTopView(){return this.parent?2===this.view.modal.routeDepth?this.view:this.parent.getTopView():this.view}}),os=t("ActivityCounter",class extends as{constructor(){super(...arguments),this.reusable=!1,this.registration=new Map}enroll(t){"Unused"!==this.state||this.registration.has(t)||(this.registration.set(t,!1),this.increment())}attend(t){this.registration.has(t)&&!1===this.registration.get(t)&&(this.registration.set(t,!0),this.decrement())}}),rs=t("UIActionButtonState",class{constructor(t,e,a){this.disabled=!1,this.visible=!0,this.loading=!1,this.permitted=!0,this.noPermissionHidden=!0,this.noDataDisabled=!1,this.isInit=!1,this.name=t,this.uiActionId=a,this.appId=e}async init(){if(!this.uiActionId)return void(this.isInit=!0);const t=await bt(this.uiActionId);if([,this.appDeName]=this.uiActionId.split("@"),!t)return;const{dataAccessAction:e,noPrivDisplayMode:a,actionTarget:s,uiactionMode:i,uiactionTag:n}=t;this.dataAccessAction=e,1===a?this.noPermissionHidden=!1:6===a&&(this.visible=!1),(s&&"NONE"!==s||"SYS"===i&&["Save","SaveAndExit","SaveAndNew","Edit","Remove","RemoveAndExit"].includes(n))&&(this.noDataDisabled=!0),this.isInit=!0}async calcPermission(t,e){if(!this.dataAccessAction)return;const a=await ibiz.hub.getApp(this.appId);this.appDeName&&e&&!e.includes(this.appDeName)&&ibiz.log.warn("".concat(this.uiActionId,"界面行为的实体").concat(this.appDeName,"和数据的实体").concat(e,"不一致")),this.permitted=await a.authority.calcByDataAccessAction(this.dataAccessAction,t,e)}async update(t,e){this.isInit||await this.init(),await this.calcPermission(t,e),this.permitted?(this.visible=!0,this.disabled=this.noDataDisabled&&!t):(this.disabled=!0,this.visible=!this.noPermissionHidden)}}),cs=t("ButtonContainerState",class{constructor(){Object.defineProperty(this,"children",{enumerable:!1,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"visible",{enumerable:!0,configurable:!0,get:()=>0!==this.children.length&&!!this.children.find((t=>t.visible))})}addState(t,e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e}),this.children.push(e)}setLoading(t){this.children.forEach((e=>{e.setLoading?e.setLoading(t):e.loading=!!t&&e.name===t}))}async update(t,e){await Promise.all(this.children.map((a=>a.update(t,e))))}}),ls=t("QXEventEx",class extends T{constructor(){super(...arguments),this.anyEventFns=[]}onAll(t){this.anyEventFns.includes(t)||this.anyEventFns.push(t)}emit(t,...e){super.emit(t,...e),this.anyEventFns.forEach((a=>{a(t,...e)}))}async asyncEmit(t,...e){const a=super.asyncEmit(t,...e),s=this.anyEventFns.map((a=>a(t,...e))),i=Promise.all(s),n=await a,o=await i;return n.concat(...o)}reset(){super.reset(),V(this.anyEventFns)}}),ds=t("ControllerEvent",class{constructor(t){this.getBaseArgs=t,this.evt=new ls}async emit(t,e){await this.evt.asyncEmit(t,{...this.getBaseArgs(),eventName:t,...e||{}})}on(t,e){this.evt.on(t,e)}onAll(t){this.evt.onAll(t)}destroy(){this.getBaseArgs=void 0,this.evt.reset()}});function hs(t,e){return(!F(t)&&""!==t||!F(e)&&""!==e)&&t!==e}function us(t){let e=Array.isArray(t)?t[0]:t;return e&&e instanceof ka&&(e=e.getOrigin()),e}function ps(t,a,s){const i=[];return t.forEach((t=>{const{valueRuleType:n}=t,o=t.sysValueRule,r=t.defvalueRule;if("SYSVALUERULE"===n&&o)"REG"===o.ruleType?i.push({pattern:new RegExp(o.regExCode),message:o.ruleInfo,trigger:"change blur"}):"SCRIPT"===o.ruleType&&i.push({validator:(t,e,a,s)=>{if(!e)return!0;try{jt.execScriptFn({rule:t,value:e,callback:a,source:s},o.scriptCode,{isAsync:!1})}catch(t){return console.error(t),!1}return!0},trigger:"change blur"});else if("DEFVALUERULE"===n&&r){const t=s||a;i.push({validator:(a,s,i,n)=>{if(P(n[t]))return!0;const{isPast:o,infoMessage:c}=Xt(t,n,r.groupCond);return o||i(new e(c||r.ruleInfo)),!0},trigger:"change blur"})}})),i}var ms="__self",gs=t("BaseController",class{constructor(t,e,a,s){this.model=t,this.context=e,this.params=a,this.ctx=s,this.state={},this.name="",this.evt=new ds(this.getEventArgs.bind(this)),this.mountCounter=new os(this.mounted.bind(this)),this.childNames=[],this.name=t.name||t.id,this.initState()}get _evt(){return this.evt}initState(){this.state.isCreated=!1,this.state.isMounted=!1}getEventArgs(){return{context:this.context,params:this.params,data:[],targetName:this.model.name,view:this.ctx.view}}async created(){this.mountCounter.enroll(ms),await this.onCreated(),this.state.isCreated=!0,this.force((()=>{this.mountSelf()})),ibiz.log.debug("".concat(this.constructor.name,":").concat(this.name," onCreated")),this._evt.emit("onCreated",void 0)}async onCreated(){this.ctx.evt.on("onForecast",(t=>{this.childNames.includes(t)&&this.mountCounter.enroll(t)})),this.ctx.evt.on("onRegister",((t,e)=>{this.childNames.includes(t)&&e.evt.on("onMounted",(()=>{this.mountCounter.attend(t)}))}))}async mountSelf(){this.mountCounter.registration.get(ms)||this.mountCounter.attend(ms)}async mounted(){await this.onMounted(),this.state.isMounted=!0,ibiz.log.debug("".concat(this.constructor.name,":").concat(this.name," onMounted")),this._evt.emit("onMounted",void 0)}async onMounted(){}async destroyed(){await this.onDestroyed(),ibiz.log.debug("".concat(this.constructor.name,":").concat(this.name," onDestroyed")),await this._evt.emit("onDestroyed",void 0),this.evt.destroy()}async onDestroyed(){}force(t){}getController(t,e=!1){return this.ctx.getController(t,e)}getTopView(){return this.ctx.getTopView()}listenNewController(t){this.ctx.evt.on("onRegister",t)}}),fs=t("ViewController",class extends gs{constructor(t,e,a,s){super(ibiz.util.layoutPanel.fill(t),i.create({},e),a||{},new ns(s)),this.session={},this.modal=new ie({}),this.providers={},this.engines=[],this.slotProps={},this.counters={},this.viewLoading=new ss,this.isCloseView=!1,this._isActive=!0,s&&s.registerController(this.model.name,this),this.ctx.init(this),this.initEngines()}get _evt(){return this.evt}get parentView(){var t;return null==(t=this.ctx.parent)?void 0:t.view}get isActive(){return this._isActive}onActivated(){this._isActive=!0,ibiz.log.debug("视图[".concat(this.model.name,"](").concat(this.model.id,")激活"))}onDeactivated(){this._isActive=!1,ibiz.log.debug("视图[".concat(this.model.name,"](").concat(this.model.id,")暂停"))}initEngines(){const t=Mt(this.model);if(t.length)t.forEach((t=>{const e=ibiz.engine.getEngine(t,this);e&&this.engines.push(e)}));else{const t=ibiz.engine.getEngine({engineCat:"VIEW",engineType:this.model.viewType},this);t&&this.engines.push(t)}}async initCounters(){const t=this.model.viewLayoutPanel,{appCounterRefs:e}=t;if(e&&e.length>0)try{await Promise.all(e.map((async t=>{const e=await ca.getCounterByRef(t,this.context);this.counters[t.id]=e})))}catch(t){console.error(t)}}initState(){super.initState(),this.state.isLoading=!1,this.state.caption=this.model.caption,this.state.srfactiveviewdata=null}async onCreated(){await super.onCreated(),this.modal.hooks.beforeDismiss.tapPromise((async t=>{await this._evt.emit("onCloseView",{...t})})),this._evt.emit("onViewInfoChange",{caption:this.model.caption,title:this.model.title}),this.handleContextParams();const t=this.model.viewLayoutPanel;this.childNames.push(t.name);const e=await Ce(t);this.providers[t.name]=e;const a=Vt(this.model);a&&await Promise.all(a.map((async t=>{const e=await Ce(t);this.providers[t.name||t.id]=e}))),await this.initCounters();const s=Ot(this.model);s.length&&(this.scheduler=ibiz.scheduler.createViewScheduler(s),this.scheduler.defaultParamsCb=()=>this.getEventArgs(),this.scheduler.hasViewEventTrigger&&this.evt.onAll(((t,e)=>{this.scheduler.triggerViewEvent(e)}))),this.engines.length&&await Promise.all(this.engines.map((t=>t.onCreated())))}async onMounted(){var t;await super.onMounted(),this.engines.length&&await Promise.all(this.engines.map((t=>t.onMounted()))),null==(t=this.scheduler)||t.startTimerTrigger()}async onDestroyed(){await super.onDestroyed(),this.engines.length&&await Promise.all(this.engines.map((t=>t.onDestroyed()))),this.ctx.destroy(),this.context.destroy(),this.engines=[],this.scheduler&&this.scheduler.destroy(),ibiz.log.debug("视图[".concat(this.model.name,"](").concat(this.model.id,")销毁"))}handleContextParams(){this.context.srfappid=this.model.appId,(F(this.context.srfsessionid)||k(this.context.srfsessionid))&&(this.context.srfsessionid=x());const t=this.model.appViewNavContexts;let e={};A(t)&&(e=lt(t,this.context,this.params)),Object.assign(this.context,e);const a=this.model.appViewNavParams;let s={};A(a)&&(s=lt(a,this.context,this.params)),Object.assign(this.params,s),this.state.isMounted&&this.callUIAction("Refresh")}async call(t,e){let a;for(const s of this.engines)if(a=await s.call(t,e),void 0!==a)break;return a}async callUIAction(t,a){const s=this.call(t,a);if(void 0===s)throw new e("没有引擎支持预置界面行为".concat(t));return s}async closeView(t={ok:!1,data:[]}){await this.modal.dismiss(t)}startLoading(){this.viewLoading.begin(),this.state.isLoading=this.viewLoading.isLoading}endLoading(){this.viewLoading.end(),this.state.isLoading=this.viewLoading.isLoading}setLayoutPanel(t){var e;this.layoutPanel=t,this.layoutPanel.state.isMounted?this.mountCounter.attend(this.layoutPanel.model.name):this.layoutPanel.evt.on("onMounted",(()=>{this.mountCounter.attend(this.layoutPanel.model.name)})),(null==(e=this.scheduler)?void 0:e.hasControlEventTrigger)&&t.evt.on("onControlEvent",(t=>{this.scheduler.triggerControlEvent(t.triggerControlName,t.triggerEvent)}))}}),Es=(t("MobViewController",class extends fs{}),t("EditorController",class{constructor(t,e){this.placeHolder="",this.editorParams={},this.model=t,this.parent=e,this.context=e.context,this.params=e.params}get readonly(){return!!this.model.readOnly}async init(){await this.onInit()}async onInit(){this.model.placeHolder&&(this.placeHolder=this.model.placeHolder),this.model.editorParams&&Object.keys(this.model.editorParams).forEach((t=>{this.editorParams[t.toLowerCase()]=this.model.editorParams[t]}))}handlePublicParams(t,e,a){const{navigateContexts:s,navigateParams:i}=this.model;let n={};s&&t&&(n=lt(s,e,a,t));const o=Object.assign(e.clone(),n);let r={};i&&t&&(r=lt(i,e,a,t));return{context:o,params:{...a,...r}}}toObj(t){if(!t)return;return new Function("return (".concat(t,");"))()}toBoolean(t){return Object.is("true",t)}})),ws=(t("CodeListEditorController",class extends Es{async loadCodeList(t){const{context:e,params:s}=this.handlePublicParams(t,this.context,this.params);if(this.model.appCodeListId){const t=await ibiz.hub.getApp(this.context.srfappid);let a=[];return a=await t.codeList.get(this.model.appCodeListId,e,s),a}throw new a(this.model,"请配置代码表")}}),t("ControlController",class extends gs{constructor(t,e,a,s){super(t,e,a,s),this.providers={},this.registerToCtx();const i=ibiz.util.layoutPanel.get("".concat(t.controlType,"_DEFAULT"));i&&(this.controlPanel=i)}get _evt(){return this.evt}get view(){return this.ctx.view}registerToCtx(){this.ctx.registerController(this.model.name||this.model.id,this)}getEventArgs(){return{...super.getEventArgs(),data:this.getData()||[],ctrl:this}}initState(){super.initState(),this.state.isLoading=!1}async onCreated(){if(await super.onCreated(),this.controlPanel){this.childNames.push(this.controlPanel.name);const t=await Ce(this.controlPanel);this.providers[this.controlPanel.name]=t}this.initControlScheduler(this.model.controlLogics)}async onDestroyed(){await super.onDestroyed(),this.scheduler&&this.scheduler.destroy()}getControlType(){return this.model.controlType}getData(){return null}async startLoading(){this.state.isLoading=!0,this.ctx.startLoading()}async endLoading(){this.state.isLoading=!1,this.ctx.endLoading()}handlerAbilityParams(t){return{context:this.context.clone(),params:{...this.params},data:(null==t?void 0:t.data)||this.getData()||[]}}setLayoutPanel(t){this.layoutPanel=t,this.layoutPanel.state.isMounted?this.mountCounter.attend(this.layoutPanel.model.name):this.layoutPanel.evt.on("onMounted",(()=>{this.mountCounter.attend(this.layoutPanel.model.name)}))}initControlScheduler(t=[]){0!==t.length&&(this.scheduler=ibiz.scheduler.createControlScheduler(t),this.scheduler.defaultParamsCb=()=>this.getEventArgs())}})),Is=t("MDControlController",class extends ws{get _evt(){return this.evt}initState(){super.initState(),this.state.items=[],this.state.selectedData=[],this.state.searchParams={},this.state.noSort=!1,this.state.sortQuery="",this.state.curPage=1,this.state.size=20,this.state.total=0,this.state.isLoaded=!1,this.state.singleSelect=!0,this.state.mdctrlActiveMode=0,this.state.groups=[]}async onCreated(){await super.onCreated(),this.setSort()}setSort(t,e){t&&e&&(this.state.sortQuery="".concat(t,",").concat(e))}async getFetchParams(t){const{curPage:e,size:a,sortQuery:s,noSort:i}=this.state,n={...this.params};return a&&(n.page=e-1,n.size=a),!i&&s&&(n.sort=s),await this._evt.emit("onBeforeLoad",void 0),Object.assign(n,{...this.state.searchParams}),t&&Object.assign(n,t),n}async load(t={}){await this.startLoading();try{const e=!0===t.isInitialLoad,a=!0===t.isLoadMore;e?this.state.curPage=1:a&&(this.state.curPage+=1);const{context:s}=this.handlerAbilityParams(t),i=await this.getFetchParams(null==t?void 0:t.params),n=await this.service.fetch(s,i);"number"==typeof n.total&&(this.state.total=n.total),a?this.state.items.push(...n.data):this.state.items=n.data,await this.afterLoad(t,n.data),this.state.isLoaded=!0,await this._evt.emit("onLoadSuccess",{isInitialLoad:e})}finally{await this.endLoading()}return this.state.items}async afterLoad(t,e){return e}async refresh(){await this.load({isInitialLoad:!1})}async remove(t){const{context:a,params:s,data:i}=this.handlerAbilityParams(t);if(!(null==i?void 0:i.length))throw new e("未选中数据");if(!0!==(null==t?void 0:t.silent)){if(!await ibiz.confirm.error({title:"数据删除",desc:"确认删除数据?"}))return}await this.startLoading();let n=!1;try{const e=Dt(this.model.appDataEntityId);await Promise.allSettled(i.map((async t=>{if(0!==t.srfuf){const i=a.clone();i[e]=t.srfkey,await this.service.remove(i,s),n=!0}this.afterRemove(i)}))),!0!==(null==t?void 0:t.silent)&&ibiz.notification.success({desc:"数据[".concat(i.map((t=>t.srfmajortext)).join("、"),"]删除成功!")}),n&&this.refresh()}finally{await this.endLoading()}this.state.selectedData=[],await this._evt.emit("onRemoveSuccess",void 0)}afterRemove(t){const e=this.state.items.findIndex((e=>e.srfkey===t.srfkey));this.state.items.splice(e,1)}getData(){return this.state.selectedData||[]}setActive(t){return this._evt.emit("onActive",{data:[t]})}setSelection(t){const{selectedData:e}=this.state;d(e,t)||(this.state.selectedData=t,this._evt.emit("onSelectionChange",{data:t}))}async onRowClick(t){const{selectedData:e}=this.state,a=e.filter((e=>e.srfkey!==t.srfkey));a.length===e.length?this.setSelection(this.state.singleSelect?[t]:e.concat([t])):this.setSelection(a),1===this.state.mdctrlActiveMode&&await this.setActive(t)}async onDbRowClick(t){2===this.state.mdctrlActiveMode&&await this.setActive(t)}async importData(){}async exportData(t){}}),vs=t("AppMenuController",class extends ws{initState(){super.initState(),this.state.menuItemsState={}}get routeDepth(){return this.view.modal.routeDepth}async onCreated(){var t;await super.onCreated(),this.app=await ibiz.hub.getApp(this.context.srfappid),null==(t=this.model.appMenuItems)||t.forEach((t=>{this.initMenuItemState(t)}))}async onClickMenuItem(t,s){const i=h(this.model,t,{compareField:"id",childrenFields:["appMenuItems"]});if(!i)throw new e("找不到名为".concat(t,"的菜单项"));if(this.evt.emit("onClick",{eventArg:t,event:s}),!i.appFuncId)throw new a(i,"没有配置应用功能");const n=this.context.clone();this.routeDepth&&Object.assign(n,{toRouteDepth:this.routeDepth+1}),await ibiz.commands.execute(de.TAG,i.appFuncId,n,this.params)}initMenuItemState(t){var e;const a={permitted:!0,visible:!0};if(t.hidden)a.visible=!1;else{let s=!0;t.accessKey&&(s=this.app.authority.calcByResCode(t.accessKey));let i=s;if(null==(e=t.appMenuItems)?void 0:e.length){const e=t.appMenuItems.map((t=>this.initMenuItemState(t).visible));i=i&&e.includes(!0)}a.permitted=s,a.visible=i}return this.state.menuItemsState[t.id]=a,a}getAllItems(){const t=[],e=a=>{a.forEach((a=>{t.push(a),a.appMenuItems&&a.appMenuItems.length>0&&e(a.appMenuItems)}))};return e(this.model.appMenuItems),t}getCounter(t){const{counters:e}=this.ctx.view;return e[t]?e[t]:null}}),Ds=(t("AppMenuIconViewController",class extends vs{async onClickMenuItem(t,s){const i=h(this.model,t,{compareField:"id",childrenFields:["appMenuItems"]});if(!i)throw new e("找不到名为".concat(t,"的菜单项"));if(this.evt.emit("onClick",{eventArg:t,event:s}),!i.appFuncId)throw new a(i,"没有配置应用功能");const n=this.context.clone();1===this.routeDepth&&Object.assign(n,{toRouteDepth:1}),await ibiz.commands.execute(de.TAG,i.appFuncId,n,this.params)}}),t("CalendarService",class extends Ua{async search(t,e={}){const{sysCalendarItems:a}=this.model;if(!a)return[];const s=a.map((async a=>{const s=a.appDEDataSetId||"fetchdefault";return this.exec2(s,t,e,void 0,a.appDataEntityId)}));return(await Promise.all(s)).map(((t,e)=>this.setCalendarConfigData(t.data,e))).flat()}setCalendarConfigData(t,a){const{sysCalendarItems:s}=this.model;if(!s)throw new e("未找到日历项模型");const i=s[a];if(!i)throw new e("未找到日历项模型");return t.map((t=>new Qa(i,t)))}async exec2(t,e,a={},s={},i=this.model.appDataEntityId){return await this.app.deService.exec(i,t,e,a,s)}}));t("CalendarController",class extends Is{initState(){super.initState(),this.state.selectedDate=new Date,this.state.size=1e3}async onCreated(){await super.onCreated(),this.service=new Ds(this.model),await this.service.init(this.context)}async load(t={}){const e=!0===t.isInitialLoad,{context:a}=this.handlerAbilityParams(t),s=await this.getFetchParams(null==t?void 0:t.params);let i;await this.startLoading();try{i=await this.service.search(a,s)}finally{await this.endLoading()}return await this.afterLoad(t,i),this.state.isLoaded=!0,this.state.items=i,await this.evt.emit("onLoadSuccess",{isInitialLoad:e}),i}getCurSelectDate(t){const{selectedDate:e}=this.state,{start:a,end:s}=t;if(!a||!s){const t=new Date(e.getFullYear(),e.getMonth(),1),a=new Date(e.getFullYear(),e.getMonth()+1,1);return{start:X(t).format("YYYY-MM-DD HH:mm:ss"),end:X(a).format("YYYY-MM-DD HH:mm:ss")}}return{start:a,end:s}}async getFetchParams(t={}){const{curPage:e,size:a,sortQuery:s,noSort:i}=this.state,n={...this.params};!i&&s&&(n.sort=s),await this._evt.emit("onBeforeLoad",void 0),Object.assign(n,{...this.state.searchParams}),a&&(n.page=e-1,n.size=a),t&&Object.assign(n,t);const o=this.getCurSelectDate(n);return Object.assign(n,o),n}async onRowClick(t){const{selectedData:e}=this.state,a=e.filter((e=>e.deData.srfkey!==t.deData.srfkey));a.length===e.length?this.setSelection(this.state.singleSelect?[t]:e.concat([t])):this.setSelection(a),1===this.state.mdctrlActiveMode&&await this.setActive(t)}setSelectDate(t){this.state.selectedDate=t}});X.extend(Y),X.extend(K),X.extend(H),X.extend(q),X.extend(Q);var ys="$default_group",Cs=class{constructor(t,e){var s;this.model=t,this.chartGenerator=e,this.staticOptions={},this.autoCompleteCategory=!0,this.model=t,this.chartGenerator=e;const{chartSeriesEncode:i,caption:n,id:o,userParam:r}=t;if(!t.catalogField)throw new a(t,"缺少分类属性配置");if(!t.valueField)throw new a(t,"缺少值属性配置");this.catalogField=t.catalogField.toLowerCase(),this.valueField=t.valueField.toLowerCase(),this.groupField=null==(s=t.seriesField)?void 0:s.toLowerCase();const{chartXAxisId:c,chartYAxisId:l}=i||{};this.xAxisIndex=I(c),this.yAxisIndex=I(l),this.seriesName=n||o,this.staticOptions=this.calcStaticOptions(),r&&(this.seriesUserParam=Ls(r))}calcStaticOptions(){return{type:this.model.seriesType,name:this.seriesName,emphasis:{label:{fontSize:20,show:!0}},label:{position:"top",show:!0}}}translateVal(t,e,a=!1){if(F(e))return;if(F(t))return e;const s=this.chartGenerator.codeListMap.get(t);if(null==s?void 0:s.length){const t=s.find((t=>t.value===e));if(t)return t.text}return a?void 0:e}calcGroupData(t){this.groupData={};const e=this.groupData,{seriesCodeListId:a,catalogCodeListId:s}=this.model;return t.forEach((t=>{let i=ys;if(this.groupField){const e=this.translateVal(a,t[this.groupField]);if(F(e))return;i=e}if(!e[i]&&(e[i]=new Map,s&&this.autoCompleteCategory)){this.chartGenerator.codeListMap.get(s).forEach((t=>{e[i].set(t.text,{value:0})}))}const n=this.translateVal(s,t[this.catalogField],!0);n&&(e[i].get(n)||e[i].set(n,{value:0}),e[i].get(n).value+=t[this.valueField],e[i].get(n).deData=t)})),e}calcGroupSeries(t){return Object.keys(t).map((e=>{const a=t[e],s=this.calcSeriesData(a);let i={...this.staticOptions,data:s};return e!==ys&&(i.name=e),this.seriesUserParam&&(i=G(i,this.seriesUserParam)),i}))}calcSeriesData(t){const e=[];return t.forEach(((t,a)=>{var s;e.push([a,t.value,null==(s=t.deData)?void 0:s.srfkey])})),e}calcByData(t){const e=this.dataPreprocess(t),a=this.calcGroupData(e);return this.addTimeData(a),this.calcGroupSeries(a)}getSrfkeyByParams(t){return t.value[2]}dataPreprocess(t){const e=[];t.forEach((t=>{e.push(B(t))}));const{groupMode:a}=this.model;return a&&e.forEach((t=>{let e="";if("DAY"===a||"YEAR"===a||"MONTH"===a){if("DAY"===a?e="YYYY-MM-DD":"YEAR"===a?e="YYYY":"MONTH"===a&&(e="YYYY-MM"),t[this.catalogField]){const a=X(t[this.catalogField]).format(e);t[this.catalogField]=a}}else if("QUARTER"===a){if(t[this.catalogField]){const e="".concat(X(t[this.catalogField]).format("YYYY"),"-").concat(X(t[this.catalogField]).quarter());t[this.catalogField]=e}}else if("YEARWEEK"===a&&t[this.catalogField]){const e="".concat(X(t[this.catalogField]).format("YYYY"),"-").concat(X(t[this.catalogField]).week());t[this.catalogField]=e}})),e}sortTimeData(t){const{groupMode:e}=this.model;Object.keys(t).forEach((a=>{const s=t[a];let i=[];"DAY"===e||"YEAR"===e||"MONTH"===e?i=Array.from(s.keys()).sort(((t,e)=>X(t).diff(X(e)))):"QUARTER"!==e&&"YEARWEEK"!==e||(i=Array.from(s.keys()).sort(((t,e)=>{const[a,s]=t.split("-"),[i,n]=e.split("-");return a!==i?parseInt(a,10)-parseInt(i,10):parseInt(s,10)-parseInt(n,10)})));const n=new Map;i.forEach((t=>{n.set(t,s.get(t))})),t[a]=n}))}addTimeData(t){const{groupMode:e}=this.model;if(!e||"CODELIST"===e)return;const a=[];Object.keys(t).forEach((e=>{t[e].forEach(((t,e)=>{a.push(X(e))}))}));const s=X.max(a),i=X.min(a);if("DAY"===e){let e=i;const a=s;for(;null==e?void 0:e.isSameOrBefore(a,"day");){const a=e.format("YYYY-MM-DD");Object.keys(t).forEach((e=>{t[e].get(a)||t[e].set(a,{value:0})})),e=e.add(1,"day")}}else if("YEAR"===e){let e=i.year();const a=s.year();for(;e<=a;){const a=e.toString();Object.keys(t).forEach((e=>{t[e].get(a)||t[e].set(a,{value:0})})),e+=1}}else if("MONTH"===e){let e=i.clone().startOf("month");const a=s.clone().startOf("month");for(;e.isSameOrBefore(a);){const a=e.format("YYYY-MM");Object.keys(t).forEach((e=>{t[e].get(a)||t[e].set(a,{value:0})})),e=e.add(1,"month")}}else if("QUARTER"===e){const e=[];Object.keys(t).forEach((a=>{t[a].forEach(((t,a)=>{e.push(a)}))}));const a=e.reduce(((t,e)=>e<t?e:t),e[0]),s=e.reduce(((t,e)=>e>t?e:t),e[0]),[i]=a.split("-"),[n]=s.split("-");for(let e=parseInt(i,10);e<=parseInt(n,10);e++)for(let a=1;a<=4;a++){const s="".concat(e,"-").concat(a);Object.keys(t).forEach((e=>{t[e].get(s)||t[e].set(s,{value:0})}))}}else if("YEARWEEK"===e){const e=[];Object.keys(t).forEach((a=>{t[a].forEach(((t,a)=>{e.push(a)}))}));const a=e.reduce(((t,e)=>e<t?e:t),e[0]),s=e.reduce(((t,e)=>e>t?e:t),e[0]),[i]=a.split("-"),[n]=s.split("-");for(let e=parseInt(i,10);e<=parseInt(n,10);e++){const a=X("".concat(e,"-12-31")).isoWeek();for(let s=1;s<=a;s++){const a="".concat(e,"-").concat(s);Object.keys(t).forEach((e=>{t[e].get(a)||t[e].set(a,{value:0})}))}}}this.sortTimeData(t)}},As=class extends Cs{calcStaticOptions(){if(void 0===this.xAxisIndex)throw new a(this.model,"序列没有配置X坐标轴");if(void 0===this.yAxisIndex)throw new a(this.model,"序列没有配置Y坐标轴");const t=super.calcStaticOptions();t.xAxisIndex=this.xAxisIndex,t.yAxisIndex=this.yAxisIndex;const{stack:e,step:s}=this.model;return s&&(t.step="middle"),t}},Ps=class extends Cs{calcStaticOptions(){if(void 0===this.xAxisIndex)throw new a(this.model,"序列没有配置X坐标轴");if(void 0===this.yAxisIndex)throw new a(this.model,"序列没有配置Y坐标轴");const t=super.calcStaticOptions();return t.xAxisIndex=this.xAxisIndex,t.yAxisIndex=this.yAxisIndex,this.model,t}},bs=class extends Cs{calcStaticOptions(){const t=super.calcStaticOptions();return t.label.formatter="{b}: {d}%({c})",t.label.position="outer",t}calcSeriesData(t){return Object.keys(t).map((e=>{var a;const s=t.get(e);return{name:e,value:[s.value,null==(a=s.deData)?void 0:a.srfkey]}}))}getSrfkeyByParams(t){return t.value[1]}},Ts=class extends Cs{calcStaticOptions(){const t=super.calcStaticOptions();return t.label.formatter="{b}: {d}%({c})",t.label.position="outside",t}calcSeriesData(t){return Object.keys(t).map((e=>{var a;const s=t.get(e);return{name:e,value:[s.value,null==(a=s.deData)?void 0:a.srfkey]}}))}getSrfkeyByParams(t){return t.value[1]}},xs=class extends Cs{calcStaticOptions(){if(void 0===this.xAxisIndex)throw new a(this.model,"序列没有配置X坐标轴");if(void 0===this.yAxisIndex)throw new a(this.model,"序列没有配置Y坐标轴");const t=super.calcStaticOptions();return t.xAxisIndex=this.xAxisIndex,t.yAxisIndex=this.yAxisIndex,t}},Ns=class extends Cs{calcStaticOptions(){return super.calcStaticOptions()}calcRadarCoordSystem(t){const e=this.calcGroupData(t);this.chartGenerator.radarMap.has(this.catalogField)||this.chartGenerator.radarMap.set(this.catalogField,new class{constructor(t){this.indicator={},this.index=t}get indicatorKeys(){return this._indicatorKeys&&this._indicatorKeys.length===Object.keys(this.indicator).length||(this._indicatorKeys=Object.keys(this.indicator).sort()),this._indicatorKeys}updateIndicator(t,e){const a=this.indicator[t];(!a||a.max<e)&&(this.indicator[t]={max:e})}toOptions(){const t=Math.max(...Object.values(this.indicator).map((t=>t.max)));return{indicator:this.indicatorKeys.map((e=>({name:e,max:t})))}}}(this.chartGenerator.radarMap.size));const a=this.chartGenerator.radarMap.get(this.catalogField);Object.values(e).forEach((t=>{Object.keys(t).forEach((e=>{a.updateIndicator(e,t.get(e).value)}))}))}calcByData(t){const e=this.groupData,a=this.chartGenerator.radarMap.get(this.catalogField),s=Object.keys(e).map((t=>{const s=e[t],i=a.indicatorKeys.map((t=>s.has(t)?s.get(t):0));return{name:t===ys?this.seriesName:t,value:i}}));let i={...this.staticOptions,data:s};return this.seriesUserParam&&(i=G(i,this.seriesUserParam)),i}getSrfkeyByParams(t){return t.value[1]}};function Ls(t){const e={};return t&&Object.keys(t).forEach((a=>{const s=a.indexOf(".");if(-1===s)return;const i=a.slice(s+1);if(i)try{e[i]=JSON.parse(t[a])}catch(s){e[i]=t[a]}})),e}var Rs=t("ChartService",class extends Ua{}),Vs=(t("ChartController",class extends Is{initState(){super.initState(),this.state.size=1e3}async onCreated(){await super.onCreated(),this.service=new Rs(this.model),await this.service.init(this.context),this.generator=new class{constructor(t){this.model=t,this.staticOptions={tooltip:{show:!0}},this.options={},this.seriesGenerators=[],this.radarMap=new Map,this.codeListMap=new Map,this.initSeriesGenerators();const{dechartTitle:e,dechartLegend:a,chartXAxises:s,chartYAxises:i,userParam:n}=t;e&&(this.staticOptions.title=this.calcTitleOption(e)),a&&(this.staticOptions.legend=this.calcLegendOption(a)),(null==s?void 0:s.length)&&(this.staticOptions.xAxis=this.calcXYAxisOption(s)),(null==i?void 0:i.length)&&(this.staticOptions.yAxis=this.calcXYAxisOption(i)),n&&(this.chartUserParam=Ls(n))}initSeriesGenerators(){var t;null==(t=this.model.dechartSerieses)||t.forEach((t=>{let e;switch(t.seriesType){case"line":e=new As(t,this);break;case"bar":e=new Ps(t,this);break;case"scatter":e=new xs(t,this);break;case"pie":e=new Ts(t,this);break;case"funnel":e=new bs(t,this);break;case"radar":e=new Ns(t,this);break;default:ibiz.log.error("图表暂未支持序列类型".concat(t.seriesType))}e&&this.seriesGenerators.push(e)}))}calcTitleOption(t){const{showTitle:e,title:a,subTitle:s,titlePos:i}=t,n={show:e,text:a,subtext:s,left:"center"},o=null==i?void 0:i.toLowerCase();return"left"===o||"right"===o?n.left=o:"bottom"!==o&&"top"!==o||(n.top=o),n}calcLegendOption(t){const{showLegend:e,legendPos:a}=t,s={};s.show=e;const i=null==a?void 0:a.toLowerCase();return"left"===i||"right"===i?(s.left=i,s.top="middle",s.orient="vertical"):"bottom"===i&&(s.top=i),s}calcXYAxisOption(t){const e=[];return t.forEach((t=>{const{position:a,dataShowMode:s,userParam:i}=t;let n={type:t.echartsType,name:t.caption,max:t.maxValue,min:t.minValue,position:a,axisLabel:{formatter:t=>1===s?t.length>4?"".concat(t.slice(0,4).split("").join("\n"),"\n..."):t.split("").join("\n"):2===s&&t.length>4?"".concat(t.slice(0,4),"..."):t,rotate:3===s?45:0}};i&&(n=G(n,Ls(i))),e.push(n)})),e}async loadCodeList(t,e){var a;if(this.codeListMap.clear(),!(null==(a=this.model.dechartSerieses)?void 0:a.length))return;const s=ibiz.hub.getApp(t.srfappid),i=async a=>{if(!a||this.codeListMap.has(a))return;const i=await s.codeList.get(a,t,e);this.codeListMap.set(a,i)};await Promise.all(this.model.dechartSerieses.map((async t=>{const{seriesCodeListId:e,catalogCodeListId:a}=t;await i(e),await i(a)})))}calcOptionsByData(t){this.radarMap.clear(),this.options={series:[],radar:[]},this.seriesGenerators.forEach((e=>{"radar"===e.model.seriesType&&e.calcRadarCoordSystem(t)})),this.radarMap.size&&(this.options.radar=[...this.radarMap.values()].map((t=>t.toOptions())));const e=[];return this.seriesGenerators.forEach((a=>{const s=a.calcByData(t);s instanceof Array?e.push(...s):e.push(s)})),this.options.series=e,this.options=G(this.staticOptions,this.options),this.chartUserParam&&(this.options=G(this.options,this.chartUserParam)),this.options}getSrfkeyByParams(t){const a=this.seriesGenerators[t.seriesIndex];if(!a)throw new e("找不到".concat(t.seriesIndex,"序列的generator!"));return a.getSrfkeyByParams(t)}}(this.model),await this.generator.loadCodeList(this.context,this.params),window.addEventListener("resize",this.resizeChart)}async afterLoad(t,e){const a=await super.afterLoad(t,e);return e.forEach((t=>{Object.assign(t,{srfcount:1})})),this.calcOptions(),a}initChart(t){this.chart=t,this.chart.on("click",(t=>{const e=this.generator.getSrfkeyByParams(t),a=this.state.items.find((t=>t.srfkey===e));console.log("实体数据",a)}))}calcOptions(t=this.state.items){this.options=this.generator.calcOptionsByData(t),this.updateChart()}updateChart(){if(!this.chart)throw new e("chart对象没有正确初始化");if(!this.options)throw new e("options还没计算");this.chart.setOption(this.options),this.resizeChart()}resizeChart(){this.chart&&this.chart.resize()}async onDestroyed(){var t;window.removeEventListener("resize",this.resizeChart),await super.onDestroyed(),null==(t=this.chart)||t.dispose()}}),t("CaptionBarController",class extends ws{initState(){super.initState(),this.view.model.capLanguageRes?this.state.caption=ibiz.i18n.t(this.view.model.capLanguageRes.lanResTag,this.view.model.capLanguageRes.defaultContent||this.view.model.caption):this.state.caption=this.view.model.caption}async onCreated(){await super.onCreated(),this.view.evt.on("onViewInfoChange",(({caption:t,dataInfo:e})=>{this.state.caption="".concat(this.state.caption).concat(e?"-".concat(e):"")}))}}),class{}),Os=class extends Vs{constructor(t){super(),this.model=t,this.srcParam=t.srcLogicParamId,this.dstParam=t.dstLogicParamId}get dstField(){return this.model.dstFieldName.toLowerCase()}get op(){return this.model.condOP}get type(){return this.model.paramType}get value(){return this.model.paramValue}test(t,e,i){const n=t.params[this.dstParam];switch(this.type){case"ENTITYFIELD":{if(!this.value)throw new a(this.model,"当前条件值类型为[数据对象属性],缺少配置条件值");const t=null!=i[this.value]?i[this.value]:e[this.value];return Ft(n[this.dstField],this.op,t)}case"SRCENTITYFIELD":{if(!this.value)throw new a(this.model,"当前条件值类型为[源数据对象属性],缺少配置条件值");const e=t.params[this.srcParam];return Ft(n[this.dstField],this.op,e[this.value])}case"CURTIME":throw new s(this.model,"暂未支持条件值类型为[当前时间]");default:return Ft(n[this.dstField],this.op,this.value)}}},Ms=class t extends Vs{constructor(e){super(),this.model=e;const a=e.deuilogicLinkConds||[];this.conds=a.map((e=>"SINGLE"===e.logicType?new Os(e):new t(e)))}get op(){return this.model.groupOP}get notMode(){return!0===this.model.notMode}test(t,e,s){let i=!0;if(0===this.conds.length)throw new a(this.model,"界面连接条件逻辑组未配置逻辑项");for(let a=0;a<this.conds.length;a++){const n=this.conds[a].test(t,e,s);if("AND"===this.op&&!1===n){i=!1;break}if("OR"===this.op&&!0===n){i=!0;break}}return this.notMode?!i:i}},Ss=class{constructor(t){this.model=t,this.links=(t.deuilogicLinks||[]).map((t=>new class{constructor(t){this.model=t,this.srcNode=null,this.dstNode=null,this.groupCond=null;const{linkMode:e,deuilogicLinkGroupCond:a}=this.model;0===e&&a&&(this.groupCond=new Ms(a))}async exec(t){const{linkMode:e}=this.model,{context:a,data:i}=t;switch(e||0){case 0:return!this.groupCond||this.groupCond.test(t,a,i&&i.length>0?i[0]:{});case 1:return!0;case 2:throw new s(this.model,"未支持的逻辑连接类型: 异步结束");case 3:throw new s(this.model,"未支持的逻辑连接类型: 异步拒绝");case 9:throw new s(this.model,"未支持的逻辑连接类型: 异常处理");default:throw new s(this.model,"未支持的逻辑连接类型:".concat(e))}}}(t)))}},_s=class extends Ss{async exec(t){const{dstAppDataEntityId:e,dstAppDEActionId:s,dstDEUILogicParamId:i,retDEUILogicParamId:n}=this.model;if(!e)throw new a(this.model,"未指定应用实体");if(!s)throw new a(this.model,"未指定实体行为");const o=t.params[i],r=ibiz.hub.getApp(t.context.srfappid),c=await r.deService.exec(e,s,t.context,o,t.viewParams);c.ok&&(t.params[n]=c.data)}},Fs=class extends Ss{async exec(t){const{dstAppDEUIActionId:e,dstDEUILogicParamId:s}=this.model,{data:i,parameters:n}=t;if(!e)throw new a(this.model,"未配置界面行为");let o=[i];if(s){const e=t.params[s];o=e instanceof Array?e:[e]}await Ks.execAndResolved(e,{...n,data:o})}},Ws=class extends Ss{async exec(t){}},ks=class extends Ss{async exec(t){t.isEndNode=!0;const{returnType:e,rawValue:a,returnParamId:i}=this.model;switch(e){case"NONEVALUE":t.result=void 0;break;case"NULLVALUE":t.result=null;break;case"SRCVALUE":t.result=a;break;case"LOGICPARAM":t.result=t.params[i];break;default:throw new s(this.model,"暂未支持的结束节点返回值类型: ".concat(e))}}};function Bs(t,e){const{srcDEUILogicParamId:a,srcFieldName:i,srcValue:n}=e,o=e.srcValueType||"SRCDLPARAM";let r;switch(o){case"SRCDLPARAM":r=t.params[a];break;case"NULLVALUE":return null;case"NONEVALUE":return;case"SRCVALUE":return n;case"VIEWPARAM":r=t.viewParams;break;case"APPDATA":r=t.context;break;case"ENVPARAM":r=B(ibiz.env);break;default:throw new s(e,"暂未支持源值类型".concat(o))}const c=null==i?void 0:i.toLowerCase();return r&&c&&(r=r[c]),r}var Us=class extends Ss{async exec(t){const e=this.model.deuilogicNodeParams;(null==e?void 0:e.length)&&await Promise.all(e.map((e=>{if("SETPARAMVALUE"===e.paramAction)return this.setParamValue(e,t);throw new s(e,"暂未支持逻辑处理参数操作".concat(e.paramAction))})))}setParamValue(t,e){const{dstFieldName:a,dstDEUILogicParamId:s}=t,i=null==a?void 0:a.toLowerCase(),n=Bs(e,t);i?e.params[s][i]=n:e.params[s]=n}},zs=class extends Ss{async exec(t){t.isEndNode=!0;const{invokeMethod:s,invokeCtrlId:i,invokeParamId:n}=this.model;if(!i)throw new a(this.model,"没有配置界面对象");if(!n)throw new a(this.model,"没有配置操作参数");if(!s)throw new a(this.model,"没有配置调用方法");const o=t.params[n];if(!o)throw new e("没有找到操作参数".concat(n));const r=t.params[i];if(!r)throw new e("没有找到界面对象".concat(i));if(!r[s]||!C(r[s]))throw new e("没有找到调用方法".concat(s));await r[s](o)}},Gs=class extends Ss{async exec(t){const{dstDEUILogicParamId:e,srcDEUILogicParamId:s}=this.model;if(!e||!s)throw new a(this.model,"缺少目标参数对象或者源参数对象配置");const i=Bs(t,this.model);t.params[e]=i}},js=class{constructor(t){var e;if(this.model=t,this.nodes=new Map,this.params=new Map,!(null==(e=t.deuilogicNodes)?void 0:e.length))throw new a(t,"界面逻辑没有配置逻辑节点");t.deuilogicNodes.forEach((t=>{const{logicNodeType:e}=t;let a;switch(e){case"BEGIN":a=new Ws(t);break;case"END":a=new ks(t);break;case"DEACTION":a=new _s(t);break;case"DEUIACTION":a=new Fs(t);break;case"PREPAREJSPARAM":a=new Us(t);break;case"BINDPARAM":a=new Gs(t);break;case"VIEWCTRLINVOKE":a=new zs(t);break;default:throw new s(t,"未支持的逻辑节点类型: ".concat(e))}this.nodes.set(t.id,a)})),t.deuilogicParams.forEach((t=>{this.params.set(t.id,new class{constructor(t){this.model=t}calc(t){const e=this.model.id,i=this.model,{context:n,viewParams:o,data:r,parameters:c}=t,l=ibiz.hub.getApp(n.srfappid);if(i.default)t.params[e]=r&&r.length>0?r[0]:{};else if(i.activeContainerParam)t.params[e]=c.ctrl||c.view;else if(i.activeCtrlParam)t.params[e]=c.ctrl;else if(i.ctrlParam){const s=c.view.getController(i.codeName.toLowerCase());if(!s)throw new a(this.model,"视图逻辑初始化参数,未找到".concat(i.codeName,"指定部件对象"));t.params[e]=s}else if(i.activeViewParam)t.params[e]=c.view;else if(i.appGlobalParam)t.params[e]=ibiz.env;else if(i.applicationParam)t.params[e]=l;else if(i.entityListParam)t.params[e]=[];else{if(i.entityPageParam)throw new s(i,"未支持的逻辑参数类型: 分页查询结果");if(i.entityParam)t.params[e]={};else{if(i.lastReturnParam)throw new s(i,"未支持的逻辑参数类型: 上次调用返回");if(i.navContextParam)t.params[e]=n;else{if(i.navViewParamParam)throw new s(i,"未支持的逻辑参数类型: 视图路由参数");if(i.routeViewSessionParam)throw new s(i,"未支持的逻辑参数类型: 路由视图会话");if(i.simpleListParam)t.params[e]=[];else if(i.simpleParam)t.params[e]={};else if(i.viewNavDataParam)t.params[e]=o;else if(i.viewSessionParam)throw new s(i,"未支持的逻辑参数类型: 当前视图会话")}}}}renew(t){const e=this.model.id,a=this.model;if(a.entityListParam||a.simpleListParam||a.entityPageParam)t.params[e]=[];else{if(!a.simpleParam&&!a.entityParam)throw new s(a,"未支持的逻辑参数类型重新建立变量");t.params[e]={}}}}(t))})),this.nodes.forEach((t=>{t.links.forEach((e=>{e.srcNode=t,this.nodes.has(e.model.dstDEUILogicNodeId)&&(e.dstNode=this.nodes.get(e.model.dstDEUILogicNodeId))}))}))}initLogicParams(t){this.params.forEach((e=>{e.model.default&&(t.defaultParamName=e.model.id),e.calc(t)}))}async exec(t){const e=new class{constructor(t,e){this.deLogicParams=t,this.parameters=e,this.params={},this.result=null,this.isEndNode=!1,this.defaultParamName="Default"}get context(){return this.parameters.context}get data(){return this.parameters.data}get viewParams(){return this.parameters.params}resetParam(t){var e;null==(e=this.deLogicParams.get(t))||e.calc(this)}renewParam(t){var e;null==(e=this.deLogicParams.get(t))||e.renew(this)}}(this.params,t);this.initLogicParams(e);const{startDEUILogicNodeId:s}=this.model;if(!s||!this.nodes.has(s))throw new a(this.model,"未设置起始节点");{const t=this.nodes.get(s);await this.deepExec(t,e)}return e.isEndNode?e.result:e.params[e.defaultParamName]?e.params[e.defaultParamName]:null}async deepExec(t,e){await t.exec(e);const{links:a}=t;for(let s=0;s<a.length;s++){const i=a[s];if(await i.exec(e)&&i.dstNode&&(await this.deepExec(i.dstNode,e),!1===t.model.parallelOutput))break}}},Xs=new Map;async function Ys(t,a,s){const i=ibiz.hub.getApp(s.context.srfappid),n=await i.getDEUILogic(t,a);if(!n)throw new e("找不到实体".concat(a,"的界面逻辑").concat(t));Xs.has(n)||Xs.set(n,new js(n));const o=Xs.get(n);return await o.exec(s),null}var Ks=t("UIActionUtil",class{static async exec(t,a){const s=await bt(t);if(!s)throw new e("没找到".concat(t,"的界面行为模型"));return(await ke(s)).exec(s,a)}static async execAndResolved(t,e){var a,s;const i=await this.exec(t,e);if(i.closeView)e.view.closeView();else if(i.refresh)switch(i.refreshMode){case 1:await e.view.callUIAction("Refresh");break;case 2:await(null==(a=e.view.parentView)?void 0:a.callUIAction("Refresh"));break;case 3:await(null==(s=e.view.getTopView())?void 0:s.callUIAction("Refresh"))}}}),Hs=class{async exec(t,e){const{context:s,params:i,data:n}=e,o={refresh:t.reloadData,refreshMode:t.refreshMode,closeView:t.closeEditView},{appDEUILogicId:r,appDataEntityId:c,uilogicAttachMode:l}=t;if("REPLACE"===l){if(!r)throw new a(t,"没有配置实体界面逻辑");return await Ys(r,c,e),o}if(!await this.isConfirm(t))return this.returnError(o);const d=await this.execAction(t,e);if(Object.assign(o,d),!0===o.cancel)return this.returnError(o);const h=await this.doNextAction(t,{...e,context:o.nextContext||s,data:o.data||n,params:o.nextParams||i});if(h&&(Object.assign(o,h),!0===h.cancel))return this.returnError(o);if("AFTER"===t.uilogicAttachMode){if(!r)throw new a(t,"没有配置实体界面逻辑");await Ys(r,c,e)}return o}returnError(t){return Object.assign(t,{refresh:!1,closeView:!1})}async isConfirm(t){return!t.enableConfirm||!t.confirmMsg||ibiz.modal.confirm({title:t.confirmMsg})}async doNextAction(t,e){const a=t.nextId;if(a)return Ks.exec(a,e)}async handleParams(t,e,a,s){let i=[];const n=Dt(t.appDataEntityId);switch(t.actionTarget){case"NONE":i=[];break;case"SINGLEDATA":i=[a[0]];break;case"MULTIDATA":i=a;break;case"MULTIKEY":i=n&&a.length>0?a.map((t=>({[n]:t.srfkey||t[n]}))):[{}];break;case"SINGLEKEY":{const t=a[0]||{};i=n?[{[n]:t.srfkey||t[n]}]:[{}]}}const o=e.clone(),r=[...t.navigateContexts||[]];if(n&&"NONE"!==t.actionTarget){const{valueItem:e,paramItem:a}=t,s=a||n,i=e||"srfkey";r.unshift({key:s,value:i,rawValue:!1})}const c=["MULTIKEY","MULTIDATA"].includes(t.actionTarget)&&a.length>0,l=lt(r,e,s,c?pt(r,a):a[0]||{});Object.assign(o,l);const d=t.navigateParams;return{resultContext:o,resultData:i,resultParams:lt(d,o,s,c?pt(d,a):a[0]||{})}}},qs=t("BackendUIActionProvider",class extends Hs{async execAction(t,e){const{context:s,params:i,data:n,event:o}=e,r={},c=t.appDataEntityId,l=t.appDEMethodId;if(!c||!l)throw new a(t,"未配置实体或实体行为");const{resultContext:d,resultParams:h,resultData:u}=await this.handleParams(t,s,n,i),p={...i,...h},m=t.frontAppViewId;if(m){const t=await ibiz.commands.execute(ce.TAG,m,d,h,{event:o});if(!(null==t?void 0:t.ok))return r.cancel=!0,r;(null==t?void 0:t.ok)&&t.data&&(0===u.length&&u.push({}),u.forEach((e=>{e.srfactionparam=t.data})))}const g=ibiz.hub.getApp(null==s?void 0:s.srfappid),f=u.map((t=>{var e;return(null==(e=t.getOrigin)?void 0:e.call(t))||t||{}})),E=["MULTIKEY","MULTIDATA"].includes(t.actionTarget),w=await g.deService.exec(c,l,d,E?f:f[0],p);return w.ok&&t.successMsg&&ibiz.message.success(t.successMsg),Object.assign(r,{data:N(w.data)?w.data:[w.data],nextContext:d,nextParams:p}),r}}),Qs=t("SysUIActionProvider",class extends Hs{constructor(){super(...arguments),this.predefinedActionMap=new Map([["EDITVIEW_EXITACTION","Exit"],["EDITVIEW_SAVEANDEXITACTION","SaveAndExit"],["TREEVIEW_REFRESHPARENTACTION","RefreshParent"],["GRIDVIEW_EXPORTXMLACTION","ExportModel"],["GRIDVIEW_EXPORTACTION","ExportExcel"],["EDITVIEW_REMOVEANDEXITACTION","RemoveAndExit"],["GRIDVIEW_PRINTACTION","Print"],["EDITVIEW_NEXTRECORDACTION","NextRecord"],["GRIDVIEW_NEWROWACTION","NewRow"],["EDITVIEW_LASTRECORDACTION","LastRecord"],["EDITVIEW_PREVRECORDACTION","PrevRecord"],["GRIDVIEW_SEARCHBAR","ToggleFilter"],["EDITVIEW_SAVEANDSTARTWFACTION","SaveAndStart"],["EDITVIEW_NEWACTION","New"],["EDITVIEW_PRINTACTION","Print"],["EDITVIEW_COPYACTION","Copy"],["EDITVIEW_HELPACTION","Help"],["EDITVIEW_FIRSTRECORDACTION","FirstRecord"],["GRIDVIEW_REFRESHACTION","Refresh"],["EDITVIEW_SAVEANDNEWACTION","SaveAndNew"],["EDITVIEW_VIEWWFSTEPACTORACTION","ViewWFStep"],["EDITVIEW_SAVEACTION","Save"],["TREEVIEW_REFRESHALLACTION","RefreshAll"],["GRIDVIEW_IMPORTBAR","Import"],["GRIDVIEW_ROWEDITACTION","ToggleRowEdit"],["GRIDVIEW_NEWACTION","New"],["GRIDVIEW_EDITACTION","Edit"],["GRIDVIEW_HELPACTION","Help"],["EDITVIEW_REFRESHACTION","Refresh"],["GRIDVIEW_REMOVEACTION","Remove"],["GRIDVIEW_COPYACTION","Copy"],["GRIDVIEW_VIEWACTION","View"],["GRIDVIEW_SAVEROWACTION","SaveRow"],["APP_LOGIN","login"],["APP_LOGOUT","logout"]])}async execAction(t,e){const{view:a}=e,s=this.predefinedActionMap.get(t.predefinedType)||t.uiactionTag;if("Exit"===s)return{closeView:!0};return await a.callUIAction(s,e)||{}}}),$s=t("FrontUIActionProvider",class extends Hs{async execAction(t,e){const{context:i,params:n,data:o,event:r,noWaitRoute:c}=e;let l={};switch(t.frontProcessType){case"OPENHTMLPAGE":{const e=u.fill(t.htmlPageUrl,i,null==o?void 0:o[0]);window.open(e,"_blank");break}case"TOP":case"WIZARD":{const e=t.frontAppViewId;if(!e)throw new a(t,"未配置打开视图");const{resultContext:s,resultParams:d}=await this.handleParams(t,i,o,n),h=await ibiz.commands.execute(ce.TAG,e,s,d,{event:r,noWaitRoute:c});(null==h?void 0:h.ok)||(l.cancel=!0),(null==h?void 0:h.ok)&&h.data&&(l.data=h.data,l.nextContext=s,l.nextParams={...n,...d});break}case"OTHER":l=this.doOther(t,e);break;default:throw new s(t,"未支持的前台处理模式[".concat(t.frontProcessType,"]"))}return l}doOther(t,e){const{scriptCode:s}=t,{context:i,params:n,data:o,event:r}=e;if(s){return jt.execScriptFn({context:i,params:n,data:o,el:null==r?void 0:r.target},s)||{}}throw new a(t,"自定义类型缺少配置脚本代码")}}),Js=t("WFWithdrawUIActionProvider",class extends Hs{async execAction(t,e){const{view:a}=e;let s=!1;return await ibiz.modal.confirm({title:"提示",desc:"是否确认执行撤回操作?"})&&a&&(await a.call("WFWithdraw",e),s=!0),{refresh:!1,closeView:s}}});function Zs(){const t=new $s;Fe("FRONT",(()=>t));const e=new qs;Fe("BACKEND",(()=>e));const a=new Qs;Fe("SYS",(()=>a));const s=new Js;Fe("DEUIACTION_WFWithdraw",(()=>s))}var ti=t("ToolbarController",class extends ws{get _evt(){return this.evt}initState(){super.initState(),this.state.buttonsState=new cs,this.state.viewMode="EMBED",this.state.extraButtons={}}async doUIAction(t,e,a={}){if("DEUIACTION"===t.itemType){const s=t.uiactionId,i=await this.ctx.view.call("GetData")||[],n=this.getEventArgs();n.params=Object.assign(a,n.params),await Ks.execAndResolved(s,{...n,data:i,event:e})}}async onCreated(){await super.onCreated(),this.state.viewMode=this.ctx.view.modal.mode,p(this.model,(t=>{if("DEUIACTION"===t.itemType){const e=t,a=new rs(e.id,this.context.srfappid,e.uiactionId);this.state.buttonsState.addState(e.id,a)}}),{childrenFields:["detoolbarItems"]}),await this.state.buttonsState.update()}async onItemClick(t,e,a){this.state.buttonsState.setLoading(t.id);const s="extra"===t.buttonType;try{await this._evt.emit("onClick",{event:e,eventArg:t.id,buttonType:s?"extra":"deuiaction"}),s||await this.doUIAction(t,e,a)}finally{this.state.buttonsState.setLoading("")}}async calcButtonState(t,e){let a=t;t&&t instanceof ka&&(a=t.getOrigin()),await this.state.buttonsState.update(a,e),this.scheduler&&a&&p(this.model,(t=>{const e=this.state.buttonsState[t.id];if(e.visible){const s=this.scheduler.triggerItemVisible(t.id,{data:[a]});void 0!==s&&(e.visible=s)}if(!e.disabled){const s=this.scheduler.triggerItemEnable(t.id,{data:[a]});void 0!==s&&(e.disabled=!s)}}),{childrenFields:["detoolbarItems"]})}setExtraButtons(t,e){this.state.extraButtons[t]||(this.state.extraButtons[t]=[]),this.state.extraButtons[t].push(...e)}clearExtraButtons(t){void 0===t?this.state.extraButtons={}:this.state.extraButtons[t]=[]}initControlScheduler(t=[]){const e=[...t];p(this.model,(t=>{t.controlLogics&&e.push(...t.controlLogics)}),{childrenFields:["detoolbarItems"]}),super.initControlScheduler(e)}}),ei=t("ContextMenuController",class extends ti{}),ai=(t("DashboardController",class extends ws{constructor(){super(...arguments),this.providers={},this.portlets={}}initState(){super.initState()}async onCreated(){await super.onCreated(),await this.initPortlets(this.model.controls);const{appDataEntityId:t}=this.view.model;t&&this.view.evt.on("onDataChange",(t=>{const e=us(t.data);e&&this.dataChangeNotify(e)}))}async initPortlets(t,e){(null==t?void 0:t.length)&&await Promise.all(t.map((async t=>{var a;const s=await je(t);if(s){this.providers[t.id]=s;const i=await s.createController(t,this,e);this.portlets[t.id]=i,(null==(a=t.controls)?void 0:a.length)&&await this.initPortlets(t.controls,i)}})))}async dataChangeNotify(t){const a=await Promise.allSettled(Object.values(this.portlets).map((async e=>e.dataChangeNotify(t))));if(a.find((t=>"rejected"===t.status)))throw ibiz.log.error("dataChangeNotify报错",a),new e("数据变更后有错误")}}),t("PortletPartState",class{constructor(){this.visible=!0,this.keepAlive=!1,this.layout={width:"",height:"",extraStyle:{},extraClass:[],contentStyle:{}},this.class={container:[],containerDyna:[]},this.actionGroupState=null}})),si=t("PortletPartController",class{get context(){return this.dashboard.context}get params(){return this.dashboard.params}get containerClass(){return[...this.state.class.container,...this.state.class.containerDyna]}constructor(t,e,a){this.model=t,this.dashboard=e,this.parent=a,this.state=this.createState()}async init(){await this.onInit()}async onInit(){const{layoutPos:t,sysCss:e}=this.model;if(t){const{width:t,height:e}=Et(this.model);this.state.layout.width="".concat(t),this.state.layout.height="".concat(e)}(null==e?void 0:e.cssName)&&this.state.class.container.push(e.cssName),await this.initActionStates()}createState(){return new ai}async initActionStates(){var t;const{uiactionGroup:e}=this.model;if(!(null==(t=null==e?void 0:e.uiactionGroupDetails)?void 0:t.length))return;const a=new cs;e.uiactionGroupDetails.forEach((t=>{const e=t.uiactionId;if(e){const s=new rs(t.id,this.dashboard.context.srfappid,e);a.addState(t.id,s)}})),await a.update(),this.state.actionGroupState=a;const{appDataEntityId:s}=this.dashboard.view.model;s&&this.dashboard.view.evt.on("onDataChange",(t=>{let e=t.data[0];e&&e instanceof ka&&(e=e.getOrigin()),e&&this.state.actionGroupState.update(e,s)}))}async onActionClick(t,e,a=[]){const s=t.uiactionId;await Ks.execAndResolved(s,{context:this.dashboard.context,params:this.dashboard.params,data:a,view:this.dashboard.view,event:e})}async dataChangeNotify(t){if(this.state.actionGroupState){const{appDataEntityId:e}=this.dashboard.view.model;this.state.actionGroupState.update(t,e)}this.calcDynaClass(t)}calcDynaClass(t){if(this.model.dynaClass){const e=wt(this.model.dynaClass,t);e.length&&(this.state.class.containerDyna=e)}}}),ii=(t("ContainerPortletController",class extends si{}),t("ViewPortletController",class extends si{}),t("DataViewControlService",class extends Ua{initUIDataMap(){var t;super.initUIDataMap(),null==(t=this.model.dedataViewDataItems)||t.forEach((t=>{const e=t.id.toLowerCase(),a=t.appDEFieldId;let s;if(a){const t=a.toLowerCase();s=new qa(e,t,{isOriginField:!0})}else s=new qa(e,e);this.dataUIMap.set(e,s)}))}})),ni=(t("DataViewControlController",class extends Is{initState(){super.initState(),this.state.noSort=!0===this.model.noSort}async onCreated(){await super.onCreated(),this.state.size=this.model.pagingSize||20,this.service=new ii(this.model),await this.service.init(this.context)}async loadMore(){this.state.total>this.state.items.length&&await this.load({isLoadMore:!0})}async afterLoad(t,e){return await this.handleDataGroup(),e}getOptItemModel(){let t=null;const{dedataViewItems:e}=this.model;if(e)for(let a=0;a<e.length;a++)"ACTIONITEM"===e[a].itemType&&(t=e[a]);return t}getOptItemAction(t){var e;const s=new cs,i=this.getOptItemModel();if(i){if(!i.deuiactionGroup)throw new a(this.model,"操作项没有配置界面行为组");if(!(null==(e=i.deuiactionGroup.uiactionGroupDetails)?void 0:e.length))return ibiz.log.debug("操作项界面行为组没有配置界面行为"),s;i.deuiactionGroup.uiactionGroupDetails.forEach((t=>{const e=t.uiactionId;if(e){const a=new rs(t.id,this.context.srfappid,e);s.addState(t.id,a)}})),s.update(t.getOrigin())}return s}async onActionClick(t,e,a){const s=t.uiactionId;await Ks.execAndResolved(s,{context:this.context,params:this.params,data:[e],view:this.view,event:a})}async handleDataGroup(){const{enableGroup:t,groupMode:e}=this.model;t&&e&&("AUTO"===e?this.handleAutoGroup():"CODELIST"===e&&await this.handleCodeListGroup())}handleAutoGroup(){const{groupAppDEFieldId:t}=this.model;if(t){const{items:e}=this.state,a=new Map;e.forEach((e=>{const s=a.get(e[t])||[];s.push(e),a.set(e[t],s)}));const s=[];a.forEach(((t,e)=>{s.push({caption:e,children:[...t]})})),this.state.groups=s}}async handleCodeListGroup(){const{groupAppDEFieldId:t,groupCodeListId:e}=this.model;if(t&&e){const{items:a}=this.state,s=[],i=ibiz.hub.getApp(this.context.srfappid),n=await i.codeList.get(e,this.context,this.params),o=[];n.forEach((e=>{const i=a.filter((a=>a[t]===e.value));s.push({caption:e.text,children:[...i]}),o.push(e.value)}));const r=a.filter((e=>-1===o.indexOf(e[t])));r.length>0&&s.push({caption:"其他",children:[...r]}),this.state.groups=s}}setSort(t,e){if(t&&e)super.setSort(t,e);else{const{minorSortAppDEFieldId:t,minorSortDir:e}=this.model;this.state.sortQuery=t&&e?"".concat(t.toLowerCase(),",").concat(e.toLowerCase()):""}}}),t("ExpBarControlController",class extends ws{constructor(){super(...arguments),this.navKeyName="srfkey"}get _evt(){return this.evt}get routeDepth(){return this.view.modal.routeDepth}initState(){super.initState(),this.state.query=""}load(){return this.xDataController.load({isInitialLoad:!0})}get xDataController(){const t=this.view.getController(this.model.xdataControlName);if(!t)throw new a(this.model,"无法获取多数据部件[".concat(this.model.xdataControlName,"]控制器"));return t}get toolbarController(){return this.view.getController("".concat(this.model.xdataControlName.split("_")[0],"_toolbar"))}get XDataModel(){var t;return null==(t=this.model.controls)?void 0:t.find((t=>t.name===this.model.xdataControlName))}async onCreated(){await super.onCreated(),this.childNames.push(this.model.xdataControlName)}async onMounted(){super.onMounted(),this.xDataController&&(this.xDataController.evt.on("onActive",(t=>{this.xDataActive(t)})),this.xDataController.evt.on("onLoadSuccess",(t=>{this.xDataLoadSuccess(t)})),this.xDataController.evt.on("onBeforeLoad",(()=>{const t={};this.state.query&&(t.query=this.state.query),this.xDataController.state.searchParams=t}))),this.toolbarController&&this.xDataController.evt.on("onSelectionChange",(async t=>{this.toolbarController.calcButtonState(t.data[0],this.model.appDataEntityId)}))}xDataLoadSuccess(t){t.isInitialLoad&&(this.state.srfnav&&this.routeDepth?this.defaultNavBySrfnav():this.defaultNavByFirstItem())}defaultNavBySrfnav(){var t;const e=null==(t=this.xDataController)?void 0:t.state.items.find((t=>t[this.navKeyName]===this.state.srfnav));e&&this.xDataController.setSelection([e]),this._evt.emit("onNavViewChange",{navViewMsg:{key:this.state.srfnav},context:this.context})}defaultNavByFirstItem(){const t=this.xDataController.state.items[0];t&&(this.xDataController.setActive(t),this.xDataController.setSelection([t]))}xDataActive(t){const{data:e,context:a,params:s}=t,i=this.getNavViewMsg(e[0],a,s);this._evt.emit("onNavViewChange",{navViewMsg:i})}prepareParams(t,e,a,s){const{navDER:i,navFilter:n,navigateContexts:o,navigateParams:r,appDataEntityId:c}=t,l={deName:c?Dt(c):void 0,navFilter:n,pickupDEFName:null==i?void 0:i.pickupDEFName,navContexts:o,navParams:r},d={context:a,params:s,data:e},{resultContext:h,resultParams:u}=mt(l,d);return{context:Object.assign(a.clone(),h,{currentSrfNav:e[this.navKeyName]}),params:{...u}}}calcViewModelId(){var t;if(["GRID","DATAVIEW","LIST"].includes((null==(t=this.XDataModel)?void 0:t.controlType)||""))return this.XDataModel.navAppViewId;throw new e("多节点视图由子类实现")}getNavViewMsg(t,e,a){const s=this.calcViewModelId(),i=this.prepareParams(this.XDataModel,t,e,a);return{key:t[this.navKeyName],context:i.context,params:i.params,viewId:s}}calcControlHeaderVisible(){const t=!!this.toolbarController;if(!t&&this.layoutPanel){const t=this.layoutPanel.panelItems.control_toolbar;t&&(t.state.visible=!1)}return t||!(!this.model.showTitleBar||!this.model.title)||!!this.model.enableSearch}setLayoutPanel(t){super.setLayoutPanel(t),t.evt.on("onMounted",(()=>{if(!this.calcControlHeaderVisible()){const t=this.layoutPanel.panelItems.control_header;t&&(t.state.visible=!1)}}))}})),oi=(t("CalendarExpBarController",class extends ni{constructor(){super(...arguments),this.navKeyName="navId"}getCalendarItemModel(t){const{sysCalendarItems:e}=this.XDataModel;if(e)return e.find((e=>e.itemType===t))}get xDataController(){const t=this.view.getController(this.model.xdataControlName);if(!t)throw new a(this.model,"无法获取多数据部件[".concat(this.model.xdataControlName,"]控制器"));return t}defaultNavBySrfnav(){var t;const e=null==(t=this.xDataController)?void 0:t.state.items.find((t=>t.navId===this.state.srfnav));if(super.defaultNavBySrfnav(),!e)return;const a=new Date(e.beginTime);this.xDataController.setSelectDate(a)}getNavViewMsg(t){const e=this.getCalendarItemModel(t.itemType);if(e){const{context:a,params:s}=this.prepareParams(e,t.deData?t.deData:t,this.context,this.params);return a.currentSrfNav=t.navId,{key:t.navId,context:a,params:s,viewId:e.navAppViewId}}return{key:t.navId,context:this.context,params:this.params}}}),t("TreeExpBarController",class extends ni{constructor(){super(...arguments),this.navKeyName="id",this.navNodeModelIds=[]}get xDataController(){const t=this.view.getController(this.model.xdataControlName);if(!t)throw new a(this.model,"无法获取多数据部件[".concat(this.model.xdataControlName,"]控制器"));return t}getNodeModel(t){const{detreeNodes:e}=this.XDataModel;let a;return e&&e.forEach((e=>{e.id===t&&(a=e)})),a}xDataActive(t){const{nodeData:e}=t;super.xDataActive({...t,data:[e]})}getNavViewMsg(t,a,s){const i=t.id,n=t.deData||t,o=this.getNodeModel(t.nodeId);if(!o)throw new e("找不到".concat(t.nodeId,"的节点模型"));const r=this.prepareParams(o,n,a,s);return r.context.currentSrfNav=i,{key:i,viewId:o.navAppViewId,...r}}defaultNavByFirstItem(){const t=this.xDataController.state.items.find((t=>!(!this.xDataController.model.rootVisible&&this.xDataController.state.rootNodes.includes(t))&&(!!this.state.noNeedNavView||this.navNodeModelIds.includes(t.nodeId))));t&&(this.xDataController.setActive(t),this.xDataController.setSelection([t]))}async onCreated(){await super.onCreated();const{detreeNodes:t}=this.XDataModel;if(null==t||t.forEach((t=>{t.navAppViewId&&this.navNodeModelIds.push(t.id)})),this.state.srfnav){const t=[];this.state.srfnav.split(":").forEach(((e,a)=>{0===a?t.push(e):t.push("".concat(t[a-1],":").concat(e))})),t.pop(),this.defaultExpandedKeys=t}}}),t("FormController",class extends ws{constructor(){super(...arguments),this.details={},this.providers={},this.formItems=[]}get _evt(){return this.evt}get data(){return this.state.data}initState(){super.initState(),this.state.data=new ka,this.state.isLoaded=!1,this.state.processing=!1,this.state.modified=!1}async dataChangeNotify(t){const a=await Promise.allSettled(Object.values(this.details).map((async e=>e.dataChangeNotify(t))));if(a.find((t=>"rejected"===t.status)))throw ibiz.log.error("dataChangeNotify报错",a),new e("数据变更后有错误")}formStateNotify(t){Object.values(this.details).forEach((e=>{e.formStateNotify(t)}))}async onCreated(){await super.onCreated(),await this.initDetailControllers(),this.dataChangeNotify=m(this.dataChangeNotify.bind(this),((t,e)=>[Array.from(new Set([...t[0],...e[0]]))]),200)}async getDraftParams(){const t={};return await Promise.all(this.formItems.map((e=>e.setDefaultValue(!0,t)))),t}async initDetailControllers(t=this.model.deformPages,e=this,a=void 0){await Promise.all(t.map((async t=>{const s=await Ne(t);if(!s)return;e.providers[t.id]=s;const i=await s.createController(t,e,a);e.details[t.id]=i,"FORMITEM"!==t.detailType&&"MDCTRL"!==t.detailType||e.formItems.push(i);const n=Rt(t);n.length&&await this.initDetailControllers(n,e,i)})))}getData(){return[this.state.data]}async setDataValue(t,e){if(!Object.prototype.hasOwnProperty.call(this.state.data,t)||hs(this.state.data[t],e)){this.state.data[t]=e,this.state.processing=!0,this.state.modified=!0,await this._evt.emit("onFormDataChange",void 0);try{await this.dataChangeNotify([t])}finally{this.state.processing=!1}}}async validate(){return-1===(await Promise.all(this.formItems.map((t=>t.validate())))).findIndex((t=>!t))}})),ri=t("SearchFormService",class extends Ba{async getDraft(t,e={}){let a={ok:!0,status:200,data:{}};return a=this.handleResponse(a),a}initUIDataMap(){p(this.model,(t=>{if("FORMITEM"===t.detailType){const e=t.id.toLowerCase();this.dataUIMap.set(e,new qa(e,e))}}),{childrenFields:["deformPages","deformDetails"]})}handleResponse(t){const e=super.handleResponse(t);return e.ok&&e.data&&(e.data=this.toUIData(e.data)),e}}),ci=(t("SearchFormController",class extends oi{async onCreated(){await super.onCreated(),this.service=new ri(this.model),await this.service.init(this.context),await this.load()}async load(){const t={...this.params},e=await this.getDraftParams();Object.assign(t,e);const a=await this.service.getDraft(this.context,t);return this.state.data=a.data,g(this.data,e),this.state.isLoaded=!0,this.formStateNotify("DRAFT"),this.data}getParams(){return{...this.data.getOrigin()}}async search(){await this.evt.emit("onSearch",void 0)}async onSearchButtonClick(){await this.search()}async reset(){await this.load(),await this.search()}async dataChangeNotify(t){await super.dataChangeNotify(t),this.model.enableAutoSearch&&this.search()}async onKeyUp(t){const e=t||window.event;e&&"Enter"===e.code&&await this.onSearchButtonClick()}}),t("FormDetailState",class{constructor(t){this.parent=t,this.disabled=!1,this.layout={width:"",height:"",extraStyle:{},extraClass:[],contentStyle:{}},this.class={container:[],containerDyna:[],label:[],labelDyna:[]},this.required=!1,this.showMoreMode=0;let e,a=!0;Object.defineProperty(this,"visible",{enumerable:!0,configurable:!0,get(){if(this.parent){if(!1===this.parent.visible)return!1;if(1===this.showMoreMode&&!1===this.parent.isShowMore)return!1}return a},set:t=>(a=t,!0)}),Object.defineProperty(this,"keepAlive",{enumerable:!0,configurable:!0,get(){return void 0!==e?e:!!this.parent&&this.parent.keepAlive},set:t=>(e=t,!0)})}})),li=t("FormDetailController",class{get data(){return this.form.data}get containerClass(){return[...this.state.class.container,...this.state.class.containerDyna]}get labelClass(){return[...this.state.class.label,...this.state.class.labelDyna]}constructor(t,e,a){this.model=t,this.form=e,this.parent=a,this.state=this.createState()}async init(){await this.onInit()}async onInit(){this.state.showMoreMode=this.model.showMoreMode;const{layoutPos:t,sysCss:e,labelSysCss:a}=this.model;if(t){const{width:e,height:a}=Et(t);this.state.layout.width="".concat(e),this.state.layout.height="".concat(a)}(null==e?void 0:e.cssName)&&this.state.class.container.push(e.cssName),(null==a?void 0:a.cssName)&&this.state.class.label.push(a.cssName)}createState(){var t;return new ci(null==(t=this.parent)?void 0:t.state)}async dataChangeNotify(t){this.calcDynamicLogic(t),this.calcDynaClass(this.data)}async formStateNotify(t){this.calcDynamicLogic([],t),this.calcDynaClass(this.data)}calcDynamicLogic(t,e){var a;this.parent&&!this.parent.state.visible||null==(a=this.model.defdgroupLogics)||a.forEach((a=>{const s=a.relatedDetailNames||[];if(e||f(s,t))try{const t=Kt(this.form.data,a);switch(a.logicCat){case"ITEMBLANK":this.state.required=!t;break;case"ITEMENABLE":this.state.disabled=!t;break;case"PANELVISIBLE":this.state.visible=t}}catch(t){ibiz.log.error(t)}}))}force(t){}calcDynaClass(t){if(this.model.dynaClass){const e=wt(this.model.dynaClass,t);e.length&&(this.state.class.containerDyna=e)}if(this.model.labelDynaClass){const e=wt(this.model.labelDynaClass,t);e.length&&(this.state.class.labelDyna=e)}}}),di=t("FormButtonState",class extends ci{constructor(){super(...arguments),this.loading=!1}}),hi=(t("FormButtonController",class extends li{createState(){var t;return new di(null==(t=this.parent)?void 0:t.state)}get data(){return this.form.data}async onClick(t){this.state.loading=!0;try{"UIACTION"===this.model.actionType&&await this.doUIAction(t),await this.doFormItemUpdate()}finally{this.state.loading=!1}}async doUIAction(t){const e=this.model.uiactionId;await Ks.execAndResolved(e,{context:this.form.context,params:this.form.params,data:[this.data],view:this.form.view,event:t,noWaitRoute:!0})}async doFormItemUpdate(){this.model.deformItemUpdateId&&await this.form.updateFormItem(this.model.deformItemUpdateId)}}),t("FormDruipartState",class extends ci{constructor(){super(...arguments),this.showMask=!1}})),ui=(t("FormDRUIPartController",class extends li{constructor(){super(...arguments),this.refreshItems=["srfkey"],this.paramItem="srfkey",this.isNewData=!1}createState(){var t;return new hi(null==(t=this.parent)?void 0:t.state)}async onInit(){if(await super.onInit(),Object.assign(this.state.layout.extraStyle,{overflow:"auto"}),this.model.refreshItems){let t=this.model.refreshItems.split(";");t=t.filter((t=>!!t)),this.refreshItems.push(...t)}this.model.paramItem&&(this.paramItem=this.model.paramItem)}async dataChangeNotify(t){await super.dataChangeNotify(t),f(this.refreshItems,t)&&this.calcViewParams()}async formStateNotify(t){await super.formStateNotify(t),this.isNewData="DRAFT"===t,this.state.showMask=this.isNewData,this.calcViewParams()}calcViewParams(){let t=this.form.context.clone();const e=this.model.navigateContexts;A(e)&&(t=Object.assign(t,lt(e,this.form.context,this.form.params,this.form.data)));const a=lt(this.model.navigateParams,this.form.params,this.form.context,this.form.data);if(this.state.viewComponentKey){if(JSON.stringify(this.navContext)!==JSON.stringify(t)||JSON.stringify(this.navParams)!==JSON.stringify(a))this.navContext=t,this.navParams=a,this.force();else if(this.embedView){if(this.isNewData)return;this.embedView.callUIAction("Refresh")}}else this.state.viewComponentKey=x(),this.navContext=t,this.navParams=a}setEmbedView(t){this.embedView=t,this.embedView.evt.on("onMounted",(()=>{this.isNewData||this.embedView.callUIAction("Refresh")})),this.embedView.evt.on("onDataChange",(t=>{["LOAD","LOADDRAFT"].includes(t.actionType)||(ibiz.log.debug("接收到关系界面的数据变更事件",t),this.model.deformItemUpdateId&&this.form.updateFormItem(this.model.deformItemUpdateId))}))}}),t("FormGroupPanelState",class extends ci{constructor(){super(...arguments),this.isShowMore=!1,this.actionGroupState=null}})),pi=t("FormGroupPanelController",class extends li{get disableClose(){const{titleBarCloseMode:t}=this.model;return 0===t||void 0===t}get defaultExpansion(){const{titleBarCloseMode:t}=this.model;return this.disableClose||1===t}createState(){var t;return new ui(null==(t=this.parent)?void 0:t.state)}async onInit(){super.onInit(),await this.initActionStates()}async formStateNotify(t){super.calcDynamicLogic([],t),this.state.actionGroupState&&this.state.actionGroupState.update(this.form.data.getOrigin())}async initActionStates(){var t;const{uiactionGroup:e}=this.model;if(!(null==(t=null==e?void 0:e.uiactionGroupDetails)?void 0:t.length))return;const a=new cs;e.uiactionGroupDetails.forEach((t=>{const e=t.uiactionId;if(e){const s=new rs(t.id,this.form.context.srfappid,e);a.addState(t.id,s)}})),await a.update(),this.state.actionGroupState=a}async onActionClick(t,e){const a=t.uiactionId;await Ks.execAndResolved(a,{context:this.form.context,params:this.form.params,data:[this.data],view:this.form.view,event:e})}}),mi=t("FormItemState",class extends ci{constructor(t){super(t),this.parent=t,this.error=null,this.enableCondDisabled=!1;let e=!1;Object.defineProperty(this,"disabled",{enumerable:!0,configurable:!0,get(){return!!this.enableCondDisabled||e},set:t=>(e=t,!0)})}}),gi=(t("FormItemController",class extends li{constructor(t,e,a){super(t,e,a),this.rules=[],this.context=e.context,this.params=e.params}createState(){var t;return new mi(null==(t=this.parent)?void 0:t.state)}get name(){return this.model.fieldName||this.model.id}get value(){return this.form.data[this.name]}get valueItemName(){if(this.model.editor)return this.model.editor.valueItemName}get unitName(){return this.model.unitName}get valueFormat(){return this.model.valueFormat}async onInit(){await super.onInit(),this.state.required=!this.model.allowEmpty,this.model.editor&&"HIDDEN"!==this.model.editor.editorType&&(this.editorProvider=await be(this.model.editor),this.editorProvider&&(this.editor=await this.editorProvider.createController(this.model.editor,this),await this.initRules()))}async initRules(){const t=ne(this.form.model.deformItemVRs||[],this.name);t&&(this.rules=ps(t,this.name,this.valueItemName),this.validator=new $({[this.name]:this.rules}))}calcEnableCond(){const{enableCond:t}=this.model,e=0===this.data.srfuf;t?(e&&2===t||!e&&1===t)&&(this.state.enableCondDisabled=!0):this.state.enableCondDisabled=!0}async dataChangeNotify(t){await super.dataChangeNotify(t);const{resetItemNames:e}=this.model;let a=!1;e&&e.length>0&&e.forEach((e=>{t.includes(e)&&(a=!0)})),a&&this.setDataValue(null,this.name),(t.includes(this.name)||t.includes(this.valueItemName))&&this.validate(),t.includes(this.name)&&this.model.deformItemUpdateId&&await this.form.updateFormItem(this.model.deformItemUpdateId)}async formStateNotify(t){super.formStateNotify(t),this.calcEnableCond(),"LOAD"===t&&this.setDefaultValue(!1)}calcDynamicLogic(t,e){this.model.hidden||super.calcDynamicLogic(t,e)}async validate(){if(!this.state.visible)return this.state.error=null,!0;if(this.state.required&&P(this.data[this.name]))return this.state.error="请填写".concat(this.model.caption||""),!1;if(this.validator)try{await this.validator.validate(this.data)}catch({errors:t,_fields:e}){return this.state.error=t[0].message,!1}return this.state.error=null,!0}async setDataValue(t,e){e=e||this.name,await this.form.setDataValue(e,t)}setDefaultValue(t,a=this.data){var i;const{createDVT:n,createDV:o,updateDVT:r,updateDV:c}=this.model,l=t?n:r,d=t?o:c;if("RESET"!==l){if(!(this.value||P(l)&&P(d)))if(l||!d)switch(l){case"APPDATA":Object.prototype.hasOwnProperty.call(this.params,d)&&(a[this.name]=this.params[d]),Object.prototype.hasOwnProperty.call(this.context,d)&&(a[this.name]=this.context[d]);break;case"OPERATORNAME":a[this.name]=this.context.srfusername;break;case"OPERATOR":a[this.name]=this.context.srfuserid;break;case"CURTIME":a[this.name]=X().format(this.model.valueFormat);break;case"PARAM":a[this.name]=this.data[d];break;case"SESSION":case"APPLICATION":if(!(null==(i=ibiz.appData)?void 0:i.context))throw new e("appdata.context不存在");a[this.name]=ibiz.appData.context[d];break;case"CONTEXT":a[this.name]=this.params[d];break;case"UNIQUEID":a[this.name]=x();break;default:throw new s(this.model,"默认值类型[".concat(l,"]未支持"))}else a[this.name]=d}else a[this.name]=null}}),t("FormMDCtrlContentTypeController",class{constructor(t){this.parent=t,this.model=this.parent.model}get data(){return this.parent.state.contentCtrlData}async onInit(){}onDataChange(t){this.parent.state.contentCtrlData=t,this.parent.setFormDataValue()}onDataItemChange(t,e){this.parent.state.contentCtrlData[e]=t,this.parent.setFormDataValue()}onDataRemove(t){t<0||(this.parent.state.contentCtrlData.splice(t,1),this.parent.setFormDataValue())}onDataInsert(t){this.parent.state.contentCtrlData.push(t||{}),this.parent.setFormDataValue()}async initData(){const t=this.model.appDEFieldId||this.model.fieldName||this.model.id;t&&("REPEATER"===this.model.contentType&&"STYLE3"===this.model.detailStyle?this.parent.state.contentCtrlData=this.parent.data[t]||{}:this.parent.state.contentCtrlData=this.parent.data[t]||[])}async validate(){return!0}})),fi=t("FormMDCtrlControlController",class extends gi{async onInit(){const{model:t}=this.parent,{contentControl:a}=t;if(!a)throw new e("表单多数据部件未配置嵌入部件");this.controlModel=a;const s=await Ce(this.controlModel);s&&(this.provider=s)}}),Ei=t("FormMDCtrlDataViewController",class extends fi{constructor(){super(...arguments),this.selectData=[],this.state={isSelect:!1}}onDataViewMounted(t){this.dataViewController=t.ctrl}onSelectionChange(t){this.state.isSelect=t.data.length>0}onDataRemove(){this.dataViewController.remove(),this.parent.state.contentCtrlData=this.dataViewController.state.items,this.parent.setFormDataValue()}onDataChange(t){this.parent.state.contentCtrlData=t,this.parent.setFormDataValue()}async initData(){this.dataViewController.load()}async onDataInsert(){}}),wi=t("EditFormService",class extends Ba{async get(t,e={}){var a;let s=await this.exec((null==(a=this.model.getControlAction)?void 0:a.appDEMethodId)||"get",t,void 0,e);return s=this.handleResponse(s),s}async getDraft(t,e={}){var a;let s=await this.exec((null==(a=this.model.getDraftControlAction)?void 0:a.appDEMethodId)||"getdraft",t,void 0,e);return s=this.handleResponse(s),s}async remove(t,e={}){var a;return await this.exec((null==(a=this.model.removeControlAction)?void 0:a.appDEMethodId)||"remove",t,void 0,e)}async create(t,e){var a;let s=await this.exec((null==(a=this.model.createControlAction)?void 0:a.appDEMethodId)||"create",t,e instanceof ka?e.getOrigin():e);return s=this.handleResponse(s),s}async update(t,e){var a;let s=await this.exec((null==(a=this.model.updateControlAction)?void 0:a.appDEMethodId)||"update",t,e instanceof ka?e.getOrigin():e);return s=this.handleResponse(s),s}async goBack(t,e){var s;const i=null==(s=this.model.goBackControlAction)?void 0:s.appDEMethodId;if(!i)throw new a(this.model,"缺少返回操作实体行为");let n=await this.exec(i,t,e instanceof ka?e.getOrigin():e);return n=this.handleResponse(n),n}async updateFormItem(t,e,a={}){let s=await this.exec(t,e,a);return s=this.handleResponse(s),s}async wfStart(t,e,a){var s;const i=(null==(s=this.model.wfstartControlAction)?void 0:s.appDEMethodId)||"wfstart";return(await this.app.deService.getService(this.model.appDataEntityId)).wf.exec(i,t,e,a instanceof ka?a.getOrigin():a)}async wfSubmit(t,e,a){var s;const i=this.model;let n="";n=e.type?e.type:(null==(s=i.wfsubmitControlAction)?void 0:s.appDEMethodId)||"wfsubmit";return(await this.app.deService.getService(this.model.appDataEntityId)).wf.exec(n,t,e,a instanceof ka?a.getOrigin():a)}initUIDataMap(){super.initUIDataMap();const t=["srfwfmemo","srfwftransferor","srfactionparam","srffrontuf","srfnextform"];p(this.model,(e=>{if("FORMITEM"===e.detailType){const a=e,s=a.fieldName||a.id.toLowerCase(),i=a.fieldName||e.appDEFieldId;let n;n=i?new qa(s,i,{isOriginField:!0}):new qa(s,s,{isOriginField:t.includes(s)}),this.dataUIMap.set(s,n)}if("MDCTRL"===e.detailType){const t=e,a=t.fieldName||t.id.toLowerCase(),s=t.fieldName||e.appDEFieldId;let i;i=new qa(a,s||a,{isOriginField:!0}),this.dataUIMap.set(a,i)}}),{childrenFields:["deformPages","deformDetails"]})}handleResponse(t){const e=super.handleResponse(t);return e.ok&&e.data&&(e.data=this.toUIData(e.data)),e}}),Ii=t("EditFormController",class extends oi{async onCreated(){await super.onCreated(),this.service=new wi(this.model),await this.service.init(this.context),this.autoSave=D(this.autoSave.bind(this),500,{trailing:!0})}async load(){const t=!yt(this.context,this.model.appDataEntityId),e={...this.params};let a,s={};t&&(s=await this.getDraftParams(),Object.assign(e,s)),await this.startLoading();try{a=t?await this.service.getDraft(this.context,e):await this.service.get(this.context,e)}finally{await this.endLoading()}return t?E(this.data,a.data):this.state.data=a.data,this.state.modified=!1,this.state.data=a.data,g(this.data,s),this.formStateNotify(t?"DRAFT":"LOAD"),await this.evt.emit(t?"onLoadDraftSuccess":"onLoadSuccess",void 0),this.state.isLoaded=!0,this.data}async save(){if(this.state.processing){return await w(500,this.save.bind(this))}if(!await this.validate())throw new e("请检查表单填写!");let t;await this.startLoading();try{t=0===this.data.srfuf?await this.service.create(this.context,this.data):await this.service.update(this.context,this.data)}finally{await this.endLoading()}return t.data&&E(this.data,t.data),this.state.modified=!1,await this.evt.emit("onSaveSuccess",void 0),this.formStateNotify("SAVE"),ibiz.message.success("".concat(this.data.srfmajortext||"","保存成功")),this.data}async remove(){let t,e=!1;if(1===this.data.srfuf){if(e=await ibiz.modal.confirm({title:"提示",desc:"确认删除吗?"}),!e)return!1;await this.startLoading();try{t=await this.service.remove(this.context,this.params)}finally{await this.endLoading()}e=t.ok}return this.state.data=new ka,this.state.modified=!1,await this.evt.emit("onRemoveSuccess",void 0),e}async goBack(){let t;await this.startLoading();try{t=await this.service.goBack(this.context,this.data)}finally{await this.endLoading()}t.data&&E(this.data,t.data)}async updateFormItem(t){var a;const s=null==(a=this.model.deformItemUpdates)?void 0:a.find((e=>e.id===t));if(!s)throw new e("没找到".concat(t,"表单项更新"));const{appDEMethodId:i,defiupdateDetails:n}=s,o=n.map((t=>t.id)),r={...this.params,...this.data.getOrigin()},c=(await this.service.updateFormItem(i,this.context,r)).data;c&&(null==o?void 0:o.length)&&await Promise.all(o.map((t=>this.setDataValue(t,c[t]))))}async wfStart(t={}){if(!await this.validate())throw new e("请检查表单填写!");await this.startLoading();try{await this.service.wfStart(this.context,{...this.params,...t},this.data)}finally{await this.endLoading()}ibiz.message.success("流程启动成功")}async wfSubmit(t={}){if(!await this.validate())throw new e("请检查表单填写!");await this.startLoading();try{await this.service.wfSubmit(this.context,{...this.params,...t},this.data)}finally{await this.endLoading()}ibiz.message.success("流程提交成功")}async dataChangeNotify(t){await super.dataChangeNotify(t),this.autoSave()}async autoSave(){if(this.model.enableAutoSave)try{await this.save()}catch(t){ibiz.log.error(t)}}}),vi=t("FormMDCtrlFormController",class extends fi{constructor(){super(...arguments),this.controlControllerArray=[],this.state={data:[]}}onControlMounted(t,e){const a=t.ctrl;this.controlControllerArray[e]=a,a.load()}async onInit(){super.onInit(),this.service=new wi(this.model.contentControl),await this.service.init(this.parent.form.context)}async fetch(t,e={}){let a=await this.service.exec("fetchdefault",t,e);return a=this.handleResponse(a),a}handleResponse(t){const e=t;return e.ok&&(y(e.data)?e.data=e.data.map((t=>this.service.toUIData(t))):e.data=this.service.toUIData(e.data)),e}async initData(){const t=await this.fetch(this.parent.form.context,this.parent.form.params);this.state.data=t.data}onDataRemove(t){const e=this.controlControllerArray[t];e&&e.remove()}onFormChange(t,e){const a=this.controlControllerArray[e];a&&(a.save(),this.state.data[e]&&E(this.state.data[e],t[0]),this.parent.state.contentCtrlData=this.state.data,this.parent.setFormDataValue())}onFormRemoveSuccess(t){this.state.data.splice(t,1),this.controlControllerArray.splice(t,1),this.parent.state.contentCtrlData=this.state.data,this.parent.setFormDataValue()}async onDataInsert(){const t=await this.service.getDraft(this.parent.form.context,this.parent.form.params);if(t.data){const e=await this.service.create(this.parent.form.context,t.data);this.state.data.push(e.data),this.parent.state.contentCtrlData=this.state.data,this.parent.setFormDataValue()}}async validate(){return-1===(await Promise.all(this.controlControllerArray.map((t=>t.validate())))).findIndex((t=>!t))}}),Di=t("FormMDCtrlGridController",class extends fi{constructor(){super(...arguments),this.selectData=[],this.state={isSelect:!1}}onGridMounted(t){this.gridController=t.ctrl}onSelectionChange(t){this.state.isSelect=t.data.length>0}onDataRemove(){this.gridController.remove(),this.parent.state.contentCtrlData=this.gridController.state.items,this.parent.setFormDataValue()}onDataChange(t){this.parent.state.contentCtrlData=t,this.parent.setFormDataValue()}async initData(){this.gridController.load()}async onDataInsert(){await this.gridController.newRow(),this.parent.state.contentCtrlData=this.gridController.state.items,this.parent.setFormDataValue()}async onInit(){const{model:t}=this.parent,{contentControl:a}=t;if(!a)throw new e("表单多数据部件未配置嵌入部件");E(a,{enableRowEdit:!0,enableRowNew:!0}),this.controlModel=a;const s=await Ce(this.controlModel);s&&(this.provider=s)}async validate(){const{rows:t}=this.gridController.state;return-1===(await Promise.all(t.map((t=>this.gridController.validate(t))))).findIndex((t=>!t))}}),yi=t("FormMDCtrlListController",class extends fi{constructor(){super(...arguments),this.selectData=[],this.state={isSelect:!1}}onListMounted(t){this.listController=t.ctrl}onSelectionChange(t){this.state.isSelect=t.data.length>0}onDataRemove(){this.listController.remove(),this.parent.state.contentCtrlData=this.listController.state.items,this.parent.setFormDataValue()}onDataChange(t){this.parent.state.contentCtrlData=t,this.parent.setFormDataValue()}async initData(){this.listController.load()}async onDataInsert(){}}),Ci=t("FormMDCtrlItemController",class extends Ii{constructor(t,e,a,s,i){super(t,e,a,s),this.state.data=i,this.state.isSimple=!0}async onInit(){await this.initDetailControllers(this.model.deformDetails)}}),Ai=t("FormMDCtrlRepeaterFormOneController",class extends gi{constructor(){super(...arguments),this.formDetail=[],this.state={isInit:!1}}get data(){return this.parent.state.contentCtrlData}async initFormMDCtrlItemControllers(t,e=this.parent.form,a={},s=void 0){const i=a,n=new Ci(this.model,this.parent.form.context,this.parent.form.params,this.formCtx,i);return await n.onInit(),n.evt.on("onFormDataChange",(t=>{t.data.length>0&&this.onDataItemChange(t.data[0])})),n.state.isLoaded=!0,await Promise.all(t.map((async t=>{const i=await Ne(t);if(!i)return;e.providers[t.id]=i;const o=await i.createController(t,n,s);this.formDetail||(this.formDetail=[]),this.formDetail.push({name:t.id,detailType:t.detailType,c:o});const r=Rt(t);r.length&&await this.initFormMDCtrlItemControllers(r,n,a,o)}))),a}useFormMdCtrlCtx(){}async initData(){super.initData(),await this.initFormMDCtrlItemControllers(this.model.deformDetails,this.parent.form,this.data),this.state.isInit=!0}onDataItemChange(t){this.parent.state.contentCtrlData=t,this.parent.setFormDataValue()}async validate(){const t=[];this.formDetail.forEach((e=>{if("FORMITEM"===e.detailType){const a=e.c;t.push(a.validate())}}));return-1===(await Promise.all(t)).findIndex((t=>!t))}}),Pi=t("FormMDCtrlRepeaterFormController",class extends gi{constructor(){super(...arguments),this.formDetails=[],this.state={isInit:!1}}async initFormMDCtrlItemControllers(t,e,a=this.parent.form,s={},i=void 0){const n=s,o=new Ci(this.model,this.parent.form.context,this.parent.form.params,this.formCtx,n);return await o.onInit(),o.evt.on("onFormDataChange",(t=>{t.data.length>0&&this.onDataItemChange(t.data[0],e)})),o.state.isLoaded=!0,await Promise.all(t.map((async t=>{const n=await Ne(t);if(!n)return;a.providers[t.id]=n;const r=await n.createController(t,o,i);this.formDetails[e]||(this.formDetails[e]=[]),this.formDetails[e].push({name:t.id,detailType:t.detailType,c:r});const c=Rt(t);c.length&&await this.initFormMDCtrlItemControllers(c,e,o,s,r)}))),s}async onDataInsert(){const t=await this.initFormMDCtrlItemControllers(this.model.deformDetails,this.data.length);super.onDataInsert(t)}onDataRemove(t){t<0||(super.onDataRemove(t),this.formDetails.splice(t,1))}useFormMdCtrlCtx(){}async initData(){super.initData(),await Promise.all(this.data.map((async(t,e)=>{await this.initFormMDCtrlItemControllers(this.model.deformDetails,e,this.parent.form,t)}))),this.state.isInit=!0}async validate(){const t=[];this.formDetails.forEach((e=>{e.forEach((e=>{if("FORMITEM"===e.detailType){const a=e.c;t.push(a.validate())}}))}));return-1===(await Promise.all(t)).findIndex((t=>!t))}}),bi=t("FormMDCtrlRepeaterGridController",class extends gi{constructor(){super(...arguments),this.columns=[],this.editorMap={}}async onInit(){this.initColumns(this.model.deformDetails||[])}initColumns(t){t.forEach((async t=>{if("FORMITEM"===t.detailType){const{editor:e}=t,a=await be(e);if(a){const s=await a.createController(e,{unitName:e.unitName,valueFormat:e.valueFormat,context:this.parent.form.context,params:this.parent.form.params});this.editorMap[t.codeName]={provider:a,controller:s}}this.columns.push({codeName:t.codeName,caption:t.caption})}const e=Rt(t);e.length&&this.initColumns(e)}))}rowDataChange(t,e,a){const s=this.data[a];Object.prototype.hasOwnProperty.call(s,e)&&!hs(s[e],t)||(s[e]=t,this.onDataItemChange(s,a))}}),Ti=t("FormMDCtrlState",class extends ci{constructor(){super(...arguments),this.contentCtrlData=[]}}),xi=(t("FormMDCtrlController",class extends li{createState(){var t;return new Ti(null==(t=this.parent)?void 0:t.state)}async onInit(){switch(await super.onInit(),this.model.contentType){case"FORM":this.mdCtrlContentController=new vi(this);break;case"GRID":this.mdCtrlContentController=new Di(this);break;case"LIST":this.mdCtrlContentController=new yi(this);break;case"DATAVIEW":this.mdCtrlContentController=new Ei(this);break;case"REPEATER":"DEFAULT"===this.model.detailStyle&&(this.mdCtrlContentController=new Pi(this)),"STYLE3"===this.model.detailStyle&&(this.mdCtrlContentController=new Ai(this)),"STYLE2"===this.model.detailStyle&&(this.mdCtrlContentController=new bi(this))}this.mdCtrlContentController&&await this.mdCtrlContentController.onInit()}setFormDataValue(){const t=this.model.appDEFieldId||this.model.fieldName||this.model.id;t&&this.form.setDataValue(t,this.state.contentCtrlData)}async loadData(){await this.mdCtrlContentController.initData()}async validate(){return this.mdCtrlContentController.validate()}setDefaultValue(){}}),t("FormPageState",class extends ui{})),Ni=(t("FormPageController",class extends pi{createState(){var t;return new xi(null==(t=this.parent)?void 0:t.state)}}),t("FormRawItemState",class extends ci{})),Li=(t("FormRawItemController",class extends li{createState(){var t;return new Ni(null==(t=this.parent)?void 0:t.state)}}),t("FormTabPageState",class extends ci{})),Ri=(t("FormTabPageController",class extends li{createState(){var t;return new Li(null==(t=this.parent)?void 0:t.state)}}),t("FormTabPanelState",class extends ci{})),Vi=(t("FormTabPanelController",class extends li{createState(){var t;return new Ri(null==(t=this.parent)?void 0:t.state)}}),t("GridColumnController",class{constructor(t,e){var a;this.isAdaptiveColumn=!1,this.isCustomCode=!1,this.model=t,this.grid=e,this.isAdaptiveColumn="STAR"===t.widthUnit,this.isAdaptiveColumn&&(this.grid.hasAdaptiveColumn=!0),(null==(a=this.deGridDataItem)?void 0:a.customCode)&&(this.isCustomCode=!0)}get context(){return this.grid.context}get params(){return this.grid.params}get enableRowEdit(){return!(!this.grid.model.enableRowEdit||!this.model.enableRowEdit)}get deGridDataItem(){var t;return null==(t=this.grid.model.degridDataItems)?void 0:t.find((t=>t.id===this.model.id))}async init(){await this.onInit()}async onInit(){}getCustomHtml(t){var e;if(null==(e=this.deGridDataItem)?void 0:e.scriptCode)return jt.execScriptFn({data:t.data},this.deGridDataItem.scriptCode,{singleRowReturn:!0,isAsync:!1})}})),Oi=t("GridRowState",class{constructor(t,e){this.errors={},this.uaColStates={},this.editColStates={},this.showRowEdit=!1,this.modified=!1,this.processing=!1,this.data=t,Object.keys(this.data).forEach((t=>{void 0===this.errors[t]&&(this.errors[t]=null)})),Object.values(e.uaColumns).forEach((t=>{t.initActionStates(this)})),Object.values(e.editColumns).forEach((t=>{this.editColStates[t.fieldName]={disabled:!1,readonly:!1,editable:"all"===ibiz.config.grid.editShowMode,required:!1}}))}}),Mi=t("GridService",class extends Ua{initUIDataMap(){var t;super.initUIDataMap(),null==(t=this.model.degridDataItems)||t.forEach((t=>{const e=t.id.toLowerCase(),a=t.appDEFieldId;let s;if(a){const t=a.toLowerCase();s=new qa(e,t,{isOriginField:!0})}else s=new qa(e,e);this.dataUIMap.set(e,s)}))}async updateGridEditItem(t,e,a={}){let s=await this.entityService.exec(t,e,a);return s=this.handleResponse(s),s}}),Si=(t("GridController",class extends Is{constructor(){super(...arguments),this.hasAdaptiveColumn=!1,this.isMultistageHeader=!1,this.columns={},this.fieldColumns={},this.uaColumns={},this.editColumns={},this.providers={},this.aggTitle="合计"}get groupCodeListItems(){var t;return null==(t=this.groupFieldColumn)?void 0:t.codeListItems}get enableAgg(){return"NONE"!==this.model.aggMode}get allowRowEdit(){return!!this.model.enableRowEdit&&this.state.rowEditOpen}initState(){super.initState(),this.state.rows=[],this.state.noSort=!0===this.model.noSort,this.state.size=this.model.pagingSize||20,this.state.singleSelect=!0===this.model.singleSelect,this.state.columnStates=[],this.state.aggResult={},this.state.rowEditOpen=!1}async onCreated(){await super.onCreated(),this.service=new Mi(this.model),await this.service.init(this.context),await this.initGridColumns(),this.dataChangeNotify=m(this.dataChangeNotify.bind(this),((t,e)=>[t[0],Array.from(new Set([...t[1],...e[1]]))]),200),await this.initGroup()}async initGroup(){if(!this.model.enableGroup)return;const{groupAppDEFieldId:t,groupCodeListId:e,groupMode:s}=this.model;if(this.groupFieldColumn=Object.values(this.fieldColumns).find((e=>e.model.appDEFieldId===t)),!this.groupFieldColumn)throw new a(this.model,"没有配置分组属性的属性列");const i=this.groupFieldColumn.model.id;if(!this.groupFieldColumn.model.appCodeListId)throw new a(this.groupFieldColumn.model,"分组属性的属性列".concat(i,"没有配置代码表"));const n=this.state.columnStates.findIndex((t=>t.key===this.groupFieldColumn.model.codeName));if(-1!==n&&0!==n){if(this.isMultistageHeader)throw new a(this.model,"请将分组属性列".concat(i,"配置为第一列"));const t=this.state.columnStates.splice(n,1);this.state.columnStates.unshift(...t)}if("CODELIST"===s){if(!e)throw new a(this.model,"代码表分组模式需要配置代码表");if(this.groupFieldColumn.model.appCodeListId!==e)throw new a(this.model,"分组代码表与属性列".concat(i,"的代码表不一致"))}}async afterLoad(t,e){return await super.afterLoad(t,e),await Promise.allSettled(Object.values(this.fieldColumns).map((async t=>{await t.loadCodeList()}))),this.state.rows=e.map((t=>{const e=new Oi(t,this);return this.gridStateNotify(e,"LOAD"),e})),this.state.rows.forEach((t=>{Object.values(t.uaColStates).forEach((e=>{e.update(t.data.getOrigin(),this.model.appDataEntityId)}))})),this.calcGroupData(e),this.calcAggResult(e),e}calcGroupData(t){const{enableGroup:e,groupMode:a}=this.model;if(e){const e=new Map,s="CODELIST"===a,i=this.groupFieldColumn.model.id;s&&this.groupCodeListItems.forEach((t=>{e.set(t.value,[])})),t.forEach((t=>{const a=t[i];s||e.has(a)||e.set(a,[]),e.has(a)&&e.get(a).push(t)})),this.state.groups=[],e.forEach(((t,e)=>{const a=this.groupCodeListItems.find((t=>t.value===e));this.state.groups.push({caption:(null==a?void 0:a.text)||"".concat(e),children:t})}))}}async loadRemoteAgg(){const{aggMode:t,aggAppDataEntityId:e,aggAppDEDataSetId:s}=this.model;if("ALL"!==t)return;if(!s||!e)throw new a(this.model,"缺少配置聚合实体或聚合数据集");const i=await this.getFetchParams(),n=ibiz.hub.getApp(this.context.srfappid),o=await n.deService.exec(e,s,this.context,void 0,i);o.data.length&&([this.state.remoteAggResult]=o.data)}calcAggResult(t){Object.values(this.fieldColumns).forEach((e=>{const a=e.calcFieldAgg(t);a&&(this.state.aggResult[e.model.id]=a)}))}afterRemove(t){super.afterRemove(t);const e=this.state.rows.findIndex((e=>e.data.srfkey===t.srfkey));this.state.rows.splice(e,1),this.state.groups.forEach((e=>{if(e.children.length){const a=e.children.findIndex((e=>e.srfkey===t.srfkey));-1!==a&&e.children.splice(a,1)}}))}async newRow(){const{enableRowEdit:t,enableRowNew:a}=this.model;if(!t||!a||"row"!==ibiz.config.grid.editShowMode)return void ibiz.log.error("不支持新建行");if(this.state.rows.find((t=>t.showRowEdit)))throw new e("请先完成当前行编辑中的行的操作");const s=await this.service.getDraft(this.context,this.params);this.state.items.unshift(s.data);const i=new Oi(s.data,this);this.state.rows.unshift(i),this.gridStateNotify(i,"DRAFT"),this.switchRowEdit(this.state.rows[0],!0)}async save(t){if(this.state.isSimple)return;const a=this.state.rows.find((e=>e.data.srfkey===t.srfkey));if(!a)throw new e("行数据不存在");if(!a.modified)return void ibiz.log.debug("值没有发生改变");if(a.processing)return void await w(500,this.save.bind(this),[t]);if(!await this.validate(a))throw new e("行数据校验不通过,保存取消");let s;await this.startLoading();const i=0===t.srfuf,n=Dt(this.model.appDataEntityId),o=this.context.clone();o[n]=t.srfkey;try{s=i?await this.service.create(o,t):await this.service.update(o,t)}finally{await this.endLoading()}const r=this.state.items.findIndex((e=>e.srfkey===t.srfkey));this.state.items.splice(r,1,s.data),a.data=s.data,a.modified=!1,ibiz.message.success("".concat(s.data.srfmajortext||"","保存成功")),this.gridStateNotify(a,"SAVE"),await this.evt.emit("onSaveSuccess",void 0)}async saveAll(){const t=this.state.rows.filter((t=>t.modified)).map((t=>t.data));t.length&&Promise.allSettled(t.map((t=>this.save(t))))}async initColumnsController(t){var e;const a=await Ve(t);if(!a)return;this.providers[t.codeName]=a;const s=await a.createController(t,this);this.columns[t.codeName]=s,"GROUPGRIDCOLUMN"!==t.columnType&&this.state.columnStates.push({key:t.codeName,caption:t.caption,hidden:!!t.hideDefault}),"DEFGRIDCOLUMN"===t.columnType?(this.fieldColumns[t.codeName]=s,t.enableRowEdit&&(this.editColumns[t.codeName]=s)):"UAGRIDCOLUMN"===t.columnType?this.uaColumns[t.codeName]=s:"GROUPGRIDCOLUMN"===t.columnType&&(this.isMultistageHeader=!0,await Promise.all((null==(e=t.degridColumns)?void 0:e.map((async t=>{await this.initColumnsController(t)})))||[]))}async initGridColumns(){this.model.degridColumns&&await Promise.all(this.model.degridColumns.map((async t=>this.initColumnsController(t))))}async setRowValue(t,e,a){if(!Object.prototype.hasOwnProperty.call(t.data,e)||hs(t.data[e],a)){t.data[e]=a,t.modified=!0,t.processing=!0;try{await this.dataChangeNotify(t,[e]),await this.evt.emit("onGridDataChange",{data:this.state.rows.map((t=>t.data))})}finally{t.processing=!1}}}async dataChangeNotify(t,a){const s=await Promise.allSettled(Object.values(this.editColumns).map((async e=>e.dataChangeNotify(t,a))));if(s.find((t=>"rejected"===t.status)))throw ibiz.log.error("dataChangeNotify报错",s),new e("数据变更后有错误")}gridStateNotify(t,e){Object.values(this.editColumns).forEach((a=>{a.gridStateNotify(t,e)}))}async validate(t){return-1===(await Promise.all(Object.values(this.editColumns).map((e=>e.validate(t))))).findIndex((t=>!t))}async toggleRowEdit(){if(!this.model.enableRowNew)throw new e("当前表格不支持行编辑,无法切换开启行编辑");this.state.rowEditOpen=!this.state.rowEditOpen}async switchRowEdit(t,a,s=!0){if(!this.allowRowEdit)return;const i=void 0===a?!t.showRowEdit:a;if(t.showRowEdit!==i){if(!1===i)if(s)await this.save(t.data);else if(0===t.data.srfuf)return t.showRowEdit=!1,this.evt.emit("onRowEditChange",{row:t}),this.remove({data:[t.data],silent:!0});if(!0===i){if(this.state.rows.find((t=>t.showRowEdit)))throw new e("同时只能有一行开启行编辑")}t.showRowEdit=i,Object.values(this.editColumns).forEach((e=>{t.editColStates[e.fieldName].editable=i})),this.evt.emit("onRowEditChange",{row:t})}}setSort(t,e){if(t&&e)super.setSort(t,e);else{const{minorSortAppDEFieldId:t,minorSortDir:e}=this.model;this.state.sortQuery=t&&e?"".concat(t.toLowerCase(),",").concat(e.toLowerCase()):""}}async updateGridEditItem(t,a){var s;const i=null==(s=this.model.degridEditItemUpdates)?void 0:s.find((t=>t.id===a));if(!i)throw new e("没找到".concat(a,"编辑列更新"));const{appDEMethodId:n,degeiupdateDetails:o}=i,r=o.map((t=>t.id)),c={...this.params,...t.data.getOrigin()},l=(await this.service.updateGridEditItem(n,this.context,c)).data;l&&(null==r?void 0:r.length)&&await Promise.all(r.map((e=>this.setRowValue(t,e,l[e]))))}async loadData(t){const{context:e}=this.handlerAbilityParams(t),a=await this.getFetchParams(null==t?void 0:t.params);let s;await this.startLoading();try{s=await this.service.fetch(e,a)}finally{await this.endLoading()}return s.data}async exportData(t){const a=this.fieldColumns,s=Object.keys(a).map((t=>a[t].model.id)),i=Object.keys(a).map((t=>a[t].model.caption)),n=(o=s,(await(async()=>{var s;const i=null==(s=t.params)?void 0:s.type;let n=[];if("activatedPage"===i&&(n=this.state.rows.map((t=>t.data))),"maxRowCount"===i||"customPage"===i){const{size:e}=this.state,{startPage:a,endPage:s}=t.params,o="customPage"===i?{page:0,offset:(a-1)*e,size:(s-a+1)*e}:{size:1e3,page:0};n=await this.loadData({params:o})}if("selectedRows"===i&&(n=this.getData()),0===n.length)throw new e("无导出数据");return(t=>{const e=new Map;Object.keys(a).forEach((t=>{a[t].codeList&&e.set(t,a[t].codeListItems)}));const s=B(t.map((t=>t.getOrigin())));return s.forEach((t=>{Object.keys(t).forEach((a=>{var s;e.get(a)&&(t[a]=(null==(s=e.get(a).find((e=>e.value===t[a])))?void 0:s.text)||t[a])}))})),s})(n)})()).map((t=>o.map((e=>t[e])))));var o;if(!ibiz.util.getExportExcel)throw new e("ibiz.util.getExportExcel不存在");const r=await ibiz.util.getExportExcel();if(!r)throw new e("导出模块加载错误");r.exportJsonToExcel({header:i,data:n,filename:this.model.logicName,autoWidth:!0})}}),t("GridFieldColumnController",class extends Vi{constructor(){super(...arguments),this.codeList=void 0}get isLinkColumn(){return!!this.model.enableLinkView&&!!this.model.linkAppViewId}get hasAction(){return!!this.model.deuiactionId}clickable(t){const e=t.data[this.model.codeName];return(this.isLinkColumn||this.hasAction)&&e}handlePublicParams(t,e,a){const{userParam:s}=this.model;if(!s)return{context:e,params:a};const{navigateContexts:i,navigateParams:n}=ft(s);let o={};i&&t&&(o=lt(i,e,a,t));const r=Object.assign(e.clone(),o);let c={};n&&t&&(c=lt(n,e,a,t));return{context:r,params:{...a,...c}}}async openLinkView(t,e){if(!t.data[this.model.codeName])return;const a=this.model.linkValueItem||"srfkey",i=t.data[a];if(null==i)throw new s(this.model,"未在行数据中取到 ".concat(a," 的值"));const{linkAppViewId:n}=this.model;if(!n)return;const o=Qt(t.data),r=Object.assign(this.context.clone(),{srfkey:i,...o}),c=B(this.params),{context:l,params:d}=this.handlePublicParams(t.data,r,c),h=await ibiz.commands.execute(ce.TAG,n,l,d,{event:e});(null==h?void 0:h.ok)&&this.grid.load()}async triggerAction(t,e){}async loadCodeList(){const t=this.model.appCodeListId;if(!t)return;const e=ibiz.hub.getApp(this.context.srfappid);this.codeList||(this.codeList=e.codeList.getCodeList(t));const a=await e.codeList.get(t,this.context,this.params);return this.codeListItems=a,a}calcFieldAgg(t){const{aggField:e,aggMode:a,aggValueFormat:i}=this.model;if("NONE"===a)return;const n=e||this.model.id;let o;if("PAGE"!==this.grid.model.aggMode)throw"ALL"===this.grid.model.aggMode?new s(this.model,"远程聚合暂未支持"):new s(this.grid.model,"暂未支持聚合模式".concat(this.grid.model.aggMode));switch(a){case"SUM":o=t.map((t=>t[n])).reduce(((t,e)=>t+e),0);break;case"AVG":o=t.map((t=>t[n])).reduce(((t,e)=>t+e),0)/t.length;break;case"MAX":o=Math.max(...t.map((t=>t[n])));break;case"MIN":o=Math.min(...t.map((t=>t[n])));break;default:throw new s(this.model,"暂未支持属性列聚合模式".concat(a))}if(!i)return"".concat(o);throw new s(this.model,"暂未支持".concat(i,"的聚合值格式化"))}})),_i=(t("GridUAColumnController",class extends Vi{initActionStates(t){var e;const{deuiactionGroup:s}=this.model;if(!s)throw new a(this.model,"操作列没有配置界面行为组");if(!(null==(e=s.uiactionGroupDetails)?void 0:e.length))return void ibiz.log.debug("操作列界面行为组没有配置界面行为");const i=new cs;s.uiactionGroupDetails.forEach((t=>{const e=t.uiactionId;if(e){const a=new rs(t.id,this.grid.context.srfappid,e);i.addState(t.id,a)}})),t.uaColStates[this.model.codeName]=i}async onActionClick(t,e,a){const s=t.uiactionId;await Ks.execAndResolved(s,{context:this.context,params:this.params,data:[e.data],view:this.grid.view,event:a})}}),t("GridFieldEditColumnController",class extends Si{constructor(){super(...arguments),this.rules=[]}get unitName(){return this.editItem.unitName}get valueFormat(){return this.model.valueFormat}get valueItemName(){if(this.editItem.editor)return this.editItem.editor.valueItemName}get fieldName(){return this.model.dataItemName}async onInit(){await super.onInit();const t=Lt(this.grid.model,this.model.codeName);t&&(this.editItem=t,this.editItem.editor&&"HIDDEN"!==this.editItem.editor.editorType&&(this.editorProvider=await be(this.editItem.editor),this.editorProvider&&(this.editor=await this.editorProvider.createController(this.editItem.editor,this),await this.initRules())))}async initRules(){const t=ne(this.grid.model.degridEditItemVRs||[],this.fieldName);t&&(this.rules=ps(t,this.fieldName,this.valueItemName),this.validator=new $({[this.fieldName]:this.rules}))}async setRowValue(t,e,a){a=a||this.fieldName,await this.grid.setRowValue(t,a,e)}async dataChangeNotify(t,a){this.calcColumnDisabled(t);const s=t.editColStates[this.fieldName].required;this.calcColumnRequired(t);if(s!==t.editColStates[this.fieldName].required||a.includes(this.fieldName)||a.includes(this.valueItemName)){if(!await this.validate(t))throw new e("".concat(this.editItem.codeName,"校验报错,").concat(t.errors[this.fieldName]))}a.includes(this.fieldName)&&this.editItem.degridEditItemUpdateId&&await this.grid.updateGridEditItem(t,this.editItem.degridEditItemUpdateId)}gridStateNotify(t,e){this.calcColumnDisabled(t),this.calcColumnReadonly(t),this.calcColumnRequired(t)}calcColumnDisabled(t){let e=this.calcEnableCond(t);if(e&&this.grid.scheduler){const a=this.grid.scheduler.triggerItemEnable(this.fieldName,{data:[t.data]});void 0!==a&&(e=a)}t.editColStates[this.fieldName].disabled=!e}calcColumnRequired(t){let e=!1!==this.editItem.allowEmpty;if(e&&this.grid.scheduler){const a=this.grid.scheduler.triggerItemBlank(this.fieldName,{data:[t.data]});void 0!==a&&(e=a)}t.editColStates[this.fieldName].required=!e}calcColumnReadonly(t){var e;const a=!!(null==(e=this.editItem.editor)?void 0:e.readOnly);t.editColStates[this.fieldName].readonly=a}calcEnableCond(t){const{enableCond:e}=this.editItem,a=0===t.data.srfuf;switch(e){case 0:return!1;case 1:return a;case 2:return!a;default:return!0}}async validate(t){const e=this.fieldName;if("cell"!==ibiz.config.grid.editShowMode&&t.editColStates[e].required&&P(t.data[e]))return t.errors[e]="请填写".concat(this.model.caption||""),!1;if(this.rules.length&&this.validator)try{await this.validator.validate(t.data)}catch(a){const{errors:s}=a;return t.errors[e]=s[0].message,!1}return t.errors[e]=null,!0}}),t("GridGroupColumnController",class extends Vi{}),t("ListService",class extends Ua{initUIDataMap(){var t;super.initUIDataMap(),null==(t=this.model.delistDataItems)||t.forEach((t=>{const e=t.id.toLowerCase(),a=t.appDEFieldId;let s;if(a){const t=a.toLowerCase();s=new qa(e,t,{isOriginField:!0})}else s=new qa(e,e);this.dataUIMap.set(e,s)}))}})),Fi=(t("ListController",class extends Is{initState(){super.initState(),this.state.noSort=!0===this.model.noSort}async onCreated(){await super.onCreated(),this.service=new _i(this.model),await this.service.init(this.context)}setSort(t,e){if(t&&e)super.setSort(t,e);else{const{minorSortAppDEFieldId:t,minorSortDir:e}=this.model;this.state.sortQuery=t&&e?"".concat(t.toLowerCase(),",").concat(e.toLowerCase()):""}}get batchToolbarController(){return this.view.getController("".concat(this.model.name,"_batchtoolbar"))}get quickToolbarController(){return this.view.getController("".concat(this.model.name,"_quicktoolbar"))}setSelection(t){var e,a;super.setSelection(t);const s=null==t?void 0:t[0];null==(e=this.batchToolbarController)||e.calcButtonState(s,this.model.appDataEntityId),null==(a=this.quickToolbarController)||a.calcButtonState(s,this.model.appDataEntityId)}async loadMore(){this.state.total>this.state.items.length&&await this.load({isLoadMore:!0})}async afterLoad(t,e){return await this.handleDataGroup(),e}setData(t){this.state.items=t}getAllData(){return this.state.items}async handleDataGroup(){const{enableGroup:t,groupMode:e}=this.model;t&&e&&("AUTO"===e?this.handleAutoGroup():"CODELIST"===e&&await this.handleCodeListGroup())}handleAutoGroup(){const{groupAppDEFieldId:t}=this.model;if(t){const{items:e}=this.state,a=new Map;e.forEach((e=>{const s=a.get(e[t])||[];s.push(e),a.set(e[t],s)}));const s=[];a.forEach(((t,e)=>{s.push({caption:e,children:[...t]})})),this.state.groups=s}}async handleCodeListGroup(){const{groupAppDEFieldId:t,groupCodeListId:e}=this.model;if(t&&e){const{items:a}=this.state,s=[],i=ibiz.hub.getApp(this.context.srfappid),n=await i.codeList.get(e,this.context,this.params),o=[];n.forEach((e=>{const i=a.filter((a=>a[t]===e.value));s.push({caption:e.text,children:[...i]}),o.push(e.value)}));const r=a.filter((e=>-1===o.indexOf(e[t])));r.length>0&&s.push({caption:"其他",children:[...r]}),this.state.groups=s}}}),t("PanelController",class extends ws{constructor(){super(...arguments),this.panelItems={},this.providers={}}get data(){return this.state.data}initState(){super.initState(),this.state.data={}}setInputData(t){this.inputData=t}async onCreated(){await super.onCreated(),await this.initPanelItemControllers()}async onMounted(){this.load()}async initPanelItemControllers(t=this.model.rootPanelItems,e=this,a=void 0){t&&await Promise.all(t.map((async t=>{var s,i;const n=await Se(t);if(!n)return;e.providers[t.id]=n;const o=await n.createController(t,e,a);e.panelItems[t.id]=o,(null==(s=t.panelItems)?void 0:s.length)&&await this.initPanelItemControllers(t.panelItems,e,o),(null==(i=t.panelTabPages)?void 0:i.length)&&await this.initPanelItemControllers(t.panelTabPages,e,o)})))}async load(){const t=await this.prepareData();if(!t)throw new e("未获取到面板数据");const a=this.convertData(t);this.state.data=a,this.panelStateNotify("LOAD")}async prepareData(){let t;if(1===this.model.dataMode)this.inputData&&(t=this.inputData);else t=this.inputData||{};return t}convertData(t){return t}dataChangeNotify(t){Object.values(this.panelItems).forEach((e=>{e.dataChangeNotify(t)}))}panelStateNotify(t){Object.values(this.panelItems).forEach((e=>{e.panelStateNotify(t)}))}async setDataValue(t,e){Object.prototype.hasOwnProperty.call(this.state.data,t)&&this.state.data[t]===e||(this.state.data[t]=e,this.dataChangeNotify([t]))}})),Wi=(t("ViewLayoutPanelController",class extends Fi{async onCreated(){this.preprocessModel(),await super.onCreated()}registerToCtx(){}preprocessModel(t){var e;const a=t=>{const e=[];return t.forEach((t=>{"CONTAINER"===t.itemType&&"PANELPART"===t.predefinedType?e.push(...t.panelItems||[]):e.push(t)})),e.forEach((t=>{"CONTAINER"===t.itemType&&this.preprocessModel(t)})),e};t?t.panelItems=a(t.panelItems||[]):(null==(e=this.model.rootPanelItems)?void 0:e.length)&&(this.model.rootPanelItems=a(this.model.rootPanelItems||[]))}}),t("PanelItemState",class{constructor(t){this.parent=t,this.disabled=!1,this.layout={width:"",height:"",extraStyle:{},extraClass:[],contentStyle:{}},this.class={container:[],containerDyna:[],label:[],labelDyna:[]},this.required=!1;let e,a=!0;Object.defineProperty(this,"visible",{enumerable:!0,configurable:!0,get(){var t;return!1!==(null==(t=this.parent)?void 0:t.visible)&&a},set:t=>(a=t,!0)}),Object.defineProperty(this,"keepAlive",{enumerable:!0,configurable:!0,get(){return void 0!==e?e:!!this.parent&&this.parent.keepAlive},set:t=>(e=t,!0)})}})),ki=(t("PanelItemController",class{constructor(t,e,a){this.model=t,this.panel=e,this.parent=a,this.state=this.createState()}get dataParent(){return this.findDataParent(this)}get data(){return this.dataParent.data}get containerClass(){return[...this.state.class.container,...this.state.class.containerDyna]}get labelClass(){return[...this.state.class.label,...this.state.class.labelDyna]}async init(){await this.onInit()}async onInit(){const{layoutPos:t,sysCss:e,labelSysCss:a}=this.model;if(t){const{width:e,height:a}=Et(t);this.state.layout.width="".concat(e),this.state.layout.height="".concat(a)}(null==e?void 0:e.cssName)&&this.state.class.container.push(e.cssName),(null==a?void 0:a.cssName)&&this.state.class.label.push(a.cssName)}createState(){var t;return new Wi(null==(t=this.parent)?void 0:t.state)}dataChangeNotify(t){this.calcDynamicLogic(t),this.calcDynaClass(this.data)}panelStateNotify(t){this.calcDynamicLogic([],!0),this.calcDynaClass(this.data)}calcDynamicLogic(t,e=!1){var a;this.parent&&!this.parent.state.visible||null==(a=this.model.panelItemGroupLogics)||a.forEach((a=>{const s=a.relatedItemNames||[];if(e||f(s,t))try{const t=Ht(this.panel.data,a);switch(a.logicCat){case"ITEMBLANK":this.state.required=!t;break;case"ITEMENABLE":this.state.disabled=!t;break;case"PANELVISIBLE":this.state.visible=t}}catch(t){ibiz.log.error(t)}}))}findDataParent(t){const{parent:e}=t;return e?e.isDataContainer?e:this.findDataParent(e):t.panel}calcDynaClass(t){if(this.model.dynaClass){const e=wt(this.model.dynaClass,t);e.length&&(this.state.class.containerDyna=e)}if(this.model.labelDynaClass){const e=wt(this.model.labelDynaClass,t);e.length&&(this.state.class.labelDyna=e)}}}),t("PickupViewPanelController",class extends ws{async onCreated(){await super.onCreated(),this.mountCounter.enroll(this.model.embeddedAppDEViewId),this.initNavParam()}initNavParam(){const{navigateContexts:t,navigateParams:e}=this.model,a=this.context.clone(),s={...this.params};t&&Object.assign(a,lt(t,this.context,this.params)),e&&Object.assign(s,lt(e,this.context,this.params)),this.state.context=a,this.state.params=s}setEmbedView(t){this.embedView=t,this.embedView.state.isMounted?this.mountCounter.attend(this.model.embeddedAppDEViewId):this.embedView.evt.on("onMounted",(()=>{this.mountCounter.attend(this.model.embeddedAppDEViewId)})),this.embedView.evt.on("onSelectionChange",(t=>{this.evt.emit("onSelectionChange",t)})),this.embedView.evt.on("onDataActive",(t=>{this.evt.emit("onDataActive",{data:t.data})}))}async getSelectedData(){return await this.embedView.call("GetData")}async getAllData(){return await this.embedView.call("GetAllData")}}),t("SearchBarController",class extends ws{constructor(){super(...arguments),this.placeHolder=""}initState(){super.initState(),this.state.query=""}async onCreated(){var t;await super.onCreated();const e=await ibiz.hub.getAppDataEntity(this.model.appDataEntityId,this.context.srfappid);if(e){const a=null==(t=e.appDEFields)?void 0:t.find((t=>t.enableQuickSearch));(null==a?void 0:a.lnlanguageRes)&&a.lnlanguageRes.lanResTag?this.placeHolder=ibiz.i18n.t(a.lnlanguageRes.lanResTag,a.lnlanguageRes.defaultContent):(null==a?void 0:a.logicName)&&(this.placeHolder=a.logicName)}}handleInput(t){this.state.query=t}handleSearch(){this.evt.emit("onSearch",void 0)}}),t("TabExpPanelController",class extends ws{initState(){super.initState(),this.state.tabPages=[],this.state.activeName=""}async onCreated(){await super.onCreated(),this.layoutPanel=this.view.layoutPanel,this.initTabPages()}initTabPages(){const t=this.model.controls,e=[];t.forEach((t=>{e.push({caption:t.caption,tabTag:t.id,class:t.sysCss?[t.sysCss.cssName]:[]})})),this.state.tabPages=e,e.length>0&&this.initDefaultPage()}initDefaultPage(){const t=()=>{this.state.activeName=this.state.tabPages[0].tabTag,this.handleTabChange()};if(this.state.defaultTabName){const e=this.state.tabPages.find((t=>t.tabTag===this.state.defaultTabName));e?(this.state.activeName=e.tabTag,this.changeToTab()):t()}else t()}changeToTab(t=this.activeTabViewPanelModel){const e=this.getNavViewMsg(t);this.evt.emit("onNavViewChange",{navViewMsg:e})}get activeTabViewPanelModel(){const{activeName:t}=this.state;return this.model.controls.find((e=>e.id===t))}async handleTabChange(){this.activeTabViewPanelModel&&this.changeToTab()}prepareParams(t){const{navDER:e,navFilter:a,navigateContexts:s,navigateParams:i,appDataEntityId:n}=t,o={deName:Dt(n),navFilter:a,pickupDEFName:null==e?void 0:e.pickupDEFName,navContexts:s,navParams:i},r={context:this.context,params:this.params,data:{}},{resultContext:c,resultParams:l}=mt(o,r);return{context:Object.assign(this.context.clone(),c,{currentSrfNav:this.state.activeName}),params:{...this.params,...l}}}getNavViewMsg(t){const{context:e,params:a}=this.prepareParams(t);return{key:t.codeName.toLowerCase(),context:e,params:a,viewId:t.embeddedAppDEViewId}}}),t("TreeService",class extends Ua{async fetchChildNodes(t,e){const{hasQuery:a}=e;let s=[];if(t){const i=Nt(this.model,{parentId:null==t?void 0:t.nodeId,hasQuery:a});if(0===i.length)return;(await Promise.allSettled(i.map((async a=>{const s=xt(this.model,a.childDETreeNodeId);return this.fetchNodeDatasByType(s,a,t,e)})))).forEach((t=>{"fulfilled"===t.status&&t.value?s.push(...t.value):"rejected"===t.status&&ibiz.log.error(t.reason)}))}else{const t=Tt(this.model);s=await this.fetchNodeDatasByType(t,void 0,void 0,e)}return s}async fetchNodeDatasByType(t,e,a,i){const n=0===Nt(this.model,{parentId:t.id,hasQuery:i.hasQuery}).length,o={...i,leaf:n};let r=[];switch(t.treeNodeType){case"STATIC":r=[await this.getStaticNodeData(t,e,a,o)];break;case"DE":r=await this.getDENodeDatas(t,e,a,o);break;case"CODELIST":r=await this.getCodeListNodeDatas(t,e,a,o);break;default:throw new s(t,"".concat(t.treeNodeType,"节点类型未支持"))}const{expandFirstOnly:c,expanded:l,rootNode:d}=t,h=d&&!this.model.rootVisible;return n||await Promise.all(r.map((async(t,e)=>{var a;if(l&&(!c||c&&0===e)||(null==(a=i.defaultExpandedKeys)?void 0:a.length)&&i.defaultExpandedKeys.includes(t.id)||h){const e=await this.fetchChildNodes(t,i);t.children=e}}))),r}async getStaticNodeData(t,e,a,s){return new Ha(t,a,{parentValueLevel:null==e?void 0:e.parentValueLevel,leaf:!!s.leaf})}getNodeRSFilterParams(t,e,a){const{parentValueLevel:s,navigateContexts:i,navigateParams:n,parentFilter:o,parentDER1N:r}=t,c=null==r?void 0:r.pickupDEFName,l={...a.params},d={...a.context,...(null==e?void 0:e.context)||{}};let h,u,p,m={};if(e){h=e;for(let t=1;t<s;t++)h=null==h?void 0:h.parent}if(h){m=h.deData||{};const t=xt(this.model,h.nodeId);t.appDataEntityId&&(p=Dt(t.appDataEntityId)),u=h.value}const{resultContext:g,resultParams:f}=mt({deName:p,navFilter:o?"n_".concat(o,"_eq"):void 0,pickupDEFName:c,navParams:n,navContexts:i},{derValue:u,context:d,params:l,data:m});return Object.assign(d,g),Object.assign(l,f),{context:d,params:l,navContext:g,navParams:f}}async getDENodeDatas(t,e,a,s){const{appDEDataSetId:i,appDataEntityId:n}=t,{context:o,params:r,navContext:c,navParams:l}=e?this.getNodeRSFilterParams(e,a,s):{context:s.context,params:s.params,navContext:{},navParams:{}};r.size=t.maxSize||1e3,t.sortAppDEFieldId&&t.sortDir&&Object.assign(r,{sort:"".concat(t.sortAppDEFieldId.toLowerCase(),",").concat(t.sortDir.toLowerCase())});const d=await this.app.deService.exec(n,i,o,r);if(d.data.length){return d.data.map((e=>new Ka(t,a,{data:e,leaf:!!s.leaf,navContext:c,navParams:l})))}return[]}async getCodeListNodeDatas(t,e,a,s){const{context:i,params:n,navContext:o,navParams:r}=e?this.getNodeRSFilterParams(e,a,s):{context:s.context,params:s.params,navContext:{},navParams:{}},c=await this.app.codeList.get(t.codeListId,i,n);if(c.length){return c.map((e=>new Ya(t,a,{data:e,leaf:!!s.leaf,navContext:o,navParams:r})))}return[]}})),Bi=(t("TreeController",class extends Is{constructor(){super(...arguments),this.contextMenus={}}initState(){super.initState(),this.state.defaultExpandedKeys=[],this.state.size=0}async onCreated(){await super.onCreated(),this.service=new ki(this.model),await this.service.init(this.context),this.model.detreeNodes.forEach((t=>{var e,a;(null==(a=null==(e=t.decontextMenu)?void 0:e.detoolbarItems)?void 0:a.length)&&(this.contextMenus[t.decontextMenu.id]=new ei(t.decontextMenu,this.context,this.params,this.ctx))})),await Promise.all(Object.values(this.contextMenus).map((t=>t.created())))}async load(t={}){const e=!0===t.isInitialLoad,a=await this.loadNodes();return this.state.expandedKeys=this.calcExpandedKeys(a),await this.afterLoad(t,a),this.state.isLoaded=!0,await this.evt.emit("onLoadSuccess",{isInitialLoad:e}),a}async loadNodes(t){const e=await this.getFetchParams(),a=!!e.query,s=t?void 0:this.state.defaultExpandedKeys;let i;await this.startLoading();try{i=await this.service.fetchChildNodes(t,{context:this.context.clone(),params:e,hasQuery:a,defaultExpandedKeys:s})||[]}finally{await this.endLoading()}return t?t.children=i:this.state.rootNodes=i,this.state.items=[],p({children:this.state.rootNodes},(t=>{this.state.items.push(t)})),i}async onTreeNodeClick(t){if(this.state.singleSelect){const{selectedData:e}=this.state,a=e.filter((e=>e.id!==t.id));a.length===e.length?this.setSelection(this.state.singleSelect?[t]:e.concat([t])):this.setSelection(a)}1===this.state.mdctrlActiveMode&&await this.setActive(t)}async onDbTreeNodeClick(t){2===this.state.mdctrlActiveMode&&await this.setActive(t)}setActive(t){const e=this.parseTreeNodeData(t);return this.evt.emit("onActive",{...e,nodeData:t})}setSelection(t){super.setSelection(t)}getNodeModel(t){var e;return null==(e=this.model.detreeNodes)?void 0:e.find((e=>e.id===t))}async doUIAction(t,e,a){const s=this.getEventArgs(),i=this.parseTreeNodeData(e),n=await Ks.exec(t,{...s,...i,event:a});if(n.closeView)this.view.closeView();else if(n.refresh)switch(n.refreshMode){case 1:this.refreshNodeChildren(e);break;case 2:this.refreshNodeChildren(e,!0);break;case 3:this.refresh()}}parseTreeNodeData(t){return{data:[{...t,...t.deData||{}}],context:Object.assign(this.context.clone(),t.context||{}),params:{...this.params,...t.params||{}}}}calcExpandedKeys(t){let e=[];return p({children:t},(t=>{var a;(null==(a=t.children)?void 0:a.length)&&e.push(t.id)})),this.state.defaultExpandedKeys.length&&(e.push(...this.state.defaultExpandedKeys),e=Array.from(new Set(e))),e}async refreshNodeChildren(t,e=!1){const a=t.srfkey?"srfkey":"id",s=this.state.items.find((e=>e[a]===t[a]));if(!s)return void ibiz.log.error("找不到对应的树节点数据",t);if(e){const{parent:t}=s;if(!t||!this.model.rootVisible&&this.state.rootNodes.includes(t))return void this.refresh()}const i=e?s.parent:s,n=await this.loadNodes(i);this.evt.emit("onAfterRefreshParent",{parentNode:i,children:n})}}),t("WizardPanelService",class extends Ba{async initialize(t,e={},a={}){var s;const i=null==(s=this.model.initControlAction)?void 0:s.appDEMethodId;let n=await this.exec(i,t,e,a);return n=this.handleResponse(n),n}async finish(t,e={},a={}){var s;const i=null==(s=this.model.finishControlAction)?void 0:s.appDEMethodId;let n=await this.exec(i,t,e,a);return n=this.handleResponse(n),n}})),Ui=(t("WizardPanelController",class extends ws{constructor(){super(...arguments),this.tagHistory=[],this.providers={},this.firstForm=void 0,this.formControllers=new Map,this.steps=[],this.stepTags={}}initState(){super.initState()}async onCreated(){var t,e;await super.onCreated(),this.model.dewizard.dewizardForms.forEach((t=>{var e,a,s;t.firstForm&&(this.firstForm=t);const i="".concat(this.model.name,"_form_").concat(null==(e=t.formTag)?void 0:e.toLowerCase()),n=null==(s=null==(a=this.model.dewizard)?void 0:a.dewizardSteps)?void 0:s.find((e=>e.id===t.dewizardStepId)),o=null==n?void 0:n.stepTag;this.stepTags[i]=o})),null==(e=null==(t=this.model.dewizard)?void 0:t.dewizardSteps)||e.forEach((t=>{this.steps.push(t.stepTag)})),this.service=new Bi(this.model),await this.service.init(this.context);const{deeditForms:a}=this.model;a&&a.length>0&&await Promise.all(a.map((async t=>{const{formTag:e}=t.dewizardForm;if(e){const a=await Ce(t);a&&(this.providers[e]=a)}})))}get activeWizardForm(){const{activeFormTag:t}=this.state,e=this.model.dewizard.dewizardForms.find((e=>e.formTag===t));return e||ibiz.log.debug("找不到".concat(t,"的向导表单")),e}get activeFormController(){const{activeFormTag:t}=this.state,a=this.formControllers.get(t);if(!a)throw new e("找不到".concat(t,"的表单控制器"));return a}onFormMounted(t,e){const a=e.ctrl;this.formControllers.set(t,a),a.load()}onFormSaved(t){const e=t.data[0],a=Dt(this.model.appDataEntityId);!this.context[a]&&e&&e.srfkey&&(this.context[a]=e.srfkey)}async initialize(){var t;if(null==(t=this.model.initControlAction)?void 0:t.appDEMethodId){const t=await this.service.initialize(this.context,this.params),e=Dt(this.model.appDataEntityId);t.data&&t.data.srfkey&&(this.context[e]=t.data.srfkey)}this.firstForm&&(this.state.activeFormTag=this.firstForm.formTag,this.tagHistory.push(this.firstForm.formTag))}async finish(){await this.service.finish(this.context,this.params),this.evt.emit("onFinishSuccess",void 0)}async onPrevClick(){await this.activeFormController.goBack(),this.tagHistory.pop();const t=this.tagHistory[this.tagHistory.length-1];if(!t)throw new e("没有上一个表单");this.state.activeFormTag=t}async onNextClick(){const t=await this.activeFormController.save();let a;if(t.srfnextform){if(!this.model.dewizard.dewizardForms.find((e=>e.formTag===t.srfnextform)))throw new e("找不到标识为".concat(t.srfnextform,"的向导表单"));a=t.srfnextform}else{const{formTag:t}=this.activeWizardForm,s=this.model.dewizard.dewizardSteps;if(s&&t){const i=s.findIndex((e=>e.stepTag===t)),n=s[i+1];if(!n)throw new e("找不到下一个向导步骤");const o=this.model.dewizard.dewizardForms.find((t=>t.formTag===n.stepTag));o&&(a=o.formTag)}}if(!a)throw new e("找不到下一个向导表单");this.state.activeFormTag=a,this.tagHistory.push(a)}async onFinishClick(){await this.activeFormController.save(),await this.finish()}}),t("HubController",class{constructor(){this.session={}}login(t,e){return ibiz.auth.login(t,e)}logout(){return ibiz.auth.logout()}})),zi=class{constructor(){this.convert=new class{constructor(){this.appMenu=new class{parse(t){return t}}}},this.controller=new Ui,this.appMap=new Map,this.apps=new Map,this.view2appMap=new Map,this.views=new Map,this.dataEntities=new Map,this.config=new class{constructor(){this.view=new class{constructor(){this.viewConfigs=new Map}set(t,e){this.viewConfigs.set(t,e)}async get(t){if(!this.viewConfigs.has(t)){const a=await ibiz.hub.getAppView(t);if(!a)throw new e("视图[".concat(t,"]不存在"));this.set(a.id,{id:a.id,codeName:a.codeName,openMode:a.openMode,width:a.width,height:a.height,appDataEntityId:a.appDataEntityId,redirectView:a.redirectView})}return this.viewConfigs.get(t)}}}},this.defaultAppIndexViewName="Index"}calcAppViewId(t){let e="";if(-1!==t.indexOf(".")){const a=t.split(".");e=a[a.length-1]}else e=t.toLowerCase();return e}registerModelLoaderProvider(t){this.modelLoaderProvider=t}registerApp(t){this.apps.set(t.codeName,t)}registerAppView(t){this.views.set(t.codeName,t)}registerAppDataEntity(t,e=ibiz.env.appId){this.dataEntities.has(e)||this.dataEntities.set(e,new Map);this.dataEntities.get(e).set(t.id,t)}setAppView(t,e=ibiz.env.appId){const a=this.calcAppViewId(t);this.view2appMap.set(a,e)}hasAppView(t){const e=this.calcAppViewId(t);return this.view2appMap.has(e)}async getAppView(t){const a=this.calcAppViewId(t),s=this.view2appMap.get(a)||ibiz.env.appId;if(this.appMap.has(s)||await this.createApp(s),this.views.has(a))return this.views.get(a);if(this.modelLoaderProvider){const t=await this.modelLoaderProvider.getAppView(s,a);return this.registerAppView(t),t}throw new e("视图[".concat(a,"]不存在"))}async getAppDataEntity(t,a=ibiz.env.appId){if(this.dataEntities.has(a)){const e=this.dataEntities.get(a);if(e.has(t))return e.get(t)}if(this.modelLoaderProvider){let e;return e=-1!==t.indexOf(".")?await this.modelLoaderProvider.getAppDataEntity(a,t):await this.modelLoaderProvider.getAppDataEntityByCodeName(a,t),this.registerAppDataEntity(e,a),e}throw new e("未找到应用实体[".concat(t,"]"))}async createApp(t){if(this.appMap.has(t))return this.appMap.get(t);let a;if(this.apps.has(t))a=this.apps.get(t);else{if(!this.modelLoaderProvider)throw new e("未找到应用[".concat(t,"]模型"));a=await this.modelLoaderProvider.getApp(t),this.registerApp(a)}const s=new Ja(a);return this.appMap.set(t,s),await s.init(),s}async getAppAsync(t=ibiz.env.appId){return this.createApp(t)}getApp(t){let e=null;return e=t?t instanceof Object?t.id:t:ibiz.env.appId,this.appMap.get(e)}},Gi=t("EngineFactory",class{constructor(){this.viewEngines=new Map}register(t,e){this.viewEngines.set(t,e)}unRegister(t){this.viewEngines.delete(t)}getEngine(t,...e){const{engineType:a,engineCat:s}=t,i="".concat(s,"_").concat(a),n=this.viewEngines.get(i);if(n)return n(...e);ibiz.log.error("没有".concat(i,"对应的引擎"),t)}}),ji=t("ViewEngineBase",class{constructor(t){this.view=t,this.initViewState()}get toolbar(){return this.view.getController("toolbar")}get leftToolbar(){return this.view.getController("lefttoolbar")}get rightToolbar(){return this.view.getController("righttoolbar")}get footerToolbar(){return this.view.getController("footertoolbar")}get viewLayoutPanel(){return this.view.layoutPanel}async onCreated(){const{childNames:t}=this.view;t.push("captionbar","toolbar")}async onMounted(){var t,e;const{model:a,childNames:s}=this.view;ibiz.log.debug("".concat(a.id,"的子组件:").concat(s.join(";"),"都已mounted"));if(!this.calcViewHeaderVisible()){const e=null==(t=this.viewLayoutPanel)?void 0:t.panelItems.view_header;e&&(e.state.visible=!1)}if(ibiz.env.isMob){if(!this.calcViewFooterVisible()){const t=null==(e=this.viewLayoutPanel)?void 0:e.panelItems.view_footer;t&&(t.state.visible=!1)}}}async onDestroyed(){}async call(t,e){if("GetData"===t)return this.getData()}initViewState(){}getData(){return[]}calcViewHeaderVisible(){var t,e,a,s;let i=!1;const{model:n}=this.view;if(!1===n.showCaptionBar){const e=null==(t=this.viewLayoutPanel)?void 0:t.panelItems.view_captionbar;e&&(e.state.visible=!1)}else i=!0;if(ibiz.env.isMob){if(this.leftToolbar)i=!0;else{const t=null==(e=this.viewLayoutPanel)?void 0:e.panelItems.lefttoolbar;t&&(t.state.visible=!1)}if(this.rightToolbar)i=!0;else{const t=null==(a=this.viewLayoutPanel)?void 0:a.panelItems.righttoolbar;t&&(t.state.visible=!1)}}else if(this.toolbar)i=!0;else{const t=null==(s=this.viewLayoutPanel)?void 0:s.panelItems.view_toolbar;t&&(t.state.visible=!1)}return i}calcViewFooterVisible(){let t=!1;return this.footerToolbar&&(t=!0),t}async loadEntityData(){const{appDataEntityId:t}=this.view.model,{evt:a,context:s,params:i}=this.view;if(!t)throw new e("该视图没有实体,无法加载实体数据");const n=ibiz.hub.getApp(s.srfappid),o=await n.deService.exec(t,"get",s,i),{data:r}=o;r&&(this.view.state.srfactiveviewdata=r,a.emit("onDataChange",{actionType:"LOAD",data:[r]}),r.srfkey&&a.emit("onViewInfoChange",{dataInfo:r.srfmajortext||""}))}}),Xi=(t("MDViewEngine",class extends ji{get xdataControlName(){return this.view.model.xdataControlName}get searchForm(){return this.view.getController("searchform")}get searchBar(){return this.view.getController("searchbar")}get xdataControl(){return this.view.getController(this.xdataControlName)}async onCreated(){await super.onCreated();const{childNames:t}=this.view;t.push(this.xdataControlName,"searchform","searchbar")}async onMounted(){await super.onMounted();const{model:t}=this.view;this.xdataControl.evt.on("onActive",(async t=>{await this.openData(t)})),this.xdataControl.evt.on("onSelectionChange",(async t=>{var e;null==(e=this.toolbar)||e.calcButtonState(t.data[0],this.xdataControl.model.appDataEntityId)})),this.xdataControl.evt.on("onBeforeLoad",(()=>{this.xdataControl.state.searchParams=this.getSearchParams()})),this.xdataControl.evt.on("onLoadSuccess",(t=>{this.view.evt.emit("onDataChange",{...t,actionType:"LOAD"})})),this.xdataControl.evt.on("onRemoveSuccess",(t=>{this.view.evt.emit("onDataChange",{...t,actionType:"REMOVE"})})),this.xdataControl.evt.on("onSaveSuccess",(t=>{this.view.evt.emit("onDataChange",{...t,actionType:"SAVE"})}));const e=this.viewLayoutPanel.panelItems.view_searchform;if(e){const a=!!this.searchForm;e.state.keepAlive=a,e.state.visible=a&&!!t.expandSearchForm}this.searchForm&&this.searchForm.evt.on("onSearch",(()=>{this.refresh()})),this.searchBar&&this.searchBar.evt.on("onSearch",(()=>{this.refresh()})),!this.view.state.noLoadDefault&&t.loadDefault&&this.load()}async call(t,e){return"ToggleFilter"===t?(this.toggleFilter(),null):"Edit"===t||"View"===t?(await this.openData(e),null):"New"===t?(await this.newData(e),null):"Remove"===t?(await this.remove(e),null):"Import"===t?(await this.importData(),null):"Refresh"===t?(await this.refresh(),null):"ExportExcel"===t?(await this.exportData(e),null):"Copy"===t?(this.copy(e),null):"load"===t?(this.load(e),null):super.call(t,e)}getData(){return this.xdataControl.getData()}async openData(t){var e,a;const{data:s,event:i}=t,n=(t.context||this.view.context).clone(),o=t.params||this.view.params;n[((null==(e=s[0].srfdecodename)?void 0:e.toLowerCase())||Dt(this.xdataControl.model.appDataEntityId)).toLowerCase()]=s[0].srfkey;-1===await(null==(a=this.view.scheduler)?void 0:a.triggerCustom("opendata",{context:n,params:o,data:s,event:i,view:this.view}))&&ibiz.log.warn("视图[".concat(this.view.model.codeName,"],未配置编辑打开视图"))}async newData(t){var e,s,i;const{data:n,event:o,copyMode:r}=t;if(!(null==(s=null==(e=this.view.model.viewLayoutPanel)?void 0:e.appViewLogics)?void 0:s.find((t=>"newdata"===t.id))))throw new a(this.view.model,"缺少newdata的视图逻辑");const c=this.view.context.clone();r&&(c.srfcopymode=!0);if(-1===await(null==(i=this.view.scheduler)?void 0:i.triggerCustom("newdata",{context:c,params:this.view.params,data:n,event:o,view:this.view})))throw new a(this.view.model,"缺少newdata的视图逻辑")}async remove(t){await this.xdataControl.remove(t)}async load(t={}){await this.xdataControl.load({isInitialLoad:!0,...t})}async refresh(){await this.xdataControl.refresh()}getSearchParams(){const t={};if(this.searchForm){const e=this.searchForm.getData()[0],a=Object.entries(e).reduce(((t,[e,a])=>(null!=a&&""!==a&&(t[e]=a),t)),{});Object.assign(t,a)}if(this.searchBar&&this.searchBar.state.query){const e={query:this.searchBar.state.query};Object.assign(t,e)}return t}async importData(){await this.xdataControl.importData()}async exportData(t){await this.xdataControl.exportData(t)}async copy(t){this.newData(Object.assign(t,{copyMode:!0}))}calcViewHeaderVisible(){let t=super.calcViewHeaderVisible();if(this.searchBar)t=!0;else{const t=this.viewLayoutPanel.panelItems.view_searchbar;t&&(t.state.visible=!1)}return t}toggleFilter(){if(this.searchForm){const t=this.viewLayoutPanel.panelItems.view_searchform;t&&(t.state.visible=!t.state.visible)}}}),class{constructor(){this.layoutPanel=new qt,this.text=new oe}}),Yi=class{constructor(t,e){this.logic=t,this.scheduler=e,this.type=t.logicType}execute(t){throw new e("Method not implemented.")}destroy(){}},Ki=class extends Yi{constructor(){super(...arguments),this.initialized=!1}convertScriptArgs(t){return t}init(t,e,a){this.convertScriptArgs=e;const s=this.logic.scriptCode;this.scriptFn=jt.createScriptFn(t,s,a),this.initialized=!0}execute(t){const e=this.convertScriptArgs(t);return this.scriptFn.exec(e)}},Hi=class extends Yi{execute(t){const{appDEUILogicId:e,appDataEntityId:s}=this.logic;if(!e)throw new a(this.logic,"没有配置实体界面逻辑");Ys(e,s,t)}},qi=class{constructor(t){this.triggers=new Map,this.executors=new Map,this.hasViewEventTrigger=!1,this.hasControlEventTrigger=!1,this.logics=t,t.forEach((t=>{try{const e=this.createExecutor(t);this.executors.set(t.id,e);const a=this.createTrigger(t);this.triggers.set(t.id,a),a.bindExecutor(e)}catch(t){ibiz.log.error(t.message)}}))}destroy(){this.triggers.forEach((t=>t.destroy())),this.executors.forEach((t=>t.destroy()))}getExecuteParams(t){let e={};return this.defaultParamsCb&&(e=this.defaultParamsCb()),j(t,e)}createTrigger(t){switch(t.triggerType){case"VIEWEVENT":this.hasViewEventTrigger=!0;break;case"CTRLEVENT":this.hasControlEventTrigger=!0}return ibiz.scheduler.triggerFactory.createTrigger(t,this)}createExecutor(t){return ibiz.scheduler.executorFactory.createExecutor(t,this)}getMatchTriggers(t){const e=[];return this.triggers.forEach((a=>{a.match(t)&&e.push(a)})),e}triggerAndExecute(t,e={}){const a=this.getMatchTriggers(t);if(a.length>0){const t=this.getExecuteParams(e);return a.map((e=>e.execute(t)))}}triggerItemDynaLogic(t,e,a){const s={itemName:t,triggerType:e},i=this.triggerAndExecute(s,a);if(null==i?void 0:i.length)return i.pop()}triggerItemVisible(t,e){return this.triggerItemDynaLogic(t,"ITEMVISIBLE",e)}triggerItemEnable(t,e){return this.triggerItemDynaLogic(t,"ITEMENABLE",e)}triggerItemBlank(t,e){return this.triggerItemDynaLogic(t,"ITEMBLANK",e)}startTimerTrigger(){this.getMatchTriggers({triggerType:"TIMER"}).forEach((t=>t.start()))}triggerCustom(t,e){const a=this.triggers.get(t);if(!a)return-1;const s=this.getExecuteParams(e);return a.execute(s)}triggerControlEvent(t,e){const a={ctrlName:t,eventName:e.eventName,triggerType:"CTRLEVENT"};this.triggerAndExecute(a,e)}},Qi=class extends qi{constructor(t){super(t.filter((t=>"APPVIEWENGINE"!==t.triggerType)))}},$i=class extends qi{constructor(t){t.forEach((t=>{t.triggerType=t.logicTrigger})),super(t)}triggerViewEvent(t){const e={eventName:t.eventName,triggerType:"VIEWEVENT"};this.triggerAndExecute(e,t)}},Ji=class{constructor(){this.executorFactory=new class{constructor(){this.constructorMap=new Map}register(t,e){this.constructorMap.set(t,e)}createExecutor(t,e){const a=this.constructorMap.get(t.logicType);if(!a)throw new s(t,"逻辑类型 ".concat(t.logicType," 暂未支持!"));return a(t,e)}},this.triggerFactory=new class{constructor(){this.constructorMap=new Map}register(t,e){this.constructorMap.set(t,e)}createTrigger(t,e){const a=this.constructorMap.get(t.triggerType);if(!a)throw new s(t,"触发器类型 ".concat(t.triggerType," 暂未支持!"));return a(t,e)}}}createViewScheduler(t){return new $i(t)}createControlScheduler(t){return new Qi(t)}},Zi=class{constructor(t,e){this.logic=t,this.scheduler=e,this.type=t.triggerType}bindExecutor(t){this.executor=t,"SCRIPT"===this.executor.type&&this.bindScriptExecutor(t)}bindScriptExecutor(t){t.initialized||t.init([],(t=>t),{isAsync:!0,singleRowReturn:!1})}match(t){return t.triggerType===this.type}execute(t){if(this.executor)return this.executor.execute(t);throw new e("".concat(this.logic.id,"没有绑定executor"))}destroy(){this.executor=void 0}},tn=class extends Zi{},en=class extends Zi{bindExecutor(t){if(super.bindExecutor(t),"SCRIPT"!==this.executor.type)throw new e("预定义逻辑类型".concat(this.type,"的触发器类型只能是脚本"))}bindScriptExecutor(t){t.init(["context","viewparams","data","env"],(t=>{const{context:e,params:a,data:s}=t;return{context:e,params:a,data:(null==s?void 0:s[0])||{},env:ibiz.env}}),{singleRowReturn:!0,isAsync:!1})}match(t){return super.match(t)&&t.itemName===this.logic.itemName}execute(t){const a=this.executor.execute(t);if("boolean"==typeof a)return a;throw new e("".concat(this.logic.id,"逻辑返回值不是布尔值"))}},an=class extends Zi{constructor(){super(...arguments),this.timer=null}start(){this.timer=setInterval((()=>{if(!this.scheduler.defaultParamsCb)throw new e("定时器缺少默认参数回调");const t=this.scheduler.defaultParamsCb();this.executor.execute(t)}),this.logic.timer)}destroy(){super.destroy(),this.timer&&clearInterval(this.timer)}},sn=class extends Yi{execute(t){return"opendata"===this.logic.id&&this.logic.builtinAppUILogic?this.executeOpenDataAppUILogic(this.logic.builtinAppUILogic,t):"newdata"===this.logic.id&&this.logic.builtinAppUILogic?this.executeNewDataAppUILogic(this.logic.builtinAppUILogic,t):void 0}async executeOpenDataAppUILogic(t,s){const{context:i,params:n,...o}=s,{data:r}=s;if(!(null==r?void 0:r[0]))throw new e("opendata没有可操作数据!");const c=t.openDataAppView;if(!c)throw new a(t,"opendata视图逻辑没有配置默认打开视图");const l=c.refAppViewId;if(!l)throw new a(t,"opendata视图逻辑的默认打开视图没有实际引用视图");const d=c.navigateContexts||[],h=Object.assign(i,lt(d,i,n,r[0]));let u={};const p=c.navigateParams;A(p)&&(u=lt(p,n,i,r[0])),await ibiz.commands.execute(ce.TAG,l,h,u,o)}async executeNewDataAppUILogic(t,e){const{context:i,params:n,...o}=e,{data:r}=e,{enableWizardAdd:c,enableBatchAdd:l,batchAddOnly:d,newDataAppView:h}=t;let u;if(c){if(u=await this.getWizardNewViewRef(t,e),!u)return}else{if(l)throw new s(t,"enableBatchAdd暂未支持");if(d)throw new s(t,"batchAddOnly暂未支持");if(u=h,!u||!u.refAppViewId)throw new a(t,"newdata视图逻辑没有配置默认新建数据视图")}let p={},m={};const g=(null==r?void 0:r[0])||{},f=u.navigateContexts;A(f)&&(p=lt(f,i,n,g)),p=Object.assign(i,p);const E=u.navigateParams;A(E)&&(m=lt(E,n,i,g)),i.srfcopymode&&(g.srfkey=void 0,m=Object.assign(m,g.$origin)),await ibiz.commands.execute(ce.TAG,u.refAppViewId,p,m,o)}async getWizardNewViewRef(t,s){var i;const{wizardAppView:n,newDataAppViews:o}=t,{context:r,params:c,...l}=s;if(!n||!n.refAppViewId)throw new a(t,"缺少默认索引实体选择视图");const d=await ibiz.commands.execute(ce.TAG,n.refAppViewId,r,c,{...l,openMode:"POPUPMODAL"});if(!d.ok)return;const h=null==(i=d.data)?void 0:i[0];if(!h)throw new e("请选中一条数据");const u=h.srfkey,p=null==o?void 0:o.find((t=>t.refMode===u));if(!p)throw new e("没有找到与索引类型".concat(u,"相关的实体的编辑视图"));return p}},nn=class extends Zi{constructor(t,e){super(t,e),this.logic=t,this.scheduler=e,this.listenEventNames=[];const a=t.eventNames.split(",");this.listenEventNames=a.map((t=>ee[t]||t))}match(t){return super.match(t)&&this.listenEventNames.includes(t.eventName)}},on=class extends Zi{constructor(t,e){super(t,e),this.logic=t,this.scheduler=e,this.listenEventNames=[];const a=t.eventNames.split(",");this.listenEventNames=a.map((t=>se[t]||t))}match(t){return super.match(t)&&t.ctrlName===this.logic.ctrlName&&this.listenEventNames.includes(t.eventName)}};var rn=((t,e,a)=>(a=null!=t?tt(it(t)):{},((t,e,a,s)=>{if(e&&"object"==typeof e||"function"==typeof e)for(let i of st(e))nt.call(t,i)||i===a||et(t,i,{get:()=>e[i],enumerable:!(s=at(e,i))||s.enumerable});return t})(!e&&t&&t.__esModule?a:et(a,"default",{value:t,enumerable:!0}),t)))(ot(),1);t("PluginStaticResource",class{constructor(t){this.styleElementMap=new Map,this.url=new URL(t);const e=rn.default.dirname(this.url.pathname);this.baseDir=e}dir(t){return rn.default.resolve(this.baseDir,t)}async loadStyle(t){const e=t.map((t=>{const e=this.dir(t);return!this.styleElementMap.has(e)&&(this.styleElementMap.set(e,null),new Promise(((t,a)=>{const s=document.createElement("link");s.setAttribute("type","text/css"),s.setAttribute("rel","stylesheet"),s.setAttribute("href",e),s.onload=t,s.onerror=a,document.head.appendChild(s)})))}));try{await Promise.all(e)}catch(t){ibiz.log.error(t)}}}),t("RemotePluginItem",class{constructor(t,e,a){this.tag=t,this.repo=e,this.config=a}})}}}));
|
|
2
2
|
//# sourceMappingURL=index.system.min.js.map
|