@flatbiz/antd 4.5.54 → 4.5.56
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/esm/ace-editor-groovy/index.js +1 -1
- package/esm/ace-editor-groovy/index.js.map +1 -1
- package/esm/ace-editor-java/index.js +1 -1
- package/esm/ace-editor-java/index.js.map +1 -1
- package/esm/ace-editor-json/index.js +1 -1
- package/esm/ace-editor-json/index.js.map +1 -1
- package/esm/ace-editor-mysql/index.js +1 -1
- package/esm/ace-editor-mysql/index.js.map +1 -1
- package/esm/ace-editor-xml/index.js +1 -1
- package/esm/ace-editor-xml/index.js.map +1 -1
- package/esm/anchor-steps/index.js +1 -1
- package/esm/anchor-steps/index.js.map +1 -1
- package/esm/bootstrap/index.js +1 -1
- package/esm/bootstrap/index.js.map +1 -1
- package/esm/box-grid/index.js +1 -1
- package/esm/box-grid/index.js.map +1 -1
- package/esm/button-operate/index.js +1 -1
- package/esm/button-operate/index.js.map +1 -1
- package/esm/button-wrapper/index.js +1 -1
- package/esm/button-wrapper/index.js.map +1 -1
- package/esm/card-layout/index.js +1 -1
- package/esm/card-layout/index.js.map +1 -1
- package/esm/cascader-wrapper/index.css +1 -1
- package/esm/cascader-wrapper/index.js +1 -1
- package/esm/cascader-wrapper/index.js.map +1 -1
- package/esm/check-list/index.js +1 -1
- package/esm/check-list/index.js.map +1 -1
- package/esm/checkbox-wrapper/index.js +1 -1
- package/esm/checkbox-wrapper/index.js.map +1 -1
- package/esm/code-render/index.css +1 -0
- package/esm/code-render/index.js +5 -0
- package/esm/code-render/index.js.map +1 -0
- package/esm/color-picker-wrapper/index.css +1 -1
- package/esm/color-picker-wrapper/index.js +1 -1
- package/esm/color-picker-wrapper/index.js.map +1 -1
- package/esm/config-provider-wrapper/index.js +1 -1
- package/esm/copy-wrapper/index.js +1 -1
- package/esm/copy-wrapper/index.js.map +1 -1
- package/esm/date-picker-wrapper/index.js +1 -1
- package/esm/date-picker-wrapper/index.js.map +1 -1
- package/esm/date-range-picker-wrapper/index.js +1 -1
- package/esm/date-range-picker-wrapper/index.js.map +1 -1
- package/esm/date-range-picker-wrapper-form-item/index.js +1 -1
- package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
- package/esm/delete-node/index.js +1 -1
- package/esm/delete-node/index.js.map +1 -1
- package/esm/dialog-alert/index.js +1 -1
- package/esm/dialog-confirm/index.js +1 -1
- package/esm/dialog-drag-modal/index.js +1 -1
- package/esm/dialog-drag-modal/index.js.map +1 -1
- package/esm/dialog-drawer/index.js +1 -1
- package/esm/dialog-drawer/index.js.map +1 -1
- package/esm/dialog-drawer-content/index.js +1 -1
- package/esm/dialog-drawer-content/index.js.map +1 -1
- package/esm/dialog-loading/index.js +1 -1
- package/esm/dialog-loading/index.js.map +1 -1
- package/esm/dialog-modal/index.js +1 -1
- package/esm/dialog-modal/index.js.map +1 -1
- package/esm/dialog-preview-image/index.js +1 -1
- package/esm/dialog-preview-image/index.js.map +1 -1
- package/esm/drag-collapse/index.js +1 -1
- package/esm/drag-collapse/index.js.map +1 -1
- package/esm/drag-collapse-form-list/index.js +1 -1
- package/esm/drag-collapse-form-list/index.js.map +1 -1
- package/esm/drag-editable-card/index.js +1 -1
- package/esm/drag-editable-card/index.js.map +1 -1
- package/esm/drag-editable-table/index.js +1 -1
- package/esm/drag-editable-table/index.js.map +1 -1
- package/esm/drag-editable-table-pro/index.js +1 -1
- package/esm/drag-editable-table-pro/index.js.map +1 -1
- package/esm/drag-form-list/index.js +1 -1
- package/esm/drag-form-list/index.js.map +1 -1
- package/esm/drag-table/index.js +1 -1
- package/esm/drag-table/index.js.map +1 -1
- package/esm/drawer-wrapper/index.js +1 -1
- package/esm/drawer-wrapper/index.js.map +1 -1
- package/esm/dropdown-menu-wrapper/index.js +1 -1
- package/esm/dropdown-menu-wrapper/index.js.map +1 -1
- package/esm/easy-form/index.js +1 -1
- package/esm/easy-form/index.js.map +1 -1
- package/esm/easy-table/index.js +1 -1
- package/esm/easy-table/index.js.map +1 -1
- package/esm/editable-card/index.js +1 -1
- package/esm/editable-card/index.js.map +1 -1
- package/esm/editable-field/index.js +1 -1
- package/esm/editable-field/index.js.map +1 -1
- package/esm/editable-table/index.js +1 -1
- package/esm/editable-table/index.js.map +1 -1
- package/esm/editable-table-pro/index.js +1 -1
- package/esm/editable-table-pro/index.js.map +1 -1
- package/esm/editor-wrapper/index.js +1 -1
- package/esm/editor-wrapper/index.js.map +1 -1
- package/esm/fba-app/index.js +1 -1
- package/esm/fba-app/index.js.map +1 -1
- package/esm/fba-hooks/index.js +1 -1
- package/esm/fba-hooks/index.js.map +1 -1
- package/esm/fba-utils/index.js +1 -1
- package/esm/fba-utils/index.js.map +1 -1
- package/esm/file-export/index.js +1 -1
- package/esm/file-export/index.js.map +1 -1
- package/esm/file-import/index.js +1 -1
- package/esm/file-import/index.js.map +1 -1
- package/esm/file-select/index.js +1 -1
- package/esm/file-select/index.js.map +1 -1
- package/esm/flex-layout/index.js +1 -1
- package/esm/flex-layout/index.js.map +1 -1
- package/esm/form-grid/index.js +1 -1
- package/esm/form-grid/index.js.map +1 -1
- package/esm/form-item-group/index.js +1 -1
- package/esm/form-item-group/index.js.map +1 -1
- package/esm/form-item-text/index.js +1 -1
- package/esm/form-item-text/index.js.map +1 -1
- package/esm/form-item-wrapper/index.js +1 -1
- package/esm/form-item-wrapper/index.js.map +1 -1
- package/esm/form-list-wrapper/index.js +1 -1
- package/esm/form-list-wrapper/index.js.map +1 -1
- package/esm/form-wrapper/index.js +1 -1
- package/esm/form-wrapper/index.js.map +1 -1
- package/esm/full-screen/index.js +1 -1
- package/esm/full-screen/index.js.map +1 -1
- package/esm/icon-wrapper/index.js +1 -1
- package/esm/icon-wrapper/index.js.map +1 -1
- package/esm/index-636a568e.js +8 -0
- package/esm/index-636a568e.js.map +1 -0
- package/esm/{index-83bede1b.js → index-853b36e6.js} +2 -2
- package/esm/{index-83bede1b.js.map → index-853b36e6.js.map} +1 -1
- package/esm/index.js +2 -2
- package/esm/input-search-wrapper/index.js +1 -1
- package/esm/input-search-wrapper/index.js.map +1 -1
- package/esm/input-text-area-wrapper/index.js +1 -1
- package/esm/input-text-area-wrapper/index.js.map +1 -1
- package/esm/input-wrapper/index.js +1 -1
- package/esm/input-wrapper/index.js.map +1 -1
- package/esm/json-editor/index.js +1 -1
- package/esm/json-editor/index.js.map +1 -1
- package/esm/label-value-layout/index.js +1 -1
- package/esm/label-value-layout/index.js.map +1 -1
- package/esm/label-value-render/index.js +1 -1
- package/esm/label-value-render/index.js.map +1 -1
- package/esm/local-loading/index.js +1 -1
- package/esm/local-loading/index.js.map +1 -1
- package/esm/mention-editor/index.js +1 -1
- package/esm/mention-editor/index.js.map +1 -1
- package/esm/mentions-wrapper/index.js +1 -1
- package/esm/mentions-wrapper/index.js.map +1 -1
- package/esm/modal-action/index.js +1 -1
- package/esm/modal-action/index.js.map +1 -1
- package/esm/modal-wrapper/index.js +1 -1
- package/esm/modal-wrapper/index.js.map +1 -1
- package/esm/number-range-form-item/index.js +1 -1
- package/esm/number-range-form-item/index.js.map +1 -1
- package/esm/pdf/index.js +1 -1
- package/esm/pdf/index.js.map +1 -1
- package/esm/pdf-preview/index.js +1 -1
- package/esm/pdf-preview/index.js.map +1 -1
- package/esm/radio-group-wrapper/index.js +1 -1
- package/esm/radio-group-wrapper/index.js.map +1 -1
- package/esm/relation-tree/index.js +1 -1
- package/esm/relation-tree/index.js.map +1 -1
- package/esm/request-status/index.css +1 -1
- package/esm/request-status/index.js +2 -1
- package/esm/request-status/index.js.map +1 -1
- package/esm/resizable-drawer/index.js +1 -6
- package/esm/resizable-drawer/index.js.map +1 -1
- package/esm/rich-text-editor/index.js +1 -1
- package/esm/rich-text-editor/index.js.map +1 -1
- package/esm/rich-text-viewer/index.js +1 -1
- package/esm/rich-text-viewer/index.js.map +1 -1
- package/esm/roll-location-center/index.js +1 -1
- package/esm/roll-location-center/index.js.map +1 -1
- package/esm/roll-location-in-view/index.js +1 -1
- package/esm/roll-location-in-view/index.js.map +1 -1
- package/esm/rule-describe/index.js +1 -1
- package/esm/rule-describe/index.js.map +1 -1
- package/esm/search-form/index.js +1 -1
- package/esm/search-form/index.js.map +1 -1
- package/esm/search-menu/index.js +1 -1
- package/esm/search-menu/index.js.map +1 -1
- package/esm/selector-wrapper/index.css +1 -1
- package/esm/selector-wrapper/index.js +1 -1
- package/esm/selector-wrapper/index.js.map +1 -1
- package/esm/selector-wrapper-search/index.js +1 -1
- package/esm/selector-wrapper-search/index.js.map +1 -1
- package/esm/selector-wrapper-simple/index.js +1 -1
- package/esm/selector-wrapper-simple/index.js.map +1 -1
- package/esm/simple-layout/index.js +1 -1
- package/esm/simple-layout/index.js.map +1 -1
- package/esm/sms-count-down/index.js +1 -1
- package/esm/sms-count-down/index.js.map +1 -1
- package/esm/split-wrapper/index.js +1 -1
- package/esm/split-wrapper/index.js.map +1 -1
- package/esm/styles/index.css +1 -1
- package/esm/svg-http-view/index.js +1 -1
- package/esm/svg-http-view/index.js.map +1 -1
- package/esm/switch-confirm-wrapper/index.js +1 -1
- package/esm/switch-confirm-wrapper/index.js.map +1 -1
- package/esm/switch-wrapper/index.js +1 -1
- package/esm/switch-wrapper/index.js.map +1 -1
- package/esm/table-cell-render/index.js +1 -1
- package/esm/table-cell-render/index.js.map +1 -1
- package/esm/table-scrollbar/index.js +1 -1
- package/esm/table-scrollbar/index.js.map +1 -1
- package/esm/tabs-sticky/index.js +1 -1
- package/esm/tabs-sticky/index.js.map +1 -1
- package/esm/tabs-wrapper/index.js +1 -1
- package/esm/tabs-wrapper/index.js.map +1 -1
- package/esm/tag-group/index.js +1 -1
- package/esm/tag-group/index.js.map +1 -1
- package/esm/tag-list-render/index.js +1 -1
- package/esm/tag-list-render/index.js.map +1 -1
- package/esm/tag-list-select/index.js +1 -1
- package/esm/tag-list-select/index.js.map +1 -1
- package/esm/tag-wrapper/index.js +1 -1
- package/esm/tag-wrapper/index.js.map +1 -1
- package/esm/text-css-ellipsis/index.js +1 -1
- package/esm/text-css-ellipsis/index.js.map +1 -1
- package/esm/text-overflow/index.js +1 -1
- package/esm/text-overflow/index.js.map +1 -1
- package/esm/text-overflow-render/index.js +1 -1
- package/esm/text-symbol-wrapper/index.js +1 -1
- package/esm/text-symbol-wrapper/index.js.map +1 -1
- package/esm/time-ea73b2fb.js +3 -0
- package/esm/{time-53b3f55f.js.map → time-ea73b2fb.js.map} +1 -1
- package/esm/time-picker-wrapper/index.js +1 -1
- package/esm/time-picker-wrapper/index.js.map +1 -1
- package/esm/time-range-picker-wrapper/index.js +1 -1
- package/esm/time-range-picker-wrapper/index.js.map +1 -1
- package/esm/time-range-picker-wrapper-form-item/index.js +1 -1
- package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
- package/esm/tree-modal/index.js +1 -1
- package/esm/tree-modal/index.js.map +1 -1
- package/esm/tree-modal-selector/index.js +1 -1
- package/esm/tree-modal-selector/index.js.map +1 -1
- package/esm/tree-selector-wrapper/index.js +1 -1
- package/esm/tree-selector-wrapper/index.js.map +1 -1
- package/esm/tree-wrapper/index.js +2 -2
- package/esm/tree-wrapper/index.js.map +1 -1
- package/esm/upload-wrapper/index.js +1 -1
- package/esm/upload-wrapper/index.js.map +1 -1
- package/esm/use-responsive-point-1e6d93d9.js +3 -0
- package/esm/{use-responsive-point-21b8c601.js.map → use-responsive-point-1e6d93d9.js.map} +1 -1
- package/esm/x-mind-preview/index.js +1 -1
- package/esm/x-mind-preview/index.js.map +1 -1
- package/index.d.ts +51 -28
- package/package.json +4 -5
- package/esm/ai-search/index.css +0 -0
- package/esm/ai-search/index.js +0 -11
- package/esm/ai-search/index.js.map +0 -1
- package/esm/time-53b3f55f.js +0 -3
- package/esm/use-responsive-point-21b8c601.js +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/roll-location-in-view/in-view.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { useMutationObserver } from 'ahooks';\nimport { CSSProperties, ReactElement, useRef } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type RollLocationInViewProps = {\n renderList: { activeKey: string; render: ReactElement }[];\n activeKey?: string;\n behavior?: ScrollBehavior;\n // 激活节点在边界时,上下节点露出偏移量\n activeOffset?: number;\n direction?: 'horizontal' | 'vertical';\n style?: CSSProperties;\n className?: string;\n};\nexport const RollLocationInView = (props: RollLocationInViewProps) => {\n const rollLocationInViewRef = useRef<HTMLDivElement>(null);\n const behavior = props.behavior || 'smooth';\n const activeOffset = props.activeOffset || 0;\n const direction = props.direction || 'vertical';\n\n const targetVerticalRoll = (key: string) => {\n try {\n const targetNode = rollLocationInViewRef.current?.querySelector(\n `.roll-location-in-view-item-${key}`,\n ) as HTMLDivElement;\n const parentNodeHeight = rollLocationInViewRef.current?.offsetHeight as number;\n const scrollerScrollTop = rollLocationInViewRef.current?.scrollTop as number;\n const targetNodeOffsetTop = targetNode.offsetTop;\n const targetTop2ScrollWindowHeight = targetNodeOffsetTop - scrollerScrollTop;\n const targetNodeHeight = targetNode.offsetHeight;\n if (targetNodeOffsetTop === 0) {\n rollLocationInViewRef.current?.scrollTo({ top: 0, behavior });\n } else {\n if (targetTop2ScrollWindowHeight < 0) {\n rollLocationInViewRef.current?.scrollTo({ top: targetNodeOffsetTop - activeOffset, behavior });\n } else if (\n targetTop2ScrollWindowHeight >= 0 &&\n targetTop2ScrollWindowHeight + targetNodeHeight < parentNodeHeight\n ) {\n //\n } else {\n const xx = targetNodeOffsetTop - (parentNodeHeight - targetNodeHeight);\n rollLocationInViewRef.current?.scrollTo({ top: xx + activeOffset, behavior });\n }\n }\n } catch (error) {\n // 异常不处理\n }\n };\n const targetHorizontalRoll = (key: string) => {\n try {\n const targetNode = rollLocationInViewRef.current?.querySelector(\n `.roll-location-in-view-item-${key}`,\n ) as HTMLDivElement;\n const parentNodeWidth = rollLocationInViewRef.current?.offsetWidth as number;\n const scrollerScrollLeft = rollLocationInViewRef.current?.scrollLeft as number;\n const targetNodeOffsetLeft = targetNode.offsetLeft;\n const targetTop2ScrollWindowWidth = targetNodeOffsetLeft - scrollerScrollLeft;\n const targetNodeWidth = targetNode.offsetWidth;\n if (targetNodeOffsetLeft === 0) {\n rollLocationInViewRef.current?.scrollTo({ left: 0, behavior });\n } else {\n if (targetTop2ScrollWindowWidth < 0) {\n rollLocationInViewRef.current?.scrollTo({ left: targetNodeOffsetLeft - activeOffset, behavior });\n } else if (\n targetTop2ScrollWindowWidth >= 0 &&\n targetTop2ScrollWindowWidth + targetNodeWidth < parentNodeWidth\n ) {\n //\n } else {\n const xx = targetNodeOffsetLeft - (parentNodeWidth - targetNodeWidth);\n rollLocationInViewRef.current?.scrollTo({ left: xx + activeOffset, behavior });\n }\n }\n } catch (error) {\n // 异常不处理\n }\n };\n\n fbaHooks.useEffectCustom(() => {\n if (props.activeKey) {\n if (direction === 'vertical') {\n targetVerticalRoll(props.activeKey);\n } else {\n targetHorizontalRoll(props.activeKey);\n }\n }\n }, [props.activeKey]);\n\n useMutationObserver(\n () => {\n if (props.activeKey) {\n if (direction === 'vertical') {\n targetVerticalRoll(props.activeKey);\n } else {\n targetHorizontalRoll(props.activeKey);\n }\n }\n },\n rollLocationInViewRef,\n {\n subtree: true,\n childList: true,\n characterData: true,\n },\n );\n\n return (\n <div\n className={classNames('roll-location-in-view', `roll-location-in-view-${direction}`, props.className)}\n style={props.style}\n ref={rollLocationInViewRef}\n >\n {props.renderList.map((item) => {\n return (\n <div className={`roll-location-in-view-item-${item.activeKey}`} key={item.activeKey}>\n {item.render}\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["RollLocationInView","props","rollLocationInViewRef","useRef","behavior","activeOffset","direction","targetVerticalRoll","key","_rollLocationInViewRe","_rollLocationInViewRe2","_rollLocationInViewRe3","targetNode","current","querySelector","parentNodeHeight","offsetHeight","scrollerScrollTop","scrollTop","targetNodeOffsetTop","offsetTop","targetTop2ScrollWindowHeight","targetNodeHeight","_rollLocationInViewRe4","scrollTo","top","_rollLocationInViewRe5","_rollLocationInViewRe6","xx","error","targetHorizontalRoll","_rollLocationInViewRe7","_rollLocationInViewRe8","_rollLocationInViewRe9","parentNodeWidth","offsetWidth","scrollerScrollLeft","scrollLeft","targetNodeOffsetLeft","offsetLeft","targetTop2ScrollWindowWidth","targetNodeWidth","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/roll-location-in-view/in-view.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { useMutationObserver } from 'ahooks';\nimport { CSSProperties, ReactElement, useRef } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type RollLocationInViewProps = {\n renderList: { activeKey: string; render: ReactElement }[];\n activeKey?: string;\n behavior?: ScrollBehavior;\n // 激活节点在边界时,上下节点露出偏移量\n activeOffset?: number;\n direction?: 'horizontal' | 'vertical';\n style?: CSSProperties;\n className?: string;\n};\nexport const RollLocationInView = (props: RollLocationInViewProps) => {\n const rollLocationInViewRef = useRef<HTMLDivElement>(null);\n const behavior = props.behavior || 'smooth';\n const activeOffset = props.activeOffset || 0;\n const direction = props.direction || 'vertical';\n\n const targetVerticalRoll = (key: string) => {\n try {\n const targetNode = rollLocationInViewRef.current?.querySelector(\n `.roll-location-in-view-item-${key}`,\n ) as HTMLDivElement;\n const parentNodeHeight = rollLocationInViewRef.current?.offsetHeight as number;\n const scrollerScrollTop = rollLocationInViewRef.current?.scrollTop as number;\n const targetNodeOffsetTop = targetNode.offsetTop;\n const targetTop2ScrollWindowHeight = targetNodeOffsetTop - scrollerScrollTop;\n const targetNodeHeight = targetNode.offsetHeight;\n if (targetNodeOffsetTop === 0) {\n rollLocationInViewRef.current?.scrollTo({ top: 0, behavior });\n } else {\n if (targetTop2ScrollWindowHeight < 0) {\n rollLocationInViewRef.current?.scrollTo({ top: targetNodeOffsetTop - activeOffset, behavior });\n } else if (\n targetTop2ScrollWindowHeight >= 0 &&\n targetTop2ScrollWindowHeight + targetNodeHeight < parentNodeHeight\n ) {\n //\n } else {\n const xx = targetNodeOffsetTop - (parentNodeHeight - targetNodeHeight);\n rollLocationInViewRef.current?.scrollTo({ top: xx + activeOffset, behavior });\n }\n }\n } catch (error) {\n // 异常不处理\n }\n };\n const targetHorizontalRoll = (key: string) => {\n try {\n const targetNode = rollLocationInViewRef.current?.querySelector(\n `.roll-location-in-view-item-${key}`,\n ) as HTMLDivElement;\n const parentNodeWidth = rollLocationInViewRef.current?.offsetWidth as number;\n const scrollerScrollLeft = rollLocationInViewRef.current?.scrollLeft as number;\n const targetNodeOffsetLeft = targetNode.offsetLeft;\n const targetTop2ScrollWindowWidth = targetNodeOffsetLeft - scrollerScrollLeft;\n const targetNodeWidth = targetNode.offsetWidth;\n if (targetNodeOffsetLeft === 0) {\n rollLocationInViewRef.current?.scrollTo({ left: 0, behavior });\n } else {\n if (targetTop2ScrollWindowWidth < 0) {\n rollLocationInViewRef.current?.scrollTo({ left: targetNodeOffsetLeft - activeOffset, behavior });\n } else if (\n targetTop2ScrollWindowWidth >= 0 &&\n targetTop2ScrollWindowWidth + targetNodeWidth < parentNodeWidth\n ) {\n //\n } else {\n const xx = targetNodeOffsetLeft - (parentNodeWidth - targetNodeWidth);\n rollLocationInViewRef.current?.scrollTo({ left: xx + activeOffset, behavior });\n }\n }\n } catch (error) {\n // 异常不处理\n }\n };\n\n fbaHooks.useEffectCustom(() => {\n if (props.activeKey) {\n if (direction === 'vertical') {\n targetVerticalRoll(props.activeKey);\n } else {\n targetHorizontalRoll(props.activeKey);\n }\n }\n }, [props.activeKey]);\n\n useMutationObserver(\n () => {\n if (props.activeKey) {\n if (direction === 'vertical') {\n targetVerticalRoll(props.activeKey);\n } else {\n targetHorizontalRoll(props.activeKey);\n }\n }\n },\n rollLocationInViewRef,\n {\n subtree: true,\n childList: true,\n characterData: true,\n },\n );\n\n return (\n <div\n className={classNames('roll-location-in-view', `roll-location-in-view-${direction}`, props.className)}\n style={props.style}\n ref={rollLocationInViewRef}\n >\n {props.renderList.map((item) => {\n return (\n <div className={`roll-location-in-view-item-${item.activeKey}`} key={item.activeKey}>\n {item.render}\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["RollLocationInView","props","rollLocationInViewRef","useRef","behavior","activeOffset","direction","targetVerticalRoll","key","_rollLocationInViewRe","_rollLocationInViewRe2","_rollLocationInViewRe3","targetNode","current","querySelector","parentNodeHeight","offsetHeight","scrollerScrollTop","scrollTop","targetNodeOffsetTop","offsetTop","targetTop2ScrollWindowHeight","targetNodeHeight","_rollLocationInViewRe4","scrollTo","top","_rollLocationInViewRe5","_rollLocationInViewRe6","xx","error","targetHorizontalRoll","_rollLocationInViewRe7","_rollLocationInViewRe8","_rollLocationInViewRe9","parentNodeWidth","offsetWidth","scrollerScrollLeft","scrollLeft","targetNodeOffsetLeft","offsetLeft","targetTop2ScrollWindowWidth","targetNodeWidth","_rollLocationInViewRe0","left","_rollLocationInViewRe1","_rollLocationInViewRe10","fbaHooks","useEffectCustom","activeKey","useMutationObserver","subtree","childList","characterData","_jsx","className","_classNames","style","ref","children","renderList","map","item","render"],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
|
|
|
3
3
|
import './../flex-layout/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{isUndefinedOrNull as i}from"@flatbiz/utils";import{fbaHooks as l}from"../fba-hooks/index.js";import{FlexLayout as t}from"../flex-layout/index.js";import{jsxs as r,jsx as s}from"react/jsx-runtime";import"../_rollupPluginBabelHelpers-c0dbec57.js";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"react";import"../use-responsive-point-
|
|
6
|
+
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{isUndefinedOrNull as i}from"@flatbiz/utils";import{fbaHooks as l}from"../fba-hooks/index.js";import{FlexLayout as t}from"../flex-layout/index.js";import{jsxs as r,jsx as s}from"react/jsx-runtime";import"../_rollupPluginBabelHelpers-c0dbec57.js";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"react";import"../use-responsive-point-1e6d93d9.js";import"antd";import"@dimjs/utils/cjs/uuid";var c=function c(a){var m=i(a.showTitleIndex)?true:a.showTitleIndex;var d=l.useThemeToken();var n={"--rule-describe-colorPrimary":d.colorPrimary};return r("div",{className:e("v-rule-describe",a.className),style:n,children:[a.title?s("div",{className:e("v-rule-describe-title",{"v-rule-describe-title-sign":a.titleSign}),children:a.title}):null,a.ruleDataList.map(function(e,i){if(m&&e.title){return r("div",{className:"v-rule-describe-item",style:a.ruleItemStyle,children:[r(t,{fullIndex:1,direction:"horizontal",className:"v-rule-describe-item-title",style:a.ruleItemTitleStyle,children:[r("span",{className:"v-rule-describe-item-title-index",children:[i+1,". "]}),s("span",{className:"v-rule-describe-item-title-content",children:e.title})]}),e.desc?r(t,{direction:"horizontal",className:"v-rule-describe-item-desc",style:a.ruleItemDescStyle,fullIndex:1,children:[s("span",{className:"v-rule-describe-item-title-index"}),s("span",{className:"v-rule-describe-item-title-content",children:e.desc})]}):null]},i)}return r("div",{className:"v-rule-describe-item",children:[e.title?s("div",{className:"v-rule-describe-item-title",style:a.ruleItemTitleStyle,children:e.title}):null,e.desc?s("div",{className:"v-rule-describe-item-desc",style:a.ruleItemDescStyle,children:e.desc}):null]},i)})]})};export{c as RuleDescribe};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/rule-describe/rule-describe.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull } from '@flatbiz/utils';\nimport { CSSProperties, ReactElement } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { FlexLayout } from '../flex-layout';\nimport './style.less';\n\nexport type RuleDataItem = {\n title?: string | ReactElement;\n desc?: string | ReactElement;\n};\nexport type RuleDescribeProps = {\n title?: string;\n showTitleIndex?: boolean;\n ruleDataList: RuleDataItem[];\n titleSign?: boolean;\n className?: string;\n ruleItemTitleStyle?: CSSProperties;\n ruleItemDescStyle?: CSSProperties;\n ruleItemStyle?: CSSProperties;\n};\n\nexport const RuleDescribe = (props: RuleDescribeProps) => {\n const showTitleIndex = isUndefinedOrNull(props.showTitleIndex) ? true : props.showTitleIndex;\n\n const theme = fbaHooks.useThemeToken();\n\n const style = { '--rule-describe-colorPrimary': theme.colorPrimary } as CSSProperties;\n\n return (\n <div className={classNames('v-rule-describe', props.className)} style={style}>\n {props.title ? (\n <div\n className={classNames('v-rule-describe-title', { 'v-rule-describe-title-sign': props.titleSign })}\n >\n {props.title}\n </div>\n ) : null}\n {props.ruleDataList.map((item, index) => {\n if (showTitleIndex && item.title) {\n return (\n <div key={index} className=\"v-rule-describe-item\" style={props.ruleItemStyle}>\n <FlexLayout\n fullIndex={1}\n direction=\"horizontal\"\n className=\"v-rule-describe-item-title\"\n style={props.ruleItemTitleStyle}\n >\n <span className=\"v-rule-describe-item-title-index\">{index + 1}. </span>\n <span className=\"v-rule-describe-item-title-content\">{item.title}</span>\n </FlexLayout>\n {item.desc ? (\n <FlexLayout\n direction=\"horizontal\"\n className=\"v-rule-describe-item-desc\"\n style={props.ruleItemDescStyle}\n fullIndex={1}\n >\n <span className=\"v-rule-describe-item-title-index\"></span>\n <span className=\"v-rule-describe-item-title-content\">{item.desc}</span>\n </FlexLayout>\n ) : null}\n </div>\n );\n }\n return (\n <div key={index} className=\"v-rule-describe-item\">\n {item.title ? (\n <div className=\"v-rule-describe-item-title\" style={props.ruleItemTitleStyle}>\n {item.title}\n </div>\n ) : null}\n {item.desc ? (\n <div className=\"v-rule-describe-item-desc\" style={props.ruleItemDescStyle}>\n {item.desc}\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["RuleDescribe","props","showTitleIndex","isUndefinedOrNull","theme","fbaHooks","useThemeToken","style","colorPrimary","_jsxs","className","_classNames","children","title","_jsx","titleSign","ruleDataList","map","item","index","ruleItemStyle","FlexLayout","fullIndex","direction","ruleItemTitleStyle","desc","ruleItemDescStyle"],"mappings":";8dAsBaA,EAAe,SAAfA,EAAgBC,GAC3B,IAAMC,EAAiBC,EAAkBF,EAAMC,gBAAkB,KAAOD,EAAMC,eAE9E,IAAME,EAAQC,EAASC,gBAEvB,IAAMC,EAAQ,CAAE,+BAAgCH,EAAMI,cAEtD,OACEC,EAAA,MAAA,CAAKC,UAAWC,EAAW,kBAAmBV,EAAMS,WAAYH,MAAOA,EAAMK,SAC1EX,CAAAA,EAAMY,MACLC,EAAA,MAAA,CACEJ,UAAWC,EAAW,wBAAyB,CAAE,6BAA8BV,EAAMc,YAAaH,SAEjGX,EAAMY,QAEP,KACHZ,EAAMe,aAAaC,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/rule-describe/rule-describe.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull } from '@flatbiz/utils';\nimport { CSSProperties, ReactElement } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { FlexLayout } from '../flex-layout';\nimport './style.less';\n\nexport type RuleDataItem = {\n title?: string | ReactElement;\n desc?: string | ReactElement;\n};\nexport type RuleDescribeProps = {\n title?: string;\n showTitleIndex?: boolean;\n ruleDataList: RuleDataItem[];\n titleSign?: boolean;\n className?: string;\n ruleItemTitleStyle?: CSSProperties;\n ruleItemDescStyle?: CSSProperties;\n ruleItemStyle?: CSSProperties;\n};\n\nexport const RuleDescribe = (props: RuleDescribeProps) => {\n const showTitleIndex = isUndefinedOrNull(props.showTitleIndex) ? true : props.showTitleIndex;\n\n const theme = fbaHooks.useThemeToken();\n\n const style = { '--rule-describe-colorPrimary': theme.colorPrimary } as CSSProperties;\n\n return (\n <div className={classNames('v-rule-describe', props.className)} style={style}>\n {props.title ? (\n <div\n className={classNames('v-rule-describe-title', { 'v-rule-describe-title-sign': props.titleSign })}\n >\n {props.title}\n </div>\n ) : null}\n {props.ruleDataList.map((item, index) => {\n if (showTitleIndex && item.title) {\n return (\n <div key={index} className=\"v-rule-describe-item\" style={props.ruleItemStyle}>\n <FlexLayout\n fullIndex={1}\n direction=\"horizontal\"\n className=\"v-rule-describe-item-title\"\n style={props.ruleItemTitleStyle}\n >\n <span className=\"v-rule-describe-item-title-index\">{index + 1}. </span>\n <span className=\"v-rule-describe-item-title-content\">{item.title}</span>\n </FlexLayout>\n {item.desc ? (\n <FlexLayout\n direction=\"horizontal\"\n className=\"v-rule-describe-item-desc\"\n style={props.ruleItemDescStyle}\n fullIndex={1}\n >\n <span className=\"v-rule-describe-item-title-index\"></span>\n <span className=\"v-rule-describe-item-title-content\">{item.desc}</span>\n </FlexLayout>\n ) : null}\n </div>\n );\n }\n return (\n <div key={index} className=\"v-rule-describe-item\">\n {item.title ? (\n <div className=\"v-rule-describe-item-title\" style={props.ruleItemTitleStyle}>\n {item.title}\n </div>\n ) : null}\n {item.desc ? (\n <div className=\"v-rule-describe-item-desc\" style={props.ruleItemDescStyle}>\n {item.desc}\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["RuleDescribe","props","showTitleIndex","isUndefinedOrNull","theme","fbaHooks","useThemeToken","style","colorPrimary","_jsxs","className","_classNames","children","title","_jsx","titleSign","ruleDataList","map","item","index","ruleItemStyle","FlexLayout","fullIndex","direction","ruleItemTitleStyle","desc","ruleItemDescStyle"],"mappings":";8dAsBaA,EAAe,SAAfA,EAAgBC,GAC3B,IAAMC,EAAiBC,EAAkBF,EAAMC,gBAAkB,KAAOD,EAAMC,eAE9E,IAAME,EAAQC,EAASC,gBAEvB,IAAMC,EAAQ,CAAE,+BAAgCH,EAAMI,cAEtD,OACEC,EAAA,MAAA,CAAKC,UAAWC,EAAW,kBAAmBV,EAAMS,WAAYH,MAAOA,EAAMK,SAC1EX,CAAAA,EAAMY,MACLC,EAAA,MAAA,CACEJ,UAAWC,EAAW,wBAAyB,CAAE,6BAA8BV,EAAMc,YAAaH,SAEjGX,EAAMY,QAEP,KACHZ,EAAMe,aAAaC,IAAI,SAACC,EAAMC,GAC7B,GAAIjB,GAAkBgB,EAAKL,MAAO,CAChC,OACEJ,EAAA,MAAA,CAAiBC,UAAU,uBAAuBH,MAAON,EAAMmB,cAAcR,SAAA,CAC3EH,EAACY,EAAU,CACTC,UAAW,EACXC,UAAU,aACVb,UAAU,6BACVH,MAAON,EAAMuB,mBAAmBZ,UAEhCH,EAAA,OAAA,CAAMC,UAAU,mCAAkCE,SAAEO,CAAAA,EAAQ,EAAE,QAC9DL,EAAA,OAAA,CAAMJ,UAAU,qCAAoCE,SAAEM,EAAKL,WAE5DK,EAAKO,KACJhB,EAACY,EAAU,CACTE,UAAU,aACVb,UAAU,4BACVH,MAAON,EAAMyB,kBACbJ,UAAW,EAAEV,UAEbE,EAAA,OAAA,CAAMJ,UAAU,qCAChBI,EAAA,OAAA,CAAMJ,UAAU,qCAAoCE,SAAEM,EAAKO,UAE3D,OApBIN,EAuBd,CACA,OACEV,EAAA,MAAA,CAAiBC,UAAU,uBAAsBE,SAC9CM,CAAAA,EAAKL,MACJC,EAAA,MAAA,CAAKJ,UAAU,6BAA6BH,MAAON,EAAMuB,mBAAmBZ,SACzEM,EAAKL,QAEN,KACHK,EAAKO,KACJX,EAAA,MAAA,CAAKJ,UAAU,4BAA4BH,MAAON,EAAMyB,kBAAkBd,SACvEM,EAAKO,OAEN,OAVIN,EAad,KAGN"}
|
package/esm/search-form/index.js
CHANGED
|
@@ -9,5 +9,5 @@ import './../form-wrapper/index.css';
|
|
|
9
9
|
import './../pre-defined-class-name/index.css';
|
|
10
10
|
import './index.css';
|
|
11
11
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
12
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import i from"@ant-design/icons/es/icons/DownOutlined";import n from"@ant-design/icons/es/icons/UpOutlined";import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as t}from"@wove/react/cjs/hooks";import{Form as o}from"antd";import{forwardRef as l,useMemo as a,Children as s,useImperativeHandle as u}from"react";import{isFragment as d}from"react-is";import{ButtonWrapper as m}from"../button-wrapper/index.js";import{fbaHooks as f}from"../fba-hooks/index.js";import{FormGrid as p}from"../form-grid/index.js";import{FormWrapper as c}from"../form-wrapper/index.js";import{preDefinedClassName as h}from"../pre-defined-class-name/index.js";import{Model as v}from"@dimjs/model-react";import{jsx as y,jsxs as g}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@flatbiz/utils";import"../index-
|
|
12
|
+
import{classNames as e}from"@dimjs/utils/cjs/class-names";import i from"@ant-design/icons/es/icons/DownOutlined";import n from"@ant-design/icons/es/icons/UpOutlined";import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as t}from"@wove/react/cjs/hooks";import{Form as o}from"antd";import{forwardRef as l,useMemo as a,Children as s,useImperativeHandle as u}from"react";import{isFragment as d}from"react-is";import{ButtonWrapper as m}from"../button-wrapper/index.js";import{fbaHooks as f}from"../fba-hooks/index.js";import{FormGrid as p}from"../form-grid/index.js";import{FormWrapper as c}from"../form-wrapper/index.js";import{preDefinedClassName as h}from"../pre-defined-class-name/index.js";import{Model as v}from"@dimjs/model-react";import{jsx as y,jsxs as g}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@flatbiz/utils";import"../index-853b36e6.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/lang/cjs/is-array";import"@dimjs/model";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";var j={queryCondition:{},isInit:true,openFold:false};var C={actions:{updateFilterCondition:function e(i){return function(e){e.queryCondition=r({},e.queryCondition,i)}},resetFilterCondition:function e(i){return function(e){e.queryCondition=r({},j.queryCondition,i)}},updateInitStatus:function e(){return function(e){e.isInit=false}},onChangeOpenFold:function e(i){return function(e){e.openFold=i}}},state:j};var F={};var b=function e(i){if(!F[i]){F[i]=v(C)}return F[i]};var I=l(function(l,v){var j=t.useId(undefined,"search-form-key");var C=a(function(){return l.cacheSwitch===false?j:location.pathname},[j,l.cacheSwitch]);var F=b(C).useStore(),I=F[0],k=F[1];var x=o.useForm(l.form),w=x[0];var S=l.queryButtonProps,q=l.resetButtonProps,L=l.searchOperate,O=l.formClassName,A=l.rightOperateAreaAppendType,P=l.onQuery,_=l.onReset,z=l.initRequest,B=l.onFormFinish,R=l.defaultResetButtonTriggerRequest;var T=typeof l.children==="function"?l.children(w):l.children;var V=A||"cover";var G=a(function(){if(d(T)){return s.toArray(T.props.children)}else{return s.toArray(T)}},[T]);var N=function e(i){Object.keys(i).forEach(function(e){if(e.startsWith("__#invalid_date_")){delete i[e]}});void k.updateFilterCondition(i);void(P==null?void 0:P(i||{}))};var K=t.useCallbackRef(function(){return new Promise(function(e,i){return Promise.resolve(k.resetFilterCondition()).then(function(n){try{setTimeout(function(){w.resetFields()},200);_==null||_();if(R===false){return e()}void N({});return e()}catch(e){return i(e)}},i)})});var W=function e(i){if(B){B(i);return}void N(i)};var D=a(function(){var e;var t=[!(S!=null&&S.hidden)?y(m,r({type:"primary",htmlType:"submit",loadingPosition:"center"},S,{children:(S==null?void 0:S.text)||"查询"}),"1"):null,!(q!=null&&q.hidden)?y(m,r({onClick:K},q,{children:(q==null?void 0:q.text)||"重置"}),"2"):null].filter(Boolean);var o=L==null?void 0:L(w);var a=o==null?void 0:o.rightList;var s=(o==null?void 0:o.leftList)||[];var u=t;if(a){if(V==="afterAppend"){u=[].concat(t,a)}else if(V==="beforeAppend"){u=[].concat(a,t)}else{u=a}}if((e=l.foldKeys)!=null&&e.length){var d=y(m,{type:"link",style:{padding:"0"},onClick:function e(){void k.onChangeOpenFold(!I.openFold)},children:I.openFold?g("span",{children:["收起",y(n,{style:{marginLeft:3,fontSize:12}})]}):g("span",{children:["展开",y(i,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(u.length>0||s.length===0){u.push(d)}else if((s==null?void 0:s.length)>0){s.push(d)}}return G.map(function(e,i){var n;if(!I.openFold&&(n=l.foldKeys)!=null&&n.find(function(i){return".$"+i===e.key})){return null}if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return y(p.Col,{children:e},i)}).filter(Boolean).concat(y(p.OperateCol,r({},o,{leftList:s,rightList:u}),999))},[S,q,K,L,w,l.foldKeys,G,V,I.openFold,k]);f.useEffectCustom(function(){if(z===false&&!I.isInit||z!==false){void(P==null?void 0:P(r({},l.formInitialValues,I.queryCondition)))}void k.updateInitStatus()},[]);u(v,function(){return{onQuery:N,form:w}});return y(c,{form:w,autoComplete:"off",onFinish:W,initialValues:r({},l.formInitialValues,I.queryCondition),className:e("search-form",h.form.formItemGap8,O),style:l.formStyle,labelWidth:l.formLabelWidth,labelAlign:l.formLabelAlign,formItemGap:l.formFormItemGap,labelItemVertical:l.formLabelItemVertical,children:l.isPure?T:y(p.Row,{gutter:[15,0],gridSize:l.formGridSize,children:D})})});export{I as SearchForm};
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/search-form/model.ts","@flatbiz/antd/src/search-form/search.tsx"],"sourcesContent":["import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n openFold: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n onChangeOpenFold: boolean;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n openFold: false,\n};\n\nconst SearchFormModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n onChangeOpenFold: (boo) => {\n return (state) => {\n state.openFold = boo;\n };\n },\n },\n state: defaultState,\n};\n\nconst searchFormModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const searchFormModel = (key: string) => {\n if (!searchFormModels[key]) {\n searchFormModels[key] = Model(SearchFormModel);\n }\n return searchFormModels[key];\n};\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\n\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, forwardRef, ReactElement, useImperativeHandle, useMemo } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { FormWrapper, FormWrapperProps } from '../form-wrapper';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { searchFormModel } from './model';\nimport './style.less';\n\nexport type SearchFormProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n searchOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n formClassName?: string;\n formStyle?: CSSProperties;\n /** form 初始值 */\n formInitialValues?: TPlainObject;\n /** label宽度,Form内部所有FormItem label都生效 */\n formLabelWidth?: FormWrapperProps['labelWidth'];\n /** labelItem 竖直布局 */\n formLabelItemVertical?: FormWrapperProps['labelItemVertical'];\n /** label 对齐方式 */\n formLabelAlign?: FormWrapperProps['labelAlign'];\n /** formItem之间竖直间距,默认值:24 */\n formFormItemGap?: FormWrapperProps['formItemGap'];\n /**\n * 自定义 searchOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n /**\n * 展开、收起key值列表(内容当前组件子组件key值)\n */\n foldKeys?: string[];\n /**\n * 按钮提交事件\n * 如果需要自定义回车提交事件,需要自定义提交按钮\n */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 重置按钮 */\n onReset?: () => void;\n /** 查询按钮 */\n onQuery?: (values: TPlainObject) => void;\n /**\n * 是否缓存查询数据,默认值:true\n * ```\n * 1. 一般首页可缓存,二级、三级等页面不能缓存\n * ```\n */\n cacheSwitch?: boolean;\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n form?: FormInstance;\n};\n\nexport type SearchFormRefApi = {\n onQuery: (values?: TPlainObject) => void;\n form: FormInstance;\n};\n\n/**\n * 搜索表单\n *\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <SearchForm>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </SearchForm>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <SearchForm>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </SearchForm>\n *\n * -- children 可为 function\n * <SearchForm>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </SearchForm>\n *\n * 2. 用户2(自定义布局)\n * SearchForm设置 isPure = true,FormItem无布局规则\n * 3. SearchForm中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 searchOperate 设置操作按钮\n * 5. SearchForm 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,可在右侧按钮区域新增自定义按钮\n * 8. 可设置 cacheSwitch 来控制是否缓存查询数据(一般一级页面可缓存,二级、三级等不能缓存),\n * 缓存数据存储在内存中,react路由跳转可正常读取缓存,浏览器刷新后缓存丢失\n *```\n */\nexport const SearchForm = forwardRef<SearchFormRefApi, SearchFormProps>((props, ref) => {\n const searchFormId = hooks.useId(undefined, 'search-form-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch === false ? searchFormId : location.pathname;\n }, [searchFormId, props.cacheSwitch]);\n\n const [state, actions] = searchFormModel(modelKey).useStore();\n const [form] = Form.useForm(props.form);\n const {\n queryButtonProps,\n resetButtonProps,\n searchOperate,\n formClassName,\n rightOperateAreaAppendType,\n onQuery,\n onReset,\n initRequest,\n onFormFinish,\n defaultResetButtonTriggerRequest,\n } = props;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const onInnerQuery = (values) => {\n Object.keys(values).forEach((key) => {\n if (key.startsWith('__#invalid_date_')) {\n delete values[key];\n }\n });\n void actions.updateFilterCondition(values);\n void onQuery?.(values || {});\n };\n\n const onInnerReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n setTimeout(() => {\n form.resetFields();\n }, 200);\n onReset?.();\n if (defaultResetButtonTriggerRequest === false) {\n return;\n }\n void onInnerQuery({});\n });\n\n const onInnerFormFinish = (values) => {\n if (onFormFinish) {\n onFormFinish(values);\n return;\n }\n void onInnerQuery(values);\n };\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper\n key=\"1\"\n type=\"primary\"\n htmlType={'submit'}\n loadingPosition=\"center\"\n {...queryButtonProps}\n >\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onInnerReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ].filter(Boolean);\n const customFormOperateCol = searchOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n\n if (props.foldKeys?.length) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n void actions.onChangeOpenFold(!state.openFold);\n }}\n >\n {state.openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!state.openFold && props.foldKeys?.find((keyItem) => `.$${keyItem}` === item.key)) {\n return null;\n }\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n queryButtonProps,\n resetButtonProps,\n onInnerReset,\n searchOperate,\n form,\n props.foldKeys,\n childrens,\n rightOperateAreaAppendTypeFt,\n state.openFold,\n actions,\n ]);\n\n fbaHooks.useEffectCustom(() => {\n if ((initRequest === false && !state.isInit) || initRequest !== false) {\n void onQuery?.({\n ...props.formInitialValues,\n ...state.queryCondition,\n });\n }\n void actions.updateInitStatus();\n }, []);\n\n useImperativeHandle(ref, () => {\n return {\n onQuery: onInnerQuery,\n form,\n };\n });\n\n return (\n <FormWrapper\n form={form}\n autoComplete=\"off\"\n onFinish={onInnerFormFinish}\n initialValues={{\n ...props.formInitialValues,\n ...state.queryCondition,\n }}\n className={classNames('search-form', preDefinedClassName.form.formItemGap8, formClassName)}\n style={props.formStyle}\n labelWidth={props.formLabelWidth}\n labelAlign={props.formLabelAlign}\n formItemGap={props.formFormItemGap}\n labelItemVertical={props.formLabelItemVertical}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </FormWrapper>\n );\n});\n"],"names":["defaultState","queryCondition","isInit","openFold","SearchFormModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","onChangeOpenFold","boo","searchFormModels","searchFormModel","key","Model","SearchForm","forwardRef","props","ref","searchFormId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_searchFormModel$useS","useStore","_Form$useForm","Form","useForm","form","queryButtonProps","resetButtonProps","searchOperate","formClassName","rightOperateAreaAppendType","onQuery","onReset","initRequest","onFormFinish","defaultResetButtonTriggerRequest","children","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","onInnerQuery","values","Object","keys","forEach","startsWith","onInnerReset","useCallbackRef","Promise","$return","$error","resolve","then","$await_1","setTimeout","resetFields","$boundEx","onInnerFormFinish","formRowChildren","_props$foldKeys","defaultRightList","hidden","_jsx","ButtonWrapper","type","htmlType","loadingPosition","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","foldKeys","length","changeFolditem","style","padding","_jsxs","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","_props$foldKeys2","find","keyItem","FormGrid","Col","OperateCol","fbaHooks","useEffectCustom","formInitialValues","useImperativeHandle","FormWrapper","autoComplete","onFinish","initialValues","className","_classNames","preDefinedClassName","formItemGap8","formStyle","labelWidth","formLabelWidth","labelAlign","formLabelAlign","formItemGap","formFormItemGap","labelItemVertical","formLabelItemVertical","isPure","Row","gutter","gridSize","formGridSize"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/search-form/model.ts","@flatbiz/antd/src/search-form/search.tsx"],"sourcesContent":["import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n openFold: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n onChangeOpenFold: boolean;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n openFold: false,\n};\n\nconst SearchFormModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n onChangeOpenFold: (boo) => {\n return (state) => {\n state.openFold = boo;\n };\n },\n },\n state: defaultState,\n};\n\nconst searchFormModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const searchFormModel = (key: string) => {\n if (!searchFormModels[key]) {\n searchFormModels[key] = Model(SearchFormModel);\n }\n return searchFormModels[key];\n};\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\n\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, forwardRef, ReactElement, useImperativeHandle, useMemo } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { FormWrapper, FormWrapperProps } from '../form-wrapper';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { searchFormModel } from './model';\nimport './style.less';\n\nexport type SearchFormProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n searchOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n formClassName?: string;\n formStyle?: CSSProperties;\n /** form 初始值 */\n formInitialValues?: TPlainObject;\n /** label宽度,Form内部所有FormItem label都生效 */\n formLabelWidth?: FormWrapperProps['labelWidth'];\n /** labelItem 竖直布局 */\n formLabelItemVertical?: FormWrapperProps['labelItemVertical'];\n /** label 对齐方式 */\n formLabelAlign?: FormWrapperProps['labelAlign'];\n /** formItem之间竖直间距,默认值:24 */\n formFormItemGap?: FormWrapperProps['formItemGap'];\n /**\n * 自定义 searchOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n /**\n * 展开、收起key值列表(内容当前组件子组件key值)\n */\n foldKeys?: string[];\n /**\n * 按钮提交事件\n * 如果需要自定义回车提交事件,需要自定义提交按钮\n */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 重置按钮 */\n onReset?: () => void;\n /** 查询按钮 */\n onQuery?: (values: TPlainObject) => void;\n /**\n * 是否缓存查询数据,默认值:true\n * ```\n * 1. 一般首页可缓存,二级、三级等页面不能缓存\n * ```\n */\n cacheSwitch?: boolean;\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n form?: FormInstance;\n};\n\nexport type SearchFormRefApi = {\n onQuery: (values?: TPlainObject) => void;\n form: FormInstance;\n};\n\n/**\n * 搜索表单\n *\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <SearchForm>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </SearchForm>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <SearchForm>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </SearchForm>\n *\n * -- children 可为 function\n * <SearchForm>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </SearchForm>\n *\n * 2. 用户2(自定义布局)\n * SearchForm设置 isPure = true,FormItem无布局规则\n * 3. SearchForm中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 searchOperate 设置操作按钮\n * 5. SearchForm 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,可在右侧按钮区域新增自定义按钮\n * 8. 可设置 cacheSwitch 来控制是否缓存查询数据(一般一级页面可缓存,二级、三级等不能缓存),\n * 缓存数据存储在内存中,react路由跳转可正常读取缓存,浏览器刷新后缓存丢失\n *```\n */\nexport const SearchForm = forwardRef<SearchFormRefApi, SearchFormProps>((props, ref) => {\n const searchFormId = hooks.useId(undefined, 'search-form-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch === false ? searchFormId : location.pathname;\n }, [searchFormId, props.cacheSwitch]);\n\n const [state, actions] = searchFormModel(modelKey).useStore();\n const [form] = Form.useForm(props.form);\n const {\n queryButtonProps,\n resetButtonProps,\n searchOperate,\n formClassName,\n rightOperateAreaAppendType,\n onQuery,\n onReset,\n initRequest,\n onFormFinish,\n defaultResetButtonTriggerRequest,\n } = props;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const onInnerQuery = (values) => {\n Object.keys(values).forEach((key) => {\n if (key.startsWith('__#invalid_date_')) {\n delete values[key];\n }\n });\n void actions.updateFilterCondition(values);\n void onQuery?.(values || {});\n };\n\n const onInnerReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n setTimeout(() => {\n form.resetFields();\n }, 200);\n onReset?.();\n if (defaultResetButtonTriggerRequest === false) {\n return;\n }\n void onInnerQuery({});\n });\n\n const onInnerFormFinish = (values) => {\n if (onFormFinish) {\n onFormFinish(values);\n return;\n }\n void onInnerQuery(values);\n };\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper\n key=\"1\"\n type=\"primary\"\n htmlType={'submit'}\n loadingPosition=\"center\"\n {...queryButtonProps}\n >\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onInnerReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ].filter(Boolean);\n const customFormOperateCol = searchOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n\n if (props.foldKeys?.length) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n void actions.onChangeOpenFold(!state.openFold);\n }}\n >\n {state.openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!state.openFold && props.foldKeys?.find((keyItem) => `.$${keyItem}` === item.key)) {\n return null;\n }\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n queryButtonProps,\n resetButtonProps,\n onInnerReset,\n searchOperate,\n form,\n props.foldKeys,\n childrens,\n rightOperateAreaAppendTypeFt,\n state.openFold,\n actions,\n ]);\n\n fbaHooks.useEffectCustom(() => {\n if ((initRequest === false && !state.isInit) || initRequest !== false) {\n void onQuery?.({\n ...props.formInitialValues,\n ...state.queryCondition,\n });\n }\n void actions.updateInitStatus();\n }, []);\n\n useImperativeHandle(ref, () => {\n return {\n onQuery: onInnerQuery,\n form,\n };\n });\n\n return (\n <FormWrapper\n form={form}\n autoComplete=\"off\"\n onFinish={onInnerFormFinish}\n initialValues={{\n ...props.formInitialValues,\n ...state.queryCondition,\n }}\n className={classNames('search-form', preDefinedClassName.form.formItemGap8, formClassName)}\n style={props.formStyle}\n labelWidth={props.formLabelWidth}\n labelAlign={props.formLabelAlign}\n formItemGap={props.formFormItemGap}\n labelItemVertical={props.formLabelItemVertical}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </FormWrapper>\n );\n});\n"],"names":["defaultState","queryCondition","isInit","openFold","SearchFormModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","onChangeOpenFold","boo","searchFormModels","searchFormModel","key","Model","SearchForm","forwardRef","props","ref","searchFormId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_searchFormModel$useS","useStore","_Form$useForm","Form","useForm","form","queryButtonProps","resetButtonProps","searchOperate","formClassName","rightOperateAreaAppendType","onQuery","onReset","initRequest","onFormFinish","defaultResetButtonTriggerRequest","children","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","onInnerQuery","values","Object","keys","forEach","startsWith","onInnerReset","useCallbackRef","Promise","$return","$error","resolve","then","$await_1","setTimeout","resetFields","$boundEx","onInnerFormFinish","formRowChildren","_props$foldKeys","defaultRightList","hidden","_jsx","ButtonWrapper","type","htmlType","loadingPosition","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","foldKeys","length","changeFolditem","style","padding","_jsxs","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","_props$foldKeys2","find","keyItem","FormGrid","Col","OperateCol","fbaHooks","useEffectCustom","formInitialValues","useImperativeHandle","FormWrapper","autoComplete","onFinish","initialValues","className","_classNames","preDefinedClassName","formItemGap8","formStyle","labelWidth","formLabelWidth","labelAlign","formLabelAlign","formItemGap","formFormItemGap","labelItemVertical","formLabelItemVertical","isPure","Row","gutter","gridSize","formGridSize"],"mappings":"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"}
|
package/esm/search-menu/index.js
CHANGED
|
@@ -4,5 +4,5 @@ import './../input-search-wrapper/index.css';
|
|
|
4
4
|
import './../roll-location-center/index.css';
|
|
5
5
|
import './index.css';
|
|
6
6
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
7
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{_ as a}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{valueIsEqual as l}from"@flatbiz/utils";import{useState as n,useMemo as t}from"react";import{fbaHooks as i}from"../fba-hooks/index.js";import{InputSearchWrapper as s}from"../input-search-wrapper/index.js";import{Empty as o}from"antd";import{RollLocationCenter as u}from"../roll-location-center/index.js";import{jsx as c,Fragment as m,jsxs as v}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-
|
|
7
|
+
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{_ as a}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{valueIsEqual as l}from"@flatbiz/utils";import{useState as n,useMemo as t}from"react";import{fbaHooks as i}from"../fba-hooks/index.js";import{InputSearchWrapper as s}from"../input-search-wrapper/index.js";import{Empty as o}from"antd";import{RollLocationCenter as u}from"../roll-location-center/index.js";import{jsx as c,Fragment as m,jsxs as v}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";import"ahooks";var d=function r(a){var l=a.value,n=a.dataList,t=a.onChange,i=a.style,s=a.emptyView;if(!(n!=null&&n.length)){return s?c(m,{children:s}):c(o,{style:{marginTop:"40px"},description:"暂无数据"})}return c("ul",{className:"v-search-menu-list-view",style:i,children:c(u,{activeKey:a.value,renderList:n.map(function(r){return{activeKey:r.key,render:c("li",{className:e("v-search-menu-list-view-item",{"v-search-menu-list-view-item-active":l==r.key}),onClick:t==null?void 0:t.bind(null,r.key,r),children:r.label},r.key)}})})})};function f(o){var u=o.value,m=o.onChange,f=o.dataSource,h=o.searchKeyList,p=o.wrapStyle,y=o.style,k=o.placeholder,j=o.fieldNames,b=o.renderItem,w=o.lazySearch,g=o.className,x=o.searchStyle,C=o.emptyView,N=o.showSearch,S=o.size;var E=n([]),L=E[0],z=E[1];var K=t(function(){return a({label:"label",key:"key"},j)},[j]);var V=h!=null&&h.length?h:[K.label];var _=t(function(){var e=K.label,r=K.key;return L==null?void 0:L.map(function(l){return a({},l,{label:b?b(l):l==null?void 0:l[e],key:l==null?void 0:l[r]})})},[L,K,b]);i.useEffectCustom(function(){B("")},[f]);var B=function e(r){if(!r){z(f);return}var a=f.filter(function(e){return!!(V!=null&&V.find(function(a){var l;return(l=e[a])==null?void 0:l.includes(r)}))});z(a)};var H=function e(r){B(r.target.value)};var I=r.useCallbackRef(function(e){var r=f.find(function(r){return l(e,r[K.key])});m==null||m(e,r)});var P=e(g,"v-search-menu",{"v-search-menu-small":S==="small"});return v("div",{style:p,className:P,children:[N!==false?v("div",{className:"v-search-menu-search-area",style:x,children:[c(s,{onSearch:w?B:undefined,onChange:!w?H:undefined,placeholder:k||"请输入搜索关键词",allowClear:true}),!!o.searchExtraElement&&c("div",{className:"v-search-menu-search-extra",children:o.searchExtraElement})]}):null,c(d,{style:y,value:u,dataList:_,onChange:I,emptyView:C})]})}export{f as SearchMenu};
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/search-menu/list-view/index.tsx","@flatbiz/antd/src/search-menu/search-menu.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { Empty } from 'antd';\nimport { type CSSProperties, type FC, type ReactElement } from 'react';\nimport { RollLocationCenter } from '../../roll-location-center';\nimport { type IListViewItem } from '../type';\nimport './style.less';\n\nexport interface IListViewProps {\n dataList: IListViewItem[];\n value?: string;\n onChange?: (key: string, item: IListViewItem) => void;\n style?: CSSProperties;\n /** 自定义空数据提示 */\n emptyView?: ReactElement;\n}\n\n/**\n * 搜索列表\n * @param props\n * @returns search menu list view\n */\nexport const ListView: FC<IListViewProps> = (props) => {\n const { value, dataList, onChange, style, emptyView } = props;\n // 数据判空提示\n if (!dataList?.length) {\n return emptyView ? (\n <>{emptyView}</>\n ) : (\n <Empty\n style={{\n marginTop: '40px',\n }}\n description=\"暂无数据\"\n />\n );\n }\n\n return (\n <ul className=\"v-search-menu-list-view\" style={style}>\n <RollLocationCenter\n activeKey={props.value}\n renderList={dataList.map((item) => {\n return {\n activeKey: item.key,\n render: (\n <li\n className={classNames('v-search-menu-list-view-item', {\n 'v-search-menu-list-view-item-active': value == item.key,\n })}\n key={item.key}\n onClick={onChange?.bind(null, item.key, item)}\n >\n {item.label}\n </li>\n ),\n };\n })}\n />\n </ul>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { valueIsEqual, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { InputSearchWrapper } from '../input-search-wrapper';\nimport { ListView, type IListViewProps } from './list-view';\nimport './style.less';\nimport { type ISearchMenuProps } from './type';\n\n/**\n * 列表搜索\n * @param props\n * @returns\n */\nexport function SearchMenu(props: ISearchMenuProps & Pick<IListViewProps, 'emptyView'>) {\n const {\n value,\n onChange,\n dataSource,\n searchKeyList,\n wrapStyle,\n style,\n placeholder,\n fieldNames,\n renderItem,\n lazySearch,\n className,\n searchStyle,\n emptyView,\n showSearch,\n size,\n } = props;\n const [listFilter, setListFilter] = useState<TPlainObject[]>([]);\n\n /** 格式化对象 */\n const mergeFormatOption = useMemo(() => {\n return {\n label: 'label',\n key: 'key',\n ...fieldNames,\n };\n }, [fieldNames]);\n\n /** 可搜索的字段值 */\n const targetSearchKeyList = searchKeyList?.length ? searchKeyList : [mergeFormatOption.label];\n\n /** 生成菜单列表 */\n const listViewData = useMemo(() => {\n const { label, key } = mergeFormatOption;\n return listFilter?.map((item) => {\n return {\n ...item,\n label: renderItem ? renderItem(item) : item?.[label],\n key: item?.[key],\n };\n });\n }, [listFilter, mergeFormatOption, renderItem]);\n\n /**\n * 数据格式化\n */\n fbaHooks.useEffectCustom(() => {\n handleSearch('');\n }, [dataSource]);\n\n /** 搜索 */\n const handleSearch = (searchWord: string) => {\n if (!searchWord) {\n // 还原列表\n setListFilter(dataSource);\n return;\n }\n // 根据搜索次过滤\n const resList = dataSource.filter((item) => {\n return !!targetSearchKeyList?.find((key) => {\n return item[key]?.includes(searchWord);\n });\n });\n setListFilter(resList);\n };\n\n /**\n * 搜索词变换\n * @param e\n */\n const handleWordChange = (e) => {\n handleSearch(e.target.value);\n };\n\n /**\n * 点击条目\n */\n const onClick = hooks.useCallbackRef((key) => {\n const targetItem = dataSource.find((item) => valueIsEqual(key, item[mergeFormatOption.key]));\n onChange?.(key, targetItem);\n });\n\n const cname = classNames(className, 'v-search-menu', {\n 'v-search-menu-small': size === 'small',\n });\n\n return (\n <div style={wrapStyle} className={cname}>\n {showSearch !== false ? (\n <div className=\"v-search-menu-search-area\" style={searchStyle}>\n <InputSearchWrapper\n onSearch={lazySearch ? handleSearch : undefined}\n onChange={!lazySearch ? handleWordChange : undefined}\n placeholder={placeholder || '请输入搜索关键词'}\n allowClear\n />\n {!!props.searchExtraElement && (\n <div className=\"v-search-menu-search-extra\">{props.searchExtraElement}</div>\n )}\n </div>\n ) : null}\n <ListView\n style={style}\n value={value}\n dataList={listViewData}\n onChange={onClick}\n emptyView={emptyView}\n />\n </div>\n );\n}\n"],"names":["ListView","props","value","dataList","onChange","style","emptyView","length","_jsx","_Fragment","children","Empty","marginTop","description","className","RollLocationCenter","activeKey","renderList","map","item","key","render","_classNames","onClick","bind","label","SearchMenu","dataSource","searchKeyList","wrapStyle","placeholder","fieldNames","renderItem","lazySearch","searchStyle","showSearch","size","_useState","useState","listFilter","setListFilter","mergeFormatOption","useMemo","_extends","targetSearchKeyList","listViewData","fbaHooks","useEffectCustom","handleSearch","searchWord","resList","filter","find","_item$key","includes","handleWordChange","e","target","_hooks","useCallbackRef","targetItem","valueIsEqual","cname","_jsxs","InputSearchWrapper","onSearch","undefined","allowClear","searchExtraElement"],"mappings":";qpBAqBO,IAAMA,EAA+B,SAA/BA,EAAgCC,GAC3C,IAAQC,EAAgDD,EAAhDC,MAAOC,EAAyCF,EAAzCE,SAAUC,EAA+BH,EAA/BG,SAAUC,EAAqBJ,EAArBI,MAAOC,EAAcL,EAAdK,UAE1C,KAAKH,GAAQ,MAARA,EAAUI,QAAQ,CACrB,OAAOD,EACLE,EAAAC,EAAA,CAAAC,SAAGJ,IAEHE,EAACG,EAAK,CACJN,MAAO,CACLO,UAAW,QAEbC,YAAY,QAGlB,CAEA,OACEL,EAAA,KAAA,CAAIM,UAAU,0BAA0BT,MAAOA,EAAMK,SACnDF,EAACO,EAAkB,CACjBC,UAAWf,EAAMC,MACjBe,WAAYd,EAASe,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/search-menu/list-view/index.tsx","@flatbiz/antd/src/search-menu/search-menu.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { Empty } from 'antd';\nimport { type CSSProperties, type FC, type ReactElement } from 'react';\nimport { RollLocationCenter } from '../../roll-location-center';\nimport { type IListViewItem } from '../type';\nimport './style.less';\n\nexport interface IListViewProps {\n dataList: IListViewItem[];\n value?: string;\n onChange?: (key: string, item: IListViewItem) => void;\n style?: CSSProperties;\n /** 自定义空数据提示 */\n emptyView?: ReactElement;\n}\n\n/**\n * 搜索列表\n * @param props\n * @returns search menu list view\n */\nexport const ListView: FC<IListViewProps> = (props) => {\n const { value, dataList, onChange, style, emptyView } = props;\n // 数据判空提示\n if (!dataList?.length) {\n return emptyView ? (\n <>{emptyView}</>\n ) : (\n <Empty\n style={{\n marginTop: '40px',\n }}\n description=\"暂无数据\"\n />\n );\n }\n\n return (\n <ul className=\"v-search-menu-list-view\" style={style}>\n <RollLocationCenter\n activeKey={props.value}\n renderList={dataList.map((item) => {\n return {\n activeKey: item.key,\n render: (\n <li\n className={classNames('v-search-menu-list-view-item', {\n 'v-search-menu-list-view-item-active': value == item.key,\n })}\n key={item.key}\n onClick={onChange?.bind(null, item.key, item)}\n >\n {item.label}\n </li>\n ),\n };\n })}\n />\n </ul>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { valueIsEqual, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { InputSearchWrapper } from '../input-search-wrapper';\nimport { ListView, type IListViewProps } from './list-view';\nimport './style.less';\nimport { type ISearchMenuProps } from './type';\n\n/**\n * 列表搜索\n * @param props\n * @returns\n */\nexport function SearchMenu(props: ISearchMenuProps & Pick<IListViewProps, 'emptyView'>) {\n const {\n value,\n onChange,\n dataSource,\n searchKeyList,\n wrapStyle,\n style,\n placeholder,\n fieldNames,\n renderItem,\n lazySearch,\n className,\n searchStyle,\n emptyView,\n showSearch,\n size,\n } = props;\n const [listFilter, setListFilter] = useState<TPlainObject[]>([]);\n\n /** 格式化对象 */\n const mergeFormatOption = useMemo(() => {\n return {\n label: 'label',\n key: 'key',\n ...fieldNames,\n };\n }, [fieldNames]);\n\n /** 可搜索的字段值 */\n const targetSearchKeyList = searchKeyList?.length ? searchKeyList : [mergeFormatOption.label];\n\n /** 生成菜单列表 */\n const listViewData = useMemo(() => {\n const { label, key } = mergeFormatOption;\n return listFilter?.map((item) => {\n return {\n ...item,\n label: renderItem ? renderItem(item) : item?.[label],\n key: item?.[key],\n };\n });\n }, [listFilter, mergeFormatOption, renderItem]);\n\n /**\n * 数据格式化\n */\n fbaHooks.useEffectCustom(() => {\n handleSearch('');\n }, [dataSource]);\n\n /** 搜索 */\n const handleSearch = (searchWord: string) => {\n if (!searchWord) {\n // 还原列表\n setListFilter(dataSource);\n return;\n }\n // 根据搜索次过滤\n const resList = dataSource.filter((item) => {\n return !!targetSearchKeyList?.find((key) => {\n return item[key]?.includes(searchWord);\n });\n });\n setListFilter(resList);\n };\n\n /**\n * 搜索词变换\n * @param e\n */\n const handleWordChange = (e) => {\n handleSearch(e.target.value);\n };\n\n /**\n * 点击条目\n */\n const onClick = hooks.useCallbackRef((key) => {\n const targetItem = dataSource.find((item) => valueIsEqual(key, item[mergeFormatOption.key]));\n onChange?.(key, targetItem);\n });\n\n const cname = classNames(className, 'v-search-menu', {\n 'v-search-menu-small': size === 'small',\n });\n\n return (\n <div style={wrapStyle} className={cname}>\n {showSearch !== false ? (\n <div className=\"v-search-menu-search-area\" style={searchStyle}>\n <InputSearchWrapper\n onSearch={lazySearch ? handleSearch : undefined}\n onChange={!lazySearch ? handleWordChange : undefined}\n placeholder={placeholder || '请输入搜索关键词'}\n allowClear\n />\n {!!props.searchExtraElement && (\n <div className=\"v-search-menu-search-extra\">{props.searchExtraElement}</div>\n )}\n </div>\n ) : null}\n <ListView\n style={style}\n value={value}\n dataList={listViewData}\n onChange={onClick}\n emptyView={emptyView}\n />\n </div>\n );\n}\n"],"names":["ListView","props","value","dataList","onChange","style","emptyView","length","_jsx","_Fragment","children","Empty","marginTop","description","className","RollLocationCenter","activeKey","renderList","map","item","key","render","_classNames","onClick","bind","label","SearchMenu","dataSource","searchKeyList","wrapStyle","placeholder","fieldNames","renderItem","lazySearch","searchStyle","showSearch","size","_useState","useState","listFilter","setListFilter","mergeFormatOption","useMemo","_extends","targetSearchKeyList","listViewData","fbaHooks","useEffectCustom","handleSearch","searchWord","resList","filter","find","_item$key","includes","handleWordChange","e","target","_hooks","useCallbackRef","targetItem","valueIsEqual","cname","_jsxs","InputSearchWrapper","onSearch","undefined","allowClear","searchExtraElement"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.v-selector-item-icon{margin-right:5px}
|
|
1
|
+
.v-selector-item-icon{margin-right:5px}.v-flex-layout{display:flex}.v-flex-vertical{flex-direction:column}.icon-wrapper{align-items:center;border-radius:6px;display:inline-flex;margin:0 -6px;padding:6px}.icon-wrapper .anticon+.icon-wrapper-text{margin-left:3px}.icon-wrapper .icon-wrapper-text{display:inline-flex}.icon-wrapper-tigger{cursor:pointer}.icon-wrapper-tigger:hover{background-color:rgba(0,0,0,.06);position:relative;transform:scale(1.1);transition:all .1s ease-in}.icon-wrapper-small{border-radius:3px;font-size:14px;margin:0 -3px;padding:3px}.icon-wrapper-middle{font-size:16px}.icon-wrapper-large{font-size:20px}.icon-wrapper.icon-wrapper-hidden-hover-bgcolor{margin:0;padding:0}.icon-wrapper.icon-wrapper-hidden-hover-bgcolor:hover{background-color:transparent}.text-overflow{display:flex}.text-overflow,.tow-content{overflow:hidden;position:relative;width:100%}.tow-content{display:inline-block;text-align:inherit;text-overflow:ellipsis;white-space:nowrap}.tow-hidden{display:inline-block;height:0;left:0;overflow:hidden;position:absolute;top:0;width:0}.tow-hidden span{white-space:nowrap}.tow-hidden span,.tow-inner-text{display:inline-block}.tow-trigger .tow-content,.tow-trigger .tow-cut-content{color:#1677ff;transition:color .3s}.tow-trigger .tow-show-text{cursor:pointer}.tow-trigger .tow-show-text:hover{color:#69b1ff}.v-request-status{margin:16px 0;position:relative}.v-request-status .ant-empty{margin:8px 0}.v-request-status .ant-spin{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}
|
|
@@ -3,5 +3,5 @@ import './../request-status/index.css';
|
|
|
3
3
|
import './../fba-hooks/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import e from"@ant-design/icons/es/icons/RedoOutlined";import{isString as r}from"@dimjs/lang/cjs/is-string";import{hooks as n}from"@wove/react/cjs/hooks";import{a as t,_ as
|
|
6
|
+
import e from"@ant-design/icons/es/icons/RedoOutlined";import{isString as r}from"@dimjs/lang/cjs/is-string";import{hooks as n}from"@wove/react/cjs/hooks";import{a as t,_ as s}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{isUndefinedOrNull as o,toArray as u,getUuid as i,valueIsEqual as a,arrayFind as l}from"@flatbiz/utils";import{Select as c,Button as f}from"antd";import{useState as d,useMemo as v,useRef as m,isValidElement as p}from"react";import{c as h}from"../index-636a568e.js";import{FlexLayout as g}from"../flex-layout/index.js";import{RequestStatus as q}from"../request-status/index.js";import C from"@ant-design/icons/es/icons/SyncOutlined";import{fbaHooks as w}from"../fba-hooks/index.js";import{IconWrapper as j}from"../icon-wrapper/index.js";import{jsx as y,jsxs as R}from"react/jsx-runtime";import{isDeepEqual as b}from"@dimjs/lang/cjs/is-deep-equal";import{isArray as _}from"@dimjs/lang/cjs/is-array";import{get as S}from"@dimjs/utils/cjs/get";import{json as L}from"@dimjs/utils/cjs/json";import x from"pubsub-js";import{isObject as O}from"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/class-names";import"@dimjs/utils/cjs/extend";import"../text-overflow/index.js";import"ahooks";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/lang/cjs/is-undefined";var P=["onRefreshRequest","loading"];var k=function e(r){var o=r.onRefreshRequest,u=r.loading,i=t(r,P);var a=d(u),l=a[0],c=a[1];var f=v(function(){if(r.requestStatus==="no-dependencies-params"){var e;return((e=r.requestMessageConfig)==null?void 0:e["no-dependencies-params"])||"未获取到必要的查询条件"}return undefined},[r.requestMessageConfig,r.requestStatus]);var m=n.useCallbackRef(function(){if(r.requestStatus==="no-dependencies-params"){return}c(true);o()});w.useEffectCustom(function(){if(l&&!u){c(false)}},[u]);return y(j,s({},i,{icon:y(C,{spin:l,style:{color:"#9b9797"}}),onClick:m,hoverTips:f}))};var N=function e(r){var n=r.cacheKey,t=r.serviceConfig,s=r.hasOuterSelectorList,u=r.outerSelectorList,i=r.onRespDataChange,a=r.onSelectorRequestError,l=r.onChange,c=r.useCache,f=r.fieldNames;var m=t==null?void 0:t.params;var p=(t==null?void 0:t.requiredParamsKeys)||[];var h=m&&Object.keys(m).length>0;var g=d(),q=g[0],C=g[1];var j=d(),y=j[0],R=j[1];var O=d(Date.now()),P=O[0],k=O[1];var N=v(function(){try{if(h){var e=JSON.stringify(L.sort(m));if(e==="{}"){return undefined}return e}}catch(e){}return undefined},[h,m]);var A=""+N;var I=N+"_status";var E=n+"_"+A;var D=w.usePrevious(N);var M=w.usePrevious(m);var K=function e(r){var n=r;if(t!=null&&t.onRequestResultAdapter){n=t==null?void 0:t.onRequestResultAdapter(r)}else if(f!=null&&f.list){n=S(r,f==null?void 0:f.list)}if(n&&!_(n)){console.warn("待渲染数据为非数组结构",n);return[]}return n||[]};var T=function e(){var r;return(r=window["__selector_wrapper_"])==null?void 0:r[n]};var z=function e(){var r;return(r=T())==null?void 0:r[A]};var B=function e(){var r;return(r=T())==null?void 0:r[I]};var J=function e(r,t){if(!window["__selector_wrapper_"]){window["__selector_wrapper_"]={}}if(!window["__selector_wrapper_"][n]){window["__selector_wrapper_"][n]={}}window["__selector_wrapper_"][n][r]=t};var V=function e(r){J(I,r);R(r)};var F=function e(){return new Promise(function(e,r){var n,s;var o=function(n){try{console.error(n);V("request-error");C(undefined);setTimeout(function(){x.publish(E,{status:"request-error"})});a==null||a(n);return e(Promise.reject())}catch(e){return r(e)}};try{V("request-progress");return Promise.resolve(t==null||t.onRequest==null?void 0:t.onRequest(m||{})).then(function(r){try{n=r;s=K(n);J(A,s);V("request-success");setTimeout(function(){x.publish(E,{status:"request-success",respData:s})});return e(s)}catch(e){return o(e)}},o)}catch(e){o(e)}})};w.useEffectCustomAsync(function(){return new Promise(function(e,r){var n,f,d,v,h,g;if(s){R("request-success");C(u);i==null||i(u);return e()}if(p.length>0){n=m?p.find(function(e){return o(m[e])}):true;if(n){C([]);R("no-dependencies-params");if(D){l==null||l(undefined)}return e()}if(c===false){if(b(m,M)){return e()}var q=function(){try{return e()}catch(e){return r(e)}};var w=function(e){try{console.error(e);R("request-error");C(undefined);a==null||a(e);return q()}catch(e){return r(e)}};try{R("request-progress");return Promise.resolve(t==null||t.onRequest==null?void 0:t.onRequest(m||{})).then(function(e){try{f=e;d=K(f);R("request-success");C(d);i==null||i(d);return q()}catch(e){return w(e)}},w)}catch(e){w(e)}}return j.call(this)}function j(){v=B();if(v==="request-success"){h=z();C(h);R(v);i==null||i(h);return e()}if(v==="request-progress"){R(v);x.subscribe(E,function(e,r){var n=r.status,t=r.respData;if(n==="request-success"){R(n);C(t);i==null||i(t)}else{R("request-error");C(undefined)}});return e()}var n=function(){try{return e()}catch(e){return r(e)}};var t=function(e){try{console.error(e);R("request-error");C(undefined);a==null||a(e);return n()}catch(e){return r(e)}};try{return Promise.resolve(F()).then(function(e){try{g=e;C(g);R("request-success");i==null||i(g);return n()}catch(e){return t(e)}},t)}catch(e){t(e)}}return j.call(this)})},[JSON.stringify(m),u,P]);var H=function e(){if(y==="request-success"){V("request-init")}k(Date.now())};return{requestStatus:y,stateSelectorList:q,serviceRequestParamsStringify:N,onRefreshRequest:H}};var A=function e(r,n){var t=u(r);t=t.map(function(e){if(O(e))return e[n];return e});return t};var I=["serviceConfig","showAllOption","onSelectorListChange","onSelectorListAllChange","onSelectorRequestError","onLabelRenderAdapter","requestMessageConfig","selectorList","modelKey","fieldNames","value","labelInValue","useCache","style","className","showRefreshIcon"];var E=function o(d){var C=d.serviceConfig,w=d.showAllOption,j=d.onSelectorListChange,b=d.onSelectorListAllChange,_=d.onSelectorRequestError,S=d.onLabelRenderAdapter,L=d.requestMessageConfig,x=d.selectorList,O=d.modelKey,P=d.fieldNames,E=d.value,D=d.labelInValue,M=d.useCache,K=d.style,T=d.className,z=d.showRefreshIcon,B=t(d,I);var J=m(true);var V=v(function(){return O||i()},[O]);var F=d.hasOwnProperty("selectorList");var H=s({label:"label",value:"value",disabled:"disabled"},P);var W=H.label,G=H.value,Q=H.disabled;var U=v(function(){var e;if(!w)return null;var r=w===true;return e={},e[W]=r?"全部":w.label,e[G]=r?"":w.value,e},[W,G,w]);var X=a(d.mode,["multiple"]);var Y=N({fieldNames:H,cacheKey:V,hasOuterSelectorList:F,onChange:d.onChange,serviceConfig:C,outerSelectorList:x,onRespDataChange:function e(r){if(J.current){j==null||j(r||[]);J.current=false}b==null||b(r||[])},onSelectorRequestError:_,useCache:M===undefined?true:M}),Z=Y.requestStatus,$=Y.stateSelectorList,ee=Y.onRefreshRequest;var re=n.useCallbackRef(function(e){if(D){if(X){d.onChange==null||d.onChange(e,e)}else{d.onChange==null||d.onChange(e[0],e)}}else{var r=e.map(function(e){return e[G]});if(X){d.onChange==null||d.onChange(r,e)}else{d.onChange==null||d.onChange(r[0],e[0])}}});var ne=n.useCallbackRef(function(e,r){if(!r)return d.onChange==null?void 0:d.onChange(undefined);var n=u(r);var t=[];n.forEach(function(e){if(w&&U&&e.value===U[G]){t.push(U)}else{var r=l($||[],e.value,G);if(r){t.push(r)}}});re(t)});var te=v(function(){if(Z!=="request-success")return[];if(!$||$.length===0)return[];if(!U)return $;return[U].concat($)},[U,Z,$]);var se=Z==="request-progress";var oe=v(function(){var e=A(E,G);return X?e:e[0]},[X,G,E]);var ue=n.useCallbackRef(function(e,n){var t=u(n.children);var s="";var o=t.find(function(e){return p(e)});if(!o){t.forEach(function(e){if(r(e))s+=e})}else{s=r(n==null?void 0:n.label)?n.label:undefined}return s.toLowerCase().indexOf(e.toLowerCase())>=0});return R(g,{fullIndex:0,style:s({width:"100%",alignItems:"center"},K),direction:"horizontal",gap:10,className:h("v-selector-wrapper",T),children:[y(c,s({showSearch:true,allowClear:true,popupMatchSelectWidth:false,filterOption:ue},B,{style:s({width:"100%"},d.style),value:oe,loading:se,onChange:ne,fieldNames:undefined,suffixIcon:Z==="request-error"?y(e,{spin:se,onClick:ee}):B.suffixIcon,notFoundContent:y(q,{status:Z,loading:se,messageConfig:s({"request-init":"暂无数据"},L),errorButton:y(f,{type:"primary",onClick:ee,children:"重新获取数据"})}),children:te.map(function(e,r){var n=e[G];var t=e[W];return R(c.Option,{value:n,label:t,disabled:e[Q],children:[d.showIcon?y("span",{className:"v-selector-item-icon",children:d.icon==null?void 0:d.icon(e,r)}):null,S?S(e):t]},n+"-"+r)})})),z?y(k,{onRefreshRequest:ee,loading:se,requestStatus:Z,requestMessageConfig:L}):null]})};export{E as SelectorWrapper};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper/use-request.ts","@flatbiz/antd/src/selector-wrapper/utils.ts","@flatbiz/antd/src/selector-wrapper/selector-wrapper.tsx"],"sourcesContent":["import { isArray, isDeepEqual } from '@dimjs/lang';\nimport { get, json } from '@dimjs/utils';\nimport { isUndefinedOrNull, type TPlainObject } from '@flatbiz/utils';\nimport pubSub from 'pubsub-js';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { type TRequestStatus } from '../request-status';\nimport { type SelectorServiceConfig, type SelectorWrapperProps } from './types';\n\nexport const useRequest = (options: {\n cacheKey: string;\n serviceConfig?: SelectorServiceConfig;\n hasOuterSelectorList?: boolean;\n onChange?: SelectorWrapperProps['onChange'];\n outerSelectorList?: SelectorWrapperProps['selectorList'];\n onRespDataChange?: (dataList?: TPlainObject[]) => void;\n onSelectorRequestError?: SelectorWrapperProps['onSelectorRequestError'];\n useCache: boolean;\n fieldNames: SelectorWrapperProps['fieldNames'];\n}) => {\n const {\n cacheKey,\n serviceConfig,\n hasOuterSelectorList,\n outerSelectorList,\n onRespDataChange,\n onSelectorRequestError,\n onChange,\n useCache,\n fieldNames,\n } = options;\n const serviceRequestParams = serviceConfig?.params;\n const requiredParamsKeys = serviceConfig?.requiredParamsKeys || [];\n const hasServiceRequestParams = serviceRequestParams && Object.keys(serviceRequestParams).length > 0;\n\n const [stateSelectorList, setStateSelectorList] = useState<TPlainObject[]>();\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>();\n const [refreshKey, setRefreshKey] = useState(Date.now());\n\n const serviceRequestParamsStringify = useMemo(() => {\n try {\n if (hasServiceRequestParams) {\n const sortDataStringify = JSON.stringify(json.sort(serviceRequestParams));\n if (sortDataStringify === '{}') {\n return undefined;\n }\n return sortDataStringify;\n }\n } catch (error) {}\n return undefined;\n }, [hasServiceRequestParams, serviceRequestParams]);\n // 将 undefined => 'undefined'\n const serviceRequestCahceKey = `${serviceRequestParamsStringify}`;\n const serviceRequestCahceStatusKey = `${serviceRequestParamsStringify}_status`;\n const pubSubKey = `${cacheKey}_${serviceRequestCahceKey}`;\n\n // 上一个参数值\n const prevServiceRequestParamsStringify = fbaHooks.usePrevious(serviceRequestParamsStringify);\n const prevParams = fbaHooks.usePrevious(serviceRequestParams);\n\n const serviceRespDataAdapter = (respData) => {\n let result: TPlainObject[] = respData;\n if (serviceConfig?.onRequestResultAdapter) {\n result = serviceConfig?.onRequestResultAdapter(respData as unknown as TPlainObject);\n } else if (fieldNames?.list) {\n result = get(respData, fieldNames?.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const getWindowCacheData = () => {\n return window['__selector_wrapper_']?.[cacheKey];\n };\n const getWindowCacheValue = () => {\n return getWindowCacheData()?.[serviceRequestCahceKey];\n };\n const getWindowCacheStatus = () => {\n return getWindowCacheData()?.[serviceRequestCahceStatusKey];\n };\n\n const setWindowCache = (key, value) => {\n if (!window['__selector_wrapper_']) {\n window['__selector_wrapper_'] = {};\n }\n if (!window['__selector_wrapper_'][cacheKey]) {\n window['__selector_wrapper_'][cacheKey] = {};\n }\n window['__selector_wrapper_'][cacheKey][key] = value;\n };\n\n const onChangeRequestStatus = (status: TRequestStatus) => {\n setWindowCache(serviceRequestCahceStatusKey, status);\n setRequestStatus(status);\n };\n\n const onRequest = async () => {\n try {\n onChangeRequestStatus('request-progress');\n\n const respData = await serviceConfig?.onRequest?.(serviceRequestParams || {});\n const respAdapterData = serviceRespDataAdapter(respData);\n\n setWindowCache(serviceRequestCahceKey, respAdapterData);\n onChangeRequestStatus('request-success');\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-success',\n respData: respAdapterData,\n });\n });\n\n return respAdapterData;\n } catch (error) {\n console.error(error);\n onChangeRequestStatus('request-error');\n setStateSelectorList(undefined);\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-error',\n });\n });\n onSelectorRequestError?.(error);\n return Promise.reject();\n }\n };\n\n fbaHooks.useEffectCustomAsync(async () => {\n if (hasOuterSelectorList) {\n setRequestStatus('request-success');\n setStateSelectorList(outerSelectorList);\n onRespDataChange?.(outerSelectorList);\n return;\n }\n if (requiredParamsKeys.length > 0) {\n const isEmpty = serviceRequestParams\n ? requiredParamsKeys.find((key) => isUndefinedOrNull(serviceRequestParams[key]))\n : true;\n if (isEmpty) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setStateSelectorList([]);\n setRequestStatus('no-dependencies-params');\n /**\n * 怎么判断数据是从有到无的\n * 每一次 params 变少,只要 上一次 params 值存在,就应该清空 value 值\n */\n if (prevServiceRequestParamsStringify) {\n onChange?.(undefined);\n }\n return;\n }\n\n // 不使用缓存模式\n if (useCache === false) {\n // 判断参数是否发生变化\n if (isDeepEqual(serviceRequestParams, prevParams)) {\n return;\n }\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig?.onRequest?.(serviceRequestParams || {});\n const respAdapterData = serviceRespDataAdapter(respData);\n setRequestStatus('request-success');\n setStateSelectorList(respAdapterData);\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n return;\n }\n }\n\n /**\n * 此处无法判断 调用props.onChange?.(undefined);\n * A、B、C\n * 例如:C依赖A、B,当外部只修改了一个元素,理论上应该应该清空C value 值(调用onChange(undefined)),如果此时外部直接回填A、B、C时,C无法回填成功;该场景只能在A、B的onChange事件中,清空C\n */\n // if (prevServiceRequestParamsStringify) {\n // props.onChange?.(undefined);\n // }\n\n const status = getWindowCacheStatus();\n if (status === 'request-success') {\n const dataList = getWindowCacheValue();\n setStateSelectorList(dataList);\n setRequestStatus(status);\n onRespDataChange?.(dataList);\n return;\n }\n if (status === 'request-progress') {\n setRequestStatus(status);\n pubSub.subscribe(pubSubKey, (_msg, { status, respData }) => {\n if (status === 'request-success') {\n setRequestStatus(status);\n setStateSelectorList(respData);\n onRespDataChange?.(respData);\n } else {\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n }\n });\n return;\n }\n try {\n const respAdapterData = await onRequest();\n setStateSelectorList(respAdapterData);\n setRequestStatus('request-success');\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n }, [JSON.stringify(serviceRequestParams), outerSelectorList, refreshKey]);\n\n const onRefreshRequest = () => {\n setRefreshKey(Date.now());\n };\n\n return {\n requestStatus,\n stateSelectorList,\n serviceRequestParamsStringify,\n onRefreshRequest,\n };\n};\n","import { isObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\n/**\n * value存在两种格式\n * 1. string | number;\n * 2. labelInValue 格式\n * @param data\n * @param labelInValueFieldNames\n * @returns\n */\nexport const getVauleList = (data, valueKey: string | number) => {\n let valueList = toArray<string | number>(data);\n valueList = valueList.map((item) => {\n if (isObject(item)) return item[valueKey];\n return item;\n });\n return valueList;\n};\n","import { arrayFind, getUuid, TAny, toArray, TPlainObject, valueIsEqual } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select } from 'antd';\nimport { isValidElement, useMemo, useRef } from 'react';\nimport './style.less';\n\nimport { RedoOutlined } from '@ant-design/icons';\nimport { isString } from '@dimjs/lang';\nimport { RequestStatus } from '../request-status';\nimport { SelectorWrapperProps } from './types';\nimport { useRequest } from './use-request';\nimport { getVauleList } from './utils';\nexport * from './types';\n/**\n * 选择器包装组件\n * ```\n * 1. 不支持搜索调用服务模式,可使用组件 SelectorWrapperSearch\n * ```\n */\nexport const SelectorWrapper = (props: SelectorWrapperProps) => {\n const {\n serviceConfig,\n showAllOption,\n onSelectorListChange,\n onSelectorListAllChange,\n onSelectorRequestError,\n onLabelRenderAdapter,\n requestMessageConfig,\n selectorList: outerSelectorList,\n modelKey,\n fieldNames,\n value,\n labelInValue,\n useCache,\n ...otherProps\n } = props;\n\n const firstRenderSelectList = useRef(true);\n\n const modelKeyInner = useMemo(() => {\n return modelKey || getUuid();\n }, [modelKey]);\n\n // props 是否存在 selectorList,selectorList = undefined 也算存在\n const hasOuterSelectorList = props.hasOwnProperty('selectorList');\n const mergeFieldNames = {\n label: 'label',\n value: 'value',\n disabled: 'disabled',\n ...fieldNames,\n };\n\n const {\n label: optionsItemLabelField,\n value: optionsItemValueField,\n disabled: optionsItemDisabledField,\n } = mergeFieldNames;\n\n const allOptionConfig = useMemo(() => {\n if (!showAllOption) return null;\n const isTrue = showAllOption === true;\n return {\n [optionsItemLabelField]: isTrue ? '全部' : showAllOption.label,\n [optionsItemValueField]: isTrue ? '' : showAllOption.value,\n };\n }, [optionsItemLabelField, optionsItemValueField, showAllOption]);\n\n const isMultiple = valueIsEqual(props.mode, ['multiple']);\n\n const { requestStatus, stateSelectorList, onRefreshRequest } = useRequest({\n fieldNames: mergeFieldNames,\n cacheKey: modelKeyInner,\n hasOuterSelectorList,\n onChange: props.onChange,\n serviceConfig,\n outerSelectorList,\n onRespDataChange: (dataList) => {\n if (firstRenderSelectList.current) {\n onSelectorListChange?.(dataList || []);\n firstRenderSelectList.current = false;\n }\n onSelectorListAllChange?.(dataList || []);\n },\n onSelectorRequestError,\n useCache: useCache === undefined ? true : useCache,\n });\n\n const onRespChange = hooks.useCallbackRef((selectedList: TPlainObject[]) => {\n if (labelInValue) {\n if (isMultiple) {\n props.onChange?.(selectedList, selectedList);\n } else {\n props.onChange?.(selectedList[0], selectedList);\n }\n } else {\n const valueList = selectedList.map((item) => item[optionsItemValueField]);\n if (isMultiple) {\n props.onChange?.(valueList, selectedList);\n } else {\n props.onChange?.(valueList[0], selectedList[0]);\n }\n }\n });\n\n const onInnerChange = hooks.useCallbackRef((_value, otherParams) => {\n if (!otherParams) return props.onChange?.(undefined);\n const selectedList = toArray<TAny>(otherParams);\n const targetList = [] as TPlainObject[];\n selectedList.forEach((item) => {\n if (showAllOption && allOptionConfig && item.value === allOptionConfig[optionsItemValueField]) {\n targetList.push(allOptionConfig);\n } else {\n const filterTarget = arrayFind(stateSelectorList || [], item.value, optionsItemValueField);\n if (filterTarget) {\n targetList.push(filterTarget);\n }\n }\n });\n onRespChange(targetList);\n });\n\n const selectorAllList = useMemo(() => {\n if (requestStatus !== 'request-success') return [];\n if (!stateSelectorList || stateSelectorList.length === 0) return [];\n if (!allOptionConfig) return stateSelectorList;\n return [allOptionConfig].concat(stateSelectorList);\n }, [allOptionConfig, requestStatus, stateSelectorList]);\n\n const loading = requestStatus === 'request-progress';\n\n const selectValue = useMemo(() => {\n const targetList = getVauleList(value, optionsItemValueField);\n return isMultiple ? targetList : targetList[0];\n }, [isMultiple, optionsItemValueField, value]);\n\n const filterOption = hooks.useCallbackRef((input: string, option) => {\n const children = toArray(option.children);\n let mergeString = '';\n const hasValidElementItem = children.find((item) => {\n return isValidElement(item);\n });\n if (!hasValidElementItem) {\n children.forEach((item) => {\n if (isString(item)) mergeString += item;\n });\n } else {\n mergeString = isString(option?.label) ? option.label : undefined;\n }\n return mergeString.toLowerCase().indexOf(input.toLowerCase()) >= 0;\n });\n\n return (\n <Select\n showSearch={true}\n allowClear={true}\n popupMatchSelectWidth={false}\n filterOption={filterOption}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n value={selectValue}\n loading={loading}\n onChange={onInnerChange}\n fieldNames={undefined}\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onRefreshRequest} />\n ) : (\n otherProps.suffixIcon\n )\n }\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={onRefreshRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {selectorAllList.map((item, index) => {\n const value = item[optionsItemValueField];\n const label = item[optionsItemLabelField];\n return (\n <Select.Option\n value={value}\n label={label}\n key={`${value}-${index}`}\n disabled={item[optionsItemDisabledField]}\n >\n {props.showIcon ? (\n <span className=\"v-selector-item-icon\">{props.icon?.(item, index)}</span>\n ) : null}\n {onLabelRenderAdapter ? onLabelRenderAdapter(item) : label}\n </Select.Option>\n );\n })}\n </Select>\n );\n};\n"],"names":["useRequest","options","cacheKey","serviceConfig","hasOuterSelectorList","outerSelectorList","onRespDataChange","onSelectorRequestError","onChange","useCache","fieldNames","serviceRequestParams","params","requiredParamsKeys","hasServiceRequestParams","Object","keys","length","_useState","useState","stateSelectorList","setStateSelectorList","_useState2","requestStatus","setRequestStatus","_useState3","Date","now","refreshKey","setRefreshKey","serviceRequestParamsStringify","useMemo","sortDataStringify","JSON","stringify","_json","sort","undefined","error","serviceRequestCahceKey","serviceRequestCahceStatusKey","pubSubKey","prevServiceRequestParamsStringify","fbaHooks","usePrevious","prevParams","serviceRespDataAdapter","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","getWindowCacheData","_window$__selector_wr","window","getWindowCacheValue","_getWindowCacheData","getWindowCacheStatus","_getWindowCacheData2","setWindowCache","key","value","onChangeRequestStatus","status","onRequest","Promise","$return","$error","respAdapterData","$Try_2_Catch","setTimeout","pubSub","publish","reject","$boundEx","resolve","then","$await_7","useEffectCustomAsync","isEmpty","dataList","_respAdapterData","find","isUndefinedOrNull","_isDeepEqual","$Try_3_Post","$Try_3_Catch","$await_8","$If_5","call","this","subscribe","_msg","_ref","$Try_4_Post","$Try_4_Catch","$await_9","onRefreshRequest","getVauleList","data","valueKey","valueList","toArray","map","item","_isObject","SelectorWrapper","props","showAllOption","onSelectorListChange","onSelectorListAllChange","onLabelRenderAdapter","requestMessageConfig","selectorList","modelKey","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","firstRenderSelectList","useRef","modelKeyInner","getUuid","hasOwnProperty","mergeFieldNames","_extends","label","disabled","optionsItemLabelField","optionsItemValueField","optionsItemDisabledField","allOptionConfig","isTrue","isMultiple","valueIsEqual","mode","_useRequest","current","onRespChange","_hooks","useCallbackRef","selectedList","onInnerChange","_value","otherParams","targetList","forEach","push","filterTarget","arrayFind","selectorAllList","concat","loading","selectValue","filterOption","input","option","children","mergeString","hasValidElementItem","isValidElement","_isString","toLowerCase","indexOf","_jsx","Select","showSearch","allowClear","popupMatchSelectWidth","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","index","_jsxs","Option","showIcon","className","icon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper/refresh-icon.tsx","@flatbiz/antd/src/selector-wrapper/use-request.ts","@flatbiz/antd/src/selector-wrapper/utils.ts","@flatbiz/antd/src/selector-wrapper/selector-wrapper.tsx"],"sourcesContent":["import { SyncOutlined } from '@ant-design/icons';\nimport { hooks } from '@wove/react';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport { IconWrapper } from '../icon-wrapper/icon-wrapper.jsx';\nimport type { TRequestStatus, TRequestStatusProps } from '../request-status/request-status.jsx';\n\nexport const RefreshIcon = (props: {\n onRefreshRequest: () => void;\n loading: boolean;\n requestStatus?: TRequestStatus;\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n}) => {\n const { onRefreshRequest, loading, ...otherProps } = props;\n const [innerLoading, setInnerLoading] = useState(loading);\n const hoverTips = useMemo(() => {\n if (props.requestStatus === 'no-dependencies-params') {\n return props.requestMessageConfig?.['no-dependencies-params'] || '未获取到必要的查询条件';\n }\n return undefined;\n }, [props.requestMessageConfig, props.requestStatus]);\n\n const onRefresh = hooks.useCallbackRef(() => {\n if (props.requestStatus === 'no-dependencies-params') {\n return;\n }\n setInnerLoading(true);\n onRefreshRequest();\n });\n\n fbaHooks.useEffectCustom(() => {\n if (innerLoading && !loading) {\n setInnerLoading(false);\n }\n }, [loading]);\n\n return (\n <IconWrapper\n {...otherProps}\n icon={<SyncOutlined spin={innerLoading} style={{ color: '#9b9797' }} />}\n onClick={onRefresh}\n hoverTips={hoverTips}\n />\n );\n};\n","import { isArray, isDeepEqual } from '@dimjs/lang';\nimport { get, json } from '@dimjs/utils';\nimport { isUndefinedOrNull, type TPlainObject } from '@flatbiz/utils';\nimport pubSub from 'pubsub-js';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { type TRequestStatus } from '../request-status';\nimport { type SelectorServiceConfig, type SelectorWrapperProps } from './types';\n\nexport const useRequest = (options: {\n cacheKey: string;\n serviceConfig?: SelectorServiceConfig;\n hasOuterSelectorList?: boolean;\n onChange?: SelectorWrapperProps['onChange'];\n outerSelectorList?: SelectorWrapperProps['selectorList'];\n onRespDataChange?: (dataList?: TPlainObject[]) => void;\n onSelectorRequestError?: SelectorWrapperProps['onSelectorRequestError'];\n useCache: boolean;\n fieldNames: SelectorWrapperProps['fieldNames'];\n}) => {\n const {\n cacheKey,\n serviceConfig,\n hasOuterSelectorList,\n outerSelectorList,\n onRespDataChange,\n onSelectorRequestError,\n onChange,\n useCache,\n fieldNames,\n } = options;\n const serviceRequestParams = serviceConfig?.params;\n const requiredParamsKeys = serviceConfig?.requiredParamsKeys || [];\n const hasServiceRequestParams = serviceRequestParams && Object.keys(serviceRequestParams).length > 0;\n\n const [stateSelectorList, setStateSelectorList] = useState<TPlainObject[]>();\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>();\n const [refreshKey, setRefreshKey] = useState(Date.now());\n\n const serviceRequestParamsStringify = useMemo(() => {\n try {\n if (hasServiceRequestParams) {\n const sortDataStringify = JSON.stringify(json.sort(serviceRequestParams));\n if (sortDataStringify === '{}') {\n return undefined;\n }\n return sortDataStringify;\n }\n } catch (error) {}\n return undefined;\n }, [hasServiceRequestParams, serviceRequestParams]);\n // 将 undefined => 'undefined'\n const serviceRequestCahceKey = `${serviceRequestParamsStringify}`;\n const serviceRequestCahceStatusKey = `${serviceRequestParamsStringify}_status`;\n const pubSubKey = `${cacheKey}_${serviceRequestCahceKey}`;\n\n // 上一个参数值\n const prevServiceRequestParamsStringify = fbaHooks.usePrevious(serviceRequestParamsStringify);\n const prevParams = fbaHooks.usePrevious(serviceRequestParams);\n\n const serviceRespDataAdapter = (respData) => {\n let result: TPlainObject[] = respData;\n if (serviceConfig?.onRequestResultAdapter) {\n result = serviceConfig?.onRequestResultAdapter(respData as unknown as TPlainObject);\n } else if (fieldNames?.list) {\n result = get(respData, fieldNames?.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const getWindowCacheData = () => {\n return window['__selector_wrapper_']?.[cacheKey];\n };\n const getWindowCacheValue = () => {\n return getWindowCacheData()?.[serviceRequestCahceKey];\n };\n const getWindowCacheStatus = () => {\n return getWindowCacheData()?.[serviceRequestCahceStatusKey];\n };\n\n const setWindowCache = (key, value) => {\n if (!window['__selector_wrapper_']) {\n window['__selector_wrapper_'] = {};\n }\n if (!window['__selector_wrapper_'][cacheKey]) {\n window['__selector_wrapper_'][cacheKey] = {};\n }\n window['__selector_wrapper_'][cacheKey][key] = value;\n };\n\n const onChangeRequestStatus = (status: TRequestStatus) => {\n setWindowCache(serviceRequestCahceStatusKey, status);\n setRequestStatus(status);\n };\n\n const onRequest = async () => {\n try {\n onChangeRequestStatus('request-progress');\n\n const respData = await serviceConfig?.onRequest?.(serviceRequestParams || {});\n const respAdapterData = serviceRespDataAdapter(respData);\n\n setWindowCache(serviceRequestCahceKey, respAdapterData);\n onChangeRequestStatus('request-success');\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-success',\n respData: respAdapterData,\n });\n });\n\n return respAdapterData;\n } catch (error) {\n console.error(error);\n onChangeRequestStatus('request-error');\n setStateSelectorList(undefined);\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-error',\n });\n });\n onSelectorRequestError?.(error);\n return Promise.reject();\n }\n };\n\n fbaHooks.useEffectCustomAsync(async () => {\n if (hasOuterSelectorList) {\n setRequestStatus('request-success');\n setStateSelectorList(outerSelectorList);\n onRespDataChange?.(outerSelectorList);\n return;\n }\n if (requiredParamsKeys.length > 0) {\n const isEmpty = serviceRequestParams\n ? requiredParamsKeys.find((key) => isUndefinedOrNull(serviceRequestParams[key]))\n : true;\n if (isEmpty) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setStateSelectorList([]);\n setRequestStatus('no-dependencies-params');\n /**\n * 怎么判断数据是从有到无的\n * 每一次 params 变少,只要 上一次 params 值存在,就应该清空 value 值\n */\n if (prevServiceRequestParamsStringify) {\n onChange?.(undefined);\n }\n return;\n }\n\n // 不使用缓存模式\n if (useCache === false) {\n // 判断参数是否发生变化\n if (isDeepEqual(serviceRequestParams, prevParams)) {\n return;\n }\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig?.onRequest?.(serviceRequestParams || {});\n const respAdapterData = serviceRespDataAdapter(respData);\n setRequestStatus('request-success');\n setStateSelectorList(respAdapterData);\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n return;\n }\n }\n\n /**\n * 此处无法判断 调用props.onChange?.(undefined);\n * A、B、C\n * 例如:C依赖A、B,当外部只修改了一个元素,理论上应该应该清空C value 值(调用onChange(undefined)),如果此时外部直接回填A、B、C时,C无法回填成功;该场景只能在A、B的onChange事件中,清空C\n */\n // if (prevServiceRequestParamsStringify) {\n // props.onChange?.(undefined);\n // }\n\n const status = getWindowCacheStatus();\n if (status === 'request-success') {\n const dataList = getWindowCacheValue();\n setStateSelectorList(dataList);\n setRequestStatus(status);\n onRespDataChange?.(dataList);\n return;\n }\n if (status === 'request-progress') {\n setRequestStatus(status);\n pubSub.subscribe(pubSubKey, (_msg, { status, respData }) => {\n if (status === 'request-success') {\n setRequestStatus(status);\n setStateSelectorList(respData);\n onRespDataChange?.(respData);\n } else {\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n }\n });\n return;\n }\n try {\n const respAdapterData = await onRequest();\n setStateSelectorList(respAdapterData);\n setRequestStatus('request-success');\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n }, [JSON.stringify(serviceRequestParams), outerSelectorList, refreshKey]);\n\n const onRefreshRequest = () => {\n if (requestStatus === 'request-success') {\n onChangeRequestStatus('request-init');\n }\n setRefreshKey(Date.now());\n };\n\n return {\n requestStatus,\n stateSelectorList,\n serviceRequestParamsStringify,\n onRefreshRequest,\n };\n};\n","import { isObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\n/**\n * value存在两种格式\n * 1. string | number;\n * 2. labelInValue 格式\n * @param data\n * @param labelInValueFieldNames\n * @returns\n */\nexport const getVauleList = (data, valueKey: string | number) => {\n let valueList = toArray<string | number>(data);\n valueList = valueList.map((item) => {\n if (isObject(item)) return item[valueKey];\n return item;\n });\n return valueList;\n};\n","import { arrayFind, getUuid, TAny, toArray, TPlainObject, valueIsEqual } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select } from 'antd';\nimport { isValidElement, useMemo, useRef } from 'react';\nimport './style.less';\n\nimport { RedoOutlined } from '@ant-design/icons';\nimport { isString } from '@dimjs/lang';\nimport classNames from 'classnames';\nimport { FlexLayout } from '../flex-layout/flex-layout';\nimport { RequestStatus } from '../request-status';\nimport { RefreshIcon } from './refresh-icon';\nimport { SelectorWrapperProps } from './types';\nimport { useRequest } from './use-request';\nimport { getVauleList } from './utils';\nexport * from './types';\n/**\n * 选择器包装组件\n * ```\n * 1. 不支持搜索调用服务模式,可使用组件 SelectorWrapperSearch\n * 2. 修改文案【未获取到必要的查询条件】,通过参数 requestMessageConfig={{'no-dependencies-params': '自定义文案'}} 配置\n * ```\n */\nexport const SelectorWrapper = (props: SelectorWrapperProps) => {\n const {\n serviceConfig,\n showAllOption,\n onSelectorListChange,\n onSelectorListAllChange,\n onSelectorRequestError,\n onLabelRenderAdapter,\n requestMessageConfig,\n selectorList: outerSelectorList,\n modelKey,\n fieldNames,\n value,\n labelInValue,\n useCache,\n style,\n className,\n showRefreshIcon,\n ...otherProps\n } = props;\n\n const firstRenderSelectList = useRef(true);\n\n const modelKeyInner = useMemo(() => {\n return modelKey || getUuid();\n }, [modelKey]);\n\n // props 是否存在 selectorList,selectorList = undefined 也算存在\n const hasOuterSelectorList = props.hasOwnProperty('selectorList');\n const mergeFieldNames = {\n label: 'label',\n value: 'value',\n disabled: 'disabled',\n ...fieldNames,\n };\n\n const {\n label: optionsItemLabelField,\n value: optionsItemValueField,\n disabled: optionsItemDisabledField,\n } = mergeFieldNames;\n\n const allOptionConfig = useMemo(() => {\n if (!showAllOption) return null;\n const isTrue = showAllOption === true;\n return {\n [optionsItemLabelField]: isTrue ? '全部' : showAllOption.label,\n [optionsItemValueField]: isTrue ? '' : showAllOption.value,\n };\n }, [optionsItemLabelField, optionsItemValueField, showAllOption]);\n\n const isMultiple = valueIsEqual(props.mode, ['multiple']);\n\n const { requestStatus, stateSelectorList, onRefreshRequest } = useRequest({\n fieldNames: mergeFieldNames,\n cacheKey: modelKeyInner,\n hasOuterSelectorList,\n onChange: props.onChange,\n serviceConfig,\n outerSelectorList,\n onRespDataChange: (dataList) => {\n if (firstRenderSelectList.current) {\n onSelectorListChange?.(dataList || []);\n firstRenderSelectList.current = false;\n }\n onSelectorListAllChange?.(dataList || []);\n },\n onSelectorRequestError,\n useCache: useCache === undefined ? true : useCache,\n });\n\n const onRespChange = hooks.useCallbackRef((selectedList: TPlainObject[]) => {\n if (labelInValue) {\n if (isMultiple) {\n props.onChange?.(selectedList, selectedList);\n } else {\n props.onChange?.(selectedList[0], selectedList);\n }\n } else {\n const valueList = selectedList.map((item) => item[optionsItemValueField]);\n if (isMultiple) {\n props.onChange?.(valueList, selectedList);\n } else {\n props.onChange?.(valueList[0], selectedList[0]);\n }\n }\n });\n\n const onInnerChange = hooks.useCallbackRef((_value, otherParams) => {\n if (!otherParams) return props.onChange?.(undefined);\n const selectedList = toArray<TAny>(otherParams);\n const targetList = [] as TPlainObject[];\n selectedList.forEach((item) => {\n if (showAllOption && allOptionConfig && item.value === allOptionConfig[optionsItemValueField]) {\n targetList.push(allOptionConfig);\n } else {\n const filterTarget = arrayFind(stateSelectorList || [], item.value, optionsItemValueField);\n if (filterTarget) {\n targetList.push(filterTarget);\n }\n }\n });\n onRespChange(targetList);\n });\n\n const selectorAllList = useMemo(() => {\n if (requestStatus !== 'request-success') return [];\n if (!stateSelectorList || stateSelectorList.length === 0) return [];\n if (!allOptionConfig) return stateSelectorList;\n return [allOptionConfig].concat(stateSelectorList);\n }, [allOptionConfig, requestStatus, stateSelectorList]);\n\n const loading = requestStatus === 'request-progress';\n\n const selectValue = useMemo(() => {\n const targetList = getVauleList(value, optionsItemValueField);\n return isMultiple ? targetList : targetList[0];\n }, [isMultiple, optionsItemValueField, value]);\n\n const filterOption = hooks.useCallbackRef((input: string, option) => {\n const children = toArray(option.children);\n let mergeString = '';\n const hasValidElementItem = children.find((item) => {\n return isValidElement(item);\n });\n if (!hasValidElementItem) {\n children.forEach((item) => {\n if (isString(item)) mergeString += item;\n });\n } else {\n mergeString = isString(option?.label) ? option.label : undefined;\n }\n return mergeString.toLowerCase().indexOf(input.toLowerCase()) >= 0;\n });\n\n return (\n <FlexLayout\n fullIndex={0}\n style={{ width: '100%', alignItems: 'center', ...style }}\n direction=\"horizontal\"\n gap={10}\n className={classNames('v-selector-wrapper', className)}\n >\n <Select\n showSearch={true}\n allowClear={true}\n popupMatchSelectWidth={false}\n filterOption={filterOption}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n value={selectValue}\n loading={loading}\n onChange={onInnerChange}\n fieldNames={undefined}\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onRefreshRequest} />\n ) : (\n otherProps.suffixIcon\n )\n }\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={onRefreshRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {selectorAllList.map((item, index) => {\n const value = item[optionsItemValueField];\n const label = item[optionsItemLabelField];\n return (\n <Select.Option\n value={value}\n label={label}\n key={`${value}-${index}`}\n disabled={item[optionsItemDisabledField]}\n >\n {props.showIcon ? (\n <span className=\"v-selector-item-icon\">{props.icon?.(item, index)}</span>\n ) : null}\n {onLabelRenderAdapter ? onLabelRenderAdapter(item) : label}\n </Select.Option>\n );\n })}\n </Select>\n {showRefreshIcon ? (\n <RefreshIcon\n onRefreshRequest={onRefreshRequest}\n loading={loading}\n requestStatus={requestStatus}\n requestMessageConfig={requestMessageConfig}\n />\n ) : null}\n </FlexLayout>\n );\n};\n"],"names":["RefreshIcon","props","onRefreshRequest","loading","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","innerLoading","setInnerLoading","hoverTips","useMemo","requestStatus","_props$requestMessage","requestMessageConfig","undefined","onRefresh","_hooks","useCallbackRef","fbaHooks","useEffectCustom","_jsx","IconWrapper","_extends","icon","_SyncOutlined","spin","style","color","onClick","useRequest","options","cacheKey","serviceConfig","hasOuterSelectorList","outerSelectorList","onRespDataChange","onSelectorRequestError","onChange","useCache","fieldNames","serviceRequestParams","params","requiredParamsKeys","hasServiceRequestParams","Object","keys","length","stateSelectorList","setStateSelectorList","_useState2","setRequestStatus","_useState3","Date","now","refreshKey","setRefreshKey","serviceRequestParamsStringify","sortDataStringify","JSON","stringify","_json","sort","error","serviceRequestCahceKey","serviceRequestCahceStatusKey","pubSubKey","prevServiceRequestParamsStringify","usePrevious","prevParams","serviceRespDataAdapter","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","getWindowCacheData","_window$__selector_wr","window","getWindowCacheValue","_getWindowCacheData","getWindowCacheStatus","_getWindowCacheData2","setWindowCache","key","value","onChangeRequestStatus","status","onRequest","Promise","$return","$error","respAdapterData","$Try_2_Catch","setTimeout","pubSub","publish","reject","$boundEx","resolve","then","$await_7","useEffectCustomAsync","isEmpty","dataList","_respAdapterData","find","isUndefinedOrNull","_isDeepEqual","$Try_3_Post","$Try_3_Catch","$await_8","$If_5","call","this","subscribe","_msg","_ref","$Try_4_Post","$Try_4_Catch","$await_9","getVauleList","data","valueKey","valueList","toArray","map","item","_isObject","SelectorWrapper","showAllOption","onSelectorListChange","onSelectorListAllChange","onLabelRenderAdapter","selectorList","modelKey","labelInValue","className","showRefreshIcon","firstRenderSelectList","useRef","modelKeyInner","getUuid","hasOwnProperty","mergeFieldNames","label","disabled","optionsItemLabelField","optionsItemValueField","optionsItemDisabledField","allOptionConfig","isTrue","isMultiple","valueIsEqual","mode","_useRequest","current","onRespChange","selectedList","onInnerChange","_value","otherParams","targetList","forEach","push","filterTarget","arrayFind","selectorAllList","concat","selectValue","filterOption","input","option","children","mergeString","hasValidElementItem","isValidElement","_isString","toLowerCase","indexOf","_jsxs","FlexLayout","fullIndex","width","alignItems","direction","gap","classNames","Select","showSearch","allowClear","popupMatchSelectWidth","suffixIcon","_RedoOutlined","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","index","Option","showIcon"],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
|
|
|
3
3
|
import './../request-status/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import e from"@ant-design/icons/es/icons/RedoOutlined";import{hooks as r}from"@wove/react/cjs/hooks";import{a as t,_ as o}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{get as i}from"@dimjs/utils/cjs/get";import{Select as
|
|
6
|
+
import e from"@ant-design/icons/es/icons/RedoOutlined";import{hooks as r}from"@wove/react/cjs/hooks";import{a as t,_ as o}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{get as i}from"@dimjs/utils/cjs/get";import{isUndefinedOrNull as s}from"@flatbiz/utils";import{Select as a,Button as u}from"antd";import{useState as l,useMemo as c}from"react";import{fbaHooks as d}from"../fba-hooks/index.js";import{RequestStatus as f}from"../request-status/index.js";import{jsx as m}from"react/jsx-runtime";import"../use-responsive-point-1e6d93d9.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/utils/cjs/extend";import"../index-636a568e.js";import"../text-overflow/index.js";import"@dimjs/lang/cjs/is-string";import"@dimjs/utils/cjs/class-names";import"ahooks";var p=["showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","onLabelRenderAdapter"];var v=function v(h){var g=h.showAllOption,j=h.serviceConfig,q=h.onSelectorListChange,b=h.onSelectorRequestError,y=h.requestMessageConfig,w=h.fieldNames,C=h.onLabelRenderAdapter,R=t(h,p);var x=l("request-init"),k=x[0],S=x[1];var A=l(),K=A[0],E=A[1];var L=(w==null?void 0:w.label)||"label";var O=(w==null?void 0:w.value)||"value";var P=(w==null?void 0:w.disabled)||"disabled";var M=(w==null?void 0:w.searchKeyword)||"searchKeyword";var B=j.params;var N=j.requiredParamsKeys||[];var _=c(function(){var e=g===true;if(g){return{label:e?"全部":g.label,value:e?"":g.value}}return null},[g]);var z=function e(r){var t=r;if(j.onRequestResultAdapter){t=j.onRequestResultAdapter(r)}else if(w!=null&&w.list){t=i(r,w==null?void 0:w.list)}if(t&&!n(t)){console.warn("待渲染数据为非数组结构",t);return[]}return t||[]};var D=function e(r){return new Promise(function(e,t){var n,i,a,u;var l=function(){try{return e()}catch(e){return t(e)}};var c=function(e){try{S("request-error");b==null||b(e);return l()}catch(e){return t(e)}};try{if(N.length){i=B?N.find(function(e){return s(B[e])}):true;if(i){E([]);S("no-dependencies-params");return e()}}if(!r){S("request-search-keyword-empty");return e()}S("request-progress");return Promise.resolve(j.onRequest==null?void 0:j.onRequest(o({},B,(n={},n[M]=r,n)))).then(function(e){try{a=e;u=z(a);q==null||q(u);if(L&&O){u=u.map(function(e){return o({},e,{label:e[L],value:e[O],disabled:e[P||"disabled"]})})}u.forEach(function(e){if(C){e.label=C(e)}});if(_){u.unshift(_)}E(u);S("request-success");return l()}catch(e){return c(e)}},c)}catch(e){c(e)}})};var F=r.useDebounceCallback(function(e){E([]);void D(e)},300);d.useEffectCustom(function(){void D(h.customKeyword)},[h.customKeyword]);var H=k==="request-progress";return m(a,o({showSearch:true,allowClear:true,popupMatchSelectWidth:false,placeholder:"输入关键字搜索"},R,{style:o({width:"100%"},h.style),options:K,filterOption:false,onSearch:F,notFoundContent:m(f,{status:k,loading:H,messageConfig:o({"request-init":"请输入搜索条件"},y),errorButton:m(u,{type:"primary",onClick:D,children:"重新获取数据"})}),suffixIcon:k==="request-error"?m(e,{spin:H,onClick:D}):undefined,loading:H}))};export{v as SelectorWrapperSearch};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|