@ibiz-template/mob-vue3-components 0.0.1-alpha.19
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/LICENSE +21 -0
- package/dist/chart-YWsFl76M.js +2 -0
- package/dist/chart-YWsFl76M.js.map +1 -0
- package/dist/index-UNZ1dtt_.js +2 -0
- package/dist/index-UNZ1dtt_.js.map +1 -0
- package/dist/index-Ul84JXar.js +2 -0
- package/dist/index-Ul84JXar.js.map +1 -0
- package/dist/index.min.css +1 -0
- package/dist/index.system.min.js +16 -0
- package/dist/index.system.min.js.map +1 -0
- package/dist/tree-SFO3fWSy.js +2 -0
- package/dist/tree-SFO3fWSy.js.map +1 -0
- package/es/_virtual/_commonjsHelpers.mjs +40 -0
- package/es/_virtual/rolldate.min.mjs +3 -0
- package/es/common/action-toolbar/action-toolbar.css +1 -0
- package/es/common/action-toolbar/action-toolbar.d.ts +64 -0
- package/es/common/action-toolbar/action-toolbar.mjs +66 -0
- package/es/common/col/col.css +1 -0
- package/es/common/col/col.d.ts +37 -0
- package/es/common/col/col.mjs +103 -0
- package/es/common/index.d.ts +8 -0
- package/es/common/index.mjs +27 -0
- package/es/common/keep-alive/keep-alive.d.ts +45 -0
- package/es/common/keep-alive/keep-alive.mjs +294 -0
- package/es/common/keep-alive/scheduler.d.ts +41 -0
- package/es/common/keep-alive/scheduler.mjs +169 -0
- package/es/common/no-data/no-data.css +1 -0
- package/es/common/no-data/no-data.d.ts +16 -0
- package/es/common/no-data/no-data.mjs +33 -0
- package/es/common/rawitem/rawitem.css +1 -0
- package/es/common/rawitem/rawitem.d.ts +51 -0
- package/es/common/rawitem/rawitem.mjs +251 -0
- package/es/common/row/row.d.ts +9 -0
- package/es/common/row/row.mjs +42 -0
- package/es/control/app-menu/app-menu.css +1 -0
- package/es/control/app-menu/app-menu.d.ts +41 -0
- package/es/control/app-menu/app-menu.mjs +208 -0
- package/es/control/app-menu/app-menu.provider.d.ts +13 -0
- package/es/control/app-menu/app-menu.provider.mjs +14 -0
- package/es/control/app-menu/index.d.ts +39 -0
- package/es/control/app-menu/index.mjs +15 -0
- package/es/control/calendar/calendar.css +1 -0
- package/es/control/calendar/calendar.d.ts +65 -0
- package/es/control/calendar/calendar.mjs +203 -0
- package/es/control/calendar/calendar.provider.d.ts +13 -0
- package/es/control/calendar/calendar.provider.mjs +14 -0
- package/es/control/calendar/index.d.ts +62 -0
- package/es/control/calendar/index.mjs +15 -0
- package/es/control/caption-bar/caption-bar.css +1 -0
- package/es/control/caption-bar/caption-bar.d.ts +36 -0
- package/es/control/caption-bar/caption-bar.mjs +45 -0
- package/es/control/caption-bar/caption-bar.provider.d.ts +13 -0
- package/es/control/caption-bar/caption-bar.provider.mjs +14 -0
- package/es/control/caption-bar/index.d.ts +34 -0
- package/es/control/caption-bar/index.mjs +18 -0
- package/es/control/chart/chart.css +1 -0
- package/es/control/chart/chart.d.ts +62 -0
- package/es/control/chart/chart.mjs +61 -0
- package/es/control/chart/chart.provider.d.ts +13 -0
- package/es/control/chart/chart.provider.mjs +14 -0
- package/es/control/chart/index.d.ts +5 -0
- package/es/control/chart/index.mjs +21 -0
- package/es/control/dashboard/dashboard.css +1 -0
- package/es/control/dashboard/dashboard.d.ts +36 -0
- package/es/control/dashboard/dashboard.mjs +94 -0
- package/es/control/dashboard/dashboard.provider.d.ts +13 -0
- package/es/control/dashboard/dashboard.provider.mjs +14 -0
- package/es/control/dashboard/index.d.ts +35 -0
- package/es/control/dashboard/index.mjs +30 -0
- package/es/control/dashboard/portlet/container-portlet/container-portlet.d.ts +24 -0
- package/es/control/dashboard/portlet/container-portlet/container-portlet.mjs +58 -0
- package/es/control/dashboard/portlet/container-portlet/container-portlet.provider.d.ts +14 -0
- package/es/control/dashboard/portlet/container-portlet/container-portlet.provider.mjs +25 -0
- package/es/control/dashboard/portlet/container-portlet/index.d.ts +24 -0
- package/es/control/dashboard/portlet/container-portlet/index.mjs +15 -0
- package/es/control/dashboard/portlet/index.d.ts +4 -0
- package/es/control/dashboard/portlet/index.mjs +11 -0
- package/es/control/dashboard/portlet/menu-portlet/index.d.ts +25 -0
- package/es/control/dashboard/portlet/menu-portlet/index.mjs +12 -0
- package/es/control/dashboard/portlet/menu-portlet/menu-portlet.d.ts +25 -0
- package/es/control/dashboard/portlet/menu-portlet/menu-portlet.mjs +49 -0
- package/es/control/dashboard/portlet/menu-portlet/menu-portlet.provider.d.ts +14 -0
- package/es/control/dashboard/portlet/menu-portlet/menu-portlet.provider.mjs +25 -0
- package/es/control/dashboard/portlet/portlet-layout/portlet-layout.css +1 -0
- package/es/control/dashboard/portlet/portlet-layout/portlet-layout.d.ts +21 -0
- package/es/control/dashboard/portlet/portlet-layout/portlet-layout.mjs +65 -0
- package/es/control/dashboard/portlet/portlet-part/index.d.ts +1 -0
- package/es/control/dashboard/portlet/portlet-part/index.mjs +3 -0
- package/es/control/dashboard/portlet/portlet-part/portlet-part.state.d.ts +20 -0
- package/es/control/dashboard/portlet/portlet-part/portlet-part.state.mjs +33 -0
- package/es/control/data-view/data-view.css +1 -0
- package/es/control/data-view/data-view.d.ts +55 -0
- package/es/control/data-view/data-view.mjs +143 -0
- package/es/control/data-view/data-view.provider.d.ts +11 -0
- package/es/control/data-view/data-view.provider.mjs +14 -0
- package/es/control/data-view/index.d.ts +53 -0
- package/es/control/data-view/index.mjs +18 -0
- package/es/control/drtab/drtab.controller.d.ts +128 -0
- package/es/control/drtab/drtab.controller.mjs +274 -0
- package/es/control/drtab/drtab.css +0 -0
- package/es/control/drtab/drtab.d.ts +37 -0
- package/es/control/drtab/drtab.mjs +71 -0
- package/es/control/drtab/drtab.provider.d.ts +11 -0
- package/es/control/drtab/drtab.provider.mjs +14 -0
- package/es/control/drtab/index.d.ts +36 -0
- package/es/control/drtab/index.mjs +13 -0
- package/es/control/form/edit-form/edit-form.d.ts +52 -0
- package/es/control/form/edit-form/edit-form.mjs +62 -0
- package/es/control/form/edit-form/edit-form.provider.d.ts +13 -0
- package/es/control/form/edit-form/edit-form.provider.mjs +14 -0
- package/es/control/form/edit-form/index.d.ts +50 -0
- package/es/control/form/edit-form/index.mjs +15 -0
- package/es/control/form/form/form.css +1 -0
- package/es/control/form/form/form.d.ts +30 -0
- package/es/control/form/form/form.mjs +101 -0
- package/es/control/form/form/index.d.ts +31 -0
- package/es/control/form/form/index.mjs +28 -0
- package/es/control/form/form-detail/form-button/form-button.css +1 -0
- package/es/control/form/form-detail/form-button/form-button.d.ts +27 -0
- package/es/control/form/form-detail/form-button/form-button.mjs +49 -0
- package/es/control/form/form-detail/form-button/form-button.provider.d.ts +15 -0
- package/es/control/form/form-detail/form-button/form-button.provider.mjs +21 -0
- package/es/control/form/form-detail/form-button/index.d.ts +24 -0
- package/es/control/form/form-detail/form-button/index.mjs +12 -0
- package/es/control/form/form-detail/form-druipart/form-druipart.css +1 -0
- package/es/control/form/form-detail/form-druipart/form-druipart.d.ts +27 -0
- package/es/control/form/form-detail/form-druipart/form-druipart.mjs +47 -0
- package/es/control/form/form-detail/form-druipart/form-druipart.provider.d.ts +15 -0
- package/es/control/form/form-detail/form-druipart/form-druipart.provider.mjs +21 -0
- package/es/control/form/form-detail/form-druipart/index.d.ts +24 -0
- package/es/control/form/form-detail/form-druipart/index.mjs +12 -0
- package/es/control/form/form-detail/form-group-panel/form-group-panel.css +1 -0
- package/es/control/form/form-detail/form-group-panel/form-group-panel.d.ts +30 -0
- package/es/control/form/form-detail/form-group-panel/form-group-panel.mjs +125 -0
- package/es/control/form/form-detail/form-group-panel/form-group-panel.provider.d.ts +15 -0
- package/es/control/form/form-detail/form-group-panel/form-group-panel.provider.mjs +21 -0
- package/es/control/form/form-detail/form-group-panel/index.d.ts +27 -0
- package/es/control/form/form-detail/form-group-panel/index.mjs +18 -0
- package/es/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -0
- package/es/control/form/form-detail/form-item/form-item-container/form-item-container.d.ts +45 -0
- package/es/control/form/form-detail/form-item/form-item-container/form-item-container.mjs +90 -0
- package/es/control/form/form-detail/form-item/form-item.css +1 -0
- package/es/control/form/form-detail/form-item/form-item.d.ts +29 -0
- package/es/control/form/form-detail/form-item/form-item.mjs +85 -0
- package/es/control/form/form-detail/form-item/form-item.provider.d.ts +15 -0
- package/es/control/form/form-detail/form-item/form-item.provider.mjs +21 -0
- package/es/control/form/form-detail/form-item/index.d.ts +27 -0
- package/es/control/form/form-detail/form-item/index.mjs +14 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.css +1 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.d.ts +36 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.mjs +66 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-data-view/form-mdctrl-data-view.d.ts +17 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-data-view/form-mdctrl-data-view.mjs +68 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.d.ts +17 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs +80 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-list/form-mdctrl-list.d.ts +17 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-list/form-mdctrl-list.mjs +68 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-shell.d.ts +72 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-shell.mjs +157 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.d.ts +17 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.mjs +57 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.d.ts +17 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.mjs +55 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl.d.ts +26 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl.mjs +81 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl.provider.d.ts +15 -0
- package/es/control/form/form-detail/form-mdctrl/form-mdctrl.provider.mjs +21 -0
- package/es/control/form/form-detail/form-mdctrl/index.d.ts +26 -0
- package/es/control/form/form-detail/form-mdctrl/index.mjs +26 -0
- package/es/control/form/form-detail/form-page/form-page-item/form-page-item.css +1 -0
- package/es/control/form/form-detail/form-page/form-page-item/form-page-item.d.ts +25 -0
- package/es/control/form/form-detail/form-page/form-page-item/form-page-item.mjs +61 -0
- package/es/control/form/form-detail/form-page/form-page.css +1 -0
- package/es/control/form/form-detail/form-page/form-page.d.ts +29 -0
- package/es/control/form/form-detail/form-page/form-page.mjs +82 -0
- package/es/control/form/form-detail/form-page/form-page.provider.d.ts +15 -0
- package/es/control/form/form-detail/form-page/form-page.provider.mjs +21 -0
- package/es/control/form/form-detail/form-page/index.d.ts +27 -0
- package/es/control/form/form-detail/form-page/index.mjs +14 -0
- package/es/control/form/form-detail/form-rawitem/form-rawitem.css +1 -0
- package/es/control/form/form-detail/form-rawitem/form-rawitem.d.ts +26 -0
- package/es/control/form/form-detail/form-rawitem/form-rawitem.mjs +57 -0
- package/es/control/form/form-detail/form-rawitem/form-rawitem.provider.d.ts +15 -0
- package/es/control/form/form-detail/form-rawitem/form-rawitem.provider.mjs +21 -0
- package/es/control/form/form-detail/form-rawitem/index.d.ts +23 -0
- package/es/control/form/form-detail/form-rawitem/index.mjs +12 -0
- package/es/control/form/form-detail/form-tab-page/form-tab-page.css +1 -0
- package/es/control/form/form-detail/form-tab-page/form-tab-page.d.ts +26 -0
- package/es/control/form/form-detail/form-tab-page/form-tab-page.mjs +54 -0
- package/es/control/form/form-detail/form-tab-page/form-tab-page.provider.d.ts +15 -0
- package/es/control/form/form-detail/form-tab-page/form-tab-page.provider.mjs +21 -0
- package/es/control/form/form-detail/form-tab-page/index.d.ts +23 -0
- package/es/control/form/form-detail/form-tab-page/index.mjs +12 -0
- package/es/control/form/form-detail/form-tab-panel/form-tab-panel.css +1 -0
- package/es/control/form/form-detail/form-tab-panel/form-tab-panel.d.ts +26 -0
- package/es/control/form/form-detail/form-tab-panel/form-tab-panel.mjs +59 -0
- package/es/control/form/form-detail/form-tab-panel/form-tab-panel.provider.d.ts +15 -0
- package/es/control/form/form-detail/form-tab-panel/form-tab-panel.provider.mjs +21 -0
- package/es/control/form/form-detail/form-tab-panel/index.d.ts +23 -0
- package/es/control/form/form-detail/form-tab-panel/index.mjs +12 -0
- package/es/control/form/form-detail/index.d.ts +9 -0
- package/es/control/form/form-detail/index.mjs +22 -0
- package/es/control/form/index.d.ts +4 -0
- package/es/control/form/index.mjs +27 -0
- package/es/control/form/search-form/index.d.ts +34 -0
- package/es/control/form/search-form/index.mjs +18 -0
- package/es/control/form/search-form/search-form.css +1 -0
- package/es/control/form/search-form/search-form.d.ts +36 -0
- package/es/control/form/search-form/search-form.mjs +70 -0
- package/es/control/form/search-form/search-form.provider.d.ts +13 -0
- package/es/control/form/search-form/search-form.provider.mjs +14 -0
- package/es/control/index.d.ts +16 -0
- package/es/control/index.mjs +68 -0
- package/es/control/list/index.d.ts +73 -0
- package/es/control/list/index.mjs +12 -0
- package/es/control/list/list.css +1 -0
- package/es/control/list/list.d.ts +105 -0
- package/es/control/list/list.mjs +185 -0
- package/es/control/list/list.provider.d.ts +13 -0
- package/es/control/list/list.provider.mjs +14 -0
- package/es/control/md-ctrl/index.d.ts +73 -0
- package/es/control/md-ctrl/index.mjs +12 -0
- package/es/control/md-ctrl/md-ctrl.css +1 -0
- package/es/control/md-ctrl/md-ctrl.d.ts +103 -0
- package/es/control/md-ctrl/md-ctrl.mjs +210 -0
- package/es/control/md-ctrl/md-ctrl.provider.d.ts +13 -0
- package/es/control/md-ctrl/md-ctrl.provider.mjs +14 -0
- package/es/control/panel/index.d.ts +2 -0
- package/es/control/panel/index.mjs +6 -0
- package/es/control/panel/panel/index.d.ts +51 -0
- package/es/control/panel/panel/index.mjs +12 -0
- package/es/control/panel/panel/panel.css +1 -0
- package/es/control/panel/panel/panel.d.ts +56 -0
- package/es/control/panel/panel/panel.mjs +130 -0
- package/es/control/panel/panel/panel.provider.d.ts +13 -0
- package/es/control/panel/panel/panel.provider.mjs +14 -0
- package/es/control/panel/view-layout-panel/index.d.ts +36 -0
- package/es/control/panel/view-layout-panel/index.mjs +18 -0
- package/es/control/panel/view-layout-panel/view-layout-panel.css +1 -0
- package/es/control/panel/view-layout-panel/view-layout-panel.d.ts +41 -0
- package/es/control/panel/view-layout-panel/view-layout-panel.mjs +109 -0
- package/es/control/panel/view-layout-panel/view-layout-panel.provider.d.ts +13 -0
- package/es/control/panel/view-layout-panel/view-layout-panel.provider.mjs +14 -0
- package/es/control/pickup-view-panel/index.d.ts +45 -0
- package/es/control/pickup-view-panel/index.mjs +19 -0
- package/es/control/pickup-view-panel/pickup-view-panel.controller.d.ts +58 -0
- package/es/control/pickup-view-panel/pickup-view-panel.controller.mjs +99 -0
- package/es/control/pickup-view-panel/pickup-view-panel.css +1 -0
- package/es/control/pickup-view-panel/pickup-view-panel.d.ts +45 -0
- package/es/control/pickup-view-panel/pickup-view-panel.mjs +63 -0
- package/es/control/pickup-view-panel/pickup-view-panel.provider.d.ts +11 -0
- package/es/control/pickup-view-panel/pickup-view-panel.provider.mjs +14 -0
- package/es/control/search-bar/index.d.ts +37 -0
- package/es/control/search-bar/index.mjs +18 -0
- package/es/control/search-bar/search-bar.css +1 -0
- package/es/control/search-bar/search-bar.d.ts +39 -0
- package/es/control/search-bar/search-bar.mjs +71 -0
- package/es/control/search-bar/search-bar.provider.d.ts +13 -0
- package/es/control/search-bar/search-bar.provider.mjs +14 -0
- package/es/control/tab-exp-panel/index.d.ts +43 -0
- package/es/control/tab-exp-panel/index.mjs +18 -0
- package/es/control/tab-exp-panel/tab-exp-panel.d.ts +44 -0
- package/es/control/tab-exp-panel/tab-exp-panel.mjs +63 -0
- package/es/control/tab-exp-panel/tab-exp-panel.provider.d.ts +11 -0
- package/es/control/tab-exp-panel/tab-exp-panel.provider.mjs +14 -0
- package/es/control/toolbar/index.d.ts +38 -0
- package/es/control/toolbar/index.mjs +15 -0
- package/es/control/toolbar/toolbar.css +1 -0
- package/es/control/toolbar/toolbar.d.ts +41 -0
- package/es/control/toolbar/toolbar.mjs +161 -0
- package/es/control/toolbar/toolbar.provider.d.ts +13 -0
- package/es/control/toolbar/toolbar.provider.mjs +14 -0
- package/es/control/tree/index.d.ts +6 -0
- package/es/control/tree/index.mjs +16 -0
- package/es/control/tree/tree.css +1 -0
- package/es/control/tree/tree.d.ts +108 -0
- package/es/control/tree/tree.mjs +185 -0
- package/es/control/tree/tree.provider.d.ts +13 -0
- package/es/control/tree/tree.provider.mjs +14 -0
- package/es/editor/cascader/cascader-editor.controller.d.ts +10 -0
- package/es/editor/cascader/cascader-editor.controller.mjs +7 -0
- package/es/editor/cascader/cascader-editor.provider.d.ts +17 -0
- package/es/editor/cascader/cascader-editor.provider.mjs +22 -0
- package/es/editor/cascader/ibiz-cascader/ibiz-cascader.css +1 -0
- package/es/editor/cascader/ibiz-cascader/ibiz-cascader.d.ts +67 -0
- package/es/editor/cascader/ibiz-cascader/ibiz-cascader.mjs +273 -0
- package/es/editor/cascader/index.d.ts +3 -0
- package/es/editor/cascader/index.mjs +5 -0
- package/es/editor/check-box/check-box-editor.controller.d.ts +11 -0
- package/es/editor/check-box/check-box-editor.controller.mjs +7 -0
- package/es/editor/check-box/check-box-editor.provider.d.ts +17 -0
- package/es/editor/check-box/check-box-editor.provider.mjs +22 -0
- package/es/editor/check-box/ibiz-checkbox/ibiz-checkbox.d.ts +49 -0
- package/es/editor/check-box/ibiz-checkbox/ibiz-checkbox.mjs +63 -0
- package/es/editor/check-box/index.d.ts +3 -0
- package/es/editor/check-box/index.mjs +5 -0
- package/es/editor/check-box-list/checkbox-list-editor.controller.d.ts +18 -0
- package/es/editor/check-box-list/checkbox-list-editor.controller.mjs +30 -0
- package/es/editor/check-box-list/checkbox-list-editor.provider.d.ts +17 -0
- package/es/editor/check-box-list/checkbox-list-editor.provider.mjs +22 -0
- package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.css +1 -0
- package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.d.ts +52 -0
- package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.mjs +142 -0
- package/es/editor/check-box-list/index.d.ts +3 -0
- package/es/editor/check-box-list/index.mjs +5 -0
- package/es/editor/color-picker/color-picker-editor.controller.d.ts +13 -0
- package/es/editor/color-picker/color-picker-editor.controller.mjs +7 -0
- package/es/editor/color-picker/color-picker-editor.provider.d.ts +17 -0
- package/es/editor/color-picker/color-picker-editor.provider.mjs +22 -0
- package/es/editor/color-picker/ibiz-color-picker/ibiz-color-picker.css +1 -0
- package/es/editor/color-picker/ibiz-color-picker/ibiz-color-picker.d.ts +53 -0
- package/es/editor/color-picker/ibiz-color-picker/ibiz-color-picker.mjs +94 -0
- package/es/editor/color-picker/index.d.ts +3 -0
- package/es/editor/color-picker/index.mjs +5 -0
- package/es/editor/common/right-icon/right-icon.css +1 -0
- package/es/editor/common/right-icon/right-icon.d.ts +4 -0
- package/es/editor/common/right-icon/right-icon.mjs +22 -0
- package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.css +1 -0
- package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.d.ts +60 -0
- package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.mjs +204 -0
- package/es/editor/data-picker/ibiz-picker/ibiz-picker.css +1 -0
- package/es/editor/data-picker/ibiz-picker/ibiz-picker.d.ts +69 -0
- package/es/editor/data-picker/ibiz-picker/ibiz-picker.mjs +245 -0
- package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.css +1 -0
- package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.d.ts +73 -0
- package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.mjs +200 -0
- package/es/editor/data-picker/index.d.ts +5 -0
- package/es/editor/data-picker/index.mjs +7 -0
- package/es/editor/data-picker/picker-editor.controller.d.ts +117 -0
- package/es/editor/data-picker/picker-editor.controller.mjs +303 -0
- package/es/editor/data-picker/picker-editor.provider.d.ts +18 -0
- package/es/editor/data-picker/picker-editor.provider.mjs +34 -0
- package/es/editor/date-picker/date-picker-editor.controller.d.ts +34 -0
- package/es/editor/date-picker/date-picker-editor.controller.mjs +62 -0
- package/es/editor/date-picker/date-picker-editor.provider.d.ts +17 -0
- package/es/editor/date-picker/date-picker-editor.provider.mjs +22 -0
- package/es/editor/date-picker/ibiz-date-picker/ibiz-date-picker.css +1 -0
- package/es/editor/date-picker/ibiz-date-picker/ibiz-date-picker.d.ts +55 -0
- package/es/editor/date-picker/ibiz-date-picker/ibiz-date-picker.mjs +116 -0
- package/es/editor/date-picker/index.d.ts +3 -0
- package/es/editor/date-picker/index.mjs +5 -0
- package/es/editor/date-range/date-range-editor.controller.d.ts +28 -0
- package/es/editor/date-range/date-range-editor.controller.mjs +45 -0
- package/es/editor/date-range/date-range-editor.provider.d.ts +15 -0
- package/es/editor/date-range/date-range-editor.provider.mjs +22 -0
- package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.css +1 -0
- package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.d.ts +61 -0
- package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.mjs +192 -0
- package/es/editor/date-range/index.d.ts +3 -0
- package/es/editor/date-range/index.mjs +5 -0
- package/es/editor/dropdown-list/dropdown-list-editor.controller.d.ts +25 -0
- package/es/editor/dropdown-list/dropdown-list-editor.controller.mjs +33 -0
- package/es/editor/dropdown-list/dropdown-list-editor.provider.d.ts +17 -0
- package/es/editor/dropdown-list/dropdown-list-editor.provider.mjs +22 -0
- package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.css +1 -0
- package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.d.ts +61 -0
- package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +149 -0
- package/es/editor/dropdown-list/index.d.ts +3 -0
- package/es/editor/dropdown-list/index.mjs +5 -0
- package/es/editor/index.d.ts +5 -0
- package/es/editor/index.mjs +169 -0
- package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -0
- package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.d.ts +3 -0
- package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +237 -0
- package/es/editor/markdown/index.d.ts +2 -0
- package/es/editor/markdown/index.mjs +4 -0
- package/es/editor/markdown/markdown-editor.controller.d.ts +46 -0
- package/es/editor/markdown/markdown-editor.controller.mjs +113 -0
- package/es/editor/markdown/markdown-editor.provider.d.ts +17 -0
- package/es/editor/markdown/markdown-editor.provider.mjs +22 -0
- package/es/editor/not-supported-editor/not-supported-editor.css +1 -0
- package/es/editor/not-supported-editor/not-supported-editor.d.ts +16 -0
- package/es/editor/not-supported-editor/not-supported-editor.mjs +27 -0
- package/es/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.css +1 -0
- package/es/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.d.ts +61 -0
- package/es/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.mjs +122 -0
- package/es/editor/number-range/index.d.ts +3 -0
- package/es/editor/number-range/index.mjs +5 -0
- package/es/editor/number-range/number-range-editor.controller.d.ts +11 -0
- package/es/editor/number-range/number-range-editor.controller.mjs +7 -0
- package/es/editor/number-range/number-range-editor.provider.d.ts +15 -0
- package/es/editor/number-range/number-range-editor.provider.mjs +22 -0
- package/es/editor/radio-button-list/ibiz-radio/ibiz-radio.css +1 -0
- package/es/editor/radio-button-list/ibiz-radio/ibiz-radio.d.ts +52 -0
- package/es/editor/radio-button-list/ibiz-radio/ibiz-radio.mjs +76 -0
- package/es/editor/radio-button-list/index.d.ts +3 -0
- package/es/editor/radio-button-list/index.mjs +5 -0
- package/es/editor/radio-button-list/radio-button-list.controller.d.ts +10 -0
- package/es/editor/radio-button-list/radio-button-list.controller.mjs +7 -0
- package/es/editor/radio-button-list/radio-button-list.provider.d.ts +17 -0
- package/es/editor/radio-button-list/radio-button-list.provider.mjs +25 -0
- package/es/editor/rate/ibiz-rate/ibiz-rate.css +1 -0
- package/es/editor/rate/ibiz-rate/ibiz-rate.d.ts +51 -0
- package/es/editor/rate/ibiz-rate/ibiz-rate.mjs +63 -0
- package/es/editor/rate/index.d.ts +3 -0
- package/es/editor/rate/index.mjs +5 -0
- package/es/editor/rate/rate-editor.controller.d.ts +11 -0
- package/es/editor/rate/rate-editor.controller.mjs +7 -0
- package/es/editor/rate/rate-editor.provider.d.ts +15 -0
- package/es/editor/rate/rate-editor.provider.mjs +22 -0
- package/es/editor/slider/ibiz-slider/ibiz-slider.css +1 -0
- package/es/editor/slider/ibiz-slider/ibiz-slider.d.ts +54 -0
- package/es/editor/slider/ibiz-slider/ibiz-slider.mjs +99 -0
- package/es/editor/slider/index.d.ts +3 -0
- package/es/editor/slider/index.mjs +5 -0
- package/es/editor/slider/slider-editor.controller.d.ts +11 -0
- package/es/editor/slider/slider-editor.controller.mjs +7 -0
- package/es/editor/slider/slider-editor.provider.d.ts +15 -0
- package/es/editor/slider/slider-editor.provider.mjs +22 -0
- package/es/editor/span/index.d.ts +4 -0
- package/es/editor/span/index.mjs +6 -0
- package/es/editor/span/span/span.css +1 -0
- package/es/editor/span/span/span.d.ts +43 -0
- package/es/editor/span/span/span.mjs +80 -0
- package/es/editor/span/span-editor.controller.d.ts +26 -0
- package/es/editor/span/span-editor.controller.mjs +62 -0
- package/es/editor/span/span-editor.provider.d.ts +18 -0
- package/es/editor/span/span-editor.provider.mjs +26 -0
- package/es/editor/span/span-link/span-link.css +1 -0
- package/es/editor/span/span-link/span-link.d.ts +51 -0
- package/es/editor/span/span-link/span-link.mjs +46 -0
- package/es/editor/stepper/ibiz-stepper/ibiz-stepper.css +1 -0
- package/es/editor/stepper/ibiz-stepper/ibiz-stepper.d.ts +57 -0
- package/es/editor/stepper/ibiz-stepper/ibiz-stepper.mjs +90 -0
- package/es/editor/stepper/index.d.ts +3 -0
- package/es/editor/stepper/index.mjs +5 -0
- package/es/editor/stepper/stepper-editor.controller.d.ts +18 -0
- package/es/editor/stepper/stepper-editor.controller.mjs +23 -0
- package/es/editor/stepper/stepper-editor.provider.d.ts +15 -0
- package/es/editor/stepper/stepper-editor.provider.mjs +22 -0
- package/es/editor/switch/ibiz-switch/ibiz-switch.css +1 -0
- package/es/editor/switch/ibiz-switch/ibiz-switch.d.ts +50 -0
- package/es/editor/switch/ibiz-switch/ibiz-switch.mjs +53 -0
- package/es/editor/switch/index.d.ts +3 -0
- package/es/editor/switch/index.mjs +5 -0
- package/es/editor/switch/switch-editor.controller.d.ts +11 -0
- package/es/editor/switch/switch-editor.controller.mjs +7 -0
- package/es/editor/switch/switch-editor.provider.d.ts +15 -0
- package/es/editor/switch/switch-editor.provider.mjs +22 -0
- package/es/editor/text-box/ibiz-input-number/ibiz-input-number.css +1 -0
- package/es/editor/text-box/ibiz-input-number/ibiz-input-number.d.ts +54 -0
- package/es/editor/text-box/ibiz-input-number/ibiz-input-number.mjs +92 -0
- package/es/editor/text-box/index.d.ts +4 -0
- package/es/editor/text-box/index.mjs +6 -0
- package/es/editor/text-box/input/input.css +1 -0
- package/es/editor/text-box/input/input.d.ts +56 -0
- package/es/editor/text-box/input/input.mjs +151 -0
- package/es/editor/text-box/text-box-editor.controller.d.ts +21 -0
- package/es/editor/text-box/text-box-editor.controller.mjs +28 -0
- package/es/editor/text-box/text-box-editor.provider.d.ts +18 -0
- package/es/editor/text-box/text-box-editor.provider.mjs +26 -0
- package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.css +1 -0
- package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.d.ts +59 -0
- package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.mjs +88 -0
- package/es/editor/upload/ibiz-image-select/ibiz-image-select.css +1 -0
- package/es/editor/upload/ibiz-image-select/ibiz-image-select.d.ts +56 -0
- package/es/editor/upload/ibiz-image-select/ibiz-image-select.mjs +56 -0
- package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.css +1 -0
- package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +64 -0
- package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.mjs +78 -0
- package/es/editor/upload/index.d.ts +5 -0
- package/es/editor/upload/index.mjs +7 -0
- package/es/editor/upload/upload-editor.controller.d.ts +57 -0
- package/es/editor/upload/upload-editor.controller.mjs +143 -0
- package/es/editor/upload/upload-editor.provider.d.ts +18 -0
- package/es/editor/upload/upload-editor.provider.mjs +34 -0
- package/es/editor/upload/use/use-ibiz-upload.d.ts +95 -0
- package/es/editor/upload/use/use-ibiz-upload.mjs +165 -0
- package/es/editor/upload/use/use-van-upload.d.ts +30 -0
- package/es/editor/upload/use/use-van-upload.mjs +157 -0
- package/es/index.d.ts +11 -0
- package/es/index.mjs +76 -0
- package/es/locale/en/index.d.ts +4 -0
- package/es/locale/en/index.mjs +6 -0
- package/es/locale/index.d.ts +37 -0
- package/es/locale/index.mjs +87 -0
- package/es/locale/zh-CN/index.d.ts +4 -0
- package/es/locale/zh-CN/index.mjs +6 -0
- package/es/node_modules/.pnpm/rolldate@3.1.3/node_modules/rolldate/dist/rolldate.min.mjs +20 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/Calendar.mjs +562 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/CalendarDate.mjs +794 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/CalendarScrollContainer.mjs +129 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/CalendarTime.mjs +205 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/CalendarYearMonth.mjs +244 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/constant/img.mjs +4 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/constant/index.mjs +13 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/hooks/index.mjs +3 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/hooks/use-expose.mjs +10 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/hooks/use-mounted-or-activated.mjs +18 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/hooks/use-rect.mjs +26 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/index.mjs +9 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/language/cn.mjs +24 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/language/en.mjs +24 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/language/index.mjs +10 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/utils/basic.mjs +176 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/utils/index.mjs +4 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/utils/props.mjs +36 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/utils/validate.mjs +28 -0
- package/es/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/utils/with-install.mjs +11 -0
- package/es/panel-component/index.d.ts +5 -0
- package/es/panel-component/index.mjs +29 -0
- package/es/panel-component/nav-pos-index/index.d.ts +26 -0
- package/es/panel-component/nav-pos-index/index.mjs +17 -0
- package/es/panel-component/nav-pos-index/nav-pos-index.controller.d.ts +111 -0
- package/es/panel-component/nav-pos-index/nav-pos-index.controller.mjs +215 -0
- package/es/panel-component/nav-pos-index/nav-pos-index.css +1 -0
- package/es/panel-component/nav-pos-index/nav-pos-index.d.ts +26 -0
- package/es/panel-component/nav-pos-index/nav-pos-index.mjs +79 -0
- package/es/panel-component/nav-pos-index/nav-pos-index.provider.d.ts +16 -0
- package/es/panel-component/nav-pos-index/nav-pos-index.provider.mjs +21 -0
- package/es/panel-component/nav-pos-index/nav-pos-index.state.d.ts +42 -0
- package/es/panel-component/nav-pos-index/nav-pos-index.state.mjs +44 -0
- package/es/panel-component/panel-button/index.d.ts +32 -0
- package/es/panel-component/panel-button/index.mjs +13 -0
- package/es/panel-component/panel-button/panel-button.controller.d.ts +82 -0
- package/es/panel-component/panel-button/panel-button.controller.mjs +118 -0
- package/es/panel-component/panel-button/panel-button.css +1 -0
- package/es/panel-component/panel-button/panel-button.d.ts +34 -0
- package/es/panel-component/panel-button/panel-button.mjs +109 -0
- package/es/panel-component/panel-button/panel-button.provider.d.ts +14 -0
- package/es/panel-component/panel-button/panel-button.provider.mjs +21 -0
- package/es/panel-component/panel-button/panel-button.state.d.ts +26 -0
- package/es/panel-component/panel-button/panel-button.state.mjs +30 -0
- package/es/panel-component/view-content-panel-container/index.d.ts +2 -0
- package/es/panel-component/view-content-panel-container/index.mjs +18 -0
- package/es/panel-component/view-content-panel-container/view-content-panel-container.css +1 -0
- package/es/panel-component/view-content-panel-container/view-content-panel-container.d.ts +3 -0
- package/es/panel-component/view-content-panel-container/view-content-panel-container.mjs +108 -0
- package/es/panel-component/view-content-panel-container/view-content-panel-container.provider.d.ts +15 -0
- package/es/panel-component/view-content-panel-container/view-content-panel-container.provider.mjs +21 -0
- package/es/panel-component/view-footer-panel-container/index.d.ts +23 -0
- package/es/panel-component/view-footer-panel-container/index.mjs +18 -0
- package/es/panel-component/view-footer-panel-container/view-footer-panel-container.css +0 -0
- package/es/panel-component/view-footer-panel-container/view-footer-panel-container.d.ts +26 -0
- package/es/panel-component/view-footer-panel-container/view-footer-panel-container.mjs +63 -0
- package/es/panel-component/view-footer-panel-container/view-footer-panel-container.provider.d.ts +15 -0
- package/es/panel-component/view-footer-panel-container/view-footer-panel-container.provider.mjs +21 -0
- package/es/panel-component/view-header-panel-container/index.d.ts +25 -0
- package/es/panel-component/view-header-panel-container/index.mjs +18 -0
- package/es/panel-component/view-header-panel-container/view-header-panel-container.css +1 -0
- package/es/panel-component/view-header-panel-container/view-header-panel-container.d.ts +28 -0
- package/es/panel-component/view-header-panel-container/view-header-panel-container.mjs +90 -0
- package/es/panel-component/view-header-panel-container/view-header-panel-container.provider.d.ts +15 -0
- package/es/panel-component/view-header-panel-container/view-header-panel-container.provider.mjs +21 -0
- package/es/panel-component/wf-action-button/index.d.ts +33 -0
- package/es/panel-component/wf-action-button/index.mjs +19 -0
- package/es/panel-component/wf-action-button/wf-action-button.controller.d.ts +40 -0
- package/es/panel-component/wf-action-button/wf-action-button.controller.mjs +35 -0
- package/es/panel-component/wf-action-button/wf-action-button.css +1 -0
- package/es/panel-component/wf-action-button/wf-action-button.d.ts +35 -0
- package/es/panel-component/wf-action-button/wf-action-button.mjs +103 -0
- package/es/panel-component/wf-action-button/wf-action-button.provider.d.ts +14 -0
- package/es/panel-component/wf-action-button/wf-action-button.provider.mjs +21 -0
- package/es/panel-component/wf-action-button/wf-action-button.state.d.ts +21 -0
- package/es/panel-component/wf-action-button/wf-action-button.state.mjs +25 -0
- package/es/panel-component/wf-step-trace/index.d.ts +17 -0
- package/es/panel-component/wf-step-trace/index.mjs +16 -0
- package/es/panel-component/wf-step-trace/wf-step-trace.controller.d.ts +48 -0
- package/es/panel-component/wf-step-trace/wf-step-trace.controller.mjs +85 -0
- package/es/panel-component/wf-step-trace/wf-step-trace.css +1 -0
- package/es/panel-component/wf-step-trace/wf-step-trace.d.ts +17 -0
- package/es/panel-component/wf-step-trace/wf-step-trace.mjs +74 -0
- package/es/panel-component/wf-step-trace/wf-step-trace.provider.d.ts +14 -0
- package/es/panel-component/wf-step-trace/wf-step-trace.provider.mjs +21 -0
- package/es/panel-component/wf-step-trace/wf-step-trace.state.d.ts +19 -0
- package/es/panel-component/wf-step-trace/wf-step-trace.state.mjs +25 -0
- package/es/util/app-drawer/app-drawer-component.d.ts +35 -0
- package/es/util/app-drawer/app-drawer-component.mjs +87 -0
- package/es/util/app-modal/app-modal-component.css +1 -0
- package/es/util/app-modal/app-modal-component.d.ts +43 -0
- package/es/util/app-modal/app-modal-component.mjs +94 -0
- package/es/util/directive/loading.d.ts +26 -0
- package/es/util/directive/loading.mjs +33 -0
- package/es/util/index.d.ts +8 -0
- package/es/util/index.mjs +11 -0
- package/es/util/loading-util/loading-util.d.ts +65 -0
- package/es/util/loading-util/loading-util.mjs +88 -0
- package/es/util/message-util/message-util.d.ts +16 -0
- package/es/util/message-util/message-util.mjs +35 -0
- package/es/util/modal-util/modal-util.d.ts +17 -0
- package/es/util/modal-util/modal-util.mjs +61 -0
- package/es/util/notification-util/notification-util.d.ts +16 -0
- package/es/util/notification-util/notification-util.mjs +39 -0
- package/es/util/open-view-util/open-view-util.d.ts +42 -0
- package/es/util/open-view-util/open-view-util.mjs +92 -0
- package/es/util/overlay-controller/overlay-controller.d.ts +20 -0
- package/es/util/overlay-controller/overlay-controller.mjs +46 -0
- package/es/util/store/index.d.ts +1 -0
- package/es/util/store/index.mjs +3 -0
- package/es/util/store/view-stack/view-stack.d.ts +61 -0
- package/es/util/store/view-stack/view-stack.mjs +76 -0
- package/es/view/404-view/404-view.css +1 -0
- package/es/view/404-view/404-view.d.ts +6 -0
- package/es/view/404-view/404-view.mjs +37 -0
- package/es/view/index.d.ts +2 -0
- package/es/view/index.mjs +4 -0
- package/es/view/login-view/login-view.css +1 -0
- package/es/view/login-view/login-view.d.ts +11 -0
- package/es/view/login-view/login-view.mjs +112 -0
- package/es/view-engine/index-view.engine.d.ts +6 -0
- package/es/view-engine/index-view.engine.mjs +10 -0
- package/es/view-engine/index.d.ts +3 -0
- package/es/view-engine/index.mjs +137 -0
- package/es/view-engine/mob-calendar-view.engine.d.ts +5 -0
- package/es/view-engine/mob-calendar-view.engine.mjs +7 -0
- package/es/view-engine/mob-chart-view.engine.d.ts +15 -0
- package/es/view-engine/mob-chart-view.engine.mjs +26 -0
- package/es/view-engine/mob-custom-view.engine.d.ts +5 -0
- package/es/view-engine/mob-custom-view.engine.mjs +7 -0
- package/es/view-engine/mob-data-view-engine.d.ts +34 -0
- package/es/view-engine/mob-data-view-engine.mjs +39 -0
- package/es/view-engine/mob-edit-view.engine.d.ts +58 -0
- package/es/view-engine/mob-edit-view.engine.mjs +202 -0
- package/es/view-engine/mob-edit-view3.engine.d.ts +21 -0
- package/es/view-engine/mob-edit-view3.engine.mjs +21 -0
- package/es/view-engine/mob-md-view-engine.d.ts +42 -0
- package/es/view-engine/mob-md-view-engine.mjs +59 -0
- package/es/view-engine/mob-mpickup-view-engine.d.ts +136 -0
- package/es/view-engine/mob-mpickup-view-engine.mjs +239 -0
- package/es/view-engine/mob-opt-view.engine.d.ts +27 -0
- package/es/view-engine/mob-opt-view.engine.mjs +47 -0
- package/es/view-engine/mob-pickup-md-view.engine.d.ts +17 -0
- package/es/view-engine/mob-pickup-md-view.engine.mjs +45 -0
- package/es/view-engine/mob-pickup-tree-view.engine.d.ts +32 -0
- package/es/view-engine/mob-pickup-tree-view.engine.mjs +54 -0
- package/es/view-engine/mob-pickup-view.engine.d.ts +70 -0
- package/es/view-engine/mob-pickup-view.engine.mjs +114 -0
- package/es/view-engine/mob-tab-exp-view.engine.d.ts +36 -0
- package/es/view-engine/mob-tab-exp-view.engine.mjs +35 -0
- package/es/view-engine/mob-tree-view.engine.d.ts +16 -0
- package/es/view-engine/mob-tree-view.engine.mjs +27 -0
- package/es/view-engine/mob-wf-dyna-action-view.engine.d.ts +31 -0
- package/es/view-engine/mob-wf-dyna-action-view.engine.mjs +60 -0
- package/es/view-engine/mob-wf-dyna-edit-view.engine.d.ts +132 -0
- package/es/view-engine/mob-wf-dyna-edit-view.engine.mjs +276 -0
- package/es/view-engine/mob-wf-dyna-edit-view3.engine.d.ts +14 -0
- package/es/view-engine/mob-wf-dyna-edit-view3.engine.mjs +21 -0
- package/es/view-engine/mob-wf-dyna-start-view.engine.d.ts +31 -0
- package/es/view-engine/mob-wf-dyna-start-view.engine.mjs +60 -0
- package/es/view-engine/portal-view.engine.d.ts +20 -0
- package/es/view-engine/portal-view.engine.mjs +21 -0
- package/es/view-engine/wf-step-trace-view.engine.d.ts +41 -0
- package/es/view-engine/wf-step-trace-view.engine.mjs +71 -0
- package/lib/_virtual/_commonjsHelpers.cjs +46 -0
- package/lib/_virtual/rolldate.min.cjs +5 -0
- package/lib/common/action-toolbar/action-toolbar.cjs +68 -0
- package/lib/common/action-toolbar/action-toolbar.css +1 -0
- package/lib/common/col/col.cjs +105 -0
- package/lib/common/col/col.css +1 -0
- package/lib/common/index.cjs +43 -0
- package/lib/common/keep-alive/keep-alive.cjs +305 -0
- package/lib/common/keep-alive/scheduler.cjs +179 -0
- package/lib/common/no-data/no-data.cjs +35 -0
- package/lib/common/no-data/no-data.css +1 -0
- package/lib/common/rawitem/rawitem.cjs +253 -0
- package/lib/common/rawitem/rawitem.css +1 -0
- package/lib/common/row/row.cjs +44 -0
- package/lib/control/app-menu/app-menu.cjs +210 -0
- package/lib/control/app-menu/app-menu.css +1 -0
- package/lib/control/app-menu/app-menu.provider.cjs +16 -0
- package/lib/control/app-menu/index.cjs +21 -0
- package/lib/control/calendar/calendar.cjs +205 -0
- package/lib/control/calendar/calendar.css +1 -0
- package/lib/control/calendar/calendar.provider.cjs +16 -0
- package/lib/control/calendar/index.cjs +21 -0
- package/lib/control/caption-bar/caption-bar.cjs +47 -0
- package/lib/control/caption-bar/caption-bar.css +1 -0
- package/lib/control/caption-bar/caption-bar.provider.cjs +16 -0
- package/lib/control/caption-bar/index.cjs +24 -0
- package/lib/control/chart/chart.cjs +65 -0
- package/lib/control/chart/chart.css +1 -0
- package/lib/control/chart/chart.provider.cjs +16 -0
- package/lib/control/chart/index.cjs +26 -0
- package/lib/control/dashboard/dashboard.cjs +96 -0
- package/lib/control/dashboard/dashboard.css +1 -0
- package/lib/control/dashboard/dashboard.provider.cjs +16 -0
- package/lib/control/dashboard/index.cjs +44 -0
- package/lib/control/dashboard/portlet/container-portlet/container-portlet.cjs +60 -0
- package/lib/control/dashboard/portlet/container-portlet/container-portlet.provider.cjs +27 -0
- package/lib/control/dashboard/portlet/container-portlet/index.cjs +22 -0
- package/lib/control/dashboard/portlet/index.cjs +22 -0
- package/lib/control/dashboard/portlet/menu-portlet/index.cjs +19 -0
- package/lib/control/dashboard/portlet/menu-portlet/menu-portlet.cjs +51 -0
- package/lib/control/dashboard/portlet/menu-portlet/menu-portlet.provider.cjs +27 -0
- package/lib/control/dashboard/portlet/portlet-layout/portlet-layout.cjs +67 -0
- package/lib/control/dashboard/portlet/portlet-layout/portlet-layout.css +1 -0
- package/lib/control/dashboard/portlet/portlet-part/index.cjs +7 -0
- package/lib/control/dashboard/portlet/portlet-part/portlet-part.state.cjs +35 -0
- package/lib/control/data-view/data-view.cjs +145 -0
- package/lib/control/data-view/data-view.css +1 -0
- package/lib/control/data-view/data-view.provider.cjs +16 -0
- package/lib/control/data-view/index.cjs +24 -0
- package/lib/control/drtab/drtab.cjs +73 -0
- package/lib/control/drtab/drtab.controller.cjs +276 -0
- package/lib/control/drtab/drtab.css +0 -0
- package/lib/control/drtab/drtab.provider.cjs +16 -0
- package/lib/control/drtab/index.cjs +20 -0
- package/lib/control/form/edit-form/edit-form.cjs +64 -0
- package/lib/control/form/edit-form/edit-form.provider.cjs +16 -0
- package/lib/control/form/edit-form/index.cjs +20 -0
- package/lib/control/form/form/form.cjs +103 -0
- package/lib/control/form/form/form.css +1 -0
- package/lib/control/form/form/index.cjs +33 -0
- package/lib/control/form/form-detail/form-button/form-button.cjs +54 -0
- package/lib/control/form/form-detail/form-button/form-button.css +1 -0
- package/lib/control/form/form-detail/form-button/form-button.provider.cjs +23 -0
- package/lib/control/form/form-detail/form-button/index.cjs +18 -0
- package/lib/control/form/form-detail/form-druipart/form-druipart.cjs +52 -0
- package/lib/control/form/form-detail/form-druipart/form-druipart.css +1 -0
- package/lib/control/form/form-detail/form-druipart/form-druipart.provider.cjs +23 -0
- package/lib/control/form/form-detail/form-druipart/index.cjs +18 -0
- package/lib/control/form/form-detail/form-group-panel/form-group-panel.cjs +130 -0
- package/lib/control/form/form-detail/form-group-panel/form-group-panel.css +1 -0
- package/lib/control/form/form-detail/form-group-panel/form-group-panel.provider.cjs +23 -0
- package/lib/control/form/form-detail/form-group-panel/index.cjs +24 -0
- package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.cjs +92 -0
- package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -0
- package/lib/control/form/form-detail/form-item/form-item.cjs +90 -0
- package/lib/control/form/form-detail/form-item/form-item.css +1 -0
- package/lib/control/form/form-detail/form-item/form-item.provider.cjs +23 -0
- package/lib/control/form/form-detail/form-item/index.cjs +21 -0
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.cjs +71 -0
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.css +1 -0
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-data-view/form-mdctrl-data-view.cjs +73 -0
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.cjs +85 -0
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-list/form-mdctrl-list.cjs +73 -0
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-shell.cjs +159 -0
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.cjs +62 -0
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.cjs +60 -0
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.cjs +86 -0
- package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.provider.cjs +23 -0
- package/lib/control/form/form-detail/form-mdctrl/index.cjs +32 -0
- package/lib/control/form/form-detail/form-page/form-page-item/form-page-item.cjs +63 -0
- package/lib/control/form/form-detail/form-page/form-page-item/form-page-item.css +1 -0
- package/lib/control/form/form-detail/form-page/form-page.cjs +87 -0
- package/lib/control/form/form-detail/form-page/form-page.css +1 -0
- package/lib/control/form/form-detail/form-page/form-page.provider.cjs +23 -0
- package/lib/control/form/form-detail/form-page/index.cjs +21 -0
- package/lib/control/form/form-detail/form-rawitem/form-rawitem.cjs +62 -0
- package/lib/control/form/form-detail/form-rawitem/form-rawitem.css +1 -0
- package/lib/control/form/form-detail/form-rawitem/form-rawitem.provider.cjs +23 -0
- package/lib/control/form/form-detail/form-rawitem/index.cjs +18 -0
- package/lib/control/form/form-detail/form-tab-page/form-tab-page.cjs +59 -0
- package/lib/control/form/form-detail/form-tab-page/form-tab-page.css +1 -0
- package/lib/control/form/form-detail/form-tab-page/form-tab-page.provider.cjs +23 -0
- package/lib/control/form/form-detail/form-tab-page/index.cjs +18 -0
- package/lib/control/form/form-detail/form-tab-panel/form-tab-panel.cjs +64 -0
- package/lib/control/form/form-detail/form-tab-panel/form-tab-panel.css +1 -0
- package/lib/control/form/form-detail/form-tab-panel/form-tab-panel.provider.cjs +23 -0
- package/lib/control/form/form-detail/form-tab-panel/index.cjs +18 -0
- package/lib/control/form/form-detail/index.cjs +45 -0
- package/lib/control/form/index.cjs +54 -0
- package/lib/control/form/search-form/index.cjs +24 -0
- package/lib/control/form/search-form/search-form.cjs +72 -0
- package/lib/control/form/search-form/search-form.css +1 -0
- package/lib/control/form/search-form/search-form.provider.cjs +16 -0
- package/lib/control/index.cjs +135 -0
- package/lib/control/list/index.cjs +18 -0
- package/lib/control/list/list.cjs +187 -0
- package/lib/control/list/list.css +1 -0
- package/lib/control/list/list.provider.cjs +16 -0
- package/lib/control/md-ctrl/index.cjs +18 -0
- package/lib/control/md-ctrl/md-ctrl.cjs +212 -0
- package/lib/control/md-ctrl/md-ctrl.css +1 -0
- package/lib/control/md-ctrl/md-ctrl.provider.cjs +16 -0
- package/lib/control/panel/index.cjs +13 -0
- package/lib/control/panel/panel/index.cjs +18 -0
- package/lib/control/panel/panel/panel.cjs +132 -0
- package/lib/control/panel/panel/panel.css +1 -0
- package/lib/control/panel/panel/panel.provider.cjs +16 -0
- package/lib/control/panel/view-layout-panel/index.cjs +24 -0
- package/lib/control/panel/view-layout-panel/view-layout-panel.cjs +111 -0
- package/lib/control/panel/view-layout-panel/view-layout-panel.css +1 -0
- package/lib/control/panel/view-layout-panel/view-layout-panel.provider.cjs +16 -0
- package/lib/control/pickup-view-panel/index.cjs +26 -0
- package/lib/control/pickup-view-panel/pickup-view-panel.cjs +65 -0
- package/lib/control/pickup-view-panel/pickup-view-panel.controller.cjs +101 -0
- package/lib/control/pickup-view-panel/pickup-view-panel.css +1 -0
- package/lib/control/pickup-view-panel/pickup-view-panel.provider.cjs +16 -0
- package/lib/control/search-bar/index.cjs +24 -0
- package/lib/control/search-bar/search-bar.cjs +73 -0
- package/lib/control/search-bar/search-bar.css +1 -0
- package/lib/control/search-bar/search-bar.provider.cjs +16 -0
- package/lib/control/tab-exp-panel/index.cjs +24 -0
- package/lib/control/tab-exp-panel/tab-exp-panel.cjs +65 -0
- package/lib/control/tab-exp-panel/tab-exp-panel.provider.cjs +16 -0
- package/lib/control/toolbar/index.cjs +20 -0
- package/lib/control/toolbar/toolbar.cjs +163 -0
- package/lib/control/toolbar/toolbar.css +1 -0
- package/lib/control/toolbar/toolbar.provider.cjs +16 -0
- package/lib/control/tree/index.cjs +22 -0
- package/lib/control/tree/tree.cjs +190 -0
- package/lib/control/tree/tree.css +1 -0
- package/lib/control/tree/tree.provider.cjs +16 -0
- package/lib/editor/cascader/cascader-editor.controller.cjs +9 -0
- package/lib/editor/cascader/cascader-editor.provider.cjs +24 -0
- package/lib/editor/cascader/ibiz-cascader/ibiz-cascader.cjs +275 -0
- package/lib/editor/cascader/ibiz-cascader/ibiz-cascader.css +1 -0
- package/lib/editor/cascader/index.cjs +11 -0
- package/lib/editor/check-box/check-box-editor.controller.cjs +9 -0
- package/lib/editor/check-box/check-box-editor.provider.cjs +24 -0
- package/lib/editor/check-box/ibiz-checkbox/ibiz-checkbox.cjs +65 -0
- package/lib/editor/check-box/index.cjs +11 -0
- package/lib/editor/check-box-list/checkbox-list-editor.controller.cjs +32 -0
- package/lib/editor/check-box-list/checkbox-list-editor.provider.cjs +24 -0
- package/lib/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.cjs +144 -0
- package/lib/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.css +1 -0
- package/lib/editor/check-box-list/index.cjs +11 -0
- package/lib/editor/color-picker/color-picker-editor.controller.cjs +9 -0
- package/lib/editor/color-picker/color-picker-editor.provider.cjs +24 -0
- package/lib/editor/color-picker/ibiz-color-picker/ibiz-color-picker.cjs +96 -0
- package/lib/editor/color-picker/ibiz-color-picker/ibiz-color-picker.css +1 -0
- package/lib/editor/color-picker/index.cjs +11 -0
- package/lib/editor/common/right-icon/right-icon.cjs +24 -0
- package/lib/editor/common/right-icon/right-icon.css +1 -0
- package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.cjs +206 -0
- package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.css +1 -0
- package/lib/editor/data-picker/ibiz-picker/ibiz-picker.cjs +247 -0
- package/lib/editor/data-picker/ibiz-picker/ibiz-picker.css +1 -0
- package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.cjs +202 -0
- package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.css +1 -0
- package/lib/editor/data-picker/index.cjs +15 -0
- package/lib/editor/data-picker/picker-editor.controller.cjs +305 -0
- package/lib/editor/data-picker/picker-editor.provider.cjs +36 -0
- package/lib/editor/date-picker/date-picker-editor.controller.cjs +64 -0
- package/lib/editor/date-picker/date-picker-editor.provider.cjs +24 -0
- package/lib/editor/date-picker/ibiz-date-picker/ibiz-date-picker.cjs +118 -0
- package/lib/editor/date-picker/ibiz-date-picker/ibiz-date-picker.css +1 -0
- package/lib/editor/date-picker/index.cjs +11 -0
- package/lib/editor/date-range/date-range-editor.controller.cjs +47 -0
- package/lib/editor/date-range/date-range-editor.provider.cjs +24 -0
- package/lib/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.cjs +194 -0
- package/lib/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.css +1 -0
- package/lib/editor/date-range/index.cjs +11 -0
- package/lib/editor/dropdown-list/dropdown-list-editor.controller.cjs +35 -0
- package/lib/editor/dropdown-list/dropdown-list-editor.provider.cjs +24 -0
- package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +151 -0
- package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.css +1 -0
- package/lib/editor/dropdown-list/index.cjs +11 -0
- package/lib/editor/index.cjs +174 -0
- package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +241 -0
- package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -0
- package/lib/editor/markdown/index.cjs +9 -0
- package/lib/editor/markdown/markdown-editor.controller.cjs +115 -0
- package/lib/editor/markdown/markdown-editor.provider.cjs +24 -0
- package/lib/editor/not-supported-editor/not-supported-editor.cjs +29 -0
- package/lib/editor/not-supported-editor/not-supported-editor.css +1 -0
- package/lib/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.cjs +124 -0
- package/lib/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.css +1 -0
- package/lib/editor/number-range/index.cjs +11 -0
- package/lib/editor/number-range/number-range-editor.controller.cjs +9 -0
- package/lib/editor/number-range/number-range-editor.provider.cjs +24 -0
- package/lib/editor/radio-button-list/ibiz-radio/ibiz-radio.cjs +78 -0
- package/lib/editor/radio-button-list/ibiz-radio/ibiz-radio.css +1 -0
- package/lib/editor/radio-button-list/index.cjs +11 -0
- package/lib/editor/radio-button-list/radio-button-list.controller.cjs +9 -0
- package/lib/editor/radio-button-list/radio-button-list.provider.cjs +27 -0
- package/lib/editor/rate/ibiz-rate/ibiz-rate.cjs +65 -0
- package/lib/editor/rate/ibiz-rate/ibiz-rate.css +1 -0
- package/lib/editor/rate/index.cjs +11 -0
- package/lib/editor/rate/rate-editor.controller.cjs +9 -0
- package/lib/editor/rate/rate-editor.provider.cjs +24 -0
- package/lib/editor/slider/ibiz-slider/ibiz-slider.cjs +101 -0
- package/lib/editor/slider/ibiz-slider/ibiz-slider.css +1 -0
- package/lib/editor/slider/index.cjs +11 -0
- package/lib/editor/slider/slider-editor.controller.cjs +9 -0
- package/lib/editor/slider/slider-editor.provider.cjs +24 -0
- package/lib/editor/span/index.cjs +13 -0
- package/lib/editor/span/span/span.cjs +82 -0
- package/lib/editor/span/span/span.css +1 -0
- package/lib/editor/span/span-editor.controller.cjs +64 -0
- package/lib/editor/span/span-editor.provider.cjs +28 -0
- package/lib/editor/span/span-link/span-link.cjs +48 -0
- package/lib/editor/span/span-link/span-link.css +1 -0
- package/lib/editor/stepper/ibiz-stepper/ibiz-stepper.cjs +92 -0
- package/lib/editor/stepper/ibiz-stepper/ibiz-stepper.css +1 -0
- package/lib/editor/stepper/index.cjs +11 -0
- package/lib/editor/stepper/stepper-editor.controller.cjs +25 -0
- package/lib/editor/stepper/stepper-editor.provider.cjs +24 -0
- package/lib/editor/switch/ibiz-switch/ibiz-switch.cjs +55 -0
- package/lib/editor/switch/ibiz-switch/ibiz-switch.css +1 -0
- package/lib/editor/switch/index.cjs +11 -0
- package/lib/editor/switch/switch-editor.controller.cjs +9 -0
- package/lib/editor/switch/switch-editor.provider.cjs +24 -0
- package/lib/editor/text-box/ibiz-input-number/ibiz-input-number.cjs +94 -0
- package/lib/editor/text-box/ibiz-input-number/ibiz-input-number.css +1 -0
- package/lib/editor/text-box/index.cjs +13 -0
- package/lib/editor/text-box/input/input.cjs +153 -0
- package/lib/editor/text-box/input/input.css +1 -0
- package/lib/editor/text-box/text-box-editor.controller.cjs +30 -0
- package/lib/editor/text-box/text-box-editor.provider.cjs +28 -0
- package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.cjs +90 -0
- package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.css +1 -0
- package/lib/editor/upload/ibiz-image-select/ibiz-image-select.cjs +58 -0
- package/lib/editor/upload/ibiz-image-select/ibiz-image-select.css +1 -0
- package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.cjs +80 -0
- package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.css +1 -0
- package/lib/editor/upload/index.cjs +15 -0
- package/lib/editor/upload/upload-editor.controller.cjs +145 -0
- package/lib/editor/upload/upload-editor.provider.cjs +36 -0
- package/lib/editor/upload/use/use-ibiz-upload.cjs +170 -0
- package/lib/editor/upload/use/use-van-upload.cjs +159 -0
- package/lib/index.cjs +106 -0
- package/lib/locale/en/index.cjs +10 -0
- package/lib/locale/index.cjs +91 -0
- package/lib/locale/zh-CN/index.cjs +10 -0
- package/lib/node_modules/.pnpm/rolldate@3.1.3/node_modules/rolldate/dist/rolldate.min.cjs +24 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/Calendar.cjs +567 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/CalendarDate.cjs +799 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/CalendarScrollContainer.cjs +134 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/CalendarTime.cjs +210 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/CalendarYearMonth.cjs +249 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/constant/img.cjs +7 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/constant/index.cjs +17 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/hooks/index.cjs +11 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/hooks/use-expose.cjs +12 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/hooks/use-mounted-or-activated.cjs +20 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/hooks/use-rect.cjs +28 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/index.cjs +14 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/language/cn.cjs +28 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/language/en.cjs +28 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/language/index.cjs +15 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/utils/basic.cjs +199 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/utils/index.cjs +46 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/utils/props.cjs +46 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/utils/validate.cjs +34 -0
- package/lib/node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/utils/with-install.cjs +13 -0
- package/lib/panel-component/index.cjs +34 -0
- package/lib/panel-component/nav-pos-index/index.cjs +24 -0
- package/lib/panel-component/nav-pos-index/nav-pos-index.cjs +81 -0
- package/lib/panel-component/nav-pos-index/nav-pos-index.controller.cjs +217 -0
- package/lib/panel-component/nav-pos-index/nav-pos-index.css +1 -0
- package/lib/panel-component/nav-pos-index/nav-pos-index.provider.cjs +23 -0
- package/lib/panel-component/nav-pos-index/nav-pos-index.state.cjs +46 -0
- package/lib/panel-component/panel-button/index.cjs +20 -0
- package/lib/panel-component/panel-button/panel-button.cjs +114 -0
- package/lib/panel-component/panel-button/panel-button.controller.cjs +120 -0
- package/lib/panel-component/panel-button/panel-button.css +1 -0
- package/lib/panel-component/panel-button/panel-button.provider.cjs +23 -0
- package/lib/panel-component/panel-button/panel-button.state.cjs +32 -0
- package/lib/panel-component/view-content-panel-container/index.cjs +23 -0
- package/lib/panel-component/view-content-panel-container/view-content-panel-container.cjs +110 -0
- package/lib/panel-component/view-content-panel-container/view-content-panel-container.css +1 -0
- package/lib/panel-component/view-content-panel-container/view-content-panel-container.provider.cjs +23 -0
- package/lib/panel-component/view-footer-panel-container/index.cjs +23 -0
- package/lib/panel-component/view-footer-panel-container/view-footer-panel-container.cjs +65 -0
- package/lib/panel-component/view-footer-panel-container/view-footer-panel-container.css +0 -0
- package/lib/panel-component/view-footer-panel-container/view-footer-panel-container.provider.cjs +23 -0
- package/lib/panel-component/view-header-panel-container/index.cjs +23 -0
- package/lib/panel-component/view-header-panel-container/view-header-panel-container.cjs +92 -0
- package/lib/panel-component/view-header-panel-container/view-header-panel-container.css +1 -0
- package/lib/panel-component/view-header-panel-container/view-header-panel-container.provider.cjs +23 -0
- package/lib/panel-component/wf-action-button/index.cjs +26 -0
- package/lib/panel-component/wf-action-button/wf-action-button.cjs +108 -0
- package/lib/panel-component/wf-action-button/wf-action-button.controller.cjs +37 -0
- package/lib/panel-component/wf-action-button/wf-action-button.css +1 -0
- package/lib/panel-component/wf-action-button/wf-action-button.provider.cjs +23 -0
- package/lib/panel-component/wf-action-button/wf-action-button.state.cjs +27 -0
- package/lib/panel-component/wf-step-trace/index.cjs +23 -0
- package/lib/panel-component/wf-step-trace/wf-step-trace.cjs +79 -0
- package/lib/panel-component/wf-step-trace/wf-step-trace.controller.cjs +87 -0
- package/lib/panel-component/wf-step-trace/wf-step-trace.css +1 -0
- package/lib/panel-component/wf-step-trace/wf-step-trace.provider.cjs +23 -0
- package/lib/panel-component/wf-step-trace/wf-step-trace.state.cjs +27 -0
- package/lib/util/app-drawer/app-drawer-component.cjs +90 -0
- package/lib/util/app-modal/app-modal-component.cjs +97 -0
- package/lib/util/app-modal/app-modal-component.css +1 -0
- package/lib/util/directive/loading.cjs +35 -0
- package/lib/util/index.cjs +23 -0
- package/lib/util/loading-util/loading-util.cjs +90 -0
- package/lib/util/message-util/message-util.cjs +37 -0
- package/lib/util/modal-util/modal-util.cjs +63 -0
- package/lib/util/notification-util/notification-util.cjs +41 -0
- package/lib/util/open-view-util/open-view-util.cjs +94 -0
- package/lib/util/overlay-controller/overlay-controller.cjs +48 -0
- package/lib/util/store/index.cjs +8 -0
- package/lib/util/store/view-stack/view-stack.cjs +79 -0
- package/lib/view/404-view/404-view.cjs +39 -0
- package/lib/view/404-view/404-view.css +1 -0
- package/lib/view/index.cjs +9 -0
- package/lib/view/login-view/login-view.cjs +114 -0
- package/lib/view/login-view/login-view.css +1 -0
- package/lib/view-engine/index-view.engine.cjs +12 -0
- package/lib/view-engine/index.cjs +139 -0
- package/lib/view-engine/mob-calendar-view.engine.cjs +9 -0
- package/lib/view-engine/mob-chart-view.engine.cjs +28 -0
- package/lib/view-engine/mob-custom-view.engine.cjs +9 -0
- package/lib/view-engine/mob-data-view-engine.cjs +41 -0
- package/lib/view-engine/mob-edit-view.engine.cjs +204 -0
- package/lib/view-engine/mob-edit-view3.engine.cjs +23 -0
- package/lib/view-engine/mob-md-view-engine.cjs +61 -0
- package/lib/view-engine/mob-mpickup-view-engine.cjs +241 -0
- package/lib/view-engine/mob-opt-view.engine.cjs +49 -0
- package/lib/view-engine/mob-pickup-md-view.engine.cjs +47 -0
- package/lib/view-engine/mob-pickup-tree-view.engine.cjs +56 -0
- package/lib/view-engine/mob-pickup-view.engine.cjs +116 -0
- package/lib/view-engine/mob-tab-exp-view.engine.cjs +37 -0
- package/lib/view-engine/mob-tree-view.engine.cjs +29 -0
- package/lib/view-engine/mob-wf-dyna-action-view.engine.cjs +62 -0
- package/lib/view-engine/mob-wf-dyna-edit-view.engine.cjs +278 -0
- package/lib/view-engine/mob-wf-dyna-edit-view3.engine.cjs +23 -0
- package/lib/view-engine/mob-wf-dyna-start-view.engine.cjs +62 -0
- package/lib/view-engine/portal-view.engine.cjs +23 -0
- package/lib/view-engine/wf-step-trace-view.engine.cjs +73 -0
- package/package.json +85 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.system.min.js","sources":["../src/common/action-toolbar/action-toolbar.tsx","../src/common/col/col.tsx","../src/common/keep-alive/scheduler.ts","../src/common/keep-alive/keep-alive.ts","../src/common/no-data/no-data.tsx","../src/common/rawitem/rawitem.tsx","../src/common/row/row.tsx","../src/common/index.ts","../src/control/panel/view-layout-panel/view-layout-panel.tsx","../src/control/panel/view-layout-panel/view-layout-panel.provider.ts","../src/control/panel/view-layout-panel/index.ts","../src/control/panel/panel/panel.tsx","../src/control/panel/panel/panel.provider.ts","../src/control/panel/panel/index.ts","../src/control/md-ctrl/md-ctrl.tsx","../src/control/md-ctrl/md-ctrl.provider.ts","../src/control/md-ctrl/index.ts","../src/control/app-menu/app-menu.tsx","../src/control/app-menu/app-menu.provider.ts","../src/control/app-menu/index.ts","../src/control/form/search-form/search-form.tsx","../src/control/form/search-form/search-form.provider.ts","../src/control/form/search-form/index.ts","../src/control/form/form-detail/form-group-panel/form-group-panel.tsx","../src/control/form/form-detail/form-group-panel/form-group-panel.provider.ts","../src/control/form/form-detail/form-group-panel/index.ts","../src/control/form/form-detail/form-item/form-item.tsx","../src/control/form/form-detail/form-item/form-item-container/form-item-container.tsx","../src/control/form/form-detail/form-item/form-item.provider.ts","../src/control/form/form-detail/form-item/index.ts","../src/control/form/form-detail/form-page/form-page.tsx","../src/control/form/form-detail/form-page/form-page-item/form-page-item.tsx","../src/control/form/form-detail/form-page/form-page.provider.ts","../src/control/form/form-detail/form-page/index.ts","../src/control/form/form-detail/form-button/form-button.tsx","../src/control/form/form-detail/form-button/form-button.provider.ts","../src/control/form/form-detail/form-button/index.ts","../src/control/form/form-detail/form-druipart/form-druipart.tsx","../src/control/form/form-detail/form-druipart/form-druipart.provider.ts","../src/control/form/form-detail/form-druipart/index.ts","../src/control/form/form-detail/form-rawitem/form-rawitem.tsx","../src/control/form/form-detail/form-rawitem/form-rawitem.provider.ts","../src/control/form/form-detail/form-rawitem/index.ts","../src/control/form/form-detail/form-tab-panel/form-tab-panel.tsx","../src/control/form/form-detail/form-tab-panel/form-tab-panel.provider.ts","../src/control/form/form-detail/form-tab-panel/index.ts","../src/control/form/form-detail/form-tab-page/form-tab-page.tsx","../src/control/form/form-detail/form-tab-page/form-tab-page.provider.ts","../src/control/form/form-detail/form-tab-page/index.ts","../src/control/form/form-detail/form-mdctrl/form-mdctrl.tsx","../src/control/form/form-detail/form-mdctrl/form-mdctrl-container/form-mdctrl-container.tsx","../src/control/form/form-detail/form-mdctrl/form-mdctrl-data-view/form-mdctrl-data-view.tsx","../src/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.tsx","../src/control/form/form-detail/form-mdctrl/form-mdctrl-list/form-mdctrl-list.tsx","../src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.tsx","../src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.tsx","../src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-shell.tsx","../src/control/form/form-detail/form-mdctrl/form-mdctrl.provider.ts","../src/control/form/form-detail/form-mdctrl/index.ts","../src/control/form/edit-form/edit-form.provider.ts","../src/control/form/edit-form/edit-form.tsx","../src/control/form/edit-form/index.ts","../src/control/form/form/form.tsx","../src/control/form/form/index.ts","../src/control/pickup-view-panel/pickup-view-panel.tsx","../src/control/pickup-view-panel/pickup-view-panel.provider.ts","../src/control/pickup-view-panel/index.ts","../src/control/list/list.tsx","../src/control/list/list.provider.ts","../src/control/list/index.ts","../src/control/tab-exp-panel/tab-exp-panel.tsx","../src/control/tab-exp-panel/tab-exp-panel.provider.ts","../src/control/tab-exp-panel/index.ts","../src/control/toolbar/toolbar.tsx","../src/control/toolbar/toolbar.provider.ts","../src/control/toolbar/index.ts","../src/control/caption-bar/caption-bar.tsx","../src/control/caption-bar/caption-bar.provider.ts","../src/control/caption-bar/index.ts","../src/control/search-bar/search-bar.tsx","../src/control/search-bar/search-bar.provider.ts","../src/control/search-bar/index.ts","../src/control/drtab/drtab.controller.ts","../src/control/drtab/drtab.tsx","../src/control/drtab/drtab.provider.ts","../src/control/drtab/index.ts","../src/control/tree/tree.provider.ts","../src/control/tree/index.ts","../src/control/data-view/data-view.tsx","../src/control/data-view/data-view.provider.ts","../src/control/data-view/index.ts","../src/control/dashboard/dashboard.tsx","../src/control/dashboard/dashboard.provider.ts","../src/control/dashboard/portlet/container-portlet/container-portlet.tsx","../src/control/dashboard/portlet/container-portlet/container-portlet.provider.ts","../src/control/dashboard/portlet/container-portlet/index.ts","../src/control/dashboard/portlet/portlet-layout/portlet-layout.tsx","../src/control/dashboard/portlet/menu-portlet/menu-portlet.tsx","../src/control/dashboard/portlet/menu-portlet/menu-portlet.provider.ts","../src/control/dashboard/portlet/menu-portlet/index.ts","../src/control/dashboard/index.ts","../src/control/chart/chart.provider.ts","../src/control/chart/index.ts","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/constant/img.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/utils/props.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/language/cn.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/language/en.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/language/index.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/utils/basic.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/utils/validate.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/utils/with-install.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/hooks/use-expose.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/hooks/use-mounted-or-activated.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/hooks/use-rect.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/CalendarDate.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/CalendarTime.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/CalendarScrollContainer.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/CalendarYearMonth.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/Calendar.js","../node_modules/.pnpm/vue3-hash-calendar@1.1.3_vue@3.3.8/node_modules/vue3-hash-calendar/es/index.js","../src/control/calendar/calendar.tsx","../src/control/calendar/calendar.provider.ts","../src/control/calendar/index.ts","../src/editor/not-supported-editor/not-supported-editor.tsx","../src/editor/span/span/span.tsx","../src/editor/span/span-link/span-link.tsx","../src/editor/span/span-editor.controller.ts","../src/editor/span/span-editor.provider.ts","../src/editor/text-box/input/input.tsx","../src/editor/text-box/ibiz-input-number/ibiz-input-number.tsx","../src/editor/text-box/text-box-editor.controller.ts","../src/editor/text-box/text-box-editor.provider.ts","../src/editor/common/right-icon/right-icon.tsx","../src/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.tsx","../src/editor/dropdown-list/dropdown-list-editor.controller.ts","../src/editor/dropdown-list/dropdown-list-editor.provider.ts","../src/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.tsx","../src/editor/check-box-list/checkbox-list-editor.controller.ts","../src/editor/check-box-list/checkbox-list-editor.provider.ts","../src/editor/switch/ibiz-switch/ibiz-switch.tsx","../src/editor/switch/switch-editor.controller.ts","../src/editor/switch/switch-editor.provider.ts","../src/editor/radio-button-list/ibiz-radio/ibiz-radio.tsx","../src/editor/radio-button-list/radio-button-list.controller.ts","../src/editor/radio-button-list/radio-button-list.provider.ts","../src/editor/slider/ibiz-slider/ibiz-slider.tsx","../src/editor/slider/slider-editor.controller.ts","../src/editor/slider/slider-editor.provider.ts","../src/editor/stepper/ibiz-stepper/ibiz-stepper.tsx","../src/editor/stepper/stepper-editor.controller.ts","../src/editor/stepper/stepper-editor.provider.ts","../src/editor/rate/ibiz-rate/ibiz-rate.tsx","../src/editor/rate/rate-editor.controller.ts","../src/editor/rate/rate-editor.provider.ts","../node_modules/.pnpm/rolldate@3.1.3/node_modules/rolldate/dist/rolldate.min.js","../src/editor/date-picker/ibiz-date-picker/ibiz-date-picker.tsx","../src/editor/date-picker/date-picker-editor.controller.ts","../src/editor/date-picker/date-picker-editor.provider.ts","../src/editor/data-picker/ibiz-picker/ibiz-picker.tsx","../src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx","../src/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.tsx","../src/editor/data-picker/picker-editor.controller.ts","../src/editor/data-picker/picker-editor.provider.ts","../src/editor/upload/use/use-van-upload.ts","../src/editor/upload/ibiz-file-upload/ibiz-file-upload.tsx","../src/editor/upload/ibiz-image-upload/ibiz-image-upload.tsx","../src/editor/upload/ibiz-image-select/ibiz-image-select.tsx","../src/editor/upload/upload-editor.controller.ts","../src/editor/upload/upload-editor.provider.ts","../src/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.tsx","../src/editor/number-range/number-range-editor.controller.ts","../src/editor/number-range/number-range-editor.provider.ts","../src/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.tsx","../src/editor/date-range/date-range-editor.controller.ts","../src/editor/date-range/date-range-editor.provider.ts","../src/editor/cascader/ibiz-cascader/ibiz-cascader.tsx","../src/editor/cascader/cascader-editor.controller.ts","../src/editor/cascader/cascader-editor.provider.ts","../src/editor/color-picker/ibiz-color-picker/ibiz-color-picker.tsx","../src/editor/color-picker/color-picker-editor.controller.ts","../src/editor/color-picker/color-picker-editor.provider.ts","../src/editor/markdown/markdown-editor.controller.ts","../src/editor/markdown/markdown-editor.provider.ts","../src/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.tsx","../src/editor/index.ts","../src/locale/index.ts","../src/panel-component/view-content-panel-container/view-content-panel-container.tsx","../src/panel-component/view-content-panel-container/view-content-panel-container.provider.ts","../src/panel-component/view-content-panel-container/index.ts","../src/util/loading-util/loading-util.ts","../src/util/message-util/message-util.ts","../src/util/modal-util/modal-util.ts","../src/util/notification-util/notification-util.ts","../src/util/open-view-util/open-view-util.ts","../src/util/app-modal/app-modal-component.tsx","../src/util/app-drawer/app-drawer-component.tsx","../src/util/overlay-controller/overlay-controller.ts","../src/util/directive/loading.ts","../src/util/store/view-stack/view-stack.ts","../src/panel-component/view-header-panel-container/view-header-panel-container.tsx","../src/panel-component/view-header-panel-container/view-header-panel-container.provider.ts","../src/panel-component/view-header-panel-container/index.ts","../src/panel-component/view-footer-panel-container/view-footer-panel-container.tsx","../src/panel-component/view-footer-panel-container/view-footer-panel-container.provider.ts","../src/panel-component/view-footer-panel-container/index.ts","../src/panel-component/panel-button/panel-button.state.ts","../src/panel-component/panel-button/panel-button.controller.ts","../src/panel-component/panel-button/panel-button.tsx","../src/panel-component/panel-button/panel-button.provider.ts","../src/panel-component/panel-button/index.ts","../src/panel-component/wf-action-button/wf-action-button.state.ts","../src/panel-component/wf-action-button/wf-action-button.controller.ts","../src/panel-component/wf-action-button/wf-action-button.tsx","../src/panel-component/wf-action-button/wf-action-button.provider.ts","../src/panel-component/wf-action-button/index.ts","../src/panel-component/wf-step-trace/wf-step-trace.controller.ts","../src/panel-component/wf-step-trace/wf-step-trace.tsx","../src/panel-component/wf-step-trace/wf-step-trace.provider.ts","../src/panel-component/wf-step-trace/index.ts","../src/panel-component/nav-pos-index/nav-pos-index.state.ts","../src/panel-component/nav-pos-index/nav-pos-index.controller.ts","../src/panel-component/nav-pos-index/nav-pos-index.tsx","../src/panel-component/nav-pos-index/nav-pos-index.provider.ts","../src/panel-component/nav-pos-index/index.ts","../src/panel-component/index.ts","../src/view-engine/index-view.engine.ts","../src/view-engine/mob-edit-view.engine.ts","../src/view-engine/mob-edit-view3.engine.ts","../src/view-engine/mob-md-view-engine.ts","../src/view-engine/mob-pickup-view.engine.ts","../src/view-engine/mob-mpickup-view-engine.ts","../src/view-engine/mob-tree-view.engine.ts","../src/view-engine/mob-pickup-tree-view.engine.ts","../src/view-engine/mob-tab-exp-view.engine.ts","../src/view-engine/mob-wf-dyna-edit-view.engine.ts","../src/view-engine/mob-wf-dyna-action-view.engine.ts","../src/view-engine/mob-wf-dyna-edit-view3.engine.ts","../src/view-engine/mob-wf-dyna-start-view.engine.ts","../src/view-engine/wf-step-trace-view.engine.ts","../src/view-engine/mob-data-view-engine.ts","../src/view-engine/portal-view.engine.ts","../src/view-engine/mob-pickup-md-view.engine.ts","../src/view-engine/mob-custom-view.engine.ts","../src/view-engine/mob-opt-view.engine.ts","../src/view-engine/mob-chart-view.engine.ts","../src/view-engine/mob-calendar-view.engine.ts","../src/view-engine/index.ts","../src/view/404-view/404-view.tsx","../src/view/login-view/login-view.tsx","../src/index.ts"],"sourcesContent":["import { defineComponent, PropType } from 'vue';\nimport { useNamespace } from '@ibiz-template/vue3-util';\nimport { IButtonContainerState } from '@ibiz-template/runtime';\nimport { IAppDEUIActionGroupDetail } from '@ibiz/model-core';\nimport './action-toolbar.scss';\n\nexport const IBizActionToolbar = defineComponent({\n name: 'IBizActionToolbar',\n props: {\n actionDetails: {\n type: Array<IAppDEUIActionGroupDetail>,\n required: true,\n },\n actionsState: {\n type: Object as PropType<IButtonContainerState>,\n required: true,\n },\n caption: String,\n mode: {\n type: String as PropType<'dropdown' | 'buttons'>,\n default: 'buttons',\n },\n },\n setup(props, { emit }) {\n const ns = useNamespace('action-toolbar');\n\n const handleClick = async (\n detail: IAppDEUIActionGroupDetail,\n event: MouseEvent,\n ) => {\n // 阻止事件冒泡 移动端\n event.stopPropagation();\n emit('action-click', detail, event);\n };\n\n return { ns, handleClick };\n },\n render() {\n const details = this.actionDetails || [];\n if (this.mode === 'buttons') {\n // 按钮模式\n return (\n <div class={[this.ns.b(), this.ns.m('buttons')]}>\n {details.length > 0 &&\n details.map(detail => {\n if (this.actionsState[detail.id!].visible) {\n return [\n detail.addSeparator && (\n <div class={this.ns.e('separator')}></div>\n ),\n <van-button\n text={detail.showCaption ? detail.caption : ''}\n size='small'\n onClick={(e: MouseEvent) => this.handleClick(detail, e)}\n disabled={this.actionsState[detail.id!].disabled}\n class={[this.ns.e('item'), this.ns.is('disabled', false)]}\n >\n {{\n icon: () => {\n return (\n detail.showIcon &&\n detail.sysImage && (\n <iBizIcon icon={detail.sysImage}></iBizIcon>\n )\n );\n },\n }}\n </van-button>,\n ];\n }\n return null;\n })}\n </div>\n );\n }\n // 下拉模式\n return <div>下拉模式暂不支持</div>;\n },\n});\n","import {\n computed,\n ConcreteComponent,\n defineComponent,\n h,\n PropType,\n resolveComponent,\n} from 'vue';\nimport { IFlexLayoutPos, IGridLayoutPos, ILayoutPos } from '@ibiz/model-core';\nimport { useNamespace } from '@ibiz-template/vue3-util';\nimport { calcGridLayoutPos, IColState } from '@ibiz-template/runtime';\nimport './col.scss';\n\nexport const IBizCol = defineComponent({\n name: 'IBizCol',\n props: {\n layoutPos: {\n type: Object as PropType<ILayoutPos>,\n required: true,\n },\n state: {\n type: Object as PropType<IColState>,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('col');\n\n /**\n * 计算间距类名\n */\n const spacingClass = computed(() => {\n const ns2 = useNamespace('spacing');\n const classArr: string[] = [];\n if (props.layoutPos.layout !== 'FLEX') {\n return classArr;\n }\n const spacings: IData = {\n top: props.layoutPos.spacingTop,\n bottom: props.layoutPos.spacingBottom,\n left: props.layoutPos.spacingLeft,\n right: props.layoutPos.spacingRight,\n };\n Object.keys(spacings).forEach(position => {\n const value = spacings[position] as string;\n if (!value) {\n return;\n }\n classArr.push(ns2.bm(position, value.toLowerCase()));\n });\n return classArr;\n });\n\n // 计算栅格布局的属性\n const gridAttrs = computed(() => {\n const gridLayoutPos = props.layoutPos as IGridLayoutPos;\n // FLEX布局时不计算\n if (gridLayoutPos.layout === 'FLEX') {\n return {};\n }\n const { md } = calcGridLayoutPos(gridLayoutPos);\n\n return {\n span: md.span,\n offset: md.offset,\n };\n });\n\n const cssVars = computed(() => {\n const layout = props.state.layout;\n const styles = {\n width: layout.width,\n height: layout.height,\n };\n Object.assign(styles, layout.extraStyle);\n return styles;\n });\n\n const colClass = computed(() => {\n return [\n ns.b(),\n props.layoutPos?.layout === 'FLEX' ? ns.m('flex') : ns.m('grid'),\n ns.is('hidden', !props.state.visible),\n ...spacingClass.value,\n props.state.layout.extraClass,\n ];\n });\n\n return { ns, colClass, gridAttrs, cssVars };\n },\n render() {\n // 不显示且不用保活时直接不绘制\n if (!this.state.visible && !this.state.keepAlive) {\n return null;\n }\n\n const defaultSlot = this.$slots.default?.();\n if (this.layoutPos?.layout === 'FLEX') {\n const pos = this.layoutPos as IFlexLayoutPos;\n return (\n <div\n class={this.colClass}\n style={{\n flexGrow: pos.grow,\n flexShrink: pos.shrink === 1 ? undefined : pos.shrink,\n flexBasis: `${pos.basis}px}`,\n ...this.cssVars,\n }}\n >\n {defaultSlot}\n </div>\n );\n }\n\n return h(\n resolveComponent('van-col') as ConcreteComponent,\n {\n class: this.colClass,\n style: this.cssVars,\n ...this.gridAttrs,\n },\n { default: () => defaultSlot },\n );\n },\n});\n","/* eslint-disable */\nimport {\n callWithErrorHandling,\n ComponentInternalInstance,\n ConcreteComponent,\n} from 'vue';\n\nconst __DEV__ = true;\n\nexport const NOOP = () => {}\n\nexport interface SchedulerJob extends Function {\n id?: number;\n pre?: boolean;\n active?: boolean;\n computed?: boolean;\n /**\n * Indicates whether the effect is allowed to recursively trigger itself\n * when managed by the scheduler.\n *\n * By default, a job cannot trigger itself because some built-in method calls,\n * e.g. Array.prototype.push actually performs reads as well (#1740) which\n * can lead to confusing infinite loops.\n * The allowed cases are component update functions and watch callbacks.\n * Component update functions may update child component props, which in turn\n * trigger flush: \"pre\" watch callbacks that mutates state that the parent\n * relies on (#1801). Watch callbacks doesn't track its dependencies so if it\n * triggers itself again, it's likely intentional and it is the user's\n * responsibility to perform recursive state mutation that eventually\n * stabilizes (#1727).\n */\n allowRecurse?: boolean;\n /**\n * Attached by renderer.ts when setting up a component's render effect\n * Used to obtain component information when reporting max recursive updates.\n * dev only.\n */\n ownerInstance?: ComponentInternalInstance;\n}\n\nexport type SchedulerJobs = SchedulerJob | SchedulerJob[];\n\nlet isFlushing = false;\nlet isFlushPending = false;\n\nconst queue: SchedulerJob[] = [];\nlet flushIndex = 0;\n\nconst pendingPostFlushCbs: SchedulerJob[] = [];\nlet activePostFlushCbs: SchedulerJob[] | null = null;\nlet postFlushIndex = 0;\n\nconst resolvedPromise = /* #__PURE__ */ Promise.resolve() as Promise<any>;\nlet currentFlushPromise: Promise<void> | null = null;\n\nconst RECURSION_LIMIT = 100;\ntype CountMap = Map<SchedulerJob, number>;\n\nexport function nextTick<T = void>(this: T, fn?: () => void): Promise<void> {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\n\n// #2768\n// Use binary-search to find a suitable position in the queue,\n// so that the queue maintains the increasing order of job's id,\n// which can prevent the job from being skipped and also can avoid repeated patching.\nfunction findInsertionIndex(id: number) {\n // the start index should be `flushIndex + 1`\n let start = flushIndex + 1;\n let end = queue.length;\n\n while (start < end) {\n const middle = (start + end) >>> 1;\n const middleJobId = getId(queue[middle]);\n middleJobId < id ? (start = middle + 1) : (end = middle);\n }\n\n return start;\n}\n\nexport function queueJob(job: SchedulerJob) {\n // the dedupe search uses the startIndex argument of Array.includes()\n // by default the search index includes the current job that is being run\n // so it cannot recursively trigger itself again.\n // if the job is a watch() callback, the search will start with a +1 index to\n // allow it recursively trigger itself - it is the user's responsibility to\n // ensure it doesn't end up in an infinite loop.\n if (\n !queue.length ||\n !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex,\n )\n ) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\n\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\n\nexport function invalidateJob(job: SchedulerJob) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\n\nexport function queuePostFlushCb(cb: SchedulerJobs) {\n if (!Array.isArray(cb)) {\n if (\n !activePostFlushCbs ||\n !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex,\n )\n ) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n // if cb is an array, it is a component lifecycle hook which can only be\n // triggered by a job, which is already deduped in the main queue, so\n // we can skip duplicate check here to improve perf\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\n\nexport function flushPreFlushCbs(\n seen?: CountMap,\n // if currently flushing, skip the current job itself\n i = isFlushing ? flushIndex + 1 : 0,\n) {\n if (__DEV__) {\n seen = seen || new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (__DEV__ && checkRecursiveUpdates(seen!, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\n\nexport function flushPostFlushCbs(seen?: CountMap) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n\n // #1947 already has active queue, nested flushPostFlushCbs call\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n\n activePostFlushCbs = deduped;\n if (__DEV__) {\n seen = seen || new Map();\n }\n\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n\n for (\n postFlushIndex = 0;\n postFlushIndex < activePostFlushCbs.length;\n postFlushIndex++\n ) {\n if (\n __DEV__ &&\n checkRecursiveUpdates(seen!, activePostFlushCbs[postFlushIndex])\n ) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\n\nconst getId = (job: SchedulerJob): number =>\n job.id == null ? Infinity : job.id;\n\nconst comparator = (a: SchedulerJob, b: SchedulerJob): number => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre) return -1;\n if (b.pre && !a.pre) return 1;\n }\n return diff;\n};\n\nfunction flushJobs(seen?: CountMap) {\n isFlushPending = false;\n isFlushing = true;\n if (__DEV__) {\n seen = seen || new Map();\n }\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child so its render effect will have smaller\n // priority number)\n // 2. If a component is unmounted during a parent component's update,\n // its update can be skipped.\n queue.sort(comparator);\n\n // conditional usage of checkRecursiveUpdate must be determined out of\n // try ... catch block since Rollup by default de-optimizes treeshaking\n // inside try-catch. This can leave all warning code unshaked. Although\n // they would get eventually shaken by a minifier like terser, some minifiers\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\n const check = __DEV__\n ? (job: SchedulerJob) => checkRecursiveUpdates(seen!, job)\n : NOOP;\n\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (__DEV__ && check(job)) {\n continue;\n }\n // console.log(`running:`, job.id)\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n\n flushPostFlushCbs(seen);\n\n isFlushing = false;\n currentFlushPromise = null;\n // some postFlushCb queued jobs!\n // keep flushing until it drains.\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\n\nexport const isFunction = (val: unknown): val is Function =>\n typeof val === 'function'\n\nexport const getComponentName = (\n Component: ConcreteComponent,\n includeInferred = true\n): string | false | undefined => {\n return isFunction(Component)\n ? Component.displayName || Component.name\n : Component.name || (includeInferred && Component.__name)\n}\n\nfunction checkRecursiveUpdates(seen: CountMap, fn: SchedulerJob) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn)!;\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n console.warn(\n `Maximum recursive updates exceeded${\n componentName ? ` in component <${componentName}>` : ``\n }. ` +\n `This means you have a reactive effect that is mutating its own ` +\n `dependencies and thus recursively triggering itself. Possible sources ` +\n `include component template, render function, updated hook or ` +\n `watcher source function.`,\n );\n return true;\n }\n seen.set(fn, count + 1);\n }\n}\n","/* eslint-disable */\nimport {\n callWithAsyncErrorHandling,\n cloneVNode,\n ComponentInternalInstance,\n ComponentOptions,\n ConcreteComponent,\n getCurrentInstance,\n isVNode,\n onBeforeUnmount,\n onMounted,\n onUpdated,\n SetupContext,\n TransitionHooks,\n VNode,\n VNodeProps,\n watch,\n} from 'vue';\nimport { getComponentName, queuePostFlushCb } from './scheduler';\n\nconst __DEV__ = true;\n\nexport const enum ShapeFlags {\n ELEMENT = 1,\n FUNCTIONAL_COMPONENT = 1 << 1,\n STATEFUL_COMPONENT = 1 << 2,\n TEXT_CHILDREN = 1 << 3,\n ARRAY_CHILDREN = 1 << 4,\n SLOTS_CHILDREN = 1 << 5,\n TELEPORT = 1 << 6,\n SUSPENSE = 1 << 7,\n COMPONENT_SHOULD_KEEP_ALIVE = 1 << 8,\n COMPONENT_KEPT_ALIVE = 1 << 9,\n COMPONENT = ShapeFlags.STATEFUL_COMPONENT | ShapeFlags.FUNCTIONAL_COMPONENT,\n}\n\nexport const enum MoveType {\n ENTER,\n LEAVE,\n REORDER\n}\n\nexport interface ComponentRenderContext {\n [key: string]: any;\n _: ComponentInternalInstance;\n}\n\ntype MatchPattern = string | RegExp | (string | RegExp)[];\n\nexport interface KeepAliveProps {\n keyList: string[];\n include?: MatchPattern;\n exclude?: MatchPattern;\n max?: number | string;\n}\n\ntype CacheKey = string | number | symbol | ConcreteComponent;\ntype Cache = Map<CacheKey, VNode>;\ntype Keys = Set<CacheKey>;\n\nexport const isKeepAlive = (vnode: VNode): boolean =>\n (vnode.type as any).__isKeepAlive;\n\nconst KeepAliveImpl = {\n name: `IBizKeepAlive`,\n\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number],\n keyList:[Array]\n },\n\n setup(props: KeepAliveProps, { slots }: SetupContext) {\n const instance = getCurrentInstance()! as any;\n // KeepAlive communicates with the instantiated renderer via the\n // ctx where the renderer passes in its internals,\n // and the KeepAlive instance exposes activate/deactivate implementations.\n // The whole point of this is to avoid importing KeepAlive directly in the\n // renderer to facilitate tree-shaking.\n const sharedContext = instance.ctx;\n\n const cache: Cache = new Map();\n const keys: Keys = new Set();\n let current: VNode | null = null;\n\n if (__DEV__) {\n (instance as any).__v_cache = cache;\n }\n\n const parentSuspense = instance.suspense;\n\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement },\n },\n } = sharedContext;\n\n const storageContainer = createElement('div');\n\n sharedContext.activate = (vnode: any, container: any, anchor: any, isSVG: any, optimized: any) => {\n const instance = vnode.component!\n move(vnode, container, anchor, MoveType.ENTER, parentSuspense)\n // in case props have changed\n patch(\n instance.vnode,\n vnode,\n container,\n anchor,\n instance,\n parentSuspense,\n isSVG,\n vnode.slotScopeIds,\n optimized\n )\n queuePostRenderEffect(() => {\n instance.isDeactivated = false\n if (instance.a) {\n invokeArrayFns(instance.a)\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance.parent, vnode)\n }\n })\n if (__DEV__) {\n // Update components tree\n devtoolsComponentAdded(instance)\n }\n }\n\n sharedContext.deactivate = (vnode: VNode) => {\n const instance = vnode.component!\n move(vnode, storageContainer, null, MoveType.LEAVE, parentSuspense)\n queuePostRenderEffect(() => {\n if ((instance as any).da) {\n invokeArrayFns((instance as any).da)\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance.parent, vnode)\n }\n instance.isDeactivated = true\n })\n if (__DEV__) {\n // Update components tree\n devtoolsComponentAdded(instance)\n }\n }\n\n function unmount(vnode: VNode) {\n // reset the shapeFlag so it can be properly unmounted\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n\n function pruneCache(filter?: (name: string) => boolean) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type as ConcreteComponent);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n\n function pruneCache2(filter?: (name: string) => boolean) {\n cache.forEach((vnode, key) => {\n const name = vnode.key as string;\n // 这边根据keyList确定删除哪个\n // console.log(11, vnode, vnode.key, (filter && filter(name)));\n if (name && (filter && filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n\n function pruneCacheEntry(key: CacheKey) {\n const cached = cache.get(key) as VNode;\n if (!current || cached.type !== current.type) {\n unmount(cached);\n } else if (current) {\n // current active instance should no longer be kept-alive.\n // we can't unmount it now but it might be later, so reset its flag now.\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n\n // prune cache on include/exclude prop change\n watch(\n () => [props.include, props.exclude, props.keyList],\n ([include, exclude, keyList]) => {\n include && pruneCache(name => matches(include, name));\n exclude && pruneCache(name => !matches(exclude, name));\n keyList && pruneCache2(name => !matches(keyList, name));\n },\n // prune post-render after `current` has been updated\n { flush: 'post', deep: true },\n );\n\n // cache sub tree after render\n let pendingCacheKey: CacheKey | null = null;\n const cacheSubtree = () => {\n // fix #1621, the pendingCacheKey could be 0\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n\n onBeforeUnmount(() => {\n // eslint-disable-next-line no-restricted-syntax, guard-for-in\n for (const key in cache) {\n pruneCacheEntry(key);\n }\n });\n\n return () => {\n pendingCacheKey = null;\n\n if (!slots.default) {\n return null;\n }\n\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n console.log(`KeepAlive should contain exactly one component child.`);\n current = null;\n return children;\n }\n if (\n !isVNode(rawVNode) ||\n (!(rawVNode.shapeFlag & ShapeFlags.STATEFUL_COMPONENT) &&\n !(rawVNode.shapeFlag & ShapeFlags.SUSPENSE))\n ) {\n current = null;\n return rawVNode;\n }\n\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type as ConcreteComponent;\n\n // for async components, name check should be based in its loaded\n // inner component if available\n const name = getComponentName(\n isAsyncWrapper(vnode)\n ? (vnode.type as ComponentOptions).__asyncResolved || {}\n : comp,\n );\n\n const { include, exclude, max, keyList } = props;\n\n // 获取第一个子组件上面的key\n const slotKey = vnode.key;\n // 如果 componentName 没有作为keep-alive被包含进来,直接返回\n if (\n // 包括并且不匹配的\n (include && (!name || !matches(include, name))) ||\n // 排除并且匹配的\n (exclude && name && matches(exclude, name)) ||\n // keyList中存在并且不匹配的\n (keyList && !slotKey && !matches(keyList, slotKey))\n ) {\n current = vnode;\n return rawVNode;\n }\n\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n\n // clone vnode if it's reused because we are going to mutate it\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & ShapeFlags.SUSPENSE) {\n (rawVNode as any).ssContent = vnode;\n }\n }\n // #1513 it's possible for the returned vnode to be cloned due to attr\n // fallthrough or scopeId, so the vnode here may not be the final vnode\n // that is mounted. Instead of caching it directly, we store the pending\n // key and cache `instance.subTree` (the normalized vnode) in\n // beforeMount/beforeUpdate hooks.\n pendingCacheKey = key;\n\n if (cachedVNode) {\n // copy over mounted state\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n // recursively update transition hooks on subTree\n setTransitionHooks(vnode, vnode.transition!);\n }\n // avoid vnode being mounted as fresh\n vnode.shapeFlag |= ShapeFlags.COMPONENT_KEPT_ALIVE;\n // make this key the freshest\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n // prune oldest entry\n if (max && keys.size > parseInt(max as string, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n // avoid vnode being unmounted\n vnode.shapeFlag |= ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE;\n\n current = vnode;\n vnode.keepAlive = true;\n vnode.curPath = slotKey;\n return vnode;\n };\n },\n};\n\n\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\nexport const IBizKeepAlive = KeepAliveImpl as any as {\n __isKeepAlive: true;\n new (): {\n $props: VNodeProps & KeepAliveProps;\n };\n};\n\nfunction matches(pattern: MatchPattern, name: string): boolean {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1;\n }\n if (typeof pattern === 'string') {\n return pattern.split(',').includes(name);\n }\n if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n /* istanbul ignore next */\n return false;\n}\n\nfunction resetShapeFlag(vnode: VNode) {\n // bitwise operations to remove keep alive flags\n vnode.shapeFlag &= ~ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE;\n vnode.shapeFlag &= ~ShapeFlags.COMPONENT_KEPT_ALIVE;\n}\n\nfunction getInnerChild(vnode: VNode) {\n return vnode.shapeFlag & ShapeFlags.SUSPENSE ? (vnode as any).ssContent! : vnode;\n}\n\n\nfunction isRegExp(v:MatchPattern) {\n return Object.prototype.toString.call(v) === '[object RegExp]';\n}\n\n\nexport const isAsyncWrapper = (i: ComponentInternalInstance | VNode): boolean =>\n!!(i.type as ComponentOptions).__asyncLoader\n\nexport function setTransitionHooks(vnode: VNode, hooks: TransitionHooks) {\n if (vnode.shapeFlag & ShapeFlags.COMPONENT && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks)\n } else {\n vnode.transition = hooks\n }\n}\n\nexport const invokeArrayFns = (fns: Function[], arg?: any) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg)\n }\n}\n\nexport const queuePostRenderEffect = queuePostFlushCb;\n\nexport function invokeVNodeHook(\n hook: any,\n instance: ComponentInternalInstance | null,\n vnode: VNode,\n prevVNode: VNode | null = null\n) {\n callWithAsyncErrorHandling(hook, instance, 7, [\n vnode,\n prevVNode\n ])\n}\n\nconst enum DevtoolsHooks {\n APP_INIT = 'app:init',\n APP_UNMOUNT = 'app:unmount',\n COMPONENT_UPDATED = 'component:updated',\n COMPONENT_ADDED = 'component:added',\n COMPONENT_REMOVED = 'component:removed',\n COMPONENT_EMIT = 'component:emit',\n PERFORMANCE_START = 'perf:start',\n PERFORMANCE_END = 'perf:end'\n}\n\nexport const devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\n DevtoolsHooks.COMPONENT_ADDED\n)\n\nfunction createDevtoolsComponentHook(hook: DevtoolsHooks) {\n return (component: ComponentInternalInstance) => {\n emit(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : undefined,\n component\n )\n }\n}\n\nfunction emit(event: string, ...args: any[]) {\n if ((window as any).__VUE_DEVTOOLS_GLOBAL_HOOK__) {\n (window as any).__VUE_DEVTOOLS_GLOBAL_HOOK__.emit(event, ...args)\n }\n}\n","import { useNamespace } from '@ibiz-template/vue3-util';\nimport { defineComponent } from 'vue';\nimport './no-data.scss';\n\nexport const IBizNoData = defineComponent({\n name: 'IBizNoData',\n props: {\n text: {\n type: String,\n default: '暂无数据',\n },\n },\n setup() {\n const ns = useNamespace('no-data');\n return { ns };\n },\n render() {\n return (\n <van-empty class={this.ns.b()} description={this.text}>\n {this.$slots.default?.()}\n </van-empty>\n );\n },\n});\n","import { useNamespace } from '@ibiz-template/vue3-util';\nimport { defineComponent, PropType, Ref, ref, watch } from 'vue';\nimport { createUUID } from 'qx-util';\nimport {\n IHtmlItem,\n IPanelRawItem,\n IRawItemContainer,\n ITextItem,\n} from '@ibiz/model-core';\nimport './rawitem.scss';\n\nexport const IBizRawItem = defineComponent({\n name: 'IBizRawItem',\n props: {\n type: {\n type: String,\n required: false,\n },\n content: {\n type: [String, Object, Number],\n },\n rawItem: {\n type: Object as PropType<IRawItemContainer>,\n required: false,\n },\n },\n setup(props) {\n const ns = useNamespace('rawitem');\n let rawItem = null;\n let contentType = '';\n if (props.rawItem) {\n rawItem = props.rawItem.rawItem!;\n contentType = rawItem.contentType!;\n }\n const rawItemType = ref(props.type || contentType || '');\n const rawItemContent: Ref<string | number | IData> = ref('');\n let sysImage = null;\n if (contentType === 'IMAGE') {\n sysImage = (rawItem as IPanelRawItem).sysImage;\n }\n // 传入内容\n if (contentType === 'RAW' || contentType === 'HTML') {\n if (contentType === 'RAW') {\n rawItemType.value = 'TEXT';\n rawItemContent.value = (rawItem as ITextItem).caption!;\n } else {\n rawItemContent.value = (rawItem as IHtmlItem).content!;\n }\n } else if (\n ['VIDEO', 'DIVIDER', 'INFO', 'WARNING', 'ERROR'].includes(contentType!)\n ) {\n // 暂不支持\n // content = rawContent;\n } else if (contentType === 'IMAGE' && sysImage) {\n rawItemContent.value = sysImage;\n }\n\n // 判断传入是否为图片路径\n const isImg = (imgUrl: string) => {\n const reg =\n /^https?:|^http?:|(\\.png|\\.svg|\\.jpg|\\.png|\\.gif|\\.psd|\\.tif|\\.bmp|\\.jpeg)/;\n return reg.test(imgUrl);\n };\n\n // 视频类型内容参数\n const playerParams = ref({\n id: createUUID(),\n path: '',\n mute: true,\n autoplay: true,\n replay: false,\n showcontrols: true,\n });\n\n // 分割线类型参数\n const dividerParams = ref({\n contentPosition: 'center',\n html: '',\n });\n\n // 类型参数\n const alertParams = ref({\n type: 'info',\n title: '',\n closeabled: true,\n showIcon: false,\n });\n\n // 文本类型显示值\n const rawItemText: Ref<string | number | IData> = ref('');\n\n // 转换各类值操作\n const convertValue = () => {\n // 图片类型\n if (rawItemType.value === 'IMAGE') {\n if (typeof props.content === 'string') {\n if (isImg(props.content)) {\n rawItemContent.value = { imagePath: props.content };\n } else {\n rawItemContent.value = { cssClass: props.content };\n }\n }\n }\n\n // 文本类型\n if (\n [\n 'TEXT',\n 'HEADING1',\n 'HEADING2',\n 'HEADING3',\n 'HEADING4',\n 'HEADING5',\n 'HEADING6',\n 'PARAGRAPH',\n 'HTML',\n ].includes(rawItemType.value)\n ) {\n rawItemText.value = rawItemContent.value;\n if (typeof rawItemText.value === 'string') {\n rawItemText.value = rawItemText.value.replaceAll('<', '<');\n rawItemText.value = rawItemText.value.replaceAll('>', '>');\n rawItemText.value = rawItemText.value.replaceAll('&nbsp;', ' ');\n rawItemText.value = rawItemText.value.replaceAll(' ', ' ');\n }\n }\n\n if (\n ['VIDEO', 'DIVIDER', 'INFO', 'WARNING', 'ERROR'].includes(\n rawItemType.value,\n )\n ) {\n if (rawItemContent.value) {\n let rawConfig = {};\n try {\n if (typeof rawItemContent.value === 'string') {\n // eslint-disable-next-line no-new-func\n const func = new Function(`return (${rawItemContent.value});`);\n rawConfig = func();\n switch (rawItemType.value) {\n case 'VIDEO':\n Object.assign(playerParams.value, rawConfig);\n break;\n case 'DIVIDER':\n Object.assign(dividerParams.value, rawConfig);\n break;\n case 'INFO':\n case 'WARNING':\n case 'ERROR':\n alertParams.value.type =\n rawItemType.value.toLocaleLowerCase();\n Object.assign(alertParams.value, rawConfig);\n break;\n default:\n break;\n }\n }\n } catch {\n ibiz.log.error(`${rawItemType.value}类型自定义参数配置错误`);\n }\n }\n }\n };\n\n convertValue();\n\n watch(\n () => props.content,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n rawItemContent.value = newVal as string | number;\n convertValue();\n }\n },\n {\n immediate: true,\n },\n );\n\n return {\n ns,\n rawItemText,\n playerParams,\n dividerParams,\n alertParams,\n rawItemType,\n rawItemContent,\n };\n },\n render() {\n const renderContent = () => {\n if (this.rawItemType === 'IMAGE') {\n return (\n <i-biz-icon\n class={[this.ns.e('image')]}\n icon={this.rawItemContent}\n ></i-biz-icon>\n );\n }\n if (this.rawItemType === 'TEXT') {\n return <span class={this.ns.e('text')}>{this.rawItemText}</span>;\n }\n if (this.rawItemType === 'HEADING1') {\n return <h1 class={this.ns.e('h1')}>{this.rawItemText}</h1>;\n }\n if (this.rawItemType === 'HEADING2') {\n return <h2 class={this.ns.e('h2')}>{this.rawItemText}</h2>;\n }\n if (this.rawItemType === 'HEADING3') {\n return <h3 class={this.ns.e('h3')}>{this.rawItemText}</h3>;\n }\n if (this.rawItemType === 'HEADING4') {\n return <h4 class={this.ns.e('h4')}>{this.rawItemText}</h4>;\n }\n if (this.rawItemType === 'HEADING5') {\n return <h5 class={this.ns.e('h5')}>{this.rawItemText}</h5>;\n }\n if (this.rawItemType === 'HEADING6') {\n return <h6 class={this.ns.e('h6')}>{this.rawItemText}</h6>;\n }\n if (this.rawItemType === 'PARAGRAPH') {\n return <p class={this.ns.e('paragraph')}>{this.rawItemText}</p>;\n }\n if (this.rawItemType === 'HTML') {\n return (\n <div class={this.ns.e('paragraph')} v-html={this.rawItemText}></div>\n );\n }\n if (this.rawItemType === 'VIDEO') {\n return (\n <div class={this.ns.e('video')}>\n <video\n id={this.playerParams.id}\n src={this.playerParams.path}\n autoplay={this.playerParams.autoplay}\n controls={this.playerParams.showcontrols}\n loop={this.playerParams.replay}\n muted={this.playerParams.mute}\n >\n <source src={this.playerParams.path} type='video/mp4' />\n <source src={this.playerParams.path} type='video/ogg' />\n <source src={this.playerParams.path} type='video/webm' />\n 你的浏览器不支持video标签\n </video>\n </div>\n );\n }\n if (this.rawItemType === 'DIVIDER') {\n return (\n <el-divider content-position={this.dividerParams.contentPosition}>\n <span v-html={this.dividerParams.html}></span>\n </el-divider>\n );\n }\n if (\n this.rawItemType === 'INFO' ||\n this.rawItemType === 'WARNING' ||\n this.rawItemType === 'ERROR'\n ) {\n return (\n <el-alert\n title={this.alertParams.title}\n type={this.alertParams.type}\n show-icon={this.alertParams.showIcon}\n closable={this.alertParams.closeabled}\n ></el-alert>\n );\n }\n if (this.rawItemType === 'MARKDOWN') {\n return (\n <iBizMarkDown value={this.content} disabled={true}></iBizMarkDown>\n );\n }\n if (['PLACEHOLDER'].includes(this.rawItemType)) {\n return null;\n }\n return null;\n };\n\n return <div class={this.ns.b()}>{renderContent()}</div>;\n },\n});\n","import { useNamespace } from '@ibiz-template/vue3-util';\nimport { IFlexLayout, ILayout } from '@ibiz/model-core';\nimport { defineComponent, PropType } from 'vue';\n\nexport const IBizRow = defineComponent({\n name: 'IBizRow',\n props: {\n layout: Object as PropType<ILayout>,\n },\n setup() {\n const ns = useNamespace('row');\n return { ns };\n },\n render() {\n const defaultSlot = this.$slots.default?.();\n if (this.layout?.layout === 'FLEX') {\n const { dir, align, valign } = this.layout as IFlexLayout;\n const _dir = dir || 'column';\n return (\n <div\n class={[this.ns.b(), this.ns.m('flex')]}\n style={`display:flex;flex-direction: ${_dir};justify-content: ${align};align-items: ${valign};`}\n >\n {defaultSlot}\n </div>\n );\n }\n return (\n <van-row class={[this.ns.b(), this.ns.m('grid')]}>{defaultSlot}</van-row>\n );\n },\n});\n","import {\n IBizViewShell,\n IBizIcon,\n IBizControlBase,\n IBizRouterView,\n IBizControlShell,\n} from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { IBizActionToolbar } from './action-toolbar/action-toolbar';\nimport { IBizCol } from './col/col';\nimport { IBizKeepAlive } from './keep-alive/keep-alive';\nimport { IBizNoData } from './no-data/no-data';\nimport { IBizRawItem } from './rawitem/rawitem';\nimport { IBizRow } from './row/row';\n\nexport * from './col/col';\nexport * from './row/row';\nexport * from './keep-alive/keep-alive';\n\nexport const IBizCommonComponents = {\n install: (v: App): void => {\n v.component(IBizViewShell.name, IBizViewShell);\n v.component(IBizRow.name, IBizRow);\n v.component(IBizCol.name, IBizCol);\n v.component(IBizIcon.name, IBizIcon);\n v.component(IBizControlBase.name, IBizControlBase);\n v.component(IBizKeepAlive.name, IBizKeepAlive);\n v.component(IBizRouterView.name, IBizRouterView);\n v.component(IBizActionToolbar.name, IBizActionToolbar);\n v.component(IBizNoData.name, IBizNoData);\n v.component(IBizControlShell.name, IBizControlShell);\n v.component(IBizRawItem.name, IBizRawItem);\n },\n};\n\nexport default IBizCommonComponents;\n","import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport {\n defineComponent,\n PropType,\n resolveComponent,\n h,\n VNode,\n reactive,\n ComponentPublicInstance,\n} from 'vue';\nimport {\n IPanelContainer,\n IPanelField,\n IPanelItem,\n IViewLayoutPanel,\n} from '@ibiz/model-core';\nimport './view-layout-panel.scss';\nimport { ViewLayoutPanelController } from '@ibiz-template/runtime';\n\n/**\n * 绘制面板成员\n *\n * @author lxm\n * @date 2023-02-07 05:58:43\n * @param {IPanelItem} panelItem\n * @param {ViewLayoutPanelController} c\n * @returns {*} {(VNode | undefined)}\n */\nfunction renderPanelItem(\n panelItem: IPanelItem,\n c: ViewLayoutPanelController,\n ins: ComponentPublicInstance,\n): VNode | undefined {\n if ((panelItem as IPanelField).hidden) {\n return;\n }\n const { providers, panelItems } = c;\n const provider = providers[panelItem.id!];\n if (!provider) {\n return (\n <div>\n 暂未支持的面板项: {panelItem.id} - {panelItem.itemType}\n </div>\n );\n }\n const component = resolveComponent(provider.component);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let children: any;\n // 占位类型成员填充外部对应的插槽。\n if (panelItem.itemType === 'CTRLPOS' && ins.$slots[panelItem.id!]) {\n children = () => {\n return ins.$slots[panelItem.id!]!();\n };\n } else if ((panelItem as IPanelContainer).panelItems?.length) {\n children = () => {\n return (panelItem as IPanelContainer).panelItems!.map(child => {\n return renderPanelItem(child, c, ins);\n });\n };\n }\n\n return h(\n component,\n {\n modelData: panelItem,\n controller: panelItems[panelItem.id!],\n key: panelItem.id,\n },\n children,\n );\n}\n\n/**\n * 视图布局面板组件\n */\nexport const ViewLayoutPanelControl = defineComponent({\n name: 'IBizViewLayoutPanelControl',\n props: {\n modelData: {\n type: Object as PropType<IViewLayoutPanel>,\n required: true,\n },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n inputData: Object as PropType<IData>,\n },\n setup() {\n const c = useControlController(\n (...args) => new ViewLayoutPanelController(...args),\n );\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n\n c.evt.on('onCreated', () => {\n const keys = Object.keys(c.panelItems);\n keys.forEach(key => {\n const panelItem = c.panelItems[key];\n panelItem.state = reactive(panelItem.state);\n });\n });\n\n return { c, ns };\n },\n render() {\n const { state, model } = this.c;\n return (\n <iBizControlBase controller={this.c}>\n <iBizRow class={this.ns.b('content')} layout={{ layout: 'FLEX' }}>\n {state.isCreated &&\n (this.$slots.default\n ? this.$slots.default({\n panelItems: this.c.panelItems,\n })\n : model.rootPanelItems?.map(panelItem => {\n const subC = this.c.panelItems[panelItem.id!];\n // 视图布局面板的子默认布局改成flex\n // eslint-disable-next-line no-param-reassign\n panelItem.layoutPos!.layout = 'FLEX';\n return (\n <iBizCol layoutPos={panelItem.layoutPos} state={subC.state}>\n {renderPanelItem(panelItem, this.c, this)}\n </iBizCol>\n );\n }))}\n </iBizRow>\n </iBizControlBase>\n );\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n\n/**\n * 视图布局面板部件适配器\n *\n * @author lxm\n * @date 2022-10-25 18:10:57\n * @export\n * @class ViewLayoutPanelProvider\n * @implements {IControlProvider}\n */\nexport class ViewLayoutPanelProvider implements IControlProvider {\n component: string = 'IBizViewLayoutPanelControl';\n}\n","import { registerControlProvider, ControlType } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { ViewLayoutPanelControl } from './view-layout-panel';\nimport { ViewLayoutPanelProvider } from './view-layout-panel.provider';\n\nexport * from './view-layout-panel.provider';\n\nexport const IBizViewLayoutPanelControl = withInstall(\n ViewLayoutPanelControl,\n function (v: App) {\n v.component(ViewLayoutPanelControl.name, ViewLayoutPanelControl);\n registerControlProvider(\n ControlType.VIEW_LAYOUT_PANEL,\n () => new ViewLayoutPanelProvider(),\n );\n },\n);\n\nexport default IBizViewLayoutPanelControl;\n","import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport {\n defineComponent,\n PropType,\n resolveComponent,\n h,\n VNode,\n reactive,\n ComponentPublicInstance,\n watch,\n} from 'vue';\nimport {\n IPanel,\n IPanelContainer,\n IPanelField,\n IPanelItem,\n IPanelTabPanel,\n} from '@ibiz/model-core';\nimport './panel.scss';\nimport { IControlProvider, PanelController } from '@ibiz-template/runtime';\n\n/**\n * 绘制面板成员\n *\n * @author lxm\n * @date 2023-02-07 05:58:43\n * @param {IPanelItem} panelItem\n * @param {PanelController} c\n * @returns {*} {(VNode | undefined)}\n */\nfunction renderPanelItem(\n panelItem: IPanelItem,\n c: PanelController,\n ins: ComponentPublicInstance,\n): VNode | undefined {\n if ((panelItem as IPanelField).hidden) {\n return;\n }\n const { providers, panelItems } = c;\n const provider = providers[panelItem.id!];\n if (!provider) {\n return (\n <div>\n 暂未支持的面板项: {panelItem.id} - {panelItem.itemType}\n </div>\n );\n }\n const component = resolveComponent(provider.component);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let children: any;\n // 占位类型成员填充外部对应的插槽。\n if (panelItem.itemType === 'CTRLPOS' && ins.$slots[panelItem.id!]) {\n children = (): VNode[] => {\n return ins.$slots[panelItem.id!]!();\n };\n } else if (\n panelItem.itemType === 'TABPANEL' &&\n (panelItem as IPanelTabPanel).panelTabPages?.length\n ) {\n children = (): (VNode | undefined)[] => {\n return (panelItem as IPanelTabPanel).panelTabPages!.map(child => {\n return renderPanelItem(child, c, ins);\n });\n };\n } else if ((panelItem as IPanelContainer).panelItems?.length) {\n children = (): (VNode | undefined)[] => {\n return (panelItem as IPanelContainer).panelItems!.map(child => {\n return renderPanelItem(child, c, ins);\n });\n };\n }\n\n return h(\n component,\n {\n modelData: panelItem,\n controller: panelItems[panelItem.id!],\n key: panelItem.id,\n },\n children,\n );\n}\n\n/**\n * 视图布局面板组件\n */\nexport const PanelControl = defineComponent({\n name: 'IBizPanelControl',\n props: {\n modelData: {\n type: Object as PropType<IPanel>,\n required: true,\n },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n provider: { type: Object as PropType<IControlProvider> },\n data: Object as PropType<IData>,\n loadDefault: { type: Boolean, default: true },\n },\n setup(props) {\n const c = useControlController<PanelController>(\n (...args) => new PanelController(...args),\n );\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n\n watch(\n () => props.data,\n newVal => {\n if (newVal) {\n c.setInputData(newVal);\n c.load();\n }\n },\n {\n immediate: true,\n },\n );\n\n c.evt.on('onCreated', () => {\n // 面板成员state响应式\n const keys = Object.keys(c.panelItems);\n keys.forEach(key => {\n const panelItem = c.panelItems[key];\n panelItem.state = reactive(panelItem.state);\n });\n });\n\n return { c, ns };\n },\n render() {\n const { state, model } = this.c;\n return (\n <iBizControlBase controller={this.c}>\n <iBizRow class={this.ns.b('content')} layout={{ layout: 'FLEX' }}>\n {state.isCreated &&\n (this.$slots.default\n ? this.$slots.default({\n panelItems: this.c.panelItems,\n })\n : model.rootPanelItems?.map(panelItem => {\n const subC = this.c.panelItems[panelItem.id!];\n // 视图布局面板的子默认布局改成flex\n // eslint-disable-next-line no-param-reassign\n panelItem.layoutPos!.layout = 'FLEX';\n return (\n <iBizCol layoutPos={panelItem.layoutPos} state={subC.state}>\n {renderPanelItem(panelItem, this.c, this)}\n </iBizCol>\n );\n }))}\n </iBizRow>\n </iBizControlBase>\n );\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n\n/**\n * 面板部件适配器\n *\n * @author lxm\n * @date 2022-10-25 18:10:57\n * @export\n * @class ViewLayoutPanelProvider\n * @implements {IControlProvider}\n */\nexport class PanelProvider implements IControlProvider {\n component: string = 'IBizPanelControl';\n}\n","import { registerControlProvider, ControlType } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { PanelControl } from './panel';\nimport { PanelProvider } from './panel.provider';\n\nexport * from './panel.provider';\n\nexport const IBizPanelControl = withInstall(PanelControl, function (v: App) {\n v.component(PanelControl.name, PanelControl);\n registerControlProvider(ControlType.PANEL, () => new PanelProvider());\n});\n\nexport default IBizPanelControl;\n","import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport { defineComponent, PropType, VNode } from 'vue';\nimport { IDEMobMDCtrl, ILayoutPanel, IUIActionGroup } from '@ibiz/model-core';\nimport { IMobMDCtrlRowState, MDCtrlController } from '@ibiz-template/runtime';\nimport './md-ctrl.scss';\n\nexport const MDCtrlControl = defineComponent({\n name: 'IBizMDCtrlControl',\n props: {\n modelData: { type: Object as PropType<IDEMobMDCtrl>, required: true },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n /**\n * 部件行数据默认激活模式\n * - 0 不激活\n * - 1 单击激活\n * - 2 双击激活(默认值)\n *\n * @type {(number | 0 | 1 | 2)}\n */\n mdctrlActiveMode: { type: Number, default: 1 },\n\n /**\n * 是否为单选\n * - true 单选\n * - false 多选\n *\n * @type {(Boolean)}\n */\n singleSelect: { type: Boolean, default: true },\n selectedData: { type: Object as PropType<IData[]>, required: false },\n mode: { type: String, default: 'LIST' },\n },\n setup(props) {\n const c = useControlController((...args) => new MDCtrlController(...args));\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n\n // 左滑界面行为组\n const leftSlidingActionGroup = c.model.deuiactionGroup;\n // 右滑界面行为组\n const rightSlidingActionGroup = c.model.deuiactionGroup2;\n\n // 绘制项布局面板\n const renderPanelItem = (item: IData, modelData: ILayoutPanel): VNode => {\n const { context, params } = c;\n return (\n <iBizControlShell\n data={item}\n modelData={modelData}\n context={context}\n params={params}\n onClick={() => c.onRowClick(item)}\n ></iBizControlShell>\n );\n };\n\n const isSelect = (row: IMobMDCtrlRowState) => {\n const findIndex = c.state.selectedData.findIndex(data => {\n return data.srfkey === row.data.srfkey;\n });\n return findIndex !== -1;\n };\n\n const calcItemClass = (row: IMobMDCtrlRowState) => {\n const select = isSelect(row);\n const itemClass = [ns.b('item'), ns.is('active', select)];\n return itemClass;\n };\n\n const renderIcon = (row: IMobMDCtrlRowState) => {\n return <img class={ns.b('image')} src={row.data.image} alt='' />;\n };\n\n const renderRightSlot = (row: IMobMDCtrlRowState) => {\n const select = isSelect(row);\n return <van-radio checked={select} />;\n };\n\n // 绘制项内容\n const renderItemContent = (row: IMobMDCtrlRowState) => {\n const itemClass = calcItemClass(row);\n const slotOption = {};\n if (Object.prototype.hasOwnProperty.call(row.data, 'image')) {\n Object.assign(slotOption, { icon: renderIcon(row) });\n }\n if (props.mode === 'SELECT') {\n Object.assign(slotOption, { 'right-icon': renderRightSlot(row) });\n }\n return (\n <van-cell\n class={itemClass}\n is-link\n title={row.data.srfmajortext || ''}\n onClick={() => c.onRowClick(row.data)}\n >\n {slotOption}\n </van-cell>\n );\n };\n\n const renderNoData = (): VNode | undefined => {\n // 未加载不显示无数据\n const { isLoaded } = c.state;\n if (!isLoaded) {\n return;\n }\n return (\n isLoaded && (\n <iBizNoData\n text={c.model.emptyText}\n emptyTextLanguageRes={c.model.emptyTextLanguageRes}\n ></iBizNoData>\n )\n );\n };\n\n // 绘制滑动行为组\n const renderSlidingActionGroup = (\n group: IUIActionGroup,\n row: IMobMDCtrlRowState,\n ) => {\n const groupDetails = group.uiactionGroupDetails || [];\n if (!groupDetails || groupDetails.length === 0) {\n return null;\n }\n const btnContainer = row.uaColStates[group.id!];\n return groupDetails.map(detail => {\n const btn = btnContainer[detail.id!];\n if (btn.visible === false) {\n return null;\n }\n return (\n <van-button\n square\n type='primary'\n text={detail.caption}\n disabled={btn.disabled || btn.loading}\n onClick={(e: MouseEvent) => c.onActionClick(detail, row, e)}\n />\n );\n });\n };\n\n // 绘制默认列表项\n const renderDefaultItem = (row: IMobMDCtrlRowState) => {\n const panel = props.modelData.itemLayoutPanel;\n const isItemSliding = !!(\n leftSlidingActionGroup || rightSlidingActionGroup\n );\n if (isItemSliding) {\n return (\n <van-swipe-cell key={row.data.srfkey}>\n {{\n left: rightSlidingActionGroup\n ? () => renderSlidingActionGroup(rightSlidingActionGroup, row)\n : null,\n right: leftSlidingActionGroup\n ? () => renderSlidingActionGroup(leftSlidingActionGroup, row)\n : null,\n default: () => {\n return panel\n ? renderPanelItem(row.data, panel)\n : renderItemContent(row);\n },\n }}\n </van-swipe-cell>\n );\n }\n return panel ? renderPanelItem(row.data, panel) : renderItemContent(row);\n };\n const renderDefault = () => {\n return c.state.rows.map(item => {\n return renderDefaultItem(item);\n });\n };\n\n const renderGroup = () => {\n return c.state.groups.map(group => {\n return (\n <div title={group.caption}>\n <div class={ns.b('group-caption')}> {group.caption}</div>\n {group.children.map(item => {\n return renderDefaultItem(item as IMobMDCtrlRowState);\n })}\n </div>\n );\n });\n };\n\n // 绘制卡片内容\n const renderMDContent = () => {\n return (\n <van-list\n finished={c.state.total <= c.state.rows.length}\n finished-text={c.state.curPage > 1 && '我已经到底啦~'}\n onLoad={() => c.loadMore()}\n >\n {c.model.groupMode !== 'NONE' ? renderGroup() : renderDefault()}\n </van-list>\n );\n };\n\n return {\n c,\n ns,\n renderMDContent,\n renderNoData,\n };\n },\n render() {\n return (\n <iBizControlBase controller={this.c}>\n {this.c.state.isCreated &&\n (this.c.state.rows.length > 0\n ? this.renderMDContent()\n : this.renderNoData())}\n </iBizControlBase>\n );\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n\n/**\n * 多数据部件适配器\n *\n * @author chitanda\n * @date 2023-06-16 10:06:51\n * @export\n * @class MDCTRLProvider\n * @implements {IControlProvider}\n */\nexport class MDCtrlProvider implements IControlProvider {\n component: string = 'IBizMDCtrlControl';\n}\n","import { registerControlProvider, ControlType } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { MDCtrlControl } from './md-ctrl';\nimport { MDCtrlProvider } from './md-ctrl.provider';\n\nexport * from './md-ctrl.provider';\n\nexport const IBizMDCtrlControl = withInstall(MDCtrlControl, function (v: App) {\n v.component(MDCtrlControl.name, MDCtrlControl);\n registerControlProvider(ControlType.MOB_MDCTRL, () => new MDCtrlProvider());\n});\n\nexport default IBizMDCtrlControl;\n","import { prepareControl, useControlController } from '@ibiz-template/vue3-util';\nimport { IAppMenu, IAppMenuItem } from '@ibiz/model-core';\nimport { computed, defineComponent, onMounted, PropType, ref } from 'vue';\nimport './app-menu.scss';\nimport { useRoute } from 'vue-router';\nimport { AppMenuController } from '@ibiz-template/runtime';\n\nexport const AppMenuControl = defineComponent({\n name: 'IBizAppMenuControl',\n props: {\n modelData: { type: Object as PropType<IAppMenu>, required: true },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n },\n setup(props) {\n const c = useControlController((...args) => new AppMenuController(...args));\n const { controlClass, ns } = prepareControl(c);\n const activeName = ref();\n\n // 默认激活菜单项\n const columnNum = computed(() => {\n // todo 根据屏幕宽度计算显示多少列\n return 5;\n });\n // 路由对象\n const route = useRoute();\n // 计算当前路由匹配菜单\n const calcCurMenu = (): IAppMenuItem | undefined => {\n const allItems = c.getAllItems();\n const app = ibiz.hub.getApp(c.context.srfappid);\n return allItems.find(item => {\n if (item.itemType === 'MENUITEM' && item.appFuncId) {\n const func = app.getAppFunc(item.appFuncId!);\n return func?.appViewId?.split('.')?.[1] === route.params.view2;\n }\n return false;\n });\n };\n\n const onTabChange = async (active: string, event?: MouseEvent) => {\n activeName.value = active;\n await c.onClickMenuItem(active, event);\n };\n\n onMounted(async () => {\n const allItems = c.getAllItems();\n // 默认激活的菜单项\n const defaultActiveMenuItem = allItems.find(item => {\n return item.openDefault && !item.hidden;\n });\n if (\n defaultActiveMenuItem &&\n !route.params.view2 &&\n !route.fullPath.includes('404')\n ) {\n onTabChange(defaultActiveMenuItem.id!, undefined);\n } else if (ibiz.config.appMenu.enableEcho) {\n const activeMenu = calcCurMenu();\n activeName.value = activeMenu ? activeMenu.id! : '';\n }\n });\n\n const renderDefault = () => {\n const { model, state } = c;\n let appMenu = null;\n if (state.isCreated && model.appMenuItems?.length) {\n appMenu = model.appMenuItems.map(item => {\n if (item.itemType === 'MENUITEM') {\n const itemState = state.menuItemsState[item.id!];\n if (itemState.visible) {\n return (\n <van-tabbar-item name={item.id}>\n {{\n icon: () => (\n <iBizIcon\n slot='icon'\n class={ns.e('icon')}\n icon={item.sysImage}\n ></iBizIcon>\n ),\n default: () => <span>{item.caption}</span>,\n }}\n </van-tabbar-item>\n );\n }\n }\n return null;\n });\n }\n return (\n <div class={[ns.b(), ns.m(props.modelData.id)]}>\n <van-tabbar modelValue={activeName.value} onChange={onTabChange}>\n {appMenu}\n </van-tabbar>\n </div>\n );\n };\n const renderIconView = () => {\n const { model } = c;\n const { controlStyle } = model;\n return (\n <van-grid\n clickable\n column-num={columnNum.value}\n border={false}\n class={[\n ns.b(),\n ns.b(controlStyle!.toLowerCase()),\n ns.m(props.modelData.id),\n ]}\n >\n {model?.appMenuItems?.map(item => {\n return (\n item.itemType === 'MENUITEM' && (\n <van-grid-item\n class={ns.b('item')}\n text={item.caption}\n onClick={(event: MouseEvent) =>\n c.onClickMenuItem(item.id!, event, false)\n }\n >\n {{\n icon: () => {\n return (\n <div class={ns.b('icon')}>\n {item.sysImage ? (\n <iBizIcon icon={item.sysImage}></iBizIcon>\n ) : (\n <van-icon name='setting-o'></van-icon>\n )}\n </div>\n );\n },\n }}\n </van-grid-item>\n )\n );\n })}\n </van-grid>\n );\n };\n const renderListView = () => {\n const { model } = c;\n const { controlStyle } = model;\n return (\n <van-list\n class={[\n ns.b(),\n ns.b(controlStyle!.toLowerCase()),\n ns.m(props.modelData.id),\n ]}\n >\n {model?.appMenuItems?.map(item => {\n let renderItem = null;\n switch (item.itemType) {\n case 'MENUITEM':\n renderItem = (\n <van-cell\n class={[ns.b('item')]}\n is-link\n center\n title={item.caption}\n onClick={(event: MouseEvent) =>\n c.onClickMenuItem(item.id!, event, false)\n }\n >\n {{\n icon: () => {\n return (\n item.sysImage && (\n <div class={ns.b('icon')}>\n <iBizIcon icon={item.sysImage}></iBizIcon>\n </div>\n )\n );\n },\n }}\n </van-cell>\n );\n break;\n case 'SEPERATOR':\n renderItem = <van-divider />;\n break;\n default:\n break;\n }\n return renderItem;\n })}\n </van-list>\n );\n };\n return {\n controlClass,\n c,\n onTabChange,\n ns,\n renderDefault,\n renderIconView,\n renderListView,\n };\n },\n render() {\n const { model } = this.c;\n const { controlStyle } = model;\n switch (controlStyle) {\n case 'ICONVIEW':\n return this.renderIconView();\n case 'LISTVIEW':\n return this.renderListView();\n default:\n return this.renderDefault();\n }\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n\n/**\n * 应用菜单适配器\n *\n * @author lxm\n * @date 2022-10-25 18:10:57\n * @export\n * @class AppMenuProvider\n * @implements {IControlProvider}\n */\nexport class AppMenuProvider implements IControlProvider {\n component: string = 'IBizAppMenuControl';\n}\n","import { ControlType, registerControlProvider } from '@ibiz-template/runtime';\nimport { App } from 'vue';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { AppMenuControl } from './app-menu';\nimport { AppMenuProvider } from './app-menu.provider';\n\nexport * from './app-menu.provider';\n\nexport const IBizAppMenuControl = withInstall(\n AppMenuControl,\n function (v: App) {\n v.component(AppMenuControl.name, AppMenuControl);\n registerControlProvider(ControlType.APP_MENU, () => new AppMenuProvider());\n },\n);\n\nexport default IBizAppMenuControl;\n","import { SearchFormController } from '@ibiz-template/runtime';\nimport { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport { IDESearchForm } from '@ibiz/model-core';\nimport { defineComponent, PropType, reactive } from 'vue';\nimport './search-form.scss';\n\nexport const SearchFormControl = defineComponent({\n name: 'IBizSearchFormControl',\n props: {\n modelData: {\n type: Object as PropType<IDESearchForm>,\n required: true,\n },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n },\n setup() {\n const c = useControlController(\n (...args) => new SearchFormController(...args),\n );\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n\n c.evt.on('onCreated', () => {\n const keys = Object.keys(c.details);\n keys.forEach(key => {\n const detail = c.details[key];\n detail.state = reactive(detail.state);\n });\n });\n\n return { c, ns };\n },\n\n render() {\n const { state } = this.c;\n if (!state.isCreated) {\n return;\n }\n return (\n <iBizFormControl\n class={this.ns.b()}\n controller={this.c}\n nativeOnkeyup={(e: KeyboardEvent) => this.c.onKeyUp(e)}\n >\n {{\n ...this.$slots,\n searchFooter: () => {\n return (\n <div class={this.ns.b('buttons')}>\n <van-button\n class={this.ns.be('buttons', 'search')}\n onClick={() => this.c.onSearchButtonClick()}\n >\n 查询\n </van-button>\n <van-button\n class={this.ns.be('buttons', 'reset')}\n onClick={() => this.c.reset()}\n >\n 重置\n </van-button>\n </div>\n );\n },\n }}\n </iBizFormControl>\n );\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n\n/**\n * 搜索表单适配器\n *\n * @author lxm\n * @date 2022-10-25 18:10:57\n * @export\n * @class SearchFormProvider\n * @implements {IControlProvider}\n */\nexport class SearchFormProvider implements IControlProvider {\n component: string = 'IBizSearchFormControl';\n}\n","import { ControlType, registerControlProvider } from '@ibiz-template/runtime';\nimport { App } from 'vue';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { SearchFormControl } from './search-form';\nimport { SearchFormProvider } from './search-form.provider';\n\nexport * from './search-form.provider';\n\nexport const IBizSearchFormControl = withInstall(\n SearchFormControl,\n function (v: App) {\n v.component(SearchFormControl.name, SearchFormControl);\n registerControlProvider(\n ControlType.SEARCHFORM,\n () => new SearchFormProvider(),\n );\n },\n);\n\nexport default IBizSearchFormControl;\n","import { FormGroupPanelController } from '@ibiz-template/runtime';\nimport { useNamespace } from '@ibiz-template/vue3-util';\nimport { IDEFormGroupPanel, IUIActionGroupDetail } from '@ibiz/model-core';\nimport { computed, defineComponent, PropType, ref, VNode } from 'vue';\nimport './form-group-panel.scss';\n\nexport const FormGroupPanel = defineComponent({\n name: 'IBizFormGroupPanel',\n props: {\n modelData: {\n type: Object as PropType<IDEFormGroupPanel>,\n required: true,\n },\n controller: {\n type: FormGroupPanelController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('form-group');\n const isCollapse = ref(!props.controller.defaultExpansion);\n\n const changeCollapse = () => {\n if (!props.controller.disableClose) {\n isCollapse.value = !isCollapse.value;\n }\n };\n\n // 点击工具栏处理\n const onActionClick = async (\n detail: IUIActionGroupDetail,\n event: MouseEvent,\n ) => {\n await props.controller.onActionClick(detail, event);\n };\n\n const captionText = computed(() => {\n const { captionItemName } = props.modelData;\n if (captionItemName) {\n return props.controller.data[captionItemName];\n }\n return props.modelData.caption;\n });\n\n return { ns, isCollapse, captionText, changeCollapse, onActionClick };\n },\n render() {\n const { state } = this.controller;\n const defaultSlots: VNode[] = this.$slots.default?.() || [];\n const content = (\n <iBizRow slot='content' layout={this.modelData.layout}>\n {defaultSlots.map(slot => {\n const props = slot.props as IData;\n if (!props || !props.controller) {\n return slot;\n }\n\n return (\n <iBizCol\n layoutPos={props.modelData.layoutPos}\n state={props.controller.state}\n >\n {slot}\n </iBizCol>\n );\n })}\n </iBizRow>\n );\n const classArr: string[] = [\n this.ns.b(),\n this.ns.m(this.modelData.codeName),\n ];\n if (this.modelData.showCaption === true) {\n classArr.push(this.ns.m('show-header'));\n classArr.push(this.ns.b('collapse'));\n classArr.push(this.ns.is('collapse', this.isCollapse));\n if (this.controller.disableClose) {\n classArr.push(this.ns.bm('collapse', 'disable-close'));\n }\n if (this.modelData.showMoreMode === 2) {\n classArr.push(this.ns.m('show-more'));\n }\n }\n\n // 头部绘制\n let header: unknown = null;\n if (this.modelData.showCaption) {\n header = (\n <div class={[this.ns.b('header')]} onClick={this.changeCollapse}>\n <div class={[this.ns.be('header', 'left')]}>\n <div class={[this.ns.e('caption')]}>{this.captionText}</div>\n </div>\n {this.modelData.uiactionGroup && (\n <div class={[this.ns.be('header', 'right')]}>\n <iBizActionToolbar\n class={this.ns.e('toolbar')}\n action-details={\n this.modelData.uiactionGroup.uiactionGroupDetails\n }\n actions-state={state.actionGroupState}\n onActionClick={this.onActionClick}\n caption={this.modelData.uiactionGroup.name}\n mode={\n this.modelData.actionGroupExtractMode === 'ITEMS'\n ? 'dropdown'\n : 'buttons'\n }\n ></iBizActionToolbar>\n </div>\n )}\n </div>\n );\n }\n\n // 底部绘制\n let footer: unknown = null;\n if (this.modelData.showMoreMode === 2) {\n footer = (\n <div class={[this.ns.b('footer')]}>\n <div\n class={this.ns.be('footer', 'show-more-button')}\n onClick={() => {\n state.isShowMore = !state.isShowMore;\n }}\n >\n {!state.isShowMore ? '显示更多' : '收起'}\n </div>\n </div>\n );\n }\n\n return (\n <div class={classArr}>\n {header}\n <div class={[this.ns.b('content')]}>{content}</div>\n {footer}\n </div>\n );\n },\n});\nexport default FormGroupPanel;\n","import {\n FormController,\n FormGroupPanelController,\n IFormDetailContainerController,\n IFormDetailProvider,\n} from '@ibiz-template/runtime';\nimport { IDEFormGroupPanel } from '@ibiz/model-core';\n\n/**\n * 表单分组面板适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class FormGroupPanelProvider\n * @implements {EditorProvider}\n */\nexport class FormGroupPanelProvider implements IFormDetailProvider {\n component: string = 'IBizFormGroupPanel';\n\n async createController(\n detailModel: IDEFormGroupPanel,\n form: FormController,\n parent: IFormDetailContainerController | undefined,\n ): Promise<FormGroupPanelController> {\n const c = new FormGroupPanelController(detailModel, form, parent);\n await c.init();\n return c;\n }\n}\n","import { registerFormDetailProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport FormGroupPanel from './form-group-panel';\nimport { FormGroupPanelProvider } from './form-group-panel.provider';\n\nexport * from './form-group-panel.provider';\n\nexport const IBizFormGroupPanel = withInstall(\n FormGroupPanel,\n function (v: App) {\n v.component(FormGroupPanel.name, FormGroupPanel);\n // 表单分组\n registerFormDetailProvider(\n 'GROUPPANEL',\n () => new FormGroupPanelProvider(),\n );\n },\n);\n\nexport default IBizFormGroupPanel;\n","import { computed, defineComponent, h, PropType, resolveComponent } from 'vue';\nimport { useNamespace } from '@ibiz-template/vue3-util';\nimport './form-item.scss';\nimport { IDEFormItem } from '@ibiz/model-core';\nimport { FormItemController } from '@ibiz-template/runtime';\n\nexport const FormItem = defineComponent({\n name: 'IBizFormItem',\n props: {\n modelData: {\n type: Object as PropType<IDEFormItem>,\n required: true,\n },\n controller: {\n type: FormItemController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('form-item');\n const c = props.controller;\n const onValueChange = (val: unknown, name?: string) => {\n props.controller.setDataValue(val, name);\n };\n const { captionItemName, caption } = props.modelData;\n\n const captionText = computed(() => {\n if (captionItemName && props.controller.data) {\n return props.controller.data[captionItemName.toLowerCase()];\n }\n return caption;\n });\n return { ns, captionText, c, onValueChange };\n },\n render() {\n if (!this.c.state.visible) {\n return null;\n }\n\n // 编辑器内容\n let editor = null;\n const editorProps = {\n value: this.controller.value,\n data: this.controller.data,\n controller: this.controller.editor,\n disabled: this.controller.state.disabled,\n readonly: this.controller.model.editor!.readOnly,\n onChange: this.onValueChange,\n };\n if (this.c.form.state.isLoaded) {\n if (this.$slots.default) {\n editor = this.$slots.default(editorProps);\n } else if (this.controller.editorProvider) {\n const component = resolveComponent(\n this.controller.editorProvider.formEditor,\n );\n editor = h(component, {\n ...editorProps,\n });\n } else {\n editor = <notSupportedEditor modelData={this.modelData.editor} />;\n }\n }\n\n return (\n <iBizFormItemContainer\n class={[this.ns.b(), this.ns.m(this.modelData.id)]}\n required={this.c.state.required}\n error={this.c.state.error}\n label={this.captionText}\n label-pos={this.c.model.labelPos}\n label-width={this.c.model.labelWidth}\n >\n {editor}\n </iBizFormItemContainer>\n );\n },\n});\nexport default FormItem;\n","import { useNamespace } from '@ibiz-template/vue3-util';\nimport { computed, defineComponent } from 'vue';\nimport './form-item-container.scss';\n\nexport const IBizFormItemContainer = defineComponent({\n name: 'IBizFormItemContainer',\n props: {\n required: {\n type: Boolean,\n required: true,\n },\n error: {\n type: String,\n },\n label: {\n type: String,\n },\n labelPos: {\n type: String,\n required: true,\n },\n labelWidth: {\n type: Number,\n default: 130,\n },\n },\n setup(props) {\n const ns = useNamespace('form-item-container');\n let labelAlign: 'right' | 'left' = 'left';\n let editorAlign: 'right' | 'left' = 'right';\n\n const cssVars = computed(() => {\n switch (props.labelPos) {\n case 'LEFT':\n labelAlign = 'left';\n editorAlign = 'right';\n break;\n case 'RIGHT':\n labelAlign = 'right';\n editorAlign = 'left';\n break;\n case 'BOTTOM':\n labelAlign = 'left';\n editorAlign = 'left';\n break;\n case 'TOP':\n labelAlign = 'left';\n editorAlign = 'left';\n break;\n default:\n break;\n }\n const result: IData = {\n 'label-align': labelAlign,\n 'editor-align': editorAlign,\n };\n if (props.labelWidth !== 130) {\n Object.assign(result, { 'label-width': `${props.labelWidth}px` });\n }\n return ns.cssVarBlock(result);\n });\n return { ns, cssVars };\n },\n render() {\n return (\n <div\n class={[\n this.ns.b(),\n this.ns.m(this.labelPos.toLowerCase()),\n this.ns.is('required', this.required),\n this.ns.is('error', !!this.error),\n ]}\n style={this.cssVars}\n >\n <div class={[this.ns.b('content')]}>\n {this.labelPos === 'LEFT' || this.labelPos === 'TOP' ? (\n <div class={[this.ns.e('label')]} title={this.label}>\n <span>{this.label}</span>\n </div>\n ) : null}\n <div class={[this.ns.e('editor')]}>{this.$slots.default?.()}</div>\n {this.labelPos === 'RIGHT' || this.labelPos === 'BOTTOM' ? (\n <div class={[this.ns.e('label')]} title={this.label}>\n <span> {this.label}</span>\n </div>\n ) : null}\n </div>\n {this.error ? (\n <div class={[this.ns.b('error')]}>{this.error}</div>\n ) : null}\n </div>\n );\n },\n});\n","import {\n FormController,\n FormItemController,\n IFormDetailContainerController,\n IFormDetailProvider,\n} from '@ibiz-template/runtime';\nimport { IDEFormDetail } from '@ibiz/model-core';\n\n/**\n * 表单项适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class FormItemProvider\n * @implements {EditorProvider}\n */\nexport class FormItemProvider implements IFormDetailProvider {\n component: string = 'IBizFormItem';\n\n async createController(\n detailModel: IDEFormDetail,\n form: FormController,\n parent: IFormDetailContainerController | undefined,\n ): Promise<FormItemController> {\n const c = new FormItemController(detailModel, form, parent);\n await c.init();\n return c;\n }\n}\n","import { registerFormDetailProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport FormItem from './form-item';\nimport { IBizFormItemContainer } from './form-item-container/form-item-container';\nimport { FormItemProvider } from './form-item.provider';\n\nexport * from './form-item.provider';\nexport * from './form-item-container/form-item-container';\n\nexport const IBizFormItem = withInstall(FormItem, function (v: App) {\n v.component(FormItem.name, FormItem);\n v.component(IBizFormItemContainer.name, IBizFormItemContainer);\n // 表单项\n registerFormDetailProvider('FORMITEM', () => new FormItemProvider());\n});\n\nexport default IBizFormItem;\n","import { defineComponent, PropType, reactive, ref, VNode } from 'vue';\nimport { useNamespace } from '@ibiz-template/vue3-util';\nimport './form-page.scss';\nimport { IDEForm } from '@ibiz/model-core';\nimport { FormController, FormPageController } from '@ibiz-template/runtime';\n\nexport const FormPage = defineComponent({\n name: 'IBizFormPage',\n props: {\n modelData: {\n type: Object as PropType<IDEForm>,\n required: true,\n },\n controller: {\n type: Object as PropType<FormController>,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('form-page');\n const currentPage = ref(props.modelData.deformPages![0].id!);\n const lazyKeys = reactive([currentPage.value]);\n\n const onTabChange = (name: string) => {\n currentPage.value = name;\n if (!lazyKeys.includes(currentPage.value)) {\n lazyKeys.push(currentPage.value);\n }\n };\n\n return { ns, currentPage, lazyKeys, onTabChange };\n },\n render() {\n const { noTabHeader } = this.modelData;\n const defaultSlots: VNode[] =\n (this.$slots.default?.()[0]?.children as VNode[]) || [];\n if (defaultSlots.length === 1 || noTabHeader) {\n return (\n <div class={[this.ns.b(), this.ns.m('no-tab-header')]}>\n {defaultSlots}\n </div>\n );\n }\n return (\n <van-tabs\n onChange={this.onTabChange}\n class={[this.ns.b('header')]}\n active={this.currentPage}\n >\n {defaultSlots.map(slot => {\n const props = slot.props;\n if (!props || !props.controller) {\n return slot;\n }\n const c = props.controller as FormPageController;\n // 不显示且不用保活时直接不绘制\n if (!c.state.visible && !c.state.keepAlive) {\n return null;\n }\n return (\n <van-tab class={this.ns.b('tab-item')} name={c.model.id}>\n {{\n default: (): VNode => slot,\n title: (): JSX.Element => {\n return (\n <span class={c.labelClass}>\n {c.model.sysImage ? (\n <iBizIcon icon={c.model.sysImage} />\n ) : null}\n {c.model.caption}\n </span>\n );\n },\n }}\n </van-tab>\n );\n })}\n </van-tabs>\n );\n },\n});\n\nexport default FormPage;\n","import { FormPageController } from '@ibiz-template/runtime';\nimport { useNamespace } from '@ibiz-template/vue3-util';\nimport { IDEFormPage } from '@ibiz/model-core';\nimport { defineComponent, PropType, VNode } from 'vue';\nimport './form-page-item.scss';\n\nexport const IBizFormPageItem = defineComponent({\n name: 'IBizFormPageItem',\n props: {\n modelData: {\n type: Object as PropType<IDEFormPage>,\n required: true,\n },\n controller: {\n type: FormPageController,\n required: true,\n },\n },\n setup() {\n const ns = useNamespace('form-page-item');\n return { ns };\n },\n render() {\n const defaultSlots: VNode[] = this.$slots.default?.() || [];\n defaultSlots.forEach(item => {\n const data = item.component?.data;\n if (data) {\n data.class = { [this.ns.b('child')]: true };\n }\n });\n return (\n <iBizRow\n class={[this.ns.b(), this.ns.m(this.modelData.id)]}\n layout={this.modelData.layout}\n >\n {defaultSlots.map(slot => {\n const props = slot.props as IData;\n if (!props || !props.controller) {\n return slot;\n }\n return (\n <iBizCol\n layoutPos={props.modelData.layoutPos}\n state={props.controller.state}\n >\n {slot}\n </iBizCol>\n );\n })}\n </iBizRow>\n );\n },\n});\n","import {\n FormController,\n FormPageController,\n IFormDetailProvider,\n} from '@ibiz-template/runtime';\nimport { IDEFormPage } from '@ibiz/model-core';\n\n/**\n * 表单分页部件适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class FormPageProvider\n * @implements {EditorProvider}\n */\nexport class FormPageProvider implements IFormDetailProvider {\n component: string = 'IBizFormPageItem';\n\n async createController(\n detailModel: IDEFormPage,\n form: FormController,\n _parent: undefined,\n ): Promise<FormPageController> {\n const c = new FormPageController(detailModel, form);\n await c.init();\n return c;\n }\n}\n","import { registerFormDetailProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport FormPage from './form-page';\nimport { IBizFormPageItem } from './form-page-item/form-page-item';\nimport { FormPageProvider } from './form-page.provider';\n\nexport * from './form-page-item/form-page-item';\nexport * from './form-page.provider';\n\nexport const IBizFormPage = withInstall(FormPage, function (v: App) {\n v.component(FormPage.name, FormPage);\n v.component(IBizFormPageItem.name, IBizFormPageItem);\n // 表单分页\n registerFormDetailProvider('FORMPAGE', () => new FormPageProvider());\n});\n\nexport default IBizFormPage;\n","import { FormButtonController } from '@ibiz-template/runtime';\nimport { useNamespace } from '@ibiz-template/vue3-util';\nimport { IDEFormButton } from '@ibiz/model-core';\nimport { defineComponent, PropType, computed } from 'vue';\nimport './form-button.scss';\n\nexport const FormButton = defineComponent({\n name: 'IBizFormButton',\n props: {\n modelData: {\n type: Object as PropType<IDEFormButton>,\n required: true,\n },\n controller: {\n type: FormButtonController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('form-button');\n const captionText = computed(() => {\n const { caption, captionItemName } = props.modelData;\n if (captionItemName && props.controller.data[captionItemName]) {\n return props.controller.data[captionItemName];\n }\n return caption;\n });\n return { ns, captionText };\n },\n render() {\n if (!this.controller.state.visible) {\n return null;\n }\n\n return (\n <van-button\n onClick={this.controller.onClick.bind(this.controller)}\n class={[this.ns.b(), this.ns.m(this.modelData.codeName)]}\n >\n {this.captionText}\n </van-button>\n );\n },\n});\nexport default FormButton;\n","import {\n FormButtonController,\n FormController,\n IFormDetailContainerController,\n IFormDetailProvider,\n} from '@ibiz-template/runtime';\nimport { IDEFormButton } from '@ibiz/model-core';\n\n/**\n * 表单按钮适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class FormButtonProvider\n * @implements {EditorProvider}\n */\nexport class FormButtonProvider implements IFormDetailProvider {\n component: string = 'IBizFormButton';\n\n async createController(\n detailModel: IDEFormButton,\n form: FormController,\n parent: IFormDetailContainerController | undefined,\n ): Promise<FormButtonController> {\n const c = new FormButtonController(detailModel, form, parent);\n await c.init();\n return c;\n }\n}\n","import { registerFormDetailProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport FormButton from './form-button';\nimport { FormButtonProvider } from './form-button.provider';\n\nexport * from './form-button.provider';\n\nexport const IBizFormButton = withInstall(FormButton, function (v: App) {\n v.component(FormButton.name, FormButton);\n // 表单按钮\n registerFormDetailProvider('BUTTON', () => new FormButtonProvider());\n});\n\nexport default IBizFormButton;\n","import { defineComponent, h, PropType, resolveComponent } from 'vue';\nimport { useController, useNamespace } from '@ibiz-template/vue3-util';\nimport './form-druipart.scss';\nimport { IDEFormDRUIPart } from '@ibiz/model-core';\nimport { EventBase, FormDRUIPartController } from '@ibiz-template/runtime';\n\nexport const FormDRUIPart = defineComponent({\n name: 'IBizFormDRUIPart',\n props: {\n modelData: {\n type: Object as PropType<IDEFormDRUIPart>,\n required: true,\n },\n controller: {\n type: FormDRUIPartController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('form-druipart');\n useController(props.controller);\n\n const onCreated = (event: EventBase) => {\n props.controller.setEmbedView(event.view);\n };\n\n return {\n ns,\n onCreated,\n };\n },\n render() {\n if (\n !this.controller.state.visible ||\n !this.controller.state.viewComponentKey\n ) {\n return null;\n }\n const viewShell = resolveComponent('IBizViewShell');\n return (\n <div class={[this.ns.b(), this.ns.m(this.modelData.codeName)]}>\n {h(viewShell, {\n context: this.controller.navContext,\n params: this.controller.navParams,\n key: this.controller.state.viewComponentKey,\n viewId: this.controller.model.appViewId,\n onCreated: this.onCreated,\n })}\n </div>\n );\n },\n});\nexport default FormDRUIPart;\n","import {\n FormController,\n FormDRUIPartController,\n IFormDetailContainerController,\n IFormDetailProvider,\n} from '@ibiz-template/runtime';\nimport { IDEFormDRUIPart } from '@ibiz/model-core';\n\n/**\n * 表单按钮适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class FormDRUIPartProvider\n * @implements {EditorProvider}\n */\nexport class FormDRUIPartProvider implements IFormDetailProvider {\n component: string = 'IBizFormDRUIPart';\n\n async createController(\n detailModel: IDEFormDRUIPart,\n form: FormController,\n parent: IFormDetailContainerController | undefined,\n ): Promise<FormDRUIPartController> {\n const c = new FormDRUIPartController(detailModel, form, parent);\n await c.init();\n return c;\n }\n}\n","import { registerFormDetailProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport FormDRUIPart from './form-druipart';\nimport { FormDRUIPartProvider } from './form-druipart.provider';\n\nexport * from './form-druipart.provider';\n\nexport const IBizFormDRUIPart = withInstall(FormDRUIPart, function (v: App) {\n v.component(FormDRUIPart.name, FormDRUIPart);\n // 表单关系界面\n registerFormDetailProvider('DRUIPART', () => new FormDRUIPartProvider());\n});\n\nexport default IBizFormDRUIPart;\n","import {\n IDEFormRawItem,\n IHtmlItem,\n ISysImage,\n ITextItem,\n} from '@ibiz/model-core';\nimport { useNamespace } from '@ibiz-template/vue3-util';\nimport { defineComponent, PropType } from 'vue';\nimport './form-rawitem.scss';\nimport { FormRawItemController } from '@ibiz-template/runtime';\n\nexport const FormRawItem = defineComponent({\n name: 'IBizFormRawItem',\n props: {\n modelData: {\n type: Object as PropType<IDEFormRawItem>,\n required: true,\n },\n controller: {\n type: FormRawItemController,\n required: true,\n },\n },\n setup() {\n const ns = useNamespace('form-raw-item');\n return { ns };\n },\n render() {\n if (!this.controller.state.visible) {\n return null;\n }\n\n const { rawItem, sysImage } = this.modelData;\n const { contentType } = rawItem!;\n\n // 传入内容\n let content: string | ISysImage | null = null;\n // 类型\n let type = contentType;\n if (contentType === 'RAW' || contentType === 'HTML') {\n if (contentType === 'RAW') {\n type = 'TEXT';\n content = (rawItem as ITextItem).caption!;\n } else {\n content = (rawItem as IHtmlItem).content!;\n }\n } else if (\n ['VIDEO', 'DIVIDER', 'INFO', 'WARNING', 'ERROR'].includes(contentType!)\n ) {\n // 暂不支持\n // content = rawContent;\n } else if (contentType === 'IMAGE' && sysImage) {\n content = sysImage;\n }\n return (\n <iBizRawItem\n class={this.ns.b()}\n content={content}\n type={type}\n ></iBizRawItem>\n );\n },\n});\n\nexport default FormRawItem;\n","import {\n FormController,\n FormRawItemController,\n IFormDetailContainerController,\n IFormDetailProvider,\n} from '@ibiz-template/runtime';\nimport { IDEFormRawItem } from '@ibiz/model-core';\n/**\n * 表单直接内容适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class FormRawItemProvider\n * @implements {EditorProvider}\n */\nexport class FormRawItemProvider implements IFormDetailProvider {\n component: string = 'IBizFormRawItem';\n\n async createController(\n detailModel: IDEFormRawItem,\n form: FormController,\n parent: IFormDetailContainerController | undefined,\n ): Promise<FormRawItemController> {\n const c = new FormRawItemController(detailModel, form, parent);\n await c.init();\n return c;\n }\n}\n","import { registerFormDetailProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport FormRawItem from './form-rawitem';\nimport { FormRawItemProvider } from './form-rawitem.provider';\n\nexport * from './form-rawitem.provider';\n\nexport const IBizFormRawItem = withInstall(FormRawItem, function (v: App) {\n v.component(FormRawItem.name, FormRawItem);\n // 表单直接内容\n registerFormDetailProvider('RAWITEM', () => new FormRawItemProvider());\n});\n\nexport default IBizFormRawItem;\n","import { defineComponent, PropType, VNode } from 'vue';\nimport { useController, useNamespace } from '@ibiz-template/vue3-util';\nimport './form-tab-panel.scss';\nimport { IDEFormTabPanel } from '@ibiz/model-core';\nimport { FormTabPanelController } from '@ibiz-template/runtime';\n\nexport const FormTabPanel = defineComponent({\n name: 'IBizFormTabPanel',\n props: {\n modelData: {\n type: Object as PropType<IDEFormTabPanel>,\n required: true,\n },\n controller: {\n type: FormTabPanelController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('form-tab-panel');\n useController(props.controller);\n\n return {\n ns,\n };\n },\n render() {\n const defaultSlots: VNode[] = this.$slots.default?.() || [];\n return (\n <el-tabs\n class={[(this.ns.b(), this.ns.m(this.modelData.codeName))]}\n model-value={this.modelData.deformTabPages?.[0].id}\n >\n {defaultSlots.map(slot => {\n const props = slot.props as IData;\n if (!props || !props.controller) {\n return slot;\n }\n const c = props.controller;\n // 不显示且不用保活时直接不绘制\n if (!c.state.visible && !c.state.keepAlive) {\n return null;\n }\n return (\n <el-tab-pane\n class={this.ns.b('tab-item')}\n label={c.model.caption}\n name={c.model.id}\n lazy\n >\n {slot}\n </el-tab-pane>\n );\n })}\n </el-tabs>\n );\n },\n});\nexport default FormTabPanel;\n","import {\n FormController,\n FormTabPanelController,\n IFormDetailContainerController,\n IFormDetailProvider,\n} from '@ibiz-template/runtime';\nimport { IDEFormTabPanel } from '@ibiz/model-core';\n\n/**\n * 表单分页部件适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class FormTabPanelProvider\n * @implements {EditorProvider}\n */\nexport class FormTabPanelProvider implements IFormDetailProvider {\n component: string = 'IBizFormTabPanel';\n\n async createController(\n detailModel: IDEFormTabPanel,\n form: FormController,\n parent: IFormDetailContainerController | undefined,\n ): Promise<FormTabPanelController> {\n const c = new FormTabPanelController(detailModel, form, parent);\n await c.init();\n return c;\n }\n}\n","import { registerFormDetailProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport FormTabPanel from './form-tab-panel';\nimport { FormTabPanelProvider } from './form-tab-panel.provider';\n\nexport * from './form-tab-panel.provider';\n\nexport const IBizFormTabPanel = withInstall(FormTabPanel, function (v: App) {\n v.component(FormTabPanel.name, FormTabPanel);\n // 表单关系界面\n registerFormDetailProvider('TABPANEL', () => new FormTabPanelProvider());\n});\n\nexport default IBizFormTabPanel;\n","import { defineComponent, PropType, VNode } from 'vue';\nimport { useController, useNamespace } from '@ibiz-template/vue3-util';\nimport './form-tab-page.scss';\nimport { IDEFormTabPage } from '@ibiz/model-core';\nimport { FormTabPageController } from '@ibiz-template/runtime';\n\nexport const FormTabPage = defineComponent({\n name: 'IBizFormTabPage',\n props: {\n modelData: {\n type: Object as PropType<IDEFormTabPage>,\n required: true,\n },\n controller: {\n type: FormTabPageController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('form-tab-page');\n useController(props.controller);\n\n return {\n ns,\n };\n },\n render() {\n const defaultSlots: VNode[] = this.$slots.default?.() || [];\n return (\n <iBizRow\n class={[this.ns.b(), this.ns.m(this.modelData.codeName)]}\n layout={this.modelData.layout}\n >\n {defaultSlots.map(slot => {\n const props = slot.props as IData;\n if (!props || !props.controller) {\n return slot;\n }\n const c = props.controller;\n return (\n <iBizCol layoutPos={c.model.layoutPos} state={c.state}>\n {slot}\n </iBizCol>\n );\n })}\n </iBizRow>\n );\n },\n});\nexport default FormTabPage;\n","import {\n FormController,\n FormTabPageController,\n IFormDetailContainerController,\n IFormDetailProvider,\n} from '@ibiz-template/runtime';\nimport { IDEFormTabPage } from '@ibiz/model-core';\n\n/**\n * 表单分页部件分页适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class FormTabPageProvider\n * @implements {EditorProvider}\n */\nexport class FormTabPageProvider implements IFormDetailProvider {\n component: string = 'IBizFormTabPage';\n\n async createController(\n detailModel: IDEFormTabPage,\n form: FormController,\n parent: IFormDetailContainerController | undefined,\n ): Promise<FormTabPageController> {\n const c = new FormTabPageController(detailModel, form, parent);\n await c.init();\n return c;\n }\n}\n","import { registerFormDetailProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport FormTabPage from './form-tab-page';\nimport { FormTabPageProvider } from './form-tab-page.provider';\n\nexport * from './form-tab-page.provider';\n\nexport const IBizFormTabPage = withInstall(FormTabPage, function (v: App) {\n v.component(FormTabPage.name, FormTabPage);\n // 表单关系界面\n registerFormDetailProvider('TABPAGE', () => new FormTabPageProvider());\n});\n\nexport default IBizFormTabPage;\n","import { defineComponent, PropType, VNode } from 'vue';\nimport { useController } from '@ibiz-template/vue3-util';\nimport { IDEFormMDCtrl } from '@ibiz/model-core';\nimport { FormMDCtrlController } from '@ibiz-template/runtime';\n\nexport const FormMDCtrl = defineComponent({\n name: 'IBizFormMDCtrl',\n props: {\n modelData: {\n type: Object as PropType<IDEFormMDCtrl>,\n required: true,\n },\n controller: {\n type: FormMDCtrlController,\n required: true,\n },\n },\n setup(props) {\n useController(props.controller);\n\n const c = props.controller;\n\n const renderContentRepeater = (): VNode | undefined => {\n switch (c.model.detailStyle) {\n case 'STYLE2':\n return (\n <iBizFormMDCtrlRepeaterGrid\n controller={c.mdCtrlContentController}\n />\n );\n case 'STYLE3':\n return (\n <iBizFormMDCtrlRepeaterFormOne\n controller={c.mdCtrlContentController}\n />\n );\n default:\n return (\n <iBizFormMDCtrlRepeaterForm\n controller={c.mdCtrlContentController}\n />\n );\n }\n };\n\n return { c, renderContentRepeater };\n },\n render() {\n const renderContentByType = (): VNode | undefined => {\n let content;\n const { model } = this.c;\n switch (model?.contentType) {\n case 'FORM':\n content = (\n <iBizFormMDCtrlForm controller={this.c.mdCtrlContentController} />\n );\n break;\n case 'GRID':\n content = (\n <iBizFormMDCtrlGrid controller={this.c.mdCtrlContentController} />\n );\n break;\n case 'LIST':\n content = (\n <iBizFormMDCtrlList controller={this.c.mdCtrlContentController} />\n );\n break;\n case 'DATAVIEW':\n content = (\n <iBizFormMDCtrlDataView\n controller={this.c.mdCtrlContentController}\n />\n );\n break;\n case 'REPEATER':\n content = this.renderContentRepeater();\n break;\n\n default:\n break;\n }\n return content;\n };\n return renderContentByType();\n },\n});\n\nexport default FormMDCtrl;\n","import { defineComponent, PropType, VNode } from 'vue';\nimport { useNamespace } from '@ibiz-template/vue3-util';\nimport './form-mdctrl-container.scss';\nimport { FormMDCtrlController } from '@ibiz-template/runtime';\n\nexport const FormMDCtrlContainer = defineComponent({\n name: 'FormMDCtrlContainer',\n props: {\n controller: {\n type: Object as PropType<FormMDCtrlController>,\n required: true,\n },\n buttonVisible: {\n type: Boolean,\n default: true,\n required: false,\n },\n },\n emits: ['insertButtonClick'],\n setup(props, { emit }) {\n const ns = useNamespace('form-mdctrl');\n const c = props.controller;\n const handleRemove = (): void => {};\n const insertButtonClick = (): void => {\n emit('insertButtonClick');\n };\n\n const hasCaption = c.model.showCaption && !!c.model.caption;\n const ns2 = useNamespace('form-group');\n return { ns, ns2, c, handleRemove, insertButtonClick, hasCaption };\n },\n render() {\n const renderFormContent = (): VNode[] | undefined => {\n return this.$slots.default && this.$slots.default();\n };\n const renderMainContent = (): VNode => {\n return (\n <div class={this.ns.b('main')}>\n {[\n <div class={[this.ns.b('title'), this.ns2.b('header')]}>\n <span class={this.ns.b('caption')}>\n {this.controller.model.showCaption &&\n this.controller.model.caption}\n </span>\n {this.buttonVisible && this.controller.isCreate && (\n <van-button\n class={this.ns.b('add-btn')}\n onClick={(): void => this.insertButtonClick()}\n type='primary'\n >\n 添加\n </van-button>\n )}\n </div>,\n renderFormContent(),\n ]}\n </div>\n );\n };\n return (\n <div\n class={[\n this.ns.b(),\n this.ns.b(this.c.model.codeName),\n this.ns.b(this.c.model.contentType!.toLowerCase()),\n ...this.controller.containerClass,\n this.ns.is('no-caption', !this.hasCaption),\n ]}\n >\n {renderMainContent()}\n </div>\n );\n },\n});\n\nexport default FormMDCtrlContainer;\n","import {\n defineComponent,\n h,\n PropType,\n reactive,\n resolveComponent,\n VNode,\n} from 'vue';\nimport { useController, useNamespace } from '@ibiz-template/vue3-util';\nimport {\n EventBase,\n FormMDCtrlDataViewController,\n} from '@ibiz-template/runtime';\nimport FormMDCtrlContainer from '../form-mdctrl-container/form-mdctrl-container';\n\nexport const FormMDCtrlDataView = defineComponent({\n name: 'IBizFormMDCtrlDataView',\n props: {\n controller: {\n type: Object as PropType<FormMDCtrlDataViewController>,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('form-mdctrl');\n\n useController(props.controller);\n\n const c = props.controller;\n\n c.state = reactive(c.state);\n\n return { ns, c };\n },\n render() {\n const c = this.c;\n\n const renderContent = (): VNode | undefined => {\n if (c.controlModel && c.provider) {\n const tempContext = c.parent.form.context.clone();\n const controlProps = {\n modelData: c.controlModel,\n context: tempContext,\n params: c.parent.form.params,\n onSelectionChange: (arg: EventBase): void => c.onSelectionChange(arg),\n onCreated: (event: EventBase): void => c.onDataViewCreated(event),\n class: this.ns.b('form-content-control'),\n };\n\n const controlComponent = h(\n resolveComponent(c.provider.component),\n controlProps,\n );\n return (\n <div class={this.ns.b('form-content')}>\n {controlComponent}\n <div class={this.ns.b('btn')}>\n {c.parent.isDelete && (\n <van-button\n type='danger'\n class={this.ns.b('remove-btn')}\n disabled={!this.c.state.isSelect}\n onClick={(): void => this.c.onDataRemove()}\n >\n 删除\n </van-button>\n )}\n </div>\n </div>\n );\n }\n };\n return (\n <FormMDCtrlContainer\n class={this.ns.b('data-view')}\n controller={c.parent}\n onInsertButtonClick={(): void => {\n c.onDataInsert();\n }}\n >\n {renderContent()}\n </FormMDCtrlContainer>\n );\n },\n});\n\nexport default FormMDCtrlDataView;\n","import {\n defineComponent,\n h,\n PropType,\n reactive,\n resolveComponent,\n VNode,\n} from 'vue';\nimport { useController, useNamespace } from '@ibiz-template/vue3-util';\nimport {\n calcDeCodeNameById,\n EventBase,\n FormMDCtrlFormController,\n} from '@ibiz-template/runtime';\nimport FormMDCtrlContainer from '../form-mdctrl-container/form-mdctrl-container';\n\nexport const FormMDCtrlForm = defineComponent({\n name: 'IBizFormMDCtrlForm',\n props: {\n controller: {\n type: Object as PropType<FormMDCtrlFormController>,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('form-mdctrl');\n\n useController(props.controller);\n\n const c = props.controller;\n c.state = reactive(c.state);\n return { ns, c };\n },\n render() {\n const c = this.c;\n const renderContent = (): VNode[] | undefined => {\n if (c.controlModel && c.provider) {\n return c.state.data.map((item: IData, index: number) => {\n const tempContext = c.parent.form.context.clone();\n if (c.model.contentControl) {\n const codeName = calcDeCodeNameById(\n c.model.contentControl.appDataEntityId!,\n );\n tempContext[codeName] = item.srfkey;\n }\n const controlProps = {\n modelData: c.controlModel,\n context: tempContext,\n params: c.parent.form.params,\n onFormDataChange: (arg: EventBase): void =>\n c.onFormChange(arg.data, index),\n onRemoveSuccess: (): void => c.onFormRemoveSuccess(index),\n onCreated: (event: EventBase): void =>\n c.onControlCreated(event, index),\n };\n const controlComponent = h(\n resolveComponent(c.provider.component),\n controlProps,\n );\n return (\n <van-swipe-cell class={this.ns.b('form-content')} key={item.srfkey}>\n {controlComponent}\n {{\n default: () => {\n return controlComponent;\n },\n right: () => {\n return (\n c.parent.isDelete && (\n <van-button\n onClick={(): void => this.c.onDataRemove(index)}\n >\n 删除\n </van-button>\n )\n );\n },\n }}\n </van-swipe-cell>\n );\n });\n }\n };\n return (\n <FormMDCtrlContainer\n class={this.ns.b('form')}\n controller={c.parent}\n onInsertButtonClick={(): void => {\n c.onDataInsert();\n }}\n >\n {renderContent()}\n </FormMDCtrlContainer>\n );\n },\n});\n\nexport default FormMDCtrlForm;\n","import {\n defineComponent,\n h,\n PropType,\n reactive,\n resolveComponent,\n VNode,\n} from 'vue';\nimport { useController, useNamespace } from '@ibiz-template/vue3-util';\nimport { EventBase, FormMDCtrlListController } from '@ibiz-template/runtime';\nimport FormMDCtrlContainer from '../form-mdctrl-container/form-mdctrl-container';\n\nexport const FormMDCtrlList = defineComponent({\n name: 'IBizFormMDCtrlList',\n props: {\n controller: {\n type: Object as PropType<FormMDCtrlListController>,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('form-mdctrl');\n\n useController(props.controller);\n\n const c = props.controller;\n\n c.state = reactive(c.state);\n\n return { ns, c };\n },\n render() {\n const c = this.c;\n\n const renderContent = (): VNode | undefined => {\n if (c.controlModel && c.provider) {\n const tempContext = c.parent.form.context.clone();\n const controlProps = {\n modelData: c.controlModel,\n context: tempContext,\n params: c.parent.form.params,\n onSelectionChange: (arg: EventBase): void => c.onSelectionChange(arg),\n onCreated: (event: EventBase): void => c.onListCreated(event),\n class: this.ns.b('form-content-control'),\n };\n\n const controlComponent = h(\n resolveComponent(c.provider.component),\n controlProps,\n );\n return (\n <div class={this.ns.b('form-content')}>\n {controlComponent}\n <div class={this.ns.b('btn')}>\n {c.parent.isDelete && (\n <van-button\n type='danger'\n class={this.ns.b('remove-btn')}\n disabled={!this.c.state.isSelect}\n onClick={(): void => this.c.onDataRemove()}\n >\n 删除\n </van-button>\n )}\n </div>\n </div>\n );\n }\n };\n return (\n <FormMDCtrlContainer\n class={this.ns.b('list')}\n controller={c.parent}\n onInsertButtonClick={(): void => {\n c.onDataInsert();\n }}\n >\n {renderContent()}\n </FormMDCtrlContainer>\n );\n },\n});\n\nexport default FormMDCtrlList;\n","/* eslint-disable prefer-const */\nimport { defineComponent, PropType, VNode } from 'vue';\nimport { useController, useNamespace } from '@ibiz-template/vue3-util';\nimport {\n FormMDCtrlItemController,\n FormMDCtrlRepeaterFormOneController,\n} from '@ibiz-template/runtime';\nimport FormMDCtrlContainer from '../../form-mdctrl-container/form-mdctrl-container';\n\nexport const FormMDCtrlRepeaterFormOne = defineComponent({\n name: 'IBizFormMDCtrlRepeaterFormOne',\n props: {\n controller: {\n type: Object as PropType<FormMDCtrlRepeaterFormOneController>,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('form-mdctrl');\n\n useController(props.controller);\n\n const c: FormMDCtrlRepeaterFormOneController = props.controller;\n\n return { ns, c };\n },\n render() {\n if (!this.c) {\n return;\n }\n const renderContent = (): VNode => {\n return (\n <iBizFormMDCtrlRepeaterFormShell\n modelData={this.c.model}\n context={this.c.parent.form.context}\n params={this.c.parent.form.params}\n data={this.c.data}\n index={0}\n controller={this.c}\n buttonVisible={false}\n onControllerAppear={(c: FormMDCtrlItemController) => {\n this.c.setFromController(c);\n }}\n ></iBizFormMDCtrlRepeaterFormShell>\n );\n };\n\n return (\n <FormMDCtrlContainer\n class={this.ns.b('repeater-form-one')}\n controller={this.c.parent}\n buttonVisible={false}\n >\n {renderContent()}\n </FormMDCtrlContainer>\n );\n },\n});\n\nexport default FormMDCtrlRepeaterFormOne;\n","import { defineComponent, PropType, VNode } from 'vue';\nimport { useController, useNamespace } from '@ibiz-template/vue3-util';\nimport {\n FormMDCtrlItemController,\n FormMDCtrlRepeaterFormController,\n} from '@ibiz-template/runtime';\n\nexport const FormMDCtrlRepeaterForm = defineComponent({\n name: 'IBizFormMDCtrlRepeaterForm',\n props: {\n controller: {\n type: Object as PropType<FormMDCtrlRepeaterFormController>,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('form-mdctrl');\n\n useController(props.controller);\n\n const c: FormMDCtrlRepeaterFormController = props.controller;\n\n return { ns, c };\n },\n render() {\n if (!this.c) {\n return;\n }\n const renderContent = (): VNode[] => {\n return this.c.data.map((item: IData, index: number) => {\n return (\n <iBizFormMDCtrlRepeaterFormShell\n modelData={this.c.model}\n context={this.c.parent.form.context}\n params={this.c.parent.form.params}\n data={item}\n index={index}\n controller={this.c}\n onControllerAppear={(c: FormMDCtrlItemController) => {\n this.c.setFromController(c);\n }}\n ></iBizFormMDCtrlRepeaterFormShell>\n );\n });\n };\n\n return (\n <formMDCtrlContainer\n class={this.ns.b('repeater-form')}\n controller={this.c.parent}\n onInsertButtonClick={(): void => {\n this.c.onDataInsert();\n }}\n >\n {renderContent()}\n </formMDCtrlContainer>\n );\n },\n});\n\nexport default FormMDCtrlRepeaterForm;\n","/* eslint-disable no-param-reassign */\nimport {\n findChildFormDetails,\n FormController,\n FormMDCtrlItemController,\n FormMDCtrlRepeaterFormController,\n} from '@ibiz-template/runtime';\nimport { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport { IDEEditForm, IDEFormDetail, IDEFormItem } from '@ibiz/model-core';\nimport {\n defineComponent,\n h,\n PropType,\n reactive,\n ref,\n renderSlot,\n resolveComponent,\n VNode,\n} from 'vue';\n\nexport const FormMDCtrlRepeaterFormShell = defineComponent({\n name: 'IBizFormMDCtrlRepeaterFormShell',\n props: {\n modelData: {\n type: Object as PropType<IDEEditForm>,\n required: true,\n },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n data: { type: Object as PropType<IData>, required: true },\n index: { type: Number, required: true },\n controller: {\n type: Object as PropType<FormMDCtrlRepeaterFormController>,\n required: true,\n },\n buttonVisible: {\n type: Boolean,\n default: true,\n required: false,\n },\n },\n setup(props, { slots }) {\n const c: FormMDCtrlItemController = useControlController(\n (...args) =>\n new FormMDCtrlItemController(\n ...args,\n props.data,\n props.controller.parent.form,\n ),\n );\n\n const ns = useNamespace('form-mdctrl');\n c.state.isLoaded = true;\n const init = ref(false);\n\n c.evt.on('onCreated', () => {\n // 表单成员state响应式\n const keys = Object.keys(c.details);\n keys.forEach(key => {\n const detail = c.details[key];\n detail.state = reactive(detail.state);\n });\n init.value = true;\n });\n\n c.evt.on('onFormDataChange', arg => {\n if (arg.data.length > 0) {\n props.controller.onDataItemChange(arg.data[0], props.index);\n }\n });\n const slotProps: IData = { form: c };\n\n /**\n * 按照类型绘制表单成员\n * @author lxm\n * @date 2023-06-12 06:24:14\n * @param {IDEFormDetail} detail\n * @return {*} {(VNode | VNode[] | undefined)}\n */\n const renderByDetailType = (\n detail: IDEFormDetail,\n item: IData,\n index: number,\n ): VNode | VNode[] | undefined => {\n if ((detail as IDEFormItem).hidden) {\n return;\n }\n const detailId = detail.id!;\n const controller = c.details[detailId];\n // 表单成员组件的props\n const detailProps: IData = {\n modelData: detail,\n controller,\n key: detail.id,\n };\n // 有插槽走插槽\n if (slots[detailId]) {\n return renderSlot(slots, detailId, {\n ...slotProps,\n ...detailProps,\n });\n }\n\n // 子插槽\n const childSlots: IData = {};\n // 表单项如果有编辑器插槽的时候,调用插槽绘制表单项的默认插槽。\n if (detail.detailType === 'FORMITEM' && slots[`${detailId}_editor`]) {\n childSlots.default = (...args: IData[]): VNode[] => {\n return slots[`${detailId}_editor`]!(...args);\n };\n }\n const childDetails = findChildFormDetails(detail);\n if (childDetails.length) {\n // 容器成员绘制子成员\n childSlots.default = (): (VNode | VNode[] | undefined)[] =>\n childDetails.map(child => {\n return renderByDetailType(child, item, index);\n });\n }\n\n // 根据适配器绘制表单成员\n const provider = (controller?.form as FormController).providers[detailId];\n if (!provider) {\n return (\n <div>暂未支持的表单项类型: {detail.detailType}或找不到对应适配器</div>\n );\n }\n const component = resolveComponent(provider.component) as string;\n return (\n <iBizCol\n layoutPos={detailProps.modelData.layoutPos}\n state={detailProps.controller.state}\n >\n {h(\n component,\n {\n ...detailProps,\n },\n childSlots,\n )}\n </iBizCol>\n );\n };\n\n return { c, ns, renderByDetailType, init };\n },\n\n render() {\n if (!this.init) {\n return;\n }\n const renderDetails = (\n item: IData,\n index: number,\n ): (VNode | VNode[] | undefined)[] | null | undefined => {\n if (!this.c.data) {\n return null;\n }\n return this.controller.model.deformDetails?.map(detail => {\n return this.renderByDetailType(detail, item, index);\n });\n };\n return (\n <van-swipe-cell\n class={`${this.ns.b('form-content')} ${this.ns.b(\n 'repeater-form-shell',\n )}`}\n >\n {{\n default: () => {\n return (\n <div class={this.ns.b('form-content-container')}>\n <iBizRow layout={this.c.model.layout}>\n {renderDetails(this.data, this.index)}\n </iBizRow>\n </div>\n );\n },\n right: () => {\n //\n return (\n this.buttonVisible &&\n this.controller.parent.isDelete && (\n <van-button\n class={this.ns.b('btn')}\n type='danger'\n onClick={() => {\n this.controller.onDataRemove(this.index);\n }}\n >\n 删除\n </van-button>\n )\n );\n },\n }}\n </van-swipe-cell>\n );\n },\n});\n","import {\n FormController,\n FormMDCtrlController,\n IFormDetailContainerController,\n IFormDetailProvider,\n} from '@ibiz-template/runtime';\nimport { IDEFormMDCtrl } from '@ibiz/model-core';\n/**\n * 表单多数据部件适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class FormMDCtrlProvider\n * @implements {EditorProvider}\n */\nexport class FormMDCtrlProvider implements IFormDetailProvider {\n component: string = 'IBizFormMDCtrl';\n\n async createController(\n detailModel: IDEFormMDCtrl,\n form: FormController,\n parent: IFormDetailContainerController | undefined,\n ): Promise<FormMDCtrlController> {\n const c = new FormMDCtrlController(detailModel, form, parent);\n await c.init();\n return c;\n }\n}\n","import { registerFormDetailProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport FormMDCtrl from './form-mdctrl';\nimport FormMDCtrlContainer from './form-mdctrl-container/form-mdctrl-container';\nimport FormMDCtrlDataView from './form-mdctrl-data-view/form-mdctrl-data-view';\nimport FormMDCtrlForm from './form-mdctrl-form/form-mdctrl-form';\nimport FormMDCtrlList from './form-mdctrl-list/form-mdctrl-list';\nimport FormMDCtrlRepeaterFormOne from './form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one';\nimport FormMDCtrlRepeaterForm from './form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form';\nimport { FormMDCtrlRepeaterFormShell } from './form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-shell';\nimport { FormMDCtrlProvider } from './form-mdctrl.provider';\n\nexport * from './form-mdctrl.provider';\n\nexport const IBizFormMDCtrl = withInstall(FormMDCtrl, function (v: App) {\n v.component(FormMDCtrl.name, FormMDCtrl);\n v.component(FormMDCtrlForm.name, FormMDCtrlForm);\n v.component(FormMDCtrlList.name, FormMDCtrlList);\n v.component(FormMDCtrlDataView.name, FormMDCtrlDataView);\n v.component(FormMDCtrlRepeaterForm.name, FormMDCtrlRepeaterForm);\n v.component(FormMDCtrlRepeaterFormOne.name, FormMDCtrlRepeaterFormOne);\n v.component(FormMDCtrlRepeaterFormShell.name, FormMDCtrlRepeaterFormShell);\n v.component(FormMDCtrlContainer.name, FormMDCtrlContainer);\n registerFormDetailProvider('MDCTRL', () => new FormMDCtrlProvider());\n});\n\nexport default IBizFormMDCtrl;\n","import { IControlProvider } from '@ibiz-template/runtime';\n\n/**\n * 编辑表单适配器\n *\n * @author lxm\n * @date 2022-10-25 18:10:57\n * @export\n * @class EditFormProvider\n * @implements {IControlProvider}\n */\nexport class EditFormProvider implements IControlProvider {\n component: string = 'IBizEditFormControl';\n}\n","/* eslint-disable no-param-reassign */\nimport { EditFormController } from '@ibiz-template/runtime';\nimport { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport { IDEEditForm } from '@ibiz/model-core';\nimport { defineComponent, PropType, reactive, watch } from 'vue';\n\nexport const EditFormControl = defineComponent({\n name: 'IBizEditFormControl',\n props: {\n modelData: {\n type: Object as PropType<IDEEditForm>,\n required: true,\n },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n isSimple: { type: Boolean, required: false },\n data: { type: Object as PropType<IData>, required: false },\n },\n setup() {\n const c = useControlController(\n (...args) => new EditFormController(...args),\n );\n\n watch(\n () => c.state.data,\n (newVal, oldVal) => {\n if (newVal && newVal !== oldVal) {\n c.state.isLoaded = true;\n }\n },\n { immediate: true },\n );\n\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n\n c.evt.on('onCreated', () => {\n const keys = Object.keys(c.details);\n keys.forEach(key => {\n const detail = c.details[key];\n detail.state = reactive(detail.state);\n });\n });\n\n return { c, ns };\n },\n\n render() {\n return (\n <iBizFormControl class={this.ns.b()} controller={this.c}>\n {{ ...this.$slots }}\n </iBizFormControl>\n );\n },\n});\n","import { ControlType, registerControlProvider } from '@ibiz-template/runtime';\nimport { App } from 'vue';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { EditFormProvider } from './edit-form.provider';\nimport { EditFormControl } from './edit-form';\n\nexport const IBizEditFormControl = withInstall(\n EditFormControl,\n function (v: App) {\n v.component(EditFormControl.name, EditFormControl);\n registerControlProvider(ControlType.FORM, () => new EditFormProvider());\n },\n);\n\nexport default IBizEditFormControl;\n","import { findChildFormDetails, FormController } from '@ibiz-template/runtime';\nimport { useNamespace } from '@ibiz-template/vue3-util';\nimport { IDEFormDetail, IDEFormItem } from '@ibiz/model-core';\nimport {\n defineComponent,\n h,\n PropType,\n renderSlot,\n resolveComponent,\n VNode,\n} from 'vue';\nimport './form.scss';\n\nexport const FormControl = defineComponent({\n name: 'IBizFormControl',\n props: {\n controller: {\n type: Object as PropType<FormController>,\n required: true,\n },\n },\n setup(props, { slots }) {\n const ns = useNamespace('control-form');\n\n const c = props.controller;\n\n /** 作用域插槽提供的参数 */\n const slotProps: IData = { form: c };\n\n /**\n * 按照类型绘制表单成员\n * @author lxm\n * @date 2023-06-12 06:24:14\n * @param {IDEFormDetail} detail\n * @return {*} {(VNode | VNode[] | undefined)}\n */\n const renderByDetailType = (\n detail: IDEFormDetail,\n ): VNode | VNode[] | undefined => {\n if ((detail as IDEFormItem).hidden) {\n return;\n }\n const detailId = detail.id!;\n\n // 表单成员组件的props\n const detailProps: IData = {\n modelData: detail,\n controller: c.details[detailId],\n key: detail.id,\n };\n\n // 有插槽走插槽\n if (slots[detailId]) {\n return renderSlot(slots, detailId, {\n ...slotProps,\n ...detailProps,\n });\n }\n\n // 子插槽\n const childSlots: IData = {};\n // 表单项如果有编辑器插槽的时候,调用插槽绘制表单项的默认插槽。\n if (detail.detailType === 'FORMITEM' && slots[`${detailId}_editor`]) {\n childSlots.default = (...args: IData[]) => {\n return slots[`${detailId}_editor`]!(...args);\n };\n }\n const childDetails = findChildFormDetails(detail);\n if (childDetails.length) {\n // 容器成员绘制子成员\n childSlots.default = () =>\n childDetails.map(child => {\n return renderByDetailType(child);\n });\n }\n\n // 根据适配器绘制表单成员\n const provider = c.providers[detailId];\n if (!provider) {\n return (\n <div>暂未支持的表单项类型: {detail.detailType}或找不到对应适配器</div>\n );\n }\n const component = resolveComponent(provider.component) as string;\n return h(\n component,\n {\n ...detailProps,\n },\n childSlots,\n );\n };\n\n /** 内置表单成员组件 */\n const FormDetail = (_props: {\n modelData: IDEFormDetail | IDEFormDetail[];\n }) => {\n const { modelData } = _props;\n const detailModels = modelData instanceof Array ? modelData : [modelData];\n return detailModels.map(detail => {\n return renderByDetailType(detail);\n });\n };\n FormDetail.props = ['modelData'];\n\n slotProps.FormDetail = FormDetail;\n\n return { ns, c, FormDetail, slotProps, renderByDetailType };\n },\n render() {\n return (\n <iBizControlBase class={[this.ns.b()]} controller={this.c}>\n {this.c.state.isCreated && [\n this.$slots.default ? (\n this.$slots.default({\n ...this.slotProps,\n })\n ) : (\n <iBizFormPage modelData={this.c.model} controller={this.c}>\n {this.c.model.deformPages?.map(page => {\n return this.renderByDetailType(page);\n })}\n </iBizFormPage>\n ),\n this.$slots.searchFooter && this.$slots.searchFooter({}),\n ]}\n </iBizControlBase>\n );\n },\n});\n","import { App } from 'vue';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { FormControl } from './form';\nimport {\n IBizFormButton,\n IBizFormDRUIPart,\n IBizFormGroupPanel,\n IBizFormItem,\n IBizFormPage,\n IBizFormMDCtrl,\n IBizFormRawItem,\n IBizFormTabPanel,\n IBizFormTabPage,\n} from '../form-detail';\n\nexport const IBizFormControl = withInstall(FormControl, function (v: App) {\n v.component(FormControl.name, FormControl);\n v.use(IBizFormPage);\n v.use(IBizFormItem);\n v.use(IBizFormGroupPanel);\n v.use(IBizFormButton);\n v.use(IBizFormDRUIPart);\n v.use(IBizFormRawItem);\n v.use(IBizFormTabPanel);\n v.use(IBizFormTabPage);\n v.use(IBizFormMDCtrl);\n});\n\nexport default IBizFormControl;\n","import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport { defineComponent, h, PropType, resolveComponent } from 'vue';\nimport { IAppDEGridView, IDEPickupViewPanel } from '@ibiz/model-core';\nimport {\n EventBase,\n IPickupGridViewEvent,\n IPickupGridViewState,\n IViewController,\n PickupViewPanelController,\n} from '@ibiz-template/runtime';\nimport './pickup-view-panel.scss';\n\nexport const PickupViewPanelControl = defineComponent({\n name: 'IBizPickupViewPanelControl',\n props: {\n modelData: { type: Object as PropType<IDEPickupViewPanel>, required: true },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n singleSelect: { type: Boolean, default: true },\n },\n setup() {\n const c = useControlController(\n (...args) => new PickupViewPanelController(...args),\n );\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n\n const onCreated = (event: EventBase) => {\n c.setEmbedView(\n event.view as IViewController<\n IAppDEGridView,\n IPickupGridViewState,\n IPickupGridViewEvent\n >,\n );\n };\n\n return {\n c,\n ns,\n onCreated,\n };\n },\n render() {\n return (\n <iBizControlBase controller={this.c}>\n {this.c.state.isCreated &&\n (this.$slots.default\n ? this.$slots.default({\n context: this.c.state.context,\n params: this.c.state.params,\n state: {\n singleSelect: this.c.state.singleSelect,\n },\n onCreated: this.onCreated,\n })\n : h(resolveComponent('IBizViewShell'), {\n context: this.c.state.context,\n params: this.c.state.params,\n viewId: this.c.model.embeddedAppDEViewId,\n state: {\n singleSelect: this.c.state.singleSelect,\n },\n onCreated: this.onCreated,\n }))}\n </iBizControlBase>\n );\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n\n/**\n * 选择视图面板适配器\n *\n * @export\n * @class PickupViewPanelProvider\n * @implements {IControlProvider}\n */\nexport class PickupViewPanelProvider implements IControlProvider {\n component: string = 'IBizPickupViewPanelControl';\n}\n","import { registerControlProvider, ControlType } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { PickupViewPanelControl } from './pickup-view-panel';\nimport { PickupViewPanelProvider } from './pickup-view-panel.provider';\n\nexport * from './pickup-view-panel.provider';\nexport * from './pickup-view-panel.controller';\n\nexport const IBizPickupViewPanelControl = withInstall(\n PickupViewPanelControl,\n function (v: App) {\n v.component(PickupViewPanelControl.name, PickupViewPanelControl);\n registerControlProvider(\n ControlType.PICKUP_VIEW_PANEL,\n () => new PickupViewPanelProvider(),\n );\n },\n);\n\nexport default IBizPickupViewPanelControl;\n","import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport { defineComponent, PropType, ref, VNode } from 'vue';\nimport { IDEList } from '@ibiz/model-core';\nimport './list.scss';\nimport { ListController } from '@ibiz-template/runtime';\n\nexport const ListControl = defineComponent({\n name: 'IBizListControl',\n props: {\n modelData: { type: Object as PropType<IDEList>, required: true },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n /**\n * 部件行数据默认激活模式\n * - 0 不激活\n * - 1 单击激活\n * - 2 双击激活(默认值)\n *\n * @type {(number | 0 | 1 | 2)}\n */\n mdctrlActiveMode: { type: Number, default: 1 },\n\n /**\n * 是否为单选\n * - true 单选\n * - false 多选\n *\n * @type {(Boolean)}\n */\n singleSelect: { type: Boolean, default: true },\n // 默认行数\n rowsCount: { type: Number, default: 2 },\n // 默认列数\n columnsCount: { type: Number, default: 5 },\n },\n setup(props) {\n const c = useControlController((...args) => new ListController(...args));\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n\n const showPicker = ref(false);\n const openReviewList = () => {\n showPicker.value = true;\n };\n\n const renderNoData = (): VNode | undefined => {\n return (\n <iBizNoData\n text={c.model.emptyText}\n emptyTextLanguageRes={c.model.emptyTextLanguageRes}\n ></iBizNoData>\n );\n };\n\n // 绘制默认列表项\n const renderDefaultItem = (item: IData) => {\n // 是否选中数据\n const findIndex = c.state.selectedData.findIndex(data => {\n return data.srfkey === item.srfkey;\n });\n const itemClass = [ns.b('item'), ns.is('active', findIndex !== -1)];\n const itemStyle = { flexBasis: `${100 / props.columnsCount}%` };\n return (\n <div class={itemClass} key={item.srfkey} style={itemStyle}>\n <van-tag\n onClick={() => c.onRowClick(item)}\n class={ns.e('tag')}\n onDblclick={() => c.onDbRowClick(item)}\n closeable\n plain\n size='large'\n type='primary'\n onClose={() => c.setActive(item)}\n >\n <span class={ns.e('item-text')}>{item.srfmajortext || ''}</span>\n </van-tag>\n </div>\n );\n };\n const renderReViewDefaultItem = (item: IData) => {\n // 是否选中数据\n const findIndex = c.state.selectedData.findIndex(data => {\n return data.srfkey === item.srfkey;\n });\n const itemClass = [ns.b('item'), ns.is('active', findIndex !== -1)];\n return (\n <div class={itemClass} key={item.srfkey}>\n <van-cell class={itemClass} is-link title={item.srfmajortext || ''}>\n {{\n 'right-icon': () => {\n return (\n <van-icon\n class={ns.e('item-icon')}\n onClick={() => c.setActive(item)}\n name='delete-o'\n />\n );\n },\n }}\n </van-cell>\n </div>\n );\n };\n\n // 绘制展开\n const renderExpand = () => {\n const itemClass = [ns.b('item'), ns.b('item-expand')];\n return (\n <div class={itemClass} onClick={openReviewList}>\n 展开\n </div>\n );\n };\n\n // 绘制卡片内容\n const renderListContent = () => {\n return c.state.items.map((item, index) => {\n if (index === props.rowsCount * props.columnsCount - 1) {\n return renderExpand();\n }\n if (index > props.rowsCount * props.columnsCount - 1) {\n return null;\n }\n return renderDefaultItem(item);\n });\n };\n // 预览列表\n const renderReViewListContent = () => {\n if (c.state.items.length === 0) {\n return renderNoData();\n }\n return c.state.items.map(item => {\n return renderReViewDefaultItem(item);\n });\n };\n\n // 绘制加载更多\n const renderLoadMore = () => {\n return c.state.total > c.state.items.length ? (\n <div onClick={() => c.loadMore()} class={ns.e('load-more')}>\n 加载更多\n </div>\n ) : null;\n };\n const renderReviewList = () => {\n return (\n <van-popup\n round\n position='bottom'\n v-model:show={showPicker.value}\n class={ns.b('popup')}\n >\n <div class={ns.b('popup-container')}>\n <div class={ns.b('popup-header')}>\n <div>选中数据</div>\n </div>\n <div class={ns.b('popup-content')}>{renderReViewListContent()}</div>\n </div>\n </van-popup>\n );\n };\n return {\n c,\n ns,\n renderListContent,\n renderLoadMore,\n renderReviewList,\n };\n },\n render() {\n return (\n <iBizControlBase controller={this.c} class={this.ns.b(this.c.model.name)}>\n {this.c.state.isCreated && [\n this.renderListContent(),\n this.renderReviewList(),\n this.renderLoadMore(),\n ]}\n </iBizControlBase>\n );\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n/**\n * 列表适配器\n *\n * @author lxm\n * @date 2022-10-25 18:10:57\n * @export\n * @class ListProvider\n * @implements {IControlProvider}\n */\nexport class ListProvider implements IControlProvider {\n component: string = 'IBizListControl';\n}\n","import { registerControlProvider, ControlType } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { ListControl } from './list';\nimport { ListProvider } from './list.provider';\n\nexport * from './list.provider';\n\nexport const IBizListControl = withInstall(ListControl, function (v: App) {\n v.component(ListControl.name, ListControl);\n registerControlProvider(ControlType.LIST, () => new ListProvider());\n});\n\nexport default IBizListControl;\n","import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport { defineComponent, PropType } from 'vue';\nimport { ITabExpPanel } from '@ibiz/model-core';\nimport { TabExpPanelController } from '@ibiz-template/runtime';\n\nexport const TabExpPanelControl = defineComponent({\n name: 'IBizTabExpPanelControl',\n props: {\n modelData: { type: Object as PropType<ITabExpPanel>, required: true },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n defaultTabName: { type: String, required: false },\n },\n setup() {\n const c = useControlController(\n (...args) => new TabExpPanelController(...args),\n );\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n const onTabChange = (value: string) => {\n c.state.activeName = value;\n c.handleTabChange();\n };\n\n return {\n c,\n ns,\n onTabChange,\n };\n },\n render() {\n const { isCreated, tabPages } = this.c.state;\n return (\n isCreated && (\n <van-tabs\n class={[this.ns.b('header')]}\n active={this.c.state.activeName}\n onChange={this.onTabChange}\n >\n {tabPages.map(page => {\n return <van-tab title={page.caption} name={page.tabTag}></van-tab>;\n })}\n </van-tabs>\n )\n );\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n\n/**\n * 分页导航面板\n *\n * @export\n * @class TabExpPanelProvider\n * @implements {IControlProvider}\n */\nexport class TabExpPanelProvider implements IControlProvider {\n component: string = 'IBizTabExpPanelControl';\n}\n","import { registerControlProvider, ControlType } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { TabExpPanelControl } from './tab-exp-panel';\nimport { TabExpPanelProvider } from './tab-exp-panel.provider';\n\nexport * from './tab-exp-panel.provider';\n\nexport const IBizTabExpPanelControl = withInstall(\n TabExpPanelControl,\n function (v: App) {\n v.component(TabExpPanelControl.name, TabExpPanelControl);\n registerControlProvider(\n ControlType.TAB_EXP_PANEL,\n () => new TabExpPanelProvider(),\n );\n },\n);\n\nexport default IBizTabExpPanelControl;\n","import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport { computed, defineComponent, PropType, VNode } from 'vue';\nimport { IDETBGroupItem, IDEToolbar, IDEToolbarItem } from '@ibiz/model-core';\nimport { IExtraButton, ToolbarController } from '@ibiz-template/runtime';\nimport './toolbar.scss';\n\nconst btnContent = (item: IDEToolbarItem, viewMode: string) => {\n const image = item.sysImage;\n if (viewMode === 'EMBED') {\n if (image) {\n return [<iBizIcon icon={image} />, item.caption];\n }\n return [item.caption];\n }\n return [\n <iBizIcon icon={image} />,\n // 工作流特殊按钮下 无showCaption 统一显示caption\n item.showCaption || (item as IExtraButton).buttonType === 'extra'\n ? item.caption\n : '',\n ];\n};\n\nexport const ToolbarControl = defineComponent({\n name: 'IBizToolbarControl',\n props: {\n modelData: {\n type: Object as PropType<IDEToolbar>,\n required: true,\n },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n },\n setup(props) {\n const c = useControlController((...args) => new ToolbarController(...args));\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n\n const btnSize = computed(() => {\n return c.state.viewMode === 'EMBED' ? 'small' : 'small';\n });\n\n // 点击事件\n const handleClick = async (item: IDEToolbarItem, event: MouseEvent) => {\n await c.onItemClick(item, event);\n };\n\n let position = '';\n\n switch (props.modelData.toolbarStyle) {\n case 'MOBNAVRIGHTMENU':\n position = 'right';\n break;\n case 'MOBNAVLEFTMENU':\n position = 'left';\n break;\n case 'MOBNAVBOTTOMMENU':\n position = 'bottom';\n break;\n default:\n break;\n }\n\n const renderExtraButtons = (extraButtons: IExtraButton[]) => {\n return extraButtons.map(button => {\n return (\n <div\n key={button.id}\n class={[ns.e('item'), ns.e('item-extra'), ns.e(`item-${position}`)]}\n >\n <van-button\n title={button.tooltip}\n size={btnSize.value}\n onClick={(e: MouseEvent) => handleClick(button, e)}\n >\n {btnContent(button, c.state.viewMode)}\n </van-button>\n </div>\n );\n });\n };\n\n const renderToolbarItem = (item: IDEToolbarItem) => {\n const itemId = item.id!;\n if (['SEPERATOR', 'RAWITEM'].includes(item.itemType!)) {\n ibiz.log.error(`工具栏项类型:${item.itemType}暂不支持`);\n return null;\n }\n if (item.itemType === 'ITEMS') {\n return (\n <div\n key={itemId}\n class={[ns.e('item'), ns.e('item-items'), ns.e(`item-${position}`)]}\n >\n <van-popover\n actions={(item as IDETBGroupItem).detoolbarItems}\n onSelect={(data: IData, e: MouseEvent) => {\n handleClick(data, e);\n }}\n >\n {{\n action: ({ action }: { action: IData }): VNode => {\n return <span>{action.tooltip}</span>;\n },\n reference: (): VNode => {\n return <van-button>{item.tooltip}</van-button>;\n },\n }}\n </van-popover>\n </div>\n );\n }\n if (\n item.itemType === 'DEUIACTION' &&\n c.state.buttonsState[itemId]?.visible\n ) {\n return (\n <div\n key={itemId}\n class={[\n ns.e('item'),\n ns.e('item-deuiaction'),\n ns.e(`item-${position}`),\n ]}\n >\n <van-button\n title={item.tooltip}\n size={btnSize.value}\n loading={c.state.buttonsState[itemId].loading}\n disabled={c.state.buttonsState[itemId].disabled}\n onClick={(e: MouseEvent) => handleClick(item, e)}\n >\n {btnContent(item, c.state.viewMode)}\n </van-button>\n </div>\n );\n }\n\n return null;\n };\n\n return {\n c,\n btnSize,\n ns,\n position,\n handleClick,\n renderExtraButtons,\n renderToolbarItem,\n };\n },\n render() {\n const { state } = this.c;\n\n return (\n <iBizControlBase\n controller={this.c}\n class={[\n this.ns.m(state.viewMode.toLowerCase()),\n this.ns.b(this.position),\n ]}\n >\n {/* 绘制最前方的额外按钮 */}\n {state.extraButtons.before?.length > 0 &&\n this.renderExtraButtons(state.extraButtons.before)}\n {this.modelData.detoolbarItems?.map((item, index) => {\n const toolbarItemNode = this.renderToolbarItem(item);\n // 绘制指定位置后的额外按钮\n if (state.extraButtons[index]?.length) {\n return [\n toolbarItemNode,\n this.renderExtraButtons(state.extraButtons[index]),\n ];\n }\n return toolbarItemNode;\n })}\n {/* 绘制最后方的额外按钮 */}\n {state.extraButtons.after?.length > 0 &&\n this.renderExtraButtons(state.extraButtons.after)}\n </iBizControlBase>\n );\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n\n/**\n * 工具栏部件适配器\n *\n * @author lxm\n * @date 2022-10-25 18:10:57\n * @export\n * @class ToolbarProvider\n * @implements {IControlProvider}\n */\nexport class ToolbarProvider implements IControlProvider {\n component: string = 'IBizToolbarControl';\n}\n","import { ControlType, registerControlProvider } from '@ibiz-template/runtime';\nimport { App } from 'vue';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { ToolbarControl } from './toolbar';\nimport { ToolbarProvider } from './toolbar.provider';\n\nexport const IBizToolbarControl = withInstall(\n ToolbarControl,\n function (v: App) {\n v.component(ToolbarControl.name, ToolbarControl);\n registerControlProvider(ControlType.TOOLBAR, () => new ToolbarProvider());\n },\n);\n\nexport default IBizToolbarControl;\n","import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport { defineComponent, PropType } from 'vue';\nimport { ICaptionBar } from '@ibiz/model-core';\nimport './caption-bar.scss';\nimport { CaptionBarController } from '@ibiz-template/runtime';\n\nexport const CaptionBarControl = defineComponent({\n name: 'IBizCaptionBarControl',\n props: {\n modelData: {\n type: Object as PropType<ICaptionBar>,\n required: true,\n },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n },\n setup() {\n const c = useControlController(\n (...args) => new CaptionBarController(...args),\n );\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n\n return { c, ns };\n },\n render() {\n return (\n <iBizControlBase\n controller={this.c}\n class={[\n this.ns.b(),\n this.ns.is('hasSub', Boolean(this.modelData.subCaption)),\n ]}\n >\n <div class={this.ns.b('caption')}>{this.c.state.caption}</div>\n {this.modelData.subCaption && (\n <div class={this.ns.b('sub-caption')}>\n {this.modelData.subCaption}\n </div>\n )}\n </iBizControlBase>\n );\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n\n/**\n * 标题栏适配器\n *\n * @author lxm\n * @date 2022-10-25 18:10:57\n * @export\n * @class CaptionBarProvider\n * @implements {IControlProvider}\n */\nexport class CaptionBarProvider implements IControlProvider {\n component: string = 'IBizCaptionBarControl';\n}\n","import { ControlType, registerControlProvider } from '@ibiz-template/runtime';\nimport { App } from 'vue';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { CaptionBarControl } from './caption-bar';\nimport { CaptionBarProvider } from './caption-bar.provider';\n\nexport * from './caption-bar.provider';\n\nexport const IBizCaptionBarControl = withInstall(\n CaptionBarControl,\n function (v: App) {\n v.component(CaptionBarControl.name, CaptionBarControl);\n registerControlProvider(\n ControlType.CAPTIONBAR,\n () => new CaptionBarProvider(),\n );\n },\n);\n\nexport default IBizCaptionBarControl;\n","import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport { computed, defineComponent, PropType } from 'vue';\nimport { ISearchBar } from '@ibiz/model-core';\nimport { debounce } from 'lodash-es';\nimport './search-bar.scss';\nimport { SearchBarController } from '@ibiz-template/runtime';\n\nexport const SearchBarControl = defineComponent({\n name: 'IBizSearchBarControl',\n props: {\n modelData: {\n type: Object as PropType<ISearchBar>,\n required: true,\n },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n },\n setup() {\n const c = useControlController(\n (...args) => new SearchBarController(...args),\n );\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n\n const onSearch = () => {\n c.onSearch();\n };\n\n const debounceSearch = debounce(() => {\n if (onSearch) {\n onSearch();\n }\n }, 500);\n\n const onInput = (value: string) => {\n c.handleInput(value);\n debounceSearch();\n };\n\n const cssVars = computed(() => {\n if (c.model.quickSearchWidth) {\n return ns.cssVarBlock({\n 'quick-search-width': `${c.model.quickSearchWidth}px`,\n });\n }\n return {};\n });\n\n return { c, ns, onInput, onSearch, cssVars };\n },\n render() {\n return (\n <iBizControlBase\n controller={this.c}\n class={[this.ns.b()]}\n style={this.cssVars}\n >\n {this.c.model.enableQuickSearch && (\n <van-search\n modelValue={this.c.state.query}\n class={this.ns.b('quick-search')}\n placeholder={this.c.placeHolder}\n onUpdate:model-value={this.onInput}\n ></van-search>\n )}\n </iBizControlBase>\n );\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n\n/**\n * 搜索栏适配器\n *\n * @author lxm\n * @date 2022-10-25 18:10:57\n * @export\n * @class SearchBarProvider\n * @implements {IControlProvider}\n */\nexport class SearchBarProvider implements IControlProvider {\n component: string = 'IBizSearchBarControl';\n}\n","import { ControlType, registerControlProvider } from '@ibiz-template/runtime';\nimport { App } from 'vue';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { SearchBarControl } from './search-bar';\nimport { SearchBarProvider } from './search-bar.provider';\n\nexport * from './search-bar.provider';\n\nexport const IBizSearchBarControl = withInstall(\n SearchBarControl,\n function (v: App) {\n v.component(SearchBarControl.name, SearchBarControl);\n registerControlProvider(\n ControlType.SEARCHBAR,\n () => new SearchBarProvider(),\n );\n },\n);\n\nexport default IBizSearchBarControl;\n","import {\n ControlController,\n IDRTabController,\n IDRTabEvent,\n IDRTabState,\n IDRTabPagesState,\n IEditFormController,\n calcNavParams,\n Srfuf,\n IPanelItemNavPosController,\n} from '@ibiz-template/runtime';\nimport { getNestedRoutePath } from '@ibiz-template/vue3-util';\nimport { IDEDRCtrlItem, IDEDRTab } from '@ibiz/model-core';\nimport { Router } from 'vue-router';\n\n/**\n * 数据关系栏控制器\n *\n * @export\n * @class DRTabController\n * @extends {ControlController<IDEDRTab, IDRTabState, IDRTabEvent>}\n * @implements {IDRTabController}\n */\nexport class DRTabController\n extends ControlController<IDEDRTab, IDRTabState, IDRTabEvent>\n implements IDRTabController\n{\n /**\n * 导航占位控制器\n *\n * @readonly\n * @memberof DRTabController\n */\n get navPos(): IPanelItemNavPosController {\n return this.view.layoutPanel?.panelItems\n .nav_pos as IPanelItemNavPosController;\n }\n\n /**\n * 表单部件\n *\n * @readonly\n * @memberof DRTabController\n */\n get form(): IEditFormController {\n return this.view.getController('form') as IEditFormController;\n }\n\n /**\n * 路由层级\n *\n * @readonly\n * @type {(number | undefined)}\n * @memberof DRTabController\n */\n get routeDepth(): number | undefined {\n return this.view.modal.routeDepth;\n }\n\n /**\n * Router 对象\n *\n * @type {Router}\n * @memberof DRTabController\n */\n router!: Router;\n\n /**\n * 设置 Router 对象\n *\n * @param {Router} router\n * @memberof DRTabController\n */\n setRouter(router: Router): void {\n this.router = router;\n }\n\n /**\n * 获取数据\n *\n * @return {*} {IData[]}\n * @memberof DRTabController\n */\n getData(): IData[] {\n return this.form?.getData() || [{}];\n }\n\n /**\n * 初始化state的属性\n *\n * @protected\n * @memberof DRTabController\n */\n protected initState(): void {\n super.initState();\n this.state.drTabPages = [];\n }\n\n /**\n * 创建完成\n *\n * @return {*} {Promise<void>}\n * @memberof DRTabController\n */\n async onCreated(): Promise<void> {\n await super.onCreated();\n }\n\n /**\n * 加载完成\n *\n * @return {*} {Promise<void>}\n * @memberof DRTabController\n */\n async onMounted(): Promise<void> {\n await super.onMounted();\n if (this.form) {\n this.form.evt.on('onLoadSuccess', () => {\n this.handleFormChange();\n });\n this.form.evt.on('onLoadDraftSuccess', () => {\n this.handleFormChange();\n });\n this.form.evt.on('onSaveSuccess', () => {\n this.handleFormChange();\n });\n }\n this.initDRTabPages();\n }\n\n /**\n * 处理表单数据变更\n *\n * @memberof DRTabController\n */\n handleFormChange(): void {\n const disabled = this.getData()[0].srfuf !== Srfuf.UPDATE;\n this.setDRTabPagesState(this.state.drTabPages, disabled);\n }\n\n /**\n * 设置关系分页状态\n *\n * @param {IDRTabPagesState[]} drTabPages 关系分页\n * @param {boolean} disabled 禁用状态\n * @memberof DRTabController\n */\n setDRTabPagesState(drTabPages: IDRTabPagesState[], disabled: boolean): void {\n drTabPages.forEach(item => {\n // 排除首项\n if (item.tag !== this.model.uniqueTag) {\n item.disabled = disabled;\n }\n });\n }\n\n /**\n * 初始化关系分页数据\n *\n * @memberof DRTabController\n */\n initDRTabPages(): void {\n const {\n editItemCaption,\n editItemCapLanguageRes,\n hideEditItem,\n editItemSysImage,\n uniqueTag,\n dedrtabPages,\n } = this.model;\n const drTabPages: IDRTabPagesState[] = [];\n let caption = editItemCaption;\n if (editItemCapLanguageRes) {\n caption = ibiz.i18n.t(editItemCapLanguageRes.lanResTag!, editItemCaption);\n }\n\n // 首项\n drTabPages.push({\n tag: uniqueTag!,\n caption,\n hidden: !!hideEditItem,\n disabled: false,\n sysImage: editItemSysImage,\n fullPath: this.routeDepth\n ? getNestedRoutePath(this.router.currentRoute.value, this.routeDepth!)\n : '',\n });\n // 关系项\n dedrtabPages?.forEach((item: IDEDRCtrlItem) => {\n let itemCaption = item.caption;\n if (item.capLanguageRes) {\n itemCaption = ibiz.i18n.t(item.capLanguageRes.lanResTag!, item.caption);\n }\n drTabPages.push({\n tag: item.id!,\n caption: itemCaption,\n sysImage: item.sysImage,\n hidden: false,\n disabled: false,\n });\n });\n this.state.drTabPages = drTabPages;\n if ((this.view.state as IData).srfnav) {\n this.state.activeName = (this.view.state as IData).srfnav!;\n this.handleTabChange();\n } else {\n this.state.activeName = drTabPages[0].tag;\n }\n }\n\n /**\n * 处理分页改变\n *\n * @memberof DRTabController\n */\n handleTabChange(): void {\n const { activeName } = this.state;\n const drBarItem = this.model.dedrtabPages?.find(\n item => item.id === activeName,\n );\n\n if (drBarItem) {\n this.setVisible('navPos');\n this.openNavPosView(drBarItem);\n } else {\n this.setVisible('form');\n if (this.routeDepth) {\n this.router.push(this.state.drTabPages[0].fullPath!);\n }\n }\n }\n\n /**\n * 设置显示状态\n *\n * @param {('form' | 'navPos')} ctrlName 显示的部件名称\n * @memberof DRTabController\n */\n setVisible(ctrlName: 'form' | 'navPos'): void {\n const viewForm = this.view.layoutPanel?.panelItems.view_form;\n if (ctrlName === 'form') {\n if (viewForm) {\n viewForm.state.visible = true;\n viewForm.state.keepAlive = true;\n }\n if (this.navPos) {\n this.navPos.state.visible = false;\n this.navPos.state.keepAlive = true;\n }\n } else {\n if (viewForm) {\n viewForm.state.visible = false;\n viewForm.state.keepAlive = true;\n }\n if (this.navPos) {\n this.navPos.state.visible = true;\n this.navPos.state.keepAlive = true;\n }\n }\n }\n\n /**\n * 准备参数\n *\n * @param {IDEDRCtrlItem} drTabPages 关系分页\n * @return {*}\n * @memberof DRTabController\n */\n prepareParams(drTabPages: IDEDRCtrlItem): {\n context: IContext;\n params: IParams;\n } {\n const { navigateContexts, navigateParams } = drTabPages;\n const model = {\n navContexts: navigateContexts,\n navParams: navigateParams,\n };\n const originParams = {\n context: this.context,\n params: this.params,\n data: this.getData()[0],\n };\n const { resultContext, resultParams } = calcNavParams(model, originParams);\n const context = Object.assign(this.context.clone(), resultContext, {\n currentSrfNav: drTabPages.id,\n });\n const params = { ...this.params, ...resultParams };\n return { context, params };\n }\n\n /**\n * 打开导航占位视图\n *\n * @param {IDEDRCtrlItem} drTabPages 关系分页\n * @memberof DRTabController\n */\n async openNavPosView(drTabPages: IDEDRCtrlItem): Promise<void> {\n const { context, params } = this.prepareParams(drTabPages);\n this.navPos?.openView({\n key: drTabPages.id!,\n context,\n params,\n viewId: drTabPages.appViewId,\n });\n }\n}\n","import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport { defineComponent, PropType } from 'vue';\nimport { IDEDRTab } from '@ibiz/model-core';\nimport { useRouter } from 'vue-router';\nimport { DRTabController } from './drtab.controller';\nimport './drtab.scss';\n\nexport const DRTabControl = defineComponent({\n name: 'IBizDrTabControl',\n props: {\n modelData: { type: Object as PropType<IDEDRTab>, required: true },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n },\n setup() {\n const c = useControlController((...args) => new DRTabController(...args));\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n const router = useRouter();\n\n c.setRouter(router);\n\n const onTabChange = (name: string) => {\n c.state.activeName = name;\n c.handleTabChange();\n };\n\n return {\n c,\n ns,\n onTabChange,\n };\n },\n render() {\n const { isCreated, drTabPages } = this.c.state;\n return (\n <iBizControlBase controller={this.c} class={this.ns.b()}>\n {isCreated && (\n <van-tabs\n onChange={this.onTabChange}\n class={[this.ns.b('tabs')]}\n active={this.c.state.activeName}\n >\n {drTabPages.map(tab => {\n return (\n <van-tab\n class={this.ns.e('tab-item')}\n name={tab.tag}\n disabled={tab.disabled}\n >\n {{ title: () => tab.caption }}\n </van-tab>\n );\n })}\n </van-tabs>\n )}\n </iBizControlBase>\n );\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n\n/**\n * 数据关系分页适配器\n *\n * @export\n * @class DRTabProvider\n * @implements {IControlProvider}\n */\nexport class DRTabProvider implements IControlProvider {\n component: string = 'IBizDrTabControl';\n}\n","import { registerControlProvider, ControlType } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { DRTabControl } from './drtab';\nimport { DRTabProvider } from './drtab.provider';\n\nexport * from './drtab.provider';\nexport * from './drtab.controller';\n\nexport const IBizDRTabControl = withInstall(DRTabControl, function (v: App) {\n v.component(DRTabControl.name, DRTabControl);\n registerControlProvider(ControlType.DRTAB, () => new DRTabProvider());\n});\n\nexport default IBizDRTabControl;\n","import { IControlProvider } from '@ibiz-template/runtime';\n/**\n * 树适配器\n *\n * @author lxm\n * @date 2022-10-25 18:10:57\n * @export\n * @class TreeProvider\n * @implements {IControlProvider}\n */\nexport class TreeProvider implements IControlProvider {\n component: string = 'IBizTreeControl';\n}\n","import { registerControlProvider, ControlType } from '@ibiz-template/runtime';\nimport { App, defineAsyncComponent } from 'vue';\nimport { TreeProvider } from './tree.provider';\n\nexport * from './tree.provider';\n\nexport const IBizTreeControl = {\n install: (v: App): void => {\n v.component(\n 'IBizTreeControl',\n defineAsyncComponent(() => import('./tree')),\n );\n registerControlProvider(ControlType.TREEVIEW, () => new TreeProvider());\n },\n};\n\nexport default IBizTreeControl;\n","import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport { defineComponent, PropType, ref, VNode } from 'vue';\nimport {\n IDEDataView,\n ILayoutPanel,\n IUIActionGroupDetail,\n} from '@ibiz/model-core';\nimport './data-view.scss';\nimport { DataViewControlController } from '@ibiz-template/runtime';\n\nexport const DataViewControl = defineComponent({\n name: 'IBizDataViewControl',\n props: {\n modelData: { type: Object as PropType<IDEDataView>, required: true },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n singleSelect: { type: Boolean, default: true },\n loadDefault: { type: Boolean, default: true },\n },\n setup(props) {\n const c = useControlController(\n (...args) => new DataViewControlController(...args),\n );\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n const active = ref([]);\n\n // 绘制项布局面板\n const renderPanelItem = (item: IData, modelData: ILayoutPanel): VNode => {\n const { context, params } = c;\n return (\n <iBizControlShell\n data={item}\n modelData={modelData}\n context={context}\n params={params}\n ></iBizControlShell>\n );\n };\n\n // 绘制项行为\n const renderItemAction = (item: IData) => {\n return (\n <iBizActionToolbar\n class={ns.bem('item-content', 'bottom', 'actions')}\n action-details={\n c.getOptItemModel()!.deuiactionGroup?.uiactionGroupDetails\n }\n actions-state={c.getOptItemAction(item)}\n onActionClick={(detail: IUIActionGroupDetail, event: MouseEvent) =>\n c.onActionClick(detail, item, event)\n }\n ></iBizActionToolbar>\n );\n };\n\n // 绘制默认项\n const renderFooter = (item: IData) => {\n return (\n <div class={ns.b('item-content')}>\n {c.getOptItemModel() ? (\n <div class={ns.be('item-content', 'bottom')}>\n {renderItemAction(item)}\n </div>\n ) : null}\n </div>\n );\n };\n\n // 绘制卡片\n const renderCard = (item: IData) => {\n const model: IDEDataView = c.model;\n // 是否选中数据\n const findIndex = c.state.selectedData.findIndex(data => {\n return data.srfkey === item.srfkey;\n });\n const cardClass = [ns.b('item'), ns.is('active', findIndex !== -1)];\n const cardStyle = {};\n if (model.cardWidth) {\n Object.assign(cardStyle, {\n width: `${model.cardWidth}px`,\n });\n }\n if (model.cardHeight) {\n Object.assign(cardStyle, {\n height: `${model.cardHeight}px`,\n });\n }\n return (\n <van-card\n class={cardClass}\n title={item.srfmajortext}\n desc={item.content}\n onClick={() => c.onRowClick(item)}\n >\n {{\n footer: () => renderFooter(item),\n }}\n </van-card>\n );\n };\n\n const renderDefault = () => {\n const panel = props.modelData.itemLayoutPanel;\n return c.state.items.map(item => {\n return panel ? renderPanelItem(item, panel) : renderCard(item);\n });\n };\n\n const renderGroup = () => {\n return (\n <van-collapse v-model={active.value}>\n {c.state.groups.map((group, index) => {\n return (\n <van-collapse-item title={group.caption} name={index}>\n {group.children.map(item => {\n return renderCard(item);\n })}\n </van-collapse-item>\n );\n })}\n </van-collapse>\n );\n };\n // 绘制卡片内容\n const renderMDContent = () => {\n const model: IDEDataView = c.model;\n return (\n <van-list\n finished={c.state.total <= c.state.items.length}\n immediate-check={false}\n finished-text='我已经到底啦~'\n onLoad={() => c.loadMore()}\n >\n {model.groupMode !== 'NONE' ? renderGroup() : renderDefault()}\n </van-list>\n );\n };\n\n return {\n c,\n ns,\n renderMDContent,\n };\n },\n render() {\n return (\n <iBizControlBase controller={this.c}>\n {this.c.state.isCreated && [this.renderMDContent()]}\n </iBizControlBase>\n );\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n/**\n * 数据视图(卡片)部件适配器\n *\n * @export\n * @class DataViewControlProvider\n * @implements {IControlProvider}\n */\nexport class DataViewControlProvider implements IControlProvider {\n component: string = 'IBizDataViewControl';\n}\n","import { registerControlProvider, ControlType } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { DataViewControl } from './data-view';\nimport { DataViewControlProvider } from './data-view.provider';\n\nexport * from './data-view.provider';\n\nexport const IBizDataViewControl = withInstall(\n DataViewControl,\n function (v: App) {\n v.component(DataViewControl.name, DataViewControl);\n registerControlProvider(\n ControlType.DATAVIEW,\n () => new DataViewControlProvider(),\n );\n },\n);\n\nexport default IBizDataViewControl;\n","import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport {\n ConcreteComponent,\n defineComponent,\n h,\n PropType,\n resolveComponent,\n VNode,\n} from 'vue';\nimport {\n IDashboard,\n IDBContainerPortletPart,\n IDBPortletPart,\n} from '@ibiz/model-core';\nimport './dashboard.scss';\nimport { DashboardController } from '@ibiz-template/runtime';\n\n/**\n * 根据类型绘制数据看板成员\n *\n * @author lxm\n * @date 2022-10-14 17:10:42\n * @param {PortletPartModel} model 模型\n * @param {IData} opts 额外参数\n */\nfunction renderPortletByType(\n model: IDBPortletPart,\n c: DashboardController,\n opts?: IData,\n): VNode {\n const provider = c.providers[model.id!];\n const controller = c.portlets[model.id!];\n const commonProps = {\n modelData: model,\n controller,\n };\n\n if (!provider) {\n return <div>暂未支持{model.portletType}</div>;\n }\n\n const providerComp = resolveComponent(\n provider.component,\n ) as ConcreteComponent;\n // 绘制容器\n if (model.portletType === 'CONTAINER') {\n const container = model as IDBContainerPortletPart;\n return h(\n providerComp,\n {\n ...commonProps,\n key: model.id,\n },\n {\n default: () =>\n container.controls?.map(child => renderPortletByType(child, c, opts)),\n },\n );\n }\n console.log(model, 'model');\n\n // 绘制门户部件\n return h(providerComp, {\n ...commonProps,\n key: model.id,\n });\n}\n\nexport const DashboardControl = defineComponent({\n name: 'IBizDashboardControl',\n props: {\n modelData: {\n type: Object as PropType<IDashboard>,\n required: true,\n },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n },\n setup() {\n const c = useControlController(\n (...args) => new DashboardController(...args),\n );\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n\n return { c, ns };\n },\n\n render() {\n const { state, model } = this.c;\n return (\n <iBizControlBase controller={this.c} class={[this.ns.b()]}>\n {state.isCreated && (\n <iBizRow class={[this.ns.b('row')]} layout={model.layout}>\n {model.controls?.map((child: IDBPortletPart) => {\n return (\n <iBizCol\n layoutPos={child.layoutPos}\n state={this.c.portlets[child.id!]?.state}\n >\n {renderPortletByType(child, this.c)}\n </iBizCol>\n );\n })}\n </iBizRow>\n )}\n </iBizControlBase>\n );\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n\n/**\n * 数据看板适配器\n *\n * @author lxm\n * @date 2022-10-25 18:10:57\n * @export\n * @class DashboardProvider\n * @implements {IControlProvider}\n */\nexport class DashboardProvider implements IControlProvider {\n component: string = 'IBizDashboardControl';\n}\n","import { useNamespace } from '@ibiz-template/vue3-util';\nimport { defineComponent, PropType, VNode } from 'vue';\nimport { IDBContainerPortletPart } from '@ibiz/model-core';\nimport { ContainerPortletController } from '@ibiz-template/runtime';\n\nexport const ContainerPortlet = defineComponent({\n name: 'IBizContainerPortlet',\n props: {\n modelData: {\n type: Object as PropType<IDBContainerPortletPart>,\n required: true,\n },\n controller: {\n type: ContainerPortletController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace(\n `portlet-${props.modelData.portletType?.toLowerCase()}`,\n );\n return { ns };\n },\n render() {\n const defaultSlots: VNode[] = this.$slots.default?.() || [];\n const content = (\n <iBizRow layout={this.modelData.layout}>\n {defaultSlots.map(slot => {\n const props = slot.props as IData;\n if (!props || !props.controller) {\n return slot;\n }\n return (\n <iBizCol\n layoutPos={props.modelData.layoutPos}\n state={props.controller.state}\n >\n {slot}\n </iBizCol>\n );\n })}\n </iBizRow>\n );\n const classArr: string[] = [\n this.ns.b(),\n this.ns.m(this.modelData.codeName),\n ];\n return (\n <iBizPortletLayout controller={this.controller} class={classArr}>\n {content}\n </iBizPortletLayout>\n );\n },\n});\n","import {\n ContainerPortletController,\n IDashboardController,\n IPortletContainerController,\n IPortletProvider,\n} from '@ibiz-template/runtime';\nimport { IDBPortletPart } from '@ibiz/model-core';\n\n/**\n * 数据看板容器适配器\n *\n * @author lxm\n * @date 2022-10-19 15:10:44\n * @export\n * @class ListPortletProvider\n */\nexport class ContainerPortletProvider implements IPortletProvider {\n component: string = 'IBizContainerPortlet';\n\n async createController(\n portletModel: IDBPortletPart,\n dashboard: IDashboardController,\n parent?: IPortletContainerController,\n ): Promise<ContainerPortletController> {\n const c = new ContainerPortletController(\n portletModel as IPortletContainerController,\n dashboard,\n parent,\n );\n await c.init();\n return c;\n }\n}\n","import { registerPortletProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { ContainerPortlet } from './container-portlet';\nimport { ContainerPortletProvider } from './container-portlet.provider';\n\nexport * from './container-portlet.provider';\nexport * from './container-portlet';\n\nexport const IBizContainerPortlet = withInstall(\n ContainerPortlet,\n function (v: App) {\n v.component(ContainerPortlet.name, ContainerPortlet);\n // 容器分组\n registerPortletProvider('CONTAINER', () => new ContainerPortletProvider());\n },\n);\n\nexport default IBizContainerPortlet;\n","import { useNamespace } from '@ibiz-template/vue3-util';\nimport { computed, defineComponent } from 'vue';\nimport { IUIActionGroupDetail } from '@ibiz/model-core';\nimport './portlet-layout.scss';\nimport { PortletPartController } from '@ibiz-template/runtime';\n\n/**\n * 门户控件布局\n */\nexport const PortletLayout = defineComponent({\n name: 'IBizPortletLayout',\n props: {\n controller: {\n type: PortletPartController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('portlet-layout');\n const c = props.controller;\n // 处理标题\n const isShowHeader = computed(() => {\n return (\n (c.model.showTitleBar && (c.model.title || c.model.sysImage)) ||\n c.model.uiactionGroup\n );\n });\n\n // 点击工具栏处理\n const onActionClick = async (\n detail: IUIActionGroupDetail,\n event: MouseEvent,\n ) => {\n await props.controller.onActionClick(detail, event);\n };\n\n return { ns, isShowHeader, onActionClick };\n },\n render() {\n const { model, state } = this.$props.controller;\n return (\n <div class={[this.ns.b(), this.ns.is('no-header', !this.isShowHeader)]}>\n {this.isShowHeader && (\n <div key='header' class={this.ns.b('header')}>\n <div class={this.ns.be('header', 'left')}>\n {model.showTitleBar && (\n <div class={this.ns.e('caption')}>\n <app-icon\n class={this.ns.e('caption-icon')}\n icon={model.sysImage}\n ></app-icon>\n <span class={this.ns.e('caption-text')} title={model.title}>\n {model.title}\n </span>\n </div>\n )}\n </div>\n <div class={this.ns.be('header', 'right')}>\n {model.uiactionGroup && (\n <action-toolbar\n class={this.ns.e('toolbar')}\n action-details={model.uiactionGroup.uiactionGroupDetails}\n actions-state={state.actionGroupState}\n onActionClick={this.onActionClick}\n ></action-toolbar>\n )}\n </div>\n </div>\n )}\n <div key='content' class={this.ns.b('content')}>\n {this.$slots.default?.()}\n </div>\n </div>\n );\n },\n});\n","import { useNamespace } from '@ibiz-template/vue3-util';\nimport { defineComponent, PropType } from 'vue';\nimport { IAppMenu, IDBAppMenuPortletPart } from '@ibiz/model-core';\nimport { MenuPortletController } from '@ibiz-template/runtime';\nimport IBizAppMenuControl from '../../../app-menu';\n\nexport const MenuPortlet = defineComponent({\n name: 'IBizMenuPortlet',\n props: {\n modelData: {\n type: Object as PropType<IDBAppMenuPortletPart>,\n required: true,\n },\n controller: {\n type: MenuPortletController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace(\n `portlet-${props.modelData.portletType?.toLowerCase()}`,\n );\n const menu: IAppMenu | undefined = props.modelData.controls?.find(item => {\n return item.controlType === 'APPMENU';\n });\n return { ns, menu };\n },\n\n render() {\n const classArr: string[] = [\n this.ns.b(),\n this.ns.m(this.modelData.codeName),\n ];\n const { context, params } = this.controller;\n return (\n <iBizPortletLayout controller={this.controller} class={classArr}>\n {this.menu && (\n <IBizAppMenuControl\n modelData={this.menu}\n context={context}\n params={params}\n ></IBizAppMenuControl>\n )}\n </iBizPortletLayout>\n );\n },\n});\n","import {\n IDashboardController,\n IPortletContainerController,\n IPortletProvider,\n MenuPortletController,\n} from '@ibiz-template/runtime';\nimport { IDBPortletPart } from '@ibiz/model-core';\n\n/**\n * 数据看板菜单适配器\n *\n * @author lxm\n * @date 2022-10-19 15:10:44\n * @export\n * @class ListPortletProvider\n */\nexport class MenuPortletProvider implements IPortletProvider {\n component: string = 'IBizMenuPortlet';\n\n async createController(\n portletModel: IDBPortletPart,\n dashboard: IDashboardController,\n parent?: IPortletContainerController,\n ): Promise<MenuPortletController> {\n const c = new MenuPortletController(\n portletModel as IPortletContainerController,\n dashboard,\n parent,\n );\n await c.init();\n return c;\n }\n}\n","import { registerPortletProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { MenuPortlet } from './menu-portlet';\nimport { MenuPortletProvider } from './menu-portlet.provider';\n\nexport * from './menu-portlet.provider';\nexport * from './menu-portlet';\n\nexport const IBizMenuPortlet = withInstall(MenuPortlet, function (v: App) {\n v.component(MenuPortlet.name, MenuPortlet);\n // 容器分组\n registerPortletProvider('APPMENU', () => new MenuPortletProvider());\n});\n\nexport default IBizMenuPortlet;\n","import { registerControlProvider, ControlType } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { DashboardControl } from './dashboard';\nimport { DashboardProvider } from './dashboard.provider';\nimport {\n IBizContainerPortlet,\n IBizMenuPortlet,\n PortletLayout,\n} from './portlet';\n\nexport * from './dashboard.provider';\nexport * from './portlet';\n\nexport const IBizDashboardControl = withInstall(\n DashboardControl,\n function (v: App) {\n v.component(DashboardControl.name, DashboardControl);\n registerControlProvider(\n ControlType.DASHBOARD,\n () => new DashboardProvider(),\n );\n v.component(PortletLayout.name, PortletLayout);\n v.use(IBizContainerPortlet);\n v.use(IBizMenuPortlet);\n },\n);\n\nexport default IBizDashboardControl;\n","import { IControlProvider } from '@ibiz-template/runtime';\n/**\n * 列表适配器\n *\n * @author lxm\n * @date 2022-10-25 18:10:57\n * @export\n * @class ChartProvider\n * @implements {IControlProvider}\n */\nexport class ChartProvider implements IControlProvider {\n component: string = 'IBizChartControl';\n}\n","import { registerControlProvider, ControlType } from '@ibiz-template/runtime';\nimport { App, defineAsyncComponent } from 'vue';\nimport { ControlLoadingPlaceholder } from '@ibiz-template/vue3-util';\n\nimport { ChartProvider } from './chart.provider';\n\nexport const IBizChartControl = {\n install(v: App): void {\n v.component(\n 'IBizChartControl',\n defineAsyncComponent({\n loader: () => import('./chart'),\n loadingComponent: ControlLoadingPlaceholder,\n delay: 0,\n }),\n );\n registerControlProvider(ControlType.CHART, () => new ChartProvider());\n },\n};\n\nexport default IBizChartControl;\n","const ARROW_DOWN_IMG = \"data:image/png;base64,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\";\nconst ARROW_UP_IMG = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAANp0lEQVR4Xu2dbYwdZRXHz7m7l94LSsluKr6kwRqINQtsd2Y0kagxEqsfNFFJipSKTTUajRWKEcSWlhIltFhE40uCWAotGDDRDxg1kcQPSk3MzNysa1HTagMYI5WtvNTQ7C5zzFOngLAv954789y59/zna+c8z5zfmV/PnX3uM5cJBwiAwIIEGGxAAAQWJgBBcHeAwCIEIAhuDxCAILgHQEBHAB1Exw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAECOFRpo6AhBExw1RRghAEI+FfuKJJ5pPPfXU2izLJk5PKyLP1Wq1XwRB8KjHS8FUbRKAIG2C6ua0NE3fmWXZ9US0lpmbC4x1hIgOjIyM7Fq1atXJbuZDbHEEIEhxLOcdKUmS3UT05XanEZG/Dg0NXTUxMXGw3RicVx4BCFIS28nJyQvn5uYeJKK3KabIROSO0dHRregmCnoFhkCQAmG6oUSkliTJdcy8k4jO6HL4I0NDQ1euWbPm912Og3AlAQiiBDdf2OTk5Kq5ubkDRHRJgcOimxQIs9OhIEinxBY4P0mSzxDRHiJ6TUFDvnIYdJOSwC42LATpEnqapitE5F4i+mCXQ7UT7rrJN0dHR7fh2aQdXN2fA0G6YJgkyUdF5AfMPNrFMJpQdBMNNUUMBFFAO3z48NnPPvvsd4logyK8qBB0k6JILjIOBOkQcpIk7yMi95HqTR2GlnU6uklZ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\";\nexport {\n ARROW_DOWN_IMG,\n ARROW_UP_IMG\n};\n","import { isDate } from \".\";\nconst unknownProp = null;\nconst numericProp = [Number, String];\nconst truthProp = {\n type: Boolean,\n default: true\n};\nconst makeRequiredProp = (type) => ({\n type,\n required: true\n});\nconst makeArrayProp = () => ({\n type: Array,\n default: () => []\n});\nconst makeNumberProp = (defaultVal) => ({\n type: Number,\n default: defaultVal\n});\nconst makeNumericProp = (defaultVal) => ({\n type: numericProp,\n default: defaultVal\n});\nconst makeStringProp = (defaultVal) => ({\n type: String,\n default: defaultVal\n});\nconst makeDateProp = (defaultVal) => ({\n type: Date,\n validator: isDate,\n default: defaultVal\n});\nexport {\n makeArrayProp,\n makeDateProp,\n makeNumberProp,\n makeNumericProp,\n makeRequiredProp,\n makeStringProp,\n numericProp,\n truthProp,\n unknownProp\n};\n","var stdin_default = {\n CONFIRM: \"\\u786E\\u5B9A\",\n TODAY: \"\\u4ECA\\u5929\",\n WEEK: [\"\\u65E5\", \"\\u4E00\", \"\\u4E8C\", \"\\u4E09\", \"\\u56DB\", \"\\u4E94\", \"\\u516D\"],\n MONTH: [\n \"1\\u6708\",\n \"2\\u6708\",\n \"3\\u6708\",\n \"4\\u6708\",\n \"5\\u6708\",\n \"6\\u6708\",\n \"7\\u6708\",\n \"8\\u6708\",\n \"9\\u6708\",\n \"10\\u6708\",\n \"11\\u6708\",\n \"12\\u6708\"\n ],\n DEFAULT_DATE_FORMAT: \"YY\\u5E74MM\\u6708DD\\u65E5\",\n DEFAULT_YEAR_MONTH_FORMAT: \"YY\\u5E74MM\\u6708\",\n DEFAULT_TIME_FORMAT: \"hh:mm\"\n};\nexport {\n stdin_default as default\n};\n","var stdin_default = {\n CONFIRM: \"CONFIRM\",\n TODAY: \"TODAY\",\n WEEK: [\"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\"],\n MONTH: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sept\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n DEFAULT_DATE_FORMAT: \"MM DD,YY\",\n DEFAULT_YEAR_MONTH_FORMAT: \"DD,YY\",\n DEFAULT_TIME_FORMAT: \"at hh:mm F\"\n};\nexport {\n stdin_default as default\n};\n","import CN from \"./cn\";\nimport EN from \"./en\";\nconst LanguageTypes = [\"CN\", \"EN\"];\nvar stdin_default = {\n CN,\n EN\n};\nexport {\n LanguageTypes,\n stdin_default as default\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport { isLeap } from \".\";\nimport language from \"../language\";\nconst formatDate = function(time, format, lang = \"CN\") {\n const languageEntiy = language[lang] || {};\n format = format || `${languageEntiy.DEFAULT_DATE_FORMAT} ${languageEntiy.DEFAULT_TIME_FORMAT}`;\n const date = time ? new Date(time) : new Date();\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const hour = date.getHours();\n const min = date.getMinutes();\n const sec = date.getSeconds();\n const preArr = Array.apply(null, Array(10)).map((elem, index) => \"0\" + index);\n const newTime = format.replace(/YY/g, year + \"\").replace(/F/g, hour >= 12 ? \"pm\" : \"am\").replace(/ss/g, preArr[sec] || sec + \"\").replace(/mm/g, preArr[min] || min + \"\").replace(\n /hh/g,\n hour > 12 && format.includes(\"F\") ? hour - 12 + \"\" : format.includes(\"F\") ? hour + \"\" : preArr[hour] || hour + \"\"\n ).replace(/DD/g, preArr[day] || day + \"\").replace(\n /MM/g,\n lang === \"EN\" ? languageEntiy.MONTH[month - 1] : preArr[month] || month + \"\"\n );\n return newTime;\n};\nconst fillNumber = (val) => val > 9 ? val : \"0\" + val;\nconst daysOfMonth = (year) => [\n 31,\n 28 + isLeap(year),\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31\n];\nconst getDayOfWeek = (year = new Date().getFullYear(), month = new Date().getMonth(), day = 1) => {\n const dayOfMonth = new Date(year, month, day);\n const dayOfWeek = dayOfMonth.getDay();\n return dayOfWeek;\n};\nfunction pick(obj, keys, ignoreUndefined) {\n return keys.reduce((ret, key) => {\n if (!ignoreUndefined || obj[key] !== void 0) {\n ret[key] = obj[key];\n }\n return ret;\n }, {});\n}\nconst transDateToYearMonthDay = (date) => {\n if (!date)\n return date;\n return {\n year: date.getFullYear(),\n month: date.getMonth(),\n day: date.getDate()\n };\n};\nconst transDateToHourMinute = (date) => {\n if (!date)\n return date;\n return {\n year: date.getFullYear(),\n month: date.getMonth(),\n day: date.getDate(),\n hours: date.getHours(),\n minutes: date.getMinutes()\n };\n};\nconst transYearMontDayToDate = (date) => {\n const { year, month, day } = date;\n return new Date(year, month, day, 0, 0, 0, 0);\n};\nconst transHourMinuteToDate = (date) => {\n const { year, month, day, minutes, hours } = date;\n return new Date(\n transYearMontDayToDate({ year, month, day }).setHours(hours, minutes, 0, 0)\n );\n};\nconst getMinDate = (min) => min && new Date(min.setHours(0, 0, 0, 0)).getTime() - 24 * 60 * 60 * 1e3;\nconst getMaxDate = (max) => max && new Date(max.setHours(0, 0, 0, 0)).getTime() + 24 * 60 * 60 * 1e3;\nfunction compareMonth(date1, date2) {\n const year1 = date1.year;\n const year2 = date2.year;\n if (year1 === year2) {\n const month1 = date1.month;\n const month2 = date2.month;\n return month1 === month2 ? 0 : month1 > month2 ? 1 : -1;\n }\n return year1 > year2 ? 1 : -1;\n}\nfunction compareDay(day1, day2) {\n const compareMonthResult = compareMonth(day1, day2);\n if (compareMonthResult === 0) {\n const date1 = day1.day;\n const date2 = day2.day;\n return date1 === date2 ? 0 : date1 > date2 ? 1 : -1;\n }\n return compareMonthResult;\n}\nconst cloneDate = (date) => new Date(date);\nconst cloneDates = (dates) => Array.isArray(dates) ? dates.map(cloneDate) : cloneDate(dates);\nfunction getDayByOffset(date, offset) {\n const cloned = cloneDate(date);\n cloned.setDate(cloned.getDate() + offset);\n return cloned;\n}\nconst getPrevDay = (date) => {\n if (!date)\n return date;\n const currDate = transYearMontDayToDate(date);\n return getDayByOffset(currDate, -1);\n};\nconst getNextDay = (date) => {\n if (!date)\n return date;\n const currDate = transYearMontDayToDate(date);\n return getDayByOffset(currDate, 1);\n};\nconst getToday = () => {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return today;\n};\nfunction calcDateNum(date) {\n const day1 = date[0].getTime();\n const day2 = date[1].getTime();\n return (day2 - day1) / (1e3 * 60 * 60 * 24) + 1;\n}\nfunction calcMiddleDay(date) {\n const [date1, date2] = date.map((item) => transYearMontDayToDate(item));\n const dateNum = calcDateNum([date1, date2]);\n if (dateNum > 2) {\n let nextDate = __spreadProps(__spreadValues({}, date[0]), { type: \"start\" });\n const dateArr = [];\n while (compareDay(nextDate, date[1]) === -1) {\n dateArr.push(nextDate);\n nextDate = __spreadProps(__spreadValues({}, transDateToYearMonthDay(getNextDay(nextDate))), {\n type: \"middle\"\n });\n }\n return [...dateArr, __spreadProps(__spreadValues({}, date[1]), { type: \"end\" })];\n }\n return date;\n}\nconst getStartEndDay = (date) => {\n const [start, end] = date;\n if (date.length <= 2) {\n return [start, end];\n }\n return [start, date[date.length - 1]];\n};\nexport {\n calcDateNum,\n calcMiddleDay,\n cloneDate,\n cloneDates,\n compareDay,\n compareMonth,\n daysOfMonth,\n fillNumber,\n formatDate,\n getDayByOffset,\n getDayOfWeek,\n getMaxDate,\n getMinDate,\n getNextDay,\n getPrevDay,\n getStartEndDay,\n getToday,\n pick,\n transDateToHourMinute,\n transDateToYearMonthDay,\n transHourMinuteToDate,\n transYearMontDayToDate\n};\n","import { getMaxDate, getMinDate } from \".\";\nconst checkPlatform = function() {\n if (/android/i.test(navigator.userAgent)) {\n return \"1\";\n }\n if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {\n return \"2\";\n }\n};\nconst isDateInRange = (curr, min, max) => {\n const minDate = getMinDate(min);\n const maxDate = getMaxDate(max);\n const currentDate = new Date(curr.setHours(0, 0, 0, 0)).getTime();\n if (minDate && maxDate)\n return currentDate > minDate && currentDate < maxDate;\n if (minDate)\n return currentDate > minDate;\n if (maxDate)\n return currentDate < maxDate;\n return true;\n};\nconst isWindow = (val) => val === window;\nconst isDate = (val) => Object.prototype.toString.call(val) === \"[object Date]\" && !Number.isNaN(val.getTime());\nconst isLeap = (year) => year % 4 === 0 ? year % 100 !== 0 ? 1 : year % 400 === 0 ? 1 : 0 : 0;\nexport {\n checkPlatform,\n isDate,\n isDateInRange,\n isLeap,\n isWindow\n};\n","const withInstall = (options) => {\n options.install = (app) => {\n const { name } = options;\n if (name) {\n app.component(name, options);\n }\n };\n return options;\n};\nexport {\n withInstall\n};\n","import { getCurrentInstance } from \"vue\";\nfunction useExpose(apis) {\n const instance = getCurrentInstance();\n if (instance) {\n Object.assign(instance.proxy, apis);\n }\n}\nexport {\n useExpose\n};\n","import { nextTick, onMounted, onActivated } from \"vue\";\nconst useMountedOrActivated = (hook) => {\n let mounted;\n onMounted(() => {\n hook();\n nextTick(() => {\n mounted = true;\n });\n });\n onActivated(() => {\n if (mounted) {\n hook();\n }\n });\n};\nexport {\n useMountedOrActivated\n};\n","import { unref } from \"vue\";\nimport { isWindow } from \"../utils\";\nconst makeDOMRect = (width, height) => ({\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height\n});\nconst useRect = (elementOrRef) => {\n const element = unref(elementOrRef);\n if (isWindow(element)) {\n const width = element.innerWidth;\n const height = element.innerHeight;\n return makeDOMRect(width, height);\n }\n if (element == null ? void 0 : element.getBoundingClientRect) {\n return element.getBoundingClientRect();\n }\n return makeDOMRect(0, 0);\n};\nexport {\n useRect\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport { createVNode as _createVNode } from \"vue\";\nimport { reactive, defineComponent, ref, computed, nextTick, watch } from \"vue\";\nimport languageUtil from \"./language\";\nimport { useExpose, useMountedOrActivated, useRect } from \"./hooks\";\nimport { calcMiddleDay, compareDay, daysOfMonth, fillNumber, formatDate, getDayOfWeek, getMaxDate, getMinDate, getStartEndDay, isDateInRange, makeArrayProp, makeDateProp, makeNumberProp, makeStringProp, transDateToYearMonthDay, truthProp } from \"./utils\";\nconst calendarDateProps = {\n showWeekView: Boolean,\n show: Boolean,\n disabledWeekView: Boolean,\n selectType: makeStringProp(\"single\"),\n allowSameDay: Boolean,\n defaultDate: [Date, Array],\n defaultYearMonth: {\n type: Object,\n default: {}\n },\n minDate: makeDateProp(null),\n maxDate: makeDateProp(null),\n maxRange: makeNumberProp(0),\n markType: makeStringProp(\"dot\"),\n markDate: makeArrayProp(),\n disabledDate: {\n type: Function,\n default: () => false\n },\n lang: makeStringProp(\"CN\"),\n scrollChangeDate: truthProp,\n weekStart: makeStringProp(\"Sunday\"),\n disabledScroll: {\n type: [Boolean, String],\n default: () => false\n },\n showNotCurrentMonthDay: truthProp,\n firstDayOfMonthClassName: makeStringProp(\"\"),\n todayClassName: makeStringProp(\"\"),\n checkedDayClassName: makeStringProp(\"\"),\n notCurrentMonthDayClassName: makeStringProp(\"\"),\n disabledClassName: makeStringProp(\"\")\n};\nvar stdin_default = defineComponent({\n name: \"CalendarDate\",\n props: calendarDateProps,\n emits: [\"height\", \"update:showWeekView\", \"click\", \"change\", \"overRange\", \"yearMonthChange\", \"slidechange\", \"touchstart\", \"touchmove\", \"touchend\"],\n setup(props, {\n emit,\n slots\n }) {\n let timer;\n const weekTitleRef = ref(null);\n const calendarRef = ref(null);\n const calendarItemRef = reactive([]);\n const yearOfToday = ref(new Date().getFullYear());\n const monthOfToday = ref(new Date().getMonth());\n const dayOfToday = ref(new Date().getDate());\n const weekArray = [\"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\"];\n const calendarWeek = ref([\"\\u65E5\", \"\\u4E00\", \"\\u4E8C\", \"\\u4E09\", \"\\u56DB\", \"\\u4E94\", \"\\u516D\"]);\n const calendarOfMonth = ref([]);\n const calendarOfMonthShow = ref([]);\n const calendarDaysTotalLength = ref(42);\n const lastMonthYear = ref(0);\n const lastMonth = ref(0);\n const nextMonthYear = ref(0);\n const nextMonth = ref(0);\n const checkedDate = ref([]);\n const weekStartIndex = ref(0);\n const translateIndex = ref(0);\n const transitionDuration = ref(0.3);\n const touch = ref({\n x: 0,\n y: 0\n });\n const isTouching = ref(false);\n const calendarGroupHeight = ref(0);\n const calendarWeekTitleHeight = ref(0);\n const calendarItemHeight = ref(0);\n const touchStartPositionX = ref(0);\n const touchStartPositionY = ref(0);\n const calendarY = ref(0);\n const selectedDayIndex = ref(0);\n const lastWeek = ref([]);\n const nextWeek = ref([]);\n const isLastWeekInCurrentMonth = ref(false);\n const isNextWeekInCurrentMonth = ref(false);\n const markDateColorObj = ref({});\n const markDateTypeObj = ref({});\n const currentYearMonth = ref({\n year: new Date().getFullYear(),\n month: new Date().getMonth()\n });\n calendarWeek.value = languageUtil[props.lang].WEEK;\n weekStartIndex.value = weekArray.indexOf(props.weekStart.toLowerCase());\n calendarWeek.value = [...calendarWeek.value.slice(weekStartIndex.value, calendarWeek.value.length), ...calendarWeek.value.slice(0, weekStartIndex.value)];\n const isShowWeek = computed({\n get() {\n return props.showWeekView;\n },\n set(val) {\n emit(\"update:showWeekView\", val);\n }\n });\n const showWeek = (checkedDatetime) => {\n if (!checkedDatetime) {\n checkedDatetime = checkedDate.value[0];\n }\n const {\n month,\n day\n } = checkedDatetime;\n const daysArr = [];\n calendarOfMonth.value[1].forEach((item) => {\n daysArr.push(item.day);\n });\n let dayIndexOfMonth = daysArr.indexOf(day);\n if (day > 15) {\n dayIndexOfMonth = daysArr.lastIndexOf(day);\n }\n const indexOfLine = Math.ceil((dayIndexOfMonth + 1) / 7);\n const lastLine = indexOfLine - 1;\n calendarY.value = -(calendarItemHeight.value * lastLine);\n isShowWeek.value = true;\n calendarGroupHeight.value = calendarItemHeight.value;\n let currentWeek = [];\n const sliceStart = lastLine * 7;\n const sliceEnd = sliceStart + 7;\n isLastWeekInCurrentMonth.value = false;\n currentWeek = calendarOfMonth.value[1].slice(sliceStart, sliceEnd);\n currentWeek.forEach((item, index) => {\n if (item.day === day) {\n selectedDayIndex.value = index;\n }\n });\n const firstDayOfCurrentWeek = currentWeek[0];\n const lastDayOfCurrentWeek = currentWeek[6];\n if (firstDayOfCurrentWeek.month !== month || firstDayOfCurrentWeek.day === 1) {\n if (calendarOfMonth.value[0].slice(28, 35)[6].month !== month) {\n lastWeek.value = calendarOfMonth.value[0].slice(28, 35);\n } else {\n lastWeek.value = calendarOfMonth.value[0].slice(21, 28);\n }\n } else {\n lastWeek.value = calendarOfMonth.value[1].slice(sliceStart - 7, sliceEnd - 7);\n if (lastWeek.value[selectedDayIndex.value] && lastWeek.value[selectedDayIndex.value].month === month) {\n isLastWeekInCurrentMonth.value = true;\n }\n }\n isNextWeekInCurrentMonth.value = false;\n if (lastDayOfCurrentWeek.day < firstDayOfCurrentWeek.day && lastDayOfCurrentWeek.month !== month) {\n nextWeek.value = calendarOfMonth.value[2].slice(7, 14);\n } else if (lastDayOfCurrentWeek.day === daysOfMonth(lastDayOfCurrentWeek.year)[lastDayOfCurrentWeek.month]) {\n nextWeek.value = calendarOfMonth.value[2].slice(0, 7);\n } else {\n nextWeek.value = calendarOfMonth.value[1].slice(sliceStart + 7, sliceEnd + 7);\n if (nextWeek.value[selectedDayIndex.value].month === month) {\n isNextWeekInCurrentMonth.value = true;\n }\n }\n calendarOfMonthShow.value[0].splice(sliceStart, 7, ...lastWeek.value);\n calendarOfMonthShow.value[2].splice(sliceStart, 7, ...nextWeek.value);\n };\n const isNotCurrentMonthDay = (date, index) => {\n const dateOfCurrentShow = calendarOfMonth.value[index][15];\n return date.year !== dateOfCurrentShow.year || date.month !== dateOfCurrentShow.month;\n };\n const isFirstDayOfMonth = (date, i) => date.day === 1 && !isNotCurrentMonthDay(date, i);\n const formatDisabledDate = (date) => {\n if (!date.day)\n return;\n const fDate = new Date(`${date.year}/${date.month + 1}/${date.day}`);\n return props.disabledDate(fDate) || !isDateInRange(fDate, props.minDate, props.maxDate);\n };\n const calculateCalendarOfMonth = (year = new Date().getFullYear(), month = new Date().getMonth()) => {\n const calendarOfCurrentMonth = [];\n const lastMonthYear2 = month === 0 ? year - 1 : year;\n const lastMonth2 = month === 0 ? 11 : month - 1;\n const nextMonthYear2 = month === 11 ? year + 1 : year;\n const nextMonth2 = month === 11 ? 0 : month + 1;\n let dayOfWeek = getDayOfWeek(year, month);\n const lastMonthDays = daysOfMonth(year)[lastMonth2];\n if (dayOfWeek < weekStartIndex.value) {\n dayOfWeek = 7 - weekStartIndex.value + dayOfWeek;\n } else {\n dayOfWeek -= weekStartIndex.value;\n }\n for (let i = 0; i < dayOfWeek; i++) {\n calendarOfCurrentMonth.push({\n year: lastMonthYear2,\n month: lastMonth2,\n day: props.showNotCurrentMonthDay ? lastMonthDays - (dayOfWeek - 1 - i) : 0\n });\n }\n for (let i = 0; i < daysOfMonth(year)[month]; i++) {\n calendarOfCurrentMonth.push({\n year,\n month,\n day: i + 1\n });\n }\n const fillDays = calendarDaysTotalLength.value - calendarOfCurrentMonth.length;\n for (let i = 0; i < fillDays; i++) {\n calendarOfCurrentMonth.push({\n year: nextMonthYear2,\n month: nextMonth2,\n day: props.showNotCurrentMonthDay ? i + 1 : 0\n });\n }\n return calendarOfCurrentMonth;\n };\n const calculateCalendarOfThreeMonth = (year = currentYearMonth.value.year, month = currentYearMonth.value.month) => {\n lastMonthYear.value = month === 0 ? year - 1 : year;\n lastMonth.value = month === 0 ? 11 : month - 1;\n nextMonthYear.value = month === 11 ? year + 1 : year;\n nextMonth.value = month === 11 ? 0 : month + 1;\n const firstMonth = calculateCalendarOfMonth(lastMonthYear.value, lastMonth.value);\n const secondMonth = calculateCalendarOfMonth(year, month);\n const thirdMonth = calculateCalendarOfMonth(nextMonthYear.value, nextMonth.value);\n calendarOfMonth.value = [];\n calendarOfMonth.value.push(firstMonth, secondMonth, thirdMonth);\n calendarOfMonthShow.value = JSON.parse(JSON.stringify(calendarOfMonth.value));\n if (!props.scrollChangeDate)\n return;\n if (props.selectType === \"single\") {\n let tempDate = {};\n let {\n day\n } = checkedDate.value[0];\n if (day > 30 || day > 28 && month === 1) {\n day = daysOfMonth(year)[month];\n }\n tempDate = {\n day,\n year,\n month\n };\n if (formatDisabledDate(tempDate))\n return;\n const {\n year: preYear,\n month: preMonth,\n day: preDay\n } = checkedDate.value[0];\n if (preYear !== year || preMonth !== month || preDay !== day) {\n checkedDate.value = [{\n day: tempDate.day,\n year,\n month\n }];\n }\n }\n };\n const showMonth = () => {\n calendarY.value = 0;\n isShowWeek.value = false;\n calendarGroupHeight.value = calendarItemHeight.value * 6;\n isLastWeekInCurrentMonth.value = false;\n isNextWeekInCurrentMonth.value = false;\n calculateCalendarOfThreeMonth();\n };\n const init = () => {\n if (props.selectType === \"single\") {\n const {\n year,\n month\n } = checkedDate.value[0];\n currentYearMonth.value = {\n year,\n month\n };\n }\n nextTick(() => {\n calendarItemHeight.value = useRect(calendarItemRef[0]).height;\n calendarWeekTitleHeight.value = useRect(weekTitleRef).height;\n const calendarItemGroup = calendarItemRef || [];\n calendarItemGroup.forEach((item) => {\n if (!item)\n return;\n item.style.height = `${calendarItemHeight.value}px`;\n });\n if (isShowWeek.value) {\n showWeek();\n calendarGroupHeight.value = calendarItemHeight.value;\n } else {\n showMonth();\n calendarGroupHeight.value = calendarItemHeight.value * 6;\n }\n });\n };\n const today = () => {\n const {\n year,\n month,\n day\n } = transDateToYearMonthDay(new Date());\n if (props.selectType === \"single\") {\n checkedDate.value = [{\n year,\n month,\n day\n }];\n }\n currentYearMonth.value = {\n year,\n month\n };\n calculateCalendarOfThreeMonth();\n if (isShowWeek.value) {\n setTimeout(() => {\n isTouching.value = true;\n if (props.selectType === \"single\") {\n const date = checkedDate.value[0];\n checkedDate.value = [__spreadProps(__spreadValues({}, date), {\n year,\n month\n })];\n }\n showWeek();\n }, transitionDuration.value * 1e3);\n }\n };\n const getLastWeek = () => {\n const checked = lastWeek.value[selectedDayIndex.value];\n showWeek(checked);\n if (formatDisabledDate(checked))\n return;\n if (!props.scrollChangeDate)\n return;\n checkedDate.value = [checked];\n };\n const getNextWeek = () => {\n const checked = nextWeek.value[selectedDayIndex.value];\n showWeek(checked);\n if (formatDisabledDate(checked))\n return;\n if (!props.scrollChangeDate)\n return;\n checkedDate.value = [checked];\n };\n const getLastMonth = () => {\n translateIndex.value += 1;\n if (!isLastWeekInCurrentMonth.value) {\n currentYearMonth.value = {\n year: lastMonthYear.value,\n month: lastMonth.value\n };\n }\n calculateCalendarOfThreeMonth();\n };\n const getNextMonth = () => {\n translateIndex.value -= 1;\n if (!isNextWeekInCurrentMonth.value) {\n currentYearMonth.value = {\n year: nextMonthYear.value,\n month: nextMonth.value\n };\n }\n calculateCalendarOfThreeMonth();\n };\n const dealCheckedDate = (date) => {\n const {\n selectType,\n maxRange\n } = props;\n const {\n year,\n month,\n day\n } = date;\n const checked = checkedDate.value;\n if (selectType === \"single\") {\n checkedDate.value = [{\n year,\n month,\n day\n }];\n } else if (selectType === \"multiple\") {\n const existIndex = checked.findIndex((item) => compareDay(item, date) === 0);\n if (existIndex > -1) {\n checkedDate.value.splice(existIndex, 1);\n } else {\n if (maxRange && checked.length >= maxRange) {\n emit(\"overRange\");\n return;\n }\n checkedDate.value = [...checked, date];\n }\n } else if (selectType === \"range\") {\n date = __spreadProps(__spreadValues({}, date), {\n type: \"start\"\n });\n if (!checked || !checked.length) {\n checkedDate.value = [date];\n return;\n }\n const [startDay, endDay] = getStartEndDay(checked);\n if (startDay && !endDay) {\n const compareToStart = compareDay(date, startDay);\n if (compareToStart === 1) {\n const dateArr = calcMiddleDay([checked[0], __spreadProps(__spreadValues({}, date), {\n type: \"end\"\n })]);\n if (maxRange && dateArr.length > maxRange) {\n emit(\"overRange\");\n return;\n }\n checkedDate.value = dateArr;\n } else if (compareToStart === -1) {\n checkedDate.value = [date];\n } else if (props.allowSameDay) {\n date = __spreadProps(__spreadValues({}, date), {\n type: \"start-end\"\n });\n checkedDate.value = [date, date];\n }\n } else {\n checkedDate.value = [date];\n }\n }\n };\n const clickCalendarDay = (date) => {\n if (!date.day)\n return;\n if (formatDisabledDate(date))\n return;\n dealCheckedDate(date);\n if (date.month === lastMonth.value && date.year === lastMonthYear.value) {\n getLastMonth();\n }\n if (date.month === nextMonth.value && date.year === nextMonthYear.value) {\n getNextMonth();\n }\n if (isShowWeek.value) {\n showWeek();\n }\n emit(\"click\", date);\n };\n const isToday = (date) => yearOfToday.value === date.year && monthOfToday.value === date.month && dayOfToday.value === date.day;\n const isCheckedDay = (date) => {\n if (formatDisabledDate(date))\n return false;\n const {\n year,\n month,\n day\n } = date;\n return checkedDate.value.some((item) => item.year === year && item.month === month && item.day === day);\n };\n const isDisabledHorizontalScroll = (direc) => {\n const minDate = getMinDate(props.minDate);\n const maxDate = getMaxDate(props.maxDate);\n if (isShowWeek.value) {\n const lastWeekLastedDay = new Date(`${lastWeek.value[6].year}/${lastWeek.value[6].month + 1}/${lastWeek.value[6].day}`).getTime();\n const nextWeekFirstDay = new Date(`${nextWeek.value[0].year}/${nextWeek.value[0].month + 1}/${nextWeek.value[0].day}`).getTime();\n if (direc === \"left\" && maxDate)\n return nextWeekFirstDay >= maxDate;\n if (direc === \"right\" && minDate)\n return lastWeekLastedDay <= minDate;\n } else {\n const lastMonthLastedDay = new Date(`${lastMonthYear.value}/${lastMonth.value + 1}/${daysOfMonth(lastMonthYear.value)[lastMonth.value]}`).getTime();\n const nextMonthFirstDay = new Date(`${nextMonthYear.value}/${nextMonth.value + 1}/1`).getTime();\n if (direc === \"left\" && maxDate)\n return nextMonthFirstDay >= maxDate;\n if (direc === \"right\" && minDate)\n return lastMonthLastedDay <= minDate;\n }\n return false;\n };\n const isCanScroll = (dire) => {\n const scrollObj = {\n up: [true, \"up\", \"vertical\"],\n down: [true, \"down\", \"vertical\"],\n left: [true, \"left\", \"horizontal\"],\n right: [true, \"right\", \"horizontal\"]\n };\n const checkedScrollArr = scrollObj[dire];\n return !checkedScrollArr.some((item) => item === props.disabledScroll);\n };\n const setDisabledScrollDirection = () => {\n touch.value.x < 0 && !isCanScroll(\"left\") && (touch.value.x = 0);\n touch.value.x > 0 && !isCanScroll(\"right\") && (touch.value.x = 0);\n touch.value.y < 0 && !isCanScroll(\"up\") && (touch.value.y = 0);\n touch.value.y > 0 && !isCanScroll(\"down\") && (touch.value.y = 0);\n };\n const changeWeekView = ({\n isNext\n }) => {\n if (timer)\n timer = null;\n timer = setTimeout(() => {\n isTouching.value = true;\n isNext ? getNextWeek() : getLastWeek();\n }, transitionDuration.value * 1e3);\n };\n const touchStart = (event) => {\n emit(\"touchstart\", event);\n touchStartPositionX.value = event.touches[0].clientX;\n touchStartPositionY.value = event.touches[0].clientY;\n touch.value = {\n x: 0,\n y: 0\n };\n isTouching.value = true;\n };\n const touchMove = (event) => {\n emit(\"touchmove\", event);\n if (!props.disabledWeekView) {\n event.stopPropagation();\n if (event.cancelable)\n event.preventDefault();\n }\n const moveX = event.touches[0].clientX - touchStartPositionX.value;\n const moveY = event.touches[0].clientY - touchStartPositionY.value;\n if (Math.abs(moveX) > Math.abs(moveY)) {\n if (isDisabledHorizontalScroll(moveX < 0 ? \"left\" : \"right\"))\n return;\n touch.value = {\n x: moveX / useRect(calendarRef).width,\n y: 0\n };\n } else {\n if (props.disabledWeekView)\n return;\n touch.value = {\n x: 0,\n y: moveY / useRect(calendarRef).height\n };\n }\n setDisabledScrollDirection();\n };\n const touchEnd = (e) => {\n emit(\"touchend\", e);\n isTouching.value = false;\n if (Math.abs(touch.value.x) > Math.abs(touch.value.y) && Math.abs(touch.value.x) > 0.2) {\n if (touch.value.x > 0) {\n emit(\"slidechange\", \"right\");\n getLastMonth();\n if (isShowWeek.value) {\n changeWeekView({\n isNext: false\n });\n }\n } else if (touch.value.x < 0) {\n emit(\"slidechange\", \"left\");\n getNextMonth();\n if (isShowWeek.value) {\n changeWeekView({\n isNext: true\n });\n }\n }\n }\n if (Math.abs(touch.value.y) > Math.abs(touch.value.x) && Math.abs(touch.value.y * useRect(calendarRef).height) > 50) {\n if (touch.value.y > 0 && isShowWeek.value) {\n emit(\"slidechange\", \"down\");\n showMonth();\n } else if (touch.value.y < 0 && !isShowWeek.value) {\n emit(\"slidechange\", \"up\");\n showWeek();\n }\n } else {\n touch.value = {\n x: 0,\n y: 0\n };\n }\n };\n const markDateColor = (date, type) => {\n const dateString = `${date.year}/${fillNumber(date.month + 1)}/${fillNumber(date.day)}`;\n const markDateTypeString = markDateTypeObj.value[dateString] || \"\";\n if (markDateTypeString.indexOf(type) === -1)\n return;\n return markDateColorObj.value[dateString];\n };\n const dateFormat = (dateArr) => {\n dateArr.forEach((date, index) => {\n dateArr[index] = formatDate(date, \"YY/MM/DD\");\n });\n return dateArr;\n };\n useMountedOrActivated(init);\n watch(() => props.markDate, (val) => {\n const objArr = [];\n val.forEach((item) => {\n const obj = {\n date: [],\n color: \"#1c71fb\",\n type: props.markType\n };\n if (typeof item === \"string\" || typeof item === \"number\") {\n obj.date = [item];\n } else {\n obj.color = item.color || \"#1c71fb\";\n obj.type = item.type || props.markType;\n obj.date = dateFormat(item.date || []);\n }\n objArr.push(obj);\n });\n markDateColorObj.value = {};\n markDateTypeObj.value = {};\n objArr.forEach((item) => {\n item.date.forEach((date) => {\n markDateColorObj.value[date] = item.color;\n markDateTypeObj.value[date] = item.type;\n });\n });\n }, {\n deep: true,\n immediate: true\n });\n watch(weekStartIndex, () => {\n calculateCalendarOfThreeMonth();\n });\n watch(() => props.defaultDate, (val) => {\n if (props.selectType === \"single\" && val instanceof Date) {\n const year = val.getFullYear();\n const month = val.getMonth();\n currentYearMonth.value = {\n year,\n month\n };\n checkedDate.value = [transDateToYearMonthDay(val)];\n } else if (Array.isArray(val)) {\n const checked = val.map((item) => transDateToYearMonthDay(item));\n if (props.selectType === \"range\") {\n checkedDate.value = calcMiddleDay([__spreadProps(__spreadValues({}, checked[0]), {\n type: \"start\"\n }), __spreadProps(__spreadValues({}, checked[1]), {\n type: \"end\"\n })]);\n } else {\n checkedDate.value = checked;\n }\n }\n calculateCalendarOfThreeMonth();\n if (isShowWeek.value) {\n showWeek();\n }\n }, {\n immediate: true\n });\n watch(checkedDate, (val) => {\n emit(\"change\", val);\n }, {\n deep: true,\n immediate: true\n });\n watch(() => props.show, (val) => {\n if (val) {\n calculateCalendarOfThreeMonth();\n init();\n }\n }, {\n immediate: true\n });\n watch(currentYearMonth, () => emit(\"yearMonthChange\", currentYearMonth.value));\n watch(isShowWeek, (val) => {\n if (val) {\n nextTick(() => {\n showWeek();\n });\n } else {\n nextTick(() => {\n showMonth();\n });\n }\n });\n watch(() => props.defaultYearMonth, (val) => {\n if (val) {\n currentYearMonth.value = val;\n }\n }, {\n immediate: true\n });\n watch(calendarGroupHeight, (val) => {\n emit(\"height\", val + calendarWeekTitleHeight.value);\n });\n useExpose({\n today,\n getLastMonth,\n getNextMonth,\n changeWeekView\n });\n const renderWeek = () => _createVNode(\"div\", {\n \"class\": \"calendar_week\",\n \"ref\": weekTitleRef\n }, [calendarWeek.value.map((item) => _createVNode(\"div\", {\n \"class\": \"calendar_item\",\n \"key\": item\n }, [_createVNode(\"p\", {\n \"class\": \"calendar_day\"\n }, [slots.week ? slots.week({\n week: item\n }) : item])]))]);\n const getRangeDayClassName = (date) => {\n if (props.selectType !== \"range\")\n return \"\";\n const currDate = checkedDate.value.find((item) => compareDay(item, date) === 0);\n if (!currDate)\n return \"\";\n const {\n type\n } = currDate;\n return type === \"start\" ? \" calendar_range_checked calendar_range_start\" : type === \"middle\" ? \" calendar_range_checked calendar_range_middle\" : type === \"end\" ? \" calendar_range_checked calendar_range_end\" : type === \"start-end\" ? \" calendar_range_checked calendar_range_start-end\" : \"\";\n };\n const renderDay = (date, i) => {\n let dayEle = isFirstDayOfMonth(date, i) ? languageUtil[props.lang].MONTH[date.month] : date.day === 0 ? \"\" : date.day;\n if (slots.day) {\n dayEle = slots.day({\n date,\n extendAttr: {\n isMarked: !!(markDateColor(date, \"circle\") || markDateColor(date, \"dot\")),\n isDisabledDate: formatDisabledDate(date),\n isToday: isToday(date),\n isChecked: isCheckedDay(date),\n isCurrentMonthDay: !isNotCurrentMonthDay(date, i),\n isFirstDayOfMonth: isFirstDayOfMonth(date, i)\n }\n });\n }\n return _createVNode(\"div\", {\n \"class\": `calendar_day ${isFirstDayOfMonth(date, i) ? props.firstDayOfMonthClassName || \"calendar_first_today\" : \"\"} ${isToday(date) ? props.todayClassName || \"calendar_day_today\" : \"\"} ${isCheckedDay(date) ? props.checkedDayClassName || \"calendar_day_checked\" : \"\"} ${isNotCurrentMonthDay(date, i) && props.showNotCurrentMonthDay ? props.notCurrentMonthDayClassName || \"calendar_day_not\" : \"\"} ${markDateColor(date, \"circle\") ? \"calendar_mark_circle\" : \"\"}`,\n \"style\": {\n \"border-color\": markDateColor(date, \"circle\")\n }\n }, [dayEle]);\n };\n const renderMonth = () => calendarOfMonthShow.value.map((item, i) => _createVNode(\"li\", {\n \"class\": \"calendar_group_li\",\n \"key\": i,\n \"style\": {\n transform: `translate3d(${(i - 1 + translateIndex.value + (isTouching.value ? touch.value.x : 0)) * 100}%, ${calendarY.value}px, 0)`,\n transitionDuration: `${isTouching.value ? 0 : transitionDuration.value}s`\n }\n }, [item.map((date, j) => _createVNode(\"div\", {\n \"class\": `calendar_item ${formatDisabledDate(date) ? props.disabledClassName || \"calendar_item_disable\" : \"\"}${getRangeDayClassName(date)}`,\n \"ref\": (el) => {\n calendarItemRef.length = 0;\n calendarItemRef.push(el);\n },\n \"key\": i + j,\n \"onClick\": () => clickCalendarDay(date)\n }, [renderDay(date, i), _createVNode(\"div\", {\n \"style\": {\n background: markDateColor(date, \"dot\")\n },\n \"class\": \"calendar_dot\"\n }, null)]))]));\n const renderCalendarDate = () => _createVNode(\"div\", {\n \"class\": \"calendar_body\",\n \"style\": {\n display: props.show ? \"block\" : \"none\"\n }\n }, [renderWeek(), _createVNode(\"div\", {\n \"class\": \"calendar_group\",\n \"style\": {\n height: `${calendarGroupHeight.value}px`\n },\n \"ref\": calendarRef,\n \"onTouchstart\": touchStart,\n \"onTouchmove\": touchMove,\n \"onTouchend\": touchEnd\n }, [_createVNode(\"ul\", {\n \"style\": {\n transform: `translate3d(${-translateIndex.value * 100}%, 0, 0)`\n }\n }, [renderMonth()])])]);\n return () => renderCalendarDate();\n }\n});\nexport {\n calendarDateProps,\n stdin_default as default\n};\n","import { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, nextTick, reactive, ref, watch } from \"vue\";\nimport { useRect } from \"./hooks\";\nimport { checkPlatform, fillNumber, makeDateProp, makeNumberProp } from \"./utils\";\nconst calendarTimeProps = {\n show: Boolean,\n defaultTime: makeDateProp(new Date()),\n disabledTime: {\n type: Function,\n default: () => false\n },\n minuteStep: makeNumberProp(1),\n calendarDate: {\n type: Object,\n default: () => ({})\n }\n};\nvar stdin_default = defineComponent({\n name: \"CalendarTime\",\n props: calendarTimeProps,\n emits: [\"change\"],\n setup(props, {\n emit\n }) {\n const timeContentRef = reactive([]);\n const timeItemRef = reactive([]);\n const checkedDate = ref({\n hours: new Date().getHours(),\n minutes: new Date().getMinutes()\n });\n const timeHeight = ref(0);\n const timeArray = ref([]);\n const timeStartY = ref(0);\n const timeStartUp = ref(0);\n const initTimeArray = () => {\n const hours = [];\n timeArray.value = [];\n for (let i = 0; i < 24; i++) {\n hours.push(i);\n }\n const minutes = [];\n for (let i = 0; i < 60; i++) {\n if (i % props.minuteStep === 0) {\n minutes.push(i);\n }\n }\n timeArray.value.push(hours, minutes);\n nextTick(() => {\n const checkHours = checkedDate.value.hours;\n const checkMinutes = checkedDate.value.minutes;\n timeHeight.value = useRect(timeItemRef[0]).height;\n const [timeContentFirst, timeContentSecond] = timeContentRef;\n const hoursUp = (2 - checkHours) * timeHeight.value;\n if (timeContentFirst) {\n timeContentFirst.style.transform = \"translate3d(0px,\" + hoursUp + \"px,0px)\";\n }\n const minutesUp = (2 - checkMinutes / props.minuteStep) * timeHeight.value;\n if (timeContentSecond) {\n timeContentSecond.style.transform = \"translate3d(0px,\" + minutesUp + \"px,0px)\";\n }\n });\n };\n const formatDisabledDate = (time, index) => {\n const hours = index === 0 ? time : checkedDate.value.hours;\n const minutes = index === 1 ? time : checkedDate.value.minutes;\n const dateStr = `${props.calendarDate.year}/${props.calendarDate.month + 1}/${props.calendarDate.day} ${hours}:${minutes}`;\n const fDate = new Date(dateStr);\n return props.disabledTime(fDate);\n };\n const timeTouchStart = (e) => {\n if (e.cancelable)\n e.preventDefault();\n timeStartY.value = e.changedTouches[0].pageY;\n const {\n transform\n } = e.currentTarget.style;\n if (transform) {\n timeStartUp.value = parseFloat(transform.split(\" \")[1].split(\"px\")[0]);\n }\n };\n const timeTouchEnd = (e, index) => {\n const {\n transform\n } = e.currentTarget.style;\n let endUp = timeStartUp.value;\n if (transform) {\n endUp = parseFloat(e.currentTarget.style.transform.split(\" \")[1].split(\"px\")[0]);\n }\n const distance = Math.abs(endUp - timeStartUp.value);\n const upCount = Math.floor(distance / timeHeight.value) || 1;\n const halfWinWith = timeHeight.value / 2;\n let up = timeStartUp.value;\n if (endUp <= timeStartUp.value) {\n if (distance <= halfWinWith) {\n up = timeStartUp.value;\n } else {\n up = timeStartUp.value - timeHeight.value * upCount;\n if (up < -(timeArray.value[index].length - 3) * timeHeight.value) {\n up = -(timeArray.value[index].length - 3) * timeHeight.value;\n }\n }\n } else if (distance <= halfWinWith) {\n up = timeStartUp.value;\n } else {\n up = timeStartUp.value + timeHeight.value * upCount;\n if (up > timeHeight.value * 2) {\n up = timeHeight.value * 2;\n }\n }\n if (index === 0) {\n const hour = 2 - Math.round(up / timeHeight.value);\n if (formatDisabledDate(hour, index)) {\n up = timeStartUp.value;\n } else {\n checkedDate.value.hours = hour;\n }\n } else {\n const minute = 2 - Math.round(up / timeHeight.value);\n if (formatDisabledDate(minute, index)) {\n up = timeStartUp.value;\n } else {\n checkedDate.value.minutes = minute * props.minuteStep;\n }\n }\n e.currentTarget.style.webkitTransition = \"transform 300ms\";\n e.currentTarget.style.transform = \"translate3d(0px,\" + up + \"px,0px)\";\n };\n const timeTouchMove = (e, index) => {\n const moveEndY = e.changedTouches[0].pageY;\n const Y = moveEndY - timeStartY.value;\n e.currentTarget.style.transform = \"translate3d(0px,\" + (Y + timeStartUp.value) + \"px,0px)\";\n if (checkPlatform() === \"2\") {\n timeTouchEnd(e, index);\n return false;\n }\n };\n const isBeSelectedTime = (time, index) => index === 0 && time === checkedDate.value.hours || index === 1 && time === checkedDate.value.minutes;\n watch(() => props.defaultTime, (val) => {\n if (!(val instanceof Date)) {\n throw new Error(\"The calendar component's defaultTime must be date type!\");\n }\n checkedDate.value.hours = val.getHours();\n checkedDate.value.minutes = val.getMinutes();\n }, {\n immediate: true\n });\n watch(checkedDate, (val) => {\n emit(\"change\", val);\n }, {\n deep: true,\n immediate: true\n });\n watch(() => props.show, (val) => {\n if (val) {\n setTimeout(() => {\n initTimeArray();\n }, 100);\n }\n }, {\n immediate: true\n });\n watch(() => props.minuteStep, (val) => {\n if (val <= 0 || val >= 60) {\n throw new Error(`The minutes-step can't be: ${val}!`);\n }\n if (60 % val !== 0) {\n throw new Error(\"The minutes-step must be divided by 60!\");\n }\n }, {\n immediate: true\n });\n const renderTimeItem = (time, index) => time.map((item, j) => _createVNode(\"div\", {\n \"ref\": (ref2) => {\n timeItemRef.length = 0;\n timeItemRef.push(ref2);\n },\n \"class\": `time_item ${isBeSelectedTime(item, index) ? \"time_item_show\" : \"\"} ${formatDisabledDate(item, index) ? \"time-disabled\" : \"\"}`,\n \"key\": index + j\n }, [fillNumber(item)]));\n const renderCalendarTime = () => _createVNode(\"div\", {\n \"class\": \"time_body\",\n \"style\": {\n display: props.show ? \"flex\" : \"none\"\n }\n }, [_createVNode(\"div\", {\n \"class\": \"time_group\"\n }, [timeArray.value.map((item, index) => _createVNode(\"div\", {\n \"class\": \"time_content\",\n \"ref\": (ref2) => {\n timeContentRef.push(ref2);\n },\n \"key\": index,\n \"onTouchstart\": timeTouchStart,\n \"onTouchmove\": (e) => timeTouchMove(e, index),\n \"onTouchend\": (e) => timeTouchEnd(e, index)\n }, [renderTimeItem(item, index)]))])]);\n return () => renderCalendarTime();\n }\n});\nexport {\n calendarTimeProps,\n stdin_default as default\n};\n","import { createVNode as _createVNode } from \"vue\";\nimport { defineComponent, ref } from \"vue\";\nimport { useRect } from \"./hooks\";\nimport { makeArrayProp } from \"./utils\";\nconst calendarScrollContainerProps = {\n disabledScroll: {\n type: [Boolean, String],\n default: () => false\n },\n calendarData: makeArrayProp()\n};\nvar stdin_default = defineComponent({\n name: \"CalendarScrollContainer\",\n props: calendarScrollContainerProps,\n emits: [\"slidechange\", \"touchstart\", \"touchmove\", \"touchend\"],\n setup(props, {\n emit,\n slots\n }) {\n const containerRef = ref();\n const translateIndex = ref(0);\n const transitionDuration = ref(0.3);\n const touch = ref({\n x: 0,\n y: 0\n });\n const isTouching = ref(false);\n const touchStartPositionX = ref(0);\n const touchStartPositionY = ref(0);\n const calendarY = ref(0);\n const isCanScroll = (dire) => {\n const scrollObj = {\n up: [true, \"up\", \"vertical\"],\n down: [true, \"down\", \"vertical\"],\n left: [true, \"left\", \"horizontal\"],\n right: [true, \"right\", \"horizontal\"]\n };\n const checkedScrollArr = scrollObj[dire];\n return !checkedScrollArr.some((item) => item === props.disabledScroll);\n };\n const setDisabledScrollDirection = () => {\n touch.value.x < 0 && !isCanScroll(\"left\") && (touch.value.x = 0);\n touch.value.x > 0 && !isCanScroll(\"right\") && (touch.value.x = 0);\n touch.value.y < 0 && !isCanScroll(\"up\") && (touch.value.y = 0);\n touch.value.y > 0 && !isCanScroll(\"down\") && (touch.value.y = 0);\n };\n const touchStart = (event) => {\n emit(\"touchstart\", event);\n touchStartPositionX.value = event.touches[0].clientX;\n touchStartPositionY.value = event.touches[0].clientY;\n touch.value = {\n x: 0,\n y: 0\n };\n isTouching.value = true;\n };\n const touchMove = (event) => {\n emit(\"touchmove\", event);\n if (event.cancelable)\n event.preventDefault();\n event.stopPropagation();\n const moveX = event.touches[0].clientX - touchStartPositionX.value;\n const moveY = event.touches[0].clientY - touchStartPositionY.value;\n if (Math.abs(moveX) > Math.abs(moveY)) {\n touch.value = {\n x: moveX / useRect(containerRef).width,\n y: 0\n };\n } else {\n touch.value = {\n x: 0,\n y: moveY / useRect(containerRef).height\n };\n }\n setDisabledScrollDirection();\n };\n const touchEnd = (e) => {\n emit(\"touchend\", e);\n isTouching.value = false;\n if (Math.abs(touch.value.x) > Math.abs(touch.value.y) && Math.abs(touch.value.x) > 0.2) {\n if (touch.value.x > 0) {\n emit(\"slidechange\", \"right\");\n translateIndex.value += 1;\n } else if (touch.value.x < 0) {\n emit(\"slidechange\", \"left\");\n translateIndex.value -= 1;\n }\n }\n if (Math.abs(touch.value.y) > Math.abs(touch.value.x) && Math.abs(touch.value.y * useRect(containerRef).height) > 50) {\n if (touch.value.y > 0) {\n emit(\"slidechange\", \"down\");\n } else if (touch.value.y < 0) {\n emit(\"slidechange\", \"up\");\n }\n } else {\n touch.value = {\n x: 0,\n y: 0\n };\n }\n };\n const renderDateItem = () => props.calendarData.map((item, i) => {\n var _a;\n return _createVNode(\"li\", {\n \"class\": \"calendar_group_li\",\n \"key\": i,\n \"style\": {\n transform: `translate3d(${(i - 1 + translateIndex.value + (isTouching.value ? touch.value.x : 0)) * 100}%, ${calendarY.value}px, 0)`,\n transitionDuration: `${isTouching.value ? 0 : transitionDuration.value}s`\n }\n }, [(_a = slots.default) == null ? void 0 : _a.call(slots, item)]);\n });\n const renderContainer = () => _createVNode(\"ul\", {\n \"class\": \"calendar_group_ul\",\n \"ref\": \"containerRef\",\n \"style\": {\n transform: `translate3d(${-translateIndex.value * 100}%, 0, 0)`\n },\n \"onTouchstart\": touchStart,\n \"onTouchmove\": touchMove,\n \"onTouchend\": touchEnd\n }, [renderDateItem()]);\n return () => renderContainer();\n }\n});\nexport {\n calendarScrollContainerProps,\n stdin_default as default\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport { createVNode as _createVNode } from \"vue\";\nimport { computed, defineComponent, ref, watch } from \"vue\";\nimport CalendarScrollContainer from \"./CalendarScrollContainer\";\nimport languageUtil from \"./language\";\nimport { isDateInRange, makeDateProp, makeNumberProp, makeStringProp } from \"./utils\";\nconst calendarYearMonthProps = {\n minDate: makeDateProp(null),\n maxDate: makeDateProp(null),\n disabledDate: {\n type: Function,\n default: () => false\n },\n checkedDayClassName: makeStringProp(\"\"),\n notCurrentMonthDayClassName: makeStringProp(\"\"),\n disabledClassName: makeStringProp(\"\"),\n type: makeStringProp(\"date\"),\n calendarContentHeight: makeNumberProp(0),\n disabledScroll: {\n type: [Boolean, String],\n default: () => false\n },\n currentYearMonth: {\n type: Object,\n default: () => ({})\n },\n lang: makeStringProp(\"CN\")\n};\nvar stdin_default = defineComponent({\n name: \"CalendarYearMonth\",\n props: calendarYearMonthProps,\n emits: [\"click\", \"slidechange\", \"touchstart\", \"touchmove\", \"touchend\"],\n setup(props, {\n emit\n }) {\n const language = ref({});\n const yearRange = ref(10);\n const disabledScrollDirec = ref(false);\n const yearMonthShow = ref([]);\n const lang = props.lang.toUpperCase();\n language.value = languageUtil[lang];\n const itemHeight = computed(() => props.calendarContentHeight / 4);\n const initYear = (year) => {\n const yearArr = [];\n const currYear = `${year || props.currentYearMonth.year}`;\n const yearStart = parseInt(currYear.substring(0, 3) + \"0\", 10);\n for (let i = 0; i <= yearRange.value; i++) {\n yearArr.push(yearStart + i);\n }\n yearArr.unshift(yearStart - 1);\n return yearArr;\n };\n const initYearRange = (year) => {\n const yearRangeArr = [];\n const currYear = `${year || props.currentYearMonth.year}`;\n const yearStart = parseInt(currYear.substring(0, 2) + \"00\", 10);\n for (let i = 0; i <= yearRange.value; i++) {\n yearRangeArr.push({\n s: yearStart + i * 10,\n e: yearStart + i * 10 + 9\n });\n }\n yearRangeArr.unshift({\n s: yearStart - 10,\n e: yearStart - 1\n });\n return yearRangeArr;\n };\n const getThreeYearArr = (year = props.currentYearMonth.year) => {\n const yearStr = year + \"\";\n const yearStart = yearStr.substring(0, 3);\n const yearStartLast = parseInt(parseInt(yearStart, 10) - 1 + \"0\", 10);\n const yearStartCurr = parseInt(yearStart + \"0\", 10);\n const yearStartNext = parseInt(parseInt(yearStart, 10) + 1 + \"0\", 10);\n return [initYear(yearStartLast), initYear(yearStartCurr), initYear(yearStartNext)];\n };\n const getThreeYearRangeArr = (year = props.currentYearMonth.year) => {\n const yearStr = year + \"\";\n const yearStart = yearStr.substring(0, 2);\n const yearStartLast = parseInt(parseInt(yearStart, 10) - 1 + \"00\", 10);\n const yearStartCurr = parseInt(yearStart + \"00\", 10);\n const yearStartNext = parseInt(parseInt(yearStart, 10) + 1 + \"00\", 10);\n return [initYearRange(yearStartLast), initYearRange(yearStartCurr), initYearRange(yearStartNext)];\n };\n const getNextOpitonData = () => {\n if (props.type === \"year\") {\n const year = yearMonthShow.value[2][1];\n yearMonthShow.value = getThreeYearArr(year);\n } else if (props.type === \"yearRange\") {\n const value = yearMonthShow.value[2][1];\n const year = value.s;\n yearMonthShow.value = getThreeYearRangeArr(year);\n }\n };\n const getLastOptionData = () => {\n if (props.type === \"year\") {\n const year = yearMonthShow.value[0][1];\n yearMonthShow.value = getThreeYearArr(year);\n } else if (props.type === \"yearRange\") {\n const value = yearMonthShow.value[0][1];\n const year = value.s;\n yearMonthShow.value = getThreeYearRangeArr(year);\n }\n };\n const slideChange = (direc) => {\n if (direc === \"left\") {\n getNextOpitonData();\n } else if (direc === \"right\") {\n getLastOptionData();\n }\n emit(\"slidechange\", direc);\n };\n const getRangeYear = (date) => {\n const yearStart = date.s;\n const yearEnd = date.e;\n const yearArr = [];\n for (let i = yearStart; i <= yearEnd; i++) {\n yearArr.push(i);\n }\n return yearArr;\n };\n const isDisabled = (date, index) => {\n let fDate = new Date();\n if (props.type === \"month\") {\n fDate = new Date(`${props.currentYearMonth.year}/${index + 1}/01`);\n } else if (props.type === \"year\") {\n fDate = new Date(`${date}/${props.currentYearMonth.month + 1}/01`);\n } else if (props.type === \"yearRange\") {\n const yearArr = getRangeYear(date);\n return yearArr.every((year) => {\n fDate = new Date(`${year}/${props.currentYearMonth.month + 1}/01`);\n return props.disabledDate(fDate) || !isDateInRange(fDate, props.minDate, props.maxDate);\n });\n }\n return props.disabledDate(fDate) || !isDateInRange(fDate, props.minDate, props.maxDate);\n };\n const dateClick = (date, index) => {\n if (!date)\n return;\n if (isDisabled(date, index))\n return;\n let checkedDate = __spreadValues({}, props.currentYearMonth);\n if (props.type === \"month\") {\n checkedDate = __spreadProps(__spreadValues({}, checkedDate), {\n month: index\n });\n }\n if (props.type === \"year\") {\n checkedDate = __spreadProps(__spreadValues({}, checkedDate), {\n year: date\n });\n }\n if (props.type === \"yearRange\") {\n const yearArr = getRangeYear(date);\n checkedDate = __spreadProps(__spreadValues({}, checkedDate), {\n year: yearArr.includes(checkedDate.year) ? checkedDate.year : date.s\n });\n }\n emit(\"click\", checkedDate, props.type);\n };\n const isChecked = (date, index) => {\n if (props.type === \"month\") {\n return index === props.currentYearMonth.month;\n }\n if (props.type === \"year\") {\n return date === props.currentYearMonth.year;\n }\n if (props.type === \"yearRange\") {\n return date.s <= props.currentYearMonth.year && date.e >= props.currentYearMonth.year;\n }\n };\n const isNotCurrent = (index) => (index === 0 || index === 11) && (props.type === \"year\" || props.type === \"yearRange\");\n const touchStart = (event) => {\n emit(\"touchstart\", event);\n };\n const touchMove = (event) => {\n emit(\"touchmove\", event);\n };\n const touchEnd = (event) => {\n emit(\"touchend\", event);\n };\n watch(() => props.type, (val) => {\n disabledScrollDirec.value = props.disabledScroll;\n if (val === \"month\" || val === \"date\") {\n disabledScrollDirec.value = true;\n yearMonthShow.value = [language.value.MONTH, language.value.MONTH, language.value.MONTH];\n } else if (val === \"year\") {\n yearMonthShow.value = getThreeYearArr();\n } else if (val === \"yearRange\") {\n yearMonthShow.value = getThreeYearRangeArr();\n }\n });\n const renderYearMonthItem = (arr) => arr.map((item, index) => _createVNode(\"div\", {\n \"class\": `year-body-item ${isDisabled(item, index) ? props.disabledClassName || \"is_disabled\" : \"\"}`,\n \"style\": {\n height: itemHeight.value + \"px\"\n },\n \"key\": index,\n \"onClick\": () => dateClick(item, index)\n }, [_createVNode(\"p\", {\n \"class\": `year-body-item-content ${isChecked(item, index) ? props.checkedDayClassName || \"is_checked\" : \"\"} ${isNotCurrent(index) ? props.notCurrentMonthDayClassName || \"is_not_current\" : \"\"}`,\n \"style\": {\n width: props.type === \"yearRange\" ? \"92px\" : \"60px\"\n }\n }, [props.type === \"yearRange\" ? `${item.s}-${item.e}` : props.type === \"month\" ? language.value.MONTH[index] : item])]));\n const renderYearMonth = () => _createVNode(\"div\", {\n \"class\": \"year-body\",\n \"style\": {\n height: itemHeight.value * 4 + \"px\",\n display: [\"year\", \"yearRange\", \"month\"].includes(props.type) ? \"block\" : \"none\"\n }\n }, [_createVNode(CalendarScrollContainer, {\n \"calendarData\": yearMonthShow.value,\n \"disabledScroll\": disabledScrollDirec.value,\n \"onTouchstart\": touchStart,\n \"onTouchmove\": touchMove,\n \"onTouchend\": touchEnd,\n \"onSlidechange\": slideChange\n }, (data) => renderYearMonthItem(data))]);\n return () => renderYearMonth();\n }\n});\nexport {\n calendarYearMonthProps,\n stdin_default as default\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport { mergeProps as _mergeProps, Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\nimport { computed, defineComponent, ref, watch } from \"vue\";\nimport { ARROW_DOWN_IMG, ARROW_UP_IMG } from \"./constant\";\nimport { calcMiddleDay, compareDay, fillNumber, formatDate, getNextDay, getPrevDay, getToday, makeArrayProp, makeDateProp, makeNumberProp, makeStringProp, pick, transDateToHourMinute, transDateToYearMonthDay, transHourMinuteToDate, transYearMontDayToDate, truthProp } from \"./utils\";\nimport languageUtil from \"./language\";\nimport { useExpose, useMountedOrActivated } from \"./hooks\";\nimport CalendarDate from \"./CalendarDate\";\nimport CalendarTime from \"./CalendarTime\";\nimport CalendarYearMonth from \"./CalendarYearMonth\";\nconst calendarProps = {\n themeColor: {\n type: Object,\n default: () => ({})\n },\n changeYearFast: Boolean,\n showArrow: Boolean,\n showWeekView: Boolean,\n visible: Boolean,\n disabledWeekView: Boolean,\n showAction: truthProp,\n pickerType: makeStringProp(\"datetime\"),\n selectType: makeStringProp(\"single\"),\n defaultYearMonth: {\n type: Object,\n default: {}\n },\n allowSameDay: Boolean,\n showTodayButton: truthProp,\n defaultDatetime: [Date, Array],\n minDate: makeDateProp(null),\n maxDate: makeDateProp(null),\n maxRange: makeNumberProp(0),\n format: makeStringProp(\"\"),\n model: makeStringProp(\"inline\"),\n markType: makeStringProp(\"dot\"),\n markDate: makeArrayProp(),\n disabledDate: {\n type: Function,\n default: () => false\n },\n disabledTime: {\n type: Function,\n default: () => false\n },\n lang: makeStringProp(\"CN\"),\n scrollChangeDate: truthProp,\n minuteStep: makeNumberProp(1),\n weekStart: makeStringProp(\"Sunday\"),\n disabledScroll: {\n type: [Boolean, String],\n default: () => false\n },\n showNotCurrentMonthDay: truthProp,\n firstDayOfMonthClassName: makeStringProp(\"\"),\n todayClassName: makeStringProp(\"\"),\n checkedDayClassName: makeStringProp(\"\"),\n notCurrentMonthDayClassName: makeStringProp(\"\"),\n disabledClassName: makeStringProp(\"\")\n};\nvar stdin_default = defineComponent({\n name: \"VueHashCalendar\",\n props: calendarProps,\n emits: [\"update:visible\", \"update:showWeekView\", \"calendarTypeChange\", \"click\", \"confirm\", \"change\", \"overRange\", \"slidechange\", \"touchstart\", \"touchmove\", \"touchend\"],\n setup(props, {\n emit,\n slots\n }) {\n const calendarRef = ref();\n const isShowCalendar = ref(true);\n const isShowWeek = ref(props.showWeekView);\n const calendarBodyHeight = ref(0);\n const firstTimes = ref(true);\n const currentYearMonth = ref({\n year: new Date().getFullYear(),\n month: new Date().getMonth()\n });\n const limitDateRange = (date, minDate = props.minDate, maxDate = props.maxDate) => {\n if (minDate && compareDay(transDateToYearMonthDay(date), transDateToYearMonthDay(minDate)) === -1) {\n return minDate;\n }\n if (maxDate && compareDay(transDateToYearMonthDay(date), transDateToYearMonthDay(maxDate)) === 1) {\n return maxDate;\n }\n return date;\n };\n const getInitialDateTime = (defaultDatetime = props.defaultDatetime) => {\n const {\n selectType,\n minDate,\n maxDate,\n allowSameDay\n } = props;\n if (defaultDatetime === null)\n return defaultDatetime;\n const nowDate = getToday();\n const nowDatetime = new Date();\n if (selectType === \"range\") {\n if (!Array.isArray(defaultDatetime)) {\n defaultDatetime = [];\n }\n const start = limitDateRange(defaultDatetime[0] || nowDate, minDate, allowSameDay ? maxDate : getPrevDay(transDateToYearMonthDay(maxDate)));\n const end = limitDateRange(defaultDatetime[1] || nowDate, allowSameDay ? minDate : getNextDay(transDateToYearMonthDay(minDate)));\n return [start, end];\n }\n if (selectType === \"multiple\") {\n if (Array.isArray(defaultDatetime)) {\n return defaultDatetime.map((date) => limitDateRange(date));\n }\n return [limitDateRange(nowDate)];\n }\n if (!defaultDatetime || Array.isArray(defaultDatetime)) {\n defaultDatetime = nowDatetime;\n }\n return limitDateRange(defaultDatetime);\n };\n const currDateTime = ref(getInitialDateTime());\n const checkedDate = ref([transDateToHourMinute(new Date())]);\n const yearMonthType = ref(\"date\");\n const isShowDatetimePicker = computed({\n get() {\n return props.model === \"inline\" ? true : props.visible;\n },\n set(val) {\n emit(\"update:visible\", val);\n }\n });\n const isShowArrowImg = computed(() => props.showArrow && props.model === \"inline\");\n const calendarContentHeight = computed(() => {\n if (props.pickerType === \"time\") {\n return 245;\n }\n return calendarBodyHeight.value;\n });\n const slideChange = (direction) => {\n emit(\"slidechange\", direction);\n };\n const toggleWeek = () => {\n isShowWeek.value = !isShowWeek.value;\n if (isShowWeek.value)\n slideChange(\"up\");\n else\n slideChange(\"down\");\n };\n const today = () => {\n var _a;\n if (props.disabledDate(new Date()))\n return;\n (_a = calendarRef.value) == null ? void 0 : _a.today();\n };\n const reset = (date = getInitialDateTime()) => {\n currDateTime.value = date;\n };\n const lastMonth = () => {\n var _a;\n (_a = calendarRef.value) == null ? void 0 : _a.getLastMonth();\n };\n const nextMonth = () => {\n var _a;\n (_a = calendarRef.value) == null ? void 0 : _a.getNextMonth();\n };\n const lastWeek = () => {\n var _a, _b;\n (_a = calendarRef.value) == null ? void 0 : _a.getLastMonth();\n (_b = calendarRef.value) == null ? void 0 : _b.changeWeekView({\n isNext: false\n });\n };\n const nextWeek = () => {\n var _a, _b;\n (_a = calendarRef.value) == null ? void 0 : _a.getNextMonth();\n (_b = calendarRef.value) == null ? void 0 : _b.changeWeekView({\n isNext: true\n });\n };\n const dateChange = (date) => {\n if (props.selectType === \"single\") {\n checkedDate.value = [__spreadValues(__spreadValues({}, checkedDate.value[0]), date[0])];\n } else {\n checkedDate.value = date;\n }\n };\n const dateClick = (date) => {\n if (!date.day)\n return;\n let fDate;\n if (props.selectType === \"single\") {\n const checked = checkedDate.value[0];\n date.minutes = checked.minutes;\n date.hours = checked.hours;\n fDate = transHourMinuteToDate(date);\n } else {\n fDate = transYearMontDayToDate(date);\n }\n currDateTime.value = new Date(fDate);\n if (props.format) {\n fDate = formatDate(fDate, props.format, props.lang);\n }\n emit(\"click\", fDate);\n };\n const yearMonthClick = (date, type) => {\n if (type) {\n switch (type) {\n case \"yearRange\":\n yearMonthType.value = \"year\";\n break;\n case \"year\":\n yearMonthType.value = \"month\";\n break;\n case \"month\":\n yearMonthType.value = \"date\";\n break;\n }\n emit(\"calendarTypeChange\", yearMonthType.value);\n }\n currentYearMonth.value = {\n year: date.year,\n month: date.month\n };\n dateClick(date);\n if (props.selectType === \"single\") {\n const {\n day,\n hours,\n minutes\n } = checkedDate.value[0];\n let emitDate = transHourMinuteToDate(__spreadProps(__spreadValues({}, currentYearMonth.value), {\n day,\n hours,\n minutes\n }));\n if (props.format) {\n emitDate = formatDate(emitDate, props.format, props.lang);\n }\n emit(\"change\", emitDate);\n }\n };\n const timeChange = (date) => {\n const {\n minutes,\n hours\n } = date;\n const checked = checkedDate.value[0];\n checkedDate.value = [__spreadProps(__spreadValues({}, checked), {\n minutes,\n hours\n })];\n };\n const close = () => {\n isShowDatetimePicker.value = false;\n };\n const makeEmitDate = () => {\n const dateArr = checkedDate.value.map((item) => {\n let date = transYearMontDayToDate(item);\n if (props.selectType === \"single\") {\n date = transHourMinuteToDate(item);\n }\n if (props.format) {\n return formatDate(date, props.format, props.lang);\n }\n return date;\n });\n if (props.selectType === \"single\") {\n return dateArr[0];\n }\n return dateArr;\n };\n const confirm = () => {\n emit(\"confirm\", makeEmitDate());\n if (props.model === \"dialog\") {\n close();\n }\n };\n const formatDatetime = (time, format) => formatDate(time, format, props.lang);\n const showYearMonthPicker = () => {\n if (!props.changeYearFast)\n return;\n if (yearMonthType.value === \"date\") {\n yearMonthType.value = \"month\";\n } else if (yearMonthType.value === \"month\") {\n yearMonthType.value = \"year\";\n } else if (yearMonthType.value === \"year\") {\n yearMonthType.value = \"yearRange\";\n } else {\n yearMonthType.value = \"date\";\n }\n emit(\"calendarTypeChange\", yearMonthType.value);\n };\n const showCalendar = () => {\n if (isShowCalendar.value) {\n showYearMonthPicker();\n } else {\n emit(\"calendarTypeChange\", \"date\");\n }\n isShowCalendar.value = true;\n };\n const showTime = () => {\n isShowCalendar.value = false;\n emit(\"calendarTypeChange\", \"time\");\n yearMonthType.value = \"date\";\n };\n const heightChange = (height) => {\n if (!firstTimes.value && props.model === \"dialog\")\n return;\n calendarBodyHeight.value = height;\n firstTimes.value = false;\n };\n const getThemeColor = () => {\n const cssVar = {};\n if (props.themeColor) {\n const themeColorKeys = Object.keys(props.themeColor || {});\n if (themeColorKeys.length) {\n themeColorKeys.forEach((k) => {\n cssVar[`--hash-calendar-${k}`] = props.themeColor[k];\n });\n }\n }\n return cssVar;\n };\n const touchStart = (event) => {\n emit(\"touchstart\", event);\n };\n const touchMove = (event) => {\n emit(\"touchmove\", event);\n };\n const touchEnd = (event) => {\n emit(\"touchend\", event);\n };\n watch(checkedDate, () => {\n const emitDate = makeEmitDate();\n if (props.selectType === \"range\" && Array.isArray(emitDate) && emitDate.length === 1) {\n return;\n }\n emit(\"change\", emitDate);\n }, {\n deep: true\n });\n watch(() => props.showWeekView, (val) => {\n isShowWeek.value = val;\n });\n watch(() => [props.selectType, props.minDate, props.maxDate], () => {\n if (props.selectType === \"single\") {\n reset(getInitialDateTime());\n } else {\n reset(getInitialDateTime(currDateTime.value));\n }\n });\n useExpose({\n today,\n reset,\n lastMonth,\n nextMonth,\n lastWeek,\n nextWeek\n });\n const init = () => {\n const date = currDateTime.value;\n if (!date) {\n checkedDate.value = [];\n } else if (date instanceof Date) {\n currentYearMonth.value = {\n year: date.getFullYear(),\n month: date.getMonth()\n };\n checkedDate.value = [transDateToHourMinute(date)];\n } else if (Array.isArray(date)) {\n if (props.selectType === \"range\") {\n const dateArr = calcMiddleDay([__spreadProps(__spreadValues({}, transDateToHourMinute(date[0])), {\n type: \"start\"\n }), __spreadProps(__spreadValues({}, transDateToHourMinute(date[1])), {\n type: \"end\"\n })]);\n checkedDate.value = dateArr.map((item) => transDateToHourMinute(transYearMontDayToDate(item)));\n } else {\n checkedDate.value = date.map((item) => transDateToHourMinute(item));\n }\n }\n if (props.pickerType === \"time\") {\n showTime();\n } else {\n isShowCalendar.value = true;\n }\n };\n useMountedOrActivated(init);\n const renderTodayButton = () => {\n let todayEle = languageUtil[props.lang].TODAY;\n if (slots.today) {\n todayEle = slots.today();\n }\n if (props.showTodayButton) {\n return _createVNode(\"div\", {\n \"class\": `calendar_confirm ${props.disabledDate(new Date()) ? \"today_disable\" : \"\"}`,\n \"onClick\": today\n }, [todayEle]);\n }\n };\n const renderConfirmButton = () => {\n let confirmEle = languageUtil[props.lang].CONFIRM;\n if (slots.confirm) {\n confirmEle = slots.confirm();\n }\n if (props.model === \"dialog\") {\n return _createVNode(\"div\", {\n \"class\": \"calendar_confirm\",\n \"onClick\": confirm\n }, [confirmEle]);\n }\n };\n const renderAction = () => {\n let timeText = \"\";\n const {\n year,\n month\n } = currentYearMonth.value;\n let dateText = formatDatetime(`${year}/${month + 1}`, languageUtil[props.lang].DEFAULT_YEAR_MONTH_FORMAT);\n if (props.selectType === \"single\") {\n const {\n day,\n hours,\n minutes\n } = checkedDate.value[0];\n timeText = formatDatetime(`${year}/${month + 1}/${day} ${fillNumber(hours)}:${fillNumber(minutes)}`, languageUtil[props.lang].DEFAULT_TIME_FORMAT);\n dateText = formatDatetime(`${year}/${month + 1}/${day}`, languageUtil[props.lang].DEFAULT_DATE_FORMAT);\n }\n if (props.showAction) {\n return _createVNode(\"div\", {\n \"class\": \"calendar_title\",\n \"onClick\": (e) => {\n if (e.cancelable)\n e.preventDefault();\n e.stopPropagation();\n },\n \"style\": {\n bottom: props.model === \"dialog\" ? `${calendarContentHeight.value}px` : \"unset\"\n }\n }, [slots.action ? slots.action() : _createVNode(_Fragment, null, [_createVNode(\"div\", {\n \"class\": \"calendar_title_date\"\n }, [props.pickerType !== \"time\" ? _createVNode(\"span\", {\n \"class\": `calendar_title_date_year ${isShowCalendar.value ? \"calendar_title_date_active\" : \"\"}`,\n \"onClick\": showCalendar\n }, [dateText]) : null, props.pickerType !== \"date\" && props.selectType === \"single\" ? _createVNode(\"span\", {\n \"class\": `calendar_title_date_time ${!isShowCalendar.value ? \"calendar_title_date_active\" : \"\"}`,\n \"onClick\": showTime\n }, [timeText]) : null]), renderTodayButton(), renderConfirmButton()])]);\n }\n return null;\n };\n const updateShowWeekView = (val) => {\n if (isShowWeek.value === val)\n return;\n if (val) {\n emit(\"calendarTypeChange\", \"week\");\n } else {\n emit(\"calendarTypeChange\", \"date\");\n }\n isShowWeek.value = val;\n };\n const yearMonthChange = (yearMonth) => {\n currentYearMonth.value = yearMonth;\n };\n const renderCalendar = () => _createVNode(CalendarDate, _mergeProps({\n \"ref\": calendarRef,\n \"show\": isShowCalendar.value,\n \"onHeight\": heightChange,\n \"defaultDate\": currDateTime.value,\n \"onTouchstart\": touchStart,\n \"onTouchmove\": touchMove,\n \"onTouchend\": touchEnd,\n \"onSlidechange\": slideChange,\n \"onYearMonthChange\": yearMonthChange,\n \"onChange\": dateChange,\n \"onOverRange\": () => emit(\"overRange\"),\n \"onClick\": dateClick,\n \"showWeekView\": isShowWeek.value,\n \"onUpdate:showWeekView\": updateShowWeekView\n }, pick(props, [\"minDate\", \"maxDate\", \"maxRange\", \"disabledWeekView\", \"markType\", \"selectType\", \"allowSameDay\", \"defaultYearMonth\", \"markDate\", \"disabledDate\", \"lang\", \"weekStart\", \"disabledScroll\", \"scrollChangeDate\", \"showNotCurrentMonthDay\", \"firstDayOfMonthClassName\", \"todayClassName\", \"checkedDayClassName\", \"notCurrentMonthDayClassName\", \"disabledClassName\"])), pick(slots, [\"week\", \"day\"]));\n const renderTimePicker = () => {\n if (props.pickerType === \"datetime\" || props.pickerType === \"time\") {\n return _createVNode(CalendarTime, _mergeProps({\n \"show\": !isShowCalendar.value,\n \"defaultTime\": currDateTime.value,\n \"calendarDate\": checkedDate.value[0],\n \"onChange\": timeChange\n }, pick(props, [\"minuteStep\", \"disabledTime\"])), null);\n }\n };\n const renderYearMonthPicker = () => _createVNode(CalendarYearMonth, _mergeProps({\n \"calendarContentHeight\": calendarContentHeight.value,\n \"currentYearMonth\": currentYearMonth.value,\n \"type\": yearMonthType.value,\n \"onTouchstart\": touchStart,\n \"onTouchmove\": touchMove,\n \"onTouchend\": touchEnd,\n \"onSlidechange\": slideChange,\n \"onClick\": yearMonthClick\n }, pick(props, [\"minDate\", \"maxDate\", \"disabledDate\", \"lang\", \"disabledScroll\", \"checkedDayClassName\", \"notCurrentMonthDayClassName\", \"disabledClassName\"])), null);\n const renderCtrlImg = () => {\n let confirmEle = _createVNode(\"img\", {\n \"src\": isShowWeek.value ? ARROW_DOWN_IMG : ARROW_UP_IMG\n }, null);\n if (slots.arrow) {\n confirmEle = slots.arrow({\n isShowWeek: isShowWeek.value\n });\n }\n if (isShowArrowImg.value) {\n return _createVNode(\"div\", {\n \"class\": \"ctrl-img\",\n \"onClick\": toggleWeek,\n \"style\": {\n \"margin-top\": props.model === \"dialog\" ? `${calendarContentHeight.value}px` : \"unset\"\n }\n }, [confirmEle]);\n }\n };\n const renderHashCalendar = () => {\n if (isShowDatetimePicker.value || props.model === \"inline\") {\n return _createVNode(\"div\", {\n \"class\": `hash-calendar ${props.model === \"inline\" ? \"calendar_inline\" : \"\"}`,\n \"style\": __spreadValues({}, getThemeColor()),\n \"onClick\": close\n }, [renderAction(), _createVNode(\"div\", {\n \"class\": \"calendar_content\",\n \"style\": {\n height: `${calendarContentHeight.value}px`\n },\n \"onClick\": (e) => {\n if (e.cancelable)\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n }, [props.pickerType !== \"time\" ? renderCalendar() : \"\", props.selectType === \"single\" && renderTimePicker(), props.changeYearFast ? renderYearMonthPicker() : \"\"]), renderCtrlImg()]);\n }\n };\n return () => renderHashCalendar();\n }\n});\nexport {\n calendarProps,\n stdin_default as default\n};\n","import _Calendar from \"./Calendar\";\nimport { withInstall } from \"./utils\";\nconst Calendar = withInstall(_Calendar);\nvar stdin_default = Calendar;\nimport { calendarProps } from \"./Calendar\";\nexport {\n Calendar,\n calendarProps,\n stdin_default as default\n};\n","import { useControlController, useNamespace } from '@ibiz-template/vue3-util';\nimport { computed, defineComponent, PropType, ref, VNode, watch } from 'vue';\nimport { ILayoutPanel, ISysCalendar } from '@ibiz/model-core';\nimport './calendar.scss';\nimport {\n CalendarController,\n ICalendarItemData,\n IControlProvider,\n} from '@ibiz-template/runtime';\nimport { isNil } from 'ramda';\nimport dayjs from 'dayjs';\nimport VueHashCalendar from 'vue3-hash-calendar';\nimport 'vue3-hash-calendar/es/index.css';\n\nexport const CalendarControl = defineComponent({\n name: 'IBizCalendarControl',\n components: {\n VueHashCalendar,\n },\n props: {\n modelData: { type: Object as PropType<ISysCalendar>, required: true },\n context: { type: Object as PropType<IContext>, required: true },\n params: { type: Object as PropType<IParams>, default: () => ({}) },\n provider: { type: Object as PropType<IControlProvider> },\n mdctrlActiveMode: { type: Number, default: undefined },\n loadDefault: { type: Boolean, default: true },\n },\n setup() {\n const c = useControlController(\n (...args) => new CalendarController(...args),\n );\n const ns = useNamespace(`control-${c.model.controlType!.toLowerCase()}`);\n const calendarRef = ref<IData>();\n\n const selectDate = (tag: string): void => {\n if (!calendarRef.value) return;\n calendarRef.value.selectDate(tag);\n };\n\n watch(\n () => c.state.selectedDate,\n (oldVal: Date, newVal: Date) => {\n const oldDateString = dayjs(oldVal).format('YYYY-MM');\n const newDateString = dayjs(newVal).format('YYYY-MM');\n // 月份相同不加载数据\n if (oldDateString === newDateString) {\n return;\n }\n c.load();\n },\n );\n\n /**\n * 计算数据项样式\n *\n * @author zk\n * @date 2023-08-08 11:08:29\n * @param {ICalendarItemData} data\n * @return {*} {IData}\n */\n const calcItemStyle = (data: ICalendarItemData): IData => {\n return {\n color: data.color,\n backgroundColor: data.bkColor,\n };\n };\n\n const markDate = computed((): IData => {\n // 过滤同一天数据 并且 是不同日历项类型\n const filterSameDayAndUniqueType = (\n itemData: ICalendarItemData,\n index: number,\n arr: ICalendarItemData[],\n ) => {\n const dateString = dayjs(new Date(itemData.beginTime)).format(\n 'YYYY-MM-DD',\n );\n // 判断属性 beginTime 是否在同一天 itemType 是否重复\n const isSameDayAndUniqueType =\n arr.findIndex(\n item =>\n dateString ===\n dayjs(new Date(item.beginTime)).format('YYYY-MM-DD') &&\n item.itemType === itemData.itemType,\n ) === index;\n return isSameDayAndUniqueType;\n };\n\n const date = c.state.items\n .filter(filterSameDayAndUniqueType)\n .map(item => {\n const _date = new Date(item.beginTime);\n return {\n date: item.beginTime,\n type: item.itemType,\n day: _date.getDate(),\n month: _date.getMonth(),\n year: _date.getFullYear(),\n data: item,\n };\n });\n return date;\n });\n\n return {\n c,\n ns,\n calendarRef,\n selectDate,\n markDate,\n calcItemStyle,\n };\n },\n render() {\n const renderMarker = (date: IData): VNode[] => {\n const arr = this.markDate.filter(\n (item: IData) =>\n item.day === date.day &&\n item.month === date.month &&\n item.year === date.year,\n );\n return arr.map((item: IData) => {\n const style = this.calcItemStyle(item.data);\n return (\n <div\n class={[this.ns.em('mark', 'item'), this.ns.em('mark', item.type)]}\n style={style}\n ></div>\n );\n });\n };\n\n // 绘制项布局面板\n const renderPanelItem = (\n item: ICalendarItemData,\n modelData: ILayoutPanel,\n ): VNode => {\n const { context, params } = this.c;\n // 是否选中数据\n const findIndex = this.c.state.selectedData.findIndex(data => {\n return data.deData.srfkey === item.deData.srfkey;\n });\n const itemClass = [\n this.ns.b('item'),\n this.ns.is('active', findIndex !== -1),\n ];\n return (\n <iBizControlShell\n class={itemClass}\n data={item.deData}\n modelData={modelData}\n context={context}\n params={params}\n onClick={(e: MouseEvent): Promise<void> => {\n e.stopPropagation();\n return this.c.onRowClick(item);\n }}\n onDblclick={(e: MouseEvent): Promise<void> => {\n e.stopPropagation();\n return this.c.onDbRowClick(item);\n }}\n ></iBizControlShell>\n );\n };\n\n // 绘制默认列表项\n const renderDefaultItem = (item: ICalendarItemData): VNode => {\n // 是否选中数据\n const findIndex = this.c.state.selectedData.findIndex(data => {\n return data.deData.srfkey === item.deData.srfkey;\n });\n const itemClass = [\n this.ns.b('item'),\n this.ns.is('active', findIndex !== -1),\n ];\n return (\n <div\n class={itemClass}\n key={item.deData.srfkey}\n onClick={(): Promise<void> => this.c.onRowClick(item)}\n onDblclick={(): Promise<void> => this.c.onDbRowClick(item)}\n >\n {`${isNil(item.text) ? '---' : item.text}`}\n </div>\n );\n };\n\n /**\n * 绘制日历列表\n *\n * @author zk\n * @date 2023-08-08 02:08:34\n * @param {ICalendarItemData[]} items\n * @param {ISysCalendarItem} model\n * @return {*} {VNode[]}\n */\n const renderCalendarList = (items: ICalendarItemData[]): VNode[] => {\n return items.map(item => {\n const model = this.c.model.sysCalendarItems?.find(calendarItems => {\n return item.itemType === calendarItems.itemType;\n });\n const panel = model!.layoutPanel;\n return panel ? renderPanelItem(item, panel) : renderDefaultItem(item);\n });\n };\n\n const renderCalendarListByItemType = (itemType: string) => {\n const list = this.c.state.items.filter(\n item => item.itemType === itemType,\n );\n return renderCalendarList(list);\n };\n\n return (\n <iBizControlBase controller={this.c}>\n <div class={this.ns.b('content')}>\n <VueHashCalendar\n show-week-view={true}\n onChange={date => {\n this.c.state.selectedDate = date;\n }}\n ref='calendarRef'\n >\n {{\n day: ({ date }: { extendAttr: IData; date: IData }): VNode => {\n return (\n <div class={this.ns.e('day')}>\n <span>{date?.day}</span>\n <div class={this.ns.e('mark')}>{renderMarker(date)}</div>\n </div>\n );\n },\n }}\n </VueHashCalendar>\n </div>\n <div class={this.ns.b('footer')}>\n <van-tabs>\n {this.c.model.sysCalendarItems?.map(calendarItem => {\n let label = calendarItem.name!;\n if (calendarItem.nameLanguageRes) {\n label = ibiz.i18n.t(\n calendarItem.nameLanguageRes.lanResTag!,\n calendarItem.name,\n );\n }\n return (\n <van-tab title={label}>\n <van-list>\n {renderCalendarListByItemType(calendarItem.itemType!)}\n </van-list>\n </van-tab>\n );\n })}\n </van-tabs>\n </div>\n </iBizControlBase>\n );\n },\n});\n","import { IControlProvider } from '@ibiz-template/runtime';\n/**\n * 树适配器\n *\n * @author lxm\n * @date 2022-10-25 18:10:57\n * @export\n * @class CalendarProvider\n * @implements {IControlProvider}\n */\nexport class CalendarProvider implements IControlProvider {\n component: string = 'IBizCalendarControl';\n}\n","import { registerControlProvider, ControlType } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { CalendarControl } from './calendar';\nimport { CalendarProvider } from './calendar.provider';\n\nexport * from './calendar.provider';\n\nexport const IBizCalendarControl = withInstall(\n CalendarControl,\n function (v: App) {\n v.component(CalendarControl.name, CalendarControl);\n registerControlProvider(ControlType.CALENDAR, () => new CalendarProvider());\n },\n);\n\nexport default IBizCalendarControl;\n","import { useNamespace } from '@ibiz-template/vue3-util';\nimport { defineComponent, PropType } from 'vue';\nimport './not-supported-editor.scss';\nimport { IEditor } from '@ibiz/model-core';\n\nexport const NotSupportedEditor = defineComponent({\n name: 'NotSupportedEditor',\n props: {\n modelData: {\n type: Object as PropType<IEditor>,\n required: true,\n },\n },\n setup() {\n const ns = useNamespace('not-supported-editor');\n return { ns };\n },\n render() {\n return (\n <div class={this.ns.b()}>\n 未支持的编辑器类型 - {this.modelData.editorType}\n </div>\n );\n },\n});\n","import { ref, defineComponent, Ref, watch, computed } from 'vue';\nimport {\n getSpanProps,\n useFocusAndBlur,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport dayjs from 'dayjs';\nimport './span.scss';\nimport { CodeListItem } from '@ibiz-template/runtime';\nimport { SpanEditorController } from '../span-editor.controller';\n\nexport const IBizSpan = defineComponent({\n name: 'IBizSpan',\n props: getSpanProps<SpanEditorController>(),\n setup(props, { emit }) {\n const ns = useNamespace('span');\n\n const c = props.controller;\n\n const text: Ref<string> = ref('');\n\n const codeList = c.codeList;\n // 值分隔符\n let valueSeparator = ',';\n if (codeList && codeList.valueSeparator) {\n valueSeparator = codeList.valueSeparator;\n }\n\n watch(\n () => props.value,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (!newVal) {\n text.value = '';\n return;\n }\n if (c.parent.valueFormat) {\n text.value = dayjs(newVal as string).format(c.parent.valueFormat);\n } else {\n text.value = newVal ? `${newVal}` : '';\n }\n if (c.parent.unitName) {\n text.value += c.parent.unitName;\n }\n }\n },\n {\n immediate: true,\n },\n );\n\n // 代码表数据\n const items = ref<readonly CodeListItem[]>([]);\n if (codeList) {\n watch(\n () => props.data,\n newVal => {\n c.loadCodeList(newVal).then(_codeList => {\n items.value = _codeList;\n });\n },\n {\n immediate: true,\n deep: true,\n },\n );\n }\n\n // 代码表转换后文本\n const codeListText = computed(() => {\n if (!codeList || !props.value || items.value.length === 0) {\n return undefined;\n }\n if (codeList.codeItemValueNumber) {\n return items.value.find(item => item.value === props.value)?.text;\n }\n const values = (props.value as string).split(valueSeparator);\n const selects = items.value.filter(item =>\n values.includes(item.value as string & number),\n );\n return selects.map(item => item.text).join(valueSeparator);\n });\n\n // 聚焦失焦事件\n const { componentRef: editorRef } = useFocusAndBlur(\n () => emit('focus'),\n () => emit('blur'),\n );\n\n return {\n ns,\n text,\n codeListText,\n editorRef,\n };\n },\n render() {\n return (\n <span\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n ref='editorRef'\n >\n {this.codeListText || this.text}\n </span>\n );\n },\n});\n","import { defineComponent, ref, Ref, watch } from 'vue';\nimport {\n getSpanProps,\n getEditorEmits,\n useNamespace,\n useFocusAndBlur,\n} from '@ibiz-template/vue3-util';\nimport './span-link.scss';\nimport { SpanEditorController } from '../span-editor.controller';\n\nexport const IBizSpanLink = defineComponent({\n name: 'IBizSpanLink',\n props: getSpanProps<SpanEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('span-link');\n\n const c = props.controller!;\n\n const curValue: Ref<string> = ref('');\n\n watch(\n () => props.value,\n (newVal, oldVal) => {\n if (newVal && newVal !== oldVal) {\n curValue.value = `${newVal}`;\n }\n },\n { immediate: true },\n );\n\n // 打开数据链接视图\n const openLinkView = async () => {\n await c.openLinkView(props.data);\n };\n\n // 聚焦失焦事件\n const { componentRef: editorRef } = useFocusAndBlur(\n () => emit('focus'),\n () => emit('blur'),\n );\n\n return { ns, openLinkView, curValue, editorRef };\n },\n render() {\n return (\n <div\n class={[this.ns.b(), this.readonly ? this.ns.m('readonly') : '']}\n ref='editorRef'\n >\n <a onClick={this.openLinkView}>{this.curValue}</a>\n </div>\n );\n },\n});\n","import { ISpan, IAppCodeList } from '@ibiz/model-core';\nimport {\n CodeListEditorController,\n OpenAppViewCommand,\n} from '@ibiz-template/runtime';\nimport { RuntimeModelError } from '@ibiz-template/core';\n\n/**\n * 标签编辑器控制器\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 10:57:58\n */\nexport class SpanEditorController extends CodeListEditorController<ISpan> {\n /**\n *值项\n */\n public valueItem = '';\n\n /**\n * 代码表模型\n * @return {*}\n * @author: zhujiamin\n * @Date: 2023-05-24 10:55:50\n */\n public codeList: IAppCodeList | undefined = undefined;\n\n protected async onInit(): Promise<void> {\n super.onInit();\n // span-link临时用editorItems\n if (this.model?.editorItems?.[0]) {\n this.valueItem = this.model.editorItems[0].id!;\n }\n // 初始化代码表\n if (this.model.appCodeListId) {\n const app = await ibiz.hub.getApp(this.context.srfappid);\n this.codeList = app.codeList.getCodeList(this.model.appCodeListId);\n }\n }\n\n /**\n * 打开数据链接视图\n */\n public async openLinkView(data: IData): Promise<IData[] | undefined> {\n const { context, params } = this.handlePublicParams(\n data,\n this.context,\n this.params,\n );\n if (data[this.valueItem]) {\n context.srfkey = data[this.valueItem];\n }\n const { linkAppViewId } = this.model;\n if (!linkAppViewId) {\n throw new RuntimeModelError(this.model, '请配置数据链接视图');\n }\n return ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n linkAppViewId,\n context,\n params,\n );\n }\n}\n","import { ISpan } from '@ibiz/model-core';\nimport {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { SpanEditorController } from './span-editor.controller';\n\n/**\n * 标签编辑器适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class SpanEditorProvider\n * @implements {EditorProvider}\n */\nexport class SpanEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizSpan';\n\n gridEditor: string = 'IBizSpan';\n\n constructor(editorType?: string) {\n if (editorType === 'SPAN_LINK') {\n this.formEditor = 'IBizSpanLink';\n this.gridEditor = 'IBizSpanLink';\n }\n }\n\n async createController(\n editorModel: ISpan,\n parentController: IEditorContainerController,\n ): Promise<SpanEditorController> {\n const c = new SpanEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","import { computed, defineComponent, ref, watch } from 'vue';\nimport { debounce } from 'lodash-es';\nimport {\n getEditorEmits,\n getInputProps,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './input.scss';\nimport { TextBoxEditorController } from '../text-box-editor.controller';\n\nexport const IBizInput = defineComponent({\n name: 'IBizInput',\n props: getInputProps<TextBoxEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('input');\n const c = props.controller;\n const editorModel = c.model;\n const inputRef = ref();\n\n // 文本域默认行数,仅在 textarea 类型下有效\n const rows = ref(2);\n if (editorModel.editorType === 'TEXTAREA_10') {\n rows.value = 10;\n }\n\n // 类型\n const type = computed(() => {\n switch (editorModel.editorType) {\n case 'MOBTEXT':\n return 'text';\n case 'MOBPASSWORD':\n return 'password';\n case 'MOBTEXTAREA':\n return 'textarea';\n default:\n return 'text';\n }\n });\n\n const currentVal = ref<string | number>('');\n\n watch(\n () => props.value,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (!newVal) {\n currentVal.value = '';\n } else {\n currentVal.value = newVal;\n }\n }\n },\n { immediate: true },\n );\n\n let isDebounce = false;\n let awaitSearch: () => void;\n let blurCacheValue: string | undefined;\n // 防抖值变更回调\n const debounceChange = debounce(\n (val: string | number) => {\n // 拦截掉blur触发后change\n if (blurCacheValue !== val) {\n emit('change', val);\n }\n blurCacheValue = undefined;\n isDebounce = false;\n if (awaitSearch) {\n awaitSearch();\n }\n },\n 300,\n { leading: true },\n );\n // 值变更\n const handleChange = (evt: IData) => {\n const val = evt.target.value;\n isDebounce = true;\n debounceChange(val);\n };\n\n const handleKeyUp = (e: KeyboardEvent) => {\n if (e && e.code === 'Enter') {\n if (isDebounce) {\n awaitSearch = () => {\n inputRef.value.$el.dispatchEvent(e);\n };\n }\n }\n };\n\n /**\n * blur时马上抛值变更\n * @author lxm\n * @date 2023-03-06 06:36:23\n */\n const onBlur = (event: IData) => {\n blurCacheValue = event.target.value;\n emit('change', blurCacheValue);\n emit('blur');\n };\n\n // 自动聚焦\n if (props.autoFocus) {\n watch(inputRef, newVal => {\n if (newVal) {\n const inputTag = type.value === 'textarea' ? 'textarea' : 'input';\n const input = newVal.$el.getElementsByTagName(inputTag)[0];\n input.focus();\n }\n });\n }\n const onFocus = () => {\n emit('focus');\n };\n\n return {\n c,\n ns,\n rows,\n type,\n currentVal,\n handleChange,\n handleKeyUp,\n onBlur,\n onFocus,\n inputRef,\n };\n },\n render() {\n const { unitName } = this.c.parent;\n\n let content = null;\n if (this.readonly) {\n // 只读显示\n content = `${this.currentVal}`;\n // 当有值且单位存在时才显示单位\n if (content && unitName) {\n content += unitName;\n }\n } else {\n // 编辑态显示\n const slots: IData = {};\n if (unitName) {\n slots.extra = () => {\n return <i class={this.ns.e('unit')}>{unitName}</i>;\n };\n }\n\n content = (\n <van-field\n ref='inputRef'\n modelValue={this.currentVal}\n placeholder={this.controller.placeHolder}\n type={this.type}\n rows={this.rows}\n onInput={this.handleChange}\n onKeyup={this.handleKeyUp}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n class={this.ns.b('input')}\n disabled={this.disabled}\n autosize={this.type === 'textarea'}\n autocomplete='new-password'\n >\n {slots}\n </van-field>\n );\n }\n\n return (\n <div\n class={[\n this.ns.b(),\n this.ns.is('textarea', Object.is(this.type, 'textarea')),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n >\n {content}\n </div>\n );\n },\n});\n","import { defineComponent, ref, watch } from 'vue';\nimport {\n getEditorEmits,\n getInputNumberProps,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './ibiz-input-number.scss';\nimport { floor } from 'lodash-es';\nimport { TextBoxEditorController } from '../text-box-editor.controller';\n\nexport const IBizInputNumber = defineComponent({\n name: 'IBizInputNumber',\n props: getInputNumberProps<TextBoxEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('input-number');\n\n const c = props.controller;\n\n const currentVal = ref<number | undefined>(undefined);\n\n const show = ref(false);\n\n const oldEmitVal = ref<number | undefined>(undefined);\n\n watch(\n () => props.value,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n const number = Number(newVal);\n currentVal.value = Number.isNaN(number) ? undefined : number;\n }\n },\n { immediate: true },\n );\n\n const handleChange = (evt: IData) => {\n const value = Number(evt.target.value);\n\n const emitValue = evt.target.value\n ? floor(value, c.precision)\n : undefined;\n if (emitValue === oldEmitVal.value) {\n return;\n }\n emit('change', emitValue);\n oldEmitVal.value = Number(emitValue);\n };\n\n const inputRef = ref();\n\n if (props.autoFocus) {\n watch(inputRef, newVal => {\n if (newVal) {\n const input = newVal.$el.getElementsByTagName('input')[0];\n input.focus();\n }\n });\n }\n\n // 聚焦\n const onFocus = () => {\n emit('focus');\n };\n\n // 失焦\n const onBlur = () => {\n emit('blur');\n };\n\n return {\n ns,\n c,\n currentVal,\n handleChange,\n inputRef,\n onFocus,\n onBlur,\n show,\n };\n },\n render() {\n const { unitName } = this.c.parent;\n\n let content = null;\n if (this.readonly) {\n // 只读显示\n content = `${this.currentVal}`;\n // 当有值且单位存在时才显示单位\n if (content && unitName) {\n content += unitName;\n }\n } else {\n // 编辑态显示\n content = [\n <van-field\n ref='inputRef'\n modelValue={this.currentVal}\n placeholder={this.c.placeHolder}\n precision={this.c.model.precision}\n disabled={this.disabled}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onInput={this.handleChange}\n ></van-field>,\n unitName && <i class={this.ns.e('unit')}>{unitName}</i>,\n ];\n }\n\n return (\n <div\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n >\n {content}\n </div>\n );\n },\n});\n","import { EditorController } from '@ibiz-template/runtime';\nimport { ITextBox } from '@ibiz/model-core';\nimport { toNumber } from 'lodash-es';\n\n/**\n * 输入框编辑器控制器\n *\n * @author lxm\n * @date 2022-08-24 20:08:25\n * @export\n * @class TextBoxEditorController\n * @extends {EditorController}\n */\nexport class TextBoxEditorController extends EditorController<ITextBox> {\n /**\n * 精度\n * @author lxm\n * @date 2023-09-26 10:22:47\n * @type {number}\n */\n precision?: number;\n\n protected async onInit(): Promise<void> {\n await super.onInit();\n this.precision = this.editorParams.precision\n ? toNumber(this.editorParams.precision)\n : this.model.precision;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { ITextBox } from '@ibiz/model-core';\nimport { TextBoxEditorController } from './text-box-editor.controller';\n\n/**\n * 输入框编辑器适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class TextBoxEditorProvider\n * @implements {IEditorProvider}\n */\nexport class TextBoxEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizInput';\n\n gridEditor: string = 'IBizInput';\n\n constructor(editorType?: string) {\n if (editorType === 'NUMBER') {\n this.formEditor = 'IBizInputNumber';\n this.gridEditor = 'IBizInputNumber';\n }\n }\n\n async createController(\n editorModel: ITextBox,\n parentController: IEditorContainerController,\n ): Promise<TextBoxEditorController> {\n const c = new TextBoxEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","import { useNamespace } from '@ibiz-template/vue3-util';\nimport { defineComponent } from 'vue';\n\nimport './right-icon.scss';\n\nexport const IBizCommonRightIcon = defineComponent({\n name: 'IBizCommonRightIcon',\n setup() {\n const ns = useNamespace('editor-right-icon');\n return { ns };\n },\n render() {\n return (\n <ion-icon class={this.ns.b()} name='chevron-forward-outline'></ion-icon>\n );\n },\n});\n","import { ref, Ref, defineComponent, computed, watch } from 'vue';\nimport {\n getDropdownProps,\n getEditorEmits,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './ibiz-dropdown.scss';\nimport { DropDownListEditorController } from '../dropdown-list-editor.controller';\nimport { IBizCommonRightIcon } from '../../common/right-icon/right-icon';\n\nexport const IBizDropdown = defineComponent({\n name: 'IBizDropdown',\n props: getDropdownProps<DropDownListEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('dropdown');\n const c = props.controller;\n\n const items: Ref<readonly IData[]> = ref([]);\n\n const showPicker = ref(false);\n\n // 是否是树形\n const hasChildren = ref(false);\n\n // 树数据\n const treeNodes: Ref<IData[]> = ref([]);\n\n // 处理树数据\n const handleTreeNodes = (nodes: readonly IData[]) => {\n if (nodes.length === 0) {\n return [];\n }\n const list: IData[] = [];\n nodes.forEach((codeItem: IData) => {\n const tempObj: IData = {\n label: codeItem.text,\n value: codeItem.value,\n children: [],\n };\n if (codeItem.children && codeItem.children.length > 0) {\n tempObj.children = handleTreeNodes(codeItem.children);\n }\n list.push(tempObj);\n });\n return list;\n };\n\n c.loadCodeList(props.data!).then((codeList: readonly IData[]) => {\n items.value = codeList;\n for (let i = 0; i < items.value.length; i++) {\n const _item = items.value[i];\n if (_item.children) {\n hasChildren.value = true;\n treeNodes.value = handleTreeNodes(codeList);\n break;\n }\n }\n });\n\n // 当前值\n const curValue: Ref<string | undefined | number> = ref('');\n\n watch(\n () => props.value,\n newVal => {\n if (newVal || newVal === null) {\n curValue.value = newVal;\n if (newVal === null) {\n curValue.value = '';\n }\n const index = items.value.findIndex((item: IData) =>\n Object.is(item.value, newVal),\n );\n if (index !== -1) {\n curValue.value = items.value[index].text;\n }\n }\n },\n { immediate: true },\n );\n\n const valueText = computed(() => {\n const valueArr = Array.isArray(curValue.value)\n ? curValue.value\n : [curValue.value];\n\n return items.value\n .filter(item => valueArr.includes(item.value))\n .map(item => item.text)\n .join(',');\n });\n\n // 自动聚焦\n const editorRef = ref();\n if (props.autoFocus) {\n watch(editorRef, newVal => {\n if (newVal) {\n newVal.focus();\n }\n });\n }\n const onFocus = () => {\n emit('focus');\n };\n const onBlur = () => {\n setTimeout(() => {\n emit('blur');\n }, 100);\n };\n\n // 确定\n const onConfirm = ({ selectedOptions }: { selectedOptions: IData[] }) => {\n showPicker.value = false;\n if (Array.isArray(selectedOptions)) {\n curValue.value = selectedOptions[0].text;\n const emitVal = selectedOptions\n .map(val => {\n return val.value;\n })\n .join(',');\n emit('change', selectedOptions.length === 0 ? null : emitVal);\n }\n };\n\n return {\n ns,\n c,\n curValue,\n items,\n valueText,\n hasChildren,\n onBlur,\n onFocus,\n editorRef,\n treeNodes,\n showPicker,\n onConfirm,\n };\n },\n\n render() {\n // 编辑态内容\n const editContent = this.hasChildren\n ? '暂未支持树形下拉选择'\n : [\n <van-field\n ref='editorRef'\n v-model={this.curValue}\n clearable\n readonly\n class={[this.ns.e('select')]}\n placeholder={this.c.placeHolder}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={() => {\n if (!this.disabled) {\n this.showPicker = true;\n }\n }}\n >\n {{\n 'right-icon': <IBizCommonRightIcon></IBizCommonRightIcon>,\n }}\n </van-field>,\n <van-popup v-model:show={this.showPicker} round position='bottom'>\n <van-picker\n columns={this.items}\n onCancel={() => {\n this.showPicker = false;\n }}\n onConfirm={this.onConfirm}\n />\n </van-popup>,\n ];\n return (\n <div\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n >\n {this.readonly ? this.valueText : editContent}\n </div>\n );\n },\n});\n","import { CodeListEditorController } from '@ibiz-template/runtime';\nimport { IDropDownList } from '@ibiz/model-core';\n\n/**\n * 下拉列表框编辑器控制器\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 10:57:58\n */\nexport class DropDownListEditorController extends CodeListEditorController<IDropDownList> {\n /**\n * 占位\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 14:33:14\n */\n public placeHolder = '请选择';\n\n /**\n * 是否多选\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 14:33:14\n */\n public multiple = false;\n\n protected async onInit(): Promise<void> {\n super.onInit();\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { IDropDownList } from '@ibiz/model-core';\nimport { DropDownListEditorController } from './dropdown-list-editor.controller';\n\n/**\n * 多选框列表编辑器适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class DropDownListEditorProvider\n * @implements {EditorProvider}\n */\nexport class DropDownListEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizDropdown';\n\n gridEditor: string = 'IBizDropdown';\n\n async createController(\n editorModel: IDropDownList,\n parentController: IEditorContainerController,\n ): Promise<DropDownListEditorController> {\n const c = new DropDownListEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","import { computed, defineComponent, ref, watch } from 'vue';\nimport {\n getCheckboxListProps,\n getEditorEmits,\n useFocusAndBlur,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport { isNil, equals } from 'ramda';\nimport './ibiz-checkbox-list.scss';\nimport { CheckBoxListEditorController } from '../checkbox-list-editor.controller';\n\nexport const IBizCheckboxList = defineComponent({\n name: 'IBizCheckboxList',\n props: getCheckboxListProps<CheckBoxListEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('checkbox-list');\n\n const c = props.controller;\n\n const codeList = c.codeList;\n\n // 代码表数据\n const items = ref<readonly IData[]>([]);\n watch(\n () => props.data,\n newVal => {\n c.loadCodeList(newVal).then(_codeList => {\n items.value = _codeList;\n });\n },\n {\n immediate: true,\n deep: true,\n },\n );\n\n // 当前模式\n const currentMode = computed(() => {\n if (codeList && codeList.orMode) {\n return codeList.orMode.toLowerCase();\n }\n return 'str';\n });\n\n // 值分隔符\n let valueSeparator = ',';\n if (codeList && codeList.valueSeparator) {\n valueSeparator = codeList.valueSeparator;\n }\n\n // 选中数组\n const selectArray = computed({\n get() {\n if (!isNil(props.value)) {\n if (Object.is(currentMode.value, 'num') && items) {\n const selectsArray: Array<string | number> = [];\n const num: number =\n typeof props.value === 'string'\n ? parseInt(props.value, 10)\n : props.value;\n items.value.forEach((item: IData) => {\n // eslint-disable-next-line no-bitwise\n if ((num & item.value) === item.value) {\n selectsArray.push(item.value);\n }\n });\n return selectsArray;\n }\n if (Object.is(currentMode.value, 'str')) {\n const strVal = props.value! as string;\n if (strVal !== '') {\n if (codeList) {\n const selects: Array<string | number> =\n strVal.split(valueSeparator);\n if (codeList.codeItemValueNumber) {\n for (let i = 0, len = selects.length; i < len; i++) {\n selects[i] = Number(selects[i]);\n }\n }\n return selects;\n }\n return strVal.split(',');\n }\n }\n }\n return [];\n },\n set(val: Array<string | number>) {\n let value: null | string | number | string[] = null;\n if (Object.is(currentMode.value, 'num')) {\n let temp: number = 0;\n val.forEach(item => {\n const numVal: number =\n typeof item === 'string' ? parseInt(item, 10) : item;\n // eslint-disable-next-line no-bitwise\n temp |= numVal;\n });\n value = temp;\n } else if (Object.is(currentMode.value, 'str')) {\n const _datas: string[] = [];\n if (items.value.length > 0) {\n items.value.forEach((_item: IData) => {\n const index = val.findIndex((_key: unknown) =>\n Object.is(_item.value, _key),\n );\n if (index === -1) {\n return;\n }\n _datas.push(_item.value);\n });\n value = _datas.join(valueSeparator);\n }\n }\n emit('change', value);\n },\n });\n\n const onSelectArrayChange = (value: Array<string | number>) => {\n if (equals(value, selectArray.value)) {\n return;\n }\n selectArray.value = value;\n };\n\n const valueText = computed(() => {\n const valueArr = Array.isArray(selectArray.value)\n ? selectArray.value\n : [selectArray.value];\n\n return items.value\n .filter(item => valueArr.includes(item.value))\n .map(item => item.text)\n .join(',');\n });\n\n // 聚焦失焦事件\n const { componentRef: editorRef } = useFocusAndBlur(\n () => emit('focus'),\n () => emit('blur'),\n );\n\n return {\n ns,\n items,\n selectArray,\n valueText,\n editorRef,\n onSelectArrayChange,\n };\n },\n render() {\n return (\n <div\n ref='editorRef'\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n >\n {this.readonly ? (\n this.valueText\n ) : (\n <van-checkbox-group\n direction='horizontal'\n v-model={this.selectArray}\n onChange={this.onSelectArrayChange}\n >\n {this.items.map((item, index: number) => (\n <van-checkbox\n shape='square'\n key={index}\n name={item.value}\n disabled={this.disabled}\n >\n <span class={this.ns.e('text')}>{item.text}</span>\n </van-checkbox>\n ))}\n </van-checkbox-group>\n )}\n </div>\n );\n },\n});\n","import { CodeListEditorController } from '@ibiz-template/runtime';\nimport { IAppCodeList, ICheckBoxList } from '@ibiz/model-core';\n\n/**\n * 选项框列表编辑器控制器\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 10:57:58\n */\nexport class CheckBoxListEditorController extends CodeListEditorController<ICheckBoxList> {\n /**\n * 代码表模型\n * @return {*}\n * @author: zhujiamin\n * @Date: 2023-05-24 10:55:50\n */\n codeList: IAppCodeList | undefined = undefined;\n\n protected async onInit(): Promise<void> {\n super.onInit();\n if (this.model.appCodeListId) {\n const app = await ibiz.hub.getApp(this.context.srfappid);\n this.codeList = app.codeList.getCodeList(this.model.appCodeListId);\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { ICheckBoxList } from '@ibiz/model-core';\nimport { CheckBoxListEditorController } from './checkbox-list-editor.controller';\n\n/**\n * 多选框列表编辑器适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class CheckBoxListEditorProvider\n * @implements {EditorProvider}\n */\nexport class CheckBoxListEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizCheckboxList';\n\n gridEditor: string = 'IBizCheckboxList';\n\n async createController(\n editorModel: ICheckBoxList,\n parentController: IEditorContainerController,\n ): Promise<CheckBoxListEditorController> {\n const c = new CheckBoxListEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","import { defineComponent, ref, watch } from 'vue';\nimport {\n getEditorEmits,\n getSwitchProps,\n useFocusAndBlur,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './ibiz-switch.scss';\nimport { SwitchEditorController } from '../switch-editor.controller';\n\nexport const IBizSwitch = defineComponent({\n name: 'IBizSwitch',\n props: getSwitchProps<SwitchEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('switch');\n // 当前值\n const currentVal = ref<boolean>(false);\n\n watch(\n () => props.value,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (!newVal) {\n currentVal.value = false;\n } else {\n // eslint-disable-next-line eqeqeq\n currentVal.value = props.value == 1;\n }\n }\n },\n { immediate: true },\n );\n\n const handleChange = (currentValue: boolean) => {\n const emitValue = currentValue === true ? 1 : 0;\n emit('change', emitValue);\n };\n\n // 聚焦失焦事件\n const { componentRef: editorRef } = useFocusAndBlur(\n () => emit('focus'),\n () => emit('blur'),\n );\n\n return {\n ns,\n currentVal,\n handleChange,\n editorRef,\n };\n },\n render() {\n return (\n <div class={[this.ns.b()]} ref='editorRef'>\n <van-switch\n v-model={this.currentVal}\n disabled={this.disabled || this.readonly}\n onChange={this.handleChange}\n ></van-switch>\n </div>\n );\n },\n});\n","import { EditorController } from '@ibiz-template/runtime';\nimport { ICheckBox } from '@ibiz/model-core';\n\n/**\n * 开关编辑器控制器\n *\n * @export\n * @class SwitchEditorController\n * @extends {EditorController}\n */\nexport class SwitchEditorController extends EditorController<ICheckBox> {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { ICheckBox } from '@ibiz/model-core';\nimport { SwitchEditorController } from './switch-editor.controller';\n\n/**\n * 开关编辑器适配器\n *\n * @export\n * @class SwitchEditorProvider\n * @implements {IEditorProvider}\n */\nexport class SwitchEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizSwitch';\n\n gridEditor: string = 'IBizSwitch';\n\n async createController(\n editorModel: ICheckBox,\n parentController: IEditorContainerController,\n ): Promise<SwitchEditorController> {\n const c = new SwitchEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","import { computed, defineComponent, ref, watch } from 'vue';\nimport {\n getEditorEmits,\n getRadioProps,\n useFocusAndBlur,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './ibiz-radio.scss';\nimport { RadioButtonListEditorController } from '../radio-button-list.controller';\n\nexport const IBizRadio = defineComponent({\n name: 'IBizRadio',\n props: getRadioProps<RadioButtonListEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('radio');\n\n const c = props.controller;\n\n const editorModel = c.model;\n\n // 当前值\n const currentVal = computed({\n get() {\n return props.value;\n },\n set(val: string | number | undefined) {\n emit('change', val);\n },\n });\n\n // 代码表\n const items = ref<readonly IData[]>([]);\n watch(\n () => props.data,\n newVal => {\n c.loadCodeList(newVal).then(_codeList => {\n items.value = _codeList;\n });\n },\n {\n immediate: true,\n deep: true,\n },\n );\n\n const valueText = computed(() => {\n return items.value.find(item => item.value === props.value)?.text || '';\n });\n\n // 聚焦失焦事件\n const { componentRef: editorRef } = useFocusAndBlur(\n () => emit('focus'),\n () => emit('blur'),\n );\n\n return {\n ns,\n editorModel,\n items,\n valueText,\n currentVal,\n editorRef,\n };\n },\n render() {\n return (\n <div\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n ref='editorRef'\n >\n {this.readonly ? (\n this.valueText\n ) : (\n <van-radio-group\n class={this.ns.e('group')}\n v-model={this.currentVal}\n direction='horizontal'\n >\n {this.items.map((_item, index: number) => (\n <van-radio\n key={index}\n name={_item.value}\n disabled={this.disabled}\n >\n <span class={this.ns.e('text')}>{_item.text}</span>\n </van-radio>\n ))}\n </van-radio-group>\n )}\n </div>\n );\n },\n});\n","import { CodeListEditorController } from '@ibiz-template/runtime';\nimport { IRadioButtonList } from '@ibiz/model-core';\n\n/**\n * 单选项列表编辑器控制器\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 10:57:58\n */\nexport class RadioButtonListEditorController extends CodeListEditorController<IRadioButtonList> {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { IRadioButtonList } from '@ibiz/model-core';\nimport { RadioButtonListEditorController } from './radio-button-list.controller';\n\n/**\n * 单选框列表编辑器适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class RadioButtonListEditorProvider\n * @implements {IEditorProvider}\n */\nexport class RadioButtonListEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizRadio';\n\n gridEditor: string = 'IBizRadio';\n\n async createController(\n editorModel: IRadioButtonList,\n parentController: IEditorContainerController,\n ): Promise<RadioButtonListEditorController> {\n const c = new RadioButtonListEditorController(\n editorModel,\n parentController,\n );\n await c.init();\n return c;\n }\n}\n","import { defineComponent, ref, watch } from 'vue';\nimport {\n getEditorEmits,\n getSliderProps,\n useFocusAndBlur,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport { toNumber } from 'lodash-es';\nimport { SliderEditorController } from '../slider-editor.controller';\nimport './ibiz-slider.scss';\n\nexport const IBizSlider = defineComponent({\n name: 'IBizSlider',\n props: getSliderProps<SliderEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('slider');\n const c = props.controller;\n const editorModel = c.model;\n\n // 步长\n let step = 1;\n // 设置滑动输入条允许的最大值\n let max = 100;\n // 设置滑动输入条允许的最小值\n let min = 0;\n // 是否开启选择范围\n let range = false;\n if (editorModel.editorParams) {\n if (editorModel.editorParams.stepValue) {\n step = toNumber(editorModel.editorParams.stepValue);\n }\n if (editorModel.editorParams.maxValue) {\n max = toNumber(editorModel.editorParams.maxValue);\n }\n if (editorModel.editorParams.minValue) {\n min = toNumber(editorModel.editorParams.minValue);\n }\n if (editorModel.editorParams.range) {\n range = c.toBoolean(editorModel.editorParams.range);\n }\n }\n\n // 当前值\n const currentVal = ref<number | Array<number>>(0);\n watch(\n () => props.value,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (newVal === null || newVal === undefined) {\n // 如果是范围给数组\n if (range) {\n currentVal.value = [0, 1];\n } else {\n currentVal.value = 0;\n }\n } else {\n // 如果是范围解析JSON成数组\n // eslint-disable-next-line no-lonely-if\n if (range) {\n currentVal.value = JSON.parse(newVal as string);\n } else {\n currentVal.value = (Number(newVal) as number) || 0;\n }\n }\n }\n },\n { immediate: true },\n );\n\n const handleChange = (currentValue: number | undefined | Array<number>) => {\n if (Array.isArray(currentValue)) {\n emit('change', JSON.stringify(currentValue));\n } else {\n emit('change', currentValue);\n }\n };\n\n // 聚焦失焦事件\n const { componentRef: editorRef } = useFocusAndBlur(\n () => emit('focus'),\n () => emit('blur'),\n );\n\n return {\n ns,\n currentVal,\n handleChange,\n step,\n max,\n min,\n range,\n editorRef,\n };\n },\n render() {\n return (\n <div class={[this.ns.b()]} ref='editorRef'>\n <van-slider\n v-model={this.currentVal}\n disabled={this.disabled || this.readonly}\n step={this.step}\n max={this.max}\n min={this.min}\n range={this.range}\n onChange={this.handleChange}\n >\n {{\n button: () => {\n return <div class={this.ns.b('button')}>{this.currentVal}</div>;\n },\n }}\n </van-slider>\n </div>\n );\n },\n});\n","import { EditorController } from '@ibiz-template/runtime';\nimport { ISlider } from '@ibiz/model-core';\n\n/**\n * 滑动输入条编辑器控制器\n *\n * @export\n * @class SliderEditorController\n * @extends {EditorController}\n */\nexport class SliderEditorController extends EditorController<ISlider> {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { ISlider } from '@ibiz/model-core';\nimport { SliderEditorController } from './slider-editor.controller';\n\n/**\n * 滑动输入条编辑器适配器\n *\n * @export\n * @class SliderEditorProvider\n * @implements {EditorProvider}\n */\nexport class SliderEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizSlider';\n\n gridEditor: string = 'IBizSlider';\n\n async createController(\n editorModel: ISlider,\n parentController: IEditorContainerController,\n ): Promise<SliderEditorController> {\n const c = new SliderEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","import { computed, defineComponent, ref } from 'vue';\nimport {\n getEditorEmits,\n getStepperProps,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport { toNumber } from 'lodash-es';\nimport { StepperEditorController } from '../stepper-editor.controller';\nimport './ibiz-stepper.scss';\n\nexport const IBizStepper = defineComponent({\n name: 'IBizStepper',\n props: getStepperProps<StepperEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('stepper');\n\n const c = props.controller;\n\n const editorModel = c.model;\n\n // const currentVal = ref<number | null>(null);\n\n const currentVal = computed(() => {\n return props.value;\n });\n\n // 步进器步长\n let step = 1;\n // 数值精度\n let precision = 0;\n // 设置步进器允许的最大值\n let max = Infinity;\n // 设置步进器允许的最小值\n let min = -Infinity;\n if (editorModel.editorParams) {\n if (editorModel.editorParams.stepValue) {\n step = toNumber(editorModel.editorParams.stepValue);\n }\n if (editorModel.editorParams.precision) {\n precision = toNumber(editorModel.editorParams.precision);\n }\n if (editorModel.editorParams.maxValue) {\n max = toNumber(editorModel.editorParams.maxValue);\n }\n if (editorModel.editorParams.minValue) {\n min = toNumber(editorModel.editorParams.minValue);\n }\n }\n\n // watch(\n // () => props.value,\n // (newVal, oldVal) => {\n // if (newVal !== oldVal) {\n // currentVal.value = newVal;\n // }\n // },\n // { immediate: true },\n // );\n\n const handleChange = (e: number | null) => {\n // eslint-disable-next-line eqeqeq\n if (e == props.value) {\n return;\n }\n emit('change', e);\n };\n\n const inputRef = ref();\n\n // 聚焦\n const onFocus = () => {\n emit('focus');\n };\n\n // 失焦\n const onBlur = () => {\n emit('blur');\n };\n\n return {\n ns,\n c,\n currentVal,\n handleChange,\n inputRef,\n step,\n precision,\n max,\n min,\n onFocus,\n onBlur,\n };\n },\n render() {\n let content = null;\n if (this.readonly) {\n // 只读显示\n content = `${this.currentVal}`;\n } else {\n // 编辑态显示\n content = [\n <van-stepper\n ref='inputRef'\n modelValue={this.currentVal}\n placeholder={this.c.placeHolder}\n decimal-length={this.precision}\n min={this.min}\n max={this.max}\n step={this.step}\n disabled={this.disabled}\n onChange={this.handleChange}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n ></van-stepper>,\n ];\n }\n\n return (\n <div\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n >\n {content}\n </div>\n );\n },\n});\n","import { EditorController } from '@ibiz-template/runtime';\nimport { IStepper } from '@ibiz/model-core';\n\n/**\n * 步进器编辑器控制器\n *\n * @export\n * @class StepperEditorController\n * @extends {EditorController}\n */\nexport class StepperEditorController extends EditorController<IStepper> {\n /**\n * 占位\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 14:33:14\n */\n public placeHolder = '请输入';\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { IStepper } from '@ibiz/model-core';\nimport { StepperEditorController } from './stepper-editor.controller';\n\n/**\n * 步进器编辑器适配器\n *\n * @export\n * @class StepperEditorProvider\n * @implements {EditorProvider}\n */\nexport class StepperEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizStepper';\n\n gridEditor: string = 'IBizStepper';\n\n async createController(\n editorModel: IStepper,\n parentController: IEditorContainerController,\n ): Promise<StepperEditorController> {\n const c = new StepperEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","import { defineComponent, ref, watch } from 'vue';\nimport {\n getEditorEmits,\n getRateProps,\n useFocusAndBlur,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport { toNumber } from 'lodash-es';\nimport { RateEditorController } from '../rate-editor.controller';\nimport './ibiz-rate.scss';\n\nexport const IBizRate = defineComponent({\n name: 'IBizRate',\n props: getRateProps<RateEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('rate');\n // 当前值\n const currentVal = ref<number>();\n\n const c = props.controller;\n\n const editorModel = c.model;\n\n // 设置允许的最大值\n let max = 5;\n if (editorModel.editorParams) {\n if (editorModel.editorParams.maxValue) {\n max = toNumber(editorModel.editorParams.maxValue);\n }\n }\n\n watch(\n () => props.value,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (!newVal) {\n currentVal.value = 0;\n } else {\n currentVal.value = newVal as number;\n }\n }\n },\n { immediate: true },\n );\n\n const handleChange = (currentValue: number | undefined) => {\n emit('change', currentValue);\n };\n\n // 聚焦失焦事件\n const { componentRef: editorRef } = useFocusAndBlur(\n () => emit('focus'),\n () => emit('blur'),\n );\n\n return {\n ns,\n currentVal,\n handleChange,\n max,\n editorRef,\n };\n },\n render() {\n return (\n <div class={[this.ns.b()]} ref='editorRef'>\n <van-rate\n v-model={this.currentVal}\n disabled={this.disabled || this.readonly}\n count={this.max}\n onChange={this.handleChange}\n ></van-rate>\n </div>\n );\n },\n});\n","import { EditorController } from '@ibiz-template/runtime';\nimport { IRating } from '@ibiz/model-core';\n\n/**\n * 评分器编辑器控制器\n *\n * @export\n * @class RateEditorController\n * @extends {EditorController}\n */\nexport class RateEditorController extends EditorController<IRating> {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { IRating } from '@ibiz/model-core';\nimport { RateEditorController } from './rate-editor.controller';\n\n/**\n * 评分器编辑器适配器\n *\n * @export\n * @class RateEditorProvider\n * @implements {EditorProvider}\n */\nexport class RateEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizRate';\n\n gridEditor: string = 'IBizRate';\n\n async createController(\n editorModel: IRating,\n parentController: IEditorContainerController,\n ): Promise<RateEditorController> {\n const c = new RateEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","/**\n * Rolldate 3.1.3\n * Copyright 2018-2020\n * weijhfly https://github.com/weijhfly/rolldate\n * Licensed under MIT\n * Released on: aug 4, 2018\n */\n\n!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=t||self).Rolldate=i()}(this,function(){\"use strict\";!function(t,i){void 0===i&&(i={});var e=i.insertAt;if(t&&\"undefined\"!=typeof document){var o=document.head||document.getElementsByTagName(\"head\")[0],s=document.createElement(\"style\");s.type=\"text/css\",\"top\"===e&&o.firstChild?o.insertBefore(s,o.firstChild):o.appendChild(s),s.styleSheet?s.styleSheet.cssText=t:s.appendChild(document.createTextNode(t))}}(\".rolldate-container{font-size:20px;color:#333;text-align:center}.rolldate-container ul{margin:0;padding:0}.rolldate-container li{list-style-type:none}.rolldate-container header{position:relative;line-height:60px;font-size:18px;border-bottom:1px solid #e0e0e0}.rolldate-container .rolldate-mask{position:fixed;width:100%;height:100%;top:0;left:0;z-index:999;background-color:rgba(37,38,45,.4)}.rolldate-container .rolldate-panel{position:fixed;bottom:0;left:0;width:100%;height:273px;z-index:1000;background:#fff;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}.rolldate-container .rolldate-btn{position:absolute;left:0;top:0;height:100%;padding:0 15px;color:#666;font-size:16px;cursor:pointer;-webkit-tap-highlight-color:transparent}.rolldate-container .rolldate-confirm{left:auto;right:0;color:#007bff}.rolldate-container .rolldate-content{position:relative;top:20px}.rolldate-container .rolldate-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.rolldate-container .rolldate-wrapper>div{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;height:173px;line-height:36px;overflow:hidden;-webkit-flex-basis:-8e;-ms-flex-preferred-size:-8e;flex-basis:-8e;width:1%}.rolldate-container .rolldate-wrapper ul{margin-top:68px}.rolldate-container .rolldate-wrapper li{height:36px}.rolldate-container .rolldate-dim{position:absolute;left:0;top:0;width:100%;height:68px;background:-o-linear-gradient(bottom,hsla(0,0%,100%,.4),hsla(0,0%,100%,.8));background:-webkit-gradient(linear, left bottom, left top, from(hsla(0, 0%, 100%, 0.4)), to(hsla(0, 0%, 100%, 0.8)));background:-o-linear-gradient(bottom, hsla(0, 0%, 100%, 0.4), hsla(0, 0%, 100%, 0.8));background:linear-gradient(0deg,hsla(0,0%,100%,.4),hsla(0,0%,100%,.8));pointer-events:none;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:10}.rolldate-container .mask-top{border-bottom:1px solid #ebebeb}.rolldate-container .mask-bottom{top:auto;bottom:1px;border-top:1px solid #ebebeb}.rolldate-container .fadeIn{-webkit-transform:translateZ(0);transform:translateZ(0)}.rolldate-container .fadeOut{-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}@media screen and (max-width:414px){.rolldate-container{font-size:18px}}@media screen and (max-width:320px){.rolldate-container{font-size:15px}}\");\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;function S(t,i){return\"string\"!=typeof t&&t.nodeType?t:i?document.querySelectorAll(t):document.querySelector(t)}var t,Y=(function(t,i){t.exports=function(){function s(t,i){for(;i+1<t.length;i++)t[i]=t[i+1];t.pop()}var h=function(t,i){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,i){var e=[],o=!0,s=!1,n=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(e.push(r.value),!i||e.length!==i);o=!0);}catch(t){s=!0,n=t}finally{try{!o&&a.return&&a.return()}finally{if(s)throw n}}return e}(t,i);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")},e=\"undefined\"!=typeof window,t=e&&navigator.userAgent.toLowerCase(),i=t&&/wechatdevtools/.test(t),o=t&&0<t.indexOf(\"android\");function b(){return window.performance&&window.performance.now?window.performance.now()+window.performance.timing.navigationStart:+new Date}function l(t){for(var i=arguments.length,e=Array(1<i?i-1:0),o=1;o<i;o++)e[o-1]=arguments[o];for(var s=0;s<e.length;s++){var n=e[s];for(var r in n)t[r]=n[r]}return t}function c(t){return null==t}var n=e&&document.createElement(\"div\").style,r=function(){if(!e)return!1;var t={webkit:\"webkitTransform\",Moz:\"MozTransform\",O:\"OTransform\",ms:\"msTransform\",standard:\"transform\"};for(var i in t)if(void 0!==n[t[i]])return i;return!1}();function a(t){return!1!==r&&(\"standard\"===r?\"transitionEnd\"===t?\"transitionend\":t:r+t.charAt(0).toUpperCase()+t.substr(1))}function d(t,i,e,o){t.addEventListener(i,e,{passive:!1,capture:!!o})}function p(t,i,e,o){t.removeEventListener(i,e,{passive:!1,capture:!!o})}function u(t){for(var i=0,e=0;t;)i-=t.offsetLeft,e-=t.offsetTop,t=t.offsetParent;return{left:i,top:e}}r&&\"standard\"!==r&&r.toLowerCase();var m=a(\"transform\"),f=a(\"transition\"),v=e&&a(\"perspective\")in n,g=e&&(\"ontouchstart\"in window||i),w=!1!==m,y=e&&f in n,x={transform:m,transition:f,transitionTimingFunction:a(\"transitionTimingFunction\"),transitionDuration:a(\"transitionDuration\"),transitionDelay:a(\"transitionDelay\"),transformOrigin:a(\"transformOrigin\"),transitionEnd:a(\"transitionEnd\")},T={touchstart:1,touchmove:1,touchend:1,mousedown:2,mousemove:2,mouseup:2};function S(t){if(t instanceof window.SVGElement){var i=t.getBoundingClientRect();return{top:i.top,left:i.left,width:i.width,height:i.height}}return{top:t.offsetTop,left:t.offsetLeft,width:t.offsetWidth,height:t.offsetHeight}}function Y(t,i){for(var e in i)if(i[e].test(t[e]))return!0;return!1}function D(t){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:\"click\",e=void 0;\"mouseup\"===t.type||\"mousecancel\"===t.type?e=t:\"touchend\"!==t.type&&\"touchcancel\"!==t.type||(e=t.changedTouches[0]);var o={};e&&(o.screenX=e.screenX||0,o.screenY=e.screenY||0,o.clientX=e.clientX||0,o.clientY=e.clientY||0);var s=void 0,n=!0,r=!0;if(\"undefined\"!=typeof MouseEvent)try{s=new MouseEvent(i,l({bubbles:n,cancelable:r},o))}catch(t){a()}else a();function a(){(s=document.createEvent(\"Event\")).initEvent(i,n,r),l(s,o)}s.forwardedTouchEvent=!0,s._constructed=!0,t.target.dispatchEvent(s)}var M={startX:0,startY:0,scrollX:!1,scrollY:!0,freeScroll:!1,directionLockThreshold:5,eventPassthrough:\"\",click:!1,tap:!1,bounce:!0,bounceTime:800,momentum:!0,momentumLimitTime:300,momentumLimitDistance:15,swipeTime:2500,swipeBounceTime:500,deceleration:.0015,flickLimitTime:200,flickLimitDistance:100,resizePolling:60,probeType:0,preventDefault:!0,preventDefaultException:{tagName:/^(INPUT|TEXTAREA|BUTTON|SELECT|AUDIO)$/},HWCompositing:!0,useTransition:!0,useTransform:!0,bindToWrapper:!1,disableMouse:g,disableTouch:!g,observeDOM:!0,autoBlur:!0,wheel:!1,snap:!1,scrollbar:!1,pullDownRefresh:!1,pullUpLoad:!1,mouseWheel:!1,stopPropagation:!1,zoom:!1,infinity:!1,dblclick:!1},X={swipe:{style:\"cubic-bezier(0.23, 1, 0.32, 1)\",fn:function(t){return 1+--t*t*t*t*t}},swipeBounce:{style:\"cubic-bezier(0.25, 0.46, 0.45, 0.94)\",fn:function(t){return t*(2-t)}},bounce:{style:\"cubic-bezier(0.165, 0.84, 0.44, 1)\",fn:function(t){return 1- --t*t*t*t}}};function _(t,i,e,o,s,n,r){var a=t-i,l=Math.abs(a)/e,h=r.deceleration,c=r.itemHeight,d=r.swipeBounceTime,p=r.wheel,u=r.swipeTime,m=p?4:15,f=t+l/h*(a<0?-1:1);return p&&c&&(f=Math.round(f/c)*c),f<o?(f=n?Math.max(o-n/4,o-n/m*l):o,u=d):s<f&&(f=n?Math.min(s+n/4,s+n/m*l):s,u=d),{destination:Math.round(f),duration:u}}function E(){}var k,L,O,P,H,I=e?window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||function(t){return window.setTimeout(t,(t.interval||100/60)/2)}:E,z=e?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||function(t){window.clearTimeout(t)}:E;function W(t){console.error(\"[BScroll warn]: \"+t)}function C(t,i){this.wrapper=\"string\"==typeof t?document.querySelector(t):t,this.wrapper||W(\"Can not resolve the wrapper DOM.\"),this.scroller=this.wrapper.children[0],this.scroller||W(\"The wrapper need at least one child element to be scroller.\"),this.scrollerStyle=this.scroller.style,this._init(i)}return(k=C).prototype._init=function(t){this._handleOptions(t),this._events={},this.x=0,this.y=0,this.directionX=0,this.directionY=0,this.setScale(1),this._addDOMEvents(),this._initExtFeatures(),this._watchTransition(),this.options.observeDOM&&this._initDOMObserver(),this.options.autoBlur&&this._handleAutoBlur(),this.refresh(),this.options.snap||this.scrollTo(this.options.startX,this.options.startY),this.enable()},k.prototype.setScale=function(t){this.lastScale=c(this.scale)?t:this.scale,this.scale=t},k.prototype._handleOptions=function(t){this.options=l({},M,t),this.translateZ=this.options.HWCompositing&&v?\" translateZ(0)\":\"\",this.options.useTransition=this.options.useTransition&&y,this.options.useTransform=this.options.useTransform&&w,this.options.preventDefault=!this.options.eventPassthrough&&this.options.preventDefault,this.options.scrollX=\"horizontal\"!==this.options.eventPassthrough&&this.options.scrollX,this.options.scrollY=\"vertical\"!==this.options.eventPassthrough&&this.options.scrollY,this.options.freeScroll=this.options.freeScroll&&!this.options.eventPassthrough,this.options.directionLockThreshold=this.options.eventPassthrough?0:this.options.directionLockThreshold,!0===this.options.tap&&(this.options.tap=\"tap\")},k.prototype._addDOMEvents=function(){var t=d;this._handleDOMEvents(t)},k.prototype._removeDOMEvents=function(){var t=p;this._handleDOMEvents(t)},k.prototype._handleDOMEvents=function(t){var i=this.options.bindToWrapper?this.wrapper:window;t(window,\"orientationchange\",this),t(window,\"resize\",this),this.options.click&&t(this.wrapper,\"click\",this,!0),this.options.disableMouse||(t(this.wrapper,\"mousedown\",this),t(i,\"mousemove\",this),t(i,\"mousecancel\",this),t(i,\"mouseup\",this)),g&&!this.options.disableTouch&&(t(this.wrapper,\"touchstart\",this),t(i,\"touchmove\",this),t(i,\"touchcancel\",this),t(i,\"touchend\",this)),t(this.scroller,x.transitionEnd,this)},k.prototype._initExtFeatures=function(){this.options.snap&&this._initSnap(),this.options.scrollbar&&this._initScrollbar(),this.options.pullUpLoad&&this._initPullUp(),this.options.pullDownRefresh&&this._initPullDown(),this.options.wheel&&this._initWheel(),this.options.mouseWheel&&this._initMouseWheel(),this.options.zoom&&this._initZoom(),this.options.infinity&&this._initInfinite()},k.prototype._watchTransition=function(){if(\"function\"==typeof Object.defineProperty){var s=this,n=!1,t=this.options.useTransition?\"isInTransition\":\"isAnimating\";Object.defineProperty(this,t,{get:function(){return n},set:function(t){n=t;for(var i=s.scroller.children.length?s.scroller.children:[s.scroller],e=n&&!s.pulling?\"none\":\"auto\",o=0;o<i.length;o++)i[o].style.pointerEvents=e}})}},k.prototype._handleAutoBlur=function(){this.on(\"scrollStart\",function(){var t=document.activeElement;!t||\"INPUT\"!==t.tagName&&\"TEXTAREA\"!==t.tagName||t.blur()})},k.prototype._initDOMObserver=function(){var n=this;if(\"undefined\"!=typeof MutationObserver){var r=void 0,t=new MutationObserver(function(t){if(!n._shouldNotRefresh()){for(var i=!1,e=!1,o=0;o<t.length;o++){var s=t[o];if(\"attributes\"!==s.type){i=!0;break}if(s.target!==n.scroller){e=!0;break}}i?n.refresh():e&&(clearTimeout(r),r=setTimeout(function(){n._shouldNotRefresh()||n.refresh()},60))}});t.observe(this.scroller,{attributes:!0,childList:!0,subtree:!0}),this.on(\"destroy\",function(){t.disconnect()})}else this._checkDOMUpdate()},k.prototype._shouldNotRefresh=function(){var t=this.x>this.minScrollX||this.x<this.maxScrollX||this.y>this.minScrollY||this.y<this.maxScrollY;return this.isInTransition||this.stopFromTransition||t},k.prototype._checkDOMUpdate=function(){var o=S(this.scroller),s=o.width,n=o.height;(function e(){var t=this;setTimeout(function(){(function(){if(!this.destroyed){var t=(o=S(this.scroller)).width,i=o.height;s===t&&n===i||this.refresh(),s=t,n=i,e.call(this)}}).call(t)},1e3)}).call(this)},k.prototype.handleEvent=function(t){switch(t.type){case\"touchstart\":case\"mousedown\":this._start(t),this.options.zoom&&t.touches&&1<t.touches.length&&this._zoomStart(t);break;case\"touchmove\":case\"mousemove\":this.options.zoom&&t.touches&&1<t.touches.length?this._zoom(t):this._move(t);break;case\"touchend\":case\"mouseup\":case\"touchcancel\":case\"mousecancel\":this.scaled?this._zoomEnd(t):this._end(t);break;case\"orientationchange\":case\"resize\":this._resize();break;case\"transitionend\":case\"webkitTransitionEnd\":case\"oTransitionEnd\":case\"MSTransitionEnd\":this._transitionEnd(t);break;case\"click\":this.enabled&&!t._constructed&&(Y(t.target,this.options.preventDefaultException)||(t.preventDefault(),t.stopPropagation()));break;case\"wheel\":case\"DOMMouseScroll\":case\"mousewheel\":this._onMouseWheel(t)}},k.prototype.refresh=function(){var t=\"static\"===window.getComputedStyle(this.wrapper,null).position,i=S(this.wrapper);this.wrapperWidth=i.width,this.wrapperHeight=i.height;var e=S(this.scroller);this.scrollerWidth=Math.round(e.width*this.scale),this.scrollerHeight=Math.round(e.height*this.scale),this.relativeX=e.left,this.relativeY=e.top,t&&(this.relativeX-=i.left,this.relativeY-=i.top),this.minScrollX=0,this.minScrollY=0;var o=this.options.wheel;o?(this.items=this.scroller.children,this.options.itemHeight=this.itemHeight=this.items.length?this.scrollerHeight/this.items.length:0,void 0===this.selectedIndex&&(this.selectedIndex=o.selectedIndex||0),this.options.startY=-this.selectedIndex*this.itemHeight,this.maxScrollX=0,this.maxScrollY=-this.itemHeight*(this.items.length-1)):(this.maxScrollX=this.wrapperWidth-this.scrollerWidth,this.options.infinity||(this.maxScrollY=this.wrapperHeight-this.scrollerHeight),this.maxScrollX<0?(this.maxScrollX-=this.relativeX,this.minScrollX=-this.relativeX):1<this.scale&&(this.maxScrollX=this.maxScrollX/2-this.relativeX,this.minScrollX=this.maxScrollX),this.maxScrollY<0?(this.maxScrollY-=this.relativeY,this.minScrollY=-this.relativeY):1<this.scale&&(this.maxScrollY=this.maxScrollY/2-this.relativeY,this.minScrollY=this.maxScrollY)),this.hasHorizontalScroll=this.options.scrollX&&this.maxScrollX<this.minScrollX,this.hasVerticalScroll=this.options.scrollY&&this.maxScrollY<this.minScrollY,this.hasHorizontalScroll||(this.maxScrollX=this.minScrollX,this.scrollerWidth=this.wrapperWidth),this.hasVerticalScroll||(this.maxScrollY=this.minScrollY,this.scrollerHeight=this.wrapperHeight),this.endTime=0,this.directionX=0,this.directionY=0,this.wrapperOffset=u(this.wrapper),this.trigger(\"refresh\"),this.scaled||this.resetPosition()},k.prototype.enable=function(){this.enabled=!0},k.prototype.disable=function(){this.enabled=!1},(L=C).prototype._start=function(t){var i=T[t.type];if((1===i||0===t.button)&&!(!this.enabled||this.destroyed||this.initiated&&this.initiated!==i)){this.initiated=i,this.options.preventDefault&&!Y(t.target,this.options.preventDefaultException)&&t.preventDefault(),this.options.stopPropagation&&t.stopPropagation(),this.moved=!1,this.distX=0,this.distY=0,this.directionX=0,this.directionY=0,this.movingDirectionX=0,this.movingDirectionY=0,this.directionLocked=0,this._transitionTime(),this.startTime=b(),this.options.wheel&&(this.target=t.target),this.stop();var e=t.touches?t.touches[0]:t;this.startX=this.x,this.startY=this.y,this.absStartX=this.x,this.absStartY=this.y,this.pointX=e.pageX,this.pointY=e.pageY,this.trigger(\"beforeScrollStart\")}},L.prototype._move=function(t){if(this.enabled&&!this.destroyed&&T[t.type]===this.initiated){this.options.preventDefault&&t.preventDefault(),this.options.stopPropagation&&t.stopPropagation();var i=t.touches?t.touches[0]:t,e=i.pageX-this.pointX,o=i.pageY-this.pointY;this.pointX=i.pageX,this.pointY=i.pageY,this.distX+=e,this.distY+=o;var s=Math.abs(this.distX),n=Math.abs(this.distY),r=b();if(!(r-this.endTime>this.options.momentumLimitTime&&n<this.options.momentumLimitDistance&&s<this.options.momentumLimitDistance)){if(this.directionLocked||this.options.freeScroll||(s>n+this.options.directionLockThreshold?this.directionLocked=\"h\":n>=s+this.options.directionLockThreshold?this.directionLocked=\"v\":this.directionLocked=\"n\"),\"h\"===this.directionLocked){if(\"vertical\"===this.options.eventPassthrough)t.preventDefault();else if(\"horizontal\"===this.options.eventPassthrough)return void(this.initiated=!1);o=0}else if(\"v\"===this.directionLocked){if(\"horizontal\"===this.options.eventPassthrough)t.preventDefault();else if(\"vertical\"===this.options.eventPassthrough)return void(this.initiated=!1);e=0}e=this.hasHorizontalScroll?e:0,o=this.hasVerticalScroll?o:0,this.movingDirectionX=0<e?-1:e<0?1:0,this.movingDirectionY=0<o?-1:o<0?1:0;var a=this.x+e,l=this.y+o,h=!1,c=!1,d=!1,p=!1,u=this.options.bounce;!1!==u&&(h=void 0===u.top||u.top,c=void 0===u.bottom||u.bottom,d=void 0===u.left||u.left,p=void 0===u.right||u.right),(a>this.minScrollX||a<this.maxScrollX)&&(a=a>this.minScrollX&&d||a<this.maxScrollX&&p?this.x+e/3:a>this.minScrollX?this.minScrollX:this.maxScrollX),(l>this.minScrollY||l<this.maxScrollY)&&(l=l>this.minScrollY&&h||l<this.maxScrollY&&c?this.y+o/3:l>this.minScrollY?this.minScrollY:this.maxScrollY),this.moved||(this.moved=!0,this.trigger(\"scrollStart\")),this._translate(a,l),r-this.startTime>this.options.momentumLimitTime&&(this.startTime=r,this.startX=this.x,this.startY=this.y,1===this.options.probeType&&this.trigger(\"scroll\",{x:this.x,y:this.y})),1<this.options.probeType&&this.trigger(\"scroll\",{x:this.x,y:this.y});var m=document.documentElement.scrollLeft||window.pageXOffset||document.body.scrollLeft,f=document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop,v=this.pointX-m,g=this.pointY-f;(v>document.documentElement.clientWidth-this.options.momentumLimitDistance||v<this.options.momentumLimitDistance||g<this.options.momentumLimitDistance||g>document.documentElement.clientHeight-this.options.momentumLimitDistance)&&this._end(t)}}},L.prototype._end=function(t){if(this.enabled&&!this.destroyed&&T[t.type]===this.initiated){this.initiated=!1,this.options.preventDefault&&!Y(t.target,this.options.preventDefaultException)&&t.preventDefault(),this.options.stopPropagation&&t.stopPropagation(),this.trigger(\"touchEnd\",{x:this.x,y:this.y}),this.isInTransition=!1;var i=Math.round(this.x),e=Math.round(this.y),o=i-this.absStartX,s=e-this.absStartY;if(this.directionX=0<o?-1:o<0?1:0,this.directionY=0<s?-1:s<0?1:0,!this.options.pullDownRefresh||!this._checkPullDown())if(this._checkClick(t))this.trigger(\"scrollCancel\");else if(!this.resetPosition(this.options.bounceTime,X.bounce)){this._translate(i,e),this.endTime=b();var n=this.endTime-this.startTime,r=Math.abs(i-this.startX),a=Math.abs(e-this.startY);if(this._events.flick&&n<this.options.flickLimitTime&&r<this.options.flickLimitDistance&&a<this.options.flickLimitDistance)this.trigger(\"flick\");else{var l=0;if(this.options.momentum&&n<this.options.momentumLimitTime&&(a>this.options.momentumLimitDistance||r>this.options.momentumLimitDistance)){var h=!1,c=!1,d=!1,p=!1,u=this.options.bounce;!1!==u&&(h=void 0===u.top||u.top,c=void 0===u.bottom||u.bottom,d=void 0===u.left||u.left,p=void 0===u.right||u.right);var m=-1===this.directionX&&d||1===this.directionX&&p?this.wrapperWidth:0,f=-1===this.directionY&&h||1===this.directionY&&c?this.wrapperHeight:0,v=this.hasHorizontalScroll?_(this.x,this.startX,n,this.maxScrollX,this.minScrollX,m,this.options):{destination:i,duration:0},g=this.hasVerticalScroll?_(this.y,this.startY,n,this.maxScrollY,this.minScrollY,f,this.options):{destination:e,duration:0};i=v.destination,e=g.destination,l=Math.max(v.duration,g.duration),this.isInTransition=!0}else this.options.wheel&&(e=Math.round(e/this.itemHeight)*this.itemHeight,l=this.options.wheel.adjustTime||400);var w=X.swipe;if(this.options.snap){var y=this._nearestSnap(i,e);this.currentPage=y,l=this.options.snapSpeed||Math.max(Math.max(Math.min(Math.abs(i-y.x),1e3),Math.min(Math.abs(e-y.y),1e3)),300),i=y.x,e=y.y,this.directionX=0,this.directionY=0,w=this.options.snap.easing||X.bounce}if(i!==this.x||e!==this.y)return(i>this.minScrollX||i<this.maxScrollX||e>this.minScrollY||e<this.maxScrollY)&&(w=X.swipeBounce),void this.scrollTo(i,e,l,w);this.options.wheel&&(this.selectedIndex=Math.round(Math.abs(this.y/this.itemHeight))),this.trigger(\"scrollEnd\",{x:this.x,y:this.y})}}}},L.prototype._checkClick=function(t){var i,e,o,s,n,r=this.stopFromTransition&&!this.pulling;if(this.stopFromTransition=!1,this.moved)return!1;if(this.options.wheel){if(this.target&&this.target.classList.contains(this.options.wheel.wheelWrapperClass)){var a=Math.abs(Math.round(this.y/this.itemHeight)),l=Math.round((this.pointY+(s=this.wrapper,{left:-((n=s.getBoundingClientRect()).left+window.pageXOffset),top:-(n.top+window.pageYOffset)}).top-this.wrapperHeight/2)/this.itemHeight);this.target=this.items[a+l]}return this.scrollToElement(this.target,this.options.wheel.adjustTime||400,!0,!0,X.swipe),!0}if(r)return!1;var h=this.options.dblclick,c=!1;if(h&&this.lastClickTime){var d=h.delay,p=void 0===d?300:d;b()-this.lastClickTime<p&&(c=!0,D(t,\"dblclick\"))}return this.options.tap&&(i=t,e=this.options.tap,(o=document.createEvent(\"Event\")).initEvent(e,!0,!0),o.pageX=i.pageX,o.pageY=i.pageY,i.target.dispatchEvent(o)),this.options.click&&!Y(t.target,this.options.preventDefaultException)&&D(t),this.lastClickTime=c?null:b(),!0},L.prototype._resize=function(){var t=this;this.enabled&&(o&&(this.wrapper.scrollTop=0),clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(function(){t.refresh()},this.options.resizePolling))},L.prototype._startProbe=function(){z(this.probeTimer),this.probeTimer=I(function t(){var i=e.getComputedPosition();e.trigger(\"scroll\",i),e.isInTransition?e.probeTimer=I(t):e.trigger(\"scrollEnd\",i)});var e=this},L.prototype._transitionTime=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0;if(this.scrollerStyle[x.transitionDuration]=t+\"ms\",this.options.wheel)for(var i=0;i<this.items.length;i++)this.items[i].style[x.transitionDuration]=t+\"ms\";if(this.indicators)for(var e=0;e<this.indicators.length;e++)this.indicators[e].transitionTime(t)},L.prototype._transitionTimingFunction=function(t){if(this.scrollerStyle[x.transitionTimingFunction]=t,this.options.wheel)for(var i=0;i<this.items.length;i++)this.items[i].style[x.transitionTimingFunction]=t;if(this.indicators)for(var e=0;e<this.indicators.length;e++)this.indicators[e].transitionTimingFunction(t)},L.prototype._transitionEnd=function(t){t.target===this.scroller&&this.isInTransition&&(this._transitionTime(),this.pulling&&1!==this.movingDirectionY||this.resetPosition(this.options.bounceTime,X.bounce)||(this.isInTransition=!1,3!==this.options.probeType&&this.trigger(\"scrollEnd\",{x:this.x,y:this.y})))},L.prototype._translate=function(t,i,e){if(function(t){if(!t)throw new Error(\"[BScroll] Translate x or y is null or undefined.\")}(!c(t)&&!c(i)),c(e)&&(e=this.scale),this.options.useTransform?this.scrollerStyle[x.transform]=\"translate(\"+t+\"px,\"+i+\"px) scale(\"+e+\")\"+this.translateZ:(t=Math.round(t),i=Math.round(i),this.scrollerStyle.left=t+\"px\",this.scrollerStyle.top=i+\"px\"),this.options.wheel)for(var o=this.options.wheel.rotate,s=void 0===o?25:o,n=0;n<this.items.length;n++){var r=s*(i/this.itemHeight+n);this.items[n].style[x.transform]=\"rotateX(\"+r+\"deg)\"}if(this.x=t,this.y=i,this.setScale(e),this.indicators)for(var a=0;a<this.indicators.length;a++)this.indicators[a].updatePosition()},L.prototype._animate=function(r,a,l,h){var c=this,d=this.x,p=this.y,u=this.lastScale,m=this.scale,f=b(),v=f+l;this.isAnimating=!0,z(this.animateTimer),function t(){var i=b();if(v<=i)return c.isAnimating=!1,c._translate(r,a,m),c.trigger(\"scroll\",{x:c.x,y:c.y}),void(c.pulling||c.resetPosition(c.options.bounceTime)||c.trigger(\"scrollEnd\",{x:c.x,y:c.y}));var e=h(i=(i-f)/l),o=(r-d)*e+d,s=(a-p)*e+p,n=(m-u)*e+u;c._translate(o,s,n),c.isAnimating&&(c.animateTimer=I(t)),3===c.options.probeType&&c.trigger(\"scroll\",{x:c.x,y:c.y})}()},L.prototype.scrollBy=function(t,i){var e=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0,o=3<arguments.length&&void 0!==arguments[3]?arguments[3]:X.bounce;t=this.x+t,i=this.y+i,this.scrollTo(t,i,e,o)},L.prototype.scrollTo=function(t,i){var e=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0,o=3<arguments.length&&void 0!==arguments[3]?arguments[3]:X.bounce;this.x===t&&this.y===i||(this.isInTransition=this.options.useTransition&&0<e&&(t!==this.x||i!==this.y),!e||this.options.useTransition?(this._transitionTimingFunction(o.style),this._transitionTime(e),this._translate(t,i),e&&3===this.options.probeType&&this._startProbe(),e||(this.trigger(\"scroll\",{x:t,y:i}),this._reflow=document.body.offsetHeight,this.resetPosition(this.options.bounceTime,X.bounce)||this.trigger(\"scrollEnd\",{x:t,y:i})),this.options.wheel&&(i>this.minScrollY?this.selectedIndex=0:i<this.maxScrollY?this.selectedIndex=this.items.length-1:this.selectedIndex=Math.round(Math.abs(i/this.itemHeight)))):this._animate(t,i,e,o.fn))},L.prototype.scrollToElement=function(t,i,e,o,s){if(t&&(t=t.nodeType?t:this.scroller.querySelector(t),!this.options.wheel||t.classList.contains(this.options.wheel.wheelItemClass))){var n=u(t);n.left-=this.wrapperOffset.left,n.top-=this.wrapperOffset.top,!0===e&&(e=Math.round(t.offsetWidth/2-this.wrapper.offsetWidth/2)),!0===o&&(o=Math.round(t.offsetHeight/2-this.wrapper.offsetHeight/2)),n.left-=e||0,n.top-=o||0,n.left=n.left>this.minScrollX?this.minScrollX:n.left<this.maxScrollX?this.maxScrollX:n.left,n.top=n.top>this.minScrollY?this.minScrollY:n.top<this.maxScrollY?this.maxScrollY:n.top,this.options.wheel&&(n.top=Math.round(n.top/this.itemHeight)*this.itemHeight),this.scrollTo(n.left,n.top,i,s)}},L.prototype.resetPosition=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0,i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:X.bounce,e=this.x,o=Math.round(e);!this.hasHorizontalScroll||o>this.minScrollX?e=this.minScrollX:o<this.maxScrollX&&(e=this.maxScrollX);var s=this.y,n=Math.round(s);return!this.hasVerticalScroll||n>this.minScrollY?s=this.minScrollY:n<this.maxScrollY&&(s=this.maxScrollY),(e!==this.x||s!==this.y)&&(this.scrollTo(e,s,t,i),!0)},L.prototype.getComputedPosition=function(){var t=window.getComputedStyle(this.scroller,null),i=void 0,e=void 0;return e=this.options.useTransform?(i=+((t=t[x.transform].split(\")\")[0].split(\", \"))[12]||t[4]),+(t[13]||t[5])):(i=+t.left.replace(/[^-\\d.]/g,\"\"),+t.top.replace(/[^-\\d.]/g,\"\")),{x:i,y:e}},L.prototype.stop=function(){if(this.options.useTransition&&this.isInTransition){this.isInTransition=!1,z(this.probeTimer);var t=this.getComputedPosition();this._translate(t.x,t.y),this.options.wheel?this.target=this.items[Math.round(-t.y/this.itemHeight)]:this.trigger(\"scrollEnd\",{x:this.x,y:this.y}),this.stopFromTransition=!0}else!this.options.useTransition&&this.isAnimating&&(this.isAnimating=!1,z(this.animateTimer),this.trigger(\"scrollEnd\",{x:this.x,y:this.y}),this.stopFromTransition=!0)},L.prototype.destroy=function(){this.destroyed=!0,this.trigger(\"destroy\"),this.options.useTransition?z(this.probeTimer):z(this.animateTimer),this._removeDOMEvents(),this._events={}},(O=C).prototype.on=function(t,i){var e=2<arguments.length&&void 0!==arguments[2]?arguments[2]:this;this._events[t]||(this._events[t]=[]),this._events[t].push([i,e])},O.prototype.once=function(t,i){var e=2<arguments.length&&void 0!==arguments[2]?arguments[2]:this;function o(){this.off(t,o),i.apply(e,arguments)}o.fn=i,this.on(t,o)},O.prototype.off=function(t,i){var e=this._events[t];if(e)for(var o=e.length;o--;)(e[o][0]===i||e[o][0]&&e[o][0].fn===i)&&s(e,o)},O.prototype.trigger=function(t){var i=this._events[t];if(i)for(var e=i.length,o=[].concat(function(t){if(Array.isArray(t)){for(var i=0,e=Array(t.length);i<t.length;i++)e[i]=t[i];return e}return Array.from(t)}(i)),s=0;s<e;s++){var n=o[s],r=h(n,2),a=r[0],l=r[1];a&&a.apply(l,[].slice.call(arguments,1))}},(P=C).prototype.wheelTo=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0;if(this.options.wheel){var i=-t*this.itemHeight;this.scrollTo(0,i)}},P.prototype.getSelectedIndex=function(){return this.options.wheel&&this.selectedIndex},P.prototype._initWheel=function(){var t=this.options.wheel;t.wheelWrapperClass||(t.wheelWrapperClass=\"wheel-scroll\"),t.wheelItemClass||(t.wheelItemClass=\"wheel-item\"),void 0===t.selectedIndex&&(t.selectedIndex=0,W(\"wheel option selectedIndex is required!\"))},(H=C).prototype._initMouseWheel=function(){var t=this;this._handleMouseWheelEvent(d),this.on(\"destroy\",function(){clearTimeout(t.mouseWheelTimer),clearTimeout(t.mouseWheelEndTimer),t._handleMouseWheelEvent(p)}),this.firstWheelOpreation=!0},H.prototype._handleMouseWheelEvent=function(t){t(this.wrapper,\"wheel\",this),t(this.wrapper,\"mousewheel\",this),t(this.wrapper,\"DOMMouseScroll\",this)},H.prototype._onMouseWheel=function(t){var i=this;if(this.enabled){t.preventDefault(),this.options.stopPropagation&&t.stopPropagation(),this.firstWheelOpreation&&this.trigger(\"scrollStart\"),this.firstWheelOpreation=!1;var e=this.options.mouseWheel,o=e.speed,s=void 0===o?20:o,n=e.invert,r=void 0!==n&&n,a=e.easeTime,l=void 0===a?300:a;clearTimeout(this.mouseWheelTimer),this.mouseWheelTimer=setTimeout(function(){i.options.snap||l||i.trigger(\"scrollEnd\",{x:i.x,y:i.y}),i.firstWheelOpreation=!0},400);var h=void 0,c=void 0;switch(!0){case\"deltaX\"in t:c=1===t.deltaMode?(h=-t.deltaX*s,-t.deltaY*s):(h=-t.deltaX,-t.deltaY);break;case\"wheelDeltaX\"in t:h=t.wheelDeltaX/120*s,c=t.wheelDeltaY/120*s;break;case\"wheelDelta\"in t:h=c=t.wheelDelta/120*s;break;case\"detail\"in t:h=c=-t.detail/3*s;break;default:return}var d=r?-1:1;h*=d,c*=d,this.hasVerticalScroll||(h=c,c=0);var p=void 0,u=void 0;if(this.options.snap)return p=this.currentPage.pageX,u=this.currentPage.pageY,0<h?p--:h<0&&p++,0<c?u--:c<0&&u++,void this._goToPage(p,u);p=this.x+Math.round(this.hasHorizontalScroll?h:0),u=this.y+Math.round(this.hasVerticalScroll?c:0),this.movingDirectionX=this.directionX=0<h?-1:h<0?1:0,this.movingDirectionY=this.directionY=0<c?-1:c<0?1:0,p>this.minScrollX?p=this.minScrollX:p<this.maxScrollX&&(p=this.maxScrollX),u>this.minScrollY?u=this.minScrollY:u<this.maxScrollY&&(u=this.maxScrollY);var m=this.y===u;this.scrollTo(p,u,l,X.swipe),this.trigger(\"scroll\",{x:this.x,y:this.y}),clearTimeout(this.mouseWheelEndTimer),m&&(this.mouseWheelEndTimer=setTimeout(function(){i.trigger(\"scrollEnd\",{x:i.x,y:i.y})},l))}},C.Version=\"1.14.1\",C}()}(t={exports:{}},t.exports),t.exports);function i(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},i=this,e=void 0;if(i.extend(t),t.el){if(!(e=S(t.el))||e.bindRolldate)return;e.bindRolldate=1,i.tap(e,function(){i.show()})}if(t.value){t.el&&(\"input\"==e.nodeName.toLowerCase()?e.value=t.value:e.innerText=t.value);var o=t.value.replace(/-/g,\"/\").replace(/[^\\d/:\\s]/g,\"\"),s=new Date(o);s&&\"Invalid Date\"!=s?t.el?e.bindDate=s:i.bindDate=s:console.error(\"Invalid Date:\"+o)}}return i.prototype={constructor:i,baseData:function(){return{domId:{YYYY:\"rolldate-year\",MM:\"rolldate-month\",DD:\"rolldate-day\",hh:\"rolldate-hour\",mm:\"rolldate-min\",ss:\"rolldate-sec\"},opts:{el:\"\",format:\"YYYY-MM-DD\",beginYear:2e3,endYear:2100,init:null,moveEnd:null,confirm:null,cancel:null,minStep:1,trigger:\"tap\",lang:{title:\"选择日期\",cancel:\"取消\",confirm:\"确认\",year:\"年\",month:\"月\",day:\"日\",hour:\"时\",min:\"分\",sec:\"秒\"}}}},extend:function(t){var i=this.baseData().opts;for(var e in i)if(i[e]&&\"[object Object]\"==Object.prototype.toString.call(i[e]))for(var o in t[e])i[e][o]=null==t[e][o]?i[e][o]:t[e][o];else i[e]=t[e]||i[e];this.config=i},createUI:function(){for(var n=this,t=n.baseData(),r=n.config,a=t.domId,l=r.format.split(/-|\\/|\\s|:/g),i=l.length,e=\"\",h=r.el?S(r.el).bindDate||new Date:n.bindDate||new Date,c=r.lang,o=0;o<i;o++){var s=l[o],d=0;if(e+='<div id=\"'+a[s]+'\"><ul class=\"wheel-scroll\">',\"YYYY\"==s)for(var p=r.beginYear;p<=r.endYear;p++)e+='<li class=\"wheel-item '+(p==h.getFullYear()?\"active\":\"\")+'\" data-index=\"'+d+'\">'+p+c.year+\"</li>\",d++;else if(\"MM\"==s)for(var u=1;u<=12;u++)e+='<li class=\"wheel-item '+(u==h.getMonth()+1?\"active\":\"\")+'\" data-index=\"'+d+'\">'+(u<10?\"0\"+u:u)+c.month+\"</li>\",d++;else if(\"DD\"==s)for(var m=n.getMonthlyDay(h.getFullYear(),h.getMonth()+1),f=1;f<=m;f++)e+='<li class=\"wheel-item '+(f==h.getDate()?\"active\":\"\")+'\" data-index=\"'+d+'\">'+(f<10?\"0\"+f:f)+c.day+\"</li>\",d++;else if(\"hh\"==s)for(var v=0;v<=23;v++)e+='<li class=\"wheel-item '+(v==h.getHours()?\"active\":\"\")+'\" data-index=\"'+d+'\">'+(v<10?\"0\"+v:v)+c.hour+\"</li>\",d++;else if(\"mm\"==s)for(var g=0;g<=59;g+=r.minStep)e+='<li class=\"wheel-item '+(g==h.getMinutes()?\"active\":\"\")+'\" data-index=\"'+d+'\">'+(g<10?\"0\"+g:g)+c.min+\"</li>\",d++;else if(\"ss\"==s)for(var w=0;w<=59;w++)e+='<li class=\"wheel-item '+(w==h.getSeconds()?\"active\":\"\")+'\" data-index=\"'+d+'\">'+(w<10?\"0\"+w:w)+c.sec+\"</li>\",d++;e+=\"</ul></div>\"}var y='<div class=\"rolldate-mask\"></div>\\n <div class=\"rolldate-panel\">\\n <header>\\n <span class=\"rolldate-btn rolldate-cancel\">'+c.cancel+\"</span>\\n \"+c.title+'\\n <span class=\"rolldate-btn rolldate-confirm\">'+c.confirm+'</span>\\n </header>\\n <section class=\"rolldate-content\">\\n <div class=\"rolldate-dim mask-top\"></div>\\n <div class=\"rolldate-dim mask-bottom\"></div>\\n <div class=\"rolldate-wrapper\">\\n '+e+\"\\n </div>\\n </section>\\n </div>\",b=document.createElement(\"div\");b.className=\"rolldate-container\",b.innerHTML=y,document.body.appendChild(b),n.scroll={};for(var x=function(t){var i=a[l[t]];n.scroll[l[t]]=new Y(\"#\"+i,{wheel:{selectedIndex:0}});var o=n.scroll[l[t]],e=S(\"#\"+i+\" .active\"),s=e?e.getAttribute(\"data-index\"):Math.round(h.getMinutes()/r.minStep);o.wheelTo(s),o.on(\"scrollEnd\",function(){if(r.moveEnd&&r.moveEnd.call(n,o),-1!=[a.YYYY,a.MM].indexOf(o.wrapper.id)&&n.scroll.YYYY&&n.scroll.MM&&n.scroll.DD){var t=n.getMonthlyDay(n.getSelected(n.scroll.YYYY),n.getSelected(n.scroll.MM)),i=\"\";if(t!=S(\"#\"+a.DD+\" li\",1).length){for(var e=1;e<=t;e++)i+='<li class=\"wheel-item\">'+(e<10?\"0\"+e:e)+c.day+\"</li>\";S(\"#\"+a.DD+\" ul\").innerHTML=i,n.scroll.DD.refresh()}}})},T=0;T<i;T++)x(T);S(\".rolldate-panel\").className=\"rolldate-panel fadeIn\"},tap:function(t,e){if(\"ontouchstart\"in window&&\"tap\"==this.config.trigger){var o={},i=function(t){var i=t.touches[0];o.startX=i.pageX,o.startY=i.pageY,o.sTime=+new Date},s=function(t){var i=t.changedTouches[0];o.endX=i.pageX,o.endY=i.pageY,+new Date-o.sTime<300&&Math.abs(o.endX-o.startX)+Math.abs(o.endY-o.startY)<20&&(t.preventDefault(),e.call(this,t)),o={}};\"function\"==typeof e?(t.addEventListener(\"touchstart\",i),t.addEventListener(\"touchend\",s)):(t.removeEventListener(\"touchstart\",i),t.removeEventListener(\"touchend\",s))}else{var n=function(t){e.call(this,t)};\"function\"==typeof e?t.addEventListener(\"click\",n):t.removeEventListener(\"click\",n)}},show:function(){var t=this.config,i=void 0;if(t.el){if(!(i=S(t.el)).bindRolldate)return;\"input\"==i.nodeName.toLowerCase()&&i.blur()}S(\".rolldate-container\")||t.init&&!1===t.init.call(this)||(this.createUI(),this.event())},hide:function(t){var i=S(\".rolldate-panel.fadeIn\");i&&(i.className=\"rolldate-panel fadeOut\",this.destroy(t))},event:function(){var a=this,t=S(\".rolldate-mask\"),i=S(\".rolldate-cancel\"),e=S(\".rolldate-confirm\");a.tap(t,function(){a.hide(1)}),a.tap(i,function(){a.hide(1)}),a.tap(e,function(){var t=a.config,i=void 0,e=t.format,o=new Date;for(var s in a.scroll){var n=a.getSelected(a.scroll[s]);e=e.replace(s,n),\"YYYY\"==s?o.setFullYear(n):\"MM\"==s?o.setMonth(n-1):\"DD\"==s?o.setDate(n):\"hh\"==s?o.setHours(n):\"mm\"==s?o.setMinutes(n):\"ss\"==s&&o.setSeconds(n)}if(t.confirm){var r=t.confirm.call(a,e);if(!1===r)return!1;r&&(e=r)}t.el?(\"input\"==(i=S(t.el)).nodeName.toLowerCase()?i.value=e:i.innerText=e,i.bindDate=o):a.bindDate=o,a.hide()})},getMonthlyDay:function(t,i){var e=void 0;return 1==i||3==i||5==i||7==i||8==i||10==i||12==i?e=31:4==i||6==i||11==i||9==i?e=30:2==i&&(e=t%4!=0||t%100==0&&t%400!=0?28:29),e},destroy:function(t){var i=this,e=i.config;for(var o in i.scroll)i.scroll[o].destroy();t&&e.cancel&&e.cancel.call(i),i.tap(S(\".rolldate-mask\"),0),i.tap(S(\".rolldate-cancel\"),0),i.tap(S(\".rolldate-confirm\"),0),setTimeout(function(){var t=S(\".rolldate-container\");t&&document.body.removeChild(t),t=null},300)},getSelected:function(t){return S(\"#\"+t.wrapper.id+\" li\",1)[t.getSelectedIndex()].innerText.replace(/\\D/g,\"\")}},i.version=\"3.1.3\",i});\n","/* eslint-disable no-nested-ternary */\nimport { ref, watch, defineComponent, onMounted, Ref } from 'vue';\nimport {\n getDatePickerProps,\n getEditorEmits,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './ibiz-date-picker.scss';\nimport dayjs from 'dayjs';\nimport RollDate from 'rolldate';\nimport { DatePickerEditorController } from '../date-picker-editor.controller';\nimport { IBizCommonRightIcon } from '../../common/right-icon/right-icon';\n\nexport const IBizDatePicker = defineComponent({\n name: 'IBizDatePicker',\n props: getDatePickerProps<DatePickerEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('date-picker');\n const c = props.controller;\n\n const editorModel = c!.model;\n\n // 当前年\n const currentYear = dayjs().year();\n\n // 日期开始年份\n const beginYear = currentYear - 100;\n\n // 日期结束年份\n const endYear = currentYear + 100;\n\n // 分钟按指定数分隔\n const minStep = 1;\n\n // 时间选择器实例\n const rollDateInstance: Ref<IData | null> = ref(null);\n\n // 时间选择器文本\n const lang = {\n title: '选择日期',\n cancel: '取消',\n confirm: '确认',\n year: '年',\n month: '月',\n day: '日',\n hour: '时',\n min: '分',\n sec: '秒',\n };\n\n // 编辑器dom\n const editorRef = ref();\n\n // 组件所需格式化\n const format = ref('YYYY-MM-DD hh:mm:ss');\n\n // 值格式化以模型为主\n const valueFormat = c!.valueFormat;\n if (valueFormat) {\n format.value = valueFormat;\n }\n\n // 格式化后的值\n const formatValue = ref();\n\n watch(\n () => props.value,\n (newVal, oldVal) => {\n // 空值不转换\n if (newVal && newVal !== oldVal) {\n const formatVal = dayjs(newVal).format(valueFormat);\n if (formatVal !== 'Invalid Date') {\n formatValue.value = formatVal;\n } else {\n formatValue.value = newVal;\n }\n }\n },\n { immediate: true },\n );\n\n // 处理值变更\n const onConfirm = (value: string) => {\n emit('change', value);\n };\n\n // 聚焦\n const onFocus = () => {\n emit('focus');\n };\n\n // 失焦\n const onBlur = () => {\n emit('blur');\n };\n\n onMounted(() => {\n const el = editorRef.value;\n if (el) {\n rollDateInstance.value = new RollDate({\n el,\n format: format.value,\n beginYear,\n endYear,\n minStep,\n lang,\n value: formatValue.value,\n confirm: (value: string) => {\n onConfirm(value);\n return value;\n },\n init: () => {\n if (props.disabled || props.readonly) {\n return false;\n }\n },\n });\n }\n });\n\n return {\n ns,\n c,\n editorModel,\n format,\n formatValue,\n onFocus,\n onBlur,\n editorRef,\n };\n },\n render() {\n return (\n <div\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n >\n {this.readonly\n ? this.formatValue\n : [\n <van-field>\n {{\n input: (\n <input\n ref='editorRef'\n type='text'\n value={this.formatValue}\n placeholder={this.c.placeHolder}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n disabled={this.disabled}\n readonly={this.readonly}\n />\n ),\n 'right-icon': <IBizCommonRightIcon></IBizCommonRightIcon>,\n }}\n </van-field>,\n ]}\n </div>\n );\n },\n});\n","import { EditorController } from '@ibiz-template/runtime';\nimport { IDatePicker } from '@ibiz/model-core';\n\n/**\n * 选项框列表编辑器控制器\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 10:57:58\n */\nexport class DatePickerEditorController extends EditorController<IDatePicker> {\n /**\n * 占位\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 14:33:14\n */\n public placeHolder = '请选择日期';\n\n /**\n * 根据编辑器类型获取格式化\n *\n * @author lxm\n * @date 2022-11-03 16:11:21\n * @protected\n * @returns {*} {string}\n */\n getFormatByType(editorType: string | undefined): string {\n switch (editorType) {\n // 时间选择器\n case 'MOBDATE':\n return 'YYYY-MM-DD hh:mm:ss';\n // 时间选择控件\n case 'MOBDATE_SECOND':\n return 'YYYY-MM-DD hh:mm:ss';\n // 时间选择控件_无小时\n case 'MOBDATE_NOTIME':\n return 'YYYY-MM-DD';\n // 时间选择控件_小时\n case 'MOBDATE_HOUR':\n return 'YYYY-MM-DD hh';\n // 时间选择控件_分钟\n case 'MOBDATE_MINUTE':\n return 'YYYY-MM-DD hh:mm';\n // 时间选择控件_无日期\n case 'MOBDATE_NODAY':\n return 'hh:mm:ss';\n // 时间选择控件_无日期无秒钟\n case 'MOBDATE_NODAY_NOSECOND':\n return 'hh:mm';\n default:\n return 'YYYY-MM-DD hh:mm:ss';\n }\n }\n\n /**\n * 值格式化\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 14:33:14\n */\n public valueFormat: string | undefined;\n\n protected async onInit(): Promise<void> {\n super.onInit();\n this.valueFormat = this.getFormatByType(this.model.editorType);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { IDatePicker } from '@ibiz/model-core';\nimport { DatePickerEditorController } from './date-picker-editor.controller';\n\n/**\n * 日期时间选择器编辑器适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class DatePickerEditorProvider\n * @implements {EditorProvider}\n */\nexport class DatePickerEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizDatePicker';\n\n gridEditor: string = 'IBizDatePicker';\n\n async createController(\n editorModel: IDatePicker,\n parentController: IEditorContainerController,\n ): Promise<DatePickerEditorController> {\n const c = new DatePickerEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","import { ref, watch, Ref, defineComponent } from 'vue';\nimport {\n getDataPickerProps,\n getEditorEmits,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport { isEmpty } from 'ramda';\nimport './ibiz-picker.scss';\nimport { debounce } from 'lodash-es';\nimport { PickerEditorController } from '../picker-editor.controller';\n\nexport const IBizPicker = defineComponent({\n name: 'IBizPicker',\n props: getDataPickerProps<PickerEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('picker');\n\n const c: PickerEditorController = props.controller!;\n\n // 当前值\n const curValue: Ref<Array<string> | string | null> = ref('');\n\n // 实体数据集\n const items: Ref<IData[]> = ref([]);\n\n // 是否显示picker\n const showPicker = ref(false);\n\n // 是否显示所有数据\n const isShowAll = ref(true);\n\n // 自动选择Ref\n const pickerAutoCompleteRef = ref();\n\n // 加载中\n const loading: Ref<boolean> = ref(false);\n\n watch(\n () => props.value,\n newVal => {\n if (newVal || newVal === null) {\n curValue.value = newVal as string;\n if (newVal === null) {\n curValue.value = '';\n }\n const value = props.data[c.valueItem];\n const index = items.value.findIndex((item: IData) =>\n Object.is(item[c.keyName], value),\n );\n if (index !== -1) {\n return;\n }\n // items里匹配不到当前值项值时,生成自身的选项\n items.value = [];\n if (!isEmpty(newVal) && !isEmpty(value)) {\n items.value.push({ [c.textName]: newVal, [c.keyName]: value });\n }\n }\n },\n { immediate: true },\n );\n\n // 处理选中数据后的处理逻辑\n const handleDataSelect = async (data: IData) => {\n // 处理回填数据\n const dataItems = await c.calcFillDataItems(data);\n if (dataItems.length) {\n dataItems.forEach(dataItem => {\n emit('change', dataItem.value, dataItem.id);\n });\n }\n\n // 处理值项和本身的值\n if (c.valueItem) {\n emit('change', data[c.keyName], c.valueItem);\n }\n emit('change', data[c.textName]);\n };\n\n // 打开数据选择视图\n const openPickUpView = async (e: MouseEvent) => {\n e.stopPropagation();\n const res = await c.openPickUpView(props.data);\n if (res && res[0]) {\n await handleDataSelect(res[0]);\n }\n };\n\n // 打开数据链接视图\n const openLinkView = async (e: MouseEvent) => {\n e.stopPropagation();\n const res = await c.openLinkView(props.data);\n if (res && res[0]) {\n await handleDataSelect(res[0]);\n }\n };\n\n // 往外抛值\n const onACSelect = async (item: IData) => {\n await handleDataSelect(item);\n isShowAll.value = true;\n };\n\n // 格式化data\n const handleData = (data: IData) => {\n return data.map((item: IData) => {\n return { text: item[c.textName], value: item[c.keyName], ...item };\n });\n };\n\n // 搜索\n const onSearch = async (query?: string, cb?: (_items: IData[]) => void) => {\n if (c.model.appDataEntityId) {\n const trimQuery = query || ''.trim();\n loading.value = true;\n let res;\n try {\n res = await c.getServiceData(trimQuery, props.data);\n if (res) {\n items.value = handleData(res.data as IData[]);\n if (cb && cb instanceof Function) {\n cb(items.value);\n }\n }\n } finally {\n loading.value = false;\n }\n }\n };\n\n let isDebounce = false;\n let awaitSearch: () => void;\n let blurCacheValue: string | undefined;\n // 防抖值变更回调\n const debounceChange = debounce(\n (val: string) => {\n // 拦截掉blur触发后change\n if (blurCacheValue !== val) {\n onSearch(val!);\n }\n blurCacheValue = undefined;\n isDebounce = false;\n if (awaitSearch) {\n awaitSearch();\n }\n },\n 300,\n { leading: true },\n );\n // 值变更\n const handleChange = (evt: IData) => {\n const val = evt.target.value;\n isDebounce = true;\n debounceChange(val);\n };\n\n // 清除\n const onClear = () => {\n // 清空回填数据\n const dataItems = c.dataItems;\n if (dataItems?.length) {\n dataItems.forEach(dataItem => {\n emit('change', null, dataItem.id);\n });\n }\n if (c.valueItem) {\n emit('change', null, c.valueItem);\n }\n emit('change', null);\n };\n\n const closeCircle = (c.linkView ? 1 : 0) + (c.pickupView ? 1 : 0);\n\n // 自动聚焦\n const editorRef = ref();\n if (props.autoFocus) {\n watch(editorRef, newVal => {\n if (newVal) {\n newVal.focus();\n }\n });\n }\n const onFocus = () => {\n emit('focus');\n };\n const onBlur = () => {\n emit('blur');\n };\n\n // 确定\n const onConfirm = ({ selectedOptions }: { selectedOptions: IData[] }) => {\n showPicker.value = false;\n if (Array.isArray(selectedOptions)) {\n handleDataSelect(selectedOptions[0]);\n }\n };\n\n const openPicker = async () => {\n showPicker.value = true;\n onSearch();\n };\n\n return {\n ns,\n c,\n curValue,\n items,\n pickerAutoCompleteRef,\n loading,\n openPickUpView,\n openLinkView,\n onACSelect,\n onSearch,\n editorRef,\n onClear,\n onFocus,\n onBlur,\n closeCircle,\n isDebounce,\n handleChange,\n onConfirm,\n showPicker,\n openPicker,\n };\n },\n render() {\n if (this.readonly) {\n return (\n <div class={(this.ns.b(), this.ns.m('readonly'))}>{this.value}</div>\n );\n }\n return (\n <div class={[this.ns.b(), this.disabled ? this.ns.m('disabled') : '']}>\n <van-field\n ref='editorRef'\n v-model={this.curValue}\n clearable\n placeholder={this.c.placeHolder}\n onClear={this.onClear}\n disabled={this.disabled}\n onClick={() => {\n this.openPicker();\n }}\n >\n {{\n button: () => {\n if (this.$slots.append) {\n return this.$slots.append({});\n }\n if (this.disabled || this.readonly) {\n return null;\n }\n return [\n this.c.model.pickupAppViewId ? (\n <van-button size='small' onClick={this.openPickUpView}>\n <ion-icon name='search'></ion-icon>\n </van-button>\n ) : null,\n this.c.model.linkAppViewId ? (\n <van-button size='small' onClick={this.openLinkView}>\n <ion-icon name='arrow-redo-sharp'></ion-icon>\n </van-button>\n ) : null,\n ];\n },\n }}\n </van-field>\n <van-popup v-model:show={this.showPicker} round position='bottom'>\n <van-picker\n columns={this.items}\n loading={this.loading}\n onCancel={() => {\n this.showPicker = false;\n }}\n onConfirm={this.onConfirm}\n />\n </van-popup>\n </div>\n );\n },\n});\n","import { ref, watch, Ref, defineComponent, computed } from 'vue';\nimport {\n getDataPickerProps,\n getEditorEmits,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './ibiz-mpicker.scss';\nimport { PickerEditorController } from '../picker-editor.controller';\n\nexport const IBizMPicker = defineComponent({\n name: 'IBizMPicker',\n props: getDataPickerProps<PickerEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('mpicker');\n\n const c: PickerEditorController = props.controller!;\n\n // 当前表单项绑定值key的集合\n const curValue: Ref<Array<string>> = ref([]);\n\n // 实体数据集\n const items: Ref<IData[]> = ref([]);\n\n // 选中项key-value键值对\n const selectItems: Ref<IData[]> = ref([]);\n\n // 下拉是否打开\n const open = ref(false);\n\n // 监听传入值\n watch(\n () => props.value,\n newVal => {\n curValue.value = [];\n selectItems.value = [];\n if (newVal) {\n selectItems.value = JSON.parse(newVal as string);\n selectItems.value.forEach((item: IData) => {\n curValue.value.push(item.srfkey);\n\n // 选项没有的时候补充选项\n const index = items.value.findIndex(i =>\n Object.is(i.srfkey, item.srfkey),\n );\n if (index < 0) {\n items.value.push({\n srfkey: item.srfkey,\n srfmajortext: item.srfmajortext,\n });\n }\n });\n }\n },\n { immediate: true, deep: true },\n );\n\n // 处理视图关闭,往外抛值\n const handleOpenViewClose = (result: IData[]) => {\n // 抛出值集合\n const valArr: IData[] = [];\n if (result && Array.isArray(result)) {\n result.forEach((select: IData) => {\n // 回显并且回来的选中值只有srfkey和srfmajortext,所以||\n const formattedItem = {\n srfkey: select[c.keyName] || select.srfkey,\n srfmajortext: select[c.textName] || select.srfmajortext,\n };\n valArr.push(formattedItem);\n\n // 选项不存在的补充到选项里\n const index = items.value.findIndex(item =>\n Object.is(item[c.keyName], select[c.keyName]),\n );\n if (index < 0) {\n items.value.push(formattedItem);\n }\n });\n }\n const value = valArr.length > 0 ? JSON.stringify(valArr) : '';\n emit('change', value);\n };\n\n // 打开数据选择视图\n const openPickUpView = async () => {\n let selectedData;\n if (selectItems.value.length) {\n selectedData = JSON.stringify(selectItems.value);\n }\n const res = await c.openPickUpView(props.data!, selectedData);\n if (res) {\n handleOpenViewClose(res);\n }\n };\n\n // 下拉选中回调\n const onSelect = (selects: string[]) => {\n const valArr: Array<IData> = [];\n if (selects.length > 0) {\n selects.forEach((select: string) => {\n const findItem = items.value.find(item =>\n Object.is(item.srfkey, select),\n );\n if (findItem) {\n valArr.push({\n srfkey: findItem.srfkey,\n srfmajortext: findItem.srfmajortext,\n });\n }\n });\n const value = valArr.length > 0 ? JSON.stringify(valArr) : '';\n emit('change', value);\n } else {\n emit('change', '');\n }\n };\n\n // 搜索\n const onSearch = async (query: string) => {\n if (c.model.appDataEntityId) {\n const trimQuery = query.trim();\n const res = await c.getServiceData(trimQuery, props.data!);\n if (res) {\n items.value = res.data.map(item => ({\n srfkey: item[c.keyName],\n srfmajortext: item[c.textName],\n }));\n }\n }\n };\n\n // 移除标签回调\n const onRemove = (tag: string) => {\n const index = selectItems.value.findIndex((item: IData) =>\n Object.is(item[c.keyName], tag),\n );\n if (index >= 0) {\n selectItems.value.splice(index, 1);\n const val: Array<IData> = [];\n let value: string | Array<IData> | null = null;\n selectItems.value.forEach((select: IData) => {\n if (c.model.valueType === 'OBJECTS') {\n val.push(c.handleObjectParams(select));\n } else if (c.objectIdField) {\n val.push(select[c.keyName]);\n } else {\n val.push({\n [c.keyName]: select[c.keyName],\n [c.textName]: select[c.textName],\n });\n }\n });\n if (val.length > 0) {\n if (c.model.valueType === 'OBJECTS') {\n value = val;\n } else {\n value = c.objectIdField\n ? val.join(c.model.valueSeparator)\n : JSON.stringify(val);\n }\n }\n emit('change', value);\n }\n };\n\n // 下拉打开\n const onOpenChange = (flag: boolean) => {\n open.value = flag;\n if (open.value) {\n items.value = [];\n onSearch('');\n }\n };\n\n // 信息展示,只显示名称。\n const valueText = computed(() => {\n return selectItems.value\n .map(item => {\n return item.srfmajortext;\n })\n .join(',');\n });\n\n // 聚焦\n const onFocus = () => {\n emit('focus');\n };\n\n // 失焦\n const onBlur = () => {\n emit('blur');\n };\n\n return {\n ns,\n c,\n curValue,\n items,\n valueText,\n selectItems,\n onSearch,\n onRemove,\n onOpenChange,\n onSelect,\n openPickUpView,\n onFocus,\n onBlur,\n };\n },\n render() {\n return (\n <div\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n ref='editorRef'\n >\n {this.readonly && this.valueText}\n {!this.readonly && (\n <van-field\n ref='editorRef'\n v-model={this.valueText}\n clearable\n placeholder={this.c.placeHolder}\n disabled={this.disabled}\n >\n {{\n input: () => {\n return this.selectItems.map((item: IData) => {\n return (\n <van-tag\n closeable\n type='primary'\n onClose={() => {\n this.onRemove(item[this.c.keyName]);\n }}\n >\n {item.srfmajortext}\n </van-tag>\n );\n });\n },\n button: () => {\n if (this.$slots.append) {\n return this.$slots.append({});\n }\n if (this.disabled || this.readonly) {\n return null;\n }\n return [\n this.c.model.pickupAppViewId ? (\n <van-button size='small' onClick={this.openPickUpView}>\n <ion-icon name='search'></ion-icon>\n </van-button>\n ) : null,\n ];\n },\n }}\n </van-field>\n )}\n </div>\n );\n },\n});\n","import { defineComponent, ref, Ref, watch, h, resolveComponent } from 'vue';\nimport {\n getDataPickerProps,\n getEditorEmits,\n useFocusAndBlur,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './ibiz-picker-select-view.scss';\nimport { clone } from 'ramda';\nimport { EventBase } from '@ibiz-template/runtime';\nimport { PickerEditorController } from '../picker-editor.controller';\n\nexport const IBizPickerSelectView = defineComponent({\n name: 'IBizPickerSelectView',\n props: getDataPickerProps<PickerEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('picker-select-view');\n\n const c = props.controller!;\n\n const editorModel = c.model;\n\n // 是否单选\n const singleSelect = ref(true);\n if (editorModel.editorParams) {\n if (editorModel.editorParams.multiple) {\n singleSelect.value = !c.toBoolean(editorModel.editorParams.multiple);\n }\n }\n\n // 当前多选框选中值的key集合\n const keySet: Ref<string[]> = ref([]);\n\n // 选中数据\n let selectedData = [];\n\n // 输入框值\n const curValue: Ref<string> = ref('');\n\n // 视图上下文\n const context = ref(clone(c.context));\n\n // 视图参数\n const params = ref(clone(c.params));\n\n // 聚焦失焦事件\n const { componentRef: editorRef } = useFocusAndBlur(\n () => emit('focus'),\n () => emit('blur'),\n );\n\n watch(\n () => props.value,\n newVal => {\n if (singleSelect.value) {\n curValue.value = (newVal as string) || '';\n if (!props.data || !c.valueItem || !props.data[c.valueItem]) {\n ibiz.log.error('值项异常');\n } else {\n selectedData = [\n { srfkey: props.data[c.valueItem], srfmajortext: props.value },\n ];\n params.value.selectedData = selectedData;\n }\n } else {\n keySet.value = [];\n const selectItems: IData[] = [];\n if (newVal) {\n if (!props.data || !c.valueItem || !props.data[c.valueItem]) {\n ibiz.log.error('值项异常');\n } else {\n const tempValue = props.data[c.valueItem].split(',');\n const tempText = (newVal as string).split(',');\n tempValue.forEach((srfkey: string, index: number) => {\n selectItems.push({\n srfmajortext: tempText[index],\n srfkey,\n });\n });\n selectItems.forEach((item: IData) => {\n keySet.value.push(item.srfkey);\n });\n }\n }\n selectedData = selectItems;\n params.value.selectedData = selectedData;\n }\n },\n {\n immediate: false,\n deep: true,\n },\n );\n\n // 清除\n const onClear = () => {\n // 清空回填数据\n const dataItems = c.dataItems;\n if (dataItems?.length) {\n dataItems.forEach(dataItem => {\n emit('change', null, dataItem.id);\n });\n }\n if (c.valueItem) {\n emit('change', null, c.valueItem);\n }\n emit('change', null);\n };\n\n // 视图数据改变\n const onViewDataChange = (event: IData[]) => {\n if (event.length === 0) {\n onClear();\n return;\n }\n if (singleSelect.value) {\n if (c.valueItem) {\n const tempValue = event[0][c.keyName]\n ? event[0][c.keyName]\n : event[0].srfkey;\n emit('change', tempValue, c.valueItem);\n }\n const tempText = event[0][c.textName]\n ? event[0][c.textName]\n : event[0].srfmajortext;\n emit('change', tempText);\n } else {\n let tempValue: string = '';\n let tempText: string = '';\n if (event && Array.isArray(event)) {\n event.forEach((select: IData) => {\n const srfkey = select[c.keyName]\n ? select[c.keyName]\n : select.srfkey;\n tempValue += `${srfkey},`;\n const srfmajortext = select[c.textName]\n ? select[c.textName]\n : select.srfmajortext;\n tempText += `${srfmajortext},`;\n });\n }\n tempValue = tempValue.substring(0, tempValue.length - 1);\n tempText = tempText.substring(0, tempText.length - 1);\n if (c.valueItem) {\n emit('change', tempValue, c.valueItem);\n }\n emit('change', tempText);\n }\n };\n\n const onSelectionChange = (event: EventBase) => {\n onViewDataChange(event.data);\n };\n const height = ref(100);\n const anchors = ref([\n 0,\n 10,\n 100,\n window.innerHeight * 0.2,\n window.innerHeight * 0.3,\n window.innerHeight * 0.4,\n window.innerHeight * 0.5,\n window.innerHeight * 0.6,\n window.innerHeight * 0.7,\n ]);\n const isOpen = ref(false);\n\n const openPicker = async () => {\n if (height.value < 100) {\n height.value = 100;\n }\n isOpen.value = true;\n };\n\n const heightChange = ({ height: _height }: { height: number }) => {\n if (_height < 15) {\n height.value = 0;\n }\n };\n\n const visible = ref(true);\n\n return {\n ns,\n c,\n curValue,\n context,\n params,\n editorRef,\n height,\n isOpen,\n anchors,\n visible,\n onClear,\n onSelectionChange,\n heightChange,\n openPicker,\n };\n },\n render() {\n const viewShell = resolveComponent('IBizViewShell');\n return (\n <div class={[this.ns.b(), this.disabled ? this.ns.m('disabled') : '']}>\n <van-field\n ref='editorRef'\n v-model={this.curValue}\n readonly\n placeholder={this.c.placeHolder}\n disabled={this.disabled}\n onClick={this.openPicker}\n >\n {{\n button: () => {\n if (this.$slots.append) {\n return this.$slots.append({});\n }\n if (this.disabled || this.readonly) {\n return null;\n }\n return [\n this.c.model.pickupAppViewId ? (\n <van-button size='small' onClick={this.openPicker}>\n <ion-icon name='search'></ion-icon>\n </van-button>\n ) : null,\n ];\n },\n }}\n </van-field>\n {this.c.pickupView && this.isOpen ? (\n <van-floating-panel\n v-show={this.visible}\n v-model:height={this.height}\n anchors={this.anchors}\n onHeightChange={this.heightChange}\n >\n <div class={this.ns.b('view')}>\n {h(viewShell, {\n context: this.context,\n params: this.params,\n viewId: this.c.pickupView?.id,\n onSelectionChange: this.onSelectionChange,\n })}\n </div>\n </van-floating-panel>\n ) : null}\n </div>\n );\n },\n});\n","import { IHttpResponse, RuntimeModelError } from '@ibiz-template/core';\nimport {\n EditorController,\n OpenAppViewCommand,\n getDeACMode,\n IViewConfig,\n IModalData,\n} from '@ibiz-template/runtime';\nimport { IAppDEACMode, IDEACModeDataItem, IPicker } from '@ibiz/model-core';\nimport { clone, mergeDeepLeft } from 'ramda';\n\n/**\n * 数据选择编辑器控制器\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 10:57:58\n */\nexport class PickerEditorController extends EditorController<IPicker> {\n /**\n * 是否多选\n */\n public multiple = false;\n\n /**\n *选择视图相关参数\n */\n public pickupView: IViewConfig | null = null;\n\n /**\n *链接视图相关参数\n */\n public linkView: IViewConfig | null = null;\n\n /**\n *值项\n */\n public valueItem = '';\n\n /**\n * 主键属性名称\n */\n public keyName: string = 'srfkey';\n\n /**\n * 主文本属性名称\n */\n public textName: string = 'srfmajortext';\n\n /**\n * 数据集codeName\n */\n public interfaceName: string = '';\n\n /**\n * 自填模式sort排序\n */\n public sort: string | undefined = '';\n\n /**\n * 不支持AC(根据编辑器类型得)\n */\n public noAC: boolean = false;\n\n /**\n * 不支持按钮(根据编辑器类型得)\n */\n public noButton: boolean = false;\n\n /**\n * 实体自填模式模型\n */\n public deACMode: IAppDEACMode | undefined = undefined;\n\n /**\n * 自填数据项集合(已排除了value和text)\n */\n public dataItems: IDEACModeDataItem[] = [];\n\n // 对象标识属性\n public objectIdField: string | undefined = '';\n\n // 对象名称属性\n public objectNameField: string | undefined = '';\n\n // 对象值属性\n public objectValueField: string | undefined = '';\n\n protected async onInit(): Promise<void> {\n super.onInit();\n this.initParams();\n this.valueItem = this.model.valueItemName?.toLowerCase() || '';\n if (this.model.appDataEntityId) {\n if (this.model.appDEDataSetId) {\n this.interfaceName = this.model.appDEDataSetId;\n }\n if (this.model.appDEACModeId) {\n this.deACMode = await getDeACMode(\n this.model.appDEACModeId,\n this.model.appDataEntityId,\n this.context.srfappid,\n );\n if (this.deACMode) {\n // 自填模式相关\n const { minorSortAppDEFieldId, minorSortDir } = this.deACMode;\n if (minorSortAppDEFieldId && minorSortDir) {\n this.sort = `${minorSortAppDEFieldId.toLowerCase()},${minorSortDir.toLowerCase()}`;\n }\n if (this.deACMode.textAppDEFieldId) {\n this.textName = this.deACMode.textAppDEFieldId;\n }\n if (this.deACMode.valueAppDEFieldId) {\n this.keyName = this.deACMode.valueAppDEFieldId;\n }\n if (this.deACMode.deacmodeDataItems) {\n this.dataItems = [];\n this.deACMode.deacmodeDataItems.forEach(\n (dataItem: IDEACModeDataItem) => {\n if (dataItem.id !== 'value' && dataItem.id !== 'text') {\n this.dataItems.push(dataItem);\n }\n },\n );\n }\n }\n }\n }\n // 这三种嵌入选择视图的需要预先加载视图模型用于绘制\n const embedViewEditors = [\n 'PICKEREX_DROPDOWNVIEW',\n 'PICKEREX_DROPDOWNVIEW_LINK',\n 'PICKUPVIEW',\n ];\n if (\n this.model.editorType &&\n embedViewEditors.includes(this.model.editorType)\n ) {\n this.initPickupViewParams();\n }\n this.objectIdField = this.model.objectIdField?.toLowerCase();\n this.objectNameField = this.model.objectNameField?.toLowerCase();\n this.objectValueField = this.model.objectValueField?.toLowerCase();\n }\n\n /**\n * 初始化noAc和noButton\n */\n public initParams(): void {\n switch (this.model.editorType) {\n case 'PICKEREX_NOAC':\n case 'PICKEREX_NOAC_LINK':\n this.noAC = true;\n break;\n case 'PICKEREX_NOBUTTON':\n this.noButton = true;\n break;\n default:\n this.noButton = false;\n this.noAC = false;\n }\n }\n\n /**\n * 初始化选择视图相关参数\n */\n public async initPickupViewParams(): Promise<void> {\n if (this.model.pickupAppViewId) {\n this.pickupView = await ibiz.hub.config.view.get(\n this.model.pickupAppViewId,\n );\n }\n }\n\n /**\n * 初始化链接视图相关参数\n */\n public async initLinkViewParams(): Promise<void> {\n if (this.model.linkAppViewId) {\n this.linkView = await ibiz.hub.config.view.get(this.model.linkAppViewId);\n }\n }\n\n /**\n * 加载实体数据集数据\n *\n * @param {string} query 模糊匹配字符串\n * @param {IData} data 表单数据\n * @returns {*} {Promise<IHttpResponse<IData[]>>}\n * @memberof PickerEditorController\n */\n public async getServiceData(\n query: string,\n data: IData,\n ): Promise<IHttpResponse<IData[]>> {\n const { context, params } = this.handlePublicParams(\n data,\n this.context,\n this.params,\n );\n // 固定参数\n const fixedParams = {};\n if (this.sort && !Object.is(this.sort, '')) {\n Object.assign(fixedParams, { sort: this.sort });\n }\n if (query) {\n Object.assign(fixedParams, { query });\n }\n Object.assign(fixedParams, { size: 1000 });\n // 合并计算出来的参数和固定参数,以计算参数为准\n const tempParams = mergeDeepLeft(params, fixedParams);\n if (this.interfaceName) {\n const app = ibiz.hub.getApp(this.context.srfappid);\n const res = await app.deService.exec(\n this.model.appDataEntityId!,\n this.interfaceName,\n context,\n tempParams,\n );\n return res as IHttpResponse<IData[]>;\n }\n throw new RuntimeModelError(this.model, '请配置实体和实体数据集');\n }\n\n /**\n * 打开数据选择视图\n *\n * @param {IData} data 数据对象\n * @param {IData[]} selectedData 选中项集合\n * @returns {*} {(Promise<IData[] | undefined>)}\n * @memberof PickerEditorController\n */\n public async openPickUpView(\n data: IData,\n selectedData?: string,\n ): Promise<IData[] | undefined> {\n await this.initPickupViewParams();\n const { context, params } = this.handlePublicParams(\n data,\n this.context,\n this.params,\n );\n if (selectedData) {\n params.selectedData = selectedData;\n }\n if (!this.pickupView) {\n throw new RuntimeModelError(this.model, '请配置数据选择视图');\n }\n // 模态打开视图\n const res = await ibiz.commands.execute<IModalData>(\n OpenAppViewCommand.TAG,\n this.pickupView.id,\n context,\n params,\n { openMode: 'POPUPMODAL' },\n );\n if (res && res.ok && res.data) {\n return res.data;\n }\n ibiz.log.debug('模态取消或关闭异常', res);\n }\n\n /**\n * 打开数据链接视图\n */\n public async openLinkView(data: IData): Promise<IData[] | undefined> {\n const tempContext = this.context.clone();\n if (data[this.valueItem]) {\n tempContext.srfkey = data[this.valueItem];\n }\n const { context, params } = this.handlePublicParams(\n data,\n tempContext,\n this.params,\n );\n\n const { linkAppViewId } = this.model;\n if (!linkAppViewId) {\n throw new RuntimeModelError(this.model, '请配置数据链接视图');\n }\n return ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n linkAppViewId,\n context,\n params,\n );\n }\n\n /**\n * 计算回填数据\n *\n * @author lxm\n * @date 2022-10-24 16:10:24\n * @param {IData} data 选中数据\n * @returns {*} {Promise<Array<{ id: string; value: any }>>}\n */\n async calcFillDataItems(\n data: IData,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise<Array<{ id: string; value: any }>> {\n if (this.deACMode) {\n if (this.dataItems.length === 0) {\n return [];\n }\n const result = await Promise.all(\n this.dataItems.map(item => {\n const value = data[item.appDEFieldId!];\n if (item.format) {\n // todo 值格式化\n } else if (item.convertToCodeItemText && item.codeListId) {\n // todo 代码表转换为文本值\n } else if (item.customCode) {\n // todo 脚本代码\n }\n return { id: item.id!, value };\n }),\n );\n return result;\n }\n return [];\n }\n\n /**\n * 处理对象数据类型抛值\n * @param {IData} select\n * @return {*}\n * @author: zhujiamin\n * @Date: 2023-08-22 15:58:56\n */\n handleObjectParams(select: IData): IData {\n const object: IData = {};\n if (this.objectIdField) {\n Object.assign(object, {\n [this.objectIdField]: select[this.keyName],\n });\n }\n if (this.objectNameField) {\n Object.assign(object, {\n [this.objectNameField]: select[this.textName],\n });\n }\n if (this.objectValueField) {\n Object.assign(object, {\n [this.objectValueField]: clone(select),\n });\n }\n return object;\n }\n}\n","import {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { IPicker } from '@ibiz/model-core';\nimport { PickerEditorController } from './picker-editor.controller';\n\n/**\n * 数据选择器编辑器适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class DataPickerEditorProvider\n * @implements {EditorProvider}\n */\nexport class DataPickerEditorProvider implements IEditorProvider {\n formEditor: string;\n\n gridEditor: string;\n\n constructor(editorType: string) {\n let componentName = 'IBizPicker';\n switch (editorType) {\n case 'MOBMPICKER':\n componentName = 'IBizMPicker';\n break;\n case 'MOBPICKER_DROPDOWNVIEW':\n componentName = 'IBizPickerSelectView';\n break;\n default:\n }\n this.formEditor = componentName;\n this.gridEditor = componentName;\n }\n\n async createController(\n editorModel: IPicker,\n parentController: IEditorContainerController,\n ): Promise<PickerEditorController> {\n const c = new PickerEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-param-reassign */\nimport { CoreConst, HttpError } from '@ibiz-template/core';\nimport { getCookie } from 'qx-util';\nimport { computed, ComputedRef, Ref, ref, watch } from 'vue';\nimport { UploadEditorController } from '../upload-editor.controller';\n\n/**\n * Vant的Upload适配逻辑\n *\n * @author lxm\n * @date 2022-11-17 16:11:12\n * @export\n * @param {IParams} props\n * @param {(_value: string | null) => {}} valueChange\n * @param {UploadEditorController} c\n * @returns {*}\n */\nexport function useVanUpload(\n props: IParams,\n valueChange: (_value: string | null) => void,\n c: UploadEditorController,\n): {\n uploadUrl: Ref<string>;\n downloadUrl: Ref<string>;\n headers: Ref<IData>;\n files: Ref<\n {\n id: string;\n name: string;\n url?: string | undefined;\n }[]\n >;\n limit: ComputedRef<1 | 9999>;\n onDownload: (file: IData) => void;\n onError: (...args: IData[]) => never;\n onRemove: (file: IData) => void;\n onSuccess: (response: IData) => void;\n beforeUpload: () => void;\n afterRead: (file: IData | IData[]) => Promise<void>;\n} {\n // 文件列表\n const files: Ref<\n {\n id: string;\n name: string;\n url?: string;\n }[]\n > = ref([]);\n\n // 请求头\n const headers: Ref<IData> = ref({\n Authorization: `Bearer ${getCookie(CoreConst.TOKEN)}`,\n });\n\n // 上传文件路径\n const uploadUrl: Ref<string> = ref('');\n\n // 下载文件路径\n const downloadUrl: Ref<string> = ref('');\n\n // 文件上传缓存对象\n const uploadCache: IData = {\n count: 0,\n cacheFiles: [], // iview上传过程中不能改default-file-list,所以需要缓存\n };\n\n // 值响应式变更\n watch(\n () => props.value,\n newVal => {\n files.value = !newVal ? [] : JSON.parse(newVal);\n },\n { immediate: true },\n );\n\n // data响应式变更基础路径\n watch(\n () => props.data,\n newVal => {\n if (newVal) {\n const urls = c.calcBaseUrl(newVal);\n uploadUrl.value = urls.uploadUrl;\n downloadUrl.value = urls.downloadUrl;\n }\n },\n { immediate: true, deep: true },\n );\n\n watch(\n files,\n newVal => {\n // 变更后且下载基础路径存在时解析\n if (newVal?.length && downloadUrl.value) {\n newVal.forEach((file: IData) => {\n file.url = file.url || downloadUrl.value.replace('%fileId%', file.id);\n });\n }\n },\n { immediate: true },\n );\n\n watch(\n downloadUrl,\n newVal => {\n // 变更后且下载基础路径存在时解析\n if (newVal && files.value.length) {\n files.value.forEach((file: IData) => {\n file.url = downloadUrl.value.replace('%fileId%', file.id);\n });\n }\n },\n { immediate: true },\n );\n\n /**\n * 抛出值变更事件,根据files计算value\n *\n * @author lxm\n * @date 2022-11-17 14:11:54\n */\n const emitValue = () => {\n const _files = [...files.value, ...uploadCache.cacheFiles];\n const value: string | null =\n _files.length > 0\n ? JSON.stringify(_files.map(file => ({ name: file.name, id: file.id })))\n : null;\n uploadCache.cacheFiles = [];\n valueChange(value);\n };\n\n // 上传前回调\n const beforeUpload = () => {\n // 单项的情况直接阻止上传\n if (!c.multiple && files.value.length === 1) {\n return false;\n }\n uploadCache.count += 1;\n return true;\n };\n\n // 上传成功回调\n const onSuccess = (response: IData) => {\n if (!response) {\n return;\n }\n uploadCache.cacheFiles.push({\n name: response.filename,\n id: response.fileid,\n });\n uploadCache.count -= 1;\n\n // 回调都结束后抛出值变更\n if (uploadCache.count === 0) {\n emitValue();\n }\n };\n\n // 上传失败回调\n const onError = (...args: IData[]) => {\n const error = args[0];\n uploadCache.count -= 1;\n throw new HttpError({\n response: { data: JSON.parse(error.message), status: error.status },\n } as any);\n };\n\n // 删除回调\n const onRemove = (file: IData) => {\n if (props.disabled) {\n return;\n }\n const index = files.value.findIndex(item => item.id === file.id);\n if (index !== -1) {\n files.value.splice(index, 1);\n }\n emitValue();\n };\n\n const uploadFile = (file: IData) => {\n console.log(file);\n // 创建一个空对象实例\n const formData = new FormData();\n // 调用append()方法添加数据\n formData.append('file', file.file);\n return new Promise((resolve, reject) => {\n ibiz.net\n .axios({\n url: uploadUrl.value,\n method: 'POST',\n data: formData,\n headers: headers.value,\n })\n .then(res => {\n if (res.status === 200) {\n console.log(88, res);\n onSuccess(res.data);\n resolve(true);\n } else {\n onError(res);\n reject();\n }\n })\n .catch(() => {\n reject();\n });\n });\n };\n\n // 读取成功回调\n const afterRead = async (file: IData | IData[]) => {\n if (file.length && file.length > 0) {\n for (let i = 0; i < file.length; i++) {\n const fi = (file as IData[])[i];\n // eslint-disable-next-line no-await-in-loop\n await uploadFile(fi);\n }\n } else {\n await uploadFile(file);\n }\n };\n\n // 下载文件\n const onDownload = (file: IData) => {\n const url = file.url || downloadUrl.value.replace('%fileId%', file.id);\n c.fileDownload({ url, name: file.name });\n };\n\n // 允许上传文件的最大数量\n const limit = computed(() => {\n return c.multiple ? 9999 : 1;\n });\n\n return {\n uploadUrl,\n downloadUrl,\n headers,\n files,\n limit,\n onDownload,\n onError,\n onRemove,\n onSuccess,\n beforeUpload,\n afterRead,\n };\n}\n","import { defineComponent } from 'vue';\nimport {\n getEditorEmits,\n getUploadProps,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './ibiz-file-upload.scss';\nimport { useVanUpload } from '../use/use-van-upload';\nimport { UploadEditorController } from '../upload-editor.controller';\n\nexport const IBizFileUpload = defineComponent({\n name: 'IBizFileUpload',\n props: getUploadProps<UploadEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('file-upload');\n const c = props.controller;\n\n const {\n uploadUrl,\n headers,\n files,\n onRemove,\n beforeUpload,\n afterRead,\n limit,\n } = useVanUpload(\n props,\n value => {\n emit('change', value);\n },\n c,\n );\n\n return {\n ns,\n c,\n uploadUrl,\n headers,\n files,\n onRemove,\n beforeUpload,\n afterRead,\n limit,\n };\n },\n render() {\n return (\n <div\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n >\n <van-uploader\n modelValue={this.files}\n disabled={this.disabled}\n multiple={this.c.multiple}\n accept={this.c.accept}\n max-count={this.limit}\n before-read={this.beforeUpload}\n after-read={this.afterRead}\n before-delete={this.onRemove}\n >\n {{\n default: () => {\n return (\n <van-button class={this.ns.b('button')}>上传文件</van-button>\n );\n },\n 'preview-cover': (file: IData) => {\n return <div class={this.ns.b('item-cover')}>{file.name}</div>;\n },\n }}\n </van-uploader>\n <div class={this.ns.b('preview')}>\n {this.files.map(item => {\n return (\n <div class={this.ns.b('preview-item')}>\n <div class={this.ns.b('preview-item-img')}>\n <img src={'./assets/img/file.png'} alt='' />\n </div>\n <div class={this.ns.b('preview-item-text')}>{item.name}</div>\n <div class={this.ns.b('preview-item-action')}>\n <van-icon\n name='cross'\n onClick={() => {\n this.onRemove(item);\n }}\n />\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n});\n","/* eslint-disable no-param-reassign */\nimport { defineComponent, ref } from 'vue';\nimport {\n getEditorEmits,\n getUploadProps,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './ibiz-image-upload.scss';\nimport { useVanUpload } from '../use/use-van-upload';\nimport { UploadEditorController } from '../upload-editor.controller';\n\nexport const IBizImageUpload = defineComponent({\n name: 'IBizImageUpload',\n props: getUploadProps<UploadEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('image-upload');\n\n const c = props.controller;\n\n const {\n uploadUrl,\n headers,\n files,\n onRemove,\n beforeUpload,\n afterRead,\n limit,\n onDownload,\n } = useVanUpload(\n props,\n value => {\n emit('change', value);\n },\n c,\n );\n\n const dialogImageUrl = ref<string>('');\n const dialogVisible = ref<boolean>(false);\n\n const onDialogVisibleChange = (value: boolean) => {\n dialogVisible.value = value;\n };\n\n // 预览\n const onPreview = (file: IData) => {\n dialogImageUrl.value = file.url;\n dialogVisible.value = true;\n };\n\n return {\n ns,\n c,\n files,\n limit,\n headers,\n uploadUrl,\n dialogImageUrl,\n dialogVisible,\n beforeUpload,\n onRemove,\n onDialogVisibleChange,\n onPreview,\n afterRead,\n onDownload,\n };\n },\n render() {\n // 编辑态展示\n return (\n <div\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n >\n <van-uploader\n modelValue={this.files}\n disabled={this.disabled}\n multiple={this.c.multiple}\n accept={this.c.accept}\n max-count={this.limit}\n before-read={this.beforeUpload}\n after-read={this.afterRead}\n before-delete={this.onRemove}\n >\n {{\n 'preview-cover': (file: IData) => {\n return (\n <div class={this.ns.b('item-cover')}>\n <img src={file.url}></img>\n </div>\n );\n },\n }}\n </van-uploader>\n </div>\n );\n },\n});\n","/* eslint-disable no-param-reassign */\nimport { defineComponent, ref } from 'vue';\nimport {\n getEditorEmits,\n getUploadProps,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './ibiz-image-select.scss';\nimport { UploadEditorController } from '../upload-editor.controller';\nimport { useVanUpload } from '../use/use-van-upload';\n\nexport const IBizImageSelect = defineComponent({\n name: 'IBizImageSelect',\n props: getUploadProps<UploadEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('image-select');\n\n const c = props.controller;\n\n // 对话框绑定值\n const dialogVisible = ref(false);\n\n // img图片地址\n const dialogImageUrl = ref('');\n\n // svg图片内容\n const svg = ref('');\n\n const { files } = useVanUpload(\n props,\n value => {\n emit('change', value);\n },\n c,\n );\n return {\n ns,\n c,\n files,\n svg,\n dialogImageUrl,\n dialogVisible,\n };\n },\n render() {\n return (\n <div class={[this.ns.b()]}>\n <van-uploader\n modelValue={this.files}\n disabled={this.disabled}\n multiple={false}\n accept={this.c.accept}\n max-count={1}\n deletable={false}\n readonly\n >\n {{\n 'preview-cover': (file: IData) => {\n return (\n <div class={this.ns.b('item-cover')}>\n <img src={file.url}></img>\n </div>\n );\n },\n }}\n </van-uploader>\n </div>\n );\n },\n});\n","import {\n downloadFileFromBlob,\n RuntimeError,\n RuntimeModelError,\n} from '@ibiz-template/core';\nimport { convertNavData, EditorController } from '@ibiz-template/runtime';\nimport { IFileUploader } from '@ibiz/model-core';\nimport qs from 'qs';\n\n/**\n * 文件上传编辑器控制器\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 10:57:58\n */\nexport class UploadEditorController extends EditorController<IFileUploader> {\n /**\n * 是否支持拖拽\n */\n public isDrag: boolean = false;\n\n /**\n * 是否多选\n */\n public multiple: boolean = true;\n\n /**\n * 接受上传的文件类型\n */\n public accept: string = '';\n\n /**\n * 上传参数\n */\n public uploadParams?: IParams;\n\n /**\n * 下载参数\n */\n public exportParams?: IParams;\n\n protected async onInit(): Promise<void> {\n await super.onInit();\n // 图片类型增加图片类型限制\n if (this.model.editorType?.includes('PICTURE')) {\n this.accept = 'image/*';\n }\n\n // 单项的编辑器类型的设置单选\n if (\n ['MOBSINGLEFILEUPLOAD', 'MOBPICTURE', 'MOBPICTURE_RAW'].includes(\n this.model.editorType!,\n )\n ) {\n this.multiple = false;\n }\n if (this.editorParams) {\n const { isDrag, multiple, accept, uploadParams, exportParams } =\n this.editorParams;\n if (isDrag) {\n this.isDrag = Boolean(isDrag);\n }\n if (multiple) {\n this.multiple = Boolean(multiple);\n }\n if (accept) {\n this.accept = accept;\n }\n if (uploadParams) {\n try {\n this.uploadParams = JSON.parse(uploadParams);\n } catch (error) {\n throw new RuntimeModelError(\n uploadParams,\n `配置uploadParams没有按标准JSON格式`,\n );\n }\n }\n if (exportParams) {\n try {\n this.exportParams = JSON.parse(exportParams);\n } catch (error) {\n throw new RuntimeModelError(\n exportParams,\n `配置exportParams没有按标准JSON格式`,\n );\n }\n }\n }\n }\n\n /**\n * 计算文件的上传路径和下载路径\n * 下载路径文件id用%fileId%占位,替换即可\n * 配置编辑器参数uploadParams和exportParams时,会像导航参数一样动态添加对应的参数到url上\n *\n * @author lxm\n * @date 2022-11-17 13:11:43\n * @param {IData} data\n * @returns {*} {{ uploadUrl: string; downloadUrl: string }}\n */\n calcBaseUrl(data: IData): { uploadUrl: string; downloadUrl: string } {\n let uploadUrl = `${ibiz.env.baseUrl}/${ibiz.env.appId}${ibiz.env.uploadFileUrl}`;\n let downloadUrl = `${ibiz.env.baseUrl}/${ibiz.env.appId}${ibiz.env.downloadFileUrl}/%fileId%`;\n let uploadParams: IParams = {};\n let exportParams: IParams = {};\n if (this.uploadParams) {\n uploadParams = convertNavData(\n this.uploadParams,\n this.context,\n this.params,\n data,\n );\n }\n if (this.exportParams) {\n exportParams = convertNavData(\n this.exportParams,\n this.context,\n this.params,\n data,\n );\n }\n uploadUrl += qs.stringify(uploadParams, { addQueryPrefix: true });\n downloadUrl += qs.stringify(exportParams, { addQueryPrefix: true });\n\n return { uploadUrl, downloadUrl };\n }\n\n /**\n * 请求url获取文件流,并用JS触发文件下载\n *\n * @author lxm\n * @date 2022-11-17 14:11:09\n * @param {string} url\n * @param {IData} file\n */\n fileDownload(file: { url: string; name: string }): void {\n // 发送get请求\n ibiz.net\n .request(file.url, {\n method: 'get',\n responseType: 'blob',\n baseURL: '', // 已经有baseURL了,这里无需再写\n })\n .then((response: IData) => {\n if (response.status !== 200) {\n throw new RuntimeError('下载文件失败');\n }\n // 请求成功,后台返回的是一个文件流\n if (!response.data) {\n throw new RuntimeError('文件流数据不存在');\n } else {\n // 获取文件名\n const fileName = file.name;\n downloadFileFromBlob(response.data, fileName);\n }\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { IFileUploader } from '@ibiz/model-core';\nimport { UploadEditorController } from './upload-editor.controller';\n\n/**\n * 文件上传编辑器适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class FileUploaderEditorProvider\n * @implements {EditorProvider}\n */\nexport class FileUploaderEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizFileUpload';\n\n gridEditor: string = 'IBizGridFileUpload';\n\n constructor(editorType: string) {\n let componentName = 'IBizFileUpload';\n switch (editorType) {\n case 'MOBPICTURE':\n case 'MOBPICTURELIST':\n componentName = 'IBizImageUpload';\n break;\n case 'MOBPICTURE_RAW':\n componentName = 'IBizImageSelect';\n break;\n default:\n }\n this.formEditor = componentName;\n }\n\n async createController(\n editorModel: IFileUploader,\n parentController: IEditorContainerController,\n ): Promise<UploadEditorController> {\n const c = new UploadEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","import { defineComponent, Ref, ref, watch } from 'vue';\nimport {\n getEditorEmits,\n getNumberRangeProps,\n useFocusAndBlur,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './ibiz-number-range-picker.scss';\nimport { toNumber } from 'lodash-es';\nimport { NumberRangeEditorController } from '../number-range-editor.controller';\n\nexport const IBizNumberRangePicker = defineComponent({\n name: 'IBizNumberRangePicker',\n props: getNumberRangeProps<NumberRangeEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('number-range-picker');\n\n const c = props.controller;\n\n const editorModel = c.model;\n\n // 最大值\n let max = Infinity;\n // 最小值\n let min = -Infinity;\n // 数值精度\n let precision = 0;\n // 值分割符\n let valueSeparator = '-';\n // 开始占位提示\n let startPlaceHolder = '';\n // 结束占位提示\n let endPlaceHolder = '';\n // 选择范围时的分隔符\n let rangeSeparator = '~';\n if (editorModel.editorParams) {\n if (editorModel.editorParams.maxValue) {\n max = toNumber(editorModel.editorParams.maxValue);\n }\n if (editorModel.editorParams.minValue) {\n min = toNumber(editorModel.editorParams.minValue);\n }\n if (editorModel.editorParams.precision) {\n precision = toNumber(editorModel.editorParams.precision);\n }\n if (editorModel.editorParams.valueSeparator) {\n valueSeparator = editorModel.editorParams.valueSeparator;\n }\n if (editorModel.editorParams.startPlaceHolder) {\n startPlaceHolder = editorModel.editorParams.startPlaceHolder;\n }\n if (editorModel.editorParams.endPlaceHolder) {\n endPlaceHolder = editorModel.editorParams.endPlaceHolder;\n }\n if (editorModel.editorParams.rangeSeparator) {\n rangeSeparator = editorModel.editorParams.rangeSeparator;\n }\n }\n\n // 关系表单项集合\n const refFormItem: Ref<string[]> = ref([]);\n const editorItems = editorModel.editorItems;\n if (editorItems && editorItems.length > 0) {\n const editorItemNames: string[] = editorItems.map(\n (item: IData) => item.id,\n );\n refFormItem.value = editorItemNames;\n }\n\n // 范围最小值\n const minValue = ref<number | null>(null);\n\n // 范围最大值\n const maxValue = ref<number | null>(null);\n\n watch(\n () => props.value,\n (newVal, oldVal) => {\n if (newVal !== oldVal && typeof newVal === 'string') {\n minValue.value = newVal.split(valueSeparator)[0]\n ? Number(newVal.split(valueSeparator)[0])\n : null;\n maxValue.value = newVal.split(valueSeparator)[1]\n ? Number(newVal.split(valueSeparator)[1])\n : null;\n }\n },\n { immediate: true },\n );\n\n // 处理值变化\n const handleChange = (evt: IData, index: number) => {\n const value = evt.target.value;\n if (index === 0) {\n minValue.value = value;\n } else if (index === 1) {\n maxValue.value = value;\n }\n if (minValue.value !== null && maxValue.value !== null) {\n emit('change', [minValue.value, maxValue.value].join(valueSeparator));\n }\n if (refFormItem.value) {\n const valueName = refFormItem.value[index];\n emit('change', value, valueName);\n }\n };\n\n // 聚焦失焦事件\n const { componentRef: editorRef } = useFocusAndBlur(\n () => emit('focus'),\n () => emit('blur'),\n );\n\n return {\n ns,\n c,\n refFormItem,\n minValue,\n maxValue,\n handleChange,\n max,\n min,\n precision,\n valueSeparator,\n startPlaceHolder,\n endPlaceHolder,\n rangeSeparator,\n editorRef,\n };\n },\n render() {\n return (\n <div class={[this.ns.b()]} ref='editorRef'>\n <van-field\n modelValue={this.minValue}\n disabled={this.disabled}\n readonly={this.readonly}\n placeholder={this.startPlaceHolder}\n type='number'\n onInput={(val: IData) => this.handleChange(val, 0)}\n />\n <div class={this.ns.b('separator')}>{this.rangeSeparator}</div>\n <van-field\n type='number'\n modelValue={this.maxValue}\n disabled={this.disabled}\n readonly={this.readonly}\n placeholder={this.endPlaceHolder}\n onInput={(val: IData) => this.handleChange(val, 1)}\n ></van-field>\n </div>\n );\n },\n});\n","import { EditorController } from '@ibiz-template/runtime';\nimport { INumberRange } from '@ibiz/model-core';\n\n/**\n * 数值范围编辑器控制器\n *\n * @export\n * @class NumberRangeEditorController\n * @extends {EditorController}\n */\nexport class NumberRangeEditorController extends EditorController<INumberRange> {}\n","import {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { INumberRange } from '@ibiz/model-core';\nimport { NumberRangeEditorController } from './number-range-editor.controller';\n\n/**\n * 数值范围编辑器适配器\n *\n * @export\n * @class NumberRangeEditorProvider\n * @implements {EditorProvider}\n */\nexport class NumberRangeEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizNumberRangePicker';\n\n gridEditor: string = 'IBizNumberRangePicker';\n\n async createController(\n editorModel: INumberRange,\n parentController: IEditorContainerController,\n ): Promise<NumberRangeEditorController> {\n const c = new NumberRangeEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","/* eslint-disable no-new */\nimport { computed, defineComponent, onMounted, Ref, ref } from 'vue';\nimport {\n getEditorEmits,\n getDateRangeProps,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './ibiz-date-range-picker.scss';\nimport RollDate from 'rolldate';\nimport dayjs from 'dayjs';\nimport { DateRangeEditorController } from '../date-range-editor.controller';\n\nexport const IBizDateRangePicker = defineComponent({\n name: 'IBizDateRangePicker',\n props: getDateRangeProps<DateRangeEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('date-range-picker');\n\n const c = props.controller;\n\n const editorModel = c.model;\n // 当前年\n const currentYear = dayjs().year();\n\n // 日期开始年份\n const beginYear = currentYear - 100;\n\n // 日期结束年份\n const endYear = currentYear + 100;\n\n // 分钟按指定数分隔\n const minStep = 1;\n // 数据\n const items: string[] = [];\n // 时间选择器文本\n const lang = {\n title: '选择日期',\n cancel: '取消',\n confirm: '确认',\n year: '年',\n month: '月',\n day: '日',\n hour: '时',\n min: '分',\n sec: '秒',\n };\n // 值分割符\n let valueSeparator = ';';\n\n // 开始占位提示\n let startPlaceHolder = '';\n // 结束占位提示\n let endPlaceHolder = '';\n // 选择范围时的分隔符\n let rangeSeparator = '~';\n\n // 编辑器dom\n const startEditorRef = ref();\n const endEditorRef = ref();\n\n if (editorModel.editorParams) {\n if (editorModel.editorParams.valueSeparator) {\n valueSeparator = editorModel.editorParams.valueSeparator;\n }\n if (editorModel.editorParams.startPlaceHolder) {\n startPlaceHolder = editorModel.editorParams.startPlaceHolder;\n }\n if (editorModel.editorParams.endPlaceHolder) {\n endPlaceHolder = editorModel.editorParams.endPlaceHolder;\n }\n if (editorModel.editorParams.rangeSeparator) {\n rangeSeparator = editorModel.editorParams.rangeSeparator;\n }\n }\n\n // 格式\n const format = ref('YYYY-MM-DD');\n // 值格式化\n const valueFormat = c!.valueFormat;\n if (valueFormat) {\n format.value = valueFormat;\n }\n\n // 关系表单项集合\n const refFormItem: Ref<string[]> = ref([]);\n const editorItems = editorModel.editorItems;\n if (editorItems && editorItems.length > 0) {\n const editorItemNames: string[] = editorItems.map(\n (item: IData) => item.id,\n );\n refFormItem.value = editorItemNames;\n }\n // 开始时间、结束时间 数组\n const valueArray = computed(() => {\n if (refFormItem.value && refFormItem.value.length > 0) {\n const array = refFormItem.value.map((name: string) => {\n return props.data[name] || '';\n });\n return array;\n }\n if (props.value && typeof props.value === 'string') {\n return props.value.split(valueSeparator);\n }\n return [];\n });\n // 开始值\n const startFormatValue = computed(() => {\n return valueArray.value?.[0] || '';\n });\n\n // 结束值\n const endFormatValue = computed(() => {\n return valueArray.value?.[1] || '';\n });\n\n // 聚焦\n const onFocus = () => {\n emit('focus');\n };\n\n // 失焦\n const onBlur = () => {\n emit('blur');\n };\n\n // 处理值变更\n const onConfirm = (value: string, index: number) => {\n const formatVal = dayjs(value).format(valueFormat);\n if (formatVal !== 'Invalid Date') {\n items[index] = formatVal;\n } else {\n items[index] = value;\n }\n if (items.length === 2) {\n emit('change', items.join(valueSeparator));\n }\n if (refFormItem.value) {\n const valueName = refFormItem.value[index];\n emit('change', value, valueName);\n }\n };\n\n onMounted(() => {\n const rollDateOpt = {\n format: format.value,\n beginYear,\n endYear,\n minStep,\n lang,\n init: () => {\n if (props.disabled || props.readonly) {\n return false;\n }\n },\n };\n const el = startEditorRef.value;\n if (el) {\n new RollDate({\n el,\n value: startFormatValue.value,\n confirm: (value: string) => {\n onConfirm(value, 0);\n return value;\n },\n ...rollDateOpt,\n });\n }\n const el2 = endEditorRef.value;\n if (el2) {\n new RollDate({\n el: el2,\n value: endFormatValue.value,\n confirm: (value: string) => {\n onConfirm(value, 1);\n return value;\n },\n ...rollDateOpt,\n });\n }\n });\n return {\n ns,\n c,\n refFormItem,\n format,\n valueSeparator,\n startPlaceHolder,\n endPlaceHolder,\n rangeSeparator,\n startEditorRef,\n endEditorRef,\n endFormatValue,\n startFormatValue,\n onFocus,\n onBlur,\n };\n },\n render() {\n return (\n <div class={[this.ns.b()]}>\n <van-field>\n {{\n input: (\n <input\n ref='startEditorRef'\n type='text'\n value={this.startFormatValue}\n placeholder={this.startPlaceHolder}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n disabled={this.disabled}\n readonly={this.readonly}\n />\n ),\n }}\n </van-field>\n <div class={this.ns.b('separator')}>{this.rangeSeparator}</div>\n <van-field>\n {{\n input: (\n <input\n ref='endEditorRef'\n type='text'\n value={this.endFormatValue}\n placeholder={this.endPlaceHolder}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n disabled={this.disabled}\n readonly={this.readonly}\n />\n ),\n }}\n </van-field>\n </div>\n );\n },\n});\n","import { EditorController } from '@ibiz-template/runtime';\nimport { IDateRange } from '@ibiz/model-core';\n\n/**\n * 时间范围编辑器控制器\n *\n * @export\n * @class DateRangeEditorController\n * @extends {EditorController}\n */\nexport class DateRangeEditorController extends EditorController<IDateRange> {\n /**\n * 根据编辑器类型获取格式化\n *\n * @author lxm\n * @date 2022-11-03 16:11:21\n * @public\n * @returns {*} {string}\n */\n public getFormatByType(): string {\n switch (this.model.editorType) {\n // 时间范围选择器\n case 'MOBDATERANGE':\n return 'YYYY-MM-DD hh:mm:ss';\n // 时间范围选择器(YYYY-MM-DD)\n case 'MOBDATERANGE_NOTIME':\n return 'YYYY-MM-DD';\n default:\n return 'YYYY-MM-DD hh:mm:ss';\n }\n }\n\n /**\n * 值格式化\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 14:33:14\n */\n public valueFormat: string | undefined;\n\n protected async onInit(): Promise<void> {\n super.onInit();\n this.valueFormat = this.getFormatByType();\n }\n}\n","import {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { IDateRange } from '@ibiz/model-core';\nimport { DateRangeEditorController } from './date-range-editor.controller';\n\n/**\n * 数值范围编辑器适配器\n *\n * @export\n * @class DateRangeEditorProvider\n * @implements {EditorProvider}\n */\nexport class DateRangeEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizDateRangePicker';\n\n gridEditor: string = 'IBizDateRangePicker';\n\n async createController(\n editorModel: IDateRange,\n parentController: IEditorContainerController,\n ): Promise<DateRangeEditorController> {\n const c = new DateRangeEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","import { defineComponent, ref, Ref } from 'vue';\nimport {\n getCascaderProps,\n getEditorEmits,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './ibiz-cascader.scss';\nimport { clone } from 'ramda';\nimport { calcDeCodeNameById } from '@ibiz-template/runtime';\nimport { CascaderEditorController } from '../cascader-editor.controller';\nimport { IBizCommonRightIcon } from '../../common/right-icon/right-icon';\n\nexport const IBizCascader = defineComponent({\n name: 'IBizCascader',\n props: getCascaderProps<CascaderEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('cascader');\n\n const c = props.controller!;\n\n const editorModel = c.model;\n\n // 关系表单项集合\n const valueItems: Ref<IData[]> = ref([]);\n const editorItems = editorModel.editorItems;\n if (editorItems && editorItems.length > 0) {\n const editorItemNames: IData[] = editorItems.map((item: IData) => {\n return {\n name: item.id,\n appDataEntityId: item.appDataEntityId,\n appDEDataSetId: item.appDEDataSetId,\n };\n });\n valueItems.value = editorItemNames;\n }\n\n // 编辑器样式\n let editorStyle = 'default';\n // 连接符\n let separator = '/';\n\n if (editorModel.editorParams) {\n if (editorModel.editorParams.editorStyle) {\n editorStyle = editorModel.editorParams.editorStyle;\n }\n if (editorModel.editorParams.separator) {\n separator = editorModel.editorParams.separator;\n }\n }\n\n // 树数据(用于维护级联选择器默认选中数据)\n const treeData: Ref<IData[]> = ref([]);\n // 数据集\n const items: Ref<IData[]> = ref([]);\n // 选中值\n const selectValue: Ref<string | string[] | string[][] | null> = ref(null);\n // 树选中数据\n const treeSelectData: Ref<IData[]> = ref([]);\n // 值项数据\n const valueItemData: Ref<IData[]> = ref([]);\n // 树默认选中值\n const defaultCheckedKeys: Ref<string[]> = ref([]);\n // 搜索值\n const searchValue = ref('');\n const show = ref(false);\n const onClose = () => {\n show.value = false;\n };\n\n // created处理\n if (valueItems.value && valueItems.value.length > 0) {\n valueItems.value.forEach((valueItem: IData) => {\n valueItemData.value.push({ name: valueItem.name, value: [] });\n });\n }\n\n // 处理查询参数\n const handleQueryParams = async (index: number, value: string) => {\n const context = clone(c.context);\n const params = clone(c.params);\n if (index > 0) {\n const valueItem = valueItems.value[index - 1];\n Object.assign(context, {\n [calcDeCodeNameById(valueItem.appDataEntityId)]: value,\n });\n const appDataEntity = await ibiz.hub.getAppDataEntity(\n valueItem.appDataEntityId,\n )!;\n Object.assign(params, {\n [`n_${appDataEntity.keyAppDEFieldId!.toLowerCase()}_eq`]: value,\n });\n }\n return { context, params };\n };\n\n // 填充树形数据\n const fillTreeData = (node: IData, curNodes: IData[]) => {\n const { tabIndex, value } = node;\n let tempNodes: IData[] = [];\n if (tabIndex === 0) {\n // 已有回显数据\n // handleSelectData();\n if (treeData.value.length > 0) {\n curNodes.forEach((child: IData) => {\n const index = treeData.value.findIndex(\n (_node: IData) => child.value === _node.value,\n );\n if (index > -1) {\n Object.assign(treeData.value[index], child);\n } else {\n treeData.value.push(child);\n tempNodes.push(child);\n }\n });\n } else {\n treeData.value = [...curNodes];\n tempNodes = [...curNodes];\n }\n } else {\n const getTreeData = (nodes: IData[], parentKey: string) => {\n if (nodes && nodes.length > 0) {\n nodes.forEach((_node: IData) => {\n if (_node.value === value) {\n if (_node.children && _node.children.length > 0) {\n curNodes.forEach((childNode: IData) => {\n const index = _node.children.findIndex(\n (child: IData) => child.value === childNode.value,\n );\n if (index > -1) {\n Object.assign(_node.children[index], childNode);\n } else {\n _node.children.push(childNode);\n tempNodes.push(childNode);\n }\n });\n } else {\n _node.children = curNodes;\n tempNodes = curNodes;\n }\n } else {\n getTreeData(_node.children, parentKey);\n }\n });\n }\n };\n getTreeData(treeData.value, value);\n }\n // 在数据回显中,已有选中数据时,树重新load会导致selectValue被清空\n const tempSelectValue = selectValue.value || [];\n setTimeout(() => {\n selectValue.value = tempSelectValue;\n });\n return tempNodes;\n };\n\n // 加载数据\n const loadData = async (node: IData) => {\n const { tabIndex } = node;\n // eslint-disable-next-line no-nested-ternary\n const value = Object.is(editorStyle, 'default')\n ? node.value\n : node.data\n ? node.data.value\n : null;\n const valueItem = valueItems.value[tabIndex];\n try {\n if (valueItem.appDataEntityId && valueItem.appDEDataSetId) {\n const { context, params } = await handleQueryParams(tabIndex, value);\n const app = ibiz.hub.getApp(c.context.srfappid);\n const response = await app.deService.exec(\n valueItem.appDataEntityId,\n valueItem.appDEDataSetId,\n context,\n params,\n );\n if (response && response.status === 200 && response.data.length > 0) {\n const nodes: IData[] = response.data.map(\n (item: IData, index: number) => ({\n ...item,\n value: item.srfkey,\n text: item.srfmajortext ? item.srfmajortext : `标题${index}`,\n nodekey: `${value ? `${value}_${item.srfkey}` : item.srfkey}`,\n children:\n tabIndex === valueItems.value.length - 1 ? undefined : [],\n }),\n );\n nodes.forEach((_node: IData) => {\n const index = items.value.findIndex(\n (item: IData) => _node.value === item.value,\n );\n if (index > -1) {\n items.value[index] = _node;\n } else {\n items.value.push(_node);\n }\n });\n // 级联选择器值回显特殊处理--将懒加载回的数据填充到树型数据中\n if (Object.is(editorStyle, 'default')) {\n fillTreeData(node, nodes);\n }\n }\n }\n } catch (error) {\n console.log(valueItem, '查询数据集失败');\n }\n };\n\n // 处理级联选择器值改变\n const handleCascaderValueChange = ($event: IData) => {\n const { selectedOptions } = $event;\n onClose();\n // 计算值项选中数据\n valueItemData.value.forEach((valueItem: IData) => {\n valueItem.value = [];\n });\n if (selectedOptions?.length) {\n (selectedOptions as IData[]).forEach((item: IData, index: number) => {\n valueItemData.value[index].value.push(item.value);\n });\n }\n // 计算当前选中数据文本\n const curSelectText: string[] = selectedOptions.map(\n (item: IData) => item.text,\n );\n valueItemData.value.forEach((valueItem: IData) => {\n emit(\n 'change',\n valueItem.value.length > 0 ? valueItem.value.join(',') : null,\n valueItem.name,\n );\n });\n\n emit(\n 'change',\n curSelectText.length > 0 ? curSelectText.join(separator) : null,\n );\n };\n\n const onBlur = () => {\n emit('blur');\n };\n\n const onFocus = () => {\n emit('focus');\n };\n\n const openPopup = () => {\n if (props.disabled || props.readonly) {\n return;\n }\n // 首次加载\n if (treeData.value.length === 0) {\n loadData({ tabIndex: 0 });\n }\n show.value = !show.value;\n };\n\n const onChange = ($event: IData) => {\n const tabIndex = $event.tabIndex + 1;\n // 下标和值项数量一致 表示已经选择完成\n if (tabIndex === valueItems.value.length) {\n handleCascaderValueChange($event);\n return;\n }\n loadData({ ...$event, tabIndex });\n };\n\n return {\n ns,\n c,\n valueItems,\n editorStyle,\n separator,\n show,\n treeData,\n items,\n treeSelectData,\n valueItemData,\n defaultCheckedKeys,\n searchValue,\n selectValue,\n onChange,\n onBlur,\n onFocus,\n openPopup,\n onClose,\n loadData,\n handleCascaderValueChange,\n };\n },\n render() {\n return (\n <div\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n >\n <van-field\n v-model={this.value}\n readonly\n disabled={this.disabled}\n placeholder={this.c.placeHolder}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.openPopup}\n >\n {{\n 'right-icon': <IBizCommonRightIcon></IBizCommonRightIcon>,\n }}\n </van-field>\n <van-popup show={this.show} round position='bottom'>\n <van-cascader\n v-model={this.selectValue}\n title={this.c.placeHolder ? this.c.placeHolder : ' '}\n options={this.treeData}\n onClose={this.onClose}\n onChange={this.onChange}\n onFinish={this.handleCascaderValueChange}\n />\n </van-popup>\n </div>\n );\n },\n});\n","import { EditorController } from '@ibiz-template/runtime';\nimport { ICascader } from '@ibiz/model-core';\n\n/**\n * 级联选择器控制器\n * @return {*}\n * @author: zhujiamin\n * @Date: 2022-08-25 10:57:58\n */\nexport class CascaderEditorController extends EditorController<ICascader> {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { ICascader } from '@ibiz/model-core';\nimport { CascaderEditorController } from './cascader-editor.controller';\n\n/**\n * 级联选择器适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class CascaderEditorProvider\n * @implements {EditorProvider}\n */\nexport class CascaderEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizCascader';\n\n gridEditor: string = 'IBizCascader';\n\n async createController(\n editorModel: ICascader,\n parentController: IEditorContainerController,\n ): Promise<CascaderEditorController> {\n const c = new CascaderEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","import { defineComponent, ref, watch } from 'vue';\nimport {\n getEditorEmits,\n getColorPickerProps,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport './ibiz-color-picker.scss';\nimport { ColorPickerEditorController } from '../color-picker-editor.controller';\n\nexport const IBizColorPicker = defineComponent({\n name: 'IBizColorPicker',\n props: getColorPickerProps<ColorPickerEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('color-picker');\n\n const c = props.controller;\n\n const currentVal = ref<string | null>('');\n\n watch(\n () => props.value,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (!newVal) {\n currentVal.value = '';\n } else {\n currentVal.value = newVal;\n }\n }\n },\n { immediate: true },\n );\n\n const handleChange = (e: IData) => {\n if (!e) {\n return;\n }\n const { target } = e;\n if (!target) {\n return;\n }\n const { value } = target;\n emit('change', value);\n };\n\n const inputRef = ref();\n\n // 聚焦\n const onFocus = () => {\n emit('focus');\n };\n\n // 失焦\n const onBlur = () => {\n emit('blur');\n };\n\n return {\n ns,\n c,\n currentVal,\n handleChange,\n inputRef,\n onFocus,\n onBlur,\n };\n },\n render() {\n let content = null;\n if (this.readonly) {\n // 只读显示\n content = `${this.currentVal}`;\n } else {\n // 编辑态显示\n content = [\n <van-field\n class={[this.ns.e('item')]}\n v-model={this.currentVal}\n disabled={this.disabled}\n placeholder={this.c.placeHolder}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n readonly\n ></van-field>,\n <van-field\n class={[this.ns.e('item'), this.ns.e('picker')]}\n v-model={this.currentVal}\n disabled={this.disabled}\n placeholder={this.c.placeHolder}\n onInput={this.handleChange}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n type='color'\n ></van-field>,\n ];\n }\n\n return (\n <div\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n style={{ color: this.currentVal || '' }}\n >\n {content}\n </div>\n );\n },\n});\n","import { EditorController } from '@ibiz-template/runtime';\nimport { ITextBox } from '@ibiz/model-core';\n\n/**\n * 颜色选择器控制器\n *\n * @author zzq\n * @date 2323-8-14 19:42:00\n * @export\n * @class ColorPickerEditorController\n * @extends {EditorController}\n */\nexport class ColorPickerEditorController extends EditorController<ITextBox> {}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { ITextBox } from '@ibiz/model-core';\nimport { ColorPickerEditorController } from './color-picker-editor.controller';\n\n/**\n * 颜色选择器适配器\n *\n * @author zzq\n * @date 2323-8-14 19:42:00\n * @export\n * @class ColorPickerEditorProvider\n * @implements {EditorProvider}\n */\nexport class ColorPickerEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizColorPicker';\n\n gridEditor: string = 'IBizColorPicker';\n\n async createController(\n editorModel: ITextBox,\n parentController: IEditorContainerController,\n ): Promise<ColorPickerEditorController> {\n const c = new ColorPickerEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","import {\n downloadFileFromBlob,\n RuntimeError,\n RuntimeModelError,\n} from '@ibiz-template/core';\nimport { EditorController, convertNavData } from '@ibiz-template/runtime';\nimport { IMarkdown } from '@ibiz/model-core';\nimport qs from 'qs';\n\n/**\n * MarkDown编辑器控制器\n *\n * @export\n * @class MarkDownEditorController\n * @extends {EditorController}\n */\nexport class MarkDownEditorController extends EditorController<IMarkdown> {\n /**\n * 上传参数\n */\n public uploadParams?: IParams;\n\n /**\n * 下载参数\n */\n public exportParams?: IParams;\n\n protected async onInit(): Promise<void> {\n await super.onInit();\n\n if (this.editorParams) {\n const { uploadparams, exportparams } = this.editorParams;\n\n if (uploadparams) {\n try {\n this.uploadParams = JSON.parse(uploadparams);\n } catch (error) {\n throw new RuntimeModelError(\n uploadparams,\n `配置uploadparams没有按标准JSON格式`,\n );\n }\n }\n if (exportparams) {\n try {\n this.exportParams = JSON.parse(exportparams);\n } catch (error) {\n throw new RuntimeModelError(\n exportparams,\n `配置exportparams没有按标准JSON格式`,\n );\n }\n }\n }\n }\n\n /**\n * 计算文件的上传路径和下载路径\n * 下载路径文件id用%fileId%占位,替换即可\n * 配置编辑器参数uploadParams和exportParams时,会像导航参数一样动态添加对应的参数到url上\n *\n * @author lxm\n * @date 2022-11-17 13:11:43\n * @param {IData} data\n * @returns {*} {{ uploadUrl: string; downloadUrl: string }}\n */\n calcBaseUrl(data: IData): { uploadUrl: string; downloadUrl: string } {\n let uploadUrl = `${ibiz.env.baseUrl}/${ibiz.env.appId}${ibiz.env.uploadFileUrl}`;\n let downloadUrl = `${ibiz.env.baseUrl}/${ibiz.env.appId}${ibiz.env.downloadFileUrl}/%fileId%`;\n let uploadParams: IParams = {};\n let exportParams: IParams = {};\n if (this.uploadParams) {\n uploadParams = convertNavData(\n this.uploadParams,\n data,\n this.params,\n this.context,\n );\n }\n if (this.exportParams) {\n exportParams = convertNavData(\n this.exportParams,\n data,\n this.params,\n this.context,\n );\n }\n uploadUrl += qs.stringify(uploadParams, { addQueryPrefix: true });\n downloadUrl += qs.stringify(exportParams, { addQueryPrefix: true });\n\n return { uploadUrl, downloadUrl };\n }\n\n /**\n * 请求url获取文件流,并用JS触发文件下载\n *\n * @author lxm\n * @date 2022-11-17 14:11:09\n * @param {string} url\n * @param {IData} file\n */\n fileDownload(file: { url: string; name: string }): void {\n // 发送get请求\n ibiz.net\n .request(file.url, {\n method: 'get',\n responseType: 'blob',\n baseURL: '', // 已经有baseURL了,这里无需再写\n })\n .then((response: IData) => {\n if (response.status !== 200) {\n throw new RuntimeError('下载文件失败');\n }\n // 请求成功,后台返回的是一个文件流\n if (!response.data) {\n throw new RuntimeError('文件流数据不存在');\n } else {\n // 获取文件名\n const fileName = file.name;\n downloadFileFromBlob(response.data, fileName);\n }\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n IEditorContainerController,\n IEditorProvider,\n} from '@ibiz-template/runtime';\nimport { IMarkdown } from '@ibiz/model-core';\nimport { MarkDownEditorController } from './markdown-editor.controller';\n\n/**\n * 代码框编辑器适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class MarkDownEditorProvider\n * @implements {EditorProvider}\n */\nexport class MarkDownEditorProvider implements IEditorProvider {\n formEditor: string = 'IBizMarkDown';\n\n gridEditor: string = 'IBizMarkDown';\n\n async createController(\n editorModel: IMarkdown,\n parentController: IEditorContainerController,\n ): Promise<MarkDownEditorController> {\n const c = new MarkDownEditorController(editorModel, parentController);\n await c.init();\n return c;\n }\n}\n","import {\n defineComponent,\n nextTick,\n onMounted,\n onUnmounted,\n Ref,\n ref,\n watch,\n} from 'vue';\nimport {\n getMarkDownProps,\n getEditorEmits,\n useUIStore,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport { getCookie, createUUID } from 'qx-util';\nimport Cherry from 'cherry-markdown';\nimport { CoreConst } from '@ibiz-template/core';\nimport { MarkDownEditorController } from '../markdown-editor.controller';\nimport './ibiz-markdown-editor.scss';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst IBizMarkDown: any = defineComponent({\n name: 'IBizMarkDown',\n props: getMarkDownProps<MarkDownEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('markdown');\n\n const c = props.controller!;\n\n const currentVal = ref<string>('');\n\n const editor = ref<Cherry | null>(null);\n const editorPreview = ref<Cherry | null>(null);\n\n const id = createUUID();\n const previewId = createUUID();\n\n // 请求头\n const headers: Ref<IData> = ref({\n Authorization: `Bearer ${getCookie(CoreConst.TOKEN)}`,\n });\n\n // 上传文件路径\n const uploadUrl: Ref<string> = ref('');\n\n // 下载文件路径\n const downloadUrl: Ref<string> = ref('');\n\n // 编辑器主题\n const { UIStore } = useUIStore();\n const theme = ref(UIStore.theme);\n\n // 编辑器模式\n const defaultModel = ref('editOnly');\n\n // 样式变量\n const cssVars = ref({});\n\n // data响应式变更基础路径\n watch(\n () => props.data,\n newVal => {\n if (newVal) {\n const urls = c.calcBaseUrl(newVal);\n uploadUrl.value = urls.uploadUrl;\n downloadUrl.value = urls.downloadUrl;\n }\n },\n { immediate: true, deep: true },\n );\n\n // // 自定义图片上传\n const fileUpload = (file: Blob, callback: (_url: string) => void) => {\n const formData = new FormData();\n formData.append('file', file);\n ibiz.net\n .axios({\n url: uploadUrl.value,\n method: 'post',\n headers: headers.value,\n data: formData,\n })\n .then((res: IData) => {\n if (res.status === 200 && res.data.fileid) {\n const url = downloadUrl.value.replace('%fileId%', res.data.fileid);\n callback(url);\n }\n })\n .catch(error => {\n ibiz.log.error('上传出错', error);\n });\n };\n\n // 获取渲染后html内容\n const getCherryHtml = () => {\n const result = editor.value?.getHtml();\n return result;\n };\n\n // 获取markdown内容\n const getCherryContent = () => {\n const result = editor.value?.getMarkdown();\n return result;\n };\n\n // 设置markdown内容\n const setCherryContent = (val: string) => {\n editor.value?.setMarkdown(val, false);\n editorPreview.value?.setMarkdown(val, false);\n };\n const setCherryContent2 = (val: string) => {\n editorPreview.value?.setMarkdown(val, true);\n };\n watch(\n () => props.value,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (!newVal) {\n currentVal.value = '';\n } else {\n currentVal.value = newVal;\n }\n }\n },\n { immediate: true },\n );\n\n watch(currentVal, (newVal, oldVal) => {\n const content = getCherryContent();\n if (newVal !== oldVal && content !== newVal) {\n setCherryContent(newVal);\n }\n });\n\n // 变更事件回调\n const afterChange = (_e: IData) => {\n setCherryContent2(getCherryContent()!);\n emit('change', getCherryContent());\n };\n\n // 图片加载回调\n const beforeImageMounted = (e: string, src: string) => {\n return { [e]: src };\n };\n\n const editorOpts = {\n value: currentVal.value,\n theme: theme.value,\n fileUpload,\n emoji: {\n useUnicode: true,\n },\n header: {\n anchorStyle: 'autonumber',\n },\n editor: {\n // 编辑器的高度,默认100%,如果挂载点存在内联设置的height则以内联样式为主\n height: '100%',\n // defaultModel 编辑器初始化后的默认模式,一共有三种模式:1、双栏编辑预览模式;2、纯编辑模式;3、预览模式\n // edit&preview: 双栏编辑预览模式\n // editOnly: 纯编辑模式(没有预览,可通过toolbar切换成双栏或预览模式)\n // previewOnly: 预览模式(没有编辑框,toolbar只显示“返回编辑”按钮,可通过toolbar切换成编辑模式)\n defaultModel: defaultModel.value,\n codemirror: {\n // 是否自动focus 默认为true\n autofocus: false,\n },\n },\n toolbars: {\n theme: theme.value,\n toolbar: [\n 'switchModel',\n 'bold',\n 'italic',\n 'strikethrough',\n 'header',\n // 'list',\n {\n insert: [\n 'image',\n 'audio',\n 'video',\n 'link',\n 'hr',\n 'br',\n 'code',\n 'formula',\n 'toc',\n 'table',\n 'pdf',\n 'word',\n ],\n },\n 'settings',\n ],\n },\n };\n\n const editorInit = () => {\n const cherryOptions = {\n id,\n ...editorOpts,\n callback: {\n afterChange,\n beforeImageMounted,\n },\n value: currentVal.value,\n };\n nextTick(() => {\n editor.value = new Cherry(cherryOptions as IData);\n });\n };\n const editorPreviewInit = () => {\n const cherryOptions = {\n id: previewId,\n ...editorOpts,\n editor: { defaultModel: 'previewOnly' },\n };\n nextTick(() => {\n editorPreview.value = new Cherry(cherryOptions as IData);\n });\n };\n\n onMounted(() => {\n editorPreviewInit();\n });\n\n watch(\n () => UIStore.theme,\n newVal => {\n theme.value = newVal;\n editor.value?.setTheme(theme.value);\n },\n );\n\n onUnmounted(() => {\n editor.value = null;\n editorPreview.value = null;\n });\n const isOpen = ref(false);\n\n const openPicker = async () => {\n if (props.disabled || props.readonly) {\n return;\n }\n isOpen.value = true;\n if (!editor.value) {\n editorInit();\n }\n };\n return {\n ns,\n currentVal,\n id,\n previewId,\n editor,\n headers,\n theme,\n defaultModel,\n cssVars,\n getCherryHtml,\n getCherryContent,\n setCherryContent,\n openPicker,\n isOpen,\n };\n },\n render() {\n return (\n <div class={[this.ns.b(), this.ns.is('disabled', this.disabled)]}>\n <van-field readonly disabled={this.disabled} onClick={this.openPicker}>\n {{\n input: (\n <div\n id={this.previewId}\n style={this.cssVars}\n class={this.ns.b('cherry')}\n ></div>\n ),\n }}\n </van-field>\n\n <van-dialog v-model:show={this.isOpen} className={this.ns.b('dialog')}>\n <div\n id={this.id}\n style={this.cssVars}\n class={this.ns.b('cherry')}\n ></div>\n </van-dialog>\n </div>\n );\n },\n});\n\nexport default IBizMarkDown;\n","import { registerEditorProvider } from '@ibiz-template/runtime';\nimport { App } from 'vue';\nimport { NotSupportedEditor } from './not-supported-editor/not-supported-editor';\nimport { IBizSpan, SpanEditorProvider } from './span';\nimport { IBizInput, IBizInputNumber, TextBoxEditorProvider } from './text-box';\nimport { IBizDropdown, DropDownListEditorProvider } from './dropdown-list';\nimport { IBizCheckboxList, CheckBoxListEditorProvider } from './check-box-list';\nimport { IBizSwitch, SwitchEditorProvider } from './switch';\nimport { IBizRadio, RadioButtonListEditorProvider } from './radio-button-list';\nimport { IBizSlider, SliderEditorProvider } from './slider';\nimport { IBizStepper, StepperEditorProvider } from './stepper';\nimport { IBizRate, RateEditorProvider } from './rate';\nimport { IBizDatePicker, DatePickerEditorProvider } from './date-picker';\nimport {\n IBizPicker,\n DataPickerEditorProvider,\n IBizMPicker,\n IBizPickerSelectView,\n} from './data-picker';\nimport {\n IBizFileUpload,\n IBizImageSelect,\n IBizImageUpload,\n FileUploaderEditorProvider,\n} from './upload';\nimport {\n IBizNumberRangePicker,\n NumberRangeEditorProvider,\n} from './number-range';\nimport { DateRangeEditorProvider, IBizDateRangePicker } from './date-range';\nimport { IBizCascader, CascaderEditorProvider } from './cascader';\nimport { ColorPickerEditorProvider, IBizColorPicker } from './color-picker';\nimport { MarkDownEditorProvider } from './markdown';\nimport IBizMarkDown from './markdown/ibiz-markdown-editor/ibiz-markdown-editor';\n\nexport const IBizEditor = {\n install: (v: App): void => {\n // 组件注册\n v.component(NotSupportedEditor.name, NotSupportedEditor);\n v.component(IBizInput.name, IBizInput);\n v.component(IBizInputNumber.name, IBizInputNumber);\n v.component(IBizSpan.name, IBizSpan);\n v.component(IBizSwitch.name, IBizSwitch);\n v.component(IBizRadio.name, IBizRadio);\n v.component(IBizDropdown.name, IBizDropdown);\n v.component(IBizCheckboxList.name, IBizCheckboxList);\n v.component(IBizSlider.name, IBizSlider);\n v.component(IBizStepper.name, IBizStepper);\n v.component(IBizRate.name, IBizRate);\n v.component(IBizDatePicker.name, IBizDatePicker);\n v.component(IBizPicker.name, IBizPicker);\n v.component(IBizMPicker.name, IBizMPicker);\n v.component(IBizFileUpload.name, IBizFileUpload);\n v.component(IBizImageSelect.name, IBizImageSelect);\n v.component(IBizImageUpload.name, IBizImageUpload);\n v.component(IBizNumberRangePicker.name, IBizNumberRangePicker);\n v.component(IBizDateRangePicker.name, IBizDateRangePicker);\n v.component(IBizCascader.name, IBizCascader);\n v.component(IBizColorPicker.name, IBizColorPicker);\n v.component(IBizPickerSelectView.name, IBizPickerSelectView);\n v.component(IBizMarkDown.name, IBizMarkDown);\n\n // 标签\n registerEditorProvider('SPAN', () => new SpanEditorProvider());\n\n // 文本框\n const textBoxEditorProvider = new TextBoxEditorProvider();\n registerEditorProvider('MOBTEXT', () => textBoxEditorProvider);\n\n registerEditorProvider('MOBPASSWORD', () => textBoxEditorProvider);\n registerEditorProvider('MOBTEXTAREA', () => textBoxEditorProvider);\n registerEditorProvider(\n 'MOBNUMBER',\n () => new TextBoxEditorProvider('NUMBER'),\n );\n\n // 下拉列表框\n registerEditorProvider(\n 'MOBDROPDOWNLIST',\n () => new DropDownListEditorProvider(),\n );\n\n // 下拉列表框多选(复选框)\n registerEditorProvider(\n 'MOBCHECKLIST',\n () => new CheckBoxListEditorProvider(),\n );\n\n // 开关\n registerEditorProvider('MOBSWITCH', () => new SwitchEditorProvider());\n registerEditorProvider('MOBCASCADER', () => new CascaderEditorProvider());\n\n // 颜色选择器\n registerEditorProvider(\n 'MOBCOLORPICKER',\n () => new ColorPickerEditorProvider(),\n );\n\n // 滑动输入条\n registerEditorProvider('MOBSLIDER', () => new SliderEditorProvider());\n\n // 步进器\n registerEditorProvider('MOBSTEPPER', () => new StepperEditorProvider());\n\n // 评分器\n registerEditorProvider('MOBRATING', () => new RateEditorProvider());\n // 评分器\n registerEditorProvider('MOBMARKDOWN', () => new MarkDownEditorProvider());\n\n // 单选框列表\n registerEditorProvider(\n 'MOBRADIOLIST',\n () => new RadioButtonListEditorProvider(),\n );\n\n // 日期选择器\n const datePickerProvider = new DatePickerEditorProvider();\n registerEditorProvider('MOBDATE', () => datePickerProvider);\n registerEditorProvider('MOBDATE_HOUR', () => datePickerProvider);\n registerEditorProvider('MOBDATE_MINUTE', () => datePickerProvider);\n registerEditorProvider('MOBDATE_NODAY', () => datePickerProvider);\n registerEditorProvider('MOBDATE_NODAY_NOSECOND', () => datePickerProvider);\n registerEditorProvider('MOBDATE_NOTIME', () => datePickerProvider);\n registerEditorProvider('MOBDATE_SECOND', () => datePickerProvider);\n\n // 数据选择类\n registerEditorProvider(\n 'MOBPICKER',\n () => new DataPickerEditorProvider('MOBPICKER'),\n );\n registerEditorProvider(\n 'MOBMPICKER',\n () => new DataPickerEditorProvider('MOBMPICKER'),\n );\n registerEditorProvider(\n 'MOBPICKER_DROPDOWNVIEW',\n () => new DataPickerEditorProvider('MOBPICKER_DROPDOWNVIEW'),\n );\n\n // 文件上传\n registerEditorProvider(\n 'MOBSINGLEFILEUPLOAD',\n () => new FileUploaderEditorProvider('MOBSINGLEFILEUPLOAD'),\n );\n registerEditorProvider(\n 'MOBMULTIFILEUPLOAD',\n () => new FileUploaderEditorProvider('MOBMULTIFILEUPLOAD'),\n );\n // 图片上传\n registerEditorProvider(\n 'MOBPICTURE',\n () => new FileUploaderEditorProvider('MOBPICTURE'),\n );\n registerEditorProvider(\n 'MOBPICTURELIST',\n () => new FileUploaderEditorProvider('MOBPICTURELIST'),\n );\n registerEditorProvider(\n 'MOBPICTURE_RAW',\n () => new FileUploaderEditorProvider('MOBPICTURE_RAW'),\n );\n // 数值范围\n registerEditorProvider(\n 'MOBNUMBERRANGE',\n () => new NumberRangeEditorProvider(),\n );\n // 时间范围\n registerEditorProvider('MOBDATERANGE', () => new DateRangeEditorProvider());\n registerEditorProvider(\n 'MOBDATERANGE_NOTIME',\n () => new DateRangeEditorProvider(),\n );\n },\n};\n\nexport default IBizEditor;\n","import { createI18n } from 'vue-i18n';\nimport { I18n } from '@ibiz-template/core';\n\nconst i18n = createI18n({\n legacy: false,\n locale: 'zh-CN',\n});\n\nexport class IBizI18n implements I18n {\n protected html: HTMLElement;\n\n protected defaultLang: string;\n\n protected langMap: Map<string, () => Promise<IData>> = new Map();\n\n constructor() {\n this.defaultLang = 'zh-CN';\n this.html = document.querySelector('html')!;\n const lang =\n localStorage.getItem('language') ||\n navigator.language ||\n this.defaultLang;\n i18n.global.locale.value = lang;\n this.html.setAttribute('lang', lang);\n // 设置默认支持的多语言\n this.langMap.set('en', () => import('./en/index'));\n this.langMap.set('zh-CN', () => import('./zh-CN/index'));\n }\n\n /**\n * 初始化加载默认多语言文件\n *\n * @author chitanda\n * @date 2023-08-24 17:08:04\n * @return {*} {Promise<void>}\n */\n async init(): Promise<void> {\n const lang = i18n.global.locale.value;\n let p: () => Promise<IData>;\n if (this.langMap.has(lang)) {\n p = this.langMap.get(lang)!;\n } else {\n p = this.langMap.get(this.defaultLang)!;\n }\n const module = await p();\n i18n.global.setLocaleMessage(i18n.global.locale.value, module.default);\n }\n\n /**\n * 设置异步加载的多语言模块\n *\n * @author chitanda\n * @date 2023-08-24 23:08:01\n * @param {Record<string, () => Promise<IData>>} languages\n */\n setLangConfigs(languages: Record<string, () => Promise<IData>>): void {\n const keys = Object.keys(languages);\n keys.forEach(key => {\n this.langMap.set(key, languages[key]);\n });\n }\n\n /**\n * 设置\n *\n * @author chitanda\n * @date 2023-08-24 16:08:42\n * @param {string} lang\n */\n setLang(lang: string): void {\n ibiz.confirm\n .warning({\n title: '提示',\n desc: '切换语言需要刷新页面,确认切换?',\n })\n .then(() => {\n localStorage.setItem('language', lang);\n window.location.reload();\n });\n }\n\n getLang(): string {\n return this.html.getAttribute('lang') || this.defaultLang;\n }\n\n t(tag: string, options?: IParams | undefined): string;\n\n t(tag: string, defaultMsg?: string | undefined, options?: IParams): string;\n\n t(tag: unknown, defaultMsg?: unknown, options?: unknown): string {\n return i18n!.global.t(\n tag as string,\n defaultMsg as string,\n options as IParams,\n );\n }\n}\n\nconst iBizI18n = new IBizI18n();\n\nexport { i18n, iBizI18n };\n","import {\n useMobCtx,\n useNamespace,\n PanelContainerController,\n} from '@ibiz-template/vue3-util';\nimport { IPanelContainer } from '@ibiz/model-core';\nimport { Component, PropType, defineComponent, ref, computed } from 'vue';\nimport { SysUIActionTag } from '@ibiz-template/runtime';\nimport { useRoute } from 'vue-router';\nimport './view-content-panel-container.scss';\n\nexport const ViewContentPanelContainer: Component = defineComponent({\n name: 'IBizViewContentPanelContainer',\n props: {\n modelData: {\n type: Object as PropType<IPanelContainer>,\n required: true,\n },\n controller: {\n type: PanelContainerController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('view-content');\n\n const isRefreshing = ref(false);\n\n const ctx = useMobCtx();\n const { view } = ctx;\n const viewModel = view.model;\n const route = useRoute();\n\n let isScrollable = false;\n // 嵌入视图不出\n if (view.modal.viewUsage === 4) {\n isScrollable = false;\n } else if (view.modal.viewUsage === 1) {\n // 路由视图得判断是否是首页视图下的视图 或者是 home页下的\n if (\n (view.modal.routeDepth === 1 &&\n view.model.viewType !== 'APPINDEXVIEW') ||\n (view.modal.routeDepth === 2 &&\n (view.parentView?.model?.viewType === 'APPINDEXVIEW' ||\n route.meta.home))\n ) {\n isScrollable = true;\n }\n // 模态视图直接出滚动条\n } else if (view.modal.viewUsage === 2) {\n isScrollable = true;\n }\n\n // 调用预置的界面行为刷新界面\n const refresh = async () => {\n try {\n isRefreshing.value = true;\n await view.call(SysUIActionTag.REFRESH);\n } finally {\n isRefreshing.value = false;\n }\n };\n const { id } = props.modelData;\n const classArr = computed(() => {\n let result: Array<string | false> = [ns.b(), ns.m(id)];\n result = [\n ...result,\n ...props.controller.containerClass,\n // 只有这个scroll 样式才出滚动条\n ns.is('scroll', isScrollable),\n ns.is('hidden', !props.controller.state.visible),\n ];\n return result;\n });\n return {\n ns,\n viewModel,\n isRefreshing,\n isScrollable,\n classArr,\n refresh,\n };\n },\n render() {\n // 内容区默认插槽处理,封装app-col\n const defaultSlots = this.$slots.default?.() || [];\n const content = (\n <iBizRow class={this.classArr} layout={this.modelData.layout}>\n {this.isScrollable && <van-back-top />}\n {defaultSlots.map((slot: { props: IData }) => {\n const props = slot.props as IData;\n if (!props || !props.controller) {\n return slot;\n }\n return (\n <iBizCol\n layoutPos={props.modelData.layoutPos}\n state={props.controller.state}\n >\n {slot}\n </iBizCol>\n );\n })}\n </iBizRow>\n );\n if (this.viewModel.enablePullDownRefresh === true) {\n return (\n <van-pull-refresh\n class={this.ns.b('refresh')}\n v-model={this.isRefreshing}\n onRefresh={this.refresh}\n >\n {content}\n </van-pull-refresh>\n );\n }\n return content;\n },\n});\n","import {\n IPanelItemProvider,\n PanelController,\n PanelItemController,\n} from '@ibiz-template/runtime';\nimport { IPanelContainer } from '@ibiz/model-core';\nimport { PanelContainerController } from '@ibiz-template/vue3-util';\n/**\n * 视图内容区适配器\n *\n * @author chitanda\n * @date 2023-06-16 11:06:38\n * @export\n * @class ViewContentPanelContainerProvider\n * @implements {IPanelItemProvider}\n */\nexport class ViewContentPanelContainerProvider implements IPanelItemProvider {\n component: string = 'IBizViewContentPanelContainer';\n\n async createController(\n panelItem: IPanelContainer,\n panel: PanelController,\n parent: PanelItemController | undefined,\n ): Promise<PanelItemController> {\n const c = new PanelContainerController(panelItem, panel, parent);\n await c.init();\n return c;\n }\n}\n","import { App } from 'vue';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { registerPanelItemProvider } from '@ibiz-template/runtime';\nimport { ViewContentPanelContainer } from './view-content-panel-container';\nimport { ViewContentPanelContainerProvider } from './view-content-panel-container.provider';\n\nexport const IBizViewContentPanelContainer = withInstall(\n ViewContentPanelContainer,\n function (v: App) {\n v.component(ViewContentPanelContainer.name!, ViewContentPanelContainer);\n registerPanelItemProvider(\n 'CONTAINER_CONTENT',\n () => new ViewContentPanelContainerProvider(),\n );\n },\n);\n\nexport default IBizViewContentPanelContainer;\n","import { ILoadingUtil } from '@ibiz-template/runtime';\nimport { showLoadingToast } from 'vant';\nimport { ToastWrapperInstance } from 'vant/lib/toast/types';\n\n/**\n * 全局加载动画工具\n *\n * @author chitanda\n * @date 2022-08-17 17:08:44\n * @export\n * @class LoadingUtil\n * @implements {ILoadingUtil}\n */\nexport class LoadingUtil implements ILoadingUtil {\n /**\n * 当前只在触发的全局加载次数\n *\n * @author chitanda\n * @date 2022-08-17 17:08:44\n * @protected\n */\n protected count = 0;\n\n /**\n * 当前在触发的重定向加载动画次数\n *\n * @author chitanda\n * @date 2022-10-08 17:10:02\n * @protected\n */\n protected countRedirect = 0;\n\n /**\n * element plus loading 实例\n *\n * @author chitanda\n * @date 2022-12-29 15:12:26\n * @protected\n */\n protected loading!: ToastWrapperInstance;\n\n /**\n * 显示全局加载动画\n *\n * @author chitanda\n * @date 2022-12-29 15:12:26\n */\n show(): void {\n if (this.count === 0) {\n this.loading = showLoadingToast({\n message: '加载中...',\n forbidClick: true,\n });\n }\n this.count += 1;\n }\n\n /**\n * 隐藏全局加载动画\n *\n * @author chitanda\n * @date 2022-08-17 17:08:11\n */\n hide(): void {\n if (this.count > 0) {\n this.count -= 1;\n }\n if (this.count === 0) {\n if (this.loading) {\n this.loading.close();\n }\n }\n }\n\n /**\n * 显示顶部加载动画\n *\n * @author chitanda\n * @date 2022-10-08 16:10:01\n */\n showRedirect(): void {\n this.show();\n }\n\n /**\n * 隐藏顶部加载动画\n *\n * @author chitanda\n * @date 2022-10-08 16:10:09\n */\n hideRedirect(): void {\n this.hide();\n }\n}\n","import { IMessageUtil } from '@ibiz-template/runtime';\nimport { showFailToast, showSuccessToast, showToast } from 'vant';\n\n/**\n * 消息通知\n *\n * @author chitanda\n * @date 2022-08-17 16:08:24\n * @export\n * @class MessageUtil\n * @implements {IMessageUtil}\n */\nexport class MessageUtil implements IMessageUtil {\n info(msg: string, duration?: number, closable?: boolean): void {\n showToast({\n message: msg,\n duration: duration != null ? duration * 1000 : 1500,\n closeOnClick: closable,\n });\n }\n\n success(msg: string, duration?: number, closable?: boolean): void {\n showSuccessToast({\n message: msg,\n duration: duration != null ? duration * 1000 : 1500,\n closeOnClick: closable,\n });\n }\n\n warning(msg: string, duration?: number, closable?: boolean): void {\n // todo vant 暂无 warning toast\n showToast({\n message: msg,\n duration: duration != null ? duration * 1000 : 1500,\n closeOnClick: closable,\n });\n }\n\n error(msg: string, duration?: number, closable?: boolean): void {\n showFailToast({\n message: msg,\n duration: duration != null ? duration * 1000 : 1500,\n closeOnClick: closable,\n });\n }\n}\n","import { IModalUtil, ModalParams } from '@ibiz-template/runtime';\nimport { showConfirmDialog, showDialog } from 'vant';\n\n/**\n * 简洁确认操作框\n *\n * @author chitanda\n * @date 2022-08-17 16:08:52\n * @export\n * @class ModalUtil\n * @implements {IModalUtil}\n */\nexport class ModalUtil implements IModalUtil {\n async info(params: ModalParams): Promise<void> {\n const { confirmButtonText, cancelButtonText } = params;\n await showDialog({\n title: params.title,\n message: params.desc,\n confirmButtonText,\n cancelButtonText,\n });\n }\n\n async success(params: ModalParams): Promise<void> {\n const { confirmButtonText, cancelButtonText } = params;\n await showDialog({\n title: params.title,\n message: params.desc,\n confirmButtonColor: '#07c160',\n confirmButtonText,\n cancelButtonText,\n });\n }\n\n async warning(params: ModalParams): Promise<void> {\n const { confirmButtonText, cancelButtonText } = params;\n await showDialog({\n title: params.title,\n message: params.desc,\n confirmButtonColor: '#faab0c',\n confirmButtonText,\n cancelButtonText,\n });\n }\n\n async error(params: ModalParams): Promise<void> {\n const { confirmButtonText, cancelButtonText } = params;\n await showDialog({\n title: params.title,\n message: params.desc,\n theme: 'round-button',\n confirmButtonText,\n cancelButtonText,\n });\n }\n\n async confirm(params: ModalParams): Promise<boolean> {\n const { confirmButtonText, cancelButtonText } = params;\n return new Promise(resolve => {\n showConfirmDialog({\n title: params.title,\n message: params.desc,\n confirmButtonText,\n cancelButtonText,\n })\n .then(() => {\n resolve(true);\n })\n .catch(() => {\n resolve(false);\n });\n });\n }\n}\n","import { INotificationUtil, NotificationParams } from '@ibiz-template/runtime';\nimport { showNotify } from 'vant';\n\n/**\n * 在界面右上角显示可关闭的全局通知\n *\n * @author chitanda\n * @date 2022-08-17 16:08:26\n * @export\n * @class NotificationUtil\n * @implements {INotificationUtil}\n */\nexport class NotificationUtil implements INotificationUtil {\n info(params: NotificationParams): void {\n const duration = params.duration ? params.duration * 1000 : 4500;\n showNotify({\n message: params.desc,\n type: 'primary',\n duration,\n });\n }\n\n success(params: NotificationParams): void {\n const duration = params.duration ? params.duration * 1000 : 4500;\n showNotify({\n message: params.desc,\n type: 'success',\n duration,\n });\n }\n\n warning(params: NotificationParams): void {\n const duration = params.duration ? params.duration * 1000 : 4500;\n showNotify({\n message: params.desc,\n type: 'warning',\n duration,\n });\n }\n\n error(params: NotificationParams): void {\n const duration = params.duration ? params.duration * 1000 : 4500;\n showNotify({\n message: params.desc,\n type: 'danger',\n duration,\n });\n }\n}\n","import { IModalData, IOpenViewUtil } from '@ibiz-template/runtime';\nimport {\n generateRoutePath,\n getDrawerPlacement,\n openViewDrawer,\n openViewModal,\n openViewPopover,\n routerCallback,\n} from '@ibiz-template/vue3-util';\nimport { Router } from 'vue-router';\n\n/**\n * 打开视图方式工具类\n *\n * @description 此实现类挂载在 ibiz.openViewUtil\n * @author chitanda\n * @date 2022-08-16 20:08:54\n * @export\n * @class OpenViewUtil\n * @implements {IOpenViewUtil}\n */\nexport class OpenViewUtil implements IOpenViewUtil {\n // eslint-disable-next-line no-useless-constructor, no-empty-function\n constructor(protected router: Router) {}\n\n push(path: string): Promise<IModalData> {\n return routerCallback.open(this.router, path);\n }\n\n async root(\n appViewId: string,\n context: IContext,\n params?: IParams | undefined,\n ): Promise<IModalData> {\n const appView = await ibiz.hub.config.view.get(appViewId!);\n const { path } = await generateRoutePath(\n appView,\n this.router.currentRoute.value,\n context,\n params,\n );\n return routerCallback.open(this.router, path);\n }\n\n /**\n * 模态打开视图\n *\n * @author lxm\n * @date 2022-09-12 01:09:06\n * @param {IViewConfig} appView\n * @param {(IContext | undefined)} [context]\n * @param {(IParams | undefined)} [params]\n * @returns {*} {Promise<IModalData>}\n */\n async modal(\n appViewId: string,\n context: IContext,\n params?: IParams | undefined,\n ): Promise<IModalData> {\n const appView = await ibiz.hub.config.view.get(appViewId!);\n // 设置默认的modal参数\n const opts = {\n footerHide: true,\n };\n\n return openViewModal(\n {\n context,\n params,\n viewId: appView.id,\n },\n opts,\n );\n }\n\n async popover(\n appViewId: string,\n event: MouseEvent,\n context: IContext,\n params?: IParams | undefined,\n ): Promise<IModalData> {\n const appView = await ibiz.hub.config.view.get(appViewId!);\n return openViewPopover(\n event,\n {\n context,\n params,\n viewId: appView.id,\n },\n { autoClose: true, placement: 'bottom' },\n );\n }\n\n /**\n * 抽屉打开视图\n *\n * @author lxm\n * @date 2022-09-15 15:09:50\n * @param {IViewConfig} appView\n * @param {(IContext | undefined)} [context]\n * @param {(IParams | undefined)} [params]\n * @returns {*} {Promise<IModalData>}\n */\n async drawer(\n appViewId: string,\n context: IContext,\n params?: IParams | undefined,\n ): Promise<IModalData> {\n const appView = await ibiz.hub.config.view.get(appViewId!);\n const placement = getDrawerPlacement(appView.openMode!);\n // 设置默认的modal参数\n const opts = {\n width: appView.width,\n height: appView.height,\n placement,\n };\n\n return openViewDrawer(\n {\n context,\n params,\n viewId: appView.id,\n },\n opts,\n );\n }\n\n async custom(\n appViewId: string,\n context: IContext,\n params?: IParams | undefined,\n ): Promise<IModalData> {\n const appView = await ibiz.hub.config.view.get(appViewId!);\n ibiz.log.warn('openUserCustom', appView, context, params);\n throw new Error();\n }\n}\n","import { defineComponent, PropType, reactive, ref, VNode } from 'vue';\nimport {\n OverlayContainer,\n useNamespace,\n useUIStore,\n} from '@ibiz-template/vue3-util';\nimport { isNumber } from 'lodash-es';\nimport {\n IModalData,\n IModalOptions,\n IOverlayContainer,\n Modal,\n ViewMode,\n} from '@ibiz-template/runtime';\nimport './app-modal-component.scss';\n\nexport const AppModalComponent = defineComponent({\n props: {\n opts: {\n type: Object as PropType<IModalOptions>,\n default: () => ({}),\n },\n },\n setup(props, ctx) {\n const ns = useNamespace('modal');\n\n const isShow = ref(false);\n\n const { zIndex } = useUIStore();\n const modalZIndex = zIndex.increment();\n\n // 处理自定义样式,添加z-index变量\n const customStyle = reactive<IData>({\n [ns.cssVarBlockName('z-index')]: modalZIndex,\n });\n const { width, height } = props.opts;\n if (width) {\n customStyle.width = isNumber(width) ? `${width}px` : width;\n } else {\n // 默认全屏\n customStyle.width = '100vw';\n }\n if (height) {\n customStyle.height = isNumber(height) ? `${height}px` : height;\n } else {\n // 默认全屏\n customStyle.height = '100vh';\n }\n\n // 合并options\n const options = ref<IModalOptions>({ footerHide: true, modalClass: '' });\n if (props.opts) {\n Object.assign(options.value, props.opts);\n }\n\n const modal = new Modal({\n mode: ViewMode.MODAL,\n viewUsage: 2,\n dismiss: (data: IData) => {\n zIndex.decrement();\n ctx.emit('dismiss', data);\n },\n });\n\n // Modal自身的所有关闭方式最终都走这个\n const onBeforeClose = async () => {\n await modal.dismiss();\n };\n\n // 外部函数式调用\n const dismiss = (data?: IModalData) => {\n modal.dismiss(data);\n };\n\n const present = () => {\n isShow.value = true;\n };\n\n return {\n ns,\n isShow,\n options,\n modalZIndex,\n customStyle,\n modal,\n present,\n dismiss,\n onBeforeClose,\n };\n },\n render() {\n return (\n <van-dialog\n show={this.isShow}\n showConfirmButton={false}\n class={[\n this.ns.b(),\n this.options.placement && this.ns.m(this.options.placement),\n this.options.modalClass,\n ]}\n style={this.customStyle}\n before-close={this.onBeforeClose}\n >\n {this.$slots.default?.(this.modal)}\n </van-dialog>\n );\n },\n});\n\n/**\n * 创建模态框\n *\n * @author chitanda\n * @date 2022-12-29 15:12:50\n * @export\n * @param {() => VNode} render\n * @param {(IModalOptions | undefined)} [opts]\n * @return {*} {IOverlayContainer}\n */\nexport function createModal(\n render: () => VNode,\n opts?: IModalOptions | undefined,\n): IOverlayContainer {\n return new OverlayContainer(AppModalComponent, render, opts);\n}\n","import { defineComponent, PropType, ref, VNode } from 'vue';\nimport {\n OverlayContainer,\n useNamespace,\n useUIStore,\n} from '@ibiz-template/vue3-util';\nimport {\n IDrawerOptions,\n IModalData,\n IOverlayContainer,\n Modal,\n ViewMode,\n} from '@ibiz-template/runtime';\n\nexport const AppDrawerComponent = defineComponent({\n props: {\n opts: {\n type: Object as PropType<IDrawerOptions>,\n default: () => ({}),\n },\n },\n setup(props, ctx) {\n const ns = useNamespace('drawer');\n\n const isShow = ref(false);\n\n const { zIndex } = useUIStore();\n const drawerZIndex = zIndex.increment();\n\n const modal = new Modal({\n mode: ViewMode.DRAWER,\n viewUsage: 2,\n dismiss: (data: IModalData) => {\n zIndex.decrement();\n ctx.emit('dismiss', data);\n },\n });\n\n // 自身的所有关闭方式最终都走这个\n const onBeforeClose = async (done: () => void) => {\n const isClose = await modal.dismiss();\n if (isClose) {\n done();\n }\n };\n\n // 外部函数式调用\n const dismiss = (data?: IModalData) => {\n modal.dismiss(data);\n };\n\n const present = () => {\n isShow.value = true;\n };\n\n let direction = '';\n\n switch (props.opts.placement) {\n case 'left':\n direction = 'ltr';\n break;\n case 'top':\n direction = 'ttb';\n break;\n case 'bottom':\n direction = 'btt';\n break;\n default:\n direction = 'rtl';\n }\n\n return {\n ns,\n isShow,\n direction,\n drawerZIndex,\n modal,\n dismiss,\n present,\n onBeforeClose,\n };\n },\n render() {\n return (\n <el-drawer\n model-value={this.isShow}\n lock-scroll\n with-header={false}\n size={this.opts.width}\n class={this.ns.b()}\n z-index={this.drawerZIndex}\n direction={this.direction}\n before-close={this.onBeforeClose}\n >\n {this.$slots.default?.(this.modal)}\n </el-drawer>\n );\n },\n});\n\n/**\n * 创建抽屉\n *\n * @author chitanda\n * @date 2022-12-29 15:12:57\n * @export\n * @param {() => VNode} render\n * @param {(IDrawerOptions | undefined)} [opts]\n * @return {*} {IOverlayContainer}\n */\nexport function createDrawer(\n render: () => VNode,\n opts?: IDrawerOptions | undefined,\n): IOverlayContainer {\n return new OverlayContainer(AppDrawerComponent, render, opts);\n}\n","import {\n IOverlayController,\n IDrawerOptions,\n IModalOptions,\n IOverlayContainer,\n IFloatWindowOptions,\n IOverlayPopoverContainer,\n IPopoverOptions,\n} from '@ibiz-template/runtime';\nimport { isFunction } from 'lodash-es';\nimport { h, resolveComponent } from 'vue';\nimport { createModal } from '../app-modal/app-modal-component';\nimport { createDrawer } from '../app-drawer/app-drawer-component';\n/**\n * 用不同呈现方式绘制组件的通用工具类\n *\n * @author lxm\n * @date 2022-11-08 16:11:09\n * @export\n * @class OverlayController\n * @implements {IOverlayController}\n */\nexport class OverlayController implements IOverlayController {\n popover<T = void>(\n _element: HTMLElement,\n _component: unknown,\n _props?: IParams | undefined,\n _opts?: IPopoverOptions | undefined,\n ): Promise<T> {\n throw new Error('Method not implemented.');\n }\n\n createPopover(\n _component: unknown,\n _props?: IParams | undefined,\n _opts?: IPopoverOptions | undefined,\n ): IOverlayPopoverContainer {\n throw new Error('Method not implemented.');\n }\n\n createFloatWindow(\n _component: unknown,\n _props?: IParams | undefined,\n _opts?: IFloatWindowOptions | undefined,\n ): IOverlayContainer {\n throw new Error('Method not implemented.');\n }\n\n drawer<T = void>(\n component: unknown,\n props?: IParams,\n opts?: IDrawerOptions,\n ): Promise<T> {\n const drawer = this.createDrawer(component, props, opts);\n drawer.present();\n return drawer.onWillDismiss();\n }\n\n createDrawer(\n component: unknown,\n props?: IParams,\n opts?: IDrawerOptions,\n ): IOverlayContainer {\n return createDrawer(\n isFunction(component)\n ? component\n : () => h(resolveComponent(component as string), { ...props }),\n opts,\n );\n }\n\n async modal<T = void>(\n component: unknown,\n props?: IParams,\n opts?: IModalOptions,\n ): Promise<T> {\n const modal = this.createModal(component, props, opts);\n modal.present();\n return modal.onWillDismiss();\n }\n\n createModal(\n component: unknown,\n props?: IParams,\n opts?: IModalOptions,\n ): IOverlayContainer {\n return createModal(\n isFunction(component)\n ? component\n : () => h(resolveComponent(component as string), { ...props }),\n opts,\n );\n }\n\n async floatWindow<T = void>(\n component: unknown,\n props?: IParams,\n opts?: IFloatWindowOptions,\n ): Promise<T> {\n const floatWindow = this.createFloatWindow(component, props, opts);\n floatWindow.present();\n return floatWindow.onWillDismiss();\n }\n}\n","import { showLoadingToast, ToastWrapperInstance } from 'vant';\nimport { Directive, DirectiveBinding } from 'vue';\n\nconst INSTANCE_KEY = Symbol('vanLoading');\n\n/**\n * 加载元素接口\n *\n * @author zk\n * @date 2023-10-20 02:10:56\n * @export\n * @interface ElementLoading\n * @extends {HTMLElement}\n */\nexport interface ElementLoading extends HTMLElement {\n [INSTANCE_KEY]?: {\n instance: ToastWrapperInstance;\n };\n}\n\n/**\n * 创建加载元素\n *\n * @author zk\n * @date 2023-10-20 02:10:58\n * @param {ElementLoading} el\n */\nconst createInstance = (el: ElementLoading) => {\n const options = { message: '加载中...', forbidClick: true, teleport: el };\n el[INSTANCE_KEY] = {\n instance: showLoadingToast(options),\n };\n};\n\n/**\n * 加载指令\n *\n * @author zk\n * @date 2023-10-20 02:10:58\n * @param {ElementLoading} el\n */\nexport const loadingDirective: Directive = {\n mounted(el, binding) {\n if (binding.value) {\n createInstance(el);\n }\n },\n updated(el: ElementLoading, binding: DirectiveBinding<boolean>) {\n const instance = el[INSTANCE_KEY];\n if (binding.oldValue !== binding.value) {\n if (binding.value && !binding.oldValue) {\n createInstance(el);\n } else {\n instance?.instance.close();\n }\n }\n },\n unmounted(el: ElementLoading) {\n el[INSTANCE_KEY]?.instance.close();\n },\n};\n","import { RuntimeError } from '@ibiz-template/core';\nimport { getNestedRoutePath } from '@ibiz-template/vue3-util';\nimport { Router, RouteLocationNormalizedLoaded as Route } from 'vue-router';\nimport { defineStore } from 'pinia';\nimport { reactive } from 'vue';\nimport { QXEvent } from 'qx-util';\n\ntype ViewStackEvent = {\n onBeforeStackChange: (type: 'push' | 'pop') => void;\n};\n\nexport interface IViewStack {\n /**\n * 缓存视图唯一标识集合\n * @author lxm\n * @date 2023-06-28 02:22:58\n * @type {string[]}\n */\n cacheKeys: string[];\n\n /**\n * 当前显示的视图的唯一标识\n * @author lxm\n * @date 2023-06-28 02:23:18\n * @type {string}\n */\n currentKey: string;\n}\n\n/**\n * 计算唯一标识,并返回是否要缓存\n * @author lxm\n * @date 2023-06-29 08:41:51\n * @export\n * @param {Route} route\n * @return {*} {string}\n */\nexport function calcUniqueKey(route: Route): { key: string; isCache: boolean } {\n const match1 = route.matched[0];\n let key = '';\n let isCache = true;\n // login等预置视图,直接返回path\n if (match1.meta.preset) {\n key = match1.path;\n isCache = false;\n }\n // 一级是home时,唯一标识是到二级路由为止,反之只算到一级路由\n key = getNestedRoutePath(route, match1.meta.home ? 2 : 1);\n\n return { key, isCache };\n}\n\nexport const useViewStack = defineStore('viewStack', () => {\n let router: Router;\n\n const evt = new QXEvent<ViewStackEvent>();\n const on = evt.on.bind(evt);\n const off = evt.off.bind(evt);\n\n const viewInfoMap = new Map<string, { key: string; fullPath: string }>();\n\n const viewStack = reactive<IViewStack>({\n cacheKeys: [],\n currentKey: '',\n });\n\n /**\n * 更新视图信息\n * @author lxm\n * @date 2023-06-29 09:17:54\n * @param {string} key\n * @param {Route} route\n */\n const updateViewInfo = (key: string, route: Route) => {\n if (viewInfoMap.has(key)) {\n const info = viewInfoMap.get(key)!;\n info.fullPath = route.fullPath;\n } else {\n viewInfoMap.set(key, { key, fullPath: route.fullPath });\n }\n };\n\n /**\n * 新的视图进入堆栈\n * @author lxm\n * @date 2023-06-29 09:16:57\n * @param {string} key\n * @param {Route} route\n */\n const push = (key: string, route: Route) => {\n evt.emit('onBeforeStackChange', 'push');\n viewStack.cacheKeys.push(key);\n updateViewInfo(key, route);\n viewStack.currentKey = key;\n };\n\n /**\n * 弹出最新的一个视图\n * @author lxm\n * @date 2023-06-29 09:17:13\n */\n const pop = () => {\n if (viewStack.cacheKeys.length < 2) {\n throw new RuntimeError('堆栈只有一个缓存不能后退了');\n }\n evt.emit('onBeforeStackChange', 'pop');\n const popKey = viewStack.cacheKeys.pop();\n viewInfoMap.delete(popKey!);\n viewStack.currentKey = viewStack.cacheKeys[viewStack.cacheKeys.length - 1];\n };\n\n const init = (_router: Router) => {\n router = _router;\n _router.afterEach(to => {\n const { key, isCache } = calcUniqueKey(to);\n if (isCache) {\n if (key === viewStack.currentKey) {\n // 一级路由没变,更新视图信息\n updateViewInfo(key, to);\n } else if (viewStack.cacheKeys.includes(key)) {\n // 跳转到已经缓存的页面,只有返回后退这一种情况,弹出记录\n pop();\n } else {\n // 缓存里没有的就是push新的页面\n push(key, to);\n }\n }\n\n // 变更当前key,刷新视图的绘制\n viewStack.currentKey = key;\n });\n };\n\n /**\n * 返回堆栈里上一个视图\n * @author lxm\n * @date 2023-06-29 09:10:16\n */\n const goBack = () => {\n // 返回上一个页面,找到堆栈倒数第二个视图,跳转回他的路由,后续删除会由监控那边触发pop处理。\n const previousKey = viewStack.cacheKeys[viewStack.cacheKeys.length - 2];\n const previousPath = viewInfoMap.get(previousKey)!.fullPath;\n router.push(previousPath);\n };\n\n return { viewStack, init, on, off, goBack };\n});\n","import {\n useNamespace,\n PanelContainerController,\n} from '@ibiz-template/vue3-util';\nimport { IPanelContainer } from '@ibiz/model-core';\nimport { PropType, defineComponent, ref, computed } from 'vue';\nimport { useRoute } from 'vue-router';\nimport { useViewStack } from '../../util';\nimport './view-header-panel-container.scss';\n\nexport const ViewHeaderPanelContainer = defineComponent({\n name: 'IBizViewHeaderPanelContainer',\n props: {\n modelData: {\n type: Object as PropType<IPanelContainer>,\n required: true,\n },\n controller: {\n type: PanelContainerController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('view-header');\n const route = useRoute();\n const { viewStack } = useViewStack();\n const backButtonVisible = ref(false);\n const initButtonVisible = () => {\n if (\n (props.controller.panel.view.modal.viewUsage === 1 &&\n viewStack.cacheKeys.length > 1 &&\n route.meta.home) ||\n props.controller.panel.view.modal.viewUsage === 2\n ) {\n backButtonVisible.value = true;\n }\n };\n initButtonVisible();\n const view = props.controller.panel.view;\n // 嵌入视图模式判断 暂时注释\n // const isEmbed = view.modal.mode === ViewMode.EMBED || view.modal.routeDepth! > 2;\n const goBack = () => {\n view.modal.dismiss();\n };\n const { id } = props.modelData;\n const classArr = computed(() => {\n let result: Array<string | false> = [ns.b(), ns.m(id)];\n result = [\n ...result,\n ...props.controller.containerClass,\n ns.is('hidden', !props.controller.state.visible),\n ];\n return result;\n });\n return { ns, goBack, classArr, backButtonVisible };\n },\n render() {\n if (this.controller.state.visible === false) {\n return;\n }\n const defaultSlots = this.$slots.default?.() || [];\n // 嵌入视图模式判断 暂时注释\n // return this.isEmbed ? (\n // // 嵌入\n // <div class={[this.ns.b()]}>\n // {defaultSlots.map(slot => {\n // const props = slot.props as IData;\n // if (!props || !props.controller) {\n // return slot;\n // }\n // return (\n // <iBizCol\n // layoutPos={props.modelData.layoutPos}\n // state={props.controller.state}\n // >\n // {slot}\n // </iBizCol>\n // );\n // })}\n // </div>\n // ) : (\n return (\n <iBizRow class={this.classArr} layout={this.modelData.layout}>\n {this.backButtonVisible && (\n <div class={this.ns.b('back-button')} onClick={this.goBack}>\n <ion-icon name='chevron-back-outline'></ion-icon>\n </div>\n )}\n {defaultSlots.map((slot, index) => {\n const props = slot.props as IData;\n if (!props || !props.controller) {\n return slot;\n }\n return (\n <iBizCol\n class={{\n [this.ns.b('precut-back')]:\n index === 0 && this.backButtonVisible,\n }}\n layoutPos={props.modelData.layoutPos}\n state={props.controller.state}\n >\n {slot}\n </iBizCol>\n );\n })}\n </iBizRow>\n );\n // );\n },\n});\n","import {\n IPanelItemProvider,\n PanelController,\n PanelItemController,\n} from '@ibiz-template/runtime';\nimport { IPanelContainer } from '@ibiz/model-core';\nimport { PanelContainerController } from '@ibiz-template/vue3-util';\n\n/**\n * 视图内容区适配器\n *\n * @author chitanda\n * @date 2023-06-16 11:06:38\n * @export\n * @class ViewHeaderPanelContainerProvider\n * @implements {IPanelItemProvider}\n */\nexport class ViewHeaderPanelContainerProvider implements IPanelItemProvider {\n component: string = 'IBizViewHeaderPanelContainer';\n\n async createController(\n panelItem: IPanelContainer,\n panel: PanelController,\n parent: PanelItemController | undefined,\n ): Promise<PanelItemController> {\n const c = new PanelContainerController(panelItem, panel, parent);\n await c.init();\n return c;\n }\n}\n","import { App } from 'vue';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { registerPanelItemProvider } from '@ibiz-template/runtime';\nimport { ViewHeaderPanelContainer } from './view-header-panel-container';\nimport { ViewHeaderPanelContainerProvider } from './view-header-panel-container.provider';\n\nexport const IBizViewHeaderPanelContainer = withInstall(\n ViewHeaderPanelContainer,\n function (v: App) {\n v.component(ViewHeaderPanelContainer.name, ViewHeaderPanelContainer);\n registerPanelItemProvider(\n 'CONTAINER_HEADER',\n () => new ViewHeaderPanelContainerProvider(),\n );\n },\n);\n\nexport default IBizViewHeaderPanelContainer;\n","import {\n useNamespace,\n PanelContainerController,\n} from '@ibiz-template/vue3-util';\nimport { IPanelContainer } from '@ibiz/model-core';\nimport { PropType, defineComponent, computed } from 'vue';\nimport './view-footer-panel-container.scss';\n\nexport const ViewFooterPanelContainer = defineComponent({\n name: 'IBizViewFooterPanelContainer',\n props: {\n modelData: {\n type: Object as PropType<IPanelContainer>,\n required: true,\n },\n controller: {\n type: PanelContainerController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('view-footer');\n const { id } = props.modelData;\n const classArr = computed(() => {\n let result: Array<string | false> = [ns.b(), ns.m(id)];\n result = [\n ...result,\n ...props.controller.containerClass,\n ns.is('hidden', !props.controller.state.visible),\n ];\n return result;\n });\n return { ns, classArr };\n },\n render() {\n if (this.controller.state.visible === false) {\n return;\n }\n const defaultSlots = this.$slots.default?.() || [];\n return (\n <iBizRow class={this.classArr} layout={this.modelData.layout}>\n {defaultSlots.map(slot => {\n const props = slot.props as IData;\n if (!props || !props.controller) {\n return slot;\n }\n return (\n <iBizCol\n layoutPos={props.modelData.layoutPos}\n state={props.controller.state}\n >\n {slot}\n </iBizCol>\n );\n })}\n </iBizRow>\n );\n // );\n },\n});\n","import {\n IPanelItemProvider,\n PanelController,\n PanelItemController,\n} from '@ibiz-template/runtime';\nimport { IPanelContainer } from '@ibiz/model-core';\nimport { PanelContainerController } from '@ibiz-template/vue3-util';\n\n/**\n * 视图底部适配器\n *\n * @author chitanda\n * @date 2023-06-16 11:06:38\n * @export\n * @class ViewFooterPanelContainerProvider\n * @implements {IPanelItemProvider}\n */\nexport class ViewFooterPanelContainerProvider implements IPanelItemProvider {\n component: string = 'IBizViewFooterPanelContainer';\n\n async createController(\n panelItem: IPanelContainer,\n panel: PanelController,\n parent: PanelItemController | undefined,\n ): Promise<PanelItemController> {\n const c = new PanelContainerController(panelItem, panel, parent);\n await c.init();\n return c;\n }\n}\n","import { App } from 'vue';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { registerPanelItemProvider } from '@ibiz-template/runtime';\nimport { ViewFooterPanelContainer } from './view-footer-panel-container';\nimport { ViewFooterPanelContainerProvider } from './view-footer-panel-container.provider';\n\nexport const IBizViewFooterPanelContainer = withInstall(\n ViewFooterPanelContainer,\n function (v: App) {\n v.component(ViewFooterPanelContainer.name, ViewFooterPanelContainer);\n registerPanelItemProvider(\n 'CONTAINER_FOOTER',\n () => new ViewFooterPanelContainerProvider(),\n );\n },\n);\n\nexport default IBizViewFooterPanelContainer;\n","import { PanelItemState, UIActionButtonState } from '@ibiz-template/runtime';\n\n/**\n * 面板按钮状态\n *\n * @author lxm\n * @date 2023-02-07 06:04:27\n * @export\n * @class PanelButtonState\n * @extends {PanelItemState}\n */\nexport class PanelButtonState extends PanelItemState {\n /**\n * 加载中\n * @author lxm\n * @date 2023-07-21 10:11:21\n * @type {boolean}\n */\n loading: boolean = false;\n\n /**\n * 界面行为状态\n * @author lxm\n * @date 2023-07-21 03:34:27\n * @type {UIActionButtonState}\n */\n uiActionState!: UIActionButtonState;\n}\n","import {\n PanelController,\n PanelItemController,\n PanelNotifyState,\n UIActionButtonState,\n UIActionUtil,\n ViewLayoutPanelController,\n} from '@ibiz-template/runtime';\nimport { IPanelButton } from '@ibiz/model-core';\nimport { PanelButtonState } from './panel-button.state';\n\n/**\n * 面板按钮控制器\n *\n * @export\n * @class PanelButtonController\n * @extends {PanelItemController<IPanelButton>}\n */\nexport class PanelButtonController extends PanelItemController<IPanelButton> {\n declare state: PanelButtonState;\n\n protected createState(): PanelButtonState {\n return new PanelButtonState(this.parent?.state);\n }\n\n /**\n * 面板控制器\n *\n * @type {ViewLayoutPanelController}\n * @memberof PanelButtonController\n */\n declare panel: ViewLayoutPanelController;\n\n /**\n * 父容器数据对象数据\n * @author lxm\n * @date 2023-07-15 01:33:58\n * @readonly\n * @type {IData}\n */\n get data(): IData {\n return this.dataParent.data;\n }\n\n /**\n * Creates an instance of PanelButtonController.\n * @param {IPanelButton} model\n * @param {PanelController} panel\n * @param {PanelItemController} [parent]\n * @memberof PanelButtonController\n */\n constructor(\n model: IPanelButton,\n panel: PanelController,\n parent?: PanelItemController,\n ) {\n super(model, panel, parent);\n this.state.uiActionState = this.createUIActionState();\n }\n\n /**\n * 初始化\n *\n * @return {*} {Promise<void>}\n * @memberof PanelButtonController\n */\n async onInit(): Promise<void> {\n await super.onInit();\n this.updateButtonState();\n }\n\n /**\n * 创建界面行为状态对象\n *\n * @protected\n * @return {*} {PanelButtonState}\n * @memberof PanelButtonController\n */\n protected createUIActionState(): UIActionButtonState {\n const { uiactionId, name } = this.model;\n return new UIActionButtonState(\n name!,\n this.panel.context.srfappid!,\n uiactionId,\n );\n }\n\n /**\n * 面板数据变更通知(由面板控制器调用)\n *\n * @param {string[]} names\n * @memberof PanelButtonController\n */\n async dataChangeNotify(names: string[]): Promise<void> {\n await this.updateButtonState();\n super.dataChangeNotify(names);\n }\n\n /**\n * 面板状态变更通知\n *\n * @param {PanelNotifyState} _state\n * @memberof PanelButtonController\n */\n async panelStateNotify(_state: PanelNotifyState): Promise<void> {\n await this.updateButtonState();\n super.panelStateNotify(_state);\n }\n\n /**\n * 更新按钮权限状态\n *\n * @memberof PanelButtonController\n */\n async updateButtonState(): Promise<void> {\n await this.state.uiActionState.update(this.data);\n }\n\n /**\n * 行为点击\n *\n * @param {MouseEvent} event\n * @return {*} {Promise<void>}\n * @memberof PanelButtonController\n */\n async onActionClick(event: MouseEvent): Promise<void> {\n const { uiactionId } = this.model;\n await UIActionUtil.execAndResolved(uiactionId!, {\n context: this.panel.context,\n params: this.panel.params,\n data: [this.data],\n view: this.panel.view,\n event,\n noWaitRoute: true,\n });\n }\n\n calcItemVisible(data: IData): void {\n // 权限不显示时就一定不显示\n if (this.state.uiActionState.visible === false) {\n this.state.visible = false;\n return;\n }\n super.calcItemVisible(data);\n }\n\n calcItemDisabled(data: IData): void {\n // 权限不显示时就一定禁用\n if (this.state.uiActionState.disabled === true) {\n this.state.disabled = true;\n return;\n }\n super.calcItemDisabled(data);\n }\n}\n","import { useNamespace } from '@ibiz-template/vue3-util';\nimport { IPanelButton } from '@ibiz/model-core';\nimport { defineComponent, PropType, computed } from 'vue';\nimport { PanelButtonController } from './panel-button.controller';\nimport './panel-button.scss';\n\nexport const PanelButton = defineComponent({\n name: 'IBizPanelButton',\n props: {\n modelData: {\n type: Object as PropType<IPanelButton>,\n required: true,\n },\n controller: {\n type: PanelButtonController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('panel-button');\n\n const {\n caption,\n captionItemName,\n renderMode,\n itemStyle,\n showCaption,\n sysImage,\n codeName,\n } = props.modelData;\n\n const { panel, state } = props.controller;\n const { id } = props.modelData;\n const captionText = computed(() => {\n if (captionItemName && panel.data) {\n return panel.data[captionItemName];\n }\n return caption;\n });\n\n const buttonType = computed(() => {\n if (Object.is(renderMode, 'LINK')) {\n return 'text';\n }\n if (itemStyle) {\n switch (itemStyle) {\n case 'PRIMARY':\n return 'primary';\n case 'SUCCESS':\n return 'success';\n case 'INFO':\n return 'default';\n case 'WARNING':\n return 'warning';\n case 'DANGER':\n return 'danger';\n case 'INVERSE':\n return 'default';\n default:\n return 'default';\n }\n }\n return 'default';\n });\n\n const handleButtonClick = (event: MouseEvent) => {\n props.controller.onActionClick(event);\n };\n // 类名控制\n const classArr = computed(() => {\n let result: Array<string | false> = [ns.b(), ns.m(id)];\n result = [\n ...result,\n ...props.controller.containerClass,\n ns.is('hidden', !props.controller.state.visible),\n ];\n return result;\n });\n\n return {\n ns,\n captionText,\n buttonType,\n showCaption,\n sysImage,\n codeName,\n classArr,\n state,\n handleButtonClick,\n };\n },\n render() {\n if (this.state.visible) {\n return (\n <van-button\n type={this.buttonType}\n disabled={this.state.disabled}\n onClick={this.handleButtonClick}\n class={this.classArr}\n >\n <div class={this.ns.b('content')}>\n <iBizIcon\n class={this.ns.bm('content', 'icon')}\n icon={this.sysImage}\n />\n <span class={this.ns.bm('content', 'caption')}>\n {this.showCaption ? this.captionText : null}\n </span>\n </div>\n </van-button>\n );\n }\n return null;\n },\n});\nexport default PanelButton;\n","import {\n IPanelItemProvider,\n PanelController,\n PanelItemController,\n} from '@ibiz-template/runtime';\nimport { IPanelItem } from '@ibiz/model-core';\nimport { PanelButtonController } from './panel-button.controller';\n\n/**\n * 面板按钮适配器\n *\n * @export\n * @class PanelButtonProvider\n * @implements {IPanelItemProvider}\n */\nexport class PanelButtonProvider implements IPanelItemProvider {\n component: string = 'IBizPanelButton';\n\n async createController(\n panelItem: IPanelItem,\n panel: PanelController,\n parent: PanelItemController | undefined,\n ): Promise<PanelButtonController> {\n const c = new PanelButtonController(panelItem, panel, parent);\n await c.init();\n return c;\n }\n}\n","import { registerPanelItemProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport PanelButton from './panel-button';\nimport { PanelButtonProvider } from './panel-button.provider';\n\nexport * from './panel-button.provider';\nexport * from './panel-button.controller';\n\nexport const IBizPanelButton = withInstall(PanelButton, function (v: App) {\n v.component(PanelButton.name, PanelButton);\n registerPanelItemProvider('BUTTON', () => new PanelButtonProvider());\n});\n\nexport default IBizPanelButton;\n","import { PanelItemState } from '@ibiz-template/runtime';\n\n/**\n * 面板按钮状态\n *\n * @author lxm\n * @date 2023-02-07 06:04:27\n * @export\n * @class PanelButtonState\n * @extends {PanelItemState}\n */\nexport class WFActionButtonState extends PanelItemState {\n /**\n * 工作流按钮数组\n *\n * @author zk\n * @date 2023-11-09 11:11:49\n * @type {IData[]}\n * @memberof WFActionButtonState\n */\n wfButtons: IData[] = [];\n}\n","import {\n PanelItemController,\n ViewLayoutPanelController,\n} from '@ibiz-template/runtime';\nimport { IPanelButton } from '@ibiz/model-core';\nimport { WFActionButtonState } from './wf-action-button.state';\n\n/**\n * 面板按钮控制器\n *\n * @export\n * @class WFActionButtonController\n * @extends {PanelItemController<IPanelButton>}\n */\nexport class WFActionButtonController extends PanelItemController<IPanelButton> {\n declare state: WFActionButtonState;\n\n protected createState(): WFActionButtonState {\n return new WFActionButtonState(this.parent?.state);\n }\n\n /**\n * 面板控制器\n *\n * @type {ViewLayoutPanelController}\n * @memberof WFActionButtonController\n */\n declare panel: ViewLayoutPanelController;\n\n /**\n * 工作流动态按钮\n *\n * @author zk\n * @date 2023-11-12 06:11:28\n * @readonly\n * @type {IData[]}\n * @memberof WFActionButtonController\n */\n get wfButtons(): IData[] {\n return this.state.wfButtons;\n }\n\n /**\n * 初始化wf按钮\n *\n * @author zk\n * @date 2023-11-09 11:11:50\n * @param {IData[]} items\n * @memberof WFActionButtonController\n */\n initWFButtons(items: IData[]): void {\n this.state.wfButtons = items;\n }\n}\n","import { useNamespace } from '@ibiz-template/vue3-util';\nimport { IPanelRawItem } from '@ibiz/model-core';\nimport { defineComponent, PropType, computed, ref } from 'vue';\nimport { WFActionButtonController } from './wf-action-button.controller';\nimport './wf-action-button.scss';\n\nexport const WFActionButton = defineComponent({\n name: 'IBizWFActionButton',\n props: {\n modelData: {\n type: Object as PropType<IPanelRawItem>,\n required: true,\n },\n controller: {\n type: WFActionButtonController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('wf-action-button');\n\n const { caption, showCaption, sysImage, codeName } = props.modelData;\n\n const { state } = props.controller;\n const { id } = props.modelData;\n\n const handleButtonClick = (event: IData) => {\n props.controller.panel.view.call('WFAction', event);\n };\n // 类名控制\n const classArr = computed(() => {\n let result: Array<string | false> = [ns.b(), ns.m(id)];\n result = [\n ...result,\n ...props.controller.containerClass,\n ns.is('hidden', !props.controller.state.visible),\n ];\n return result;\n });\n\n const renderMode = computed(() => {\n return props.controller.state.wfButtons.length > 2 ? 'sheet' : 'default';\n });\n\n const show = ref(false);\n\n return {\n ns,\n showCaption,\n sysImage,\n caption,\n codeName,\n classArr,\n state,\n show,\n renderMode,\n handleButtonClick,\n };\n },\n render() {\n const { wfButtons } = this.controller.state;\n const renderDefault = () => {\n return wfButtons.map((item: IData) => {\n return (\n <van-button\n type='primary'\n disabled={this.state.disabled}\n onClick={() => {\n this.handleButtonClick(item);\n }}\n >\n {item.caption}\n </van-button>\n );\n });\n };\n const renderSheet = () => {\n return [\n <van-button\n type='primary'\n disabled={this.state.disabled}\n onClick={() => {\n this.show = true;\n }}\n >\n {this.caption}\n </van-button>,\n <van-action-sheet\n v-model:show={this.show}\n actions={wfButtons}\n close-on-click-overlay\n cancel-text='取消'\n close-on-click-action\n onSelect={this.handleButtonClick}\n ></van-action-sheet>,\n ];\n };\n if (this.state.visible) {\n return (\n <div class={this.classArr}>\n {this.renderMode === 'default' ? renderDefault() : renderSheet()}\n </div>\n );\n }\n return null;\n },\n});\nexport default WFActionButton;\n","import {\n IPanelItemProvider,\n PanelController,\n PanelItemController,\n} from '@ibiz-template/runtime';\nimport { IPanelItem } from '@ibiz/model-core';\nimport { WFActionButtonController } from './wf-action-button.controller';\n\n/**\n * 面板按钮适配器\n *\n * @export\n * @class PanelButtonProvider\n * @implements {IPanelItemProvider}\n */\nexport class WFActionButtonProvider implements IPanelItemProvider {\n component: string = 'IBizWFActionButton';\n\n async createController(\n panelItem: IPanelItem,\n panel: PanelController,\n parent: PanelItemController | undefined,\n ): Promise<WFActionButtonController> {\n const c = new WFActionButtonController(panelItem, panel, parent);\n await c.init();\n return c;\n }\n}\n","import { registerPanelItemProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport WFActionButton from './wf-action-button';\nimport { WFActionButtonProvider } from './wf-action-button.provider';\n\nexport * from './wf-action-button.provider';\nexport * from './wf-action-button.controller';\n\nexport const IBizWFActionButton = withInstall(\n WFActionButton,\n function (v: App) {\n v.component(WFActionButton.name, WFActionButton);\n registerPanelItemProvider(\n 'RAWITEM_WF_ACTION_BUTTON',\n () => new WFActionButtonProvider(),\n );\n },\n);\n\nexport default IBizWFActionButton;\n","import { PanelItemController } from '@ibiz-template/runtime';\nimport { IPanelRawItem } from '@ibiz/model-core';\nimport { clone } from 'ramda';\nimport { WFStepTraceState } from './wf-step-trace.state';\n\n/**\n * 面板按钮控制器\n *\n * @export\n * @class WFStepTraceController\n * @extends {PanelItemController<IPanelRawItem>}\n */\nexport class WFStepTraceController extends PanelItemController<IPanelRawItem> {\n /**\n * 导航占位状态\n *\n * @type {WFStepTraceState}\n * @memberof WFStepTraceController\n */\n declare state: WFStepTraceState;\n\n /**\n * 设置界面数据\n *\n * @author zk\n * @date 2023-07-04 04:07:00\n * @param {IData[]} data\n * @memberof WFStepTraceController\n */\n setData(data: IData): void {\n if (!data) {\n return;\n }\n // 排序时间\n const sortData = (a: IData, b: IData) => {\n return Date.parse(b.time) - Date.parse(a.time);\n };\n const commentsData: IData[] = [];\n const copyData = clone(data);\n let tasks = copyData.usertasks;\n if (!tasks) {\n return;\n }\n if (tasks.length > 0) {\n tasks = tasks.reverse();\n tasks.forEach((task: IData) => {\n if (task.identitylinks.length > 0) {\n const authorNames = this.acceptingOfficerNoDup(\n 'displayname',\n task.identitylinks,\n );\n commentsData.push({\n authorName: authorNames.join('、'),\n taskName: task.userTaskName,\n isLink: true,\n });\n }\n if (task.comments.length > 0) {\n task.comments.forEach((comment: IData) => {\n Object.assign(comment, { taskName: task.userTaskName });\n });\n task.comments.sort(sortData);\n commentsData.push(...task.comments);\n }\n });\n this.state.data = commentsData;\n }\n }\n\n /**\n * 办理人员名称显示去重\n *\n * @author zk\n * @date 2023-07-04 04:07:03\n * @param {string} tag 需要去重的名称标识\n * @param {IData[]} dataS 需要去重数据集\n * @return {*}\n * @memberof WFStepTraceController\n */\n acceptingOfficerNoDup(tag: string, dataS: IData[]): IData[] {\n const tempData: IData[] = [];\n if (dataS?.length > 0 && tag) {\n dataS.forEach((data: IData) => {\n tempData.push(data[tag]);\n });\n }\n const noDup = [...new Set(tempData)];\n return noDup;\n }\n\n /**\n * 获取数据\n *\n * @author zk\n * @date 2023-07-04 05:07:57\n * @return {*}\n * @memberof WFStepTraceController\n */\n getData(): IData[] {\n return this.state.data;\n }\n}\n","import { useNamespace } from '@ibiz-template/vue3-util';\nimport { computed, defineComponent } from 'vue';\nimport { WFStepTraceController } from './wf-step-trace.controller';\nimport './wf-step-trace.scss';\n\nexport const WFStepTrace = defineComponent({\n name: 'IBizWFStepTrace',\n props: {\n controller: {\n type: WFStepTraceController,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('wf-step-trace');\n const data = computed(() => {\n return props.controller.getData();\n });\n return {\n ns,\n data,\n };\n },\n render() {\n return (\n <div class={this.ns.b()}>\n {this.data && (\n <van-steps direction='vertical'>\n {this.data.map((task: IData) => {\n return (\n <van-step>\n <div class={[this.ns.b('task')]}>\n <div class={this.ns.b('task-item')}>\n <van-field\n readonly\n v-model={task.time}\n label='处理完成时间'\n />\n </div>\n <div class={this.ns.b('task-item')}>\n <van-field\n readonly\n v-model={task.type}\n label='处理环节'\n />\n </div>\n <div class={this.ns.b('task-item')}>\n <van-field\n readonly\n v-model={task.authorName}\n label='处理人'\n />\n </div>\n <div class={this.ns.b('task-item')}>\n <van-field\n v-model={task.taskName}\n readonly\n label='提交路径'\n />\n </div>\n </div>\n </van-step>\n );\n })}\n </van-steps>\n )}\n </div>\n );\n },\n});\nexport default WFStepTrace;\n","import {\n IPanelItemProvider,\n PanelController,\n PanelItemController,\n} from '@ibiz-template/runtime';\nimport { IPanelItem } from '@ibiz/model-core';\nimport { WFStepTraceController } from './wf-step-trace.controller';\n\n/**\n * 流程跟踪组件适配器\n *\n * @export\n * @class WFStepTraceProvider\n * @implements {IPanelItemProvider}\n */\nexport class WFStepTraceProvider implements IPanelItemProvider {\n component: string = 'IBizWFStepTrace';\n\n async createController(\n panelItem: IPanelItem,\n panel: PanelController,\n parent: PanelItemController | undefined,\n ): Promise<WFStepTraceController> {\n const c = new WFStepTraceController(panelItem, panel, parent);\n await c.init();\n return c;\n }\n}\n","import { registerPanelItemProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport WFStepTrace from './wf-step-trace';\nimport { WFStepTraceProvider } from './wf-step-trace.provider';\n\nexport * from './wf-step-trace.provider';\nexport * from './wf-step-trace.controller';\n\nexport const IBizWFStepTrace = withInstall(WFStepTrace, function (v: App) {\n v.component(WFStepTrace.name, WFStepTrace);\n registerPanelItemProvider(\n 'RAWITEM_WF_WFStepTrace',\n () => new WFStepTraceProvider(),\n );\n});\n\nexport default IBizWFStepTrace;\n","import { INavViewMsg, PanelItemState } from '@ibiz-template/runtime';\n\n/**\n * 导航占位状态\n *\n * @author lxm\n * @date 2023-02-07 06:04:27\n * @export\n * @class NavPosIndexState\n * @extends {PanelItemState}\n */\nexport class NavPosIndexState extends PanelItemState {\n /**\n * 当前导航视图标识\n * @author lxm\n * @date 2023-05-25 06:24:48\n * @type {string}\n */\n currentKey: string = '';\n\n /**\n * 缓存的视图标识\n * @author lxm\n * @date 2023-05-25 06:25:21\n * @type {string[]}\n */\n cacheKeys: string[] = ['RouterShell'];\n\n /**\n * 导航视图详细信息\n * @author lxm\n * @date 2023-05-25 07:07:05\n * @type {INavViewMsg[]}\n */\n navViewMsgs: { [p: string]: INavViewMsg } = {};\n\n /**\n * 导航的视图的操作顺序\n * @author lxm\n * @date 2023-05-25 06:25:34\n * @type {string[]}\n */\n operateSort: string[] = [];\n}\n","import {\n IAppMenuController,\n IModal,\n IModalData,\n Modal,\n PanelItemController,\n ViewMode,\n} from '@ibiz-template/runtime';\nimport { routerCallback } from '@ibiz-template/vue3-util';\nimport { IPanelRawItem } from '@ibiz/model-core';\nimport { Router } from 'vue-router';\nimport { NavPosIndexState } from './nav-pos-index.state';\n\n/**\n * 导航占位控制器\n *\n * @export\n * @class NavPosIndexController\n * @extends {PanelItemController}\n */\nexport class NavPosIndexController extends PanelItemController<IPanelRawItem> {\n declare state: NavPosIndexState;\n\n /**\n * 导航视图的modal\n * @author lxm\n * @date 2023-05-12 09:47:52\n * @type {{ [key: string]: IModal }}\n */\n viewModals: { [key: string]: IModal } = {};\n\n /**\n * router对象\n * @author lxm\n * @date 2023-05-25 08:02:43\n * @type {Router}\n */\n router?: Router;\n\n /**\n * 是否关闭后自动跳转上一个页面\n * @author lxm\n * @date 2023-05-25 08:43:49\n * @type {boolean}\n */\n autoGoLast: boolean = true;\n\n protected createState(): NavPosIndexState {\n return new NavPosIndexState(this.parent?.state);\n }\n\n setRouter(router: Router): void {\n this.router = router;\n }\n\n /**\n * 当前视图的路由层级,非路由模式不存在。\n * @author lxm\n * @date 2023-05-09 12:46:26\n * @readonly\n */\n get routeDepth(): number | undefined {\n return this.panel.view.modal.routeDepth;\n }\n\n /**\n * 应用菜单控制器\n * @author lxm\n * @date 2023-05-10 08:41:42\n * @readonly\n * @type {(IAppMenuController | undefined)}\n */\n get appmenu(): IAppMenuController | undefined {\n return this.panel.getController('appmenu') as IAppMenuController;\n }\n\n /**\n * 改变显示视图\n * @author lxm\n * @date 2023-05-25 01:28:49\n * @param {string} key\n */\n changeView(key: string): void {\n const find = this.state.navViewMsgs[key];\n if (find?.fullPath) {\n this.router?.push(find.fullPath);\n }\n }\n\n /**\n * 路由变更,新视图进缓存并初始化,已有的就只切换。\n * @author lxm\n * @date 2023-05-25 03:07:07\n * @param {{ currentKey: string; fullPath: string }} { currentKey }\n * @return {*}\n */\n onRouteChange({\n currentKey,\n fullPath,\n }: {\n currentKey: string;\n fullPath: string;\n }): void {\n if (this.state.currentKey !== currentKey) {\n // currentKey变更时先切换\n this.state.currentKey = currentKey;\n // 已经在缓存里时,把上一次的路径还原了,这次的路由不处理\n if (this.state.cacheKeys.includes(currentKey)) {\n const lastFullPath = this.state.navViewMsgs[currentKey].fullPath!;\n this.router?.push({ path: lastFullPath });\n }\n }\n\n // 比监控视图层级低的路由跳转不做处理。\n if (currentKey === '') {\n return;\n }\n\n // *维护操作记录\n const index = this.state.operateSort.indexOf(currentKey);\n if (index !== -1) {\n // 记录里存在先删除\n this.state.operateSort.splice(index, 1);\n }\n // 往最后面添加当前key\n this.state.operateSort.push(currentKey);\n\n // *维护缓存\n if (!this.state.cacheKeys.includes(currentKey)) {\n // 缓存里没有的,加入缓存\n this.state.cacheKeys.push(currentKey);\n\n // 维护每个视图的modal\n if (this.routeDepth) {\n this.viewModals[currentKey] = new Modal({\n mode: ViewMode.ROUTE,\n viewUsage: 1,\n routeDepth: this.routeDepth + 1,\n dismiss: modal => {\n // 执行对应key的dismiss方法\n this.dismiss(currentKey, modal);\n },\n });\n }\n }\n\n // *维护导航视图信息\n if (this.state.navViewMsgs[currentKey]) {\n this.state.navViewMsgs[currentKey].fullPath = fullPath;\n } else {\n ibiz.log.debug('维护导航视图信息', currentKey, fullPath);\n this.state.navViewMsgs[currentKey] = {\n key: currentKey,\n fullPath,\n };\n routerCallback.active(currentKey);\n }\n }\n\n /**\n * 删除单个缓存\n * @author lxm\n * @date 2023-05-09 02:19:09\n * @param {string} key\n */\n removeCache(key: string): void {\n const index = this.state.cacheKeys.indexOf(key);\n if (index !== -1) {\n this.state.cacheKeys.splice(index, 1);\n\n // 维护每个视图的modal\n delete this.viewModals[key];\n\n // 删除导航视图信息\n delete this.state.navViewMsgs[key];\n\n // 删除操作记录里的数据\n const operateIndex = this.state.operateSort.indexOf(key);\n if (operateIndex !== -1) {\n this.state.operateSort.splice(operateIndex, 1);\n }\n }\n }\n\n /**\n * 清空缓存\n * @author lxm\n * @date 2023-05-09 02:19:55\n */\n clearCache(): void {\n this.state.cacheKeys = [];\n this.viewModals = {};\n }\n\n /**\n * 关闭视图\n * 走modal的dismiss,会走一遍视图内部的校验,不通过则不会关闭\n * @author lxm\n * @date 2023-05-25 03:10:23\n * @param {string} keys\n */\n async closeViewByKeys(keys: string[]): Promise<void> {\n // 这边可能会关闭多个,但只会回退一次,关闭自动回退,等最后结束之后回退。\n this.autoGoLast = false;\n for (let index = 0; index < keys.length; index++) {\n const key = keys[index];\n const modal = this.viewModals[key];\n // eslint-disable-next-line no-await-in-loop\n await modal.dismiss();\n }\n this.goLast();\n this.autoGoLast = true;\n }\n\n /**\n * 自身的dismiss相关操作\n *\n * @author chitanda\n * @date 2023-07-12 22:07:09\n * @protected\n * @param {string} key\n * @param {IModalData} modal\n * @return {*}\n */\n protected dismiss(key: string, modal: IModalData): void {\n routerCallback.close(key, modal);\n\n this.removeCache(key);\n\n if (this.autoGoLast) {\n this.goLast();\n }\n }\n\n /**\n * 返回上一个页面或上一层空白路由\n * @author lxm\n * @date 2023-05-25 06:46:27\n * @protected\n */\n protected goLast(): void {\n const lastKey = this.state.operateSort.pop();\n if (lastKey) {\n // 如果上一个视图是当前视图,则不跳转\n if (this.state.currentKey === lastKey) {\n this.state.operateSort.push(lastKey);\n return;\n }\n const fullPath = this.state.navViewMsgs[lastKey].fullPath;\n this.router!.push(fullPath!);\n } else {\n // 没有上一个视图时,跳转到当前层级的空白页面\n const route = this.router!.currentRoute.value;\n const { appContext } = route.params;\n let indexPath = `/${appContext}`;\n // 处理首页多层嵌套跳转当前首页空白页\n for (let index = 1; index <= this.routeDepth!; index++) {\n indexPath += `/${route.params[`view${index}`]}/${\n ibiz.env.routePlaceholder\n }`;\n }\n this.router!.push(indexPath);\n }\n }\n}\n","import { defineComponent, PropType, VNode } from 'vue';\nimport { useNamespace, onRouteChange } from '@ibiz-template/vue3-util';\nimport { IPanelRawItem } from '@ibiz/model-core';\nimport { useRoute, useRouter } from 'vue-router';\nimport { NavPosIndexController } from './nav-pos-index.controller';\nimport './nav-pos-index.scss';\n\nexport const NavPosIndex = defineComponent({\n name: 'IBizNavPosIndex',\n props: {\n modelData: {\n type: Object as PropType<IPanelRawItem>,\n required: true,\n },\n controller: {\n type: NavPosIndexController,\n required: true,\n },\n },\n setup(props) {\n const c = props.controller;\n const ns = useNamespace('nav-pos-index');\n const router = useRouter();\n c.setRouter(router);\n\n // 路由绘制的时候要做的事情\n if (c.routeDepth) {\n onRouteChange(args => {\n c.onRouteChange(args);\n }, c.routeDepth + 1);\n // 当首页且没有标签页的时候,首页菜单点击清空历史记录\n if (c.panel.view.model.viewType === 'APPINDEXVIEW') {\n const route = useRoute();\n let cacheFullPath = '';\n c.appmenu?.evt.on('onClick', () => {\n cacheFullPath = route.fullPath;\n });\n\n router.beforeEach((to, from, next) => {\n if (from.fullPath === cacheFullPath) {\n c.clearCache();\n }\n next();\n });\n }\n }\n\n return { ns, c };\n },\n render() {\n const { state, viewModals } = this.c;\n const { currentKey, cacheKeys } = state;\n\n return (\n <div\n class={[\n this.ns.b(),\n this.ns.m(this.modelData.id),\n ...this.controller.containerClass,\n ]}\n >\n {this.c.routeDepth ? (\n <iBizRouterView manualKey={currentKey} modal={viewModals[currentKey]}>\n {({ Component }: { Component: string }): VNode | null => {\n return (\n <keepAlive include={cacheKeys} max={30} isKey>\n {Component && <Component />}\n </keepAlive>\n );\n }}\n </iBizRouterView>\n ) : (\n <div>非路由模式导航占位暂未支持</div>\n )}\n </div>\n );\n },\n});\n","import {\n IPanelItemProvider,\n PanelController,\n PanelItemController,\n} from '@ibiz-template/runtime';\nimport { IPanelItem } from '@ibiz/model-core';\nimport { NavPosIndexController } from './nav-pos-index.controller';\n\n/**\n * 导航占位适配器\n *\n * @author lxm\n * @date 2022-09-19 22:09:03\n * @export\n * @class NavPosIndexProvider\n * @implements {EditorProvider}\n */\nexport class NavPosIndexProvider implements IPanelItemProvider {\n component: string = 'IBizNavPosIndex';\n\n async createController(\n panelItem: IPanelItem,\n panel: PanelController,\n parent: PanelItemController | undefined,\n ): Promise<NavPosIndexController> {\n const c = new NavPosIndexController(panelItem, panel, parent);\n await c.init();\n return c;\n }\n}\n","import { registerPanelItemProvider } from '@ibiz-template/runtime';\nimport { withInstall } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { NavPosIndex } from './nav-pos-index';\nimport { NavPosIndexProvider } from './nav-pos-index.provider';\nimport { NavPosIndexState } from './nav-pos-index.state';\nimport { NavPosIndexController } from './nav-pos-index.controller';\n\nexport { NavPosIndexState, NavPosIndexController };\n\nexport const IBizNavPosIndex = withInstall(NavPosIndex, function (v: App) {\n v.component(NavPosIndex.name, NavPosIndex);\n registerPanelItemProvider(\n 'RAWITEM_NAV_POS_INDEX',\n () => new NavPosIndexProvider(),\n );\n});\n\nexport default IBizNavPosIndex;\n","import { App } from 'vue';\nimport {\n IBizPanelContainer,\n IBizPanelCtrlPos,\n IBizNavPos,\n IBizPanelField,\n IBizGridContainer,\n IBizPanelRawItem,\n} from '@ibiz-template/vue3-util';\nimport IBizViewContentPanelContainer from './view-content-panel-container';\nimport IBizViewHeaderPanelContainer from './view-header-panel-container';\nimport IBizViewFooterPanelContainer from './view-footer-panel-container';\nimport IBizPanelButton from './panel-button';\nimport IBizWFActionButton from './wf-action-button';\nimport IBizWFStepTrace from './wf-step-trace';\nimport IBizNavPosIndex from './nav-pos-index';\n\nexport const IBizPanelComponents = {\n install: (v: App): void => {\n v.use(IBizPanelContainer);\n v.use(IBizPanelCtrlPos);\n v.use(IBizNavPosIndex);\n v.use(IBizViewContentPanelContainer);\n v.use(IBizViewHeaderPanelContainer);\n v.use(IBizViewFooterPanelContainer);\n v.use(IBizPanelButton);\n v.use(IBizNavPos);\n v.use(IBizPanelField);\n v.use(IBizWFStepTrace);\n v.use(IBizGridContainer);\n v.use(IBizPanelRawItem);\n v.use(IBizWFActionButton);\n },\n};\n\nexport default IBizPanelComponents;\n","import {\n IViewController,\n IIndexViewState,\n IViewEvent,\n IAppMenuController,\n ViewEngineBase,\n} from '@ibiz-template/runtime';\nimport { IAppIndexView } from '@ibiz/model-core';\n\nexport class IndexViewEngine extends ViewEngineBase {\n protected declare view: IViewController<\n IAppIndexView,\n IIndexViewState,\n IViewEvent\n >;\n\n get appmenu(): IAppMenuController {\n return this.view.getController('appmenu') as IAppMenuController;\n }\n}\n","import { RuntimeError } from '@ibiz-template/core';\nimport {\n ViewController,\n IEditFormController,\n SysUIActionTag,\n EventBase,\n IEditViewState,\n IEditViewEvent,\n ControlVO,\n calcDeCodeNameById,\n ViewEngineBase,\n IToolbarController,\n OpenAppViewCommand,\n getAppViewRef,\n IModalData,\n} from '@ibiz-template/runtime';\nimport { IAppDEEditView } from '@ibiz/model-core';\n\nexport class MobEditViewEngine extends ViewEngineBase {\n /**\n * 视图控制器\n */\n protected declare view: ViewController<\n IAppDEEditView,\n IEditViewState,\n IEditViewEvent\n >;\n\n get form(): IEditFormController {\n return this.view.getController('form') as IEditFormController;\n }\n\n async onCreated(): Promise<void> {\n await super.onCreated();\n const { childNames, modal } = this.view;\n childNames.push('form');\n\n modal.hooks.shouldDismiss.tapPromise(async context => {\n if (this.form.state.modified) {\n const isAllow = await ibiz.modal.confirm({\n title: '关闭提醒',\n desc: '表单数据已经修改,确定要关闭?',\n });\n if (!isAllow) {\n context.allowClose = false;\n // return null;\n }\n }\n });\n }\n\n /**\n * 获取所有的工具栏控制器\n * @author lxm\n * @date 2023-06-30 04:06:17\n * @protected\n * @return {*} {IToolbarController[]}\n */\n protected getAllToolbars(): IToolbarController[] {\n const toolbars: IToolbarController[] = [];\n if (this.leftToolbar) {\n toolbars.push(this.leftToolbar);\n }\n if (this.rightToolbar) {\n toolbars.push(this.rightToolbar);\n }\n if (this.footerToolbar) {\n toolbars.push(this.footerToolbar);\n }\n return toolbars;\n }\n\n /**\n * 更新工具栏状态\n * @author lxm\n * @date 2023-06-30 04:04:15\n * @protected\n * @param {IData} data\n * @param {string} appDeId\n */\n protected updateToolbarState(data: IData, appDeId?: string): void {\n this.getAllToolbars().forEach(toolbar => {\n toolbar.calcButtonState(data, appDeId);\n });\n }\n\n async onMounted(): Promise<void> {\n await super.onMounted();\n const { model, evt } = this.view;\n\n // 监控form事件\n const formDeId = this.form.model.appDataEntityId;\n const formDataStateChange = (event: EventBase) => {\n const data = event.data[0];\n this.updateToolbarState(data, formDeId);\n const info: IData = {};\n info.dataInfo = data.srfmajortext || '';\n evt.emit('onViewInfoChange', info);\n };\n\n this.form.evt.on('onLoadSuccess', event => {\n formDataStateChange(event);\n evt.emit('onDataChange', { ...event, actionType: 'LOAD' });\n });\n this.form.evt.on('onLoadDraftSuccess', event => {\n formDataStateChange(event);\n evt.emit('onDataChange', { ...event, actionType: 'LOADDRAFT' });\n });\n this.form.evt.on('onSaveSuccess', event => {\n const deName = calcDeCodeNameById(this.view.model.appDataEntityId!);\n const formData = event.data[0];\n if (this.view.context[deName] !== formData.srfkey) {\n this.view.context[deName] = formData.srfkey;\n }\n formDataStateChange(event);\n evt.emit('onDataChange', { ...event, actionType: 'SAVE' });\n });\n this.form.evt.on('onRemoveSuccess', event => {\n formDataStateChange(event);\n evt.emit('onDataChange', { ...event, actionType: 'REMOVE' });\n });\n\n if (model.loadDefault) {\n this.load();\n }\n }\n\n getData(): IData[] {\n return this.form.getData();\n }\n\n async load(): Promise<IData> {\n return this.form.load();\n }\n\n async save(): Promise<IData> {\n return this.form.save();\n }\n\n async refresh(): Promise<void> {\n await this.load();\n // this.view.evt.emit('refreshed', [data]);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n async call(key: string, args: any): Promise<IData | null | undefined> {\n if (key === SysUIActionTag.SAVE) {\n await this.form.save();\n return null;\n }\n if (key === SysUIActionTag.SAVE_AND_EXIT) {\n await this.form.save();\n return { closeView: true };\n }\n if (key === SysUIActionTag.REMOVE_AND_EXIT) {\n const res = await this.form.remove();\n return { closeView: res };\n }\n if (key === SysUIActionTag.SAVE_AND_NEW) {\n this.saveAndNew();\n }\n if (key === SysUIActionTag.REFRESH) {\n await this.refresh();\n }\n if (key === SysUIActionTag.SAVE_AND_START) {\n await this.wfStart();\n }\n if (key === SysUIActionTag.VIEW_WF_STEP) {\n await this.wfSubmit();\n }\n return super.call(key, args);\n }\n\n /**\n * 保存并新建\n *\n * @author zk\n * @date 2023-06-01 01:06:59\n * @return {*}\n * @memberof MobEditViewEngine\n */\n async saveAndNew(): Promise<null> {\n await this.form.save();\n this.form.state.data = new ControlVO();\n // 置空主键\n this.view.context[calcDeCodeNameById(this.view.model.appDataEntityId!)] =\n undefined;\n await this.form.load();\n return null;\n }\n\n /**\n * 工作流启动\n *\n * @author lxm\n * @date 2022-09-29 20:09:27\n * @returns {*} {Promise<void>}\n */\n async wfStart(): Promise<void> {\n // 先保存\n await this.save();\n\n const app = ibiz.hub.getApp(this.view.context.srfappid);\n const entityService = await app.deService.getService(\n this.view.model.appDataEntityId!,\n );\n\n // *获取工作流版本信息\n const res = await entityService.wf.getWFVersion();\n if (res.data.length === 0) {\n throw new RuntimeError('当前工作流版本不存在');\n }\n // todo 多个的情况要出一个确认框选择后走后续逻辑\n\n const wfInfo = res.data[0];\n const refKey = `WFSTART@${wfInfo.wfversion}`;\n\n // 处理视图上下文\n const newContext = Object.assign(this.view.context.clone(), {\n activeForm: wfInfo['process-form'],\n });\n // 处理视图参数\n const newParams = {\n processDefinitionKey: wfInfo.definitionkey,\n };\n\n // 查找工作流启动视图\n const startView = getAppViewRef(this.view.model, refKey);\n\n // *没有工作流启动视图的,自己启动工作流\n if (!startView) {\n await this.form.wfStart({ viewParam: newParams });\n await this.view.closeView();\n return;\n }\n\n // *有工作流启动视图的,由启动视图执行工作流启动\n const result: IModalData = await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n startView.refAppViewId,\n newContext,\n newParams,\n );\n\n // 启动视图正常关闭后关闭当前视图\n if (result.ok) {\n await this.view.closeView();\n }\n }\n\n /**\n * 工作流提交\n *\n * @author lxm\n * @date 2022-09-29 20:09:27\n * @returns {*} {Promise<void>}\n */\n wfSubmit(): Promise<void> {\n return this.form.wfSubmit();\n }\n}\n","import {\n IDRTabController,\n IEditView3Event,\n IEditView3State,\n ViewController,\n} from '@ibiz-template/runtime';\nimport { IAppDEEditView } from '@ibiz/model-core';\nimport { MobEditViewEngine } from './mob-edit-view.engine';\n\n/**\n * 编辑视图3(分页关系)\n *\n * @export\n * @class EditView3Engine\n * @extends {EditViewEngine}\n */\nexport class MobEditView3Engine extends MobEditViewEngine {\n protected declare view: ViewController<\n IAppDEEditView,\n IEditView3State,\n IEditView3Event\n >;\n\n async onCreated(): Promise<void> {\n await super.onCreated();\n const { childNames } = this.view;\n childNames.push('drtab');\n }\n\n /**\n * 数据分页栏\n *\n * @readonly\n * @memberof EditView3Engine\n */\n get drtab(): IDRTabController {\n return this.view.getController('drtab') as IDRTabController;\n }\n}\n","import {\n MDViewEngine,\n ViewController,\n IListViewState,\n IListViewEvent,\n IMobMDCtrlController,\n SysUIActionTag,\n EventBase,\n getWFContext,\n} from '@ibiz-template/runtime';\nimport { IAppDEMobMDView } from '@ibiz/model-core';\n\n/**\n * 移动端多数据视图驱动引擎\n *\n * @author chitanda\n * @date 2023-06-16 17:06:00\n * @export\n * @class MobMDViewEngine\n * @extends {MDViewEngine}\n */\nexport class MobMDViewEngine extends MDViewEngine {\n protected declare view: ViewController<\n IAppDEMobMDView,\n IListViewState,\n IListViewEvent\n >;\n\n get mdctrl(): IMobMDCtrlController {\n return this.view.getController('mdctrl') as IMobMDCtrlController;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n async call(key: string, args: any): Promise<IData | null | undefined> {\n if (key === SysUIActionTag.LOAD_MORE) {\n await this.loadMore();\n return null;\n }\n return super.call(key, args);\n }\n\n /**\n * 多数据部件激活事件处理\n * @author lxm\n * @date 2023-08-31 02:53:37\n * @protected\n * @param {EventBase} event\n * @return {*} {Promise<void>}\n */\n protected async onXDataActive(event: EventBase): Promise<void> {\n const wfContext = getWFContext(event.data[0]);\n Object.assign(event.context, wfContext);\n await this.openData(event);\n }\n\n /**\n * 加载更多数据\n *\n * @author chitanda\n * @date 2023-06-16 17:06:10\n * @protected\n * @return {*} {Promise<void>}\n */\n protected loadMore(): Promise<void> {\n return this.mdctrl.loadMore();\n }\n\n /**\n * 挂载完成\n *\n * @author zk\n * @date 2023-05-26 10:05:13\n * @memberof PickupGridViewEngine\n */\n async onMounted(): Promise<void> {\n await super.onMounted();\n this.xdataControl.state.singleSelect = this.view.state.singleSelect;\n this.xdataControl.evt.on('onSelectionChange', async event => {\n this.view.evt.emit('onSelectionChange', { ...event });\n });\n this.xdataControl.evt.on('onActive', async event => {\n this.view.evt.emit('onDataActive', { ...event });\n });\n }\n}\n","import {\n ViewController,\n IPickupViewPanelController,\n SysUIActionTag,\n IPickupViewState,\n IPickupViewEvent,\n ViewEngineBase,\n} from '@ibiz-template/runtime';\nimport { IAppDEMobPickupView } from '@ibiz/model-core';\n\nexport class MobPickupViewEngine extends ViewEngineBase {\n /**\n * 视图控制器\n *\n * @protected\n * @type {ViewController<IAppDEMobPickupView, IPickupViewState, IPickupViewEvent>}\n * @memberof MobPickupViewEngine\n */\n protected declare view: ViewController<\n IAppDEMobPickupView,\n IPickupViewState,\n IPickupViewEvent\n >;\n\n /**\n * 选中数据\n *\n * @type {IData[]}\n * @memberof MobPickupViewEngine\n */\n selectData: IData[] = [];\n\n /**\n * 选择视图面板\n *\n * @readonly\n * @memberof MobPickupViewEngine\n */\n get pickupViewPanel(): IPickupViewPanelController {\n return this.view.getController(\n 'pickupviewpanel',\n ) as IPickupViewPanelController;\n }\n\n /**\n * 视图created生命周期执行逻辑\n *\n * @return {*} {Promise<void>}\n * @memberof MobPickupViewEngine\n */\n async onCreated(): Promise<void> {\n await super.onCreated();\n const { childNames } = this.view;\n childNames.push('pickupviewpanel');\n if (!this.view.slotProps.pickupviewpanel) {\n this.view.slotProps.pickupviewpanel = {};\n }\n this.view.slotProps.pickupviewpanel.singleSelect = true;\n }\n\n /**\n * 视图mounted生命周期执行逻辑\n *\n * @return {*} {Promise<void>}\n * @memberof MobPickupViewEngine\n */\n async onMounted(): Promise<void> {\n await super.onMounted();\n this.pickupViewPanel.evt.on('onSelectionChange', event => {\n this.selectData = event.data;\n });\n this.pickupViewPanel.evt.on('onDataActive', event => {\n this.pickupViewPanelDataActive(event.data);\n });\n }\n\n /**\n * 选则面板激活数据\n *\n * @author zk\n * @date 2023-05-26 05:05:13\n * @param {*} data\n * @memberof MobPickupViewEngine\n */\n public pickupViewPanelDataActive(data: IData[]): void {\n this.selectData = data;\n this.view.closeView({ ok: true, data: this.selectData });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n async call(key: string, args: any): Promise<IData | null | undefined> {\n if (key === SysUIActionTag.CANCEL) {\n this.cancel();\n return null;\n }\n if (key === SysUIActionTag.OK) {\n this.confirm();\n return null;\n }\n return super.call(key, args);\n }\n\n /**\n * 确认\n *\n * @memberof MobPickupViewEngine\n */\n confirm(): void {\n this.view.closeView({ ok: true, data: this.selectData });\n }\n\n /**\n * 取消\n *\n * @memberof MobPickupViewEngine\n */\n cancel(): void {\n this.view.closeView({ ok: false, data: [] });\n }\n\n /**\n * 计算底部的显示与否\n * @author lxm\n * @date 2023-06-20 02:45:17\n * @protected\n * @return {*} {boolean}\n */\n protected calcViewFooterVisible(): boolean {\n return true;\n }\n}\n","import {\n ViewController,\n IMPickupViewState,\n IMPickupViewEvent,\n SysUIActionTag,\n IListController,\n} from '@ibiz-template/runtime';\n// todo 缺失 IAppDEMobMPickupView\nimport { IAppDEMobPickupView } from '@ibiz/model-core';\nimport { MobPickupViewEngine } from './mob-pickup-view.engine';\n\n/**\n * 多数据选择视图引擎\n *\n * @author zk\n * @date 2023-05-25 03:05:17\n * @export\n * @class MobMPickupViewEngine\n * @extends {MobViewBaseEngine}\n */\nexport class MobMPickupViewEngine extends MobPickupViewEngine {\n protected declare view: ViewController<\n IAppDEMobPickupView,\n IMPickupViewState,\n IMPickupViewEvent\n >;\n\n /**\n * 简单列表控制器\n *\n * @author zk\n * @date 2023-05-26 03:05:43\n * @readonly\n * @memberof MobMPickupViewEngine\n */\n get simpleList(): IListController {\n return this.view.getController('simplelist') as IListController;\n }\n\n /**\n * 视图created生命周期执行逻辑\n *\n * @author zk\n * @date 2023-05-26 05:05:36\n * @return {*} {Promise<void>}\n * @memberof MobMPickupViewEngine\n */\n async onCreated(): Promise<void> {\n await super.onCreated();\n // 设置回显selectedData\n if (this.view.params.selectedData) {\n this.selectData = JSON.parse(this.view.params.selectedData);\n delete this.view.params.selectedData;\n }\n if (!this.view.slotProps.simplelist) {\n this.view.slotProps.simplelist = {};\n }\n if (!this.view.slotProps.pickupviewpanel) {\n this.view.slotProps.pickupviewpanel = {};\n }\n this.view.slotProps.pickupviewpanel.singleSelect = false;\n this.view.slotProps.simplelist.singleSelect = false;\n this.view.slotProps.simplelist.mdctrlActiveMode = 2;\n }\n\n /**\n * 视图mounted生命周期执行逻辑\n *\n * @author zk\n * @date 2023-05-26 05:05:27\n * @return {*} {Promise<void>}\n * @memberof MobMPickupViewEngine\n */\n async onMounted(): Promise<void> {\n console.log(this);\n await super.onMounted();\n this.pickupViewPanel.evt.on('onSelectionChange', event => {\n this.pickupViewPanelSelectionChange(event.data);\n });\n\n // 列表激活取消选中\n this.simpleList.evt.on('onActive', event => {\n this.removeSelection(event.data);\n // this.simpleListActive(event.data);\n });\n // 默认回显选中数据\n this.simpleList.setData(this.selectData);\n }\n\n /**\n * 选则面板激活数据\n *\n * @author zk\n * @date 2023-05-26 05:05:13\n * @param {*} data\n * @memberof MobPickupViewEngine\n */\n public pickupViewPanelDataActive(): void {\n // this.handlePushSimpleListItems(data);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n async call(key: string, args: any): Promise<IData | null | undefined> {\n if (key === SysUIActionTag.CANCEL) {\n this.cancel();\n return null;\n }\n if (key === SysUIActionTag.OK) {\n this.confirm();\n return null;\n }\n if (key === SysUIActionTag.ADD_ALL) {\n this.addAll();\n return null;\n }\n if (key === SysUIActionTag.REMOVE_ALL) {\n this.removeAll();\n return null;\n }\n if (key === SysUIActionTag.ADD_SELECTION) {\n this.addSelection();\n return null;\n }\n return super.call(key, args);\n }\n\n /**\n * 选则面板激活数据\n *\n * @author zk\n * @date 2023-05-26 05:05:13\n * @param {*} data\n * @memberof PickupViewEngine\n */\n public pickupViewPanelSelectionChange(data: IData[]): void {\n this.simpleList.setData(data);\n }\n\n /**\n * 列表激活\n *\n * @author zk\n * @date 2023-05-26 05:05:47\n * @param {IData[]} data\n * @memberof MobMPickupViewEngine\n */\n // simpleListActive(data: IData[]): void {\n // if (!data || data.length === 0) {\n // return;\n // }\n // const item = data[0];\n // const allData = this.simpleList.getAllData();\n // // 删掉item\n // const index = allData.findIndex(_item => _item.srfkey === item.srfkey);\n // if (index !== -1) {\n // const items = allData.splice(index, 1);\n // this.simpleList.setData(items);\n // }\n // }\n\n /**\n * 计算重复数据\n *\n * @author zk\n * @date 2023-07-03 04:07:48\n * @param {IData[]} items\n * @param {IData} data\n * @memberof MobMPickupViewEngine\n */\n calcDuplicateData(items: IData[], data: IData[]): IData[] {\n data.forEach(item => {\n const index = items.findIndex(\n _item =>\n (_item.srfkey && _item.srfkey === item.srfkey) ||\n _item.id === item.id,\n );\n if (index !== -1) {\n items.splice(index, 1);\n } else {\n items.push(item);\n }\n });\n return items;\n }\n\n /**\n * 处理添加简单列表数据\n *\n * @author zk\n * @date 2023-05-26 02:05:41\n * @param {IData[]} data\n * @memberof MobMPickupViewEngine\n */\n public handlePushSimpleListItems(data: IData[]): void {\n const allData = this.simpleList.getAllData();\n const items = this.calcDuplicateData(allData, data);\n this.simpleList.setData(items);\n }\n\n /**\n * 添加所有\n *\n * @author zk\n * @date 2023-05-25 05:05:12\n * @memberof MobMPickupViewEngine\n */\n public async addAll(): Promise<void> {\n const allItems = await this.pickupViewPanel.getAllData();\n this.handlePushSimpleListItems(allItems);\n }\n\n /**\n * 删除所有\n *\n * @author zk\n * @date 2023-05-25 05:05:14\n * @memberof MobMPickupViewEngine\n */\n public removeAll(): void {\n this.simpleList.setData([]);\n }\n\n /**\n * 添加选中\n *\n * @author zk\n * @date 2023-05-25 05:05:10\n * @memberof MobMPickupViewEngine\n */\n public async addSelection(): Promise<void> {\n const selectItem = await this.pickupViewPanel.getSelectedData();\n this.handlePushSimpleListItems(selectItem);\n }\n\n /**\n * 删除选中\n *\n * @author zk\n * @date 2023-05-25 05:05:16\n * @memberof MobMPickupViewEngine\n */\n public removeSelection(selectData: IData[]): void {\n const items = this.simpleList.getAllData();\n selectData.forEach((_item: IData) => {\n const index = items.findIndex(\n (item: IData) => _item.srfkey === item.srfkey,\n );\n if (index !== -1) {\n items.splice(index, 1);\n }\n });\n this.simpleList.setData(items);\n }\n\n /**\n * 提交\n *\n * @author zk\n * @date 2023-05-25 06:05:42\n * @memberof MobMPickupViewEngine\n */\n confirm(): void {\n const items = this.simpleList.getAllData();\n this.view.closeView({ ok: true, data: items });\n }\n\n /**\n * 计算底部的显示与否\n * @author lxm\n * @date 2023-06-20 02:45:17\n * @protected\n * @return {*} {boolean}\n */\n protected calcViewFooterVisible(): boolean {\n let showFooter: boolean = false;\n // 工具栏\n if (this.simpleList) {\n showFooter = true;\n }\n return showFooter;\n }\n}\n","import {\n ViewController,\n ITreeViewEvent,\n ITreeViewState,\n MDViewEngine,\n ITreeController,\n} from '@ibiz-template/runtime';\nimport { IAppDEMobTreeView } from '@ibiz/model-core';\n\nexport class MobTreeViewEngine extends MDViewEngine {\n protected declare view: ViewController<\n IAppDEMobTreeView,\n ITreeViewState,\n ITreeViewEvent\n >;\n\n /**\n * 多数据部件名称\n *\n * @author zk\n * @date 2023-06-28 09:06:55\n * @readonly\n * @memberof MobTreeViewEngine\n */\n get xdataControlName(): string {\n return 'treeview';\n }\n\n get tree(): ITreeController {\n return this.view.getController('treeview') as ITreeController;\n }\n\n async onCreated(): Promise<void> {\n await super.onCreated();\n if (!this.view.slotProps.tree) {\n this.view.slotProps.tree = {};\n }\n }\n}\n","import {\n ViewController,\n IPickupTreeViewEvent,\n IPickupTreeViewState,\n ITreeController,\n} from '@ibiz-template/runtime';\nimport { IAppDEMobTreeView } from '@ibiz/model-core';\nimport { MobTreeViewEngine } from './mob-tree-view.engine';\n\nexport class MobPickupTreeViewEngine extends MobTreeViewEngine {\n protected declare view: ViewController<\n IAppDEMobTreeView,\n IPickupTreeViewState,\n IPickupTreeViewEvent\n >;\n\n /**\n * 多数据部件名称\n *\n * @author zk\n * @date 2023-06-28 09:06:55\n * @readonly\n * @memberof MobPickupTreeViewEngine\n */\n get xdataControlName(): string {\n return 'tree';\n }\n\n get tree(): ITreeController {\n return this.view.getController('tree') as ITreeController;\n }\n\n /**\n * 挂载完成\n *\n * @author zk\n * @date 2023-05-26 10:05:13\n * @memberof PickupGridViewEngine\n */\n async onMounted(): Promise<void> {\n const { model } = this.view;\n this.xdataControl.evt.on('onSelectionChange', async event => {\n this.view.evt.emit('onSelectionChange', { ...event });\n });\n this.xdataControl.evt.on('onActive', async event => {\n this.view.evt.emit('onDataActive', { ...event });\n });\n // 默认加载\n if (model.loadDefault) {\n this.load();\n }\n }\n\n /**\n * 创建完成\n *\n * @author zk\n * @date 2023-07-03 10:07:28\n * @memberof MobPickupTreeViewEngine\n */\n async onCreated(): Promise<void> {\n super.onCreated();\n if (!this.view.slotProps.tree) {\n this.view.slotProps.tree = {};\n }\n this.view.slotProps.tree.singleSelect = this.view.state.singleSelect;\n }\n}\n","import {\n ViewController,\n ITabExpPanelController,\n ITabExpViewEvent,\n ITabExpViewState,\n ViewEngineBase,\n} from '@ibiz-template/runtime';\nimport { IAppDETabExplorerView } from '@ibiz/model-core';\n\nexport class MobTabExpViewEngine extends ViewEngineBase {\n /**\n * 分页面板视图控制器\n *\n * @author zk\n * @date 2023-06-19 10:06:00\n * @protected\n * @type {ViewController<\n * IAppDETabExplorerView,\n * ITabExpViewState,\n * ITabExpViewEvent\n * >}\n * @memberof MobTabExpViewEngine\n */\n protected declare view: ViewController<\n IAppDETabExplorerView,\n ITabExpViewState,\n ITabExpViewEvent\n >;\n\n /**\n * 分页导航面板\n *\n * @author zk\n * @date 2023-06-19 10:06:15\n * @readonly\n * @memberof MobTabExpViewEngine\n */\n get tabExpPanel(): ITabExpPanelController {\n return this.view.getController('tabexppanel') as ITabExpPanelController;\n }\n\n /**\n * 视图created生命周期执行逻辑\n *\n * @author zk\n * @date 2023-06-19 10:06:22\n * @return {*} {Promise<void>}\n * @memberof MobTabExpViewEngine\n */\n async onCreated(): Promise<void> {\n await super.onCreated();\n const { childNames } = this.view;\n childNames.push('tabexppanel');\n if (!this.view.slotProps.tabexppanel) {\n this.view.slotProps.tabexppanel = {};\n }\n this.view.slotProps.tabexppanel.defaultTabName = this.view.state.srfnav;\n }\n}\n","import { RuntimeModelError } from '@ibiz-template/core';\nimport {\n ViewController,\n IEditFormController,\n IWFDynaEditViewEvent,\n IWFDynaEditViewState,\n getControl,\n WFLink,\n IModalData,\n OpenAppViewCommand,\n IAppDEService,\n IToolbarController,\n getWFSubmitViewId,\n} from '@ibiz-template/runtime';\nimport { IAppDEMobWFDynaEditView, IDEEditForm } from '@ibiz/model-core';\nimport { createUUID } from 'qx-util';\nimport { WFActionButtonController } from '../panel-component/wf-action-button';\nimport { MobEditViewEngine } from './mob-edit-view.engine';\n\nexport class MobWFDynaEditViewEngine extends MobEditViewEngine {\n protected declare view: ViewController<\n IAppDEMobWFDynaEditView,\n IWFDynaEditViewState,\n IWFDynaEditViewEvent\n >;\n\n /**\n * 流程表单是否可编辑\n *\n * @author lxm\n * @date 2022-09-29 15:09:16\n * @type {boolean}\n */\n isEditable: boolean = false;\n\n /**\n * 是否计算工作流工具栏\n * @author lxm\n * @date 2023-06-20 06:33:37\n * @type {boolean}\n */\n isCalcWFToolbar: boolean = true;\n\n /**\n * 当前激活表单模型\n *\n * @author lxm\n * @date 2022-09-29 17:09:44\n * @type {IDEEditForm}\n */\n processForm!: IDEEditForm;\n\n /**\n * 实体服务\n * @author lxm\n * @date 2023-06-19 07:09:38\n * @type {IAppDEService}\n */\n entityService!: IAppDEService;\n\n /**\n * 工作流links\n *\n * @author lxm\n * @date 2022-10-08 16:10:53\n * @type {WFLink[]}\n */\n wfLinks: WFLink[] = [];\n\n /**\n * 编辑表单控制器\n * @author lxm\n * @date 2023-06-19 06:39:59\n * @readonly\n * @type {IEditFormController}\n */\n get form(): IEditFormController {\n return this.view.getController(\n this.processForm.name!,\n ) as IEditFormController;\n }\n\n /**\n * 底部按钮\n *\n * @author zk\n * @date 2023-11-08 04:11:41\n * @readonly\n * @type {PanelButtonController}\n * @memberof MobWFDynaEditViewEngine\n */\n get footerButton(): WFActionButtonController {\n return this.view.layoutPanel!.panelItems\n .wf_action_button as WFActionButtonController;\n }\n\n /**\n * 工作流按钮所在的工具栏控制器\n * @author lxm\n * @date 2023-07-07 05:32:20\n * @readonly\n * @type {(IToolbarController | undefined)}\n */\n get wfToolbar(): IToolbarController | undefined {\n return this.rightToolbar;\n }\n\n async onCreated(): Promise<void> {\n await super.onCreated();\n\n // 实体服务\n const app = ibiz.hub.getApp(this.view.context.srfappid);\n this.entityService = await app.deService.getService(\n this.view.model.appDataEntityId!,\n );\n\n // 第一次计算\n await this.calcProcessForm();\n const { childNames } = this.view;\n childNames.push(this.processForm.name!);\n }\n\n async onMounted(): Promise<void> {\n await super.onMounted();\n // 监听工具栏的额外按钮并执行\n this.wfToolbar?.evt.on('onClick', async event => {\n if (event.buttonType === 'extra' && event.eventArg) {\n this.onLinkClick(event.eventArg);\n }\n });\n }\n\n async load(): Promise<IData> {\n const res = await super.load();\n if (this.isCalcWFToolbar) {\n this.calcWfToolbar();\n }\n return res;\n }\n\n /**\n * 刷新页面\n *\n * @author lxm\n * @date 2022-09-29 15:09:03\n * @returns {*} {Promise<void>}\n */\n async refresh(): Promise<void> {\n const previous = this.processForm;\n await this.calcProcessForm();\n // 表单没有变化的时候调用表单的刷新\n if (previous === this.processForm) {\n await super.refresh();\n }\n }\n\n /**\n * 计算流程步骤表单的名称\n * @author lxm\n * @date 2023-06-20 06:24:21\n * @return {*} {Promise<string>}\n */\n async calcProcessFormName(): Promise<string> {\n const res = await this.entityService.wf.getWFStep(this.view.params);\n this.isEditable = res.data.isEditable === 'true';\n const processForm = res.data['process-mobform']\n ? `wfform_${res.data['process-mobform']}`\n : 'form';\n return processForm;\n }\n\n /**\n * 计算当前步骤的表单\n *\n * @author lxm\n * @date 2022-09-29 15:09:07\n * @returns {*} {Promise<void>}\n */\n async calcProcessForm(): Promise<void> {\n const processForm = await this.calcProcessFormName();\n const formModel = getControl(this.view.model, processForm.toLowerCase());\n if (!formModel) {\n throw new RuntimeModelError(\n this.view.model,\n `找不到表单${processForm}的模型`,\n );\n }\n this.processForm = formModel;\n\n // 变更传给form插槽的模型prop\n if (!this.view.slotProps.form) {\n this.view.slotProps.form = {};\n }\n this.view.slotProps.form.modelData = this.processForm;\n }\n\n /**\n * 计算工作流工具栏,需要在表单加载回来之后执行\n *\n * @author lxm\n * @date 2022-09-30 19:09:44\n * @returns {*} {Promise<void>}\n */\n async calcWfToolbar(): Promise<void> {\n if (!this.wfToolbar) {\n throw new RuntimeModelError(this.view.model, '缺少工具栏部件模型');\n }\n this.wfToolbar?.clearExtraButtons();\n\n const res = await this.entityService.wf.getWFLink(\n Object.assign(this.view.context.clone(), {\n taskDefinitionKey: this.view.params.taskDefinitionKey,\n }),\n this.getData()[0].getOrigin(),\n );\n this.wfLinks = res.data as WFLink[];\n // 创建按钮唯一标识\n this.wfLinks.forEach((item: WFLink) => {\n item.id = item.id ? item.id : createUUID();\n });\n this.initFooterButton();\n }\n\n /**\n * 工作流工具栏点击回调处理\n *\n * @author lxm\n * @date 2022-10-08 17:10:29\n * @param {id} link 点击按钮对应的id\n * @returns {*} {Promise<void>}\n */\n async onLinkClick(id: string): Promise<void> {\n const link = this.wfLinks.find(wfLink => {\n return wfLink.id === id;\n });\n if (link) {\n return this.wfSubmitByLink(link);\n }\n }\n\n /**\n * 根据工作流link处理工作流提交\n *\n * @param {WFLink} link\n * @returns {*}\n * @memberof WFDynaEditViewController\n */\n async wfSubmitByLink(link: WFLink): Promise<void> {\n // 流程表单可以编辑才会先保存\n if (this.isEditable) {\n await this.save();\n }\n\n const { sequenceflowmobform } = link;\n\n // 处理视图上下文\n const newContext = Object.assign(this.view.context.clone(), {\n isEditable: this.isEditable,\n processForm: sequenceflowmobform,\n });\n // 处理视图参数\n const newParams = {\n ...link,\n };\n\n // 查找工作流提交视图\n const submitView = getWFSubmitViewId(this.view.model, link);\n\n // *没有工作流操作视图的,自己提交工作流\n if (!submitView) {\n await this.form.wfSubmit({ viewParam: newParams });\n await this.view.closeView();\n return;\n }\n\n // *有工作流操作视图的,由提交视图执行工作流提交\n const result: IModalData = await ibiz.commands.execute(\n OpenAppViewCommand.TAG,\n submitView,\n newContext,\n newParams,\n );\n\n // 提交视图正常关闭后关闭当前视图\n if (result.ok) {\n await this.view.closeView();\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n async call(key: string, args: any): Promise<IData | null | undefined> {\n if (key === 'WFAction') {\n this.onLinkClick(args.id);\n return null;\n }\n return super.call(key, args);\n }\n\n /**\n * 初始化工作流动态按钮\n *\n * @author zk\n * @date 2023-11-12 06:11:49\n * @protected\n * @memberof MobWFDynaEditViewEngine\n */\n protected initFooterButton(): void {\n const WFButtons = this.wfLinks.map(link => {\n return {\n id: link.id,\n caption: link.sequenceFlowName,\n buttonType: 'extra',\n tooltip: link.sequenceFlowName,\n name: link.sequenceFlowName,\n } as const;\n });\n this.footerButton.initWFButtons(WFButtons);\n // 加载完行为按钮 再显示底部区域\n if (this.wfLinks.length > 0 || this.footerToolbar) {\n const controller = this.viewLayoutPanel?.panelItems.view_footer;\n if (controller) {\n controller.state.visible = true;\n }\n }\n }\n}\n","import {\n ViewController,\n IWFDynaActionViewState,\n IWFDynaActionViewEvent,\n SysUIActionTag,\n} from '@ibiz-template/runtime';\nimport { IAppDEMobWFDynaActionView } from '@ibiz/model-core';\nimport { MobWFDynaEditViewEngine } from './mob-wf-dyna-edit-view.engine';\n\nexport class MobWFDynaActionViewEngine extends MobWFDynaEditViewEngine {\n /**\n * 视图控制器\n *\n * @protected\n * @type {ViewController<IAppDEWFDynaActionView, IWFDynaActionViewState, IWFDynaActionViewEvent>}\n * @memberof WFDynaActionViewEngine\n */\n protected declare view: ViewController<\n IAppDEMobWFDynaActionView,\n IWFDynaActionViewState,\n IWFDynaActionViewEvent\n >;\n\n isCalcWFToolbar = false;\n\n async calcProcessFormName(): Promise<string> {\n this.isEditable = this.view.context.isEditable === 'true';\n const processForm = this.view.context.processForm\n ? `wfform_${this.view.context.processForm}`\n : 'form';\n return processForm;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n async call(key: string, args: any): Promise<IData | null | undefined> {\n if (key === SysUIActionTag.OK) {\n this.onOkButtonClick();\n return null;\n }\n if (key === SysUIActionTag.CANCEL) {\n await this.onCancelButtonClick();\n return null;\n }\n return super.call(key, args);\n }\n\n /**\n * 确认按钮回调\n *\n * @author lxm\n * @date 2022-09-12 20:09:13\n */\n async onOkButtonClick(): Promise<void> {\n // 先保存数据在提交工作流\n if (this.isEditable) {\n await this.save();\n }\n await this.form.wfSubmit({});\n await this.view.closeView({ ok: true, data: this.getData() });\n }\n\n /**\n * 取消按钮回调\n *\n * @author lxm\n * @date 2022-09-12 20:09:00\n */\n async onCancelButtonClick(): Promise<void> {\n await this.view.closeView({ ok: false, data: [] });\n }\n\n protected calcViewFooterVisible(): boolean {\n return true;\n }\n}\n","import {\n ViewController,\n IWFDynaEditView3State,\n IWFDynaEditView3Event,\n IDRTabController,\n} from '@ibiz-template/runtime';\nimport { IAppDEWFDynaEditView } from '@ibiz/model-core';\nimport { MobWFDynaEditViewEngine } from './mob-wf-dyna-edit-view.engine';\n\nexport class MobWFDynaEditView3Engine extends MobWFDynaEditViewEngine {\n protected declare view: ViewController<\n IAppDEWFDynaEditView,\n IWFDynaEditView3State,\n IWFDynaEditView3Event\n >;\n\n async onCreated(): Promise<void> {\n await super.onCreated();\n const { childNames } = this.view;\n childNames.push('drtab');\n }\n\n /**\n * 数据分页栏\n *\n * @readonly\n * @memberof EditView3Engine\n */\n get drtab(): IDRTabController {\n return this.view.getController('drtab') as IDRTabController;\n }\n}\n","import {\n ViewController,\n IWFDynaStartViewState,\n IWFDynaStartViewEvent,\n SysUIActionTag,\n} from '@ibiz-template/runtime';\nimport { IAppDEMobWFDynaStartView } from '@ibiz/model-core';\nimport { MobWFDynaEditViewEngine } from './mob-wf-dyna-edit-view.engine';\n\nexport class MobWFDynaStartViewEngine extends MobWFDynaEditViewEngine {\n /**\n * 视图控制器\n *\n * @protected\n * @type {ViewController<IAppDEWFDynaStartView, IWFDynaStartViewState, IWFDynaStartViewEvent>}\n * @memberof WFDynaStartViewEngine\n */\n protected declare view: ViewController<\n IAppDEMobWFDynaStartView,\n IWFDynaStartViewState,\n IWFDynaStartViewEvent\n >;\n\n isCalcWFToolbar = false;\n\n async calcProcessFormName(): Promise<string> {\n this.isEditable = this.view.context.isEditable === 'true';\n const processForm = this.view.context.processForm\n ? `wfform_${this.view.context.processForm}`\n : 'form';\n return processForm;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n async call(key: string, args: any): Promise<IData | null | undefined> {\n if (key === SysUIActionTag.OK) {\n this.onOkButtonClick();\n return null;\n }\n if (key === SysUIActionTag.CANCEL) {\n await this.onCancelButtonClick();\n return null;\n }\n return super.call(key, args);\n }\n\n /**\n * 确认按钮回调\n *\n * @author lxm\n * @date 2022-09-12 20:09:13\n */\n async onOkButtonClick(): Promise<void> {\n // 先保存数据在提交工作流\n if (this.isEditable) {\n await this.save();\n }\n await this.form.wfStart({});\n await this.view.closeView({ ok: true, data: this.getData() });\n }\n\n /**\n * 取消按钮回调\n *\n * @author lxm\n * @date 2022-09-12 20:09:00\n */\n async onCancelButtonClick(): Promise<void> {\n await this.view.closeView({ ok: false, data: [] });\n }\n\n protected calcViewFooterVisible(): boolean {\n return true;\n }\n}\n","import { RuntimeError } from '@ibiz-template/core';\nimport {\n ViewController,\n IWFStepTraceViewState,\n IWFStepTraceViewEvent,\n ViewEngineBase,\n IAppDEService,\n} from '@ibiz-template/runtime';\nimport { IAppDEWFDynaEditView } from '@ibiz/model-core';\nimport { WFStepTraceController } from '../panel-component/wf-step-trace';\n\nexport class WFStepTraceViewEngine extends ViewEngineBase {\n protected declare view: ViewController<\n IAppDEWFDynaEditView,\n IWFStepTraceViewState,\n IWFStepTraceViewEvent\n >;\n\n /**\n * 实体服务\n *\n * @author zk\n * @date 2023-07-04 10:07:42\n * @protected\n * @type {IAppDEService}\n * @memberof WFStepTraceViewEngine\n */\n protected entityService!: IAppDEService;\n\n /**\n * 导航占位控制器\n *\n * @readonly\n * @type {(NavPosController | undefined)}\n * @memberof WFStepTraceViewEngine\n */\n get WFStepTrace(): WFStepTraceController | undefined {\n return this.viewLayoutPanel?.panelItems\n .wf_wfsteptrace as WFStepTraceController;\n }\n\n /**\n * 生命周期-组件加载完成\n *\n * @author zk\n * @date 2023-07-04 10:07:18\n * @memberof WFStepTraceViewEngine\n */\n async onMounted(): Promise<void> {\n await super.onMounted();\n const appDataEntityId = this.view.parentView?.model.appDataEntityId;\n if (!appDataEntityId) {\n throw new RuntimeError('没有接收到appDataEntityId');\n }\n const app = ibiz.hub.getApp(this.view.context.srfappid);\n this.entityService = await app.deService.getService(appDataEntityId);\n await this.load();\n }\n\n /**\n * 加载数据\n *\n * @author zk\n * @date 2023-07-04 10:07:36\n * @return {*}\n * @memberof WFStepTraceViewEngine\n */\n async load(): Promise<void> {\n const res = await this.entityService.wf.getWFHistory(this.view.context);\n if (res.data) {\n this.WFStepTrace?.setData(res.data);\n }\n }\n}\n","import {\n MDViewEngine,\n ViewController,\n IDataViewState,\n IDataViewEvent,\n SysUIActionTag,\n IMobMDCtrlController,\n} from '@ibiz-template/runtime';\nimport { IAppDEMobMDView } from '@ibiz/model-core';\n\n/**\n * 移动端卡片视图驱动引擎\n *\n * @author chitanda\n * @date 2023-06-16 17:06:00\n * @export\n * @class MobDataViewEngine\n * @extends {MDViewEngine}\n */\nexport class MobDataViewEngine extends MDViewEngine {\n protected declare view: ViewController<\n IAppDEMobMDView,\n IDataViewState,\n IDataViewEvent\n >;\n\n /**\n * 数据视图部件控制器\n *\n * @author zk\n * @date 2023-07-06 03:07:25\n * @readonly\n * @memberof MobDataViewEngine\n */\n get dataview(): IMobMDCtrlController {\n return this.view.getController('dataview') as IMobMDCtrlController;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n async call(key: string, args: any): Promise<IData | null | undefined> {\n if (key === SysUIActionTag.LOAD_MORE) {\n await this.loadMore();\n return null;\n }\n return super.call(key, args);\n }\n\n /**\n * 加载更多数据\n *\n * @author zk\n * @date 2023-07-06 03:07:07\n * @protected\n * @return {*} {Promise<void>}\n * @memberof MobDataViewEngine\n */\n protected loadMore(): Promise<void> {\n return this.dataview.loadMore?.() || Promise.resolve();\n }\n}\n","import {\n ViewEngineBase,\n ViewController,\n IAppPortalViewState,\n IAppPortalViewEvent,\n IWizardPanelController,\n} from '@ibiz-template/runtime';\nimport { IAppPortalView } from '@ibiz/model-core';\n\nexport class PortalViewEngine extends ViewEngineBase {\n /**\n * 视图控制器\n *\n * @protected\n * @type {ViewController<IAppDEAppPortalView, IAppPortalViewState, IAppPortalViewEvent>}\n * @memberof PortalViewEngine\n */\n protected declare view: ViewController<\n IAppPortalView,\n IAppPortalViewState,\n IAppPortalViewEvent\n >;\n\n /**\n * 数据看板部件\n *\n * @readonly\n * @memberof PortalViewEngine\n */\n get dashboard(): IWizardPanelController {\n return this.view.getController('dashboard') as IWizardPanelController;\n }\n\n async onCreated(): Promise<void> {\n await super.onCreated();\n const { childNames } = this.view;\n childNames.push('dashboard');\n }\n}\n","import {\n ViewController,\n IPickupMDViewEvent,\n IPickupMDViewState,\n IMobMDCtrlController,\n MDViewEngine,\n} from '@ibiz-template/runtime';\nimport { IAppDEDataView } from '@ibiz/model-core';\n\nexport class PickupMDViewEngine extends MDViewEngine {\n protected declare view: ViewController<\n IAppDEDataView,\n IPickupMDViewState,\n IPickupMDViewEvent\n >;\n\n /**\n * 表格控制器\n *\n * @author zk\n * @date 2023-05-26 05:05:43\n * @readonly\n * @memberof PickupMDViewViewEngine\n */\n get mdctrl(): IMobMDCtrlController {\n return this.view.getController('mdctrl') as IMobMDCtrlController;\n }\n\n async onCreated(): Promise<void> {\n super.onCreated();\n if (!this.view.slotProps.mdctrl) {\n this.view.slotProps.mdctrl = {};\n }\n this.view.slotProps.mdctrl.singleSelect = this.view.state.singleSelect;\n }\n\n async onMounted(): Promise<void> {\n await super.onMounted();\n const { model } = this.view;\n this.xdataControl.evt.on('onSelectionChange', async event => {\n this.view.evt.emit('onSelectionChange', { ...event });\n });\n this.xdataControl.evt.on('onActive', async event => {\n this.view.evt.emit('onDataActive', { ...event });\n });\n // 默认加载\n if (!this.view.state.noLoadDefault && model.loadDefault) {\n this.load();\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n async call(key: string, args: any): Promise<IData | null | undefined> {\n if (key === 'GetAllData') {\n return this.mdctrl.state.items;\n }\n return super.call(key, args);\n }\n}\n","import {\n IViewController,\n ViewEngineBase,\n IViewEvent,\n IViewState,\n} from '@ibiz-template/runtime';\nimport { IAppDECustomView } from '@ibiz/model-core';\n\nexport class MobCustomViewEngine extends ViewEngineBase {\n protected declare view: IViewController<\n IAppDECustomView,\n IViewState,\n IViewEvent\n >;\n}\n","import {\n ViewController,\n SysUIActionTag,\n IOptViewState,\n IOptViewEvent,\n ViewCallTag,\n} from '@ibiz-template/runtime';\nimport { IAppDEEditView } from '@ibiz/model-core';\nimport { MobEditViewEngine } from './mob-edit-view.engine';\n\nexport class MobOptViewEngine extends MobEditViewEngine {\n /**\n * 视图控制器\n *\n * @protected\n * @type {ViewController<IAppDEEditView, IOptViewState, IOptViewEvent>}\n * @memberof MobOptViewEngine\n */\n protected declare view: ViewController<\n IAppDEEditView,\n IOptViewState,\n IOptViewEvent\n >;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n async call(key: string, args: any): Promise<any> {\n if (key === SysUIActionTag.CANCEL) {\n this.cancel();\n return null;\n }\n if (key === SysUIActionTag.OK) {\n await this.confirm();\n return null;\n }\n if (key === ViewCallTag.LOAD) {\n this.load();\n return null;\n }\n if (key === ViewCallTag.VALIDATE) {\n return this.form.validate();\n }\n return super.call(key, args);\n }\n\n /**\n * 确认\n *\n * @memberof MobOptViewEngine\n */\n async confirm(): Promise<void> {\n await this.form.save();\n this.view.closeView({ ok: true, data: this.getData() });\n }\n\n /**\n * 取消\n *\n * @memberof MobOptViewEngine\n */\n cancel(): void {\n this.view.closeView({ ok: false, data: [] });\n }\n\n protected calcViewFooterVisible(): boolean {\n return true;\n }\n}\n","import {\n ViewController,\n IChartViewEvent,\n IChartViewState,\n MDViewEngine,\n IChartController,\n} from '@ibiz-template/runtime';\nimport { IAppDEChartView } from '@ibiz/model-core';\n\nexport class MobChartViewEngine extends MDViewEngine {\n protected declare view: ViewController<\n IAppDEChartView,\n IChartViewState,\n IChartViewEvent\n >;\n\n /**\n * 多数据部件名称\n * @author lxm\n * @date 2023-06-07 09:17:19\n * @readonly\n * @type {string}\n */\n get xdataControlName(): string {\n return 'chart';\n }\n\n get chart(): IChartController {\n return this.view.getController('chart') as IChartController;\n }\n\n async onCreated(): Promise<void> {\n await super.onCreated();\n if (!this.view.slotProps.chart) {\n this.view.slotProps.chart = {};\n }\n }\n}\n","import {\n ViewController,\n ICalendarViewEvent,\n ICalendarViewState,\n MDViewEngine,\n} from '@ibiz-template/runtime';\nimport { IAppDECalendarView } from '@ibiz/model-core';\n\nexport class MobCalendarViewEngine extends MDViewEngine {\n protected declare view: ViewController<\n IAppDECalendarView,\n ICalendarViewState,\n ICalendarViewEvent\n >;\n}\n","import { IViewController, IMobViewController } from '@ibiz-template/runtime';\nimport { IndexViewEngine } from './index-view.engine';\nimport { MobEditViewEngine } from './mob-edit-view.engine';\nimport { MobEditView3Engine } from './mob-edit-view3.engine';\nimport { MobMDViewEngine } from './mob-md-view-engine';\nimport { MobMPickupViewEngine } from './mob-mpickup-view-engine';\nimport { MobPickupTreeViewEngine } from './mob-pickup-tree-view.engine';\nimport { MobPickupViewEngine } from './mob-pickup-view.engine';\nimport { MobTabExpViewEngine } from './mob-tab-exp-view.engine';\nimport { MobTreeViewEngine } from './mob-tree-view.engine';\nimport { MobWFDynaActionViewEngine } from './mob-wf-dyna-action-view.engine';\nimport { MobWFDynaEditViewEngine } from './mob-wf-dyna-edit-view.engine';\nimport { MobWFDynaEditView3Engine } from './mob-wf-dyna-edit-view3.engine';\nimport { MobWFDynaStartViewEngine } from './mob-wf-dyna-start-view.engine';\nimport { WFStepTraceViewEngine } from './wf-step-trace-view.engine';\nimport { MobDataViewEngine } from './mob-data-view-engine';\nimport { PortalViewEngine } from './portal-view.engine';\nimport { PickupMDViewEngine } from './mob-pickup-md-view.engine';\nimport { MobCustomViewEngine } from './mob-custom-view.engine';\nimport { MobOptViewEngine } from './mob-opt-view.engine';\nimport { MobChartViewEngine } from './mob-chart-view.engine';\nimport { MobCalendarViewEngine } from './mob-calendar-view.engine';\n\nexport const IBizViewEngine = {\n install: (): void => {\n ibiz.engine.register(\n `VIEW_APPINDEXVIEW`,\n (c: IViewController) => new IndexViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobEditView`,\n (c: IViewController) => new MobEditViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobEditView3`,\n (c: IViewController) => new MobEditView3Engine(c),\n );\n ibiz.engine.register(\n `VIEW_MobMDView`,\n (c: IMobViewController) => new MobMDViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobPickupView`,\n (c: IMobViewController) => new MobPickupViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobMPickupView`,\n (c: IMobViewController) => new MobMPickupViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobPickupMDView`,\n (c: IMobViewController) => new PickupMDViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_DEMOBWFDYNAEDITVIEW`,\n (c: IMobViewController) => new MobWFDynaEditViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_DEMOBWFDYNAEDITVIEW3`,\n (c: IMobViewController) => new MobWFDynaEditView3Engine(c),\n );\n ibiz.engine.register(\n `VIEW_DEMOBWFDYNAACTIONVIEW`,\n (c: IMobViewController) => new MobWFDynaActionViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_DEMOBWFDYNASTARTVIEW`,\n (c: IMobViewController) => new MobWFDynaStartViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobTabExpView`,\n (c: IMobViewController) => new MobTabExpViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobTreeView`,\n (c: IMobViewController) => new MobTreeViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobPickupTreeView`,\n (c: IMobViewController) => new MobPickupTreeViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_APPWFSTEPTRACEVIEW`,\n (c: IMobViewController) => new WFStepTraceViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_DEMOBLISTVIEW`,\n (c: IMobViewController) => new MobMDViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_DEMOBDATAVIEW`,\n (c: IMobViewController) => new MobDataViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_APPPORTALVIEW`,\n (c: IMobViewController) => new PortalViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_DEMOBCUSTOMVIEW`,\n (c: IMobViewController) => new MobCustomViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobOptionView`,\n (c: IMobViewController) => new MobOptViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobChartView`,\n (c: IMobViewController) => new MobChartViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobCalendarView`,\n (c: IMobViewController) => new MobCalendarViewEngine(c),\n );\n // 部件视图\n ibiz.engine.register(\n `VIEW_MobEditView9`,\n (c: IMobViewController) => new MobEditViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobMDView9`,\n (c: IMobViewController) => new MobMDViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobTabExpView9`,\n (c: IMobViewController) => new MobTabExpViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobCalendarView9`,\n (c: IMobViewController) => new MobCalendarViewEngine(c),\n );\n ibiz.engine.register(\n `VIEW_MobChartView9`,\n (c: IMobViewController) => new MobChartViewEngine(c),\n );\n },\n};\n","import { useNamespace } from '@ibiz-template/vue3-util';\nimport { computed, defineComponent, onMounted } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport './404-view.scss';\n\nexport const View404 = defineComponent({\n setup() {\n const ns = useNamespace('404-view');\n const router = useRouter();\n const route = useRoute();\n const gotoIndexView = () => {\n router.push('/');\n };\n\n onMounted(() => {\n setTimeout(() => {\n const el = document.getElementById('app-loading-x') as HTMLDivElement;\n if (el) {\n el.style.display = 'none';\n }\n }, 300);\n });\n\n const isTop = computed(() => {\n return !route.params.view1;\n });\n\n return { ns, isTop, gotoIndexView };\n },\n render() {\n return <div>404</div>;\n },\n});\n","import { useNamespace } from '@ibiz-template/vue3-util';\nimport { computed, defineComponent, reactive, ref } from 'vue';\nimport { useRoute } from 'vue-router';\nimport './login-view.scss';\n\nexport const LoginView = defineComponent({\n setup() {\n const loading = ref(false);\n\n const formRef = ref<IData | null>(null);\n\n const route = useRoute();\n const ru = (route.query.ru as string) || '/';\n\n const loginData = reactive({\n username: '',\n password: '',\n });\n\n const login = async () => {\n try {\n if (!loginData.username) {\n ibiz.notification.error({\n desc: '请填写用户名',\n });\n return;\n }\n if (!loginData.password) {\n ibiz.notification.error({\n desc: '请填写密码',\n });\n return;\n }\n loading.value = true;\n const bol = await ibiz.auth.login(\n loginData.username,\n loginData.password,\n );\n if (bol) {\n window.location.hash = ru;\n window.location.reload();\n }\n loading.value = false;\n } catch (error) {\n ibiz.notification.error({\n desc: (error as IData)?.response?.data?.message || '登录失败',\n });\n loading.value = false;\n }\n };\n\n const title = computed(() => {\n return ibiz.env.AppTitle;\n });\n\n return { loginData, login, title, loading, formRef };\n },\n render() {\n const ns = useNamespace('login-view');\n return (\n <div class={ns.b()}>\n <div class={ns.b('logo')}>\n <img class={ns.b('logo-img')} src='./assets/img/login-logo.png' />\n <div class={ns.b('title')}>{this.title}</div>\n </div>\n <van-form class={ns.b('form')} ref='formRef'>\n <div class={ns.b('user')}>\n <ion-icon name='person'></ion-icon>\n <van-field\n placeholder='请输入用户名'\n name='用户名'\n v-model={this.loginData.username}\n rules={[{ required: true, message: '请填写用户名' }]}\n ></van-field>\n </div>\n <div class={ns.b('password')}>\n <ion-icon name='lock-closed'></ion-icon>\n <van-field\n placeholder='请输入密码'\n name='密码'\n type='password'\n v-model={this.loginData.password}\n rules={[{ required: true, message: '请填写密码' }]}\n ></van-field>\n </div>\n </van-form>\n <div class={ns.b('btns')}>\n <van-button\n loading={this.loading}\n class={ns.b('login-btn')}\n onClick={this.login}\n >\n 登录\n </van-button>\n </div>\n </div>\n );\n },\n});\n","import { IBizPortalView, IBizView } from '@ibiz-template/vue3-util';\nimport { App } from 'vue';\nimport { IBizCommonComponents } from './common';\nimport {\n IBizAppMenuControl,\n IBizEditFormControl,\n IBizFormControl,\n IBizMDCtrlControl,\n IBizSearchFormControl,\n IBizTabExpPanelControl,\n IBizViewLayoutPanelControl,\n IBizPickupViewPanelControl,\n IBizListControl,\n IBizToolbarControl,\n IBizSearchBarControl,\n IBizCaptionBarControl,\n IBizDRTabControl,\n IBizTreeControl,\n IBizDataViewControl,\n IBizDashboardControl,\n IBizPanelControl,\n IBizChartControl,\n IBizCalendarControl,\n} from './control';\nimport IBizEditor from './editor';\nimport { iBizI18n } from './locale';\nimport IBizPanelComponents from './panel-component';\nimport { IBizViewEngine } from './view-engine';\n\nexport { i18n } from './locale';\n\nexport * from './common';\nexport * from './util';\nexport * from './view';\nexport * from './panel-component';\nexport * from './editor';\n\nexport default {\n install: (v: App): void => {\n ibiz.i18n = iBizI18n;\n\n v.use(IBizCommonComponents);\n v.use(IBizViewEngine);\n v.use(IBizView);\n v.use(IBizViewLayoutPanelControl);\n // 门户视图单独处理\n v.use(IBizPortalView);\n // 部件\n v.use(IBizPanelComponents);\n v.use(IBizMDCtrlControl);\n v.use(IBizPanelControl);\n v.use(IBizAppMenuControl);\n v.use(IBizFormControl);\n v.use(IBizSearchFormControl);\n v.use(IBizEditFormControl);\n v.use(IBizPickupViewPanelControl);\n v.use(IBizListControl);\n v.use(IBizTabExpPanelControl);\n v.use(IBizToolbarControl);\n v.use(IBizCaptionBarControl);\n v.use(IBizSearchBarControl);\n v.use(IBizDRTabControl);\n v.use(IBizTreeControl);\n v.use(IBizDataViewControl);\n v.use(IBizDashboardControl);\n v.use(IBizChartControl);\n v.use(IBizCalendarControl);\n // 编辑器\n v.use(IBizEditor);\n },\n};\n"],"names":["IBizActionToolbar","defineComponent","props","actionDetails","type","required","actionsState","caption","mode","default","setup","emit","ns","handleClick","detail","event","stopPropagation","render","details","_createVNode","map","visible","addSeparator","_resolveComponent","e","id","showIcon","_createTextVNode","IBizCol","exports","layoutPos","state","useNamespace","spacingClass","computed","ns2","classArr","top","bottom","left","position","right","spacingRight","value","gridAttrs","gridLayoutPos","md","calcGridLayoutPos","layout","styles","offset","colClass","_a","cssVars","_b","_c","defaultSlot","pos","flexGrow","flexBasis","resolveComponent","__DEV__","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","RECURSION_LIMIT","queueFlush","flushJobs","queuePostFlushCb","cb","flushPostFlushCbs","seen","deduped","a","b","getId","checkRecursiveUpdates","job","comparator","diff","check","callWithErrorHandling","isFunction","val","getComponentName","Component","includeInferred","fn","count","instance","componentName","ShapeFlags","ShapeFlags2","MoveType","MoveType2","isKeepAlive","vnode","IBizKeepAlive","slots","getCurrentInstance","sharedContext","cache","keys","current","parentSuspense","patch","move","_unmount","createElement","storageContainer","container","anchor","isSVG","optimized","instance2","queuePostRenderEffect","invokeArrayFns","vnodeHook","invokeVNodeHook","devtoolsComponentAdded","unmount","resetShapeFlag","pruneCache","filter","key","name","pruneCacheEntry","pruneCache2","cached","watch","include","exclude","keyList","matches","pendingCacheKey","cacheSubtree","getInnerChild","onMounted","onUpdated","onBeforeUnmount","children","rawVNode","isVNode","comp","isAsyncWrapper","max","slotKey","cachedVNode","cloneVNode","setTransitionHooks","pattern","isRegExp","v","i","hooks","fns","arg","hook","prevVNode","callWithAsyncErrorHandling","createDevtoolsComponentHook","component","args","IBizNoData","text","IBizRawItem","content","String","rawItem","contentType","rawItemContent","ref","sysImage","rawItemType","includes","isImg","imgUrl","reg","playerParams","dividerParams","mute","autoplay","replay","showcontrols","contentPosition","rawItemText","convertValue","alertParams","closeabled","rawConfig","replaceAll","newVal","oldVal","immediate","renderContent","path","html","_isSlot","s","_isVNode","IBizRow","valign","align","_dir","dir","IBizCommonComponents","IBizViewShell","IBizIcon","IBizControlBase","IBizRouterView","IBizControlShell","renderPanelItem","panelItem","c","ins","providers","panelItems","provider","child","h","ViewLayoutPanelControl","modelData","controller","useControlController","ViewLayoutPanelController","reactive","params","inputData","evt","model","forEach","subC","_slot","__defProp","__defNormalProp","obj","__publicField","ViewLayoutPanelProvider","IBizViewLayoutPanelControl","withInstall","registerControlProvider","ControlType","PanelControl","context","PanelController","Object","data","loadDefault","PanelProvider","IBizPanelControl","MDCtrlControl","selectedData","toLowerCase","leftSlidingActionGroup","item","isSelect","row","onRowClick","select","renderIcon","renderRightSlot","slotOption","renderItemContent","itemClass","assign","renderNoData","srfmajortext","onClick","isLoaded","renderSlidingActionGroup","group","groupDetails","btnContainer","btn","panel","rightSlidingActionGroup","disabled","renderDefault","srfkey","renderDefaultItem","renderGroup","renderMDContent","MDCtrlProvider","IBizMDCtrlControl","AppMenuControl","AppMenuController","prepareControl","columnNum","route","useRoute","calcCurMenu","allItems","app","getAllItems","func","hub","getApp","onTabChange","active","activeName","defaultActiveMenuItem","onClickMenuItem","openDefault","activeMenu","renderIconView","renderListView","appMenu","appMenuItems","length","itemState","icon","controlStyle","m","renderItem","AppMenuProvider","IBizAppMenuControl","SearchFormControl","on","searchFooter","SearchFormProvider","IBizSearchFormControl","FormGroupPanel","isCollapse","changeCollapse","onActionClick","captionText","captionItemName","defaultSlots","$slots","slot","codeName","showCaption","push","is","disableClose","bm","showMoreMode","header","be","footer","FormGroupPanelProvider","detailModel","form","parent","FormGroupPanelController","IBizFormGroupPanel","registerFormDetailProvider","FormItem","onValueChange","setDataValue","editor","readonly","editorProps","labelWidth","IBizFormItemContainer","error","label","labelPos","labelAlign","editorAlign","result","FormItemProvider","FormItemController","IBizFormItem","FormPage","currentPage","lazyKeys","noTabHeader","title","labelClass","IBizFormPageItem","_a2","FormPageProvider","_parent","FormPageController","IBizFormPage","FormButton","bind","FormButtonProvider","FormButtonController","IBizFormButton","FormDRUIPart","useController","onCreated","setEmbedView","viewShell","viewId","FormDRUIPartProvider","FormDRUIPartController","IBizFormDRUIPart","FormRawItem","FormRawItemProvider","FormRawItemController","IBizFormRawItem","FormTabPanel","FormTabPanelProvider","FormTabPanelController","IBizFormTabPanel","FormTabPage","FormTabPageProvider","FormTabPageController","IBizFormTabPage","FormMDCtrl","renderContentRepeater","mdCtrlContentController","renderContentByType","FormMDCtrlContainer","buttonVisible","handleRemove","insertButtonClick","hasCaption","renderFormContent","renderMainContent","FormMDCtrlDataView","controlProps","tempContext","onSelectionChange","class","controlComponent","FormMDCtrlForm","calcDeCodeNameById","onFormDataChange","onRemoveSuccess","index","onDataRemove","FormMDCtrlList","prototype","toString","call","FormMDCtrlRepeaterFormOne","setFromController","FormMDCtrlRepeaterForm","FormMDCtrlRepeaterFormShell","Number","Boolean","FormMDCtrlItemController","init","slotProps","renderByDetailType","detailId","detailProps","renderSlot","childDetails","findChildFormDetails","childSlots","_slot2","renderDetails","FormMDCtrlProvider","FormMDCtrlController","IBizFormMDCtrl","EditFormProvider","EditFormControl","isSimple","EditFormController","controlType","IBizEditFormControl","FormControl","FormDetail","_props","detailModels","page","IBizFormControl","PickupViewPanelControl","singleSelect","embeddedAppDEViewId","PickupViewPanelProvider","IBizPickupViewPanelControl","ListControl","showPicker","openReviewList","findIndex","itemStyle","renderReViewDefaultItem","renderExpand","renderListContent","renderReViewListContent","renderLoadMore","$event","items","loadMore","renderReviewList","ListProvider","IBizListControl","TabExpPanelControl","defaultTabName","handleTabChange","tabPages","isCreated","tabTag","TabExpPanelProvider","IBizTabExpPanelControl","btnContent","viewMode","image","ToolbarControl","ToolbarController","onItemClick","renderExtraButtons","renderToolbarItem","extraButtons","button","btnSize","itemId","itemType","action","before","toolbarItemNode","ToolbarProvider","IBizToolbarControl","CaptionBarControl","subCaption","CaptionBarProvider","IBizCaptionBarControl","SearchBarControl","onSearch","debounce","onInput","handleInput","debounceSearch","cssVarBlock","query","SearchBarProvider","IBizSearchBarControl","DRTabController","ControlController","router","Srfuf","drTabPages","editItemCaption","editItemCapLanguageRes","hideEditItem","editItemSysImage","uniqueTag","dedrtabPages","getNestedRoutePath","itemCaption","drBarItem","ctrlName","viewForm","navigateContexts","navigateParams","originParams","resultContext","resultParams","calcNavParams","DRTabControl","setRouter","tab","DRTabProvider","IBizDRTabControl","TreeProvider","IBizTreeControl","defineAsyncComponent","module","DataViewControl","renderItemAction","deuiactionGroup","renderFooter","getOptItemModel","cardClass","renderCard","cardStyle","cardWidth","cardHeight","height","DataViewControlProvider","IBizDataViewControl","renderPortletByType","opts","commonProps","portlets","providerComp","console","DashboardControl","DashboardController","DashboardProvider","ContainerPortlet","ContainerPortletProvider","portletModel","dashboard","ContainerPortletController","IBizContainerPortlet","registerPortletProvider","PortletLayout","PortletPartController","isShowHeader","$props","showTitleBar","uiactionGroup","MenuPortlet","menu","MenuPortletProvider","MenuPortletController","IBizMenuPortlet","IBizDashboardControl","ChartProvider","IBizChartControl","ControlLoadingPlaceholder","ARROW_DOWN_IMG","ARROW_UP_IMG","truthProp","makeArrayProp","makeNumberProp","defaultVal","makeStringProp","makeDateProp","isDate","stdin_default","CN","EN","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__spreadValues","prop","__spreadProps","formatDate","time","format","lang","languageEntiy","language","date","year","month","day","hour","min","sec","preArr","elem","fillNumber","daysOfMonth","isLeap","getDayOfWeek","pick","ignoreUndefined","ret","transDateToYearMonthDay","transDateToHourMinute","transYearMontDayToDate","transHourMinuteToDate","minutes","hours","getMinDate","getMaxDate","compareMonth","date1","date2","year1","year2","month1","month2","compareDay","day1","day2","compareMonthResult","cloneDate","getDayByOffset","cloned","getPrevDay","currDate","getNextDay","getToday","today","calcDateNum","calcMiddleDay","nextDate","dateArr","getStartEndDay","start","end","checkPlatform","isDateInRange","curr","minDate","maxDate","currentDate","isWindow","options","useExpose","apis","useMountedOrActivated","mounted","nextTick","onActivated","makeDOMRect","width","useRect","elementOrRef","element","unref","calendarDateProps","weekTitleRef","calendarRef","calendarItemRef","yearOfToday","monthOfToday","dayOfToday","weekArray","calendarWeek","calendarOfMonth","calendarOfMonthShow","calendarDaysTotalLength","lastMonthYear","lastMonth","nextMonthYear","nextMonth","checkedDate","weekStartIndex","translateIndex","transitionDuration","touch","isTouching","calendarGroupHeight","calendarWeekTitleHeight","calendarItemHeight","touchStartPositionX","touchStartPositionY","calendarY","selectedDayIndex","lastWeek","nextWeek","isLastWeekInCurrentMonth","isNextWeekInCurrentMonth","markDateColorObj","markDateTypeObj","currentYearMonth","languageUtil","isShowWeek","showWeek","checkedDatetime","daysArr","dayIndexOfMonth","lastLine","currentWeek","sliceStart","sliceEnd","firstDayOfCurrentWeek","lastDayOfCurrentWeek","isNotCurrentMonthDay","dateOfCurrentShow","isFirstDayOfMonth","formatDisabledDate","fDate","calculateCalendarOfMonth","calendarOfCurrentMonth","lastMonthYear2","lastMonth2","nextMonthYear2","nextMonth2","dayOfWeek","lastMonthDays","fillDays","calculateCalendarOfThreeMonth","firstMonth","secondMonth","thirdMonth","tempDate","preYear","preMonth","preDay","showMonth","getLastWeek","checked","getNextWeek","getLastMonth","getNextMonth","dealCheckedDate","selectType","maxRange","existIndex","startDay","endDay","compareToStart","clickCalendarDay","isToday","isCheckedDay","isDisabledHorizontalScroll","direc","lastWeekLastedDay","nextWeekFirstDay","lastMonthLastedDay","nextMonthFirstDay","isCanScroll","dire","setDisabledScrollDirection","changeWeekView","isNext","touchStart","touchMove","moveX","moveY","touchEnd","markDateColor","dateString","dateFormat","objArr","renderWeek","getRangeDayClassName","renderDay","dayEle","renderMonth","j","el","renderCalendarDate","calendarTimeProps","timeContentRef","timeItemRef","timeHeight","timeArray","timeStartY","timeStartUp","initTimeArray","checkHours","checkMinutes","timeContentFirst","timeContentSecond","hoursUp","minutesUp","dateStr","timeTouchStart","transform","timeTouchEnd","endUp","distance","upCount","halfWinWith","up","minute","timeTouchMove","Y","isBeSelectedTime","renderTimeItem","ref2","renderCalendarTime","calendarScrollContainerProps","containerRef","renderDateItem","renderContainer","calendarYearMonthProps","yearRange","disabledScrollDirec","yearMonthShow","itemHeight","initYear","yearArr","currYear","yearStart","initYearRange","yearRangeArr","getThreeYearArr","yearStartLast","yearStartCurr","yearStartNext","getThreeYearRangeArr","getNextOpitonData","getLastOptionData","slideChange","getRangeYear","yearEnd","isDisabled","dateClick","isChecked","isNotCurrent","renderYearMonthItem","arr","renderYearMonth","CalendarScrollContainer","calendarProps","isShowCalendar","calendarBodyHeight","firstTimes","limitDateRange","getInitialDateTime","defaultDatetime","allowSameDay","nowDate","nowDatetime","currDateTime","yearMonthType","isShowDatetimePicker","isShowArrowImg","calendarContentHeight","direction","toggleWeek","reset","dateChange","yearMonthClick","emitDate","timeChange","close","makeEmitDate","confirm","formatDatetime","showYearMonthPicker","showCalendar","showTime","heightChange","getThemeColor","cssVar","themeColorKeys","k","renderTodayButton","todayEle","renderConfirmButton","confirmEle","renderAction","timeText","dateText","_Fragment","updateShowWeekView","yearMonthChange","yearMonth","renderCalendar","CalendarDate","_mergeProps","renderTimePicker","CalendarTime","renderYearMonthPicker","CalendarYearMonth","renderCtrlImg","renderHashCalendar","_Calendar","CalendarControl","components","VueHashCalendar","mdctrlActiveMode","selectDate","tag","selectedDate","newDateString","oldDateString","dayjs","calcItemStyle","markDate","filterSameDayAndUniqueType","itemData","color","_date","renderMarker","style","deData","isNil","renderCalendarList","calendarItems","renderCalendarListByItemType","list","calendarItem","CalendarProvider","IBizCalendarControl","NotSupportedEditor","IBizSpan","codeList","valueSeparator","valueFormat","unitName","_codeList","codeListText","codeItemValueNumber","find","editorRef","useFocusAndBlur","componentRef","getEditorEmits","SpanEditorController","CodeListEditorController","linkAppViewId","RuntimeModelError","OpenAppViewCommand","SpanEditorProvider","editorType","editorModel","parentController","IBizInput","emits","inputRef","rows","currentVal","isDebounce","blurCacheValue","awaitSearch","leading","handleKeyUp","handleChange","$el","inputTag","onBlur","IBizInputNumber","show","oldEmitVal","isNaN","number","target","emitValue","floor","autoFocus","onFocus","TextBoxEditorController","EditorController","toNumber","TextBoxEditorProvider","IBizCommonRightIcon","IBizDropdown","hasChildren","nodes","handleTreeNodes","tempObj","codeItem","treeNodes","curValue","valueText","valueArr","Array","selectedOptions","setTimeout","editContent","onConfirm","DropDownListEditorController","DropDownListEditorProvider","IBizCheckboxList","loadCodeList","deep","currentMode","selectArray","selectsArray","strVal","selects","len","temp","numVal","_item","_key","_datas","onSelectArrayChange","equals","CheckBoxListEditorController","CheckBoxListEditorProvider","IBizSwitch","currentValue","SwitchEditorController","SwitchEditorProvider","IBizRadio","get","set","RadioButtonListEditorController","RadioButtonListEditorProvider","IBizSlider","step","editorParams","stepValue","maxValue","range","SliderEditorController","SliderEditorProvider","IBizStepper","precision","StepperEditorController","StepperEditorProvider","IBizRate","RateEditorController","RateEditorProvider","t","this","o","S","n","r","l","d","p","u","f","g","w","y","x","T","D","M","X","_","E","L","O","P","H","I","z","W","C","IBizDatePicker","getDatePickerProps","beginYear","currentYear","rollDateInstance","minStep","cancel","formatVal","formatValue","RollDate","endYear","DatePickerEditorController","DatePickerEditorProvider","IBizPicker","isShowAll","isEmpty","handleDataSelect","dataItems","dataItem","textName","res","onACSelect","handleData","openLinkView","trimQuery","debounceChange","getServiceData","onClear","closeCircle","pickerAutoCompleteRef","loading","openPicker","IBizMPicker","open","selectItems","formattedItem","handleOpenViewClose","valArr","isArray","openPickUpView","findItem","JSON","stringify","onSelect","onRemove","trim","onOpenChange","splice","keyName","IBizPickerSelectView","keySet","clone","valueItem","ibiz","tempText","split","tempValue","onViewDataChange","anchors","_height","isOpen","append","pickupAppViewId","_vShow","PickerEditorController","_d","getDeACMode","minorSortAppDEFieldId","minorSortDir","embedViewEditors","fixedParams","tempParams","mergeDeepLeft","object","DataPickerEditorProvider","useVanUpload","valueChange","files","headers","getCookie","CoreConst","uploadUrl","downloadUrl","uploadCache","urls","file","_files","beforeUpload","onSuccess","response","onError","HttpError","uploadFile","formData","resolve","reject","afterRead","fi","onDownload","url","limit","IBizFileUpload","accept","IBizImageUpload","getUploadProps","dialogImageUrl","dialogVisible","onPreview","onDialogVisibleChange","IBizImageSelect","UploadEditorController","isDrag","multiple","uploadParams","exportParams","convertNavData","qs","RuntimeError","fileName","downloadFileFromBlob","FileUploaderEditorProvider","IBizNumberRangePicker","Infinity","startPlaceHolder","rangeSeparator","endPlaceHolder","editorItems","editorItemNames","minValue","refFormItem","valueName","NumberRangeEditorController","NumberRangeEditorProvider","IBizDateRangePicker","getDateRangeProps","endEditorRef","startEditorRef","valueArray","startFormatValue","array","rollDateOpt","el2","endFormatValue","DateRangeEditorController","DateRangeEditorProvider","IBizCascader","valueItems","appDataEntityId","editorStyle","separator","selectValue","treeSelectData","defaultCheckedKeys","treeData","valueItemData","onClose","appDataEntity","fillTreeData","node","tabIndex","tempNodes","curNodes","keyAppDEFieldId","_node","getTreeData","parentKey","childNode","tempSelectValue","loadData","handleQueryParams","handleCascaderValueChange","nodekey","curSelectText","openPopup","searchValue","onChange","CascaderEditorController","CascaderEditorProvider","IBizColorPicker","ColorPickerEditorController","ColorPickerEditorProvider","MarkDownEditorController","uploadparams","exportparams","MarkDownEditorProvider","IBizMarkDown","getMarkDownProps","editorPreview","createUUID","previewId","Authorization","useUIStore","UIStore","callback","fileUpload","method","setCherryContent","setCherryContent2","getCherryHtml","setMarkdown","afterChange","_e","getCherryContent","beforeImageMounted","src","editorOpts","defaultModel","theme","emoji","useUnicode","editorInit","cherryOptions","codemirror","autofocus","toolbars","Cherry","editorPreviewInit","onUnmounted","input","IBizEditor","registerEditorProvider","textBoxEditorProvider","datePickerProvider","i18n","createI18n","IBizI18n","languages","defaultMsg","iBizI18n","ViewContentPanelContainer","ctx","isRefreshing","view","isScrollable","modal","routeDepth","viewType","home","refresh","viewModel","ViewContentPanelContainerProvider","PanelContainerController","IBizViewContentPanelContainer","registerPanelItemProvider","LoadingUtil","showLoadingToast","MessageUtil","msg","duration","closable","showToast","showSuccessToast","showFailToast","ModalUtil","confirmButtonText","cancelButtonText","showDialog","showConfirmDialog","NotificationUtil","showNotify","OpenViewUtil","routerCallback","appViewId","appView","generateRoutePath","openViewModal","openViewPopover","placement","getDrawerPlacement","openViewDrawer","AppModalComponent","isShow","zIndex","customStyle","modalZIndex","isNumber","modalClass","Modal","ViewMode","viewUsage","dismiss","present","onBeforeClose","createModal","OverlayContainer","AppDrawerComponent","done","drawerZIndex","OverlayController","_element","_component","_opts","drawer","createDrawer","floatWindow","INSTANCE_KEY","createInstance","loadingDirective","binding","calcUniqueKey","match1","isCache","useViewStack","defineStore","QXEvent","off","viewInfoMap","viewStack","updateViewInfo","info","pop","popKey","_router","to","previousKey","previousPath","ViewHeaderPanelContainer","initButtonVisible","backButtonVisible","goBack","ViewHeaderPanelContainerProvider","IBizViewHeaderPanelContainer","ViewFooterPanelContainer","ViewFooterPanelContainerProvider","IBizViewFooterPanelContainer","PanelButtonState","PanelItemState","PanelButtonController","PanelItemController","uiactionId","UIActionButtonState","names","_state","UIActionUtil","PanelButton","renderMode","handleButtonClick","containerClass","buttonType","PanelButtonProvider","IBizPanelButton","WFActionButtonState","WFActionButtonController","WFActionButton","wfButtons","renderSheet","WFActionButtonProvider","IBizWFActionButton","WFStepTraceController","sortData","commentsData","tasks","task","authorNames","comment","dataS","tempData","WFStepTrace","WFStepTraceProvider","IBizWFStepTrace","NavPosIndexState","NavPosIndexController","currentKey","fullPath","lastFullPath","operateIndex","lastKey","appContext","indexPath","NavPosIndex","onRouteChange","cacheFullPath","appmenu","from","next","viewModals","cacheKeys","NavPosIndexProvider","IBizNavPosIndex","IBizPanelComponents","IBizPanelContainer","IBizPanelCtrlPos","IBizNavPos","IBizPanelField","IBizGridContainer","IBizPanelRawItem","IndexViewEngine","ViewEngineBase","MobEditViewEngine","childNames","appDeId","toolbar","formDeId","formDataStateChange","deName","SysUIActionTag","ControlVO","wfInfo","refKey","newContext","newParams","startView","getAppViewRef","MobEditView3Engine","MobMDViewEngine","MDViewEngine","wfContext","getWFContext","MobPickupViewEngine","MobMPickupViewEngine","allData","selectItem","selectData","showFooter","MobTreeViewEngine","MobPickupTreeViewEngine","MobTabExpViewEngine","MobWFDynaEditViewEngine","previous","processForm","formModel","getControl","link","wfLink","sequenceflowmobform","submitView","getWFSubmitViewId","WFButtons","MobWFDynaActionViewEngine","MobWFDynaEditView3Engine","MobWFDynaStartViewEngine","WFStepTraceViewEngine","MobDataViewEngine","PortalViewEngine","PickupMDViewEngine","MobCustomViewEngine","MobOptViewEngine","ViewCallTag","MobChartViewEngine","MobCalendarViewEngine","IBizViewEngine","View404","useRouter","gotoIndexView","document","isTop","view1","LoginView","formRef","loginData","username","password","login","desc","location","hash","ru","notification","message","IBizView","IBizPortalView"],"mappings":"g4IAO2BA,EAAAC,EAAA,CACzBC,KAAO,oBACLC,MAAAA,CACEC,cAAsC,CACtCC,KAAAA,MACD,SAAA,EACDC,EACEF,aAA+C,CAC/CC,KAAAA,OACD,SAAA,EACDE,EACAC,QAAM,OACJJ,KAAI,CACJK,KAAAA,OACF,QAAA,SACD,CACIC,EAAUC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CAWA,MAAO,CAAEC,KATW,gBAED,EAONC,YALX,MAAAC,EAAAC,IAAA,CACAA,EAAMC,gBAAe,EACrBL,EAAK,eAAgBG,EAAQC,CAAK,GAIrC,EACDE,QAAS,CACP,MAAMC,EAAU,KAAKf,eAAiB,GACtC,OAAI,KAAKK,OAAS,UAChBW,EAAA,MAAA,CACA,MAAA,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,GAAA,EAAA,SAAA,CAAA,CAAA,EAAA,CAAAD,EACe,OAAS,GAAIA,EAAS,OAChCA,KAAO,aACNA,EAAAA,EAAO,EAACE,QACGd,CAAAA,EAAAA,cAAyBe,EAAS,MAAA,CACzC,MACEP,KAAOQ,GAAAA,EAAAA,WAAY,CAAA,EAAA,IAAA,EAAAH,EACgBI,EAAA,YAAA,EAAA,CAClC,KAAAJ,EAAA,YAAAL,EAAA,QAAA,GAAA,KAEOA,QAAwC,QAAAU,GAAA,KAAA,YAAAV,EAAAU,CAAA,EAAA,SAEvB,KAAS,eAAaV,EAAM,EAAEU,SAAE,MAC7C,CAAA,KAAA,GAAiB,EAAA,MAAA,EAAA,QAAQC,GAAI,WAAS,EAAA,CAAA,CAAA,EAAA,CACS,KAAA,IAG3CX,EAAA,UAAAA,EAAA,UAAAK,EAAAI,EAAA,UAAA,EAAA,CAERT,KAAAA,EAAOY,QACQ,EAAA,IAAA,CAInB,CAAA,CAAA,EAIR,IACA,CAAA,CAAA,EAIVP,EAAA,MAAA,KAAA,CAAAQ,GAAA,kDAAA,CAAA,CAAA,CACA,IC7DaC,GAAAC,GAAA,UAAA5B,EAAA,CACfC,KAAO,UACL4B,MAAAA,CACE1B,UAAoC,CACpCC,KAAAA,OACD,SAAA,EACD0B,EACE3B,OACAC,KAAAA,OACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,kBAEXC,EAAAC,EAAA,IAAA,CACJ,MAAAC,EAAAH,EAAA,SAAA,EACAI,EAAA,CAAA,EACI,GAAMH,EAAY,UAAW,SAAO,OAClC,OAASG,EAET,QAAUN,CACR,IAAA5B,EAAe,UAAA,WACjB,OAAAA,EAAA,UAAA,cACA,OAAqB,UAAG,YACtBmC,MAAKnC,EAAM4B,UAAoB,YAC/BQ,EACAC,cAAMrC,KAAAA,CAAM4B,EAAAA,QAAqBU,GAAA,CACjCC,MAAOvC,EAAM4B,EAAUY,CAAAA,EACxBC,GAGCP,OAAYD,EAAA,GAAAK,EAAAG,EAAA,YAAA,CAAA,CAAA,CACV,CAAA,EACFP,CACAA,CAAAA,EACAQ,EAAAV,EAAA,IAAA,CACF,MAAAW,EAAe3C,EAAA,UACf,GAAA2C,EAAA,SAAA,gBAGF,KAAe,CACb,GAAAC,CACA,EAAAC,GAAAF,CAAA,EACA,MAAiB,CACf,KAAAC,EAAS,KACX,OAAAA,EAAA,OACQA,CAAAA,EAAOC,EAAAA,EAAkBF,IAAAA,CAEjC,MAAOG,EAAA9C,EAAA,MAAA,OACD+C,EAAS,CACbC,MAAMF,EAAKE,MACZ,OAAAF,EAAA,MACH,EAEA,cAAa,OAAGd,EAAQc,EAAO,UAAA,GAE7B,CAAA,EACOG,EAAQjB,EAAM,IAAA,KACbkB,EACR,MAAC,CAAAxC,EAAA,EAAA,IAAAwC,EAAAlD,EAAA,YAAA,KAAA,OAAAkD,EAAA,UAAA,OAAAxC,EAAA,EAAA,MAAA,EAAAA,EAAA,EAAA,MAAA,EAAAA,EAAA,GAAA,SAAA,CAAAV,EAAA,MAAA,OAAA,EAAA,GAAA+B,EAAA,MAAA/B,EAAA,MAAA,OAAA,UAAA,IAED,MAAA,CACA,GAAAU,EAEF,SAAAuC,EACE,UAAAP,EAOA,QAAAS,YAEmB,KAAWD,EAAAE,EAAAC,EAAEF,GAAAA,CAAAA,KAAAA,MAAAA,SAAAA,CAAAA,KAAAA,MAAAA,UAAS,OAAA,KAE7CpC,MAASuC,GAAAF,GAAAF,EAAA,KAAA,QAAA,UAAA,KAAA,OAAAE,EAAA,KAAAF,CAAA,EACP,KAAAG,EAAA,KAAA,YAAA,KAAA,OAAAA,EAAA,UAAA,OAAA,CACA,MAAKE,EAAK1B,KAAMV,UACd,OAAOF,EAAI,MAAA,CACb,MAAA,KAAA,SAEMqC,MAAAA,UACG1B,EAAWkB,KAClB,WAAgBS,EAA4B,SAAA,EAAA,OAAAA,EAAA,OAC5C,UAAA,GAAAA,EAAA,KAAA,MAEW,GAAA,KAAA,OACA,IACLC,CAAa,CAAA,EAEbC,OAAAA,GAAAA,WAA4B,EAAA,CAC5B,MAAG,KAAKN,SACV,MAAA,KAAA,QAAC,GAAA,KAEW,SAGlB,EAAA,CAEA,QACEO,IAAAA,IAIE,CAAA,CAAA,ECnHFC,GAAU,GAGhB,IAAIC,GAAa,GACbC,GAAiB,GACrB,MAAMC,GAAQ,CAAA,EACd,IAAIC,GAAa,EACjB,MAAMC,GAAsB,CAAA,EAC5B,IAAIC,GAAqB,KACrBC,GAAiB,EACrB,MAAMC,GAAkC,QAAQ,UAE1CC,GAAkB,IA4BxB,SAASC,IAAa,CAChB,CAACT,IAAc,CAACC,KAClBA,GAAiB,GACKM,GAAgB,KAAKG,EAAS,EAExD,CAOO,SAASC,GAAiBC,EAAI,CAC9B,MAAM,QAAQA,CAAE,EAQnBR,GAAoB,KAAK,GAAGQ,CAAE,GAP1B,CAACP,IAAsB,CAACA,GAAmB,SAC7CO,EACAA,EAAG,aAAeN,GAAiB,EAAIA,EAC7C,IACMF,GAAoB,KAAKQ,CAAE,EAK/BH,IACF,CAiBO,SAASI,GAAkBC,EAAM,CACtC,GAAIV,GAAoB,OAAQ,CAC9B,MAAMW,EAAU,CAAC,GAAG,IAAI,IAAIX,EAAmB,CAAC,EAEhD,GADAA,GAAoB,OAAS,EACzBC,GAAoB,CACtBA,GAAmB,KAAK,GAAGU,CAAO,EAClC,MACD,CAMD,IALAV,GAAqBU,EAEnBD,EAAOA,GAAwB,IAAI,IAErCT,GAAmB,KAAK,CAACW,EAAGC,IAAMC,GAAMF,CAAC,EAAIE,GAAMD,CAAC,CAAC,EAChDX,GAAiB,EAAGA,GAAiBD,GAAmB,OAAQC,KACpDa,GAAsBL,EAAMT,GAAmBC,EAAc,CAAC,GAG7ED,GAAmBC,EAAc,IAEnCD,GAAqB,KACrBC,GAAiB,CAClB,CACH,CACA,MAAMY,GAASE,GAAQA,EAAI,IAAM,KAAO,IAAWA,EAAI,GACjDC,GAAa,CAACL,EAAGC,IAAM,CAC3B,MAAMK,EAAOJ,GAAMF,CAAC,EAAIE,GAAMD,CAAC,EAC/B,GAAIK,IAAS,EAAG,CACd,GAAIN,EAAE,KAAO,CAACC,EAAE,IACd,MAAO,GACT,GAAIA,EAAE,KAAO,CAACD,EAAE,IACd,MAAO,EACV,CACD,OAAOM,CACT,EACA,SAASZ,GAAUI,EAAM,CACvBb,GAAiB,GACjBD,GAAa,GAEXc,EAAOA,GAAwB,IAAI,IAErCZ,GAAM,KAAKmB,EAAU,EACrB,MAAME,EAAmBH,GAAQD,GAAsBL,EAAMM,CAAG,EAChE,GAAI,CACF,IAAKjB,GAAa,EAAGA,GAAaD,GAAM,OAAQC,KAAc,CAC5D,MAAMiB,EAAMlB,GAAMC,EAAU,EAC5B,GAAIiB,GAAOA,EAAI,SAAW,GAAO,CAC/B,GAAIrB,IAAWwB,EAAMH,CAAG,EACtB,SAEFI,GAAsBJ,EAAK,KAAM,EAAE,CACpC,CACF,CACL,QAAY,CACRjB,GAAa,EACbD,GAAM,OAAS,EACfW,GAAkBC,CAAI,EACtBd,GAAa,IAETE,GAAM,QAAUE,GAAoB,SACtCM,GAAUI,CAAI,CAEjB,CACH,CACO,MAAMW,GAAcC,GAAQ,OAAOA,GAAQ,WACrCC,GAAmB,CAACC,EAAWC,EAAkB,KACrDJ,GAAWG,CAAS,EAAIA,EAAU,aAAeA,EAAU,KAAOA,EAAU,MAAQC,GAAmBD,EAAU,OAE1H,SAAST,GAAsBL,EAAMgB,EAAI,CACvC,GAAI,CAAChB,EAAK,IAAIgB,CAAE,EACdhB,EAAK,IAAIgB,EAAI,CAAC,MACT,CACL,MAAMC,EAAQjB,EAAK,IAAIgB,CAAE,EACzB,GAAIC,EAAQvB,GAAiB,CAC3B,MAAMwB,EAAWF,EAAG,cACdG,EAAgBD,GAAYL,GAAiBK,EAAS,IAAI,EAChE,eAAQ,KACN,qCAAqCC,EAAgB,kBAAkBA,CAAa,IAAM,EAAE,8NACpG,EACa,EACR,CACDnB,EAAK,IAAIgB,EAAIC,EAAQ,CAAC,CACvB,CACH,CC1JU,IAACG,GAAanE,GAAA,cAAkBoE,IACxCA,EAAYA,EAAY,QAAa,CAAC,EAAI,UAC1CA,EAAYA,EAAY,qBAA0B,CAAC,EAAI,uBACvDA,EAAYA,EAAY,mBAAwB,CAAC,EAAI,qBACrDA,EAAYA,EAAY,cAAmB,CAAC,EAAI,gBAChDA,EAAYA,EAAY,eAAoB,EAAE,EAAI,iBAClDA,EAAYA,EAAY,eAAoB,EAAE,EAAI,iBAClDA,EAAYA,EAAY,SAAc,EAAE,EAAI,WAC5CA,EAAYA,EAAY,SAAc,GAAG,EAAI,WAC7CA,EAAYA,EAAY,4BAAiC,GAAG,EAAI,8BAChEA,EAAYA,EAAY,qBAA0B,GAAG,EAAI,uBACzDA,EAAYA,EAAY,UAAe,CAAC,EAAI,YACrCA,IACND,IAAc,CAAA,CAAE,CAAE,EACVE,GAAWrE,GAAA,YAAkBsE,IACtCA,EAAUA,EAAU,MAAW,CAAC,EAAI,QACpCA,EAAUA,EAAU,MAAW,CAAC,EAAI,QACpCA,EAAUA,EAAU,QAAa,CAAC,EAAI,UAC/BA,IACND,IAAY,CAAA,CAAE,CAAE,EACN,MAAAE,oBAAeC,GAAUA,EAAM,KAAK,aAAc,EAkMlDC,sBAjMS,CACpB,KAAM,gBAIN,cAAe,GACf,MAAO,CACL,QAAS,CAAC,OAAQ,OAAQ,KAAK,EAC/B,QAAS,CAAC,OAAQ,OAAQ,KAAK,EAC/B,IAAK,CAAC,OAAQ,MAAM,EACpB,QAAS,CAAC,KAAK,CAChB,EACD,MAAMpG,EAAO,CAAE,MAAAqG,GAAS,CACtB,MAAMT,EAAWU,KACXC,EAAgBX,EAAS,IACzBY,EAAwB,IAAI,IAC5BC,EAAuB,IAAI,IACjC,IAAIC,EAAU,KAEZd,EAAS,UAAYY,EAEvB,MAAMG,EAAiBf,EAAS,SAC1B,CACJ,SAAU,CACR,EAAGgB,EACH,EAAGC,EACH,GAAIC,EACJ,EAAG,CAAE,cAAAC,CAAe,CACrB,CACF,EAAGR,EACES,EAAmBD,EAAc,KAAK,EAC5CR,EAAc,SAAW,CAACJ,EAAOc,EAAWC,EAAQC,EAAOC,IAAc,CACvE,MAAMC,EAAYlB,EAAM,UACxBU,EAAKV,EAAOc,EAAWC,EAAQ,EAAeP,CAAc,EAC5DC,EACES,EAAU,MACVlB,EACAc,EACAC,EACAG,EACAV,EACAQ,EACAhB,EAAM,aACNiB,CACR,EACME,GAAsB,IAAM,CAC1BD,EAAU,cAAgB,GACtBA,EAAU,GACZE,GAAeF,EAAU,CAAC,EAE5B,MAAMG,EAAYrB,EAAM,OAASA,EAAM,MAAM,eACzCqB,GACFC,GAAgBD,EAAWH,EAAU,OAAQlB,CAAK,CAE5D,CAAO,EAECuB,GAAuBL,CAAS,CAExC,EACId,EAAc,WAAcJ,GAAU,CACpC,MAAMkB,EAAYlB,EAAM,UACxBU,EAAKV,EAAOa,EAAkB,KAAM,EAAeL,CAAc,EACjEW,GAAsB,IAAM,CACtBD,EAAU,IACZE,GAAeF,EAAU,EAAE,EAE7B,MAAMG,EAAYrB,EAAM,OAASA,EAAM,MAAM,iBACzCqB,GACFC,GAAgBD,EAAWH,EAAU,OAAQlB,CAAK,EAEpDkB,EAAU,cAAgB,EAClC,CAAO,EAECK,GAAuBL,CAAS,CAExC,EACI,SAASM,EAAQxB,EAAO,CACtByB,GAAezB,CAAK,EACpBW,EAASX,EAAOP,EAAUe,EAAgB,EAAI,CAC/C,CACD,SAASkB,EAAWC,EAAQ,CAC1BtB,EAAM,QAAQ,CAACL,EAAO4B,IAAQ,CAC5B,MAAMC,EAAOzC,GAAiBY,EAAM,IAAI,EACpC6B,IAAS,CAACF,GAAU,CAACA,EAAOE,CAAI,IAClCC,EAAgBF,CAAG,CAE7B,CAAO,CACF,CACD,SAASG,EAAYJ,EAAQ,CAC3BtB,EAAM,QAAQ,CAACL,EAAO4B,IAAQ,CAC5B,MAAMC,EAAO7B,EAAM,IACf6B,GAASF,GAAUA,EAAOE,CAAI,GAChCC,EAAgBF,CAAG,CAE7B,CAAO,CACF,CACD,SAASE,EAAgBF,EAAK,CAC5B,MAAMI,EAAS3B,EAAM,IAAIuB,CAAG,EACxB,CAACrB,GAAWyB,EAAO,OAASzB,EAAQ,KACtCiB,EAAQQ,CAAM,EACLzB,GACTkB,GAAelB,CAAO,EAExBF,EAAM,OAAOuB,CAAG,EAChBtB,EAAK,OAAOsB,CAAG,CAChB,CACDK,EACE,IAAM,CAACpI,EAAM,QAASA,EAAM,QAASA,EAAM,OAAO,EAClD,CAAC,CAACqI,EAASC,EAASC,CAAO,IAAM,CAC/BF,GAAWR,EAAYG,GAASQ,GAAQH,EAASL,CAAI,CAAC,EACtDM,GAAWT,EAAYG,GAAS,CAACQ,GAAQF,EAASN,CAAI,CAAC,EACvDO,GAAWL,EAAaF,GAAS,CAACQ,GAAQD,EAASP,CAAI,CAAC,CACzD,EAED,CAAE,MAAO,OAAQ,KAAM,EAAM,CACnC,EACI,IAAIS,EAAkB,KACtB,MAAMC,EAAe,IAAM,CACrBD,GAAmB,MACrBjC,EAAM,IAAIiC,EAAiBE,GAAc/C,EAAS,OAAO,CAAC,CAElE,EACI,OAAAgD,GAAUF,CAAY,EACtBG,GAAUH,CAAY,EACtBI,GAAgB,IAAM,CACpB,UAAWf,KAAOvB,EAChByB,EAAgBF,CAAG,CAE3B,CAAK,EACM,IAAM,CAEX,GADAU,EAAkB,KACd,CAACpC,EAAM,QACT,OAAO,KAET,MAAM0C,EAAW1C,EAAM,UACjB2C,EAAWD,EAAS,CAAC,EAC3B,GAAIA,EAAS,OAAS,EACpB,eAAQ,IAAI,uDAAuD,EACnErC,EAAU,KACHqC,EAET,GAAI,CAACE,GAAQD,CAAQ,GAAK,EAAEA,EAAS,UAAY,IAA+B,EAAEA,EAAS,UAAY,KACrG,OAAAtC,EAAU,KACHsC,EAET,IAAI7C,EAAQwC,GAAcK,CAAQ,EAClC,MAAME,EAAO/C,EAAM,KACb6B,EAAOzC,GACX4D,GAAehD,CAAK,EAAIA,EAAM,KAAK,iBAAmB,CAAA,EAAK+C,CACnE,EACY,CAAE,QAAAb,EAAS,QAAAC,EAAS,IAAAc,EAAK,QAAAb,CAAO,EAAKvI,EACrCqJ,EAAUlD,EAAM,IACtB,GAEEkC,IAAY,CAACL,GAAQ,CAACQ,GAAQH,EAASL,CAAI,IAC3CM,GAAWN,GAAQQ,GAAQF,EAASN,CAAI,GACxCO,GAAW,CAACc,GAAW,CAACb,GAAQD,EAASc,CAAO,EAEhD,OAAA3C,EAAUP,EACH6C,EAET,MAAMjB,EAAM5B,EAAM,KAAO,KAAO+C,EAAO/C,EAAM,IACvCmD,EAAc9C,EAAM,IAAIuB,CAAG,EACjC,OAAI5B,EAAM,KACRA,EAAQoD,GAAWpD,CAAK,EACpB6C,EAAS,UAAY,MACvBA,EAAS,UAAY7C,IAGzBsC,EAAkBV,EACduB,GACFnD,EAAM,GAAKmD,EAAY,GACvBnD,EAAM,UAAYmD,EAAY,UAC1BnD,EAAM,YACRqD,GAAmBrD,EAAOA,EAAM,UAAU,EAE5CA,EAAM,WAAa,IACnBM,EAAK,OAAOsB,CAAG,EACftB,EAAK,IAAIsB,CAAG,IAEZtB,EAAK,IAAIsB,CAAG,EACRqB,GAAO3C,EAAK,KAAO,SAAS2C,EAAK,EAAE,GACrCnB,EAAgBxB,EAAK,OAAM,EAAG,KAAM,EAAC,KAAK,GAG9CN,EAAM,WAAa,IACnBO,EAAUP,EACVA,EAAM,UAAY,GAClBA,EAAM,QAAUkD,EACTlD,CACb,CACG,CACH,CAC2C,EAC3C,SAASqC,GAAQiB,EAASzB,EAAM,CAC9B,OAAI,MAAM,QAAQyB,CAAO,EAChBA,EAAQ,QAAQzB,CAAI,EAAI,GAE7B,OAAOyB,GAAY,SACdA,EAAQ,MAAM,GAAG,EAAE,SAASzB,CAAI,EAErC0B,GAASD,CAAO,EACXA,EAAQ,KAAKzB,CAAI,EAEnB,EACT,CACA,SAASJ,GAAezB,EAAO,CAC7BA,EAAM,WAAa,KACnBA,EAAM,WAAa,IACrB,CACA,SAASwC,GAAcxC,EAAO,CAC5B,OAAOA,EAAM,UAAY,IAAqBA,EAAM,UAAYA,CAClE,CACA,SAASuD,GAASC,EAAG,CACnB,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAC,IAAM,iBAC/C,CACa,MAAAR,GAAiBxH,GAAA,iBAACiI,GAAM,CAAC,CAACA,EAAE,KAAK,aAAc,EACrD,SAASJ,GAAmBrD,EAAO0D,EAAO,CAC3C1D,EAAM,UAAY,GAAqBA,EAAM,UAC/CqD,GAAmBrD,EAAM,UAAU,QAAS0D,CAAK,EAEjD1D,EAAM,WAAa0D,CAEvB,CACY,MAACtC,GAAiB5F,GAAA,iBAAA,CAACmI,EAAKC,IAAQ,CAC1C,QAASH,EAAI,EAAGA,EAAIE,EAAI,OAAQF,IAC9BE,EAAIF,CAAC,EAAEG,CAAG,CAEd,CAAE,EACWzC,8BAAwB/C,EAAiB,EAC/C,SAASkD,GAAgBuC,EAAMpE,EAAUO,EAAO8D,EAAY,KAAM,CACvEC,GAA2BF,EAAMpE,EAAU,EAAG,CAC5CO,EACA8D,CACJ,CAAG,CACH,CAYa,MAAAvC,GAAyB/F,GAAA,yBAAgBwI,GACpD,iBACF,CAAE,EACF,SAASA,GAA4BH,EAAM,CACzC,OAAQI,GAAc,CACpB3J,GACEuJ,EACAI,EAAU,WAAW,IACrBA,EAAU,IACVA,EAAU,OAASA,EAAU,OAAO,IAAM,OAC1CA,CACN,CACA,CACA,CACA,SAAS3J,GAAKI,KAAUwJ,EAAM,CACxB,OAAO,8BACT,OAAO,6BAA6B,KAAKxJ,EAAO,GAAGwJ,CAAI,CAE3D,OCtSoBC,GAAAvK,EAAA,CAClBC,KAAO,aACLuK,MAAM,CACJrK,KAAI,CACJK,KAAAA,OACF,QAAA,0BACD,CACDC,EACE,OAAME,CACGA,MAAAA,CAAI,GAANoB,EAAA,SAAA,EAETf,UACEE,CAAA,OAAAA,EAC6BI,EAAE,WAAA,EAAA,CAAA,MAAA,KAAA,KAAoBkJ,EAAI,YAAA,KAAA,MAAA,CAC3B,QAAA,IAAA,CAG9B,IAAArH,EAAAE,EACA,MAAA,EAAAA,GAAAF,EAAA,KAAA,QAAA,UAAA,KAAA,OAAAE,EAAA,KAAAF,CAAA,CAAA,QCXmBsH,GAAAzK,EAAA,CACnBC,KAAO,cACLE,MAAM,CACJA,KAAI,CACJC,KAAAA,OACD,SAAA,EACDsK,EACEvK,QAAOwK,CACR,KAAA,CAAA,OAAA,OAAA,MAAA,CACDC,EACEzK,QAA2C,CAC3CC,KAAAA,OACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CACX,MAAI6I,EAAO7I,EAAO,SAAA,EAClB,IAAI8I,EAAAA,KACA5K,EAAe,GACjB2K,EAAU3K,UACV4K,EAAW5K,EAAU,QAAa,QACpC4K,EAAAD,EAAA,aAEA,MAAME,EAA4CC,EAAM9K,EAAI,MAAA4K,GAAA,EAAA,EACxDG,EAAeD,EAAA,EAAA,EACnB,IAAIF,EAAW,KACLA,IAAW,UACrBG,EAAAJ,EAAA,UAEIC,IAAgB,OAASA,IAAgB,OACvCA,IAAgB,OAClBI,EAAYvI,MAAQ,OACpBoI,EAAepI,MAASkI,EAAsBtK,SAE9CwK,EAAepI,MAASkI,EAAsBF,QAGhD,CAAC,QAAS,UAAW,OAAQ,UAAW,OAAO,EAAEQ,SAASL,CAAY,GAEtEA,IAAA,SAAAG,IACAF,EAAA,MAAAE,SAEcG,EAAAC,GAChB,oFAGMD,EAA4BJ,EAAA,CAChC,GAAMM,GACuE,EAC7E,KAAA,GACD,KAAA,eAED,OAAA,GACMC,aAAAA,KAEAC,EAAIR,EAAA,CACRS,gBAAU,SACVC,KAAAA,EACAC,CAAAA,EACAC,EAAcZ,EAAA,CACd,KAAA,gBAEF,WAAA,GACMQ,SAAAA,EACJK,CAAAA,EACIC,EAAEd,EAAA,EAAA,EACNe,EAAA,IAAA,uBAEF,OAAA7L,EAAA,SAAA,WACM8L,EAAAA,EAAchB,OAAI,EAChBD,EAAM,MAAA,CACH,UAAA7K,EAAA,OACT+L,EAEAlB,EAAA,MAAA,mBAEF,GAIMgB,CAAAA,OAAAA,WAAqB,WAAA,WAAA,WAAA,WAAA,WAAA,YAAA,MAAA,EAAA,SAAAb,EAAA,KAAA,IACzBY,EAAA,MAAAf,EAAA,MACe,OAAAe,EAAM,OAAc,WACjCA,EAAgB,MAAQA,QAAe,WAAA,OAAA,GAAA,EACrCA,EAAU5L,MAAMyK,EAAU,MAAA,WAAA,OAAA,GAAA,IACV,QAAS,MAAA,WAAA,aAAA,GAAA,IAAW,MAAOmB,EAACnB,MAAAA,WAAAA,SAAAA,GAAAA,aAE5B,iBAAS,UAAA,OAAA,EAAA,SAAAO,EAAA,KAAA,WAAkBP,KAASuB,EAAA,CAAA,EACpD,GAAA,CACF,GAAA,OAAAnB,EAAA,OAAA,SAGF,SAFA,IAAA,SAAA,WAAAA,EAAA,KAAA,IAAA,IAEAG,EAAA,MAAA,CAGU,IACI,QAUZY,OAAiB,OAAGf,EAAoB,MAAAmB,CAAA,QAEtCJ,IAAW,UACXA,OAAYnJ,OAAQmJ,EAAYnJ,MAAMwJ,CAAW,EACjDL,MACAA,IAAW,OACb,IAAA,UACF,IAAA,QAGUE,EAAa,MAAA,KAAiBd,EAAS,MAAU,oBAIrDH,OAAAA,OAAoBiB,EAAE,MAAAE,CAAA,EACpBA,MACA,aAEA,OAES,MACDhB,IAAAA,MAAAA,GAAAA,EAAiB,KAAA,oEAAA,CACvB,EAGA,aAEE5C,EAAA,IAAApI,EAAA,QAAA,CAAAkM,EAAAC,IAAA,CACFD,IAAKC,IACLtB,EAAc,MAAAqB,EACdL,OAIE,UAAA,EACF,CAAA,EACE,CACJ,GAAAnL,EACF,YAAAkL,EACF,aAAAP,kBAEA,YAAAS,EACF,YAAAd,EACF,eAAAH,EAGFgB,UAGQ7L,OAEAkM,EAAWC,IACC,KAAA,cAASD,QACvBL,EAAcxK,EAAA,YAAA,EAAA,CAChB,MAAA,CAAA,KAAA,GAAA,EAAA,OAAA,CAAA,EAEF,KAAA,KAAA,cACE+K,EAAAA,IAAS,EAIN,KAAA,cAAA,OACHnL,EAAA,OAAA,CACS,MAAA,KAAA,GAAA,EAAA,MAAA,GACC,CAAA,KAAA,WAAA,CAAA,EAED,KAAA,cAAA,WACAA,EAAA,KAAA,CACX4J,MAAAA,KAAAA,GAAAA,EAAAA,IAAAA,GACD,CAAA,KAAA,WAAA,CAAA,EAEM,KAAA,cAAA,WACDwB,EAAsB,KAAA,CACtB,MAAgB,KAAA,GAAA,EAAA,OAClBpL,CAAAA,KAAAA,WAAAI,CAAA,EAE+B,KAAA,cAChBwJ,WAAc5J,EAAA,KAAA,CAG/B,MAAA,KAAA,GAAA,EAAA,IAAA,CACA,EAAQ,CAAA,KAAY,WAAA,CAAA,EAClB,KAAA,cAAoC,WAAIA,EAAgB,KAAA,CAC1D,MAAA,KAAA,GAAA,EAAA,IAAA,CACA,EAAQ,CAAA,KAAY,WAAA,CAAA,EAClB,KAAA,cAAgC,WAAIA,EAAgB,KAAA,CACtD,MAAA,KAAA,GAAA,EAAA,IAAA,CACA,EAAQ,CAAA,KAAY,WAAA,CAAA,EAClB,KAAA,cAAgC,WAAIA,EAAgB,KAAA,CACtD,MAAA,KAAA,GAAA,EAAA,IAAA,CACA,EAAQ,CAAA,KAAY,WAAA,CAAA,EAClB,KAAA,cAAgC,YAAIA,EAAgB,IAAA,CACtD,MAAA,KAAA,GAAA,EAAA,WAAA,CACA,EAAQ,CAAA,KAAY,WAAA,CAAA,EAClB,KAAA,cAAgC,OAAIA,EAAgB,MAAA,CACtD,MAAA,KAAA,GAAA,EAAA,WAAA,EACI,UAAgB,KAAA,WAClB,EAAA,IAAAA,EAAoC,KAAA,cAAgB,QACtDA,EAAA,MAAA,CACI,MAAgB,KAAA,GAAA,EAAA,QAClB,EAAA,CAAAA,EAAA,QAAA,CAAA,GAAA,kBAAgC,GAAI,IAAK2K,KAAW,aAAA,KACtD,SAAA,KAAA,aAAA,SACI,SAAgB,KAAA,0BAClB,KAAA,KAAA,aAAA,OAAA,MAAiB,KAAKlL,aAAgB,MAAI,CAAAO,EAAgB,SAAA,CAC5D,IAAA,KAAA,aAAA,KACI,KAAgB,WAClB,EAAA,IAAAA,EAAAA,EAAA,SAAA,CAAA,IAAA,uBACoC,KAAA,WAA0B,EAAA,IAAA,EAAAA,EAAA,SAAA,CAEhE,IAAA,KAAA,aAAA,KACI,KAAgB,YAClB,EAAA,IAAAA,EAAAQ,GAAA,mEAAA,CAAA,CAAA,CAAA,CAAA,EACgC,KAAA,cAAA,UAAAR,EAELI,EAAG,YAAA,EAAA,CAAA,mBACF,KAACiL,cAAI,eAAA,EAAA,CACS,QAAA,IACtB,CAAArL,EAAa,OAAa,CAAA,UACjB,KAAA,cAAO,IACvB,EAAA,IAAA,CAAA,CAAsB,CAAA,EAEM,KAAA,cAAA,QAAA,KAAA,cAAA,WAAA,KAAA,cAAA,QAAAA,EAAAI,EAAA,UAAA,EAAA,CAAA,MAClB,KAAa,YAAK,MAAA,KAAA,KAAA,YAAA,KAAA,YAAA,KAAA,YAAA,SAAA,SACjBgK,KAAY,YAAK,UAAA,EAAA,IAAA,EAK3C,KAAA,cAAA,WACSL,EAAW3J,EAAgB,cAAA,EAAA,CAClCJ,MAAAA,KAAAA,QAAA,SACgC,EAAkC,EAAA,IAAA,iBAChD,EAAA,SAAKqK,KAAAA,WAAciB,EAAI,aASzCtL,EAAAA,MAAA,CAAA,MAAA,KAEe,GAAA,EAAY,CAAM,EAAA,CAAAoL,EAClBP,CAAAA,CAAW,CAAK,ICpQS,SAAAU,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAEhD,CACiB,MAAAE,GAAAhL,GAAA,UAAA5B,EAAA,CACfC,KAAO,UACL8C,MAAAA,CACD,OAAA,MACDtC,EACE,OAAME,CACGA,MAAAA,CAAI,GAANoB,EAAA,KAAA,EAETf,UACQuC,CACN,IAAIJ,EAAIE,EAACN,QACDQ,GAAAF,GAAAF,EAAA,KAAA,QAAA,UAAA,KAAA,OAAAE,EAAA,KAAAF,CAAA,OAAKG,EAAA,KAAA,SAAA,KAAA,OAAAA,EAAA,UAAA,OAAA,MAAO,CAAEuJ,IAAAA,EAAQ,MAAAC,EAC5B,OAAAD,CACA,EAAA,KAAA,OAAAE,EAEgBC,GAAIlI,SAAuB,OAAA5D,EACA6L,MAAAA,CAAwD,MAEnF,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,GAAA,EAAA,MAAA,CAAA,EAGlB,MAAA,gCAAAA,CAAA,qBAAAD,CAAA,iBAAAD,CAAA,KACA3L,CAAAA,CAAAA,CAAAA,CAAA,CACkD,OAAAA,EAAcI,EAAA,SAAA,EAAA,CAAAd,MAAAA,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,GAAA,EAAA,MAAA,CAAA,CAAA,EAAAiM,GAAAlJ,CAAA,EAAAA,EAAA,CAElE,QAAA,IAAA,CAAAA,CAAA,CACF,CAAE,MCdW0J,GAAuBrL,GAAA,uBAAA,CAClC,QAAUgI,GAAM,CACdA,EAAE,UAAUsD,GAAc,KAAMA,EAAa,EAC7CtD,EAAE,UAAUgD,GAAQ,KAAMA,EAAO,EACjChD,EAAE,UAAUjI,GAAQ,KAAMA,EAAO,EACjCiI,EAAE,UAAUuD,GAAS,KAAMA,EAAQ,EACnCvD,EAAE,UAAUwD,GAAgB,KAAMA,EAAe,EACjDxD,EAAE,UAAUvD,GAAc,KAAMA,EAAa,EAC7CuD,EAAE,UAAUyD,GAAe,KAAMA,EAAc,EAC/CzD,EAAE,UAAU7J,EAAkB,KAAMA,CAAiB,EACrD6J,EAAE,UAAUW,GAAW,KAAMA,EAAU,EACvCX,EAAE,UAAU0D,GAAiB,KAAMA,EAAgB,EACnD1D,EAAE,UAAUa,GAAY,KAAMA,EAAW,CAC1C,CACH,CAAA,ECZA,SAAAgC,GAAAC,EAAA,CACA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CACA,CACA,SAAAa,GAAAC,EAAAC,EAAAC,EAAA,CACA,IAAAvK,EACA,GAAAqK,EAAA,OACA,OAEA,KAAA,CARA,UAAAG,EAAA,WAAAC,CAAA,EAAAH,EASAI,IACEL,EAEAE,IAEA,GAAKF,CAAAA,EACH,OAAAtM,EAAA,MAAA,KAAA,CAAAQ,GAAA,oDAAA,EAAA8L,EAAA,GAAA9L,GAAA,KAAA,EAAA8L,EAAA,QAAA,CAAA,EAEF,MAAMnD,EAAA1G,EAAAkK,EAAA,SAAA,MAAW7E,EAAE4E,OAAAA,EAAAA,WAAAA,WAAAA,EAAAA,OAAAA,EAAAA,EAAAA,IAAgB,MAClBD,OAAAA,EAAmB,EAAA,EAAA,GAElCxK,EAAAqK,EAAA,aAAA,MAAArK,EAAA,SAKF6F,EAAA,MACkBrF,WAAAA,IAAyBmK,GAC3CP,GAAAO,EAAAL,EAAAC,CAAA,CACiB,GAGPK,GAAA1D,EAAS,WACRqD,EACT,WAACE,EAAAJ,EAAA,EAAA,MACIA,EAAKA,IACFxE,CAAA,CACN,CACE,MAAAgF,GAAqChO,EAAA,CACvC,KAAE,mCACH,CACH,UAAA,CAEO+N,KACL1D,OAEE4D,SAAoB,EACpBC,EACAlG,qBAIN,SAAA,IAEA,OAAA,CACA,KAAA,OACA,QAAA,KAAA,CAAA,EACA,EACEC,UAAkC,MAClChI,EACEgO,OAAAA,CACE9N,MAAIsN,EAAsCU,GAAA,IAAA7D,IAAA,IAAA8D,GAAA,GAAA9D,CAAA,CAAA,EAC1ClK,EAAU2B,EAAA,WAAA0L,EAAA,MAAA,YAAA,aAAA,EAAA,EACZ,OAAAA,EAAC,IAAA,GAAA,YAAA,IAAA,CACQ,OAAA,KAAAA,EAAA,UAAA,UAAoCzF,GAAA,CAAE5H,MAAQoN,EAAEC,EAAA,WAAAzF,CAAA,EAAMwF,EAAA,MAAAa,GAAAb,EAAA,KAAA,CAC/Dc,CAAAA,CAAUnO,CAAAA,EAAmCK,CAAqB,EAAAiN,EAClEc,GAAAA,EAEF9N,EACE,QAAO,CAGP,KAAME,CAEJ6N,MAAAA,EACA,MAAAC,CACA/H,EAAAA,KAAKgI,EACH,OAAAxN,EAAkBuM,EAAgB,iBAAC,EAAA,iBACjBY,CACpB,EAAC,CACD,QAAA,IAAA,CAAAnN,EAAAI,EAAA,SAAA,EAAA,CAEK,MAAA,KAAA,GAAA,EAAA,SAAA,EAAG,OAAA,CAAEX,OAAAA,MAAI,GACjB,CACKK,QAAG,IAAA,CACD,IAAAmC,EAAO,MAAA,CAAArB,EAAA,YAAA,KAAA,OAAA,QAAA,KAAA,OAAA,QAAA,CAAE2M,WAAAA,KAAAA,EAAAA,UAAc,CAAA,GAAEtL,EAAAsL,EAAA,iBAAA,KAAA,OAAAtL,EAAA,IAAAqK,GAAA,CAC/BtM,IAAAA,EAAA,MAAAyN,EACoClB,KAAAA,EAAAA,WAAAA,EAAAA,EAAAA,EAAC,OAAAD,EAAA,UAAA,OAAA,OAAAtM,EAAAA,EAAA,SAAA,EAAA,CAAA,UACPsM,EAAU,UAAU,MAAAmB,EAAA,KAAE5L,EAAAA,GAAQ6L,EAAArB,GAAAC,EAAA,KAAA,EAAA,IAAA,CAAA,EAAAoB,EAAA,CAAO,QAAA,IAAA,CAAAA,CAAA,CAAC,CAAA,CAAApO,CAAAA,EAAAA,CAItDoN,GACF,CACuC,CAAA,EAErC,CAAA,ECjHlB,IAAIiB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAMuM,EAAwB,CACnC,aAAc,CACZD,GAAc,KAAM,YAAa,4BAA4B,CAC9D,CACH,CCLO,MAAME,GAA6BC,GACxCnB,GACA,SAASpE,EAAG,CACVA,EAAE,UAAUoE,GAAuB,KAAMA,EAAsB,EAC/DoB,GACEC,GAAY,kBACZ,IAAM,IAAIJ,EAChB,CACG,CACH,ECMA,SAAAxC,GAAAC,EAAA,CACA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CACA,CACA,SAAAa,GAAAC,EAAAC,EAAAC,EAAA,CACA,IAAAvK,EAAAE,EACA,GAAAmK,EAAA,OACA,OAEA,KAAA,CARA,UAAAG,EAAA,WAAAC,CAAA,EAAAH,EASAI,IACEL,EAEAE,IAEA,GAAKF,CAAAA,EACH,OAAAtM,EAAA,MAAA,KAAA,CAAAQ,GAAA,oDAAA,EAAA8L,EAAA,GAAA9L,GAAA,KAAA,EAAA8L,EAAA,QAAA,CAAA,EAEF,MAAMnD,EAAA1G,EAAAkK,EAAA,SAAA,MAAW7E,EAAE4E,OAAAA,EAAAA,WAAAA,WAAAA,EAAAA,OAAAA,EAAAA,EAAAA,IAAgB,MAClBD,OAAAA,EAAmB,EAAA,EAAA,EAElCH,EAAA,WAAA,cAAArK,EAAAqK,EAAA,gBAAA,MAAArK,EAAA,QAKF6F,EAAA,MACkBrF,cAAiBkK,IAAQC,GAC3CP,GAAAO,EAAAL,EAAAC,CAAA,CACiB,GAEJrK,EAASmK,EAAK,aAAaE,MAAWF,EAAUhM,SAC3DwH,EAAWA,IACF0E,EAAU,WAAWlM,IAAOsM,GACpCP,GAAAO,EAAAL,EAAAC,CAAA,CACI,GAMDK,GAAA1D,GACF,UAAEmD,EACJ,WAACI,EAAAJ,EAAA,EAAA,MACIA,EAAKA,IACFxE,CAAA,CACN,CACE,MAAAsG,GAAoCtP,EAAC,CACvC,KAAE,yBACH,CACH,UAAA,CAEO+N,KACL1D,OAEE4D,SAAoB,EACpBC,EACAlG,qBAIN,SAAA,IAEA,OAAA,CACA,KAAA,OACA,QAAA,KAAA,CAAA,EACA,EACEC,SAAwB,CACxBhI,KAAO,MACLgO,EACE9N,KAAI,OACJC,YAAU,CACX,KAAA,QACDmP,QAAS,EAAEpP,CAAoCC,QAAgBH,EAAA,CAC/DqO,MAAMb,EAAEU,GAAA,IAAA7D,IAAA,IAAAkF,GAAA,GAAAlF,CAAA,CAAA,EAAM3J,EAA6BoB,EAAA,WAAA0L,EAAA,MAAA,YAAA,aAAA,EAAA,EAAEjN,OAAAA,EAAAA,IAASP,EAAO,KAAEkM,GAAA,CAAGA,IAClE0B,EAAAA,aAAU1B,CAAA,EAAEhM,EAAI,KAAEsP,EAClBC,EAAAA,CACAC,UAAa,EAAExP,CAAAA,EAAeK,EAAAA,IAAAA,GAAO,YAAE,IAAA,CAAK,OAAA,KAAAiN,EAAA,UAAA,EAC7C,QAAAzF,GAAA,CACK/H,MAAOuN,EAAAC,EAAA,WAAAzF,CAAA,EACXwF,EAA8B,MAAAa,GAC5Bb,EAAa,KAAA,CAEf,CAAA,CAEAnF,CAAAA,GAIMoF,EAAAA,MAEF,CACF,EAEEpB,QAAAA,CACF,KACD,CAECmC,MAAAA,EACA,MAAAC,GACM/H,KAAAA,EACNA,OAAKgI,EAAepN,EAAA,iBAAA,EAAA,CAClB,gBAAkBmM,IAEpB,QAAE,IAAA,CAAAvM,EAAAI,EAAA,SAAA,EAAA,CACF,MAAA,KAAA,GAAA,EAAA,SAAA,EAEK,OAAA,CAAG,OAAA,MAAEX,GAAI,CACjB,QAAA,IAAA,CACQ,IAAAwC,EACD,MAAA,CAAArB,EAAA,YAAA,KAAA,OAAA,QAAA,KAAA,OAAA,QAAA,CAAO,WAAA,KAAA,EAAA,UAAE2M,CAAAA,GAAAA,EAAAA,EAAAA,iBAAAA,KAAAA,OAAAA,EAAAA,IAAAA,GAAAA,CAAc,IAAEG,EAC/B1N,MAAAA,EAAA,KAAA,EAAA,WAAAsM,EAAA,EAAA,EAAA,OAAAA,YACoCC,OAAAA,OAACvM,EAAAI,EAAA,SAAA,EAAA,CAAAd,UAAAU,EAAA,UAAA,MACZP,SAAyB8L,GAAAmC,EAAArB,GAAAC,EAAA,KAAA,EAAA,IAAA,CAAA,EAAAoB,EAAA,CAAE7L,QAAQ,IAAA,CAAA6L,CAAA,CAAO,CAAA,CAAC,CAAA,EAAA,CAAApO,CAItDoN,CAAAA,CAAAA,GAEqC,IC1IvD,IAAIiB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAMkN,EAAc,CACzB,aAAc,CACZZ,GAAc,KAAM,YAAa,kBAAkB,CACpD,CACH,CCLO,MAAMa,GAAmBV,GAAYG,GAAc,SAAS1F,EAAG,CACpEA,EAAE,UAAU0F,GAAa,KAAMA,EAAY,EAC3CF,GAAwBC,GAAY,MAAO,IAAM,IAAIO,EAAe,CACtE,CAAC,ECLuB,SAAAnD,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAExB,OAC2BoD,GAAA9P,EAAA,CACzBC,KAAO,oBACLgO,MAAAA,CAAa9N,UAAsC,CAAEC,KAAAA,OAAgB,SAAA,EACrEmP,EAAWpP,QAAkC,CAAEC,KAAAA,OAAgB,SAAA,EAC/DkO,EAAUnO,OAAMsP,CAA6BjP,KAAAA,OAAqB,QAAA,KAAA,CAAA,EAClE,EAQoBL,iBAAY,CAAEK,KAAAA,OAAY,QAAA,CAE9C,EAOgBL,aAAa,CAAEK,KAAAA,QAAe,QAAA,EAC9CuP,EAAgB5P,aAAiC,CAAEC,KAAAA,OAAiB,SAAA,EACpEG,EAAQJ,KAAI,CAAUK,KAAAA,OAAgB,QAAA,MACvC,CACIC,EACH,MAAAR,EAA8B,CAC9B,MAAMU,EAAEwN,OAA2BV,WAAqBuC,GAAc1F,CAAE,CAAA,sDAExE2F,EAAAxC,EAAA,MAAA,gBACMwC,EAA0BxC,EAACgB,MAAqB,iBACtDlB,EAAA,CAAA2C,EAAAjC,IAAA,CACA,gBAEA,OAAAK,CACA,EAAMf,EACJ,OAAMrM,EAAAI,EAAA,kBAAA,EAAA,CAAEiO,KAAOW,EAAE5B,UAAAA,UAAYiB,EAC7BrO,OAAAA,EAAA,QAEc,IAAAuM,EAAA,WAAAyC,CAAA,CAAA,EAAA,IAAA,CACU,EACJC,EACFC,GACC3C,EAAC,MAAC4C,aAAe,UAAAX,GAACA,EAAA,SAAAU,EAAA,KAAA,MAGtC,IAE6C,GAEnCV,EAAWU,GAASV,CAC7B,MAAEY,EAAAH,EAAAC,CAAA,EAEH,MADsB,CAAAzP,EAAC,EAAC,MAAA,EAAAA,EAAA,GAAA,SAAA2P,CAAA,CAAA,GAIvBC,EAAuBH,WACO,CAC9B,MAAgBzP,EAAA,EAAA,OAAA,EACjB,IAAAyP,EAAA,KAAA,MAEKG,IAAAA,EACJ,EAAA,IAAArP,EAAgCsP,EAAqBJ,GAAA,CAAA,MAAAE,EAAAH,EAAAC,CAAA,EAAA,OAAAlP,EAAAI,EAAA,WAAA,EAAA,CACtD,QAAAgP,CAEKE,EAAAA,IAAAA,CACJ,EACAtP,EAAAkP,GAAA,OAA2BE,EAAAA,EAAAA,CAAAA,EAAMG,EAAA,CAAA,EAClC,OAAA,OAAA,UAAA,eAAA,KAAAL,EAAA,KAAA,OAAA,oBAED,KAAAG,EAAAH,CAAA,EACMM,EAEED,EAAAA,OAAa,UACnB,OAAU,OAAUA,GAClBhB,aAAcgB,EAAYL,CAAA,IAC5BlP,EAAAI,EAAA,UAAA,EAAA,CACA,MAAcqP,EACZlB,UAAOmB,SAAiCR,EAAA,KAAiB,cAAI,GAAE,QAAE,IAAA3C,EAAA,WAAA2C,EAAA,IAAA,CACnE,EAAA3D,GAAAgE,CAAA,EAAAA,EAAA,CACAvP,QAAAA,IAAAA,CAAAA,CAAA,CAAA,CAAA,CAEoB,EAAA2P,EAED,IAACC,MACPC,CAA4B,SAAAC,GAE1BvD,EAAA,MAAA,GAAAuD,EAMf,OAAAA,GAAA9P,EAAAI,EAAA,YAAA,EAAA,CACM,KAAAmM,EAAA,MAAA,UAAEuD,qBAAAA,EAAAA,MAAAA,oBAAU,EAAA,IAAU,GAE1BC,EAAA,CAAAC,EAAAd,IAAA,CACF,MAAAe,EAAAD,EAAA,sBAAA,GACA,GAAA,CAAAC,GACUA,EAAA,SAAA,EAAA,OAAA,KAG8C,MAErDC,EAAAhB,EAAA,YAAAc,EAAA,EAAA,EAEJ,OAAAC,EAAA,IAAAtQ,GAAA,iBAED,OAAAwQ,EAAA,UAAA,UAMuBF,EAAmB,YAAQ,EAAA,CAC9C,OAAW,GACb,KAAA,UACMC,KAAAA,UACN,SAAmBC,EAAClQ,UAAckQ,EAAA,QAChC,QAAYD,GAAAA,EAAAA,cAAwBvQ,EAAAuP,EAAA7O,CAAA,CACpC,EAAA,IAAO,CACL,CAAA,CACF,EACAL,EAAAkP,GAAA,CAAA,MAAAkB,EAAArR,EAAA,UAAA,uBAAAgQ,GAAAsB,EAIwBrQ,EACNsQ,EAAuB,gBAAA,EAAA,CAAA,IAC3BjQ,EAAAA,KAAkBkM,MAA+B,EAAA,CAG/D,KAAA8D,EAAA,IAAAN,EAAAM,EAAAnB,CAAA,EAAA,KACH,MAAAH,EAAA,IAAAgB,EAAAhB,EAAAG,CAAA,EAAA,iBAEDkB,EAAA/D,EAAA6C,EAAA,KAAAkB,CAAA,EAAAZ,EAAAN,CAAA,CAEE,CAAA,MAImBA,EAAA,KAAAkB,CAAA,EAAAZ,EAAAN,CAAA,GACjBqB,EACgCC,IAAMjE,EAAA,MAAA,KAAA,IAAAyC,GAE5ByB,EAAyBzB,CAAA,GAO3B0B,EAAY,IAGdnE,EAAA,MAAA,OAAA,IAAAyD,GAAChQ,EAAA,MAAA,CAIT,MAAAgQ,EAAA,OACA,EAAA,CAAAhQ,EAA8B,MAAA,CAC/B,MAAAP,EAAA,EAAA,eAAA,CACK8Q,EAAAA,CAAAA,GAAsB,GAAA,EAAAP,EAAA,OAAA,CAAA,EAAAA,EAAA,SAAA,IAAAhB,GACZyB,EAAkBzB,CAAA,CACvByB,CAAAA,CAAAA,CACR,EAaD,MAAE,CACH,EAAAlE,OAED,gBAb0B,IACjBA,IAA4B,UAAA,EAAA,CACjC,SAAAA,EAAA,MAAA,OAAAA,EAAA,MAAA,KAAA,OAAA,gBACoBnN,EAAAA,MAAAA,QAAAA,GAAAA,wCAAO,OAAA,IAAAmN,EAAA,SAAA,CAAA,EAAA,CACU,QAAA,IAAA,CAAAA,EAAA,MAAA,YAAiB,OAC5CmE,IAAc1B,GAAQ,IAS9B2B,aAAAA,EACJ,UAGmBpE,CAAgC,OAAAvM,EACjCuM,EAAW,iBAAA,EAAA,CAAC,WAAA,KAAA,CAAAjN,EAAAA,CAEqC,QAAA,IAAA,CAAA,KAAA,EAAA,MAAA,YAAA,KAAA,EAAA,MAAA,KAAA,OAAA,EAAA,KAAA,gBAAA,EAAA,KAAA,aAAA,EAAA,EAGpE,KCvML,IAAIqO,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAMoP,EAAe,CAC1B,aAAc,CACZ9C,GAAc,KAAM,YAAa,mBAAmB,CACrD,CACH,CCLO,MAAM+C,GAAoB5C,GAAYW,GAAe,SAASlG,EAAG,CACtEA,EAAE,UAAUkG,GAAc,KAAMA,EAAa,EAC7CV,GAAwBC,GAAY,WAAY,IAAM,IAAIyC,EAAgB,CAC5E,CAAC,ECJ0D,SAAArF,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAE3D,OAC4BsF,GAAAhS,EAAA,CAC1BC,KAAO,qBACLgO,MAAAA,CAAa9N,UAAkC,CAAEC,KAAAA,OAAgB,SAAA,EACjEmP,EAAWpP,QAAkC,CAAEC,KAAAA,OAAgB,SAAA,EAC/DkO,EAAUnO,OAAMsP,CAA6BjP,KAAAA,OAAoB,QAAA,KAAA,CAAA,EAClE,CACIC,EACH,MAAAR,EAA8B,CAC9B,MAAMwN,EAAAU,GAAA,IAAA7D,IAAA,IAAA2H,GAAA,GAAA3H,CAAA,CAAA,EAAc,CAAE3J,aAAAA,EAAOuR,GAAAA,CAC7B,EAAAA,GAAmBnH,CAAG,QAEtBoH,EAAAlQ,EAAA,IACe,CACb,EACAmQ,EAAQC,KACRC,EAAA,IAAA,CACF,MAAAC,EAAA9E,EAAA,cACW+E,EAAGH,KAAQ,IAAC,OAAC5E,EAAA,QAAA,QAAA,EACxB,OAAA8E,EAAA,KAAArC,GAAA,CACMoC,IAAAA,EAAAA,EACJ,GAAMC,aAAaE,YAAavC,EAAA,UAAA,CAChC,MAASwC,EAAQC,EAAIC,WAAgB1C,EAAA,SAAS,EAC9C,QAAe7M,GAAKF,EAASuP,GAAA,YAAA,KAAA,OAAAvP,EAAA,MAAA,GAAA,IAAA,KAAA,OAAAE,EAAA,CAAA,KAAA+O,EAAA,OAAA,KACvBlC,OACIwC,EACN,CAAA,CACF,EACAG,EAAY,MAAAC,EAAAhS,IAAA,CACdiS,EAAE,MAAAD,EACH,MAAArF,EAAA,gBAAAqF,EAAAhS,CAAA,CAED,YACY,SAAe,CAE1B,MAAAkS,EADSC,EAAAA,cACT,KAAA/C,GAEqBA,EAAA,aAAA,CAAAA,EAAA,MACpB,EACA,GAAA8C,GAAA,CAAAZ,EAAA,OAAA,OAAA,CAAAA,EAAA,SAAA,SAAA,KAAA,EACAS,IAA8BN,GAAa,qBAC7BW,OAAAA,QAAgBhD,WAAW,CACvC,MAAAiD,EAAAb,IACFS,YAEqB,GAAA,EAGnBF,IA2IS,CACXlS,aAAAA,EACA8Q,EAAAA,EACA2B,YAAAA,EACAC,GAAAA,EACD,cA9ImB,IAAc,KACpBlQ,EACZ,KAAA,CACA,MAAAsL,EAEIgD,MAAAA,CACE,EAAAhE,MAAO6F,EAAA,KAAExR,OAAAA,EAAAA,aAAAA,EAAAA,EAAAA,eAAAA,MAAAA,EAAAA,YAAW2M,EAAA,aAAA,IAAAyB,GACtBoD,aAAc,cACWC,eAAcC,EAAQ,EAAA,EACjCD,QACGrS,IAAiB,iBAAA,EAAA,CAC1BuS,KAAAA,MACFA,CACFvS,KAAAA,IAAAA,EAAAI,EAAA,UAAA,EAAA,CAAA,YACgC,MAAAX,EAAA,EAAA,MAAA,EAE1B+S,KAAMxS,EAAAA,QAAA,EAAA,IAAA,EAAA,QAAA,IAGSA,EAAQ,OAAA,KAAA,CAAAgP,EAAA,OAAA,CAAA,CAAA,CAAA,EAImB,IAIlD,GAEFhP,EAAW,MAAA,CACb,MAAE,CAAAP,EAAA,IAAAA,EAAA,EAAAV,EAAA,UAAA,EAAA,CAAA,CACJ,EAAA,CAAAiB,EAAAI,EAAA,YAAA,EAAA,CACA,WAAAyR,EAAA,MAAA,SACiBF,GAA+B3R,GAAAA,CAAA,EAAAoS,EAAA,CAAA,QACpBP,IAAAA,CAAAA,CAAAA,GAAgB,CAAYF,CAAW,EA6GtE,eA5GiB,IAAA,CAAA,KAAA,CAIf,MAAApE,CACK2E,EAAAA,EACE,CAAE3E,aAAAA,CAAO,EAAGhB,EAClB,OAAMvM,EAAAI,EAAA,UAAA,EAAA,CAAEqS,UAAAA,gBAAsBxB,EAAA,MAC9BjR,OAAAA,GAAA,MAAA,CAAAP,EAAA,EAAA,EAAAA,EAAA,EAAAgT,EAAA,YAAA,CAAA,EAAAhT,EAAA,EAAAV,EAAA,UAAA,EAAA,CAAA,GAGgBkS,CAAe,QAAA,IACd,CACN,IAAAhP,EAIN,MAAA,EAAAA,EAAAsL,GAAA,eAAA,KAAA,OAAAtL,EAAA,IAAA+M,GAAAA,EAEAzB,uBAAyByB,EAAQ5O,EAAA,eAAA,EAAA,CAE9B4O,MAAavP,EAAA,EAAA,MAAA,EAAe,KAEfuP,UACHA,QAAYpP,GAAA2M,EAAA,gBAAAyC,EAAA,GAAApP,EAAA,EAAA,CAAA,EAAA,CAEyB,KAAA,IAI7BI,EAAA,MAAA,CACV,MAAAP,EAAA,EAAA,MAAA,CAAA,EAAA,CAAAuP,EACcvP,SAAWO,EAAAI,EAAA,UAAA,EAAA,CACpB4O,KAAKlF,EAAQ,QAAA,EAAA,IAAA,IACSA,EAAAA,UAAAA,EAAAA,CAAQ9J,KAAAA,WAAA,EAAA,IAAA,CAAA,CAAA,CAMrC,CAAA,CAGL,CAAA,CAEJ,CAAC,CAAA,GAgEVF,eA5DyBqS,IAAM,CAC3B,KAAM,CAAE5E,MAAAA,CAAO,EAAGhB,EACZ,CAAEkG,aAAAA,CAAc,EAAGlF,EACzB,OAAAvN,EAAAI,EAAA,UAAA,EAAA,CAAA,MAEW,CACLX,EAAGmE,EAAG,EACNnE,EAAGmE,EAAE6O,EAAc3D,YAAW,CAAE,EAChCrP,EAAGiT,EAAE3T,EAAMgO,UAAUzM,EAAE,CAAC,CACzB,EAAA,CAAAhB,QAAAA,IAAA,CAGC,IAAIqT,EACJ,MAAQ3D,EAAAA,EAAazB,GAAA,eAAA,KAAA,OAAAtL,EAAA,IAAA+M,GAAA,CACnB,IAAA2D,EAAe,YACH3D,EAAA,SAAA,CAAA,IAAA,WAEe2D,EAAA3S,EAAAI,EAAA,UAAA,EAAA,CAAA,MAAA,CAAAX,EAAA,EAAA,MAAA,CAAA,EAGduP,UAAI,GAAQ,OACQ,GACgB,MAAAA,EAAA,QAIrC,QAAQpP,GAAA2M,EAAA,gBAAAyC,EAAA,GAAApP,EAAA,EAAA,CACV,EAAA,CACe,KAAA,IACaI,EAAAA,UAAAA,EAAA,MAAA,CAAA,QACD8J,EAAAA,MAAAA,CAExB,EAAA,CAAA9J,EAAAI,EAAA,UAAA,EAAA,CAEL,KAAA4O,EAAA,UAGL,IAAA,CAAA,CAAA,CAEH,CAAK,EACH2D,MACA,IAAA,YACFA,EAAA3S,EAAAI,EAAA,aAAA,EAAA,KAAA,IAAA,EACE,KAGJ,CAAA,OAAAuS,CAGP,CAAA,CAAA,CACM,EACO,GAUNpF,UAAc,CACtB,KAAM,CAAEkF,MAAAA,CAAa,EAAIlF,KAAK,EAC9B,CACE,aAAAkF,CACE,EAAAlF,EACF,OAAekF,EAAA,CACb,IAAA,WACF,OAAA,KAAA,iBACE,IAAA,WACJ,OAAA,KAAA,iBACF,QACA,OAAA,KAAA,oBCpNF,IAAI9E,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAMoR,EAAgB,CAC3B,aAAc,CACZ9E,GAAc,KAAM,YAAa,oBAAoB,CACtD,CACH,CCLO,MAAM+E,GAAqB5E,GAChC6C,GACA,SAASpI,EAAG,CACVA,EAAE,UAAUoI,GAAe,KAAMA,EAAc,EAC/C5C,GAAwBC,GAAY,SAAU,IAAM,IAAIyE,EAAiB,CAC1E,CACH,ECL+BE,GAAAhU,EAAA,CAC7BC,KAAO,wBACLgO,MAAAA,CACE9N,UAAuC,CACvCC,KAAAA,OACD,SAAA,EACDmP,EAAWpP,QAAkC,CAAEC,KAAAA,OAAgB,SAAA,EAC/DkO,EAAUnO,OAAMsP,CAA6BjP,KAAAA,OAAoB,QAAA,KAAA,CAAA,EAClE,CACDC,EACE,OAAMgN,CAGN,MAAM9M,EAAEwN,OAA2BV,cAAqCnD,CAAA,CAAA,EAElE2J,EAAGlS,EAAmB,WAAA0L,EAAA,MAAA,YAAA,aAAA,EAAA,WAC1B,IAAM/G,GAAAA,YAAcA,IAAM,CACbsB,OAAO,KAAAyF,EAAA,OAAA,EAClB,QAAYzF,GAAY,CACxBnH,MAAMA,EAASwN,EAAAA,QAAerG,CAAA,EAC9BnH,EAAA,MAAAwN,GAAAxN,EAAA,KAAA,CACJ,CAAE,EAEK,EAAG,CAAEF,EAAAA,EAAI,GAAAA,EAGlBK,UACQ,CAAEc,KAAAA,CAAO,MAAAA,CACf,EAAI,KAACA,EACH,GAAAA,EAAA,UAEF,OAAAZ,EAEoBI,EAAE,iBAAA,EAAA,CAAA,MACN,KAAA,GAAA,EAAM,EAAA,WACFC,OAAsC,cAAAA,GAAA,KAAA,EAAA,QAAAA,CAAA,GAGjD,CACH2S,GAAY,KAAA,OACV,aAAA,IAAAhT,EACuB,MAAU,CAACA,MAAAA,KAAA,GAAA,EAAA,SAAA,GAErB,CAAAA,EAAOI,EAAe,YAAS,EAAA,CAAA,MAAA,KACvB,GAAA,GAAA,oBAA4B,QAAA,IAAA,KAAA,EAAA,oBAAA,GAAA,CAAAJ,QAAAA,IAAAI,CAAAI,GAAA,cAAA,CAAA,IAKpCR,EAAOI,EAAe,YAAQ,EAAA,CAAA,MAAA,KACtB,GAAA,GAAA,UAAa,OAAA,EAAC,QAAA,IAAA,KAAA,EAAA,MAAA,GAAA,CAAA,QAAA,IAAA,CAAAI,GAAA,cAAA,CAAA,CAMrC,CAAA,CAAA,CAAA,CAIR,CAAA,CACA,ICnEF,IAAImN,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAMyR,EAAmB,CAC9B,aAAc,CACZnF,GAAc,KAAM,YAAa,uBAAuB,CACzD,CACH,CCLO,MAAMoF,GAAwBjF,GACnC6E,GACA,SAASpK,EAAG,CACVA,EAAE,UAAUoK,GAAkB,KAAMA,EAAiB,EACrD5E,GACEC,GAAY,WACZ,IAAM,IAAI8E,EAChB,CACG,CACH,ECXiC,SAAA1H,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAEjC,OAC4B2H,GAAArU,EAAA,CAC1BC,KAAO,qBACLgO,MAAAA,CACE9N,UAA2C,CAC3CC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAA8B,CAC9BC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CACX,MAAMuS,EAAAA,EAAkBrU,YAAMiO,EAExBqG,EAAAA,EAAiBA,CAAAtU,EAAM,WAAA,gBAAA,EACvBsU,EAAiB,KACnBD,EAAAA,WAAoBA,eACtBA,EAAA,MAAA,CAAAA,EAAA,QAGFE,EAAA,MAAA3T,EAAAC,IAAA,CACA,mBAAsB,gBAGjBA,CAAA,GAEJ2T,EAAAxS,EAAA,IAAA,CAED,KAAiB,CACT,gBAAAyS,CAAEA,EAAAA,EAAAA,UAAgB,OAAIzU,eACP,KAAAyU,CAAA,EAErBzU,EAAA,UAAA,OACA,CAAA,EACF,MAAE,CAEK,GAAAU,EAAEA,WAAAA,EAAI2T,YAAAA,EAAYG,eAAAA,EAAaF,cAAAA,CAAgBC,GACxD,QAAC,CACDxT,IAAMA,EAAGqC,EAAA,IAAAuL,EACP,KAAM,CAAE9M,MAAAA,GAAU,KAAKoM,WACjByG,IAAwBtR,GAAKuR,EAAc,KAAA,QAAI,UAAM,KAAA,OAAAvR,EAAA,KAAAF,CAAA,IAAA,GACrDuH,EAAOxJ,EAAAI,EAAA,SAAA,EAAA,CAAA,KAAA,UAAA,OACqB,KAAK2M,UAAUlL,MAAM0J,EAAAA,GAAAmC,EAClD+F,EAAaxT,IAAI0T,GAAQ,CACxB,MAAM5U,EAAQ4U,EAAK5U,MACnB,MAAI,CAACA,GAAS,CAACA,EAAMiO,WACZ2G,EAGT3T,EAAAI,EAAA,SAAA,EAAA,CAAA,UAEerB,EAAMgO,UAAUpM,UAAS,MAC7B5B,EAAMiO,WAAWpM,KAAK,EAAA2K,GAE5BoI,CAAI,EAAJA,EAAI,CAAArU,QAAAA,IAAA,CAAJqU,CAAI,CAAA,CAAA,EAGV,CAAC,EAAAjG,EAAA,CAAApO,QAAAA,IAAA,CAAAoO,CAAA,EAEL,EACKzM,EAAqB,CACzB,KAAKxB,GAAGmE,EAAC,EACT,KAAKnE,GAAGiT,EAAE,KAAK3F,UAAU6G,QAAQ,CAAC,EAEhC,KAAK7G,UAAU8G,cAAgB,KACjC5S,EAAS6S,KAAK,KAAKrU,GAAGiT,EAAE,aAAa,CAAC,EACtCzR,EAAS6S,KAAK,KAAKrU,GAAGmE,EAAE,UAAU,CAAC,EACnC3C,EAAS6S,KAAK,KAAKrU,GAAGsU,GAAG,WAAY,KAAKX,UAAU,CAAC,EACjD,KAAKpG,WAAWgH,cAClB/S,EAAS6S,KAAK,KAAKrU,GAAGwU,GAAG,WAAY,eAAe,CAAC,EAEnD,KAAKlH,UAAUmH,eAAiB,GAClCjT,EAAS6S,KAAK,KAAKrU,GAAGiT,EAAE,WAAW,CAAC,cAIxC,KAAA,UAAA,cACIyB,IAAsB,MAAA,CACtB,MAAc,CAAA,KAACN,aAAa,CAAA,EAC9BM,QAAM,KAAA,gBACQ,CAAAnU,EAAMP,MAAa,CAAE,MAAA,CAAA,KAAe,GAAC4T,GAAAA,SAAAA,MAAAA,CAAAA,CAAc,EAAA,CAAArT,EAAA,MAAA,CAAA,MACjD,CAAC,KAAKP,GAAG2U,EAAE,SAAS,CAAE,CAAQ,EAAA,CAAApU,KAAA,WAAA,CAAA,CAAA,CAAA,EAAA,KAAA,UAAA,eAAAA,EAAA,MAAA,CAAA,MAC5B,CAAC,KAAKP,GAAGY,YAAY,OAAA,CAAA,CAAI,EAAA,CAAAL,EAAKuT,EAE7B,mBAAc,EAAA,CAAA,MACf,KAAK,GAAG,WAAI,EAAmBvT,iBAAA,KAAA,UAAA,cAAA,qBAAA,gBAExBK,mBAAY,cAAA,KAErB,cAA6C,QAEpCO,KAAAA,UAAsB,cAAA,KAAA,KACtB,KAAA,UAAkB,yBAAA,QAAA,WAAA,SAAA,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA,GAKlB,IAAAyT,EAMxB,KACH,OAAA,KAAA,UAAA,eAAA,eAEA,MAAA,CAAA,KAAA,GAAA,EAAA,QAAA,CAAA,GACIA,CAAAA,EAAsB,MAAA,CACtB,MAAKtH,KAAS,GAAa,GAAA,SAAA,kBAAQ,EACrCsH,QAAM,IAAA,CACQzT,EAAA,cAAmB,UAAE,GAEtB,CAAAA,EAAA,WAAwC,eAA7B,0BAA6B,CAAA,CAAA,CAAA,GAE7CA,EAAgB,MAAIA,CACtB,MAAAK,GAEC,CAAAkT,EAAMnU,QAAoB,CAInC,MAAA,CAAA,KAAA,GAAA,EAAA,SAAA,CAAA,CAEA,EAAA,CAAAwJ,CAAA,CAAA,EAAA6K,CAAA,CAAA,KClIJ,IAAI1G,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAKF,MAAM8S,EAAuB,CAClC,aAAc,CACZxG,GAAc,KAAM,YAAa,oBAAoB,CACtD,CACD,MAAM,iBAAiByG,EAAaC,EAAMC,EAAQ,CAChD,MAAMlI,EAAI,IAAImI,GAAyBH,EAAaC,EAAMC,CAAM,EAChE,aAAMlI,EAAE,OACDA,CACR,CACH,CCbO,MAAMoI,GAAqB1G,GAChCkF,GACA,SAASzK,EAAG,CACVA,EAAE,UAAUyK,GAAe,KAAMA,EAAc,EAC/CyB,GACE,aACA,IAAM,IAAIN,EAChB,CACG,CACH,ECX4D,SAAA/I,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAE5D,OACsBqJ,GAAA/V,EAAA,CACpBC,KAAO,eACLgO,MAAAA,CACE9N,UAAqC,CACrCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAAwB,CACxBC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CACX,MAAM0L,EAAS1L,EAAW,WAAA,EACpBiU,eACCA,EAAYC,CAAAA,EAAAA,IAAkBhO,CACpChI,EAAA,WAAA,aAAAsF,EAAA0C,CAAA,GACsB,CAAE3H,gBAAAA,EAAS,QAAAA,CAElC,EAAAL,EAAiB,UACXyU,IAAmBzU,IACdA,GAAMiO,EAAWwB,WAAKgF,KAC/BzU,EAAA,WAAA,KAAAyU,EAAA,YAAA,CAAA,EAEApU,CACK,QAAI,CAAEmU,GAAAA,EAAahH,YAAAA,EAAGuI,EAAAA,EAAe,cAAAA,EAE9ChV,WAEI,GAAA,CAAA,KAAW,EAAA,MAAA,QACb,OAAA,KAEA,IAAAkV,EAAA,KACA,MAAIA,EAAa,CACjB,sBAAoB,MAClBxT,KAAO,KAAI,WAAW,KACtBgN,WAAWxB,KAAAA,WAAe,OAC1BA,SAAU,KAAE,WAAKA,MAAiB,SAClCsD,SAAU,KAAKtD,WAAWpM,MAAM0P,OAAQ,SACxC2E,SAAU,KAAKjI,eAEjB,GAAC,KAAA,EAAA,KAAA,MAAA,SACG,GAAA,KAAOwH,OAAK5T,QACdoU,EAAe,KAAC1V,OAAO,QAAE4V,CAAA,UACd,KAAKxB,WAAc,eAAa,OAChCvK,EAAe1G,OAAiB,WAAA,eAAA,UAAA,EACzCuS,EAAM7L,GAAAA,EAAY1G,CAGlBuS,GAAAA,GAEA,MACKA,EAAAhV,EAAAI,EAAA,oBAAA,EAAA,CACC,UAAA,KAAA,UAAA,QAAkC,IAAA,EAE5C,OAAAJ,EAAAI,EAAA,uBAAA,EAAA,CAEAJ,MAAAA,CAAAA,KAAAA,GAAAI,EAAA,EAAA,KAAA,GAAA,EAAA,KAAA,UAAA,EAAA,CAAA,EAAA,cAEmB,EAAE,MAAI,SAA6B,MAAA,OACpC,MAAGQ,MAAc,MACxB,KAAK2L,YAAa,YACd,KAAY,EAAA,MAAA,SAAA,mBACLgB,EAAAA,MAAc,UAAA,EAAAhC,GAAAyJ,CACnB,EAAIA,EAASG,CAAU,QAEnCH,IAAM,CAAAA,CAAA,GAAA,CAGb,CAAA,ECvE6BI,GAAAtW,EAAA,CAC7BC,KAAO,wBACLG,MAAAA,CACED,SAAa,CACbC,KAAAA,QACD,SAAA,EACDmW,EACEpW,MAAMwK,CACP,KAAA,MACD6L,EACErW,MAAMwK,CACP,KAAA,MACD8L,EACEtW,SAAY,CACZC,KAAAA,OACD,SAAA,EACDiW,EACElW,WAAY,CACZK,KAAAA,OACF,QAAA,GACD,CACIC,EACH,MAAAR,EAAW8B,CACX,MAAI2U,EAAAA,EAAqC,qBAAA,EACzC,IAAIC,SAEJA,EAAwB,cACd1W,EAAMwW,EAAQ,IAAA,CACpB,OAAWxW,EAAA,SAAA,CACTyW,IAAAA,OACAC,SACAA,EAAA,QACF,MACED,IAAAA,QACAC,UACAA,EAAA,OACF,MACED,IAAAA,SACAC,SACAA,EAAA,OACF,MACED,IAAAA,MACAC,SACAA,EAAA,OACF,KAGF,CACE,MAAAC,EAAa,CACb,cAAgBD,EACjB,eAAAA,CACD,EACElH,OAAAA,EAAOmB,aAAe,KAAE,OAAA,OAAAgG,EAAuB,CAAkB,cAAA,GAAA3W,EAAA,UAAA,IACnE,CAAA,EAEAU,EAAA,YAAAiW,CAAA,EACK,QAAI,CAAExT,GAAAA,EAAS,QAAAA,EAExBpC,EACE,QAAAE,KAEWiC,EAAAE,EAKN,OAAAnC,EACWkC,MAAAA,CAAO,MAAA,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,GAAA,EAAA,KAAA,SAAA,YAAA,CAAA,EAAA,KAAA,GAAA,GAAA,WAAA,KAAA,QAAA,EAAA,KAAA,GAAA,GAAA,QAAA,CAAA,CAAA,KAAA,KAAA,CAAA,EAAA,MAEP,KAAK,OAAiB,EAAA,CAC/BlC,EAAa,MAAW,CAA2B,MACtC,CAAC,KAAKP,GAAGY,EAAE,SAAS,CAAA,CAAA,EAAA,CAAA,KAAA,WAAciV,QAAAA,KAAAA,WAAAA,MAAAA,EAAAA,MAAAA,CAAKtV,MAAAA,CAAAA,oBAG7C,MACI,KAAK,KAAmB,EAAA,CAAAA,SAAsB,KACzD,CAAI,YAAS,CAAK,EAAA,KAAAA,QAA6B,CAAQ,MAC1C,CAAC,KAAKP,GAAGY,EAAE,QAAQ,CAAC,CAAA,EAAA,EAAA8B,GAASF,EAAKqT,KAAAA,QAAAA,UAAAA,KAAAA,OAAAA,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA,EAAAA,KAAAA,WAAAA,SAAAA,KAAAA,WAAAA,SAAAA,EAAAA,MAAAA,CAAK,MAAA,CAAA,KAAA,GAAA,EAAA,OAAA,CAAA,EAK5C,MACG,KAAK,KAAe,EAAA,CAAGtV,EAAU,OACvC,KAAA,CAAAQ,GAAA,GAAA,EAAA,KAAA,KAAA,CAAA,CAAA,CAAA,EAAA,IAAA,CAAA,EAAA,KAAA,MAAAR,EAAA,MAAA,CAGd,MAAA,CAAA,KAAA,GAAA,EAAA,OAAA,CAAA,CACA,EAAA,CAAA,KAAA,KAAA,CAAA,EAAA,IAAA,CAAA,KC5FF,IAAI2N,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAKF,MAAMmU,EAAiB,CAC5B,aAAc,CACZ7H,GAAc,KAAM,YAAa,cAAc,CAChD,CACD,MAAM,iBAAiByG,EAAaC,EAAMC,EAAQ,CAChD,MAAMlI,EAAI,IAAIqJ,GAAmBrB,EAAaC,EAAMC,CAAM,EAC1D,aAAMlI,EAAE,OACDA,CACR,CACH,CCXO,MAAMsJ,GAAe5H,GAAY4G,GAAU,SAASnM,EAAG,CAC5DA,EAAE,UAAUmM,GAAS,KAAMA,EAAQ,EACnCnM,EAAE,UAAU0M,GAAsB,KAAMA,EAAqB,EAC7DR,GAA2B,WAAY,IAAM,IAAIe,EAAkB,CACrE,CAAC,ECVyB,SAAApK,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAI1B,OACsBsK,GAAAhX,EAAA,CACpBC,KAAO,eACLgO,MAAAA,CACE9N,UAAiC,CACjCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAAwC,CACxCC,KAAAA,OACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CACX,MAAMkV,EAAWlV,EAAO9B,WAAMgO,EACxBiJ,EAAmBnM,EAAA9K,EAAa,UAAM,YAAE,CAAA,EAAA,EAAA,EAExC4S,EAAWxE,GAAqB,CAAA4I,EAAA,KAAA,CAAA,QAO3B,CAAEA,GAAAA,EAAaC,YAAAA,EAAUrE,SAAAA,EAAa,YAN9B5K,GAAO,CACxBgP,QAAc/L,EACZgM,EAAa,SAAYD,EAAO,KAAA,GAClCC,EAAA,KAAAD,EAAA,KAAA,GAKJjW,EAAS,QAAA,CACP,IAAMmC,EAAAE,EAAAC,EAAE6T,IAAAA,EAAY,KAAQ,CAC5B,YAAAA,CAEA,EAAIxC,eACFA,IAAArR,GAAAD,GAAAF,EAAA,KAAA,QAAA,UAAA,KAAA,OAAAE,EAAA,KAAAF,CAAA,EAAA,CAAA,IAAA,KAAA,OAAAG,EAAA,WAAA,GAAA,OAAAqR,EACmB,SAAS,GAAOwC,EAClBjW,EAAA,MAAA,CAGnB,MAAA,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,GAAA,EAAA,eAAA,CAAA,GACAA,CAAAA,CAAAA,CAAA,EAGWA,EAAS4D,EAAY,UAAA,EAAA,CAAA,cACfmS,YAAWxK,MAAAmC,CAAA,KAAA,cAEX,EACX,OAAW,KAAO,WAClB,EAAAnC,GAAUmC,EAAU+F,MAAaE,GAAA,CAC/B,MAAA5U,EAAW4U,EAAA,MACb,GAAA,CAAA5U,GAAA,CAAAA,EAAA,WACA,OAAO4U,EAEP,MAAM,EAAC/S,EAAMV,WACX,MAAA,CAAA,EAAA,MAAW,SAAA,CAAA,EAAA,MAAA,UACb,KACAF,EAC2BI,EAAY,SAAA,EAAA,CAAA,MAAS,KAACmN,GAAMjN,EAAAA,UAAAA,EAAE,KAAA,EAAA,MAAA,IAE5C,CACP4V,QAA0B,IAAAvC,EACxB,MAAA,IAAA3T,EACiBmW,OAAAA,CACZ5J,MAAO,cACUA,CAAAA,EAAAA,MAAEgB,SAAMzD,EAAAA,EAAAA,UAAAA,EAAAA,CAAQ,KAAA,QAEhC,QAGR,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,OAAA,CAAA,KAINxK,EAAAoO,EAAA,CAAA,QAAA,IAAA,CAAAA,CAAA,CAGR,CAAA,CACA,CAEF,CAAA,EC9E+B,SAAAnC,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAE/B,OAC0B4K,GAAAtX,EAAA,CACxBC,KAAO,mBACLgO,MAAAA,CACE9N,UAAqC,CACrCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAAwB,CACxBC,KAAAA,GACF,SAAA,EACD,CACDK,EACE,OAAME,CACGA,MAAAA,CAAI,GAANoB,EAAA,gBAAA,EAETf,EAAS,QAAA,CACP,IAAM2T,EAAAA,EACNA,IAAAA,EACE,MAAAA,IAAkBtK,GAASlH,EAAM,KAAA,QAAA,UAAA,KAAA,OAAAE,EAAA,KAAAF,CAAA,IAAA,GACjC,OAAAwR,EAAU,QAAAzE,GAAA,KACJqH,QAAY7H,GAAS6H,EAACrH,EAAW,YAAA,KAAA,OAAAqH,EAAA,KAAM7H,IAC7CA,EAAA,MAAA,CACA,CAAA,KAAA,GAAA,EAAA,OAAA,CAAA,EAAA,OAI+BjD,IAEXoI,SAAQ,EAAA,CACxB,MAAW,CAAA,KAAO,GAAA,EAAC5U,EAAc,KAAA,GAAA,EAAA,KAAA,UAAA,EAAA,CAAA,EACjC,OAAU,KAAKA,gBACb,EAAAwM,GAAOoI,EAAIF,EAAA,IAAAE,GAAA,CACb,MAAA5U,EAAA4U,EAAA,MACA,MAAA3T,CAAAA,GAAAA,CAAAA,EAAA,WAAA2T,EAGiC3T,EAExBI,EAAA,SAAA,EAAA,CAAAd,UAAAP,EAAA,UAAA,UAAA,MAAAA,EAAA,WAAA,UAGT4U,CAAA,EAAAA,EAAA,CAAA,QAAA,IAAA,CAAAA,CAAA,CAAA,CAAA,CAGR,CAAA,CAAA,EAAAjG,EAAA,CACA,QAAA,IAAA,CAAAA,CAAA,OCnDF,IAAIC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAKF,MAAM8U,EAAiB,CAC5B,aAAc,CACZxI,GAAc,KAAM,YAAa,kBAAkB,CACpD,CACD,MAAM,iBAAiByG,EAAaC,EAAM+B,EAAS,CACjD,MAAMhK,EAAI,IAAIiK,GAAmBjC,EAAaC,CAAI,EAClD,aAAMjI,EAAE,OACDA,CACR,CACH,CCXO,MAAMkK,GAAexI,GAAY6H,GAAU,SAASpN,EAAG,CAC5DA,EAAE,UAAUoN,GAAS,KAAMA,EAAQ,EACnCpN,EAAE,UAAU0N,GAAiB,KAAMA,EAAgB,EACnDxB,GAA2B,WAAY,IAAM,IAAI0B,EAAkB,CACrE,CAAC,ECLuBI,GAAA5X,EAAA,CACtBC,KAAO,iBACLgO,MAAAA,CACE9N,UAAuC,CACvCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAA0B,CAC1BC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CACX,MAAM0S,EAAW1S,EAAW,aAAO,EAC3B0S,EAAAxS,EAAA,IAAA,MAAS,CAAEyS,QAAAA,EAAiB,gBAAAA,GAC9BA,EAAAA,UACF,OAAAA,GAAaxG,EAAe,iBAAiB,EAC/CjO,EAAA,WAAA,KAAAyU,CAAA,EAEApU,EACK,QAAI,CAAEmU,GAAAA,EAAa,YAAAA,EAE5BzT,WAEI,OAAA,KAAW,WAAA,MAAA,QAKAE,EAAKgN,EAAmB2J,YAAU3J,EAAAA,CAAW,aACzCvN,WAAY,QAAM,KAAc,KAAA,YAAW,MAAA,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,GAAA,EAAA,KAAA,UAAA,QAAA,CAAA,CAAAH,EAAAA,CAEvC,QAAA,IAAA,CAAA,KAAA,WAAA,CAGvB,CAAA,EAVE,IAWF,CACF,CAAA,EC3CA,IAAIqO,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAKF,MAAMoV,EAAmB,CAC9B,aAAc,CACZ9I,GAAc,KAAM,YAAa,gBAAgB,CAClD,CACD,MAAM,iBAAiByG,EAAaC,EAAMC,EAAQ,CAChD,MAAMlI,EAAI,IAAIsK,GAAqBtC,EAAaC,EAAMC,CAAM,EAC5D,aAAMlI,EAAE,OACDA,CACR,CACH,CCbO,MAAMuK,GAAiB7I,GAAYyI,GAAY,SAAShO,EAAG,CAChEA,EAAE,UAAUgO,GAAW,KAAMA,EAAU,EACvC9B,GAA2B,SAAU,IAAM,IAAIgC,EAAoB,CACrE,CAAC,ECFyBG,GAAAjY,EAAA,CACxBC,KAAO,mBACLgO,MAAAA,CACE9N,UAAyC,CACzCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAA4B,CAC5BC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CACXmW,MAAAA,EAAAA,EAAoBhK,eAAW,EAE/B,OAAAgK,GAAMC,EAAarX,UAAqB,EAKpC,CACFqX,GAAAA,EACD,UANkBC,GAAAA,CAClBnY,EAAA,WAAA,aAAAa,EAAA,IAAA,GAOHE,EACE,QACO,CAGL,GAAA,CAAA,KAAW,WAAA,MAAA,SAAA,CAAA,KAAA,WAAA,MAAA,iBACb,OAAA,KAEA,MAAAqX,EAAA1U,EAAA,eAAA,SACczC,EAAS4D,MAAK,CACvBiJ,MAAEsK,CAAAA,KAAW,GAAA,EAAA,EAAA,KAAA,GAAA,EAAA,KAAA,UAAA,QAAA,CAAA,CACZ9I,EAAAA,CAAAA,GAAAA,EAAcrB,CACdI,QAAQ,KAAKJ,WAAoB,WACjClG,OAAS,gBAAYlG,UACrBwW,IAAAA,KAAY,iBAAY7J,iBACxB0J,OAAS,gBAAOA,MAAAA,UAChB,UAAA,KAAA,SAGR,CAAA,CAAA,CAAA,CACA,CACF,CAAA,ECnDA,IAAItJ,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAKF,MAAM6V,EAAqB,CAChC,aAAc,CACZvJ,GAAc,KAAM,YAAa,kBAAkB,CACpD,CACD,MAAM,iBAAiByG,EAAaC,EAAMC,EAAQ,CAChD,MAAMlI,EAAI,IAAI+K,GAAuB/C,EAAaC,EAAMC,CAAM,EAC9D,aAAMlI,EAAE,OACDA,CACR,CACH,CCbO,MAAMgL,GAAmBtJ,GAAY8I,GAAc,SAASrO,EAAG,CACpEA,EAAE,UAAUqO,GAAa,KAAMA,EAAY,EAC3CnC,GAA2B,WAAY,IAAM,IAAIyC,EAAsB,CACzE,CAAC,ECGwBG,GAAA1Y,EAAA,CACvBC,KAAO,kBACLgO,MAAAA,CACE9N,UAAwC,CACxCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAA2B,CAC3BC,KAAAA,GACF,SAAA,EACD,CACDK,EACE,OAAME,CACGA,MAAAA,CAAI,GAANoB,EAAA,eAAA,EAETf,WAEI,GAAA,CAAA,KAAW,WAAA,MAAA,QACb,OAAA,UAEe,CAAEgK,QAAAA,EAAU,SAAAA,GACrB,KAAA,UAAEH,kBAER,IAAAH,EAAA,KACIA,EAAkCG,EACtC,OAAAA,IAAA,OAAAA,IAAA,OACI1K,IAAkB,OAClB0K,SACEA,EAAAA,EAAgB,SAElBH,EAAWE,EAAsBtK,QAE1B,CAAA,QAAW,UAAuB,OAAA,UAAA,OAAA,EAAA,SAAAuK,CAAA,GAC3CA,IAAA,SAAAG,MAECA,GAGD9J,EAAAI,EAAA,aAAA,EAAA,OACSuJ,KAAAA,GAAAA,EAAW,EACpBH,QAAkBA,EACpB,KAAAvK,CACAe,EAAAA,IAAAA,CAAA,CAEsB,CAAA,ECvD1B,IAAI2N,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAKF,MAAMiW,EAAoB,CAC/B,aAAc,CACZ3J,GAAc,KAAM,YAAa,iBAAiB,CACnD,CACD,MAAM,iBAAiByG,EAAaC,EAAMC,EAAQ,CAChD,MAAMlI,EAAI,IAAImL,GAAsBnD,EAAaC,EAAMC,CAAM,EAC7D,aAAMlI,EAAE,OACDA,CACR,CACH,CCbO,MAAMoL,GAAkB1J,GAAYuJ,GAAa,SAAS9O,EAAG,CAClEA,EAAE,UAAU8O,GAAY,KAAMA,EAAW,EACzC5C,GAA2B,UAAW,IAAM,IAAI6C,EAAqB,CACvE,CAAC,ECL+D,SAAAlM,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAEhE,OAC0BoM,GAAA9Y,EAAA,CACxBC,KAAO,mBACLgO,MAAAA,CACE9N,UAAyC,CACzCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAA4B,CAC5BC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CACXmW,MAAAA,EAAAA,EAAoBhK,gBAAW,EAE/B,OAAAgK,GAAOjY,EAAA,UAAA,EACLU,CACD,GAAAA,EAEHK,EAAS,QAAA,CACP,IAAM2T,EAAAA,EAAAA,EACN,IAAAzT,QAEWyT,IAAYtR,GAAGF,EAAQyQ,KAAE,QAAc,UAAS,KAAG,OAAAvQ,EAAA,KAAAF,CAAA,IAAA,UAC7CjC,EAAAI,WAAgC,EAAC,CAAImL,MAAAmC,EAAA,KAAA,YAErC,GAACzN,EAAI0T,KAAQ,UAAA,QAAA,EAAA,EACxB,eAAkBvR,EAAe,KAAA,UAAA,iBAAA,KAAA,OAAAA,EAAA,CAAA,EAAA,EACjC,EAAAmJ,GAAUmC,EAAU+F,MAAaE,GAAA,CAC/B,MAAA5U,EAAW4U,EAAA,MACb,GAAA,CAAA5U,GAAA,CAAAA,EAAA,WACA,OAAO4U,EAEP,MAAMpH,EAAC3L,EAAMV,WACX,MAAA,CAAAqM,EAAA,MAAW,SAAA,CAAAA,EAAA,MAAA,UACb,KACAvM,EAEoBI,EAAY,aAAA,EAAA,CAAA,MACrBmM,KAAO,GAACnN,EAAO,UAAA,EAAA,MACfmN,EAAM,MAAG,QAAA,KAAAA,EAAA,MAAA,GAAA,KAAA,IAGXhB,GAAAjM,CAAA,EAAAqU,EAAA,CAAA,QAAA,IAAA,CAAAA,CAAA,KAGTrU,EAAAoO,EAAA,CAAA,QAAA,IAAA,CAAAA,CAAA,CAGR,CAAA,CACA,CACF,CAAA,ECzDA,IAAIC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAKF,MAAMqW,EAAqB,CAChC,aAAc,CACZ/J,GAAc,KAAM,YAAa,kBAAkB,CACpD,CACD,MAAM,iBAAiByG,EAAaC,EAAMC,EAAQ,CAChD,MAAMlI,EAAI,IAAIuL,GAAuBvD,EAAaC,EAAMC,CAAM,EAC9D,aAAMlI,EAAE,OACDA,CACR,CACH,CCbO,MAAMwL,GAAmB9J,GAAY2J,GAAc,SAASlP,EAAG,CACpEA,EAAE,UAAUkP,GAAa,KAAMA,EAAY,EAC3ChD,GAA2B,WAAY,IAAM,IAAIiD,EAAsB,CACzE,CAAC,ECL8D,SAAAtM,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAE/D,OACyBwM,GAAAlZ,EAAA,CACvBC,KAAO,kBACLgO,MAAAA,CACE9N,UAAwC,CACxCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAA2B,CAC3BC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CACXmW,MAAAA,EAAAA,EAAoBhK,eAAW,EAE/B,OAAAgK,GAAOjY,EAAA,UAAA,EACLU,CACD,GAAAA,EAEHK,EAAS,QAAA,CACP,IAAM2T,EAAAA,EACN,IAAAzT,QAEWyT,IAAYtR,GAAMF,EAAK,KAAK,QAAU,UAAU,KAAC,OAAAE,EAAA,KAAAF,CAAA,IAAA,UAChDjC,EAAK+M,EAAUlL,SAAAA,EAAAA,CAAM0J,MAAAmC,CAAA,KAAA,eAEfzN,EAAG,KAAK,UAAI,QAAA,CAAA,EACxB,OAAW,KAAO,UAAe,MACjC,EAAAsL,GAAUmC,EAAU+F,MAAaE,GAAA,CAC/B,MAAA5U,EAAW4U,EAAA,MACb,GAAA,CAAA5U,GAAA,CAAAA,EAAA,WACA,OAAO4U,EACP,MAAApH,EAAAxN,EACuB,WAAgB,OAAAiB,EAAWY,EAAAA,SAAAA,EAAAA,CAAK,UAC9C2L,EAAA,MAAA,UAAAjN,MAAAA,EAAA,KAAA,EAAAiM,GAAAoI,CAAA,EAAAA,EAAA,SAGT,IAAA,CAAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAAjG,EAAA,CAGR,QAAA,IAAA,CAAAA,CAAA,CACF,CAAE,CACF,IChDA,IAAIC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAKF,MAAMyW,EAAoB,CAC/B,aAAc,CACZnK,GAAc,KAAM,YAAa,iBAAiB,CACnD,CACD,MAAM,iBAAiByG,EAAaC,EAAMC,EAAQ,CAChD,MAAMlI,EAAI,IAAI2L,GAAsB3D,EAAaC,EAAMC,CAAM,EAC7D,aAAMlI,EAAE,OACDA,CACR,CACH,CCbO,MAAM4L,GAAkBlK,GAAY+J,GAAa,SAAStP,EAAG,CAClEA,EAAE,UAAUsP,GAAY,KAAMA,EAAW,EACzCpD,GAA2B,UAAW,IAAM,IAAIqD,EAAqB,CACvE,CAAC,ECHuBG,GAAAtZ,EAAA,CACtBC,KAAO,iBACLgO,MAAAA,CACE9N,UAAuC,CACvCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAA0B,CAC1BC,KAAAA,GACF,SAAA,EACD,CACIK,EACHyX,MAAAA,EAAAA,CAEAA,GAAejY,EAAW,UAAA,EAE1B,MAAMsZ,EAAAA,EAAAA,iBAuBI,CAAEA,EAAAA,EAAuB,sBAtBN,IAAA,CACzB,OAAa9L,EAAA,MAAA,YAAA,KACXvM,SAAA,OAAAA,EAEkBsY,EAAAA,4BAAAA,EAAAA,CAAuB,WAAA/L,EAAA,uBAG3C,EAAK,IAAQ,MACXvM,SAAA,OAAAA,EAEkBsY,EAAAA,+BAAAA,EAAAA,CAAuB,WAAA/L,EAAA,uBAG3C,EAAA,IAAA,UACE,OAAAvM,EAEkBsY,EAAAA,4BAAAA,EAAAA,CAAuB,WAAA/L,EAAA,uBAG7C,EAAA,IAAA,CACD,GAIHzM,UACQyY,CAoCR,OAnCe,IAAA,CACX,IAAM/O,EAAE+D,KAAAA,CAAO,MAAAA,GACPA,KAAAA,EACN,OAAWA,GAAA,YAAA,KACF,SAC2BvN,EAAOsY,EAAAA,oBAAAA,EAAAA,CACxC,WAAA,KAAA,EAAA,uBACD,EAAA,IAAA,EACF,UACS,SAC2BtY,EAAOsY,EAAAA,oBAAAA,EAAAA,CACxC,WAAA,KAAA,EAAA,uBACD,EAAA,IAAA,EACF,UACS,SAC2BtY,EAAOsY,EAAAA,oBAAAA,EAAAA,CACxC,WAAA,KAAA,EAAA,uBACD,EAAA,IAAA,EACF,UACS,aAEStY,EAAOsY,EAAAA,wBAAAA,EAAAA,CAEtB,WAAA,KAAA,EAAA,uBACD,EAAA,IAAA,EACF,MACE9O,IAAAA,WACAA,EAAA,KAAA,wBAEF,KAGF,CACD,OAAAA,IAEH,CACA,CAEF,CAAA,ECjF6BgP,GAAA1Z,EAAA,CAC3BC,KAAO,sBACLiO,MAAAA,CACE/N,WAA8C,CAC9CC,KAAAA,OACD,SAAA,EACDuZ,EACExZ,cAAa,CACbK,KAAAA,QACAJ,QAAU,GACZ,SAAA,EACD,CACI,EACLK,0BAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CACA,MAAM+M,EAAS1L,EAAW,aAAA,EACpB6X,EAAY3Z,EAAA,WACZ4Z,EAAAA,IAAoB,GAEzBA,EAAA,IAAA,CAEDnZ,EAAgB,mBAAU,CAC1B,EACOoZ,EAAArM,EAAA,MAAA,aAAA,CAAA,CAAAA,EAAA,MAAA,QAAIvL,EAAAH,EAAA,YAAA,QAAK,CAAE0L,GAAAA,EAAGmM,IAAAA,EAAcC,EAAAA,EAAmBC,aAAAA,EAAY,kBAAAD,EACnE,WAAAC,CACD9Y,GAEI,QAAA,CACF,MAAC+Y,EAAA,IACKC,KAAAA,OAAAA,SAAiC,KAAA,OAAA,UACrCA,EAC8B,IACzB9Y,EAAA,MAAA,CAAA,MACa,KAAK,GAAG,EAAE,MAAC,CAA+B,EAAA,CAAAA,CAAAA,EAAA,MAAA,CAAA,MACvC,MAAKP,GAAI,EAAU,OAAA,EAAA,KAAA,IAAA,EAAA,QAAA,CAAA,CAAC,EAAA,CAC9BO,EAAe,OAAM,CAGuB,MAEpC,KAAKP,GAAGmE,EAAE,SAAS,CAAC,EAAA,CAAA,KAAA,WACN,MAAK+U,aAAiB,KAAE,WAAA,MAAA,OAAA,CAAA,EAAA,KAAA,eAAA,KAAA,WAAA,UAAA3Y,EAAAI,EAAA,YAAA,EAAA,CAAA,MAAA,KAAA,GAAA,EAAA,SAAA,EAAA,QAAA,IAAA,KAAA,kBAAA,EAAAd,KAAA,SAAA,EAOnDuZ,CAIP,QAAA,IAAA,CAAArY,GAAA,cAAA,CAAA,CACD,CAAA,CAAA,CAAA,EAAAqY,EAAA,CAAA,CAAA,CAAA,EAQK,OAEAC,EAAAA,MAAmB,CAG1B,MAAA,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,GAAA,EAAA,KAAA,EAAA,MAAA,QAAA,EAAA,KAAA,GAAA,EAAA,KAAA,EAAA,MAAA,YAAA,YAAA,CAAA,EAAA,GAAA,KAAA,WAAA,eAAA,KAAA,GAAA,GAAA,aAAA,CAAA,KAAA,UAAA,CAAA,CACF,EAAE,CAAAA,EAAA,CAAA,CAAA,CAEF,IC9DiF,SAAAvN,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAEjF,OACgCuN,GAAAja,EAAA,CAC9BC,KAAO,yBACLiO,MAAAA,CACE/N,WAAsD,CACtDC,KAAAA,OACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CAEXmW,MAAAA,EAAAA,EAAoBhK,aAAW,EAE/BgK,GAAejY,EAAW,UAAA,EAE1BwN,QAAUY,EAAAA,WAEV,OAAAZ,EAAO,MAAAY,GAAAZ,EAAA,KAAA,EAAI,CAAEA,GAAAA,EAAG,EAAAA,EAElBzM,EAAS,QAAA,CACP,IAAA4N,EAEA,MAAMtC,EAAAA,KAAAA,EACAmB,OACF,GAAAA,EAAA,cAAoBA,EAAEkI,SAAW,CACjC,MAAMuE,EAAezM,EAAA,OAAA,KAAA,QAAA,QACVyM,EAAgB,CACzB3K,UAAoB9B,EAAA,aACpBa,QAAS6L,EACTC,OAAiB3M,EAAA,OAAA,KAAiB,OAClC0K,kBAAuC1K,GAAmBA,EAAA,kBAAOzD,CAAA,EACjEqQ,UAAY1Z,GAA2B8M,EAAA,kBAAA3M,CAAA,EACxC,MAAA,KAAA,GAAA,EAAA,sBAAA,CAED,EAIAwZ,EAAAvM,GAAApK,EAAA8J,EAAA,SAAA,SAAA,EAAAyM,CAAA,EAAA,OAAAhZ,EACuB,MAAe,CACjCoZ,MAAAA,KAAAA,GAAAA,gBAAgB,CAAA,EAAA,CAAAA,EACUpZ,EAAA,MAAA,CACxBuM,MAAQ,UAAS,KAAAvM,CAAA,EAAA,CAAAuM,EAAA,OAAA,UAAAvM,EAAAI,EAAA,YAAA,EAAA,CAAA,KAAA,SAGgB,MAAA,KACf,GAAA,EAAE,YAAe,EAAA,SACvB,CAAY,KAAA,EAAA,eAAqB,QAAA,IAAA,KAAA,EAAA,aAAA,GAAA,CAI7C,QAAA,IAAA,CAAAI,GAAA,cAAA,CAAA,CAIT,CAAA,CAAA,CAAA,CAAA,CAAA,CACD,GACD,OAAAR,EAEoBwY,GAAa,CAAA,MACjBjM,KAAAA,GAAQ,EAAA,WAAA,EAAA,WAAAA,EAAA,2BAEF,IAAA,CAClBA,EAAA,aAAA,CAAChB,GAEeA,GAAAjM,EAAA8L,EAAA,CAAA,EAAAsC,EAAA,CAAA,QAAA,IAAA,CAAAA,CAAA,CAGtB,CAAA,CACA,CAEF,CAAA,ECxEiF,SAAAnC,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAEjF,OAC4B6N,GAAAva,EAAA,CAC1BC,KAAO,qBACLiO,MAAAA,CACE/N,WAAkD,CAClDC,KAAAA,OACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CAEXmW,MAAAA,EAAAA,EAAoBhK,aAAW,EAE/BgK,GAAejY,EAAW,UAAA,EAC1BwN,QAAUY,EAAAA,WACV,OAAAZ,EAAO,MAAAY,GAAAZ,EAAA,KAAA,EAAI,CAAEA,GAAAA,EAAG,EAAAA,EAElBzM,EAAS,QAAA,CACP,IAAA4N,EACA,MAAMtC,EAAAA,KAAAA,EACAmB,OACF,GAAAA,EAAA,cAAoBtM,EAAG,SACrB,OAAAsM,EAAiB,MAAA,KAAA,IAAKkI,CAAMzF,EAACwF,IAAY,CACzC,MAAMjH,WAAsB,KAAA,QAAA,WACpBqG,EAAAA,MAAAA,eAAW0F,CAGjBL,MAAAA,EAAoBK,GAAe/M,EAAA,MAAA,eAAA,eAAA,EACrC0M,EAAArF,CAAA,EAAA5E,EAAA,MACA,OACWgK,EAAgB,CACzB3K,UAAoB9B,EAAA,aACpBa,QAAS6L,EACTM,OAAAA,EAAAA,OAAmBzQ,KACjByD,OACFiN,iBAA6BjN,GAAqBA,EAAA,aAAAzD,OAAO2Q,CAAA,EACzDxC,gBACE1K,IAAkBA,EAAA,oBAAMkN,CAAO,EAClC,UAAA7Z,GAAA2M,EAAA,iBAAA3M,EAAA6Z,CAAA,CACD,EAIAzZ,EAAA6M,GAAApK,EAAA8J,EAAA,SAAA,SAAA,EAAAyM,CAAA,EAAA,OAAAhZ,EACkCI,EAAgB,gBAAA,EAAA,CAAA,WAAYoQ,GAAAA,EAAAA,cAAAA,EAAM,IAAAxB,EAAA,MAAA1P,EAAAA,SAGvD,IAAQ,CAAA8Z,EAAA,CACb,QAAOA,IACRA,QAGG7M,IAEasD,EAAAA,iBAAmB6J,EAAkBtZ,EAAA,YAAA,EAAA,CAAC,QAAA,IAAA,KAAA,EAAA,aAAAqZ,CAAA,GAAA,CAIlD,QAAA,IAAA,CAAAjZ,GAAA,cAAA,CAAA,CAEL,CAAA,CACD,CAAA,CAGP,CAAE,CACJ,CAAA,GAEF,OAAAR,EAEoBwY,GAAQ,CAAA,MACZjM,KAAAA,GAAQ,EAAA,MAAA,EAAA,WAAAA,EAAA,2BAEF,IAAA,CAClBA,EAAA,aAAA,CAAChB,GAEeA,GAAAjM,EAAA8L,EAAA,CAAA,EAAAsC,EAAA,CAAA,QAAA,IAAA,CAAAA,CAAA,CAGtB,CAAA,CACA,CAEF,CAAA,ECvFiF,SAAAnC,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAEjF,OAC4BmO,GAAA7a,EAAA,CAC1BC,KAAO,qBACLiO,MAAAA,CACE/N,WAAkD,CAClDC,KAAAA,OACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CAEXmW,MAAAA,EAAAA,EAAoBhK,aAAW,EAE/BgK,GAAejY,EAAW,UAAA,EAE1BwN,QAAUY,EAAAA,WAEV,OAAAZ,EAAO,MAAAY,GAAAZ,EAAA,KAAA,EAAI,CAAEA,GAAAA,EAAG,EAAAA,EAElBzM,EAAS,QAAA,CACP,IAAA4N,EAEA,MAAMtC,EAAAA,KAAAA,EACAmB,OACF,GAAAA,EAAA,cAAoBA,EAAEkI,SAAW,CACjC,MAAMuE,EAAezM,EAAA,OAAA,KAAA,QAAA,QACVyM,EAAgB,CACzB3K,UAAoB9B,EAAA,aACpBa,QAAS6L,EACTC,OAAiB3M,EAAA,OAAA,KAAiB,OAClC0K,kBAAuC1K,GAAeA,EAAA,kBAAOzD,CAAA,EAC7DqQ,UAAY1Z,GAA2B8M,EAAA,cAAA3M,CAAA,EACxC,MAAA,KAAA,GAAA,EAAA,sBAAA,CAED,EAIAwZ,EAAAvM,GAAApK,EAAA8J,EAAA,SAAA,SAAA,EAAAyM,CAAA,EAAA,OAAAhZ,EACuB,MAAe,CACjCoZ,MAAAA,KAAAA,GAAAA,gBAAgB,CAAA,EAAA,CAAAA,EACUpZ,EAAA,MAAA,CACxBuM,MAAQ,UAAS,KAAAvM,CAAA,EAAA,CAAAuM,EAAA,OAAA,UAAAvM,EAAAI,EAAA,YAAA,EAAA,CAAA,KAAA,SAGgB,MAAA,KACf,GAAA,EAAE,YAAe,EAAA,SACvB,CAAY,KAAA,EAAA,eAAqB,QAAA,IAAA,KAAA,EAAA,aAAA,GAAA,CAI7C,QAAA,IAAA,CAAAI,GAAA,cAAA,CAAA,CAIT,CAAA,CAAA,CAAA,CAAA,CAAA,CACD,GACD,OAAAR,EAEoBwY,GAAQ,CAAA,MACZjM,KAAAA,GAAQ,EAAA,MAAA,EAAA,WAAAA,EAAA,2BAEF,IAAA,CAClBA,EAAA,aAAA,CAAChB,GAEeA,GAAAjM,EAAA8L,EAAA,CAAA,EAAAsC,EAAA,CAAA,QAAA,IAAA,CAAAA,CAAA,CAGtB,CAAA,CACA,CAEF,CAAA,EC5EoF,SAAAnC,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA+C,OAAAqL,UAAAC,SAAAC,KAAAtO,CAAA,IAAAC,mBAAAA,CAAAA,GAAAD,CAAA,CAAA,CAE7E,MAAMuO,GAA4Bjb,EAAgB,CACvDiI,KAAM,gCACNhI,MAAO,CACLiO,WAAY,CACV/N,KAAMsP,OACNrP,SAAU,EACZ,CACD,EACDK,MAAMR,EAAO,CACX,MAAMU,EAAKoB,EAAa,aAAa,EAErCmW,GAAcjY,EAAMiO,UAAU,EAE9B,MAAMT,EAAyCxN,EAAMiO,WAErD,MAAO,CAAEvN,GAAAA,EAAI8M,EAAAA,EACd,EACDzM,QAAS,CAAA,IAAA4N,EACP,GAAI,CAAC,KAAKnB,EACR,OAEF,MAAMnB,EAAgBA,IACpBpL,EAAAI,EAAA,iCAAA,EAAA,CAAA,UAEe,KAAKmM,EAAEgB,MAAK,QACd,KAAKhB,EAAEkI,OAAOD,KAAKnG,QAAO,OAC3B,KAAK9B,EAAEkI,OAAOD,KAAKpH,OAAM,KAC3B,KAAKb,EAAEiC,KAAI,MACV,EAAC,WACI,KAAKjC,EAAC,cACH,GAAK,mBAC4BA,GAAK,CACnD,KAAKA,EAAEyN,kBAAkBzN,CAAC,CAC5B,CAAC,EAAA,IAAA,EAKP,OAAAvM,EAAAwY,GAAA,CAAA,MAEW,KAAK/Y,GAAGmE,EAAE,mBAAmB,EAAC,WACzB,KAAK2I,EAAEkI,OAAM,cACV,EAAKlJ,EAAAA,GAAAmC,EAEnBtC,EAAe,CAAA,EAAAsC,EAAA,CAAApO,QAAAA,IAAA,CAAAoO,CAAA,CAAA,CAAA,CAGtB,CACF,CAAC,ECxDsE,SAAAnC,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAMvE,OACoCyO,GAAAnb,EAAA,CAClCC,KAAO,6BACLiO,MAAAA,CACE/N,WAA0D,CAC1DC,KAAAA,OACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CAEXmW,MAAAA,EAAAA,EAAoBhK,aAAW,EAE/BgK,GAAiDjY,EAAW,UAAA,EAE5D,MAAOwN,EAAAxN,EAAA,iBAAI,CAAEwN,GAAAA,EAAG,EAAAA,EAElBzM,EAAS,QAAA,CACP,IAAI4N,EACF,GAAA,CAAA,KAAA,EACF,OAEE,MAAAtC,EAAsB,IACpBpL,KAAAA,EAAAA,KAAAA,IAAA,CAAAgP,EAAAyK,IAAAzZ,EAEoBuM,EAAO,iCAAA,EAAA,CAAA,UACd,KAAOkI,QAAmB,QAC3B,KAAM,SAAQD,KAAW,QAAA,OACvB,KAAA,EAAA,OAAA,KAAA,OAAA,KAAAxF,EACE,MACAyK,EAAM,WAAA,KAAA,EAEhB,mBAAwBlN,GAAG,CAC7B,KAAA,EAAA,kBAAAA,CAAA,CAAC,CAGL,EAAA,IAAA,CACH,EAED,OAAAvM,EAEoBI,EAAiB,qBAAA,EAAA,CAAA,MAAA,KACrB,GAAI,EAACmM,eAAQ,EAAA,WAAA,KAAA,EAAA,OAEvB,oBAAqB,IAAA,CACvB,KAAA,EAAA,cAAChB,GAEeA,GAAAjM,EAAA8L,EAAA,CAAA,EAAAsC,EAAA,CAAA,QAAA,IAAA,CAAAA,CAAA,CAGtB,CAAA,CACA,CAEF,CAAA,EC1Ca,SAAAnC,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA+C,OAAAqL,UAAAC,SAAAC,KAAAtO,CAAA,IAAAC,mBAAAA,CAAAA,GAAAD,CAAA,CAAA,CAEN,MAAM0O,GAA8Bpb,EAAgB,CACzDiI,KAAM,kCACNhI,MAAO,CACLgO,UAAW,CACT9N,KAAMsP,OACNrP,SAAU,EACX,EACDmP,QAAS,CAAEpP,KAAMsP,OAA8BrP,SAAU,EAAM,EAC/DkO,OAAQ,CAAEnO,KAAMsP,OAA6BjP,QAASA,KAAO,CAAA,EAAK,EAClEkP,KAAM,CAAEvP,KAAMsP,OAA2BrP,SAAU,EAAM,EACzDua,MAAO,CAAExa,KAAMkb,OAAQjb,SAAU,EAAM,EACvC8N,WAAY,CACV/N,KAAMsP,OACNrP,SAAU,EACX,EACDuZ,cAAe,CACbxZ,KAAMmb,QACN9a,QAAS,GACTJ,SAAU,EACZ,CACD,EACDK,MAAMR,EAAO,CAAEqG,MAAAA,CAAM,EAAG,CACtB,MAAMmH,EAA8BU,GAClC,IAAI7D,IACF,IAAIiR,GACF,GAAGjR,EACHrK,EAAMyP,KACNzP,EAAMiO,WAAWyH,OAAOD,IAC1B,CACJ,EAEM/U,EAAKoB,EAAa,aAAa,EACrC0L,EAAE3L,MAAMkP,SAAW,GACnB,MAAMwK,EAAOzQ,EAAI,EAAK,EAEtB0C,EAAEe,IAAIyF,GAAG,YAAa,IAAM,CAC1B,OAAA,KAAAxG,EAAA,OAAA,EACM/G,QAAasB,IACnBtB,MAAKgI,EAAejB,EAAA,QAAAzF,CAAA,EAClBnH,QAAe4M,GAAS5M,EAAK,KAAA,IAE/B2a,EAAE,MAAA,KAEJ/N,EAAE,IAAA,GAAA,mBAAAzD,GAAA,CAEIiK,EAAqB,KAAA,OAAA,GACzBhU,EAAQyP,WAAW,iBAAM1F,EAAA,KAAA,CAAA,EAAA/J,EAAA,KAAA,CAEzB,CAAA,EACF,MAAEwb,EAAA,CACF,MAA2B/F,EAASgG,EAAA,CAAA7a,EAAAqP,EAAAyK,IAAA,OAEpC,GAAA9Z,EAAA,OACJ,OAEA,MAAA8a,EAAA9a,EAAA,GACAqN,EAAAT,EAAA,QAAAkO,CAAA,EACAC,EAAA,CACA,UAAA/a,EACU6a,WAAAA,EAI4B,IAAA7a,EAAA,IAE9B,GAAAyF,EAAAqV,CAAA,EACF,OAAAE,GAAAvV,EAAAqV,EAAA,CACA,GAAcF,EACd,IACA,CAAA,EAEExN,MAAAA,EAAiB,CAAA,EACPpN,EAAA,aAAA,YAAAyF,EAAA,GAAAqV,CAAA,SAAA,IACV3T,EAAW,QAACxG,IAAAA,IACb8E,EAAA,GAAAqV,CAAA,SAAA,EAAA,GAAArR,CAAA,GAGC,MAAAwR,EAAuBC,GAAYlb,CAAA,EACjCib,EAAY,WACTF,QAAAA,IAAAA,EAAAA,IAAAA,GACHF,EAAA5N,CAAA,CACJ,GAEA,MAAAD,GAAAK,GAAA,MAAA,UAAAyN,CAAA,EACA,GAAMK,CAAAA,EACN,OAAA9a,EAAA,MAAA,KAAA,CAAAQ,GAAA,gEAAA,EAAAb,EAAA,WAAAa,GAAA,wDAAA,CAAA,CAAA,EAEEsa,MAAAA,EAAkBrY,EAAkCkK,EAAA,SAAA,SAC3CvH,EAASqV,EAAkB,SAAU,EAAA,CAC9C,UAACC,EAAA,UAAA,UACH,MAAAA,EAAA,WAAA,KACA,EAAAnP,GAAkBmC,EAAAb,GAAGgO,EAAoB,CACrCD,GAAAA,CACF,EAAAE,CAAA,CAAA,EAAApN,EAAA,CACAoN,QAAU,MAAW,CAEjB,CAAA,CACF,EACJ,MAAA,KAEA,GAAArb,EACA,mBAAA+a,EACA,KAAAF,EAIA,EACA,QAAA,IACAta,CAAAA,KAAAA,KAAA,OAGuC,QAEjC,CACAmJ,MACA,KACKuR,EACL,OACAI,KAAAA,EAAAA,MAIP7Y,EAAA,KAAA,WAAA,MAAA,gBAAA,KAAA,OAAAA,EAAA,IAAAtC,GAEM,KAAA,mBAAAA,EAAAqP,EAAAyK,CAAA,CAAG,EALH,aAK2BzZ,EAAAI,EAAA,gBAAA,EAAA,CAAEka,MAAAA,GAAAA,KAAAA,GAAAA,EAAAA,cAAAA,CAAAA,IAAAA,KAAAA,GAAAA,EAAAA,qBAAAA,CAAAA,IAAM,CAC3C,QAAA,IAAA,CAEKxa,IAAGib,EACH,OAAMT,EAAM,MAAA,CACd,MAAA,KAAA,GAAA,EAAA,wBAAA,CACF,EAAA,CAAAta,EAAAI,EAAA,SAAA,EAAA,CACM4a,YAAgBA,EACpBhM,MACAyK,MAEA,EAAKlO,KAAayP,EAAA,KAAA,KAAA,KAAA,KAAA,CAAA,EAAAD,EAAA,CAChB,QAAW,IAAA,CAAAA,CAAA,CACb,CAAA,CAAA,CAAA,CACO,QACE,IACP,KAAA,eAAA,KAAA,WAAA,OAAA,UAAA/a,EAAAI,EAAA,YAAA,EAAA,CACH,MAAA,KAAA,GAAA,EAAA,KAAA,EACDJ,KAAAA,SAAA,QAEkB,IAAK,CAEhB,KAAA,WAAA,aAAA,KAAA,KAAA,CAGM,CAAQ,EAAA,CACb,QAAA,IAAA,CAAAQ,GAAA,cAAA,CAAA,CAAA,CAAA,CACiD,CAAA,CACT,IC3KpD,IAAImN,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAKF,MAAMyZ,EAAmB,CAC9B,aAAc,CACZnN,GAAc,KAAM,YAAa,gBAAgB,CAClD,CACD,MAAM,iBAAiByG,EAAaC,EAAMC,EAAQ,CAChD,MAAMlI,EAAI,IAAI2O,GAAqB3G,EAAaC,EAAMC,CAAM,EAC5D,aAAMlI,EAAE,OACDA,CACR,CACH,CCNO,MAAM4O,GAAiBlN,GAAYmK,GAAY,SAAS1P,EAAG,CAChEA,EAAE,UAAU0P,GAAW,KAAMA,EAAU,EACvC1P,EAAE,UAAU2Q,GAAe,KAAMA,EAAc,EAC/C3Q,EAAE,UAAUiR,GAAe,KAAMA,EAAc,EAC/CjR,EAAE,UAAUqQ,GAAmB,KAAMA,EAAkB,EACvDrQ,EAAE,UAAUuR,GAAuB,KAAMA,EAAsB,EAC/DvR,EAAE,UAAUqR,GAA0B,KAAMA,EAAyB,EACrErR,EAAE,UAAUwR,GAA4B,KAAMA,EAA2B,EACzExR,EAAE,UAAU8P,GAAoB,KAAMA,EAAmB,EACzD5D,GAA2B,SAAU,IAAM,IAAIqG,EAAoB,CACrE,CAAC,ECtBD,IAAItN,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAM4Z,EAAiB,CAC5B,aAAc,CACZtN,GAAc,KAAM,YAAa,qBAAqB,CACvD,CACH,CCLO,MAAMuN,GAAkBvc,EAAgB,CAC7CiI,KAAM,sBACNhI,MAAO,CACLgO,UAAW,CACT9N,KAAMsP,OACNrP,SAAU,EACX,EACDmP,QAAS,CAAEpP,KAAMsP,OAA8BrP,SAAU,EAAM,EAC/DkO,OAAQ,CAAEnO,KAAMsP,OAA6BjP,QAASA,KAAO,CAAA,EAAK,EAClEgc,SAAU,CAAErc,KAAMmb,QAASlb,SAAU,EAAO,EAC5CsP,KAAM,CAAEvP,KAAMsP,OAA2BrP,SAAU,EAAM,CAC1D,EACDK,OAAQ,CACN,MAAMgN,EAAIU,GACR,IAAI7D,IAAS,IAAImS,GAAmB,GAAGnS,CAAI,CAC7C,EAEAjC,EACE,IAAMoF,EAAE3L,MAAM4N,KACd,CAACvD,EAAQC,IAAW,CACdD,GAAUA,IAAWC,IACvBqB,EAAE3L,MAAMkP,SAAW,GAEvB,EACA,CAAE3E,UAAW,EAAK,CACpB,EAEA,MAAM1L,EAAKoB,EAAc,WAAU0L,EAAEgB,MAAMiO,YAAa1M,aAAc,EAAC,EAEvEvC,OAAAA,EAAEe,IAAIyF,GAAG,YAAa,IAAM,CACbxE,OAAO/I,KAAK+G,EAAExM,OAAO,EAC7ByN,QAAQ1G,GAAO,CAClB,MAAMnH,EAAS4M,EAAExM,QAAQ+G,CAAG,EAC5BnH,EAAOiB,MAAQuM,GAASxN,EAAOiB,KAAK,CACtC,CAAC,CACH,CAAC,EAEM,CAAE2L,EAAAA,EAAG9M,GAAAA,EACb,EAEDK,QAAS,CACP,OAAAE,EAAAI,EAAA,iBAAA,EAAA,CAAA,MAC0B,KAAKX,GAAGmE,EAAG,EAAA,WAAc,KAAK2I,CAAC,EAAA,CAClD,GAAG,KAAKmH,MAAM,CAAA,CAGvB,CACF,CAAC,EChDY+H,GAAsBxN,GACjCoN,GACA,SAAS3S,EAAG,CACVA,EAAE,UAAU2S,GAAgB,KAAMA,EAAe,EACjDnN,GAAwBC,GAAY,KAAM,IAAM,IAAIiN,EAAkB,CACvE,CACH,ECGyBM,GAAA5c,EAAA,CACvBC,KAAO,kBACLiO,MAAAA,CACE/N,WAAwC,CACxCC,KAAAA,OACF,SAAA,EACD,CACIK,EAAU6F,MAAAA,EAAAA,CAAS,MAAAA,CACtB,EAAA,CAEA,MAAMmH,EAAS1L,EAAW,cAAA,iBAE1B0Z,EAAA,CACA,MAA2B/F,EAASgG,EAAA7a,GAAA,aAEpC,OAEJ,MAAA8a,EAAA9a,EAAA,GACA+a,EAAA,CACA,UAAA/a,EACA,WAAA4M,EAAA,QAAAkO,CAAA,EACA,IAAA9a,EAAA,IAIM,GAAKA,EAAM8a,CAAyB,EAClC,OAAAE,GAAAvV,EAAAqV,EAAA,CACF,GAAAF,EACA,GAAcG,IAGd,MAAMA,EAAqB,CAAA,EACzB3N,EAAS,aAAQ,YAAA3H,EAAA,GAAAqV,CAAA,SAAA,IACjBzN,UAAqB,UACT1M,GAAAA,CAAAA,SAAAA,EAAAA,GAAAA,CAAAA,GAGd,MAAAsa,EAAAC,GAAAlb,CAAA,EACIyF,EAAc,SAChB0V,EAAiB,QAAM,MAAY,IAAAlO,GACrB4N,EAAA5N,CAAA,IAGhB,MAAAD,EAAAJ,EAAA,UAAAkO,CAAA,QAEA,OAAAza,EAAA,MAAA,KAAA,CAAAQ,GAAA,gEAAA,EAAAb,EAAA,WAAAa,GAAA,wDAAA,CAAA,CAAA,EAEA,MAAA2I,EAAA1G,EAAAkK,EAAA,SAAA,EACA,OAAUE,GAAA1D,EAAW,CACnB2R,GAAAA,IACS1V,GAEXuW,EAAAC,GAAA,CACA,KAAMhB,CACFA,UAAAA,CACF,EAAAgB,SACqB7O,aACN9M,MAAI2M,EAAS,CAAAG,CAAA,GACjByN,IAAAA,GACPA,EAAA7a,CAAA,CACN,GAEA,OAAAgc,EAAA,MAAA,CAAA,WAAA,EACApB,aAA4BoB,EACvBhP,MAIL,EAAAJ,EACA,WAAAoP,EACA,UAAApB,kCASF,OAAAva,EAAAI,EAAA,iBAAA,EAAA,CACMub,MAAAA,CAAAA,KAAcC,GAAAA,EAAAA,CAAAA,EAGlB,WAAM,KAAA,CAAE7O,EAAAA,CAAU,QAAU,IAAA,CAAA,KAAA,EAAA,MAAA,WAAA,CAAA,KAAA,OAAA,QAAA,KAAA,OAAA,QAAA,CACtB8O,GAAAA,KAAAA,SACN,CAAA,EAAA7b,EAAmBI,EAAe,cAAA,EAAA,CAChC,UAAOoa,KAAAA,EAAAA,MACP,WAAA,KAAA,GACH,CACDmB,QAAW5c,IAAQ,CAEV,IAAC4c,EAEH,MAAA,EAAA1Z,EAAA,KAAA,EAAA,MAAA,cAAA,KAAA,OAAAA,EAAA,IAAA6Z,GAAI,KAAA,mBAAAA,CAAA,CAAG,CAAA,CAAY,EAAW,EAAA,KAAA,OAAA,cAAA,KAAA,OAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAEtB,CAAAA,KC7F9BuB,GAAkB9N,GAAYyN,GAAa,SAAShT,EAAG,CAClEA,EAAE,UAAUgT,GAAY,KAAMA,EAAW,EACzChT,EAAE,IAAI+N,EAAY,EAClB/N,EAAE,IAAImN,EAAY,EAClBnN,EAAE,IAAIiM,EAAkB,EACxBjM,EAAE,IAAIoO,EAAc,EACpBpO,EAAE,IAAI6O,EAAgB,EACtB7O,EAAE,IAAIiP,EAAe,EACrBjP,EAAE,IAAIqP,EAAgB,EACtBrP,EAAE,IAAIyP,EAAe,EACrBzP,EAAE,IAAIyS,EAAc,CACtB,CAAC,ECZmCa,GAAAld,EAAA,CAClCC,KAAO,6BACLgO,MAAAA,CAAa9N,UAA4C,CAAEC,KAAAA,OAAgB,SAAA,EAC3EmP,EAAWpP,QAAkC,CAAEC,KAAAA,OAAgB,SAAA,EAC/DkO,EAAUnO,OAAMsP,CAA6BjP,KAAAA,OAAqB,QAAA,KAAA,CAAA,EAClE2c,EAAgBhd,aAAa,CAAEK,KAAAA,QAAc,QAAA,EAC9C,CACDC,EACE,OAAMgN,CAGN,MAAM9M,EAAEwN,OAA2BV,WAAqC,GAAAnD,CAAA,CAAA,EAElE6N,EAAAA,EAAkC,WAAA1K,EAAA,MAAA,YAAA,aAAA,EAAA,QAWrC,CACD9M,EAAAA,EACAwX,GAAAA,EACD,UAZQrX,GAKN,CACF2M,EAAA,aAAA3M,EAAA,IAAA,GAQHE,UACEE,CAAA,OAAAA,EACmCI,EAACmM,iBAAAA,EAAAA,CAAC,WAAA,KAAA,GAAA,CAIzB8B,QAAO,IAAM,CAAC9B,KAAE3L,EAAK,MAAQ,YAAA,KAAA,OAAA,QAAA,KAAA,OAAA,QAAA,CAC7BwM,QAAY,KAAE,EAACxM,MAAY,QAC3BA,OAAO,KAAA,EAAA,MAAA,OACLqb,MAAAA,CACD,aAAA,KAAA,EAAA,MAAA,YACQ,EACT,wBAEA5N,CAAAA,EAAAA,GAAAA,EAAsBA,eAAO,EAAA,CAC7BjB,QAAY,KAAE,EAACxM,MAAY,QAC3BwW,OAAQ,KAAK7K,EAAEgB,MAAM2O,OACrBtb,OAAO,KAAA,EAAA,MAAA,oBACLqb,MAAAA,CACD,aAAA,KAAA,EAAA,MAAA,YACQ,EACT,UAAC,KAAA,SAAA,CAAA,EAAA,CAGf,CAAA,CACA,IClEF,IAAItO,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAM2a,EAAwB,CACnC,aAAc,CACZrO,GAAc,KAAM,YAAa,4BAA4B,CAC9D,CACH,CCJO,MAAMsO,GAA6BnO,GACxC+N,GACA,SAAStT,EAAG,CACVA,EAAE,UAAUsT,GAAuB,KAAMA,EAAsB,EAC/D9N,GACEC,GAAY,kBACZ,IAAM,IAAIgO,EAChB,CACG,CACH,ECTyBE,GAAAvd,EAAA,CACvBC,KAAO,kBACLgO,MAAAA,CAAa9N,UAAiC,CAAEC,KAAAA,OAAgB,SAAA,EAChEmP,EAAWpP,QAAkC,CAAEC,KAAAA,OAAgB,SAAA,EAC/DkO,EAAUnO,OAAMsP,CAA6BjP,KAAAA,OAAqB,QAAA,KAAA,CAAA,EAClE,EAQoBL,iBAAY,CAAEK,KAAAA,OAAY,QAAA,CAE9C,EAOgBL,aAAa,CAAEK,KAAAA,QAAe,QAAA,EAC9C,EACaL,UAAY,CAAEK,KAAAA,OAAY,QAAA,CACvC,EACgBL,aAAY,CAAEK,KAAAA,OAAW,QAAA,CAC1C,CACIC,EACH,MAAAR,EAA8B,CAC9B,MAAMU,EAAEwN,OAA2BV,WAAqBuC,GAAW1F,CAAI,CAAC,EAElEkT,EAAUzb,aAAa0L,EAAA,MAAA,YAAA,aAAA,EAAA,EACvBgQ,EAAAA,EAAiBA,EAAM,EACjBA,EAAa,IAAA,CACxBD,EAAA,MAAA,IAGCtc,EAAA,IAAAA,EAE2BI,EAAA,YAAA,EAAA,CAAA,KACDmM,EAAAA,MAAAA,UAA4B,qBAAAA,EAAA,MAAA,oBAGvD,EAAA,IAAA,EAEDkE,EAAAzB,GAAA,CACMyB,MAAAA,EAAAA,EAAAA,MAAqBzB,aAAgB,UAAAR,GACzCA,EAAA,SAAAQ,EAAA,MACMwN,EACJ/M,EAAYe,CAAAA,EAAWxB,EAAAA,MAAKwB,EAAM/Q,EAAA,GAAA,SAAA+c,IAAA,EAAA,CAAA,EAClCC,EAAA,CACIhN,UAAAA,OAAgB7L,cAAyB,GAC/C,EAAoBpB,OAAAA,EAAoBzD,MAAK,CAAkB,MAAA0Q,EAC/D,IAAAT,EAAA,OAAA,MACcS,GAAgBT,CAAAA,EAAW5O,EAAA,SAAA,EAAA,CAAA,QAASqc,IAAAA,EAAAA,WAAAA,CAAAA,EAASzc,MAAAA,EAAAA,EAAA,KAAA,EAAA,WAEtCuM,IAAYA,EAAA,aAAMyC,CAAA,EAAA,UACtB,GAAO,MAAA,GACoB,KAAA,QAAA,KAAA,UAAA,QAAA,IAAAzC,EAAA,UAAAyC,CAAA,CAAA,EAAA,CAAA,QAAA,IAKvBzC,CAAAA,EAAYyC,OAAI,CAAC,MAAAvP,EAAA,EAAA,WAAA,CAAA,EAAA,CAAAuP,EAAA1P,cAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,EAA0Bod,EAAA1N,GAAA,CAI/D,MAAAwN,EAAAjQ,EAAA,MAAA,aAAA,UAAAiC,GACKkO,EAAAA,SAAAA,EAA2B1N,MAC/B,EACMwN,EAAYjQ,CAAC9M,EAACmB,EAAAA,MAAMiO,EAAAA,EAAAA,GAAa2N,SAAUhO,IAAQ,EAAA,CAAA,EACvD,OAAAxO,EAAkB,MAAKgP,CACvB,MAAAS,EACIA,IAAAA,EAAAA,MACN,EAAA,CAAAzP,EAAAI,EAAA,UAAA,EAAA,CAAA,MACcqP,EAAS,UAAW,GAAOzP,MAAAA,EAAA,cAAA,EAAA,EAAA,CACX,aAAA,IAAiBgP,EAAKY,EAAgB,UAAA,EAAA,CAAE,MAAAnQ,EAAA,EAAA,WAAA,EAElD,QAAE,IAAM8M,EAAA,UAAAyC,CAAA,EAClBhP,KAAAA,UAAA,EAAA,IAAA,CAGoC,CAAA,CAAA,CAAA,CAAA,EAItC2c,EAAA,IAAA,CAAC,MAAAlN,EAAA,CAAAhQ,EAAA,EAAA,MAAA,EAAAA,EAAA,EAAA,aAAA,CAAA,EAKV,OAAAO,EAAA,MAAA,SAED,QAAAuc,CACMI,EAAAA,CAAAA,GAAqB,cAAA,CAAA,CAAA,CACzB,EACAC,EAAA,IAAArQ,EAAA,MACuB,MAAA,IAAA,CAAAyC,EAAAyK,IAAW8C,IAAAA,EAAAA,UAAAA,EAAAA,aAAAA,EAAcI,EAAA,iCAMlD,KAEW/b,EAAiBoO,CAAMyK,GAG9BoD,EAAA,IACIpD,EAAAA,MAAQ1a,MAAAA,SAAe,EACzB4Q,EAAW,EAENc,EAAAA,MAAAA,MAAAA,IAAiBzB,GACxB0N,EAAA1N,CAAA,CACH,EAyByB,MAAA,KAAA,GAAAvP,EAEe,kBAAAmd,EAAA,eAzBnCC,IACOtQ,EAAA,YAAO+F,EAAW,MAAG,MAAA,OAAAtS,EAAA,MAAA,CAC9B,QAAO2P,IAAAA,EAAY,SAAE,EACvB,MAAAlQ,EAAA,EAAA,WAAA,CACO8M,EAAAA,CAAAA,GAActM,0BAAY,CAAA,CAAA,EAAA,KAsBK,iBApBpC,IACHD,EAAAI,EAAA,WAAA,EAAA,UAED,SAAA,SACM0c,KAAAA,EAAiBA,MACrB,gBAAoBC,GAAWC,EAAM1K,MAAMyK,EAAA,MAAAtd,EAC3B,EAAM8M,OAAE0Q,CAAU,EAAA,CAA0Bzc,QAAAA,IAAAA,CAAAA,SAI7D,MAAAf,EAAA,EAAA,iBAAA,GACKyd,CAAAA,EAAAA,MAAyB,CAC7Bld,MAAAA,EAAAA,EAAAA,cAAA,CAAA,EAAA,CAAAA,EAAA,MAAA,KAAA,CAAAQ,GAAA,0BAAA,CAAA,CAAA,CAAA,CAAA,EAAAR,EAAA,MAAA,CAAA,MAAAP,EAAA,EAAA,eAAA,CAIkB6c,EAAAA,CAAAA,EAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAII,GAG6B,QAAA,CAIrE,OAACtc,EAAAI,EAAA,iBAAA,EAAA,CACM,WAAA,KAAA,EACLmM,MAAC,KAAA,GAAA,EAAA,KAAA,EAAA,MAAA,IAAA,GACC,CACFqQ,QAAiB,IAAA,CAAA,KAAA,EAAA,MAAA,WAAA,CAAA,KAAA,kBAAA,EAAA,KAAA,iBAAA,EAAA,KAAA,eAAA,CAAA,CAAA,GAEjBM,ICpKN,IAAIvP,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAM2b,EAAa,CACxB,aAAc,CACZrP,GAAc,KAAM,YAAa,iBAAiB,CACnD,CACH,CCLO,MAAMsP,GAAkBnP,GAAYoO,GAAa,SAAS3T,EAAG,CAClEA,EAAE,UAAU2T,GAAY,KAAMA,EAAW,EACzCnO,GAAwBC,GAAY,KAAM,IAAM,IAAIgP,EAAc,CACpE,CAAC,ECN8D,SAAA5R,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAE/D,OACgC6R,GAAAve,EAAA,CAC9BC,KAAO,yBACLgO,MAAAA,CAAa9N,UAAsC,CAAEC,KAAAA,OAAgB,SAAA,EACrEmP,EAAWpP,QAAkC,CAAEC,KAAAA,OAAgB,SAAA,EAC/DkO,EAAUnO,OAAMsP,CAA6BjP,KAAAA,OAAqB,QAAA,KAAA,CAAA,EAClEge,EAAkBre,eAAY,CAAEC,KAAAA,OAAgB,SAAA,EACjD,CACDK,EACE,OAAMgN,CAGN,MAAM9M,EAAEwN,OAA2BV,WAAoC,GAACnD,CAAA,CAAA,EAClEuI,EAAAA,EAAenQ,WAAkB+K,EAAA,MAAA,YAAA,aAAA,EAAA,QAMpC,CACD9M,EAAAA,EACAkS,GAAAA,EACD,eAR2B,CAC1BpF,EAAEgR,MAAe,WAAE/b,EACpB+K,EAAA,gBAAA,GAQHzM,EAAS,QAAA,CACP,IAAM4N,OAAW,CAAE8P,UAAAA,EAAa,SAAAA,CAChC,EAAA,KACW,EAAA,aAEEC,GAAS7Z,EAAYxD,EAAA,UAAA,EAAA,CAAA,MAAA,CACpB,KAAKmM,GAAE3L,EAAAA,QAAgB,CAAA,EAAA,OAAA,OAChB+Q,MAAAA,WAAWpG,SAAA,KAEzBiS,aACCxd,GAAAA,EAAAA,EAAA,IAAA8b,GAAuBA,EAAY1b,EAAA,SAAA,EAAA,CAAA,QAAasd,QAAM,KAAA5B,EAAA,YACtD,EAAAxc,EAAAoO,EAAA,CAEL,QAAA,IAAA,CAAAA,CAAA,CAEL,CAAA,CACA,IC5CF,IAAIC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAMmc,EAAoB,CAC/B,aAAc,CACZ7P,GAAc,KAAM,YAAa,wBAAwB,CAC1D,CACH,CCLO,MAAM8P,GAAyB3P,GACpCoP,GACA,SAAS3U,EAAG,CACVA,EAAE,UAAU2U,GAAmB,KAAMA,EAAkB,EACvDnP,GACEC,GAAY,cACZ,IAAM,IAAIwP,EAChB,CACG,CACH,ECXwB,SAAApS,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAExB,CACE,MAAAqS,GAAkB,CAAA7O,EAAS8O,IAAA,CAC3B,MAAIA,EAAa9O,EAAA,SACf,OAAA8O,IAAW,QACFC,EAAiBA,CAAAA,EAAAA,EAAAA,UAAAA,EAAAA,CAAW/O,KAAAA,CACrC,EAAA,IAAA,EAAAA,EAAA,OAAA,EAEF,CAAAA,EAAA,OAAA,EAEkB+O,CAAK/d,EAAAI,EAAA,UAAA,EAAA,CACrB,KAAA2d,CACA/O,EAAK6E,IAAAA,EAMT7E,EAAagP,aAAAA,EAAiBlf,aAAAA,QAAAA,EAAAA,QAAgB,EAC5CiI,CACAhI,EACWif,GAAElf,EAAA,CACTG,KAAAA,qBACAC,MAAAA,CACF,UAAC,CACDmP,KAAS,OAAEpP,SAAkC,EAAEC,EAAe,QAAC,CAC/DkO,KAAQ,OAAEnO,SAAiC,EAAEK,EAAoB,OAAA,CAClE,KAAA,OACIC,QAAQ,KAAA,CAAA,EACX,CACA,EAEA,MAAAR,EAAa,OACJwN,EAACU,GAA2B,IAAA7D,IAAU,IAAA6U,GAAU,GAAA7U,CAAA,CAAA,EACvD3J,EAAAoB,EAAA,WAAA0L,EAAA,MAAA,YAAA,aAAA,EAAA,WAEFA,EAAA,MAAA,WAAA,QAAA,QACA,EACE7M,EAAQwe,MAAgBlP,EAAOpP,IAAC,CACjC,MAAA2M,EAAA,YAAAyC,EAAApP,CAAA,GAID,IAAAyB,EAAuB,GACrB,OAAsBtC,EAAA,UAAA,aAAA,CACpBsC,IAAAA,kBACAA,EAAA,QACF,MACEA,IAAAA,iBACAA,EAAA,OACF,MACEA,IAAAA,mBACAA,EAAA,SACF,KAII8c,OAgFG,CACP1e,EAAAA,EACA4B,QAAAA,EACA3B,GAAAA,EACAye,SAAAA,EACAC,YAAAA,EACD,sBArFmCC,EAAA,IAAAC,GAAA,CAChC,IAAA5Q,SAES4Q,EAAS,MAAA,CAAA,IACPA,EAAK,GAAuDte,MAAAA,CAAAA,EAAAA,EAAAI,MAAA,EAAAX,EAAA,EAAA,YAAA,EAAAA,EAAA,EAAA,QAAA4B,CAAA,EAAA,CAAA,GAG1Did,CAAAA,EAAMle,EAAQ,YAAA,EAAA,CAAA,MACfme,EAAQ/c,QAAK,KAAA+c,EACS7e,MAAsB,QAAAW,KAEtCie,EAAU1d,CAAK,GAAU2K,GAAAjM,EAAAue,GAAAS,EAAA/R,EAAA,MAAA,QAAA,CAAA,EAAAmB,EAAA,CAAA,QAAA,IAAA,CAAAA,CAAA,CAI3C,CAAA,CAAA,CAAA,EACH,EAsEF,kBAnE0BsB,GAAA,CACvB,IAAI/M,QACEuc,EAAUxP,KACd,GAAA,CAAA,YAAW,SAAA,EAAA,SAAAA,EAAA,QAAA,EACb,YAAA,IAAA,MAAA,6CAAAA,EAAA,QAAA,0BAAA,EACSyP,KACP,GAAAzP,EAAA,WAEe,eACJhP,EAAY,MAAGP,CAA6CO,IAAAA,EAAA,MAGvDgP,CAAAA,EAAAA,EAAI,MAAkC,EAAAvP,EAAA,EAAA,YAAA,EAAAA,EAAA,EAAA,QAAA4B,CAAA,EAAA,CAAA,CAAA,EAAA,CAAArB,EACrCwO,EAA+B,aAAA,EAAA,CACxC9O,QAAAA,EAAY8O,eACd,SAAA,CAAAA,EAAAnO,IAAA,CAACX,EAAA8O,EAAAnO,CAAA,CAGCqe,CAAWA,EAAAA,CAA0B,OAAa,CAAA,CAChD,OAAAA,KAEO1e,EAAe,OAAA,KAAA,CAAA0e,EAAA,OAAA,CAAA,EACtBpf,UAAA,IAAgCU,EAAAI,EAAA,YAAA,EAAA,KAAA,CAClC,QAAA,IAAA,CAAA4O,EAAA,OAAA,CAAC,CAAA,CAMX,CAAA,CACEA,GAGA,GAAAA,EAAAhP,WAAA,gBAAAiC,EAAAsK,EAAA,MAAA,aAAAiS,CAAA,IAAA,MAAAvc,EAAA,SAAA,CAAA,IAAA8Y,SAGW/a,EACM,MACXP,CAEDO,IAAAA,EAAA,MAGQgP,CAAAA,EAAI,EAAQ,MAAA,EAAAvP,EAAA,EAAA,iBAAA,EAAAA,EAAA,EAAA,QAAA4B,CAAA,EAAA,CAAA,GACbkd,CAAAA,EAAOne,EAAM,YAAA,EAAA,CAAA,MACVmM,EAAO,QAA6B,KACnCA,EAAO,MAA8B,QACrClM,EAAkBX,MAAAA,aAAgB8e,CAAG,EAAA,QAAC,SAAAjS,EAAA,mBAEhCiS,CAAS,EAAA,SAAUlf,QAAAe,GAAAX,EAAAsP,EAAA3O,CAAA,CAAA,EAAAkL,GAAAwP,EAAA8C,GAAA7O,EAAAzC,EAAA,MAAA,QAAA,CAAA,EAAAwO,EAAA,CAI3C,QAAA,IAAA,CAAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CACD,CAEM,OAAA,KAUTjb,GACUc,QAAAA,CAAM,KAAQ,CAEtBZ,MAAAA,GAEgB,KAAA,SACLA,EACG0S,EAAiB5D,iBACzB,EAAKrP,CACN,WAAA,KAAA,EAAAH,MAAAA,CAAA,KAAA,GAGK,EAAAsB,WAAc+d,YAAQrM,CAAAA,OAAU,GAChC,EAAA,eAEJ,EAAA,CACA,QAAA,IAAA,CACA,IAAI1R,EAAAA,EAAkBwB,EACpB,MAAA,GACEwc,EAAAA,EAAAA,aACuB,SAAA,KAAM,OAAa3c,EAAA,QAAM,GACjD,KAAA,mBAAArB,EAAA,aAAA,MAAA,GAAAuB,EAAA,KAAA,UAAA,iBAAA,KAAA,OAAAA,EAAA,IAAA,CAAA6M,EAAAyK,IAAA,CACH,IAAApD,EACA,MAAsBuI,EAAA,KAAA,kBAAA5P,CAAA,EAGvBpO,OAAKyV,iBAA2BoD,CAAG,IAClC,MAAuBpD,EAAA,OAA0B,CAAAuI,EAAA,KAAA,mBAAAhe,EAAA,aAAA6Y,CAAA,CAAA,CAAA,EAIzDmF,6GCpLF,IAAIjR,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAMqd,EAAgB,CAC3B,aAAc,CACZ/Q,GAAc,KAAM,YAAa,oBAAoB,CACtD,CACH,CCNO,MAAMgR,GAAqB7Q,GAChC+P,GACA,SAAStV,EAAG,CACVA,EAAE,UAAUsV,GAAe,KAAMA,EAAc,EAC/C9P,GAAwBC,GAAY,QAAS,IAAM,IAAI0Q,EAAiB,CACzE,CACH,ECJ+BE,GAAAjgB,EAAA,CAC7BC,KAAO,wBACLgO,MAAAA,CACE9N,UAAqC,CACrCC,KAAAA,OACD,SAAA,EACDmP,EAAWpP,QAAkC,CAAEC,KAAAA,OAAgB,SAAA,EAC/DkO,EAAUnO,OAAMsP,CAA6BjP,KAAAA,OAAoB,QAAA,KAAA,CAAA,EAClE,CACDC,EACE,OAAMgN,CAGN,MAAM9M,EAAEwN,OAA2BV,cAAqCnD,CAAA,CAAA,EAEjE3J,EAAAoB,EAAA,WAAA0L,EAAA,MAAA,YAAA,aAAA,EAAA,QAAG,CAAE9M,EAAAA,EAAI,GAAAA,EAElBK,UACEE,QAEgBA,EAAII,EAAE,iBAAA,EAAA,CAAA,WAEZ,KAAK,EAEV,MAAA,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,GAAA,GAAA,SAAA,EAAA,KAAA,UAAA,UAAA,CAAA,GAAA,CAAA,QAAA,IAEe,CAACX,EAAc,MAAA,CAAC,MAAUmB,KAAK,GAACxB,EAAAA,SAC/C,CAAyB,EAAA,CAAA,KAAA,EACZ,MAAKK,OAAkB,CAAA,EAAA,KAAA,UAAA,YAAAO,EAAA,MAAA,CAAC,MACnB,KAAA,GAACgf,eAEnB,CAAA,EAAA,CAAA,KAAA,UAAA,UAAA,CAAA,CAAA,CAGP,CAAA,CACA,ICzCF,IAAIrR,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAMyd,EAAmB,CAC9B,aAAc,CACZnR,GAAc,KAAM,YAAa,uBAAuB,CACzD,CACH,CCLO,MAAMoR,GAAwBjR,GACnC8Q,GACA,SAASrW,EAAG,CACVA,EAAE,UAAUqW,GAAkB,KAAMA,EAAiB,EACrD7Q,GACEC,GAAY,WACZ,IAAM,IAAI8Q,EAChB,CACG,CACH,ECP8BE,GAAArgB,EAAA,CAC5BC,KAAO,uBACLgO,MAAAA,CACE9N,UAAoC,CACpCC,KAAAA,OACD,SAAA,EACDmP,EAAWpP,QAAkC,CAAEC,KAAAA,OAAgB,SAAA,EAC/DkO,EAAUnO,OAAMsP,CAA6BjP,KAAAA,OAAoB,QAAA,KAAA,CAAA,EAClE,CACDC,EACE,OAAMgN,CAGN,MAAM9M,EAAEwN,OAA2BV,WAAmC,GAAEnD,CAAA,CAAA,EAElEgW,EAAAA,EAAiB,WAAA7S,EAAA,MAAA,YAAA,aAAA,EAAA,EACX6S,EAAE,IAAA,CACb7S,EAAA,SAAA,CAED,EACM6S,EAAUC,GAAA,IAAA,CACZD,GACFA,GAGIE,EAAAA,GAAAA,EACFC,EAAY/d,GAAM,CACpBge,EAAAA,YAAche,CAAE,EACjBge,GAED,EACMjT,QACK9M,EAAAA,MAAGggB,iBACRhgB,EAAA,YAAoB,CACpB,qBAAA,GAAA8M,EAAA,MAAA,gBAAA,IACJ,CAAA,EAEA,EAEK,QAAG,CAAE9M,EAAAA,EAAI6f,GAAAA,EAASF,QAAAA,EAAUld,SAAAA,EAAS,QAAAA,EAE9CpC,UACEE,QAEgBA,EAAII,EAAE,iBAAA,EAAA,CAAA,WACN,KAAK,EAAG,MACb,MAAK8B,GAAAA,EAAAA,CAAAA,EAAO,MAAA,KAAA,OAAA5C,EAAAA,CAEY,QAAA,IAAA,CAEf,KAAKiN,EAAE3L,MAAM8e,mBAAK1f,EAAAI,EAAA,YAAA,EAAA,CAAA,WAClBX,KAAK,cAAe,MAAA,KAAA,GACf,EAAA,cAAc,EAAA,YAAA,KAAA,EAAA,YAGlC,uBAAA,KAAA,OAAA,EAAA,IAAA,CAAA,CAGP,CAAA,CACA,IClEF,IAAIkO,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAMme,EAAkB,CAC7B,aAAc,CACZ7R,GAAc,KAAM,YAAa,sBAAsB,CACxD,CACH,CCLO,MAAM8R,GAAuB3R,GAClCkR,GACA,SAASzW,EAAG,CACVA,EAAE,UAAUyW,GAAiB,KAAMA,EAAgB,EACnDjR,GACEC,GAAY,UACZ,IAAM,IAAIwR,EAChB,CACG,CACH,ECdA,IAAIhS,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAQF,MAAMqe,WAAwBC,EAAkB,CACrD,aAAc,CACZ,MAAM,GAAG,SAAS,EAOlBhS,GAAc,KAAM,QAAQ,CAC7B,CAOD,IAAI,QAAS,CACX,IAAI7L,EACJ,OAAQA,EAAK,KAAK,KAAK,cAAgB,KAAO,OAASA,EAAG,WAAW,OACtE,CAOD,IAAI,MAAO,CACT,OAAO,KAAK,KAAK,cAAc,MAAM,CACtC,CAQD,IAAI,YAAa,CACf,OAAO,KAAK,KAAK,MAAM,UACxB,CAOD,UAAU8d,EAAQ,CAChB,KAAK,OAASA,CACf,CAOD,SAAU,CACR,IAAI9d,EACJ,QAASA,EAAK,KAAK,OAAS,KAAO,OAASA,EAAG,YAAc,CAAC,CAAE,CAAA,CACjE,CAOD,WAAY,CACV,MAAM,UAAS,EACf,KAAK,MAAM,WAAa,EACzB,CAOD,MAAM,WAAY,CAChB,MAAM,MAAM,WACb,CAOD,MAAM,WAAY,CAChB,MAAM,MAAM,YACR,KAAK,OACP,KAAK,KAAK,IAAI,GAAG,gBAAiB,IAAM,CACtC,KAAK,iBAAgB,CAC7B,CAAO,EACD,KAAK,KAAK,IAAI,GAAG,qBAAsB,IAAM,CAC3C,KAAK,iBAAgB,CAC7B,CAAO,EACD,KAAK,KAAK,IAAI,GAAG,gBAAiB,IAAM,CACtC,KAAK,iBAAgB,CAC7B,CAAO,GAEH,KAAK,eAAc,CACpB,CAMD,kBAAmB,CACjB,MAAMqO,EAAW,KAAK,QAAS,EAAC,CAAC,EAAE,QAAU0P,GAAM,OACnD,KAAK,mBAAmB,KAAK,MAAM,WAAY1P,CAAQ,CACxD,CAQD,mBAAmB2P,EAAY3P,EAAU,CACvC2P,EAAW,QAASjR,GAAS,CACvBA,EAAK,MAAQ,KAAK,MAAM,YAC1BA,EAAK,SAAWsB,EAExB,CAAK,CACF,CAMD,gBAAiB,CACf,KAAM,CACJ,gBAAA4P,EACA,uBAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,UAAAC,EACA,aAAAC,CACN,EAAQ,KAAK,MACHN,EAAa,CAAA,EACnB,IAAI7gB,EAAU8gB,EACVC,IACF/gB,EAAU,KAAK,KAAK,EAAE+gB,EAAuB,UAAWD,CAAe,GAEzED,EAAW,KAAK,CACd,IAAKK,EACL,QAAAlhB,EACA,OAAQ,CAAC,CAACghB,EACV,SAAU,GACV,SAAUC,EACV,SAAU,KAAK,WAAaG,GAAmB,KAAK,OAAO,aAAa,MAAO,KAAK,UAAU,EAAI,EACxG,CAAK,EAC+BD,GAAa,QAASvR,GAAS,CAC7D,IAAIyR,EAAczR,EAAK,QACnBA,EAAK,iBACPyR,EAAc,KAAK,KAAK,EAAEzR,EAAK,eAAe,UAAWA,EAAK,OAAO,GAEvEiR,EAAW,KAAK,CACd,IAAKjR,EAAK,GACV,QAASyR,EACT,SAAUzR,EAAK,SACf,OAAQ,GACR,SAAU,EAClB,CAAO,CACP,CAAK,EACD,KAAK,MAAM,WAAaiR,EACpB,KAAK,KAAK,MAAM,QAClB,KAAK,MAAM,WAAa,KAAK,KAAK,MAAM,OACxC,KAAK,gBAAe,GAEpB,KAAK,MAAM,WAAaA,EAAW,CAAC,EAAE,GAEzC,CAMD,iBAAkB,CAChB,IAAIhe,EACJ,KAAM,CAAE,WAAA4P,CAAU,EAAK,KAAK,MACtB6O,GAAaze,EAAK,KAAK,MAAM,eAAiB,KAAO,OAASA,EAAG,KACpE+M,GAASA,EAAK,KAAO6C,CAC5B,EACQ6O,GACF,KAAK,WAAW,QAAQ,EACxB,KAAK,eAAeA,CAAS,IAE7B,KAAK,WAAW,MAAM,EAClB,KAAK,YACP,KAAK,OAAO,KAAK,KAAK,MAAM,WAAW,CAAC,EAAE,QAAQ,EAGvD,CAOD,WAAWC,EAAU,CACnB,IAAI1e,EACJ,MAAM2e,GAAY3e,EAAK,KAAK,KAAK,cAAgB,KAAO,OAASA,EAAG,WAAW,UAC3E0e,IAAa,QACXC,IACFA,EAAS,MAAM,QAAU,GACzBA,EAAS,MAAM,UAAY,IAEzB,KAAK,SACP,KAAK,OAAO,MAAM,QAAU,GAC5B,KAAK,OAAO,MAAM,UAAY,MAG5BA,IACFA,EAAS,MAAM,QAAU,GACzBA,EAAS,MAAM,UAAY,IAEzB,KAAK,SACP,KAAK,OAAO,MAAM,QAAU,GAC5B,KAAK,OAAO,MAAM,UAAY,IAGnC,CAQD,cAAcX,EAAY,CACxB,KAAM,CAAE,iBAAAY,EAAkB,eAAAC,CAAgB,EAAGb,EACvC1S,EAAQ,CACZ,YAAasT,EACb,UAAWC,CACjB,EACUC,EAAe,CACnB,QAAS,KAAK,QACd,OAAQ,KAAK,OACb,KAAM,KAAK,QAAS,EAAC,CAAC,CAC5B,EACU,CAAE,cAAAC,EAAe,aAAAC,CAAY,EAAKC,GAAc3T,EAAOwT,CAAY,EACnE1S,EAAU,OAAO,OAAO,KAAK,QAAQ,MAAO,EAAE2S,EAAe,CACjE,cAAef,EAAW,EAChC,CAAK,EACK7S,EAAS,CAAE,GAAG,KAAK,OAAQ,GAAG6T,CAAY,EAChD,MAAO,CAAE,QAAA5S,EAAS,OAAAjB,EACnB,CAOD,MAAM,eAAe6S,EAAY,CAC/B,IAAIhe,EACJ,KAAM,CAAE,QAAAoM,EAAS,OAAAjB,CAAM,EAAK,KAAK,cAAc6S,CAAU,GACxDhe,EAAK,KAAK,SAAW,MAAgBA,EAAG,SAAS,CAChD,IAAKge,EAAW,GAChB,QAAA5R,EACA,OAAAjB,EACA,OAAQ6S,EAAW,SACzB,CAAK,CACF,CACH,CC7QsB,SAAA1U,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAEtB,OAC0B2V,GAAAriB,EAAA,CACxBC,KAAO,mBACLgO,MAAAA,CAAa9N,UAAkC,CAAEC,KAAAA,OAAgB,SAAA,EACjEmP,EAAWpP,QAAkC,CAAEC,KAAAA,OAAgB,SAAA,EAC/DkO,EAAUnO,OAAMsP,CAA6BjP,KAAAA,OAAoB,QAAA,KAAA,CAAA,EAClE,CACDC,EACE,OAAMgN,CACN,MAAM9M,EAAEwN,OAA2BV,WAAqBuC,GAAY1F,CAAI,CAAA,EAClE2W,EAAMlf,EAAY,WAAE0L,EAAA,MAAA,YAAA,aAAA,EAAA,EAExB6U,EAAUrB,KAEZ,OAAAxT,EAAMoF,UAAAA,CAAe5K,EAMlB,CACDtH,EAAAA,EACAkS,GAAAA,EACD,eAR0B,CACzBpF,EAAEgR,MAAe,WAAExW,EACpBwF,EAAA,gBAAA,GAQHzM,EAAS,QAAA,CACP,IAAM4N,OAAW,CAAEuS,UAAAA,EAAe,WAAAA,GAClCjgB,KAAAA,EAAAA,aAC+BA,EAAII,EAAE,iBAAA,EAAA,CAAA,WAAcX,KAAK,EAAC,MAAA,KAAA,GAAA,EAAA,CAAAH,EAAAA,SAGvC,IAAA,CAAAme,GAAgBzd,EAAAI,EAAA,UAAA,EAAA,CAAA,cACX,YAAW,MAAA,CAClB,KAAKmM,WAAQsF,CAAAA,EAAUtG,OAAA,KAAA,EAE9B0U,kBACCjgB,GAAAA,EAAAA,EAAA,IAAAqhB,GAAArhB,EAEoBI,EAAY,SAAA,EAAA,CAAA,MACtBihB,KAAO,GAAA,EAAA,UAAA,EAAA,KAAAA,EACHA,IAAY,SAAAA,EAAA,QAEnBnL,EAAAA,CAAwB,MAAA,IAAAmL,EAAA,UAG/B/hB,EAAAoO,EAAA,CAEL,QAAA,IAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAGP,CAAA,CACA,ICzDF,IAAIC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAM8f,EAAc,CACzB,aAAc,CACZxT,GAAc,KAAM,YAAa,kBAAkB,CACpD,CACH,CCJO,MAAMyT,GAAmBtT,GAAYkT,GAAc,SAASzY,EAAG,CACpEA,EAAE,UAAUyY,GAAa,KAAMA,EAAY,EAC3CjT,GAAwBC,GAAY,MAAO,IAAM,IAAImT,EAAe,CACtE,CAAC,ECTD,IAAI3T,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAMggB,EAAa,CACxB,aAAc,CACZ1T,GAAc,KAAM,YAAa,iBAAiB,CACnD,CACH,CCNO,MAAM2T,GAAkB,CAC7B,QAAU/Y,GAAM,CACdA,EAAE,UACA,kBACAgZ,GAAqB,IAAMC,GAAO,OAAA,oBAAQ,CAAC,CACjD,EACIzT,GAAwBC,GAAY,SAAU,IAAM,IAAIqT,EAAc,CACvE,CACH,ECLmE,SAAAjW,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAEnE,OAC6BoW,GAAA9iB,EAAA,CAC3BC,KAAO,sBACLgO,MAAAA,CAAa9N,UAAqC,CAAEC,KAAAA,OAAgB,SAAA,EACpEmP,EAAWpP,QAAkC,CAAEC,KAAAA,OAAgB,SAAA,EAC/DkO,EAAUnO,OAAMsP,CAA6BjP,KAAAA,OAAqB,QAAA,KAAA,CAAA,EAClE2c,EAAgBhd,aAAa,CAAEK,KAAAA,QAAe,QAAA,EAC9CmP,EAAexP,YAAa,CAAEK,KAAAA,QAAc,QAAA,EAC7C,CACIC,EACH,MAAAR,EAA8B,CAG9B,MAAMU,EAAEwN,OAA2BV,WAAqC,GAAAnD,CAAA,CAAA,EAClEwI,EAAM/Q,EAAU,WAAA0L,EAAA,MAAA,YAAA,aAAA,EAAA,UAEtBF,EAAA,CAAA2C,EAAAjC,IAAA,CACA,MACQ,QAAAsB,EAAEA,OAAAA,CAASjB,EAAAA,EAAO,OAAKpN,EAAAI,EAAA,kBAAA,EAAA,CAC7BJ,KAAAA,EAAA,UAEc+M,EAAA,QAAAsB,EACU,OAAAjB,GAEZA,IAAAA,CAAM,EAGnByU,EAAA7S,GAAA,OAED,OAAAhP,EAAAI,EAAA,mBAAA,EAAA,CACMyhB,MAAAA,EAAAA,IAAAA,eAAoC,SAAA,SAAA,EACxC7hB,kBAAAiC,EAAAsK,EAAA,gBAAA,EAAA,kBAAA,KAAA,OAAAtK,EAAA,qBAAA,mCAEkC+M,CAAQ,EAAY,cAEhDzC,CAAAA,EAAiB3M,IAAC2M,EAAGuV,cAAAA,EAAqC9S,EAAApP,CAAA,CAAA,EAAA,IAAA,CAErB,EAEDmiB,EAAA/S,GAI3ChP,EAAA,MAAA,0BAED,EAAA,CAAAuM,EAAA,kBAAAvM,EAAA,MAAA,CACM+hB,MAAAA,EAAAA,GAAgB/S,eAAgB,QAAA,CACpC,EAAA,CAAA6S,EAAA7S,CAAA,CAAA,CAAA,EAAA,IAAA,CAAA,EAEKzC,EAAEyV,GAAiB,CAAA,MAAAzU,EACH6G,EAAE,MACEoI,EAAAjQ,EAAA,MAAM,aAEnB,UAAAiC,GAGbA,EAAA,SAAAQ,EAAA,QAEDiT,EAAA,CAAAxiB,EAAA,EAAA,MAAA,EAAAA,EAAA,GAAA,SAAA+c,IAAA,EAAA,CAAA,EACM0F,EAAclT,CAAAA,EAClB,OAAAzB,EAAwB,WACxB,OAAA,OAAA4U,EAAA,CACM3F,MAAAA,GAAAA,EAAc5b,SAAMiO,IACxB,CAAA,EAEIoT,EAAAA,YACAE,OAAAA,OAAYA,EAAE,CAChB5U,OAAM6U,GAAAA,EAAW,UAAA,IACnB7T,CAAAA,EAEEvO,EAAAI,EAAA,UAAA,EAAA,CACJ,MAAA6hB,EACI1U,MAAM8U,EAAAA,aACR9T,KAAOmB,EAAM,QACX4S,QAAS,IAAO/V,EAAC8V,WAAWrT,CAAA,CAC9B,EAAC,CACH,OAAA,IAAA+S,EAAA/S,CAAA,EACAhP,CAAA,EAGWgP,EAAiB,IAAA,OAClBA,EAAIjQ,EAAQ,UAAA,gBAAA,OAAAwN,EAAA,MACHA,MAAE4C,IAAAA,GAAgBiB,EAAA/D,EAAA2C,EAAAoB,CAAA,EAAA8R,EAAAlT,CAAA,CAG/BqF,CAAgC,EAIvC3D,EAAA,IAAA,CAEKH,IAAAA,EACJ,SAAoBxD,EAAyB,cAAA,EAAA,CACtCR,aAActM,MACnB,sBAA8B8c,GAAKnL,EAAO,MAAIsQ,CAChD,EAAE3W,GAAAwP,EAAAxO,EAAA,MAAA,OAAA,IAAA,CAAAyD,EAAAyJ,IAAA,CACH,IAAA/L,EAEKgD,OAAAA,EAAoBtQ,EAAA,mBAAA,EAAA,CAAA2a,MAAA/K,EAAA,QACxBhQ,KAAAA,GACyB4R,GAAAA,EAAAA,EAAY,SAAA,IAAA5C,GAAAkT,EAAAlT,CAAA,CAAAzD,KAAAwP,CACK,QAAA,IAAA,CAAArN,CAAA,EACpC1N,KAC4BgQ,EAAAA,SAAqByJ,IAAAA,CAAAA,CAAAA,KAavD,MAAA,CAEmD,EAAAlN,EACzB,GAAA9M,EAAA,gBAbd,IAAA,OAAA8N,EAAAhB,EAAA,MAAA,OAAAvM,EAAAI,EAAA,UAAA,EAAA,CAGN,SAAAmM,EAAA,MAAA,OAAAA,EAAA,MAAA,MAAA,OAAAjN,kBAAA,GAAA,gBAAA,wCAGP,OAAA,IAAAiN,EAAA,SAAA,CACD,EAAA,CACMoE,QAAAA,IAAAA,CAAAA,EAAwB,YAAA,OAAAD,EAAA,EAAAH,GAAA,CAC5B,CAAA,EAM8B,CAAAjR,EAEmC,QAAA,CAGnE,OAACU,EAAAI,EAAA,iBAAA,EAAA,CAEM,WAAA,KAAA,GACJ,CACDX,QAAE,IAAA,CAAA,KAAA,EAAA,MAAA,WAAA,CAAA,KAAA,gBAAA,CAAA,CAAA,CACFkR,CAAAA,KC5IN,IAAIhD,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAM+gB,EAAwB,CACnC,aAAc,CACZzU,GAAc,KAAM,YAAa,qBAAqB,CACvD,CACH,CCLO,MAAM0U,GAAsBvU,GACjC2T,GACA,SAASlZ,EAAG,CACVA,EAAE,UAAUkZ,GAAgB,KAAMA,EAAe,EACjD1T,GACEC,GAAY,SACZ,IAAM,IAAIoU,EAChB,CACG,CACH,ECEA,SAAAhX,GAAAC,EAAA,CACA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CACA,CACA,SAAAiX,GAAAlV,EAAAhB,EAAAmW,EAAA,CACA,MAAA/V,EAAAJ,EAAA,UAAAgB,EAAA,EAAA,EACAP,EAAAT,EAAA,SAAAgB,EAAA,EAAA,EACAoV,EAAA,CACA,UAAApV,EAPA,WAAAP,CAAA,EAAA,GAAA,CAAAL,EAQA,eACEY,KACsB,CAAA/M,GAEf,0BAAA,EAAA+M,EAAA,WAAA,CAAA,EAEP,MAAMP,EAAe4V,EAAiBjW,EAAE,SAAA,EACxC,GAAAY,gBAAoB,YAAA,CAClBR,MAAAA,EAAgBQ,EAChBP,OAAAA,GAAAA,EAAAA,CACD,GAAA2V,EAEG,MAAW,EACb,EAAA,CACF,QAAA,IAAA,CAEME,MAGN,OAAA5gB,EAAA+D,EAAA,WAAA,KAAA,OAAA/D,EAAA,IAAA2K,GAAA6V,GAAA7V,EAAAL,CAAA,CAAA,CACS,EACDvG,EAIF,eAAc,IAAAuH,EAAA,OAAA,EACXV,GAAEU,EAAMjN,CACb,GACAqiB,EACErjB,IAAAA,EAASA,EAEX,CAAA,CAEJ,CACAwjB,MAAWC,GAAgBjkB,EAAA,6BAE3B,MAAA,CACO+N,UAAEgW,CACP,KAAc,OACX,SAAQviB,EACX,EACJ,QAAA,CAEA,KAAayiB,OACP,SAAwB,EAC5BhkB,EACEgO,OAAAA,CACE9N,KAAMsP,OACNrP,QAAU,KAAA,CAAA,EACX,CACDmP,EAAWpP,OAAI,CAAgCC,MAAAA,EAAQ+N,GAAE,IAAA7D,IAAA,IAAA4Z,GAAA,GAAA5Z,CAAA,CAAA,EAAM3J,EAAAoB,EAAA,WAAA0L,EAAA,MAAA,YAAA,aAAA,EAAA,EAC/Da,MAAQ,CAAEnO,EAAAA,EAAmCK,GAAAA,CAAoB,CAClE,EACDC,QAAQ,CACN,KAAMgN,CAGN,MAAA3L,EAEO,MAAA2M,GAAG,KAAA,EAAE9N,OAAAA,EAAAA,EAAAA,iBAAAA,EAAAA,CAAI,WAAA,KAAA,EACjB,MAAA,CAAA,KAAA,GAAA,EAAA,CAAA,CAEDK,EAAAA,CACQ,QAAA,IAAA,CAAAc,EAAA,WAAAZ,EAAAI,EAAA,SAAA,EAAA,CAAO,MAAA,CAAA,KAAA,GAAA,EAAA,KAAA,CAAA,EAAEmN,OAAAA,EAAAA,QAAc,CAC7BvN,QAAAA,IAAA,CAC+B,IAAAiC,EAAM,MAAc,EAAAA,EAAI2B,EAAG,WAAA,KAAA,OAAA3B,EAAA,IAAA2K,GAAA,CAAC,IAAAyJ,EAAA,IAAA3I,EAErC,SAAgBtN,EAAE,SAAA,EAAA,CAAA,UAAgByB,EAAAA,UAAM,OAAAwU,EAAA,KAAA,EAAA,SAAAzJ,EAAA,EAAA,IAAA,KAAA,OAAAyJ,EAAA,OAAA9K,GAAAmC,KACNd,EAAA,KAAA,CAAA,CAAA,EAAAc,EAAA,CAAAA,QAAA,IAAA,CAAAA,CAAA,EAC9C1N,GAAA,EAG4C,CAAA,CAAA,GAEL,CAGzC,CAAA,ECrGZ,IAAI2N,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAMyhB,EAAkB,CAC7B,aAAc,CACZnV,GAAc,KAAM,YAAa,sBAAsB,CACxD,CACH,CCRoE,SAAAvC,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAEpE,OAC8B0X,GAAApkB,EAAA,CAC5BC,KAAO,uBACLgO,MAAAA,CACE9N,UAAiD,CACjDC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAAgC,CAChCC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CAGX,IAAOoB,EAAK,MAAC,CACd,GADUxC,EAAAA,YAAAA,EAAAA,EAAAA,UAAAA,cAAAA,KAAAA,OAAAA,EAAAA,YAAAA,CAAAA,EAAAA,CAEXK,CAAS,UACD2T,CACN,IAAAxR,EAAaE,MACMuL,EAAqB,MAAAnC,SACtBtL,KAAI0T,QAAQ,UAAA,KAAA,OAAAxR,EAAA,KAAAF,CAAA,IAAA,GACxBuH,EAAcmK,EAAmBvT,EAAA,SAAA,EAAA,CACjC,OAAU,KAAKrB,gBACb,EAAAwM,GAAOoI,EAAIF,EAAA,IAAAE,GAAA,CACb,MAAA5U,EAAA4U,EAAA,MACA,MAAA3T,CAAAA,GAAAA,CAAAA,EAAA,WAAA2T,EAGiC3T,EAExBI,EAAA,SAAA,EAAA,CAAAd,UAAAP,EAAA,UAAA,UAAA,MAAAA,EAAA,WAAA,UAGT4U,CAAA,EAAAA,EAAA,CAAA,QAAA,IAAA,CAAAA,CAAA,EAEL,EACK1S,CAAAA,EAAAA,EAAkB,CAIxBjB,QAAAA,IAAAA,CAAAA,CAAA,IACyDiB,EAAAA,CAAAA,KAAAA,GAAAA,EAAAA,EAAAA,KAAAA,GAAAA,EAAAA,KAAAA,UAAAA,QAAAA,CAAAA,EAAQ,OAAAjB,EACrDI,EAAA,mBAAA,EAAA,CAAAd,WAAA,KAAA,WAAA,MAAA2B,CAGd,EAAAsK,GAAA/B,CAAA,EAAAA,EAAA,CACA,QAAA,IAAA,CAAAA,CAAA,OCpDF,IAAImE,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAKF,MAAM2hB,EAAyB,CACpC,aAAc,CACZrV,GAAc,KAAM,YAAa,sBAAsB,CACxD,CACD,MAAM,iBAAiBsV,EAAcC,EAAW5O,EAAQ,CACtD,MAAMlI,EAAI,IAAI+W,GACZF,EACAC,EACA5O,CACN,EACI,aAAMlI,EAAE,OACDA,CACR,CACH,CChBO,MAAMgX,GAAuBtV,GAClCiV,GACA,SAASxa,EAAG,CACVA,EAAE,UAAUwa,GAAiB,KAAMA,EAAgB,EACnDM,GAAwB,YAAa,IAAM,IAAIL,EAA0B,CAC1E,CACH,ECPAM,GAAA3kB,EAAA,CACA,KAAA,oBACA,MAAA,CACA,WAAa2kB,CACP,KAAqBC,GACzB3kB,SAAO,EACLiO,CACE/N,EACAC,MAAAA,EAAU,CACZ,MAAAO,EAAAoB,EAAA,gBAAA,EACD0L,EAAAxN,EAAA,aACYgC,EAAA,IACHwL,EAAG1L,MAAY,uBAAkB,OAAA0L,EAAA,MAAA,WAAAA,EAAA,MAAA,aACzC,EAOA,MAAE,MAEF,aAAAoX,EACA,cATA,MAAAhkB,EAAAC,IAAA,CACA,MAAkBb,EAAA,WAAW,cAAOY,EAAAC,CAAA,aAe7B,KAAIqC,EAAAE,OAAc,CAAEmR,MAAAA,EAAe,MAAA1S,GAC3C,KAAA,OAAA,WACDd,OAASE,EAAA,MAAA,CACD,MAAA,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,GAAA,GAAA,YAAA,CAAA,KAAA,YAAA,CAAA,GAAO,CAAA,KAAA,cAAAA,EAAA,MAAA,CAAEY,IAAAA,SAAU,MAAKgjB,KAAO5W,GAAU,EAAA,QAAA,CAC/C,EAAA,CAAAhN,EAAA,MAAA,CAAA,MACc,KAAK,GAAG,GAAG,SAAU,MAAI,CAAiC,EAAA,CACnEuN,EAAiB,cAAAvN,EAAA,MAAA,CAAA,MAAA,KAAA,GAAA,EAAA,SAAA,CAAA,EAAA,CAAAA,EACcP,EAAa,UAAA,EAAA,CAAC,MAAA,KAAA,GAAA,EAAA,cAAA,EAAA,KAC9B8N,EAAK9N,QAAuB,EAAA,IAChC,EAACokB,EAAY,OAAA,CAAA,MACL,KAAKpkB,GAAGY,EAAE,cAAS,EAACL,MAAAA,EAAAI,KAAA,EAAA,CAAAmN,EAAA,KAEjB,CAAC9N,CAAAA,CAAE,CAACY,CAAC,IAAgB,MAAA,CAAA,WACpByJ,GAAAA,GAAAA,SAAAA,OAAAA,CAAQ,EAAA,CAAAyD,EAAAvN,eAAAA,EAAAI,EAAA,gBAAA,EAAA,CAAA,MAET,KAAKX,GAAGY,EAAE,WAAe,iBAAe6V,EAAAA,cAAAA,qBAAK,gBAI7DtV,EAAA,iBAAA,cAEiBwT,KAAG,aAAkB,EAAA,MACjC,CAAC0P,CAAAA,EAAAA,EAAa9jB,MAAAA,CAAA,IAAA,UAEW,MAAA,KAAA,GAAA,EACN,SAAc,GACpBY,EAAAA,GAAAA,EAAAA,KAAAA,QAAsB,UAAA,KAAA,OAAAuB,EAAA,KAAAF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,ICvD9B8hB,GAAAjlB,EAAA,CACvBC,KAAO,kBACLgO,MAAAA,CACE9N,UAA+C,CAC/CC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAA2B,CAC3BC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CAGX,IAAMmjB,EAAAA,EACJ,MAAAvkB,EAAWoB,EAAY,YAAcoB,EAAAlD,EAAA,UAAA,cAAA,KAAA,OAAAkD,EAAA,YAAA,CAAA,EAAA,EACrC+hB,GAAA7hB,EAAApD,EAAA,UAAA,WAAA,KAAA,OAAAoD,EAAA,KAAA6M,GACKA,EAAA,cAAA,WAAMgV,MAAAA,CAAM,GAAAvkB,EACpB,KAAAukB,CAEDlkB,WAKQ,OAASmB,EAAA,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,GAAA,EAAA,KAAA,UAAA,QAAA,CAAA,EAAEmM,CAAQ,QAAAiB,EACzBrO,OAAAA,GACiC,KAAA,kBAAwBiB,EAAAA,EAAAA,mBAAAA,EAAAA,CAAQ,WAAA,KAAA,WAAA3B,MAAAA,IAGrC,QAAA,IACJ,CAAA,KAAA,MAAAU,EAAA6S,GAAA,CAAA,UACRzF,KAAAA,KAEX,QAAAiB,EAAA,OAAAjB,CAGP,EAAA,IAAA,CAAA,CACF,CAAE,KC7CF,IAAIO,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAKF,MAAMyiB,EAAoB,CAC/B,aAAc,CACZnW,GAAc,KAAM,YAAa,iBAAiB,CACnD,CACD,MAAM,iBAAiBsV,EAAcC,EAAW5O,EAAQ,CACtD,MAAMlI,EAAI,IAAI2X,GACZd,EACAC,EACA5O,CACN,EACI,aAAMlI,EAAE,OACDA,CACR,CACH,CChBO,MAAM4X,GAAkBlW,GAAY8V,GAAa,SAASrb,EAAG,CAClEA,EAAE,UAAUqb,GAAY,KAAMA,EAAW,EACzCP,GAAwB,UAAW,IAAM,IAAIS,EAAqB,CACpE,CAAC,ECEYG,GAAuBnW,GAClC8U,GACA,SAASra,EAAG,CACVA,EAAE,UAAUqa,GAAiB,KAAMA,EAAgB,EACnD7U,GACEC,GAAY,UACZ,IAAM,IAAI8U,EAChB,EACIva,EAAE,UAAU+a,GAAc,KAAMA,EAAa,EAC7C/a,EAAE,IAAI6a,EAAoB,EAC1B7a,EAAE,IAAIyb,EAAe,CACtB,CACH,ECvBA,IAAIxW,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAM6iB,EAAc,CACzB,aAAc,CACZvW,GAAc,KAAM,YAAa,kBAAkB,CACpD,CACH,CCNO,MAAMwW,GAAmB,CAC9B,QAAQ5b,EAAG,CACTA,EAAE,UACA,mBACAgZ,GAAqB,CACnB,OAAQ,IAAMC,GAAA,OAAO,qBAAS,EAC9B,iBAAkB4C,GAClB,MAAO,CACf,CAAO,CACP,EACIrW,GAAwBC,GAAY,MAAO,IAAM,IAAIkW,EAAe,CACrE,CACH,ECjBMG,GAAiB,yxJACjBC,GAAe,ypJCEfC,GAAY,CAChB,KAAM,QACN,QAAS,EACX,EAKMC,GAAgB,KAAO,CAC3B,KAAM,MACN,QAAS,IAAM,CAAE,CACnB,GACMC,GAAkBC,IAAgB,CACtC,KAAM,OACN,QAASA,CACX,GAKMC,GAAkBD,IAAgB,CACtC,KAAM,OACN,QAASA,CACX,GACME,GAAgBF,IAAgB,CACpC,KAAM,KACN,UAAWG,GACX,QAASH,CACX,GC/BA,IAAII,GAAgB,CAClB,QAAS,eACT,MAAO,eACP,KAAM,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAAQ,EAC3E,MAAO,CACL,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,UACD,EACD,oBAAqB,2BACrB,0BAA2B,mBAC3B,oBAAqB,OACvB,ECrBIA,GAAgB,CAClB,QAAS,UACT,MAAO,QACP,KAAM,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EACtD,MAAO,CACL,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,KACD,EACD,oBAAqB,WACrB,0BAA2B,QAC3B,oBAAqB,YACvB,EClBIA,GAAgB,CACpB,GAAEC,GACF,GAAEC,EACF,ECNIxX,GAAY,OAAO,eACnByX,GAAa,OAAO,iBACpBC,GAAoB,OAAO,0BAC3BC,GAAsB,OAAO,sBAC7BC,GAAe,OAAO,UAAU,eAChCC,GAAe,OAAO,UAAU,qBAChC5X,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJikB,GAAiB,CAAC9hB,EAAGC,IAAM,CAC7B,QAAS8hB,KAAQ9hB,IAAMA,EAAI,CAAA,GACrB2hB,GAAa,KAAK3hB,EAAG8hB,CAAI,GAC3B9X,GAAgBjK,EAAG+hB,EAAM9hB,EAAE8hB,CAAI,CAAC,EACpC,GAAIJ,GACF,QAASI,KAAQJ,GAAoB1hB,CAAC,EAChC4hB,GAAa,KAAK5hB,EAAG8hB,CAAI,GAC3B9X,GAAgBjK,EAAG+hB,EAAM9hB,EAAE8hB,CAAI,CAAC,EAEtC,OAAO/hB,CACT,EACIgiB,GAAgB,CAAChiB,EAAGC,IAAMwhB,GAAWzhB,EAAG0hB,GAAkBzhB,CAAC,CAAC,EAGhE,MAAMgiB,GAAa,SAASC,EAAMC,EAAQC,EAAO,KAAM,CACrD,MAAMC,EAAgBC,GAASF,CAAI,GAAK,CAAA,EACxCD,EAASA,GAAU,GAAGE,EAAc,mBAAmB,IAAIA,EAAc,mBAAmB,GAC5F,MAAME,EAAOL,EAAO,IAAI,KAAKA,CAAI,EAAI,IAAI,KACnCM,EAAOD,EAAK,cACZE,EAAQF,EAAK,SAAQ,EAAK,EAC1BG,EAAMH,EAAK,UACXI,EAAOJ,EAAK,WACZK,EAAML,EAAK,aACXM,EAAMN,EAAK,aACXO,EAAS,MAAM,MAAM,KAAM,MAAM,EAAE,CAAC,EAAE,IAAI,CAACC,EAAMjN,IAAU,IAAMA,CAAK,EAQ5E,OAPgBqM,EAAO,QAAQ,MAAOK,EAAO,EAAE,EAAE,QAAQ,KAAMG,GAAQ,GAAK,KAAO,IAAI,EAAE,QAAQ,MAAOG,EAAOD,CAAG,GAAKA,EAAM,EAAE,EAAE,QAAQ,MAAOC,EAAOF,CAAG,GAAKA,EAAM,EAAE,EAAE,QACvK,MACAD,EAAO,IAAMR,EAAO,SAAS,GAAG,EAAIQ,EAAO,GAAK,GAAKR,EAAO,SAAS,GAAG,EAAIQ,EAAO,GAAKG,EAAOH,CAAI,GAAKA,EAAO,EACnH,EAAI,QAAQ,MAAOG,EAAOJ,CAAG,GAAKA,EAAM,EAAE,EAAE,QACxC,MACAN,IAAS,KAAOC,EAAc,MAAMI,EAAQ,CAAC,EAAIK,EAAOL,CAAK,GAAKA,EAAQ,EAC9E,CAEA,EACMO,GAActiB,GAAQA,EAAM,EAAIA,EAAM,IAAMA,EAC5CuiB,GAAeT,GAAS,CAC5B,GACA,GAAKU,GAAOV,CAAI,EAChB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACF,EACMW,GAAe,CAACX,EAAO,IAAI,KAAI,EAAG,YAAa,EAAEC,EAAQ,IAAI,KAAI,EAAG,WAAYC,EAAM,IACvE,IAAI,KAAKF,EAAMC,EAAOC,CAAG,EACf,SAG/B,SAASU,GAAKlZ,EAAKrI,EAAMwhB,EAAiB,CACxC,OAAOxhB,EAAK,OAAO,CAACyhB,EAAKngB,MACnB,CAACkgB,GAAmBnZ,EAAI/G,CAAG,IAAM,UACnCmgB,EAAIngB,CAAG,EAAI+G,EAAI/G,CAAG,GAEbmgB,GACN,CAAE,CAAA,CACP,CACA,MAAMC,GAA2BhB,GAC1BA,GAEE,CACL,KAAMA,EAAK,YAAa,EACxB,MAAOA,EAAK,SAAU,EACtB,IAAKA,EAAK,QAAS,CACvB,EAEMiB,GAAyBjB,GACxBA,GAEE,CACL,KAAMA,EAAK,YAAa,EACxB,MAAOA,EAAK,SAAU,EACtB,IAAKA,EAAK,QAAS,EACnB,MAAOA,EAAK,SAAU,EACtB,QAASA,EAAK,WAAY,CAC9B,EAEMkB,GAA0BlB,GAAS,CACvC,KAAM,CAAE,KAAAC,EAAM,MAAAC,EAAO,IAAAC,CAAG,EAAKH,EAC7B,OAAO,IAAI,KAAKC,EAAMC,EAAOC,EAAK,EAAG,EAAG,EAAG,CAAC,CAC9C,EACMgB,GAAyBnB,GAAS,CACtC,KAAM,CAAE,KAAAC,EAAM,MAAAC,EAAO,IAAAC,EAAK,QAAAiB,EAAS,MAAAC,CAAO,EAAGrB,EAC7C,OAAO,IAAI,KACTkB,GAAuB,CAAE,KAAAjB,EAAM,MAAAC,EAAO,IAAAC,CAAK,CAAA,EAAE,SAASkB,EAAOD,EAAS,EAAG,CAAC,CAC9E,CACA,EACME,GAAcjB,GAAQA,GAAO,IAAI,KAAKA,EAAI,SAAS,EAAG,EAAG,EAAG,CAAC,CAAC,EAAE,QAAO,EAAK,GAAK,GAAK,GAAK,IAC3FkB,GAActf,GAAQA,GAAO,IAAI,KAAKA,EAAI,SAAS,EAAG,EAAG,EAAG,CAAC,CAAC,EAAE,QAAO,EAAK,GAAK,GAAK,GAAK,IACjG,SAASuf,GAAaC,EAAOC,EAAO,CAClC,MAAMC,EAAQF,EAAM,KACdG,EAAQF,EAAM,KACpB,GAAIC,IAAUC,EAAO,CACnB,MAAMC,EAASJ,EAAM,MACfK,EAASJ,EAAM,MACrB,OAAOG,IAAWC,EAAS,EAAID,EAASC,EAAS,EAAI,EACtD,CACD,OAAOH,EAAQC,EAAQ,EAAI,EAC7B,CACA,SAASG,GAAWC,EAAMC,EAAM,CAC9B,MAAMC,EAAqBV,GAAaQ,EAAMC,CAAI,EAClD,GAAIC,IAAuB,EAAG,CAC5B,MAAMT,EAAQO,EAAK,IACbN,EAAQO,EAAK,IACnB,OAAOR,IAAUC,EAAQ,EAAID,EAAQC,EAAQ,EAAI,EAClD,CACD,OAAOQ,CACT,CACA,MAAMC,GAAanC,GAAS,IAAI,KAAKA,CAAI,EAEzC,SAASoC,GAAepC,EAAMnkB,EAAQ,CACpC,MAAMwmB,EAASF,GAAUnC,CAAI,EAC7B,OAAAqC,EAAO,QAAQA,EAAO,QAAS,EAAGxmB,CAAM,EACjCwmB,CACT,CACA,MAAMC,GAActC,GAAS,CAC3B,GAAI,CAACA,EACH,OAAOA,EACT,MAAMuC,EAAWrB,GAAuBlB,CAAI,EAC5C,OAAOoC,GAAeG,EAAU,EAAE,CACpC,EACMC,GAAcxC,GAAS,CAC3B,GAAI,CAACA,EACH,OAAOA,EACT,MAAMuC,EAAWrB,GAAuBlB,CAAI,EAC5C,OAAOoC,GAAeG,EAAU,CAAC,CACnC,EACME,GAAW,IAAM,CACrB,MAAMC,EAAQ,IAAI,KAClB,OAAAA,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,EACA,SAASC,GAAY3C,EAAM,CACzB,MAAMgC,EAAOhC,EAAK,CAAC,EAAE,QAAO,EAE5B,OADaA,EAAK,CAAC,EAAE,QAAO,EACbgC,IAAS,IAAM,GAAK,GAAK,IAAM,CAChD,CACA,SAASY,GAAc5C,EAAM,CAC3B,KAAM,CAACyB,EAAOC,CAAK,EAAI1B,EAAK,IAAKlX,GAASoY,GAAuBpY,CAAI,CAAC,EAEtE,GADgB6Z,GAAY,CAAClB,EAAOC,CAAK,CAAC,EAC5B,EAAG,CACf,IAAImB,EAAWpD,GAAcF,GAAe,GAAIS,EAAK,CAAC,CAAC,EAAG,CAAE,KAAM,OAAS,CAAA,EAC3E,MAAM8C,EAAU,CAAA,EAChB,KAAOf,GAAWc,EAAU7C,EAAK,CAAC,CAAC,IAAM,IACvC8C,EAAQ,KAAKD,CAAQ,EACrBA,EAAWpD,GAAcF,GAAe,CAAE,EAAEyB,GAAwBwB,GAAWK,CAAQ,CAAC,CAAC,EAAG,CAC1F,KAAM,QACd,CAAO,EAEH,MAAO,CAAC,GAAGC,EAASrD,GAAcF,GAAe,CAAA,EAAIS,EAAK,CAAC,CAAC,EAAG,CAAE,KAAM,KAAK,CAAE,CAAC,CAChF,CACD,OAAOA,CACT,CACA,MAAM+C,GAAkB/C,GAAS,CAC/B,KAAM,CAACgD,EAAOC,CAAG,EAAIjD,EACrB,OAAIA,EAAK,QAAU,EACV,CAACgD,EAAOC,CAAG,EAEb,CAACD,EAAOhD,EAAKA,EAAK,OAAS,CAAC,CAAC,CACtC,EC1KMkD,GAAgB,UAAW,CAC/B,GAAI,WAAW,KAAK,UAAU,SAAS,EACrC,MAAO,IAET,GAAI,0BAA0B,KAAK,UAAU,SAAS,EACpD,MAAO,GAEX,EACMC,GAAgB,CAACC,EAAM/C,EAAKpe,IAAQ,CACxC,MAAMohB,EAAU/B,GAAWjB,CAAG,EACxBiD,EAAU/B,GAAWtf,CAAG,EACxBshB,EAAc,IAAI,KAAKH,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,CAAC,EAAE,QAAO,EAC/D,OAAIC,GAAWC,EACNC,EAAcF,GAAWE,EAAcD,EAC5CD,EACKE,EAAcF,EACnBC,EACKC,EAAcD,EAChB,EACT,EACME,GAAYrlB,GAAQA,IAAQ,OAC5B2gB,GAAU3gB,GAAQ,OAAO,UAAU,SAAS,KAAKA,CAAG,IAAM,iBAAmB,CAAC,OAAO,MAAMA,EAAI,QAAS,CAAA,EACxGwiB,GAAUV,GAASA,EAAO,IAAM,IAAIA,EAAO,MAAQ,GAAQA,EAAO,MAAQ,GAAnB,EAA+B,ECvBtFlY,GAAe0b,IACnBA,EAAQ,QAAWrY,GAAQ,CACzB,KAAM,CAAE,KAAAvK,CAAM,EAAG4iB,EACb5iB,GACFuK,EAAI,UAAUvK,EAAM4iB,CAAO,CAEjC,EACSA,GCNT,SAASC,GAAUC,EAAM,CACvB,MAAMllB,EAAWU,KACbV,GACF,OAAO,OAAOA,EAAS,MAAOklB,CAAI,CAEtC,CCLA,MAAMC,GAAyB/gB,GAAS,CACtC,IAAIghB,EACJpiB,GAAU,IAAM,CACdoB,IACAihB,GAAS,IAAM,CACbD,EAAU,EAChB,CAAK,CACL,CAAG,EACDE,GAAY,IAAM,CACZF,GACFhhB,GAEN,CAAG,CACH,ECZMmhB,GAAc,CAACC,EAAO7H,KAAY,CACtC,IAAK,EACL,KAAM,EACN,MAAO6H,EACP,OAAQ7H,EACR,MAAA6H,EACA,OAAA7H,CACF,GACM8H,GAAWC,GAAiB,CAChC,MAAMC,EAAUC,GAAMF,CAAY,EAClC,GAAIX,GAASY,CAAO,EAAG,CACrB,MAAMH,EAAQG,EAAQ,WAChBhI,EAASgI,EAAQ,YACvB,OAAOJ,GAAYC,EAAO7H,CAAM,CACjC,CACD,OAA+BgI,GAAQ,sBAC9BA,EAAQ,wBAEVJ,GAAY,EAAG,CAAC,CACzB,ECrBA,IAAIvc,GAAY,OAAO,eACnByX,GAAa,OAAO,iBACpBC,GAAoB,OAAO,0BAC3BC,GAAsB,OAAO,sBAC7BC,GAAe,OAAO,UAAU,eAChCC,GAAe,OAAO,UAAU,qBAChC5X,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJikB,GAAiB,CAAC9hB,EAAGC,IAAM,CAC7B,QAAS8hB,KAAQ9hB,IAAMA,EAAI,CAAA,GACrB2hB,GAAa,KAAK3hB,EAAG8hB,CAAI,GAC3B9X,GAAgBjK,EAAG+hB,EAAM9hB,EAAE8hB,CAAI,CAAC,EACpC,GAAIJ,GACF,QAASI,KAAQJ,GAAoB1hB,CAAC,EAChC4hB,GAAa,KAAK5hB,EAAG8hB,CAAI,GAC3B9X,GAAgBjK,EAAG+hB,EAAM9hB,EAAE8hB,CAAI,CAAC,EAEtC,OAAO/hB,CACT,EACIgiB,GAAgB,CAAChiB,EAAGC,IAAMwhB,GAAWzhB,EAAG0hB,GAAkBzhB,CAAC,CAAC,EAMhE,MAAM4mB,GAAoB,CACxB,aAAc,QACd,KAAM,QACN,iBAAkB,QAClB,WAAY1F,GAAe,QAAQ,EACnC,aAAc,QACd,YAAa,CAAC,KAAM,KAAK,EACzB,iBAAkB,CAChB,KAAM,OACN,QAAS,CAAE,CACZ,EACD,QAASC,GAAa,IAAI,EAC1B,QAASA,GAAa,IAAI,EAC1B,SAAUH,GAAe,CAAC,EAC1B,SAAUE,GAAe,KAAK,EAC9B,SAAUH,GAAe,EACzB,aAAc,CACZ,KAAM,SACN,QAAS,IAAM,EAChB,EACD,KAAMG,GAAe,IAAI,EACzB,iBAAkBJ,GAClB,UAAWI,GAAe,QAAQ,EAClC,eAAgB,CACd,KAAM,CAAC,QAAS,MAAM,EACtB,QAAS,IAAM,EAChB,EACD,uBAAwBJ,GACxB,yBAA0BI,GAAe,EAAE,EAC3C,eAAgBA,GAAe,EAAE,EACjC,oBAAqBA,GAAe,EAAE,EACtC,4BAA6BA,GAAe,EAAE,EAC9C,kBAAmBA,GAAe,EAAE,CACtC,EACA,IAAIG,GAAgBnmB,EAAgB,CAClC,KAAM,eACN,MAAO0rB,GACP,MAAO,CAAC,SAAU,sBAAuB,QAAS,SAAU,YAAa,kBAAmB,cAAe,aAAc,YAAa,UAAU,EAChJ,MAAMzrB,EAAO,CACX,KAAAS,EACA,MAAA4F,CACJ,EAAK,CAED,MAAMqlB,EAAe5gB,EAAI,IAAI,EACvB6gB,EAAc7gB,EAAI,IAAI,EACtB8gB,EAAkBxd,GAAS,CAAA,CAAE,EAC7Byd,EAAc/gB,EAAI,IAAI,KAAI,EAAG,YAAa,CAAA,EAC1CghB,EAAehhB,EAAI,IAAI,KAAI,EAAG,SAAU,CAAA,EACxCihB,EAAajhB,EAAI,IAAI,KAAI,EAAG,QAAS,CAAA,EACrCkhB,EAAY,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,UAAU,EACzFC,EAAenhB,EAAI,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAAQ,CAAC,EACzFohB,EAAkBphB,EAAI,CAAA,CAAE,EACxBqhB,EAAsBrhB,EAAI,CAAA,CAAE,EAC5BshB,EAA0BthB,EAAI,EAAE,EAChCuhB,EAAgBvhB,EAAI,CAAC,EACrBwhB,EAAYxhB,EAAI,CAAC,EACjByhB,EAAgBzhB,EAAI,CAAC,EACrB0hB,EAAY1hB,EAAI,CAAC,EACjB2hB,EAAc3hB,EAAI,CAAA,CAAE,EACpB4hB,EAAiB5hB,EAAI,CAAC,EACtB6hB,EAAiB7hB,EAAI,CAAC,EACtB8hB,EAAqB9hB,EAAI,EAAG,EAC5B+hB,EAAQ/hB,EAAI,CAChB,EAAG,EACH,EAAG,CACT,CAAK,EACKgiB,EAAahiB,EAAI,EAAK,EACtBiiB,EAAsBjiB,EAAI,CAAC,EAC3BkiB,EAA0BliB,EAAI,CAAC,EAC/BmiB,EAAqBniB,EAAI,CAAC,EAC1BoiB,EAAsBpiB,EAAI,CAAC,EAC3BqiB,EAAsBriB,EAAI,CAAC,EAC3BsiB,EAAYtiB,EAAI,CAAC,EACjBuiB,EAAmBviB,EAAI,CAAC,EACxBwiB,GAAWxiB,EAAI,CAAA,CAAE,EACjByiB,GAAWziB,EAAI,CAAA,CAAE,EACjB0iB,GAA2B1iB,EAAI,EAAK,EACpC2iB,GAA2B3iB,EAAI,EAAK,EACpC4iB,GAAmB5iB,EAAI,CAAA,CAAE,EACzB6iB,GAAkB7iB,EAAI,CAAA,CAAE,EACxB8iB,GAAmB9iB,EAAI,CAC3B,KAAM,IAAI,KAAM,EAAC,YAAa,EAC9B,MAAO,IAAI,KAAM,EAAC,SAAU,CAClC,CAAK,EACDmhB,EAAa,MAAQ4B,GAAa7tB,EAAM,IAAI,EAAE,KAC9C0sB,EAAe,MAAQV,EAAU,QAAQhsB,EAAM,UAAU,YAAW,CAAE,EACtEisB,EAAa,MAAQ,CAAC,GAAGA,EAAa,MAAM,MAAMS,EAAe,MAAOT,EAAa,MAAM,MAAM,EAAG,GAAGA,EAAa,MAAM,MAAM,EAAGS,EAAe,KAAK,CAAC,EACxJ,MAAMoB,GAAa9rB,EAAS,CAC1B,KAAM,CACJ,OAAOhC,EAAM,YACd,EACD,IAAIsF,EAAK,CACP7E,EAAK,sBAAuB6E,CAAG,CAChC,CACP,CAAK,EACKyoB,GAAYC,GAAoB,CAC/BA,IACHA,EAAkBvB,EAAY,MAAM,CAAC,GAEvC,KAAM,CACJ,MAAApF,EACA,IAAAC,CACD,EAAG0G,EACEC,GAAU,CAAA,EAChB/B,EAAgB,MAAM,CAAC,EAAE,QAASjc,IAAS,CACzCge,GAAQ,KAAKhe,GAAK,GAAG,CAC7B,CAAO,EACD,IAAIie,GAAkBD,GAAQ,QAAQ3G,CAAG,EACrCA,EAAM,KACR4G,GAAkBD,GAAQ,YAAY3G,CAAG,GAG3C,MAAM6G,GADc,KAAK,MAAMD,GAAkB,GAAK,CAAC,EACxB,EAC/Bd,EAAU,MAAQ,EAAEH,EAAmB,MAAQkB,IAC/CL,GAAW,MAAQ,GACnBf,EAAoB,MAAQE,EAAmB,MAC/C,IAAImB,GAAc,CAAA,EAClB,MAAMC,GAAaF,GAAW,EACxBG,GAAWD,GAAa,EAC9Bb,GAAyB,MAAQ,GACjCY,GAAclC,EAAgB,MAAM,CAAC,EAAE,MAAMmC,GAAYC,EAAQ,EACjEF,GAAY,QAAQ,CAACne,GAAMyK,KAAU,CAC/BzK,GAAK,MAAQqX,IACf+F,EAAiB,MAAQ3S,GAEnC,CAAO,EACD,MAAM6T,GAAwBH,GAAY,CAAC,EACrCI,GAAuBJ,GAAY,CAAC,EACtCG,GAAsB,QAAUlH,GAASkH,GAAsB,MAAQ,EACrErC,EAAgB,MAAM,CAAC,EAAE,MAAM,GAAI,EAAE,EAAE,CAAC,EAAE,QAAU7E,EACtDiG,GAAS,MAAQpB,EAAgB,MAAM,CAAC,EAAE,MAAM,GAAI,EAAE,EAEtDoB,GAAS,MAAQpB,EAAgB,MAAM,CAAC,EAAE,MAAM,GAAI,EAAE,GAGxDoB,GAAS,MAAQpB,EAAgB,MAAM,CAAC,EAAE,MAAMmC,GAAa,EAAGC,GAAW,CAAC,EACxEhB,GAAS,MAAMD,EAAiB,KAAK,GAAKC,GAAS,MAAMD,EAAiB,KAAK,EAAE,QAAUhG,IAC7FmG,GAAyB,MAAQ,KAGrCC,GAAyB,MAAQ,GAC7Be,GAAqB,IAAMD,GAAsB,KAAOC,GAAqB,QAAUnH,EACzFkG,GAAS,MAAQrB,EAAgB,MAAM,CAAC,EAAE,MAAM,EAAG,EAAE,EAC5CsC,GAAqB,MAAQ3G,GAAY2G,GAAqB,IAAI,EAAEA,GAAqB,KAAK,EACvGjB,GAAS,MAAQrB,EAAgB,MAAM,CAAC,EAAE,MAAM,EAAG,CAAC,GAEpDqB,GAAS,MAAQrB,EAAgB,MAAM,CAAC,EAAE,MAAMmC,GAAa,EAAGC,GAAW,CAAC,EACxEf,GAAS,MAAMF,EAAiB,KAAK,EAAE,QAAUhG,IACnDoG,GAAyB,MAAQ,KAGrCtB,EAAoB,MAAM,CAAC,EAAE,OAAOkC,GAAY,EAAG,GAAGf,GAAS,KAAK,EACpEnB,EAAoB,MAAM,CAAC,EAAE,OAAOkC,GAAY,EAAG,GAAGd,GAAS,KAAK,CAC1E,EACUkB,GAAuB,CAACtH,EAAMzM,IAAU,CAC5C,MAAMgU,EAAoBxC,EAAgB,MAAMxR,CAAK,EAAE,EAAE,EACzD,OAAOyM,EAAK,OAASuH,EAAkB,MAAQvH,EAAK,QAAUuH,EAAkB,KACtF,EACUC,GAAoB,CAACxH,EAAMvd,IAAMud,EAAK,MAAQ,GAAK,CAACsH,GAAqBtH,EAAMvd,CAAC,EAChFglB,GAAsBzH,GAAS,CACnC,GAAI,CAACA,EAAK,IACR,OACF,MAAM0H,EAAQ,IAAI,KAAK,GAAG1H,EAAK,IAAI,IAAIA,EAAK,MAAQ,CAAC,IAAIA,EAAK,GAAG,EAAE,EACnE,OAAOnnB,EAAM,aAAa6uB,CAAK,GAAK,CAACvE,GAAcuE,EAAO7uB,EAAM,QAASA,EAAM,OAAO,CAC5F,EACU8uB,GAA2B,CAAC1H,EAAO,IAAI,KAAM,EAAC,YAAa,EAAEC,EAAQ,IAAI,KAAM,EAAC,SAAQ,IAAO,CACnG,MAAM0H,EAAyB,CAAA,EACzBC,GAAiB3H,IAAU,EAAID,EAAO,EAAIA,EAC1C6H,GAAa5H,IAAU,EAAI,GAAKA,EAAQ,EACxC6H,GAAiB7H,IAAU,GAAKD,EAAO,EAAIA,EAC3C+H,GAAa9H,IAAU,GAAK,EAAIA,EAAQ,EAC9C,IAAI+H,GAAYrH,GAAaX,EAAMC,CAAK,EACxC,MAAMgI,GAAgBxH,GAAYT,CAAI,EAAE6H,EAAU,EAC9CG,GAAY1C,EAAe,MAC7B0C,GAAY,EAAI1C,EAAe,MAAQ0C,GAEvCA,IAAa1C,EAAe,MAE9B,QAAS9iB,GAAI,EAAGA,GAAIwlB,GAAWxlB,KAC7BmlB,EAAuB,KAAK,CAC1B,KAAMC,GACN,MAAOC,GACP,IAAKjvB,EAAM,uBAAyBqvB,IAAiBD,GAAY,EAAIxlB,IAAK,CACpF,CAAS,EAEH,QAASA,GAAI,EAAGA,GAAIie,GAAYT,CAAI,EAAEC,CAAK,EAAGzd,KAC5CmlB,EAAuB,KAAK,CAC1B,KAAA3H,EACA,MAAAC,EACA,IAAKzd,GAAI,CACnB,CAAS,EAEH,MAAM0lB,GAAWlD,EAAwB,MAAQ2C,EAAuB,OACxE,QAASnlB,GAAI,EAAGA,GAAI0lB,GAAU1lB,KAC5BmlB,EAAuB,KAAK,CAC1B,KAAMG,GACN,MAAOC,GACP,IAAKnvB,EAAM,uBAAyB4J,GAAI,EAAI,CACtD,CAAS,EAEH,OAAOmlB,CACb,EACUQ,GAAgC,CAACnI,EAAOwG,GAAiB,MAAM,KAAMvG,EAAQuG,GAAiB,MAAM,QAAU,CAClHvB,EAAc,MAAQhF,IAAU,EAAID,EAAO,EAAIA,EAC/CkF,EAAU,MAAQjF,IAAU,EAAI,GAAKA,EAAQ,EAC7CkF,EAAc,MAAQlF,IAAU,GAAKD,EAAO,EAAIA,EAChDoF,EAAU,MAAQnF,IAAU,GAAK,EAAIA,EAAQ,EAC7C,MAAMmI,EAAaV,GAAyBzC,EAAc,MAAOC,EAAU,KAAK,EAC1EmD,GAAcX,GAAyB1H,EAAMC,CAAK,EAClDqI,GAAaZ,GAAyBvC,EAAc,MAAOC,EAAU,KAAK,EAIhF,GAHAN,EAAgB,MAAQ,GACxBA,EAAgB,MAAM,KAAKsD,EAAYC,GAAaC,EAAU,EAC9DvD,EAAoB,MAAQ,KAAK,MAAM,KAAK,UAAUD,EAAgB,KAAK,CAAC,EACxE,EAAClsB,EAAM,kBAEPA,EAAM,aAAe,SAAU,CACjC,IAAI2vB,GAAW,CAAA,EACX,CACF,IAAArI,EACV,EAAYmF,EAAY,MAAM,CAAC,EASvB,IARInF,GAAM,IAAMA,GAAM,IAAMD,IAAU,KACpCC,GAAMO,GAAYT,CAAI,EAAEC,CAAK,GAE/BsI,GAAW,CACT,IAAArI,GACA,KAAAF,EACA,MAAAC,CACV,EACYuH,GAAmBe,EAAQ,EAC7B,OACF,KAAM,CACJ,KAAMC,GACN,MAAOC,GACP,IAAKC,EACf,EAAYrD,EAAY,MAAM,CAAC,GACnBmD,KAAYxI,GAAQyI,KAAaxI,GAASyI,KAAWxI,MACvDmF,EAAY,MAAQ,CAAC,CACnB,IAAKkD,GAAS,IACd,KAAAvI,EACA,MAAAC,CACZ,CAAW,EAEJ,CACP,EACU0I,GAAY,IAAM,CACtB3C,EAAU,MAAQ,EAClBU,GAAW,MAAQ,GACnBf,EAAoB,MAAQE,EAAmB,MAAQ,EACvDO,GAAyB,MAAQ,GACjCC,GAAyB,MAAQ,GACjC8B,IACN,EACUhU,GAAO,IAAM,CACjB,GAAIvb,EAAM,aAAe,SAAU,CACjC,KAAM,CACJ,KAAAonB,EACA,MAAAC,CACV,EAAYoF,EAAY,MAAM,CAAC,EACvBmB,GAAiB,MAAQ,CACvB,KAAAxG,EACA,MAAAC,CACV,CACO,CACD4D,GAAS,IAAM,CACbgC,EAAmB,MAAQ5B,GAAQO,EAAgB,CAAC,CAAC,EAAE,OACvDoB,EAAwB,MAAQ3B,GAAQK,CAAY,EAAE,QAC5BE,GAAmB,IAC3B,QAAS3b,GAAS,CAC7BA,IAELA,EAAK,MAAM,OAAS,GAAGgd,EAAmB,KAAK,KACzD,CAAS,EACGa,GAAW,OACbC,KACAhB,EAAoB,MAAQE,EAAmB,QAE/C8C,KACAhD,EAAoB,MAAQE,EAAmB,MAAQ,EAEjE,CAAO,CACP,EACUpD,EAAQ,IAAM,CAClB,KAAM,CACJ,KAAAzC,EACA,MAAAC,EACA,IAAAC,CACR,EAAUa,GAAwB,IAAI,IAAM,EAClCnoB,EAAM,aAAe,WACvBysB,EAAY,MAAQ,CAAC,CACnB,KAAArF,EACA,MAAAC,EACA,IAAAC,CACV,CAAS,GAEHsG,GAAiB,MAAQ,CACvB,KAAAxG,EACA,MAAAC,CACR,EACMkI,KACIzB,GAAW,OACb,WAAW,IAAM,CAEf,GADAhB,EAAW,MAAQ,GACf9sB,EAAM,aAAe,SAAU,CACjC,MAAMmnB,GAAOsF,EAAY,MAAM,CAAC,EAChCA,EAAY,MAAQ,CAAC7F,GAAcF,GAAe,CAAA,EAAIS,EAAI,EAAG,CAC3D,KAAAC,EACA,MAAAC,CACD,CAAA,CAAC,CACH,CACD0G,IACV,EAAWnB,EAAmB,MAAQ,GAAG,CAEzC,EACUoD,EAAc,IAAM,CACxB,MAAMC,EAAU3C,GAAS,MAAMD,EAAiB,KAAK,EACrDU,GAASkC,CAAO,EACZ,CAAArB,GAAmBqB,CAAO,GAEzBjwB,EAAM,mBAEXysB,EAAY,MAAQ,CAACwD,CAAO,EAClC,EACUC,EAAc,IAAM,CACxB,MAAMD,EAAU1C,GAAS,MAAMF,EAAiB,KAAK,EACrDU,GAASkC,CAAO,EACZ,CAAArB,GAAmBqB,CAAO,GAEzBjwB,EAAM,mBAEXysB,EAAY,MAAQ,CAACwD,CAAO,EAClC,EACUE,EAAe,IAAM,CACzBxD,EAAe,OAAS,EACnBa,GAAyB,QAC5BI,GAAiB,MAAQ,CACvB,KAAMvB,EAAc,MACpB,MAAOC,EAAU,KAC3B,GAEMiD,IACN,EACUa,EAAe,IAAM,CACzBzD,EAAe,OAAS,EACnBc,GAAyB,QAC5BG,GAAiB,MAAQ,CACvB,KAAMrB,EAAc,MACpB,MAAOC,EAAU,KAC3B,GAEM+C,IACN,EACUc,EAAmBlJ,GAAS,CAChC,KAAM,CACJ,WAAAmJ,EACA,SAAAC,CACD,EAAGvwB,EACE,CACJ,KAAAonB,GACA,MAAAC,GACA,IAAAC,EACD,EAAGH,EACE8I,GAAUxD,EAAY,MAC5B,GAAI6D,IAAe,SACjB7D,EAAY,MAAQ,CAAC,CACnB,KAAArF,GACA,MAAAC,GACA,IAAAC,EACV,CAAS,UACQgJ,IAAe,WAAY,CACpC,MAAME,GAAaP,GAAQ,UAAWhgB,IAASiZ,GAAWjZ,GAAMkX,CAAI,IAAM,CAAC,EAC3E,GAAIqJ,GAAa,GACf/D,EAAY,MAAM,OAAO+D,GAAY,CAAC,MACjC,CACL,GAAID,GAAYN,GAAQ,QAAUM,EAAU,CAC1C9vB,EAAK,WAAW,EAChB,MACD,CACDgsB,EAAY,MAAQ,CAAC,GAAGwD,GAAS9I,CAAI,CACtC,CACT,SAAiBmJ,IAAe,QAAS,CAIjC,GAHAnJ,EAAOP,GAAcF,GAAe,CAAE,EAAES,CAAI,EAAG,CAC7C,KAAM,OAChB,CAAS,EACG,CAAC8I,IAAW,CAACA,GAAQ,OAAQ,CAC/BxD,EAAY,MAAQ,CAACtF,CAAI,EACzB,MACD,CACD,KAAM,CAACsJ,GAAUC,EAAM,EAAIxG,GAAe+F,EAAO,EACjD,GAAIQ,IAAY,CAACC,GAAQ,CACvB,MAAMC,GAAiBzH,GAAW/B,EAAMsJ,EAAQ,EAChD,GAAIE,KAAmB,EAAG,CACxB,MAAM1G,GAAUF,GAAc,CAACkG,GAAQ,CAAC,EAAGrJ,GAAcF,GAAe,GAAIS,CAAI,EAAG,CACjF,KAAM,KACP,CAAA,CAAC,CAAC,EACH,GAAIoJ,GAAYtG,GAAQ,OAASsG,EAAU,CACzC9vB,EAAK,WAAW,EAChB,MACD,CACDgsB,EAAY,MAAQxC,EAChC,MAAqB0G,KAAmB,GAC5BlE,EAAY,MAAQ,CAACtF,CAAI,EAChBnnB,EAAM,eACfmnB,EAAOP,GAAcF,GAAe,CAAE,EAAES,CAAI,EAAG,CAC7C,KAAM,WACpB,CAAa,EACDsF,EAAY,MAAQ,CAACtF,EAAMA,CAAI,EAE3C,MACUsF,EAAY,MAAQ,CAACtF,CAAI,CAE5B,CACP,EACUyJ,EAAoBzJ,GAAS,CAC5BA,EAAK,MAENyH,GAAmBzH,CAAI,IAE3BkJ,EAAgBlJ,CAAI,EAChBA,EAAK,QAAUmF,EAAU,OAASnF,EAAK,OAASkF,EAAc,OAChE8D,IAEEhJ,EAAK,QAAUqF,EAAU,OAASrF,EAAK,OAASoF,EAAc,OAChE6D,IAEEtC,GAAW,OACbC,KAEFttB,EAAK,QAAS0mB,CAAI,GACxB,EACU0J,EAAW1J,GAAS0E,EAAY,QAAU1E,EAAK,MAAQ2E,EAAa,QAAU3E,EAAK,OAAS4E,EAAW,QAAU5E,EAAK,IACtH2J,EAAgB3J,GAAS,CAC7B,GAAIyH,GAAmBzH,CAAI,EACzB,MAAO,GACT,KAAM,CACJ,KAAAC,EACA,MAAAC,EACA,IAAAC,EACD,EAAGH,EACJ,OAAOsF,EAAY,MAAM,KAAMxc,IAASA,GAAK,OAASmX,GAAQnX,GAAK,QAAUoX,GAASpX,GAAK,MAAQqX,EAAG,CAC5G,EACUyJ,EAA8BC,GAAU,CAC5C,MAAMxG,EAAU/B,GAAWzoB,EAAM,OAAO,EAClCyqB,EAAU/B,GAAW1oB,EAAM,OAAO,EACxC,GAAI8tB,GAAW,MAAO,CACpB,MAAMmD,GAAoB,IAAI,KAAK,GAAG3D,GAAS,MAAM,CAAC,EAAE,IAAI,IAAIA,GAAS,MAAM,CAAC,EAAE,MAAQ,CAAC,IAAIA,GAAS,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,QAAO,EACzH4D,GAAmB,IAAI,KAAK,GAAG3D,GAAS,MAAM,CAAC,EAAE,IAAI,IAAIA,GAAS,MAAM,CAAC,EAAE,MAAQ,CAAC,IAAIA,GAAS,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,QAAO,EAC9H,GAAIyD,IAAU,QAAUvG,EACtB,OAAOyG,IAAoBzG,EAC7B,GAAIuG,IAAU,SAAWxG,EACvB,OAAOyG,IAAqBzG,CACtC,KAAa,CACL,MAAM2G,GAAqB,IAAI,KAAK,GAAG9E,EAAc,KAAK,IAAIC,EAAU,MAAQ,CAAC,IAAIzE,GAAYwE,EAAc,KAAK,EAAEC,EAAU,KAAK,CAAC,EAAE,EAAE,UACpI8E,GAAoB,IAAI,KAAK,GAAG7E,EAAc,KAAK,IAAIC,EAAU,MAAQ,CAAC,IAAI,EAAE,QAAO,EAC7F,GAAIwE,IAAU,QAAUvG,EACtB,OAAO2G,IAAqB3G,EAC9B,GAAIuG,IAAU,SAAWxG,EACvB,OAAO2G,IAAsB3G,CAChC,CACD,MAAO,EACb,EACU6G,EAAeC,GAQZ,CAPW,CAChB,GAAI,CAAC,GAAM,KAAM,UAAU,EAC3B,KAAM,CAAC,GAAM,OAAQ,UAAU,EAC/B,KAAM,CAAC,GAAM,OAAQ,YAAY,EACjC,MAAO,CAAC,GAAM,QAAS,YAAY,CAC3C,EACyCA,CAAI,EACd,KAAMrhB,IAASA,KAASjQ,EAAM,cAAc,EAEjEuxB,GAA6B,IAAM,CACvC1E,EAAM,MAAM,EAAI,GAAK,CAACwE,EAAY,MAAM,IAAMxE,EAAM,MAAM,EAAI,GAC9DA,EAAM,MAAM,EAAI,GAAK,CAACwE,EAAY,OAAO,IAAMxE,EAAM,MAAM,EAAI,GAC/DA,EAAM,MAAM,EAAI,GAAK,CAACwE,EAAY,IAAI,IAAMxE,EAAM,MAAM,EAAI,GAC5DA,EAAM,MAAM,EAAI,GAAK,CAACwE,EAAY,MAAM,IAAMxE,EAAM,MAAM,EAAI,EACpE,EACU2E,GAAiB,CAAC,CACtB,OAAAC,CACN,IAAU,CAGI,WAAW,IAAM,CACvB3E,EAAW,MAAQ,GACnB2E,EAASvB,IAAgBF,GACjC,EAASpD,EAAmB,MAAQ,GAAG,CACvC,EACU8E,EAAc7wB,GAAU,CAC5BJ,EAAK,aAAcI,CAAK,EACxBqsB,EAAoB,MAAQrsB,EAAM,QAAQ,CAAC,EAAE,QAC7CssB,EAAoB,MAAQtsB,EAAM,QAAQ,CAAC,EAAE,QAC7CgsB,EAAM,MAAQ,CACZ,EAAG,EACH,EAAG,CACX,EACMC,EAAW,MAAQ,EACzB,EACU6E,GAAa9wB,GAAU,CAC3BJ,EAAK,YAAaI,CAAK,EAClBb,EAAM,mBACTa,EAAM,gBAAe,EACjBA,EAAM,YACRA,EAAM,eAAc,GAExB,MAAM+wB,EAAQ/wB,EAAM,QAAQ,CAAC,EAAE,QAAUqsB,EAAoB,MACvD2E,EAAQhxB,EAAM,QAAQ,CAAC,EAAE,QAAUssB,EAAoB,MAC7D,GAAI,KAAK,IAAIyE,CAAK,EAAI,KAAK,IAAIC,CAAK,EAAG,CACrC,GAAId,EAA2Ba,EAAQ,EAAI,OAAS,OAAO,EACzD,OACF/E,EAAM,MAAQ,CACZ,EAAG+E,EAAQvG,GAAQM,CAAW,EAAE,MAChC,EAAG,CACb,CACA,KAAa,CACL,GAAI3rB,EAAM,iBACR,OACF6sB,EAAM,MAAQ,CACZ,EAAG,EACH,EAAGgF,EAAQxG,GAAQM,CAAW,EAAE,MAC1C,CACO,CACD4F,IACN,EACUO,GAAYxwB,GAAM,CACtBb,EAAK,WAAYa,CAAC,EAClBwrB,EAAW,MAAQ,GACf,KAAK,IAAID,EAAM,MAAM,CAAC,EAAI,KAAK,IAAIA,EAAM,MAAM,CAAC,GAAK,KAAK,IAAIA,EAAM,MAAM,CAAC,EAAI,KAC7EA,EAAM,MAAM,EAAI,GAClBpsB,EAAK,cAAe,OAAO,EAC3B0vB,IACIrC,GAAW,OACb0D,GAAe,CACb,OAAQ,EACtB,CAAa,GAEM3E,EAAM,MAAM,EAAI,IACzBpsB,EAAK,cAAe,MAAM,EAC1B2vB,IACItC,GAAW,OACb0D,GAAe,CACb,OAAQ,EACtB,CAAa,IAIH,KAAK,IAAI3E,EAAM,MAAM,CAAC,EAAI,KAAK,IAAIA,EAAM,MAAM,CAAC,GAAK,KAAK,IAAIA,EAAM,MAAM,EAAIxB,GAAQM,CAAW,EAAE,MAAM,EAAI,GAC3GkB,EAAM,MAAM,EAAI,GAAKiB,GAAW,OAClCrtB,EAAK,cAAe,MAAM,EAC1BsvB,MACSlD,EAAM,MAAM,EAAI,GAAK,CAACiB,GAAW,QAC1CrtB,EAAK,cAAe,IAAI,EACxBstB,MAGFlB,EAAM,MAAQ,CACZ,EAAG,EACH,EAAG,CACb,CAEA,EACUkF,GAAgB,CAAC5K,EAAMjnB,IAAS,CACpC,MAAM8xB,EAAa,GAAG7K,EAAK,IAAI,IAAIS,GAAWT,EAAK,MAAQ,CAAC,CAAC,IAAIS,GAAWT,EAAK,GAAG,CAAC,GAErF,IAD2BwG,GAAgB,MAAMqE,CAAU,GAAK,IACzC,QAAQ9xB,CAAI,IAAM,GAEzC,OAAOwtB,GAAiB,MAAMsE,CAAU,CAC9C,EACUC,GAAchI,IAClBA,EAAQ,QAAQ,CAAC9C,EAAMzM,IAAU,CAC/BuP,EAAQvP,CAAK,EAAImM,GAAWM,EAAM,UAAU,CACpD,CAAO,EACM8C,GAETc,GAAsBxP,EAAI,EAC1BnT,EAAM,IAAMpI,EAAM,SAAWsF,GAAQ,CACnC,MAAM4sB,EAAS,CAAA,EACf5sB,EAAI,QAAS2K,GAAS,CACpB,MAAMnB,GAAM,CACV,KAAM,CAAE,EACR,MAAO,UACP,KAAM9O,EAAM,QACtB,EACY,OAAOiQ,GAAS,UAAY,OAAOA,GAAS,SAC9CnB,GAAI,KAAO,CAACmB,CAAI,GAEhBnB,GAAI,MAAQmB,EAAK,OAAS,UAC1BnB,GAAI,KAAOmB,EAAK,MAAQjQ,EAAM,SAC9B8O,GAAI,KAAOmjB,GAAWhiB,EAAK,MAAQ,CAAE,CAAA,GAEvCiiB,EAAO,KAAKpjB,EAAG,CACvB,CAAO,EACD4e,GAAiB,MAAQ,GACzBC,GAAgB,MAAQ,GACxBuE,EAAO,QAASjiB,GAAS,CACvBA,EAAK,KAAK,QAASkX,IAAS,CAC1BuG,GAAiB,MAAMvG,EAAI,EAAIlX,EAAK,MACpC0d,GAAgB,MAAMxG,EAAI,EAAIlX,EAAK,IAC7C,CAAS,CACT,CAAO,CACP,EAAO,CACD,KAAM,GACN,UAAW,EACjB,CAAK,EACD7H,EAAMskB,EAAgB,IAAM,CAC1B6C,IACN,CAAK,EACDnnB,EAAM,IAAMpI,EAAM,YAAcsF,GAAQ,CACtC,GAAItF,EAAM,aAAe,UAAYsF,aAAe,KAAM,CACxD,MAAM8hB,EAAO9hB,EAAI,cACX+hB,EAAQ/hB,EAAI,WAClBsoB,GAAiB,MAAQ,CACvB,KAAAxG,EACA,MAAAC,CACV,EACQoF,EAAY,MAAQ,CAACtE,GAAwB7iB,CAAG,CAAC,CAClD,SAAU,MAAM,QAAQA,CAAG,EAAG,CAC7B,MAAM2qB,EAAU3qB,EAAI,IAAK2K,GAASkY,GAAwBlY,CAAI,CAAC,EAC3DjQ,EAAM,aAAe,QACvBysB,EAAY,MAAQ1C,GAAc,CAACnD,GAAcF,GAAe,GAAIuJ,EAAQ,CAAC,CAAC,EAAG,CAC/E,KAAM,OAClB,CAAW,EAAGrJ,GAAcF,GAAe,CAAE,EAAEuJ,EAAQ,CAAC,CAAC,EAAG,CAChD,KAAM,KACP,CAAA,CAAC,CAAC,EAEHxD,EAAY,MAAQwD,CAEvB,CACDV,KACIzB,GAAW,OACbC,IAER,EAAO,CACD,UAAW,EACjB,CAAK,EACD3lB,EAAMqkB,EAAcnnB,GAAQ,CAC1B7E,EAAK,SAAU6E,CAAG,CACxB,EAAO,CACD,KAAM,GACN,UAAW,EACjB,CAAK,EACD8C,EAAM,IAAMpI,EAAM,KAAOsF,GAAQ,CAC3BA,IACFiqB,KACAhU,KAER,EAAO,CACD,UAAW,EACjB,CAAK,EACDnT,EAAMwlB,GAAkB,IAAMntB,EAAK,kBAAmBmtB,GAAiB,KAAK,CAAC,EAC7ExlB,EAAM0lB,GAAaxoB,GAAQ,CAEvB2lB,GADE3lB,EACO,IAAM,CACbyoB,IACV,EAEiB,IAAM,CACbgC,IACV,CAJS,CAMT,CAAK,EACD3nB,EAAM,IAAMpI,EAAM,iBAAmBsF,GAAQ,CACvCA,IACFsoB,GAAiB,MAAQtoB,EAEjC,EAAO,CACD,UAAW,EACjB,CAAK,EACD8C,EAAM2kB,EAAsBznB,GAAQ,CAClC7E,EAAK,SAAU6E,EAAM0nB,EAAwB,KAAK,CACxD,CAAK,EACDnC,GAAU,CACR,MAAAhB,EACA,aAAAsG,EACA,aAAAC,EACA,eAAAoB,EACN,CAAK,EACD,MAAMW,GAAa,IAAMlxB,EAAa,MAAO,CAC3C,MAAS,gBACT,IAAOyqB,CACb,EAAO,CAACO,EAAa,MAAM,IAAKhc,GAAShP,EAAa,MAAO,CACvD,MAAS,gBACT,IAAOgP,CACb,EAAO,CAAChP,EAAa,IAAK,CACpB,MAAS,cACV,EAAE,CAACoF,EAAM,KAAOA,EAAM,KAAK,CAC1B,KAAM4J,CACP,CAAA,EAAIA,CAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACTmiB,GAAwBjL,GAAS,CACrC,GAAInnB,EAAM,aAAe,QACvB,MAAO,GACT,MAAM0pB,EAAW+C,EAAY,MAAM,KAAMxc,IAASiZ,GAAWjZ,GAAMkX,CAAI,IAAM,CAAC,EAC9E,GAAI,CAACuC,EACH,MAAO,GACT,KAAM,CACJ,KAAAxpB,CACD,EAAGwpB,EACJ,OAAOxpB,IAAS,QAAU,+CAAiDA,IAAS,SAAW,gDAAkDA,IAAS,MAAQ,6CAA+CA,IAAS,YAAc,mDAAqD,EACnS,EACUmyB,GAAY,CAAClL,EAAMvd,IAAM,CAC7B,IAAI0oB,EAAS3D,GAAkBxH,EAAMvd,CAAC,EAAIikB,GAAa7tB,EAAM,IAAI,EAAE,MAAMmnB,EAAK,KAAK,EAAIA,EAAK,MAAQ,EAAI,GAAKA,EAAK,IAClH,OAAI9gB,EAAM,MACRisB,EAASjsB,EAAM,IAAI,CACjB,KAAA8gB,EACA,WAAY,CACV,SAAU,CAAC,EAAE4K,GAAc5K,EAAM,QAAQ,GAAK4K,GAAc5K,EAAM,KAAK,GACvE,eAAgByH,GAAmBzH,CAAI,EACvC,QAAS0J,EAAQ1J,CAAI,EACrB,UAAW2J,EAAa3J,CAAI,EAC5B,kBAAmB,CAACsH,GAAqBtH,EAAMvd,CAAC,EAChD,kBAAmB+kB,GAAkBxH,EAAMvd,CAAC,CAC7C,CACX,CAAS,GAEI3I,EAAa,MAAO,CACzB,MAAS,gBAAgB0tB,GAAkBxH,EAAMvd,CAAC,EAAI5J,EAAM,0BAA4B,uBAAyB,EAAE,IAAI6wB,EAAQ1J,CAAI,EAAInnB,EAAM,gBAAkB,qBAAuB,EAAE,IAAI8wB,EAAa3J,CAAI,EAAInnB,EAAM,qBAAuB,uBAAyB,EAAE,IAAIyuB,GAAqBtH,EAAMvd,CAAC,GAAK5J,EAAM,uBAAyBA,EAAM,6BAA+B,mBAAqB,EAAE,IAAI+xB,GAAc5K,EAAM,QAAQ,EAAI,uBAAyB,EAAE,GACxc,MAAS,CACP,eAAgB4K,GAAc5K,EAAM,QAAQ,CAC7C,CACT,EAAS,CAACmL,CAAM,CAAC,CACjB,EACUC,GAAc,IAAMpG,EAAoB,MAAM,IAAI,CAAClc,EAAMrG,IAAM3I,EAAa,KAAM,CACtF,MAAS,oBACT,IAAO2I,EACP,MAAS,CACP,UAAW,gBAAgBA,EAAI,EAAI+iB,EAAe,OAASG,EAAW,MAAQD,EAAM,MAAM,EAAI,IAAM,GAAG,MAAMO,EAAU,KAAK,SAC5H,mBAAoB,GAAGN,EAAW,MAAQ,EAAIF,EAAmB,KAAK,GACvE,CACP,EAAO,CAAC3c,EAAK,IAAI,CAACkX,EAAMqL,KAAMvxB,EAAa,MAAO,CAC5C,MAAS,iBAAiB2tB,GAAmBzH,CAAI,EAAInnB,EAAM,mBAAqB,wBAA0B,EAAE,GAAGoyB,GAAqBjL,CAAI,CAAC,GACzI,IAAQsL,IAAO,CACb7G,EAAgB,OAAS,EACzBA,EAAgB,KAAK6G,EAAE,CACxB,EACD,IAAO7oB,EAAI4oB,GACX,QAAW,IAAM5B,EAAiBzJ,CAAI,CAC5C,EAAO,CAACkL,GAAUlL,EAAMvd,CAAC,EAAG3I,EAAa,MAAO,CAC1C,MAAS,CACP,WAAY8wB,GAAc5K,EAAM,KAAK,CACtC,EACD,MAAS,cACV,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACPuL,GAAqB,IAAMzxB,EAAa,MAAO,CACnD,MAAS,gBACT,MAAS,CACP,QAASjB,EAAM,KAAO,QAAU,MACjC,CACF,EAAE,CAACmyB,GAAU,EAAIlxB,EAAa,MAAO,CACpC,MAAS,iBACT,MAAS,CACP,OAAQ,GAAG8rB,EAAoB,KAAK,IACrC,EACD,IAAOpB,EACP,aAAgB+F,EAChB,YAAeC,GACf,WAAcG,EACpB,EAAO,CAAC7wB,EAAa,KAAM,CACrB,MAAS,CACP,UAAW,eAAe,CAAC0rB,EAAe,MAAQ,GAAG,UACtD,CACF,EAAE,CAAC4F,GAAa,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,EACtB,MAAO,IAAMG,GAAkB,CAChC,CACH,CAAC,EC7wBD,MAAMC,GAAoB,CACxB,KAAM,QACN,YAAa3M,GAAa,IAAI,IAAM,EACpC,aAAc,CACZ,KAAM,SACN,QAAS,IAAM,EAChB,EACD,WAAYH,GAAe,CAAC,EAC5B,aAAc,CACZ,KAAM,OACN,QAAS,KAAO,CAAA,EACjB,CACH,EACA,IAAIK,GAAgBnmB,EAAgB,CAClC,KAAM,eACN,MAAO4yB,GACP,MAAO,CAAC,QAAQ,EAChB,MAAM3yB,EAAO,CACX,KAAAS,CACJ,EAAK,CACD,MAAMmyB,EAAiBxkB,GAAS,CAAA,CAAE,EAC5BykB,EAAczkB,GAAS,CAAA,CAAE,EACzBqe,EAAc3hB,EAAI,CACtB,MAAO,IAAI,KAAM,EAAC,SAAU,EAC5B,QAAS,IAAI,KAAM,EAAC,WAAY,CACtC,CAAK,EACKgoB,EAAahoB,EAAI,CAAC,EAClBioB,EAAYjoB,EAAI,CAAA,CAAE,EAClBkoB,EAAaloB,EAAI,CAAC,EAClBmoB,EAAcnoB,EAAI,CAAC,EACnBooB,EAAgB,IAAM,CAC1B,MAAM1K,EAAQ,CAAA,EACduK,EAAU,MAAQ,GAClB,QAASnpB,EAAI,EAAGA,EAAI,GAAIA,IACtB4e,EAAM,KAAK5e,CAAC,EAEd,MAAM2e,EAAU,CAAA,EAChB,QAAS3e,EAAI,EAAGA,EAAI,GAAIA,IAClBA,EAAI5J,EAAM,aAAe,GAC3BuoB,EAAQ,KAAK3e,CAAC,EAGlBmpB,EAAU,MAAM,KAAKvK,EAAOD,CAAO,EACnC0C,GAAS,IAAM,CACb,MAAMkI,EAAa1G,EAAY,MAAM,MAC/B2G,EAAe3G,EAAY,MAAM,QACvCqG,EAAW,MAAQzH,GAAQwH,EAAY,CAAC,CAAC,EAAE,OAC3C,KAAM,CAACQ,EAAkBC,CAAiB,EAAIV,EACxCW,GAAW,EAAIJ,GAAcL,EAAW,MAC1CO,IACFA,EAAiB,MAAM,UAAY,mBAAqBE,EAAU,WAEpE,MAAMC,GAAa,EAAIJ,EAAepzB,EAAM,YAAc8yB,EAAW,MACjEQ,IACFA,EAAkB,MAAM,UAAY,mBAAqBE,EAAY,UAE/E,CAAO,CACP,EACU5E,EAAqB,CAAC9H,EAAMpM,IAAU,CAC1C,MAAM8N,EAAQ9N,IAAU,EAAIoM,EAAO2F,EAAY,MAAM,MAC/ClE,EAAU7N,IAAU,EAAIoM,EAAO2F,EAAY,MAAM,QACjDgH,EAAU,GAAGzzB,EAAM,aAAa,IAAI,IAAIA,EAAM,aAAa,MAAQ,CAAC,IAAIA,EAAM,aAAa,GAAG,IAAIwoB,CAAK,IAAID,CAAO,GAClHsG,EAAQ,IAAI,KAAK4E,CAAO,EAC9B,OAAOzzB,EAAM,aAAa6uB,CAAK,CACrC,EACU6E,EAAkBpyB,GAAM,CACxBA,EAAE,YACJA,EAAE,eAAc,EAClB0xB,EAAW,MAAQ1xB,EAAE,eAAe,CAAC,EAAE,MACvC,KAAM,CACJ,UAAAqyB,CACR,EAAUryB,EAAE,cAAc,MAChBqyB,IACFV,EAAY,MAAQ,WAAWU,EAAU,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,EAE7E,EACUC,EAAe,CAACtyB,EAAGoZ,IAAU,CACjC,KAAM,CACJ,UAAAiZ,CACR,EAAUryB,EAAE,cAAc,MACpB,IAAIuyB,EAAQZ,EAAY,MACpBU,IACFE,EAAQ,WAAWvyB,EAAE,cAAc,MAAM,UAAU,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAEjF,MAAMwyB,EAAW,KAAK,IAAID,EAAQZ,EAAY,KAAK,EAC7Cc,EAAU,KAAK,MAAMD,EAAWhB,EAAW,KAAK,GAAK,EACrDkB,EAAclB,EAAW,MAAQ,EACvC,IAAImB,EAAKhB,EAAY,MAkBrB,GAjBIY,GAASZ,EAAY,MACnBa,GAAYE,EACdC,EAAKhB,EAAY,OAEjBgB,EAAKhB,EAAY,MAAQH,EAAW,MAAQiB,EACxCE,EAAK,EAAElB,EAAU,MAAMrY,CAAK,EAAE,OAAS,GAAKoY,EAAW,QACzDmB,EAAK,EAAElB,EAAU,MAAMrY,CAAK,EAAE,OAAS,GAAKoY,EAAW,QAGlDgB,GAAYE,EACrBC,EAAKhB,EAAY,OAEjBgB,EAAKhB,EAAY,MAAQH,EAAW,MAAQiB,EACxCE,EAAKnB,EAAW,MAAQ,IAC1BmB,EAAKnB,EAAW,MAAQ,IAGxBpY,IAAU,EAAG,CACf,MAAM6M,EAAO,EAAI,KAAK,MAAM0M,EAAKnB,EAAW,KAAK,EAC7ClE,EAAmBrH,EAAM7M,CAAK,EAChCuZ,EAAKhB,EAAY,MAEjBxG,EAAY,MAAM,MAAQlF,CAEpC,KAAa,CACL,MAAM2M,EAAS,EAAI,KAAK,MAAMD,EAAKnB,EAAW,KAAK,EAC/ClE,EAAmBsF,EAAQxZ,CAAK,EAClCuZ,EAAKhB,EAAY,MAEjBxG,EAAY,MAAM,QAAUyH,EAASl0B,EAAM,UAE9C,CACDsB,EAAE,cAAc,MAAM,iBAAmB,kBACzCA,EAAE,cAAc,MAAM,UAAY,mBAAqB2yB,EAAK,SAClE,EACUE,EAAgB,CAAC7yB,EAAGoZ,IAAU,CAElC,MAAM0Z,EADW9yB,EAAE,eAAe,CAAC,EAAE,MAChB0xB,EAAW,MAEhC,GADA1xB,EAAE,cAAc,MAAM,UAAY,oBAAsB8yB,EAAInB,EAAY,OAAS,UAC7E5I,GAAe,IAAK,IACtB,OAAAuJ,EAAatyB,EAAGoZ,CAAK,EACd,EAEf,EACU2Z,EAAmB,CAACvN,EAAMpM,IAAUA,IAAU,GAAKoM,IAAS2F,EAAY,MAAM,OAAS/R,IAAU,GAAKoM,IAAS2F,EAAY,MAAM,QACvIrkB,EAAM,IAAMpI,EAAM,YAAcsF,GAAQ,CACtC,GAAI,EAAEA,aAAe,MACnB,MAAM,IAAI,MAAM,yDAAyD,EAE3EmnB,EAAY,MAAM,MAAQnnB,EAAI,SAAQ,EACtCmnB,EAAY,MAAM,QAAUnnB,EAAI,WAAU,CAChD,EAAO,CACD,UAAW,EACjB,CAAK,EACD8C,EAAMqkB,EAAcnnB,GAAQ,CAC1B7E,EAAK,SAAU6E,CAAG,CACxB,EAAO,CACD,KAAM,GACN,UAAW,EACjB,CAAK,EACD8C,EAAM,IAAMpI,EAAM,KAAOsF,GAAQ,CAC3BA,GACF,WAAW,IAAM,CACf4tB,GACD,EAAE,GAAG,CAEd,EAAO,CACD,UAAW,EACjB,CAAK,EACD9qB,EAAM,IAAMpI,EAAM,WAAasF,GAAQ,CACrC,GAAIA,GAAO,GAAKA,GAAO,GACrB,MAAM,IAAI,MAAM,8BAA8BA,CAAG,GAAG,EAEtD,GAAI,GAAKA,IAAQ,EACf,MAAM,IAAI,MAAM,yCAAyC,CAEjE,EAAO,CACD,UAAW,EACjB,CAAK,EACD,MAAMgvB,EAAiB,CAACxN,EAAMpM,IAAUoM,EAAK,IAAI,CAAC7W,EAAMuiB,IAAMvxB,EAAa,MAAO,CAChF,IAAQszB,GAAS,CACf1B,EAAY,OAAS,EACrBA,EAAY,KAAK0B,CAAI,CACtB,EACD,MAAS,aAAaF,EAAiBpkB,EAAMyK,CAAK,EAAI,iBAAmB,EAAE,IAAIkU,EAAmB3e,EAAMyK,CAAK,EAAI,gBAAkB,EAAE,GACrI,IAAOA,EAAQ8X,CAChB,EAAE,CAAC5K,GAAW3X,CAAI,CAAC,CAAC,CAAC,EAChBukB,EAAqB,IAAMvzB,EAAa,MAAO,CACnD,MAAS,YACT,MAAS,CACP,QAASjB,EAAM,KAAO,OAAS,MAChC,CACP,EAAO,CAACiB,EAAa,MAAO,CACtB,MAAS,YACf,EAAO,CAAC8xB,EAAU,MAAM,IAAI,CAAC9iB,EAAMyK,IAAUzZ,EAAa,MAAO,CAC3D,MAAS,eACT,IAAQszB,GAAS,CACf3B,EAAe,KAAK2B,CAAI,CACzB,EACD,IAAO7Z,EACP,aAAgBgZ,EAChB,YAAgBpyB,GAAM6yB,EAAc7yB,EAAGoZ,CAAK,EAC5C,WAAepZ,GAAMsyB,EAAatyB,EAAGoZ,CAAK,CAChD,EAAO,CAAC4Z,EAAerkB,EAAMyK,CAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,MAAO,IAAM8Z,EAAkB,CAChC,CACH,CAAC,EClMD,MAAMC,GAA+B,CACnC,eAAgB,CACd,KAAM,CAAC,QAAS,MAAM,EACtB,QAAS,IAAM,EAChB,EACD,aAAc7O,GAAe,CAC/B,EACA,IAAIM,GAAgBnmB,EAAgB,CAClC,KAAM,0BACN,MAAO00B,GACP,MAAO,CAAC,cAAe,aAAc,YAAa,UAAU,EAC5D,MAAMz0B,EAAO,CACX,KAAAS,EACA,MAAA4F,CACJ,EAAK,CACD,MAAMquB,EAAe5pB,IACf6hB,EAAiB7hB,EAAI,CAAC,EACtB8hB,EAAqB9hB,EAAI,EAAG,EAC5B+hB,EAAQ/hB,EAAI,CAChB,EAAG,EACH,EAAG,CACT,CAAK,EACKgiB,EAAahiB,EAAI,EAAK,EACtBoiB,EAAsBpiB,EAAI,CAAC,EAC3BqiB,EAAsBriB,EAAI,CAAC,EAC3BsiB,EAAYtiB,EAAI,CAAC,EACjBumB,EAAeC,GAQZ,CAPW,CAChB,GAAI,CAAC,GAAM,KAAM,UAAU,EAC3B,KAAM,CAAC,GAAM,OAAQ,UAAU,EAC/B,KAAM,CAAC,GAAM,OAAQ,YAAY,EACjC,MAAO,CAAC,GAAM,QAAS,YAAY,CAC3C,EACyCA,CAAI,EACd,KAAMrhB,GAASA,IAASjQ,EAAM,cAAc,EAEjEuxB,EAA6B,IAAM,CACvC1E,EAAM,MAAM,EAAI,GAAK,CAACwE,EAAY,MAAM,IAAMxE,EAAM,MAAM,EAAI,GAC9DA,EAAM,MAAM,EAAI,GAAK,CAACwE,EAAY,OAAO,IAAMxE,EAAM,MAAM,EAAI,GAC/DA,EAAM,MAAM,EAAI,GAAK,CAACwE,EAAY,IAAI,IAAMxE,EAAM,MAAM,EAAI,GAC5DA,EAAM,MAAM,EAAI,GAAK,CAACwE,EAAY,MAAM,IAAMxE,EAAM,MAAM,EAAI,EACpE,EACU6E,EAAc7wB,GAAU,CAC5BJ,EAAK,aAAcI,CAAK,EACxBqsB,EAAoB,MAAQrsB,EAAM,QAAQ,CAAC,EAAE,QAC7CssB,EAAoB,MAAQtsB,EAAM,QAAQ,CAAC,EAAE,QAC7CgsB,EAAM,MAAQ,CACZ,EAAG,EACH,EAAG,CACX,EACMC,EAAW,MAAQ,EACzB,EACU6E,EAAa9wB,GAAU,CAC3BJ,EAAK,YAAaI,CAAK,EACnBA,EAAM,YACRA,EAAM,eAAc,EACtBA,EAAM,gBAAe,EACrB,MAAM+wB,EAAQ/wB,EAAM,QAAQ,CAAC,EAAE,QAAUqsB,EAAoB,MACvD2E,EAAQhxB,EAAM,QAAQ,CAAC,EAAE,QAAUssB,EAAoB,MACzD,KAAK,IAAIyE,CAAK,EAAI,KAAK,IAAIC,CAAK,EAClChF,EAAM,MAAQ,CACZ,EAAG+E,EAAQvG,GAAQqJ,CAAY,EAAE,MACjC,EAAG,CACb,EAEQ7H,EAAM,MAAQ,CACZ,EAAG,EACH,EAAGgF,EAAQxG,GAAQqJ,CAAY,EAAE,MAC3C,EAEMnD,GACN,EACUO,EAAYxwB,GAAM,CACtBb,EAAK,WAAYa,CAAC,EAClBwrB,EAAW,MAAQ,GACf,KAAK,IAAID,EAAM,MAAM,CAAC,EAAI,KAAK,IAAIA,EAAM,MAAM,CAAC,GAAK,KAAK,IAAIA,EAAM,MAAM,CAAC,EAAI,KAC7EA,EAAM,MAAM,EAAI,GAClBpsB,EAAK,cAAe,OAAO,EAC3BksB,EAAe,OAAS,GACfE,EAAM,MAAM,EAAI,IACzBpsB,EAAK,cAAe,MAAM,EAC1BksB,EAAe,OAAS,IAGxB,KAAK,IAAIE,EAAM,MAAM,CAAC,EAAI,KAAK,IAAIA,EAAM,MAAM,CAAC,GAAK,KAAK,IAAIA,EAAM,MAAM,EAAIxB,GAAQqJ,CAAY,EAAE,MAAM,EAAI,GAC5G7H,EAAM,MAAM,EAAI,EAClBpsB,EAAK,cAAe,MAAM,EACjBosB,EAAM,MAAM,EAAI,GACzBpsB,EAAK,cAAe,IAAI,EAG1BosB,EAAM,MAAQ,CACZ,EAAG,EACH,EAAG,CACb,CAEA,EACU8H,EAAiB,IAAM30B,EAAM,aAAa,IAAI,CAACiQ,EAAMrG,IAAM,CAC/D,IAAI1G,EACJ,OAAOjC,EAAa,KAAM,CACxB,MAAS,oBACT,IAAO2I,EACP,MAAS,CACP,UAAW,gBAAgBA,EAAI,EAAI+iB,EAAe,OAASG,EAAW,MAAQD,EAAM,MAAM,EAAI,IAAM,GAAG,MAAMO,EAAU,KAAK,SAC5H,mBAAoB,GAAGN,EAAW,MAAQ,EAAIF,EAAmB,KAAK,GACvE,CACF,EAAE,EAAE1pB,EAAKmD,EAAM,UAAY,KAAO,OAASnD,EAAG,KAAKmD,EAAO4J,CAAI,CAAC,CAAC,CACvE,CAAK,EACK2kB,EAAkB,IAAM3zB,EAAa,KAAM,CAC/C,MAAS,oBACT,IAAO,eACP,MAAS,CACP,UAAW,eAAe,CAAC0rB,EAAe,MAAQ,GAAG,UACtD,EACD,aAAgB+E,EAChB,YAAeC,EACf,WAAcG,CACpB,EAAO,CAAC6C,EAAgB,CAAA,CAAC,EACrB,MAAO,IAAMC,EAAe,CAC7B,CACH,CAAC,EC5HGhmB,GAAY,OAAO,eACnByX,GAAa,OAAO,iBACpBC,GAAoB,OAAO,0BAC3BC,GAAsB,OAAO,sBAC7BC,GAAe,OAAO,UAAU,eAChCC,GAAe,OAAO,UAAU,qBAChC5X,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJikB,GAAiB,CAAC9hB,EAAGC,IAAM,CAC7B,QAAS8hB,KAAQ9hB,IAAMA,EAAI,CAAA,GACrB2hB,GAAa,KAAK3hB,EAAG8hB,CAAI,GAC3B9X,GAAgBjK,EAAG+hB,EAAM9hB,EAAE8hB,CAAI,CAAC,EACpC,GAAIJ,GACF,QAASI,KAAQJ,GAAoB1hB,CAAC,EAChC4hB,GAAa,KAAK5hB,EAAG8hB,CAAI,GAC3B9X,GAAgBjK,EAAG+hB,EAAM9hB,EAAE8hB,CAAI,CAAC,EAEtC,OAAO/hB,CACT,EACIgiB,GAAgB,CAAChiB,EAAGC,IAAMwhB,GAAWzhB,EAAG0hB,GAAkBzhB,CAAC,CAAC,EAMhE,MAAMgwB,GAAyB,CAC7B,QAAS7O,GAAa,IAAI,EAC1B,QAASA,GAAa,IAAI,EAC1B,aAAc,CACZ,KAAM,SACN,QAAS,IAAM,EAChB,EACD,oBAAqBD,GAAe,EAAE,EACtC,4BAA6BA,GAAe,EAAE,EAC9C,kBAAmBA,GAAe,EAAE,EACpC,KAAMA,GAAe,MAAM,EAC3B,sBAAuBF,GAAe,CAAC,EACvC,eAAgB,CACd,KAAM,CAAC,QAAS,MAAM,EACtB,QAAS,IAAM,EAChB,EACD,iBAAkB,CAChB,KAAM,OACN,QAAS,KAAO,CAAA,EACjB,EACD,KAAME,GAAe,IAAI,CAC3B,EACA,IAAIG,GAAgBnmB,EAAgB,CAClC,KAAM,oBACN,MAAO80B,GACP,MAAO,CAAC,QAAS,cAAe,aAAc,YAAa,UAAU,EACrE,MAAM70B,EAAO,CACX,KAAAS,CACJ,EAAK,CACD,MAAMymB,EAAWpc,EAAI,CAAA,CAAE,EACjBgqB,EAAYhqB,EAAI,EAAE,EAClBiqB,EAAsBjqB,EAAI,EAAK,EAC/BkqB,EAAgBlqB,EAAI,CAAA,CAAE,EACtBkc,EAAOhnB,EAAM,KAAK,YAAW,EACnCknB,EAAS,MAAQ2G,GAAa7G,CAAI,EAClC,MAAMiO,EAAajzB,EAAS,IAAMhC,EAAM,sBAAwB,CAAC,EAC3Dk1B,EAAY9N,GAAS,CACzB,MAAM+N,EAAU,CAAA,EACVC,EAAW,GAAGhO,GAAQpnB,EAAM,iBAAiB,IAAI,GACjDq1B,EAAY,SAASD,EAAS,UAAU,EAAG,CAAC,EAAI,IAAK,EAAE,EAC7D,QAASxrB,EAAI,EAAGA,GAAKkrB,EAAU,MAAOlrB,IACpCurB,EAAQ,KAAKE,EAAYzrB,CAAC,EAE5B,OAAAurB,EAAQ,QAAQE,EAAY,CAAC,EACtBF,CACb,EACUG,EAAiBlO,GAAS,CAC9B,MAAMmO,EAAe,CAAA,EACfH,EAAW,GAAGhO,GAAQpnB,EAAM,iBAAiB,IAAI,GACjDq1B,EAAY,SAASD,EAAS,UAAU,EAAG,CAAC,EAAI,KAAM,EAAE,EAC9D,QAASxrB,EAAI,EAAGA,GAAKkrB,EAAU,MAAOlrB,IACpC2rB,EAAa,KAAK,CAChB,EAAGF,EAAYzrB,EAAI,GACnB,EAAGyrB,EAAYzrB,EAAI,GAAK,CAClC,CAAS,EAEH,OAAA2rB,EAAa,QAAQ,CACnB,EAAGF,EAAY,GACf,EAAGA,EAAY,CACvB,CAAO,EACME,CACb,EACUC,EAAkB,CAACpO,EAAOpnB,EAAM,iBAAiB,OAAS,CAE9D,MAAMq1B,GADUjO,EAAO,IACG,UAAU,EAAG,CAAC,EAClCqO,EAAgB,SAAS,SAASJ,EAAW,EAAE,EAAI,EAAI,IAAK,EAAE,EAC9DK,EAAgB,SAASL,EAAY,IAAK,EAAE,EAC5CM,EAAgB,SAAS,SAASN,EAAW,EAAE,EAAI,EAAI,IAAK,EAAE,EACpE,MAAO,CAACH,EAASO,CAAa,EAAGP,EAASQ,CAAa,EAAGR,EAASS,CAAa,CAAC,CACvF,EACUC,EAAuB,CAACxO,EAAOpnB,EAAM,iBAAiB,OAAS,CAEnE,MAAMq1B,GADUjO,EAAO,IACG,UAAU,EAAG,CAAC,EAClCqO,EAAgB,SAAS,SAASJ,EAAW,EAAE,EAAI,EAAI,KAAM,EAAE,EAC/DK,EAAgB,SAASL,EAAY,KAAM,EAAE,EAC7CM,EAAgB,SAAS,SAASN,EAAW,EAAE,EAAI,EAAI,KAAM,EAAE,EACrE,MAAO,CAACC,EAAcG,CAAa,EAAGH,EAAcI,CAAa,EAAGJ,EAAcK,CAAa,CAAC,CACtG,EACUE,EAAoB,IAAM,CAC9B,GAAI71B,EAAM,OAAS,OAAQ,CACzB,MAAMonB,EAAO4N,EAAc,MAAM,CAAC,EAAE,CAAC,EACrCA,EAAc,MAAQQ,EAAgBpO,CAAI,CAClD,SAAiBpnB,EAAM,OAAS,YAAa,CAErC,MAAMonB,EADQ4N,EAAc,MAAM,CAAC,EAAE,CAAC,EACnB,EACnBA,EAAc,MAAQY,EAAqBxO,CAAI,CAChD,CACP,EACU0O,EAAoB,IAAM,CAC9B,GAAI91B,EAAM,OAAS,OAAQ,CACzB,MAAMonB,EAAO4N,EAAc,MAAM,CAAC,EAAE,CAAC,EACrCA,EAAc,MAAQQ,EAAgBpO,CAAI,CAClD,SAAiBpnB,EAAM,OAAS,YAAa,CAErC,MAAMonB,EADQ4N,EAAc,MAAM,CAAC,EAAE,CAAC,EACnB,EACnBA,EAAc,MAAQY,EAAqBxO,CAAI,CAChD,CACP,EACU2O,EAAe/E,GAAU,CACzBA,IAAU,OACZ6E,IACS7E,IAAU,SACnB8E,IAEFr1B,EAAK,cAAeuwB,CAAK,CAC/B,EACUgF,EAAgB7O,GAAS,CAC7B,MAAMkO,EAAYlO,EAAK,EACjB8O,EAAU9O,EAAK,EACfgO,EAAU,CAAA,EAChB,QAASvrB,EAAIyrB,EAAWzrB,GAAKqsB,EAASrsB,IACpCurB,EAAQ,KAAKvrB,CAAC,EAEhB,OAAOurB,CACb,EACUe,EAAa,CAAC/O,EAAMzM,IAAU,CAClC,IAAImU,EAAQ,IAAI,KAChB,GAAI7uB,EAAM,OAAS,QACjB6uB,EAAQ,IAAI,KAAK,GAAG7uB,EAAM,iBAAiB,IAAI,IAAI0a,EAAQ,CAAC,KAAK,UACxD1a,EAAM,OAAS,OACxB6uB,EAAQ,IAAI,KAAK,GAAG1H,CAAI,IAAInnB,EAAM,iBAAiB,MAAQ,CAAC,KAAK,UACxDA,EAAM,OAAS,YAExB,OADgBg2B,EAAa7O,CAAI,EAClB,MAAOC,IACpByH,EAAQ,IAAI,KAAK,GAAGzH,CAAI,IAAIpnB,EAAM,iBAAiB,MAAQ,CAAC,KAAK,EAC1DA,EAAM,aAAa6uB,CAAK,GAAK,CAACvE,GAAcuE,EAAO7uB,EAAM,QAASA,EAAM,OAAO,EACvF,EAEH,OAAOA,EAAM,aAAa6uB,CAAK,GAAK,CAACvE,GAAcuE,EAAO7uB,EAAM,QAASA,EAAM,OAAO,CAC5F,EACUm2B,EAAY,CAAChP,EAAMzM,IAAU,CAGjC,GAFI,CAACyM,GAED+O,EAAW/O,EAAMzM,CAAK,EACxB,OACF,IAAI+R,EAAc/F,GAAe,CAAE,EAAE1mB,EAAM,gBAAgB,EAW3D,GAVIA,EAAM,OAAS,UACjBysB,EAAc7F,GAAcF,GAAe,CAAE,EAAE+F,CAAW,EAAG,CAC3D,MAAO/R,CACjB,CAAS,GAEC1a,EAAM,OAAS,SACjBysB,EAAc7F,GAAcF,GAAe,CAAE,EAAE+F,CAAW,EAAG,CAC3D,KAAMtF,CAChB,CAAS,GAECnnB,EAAM,OAAS,YAAa,CAC9B,MAAMm1B,EAAUa,EAAa7O,CAAI,EACjCsF,EAAc7F,GAAcF,GAAe,CAAE,EAAE+F,CAAW,EAAG,CAC3D,KAAM0I,EAAQ,SAAS1I,EAAY,IAAI,EAAIA,EAAY,KAAOtF,EAAK,CAC7E,CAAS,CACF,CACD1mB,EAAK,QAASgsB,EAAazsB,EAAM,IAAI,CAC3C,EACUo2B,EAAY,CAACjP,EAAMzM,IAAU,CACjC,GAAI1a,EAAM,OAAS,QACjB,OAAO0a,IAAU1a,EAAM,iBAAiB,MAE1C,GAAIA,EAAM,OAAS,OACjB,OAAOmnB,IAASnnB,EAAM,iBAAiB,KAEzC,GAAIA,EAAM,OAAS,YACjB,OAAOmnB,EAAK,GAAKnnB,EAAM,iBAAiB,MAAQmnB,EAAK,GAAKnnB,EAAM,iBAAiB,IAEzF,EACUq2B,EAAgB3b,IAAWA,IAAU,GAAKA,IAAU,MAAQ1a,EAAM,OAAS,QAAUA,EAAM,OAAS,aACpG0xB,EAAc7wB,GAAU,CAC5BJ,EAAK,aAAcI,CAAK,CAC9B,EACU8wB,EAAa9wB,GAAU,CAC3BJ,EAAK,YAAaI,CAAK,CAC7B,EACUixB,EAAYjxB,GAAU,CAC1BJ,EAAK,WAAYI,CAAK,CAC5B,EACIuH,EAAM,IAAMpI,EAAM,KAAOsF,GAAQ,CAC/ByvB,EAAoB,MAAQ/0B,EAAM,eAC9BsF,IAAQ,SAAWA,IAAQ,QAC7ByvB,EAAoB,MAAQ,GAC5BC,EAAc,MAAQ,CAAC9N,EAAS,MAAM,MAAOA,EAAS,MAAM,MAAOA,EAAS,MAAM,KAAK,GAC9E5hB,IAAQ,OACjB0vB,EAAc,MAAQQ,IACblwB,IAAQ,cACjB0vB,EAAc,MAAQY,IAE9B,CAAK,EACD,MAAMU,EAAuBC,GAAQA,EAAI,IAAI,CAACtmB,EAAMyK,IAAUzZ,EAAa,MAAO,CAChF,MAAS,kBAAkBi1B,EAAWjmB,EAAMyK,CAAK,EAAI1a,EAAM,mBAAqB,cAAgB,EAAE,GAClG,MAAS,CACP,OAAQi1B,EAAW,MAAQ,IAC5B,EACD,IAAOva,EACP,QAAW,IAAMyb,EAAUlmB,EAAMyK,CAAK,CAC5C,EAAO,CAACzZ,EAAa,IAAK,CACpB,MAAS,0BAA0Bm1B,EAAUnmB,EAAMyK,CAAK,EAAI1a,EAAM,qBAAuB,aAAe,EAAE,IAAIq2B,EAAa3b,CAAK,EAAI1a,EAAM,6BAA+B,iBAAmB,EAAE,GAC9L,MAAS,CACP,MAAOA,EAAM,OAAS,YAAc,OAAS,MAC9C,CACP,EAAO,CAACA,EAAM,OAAS,YAAc,GAAGiQ,EAAK,CAAC,IAAIA,EAAK,CAAC,GAAKjQ,EAAM,OAAS,QAAUknB,EAAS,MAAM,MAAMxM,CAAK,EAAIzK,CAAI,CAAC,CAAC,CAAC,CAAC,EAClHumB,EAAkB,IAAMv1B,EAAa,MAAO,CAChD,MAAS,YACT,MAAS,CACP,OAAQg0B,EAAW,MAAQ,EAAI,KAC/B,QAAS,CAAC,OAAQ,YAAa,OAAO,EAAE,SAASj1B,EAAM,IAAI,EAAI,QAAU,MAC1E,CACP,EAAO,CAACiB,EAAaw1B,GAAyB,CACxC,aAAgBzB,EAAc,MAC9B,eAAkBD,EAAoB,MACtC,aAAgBrD,EAChB,YAAeC,EACf,WAAcG,EACd,cAAiBiE,CAClB,EAAGtmB,GAAS6mB,EAAoB7mB,CAAI,CAAC,CAAC,CAAC,EACxC,MAAO,IAAM+mB,EAAe,CAC7B,CACH,CAAC,EC/OG5nB,GAAY,OAAO,eACnByX,GAAa,OAAO,iBACpBC,GAAoB,OAAO,0BAC3BC,GAAsB,OAAO,sBAC7BC,GAAe,OAAO,UAAU,eAChCC,GAAe,OAAO,UAAU,qBAChC5X,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJikB,GAAiB,CAAC9hB,EAAGC,IAAM,CAC7B,QAAS8hB,KAAQ9hB,IAAMA,EAAI,CAAA,GACrB2hB,GAAa,KAAK3hB,EAAG8hB,CAAI,GAC3B9X,GAAgBjK,EAAG+hB,EAAM9hB,EAAE8hB,CAAI,CAAC,EACpC,GAAIJ,GACF,QAASI,KAAQJ,GAAoB1hB,CAAC,EAChC4hB,GAAa,KAAK5hB,EAAG8hB,CAAI,GAC3B9X,GAAgBjK,EAAG+hB,EAAM9hB,EAAE8hB,CAAI,CAAC,EAEtC,OAAO/hB,CACT,EACIgiB,GAAgB,CAAChiB,EAAGC,IAAMwhB,GAAWzhB,EAAG0hB,GAAkBzhB,CAAC,CAAC,EAUhE,MAAM6xB,GAAgB,CACpB,WAAY,CACV,KAAM,OACN,QAAS,KAAO,CAAA,EACjB,EACD,eAAgB,QAChB,UAAW,QACX,aAAc,QACd,QAAS,QACT,iBAAkB,QAClB,WAAY/Q,GACZ,WAAYI,GAAe,UAAU,EACrC,WAAYA,GAAe,QAAQ,EACnC,iBAAkB,CAChB,KAAM,OACN,QAAS,CAAE,CACZ,EACD,aAAc,QACd,gBAAiBJ,GACjB,gBAAiB,CAAC,KAAM,KAAK,EAC7B,QAASK,GAAa,IAAI,EAC1B,QAASA,GAAa,IAAI,EAC1B,SAAUH,GAAe,CAAC,EAC1B,OAAQE,GAAe,EAAE,EACzB,MAAOA,GAAe,QAAQ,EAC9B,SAAUA,GAAe,KAAK,EAC9B,SAAUH,GAAe,EACzB,aAAc,CACZ,KAAM,SACN,QAAS,IAAM,EAChB,EACD,aAAc,CACZ,KAAM,SACN,QAAS,IAAM,EAChB,EACD,KAAMG,GAAe,IAAI,EACzB,iBAAkBJ,GAClB,WAAYE,GAAe,CAAC,EAC5B,UAAWE,GAAe,QAAQ,EAClC,eAAgB,CACd,KAAM,CAAC,QAAS,MAAM,EACtB,QAAS,IAAM,EAChB,EACD,uBAAwBJ,GACxB,yBAA0BI,GAAe,EAAE,EAC3C,eAAgBA,GAAe,EAAE,EACjC,oBAAqBA,GAAe,EAAE,EACtC,4BAA6BA,GAAe,EAAE,EAC9C,kBAAmBA,GAAe,EAAE,CACtC,EACA,IAAIG,GAAgBnmB,EAAgB,CAClC,KAAM,kBACN,MAAO22B,GACP,MAAO,CAAC,iBAAkB,sBAAuB,qBAAsB,QAAS,UAAW,SAAU,YAAa,cAAe,aAAc,YAAa,UAAU,EACtK,MAAM12B,EAAO,CACX,KAAAS,EACA,MAAA4F,CACJ,EAAK,CACD,MAAMslB,EAAc7gB,IACd6rB,EAAiB7rB,EAAI,EAAI,EACzBgjB,EAAahjB,EAAI9K,EAAM,YAAY,EACnC42B,EAAqB9rB,EAAI,CAAC,EAC1B+rB,EAAa/rB,EAAI,EAAI,EACrB8iB,EAAmB9iB,EAAI,CAC3B,KAAM,IAAI,KAAM,EAAC,YAAa,EAC9B,MAAO,IAAI,KAAM,EAAC,SAAU,CAClC,CAAK,EACKgsB,EAAiB,CAAC3P,EAAMqD,EAAUxqB,EAAM,QAASyqB,EAAUzqB,EAAM,UACjEwqB,GAAWtB,GAAWf,GAAwBhB,CAAI,EAAGgB,GAAwBqC,CAAO,CAAC,IAAM,GACtFA,EAELC,GAAWvB,GAAWf,GAAwBhB,CAAI,EAAGgB,GAAwBsC,CAAO,CAAC,IAAM,EACtFA,EAEFtD,EAEH4P,EAAqB,CAACC,EAAkBh3B,EAAM,kBAAoB,CACtE,KAAM,CACJ,WAAAswB,EACA,QAAA9F,EACA,QAAAC,EACA,aAAAwM,CACD,EAAGj3B,EACJ,GAAIg3B,IAAoB,KACtB,OAAOA,EACT,MAAME,EAAUtN,KACVuN,GAAc,IAAI,KACxB,GAAI7G,IAAe,QAAS,CACrB,MAAM,QAAQ0G,CAAe,IAChCA,EAAkB,CAAA,GAEpB,MAAM7M,GAAQ2M,EAAeE,EAAgB,CAAC,GAAKE,EAAS1M,EAASyM,EAAexM,EAAUhB,GAAWtB,GAAwBsC,CAAO,CAAC,CAAC,EACpIL,EAAM0M,EAAeE,EAAgB,CAAC,GAAKE,EAASD,EAAezM,EAAUb,GAAWxB,GAAwBqC,CAAO,CAAC,CAAC,EAC/H,MAAO,CAACL,GAAOC,CAAG,CACnB,CACD,OAAIkG,IAAe,WACb,MAAM,QAAQ0G,CAAe,EACxBA,EAAgB,IAAK7P,IAAS2P,EAAe3P,EAAI,CAAC,EAEpD,CAAC2P,EAAeI,CAAO,CAAC,IAE7B,CAACF,GAAmB,MAAM,QAAQA,CAAe,KACnDA,EAAkBG,IAEbL,EAAeE,CAAe,EAC3C,EACUI,EAAetsB,EAAIisB,EAAkB,CAAE,EACvCtK,EAAc3hB,EAAI,CAACsd,GAAsB,IAAI,IAAM,CAAC,CAAC,EACrDiP,EAAgBvsB,EAAI,MAAM,EAC1BwsB,EAAuBt1B,EAAS,CACpC,KAAM,CACJ,OAAOhC,EAAM,QAAU,SAAW,GAAOA,EAAM,OAChD,EACD,IAAIsF,EAAK,CACP7E,EAAK,iBAAkB6E,CAAG,CAC3B,CACP,CAAK,EACKiyB,EAAiBv1B,EAAS,IAAMhC,EAAM,WAAaA,EAAM,QAAU,QAAQ,EAC3Ew3B,EAAwBx1B,EAAS,IACjChC,EAAM,aAAe,OAChB,IAEF42B,EAAmB,KAC3B,EACKb,EAAe0B,GAAc,CACjCh3B,EAAK,cAAeg3B,CAAS,CACnC,EACUC,EAAa,IAAM,CACvB5J,EAAW,MAAQ,CAACA,EAAW,MAC3BA,EAAW,MACbiI,EAAY,IAAI,EAEhBA,EAAY,MAAM,CAC1B,EACUlM,EAAQ,IAAM,CAClB,IAAI3mB,EACAlD,EAAM,aAAa,IAAI,IAAM,IAEhCkD,EAAKyoB,EAAY,QAAU,MAAgBzoB,EAAG,OACrD,EACUy0B,EAAQ,CAACxQ,EAAO4P,MAAyB,CAC7CK,EAAa,MAAQjQ,CAC3B,EACUmF,EAAY,IAAM,CACtB,IAAIppB,GACHA,EAAKyoB,EAAY,QAAU,MAAgBzoB,EAAG,cACrD,EACUspB,EAAY,IAAM,CACtB,IAAItpB,GACHA,EAAKyoB,EAAY,QAAU,MAAgBzoB,EAAG,cACrD,EACUoqB,EAAW,IAAM,CACrB,IAAIpqB,EAAIE,GACPF,EAAKyoB,EAAY,QAAU,MAAgBzoB,EAAG,gBAC9CE,EAAKuoB,EAAY,QAAU,MAAgBvoB,EAAG,eAAe,CAC5D,OAAQ,EAChB,CAAO,CACP,EACUmqB,EAAW,IAAM,CACrB,IAAIrqB,EAAIE,GACPF,EAAKyoB,EAAY,QAAU,MAAgBzoB,EAAG,gBAC9CE,EAAKuoB,EAAY,QAAU,MAAgBvoB,EAAG,eAAe,CAC5D,OAAQ,EAChB,CAAO,CACP,EACUw0B,EAAczQ,GAAS,CACvBnnB,EAAM,aAAe,SACvBysB,EAAY,MAAQ,CAAC/F,GAAeA,GAAe,CAAA,EAAI+F,EAAY,MAAM,CAAC,CAAC,EAAGtF,EAAK,CAAC,CAAC,CAAC,EAEtFsF,EAAY,MAAQtF,CAE5B,EACUgP,EAAahP,GAAS,CAC1B,GAAI,CAACA,EAAK,IACR,OACF,IAAI0H,EACJ,GAAI7uB,EAAM,aAAe,SAAU,CACjC,MAAMiwB,EAAUxD,EAAY,MAAM,CAAC,EACnCtF,EAAK,QAAU8I,EAAQ,QACvB9I,EAAK,MAAQ8I,EAAQ,MACrBpB,EAAQvG,GAAsBnB,CAAI,CAC1C,MACQ0H,EAAQxG,GAAuBlB,CAAI,EAErCiQ,EAAa,MAAQ,IAAI,KAAKvI,CAAK,EAC/B7uB,EAAM,SACR6uB,EAAQhI,GAAWgI,EAAO7uB,EAAM,OAAQA,EAAM,IAAI,GAEpDS,EAAK,QAASouB,CAAK,CACzB,EACUgJ,EAAiB,CAAC1Q,EAAMjnB,IAAS,CACrC,GAAIA,EAAM,CACR,OAAQA,EAAI,CACV,IAAK,YACHm3B,EAAc,MAAQ,OACtB,MACF,IAAK,OACHA,EAAc,MAAQ,QACtB,MACF,IAAK,QACHA,EAAc,MAAQ,OACtB,KACH,CACD52B,EAAK,qBAAsB42B,EAAc,KAAK,CAC/C,CAMD,GALAzJ,EAAiB,MAAQ,CACvB,KAAMzG,EAAK,KACX,MAAOA,EAAK,KACpB,EACMgP,EAAUhP,CAAI,EACVnnB,EAAM,aAAe,SAAU,CACjC,KAAM,CACJ,IAAAsnB,EACA,MAAAkB,EACA,QAAAD,CACV,EAAYkE,EAAY,MAAM,CAAC,EACvB,IAAIqL,EAAWxP,GAAsB1B,GAAcF,GAAe,GAAIkH,EAAiB,KAAK,EAAG,CAC7F,IAAAtG,EACA,MAAAkB,EACA,QAAAD,CACD,CAAA,CAAC,EACEvoB,EAAM,SACR83B,EAAWjR,GAAWiR,EAAU93B,EAAM,OAAQA,EAAM,IAAI,GAE1DS,EAAK,SAAUq3B,CAAQ,CACxB,CACP,EACUC,EAAc5Q,GAAS,CAC3B,KAAM,CACJ,QAAAoB,EACA,MAAAC,CACD,EAAGrB,EACE8I,EAAUxD,EAAY,MAAM,CAAC,EACnCA,EAAY,MAAQ,CAAC7F,GAAcF,GAAe,CAAA,EAAIuJ,CAAO,EAAG,CAC9D,QAAA1H,EACA,MAAAC,CACD,CAAA,CAAC,CACR,EACUwP,EAAQ,IAAM,CAClBV,EAAqB,MAAQ,EACnC,EACUW,EAAe,IAAM,CACzB,MAAMhO,EAAUwC,EAAY,MAAM,IAAKxc,GAAS,CAC9C,IAAIkX,EAAOkB,GAAuBpY,CAAI,EAItC,OAHIjQ,EAAM,aAAe,WACvBmnB,EAAOmB,GAAsBrY,CAAI,GAE/BjQ,EAAM,OACD6mB,GAAWM,EAAMnnB,EAAM,OAAQA,EAAM,IAAI,EAE3CmnB,CACf,CAAO,EACD,OAAInnB,EAAM,aAAe,SAChBiqB,EAAQ,CAAC,EAEXA,CACb,EACUiO,GAAU,IAAM,CACpBz3B,EAAK,UAAWw3B,EAAY,CAAE,EAC1Bj4B,EAAM,QAAU,UAClBg4B,GAER,EACUG,GAAiB,CAACrR,EAAMC,IAAWF,GAAWC,EAAMC,EAAQ/mB,EAAM,IAAI,EACtEo4B,GAAsB,IAAM,CAC3Bp4B,EAAM,iBAEPq3B,EAAc,QAAU,OAC1BA,EAAc,MAAQ,QACbA,EAAc,QAAU,QACjCA,EAAc,MAAQ,OACbA,EAAc,QAAU,OACjCA,EAAc,MAAQ,YAEtBA,EAAc,MAAQ,OAExB52B,EAAK,qBAAsB42B,EAAc,KAAK,EACpD,EACUgB,GAAe,IAAM,CACrB1B,EAAe,MACjByB,KAEA33B,EAAK,qBAAsB,MAAM,EAEnCk2B,EAAe,MAAQ,EAC7B,EACU2B,GAAW,IAAM,CACrB3B,EAAe,MAAQ,GACvBl2B,EAAK,qBAAsB,MAAM,EACjC42B,EAAc,MAAQ,MAC5B,EACUkB,GAAgBhV,GAAW,CAC3B,CAACsT,EAAW,OAAS72B,EAAM,QAAU,WAEzC42B,EAAmB,MAAQrT,EAC3BsT,EAAW,MAAQ,GACzB,EACU2B,GAAgB,IAAM,CAC1B,MAAMC,EAAS,CAAA,EACf,GAAIz4B,EAAM,WAAY,CACpB,MAAM04B,EAAiB,OAAO,KAAK14B,EAAM,YAAc,CAAA,CAAE,EACrD04B,EAAe,QACjBA,EAAe,QAASC,GAAM,CAC5BF,EAAO,mBAAmBE,CAAC,EAAE,EAAI34B,EAAM,WAAW24B,CAAC,CAC/D,CAAW,CAEJ,CACD,OAAOF,CACb,EACU/G,GAAc7wB,GAAU,CAC5BJ,EAAK,aAAcI,CAAK,CAC9B,EACU8wB,GAAa9wB,GAAU,CAC3BJ,EAAK,YAAaI,CAAK,CAC7B,EACUixB,GAAYjxB,GAAU,CAC1BJ,EAAK,WAAYI,CAAK,CAC5B,EACIuH,EAAMqkB,EAAa,IAAM,CACvB,MAAMqL,EAAWG,IACbj4B,EAAM,aAAe,SAAW,MAAM,QAAQ83B,CAAQ,GAAKA,EAAS,SAAW,GAGnFr3B,EAAK,SAAUq3B,CAAQ,CAC7B,EAAO,CACD,KAAM,EACZ,CAAK,EACD1vB,EAAM,IAAMpI,EAAM,aAAesF,GAAQ,CACvCwoB,EAAW,MAAQxoB,CACzB,CAAK,EACD8C,EAAM,IAAM,CAACpI,EAAM,WAAYA,EAAM,QAASA,EAAM,OAAO,EAAG,IAAM,CAC9DA,EAAM,aAAe,SACvB23B,EAAMZ,EAAkB,CAAE,EAE1BY,EAAMZ,EAAmBK,EAAa,KAAK,CAAC,CAEpD,CAAK,EACDvM,GAAU,CACR,MAAAhB,EACA,MAAA8N,EACA,UAAArL,EACA,UAAAE,EACA,SAAAc,EACA,SAAAC,CACN,CAAK,EA6BDxC,GA5Ba,IAAM,CACjB,MAAM5D,EAAOiQ,EAAa,MAC1B,GAAI,CAACjQ,EACHsF,EAAY,MAAQ,WACXtF,aAAgB,KACzByG,EAAiB,MAAQ,CACvB,KAAMzG,EAAK,YAAa,EACxB,MAAOA,EAAK,SAAU,CAChC,EACQsF,EAAY,MAAQ,CAACrE,GAAsBjB,CAAI,CAAC,UACvC,MAAM,QAAQA,CAAI,EAC3B,GAAInnB,EAAM,aAAe,QAAS,CAChC,MAAMiqB,EAAUF,GAAc,CAACnD,GAAcF,GAAe,GAAI0B,GAAsBjB,EAAK,CAAC,CAAC,CAAC,EAAG,CAC/F,KAAM,OAClB,CAAW,EAAGP,GAAcF,GAAe,CAAE,EAAE0B,GAAsBjB,EAAK,CAAC,CAAC,CAAC,EAAG,CACpE,KAAM,KACP,CAAA,CAAC,CAAC,EACHsF,EAAY,MAAQxC,EAAQ,IAAKha,GAASmY,GAAsBC,GAAuBpY,CAAI,CAAC,CAAC,CACvG,MACUwc,EAAY,MAAQtF,EAAK,IAAKlX,GAASmY,GAAsBnY,CAAI,CAAC,EAGlEjQ,EAAM,aAAe,OACvBs4B,KAEA3B,EAAe,MAAQ,EAE/B,CAC8B,EAC1B,MAAMiC,GAAoB,IAAM,CAC9B,IAAIC,EAAWhL,GAAa7tB,EAAM,IAAI,EAAE,MAIxC,GAHIqG,EAAM,QACRwyB,EAAWxyB,EAAM,SAEfrG,EAAM,gBACR,OAAOiB,EAAa,MAAO,CACzB,MAAS,oBAAoBjB,EAAM,aAAa,IAAI,IAAM,EAAI,gBAAkB,EAAE,GAClF,QAAW6pB,CACrB,EAAW,CAACgP,CAAQ,CAAC,CAErB,EACUC,GAAsB,IAAM,CAChC,IAAIC,EAAalL,GAAa7tB,EAAM,IAAI,EAAE,QAI1C,GAHIqG,EAAM,UACR0yB,EAAa1yB,EAAM,WAEjBrG,EAAM,QAAU,SAClB,OAAOiB,EAAa,MAAO,CACzB,MAAS,mBACT,QAAWi3B,EACrB,EAAW,CAACa,CAAU,CAAC,CAEvB,EACUC,GAAe,IAAM,CACzB,IAAIC,EAAW,GACf,KAAM,CACJ,KAAA7R,EACA,MAAAC,CACR,EAAUuG,EAAiB,MACrB,IAAIsL,EAAWf,GAAe,GAAG/Q,CAAI,IAAIC,EAAQ,CAAC,GAAIwG,GAAa7tB,EAAM,IAAI,EAAE,yBAAyB,EACxG,GAAIA,EAAM,aAAe,SAAU,CACjC,KAAM,CACJ,IAAAsnB,EACA,MAAAkB,EACA,QAAAD,EACV,EAAYkE,EAAY,MAAM,CAAC,EACvBwM,EAAWd,GAAe,GAAG/Q,CAAI,IAAIC,EAAQ,CAAC,IAAIC,CAAG,IAAIM,GAAWY,CAAK,CAAC,IAAIZ,GAAWW,EAAO,CAAC,GAAIsF,GAAa7tB,EAAM,IAAI,EAAE,mBAAmB,EACjJk5B,EAAWf,GAAe,GAAG/Q,CAAI,IAAIC,EAAQ,CAAC,IAAIC,CAAG,GAAIuG,GAAa7tB,EAAM,IAAI,EAAE,mBAAmB,CACtG,CACD,OAAIA,EAAM,WACDiB,EAAa,MAAO,CACzB,MAAS,iBACT,QAAYK,GAAM,CACZA,EAAE,YACJA,EAAE,eAAc,EAClBA,EAAE,gBAAe,CAClB,EACD,MAAS,CACP,OAAQtB,EAAM,QAAU,SAAW,GAAGw3B,EAAsB,KAAK,KAAO,OACzE,CACF,EAAE,CAACnxB,EAAM,OAASA,EAAM,OAAM,EAAKpF,EAAak4B,GAAW,KAAM,CAACl4B,EAAa,MAAO,CACrF,MAAS,qBACV,EAAE,CAACjB,EAAM,aAAe,OAASiB,EAAa,OAAQ,CACrD,MAAS,4BAA4B01B,EAAe,MAAQ,6BAA+B,EAAE,GAC7F,QAAW0B,EACZ,EAAE,CAACa,CAAQ,CAAC,EAAI,KAAMl5B,EAAM,aAAe,QAAUA,EAAM,aAAe,SAAWiB,EAAa,OAAQ,CACzG,MAAS,4BAA6B01B,EAAe,MAAuC,GAA/B,4BAAiC,GAC9F,QAAW2B,EACrB,EAAW,CAACW,CAAQ,CAAC,EAAI,IAAI,CAAC,EAAGL,GAAiB,EAAIE,GAAmB,CAAE,CAAC,CAAC,CAAC,EAEjE,IACb,EACUM,GAAsB9zB,GAAQ,CAC9BwoB,EAAW,QAAUxoB,IAErBA,EACF7E,EAAK,qBAAsB,MAAM,EAEjCA,EAAK,qBAAsB,MAAM,EAEnCqtB,EAAW,MAAQxoB,EACzB,EACU+zB,GAAmBC,GAAc,CACrC1L,EAAiB,MAAQ0L,CAC/B,EACUC,EAAiB,IAAMt4B,EAAau4B,GAAcC,GAAY,CAClE,IAAO9N,EACP,KAAQgL,EAAe,MACvB,SAAY4B,GACZ,YAAenB,EAAa,MAC5B,aAAgB1F,GAChB,YAAeC,GACf,WAAcG,GACd,cAAiBiE,EACjB,kBAAqBsD,GACrB,SAAYzB,EACZ,YAAe,IAAMn3B,EAAK,WAAW,EACrC,QAAW01B,EACX,aAAgBrI,EAAW,MAC3B,wBAAyBsL,EAC/B,EAAOpR,GAAKhoB,EAAO,CAAC,UAAW,UAAW,WAAY,mBAAoB,WAAY,aAAc,eAAgB,mBAAoB,WAAY,eAAgB,OAAQ,YAAa,iBAAkB,mBAAoB,yBAA0B,2BAA4B,iBAAkB,sBAAuB,8BAA+B,mBAAmB,CAAC,CAAC,EAAGgoB,GAAK3hB,EAAO,CAAC,OAAQ,KAAK,CAAC,CAAC,EACvYqzB,EAAmB,IAAM,CAC7B,GAAI15B,EAAM,aAAe,YAAcA,EAAM,aAAe,OAC1D,OAAOiB,EAAa04B,GAAcF,GAAY,CAC5C,KAAQ,CAAC9C,EAAe,MACxB,YAAeS,EAAa,MAC5B,aAAgB3K,EAAY,MAAM,CAAC,EACnC,SAAYsL,CACtB,EAAW/P,GAAKhoB,EAAO,CAAC,aAAc,cAAc,CAAC,CAAC,EAAG,IAAI,CAE7D,EACU45B,EAAwB,IAAM34B,EAAa44B,GAAmBJ,GAAY,CAC9E,sBAAyBjC,EAAsB,MAC/C,iBAAoB5J,EAAiB,MACrC,KAAQyJ,EAAc,MACtB,aAAgB3F,GAChB,YAAeC,GACf,WAAcG,GACd,cAAiBiE,EACjB,QAAW8B,CACZ,EAAE7P,GAAKhoB,EAAO,CAAC,UAAW,UAAW,eAAgB,OAAQ,iBAAkB,sBAAuB,8BAA+B,mBAAmB,CAAC,CAAC,EAAG,IAAI,EAC5J85B,EAAgB,IAAM,CAC1B,IAAIf,EAAa93B,EAAa,MAAO,CACnC,IAAO6sB,EAAW,MAAQrI,GAAiBC,EAC5C,EAAE,IAAI,EAMP,GALIrf,EAAM,QACR0yB,EAAa1yB,EAAM,MAAM,CACvB,WAAYynB,EAAW,KACjC,CAAS,GAECyJ,EAAe,MACjB,OAAOt2B,EAAa,MAAO,CACzB,MAAS,WACT,QAAWy2B,EACX,MAAS,CACP,aAAc13B,EAAM,QAAU,SAAW,GAAGw3B,EAAsB,KAAK,KAAO,OAC/E,CACX,EAAW,CAACuB,CAAU,CAAC,CAEvB,EACUgB,EAAqB,IAAM,CAC/B,GAAIzC,EAAqB,OAASt3B,EAAM,QAAU,SAChD,OAAOiB,EAAa,MAAO,CACzB,MAAS,iBAAiBjB,EAAM,QAAU,SAAW,kBAAoB,EAAE,GAC3E,MAAS0mB,GAAe,GAAI8R,IAAe,EAC3C,QAAWR,CACZ,EAAE,CAACgB,GAAY,EAAI/3B,EAAa,MAAO,CACtC,MAAS,mBACT,MAAS,CACP,OAAQ,GAAGu2B,EAAsB,KAAK,IACvC,EACD,QAAYl2B,GAAM,CACZA,EAAE,YACJA,EAAE,eAAc,EAClBA,EAAE,yBAAwB,CAC3B,CACX,EAAW,CAACtB,EAAM,aAAe,OAASu5B,EAAc,EAAK,GAAIv5B,EAAM,aAAe,UAAY05B,IAAoB15B,EAAM,eAAiB45B,EAAqB,EAAK,EAAE,CAAC,EAAGE,EAAe,CAAA,CAAC,CAE7L,EACI,MAAO,IAAMC,EAAkB,CAChC,CACH,CAAC,ECviBG7T,GADahX,GAAY8qB,EAAS,ECUG,SAAAxtB,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAEzC,OAC6BwtB,GAAAl6B,EAAA,CAC3Bm6B,KAAAA,sBACEC,WAAAA,iBACDA,EACDn6B,EACEgO,MAAAA,CAAa9N,UAAsC,CAAEC,KAAAA,OAAgB,SAAA,EACrEmP,EAAWpP,QAAkC,CAAEC,KAAAA,OAAgB,SAAA,EAC/DkO,EAAUnO,OAAMsP,CAA6BjP,KAAAA,OAAqB,QAAA,KAAA,CAAA,EAClEqN,EAAY1N,SAAMsP,CAAsC,KAAA,MACxD4qB,EAAoBl6B,iBAAY,CAAEK,KAAAA,OAAoB,QAAA,MACtDmP,EAAexP,YAAa,CAAEK,KAAAA,QAAc,QAAA,EAC7C,CACDC,EACE,OAAMgN,CAGN,MAAM9M,EAAEwN,OAA2BV,WAAiC,GAAGnD,CAAC,CAAA,EAClEshB,EAAW7pB,EAAc,WAAC0L,EAAA,MAAA,YAAA,aAAA,EAAA,EAE1B6sB,EAAcC,IACdD,EAAa53B,GAAO,CACxBkpB,EAAiB,OAGnBvjB,EACUvG,MAAM04B,WAAYD,CAC1B,KAEQE,IAAAA,EAAAA,MAAAA,aAAsBtuB,CAAAA,EAAQ6a,IAAgB,CACpD,MAAA0T,EAAAC,GAAAvuB,CAAA,EAAA,OAAA,SAAA,EACIsuB,EAAkBD,GAAAA,CAAAA,EAAe,OAAA,SAAA,EACnCC,IAAAD,GAILhtB,EAAA,KAAA,IAED,MAAAmtB,EAAAlrB,IACJ,CACA,MAAAA,EAAA,MACA,gBAAAA,EAAA,OACA,GAEAmrB,EAAA54B,EAAA,IAAA,CACA,MAAA64B,EAAA,CAAAC,EAAApgB,EAAA6b,IAAA,CACUoE,MAAAA,EAAiBlrB,GAAmC,IAAA,KAAAqrB,EAAA,SAAA,CAAA,EAAA,OAAA,YAAA,EAEtDC,OADKxE,EAAA,UAAAtmB,GAAA+hB,IAAA0I,GAAA,IAAA,KAAAzqB,EAAA,SAAA,CAAA,EAAA,OAAA,YAAA,GAAAA,EAAA,WAAA6qB,EAAA,QAAA,IAAApgB,UAGNlN,EAAA,MAAA,MAAA,OAAAqtB,CAAA,EAAA,IAAA5qB,GAAA,CACF,MAAA+qB,EAAA,IAAA,KAAA/qB,EAAA,SAAA,EAED,MAAc,CACZ,KAAAA,EAAA,UACM4qB,KAAAA,EAAAA,SAKJ,cAAmBH,EAGnB,MAAAM,EAAA,SAAA,EACA,KAA4BA,EAAA,YAAA,EAO5B,KAA6B/qB,EAG/B,CAAA,UAKU,KAEJqX,GAAAA,EACAD,YAAAA,EACAD,WAAAA,EACA3X,SAAAA,iBAEJ,CACF,EACF,QAAE,CAEF,MAAOwrB,EAAA9T,GACJ,KAAA,SAAA,OAAAlX,GAAAA,EAAA,MAAAkX,EAAA,KAAAlX,EAAA,QAAAkX,EAAA,OAAAlX,EAAA,OAAAkX,EAAA,IAAA,EACC,IAAAlX,GAAA,CACS,MAAAirB,EAAA,KAAA,cAAAjrB,EAAA,IAAA,EACD,OAAAhP,EAAA,MAAA,CACF,MAAA,CAAA,KAAA,GAAA,GAAA,OAAA,MAAA,EAAA,KAAA,GAAA,GAAA,OAAAgP,EAAA,IAAA,CAAA,EACR0qB,MAAAA,CACD,EAAA,IAAA,EACF,EAEOM,EAAgB9T,CAAWlX,EAAcjC,IAAA,CAC7C,KAAMuoB,CAMN,QAAAjnB,EACE,OAAAjB,CACA,EAAA,KAAApN,EAEWwc,EAAK,OAAO,MAAM,uBAAsBhO,GACxCyrB,EAAAA,OAAAA,SAAAA,EAAAA,OAAAA,MAAK,EAGhBxqB,EAAA,CAAA,KAAA,GAAA,EAAA,MAAA,EAAA,KAAA,GAAA,GAAA,SAAA+M,IAAA,EAAA,CAAA,EACH,OAAAxc,EAAAI,EAAA,kBAAA,EAAA,SAED,KAAA4O,EAAA,OACA,YAIQ,QAAAX,EAAEA,OAAOjB,EAAEA,QAAAA,IAAW/M,EAAI,gBAAE,EAClC,KAAA,EAAA,WAAA2O,CAAA,GAEE,WAAYkrB,IACZ75B,EAAA,gBAAA,EACIoP,KAAY,EAAA,aACNT,CAAM,EAGlB,EAAA,IAAA,GAGqByB,EACGzB,GAAA,CAAA,MAAAwN,EACJ,KAAA,EAAA,MAAA,aAAA,UAAAhO,GAAAA,EACF,OAAA,SAAAQ,EAAA,OAAA,MAAA,EAEVnP,EAAe,CAAA,KAAE,GAAA,EAAA,MAAA,EAAA,KAAA,GAAA,GAAA,SAAA2c,IAAA,EAAA,CAAA,EACnB,OAAAxc,EAAwB,MAAA,CAC1B,MAACyP,EAAA,IAAAT,EAAA,OAC6C,eAC3B,IAAA,KAAE,EAAA,WAAAA,CAAA,EACnB,WAAYzC,IAAc,KAAA,EAAA,aAAMyC,CAAA,CAClC,EAAA,CAAA,GAAAmrB,GAAAnrB,EAAA,IAAA,EAAA,MAAAA,EAAA,IAAA,EAAA,CAAA,CAAC,EAGNorB,EAAApd,aAED,IAAA/a,EAII,MAAOuM,IAHLiC,EAAqBzB,KAAAA,EAAmC,MAAA,mBAAA,KAAA,OAAA/M,EAAA,KAAAo4B,GAC5DrrB,EAAA,WAAAqrB,EAAA,QACA,GACqB7pB,YACnB,OAAAJ,EAAA/D,EAAA2C,EAAAoB,CAAA,EAAAK,EAAAzB,CAAA,EACIS,EAIN6qB,EAEoB7b,GAAA,CAAA,MAAA8b,EACP,KAAO,EAAA,MAAO,MAAA,OAAAvrB,GAAAA,EAAA,WAAAyP,CAAA,SACd5O,EAA4BV,CAAAA,GACqB,OAEtDgrB,EAAW7wB,EAAoB,iBAAO,EAAA,CAG/C,WAAA,KAAA,IAED,QAAA,IAAA,CAAAtJ,EAAA,MAAA,CACJ,MAAA,KAAA,GAAA,EAAA,SAAA,CACA,EAAA,CAAAA,EAAAk5B,GAAA,CACA,iBAAA,GACA,SAAAhT,GAAA,CACA,KAAA,EAAA,MAAA,aAAAA,CACA,EACA,IAAA,aACA,EAAA,CACUkU,IAAAA,CAAAA,CACJ,KAAAlU,CACE,IACSlX,EAAa,MAAKqrB,CACzB,MAAA,KAAA,GAAA,EAAA,KAAA,CACF,EAAA,CAAMjqB,EAAa,OAAa,KAAA,CAAA8V,GAAA,GAAA,CAAA,EAAAlmB,EAAA,MAAA,CAChC,MAAY,KAAkB,GAAA,EAAA,MAAA,CAC9B,EAAA,CAAAg6B,EAAA9T,CAAA,CAAA,CAAA,CAAA,CAAA,EAGEoU,CAAAA,CAAAA,EAAAA,EAAAA,MAAAA,CACJ,MAAa,KAAA,GAAM,UAAOtd,CAGnBod,EAAAA,CAAAA,EAAAA,EAAwB,UAAA,EAAA,KAAA,CAChC,QAAA,IAAA,CAEDp6B,IAAAA,EAAA,MAAA,EAAAiC,EACmC,KAACsK,EAAAA,MAAAA,mBAAAA,KAAAA,OAAAA,EAAAA,IAAAA,GAAAA,CAAC,IAAAmB,EAAA4H,EAAAklB,EAAA,KAAA,OAAAA,EACF,kBAACx6B,EAAA,KAAA,KAAA,EAAAw6B,EAAA,gBAAA,UAAAA,EAAA,IAAA,GAERx6B,EACFI,EAAA,SAAA,EAAA,CACZ,MAASk5B,GACd,CAAA,QAAA,IAAA,CAAAt5B,EAAAI,EAAA,UAAA,EAAA,KAAAmL,GAAAmC,EAAA4sB,EAAAE,EAAA,QAAA,CAAA,EAAA9sB,EAAA,CAAA,QAAA,IAAA,CAAAA,CAAA,CAIC2Y,CAAM,CAAA,CAAEH,CAAAA,CAAsD,CAAA,CAAA,CAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAC8B,CAAA,CACV,IClOpC,IAAIvY,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAEF,MAAMi5B,EAAiB,CAC5B,aAAc,CACZ3sB,GAAc,KAAM,YAAa,qBAAqB,CACvD,CACH,CCLO,MAAM4sB,GAAsBzsB,GACjC+qB,GACA,SAAStwB,EAAG,CACVA,EAAE,UAAUswB,GAAgB,KAAMA,EAAe,EACjD9qB,GAAwBC,GAAY,SAAU,IAAM,IAAIssB,EAAkB,CAC3E,CACH,ECN4BE,GAAA77B,EAAA,CAC1BC,KAAO,qBACLgO,MAAAA,CACE9N,UAAiC,CACjCC,KAAAA,OACF,SAAA,EACD,CACDK,EACE,OAAME,CACGA,MAAAA,CAAI,GAANoB,EAAA,sBAAA,EAETf,EACE,QAAAE,CAAA,OAAAA,EACuB,MAAC,CAAC,gBACR,CAGnB,EAAA,CAAAQ,GAAA,2DAAA,EAAA,KAAA,UAAA,UAAA,CAAA,CACA,ICZgBo6B,GAAA97B,EAAA,CAChBC,KAAK,WACLQ,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CAEA,MAAM+M,EAAS1L,EAAW,MAAA,EAEpByI,EAAiBvK,EAAM,WAEvB87B,EAAQhxB,EAAG0C,EAAEsuB,EACnBA,EAAAtuB,EAAA,SACA,IAAIuuB,EAAiB,IACjBD,GAAYA,EAASC,iBACvBA,EAAiBD,EAASC,gBAG5B3zB,EACE,IAAMpI,EAAMyC,MACZ,CAACyJ,EAAQC,IAAW,CAClB,GAAID,IAAWC,EAAQ,CACrB,GAAI,CAACD,EAAQ,CACX3B,EAAK9H,MAAQ,GACb,MACF,CACI+K,EAAEkI,OAAOsmB,YACXzxB,EAAK9H,MAAQi4B,GAAMxuB,CAAgB,EAAE6a,OAAOvZ,EAAEkI,OAAOsmB,WAAW,EAEhEzxB,EAAK9H,MAAQyJ,EAAU,GAAEA,CAAO,GAAI,GAElCsB,EAAEkI,OAAOumB,WACX1xB,EAAK9H,OAAS+K,EAAEkI,OAAOumB,SAE3B,CACF,EACA,CACE7vB,UAAW,EACb,CACF,gBAEA0vB,GACA1zB,EAAW,IAAG0C,EAA+B,KAACoB,GAAA,CAC1C4vB,eAAU5vB,CAAA,EAAA,KAAAgwB,GAAA,CACZ9zB,EACQpI,MAAMyP,EAET,IAED,UAAE,GAEJ,KAAA,EACErD,CAAAA,EAEF,MACD+vB,EAAAn6B,EAAA,IAAA,CACH,IAAAkB,sCAEA,OAEE,GAAI44B,EAAS,oBACX,OAAgB54B,EAAA+a,EAAA,MAAA,KAAAhO,GAAAA,EAAA,QAAAjQ,EAAA,KAAA,IAAA,KAAA,OAAAkD,EAAA,KAElB,MAAI44B,EAASM,EAAAA,MAAAA,MAAqBL,CAAA,EAElC,OADet5B,EAAM45B,MAAS,OAAQpsB,GAAWjQ,EAAAA,SAAYiQ,EAAM,KAAA,CAAA,EACnE,IAAAA,GAAAA,EAAA,IAAA,EAAA,KAAA8rB,CAAA,IAEA,CAGA,aAAcO,CAChB,EAAEC,GAAA,IAAA97B,EAAA,OAAA,EAAA,IAAAA,EAAA,MAAA,CAAA,SAEF,GAAAC,EACM,KAAA6J,EAAEiyB,aAAAA,EAA4BD,UAAAA,YAO9B,QACQt7B,EAAA,OAAA,CACZq7B,MAAAA,CAAAA,KAAAA,GAAAA,EAAAA,EAAAA,KAAAA,SAAAA,KAAAA,GAAAA,EAAAA,UAAAA,EAAAA,GAAAA,KAAAA,SAAAA,KAAAA,GAAAA,EAAAA,UAAAA,EAAAA,EAAAA,EACD,IAAA,WACF,EAAA,CAAA,KAAA,cAAA,KAAA,IAAA,CAAA,CACDv7B,CACE,CAAA,ECpFK07B,GAAc,KACR,ECbf,IAAI7tB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAOF,MAAMi6B,WAA6BC,EAAyB,CACjE,aAAc,CACZ,MAAM,GAAG,SAAS,EAIlB5tB,GAAc,KAAM,YAAa,EAAE,EAOnCA,GAAc,KAAM,UAAU,CAC/B,CACD,MAAM,QAAS,CACb,IAAI7L,EAAIE,EAKR,GAJA,MAAM,OAAM,GACPA,GAAMF,EAAK,KAAK,QAAU,KAAO,OAASA,EAAG,cAAgB,MAAgBE,EAAG,CAAC,IACpF,KAAK,UAAY,KAAK,MAAM,YAAY,CAAC,EAAE,IAEzC,KAAK,MAAM,cAAe,CAC5B,MAAMmP,EAAM,MAAM,KAAK,IAAI,OAAO,KAAK,QAAQ,QAAQ,EACvD,KAAK,SAAWA,EAAI,SAAS,YAAY,KAAK,MAAM,aAAa,CAClE,CACF,CAID,MAAM,aAAa9C,EAAM,CACvB,KAAM,CAAE,QAAAH,EAAS,OAAAjB,CAAQ,EAAG,KAAK,mBAC/BoB,EACA,KAAK,QACL,KAAK,MACX,EACQA,EAAK,KAAK,SAAS,IACrBH,EAAQ,OAASG,EAAK,KAAK,SAAS,GAEtC,KAAM,CAAE,cAAAmtB,CAAa,EAAK,KAAK,MAC/B,GAAI,CAACA,EACH,MAAM,IAAIC,GAAkB,KAAK,MAAO,wDAAwD,EAElG,OAAO,KAAK,SAAS,QACnBC,GAAmB,IACnBF,EACAttB,EACAjB,CACN,CACG,CACH,CC5DA,IAAIO,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMs6B,EAAmB,CAC9B,YAAYC,EAAY,CACtBjuB,GAAc,KAAM,aAAc,UAAU,EAC5CA,GAAc,KAAM,aAAc,UAAU,EACxCiuB,IAAe,cACjB,KAAK,WAAa,eAClB,KAAK,WAAa,eAErB,CACD,MAAM,iBAAiBC,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAIkvB,GAAqBO,EAAaC,CAAgB,EAChE,aAAM1vB,EAAE,OACDA,CACR,CACH,CCfsB,SAAAhB,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAGtB,OACmB0wB,GAAAp9B,EAAA,CACjBC,KAAK,YACLo9B,MAAOX,GAAe,EACtBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CACA,MAAM+M,EAAS1L,EAAW,OAAA,EACpBm7B,EAAWj9B,EAAA,WACXq9B,EAAc7vB,EAAE,YAEtB8vB,EAAAxyB,EAAA,CAAA,EACAmyB,EAAgB,aAAG,gBACnBK,EAAe,MAAA,IAEf,MAAAp9B,EAAA8B,EAAA,IAAA,sBAEA,IAAA,UACM9B,MAAO8B,OACHi7B,IAAAA,cACN,MAAc,WACZ,IAAA,cACF,MAAkB,WAChB,QACF,MAAkB,MAChB,CACF,CAAA,EACEM,EAAazyB,EAAA,EAAA,EACjB1C,EAAA,IAAApI,EAAA,MAAA,CAAAkM,EAAAC,IAAA,CACAD,IAAAC,IAEcD,EAMNqxB,EAAS,MAAArxB,EAHjBqxB,EAAW,MACX,MAMI,UAAA,EACF,CAAA,EACF,IACAC,EAAA,GAAEpxB,EACHqxB,EAED,MAAID,EAAkBld,GAAAhb,GAAA,CACKm4B,IAAAn4B,GACvBm4B,EAAkC,SAAAn4B,CAAA,EAEtCm4B,EAAoB,OAEhBD,EAAA,GACIC,GACFh9B,GAEFg9B,EAAAA,IAAAA,CACAD,QAAAA,EACA,CAAA,EACEE,EAAanvB,GAAA,CACf,MAAAjJ,EAAAiJ,EAAA,OAAA,MACDivB,EAED,GAAEG,EAASr4B,CAAA,CAAK,EAElBs4B,EAAAt8B,GAAA,CACMu8B,GAAAA,EAAAA,OAAgBtvB,SACdjJ,IACNk4B,EAAiB,IAAA,CACHH,EAAC/3B,MAAI,IAAA,cAAAhE,CAAA,GAKjB,EACEo8B,EAAW78B,GAAS,KACHi9B,OAAiB,QACjC,SAAAL,CAAA,EACHh9B,EAAA,MAAA,CACF,EACF,OAACT,EAAA,mBAED,GAAAkM,EAAA,CACJ,MAAA6xB,EAAA79B,EAAA,QAAA,WAAA,WAAA,QACAgM,EAAA,IAAA,qBAAA6xB,CAAA,EAAA,CAAA,EACA,MAAA,CACA,EACUC,GAMN,EAAAxwB,EACIxN,GAAAA,EACFoI,KAAAA,EACE,KAAAlI,eAEE,aAAA29B,gBAEF,OAAAG,EACF,QAZeP,IAAAA,CACfh9B,EAAK,OAAO,GAYd,SAAA48B,YAGC,CAED,KAAO,CACL7vB,SAAAA,GACE,KAAA,EAAA,WACE/C,EAAA,QACA,KAAA,SACJ8yB,EAAU,GAAA,KAAA,UAAA,GACE9yB,GAAAwxB,IACDxxB,GAAAwxB,OAEJ,CACPoB,MAAAA,EAAAA,CAAAA,EACDpB,IACF51B,EAAA,MAAA,IACQpF,EAAA,IAAA,CACD,MAAA,KAAA,GAAA,EAAA,MAAA,CAAEg7B,EAAAA,CAAAA,CAAAA,CAAAA,GAGJxxB,EAAKyL,EAAU7U,EAAA,WAAA,EAAA,CACjB,IAAA,WACAoJ,WAAiB,gBACjB,YAAA,KAAA,WAAA,YACIA,KAAAA,KAAWwxB,KACbxxB,UAAmB,KACrB,QAAA,KAAA,aACK,QAAA,KAAA,YACL,OAAA,KAAA,OACMpE,QAAe,KAAE,QACvB,WAAc,GAAA,EAAA,OAAA,EACZA,SAAW,KAAS,SAClB,SAAA,KAAA,OAAA,WAAA,2BAAkC,EAAAmG,GAAWnG,CAAA,EAAAA,EAAA,CAC/C,QAAC,IAAA,CAAAA,CAAA,CACH,CAAA,EAEO,OAAApF,EAAA,MAAA,OAGS,CAAA,KAAA,GAAA,EAAA,EAAe,KAAA,GAAA,GAAA,WAAA,OAAA,GAAA,KAAA,KAAA,UAAA,CAAA,EAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,GAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,EAAA,CAAA,EAAA,CAAAwJ,CAAA,CAAA,KC9IZwzB,GAAAl+B,EAAA,CACvBC,KAAK,kBACLo9B,MAAOX,GAAgB,EACvBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CAEA,MAAM+M,EAAS1L,EAAW,cAAA,EAEpBy7B,EAAUv9B,EAAA,WAEVk+B,IAAiB,MAAA,EAEjBC,EAAUrzB,EAAA,EAAM,EAGpBqzB,EAAY17B,EAAK,MAChByJ,IACKA,IAAMlM,EAAKmM,MAAQ,CAAAD,EAAAC,IAAA,CACrB,GAAAD,IAAYC,EAAS,CACrBoxB,MAAAA,EAAW96B,OAAQ2Y,CAAOgjB,EAC5Bb,EAAA,MAAA,OAAA,MAAAc,CAAA,EAAA,OAAAA,CAEF,CAAEjyB,EAAAA,CACH,UAAA,GAEKyxB,QACEp7B,EAAc8L,GAAK+vB,CAEzB,MAAMC,SAAehwB,EAAC+vB,OAAY,KAC9BE,EAESD,EAAKJ,EAAU,OAAC17B,MAAO+7B,GAAA/7B,EAAA+K,EAAA,SAAA,EAAA,OAClC+wB,IAAAJ,EAAA,QAGFA,EAAAA,SAAgBI,CAAS,EAC1BJ,EAAA,MAAA,OAAAI,CAAA,EAED,EAEIv+B,EAAMy+B,IACRr2B,OAAAA,EAAMi1B,WACJj1B,EAAI8D,EAAQA,GAAA,CACVA,GACaA,EAAA,IAAA,qBAAA,OAAA,EAAA,CAAA,EACf,MAAA,CAEJ,CAAA,EAQM8xB,CACJv9B,GAAAA,EACD,EAAA+M,EAEM,WAAA+vB,EACL78B,aAAAA,EACA8M,SAAAA,EACA+vB,QAbF,IAAA,CACMmB,EAAAA,OAAUA,GAadb,OAXD,IAAA,UAED,EAUER,KAAAA,IAGAa,QAAAA,CACF,KAAC,CACF,SAAAjC,CACDl7B,EAAMA,KAAG,EAAA,OACP,IAAM0J,EAAA,KAAEwxB,OAAAA,KAAAA,UAAaxxB,EAAa,GAAA,KAAA,UAAA,GAE9BA,GAAcwxB,IACdxxB,GAAKyL,IAGPzL,EAAA,CAAAxJ,EAAAI,EAAA,WAAA,EAAA,CACIoJ,IAAAA,WACFA,WAAmB,KAAA,WACrB,YAAA,KAAA,EAAA,YACK,UAAA,KAAA,EAAA,MAAA,UACL,SAAA,KAAA,SACAA,QAAU,KAAA,QAAA,OAAA,KAAA,OAAA,QAGM,KAAA,YAAe,EAAA,IAAA,EAAAwxB,GACTzuB,EAAa,IAAA,CAAA,MAAA,QAChB,EAAE,MAAM,GACb,CAAAyuB,CAAA,CAAA,CAAA,EAEFh7B,EAAW,MAAA,CAAA,MAAA,CAAA,QACL48B,EAAAA,EAAAA,KAAAA,SAAAA,KAAAA,GAAAA,EAAAA,UAAAA,EAAAA,GAAAA,KAAAA,SAAAA,KAAAA,GAAAA,EAAAA,UAAAA,EAAAA,EAAAA,GAEhB5B,CAAAA,CAAAA,CAAAA,CAAQ,ICxGhB,IAAIrtB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAIF,MAAMk8B,WAAgCC,EAAiB,CAC5D,aAAc,CACZ,MAAM,GAAG,SAAS,EAOlB7vB,GAAc,KAAM,WAAW,CAChC,CACD,MAAM,QAAS,CACb,MAAM,MAAM,SACZ,KAAK,UAAY,KAAK,aAAa,UAAY8vB,GAAS,KAAK,aAAa,SAAS,EAAI,KAAK,MAAM,SACnG,CACH,CCvBA,IAAIjwB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMq8B,EAAsB,CACjC,YAAY9B,EAAY,CACtBjuB,GAAc,KAAM,aAAc,WAAW,EAC7CA,GAAc,KAAM,aAAc,WAAW,EACzCiuB,IAAe,WACjB,KAAK,WAAa,kBAClB,KAAK,WAAa,kBAErB,CACD,MAAM,iBAAiBC,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAImxB,GAAwB1B,EAAaC,CAAgB,EACnE,aAAM1vB,EAAE,OACDA,CACR,CACH,OChB6BuxB,GAAAh/B,EAAA,CAC3BS,KAAK,sBACH,OAAME,CACGA,MAAAA,CAAI,GAANoB,EAAA,mBAAA,EAETf,EACE,QAAAE,CAAA,OAAAA,EAC4B,WAAE,CAAA,MAAA,KAAA,GAAA,EAAA,EAAA,KAAA,yBAEhC,EAAA,IAAA,CACA,ICLoB+9B,GAAAj/B,EAAA,CACpBC,KAAK,eACLo9B,MAAOX,GAAgB,EACvBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CACA,MAAM+M,EAAS1L,EAAW,UAAA,EAEpBmc,EAA4Bje,EAAM,WAElCud,EAAUzS,EAAA,CAAA,CAAM,UAEtBm0B,EAAAn0B,EAAA,EAAA,EACMm0B,EAAWn0B,EAAM,CAAA,CAAC,QAExB,GAAAo0B,EAAA,SAAA,EACA,MAA6B,GAE7B,MAAA1D,EAAA,CAAA,EACM2D,OAAAA,EAAAA,QAAAA,GAA+C,CACnD,MAASC,EAAO,CACd,MAASC,EAAA,KACX,MAAAA,EAAA,MACM7D,SAAkB,CAAA,CACxB0D,EACEG,EAAoB,UAAGA,EAAA,SAAA,OAAA,IACrB9oB,EAAe,SAAK4oB,EAAAE,EAAA,QAAA,GAEpBt2B,EAAAA,KAAQq2B,CAAE,IAERC,GAEJ7xB,EAAA,aAAAxN,EAAA,IAAA,EAAA,KAAA87B,GAAA,CACAN,EAAI,MAAM4D,EACZ,QAAEx1B,EAAA,EAAAA,EAAAqU,EAAA,MAAA,OAAArU,IAEH,GADYqU,EAAA,MAAArU,CAAA,EACZ,SAAA,CAEaq1B,EAAM,MAAO,GACpBK,EAASxD,MAAQqD,EAAArD,CAAA,EACtB,KACE,IAGEwD,MAAAA,EAAex0B,EAAA,EAAA,EACf1C,EAAA,IAAApI,EAAA,MAAAkM,GAAA,CACF,GAAAA,GAAAA,IAAA,KAAA,CACFqzB,EAAA,MAAArzB,EACAA,IAAA,mBAGF,MAAgDwO,EAAMuD,EAAI,MAAA,UAAAhO,GAAA,OAAA,GAAAA,EAAA,MAAA/D,CAAA,CAAA,EAGlDlM,IAAMyC,KAENyJ,EAAM,MAAU+R,QAAWvD,CAAA,EAAA,SAI7B,UAAA,KAIA,MAAA8kB,EAAcx9B,EAAI,IAAA,OACRy9B,EAAM,MAAQ,UAAcl1B,KAAI,EAAAg1B,EAAA,MAAA,CAAAA,EAAA,KAAA,EAC1C,OAAAthB,EAAA,MAAA,OAAAhO,GAAAwvB,EAAA,SAAAxvB,EAAA,KAAA,CAAA,EAAA,IAAAA,GAAAA,EAAA,IAAA,EAAA,KAAA,GAAA,CACF,CAAA,EAEFqsB,EAAAxxB,IAAEsB,OAAAA,EAAAA,WACHhE,EAAAk0B,EAAApwB,GAAA,CAEcA,GACbA,QAAiBwzB,CAQnB,CAAE,EAqBmBC,CAAoD,GAAAj/B,EACvE6c,EAAAA,EACA,SAAAgiB,UAEE,UAAAC,gBAGE,OAvBElD,IAAWpwB,CACf,eAAY,GACJ,MAAM,CACd,EAAA,GAAA,CACF,EAqBEzL,QA5BJ,IAAA,CACAA,EAAe,OAAA,GA4Bb,UAAA67B,EACD,UAAAgD,EAEM,WAAA/hB,EACL7c,UAzBF,CAAA,CACMg+B,gBAAAA,KACA,CAEAV,GADLzgB,EAAA,MAAA,GACKygB,MAAM,QAAS2B,CAAA,EAAA,CACnBC,EAAW,MAAMD,EAAA,CAAA,EAAA,KACfl/B,QAAYk/B,EAAA,IAAAr6B,GACPA,EAAA,KACR,EAAA,KAAA,GAAA,iCAED,aAkBO,OACIu6B,EAAA,KAAA,YAAA,+DAAA,CAAA5+B,EAAAI,EAAA,WAAA,EAAA,CACT49B,IAAW,YACXjB,WAAM,KAAA,SACNU,sBAAO1gB,GAAA,KAAA,SAAAA,EACPse,UAAS,GACTgD,SAAS,GACT/hB,MAAU,CAAA,KAAA,GAAA,EAAA,QAAA,CAAA,EACVuiB,YAAAA,KAAAA,EAAAA,YACD,OAAA,KAAA,OACF,QAAA,KAAA,QAED/+B,QAAS,IAAA,CACP,KAAA,WACM8+B,KAAAA,WAAkB,GAKP,CAAa,EAAA,CAAA,aAAA5+B,EAAA89B,GAAA,KAAA,IAAA,CAAA,CAAA,EAAA99B,EAAAI,EAAA,WAAA,EAAA,CAAA,KAGf,gBAAqB,gBACX2c,GAAc,KAAA,WAAAA,EAAA,MACvB,GAAW,SACV,QAAY,EAAA,CAEnB,QAAK,IAAKzM,CAAAA,EAAUlQ,EAAA,YAAA,EAAA,SACH,KAAA,MACjB,SAAA,IAAA,CACF,KAAA,WAAA,EAAC,EAGa,UAAA,KAAA,SAA6CJ,EAAAA,IAAAA,CAAAA,GAAA,EAGrB,OAAAA,QAAf,CAAe,MAAA,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,GAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,EAAA,CAAA,EAAA,CAAA,KAAA,SAAA,KAAA,UAAA4+B,CAAA,CAAA,CAAA,CAAAt/B,CAAAA,ECpKlD,IAAIqO,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMs9B,WAAqCpD,EAAyB,CACzE,aAAc,CACZ,MAAM,GAAG,SAAS,EAOlB5tB,GAAc,KAAM,cAAe,oBAAoB,EAOvDA,GAAc,KAAM,WAAY,EAAK,CACtC,CACD,MAAM,QAAS,CACb,MAAM,OAAM,CACb,CACH,CC5BA,IAAIH,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMu9B,EAA2B,CACtC,aAAc,CACZjxB,GAAc,KAAM,aAAc,cAAc,EAChDA,GAAc,KAAM,aAAc,cAAc,CACjD,CACD,MAAM,iBAAiBkuB,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAIuyB,GAA6B9C,EAAaC,CAAgB,EACxE,aAAM1vB,EAAE,OACDA,CACR,CACH,CCVmC,SAAAhB,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAGnC,OAC0BwzB,GAAAlgC,EAAA,CACxBC,KAAK,mBACLo9B,MAAOX,GAAgB,EACvBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CAEA,MAAM+M,EAAS1L,EAAW,eAAA,EAEpBg6B,EAAQ97B,EAAA,wBAEdie,EAAAnT,EAAA,CAAA,CAAA,EACA1C,EAAM6V,IAAKje,EAAyB,KAAGkM,GAAA,CACvC9D,EAAAA,aACa8D,CAAK,OACNgwB,GAAA,CACNgE,QAAah0B,GAEf,EAAC,CAEH,UAAA,GACEE,KAAAA,EACA+zB,CAAAA,EACF,MACDC,EAAAp+B,EAAA,gBAED85B,EAAA,OAAA,cAEc,KACV,EACF,IAAAC,EAAA,IACAD,GAAYA,EAAA,iBACZC,EAAAD,EAAA,gBAEF,MAAAuE,EAAAr+B,EAAA,CACI+5B,KAAAA,CACAD,GAAQ,CAAAV,GAAAp7B,EAAY,QACR,GAAA,OAAA,GAAWogC,EAAe,MAAA,KAAA,GAAAniB,EAAA,CAC1C,MAAAqiB,EAAA,CAAA,0DAEA,OAAAriB,EAAA,MAAA,QAAAhO,GAAA,EACMowB,EAAcr+B,EAAAA,SAASiO,EAAA,OACrBqwB,EAAA,KAAArwB,EAAA,KAAA,CAEF,CAAA,EACQqwB,EAKNriB,GAAAA,OAAW,GAACxP,EAAoB,MAAK,KAAA,EAAA,CACnC,MAAA8xB,EAAAvgC,EAAA,SACIugC,IAAW,IACbD,GAAAA,EAAY,CACd,MAAAE,EAAAD,EAAA,MAAAxE,CAAA,EACA,GAAAD,EAAA,oBACF,QAAmBlyB,EAAA,EAAA62B,EAAAD,EAAA,OAAA52B,EAAA62B,EAAA72B,IACrB42B,EAAA52B,CAAA,EAAA,OAAA42B,EAAA52B,CAAA,CAAA,EAGM22B,OAAWC,CACb,CACE,OAAAD,QACEA,GAAAA,EAEA,EAEA,MAAA,EACF,EACA,IAAAj7B,EAAA,CACF,IAAA7C,EAAA,KACA,GAAA,OAAA,GAAa29B,EAAO,MAAI,KAAA,EAAA,CAC1B,IAAAM,EAAA,EACFp7B,EAAA,QAAA2K,GAAA,CACF,MAAA0wB,EAAA,OAAA1wB,GAAA,SAAA,SAAAA,EAAA,EAAA,EAAAA,EACAywB,GAASC,EACV,EACGr7B,EAA6Bo7B,iBACoB,GAAAN,EAAA,MAAA,KAAA,EAAA,CAC/C5wB,MAAAA,EAAU4wB,CAAAA,EACRM,QAAgB,OAAA,IACpBp7B,EAAImJ,MAAQwB,QAAQ2wB,GAAA,CAET3wB,EAAAA,UAAS4wB,GAAQ,OAAW,GAAAD,EAAK,MAAQ3wB,CAAI,CAAA,IACtD,IAGFxN,EAAY,KAAAm+B,EAAA,KAAA,CACd,CAAO,EACCE,EAAAA,EAAqB,KAAA/E,CAAA,EAEzB9d,CACExd,EAAA,UAAc6E,CAGd,CACE,CAAA,EACFy7B,EAAAt+B,GAAA,CACAq+B,GAAAA,EAAWT,OAAa,IAG5BA,EAAA,MAAA59B,EACF,EACAhC,EAAegC,EAAM,IAAA,CACvB,MAAAg9B,EAAA,MAAA,QAAAY,EAAA,KAAA,EAAAA,EAAA,MAAA,CAAAA,EAAA,KAAA,EACA,OAAApiB,EAAA,MAAA,OAAAhO,GAAAwvB,EAAA,SAAAxvB,EAAA,KAAA,CAAA,EAAA,IAAAA,GAAAA,EAAA,IAAA,EAAA,KAAA,GAAA,EAEI8wB,EACAC,CACF,aAAA1E,CACF,EAAAC,GAAA,IAAA97B,EAAA,OAAA,EAAA,IAAAA,EAAA,MAAA,CAAA,QACW,CACZ,GAAAC,EAED,MAAAud,EACE,YAAAoiB,EAIA,UAAAb,EAIA,UAAAlD,uBAEF,GACQE,QAAAA,CAAwB,IAAID,EAKpC,OAAOt7B,EAAA,MAAA,CACLP,IAAE,YACFud,MAAK,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,GAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,EAAA,GACM,CAAA,KAAA,SAAA,KAAA,UAAAhd,EAAAI,EAAA,oBAAA,EAAA,CACXm+B,UAAS,aACTlD,WAAS,KAAA,YACTyE,sBAAAA,GAAAA,KAAAA,YAAAA,EACD,SAAA,KAAA,mBACF,EAAAv0B,GAAAmC,EAAA,KAAA,MAAA,IAAA,CAAAsB,EAAAyK,IAAAzZ,EAAAI,EAAA,cAAA,EAAA,CACDN,MAAS,SAAA,IAAA2Z,EACP,KAAAzK,EAAA,MAAA,SAAA,KAAA,QAAA,EAAA,CASK,QAAKiG,IAAQ,CACZjV,EAAc,OAAA,CAAA,MAAA,KAAA,GAAA,EAAA,MAAA,GAIH,CAAAgP,EAAA,IAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,EAAAtB,EAAA,CAAA,QAAA,KACXA,CAACoyB,CAAmB,CAAA,CAAA,CAAAv0B,CAEE,CAAA,CAAA,ECxKhD,IAAIoC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMw+B,WAAqCtE,EAAyB,CACzE,aAAc,CACZ,MAAM,GAAG,SAAS,EAOlB5tB,GAAc,KAAM,UAAU,CAC/B,CACD,MAAM,QAAS,CAEb,GADA,MAAM,OAAM,EACR,KAAK,MAAM,cAAe,CAC5B,MAAMwD,EAAM,MAAM,KAAK,IAAI,OAAO,KAAK,QAAQ,QAAQ,EACvD,KAAK,SAAWA,EAAI,SAAS,YAAY,KAAK,MAAM,aAAa,CAClE,CACF,CACH,CCzBA,IAAI3D,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMy+B,EAA2B,CACtC,aAAc,CACZnyB,GAAc,KAAM,aAAc,kBAAkB,EACpDA,GAAc,KAAM,aAAc,kBAAkB,CACrD,CACD,MAAM,iBAAiBkuB,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAIyzB,GAA6BhE,EAAaC,CAAgB,EACxE,aAAM1vB,EAAE,OACDA,CACR,CACH,OCPoB2zB,GAAAphC,EAAA,CAClBC,KAAK,aACLo9B,MAAOX,GAAgB,EACvBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CACA,MAAAC,EAAAoB,EAAA,QAAA,EACMy7B,EAAazyB,EAAa,EAAK,EAErC1C,EACE,IAAMpI,EAAMyC,MACZ,CAACyJ,EAAQC,IAAW,CACdD,IAAWC,IACRD,EAGHqxB,EAAA,MAAAv9B,EAAA,OAAA,EAFAu9B,EAAW96B,MAAQ,GAKvB,EAAA,CAEF,UAAA,EAAE2J,CAAAA,EAAgB,MACnByxB,EAAAuD,GAAA,CAGC3gC,EAAM89B,SADc6C,IAA0B,GAAA,EAAA,CAChB,CAC9B3gC,EACD,eAED,EAAA87B,GAAA,IAAA97B,EAAA,OAAA,EAAA,IAAAA,EAAA,MAAA,CAAA,EACA,MAAM,CAAE+7B,GAAAA,EAA4BD,WAAAA,EAK7B,aAAAsB,EACLn9B,UAAAA,IAGA47B,QAAAA,CACF,OAACr7B,EAAA,MAAA,CACF,MAAA,CAAA,KAAA,GAAA,EAAA,CAAA,EACDF,IAAS,WACP,EAAA,CAAAE,EAAAI,EAAA,YAAA,EAAA,CAAA,WACmB,KAAK,WAAG,sBAAA2c,GAAA,KAAA,WAAAA,EAAA/c,SAAAA,KAAA,UAAA,KAAA,SAAA,SAEZ,KAAA,YAAe,EAAA,IAAA,CAAA,CAAA,CAAA,CACgB,CAAA,ECvD3C,MAAMogC,WAA+BzC,EAAiB,CAC7D,CCFA,IAAIhwB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAM6+B,EAAqB,CAChC,aAAc,CACZvyB,GAAc,KAAM,aAAc,YAAY,EAC9CA,GAAc,KAAM,aAAc,YAAY,CAC/C,CACD,MAAM,iBAAiBkuB,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAI6zB,GAAuBpE,EAAaC,CAAgB,EAClE,aAAM1vB,EAAE,OACDA,CACR,CACH,CCX2B,SAAAhB,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAG3B,OACmB80B,GAAAxhC,EAAA,CACjBC,KAAK,YACLo9B,MAAOX,GAAe,EACtBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CAEA,MAAM+M,EAAS1L,EAAW,OAAA,EAEpBm7B,EAAWj9B,EAAA,qBAEjBu9B,EAAAv7B,EAAA,CACMu7B,KAAAA,CACJiE,OAAMxhC,EAAA,OAEN,IAACsF,EAAA,CACEm8B,EAAiC,SAAEn8B,CAAA,CACpC7E,CACF,CAAA,EACAwd,EAAAnT,EAAA,CAAA,CAAA,mBAEF0C,EAAA,aAAAtB,CAAA,EAAA,KAAAgwB,GAAA,CACAje,EAAW,MAAyBie,CACpC9zB,CAAAA,GAGK,WACY,GACb,KAAE,EACJ,CAAC,EAECgE,MAAAA,EAAepK,EAAA,IAAA,CACfm+B,IAAIj9B,EAEP,QAAAA,EAAA+a,EAAA,MAAA,KAAAhO,GAAAA,EAAA,QAAAjQ,EAAA,KAAA,IAAA,KAAA,OAAAkD,EAAA,OAAA,EAED,CAAA,EACE,CACA,aAAAo5B,oCAEF,MAAA,CACM,GAAA57B,EAAE87B,YAAAA,EAA4BD,MAAAA,EAK7B,UAAAiD,EACL9+B,WAAAA,EACAu8B,UAAAA,YAGU,CACVX,IAAAA,EACF,OAACr7B,EAAA,MAAA,CACF,MAAA,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,GAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,EAAA,EACDF,IAAS,WAAA,EAAA,CAAA4N,KAAA,SAAA,KAAA,UAAA1N,EAAAI,EAAA,iBAAA,EAAA,CACP,MAAA,KAAA,GAAA,EAAA,OAAA,EAAA,WAGU,KAAK,WAGV,sBAAA2c,GAAA,KAAA,WAAAA,EAGA,UAAK9H,YACU,EAAA1J,GAGLmC,EAAQrN,WAAU,IAAA,CAAAs/B,EAAAlmB,IAAAzZ,EAAAI,EAAA,WAAA,EAAA,CAAA,IAChBqZ,EAAe,KAAAkmB,EAAA,MAAA,SAAA,KAAA,QAAA,EAAAp0B,CAGa,QAEvB,IAAA,CAAAvL,EAAA,OAAA,CACJ2/B,MAAAA,KAAW,GAAA,EAAA,MAAA,CAAA,EAAA,CAAAA,EAAA,MACH,CAAS,CAAA,CAAA,CAAA,EAAAjyB,EAAA,CAAApO,QAAAA,IAAA,CAAAU,CAAA,CAAA,CAAA,CAAA,CAAA,KCrFhC,MAAMygC,WAAwC/E,EAAyB,CAC9E,CCFA,IAAI/tB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMk/B,EAA8B,CACzC,aAAc,CACZ5yB,GAAc,KAAM,aAAc,WAAW,EAC7CA,GAAc,KAAM,aAAc,WAAW,CAC9C,CACD,MAAM,iBAAiBkuB,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAIk0B,GACZzE,EACAC,CACN,EACI,aAAM1vB,EAAE,OACDA,CACR,CACH,OCToBo0B,GAAA7hC,EAAA,CAClBC,KAAK,aACLo9B,MAAOX,GAAgB,EACvBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CACA,MAAM+M,EAAS1L,EAAW,QAAA,EACpBm7B,EAAWj9B,EAAA,qBAEjB,IAAA6hC,EAAA,EACIA,MACJra,EAAA,EACIpe,EAAS,GACb6zB,EAAA,eACIzV,EAAO,aAAA,YACXqa,EAAAhD,GAAA5B,EAAA,aAAA,SAAA,GAEIA,EAAY6E,aAAc,WAC5B14B,EAAey1B,GAAa5B,EAAC8E,aAAW,QAAA,GAExC9E,EAAA,aAAA,WACAzV,EAAeqX,GAAa5B,EAAC+E,aAAU,QAAA,GAEvC/E,EAAA,aAAA,QACAgF,EAAez0B,EAAA,UAAayvB,eAAW,KAAA,IAGvC,MAAIA,EAAwBnyB,EAAA,CAAA,IACrB,IAAG0C,EAAW,aAAas0B,CAClC51B,IAAAC,IACFD,GAAA,OAEAqxB,EAAA,MAAA,CAAA,EAAA,CAAA,EAGQv9B,EAAMyC,MACXyJ,EAGK+1B,EACA1E,EAAW,MAAA,KAAA,MAAArxB,CAAA,EAEJqxB,EAAA,MAAA,OAAArxB,CAAA,GAAA,EAIP,EAAA,CACA,UAAA,EACA,CAAA,cAEA,MAAO,QAAAk1B,CAAA,IACK,SAAC3+B,KAAK,UAAWyJ,CAAuB,CAAA,EAEtDzL,EAAA,SAAA2gC,CAAA,CAEJ,EACEh1B,CACH,aAAAkwB,GAEKuB,GAAgBuD,IAAAA,EAAAA,OAAqD,EAAA,IAAA3gC,EAAA,MAAA,CAAA,EACzE,YAEA,WAAA88B,EACE98B,aAAAA,EACF,KAAAohC,EACD,IAAAz4B,QAED,MAAA64B,EACM,UAAA3F,CAAEE,CAAwB,UAKzB,QACHv7B,EAAA,MAAA,CACFs8B,MAAU,CAAA,KAAA,GAAA,EAAA,CAAA,EACVM,IAAY,aACR,CAAA58B,EAAAI,EAAA,YAAA,EAAA,CACJ+H,WAAG,KAAA,WACHoe,sBAAGxJ,GAAA,KAAA,WAAAA,EACHikB,SAAK,KAAA,UAAA,KAAA,SACL3F,KAAAA,KAAAA,KACD,IAAA,KAAA,IACF,IAAA,KAAA,IACDv7B,MAAS,KAAA,MACP,SAAA,KAAA,cACc,CAAa,OAAA,IAAAE,EAAA,MAAA,CAEZ,MAAA,KAAI,GAAW,EAAA,QAAA,CAAA,EAAA,CAAA,KAAA,UAAA,CAAA,GACgB,CAClC,KCnGT,MAAMihC,WAA+BtD,EAAiB,CAC7D,CCFA,IAAIhwB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAM0/B,EAAqB,CAChC,aAAc,CACZpzB,GAAc,KAAM,aAAc,YAAY,EAC9CA,GAAc,KAAM,aAAc,YAAY,CAC/C,CACD,MAAM,iBAAiBkuB,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAI00B,GAAuBjF,EAAaC,CAAgB,EAClE,aAAM1vB,EAAE,OACDA,CACR,CACH,OCPqB40B,GAAAriC,EAAA,CACnBC,KAAK,cACLo9B,MAAOX,GAAgB,EACvBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CAEA,MAAM+M,EAAS1L,EAAW,SAAA,EAEpBm7B,EAAWj9B,EAAA,qBAEjBu9B,EAAAv7B,EAAA,WAEA,MACShC,EAAAA,EACPqiC,EAAA,QAEF7a,EAAA,KACIqa,EAAQ,eACZ5E,EAAA,aAAA,YACIoF,EAAAA,GAAapF,EAAA,aAAA,SAAA,GAEb7zB,EAAc,aAAA,YAClBi5B,EAAAxD,GAAA5B,EAAA,aAAA,SAAA,GAEIA,EAAY6E,aAAc,WAC5B14B,EAAey1B,GAAa5B,EAAC8E,aAAW,QAAA,GAExC9E,EAAA,aAAA,WACAzV,EAAeqX,GAAa5B,EAACoF,aAAW,QAAA,IAGxC,MAAIpF,EAAwB37B,GAAA,CACvBA,cAGA,UAAW,CAChB,EACF+7B,EAAAvyB,IAOA,MAAA,CACA,GAAApK,EACA,EAAA8M,EACA,WAAA+vB,iBAEMM,SAAAA,EACJ,KAAAgE,EACA,UAAAQ,EACE,IAAAj5B,EACF,IAAAoe,EACA/mB,aAfFA,EAAA,OAAA,CACA,EAeC,OAdD,IAAA,CACAA,EAAA,MAAA,CACA,CAcA,GAEA,QAAA,CACA,IAAMi+B,EAAUA,YACV,cACLj0B,EAAA,GAAA,KAAA,UAAA,GAEDA,EAAA,CAAAxJ,EAAAI,EAAA,aAAA,EAAA,CACM28B,IAAAA,WACA,WAAQ,KAAA,WACb,YAAA,KAAA,EAAA,YAEM,iBAAA,KAAA,UACH,IAAA,KAAA,IACD,IAAA,KAAA,IACS,KAAA,KAAA,KACE,SAAA,KAAA,SACJ,SAAA,KAAA,aACJ,QAAA,KAAA,QACK,OAAA,KAAA,QACN,IAAA,CAAA,EAEI/8B,EAAA,MAAA,CACP+8B,MAAAA,CAAAA,KAAAA,GAAAA,EAAAA,EAAAA,KAAAA,SAAAA,KAAAA,GAAAA,EAAAA,UAAAA,EAAAA,GAAAA,KAAAA,SAAAA,KAAAA,GAAAA,EAAAA,UAAAA,EAAAA,EAAAA,GACD,CAAAvzB,CAAA,CAAA,CACF,CACD1J,CAAAA,EC7FF,IAAI6N,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAM6/B,WAAgC1D,EAAiB,CAC5D,aAAc,CACZ,MAAM,GAAG,SAAS,EAOlB7vB,GAAc,KAAM,cAAe,oBAAoB,CACxD,CACH,CClBA,IAAIH,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAM8/B,EAAsB,CACjC,aAAc,CACZxzB,GAAc,KAAM,aAAc,aAAa,EAC/CA,GAAc,KAAM,aAAc,aAAa,CAChD,CACD,MAAM,iBAAiBkuB,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAI80B,GAAwBrF,EAAaC,CAAgB,EACnE,aAAM1vB,EAAE,OACDA,CACR,CACH,OCNkBg1B,GAAAziC,EAAA,CAChBC,KAAK,WACLo9B,MAAOX,GAAc,EACrBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CACA,MAAAC,EAAAoB,EAAA,MAAA,EACMy7B,EAAazyB,IAIbmyB,EAFIj9B,EAAMiO,WAEMO,cAEtByuB,EAAA,cACI7zB,EAAO,aAAA,WACP6zB,EAAAA,GAAY6E,EAAc,aAAA,QAAA,GAG5B15B,EAAA,IAAApI,EAAA,MAAA,CAAAkM,EAAAC,IAAA,CACFD,IAAAC,IAGQnM,EAIAu9B,EAAW96B,MAAQyJ,EAFnBA,EAAWC,MAAQ,EAKrB,EAAA,CACF,UAAA,EACF,CAAC,EACCC,MAAAA,EAAWg1B,GAAA,CACd3gC,EAAA,SAAA2gC,CAAA,GAGK,CACL,aAAA9E,oCAED,MAAA,CACM,GAAA57B,EAAE87B,WAAAA,EAA4BD,aAAAA,EAK7B,IAAAnzB,EACL1I,UAAAA,YAGG,CACH47B,OAAAA,EAAAA,MAAAA,CACD,MAAA,CAAA,KAAA,GAAA,EAAA,CAAA,EACF,IAAA,WACDv7B,EAAAA,CAAMA,EAAGM,EAAA,UAAA,EAAA,CACP,WAAA,KAAA,WAAA,sBAC2B2c,GAAA,KAAA,WAAAA,EAAA,SAAA,KAAA,UAAA,KAAA,SAAA/c,MAAAA,KAAA,IAAA,SAEZ,KAAA,YAAe,EAAA,IAAA,CAAA,CAAA,CAAA,IClE3B,MAAMwhC,WAA6B7D,EAAiB,CAC3D,CCFA,IAAIhwB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMigC,EAAmB,CAC9B,aAAc,CACZ3zB,GAAc,KAAM,aAAc,UAAU,EAC5CA,GAAc,KAAM,aAAc,UAAU,CAC7C,CACD,MAAM,iBAAiBkuB,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAIi1B,GAAqBxF,EAAaC,CAAgB,EAChE,aAAM1vB,EAAE,OACDA,CACR,CACH,4PCVC,SAASm1B,EAAE/4B,EAAE,CAAsDgZ,EAAA,QAAehZ,GAA4E,GAAEg5B,GAAK,UAAU,EAAe,SAASD,EAAE/4B,EAAE,CAAUA,IAAT,SAAaA,EAAE,CAAE,GAAE,IAAItI,EAAEsI,EAAE,SAAS,GAAG+4B,GAAgB,OAAO,SAApB,IAA6B,CAAC,IAAIE,EAAE,SAAS,MAAM,SAAS,qBAAqB,MAAM,EAAE,CAAC,EAAEp2B,EAAE,SAAS,cAAc,OAAO,EAAEA,EAAE,KAAK,WAAmBnL,IAAR,OAAWuhC,EAAE,WAAWA,EAAE,aAAap2B,EAAEo2B,EAAE,UAAU,EAAEA,EAAE,YAAYp2B,CAAC,EAAEA,EAAE,WAAWA,EAAE,WAAW,QAAQk2B,EAAEl2B,EAAE,YAAY,SAAS,eAAek2B,CAAC,CAAC,CAAC,CAAC,GAAE,q4EAAq4E,EAA+I,SAASG,EAAEH,EAAE/4B,EAAE,CAAC,OAAgB,OAAO+4B,GAAjB,UAAoBA,EAAE,SAASA,EAAE/4B,EAAE,SAAS,iBAAiB+4B,CAAC,EAAE,SAAS,cAAcA,CAAC,CAAC,CAAC,IAAIA,EAAEvO,GAAG,SAASuO,EAAE/4B,EAAE,CAAC+4B,EAAE,QAAQ,UAAU,CAAC,SAASl2B,EAAEk2B,EAAE/4B,EAAE,CAAC,KAAKA,EAAE,EAAE+4B,EAAE,OAAO/4B,IAAI+4B,EAAE/4B,CAAC,EAAE+4B,EAAE/4B,EAAE,CAAC,EAAE+4B,EAAE,KAAK,CAAC,IAAI,EAAE,SAASA,EAAE/4B,EAAE,CAAC,GAAG,MAAM,QAAQ+4B,CAAC,EAAE,OAAOA,EAAE,GAAG,OAAO,YAAY,OAAOA,CAAC,EAAE,OAAO,SAASA,EAAE/4B,EAAE,CAAC,IAAItI,EAAE,CAAE,EAACuhC,EAAE,GAAGp2B,EAAE,GAAGs2B,EAAE,OAAO,GAAG,CAAC,QAAQC,EAAEp+B,EAAE+9B,EAAE,OAAO,QAAQ,EAAG,EAAC,EAAEE,GAAGG,EAAEp+B,EAAE,QAAQ,QAAQtD,EAAE,KAAK0hC,EAAE,KAAK,EAAE,CAACp5B,GAAGtI,EAAE,SAASsI,GAAGi5B,EAAE,GAAG,CAAC,OAAOF,EAAE,CAACl2B,EAAE,GAAGs2B,EAAEJ,CAAC,QAAC,CAAQ,GAAG,CAAC,CAACE,GAAGj+B,EAAE,QAAQA,EAAE,OAAM,CAAE,QAAC,CAAQ,GAAG6H,EAAE,MAAMs2B,CAAC,CAAC,CAAC,OAAOzhC,CAAC,EAAEqhC,EAAE/4B,CAAC,EAAE,MAAM,IAAI,UAAU,sDAAsD,CAAC,EAAEtI,EAAe,OAAO,OAApB,IAA2BqhC,EAAErhC,GAAG,UAAU,UAAU,cAAcsI,EAAE+4B,GAAG,iBAAiB,KAAKA,CAAC,EAAEE,EAAEF,GAAG,EAAEA,EAAE,QAAQ,SAAS,EAAE,SAAS99B,GAAG,CAAC,OAAO,OAAO,aAAa,OAAO,YAAY,IAAI,OAAO,YAAY,IAAG,EAAG,OAAO,YAAY,OAAO,gBAAgB,CAAC,IAAI,IAAI,CAAC,SAASo+B,EAAEN,EAAE,CAAC,QAAQ/4B,EAAE,UAAU,OAAOtI,EAAE,MAAM,EAAEsI,EAAEA,EAAE,EAAE,CAAC,EAAEi5B,EAAE,EAAEA,EAAEj5B,EAAEi5B,IAAIvhC,EAAEuhC,EAAE,CAAC,EAAE,UAAUA,CAAC,EAAE,QAAQp2B,EAAE,EAAEA,EAAEnL,EAAE,OAAOmL,IAAI,CAAC,IAAIs2B,EAAEzhC,EAAEmL,CAAC,EAAE,QAAQu2B,KAAKD,EAAEJ,EAAEK,CAAC,EAAED,EAAEC,CAAC,CAAC,CAAC,OAAOL,CAAC,CAAC,SAASn1B,EAAEm1B,EAAE,CAAC,OAAaA,GAAN,IAAO,CAAC,IAAII,EAAEzhC,GAAG,SAAS,cAAc,KAAK,EAAE,MAAM0hC,EAAE,UAAU,CAAC,GAAG,CAAC1hC,EAAE,MAAM,GAAG,IAAIqhC,EAAE,CAAC,OAAO,kBAAkB,IAAI,eAAe,EAAE,aAAa,GAAG,cAAc,SAAS,WAAW,EAAE,QAAQ/4B,KAAK+4B,EAAE,GAAYI,EAAEJ,EAAE/4B,CAAC,CAAC,IAAf,OAAiB,OAAOA,EAAE,MAAM,EAAE,EAAG,EAAC,SAAShF,EAAE+9B,EAAE,CAAC,OAAWK,IAAL,KAAsBA,IAAb,WAAiCL,IAAlB,gBAAoB,gBAAgBA,EAAEK,EAAEL,EAAE,OAAO,CAAC,EAAE,YAAW,EAAGA,EAAE,OAAO,CAAC,EAAE,CAAC,SAASO,EAAEP,EAAE/4B,EAAEtI,EAAEuhC,EAAE,CAACF,EAAE,iBAAiB/4B,EAAEtI,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAACuhC,CAAC,CAAC,CAAC,CAAC,SAASM,EAAER,EAAE/4B,EAAEtI,EAAEuhC,EAAE,CAACF,EAAE,oBAAoB/4B,EAAEtI,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAACuhC,CAAC,CAAC,CAAC,CAAC,SAASO,EAAET,EAAE,CAAC,QAAQ/4B,EAAE,EAAEtI,EAAE,EAAEqhC,GAAG/4B,GAAG+4B,EAAE,WAAWrhC,GAAGqhC,EAAE,UAAUA,EAAEA,EAAE,aAAa,MAAM,CAAC,KAAK/4B,EAAE,IAAItI,CAAC,CAAC,CAAC0hC,GAAgBA,IAAb,YAAgBA,EAAE,YAAW,EAAG,IAAIrvB,EAAE/O,EAAE,WAAW,EAAEy+B,EAAEz+B,EAAE,YAAY,EAAE+E,EAAErI,GAAGsD,EAAE,aAAa,IAAIm+B,EAAEO,EAAEhiC,IAAI,iBAAiB,QAAQsI,GAAG25B,EAAO5vB,IAAL,GAAO6vB,EAAEliC,GAAG+hC,KAAKN,EAAEU,EAAE,CAAC,UAAU9vB,EAAE,WAAW0vB,EAAE,yBAAyBz+B,EAAE,0BAA0B,EAAE,mBAAmBA,EAAE,oBAAoB,EAAE,gBAAgBA,EAAE,iBAAiB,EAAE,gBAAgBA,EAAE,iBAAiB,EAAE,cAAcA,EAAE,eAAe,CAAC,EAAE8+B,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,SAASZ,GAAEH,EAAE,CAAC,GAAGA,aAAa,OAAO,WAAW,CAAC,IAAI/4B,EAAE+4B,EAAE,sBAAuB,EAAC,MAAM,CAAC,IAAI/4B,EAAE,IAAI,KAAKA,EAAE,KAAK,MAAMA,EAAE,MAAM,OAAOA,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI+4B,EAAE,UAAU,KAAKA,EAAE,WAAW,MAAMA,EAAE,YAAY,OAAOA,EAAE,YAAY,CAAC,CAAC,SAASvO,GAAEuO,EAAE/4B,EAAE,CAAC,QAAQtI,KAAKsI,EAAE,GAAGA,EAAEtI,CAAC,EAAE,KAAKqhC,EAAErhC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,SAASqiC,GAAEhB,EAAE,CAAC,IAAI/4B,EAAE,EAAE,UAAU,QAAiB,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,QAAQtI,EAAE,OAAmBqhC,EAAE,OAAd,WAAoCA,EAAE,OAAlB,cAAuBrhC,EAAEqhC,EAAeA,EAAE,OAAf,YAAqCA,EAAE,OAAlB,gBAAyBrhC,EAAEqhC,EAAE,eAAe,CAAC,GAAG,IAAIE,EAAE,GAAGvhC,IAAIuhC,EAAE,QAAQvhC,EAAE,SAAS,EAAEuhC,EAAE,QAAQvhC,EAAE,SAAS,EAAEuhC,EAAE,QAAQvhC,EAAE,SAAS,EAAEuhC,EAAE,QAAQvhC,EAAE,SAAS,GAAG,IAAImL,EAAE,OAAOs2B,EAAE,GAAGC,EAAE,GAAG,GAAgB,OAAO,WAApB,IAA+B,GAAG,CAACv2B,EAAE,IAAI,WAAW7C,EAAEq5B,EAAE,CAAC,QAAQF,EAAE,WAAWC,CAAC,EAAEH,CAAC,CAAC,CAAC,MAAS,CAACj+B,EAAG,CAAA,MAAMA,EAAC,EAAG,SAASA,GAAG,EAAE6H,EAAE,SAAS,YAAY,OAAO,GAAG,UAAU7C,EAAEm5B,EAAEC,CAAC,EAAEC,EAAEx2B,EAAEo2B,CAAC,CAAC,CAACp2B,EAAE,oBAAoB,GAAGA,EAAE,aAAa,GAAGk2B,EAAE,OAAO,cAAcl2B,CAAC,CAAC,CAAC,IAAIm3B,GAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,uBAAuB,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,WAAW,IAAI,SAAS,GAAG,kBAAkB,IAAI,sBAAsB,GAAG,UAAU,KAAK,gBAAgB,IAAI,aAAa,MAAM,eAAe,IAAI,mBAAmB,IAAI,cAAc,GAAG,UAAU,EAAE,eAAe,GAAG,wBAAwB,CAAC,QAAQ,wCAAwC,EAAE,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,GAAG,aAAaN,EAAE,aAAa,CAACA,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,gBAAgB,GAAG,WAAW,GAAG,WAAW,GAAG,gBAAgB,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,EAAE,EAAEO,GAAE,CAAC,MAAM,CAAC,MAAM,iCAAiC,GAAG,SAASlB,EAAE,CAAC,MAAO,GAAE,EAAEA,EAAEA,EAAEA,EAAEA,EAAEA,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,uCAAuC,GAAG,SAASA,EAAE,CAAC,OAAOA,GAAG,EAAEA,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,qCAAqC,GAAG,SAASA,EAAE,CAAC,MAAO,IAAG,EAAEA,EAAEA,EAAEA,EAAEA,CAAC,CAAC,CAAC,EAAE,SAASmB,GAAEnB,EAAE/4B,EAAEtI,EAAEuhC,EAAEp2B,EAAEs2B,EAAEC,EAAE,CAAC,IAAIp+B,EAAE+9B,EAAE/4B,EAAEq5B,EAAE,KAAK,IAAIr+B,CAAC,EAAEtD,EAAEwM,EAAEk1B,EAAE,aAAax1B,EAAEw1B,EAAE,WAAWE,GAAEF,EAAE,gBAAgBG,GAAEH,EAAE,MAAMI,EAAEJ,EAAE,UAAUrvB,GAAEwvB,GAAE,EAAE,GAAGE,GAAEV,EAAEM,EAAEn1B,GAAGlJ,EAAE,EAAE,GAAG,GAAG,OAAOu+B,IAAG31B,IAAI61B,GAAE,KAAK,MAAMA,GAAE71B,CAAC,EAAEA,GAAG61B,GAAER,GAAGQ,GAAEN,EAAE,KAAK,IAAIF,EAAEE,EAAE,EAAEF,EAAEE,EAAEpvB,GAAEsvB,CAAC,EAAEJ,EAAEO,EAAEF,IAAGz2B,EAAE42B,KAAIA,GAAEN,EAAE,KAAK,IAAIt2B,EAAEs2B,EAAE,EAAEt2B,EAAEs2B,EAAEpvB,GAAEsvB,CAAC,EAAEx2B,EAAE22B,EAAEF,IAAG,CAAC,YAAY,KAAK,MAAMG,EAAC,EAAE,SAASD,CAAC,CAAC,CAAC,SAASW,IAAG,CAAA,CAAE,IAAIpL,GAAEqL,GAAEC,GAAEC,GAAEC,GAAEC,GAAE9iC,EAAE,OAAO,uBAAuB,OAAO,6BAA6B,OAAO,0BAA0B,OAAO,wBAAwB,SAASqhC,EAAE,CAAC,OAAO,OAAO,WAAWA,GAAGA,EAAE,UAAU,IAAI,IAAI,CAAC,CAAC,EAAEoB,GAAEM,GAAE/iC,EAAE,OAAO,sBAAsB,OAAO,4BAA4B,OAAO,yBAAyB,OAAO,uBAAuB,SAASqhC,EAAE,CAAC,OAAO,aAAaA,CAAC,CAAC,EAAEoB,GAAE,SAASO,GAAE3B,EAAE,CAAC,QAAQ,MAAM,mBAAmBA,CAAC,CAAC,CAAC,SAAS4B,GAAE5B,EAAE/4B,EAAE,CAAC,KAAK,QAAkB,OAAO+4B,GAAjB,SAAmB,SAAS,cAAcA,CAAC,EAAEA,EAAE,KAAK,SAAS2B,GAAE,kCAAkC,EAAE,KAAK,SAAS,KAAK,QAAQ,SAAS,CAAC,EAAE,KAAK,UAAUA,GAAE,6DAA6D,EAAE,KAAK,cAAc,KAAK,SAAS,MAAM,KAAK,MAAM16B,CAAC,CAAC,CAAC,OAAO+uB,GAAE4L,IAAG,UAAU,MAAM,SAAS5B,EAAE,CAAC,KAAK,eAAeA,CAAC,EAAE,KAAK,QAAQ,CAAA,EAAG,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,CAAC,EAAE,KAAK,gBAAgB,KAAK,iBAAgB,EAAG,KAAK,iBAAkB,EAAC,KAAK,QAAQ,YAAY,KAAK,mBAAmB,KAAK,QAAQ,UAAU,KAAK,kBAAkB,KAAK,QAAO,EAAG,KAAK,QAAQ,MAAM,KAAK,SAAS,KAAK,QAAQ,OAAO,KAAK,QAAQ,MAAM,EAAE,KAAK,OAAQ,CAAA,EAAEhK,GAAE,UAAU,SAAS,SAASgK,EAAE,CAAC,KAAK,UAAUn1B,EAAE,KAAK,KAAK,EAAEm1B,EAAE,KAAK,MAAM,KAAK,MAAMA,CAAC,EAAEhK,GAAE,UAAU,eAAe,SAASgK,EAAE,CAAC,KAAK,QAAQM,EAAE,CAAE,EAACW,GAAEjB,CAAC,EAAE,KAAK,WAAW,KAAK,QAAQ,eAAeh5B,EAAE,iBAAiB,GAAG,KAAK,QAAQ,cAAc,KAAK,QAAQ,eAAe65B,EAAE,KAAK,QAAQ,aAAa,KAAK,QAAQ,cAAcD,EAAE,KAAK,QAAQ,eAAe,CAAC,KAAK,QAAQ,kBAAkB,KAAK,QAAQ,eAAe,KAAK,QAAQ,QAAuB,KAAK,QAAQ,mBAA5B,cAA8C,KAAK,QAAQ,QAAQ,KAAK,QAAQ,QAAqB,KAAK,QAAQ,mBAA1B,YAA4C,KAAK,QAAQ,QAAQ,KAAK,QAAQ,WAAW,KAAK,QAAQ,YAAY,CAAC,KAAK,QAAQ,iBAAiB,KAAK,QAAQ,uBAAuB,KAAK,QAAQ,iBAAiB,EAAE,KAAK,QAAQ,uBAA4B,KAAK,QAAQ,MAAlB,KAAwB,KAAK,QAAQ,IAAI,MAAM,EAAE5K,GAAE,UAAU,cAAc,UAAU,CAAC,IAAIgK,EAAEO,EAAE,KAAK,iBAAiBP,CAAC,CAAC,EAAEhK,GAAE,UAAU,iBAAiB,UAAU,CAAC,IAAIgK,EAAEQ,EAAE,KAAK,iBAAiBR,CAAC,CAAC,EAAEhK,GAAE,UAAU,iBAAiB,SAASgK,EAAE,CAAC,IAAI/4B,EAAE,KAAK,QAAQ,cAAc,KAAK,QAAQ,OAAO+4B,EAAE,OAAO,oBAAoB,IAAI,EAAEA,EAAE,OAAO,SAAS,IAAI,EAAE,KAAK,QAAQ,OAAOA,EAAE,KAAK,QAAQ,QAAQ,KAAK,EAAE,EAAE,KAAK,QAAQ,eAAeA,EAAE,KAAK,QAAQ,YAAY,IAAI,EAAEA,EAAE/4B,EAAE,YAAY,IAAI,EAAE+4B,EAAE/4B,EAAE,cAAc,IAAI,EAAE+4B,EAAE/4B,EAAE,UAAU,IAAI,GAAG05B,GAAG,CAAC,KAAK,QAAQ,eAAeX,EAAE,KAAK,QAAQ,aAAa,IAAI,EAAEA,EAAE/4B,EAAE,YAAY,IAAI,EAAE+4B,EAAE/4B,EAAE,cAAc,IAAI,EAAE+4B,EAAE/4B,EAAE,WAAW,IAAI,GAAG+4B,EAAE,KAAK,SAASc,EAAE,cAAc,IAAI,CAAC,EAAE9K,GAAE,UAAU,iBAAiB,UAAU,CAAC,KAAK,QAAQ,MAAM,KAAK,UAAW,EAAC,KAAK,QAAQ,WAAW,KAAK,iBAAiB,KAAK,QAAQ,YAAY,KAAK,YAAW,EAAG,KAAK,QAAQ,iBAAiB,KAAK,cAAa,EAAG,KAAK,QAAQ,OAAO,KAAK,WAAY,EAAC,KAAK,QAAQ,YAAY,KAAK,kBAAkB,KAAK,QAAQ,MAAM,KAAK,UAAS,EAAG,KAAK,QAAQ,UAAU,KAAK,cAAa,CAAE,EAAEA,GAAE,UAAU,iBAAiB,UAAU,CAAC,GAAe,OAAO,OAAO,gBAA1B,WAAyC,CAAC,IAAIlsB,EAAE,KAAKs2B,EAAE,GAAGJ,EAAE,KAAK,QAAQ,cAAc,iBAAiB,cAAc,OAAO,eAAe,KAAKA,EAAE,CAAC,IAAI,UAAU,CAAC,OAAOI,CAAC,EAAE,IAAI,SAASJ,EAAE,CAACI,EAAEJ,EAAE,QAAQ/4B,EAAE6C,EAAE,SAAS,SAAS,OAAOA,EAAE,SAAS,SAAS,CAACA,EAAE,QAAQ,EAAEnL,EAAEyhC,GAAG,CAACt2B,EAAE,QAAQ,OAAO,OAAOo2B,EAAE,EAAEA,EAAEj5B,EAAE,OAAOi5B,IAAIj5B,EAAEi5B,CAAC,EAAE,MAAM,cAAcvhC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEq3B,GAAE,UAAU,gBAAgB,UAAU,CAAC,KAAK,GAAG,cAAc,UAAU,CAAC,IAAIgK,EAAE,SAAS,cAAc,CAACA,GAAaA,EAAE,UAAZ,SAAkCA,EAAE,UAAf,YAAwBA,EAAE,MAAM,CAAC,CAAC,EAAEhK,GAAE,UAAU,iBAAiB,UAAU,CAAC,IAAIoK,EAAE,KAAK,GAAgB,OAAO,iBAApB,IAAqC,CAAC,IAAIC,EAAE,OAAOL,EAAE,IAAI,iBAAiB,SAASA,EAAE,CAAC,GAAG,CAACI,EAAE,kBAAiB,EAAG,CAAC,QAAQn5B,EAAE,GAAGtI,EAAE,GAAGuhC,EAAE,EAAEA,EAAEF,EAAE,OAAOE,IAAI,CAAC,IAAIp2B,EAAEk2B,EAAEE,CAAC,EAAE,GAAkBp2B,EAAE,OAAjB,aAAsB,CAAC7C,EAAE,GAAG,KAAK,CAAC,GAAG6C,EAAE,SAASs2B,EAAE,SAAS,CAACzhC,EAAE,GAAG,KAAK,CAAC,CAACsI,EAAEm5B,EAAE,QAAS,EAACzhC,IAAI,aAAa0hC,CAAC,EAAEA,EAAE,WAAW,UAAU,CAACD,EAAE,kBAAmB,GAAEA,EAAE,QAAS,CAAA,EAAE,EAAE,EAAE,CAAC,CAAC,EAAEJ,EAAE,QAAQ,KAAK,SAAS,CAAC,WAAW,GAAG,UAAU,GAAG,QAAQ,EAAE,CAAC,EAAE,KAAK,GAAG,UAAU,UAAU,CAACA,EAAE,WAAY,CAAA,CAAC,CAAC,MAAM,KAAK,iBAAiB,EAAEhK,GAAE,UAAU,kBAAkB,UAAU,CAAC,IAAIgK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,EAAE,KAAK,YAAY,KAAK,EAAE,KAAK,YAAY,KAAK,EAAE,KAAK,WAAW,OAAO,KAAK,gBAAgB,KAAK,oBAAoBA,CAAC,EAAEhK,GAAE,UAAU,gBAAgB,UAAU,CAAC,IAAIkK,EAAEC,GAAE,KAAK,QAAQ,EAAEr2B,EAAEo2B,EAAE,MAAME,EAAEF,EAAE,QAAQ,SAASvhC,GAAG,CAAC,IAAIqhC,EAAE,KAAK,WAAW,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,IAAIA,GAAGE,EAAEC,GAAE,KAAK,QAAQ,GAAG,MAAMl5B,EAAEi5B,EAAE,OAAOp2B,IAAIk2B,GAAGI,IAAIn5B,GAAG,KAAK,QAAO,EAAG6C,EAAEk2B,EAAEI,EAAEn5B,EAAEtI,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,KAAKqhC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,EAAEhK,GAAE,UAAU,YAAY,SAASgK,EAAE,CAAC,OAAOA,EAAE,KAAM,CAAA,IAAI,aAAa,IAAI,YAAY,KAAK,OAAOA,CAAC,EAAE,KAAK,QAAQ,MAAMA,EAAE,SAAS,EAAEA,EAAE,QAAQ,QAAQ,KAAK,WAAWA,CAAC,EAAE,MAAM,IAAI,YAAY,IAAI,YAAY,KAAK,QAAQ,MAAMA,EAAE,SAAS,EAAEA,EAAE,QAAQ,OAAO,KAAK,MAAMA,CAAC,EAAE,KAAK,MAAMA,CAAC,EAAE,MAAM,IAAI,WAAW,IAAI,UAAU,IAAI,cAAc,IAAI,cAAc,KAAK,OAAO,KAAK,SAASA,CAAC,EAAE,KAAK,KAAKA,CAAC,EAAE,MAAM,IAAI,oBAAoB,IAAI,SAAS,KAAK,QAAS,EAAC,MAAM,IAAI,gBAAgB,IAAI,sBAAsB,IAAI,iBAAiB,IAAI,kBAAkB,KAAK,eAAeA,CAAC,EAAE,MAAM,IAAI,QAAQ,KAAK,SAAS,CAACA,EAAE,eAAevO,GAAEuO,EAAE,OAAO,KAAK,QAAQ,uBAAuB,IAAIA,EAAE,eAAc,EAAGA,EAAE,gBAAe,IAAK,MAAM,IAAI,QAAQ,IAAI,iBAAiB,IAAI,aAAa,KAAK,cAAcA,CAAC,CAAC,CAAC,EAAEhK,GAAE,UAAU,QAAQ,UAAU,CAAC,IAAIgK,EAAa,OAAO,iBAAiB,KAAK,QAAQ,IAAI,EAAE,WAAtD,SAA+D/4B,EAAEk5B,GAAE,KAAK,OAAO,EAAE,KAAK,aAAal5B,EAAE,MAAM,KAAK,cAAcA,EAAE,OAAO,IAAItI,EAAEwhC,GAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,KAAK,MAAMxhC,EAAE,MAAM,KAAK,KAAK,EAAE,KAAK,eAAe,KAAK,MAAMA,EAAE,OAAO,KAAK,KAAK,EAAE,KAAK,UAAUA,EAAE,KAAK,KAAK,UAAUA,EAAE,IAAIqhC,IAAI,KAAK,WAAW/4B,EAAE,KAAK,KAAK,WAAWA,EAAE,KAAK,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,IAAIi5B,EAAE,KAAK,QAAQ,MAAMA,GAAG,KAAK,MAAM,KAAK,SAAS,SAAS,KAAK,QAAQ,WAAW,KAAK,WAAW,KAAK,MAAM,OAAO,KAAK,eAAe,KAAK,MAAM,OAAO,EAAW,KAAK,gBAAd,SAA8B,KAAK,cAAcA,EAAE,eAAe,GAAG,KAAK,QAAQ,OAAO,CAAC,KAAK,cAAc,KAAK,WAAW,KAAK,WAAW,EAAE,KAAK,WAAW,CAAC,KAAK,YAAY,KAAK,MAAM,OAAO,KAAK,KAAK,WAAW,KAAK,aAAa,KAAK,cAAc,KAAK,QAAQ,WAAW,KAAK,WAAW,KAAK,cAAc,KAAK,gBAAgB,KAAK,WAAW,GAAG,KAAK,YAAY,KAAK,UAAU,KAAK,WAAW,CAAC,KAAK,WAAW,EAAE,KAAK,QAAQ,KAAK,WAAW,KAAK,WAAW,EAAE,KAAK,UAAU,KAAK,WAAW,KAAK,YAAY,KAAK,WAAW,GAAG,KAAK,YAAY,KAAK,UAAU,KAAK,WAAW,CAAC,KAAK,WAAW,EAAE,KAAK,QAAQ,KAAK,WAAW,KAAK,WAAW,EAAE,KAAK,UAAU,KAAK,WAAW,KAAK,aAAa,KAAK,oBAAoB,KAAK,QAAQ,SAAS,KAAK,WAAW,KAAK,WAAW,KAAK,kBAAkB,KAAK,QAAQ,SAAS,KAAK,WAAW,KAAK,WAAW,KAAK,sBAAsB,KAAK,WAAW,KAAK,WAAW,KAAK,cAAc,KAAK,cAAc,KAAK,oBAAoB,KAAK,WAAW,KAAK,WAAW,KAAK,eAAe,KAAK,eAAe,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,cAAcO,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,SAAS,EAAE,KAAK,QAAQ,KAAK,cAAe,CAAA,EAAEzK,GAAE,UAAU,OAAO,UAAU,CAAC,KAAK,QAAQ,EAAE,EAAEA,GAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,QAAQ,EAAE,GAAGqL,GAAEO,IAAG,UAAU,OAAO,SAAS5B,EAAE,CAAC,IAAI/4B,EAAE85B,EAAEf,EAAE,IAAI,EAAE,IAAQ/4B,IAAJ,GAAW+4B,EAAE,SAAN,IAAe,EAAE,CAAC,KAAK,SAAS,KAAK,WAAW,KAAK,WAAW,KAAK,YAAY/4B,GAAG,CAAC,KAAK,UAAUA,EAAE,KAAK,QAAQ,gBAAgB,CAACwqB,GAAEuO,EAAE,OAAO,KAAK,QAAQ,uBAAuB,GAAGA,EAAE,iBAAiB,KAAK,QAAQ,iBAAiBA,EAAE,gBAAe,EAAG,KAAK,MAAM,GAAG,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAiB,EAAC,KAAK,UAAU99B,EAAC,EAAG,KAAK,QAAQ,QAAQ,KAAK,OAAO89B,EAAE,QAAQ,KAAK,KAAI,EAAG,IAAIrhC,EAAEqhC,EAAE,QAAQA,EAAE,QAAQ,CAAC,EAAEA,EAAE,KAAK,OAAO,KAAK,EAAE,KAAK,OAAO,KAAK,EAAE,KAAK,UAAU,KAAK,EAAE,KAAK,UAAU,KAAK,EAAE,KAAK,OAAOrhC,EAAE,MAAM,KAAK,OAAOA,EAAE,MAAM,KAAK,QAAQ,mBAAmB,CAAC,CAAC,EAAE0iC,GAAE,UAAU,MAAM,SAASrB,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,KAAK,WAAWe,EAAEf,EAAE,IAAI,IAAI,KAAK,UAAU,CAAC,KAAK,QAAQ,gBAAgBA,EAAE,eAAc,EAAG,KAAK,QAAQ,iBAAiBA,EAAE,gBAAiB,EAAC,IAAI/4B,EAAE+4B,EAAE,QAAQA,EAAE,QAAQ,CAAC,EAAEA,EAAErhC,EAAEsI,EAAE,MAAM,KAAK,OAAOi5B,EAAEj5B,EAAE,MAAM,KAAK,OAAO,KAAK,OAAOA,EAAE,MAAM,KAAK,OAAOA,EAAE,MAAM,KAAK,OAAOtI,EAAE,KAAK,OAAOuhC,EAAE,IAAIp2B,EAAE,KAAK,IAAI,KAAK,KAAK,EAAEs2B,EAAE,KAAK,IAAI,KAAK,KAAK,EAAEC,EAAEn+B,IAAI,GAAG,EAAEm+B,EAAE,KAAK,QAAQ,KAAK,QAAQ,mBAAmBD,EAAE,KAAK,QAAQ,uBAAuBt2B,EAAE,KAAK,QAAQ,uBAAuB,CAAC,GAAG,KAAK,iBAAiB,KAAK,QAAQ,aAAaA,EAAEs2B,EAAE,KAAK,QAAQ,uBAAuB,KAAK,gBAAgB,IAAIA,GAAGt2B,EAAE,KAAK,QAAQ,uBAAuB,KAAK,gBAAgB,IAAI,KAAK,gBAAgB,KAAW,KAAK,kBAAX,IAA2B,CAAC,GAAgB,KAAK,QAAQ,mBAA1B,WAA2Ck2B,EAAE,eAAgB,UAAwB,KAAK,QAAQ,mBAA5B,aAA6C,OAAO,KAAK,KAAK,UAAU,IAAIE,EAAE,CAAC,SAAe,KAAK,kBAAX,IAA2B,CAAC,GAAkB,KAAK,QAAQ,mBAA5B,aAA6CF,EAAE,eAAgB,UAAsB,KAAK,QAAQ,mBAA1B,WAA2C,OAAO,KAAK,KAAK,UAAU,IAAIrhC,EAAE,CAAC,CAACA,EAAE,KAAK,oBAAoBA,EAAE,EAAEuhC,EAAE,KAAK,kBAAkBA,EAAE,EAAE,KAAK,iBAAiB,EAAEvhC,EAAE,GAAGA,EAAE,EAAE,EAAE,EAAE,KAAK,iBAAiB,EAAEuhC,EAAE,GAAGA,EAAE,EAAE,EAAE,EAAE,IAAIj+B,EAAE,KAAK,EAAEtD,EAAE2hC,EAAE,KAAK,EAAEJ,EAAE/0B,EAAE,GAAGN,EAAE,GAAG01B,GAAE,GAAGC,GAAE,GAAGC,EAAE,KAAK,QAAQ,OAAYA,IAAL,KAASt1B,EAAWs1B,EAAE,MAAX,QAAgBA,EAAE,IAAI51B,EAAW41B,EAAE,SAAX,QAAmBA,EAAE,OAAOF,GAAWE,EAAE,OAAX,QAAiBA,EAAE,KAAKD,GAAWC,EAAE,QAAX,QAAkBA,EAAE,QAAQx+B,EAAE,KAAK,YAAYA,EAAE,KAAK,cAAcA,EAAEA,EAAE,KAAK,YAAYs+B,IAAGt+B,EAAE,KAAK,YAAYu+B,GAAE,KAAK,EAAE7hC,EAAE,EAAEsD,EAAE,KAAK,WAAW,KAAK,WAAW,KAAK,aAAaq+B,EAAE,KAAK,YAAYA,EAAE,KAAK,cAAcA,EAAEA,EAAE,KAAK,YAAYn1B,GAAGm1B,EAAE,KAAK,YAAYz1B,EAAE,KAAK,EAAEq1B,EAAE,EAAEI,EAAE,KAAK,WAAW,KAAK,WAAW,KAAK,YAAY,KAAK,QAAQ,KAAK,MAAM,GAAG,KAAK,QAAQ,aAAa,GAAG,KAAK,WAAWr+B,EAAEq+B,CAAC,EAAED,EAAE,KAAK,UAAU,KAAK,QAAQ,oBAAoB,KAAK,UAAUA,EAAE,KAAK,OAAO,KAAK,EAAE,KAAK,OAAO,KAAK,EAAM,KAAK,QAAQ,YAAjB,GAA4B,KAAK,QAAQ,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,QAAQ,WAAW,KAAK,QAAQ,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,IAAIrvB,GAAE,SAAS,gBAAgB,YAAY,OAAO,aAAa,SAAS,KAAK,WAAW0vB,GAAE,SAAS,gBAAgB,WAAW,OAAO,aAAa,SAAS,KAAK,UAAU15B,GAAE,KAAK,OAAOgK,GAAE2vB,GAAE,KAAK,OAAOD,IAAG15B,GAAE,SAAS,gBAAgB,YAAY,KAAK,QAAQ,uBAAuBA,GAAE,KAAK,QAAQ,uBAAuB25B,GAAE,KAAK,QAAQ,uBAAuBA,GAAE,SAAS,gBAAgB,aAAa,KAAK,QAAQ,wBAAwB,KAAK,KAAKX,CAAC,CAAC,CAAC,CAAC,EAAEqB,GAAE,UAAU,KAAK,SAASrB,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,KAAK,WAAWe,EAAEf,EAAE,IAAI,IAAI,KAAK,UAAU,CAAC,KAAK,UAAU,GAAG,KAAK,QAAQ,gBAAgB,CAACvO,GAAEuO,EAAE,OAAO,KAAK,QAAQ,uBAAuB,GAAGA,EAAE,eAAgB,EAAC,KAAK,QAAQ,iBAAiBA,EAAE,kBAAkB,KAAK,QAAQ,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,eAAe,GAAG,IAAI/4B,EAAE,KAAK,MAAM,KAAK,CAAC,EAAEtI,EAAE,KAAK,MAAM,KAAK,CAAC,EAAEuhC,EAAEj5B,EAAE,KAAK,UAAU6C,EAAEnL,EAAE,KAAK,UAAU,GAAG,KAAK,WAAW,EAAEuhC,EAAE,GAAGA,EAAE,EAAE,EAAE,EAAE,KAAK,WAAW,EAAEp2B,EAAE,GAAGA,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,QAAQ,iBAAiB,CAAC,KAAK,kBAAiB,GAAG,KAAK,YAAYk2B,CAAC,EAAE,KAAK,QAAQ,cAAc,UAAU,CAAC,KAAK,cAAc,KAAK,QAAQ,WAAWkB,GAAE,MAAM,EAAE,CAAC,KAAK,WAAWj6B,EAAEtI,CAAC,EAAE,KAAK,QAAQuD,IAAI,IAAIk+B,EAAE,KAAK,QAAQ,KAAK,UAAUC,EAAE,KAAK,IAAIp5B,EAAE,KAAK,MAAM,EAAEhF,EAAE,KAAK,IAAItD,EAAE,KAAK,MAAM,EAAE,GAAG,KAAK,QAAQ,OAAOyhC,EAAE,KAAK,QAAQ,gBAAgBC,EAAE,KAAK,QAAQ,oBAAoBp+B,EAAE,KAAK,QAAQ,mBAAmB,KAAK,QAAQ,OAAO,MAAM,CAAC,IAAIq+B,EAAE,EAAE,GAAG,KAAK,QAAQ,UAAUF,EAAE,KAAK,QAAQ,oBAAoBn+B,EAAE,KAAK,QAAQ,uBAAuBo+B,EAAE,KAAK,QAAQ,uBAAuB,CAAC,IAAIl1B,EAAE,GAAGN,EAAE,GAAG01B,GAAE,GAAGC,GAAE,GAAGC,EAAE,KAAK,QAAQ,OAAYA,IAAL,KAASt1B,EAAWs1B,EAAE,MAAX,QAAgBA,EAAE,IAAI51B,EAAW41B,EAAE,SAAX,QAAmBA,EAAE,OAAOF,GAAWE,EAAE,OAAX,QAAiBA,EAAE,KAAKD,GAAWC,EAAE,QAAX,QAAkBA,EAAE,OAAO,IAAIzvB,GAAO,KAAK,aAAV,IAAsBuvB,IAAO,KAAK,aAAT,GAAqBC,GAAE,KAAK,aAAa,EAAEE,GAAO,KAAK,aAAV,IAAsBv1B,GAAO,KAAK,aAAT,GAAqBN,EAAE,KAAK,cAAc,EAAE7D,GAAE,KAAK,oBAAoBm6B,GAAE,KAAK,EAAE,KAAK,OAAOf,EAAE,KAAK,WAAW,KAAK,WAAWpvB,GAAE,KAAK,OAAO,EAAE,CAAC,YAAY/J,EAAE,SAAS,CAAC,EAAE05B,GAAE,KAAK,kBAAkBQ,GAAE,KAAK,EAAE,KAAK,OAAOf,EAAE,KAAK,WAAW,KAAK,WAAWM,GAAE,KAAK,OAAO,EAAE,CAAC,YAAY/hC,EAAE,SAAS,CAAC,EAAEsI,EAAED,GAAE,YAAYrI,EAAEgiC,GAAE,YAAYL,EAAE,KAAK,IAAIt5B,GAAE,SAAS25B,GAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,KAAK,QAAQ,QAAQhiC,EAAE,KAAK,MAAMA,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW2hC,EAAE,KAAK,QAAQ,MAAM,YAAY,KAAK,IAAIM,GAAEM,GAAE,MAAM,GAAG,KAAK,QAAQ,KAAK,CAAC,IAAIL,GAAE,KAAK,aAAa55B,EAAEtI,CAAC,EAAE,KAAK,YAAYkiC,GAAEP,EAAE,KAAK,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAIr5B,EAAE45B,GAAE,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAIliC,EAAEkiC,GAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE55B,EAAE45B,GAAE,EAAEliC,EAAEkiC,GAAE,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAED,GAAE,KAAK,QAAQ,KAAK,QAAQM,GAAE,MAAM,CAAC,GAAGj6B,IAAI,KAAK,GAAGtI,IAAI,KAAK,EAAE,OAAOsI,EAAE,KAAK,YAAYA,EAAE,KAAK,YAAYtI,EAAE,KAAK,YAAYA,EAAE,KAAK,cAAciiC,GAAEM,GAAE,aAAa,KAAK,KAAK,SAASj6B,EAAEtI,EAAE2hC,EAAEM,EAAC,EAAE,KAAK,QAAQ,QAAQ,KAAK,cAAc,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,KAAK,UAAU,CAAC,GAAG,KAAK,QAAQ,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAES,GAAE,UAAU,YAAY,SAASrB,EAAE,CAAC,IAAI/4B,EAAEtI,EAAEuhC,EAAEp2B,EAAEs2B,EAAEC,EAAE,KAAK,oBAAoB,CAAC,KAAK,QAAQ,GAAG,KAAK,mBAAmB,GAAG,KAAK,MAAM,MAAM,GAAG,GAAG,KAAK,QAAQ,MAAM,CAAC,GAAG,KAAK,QAAQ,KAAK,OAAO,UAAU,SAAS,KAAK,QAAQ,MAAM,iBAAiB,EAAE,CAAC,IAAIp+B,EAAE,KAAK,IAAI,KAAK,MAAM,KAAK,EAAE,KAAK,UAAU,CAAC,EAAEq+B,EAAE,KAAK,OAAO,KAAK,QAAQx2B,EAAE,KAAK,QAAQ,CAAC,KAAK,GAAGs2B,EAAEt2B,EAAE,sBAAqB,GAAI,KAAK,OAAO,aAAa,IAAI,EAAEs2B,EAAE,IAAI,OAAO,YAAY,GAAG,IAAI,KAAK,cAAc,GAAG,KAAK,UAAU,EAAE,KAAK,OAAO,KAAK,MAAMn+B,EAAEq+B,CAAC,CAAC,CAAC,OAAO,KAAK,gBAAgB,KAAK,OAAO,KAAK,QAAQ,MAAM,YAAY,IAAI,GAAG,GAAGY,GAAE,KAAK,EAAE,EAAE,CAAC,GAAGb,EAAE,MAAM,GAAG,IAAIl1B,EAAE,KAAK,QAAQ,SAASN,EAAE,GAAG,GAAGM,GAAG,KAAK,cAAc,CAAC,IAAIo1B,GAAEp1B,EAAE,MAAMq1B,GAAWD,KAAT,OAAW,IAAIA,GAAEr+B,EAAC,EAAG,KAAK,cAAcs+B,KAAI31B,EAAE,GAAGm2B,GAAEhB,EAAE,UAAU,EAAE,CAAC,OAAO,KAAK,QAAQ,MAAM/4B,EAAE+4B,EAAErhC,EAAE,KAAK,QAAQ,KAAKuhC,EAAE,SAAS,YAAY,OAAO,GAAG,UAAUvhC,EAAE,GAAG,EAAE,EAAEuhC,EAAE,MAAMj5B,EAAE,MAAMi5B,EAAE,MAAMj5B,EAAE,MAAMA,EAAE,OAAO,cAAci5B,CAAC,GAAG,KAAK,QAAQ,OAAO,CAACzO,GAAEuO,EAAE,OAAO,KAAK,QAAQ,uBAAuB,GAAGgB,GAAEhB,CAAC,EAAE,KAAK,cAAcn1B,EAAE,KAAK3I,EAAC,EAAG,EAAE,EAAEm/B,GAAE,UAAU,QAAQ,UAAU,CAAC,IAAIrB,EAAE,KAAK,KAAK,UAAUE,IAAI,KAAK,QAAQ,UAAU,GAAG,aAAa,KAAK,aAAa,EAAE,KAAK,cAAc,WAAW,UAAU,CAACF,EAAE,QAAS,CAAA,EAAE,KAAK,QAAQ,aAAa,EAAE,EAAEqB,GAAE,UAAU,YAAY,UAAU,CAACK,GAAE,KAAK,UAAU,EAAE,KAAK,WAAWD,GAAE,SAASzB,GAAG,CAAC,IAAI/4B,EAAEtI,EAAE,oBAAqB,EAACA,EAAE,QAAQ,SAASsI,CAAC,EAAEtI,EAAE,eAAeA,EAAE,WAAW8iC,GAAEzB,CAAC,EAAErhC,EAAE,QAAQ,YAAYsI,CAAC,CAAC,CAAC,EAAE,IAAItI,EAAE,IAAI,EAAE0iC,GAAE,UAAU,gBAAgB,UAAU,CAAC,IAAIrB,EAAE,EAAE,UAAU,QAAiB,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,EAAE,GAAG,KAAK,cAAcc,EAAE,kBAAkB,EAAEd,EAAE,KAAK,KAAK,QAAQ,MAAM,QAAQ/4B,EAAE,EAAEA,EAAE,KAAK,MAAM,OAAOA,IAAI,KAAK,MAAMA,CAAC,EAAE,MAAM65B,EAAE,kBAAkB,EAAEd,EAAE,KAAK,GAAG,KAAK,WAAW,QAAQrhC,EAAE,EAAEA,EAAE,KAAK,WAAW,OAAOA,IAAI,KAAK,WAAWA,CAAC,EAAE,eAAeqhC,CAAC,CAAC,EAAEqB,GAAE,UAAU,0BAA0B,SAASrB,EAAE,CAAC,GAAG,KAAK,cAAcc,EAAE,wBAAwB,EAAEd,EAAE,KAAK,QAAQ,MAAM,QAAQ/4B,EAAE,EAAEA,EAAE,KAAK,MAAM,OAAOA,IAAI,KAAK,MAAMA,CAAC,EAAE,MAAM65B,EAAE,wBAAwB,EAAEd,EAAE,GAAG,KAAK,WAAW,QAAQrhC,EAAE,EAAEA,EAAE,KAAK,WAAW,OAAOA,IAAI,KAAK,WAAWA,CAAC,EAAE,yBAAyBqhC,CAAC,CAAC,EAAEqB,GAAE,UAAU,eAAe,SAASrB,EAAE,CAACA,EAAE,SAAS,KAAK,UAAU,KAAK,iBAAiB,KAAK,kBAAkB,KAAK,SAAa,KAAK,mBAAT,GAA2B,KAAK,cAAc,KAAK,QAAQ,WAAWkB,GAAE,MAAM,IAAI,KAAK,eAAe,GAAO,KAAK,QAAQ,YAAjB,GAA4B,KAAK,QAAQ,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,EAAEG,GAAE,UAAU,WAAW,SAASrB,EAAE/4B,EAAEtI,EAAE,CAAC,GAAG,SAASqhC,EAAE,CAAC,GAAG,CAACA,EAAE,MAAM,IAAI,MAAM,kDAAkD,CAAC,EAAE,CAACn1B,EAAEm1B,CAAC,GAAG,CAACn1B,EAAE5D,CAAC,CAAC,EAAE4D,EAAElM,CAAC,IAAIA,EAAE,KAAK,OAAO,KAAK,QAAQ,aAAa,KAAK,cAAcmiC,EAAE,SAAS,EAAE,aAAad,EAAE,MAAM/4B,EAAE,aAAatI,EAAE,IAAI,KAAK,YAAYqhC,EAAE,KAAK,MAAMA,CAAC,EAAE/4B,EAAE,KAAK,MAAMA,CAAC,EAAE,KAAK,cAAc,KAAK+4B,EAAE,KAAK,KAAK,cAAc,IAAI/4B,EAAE,MAAM,KAAK,QAAQ,MAAM,QAAQi5B,EAAE,KAAK,QAAQ,MAAM,OAAOp2B,EAAWo2B,IAAT,OAAW,GAAGA,EAAEE,EAAE,EAAEA,EAAE,KAAK,MAAM,OAAOA,IAAI,CAAC,IAAIC,EAAEv2B,GAAG7C,EAAE,KAAK,WAAWm5B,GAAG,KAAK,MAAMA,CAAC,EAAE,MAAMU,EAAE,SAAS,EAAE,WAAWT,EAAE,MAAM,CAAC,GAAG,KAAK,EAAEL,EAAE,KAAK,EAAE/4B,EAAE,KAAK,SAAStI,CAAC,EAAE,KAAK,WAAW,QAAQsD,EAAE,EAAEA,EAAE,KAAK,WAAW,OAAOA,IAAI,KAAK,WAAWA,CAAC,EAAE,eAAc,CAAE,EAAEo/B,GAAE,UAAU,SAAS,SAAShB,EAAEp+B,EAAEq+B,EAAEn1B,EAAE,CAAC,IAAIN,EAAE,KAAK01B,EAAE,KAAK,EAAEC,EAAE,KAAK,EAAEC,EAAE,KAAK,UAAUzvB,EAAE,KAAK,MAAM0vB,EAAEx+B,EAAG,EAAC8E,EAAE05B,EAAEJ,EAAE,KAAK,YAAY,GAAGoB,GAAE,KAAK,YAAY,EAAE,SAAS1B,IAAG,CAAC,IAAI/4B,GAAE/E,EAAC,EAAG,GAAG8E,GAAGC,GAAE,OAAO4D,EAAE,YAAY,GAAGA,EAAE,WAAWw1B,EAAEp+B,EAAE+O,CAAC,EAAEnG,EAAE,QAAQ,SAAS,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAE,KAAKA,EAAE,SAASA,EAAE,cAAcA,EAAE,QAAQ,UAAU,GAAGA,EAAE,QAAQ,YAAY,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,GAAG,IAAIlM,EAAEwM,EAAElE,IAAGA,GAAEy5B,GAAGJ,CAAC,EAAEJ,IAAGG,EAAEE,GAAG5hC,EAAE4hC,EAAEz2B,IAAG7H,EAAEu+B,GAAG7hC,EAAE6hC,EAAEJ,IAAGpvB,EAAEyvB,GAAG9hC,EAAE8hC,EAAE51B,EAAE,WAAWq1B,GAAEp2B,GAAEs2B,EAAC,EAAEv1B,EAAE,cAAcA,EAAE,aAAa42B,GAAEzB,EAAC,GAAOn1B,EAAE,QAAQ,YAAd,GAAyBA,EAAE,QAAQ,SAAS,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,GAAG,EAAEw2B,GAAE,UAAU,SAAS,SAASrB,EAAE/4B,EAAE,CAAC,IAAItI,EAAE,EAAE,UAAU,QAAiB,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,EAAEuhC,EAAE,EAAE,UAAU,QAAiB,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAEgB,GAAE,OAAOlB,EAAE,KAAK,EAAEA,EAAE/4B,EAAE,KAAK,EAAEA,EAAE,KAAK,SAAS+4B,EAAE/4B,EAAEtI,EAAEuhC,CAAC,CAAC,EAAEmB,GAAE,UAAU,SAAS,SAASrB,EAAE/4B,EAAE,CAAC,IAAItI,EAAE,EAAE,UAAU,QAAiB,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,EAAEuhC,EAAE,EAAE,UAAU,QAAiB,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAEgB,GAAE,OAAO,KAAK,IAAIlB,GAAG,KAAK,IAAI/4B,IAAI,KAAK,eAAe,KAAK,QAAQ,eAAe,EAAEtI,IAAIqhC,IAAI,KAAK,GAAG/4B,IAAI,KAAK,GAAG,CAACtI,GAAG,KAAK,QAAQ,eAAe,KAAK,0BAA0BuhC,EAAE,KAAK,EAAE,KAAK,gBAAgBvhC,CAAC,EAAE,KAAK,WAAWqhC,EAAE/4B,CAAC,EAAEtI,GAAO,KAAK,QAAQ,YAAjB,GAA4B,KAAK,cAAcA,IAAI,KAAK,QAAQ,SAAS,CAAC,EAAEqhC,EAAE,EAAE/4B,CAAC,CAAC,EAAE,KAAK,QAAQ,SAAS,KAAK,aAAa,KAAK,cAAc,KAAK,QAAQ,WAAWi6B,GAAE,MAAM,GAAG,KAAK,QAAQ,YAAY,CAAC,EAAElB,EAAE,EAAE/4B,CAAC,CAAC,GAAG,KAAK,QAAQ,QAAQA,EAAE,KAAK,WAAW,KAAK,cAAc,EAAEA,EAAE,KAAK,WAAW,KAAK,cAAc,KAAK,MAAM,OAAO,EAAE,KAAK,cAAc,KAAK,MAAM,KAAK,IAAIA,EAAE,KAAK,UAAU,CAAC,IAAI,KAAK,SAAS+4B,EAAE/4B,EAAEtI,EAAEuhC,EAAE,EAAE,EAAE,EAAEmB,GAAE,UAAU,gBAAgB,SAASrB,EAAE/4B,EAAEtI,EAAEuhC,EAAEp2B,EAAE,CAAC,GAAGk2B,IAAIA,EAAEA,EAAE,SAASA,EAAE,KAAK,SAAS,cAAcA,CAAC,EAAE,CAAC,KAAK,QAAQ,OAAOA,EAAE,UAAU,SAAS,KAAK,QAAQ,MAAM,cAAc,GAAG,CAAC,IAAII,EAAEK,EAAET,CAAC,EAAEI,EAAE,MAAM,KAAK,cAAc,KAAKA,EAAE,KAAK,KAAK,cAAc,IAASzhC,IAAL,KAASA,EAAE,KAAK,MAAMqhC,EAAE,YAAY,EAAE,KAAK,QAAQ,YAAY,CAAC,GAAQE,IAAL,KAASA,EAAE,KAAK,MAAMF,EAAE,aAAa,EAAE,KAAK,QAAQ,aAAa,CAAC,GAAGI,EAAE,MAAMzhC,GAAG,EAAEyhC,EAAE,KAAKF,GAAG,EAAEE,EAAE,KAAKA,EAAE,KAAK,KAAK,WAAW,KAAK,WAAWA,EAAE,KAAK,KAAK,WAAW,KAAK,WAAWA,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAI,KAAK,WAAW,KAAK,WAAWA,EAAE,IAAI,KAAK,WAAW,KAAK,WAAWA,EAAE,IAAI,KAAK,QAAQ,QAAQA,EAAE,IAAI,KAAK,MAAMA,EAAE,IAAI,KAAK,UAAU,EAAE,KAAK,YAAY,KAAK,SAASA,EAAE,KAAKA,EAAE,IAAIn5B,EAAE6C,CAAC,CAAC,CAAC,EAAEu3B,GAAE,UAAU,cAAc,UAAU,CAAC,IAAIrB,EAAE,EAAE,UAAU,QAAiB,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,EAAE/4B,EAAE,EAAE,UAAU,QAAiB,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAEi6B,GAAE,OAAOviC,EAAE,KAAK,EAAEuhC,EAAE,KAAK,MAAMvhC,CAAC,EAAE,CAAC,KAAK,qBAAqBuhC,EAAE,KAAK,WAAWvhC,EAAE,KAAK,WAAWuhC,EAAE,KAAK,aAAavhC,EAAE,KAAK,YAAY,IAAImL,EAAE,KAAK,EAAEs2B,EAAE,KAAK,MAAMt2B,CAAC,EAAE,MAAM,CAAC,KAAK,mBAAmBs2B,EAAE,KAAK,WAAWt2B,EAAE,KAAK,WAAWs2B,EAAE,KAAK,aAAat2B,EAAE,KAAK,aAAanL,IAAI,KAAK,GAAGmL,IAAI,KAAK,KAAK,KAAK,SAASnL,EAAEmL,EAAEk2B,EAAE/4B,CAAC,EAAE,GAAG,EAAEo6B,GAAE,UAAU,oBAAoB,UAAU,CAAC,IAAIrB,EAAE,OAAO,iBAAiB,KAAK,SAAS,IAAI,EAAE/4B,EAAE,OAAOtI,EAAE,OAAO,OAAOA,EAAE,KAAK,QAAQ,cAAcsI,EAAE,GAAG+4B,EAAEA,EAAEc,EAAE,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,GAAG,EAAE,GAAGd,EAAE,CAAC,GAAG,EAAEA,EAAE,EAAE,GAAGA,EAAE,CAAC,KAAK/4B,EAAE,CAAC+4B,EAAE,KAAK,QAAQ,WAAW,EAAE,EAAE,CAACA,EAAE,IAAI,QAAQ,WAAW,EAAE,GAAG,CAAC,EAAE/4B,EAAE,EAAEtI,CAAC,CAAC,EAAE0iC,GAAE,UAAU,KAAK,UAAU,CAAC,GAAG,KAAK,QAAQ,eAAe,KAAK,eAAe,CAAC,KAAK,eAAe,GAAGK,GAAE,KAAK,UAAU,EAAE,IAAI1B,EAAE,KAAK,oBAAmB,EAAG,KAAK,WAAWA,EAAE,EAAEA,EAAE,CAAC,EAAE,KAAK,QAAQ,MAAM,KAAK,OAAO,KAAK,MAAM,KAAK,MAAM,CAACA,EAAE,EAAE,KAAK,UAAU,CAAC,EAAE,KAAK,QAAQ,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,mBAAmB,EAAE,KAAK,CAAC,KAAK,QAAQ,eAAe,KAAK,cAAc,KAAK,YAAY,GAAG0B,GAAE,KAAK,YAAY,EAAE,KAAK,QAAQ,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,mBAAmB,GAAG,EAAEL,GAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,UAAU,GAAG,KAAK,QAAQ,SAAS,EAAE,KAAK,QAAQ,cAAcK,GAAE,KAAK,UAAU,EAAEA,GAAE,KAAK,YAAY,EAAE,KAAK,iBAAkB,EAAC,KAAK,QAAQ,CAAE,CAAA,GAAGJ,GAAEM,IAAG,UAAU,GAAG,SAAS5B,EAAE/4B,EAAE,CAAC,IAAItI,EAAE,EAAE,UAAU,QAAiB,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,KAAK,KAAK,QAAQqhC,CAAC,IAAI,KAAK,QAAQA,CAAC,EAAE,CAAE,GAAE,KAAK,QAAQA,CAAC,EAAE,KAAK,CAAC/4B,EAAEtI,CAAC,CAAC,CAAC,EAAE2iC,GAAE,UAAU,KAAK,SAAStB,EAAE/4B,EAAE,CAAC,IAAItI,EAAE,EAAE,UAAU,QAAiB,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,KAAK,SAASuhC,GAAG,CAAC,KAAK,IAAIF,EAAEE,CAAC,EAAEj5B,EAAE,MAAMtI,EAAE,SAAS,CAAC,CAACuhC,EAAE,GAAGj5B,EAAE,KAAK,GAAG+4B,EAAEE,CAAC,CAAC,EAAEoB,GAAE,UAAU,IAAI,SAAStB,EAAE/4B,EAAE,CAAC,IAAItI,EAAE,KAAK,QAAQqhC,CAAC,EAAE,GAAGrhC,EAAE,QAAQuhC,EAAEvhC,EAAE,OAAOuhC,MAAMvhC,EAAEuhC,CAAC,EAAE,CAAC,IAAIj5B,GAAGtI,EAAEuhC,CAAC,EAAE,CAAC,GAAGvhC,EAAEuhC,CAAC,EAAE,CAAC,EAAE,KAAKj5B,IAAI6C,EAAEnL,EAAEuhC,CAAC,CAAC,EAAEoB,GAAE,UAAU,QAAQ,SAAStB,EAAE,CAAC,IAAI/4B,EAAE,KAAK,QAAQ+4B,CAAC,EAAE,GAAG/4B,EAAE,QAAQtI,EAAEsI,EAAE,OAAOi5B,EAAE,GAAG,OAAO,SAASF,EAAE,CAAC,GAAG,MAAM,QAAQA,CAAC,EAAE,CAAC,QAAQ/4B,EAAE,EAAEtI,GAAE,MAAMqhC,EAAE,MAAM,EAAE/4B,EAAE+4B,EAAE,OAAO/4B,IAAItI,GAAEsI,CAAC,EAAE+4B,EAAE/4B,CAAC,EAAE,OAAOtI,EAAC,CAAC,OAAO,MAAM,KAAKqhC,CAAC,CAAC,EAAE/4B,CAAC,CAAC,EAAE6C,EAAE,EAAEA,EAAEnL,EAAEmL,IAAI,CAAC,IAAIs2B,EAAEF,EAAEp2B,CAAC,EAAEu2B,EAAE,EAAED,EAAE,CAAC,EAAEn+B,EAAEo+B,EAAE,CAAC,EAAEC,EAAED,EAAE,CAAC,EAAEp+B,GAAGA,EAAE,MAAMq+B,EAAE,CAAA,EAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,GAAGiB,GAAEK,IAAG,UAAU,QAAQ,UAAU,CAAC,IAAI5B,EAAE,EAAE,UAAU,QAAiB,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,EAAE,GAAG,KAAK,QAAQ,MAAM,CAAC,IAAI/4B,EAAE,CAAC+4B,EAAE,KAAK,WAAW,KAAK,SAAS,EAAE/4B,CAAC,CAAC,CAAC,EAAEs6B,GAAE,UAAU,iBAAiB,UAAU,CAAC,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,EAAEA,GAAE,UAAU,WAAW,UAAU,CAAC,IAAIvB,EAAE,KAAK,QAAQ,MAAMA,EAAE,oBAAoBA,EAAE,kBAAkB,gBAAgBA,EAAE,iBAAiBA,EAAE,eAAe,cAAuBA,EAAE,gBAAX,SAA2BA,EAAE,cAAc,EAAE2B,GAAE,yCAAyC,EAAE,GAAGH,GAAEI,IAAG,UAAU,gBAAgB,UAAU,CAAC,IAAI5B,EAAE,KAAK,KAAK,uBAAuBO,CAAC,EAAE,KAAK,GAAG,UAAU,UAAU,CAAC,aAAaP,EAAE,eAAe,EAAE,aAAaA,EAAE,kBAAkB,EAAEA,EAAE,uBAAuBQ,CAAC,CAAC,CAAC,EAAE,KAAK,oBAAoB,EAAE,EAAEgB,GAAE,UAAU,uBAAuB,SAASxB,EAAE,CAACA,EAAE,KAAK,QAAQ,QAAQ,IAAI,EAAEA,EAAE,KAAK,QAAQ,aAAa,IAAI,EAAEA,EAAE,KAAK,QAAQ,iBAAiB,IAAI,CAAC,EAAEwB,GAAE,UAAU,cAAc,SAASxB,EAAE,CAAC,IAAI/4B,EAAE,KAAK,GAAG,KAAK,QAAQ,CAAC+4B,EAAE,iBAAiB,KAAK,QAAQ,iBAAiBA,EAAE,kBAAkB,KAAK,qBAAqB,KAAK,QAAQ,aAAa,EAAE,KAAK,oBAAoB,GAAG,IAAIrhC,EAAE,KAAK,QAAQ,WAAWuhC,EAAEvhC,EAAE,MAAMmL,EAAWo2B,IAAT,OAAW,GAAGA,EAAEE,EAAEzhC,EAAE,OAAO0hC,EAAWD,IAAT,QAAYA,EAAEn+B,EAAEtD,EAAE,SAAS2hC,EAAWr+B,IAAT,OAAW,IAAIA,EAAE,aAAa,KAAK,eAAe,EAAE,KAAK,gBAAgB,WAAW,UAAU,CAACgF,EAAE,QAAQ,MAAMq5B,GAAGr5B,EAAE,QAAQ,YAAY,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAEA,EAAE,oBAAoB,EAAE,EAAE,GAAG,EAAE,IAAIkE,EAAE,OAAON,EAAE,OAAO,OAAO,GAAI,CAAA,IAAI,WAAWm1B,EAAEn1B,EAAMm1B,EAAE,YAAN,GAAiB70B,EAAE,CAAC60B,EAAE,OAAOl2B,EAAE,CAACk2B,EAAE,OAAOl2B,IAAIqB,EAAE,CAAC60B,EAAE,OAAO,CAACA,EAAE,QAAQ,MAAM,IAAI,gBAAgBA,EAAE70B,EAAE60B,EAAE,YAAY,IAAIl2B,EAAEe,EAAEm1B,EAAE,YAAY,IAAIl2B,EAAE,MAAM,IAAI,eAAek2B,EAAE70B,EAAEN,EAAEm1B,EAAE,WAAW,IAAIl2B,EAAE,MAAM,IAAI,WAAWk2B,EAAE70B,EAAEN,EAAE,CAACm1B,EAAE,OAAO,EAAEl2B,EAAE,MAAM,QAAQ,MAAM,CAAC,IAAIy2B,GAAEF,EAAE,GAAG,EAAEl1B,GAAGo1B,GAAE11B,GAAG01B,GAAE,KAAK,oBAAoBp1B,EAAEN,EAAEA,EAAE,GAAG,IAAI21B,GAAE,OAAOC,EAAE,OAAO,GAAG,KAAK,QAAQ,KAAK,OAAOD,GAAE,KAAK,YAAY,MAAMC,EAAE,KAAK,YAAY,MAAM,EAAEt1B,EAAEq1B,KAAIr1B,EAAE,GAAGq1B,KAAI,EAAE31B,EAAE41B,IAAI51B,EAAE,GAAG41B,IAAI,KAAK,KAAK,UAAUD,GAAEC,CAAC,EAAED,GAAE,KAAK,EAAE,KAAK,MAAM,KAAK,oBAAoBr1B,EAAE,CAAC,EAAEs1B,EAAE,KAAK,EAAE,KAAK,MAAM,KAAK,kBAAkB51B,EAAE,CAAC,EAAE,KAAK,iBAAiB,KAAK,WAAW,EAAEM,EAAE,GAAGA,EAAE,EAAE,EAAE,EAAE,KAAK,iBAAiB,KAAK,WAAW,EAAEN,EAAE,GAAGA,EAAE,EAAE,EAAE,EAAE21B,GAAE,KAAK,WAAWA,GAAE,KAAK,WAAWA,GAAE,KAAK,aAAaA,GAAE,KAAK,YAAYC,EAAE,KAAK,WAAWA,EAAE,KAAK,WAAWA,EAAE,KAAK,aAAaA,EAAE,KAAK,YAAY,IAAIzvB,GAAE,KAAK,IAAIyvB,EAAE,KAAK,SAASD,GAAEC,EAAEH,EAAEY,GAAE,KAAK,EAAE,KAAK,QAAQ,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,aAAa,KAAK,kBAAkB,EAAElwB,KAAI,KAAK,mBAAmB,WAAW,UAAU,CAAC/J,EAAE,QAAQ,YAAY,CAAC,EAAEA,EAAE,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAEq5B,CAAC,EAAE,CAAC,EAAEsB,GAAE,QAAQ,SAASA,EAAC,EAAC,CAAE,EAAE5B,EAAE,CAAC,QAAQ,CAAA,CAAE,EAAEA,EAAE,OAAO,EAAEA,EAAE,SAAS,SAAS/4B,GAAG,CAAC,IAAI+4B,EAAE,EAAE,UAAU,QAAiB,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG/4B,EAAE,KAAKtI,EAAE,OAAO,GAAGsI,EAAE,OAAO+4B,CAAC,EAAEA,EAAE,GAAG,CAAC,GAAG,EAAErhC,EAAEwhC,EAAEH,EAAE,EAAE,IAAIrhC,EAAE,aAAa,OAAOA,EAAE,aAAa,EAAEsI,EAAE,IAAItI,EAAE,UAAU,CAACsI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG+4B,EAAE,MAAM,CAACA,EAAE,KAAcrhC,EAAE,SAAS,YAAa,GAAjC,QAAkCA,EAAE,MAAMqhC,EAAE,MAAMrhC,EAAE,UAAUqhC,EAAE,OAAO,IAAIE,EAAEF,EAAE,MAAM,QAAQ,KAAK,GAAG,EAAE,QAAQ,aAAa,EAAE,EAAEl2B,EAAE,IAAI,KAAKo2B,CAAC,EAAEp2B,GAAmBA,GAAhB,eAAkBk2B,EAAE,GAAGrhC,EAAE,SAASmL,EAAE7C,EAAE,SAAS6C,EAAE,QAAQ,MAAM,qBAAgBo2B,CAAC,CAAC,CAAC,CAAC,OAAOj5B,EAAE,UAAU,CAAC,YAAYA,EAAE,SAAS,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,gBAAgB,GAAG,iBAAiB,GAAG,eAAe,GAAG,gBAAgB,GAAG,eAAe,GAAG,cAAc,EAAE,KAAK,CAAC,GAAG,GAAG,OAAO,aAAa,UAAU,IAAI,QAAQ,KAAK,KAAK,KAAK,QAAQ,KAAK,QAAQ,KAAK,OAAO,KAAK,QAAQ,EAAE,QAAQ,MAAM,KAAK,CAAC,MAAM,2BAAO,OAAO,eAAK,QAAQ,eAAK,KAAK,SAAI,MAAM,SAAI,IAAI,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,QAAG,CAAC,CAAC,CAAC,EAAE,OAAO,SAAS+4B,EAAE,CAAC,IAAI/4B,EAAE,KAAK,SAAQ,EAAG,KAAK,QAAQtI,KAAKsI,EAAE,GAAGA,EAAEtI,CAAC,GAAsB,OAAO,UAAU,SAAS,KAAKsI,EAAEtI,CAAC,CAAC,GAAtD,kBAAwD,QAAQuhC,KAAKF,EAAErhC,CAAC,EAAEsI,EAAEtI,CAAC,EAAEuhC,CAAC,EAAQF,EAAErhC,CAAC,EAAEuhC,CAAC,GAAZ,KAAcj5B,EAAEtI,CAAC,EAAEuhC,CAAC,EAAEF,EAAErhC,CAAC,EAAEuhC,CAAC,OAAOj5B,EAAEtI,CAAC,EAAEqhC,EAAErhC,CAAC,GAAGsI,EAAEtI,CAAC,EAAE,KAAK,OAAOsI,CAAC,EAAE,SAAS,UAAU,CAAC,QAAQm5B,EAAE,KAAKJ,EAAEI,EAAE,SAAU,EAACC,EAAED,EAAE,OAAOn+B,EAAE+9B,EAAE,MAAMM,EAAED,EAAE,OAAO,MAAM,YAAY,EAAEp5B,EAAEq5B,EAAE,OAAO3hC,EAAE,GAAGwM,EAAEk1B,EAAE,GAAGF,EAAEE,EAAE,EAAE,EAAE,UAAU,IAAI,KAAKD,EAAE,UAAU,IAAI,KAAKv1B,EAAEw1B,EAAE,KAAKH,EAAE,EAAEA,EAAEj5B,EAAEi5B,IAAI,CAAC,IAAIp2B,EAAEw2B,EAAEJ,CAAC,EAAE,EAAE,EAAE,GAAGvhC,GAAG,YAAYsD,EAAE6H,CAAC,EAAE,8BAAsCA,GAAR,OAAU,QAAQ02B,EAAEH,EAAE,UAAUG,GAAGH,EAAE,QAAQG,IAAI7hC,GAAG,0BAA0B6hC,GAAGr1B,EAAE,cAAc,SAAS,IAAI,iBAAiB,EAAE,KAAKq1B,EAAE31B,EAAE,KAAK,QAAQ,YAAkBf,GAAN,KAAQ,QAAQ22B,EAAE,EAAEA,GAAG,GAAGA,IAAI9hC,GAAG,0BAA0B8hC,GAAGt1B,EAAE,SAAQ,EAAG,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAMs1B,EAAE,GAAG,IAAIA,EAAEA,GAAG51B,EAAE,MAAM,QAAQ,YAAkBf,GAAN,KAAQ,QAAQkH,EAAEovB,EAAE,cAAcj1B,EAAE,YAAW,EAAGA,EAAE,SAAQ,EAAG,CAAC,EAAEu1B,EAAE,EAAEA,GAAG1vB,EAAE0vB,IAAI/hC,GAAG,0BAA0B+hC,GAAGv1B,EAAE,UAAU,SAAS,IAAI,iBAAiB,EAAE,MAAMu1B,EAAE,GAAG,IAAIA,EAAEA,GAAG71B,EAAE,IAAI,QAAQ,YAAkBf,GAAN,KAAQ,QAAQ9C,EAAE,EAAEA,GAAG,GAAGA,IAAIrI,GAAG,0BAA0BqI,GAAGmE,EAAE,WAAW,SAAS,IAAI,iBAAiB,EAAE,MAAMnE,EAAE,GAAG,IAAIA,EAAEA,GAAG6D,EAAE,KAAK,QAAQ,YAAkBf,GAAN,KAAQ,QAAQ62B,EAAE,EAAEA,GAAG,GAAGA,GAAGN,EAAE,QAAQ1hC,GAAG,0BAA0BgiC,GAAGx1B,EAAE,aAAa,SAAS,IAAI,iBAAiB,EAAE,MAAMw1B,EAAE,GAAG,IAAIA,EAAEA,GAAG91B,EAAE,IAAI,QAAQ,YAAkBf,GAAN,KAAQ,QAAQ82B,EAAE,EAAEA,GAAG,GAAGA,IAAIjiC,GAAG,0BAA0BiiC,GAAGz1B,EAAE,aAAa,SAAS,IAAI,iBAAiB,EAAE,MAAMy1B,EAAE,GAAG,IAAIA,EAAEA,GAAG/1B,EAAE,IAAI,QAAQ,IAAIlM,GAAG,aAAa,CAAC,IAAIkiC,EAAE;AAAA;AAAA;AAAA,iEAAyKh2B,EAAE,OAAO;AAAA,sBAAgCA,EAAE,MAAM;AAAA,kEAAqEA,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAwSlM,EAAE;AAAA;AAAA;AAAA,oBAA+EuD,EAAE,SAAS,cAAc,KAAK,EAAEA,EAAE,UAAU,qBAAqBA,EAAE,UAAU2+B,EAAE,SAAS,KAAK,YAAY3+B,CAAC,EAAEk+B,EAAE,OAAO,CAAA,EAAG,QAAQU,EAAE,SAASd,EAAE,CAAC,IAAI/4B,EAAEhF,EAAEq+B,EAAEN,CAAC,CAAC,EAAEI,EAAE,OAAOE,EAAEN,CAAC,CAAC,EAAE,IAAIvO,EAAE,IAAIxqB,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,IAAIi5B,GAAEE,EAAE,OAAOE,EAAEN,CAAC,CAAC,EAAErhC,GAAEwhC,EAAE,IAAIl5B,EAAE,UAAU,EAAE6C,GAAEnL,GAAEA,GAAE,aAAa,YAAY,EAAE,KAAK,MAAMwM,EAAE,aAAak1B,EAAE,OAAO,EAAEH,GAAE,QAAQp2B,EAAC,EAAEo2B,GAAE,GAAG,YAAY,UAAU,CAAC,GAAGG,EAAE,SAASA,EAAE,QAAQ,KAAKD,EAAEF,EAAC,EAAM,CAACj+B,EAAE,KAAKA,EAAE,EAAE,EAAE,QAAQi+B,GAAE,QAAQ,EAAE,GAAtC,IAAyCE,EAAE,OAAO,MAAMA,EAAE,OAAO,IAAIA,EAAE,OAAO,GAAG,CAAC,IAAIJ,GAAEI,EAAE,cAAcA,EAAE,YAAYA,EAAE,OAAO,IAAI,EAAEA,EAAE,YAAYA,EAAE,OAAO,EAAE,CAAC,EAAEn5B,GAAE,GAAG,GAAG+4B,IAAGG,EAAE,IAAIl+B,EAAE,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQtD,GAAE,EAAEA,IAAGqhC,GAAErhC,KAAIsI,IAAG,2BAA2BtI,GAAE,GAAG,IAAIA,GAAEA,IAAGkM,EAAE,IAAI,QAAQs1B,EAAE,IAAIl+B,EAAE,GAAG,KAAK,EAAE,UAAUgF,GAAEm5B,EAAE,OAAO,GAAG,QAAO,CAAE,CAAC,CAAC,CAAC,CAAC,EAAEW,EAAE,EAAEA,EAAE95B,EAAE85B,IAAID,EAAEC,CAAC,EAAEZ,EAAE,iBAAiB,EAAE,UAAU,uBAAuB,EAAE,IAAI,SAASH,EAAErhC,EAAE,CAAC,GAAG,iBAAiB,QAAe,KAAK,OAAO,SAAnB,MAA2B,CAAC,IAAIuhC,EAAE,CAAA,EAAGj5B,EAAE,SAAS+4B,EAAE,CAAC,IAAI/4B,EAAE+4B,EAAE,QAAQ,CAAC,EAAEE,EAAE,OAAOj5B,EAAE,MAAMi5B,EAAE,OAAOj5B,EAAE,MAAMi5B,EAAE,MAAM,CAAC,IAAI,IAAI,EAAEp2B,EAAE,SAASk2B,EAAE,CAAC,IAAI/4B,EAAE+4B,EAAE,eAAe,CAAC,EAAEE,EAAE,KAAKj5B,EAAE,MAAMi5B,EAAE,KAAKj5B,EAAE,MAAM,CAAC,IAAI,KAAKi5B,EAAE,MAAM,KAAK,KAAK,IAAIA,EAAE,KAAKA,EAAE,MAAM,EAAE,KAAK,IAAIA,EAAE,KAAKA,EAAE,MAAM,EAAE,KAAKF,EAAE,eAAc,EAAGrhC,EAAE,KAAK,KAAKqhC,CAAC,GAAGE,EAAE,CAAE,CAAA,EAAc,OAAOvhC,GAAnB,YAAsBqhC,EAAE,iBAAiB,aAAa/4B,CAAC,EAAE+4B,EAAE,iBAAiB,WAAWl2B,CAAC,IAAIk2B,EAAE,oBAAoB,aAAa/4B,CAAC,EAAE+4B,EAAE,oBAAoB,WAAWl2B,CAAC,EAAE,KAAK,CAAC,IAAIs2B,EAAE,SAASJ,EAAE,CAACrhC,EAAE,KAAK,KAAKqhC,CAAC,CAAC,EAAc,OAAOrhC,GAAnB,WAAqBqhC,EAAE,iBAAiB,QAAQI,CAAC,EAAEJ,EAAE,oBAAoB,QAAQI,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,IAAIJ,EAAE,KAAK,OAAO/4B,EAAE,OAAO,GAAG+4B,EAAE,GAAG,CAAC,GAAG,EAAE/4B,EAAEk5B,EAAEH,EAAE,EAAE,GAAG,aAAa,OAAgB/4B,EAAE,SAAS,YAAa,GAAjC,SAAmCA,EAAE,MAAM,CAACk5B,EAAE,qBAAqB,GAAGH,EAAE,MAAWA,EAAE,KAAK,KAAK,IAAI,IAArB,KAAyB,KAAK,WAAW,KAAK,MAAK,EAAG,EAAE,KAAK,SAASA,EAAE,CAAC,IAAI/4B,EAAEk5B,EAAE,wBAAwB,EAAEl5B,IAAIA,EAAE,UAAU,yBAAyB,KAAK,QAAQ+4B,CAAC,EAAE,EAAE,MAAM,UAAU,CAAC,IAAI/9B,EAAE,KAAK+9B,EAAEG,EAAE,gBAAgB,EAAEl5B,EAAEk5B,EAAE,kBAAkB,EAAExhC,EAAEwhC,EAAE,mBAAmB,EAAEl+B,EAAE,IAAI+9B,EAAE,UAAU,CAAC/9B,EAAE,KAAK,CAAC,CAAC,CAAC,EAAEA,EAAE,IAAIgF,EAAE,UAAU,CAAChF,EAAE,KAAK,CAAC,CAAC,CAAC,EAAEA,EAAE,IAAItD,EAAE,UAAU,CAAC,IAAIqhC,EAAE/9B,EAAE,OAAOgF,EAAE,OAAOtI,EAAEqhC,EAAE,OAAOE,EAAE,IAAI,KAAK,QAAQp2B,KAAK7H,EAAE,OAAO,CAAC,IAAIm+B,EAAEn+B,EAAE,YAAYA,EAAE,OAAO6H,CAAC,CAAC,EAAEnL,EAAEA,EAAE,QAAQmL,EAAEs2B,CAAC,EAAUt2B,GAAR,OAAUo2B,EAAE,YAAYE,CAAC,EAAQt2B,GAAN,KAAQo2B,EAAE,SAASE,EAAE,CAAC,EAAQt2B,GAAN,KAAQo2B,EAAE,QAAQE,CAAC,EAAQt2B,GAAN,KAAQo2B,EAAE,SAASE,CAAC,EAAQt2B,GAAN,KAAQo2B,EAAE,WAAWE,CAAC,EAAQt2B,GAAN,MAASo2B,EAAE,WAAWE,CAAC,CAAC,CAAC,GAAGJ,EAAE,QAAQ,CAAC,IAAIK,EAAEL,EAAE,QAAQ,KAAK/9B,EAAEtD,CAAC,EAAE,GAAQ0hC,IAAL,GAAO,MAAM,GAAGA,IAAI1hC,EAAE0hC,EAAE,CAACL,EAAE,KAAc/4B,EAAEk5B,EAAEH,EAAE,EAAE,GAAG,SAAS,eAA9B,QAA4C/4B,EAAE,MAAMtI,EAAEsI,EAAE,UAAUtI,EAAEsI,EAAE,SAASi5B,GAAGj+B,EAAE,SAASi+B,EAAEj+B,EAAE,MAAM,CAAC,CAAC,EAAE,cAAc,SAAS+9B,EAAE/4B,EAAE,CAAC,IAAItI,EAAE,OAAO,OAAUsI,GAAH,GAASA,GAAH,GAASA,GAAH,GAASA,GAAH,GAASA,GAAH,GAAUA,GAAJ,IAAWA,GAAJ,GAAMtI,EAAE,GAAMsI,GAAH,GAASA,GAAH,GAAUA,GAAJ,IAAUA,GAAH,EAAKtI,EAAE,GAAMsI,GAAH,IAAOtI,EAAEqhC,EAAE,GAAG,GAAGA,EAAE,KAAK,GAAGA,EAAE,KAAK,EAAE,GAAG,IAAIrhC,CAAC,EAAE,QAAQ,SAASqhC,EAAE,CAAC,IAAI/4B,EAAE,KAAKtI,EAAEsI,EAAE,OAAO,QAAQi5B,KAAKj5B,EAAE,OAAOA,EAAE,OAAOi5B,CAAC,EAAE,QAAS,EAACF,GAAGrhC,EAAE,QAAQA,EAAE,OAAO,KAAKsI,CAAC,EAAEA,EAAE,IAAIk5B,EAAE,gBAAgB,EAAE,CAAC,EAAEl5B,EAAE,IAAIk5B,EAAE,kBAAkB,EAAE,CAAC,EAAEl5B,EAAE,IAAIk5B,EAAE,mBAAmB,EAAE,CAAC,EAAE,WAAW,UAAU,CAAC,IAAIH,EAAEG,EAAE,qBAAqB,EAAEH,GAAG,SAAS,KAAK,YAAYA,CAAC,EAAEA,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,YAAY,SAASA,EAAE,CAAC,OAAOG,EAAE,IAAIH,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAEA,EAAE,iBAAgB,CAAE,EAAE,UAAU,QAAQ,MAAM,EAAE,CAAC,CAAC,EAAE/4B,EAAE,QAAQ,QAAQA,CAAC,CAAC,oCCK7mnC,MAAM46B,GAAiBzkC,EAAgB,CAC5CiI,KAAM,iBACNhI,MAAOykC,GAAgD,EACvDrH,MAAOX,GAAgB,EACvBj8B,MAAMR,EAAO,CAAES,KAAAA,CAAK,EAAG,CACrB,MAAMC,EAAKoB,EAAa,aAAa,EAC/B0L,EAAIxN,EAAMiO,WAEVgvB,EAAczvB,EAAGgB,oBAEvBk2B,EAAAC,EAAA,IACMA,EAAAA,EAAsBvd,QAE5Bwd,EAAA95B,EAAA,IAAA,EACM45B,EAAS,kCAEf,OAAA,eACA,QAAa,6BAEb,MAAA,SACMG,IAAAA,uBAEN,IAAA,SACA,IAAyC,UAEzCvI,EAAAxxB,IACMkc,EAAOlc,EAAA,qBAAA,EACXqM,EAAa3J,EAAA,YACbs3B,IACA5M,EAAO,MAAM8D,GAEb3U,MAAAA,EAAUvc,IACVwc,MAAQtnB,EAAA,MAAA,CAAAkM,EAAAC,IAAA,CACRob,GAAIrb,GAAKA,IAAAC,EAAA,CACTqb,MAAQud,EAAArK,GAAAxuB,CAAA,EAAA,OAAA8vB,CAAA,EACH+I,IAAA,eACNC,EAAA,MAAAD,EAEDC,EAAA,MAAA94B,EAGA,EAAA,CACA,UAAY,KAEZ,MAAA4zB,EAAAr9B,GAAA,CACAhC,EAAiB,SAAAgC,CAAMu5B,CACvB,EACQ0C,EAAM,IAAc,CAC5Bj+B,EAAA,OAAA,GAEAu9B,EAAA,IAAA,CACAv9B,EAAiB,MAAA,GAKb,OAAAmI,GAAA,IAAA,CACA,MAAU6pB,EAAA6J,EAAU,MACZyI,IACNH,EAAkB,MAAA,IAAAK,GAAgB,CAChCD,GAAAA,EACK,OAAAje,EAAA,MACLie,UAAAA,EACF,QAAAE,EACF,QAAAL,EAEF,KAAA7d,EAAE5a,MAAW44B,EAAA,MACd,QAAAviC,SAEDA,GAEM,KAAC,IAAUA,CAChB,GAAAzC,EAAA,UAAAA,EAAA,iBAGK0+B,EACA,KAGN,CACMV,GAAAA,EACJv9B,EAAAA,EACD,YAAAw8B,EAEDr0B,OAAAA,EACE,YAAAo8B,EACA,QAAAtG,EACEkG,OAAAA,wBAIS,QACA3jC,EAAA,MAAA,OACH,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,GAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,EAAA,SACC,SAAa,KAACwB,YAAK,CAAAxB,EAAAI,EAAA,WAAA,EAAA,KAAA,OACjBJ,EAAqB,QAAA,KACjB,YACT,KAAA,aACD,KAAA,wBACW,KAAA,EAAA,YACV,YAAUsQ,OACR,QAAA,KAAY,QACd,SAAA,KAAA,SACF,SAAA,KAAA,QACF,EAAC,IAAC,EACJ,aAAAtQ,EAAA89B,GAAA,KAAA,IAAA,CACF,CAAC,CAAC,CAAA,CAAA,KCtHN,IAAInwB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAM0iC,WAAmCvG,EAAiB,CAC/D,aAAc,CACZ,MAAM,GAAG,SAAS,EAOlB7vB,GAAc,KAAM,cAAe,gCAAgC,EAOnEA,GAAc,KAAM,aAAa,CAClC,CASD,gBAAgBiuB,EAAY,CAC1B,OAAQA,EAAU,CAChB,IAAK,UACH,MAAO,sBACT,IAAK,iBACH,MAAO,sBACT,IAAK,iBACH,MAAO,aACT,IAAK,eACH,MAAO,gBACT,IAAK,iBACH,MAAO,mBACT,IAAK,gBACH,MAAO,WACT,IAAK,yBACH,MAAO,QACT,QACE,MAAO,qBACV,CACF,CACD,MAAM,QAAS,CACb,MAAM,OAAM,EACZ,KAAK,YAAc,KAAK,gBAAgB,KAAK,MAAM,UAAU,CAC9D,CACH,CCzDA,IAAIpuB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAM2iC,EAAyB,CACpC,aAAc,CACZr2B,GAAc,KAAM,aAAc,gBAAgB,EAClDA,GAAc,KAAM,aAAc,gBAAgB,CACnD,CACD,MAAM,iBAAiBkuB,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAI23B,GAA2BlI,EAAaC,CAAgB,EACtE,aAAM1vB,EAAE,OACDA,CACR,CACH,OCNoB63B,GAAAtlC,EAAA,CAClBC,KAAK,aACLo9B,MAAOX,GAAgB,EACvBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CAEA,MAAM+M,EAAiC1L,EAAY,QAAA,iBAEnDy9B,EAAAz0B,EAAA,EAAA,EACMy0B,EAA4Cz0B,EAAM,CAAA,CAAA,UAExDw6B,EAAAx6B,EAAA,EAAA,EACMmT,EAA6BnT,YAEnC1C,EAAA,IAAApI,EAAA,MAAAkM,GAAA,CACA,GAAMqR,GAAUrR,SAAa,WAE7BA,IAAA,OACMo5B,EAAS,UAEf,MAAA7iC,EAAAzC,EAAA,KAAAwN,EAAA,SAAA,KAC2ByQ,EAAA,MAAGnT,UAAKmF,GAAA,OAAA,GAAAA,EAAAzC,EAAA,OAAA,EAAA/K,CAAA,CAAA,OAEnC,OAGA2F,EACQpI,MAAMyC,GAEA,CAAA8iC,GAAUr5B,CAAA,OAAWzJ,CAAA,GACrBwb,EAAA,MAAM,KAAmB,CAC7B/R,CAAAA,EAAAA,QAAW,EAAAA,EACL,CAAAsB,EAAA,OAAM,EAAA/K,CAChB,CAAA,EAKA,EAAA,CACE,UAAA,EACF,CAAA,EACA,MAAA+iC,EAAA,MAAA/1B,GAAA,OACKg2B,EAAW,MAAAj4B,EAAA,kBAAAiC,CAAA,EACZg2B,EAAQ,QACVxnB,EAAMxb,QAAWijC,GAAA,CAAEjlC,EAAGklC,SAAQD,EAAS,MAAAA,EAAA,EAAA,IACzCl4B,EAAA,WACF/M,EAAA,SAAAgP,EAAAjC,EAAA,OAAA,EAAAA,EAAA,SAAA,EAEApB,EAAAA,SAAWqD,EAAAjC,EAAA,QAAA,CAAA,CAAK,cAGpBlM,EAAA,gBAAA,EACA,MAAsBskC,EAAA,MAAAp4B,EAAA,eAA0BxN,EAAA,IAAA,EAC9C4lC,GAAAA,EAAA,CAAA,GACMH,MAAAA,EAAmBG,EAAkB,CAAA,CAAA,CAEzCH,EACEhlC,EAAeilC,MAAQpkC,IACzBA,EAAA,gBAAE,EACJ,MAAAskC,EAAA,MAAAp4B,EAAA,aAAAxN,EAAA,IAAA,WAEA,MAAAwlC,EAAAI,EAAA,CAAA,CAAA,CAEEnlC,EACFolC,EAAA,MAAA51B,GAAA,CACAxP,QAA8BwP,CAAA,EAC/Bq1B,EAAA,MAAA,IAEDQ,EAAAr2B,GACoBA,EAAA,IAAAQ,IACD,CACX21B,KAAM31B,EAAAzC,EAAA,UACRo4B,MAAOA,EAAKp4B,EAAG,OAAA,EACjB,GAAAyC,CACF,EACD,EAEDoQ,EAAA,MAAAM,EAAAnc,IAAA,CACA,GAAMuhC,EAAY,MAAA,gBAA4B,CAC1CjlC,MAAeklC,EAAErlB,GAAA,GAAA,KAAA,EACbilB,EAAM,MAAMp4B,GAClB,MACE,GAAA,CACFo4B,EAAA,MAAAp4B,EAAA,eAAAw4B,EAAAhmC,EAAA,IAAA,EACD4lC,sBAEDphC,GAAAA,aAAA,UACgBA,EAAAyZ,EAAG,KAAOhO,UAGzB,WAED,CACM61B,CACJ,MACEtI,EAAO,GAA0B/6B,QAAwBwjC,EAAGh2B,GAAAA,GAAAA,CAAMwtB,IAAAn4B,GAClE+a,EAAA/a,CAAA,WAGJk4B,EAAA,QAIW,CACP,QAAO,KAELoI,EAAcM,GAAAA,CACd,MAAA5gC,EAASiJ,EAAA,OAAA,WAEP03B,EAAM3gC,CAAM,CACVd,EACF2hC,EAAA,IAAA,CACF,MAAAV,EAAAj4B,EAAA,UACQi4B,GAAA,UACAhjC,QAAaijC,GAAA,CACvBjlC,EAAA,SAAA,KAAAilC,EAAA,EAAA,CACF,CAAA,EAGElI,EAAAA,WACAE,EAAuB,SAAA,KAAAlwB,EAAA,SAAA,EAE3B/M,EAAA,SAAA,IAAA,CACA,EAEI2lC,GAAA54B,EAAA,SAAA,EAAA,IAAAA,EAAA,WAAA,EAAA,GACIiwB,EAAAA,WACFpd,EAAQ,WACVjY,EAAAk0B,EAAApwB,GAAA,CACAuxB,GACAD,QAAkB,CAEhBE,CAAAA,EAqBJ,CACA,GAAAh9B,MAEA,SAAA6+B,EACA9+B,MAAAA,EACD,sBAAA4lC,EAED,QAAAC,mBAEA,aAAAP,EACA,WAAAF,EACI7lC,SAAAA,EACFoI,UAAAA,EACE,QAAA+9B,UA9BF,IAAA,CAAExI,EAAAA,OAAS,CAAK,EAgCd,OA9BJ,IAAA,CACME,EAAAA,MAAAA,CACJ,EA6BA,YAAAuI,EACF,WAAA5I,EACMkB,aAAAA,EACJj+B,UA/BiB,CAAA,CACjBwlC,gBAAAA,KACD,YAED,MAAA,QAAAtG,CAAA,GACMwG,EAAgBxG,EAAA,CAAA,CAAA,CAEpB,EAyBD,WAAApiB,EACKygB,WAzBWzqB,SAAQ,CACrBkyB,EAAS,MAAQ,MAEjB,aA0BJ,OAAA,KAAA,SACM3F,EAAa,MAAA,CAAEH,OAAAA,KAAAA,GAAAA,EAAAA,EAAAA,KAAAA,GAAAA,EAAAA,UAAAA,EAA8C,EAAM,CAAA,KAAA,KAAA,CAAA,IAErDA,MAAAA,CAChB6F,MAAAA,CAAAA,KAAAA,GAAgB,EAAC7F,EAAAA,KAAAA,SAAmB,KAAA,GAAA,EAAA,UAAA,EAAA,EAAA,CACtC,EAAA,CAAA1+B,EAAAI,EAAA,WAAA,EAAA,CACD,IAAA,YAED,WAAgB,KAAGklC,SACjBhpB,sBAAuBS,GAAA,KAAA,SAAAA,EACvBqC,UAAU,GACX,YAAA,KAAA,EAAA,YAEM,QAAA,KAAA,QACL3f,SAAE,KAAA,SACF8M,QAAC,IAAA,CACO,KAAA,WAAA,CACH,GACgB,CACrB84B,OAAO,IACO,KAAA,OAAA,OACF,KAAA,OAAA,OAAA,CAAA,CAAA,EAEJ,KAAA,UAAA,KAAA,SACC,KAEF,CAAA,KAAA,EAAA,MAAA,gBAAArlC,EAAAI,EAAA,YAAA,EAAA,CACD,KAAA,QACK,QAAA,KAAA,gBACD,CACE,QAAA,IAAA,CAAAJ,EAAA,WAAA,CACH,KAAA,QACC,EAAA,IAAA,CAAA,CACVslC,CAAAA,EAAAA,KAAAA,KAAAA,EAAAA,MAAAA,cAAAA,EAAAA,EAAAA,YAAAA,EAAAA,CACD,KAAA,QACF,QAAA,KAAA,YACDxlC,EAAS,CACH,QAAKmV,IAAU,CAAAjV,EAAA,WAAA,CACjB,KAAA,kBAAA,EAAA,IAAA,CACe,EAAsC,EAAA,IAAU,CAGjE,CAAA,EAAAA,EAAAI,EAAA,WAAA,EAAA,CAAA,KACc,gBAAyDJ,gBAAA+c,GAAA,KAAA,WAAAA,EAAA,MAAA,GAAA,SAGxD,QAAa,EAAA,CAAA,QAAA,IAAA,CAAA/c,EAAAI,EAAA,YAAA,EAAA,CAAA,QAAA,KAEL,MACR,QAAA,KAAY,QACX,SAAA,IAAa,CAAA,KAAA,WACR,EACT,EACN,UAAA,KAAA,SAAC,EAAA,IAAA,CAAA,GAGCke,CAAM,CACJ,IC7OOinB,GAAAzmC,EAAA,CACnBC,KAAK,cACLo9B,MAAOX,GAAgB,EACvBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CAEA,MAAM+M,EAAiC1L,EAAY,SAAA,iBAEnDy9B,EAAAz0B,EAAA,CAAA,CAAA,EACMy0B,EAA4Bz0B,EAAM,CAAA,CAAA,UAExC27B,EAAA37B,EAAA,EAAA,EACA1C,EAAM6V,IAAmBje,EAAO,MAAGkM,GAAA,YAEnCw6B,EAAA,MAAA,GACMA,0BAENA,EAAA,MAAA,QAAAz2B,GAAA,CACMw2B,EAAU,WAAOx2B,EAAA,MAAA,qDAEvB,GAEQjQ,EAAAA,MAAW,KACjBkM,CACU,OAAM+D,EAAK,OACR,aAAWA,EAAA,YACtB,EAEEy2B,CAAAA,KAGE,UAAA,QACMhsB,KAIJuD,MAAAA,EAAiBtH,GAAA,SACT,CAAA,KACM,MAAA,QAAO9F,CAAAA,GACrB8F,EAAE,QAAAtG,GAAA,CACJ,MAAAs2B,EAAA,CACA,OAAAt2B,EAAA7C,EAAA,OAAA,GAAA6C,EAAA,OACJ,aAAAA,EAAA7C,EAAA,QAAA,GAAA6C,EAAA,YACF,EACEjE,EAAW,KAAIu6B,CAAA,EAAQ1oB,EAAA,MAAA,UAAAhO,GAAA,OAAA,GAAAA,EAAAzC,EAAA,OAAA,EAAA6C,EAAA7C,EAAA,OAAA,CAAA,CAAA,EAC1B,mBAGKo5B,EAEJ,MAAMC,IAAoB,OAAA,EAAA,KAAA,UAAAA,CAAA,EAAA,GAC1BpmC,EAAIkW,SAAelU,CAACqkC,CAClBnwB,EACEowB,EAAA,SAAA,CACA,IAAAj3B,IACgB,MAAE,WACJ,eAAmB42B,EAAKr2B,KAAOQ,GAE7Cg2B,MAAAA,EAAO9xB,MAAK4xB,EAAAA,eAAc3mC,EAAA,KAAA8P,CAAA,KAE1B82B,EAAAhB,CAAA,GAKE3nB,EAAWuiB,IACb,MAAAqG,EAAA,CAAA,EACF,GAAErG,EAAA,OAAA,EAAA,CACJA,EAAA,QAAAnwB,GAAA,CACA,MAAW22B,EAAUzzB,EAAM,MAAO0zB,KAAKC,GAAS,OAAO,KAAM,OAAA72B,CAAA,CAAA,EACxD22B,GACNH,EAAA,KAAA,iBAED,aAAAG,EAAA,YACA,CAAoB,CAElB,CAAA,EACEl3B,MAAYrN,EAAAokC,EAAQK,OAAUR,EAAW,KAAA,UAAOG,CAAA,EAAA,GAClDpmC,EAAA,SAAAgC,CAAA,CACA,MACAhC,EAAO,SAAE,EAAA,CAET,EACD4f,EAAA,MAAAM,GAAA,6BAED,MAAAqlB,EAAArlB,EAAA,OACMwmB,EAAY3G,MAAAA,EAAiB,eAAKwF,EAAAhmC,EAAA,IAAA,EAChC6mC,IACFrG,EAAO,MAAOoF,EAAI,KAAE,IAAA31B,IAAA,CACtBuwB,OAAQ/xB,EAAS4B,EAAAA,OAAmB,EAC5B22B,eAAgBx5B,EAAC/K,QAAM45B,CAG7B,EAAA,KAIE+K,EAAE9M,GAAA,CACJ,MAAA5f,EAAAgsB,EAAA,MAAA,UAAAz2B,GAAA,OAAA,GAAAA,EAAAzC,EAAA,OAAA,EAAA8sB,CAAA,CAAA,EACF,GAAE5f,GAAA,EAAA,CACFgsB,EAAW,MAAS,SAAcO,CAAAA,EAClCxmC,MAAK6E,EAAA,CAAA,EACA,IAAA7C,EAAA,KACLhC,EAAK,MAAa,QAAA4P,GAAA,CACpB7C,EAAA,MAAA,YAAA,UACDlI,EAAA,KAAAkI,EAAA,mBAAA6C,CAAA,CAAA,kBAED/K,EAAA,KAAA+K,EAAA7C,EAAA,OAAA,CAAA,EAEQgB,EAAK,MACHw3B,UAAYrlB,EAAAA,EAAM0mB,EAAI,OAAE,EACxBzB,CAAGp4B,EAAA,QAASA,EAAE04B,EAAAA,EAAAA,QAAeF,CACnC,EAEIv0B,CAAAA,EACAZ,EAAAA,OAAcZ,IACbzC,EAAA,MAAA,YAAA,UACL/K,EAAA6C,EAEH7C,EAAA+K,EAAA,cAAAlI,EAAA,KAAAkI,EAAA,MAAA,cAAA,EAAA,KAAA,UAAAlI,CAAA,GAGK8hC,EAAAA,SAAY9M,CAAgB,CAC1B5f,GAIO4sB,EAAOC,GAAY,GACxBjiC,QACF7C,EAAAA,QACJikC,EAAAA,MAAiB,GACfrmB,EAAM7R,EAAAA,EAEN,IACW6B,EAAgB,IACpBq2B,EAAA,MAAA,IAAAz2B,GACFA,EAAK,mBACN,GAAGu3B,GAQP,MAAC,MAID,EAAAh6B,EACF,SAAA+xB,EACA9+B,MAAAA,EACF,UAAA++B,EACD,YAAAkH,aAED,SAAAU,EACME,aAAAA,EACJb,SAAAA,EACA,eAAAM,UAnBQ,IAAA,CACJtmC,EAAA,OAAA,CACF,SACc,IAAG,CACfA,EAAA,MAAM+N,CACJ/L,CAiBN,YAGF,OAAAxB,EAAA,MAAA,CACA,MAAe,CAAA,KAAA,GAAW,EAAA,EAAA,KAAO,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,GAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,EAAA,EAC/B,IAAOylC,cAEH,KAAOz2B,UAAiB,KAAA,UAAA,CAAA,KAAA,UAAAhP,EAAAI,EAAA,WAAA,EAAA,CAC1B,IACK,YACP,WAAA,KAAA,oDAEF,UAAA,GACMq9B,YAAU,KAAM,EAAA,YACpBj+B,SAAY,KAAC,UACd,WAED,KAAA,YAAA,IAAAwP,GACe+tB,EAAM38B,EAAA,SAAA,EAAA,WACP,GACb,KAAA,UAEM,QAAA,IAAA,CACH,KAAA,SAAA4O,EAAA,KAAA,EAAA,OAAA,CAAA,CACD,GACO,CACH,QAAA,IAAA,CAAAA,EAAA,YAAA,EACI,CACE,EAEXm3B,OAAQ,IACI,KAAA,OAAA,OACJ,KAAA,OAAA,OAAA,CAAA,CAAA,EAED,KAAA,UAAA,KAAA,SACPpJ,KAEH,CAAA,KAAA,EAAA,MAAA,gBAAA/8B,EAAAI,EAAA,YAAA,EAAA,CACQ,KAAA,QACP,QAAA,KAAA,cAAA,EAAA,CAMK,QAAA,IAAA,CAAAJ,EAAA,WAAA,CAGI,KAAS,QACC,EAAA,IAAA,CAAA,EAGF,EAAA,IAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAEQ,CAAA,ECpNbwmC,GAAA1nC,EAAA,CAC5BC,KAAK,uBACLo9B,MAAOX,GAAgB,EACvBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CAEA,MAAM+M,EAAS1L,EAAY,oBAAA,EAErBm7B,EAAWj9B,EAAA,qBAEjBkd,EAAApS,EAAA,EAAA,EACAmyB,EAAkB,cACdA,EAAY6E,aAAc,WAC5B5kB,EAAe,MAAa,CAAA1P,EAAA,YAAW,aAAA,QAAA,GAGzC,MAAAk6B,EAAA58B,EAAA,CAAA,CAAA,WAEA,MAAAy0B,EAAAz0B,EAAA,EAAA,EACM48B,EAA2B58B,KAAI0C,EAAA,OAAA,CAAA,oBAErC,CACIsC,aAAYwsB,oCAEhBl0B,EAAA,IAAApI,EAAA,MAAAkM,GAAA,CACA,GAAMqzB,EAA2B,oBAEjC,CAAAv/B,EAAA,MAAA,CAAAwN,EAAA,WAAA,CAAAxN,EAAA,KAAAwN,EAAA,SAAA,EACM8B,KAAAA,IAAUxE,MAAI68B,0BAAiB,GAErC73B,EAAA,CAAA,CACMzB,OAASvD,EAAI68B,KAAQt5B,EAAM,SAAE,sBAEnC,CAAA,EACMA,EAAA,MAAA,aAAAyB,OAA8BysB,CAKpCn0B,EACQpI,MAAW,GAEXkd,MAAAA,EAAkB,CAAA,EACpBqiB,GAAAA,EACA,GAAU,CAAAv/B,QAAW,CAAC4nC,EAAAA,WAAc5nC,CAAAA,EAAU,KAAG4nC,EAAAA,SAAY,EAC3DC,KAAQ,IAAM,gCAAQ,MACjB,CACL/3B,MAAAA,EACE9P,EAAA,KAAAwN,EAAA,SAAA,EAAA,MAAA,GAAA,EAAQs6B,EAAQr4B,QAAgB,GAAC,EAAEoB,EAAY,SAAOY,EAAChP,IAAAA,CACxDikC,EAAA,KAAA,CACK,aAAO52B,EAA2B4K,CAAA,EAC1C,OAAAjJ,CACF,CAAO,EACC,EACAi1B,EAAAA,QAAyBz2B,GAAA,GACnB,MAAA,KAAAA,EAAA,MAAA,CACV,CAAA,CACE43B,CAEA/3B,EAAe42B,EACfr4B,EAAA,mBAAoC05B,CACpCC,IAEIn3B,UAAAA,GACAY,KAAAA,EACF,CAAA,EACF,MAAA00B,EAAE,IAAA,CACFO,MAAAA,EAAYj4B,EAAAA,aACoB,QAChCg3B,EAAE,QAAAC,GAAA,CACJjlC,EAAA,SAAA,KAAAilC,EAAA,EAAA,CACF,CAAA,EAEAr3B,EAAAA,WACF5N,EAAA,SAAA,KAAA+M,EAAA,SAAA,EAGApB,EAAAA,SAAgB,IAAA,CAChB+zB,EAEH8H,EAAApnC,GAAA,kBAEDslC,IACMA,MACJ,CACA,GAAAjpB,EAAe,MAAc,CACzBuoB,GAAAA,EAAAA,UAAWlyB,CACbkyB,MAAAA,EAAkBC,EAAQ,CAAI,EAAAl4B,EAAA,OAAA,EAAA3M,EAAA,CAAA,EAAA2M,EAAA,OAAA,EAAA3M,EAAA,CAAA,EAAA,OAC5BJ,EAAK,SAAUunC,EAAcx6B,EAAA,SAAI,CAClC,CACH,MAAAs6B,EAAAjnC,EAAA,CAAA,EAAA2M,EAAA,QAAA,EAAA3M,EAAA,CAAA,EAAA2M,EAAA,QAAA,EAAA3M,EAAA,CAAA,EAAA,aACI2M,EAAEo6B,SAAWE,CAAA,MACV,CACP,IAAAE,EAAA,GACKF,EAAU,GAChBjnC,GAAA,MAAA,QAAAA,CAAA,iBAED,MAAA4Q,EAAApB,EAAA7C,EAAA,OAAA,EAAA6C,EAAA7C,EAAA,OAAA,EAAA6C,EAAA,OACM43B,GAAAA,GAAoBpnC,CAAc,IAC7B,MAAOgQ,EAAQR,EAAA7C,EAAA,QAAA,EAAA6C,EAAA7C,EAAA,QAAA,EAAA6C,EAAA,aACtB81B,GAAS,GAAAt1B,CAAA,GACT,CAAA,EAEEqM,EAAAA,EAAoB,UAAA,EAAA8qB,EAAA,OAAA,CAAA,EACtBF,EAAMF,EAAW,UAAA,EAAAE,EAAA,OAAA,CAAA,EACTE,EAAAA,WAGNvnC,EAAK,SAAUunC,EAAWx6B,EAAEo6B,SAAS,EAEvCnnC,EAAMqnC,SAAWjnC,CAAM,CAGvBJ,CACF,EACMunC,EAAsBnnC,GAAA,GACHA,EAAE,IAAA,GAEvBA,EAAM4N,EAAO,GAAE4B,EACb63B,IAAY,CAAG73B,EAAAA,GAAAA,WAAiB,YACnBm3B,GAAO,OAChBn3B,YAAa,GAAA,OAAA,YAAA,GAAA,OAAA,YAAA,GAAA,OAAA,YAAA,GAAA,OAAA,YAAA,EAAA,CAAA,IACRvF,EAAA,EAAO2G,EAChB80B,WAAqBl2B,GAGb,MAAOQ,MACjB0S,EAAE,MAAA,KAEJykB,EAAAA,MAAYA,EACZF,EACIt6B,EAAa,CAAA,QACX26B,CACN,IAAA,CACA1nC,EAAK,KACP8iB,EAAA,MAAA,IAIA0kB,EAAAA,EAAiBpnC,EAAK,EACxB,MAAC,CACD,GAAAH,EACMwnC,EAAAA,EAWN,SAAA3I,EAEA,QAAAjwB,EACE,OAAAjB,cAEA,OAAAkV,EACA6kB,OAAAA,EACD,QAAAF,EAEK3P,QAAAA,EAAkBhV,QAAAA,EAA0C,kBAAApJ,EAChE,aAAAoe,cAEA,GAGF,QAAa,CAEb,MAAOngB,EAAA1U,EAAA,eAAA,SACHzC,EAAA,MAAA,CACFuM,MAAC,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,EAAA,GACO,CAAAvM,EAAAI,EAAA,WAAA,EAAA,CACRiO,IAAO,YACPjB,WAAM,KAAA,SACNiuB,sBAASte,GAAA,KAAA,SAAAA,EACTuF,SAAM,GACN6kB,YAAM,KAAA,EAAA,YACNF,SAAO,KAAA,SACP/mC,QAAO,KAAA,YACA,CACPgZ,OAAiB,IACL,KAAA,OAAA,OACZosB,KAAAA,OAAAA,OAAAA,CAAAA,CAAAA,EAEH,KAAA,UAAA,KAAA,SACQ,KAEP,CAAA,KAAA,EAAA,MAAA,gBAAAtlC,EAAAI,EAAA,YAAA,EAAA,CACc,aAAyDJ,QAAAI,KAAA,UAAA,EAAA,CAGxD,QAAA,IAAKk+B,CAAQt+B,EAAA,WAAA,CAAA,KAAA,QAAA,EAAA,IAAA,CAAA,CAAA,CAAA,EAAA,IAAA,CAGC,CAAA,EAAA,KAAA,EAAA,YACTslC,KAAAA,OAAAA,GAAAA,EAAAA,EAAAA,oBAAAA,EAAAA,CAAU,OAAA,KAAA,OAGtBhnB,kBAAcvB,GAAA,KAAA,OAAAA,EACZ,QAASrJ,KAAM,uBACK,KAAC0zB,YACrB,EAAA,CACA,YAAS92B,CACP,IAAArO,EACF,MAAA,CAAAjC,EAAA,MAAA,CACO,MACD,KAAQ,GAAA,EAACqnC,MAAe,CAAA,EAAA,CAAAx6B,GAAAsK,EAAA,CAAA,QAAA,aACuB,OAAA,KAAA,OAAA7X,QAAAA,EAAA,KAAA,EAAA,aAAA,KAAA,OAAA2C,EAAA,GAAA,kBAAA,KAAA,iBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKvD,CAAA,EAAA,CAAA,CAAAqlC,GAAA,KAAA,OAAA,CAAA,CAAA,EAAA,IAAA,CAAA,CAAC,IClOb,IAAI35B,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GASF,MAAM+lC,WAA+B5J,EAAiB,CAC3D,aAAc,CACZ,MAAM,GAAG,SAAS,EAIlB7vB,GAAc,KAAM,WAAY,EAAK,EAIrCA,GAAc,KAAM,aAAc,IAAI,EAItCA,GAAc,KAAM,WAAY,IAAI,EAIpCA,GAAc,KAAM,YAAa,EAAE,EAInCA,GAAc,KAAM,UAAW,QAAQ,EAIvCA,GAAc,KAAM,WAAY,cAAc,EAI9CA,GAAc,KAAM,gBAAiB,EAAE,EAIvCA,GAAc,KAAM,OAAQ,EAAE,EAI9BA,GAAc,KAAM,OAAQ,EAAK,EAIjCA,GAAc,KAAM,WAAY,EAAK,EAIrCA,GAAc,KAAM,UAAU,EAI9BA,GAAc,KAAM,YAAa,CAAA,CAAE,EAEnCA,GAAc,KAAM,gBAAiB,EAAE,EAEvCA,GAAc,KAAM,kBAAmB,EAAE,EAEzCA,GAAc,KAAM,mBAAoB,EAAE,CAC3C,CACD,MAAM,QAAS,CACb,IAAI7L,EAAIE,EAAIC,EAAIolC,EAIhB,GAHA,MAAM,OAAM,EACZ,KAAK,WAAU,EACf,KAAK,YAAcvlC,EAAK,KAAK,MAAM,gBAAkB,KAAO,OAASA,EAAG,YAAW,IAAO,GACtF,KAAK,MAAM,kBACT,KAAK,MAAM,iBACb,KAAK,cAAgB,KAAK,MAAM,gBAE9B,KAAK,MAAM,gBACb,KAAK,SAAW,MAAMwlC,GACpB,KAAK,MAAM,cACX,KAAK,MAAM,gBACX,KAAK,QAAQ,QACvB,EACY,KAAK,WAAU,CACjB,KAAM,CAAE,sBAAAC,EAAuB,aAAAC,GAAiB,KAAK,SACjDD,GAAyBC,IAC3B,KAAK,KAAO,GAAGD,EAAsB,aAAa,IAAIC,EAAa,YAAa,CAAA,IAE9E,KAAK,SAAS,mBAChB,KAAK,SAAW,KAAK,SAAS,kBAE5B,KAAK,SAAS,oBAChB,KAAK,QAAU,KAAK,SAAS,mBAE3B,KAAK,SAAS,oBAChB,KAAK,UAAY,GACjB,KAAK,SAAS,kBAAkB,QAC7BlD,GAAa,CACRA,EAAS,KAAO,SAAWA,EAAS,KAAO,QAC7C,KAAK,UAAU,KAAKA,CAAQ,CAE/B,CACf,EAES,CAGL,MAAMmD,EAAmB,CACvB,wBACA,6BACA,YACN,EACQ,KAAK,MAAM,YAAcA,EAAiB,SAAS,KAAK,MAAM,UAAU,GAC1E,KAAK,qBAAoB,EAE3B,KAAK,eAAiBzlC,EAAK,KAAK,MAAM,gBAAkB,KAAO,OAASA,EAAG,YAAW,EACtF,KAAK,iBAAmBC,EAAK,KAAK,MAAM,kBAAoB,KAAO,OAASA,EAAG,YAAW,EAC1F,KAAK,kBAAoBolC,EAAK,KAAK,MAAM,mBAAqB,KAAO,OAASA,EAAG,YAAW,CAC7F,CAID,YAAa,CACX,OAAQ,KAAK,MAAM,WAAU,CAC3B,IAAK,gBACL,IAAK,qBACH,KAAK,KAAO,GACZ,MACF,IAAK,oBACH,KAAK,SAAW,GAChB,MACF,QACE,KAAK,SAAW,GAChB,KAAK,KAAO,EACf,CACF,CAID,MAAM,sBAAuB,CACvB,KAAK,MAAM,kBACb,KAAK,WAAa,MAAM,KAAK,IAAI,OAAO,KAAK,IAC3C,KAAK,MAAM,eACnB,EAEG,CAID,MAAM,oBAAqB,CACrB,KAAK,MAAM,gBACb,KAAK,SAAW,MAAM,KAAK,IAAI,OAAO,KAAK,IAAI,KAAK,MAAM,aAAa,EAE1E,CASD,MAAM,eAAe9nB,EAAOlR,EAAM,CAChC,KAAM,CAAE,QAAAH,EAAS,OAAAjB,CAAQ,EAAG,KAAK,mBAC/BoB,EACA,KAAK,QACL,KAAK,MACX,EACUq5B,EAAc,CAAA,EAChB,KAAK,MAAQ,CAAC,OAAO,GAAG,KAAK,KAAM,EAAE,GACvC,OAAO,OAAOA,EAAa,CAAE,KAAM,KAAK,IAAI,CAAE,EAE5CnoB,GACF,OAAO,OAAOmoB,EAAa,CAAE,MAAAnoB,CAAO,CAAA,EAEtC,OAAO,OAAOmoB,EAAa,CAAE,KAAM,GAAK,CAAA,EACxC,MAAMC,EAAaC,GAAc36B,EAAQy6B,CAAW,EACpD,GAAI,KAAK,cAQP,OANY,MADA,KAAK,IAAI,OAAO,KAAK,QAAQ,QAAQ,EAC3B,UAAU,KAC9B,KAAK,MAAM,gBACX,KAAK,cACLx5B,EACAy5B,CACR,EAGI,MAAM,IAAIlM,GAAkB,KAAK,MAAO,oEAAoE,CAC7G,CASD,MAAM,eAAeptB,EAAMK,EAAc,CACvC,MAAM,KAAK,uBACX,KAAM,CAAE,QAAAR,EAAS,OAAAjB,CAAQ,EAAG,KAAK,mBAC/BoB,EACA,KAAK,QACL,KAAK,MACX,EAII,GAHIK,IACFzB,EAAO,aAAeyB,GAEpB,CAAC,KAAK,WACR,MAAM,IAAI+sB,GAAkB,KAAK,MAAO,wDAAwD,EAElG,MAAM+I,EAAM,MAAM,KAAK,SAAS,QAC9B9I,GAAmB,IACnB,KAAK,WAAW,GAChBxtB,EACAjB,EACA,CAAE,SAAU,YAAc,CAChC,EACI,GAAIu3B,GAAOA,EAAI,IAAMA,EAAI,KACvB,OAAOA,EAAI,KAEb,KAAK,IAAI,MAAM,yDAA0DA,CAAG,CAC7E,CAID,MAAM,aAAan2B,EAAM,CACvB,MAAMyK,EAAc,KAAK,QAAQ,MAAK,EAClCzK,EAAK,KAAK,SAAS,IACrByK,EAAY,OAASzK,EAAK,KAAK,SAAS,GAE1C,KAAM,CAAE,QAAAH,EAAS,OAAAjB,CAAQ,EAAG,KAAK,mBAC/BoB,EACAyK,EACA,KAAK,MACX,EACU,CAAE,cAAA0iB,CAAa,EAAK,KAAK,MAC/B,GAAI,CAACA,EACH,MAAM,IAAIC,GAAkB,KAAK,MAAO,wDAAwD,EAElG,OAAO,KAAK,SAAS,QACnBC,GAAmB,IACnBF,EACAttB,EACAjB,CACN,CACG,CASD,MAAM,kBAAkBoB,EAAM,CAC5B,OAAI,KAAK,SACH,KAAK,UAAU,SAAW,EACrB,GAEM,MAAM,QAAQ,IAC3B,KAAK,UAAU,IAAKQ,GAAS,CAC3B,MAAMxN,EAAQgN,EAAKQ,EAAK,YAAY,EACpC,OAAIA,EAAK,QACEA,EAAK,uBAAyBA,EAAK,YACnCA,EAAK,WAET,CAAE,GAAIA,EAAK,GAAI,MAAAxN,CAAK,CACrC,CAAS,CACT,EAGW,EACR,CAQD,mBAAmB4N,EAAQ,CACzB,MAAM44B,EAAS,CAAA,EACf,OAAI,KAAK,eACP,OAAO,OAAOA,EAAQ,CACpB,CAAC,KAAK,aAAa,EAAG54B,EAAO,KAAK,OAAO,CACjD,CAAO,EAEC,KAAK,iBACP,OAAO,OAAO44B,EAAQ,CACpB,CAAC,KAAK,eAAe,EAAG54B,EAAO,KAAK,QAAQ,CACpD,CAAO,EAEC,KAAK,kBACP,OAAO,OAAO44B,EAAQ,CACpB,CAAC,KAAK,gBAAgB,EAAGtB,GAAMt3B,CAAM,CAC7C,CAAO,EAEI44B,CACR,CACH,CC9SA,IAAIr6B,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMymC,EAAyB,CACpC,YAAYlM,EAAY,CACtBjuB,GAAc,KAAM,YAAY,EAChCA,GAAc,KAAM,YAAY,EAChC,IAAIlJ,EAAgB,aACpB,OAAQm3B,EAAU,CAChB,IAAK,aACHn3B,EAAgB,cAChB,MACF,IAAK,yBACHA,EAAgB,uBAChB,KAEH,CACD,KAAK,WAAaA,EAClB,KAAK,WAAaA,CACnB,CACD,MAAM,iBAAiBo3B,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAIg7B,GAAuBvL,EAAaC,CAAgB,EAClE,aAAM1vB,EAAE,OACDA,CACR,CACH,CC1BO,SAAS27B,GAAanpC,EAAOopC,EAAa57B,EAAG,CAClD,MAAM67B,EAAQv+B,EAAI,CAAA,CAAE,EACdw+B,EAAUx+B,EAAI,CAClB,cAAe,UAAUy+B,GAAUC,GAAU,KAAK,CAAC,EACvD,CAAG,EACKC,EAAY3+B,EAAI,EAAE,EAClB4+B,EAAc5+B,EAAI,EAAE,EACpB6+B,EAAc,CAClB,MAAO,EACP,WAAY,CAAE,CAElB,EACEvhC,EACE,IAAMpI,EAAM,MACXkM,GAAW,CACVm9B,EAAM,MAASn9B,EAAc,KAAK,MAAMA,CAAM,EAAtB,CAAE,CAC3B,EACD,CAAE,UAAW,EAAM,CACvB,EACE9D,EACE,IAAMpI,EAAM,KACXkM,GAAW,CACV,GAAIA,EAAQ,CACV,MAAM09B,EAAOp8B,EAAE,YAAYtB,CAAM,EACjCu9B,EAAU,MAAQG,EAAK,UACvBF,EAAY,MAAQE,EAAK,WAC1B,CACF,EACD,CAAE,UAAW,GAAM,KAAM,EAAM,CACnC,EACExhC,EACEihC,EACCn9B,GAAW,CACqBA,GAAO,QAAWw9B,EAAY,OAC3Dx9B,EAAO,QAAS29B,GAAS,CACvBA,EAAK,IAAMA,EAAK,KAAOH,EAAY,MAAM,QAAQ,WAAYG,EAAK,EAAE,CAC9E,CAAS,CAEJ,EACD,CAAE,UAAW,EAAM,CACvB,EACEzhC,EACEshC,EACCx9B,GAAW,CACNA,GAAUm9B,EAAM,MAAM,QACxBA,EAAM,MAAM,QAASQ,GAAS,CAC5BA,EAAK,IAAMH,EAAY,MAAM,QAAQ,WAAYG,EAAK,EAAE,CAClE,CAAS,CAEJ,EACD,CAAE,UAAW,EAAM,CACvB,EACE,MAAMtL,EAAY,IAAM,CACtB,MAAMuL,EAAS,CAAC,GAAGT,EAAM,MAAO,GAAGM,EAAY,UAAU,EACnDlnC,EAAQqnC,EAAO,OAAS,EAAI,KAAK,UAAUA,EAAO,IAAKD,IAAU,CAAE,KAAMA,EAAK,KAAM,GAAIA,EAAK,EAAI,EAAC,CAAC,EAAI,KAC7GF,EAAY,WAAa,GACzBP,EAAY3mC,CAAK,CACrB,EACQsnC,EAAe,IACf,CAACv8B,EAAE,UAAY67B,EAAM,MAAM,SAAW,EACjC,IAETM,EAAY,OAAS,EACd,IAEHK,EAAaC,GAAa,CACzBA,IAGLN,EAAY,WAAW,KAAK,CAC1B,KAAMM,EAAS,SACf,GAAIA,EAAS,MACnB,CAAK,EACDN,EAAY,OAAS,EACjBA,EAAY,QAAU,GACxBpL,IAEN,EACQ2L,EAAU,IAAI7/B,IAAS,CAC3B,MAAMiM,EAAQjM,EAAK,CAAC,EACpB,MAAAs/B,EAAY,OAAS,EACf,IAAIQ,GAAU,CAClB,SAAU,CAAE,KAAM,KAAK,MAAM7zB,EAAM,OAAO,EAAG,OAAQA,EAAM,MAAQ,CACzE,CAAK,CACL,EACQ8wB,EAAYyC,GAAS,CACzB,GAAI7pC,EAAM,SACR,OAEF,MAAM0a,EAAQ2uB,EAAM,MAAM,UAAWp5B,GAASA,EAAK,KAAO45B,EAAK,EAAE,EAC7DnvB,IAAU,IACZ2uB,EAAM,MAAM,OAAO3uB,EAAO,CAAC,EAE7B6jB,GACJ,EACQ6L,EAAcP,GAAS,CAC3B,QAAQ,IAAIA,CAAI,EAChB,MAAMQ,EAAW,IAAI,SACrB,OAAAA,EAAS,OAAO,OAAQR,EAAK,IAAI,EAC1B,IAAI,QAAQ,CAACS,EAASC,IAAW,CACtC,KAAK,IAAI,MAAM,CACb,IAAKd,EAAU,MACf,OAAQ,OACR,KAAMY,EACN,QAASf,EAAQ,KACzB,CAAO,EAAE,KAAM1D,GAAQ,CACXA,EAAI,SAAW,KACjB,QAAQ,IAAI,GAAIA,CAAG,EACnBoE,EAAUpE,EAAI,IAAI,EAClB0E,EAAQ,EAAI,IAEZJ,EAAQtE,CAAG,EACX2E,IAEV,CAAO,EAAE,MAAM,IAAM,CACbA,GACR,CAAO,CACP,CAAK,CACL,EACQC,EAAY,MAAOX,GAAS,CAChC,GAAIA,EAAK,QAAUA,EAAK,OAAS,EAC/B,QAASjgC,EAAI,EAAGA,EAAIigC,EAAK,OAAQjgC,IAAK,CACpC,MAAM6gC,EAAKZ,EAAKjgC,CAAC,EACjB,MAAMwgC,EAAWK,CAAE,CACpB,MAED,MAAML,EAAWP,CAAI,CAE3B,EACQa,EAAcb,GAAS,CAC3B,MAAMc,EAAMd,EAAK,KAAOH,EAAY,MAAM,QAAQ,WAAYG,EAAK,EAAE,EACrEr8B,EAAE,aAAa,CAAE,IAAAm9B,EAAK,KAAMd,EAAK,IAAI,CAAE,CAC3C,EACQe,EAAQ5oC,EAAS,IACdwL,EAAE,SAAW,KAAO,CAC5B,EACD,MAAO,CACL,UAAAi8B,EACA,YAAAC,EACA,QAAAJ,EACA,MAAAD,EACA,MAAAuB,EACA,WAAAF,EACA,QAAAR,EACA,SAAA9C,EACA,UAAA4C,EACA,aAAAD,EACA,UAAAS,CACJ,CACA,OC9IwBK,GAAA9qC,EAAA,CACtBC,KAAK,iBACLo9B,MAAOX,GAAgB,EACvBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CACA,MAAM+M,EAAS1L,EAAW,aAAA,EAEpB0L,EAAAxN,EAAA,WACK,CACTspC,UAAAA,EACAD,QAAAA,EACAjC,MAAAA,EACA2C,SAAAA,EACAS,aAAAA,EACAI,UAAAA,SAIEnqC,EAAAA,GAAegC,EAAMA,GAAA,CACtBhC,EAEF,SAAAgC,CAAA,CAEM,EAAA+K,CAAA,QACH,CACFA,GAAAA,EACAi8B,EAAAA,EACAH,UAAAA,EACAD,QAAAA,EACAjC,MAAAA,EACA2C,SAAAA,EACAS,aAAAA,EACAI,UAAAA,EACD,MAAAA,EAEH7pC,EACE,QAAAE,CAAA,OAAAA,EAGc4D,MACR,CAED5D,MAAAA,CAAAA,KAAAI,GAAA,EAAA,EAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,GAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,EAAA,GAGa,CAAAJ,EAAAI,EAAU,cAAA,EAAA,CAAA,WACZ,KAAa,MAAA,SACb,KAAKmM,SAAU,SACb,KAAGs9B,EAAM,SAAA,OACV,KAAA,EAAI,OAAM,YACR,KAAA,MAAiB,cAClB,KAAc,aAAA,aAAA,eACE,gBAAA,KAAA,UAGnB,SACL7pC,IAAAA,EAC8BI,EAAS,YAAA,EAAA,CAAC,MAAA,KAAA,GAAA,EAAA,QAAA,GAAA,CAAA,QAAA,IAAA,CAAAI,GAAA,0BAAA,CAAA,EAEzC,EAEC,gBAAAooC,GAAA5oC,EAA4B,MAAa,CAAI4oC,MAAS,KAAA,GAAA,EAAA,YAAA,CACxD,EAAA,CAAAA,EAAA,IAAA,CAAA,CAAC,CAAA,EAAA5oC,EAGYP,MAAc,CAAC,MACxB2oC,KAAS,GAACp5B,WAAQ,CACtB,EAAA,CAAA,KAAAhP,MAAA,IAAAgP,GAAAhP,EACuB,MAAe,CAAC,MAAA,KAAA,GAAA,EAAA,cAAA,CAAA,EAAA,CAAAA,EAClBP,MAAuB,CAAC,MAAA,KAAA,GAAA,EAAA,kBAAA,CAAA,EAAA,CAAAO,EACN,MAAA,CAAA,IAAA,wBAAA,IAAA,EAAA,EAAA,IAAA,CAAA,CAAA,IAEM,MAAA,CAAC,MAAY,KAAA,GAAA,EAAA,mBAAA,CAAA,EAAA,CAAAgP,EAAA,OACrCvP,EAA0B,MAAA,CAACO,MAAAA,KAAA,GAAA,EAAA,qBAAA,CAAA,EAAA,CAAAA,EAAAI,EAAA,UAAA,EAAA,CAAA,KAAA,QAItC,QAAK+lC,IAASn3B,CAChB,KAAA,SAAAA,CAAA,CAAC,CAKX,EAAE,IAAA,CAAA,CAAA,CAAA,CAAA,CAIV,CAAA,CAAA,CAAA,CAAA,CACA,ICxFW86B,GAAkBhrC,EAAgB,CAC7CiI,KAAM,kBACNhI,MAAOgrC,GAAwC,EAC/C5N,MAAOX,GAAgB,EACvBj8B,MAAMR,EAAO,CAAES,KAAAA,CAAK,EAAG,CACrB,MAAMC,EAAKoB,EAAa,cAAc,EAEhC0L,EAAIxN,EAAMiO,WAEV,CACJw7B,UAAAA,EACAH,QAAAA,EACAD,MAAAA,EACAjC,SAAAA,EACA2C,aAAAA,EACAS,UAAAA,EACAI,MAAAA,EACAF,WAAAA,CACF,EAAIvB,GACFnpC,KACS,CACPS,EAAK,SAAUgC,CAAK,CACrB,EACD+K,CACF,EAEMy9B,EAAiBngC,EAAY,EAAE,EAC/BogC,EAAgBpgC,EAAa,EAAK,QASzB,CACd,GAAApK,EAEM,EAAA8M,EACL9M,MAAAA,EACA8M,MAAAA,EACA67B,QAAAA,EACAuB,UAAAA,EACAtB,eAAAA,EACAG,cAAAA,EACAwB,aAAAA,EACAC,SAAAA,EACAnB,sBAnB6BtnC,GAAmB,CAChDyoC,EAAczoC,MAAQA,GAmBtB2kC,cAhBF6D,EAAA,MAAApB,EAAA,IACMsB,EAAatB,MAAgB,EACjCoB,EAeAG,UAAAA,EACAD,WAAAA,EAEAT,UACD,CACF,OAAAzpC,EAAA,MAAA,CACDF,MAAS,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,GAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,EAAA,CACP,EAAA,CAAAE,EAAAI,EAAA,cAAA,EAAA,CACA,WAAA,KAAA,MAAA,SAGU,KAAG,SAGRJ,SAAAA,KAAA,EAAA,SAAA,OAGa,KAAA,EAAA,OAAU,YACZ,KAAa,MAAA,cACT,KAAW,aAAA,aACb,KAAS,UAAA,gBACN,KAAM,UACR,CAAiB,gBACd4oC,GAAU5oC,EACNmmC,MAAAA,CAAQ,MAAA,KAAA,GAAA,EAAA,YAAA,GAGX,CAAAnmC,QAAmB,CAChC,IAAA4oC,EAAA,GAAA,EAAA,IAAA,CAAA,CAAA,CACqC,CAAA,CAAA,CAAA,CACf,CAGxB,CAAA,ECnFCwB,GAAkBtrC,EAAgB,CAC7CiI,KAAM,kBACNhI,MAAOgrC,GAAwC,EAC/C5N,MAAOX,GAAgB,EACvBj8B,MAAMR,EAAO,CAAES,KAAAA,CAAK,EAAG,CACrB,MAAMC,EAAKoB,EAAa,cAAc,EAEhC0L,EAAIxN,EAAMiO,mBAEhBg9B,EAAAngC,EAAA,EAAA,EACMogC,EAAapgC,EAAA,EAAA,GAEnB,MAAAu+B,CACA,EAAAF,GAAoBnpC,EAAMyC,GAAI,cAE9B,EAAA+K,CAAA,EACA,MAAS,CAEH,GAAA9M,EAAE2oC,EAAAA,UAGJ5oC,IAAAA,EACD,eAAAwqC,EAGI,cAAAC,YAGA,QACFjqC,EAAA,MAAA,CACHgqC,MAAc,CAAA,KAAA,GAAA,EAAA,CAAA,CACdC,EAAAA,CAAAA,EAAAA,EAAAA,cAAAA,EAAAA,CACD,WAAA,KAAA,MACF,SAAA,KAAA,SACDnqC,SAAS,GACP,OAAA,KAAA,EAAA,OAAA,YACmB,EAAQE,UAAAA,GAAA,SAET,IACF,CAAa,gBACR4oC,GAAA5oC,EACM,MAAA,CAAA,MACV,KAAC,GAAA,EAAA,YAAA,CAAA,EAAA,CAAAA,EACI,MAAA,CAAA,IAAA4oC,EAAA,GAAA,EAAA,IAAA,CAAA,CAAA,CAKZ,CAAA,CAAA,CAAA,CAAA,CACqC,CAAA,EC3DnD,IAAIj7B,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GASF,MAAM6oC,WAA+B1M,EAAiB,CAC3D,aAAc,CACZ,MAAM,GAAG,SAAS,EAIlB7vB,GAAc,KAAM,SAAU,EAAK,EAInCA,GAAc,KAAM,WAAY,EAAI,EAIpCA,GAAc,KAAM,SAAU,EAAE,EAIhCA,GAAc,KAAM,cAAc,EAIlCA,GAAc,KAAM,cAAc,CACnC,CACD,MAAM,QAAS,CACb,IAAI7L,EAUJ,GATA,MAAM,MAAM,UACPA,EAAK,KAAK,MAAM,aAAe,MAAgBA,EAAG,SAAS,SAAS,IACvE,KAAK,OAAS,WAEZ,CAAC,sBAAuB,aAAc,gBAAgB,EAAE,SAC1D,KAAK,MAAM,UACjB,IACM,KAAK,SAAW,IAEd,KAAK,aAAc,CACrB,KAAM,CAAE,OAAAqoC,EAAQ,SAAAC,EAAU,OAAAV,EAAQ,aAAAW,EAAc,aAAAC,CAAc,EAAG,KAAK,aAUtE,GATIH,IACF,KAAK,OAAS,EAAQA,GAEpBC,IACF,KAAK,SAAW,EAAQA,GAEtBV,IACF,KAAK,OAASA,GAEZW,EACF,GAAI,CACF,KAAK,aAAe,KAAK,MAAMA,CAAY,CAC5C,MAAe,CACd,MAAM,IAAI5O,GACR4O,EACA,wEACZ,CACS,CAEH,GAAIC,EACF,GAAI,CACF,KAAK,aAAe,KAAK,MAAMA,CAAY,CAC5C,MAAe,CACd,MAAM,IAAI7O,GACR6O,EACA,wEACZ,CACS,CAEJ,CACF,CAWD,YAAYj8B,EAAM,CAChB,IAAIg6B,EAAY,GAAG,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,IAAI,aAAa,GAC1EC,EAAc,GAAG,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,IAAI,eAAe,YAC9E+B,EAAe,CAAA,EACfC,EAAe,CAAA,EACnB,OAAI,KAAK,eACPD,EAAeE,GACb,KAAK,aACL,KAAK,QACL,KAAK,OACLl8B,CACR,GAEQ,KAAK,eACPi8B,EAAeC,GACb,KAAK,aACL,KAAK,QACL,KAAK,OACLl8B,CACR,GAEIg6B,GAAamC,GAAG,UAAUH,EAAc,CAAE,eAAgB,EAAI,CAAE,EAChE/B,GAAekC,GAAG,UAAUF,EAAc,CAAE,eAAgB,EAAI,CAAE,EAC3D,CAAE,UAAAjC,EAAW,YAAAC,EACrB,CASD,aAAaG,EAAM,CACjB,KAAK,IAAI,QAAQA,EAAK,IAAK,CACzB,OAAQ,MACR,aAAc,OACd,QAAS,EAEf,CAAK,EAAE,KAAMI,GAAa,CACpB,GAAIA,EAAS,SAAW,IACtB,MAAM,IAAI4B,GAAa,sCAAsC,EAE/D,GAAK5B,EAAS,KAEP,CACL,MAAM6B,EAAWjC,EAAK,KACtBkC,GAAqB9B,EAAS,KAAM6B,CAAQ,CAC7C,KAJC,OAAM,IAAID,GAAa,kDAAkD,CAKjF,CAAK,CACF,CACH,CC9IA,IAAIj9B,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMupC,EAA2B,CACtC,YAAYhP,EAAY,CACtBjuB,GAAc,KAAM,aAAc,gBAAgB,EAClDA,GAAc,KAAM,aAAc,oBAAoB,EACtD,IAAIlJ,EAAgB,iBACpB,OAAQm3B,EAAU,CAChB,IAAK,aACL,IAAK,iBACHn3B,EAAgB,kBAChB,MACF,IAAK,iBACHA,EAAgB,kBAChB,KAEH,CACD,KAAK,WAAaA,CACnB,CACD,MAAM,iBAAiBo3B,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAI89B,GAAuBrO,EAAaC,CAAgB,EAClE,aAAM1vB,EAAE,OACDA,CACR,CACH,OClB+By+B,GAAAlsC,EAAA,CAC7BC,KAAK,wBACLo9B,MAAOX,GAAgB,EACvBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CAEA,MAAM+M,EAAS1L,EAAW,qBAAA,EAEpBm7B,EAAWj9B,EAAA,qBAEjB,IAAAoJ,EAAA,IACIA,EAAM8iC,KACV7J,EAAA,EACI7a,EAAe,IACnB2kB,EAAA,GACI9J,EAAa,GACjB+J,EAAA,IACIrQ,EAAAA,eACJkB,EAAA,aAAA,WACIkP,EAAAA,GAAAA,EAAqB,aAAA,QAAA,GAErBE,EAAc,aAAK,WACvB7kB,EAAAqX,GAAA5B,EAAA,aAAA,QAAA,GAEIA,EAAY6E,aAAc,YAC5BO,EAAexD,GAAa5B,eAAW,SAAA,GAEvCA,EAAA,aAAA,iBACAlB,EAA4BkB,eAAW,gBAEvCA,EAAA,aAAA,mBACAkP,EAA4BlP,eAAY,kBAExCA,EAAA,aAAA,iBACAoP,EAA4BpP,eAAiB,gBAE7CA,EAAA,aAAA,iBACAmP,EAA4BnP,gCAG5B,MAAIA,EAAwBnyB,EAAA,CAAA,CAAA,EAC1BuhC,EAAiBpP,EAAW,YAC9B,GAAAqP,GAAAA,EAAA,OAAA,EAAA,CACA,MAAeC,EAAaD,SAAiBr8B,EAAA,EAAA,EAC3Cm8B,EAAAA,MAAiBnP,CACnB,CACF,MAAAuP,EAAA1hC,EAAA,IAAA,YAEA1C,EAAA,IAAApI,EAAA,MAAA,CAAAkM,EAAAC,IAAA,CACMsgC,IAA0BtgC,GAAU,OAAAD,GAAA,WAC1CsgC,EAAiB,MAActgC,EAAA,MAAY6vB,CAAA,EAAA,CAAA,EAAA,OAAA7vB,EAAA,MAAA6vB,CAAA,EAAA,CAAA,CAAA,EAAA,KACvCuQ,QAAeA,EAAAA,MAAkBvQ,CAAM,EAAA,CAAA,EAAA,OAAA7vB,EAAA,MAAA6vB,CAAA,EAAA,CAAA,CAAA,EAAA,OAI9B,CACb,UAAA,KAEA,MAAA8B,EAAA,CAAAtvB,EAAAmM,IAAA,CACA,MAAcjY,EAAA8L,EAAM,OAAqB,MAiBvC,SAfFi+B,EAAA,MAAA/pC,EACciY,QAETsnB,EACGhiC,MAAMyC,GAGA+pC,EAAM,QAAS,MAAMxK,EAAe,QAAI,MAGhDA,EAAQ,SAAM,CAAAwK,EAAe,MAAexK,EAAA,KAAE,EAAE,MAC9B+F,CAAAA,EAItB0E,EAAA,MAAA,CAAErgC,MAAAA,EAAWqgC,EAAA,MAAA/xB,CAAA,EACdja,EAAA,SAAAgC,EAAAiqC,CAAA,EAED,EACM7O,CACJ,aAActvB,GACVmM,GAAa,IAAAja,EAAA,OAAA,EAAA,IAAAA,EAAA,MAAA,CAAA,QACP,CACV,GAAAC,MAEA,YAAA+rC,EACA,SAAAD,EACE/rC,SAAAA,EACF,aAAAo9B,EACA,IAAAz0B,EACE,IAAAoe,EACA/mB,UAAAA,EACF,eAAAs7B,EACD,iBAAAoQ,mBAED,eAAAC,EACM,UAAA9P,CAAEE,CAAwB,UAKzB,QACHv7B,EAAA,MAAA,CACFuM,MAAC,CAAA,KAAA,GAAA,EAAA,CAAA,EACDi/B,IAAW,aACH,CAAAxrC,EAAAI,EAAA,WAAA,EAAA,CACR2gC,WAAQ,KAAA,SACRnE,SAAY,KAAA,SACZz0B,SAAG,KAAA,SACHoe,YAAG,KAAA,iBACH6a,KAAS,SACTtG,QAAcz2B,GAAA,KAAA,aAAAA,EAAA,CAAA,GACE,IAAA,EAAArE,EAAA,MAAA,CAChBorC,MAAc,KAAA,GAAA,EAAA,WAAA,GACA,CAAA,KAAA,cAAA,CAAA,EAAAprC,EAAAI,EAAA,WAAA,EAAA,CACdi7B,KAAAA,SACD,WAAA,KAAA,SACF,SAAA,KAAA,SACDv7B,SAAS,KAAA,SACP,YAAA,KAAA,eAAA,WACyB,KAAE,aAAAuE,EAAA,CAAA,CAAA,EAAA,IAAA,CAAA,CAAA,KCnIxB,MAAMqnC,WAAoC/N,EAAiB,CAClE,CCFA,IAAIhwB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMmqC,EAA0B,CACrC,aAAc,CACZ79B,GAAc,KAAM,aAAc,uBAAuB,EACzDA,GAAc,KAAM,aAAc,uBAAuB,CAC1D,CACD,MAAM,iBAAiBkuB,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAIm/B,GAA4B1P,EAAaC,CAAgB,EACvE,aAAM1vB,EAAE,OACDA,CACR,CACH,CCNO,MAAMq/B,GAAsB9sC,EAAgB,CACjDiI,KAAM,sBACNhI,MAAO8sC,GAA8C,EACrD1P,MAAOX,GAAgB,EACvBj8B,MAAMR,EAAO,CAAES,KAAAA,CAAK,EAAG,CACrB,MAAMC,EAAKoB,EAAa,mBAAmB,EAErC0L,EAAIxN,EAAMiO,WAEVgvB,EAAczvB,EAAEgB,MACtBm2B,EAAAjK,KAAA,OACMiK,IAA0B,YAEhCE,EAAA,EACMH,EAAS,CAAA,KAEf,MAAA,2BACA,OAAa,sCAEb,KAAA,SACMG,MAAAA,SACN,IAAA,SACM5mB,KAAAA,SACN,IAAA,SACA,YACE9G,EACA2tB,IAAAA,EAAY,IACZ5M,EAAa,GACb9Q,EAAS,GACTC,EAAU,IACVC,QAAQxc,IACJiiC,EAAKjiC,IACT0c,EAAQ,eACHyV,EAAA,aAAA,iBACNlB,EAAAkB,EAAA,aAAA,gBAEGlB,EAAc,aAAM,sDAGpBoQ,EAAAA,aAAqB,iBACzBE,EAAApP,EAAA,aAAA,gBAEAA,EAAA,aAAA,iBACImP,EAAiBnP,EAAG,aAAA,iBAGxB,MAAM+P,EAAcliC,EAAA,YAAQ,EACtBiiC,EAAYv/B,EAAM,YAEpByvB,IACFlW,EAAe,MAAAiV,GAEf,MAAAyQ,EAAA3hC,EAAA,CAAA,CAAA,EACImyB,EAAwBA,cAC1BkP,GAAAA,GAAAA,EAAmBlP,OAAY6E,EAAAA,CACjC,MAAAyK,EAAAD,EAAA,IAAAr8B,GAAAA,EAAA,EAAA,EACAw8B,EAAe,MAAaF,CAC1BF,CACF,MAAAY,EAAAjrC,EAAA,IACIi7B,EAAY6E,OAAY2K,QAAe,OAAE,EAC7BA,EAAGxP,MAAY6E,IAAAA,GAC/B9hC,EAAA,KAAAgI,CAAA,GAAA,EACF,EAGM+e,EAAM,gBAAoB,OAAA,SAChC/mB,EAAA,MAAA,MAAA+7B,CAAA,MAIAmR,EAAAlrC,EAAA,IAAA,OAEA,QAAAkB,EAAA+pC,EAAA,QAAA,KAAA,OAAA/pC,EAAA,CAAA,IAAA,EACA,CAAA,EACMopC,EAAyBtqC,EAACsqC,IAAW,CAC3C,MACE,QAAMC,EAAAA,EAA4BD,QAAW,KAC1Cr8B,OAAgBA,EAAK1O,CACxB,IAAC,KAEHm9B,EAAA,IAAA,CACAj+B,EAAA,OAAA,CACA,EACMgsC,EAAAA,IAAYhqC,GACR0qC,MAAAA,CACJ,EACArN,EAAA,CAAAr9B,EAAAiY,IAAA,CACF,MAAAqqB,EAAYrK,GAAAj4B,CAAA,EAAA,OAAAu5B,CAAA,EASd,GARA+I,IAAA,eACI/kC,EAAAA,CAAMyC,EAASsiC,EAEnB9mB,EAAAvD,CAAA,EAAAjY,EAEAwb,EAAA,SAAA,GACFxd,EAAA,SAAAwd,EAAA,KAAA8d,CAAA,CAAA,EAEE0Q,QAAuB,CACvB,MAAAC,EAAAD,EAAA,MAAA/xB,CAAA,iBAEF,CACA,EACE,OAAA9R,QACA,MAAAwkC,EAAA,gBAEF,UAAA1I,EACMhG,QAAAA,EACA,QAAAmG,EACL,KAAA7d,YAED,GAAAhnB,EAAA,UAAAA,EAAA,SACMg+B,MAASA,EAEd,GAEDvL,EAAAua,EAAA,MACMlN,GACEiF,IAAAA,GAAS,CACXA,GAAAA,EACF9mB,MAAMvD,EAAkB,MACnB,QAAAjY,IACLwb,EAAYxb,EAAQ,CAAA,EACtBA,GAEM,GAAC2qC,CACP,CAAA,EAEE,MAAAC,IAAkBZ,MAClBhsC,GACF,IAAAwkC,GAAA,CACD,GAAAoI,EAEDzkC,MAAgB0kC,EAAA,MACd,YACQxN,EAAQr9B,EAAM,CAAA,EACXA,GAEF,GAAA2qC,EACH,CAEF,CAAA,EACE,CACF,GAAA1sC,EACF,EAAA8M,EACF,YAAAi/B,EACA,OAAA1lB,EACA,eAAAgV,EACE,iBAAAoQ,qDAIIrM,aAAAA,EACA,eAAAwN,+BAGJ,OAAAtP,CACF,CACA,EACA,SACE,OAAA/8B,EAAa,MAAA,CACXwxB,MAAO,CAAA,KAAA,GAAA,EAAA,CAAA,MACcpxB,EAAM,WAAA,EAAA,KAAA,OACpBJ,EAAqB,QAAA,CAC1B6+B,IAAAA,iBACA,KAAA,aACD,KAAA,6BACEsN,KAAAA,iBACL,OAAE,KAAA,OACJ,QAAA,KAAA,QACA,SAAA,KAAA,SACK,SAAA,KAAA,QACH,EAAA,IAAA,IACDnsC,EAAA,MAAA,CACDwrC,MAAW,KAAA,GAAA,EAAA,WAAA,GACL,CAAA,KAAA,cAAA,CAAA,EAAAxrC,EAAAI,EAAA,WAAA,EAAA,KAAA,CACN06B,MAAc96B,EAAA,QAAA,CACE,IAAA,eACF,KAAA,OACA,MAAA,KAAA,eACA,YAAA,KAAA,eACF,OAAA,KAAA,OACE,QAAA,KAAA,QACE,SAAA,KAAA,SACT,SAAA,KAAA,QACP+8B,EAAAA,IAAAA,CACD,CAAA,CAAA,CAAA,CACF,CACDj9B,CAAAA,ECrMF,IAAI6N,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAM8qC,WAAkC3O,EAAiB,CAC9D,aAAc,CACZ,MAAM,GAAG,SAAS,EAOlB7vB,GAAc,KAAM,aAAa,CAClC,CASD,iBAAkB,CAChB,OAAQ,KAAK,MAAM,WAAU,CAC3B,IAAK,eACH,MAAO,sBACT,IAAK,sBACH,MAAO,aACT,QACE,MAAO,qBACV,CACF,CACD,MAAM,QAAS,CACb,MAAM,OAAM,EACZ,KAAK,YAAc,KAAK,iBACzB,CACH,CCxCA,IAAIH,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAM+qC,EAAwB,CACnC,aAAc,CACZz+B,GAAc,KAAM,aAAc,qBAAqB,EACvDA,GAAc,KAAM,aAAc,qBAAqB,CACxD,CACD,MAAM,iBAAiBkuB,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAI+/B,GAA0BtQ,EAAaC,CAAgB,EACrE,aAAM1vB,EAAE,OACDA,CACR,CACH,OCLsBigC,GAAA1tC,EAAA,CACpBC,KAAK,eACLo9B,MAAOX,GAAgB,EACvBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CAEA,MAAM+M,EAAS1L,EAAY,UAAA,EAErBm7B,EAAWj9B,EAAA,qBAEjB0tC,EAAA5iC,EAAA,CAAA,CAAA,EACM4iC,EAA8BzQ,EAAI,YACxC,GAAAqP,GAAiBA,EAAc,OAAY,EAAA,CAC3C,QAAmBA,EAAkB,IAAMr8B,KAEhC,KAAAA,EAAA,GACLjI,gBAAaiI,EAAA,gBACb09B,eAAe19B,EAAM,kBAGzBy9B,EAAE,MAAAnB,EAEJ,IAAAqB,EAAA,gBAEA3Q,EAAA,eACI2Q,EAAc,aAAS,cAC3BA,EAAA3Q,EAAA,aAAA,aAGIA,EAAY6E,aAAc,YAC5B+L,EAAe5Q,EAAa,yBAG5B,MAAIA,EAAWnyB,EAAa,CAAA,CAAA,EAC1B+iC,EAAY5Q,EAAAA,CAAAA,CAAAA,EACd6Q,EAAAhjC,EAAA,IAAA,EACFijC,EAAAjjC,EAAA,CAAA,CAAA,UAEAkjC,EAAAljC,EAAA,CAAA,CAAA,EACMmjC,EAA4BnjC,EAAI,EAAA,EACtCozB,EAAApzB,EAAA,EAAA,EACMmT,EAAyB,IAAI,CACnCigB,EAAA,MAAA,EACA,EACAwP,EAAA,OAAAA,EAAA,MAAA,OAAA,GACAA,EAAkC,MAAA,WAAU,CAC5CQ,EAAA,MAAA,KAAA,CACMA,KAA2BtG,EAAG98B,KACpC,MAAA,CAAA,CACA,CAAA,CACA,CAAA,EAEA,MAAMozB,EAAiB,MAAAxjB,EAAAjY,IAAA,CACjB0rC,MAAAA,EAAgBxG,GAAAn6B,EAAA,OAAA,EACVa,EAAQs5B,GAAAn6B,EAAA,MAAA,EACnB,GAAAkN,EAAA,EAAA,sBAED,OAAA,OAAApL,EAAA,CACIo+B,CAAAA,GAAoBA,EAAWjrC,eAAgB,CAAE,EAAAA,CACnDirC,CAAAA,EACEQ,MAAAA,GAAoBn5B,MAAK,KAAA,IAAA,iBAAA6yB,EAAA,eAAA,SAAM,OAAWv5B,EAAK,CAAE5L,CAAAA,KAAO2rC,GAAA,gBAAA,YAAA,CAAA,KAAA,EAAA3rC,CAAG,CAAC,CAC7D,CACH,MAAA,WAEA,OAAA4L,CACA,CACE,EACAggC,EAAe1G,CAAK2G,MAAU,CAC9B,KAAI5zB,CACF,SAAA6zB,EACA/+B,MAAAA,CACE,EAAA8+B,EACF,IAAEE,EAAA,CAAA,EACF,GAAAD,IAAmB,EAGnB/+B,EAAa,MAACnB,OAAQ,EACpBogC,cAAoBC,CACpB,MAAAh0B,GAAAuzB,EAAA,MAAA,UAAAU,IAAA9gC,GAAA,QAAA8gC,GAAA,KAAA,EACJj0B,GAAA,GACO,OAAA,OAAAuzB,EAAA,MAAAvzB,EAAA,EAAA7M,EAAA,GAAWQ,EAAAA,MAAAA,KAAAA,EAAAA,EAAQmgC,EAAA,KAAA3gC,EAAA,MAItBwgC,QAA2B,CAAA,GAAAI,GACzBD,EAAA,CAAA,GAAAC,CAAA,OAAYhsC,OAAcmsC,GAAA,CAAA1P,GAAA2P,KAAA,CAC5BL,IAAuBtP,GAAA,OAAA,GACvBqP,GAAQ,QAAQI,IAAA,CAClBA,GAAA,QAAAlsC,EACAksC,GAAA,UAAAA,GAAA,SAAA,OAAA,IACmBp7B,QAASu7B,IAAG,CACpBrgC,MAAOiM,GAAmBi0B,GAAA,SAAA,UAAA9gC,IAAAA,GAAA,QAAAihC,GAAA,KAAA,EACnBb,GAAAA,GAGL,OAAO,OAAAU,GAAA,SAAAj0B,EAAA,EAAAo0B,EAAA,GAETH,GAAA,SAAA,KAAAG,EAAA,EACGN,EAAW,OAAO,EAE5B,CAAA,GAEGG,GAAA,SAAAF,EACGD,EAAUC,GAGfG,GAAAD,GAAA,QAAA,CAEH,CAAA,CAEI,KACMA,EAAM5lC,KAAY4lC,CACpBF,CACE,MAAAM,KAAoBhmC,OAAkB,GAGtC,kBAAA,IAAA,SACQgmC,EACR,CAAA,EACEJ,CACAH,EACFQ,EAAA,MAAAV,GAAA,CACF,KAAA,CACF,SAAAC,KAEEC,EAAAA,OAAS,GAAGC,EAAQ,SAAA,EAAAH,EAAA,MAAAA,EAAA,KAAAA,EAAA,KAAA,MAAA,KACtB1G,EAAA8F,EAAA,MAAAa,CAAA,EACF,GAAA,CACEK,GAAAA,EAAAA,iBAA0BhH,iBAAY,CACxC,KAAA,CACF,QAAAt4B,EACF,OAAAjB,EACD,EAAA,MAAA4gC,EAAAV,EAAA9rC,CAAA,EAEHwnC,GAAA,MADsB,KAAA,IAAM,iBAAQ,QAAA,EACpC,UAAA,KAAArC,EAAA,gBAAAA,EAAA,eAAAt4B,EAAAjB,EAAA,EACA,GAAA47B,IAAAA,GAAA,SAAA,KAAAA,GAAA,KAAA,OAAA,EAAA,CACM8E,YAAkBjB,KAAAA,IAAYrrC,CAAAA,GAASiY,MAAE,CAC/CklB,GAAW3vB,GACE,MAAMA,GAAA,OACjB,KAAAA,GAAA,aAAAA,GAAA,aAAA,eAAAyK,EAAA,GACc,QAAA,GAAAjY,EAAA,GAAAA,CAAA,IAAAwN,GAAA,MAAA,GAAAA,GAAA,MAAA,GACjB,SAAAs+B,IAAAb,EAAA,MAAA,OAAA,EAAA,OAAA,CAAA,KAEDxO,GAAA,QAAAyP,IAAA,CACc,MAAAj0B,GAAU4zB,EAAgB,MAAA,UAAAr+B,IAAA0+B,GAAA,QAAA1+B,GAAA,KAAA,EAChCyK,GAAA,GAAE6zB,EAAAA,MAAAA,EAAAA,EAAAA,GACRtwB,EAAA,MAAA,KAAA0wB,EAAA,CAMA,GACI,OAAA,GAAAf,EAAA,SAAA,KACYD,EAAAA,IACKt/B,CAAO,MAAU4gC,CAClC,QAAM18B,IAAGq1B,EAAYj1B,4CAA0B,EAO/C,EACEu8B,EAAoClxB,GACpBtD,CACZ,KAAA,sBAGAy0B,IACApmC,EAAAA,MACEwlC,QAAab,GAAWjrC,CAC5BmlC,EACD,MAAA,EACD1I,CAAAA,EACqCS,WAGnCA,EAAS,QAAO,CAAA1vB,EAAAyK,IAAA,CACduD,EAAW,MAAMvD,GAAIi0B,MAAK,KAAA1+B,EAAA,KAAA,CAC5B,CAAA,EAEA,MAAAm/B,EAAAzP,EAAA,IAAA1vB,GAAAA,EAAA,IAAA,EACFi+B,EAAE,MAAA,QAAAtG,GAAA,CACFnnC,EAAA,SAAAmnC,EAAA,MAAA,OAAA,EAAAA,EAAA,MAAA,KAAA,GAAA,EAAA,KAAAA,EAAA,IAAA,IAEEyG,EAAAA,SAAAA,EAAmBnP,OAAM,EAAAkQ,EAAA,KAAAvB,CAAA,EAAA,IAAA,CAC3B,EAqCR,MAAC,CAEK7P,GAAAA,EACJv9B,EAAAA,EACD,WAAAitC,EAEKhP,YAAAA,EACJj+B,UAAAA,EACD,KAAAy9B,EAEKmR,SAAAA,EACJ,MAAApxB,EACE,eAAA8vB,EACF,cAAAG,EACA,mBAAAF,EACA,YAAAsB,EACEN,YAAAA,EAAWT,SArCT5O,GAAuB,CACxBA,MAAAA,EAAe3hB,EAAoB,WAClCkwB,GAAAA,IAAaR,EAAOhzB,MAAY,OAAMzK,CACxCi/B,EAAElxB,CAAA,EACJ,MACA,CACAgxB,EAAMI,CAGNlB,GAAAA,EACEztC,SAAAA,CAKF,CAAC,CAEDA,EAoByB,OApDrB,IAAA,CACFA,EAAA,MAAA,GAoDF,QAlDcmnC,IAAS,CACvBnnC,EAAA,OAAA,GAkDAy9B,eA/CFl+B,EAAA,UAAAA,EAAA,WAEU2/B,EAAAA,MAAAA,SAAAA,KAA0B,CAClCwO,SAAS,CACT,CAAA,IAEW,MAAM,CAAAjQ,EAAA,MACjB,EAyCD,QAAAiQ,EAEKoB,SAAAA,EACJ,0BAAAL,CACA,CACA,UAC2B,CACzB,OAAAjuC,EAAA,MAAA,CACF,MAAA,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,GAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,EAAA,CACA+tC,EAAAA,CAAAA,EAAS3tC,EAAA,WAAA,EAAA,CAAE,WAAS,KAAA,MAAEktC,sBAAAA,GAAAA,KAAAA,MAAAA,EAAS,SAAE,GAClC,SAAA,KAAA,SAEM,YAAA,KAAA,EAAA,YACL7tC,OAAE,KAAA,OACF8M,QAAC,KAAA,QACDkgC,QAAU,KAAA,WACC,CACXG,aAAS5sC,EAAA89B,GAAA,KAAA,IAAA,IACL99B,EAAAI,EAAA,WAAA,EAAA,CACJ4sC,KAAQ,KAAA,KACRhwB,MAAK,GACL8vB,SAAc,UACD,CACbC,QAAkB,IAAA,CAAA/sC,EAAAI,EAAA,cAAA,EAAA,CACP,WAAA,KAAA,YACA,sBAAA2c,GAAA,KAAA,YAAAA,EACH,MAAA,KAAA,EAAA,YAAA,KAAA,EAAA,YAAA,IACF,QAAA,KAAA,SACC,QAAA,KAAA,QACE,SAAA,KAAA,SACF,SAAA,KAAA,yBACC,EAAA,IAAA,CAAA,CACRkxB,CAAAA,CAAAA,CAAAA,KC9RC,MAAMM,WAAiC5Q,EAAiB,CAC/D,CCFA,IAAIhwB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMgtC,EAAuB,CAClC,aAAc,CACZ1gC,GAAc,KAAM,aAAc,cAAc,EAChDA,GAAc,KAAM,aAAc,cAAc,CACjD,CACD,MAAM,iBAAiBkuB,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAIgiC,GAAyBvS,EAAaC,CAAgB,EACpE,aAAM1vB,EAAE,OACDA,CACR,CACH,OCRyBkiC,GAAA3vC,EAAA,CACvBC,KAAK,kBACLo9B,MAAOX,GAAgB,EACvBj8B,SAAa,EAAEC,MAAAA,EAAAA,CAAQ,KAAAA,CACrB,EAAA,CAEA,MAAM+M,EAAS1L,EAAW,cAAA,EAEpBy7B,EAAUv9B,EAAA,WAGdu9B,EAAY96B,EAAK,EACjB,IACMyJ,IAAMlM,EAAKmM,MAAQ,CAAAD,EAAAC,IAAA,CACjBD,IAASC,IACDD,EAGZqxB,EAAA,MAAArxB,EAFOqxB,EAAA,MAAA,GAKTnxB,EAAAA,CACH,UAAA,GAEKyxB,QACAA,EAAIv8B,GAAA,CACN,GAAA,CAAAA,EACF,OACQg9B,KAAAA,SACJ,EAAAh9B,EACF,GAAA,CAAAg9B,EACF,OACQ77B,KAAAA,QACRhC,EAAI69B,EACL79B,EAAA,SAAAgC,CAAA,CAED,QAQA,MAAMu7B,CACJv9B,GAAAA,EACD,EAAA+M,EAEM,WAAA+vB,EACL78B,aAAAA,EACA8M,SAAAA,EACA+vB,QAbF,IAAA,CACMmB,EAAAA,OAAUA,GAadb,OAXD,IAAA,UAED,IAYEG,QAAAA,CACF,IAACvzB,EAAA,KACF,OAAA,KAAA,SACD1J,EAAS,GAAA,KAAA,UAAA,GAEH0J,EAAKyL,CAAAA,EAAU7U,EAAA,WAAA,EAAA,CACjB,MAAA,CAAA,KAAA,GAAA,EAAA,MAAA,CAAA,EACAoJ,WAAiB,gBACZ,sBAAAuT,GAAA,KAAA,WAAAA,EACL,SAAA,KAAA,SACAvT,YAAU,KAAA,EAAApJ,YAAA,aAEOX,QAAa,OACjB,KAAA,OAAe,SAAA,IACd,IAAA,EAAAO,EAAaI,EAAA,WAAA,EAAA,CAAA,MAAA,CAAA,KACV,GAAI,EAACmM,MAAa,EAAA,KAAA,GAAA,EAAA,QAAA,CAAA,EAAA,WACtB,KAAY,WAAA,sBACFwQ,GAAA,KAAA,WAAAA,EAAA,SAAA,KAAA,SAAA/c,YAAAA,KAAA,EAAA,YAAA,QAIP,kBAAmC,QACtC,KAAA,QAAe,OAAA,KAAA,OAAA,KACd,OAAa,EAAA,IAAA,CAAA,EAGdA,EAAKy9B,MAAO,OACb,CAAA,KAAA,GAAW,EAAA,EAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,GAAA,KAAA,SAAA,KAAA,GAAA,EAAA,UAAA,EAAA,EAAA,EAAA,MAAA,CAGtB,MAAA,KAAA,YAAA,EACH,CAEA,EAAA,CAAAj0B,CAAA,CAAA,CAAA,IChGG,MAAMklC,WAAoC/Q,EAAiB,CAClE,CCFA,IAAIhwB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMmtC,EAA0B,CACrC,aAAc,CACZ7gC,GAAc,KAAM,aAAc,iBAAiB,EACnDA,GAAc,KAAM,aAAc,iBAAiB,CACpD,CACD,MAAM,iBAAiBkuB,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAImiC,GAA4B1S,EAAaC,CAAgB,EACvE,aAAM1vB,EAAE,OACDA,CACR,CACH,CCjBA,IAAIoB,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GASF,MAAMotC,WAAiCjR,EAAiB,CAC7D,aAAc,CACZ,MAAM,GAAG,SAAS,EAIlB7vB,GAAc,KAAM,cAAc,EAIlCA,GAAc,KAAM,cAAc,CACnC,CACD,MAAM,QAAS,CAEb,GADA,MAAM,MAAM,SACR,KAAK,aAAc,CACrB,KAAM,CAAE,aAAA+gC,EAAc,aAAAC,GAAiB,KAAK,aAC5C,GAAID,EACF,GAAI,CACF,KAAK,aAAe,KAAK,MAAMA,CAAY,CAC5C,MAAe,CACd,MAAM,IAAIjT,GACRiT,EACA,wEACZ,CACS,CAEH,GAAIC,EACF,GAAI,CACF,KAAK,aAAe,KAAK,MAAMA,CAAY,CAC5C,MAAe,CACd,MAAM,IAAIlT,GACRkT,EACA,wEACZ,CACS,CAEJ,CACF,CAWD,YAAYtgC,EAAM,CAChB,IAAIg6B,EAAY,GAAG,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,IAAI,aAAa,GAC1EC,EAAc,GAAG,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,IAAI,eAAe,YAC9E+B,EAAe,CAAA,EACfC,EAAe,CAAA,EACnB,OAAI,KAAK,eACPD,EAAeE,GACb,KAAK,aACLl8B,EACA,KAAK,OACL,KAAK,OACb,GAEQ,KAAK,eACPi8B,EAAeC,GACb,KAAK,aACLl8B,EACA,KAAK,OACL,KAAK,OACb,GAEIg6B,GAAamC,GAAG,UAAUH,EAAc,CAAE,eAAgB,EAAI,CAAE,EAChE/B,GAAekC,GAAG,UAAUF,EAAc,CAAE,eAAgB,EAAI,CAAE,EAC3D,CAAE,UAAAjC,EAAW,YAAAC,EACrB,CASD,aAAaG,EAAM,CACjB,KAAK,IAAI,QAAQA,EAAK,IAAK,CACzB,OAAQ,MACR,aAAc,OACd,QAAS,EAEf,CAAK,EAAE,KAAMI,GAAa,CACpB,GAAIA,EAAS,SAAW,IACtB,MAAM,IAAI4B,GAAa,sCAAsC,EAE/D,GAAK5B,EAAS,KAEP,CACL,MAAM6B,EAAWjC,EAAK,KACtBkC,GAAqB9B,EAAS,KAAM6B,CAAQ,CAC7C,KAJC,OAAM,IAAID,GAAa,kDAAkD,CAKjF,CAAK,CACF,CACH,CChHA,IAAIj9B,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMutC,EAAuB,CAClC,aAAc,CACZjhC,GAAc,KAAM,aAAc,cAAc,EAChDA,GAAc,KAAM,aAAc,cAAc,CACjD,CACD,MAAM,iBAAiBkuB,EAAaC,EAAkB,CACpD,MAAM1vB,EAAI,IAAIqiC,GAAyB5S,EAAaC,CAAgB,EACpE,aAAM1vB,EAAE,OACDA,CACR,CACH,CCGA,MAAAyiC,GAAAlwC,EAAA,CACMkwC,KAAAA,eACJjoC,MAAoBkoC,GAAA,EACpBlwC,MAAOkwC,GAAgB,EACvB9S,MAAKp9B,EAAgB,CAChBQ,KAAAA,CAAUC,EAAAA,CAAQ,MAAAC,EAAAoB,EAAA,UAAA,EACfpB,EAAEV,EAAe,WAEjBwN,EAAqB1C,EAAA,EAAA,EAErByyB,EAAUzyB,EAAGA,IAAY,EAEzBmL,IAAiC,IAAA,EACjCk6B,EAAaC,KAEb7uC,EAAe6uC,KACfC,EAASvlC,EAAa,uCAE5B,CAAA,EACMw+B,EAAsBx+B,EAAI,EAAA,EAC9BwlC,EAAyB/G,EAAAA,EAAAA,EACzB,UAEF,EAAAgH,GAAA,EACM9G,EAAsB3+B,EAAGA,EAAO,KAAA,kBAEtC3H,EAAA2H,EAAA,CAAA,CAAA,EACA1C,EAAMshC,IAAwB1pC,EAAA,QAAU,OAExC,MAAA4pC,EAAAp8B,EAAA,YAAAtB,CAAA,EACMu9B,EAAA,MAAAG,EAAA,UAAE4G,EAAAA,MAAAA,EAAAA,WAAS,CACjB,EAAA,cAEA,KAAA,EACA,CAAA,kBAEA,MAAAnG,EAAA,IAAA,SACAA,SAAgBv/B,OAAO++B,CAAA,kBAEvB,IAAAJ,EAAA,MACArhC,OACQpI,OAEJ,QAAYspC,EAAA,MACV,KAAMM,CACNH,CAAAA,EAAAA,KAAAA,IAAe,CACfC,GAAAA,GAAAA,SAAoBE,KAAgBhE,GAAA,KAAA,OAAA,CACtC,MAAA+E,GAAAjB,EAAA,MAAA,QAAA,WAAA9D,GAAA,KAAA,MAAA,EAEF6K,EAAA9F,EAAA,CAAEv+B,CAAiB+zB,CAAAA,EAAAA,MAAM7pB,IAAA,CAC1B,KAAA,IAAA,MAAA,2BAAAA,EAAA,GAED,EACMo6B,EAAwB,KAC5B,IAAAxtC,EAEA2kC,OADgB3kC,EAAM+S,EAAM,QAAC,KAAA,OAAA/S,EAAA,WAIzBytC,EAAc,IAAA,KACPztC,EAET,OADQmnC,EAAAA,EAAAA,QAAAA,KAAAA,OAAAA,EAAAA,eAIJuG,EAAuBtrC,QACvBmrC,EAAQrtC,GACVF,EAAA+S,EAAA,QAAA,MAAA/S,EAAA,YAAAoC,EAAA,EAAA,GACDlC,EACK+sC,EAAU,QAAA,MAAA/sC,EAAA,YAAAkC,EAAA,EAAA,GAEdurC,EAAAvrC,GAAA,CACL,IAAApC,wCAED,EACAkF,EAAM0oC,IAAAA,EAAAA,MAAsB,CAAA5kC,EAAAC,IAAA,CACpBwK,IAASV,IACRU,EAGT4mB,EAAA,MAAArxB,EAFCqxB,EAAA,MAAA,GAKC,EAAA,CACD,UAAA,KAEDn1B,EAAAm1B,EAAA,CAAArxB,EAAAC,IAAA,CACMykC,MAAAA,EAAAA,IACE1kC,IAAQ6kC,GAAWtmC,IAAYyB,GACxB0kC,EAAM1kC,CAAE6kC,EAEjBF,QACSG,EAAMC,GAAEF,CACtBF,EAAAK,EAAA,CAAA,EACIzwC,EACGT,SAAKkxC,EACF/kC,CAAAA,GAEDglC,EAAS,CAAA7vC,EAAA8vC,KACD,CACZ,CAAC9vC,CAAM,EAAA8vC,IAGTC,EAAA,CAEF,MAAA9T,EAAA,MAAEnxB,MAAAA,EAAW,MACd,WAAAskC,EAEDtoC,MAAgB,CACd,WAAa,EACb,SACkB,CAClB,YAAA,YACA,UAGI4oC,OAAAA,OAKN,aAAAM,EAAA,MACA,YACa,UAAGF,EAAK,CACpB,EAED,UACO,MAAYG,EAAA,MACZ,QAAO,CACF,cACVC,OACEC,SACD,gBACDr8B,SAEC,CACK,OAAE,CAAA,QAAA,QAAA,QAAA,OAAA,KAAA,KAAA,OAAA,UAAA,MAAA,QAAA,MAAA,MAAA,CACN,EACAmO,UACA,CACA,CACA,EACAmuB,EAAA,IAAA,OACYC,EAAc,CAC1BC,GAAAA,EACE,GAAAP,EACAQ,SAAAA,CACF,YAAAb,EACD,mBAAAG,CACDW,EACEP,MAAOA,EAAW,OAOhBtmB,GAAA,IAAA,CACAhV,EAAA,MAAA,IAAA87B,GAAAJ,CAAA,GAeA,EAGJK,EAAA,IAAA,CACD,MAAAL,EAAA,CAEKD,GAAAA,EACJ,GAAAL,EACE9vC,OAAE,CACF,aAAa,aACbkvC,GAEEU,GAAAA,IAAAA,CACFhB,EAAC,MAAA,IAAA4B,GAAAJ,CAAA,KAGH1mB,GAAQ,IAAO,CACbhV,GACF,CAAA,EACF7N,EAAC,IAAAooC,EAAA,MAAAtkC,GAAA,CACK8lC,IAAAA,EACJT,EAAMI,SACJpwC,EAAI8uC,EAAS,QAAA,MAAAntC,EAAA,SAAAquC,EAAA,KAAA,CACb,CAAA,EACAt7B,GAAQ,IAAA,CAAEq7B,EAAAA,MAAAA,KAA4BnB,EAAA,MAAA,OAExCllB,MAAAA,EAAengB,EAAA,EAAA,EAcf,MACD,CAEDmnC,GAAAA,EACEh8B,WAAAA,EACAk6B,GAAAA,EACA,UAAAE,EACF,OAAAp6B,EAEA,QAAAqzB,EACE,MAAAiI,EACE,aAAAD,EACF,QAAAnuC,EACAilC,cAAAA,EACA,iBAAA8I,EACEQ,iBAAAA,EACF,WA7BqB,SAAa,CAChC1xC,EAAA,UAAAA,EAAA,WAIFgyC,EAAAA,MAAAA,GACA/7B,EAAA,OAEF7N,MAsBC,OAAAggC,YAGW,QACRnnC,EAAA,MAAA,CACFovC,MAAS,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,GAAA,GAAA,WAAA,KAAA,QAAA,CAAA,GACH,CAAApvC,EAAAI,EAAA,WAAA,EAAA,CACNioC,SAAO,GACPiI,SAAK,KAAA,SACLD,QAAY,KAAA,YACL,CACPR,MAAa7vC,EAAA,MAAA,CACG,GAAA,KAAA,UACA,MAAA,KAAA,QACN,MAAA,KAAA,GAAA,EAAA,QAAA,CACVmnC,EAAAA,IAAAA,CACD,CAAA,EAAAnnC,EAAAI,EAAA,YAAA,EAAA,CACF,KAAA,KAAA,OACDN,gBAASid,GAAA,KAAA,OAAAA,EACP,UAAA,KAAA,GAAA,EAAA,QAAA,GACc,CAAoD/c,QAAAA,IAAAI,CAAAJ,EAAA,MAAA,CAAA,GAAA,KAAA,GAChC,MAAA,KAAI,QAAS,MAAW,KAAKslC,GAAAA,EAAAA,QAAAA,CAAU,EAAA,IAAA,CAAA,CAEjE2L,CAAAA,CAAAA,CAAAA,KChPCC,GAAaxwC,GAAA,aAAA,CACxB,QAAUgI,GAAM,CACdA,EAAE,UAAUiyB,GAAmB,KAAMA,EAAkB,EACvDjyB,EAAE,UAAUwzB,GAAU,KAAMA,EAAS,EACrCxzB,EAAE,UAAUs0B,GAAgB,KAAMA,EAAe,EACjDt0B,EAAE,UAAUkyB,GAAS,KAAMA,EAAQ,EACnClyB,EAAE,UAAUw3B,GAAW,KAAMA,EAAU,EACvCx3B,EAAE,UAAU43B,GAAU,KAAMA,EAAS,EACrC53B,EAAE,UAAUq1B,GAAa,KAAMA,EAAY,EAC3Cr1B,EAAE,UAAUs2B,GAAiB,KAAMA,EAAgB,EACnDt2B,EAAE,UAAUi4B,GAAW,KAAMA,EAAU,EACvCj4B,EAAE,UAAUy4B,GAAY,KAAMA,EAAW,EACzCz4B,EAAE,UAAU64B,GAAS,KAAMA,EAAQ,EACnC74B,EAAE,UAAU66B,GAAe,KAAMA,EAAc,EAC/C76B,EAAE,UAAU07B,GAAW,KAAMA,EAAU,EACvC17B,EAAE,UAAU68B,GAAY,KAAMA,EAAW,EACzC78B,EAAE,UAAUkhC,GAAe,KAAMA,EAAc,EAC/ClhC,EAAE,UAAU0hC,GAAgB,KAAMA,EAAe,EACjD1hC,EAAE,UAAUohC,GAAgB,KAAMA,EAAe,EACjDphC,EAAE,UAAUsiC,GAAsB,KAAMA,EAAqB,EAC7DtiC,EAAE,UAAUkjC,GAAoB,KAAMA,EAAmB,EACzDljC,EAAE,UAAU8jC,GAAa,KAAMA,EAAY,EAC3C9jC,EAAE,UAAU+lC,GAAgB,KAAMA,EAAe,EACjD/lC,EAAE,UAAU89B,GAAqB,KAAMA,EAAoB,EAC3D99B,EAAE,UAAUsmC,GAAa,KAAMA,EAAY,EAC3CmC,GAAuB,OAAQ,IAAM,IAAIrV,EAAoB,EAC7D,MAAMsV,EAAwB,IAAIvT,GAClCsT,GAAuB,UAAW,IAAMC,CAAqB,EAC7DD,GAAuB,cAAe,IAAMC,CAAqB,EACjED,GAAuB,cAAe,IAAMC,CAAqB,EACjED,GACE,YACA,IAAM,IAAItT,GAAsB,QAAQ,CAC9C,EACIsT,GACE,kBACA,IAAM,IAAIpS,EAChB,EACIoS,GACE,eACA,IAAM,IAAIlR,EAChB,EACIkR,GAAuB,YAAa,IAAM,IAAI9Q,EAAsB,EACpE8Q,GAAuB,cAAe,IAAM,IAAI3C,EAAwB,EACxE2C,GACE,iBACA,IAAM,IAAIxC,EAChB,EACIwC,GAAuB,YAAa,IAAM,IAAIjQ,EAAsB,EACpEiQ,GAAuB,aAAc,IAAM,IAAI7P,EAAuB,EACtE6P,GAAuB,YAAa,IAAM,IAAI1P,EAAoB,EAClE0P,GAAuB,cAAe,IAAM,IAAIpC,EAAwB,EACxEoC,GACE,eACA,IAAM,IAAIzQ,EAChB,EACI,MAAM2Q,EAAqB,IAAIlN,GAC/BgN,GAAuB,UAAW,IAAME,CAAkB,EAC1DF,GAAuB,eAAgB,IAAME,CAAkB,EAC/DF,GAAuB,iBAAkB,IAAME,CAAkB,EACjEF,GAAuB,gBAAiB,IAAME,CAAkB,EAChEF,GAAuB,yBAA0B,IAAME,CAAkB,EACzEF,GAAuB,iBAAkB,IAAME,CAAkB,EACjEF,GAAuB,iBAAkB,IAAME,CAAkB,EACjEF,GACE,YACA,IAAM,IAAIlJ,GAAyB,WAAW,CACpD,EACIkJ,GACE,aACA,IAAM,IAAIlJ,GAAyB,YAAY,CACrD,EACIkJ,GACE,yBACA,IAAM,IAAIlJ,GAAyB,wBAAwB,CACjE,EACIkJ,GACE,sBACA,IAAM,IAAIpG,GAA2B,qBAAqB,CAChE,EACIoG,GACE,qBACA,IAAM,IAAIpG,GAA2B,oBAAoB,CAC/D,EACIoG,GACE,aACA,IAAM,IAAIpG,GAA2B,YAAY,CACvD,EACIoG,GACE,iBACA,IAAM,IAAIpG,GAA2B,gBAAgB,CAC3D,EACIoG,GACE,iBACA,IAAM,IAAIpG,GAA2B,gBAAgB,CAC3D,EACIoG,GACE,iBACA,IAAM,IAAIxF,EAChB,EACIwF,GAAuB,eAAgB,IAAM,IAAI5E,EAAyB,EAC1E4E,GACE,sBACA,IAAM,IAAI5E,EAChB,CACG,CACH,CAAA,EC3IA,IAAI5+B,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGH,MAAA8vC,GAAO5wC,GAAA,OAAA6wC,GAAW,CACtB,OAAQ,GACR,OAAQ,OACV,CAAC,CAAE,EACI,MAAMC,EAAS,CACpB,aAAc,CACZ1jC,GAAc,KAAM,MAAM,EAC1BA,GAAc,KAAM,aAAa,EACjCA,GAAc,KAAM,UAA2B,IAAI,GAAK,EACxD,KAAK,YAAc,QACnB,KAAK,KAAO,SAAS,cAAc,MAAM,EACzC,MAAMiY,EAAO,aAAa,QAAQ,UAAU,GAAK,UAAU,UAAY,KAAK,YAC5EurB,GAAK,OAAO,OAAO,MAAQvrB,EAC3B,KAAK,KAAK,aAAa,OAAQA,CAAI,EACnC,KAAK,QAAQ,IAAI,KAAM,IAAMpE,GAAA,OAAO,qBAAY,CAAC,EACjD,KAAK,QAAQ,IAAI,QAAS,IAAMA,GAAA,OAAO,qBAAe,CAAC,CACxD,CAQD,MAAM,MAAO,CACX,MAAMoE,EAAOurB,GAAK,OAAO,OAAO,MAChC,IAAIpP,EACA,KAAK,QAAQ,IAAInc,CAAI,EACvBmc,EAAI,KAAK,QAAQ,IAAInc,CAAI,EAEzBmc,EAAI,KAAK,QAAQ,IAAI,KAAK,WAAW,EAEvC,MAAMvgB,EAAS,MAAMugB,IACrBoP,GAAK,OAAO,iBAAiBA,GAAK,OAAO,OAAO,MAAO3vB,EAAO,OAAO,CACtE,CAQD,eAAe8vB,EAAW,CACX,OAAO,KAAKA,CAAS,EAC7B,QAAS3qC,GAAQ,CACpB,KAAK,QAAQ,IAAIA,EAAK2qC,EAAU3qC,CAAG,CAAC,CAC1C,CAAK,CACF,CAQD,QAAQif,EAAM,CACZ,KAAK,QAAQ,QAAQ,CACnB,MAAO,eACP,KAAM,6FACZ,CAAK,EAAE,KAAK,IAAM,CACZ,aAAa,QAAQ,WAAYA,CAAI,EACrC,OAAO,SAAS,QACtB,CAAK,CACF,CACD,SAAU,CACR,OAAO,KAAK,KAAK,aAAa,MAAM,GAAK,KAAK,WAC/C,CACD,EAAEsT,EAAKqY,EAAY/nB,EAAS,CAC1B,OAAO2nB,GAAK,OAAO,EACjBjY,EACAqY,EACA/nB,CACN,CACG,CACH,CACA,MAAMgoB,GAAW,IAAIH,GC1EwB,SAAAjmC,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAE7C,OACuComC,GAAA9yC,EAAA,CACrCC,KAAO,gCACLgO,MAAAA,CACE9N,UAAyC,CACzCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAA8B,CAC9BC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CAEX,IAAAoB,EAAkBE,EAElB,MAAM0vC,EAAGhxC,EAAc,cAAA,EACjBixC,EAAAjoC,EAAA,EAAA,EAAEkoC,EAAAA,KAAY,CACpB,KAAAA,CACA,EAAAF,EAEIG,IAAoB,MACxB9gC,EAAAC,KACA,IAAI4gC,EAAoB,GACtBC,EAAAA,kBAAoB,EACrBA,KACCD,EAAA,MAAA,YAAA,GAEGA,EAAKE,MAAMC,aAAe,GACzBH,EAAKxkC,MAAM4kC,WAAa,gBACzBJ,EAAKE,MAAMC,aAAe,MACxBH,GAAe9vC,EAAA8vC,eAAsB,KAAA,OAAA9vC,eACzBmwC,OACfjwC,EAAA,YAAA,gBAAA+O,EAAA,KAAA,SACA8gC,EAAe,IAEjBD,EAAA,MAAA,YAAA,IACDC,MAED,MAAAK,EAAA,SAAA,KAEAP,EAAA,MAAA,GACA,MAAaC,EAAA,KAAGM,GAAY,OAAA,SACtB,CACFP,EAAatwC,MAAQ,EACrB,CACF,EACc,CACd,GAAAlB,GACDvB,EAAA,UACKkC,EAAAF,EAAA,IAAA,CAAET,IAAAA,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,CAAAA,CAAAA,EAAI,OAAAoV,EAAkB,CAC9B,GAAcA,EACZ,GAAiC3W,EAAA,WAAYU,eAI3CA,EAAA,GAAA,SAAAuyC,CAAA,EACEvyC,EAAG,GAAC,SAAsB,CAAAV,EAAA,WACvB,MAAS,OAAGA,CAEnB,EACA2W,EACK,QACH,CACF48B,GAAAA,EACAR,UAAAA,EACAE,aAAAA,EACA/wC,aAAAA,EACAoxC,SAAAA,EACD,QAAAA,EAEHvyC,EACE,QAAA,CACA,IAAM2T,EAAAA,EACN,MAAMjK,IAAOrH,GAAA/B,EAAA,KAAA,QAAA,UAAA,KAAA,OAAA+B,EAAA,KAAAF,CAAA,IAAA,GACKuH,EAAKvI,EAAQb,EAAA,SAAA,EAAA,CAAA,MAAU,KAAI,SAAiB,OAAA,KAAA,UAAA,MAAAd,EAAAA,CAGxD,QAAW,IAAA,CAAGqU,KAAK5U,cAAciB,EAAAI,EAAA,cAAA,EAAA,KAAA,IAAA,EAAAqT,EAAA,IAAAE,GAAA,CACjC,MAAU5U,EAAI4U,EAAM,MAClB,MAAA,CAAA5U,GAAW,CAAAA,EAAA,WACb4U,EACA3T,EAEoBI,EAAoB,SAAA,EAAA,CAAA,UAC7BrB,EAAMiO,UAAWpM,UAAK,MAE5B+S,EAAI,WAAA,OAAApI,GAAAjM,CAAA,EAAAqU,EAAA,CAAA,QAAA,IAAA,CAAAA,CAAA,CAGX,CAAE,EAEL,CAAA,CACD,CAAA,SACE3T,KAAAA,UAAAA,wBAAA,GAAAA,EAEoBI,EAAW,kBAAA,EAAA,CAAA,MAClB,KAAA,GAAA,EAAK0xC,SAAY,EAAA,WAAA,KAAA,aAAA,sBACVO,GAAAA,KAAAA,aAAAA,EAAO,UAEf,KAAA,SAAA9mC,GAAAjM,CAAPkK,EAAOA,EAAA,CAAA,QAAA,IAAA,CAAAA,CAAA,CAGd,CAAA,EAEFA,CACA,ICrHF,IAAImE,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAM+wC,EAAkC,CAC7C,aAAc,CACZzkC,GAAc,KAAM,YAAa,+BAA+B,CACjE,CACD,MAAM,iBAAiBxB,EAAW8D,EAAOqE,EAAQ,CAC/C,MAAMlI,EAAI,IAAIimC,GAAyBlmC,EAAW8D,EAAOqE,CAAM,EAC/D,aAAMlI,EAAE,OACDA,CACR,CACH,CCZO,MAAMkmC,GAAgCxkC,GAC3C2jC,GACA,SAASlpC,EAAG,CACVA,EAAE,UAAUkpC,GAA0B,KAAMA,EAAyB,EACrEc,GACE,oBACA,IAAM,IAAIH,EAChB,CACG,CACH,ECbA,IAAI5kC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMmxC,EAAY,CACvB,aAAc,CAQZ7kC,GAAc,KAAM,QAAS,CAAC,EAQ9BA,GAAc,KAAM,gBAAiB,CAAC,EAQtCA,GAAc,KAAM,SAAS,CAC9B,CAOD,MAAO,CACD,KAAK,QAAU,IACjB,KAAK,QAAU8kC,GAAiB,CAC9B,QAAS,wBACT,YAAa,EACrB,CAAO,GAEH,KAAK,OAAS,CACf,CAOD,MAAO,CACD,KAAK,MAAQ,IACf,KAAK,OAAS,GAEZ,KAAK,QAAU,GACb,KAAK,SACP,KAAK,QAAQ,OAGlB,CAOD,cAAe,CACb,KAAK,KAAI,CACV,CAOD,cAAe,CACb,KAAK,KAAI,CACV,CACH,CAAAlyC,GAAA,cAAAiyC,EAAA,EClFO,MAAME,EAAY,CACvB,KAAKC,EAAKC,EAAUC,EAAU,CAC5BC,GAAU,CACR,QAASH,EACT,SAAUC,GAAY,KAAOA,EAAW,IAAM,KAC9C,aAAcC,CACpB,CAAK,CACF,CACD,QAAQF,EAAKC,EAAUC,EAAU,CAC/BE,GAAiB,CACf,QAASJ,EACT,SAAUC,GAAY,KAAOA,EAAW,IAAM,KAC9C,aAAcC,CACpB,CAAK,CACF,CACD,QAAQF,EAAKC,EAAUC,EAAU,CAC/BC,GAAU,CACR,QAASH,EACT,SAAUC,GAAY,KAAOA,EAAW,IAAM,KAC9C,aAAcC,CACpB,CAAK,CACF,CACD,MAAMF,EAAKC,EAAUC,EAAU,CAC7BG,GAAc,CACZ,QAASL,EACT,SAAUC,GAAY,KAAOA,EAAW,IAAM,KAC9C,aAAcC,CACpB,CAAK,CACF,CACH,CAAAtyC,GAAA,cAAAmyC,EAAA,EC7BO,MAAMO,EAAU,CACrB,MAAM,KAAKhmC,EAAQ,CACjB,KAAM,CAAE,kBAAAimC,EAAmB,iBAAAC,CAAkB,EAAGlmC,EAChD,MAAMmmC,GAAW,CACf,MAAOnmC,EAAO,MACd,QAASA,EAAO,KAChB,kBAAAimC,EACA,iBAAAC,CACN,CAAK,CACF,CACD,MAAM,QAAQlmC,EAAQ,CACpB,KAAM,CAAE,kBAAAimC,EAAmB,iBAAAC,CAAkB,EAAGlmC,EAChD,MAAMmmC,GAAW,CACf,MAAOnmC,EAAO,MACd,QAASA,EAAO,KAChB,mBAAoB,UACpB,kBAAAimC,EACA,iBAAAC,CACN,CAAK,CACF,CACD,MAAM,QAAQlmC,EAAQ,CACpB,KAAM,CAAE,kBAAAimC,EAAmB,iBAAAC,CAAkB,EAAGlmC,EAChD,MAAMmmC,GAAW,CACf,MAAOnmC,EAAO,MACd,QAASA,EAAO,KAChB,mBAAoB,UACpB,kBAAAimC,EACA,iBAAAC,CACN,CAAK,CACF,CACD,MAAM,MAAMlmC,EAAQ,CAClB,KAAM,CAAE,kBAAAimC,EAAmB,iBAAAC,CAAkB,EAAGlmC,EAChD,MAAMmmC,GAAW,CACf,MAAOnmC,EAAO,MACd,QAASA,EAAO,KAChB,MAAO,eACP,kBAAAimC,EACA,iBAAAC,CACN,CAAK,CACF,CACD,MAAM,QAAQlmC,EAAQ,CACpB,KAAM,CAAE,kBAAAimC,EAAmB,iBAAAC,CAAkB,EAAGlmC,EAChD,OAAO,IAAI,QAASi8B,GAAY,CAC9BmK,GAAkB,CAChB,MAAOpmC,EAAO,MACd,QAASA,EAAO,KAChB,kBAAAimC,EACA,iBAAAC,CACR,CAAO,EAAE,KAAK,IAAM,CACZjK,EAAQ,EAAI,CACpB,CAAO,EAAE,MAAM,IAAM,CACbA,EAAQ,EAAK,CACrB,CAAO,CACP,CAAK,CACF,CACH,CAAA3oC,GAAA,YAAA0yC,EAAA,ECvDO,MAAMK,EAAiB,CAC5B,KAAKrmC,EAAQ,CACX,MAAM2lC,EAAW3lC,EAAO,SAAWA,EAAO,SAAW,IAAM,KAC3DsmC,GAAW,CACT,QAAStmC,EAAO,KAChB,KAAM,UACN,SAAA2lC,CACN,CAAK,CACF,CACD,QAAQ3lC,EAAQ,CACd,MAAM2lC,EAAW3lC,EAAO,SAAWA,EAAO,SAAW,IAAM,KAC3DsmC,GAAW,CACT,QAAStmC,EAAO,KAChB,KAAM,UACN,SAAA2lC,CACN,CAAK,CACF,CACD,QAAQ3lC,EAAQ,CACd,MAAM2lC,EAAW3lC,EAAO,SAAWA,EAAO,SAAW,IAAM,KAC3DsmC,GAAW,CACT,QAAStmC,EAAO,KAChB,KAAM,UACN,SAAA2lC,CACN,CAAK,CACF,CACD,MAAM3lC,EAAQ,CACZ,MAAM2lC,EAAW3lC,EAAO,SAAWA,EAAO,SAAW,IAAM,KAC3DsmC,GAAW,CACT,QAAStmC,EAAO,KAChB,KAAM,SACN,SAAA2lC,CACN,CAAK,CACF,CACH,CAAAryC,GAAA,mBAAA+yC,EAAA,EC1BO,MAAME,EAAa,CAExB,YAAY5zB,EAAQ,CAClB,KAAK,OAASA,CACf,CACD,KAAK1U,EAAM,CACT,OAAOuoC,GAAe,KAAK,KAAK,OAAQvoC,CAAI,CAC7C,CACD,MAAM,KAAKwoC,EAAWxlC,EAASjB,EAAQ,CACrC,MAAM0mC,EAAU,MAAM,KAAK,IAAI,OAAO,KAAK,IAAID,CAAS,EAClD,CAAE,KAAAxoC,CAAM,EAAG,MAAM0oC,GACrBD,EACA,KAAK,OAAO,aAAa,MACzBzlC,EACAjB,CACN,EACI,OAAOwmC,GAAe,KAAK,KAAK,OAAQvoC,CAAI,CAC7C,CAWD,MAAM,MAAMwoC,EAAWxlC,EAASjB,EAAQ,CACtC,MAAM0mC,EAAU,MAAM,KAAK,IAAI,OAAO,KAAK,IAAID,CAAS,EAClDnxB,EAAO,CACX,WAAY,EAClB,EACI,OAAOsxB,GACL,CACE,QAAA3lC,EACA,OAAAjB,EACA,OAAQ0mC,EAAQ,EACjB,EACDpxB,CACN,CACG,CACD,MAAM,QAAQmxB,EAAWj0C,EAAOyO,EAASjB,EAAQ,CAC/C,MAAM0mC,EAAU,MAAM,KAAK,IAAI,OAAO,KAAK,IAAID,CAAS,EACxD,OAAOI,GACLr0C,EACA,CACE,QAAAyO,EACA,OAAAjB,EACA,OAAQ0mC,EAAQ,EACjB,EACD,CAAE,UAAW,GAAM,UAAW,QAAU,CAC9C,CACG,CAWD,MAAM,OAAOD,EAAWxlC,EAASjB,EAAQ,CACvC,MAAM0mC,EAAU,MAAM,KAAK,IAAI,OAAO,KAAK,IAAID,CAAS,EAClDK,EAAYC,GAAmBL,EAAQ,QAAQ,EAC/CpxB,EAAO,CACX,MAAOoxB,EAAQ,MACf,OAAQA,EAAQ,OAChB,UAAAI,CACN,EACI,OAAOE,GACL,CACE,QAAA/lC,EACA,OAAAjB,EACA,OAAQ0mC,EAAQ,EACjB,EACDpxB,CACN,CACG,CACD,MAAM,OAAOmxB,EAAWxlC,EAASjB,EAAQ,CACvC,MAAM0mC,EAAU,MAAM,KAAK,IAAI,OAAO,KAAK,IAAID,CAAS,EACxD,WAAK,IAAI,KAAK,iBAAkBC,EAASzlC,EAASjB,CAAM,EAClD,IAAI,KACX,CACH,CAAA1M,GAAA,eAAAizC,EAAA,EC9EO,MAAEU,GAAAv1C,EAAA,CACL4jB,MAAM,CACJzjB,KAAI,CACJK,KAAAA,OACF,QAAA,KAAA,CAAA,EACD,CACDC,EACE,MAAAR,EAAW8B,EAAY,CAEvB,MAAMyzC,EAAMzzC,EAAY,OAAC,EAEnByzC,EAAAzqC,EAAA,EAAA,EAAE0qC,CAAQ,OAAAA,CAChB,EAAAjF,qBAEAkF,EAAArnC,GAAA,CACMqnC,CAAAA,EAAAA,gBAAcrnC,SAAgB,CAAA,EAAAsnC,CAClC,CAAA,EACA,CACI,MAAAtqB,EAAEA,OAAAA,CAAO7H,EAAAA,EAAAA,KAAWvjB,EAC1By1C,EAAW,MAAAE,GAAAvqB,CAAA,EAAA,GAAAA,CAAA,KAAAA,EAEJqqB,EAAA,MAAA,QAEMlyB,EACbkyB,EAAA,OAAAE,GAAApyB,CAAA,EAAA,GAAAA,CAAA,KAAAA,EAEEkyB,EAAYlyB,OAASoyB,QAErB,MAAA/qB,EAAA9f,EAAA,CACA2qC,WAAYlyB,GACd,WAAA,KAEAvjB,EAAA,MACM4qB,OAAAA,OAAU9f,EAAmB,MAAA9K,EAAA,IAAA,EAAoB41C,MAAAA,EAAY,IAAAC,GAAA,CAAK,KAAAC,GAAA,MACpE91C,UAAM2jB,EACRnU,QAAaC,GAAQ,CACvB+lC,EAAA,UAAA,EAEA1C,EAAW,KAAA,UAAarjC,CAAA,CAClB,CACJsmC,CAAAA,EAUF,MAAC,MAED,OAAAR,EACMS,QAAAA,EACJ9C,YAAAA,EACD,YAAAuC,EAEKQ,MAAAA,EACJV,QAXF,IAAA,CACAA,EAAmB,MAAA,EACjB,EAUD,QAfC9lC,GAAA,CACAyjC,EAAA,QAAAzjC,CAAA,GAgBK,cApBqB,SAAA,OAClByjC,EAAU,SAChBJ,YAqBK,QACI7xC,EAAAI,EAAA,YAAA,EAAA,CACXo0C,KAAW,KAAA,OACXvC,kBAAK,GACL+C,MAAO,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,QAAA,WAAA,KAAA,GAAA,EAAA,KAAA,QAAA,SAAA,EAAA,KAAA,QAAA,UAAA,EACPD,MAAO,KAAA,YACPE,eAAAA,KAAAA,eACD,CACF,QAAA,IAAA,CACKn1C,IAAGmC,EAAAE,EACPnC,MAAAA,EAAAA,GAAAiC,EAAA,KAAA,QAAA,UAAA,KAAA,OAAAE,EAAA,KAAAF,EAAA,KAAA,KAAA,CAAA,CAEU,CAAW,CAAA,CACO,IAMD,SAAAizC,GACJD,EAAAA,EAAAA,CAAa,OAAA,IAAAE,GAAAd,GAAAv0C,EAAA4iB,CAAA,CAAApjB,CCtFjC,MAAE81C,GAAAt2C,EAAA,CACL4jB,MAAM,CACJzjB,KAAI,CACJK,KAAAA,OACF,QAAA,KAAA,CAAA,EACD,CACDC,EACE,MAAAR,EAAW8B,EAAY,CAEvB,MAAMyzC,EAAMzzC,EAAY,QAAC,EAEnByzC,EAAAzqC,EAAA,EAAA,EAAE0qC,CAAQ,OAAAA,CAChB,EAAAjF,KAEM2C,EAAY2C,EAAM,YAClB3C,EAAU,IAAO2C,GAAA,CACrBE,KAAAA,GAAY,OACZC,oBACkBvmC,GAAC,CACjBqjC,EAAQ,UAAU,EACpBA,EAAA,KAAA,UAAArjC,CAAA,CACA,IAEFymC,EAAA,MAAAI,GAAA,CACmB,MAAUA,EAAAA,WAE3BA,GAEA,EACDN,EAAAvmC,GAAA,aAED,EACMumC,EAAWvmC,IAAsB,CACrCyjC,EAAM8C,MAAQvmC,IAGhB,IAAMwmC,EAAUA,UACRj2C,EAAM,KAAO,UAAA,CACpB,IAAA,OAEGy3B,EAAY,MAEhB,MACE,IAAK,MACHA,EAAY,MACZ,MACF,IAAK,SACHA,EAAY,MACZ,MACF,QACEA,EAAY,KACZ,CACF,MAAA,CACEA,GAAAA,EACJ,OAAA8d,EAEO,UAAA9d,EACL/2B,aAAAA,EACA60C,MAAAA,EACA9d,QAAAA,EACA8e,QAAAA,EACArD,cAAAA,IAGAgD,QAAAA,CACF,OAACj1C,EAAAI,EAAA,WAAA,EAAA,CACF,cAAA,KAAA,OACDN,cAAS,GACPE,cAAAA,GAAA,KAEiB,KAAA,KAAA,MAAW,MAAA,KAAA,GAAA,EAAA,EAAA,UAAA,KAEN,aAAA,UACP0iB,KAAKyH,UAAK,eACP,KAAI,eACT,CAAiB,QACf,IAAA,CAAc,IAAAloB,EAAAE,EACO,MAAA,EAAAA,GAAAF,EAAA,KAAA,QAAA,UAAA,KAAA,OAAAE,EAAA,KAAAF,EAAA,KAAA,KAAA,CAAA,CAAA3C,CAEE,CAAA,CAGxC,CACF,CAAC,mBAED,OAAA,IAAA61C,GAAAC,GAAAt1C,EAAA4iB,CAAA,CACA,CChGO,MAAM6yB,EAAkB,CAC7B,QAAQC,EAAUC,EAAY75B,EAAQ85B,EAAO,CAC3C,MAAM,IAAI,MAAM,yBAAyB,CAC1C,CACD,cAAcD,EAAY75B,EAAQ85B,EAAO,CACvC,MAAM,IAAI,MAAM,yBAAyB,CAC1C,CACD,kBAAkBD,EAAY75B,EAAQ85B,EAAO,CAC3C,MAAM,IAAI,MAAM,yBAAyB,CAC1C,CACD,OAAOvsC,EAAWpK,EAAO2jB,EAAM,CAC7B,MAAMizB,EAAS,KAAK,aAAaxsC,EAAWpK,EAAO2jB,CAAI,EACvD,OAAAizB,EAAO,QAAO,EACPA,EAAO,eACf,CACD,aAAaxsC,EAAWpK,EAAO2jB,EAAM,CACnC,OAAOkzB,GACLxxC,GAAW+E,CAAS,EAAIA,EAAY,IAAM0D,GAAEpK,EAAiB0G,CAAS,EAAG,CAAE,GAAGpK,EAAO,EACrF2jB,CACN,CACG,CACD,MAAM,MAAMvZ,EAAWpK,EAAO2jB,EAAM,CAClC,MAAMuvB,EAAQ,KAAK,YAAY9oC,EAAWpK,EAAO2jB,CAAI,EACrD,OAAAuvB,EAAM,QAAO,EACNA,EAAM,eACd,CACD,YAAY9oC,EAAWpK,EAAO2jB,EAAM,CAClC,OAAOwyB,GACL9wC,GAAW+E,CAAS,EAAIA,EAAY,IAAM0D,GAAEpK,EAAiB0G,CAAS,EAAG,CAAE,GAAGpK,EAAO,EACrF2jB,CACN,CACG,CACD,MAAM,YAAYvZ,EAAWpK,EAAO2jB,EAAM,CACxC,MAAMmzB,EAAc,KAAK,kBAAkB1sC,EAAWpK,EAAO2jB,CAAI,EACjE,OAAAmzB,EAAY,QAAO,EACZA,EAAY,eACpB,CACH,CAAAn1C,GAAA,oBAAA60C,EAAA,ECxCA,MAAMO,GAAe,OAAO,YAAY,EAClCC,GAAkBvkB,GAAO,CAC7B,MAAM7H,EAAU,CAAE,QAAS,wBAAyB,YAAa,GAAM,SAAU6H,GACjFA,EAAGskB,EAAY,EAAI,CACjB,SAAUlD,GAAiBjpB,CAAO,CACtC,CACA,EACaqsB,GAAmBt1C,GAAA,mBAAA,CAC9B,QAAQ8wB,EAAIykB,EAAS,CACfA,EAAQ,OACVF,GAAevkB,CAAE,CAEpB,EACD,QAAQA,EAAIykB,EAAS,CACnB,MAAMtxC,EAAW6sB,EAAGskB,EAAY,EAC5BG,EAAQ,WAAaA,EAAQ,QAC3BA,EAAQ,OAAS,CAACA,EAAQ,SAC5BF,GAAevkB,CAAE,EAEW7sB,GAAS,SAAS,QAGnD,EACD,UAAU6sB,EAAI,CACZ,IAAIvvB,GACHA,EAAKuvB,EAAGskB,EAAY,IAAM,MAAgB7zC,EAAG,SAAS,OACxD,CACH,CAAA,ECvBO,SAASi0C,GAAchlC,EAAO,CACnC,MAAMilC,EAASjlC,EAAM,QAAQ,CAAC,EAC9B,IAAIpK,EAAM,GACNsvC,EAAU,GACd,OAAID,EAAO,KAAK,SACdrvC,EAAMqvC,EAAO,KACbC,EAAU,IAEZtvC,EAAM0Z,GAAmBtP,EAAOilC,EAAO,KAAK,KAAO,EAAI,CAAC,EACjD,CAAE,IAAArvC,EAAK,QAAAsvC,EAChB,CACY,MAACC,GAAe31C,GAAA,eAAA41C,GAAY,YAAa,IAAM,CACzD,IAAIv2B,EACJ,MAAMzS,EAAM,IAAIipC,GACVxjC,EAAKzF,EAAI,GAAG,KAAKA,CAAG,EACpBkpC,EAAMlpC,EAAI,IAAI,KAAKA,CAAG,EACtBmpC,EAA8B,IAAI,IAClCC,EAAYvpC,GAAS,CACzB,UAAW,CAAE,EACb,WAAY,EAChB,CAAG,EACKwpC,EAAiB,CAAC7vC,EAAKoK,IAAU,CACrC,GAAIulC,EAAY,IAAI3vC,CAAG,EAAG,CACxB,MAAM8vC,EAAOH,EAAY,IAAI3vC,CAAG,EAChC8vC,EAAK,SAAW1lC,EAAM,QAC5B,MACMulC,EAAY,IAAI3vC,EAAK,CAAE,IAAAA,EAAK,SAAUoK,EAAM,QAAQ,CAAE,CAE5D,EACQ4C,EAAO,CAAChN,EAAKoK,IAAU,CAC3B5D,EAAI,KAAK,sBAAuB,MAAM,EACtCopC,EAAU,UAAU,KAAK5vC,CAAG,EAC5B6vC,EAAe7vC,EAAKoK,CAAK,EACzBwlC,EAAU,WAAa5vC,CAC3B,EACQ+vC,EAAM,IAAM,CAChB,GAAIH,EAAU,UAAU,OAAS,EAC/B,MAAM,IAAI9L,GAAa,gFAAgF,EAEzGt9B,EAAI,KAAK,sBAAuB,KAAK,EACrC,MAAMwpC,EAASJ,EAAU,UAAU,IAAG,EACtCD,EAAY,OAAOK,CAAM,EACzBJ,EAAU,WAAaA,EAAU,UAAUA,EAAU,UAAU,OAAS,CAAC,CAC7E,EAsBE,MAAO,CAAE,UAAAA,EAAW,KArBNK,GAAY,CACxBh3B,EAASg3B,EACTA,EAAQ,UAAWC,GAAO,CACxB,KAAM,CAAE,IAAAlwC,EAAK,QAAAsvC,CAAS,EAAGF,GAAcc,CAAE,EACrCZ,IACEtvC,IAAQ4vC,EAAU,WACpBC,EAAe7vC,EAAKkwC,CAAE,EACbN,EAAU,UAAU,SAAS5vC,CAAG,EACzC+vC,IAEA/iC,EAAKhN,EAAKkwC,CAAE,GAGhBN,EAAU,WAAa5vC,CAC7B,CAAK,CACL,EAM4B,GAAAiM,EAAI,IAAAyjC,EAAK,OALpB,IAAM,CACnB,MAAMS,EAAcP,EAAU,UAAUA,EAAU,UAAU,OAAS,CAAC,EAChEQ,EAAeT,EAAY,IAAIQ,CAAW,EAAE,SAClDl3B,EAAO,KAAKm3B,CAAY,CAC5B,CAC2C,CAC3C,CAAC,CAAA,EChE2C,SAAA3rC,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAE5C,OACsC2rC,GAAAr4C,EAAA,CACpCC,KAAO,+BACLgO,MAAAA,CACE9N,UAAyC,CACzCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAA8B,CAC9BC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CACX,MAAMqQ,EAAKrQ,EAAa,aAAA,EAClBqQ,EAAAC,KAAEulC,CAAW,UAAAA,CACnB,EAAAL,GAAuB,EACjBe,EAAoBA,EAAM,EAAA,GAEL,MAKNr4C,EAAA,WAAM,MAAA,KAAO,MAAA,YAAA,GAAA23C,EAAA,UAAA,OAAA,GAAAxlC,EAAA,KAAA,MAAAnS,EAAA,WAAA,MAAA,KAAA,MAAA,YAAA,KAChCs4C,EAAA,MAAA,GAEFD,KAEA,MAAArF,EAAAhzC,EAAA,WAAA,MAAA,KACAu4C,EAAA,IAAA,CACMA,EAAAA,MAASA,SACbvF,EACD,CACK,GAAAzxC,CAAEA,EAAAA,EAAAA,UAAYW,EAAUF,EAAA,IAAA,CAC9B,IAAME,EAAQ,CAAAxB,EAAW,EAAA,EAAAA,EAAO,EAAAa,CAAA,CAAA,EAC9B,OAAAoV,EAAiC,CAAA,GAAGA,EAAO,GAAI3W,EAAM,WAAC,eAAAU,EAAA,GAAA,SAAA,CAAAV,EAAA,WAAA,MAAA,OAAA,CAAA,EAChD2W,CAKN,CAAA,EACF,MAAE,CACK,GAAAjW,EAAEA,OAAAA,EAAI63C,SAAAA,EAAQr2C,kBAAAA,CAAUo2C,GACjC,QAAC,CACDv3C,IAAMA,EAAGqC,EACP,GAAI,KAAK6K,WAAWpM,MAAMV,UAAY,GACpC,OAEF,MAAMuT,IAAetR,GAAKuR,EAAc,KAAA,QAAI,UAAM,KAAA,OAAAvR,EAAA,KAAAF,CAAA,IAAA,GAClD,OAAAjC,EAAAI,EAAA,SAAA,EAAA,CACA,MAAA,KAAA,SACA,OAAA,KAAA,UAAA,MACA,EAAA,CACA,QAAA,IAAA,CAAA,KAAA,mBAAAJ,EAAA,MAAA,CACA,MAAA,KAAA,GAAA,EAAA,aAAA,EACA,QAAA,KAAA,MACA,EAAA,CAAAA,EAAA,WAAA,CACA,KAAA,sBACA,EAAA,IAAA,CAAA,CAAA,EAAAyT,EAAA,IAAA,CAAAE,EAAA8F,IAAA,CACA,MAAA1a,EAAA4U,EAAA,MACA,MAAA,CAAA5U,GAAA,CAAAA,EAAA,WACA4U,EAEA3T,EAAAI,EAAA,SAAA,EAAA,CACA,MAAA,CACA,CAAA,KAAA,GAAA,EAAA,aAAA,CAAA,EAAAqZ,IAAA,GAAA,KAAA,iBACA,EACA,UAAA1a,EAAA,UAAA,UACA,MAAAA,EAAA,WAAA,OACAiB,GAAAA,CAAA,EAAA2T,EAAA,CACkB,QAAI,IAAS,CAAAA,CAAA,EAAU,CAAqB,CAAA,CAAA,CAAArU,CAAAA,CACnC,CACe,CAAA,ECnF9C,IAAIqO,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAM+1C,EAAiC,CAC5C,aAAc,CACZzpC,GAAc,KAAM,YAAa,8BAA8B,CAChE,CACD,MAAM,iBAAiBxB,EAAW8D,EAAOqE,EAAQ,CAC/C,MAAMlI,EAAI,IAAIimC,GAAyBlmC,EAAW8D,EAAOqE,CAAM,EAC/D,aAAMlI,EAAE,OACDA,CACR,CACH,CCZO,MAAMirC,GAA+BvpC,GAC1CkpC,GACA,SAASzuC,EAAG,CACVA,EAAE,UAAUyuC,GAAyB,KAAMA,EAAwB,EACnEzE,GACE,mBACA,IAAM,IAAI6E,EAChB,CACG,CACH,ECR4C,SAAAhsC,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAE5C,OACsCisC,GAAA34C,EAAA,CACpCC,KAAO,+BACLgO,MAAAA,CACE9N,UAAyC,CACzCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAA8B,CAC9BC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CACX,MAAMpB,EAAAoB,EAAA,aAAA,EAAEP,CAAI,GAAAA,CACZ,EAAAvB,EAAc,UACR2W,EAAiCjW,EAAU,IAAM,CACrDiW,IAAMA,EACDA,CAAMjW,EAAA,EAAA,EACNV,EAAAA,EAAAA,CAAK,CAACiO,EAGX,OAAA0I,EAAa,CAAA,GAAAA,EAAA,GAAA3W,EAAA,WAAA,eAAAU,EAAA,GAAA,SAAA,CAAAV,EAAA,WAAA,MAAA,OAAA,CAAA,EACb2W,EACK,QAAI,CAAEzU,GAAAA,EAAU,SAAAA,EAEzBnB,EAAS,QAAA,CACP,IAAImC,EAAIE,EACN,IAAAuL,EACF,GAAA,KAAA,WAAA,MAAA,UAAA,GACM+F,aAEYA,IAAatR,GAAAF,EAAA,KAAA,QAAA,UAAA,KAAA,OAAAE,EAAA,KAAAF,CAAA,IAAA,UAAUjC,EAAK+M,EAAUlL,SAAAA,EAAAA,CAAM0J,MAAAmC,KAAA,SAExD,OAAW,KAAO,UAAe,MACjC,EAAAnC,GAAUmC,EAAU+F,MAAaE,GAAA,CAC/B,MAAA5U,EAAW4U,EAAA,MACb,MAAA,CAAA5U,GAAA,CAAAA,EAAA,WACAiB,EAGWjB,EAAMiO,EAAWpM,SAAAA,EAAAA,CAAK,UAExB7B,EAAA,UAAA,UAAAO,MAAAA,EAAA,WAAA,KAAA,EAAAiM,GAAAoI,CAAA,EAAAA,EAAA,SAGT,IAAA,CAAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAAjG,EAAA,CAGN,QAAA,IAAA,CAAAA,CAAA,CACF,CAAA,CACA,IC1DF,IAAIC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMk2C,EAAiC,CAC5C,aAAc,CACZ5pC,GAAc,KAAM,YAAa,8BAA8B,CAChE,CACD,MAAM,iBAAiBxB,EAAW8D,EAAOqE,EAAQ,CAC/C,MAAMlI,EAAI,IAAIimC,GAAyBlmC,EAAW8D,EAAOqE,CAAM,EAC/D,aAAMlI,EAAE,OACDA,CACR,CACH,CCZO,MAAMorC,GAA+B1pC,GAC1CwpC,GACA,SAAS/uC,EAAG,CACVA,EAAE,UAAU+uC,GAAyB,KAAMA,EAAwB,EACnE/E,GACE,mBACA,IAAM,IAAIgF,EAChB,CACG,CACH,ECbA,IAAI/pC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMo2C,WAAyBC,EAAe,CACnD,aAAc,CACZ,MAAM,GAAG,SAAS,EAOlB/pC,GAAc,KAAM,UAAW,EAAK,EAOpCA,GAAc,KAAM,eAAe,CACpC,CACH,CCnBO,MAAMgqC,WAA8BC,EAAoB,CAC7D,aAAc,CACZ,IAAI91C,EACJ,OAAO,IAAI21C,IAAkB31C,EAAK,KAAK,SAAW,KAAO,OAASA,EAAG,KAAK,CAC3E,CAQD,IAAI,MAAO,CACT,OAAO,KAAK,WAAW,IACxB,CAQD,YAAYsL,EAAO6C,EAAOqE,EAAQ,CAChC,MAAMlH,EAAO6C,EAAOqE,CAAM,EAC1B,KAAK,MAAM,cAAgB,KAAK,oBAAmB,CACpD,CAOD,MAAM,QAAS,CACb,MAAM,MAAM,SACZ,KAAK,kBAAiB,CACvB,CAQD,qBAAsB,CACpB,KAAM,CAAE,WAAAujC,EAAY,KAAAjxC,GAAS,KAAK,MAClC,OAAO,IAAIkxC,GACTlxC,EACA,KAAK,MAAM,QAAQ,SACnBixC,CACN,CACG,CAOD,MAAM,iBAAiBE,EAAO,CAC5B,MAAM,KAAK,oBACX,MAAM,iBAAiBA,CAAK,CAC7B,CAOD,MAAM,iBAAiBC,EAAQ,CAC7B,MAAM,KAAK,oBACX,MAAM,iBAAiBA,CAAM,CAC9B,CAMD,MAAM,mBAAoB,CACxB,MAAM,KAAK,MAAM,cAAc,OAAO,KAAK,IAAI,CAChD,CAQD,MAAM,cAAcv4C,EAAO,CACzB,KAAM,CAAE,WAAAo4C,CAAU,EAAK,KAAK,MAC5B,MAAMI,GAAa,gBAAgBJ,EAAY,CAC7C,QAAS,KAAK,MAAM,QACpB,OAAQ,KAAK,MAAM,OACnB,KAAM,CAAC,KAAK,IAAI,EAChB,KAAM,KAAK,MAAM,KACjB,MAAAp4C,EACA,YAAa,EACnB,CAAK,CACF,CACD,gBAAgB4O,EAAM,CACpB,GAAI,KAAK,MAAM,cAAc,UAAY,GAAO,CAC9C,KAAK,MAAM,QAAU,GACrB,MACD,CACD,MAAM,gBAAgBA,CAAI,CAC3B,CACD,iBAAiBA,EAAM,CACrB,GAAI,KAAK,MAAM,cAAc,WAAa,GAAM,CAC9C,KAAK,MAAM,SAAW,GACtB,MACD,CACD,MAAM,iBAAiBA,CAAI,CAC5B,CACH,OC/GyB6pC,GAAAv5C,EAAA,CACvBC,KAAO,kBACLgO,MAAAA,CACE9N,UAAsC,CACtCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAA2B,CAC3BC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CAEX,MAAMpB,EAAAoB,EAAA,cAAA,EACG,CACP2S,QAAAA,EACA8kC,gBAAAA,EACA77B,WAAAA,EACA5I,UAAAA,EACA/J,YAAAA,EACA8J,SAAAA,EACD,SAAAA,GAEK7U,EAAA,UAAO,CAAE6B,MAAAA,EAAO,MAAAA,GAChB7B,EAAA,WAAEuB,CAAI,GAAAA,CACZ,EAAAvB,EAAiB,UACXyU,EAAezS,EAAS,IAC1ByS,UACFpD,EAAA,KAAAoD,CAAA,EAEApU,CAEF,EACMmP,IAAsB,IAAM,CAC9B,GAAA,OAAa,GAAA+pC,EAAA,MAAA,EACf,MAAA,OAEE,GAAA77B,EACE,OAAcA,EAAA,CACZ,IAAA,UACF,MAAc,UACZ,IAAA,UACF,MAAW,UACT,IAAA,OACF,MAAc,UACZ,IAAA,UACF,MAAa,UACX,IAAA,SACF,MAAc,SACZ,IAAA,UACF,MAAA,UACE,QACJ,MAAA,SACF,CAEA,MAAA,UAEI87B,EACJx5C,EAA8Ba,IAC/Bb,EAAA,WAAA,cAAAa,CAAA,CACD,EACMqB,EAAWF,EAAS,IAAM,CAC9B,IAAI2U,EAAgC,CAACjW,EAAGmE,EAAC,EAAInE,EAAGiT,EAAEpS,CAAE,CAAC,EACrDoV,OAAAA,EAAS,CACP,GAAGA,EACH,GAAG3W,EAAMiO,WAAWwrC,eACpB/4C,EAAGsU,GAAG,SAAU,CAAChV,EAAMiO,WAAWpM,MAAMV,OAAO,CAAC,EAE3CwV,CACT,CAAC,EAED,MAAO,CACLjW,GAAAA,EACA8T,YAAAA,EACAklC,WAAAA,EACA5kC,YAAAA,EACA/J,SAAAA,EACA8J,SAAAA,EACA3S,SAAAA,EACAL,MAAAA,EACA23C,kBAAAA,EAEH,EACDz4C,QAAS,CACP,OAAI,KAAKc,MAAMV,QACbF,EAAAI,EAAA,YAAA,EAAA,CAAA,KAEU,KAAKq4C,WAAU,SACX,KAAK73C,MAAM0P,SAAQ,QACpB,KAAKioC,kBAAiB,MACxB,KAAKt3C,QAAQ,EAAA,CAAA3B,QAAAA,IAAA,CAAAU,EAAA,MAAA,CAAA,MAER,KAAKP,GAAGmE,EAAE,SAAS,CAAC5D,EAAAA,CAAAA,EAAAI,EAAA,UAAA,EAAA,CAAA,MAErB,KAAKX,GAAGwU,GAAG,UAAW,MAAM,EAAC,KAC9B,KAAKnK,QAAQ,EAAA,IAAA,EAAA9J,EAAA,OAAA,CAAA,MAER,KAAKP,GAAGwU,GAAG,UAAW,SAAS,GACzC,CAAA,KAAKJ,YAAc,KAAKN,YAAc,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAM9C,IACT,CACF,CAAC,ECjHD,IAAI5F,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMk3C,EAAoB,CAC/B,aAAc,CACZ5qC,GAAc,KAAM,YAAa,iBAAiB,CACnD,CACD,MAAM,iBAAiBxB,EAAW8D,EAAOqE,EAAQ,CAC/C,MAAMlI,EAAI,IAAIurC,GAAsBxrC,EAAW8D,EAAOqE,CAAM,EAC5D,aAAMlI,EAAE,OACDA,CACR,CACH,CCVO,MAAMosC,GAAkB1qC,GAAYoqC,GAAa,SAAS3vC,EAAG,CAClEA,EAAE,UAAU2vC,GAAY,KAAMA,EAAW,EACzC3F,GAA0B,SAAU,IAAM,IAAIgG,EAAqB,CACrE,CAAC,ECTD,IAAI/qC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMo3C,WAA4Bf,EAAe,CACtD,aAAc,CACZ,MAAM,GAAG,SAAS,EASlB/pC,GAAc,KAAM,YAAa,CAAA,CAAE,CACpC,CACH,CChBO,MAAM+qC,WAAiCd,EAAoB,CAChE,aAAc,CACZ,IAAI91C,EACJ,OAAO,IAAI22C,IAAqB32C,EAAK,KAAK,SAAW,KAAO,OAASA,EAAG,KAAK,CAC9E,CAUD,IAAI,WAAY,CACd,OAAO,KAAK,MAAM,SACnB,CASD,cAAc+a,EAAO,CACnB,KAAK,MAAM,UAAYA,CACxB,CACH,OC1B4B87B,GAAAh6C,EAAA,CAC1BC,KAAO,qBACLgO,MAAAA,CACE9N,UAAuC,CACvCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAA8B,CAC9BC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CAEX,MAAMpB,EAAAoB,EAAA,kBAAA,EAAS,CAAEgT,QAAAA,EAAa/J,YAAAA,EAAU8J,SAAAA,EAAU,SAAAA,GAE5C7U,EAAA,UAAE6B,CAAO,MAAAA,GACT7B,EAAA,WAAEuB,CAAI,GAAAA,GAENi4C,EAAAA,UACJx5C,EAAuBgzC,GAAU,CAClChzC,EAAA,WAAA,MAAA,KAAA,KAAA,WAAAa,CAAA,CACD,EACMqB,EAAWF,EAAS,IAAM,CAC9B,IAAI2U,EAAgC,CAACjW,EAAGmE,EAAC,EAAInE,EAAGiT,EAAEpS,CAAE,CAAC,EACrDoV,OAAAA,EAAS,CACP,GAAGA,EACH,GAAG3W,EAAMiO,WAAWwrC,eACpB/4C,EAAGsU,GAAG,SAAU,CAAChV,EAAMiO,WAAWpM,MAAMV,OAAO,CAAC,EAE3CwV,CACT,CAAC,EAEK4iC,EAAav3C,EAAS,IACnBhC,EAAMiO,WAAWpM,MAAMm4C,UAAUzmC,OAAS,EAAI,QAAU,SAChE,EAEK2qB,EAAOpzB,EAAI,EAAK,EAEtB,MAAO,CACLpK,GAAAA,EACAoU,YAAAA,EACA/J,SAAAA,EACA1K,QAAAA,EACAwU,SAAAA,EACA3S,SAAAA,EACAL,MAAAA,EACAq8B,KAAAA,EACAqb,WAAAA,EACAC,kBAAAA,EAEH,EACDz4C,QAAS,CACP,KAAM,CAAEi5C,UAAAA,CAAU,EAAI,KAAK/rC,WAAWpM,MAChC2P,EAAgBA,IACbwoC,EAAU94C,OACfD,EAAAI,EAAA,YAAA,EAAA,CAAA,KAAA,UAAA,SAGc,KAAKQ,MAAM0P,SAAQ,QACpBT,IAAM,CACb,KAAK0oC,kBAAkBvpC,CAAI,CAC7B,CAAC,EAAA,CAAA1P,QAAAA,IAEA0P,CAAAA,EAAK5P,OAAO,CAAA,CAAA,CAGlB,EAEG45C,EAAcA,IACX,CAAAh5C,EAAAI,EAAA,YAAA,EAAA,CAAA,KAAA,UAAA,SAGO,KAAKQ,MAAM0P,SAAQ,QACpBT,IAAM,CACb,KAAKotB,KAAO,EACd,CAAC,EAAA,CAAA39B,QAAAA,IAEA,CAAA,KAAKF,OAAO,CAAAY,CAAAA,EAAAA,EAAAI,EAAA,kBAAA,EAAA,CAAA,KAGC,KAAK68B,KAAI,mBAAT,KAAKA,KAAIlgB,EAAA,QACdg8B,EAAS,yBAAA,GAAA,cAAA,eAAA,wBAAA,GAAA,SAIR,KAAKR,mBAElB,IAAA,CAAA,EAEH,OAAI,KAAK33C,MAAMV,QACbF,EAAA,MAAA,CAAA,MACc,KAAKiB,QAAQ,EAAA,CACtB,KAAKq3C,aAAe,UAAY/nC,IAAkByoC,EAAa,CAAA,CAAA,EAI/D,IACT,CACF,CAAC,ECzGD,IAAIrrC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMy3C,EAAuB,CAClC,aAAc,CACZnrC,GAAc,KAAM,YAAa,oBAAoB,CACtD,CACD,MAAM,iBAAiBxB,EAAW8D,EAAOqE,EAAQ,CAC/C,MAAMlI,EAAI,IAAIssC,GAAyBvsC,EAAW8D,EAAOqE,CAAM,EAC/D,aAAMlI,EAAE,OACDA,CACR,CACH,CCVO,MAAM2sC,GAAqBjrC,GAChC6qC,GACA,SAASpwC,EAAG,CACVA,EAAE,UAAUowC,GAAe,KAAMA,EAAc,EAC/CpG,GACE,2BACA,IAAM,IAAIuG,EAChB,CACG,CACH,ECbO,MAAME,WAA8BpB,EAAoB,CAS7D,QAAQvpC,EAAM,CACZ,GAAI,CAACA,EACH,OAEF,MAAM4qC,EAAW,CAACz1C,EAAGC,IACZ,KAAK,MAAMA,EAAE,IAAI,EAAI,KAAK,MAAMD,EAAE,IAAI,EAEzC01C,EAAe,CAAA,EAErB,IAAIC,EADa5S,GAAMl4B,CAAI,EACN,UAChB8qC,GAGDA,EAAM,OAAS,IACjBA,EAAQA,EAAM,UACdA,EAAM,QAASC,GAAS,CACtB,GAAIA,EAAK,cAAc,OAAS,EAAG,CACjC,MAAMC,EAAc,KAAK,sBACvB,cACAD,EAAK,aACjB,EACUF,EAAa,KAAK,CAChB,WAAYG,EAAY,KAAK,QAAQ,EACrC,SAAUD,EAAK,aACf,OAAQ,EACpB,CAAW,CACF,CACGA,EAAK,SAAS,OAAS,IACzBA,EAAK,SAAS,QAASE,GAAY,CACjC,OAAO,OAAOA,EAAS,CAAE,SAAUF,EAAK,YAAY,CAAE,CAClE,CAAW,EACDA,EAAK,SAAS,KAAKH,CAAQ,EAC3BC,EAAa,KAAK,GAAGE,EAAK,QAAQ,EAE5C,CAAO,EACD,KAAK,MAAM,KAAOF,EAErB,CAWD,sBAAsBhgB,EAAKqgB,EAAO,CAChC,MAAMC,EAAW,CAAA,EACjB,OAA8BD,GAAM,OAAU,GAAKrgB,GACjDqgB,EAAM,QAASlrC,GAAS,CACtBmrC,EAAS,KAAKnrC,EAAK6qB,CAAG,CAAC,CAC/B,CAAO,EAEW,CAAC,GAAG,IAAI,IAAIsgB,CAAQ,CAAC,CAEpC,CASD,SAAU,CACR,OAAO,KAAK,MAAM,IACnB,CACH,CC9E8B,SAAApuC,GAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,GAAAD,CAAA,CAE9B,OACyBouC,GAAA96C,EAAA,CACvBC,KAAO,kBACLiO,MAAAA,CACE/N,WAA2B,CAC3BC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAW8B,CACX,MAAM2N,EAAI3N,EAAkB,eAAA,EAC1B2N,IAAaxB,IACbjO,EAAA,WAAA,SACK,QACH,CACFyP,GAAAA,EACD,KAAAA,EAEH1O,EAAS,QAAA,CACP,IAAA4N,EAAA,OAAA1N,EACuB,MAAC,CAAC,MACfwO,KAAIxO,GAAAA,EAAAA,CAAA,EAAA,CAAA,KAAA,MAAAA,EAAAI,EAAA,WAAA,EAAA,CAAAmL,UAAAmC,YAGJ1N,GAAAA,EAAAA,KAAA,KAAA,IAAAu5C,GAAAv5C,EAAAI,EAAA,UAAA,EAAA,KAAA,SAEgB,KAAKJ,EAAa,MAAA,CAAC,MAAA,CAAA,KAAA,GAAA,EAAA,MAAA,CAAA,CAAA,EAAA,CAAAA,EACZP,MAAgB,CAACO,MAAAA,KAAA,GAAA,EAAA,WAAA,CAAA,EAAA,CAAAA,EAAAI,EAAA,WAAA,EAAA,CAAA,SAGrBm5C,GAAS,WAAAA,EAAA,KAAA,sBAAAx8B,GAAAw8B,EAAA,KAAAx8B,EAAA,MAAA,sCAAA,EAAA,IAAA,CAAA,CAAA,IAIW,MAAA,CAAC/c,MAAAA,KAAA,GAAA,EAAA,WAAA,CAAA,EAAA,CAAAA,EAAAI,EAAA,WAAA,EAAA,CAAA,SAGrBm5C,GAAS,WAAAA,EAAA,KAAA,sBAAAx8B,GAAAw8B,EAAA,KAAAx8B,EAAA,MAAA,0BAAA,EAAA,IAAA,CAAA,CAAA,IAIW,MAAA,CAAC/c,MAAAA,KAAA,GAAA,EAAA,WAAA,CAAA,EAAA,CAAAA,EAAAI,EAAA,WAAA,EAAA,CAAA,SAGrBm5C,GAAe,WAAAA,EAAA,WAAA,sBAAAx8B,GAAAw8B,EAAA,WAAAx8B,EAAA,MAAA,oBAAA,EAAA,IAAA,CAAA,CAAA,IAIK,MAAA,CAAC/c,MAAAA,KAAA,GAAA,EAAA,WAAA,GAErBu5C,CAAAA,EAAAA,EAAa,WAAA,EAAA,CAAA,WAAAA,EAAA,SAAA,sBAAAx8B,GAAAw8B,EAAA,SAAAx8B,EAAA,SAAA,GAAA,MAAA,0BAAA,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAQhCzd,EAAAoO,EAAA,CAEL,QAAA,IAAA,CAAAA,CAAA,CAGP,CAAA,CAAA,CAAA,CACA,CACF,CAAA,ECrEA,IAAIC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMq4C,EAAoB,CAC/B,aAAc,CACZ/rC,GAAc,KAAM,YAAa,iBAAiB,CACnD,CACD,MAAM,iBAAiBxB,EAAW8D,EAAOqE,EAAQ,CAC/C,MAAMlI,EAAI,IAAI4sC,GAAsB7sC,EAAW8D,EAAOqE,CAAM,EAC5D,aAAMlI,EAAE,OACDA,CACR,CACH,CCVO,MAAMutC,GAAkB7rC,GAAY2rC,GAAa,SAASlxC,EAAG,CAClEA,EAAE,UAAUkxC,GAAY,KAAMA,EAAW,EACzClH,GACE,yBACA,IAAM,IAAImH,EACd,CACA,CAAC,ECZD,IAAIlsC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMu4C,WAAyBlC,EAAe,CACnD,aAAc,CACZ,MAAM,GAAG,SAAS,EAOlB/pC,GAAc,KAAM,aAAc,EAAE,EAOpCA,GAAc,KAAM,YAAa,CAAC,aAAa,CAAC,EAOhDA,GAAc,KAAM,cAAe,CAAA,CAAE,EAOrCA,GAAc,KAAM,cAAe,CAAA,CAAE,CACtC,CACH,CCvCA,IAAIH,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GASF,MAAMw4C,WAA8BjC,EAAoB,CAC7D,aAAc,CACZ,MAAM,GAAG,SAAS,EAOlBjqC,GAAc,KAAM,aAAc,CAAA,CAAE,EAOpCA,GAAc,KAAM,QAAQ,EAO5BA,GAAc,KAAM,aAAc,EAAI,CACvC,CACD,aAAc,CACZ,IAAI7L,EACJ,OAAO,IAAI83C,IAAkB93C,EAAK,KAAK,SAAW,KAAO,OAASA,EAAG,KAAK,CAC3E,CACD,UAAU8d,EAAQ,CAChB,KAAK,OAASA,CACf,CAOD,IAAI,YAAa,CACf,OAAO,KAAK,MAAM,KAAK,MAAM,UAC9B,CAQD,IAAI,SAAU,CACZ,OAAO,KAAK,MAAM,cAAc,SAAS,CAC1C,CAOD,WAAWjZ,EAAK,CACd,IAAI7E,EACJ,MAAMm5B,EAAO,KAAK,MAAM,YAAYt0B,CAAG,EACXs0B,GAAK,YAC9Bn5B,EAAK,KAAK,SAAW,MAAgBA,EAAG,KAAKm5B,EAAK,QAAQ,EAE9D,CAQD,cAAc,CACZ,WAAA6e,EACA,SAAAC,CACJ,EAAK,CACD,IAAIj4C,EACJ,GAAI,KAAK,MAAM,aAAeg4C,IAC5B,KAAK,MAAM,WAAaA,EACpB,KAAK,MAAM,UAAU,SAASA,CAAU,GAAG,CAC7C,MAAME,EAAe,KAAK,MAAM,YAAYF,CAAU,EAAE,UACvDh4C,EAAK,KAAK,SAAW,MAAgBA,EAAG,KAAK,CAAE,KAAMk4C,CAAc,CAAA,CACrE,CAEH,GAAIF,IAAe,GACjB,OAEF,MAAMxgC,EAAQ,KAAK,MAAM,YAAY,QAAQwgC,CAAU,EACnDxgC,IAAU,IACZ,KAAK,MAAM,YAAY,OAAOA,EAAO,CAAC,EAExC,KAAK,MAAM,YAAY,KAAKwgC,CAAU,EACjC,KAAK,MAAM,UAAU,SAASA,CAAU,IAC3C,KAAK,MAAM,UAAU,KAAKA,CAAU,EAChC,KAAK,aACP,KAAK,WAAWA,CAAU,EAAI,IAAIrF,GAAM,CACtC,KAAMC,GAAS,MACf,UAAW,EACX,WAAY,KAAK,WAAa,EAC9B,QAAU5C,GAAU,CAClB,KAAK,QAAQgI,EAAYhI,CAAK,CAC/B,CACX,CAAS,IAGD,KAAK,MAAM,YAAYgI,CAAU,EACnC,KAAK,MAAM,YAAYA,CAAU,EAAE,SAAWC,GAE9C,KAAK,IAAI,MAAM,mDAAoDD,EAAYC,CAAQ,EACvF,KAAK,MAAM,YAAYD,CAAU,EAAI,CACnC,IAAKA,EACL,SAAAC,CACR,EACMtG,GAAe,OAAOqG,CAAU,EAEnC,CAOD,YAAYnzC,EAAK,CACf,MAAM2S,EAAQ,KAAK,MAAM,UAAU,QAAQ3S,CAAG,EAC9C,GAAI2S,IAAU,GAAI,CAChB,KAAK,MAAM,UAAU,OAAOA,EAAO,CAAC,EACpC,OAAO,KAAK,WAAW3S,CAAG,EAC1B,OAAO,KAAK,MAAM,YAAYA,CAAG,EACjC,MAAMszC,EAAe,KAAK,MAAM,YAAY,QAAQtzC,CAAG,EACnDszC,IAAiB,IACnB,KAAK,MAAM,YAAY,OAAOA,EAAc,CAAC,CAEhD,CACF,CAMD,YAAa,CACX,KAAK,MAAM,UAAY,GACvB,KAAK,WAAa,EACnB,CAQD,MAAM,gBAAgB50C,EAAM,CAC1B,KAAK,WAAa,GAClB,QAASiU,EAAQ,EAAGA,EAAQjU,EAAK,OAAQiU,IAAS,CAChD,MAAM3S,EAAMtB,EAAKiU,CAAK,EAEtB,MADc,KAAK,WAAW3S,CAAG,EACrB,SACb,CACD,KAAK,OAAM,EACX,KAAK,WAAa,EACnB,CAWD,QAAQA,EAAKmrC,EAAO,CAClB2B,GAAe,MAAM9sC,EAAKmrC,CAAK,EAC/B,KAAK,YAAYnrC,CAAG,EAChB,KAAK,YACP,KAAK,OAAM,CAEd,CAOD,QAAS,CACP,MAAMuzC,EAAU,KAAK,MAAM,YAAY,IAAG,EAC1C,GAAIA,EAAS,CACX,GAAI,KAAK,MAAM,aAAeA,EAAS,CACrC,KAAK,MAAM,YAAY,KAAKA,CAAO,EACnC,MACD,CACD,MAAMH,EAAW,KAAK,MAAM,YAAYG,CAAO,EAAE,SACjD,KAAK,OAAO,KAAKH,CAAQ,CAC/B,KAAW,CACL,MAAMhpC,EAAQ,KAAK,OAAO,aAAa,MACjC,CAAE,WAAAopC,CAAU,EAAKppC,EAAM,OAC7B,IAAIqpC,EAAY,IAAID,CAAU,GAC9B,QAAS7gC,EAAQ,EAAGA,GAAS,KAAK,WAAYA,IAC5C8gC,GAAa,IAAIrpC,EAAM,OAAO,OAAOuI,CAAK,EAAE,CAAC,IAAI,KAAK,IAAI,gBAAgB,GAE5E,KAAK,OAAO,KAAK8gC,CAAS,CAC3B,CACF,CACH,OC/MyBC,GAAA17C,EAAA,CACvBC,KAAO,kBACLgO,MAAAA,CACE9N,UAAuC,CACvCC,KAAAA,OACD,SAAA,EACD8N,EACE/N,WAA2B,CAC3BC,KAAAA,GACF,SAAA,EACD,CACIK,EACH,MAAAR,EAAe,CACf,IAAAkD,EACA,MAAM8d,EAAMhhB,EAAY,WACtBqiB,EAASvgB,EAAQ,eAAA,SAGnB,GADA0L,EAAA,UAAAwT,CAAA,EACIxT,EAAE2lC,aACJuI,MAAsB,CACpBluC,EAAEkuC,cAAcrxC,CAAI,CACtB,EAAGmD,EAAE2lC,WAAa,CAAC,EACnB3lC,EAAA,MAAA,KAAA,MAAA,WAAA,gBAAA,CACIA,MAAE6D,EAAUe,KACd,IAAAupC,EAAsB,IAClBA,EAAAA,EAAAA,UAAgB,MAAEz4C,EAAA,IAAA,GAAA,UAAA,IAAA,CACpB04C,EAAgBzpC,EAAS,WAE3B6O,EAAE,WAAA,CAAAi3B,EAAA4D,EAAAC,IAAA,CAEID,aAAiBA,GACrBruC,EAAIquC,WAAa,EAEjBC,GACAA,CAAAA,CACF,CAEJ,MAAA,CAEO,GAAAp7C,EAAEA,EAAAA,CAAI8M,GACf,QAAC,CACDzM,KAAS,CACD,MAAAc,EAAEA,WAAAA,CAAOk6C,EAAAA,KAAAA,EAAmB,CAC5B,WAAAb,EAAEA,UAAAA,CAAYc,EAAAA,EAAU,OAAS/6C,EAAA,MAAA,CAEvC,MAAA,CAAA,KAAA,GAAA,EAAA,EAAA,KAAA,GAAA,EAAA,KAAA,UAAA,EAAA,EAAA,GAAA,KAAA,WAAA,cAAA,GAEW,CAAA,KAAA,EAAA,WACMA,EACGI,EACd,gBAAkB,EAACo4C,CAGpB,YAAiB,MAAAsC,EACqBb,CAAA,GAASa,CAAsB,QAAA,CAAA,CAAAx7C,UAAAA,CAC9DiF,IAAqDvE,EAAAI,EAAA,WAAA,EAAA,CACvDJ,QAAAA,EAAA,IAAA,GAC+B,MAAS,EAAA,EAAA,CAAA,QAAA,IAAA,CAAAuE,GAAAvE,EAAAuE,EAAA,KAAA,IAAA,CAAA,GAI1C,CAAA,EAAAvE,EAAA,MAAA,KAAA,CAAAQ,GAAA,gFAAA,CAAA,CAAA,CAAA,CAAA,EAOV,CAAA,EC3EF,IAAImN,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAGF,MAAMw5C,EAAoB,CAC/B,aAAc,CACZltC,GAAc,KAAM,YAAa,iBAAiB,CACnD,CACD,MAAM,iBAAiBxB,EAAW8D,EAAOqE,EAAQ,CAC/C,MAAMlI,EAAI,IAAIytC,GAAsB1tC,EAAW8D,EAAOqE,CAAM,EAC5D,aAAMlI,EAAE,OACDA,CACR,CACH,CCTO,MAAM0uC,GAAkBhtC,GAAYusC,GAAa,SAAS9xC,EAAG,CAClEA,EAAE,UAAU8xC,GAAY,KAAMA,EAAW,EACzC9H,GACE,wBACA,IAAM,IAAIsI,EACd,CACA,CAAC,ECEYE,GAAsBx6C,GAAA,sBAAA,CACjC,QAAUgI,GAAM,CACdA,EAAE,IAAIyyC,EAAkB,EACxBzyC,EAAE,IAAI0yC,EAAgB,EACtB1yC,EAAE,IAAIuyC,EAAe,EACrBvyC,EAAE,IAAI+pC,EAA6B,EACnC/pC,EAAE,IAAI8uC,EAA4B,EAClC9uC,EAAE,IAAIivC,EAA4B,EAClCjvC,EAAE,IAAIiwC,EAAe,EACrBjwC,EAAE,IAAI2yC,EAAU,EAChB3yC,EAAE,IAAI4yC,EAAc,EACpB5yC,EAAE,IAAIoxC,EAAe,EACrBpxC,EAAE,IAAI6yC,EAAiB,EACvB7yC,EAAE,IAAI8yC,EAAgB,EACtB9yC,EAAE,IAAIwwC,EAAkB,CACzB,CACH,CAAA,EC5BO,MAAMuC,WAAwBC,EAAe,CAClD,IAAI,SAAU,CACZ,OAAO,KAAK,KAAK,cAAc,SAAS,CACzC,CACH,CCEO,MAAMC,WAA0BD,EAAe,CACpD,IAAI,MAAO,CACT,OAAO,KAAK,KAAK,cAAc,MAAM,CACtC,CACD,MAAM,WAAY,CAChB,MAAM,MAAM,YACZ,KAAM,CAAE,WAAAE,EAAY,MAAA3J,GAAU,KAAK,KACnC2J,EAAW,KAAK,MAAM,EACtB3J,EAAM,MAAM,cAAc,WAAW,MAAO5jC,GAAY,CAClD,KAAK,KAAK,MAAM,WACF,MAAM,KAAK,MAAM,QAAQ,CACvC,MAAO,2BACP,KAAM,4FAChB,CAAS,IAECA,EAAQ,WAAa,IAG/B,CAAK,CACF,CAQD,gBAAiB,CACf,MAAMwiC,EAAW,CAAA,EACjB,OAAI,KAAK,aACPA,EAAS,KAAK,KAAK,WAAW,EAE5B,KAAK,cACPA,EAAS,KAAK,KAAK,YAAY,EAE7B,KAAK,eACPA,EAAS,KAAK,KAAK,aAAa,EAE3BA,CACR,CASD,mBAAmBriC,EAAMqtC,EAAS,CAChC,KAAK,eAAc,EAAG,QAASC,GAAY,CACzCA,EAAQ,gBAAgBttC,EAAMqtC,CAAO,CAC3C,CAAK,CACF,CACD,MAAM,WAAY,CAChB,MAAM,MAAM,YACZ,KAAM,CAAE,MAAAtuC,EAAO,IAAAD,GAAQ,KAAK,KACtByuC,EAAW,KAAK,KAAK,MAAM,gBAC3BC,EAAuBp8C,GAAU,CACrC,MAAM4O,EAAO5O,EAAM,KAAK,CAAC,EACzB,KAAK,mBAAmB4O,EAAMutC,CAAQ,EACtC,MAAMnF,EAAO,CAAA,EACbA,EAAK,SAAWpoC,EAAK,cAAgB,GACrClB,EAAI,KAAK,mBAAoBspC,CAAI,CACvC,EACI,KAAK,KAAK,IAAI,GAAG,gBAAkBh3C,GAAU,CAC3Co8C,EAAoBp8C,CAAK,EACzB0N,EAAI,KAAK,eAAgB,CAAE,GAAG1N,EAAO,WAAY,MAAM,CAAE,CAC/D,CAAK,EACD,KAAK,KAAK,IAAI,GAAG,qBAAuBA,GAAU,CAChDo8C,EAAoBp8C,CAAK,EACzB0N,EAAI,KAAK,eAAgB,CAAE,GAAG1N,EAAO,WAAY,WAAW,CAAE,CACpE,CAAK,EACD,KAAK,KAAK,IAAI,GAAG,gBAAkBA,GAAU,CAC3C,MAAMq8C,EAAS3iC,GAAmB,KAAK,KAAK,MAAM,eAAe,EAC3D8vB,EAAWxpC,EAAM,KAAK,CAAC,EACzB,KAAK,KAAK,QAAQq8C,CAAM,IAAM7S,EAAS,SACzC,KAAK,KAAK,QAAQ6S,CAAM,EAAI7S,EAAS,QAEvC4S,EAAoBp8C,CAAK,EACzB0N,EAAI,KAAK,eAAgB,CAAE,GAAG1N,EAAO,WAAY,MAAM,CAAE,CAC/D,CAAK,EACD,KAAK,KAAK,IAAI,GAAG,kBAAoBA,GAAU,CAC7Co8C,EAAoBp8C,CAAK,EACzB0N,EAAI,KAAK,eAAgB,CAAE,GAAG1N,EAAO,WAAY,QAAQ,CAAE,CACjE,CAAK,EACG2N,EAAM,aACR,KAAK,KAAI,CAEZ,CACD,SAAU,CACR,OAAO,KAAK,KAAK,SAClB,CACD,MAAM,MAAO,CACX,OAAO,KAAK,KAAK,MAClB,CACD,MAAM,MAAO,CACX,OAAO,KAAK,KAAK,MAClB,CACD,MAAM,SAAU,CACd,MAAM,KAAK,MACZ,CAED,MAAM,KAAKzG,EAAKsC,EAAM,CACpB,OAAItC,IAAQo1C,GAAe,MACzB,MAAM,KAAK,KAAK,OACT,MAELp1C,IAAQo1C,GAAe,eACzB,MAAM,KAAK,KAAK,OACT,CAAE,UAAW,KAElBp1C,IAAQo1C,GAAe,gBAElB,CAAE,UADG,MAAM,KAAK,KAAK,OAAM,IAGhCp1C,IAAQo1C,GAAe,cACzB,KAAK,WAAU,EAEbp1C,IAAQo1C,GAAe,SACzB,MAAM,KAAK,UAETp1C,IAAQo1C,GAAe,gBACzB,MAAM,KAAK,UAETp1C,IAAQo1C,GAAe,cACzB,MAAM,KAAK,WAEN,MAAM,KAAKp1C,EAAKsC,CAAI,EAC5B,CASD,MAAM,YAAa,CACjB,aAAM,KAAK,KAAK,OAChB,KAAK,KAAK,MAAM,KAAO,IAAI+yC,GAC3B,KAAK,KAAK,QAAQ7iC,GAAmB,KAAK,KAAK,MAAM,eAAe,CAAC,EAAI,OACzE,MAAM,KAAK,KAAK,OACT,IACR,CAQD,MAAM,SAAU,CACd,MAAM,KAAK,OAKX,MAAMqrB,EAAM,MAHU,MADV,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,QAAQ,EACtB,UAAU,WACxC,KAAK,KAAK,MAAM,eACtB,GACoC,GAAG,aAAY,EAC/C,GAAIA,EAAI,KAAK,SAAW,EACtB,MAAM,IAAIiG,GAAa,8DAA8D,EAEvF,MAAMwR,EAASzX,EAAI,KAAK,CAAC,EACnB0X,EAAS,WAAWD,EAAO,SAAS,GACpCE,EAAa,OAAO,OAAO,KAAK,KAAK,QAAQ,QAAS,CAC1D,WAAYF,EAAO,cAAc,CACvC,CAAK,EACKG,EAAY,CAChB,qBAAsBH,EAAO,aACnC,EACUI,EAAYC,GAAc,KAAK,KAAK,MAAOJ,CAAM,EACvD,GAAI,CAACG,EAAW,CACd,MAAM,KAAK,KAAK,QAAQ,CAAE,UAAWD,CAAS,CAAE,EAChD,MAAM,KAAK,KAAK,YAChB,MACD,EACc,MAAM,KAAK,SAAS,QACjC1gB,GAAmB,IACnB2gB,EAAU,aACVF,EACAC,CACN,GACe,IACT,MAAM,KAAK,KAAK,WAEnB,CAQD,UAAW,CACT,OAAO,KAAK,KAAK,UAClB,CACH,CC3MO,MAAMG,WAA2Bf,EAAkB,CACxD,MAAM,WAAY,CAChB,MAAM,MAAM,YACZ,KAAM,CAAE,WAAAC,CAAU,EAAK,KAAK,KAC5BA,EAAW,KAAK,OAAO,CACxB,CAOD,IAAI,OAAQ,CACV,OAAO,KAAK,KAAK,cAAc,OAAO,CACvC,CACH,CCXO,MAAMe,WAAwBC,EAAa,CAChD,IAAI,QAAS,CACX,OAAO,KAAK,KAAK,cAAc,QAAQ,CACxC,CAED,MAAM,KAAK91C,EAAKsC,EAAM,CACpB,OAAItC,IAAQo1C,GAAe,WACzB,MAAM,KAAK,WACJ,MAEF,MAAM,KAAKp1C,EAAKsC,CAAI,CAC5B,CASD,MAAM,cAAcxJ,EAAO,CACzB,MAAMi9C,EAAYC,GAAal9C,EAAM,KAAK,CAAC,CAAC,EAC5C,OAAO,OAAOA,EAAM,QAASi9C,CAAS,EACtC,MAAM,KAAK,SAASj9C,CAAK,CAC1B,CASD,UAAW,CACT,OAAO,KAAK,OAAO,UACpB,CAQD,MAAM,WAAY,CAChB,MAAM,MAAM,YACZ,KAAK,aAAa,MAAM,aAAe,KAAK,KAAK,MAAM,aACvD,KAAK,aAAa,IAAI,GAAG,oBAAqB,MAAOA,GAAU,CAC7D,KAAK,KAAK,IAAI,KAAK,oBAAqB,CAAE,GAAGA,CAAK,CAAE,CAC1D,CAAK,EACD,KAAK,aAAa,IAAI,GAAG,WAAY,MAAOA,GAAU,CACpD,KAAK,KAAK,IAAI,KAAK,eAAgB,CAAE,GAAGA,CAAK,CAAE,CACrD,CAAK,CACF,CACH,CC1DA,IAAI+N,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAMF,MAAMu7C,WAA4BrB,EAAe,CACtD,aAAc,CACZ,MAAM,GAAG,SAAS,EAOlB5tC,GAAc,KAAM,aAAc,CAAA,CAAE,CACrC,CAOD,IAAI,iBAAkB,CACpB,OAAO,KAAK,KAAK,cACf,iBACN,CACG,CAOD,MAAM,WAAY,CAChB,MAAM,MAAM,YACZ,KAAM,CAAE,WAAA8tC,CAAU,EAAK,KAAK,KAC5BA,EAAW,KAAK,iBAAiB,EAC5B,KAAK,KAAK,UAAU,kBACvB,KAAK,KAAK,UAAU,gBAAkB,CAAA,GAExC,KAAK,KAAK,UAAU,gBAAgB,aAAe,EACpD,CAOD,MAAM,WAAY,CAChB,MAAM,MAAM,YACZ,KAAK,gBAAgB,IAAI,GAAG,oBAAsBh8C,GAAU,CAC1D,KAAK,WAAaA,EAAM,IAC9B,CAAK,EACD,KAAK,gBAAgB,IAAI,GAAG,eAAiBA,GAAU,CACrD,KAAK,0BAA0BA,EAAM,IAAI,CAC/C,CAAK,CACF,CASD,0BAA0B4O,EAAM,CAC9B,KAAK,WAAaA,EAClB,KAAK,KAAK,UAAU,CAAE,GAAI,GAAM,KAAM,KAAK,UAAU,CAAE,CACxD,CAED,MAAM,KAAK1H,EAAKsC,EAAM,CACpB,OAAItC,IAAQo1C,GAAe,QACzB,KAAK,OAAM,EACJ,MAELp1C,IAAQo1C,GAAe,IACzB,KAAK,QAAO,EACL,MAEF,MAAM,KAAKp1C,EAAKsC,CAAI,CAC5B,CAMD,SAAU,CACR,KAAK,KAAK,UAAU,CAAE,GAAI,GAAM,KAAM,KAAK,UAAU,CAAE,CACxD,CAMD,QAAS,CACP,KAAK,KAAK,UAAU,CAAE,GAAI,GAAO,KAAM,CAAE,CAAA,CAAE,CAC5C,CAQD,uBAAwB,CACtB,MAAO,EACR,CACH,CC5GO,MAAM4zC,WAA6BD,EAAoB,CAS5D,IAAI,YAAa,CACf,OAAO,KAAK,KAAK,cAAc,YAAY,CAC5C,CASD,MAAM,WAAY,CAChB,MAAM,MAAM,YACR,KAAK,KAAK,OAAO,eACnB,KAAK,WAAa,KAAK,MAAM,KAAK,KAAK,OAAO,YAAY,EAC1D,OAAO,KAAK,KAAK,OAAO,cAErB,KAAK,KAAK,UAAU,aACvB,KAAK,KAAK,UAAU,WAAa,CAAA,GAE9B,KAAK,KAAK,UAAU,kBACvB,KAAK,KAAK,UAAU,gBAAkB,CAAA,GAExC,KAAK,KAAK,UAAU,gBAAgB,aAAe,GACnD,KAAK,KAAK,UAAU,WAAW,aAAe,GAC9C,KAAK,KAAK,UAAU,WAAW,iBAAmB,CACnD,CASD,MAAM,WAAY,CAChB,QAAQ,IAAI,IAAI,EAChB,MAAM,MAAM,YACZ,KAAK,gBAAgB,IAAI,GAAG,oBAAsBn9C,GAAU,CAC1D,KAAK,+BAA+BA,EAAM,IAAI,CACpD,CAAK,EACD,KAAK,WAAW,IAAI,GAAG,WAAaA,GAAU,CAC5C,KAAK,gBAAgBA,EAAM,IAAI,CACrC,CAAK,EACD,KAAK,WAAW,QAAQ,KAAK,UAAU,CACxC,CASD,2BAA4B,CAC3B,CAED,MAAM,KAAKkH,EAAKsC,EAAM,CACpB,OAAItC,IAAQo1C,GAAe,QACzB,KAAK,OAAM,EACJ,MAELp1C,IAAQo1C,GAAe,IACzB,KAAK,QAAO,EACL,MAELp1C,IAAQo1C,GAAe,SACzB,KAAK,OAAM,EACJ,MAELp1C,IAAQo1C,GAAe,YACzB,KAAK,UAAS,EACP,MAELp1C,IAAQo1C,GAAe,eACzB,KAAK,aAAY,EACV,MAEF,MAAM,KAAKp1C,EAAKsC,CAAI,CAC5B,CASD,+BAA+BoF,EAAM,CACnC,KAAK,WAAW,QAAQA,CAAI,CAC7B,CA+BD,kBAAkBwO,EAAOxO,EAAM,CAC7B,OAAAA,EAAK,QAASQ,GAAS,CACrB,MAAMyK,EAAQuD,EAAM,UACjB2iB,GAAUA,EAAM,QAAUA,EAAM,SAAW3wB,EAAK,QAAU2wB,EAAM,KAAO3wB,EAAK,EACrF,EACUyK,IAAU,GACZuD,EAAM,OAAOvD,EAAO,CAAC,EAErBuD,EAAM,KAAKhO,CAAI,CAEvB,CAAK,EACMgO,CACR,CASD,0BAA0BxO,EAAM,CAC9B,MAAMyuC,EAAU,KAAK,WAAW,WAAU,EACpCjgC,EAAQ,KAAK,kBAAkBigC,EAASzuC,CAAI,EAClD,KAAK,WAAW,QAAQwO,CAAK,CAC9B,CAQD,MAAM,QAAS,CACb,MAAM3L,EAAW,MAAM,KAAK,gBAAgB,WAAU,EACtD,KAAK,0BAA0BA,CAAQ,CACxC,CAQD,WAAY,CACV,KAAK,WAAW,QAAQ,CAAA,CAAE,CAC3B,CAQD,MAAM,cAAe,CACnB,MAAM6rC,EAAa,MAAM,KAAK,gBAAgB,gBAAe,EAC7D,KAAK,0BAA0BA,CAAU,CAC1C,CAQD,gBAAgBC,EAAY,CAC1B,MAAMngC,EAAQ,KAAK,WAAW,WAAU,EACxCmgC,EAAW,QAASxd,GAAU,CAC5B,MAAMlmB,EAAQuD,EAAM,UACjBhO,GAAS2wB,EAAM,SAAW3wB,EAAK,MACxC,EACUyK,IAAU,IACZuD,EAAM,OAAOvD,EAAO,CAAC,CAE7B,CAAK,EACD,KAAK,WAAW,QAAQuD,CAAK,CAC9B,CAQD,SAAU,CACR,MAAMA,EAAQ,KAAK,WAAW,WAAU,EACxC,KAAK,KAAK,UAAU,CAAE,GAAI,GAAM,KAAMA,CAAK,CAAE,CAC9C,CAQD,uBAAwB,CACtB,IAAIogC,EAAa,GACjB,OAAI,KAAK,aACPA,EAAa,IAERA,CACR,CACH,CCzOO,MAAMC,WAA0BT,EAAa,CASlD,IAAI,kBAAmB,CACrB,MAAO,UACR,CACD,IAAI,MAAO,CACT,OAAO,KAAK,KAAK,cAAc,UAAU,CAC1C,CACD,MAAM,WAAY,CAChB,MAAM,MAAM,YACP,KAAK,KAAK,UAAU,OACvB,KAAK,KAAK,UAAU,KAAO,CAAA,EAE9B,CACH,CCvBO,MAAMU,WAAgCD,EAAkB,CAS7D,IAAI,kBAAmB,CACrB,MAAO,MACR,CACD,IAAI,MAAO,CACT,OAAO,KAAK,KAAK,cAAc,MAAM,CACtC,CAQD,MAAM,WAAY,CAChB,KAAM,CAAE,MAAA9vC,CAAK,EAAK,KAAK,KACvB,KAAK,aAAa,IAAI,GAAG,oBAAqB,MAAO3N,GAAU,CAC7D,KAAK,KAAK,IAAI,KAAK,oBAAqB,CAAE,GAAGA,CAAK,CAAE,CAC1D,CAAK,EACD,KAAK,aAAa,IAAI,GAAG,WAAY,MAAOA,GAAU,CACpD,KAAK,KAAK,IAAI,KAAK,eAAgB,CAAE,GAAGA,CAAK,CAAE,CACrD,CAAK,EACG2N,EAAM,aACR,KAAK,KAAI,CAEZ,CAQD,MAAM,WAAY,CAChB,MAAM,UAAS,EACV,KAAK,KAAK,UAAU,OACvB,KAAK,KAAK,UAAU,KAAO,CAAA,GAE7B,KAAK,KAAK,UAAU,KAAK,aAAe,KAAK,KAAK,MAAM,YACzD,CACH,CC9CO,MAAMgwC,WAA4B7B,EAAe,CAStD,IAAI,aAAc,CAChB,OAAO,KAAK,KAAK,cAAc,aAAa,CAC7C,CASD,MAAM,WAAY,CAChB,MAAM,MAAM,YACZ,KAAM,CAAE,WAAAE,CAAU,EAAK,KAAK,KAC5BA,EAAW,KAAK,aAAa,EACxB,KAAK,KAAK,UAAU,cACvB,KAAK,KAAK,UAAU,YAAc,CAAA,GAEpC,KAAK,KAAK,UAAU,YAAY,eAAiB,KAAK,KAAK,MAAM,MAClE,CACH,CChCA,IAAIjuC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAUF,MAAMg8C,WAAgC7B,EAAkB,CAC7D,aAAc,CACZ,MAAM,GAAG,SAAS,EAQlB7tC,GAAc,KAAM,aAAc,EAAK,EAOvCA,GAAc,KAAM,kBAAmB,EAAI,EAQ3CA,GAAc,KAAM,aAAa,EAOjCA,GAAc,KAAM,eAAe,EAQnCA,GAAc,KAAM,UAAW,CAAA,CAAE,CAClC,CAQD,IAAI,MAAO,CACT,OAAO,KAAK,KAAK,cACf,KAAK,YAAY,IACvB,CACG,CAUD,IAAI,cAAe,CACjB,OAAO,KAAK,KAAK,YAAY,WAAW,gBACzC,CAQD,IAAI,WAAY,CACd,OAAO,KAAK,YACb,CACD,MAAM,WAAY,CAChB,MAAM,MAAM,YACZ,MAAMwD,EAAM,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,QAAQ,EACtD,KAAK,cAAgB,MAAMA,EAAI,UAAU,WACvC,KAAK,KAAK,MAAM,eACtB,EACI,MAAM,KAAK,kBACX,KAAM,CAAE,WAAAsqC,CAAU,EAAK,KAAK,KAC5BA,EAAW,KAAK,KAAK,YAAY,IAAI,CACtC,CACD,MAAM,WAAY,CAChB,IAAI35C,EACJ,MAAM,MAAM,aACXA,EAAK,KAAK,YAAc,MAAgBA,EAAG,IAAI,GAAG,UAAW,MAAOrC,GAAU,CACzEA,EAAM,aAAe,SAAWA,EAAM,UACxC,KAAK,YAAYA,EAAM,QAAQ,CAEvC,CAAK,CACF,CACD,MAAM,MAAO,CACX,MAAM+kC,EAAM,MAAM,MAAM,OACxB,OAAI,KAAK,iBACP,KAAK,cAAa,EAEbA,CACR,CAQD,MAAM,SAAU,CACd,MAAM8Y,EAAW,KAAK,YACtB,MAAM,KAAK,kBACPA,IAAa,KAAK,aACpB,MAAM,MAAM,SAEf,CAOD,MAAM,qBAAsB,CAC1B,MAAM9Y,EAAM,MAAM,KAAK,cAAc,GAAG,UAAU,KAAK,KAAK,MAAM,EAClE,YAAK,WAAaA,EAAI,KAAK,aAAe,OACtBA,EAAI,KAAK,iBAAiB,EAAI,UAAUA,EAAI,KAAK,iBAAiB,CAAC,GAAK,MAE7F,CAQD,MAAM,iBAAkB,CACtB,MAAM+Y,EAAc,MAAM,KAAK,sBACzBC,EAAYC,GAAW,KAAK,KAAK,MAAOF,EAAY,YAAW,CAAE,EACvE,GAAI,CAACC,EACH,MAAM,IAAI/hB,GACR,KAAK,KAAK,MACV,iCAAiC8hB,CAAW,oBACpD,EAEI,KAAK,YAAcC,EACd,KAAK,KAAK,UAAU,OACvB,KAAK,KAAK,UAAU,KAAO,CAAA,GAE7B,KAAK,KAAK,UAAU,KAAK,UAAY,KAAK,WAC3C,CAQD,MAAM,eAAgB,CACpB,IAAI17C,EACJ,GAAI,CAAC,KAAK,UACR,MAAM,IAAI25B,GAAkB,KAAK,KAAK,MAAO,wDAAwD,GAEtG35B,EAAK,KAAK,YAAc,MAAgBA,EAAG,oBAC5C,MAAM0iC,EAAM,MAAM,KAAK,cAAc,GAAG,UACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,MAAK,EAAI,CACvC,kBAAmB,KAAK,KAAK,OAAO,iBAC5C,CAAO,EACD,KAAK,QAAO,EAAG,CAAC,EAAE,UAAW,CACnC,EACI,KAAK,QAAUA,EAAI,KACnB,KAAK,QAAQ,QAAS31B,GAAS,CAC7BA,EAAK,GAAKA,EAAK,GAAKA,EAAK,GAAKmgC,IACpC,CAAK,EACD,KAAK,iBAAgB,CACtB,CASD,MAAM,YAAY7uC,EAAI,CACpB,MAAMu9C,EAAO,KAAK,QAAQ,KAAMC,GACvBA,EAAO,KAAOx9C,CACtB,EACD,GAAIu9C,EACF,OAAO,KAAK,eAAeA,CAAI,CAElC,CAQD,MAAM,eAAeA,EAAM,CACrB,KAAK,YACP,MAAM,KAAK,OAEb,KAAM,CAAE,oBAAAE,CAAqB,EAAGF,EAC1BvB,EAAa,OAAO,OAAO,KAAK,KAAK,QAAQ,QAAS,CAC1D,WAAY,KAAK,WACjB,YAAayB,CACnB,CAAK,EACKxB,EAAY,CAChB,GAAGsB,CACT,EACUG,EAAaC,GAAkB,KAAK,KAAK,MAAOJ,CAAI,EAC1D,GAAI,CAACG,EAAY,CACf,MAAM,KAAK,KAAK,SAAS,CAAE,UAAWzB,CAAS,CAAE,EACjD,MAAM,KAAK,KAAK,YAChB,MACD,EACc,MAAM,KAAK,SAAS,QACjC1gB,GAAmB,IACnBmiB,EACA1B,EACAC,CACN,GACe,IACT,MAAM,KAAK,KAAK,WAEnB,CAED,MAAM,KAAKz1C,EAAKsC,EAAM,CACpB,OAAItC,IAAQ,YACV,KAAK,YAAYsC,EAAK,EAAE,EACjB,MAEF,MAAM,KAAKtC,EAAKsC,CAAI,CAC5B,CASD,kBAAmB,CACjB,IAAInH,EACJ,MAAMi8C,EAAY,KAAK,QAAQ,IAAKL,IAC3B,CACL,GAAIA,EAAK,GACT,QAASA,EAAK,iBACd,WAAY,QACZ,QAASA,EAAK,iBACd,KAAMA,EAAK,gBACnB,EACK,EAED,GADA,KAAK,aAAa,cAAcK,CAAS,EACrC,KAAK,QAAQ,OAAS,GAAK,KAAK,cAAe,CACjD,MAAMlxC,GAAc/K,EAAK,KAAK,kBAAoB,KAAO,OAASA,EAAG,WAAW,YAC5E+K,IACFA,EAAW,MAAM,QAAU,GAE9B,CACF,CACH,CCnRA,IAAIW,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAMF,MAAM28C,WAAkCX,EAAwB,CACrE,aAAc,CACZ,MAAM,GAAG,SAAS,EAClB1vC,GAAc,KAAM,kBAAmB,EAAK,CAC7C,CACD,MAAM,qBAAsB,CAC1B,YAAK,WAAa,KAAK,KAAK,QAAQ,aAAe,OAC/B,KAAK,KAAK,QAAQ,YAAc,UAAU,KAAK,KAAK,QAAQ,WAAW,GAAK,MAEjG,CAED,MAAM,KAAKhH,EAAKsC,EAAM,CACpB,OAAItC,IAAQo1C,GAAe,IACzB,KAAK,gBAAe,EACb,MAELp1C,IAAQo1C,GAAe,QACzB,MAAM,KAAK,sBACJ,MAEF,MAAM,KAAKp1C,EAAKsC,CAAI,CAC5B,CAOD,MAAM,iBAAkB,CAClB,KAAK,YACP,MAAM,KAAK,OAEb,MAAM,KAAK,KAAK,SAAS,CAAE,CAAA,EAC3B,MAAM,KAAK,KAAK,UAAU,CAAE,GAAI,GAAM,KAAM,KAAK,QAAS,CAAA,CAAE,CAC7D,CAOD,MAAM,qBAAsB,CAC1B,MAAM,KAAK,KAAK,UAAU,CAAE,GAAI,GAAO,KAAM,CAAE,CAAA,CAAE,CAClD,CACD,uBAAwB,CACtB,MAAO,EACR,CACH,CCxDO,MAAMg1C,WAAiCZ,EAAwB,CACpE,MAAM,WAAY,CAChB,MAAM,MAAM,YACZ,KAAM,CAAE,WAAA5B,CAAU,EAAK,KAAK,KAC5BA,EAAW,KAAK,OAAO,CACxB,CAOD,IAAI,OAAQ,CACV,OAAO,KAAK,KAAK,cAAc,OAAO,CACvC,CACH,CChBA,IAAIjuC,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAMF,MAAM68C,WAAiCb,EAAwB,CACpE,aAAc,CACZ,MAAM,GAAG,SAAS,EAClB1vC,GAAc,KAAM,kBAAmB,EAAK,CAC7C,CACD,MAAM,qBAAsB,CAC1B,YAAK,WAAa,KAAK,KAAK,QAAQ,aAAe,OAC/B,KAAK,KAAK,QAAQ,YAAc,UAAU,KAAK,KAAK,QAAQ,WAAW,GAAK,MAEjG,CAED,MAAM,KAAKhH,EAAKsC,EAAM,CACpB,OAAItC,IAAQo1C,GAAe,IACzB,KAAK,gBAAe,EACb,MAELp1C,IAAQo1C,GAAe,QACzB,MAAM,KAAK,sBACJ,MAEF,MAAM,KAAKp1C,EAAKsC,CAAI,CAC5B,CAOD,MAAM,iBAAkB,CAClB,KAAK,YACP,MAAM,KAAK,OAEb,MAAM,KAAK,KAAK,QAAQ,CAAE,CAAA,EAC1B,MAAM,KAAK,KAAK,UAAU,CAAE,GAAI,GAAM,KAAM,KAAK,QAAS,CAAA,CAAE,CAC7D,CAOD,MAAM,qBAAsB,CAC1B,MAAM,KAAK,KAAK,UAAU,CAAE,GAAI,GAAO,KAAM,CAAE,CAAA,CAAE,CAClD,CACD,uBAAwB,CACtB,MAAO,EACR,CACH,CCzDA,IAAIuE,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAK/G,EAAKtF,IAAUsF,KAAO+G,EAAMF,GAAUE,EAAK/G,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAtF,CAAO,CAAA,EAAIqM,EAAI/G,CAAG,EAAItF,EACtJsM,GAAgB,CAACD,EAAK/G,EAAKtF,KAC7BoM,GAAgBC,EAAK,OAAO/G,GAAQ,SAAWA,EAAM,GAAKA,EAAKtF,CAAK,EAC7DA,GAMF,MAAM88C,WAA8B5C,EAAe,CACxD,aAAc,CACZ,MAAM,GAAG,SAAS,EAUlB5tC,GAAc,KAAM,eAAe,CACpC,CAQD,IAAI,aAAc,CAChB,IAAI7L,EACJ,OAAQA,EAAK,KAAK,kBAAoB,KAAO,OAASA,EAAG,WAAW,cACrE,CAQD,MAAM,WAAY,CAChB,IAAIA,EACJ,MAAM,MAAM,YACZ,MAAMyqC,GAAmBzqC,EAAK,KAAK,KAAK,aAAe,KAAO,OAASA,EAAG,MAAM,gBAChF,GAAI,CAACyqC,EACH,MAAM,IAAI9B,GAAa,+CAA+C,EAExE,MAAMt5B,EAAM,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,QAAQ,EACtD,KAAK,cAAgB,MAAMA,EAAI,UAAU,WAAWo7B,CAAe,EACnE,MAAM,KAAK,MACZ,CASD,MAAM,MAAO,CACX,IAAIzqC,EACJ,MAAM0iC,EAAM,MAAM,KAAK,cAAc,GAAG,aAAa,KAAK,KAAK,OAAO,EAClEA,EAAI,QACL1iC,EAAK,KAAK,cAAgB,MAAgBA,EAAG,QAAQ0iC,EAAI,IAAI,EAEjE,CACH,CChEO,MAAM4Z,WAA0B3B,EAAa,CASlD,IAAI,UAAW,CACb,OAAO,KAAK,KAAK,cAAc,UAAU,CAC1C,CAED,MAAM,KAAK91C,EAAKsC,EAAM,CACpB,OAAItC,IAAQo1C,GAAe,WACzB,MAAM,KAAK,WACJ,MAEF,MAAM,KAAKp1C,EAAKsC,CAAI,CAC5B,CAUD,UAAW,CACT,IAAInH,EAAIE,EACR,QAASA,GAAMF,EAAK,KAAK,UAAU,WAAa,KAAO,OAASE,EAAG,KAAKF,CAAE,IAAM,QAAQ,SACzF,CACH,CClCO,MAAMu8C,WAAyB9C,EAAe,CAOnD,IAAI,WAAY,CACd,OAAO,KAAK,KAAK,cAAc,WAAW,CAC3C,CACD,MAAM,WAAY,CAChB,MAAM,MAAM,YACZ,KAAM,CAAE,WAAAE,CAAU,EAAK,KAAK,KAC5BA,EAAW,KAAK,WAAW,CAC5B,CACH,CCfO,MAAM6C,WAA2B7B,EAAa,CASnD,IAAI,QAAS,CACX,OAAO,KAAK,KAAK,cAAc,QAAQ,CACxC,CACD,MAAM,WAAY,CAChB,MAAM,UAAS,EACV,KAAK,KAAK,UAAU,SACvB,KAAK,KAAK,UAAU,OAAS,CAAA,GAE/B,KAAK,KAAK,UAAU,OAAO,aAAe,KAAK,KAAK,MAAM,YAC3D,CACD,MAAM,WAAY,CAChB,MAAM,MAAM,YACZ,KAAM,CAAE,MAAArvC,CAAK,EAAK,KAAK,KACvB,KAAK,aAAa,IAAI,GAAG,oBAAqB,MAAO3N,GAAU,CAC7D,KAAK,KAAK,IAAI,KAAK,oBAAqB,CAAE,GAAGA,CAAK,CAAE,CAC1D,CAAK,EACD,KAAK,aAAa,IAAI,GAAG,WAAY,MAAOA,GAAU,CACpD,KAAK,KAAK,IAAI,KAAK,eAAgB,CAAE,GAAGA,CAAK,CAAE,CACrD,CAAK,EACG,CAAC,KAAK,KAAK,MAAM,eAAiB2N,EAAM,aAC1C,KAAK,KAAI,CAEZ,CAED,MAAM,KAAKzG,EAAKsC,EAAM,CACpB,OAAItC,IAAQ,aACH,KAAK,OAAO,MAAM,MAEpB,MAAM,KAAKA,EAAKsC,CAAI,CAC5B,CACH,CCvCO,MAAMs1C,WAA4BhD,EAAe,CACxD,CCCO,MAAMiD,WAAyBhD,EAAkB,CAEtD,MAAM,KAAK70C,EAAKsC,EAAM,CACpB,OAAItC,IAAQo1C,GAAe,QACzB,KAAK,OAAM,EACJ,MAELp1C,IAAQo1C,GAAe,IACzB,MAAM,KAAK,UACJ,MAELp1C,IAAQ83C,GAAY,MACtB,KAAK,KAAI,EACF,MAEL93C,IAAQ83C,GAAY,SACf,KAAK,KAAK,WAEZ,MAAM,KAAK93C,EAAKsC,CAAI,CAC5B,CAMD,MAAM,SAAU,CACd,MAAM,KAAK,KAAK,OAChB,KAAK,KAAK,UAAU,CAAE,GAAI,GAAM,KAAM,KAAK,QAAS,CAAA,CAAE,CACvD,CAMD,QAAS,CACP,KAAK,KAAK,UAAU,CAAE,GAAI,GAAO,KAAM,CAAE,CAAA,CAAE,CAC5C,CACD,uBAAwB,CACtB,MAAO,EACR,CACH,CC1CO,MAAMy1C,WAA2BjC,EAAa,CAQnD,IAAI,kBAAmB,CACrB,MAAO,OACR,CACD,IAAI,OAAQ,CACV,OAAO,KAAK,KAAK,cAAc,OAAO,CACvC,CACD,MAAM,WAAY,CAChB,MAAM,MAAM,YACP,KAAK,KAAK,UAAU,QACvB,KAAK,KAAK,UAAU,MAAQ,CAAA,EAE/B,CACH,CCpBO,MAAMkC,WAA8BlC,EAAa,CACxD,CCiBO,MAAMmC,GAAiB,CAC5B,QAAS,IAAM,CACb,KAAK,OAAO,SACV,oBACCxyC,GAAM,IAAIkvC,GAAgBlvC,CAAC,CAClC,EACI,KAAK,OAAO,SACV,mBACCA,GAAM,IAAIovC,GAAkBpvC,CAAC,CACpC,EACI,KAAK,OAAO,SACV,oBACCA,GAAM,IAAImwC,GAAmBnwC,CAAC,CACrC,EACI,KAAK,OAAO,SACV,iBACCA,GAAM,IAAIowC,GAAgBpwC,CAAC,CAClC,EACI,KAAK,OAAO,SACV,qBACCA,GAAM,IAAIwwC,GAAoBxwC,CAAC,CACtC,EACI,KAAK,OAAO,SACV,sBACCA,GAAM,IAAIywC,GAAqBzwC,CAAC,CACvC,EACI,KAAK,OAAO,SACV,uBACCA,GAAM,IAAIkyC,GAAmBlyC,CAAC,CACrC,EACI,KAAK,OAAO,SACV,2BACCA,GAAM,IAAIixC,GAAwBjxC,CAAC,CAC1C,EACI,KAAK,OAAO,SACV,4BACCA,GAAM,IAAI6xC,GAAyB7xC,CAAC,CAC3C,EACI,KAAK,OAAO,SACV,6BACCA,GAAM,IAAI4xC,GAA0B5xC,CAAC,CAC5C,EACI,KAAK,OAAO,SACV,4BACCA,GAAM,IAAI8xC,GAAyB9xC,CAAC,CAC3C,EACI,KAAK,OAAO,SACV,qBACCA,GAAM,IAAIgxC,GAAoBhxC,CAAC,CACtC,EACI,KAAK,OAAO,SACV,mBACCA,GAAM,IAAI8wC,GAAkB9wC,CAAC,CACpC,EACI,KAAK,OAAO,SACV,yBACCA,GAAM,IAAI+wC,GAAwB/wC,CAAC,CAC1C,EACI,KAAK,OAAO,SACV,0BACCA,GAAM,IAAI+xC,GAAsB/xC,CAAC,CACxC,EACI,KAAK,OAAO,SACV,qBACCA,GAAM,IAAIowC,GAAgBpwC,CAAC,CAClC,EACI,KAAK,OAAO,SACV,qBACCA,GAAM,IAAIgyC,GAAkBhyC,CAAC,CACpC,EACI,KAAK,OAAO,SACV,qBACCA,GAAM,IAAIiyC,GAAiBjyC,CAAC,CACnC,EACI,KAAK,OAAO,SACV,uBACCA,GAAM,IAAImyC,GAAoBnyC,CAAC,CACtC,EACI,KAAK,OAAO,SACV,qBACCA,GAAM,IAAIoyC,GAAiBpyC,CAAC,CACnC,EACI,KAAK,OAAO,SACV,oBACCA,GAAM,IAAIsyC,GAAmBtyC,CAAC,CACrC,EACI,KAAK,OAAO,SACV,uBACCA,GAAM,IAAIuyC,GAAsBvyC,CAAC,CACxC,EACI,KAAK,OAAO,SACV,oBACCA,GAAM,IAAIovC,GAAkBpvC,CAAC,CACpC,EACI,KAAK,OAAO,SACV,kBACCA,GAAM,IAAIowC,GAAgBpwC,CAAC,CAClC,EACI,KAAK,OAAO,SACV,sBACCA,GAAM,IAAIgxC,GAAoBhxC,CAAC,CACtC,EACI,KAAK,OAAO,SACV,wBACCA,GAAM,IAAIuyC,GAAsBvyC,CAAC,CACxC,EACI,KAAK,OAAO,SACV,qBACCA,GAAM,IAAIsyC,GAAmBtyC,CAAC,CACrC,CACG,CACH,EC/HUyyC,GAAAt+C,GAAA,UAAA5B,EAAA,CACN,OAAMW,CACN,MAAMsgB,EAAMlf,EAAY,UAAE,EACpBqQ,EAAgB+tC,KAChBC,EAAAA,KACJn/B,EAAgB,IAAA,CACjBA,EAAA,KAAA,GAAA,CAEDpY,EACEg3B,GAAAA,IAAiB,CACf,WAAWwgB,IAAAA,CACX,MAAM3tB,EAAE,SAAA,eAAA,eAAA,EACJA,IACJA,EAAA,MAAA,QAAA,OAEF,EAAA,GAAA,CAEF,CAAA,EACE,MAAA4tB,EAAQluC,EAAamuC,IACrB,CAAAnuC,EAAA,OAAA,KAEK,QAAI,CAAEkuC,GAAAA,EAAOF,MAAAA,EAAe,cAAAA,EAErCp/C,UACEE,CACF,OAAAA,EAAA,MAAA,KAAA,CAAAQ,GAAA,KAAA,CAAA,CAAA,CACA,KC1BQ8+C,GAAA5+C,GAAA,YAAA5B,EAAA,CACN,OAAMumC,CAEN,MAAMka,EAAU11C,EAAkB,EAAK,EAEjCqH,EAAgBrH,EAAA,IAAE,EAGlB21C,EAFWruC,KAEChE,MAAAA,IAAS,IACzBsyC,EAAYtyC,GAAA,CACZuyC,SAAU,GACV,SAAA,EAEF,CAAA,EACMC,EAAA,SAAA,CACF,IAAA19C,EAAKu9C,EACH5Y,GAAAA,CACEgZ,GAAAA,CAAAA,EAAM,SAAA,CACR,KAAE,aAAA,MAAA,CACF,KAAA,sCACF,CAAA,EACA,MACEhZ,CACEgZ,GAAAA,CAAAA,EAAM,SAAA,CACR,KAAE,aAAA,MAAA,CACF,KAAA,gCACF,CAAA,EACO,MACP,CAIAva,EAAS,MAAA,GACAwa,MAASC,UAAS,MAAAN,EAAA,SAAAA,EAAA,QAAA,IAE3B,OAAA,SAAA,KAAAO,EACO,OAAM,SAAQ,UAErBnZ,EAAKoZ,MAAAA,SACC3qC,EAAoB2zB,CAC1B,KAAE,aAAA,MAAA,CACK,OAAM7mC,GAAGF,EAAKoT,GAAA,WAAA,KAAA,OAAApT,EAAA,OAAA,KAAA,OAAAE,EAAA,UAAA,0BACvB,CAAA,EACDkjC,EAAA,MAAA,EAED,CACE,EACAnvB,EAAAnV,EAAA,IAEK,KAAA,IAAA,gBAAkB,CAAEmV,UAAAA,EAAOmvB,MAAAA,EAASka,MAAAA,EAAS,QAAAla,EACrD,QAAAka,CACDz/C,CACE,EACA,QAAAE,OACcP,EAAAA,EAAK,YAAA,EAAC,OAAAO,EAAA,MAAA,CAAA,MACJP,EAAGmE,EAAQ,CAAC,EAAA,CAAA5D,EAAA,MAAA,CAAA,MACVP,EAAGmE,EAAE,OAAW,EAAA,CAAA5D,EAAA,MAAA,CAAA,MAAAP,EAAA,EAAA,UAAA,EAAA,IAAA,6BACH,EAAA,MAAQyW,EAAKlW,MAAAA,CAAA,MAEvBP,EAAGmE,EAAE,OAAO,CAAA,EAAA,CAAA,KAAA,KAAA,CAAA,CAAA,CAAA,EAAA5D,EAAAI,EAAA,UAAA,EAAA,CAAA,MAAAX,EAAA,EAAA,MAAA,EAAAH,IAAA,SAAA,EAAA,CACH,QAAA,IAAA,CAAAU,EAAA,MAAA,CAAA,MAAAP,EAAA,EAAA,MAAA,GAAAO,CAAAA,EAAAA,WAAA,CAAA,KAAA,QAAA,EAAA,IAAA,EAAAA,EAAAI,EAAA,WAAA,EAAA,CAAA,YAKP,uCAAmB,KAAA2c,qBAAA,WACxB,KAAA,UAAA,SAAE7d,sBAAc6d,GAAA,KAAA,UAAA,SAAAA,EAAEkjC,MAAO,CAAE,CAAU,SAAA,GAAC,QAAA,sCAAA,CAAA,CAGtB,EAAA,IAAA,CAAA,CAAA,EAAAjgD,EAAA,MAAA,CAAA,MAAAP,EAAA,EAAA,UAAA,GAAAO,CAAAA,EAAAA,WAAA,CAAA,KAAA,aAAA,EAAA,IAAA,EAAAA,EAAAI,EAAA,WAAA,EAAA,CAAA,YAAA,iCAAA,KAAA,eAMQ,KAAA2c,WAAA,WACxB,KAAA,UAAA,SAAE7d,sBAAc6d,GAAA,KAAA,UAAA,SAAAA,EAAEkjC,MAAO,CAAE,CAAS,SAAA,GAAC,QAAA,gCAAA,CAAA,CAAA,EAAA,IAAA,CAAA,CAIvCxgD,CAAE,EAAUO,EAAAA,EAAAI,MAAA,CAAA,MAEXX,EAAA,EAAA,MAAY,CAAA,EAAA,CAAAO,IACG,YAAA,EAAA,CAAA,QACf,KAAK2/C,QAAK,MAAAlgD,EAAA,EAAA,WAAA,EAAAH,QAAA,KAAAkB,KAAA,EAAA,CAO7B,QAAA,IAAA,CAAAA,GAAA,cAAA,CAAA,CACF,CAAE,CAAA,CAAA,CAAA,CAAA,MChEa,IAAAiZ,GAAA/Y,GAAA,UAAA,CACb,QAAUgI,GAAM,CACd,KAAK,KAAOipC,GACZjpC,EAAE,IAAIqD,EAAoB,EAC1BrD,EAAE,IAAIq2C,EAAc,EACpBr2C,EAAE,IAAIw3C,EAAQ,EACdx3C,EAAE,IAAIsF,EAA0B,EAChCtF,EAAE,IAAIy3C,EAAc,EACpBz3C,EAAE,IAAIwyC,EAAmB,EACzBxyC,EAAE,IAAImI,EAAiB,EACvBnI,EAAE,IAAIiG,EAAgB,EACtBjG,EAAE,IAAImK,EAAkB,EACxBnK,EAAE,IAAIqT,EAAe,EACrBrT,EAAE,IAAIwK,EAAqB,EAC3BxK,EAAE,IAAI+S,EAAmB,EACzB/S,EAAE,IAAI0T,EAA0B,EAChC1T,EAAE,IAAI0U,EAAe,EACrB1U,EAAE,IAAIkV,EAAsB,EAC5BlV,EAAE,IAAIoW,EAAkB,EACxBpW,EAAE,IAAIwW,EAAqB,EAC3BxW,EAAE,IAAIkX,EAAoB,EAC1BlX,EAAE,IAAI6Y,EAAgB,EACtB7Y,EAAE,IAAI+Y,EAAe,EACrB/Y,EAAE,IAAI8Z,EAAmB,EACzB9Z,EAAE,IAAI0b,EAAoB,EAC1B1b,EAAE,IAAI4b,EAAgB,EACtB5b,EAAE,IAAIgyB,EAAmB,EACzBhyB,EAAE,IAAIwoC,EAAU,CACjB,CACH,CAAC","x_google_ignoreList":[103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,154]}
|