@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(e,t){typeof exports=="object"&&typeof module<"u"?t(exports):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e["expression-editor"]={}))})(this,function(e){"use strict";const t={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}};e.expressionEditorProps=t,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(H,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("../dynamic-resolver/index.umd.js"),require("../common/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../button-edit/index.umd.js"),require("../locale/index.umd.js"),require("lodash-es"),require("../list-view/index.umd.js"),require("../../designer/button-edit/index.umd.js"),require("../property-panel/index.umd.js"),require("../tree-view/index.umd.js"),require("../tags/index.umd.js"),require("../popover/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../dynamic-resolver/index.umd.js","../common/index.umd.js","../designer-canvas/index.umd.js","../button-edit/index.umd.js","../locale/index.umd.js","lodash-es","../list-view/index.umd.js","../../designer/button-edit/index.umd.js","../property-panel/index.umd.js","../tree-view/index.umd.js","../tags/index.umd.js","../popover/index.umd.js"],t):(H=typeof globalThis<"u"?globalThis:H||self,t(H["expression-editor"]={},H.Vue,H.dynamicResolver,H.common,H.designerCanvas,H.FButtonEdit$1,H.locale,H.LodashES,H.FListView,H.FButtonEditDesign,H.propertyPanel,H.FTreeView,H.FTags,H.FPopover))})(this,function(H,t,U,G,se,he,K,ne,at,ot,it,lt,rt,st){"use strict";var va=Object.defineProperty;var ba=(H,t,U)=>t in H?va(H,t,{enumerable:!0,configurable:!0,writable:!0,value:U}):H[t]=U;var J=(H,t,U)=>ba(H,typeof t!="symbol"?t+"":t,U);const Te={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}},Se=new Map([["appearance",U.resolveAppearance]]);function Ne(e,n,a){return n}const ct={$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"]},ut={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"}}}}},ge={customStyle:{type:String,defaut:""},customClass:{type:String,defaut:""}},Me=U.createPropsResolver(ge,ct,Se,Ne,ut);function Oe(e){const n=t.ref(-1),a=t.ref(-1),o=t.ref(0),i=t.ref(0),l=t.ref(!1),r=t.ref(!1),u=t.computed(()=>({display:l.value?"block":"none",left:`${o.value}px`,cursor:"e-resize"})),f=t.computed(()=>({display:r.value?"block":"none",top:`${i.value}px`,cursor:"n-resize"})),m=t.computed(()=>{const s={display:r.value||l.value?"block":"none"};return i.value>0&&(s.cursor="n-resize"),s});function g(s,d,p,C){const x=e.value;if(x){const{left:c,right:y,width:b}=x.getBoundingClientRect();let N=s.clientX-c;C==="right"&&(N=y-s.clientX),N>d&&(N=d),N<p&&(N=p),C==="right"&&(N=b-N),o.value=N}}function h(s,d,p,C){const x=e.value;if(x){const{top:c,bottom:y,height:b}=x.getBoundingClientRect();let N=s.clientY-c;C==="bottom"&&(N=y-s.clientY),N>d&&(N=d),N<p&&(N=p),C==="bottom"&&(N=b-N),i.value=N}}function v(){const s=e.value;if(s){const{width:d,height:p}=s.getBoundingClientRect();return{width:d,height:p}}return null}function T(){const s=e.value;return s?Array.from(s.querySelectorAll("[data-position]")).reduce((d,p)=>{const C=p.getAttribute("data-position");return d=Object.assign(d,{[C]:p}),d},{}):null}function w(s,d){const p=v(),C=T();if(p&&C){const x=C==null?void 0:C.right,c=C==null?void 0:C.left;if(s==="left"&&c)return x?p.width-x.clientWidth-d:p.width-d;if(s==="right"&&x)return c?p.width-c.clientWidth-d:p.width-d}}function k(s,d){const p=v(),C=T();if(p&&C){const x=C==null?void 0:C.bottom,c=C==null?void 0:C.top;if(s==="top"&&c)return x?p.height-x.clientHeight-d:p.height-d;if(s==="bottom"&&x)return c?p.height-c.clientHeight-d:p.height-d}}return{horizontalResizeHandleStyle:u,verticalResizeHandleStyle:f,resizeOverlayStyle:m,showHorizontalResizeHandle:l,showVerticalResizeHandle:r,horizontalResizeBarPosition:n,verticalResizeBarPosition:a,verticalResizeHandleOffset:i,horizontalResizeHandleOffset:o,draggingHorizontalResizeHandle:g,draggingVerticalResizeHandle:h,getPanelMaxHeight:k,getPanelMaxWidth:w}}const Z=t.defineComponent({name:"FLayout",props:ge,emits:[],setup(e,n){const a=t.ref(),o=Oe(a),{horizontalResizeHandleStyle:i,verticalResizeHandleStyle:l,resizeOverlayStyle:r}=o;t.provide("layout",{useResizeHandleComposition:o});const u=t.computed(()=>{const m={"f-layout":!0};return G.getCustomClass(m,e==null?void 0:e.customClass)}),f=t.computed(()=>{const m={};return G.getCustomStyle(m,e==null?void 0:e.customStyle)});return()=>t.createVNode("div",{class:u.value,style:f.value,ref:a},[n.slots.default&&n.slots.default(),t.createVNode("div",{class:"f-layout-resize-overlay",style:r.value},null),t.createVNode("div",{class:"f-layout-horizontal-resize-proxy",style:i.value},null),t.createVNode("div",{class:"f-layout-vertical-resize-proxy",style:l.value},null)])}}),dt={$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"]},ft={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:"是否可见"}}}}},ve={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}},Ve=U.createPropsResolver(ve,dt,Se,Ne,ft);function Be(e,n,a,o,i){const{horizontalResizeBarPosition:l,horizontalResizeHandleOffset:r,showHorizontalResizeHandle:u,showVerticalResizeHandle:f,verticalResizeBarPosition:m,verticalResizeHandleOffset:g,draggingHorizontalResizeHandle:h,draggingVerticalResizeHandle:v,getPanelMaxHeight:T,getPanelMaxWidth:w}=i;let k="",s,d,p;function C(y){if((k==="left"||k==="right")&&d){const{left:b}=d.getBoundingClientRect(),{width:N}=s.getBoundingClientRect(),I=y.clientX-b;let j=k==="left"?(N||0)+(I-l.value):(N||0)-(I-l.value);j=a.value>0?Math.max(a.value,j):j;const O=w(k,a.value);O!=null&&(j=O>j?j:O),e.value=j}if((k==="top"||k==="bottom")&&d){const{top:b}=d.getBoundingClientRect(),{height:N}=s.getBoundingClientRect(),I=y.clientY-b;let j=k==="top"?(N||0)+(I-m.value):(N||0)-(I-m.value);j=o.value>0?Math.max(o.value,j):j;const O=T(k,o.value);O!=null&&(j=O>j?j:O),n.value=j}r.value=0,g.value=0,l.value=-1,m.value=-1,u.value=!1,f.value=!1,document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",C),document.body.style.userSelect="",k="",s=null,d=null}function x(y,b,N){if(k=b,s=N,u.value=!0,d=y.composedPath().find(j=>(j.className||"").split(" ")[0]==="f-layout"),d){const{left:j}=d.getBoundingClientRect(),O=y.clientX-j;r.value=O,l.value=O;const D=w(k,a.value)||0;p=S=>h(S,D,a.value,k),document.addEventListener("mousemove",p),document.addEventListener("mouseup",C),document.body.style.userSelect="none"}}function c(y,b,N){if(k=b,s=N,f.value=!0,d=y.composedPath().find(j=>(j.className||"").split(" ")[0]==="f-layout"),d){const{top:j}=d.getBoundingClientRect();g.value=y.clientY-j,m.value=y.clientY-j;const O=T(k,o.value)||0;p=D=>v(D,O,o.value,k),document.addEventListener("mousemove",p),document.addEventListener("mouseup",C),document.body.style.userSelect="none"}}return{onClickHorizontalResizeBar:x,onClickVerticalResizeBar:c}}const _=t.defineComponent({name:"FLayoutPane",props:ve,emits:[],setup(e,n){const a=t.ref(e.minHeight<=0?100:e.minHeight),o=t.ref(e.minWidth<=0?100:e.minWidth),i=t.ref(e.width<=0?100:e.width),l=t.ref(e.height<=0?100:e.height),r=t.ref(Math.max(a.value,l.value)),u=t.ref(Math.max(o.value,i.value)),f=t.ref(),m=t.ref(e.position),g=t.ref(e.resizable);t.watch(()=>e.resizable,c=>{g.value=c});const h=t.inject("layout"),{useResizeHandleComposition:v}=h,T=Be(u,r,o,a,v),{onClickHorizontalResizeBar:w,onClickVerticalResizeBar:k}=T,s=t.computed(()=>({"f-layout-resize-bar":!0,"f-layout-resize-bar-e":m.value==="left","f-layout-resize-bar-n":m.value==="bottom","f-layout-resize-bar-s":m.value==="top","f-layout-resize-bar-w":m.value==="right"})),d=t.computed(()=>m.value!=="center"&&g.value);function p(c,y){(y==="left"||y==="right")&&w(c,y,f.value),(y==="top"||y==="bottom")&&k(c,y,f.value)}const C=t.computed(()=>{const c={"f-layout-pane":!0,"f-page-content-nav":m.value==="left"||m.value==="right","f-page-content-main":m.value==="center"};return e.customClass&&String(e.customClass).split(" ").reduce((y,b)=>(y[b]=!0,y),c),c}),x=t.computed(()=>{const c={};return(u.value&&m.value==="left"||m.value==="right")&&(c.width=`${u.value}px`),(r.value&&m.value==="bottom"||m.value==="top")&&(c.height=`${r.value}px`),e.visible||(c.display="none"),c});return()=>t.createVNode("div",{ref:f,class:C.value,style:x.value,"data-position":m.value},[n.slots.default&&n.slots.default(),d.value&&t.createVNode("span",{class:s.value,onMousedown:c=>p(c,m.value)},null)])}});function mt(e,n){function a(){return!1}return{canAccepts:a}}const yt=t.defineComponent({name:"FLayoutDesign",props:ge,emits:[],setup(e,n){var g;const a=t.ref(),o=t.inject("design-item-context"),i=mt(o.schema,(g=o.parent)==null?void 0:g.schema),l=se.useDesignerComponent(a,o,i);l.value.canNested=!1;const r=Oe(a),{horizontalResizeHandleStyle:u,verticalResizeHandleStyle:f,resizeOverlayStyle:m}=r;return t.provide("layout",{useResizeHandleComposition:r}),t.onMounted(()=>{a.value.componentInstance=l}),n.expose(l.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:m.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:f.value},null)])}});function pt(e,n){const a=e.schema;function o(l){return!!se.useDragulaCommonRule().basalDragulaRuleForContainer(l)}function i(){const l=["f-layout-pane"];return(a.position==="left"||a.position==="right")&&l.push("f-page-content-nav"),a.position==="center"&&l.push("f-page-content-main"),l.join(" ")}return{canAccepts:o,getDesignerClass:i}}const ht=t.defineComponent({name:"FLayoutPaneDesign",props:ve,emits:[],setup(e,n){const a=t.ref(),o=t.ref();t.inject("designer-host-service");const i=t.inject("design-item-context"),l=pt(i),r=se.useDesignerComponent(o,i,l);r.value.canNested=!1,r.value.canMove=!1,r.value.canDelete=!1,t.onMounted(()=>{o.value.componentInstance=r}),n.expose(r.value);const u=t.ref(Math.max(e.minHeight,e.height)),f=t.ref(Math.max(e.minWidth,e.width)),m=t.ref(e.minHeight),g=t.ref(e.minWidth),h=t.ref(e.position),v=t.inject("layout"),{useResizeHandleComposition:T}=v,w=Be(f,u,g,m,T),{onClickHorizontalResizeBar:k,onClickVerticalResizeBar:s}=w,d=t.computed(()=>({"f-layout-resize-bar":!0,"f-layout-resize-bar-e":h.value==="left","f-layout-resize-bar-n":h.value==="bottom","f-layout-resize-bar-s":h.value==="top","f-layout-resize-bar-w":h.value==="right"}));function p(c,y){(y==="left"||y==="right")&&k(c,y,a.value),(y==="top"||y==="bottom")&&s(c,y,a.value)}const C=t.computed(()=>{const c={"f-layout-pane":!0,"f-page-content-nav":h.value==="left"||h.value==="right","f-page-content-main":h.value==="center"};return e.customClass&&String(e.customClass).split(" ").reduce((y,b)=>(y[b]=!0,y),c),c}),x=t.computed(()=>{const c={flex:"1"};return(f.value&&h.value==="left"||h.value==="right")&&(c.width=`${f.value}px`),(u.value&&h.value==="bottom"||h.value==="top")&&(c.height=`${u.value}px`),c});return()=>t.createVNode("div",{ref:a,class:C.value,style:x.value},[t.createVNode("div",{ref:o,class:"drag-container","data-dragref":`${i.schema.id}-container`},[n.slots.default&&n.slots.default()]),t.createVNode("span",{class:d.value,onMousedown:c=>p(c,h.value)},null)])}});Z.install=e=>{e.component(Z.name,Z),e.component(_.name,_)},Z.register=(e,n,a,o)=>{e.layout=Z,n.layout=Me,e["layout-pane"]=_,n["layout-pane"]=Ve},Z.registerDesigner=(e,n,a)=>{e.layout=yt,n.layout=Me,e["layout-pane"]=ht,n["layout-pane"]=Ve};const Ee=new Map([["appearance",U.resolveAppearance]]),Pe={$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 De(e,n,a){return n}function gt(){function e(n,a,o){const i={};return i.beforeOpen=l=>a.call("beforeOpen",n,[l,n],o),i}return{resolve:e}}const ce={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}},vt=Object.assign({},ce,{readonly:{}});U.createPropsResolver(ce,Pe,Ee,De);const je=U.getPropsResolverGenerator(ce,Pe,Ee,De),bt=gt(),kt={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}},Ct=t.defineComponent({name:"FComboListContainer",props:kt,emits:["selectionChange"],setup(e,n){const a=t.ref(),o=t.ref(e.dataSource),i=t.ref([]),l=t.ref(e.separator),r=t.ref(e.width),u=t.ref(e.maxHeight),f=t.computed(()=>e.multiSelect),m=t.ref(e.multiSelect?String(e.selectedValues).split(l.value):[e.selectedValues]),g=t.computed(()=>({enableSelectRow:!0,multiSelect:e.multiSelect,multiSelectMode:"OnCheckAndClick",showCheckbox:f.value,showSelectAll:!1,showSelection:!0}));t.watch(e.dataSource,()=>{o.value=e.dataSource}),t.computed(()=>e.enableSearch?"SearchBar":"ContentHeader");const h=t.computed(()=>{const s={};return r.value!==void 0&&(s.width=`${r.value}px`),u.value!==void 0&&u.value>0&&(s.maxHeight=`${u.value}px`),s});function v(s){a.value.search(s)}function T(s){i.value=s.map(d=>Object.assign({},d)),m.value=s.map(d=>d[e.idField]),n.emit("selectionChange",i.value)}function w(s){if(e.enableHighlightSearch)return;let d=[];const{searchOption:p}=e;typeof p=="function"?d=o.value.filter(C=>p(s,C)):d=o.value.filter(C=>C[e.valueField].indexOf(s)>-1||C[e.textField].indexOf(s)>-1),a.value.updateDataSource(d)}t.watch([()=>e.selectedValues],([s])=>{e.multiSelect?m.value=s.split(l.value):m.value=[s]});function k(s){a.value.activeRowById(s)}return t.onMounted(()=>{var s,d;if(!e.multiSelect){const p=(s=m.value)==null?void 0:s[0];let C=p;const x=o.value.map(c=>c[e.valueField||e.idField]);if(!ne.isUndefined(p)&&x.includes(p)){const c=typeof p,y=typeof((d=o.value[0])==null?void 0:d[e.valueField||e.idField]);y==="number"&&c!==y&&(C=Number(p)),y==="boolean"&&c!==y&&(C=p==="true"?!0:p==="false"?!1:p),k(C)}}}),n.expose({search:v,activeRowById:k}),()=>t.createVNode("div",{class:"f-combo-list-container",style:h.value},[t.createVNode(at,{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:g.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:m.value,onSelectionUpdate:T,onAfterSearch:w},null)])}});function wt(e,n){const a=t.ref(""),o=t.ref(e.modelValue),i=t.ref(e.data||[]),l=t.ref(e.editable);function r(s){const d=e.multiSelect?String(s).split(e.separator):[String(s)],p=d.map(c=>[c,!0]),C=new Map(p);return i.value.filter(c=>C.has(String(c[e.valueField]))).sort((c,y)=>{const b=d.indexOf(c[e.valueField]),N=d.indexOf(y[e.valueField]);return b-N})}function u(s){const d=r(s).map(p=>p[e.textField]).join(e.separator);a.value=l.value?d||s:d}function f(s){if(e.multiSelect){const d=s.split(e.separator).map(C=>[C,!0]),p=new Map(d);return i.value.filter(C=>p.has(C[e.textField]))}return i.value.filter(d=>""+d[e.textField]===s)}function m(s){const d={};return d[e.idField]=s,d[e.textField]=s,[d]}function g(s){let d=f(s);const p=d&&d.length>0;return l.value&&!p&&(d=m(s)),d}function h(){const{url:s,method:d="GET",headers:p={"Content-Type":"application/json;charset=utf-8;"},body:C=null}=e.remote;if(!s)return;const x=d.toLowerCase()==="get"?{method:d,headers:p}:{method:d,headers:p,body:C};let c=!1;fetch(new Request(s,x)).then(y=>{var N,I;if(y.status===200)return c=!!((I=(N=y.headers)==null?void 0:N.get("content-type"))!=null&&I.includes("application/json")),c?y.text():y.json();throw y.status===405?new Error(K.LocaleService.getLocaleValue("comboList.remoteError")):new Error(y.statusText)}).then(y=>{y.length&&(i.value=c?JSON.parse(y):y)}).catch(y=>{console.warn(y)})}e.remote&&(e.load?e.load().then(s=>{i.value=s}).catch(s=>{console.log(s)}):h()),t.watch(()=>e.data,()=>{i.value=e.data}),t.watch([i],([s],[d])=>{if(e.modelValue!=null&&!e.multiSelect){const p=s.find(C=>C[e.valueField]===o.value);p?p[e.valueField]!==o.value?(o.value=p[e.valueField],a.value=p[e.textField],n.emit("update:modelValue",p[e.valueField]),n.emit("change",[p],p[e.valueField])):a.value!==p[e.textField]&&(a.value=p[e.textField]):o.value!==""&&(o.value="",a.value="",n.emit("update:modelValue",""),n.emit("change",[],""))}}),t.watch(()=>e.modelValue,(s,d)=>{d!==s&&(o.value=s,u(s))});function v(s){i.value=s}function T(){return i.value}function w(){return a.value}function k(){const s=typeof e.beforeOpen=="function";return!e.beforeOpen||!s?Promise.resolve(!0):Promise.resolve().then(()=>e.beforeOpen({instance:{updateDataSource:v,getData:T,getDisplayText:w}})).then(d=>typeof(d==null?void 0:d.canOpen)=="boolean"?d==null?void 0:d.canOpen:!0)}return u(e.modelValue),{dataSource:i,displayText:a,editable:l,modelValue:o,beforeOpenList:k,getItemsByDisplayText:f,getItemsByValue:r,getSelectedItemsByDisplayText:g}}const ae=t.defineComponent({name:"FComboList",props:ce,emits:["clear","update:modelValue","change","input"],setup(e,n){const a=t.ref(),o=t.ref(),i=t.ref(e.disabled||e.readonly),l=t.ref(e.enableClear),r=t.ref(e.enableSearch),u=t.ref(e.readonly),{dataSource:f,displayText:m,editable:g,modelValue:h,getItemsByDisplayText:v,getItemsByValue:T,beforeOpenList:w}=wt(e,n),k=t.ref(e.dropDownIcon);k.value==='<span class="f-icon f-icon-arrow-chevron-down"></span>'&&(k.value='<span id="'+e.id+'-icon-dropdown" class="f-icon f-icon-arrow-chevron-down"></span>');const s=t.computed(()=>e.multiSelect),d=t.computed(()=>o.value?o.value.elementRef.getBoundingClientRect().width:0);function p(){!s.value&&o.value&&o.value.hidePopup()}function C(B){m.value=B.map(L=>L[e.textField]).join(e.separator)||h.value;let P="";B.length===1?P=B[0][e.valueField]:P=B.map(L=>L[e.valueField]).join(e.separator),h.value!==P&&(h.value=P,n.emit("update:modelValue",h.value),n.emit("change",B,h.value))}function x(){const B=T(h.value);C(B)}function c(){u.value||m.value}function y(B){var P;h.value="",(P=a.value)==null||P.activeRowById(""),n.emit("clear")}function b(B){var P,L;e.enableSearch&&e.enableHighlightSearch&&((P=a.value)==null||P.search(B)),(L=a.value)==null||L.activeRowById(B),n.emit("change",[h.value],h.value)}function N(B){if(e.multiSelect){const P=v(B);e.viewType;const M=P.map(E=>E[e.idField||e.valueField]).join(e.separator);h.value!==M&&(h.value=M,n.emit("update:modelValue",h.value),n.emit("change",P,h.value))}else B!==h.value&&(h.value=B,n.emit("update:modelValue",h.value),n.emit("change",[],B))}function I(){return m.value}function j(B){const{value:P}=B.target;b(P),n.emit("input",P)}function O(){o.value.hidePopup()}function D(B){f.value=B}function S(){return f.value}const V={getDisplayText:I,hidePopup:O,updateDataSource:D,getData:S};return n.expose(V),t.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([B,P,L,M,E])=>{i.value=B,g.value=P,l.value=L,r.value=M,u.value=E}),()=>t.createVNode(he,{ref:o,id:e.id,disable:i.value,readonly:u.value,forcePlaceholder:e.forcePlaceholder,editable:g.value,buttonContent:k.value,placeholder:e.placeholder==="请选择"?K.LocaleService.getLocaleValue("comboList.placeholder"):e.placeholder,enableClear:l.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,multiSelect:e.multiSelect,inputType:e.multiSelect?e.viewType:"text",modelValue:m.value,"onUpdate:modelValue":B=>m.value=B,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,onClear:y,onClick:c,onChange:N,onBlur:x,onInput:j,beforeOpen:w,placement:e.placement,popupMinWidth:e.minPanelWidth,popupClass:"f-combo-list-wrapper",popupOnClick:e.popupOnClick,limitContentBySpace:!0},{default:()=>[t.createVNode(Ct,{ref:a,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,dataSource:f.value,selectedValues:h.value,separator:e.separator,multiSelect:e.multiSelect,enableSearch:r.value,maxHeight:e.maxHeight,enableHighlightSearch:e.enableHighlightSearch,width:e.fitEditor?d.value:void 0,onSelectionChange:B=>{C(B),p()}},null)]})}}),Ie={convertFrom:(e,n)=>(e.editor.remote||{})[n],convertTo:(e,n,a)=>{e.editor.remote=e.editor.remote||{},e.editor.remote[n]=a}};class xt extends it.InputBaseProperty{constructor(n,a){super(n,a)}getCommonEditorProperties(n){var a,o,i;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)&&((i=n.editor)==null?void 0:i.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 f,m,g,h,v,T,w,k,s,d,p,C;const a=this;let o="";if(((f=n==null?void 0:n.binding)==null?void 0:f.type)==="Form"){const x=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(m=x==null?void 0:x.schemaField)!=null&&m.type&&(o=x.schemaField.type.$type)}const i=this.getPropertyEditorParams(n,["Variable"]),l=!n.editor.dataSourceType||n.editor.dataSourceType==="static",r=((h=(g=this.designViewModelField)==null?void 0:g.type)==null?void 0:h.$type)===G.FormSchemaEntityFieldType$Type.StringType&&((v=n.editor)==null?void 0:v.type)==="combo-list"&&((T=n.editor)==null?void 0:T.dataSourceType)==="dynamic"&&!((k=(w=n.editor)==null?void 0:w.remote)!=null&&k.url)&&!((s=n.editor)!=null&&s.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:r,title:"数据",editor:{...i,controlName:"",enableClear:!0},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:l,...a.getItemCollectionEditor(n,n.editor.valueField,n.editor.textField),refreshPanelAfterChanged:!0},url:{visible:n.editor.dataSourceType==="dynamic"&&!((d=n.editor)!=null&&d.dataSource),$converter:Ie,description:"",title:"服务端API",type:"string",refreshPanelAfterChanged:!0},body:{visible:!1,$converter:Ie,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:((p=n.editor)==null?void 0:p.dataSourceType)==="dynamic"&&!!((C=n.editor)!=null&&C.dataSource),type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(x,c)=>{if(!x||!c.editor)return;const y=this;switch(x.propertyID){case"dataSourceType":{x.propertyValue==="static"?(c.editor.valueField="value",c.editor.textField="name",c.editor.remote=null):x.propertyValue==="dynamic"&&(c.editor.remote={method:"GET"},c.editor.valueField="value",c.editor.textField="name");break}case"data":{!y.checkEnumDataReadonly(c)&&c.formatter&&(c.formatter.data=[...x.propertyValue]);break}case"viewType":{x.propertyValue==="tag"&&(c.editor.editable=!1);break}case"dataSource":y.afterMutilEditorChanged(c,x)}})}getGridFieldEdtiorProperties(n,a){var f,m,g,h,v,T,w,k,s,d,p,C,x;const o=this;let i="";if(((f=n==null?void 0:n.binding)==null?void 0:f.type)==="Form"){const c=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(m=c==null?void 0:c.schemaField)!=null&&m.type&&(i=c.schemaField.type.$type)}const l=((h=(g=this.designViewModelField)==null?void 0:g.type)==null?void 0:h.$type)===G.FormSchemaEntityFieldType$Type.StringType&&((v=n.editor)==null?void 0:v.type)==="combo-list"&&((T=n.editor)==null?void 0:T.dataSourceType)==="dynamic"&&!((w=n.editor)!=null&&w.multiSelect),r=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:l,title:"数据",editor:{...r,controlName:"",enableClear:!0},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:!((k=n.editor)!=null&&k.dataSourceType)||((s=n.editor)==null?void 0:s.dataSourceType)==="static",...o.getItemCollectionEditor(n,(d=n.editor)==null?void 0:d.valueField,(p=n.editor)==null?void 0:p.textField),refreshPanelAfterChanged:!0},textField:{description:"",title:"数据源显示字段",type:"string",readonly:!0},valueField:{description:"",title:"数据源值字段",type:"string",readonly:!0},multiSelect:{description:"",title:"启用多选",visible:i==="StringType",readonly:((C=n.editor)==null?void 0:C.dataSourceType)==="dynamic"&&!!((x=n.editor)!=null&&x.dataSource),type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(c,y)=>{if(!c||!y.editor)return;const b=this;switch(c.propertyID){case"dataSourceType":{c.propertyValue==="static"?(y.editor.valueField="value",y.editor.textField="name",y.editor.remote=null):c.propertyValue==="dynamic"&&(y.editor.remote={method:"GET"},y.editor.valueField="value",y.editor.textField="name");break}case"data":{!b.checkEnumDataReadonly(y)&&y.formatter&&(y.formatter.data=[...c.propertyValue]);break}case"dataSource":b.afterMutilEditorChanged(y,c)}})}setEditorPropertyRelates(n,a,o){if(!n||!a.editor)return;const i=this;switch(n.propertyID){case"dataSourceType":{n.propertyValue==="static"&&(a.editor.valueField="value",a.editor.textField="name",a.editor.remote={});break}case"data":{!i.checkEnumDataReadonly(a)&&a.formatter&&(a.formatter.data=[...n.propertyValue]);break}}}changeBindingField(n,a,o){var l;super.changeBindingField(n,a);const i=o;n.editor&&((l=i==null?void 0:i.type)==null?void 0:l.$type)===G.FormSchemaEntityFieldType$Type.EnumType&&(n.editor.data=i.type.enumValues||[])}getEventPropertyConfig(n,a="card",o,i){const l=this;let r=[{label:"onChange",name:"值变化事件"},{label:"beforeOpen",name:"下拉面板前事件"}];o&&(r=r.concat(o)),this.appendFieldValueChangeEvents(n,r);const u=l.eventsEditorUtils.formProperties(n,l.viewModelId,r);return{title:"事件",hideTitle:!0,properties:l.createBaseEventProperty(u),tabId:"commands",tabName:"交互",setPropertyRelates(g,h){const v=g.propertyValue;delete n[l.viewModelId],v&&(v.setPropertyRelates=this.setPropertyRelates,l.eventsEditorUtils.saveRelatedParameters(n,l.viewModelId,v.events,v)),i&&i(g,h,v);const T=l.designViewModelUtils.getDgViewModel(l.viewModelId);T&&l.designViewModelField&&T.changeField(l.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 Ft(e,n){const a=e.schema;function o(i,l){return new xt(i,n).getPropertyConfig(a,l)}return{getPropsConfig:o}}const Tt=t.defineComponent({name:"FComboListDesign",props:vt,emits:["clear","update:modelValue","change"],setup(e,n){const a=t.ref(),o=t.inject("designer-host-service"),i=t.inject("design-item-context"),l=Ft(i,o),r=se.useDesignerComponent(a,i,l);return t.onMounted(()=>{a.value.componentInstance=r}),n.expose(r.value),()=>t.createVNode(ot,{ref:a,buttonContent:e.dropDownIcon,readonly:!0,editable:!1,forcePlaceholder:!0,placeholder:e.placeholder,enableClear:!0},null)}});ae.register=(e,n,a,o,i)=>{e["combo-list"]=ae,n["combo-list"]=je(i),o["combo-list"]={callbackResolver:bt}},ae.registerDesigner=(e,n,a,o)=>{e["combo-list"]=Tt,n["combo-list"]=je(o)},G.withInstall(ae);const St={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 Nt(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function Re(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),a.push.apply(a,o)}return a}function Le(e){for(var n=1;n<arguments.length;n++){var a=arguments[n]!=null?arguments[n]:{};n%2?Re(Object(a),!0).forEach(function(o){Nt(e,o,a[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Re(Object(a)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(a,o))})}return e}function Mt(e,n){if(e==null)return{};var a={},o=Object.keys(e),i,l;for(l=0;l<o.length;l++)i=o[l],!(n.indexOf(i)>=0)&&(a[i]=e[i]);return a}function Ot(e,n){if(e==null)return{};var a=Mt(e,n),o,i;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(i=0;i<l.length;i++)o=l[i],!(n.indexOf(o)>=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}function Vt(e,n){return Bt(e)||Et(e,n)||Pt(e,n)||Dt()}function Bt(e){if(Array.isArray(e))return e}function Et(e,n){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var a=[],o=!0,i=!1,l=void 0;try{for(var r=e[Symbol.iterator](),u;!(o=(u=r.next()).done)&&(a.push(u.value),!(n&&a.length===n));o=!0);}catch(f){i=!0,l=f}finally{try{!o&&r.return!=null&&r.return()}finally{if(i)throw l}}return a}}function Pt(e,n){if(e){if(typeof e=="string")return ze(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 ze(e,n)}}function ze(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 Dt(){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 jt(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function He(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),a.push.apply(a,o)}return a}function $e(e){for(var n=1;n<arguments.length;n++){var a=arguments[n]!=null?arguments[n]:{};n%2?He(Object(a),!0).forEach(function(o){jt(e,o,a[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):He(Object(a)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(a,o))})}return e}function It(){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(i,l){return l(i)},o)}}function oe(e){return function n(){for(var a=this,o=arguments.length,i=new Array(o),l=0;l<o;l++)i[l]=arguments[l];return i.length>=e.length?e.apply(this,i):function(){for(var r=arguments.length,u=new Array(r),f=0;f<r;f++)u[f]=arguments[f];return n.apply(a,[].concat(i,u))}}}function ue(e){return{}.toString.call(e).includes("Object")}function Rt(e){return!Object.keys(e).length}function ie(e){return typeof e=="function"}function Lt(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function zt(e,n){return ue(n)||Q("changeType"),Object.keys(n).some(function(a){return!Lt(e,a)})&&Q("changeField"),n}function Ht(e){ie(e)||Q("selectorType")}function $t(e){ie(e)||ue(e)||Q("handlerType"),ue(e)&&Object.values(e).some(function(n){return!ie(n)})&&Q("handlersType")}function At(e){e||Q("initialIsRequired"),ue(e)||Q("initialType"),Rt(e)&&Q("initialContent")}function Wt(e,n){throw new Error(e[n]||e.default)}var qt={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"},Q=oe(Wt)(qt),de={changes:zt,selector:Ht,handler:$t,initial:At};function Yt(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};de.initial(e),de.handler(n);var a={current:e},o=oe(Xt)(a,n),i=oe(Gt)(a),l=oe(de.changes)(e),r=oe(Ut)(a);function u(){var m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(g){return g};return de.selector(m),m(a.current)}function f(m){It(o,i,l,r)(m)}return[u,f]}function Ut(e,n){return ie(n)?n(e.current):n}function Gt(e,n){return e.current=$e($e({},e.current),n),n}function Xt(e,n,a){return ie(n)?n(e.current):Object.keys(a).forEach(function(o){var i;return(i=n[o])===null||i===void 0?void 0:i.call(n,e.current[o])}),a}var Kt={create:Yt},_t={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}};function Jt(e){return function n(){for(var a=this,o=arguments.length,i=new Array(o),l=0;l<o;l++)i[l]=arguments[l];return i.length>=e.length?e.apply(this,i):function(){for(var r=arguments.length,u=new Array(r),f=0;f<r;f++)u[f]=arguments[f];return n.apply(a,[].concat(i,u))}}}function Zt(e){return{}.toString.call(e).includes("Object")}function Qt(e){return e||We("configIsRequired"),Zt(e)||We("configType"),e.urls?(en(),{paths:{vs:e.urls.monacoBase}}):e}function en(){console.warn(Ae.deprecation)}function tn(e,n){throw new Error(e[n]||e.default)}var Ae={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
|
+
`},We=Jt(tn)(Ae),nn={config:Qt},an=function(){for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return function(i){return a.reduceRight(function(l,r){return r(l)},i)}};function qe(e,n){return Object.keys(n).forEach(function(a){n[a]instanceof Object&&e[a]&&Object.assign(n[a],qe(e[a],n[a]))}),Le(Le({},e),n)}var on={type:"cancelation",msg:"operation is manually canceled"};function be(e){var n=!1,a=new Promise(function(o,i){e.then(function(l){return n?i(on):o(l)}),e.catch(i)});return a.cancel=function(){return n=!0},a}var ln=Kt.create({config:_t,isInitialized:!1,resolve:null,reject:null,monaco:null}),Ye=Vt(ln,2),le=Ye[0],fe=Ye[1];function rn(e){var n=nn.config(e),a=n.monaco,o=Ot(n,["monaco"]);fe(function(i){return{config:qe(i.config,o),monaco:a}})}function sn(){var e=le(function(n){var a=n.monaco,o=n.isInitialized,i=n.resolve;return{monaco:a,isInitialized:o,resolve:i}});if(!e.isInitialized){if(fe({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),be(ke);if(window.monaco&&window.monaco.editor)return Ue(window.monaco),e.resolve(window.monaco),be(ke);an(cn,dn)(fn)}return be(ke)}function cn(e){return document.body.appendChild(e)}function un(e){var n=document.createElement("script");return e&&(n.src=e),n}function dn(e){var n=le(function(o){var i=o.config,l=o.reject;return{config:i,reject:l}}),a=un("".concat(n.config.paths.vs,"/loader.js"));return a.onload=function(){return e()},a.onerror=n.reject,a}function fn(){var e=le(function(a){var o=a.config,i=a.resolve,l=a.reject;return{config:o,resolve:i,reject:l}}),n=window.require;n.config(e.config),n(["vs/editor/editor.main"],function(a){Ue(a),e.resolve(a)},function(a){e.reject(a)})}function Ue(e){le().monaco||fe({monaco:e})}function mn(){return le(function(e){var n=e.monaco;return n})}var ke=new Promise(function(e,n){return fe({resolve:e,reject:n})}),Ce={config:rn,init:sn,__getMonacoInstance:mn};const yn=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 i=null;const l=t.ref(e.modelValue);async function r(){return fetch(e.configPath).then(w=>w.json())}async function u(){if(a.value&&!i){const w=await r(),{vsPath:k}=w;Ce.config({paths:{vs:window.location.origin+k}}),Ce.config({"vs/nls":{availableLanguages:{"*":"zh-cn"}}}),Ce.init().then(s=>{o.value=s,i=s.editor.create(a.value,{value:l.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,w=>{l.value=w,i==null||i.setValue(w)});const f=t.ref(),m=new ResizeObserver(w=>{i==null||i.layout();const{width:k,height:s}=w[0].contentRect;f.value={width:`${k-1}px`,height:`${s}px`}});function g(){return i==null?void 0:i.getValue()}function h(w){const k=i.getSelection(),s=new o.value.Range(k.startLineNumber,k.startColumn,k.endLineNumber,k.endColumn);i.executeEdits("insert-text",[{range:s,text:w,forceMoveMarkers:!0}])}t.onMounted(()=>{u(),a.value&&m.observe(a.value.parentElement)}),t.onBeforeUnmount(()=>{i&&i.dispose(),m&&a.value&&(m.unobserve(a.value),m.disconnect())});function v(w){i.setValue(w)}function T(){v("")}return n.expose({getContent:g,insertText:h,clearText:T,setContent:v}),()=>t.createVNode("div",{class:"expression-code-editor",style:f.value,ref:a},null)}}),pn={dataSource:{type:Object,default:{}}},hn={data:{type:Array,default:[]},idField:{type:String,default:"id"},textField:{type:String,default:"name"},formatter:{type:Function},customRowStatus:{type:Object,default:null}},gn=t.defineComponent({name:"FEntitiesTree",props:hn,emits:["dblclickNode"],setup(e,n){const a=t.ref(e.data),o=t.ref(),i=t.ref();function l(){let h=0;return document.querySelectorAll(".entity-variable .fv-grid-hierarchy-cell").forEach(T=>{T.style.width="auto";const w=T.scrollWidth;w>h&&(h=w)}),h}t.watch(()=>e.data,h=>{var v;a.value=h,(v=o.value)==null||v.updateDataSource(h)});const r={customRowStatus:e.customRowStatus},u=t.computed(()=>[{field:e.textField,title:"",dataType:"string",formatter:e.formatter}]);function f({$event:h,node:v}){n.emit("dblclickNode",{$event:h,node:v})}function m(){const h=l();i.value={minWidth:`${h+10}px`}}function g({row:h}){t.nextTick(m)}return t.onMounted(()=>{t.nextTick(m)}),()=>t.createVNode("div",{class:"h-100 f-utils-fill",style:"overflow:auto",id:"entity-tree-view"},[t.createVNode(lt,{ref:o,fit:!1,rowNumber:{enable:!1},data:a.value,idField:e.idField,columns:u.value,rowOption:r,columnOption:{fitColumns:!0,fitMode:"percentage"},onDblclickNode:f,style:i.value,autoHeight:!0,onExpandNode:g},null)])}}),vn=t.defineComponent({name:"entity-variable",props:pn,emits:["variableItemDblClick","entityItemDblClick","fieldClick"],setup(e,n){const a=t.ref("dataEntity"),o=t.ref(e.dataSource),{entities:i,variables:l}=o.value,r=t.ref(""),u=t.ref((i==null?void 0:i.fields)||[]),f=(S,V)=>{S.stopPropagation(),n.emit("fieldClick",{$event:S,item:V.raw})},m=(S,V)=>{const B=`${V.raw.name} [${V.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:B,class:"f-utils-fill text-truncate"},[B]),t.createVNode("button",{title:"插入属性名称",class:"btn btn-link d-none",style:"width:24px;height:24px",onClick:P=>f(P,V),onDblclick:P=>P.stopPropagation()},[t.createVNode("span",{class:"f-icon f-icon-new-edit",style:"font-size: 12px;"},null)])])},g=t.ref({}),h=t.ref(),v=t.computed(()=>S=>({"list-group d-flex flex-column":!0,"f-utils-fill":a.value===S,expand:a.value===S,collapse:a.value!==S})),T=t.computed(()=>S=>({"f-icon f-icon-arrow-chevron-up":a.value!==S,"f-icon f-icon-arrow-chevron-down":a.value===S})),w=t.computed(()=>S=>({"functions-type d-flex flex-column":!0,open:g.value[S],closed:!g.value[S]})),k=t.computed(()=>S=>({"f-icon f-icon-arrow-chevron-down":g.value[S],"f-icon f-icon-arrow-chevron-right":!g.value[S]})),s=t.computed(()=>S=>{var V;return{"functions-item pl-2":!0,selected:((V=h.value)==null?void 0:V.key)===S.key}});function d(S,V){S.stopPropagation(),g.value=g.value||{},g.value[V]=!g.value[V]}function p(S,V){S.stopPropagation(),h.value=V}function C(S,V){n.emit("variableItemDblClick",{$event:S,item:V})}function x({$event:S,node:V}){n.emit("entityItemDblClick",{$event:S,item:V.data,entityCode:i==null?void 0:i.entityCode,parentCodes:V.data.parents.join(".")})}function c(){return t.createVNode(gn,{data:u.value,formatter:m,onDblclickNode:x},null)}function y(){if(l)return t.createVNode("ul",{class:"w-100 functions-list"},[Object.keys(l).map(S=>l[S].visible&&t.createVNode("li",{"variable-type":S,class:w.value(S)},[t.createVNode("div",{class:"functions-type-name pl-2 d-flex align-items-center",onClick:V=>{d(V,S)}},[t.createVNode("span",{class:k.value(S)},null),l[S].name]),t.createVNode("ul",{class:"pl-3 mr-2"},[l[S].items.map(V=>t.createVNode("li",{class:s.value(V),onClick:B=>p(B,V),onDblclick:B=>C(B,V),title:`${V.name} [${V.key}]`},[V.name]))])]))])}function b(S,V){if(S.stopPropagation(),a.value===V){a.value="";return}a.value=V}t.onMounted(()=>{if(l){const S=Object.keys(l)[0];g.value[S]=!0}});function N(S,V){const B=S.children.map(L=>N(L,V)).filter(L=>L!==null);return S.data.name.toLowerCase().includes(V.toLowerCase())||S.data.bindingPath.toLowerCase().includes(V.toLowerCase())?{data:{...S.data},children:S.children}:B.length>0?{data:{...S.data},children:B}:null}function I(S,V){return S.map(B=>N(B,V)).filter(B=>B!==null)}function j(){const S=I((i==null?void 0:i.fields)||[],r.value);u.value=S}function O(){u.value=(i==null?void 0:i.fields)||[]}function D(S){S.key==="Enter"&&j()}return()=>t.createVNode("div",{class:"f-utils-fill entity-variable"},[t.createVNode("ul",{class:"d-flex flex-column h-100"},[t.createVNode("li",{class:v.value("dataEntity")},[t.createVNode("div",{class:"title px-2 d-flex align-items-center",onClick:S=>b(S,"dataEntity")},[t.createTextVNode("数据实体"),t.createVNode("span",{class:T.value("dataEntity")},null)]),t.createVNode("div",{class:"data-area f-utils-fill d-flex flex-column"},[t.createVNode("div",{class:"w-100"},[t.createVNode(he.FButtonEdit,{class:"m-2",buttonContent:'<i class="f-icon f-icon-search"></i>',enableClear:!0,popupOnClick:!0,placeholder:"请输入名称或编号,按回车查询",modelValue:r.value,"onUpdate:modelValue":S=>r.value=S,onClickButton:j,onClear:O,onKeyup:D},null)]),c()])]),t.createVNode("li",{class:v.value("variables")},[t.createVNode("div",{class:"title px-2 d-flex align-items-center",onClick:S=>b(S,"variables")},[t.createTextVNode("变量"),t.createVNode("span",{class:T.value("variables")},null)]),t.createVNode("div",{class:"data-area f-utils-fill"},[y()])])])])}}),bn={functionItems:{type:Array,default:[]},singleExpand:{type:Boolean,default:!0}},kn=t.defineComponent({name:"FExpressionEditor",props:bn,emits:["insertFunction","search"],setup(e,n){const a=t.ref(),o=t.ref(""),i=t.ref(),l=t.ref({}),r=t.ref(""),u="没有与搜索条件匹配的项",f=t.ref(e.functionItems),m=t.computed(()=>c=>e.singleExpand?{"functions-type d-flex flex-column":!0,open:o.value===c,closed:o.value!==c}:{"functions-type d-flex flex-column":!0,open:l.value[c],closed:!l.value[c]}),g=t.computed(()=>c=>e.singleExpand?{"f-icon f-icon-arrow-chevron-down":o.value===c,"f-icon f-icon-arrow-chevron-right":o.value!==c}:{"f-icon f-icon-arrow-chevron-down":l.value[c],"f-icon f-icon-arrow-chevron-right":!l.value[c]}),h=t.computed(()=>c=>{var y;return{"functions-item pl-2":!0,selected:((y=i.value)==null?void 0:y.key)===c.key}}),v=t.ref(Object.keys(f.value));t.watch(()=>e.functionItems,c=>{f.value=c,v.value=Object.keys(f.value),r.value&&(l.value=v.value.reduce((y,b)=>(y[b]=!0,y),{}))});function T(c){c||(c=o.value);const y=a.value.querySelector('li[function-type="'+c+'"] > div.functions-type-name');y&&(a.value.querySelector(".expression-left").scrollTop=0,y.scrollIntoViewIfNeeded?y.scrollIntoViewIfNeeded(!0):y.scrollIntoView({behavior:"smooth",block:"nearest"}))}function w(c){if(e.singleExpand){if(o.value===c){o.value="";return}o.value=c}else l.value=l.value||{},l.value[c]=!l.value[c]}function k(c,y){c.stopPropagation(),i.value=y}function s(c,y){c.stopPropagation(),n.emit("insertFunction",{$event:c,item:y})}t.watch(()=>o.value,(c,y,b)=>{if(c){const N=setTimeout(()=>{T(c)},200);b(()=>clearTimeout(N))}});function d(){n.emit("search",r.value)}function p(){n.emit("search","")}function C(c){c.key==="Enter"&&d()}function x(){return v.value.length?v.value.map(c=>t.createVNode("li",{"function-type":c,class:m.value(c)},[t.createVNode("div",{class:"functions-type-name pl-2 d-flex align-items-center",onClick:()=>{w(c)}},[t.createVNode("span",{class:g.value(c)},null),f.value[c].name]),t.createVNode("ul",{class:"pl-3 mr-2"},[f.value[c].items.map(y=>{if(y.visible!==!1)return t.createVNode("li",{class:h.value(y),onClick:b=>k(b,y),onDblclick:b=>s(b,y)},[c==="advanced"?y.key:y.name])})])])):t.createVNode("li",{class:"empty-message"},[u])}return t.onMounted(()=>{o.value=v.value[0],l.value=v.value.reduce((c,y)=>(c[y]=o.value===y,c),{})}),()=>t.createVNode("div",{class:"d-flex f-utils-fill flex-column",ref:a},[t.createVNode(Z,{class:"flex-column expression-left"},{default:()=>[t.createVNode(_,{position:"top",minHeight:50,height:50,"custom-class":"position-relative d-flex align-items-center search-bar",resizable:!1},{default:()=>[t.createVNode(he.FButtonEdit,{class:"w-100 mx-2",buttonContent:'<i class="f-icon f-icon-search"></i>',enableClear:!0,popupOnClick:!0,placeholder:"请输入函数名称,按回车查询",modelValue:r.value,"onUpdate:modelValue":c=>r.value=c,onClickButton:d,onClear:p,onKeyup:C},null)]}),t.createVNode(_,{position:"center","custom-class":"layout-border"},{default:()=>[t.createVNode("ul",{class:"w-100 functions-list",style:"user-select: none"},[x()])]}),t.createVNode(_,{"custom-class":"position-relative",position:"bottom",minHeight:80},{default:()=>{var c;return[t.createVNode("textarea",{title:"函数说明",class:"h-100 w-100 function-remark p-1",disabled:!0},[(c=i.value)==null?void 0:c.description])]}})]})])}});function Cn(e){async function n(){return fetch(e.esprimaPath).then(r=>r.json())}async function a(){if(window.esprima==null){const r=await n(),{path:u}=r;return new Promise((f,m)=>{const g=document.createElement("script");g.type="text/javascript",g.src=u+"?v="+Date.now(),g.onload=f,g.onerror=m,document.head.appendChild(g)})}}function o(r){const u=[],f=window.esprima.tokenize(r);for(let v=0;v<f.length;v++)u.push(f[v].value);const m=[];for(let v=0;v<u.length;v++){const T=r.indexOf(u[v]);T!==-1?m.push(r.substring(0,T)):m.push(""),r=r.slice(T+u[v].length),v===u.length-1&&m.push(r)}const g=[],h=u.length;for(let v=0;v<h;v++)m[v]!==""&&g.push(m[v]),u[v]!==""&&g.push(u[v]),v===h-1&&m[v+1]!==""&&g.push(m[v+1]);return g}function i(r,u="key2name"){const f=new Map;if(!r)return f;let g=Object.values(r).map(h=>h.items).flat();for(;g.length>0;){const h=g.filter(v=>v.name===g[0].name);h.length>1?g.filter(v=>v.name===g[0].name).forEach(v=>{u==="key2name"?f.set(v.key,v.key+"_"+v.name):u==="name2key"&&f.set(v.key+"_"+v.name,v.key)}):u==="key2name"?f.set(h[0].key,h[0].name):u==="name2key"&&f.set(h[0].name,h[0].key),g=g.filter(v=>v.name!==g[0].name)}return f}a();async function l(r){return window.esprima?r():await a().then(()=>r())}return{loadEsprima:a,getTokens:o,getVariableMaps:i,runWithEsprima:l}}function wn(e,n,a){const o=t.ref(e.disabledFunctions),{getTokens:i,getVariableMaps:l,runWithEsprima:r}=Cn(e);function u(){const s=ne.cloneDeep(n);if(o.value){let d=Object.keys(s);const{types:p,functions:C}=o.value;return p&&p.length&&(d=d.filter(x=>p.includes(x))),C&&C.length&&Object.values(s).forEach(x=>{x.items.forEach(c=>{C.includes(c.name)&&(c.visible=!1)})}),s}return s}function f(s){const d=n.analytical.items.find(p=>p.key==="GetContextParameter");if(d)return d.name+'("'+s.name+'")'}function m(s){if(!s||s.length===0)return"";const d=p=>{switch(p.type){case"string":return`"${p.name}"`;case"list":return`[${p.name}]`;default:return p.name}};return s.map(d).join(",")}function g(s){let d=s.name;return s.type.toLowerCase()!=="advanced"&&(d+="("+m(s.params)+")"),d}function h(s){return s==null?void 0:s.bindingPath}function v(s){if(!s)return"";const d=i(s),p=l(a,"name2key");for(let x=0;x<d.length;x++){let c=0;if(c===0&&p&&d[x].length>2&&d[x][0]==='"'&&d[x][d[x].length-1]==='"'){const y=d[x].substring(1,d[x].length-1);if(p.has(y)&&d[x-1]==="("&&d[x+1]===")"){const b=p.get(y);b!==void 0&&(d[x]=`"${b}"`,c=1)}}if(c===0){const y=Object.values(n).map(b=>b.items).flat();for(let b=0;b<y.length;b++)if(d[x]===y[b].name){d[x]=y[b].keyFront+"."+y[b].key,c=1;break}}}const C=d.join("");return JSON.stringify({expr:C,sexpr:""})}function T(s,d,p,C){let x="";const c=[];for(const y of d)y.keyFront==="Math"&&c.push(y.key);for(let y=0;y<s.length;y++){if(s[y]==="Math"&&s[y+1]==="."&&!c.includes(s[y+2])){x=x+s[y]+s[y+1]+s[y+2],y=y+2;continue}if(C.includes(s[y])&&s[y+1]==="."){y=y+1;continue}else{let b=0;if(b===0&&s[y].length>2&&s[y][0]==='"'&&s[y][s[y].length-1]==='"'){const N=s[y].substring(1,s[y].length-1);if(p.has(N)&&s[y-1]==="("&&s[y+1]===")"){const I=p.get(N);I!==void 0&&(x=x+`"${I}"`,b=1)}}if(b===0){for(let N=0;N<d.length;N++)if(s[y]===d[N].key&&d[N].type.toLowerCase()!=="advanced"){x=x+d[N].name,b=1;break}}b===0&&(x=x+s[y])}}return x}function w(s){if(!s)return"";const d=i(s),p=l(a,"key2name"),C=Object.values(n).map(c=>c.items).flat();return T(d,C,p,["DefaultFunction","Math","DefaultExtendFunctionProxy"])}async function k(s){return await r(()=>w(s))}return{resetFunctionItems:u,getFieldExpression:h,getFunctionExpression:g,getContextVariableExpression:f,getExpressionCodeValue:v,getExpressionTextValue:k}}function xn(e,n){const a=t.ref([]),o=ne.cloneDeep(n.value),i=Object.values(o).map(u=>u.items).flat();function l(u){const f=ne.cloneDeep(o);return Object.keys(f).forEach(m=>{const g=f[m].items.filter(h=>u.includes(h.key));g.length>0?f[m].items=g:delete f[m]}),f}function r(u){if(!u){n.value=o;return}const f=i.filter(m=>m.name.toLowerCase().includes(u.toLowerCase())).map(m=>m.key);n.value=l(f)}return{searchResultList:a,filterFunctions:l,onFunctionSearch:r}}const Ge=t.defineComponent({name:"FExpressionEditor",props:Te,emits:[],setup(e,n){var O;const a=t.ref(),o=t.ref(e.validateMessage),i=t.ref(e.messageType),l=t.ref(e.modelValue),r=t.ref(),u=[{label:"提示",value:"info"},{label:"警告",value:"warning"},{label:"错误",value:"error"}],{getFunctionExpression:f,getContextVariableExpression:m,resetFunctionItems:g,getFieldExpression:h,getExpressionCodeValue:v,getExpressionTextValue:T}=wn(e,St,e.variables),w=t.ref(g()),{onFunctionSearch:k}=xn(e,w);function s({$event:D,item:S}){var B;const V=f(S);(B=r.value)==null||B.insertText(V)}function d({$event:D,item:S}){var B;const V=m(S);(B=r.value)==null||B.insertText(V)}function p(D){return D.reduce((S,V)=>{var B;return S.push(V.data),(B=V.children)!=null&&B.length&&S.push(...p(V.children)),S},[])}const C=p(((O=e==null?void 0:e.entities)==null?void 0:O.fields)||[]);function x(D){return D.map(S=>{const V=C.find(B=>B.bindingPath===S);return V&&V.type==="entity"?`${S}[0]`:S}).join(".")}function c({$event:D,item:S,parentCodes:V,entityCode:B}){var M;const P=h(S);V=e.isServerSide?x(S.parents):V;let L=`${V}.${P}`;B===P&&(L=P),(M=r.value)==null||M.insertText(`${L}`)}function y({$event:D,item:S}){var B;const V=h(S);(B=r.value)==null||B.insertText(`${V}`)}function b(){var D;return(D=r.value)==null?void 0:D.getContent()}function N(){var S;const D=(S=r.value)==null?void 0:S.getContent();return{value:v(D),message:o.value,messageType:i.value}}const I=t.ref("");function j(){var D;(D=r.value)==null||D.clearText()}return t.onMounted(async()=>{if(l.value){const D=JSON.parse(l.value),{expr:S}=D;S&&(I.value=await T(S)||"")}}),n.expose({getExpressionContext:b,getExpressionValue:N,resetExpression:j}),()=>t.createVNode("div",{ref:a,class:"h-100 d-flex flex-column f-utils-fill mx-3 expression-editor"},[t.createVNode(Z,null,{default:()=>[t.createVNode(_,{position:"left",width:248,minWidth:130},{default:()=>[t.createVNode(kn,{functionItems:w.value,singleExpand:e.singleExpand,onInsertFunction:s,onSearch:k},null)]}),t.createVNode(_,{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(yn,{modelValue:I.value,"onUpdate:modelValue":D=>I.value=D,ref:r},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(ae,{style:"width: 75px",data:u,modelValue:i.value,"onUpdate:modelValue":D=>i.value=D,textField:"label",valueField:"value",idField:"value",enableClear:!1,minPanelWidth:130,placement:"auto"},null)]),t.withDirectives(t.createVNode("textarea",{"onUpdate:modelValue":D=>o.value=D,class:"form-control",style:"resize:none;border:none;outline:1px solid var(--f-neutral-04);"},null),[[t.vModelText,o.value]])])]}),e.showDataPanel&&t.createVNode(_,{position:"right",width:258,minWidth:130},{default:()=>[t.createVNode(vn,{dataSource:{entities:e.entities,variables:e.variables},onVariableItemDblClick:d,onEntityItemDblClick:c,onFieldClick:y},null)]})]})])}}),Fn={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}},Tn={popupContentPosition:{type:Object,default:{left:0,top:0}},host:{type:Object},backgroundColor:{type:String,default:""}},Sn=t.defineComponent({name:"FOverlay",props:Tn,emits:["click"],setup(e,n){const a=t.ref(e.popupContentPosition),o=t.ref(e.host),i=t.computed(()=>({backgroundColor:e.backgroundColor||"",pointerEvents:"auto"}));function l(u){n.emit("click"),u.preventDefault(),u.stopPropagation()}t.computed(()=>{const u=o.value;if(u){const f=u.getBoundingClientRect(),{left:m,top:g,height:h}=f;return{left:m,top:g+h}}return a.value});const r=t.computed(()=>({}));return()=>t.createVNode(t.Teleport,{to:"body"},{default:()=>{var u,f;return[t.createVNode("div",{class:"overlay-container",onClick:m=>l(m),style:i.value},[t.createVNode("div",{style:r.value},[(f=(u=n.slots).default)==null?void 0:f.call(u)])])]}})}});function Nn(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function Mn(e){const n=document.createElement("div");n.style.display="contents";let a;const o=e.onClickCallback||(()=>{}),i=()=>{o(),a&&a.unmount()};return a=t.createApp({setup(){t.onUnmounted(()=>{document.body.removeChild(n)});const l=Nn(e);return()=>t.createVNode(Sn,{"popup-content-position":e.popupPosition,host:e.host,onClick:i,backgroundColor:e.backgroundColor},{default:()=>[l&&l()]})}}),document.body.appendChild(n),a.mount(n),a}class On{static show(n){return Mn(n)}}const Vn={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 A{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 i=parseInt(o[4],10),l=parseInt(o[5],10);return{x:i,y:l}}return{x:0,y:0}}static fromEvent(n,a=null){if(this.isMouseEvent(n))return new A(n.clientX,n.clientY);if(a===null||n.changedTouches.length===1)return new A(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 A(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 A(0,0);if(window){const o=window.getComputedStyle(n);if(o){const i=parseInt(o.getPropertyValue("left"),10),l=parseInt(o.getPropertyValue("top"),10);a.x=isNaN(i)?0:i,a.y=isNaN(l)?0:l}return a}return null}static copy(n){return new A(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 ee{constructor(n,a){this.width=n,this.height=a}static getCurrent(n){const a=new ee(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 ee(0,0).set(n)}set(n){return this.width=n.width,this.height=n.height,this}}function Bn(e,n){const a=t.ref(),o=t.ref(),i=t.ref(),l=t.ref(),r=t.ref(),u=t.ref(),f=t.ref(),m=t.ref(),g=t.ref(),h=t.ref(),v=t.ref(),T=t.ref(e.resizeable),w=t.ref(),k=t.ref(e.draggable),s=t.ref(!1);function d(){const M=o.value||document.body,E=window.getComputedStyle(M);if(!E||!a.value)return;const $=A.getTransformInfo(a.value),z={};f.value&&(z.deltaL=a.value.offsetLeft-f.value.x,z.deltaT=a.value.offsetTop-f.value.y);const W=E.getPropertyValue("position");z.width=M.clientWidth,z.height=M.clientHeight,z.pr=parseInt(E.getPropertyValue("padding-right"),10),z.pb=parseInt(E.getPropertyValue("padding-bottom"),10),z.position=E.getPropertyValue("position"),W==="static"&&(M.style.position="relative"),z.translateX=$.x,z.translateY=$.y,h.value=z}function p(M){if(a.value){l.value=ee.getCurrent(a.value),r.value=A.getCurrent(a.value),u.value=l.value?ee.copy(l.value):null,f.value=r.value?A.copy(r.value):null,d();const E=M.target.getAttribute("type")||"";m.value={n:!!E.match(/n/),s:!!E.match(/s/),w:!!E.match(/w/),e:!!E.match(/e/)}}}function C(){var M,E,$,z;if(a.value){const W=a.value;m.value&&((m.value.n||m.value.s)&&((M=u.value)!=null&&M.height)&&(W.style.height=u.value.height+"px"),(m.value.w||m.value.e)&&((E=u.value)!=null&&E.width)&&(W.style.width=u.value.width+"px"),f.value&&(($=f.value)!=null&&$.x&&(W.style.left=f.value.x+"px"),(z=f.value)!=null&&z.y&&(W.style.top=f.value.y+"px")))}}function x(){const M=e.minHeight?e.minHeight:1,E=e.minWidth?e.minWidth:1;u.value&&f.value&&m.value&&l.value&&(u.value.height<M&&(u.value.height=M,m.value.n&&r.value&&(f.value.y=r.value.y+(l.value.height-M))),u.value.width<E&&(u.value.width=E,m.value.w&&r.value&&(f.value.x=r.value.x+(l.value.width-E))),e.maxHeight&&u.value.height>e.maxHeight&&(u.value.height=e.maxHeight,r.value&&m.value.n&&(f.value.y=r.value.y+(l.value.height-e.maxHeight))),e.maxWidth&&u.value.width>e.maxWidth&&(u.value.width=e.maxWidth,m.value.w&&r.value&&(f.value.x=r.value.x+(l.value.width-e.maxWidth))))}function c(){if(o.value){const M=h.value;if(f.value&&u.value&&m.value&&l.value){const E=M.width-M.pr-M.deltaL-M.translateX-f.value.x,$=M.height-M.pb-M.deltaT-M.translateY-f.value.y;m.value.n&&f.value.y+M.translateY<0&&r.value&&(f.value.y=-M.translateY,u.value.height=l.value.height+r.value.y+M.translateY),m.value.w&&f.value.x+M.translateX<0&&r.value&&(f.value.x=-M.translateX,u.value.width=l.value.width+r.value.x+M.translateX),u.value.width>E&&(u.value.width=E),u.value.height>$&&(u.value.height=$)}}}function y(M){if(!i.value||!l.value||!r.value||!m.value)return;M.subtract(i.value);const E=M.x,$=M.y;m.value.n?(f.value.y=r.value.y+$,u.value.height=l.value.height-$):m.value.s&&(u.value.height=l.value.height+$),m.value.e?u.value.width=l.value.width+E:m.value.w&&(u.value.width=l.value.width-E,f.value.x=r.value.x+E),c(),x(),C()}function b(M){if(!g.value)return;const E=A.fromEvent(M);E&&y(E)}function N(){if(a.value){const{width:M,height:E,x:$,y:z}=a.value.getBoundingClientRect(),W=A.getTransformInfo(a.value);return{size:{width:M,height:E},position:{x:$-W.x,y:z-W.y}}}return null}function I(M){if(a.value){const E=N();v.value=E}i.value=void 0,l.value=null,r.value=null,u.value=null,f.value=null,m.value=null,g.value=null,document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",I)}function j(){document.addEventListener("mousemove",b),document.addEventListener("mouseup",I)}function O(M){M instanceof MouseEvent&&M.button===2||k.value&&(document.body.click(),M.stopPropagation(),M.preventDefault(),i.value=A.fromEvent(M),g.value=M.target,p(M),j())}function D(M){return a.value=M,T.value&&t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"fv-resizable-handle fv-resizable-n",type:"n",onMousedown:E=>O(E)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-e",type:"e",onMousedown:E=>O(E)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-s",type:"s",onMousedown:E=>O(E)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-w",type:"w",onMousedown:E=>O(E)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-ne",type:"ne",onMousedown:E=>O(E)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-se fv-resizable-diagonal",type:"se",onMousedown:E=>O(E)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-sw",type:"sw",onMousedown:E=>O(E)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-nw",type:"nw",onMousedown:E=>O(E)},null)])}function S(M=!0){document.body.click();const E=o.value||document.body,$=ee.getCurrent(E),z=a.value;M&&z&&(w.value=N(),w.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="",v.value={size:u.value,position:{x:0,y:0}},k.value=!1,s.value=!0)}function V(){var M,E;if(document.body.click(),w.value){const $={width:w.value.size.width||0,height:w.value.size.height||0},z={x:(window.innerWidth-$.width)/2,y:(window.innerHeight-$.height)/2};(M=u.value)==null||M.set($),(E=f.value)==null||E.set(z);const W=a.value;W.style.height=$.height+"px",W.style.width=$.width+"px",W.style.left=`${z.x}px`,W.style.top=`${z.y}px`,W.style.transform="",v.value={size:$,position:z},k.value=e.draggable,s.value=!1}}function B(){if(a.value){const M=ee.getCurrent(a.value);if(M){const{width:E,height:$}=M;a.value.style.left=`${(window.innerWidth-E)/2}px`,a.value.style.top=`${(window.innerHeight-$)/2}px`,a.value.style.transform=""}}}function P(){const M=()=>{s.value?S(!1):B(),document.body.click()};return window.addEventListener("resize",M),()=>{window.removeEventListener("resize",M)}}const L=P();return{renderResizeBar:D,boundingElement:o,resizedEventParam:v,maximize:S,restore:V,allowDrag:k,isMaximized:s,unWindowResizeHandle:L,moveToCenter:B}}function En(e,n,a){const o=t.ref(),i=t.ref(e.draggable),l=t.ref(e.lockAxis),r=t.ref(),u=t.ref(),f=t.ref(!1),m=t.ref(new A(0,0)),g=t.ref(new A(0,0)),h=t.ref(new A(0,0)),v=t.ref(new A(0,0));t.watch(()=>a.value,b=>{r.value.style.cursor=b?"move":"default"});function T(b,N){if(N.tagName==="BUTTON")return!1;if(N===b)return!0;for(const I in N.children)if(Object.prototype.hasOwnProperty.call(N.children,I)&&T(b,N.children[I]))return!0;return!1}function w(){var j,O;let b=h.value.x+g.value.x,N=h.value.y+g.value.y;l.value==="x"?(b=((j=m.value)==null?void 0:j.x)||0,h.value.x=0):l.value==="y"&&(N=((O=m.value)==null?void 0:O.y)||0,h.value.y=0);const I=`translate3d(${Math.round(b)}px, ${Math.round(N)}px, 0px)`;o.value&&(o.value.style.transform=I),v.value.x=b,v.value.y=N}function k(){if(!u.value||!o.value)return null;const b=u.value.getBoundingClientRect(),N=o.value.getBoundingClientRect(),I={top:b.top<N.top,right:b.right>N.right,bottom:b.bottom>N.bottom,left:b.left<N.left};return I.top||(h.value.y-=N.top-b.top),I.bottom||(h.value.y-=N.bottom-b.bottom),I.right||(h.value.x-=N.right-b.right),I.left||(h.value.x-=N.left-b.left),w(),I}function s(b){b&&(m.value&&b.subtract(m.value),h.value.set(b),w(),k())}function d(b){f.value&&i.value&&(b.stopPropagation(),b.preventDefault(),s(A.fromEvent(b,r.value)))}function p(){var b;f.value&&(f.value=!1,g.value.add(h.value),h.value.reset(),(b=o.value)==null||b.classList.remove("ng-dragging"),n.emit("stopMove"),document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",p))}function C(){!f.value&&r.value&&(f.value=!0,r.value.classList.add("ng-dragging"),document.addEventListener("mousemove",d),document.addEventListener("mouseup",p))}function x(){if(o.value){const b=A.getTransformInfo(o.value);g.value.set(b);return}g.value.reset()}function c(b){if(!a.value||b instanceof MouseEvent&&b.button===2)return;const N=b.target||b.srcElement;r.value!==void 0&&N&&!T(N,r.value)||i.value!==!1&&(document.body.click(),b.stopPropagation(),b.preventDefault(),m.value=A.fromEvent(b,o.value),x(),C())}function y(b,N,I){if(i.value&&N){if(b)r.value=b;else if(e.dragHandle){if(e.dragHandle instanceof HTMLElement)r.value=e.dragHandle;else if(typeof e.dragHandle=="string"){const j=N.querySelector(e.dragHandle);j&&(r.value=j)}}o.value=N,u.value=I,r.value?(r.value.classList.add("ng-draggable"),r.value.addEventListener("mousedown",c)):i.value=!1}}return{registerDraggle:y,resetTranslate:x}}function Xe(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 Pn(e,n){const a=t.ref(e.enableEsc);let o=null;return a.value?(o=Xe("Escape",i=>{n.emit("esc",{event:i.event,type:"esc"})}),{remove:o}):null}function Dn(e,n){const a=t.ref(e.enableEnter);let o=null;return a.value?(o=Xe("Enter",i=>{n.emit("enter",{event:i.event,type:"enter"})}),{remove:o}):null}const re=t.defineComponent({name:"FModal",props:Vn,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),i=t.ref(e.modelValue),l=t.ref(""),r=t.ref(e.class),u=t.ref(e.fitContent),f=t.ref(e.showHeader),m=t.ref(""),g=t.ref(e.showCloseButton),h=t.ref(e.showMaxButton),v=t.ref(!1),T=t.ref(e.dialogType),w=t.ref(e.src),k=t.ref(""),s=t.ref(e.showButtons),d=t.ref(e.title),p=t.ref(e.containment||null),C=t.ref();d.value==="错误提示"&&(d.value=K.LocaleService.getLocaleValue("messageBox.errorTitle"));const x=t.ref(!1);function c(F,R){const Y=R?"accept":"cancel";Promise.resolve().then(()=>{var q;return(q=e.beforeClose)==null?void 0:q.call(e,{closeType:Y})}).then(q=>{q&&(i.value=!1,n.emit("update:modelValue",!1),R!=null&&n.emit(R?"accept":"cancel"),n.emit("closed",F))})}const y=[{name:"cancel",text:K.LocaleService.getLocaleValue("messageBox.cancel")||"取消",class:"btn btn-secondary",handle:F=>{c(F,!1)}},{name:"accept",text:K.LocaleService.getLocaleValue("messageBox.ok")||"确定",class:"btn btn-primary",handle:F=>{c(F,!0)}}],b=t.ref(e.buttons&&e.buttons.length?e.buttons:y),N=t.computed(()=>!!m.value),I=t.computed(()=>!!s.value&&!!b.value),j=t.ref(),O=t.ref(),D=t.ref(!1),{renderResizeBar:S,maximize:V,restore:B,boundingElement:P,resizedEventParam:L,allowDrag:M,unWindowResizeHandle:E,moveToCenter:$}=Bn(e),{registerDraggle:z}=En(e,n,M);function W(){return!!document.querySelectorAll(".farris-modal").length&&document.body.classList.contains("modal-open")}function Zn(){const F=document.querySelectorAll(".farris-modal").length;(!F||F-1<=0)&&document.body.classList.remove("modal-open"),C.value&&C.value.classList.remove("show")}t.watch(()=>e.title,(F,R)=>{F!==R&&(d.value=F)}),t.watch(()=>e.modelValue,(F,R)=>{F!==R&&(i.value=F,i.value&&e.draggable&&t.nextTick(()=>{O.value&&!p.value&&(p.value=O.value.parentElement,P.value=p.value,z(j.value,O.value,P.value),$())}),F||(p.value&&(p.value=null),Zn())),i.value?x.value=W():(D.value=!1,M.value=e.draggable)}),t.watch(()=>e.showHeader,(F,R)=>{F!==R&&(f.value=F)}),t.watch(()=>e.showButtons,(F,R)=>{F!==R&&(s.value=F)}),t.watch(()=>L.value,(F,R)=>{const Y=F||{},q=R||{};JSON.stringify(Y)!==JSON.stringify(q)&&n.emit("resize",{newSize:F,oldSize:R,isMaximized:D.value})}),t.watch([()=>e.width,()=>e.height],(F,R)=>{(F[0]!==R[0]||F[1]!==R[1])&&(a.value=F[0]||500,o.value=F[1]||600)}),t.watch(()=>e.class,(F,R)=>{r.value=F});const pe=t.computed(()=>(i.value&&document.body.classList.add("modal-open"),i.value)),Qn=t.computed(()=>{var Y;const F={modal:!0,"farris-modal":!0,fade:!0};F["f-modal-fitContent"]=!!u.value,F.show=!!pe.value;const R=(Y=e.maskClass)==null?void 0:Y.split(" ");return R==null||R.reduce((q,X)=>(q[X]=!0,q),F),F}),ea=t.computed(()=>{var Y;const F={"modal-dialog":!0},R=(Y=r.value)==null?void 0:Y.split(" ");return R==null||R.reduce((q,X)=>(q[X]=!0,q),F),F}),et=()=>G.isMobilePhone()&&!e.isMessager,ta=t.computed(()=>{const F=document.documentElement.clientWidth,R=document.documentElement.clientHeight,Y=Math.min(a.value,F),q=u.value?"auto":`${Math.min(o.value,R-10)}px`,X={position:"absolute",top:`${(window.innerHeight-parseInt(q==="auto"?"0":q))/2}px`,left:`${(window.innerWidth-Y)/2}px`,width:`${Y}px`,height:q};return et()&&(X.top="0px",X.left="0px",X.width=`${window.innerWidth}px`,X.height=`${window.innerHeight}px`),e.mask||(X.pointerEvents="auto"),X}),tt=t.ref(G.getMaxZIndex()||1050),na=t.computed(()=>{const F={display:"block",overflow:"hidden"};return e.mask||(F.pointerEvents="none",F.backgroundColor="transparent"),x.value&&(F.backgroundColor="transparent"),F.zIndex=tt.value,F}),aa=t.computed(()=>({"modal-content":!0,"modal-content-has-header":f.value,"is-mobile":et()})),oa=t.computed(()=>{const F={display:f.value?"":"none"};return F["pointer-events"]=M.value?"auto":"none",F}),ia=t.computed(()=>({"f-icon":!0,modal_maximize:!0,modalrevert:D.value})),la=t.computed(()=>({"modal-body":!0,"f-utils-flex-column":T.value==="iframe","f-utils-fill":!0}));function ra(){return{height:`${e.footerHeight||60}px`}}const sa=t.computed(()=>{const F={textAlgin:k.value},R=ra();return Object.assign(F,R)});function nt(F){if(F==null||F.stopPropagation(),D.value){D.value=!1,B();return}V(),D.value=!0}async function ca(F,R){F.handle&&await F.handle(R,F)&&n.emit("closed",R)}function ua(F){F.width&&(a.value=F.width),F.height&&(o.value=F.height),F.buttons&&(b.value=F.buttons),F.title&&(d.value=F.title)}let xe=null,Fe=null;t.onBeforeMount(()=>{x.value=W()}),t.onMounted(()=>{O.value&&!p.value&&(p.value=O.value.parentElement,P.value=p.value,z(j.value,O.value,P.value)),pe.value&&document.body.classList.add("modal-open"),xe=Pn(e,n),Fe=Dn(e,n)}),t.onUnmounted(()=>{E&&E(),xe&&xe.remove(),Fe&&Fe.remove()}),n.expose({modalElementRef:O,updateModalOptions:ua,close:c,maxDialog:nt,isMaximized:D});function da(){return t.createVNode("ul",null,[v.value&&t.createVNode("li",{class:"f-btn-icon f-bare"},[t.createVNode("span",{class:"f-icon modal_minimize"},null)]),h.value&&t.createVNode("li",{onClick:nt,class:"f-btn-icon f-bare",style:"pointer-events: auto;"},[t.createVNode("span",{class:ia.value},null)]),g.value&&t.createVNode("li",{class:"f-btn-icon f-bare",onClick:F=>c(F,!1),style:"pointer-events: auto;"},[t.createVNode("span",{class:"f-icon modal_close"},null)])])}function fa(){return t.createVNode("div",{class:"modal-footer",style:sa.value},[b.value&&b.value.map(F=>{const R=t.ref(F.disabled);return t.createVNode("button",{name:F.name,type:"button",disabled:R.value,class:F.class+(F.iconClass?" btn-icontext":""),onClick:Y=>{ca(F,Y)}},[!!F.iconClass&&t.createVNode("i",{class:F.iconClass},null),F.text])})])}function ma(){return t.createVNode("div",{ref:j,class:"modal-header",style:oa.value},[n.slots.headerTemplate?n.slots.headerTemplate():t.createVNode("div",{class:"modal-title"},[N.value&&t.createVNode("span",{class:m.value,style:"margin-right: 8px"},null),t.createVNode("span",{class:"modal-title-label"},[d.value])]),t.createVNode("div",{class:"actions"},[da()])])}function ya(){return n.slots.footerTemplate?n.slots.footerTemplate():I.value&&fa()}function pa(F){if(F.stopPropagation(),e.allowClickMaskToClose){if(F.target!==C.value)return;c(F,!1)}}function ha(){var F,R;return t.createVNode("div",{id:l.value,class:ea.value,style:ta.value,ref:O},[t.createVNode("div",{class:aa.value},[f.value&&ma(),t.createVNode("div",{class:la.value},[(R=(F=n.slots).default)==null?void 0:R.call(F),T.value==="iframe"&&t.createVNode("iframe",{title:l.value,class:"f-utils-fill",width:"100%",frameborder:"0",src:w.value},null)]),ya()]),!u.value&&O.value&&!D.value&&S(O.value)])}function ga(F){return F||"body"}return t.watchEffect(()=>{pe.value&&(tt.value=G.getMaxZIndex()||1050)}),()=>t.createVNode(t.Teleport,{to:ga(e.host)},{default:()=>[pe.value&&t.createVNode(t.Transition,{name:"fade",appear:!0},{default:()=>[t.createVNode("div",{ref:C,class:Qn.value,style:na.value,onClick:pa},[ha()])]})]})}});function Ke(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function jn(e){const n=document.createElement("div");n.style.display="contents";const a=t.createApp({setup(o,i){t.onUnmounted(()=>{document.body.removeChild(n)});const l=t.ref(),r=t.ref(e.class||""),u=t.ref(!!e.showButtons),f=t.ref(!!e.showHeader),m=t.ref(e.showCloseButton==null?!0:e.showCloseButton),g=t.ref(!0),h=t.ref(e.title||""),v=e.acceptCallback||(()=>{}),T=e.rejectCallback||(()=>{}),w=e.closedCallback||(C=>{}),k=e.resizeHandle||(C=>{}),s=e.stopMoveHandle||(C=>{}),d=Ke(e),p=C=>{g.value=!1,a.unmount(),w(C)};return t.onMounted(()=>{}),i.expose({modalRef:l}),()=>t.createVNode(re,{ref:l,class:r.value,modelValue:g.value,"onUpdate:modelValue":C=>g.value=C,title:h.value,width:e.width,height:e.height,buttons:e.buttons,"show-header":f.value,"show-buttons":u.value,"show-close-button":m.value,"show-max-button":!1,onAccept:v,onCancel:T,fitContent:e.fitContent==null?!0:e.fitContent,onClosed:p,onResize:k,onStopMove:s},{default:()=>[d&&d(a)]})}});return document.body.appendChild(n),a.use(K.LocaleService.i18n),a.mount(n),a}class In{constructor(n){J(this,"appContext",null);J(this,"modalRef",t.ref());J(this,"activeModalIndex",t.ref(0));J(this,"modalRefs",{});J(this,"isUseEscCloseModal",t.ref(!1));J(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:i}={width:window.innerWidth,height:window.innerHeight};return o<n&&(n=o-14),i<a&&(a=i-14),{width:n,height:a}}static show(n){const a=Object.assign({title:"",showButtons:!0,showHeader:!0},n);return jn(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)),i=t.ref(!0),l=o.value.acceptCallback||(()=>{}),r=o.value.rejectCallback||(()=>{}),u=o.value.closedCallback||((c,y)=>{}),f=o.value.resizeHandle||(c=>{}),m=n.stopMoveHandle||(c=>{});let g;const h=Ke(o.value),v=c=>{var b;i.value=!1;const y=(b=c==null?void 0:c.target)==null?void 0:b.classList.contains("modal_close");u(c,this.isUseEscCloseModal.value?"esc":y?"icon":"button")},T=c=>{v(c),g&&t.nextTick(()=>{if(this.modalRefs[this.activeModalIndex.value]&&delete this.modalRefs[this.activeModalIndex.value],t.render(null,a),g=null,this.modalRef.value=null,this.modalRefs){const y=Object.keys(this.modalRefs).map(b=>Number(b));y.length>0?this.activeModalIndex.value=Math.max(...y):this.activeModalIndex.value=0}this.isUseEscCloseModal.value=!1})},w=c=>{var y;this.isUseEscCloseModal.value=!0,this.activeModalInstance&&((y=this.activeModalInstance.value)==null||y.close(c==null?void 0:c.event))},{width:k,height:s}=o.value,d=this.adaptToWindow(k||500,s||320);Object.assign(o.value,d);const p=()=>t.createVNode(re,t.mergeProps({ref:this.modalRef,modelValue:i.value,"onUpdate:modelValue":c=>i.value=c},o.value,{isMessager:o.value.class&&o.value.class.indexOf("modal-message")>-1,onAccept:l,onCancel:r,onClosed:T,onResize:f,onEsc:w,onStopMove:m}),{default:()=>[h&&h(this.app)]});return g=(c=>{const y=t.h(p,c);return y.appContext=this.appContext,t.render(y,a),y})({...o.value}),this.activeModalIndex.value++,this.modalRefs[this.activeModalIndex.value]=this.modalRef.value,{update:c=>{o.value={...o.value,...c},g&&t.render(t.cloneVNode(g,{...o}),a)},destroy:T,modalRef:this.activeModalInstance,close:()=>this.close()}}}const _e=Symbol("FModalService");re.install=e=>{e.component(re.name,re);const n=new In(e);e.provide(_e,n),e.provide("FModalService",n)};function Je(e,n){function a(){const o=e.beforeOpen||e.beforeClickButton||null;let i=Promise.resolve(!0);if(o){const l=o(n.value);if(typeof l>"u")return i;typeof l=="boolean"?i=Promise.resolve(l):i=l}return i}return{judgeCanOpen:a}}function Rn(e,n,a,o,i){const l=t.ref(e.buttonBehavior),r=t.ref(e.popupOnInput),u=t.computed(()=>({"input-group-append":!0,"append-force-show":e.showButtonWhenDisabled&&(e.readonly||e.disable)})),{judgeCanOpen:f}=Je(e,i),m=t.computed(()=>e.showButtonWhenDisabled||(!e.editable||!e.readonly)&&!e.disable),g=t.inject(_e,null),h=t.ref();async function v(k){if(await f()&&m.value){const s=!!n.slots.default;if(l.value==="Modal"){const d=e.modalOptions,p=g==null?void 0:g.open({...d,render:()=>n.slots.default&&n.slots.default()});h.value=p==null?void 0:p.modalRef}l.value==="Overlay"&&On.show({host:document.body,backgroundColor:"rgba(0,0,0,.15)",render:()=>n.slots.default&&n.slots.default()}),s&&l.value==="Popup"&&o.togglePopup(!0),s&&r.value&&o.hidePopup(),n.emit("clickButton",{origin:k,value:e.modelValue})}}function T(k){n.emit("mouseEnterIcon",k)}function w(k){n.emit("mouseLeaveIcon",k)}return{buttonGroupClass:u,onClickButton:v,onMouseEnterButton:T,onMouseLeaveButton:w,modalRef:h}}function Ln(e,n,a,o,i,l){const r=t.ref(!1),u=t.computed(()=>e.enableClear&&!e.readonly&&!e.disable),{changeTextBoxValue:f,hasClearClass:m}=l;function g(w){r.value=w,m.value=w}t.watch(i,()=>{g(!!i.value)});function h(w){const k=!e.readonly&&!e.disable&&e.editable,s=!e.editable;w.stopPropagation(),(k||s)&&(f(""),i.value="",g(!r.value),n.emit("clear"))}function v(w){if(u.value){if(!a.value){g(!1);return}!e.disable&&!e.readonly&&g(!0)}}function T(w){u.value&&g(!1)}return{enableClearButton:u,showClearButton:r,onClearValue:h,onMouseEnterTextBox:v,onMouseLeaveTextBox:T}}function zn(e,n,a,o,i){const l=t.computed(()=>e.popupOnInput),r=t.computed(()=>e.popupOnFocus),{shouldPopupContent:u,closeAllPopover:f}=i,m=t.ref(!1),g=t.computed(()=>e.enableTitle?a.value:""),h=t.computed(()=>(e.disable||e.readonly)&&!e.forcePlaceholder?"":e.placeholder),v=t.computed(()=>e.readonly||!e.editable),T=t.ref(!1),w=t.computed(()=>!e.disable&&T.value),k=t.computed(()=>({"text-left":e.textAlign==="left","text-center":e.textAlign==="center","text-right":e.textAlign==="right","form-control":!0,"f-utils-fill":!0})),s=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":w.value,"input-group--has-clear":e.enableClear&&m.value}));function d(O,D=!0){a.value=O,D&&(n.emit("change",O),n.emit("update:modelValue",O))}function p(O){u.value=!1,d(O,!0)}t.watch(()=>e.modelValue,O=>{a.value=O});function C(O){T.value=!1,n.emit("blur",O),O.stopPropagation()}function x(O){n.emit("click",O),f(),n.slots.default&&!e.disable&&!e.readonly&&e.popupOnClick&&i.togglePopup()}function c(O){!e.disable&&!e.readonly&&(T.value=!0,v.value||(n.emit("focus",O),r.value&&!u.value&&i.popup()))}function y(O){n.emit("input",O);const D=O.target.value;o.value=D,a.value!==D&&d(D,e.updateOn==="change"),l.value&&!u.value&&i.popup()}function b(O){O.target.tagName!=="INPUT"&&O.preventDefault(),O.stopPropagation()}function N(O){n.emit("keydown",O)}function I(O){O.key==="Enter"&&(l.value||r.value)&&i.hidePopup(),n.emit("keyup",O)}function j(O){const D=O.target.value;O.stopPropagation(),d(D)}return{hasFocusedTextBox:w,isTextBoxReadonly:v,textBoxClass:k,textBoxPlaceholder:h,textBoxTitle:g,inputGroupClass:s,hasClearClass:m,changeTextBoxValue:d,commitValue:p,onBlurTextBox:C,onClickTextBox:x,onFocusTextBox:c,onInput:y,onKeyDownTextBox:N,onKeyUpTextBox:I,onMouseDownTextBox:b,onTextBoxValueChange:j}}const te="FarrisVue_PopoverInstancesKey";function Hn(e,n,a,o){const i=t.ref(),l=t.ref(!1),{judgeCanOpen:r}=Je(e,o);t.watch(()=>i.value,(T,w)=>{window[te]=window[te]||new WeakMap,T?window[te].set(a.value,T):window[te].delete(a.value)});function u(){if(window[te]){const T=window[te];document.querySelectorAll(".f-button-edit,.v-popover").forEach(w=>{const k=T.get(w);k&&w!==a.value&&!a.value.closest(".popover-fitcontent")&&k.hide()})}}function f(){const T=i.value;T&&T.show(a.value)}async function m(T=!1){if(!!n.slots.default){if(!T&&!l.value&&!await r())return;l.value=!l.value,l.value&&(await t.nextTick(),f())}}async function g(T=!1){if(!!n.slots.default){if(!T&&!await r())return;l.value=!0,await t.nextTick(),f()}}function h(){l.value=!1}function v(){l.value=!0,t.nextTick(()=>{f()})}return{hidePopup:h,showPopup:v,popup:g,shouldPopupContent:l,togglePopup:m,popoverRef:i,closeAllPopover:u}}function $n(e,n,a){const o=t.ref(),{isTextBoxReadonly:i,textBoxClass:l,textBoxPlaceholder:r,textBoxTitle:u,onBlurTextBox:f,onClickTextBox:m,onFocusTextBox:g,onInput:h,onKeyDownTextBox:v,onKeyUpTextBox:T,onMouseDownTextBox:w,onTextBoxValueChange:k}=a,s=t.ref(e.id),{uuid:d}=G.useGuid(),p=t.computed(()=>({}));t.onMounted(()=>{var b,N;e.selectOnCreated&&((b=o.value)==null||b.select()),e.focusOnCreated&&((N=o.value)==null||N.focus({preventScroll:!0})),s.value||(s.value="button-edit_"+d(8)),s.value=s.value+"-textbox"});const C=t.ref(!1),x=b=>{b.preventDefault(),C.value=!0},c=b=>{b.preventDefault(),C.value=!1,h(b)};function y(b){C.value||h(b)}return()=>t.createVNode("input",{id:e.id?e.id+"-textbox":void 0,ref:o,name:"input-group-value",autocomplete:e.autoComplete?"on":"off",class:l.value,style:p.value,disabled:e.disable,maxlength:e.maxLength,minlength:e.minLength,placeholder:r.value,readonly:i.value,tabindex:e.tabIndex,title:u.value,type:e.inputType,value:n.value,onBlur:f,onChange:k,onClick:m,onFocus:g,onInput:y,onKeydown:v,onKeyup:T,onMousedown:w,onCompositionend:c,onCompositionstart:x},null)}function An(e,n,a){const o=t.ref(e.separator),i=t.computed(()=>e.readonly||e.disable),{changeTextBoxValue:l,onFocusTextBox:r,onBlurTextBox:u,onClickTextBox:f,textBoxPlaceholder:m}=a,g=t.computed(()=>n.value?n.value.split(o.value).map(w=>({name:w,selectable:!0})):[]);function h(w){l(w.map(k=>k.name).join(o.value),!0)}t.watch(()=>e.separator,w=>{o.value=w});const v=t.ref(!e.disable&&!e.readonly);t.watch([()=>e.disable,()=>e.readonly],([w,k],[s,d])=>{v.value=!w&&!k});function T(w){f(w)}return()=>t.createVNode(rt,{tabindex:e.tabIndex,onFocus:r,onBlur:u,id:`${e.id}-tag-editor`,class:"form-control",placeholder:m.value,data:g.value,showClose:!i.value,showInput:!0,disable:i.value,onChange:h,onClick:T},null)}function Wn(e,n,a,o){const{buttonGroupClass:i,onClickButton:l,onMouseEnterButton:r,onMouseLeaveButton:u}=a,{enableClearButton:f,showClearButton:m,onClearValue:g}=o,h=t.ref(),v=ne.debounce(w=>{l(w)},e.buttonBehavior==="Modal"?0:200),T=()=>{n.emit("beforeClearValue")};return{renderButtonGroup:()=>t.createVNode("div",{id:e.id?`${e.id}-button-group`:void 0,class:i.value},[f.value&&t.withDirectives(t.createVNode("span",{class:"input-group-text input-group-clear",onClick:g,onMousedown:T},[t.createVNode("i",{class:"f-icon modal_close"},null)]),[[t.vShow,m.value]]),n.slots.buttonContent?t.createVNode("span",{class:"input-group-text input-group-append-button",onClick:v,onMouseenter:r,onMouseleave:u},[n.slots.buttonContent()]):e.buttonContent?t.createVNode("span",{class:"input-group-text input-group-append-button",innerHTML:e.buttonContent,ref:h,onClick:w=>v(w),onMouseenter:r,onMouseleave:u},null):null]),buttonHandleElement:h}}function qn(e,n,a){const o=t.ref(e.popupMinWidth),{hidePopup:i,popoverRef:l}=a,r=()=>{n.emit("shown")};return()=>t.createVNode(st,{id:`${e.id}-popover`,ref:l,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:i,onShown:r,beforeClose:e.beforeClosePopup,limitContentBySpace:e.limitContentBySpace},{default:()=>{var u,f;return[(f=(u=n.slots).default)==null?void 0:f.call(u)]}})}const Yn=t.defineComponent({name:"FButtonEdit",props:Fn,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),i=t.ref(e.modelValue),l=Hn(e,n,a,i),{shouldPopupContent:r,hidePopup:u,showPopup:f,togglePopup:m}=l,g=Rn(e,n,a,l,i),h=t.ref(""),v=zn(e,n,i,h,l),{hasFocusedTextBox:T,commitValue:w,inputGroupClass:k}=v,s=Ln(e,n,i,T,h,v),{onMouseEnterTextBox:d,onMouseLeaveTextBox:p}=s,C=t.ref(!1),x=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((L,M)=>(L[M]=!0,L),P),P}),c=t.computed(()=>({overflow:e.wrapText?"hidden":""})),y=t.computed(()=>({}));function b(){if(!e.multiSelect||e.inputType!=="tag"||!a.value)return 0;let P=0;const L=Array.from(a.value.querySelectorAll(".farris-tag-item"));return L&&L.length&&(P=L.map(M=>M.offsetTop).filter(M=>M>20).length),P}const N=t.ref(b());t.onUpdated(()=>{N.value=b()});function I(){return e.multiSelect&&e.inputType==="tag"?()=>t.createVNode(t.Fragment,null,[An(e,i,v)(),!!N.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("+"),N.value])])]):$n(e,i,v)}let j=I();t.watch([()=>e.multiSelect,()=>e.inputType],()=>{j=I()});const{renderButtonGroup:O,buttonHandleElement:D}=Wn(e,n,g,s),S=qn(e,n,l),V=t.ref(r.value),B={displayText:h,commitValue:w,elementRef:a,hidePopup:u,showPopup:f,popoverRef:l.popoverRef,shouldPopupContent:r,togglePopup:m,openDialog:()=>{D.value&&e.buttonBehavior==="Modal"&&D.value.click()},getModal:()=>{var P;return e.buttonBehavior==="Modal"?(P=g.modalRef.value)==null?void 0:P.value:null},getTextbox:()=>{var P;return(P=a.value)==null?void 0:P.querySelector("input")},forceClosePopup:()=>{V.value=!1,C.value=!0,r.value=!1}};return t.onMounted(()=>{a.value.componentInstance=B,window.onresize=()=>{document.body.click()}}),t.onBeforeUnmount(()=>{var P;window.onresize=null,(P=window[te])==null||P.delete(a.value)}),n.expose(B),t.watch(()=>r.value,async(P,L)=>{if(C.value){V.value=P,C.value=!1;return}if(!P&&e.beforeClosePopup&&typeof e.beforeClosePopup=="function"){try{const M=await e.beforeClosePopup();V.value=!M,(!M||e.readonly)&&(r.value=!0)}catch(M){console.error("Error in beforeClosePopup:",M),V.value=L,r.value=L}return}V.value=P}),()=>{var P,L;return t.createVNode(t.Fragment,null,[t.createVNode("div",t.mergeProps(n.attrs,{ref:a,class:x.value,id:e.id?e.id:void 0,style:c.value}),[t.createVNode("div",{id:e.id?`${e.id}-input-group`:void 0,class:k.value,style:y.value,onMouseenter:d,onMouseleave:p},[(L=(P=n.slots).precontent)==null?void 0:L.call(P),j(),O()])]),V.value&&S()])}}}),Un={$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"]},Ze={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}},Gn=U.createPropsResolver(Ze,Un),Xn={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}},Kn={showCloseButton:{type:Boolean,default:!0},animate:{type:String,default:"fadeIn"},options:{type:Object}},we=t.defineComponent({name:"Toast",props:Kn,emits:["close","click"],setup:(e,n)=>{const a=t.ref(e.animate),o="fadeOut",i=t.computed(()=>e.options),l=t.ref(!1),r=t.computed(()=>i.value.title&&i.value.message),u=t.computed(()=>!i.value.title&&i.value.message),f=t.computed(()=>{const p={animated:l.value,toast:!0,"toast--only-content":!r.value};return p[e.animate]=!1,p[o]=l.value,p["toasty-type-"+i.value.type]=!0,i.value.theme&&(p[i.value.theme]=!0),p}),m=t.computed(()=>{const x=`f-icon-${i.value&&i.value.type?i.value.type.replace("toasty-type-",""):"default"}`,c={"f-icon":!0};return c[x]=!0,c}),g=t.computed(()=>i.value.title||i.value.message),h=t.computed(()=>e.showCloseButton),v=t.computed(()=>!!i.value.buttons||!!n.slots.default),T=t.computed(()=>K.LocaleService.getLocale()==="en"?{wordBreak:"keep-all",overflowWrap:"break-word"}:{});function w(p){p.stopPropagation(),p.preventDefault(),l.value=!1,setTimeout(()=>{n.emit("close",i.value)},200)}function k(p,C){}function s(p){return`f-preten-link ${p.customClass?p.customClass:""}`}t.watch(a,()=>{a.value});const d=()=>{var p;return t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"after-toast-msg text-right"},[!n.slots.default&&((p=i.value.buttons)==null?void 0:p.map(C=>t.createVNode("span",{class:s(C),onClick:x=>void 0},[C.text]))),n.slots.default&&n.slots.default()])])};return()=>t.createVNode("div",{class:f.value,style:"min-height:44px"},[h.value&&t.createVNode("button",{title:K.LocaleService.getLocaleValue("messageBox.close"),class:"toast-close f-btn-icon f-bare",onClick:w},[t.createVNode("span",{class:"f-icon modal_close"},null)]),g.value&&t.createVNode("section",{class:"modal-tips"},[!r.value&&t.createVNode("div",{class:"float-left modal-tips-iconwrap"},[t.createVNode("span",{class:m.value},null)]),t.createVNode("div",{class:"modal-tips-content"},[r.value&&t.createVNode(t.Fragment,null,[t.createVNode("h5",{class:"toast-title modal-tips-title",innerHTML:i.value.title},null),t.createVNode("p",{class:"toast-msg",innerHTML:i.value.message,style:T.value},null),v.value&&d()]),u.value&&(i.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:T.value,innerHTML:i.value.message},null),t.createVNode("div",{class:"after-toast-title text-right ml-auto"},[d()])]):t.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:T.value,innerHTML:i.value.message},null))])])])}}),me=t.defineComponent({name:"Notify",props:Xn,emits:["close","empty"],setup(e,n){const a=t.computed(()=>({"farris-notify":!0})),o={left:12,right:12,top:20,bottom:12},i=t.ref(),l=t.ref(e.options),r=t.ref(e.showCloseButton),u=t.computed(()=>e.position||"bottom-right"),f=t.computed(()=>e.timeout!=null?e.timeout:3e3),m=t.computed(()=>{const v=e.bottom?e.bottom:o.bottom,T=e.top?e.top:o.top,w={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?`${T}px`:"",bottom:u.value.indexOf("bottom")>-1?`${v}px`:""};return u.value.indexOf("center")>-1&&(w.left="50%",w.marginLeft="calc(-24rem / 2)",u.value==="center-center"&&(w.top="50%",w.transform="translate(-50%, -50%)")),w});function g(v){n.emit("close")}f.value&&setTimeout(()=>{g()},f.value),n.expose({closeToast:g,container:i,notifyPosition:u});function h(v,T){g()}return()=>t.createVNode("div",{class:a.value,style:m.value,ref:i},[t.createVNode(we,{options:l.value,showCloseButton:r.value,animate:e.animate,onClose:v=>h(v,l.value)},null)])}});class _n{constructor(){J(this,"notifyRefs",[]);J(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,i=Object.assign({timeout:3e3,position:"bottom-right",showCloseButton:!0,safeHtml:!0},this.globalConfig,{...n}),l=document.createElement("div");l.style.display="contents";const r=t.createApp({setup(){var m;const u=t.ref();function f(){u.value.container.style.transform="scale(0)",setTimeout(()=>{a.updateNotifyPositionForClose(i,u),r.unmount()},220)}if(i.position.indexOf("top")>-1){const g=a.getNotifyInstances(i.position),h=g[g.length-1];if(h){const v=h.value.container.getBoundingClientRect();i.top=v.bottom}}return i.safeHtml&&((m=i.options)!=null&&m.message)&&(i.options.message=a.escapeAllHtml(i.options.message)),t.onUnmounted(()=>{document.body.removeChild(l)}),t.onMounted(()=>{a.updateNotifyPositionForCreate(i,u)}),()=>t.createVNode(t.Transition,{mode:"out-in",name:"fade",appear:!0},{default:()=>[t.createVNode(me,t.mergeProps({ref:u},i,{onClose:f}),null)]})}});return r.provide("NotifyService",this),document.body.appendChild(l),r.use(K.LocaleService.i18n),r.mount(l),r}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(i=>{const l=i.value.container.getBoundingClientRect();i.value.container.style.bottom=l.height+o-l.bottom+"px"})}this.notifyRefs=[...this.notifyRefs,a]}updateNotifyPositionForClose(n,a){const o=this.notifyRefs.indexOf(a);if(n.position.indexOf("top")>-1){const i=this.getNotifyInstances(n.position),l=i.indexOf(a);i.slice(l+1).forEach(r=>{r.value.container.style.top=r.value.container.offsetTop-r.value.container.offsetHeight+"px"})}o>-1&&this.notifyRefs.splice(o,1)}show(n){return this.createNotifyInstance(n)}buildNotifyProps(n,a){let o="",i="",l,r,u;typeof a=="string"?o=a:a&&(o=a.message||"",i=a.title||"",r=a.position||null,u=a.showCloseButton!=null?a.showCloseButton:null,l=a.timeout!=null?a.timeout:null);const m={options:{type:n,message:o,title:i}};return r!=null&&(m.position=r),u!=null&&(m.showCloseButton=u),l!=null&&(m.timeout=l),m}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 Qe=Symbol("NOTIFY_SERVICE_TOKEN");me.install=e=>{e.component(me.name,me),e.component(we.name,we);const n=new _n;e.provide(Qe,n),e.provide("FNotifyService",n)};const ye=t.defineComponent({name:"f-expression-textbox",props:Ze,setup(e,n){const a=t.inject(Qe),o=t.inject("FLoadingService"),i='<i class="f-icon f-icon-lookup"></i>',l=t.ref(e.modelValue),r=t.ref(e.entities),u=t.ref(e.variables),f=t.ref(),m=t.ref(e.validateMessage||""),g=t.ref("info");async function h(){const{value:k,message:s,messageType:d}=f.value.getExpressionValue();if(m.value=s,g.value=d,e.beforeSubmit&&typeof e.beforeSubmit=="function"){const p=await e.beforeSubmit({notifyService:a,expressionValue:k});if(typeof p=="boolean"&&!p)return!1;if(typeof p=="object"){const{canClose:C,message:x}=p;if(!C)return x&&(a==null||a.error({message:x})),!1}}if(n.emit("update:modelValue",k),l.value=k,e.onSubmitModal){const p={expression:k,message:s};e.showMessageType&&(p.messageType=g.value);const C=e.onSubmitModal(p);e.onExpressionChanged&&e.onExpressionChanged(C)}return!0}const v={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:k=>{var s;return(s=f.value)==null||s.resetExpression(),!1}},{name:"cancel",text:"取消",class:"btn btn-secondary",handle:k=>!0},{name:"accept",text:"确定",class:"btn btn-primary",handle:async k=>await h()}]};async function T(){if(e.beforeOpen)try{o==null||o.show();const k=await e.beforeOpen({notifyService:a});if(k)return r.value=k.entities||{},u.value=k.variables||{},m.value=k.message||"",g.value=k.messageType||"info",o==null||o.clearAll(),!0}catch{return a==null||a.error({message:"获取数据失败!"}),!1}finally{o==null||o.clearAll()}return!0}function w(){if(n.emit("update:modelValue",""),l.value="",e.onSubmitModal){const k=e.onSubmitModal({expression:"",message:""});e.onExpressionChanged&&e.onExpressionChanged(k)}}return t.watch(()=>e.modelValue,k=>{l.value=k}),()=>t.createVNode(Yn,{editable:!1,enableTitle:!0,modelValue:l.value,"onUpdate:modelValue":k=>l.value=k,disabled:e.disabled,readonly:e.readonly,inputType:"text",enableClear:e.enableClear,buttonContent:i,buttonBehavior:"Modal",modalOptions:v,beforeOpen:T,onClear:w},{default:()=>[t.createVNode("div",{class:"h-100 d-flex flex-column"},[t.createVNode(Ge,{ref:f,validateMessage:m.value,showMessageType:e.showMessageType,messageType:g.value,modelValue:l.value,"onUpdate:modelValue":k=>l.value=k,esprimaPath:e.esprimaPath,showMessage:e.showMessage,entities:r.value,variables:u.value,disabledFunctions:e.disabledFunctions,showDataPanel:e.showDataPanel,singleExpand:e.singleExpand,isServerSide:e.isServerSide},null)])]})}}),Jn={install(e){e.component(ye.name,ye)},register(e,n,a,o){e["expression-editor"]=ye,n["expression-editor"]=Gn}};H.ExpressionEditor=Ge,H.FExpressionTextbox=ye,H.default=Jn,H.expressionEditorProps=Te,Object.defineProperties(H,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|