@farris/ui-vue 1.7.3 → 1.7.5
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/components/accordion/index.esm.js +312 -61
- package/components/accordion/index.umd.cjs +1 -1
- package/components/avatar/index.esm.js +1482 -56
- package/components/avatar/index.umd.cjs +1 -1
- package/components/binding-selector/index.esm.js +752 -8
- package/components/binding-selector/index.umd.cjs +1 -1
- package/components/button-group/index.esm.js +266 -110
- package/components/button-group/index.umd.cjs +1 -1
- package/components/calendar/index.esm.js +129 -128
- package/components/calendar/index.umd.cjs +2 -2
- package/components/code-editor/index.esm.js +237 -169
- package/components/code-editor/index.umd.cjs +3 -3
- package/components/collection-property-editor/index.esm.js +134 -133
- package/components/collection-property-editor/index.umd.cjs +2 -2
- package/components/color-picker/index.esm.js +812 -502
- package/components/color-picker/index.umd.cjs +1 -1
- package/components/combo-list/index.esm.js +323 -291
- package/components/combo-list/index.umd.cjs +1 -1
- package/components/combo-tree/index.esm.js +355 -174
- package/components/combo-tree/index.umd.cjs +1 -1
- package/components/comment/index.esm.js +134 -133
- package/components/comment/index.umd.cjs +2 -2
- package/components/common/index.esm.js +1 -1
- package/components/common/index.umd.cjs +1 -1
- package/components/component/index.esm.js +3791 -2760
- package/components/component/index.umd.cjs +8 -1
- package/components/condition/index.esm.js +2482 -492
- package/components/condition/index.umd.cjs +8 -1
- package/components/data-view/index.esm.js +1816 -1790
- package/components/data-view/index.umd.cjs +1 -1
- package/components/date-picker/index.esm.js +1 -1
- package/components/date-picker/index.umd.cjs +1 -1
- package/components/designer-canvas/index.esm.js +2975 -2615
- package/components/designer-canvas/index.umd.cjs +1 -1
- package/components/drawer/index.esm.js +397 -387
- package/components/drawer/index.umd.cjs +2 -2
- package/components/dropdown/index.esm.js +373 -124
- package/components/dropdown/index.umd.cjs +2 -2
- package/components/dynamic-form/index.esm.js +592 -1894
- package/components/dynamic-form/index.umd.cjs +1 -1
- package/components/dynamic-resolver/index.esm.js +250 -248
- package/components/dynamic-resolver/index.umd.cjs +2 -2
- package/components/dynamic-view/index.esm.js +427 -466
- package/components/dynamic-view/index.umd.cjs +1 -1
- package/components/event-parameter/index.esm.js +1 -1
- package/components/event-parameter/index.umd.cjs +1 -1
- package/components/events-editor/index.esm.js +1890 -1473
- package/components/events-editor/index.umd.cjs +3 -3
- package/components/expression-editor/index.css +1 -1
- package/components/expression-editor/index.esm.js +7371 -2
- package/components/expression-editor/index.umd.cjs +427 -1
- package/components/fieldset/index.esm.js +1 -1
- package/components/fieldset/index.umd.cjs +1 -1
- package/components/filter-bar/index.esm.js +2 -3
- package/components/filter-bar/index.umd.cjs +2 -2
- package/components/filter-condition-editor/index.css +1 -1
- package/components/filter-condition-editor/index.esm.js +9044 -425
- package/components/filter-condition-editor/index.umd.cjs +427 -1
- package/components/html-template/index.esm.js +33 -36
- package/components/html-template/index.umd.cjs +1 -1
- package/components/image-cropper/index.esm.js +615 -361
- package/components/image-cropper/index.umd.cjs +1 -1
- package/components/json-editor/index.esm.js +325 -247
- package/components/json-editor/index.umd.cjs +1 -1
- package/components/language-textbox/index.esm.js +269 -269
- package/components/language-textbox/index.umd.cjs +2 -2
- package/components/layout/index.esm.js +549 -163
- package/components/layout/index.umd.cjs +1 -1
- package/components/list-nav/index.esm.js +837 -39
- package/components/list-nav/index.umd.cjs +1 -1
- package/components/list-view/index.esm.js +427 -646
- package/components/list-view/index.umd.cjs +6 -6
- package/components/lookup/index.esm.js +3624 -3625
- package/components/lookup/index.umd.cjs +1 -1
- package/components/menu-lookup/index.esm.js +577 -536
- package/components/menu-lookup/index.umd.cjs +6 -6
- package/components/nav/index.esm.js +311 -31
- package/components/nav/index.umd.cjs +1 -1
- package/components/number-range/index.esm.js +1634 -189
- package/components/number-range/index.umd.cjs +1 -1
- package/components/number-spinner/index.esm.js +82 -82
- package/components/number-spinner/index.umd.cjs +1 -1
- package/components/order/index.esm.js +1190 -850
- package/components/order/index.umd.cjs +6 -6
- package/components/page-footer/index.esm.js +331 -48
- package/components/page-footer/index.umd.cjs +1 -1
- package/components/page-header/index.esm.js +110 -116
- package/components/page-header/index.umd.cjs +1 -1
- package/components/pagination/index.esm.js +509 -232
- package/components/pagination/index.umd.cjs +1 -1
- package/components/progress/index.esm.js +353 -148
- package/components/progress/index.umd.cjs +3 -3
- package/components/property-editor/index.esm.js +157 -153
- package/components/property-editor/index.umd.cjs +1 -1
- package/components/property-panel/index.esm.js +1825 -871
- package/components/property-panel/index.umd.cjs +12 -5
- package/components/query-solution/index.css +1 -1
- package/components/query-solution/index.esm.js +6075 -3863
- package/components/query-solution/index.umd.cjs +13 -6
- package/components/response-layout/index.esm.js +1 -1
- package/components/response-layout/index.umd.cjs +1 -1
- package/components/schema-selector/index.esm.js +2447 -2221
- package/components/schema-selector/index.umd.cjs +7 -7
- package/components/search-box/index.esm.js +244 -72
- package/components/search-box/index.umd.cjs +1 -1
- package/components/section/index.esm.js +134 -133
- package/components/section/index.umd.cjs +2 -2
- package/components/smoke-detector/index.esm.js +179 -8
- package/components/smoke-detector/index.umd.cjs +1 -1
- package/components/sort-condition-editor/index.css +1 -0
- package/components/sort-condition-editor/index.esm.js +9488 -4
- package/components/sort-condition-editor/index.umd.cjs +427 -1
- package/components/splitter/index.esm.js +1172 -142
- package/components/splitter/index.umd.cjs +1 -1
- package/components/step/index.esm.js +47 -48
- package/components/step/index.umd.cjs +1 -1
- package/components/tabs/index.esm.js +490 -419
- package/components/tabs/index.umd.cjs +1 -1
- package/components/text/index.esm.js +217 -73
- package/components/text/index.umd.cjs +1 -1
- package/components/textarea/index.esm.js +29 -27
- package/components/textarea/index.umd.cjs +2 -2
- package/components/transfer/index.esm.js +760 -543
- package/components/transfer/index.umd.cjs +5 -5
- package/components/tree-grid/index.esm.js +105 -104
- package/components/tree-grid/index.umd.cjs +1 -1
- package/components/tree-view/index.esm.js +320 -153
- package/components/tree-view/index.umd.cjs +1 -1
- package/components/uploader/index.esm.js +1125 -634
- package/components/uploader/index.umd.cjs +2 -2
- package/components/verify-detail/index.esm.js +359 -106
- package/components/verify-detail/index.umd.cjs +1 -1
- package/components/video/index.esm.js +222 -89
- package/components/video/index.umd.cjs +1 -1
- package/components/weather/index.esm.js +290 -199
- package/components/weather/index.umd.cjs +1 -1
- package/designer/data-grid/index.esm.js +5192 -4408
- package/designer/data-grid/index.umd.cjs +17 -10
- package/designer/drawer/index.esm.js +576 -567
- package/designer/drawer/index.umd.cjs +2 -2
- package/designer/dynamic-form/index.esm.js +1418 -1154
- package/designer/dynamic-form/index.umd.cjs +8 -1
- package/designer/farris-designer.all.esm.js +12665 -12117
- package/designer/farris-designer.all.umd.cjs +12 -12
- package/designer/list-view/index.esm.js +327 -327
- package/designer/list-view/index.umd.cjs +3 -3
- package/designer/modal/index.esm.js +29 -137
- package/designer/modal/index.umd.cjs +1 -1
- package/designer/radio-group/index.esm.js +0 -1
- package/designer/radio-group/index.umd.cjs +1 -1
- package/designer/response-toolbar/index.esm.js +9 -9
- package/designer/response-toolbar/index.umd.cjs +1 -1
- package/designer/section/index.esm.js +1 -6
- package/designer/section/index.umd.cjs +1 -1
- package/designer/tabs/index.esm.js +2829 -2540
- package/designer/tabs/index.umd.cjs +2 -2
- package/designer/tree-grid/index.esm.js +822 -464
- package/designer/tree-grid/index.umd.cjs +1 -1
- package/farris.all.esm.js +68724 -67244
- package/farris.all.umd.cjs +92 -92
- package/index.css +1 -1
- package/package.json +1 -1
- package/types/accordion/src/accordion.props.d.ts +1 -0
- package/types/accordion/src/components/accordion-item.props.d.ts +1 -0
- package/types/avatar/src/avatar.props.d.ts +1 -0
- package/types/binding-selector/index.d.ts +54 -0
- package/types/binding-selector/src/binding-selector.props.d.ts +1 -0
- package/types/button-group/index.d.ts +0 -15
- package/types/button-group/src/button-group.props.d.ts +1 -0
- package/types/code-editor/index.d.ts +1 -0
- package/types/code-editor/src/code-textbox.component.d.ts +6 -6
- package/types/code-editor/src/code-textbox.props.d.ts +2 -0
- package/types/color-picker/index.d.ts +15 -0
- package/types/color-picker/src/color-picker.props.d.ts +1 -0
- package/types/combo-list/src/composition/use-data-source.d.ts +2 -1
- package/types/combo-list/src/property-config/combo-list.property-config.d.ts +14 -2
- package/types/combo-tree/src/combo-tree.props.d.ts +1 -0
- package/types/component/index.d.ts +2 -0
- package/types/component/src/component.props.d.ts +8 -0
- package/types/components.d.ts +6 -1
- package/types/condition/index.d.ts +55 -0
- package/types/designer-toolbox/index.d.ts +3 -0
- package/types/designer-toolbox/src/toolbox.component.d.ts +14 -0
- package/types/designer-toolbox/src/toolbox.props.d.ts +29 -0
- package/types/designer-toolbox/src/types.d.ts +21 -0
- package/types/designer.d.ts +13 -0
- package/types/dropdown/index.d.ts +6 -27
- package/types/dropdown/src/dropdown.item.component.d.ts +1 -1
- package/types/dropdown/src/dropdown.props.d.ts +1 -0
- package/types/dynamic-form/designer.d.ts +1 -3
- package/types/dynamic-form/index.d.ts +3 -9
- package/types/dynamic-form/src/component/dynamic-form-label/dynamic-form-label.component.d.ts +3 -3
- package/types/dynamic-resolver/index.d.ts +0 -3
- package/types/dynamic-resolver/src/resolver/property-config/property-config-resolver-design.d.ts +1 -1
- package/types/dynamic-resolver/src/resolver/property-config/property-config-resolver.d.ts +1 -1
- package/types/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.d.ts +2 -2
- package/types/dynamic-resolver/src/resolver/schema/schema-resolver-design.d.ts +1 -1
- package/types/dynamic-resolver/src/resolver/schema/schema-resolver.d.ts +1 -1
- package/types/dynamic-view/src/components/maps.d.ts +104 -92
- package/types/{binding-selector/designer.d.ts → expression-editor/index.d.ts} +6 -6
- package/types/filter-condition-editor/index.d.ts +9 -0
- package/types/filter-condition-editor/src/components/filter-condition-grid.component.d.ts +12 -12
- package/types/filter-condition-editor/src/components/sort-editor-grid.component.d.ts +12 -12
- package/types/filter-condition-editor/src/filter-condition-editor.props.d.ts +1 -0
- package/types/flow-canvas/index.d.ts +3 -0
- package/types/{dynamic-form/src/component/form-control/form-control.component.d.ts → flow-canvas/src/components/flow-node-item.component.d.ts} +1 -1
- package/types/flow-canvas/src/components/flow-node-item.props.d.ts +3 -0
- package/types/flow-canvas/src/composition/types.d.ts +42 -0
- package/types/flow-canvas/src/composition/use-bezier-curve.d.ts +2 -0
- package/types/flow-canvas/src/composition/use-connections.d.ts +2 -0
- package/types/flow-canvas/src/composition/use-curve.d.ts +4 -0
- package/types/flow-canvas/src/composition/use-drawing-bezier.d.ts +2 -0
- package/types/flow-canvas/src/composition/use-drawing.d.ts +4 -0
- package/types/flow-canvas/src/flow-canvas.component.d.ts +8 -0
- package/types/flow-canvas/src/flow-canvas.props.d.ts +3 -0
- package/types/image-cropper/src/image-cropper.props.d.ts +1 -0
- package/types/index.d.ts +1 -0
- package/types/json-editor/src/json-editor.props.d.ts +1 -0
- package/types/layout/index.d.ts +0 -1
- package/types/layout/src/components/layout-pane.props.d.ts +1 -0
- package/types/layout/src/layout.props.d.ts +1 -0
- package/types/list-nav/index.d.ts +5 -24
- package/types/list-nav/src/list-nav.props.d.ts +1 -0
- package/types/list-view/index.d.ts +0 -1
- package/types/list-view/src/composition/use-draggable.d.ts +1 -1
- package/types/lookup/index.d.ts +1 -1
- package/types/lookup/src/components/popup-container.component.d.ts +3 -3
- package/types/menu-lookup/src/menu-lookup.props.d.ts +1 -0
- package/types/modal/designer.d.ts +0 -2
- package/types/nav/index.d.ts +20 -24
- package/types/nav/src/nav.props.d.ts +1 -0
- package/types/number-range/src/number-range.props.d.ts +1 -0
- package/types/order/index.d.ts +5 -36
- package/types/order/src/designer/order.design.component.d.ts +1 -1
- package/types/order/src/order.props.d.ts +1 -0
- package/types/page-footer/index.d.ts +2 -0
- package/types/page-footer/src/page-footer.props.d.ts +1 -0
- package/types/pagination/index.d.ts +0 -15
- package/types/pagination/src/pagination.props.d.ts +1 -0
- package/types/progress/src/progress.props.d.ts +1 -0
- package/types/query-solution/index.d.ts +1 -1
- package/types/radio-group/designer.d.ts +1 -2
- package/types/search-box/index.d.ts +17 -1
- package/types/search-box/src/search-box.props.d.ts +1 -0
- package/types/section/designer.d.ts +0 -1
- package/types/smoke-detector/index.d.ts +2 -0
- package/types/smoke-detector/src/smoke-detector.props.d.ts +1 -0
- package/types/sort-condition-editor/index.d.ts +7 -2
- package/types/sort-condition-editor/src/sort-condition-editor.props.d.ts +1 -0
- package/types/splitter/index.d.ts +0 -1
- package/types/splitter/src/components/splitter-pane.props.d.ts +1 -0
- package/types/splitter/src/splitter.props.d.ts +1 -0
- package/types/tabs/designer.d.ts +0 -1
- package/types/tabs/index.d.ts +1 -0
- package/types/text/index.d.ts +20 -24
- package/types/text/src/text.props.d.ts +1 -0
- package/types/transfer/src/transfer.props.d.ts +1 -0
- package/types/tree-view/src/tree-view.props.d.ts +1 -0
- package/types/uploader/src/uploader.props.d.ts +1 -0
- package/types/verify-detail/index.d.ts +5 -58
- package/types/verify-detail/src/designer/verify-detail.design.component.d.ts +8 -8
- package/types/verify-detail/src/verify-detail.props.d.ts +1 -0
- package/types/video/index.d.ts +20 -24
- package/types/video/src/video.props.d.ts +1 -0
- package/components/dynamic-form/index.css +0 -1
- package/designer/accordion/index.esm.js +0 -257
- package/designer/accordion/index.umd.cjs +0 -1
- package/designer/avatar/index.esm.js +0 -1460
- package/designer/avatar/index.umd.cjs +0 -1
- package/designer/binding-selector/index.esm.js +0 -792
- package/designer/binding-selector/index.umd.cjs +0 -1
- package/designer/button-group/index.esm.js +0 -282
- package/designer/button-group/index.umd.cjs +0 -1
- package/designer/code-editor/index.esm.js +0 -75
- package/designer/code-editor/index.umd.cjs +0 -1
- package/designer/color-picker/index.esm.js +0 -1096
- package/designer/color-picker/index.umd.cjs +0 -1
- package/designer/combo-list/index.esm.js +0 -1095
- package/designer/combo-list/index.umd.cjs +0 -1
- package/designer/combo-tree/index.esm.js +0 -186
- package/designer/combo-tree/index.umd.cjs +0 -1
- package/designer/component/index.css +0 -1
- package/designer/component/index.esm.js +0 -5002
- package/designer/component/index.umd.cjs +0 -1
- package/designer/condition/index.esm.js +0 -1899
- package/designer/condition/index.umd.cjs +0 -1
- package/designer/dropdown/index.esm.js +0 -261
- package/designer/dropdown/index.umd.cjs +0 -1
- package/designer/expression-editor/index.css +0 -1
- package/designer/expression-editor/index.esm.js +0 -7006
- package/designer/expression-editor/index.umd.cjs +0 -427
- package/designer/filter-condition-editor/index.css +0 -1
- package/designer/filter-condition-editor/index.esm.js +0 -4795
- package/designer/filter-condition-editor/index.umd.cjs +0 -1
- package/designer/html-template/index.esm.js +0 -718
- package/designer/html-template/index.umd.cjs +0 -1
- package/designer/image-cropper/index.esm.js +0 -765
- package/designer/image-cropper/index.umd.cjs +0 -1
- package/designer/json-editor/index.esm.js +0 -83
- package/designer/json-editor/index.umd.cjs +0 -1
- package/designer/language-textbox/index.esm.js +0 -783
- package/designer/language-textbox/index.umd.cjs +0 -8
- package/designer/layout/index.esm.js +0 -430
- package/designer/layout/index.umd.cjs +0 -1
- package/designer/list-nav/index.esm.js +0 -802
- package/designer/list-nav/index.umd.cjs +0 -1
- package/designer/lookup/index.esm.js +0 -2083
- package/designer/lookup/index.umd.cjs +0 -1
- package/designer/menu-lookup/index.esm.js +0 -46
- package/designer/menu-lookup/index.umd.cjs +0 -1
- package/designer/nav/index.esm.js +0 -284
- package/designer/nav/index.umd.cjs +0 -1
- package/designer/number-range/index.esm.js +0 -1616
- package/designer/number-range/index.umd.cjs +0 -1
- package/designer/order/index.css +0 -1
- package/designer/order/index.esm.js +0 -2196
- package/designer/order/index.umd.cjs +0 -18
- package/designer/page-footer/index.esm.js +0 -290
- package/designer/page-footer/index.umd.cjs +0 -1
- package/designer/page-header/index.esm.js +0 -1003
- package/designer/page-header/index.umd.cjs +0 -1
- package/designer/pagination/index.esm.js +0 -591
- package/designer/pagination/index.umd.cjs +0 -1
- package/designer/progress/index.esm.js +0 -213
- package/designer/progress/index.umd.cjs +0 -1
- package/designer/search-box/index.esm.js +0 -245
- package/designer/search-box/index.umd.cjs +0 -1
- package/designer/smoke-detector/index.css +0 -1
- package/designer/smoke-detector/index.esm.js +0 -178
- package/designer/smoke-detector/index.umd.cjs +0 -1
- package/designer/sort-condition-editor/index.esm.js +0 -138
- package/designer/sort-condition-editor/index.umd.cjs +0 -1
- package/designer/splitter/index.esm.js +0 -1120
- package/designer/splitter/index.umd.cjs +0 -1
- package/designer/step/index.esm.js +0 -226
- package/designer/step/index.umd.cjs +0 -1
- package/designer/text/index.esm.js +0 -147
- package/designer/text/index.umd.cjs +0 -1
- package/designer/transfer/index.esm.js +0 -254
- package/designer/transfer/index.umd.cjs +0 -1
- package/designer/tree-view/index.esm.js +0 -313
- package/designer/tree-view/index.umd.cjs +0 -1
- package/designer/uploader/index.esm.js +0 -1190
- package/designer/uploader/index.umd.cjs +0 -2
- package/designer/verify-detail/index.esm.js +0 -258
- package/designer/verify-detail/index.umd.cjs +0 -1
- package/designer/video/index.esm.js +0 -136
- package/designer/video/index.umd.cjs +0 -1
- package/designer/weather/index.css +0 -1
- package/designer/weather/index.esm.js +0 -6244
- package/designer/weather/index.umd.cjs +0 -14
- package/types/accordion/designer.d.ts +0 -44
- package/types/avatar/designer.d.ts +0 -29
- package/types/button-group/designer.d.ts +0 -29
- package/types/code-editor/designer.d.ts +0 -5
- package/types/color-picker/designer.d.ts +0 -29
- package/types/combo-list/designer.d.ts +0 -29
- package/types/combo-list/src/designer/combo-list.design.props.d.ts +0 -6
- package/types/combo-tree/designer.d.ts +0 -5
- package/types/component/designer.d.ts +0 -35
- package/types/condition/designer.d.ts +0 -56
- package/types/dropdown/designer.d.ts +0 -6
- package/types/dynamic-form/src/composition/use-input-type-resolver.d.ts +0 -11
- package/types/expression-editor/designer.d.ts +0 -9
- package/types/filter-condition-editor/designer.d.ts +0 -10
- package/types/html-template/designer.d.ts +0 -31
- package/types/html-template/src/designer/html-template.design.props.d.ts +0 -9
- package/types/image-cropper/designer.d.ts +0 -4
- package/types/json-editor/designer.d.ts +0 -5
- package/types/layout/designer.d.ts +0 -32
- package/types/list-nav/designer.d.ts +0 -6
- package/types/menu-lookup/designer.d.ts +0 -5
- package/types/nav/designer.d.ts +0 -6
- package/types/number-range/designer.d.ts +0 -29
- package/types/order/designer.d.ts +0 -6
- package/types/page-footer/designer.d.ts +0 -6
- package/types/page-header/src/designer/page-header.design.props.d.ts +0 -20
- package/types/pagination/designer.d.ts +0 -29
- package/types/progress/designer.d.ts +0 -29
- package/types/search-box/designer.d.ts +0 -52
- package/types/smoke-detector/designer.d.ts +0 -6
- package/types/sort-condition-editor/designer.d.ts +0 -9
- package/types/splitter/designer.d.ts +0 -32
- package/types/step/designer.d.ts +0 -6
- package/types/text/designer.d.ts +0 -6
- package/types/transfer/designer.d.ts +0 -35
- package/types/tree-view/designer.d.ts +0 -29
- package/types/uploader/designer.d.ts +0 -141
- package/types/verify-detail/designer.d.ts +0 -6
- package/types/video/designer.d.ts +0 -6
- /package/{designer → components}/condition/index.css +0 -0
- /package/{designer → components}/uploader/index.css +0 -0
|
@@ -1 +1,427 @@
|
|
|
1
|
-
(function(y,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("vue"),require("../common/index.umd.js"),require("lodash-es"),require("../button-edit/index.umd.js"),require("../tree-view/index.umd.js"),require("../input-group/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../common/index.umd.js","lodash-es","../button-edit/index.umd.js","../tree-view/index.umd.js","../input-group/index.umd.js"],l):(y=typeof globalThis<"u"?globalThis:y||self,l(y["filter-condition-editor"]={},y.Vue,y.common,y.LodashES,y.FButtonEdit,y.FTreeView,y.inputGroup))})(this,function(y,l,W,E,H,U,G){"use strict";const _={disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},enableClear:{type:Boolean,default:!0},displayText:{type:String,default:""},enableExpression:{type:Boolean,default:!1},modelValue:{type:String,default:""},insertType:{type:String,default:"below"},fields:{type:Array,default:[]},repositoryToken:{type:Object,default:null},editorParams:{type:Object,default:null},onSubmitModal:{type:Function,default:null},beforeOpen:{type:Function,default:null},editorType:{type:String,default:"filter"},expressionOptions:{type:Object,default:null},formContextData:{type:Object,default:{}},singleValue:{type:Boolean,default:!0},idField:{type:String,default:"id"},textField:{type:String,default:""},valueField:{type:String,default:""},editable:{type:Boolean,default:!0},enableTitle:{type:Boolean,default:!0},disableConfirmWhenUnchanged:{type:Boolean,default:!1}};var j=(e=>(e[e.Equal=0]="Equal",e[e.NotEqual=1]="NotEqual",e[e.Greater=2]="Greater",e[e.GreaterOrEqual=3]="GreaterOrEqual",e[e.Less=4]="Less",e[e.LessOrEqual=5]="LessOrEqual",e[e.Like=6]="Like",e[e.LikeStartWith=7]="LikeStartWith",e[e.LikeEndWith=8]="LikeEndWith",e[e.NotLike=9]="NotLike",e[e.NotLikeStartWith=10]="NotLikeStartWith",e[e.NotLikeEndWith=11]="NotLikeEndWith",e[e.Is=12]="Is",e[e.IsNot=13]="IsNot",e[e.In=14]="In",e[e.NotIn=15]="NotIn",e))(j||{}),O=(e=>(e[e.Empty=0]="Empty",e[e.And=1]="And",e[e.Or=2]="Or",e))(O||{}),N=(e=>(e[e.Value=0]="Value",e[e.Expression=1]="Expression",e[e.Variable=2]="Variable",e))(N||{}),p=(e=>(e.Asc="asc",e.Desc="desc",e))(p||{});const Y={id:{type:String},data:{type:Array,default:[]},displayText:{type:String,default:""},disabled:{type:Boolean,default:!1},dropDownIcon:{type:String,default:'<span class="f-icon f-icon-arrow-chevron-down"></span>'},editable:{type:Boolean,default:!1},enableClear:{type:Boolean,default:!0},enableSearch:{type:Boolean,default:!1},enableTitle:{type:Boolean,default:!0},fitEditor:{type:Boolean,default:!1},forcePlaceholder:{type:Boolean,default:!1},hidePanelOnClear:{type:Boolean,default:!0},idField:{type:String,default:"id"},mapFields:{type:Object},maxHeight:{type:Number,default:350},maxLength:{type:Number},multiSelect:{type:Boolean,default:!1},modelValue:{type:String,default:""},placeholder:{type:String},placement:{type:String,default:"auto"},readonly:{type:Boolean,default:!1},remoteSearch:{type:Boolean,default:!1},separator:{type:String,default:","},tabIndex:{type:Number,default:-1},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},valueField:{type:String,default:"id"},viewType:{type:String,default:"text"},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},formatter:{type:Function,default:null},displayFormatter:{type:Function,default:null},editorParams:{type:Object},repositoryToken:{type:Symbol,default:null},customRowStatus:{type:Object,default:null},minPanelWidth:{type:Number,default:160},searchFields:{type:Array,default:["name"]}},$={data:{type:Array,default:[]},enableSearch:{type:Boolean,default:!1},idField:{type:String,default:"id"},multiSelect:{default:!1,type:Boolean},selectedValues:{type:String,default:""},separator:{type:String,default:","},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},width:{type:Number},height:{type:Number},valueField:{type:String,default:"id"},formatter:{type:Function},maxHeight:{type:Number,default:350},repositoryToken:{type:Symbol,default:null},editorParams:{type:Object},customRowStatus:{type:Object,default:null},searchHandler:{type:Function,default:()=>{}}},z=l.defineComponent({name:"FComboTreeContainer",props:$,emits:["selectionChange","selectItem","unSelectItem"],setup(e,t){const a=l.ref(e.data),v=l.ref([]),b=l.ref(e.separator),h=l.ref(e.width),I=l.ref(e.height),T=l.ref(e.maxHeight),S=l.ref(String(e.selectedValues).split(b.value)),V=l.ref(),w={customRowStatus:e.customRowStatus};l.watch(()=>e.selectedValues,i=>{S.value=String(i).split(b.value)}),l.watch(()=>e.data,i=>{var g;a.value=i,(g=V.value)==null||g.updateDataSource(i)});const d={enableSelectRow:!0,multiSelect:e.multiSelect,showCheckbox:e.multiSelect,multiSelectMode:"OnCheckAndClick"};let n=null;e.repositoryToken&&(n=l.inject(e.repositoryToken));const c=l.computed(()=>[{field:e.textField,title:"",dataType:"string",formatter:e.formatter}]),u=l.computed(()=>{const i={};return h.value!==void 0&&(i.width=`${h.value}px`),I.value!==void 0&&(i.height=`${I.value}px`),T.value!==void 0&&T.value>0&&(i.maxHeight=`${T.value}px`,i.overflow="auto"),a.value.length===0&&(i.height="200px"),i.position="relative",i});function f(i=[]){i&&i.length>0?(v.value=[...i],S.value=v.value.map(g=>g[e.idField])):(v.value=[],S.value=[]),t.emit("selectionChange",v.value)}l.onMounted(()=>{n&&n.getData(e.editorParams).then(i=>{a.value=i}),S.value&&V.value.activeRowById(S.value[0])});const o=i=>{V.value.selectItemByIds(i)};return t.expose({treeInstance:V,checkItems:o}),()=>l.createVNode("div",{class:"f-combo-tree-container",style:u.value},[e.multiSelect&&e.enableSearch&&l.createVNode("div",{class:"p-2",style:"position: sticky;top:0;z-index: 2; background:white",onMousedown:i=>i.stopPropagation()},[l.createVNode(G.FInputGroup,{buttonContent:'<i class="f-icon f-icon-search"></i>',enableClear:!0,placeholder:"请输入搜索内容",onClear:()=>t.emit("clearSearch"),onInput:(i,g)=>e.searchHandler(g)},null)]),l.createVNode(U,{ref:V,fit:!0,data:a.value,idField:e.idField,columns:c.value,"selection-values":S.value,onSelectionUpdate:f,columnOption:{fitColumns:!0,fitMode:"expand"},rowOption:w,selection:d,rowNumber:{enable:!1},onSelectItem:i=>t.emit("selectItem",i.raw),onUnSelectItem:i=>t.emit("unSelectItem",i.raw)},null)])}});function X(e){const t=l.ref(""),a=l.ref(e.modelValue),v=l.ref(e.data||[]),b=l.ref(e.editable);function h(d,n=[]){return d=d||[],d.reduce((c,u)=>(u.id=u.id||u.data[e.idField],c.push(u),u.children&&u.children.length&&h(u.children,c),c),n)}function I(d){const n=String(d).split(e.separator).map((o,i)=>[o,i]),c=new Map(n),u=[];return h(v.value,u),u.filter(o=>{const i=o.data?String(o.data[e.valueField]):String(o[e.valueField]);return c.has(i)}).map(o=>o.data?o.data:o).sort((o,i)=>{const g=c.get(String(o[e.valueField]))||0,k=c.get(String(i[e.valueField]))||0;return g-k})}function T(d){const n=I(d),c=e.displayFormatter?e.displayFormatter(n):n.map(u=>u[e.textField]).join(e.separator);t.value=b.value?c||d:c}function S(d){const n=d.split(e.separator).map(f=>[f,!0]),c=new Map(n);let u=[];return v.value[0].data?h(v.value,u):u=v.value,u=u.map(f=>f.data?f.data:f),u.filter(f=>c.has(f[e.textField])||c.has(f[e.valueField]))}function V(d){const n={};return n[e.idField]=d,n[e.textField]=d,[n]}function w(d){let n=S(d);const c=n&&n.length>0;return b.value&&!c&&(n=V(d)),n}return l.watch(()=>e.data,()=>{v.value=e.data}),l.watch([v],([d])=>{if(e.modelValue){const n=d.find(c=>c[e.valueField]===e.modelValue);n&&(t.value=n[e.textField])}}),l.watch(()=>e.modelValue,(d,n)=>{d!==n&&(a.value=d,T(d))}),T(e.modelValue),{dataSource:v,displayText:t,editable:b,modelValue:a,getItemsByDisplayText:S,getItemsByValue:I,getSelectedItemsByDisplayText:w,flatTreeNodes:h}}function J(e,t){const{comboEditorRef:a,dataSource:v,searchFields:b,originalValue:h,showPopover:I,flatTreeNodes:T}=e;function S(u,f){u.forEach(o=>{const i=f.find(g=>g.id===o.id);o.selectable=i.selectable!=null?!!i.selectable:!0,o.children&&S(o.children,f)})}function V(u,f){const o=(u.children||[]).map(g=>V(g,f)).filter(g=>g!==null);return b.value.some(g=>{var k;return(k=u.data[g])==null?void 0:k.toString().toLowerCase().includes(f.toLowerCase())})?{data:{...u.data},children:u.children,id:u.data[t]}:o.length>0?{data:{...u.data},children:o,id:u.data[t]}:null}function w(){h.value=E.cloneDeep(v.value)}function d(u){var o;if(I.value||(o=a.value)==null||o.showPopup(),!u){w();return}const f=v.value.map(i=>V(i,u)).filter(i=>i!==null);if(f.length){const i=[];T(v.value,i),S(f,i)}h.value=E.cloneDeep(f)}const n=E.debounce(u=>{var o;const f=(o=u.target)==null?void 0:o.value;d(f)},200);function c(u){var o;let f=(o=u.target)==null?void 0:o.value;f!==""&&(f=f.trim()),u.target._value!==f&&n(u)}return{onValueChange:c,resetDataSource:w}}const A=l.defineComponent({name:"FComboTree",props:Y,emits:["clear","update:modelValue","change","search"],setup(e,t){const a=l.ref(),v=l.ref(e.disabled),b=l.ref(e.enableClear),h=l.ref(e.enableSearch),I=l.ref(e.readonly),T=l.ref(e.searchFields||[e.textField]),S=l.ref(),V=l.ref();let w={};const{dataSource:d,displayText:n,editable:c,modelValue:u,flatTreeNodes:f}=X(e),o=l.computed(()=>e.multiSelect);l.computed(()=>a.value?a.value.elementRef.getBoundingClientRect().width:0);const i=l.computed(()=>{var F;const s=(F=a.value)==null?void 0:F.popoverRef;return s?s.shown:!1}),{onValueChange:g,resetDataSource:k}=J({comboEditorRef:a,dataSource:d,searchFields:T,originalValue:S,showPopover:i,flatTreeNodes:f},e.idField);function R(){!o.value&&a.value&&a.value.hidePopup()}const P=s=>{const F=s==null?void 0:s.map(x=>x.data||x);return e.displayFormatter?e.displayFormatter(F):F.map(x=>x[e.textField]).join(e.separator)};function r(s=[]){if(!o.value)n.value=P(s),u.value=s.map(F=>F.data?F.data[e.valueField]:F[e.valueField]).join(e.separator),t.emit("update:modelValue",u.value),t.emit("change",s,u.value);else{const F=Object.keys(w),x=Object.values(w);n.value=P(x),u.value=F.join(e.separator),t.emit("update:modelValue",u.value),t.emit("change",x,u.value)}R()}function m(s){var F;u.value="",w={},i.value&&((F=a.value)==null||F.hidePopup()),t.emit("update:modelValue",""),t.emit("change",null,u.value),t.emit("clear")}function C(s){o.value&&(delete w[s.id],r())}function L(s){o.value&&(w[s.id]=s.data,r())}l.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([s,F,x,M,te])=>{v.value=s,c.value=F,b.value=x,h.value=M,I.value=te});const B=()=>{if(S.value=E.cloneDeep(d.value),o.value&&u.value){const s=[];f(d.value,s),u.value.split(e.separator).reduce((F,x)=>(F[x]=s.find(M=>M.id===x),F),w)}};function D(){k(),setTimeout(()=>{var s;(s=V.value)==null||s.checkItems(u.value.split(e.separator))})}return()=>l.createVNode(H,{ref:a,id:e.id,disable:v.value,readonly:I.value,forcePlaceholder:e.forcePlaceholder,editable:c.value&&!e.multiSelect,buttonContent:e.dropDownIcon,placeholder:e.placeholder,enableClear:b.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,inputType:e.viewType,popupOnClick:!0,modelValue:n.value,"onUpdate:modelValue":s=>n.value=s,onClear:m,onInput:g,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,beforeOpen:B,placement:e.placement,popupMinWidth:e.minPanelWidth},{default:()=>[i.value&&l.createVNode(z,{ref:V,maxHeight:e.maxHeight,multiSelect:e.multiSelect,enableSearch:e.enableSearch,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,data:S.value,selectedValues:u.value,onSelectionChange:r,formatter:e.formatter,editorParams:e.editorParams,repositoryToken:e.repositoryToken,customRowStatus:e.customRowStatus,searchHandler:g,onUnSelectItem:C,onSelectItem:L,onClearSearch:D},null)]})}});W.withInstall(A);const q=e=>((e.raw.$type!=="SimpleField"||e.raw.selectable===!1)&&(e.disabled=!0),e);function K(e){const t=[{value:"",label:" "},{value:"(",label:"("},{value:"((",label:"(("},{value:"(((",label:"((("}],a=[{value:"",label:" "},{value:")",label:")"},{value:"))",label:"))"},{value:")))",label:")))"}],v=[{label:"=",value:0},{label:"<>",value:1},{label:">",value:2},{label:">=",value:3},{label:"<",value:4},{label:"<=",value:5},{label:"like %...%",value:6},{label:"like ...%",value:7},{label:"like %...",value:8},{label:"not like %...%",value:9},{label:"not like ...%",value:10},{label:"not like %...",value:11},{label:"is",value:12},{label:"is not",value:13},{label:"in",value:14},{label:"not in",value:15}],b=[{label:" ",value:0},{label:"并且",value:1},{label:"或者",value:2}],h=[{label:"值",value:e!=null&&e.singleValue?N.Value:N.Variable}],I={label:"表达式",value:N.Expression},T=e!=null&&e.enableExpression?[...h,I]:h;return{leftBracketItems:t,righttBracketItems:a,compareOperators:v,relationItems:b,valueTypes:T,sortTypes:[{label:"升序",value:"asc"},{label:"降序",value:"desc"}]}}function Q(e){function t(a,v,b="filterField"){return l.createVNode(A,{formatter:e.formatter,modelValue:a[b],"onUpdate:modelValue":h=>a[b]=h,data:v,textField:e.textField||"name",valueField:e.valueField||"path",idField:e.idField||"id",enableClear:!1,minPanelWidth:220,customRowStatus:q},null)}return{renderFieldsComboTree:t}}function Z(e,t){const a=l.ref(-1);function v(){return t.value[a.value]}function b(){t.value.length>0?a.value=0:a.value=-1}const h=l.computed(()=>e.displayText?e.displayText:typeof e.modelValue=="string"?e.modelValue:""),I=e.editorType!=="sort"?"filterField":"sortField",T=e.editorType!=="sort"?{filterField:"",value:"",lbracket:"",rbracket:"",relation:O.Empty,compare:j.Equal,expresstype:e.singleValue?N.Value:N.Variable}:{sortField:"",sortType:"asc"},S=l.computed(()=>t.value.length>0),V=l.computed(()=>(r="down")=>t.value.length>1?r==="up"?a.value>0:a.value<t.value.length-1:!1);function w(){if(e.editorType==="filter")for(let r=0;r<t.value.length-1;r++){const m=t.value[r];(m.relation===O.Empty||!m.relation)&&(m.relation=O.And)}}function d(){const r=Object.assign({},T);t.value=[...t.value,r];const m=t.value.length-1;a.value=m,w()}function n({index:r}){const m=Object.assign({},T);e.insertType==="above"?r===0?t.value.unshift(m):t.value.splice(r,0,m):t.value.splice(r+1,0,m),t.value=[...t.value],w()}function c({index:r}){t.value.splice(r,1),t.value=[...t.value],!(a.value<0)&&(r===a.value?t.value[r]?a.value=r:t.value[r-1]?a.value=r-1:a.value=-1:r<a.value&&(t.value[a.value-1]?a.value=a.value-1:t.value[a.value]||(a.value=-1)))}function u(){t.value=[]}function f(){a.value>=0&&(t.value.unshift(v()),t.value.splice(a.value+1,1),a.value=0)}function o(){if(a.value>=0){const r=a.value,m=t.value.splice(r,1);t.value.splice(r-1,0,...m),a.value=r-1}}function i(){if(a.value>=0){const r=a.value,m=t.value.splice(r,1);t.value.splice(r+1,0,...m),a.value=r+1}}function g(){a.value>=0&&(t.value.push(v()),t.value.splice(a.value,1),a.value=t.value.length-1)}function k({index:r}){a.value=r}function R(r){if(r.length%2!==0)return!1;let m="";for(const C of r)if(C==="(")m+=C;else if(C===")"){if(!m.endsWith("("))return!1;m=m.slice(0,-1)}return m.length===0}function P(){const r=t.value.length;if(!r)return!0;let m=!0,C=!0;if(e.editorType!=="sort"){t.value[r-1].relation=O.Empty,C=!t.value.slice(0,-1).some(s=>s.relation===O.Empty||!s.relation);const D=t.value.flatMap(s=>[s.lbracket,s.rbracket]).join("");m=R(D)}const L=t.value.some(B=>!B[I]);return[{result:m,message:"括号不匹配,请检查。"},{result:C,message:"关系设置不完整,请检查。"},{result:!L,message:"字段不允许为空,请检查。"}].find(B=>!B.result)}return{displayText:h,activeRowIndex:a,canClear:S,canMove:V,onAddFilter:d,onRemove:c,onInsert:n,onClear:u,onMoveTop:f,onMovePrev:o,onMoveNext:i,onMoveBottom:g,onSelectRow:k,validateCondition:P,resetActiveRow:b}}function ee(e,t,a){const v=l.ref(e.activeIndex),b=l.ref(e.conditions),h=l.ref(e.fields);l.watch(()=>e.fields,n=>{h.value=n}),l.watch(()=>e.conditions,n=>{b.value=n}),l.watch(()=>e.activeIndex,n=>{v.value=n});const I=l.computed(()=>a.value.querySelector(`tr[index="${v.value}"]`));function T(){const n=I.value;n&&(n.scrollIntoView?n.scrollIntoView({block:"center",behavior:"smooth"}):n.scrollIntoViewIfNeeded&&n.scrollIntoViewIfNeeded(!1))}const S=l.computed(()=>n=>({"fv-grid-row-selected":n===v.value}));function V(n,c){c.stopPropagation(),t.emit("insert",{index:n,$event:c})}function w(n,c){c.stopPropagation(),t.emit("remove",{index:n,$event:c})}function d(n,c){t.emit("rowClick",{item:n,index:c})}return{itemIntoView:T,activeRowCls:S,fields:h,activeIndex:v,selectedRowRef:I,conditions:b,tbodyRef:a,onInsert:V,onRemove:w,onRowClick:d}}y.Compare=j,y.FilterRelation=O,y.SortType=p,y.ValueType=N,y.filterConditionEditorProps=_,y.treeNodeStatus=q,y.useConditionData=Z,y.useConditionEditor=ee,y.useConstantData=K,y.useFieldsTree=Q,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(R,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("../locale/index.umd.js"),require("../common/index.umd.js"),require("../property-panel/index.umd.js"),require("../tags/index.umd.js"),require("lodash-es"),require("../popover/index.umd.js"),require("../dynamic-resolver/index.umd.js"),require("../button-edit/index.umd.js"),require("../list-view/index.umd.js"),require("../../designer/button-edit/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../tree-view/index.umd.js"),require("../event-parameter/index.umd.js"),require("../input-group/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../locale/index.umd.js","../common/index.umd.js","../property-panel/index.umd.js","../tags/index.umd.js","lodash-es","../popover/index.umd.js","../dynamic-resolver/index.umd.js","../button-edit/index.umd.js","../list-view/index.umd.js","../../designer/button-edit/index.umd.js","../designer-canvas/index.umd.js","../tree-view/index.umd.js","../event-parameter/index.umd.js","../input-group/index.umd.js"],t):(R=typeof globalThis<"u"?globalThis:R||self,t(R["filter-condition-editor"]={},R.Vue,R.locale,R.common,R.propertyPanel,R.FTags,R.LodashES,R.FPopover,R.dynamicResolver,R.FButtonEdit$1,R.FListView,R.FButtonEditDesign,R.designerCanvas,R.FTreeView,R.FEventParameter,R.inputGroup))})(this,function(R,t,q,G,St,Tt,Q,Nt,X,me,Vt,Mt,ye,ze,Bt,Ot){"use strict";var fo=Object.defineProperty;var mo=(R,t,q)=>t in R?fo(R,t,{enumerable:!0,configurable:!0,writable:!0,value:q}):R[t]=q;var Z=(R,t,q)=>mo(R,typeof t!="symbol"?t+"":t,q);const Et={id:{type:String,default:""},buttonContent:{type:String,default:'<i class="f-icon f-icon-lookup"></i>'},buttonBehavior:{type:String,default:"Popup"},autoComplete:{type:Boolean,default:!1},customClass:{type:String,default:""},disable:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},enableClear:{type:Boolean,default:!1},modelValue:{type:String,default:""},readonly:{type:Boolean,default:!1},showButtonWhenDisabled:{type:Boolean,default:!1},enableTitle:{type:Boolean,default:!1},inputType:{type:String,default:"text"},forcePlaceholder:{type:Boolean,default:!1},placeholder:{type:String,default:""},minLength:Number,maxLength:{type:Number},tabIndex:Number,popupHost:{type:Object},popupRightBoundary:{type:Object},popupOffsetX:{type:Object},popupOnInput:{type:Boolean,default:!1},popupOnFocus:{type:Boolean,default:!1},popupOnClick:{type:Boolean,default:!1},popupClass:{type:String,default:""},popupMinWidth:{type:Number,default:160},modalOptions:{type:Object,default:{}},wrapText:{type:Boolean,default:!1},multiSelect:{type:Boolean,default:!1},separator:{type:String,default:","},textAlign:{type:String,default:"left"},beforeClickButton:{type:Function,default:null},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},beforeOpen:{type:Function,default:null},updateOn:{type:String,default:"change"},keepWidthWithReference:{type:Boolean,default:!0},placement:{type:String,default:"bottom-left"},limitContentBySpace:{type:Boolean,default:!1},beforeClosePopup:{type:Function,default:null}},Dt={popupContentPosition:{type:Object,default:{left:0,top:0}},host:{type:Object},backgroundColor:{type:String,default:""}},Pt=t.defineComponent({name:"FOverlay",props:Dt,emits:["click"],setup(e,n){const a=t.ref(e.popupContentPosition),o=t.ref(e.host),l=t.computed(()=>({backgroundColor:e.backgroundColor||"",pointerEvents:"auto"}));function i(u){n.emit("click"),u.preventDefault(),u.stopPropagation()}t.computed(()=>{const u=o.value;if(u){const d=u.getBoundingClientRect(),{left:f,top:v,height:g}=d;return{left:f,top:v+g}}return a.value});const s=t.computed(()=>({}));return()=>t.createVNode(t.Teleport,{to:"body"},{default:()=>{var u,d;return[t.createVNode("div",{class:"overlay-container",onClick:f=>i(f),style:l.value},[t.createVNode("div",{style:s.value},[(d=(u=n.slots).default)==null?void 0:d.call(u)])])]}})}});function It(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function jt(e){const n=document.createElement("div");n.style.display="contents";let a;const o=e.onClickCallback||(()=>{}),l=()=>{o(),a&&a.unmount()};return a=t.createApp({setup(){t.onUnmounted(()=>{document.body.removeChild(n)});const i=It(e);return()=>t.createVNode(Pt,{"popup-content-position":e.popupPosition,host:e.host,onClick:l,backgroundColor:e.backgroundColor},{default:()=>[i&&i()]})}}),document.body.appendChild(n),a.mount(n),a}class Rt{static show(n){return jt(n)}}const Lt={allowClickMaskToClose:{type:Boolean,default:!1},beforeClose:{type:Function,default:()=>!0},class:{type:String,default:""},maskClass:{type:String,default:""},title:{type:String,default:""},width:{type:Number,default:500},height:{type:Number,default:320},buttons:{type:Array,default:[]},modelValue:{type:Boolean,default:!1},mask:{type:Boolean,default:!0},showHeader:{type:Boolean,default:!0},showButtons:{type:Boolean,default:!0},fitContent:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showMaxButton:{type:Boolean,default:!1},minHeight:{type:Number},maxHeight:{type:Number},minWidth:{type:Number},maxWidth:{type:Number},containment:{type:Object,default:null},resizeable:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},dragHandle:{type:Object,default:null},closedCallback:{type:Function,default:null},resizeHandle:{type:Function,default:null},render:{type:Function,default:null},acceptCallback:{type:Function,default:null},rejectCallback:{type:Function,default:null},enableEsc:{type:Boolean,default:!0},enableEnter:{type:Boolean,default:!1},dialogType:{type:String,default:""},src:{type:String,default:""},footerHeight:{type:Number,default:60},host:{type:Object,default:"body"},isMessager:{type:Boolean,default:!1}};class W{constructor(n,a){this.x=n,this.y=a}static getTransformInfo(n){const o=window.getComputedStyle(n).getPropertyValue("transform").replace(/[^-\d,]/g,"").split(",");if(o.length>=6){const l=parseInt(o[4],10),i=parseInt(o[5],10);return{x:l,y:i}}return{x:0,y:0}}static fromEvent(n,a=null){if(this.isMouseEvent(n))return new W(n.clientX,n.clientY);if(a===null||n.changedTouches.length===1)return new W(n.changedTouches[0].clientX,n.changedTouches[0].clientY);for(let o=0;o<n.changedTouches.length;o++)if(n.changedTouches[o].target===a)return new W(n.changedTouches[o].clientX,n.changedTouches[o].clientY)}static isMouseEvent(n){return Object.prototype.toString.apply(n).indexOf("MouseEvent")===8}static isIPosition(n){return!!n&&"x"in n&&"y"in n}static getCurrent(n){const a=new W(0,0);if(window){const o=window.getComputedStyle(n);if(o){const l=parseInt(o.getPropertyValue("left"),10),i=parseInt(o.getPropertyValue("top"),10);a.x=isNaN(l)?0:l,a.y=isNaN(i)?0:i}return a}return null}static copy(n){return new W(0,0).set(n)}get value(){return{x:this.x,y:this.y}}add(n){return this.x+=n.x,this.y+=n.y,this}subtract(n){return this.x-=n.x,this.y-=n.y,this}multiply(n){this.x*=n,this.y*=n}divide(n){this.x/=n,this.y/=n}reset(){return this.x=0,this.y=0,this}set(n){return this.x=n.x,this.y=n.y,this}}class ae{constructor(n,a){this.width=n,this.height=a}static getCurrent(n){const a=new ae(0,0);if(window){const o=window.getComputedStyle(n);return o&&(a.width=parseInt(o.getPropertyValue("width"),10),a.height=parseInt(o.getPropertyValue("height"),10)),a}return null}static copy(n){return new ae(0,0).set(n)}set(n){return this.width=n.width,this.height=n.height,this}}function $t(e,n){const a=t.ref(),o=t.ref(),l=t.ref(),i=t.ref(),s=t.ref(),u=t.ref(),d=t.ref(),f=t.ref(),v=t.ref(),g=t.ref(),p=t.ref(),C=t.ref(e.resizeable),b=t.ref(),x=t.ref(e.draggable),r=t.ref(!1);function c(){const B=o.value||document.body,M=window.getComputedStyle(B);if(!M||!a.value)return;const $=W.getTransformInfo(a.value),z={};d.value&&(z.deltaL=a.value.offsetLeft-d.value.x,z.deltaT=a.value.offsetTop-d.value.y);const H=M.getPropertyValue("position");z.width=B.clientWidth,z.height=B.clientHeight,z.pr=parseInt(M.getPropertyValue("padding-right"),10),z.pb=parseInt(M.getPropertyValue("padding-bottom"),10),z.position=M.getPropertyValue("position"),H==="static"&&(B.style.position="relative"),z.translateX=$.x,z.translateY=$.y,g.value=z}function h(B){if(a.value){i.value=ae.getCurrent(a.value),s.value=W.getCurrent(a.value),u.value=i.value?ae.copy(i.value):null,d.value=s.value?W.copy(s.value):null,c();const M=B.target.getAttribute("type")||"";f.value={n:!!M.match(/n/),s:!!M.match(/s/),w:!!M.match(/w/),e:!!M.match(/e/)}}}function k(){var B,M,$,z;if(a.value){const H=a.value;f.value&&((f.value.n||f.value.s)&&((B=u.value)!=null&&B.height)&&(H.style.height=u.value.height+"px"),(f.value.w||f.value.e)&&((M=u.value)!=null&&M.width)&&(H.style.width=u.value.width+"px"),d.value&&(($=d.value)!=null&&$.x&&(H.style.left=d.value.x+"px"),(z=d.value)!=null&&z.y&&(H.style.top=d.value.y+"px")))}}function F(){const B=e.minHeight?e.minHeight:1,M=e.minWidth?e.minWidth:1;u.value&&d.value&&f.value&&i.value&&(u.value.height<B&&(u.value.height=B,f.value.n&&s.value&&(d.value.y=s.value.y+(i.value.height-B))),u.value.width<M&&(u.value.width=M,f.value.w&&s.value&&(d.value.x=s.value.x+(i.value.width-M))),e.maxHeight&&u.value.height>e.maxHeight&&(u.value.height=e.maxHeight,s.value&&f.value.n&&(d.value.y=s.value.y+(i.value.height-e.maxHeight))),e.maxWidth&&u.value.width>e.maxWidth&&(u.value.width=e.maxWidth,f.value.w&&s.value&&(d.value.x=s.value.x+(i.value.width-e.maxWidth))))}function y(){if(o.value){const B=g.value;if(d.value&&u.value&&f.value&&i.value){const M=B.width-B.pr-B.deltaL-B.translateX-d.value.x,$=B.height-B.pb-B.deltaT-B.translateY-d.value.y;f.value.n&&d.value.y+B.translateY<0&&s.value&&(d.value.y=-B.translateY,u.value.height=i.value.height+s.value.y+B.translateY),f.value.w&&d.value.x+B.translateX<0&&s.value&&(d.value.x=-B.translateX,u.value.width=i.value.width+s.value.x+B.translateX),u.value.width>M&&(u.value.width=M),u.value.height>$&&(u.value.height=$)}}}function m(B){if(!l.value||!i.value||!s.value||!f.value)return;B.subtract(l.value);const M=B.x,$=B.y;f.value.n?(d.value.y=s.value.y+$,u.value.height=i.value.height-$):f.value.s&&(u.value.height=i.value.height+$),f.value.e?u.value.width=i.value.width+M:f.value.w&&(u.value.width=i.value.width-M,d.value.x=s.value.x+M),y(),F(),k()}function w(B){if(!v.value)return;const M=W.fromEvent(B);M&&m(M)}function T(){if(a.value){const{width:B,height:M,x:$,y:z}=a.value.getBoundingClientRect(),H=W.getTransformInfo(a.value);return{size:{width:B,height:M},position:{x:$-H.x,y:z-H.y}}}return null}function j(B){if(a.value){const M=T();p.value=M}l.value=void 0,i.value=null,s.value=null,u.value=null,d.value=null,f.value=null,v.value=null,document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",j)}function I(){document.addEventListener("mousemove",w),document.addEventListener("mouseup",j)}function O(B){B instanceof MouseEvent&&B.button===2||x.value&&(document.body.click(),B.stopPropagation(),B.preventDefault(),l.value=W.fromEvent(B),v.value=B.target,h(B),I())}function V(B){return a.value=B,C.value&&t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"fv-resizable-handle fv-resizable-n",type:"n",onMousedown:M=>O(M)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-e",type:"e",onMousedown:M=>O(M)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-s",type:"s",onMousedown:M=>O(M)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-w",type:"w",onMousedown:M=>O(M)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-ne",type:"ne",onMousedown:M=>O(M)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-se fv-resizable-diagonal",type:"se",onMousedown:M=>O(M)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-sw",type:"sw",onMousedown:M=>O(M)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-nw",type:"nw",onMousedown:M=>O(M)},null)])}function S(B=!0){document.body.click();const M=o.value||document.body,$=ae.getCurrent(M),z=a.value;B&&z&&(b.value=T(),b.value.transform=z.style.transform),$&&z&&(u.value=$,u.value.height-=14,u.value.width-=14,z.style.height=u.value.height+"px",z.style.width=u.value.width+"px",z.style.left="7px",z.style.top="7px",z.style.transform="",p.value={size:u.value,position:{x:0,y:0}},x.value=!1,r.value=!0)}function E(){var B,M;if(document.body.click(),b.value){const $={width:b.value.size.width||0,height:b.value.size.height||0},z={x:(window.innerWidth-$.width)/2,y:(window.innerHeight-$.height)/2};(B=u.value)==null||B.set($),(M=d.value)==null||M.set(z);const H=a.value;H.style.height=$.height+"px",H.style.width=$.width+"px",H.style.left=`${z.x}px`,H.style.top=`${z.y}px`,H.style.transform="",p.value={size:$,position:z},x.value=e.draggable,r.value=!1}}function D(){if(a.value){const B=ae.getCurrent(a.value);if(B){const{width:M,height:$}=B;a.value.style.left=`${(window.innerWidth-M)/2}px`,a.value.style.top=`${(window.innerHeight-$)/2}px`,a.value.style.transform=""}}}function P(){const B=()=>{r.value?S(!1):D(),document.body.click()};return window.addEventListener("resize",B),()=>{window.removeEventListener("resize",B)}}const A=P();return{renderResizeBar:V,boundingElement:o,resizedEventParam:p,maximize:S,restore:E,allowDrag:x,isMaximized:r,unWindowResizeHandle:A,moveToCenter:D}}function At(e,n,a){const o=t.ref(),l=t.ref(e.draggable),i=t.ref(e.lockAxis),s=t.ref(),u=t.ref(),d=t.ref(!1),f=t.ref(new W(0,0)),v=t.ref(new W(0,0)),g=t.ref(new W(0,0)),p=t.ref(new W(0,0));t.watch(()=>a.value,w=>{s.value.style.cursor=w?"move":"default"});function C(w,T){if(T.tagName==="BUTTON")return!1;if(T===w)return!0;for(const j in T.children)if(Object.prototype.hasOwnProperty.call(T.children,j)&&C(w,T.children[j]))return!0;return!1}function b(){var I,O;let w=g.value.x+v.value.x,T=g.value.y+v.value.y;i.value==="x"?(w=((I=f.value)==null?void 0:I.x)||0,g.value.x=0):i.value==="y"&&(T=((O=f.value)==null?void 0:O.y)||0,g.value.y=0);const j=`translate3d(${Math.round(w)}px, ${Math.round(T)}px, 0px)`;o.value&&(o.value.style.transform=j),p.value.x=w,p.value.y=T}function x(){if(!u.value||!o.value)return null;const w=u.value.getBoundingClientRect(),T=o.value.getBoundingClientRect(),j={top:w.top<T.top,right:w.right>T.right,bottom:w.bottom>T.bottom,left:w.left<T.left};return j.top||(g.value.y-=T.top-w.top),j.bottom||(g.value.y-=T.bottom-w.bottom),j.right||(g.value.x-=T.right-w.right),j.left||(g.value.x-=T.left-w.left),b(),j}function r(w){w&&(f.value&&w.subtract(f.value),g.value.set(w),b(),x())}function c(w){d.value&&l.value&&(w.stopPropagation(),w.preventDefault(),r(W.fromEvent(w,s.value)))}function h(){var w;d.value&&(d.value=!1,v.value.add(g.value),g.value.reset(),(w=o.value)==null||w.classList.remove("ng-dragging"),n.emit("stopMove"),document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",h))}function k(){!d.value&&s.value&&(d.value=!0,s.value.classList.add("ng-dragging"),document.addEventListener("mousemove",c),document.addEventListener("mouseup",h))}function F(){if(o.value){const w=W.getTransformInfo(o.value);v.value.set(w);return}v.value.reset()}function y(w){if(!a.value||w instanceof MouseEvent&&w.button===2)return;const T=w.target||w.srcElement;s.value!==void 0&&T&&!C(T,s.value)||l.value!==!1&&(document.body.click(),w.stopPropagation(),w.preventDefault(),f.value=W.fromEvent(w,o.value),F(),k())}function m(w,T,j){if(l.value&&T){if(w)s.value=w;else if(e.dragHandle){if(e.dragHandle instanceof HTMLElement)s.value=e.dragHandle;else if(typeof e.dragHandle=="string"){const I=T.querySelector(e.dragHandle);I&&(s.value=I)}}o.value=T,u.value=j,s.value?(s.value.classList.add("ng-draggable"),s.value.addEventListener("mousedown",y)):l.value=!1}}return{registerDraggle:m,resetTranslate:F}}function He(e,n){if(e){const a=o=>{o.key.toLowerCase()===e.toLowerCase()&&n({event:o,key:e})};return document.addEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)}}}function zt(e,n){const a=t.ref(e.enableEsc);let o=null;return a.value?(o=He("Escape",l=>{n.emit("esc",{event:l.event,type:"esc"})}),{remove:o}):null}function Ht(e,n){const a=t.ref(e.enableEnter);let o=null;return a.value?(o=He("Enter",l=>{n.emit("enter",{event:l.event,type:"enter"})}),{remove:o}):null}const ce=t.defineComponent({name:"FModal",props:Lt,emits:["update:modelValue","accept","cancel","closed","resize","esc","enter","stopMove"],setup(e,n){const a=t.ref(e.width||300),o=t.ref(e.height||200),l=t.ref(e.modelValue),i=t.ref(""),s=t.ref(e.class),u=t.ref(e.fitContent),d=t.ref(e.showHeader),f=t.ref(""),v=t.ref(e.showCloseButton),g=t.ref(e.showMaxButton),p=t.ref(!1),C=t.ref(e.dialogType),b=t.ref(e.src),x=t.ref(""),r=t.ref(e.showButtons),c=t.ref(e.title),h=t.ref(e.containment||null),k=t.ref();c.value==="错误提示"&&(c.value=q.LocaleService.getLocaleValue("messageBox.errorTitle"));const F=t.ref(!1);function y(N,L){const Y=L?"accept":"cancel";Promise.resolve().then(()=>{var U;return(U=e.beforeClose)==null?void 0:U.call(e,{closeType:Y})}).then(U=>{U&&(l.value=!1,n.emit("update:modelValue",!1),L!=null&&n.emit(L?"accept":"cancel"),n.emit("closed",N))})}const m=[{name:"cancel",text:q.LocaleService.getLocaleValue("messageBox.cancel")||"取消",class:"btn btn-secondary",handle:N=>{y(N,!1)}},{name:"accept",text:q.LocaleService.getLocaleValue("messageBox.ok")||"确定",class:"btn btn-primary",handle:N=>{y(N,!0)}}],w=t.ref(e.buttons&&e.buttons.length?e.buttons:m),T=t.computed(()=>!!f.value),j=t.computed(()=>!!r.value&&!!w.value),I=t.ref(),O=t.ref(),V=t.ref(!1),{renderResizeBar:S,maximize:E,restore:D,boundingElement:P,resizedEventParam:A,allowDrag:B,unWindowResizeHandle:M,moveToCenter:$}=$t(e),{registerDraggle:z}=At(e,n,B);function H(){return!!document.querySelectorAll(".farris-modal").length&&document.body.classList.contains("modal-open")}function Re(){const N=document.querySelectorAll(".farris-modal").length;(!N||N-1<=0)&&document.body.classList.remove("modal-open"),k.value&&k.value.classList.remove("show")}t.watch(()=>e.title,(N,L)=>{N!==L&&(c.value=N)}),t.watch(()=>e.modelValue,(N,L)=>{N!==L&&(l.value=N,l.value&&e.draggable&&t.nextTick(()=>{O.value&&!h.value&&(h.value=O.value.parentElement,P.value=h.value,z(I.value,O.value,P.value),$())}),N||(h.value&&(h.value=null),Re())),l.value?F.value=H():(V.value=!1,B.value=e.draggable)}),t.watch(()=>e.showHeader,(N,L)=>{N!==L&&(d.value=N)}),t.watch(()=>e.showButtons,(N,L)=>{N!==L&&(r.value=N)}),t.watch(()=>A.value,(N,L)=>{const Y=N||{},U=L||{};JSON.stringify(Y)!==JSON.stringify(U)&&n.emit("resize",{newSize:N,oldSize:L,isMaximized:V.value})}),t.watch([()=>e.width,()=>e.height],(N,L)=>{(N[0]!==L[0]||N[1]!==L[1])&&(a.value=N[0]||500,o.value=N[1]||600)}),t.watch(()=>e.class,(N,L)=>{s.value=N});const se=t.computed(()=>(l.value&&document.body.classList.add("modal-open"),l.value)),Le=t.computed(()=>{var Y;const N={modal:!0,"farris-modal":!0,fade:!0};N["f-modal-fitContent"]=!!u.value,N.show=!!se.value;const L=(Y=e.maskClass)==null?void 0:Y.split(" ");return L==null||L.reduce((U,_)=>(U[_]=!0,U),N),N}),Ga=t.computed(()=>{var Y;const N={"modal-dialog":!0},L=(Y=s.value)==null?void 0:Y.split(" ");return L==null||L.reduce((U,_)=>(U[_]=!0,U),N),N}),wt=()=>G.isMobilePhone()&&!e.isMessager,Xa=t.computed(()=>{const N=document.documentElement.clientWidth,L=document.documentElement.clientHeight,Y=Math.min(a.value,N),U=u.value?"auto":`${Math.min(o.value,L-10)}px`,_={position:"absolute",top:`${(window.innerHeight-parseInt(U==="auto"?"0":U))/2}px`,left:`${(window.innerWidth-Y)/2}px`,width:`${Y}px`,height:U};return wt()&&(_.top="0px",_.left="0px",_.width=`${window.innerWidth}px`,_.height=`${window.innerHeight}px`),e.mask||(_.pointerEvents="auto"),_}),kt=t.ref(G.getMaxZIndex()||1050),Ka=t.computed(()=>{const N={display:"block",overflow:"hidden"};return e.mask||(N.pointerEvents="none",N.backgroundColor="transparent"),F.value&&(N.backgroundColor="transparent"),N.zIndex=kt.value,N}),Ja=t.computed(()=>({"modal-content":!0,"modal-content-has-header":d.value,"is-mobile":wt()})),_a=t.computed(()=>{const N={display:d.value?"":"none"};return N["pointer-events"]=B.value?"auto":"none",N}),Za=t.computed(()=>({"f-icon":!0,modal_maximize:!0,modalrevert:V.value})),Qa=t.computed(()=>({"modal-body":!0,"f-utils-flex-column":C.value==="iframe","f-utils-fill":!0}));function eo(){return{height:`${e.footerHeight||60}px`}}const to=t.computed(()=>{const N={textAlgin:x.value},L=eo();return Object.assign(N,L)});function Ft(N){if(N==null||N.stopPropagation(),V.value){V.value=!1,D();return}E(),V.value=!0}async function no(N,L){N.handle&&await N.handle(L,N)&&n.emit("closed",L)}function ao(N){N.width&&(a.value=N.width),N.height&&(o.value=N.height),N.buttons&&(w.value=N.buttons),N.title&&(c.value=N.title)}let $e=null,Ae=null;t.onBeforeMount(()=>{F.value=H()}),t.onMounted(()=>{O.value&&!h.value&&(h.value=O.value.parentElement,P.value=h.value,z(I.value,O.value,P.value)),se.value&&document.body.classList.add("modal-open"),$e=zt(e,n),Ae=Ht(e,n)}),t.onUnmounted(()=>{M&&M(),$e&&$e.remove(),Ae&&Ae.remove()}),n.expose({modalElementRef:O,updateModalOptions:ao,close:y,maxDialog:Ft,isMaximized:V});function oo(){return t.createVNode("ul",null,[p.value&&t.createVNode("li",{class:"f-btn-icon f-bare"},[t.createVNode("span",{class:"f-icon modal_minimize"},null)]),g.value&&t.createVNode("li",{onClick:Ft,class:"f-btn-icon f-bare",style:"pointer-events: auto;"},[t.createVNode("span",{class:Za.value},null)]),v.value&&t.createVNode("li",{class:"f-btn-icon f-bare",onClick:N=>y(N,!1),style:"pointer-events: auto;"},[t.createVNode("span",{class:"f-icon modal_close"},null)])])}function lo(){return t.createVNode("div",{class:"modal-footer",style:to.value},[w.value&&w.value.map(N=>{const L=t.ref(N.disabled);return t.createVNode("button",{name:N.name,type:"button",disabled:L.value,class:N.class+(N.iconClass?" btn-icontext":""),onClick:Y=>{no(N,Y)}},[!!N.iconClass&&t.createVNode("i",{class:N.iconClass},null),N.text])})])}function io(){return t.createVNode("div",{ref:I,class:"modal-header",style:_a.value},[n.slots.headerTemplate?n.slots.headerTemplate():t.createVNode("div",{class:"modal-title"},[T.value&&t.createVNode("span",{class:f.value,style:"margin-right: 8px"},null),t.createVNode("span",{class:"modal-title-label"},[c.value])]),t.createVNode("div",{class:"actions"},[oo()])])}function ro(){return n.slots.footerTemplate?n.slots.footerTemplate():j.value&&lo()}function so(N){if(N.stopPropagation(),e.allowClickMaskToClose){if(N.target!==k.value)return;y(N,!1)}}function co(){var N,L;return t.createVNode("div",{id:i.value,class:Ga.value,style:Xa.value,ref:O},[t.createVNode("div",{class:Ja.value},[d.value&&io(),t.createVNode("div",{class:Qa.value},[(L=(N=n.slots).default)==null?void 0:L.call(N),C.value==="iframe"&&t.createVNode("iframe",{title:i.value,class:"f-utils-fill",width:"100%",frameborder:"0",src:b.value},null)]),ro()]),!u.value&&O.value&&!V.value&&S(O.value)])}function uo(N){return N||"body"}return t.watchEffect(()=>{se.value&&(kt.value=G.getMaxZIndex()||1050)}),()=>t.createVNode(t.Teleport,{to:uo(e.host)},{default:()=>[se.value&&t.createVNode(t.Transition,{name:"fade",appear:!0},{default:()=>[t.createVNode("div",{ref:k,class:Le.value,style:Ka.value,onClick:so},[co()])]})]})}});function We(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function Wt(e){const n=document.createElement("div");n.style.display="contents";const a=t.createApp({setup(o,l){t.onUnmounted(()=>{document.body.removeChild(n)});const i=t.ref(),s=t.ref(e.class||""),u=t.ref(!!e.showButtons),d=t.ref(!!e.showHeader),f=t.ref(e.showCloseButton==null?!0:e.showCloseButton),v=t.ref(!0),g=t.ref(e.title||""),p=e.acceptCallback||(()=>{}),C=e.rejectCallback||(()=>{}),b=e.closedCallback||(k=>{}),x=e.resizeHandle||(k=>{}),r=e.stopMoveHandle||(k=>{}),c=We(e),h=k=>{v.value=!1,a.unmount(),b(k)};return t.onMounted(()=>{}),l.expose({modalRef:i}),()=>t.createVNode(ce,{ref:i,class:s.value,modelValue:v.value,"onUpdate:modelValue":k=>v.value=k,title:g.value,width:e.width,height:e.height,buttons:e.buttons,"show-header":d.value,"show-buttons":u.value,"show-close-button":f.value,"show-max-button":!1,onAccept:p,onCancel:C,fitContent:e.fitContent==null?!0:e.fitContent,onClosed:h,onResize:x,onStopMove:r},{default:()=>[c&&c(a)]})}});return document.body.appendChild(n),a.use(q.LocaleService.i18n),a.mount(n),a}class qe{constructor(n){Z(this,"appContext",null);Z(this,"modalRef",t.ref());Z(this,"activeModalIndex",t.ref(0));Z(this,"modalRefs",{});Z(this,"isUseEscCloseModal",t.ref(!1));Z(this,"activeModalInstance",t.computed(()=>this.modalRefs[this.activeModalIndex.value]));this.app=n,this.appContext=n?n._context:null}getCurrentModal(){return this.activeModalInstance.value}adaptToWindow(n,a){const{width:o,height:l}={width:window.innerWidth,height:window.innerHeight};return o<n&&(n=o-14),l<a&&(a=l-14),{width:n,height:a}}static show(n){const a=Object.assign({title:"",showButtons:!0,showHeader:!0},n);return Wt(a)}close(n){var a,o;n?(o=n.value)==null||o.close():(a=this.getCurrentModal())==null||a.close()}open(n){const a=document.createDocumentFragment();n.showMaxButton&&n.fitContent&&(n.showMaxButton=!1);const o=t.shallowRef(Object.assign({title:"",showButtons:!0,showHeader:!0},n)),l=t.ref(!0),i=o.value.acceptCallback||(()=>{}),s=o.value.rejectCallback||(()=>{}),u=o.value.closedCallback||((y,m)=>{}),d=o.value.resizeHandle||(y=>{}),f=n.stopMoveHandle||(y=>{});let v;const g=We(o.value),p=y=>{var w;l.value=!1;const m=(w=y==null?void 0:y.target)==null?void 0:w.classList.contains("modal_close");u(y,this.isUseEscCloseModal.value?"esc":m?"icon":"button")},C=y=>{p(y),v&&t.nextTick(()=>{if(this.modalRefs[this.activeModalIndex.value]&&delete this.modalRefs[this.activeModalIndex.value],t.render(null,a),v=null,this.modalRef.value=null,this.modalRefs){const m=Object.keys(this.modalRefs).map(w=>Number(w));m.length>0?this.activeModalIndex.value=Math.max(...m):this.activeModalIndex.value=0}this.isUseEscCloseModal.value=!1})},b=y=>{var m;this.isUseEscCloseModal.value=!0,this.activeModalInstance&&((m=this.activeModalInstance.value)==null||m.close(y==null?void 0:y.event))},{width:x,height:r}=o.value,c=this.adaptToWindow(x||500,r||320);Object.assign(o.value,c);const h=()=>t.createVNode(ce,t.mergeProps({ref:this.modalRef,modelValue:l.value,"onUpdate:modelValue":y=>l.value=y},o.value,{isMessager:o.value.class&&o.value.class.indexOf("modal-message")>-1,onAccept:i,onCancel:s,onClosed:C,onResize:d,onEsc:b,onStopMove:f}),{default:()=>[g&&g(this.app)]});return v=(y=>{const m=t.h(h,y);return m.appContext=this.appContext,t.render(m,a),m})({...o.value}),this.activeModalIndex.value++,this.modalRefs[this.activeModalIndex.value]=this.modalRef.value,{update:y=>{o.value={...o.value,...y},v&&t.render(t.cloneVNode(v,{...o}),a)},destroy:C,modalRef:this.activeModalInstance,close:()=>this.close()}}}const Ue=Symbol("FModalService");ce.install=e=>{e.component(ce.name,ce);const n=new qe(e);e.provide(Ue,n),e.provide("FModalService",n)};function Ye(e,n){function a(){const o=e.beforeOpen||e.beforeClickButton||null;let l=Promise.resolve(!0);if(o){const i=o(n.value);if(typeof i>"u")return l;typeof i=="boolean"?l=Promise.resolve(i):l=i}return l}return{judgeCanOpen:a}}function qt(e,n,a,o,l){const i=t.ref(e.buttonBehavior),s=t.ref(e.popupOnInput),u=t.computed(()=>({"input-group-append":!0,"append-force-show":e.showButtonWhenDisabled&&(e.readonly||e.disable)})),{judgeCanOpen:d}=Ye(e,l),f=t.computed(()=>e.showButtonWhenDisabled||(!e.editable||!e.readonly)&&!e.disable),v=t.inject(Ue,null),g=t.ref();async function p(x){if(await d()&&f.value){const r=!!n.slots.default;if(i.value==="Modal"){const c=e.modalOptions,h=v==null?void 0:v.open({...c,render:()=>n.slots.default&&n.slots.default()});g.value=h==null?void 0:h.modalRef}i.value==="Overlay"&&Rt.show({host:document.body,backgroundColor:"rgba(0,0,0,.15)",render:()=>n.slots.default&&n.slots.default()}),r&&i.value==="Popup"&&o.togglePopup(!0),r&&s.value&&o.hidePopup(),n.emit("clickButton",{origin:x,value:e.modelValue})}}function C(x){n.emit("mouseEnterIcon",x)}function b(x){n.emit("mouseLeaveIcon",x)}return{buttonGroupClass:u,onClickButton:p,onMouseEnterButton:C,onMouseLeaveButton:b,modalRef:g}}function Ut(e,n,a,o,l,i){const s=t.ref(!1),u=t.computed(()=>e.enableClear&&!e.readonly&&!e.disable),{changeTextBoxValue:d,hasClearClass:f}=i;function v(b){s.value=b,f.value=b}t.watch(l,()=>{v(!!l.value)});function g(b){const x=!e.readonly&&!e.disable&&e.editable,r=!e.editable;b.stopPropagation(),(x||r)&&(d(""),l.value="",v(!s.value),n.emit("clear"))}function p(b){if(u.value){if(!a.value){v(!1);return}!e.disable&&!e.readonly&&v(!0)}}function C(b){u.value&&v(!1)}return{enableClearButton:u,showClearButton:s,onClearValue:g,onMouseEnterTextBox:p,onMouseLeaveTextBox:C}}function Yt(e,n,a,o,l){const i=t.computed(()=>e.popupOnInput),s=t.computed(()=>e.popupOnFocus),{shouldPopupContent:u,closeAllPopover:d}=l,f=t.ref(!1),v=t.computed(()=>e.enableTitle?a.value:""),g=t.computed(()=>(e.disable||e.readonly)&&!e.forcePlaceholder?"":e.placeholder),p=t.computed(()=>e.readonly||!e.editable),C=t.ref(!1),b=t.computed(()=>!e.disable&&C.value),x=t.computed(()=>({"text-left":e.textAlign==="left","text-center":e.textAlign==="center","text-right":e.textAlign==="right","form-control":!0,"f-utils-fill":!0})),r=t.computed(()=>({"input-group":!0,"f-state-disabled":e.disable,"f-state-editable":e.editable&&!e.disable&&!e.readonly,"f-state-readonly":e.readonly,"f-state-focus":b.value,"input-group--has-clear":e.enableClear&&f.value}));function c(O,V=!0){a.value=O,V&&(n.emit("change",O),n.emit("update:modelValue",O))}function h(O){u.value=!1,c(O,!0)}t.watch(()=>e.modelValue,O=>{a.value=O});function k(O){C.value=!1,n.emit("blur",O),O.stopPropagation()}function F(O){n.emit("click",O),d(),n.slots.default&&!e.disable&&!e.readonly&&e.popupOnClick&&l.togglePopup()}function y(O){!e.disable&&!e.readonly&&(C.value=!0,p.value||(n.emit("focus",O),s.value&&!u.value&&l.popup()))}function m(O){n.emit("input",O);const V=O.target.value;o.value=V,a.value!==V&&c(V,e.updateOn==="change"),i.value&&!u.value&&l.popup()}function w(O){O.target.tagName!=="INPUT"&&O.preventDefault(),O.stopPropagation()}function T(O){n.emit("keydown",O)}function j(O){O.key==="Enter"&&(i.value||s.value)&&l.hidePopup(),n.emit("keyup",O)}function I(O){const V=O.target.value;O.stopPropagation(),c(V)}return{hasFocusedTextBox:b,isTextBoxReadonly:p,textBoxClass:x,textBoxPlaceholder:g,textBoxTitle:v,inputGroupClass:r,hasClearClass:f,changeTextBoxValue:c,commitValue:h,onBlurTextBox:k,onClickTextBox:F,onFocusTextBox:y,onInput:m,onKeyDownTextBox:T,onKeyUpTextBox:j,onMouseDownTextBox:w,onTextBoxValueChange:I}}const oe="FarrisVue_PopoverInstancesKey";function Gt(e,n,a,o){const l=t.ref(),i=t.ref(!1),{judgeCanOpen:s}=Ye(e,o);t.watch(()=>l.value,(C,b)=>{window[oe]=window[oe]||new WeakMap,C?window[oe].set(a.value,C):window[oe].delete(a.value)});function u(){if(window[oe]){const C=window[oe];document.querySelectorAll(".f-button-edit,.v-popover").forEach(b=>{const x=C.get(b);x&&b!==a.value&&!a.value.closest(".popover-fitcontent")&&x.hide()})}}function d(){const C=l.value;C&&C.show(a.value)}async function f(C=!1){if(!!n.slots.default){if(!C&&!i.value&&!await s())return;i.value=!i.value,i.value&&(await t.nextTick(),d())}}async function v(C=!1){if(!!n.slots.default){if(!C&&!await s())return;i.value=!0,await t.nextTick(),d()}}function g(){i.value=!1}function p(){i.value=!0,t.nextTick(()=>{d()})}return{hidePopup:g,showPopup:p,popup:v,shouldPopupContent:i,togglePopup:f,popoverRef:l,closeAllPopover:u}}function Xt(e,n,a){const o=t.ref(),{isTextBoxReadonly:l,textBoxClass:i,textBoxPlaceholder:s,textBoxTitle:u,onBlurTextBox:d,onClickTextBox:f,onFocusTextBox:v,onInput:g,onKeyDownTextBox:p,onKeyUpTextBox:C,onMouseDownTextBox:b,onTextBoxValueChange:x}=a,r=t.ref(e.id),{uuid:c}=G.useGuid(),h=t.computed(()=>({}));t.onMounted(()=>{var w,T;e.selectOnCreated&&((w=o.value)==null||w.select()),e.focusOnCreated&&((T=o.value)==null||T.focus({preventScroll:!0})),r.value||(r.value="button-edit_"+c(8)),r.value=r.value+"-textbox"});const k=t.ref(!1),F=w=>{w.preventDefault(),k.value=!0},y=w=>{w.preventDefault(),k.value=!1,g(w)};function m(w){k.value||g(w)}return()=>t.createVNode("input",{id:e.id?e.id+"-textbox":void 0,ref:o,name:"input-group-value",autocomplete:e.autoComplete?"on":"off",class:i.value,style:h.value,disabled:e.disable,maxlength:e.maxLength,minlength:e.minLength,placeholder:s.value,readonly:l.value,tabindex:e.tabIndex,title:u.value,type:e.inputType,value:n.value,onBlur:d,onChange:x,onClick:f,onFocus:v,onInput:m,onKeydown:p,onKeyup:C,onMousedown:b,onCompositionend:y,onCompositionstart:F},null)}function Kt(e,n,a){const o=t.ref(e.separator),l=t.computed(()=>e.readonly||e.disable),{changeTextBoxValue:i,onFocusTextBox:s,onBlurTextBox:u,onClickTextBox:d,textBoxPlaceholder:f}=a,v=t.computed(()=>n.value?n.value.split(o.value).map(b=>({name:b,selectable:!0})):[]);function g(b){i(b.map(x=>x.name).join(o.value),!0)}t.watch(()=>e.separator,b=>{o.value=b});const p=t.ref(!e.disable&&!e.readonly);t.watch([()=>e.disable,()=>e.readonly],([b,x],[r,c])=>{p.value=!b&&!x});function C(b){d(b)}return()=>t.createVNode(Tt,{tabindex:e.tabIndex,onFocus:s,onBlur:u,id:`${e.id}-tag-editor`,class:"form-control",placeholder:f.value,data:v.value,showClose:!l.value,showInput:!0,disable:l.value,onChange:g,onClick:C},null)}function Jt(e,n,a,o){const{buttonGroupClass:l,onClickButton:i,onMouseEnterButton:s,onMouseLeaveButton:u}=a,{enableClearButton:d,showClearButton:f,onClearValue:v}=o,g=t.ref(),p=Q.debounce(b=>{i(b)},e.buttonBehavior==="Modal"?0:200),C=()=>{n.emit("beforeClearValue")};return{renderButtonGroup:()=>t.createVNode("div",{id:e.id?`${e.id}-button-group`:void 0,class:l.value},[d.value&&t.withDirectives(t.createVNode("span",{class:"input-group-text input-group-clear",onClick:v,onMousedown:C},[t.createVNode("i",{class:"f-icon modal_close"},null)]),[[t.vShow,f.value]]),n.slots.buttonContent?t.createVNode("span",{class:"input-group-text input-group-append-button",onClick:p,onMouseenter:s,onMouseleave:u},[n.slots.buttonContent()]):e.buttonContent?t.createVNode("span",{class:"input-group-text input-group-append-button",innerHTML:e.buttonContent,ref:g,onClick:b=>p(b),onMouseenter:s,onMouseleave:u},null):null]),buttonHandleElement:g}}function _t(e,n,a){const o=t.ref(e.popupMinWidth),{hidePopup:l,popoverRef:i}=a,s=()=>{n.emit("shown")};return()=>t.createVNode(Nt,{id:`${e.id}-popover`,ref:i,placement:e.placement,host:e.popupHost,"keep-width-with-reference":e.keepWidthWithReference,fitContent:!0,"right-boundary":e.popupRightBoundary,minWidth:o.value,class:e.popupClass,offsetX:e.popupOffsetX,onHidden:l,onShown:s,beforeClose:e.beforeClosePopup,limitContentBySpace:e.limitContentBySpace},{default:()=>{var u,d;return[(d=(u=n.slots).default)==null?void 0:d.call(u)]}})}const pe=t.defineComponent({name:"FButtonEdit",props:Et,emits:["updateExtendInfo","clear","change","click","clickButton","blur","focus","mouseEnterIcon","mouseLeaveIcon","keyup","keydown","inputClick","input","update:modelValue","beforeClearValue"],setup(e,n){const a=t.ref(),o=t.ref(e.customClass),l=t.ref(e.modelValue),i=Gt(e,n,a,l),{shouldPopupContent:s,hidePopup:u,showPopup:d,togglePopup:f}=i,v=qt(e,n,a,i,l),g=t.ref(""),p=Yt(e,n,l,g,i),{hasFocusedTextBox:C,commitValue:b,inputGroupClass:x}=p,r=Ut(e,n,l,C,g,p),{onMouseEnterTextBox:c,onMouseLeaveTextBox:h}=r,k=t.ref(!1),F=t.computed(()=>{const P={"f-button-edit":!0,"f-cmp-inputgroup":!0,"f-button-edit-nowrap":!e.wrapText};return o.value&&o.value.split(" ").reduce((A,B)=>(A[B]=!0,A),P),P}),y=t.computed(()=>({overflow:e.wrapText?"hidden":""})),m=t.computed(()=>({}));function w(){if(!e.multiSelect||e.inputType!=="tag"||!a.value)return 0;let P=0;const A=Array.from(a.value.querySelectorAll(".farris-tag-item"));return A&&A.length&&(P=A.map(B=>B.offsetTop).filter(B=>B>20).length),P}const T=t.ref(w());t.onUpdated(()=>{T.value=w()});function j(){return e.multiSelect&&e.inputType==="tag"?()=>t.createVNode(t.Fragment,null,[Kt(e,l,p)(),!!T.value&&t.createVNode("div",{class:"d-flex flex-row mr-2 more-tags","more-tags":!0},[t.createVNode("span",{class:"multi--more-text"},[t.createTextVNode("+"),T.value])])]):Xt(e,l,p)}let I=j();t.watch([()=>e.multiSelect,()=>e.inputType],()=>{I=j()});const{renderButtonGroup:O,buttonHandleElement:V}=Jt(e,n,v,r),S=_t(e,n,i),E=t.ref(s.value),D={displayText:g,commitValue:b,elementRef:a,hidePopup:u,showPopup:d,popoverRef:i.popoverRef,shouldPopupContent:s,togglePopup:f,openDialog:()=>{V.value&&e.buttonBehavior==="Modal"&&V.value.click()},getModal:()=>{var P;return e.buttonBehavior==="Modal"?(P=v.modalRef.value)==null?void 0:P.value:null},getTextbox:()=>{var P;return(P=a.value)==null?void 0:P.querySelector("input")},forceClosePopup:()=>{E.value=!1,k.value=!0,s.value=!1}};return t.onMounted(()=>{a.value.componentInstance=D,window.onresize=()=>{document.body.click()}}),t.onBeforeUnmount(()=>{var P;window.onresize=null,(P=window[oe])==null||P.delete(a.value)}),n.expose(D),t.watch(()=>s.value,async(P,A)=>{if(k.value){E.value=P,k.value=!1;return}if(!P&&e.beforeClosePopup&&typeof e.beforeClosePopup=="function"){try{const B=await e.beforeClosePopup();E.value=!B,(!B||e.readonly)&&(s.value=!0)}catch(B){console.error("Error in beforeClosePopup:",B),E.value=A,s.value=A}return}E.value=P}),()=>{var P,A;return t.createVNode(t.Fragment,null,[t.createVNode("div",t.mergeProps(n.attrs,{ref:a,class:F.value,id:e.id?e.id:void 0,style:y.value}),[t.createVNode("div",{id:e.id?`${e.id}-input-group`:void 0,class:x.value,style:m.value,onMouseenter:c,onMouseleave:h},[(A=(P=n.slots).precontent)==null?void 0:A.call(P),I(),O()])]),E.value&&S()])}}}),Zt={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/field-selector.schema.json",title:"field-selector",description:"A Farris Input Component",type:"object",properties:{disabled:{description:"",type:"boolean",default:!1},readonly:{description:"",type:"boolean",default:!1},modelValue:{description:"",type:"string",default:""},repositoryToken:{description:"",type:"object",default:null},fields:{description:"",type:"array",default:null},editorParams:{type:"object",default:null},displayText:{description:"",type:"string",default:""},enableClear:{description:"",type:"boolean",default:!0},beforeOpen:{description:"",type:"function",default:null},onSubmitModal:{description:"",type:"function",default:null},editorType:{description:"",type:"string",default:"filter"},enableExpression:{description:"",type:"boolean",default:!1},expressionOptions:{description:"",type:"object",default:null},formContextData:{description:"",type:"object",default:{}},singleValue:{description:"",type:"boolean",default:!0},idField:{description:"",type:"string",default:"id"},textField:{type:"string",default:""},valueField:{type:"string",default:""},editable:{type:"boolean",default:!0},enableTitle:{type:"boolean",default:!0}}},Fe={disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},enableClear:{type:Boolean,default:!0},displayText:{type:String,default:""},enableExpression:{type:Boolean,default:!1},modelValue:{type:String,default:""},insertType:{type:String,default:"below"},fields:{type:Array,default:[]},repositoryToken:{type:Object,default:null},editorParams:{type:Object,default:null},onSubmitModal:{type:Function,default:null},beforeOpen:{type:Function,default:null},editorType:{type:String,default:"filter"},expressionOptions:{type:Object,default:null},formContextData:{type:Object,default:{}},singleValue:{type:Boolean,default:!0},idField:{type:String,default:"id"},textField:{type:String,default:""},valueField:{type:String,default:""},editable:{type:Boolean,default:!0},enableTitle:{type:Boolean,default:!0},disableConfirmWhenUnchanged:{type:Boolean,default:!1}},Ge=X.createPropsResolver(Fe,Zt),Xe={conditions:{type:Array,default:[]},fields:{type:Array,default:[]},activeIndex:{type:Number,default:-1},formatter:{type:Function,default:(e,n)=>`${n.raw.name} [${n.raw.path}]`},enableExpression:{type:Boolean,default:!1},expressionOptions:{type:Object,default:null},formContextData:{type:Object,default:{}},singleValue:{type:Boolean,default:!0},idField:{type:String,default:"id"},textField:{type:String,default:""},valueField:{type:String,default:""}},Ke=new Map([["appearance",X.resolveAppearance]]),Je={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/combo-list.schema.json",title:"combo-list",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a combo list",type:"string"},type:{description:"The type string of number combo list component",type:"string",default:"combo-list"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{description:"",type:"boolean",default:!1},enableClear:{description:"",type:"boolean",default:!1},editable:{description:"",type:"boolean",default:!1},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:""},lableWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:"请选择"},idField:{description:"",type:"string",default:"id"},valueField:{description:"",type:"string",default:"id"},titleField:{description:"",type:"string",default:"name"},textField:{description:"",type:"string",default:"name"},dataSourceType:{description:"",type:"string",default:"static"},data:{description:"",type:"array"},dataSource:{description:"",type:"string"},remote:{description:"",type:"string"},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},multiSelect:{description:"",type:"boolean",default:!1},maxLength:{description:"",type:"number",default:null},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"string",default:""},maxHeight:{description:"",type:"number",default:350},minPanelWidth:{description:"",type:"number",default:160},popupOnClick:{description:"",type:"boolean",default:!0},separator:{description:"",type:"string",default:","},viewType:{description:"",type:"string",default:"tag"},enableSearch:{description:"启用搜索",type:"boolean",default:!0},enableHighlightSearch:{description:"启用高亮搜索",type:"boolean",default:!1},beforeOpen:{description:"打卡面板前回调",type:"string"},onChange:{description:"值变化事件",type:"string",default:""},onInput:{description:"输入事件",type:"string",default:""},onClear:{description:"清空事件",type:"string",default:""}},required:["type"],ignore:["id","appearance","binding","visible"],events:{onClear:"清空事件",onChange:"值变化事件",beforeOpen:"打开下拉面板前事件"}};function _e(e,n,a){return n}function Qt(){function e(n,a,o){const l={};return l.beforeOpen=i=>a.call("beforeOpen",n,[i,n],o),l}return{resolve:e}}const he={id:{type:String},data:{type:Array,default:[]},disabled:{default:!1,type:Boolean},dropDownIcon:{type:String,default:'<span class="f-icon f-icon-arrow-chevron-down"></span>'},editable:{default:!1,type:Boolean},enableClear:{default:!0,type:Boolean},enableSearch:{type:Boolean,default:!1},enableTitle:{default:!0,type:Boolean},fitEditor:{default:!1,type:Boolean},forcePlaceholder:{default:!1,type:Boolean},hidePanelOnClear:{default:!0,type:Boolean},idField:{default:"id",type:String},mapFields:{type:Object},maxHeight:{default:350,type:Number},maxLength:{type:Number},multiSelect:{type:Boolean,default:!1},modelValue:{},placeholder:{type:String,default:"请选择"},placement:{type:String,default:"auto"},readonly:{default:!1,type:Boolean},remote:{default:null,type:Object},remoteSearch:{default:!1,type:Boolean},separator:{default:",",type:String},tabIndex:{type:Number,default:-1},textField:{default:"name",type:String},titleField:{default:"name",type:String},valueField:{default:"id",type:String},viewType:{default:"tag",type:String},change:{type:Function,default:()=>{}},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},autoHeight:{type:Boolean,default:!0},beforeOpen:{type:Function,default:null},load:{type:Function},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0},minPanelWidth:{type:Number,default:160},popupOnClick:{type:Boolean,default:!0}},en=Object.assign({},he,{readonly:{}});X.createPropsResolver(he,Je,Ke,_e);const Ze=X.getPropsResolverGenerator(he,Je,Ke,_e),tn=Qt(),nn={dataSource:{type:Array,default:[]},enableSearch:{type:Boolean,default:!1},idField:{type:String,default:"id"},multiSelect:{type:Boolean,default:!1},selectedValues:{type:String,default:""},separator:{type:String,default:","},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},width:{type:Number},maxHeight:{type:Number},valueField:{type:String,default:"id"},onSelectionChange:{type:Function,default:()=>{}},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0}},an=t.defineComponent({name:"FComboListContainer",props:nn,emits:["selectionChange"],setup(e,n){const a=t.ref(),o=t.ref(e.dataSource),l=t.ref([]),i=t.ref(e.separator),s=t.ref(e.width),u=t.ref(e.maxHeight),d=t.computed(()=>e.multiSelect),f=t.ref(e.multiSelect?String(e.selectedValues).split(i.value):[e.selectedValues]),v=t.computed(()=>({enableSelectRow:!0,multiSelect:e.multiSelect,multiSelectMode:"OnCheckAndClick",showCheckbox:d.value,showSelectAll:!1,showSelection:!0}));t.watch(e.dataSource,()=>{o.value=e.dataSource}),t.computed(()=>e.enableSearch?"SearchBar":"ContentHeader");const g=t.computed(()=>{const r={};return s.value!==void 0&&(r.width=`${s.value}px`),u.value!==void 0&&u.value>0&&(r.maxHeight=`${u.value}px`),r});function p(r){a.value.search(r)}function C(r){l.value=r.map(c=>Object.assign({},c)),f.value=r.map(c=>c[e.idField]),n.emit("selectionChange",l.value)}function b(r){if(e.enableHighlightSearch)return;let c=[];const{searchOption:h}=e;typeof h=="function"?c=o.value.filter(k=>h(r,k)):c=o.value.filter(k=>k[e.valueField].indexOf(r)>-1||k[e.textField].indexOf(r)>-1),a.value.updateDataSource(c)}t.watch([()=>e.selectedValues],([r])=>{e.multiSelect?f.value=r.split(i.value):f.value=[r]});function x(r){a.value.activeRowById(r)}return t.onMounted(()=>{var r,c;if(!e.multiSelect){const h=(r=f.value)==null?void 0:r[0];let k=h;const F=o.value.map(y=>y[e.valueField||e.idField]);if(!Q.isUndefined(h)&&F.includes(h)){const y=typeof h,m=typeof((c=o.value[0])==null?void 0:c[e.valueField||e.idField]);m==="number"&&y!==m&&(k=Number(h)),m==="boolean"&&y!==m&&(k=h==="true"?!0:h==="false"?!1:h),x(k)}}}),n.expose({search:p,activeRowById:x}),()=>t.createVNode("div",{class:"f-combo-list-container",style:g.value},[t.createVNode(Vt,{ref:a,size:"small",itemClass:"f-combo-list-item",itemContentClass:"text-truncate",header:"ContentHeader",headerClass:"f-combo-list-search-box",data:o.value,idField:e.idField,textField:e.textField,titleField:e.titleField,multiSelect:e.multiSelect,selection:v.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:f.value,onSelectionUpdate:C,onAfterSearch:b},null)])}});function on(e,n){const a=t.ref(""),o=t.ref(e.modelValue),l=t.ref(e.data||[]),i=t.ref(e.editable);function s(r){const c=e.multiSelect?String(r).split(e.separator):[String(r)],h=c.map(y=>[y,!0]),k=new Map(h);return l.value.filter(y=>k.has(String(y[e.valueField]))).sort((y,m)=>{const w=c.indexOf(y[e.valueField]),T=c.indexOf(m[e.valueField]);return w-T})}function u(r){const c=s(r).map(h=>h[e.textField]).join(e.separator);a.value=i.value?c||r:c}function d(r){if(e.multiSelect){const c=r.split(e.separator).map(k=>[k,!0]),h=new Map(c);return l.value.filter(k=>h.has(k[e.textField]))}return l.value.filter(c=>""+c[e.textField]===r)}function f(r){const c={};return c[e.idField]=r,c[e.textField]=r,[c]}function v(r){let c=d(r);const h=c&&c.length>0;return i.value&&!h&&(c=f(r)),c}function g(){const{url:r,method:c="GET",headers:h={"Content-Type":"application/json;charset=utf-8;"},body:k=null}=e.remote;if(!r)return;const F=c.toLowerCase()==="get"?{method:c,headers:h}:{method:c,headers:h,body:k};let y=!1;fetch(new Request(r,F)).then(m=>{var T,j;if(m.status===200)return y=!!((j=(T=m.headers)==null?void 0:T.get("content-type"))!=null&&j.includes("application/json")),y?m.text():m.json();throw m.status===405?new Error(q.LocaleService.getLocaleValue("comboList.remoteError")):new Error(m.statusText)}).then(m=>{m.length&&(l.value=y?JSON.parse(m):m)}).catch(m=>{console.warn(m)})}e.remote&&(e.load?e.load().then(r=>{l.value=r}).catch(r=>{console.log(r)}):g()),t.watch(()=>e.data,()=>{l.value=e.data}),t.watch([l],([r],[c])=>{if(e.modelValue!=null&&!e.multiSelect){const h=r.find(k=>k[e.valueField]===o.value);h?h[e.valueField]!==o.value?(o.value=h[e.valueField],a.value=h[e.textField],n.emit("update:modelValue",h[e.valueField]),n.emit("change",[h],h[e.valueField])):a.value!==h[e.textField]&&(a.value=h[e.textField]):o.value!==""&&(o.value="",a.value="",n.emit("update:modelValue",""),n.emit("change",[],""))}}),t.watch(()=>e.modelValue,(r,c)=>{c!==r&&(o.value=r,u(r))});function p(r){l.value=r}function C(){return l.value}function b(){return a.value}function x(){const r=typeof e.beforeOpen=="function";return!e.beforeOpen||!r?Promise.resolve(!0):Promise.resolve().then(()=>e.beforeOpen({instance:{updateDataSource:p,getData:C,getDisplayText:b}})).then(c=>typeof(c==null?void 0:c.canOpen)=="boolean"?c==null?void 0:c.canOpen:!0)}return u(e.modelValue),{dataSource:l,displayText:a,editable:i,modelValue:o,beforeOpenList:x,getItemsByDisplayText:d,getItemsByValue:s,getSelectedItemsByDisplayText:v}}const le=t.defineComponent({name:"FComboList",props:he,emits:["clear","update:modelValue","change","input"],setup(e,n){const a=t.ref(),o=t.ref(),l=t.ref(e.disabled||e.readonly),i=t.ref(e.enableClear),s=t.ref(e.enableSearch),u=t.ref(e.readonly),{dataSource:d,displayText:f,editable:v,modelValue:g,getItemsByDisplayText:p,getItemsByValue:C,beforeOpenList:b}=on(e,n),x=t.ref(e.dropDownIcon);x.value==='<span class="f-icon f-icon-arrow-chevron-down"></span>'&&(x.value='<span id="'+e.id+'-icon-dropdown" class="f-icon f-icon-arrow-chevron-down"></span>');const r=t.computed(()=>e.multiSelect),c=t.computed(()=>o.value?o.value.elementRef.getBoundingClientRect().width:0);function h(){!r.value&&o.value&&o.value.hidePopup()}function k(D){f.value=D.map(A=>A[e.textField]).join(e.separator)||g.value;let P="";D.length===1?P=D[0][e.valueField]:P=D.map(A=>A[e.valueField]).join(e.separator),g.value!==P&&(g.value=P,n.emit("update:modelValue",g.value),n.emit("change",D,g.value))}function F(){const D=C(g.value);k(D)}function y(){u.value||f.value}function m(D){var P;g.value="",(P=a.value)==null||P.activeRowById(""),n.emit("clear")}function w(D){var P,A;e.enableSearch&&e.enableHighlightSearch&&((P=a.value)==null||P.search(D)),(A=a.value)==null||A.activeRowById(D),n.emit("change",[g.value],g.value)}function T(D){if(e.multiSelect){const P=p(D);e.viewType;const B=P.map(M=>M[e.idField||e.valueField]).join(e.separator);g.value!==B&&(g.value=B,n.emit("update:modelValue",g.value),n.emit("change",P,g.value))}else D!==g.value&&(g.value=D,n.emit("update:modelValue",g.value),n.emit("change",[],D))}function j(){return f.value}function I(D){const{value:P}=D.target;w(P),n.emit("input",P)}function O(){o.value.hidePopup()}function V(D){d.value=D}function S(){return d.value}const E={getDisplayText:j,hidePopup:O,updateDataSource:V,getData:S};return n.expose(E),t.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([D,P,A,B,M])=>{l.value=D,v.value=P,i.value=A,s.value=B,u.value=M}),()=>t.createVNode(me,{ref:o,id:e.id,disable:l.value,readonly:u.value,forcePlaceholder:e.forcePlaceholder,editable:v.value,buttonContent:x.value,placeholder:e.placeholder==="请选择"?q.LocaleService.getLocaleValue("comboList.placeholder"):e.placeholder,enableClear:i.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,multiSelect:e.multiSelect,inputType:e.multiSelect?e.viewType:"text",modelValue:f.value,"onUpdate:modelValue":D=>f.value=D,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,onClear:m,onClick:y,onChange:T,onBlur:F,onInput:I,beforeOpen:b,placement:e.placement,popupMinWidth:e.minPanelWidth,popupClass:"f-combo-list-wrapper",popupOnClick:e.popupOnClick,limitContentBySpace:!0},{default:()=>[t.createVNode(an,{ref:a,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,dataSource:d.value,selectedValues:g.value,separator:e.separator,multiSelect:e.multiSelect,enableSearch:s.value,maxHeight:e.maxHeight,enableHighlightSearch:e.enableHighlightSearch,width:e.fitEditor?c.value:void 0,onSelectionChange:D=>{k(D),h()}},null)]})}}),Qe={convertFrom:(e,n)=>(e.editor.remote||{})[n],convertTo:(e,n,a)=>{e.editor.remote=e.editor.remote||{},e.editor.remote[n]=a}};class ln extends St.InputBaseProperty{constructor(n,a){super(n,a)}getCommonEditorProperties(n){var a,o,l;return{viewType:{visible:!!((a=n.editor)!=null&&a.multiSelect),description:"数据展示类型,有标签和文本两种方式",title:"数据展示类型",type:"enum",editor:{data:[{id:"tag",name:"标签"},{id:"text",name:"文本"}]},refreshPanelAfterChanged:!0},separator:{visible:!!((o=n.editor)!=null&&o.multiSelect)&&((l=n.editor)==null?void 0:l.viewType)==="text",description:"下拉列表启用多选且数据展示类型为文本时的分隔符",title:"分隔符",type:"enum",editor:{data:[{id:",",name:"逗号(,)"},{id:"#",name:"井号(#)"},{id:".",name:"句号(.)"},{id:"|",name:"竖线(|)"}]}},editable:{description:"",title:"允许编辑",type:"boolean",refreshPanelAfterChanged:!0,readonly:!0}}}getEditorProperties(n){var d,f,v,g,p,C,b,x,r,c,h,k;const a=this;let o="";if(((d=n==null?void 0:n.binding)==null?void 0:d.type)==="Form"){const F=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(f=F==null?void 0:F.schemaField)!=null&&f.type&&(o=F.schemaField.type.$type)}const l=this.getPropertyEditorParams(n,["Variable"]),i=!n.editor.dataSourceType||n.editor.dataSourceType==="static",s=((g=(v=this.designViewModelField)==null?void 0:v.type)==null?void 0:g.$type)===G.FormSchemaEntityFieldType$Type.StringType&&((p=n.editor)==null?void 0:p.type)==="combo-list"&&((C=n.editor)==null?void 0:C.dataSourceType)==="dynamic"&&!((x=(b=n.editor)==null?void 0:b.remote)!=null&&x.url)&&!((r=n.editor)!=null&&r.multiSelect);return a.getComponentConfig(n,{type:"combo-list"},{enableClear:{description:"",title:"启用清空",type:"boolean"},dataSourceType:{description:"",title:"数据源类型",type:"enum",editor:{default:"static",data:[{id:"static",name:"静态"},{id:"dynamic",name:"动态"}]},refreshPanelAfterChanged:!0},dataSource:{description:"动态数据源绑定变量",visible:s,title:"数据",editor:{...l,controlName:"",enableClear:!0},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:i,...a.getItemCollectionEditor(n,n.editor.valueField,n.editor.textField),refreshPanelAfterChanged:!0},url:{visible:n.editor.dataSourceType==="dynamic"&&!((c=n.editor)!=null&&c.dataSource),$converter:Qe,description:"",title:"服务端API",type:"string",refreshPanelAfterChanged:!0},body:{visible:!1,$converter:Qe,description:"",title:"服务端API参数",type:"string"},textField:{description:"",title:"数据源显示字段",type:"string",readonly:n.editor.dataSourceType!=="dynamic"},valueField:{description:"",title:"数据源值字段",type:"string",readonly:n.editor.dataSourceType!=="dynamic"},multiSelect:{description:"",title:"启用多选",visible:!o||o==="StringType",readonly:((h=n.editor)==null?void 0:h.dataSourceType)==="dynamic"&&!!((k=n.editor)!=null&&k.dataSource),type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(F,y)=>{if(!F||!y.editor)return;const m=this;switch(F.propertyID){case"dataSourceType":{F.propertyValue==="static"?(y.editor.valueField="value",y.editor.textField="name",y.editor.remote=null):F.propertyValue==="dynamic"&&(y.editor.remote={method:"GET"},y.editor.valueField="value",y.editor.textField="name");break}case"data":{!m.checkEnumDataReadonly(y)&&y.formatter&&(y.formatter.data=[...F.propertyValue]);break}case"viewType":{F.propertyValue==="tag"&&(y.editor.editable=!1);break}case"dataSource":m.afterMutilEditorChanged(y,F)}})}getGridFieldEdtiorProperties(n,a){var d,f,v,g,p,C,b,x,r,c,h,k,F;const o=this;let l="";if(((d=n==null?void 0:n.binding)==null?void 0:d.type)==="Form"){const y=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(f=y==null?void 0:y.schemaField)!=null&&f.type&&(l=y.schemaField.type.$type)}const i=((g=(v=this.designViewModelField)==null?void 0:v.type)==null?void 0:g.$type)===G.FormSchemaEntityFieldType$Type.StringType&&((p=n.editor)==null?void 0:p.type)==="combo-list"&&((C=n.editor)==null?void 0:C.dataSourceType)==="dynamic"&&!((b=n.editor)!=null&&b.multiSelect),s=this.getPropertyEditorParams(n,["Variable"]);return o.getComponentConfig(n,{type:"combo-list"},{enableClear:{description:"",title:"启用清空",type:"boolean"},dataSourceType:{description:"",title:"数据源类型",type:"enum",editor:{default:"static",data:[{id:"static",name:"静态"},{id:"dynamic",name:"动态"}]},refreshPanelAfterChanged:!0},dataSource:{description:"动态数据源绑定变量",visible:i,title:"数据",editor:{...s,controlName:"",enableClear:!0},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:!((x=n.editor)!=null&&x.dataSourceType)||((r=n.editor)==null?void 0:r.dataSourceType)==="static",...o.getItemCollectionEditor(n,(c=n.editor)==null?void 0:c.valueField,(h=n.editor)==null?void 0:h.textField),refreshPanelAfterChanged:!0},textField:{description:"",title:"数据源显示字段",type:"string",readonly:!0},valueField:{description:"",title:"数据源值字段",type:"string",readonly:!0},multiSelect:{description:"",title:"启用多选",visible:l==="StringType",readonly:((k=n.editor)==null?void 0:k.dataSourceType)==="dynamic"&&!!((F=n.editor)!=null&&F.dataSource),type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(y,m)=>{if(!y||!m.editor)return;const w=this;switch(y.propertyID){case"dataSourceType":{y.propertyValue==="static"?(m.editor.valueField="value",m.editor.textField="name",m.editor.remote=null):y.propertyValue==="dynamic"&&(m.editor.remote={method:"GET"},m.editor.valueField="value",m.editor.textField="name");break}case"data":{!w.checkEnumDataReadonly(m)&&m.formatter&&(m.formatter.data=[...y.propertyValue]);break}case"dataSource":w.afterMutilEditorChanged(m,y)}})}setEditorPropertyRelates(n,a,o){if(!n||!a.editor)return;const l=this;switch(n.propertyID){case"dataSourceType":{n.propertyValue==="static"&&(a.editor.valueField="value",a.editor.textField="name",a.editor.remote={});break}case"data":{!l.checkEnumDataReadonly(a)&&a.formatter&&(a.formatter.data=[...n.propertyValue]);break}}}changeBindingField(n,a,o){var i;super.changeBindingField(n,a);const l=o;n.editor&&((i=l==null?void 0:l.type)==null?void 0:i.$type)===G.FormSchemaEntityFieldType$Type.EnumType&&(n.editor.data=l.type.enumValues||[])}getEventPropertyConfig(n,a="card",o,l){const i=this;let s=[{label:"onChange",name:"值变化事件"},{label:"beforeOpen",name:"下拉面板前事件"}];o&&(s=s.concat(o)),this.appendFieldValueChangeEvents(n,s);const u=i.eventsEditorUtils.formProperties(n,i.viewModelId,s);return{title:"事件",hideTitle:!0,properties:i.createBaseEventProperty(u),tabId:"commands",tabName:"交互",setPropertyRelates(v,g){const p=v.propertyValue;delete n[i.viewModelId],p&&(p.setPropertyRelates=this.setPropertyRelates,i.eventsEditorUtils.saveRelatedParameters(n,i.viewModelId,p.events,p)),l&&l(v,g,p);const C=i.designViewModelUtils.getDgViewModel(i.viewModelId);C&&i.designViewModelField&&C.changeField(i.designViewModelField.id,{valueChanging:n.fieldValueChanging,valueChanged:n.fieldValueChanged}),n.editor.beforeOpen!==n.beforeOpen&&(n.editor.beforeOpen=n.beforeOpen),n.editor.onChange!==n.onChange&&(n.editor.onChange=n.onChange),n.editor.onClear!==n.onClear&&(n.editor.onClear=n.onClear)}}}}function rn(e,n){const a=e.schema;function o(l,i){return new ln(l,n).getPropertyConfig(a,i)}return{getPropsConfig:o}}const sn=t.defineComponent({name:"FComboListDesign",props:en,emits:["clear","update:modelValue","change"],setup(e,n){const a=t.ref(),o=t.inject("designer-host-service"),l=t.inject("design-item-context"),i=rn(l,o),s=ye.useDesignerComponent(a,l,i);return t.onMounted(()=>{a.value.componentInstance=s}),n.expose(s.value),()=>t.createVNode(Mt,{ref:a,buttonContent:e.dropDownIcon,readonly:!0,editable:!1,forcePlaceholder:!0,placeholder:e.placeholder,enableClear:!0},null)}});le.register=(e,n,a,o,l)=>{e["combo-list"]=le,n["combo-list"]=Ze(l),o["combo-list"]={callbackResolver:tn}},le.registerDesigner=(e,n,a,o)=>{e["combo-list"]=sn,n["combo-list"]=Ze(o)},G.withInstall(le),G.withInstall(pe);const cn={modelValue:{type:String,default:""},singleExpand:{type:Boolean,default:!0},entities:{type:Array,default:[]},variables:{type:Array,default:[]},disabledFunctions:{type:Object,default:null},esprimaPath:{type:String,default:"assets/esprima-config.json"},showMessage:{type:Boolean,default:!1},validateMessage:{type:String,default:""},messageType:{type:String,default:"info"},showMessageType:{type:Boolean,default:!1},showDataPanel:{type:Boolean,default:!0},isServerSide:{type:Boolean,default:!1}},et=new Map([["appearance",X.resolveAppearance]]);function tt(e,n,a){return n}const un={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/layout.schema.json",title:"layout",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for layout component",type:"string"},type:{description:"The type string of layout component",type:"string",default:"layout"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},contents:{description:"",type:"array",default:[]},collapsable:{description:"",type:"boolean",default:!1},resizable:{description:"",type:"boolean",default:!0},visible:{description:"",type:"boolean",default:!0}},required:["id","type","contents"]},dn={title:"layout",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"类型",title:"类型",type:"string",readonly:!0}}},behavior:{description:"Basic Infomation",title:"行为",properties:{collapsable:{description:"",title:"可收折",type:"boolean"},resizable:{description:"",title:"可调整尺寸",type:"boolean"}}}}},Se={customStyle:{type:String,defaut:""},customClass:{type:String,defaut:""}},nt=X.createPropsResolver(Se,un,et,tt,dn);function at(e){const n=t.ref(-1),a=t.ref(-1),o=t.ref(0),l=t.ref(0),i=t.ref(!1),s=t.ref(!1),u=t.computed(()=>({display:i.value?"block":"none",left:`${o.value}px`,cursor:"e-resize"})),d=t.computed(()=>({display:s.value?"block":"none",top:`${l.value}px`,cursor:"n-resize"})),f=t.computed(()=>{const r={display:s.value||i.value?"block":"none"};return l.value>0&&(r.cursor="n-resize"),r});function v(r,c,h,k){const F=e.value;if(F){const{left:y,right:m,width:w}=F.getBoundingClientRect();let T=r.clientX-y;k==="right"&&(T=m-r.clientX),T>c&&(T=c),T<h&&(T=h),k==="right"&&(T=w-T),o.value=T}}function g(r,c,h,k){const F=e.value;if(F){const{top:y,bottom:m,height:w}=F.getBoundingClientRect();let T=r.clientY-y;k==="bottom"&&(T=m-r.clientY),T>c&&(T=c),T<h&&(T=h),k==="bottom"&&(T=w-T),l.value=T}}function p(){const r=e.value;if(r){const{width:c,height:h}=r.getBoundingClientRect();return{width:c,height:h}}return null}function C(){const r=e.value;return r?Array.from(r.querySelectorAll("[data-position]")).reduce((c,h)=>{const k=h.getAttribute("data-position");return c=Object.assign(c,{[k]:h}),c},{}):null}function b(r,c){const h=p(),k=C();if(h&&k){const F=k==null?void 0:k.right,y=k==null?void 0:k.left;if(r==="left"&&y)return F?h.width-F.clientWidth-c:h.width-c;if(r==="right"&&F)return y?h.width-y.clientWidth-c:h.width-c}}function x(r,c){const h=p(),k=C();if(h&&k){const F=k==null?void 0:k.bottom,y=k==null?void 0:k.top;if(r==="top"&&y)return F?h.height-F.clientHeight-c:h.height-c;if(r==="bottom"&&F)return y?h.height-y.clientHeight-c:h.height-c}}return{horizontalResizeHandleStyle:u,verticalResizeHandleStyle:d,resizeOverlayStyle:f,showHorizontalResizeHandle:i,showVerticalResizeHandle:s,horizontalResizeBarPosition:n,verticalResizeBarPosition:a,verticalResizeHandleOffset:l,horizontalResizeHandleOffset:o,draggingHorizontalResizeHandle:v,draggingVerticalResizeHandle:g,getPanelMaxHeight:x,getPanelMaxWidth:b}}const te=t.defineComponent({name:"FLayout",props:Se,emits:[],setup(e,n){const a=t.ref(),o=at(a),{horizontalResizeHandleStyle:l,verticalResizeHandleStyle:i,resizeOverlayStyle:s}=o;t.provide("layout",{useResizeHandleComposition:o});const u=t.computed(()=>{const f={"f-layout":!0};return G.getCustomClass(f,e==null?void 0:e.customClass)}),d=t.computed(()=>{const f={};return G.getCustomStyle(f,e==null?void 0:e.customStyle)});return()=>t.createVNode("div",{class:u.value,style:d.value,ref:a},[n.slots.default&&n.slots.default(),t.createVNode("div",{class:"f-layout-resize-overlay",style:s.value},null),t.createVNode("div",{class:"f-layout-horizontal-resize-proxy",style:l.value},null),t.createVNode("div",{class:"f-layout-vertical-resize-proxy",style:i.value},null)])}}),fn={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/layout-pane.schema.json",title:"layout-pane",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a layout pane",type:"string"},type:{description:"The type string of layout paney",type:"string",default:"layout-pane"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},collapsable:{description:"",type:"boolean",default:!1},contents:{description:"",type:"array",default:[]},height:{description:"",type:"number"},position:{description:"",type:"string",default:"left",enum:["left","center","right","top","bottom"]},resizeable:{description:"",type:"boolean",default:!0},width:{description:"",type:"number"},visible:{description:"",type:"number",default:!0}},required:["id","type","contents"]},mn={title:"layout-pane",description:"A Farris Container Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"enum"},width:{description:"",type:"number",title:"宽度"},height:{description:"",type:"number",title:"高度"}}},appearance:{title:"样式",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:""},style:{title:"style",type:"string",description:""}}},behavior:{description:"",title:"行为",properties:{collapsable:{description:"",type:"boolean",title:"允许收折"},position:{description:"",type:"enum",title:"位置",editor:{type:"combo-list",data:[{id:"left",name:"左侧"},{id:"center",name:"居中"},{id:"right",name:"右侧"},{id:"top",name:"顶部"},{id:"bottom",name:"底部"}]}},resizeable:{description:"",type:"boolean",title:"允许调整尺寸"},visible:{description:"运行时组件是否可见",type:"boolean",title:"是否可见"}}}}},Te={customClass:{type:String,defaut:""},customStyle:{type:String,defaut:""},width:{type:Number,default:-1},height:{type:Number,default:-1},position:{type:String,default:"left"},visible:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},collapsable:{type:Boolean,default:!1},minWidth:{type:Number,default:100},minHeight:{type:Number,default:100}},ot=X.createPropsResolver(Te,fn,et,tt,mn);function lt(e,n,a,o,l){const{horizontalResizeBarPosition:i,horizontalResizeHandleOffset:s,showHorizontalResizeHandle:u,showVerticalResizeHandle:d,verticalResizeBarPosition:f,verticalResizeHandleOffset:v,draggingHorizontalResizeHandle:g,draggingVerticalResizeHandle:p,getPanelMaxHeight:C,getPanelMaxWidth:b}=l;let x="",r,c,h;function k(m){if((x==="left"||x==="right")&&c){const{left:w}=c.getBoundingClientRect(),{width:T}=r.getBoundingClientRect(),j=m.clientX-w;let I=x==="left"?(T||0)+(j-i.value):(T||0)-(j-i.value);I=a.value>0?Math.max(a.value,I):I;const O=b(x,a.value);O!=null&&(I=O>I?I:O),e.value=I}if((x==="top"||x==="bottom")&&c){const{top:w}=c.getBoundingClientRect(),{height:T}=r.getBoundingClientRect(),j=m.clientY-w;let I=x==="top"?(T||0)+(j-f.value):(T||0)-(j-f.value);I=o.value>0?Math.max(o.value,I):I;const O=C(x,o.value);O!=null&&(I=O>I?I:O),n.value=I}s.value=0,v.value=0,i.value=-1,f.value=-1,u.value=!1,d.value=!1,document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",k),document.body.style.userSelect="",x="",r=null,c=null}function F(m,w,T){if(x=w,r=T,u.value=!0,c=m.composedPath().find(I=>(I.className||"").split(" ")[0]==="f-layout"),c){const{left:I}=c.getBoundingClientRect(),O=m.clientX-I;s.value=O,i.value=O;const V=b(x,a.value)||0;h=S=>g(S,V,a.value,x),document.addEventListener("mousemove",h),document.addEventListener("mouseup",k),document.body.style.userSelect="none"}}function y(m,w,T){if(x=w,r=T,d.value=!0,c=m.composedPath().find(I=>(I.className||"").split(" ")[0]==="f-layout"),c){const{top:I}=c.getBoundingClientRect();v.value=m.clientY-I,f.value=m.clientY-I;const O=C(x,o.value)||0;h=V=>p(V,O,o.value,x),document.addEventListener("mousemove",h),document.addEventListener("mouseup",k),document.body.style.userSelect="none"}}return{onClickHorizontalResizeBar:F,onClickVerticalResizeBar:y}}const ee=t.defineComponent({name:"FLayoutPane",props:Te,emits:[],setup(e,n){const a=t.ref(e.minHeight<=0?100:e.minHeight),o=t.ref(e.minWidth<=0?100:e.minWidth),l=t.ref(e.width<=0?100:e.width),i=t.ref(e.height<=0?100:e.height),s=t.ref(Math.max(a.value,i.value)),u=t.ref(Math.max(o.value,l.value)),d=t.ref(),f=t.ref(e.position),v=t.ref(e.resizable);t.watch(()=>e.resizable,y=>{v.value=y});const g=t.inject("layout"),{useResizeHandleComposition:p}=g,C=lt(u,s,o,a,p),{onClickHorizontalResizeBar:b,onClickVerticalResizeBar:x}=C,r=t.computed(()=>({"f-layout-resize-bar":!0,"f-layout-resize-bar-e":f.value==="left","f-layout-resize-bar-n":f.value==="bottom","f-layout-resize-bar-s":f.value==="top","f-layout-resize-bar-w":f.value==="right"})),c=t.computed(()=>f.value!=="center"&&v.value);function h(y,m){(m==="left"||m==="right")&&b(y,m,d.value),(m==="top"||m==="bottom")&&x(y,m,d.value)}const k=t.computed(()=>{const y={"f-layout-pane":!0,"f-page-content-nav":f.value==="left"||f.value==="right","f-page-content-main":f.value==="center"};return e.customClass&&String(e.customClass).split(" ").reduce((m,w)=>(m[w]=!0,m),y),y}),F=t.computed(()=>{const y={};return(u.value&&f.value==="left"||f.value==="right")&&(y.width=`${u.value}px`),(s.value&&f.value==="bottom"||f.value==="top")&&(y.height=`${s.value}px`),e.visible||(y.display="none"),y});return()=>t.createVNode("div",{ref:d,class:k.value,style:F.value,"data-position":f.value},[n.slots.default&&n.slots.default(),c.value&&t.createVNode("span",{class:r.value,onMousedown:y=>h(y,f.value)},null)])}});function yn(e,n){function a(){return!1}return{canAccepts:a}}const pn=t.defineComponent({name:"FLayoutDesign",props:Se,emits:[],setup(e,n){var v;const a=t.ref(),o=t.inject("design-item-context"),l=yn(o.schema,(v=o.parent)==null?void 0:v.schema),i=ye.useDesignerComponent(a,o,l);i.value.canNested=!1;const s=at(a),{horizontalResizeHandleStyle:u,verticalResizeHandleStyle:d,resizeOverlayStyle:f}=s;return t.provide("layout",{useResizeHandleComposition:s}),t.onMounted(()=>{a.value.componentInstance=i}),n.expose(i.value),()=>t.createVNode("div",{class:"f-layout f-page-content",ref:a},[n.slots.default&&n.slots.default(),t.createVNode("div",{class:"f-layout-resize-overlay",style:f.value},null),t.createVNode("div",{class:"f-layout-horizontal-resize-proxy",style:u.value},null),t.createVNode("div",{class:"f-layout-vertical-resize-proxy",style:d.value},null)])}});function hn(e,n){const a=e.schema;function o(i){return!!ye.useDragulaCommonRule().basalDragulaRuleForContainer(i)}function l(){const i=["f-layout-pane"];return(a.position==="left"||a.position==="right")&&i.push("f-page-content-nav"),a.position==="center"&&i.push("f-page-content-main"),i.join(" ")}return{canAccepts:o,getDesignerClass:l}}const gn=t.defineComponent({name:"FLayoutPaneDesign",props:Te,emits:[],setup(e,n){const a=t.ref(),o=t.ref();t.inject("designer-host-service");const l=t.inject("design-item-context"),i=hn(l),s=ye.useDesignerComponent(o,l,i);s.value.canNested=!1,s.value.canMove=!1,s.value.canDelete=!1,t.onMounted(()=>{o.value.componentInstance=s}),n.expose(s.value);const u=t.ref(Math.max(e.minHeight,e.height)),d=t.ref(Math.max(e.minWidth,e.width)),f=t.ref(e.minHeight),v=t.ref(e.minWidth),g=t.ref(e.position),p=t.inject("layout"),{useResizeHandleComposition:C}=p,b=lt(d,u,v,f,C),{onClickHorizontalResizeBar:x,onClickVerticalResizeBar:r}=b,c=t.computed(()=>({"f-layout-resize-bar":!0,"f-layout-resize-bar-e":g.value==="left","f-layout-resize-bar-n":g.value==="bottom","f-layout-resize-bar-s":g.value==="top","f-layout-resize-bar-w":g.value==="right"}));function h(y,m){(m==="left"||m==="right")&&x(y,m,a.value),(m==="top"||m==="bottom")&&r(y,m,a.value)}const k=t.computed(()=>{const y={"f-layout-pane":!0,"f-page-content-nav":g.value==="left"||g.value==="right","f-page-content-main":g.value==="center"};return e.customClass&&String(e.customClass).split(" ").reduce((m,w)=>(m[w]=!0,m),y),y}),F=t.computed(()=>{const y={flex:"1"};return(d.value&&g.value==="left"||g.value==="right")&&(y.width=`${d.value}px`),(u.value&&g.value==="bottom"||g.value==="top")&&(y.height=`${u.value}px`),y});return()=>t.createVNode("div",{ref:a,class:k.value,style:F.value},[t.createVNode("div",{ref:o,class:"drag-container","data-dragref":`${l.schema.id}-container`},[n.slots.default&&n.slots.default()]),t.createVNode("span",{class:c.value,onMousedown:y=>h(y,g.value)},null)])}});te.install=e=>{e.component(te.name,te),e.component(ee.name,ee)},te.register=(e,n,a,o)=>{e.layout=te,n.layout=nt,e["layout-pane"]=ee,n["layout-pane"]=ot},te.registerDesigner=(e,n,a)=>{e.layout=pn,n.layout=nt,e["layout-pane"]=gn,n["layout-pane"]=ot};const bn={analytical:{name:"数据",items:[{key:"IsNull",name:"是空值",params:[{key:"obj",name:"检测对象",type:"object"}],description:`【功能】判断检测对象是否为空值(null)。检测对象为null返回true,否则返回false
|
|
2
|
+
【参数】
|
|
3
|
+
【obj】检测对象
|
|
4
|
+
【返回值】true或false
|
|
5
|
+
【示例】
|
|
6
|
+
【场景】提交单据Order,单据包含编号code字段
|
|
7
|
+
【需求】判断提交单据的编号是否为null
|
|
8
|
+
【举例】是空值(Order.code)`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"IsNullOrWhiteSpace",name:"是空串",params:[{key:"obj",name:"检测对象",type:"object"}],description:`【功能】判断检测对象是否为null值或空串""。检测对象为null或""返回true,否则返回false
|
|
9
|
+
【参数】
|
|
10
|
+
【obj】检测对象
|
|
11
|
+
【返回值】true或false
|
|
12
|
+
【示例】
|
|
13
|
+
【场景】提交单据Order,单据包含编号code字段
|
|
14
|
+
【需求】判断提交单据的编号是否为null或空串""
|
|
15
|
+
【举例】是空值(Order.code)`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"IsNaN",name:"非数字",params:[{key:"obj",name:"检测对象",type:"object"}],description:`【功能】判断检测对象是否可以转换成数字(Double)。检测对象不能转为数字返回true,否则返回false
|
|
16
|
+
【参数】
|
|
17
|
+
【obj】检测对象
|
|
18
|
+
【返回值】true或false
|
|
19
|
+
【示例】
|
|
20
|
+
【场景】提交单据Order,单据包含单据总额sum字段
|
|
21
|
+
【需求】判断提交单据的单据总额是否为非数字
|
|
22
|
+
【举例】非数字(Order.sum)`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"IsNumber",name:"是数字",params:[{key:"obj",name:"检测对象",type:"object"}],description:`【功能】判断检测对象是否可以转换成数字(Double)。检测对象能转为数字返回true,否则返回false
|
|
23
|
+
【参数】
|
|
24
|
+
【obj】检测对象
|
|
25
|
+
【返回值】true或false
|
|
26
|
+
【示例】
|
|
27
|
+
【场景】提交单据Order,单据包含单据总额sum字段
|
|
28
|
+
【需求】判断提交单据的单据总额是否是数字
|
|
29
|
+
【举例】是数字(Order.sum)`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"ExistData",name:"子表有无数据",params:[{key:"table",name:"主表.子表",type:"string"}],description:`【功能】判断子表中有没有数据。有数据返回true,无数据返回false(参数用""包起来)
|
|
30
|
+
【参数】
|
|
31
|
+
【table】主表.子表(链式结构)
|
|
32
|
+
【返回值】true或false
|
|
33
|
+
【示例】
|
|
34
|
+
【场景】提交单据Order,单据包含差旅明细子表trips
|
|
35
|
+
【需求】判断差旅明细子表是否有数据
|
|
36
|
+
【举例】子表有无数据("Order.trips")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"CountOfChild",name:"子表数据数量",params:[{key:"table",name:"主表.子表",type:"string"}],description:`【功能】返回子表数据的数量(参数用""包起来)
|
|
37
|
+
【参数】
|
|
38
|
+
【table】主表.子表(链式结构)
|
|
39
|
+
【返回值】数量(数值类型)
|
|
40
|
+
【示例】
|
|
41
|
+
【场景】提交单据Order,单据包含差旅明细子表trips
|
|
42
|
+
【需求】获取差旅明细子表的数量
|
|
43
|
+
【举例】子表数据数量("Order.trips")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"SortChildData",name:"子表数据排序",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表排序字段",type:"string"},{key:"order",name:"排序方式",type:"string"}],description:`【功能】对子表数据进行排序(参数用""包起来)
|
|
44
|
+
【参数】
|
|
45
|
+
【table】主表.子表(链式结构)
|
|
46
|
+
【property】子表字段(字段类型应为数字类型)
|
|
47
|
+
【order】排序方式("ESC"表示正序从小到大,"DESC"表示倒序从大到小)
|
|
48
|
+
【返回值】无
|
|
49
|
+
【示例】
|
|
50
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段
|
|
51
|
+
【需求】按照出差费用money字段对差旅明细从小到大排序
|
|
52
|
+
【举例】子表数据排序("Order.trips","money","ESC")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"IncludedInList",name:"是否在列表中",params:[{key:"property",name:"字段",type:"object"},{key:"list",name:"数据列表",type:"list"}],description:`【功能】:判断字段是否在数据列表中存在。字段在列表中存在返回true,不存在返回false。支持判断字符和数字类型
|
|
53
|
+
【参数】
|
|
54
|
+
【property】字段
|
|
55
|
+
【list】数据列表
|
|
56
|
+
【返回值】true或false
|
|
57
|
+
【示例】是否在列表中(Order.name,["Zs","Ls"])
|
|
58
|
+
【示例】是否在列表中(Order.quantity,[100,200])`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"CountByProp",name:"子表列非空数",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"}],description:`【功能】:统计子表某字段不为null的数据数量(参数用""包起来)
|
|
59
|
+
【参数】
|
|
60
|
+
【table】主表.子表(链式结构)
|
|
61
|
+
【property】子表字段
|
|
62
|
+
【返回值】子表字段不为null的数量(数值类型)
|
|
63
|
+
【示例】
|
|
64
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差方式way字段
|
|
65
|
+
【需求】统计差旅明细子表trips中出差方式way不为空的数据数量
|
|
66
|
+
【举例】子表列非空数("Order.trips","way")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"SumByProp",name:"子表字段求和",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"}],description:`【功能】求和子表某字段(参数用""包起来)
|
|
67
|
+
【参数】
|
|
68
|
+
【table】主表.子表(链式结构)
|
|
69
|
+
【property】子表字段(数值类型)
|
|
70
|
+
【返回值】子表某字段的和(数值类型)
|
|
71
|
+
【示例】
|
|
72
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段
|
|
73
|
+
【需求】对差旅明细子表trips的出差费用money字段求和
|
|
74
|
+
【举例】子表字段求和("Order.trips","money")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"AvgByProp",name:"子表列平均值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"}],description:`【功能】求子表某字段的平均值(参数用""包起来)
|
|
75
|
+
【参数】
|
|
76
|
+
【table】主表.子表(链式结构)
|
|
77
|
+
【property】子表字段(数值类型)
|
|
78
|
+
【返回值】子表某字段的平均值(数值类型)
|
|
79
|
+
【示例】
|
|
80
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段
|
|
81
|
+
【需求】获取差旅明细子表trips的出差费用money的平均值
|
|
82
|
+
【举例】子表列平均值("Order.trips","money")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"MaxByProp",name:"子表列最大值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"}],description:`【功能】求子表某字段的最大值(参数用""包起来)
|
|
83
|
+
【参数】
|
|
84
|
+
【table】主表.子表(链式结构)
|
|
85
|
+
【property】子表字段(数值类型)
|
|
86
|
+
【返回值】子表某字段的最大值(数值类型)
|
|
87
|
+
【示例】
|
|
88
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段
|
|
89
|
+
【需求】获取差旅明细子表trips的出差费用money的最大值
|
|
90
|
+
【举例】子表列最大值("Order.trips","money")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"MinByProp",name:"子表列最小值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"}],description:`【功能】求子表某字段的最小值(参数用""包起来)
|
|
91
|
+
【参数】
|
|
92
|
+
【table】主表.子表(链式结构)
|
|
93
|
+
【property】子表字段(数值类型)
|
|
94
|
+
【返回值】子表某字段的最小值(数值类型)
|
|
95
|
+
【示例】
|
|
96
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段
|
|
97
|
+
【需求】获取差旅明细子表trips的出差费用money的最小值
|
|
98
|
+
【举例】子表列最小值("Order.trips","money")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"IsExistRecord",name:"子表有无等于匹配值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"},{key:"match",name:"匹配值",type:"string"}],description:`【功能】判断子表某字段是否存在等于匹配值的数据(参数用""包起来)
|
|
99
|
+
【参数】
|
|
100
|
+
【table】主表.子表(链式结构)
|
|
101
|
+
【property】子表字段
|
|
102
|
+
【match】匹配值
|
|
103
|
+
【返回值】true或false
|
|
104
|
+
【示例】
|
|
105
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差方式way
|
|
106
|
+
【需求】判断差旅明细子表trips是否存在出差方式way等于'火车'的数据
|
|
107
|
+
【举例】子表有无等于匹配值("Order.trips","way","火车")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"IsContainMatch",name:"子表有无包含匹配值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"},{key:"match",name:"匹配值",type:"string"}],description:`【功能】判断子表某字段是否存在包含匹配值的数据(参数用""包起来)
|
|
108
|
+
【参数】
|
|
109
|
+
【table】主表.子表(链式结构)
|
|
110
|
+
【property】子表字段
|
|
111
|
+
【match】匹配值
|
|
112
|
+
【返回值】true或false
|
|
113
|
+
【示例】
|
|
114
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差方式way
|
|
115
|
+
【需求】判断差旅明细子表trips是否存在出差方式way包含匹配值'飞机'的数据
|
|
116
|
+
【举例】子表有无包含匹配值("Order.trips","way","飞机")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"ListGreaterThan",name:"子表有无大于匹配值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"},{key:"match",name:"匹配值",type:"double"}],description:`【功能】判断子表某字段是否存在大于匹配值的数据(参数用""包起来)
|
|
117
|
+
【参数】
|
|
118
|
+
【table】主表.子表(链式结构)
|
|
119
|
+
【property】子表字段(数值类型)
|
|
120
|
+
【match】匹配值
|
|
121
|
+
【返回值】true或false
|
|
122
|
+
【示例】
|
|
123
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差距离distance
|
|
124
|
+
【需求】判断差旅明细子表trips是否存在出差距离distance大于1000的数据
|
|
125
|
+
【举例】子表有无大于匹配值("Order.trips","distance",1000)`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"ListLessThan",name:"子表有无小于匹配值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"},{key:"match",name:"匹配值",type:"double"}],description:`【功能】判断子表某字段是否存在小于匹配值的数据(参数用""包起来)
|
|
126
|
+
【参数】
|
|
127
|
+
【table】主表.子表(链式结构)
|
|
128
|
+
【property】子表字段(数值类型)
|
|
129
|
+
【match】匹配值
|
|
130
|
+
【返回值】true或false
|
|
131
|
+
【示例】
|
|
132
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差距离distance
|
|
133
|
+
【需求】判断差旅明细子表trips是否存在出差距离distance小于10的数据
|
|
134
|
+
【举例】子表有无小于匹配值("Order.trips","distance",10)`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"ListStartWith",name:"子表有无以匹配值开头",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"},{key:"match",name:"匹配值",type:"string"}],description:`【功能】判断子表某字段有无开头是匹配值的数据(参数用""包起来)
|
|
135
|
+
【参数】
|
|
136
|
+
【table】主表.子表(链式结构)
|
|
137
|
+
【property】子表字段
|
|
138
|
+
【match】匹配值
|
|
139
|
+
【返回值】true或false
|
|
140
|
+
【示例】
|
|
141
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含编号code字段
|
|
142
|
+
【需求】判断差旅明细子表trips是否存在编号code字段以'0001'开头的数据
|
|
143
|
+
【举例】子表有无以匹配值开头("Order.trips","code","0001")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"ListEndWith",name:"子表有无以匹配值结尾",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"},{key:"match",name:"匹配值",type:"string"}],description:`【功能】判断子表某字段有无结尾是匹配值的数据(参数用""包起来)
|
|
144
|
+
【参数】
|
|
145
|
+
【table】主表.子表(链式结构)
|
|
146
|
+
【property】子表字段
|
|
147
|
+
【match】匹配值
|
|
148
|
+
【返回值】true或false
|
|
149
|
+
【示例】
|
|
150
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含编号code字段
|
|
151
|
+
【需求】判断差旅明细子表trips是否存在编号code字段以'0002'结尾的数据
|
|
152
|
+
【举例】子表有无以匹配值结尾("Order.trips","code","0002")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"GetComputeJsonData",name:"子表字段取JSON串",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"}],description:`【功能】判断子表某字段有无结尾是匹配值的数据(参数用""包起来)
|
|
153
|
+
【参数】
|
|
154
|
+
【table】主表.子表(链式结构)
|
|
155
|
+
【property】子表字段
|
|
156
|
+
【返回值】子表某字段的JSON格式
|
|
157
|
+
【示例】
|
|
158
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含编号code字段
|
|
159
|
+
【需求】将差旅明细子表trips编号code字段用一个列表统计数据,并返回序列化后的值
|
|
160
|
+
【举例】子表字段取JSON串("Order.trips","code")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"MultiplyChildNumber",name:"子表属性乘积求和",params:[{key:"table",name:"主表.子表",type:"string"},{key:"prop1",name:"属性一",type:"string"},{key:"prop2",name:"属性二",type:"string"}],description:`【功能】对子表的两个数字类型属性,先做乘积,然后求和(参数用""包起来)
|
|
161
|
+
【参数】
|
|
162
|
+
【table】主表.子表(链式结构)
|
|
163
|
+
【prop1】属性一(数值类型)
|
|
164
|
+
【prop2】属性二(数值类型)
|
|
165
|
+
【返回值】求和值(数值类型)
|
|
166
|
+
【示例】
|
|
167
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差天数days、出差费用money
|
|
168
|
+
【需求】获取差旅明细的总费用,即子表出差天数*出差费用的总和
|
|
169
|
+
【举例】子表属性乘积求和("Order.trips","days","money")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"MinValueOfPeriod",name:"时间范围内取最小值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"timeProp",name:"比较时间字段",type:"string"},{key:"valueProp",name:"取值字段",type:"string"},{key:"startTime",name:"起始时间",type:"string"},{key:"endTime",name:"结束时间",type:"string"}],description:`【功能】在指定时间范围内,取子表某字段的最小值(参数用""包起来)
|
|
170
|
+
【参数】
|
|
171
|
+
【table】主表.子表(链式结构)
|
|
172
|
+
【timeProp】比较时间字段(字段类型应为时间类型)
|
|
173
|
+
【valueProp】取值字段(字段类型应为数字类型)
|
|
174
|
+
【startTime】起始时间(支持'yyyy-MM-dd' 或 'yyyy-MM-dd hh:mm:ss')
|
|
175
|
+
【endTime】结束时间(支持'yyyy-MM-dd' 或 'yyyy-MM-dd hh:mm:ss')
|
|
176
|
+
【返回值】时间范围内,子表某字段的最小值
|
|
177
|
+
【示例】
|
|
178
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段,出差日期date字段
|
|
179
|
+
【需求】获取2022-10-01到2022-10-07时间段内,哪一天的出差费用money最小
|
|
180
|
+
【举例】时间范围内取最小值("Order.trips","date","money","2022-10-01","2022-10-07")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"MaxValueOfPeriod",name:"时间范围内取最大值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"timeProp",name:"比较时间字段",type:"string"},{key:"valueProp",name:"取值字段",type:"string"},{key:"startTime",name:"起始时间",type:"string"},{key:"endTime",name:"结束时间",type:"string"}],description:`【功能】在指定时间范围内,取子表某字段的最大值(参数用""包起来)
|
|
181
|
+
【参数】
|
|
182
|
+
【table】主表.子表(链式结构)
|
|
183
|
+
【timeProp】比较时间字段(字段类型应为时间类型)
|
|
184
|
+
【valueProp】取值字段(字段类型应为数字类型)
|
|
185
|
+
【startTime】起始时间(支持'yyyy-MM-dd' 或 'yyyy-MM-dd hh:mm:ss')
|
|
186
|
+
【endTime】结束时间(支持'yyyy-MM-dd' 或 'yyyy-MM-dd hh:mm:ss')
|
|
187
|
+
【返回值】时间范围内,子表某字段的最大值
|
|
188
|
+
【示例】
|
|
189
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段,出差日期date字段
|
|
190
|
+
【需求】获取2022-10-01到2022-10-07时间段内,哪一天的出差费用money最大
|
|
191
|
+
【举例】时间范围内取最大值("Order.trips","date","money","2022-10-01","2022-10-07")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"AvgValueOfPeriod",name:"时间范围内取平均值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"timeProp",name:"比较时间字段",type:"string"},{key:"valueProp",name:"取值字段",type:"string"},{key:"startTime",name:"起始时间",type:"string"},{key:"endTime",name:"结束时间",type:"string"}],description:`【功能】在指定时间范围内,取子表某字段的平均值(所有参数用""包起来)
|
|
192
|
+
【参数】
|
|
193
|
+
【table】主表.子表(链式结构)
|
|
194
|
+
【timeProp】比较时间字段(字段类型应为时间类型)
|
|
195
|
+
【valueProp】取值字段(字段类型应为数字类型)
|
|
196
|
+
【startTime】起始时间(支持'yyyy-MM-dd' 或 'yyyy-MM-dd hh:mm:ss')
|
|
197
|
+
【endTime】结束时间(支持'yyyy-MM-dd' 或 'yyyy-MM-dd hh:mm:ss')
|
|
198
|
+
【返回值】时间范围内,子表某字段的平均值
|
|
199
|
+
【示例】
|
|
200
|
+
【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段,出差日期date字段
|
|
201
|
+
【需求】获取2022-10-01到2022-10-07时间段内,平均的出差费用money是多少
|
|
202
|
+
【举例】时间范围内取平均值("Order.trips","date","money","2022-10-01","2022-10-07")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"GetSessionValue",name:"获取会话变量",params:[{key:"name",name:"名称",type:"string"}],description:`【功能】获取用户会话变量的值
|
|
203
|
+
【参数】
|
|
204
|
+
【name】会话变量名
|
|
205
|
+
【返回值】对象(object)
|
|
206
|
+
【示例】
|
|
207
|
+
【举例】获取会话变量("会话变量一")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"GetContextParameter",name:"获取上下文变量",params:[{key:"name",name:"名称",type:"string"}],description:`【功能】获取上下文变量的值
|
|
208
|
+
【参数】
|
|
209
|
+
【name】上下文变量名
|
|
210
|
+
【返回值】对象(object)
|
|
211
|
+
【示例】
|
|
212
|
+
【举例】获取上下文变量("上下文变量一")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"GetInjectedEntity",name:"根据注入名获取注入对象",params:[{key:"name",name:"注入名",type:"string"}],description:`【功能】获取运行时注入对象的实际对象(参数用""包起来),不支持获取属性
|
|
213
|
+
【参数】
|
|
214
|
+
【name】注入名
|
|
215
|
+
【返回值】对象(object)
|
|
216
|
+
【示例】
|
|
217
|
+
【举例】根据注入名获取注入对象("注入名")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"GetChainedPropertyValue",name:"根据属性名获取属性值",params:[{key:"property",name:"属性名",type:"string"}],description:`【功能】:获取运行时注入属性的实际值(参数用""包起来)
|
|
218
|
+
【参数】
|
|
219
|
+
【property】属性名
|
|
220
|
+
【返回值】对象(object)
|
|
221
|
+
【示例】
|
|
222
|
+
【举例】根据属性名获取属性值("属性名")`,type:"Analytical",keyFront:"DefaultFunction",className:""}]},datetime:{name:"时间",items:[{key:"DayDifference",name:"天数差",params:[{key:"date1",name:"时间一",type:"obj"},{key:"date2",name:"时间二",type:"obj"}],description:`【功能】计算两个时间的天数差,计算时以年月日为准,自动忽略时分秒。时间一若早于时间二,返回正数;若晚于时间二,返回负数
|
|
223
|
+
【参数】
|
|
224
|
+
【date1】时间一
|
|
225
|
+
【date2】时间二
|
|
226
|
+
【返回值】两个日期的天数差
|
|
227
|
+
【示例】
|
|
228
|
+
【示例一】天数差("2024-01-01","2024-01-11")
|
|
229
|
+
【返回值】10
|
|
230
|
+
【示例一】天数差("2024-01-11","2024-01-01")
|
|
231
|
+
【返回值】-10`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"DateTimeAddDays",name:"增加天数",params:[{key:"date",name:"日期时间",type:"string"},{key:"value",name:"增加天数",type:"int"}],description:`【功能】:在指定日期时间上增加指定天数
|
|
232
|
+
【返回值类型】:日期时间(DateTime)
|
|
233
|
+
【示例】:增加天数("2019-01-30T10:00:00+08:00",2)【返回值】:2019-02-01T10:00+08:00`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"DateTimeAddYears",name:"增加年数",params:[{key:"date",name:"日期时间",type:"string"},{key:"value",name:"增加年数",type:"int"}],description:`【功能】:在指定日期时间上增加指定年数
|
|
234
|
+
【返回值类型】:日期时间(DateTime)
|
|
235
|
+
【示例】:增加年数("2019-01-30T10:00:00+08:00",2)【返回值】:2021-01-30T10:00+08:00`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"DateTimeAddMonths",name:"增加月数",params:[{key:"date",name:"日期时间",type:"string"},{key:"value",name:"增加月数",type:"int"}],description:`【功能】:在指定日期时间上增加指定的月数
|
|
236
|
+
【返回值类型】:日期时间(DateTime)
|
|
237
|
+
【示例】:增加月数("2019-01-30T10:00:00+08:00",1)【返回值】:2019-02-28T10:00+08:00`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"GetFirstDayOfMonth",name:"日期所在月第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:获取指定日期时间所在月的第一天的日期
|
|
238
|
+
【返回值类型】:日期时间(DateTime)
|
|
239
|
+
【示例】:日期所在月第一天("2019-01-30T10:00:00+08:00")【返回值】:2019-01-01`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"GetLastDayOfMonth",name:"日期所在月最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:获取指定日期时间所在月的最后一天的日期
|
|
240
|
+
【返回值类型】:日期时间(DateTime)
|
|
241
|
+
【示例】:日期所在月最后一天("2019-01-30T10:00:00+08:00")【返回值】:2019-01-31`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"GetDateTimeNow",name:"当前日期时间",params:[],description:`【功能】:获取当前的日期时间
|
|
242
|
+
【返回值类型】:日期时间(DateTime)
|
|
243
|
+
【示例】:当前日期时间()【返回值】:2019-01-30T12:00:00.000+08:00`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"CompareDate",name:"比较两个时间",params:[{key:"date1",name:"日期时间一",type:"string"},{key:"date2",name:"日期时间二",type:"string"}],description:`【功能】:比较两个时间值,并返回一个整数
|
|
244
|
+
【返回值类型】:数值(int32)日期1早于日期2,返回-1;日期1等于日期2,返回0;日期1晚于日期2,返回1
|
|
245
|
+
【示例】:比较两个时间("2019-01-30T10:00:00+08:00","2019-02-01T10:00:00+08:00")【返回值】:-1`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FormatDate",name:"格式化当前日期",params:[{key:"format",name:"格式",type:"string"}],description:`【功能】:使用指定的格式将当前日期时间值转换为其等效的字符串表示形式
|
|
246
|
+
【返回值类型】:字符串(String)
|
|
247
|
+
【示例】:格式化当前日期("yyyy-MM-dd HH:mm:ss")【返回值】:"2019-01-30 01:00:00"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FormatDefineDate",name:"格式化指定日期",params:[{key:"format",name:"格式",type:"string"},{key:"date",name:"日期时间",type:"string"}],description:`【功能】:使用指定的格式将指定的日期时间值转换为其等效的字符串表示形式
|
|
248
|
+
【返回值类型】:字符串(String)
|
|
249
|
+
【示例】:格式化指定日期("yyyy-MM-dd HH:mm:ss","2019-01-30 01:00:00")【返回值】:"2019-01-30 01:00:00"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"Today",name:"今天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的今天,格式为"yyyy-MM-dd"形式,无参数则默认返回当前日期的今天
|
|
250
|
+
【返回值类型】:字符串(String)
|
|
251
|
+
【示例】:今天("2019-01-30T10:00:00+08:00")【返回值】:"2019-01-30"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"Yesterday",name:"昨天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的昨天,格式为"yyyy-MM-dd"形式,无参数则默认返回当前日期的昨天
|
|
252
|
+
【返回值类型】:字符串(String)
|
|
253
|
+
【示例】:昨天("2019-01-30T10:00:00+08:00")【返回值】:"2019-01-29"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"Tomorrow",name:"明天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的明天,格式为"yyyy-MM-dd"形式,无参数则默认返回当前日期的明天
|
|
254
|
+
【返回值类型】:字符串(String)
|
|
255
|
+
【示例】:明天("2019-01-30T10:00:00+08:00")【返回值】:"2019-01-31"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"ThisYear",name:"本年",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本年,格式为"yyyy"形式,无参数则默认返回当前日期的本年
|
|
256
|
+
【返回值类型】:字符串(String)
|
|
257
|
+
【示例】:本年("2019-01-30T10:00:00+08:00")【返回值】:"2019"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastYear",name:"去年",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的去年,格式为"yyyy"形式,无参数则默认返回当前日期的去年
|
|
258
|
+
【返回值类型】:字符串(String)
|
|
259
|
+
【示例】:去年("2019-01-30T10:00:00+08:00")【返回值】:"2018"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"NextYear",name:"明年",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的明年,格式为"yyyy"形式,无参数则默认返回当前日期的明年
|
|
260
|
+
【返回值类型】:字符串(String)
|
|
261
|
+
【示例】:明年("2019-01-30T01:00:00+08:00")【返回值】:"2020"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"ThisMonth",name:"本月",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本月,格式为"MM"形式,无参数则默认返回当前日期的本月
|
|
262
|
+
【返回值类型】:字符串(String)
|
|
263
|
+
【示例】:本月("2019-01-30T01:00:00+08:00")【返回值】:"1"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastMonth",name:"上月",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上月,格式为"MM"形式,无参数则默认返回当前日期的上月
|
|
264
|
+
【返回值类型】:字符串(String)
|
|
265
|
+
【示例】:上月("2019-02-30 01:00:00")【返回值】:"1"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"NextMonth",name:"下月",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下月,格式为"MM"形式,无参数则默认返回当前日期的下月
|
|
266
|
+
【返回值类型】:字符串(String)
|
|
267
|
+
【示例】:下月("2019-01-30T01:00:00+08:00")【返回值】:"2"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"ThisWeek",name:"本周",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期在本年的第几周,格式为"ww"形式,无参数则默认返回当前日期在本年的第几周
|
|
268
|
+
【返回值类型】:字符串(String)
|
|
269
|
+
【示例】:本周("2019-01-30T01:00:00+08:00")【返回值】:"5"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastWeek",name:"上周",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上周,格式为"ww"形式,无参数则默认返回当前日期的上周
|
|
270
|
+
【返回值类型】:字符串(String)
|
|
271
|
+
【示例】:上周("2019-01-30T01:00:00+08:00")【返回值】:"4"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"NextWeek",name:"下周",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下周,格式为"ww"形式,无参数则默认返回当前日期的下周
|
|
272
|
+
【返回值类型】:字符串(String)
|
|
273
|
+
【示例】:下周("2019-01-30T01:00:00+08:00")【返回值】:"6"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"DayOfWeek",name:"星期几",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期是本周的星期几,格式为"n",无参数则默认返回当前日期是本周的星期几
|
|
274
|
+
【返回值类型】:字符串(String)
|
|
275
|
+
【示例】:星期几("2019-01-30T01:00:00+08:00")【返回值】:"3"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfWeek",name:"本周第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本周第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的本周第一天
|
|
276
|
+
【返回值类型】:字符串(String)
|
|
277
|
+
【示例】:本周第一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-01-28"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfWeek",name:"本周最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本周最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的本周第一天
|
|
278
|
+
【返回值类型】:字符串(String)
|
|
279
|
+
【示例】:本周最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-02-03"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfLastWeek",name:"上周第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上周第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的上周第一天
|
|
280
|
+
【返回值类型】:字符串(String)
|
|
281
|
+
【示例】:上周第一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-01-21"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfLastWeek",name:"上周最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上周最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的上周最后一天
|
|
282
|
+
【返回值类型】:字符串(System.String)
|
|
283
|
+
【示例】:上周最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-01-27"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfNextWeek",name:"下周第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下周第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的下周第一天
|
|
284
|
+
【返回值类型】:字符串(String)
|
|
285
|
+
【示例】:下周第一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-02-04"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfNextWeek",name:"下周最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下周最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的下周最后一天
|
|
286
|
+
【返回值类型】:字符串(String)
|
|
287
|
+
【示例】:下周最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-02-10"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfMonth",name:"本月第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本月第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的本月第一天
|
|
288
|
+
【返回值类型】:字符串(String)
|
|
289
|
+
【示例】:本月第一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-01-01"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfMonth",name:"本月最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本月最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的本月最后一天
|
|
290
|
+
【返回值类型】:字符串(String)
|
|
291
|
+
【示例】:本月最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-01-31"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfLastMonth",name:"上月第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上月第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的上月第一天
|
|
292
|
+
【返回值类型】:字符串(String)
|
|
293
|
+
【示例】:上月第一天("2019-01-30T01:00:00+08:00")【返回值】:"2018-12-01"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfLastMonth",name:"上月最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上月最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的上月最后一天
|
|
294
|
+
【返回值类型】:字符串(String)
|
|
295
|
+
【示例】:上月最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2018-12-31"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfNextMonth",name:"下月第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下月第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的下月第一天
|
|
296
|
+
【返回值类型】:字符串(String)
|
|
297
|
+
【示例】:下月第一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-02-01"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfNextMonth",name:"下月最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下月最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的下月最后一天
|
|
298
|
+
【返回值类型】:字符串(String)
|
|
299
|
+
【示例】:下月最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-02-28"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfYear",name:"本年第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本年第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的本年第一天
|
|
300
|
+
【返回值类型】:字符串(String)
|
|
301
|
+
【示例】:本年第一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-01-01"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfYear",name:"本年最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本年最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的本年最后一天
|
|
302
|
+
【返回值类型】:字符串(String)
|
|
303
|
+
【示例】:本年最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-12-31"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfLastYear",name:"上年第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上年第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的上年第一天
|
|
304
|
+
【返回值类型】:字符串(String)
|
|
305
|
+
【示例】:上年第一天("2019-01-30T01:00:00+08:00")【返回值】:"2018-01-01"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfLastYear",name:"上年最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上年最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的上年最后一天
|
|
306
|
+
【返回值类型】:字符串(String)
|
|
307
|
+
【示例】:上年最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2018-12-31"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfNextYear",name:"下年第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下年第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的下年第一天
|
|
308
|
+
【返回值类型】:字符串(String)
|
|
309
|
+
【示例】:下年第一天("2019-01-30T01:00:00+08:00")【返回值】:"2020-01-01"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfNextYear",name:"下年最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下年最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的下年最后一天
|
|
310
|
+
【返回值类型】:字符串(String)
|
|
311
|
+
【示例】:下年最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2020-12-31"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"GetDate",name:"返回指定格式的日期",params:[{key:"format",name:"格式",type:"string"},{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定形式的日期,无参数则默认返回当前日期的指定格式日期
|
|
312
|
+
【返回值类型】:字符串(String)
|
|
313
|
+
DD:今天 LD:昨天 ND:明天 YY:本年 LY:上年 NY:下年 MM:本月 LM:上月 NM:下月
|
|
314
|
+
WD:星期几 WW:本周 LW:上周 NW:下周 FDW:本周首日 LDW:本周尾日
|
|
315
|
+
FDLW:上周首日 LDLW:上周尾日 FDNW:下周首日 LDNW:下周尾日
|
|
316
|
+
FDM:本月首日 LDM:本月尾日 FDLM:上月首日 LDLM:上月尾日 FDNM:下月首日 LDNM:下月尾日
|
|
317
|
+
FDY:本年首日 LDY:本年尾日 FDLY:上年首日 LDLY:上年尾日 FDNY:下年首日 LDNY:下年尾日
|
|
318
|
+
【示例】:返回指定格式的日期("LD","2019-01-30T01:00:00+08:00")【返回值】:"2019-01-29"`,type:"DateTime",keyFront:"DefaultFunction",className:""}]},string:{name:"字符",items:[{key:"SubString",name:"取子字符串",params:[{key:"data",name:"字符串",type:"str"},{key:"start",name:"起始位置",type:"int"},{key:"length",name:"长度",type:"int"}],description:`【功能】:从字符串中指定位置开始,截取指定长度的字符串并返回
|
|
319
|
+
【返回值类型】:字符串(String)
|
|
320
|
+
【示例】:取子字符串("ABCDEFG",2,3)【返回值】:"CDE"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"Length",name:"取字符串长度",params:[{key:"data",name:"字符串",type:"str"}],description:`【功能】:获取字符串的长度
|
|
321
|
+
【返回值类型】:数值(Int32)
|
|
322
|
+
【示例】:取字符串长度("ABCDEF")【返回值】:6`,type:"String",keyFront:"DefaultFunction",className:""},{key:"Contains",name:"是否包含",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:判断字符串中是否包含目标字符串
|
|
323
|
+
【返回值类型】:布尔(Boolean)
|
|
324
|
+
【示例】:是否包含(salesorder.code,"表达式")【返回值】:false`,type:"String",keyFront:"DefaultFunction",className:""},{key:"NotContains",name:"是否不包含",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:判断字符串中是否不包含目标字符串
|
|
325
|
+
【返回值类型】:布尔(Boolean)
|
|
326
|
+
【示例】:是否不包含(salesorder.code,"表达式")【返回值】:true`,type:"String",keyFront:"DefaultFunction",className:""},{key:"StartsWith",name:"开头是",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:判断字符串是否以目标字符串开头
|
|
327
|
+
【返回值类型】:布尔(Boolean)
|
|
328
|
+
【示例】:开头是(salesorder.code,"表达式")【返回值】:false`,type:"String",keyFront:"DefaultFunction",className:""},{key:"NotStartsWith",name:"开头不是",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:判断字符串是否不以目标字符串开头
|
|
329
|
+
【返回值类型】:布尔(Boolean)
|
|
330
|
+
【示例】:开头不是(salesorder.code,"表达式")【返回值】:true`,type:"String",keyFront:"DefaultFunction",className:""},{key:"EndsWith",name:"结尾是",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:判断字符串是否以目标字符串结尾
|
|
331
|
+
【返回值类型】:布尔(Boolean)
|
|
332
|
+
【示例】:结尾是(salesorder.code,"表达式")【返回值】:false`,type:"String",keyFront:"DefaultFunction",className:""},{key:"NotEndsWith",name:"结尾不是",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:判断字符串是否不以目标字符串结尾
|
|
333
|
+
【返回值类型】:布尔(Boolean)
|
|
334
|
+
【示例】:结尾不是(salesorder.code,"表达式")【返回值】:false`,type:"String",keyFront:"DefaultFunction",className:""},{key:"Replace",name:"字符串替换",params:[{key:"data",name:"字符串",type:"str"},{key:"oldVal",name:"被替换值",type:"str"},{key:"newVal",name:"替换值",type:"str"}],description:`【功能】:将字符串中的"被替换值"替换为"替换值"
|
|
335
|
+
【返回值类型】:字符串(String)
|
|
336
|
+
【示例】:字符串替换("123412","12","00")【返回值】:"003400"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"ToUpper",name:"转大写",params:[{key:"data",name:"字符串",type:"str"}],description:`【功能】:将字符串转换为大写
|
|
337
|
+
【返回值类型】:字符串(String)
|
|
338
|
+
【示例】:转大写("abc")【返回值】:"ABC"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"ToLower",name:"转小写",params:[{key:"data",name:"字符串",type:"str"}],description:`【功能】:将字符串转换为小写
|
|
339
|
+
【返回值类型】:字符串(String)
|
|
340
|
+
【示例】:转小写("ABC")【返回值】:"abc"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"IndexOf",name:"首个匹配字符索引",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:在字符串中检索目标字符串,找到首个匹配的字符串并返回索引位置(从0开始)。如果未找到则返回-1,如果目标字符串为空则返回0,如果原字符串为null则返回-1
|
|
341
|
+
【返回值类型】:数值(Int32)
|
|
342
|
+
【示例】:首个匹配字符索引("12001234012","01")【返回值】:3
|
|
343
|
+
【示例】:首个匹配字符索引("12002323","34")【返回值】:-1
|
|
344
|
+
【示例】:首个匹配字符索引("120011","")【返回值】:0`,type:"String",keyFront:"DefaultFunction",className:""},{key:"LastIndexOf",name:"最后匹配字符索引",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:在字符串中检索目标字符串,找到最后一个匹配的字符串后返回索引位置(从0开始)。如果未找到则返回-1,如果目标字符串为空串则返回原字符串长度,如果原字符串为null则返回-1
|
|
345
|
+
【返回值类型】:数值(Int32)
|
|
346
|
+
【示例】:最后匹配字符索引("12001234012","01")【返回值】:8
|
|
347
|
+
【示例】:最后匹配字符索引("12002323","34")【返回值】:-1
|
|
348
|
+
【示例】:最后匹配字符索引("120011","")【返回值】:6`,type:"String",keyFront:"DefaultFunction",className:""},{key:"TrimStart",name:"删除头部空格",params:[{key:"data",name:"字符串",type:"str"}],description:`【功能】:删除字符串的头部空格并返回
|
|
349
|
+
【返回值类型】:字符串(String)
|
|
350
|
+
【示例】:删除头部空格(" ABC")【返回值】:"ABC"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"TrimEnd",name:"删除尾部空格",params:[{key:"data",name:"字符串",type:"str"}],description:`【功能】:删除字符串的尾部空格并返回
|
|
351
|
+
【返回值类型】:字符串(String)
|
|
352
|
+
【示例】:删除尾部空格("ABC ")【返回值】:"ABC"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"Trim",name:"删除头尾部空格",params:[{key:"data",name:"字符串",type:"str"}],description:`【功能】:删除字符串的头尾部空格并返回
|
|
353
|
+
【返回值类型】:字符串(String)
|
|
354
|
+
【示例】:删除头尾部空格(" ABC ")【返回值】:"ABC"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"CreateGuid",name:"唯一标识符",params:[],description:`【功能】:获取唯一标识符Guid
|
|
355
|
+
【返回值类型】:字符串(String)
|
|
356
|
+
【示例】:唯一标识符()【返回值】:"7722A793-14DF-49CD-B7E7-DF4987YYD2"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"Add",name:"字符串相加",params:[{key:"str1",name:"第一个字符串",type:"str"},{key:"str2",name:"第二个字符串",type:"str"}],description:`【功能】:将若干字符串拼接成一个新字符串,最多支持10个字符串拼接,最少2个;编辑器中默认插入两个,多个字符串可手动添加
|
|
357
|
+
【返回值类型】:字符串(String)
|
|
358
|
+
【示例】:字符串相加("Hello","World")【返回值】:"HelloWord"`,type:"String",keyFront:"DefaultFunction",className:""}]},math:{name:"数字",items:[{key:"NumberThousandSeparator",name:"数字千位分隔",params:[{key:"property",name:"数字类型字段",type:"int32"}],description:`【功能】对数字添加千位分割符,以逗号作为千位分隔符
|
|
359
|
+
【参数】
|
|
360
|
+
【property】字段(链式结构)
|
|
361
|
+
【返回值】字符型
|
|
362
|
+
【示例】
|
|
363
|
+
【场景】提交单据Order,单据包含总费用totalCost
|
|
364
|
+
【需求】优化总费用展示,对总费用添加千位分隔符
|
|
365
|
+
【举例】数字千位分隔(Order.totalCost)
|
|
366
|
+
【返回值】1,234,567.89`,type:"Math",keyFront:"DefaultFunction",className:""},{key:"abs",name:"绝对值",params:[{key:"value",name:"数值",type:"double"}],description:`【功能】:返回一个数值的绝对值
|
|
367
|
+
【返回值类型】:数值(Double)
|
|
368
|
+
【示例】:绝对值(-1.5)【返回值】:1.5`,type:"Math",keyFront:"Math",className:""},{key:"round",name:"四舍五入",params:[{key:"value1",name:"数值",type:"double"},{key:"value2",name:"小数位数",type:"int32"}],description:`【功能】:根据小数位数精度,对数值四舍五入
|
|
369
|
+
【value1】:数值
|
|
370
|
+
【value2】:四舍五入小数位数
|
|
371
|
+
【返回值类型】:数值(Double)
|
|
372
|
+
【示例】:四舍五入(1.52,1)【返回值】:1.5`,type:"Math",keyFront:"DefaultFunction",className:""},{key:"random",name:"随机数",params:[],description:`【功能】:随机生成大于等于 0.0 且小于 1.0 的伪随机值
|
|
373
|
+
【返回值类型】:数值(Double)
|
|
374
|
+
【示例】:随机数()【返回值】:0.624508349393`,type:"Math",keyFront:"Math",className:""},{key:"sin",name:"正弦",params:[{key:"value",name:"数值",type:"double"}],description:`【功能】:返回一个数字的正弦值
|
|
375
|
+
【返回值类型】:数值(Double)一个以弧度表示的角
|
|
376
|
+
【示例】:正弦(1)【返回值】:0.84187098`,type:"Math",keyFront:"Math",className:""},{key:"cos",name:"余弦",params:[{key:"value",name:"数值",type:"double"}],description:`【功能】:返回一个数字的余弦值
|
|
377
|
+
【返回值类型】:数值(Double)一个以弧度表示的角
|
|
378
|
+
【示例】:余弦(3)【返回值】:-0.9899924`,type:"Math",keyFront:"Math",className:""},{key:"ceil",name:"向上舍入",params:[{key:"value",name:"数值",type:"double"}],description:`【功能】:返回大于或等于函数参数,并且与之最接近的整数
|
|
379
|
+
【返回值类型】:数值(Int32)
|
|
380
|
+
【示例】:向上舍入(3.2)【返回值】:4`,type:"Math",keyFront:"Math",className:""},{key:"floor",name:"向下舍入",params:[{key:"value",name:"数值",type:"double"}],description:`【功能】:返回小于或等于函数参数,并且与之最接近的整数
|
|
381
|
+
【返回值类型】:数值(Int32)
|
|
382
|
+
【示例】:向下舍入(3.2)【返回值】:3`,type:"Math",keyFront:"Math",className:""},{key:"bankerRound",name:"银行家舍入",params:[{key:"value1",name:"数值",type:"double"},{key:"value2",name:"小数位数",type:"int32"}],description:`【功能】:使用银行家舍入标准,把指定数字舍入为最接近的数字
|
|
383
|
+
【value1】:舍入数值
|
|
384
|
+
【value2】:舍入小数位数
|
|
385
|
+
【返回值类型】:数值(Double)
|
|
386
|
+
【示例】:银行家舍入(36.124,2)【返回值】:36.12`,type:"Math",keyFront:"DefaultFunction",className:""}]},translate:{name:"转换",items:[{key:"ToStringX",name:"转字符串",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换为字符串
|
|
387
|
+
【返回值类型】:字符串(String)
|
|
388
|
+
【示例】:转字符串(123)【返回值】:"123"`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToDateTime",name:"转日期时间",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成日期时间
|
|
389
|
+
【返回值类型】:日期时间(OffsetDateTime)
|
|
390
|
+
【示例】:转日期时间("2019-01-30T10:00:00+08:00")【返回值】: 2019-01-30T10:00+08:00`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToBoolean",name:"转布尔值",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成等效的布尔值
|
|
391
|
+
【返回值类型】:布尔值(Boolean)
|
|
392
|
+
【示例】:转布尔值("True")【返回值】:true`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToBigDecimal",name:"转数值",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成十进制数值
|
|
393
|
+
【返回值类型】:十进制数值(BigDecimal)
|
|
394
|
+
【示例】:转数值("40.23")【返回值】:40.23`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToCustomBigDecimal",name:"转自定义精度数值",params:[{key:"obj",name:"转换值",type:"object"},{key:"number",name:"小数位数",type:"int"}],description:`【功能】:将转换值转换成指定精度的十进制数值
|
|
395
|
+
【返回值类型】:十进制数值(BigDecimal)
|
|
396
|
+
【示例】:转自定义精度数值("40.2,2")【返回值】:40.20`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToDouble",name:"转双精度浮点数",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成双精度浮点数
|
|
397
|
+
【返回值类型】:双精度浮点数(Double)
|
|
398
|
+
【示例】:转双精度浮点数("40.23")【返回值】:40.23`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToFloat",name:"转单精度浮点数",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成单精度浮点数
|
|
399
|
+
【返回值类型】:单精度浮点数(Float)
|
|
400
|
+
【示例】:转单精度浮点数("40.23")【返回值】:40.23`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToByte",name:"转8位无符号整数",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成8位无符号整数
|
|
401
|
+
【返回值类型】:8位无符号整数(Byte)
|
|
402
|
+
【示例】:转8位无符号整数("10")【返回值】:10`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToInt16",name:"转16位有符号整数",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成16位有符号整数
|
|
403
|
+
【返回值类型】:16位有符号整数(Int16)
|
|
404
|
+
【示例】:转16位有符号整数("10")【返回值】:10`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToInt32",name:"转32位有符号整数",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成32位有符号整数
|
|
405
|
+
【返回值类型】:32位有符号整数(Int32)
|
|
406
|
+
【示例】:转32位有符号整数("10")【返回值】:10`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToChineseMoney",name:"转中文大写金额",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成中文大写金额
|
|
407
|
+
【返回值类型】:字符串(String)
|
|
408
|
+
【示例】:转中文大写金额(40.23)【返回值】:"肆拾元零贰角叁分"`,type:"Translate",keyFront:"DefaultFunction",className:""}]},advanced:{name:"高级",items:[{key:"if",name:`if() {
|
|
409
|
+
|
|
410
|
+
}`,params:[],description:"if条件成立,执行括号中内容",type:"Advanced",keyFront:"",className:""},{key:"if else",name:`if() {
|
|
411
|
+
|
|
412
|
+
} else {
|
|
413
|
+
|
|
414
|
+
}`,params:[],description:"if条件成立,执行括号中内容;否则执行else中内容",type:"Advanced",keyFront:"",className:""},{key:"for",name:`for(;;)
|
|
415
|
+
{
|
|
416
|
+
|
|
417
|
+
}`,params:[],description:"for循环:示例:for(var i=0;i<5;i++){}",type:"Advanced",keyFront:"",className:""},{key:"return",name:"return ;",params:[],description:"返回值",type:"Advanced",keyFront:"",className:""},{key:"var",name:"var ",params:[],description:"变量定义",type:"Advanced",keyFront:"",className:""},{key:"true",name:"true ",params:[],description:"正确",type:"Advanced",keyFront:"",className:""},{key:"false",name:"false ",params:[],description:"错误",type:"Advanced",keyFront:"",className:""}]}};function vn(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function it(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),a.push.apply(a,o)}return a}function rt(e){for(var n=1;n<arguments.length;n++){var a=arguments[n]!=null?arguments[n]:{};n%2?it(Object(a),!0).forEach(function(o){vn(e,o,a[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):it(Object(a)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(a,o))})}return e}function xn(e,n){if(e==null)return{};var a={},o=Object.keys(e),l,i;for(i=0;i<o.length;i++)l=o[i],!(n.indexOf(l)>=0)&&(a[l]=e[l]);return a}function Cn(e,n){if(e==null)return{};var a=xn(e,n),o,l;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(l=0;l<i.length;l++)o=i[l],!(n.indexOf(o)>=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}function wn(e,n){return kn(e)||Fn(e,n)||Sn(e,n)||Tn()}function kn(e){if(Array.isArray(e))return e}function Fn(e,n){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var a=[],o=!0,l=!1,i=void 0;try{for(var s=e[Symbol.iterator](),u;!(o=(u=s.next()).done)&&(a.push(u.value),!(n&&a.length===n));o=!0);}catch(d){l=!0,i=d}finally{try{!o&&s.return!=null&&s.return()}finally{if(l)throw i}}return a}}function Sn(e,n){if(e){if(typeof e=="string")return st(e,n);var a=Object.prototype.toString.call(e).slice(8,-1);if(a==="Object"&&e.constructor&&(a=e.constructor.name),a==="Map"||a==="Set")return Array.from(e);if(a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return st(e,n)}}function st(e,n){(n==null||n>e.length)&&(n=e.length);for(var a=0,o=new Array(n);a<n;a++)o[a]=e[a];return o}function Tn(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
418
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Nn(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function ct(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),a.push.apply(a,o)}return a}function ut(e){for(var n=1;n<arguments.length;n++){var a=arguments[n]!=null?arguments[n]:{};n%2?ct(Object(a),!0).forEach(function(o){Nn(e,o,a[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ct(Object(a)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(a,o))})}return e}function Vn(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];return function(o){return n.reduceRight(function(l,i){return i(l)},o)}}function ue(e){return function n(){for(var a=this,o=arguments.length,l=new Array(o),i=0;i<o;i++)l[i]=arguments[i];return l.length>=e.length?e.apply(this,l):function(){for(var s=arguments.length,u=new Array(s),d=0;d<s;d++)u[d]=arguments[d];return n.apply(a,[].concat(l,u))}}}function ge(e){return{}.toString.call(e).includes("Object")}function Mn(e){return!Object.keys(e).length}function de(e){return typeof e=="function"}function Bn(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function On(e,n){return ge(n)||ne("changeType"),Object.keys(n).some(function(a){return!Bn(e,a)})&&ne("changeField"),n}function En(e){de(e)||ne("selectorType")}function Dn(e){de(e)||ge(e)||ne("handlerType"),ge(e)&&Object.values(e).some(function(n){return!de(n)})&&ne("handlersType")}function Pn(e){e||ne("initialIsRequired"),ge(e)||ne("initialType"),Mn(e)&&ne("initialContent")}function In(e,n){throw new Error(e[n]||e.default)}var jn={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},ne=ue(In)(jn),be={changes:On,selector:En,handler:Dn,initial:Pn};function Rn(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};be.initial(e),be.handler(n);var a={current:e},o=ue(An)(a,n),l=ue($n)(a),i=ue(be.changes)(e),s=ue(Ln)(a);function u(){var f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(v){return v};return be.selector(f),f(a.current)}function d(f){Vn(o,l,i,s)(f)}return[u,d]}function Ln(e,n){return de(n)?n(e.current):n}function $n(e,n){return e.current=ut(ut({},e.current),n),n}function An(e,n,a){return de(n)?n(e.current):Object.keys(a).forEach(function(o){var l;return(l=n[o])===null||l===void 0?void 0:l.call(n,e.current[o])}),a}var zn={create:Rn},Hn={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}};function Wn(e){return function n(){for(var a=this,o=arguments.length,l=new Array(o),i=0;i<o;i++)l[i]=arguments[i];return l.length>=e.length?e.apply(this,l):function(){for(var s=arguments.length,u=new Array(s),d=0;d<s;d++)u[d]=arguments[d];return n.apply(a,[].concat(l,u))}}}function qn(e){return{}.toString.call(e).includes("Object")}function Un(e){return e||ft("configIsRequired"),qn(e)||ft("configType"),e.urls?(Yn(),{paths:{vs:e.urls.monacoBase}}):e}function Yn(){console.warn(dt.deprecation)}function Gn(e,n){throw new Error(e[n]||e.default)}var dt={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
|
|
419
|
+
You are using deprecated way of configuration.
|
|
420
|
+
|
|
421
|
+
Instead of using
|
|
422
|
+
monaco.config({ urls: { monacoBase: '...' } })
|
|
423
|
+
use
|
|
424
|
+
monaco.config({ paths: { vs: '...' } })
|
|
425
|
+
|
|
426
|
+
For more please check the link https://github.com/suren-atoyan/monaco-loader#config
|
|
427
|
+
`},ft=Wn(Gn)(dt),Xn={config:Un},Kn=function(){for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return function(l){return a.reduceRight(function(i,s){return s(i)},l)}};function mt(e,n){return Object.keys(n).forEach(function(a){n[a]instanceof Object&&e[a]&&Object.assign(n[a],mt(e[a],n[a]))}),rt(rt({},e),n)}var Jn={type:"cancelation",msg:"operation is manually canceled"};function Ne(e){var n=!1,a=new Promise(function(o,l){e.then(function(i){return n?l(Jn):o(i)}),e.catch(l)});return a.cancel=function(){return n=!0},a}var _n=zn.create({config:Hn,isInitialized:!1,resolve:null,reject:null,monaco:null}),yt=wn(_n,2),fe=yt[0],ve=yt[1];function Zn(e){var n=Xn.config(e),a=n.monaco,o=Cn(n,["monaco"]);ve(function(l){return{config:mt(l.config,o),monaco:a}})}function Qn(){var e=fe(function(n){var a=n.monaco,o=n.isInitialized,l=n.resolve;return{monaco:a,isInitialized:o,resolve:l}});if(!e.isInitialized){if(ve({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),Ne(Ve);if(window.monaco&&window.monaco.editor)return pt(window.monaco),e.resolve(window.monaco),Ne(Ve);Kn(ea,na)(aa)}return Ne(Ve)}function ea(e){return document.body.appendChild(e)}function ta(e){var n=document.createElement("script");return e&&(n.src=e),n}function na(e){var n=fe(function(o){var l=o.config,i=o.reject;return{config:l,reject:i}}),a=ta("".concat(n.config.paths.vs,"/loader.js"));return a.onload=function(){return e()},a.onerror=n.reject,a}function aa(){var e=fe(function(a){var o=a.config,l=a.resolve,i=a.reject;return{config:o,resolve:l,reject:i}}),n=window.require;n.config(e.config),n(["vs/editor/editor.main"],function(a){pt(a),e.resolve(a)},function(a){e.reject(a)})}function pt(e){fe().monaco||ve({monaco:e})}function oa(){return fe(function(e){var n=e.monaco;return n})}var Ve=new Promise(function(e,n){return ve({resolve:e,reject:n})}),Me={config:Zn,init:Qn,__getMonacoInstance:oa};const la=t.defineComponent({name:"expression-code",props:{modelValue:{type:String,default:""},language:{type:String,default:"javascript"},theme:{type:String,default:"vs"},readOnly:{type:Boolean,default:!1},configPath:{type:String,default:"assets/monaco-editor.config.json"}},emits:[],setup(e,n){const a=t.ref(),o=t.ref();let l=null;const i=t.ref(e.modelValue);async function s(){return fetch(e.configPath).then(b=>b.json())}async function u(){if(a.value&&!l){const b=await s(),{vsPath:x}=b;Me.config({paths:{vs:window.location.origin+x}}),Me.config({"vs/nls":{availableLanguages:{"*":"zh-cn"}}}),Me.init().then(r=>{o.value=r,l=r.editor.create(a.value,{value:i.value,automaticLayout:!0,language:e.language,theme:e.theme,folding:!0,readOnly:e.readOnly,minimap:{enabled:!1},lineNumbers:"on",lineNumbersMinChars:3,overviewRulerLanes:0,fixedOverflowWidgets:!1,scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:8,horizontalScrollbarSize:8}})})}}t.watch(()=>e.modelValue,b=>{i.value=b,l==null||l.setValue(b)});const d=t.ref(),f=new ResizeObserver(b=>{l==null||l.layout();const{width:x,height:r}=b[0].contentRect;d.value={width:`${x-1}px`,height:`${r}px`}});function v(){return l==null?void 0:l.getValue()}function g(b){const x=l.getSelection(),r=new o.value.Range(x.startLineNumber,x.startColumn,x.endLineNumber,x.endColumn);l.executeEdits("insert-text",[{range:r,text:b,forceMoveMarkers:!0}])}t.onMounted(()=>{u(),a.value&&f.observe(a.value.parentElement)}),t.onBeforeUnmount(()=>{l&&l.dispose(),f&&a.value&&(f.unobserve(a.value),f.disconnect())});function p(b){l.setValue(b)}function C(){p("")}return n.expose({getContent:v,insertText:g,clearText:C,setContent:p}),()=>t.createVNode("div",{class:"expression-code-editor",style:d.value,ref:a},null)}}),ia={dataSource:{type:Object,default:{}}},ra={data:{type:Array,default:[]},idField:{type:String,default:"id"},textField:{type:String,default:"name"},formatter:{type:Function},customRowStatus:{type:Object,default:null}},sa=t.defineComponent({name:"FEntitiesTree",props:ra,emits:["dblclickNode"],setup(e,n){const a=t.ref(e.data),o=t.ref(),l=t.ref();function i(){let g=0;return document.querySelectorAll(".entity-variable .fv-grid-hierarchy-cell").forEach(C=>{C.style.width="auto";const b=C.scrollWidth;b>g&&(g=b)}),g}t.watch(()=>e.data,g=>{var p;a.value=g,(p=o.value)==null||p.updateDataSource(g)});const s={customRowStatus:e.customRowStatus},u=t.computed(()=>[{field:e.textField,title:"",dataType:"string",formatter:e.formatter}]);function d({$event:g,node:p}){n.emit("dblclickNode",{$event:g,node:p})}function f(){const g=i();l.value={minWidth:`${g+10}px`}}function v({row:g}){t.nextTick(f)}return t.onMounted(()=>{t.nextTick(f)}),()=>t.createVNode("div",{class:"h-100 f-utils-fill",style:"overflow:auto",id:"entity-tree-view"},[t.createVNode(ze,{ref:o,fit:!1,rowNumber:{enable:!1},data:a.value,idField:e.idField,columns:u.value,rowOption:s,columnOption:{fitColumns:!0,fitMode:"percentage"},onDblclickNode:d,style:l.value,autoHeight:!0,onExpandNode:v},null)])}}),ca=t.defineComponent({name:"entity-variable",props:ia,emits:["variableItemDblClick","entityItemDblClick","fieldClick"],setup(e,n){const a=t.ref("dataEntity"),o=t.ref(e.dataSource),{entities:l,variables:i}=o.value,s=t.ref(""),u=t.ref((l==null?void 0:l.fields)||[]),d=(S,E)=>{S.stopPropagation(),n.emit("fieldClick",{$event:S,item:E.raw})},f=(S,E)=>{const D=`${E.raw.name} [${E.raw.bindingPath}]`;return t.createVNode("div",{class:"d-flex align-items-center w-100 entity-field",style:"justify-content: space-between;"},[t.createVNode("span",{title:D,class:"f-utils-fill text-truncate"},[D]),t.createVNode("button",{title:"插入属性名称",class:"btn btn-link d-none",style:"width:24px;height:24px",onClick:P=>d(P,E),onDblclick:P=>P.stopPropagation()},[t.createVNode("span",{class:"f-icon f-icon-new-edit",style:"font-size: 12px;"},null)])])},v=t.ref({}),g=t.ref(),p=t.computed(()=>S=>({"list-group d-flex flex-column":!0,"f-utils-fill":a.value===S,expand:a.value===S,collapse:a.value!==S})),C=t.computed(()=>S=>({"f-icon f-icon-arrow-chevron-up":a.value!==S,"f-icon f-icon-arrow-chevron-down":a.value===S})),b=t.computed(()=>S=>({"functions-type d-flex flex-column":!0,open:v.value[S],closed:!v.value[S]})),x=t.computed(()=>S=>({"f-icon f-icon-arrow-chevron-down":v.value[S],"f-icon f-icon-arrow-chevron-right":!v.value[S]})),r=t.computed(()=>S=>{var E;return{"functions-item pl-2":!0,selected:((E=g.value)==null?void 0:E.key)===S.key}});function c(S,E){S.stopPropagation(),v.value=v.value||{},v.value[E]=!v.value[E]}function h(S,E){S.stopPropagation(),g.value=E}function k(S,E){n.emit("variableItemDblClick",{$event:S,item:E})}function F({$event:S,node:E}){n.emit("entityItemDblClick",{$event:S,item:E.data,entityCode:l==null?void 0:l.entityCode,parentCodes:E.data.parents.join(".")})}function y(){return t.createVNode(sa,{data:u.value,formatter:f,onDblclickNode:F},null)}function m(){if(i)return t.createVNode("ul",{class:"w-100 functions-list"},[Object.keys(i).map(S=>i[S].visible&&t.createVNode("li",{"variable-type":S,class:b.value(S)},[t.createVNode("div",{class:"functions-type-name pl-2 d-flex align-items-center",onClick:E=>{c(E,S)}},[t.createVNode("span",{class:x.value(S)},null),i[S].name]),t.createVNode("ul",{class:"pl-3 mr-2"},[i[S].items.map(E=>t.createVNode("li",{class:r.value(E),onClick:D=>h(D,E),onDblclick:D=>k(D,E),title:`${E.name} [${E.key}]`},[E.name]))])]))])}function w(S,E){if(S.stopPropagation(),a.value===E){a.value="";return}a.value=E}t.onMounted(()=>{if(i){const S=Object.keys(i)[0];v.value[S]=!0}});function T(S,E){const D=S.children.map(A=>T(A,E)).filter(A=>A!==null);return S.data.name.toLowerCase().includes(E.toLowerCase())||S.data.bindingPath.toLowerCase().includes(E.toLowerCase())?{data:{...S.data},children:S.children}:D.length>0?{data:{...S.data},children:D}:null}function j(S,E){return S.map(D=>T(D,E)).filter(D=>D!==null)}function I(){const S=j((l==null?void 0:l.fields)||[],s.value);u.value=S}function O(){u.value=(l==null?void 0:l.fields)||[]}function V(S){S.key==="Enter"&&I()}return()=>t.createVNode("div",{class:"f-utils-fill entity-variable"},[t.createVNode("ul",{class:"d-flex flex-column h-100"},[t.createVNode("li",{class:p.value("dataEntity")},[t.createVNode("div",{class:"title px-2 d-flex align-items-center",onClick:S=>w(S,"dataEntity")},[t.createTextVNode("数据实体"),t.createVNode("span",{class:C.value("dataEntity")},null)]),t.createVNode("div",{class:"data-area f-utils-fill d-flex flex-column"},[t.createVNode("div",{class:"w-100"},[t.createVNode(me.FButtonEdit,{class:"m-2",buttonContent:'<i class="f-icon f-icon-search"></i>',enableClear:!0,popupOnClick:!0,placeholder:"请输入名称或编号,按回车查询",modelValue:s.value,"onUpdate:modelValue":S=>s.value=S,onClickButton:I,onClear:O,onKeyup:V},null)]),y()])]),t.createVNode("li",{class:p.value("variables")},[t.createVNode("div",{class:"title px-2 d-flex align-items-center",onClick:S=>w(S,"variables")},[t.createTextVNode("变量"),t.createVNode("span",{class:C.value("variables")},null)]),t.createVNode("div",{class:"data-area f-utils-fill"},[m()])])])])}}),ua={functionItems:{type:Array,default:[]},singleExpand:{type:Boolean,default:!0}},da=t.defineComponent({name:"FExpressionEditor",props:ua,emits:["insertFunction","search"],setup(e,n){const a=t.ref(),o=t.ref(""),l=t.ref(),i=t.ref({}),s=t.ref(""),u="没有与搜索条件匹配的项",d=t.ref(e.functionItems),f=t.computed(()=>y=>e.singleExpand?{"functions-type d-flex flex-column":!0,open:o.value===y,closed:o.value!==y}:{"functions-type d-flex flex-column":!0,open:i.value[y],closed:!i.value[y]}),v=t.computed(()=>y=>e.singleExpand?{"f-icon f-icon-arrow-chevron-down":o.value===y,"f-icon f-icon-arrow-chevron-right":o.value!==y}:{"f-icon f-icon-arrow-chevron-down":i.value[y],"f-icon f-icon-arrow-chevron-right":!i.value[y]}),g=t.computed(()=>y=>{var m;return{"functions-item pl-2":!0,selected:((m=l.value)==null?void 0:m.key)===y.key}}),p=t.ref(Object.keys(d.value));t.watch(()=>e.functionItems,y=>{d.value=y,p.value=Object.keys(d.value),s.value&&(i.value=p.value.reduce((m,w)=>(m[w]=!0,m),{}))});function C(y){y||(y=o.value);const m=a.value.querySelector('li[function-type="'+y+'"] > div.functions-type-name');m&&(a.value.querySelector(".expression-left").scrollTop=0,m.scrollIntoViewIfNeeded?m.scrollIntoViewIfNeeded(!0):m.scrollIntoView({behavior:"smooth",block:"nearest"}))}function b(y){if(e.singleExpand){if(o.value===y){o.value="";return}o.value=y}else i.value=i.value||{},i.value[y]=!i.value[y]}function x(y,m){y.stopPropagation(),l.value=m}function r(y,m){y.stopPropagation(),n.emit("insertFunction",{$event:y,item:m})}t.watch(()=>o.value,(y,m,w)=>{if(y){const T=setTimeout(()=>{C(y)},200);w(()=>clearTimeout(T))}});function c(){n.emit("search",s.value)}function h(){n.emit("search","")}function k(y){y.key==="Enter"&&c()}function F(){return p.value.length?p.value.map(y=>t.createVNode("li",{"function-type":y,class:f.value(y)},[t.createVNode("div",{class:"functions-type-name pl-2 d-flex align-items-center",onClick:()=>{b(y)}},[t.createVNode("span",{class:v.value(y)},null),d.value[y].name]),t.createVNode("ul",{class:"pl-3 mr-2"},[d.value[y].items.map(m=>{if(m.visible!==!1)return t.createVNode("li",{class:g.value(m),onClick:w=>x(w,m),onDblclick:w=>r(w,m)},[y==="advanced"?m.key:m.name])})])])):t.createVNode("li",{class:"empty-message"},[u])}return t.onMounted(()=>{o.value=p.value[0],i.value=p.value.reduce((y,m)=>(y[m]=o.value===m,y),{})}),()=>t.createVNode("div",{class:"d-flex f-utils-fill flex-column",ref:a},[t.createVNode(te,{class:"flex-column expression-left"},{default:()=>[t.createVNode(ee,{position:"top",minHeight:50,height:50,"custom-class":"position-relative d-flex align-items-center search-bar",resizable:!1},{default:()=>[t.createVNode(me.FButtonEdit,{class:"w-100 mx-2",buttonContent:'<i class="f-icon f-icon-search"></i>',enableClear:!0,popupOnClick:!0,placeholder:"请输入函数名称,按回车查询",modelValue:s.value,"onUpdate:modelValue":y=>s.value=y,onClickButton:c,onClear:h,onKeyup:k},null)]}),t.createVNode(ee,{position:"center","custom-class":"layout-border"},{default:()=>[t.createVNode("ul",{class:"w-100 functions-list",style:"user-select: none"},[F()])]}),t.createVNode(ee,{"custom-class":"position-relative",position:"bottom",minHeight:80},{default:()=>{var y;return[t.createVNode("textarea",{title:"函数说明",class:"h-100 w-100 function-remark p-1",disabled:!0},[(y=l.value)==null?void 0:y.description])]}})]})])}});function fa(e){async function n(){return fetch(e.esprimaPath).then(s=>s.json())}async function a(){if(window.esprima==null){const s=await n(),{path:u}=s;return new Promise((d,f)=>{const v=document.createElement("script");v.type="text/javascript",v.src=u+"?v="+Date.now(),v.onload=d,v.onerror=f,document.head.appendChild(v)})}}function o(s){const u=[],d=window.esprima.tokenize(s);for(let p=0;p<d.length;p++)u.push(d[p].value);const f=[];for(let p=0;p<u.length;p++){const C=s.indexOf(u[p]);C!==-1?f.push(s.substring(0,C)):f.push(""),s=s.slice(C+u[p].length),p===u.length-1&&f.push(s)}const v=[],g=u.length;for(let p=0;p<g;p++)f[p]!==""&&v.push(f[p]),u[p]!==""&&v.push(u[p]),p===g-1&&f[p+1]!==""&&v.push(f[p+1]);return v}function l(s,u="key2name"){const d=new Map;if(!s)return d;let v=Object.values(s).map(g=>g.items).flat();for(;v.length>0;){const g=v.filter(p=>p.name===v[0].name);g.length>1?v.filter(p=>p.name===v[0].name).forEach(p=>{u==="key2name"?d.set(p.key,p.key+"_"+p.name):u==="name2key"&&d.set(p.key+"_"+p.name,p.key)}):u==="key2name"?d.set(g[0].key,g[0].name):u==="name2key"&&d.set(g[0].name,g[0].key),v=v.filter(p=>p.name!==v[0].name)}return d}a();async function i(s){return window.esprima?s():await a().then(()=>s())}return{loadEsprima:a,getTokens:o,getVariableMaps:l,runWithEsprima:i}}function ma(e,n,a){const o=t.ref(e.disabledFunctions),{getTokens:l,getVariableMaps:i,runWithEsprima:s}=fa(e);function u(){const r=Q.cloneDeep(n);if(o.value){let c=Object.keys(r);const{types:h,functions:k}=o.value;return h&&h.length&&(c=c.filter(F=>h.includes(F))),k&&k.length&&Object.values(r).forEach(F=>{F.items.forEach(y=>{k.includes(y.name)&&(y.visible=!1)})}),r}return r}function d(r){const c=n.analytical.items.find(h=>h.key==="GetContextParameter");if(c)return c.name+'("'+r.name+'")'}function f(r){if(!r||r.length===0)return"";const c=h=>{switch(h.type){case"string":return`"${h.name}"`;case"list":return`[${h.name}]`;default:return h.name}};return r.map(c).join(",")}function v(r){let c=r.name;return r.type.toLowerCase()!=="advanced"&&(c+="("+f(r.params)+")"),c}function g(r){return r==null?void 0:r.bindingPath}function p(r){if(!r)return"";const c=l(r),h=i(a,"name2key");for(let F=0;F<c.length;F++){let y=0;if(y===0&&h&&c[F].length>2&&c[F][0]==='"'&&c[F][c[F].length-1]==='"'){const m=c[F].substring(1,c[F].length-1);if(h.has(m)&&c[F-1]==="("&&c[F+1]===")"){const w=h.get(m);w!==void 0&&(c[F]=`"${w}"`,y=1)}}if(y===0){const m=Object.values(n).map(w=>w.items).flat();for(let w=0;w<m.length;w++)if(c[F]===m[w].name){c[F]=m[w].keyFront+"."+m[w].key,y=1;break}}}const k=c.join("");return JSON.stringify({expr:k,sexpr:""})}function C(r,c,h,k){let F="";const y=[];for(const m of c)m.keyFront==="Math"&&y.push(m.key);for(let m=0;m<r.length;m++){if(r[m]==="Math"&&r[m+1]==="."&&!y.includes(r[m+2])){F=F+r[m]+r[m+1]+r[m+2],m=m+2;continue}if(k.includes(r[m])&&r[m+1]==="."){m=m+1;continue}else{let w=0;if(w===0&&r[m].length>2&&r[m][0]==='"'&&r[m][r[m].length-1]==='"'){const T=r[m].substring(1,r[m].length-1);if(h.has(T)&&r[m-1]==="("&&r[m+1]===")"){const j=h.get(T);j!==void 0&&(F=F+`"${j}"`,w=1)}}if(w===0){for(let T=0;T<c.length;T++)if(r[m]===c[T].key&&c[T].type.toLowerCase()!=="advanced"){F=F+c[T].name,w=1;break}}w===0&&(F=F+r[m])}}return F}function b(r){if(!r)return"";const c=l(r),h=i(a,"key2name"),k=Object.values(n).map(y=>y.items).flat();return C(c,k,h,["DefaultFunction","Math","DefaultExtendFunctionProxy"])}async function x(r){return await s(()=>b(r))}return{resetFunctionItems:u,getFieldExpression:g,getFunctionExpression:v,getContextVariableExpression:d,getExpressionCodeValue:p,getExpressionTextValue:x}}function ya(e,n){const a=t.ref([]),o=Q.cloneDeep(n.value),l=Object.values(o).map(u=>u.items).flat();function i(u){const d=Q.cloneDeep(o);return Object.keys(d).forEach(f=>{const v=d[f].items.filter(g=>u.includes(g.key));v.length>0?d[f].items=v:delete d[f]}),d}function s(u){if(!u){n.value=o;return}const d=l.filter(f=>f.name.toLowerCase().includes(u.toLowerCase())).map(f=>f.key);n.value=i(d)}return{searchResultList:a,filterFunctions:i,onFunctionSearch:s}}const pa=t.defineComponent({name:"FExpressionEditor",props:cn,emits:[],setup(e,n){var O;const a=t.ref(),o=t.ref(e.validateMessage),l=t.ref(e.messageType),i=t.ref(e.modelValue),s=t.ref(),u=[{label:"提示",value:"info"},{label:"警告",value:"warning"},{label:"错误",value:"error"}],{getFunctionExpression:d,getContextVariableExpression:f,resetFunctionItems:v,getFieldExpression:g,getExpressionCodeValue:p,getExpressionTextValue:C}=ma(e,bn,e.variables),b=t.ref(v()),{onFunctionSearch:x}=ya(e,b);function r({$event:V,item:S}){var D;const E=d(S);(D=s.value)==null||D.insertText(E)}function c({$event:V,item:S}){var D;const E=f(S);(D=s.value)==null||D.insertText(E)}function h(V){return V.reduce((S,E)=>{var D;return S.push(E.data),(D=E.children)!=null&&D.length&&S.push(...h(E.children)),S},[])}const k=h(((O=e==null?void 0:e.entities)==null?void 0:O.fields)||[]);function F(V){return V.map(S=>{const E=k.find(D=>D.bindingPath===S);return E&&E.type==="entity"?`${S}[0]`:S}).join(".")}function y({$event:V,item:S,parentCodes:E,entityCode:D}){var B;const P=g(S);E=e.isServerSide?F(S.parents):E;let A=`${E}.${P}`;D===P&&(A=P),(B=s.value)==null||B.insertText(`${A}`)}function m({$event:V,item:S}){var D;const E=g(S);(D=s.value)==null||D.insertText(`${E}`)}function w(){var V;return(V=s.value)==null?void 0:V.getContent()}function T(){var S;const V=(S=s.value)==null?void 0:S.getContent();return{value:p(V),message:o.value,messageType:l.value}}const j=t.ref("");function I(){var V;(V=s.value)==null||V.clearText()}return t.onMounted(async()=>{if(i.value){const V=JSON.parse(i.value),{expr:S}=V;S&&(j.value=await C(S)||"")}}),n.expose({getExpressionContext:w,getExpressionValue:T,resetExpression:I}),()=>t.createVNode("div",{ref:a,class:"h-100 d-flex flex-column f-utils-fill mx-3 expression-editor"},[t.createVNode(te,null,{default:()=>[t.createVNode(ee,{position:"left",width:248,minWidth:130},{default:()=>[t.createVNode(da,{functionItems:b.value,singleExpand:e.singleExpand,onInsertFunction:r,onSearch:x},null)]}),t.createVNode(ee,{position:"center","custom-class":"layout-border flex-column",style:"overflow:hidden"},{default:()=>[t.createVNode("div",{class:"f-utils-fill my-2 ml-1"},[t.createVNode(la,{modelValue:j.value,"onUpdate:modelValue":V=>j.value=V,ref:s},null)]),e.showMessage&&t.createVNode("div",{class:"d-flex flex-column p-1",style:"background: #fafafa"},[t.createVNode("div",{class:"d-flex align-items-center py-1"},[t.createVNode("b",null,[t.createTextVNode("提示信息:")]),e.showMessageType&&t.createVNode(le,{style:"width: 75px",data:u,modelValue:l.value,"onUpdate:modelValue":V=>l.value=V,textField:"label",valueField:"value",idField:"value",enableClear:!1,minPanelWidth:130,placement:"auto"},null)]),t.withDirectives(t.createVNode("textarea",{"onUpdate:modelValue":V=>o.value=V,class:"form-control",style:"resize:none;border:none;outline:1px solid var(--f-neutral-04);"},null),[[t.vModelText,o.value]])])]}),e.showDataPanel&&t.createVNode(ee,{position:"right",width:258,minWidth:130},{default:()=>[t.createVNode(ca,{dataSource:{entities:e.entities,variables:e.variables},onVariableItemDblClick:c,onEntityItemDblClick:y,onFieldClick:m},null)]})]})])}}),ha={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/expression-editor.schema.json",title:"expression-editor",description:"A Farris Expression Editor Component",type:"object",properties:{id:{description:"The unique identifier for a Expression Editor",type:"string"},type:{description:"The type string of Expression Editor component",type:"string",default:"expression-editor"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},beforeOpen:{type:"object",default:null},modelValue:{description:"The value of Expression Editor",type:"string",default:""},variables:{description:"The variables of Expression Editor",type:"array",default:[]},entities:{description:"The entities of Expression Editor",type:"array",default:[]},onSubmitModal:{description:"The event of Expression Editor",type:"function",default:null},onExpressionChanged:{description:"The event of Expression Editor",type:"function",default:null},esprimaPath:{description:"The path of esprima",type:"string",default:"assets/esprima-config.json"},singleExpand:{description:"The singleExpand of Expression Editor",type:"boolean",default:!0},showMessage:{description:"The showMessage of Expression Editor",type:"boolean",default:!1},dialogTitle:{description:"The dialogTitle of Expression Editor",type:"string",default:"表达式编辑器"},dialogWidth:{description:"The dialogWidth of Expression Editor",type:"string",default:975},dialogHeight:{description:"The dialogHeight of Expression Editor",type:"string",default:600},beforeSubmit:{description:"The beforeSubmit of Expression Editor",type:"function",default:null},showMessageType:{description:"The showMessageType of Expression Editor",type:"boolean",default:!1},showDataPanel:{description:"Show right panel",type:"boolean",default:!0}},required:["id","type"]},ht={disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},enableClear:{type:Boolean,default:!0},modelValue:{type:String,default:""},displayText:{type:String,default:""},repositoryToken:{type:Object,default:null},editorParams:{},singleExpand:{type:Boolean,default:!0},beforeOpen:{type:Function,default:()=>{}},onSubmitModal:{type:Function,default:()=>{}},entities:{type:Array,default:[]},variables:{type:Array,default:[]},disabledFunctions:{type:Object,default:null},onExpressionChanged:{type:Function,default:()=>{}},esprimaPath:{type:String,default:"assets/esprima-config.json"},showMessage:{type:Boolean,default:!1},showMessageType:{type:Boolean,default:!1},dialogTitle:{type:String,default:"表达式编辑器"},dialogWidth:{type:Number,default:975},dialogHeight:{type:Number,default:600},validateMessage:{type:String,default:""},beforeSubmit:{type:Function,default:null},showDataPanel:{type:Boolean,default:!0},isServerSide:{type:Boolean,default:!1}};X.createPropsResolver(ht,ha);const ga={showCloseButton:{type:Boolean,default:!0},position:{type:String,default:"top-center"},timeout:{type:Number,default:3e3},theme:{type:String,default:"bootstrap"},left:{type:Number},right:{type:Number},top:{type:Number},bottom:{type:Number},id:{type:String},animate:{type:String,default:"fadeIn"},options:{type:Object},safeHtml:{type:Boolean,default:!0}},ba={showCloseButton:{type:Boolean,default:!0},animate:{type:String,default:"fadeIn"},options:{type:Object}},Be=t.defineComponent({name:"Toast",props:ba,emits:["close","click"],setup:(e,n)=>{const a=t.ref(e.animate),o="fadeOut",l=t.computed(()=>e.options),i=t.ref(!1),s=t.computed(()=>l.value.title&&l.value.message),u=t.computed(()=>!l.value.title&&l.value.message),d=t.computed(()=>{const h={animated:i.value,toast:!0,"toast--only-content":!s.value};return h[e.animate]=!1,h[o]=i.value,h["toasty-type-"+l.value.type]=!0,l.value.theme&&(h[l.value.theme]=!0),h}),f=t.computed(()=>{const F=`f-icon-${l.value&&l.value.type?l.value.type.replace("toasty-type-",""):"default"}`,y={"f-icon":!0};return y[F]=!0,y}),v=t.computed(()=>l.value.title||l.value.message),g=t.computed(()=>e.showCloseButton),p=t.computed(()=>!!l.value.buttons||!!n.slots.default),C=t.computed(()=>q.LocaleService.getLocale()==="en"?{wordBreak:"keep-all",overflowWrap:"break-word"}:{});function b(h){h.stopPropagation(),h.preventDefault(),i.value=!1,setTimeout(()=>{n.emit("close",l.value)},200)}function x(h,k){}function r(h){return`f-preten-link ${h.customClass?h.customClass:""}`}t.watch(a,()=>{a.value});const c=()=>{var h;return t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"after-toast-msg text-right"},[!n.slots.default&&((h=l.value.buttons)==null?void 0:h.map(k=>t.createVNode("span",{class:r(k),onClick:F=>void 0},[k.text]))),n.slots.default&&n.slots.default()])])};return()=>t.createVNode("div",{class:d.value,style:"min-height:44px"},[g.value&&t.createVNode("button",{title:q.LocaleService.getLocaleValue("messageBox.close"),class:"toast-close f-btn-icon f-bare",onClick:b},[t.createVNode("span",{class:"f-icon modal_close"},null)]),v.value&&t.createVNode("section",{class:"modal-tips"},[!s.value&&t.createVNode("div",{class:"float-left modal-tips-iconwrap"},[t.createVNode("span",{class:f.value},null)]),t.createVNode("div",{class:"modal-tips-content"},[s.value&&t.createVNode(t.Fragment,null,[t.createVNode("h5",{class:"toast-title modal-tips-title",innerHTML:l.value.title},null),t.createVNode("p",{class:"toast-msg",innerHTML:l.value.message,style:C.value},null),p.value&&c()]),u.value&&(l.value.buttons?t.createVNode("div",{class:"toast-title-btns-wrapper d-flex"},[t.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:C.value,innerHTML:l.value.message},null),t.createVNode("div",{class:"after-toast-title text-right ml-auto"},[c()])]):t.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:C.value,innerHTML:l.value.message},null))])])])}}),xe=t.defineComponent({name:"Notify",props:ga,emits:["close","empty"],setup(e,n){const a=t.computed(()=>({"farris-notify":!0})),o={left:12,right:12,top:20,bottom:12},l=t.ref(),i=t.ref(e.options),s=t.ref(e.showCloseButton),u=t.computed(()=>e.position||"bottom-right"),d=t.computed(()=>e.timeout!=null?e.timeout:3e3),f=t.computed(()=>{const p=e.bottom?e.bottom:o.bottom,C=e.top?e.top:o.top,b={transition:"all 0.2s ease",left:u.value.indexOf("left")>-1?`${e.left?e.left:o.left}px`:"",right:u.value.indexOf("right")>-1?`${e.right?e.right:o.right}px`:"",top:u.value.indexOf("top")>-1?`${C}px`:"",bottom:u.value.indexOf("bottom")>-1?`${p}px`:""};return u.value.indexOf("center")>-1&&(b.left="50%",b.marginLeft="calc(-24rem / 2)",u.value==="center-center"&&(b.top="50%",b.transform="translate(-50%, -50%)")),b});function v(p){n.emit("close")}d.value&&setTimeout(()=>{v()},d.value),n.expose({closeToast:v,container:l,notifyPosition:u});function g(p,C){v()}return()=>t.createVNode("div",{class:a.value,style:f.value,ref:l},[t.createVNode(Be,{options:i.value,showCloseButton:s.value,animate:e.animate,onClose:p=>g(p,i.value)},null)])}});class va{constructor(){Z(this,"notifyRefs",[]);Z(this,"globalConfig",t.reactive({}))}escapeAllHtml(n){if(typeof n!="string"||!n)return"";const a=document.createElement("div");return a.textContent=n||"",a.innerHTML.replace(/\\n/g,"<br>").replace(/\\t/g," ").replace(/\\r/g,"")}createNotifyInstance(n){const a=this,l=Object.assign({timeout:3e3,position:"bottom-right",showCloseButton:!0,safeHtml:!0},this.globalConfig,{...n}),i=document.createElement("div");i.style.display="contents";const s=t.createApp({setup(){var f;const u=t.ref();function d(){u.value.container.style.transform="scale(0)",setTimeout(()=>{a.updateNotifyPositionForClose(l,u),s.unmount()},220)}if(l.position.indexOf("top")>-1){const v=a.getNotifyInstances(l.position),g=v[v.length-1];if(g){const p=g.value.container.getBoundingClientRect();l.top=p.bottom}}return l.safeHtml&&((f=l.options)!=null&&f.message)&&(l.options.message=a.escapeAllHtml(l.options.message)),t.onUnmounted(()=>{document.body.removeChild(i)}),t.onMounted(()=>{a.updateNotifyPositionForCreate(l,u)}),()=>t.createVNode(t.Transition,{mode:"out-in",name:"fade",appear:!0},{default:()=>[t.createVNode(xe,t.mergeProps({ref:u},l,{onClose:d}),null)]})}});return s.provide("NotifyService",this),document.body.appendChild(i),s.use(q.LocaleService.i18n),s.mount(i),s}getNotifyInstances(n){return this.notifyRefs.filter(a=>a.value.notifyPosition===n)}updateNotifyPositionForCreate(n,a){if(this.notifyRefs&&this.notifyRefs.length){const o=window.innerHeight;n.position.indexOf("bottom")>-1&&this.getNotifyInstances(n.position).forEach(l=>{const i=l.value.container.getBoundingClientRect();l.value.container.style.bottom=i.height+o-i.bottom+"px"})}this.notifyRefs=[...this.notifyRefs,a]}updateNotifyPositionForClose(n,a){const o=this.notifyRefs.indexOf(a);if(n.position.indexOf("top")>-1){const l=this.getNotifyInstances(n.position),i=l.indexOf(a);l.slice(i+1).forEach(s=>{s.value.container.style.top=s.value.container.offsetTop-s.value.container.offsetHeight+"px"})}o>-1&&this.notifyRefs.splice(o,1)}show(n){return this.createNotifyInstance(n)}buildNotifyProps(n,a){let o="",l="",i,s,u;typeof a=="string"?o=a:a&&(o=a.message||"",l=a.title||"",s=a.position||null,u=a.showCloseButton!=null?a.showCloseButton:null,i=a.timeout!=null?a.timeout:null);const f={options:{type:n,message:o,title:l}};return s!=null&&(f.position=s),u!=null&&(f.showCloseButton=u),i!=null&&(f.timeout=i),f}info(n){const a=this.buildNotifyProps("info",n);return this.show(a)}success(n){const a=this.buildNotifyProps("success",n);return this.show(a)}warning(n){const a=this.buildNotifyProps("warning",n);return this.show(a)}error(n){const a=this.buildNotifyProps("error",n);return this.show(a)}close(n){n&&n.unmount()}closeAll(){this.notifyRefs.forEach(n=>{n==null||n.value.closeToast()}),this.notifyRefs.length=0}}const Oe=Symbol("NOTIFY_SERVICE_TOKEN");xe.install=e=>{e.component(xe.name,xe),e.component(Be.name,Be);const n=new va;e.provide(Oe,n),e.provide("FNotifyService",n)};const xa=t.defineComponent({name:"f-expression-textbox",props:ht,setup(e,n){const a=t.inject(Oe),o=t.inject("FLoadingService"),l='<i class="f-icon f-icon-lookup"></i>',i=t.ref(e.modelValue),s=t.ref(e.entities),u=t.ref(e.variables),d=t.ref(),f=t.ref(e.validateMessage||""),v=t.ref("info");async function g(){const{value:x,message:r,messageType:c}=d.value.getExpressionValue();if(f.value=r,v.value=c,e.beforeSubmit&&typeof e.beforeSubmit=="function"){const h=await e.beforeSubmit({notifyService:a,expressionValue:x});if(typeof h=="boolean"&&!h)return!1;if(typeof h=="object"){const{canClose:k,message:F}=h;if(!k)return F&&(a==null||a.error({message:F})),!1}}if(n.emit("update:modelValue",x),i.value=x,e.onSubmitModal){const h={expression:x,message:r};e.showMessageType&&(h.messageType=v.value);const k=e.onSubmitModal(h);e.onExpressionChanged&&e.onExpressionChanged(k)}return!0}const p={title:e.dialogTitle||"表达式编辑器",width:e.dialogWidth||975,height:e.dialogHeight||600,fitContent:!1,minWidth:300,minHeight:200,showMaxButton:!0,resizeable:!0,draggable:!0,buttons:[{name:"reset",text:"清空",class:"btn btn-secondary mr-2",handle:x=>{var r;return(r=d.value)==null||r.resetExpression(),!1}},{name:"cancel",text:"取消",class:"btn btn-secondary",handle:x=>!0},{name:"accept",text:"确定",class:"btn btn-primary",handle:async x=>await g()}]};async function C(){if(e.beforeOpen)try{o==null||o.show();const x=await e.beforeOpen({notifyService:a});if(x)return s.value=x.entities||{},u.value=x.variables||{},f.value=x.message||"",v.value=x.messageType||"info",o==null||o.clearAll(),!0}catch{return a==null||a.error({message:"获取数据失败!"}),!1}finally{o==null||o.clearAll()}return!0}function b(){if(n.emit("update:modelValue",""),i.value="",e.onSubmitModal){const x=e.onSubmitModal({expression:"",message:""});e.onExpressionChanged&&e.onExpressionChanged(x)}}return t.watch(()=>e.modelValue,x=>{i.value=x}),()=>t.createVNode(pe,{editable:!1,enableTitle:!0,modelValue:i.value,"onUpdate:modelValue":x=>i.value=x,disabled:e.disabled,readonly:e.readonly,inputType:"text",enableClear:e.enableClear,buttonContent:l,buttonBehavior:"Modal",modalOptions:p,beforeOpen:C,onClear:b},{default:()=>[t.createVNode("div",{class:"h-100 d-flex flex-column"},[t.createVNode(pa,{ref:d,validateMessage:f.value,showMessageType:e.showMessageType,messageType:v.value,modelValue:i.value,"onUpdate:modelValue":x=>i.value=x,esprimaPath:e.esprimaPath,showMessage:e.showMessage,entities:s.value,variables:u.value,disabledFunctions:e.disabledFunctions,showDataPanel:e.showDataPanel,singleExpand:e.singleExpand,isServerSide:e.isServerSide},null)])]})}});var Ee=(e=>(e[e.Equal=0]="Equal",e[e.NotEqual=1]="NotEqual",e[e.Greater=2]="Greater",e[e.GreaterOrEqual=3]="GreaterOrEqual",e[e.Less=4]="Less",e[e.LessOrEqual=5]="LessOrEqual",e[e.Like=6]="Like",e[e.LikeStartWith=7]="LikeStartWith",e[e.LikeEndWith=8]="LikeEndWith",e[e.NotLike=9]="NotLike",e[e.NotLikeStartWith=10]="NotLikeStartWith",e[e.NotLikeEndWith=11]="NotLikeEndWith",e[e.Is=12]="Is",e[e.IsNot=13]="IsNot",e[e.In=14]="In",e[e.NotIn=15]="NotIn",e))(Ee||{}),ie=(e=>(e[e.Empty=0]="Empty",e[e.And=1]="And",e[e.Or=2]="Or",e))(ie||{}),K=(e=>(e[e.Value=0]="Value",e[e.Expression=1]="Expression",e[e.Variable=2]="Variable",e))(K||{}),gt=(e=>(e.Asc="asc",e.Desc="desc",e))(gt||{});const bt=e=>((e.raw.$type!=="SimpleField"||e.raw.selectable===!1)&&(e.disabled=!0),e);function De(e){const n=[{value:"",label:" "},{value:"(",label:"("},{value:"((",label:"(("},{value:"(((",label:"((("}],a=[{value:"",label:" "},{value:")",label:")"},{value:"))",label:"))"},{value:")))",label:")))"}],o=[{label:"=",value:0},{label:"<>",value:1},{label:">",value:2},{label:">=",value:3},{label:"<",value:4},{label:"<=",value:5},{label:"like %...%",value:6},{label:"like ...%",value:7},{label:"like %...",value:8},{label:"not like %...%",value:9},{label:"not like ...%",value:10},{label:"not like %...",value:11},{label:"is",value:12},{label:"is not",value:13},{label:"in",value:14},{label:"not in",value:15}],l=[{label:" ",value:0},{label:"并且",value:1},{label:"或者",value:2}],i=[{label:"值",value:e!=null&&e.singleValue?K.Value:K.Variable}],s={label:"表达式",value:K.Expression},u=e!=null&&e.enableExpression?[...i,s]:i;return{leftBracketItems:n,righttBracketItems:a,compareOperators:o,relationItems:l,valueTypes:u,sortTypes:[{label:"升序",value:"asc"},{label:"降序",value:"desc"}]}}const Ca=new Map([["appearance",X.resolveAppearance]]),wa={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/combo-list.schema.json",title:"combo-tree",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a combo list",type:"string"},type:{description:"The type string of number combo list component",type:"string",default:"combo-tree"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},editable:{description:"",type:"boolean",default:!0},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:""},lableWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:""},valueField:{description:"",type:"string",default:"id"},titleField:{description:"",type:"string",default:"name"},textField:{description:"",type:"string",default:"name"},data:{description:"",type:"array"},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"string",default:""},formatter:{type:"object",default:null},customRowStatus:{type:"object",default:null},minPanelWidth:{description:"",type:"number",default:160},idField:{description:"",type:"string",default:"id"},multiSelect:{description:"",type:"boolean",default:!1},viewType:{description:"",type:"string",default:"text"},searchFields:{description:"",type:"array",default:[]},enableSearch:{description:"",type:"boolean",default:!1},displayFormatter:{type:"object",default:null},enableClear:{description:"",type:"boolean",default:!0}},required:["id","type"]};function ka(e,n,a){return n}const vt={id:{type:String},data:{type:Array,default:[]},displayText:{type:String,default:""},disabled:{type:Boolean,default:!1},dropDownIcon:{type:String,default:'<span class="f-icon f-icon-arrow-chevron-down"></span>'},editable:{type:Boolean,default:!1},enableClear:{type:Boolean,default:!0},enableSearch:{type:Boolean,default:!1},enableTitle:{type:Boolean,default:!0},fitEditor:{type:Boolean,default:!1},forcePlaceholder:{type:Boolean,default:!1},hidePanelOnClear:{type:Boolean,default:!0},idField:{type:String,default:"id"},mapFields:{type:Object},maxHeight:{type:Number,default:350},maxLength:{type:Number},multiSelect:{type:Boolean,default:!1},modelValue:{type:String,default:""},placeholder:{type:String},placement:{type:String,default:"auto"},readonly:{type:Boolean,default:!1},remoteSearch:{type:Boolean,default:!1},separator:{type:String,default:","},tabIndex:{type:Number,default:-1},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},valueField:{type:String,default:"id"},viewType:{type:String,default:"text"},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},formatter:{type:Function,default:null},displayFormatter:{type:Function,default:null},editorParams:{type:Object},repositoryToken:{type:Symbol,default:null},customRowStatus:{type:Object,default:null},minPanelWidth:{type:Number,default:160},searchFields:{type:Array,default:["name"]}},Fa=X.createPropsResolver(vt,wa,Ca,ka),Sa={data:{type:Array,default:[]},enableSearch:{type:Boolean,default:!1},idField:{type:String,default:"id"},multiSelect:{default:!1,type:Boolean},selectedValues:{type:String,default:""},separator:{type:String,default:","},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},width:{type:Number},height:{type:Number},valueField:{type:String,default:"id"},formatter:{type:Function},maxHeight:{type:Number,default:350},repositoryToken:{type:Symbol,default:null},editorParams:{type:Object},customRowStatus:{type:Object,default:null},searchHandler:{type:Function,default:()=>{}}},Ta=t.defineComponent({name:"FComboTreeContainer",props:Sa,emits:["selectionChange","selectItem","unSelectItem"],setup(e,n){const a=t.ref(e.data),o=t.ref([]),l=t.ref(e.separator),i=t.ref(e.width),s=t.ref(e.height),u=t.ref(e.maxHeight),d=t.ref(String(e.selectedValues).split(l.value)),f=t.ref(),v={customRowStatus:e.customRowStatus};t.watch(()=>e.selectedValues,c=>{d.value=String(c).split(l.value)}),t.watch(()=>e.data,c=>{var h;a.value=c,(h=f.value)==null||h.updateDataSource(c)});const g={enableSelectRow:!0,multiSelect:e.multiSelect,showCheckbox:e.multiSelect,multiSelectMode:"OnCheckAndClick"};let p=null;e.repositoryToken&&(p=t.inject(e.repositoryToken));const C=t.computed(()=>[{field:e.textField,title:"",dataType:"string",formatter:e.formatter}]),b=t.computed(()=>{const c={};return i.value!==void 0&&(c.width=`${i.value}px`),s.value!==void 0&&(c.height=`${s.value}px`),u.value!==void 0&&u.value>0&&(c.maxHeight=`${u.value}px`,c.overflow="auto"),a.value.length===0&&(c.height="200px"),c.position="relative",c});function x(c=[]){c&&c.length>0?(o.value=[...c],d.value=o.value.map(h=>h[e.idField])):(o.value=[],d.value=[]),n.emit("selectionChange",o.value)}t.onMounted(()=>{p&&p.getData(e.editorParams).then(c=>{a.value=c}),d.value&&f.value.activeRowById(d.value[0])});const r=c=>{f.value.selectItemByIds(c)};return n.expose({treeInstance:f,checkItems:r}),()=>t.createVNode("div",{class:"f-combo-tree-container",style:b.value},[e.multiSelect&&e.enableSearch&&t.createVNode("div",{class:"p-2",style:"position: sticky;top:0;z-index: 2; background:white",onMousedown:c=>c.stopPropagation()},[t.createVNode(Ot.FInputGroup,{buttonContent:'<i class="f-icon f-icon-search"></i>',enableClear:!0,placeholder:"请输入搜索内容",onClear:()=>n.emit("clearSearch"),onInput:(c,h)=>e.searchHandler(h)},null)]),t.createVNode(ze,{ref:f,fit:!0,data:a.value,idField:e.idField,columns:C.value,"selection-values":d.value,onSelectionUpdate:x,columnOption:{fitColumns:!0,fitMode:"expand"},rowOption:v,selection:g,rowNumber:{enable:!1},onSelectItem:c=>n.emit("selectItem",c.raw),onUnSelectItem:c=>n.emit("unSelectItem",c.raw)},null)])}});function Na(e){const n=t.ref(""),a=t.ref(e.modelValue),o=t.ref(e.data||[]),l=t.ref(e.editable);function i(g,p=[]){return g=g||[],g.reduce((C,b)=>(b.id=b.id||b.data[e.idField],C.push(b),b.children&&b.children.length&&i(b.children,C),C),p)}function s(g){const p=String(g).split(e.separator).map((r,c)=>[r,c]),C=new Map(p),b=[];return i(o.value,b),b.filter(r=>{const c=r.data?String(r.data[e.valueField]):String(r[e.valueField]);return C.has(c)}).map(r=>r.data?r.data:r).sort((r,c)=>{const h=C.get(String(r[e.valueField]))||0,k=C.get(String(c[e.valueField]))||0;return h-k})}function u(g){const p=s(g),C=e.displayFormatter?e.displayFormatter(p):p.map(b=>b[e.textField]).join(e.separator);n.value=l.value?C||g:C}function d(g){const p=g.split(e.separator).map(x=>[x,!0]),C=new Map(p);let b=[];return o.value[0].data?i(o.value,b):b=o.value,b=b.map(x=>x.data?x.data:x),b.filter(x=>C.has(x[e.textField])||C.has(x[e.valueField]))}function f(g){const p={};return p[e.idField]=g,p[e.textField]=g,[p]}function v(g){let p=d(g);const C=p&&p.length>0;return l.value&&!C&&(p=f(g)),p}return t.watch(()=>e.data,()=>{o.value=e.data}),t.watch([o],([g])=>{if(e.modelValue){const p=g.find(C=>C[e.valueField]===e.modelValue);p&&(n.value=p[e.textField])}}),t.watch(()=>e.modelValue,(g,p)=>{g!==p&&(a.value=g,u(g))}),u(e.modelValue),{dataSource:o,displayText:n,editable:l,modelValue:a,getItemsByDisplayText:d,getItemsByValue:s,getSelectedItemsByDisplayText:v,flatTreeNodes:i}}function Va(e,n){const{comboEditorRef:a,dataSource:o,searchFields:l,originalValue:i,showPopover:s,flatTreeNodes:u}=e;function d(b,x){b.forEach(r=>{const c=x.find(h=>h.id===r.id);r.selectable=c.selectable!=null?!!c.selectable:!0,r.children&&d(r.children,x)})}function f(b,x){const r=(b.children||[]).map(h=>f(h,x)).filter(h=>h!==null);return l.value.some(h=>{var k;return(k=b.data[h])==null?void 0:k.toString().toLowerCase().includes(x.toLowerCase())})?{data:{...b.data},children:b.children,id:b.data[n]}:r.length>0?{data:{...b.data},children:r,id:b.data[n]}:null}function v(){i.value=Q.cloneDeep(o.value)}function g(b){var r;if(s.value||(r=a.value)==null||r.showPopup(),!b){v();return}const x=o.value.map(c=>f(c,b)).filter(c=>c!==null);if(x.length){const c=[];u(o.value,c),d(x,c)}i.value=Q.cloneDeep(x)}const p=Q.debounce(b=>{var r;const x=(r=b.target)==null?void 0:r.value;g(x)},200);function C(b){var r;let x=(r=b.target)==null?void 0:r.value;x!==""&&(x=x.trim()),b.target._value!==x&&p(b)}return{onValueChange:C,resetDataSource:v}}const Ce=t.defineComponent({name:"FComboTree",props:vt,emits:["clear","update:modelValue","change","search"],setup(e,n){const a=t.ref(),o=t.ref(e.disabled),l=t.ref(e.enableClear),i=t.ref(e.enableSearch),s=t.ref(e.readonly),u=t.ref(e.searchFields||[e.textField]),d=t.ref(),f=t.ref();let v={};const{dataSource:g,displayText:p,editable:C,modelValue:b,flatTreeNodes:x}=Na(e),r=t.computed(()=>e.multiSelect);t.computed(()=>a.value?a.value.elementRef.getBoundingClientRect().width:0);const c=t.computed(()=>{var S;const V=(S=a.value)==null?void 0:S.popoverRef;return V?V.shown:!1}),{onValueChange:h,resetDataSource:k}=Va({comboEditorRef:a,dataSource:g,searchFields:u,originalValue:d,showPopover:c,flatTreeNodes:x},e.idField);function F(){!r.value&&a.value&&a.value.hidePopup()}const y=V=>{const S=V==null?void 0:V.map(E=>E.data||E);return e.displayFormatter?e.displayFormatter(S):S.map(E=>E[e.textField]).join(e.separator)};function m(V=[]){if(!r.value)p.value=y(V),b.value=V.map(S=>S.data?S.data[e.valueField]:S[e.valueField]).join(e.separator),n.emit("update:modelValue",b.value),n.emit("change",V,b.value);else{const S=Object.keys(v),E=Object.values(v);p.value=y(E),b.value=S.join(e.separator),n.emit("update:modelValue",b.value),n.emit("change",E,b.value)}F()}function w(V){var S;b.value="",v={},c.value&&((S=a.value)==null||S.hidePopup()),n.emit("update:modelValue",""),n.emit("change",null,b.value),n.emit("clear")}function T(V){r.value&&(delete v[V.id],m())}function j(V){r.value&&(v[V.id]=V,m())}t.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([V,S,E,D,P])=>{o.value=V,C.value=S,l.value=E,i.value=D,s.value=P});const I=()=>{if(d.value=Q.cloneDeep(g.value),r.value&&b.value){const V=[];x(g.value,V),b.value.split(e.separator).reduce((S,E)=>(S[E]=V.find(D=>D.id===E),S),v)}};function O(){k(),setTimeout(()=>{var V;(V=f.value)==null||V.checkItems(b.value.split(e.separator))})}return()=>t.createVNode(me,{ref:a,id:e.id,disable:o.value,readonly:s.value,forcePlaceholder:e.forcePlaceholder,editable:C.value&&!e.multiSelect,buttonContent:e.dropDownIcon,placeholder:e.placeholder,enableClear:l.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,inputType:e.viewType,popupOnClick:!0,modelValue:p.value,"onUpdate:modelValue":V=>p.value=V,onClear:w,onInput:h,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,beforeOpen:I,placement:e.placement,popupMinWidth:e.minPanelWidth},{default:()=>[c.value&&t.createVNode(Ta,{ref:f,maxHeight:e.maxHeight,multiSelect:e.multiSelect,enableSearch:e.enableSearch,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,data:d.value,selectedValues:b.value,onSelectionChange:m,formatter:e.formatter,editorParams:e.editorParams,repositoryToken:e.repositoryToken,customRowStatus:e.customRowStatus,searchHandler:h,onUnSelectItem:T,onSelectItem:j,onClearSearch:O},null)]})}});Ce.register=(e,n,a,o)=>{e["combo-tree"]=Ce,n["combo-tree"]=Fa},G.withInstall(Ce);function Pe(e){function n(a,o,l="filterField"){return t.createVNode(Ce,{formatter:e.formatter,modelValue:a[l],"onUpdate:modelValue":i=>a[l]=i,data:o,textField:e.textField||"name",valueField:e.valueField||"path",idField:e.idField||"id",enableClear:!1,minPanelWidth:220,customRowStatus:bt},null)}return{renderFieldsComboTree:n}}function Ie(e,n,a){const o=t.ref(e.activeIndex),l=t.ref(e.conditions),i=t.ref(e.fields);t.watch(()=>e.fields,p=>{i.value=p}),t.watch(()=>e.conditions,p=>{l.value=p}),t.watch(()=>e.activeIndex,p=>{o.value=p});const s=t.computed(()=>a.value.querySelector(`tr[index="${o.value}"]`));function u(){const p=s.value;p&&(p.scrollIntoView?p.scrollIntoView({block:"center",behavior:"smooth"}):p.scrollIntoViewIfNeeded&&p.scrollIntoViewIfNeeded(!1))}const d=t.computed(()=>p=>({"fv-grid-row-selected":p===o.value}));function f(p,C){C.stopPropagation(),n.emit("insert",{index:p,$event:C})}function v(p,C){C.stopPropagation(),n.emit("remove",{index:p,$event:C})}function g(p,C){n.emit("rowClick",{item:p,index:C})}return{itemIntoView:u,activeRowCls:d,fields:i,activeIndex:o,selectedRowRef:s,conditions:l,tbodyRef:a,onInsert:f,onRemove:v,onRowClick:g}}const Ma=t.defineComponent({name:"filter-condition-grid",props:Xe,emits:["insert","remove","rowClick"],setup(e,n){const{compareOperators:a,leftBracketItems:o,valueTypes:l,relationItems:i,righttBracketItems:s}=De(e),{renderFieldsComboTree:u}=Pe(e),d=t.ref(),{conditions:f,fields:v,onInsert:g,onRemove:p,onRowClick:C,activeRowCls:b,itemIntoView:x}=Ie(e,n,d),r=t.ref(e.expressionOptions||{});function c(k){var F,y;switch(k.expresstype){case K.Variable:return t.createVNode(Bt,{modelValue:k.value,"onUpdate:modelValue":m=>k.value=m,showOutline:!1,fieldData:(F=e.formContextData)==null?void 0:F.fieldData,varData:(y=e.formContextData)==null?void 0:y.varData},null);case K.Expression:return t.createVNode(xa,t.mergeProps({modelValue:k.value,"onUpdate:modelValue":m=>k.value=m},r.value),null);case K.Value:default:return t.createVNode(pe,{enableTitle:!0,buttonContent:"",popupOnClick:!0,modelValue:k.value,"onUpdate:modelValue":m=>k.value=m},null)}}function h(k,F,y){return t.createVNode(le,{data:F,modelValue:k[y],"onUpdate:modelValue":m=>k[y]=m,textField:"label",valueField:"value",idField:"value",enableClear:!1,minPanelWidth:130,placement:"auto"},null)}return t.onUpdated(()=>{x()}),()=>t.createVNode("div",{class:"fv-filter-condition-grid table-body f-utils-fill win11Scroll show nobtn",style:"margin-left:14px; margin-right: 0; overflow-y: scroll;"},[t.createVNode("table",{class:"table table-bordered",style:"margin-bottom: 0;"},[t.createVNode("thead",{style:"position: sticky; top: 0; z-index: 1;"},[t.createVNode("tr",null,[t.createVNode("th",{style:"width: 40px"},null),t.createVNode("th",{style:"width: 45px"},[t.createVNode("b",null,[t.createTextVNode("左括号")])]),t.createVNode("th",{style:"width: 90px"},[t.createVNode("b",null,[t.createTextVNode("字段")])]),t.createVNode("th",{style:"width: 70px"},[t.createVNode("b",null,[t.createTextVNode("操作符")])]),t.createVNode("th",{style:"width: 60px"},[t.createVNode("b",null,[t.createTextVNode("值类型")])]),t.createVNode("th",{style:"width: 100px"},[t.createVNode("b",null,[t.createTextVNode("值")])]),t.createVNode("th",{style:"width: 45px"},[t.createVNode("b",null,[t.createTextVNode("右括号")])]),t.createVNode("th",{style:"width: 60px"},[t.createVNode("b",null,[t.createTextVNode("关系")])])])]),t.createVNode("tbody",{ref:d},[f.value.map((k,F)=>t.createVNode("tr",{index:F,class:b.value(F),onClick:y=>C(k,F)},[t.createVNode("td",{style:"text-overflow: unset;",align:"center",class:"px-1"},[t.createVNode("button",{title:"插入",onClick:y=>g(F,y),type:"button",class:"btn btn-link p-1 mr-0"},[t.createVNode("span",{class:"f-icon f-icon-plus"},null)]),t.createVNode("button",{title:"移除",onClick:y=>p(F,y),type:"button",class:"btn btn-link p-1 m-0"},[t.createVNode("span",{class:"f-icon f-icon-minus"},null)])]),t.createVNode("td",{class:"px-1"},[h(k,o,"lbracket")]),t.createVNode("td",{class:"px-1"},[u(k,v.value,"filterField")]),t.createVNode("td",{class:"px-1"},[h(k,a,"compare")]),t.createVNode("td",{class:"px-1"},[h(k,l,"expresstype")]),t.createVNode("td",{class:"px-1"},[c(k)]),t.createVNode("td",{class:"px-1"},[h(k,s,"rbracket")]),t.createVNode("td",{class:"px-1"},[h(k,i,"relation")])]))])])])}}),Ba={width:{Type:Number,default:400},type:{Type:String,default:"info"},title:{Type:String,default:""},detail:{Type:String,default:""},okButtonText:{Type:String,default:"确定"},showOkButton:{Type:Boolean,default:!0},showCancelButton:{Type:Boolean,default:!0},cancelButtonText:{Type:String,default:"取消"},exceptionInfo:{Type:Object,default:null},promptEditorType:{Type:String,default:"text-area"},buttons:{type:Object,default:[]}};function je(){return new DOMException("The request is not allowed","NotAllowedError")}async function Oa(e){if(!navigator.clipboard)throw je();return navigator.clipboard.writeText(e)}async function Ea(e){const n=document.createElement("span");n.textContent=e,n.style.whiteSpace="pre",n.style.webkitUserSelect="auto",n.style.userSelect="all",document.body.appendChild(n);const a=window.getSelection(),o=window.document.createRange();a==null||a.removeAllRanges(),o.selectNode(n),a==null||a.addRange(o);let l=!1;try{l=window.document.execCommand("copy")}finally{a==null||a.removeAllRanges(),window.document.body.removeChild(n)}if(!l)throw je()}async function Da(e){try{await Oa(e)}catch(n){try{await Ea(e)}catch(a){throw a||n||je()}}}function Pa(){async function e(n){await Da(n)}return{onCopy:e}}function Ia(e,n,a,o){const l=t.ref(14),i=t.ref(140),s=t.ref(""),u=t.ref(o.value.length),d=t.computed(()=>o.value),f=t.computed(()=>({"font-size":`${l.value}px`,height:"100%"}));function v(g){if(g.currentTarget){const p=g.currentTarget.value||"";u.value=p.length}}return()=>t.createVNode(t.Fragment,null,[t.createVNode("textarea",{title:"promptMessage",name:"promptMessage",class:"form-control",style:f.value,rows:"4",maxlength:i.value,onInput:g=>v(g)},[d.value]),t.createVNode("span",{class:"textarea-wordcount",title:s.value,style:"position: absolute; bottom: 76px; right: 32px; cursor: pointer; text-align: right;"},[u.value+" / "+i.value])])}function ja(e,n,a,o){const l=Ia(e,n,a,o),i=new Map([["text-area",l]]);function s(u){return i.get(u)||null}return{getEditorRender:s}}function Ra(){const e=t.ref(!1),n=t.ref("复制成功");return{feedbackStyle:t.computed(()=>{const o={position:"absolute",left:"50%",top:"50%","min-width":"100px",height:"40px",background:"#303C53","line-height":"40px","text-align":"center","margin-left":"-30px","margin-top":"-50px","border-radius":"10px","box-shadow":"0px 2px 8px 0px",color:"#fff",transition:"all .3s ease",padding:"0 10px"};return o.opacity=e.value?"0.8":"0",o.display=e.value?"":"none",o}),feedbackMessage:n,toShowFeedback:e}}function La(e,n){const a=n.getEditorRender(e.promptEditorType);return()=>a&&a()}function $a(e,n){function a(C){if(C==null)return 0;let b=0;for(let x=0;x<C.length;x++){const r=C.charCodeAt(x);r>=0&&r<=128?b++:b=b+2}return b}function o(C,b){if(C!==""&&C!==void 0&&C!==null){C=""+C;const x=C.length;let r="",c=0;for(let h=0;h<x;h++){const k=C.charAt(h);if(c++,encodeURI(k).length>4&&c++,r=r.concat(k),c>=b)return r=r.concat("..."),r}if(c<b)return C}return""}const l=t.computed(()=>!!e.value&&!!e.value.date),i=t.computed(()=>{const C=e.value&&e.value.date||"";return`${n.exception.happend} : ${C}`}),s=t.computed(()=>!!e.value&&!!e.value.detail),u=t.computed(()=>e.value?a(e.value.detail)>160:!1),d=t.ref(!1),f=t.computed(()=>d.value?n.exception.collapse:n.exception.expand),v=t.computed(()=>{const C=n.exception.detail+" : "+(e.value&&e.value.detail)||"";return d.value?C:o(C,160)}),g=t.computed(()=>({bottom:d.value?0:"2px"}));function p(){d.value=!d.value}return()=>t.createVNode("div",{class:"toast-msg-detail",style:"max-height: calc(100vh - 200px);overflow: auto;"},[l.value&&t.createVNode("div",null,[i.value]),s.value&&t.createVNode("div",{class:"exception_wrap"},[t.createVNode("div",{class:"exception_error_msg"},[t.createVNode("div",{innerHTML:v.value},null),u.value&&t.createVNode("span",{class:"exception_toggle_detail",style:g.value,onClick:p},[f.value])])])])}function Aa(e){return()=>t.createVNode("p",{class:"toast-msg-detail",innerHTML:e.value,style:"max-height: calc(100vh - 200px);overflow: auto;"},null)}function za(e,n,a,o,l){const i=t.ref(e.exceptionInfo),s=t.computed(()=>{const b=n.value==="question"?"warning":n.value,x={"f-icon":!0},r=`f-icon-${b}`;return x[r]=!0,x}),u=t.computed(()=>a.value||i.value&&i.value.message),d=t.computed(()=>o.value),f=t.computed(()=>!!o.value),v=t.computed(()=>!!i.value);function g(){return v.value?$a(i,l):f.value?Aa(d):()=>null}const p=g(),C=t.computed(()=>l.locale==="en"?{wordBreak:"keep-all",overflowWrap:"break-word"}:{});return()=>t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"float-left modal-tips-iconwrap"},[t.createVNode("span",{class:s.value},null)]),t.createVNode("div",{class:"modal-tips-content"},[t.createVNode("p",{class:"toast-msg-title",innerHTML:u.value,style:C.value},null),p()])])}function Ha(e,n,a,o){const{onCopy:l}=n,{toShowFeedback:i}=a,s=t.ref(o.exception.copySuccess||"复制成功"),u=t.ref(o.exception.copy||"复制详细信息"),d=t.ref(e.exceptionInfo||{date:"",message:"",detail:""}),f=t.computed(()=>d.value&&d.value.detail||"");function v(g){l(f.value).catch(p=>{s.value=o.exception.copyFailed||"复制失败"}).finally(()=>{i.value=!0,setTimeout(()=>{i.value=!1},700)})}return()=>t.createVNode("span",{class:"copy-exception-info"},[t.createVNode("span",{onClick:v,style:"cursor: pointer;"},[u.value])])}function Wa(e,n,a,o,l){const i=t.ref(e.type),s=t.ref(e.buttons),u=t.ref(e.exceptionInfo),d=t.ref(l.ok||e.okButtonText),f=t.ref(l.cancel||e.cancelButtonText),v=t.ref(e.showCancelButton),g=t.ref(e.showOkButton),p=t.computed(()=>!!(s.value&&s.value.length)),C=t.computed(()=>!!(u.value&&u.value.detail)),b=t.computed(()=>!(s.value&&s.value.length)&&(g.value||v.value)),x=Ha(e,a,o,l);d.value==="关闭"?d.value=l.close:d.value==="知道了"&&(d.value=l.exception.roger);function r(h){i.value==="question"&&n.emit("reject"),n.emit("close")}function c(h){i.value==="question"&&n.emit("accept"),n.emit("close")}return()=>t.createVNode("div",{class:"modal-footer"},[C.value&&x(),b.value&&v.value&&t.createVNode("button",{type:"button",class:"btn btn-secondary btn-lg",onClick:r},[f.value]),b.value&&g.value&&t.createVNode("button",{type:"button",class:"btn btn-primary btn-lg",onClick:c},[d.value]),p.value&&s.value.length&&s.value.map(h=>t.createVNode("button",{type:"button",onClick:h.handle,class:h.class},[h.iconClass&&t.createVNode("span",{class:h.iconClass},null),h.text]))])}function qa(e){const{getLocaleValue:n}=q.LocaleService,a=q.LocaleService.getLocale();function o(l,i,s){return i===s?n(l):i}return{yes:o("messageBox.yes")||"是",no:o("messageBox.no")||"否",close:o("messageBox.close")||"关闭",ok:o("messageBox.ok",e.okButtonText,"确定")||"确定",cancel:o("messageBox.cancel",e.cancelButtonText,"取消")||"取消",title:o("messageBox.title")||"系统提示",errorTitle:o("messageBox.errorTitle")||"错误提示",exception:{expand:o("messageBox.exception.expand")||"展开",collapse:o("messageBox.exception.collapse")||"收起",happend:o("messageBox.exception.happend")||"发生时间",detail:o("messageBox.exception.detail")||"详细信息",copy:o("messageBox.exception.copy")||"复制详细信息",copySuccess:o("messageBox.exception.copySuccess")||"复制成功",copyFailed:o("messageBox.exception.copyFailed")||"复制失败",roger:o("messageBox.exception.roger")||"知道了"},locale:a}}const we=t.defineComponent({name:"FMessageBox",props:Ba,emits:["accept","reject","close"],setup(e,n){const a=qa(e),o=t.ref(e.type),l=t.ref(e.title),i=t.ref(e.detail),s=t.computed(()=>{const c={"modal-tips":!0,"d-flex":!0,"flex-row":!0},h=`messager-type-${o.value}`;return c[h]=!0,c}),u=t.computed(()=>{const c={cursor:"default"};return o.value==="prompt"?c.padding="0.5rem 0.5rem 1rem 1.5rem":o.value==="error"&&(c.padding="0.5rem 1.5rem 1rem 1.5rem"),c}),d=Pa(),f=ja(e,o,l,i),v=Ra(),{feedbackStyle:g,feedbackMessage:p}=v;p.value=a.exception.copySuccess;function C(){return t.createVNode("div",{style:g.value},[p.value])}function b(){switch(o.value){case"prompt":return La(e,f);default:return za(e,o,l,i,a)}}const x=b(),r=Wa(e,n,d,v,a);return()=>t.createVNode("div",{class:"farris-messager"},[!e.exceptionInfo&&t.createVNode("div",{style:"height: 30px;width: 100%;position: absolute;",class:"messager-draggable"},null),t.createVNode("section",{class:s.value,style:u.value},[x()]),r(),C()])}}),J=class J{static show(n){const a=t.reactive({...n}),o=!1,l=a.type==="error"||a.type==="prompt",i=a.type==="error"?"错误提示":a.type==="prompt"&&a.title||"",s=a.acceptCallback||(()=>{}),u=a.rejectCallback||(()=>{});let d=null,f=new qe(J.app);const v=()=>{d&&(d==null||d.destroy(),f=null)};return d=f==null?void 0:f.open({class:"modal-message modal-message-type-info",title:i,showButtons:o,showHeader:l,width:a.width||400,fitContent:!0,showMaxButton:!1,draggable:!0,dragHandle:".messager-draggable",render:()=>t.createVNode(we,t.mergeProps(a,{onAccept:s,onReject:u,onClose:v}),null)}),f==null?void 0:f.getCurrentModal()}static info(n,a){const o=t.reactive({type:"info",title:n,detail:a,okButtonText:"知道了",showCancelButton:!1});J.show(o)}static warning(n,a){const o=t.reactive({type:"warning",title:n,detail:a,okButtonText:"知道了",showCancelButton:!1});J.show(o)}static success(n,a){const o=t.reactive({type:"success",title:n,detail:a,okButtonText:"关闭",showCancelButton:!1});J.show(o)}static error(n,a,o){const l=t.reactive({width:500,type:"error",okButtonText:"关闭",showCancelButton:!1,exceptionInfo:{date:o,message:n,detail:a}});J.show(l)}static prompt(n,a){const o=t.reactive({type:"prompt",title:n,detail:a,okButtonText:"确定",cancelButtonText:"取消"});J.show(o)}static question(n,a,o,l){const i=t.reactive({type:"question",title:n,detail:a,okButtonText:"确定",cancelButtonText:"取消",acceptCallback:o,rejectCallback:l});J.show(i)}};Z(J,"app",null);let re=J;we.install=e=>{e.component(we.name,we),re.app=e,e.provide("FMessageBoxService",re)};const xt=t.defineComponent({name:"filter-condition-actions",props:["canClear","canMove","questionMessage"],emits:["add","clear","moveTop","movePrev","moveNext","moveBottom"],setup(e,n){const a=t.ref(e.questionMessage||"确定要清空所有数据吗?"),o={position:"relative",top:"2px"};function l(){n.emit("add")}function i(){re.question(a.value,"",()=>{n.emit("clear")},()=>{})}function s(){n.emit("moveTop")}function u(){n.emit("movePrev")}function d(){n.emit("moveNext")}function f(){n.emit("moveBottom")}return()=>t.createVNode("div",{class:"px-2 d-flex align-items-center",style:"height: 36px;background: #f0f0f0; margin-left: 14px; margin-right: 14px;"},[t.createVNode("button",{type:"button",onClick:l,class:"btn btn-default f-btn-ml"},[t.createVNode("span",{class:"f-icon f-icon-add",style:o},null),t.createTextVNode("添加")]),t.createVNode("button",{type:"button",onClick:i,disabled:!e.canClear.value,class:"btn btn-default f-btn-ml"},[t.createVNode("span",{class:"f-icon f-icon-close",style:o},null),t.createTextVNode("清空")]),t.createVNode("button",{type:"button",onClick:s,disabled:!e.canMove.value("up"),class:"btn btn-default f-btn-ml"},[t.createVNode("span",{class:"f-icon f-icon-arrow-end-up",style:o},null),t.createTextVNode("置顶")]),t.createVNode("button",{type:"button",onClick:u,disabled:!e.canMove.value("up"),class:"btn btn-default f-btn-ml"},[t.createVNode("span",{class:"f-icon f-icon-arrow-60-up",style:o},null),t.createTextVNode("上移")]),t.createVNode("button",{type:"button",onClick:d,disabled:!e.canMove.value("down"),class:"btn btn-default f-btn-ml"},[t.createVNode("span",{class:"f-icon f-icon-arrow-60-down",style:o},null),t.createTextVNode("下移")]),t.createVNode("button",{type:"button",onClick:f,disabled:!e.canMove.value("down"),class:"btn btn-default f-btn-ml"},[t.createVNode("span",{class:"f-icon f-icon-arrow-end-down",style:o},null),t.createTextVNode("置底")])])}}),Ua=t.defineComponent({name:"sort-editor-grid",props:Xe,emits:["insert","remove","rowClick"],setup(e,n){const{sortTypes:a}=De(),{renderFieldsComboTree:o}=Pe(e),l=t.ref(),{conditions:i,fields:s,onInsert:u,onRemove:d,onRowClick:f,activeRowCls:v,itemIntoView:g}=Ie(e,n,l);return t.onUpdated(()=>{g()}),()=>t.createVNode("div",{class:"table-body f-utils-fill win11Scroll show nobtn ",style:"margin-left:14px; margin-right: 0; overflow-y: scroll;"},[t.createVNode("table",{class:"table table-bordered",style:"margin-bottom: 0;"},[t.createVNode("thead",{style:"position: sticky; top: 0; z-index: 1;"},[t.createVNode("tr",null,[t.createVNode("th",{style:"width: 40px"},null),t.createVNode("th",{style:"width: 100px"},[t.createVNode("b",null,[t.createTextVNode("字段")])]),t.createVNode("th",{style:"width: 60px"},[t.createVNode("b",null,[t.createTextVNode("排序")])])])]),t.createVNode("tbody",{ref:l},[i.value.map((p,C)=>t.createVNode("tr",{index:C,class:v.value(C),onClick:b=>f(p,C)},[t.createVNode("td",{style:"text-overflow: unset;",align:"center",class:"px-1"},[t.createVNode("button",{title:"插入",onClick:b=>u(C,b),type:"button",class:"btn btn-link p-1 mr-0"},[t.createVNode("span",{class:"f-icon f-icon-plus"},null)]),t.createVNode("button",{title:"移除",onClick:b=>d(C,b),type:"button",class:"btn btn-link p-1 m-0"},[t.createVNode("span",{class:"f-icon f-icon-minus"},null)])]),t.createVNode("td",{class:"px-1"},[o(p,s.value,"sortField")]),t.createVNode("td",{class:"px-1"},[t.createVNode(le,{data:a,textField:"label",valueField:"value",idField:"value",modelValue:p.sortType,"onUpdate:modelValue":b=>p.sortType=b,enableClear:!1,minPanelWidth:130,placement:"auto"},null)])]))])])])}});function Ct(e,n){const a=t.ref(-1);function o(){return n.value[a.value]}function l(){n.value.length>0?a.value=0:a.value=-1}const i=t.computed(()=>e.displayText?e.displayText:typeof e.modelValue=="string"?e.modelValue:""),s=e.editorType!=="sort"?"filterField":"sortField",u=e.editorType!=="sort"?{filterField:"",value:"",lbracket:"",rbracket:"",relation:ie.Empty,compare:Ee.Equal,expresstype:e.singleValue?K.Value:K.Variable}:{sortField:"",sortType:"asc"},d=t.computed(()=>n.value.length>0),f=t.computed(()=>(m="down")=>n.value.length>1?m==="up"?a.value>0:a.value<n.value.length-1:!1);function v(){if(e.editorType==="filter")for(let m=0;m<n.value.length-1;m++){const w=n.value[m];(w.relation===ie.Empty||!w.relation)&&(w.relation=ie.And)}}function g(){const m=Object.assign({},u);n.value=[...n.value,m];const w=n.value.length-1;a.value=w,v()}function p({index:m}){const w=Object.assign({},u);e.insertType==="above"?m===0?n.value.unshift(w):n.value.splice(m,0,w):n.value.splice(m+1,0,w),n.value=[...n.value],v()}function C({index:m}){n.value.splice(m,1),n.value=[...n.value],!(a.value<0)&&(m===a.value?n.value[m]?a.value=m:n.value[m-1]?a.value=m-1:a.value=-1:m<a.value&&(n.value[a.value-1]?a.value=a.value-1:n.value[a.value]||(a.value=-1)))}function b(){n.value=[]}function x(){a.value>=0&&(n.value.unshift(o()),n.value.splice(a.value+1,1),a.value=0)}function r(){if(a.value>=0){const m=a.value,w=n.value.splice(m,1);n.value.splice(m-1,0,...w),a.value=m-1}}function c(){if(a.value>=0){const m=a.value,w=n.value.splice(m,1);n.value.splice(m+1,0,...w),a.value=m+1}}function h(){a.value>=0&&(n.value.push(o()),n.value.splice(a.value,1),a.value=n.value.length-1)}function k({index:m}){a.value=m}function F(m){if(m.length%2!==0)return!1;let w="";for(const T of m)if(T==="(")w+=T;else if(T===")"){if(!w.endsWith("("))return!1;w=w.slice(0,-1)}return w.length===0}function y(){const m=n.value.length;if(!m)return!0;let w=!0,T=!0;if(e.editorType!=="sort"){n.value[m-1].relation=ie.Empty,T=!n.value.slice(0,-1).some(V=>V.relation===ie.Empty||!V.relation);const O=n.value.flatMap(V=>[V.lbracket,V.rbracket]).join("");w=F(O)}const j=n.value.some(I=>!I[s]);return[{result:w,message:"括号不匹配,请检查。"},{result:T,message:"关系设置不完整,请检查。"},{result:!j,message:"字段不允许为空,请检查。"}].find(I=>!I.result)}return{displayText:i,activeRowIndex:a,canClear:d,canMove:f,onAddFilter:g,onRemove:C,onInsert:p,onClear:b,onMoveTop:x,onMovePrev:r,onMoveNext:c,onMoveBottom:h,onSelectRow:k,validateCondition:y,resetActiveRow:l}}const ke=t.defineComponent({name:"filter-condition-editor",props:Fe,emits:["update:modelValue"],setup(e,n){const a=t.inject(e.repositoryToken),o=t.inject(Oe),l=t.inject("FLoadingService");o&&(o.globalConfig={position:"top-center"});const i=t.ref(e.expressionOptions||{}),s=t.ref(e.formContextData||{}),u=t.ref(e.fields||[]),d='<i class="f-icon f-icon-lookup"></i>',f=t.ref([]),v=t.ref([]),{displayText:g,onAddFilter:p,onClear:C,onMoveBottom:b,onMoveNext:x,onMovePrev:r,onMoveTop:c,onInsert:h,onRemove:k,activeRowIndex:F,onSelectRow:y,canClear:m,canMove:w,validateCondition:T,resetActiveRow:j}=Ct(e,f),I=t.computed(()=>e.editorType==="sort"?"排序条件编辑器":"过滤条件编辑器");function O(){return e.editorType==="sort"?t.createVNode(Ua,{conditions:f.value,fields:u.value,activeIndex:F.value,onInsert:M=>h(M),onRemove:M=>k(M),idField:e.idField,onRowClick:M=>y(M)},null):t.createVNode(Ma,{singleValue:e.singleValue,expressionOptions:i.value,enableExpression:e.enableExpression,conditions:f.value,fields:u.value,idField:e.idField,activeIndex:F.value,onInsert:M=>h(M),onRemove:M=>k(M),onRowClick:M=>y(M),formContextData:s.value},null)}const V=t.computed(()=>JSON.stringify(f.value)===JSON.stringify(v.value)),S=t.computed(()=>e.disableConfirmWhenUnchanged&&V.value);async function E(){if(n.emit("update:modelValue",f.value),e.onSubmitModal){l==null||l.show();const M=await e.onSubmitModal({loadingService:l,repository:a,conditions:f,originalConditions:v,FMessageBoxService:re});return l==null||l.clearAll(),M&&(F.value=-1,o.success("过滤条件配置成功!")),M}return!0}const D={title:I.value,width:800,height:600,fitContent:!1,minWidth:300,minHeight:200,showMaxButton:!0,resizeable:!0,draggable:!0,closedCallback:()=>{F.value=-1},buttons:[{name:"cancel",text:"取消",class:"btn btn-secondary",handle:M=>!0},{name:"accept",text:"确定",class:"btn btn-primary",disabled:S,handle:async M=>{const $=T();return V.value?!0:typeof $=="object"&&$!==null&&$&&$.message?(o.warning($.message),!1):await E()}}]};async function P(){if(e.beforeOpen)try{l==null||l.show();const M=await e.beforeOpen({repository:a,notifyService:o});if(M){const{fieldList:$,conditionList:z,entities:H,variables:Re,formContextData:se,isServerSide:Le}=M;return u.value=$||[],f.value=z||[],v.value=JSON.parse(JSON.stringify(f.value)),i.value={entities:H,variables:Re,isServerSide:Le},s.value=se||{},l==null||l.clearAll(),j(),!0}}catch{return o==null||o.error({message:"获取数据失败!"}),!1}finally{l==null||l.clearAll()}return j(),!0}function A(){n.emit("update:modelValue","")}function B(M){n.emit("update:modelValue",M)}return()=>t.createVNode(pe,{modelValue:g.value,editable:e.editable,disabled:e.disabled,readonly:e.readonly,inputType:"text",enableClear:e.enableClear,buttonContent:d,buttonBehavior:"Modal",modalOptions:D,beforeOpen:P,onClear:A,enableTitle:e.enableTitle,"onUpdate:modelValue":B},{default:()=>[t.createVNode("div",{class:"h-100 d-flex flex-column"},[t.createVNode("div",{style:"border-top: 1px solid white; position: absolute; top: 0; width: 100%; z-index: 2;",class:"shading-border-top"},null),O(),t.createVNode(xt,{canClear:m,canMove:w,onAdd:p,onClear:C,onMoveBottom:b,onMoveNext:x,onMovePrev:r,onMoveTop:c},null)])]})}}),Ya={install(e){e.component(ke.name,ke)},register(e,n,a,o){e["filter-condition-editor"]=ke,n["filter-condition-editor"]=Ge}};R.Compare=Ee,R.ConditionActions=xt,R.FilterConditionEditor=ke,R.FilterRelation=ie,R.SortType=gt,R.ValueType=K,R.default=Ya,R.filterConditionEditorProps=Fe,R.propsResolver=Ge,R.treeNodeStatus=bt,R.useConditionData=Ct,R.useConditionEditor=Ie,R.useConstantData=De,R.useFieldsTree=Pe,Object.defineProperties(R,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|