@cozeloop/components 0.0.5 → 0.0.7-beta-1766595012100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/index.css +11 -27
- package/dist/es/{index.js → index.mjs} +495 -449
- package/dist/lib/code-editor-with-loading/index.d.ts +10 -0
- package/dist/lib/codemirror-editor/code-editor.d.ts +23 -2
- package/dist/lib/codemirror-editor/index.d.ts +2 -0
- package/dist/lib/codemirror-editor/json-editor.d.ts +1 -1
- package/dist/lib/codemirror-editor/raw-code-editor.d.ts +20 -0
- package/dist/lib/codemirror-editor/text-editor.d.ts +23 -2
- package/dist/lib/collapse-card/index.d.ts +2 -1
- package/dist/lib/copyable/index.d.ts +5 -0
- package/dist/lib/hooks/use-unsave-leave-warning.d.ts +4 -1
- package/dist/lib/index.d.ts +5 -5
- package/dist/lib/logic-editor/logic-editor.d.ts +2 -4
- package/dist/lib/logic-editor/logic-types.d.ts +6 -2
- package/dist/lib/loop-icons/index.d.ts +1 -0
- package/dist/lib/multi-part-editor/type.d.ts +1 -1
- package/dist/lib/provider/index.d.ts +10 -9
- package/dist/lib/table/sort-icon.d.ts +3 -3
- package/package.json +23 -25
- package/dist/lib/base-search-select/base-search-form-select.js +0 -6
- package/dist/lib/base-search-select/base-search-form-select.js.map +0 -1
- package/dist/lib/base-search-select/base-search-select.js +0 -127
- package/dist/lib/base-search-select/base-search-select.js.map +0 -1
- package/dist/lib/base-search-select/index.js +0 -3
- package/dist/lib/base-search-select/index.js.map +0 -1
- package/dist/lib/base-search-select/types.js +0 -2
- package/dist/lib/base-search-select/types.js.map +0 -1
- package/dist/lib/base-search-select/utils.js +0 -48
- package/dist/lib/base-search-select/utils.js.map +0 -1
- package/dist/lib/basic-card/index.js +0 -4
- package/dist/lib/basic-card/index.js.map +0 -1
- package/dist/lib/card-pane/index.js +0 -9
- package/dist/lib/card-pane/index.js.map +0 -1
- package/dist/lib/chip-select/index.js +0 -6
- package/dist/lib/chip-select/index.js.map +0 -1
- package/dist/lib/code-editor/index.js +0 -9
- package/dist/lib/code-editor/index.js.map +0 -1
- package/dist/lib/code-usage/index.d.ts +0 -14
- package/dist/lib/code-usage/index.js +0 -31
- package/dist/lib/code-usage/index.js.map +0 -1
- package/dist/lib/codemirror-editor/code-editor.js +0 -108
- package/dist/lib/codemirror-editor/code-editor.js.map +0 -1
- package/dist/lib/codemirror-editor/index.js +0 -5
- package/dist/lib/codemirror-editor/index.js.map +0 -1
- package/dist/lib/codemirror-editor/json-editor.js +0 -97
- package/dist/lib/codemirror-editor/json-editor.js.map +0 -1
- package/dist/lib/codemirror-editor/raw-text-editor.js +0 -32
- package/dist/lib/codemirror-editor/raw-text-editor.js.map +0 -1
- package/dist/lib/codemirror-editor/text-editor.js +0 -44
- package/dist/lib/codemirror-editor/text-editor.js.map +0 -1
- package/dist/lib/codemirror-editor/themes/coze-dark.js +0 -113
- package/dist/lib/codemirror-editor/themes/coze-dark.js.map +0 -1
- package/dist/lib/codemirror-editor/themes/coze-light.js +0 -119
- package/dist/lib/codemirror-editor/themes/coze-light.js.map +0 -1
- package/dist/lib/collapse-card/index.js +0 -31
- package/dist/lib/collapse-card/index.js.map +0 -1
- package/dist/lib/collapsible-card/index.js +0 -13
- package/dist/lib/collapsible-card/index.js.map +0 -1
- package/dist/lib/column-manage-storage/index.js +0 -48
- package/dist/lib/column-manage-storage/index.js.map +0 -1
- package/dist/lib/columns-select/index.js +0 -77
- package/dist/lib/columns-select/index.js.map +0 -1
- package/dist/lib/edit-icon-button/index.js +0 -13
- package/dist/lib/edit-icon-button/index.js.map +0 -1
- package/dist/lib/footer-actions/index.js +0 -9
- package/dist/lib/footer-actions/index.js.map +0 -1
- package/dist/lib/hooks/use-infinite-scroll.js +0 -133
- package/dist/lib/hooks/use-infinite-scroll.js.map +0 -1
- package/dist/lib/hooks/use-mouse-down-offset.js +0 -39
- package/dist/lib/hooks/use-mouse-down-offset.js.map +0 -1
- package/dist/lib/hooks/use-unsave-leave-warning.js +0 -33
- package/dist/lib/hooks/use-unsave-leave-warning.js.map +0 -1
- package/dist/lib/id-render/icon-button-container.js +0 -8
- package/dist/lib/id-render/icon-button-container.js.map +0 -1
- package/dist/lib/id-render/index.js +0 -21
- package/dist/lib/id-render/index.js.map +0 -1
- package/dist/lib/index-controller/record-navigation.js +0 -9
- package/dist/lib/index-controller/record-navigation.js.map +0 -1
- package/dist/lib/index-controller/use-item-index-controller.js +0 -123
- package/dist/lib/index-controller/use-item-index-controller.js.map +0 -1
- package/dist/lib/index.js +0 -76
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/infinite-scroll-table/index.js +0 -34
- package/dist/lib/infinite-scroll-table/index.js.map +0 -1
- package/dist/lib/info-tooltip/index.js +0 -9
- package/dist/lib/info-tooltip/index.js.map +0 -1
- package/dist/lib/input-components/radio-button.js +0 -21
- package/dist/lib/input-components/radio-button.js.map +0 -1
- package/dist/lib/input-slider/index.js +0 -81
- package/dist/lib/input-slider/index.js.map +0 -1
- package/dist/lib/input-with-count/index.js +0 -7
- package/dist/lib/input-with-count/index.js.map +0 -1
- package/dist/lib/jump-button/jump-icon-button.js +0 -7
- package/dist/lib/jump-button/jump-icon-button.js.map +0 -1
- package/dist/lib/large-txt-render/index.js +0 -26
- package/dist/lib/large-txt-render/index.js.map +0 -1
- package/dist/lib/layout/content.js +0 -5
- package/dist/lib/layout/content.js.map +0 -1
- package/dist/lib/layout/header.js +0 -6
- package/dist/lib/layout/header.js.map +0 -1
- package/dist/lib/layout/index.js +0 -9
- package/dist/lib/layout/index.js.map +0 -1
- package/dist/lib/layout/tabs.js +0 -10
- package/dist/lib/layout/tabs.js.map +0 -1
- package/dist/lib/lazy-load-component/index.js +0 -42
- package/dist/lib/lazy-load-component/index.js.map +0 -1
- package/dist/lib/logic-editor/index.js +0 -3
- package/dist/lib/logic-editor/index.js.map +0 -1
- package/dist/lib/logic-editor/logic-editor.js +0 -69
- package/dist/lib/logic-editor/logic-editor.js.map +0 -1
- package/dist/lib/logic-editor/logic-left-render.js +0 -60
- package/dist/lib/logic-editor/logic-left-render.js.map +0 -1
- package/dist/lib/logic-editor/logic-operator-render.js +0 -29
- package/dist/lib/logic-editor/logic-operator-render.js.map +0 -1
- package/dist/lib/logic-editor/logic-right-render.js +0 -25
- package/dist/lib/logic-editor/logic-right-render.js.map +0 -1
- package/dist/lib/logic-editor/logic-types.js +0 -136
- package/dist/lib/logic-editor/logic-types.js.map +0 -1
- package/dist/lib/logic-editor/utils.js +0 -18
- package/dist/lib/logic-editor/utils.js.map +0 -1
- package/dist/lib/logic-expr/consts.js +0 -5
- package/dist/lib/logic-expr/consts.js.map +0 -1
- package/dist/lib/logic-expr/expr-group-render.js +0 -61
- package/dist/lib/logic-expr/expr-group-render.js.map +0 -1
- package/dist/lib/logic-expr/expr-render.js +0 -85
- package/dist/lib/logic-expr/expr-render.js.map +0 -1
- package/dist/lib/logic-expr/index.js +0 -2
- package/dist/lib/logic-expr/index.js.map +0 -1
- package/dist/lib/logic-expr/logic-expr.js +0 -187
- package/dist/lib/logic-expr/logic-expr.js.map +0 -1
- package/dist/lib/logic-expr/logic-not.js +0 -21
- package/dist/lib/logic-expr/logic-not.js.map +0 -1
- package/dist/lib/logic-expr/logic-toggle.js +0 -33
- package/dist/lib/logic-expr/logic-toggle.js.map +0 -1
- package/dist/lib/logic-expr/types.js +0 -2
- package/dist/lib/logic-expr/types.js.map +0 -1
- package/dist/lib/loop-radio-group/index.js +0 -7
- package/dist/lib/loop-radio-group/index.js.map +0 -1
- package/dist/lib/multi-part-editor/components/image-item-renderer.js +0 -57
- package/dist/lib/multi-part-editor/components/image-item-renderer.js.map +0 -1
- package/dist/lib/multi-part-editor/components/multipart-item-renderer.js +0 -25
- package/dist/lib/multi-part-editor/components/multipart-item-renderer.js.map +0 -1
- package/dist/lib/multi-part-editor/components/url-input-modal.js +0 -150
- package/dist/lib/multi-part-editor/components/url-input-modal.js.map +0 -1
- package/dist/lib/multi-part-editor/components/video-item-renderer.js +0 -57
- package/dist/lib/multi-part-editor/components/video-item-renderer.js.map +0 -1
- package/dist/lib/multi-part-editor/index.js +0 -300
- package/dist/lib/multi-part-editor/index.js.map +0 -1
- package/dist/lib/multi-part-editor/multi-part-render.js +0 -40
- package/dist/lib/multi-part-editor/multi-part-render.js.map +0 -1
- package/dist/lib/multi-part-editor/type.js +0 -25
- package/dist/lib/multi-part-editor/type.js.map +0 -1
- package/dist/lib/multi-part-editor/upload-button.js +0 -103
- package/dist/lib/multi-part-editor/upload-button.js.map +0 -1
- package/dist/lib/multi-part-editor/utils.js +0 -43
- package/dist/lib/multi-part-editor/utils.js.map +0 -1
- package/dist/lib/open-detail-button/index.js +0 -11
- package/dist/lib/open-detail-button/index.js.map +0 -1
- package/dist/lib/page-content/index.js +0 -23
- package/dist/lib/page-content/index.js.map +0 -1
- package/dist/lib/primary-page/index.js +0 -2
- package/dist/lib/primary-page/index.js.map +0 -1
- package/dist/lib/primary-page/primary-header.js +0 -4
- package/dist/lib/primary-page/primary-header.js.map +0 -1
- package/dist/lib/primary-title/index.js +0 -8
- package/dist/lib/primary-title/index.js.map +0 -1
- package/dist/lib/provider/index.js +0 -43
- package/dist/lib/provider/index.js.map +0 -1
- package/dist/lib/resizable-side-sheet/index.js +0 -32
- package/dist/lib/resizable-side-sheet/index.js.map +0 -1
- package/dist/lib/resize-sidesheet/index.js +0 -15
- package/dist/lib/resize-sidesheet/index.js.map +0 -1
- package/dist/lib/resize-sidesheet/use-drag.js +0 -30
- package/dist/lib/resize-sidesheet/use-drag.js.map +0 -1
- package/dist/lib/schema-editor/index.js +0 -5
- package/dist/lib/schema-editor/index.js.map +0 -1
- package/dist/lib/search-form/index.d.ts +0 -15
- package/dist/lib/search-form/index.js +0 -77
- package/dist/lib/search-form/index.js.map +0 -1
- package/dist/lib/semi-schema-form/components/tmpls/array-field-item.js +0 -19
- package/dist/lib/semi-schema-form/components/tmpls/array-field-item.js.map +0 -1
- package/dist/lib/semi-schema-form/components/tmpls/array-field.js +0 -39
- package/dist/lib/semi-schema-form/components/tmpls/array-field.js.map +0 -1
- package/dist/lib/semi-schema-form/components/tmpls/base-input.js +0 -32
- package/dist/lib/semi-schema-form/components/tmpls/base-input.js.map +0 -1
- package/dist/lib/semi-schema-form/components/tmpls/description-field.js +0 -13
- package/dist/lib/semi-schema-form/components/tmpls/description-field.js.map +0 -1
- package/dist/lib/semi-schema-form/components/tmpls/error-list.js +0 -14
- package/dist/lib/semi-schema-form/components/tmpls/error-list.js.map +0 -1
- package/dist/lib/semi-schema-form/components/tmpls/field-error.js +0 -16
- package/dist/lib/semi-schema-form/components/tmpls/field-error.js.map +0 -1
- package/dist/lib/semi-schema-form/components/tmpls/field.js +0 -21
- package/dist/lib/semi-schema-form/components/tmpls/field.js.map +0 -1
- package/dist/lib/semi-schema-form/components/tmpls/icon-button.js +0 -29
- package/dist/lib/semi-schema-form/components/tmpls/icon-button.js.map +0 -1
- package/dist/lib/semi-schema-form/components/tmpls/index.js +0 -31
- package/dist/lib/semi-schema-form/components/tmpls/index.js.map +0 -1
- package/dist/lib/semi-schema-form/components/tmpls/object-field.js +0 -81
- package/dist/lib/semi-schema-form/components/tmpls/object-field.js.map +0 -1
- package/dist/lib/semi-schema-form/components/tmpls/submit.js +0 -13
- package/dist/lib/semi-schema-form/components/tmpls/submit.js.map +0 -1
- package/dist/lib/semi-schema-form/components/tmpls/title-field.js +0 -12
- package/dist/lib/semi-schema-form/components/tmpls/title-field.js.map +0 -1
- package/dist/lib/semi-schema-form/components/widgets/checkbox.js +0 -26
- package/dist/lib/semi-schema-form/components/widgets/checkbox.js.map +0 -1
- package/dist/lib/semi-schema-form/components/widgets/checkboxs.js +0 -27
- package/dist/lib/semi-schema-form/components/widgets/checkboxs.js.map +0 -1
- package/dist/lib/semi-schema-form/components/widgets/index.js +0 -15
- package/dist/lib/semi-schema-form/components/widgets/index.js.map +0 -1
- package/dist/lib/semi-schema-form/components/widgets/radio.js +0 -27
- package/dist/lib/semi-schema-form/components/widgets/radio.js.map +0 -1
- package/dist/lib/semi-schema-form/components/widgets/range.js +0 -26
- package/dist/lib/semi-schema-form/components/widgets/range.js.map +0 -1
- package/dist/lib/semi-schema-form/components/widgets/select.js +0 -44
- package/dist/lib/semi-schema-form/components/widgets/select.js.map +0 -1
- package/dist/lib/semi-schema-form/components/widgets/textarea.js +0 -18
- package/dist/lib/semi-schema-form/components/widgets/textarea.js.map +0 -1
- package/dist/lib/semi-schema-form/index.js +0 -9
- package/dist/lib/semi-schema-form/index.js.map +0 -1
- package/dist/lib/sentinel-form/enum.js +0 -15
- package/dist/lib/sentinel-form/enum.js.map +0 -1
- package/dist/lib/sentinel-form/index.js +0 -289
- package/dist/lib/sentinel-form/index.js.map +0 -1
- package/dist/lib/step-nav/index.js +0 -13
- package/dist/lib/step-nav/index.js.map +0 -1
- package/dist/lib/table/index.js +0 -6
- package/dist/lib/table/index.js.map +0 -1
- package/dist/lib/table/sort-icon.js +0 -30
- package/dist/lib/table/sort-icon.js.map +0 -1
- package/dist/lib/table/table-with-pagination.js +0 -74
- package/dist/lib/table/table-with-pagination.js.map +0 -1
- package/dist/lib/table/table-without-pagniation.js +0 -37
- package/dist/lib/table/table-without-pagniation.js.map +0 -1
- package/dist/lib/table-batch-operate/table-batch-operation.js +0 -14
- package/dist/lib/table-batch-operate/table-batch-operation.js.map +0 -1
- package/dist/lib/table-batch-operate/use-batch-operate.js +0 -71
- package/dist/lib/table-batch-operate/use-batch-operate.js.map +0 -1
- package/dist/lib/table-col-actions/index.js +0 -35
- package/dist/lib/table-col-actions/index.js.map +0 -1
- package/dist/lib/table-cols-config/index.js +0 -57
- package/dist/lib/table-cols-config/index.js.map +0 -1
- package/dist/lib/table-cols-config/type.js +0 -2
- package/dist/lib/table-cols-config/type.js.map +0 -1
- package/dist/lib/table-cols-config/use-hidden-col-keys.js +0 -32
- package/dist/lib/table-cols-config/use-hidden-col-keys.js.map +0 -1
- package/dist/lib/table-cols-config/util.js +0 -39
- package/dist/lib/table-cols-config/util.js.map +0 -1
- package/dist/lib/table-empty/index.js +0 -10
- package/dist/lib/table-empty/index.js.map +0 -1
- package/dist/lib/table-header/index.js +0 -11
- package/dist/lib/table-header/index.js.map +0 -1
- package/dist/lib/tabs/index.js +0 -9
- package/dist/lib/tabs/index.js.map +0 -1
- package/dist/lib/text-area-pro/index.js +0 -10
- package/dist/lib/text-area-pro/index.js.map +0 -1
- package/dist/lib/text-with-copy/index.js +0 -24
- package/dist/lib/text-with-copy/index.js.map +0 -1
- package/dist/lib/title-with-sub/index.js +0 -6
- package/dist/lib/title-with-sub/index.js.map +0 -1
- package/dist/lib/tooltip-when-disabled/index.js +0 -9
- package/dist/lib/tooltip-when-disabled/index.js.map +0 -1
- package/dist/lib/tooltip-with-disabled/index.js +0 -9
- package/dist/lib/tooltip-with-disabled/index.js.map +0 -1
- package/dist/lib/tsconfig.build.tsbuildinfo +0 -1
- package/dist/lib/upload/index.js +0 -25
- package/dist/lib/upload/index.js.map +0 -1
- package/dist/lib/user-profile/index.js +0 -21
- package/dist/lib/user-profile/index.js.map +0 -1
- package/dist/lib/utils/basic.js +0 -29
- package/dist/lib/utils/basic.js.map +0 -1
- package/dist/lib/version-list/version-descriptions.js +0 -14
- package/dist/lib/version-list/version-descriptions.js.map +0 -1
- package/dist/lib/version-list/version-item.js +0 -6
- package/dist/lib/version-list/version-item.js.map +0 -1
- package/dist/lib/version-list/version-list.js +0 -11
- package/dist/lib/version-list/version-list.js.map +0 -1
- package/dist/lib/version-list/version-switch-panel.js +0 -10
- package/dist/lib/version-list/version-switch-panel.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/collapse-card/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AAezC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EACP,KAAK,EACL,cAAc,EACd,OAAO,EACP,eAAe,EACf,eAAe,EACf,GAAG,KAAK,EACU,EAAE,EAAE;IACtB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAExE,SAAS;IACT,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,YAAY,GAAG,CACnB,eAAK,SAAS,EAAC,0CAA0C,aACvD,eAAK,SAAS,EAAC,yBAAyB,aACrC,KAAK,EACN,KAAC,gBAAgB,IACf,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE;4BACpC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM;yBAClD,CAAC,GACF,EACD,OAAO,IACJ,EACL,KAAK,IACF,CACP,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,IAAc,EAAE,EAAE;QACtC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,eAAe,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,aACjD,KAAK,EACL,QAAQ,IACL,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,QAAQ,OACH,KAAK,EACT,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAa,CAAC,YAE1C,KAAC,QAAQ,CAAC,KAAK,IACb,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAAE;gBACrE,SAAS;aACV,CAAC,EACF,MAAM,EAAE,YAAY,EACpB,OAAO,EAAC,GAAG,EACX,SAAS,EAAE,KAAK,EAChB,KAAK,EAAE,KAAK,YAEX,QAAQ,GACM,GACR,CACZ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import cn from 'classnames';
|
|
3
|
-
import { IconCozArrowUpFill } from '@coze-arch/coze-design/icons';
|
|
4
|
-
import { Card, Typography } from '@coze-arch/coze-design';
|
|
5
|
-
import styles from './index.module.less';
|
|
6
|
-
export function CollapsibleCard({ title, children, actionBtns, className, style, isExpand, setIsExpand, hideExpand, }) {
|
|
7
|
-
return (_jsxs(Card, { className: cn(styles.card, className), style: style, bordered: false, children: [title || actionBtns ? (_jsxs("div", { className: styles['card-header'], children: [_jsxs(Typography.Text, { className: styles['card-title'], children: [title, children && !hideExpand ? (_jsx(IconCozArrowUpFill, { className: cn(styles['chevron-icon'], {
|
|
8
|
-
[styles['chevron-icon-close']]: !isExpand,
|
|
9
|
-
}), onClick: () => setIsExpand?.(!isExpand) })) : null] }), _jsx("div", { children: actionBtns })] })) : null, _jsx("div", { className: cn(styles['card-content'], {
|
|
10
|
-
[styles.active]: isExpand,
|
|
11
|
-
}), children: children })] }));
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/collapsible-card/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,MAAM,MAAM,qBAAqB,CAAC;AAazC,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,UAAU,EACV,SAAS,EACT,KAAK,EACL,QAAQ,EACR,WAAW,EACX,UAAU,GACJ;IACN,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,aACvE,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CACrB,eAAK,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,aACnC,MAAC,UAAU,CAAC,IAAI,IAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,aAC7C,KAAK,EACL,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CACzB,KAAC,kBAAkB,IACjB,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE;oCACpC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,QAAQ;iCAC1C,CAAC,EACF,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,GACvC,CACH,CAAC,CAAC,CAAC,IAAI,IACQ,EAClB,wBAAM,UAAU,GAAO,IACnB,CACP,CAAC,CAAC,CAAC,IAAI,EACR,cACE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE;oBACpC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ;iBAC1B,CAAC,YAED,QAAQ,GACL,IACD,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { isEmpty } from 'lodash-es';
|
|
2
|
-
import { safeJsonParse } from '@cozeloop/toolkit';
|
|
3
|
-
export const DATASET_COLUMN_STORAGE_KEY = 'dataset-column';
|
|
4
|
-
export const getColumnManageStorage = (storageKey) => {
|
|
5
|
-
const storage = localStorage.getItem(storageKey);
|
|
6
|
-
return safeJsonParse(storage || '{}') || {};
|
|
7
|
-
};
|
|
8
|
-
export const setColumnsManageStorage = (storageKey, columns) => {
|
|
9
|
-
if (!storageKey) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
const data = {};
|
|
13
|
-
columns.forEach((column, index) => {
|
|
14
|
-
data[column.key] = {
|
|
15
|
-
index,
|
|
16
|
-
checked: column.checked ?? true,
|
|
17
|
-
};
|
|
18
|
-
});
|
|
19
|
-
localStorage.setItem(storageKey, JSON.stringify(data));
|
|
20
|
-
};
|
|
21
|
-
export const dealColumnsWithStorage = (storageKey, columns) => {
|
|
22
|
-
const sort = getColumnManageStorage(storageKey);
|
|
23
|
-
if (!sort || isEmpty(sort)) {
|
|
24
|
-
return columns;
|
|
25
|
-
}
|
|
26
|
-
const newColumns = [...(columns || [])].sort((a, b) => {
|
|
27
|
-
const indexA = sort[a.key]?.index ?? Infinity;
|
|
28
|
-
const indexB = sort[b.key]?.index ?? Infinity;
|
|
29
|
-
// 如果两个元素都在 arrayB 中,按照 arrayB 的顺序排序
|
|
30
|
-
if (indexA !== Infinity && indexB !== Infinity) {
|
|
31
|
-
return indexA - indexB;
|
|
32
|
-
}
|
|
33
|
-
// 如果只有一个元素在 arrayB 中,将其排在前面
|
|
34
|
-
if (indexA !== Infinity) {
|
|
35
|
-
return -1;
|
|
36
|
-
}
|
|
37
|
-
if (indexB !== Infinity) {
|
|
38
|
-
return 1;
|
|
39
|
-
}
|
|
40
|
-
// 如果两个元素都不在 arrayB 中,保持原有顺序
|
|
41
|
-
return 0;
|
|
42
|
-
});
|
|
43
|
-
return newColumns.map(column => ({
|
|
44
|
-
...column,
|
|
45
|
-
checked: sort[column.key]?.checked ?? true,
|
|
46
|
-
}));
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/column-manage-storage/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,MAAM,CAAC,MAAM,0BAA0B,GAAG,gBAAgB,CAAC;AAE3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,UAAkB,EAAE,EAAE;IAC3D,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAC9C,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,UAAkB,EAClB,OAAqB,EACrB,EAAE;IACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAe,EAAE,CAAC;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;YACjB,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;SAChC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,UAAkB,EAClB,OAAqB,EACP,EAAE;IAChB,MAAM,IAAI,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,QAAQ,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,QAAQ,CAAC;QAC9C,oCAAoC;QACpC,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;QACD,4BAA4B;QAC5B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,4BAA4B;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/B,GAAG,MAAM;QACT,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI;KAC3C,CAAC,CAAC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
/* eslint-disable @coze-arch/max-line-per-function */
|
|
3
|
-
/* eslint-disable @coze-arch/no-batch-import-or-export */
|
|
4
|
-
import * as sort from 'react-sortable-hoc';
|
|
5
|
-
import { Fragment, useEffect, useMemo, useState } from 'react';
|
|
6
|
-
import { IconCozHandle, IconCozTableSetting, } from '@coze-arch/coze-design/icons';
|
|
7
|
-
import { Button, Checkbox, Dropdown, Typography, Divider, Tooltip, } from '@coze-arch/coze-design';
|
|
8
|
-
// @ts-expect-error react-sortable-hoc ts type issue
|
|
9
|
-
const { sortableContainer, sortableElement, sortableHandle } = sort;
|
|
10
|
-
const { arrayMove } = sort;
|
|
11
|
-
const SortableContainer = sortableContainer(({ children }) => (_jsx("div", { className: "max-w-[200px] w-fit rounded-[6px] py-2 px-1 max-h-[372px] overflow-y-auto flex gap-y-1 flex-col", children: children })));
|
|
12
|
-
const DragHandle = sortableHandle(() => (_jsx(IconCozHandle, { className: "cursor-grab", "aria-label": "\u62D6\u52A8\u6392\u5E8F", role: "button" })));
|
|
13
|
-
export const ColumnSelector = ({ columns, defaultColumns = columns, onChange, buttonText, resetButtonText = '重置为默认', className, sortable = true, itemRender, footerRender, }) => {
|
|
14
|
-
const [list, setList] = useState(() => [...columns]);
|
|
15
|
-
const selectedKeys = useMemo(() => list.filter(item => item.checked).map(item => item.key), [list]);
|
|
16
|
-
const disabledKeys = useMemo(() => list.filter(item => item.disabled).map(item => item.key), [list]);
|
|
17
|
-
const RenderItem = (value, slot) => {
|
|
18
|
-
const render = itemRender ? itemRender(value) : null;
|
|
19
|
-
if (render) {
|
|
20
|
-
return render;
|
|
21
|
-
}
|
|
22
|
-
return (_jsx("span", {
|
|
23
|
-
// ref={spanRef}
|
|
24
|
-
className: "group flex items-center justify-between py-1 px-2 text-[var(--coz-fg-primary)] z-[99999] select-none hover:bg-[var(--coz-mg-secondary)] rounded-[6px] cursor-pointer bg-white", style: {
|
|
25
|
-
zIndex: 99999,
|
|
26
|
-
}, children: _jsxs("div", { className: "flex items-center gap-x-2 max-w-full w-full", onClick: () => {
|
|
27
|
-
if (disabledKeys.includes(value.key ?? '') || value.disabled) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
const newKeys = selectedKeys.includes(value.key ?? '')
|
|
31
|
-
? selectedKeys.filter(key => key !== value.key)
|
|
32
|
-
: [...selectedKeys, value.key];
|
|
33
|
-
const newColumns = list.map(item => {
|
|
34
|
-
if (newKeys.includes(item.key)) {
|
|
35
|
-
return {
|
|
36
|
-
...item,
|
|
37
|
-
checked: true,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
return {
|
|
41
|
-
...item,
|
|
42
|
-
checked: false,
|
|
43
|
-
};
|
|
44
|
-
});
|
|
45
|
-
setList(newColumns);
|
|
46
|
-
onChange?.(newColumns);
|
|
47
|
-
}, children: [_jsx(Checkbox, { disabled: disabledKeys.includes(value.key ?? '') || value.disabled, checked: selectedKeys.includes(value.key ?? ''), "aria-label": `选择${value.value}` }), _jsx(Typography.Text, { ellipsis: {
|
|
48
|
-
showTooltip: {
|
|
49
|
-
opts: {
|
|
50
|
-
content: value.value,
|
|
51
|
-
theme: 'dark',
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
}, className: "text-[13px] text-[var(--coz-fg-primary)] flex-1 overflow-hidden w-full", style: {
|
|
55
|
-
color: disabledKeys.includes(value.key ?? '') || value.disabled
|
|
56
|
-
? 'var(--coz-fg-dim)'
|
|
57
|
-
: '',
|
|
58
|
-
}, children: value.value }), _jsx("div", { className: "opacity-0 group-hover:opacity-100 transition-opacity flex items-center coz-fg-secondary", children: slot })] }) }));
|
|
59
|
-
};
|
|
60
|
-
const SortableItem = sortableElement(({ value }) => RenderItem(value, _jsx(DragHandle, {})));
|
|
61
|
-
const handleSortEnd = ({ oldIndex, newIndex, }) => {
|
|
62
|
-
const newList = arrayMove(list, oldIndex, newIndex);
|
|
63
|
-
setList(newList);
|
|
64
|
-
onChange?.(newList);
|
|
65
|
-
};
|
|
66
|
-
const handleReset = () => {
|
|
67
|
-
setList(defaultColumns);
|
|
68
|
-
onChange?.(defaultColumns);
|
|
69
|
-
};
|
|
70
|
-
useEffect(() => {
|
|
71
|
-
setList(columns);
|
|
72
|
-
}, [columns]);
|
|
73
|
-
return (_jsx("div", { className: className, children: _jsx(Dropdown, { position: "bottomRight", render: _jsxs("div", { onClick: event => {
|
|
74
|
-
event.stopPropagation();
|
|
75
|
-
}, children: [_jsx(SortableContainer, { onSortEnd: handleSortEnd, useDragHandle: true, children: _jsx(_Fragment, { children: list.map((value, index) => value?.disabled || !sortable ? (_jsx(Fragment, { children: RenderItem(value) }, `item-${value.key}`)) : (_jsx(SortableItem, { index: index, value: value }, `item-${value.key}`))) }) }), _jsx(Divider, {}), footerRender ? (_jsxs("div", { className: "flex items-center", children: [footerRender(list), _jsx(Button, { color: "secondary", type: "secondary", className: "text-center flex-1", onClick: handleReset, children: _jsx("span", { className: "text-brand font-medium text-[13px]", children: resetButtonText }) })] })) : (_jsx(Button, { color: "secondary", type: "secondary", className: "w-full text-center", onClick: handleReset, children: _jsx("span", { className: "text-brand font-medium text-[13px]", children: resetButtonText }) }))] }), trigger: "click", children: _jsx("div", { children: _jsx(Tooltip, { content: "\u5217\u7BA1\u7406", theme: "dark", position: "top", children: _jsx(Button, { icon: _jsx(IconCozTableSetting, {}), type: "primary", color: "primary", className: "flex items-center justify-center", "aria-label": buttonText }) }) }) }) }));
|
|
76
|
-
};
|
|
77
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/columns-select/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import classNames from 'classnames';
|
|
3
|
-
import { IconCozPencil } from '@coze-arch/coze-design/icons';
|
|
4
|
-
export function EditIconButton({ disabled, className, onClick, ...rest }) {
|
|
5
|
-
return (_jsx(IconCozPencil, { ...rest, fontSize: 14, className: classNames('text-[var(--coz-fg-dim)]', disabled
|
|
6
|
-
? 'cursor-not-allowed'
|
|
7
|
-
: 'cursor-pointer hover:text-[rgba(var(--coze-up-brand-9))]', className), onClick: e => {
|
|
8
|
-
if (!disabled) {
|
|
9
|
-
onClick?.(e);
|
|
10
|
-
}
|
|
11
|
-
} }));
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/edit-icon-button/index.tsx"],"names":[],"mappings":";AAEA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAQ7D,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,OAAO,EACP,GAAG,IAAI,EACD;IACN,OAAO,CACL,KAAC,aAAa,OACR,IAAI,EACR,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,UAAU,CACnB,0BAA0B,EAC1B,QAAQ;YACN,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,0DAA0D,EAC9D,SAAS,CACV,EACD,OAAO,EAAE,CAAC,CAAC,EAAE;YACX,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;QACH,CAAC,GACD,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
3
|
-
import { Button } from '@coze-arch/coze-design';
|
|
4
|
-
import { useI18n } from '../provider';
|
|
5
|
-
export function FooterActions({ confirmBtnProps: { text: confirmBtnText, ...confirmBtnProps } = {}, cancelBtnProps: { text: cancelBtnText, ...cancelBtnProps } = {}, }) {
|
|
6
|
-
const I18n = useI18n();
|
|
7
|
-
return (_jsxs("div", { className: "flex justify-end", children: [_jsx(Button, { color: "primary", ...cancelBtnProps, children: cancelBtnText ?? I18n.t('global_btn_cancel') }), _jsx(Button, { className: "ml-2", ...confirmBtnProps, children: confirmBtnText ?? I18n.t('global_btn_confirm') })] }));
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/footer-actions/index.tsx"],"names":[],"mappings":";AAAA,yDAAyD;AACzD,OAAO,EAAE,MAAM,EAAoB,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AActC,MAAM,UAAU,aAAa,CAAC,EAC5B,eAAe,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,eAAe,EAAE,GAAG,EAAE,EAClE,cAAc,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GACzD;IACN,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,OAAO,CACL,eAAK,SAAS,EAAC,kBAAkB,aAC/B,KAAC,MAAM,IAAC,KAAK,EAAC,SAAS,KAAK,cAAc,YACvC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,GACtC,EACT,KAAC,MAAM,IAAC,SAAS,EAAC,MAAM,KAAK,eAAe,YACzC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,GACxC,IACL,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @coze-arch/max-line-per-function */
|
|
2
|
-
/* eslint-disable max-lines-per-function */
|
|
3
|
-
import { useMemo, useState } from 'react';
|
|
4
|
-
import { getTargetElement } from 'ahooks/lib/utils/domTarget';
|
|
5
|
-
import { useEventListener, useMemoizedFn, useRequest, useUpdateEffect, } from 'ahooks';
|
|
6
|
-
import { getClientHeight, getScrollHeight, getScrollTop, } from '@cozeloop/toolkit';
|
|
7
|
-
/**
|
|
8
|
-
* ahook的实现,在刷新列表时会出现以下两个问题
|
|
9
|
-
* 1. 发送存量数据对应的列表请求
|
|
10
|
-
* 2. 列表请求重复
|
|
11
|
-
* 因此fork ahook 实现,并将reload含义定义为刷新列表,并回到第一页
|
|
12
|
-
* @param service
|
|
13
|
-
* @param options
|
|
14
|
-
* @returns
|
|
15
|
-
*/
|
|
16
|
-
export const useInfiniteScroll = (service, options = {}) => {
|
|
17
|
-
const { target, isNoMore, threshold = 100, reloadDeps = [], manual, onBefore, onSuccess, onError, onFinally, } = options;
|
|
18
|
-
const [finalData, setFinalData] = useState();
|
|
19
|
-
const [loadingMore, setLoadingMore] = useState(false);
|
|
20
|
-
const noMore = useMemo(() => {
|
|
21
|
-
if (!isNoMore) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
return isNoMore(finalData);
|
|
25
|
-
}, [finalData]);
|
|
26
|
-
const { loading, error, run, runAsync, cancel } = useRequest(async (lastData) => {
|
|
27
|
-
const currentData = await service(lastData);
|
|
28
|
-
if (!lastData) {
|
|
29
|
-
setFinalData({
|
|
30
|
-
...currentData,
|
|
31
|
-
list: [...(currentData.list ?? [])],
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
setFinalData({
|
|
36
|
-
...currentData,
|
|
37
|
-
list: [...(lastData.list ?? []), ...currentData.list],
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
return currentData;
|
|
41
|
-
}, {
|
|
42
|
-
manual,
|
|
43
|
-
onFinally: (_, d, e) => {
|
|
44
|
-
setLoadingMore(false);
|
|
45
|
-
onFinally?.(d, e);
|
|
46
|
-
},
|
|
47
|
-
onBefore: () => onBefore?.(),
|
|
48
|
-
onSuccess: d => {
|
|
49
|
-
// setTimeout(() => {
|
|
50
|
-
// scrollMethod();
|
|
51
|
-
// });
|
|
52
|
-
onSuccess?.(d);
|
|
53
|
-
setTimeout(() => {
|
|
54
|
-
checkFirstScreen();
|
|
55
|
-
});
|
|
56
|
-
},
|
|
57
|
-
onError,
|
|
58
|
-
});
|
|
59
|
-
const loadMore = useMemoizedFn(() => {
|
|
60
|
-
if (noMore) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
setLoadingMore(true);
|
|
64
|
-
run(finalData);
|
|
65
|
-
});
|
|
66
|
-
const loadMoreAsync = useMemoizedFn(() => {
|
|
67
|
-
if (noMore) {
|
|
68
|
-
// eslint-disable-next-line prefer-promise-reject-errors
|
|
69
|
-
return Promise.reject();
|
|
70
|
-
}
|
|
71
|
-
setLoadingMore(true);
|
|
72
|
-
return runAsync(finalData);
|
|
73
|
-
});
|
|
74
|
-
const reload = () => {
|
|
75
|
-
setLoadingMore(false);
|
|
76
|
-
setFinalData(undefined);
|
|
77
|
-
return run();
|
|
78
|
-
};
|
|
79
|
-
const reloadAsync = () => {
|
|
80
|
-
setLoadingMore(false);
|
|
81
|
-
return runAsync();
|
|
82
|
-
};
|
|
83
|
-
const checkFirstScreen = () => {
|
|
84
|
-
let el = getTargetElement(target);
|
|
85
|
-
if (!el) {
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
el = el === document ? document.documentElement : el;
|
|
89
|
-
const scrollHeight = getScrollHeight(el);
|
|
90
|
-
const clientHeight = getClientHeight(el);
|
|
91
|
-
if (scrollHeight <= clientHeight) {
|
|
92
|
-
// 首屏没满,自动 loadMore
|
|
93
|
-
loadMore();
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
const scrollMethod = () => {
|
|
97
|
-
let el = getTargetElement(target);
|
|
98
|
-
if (!el) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
el = el === document ? document.documentElement : el;
|
|
102
|
-
const scrollTop = getScrollTop(el);
|
|
103
|
-
const scrollHeight = getScrollHeight(el);
|
|
104
|
-
const clientHeight = getClientHeight(el);
|
|
105
|
-
if (scrollHeight - scrollTop <= clientHeight + threshold) {
|
|
106
|
-
loadMore();
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
useEventListener('scroll', () => {
|
|
110
|
-
if (loading || loadingMore) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
scrollMethod();
|
|
114
|
-
}, { target });
|
|
115
|
-
useUpdateEffect(() => {
|
|
116
|
-
setFinalData(undefined);
|
|
117
|
-
run();
|
|
118
|
-
}, [...reloadDeps]);
|
|
119
|
-
return {
|
|
120
|
-
data: finalData,
|
|
121
|
-
loading: !loadingMore && loading,
|
|
122
|
-
error,
|
|
123
|
-
loadingMore,
|
|
124
|
-
noMore,
|
|
125
|
-
loadMore,
|
|
126
|
-
loadMoreAsync,
|
|
127
|
-
reload: useMemoizedFn(reload),
|
|
128
|
-
reloadAsync: useMemoizedFn(reloadAsync),
|
|
129
|
-
mutate: setFinalData,
|
|
130
|
-
cancel,
|
|
131
|
-
};
|
|
132
|
-
};
|
|
133
|
-
//# sourceMappingURL=use-infinite-scroll.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-infinite-scroll.js","sourceRoot":"","sources":["../../../src/hooks/use-infinite-scroll.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { useState, useRef, useCallback } from 'react';
|
|
2
|
-
import { useLatest, useMemoizedFn } from 'ahooks';
|
|
3
|
-
export const useMouseDownOffset = (callback) => {
|
|
4
|
-
const [isActive, setIsActive] = useState(false);
|
|
5
|
-
const targetRef = useRef(null);
|
|
6
|
-
const [startPosition, setStartPosition] = useState(null);
|
|
7
|
-
const callbackRef = useLatest(callback);
|
|
8
|
-
const ref = useCallback((node) => {
|
|
9
|
-
if (targetRef.current) {
|
|
10
|
-
targetRef.current.removeEventListener('mousedown', handleMouseDown);
|
|
11
|
-
}
|
|
12
|
-
targetRef.current = node; // 更新 ref
|
|
13
|
-
if (targetRef.current) {
|
|
14
|
-
targetRef.current.addEventListener('mousedown', handleMouseDown);
|
|
15
|
-
}
|
|
16
|
-
}, []);
|
|
17
|
-
const handleMouseDown = useMemoizedFn((event) => {
|
|
18
|
-
setIsActive(true);
|
|
19
|
-
setStartPosition({ offsetX: event.clientX, offsetY: event.clientY });
|
|
20
|
-
window.addEventListener('mousemove', handleMouseMove);
|
|
21
|
-
window.addEventListener('mouseup', handleMouseUp);
|
|
22
|
-
});
|
|
23
|
-
const handleMouseMove = useMemoizedFn((event) => {
|
|
24
|
-
if (startPosition) {
|
|
25
|
-
callbackRef.current({
|
|
26
|
-
offsetX: event.clientX - startPosition.offsetX,
|
|
27
|
-
offsetY: event.clientY - startPosition.offsetY,
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
const handleMouseUp = useMemoizedFn(() => {
|
|
32
|
-
setIsActive(false);
|
|
33
|
-
setStartPosition(null);
|
|
34
|
-
window.removeEventListener('mousemove', handleMouseMove);
|
|
35
|
-
window.removeEventListener('mouseup', handleMouseUp);
|
|
36
|
-
});
|
|
37
|
-
return { isActive, ref };
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=use-mouse-down-offset.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-mouse-down-offset.js","sourceRoot":"","sources":["../../../src/hooks/use-mouse-down-offset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAOlD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAkC,EAAE,EAAE;IACvE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAExC,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,IAAwB,EAAE,EAAE;QACnD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACtE,CAAC;QACD,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,SAAS;QACnC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,KAAiB,EAAE,EAAE;QAC1D,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACtD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,KAAiB,EAAE,EAAE;QAC1D,IAAI,aAAa,EAAE,CAAC;YAClB,WAAW,CAAC,OAAO,CAAC;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO;gBAC9C,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO;aAC/C,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,EAAE;QACvC,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACzD,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC3B,CAAC,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { useBlocker } from 'react-router-dom';
|
|
2
|
-
import { useEffect } from 'react';
|
|
3
|
-
import { useI18n } from '../provider';
|
|
4
|
-
/**
|
|
5
|
-
* 离开页面时的警告
|
|
6
|
-
* 触发时机:关闭浏览器、关闭浏览器标签页、刷新页面、导航回退离开等
|
|
7
|
-
*/
|
|
8
|
-
export const useUnsaveLeaveWarning = ({ block, message, }) => {
|
|
9
|
-
const i18n = useI18n();
|
|
10
|
-
const warnMessage = message || i18n.t('unsave_leave_confirm_warning') || 'Close confirm';
|
|
11
|
-
useEffect(() => {
|
|
12
|
-
const handleBeforeUnload = (event) => {
|
|
13
|
-
if (block) {
|
|
14
|
-
event.preventDefault();
|
|
15
|
-
event.returnValue = warnMessage; // 显示自定义消息(部分浏览器可能不支持)
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
// 监听浏览器关闭标签页或刷新事件
|
|
19
|
-
window.addEventListener('beforeunload', handleBeforeUnload);
|
|
20
|
-
return () => {
|
|
21
|
-
window.removeEventListener('beforeunload', handleBeforeUnload);
|
|
22
|
-
};
|
|
23
|
-
}, [block, warnMessage]);
|
|
24
|
-
// 处理 React Router 导航离开
|
|
25
|
-
useBlocker(() => {
|
|
26
|
-
if (block) {
|
|
27
|
-
// 弹出确认框
|
|
28
|
-
return !window.confirm(warnMessage);
|
|
29
|
-
}
|
|
30
|
-
return true;
|
|
31
|
-
});
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=use-unsave-leave-warning.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-unsave-leave-warning.js","sourceRoot":"","sources":["../../../src/hooks/use-unsave-leave-warning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAStC;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,KAAK,EACL,OAAO,GACiB,EAAE,EAAE;IAC5B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,WAAW,GACf,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC,IAAI,eAAe,CAAC;IAEvE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,kBAAkB,GAAG,CAAC,KAAwB,EAAE,EAAE;YACtD,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,sBAAsB;YACzD,CAAC;QACH,CAAC,CAAC;QAEF,kBAAkB;QAClB,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAE5D,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QACjE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAEzB,uBAAuB;IACvB,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ;YACR,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import cls from 'classnames';
|
|
3
|
-
export function IconButtonContainer({ icon, className, style, onClick, active, disabled, ...rest }) {
|
|
4
|
-
return (_jsx("div", { ...rest, onClick: onClick, style: style, className: cls('inline-flex items-center justify-center shrink-0 w-5 h-5 rounded-[4px] text-sm text-[var(--coz-fg-secondary)] ', active && !disabled ? 'bg-[var(--coz-mg-plus)]' : '', disabled
|
|
5
|
-
? 'cursor-not-allowed'
|
|
6
|
-
: 'cursor-pointer hover:text-[var(--coz-fg-primary)] hover:bg-[var(--coz-mg-plus)]', className), children: icon }));
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=icon-button-container.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icon-button-container.js","sourceRoot":"","sources":["../../../src/id-render/icon-button-container.tsx"],"names":[],"mappings":";AAEA,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,MAAM,UAAU,mBAAmB,CAAC,EAClC,IAAI,EACJ,SAAS,EACT,KAAK,EACL,OAAO,EACP,MAAM,EACN,QAAQ,EACR,GAAG,IAAI,EAOwB;IAC/B,OAAO,CACL,iBACM,IAAI,EACR,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,GAAG,CACZ,gHAAgH,EAChH,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EACpD,QAAQ;YACN,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,iFAAiF,EACrF,SAAS,CACV,YAEA,IAAI,GACD,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import classNames from 'classnames';
|
|
3
|
-
import { IconCozCopy } from '@coze-arch/coze-design/icons';
|
|
4
|
-
import { Toast, Tooltip } from '@coze-arch/coze-design';
|
|
5
|
-
import { IconButtonContainer } from './icon-button-container';
|
|
6
|
-
export function IDRender({ id, showSuffixLength = 5, enableCopy = true, useTag = false, defaultShowCopyBtn, }) {
|
|
7
|
-
const idString = id?.toString() ?? '';
|
|
8
|
-
const suffix = idString.slice(Math.max(idString.length - showSuffixLength, 0), idString.length);
|
|
9
|
-
return (_jsxs("div", { className: "group flex items-center gap-1", onClick: e => e.stopPropagation(), children: [_jsx(Tooltip, { content: idString, theme: "dark", children: useTag ? (_jsxs("div", { className: "shrink-0 h-5 flex items-center px-2 rounded-[3px] border border-solid border-[var(--coz-stroke-plus)] font-medium text-[var(--coz-fg-primary)]", children: ["#", suffix || '-'] })) : (_jsxs("span", { className: "shrink-0", children: ["#", suffix || '-'] })) }), enableCopy ? (_jsx(Tooltip, { content: "\u590D\u5236 ID", theme: "dark", children: _jsx("div", { children: _jsx(IconButtonContainer, { className: classNames('id-render-copy-action-button shrink-0 text-sm', defaultShowCopyBtn ? '' : ' hidden group-hover:flex'), icon: _jsx(IconCozCopy, {}), onClick: async (e) => {
|
|
10
|
-
e.stopPropagation();
|
|
11
|
-
try {
|
|
12
|
-
await navigator.clipboard.writeText(idString);
|
|
13
|
-
Toast.success('复制成功');
|
|
14
|
-
}
|
|
15
|
-
catch (error) {
|
|
16
|
-
console.error(error);
|
|
17
|
-
Toast.error('复制失败');
|
|
18
|
-
}
|
|
19
|
-
} }) }) })) : null] }));
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/id-render/index.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,UAAU,QAAQ,CAAC,EACvB,EAAE,EACF,gBAAgB,GAAG,CAAC,EACpB,UAAU,GAAG,IAAI,EACjB,MAAM,GAAG,KAAK,EACd,kBAAkB,GAOnB;IACC,MAAM,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAC3B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC,CAAC,EAC/C,QAAQ,CAAC,MAAM,CAChB,CAAC;IACF,OAAO,CACL,eACE,SAAS,EAAC,+BAA+B,EACzC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,aAEjC,KAAC,OAAO,IAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAC,MAAM,YACrC,MAAM,CAAC,CAAC,CAAC,CACR,eAAK,SAAS,EAAC,gJAAgJ,kBAC3J,MAAM,IAAI,GAAG,IACX,CACP,CAAC,CAAC,CAAC,CACF,gBAAM,SAAS,EAAC,UAAU,kBAAG,MAAM,IAAI,GAAG,IAAQ,CACnD,GACO,EACT,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,OAAO,IAAC,OAAO,EAAC,iBAAO,EAAC,KAAK,EAAC,MAAM,YACnC,wBACE,KAAC,mBAAmB,IAClB,SAAS,EAAE,UAAU,CACnB,+CAA+C,EAC/C,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,0BAA0B,CACrD,EACD,IAAI,EAAE,KAAC,WAAW,KAAG,EACrB,OAAO,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;4BACjB,CAAC,CAAC,eAAe,EAAE,CAAC;4BACpB,IAAI,CAAC;gCACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gCAC9C,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;4BACxB,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gCACrB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BACtB,CAAC;wBACH,CAAC,GACD,GACE,GACE,CACX,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { IconCozArrowLeft, IconCozArrowRight, } from '@coze-arch/coze-design/icons';
|
|
3
|
-
import { Space, Button, Tooltip } from '@coze-arch/coze-design';
|
|
4
|
-
/** 控制上一个下一个记录的控制器组件 */
|
|
5
|
-
export function IndexControllerView({ indexControllerStore, className, }) {
|
|
6
|
-
const { hasPrevious, hasNext, currentIndex, total, loading, goToPrevious, goToNext, } = indexControllerStore ?? {};
|
|
7
|
-
return (_jsxs(Space, { className: className, spacing: 4, children: [_jsx(Tooltip, { content: "\u4E0A\u4E00\u6761", theme: "dark", children: _jsx("div", { className: "flex items-center", children: _jsx(Button, { icon: _jsx(IconCozArrowLeft, {}), size: "mini", color: "primary", style: { height: 20 }, disabled: !hasPrevious || loading, onClick: goToPrevious }) }) }), _jsxs("span", { className: "text-sm text-gray-500 min-w-[64px] text-center", children: [currentIndex + 1, " / ", total] }), _jsx(Tooltip, { content: "\u4E0B\u4E00\u6761", theme: "dark", children: _jsx("div", { className: "flex items-center", children: _jsx(Button, { icon: _jsx(IconCozArrowRight, {}), size: "mini", color: "primary", style: { height: 20 }, disabled: !hasNext || loading, onClick: goToNext }) }) })] }));
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=record-navigation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"record-navigation.js","sourceRoot":"","sources":["../../../src/index-controller/record-navigation.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIhE,uBAAuB;AACvB,MAAM,UAAU,mBAAmB,CAAC,EAClC,oBAAoB,EACpB,SAAS,GAIV;IACC,MAAM,EACJ,WAAW,EACX,OAAO,EACP,YAAY,EACZ,KAAK,EACL,OAAO,EACP,YAAY,EACZ,QAAQ,GACT,GAAG,oBAAoB,IAAI,EAAE,CAAC;IAC/B,OAAO,CACL,MAAC,KAAK,IAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,aACrC,KAAC,OAAO,IAAC,OAAO,EAAC,oBAAK,EAAC,KAAK,EAAC,MAAM,YACjC,cAAK,SAAS,EAAC,mBAAmB,YAChC,KAAC,MAAM,IACL,IAAI,EAAE,KAAC,gBAAgB,KAAG,EAC1B,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,SAAS,EACf,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EACrB,QAAQ,EAAE,CAAC,WAAW,IAAI,OAAO,EACjC,OAAO,EAAE,YAAY,GACrB,GACE,GACE,EACV,gBAAM,SAAS,EAAC,gDAAgD,aAC7D,YAAY,GAAG,CAAC,SAAK,KAAK,IACtB,EACP,KAAC,OAAO,IAAC,OAAO,EAAC,oBAAK,EAAC,KAAK,EAAC,MAAM,YACjC,cAAK,SAAS,EAAC,mBAAmB,YAChC,KAAC,MAAM,IACL,IAAI,EAAE,KAAC,iBAAiB,KAAG,EAC3B,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,SAAS,EACf,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EACrB,QAAQ,EAAE,CAAC,OAAO,IAAI,OAAO,EAC7B,OAAO,EAAE,QAAQ,GACjB,GACE,GACE,IACJ,CACT,CAAC;AACJ,CAAC"}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @coze-arch/no-destructuring-use-request */
|
|
2
|
-
import { useState, useCallback, useEffect, useRef } from 'react';
|
|
3
|
-
import { useLatest, useRequest } from 'ahooks';
|
|
4
|
-
async function batchFetchRecordItems({ currentIndex = 0, batchSize, total, fetchRecordItems, }) {
|
|
5
|
-
const pageIndex = Math.floor(currentIndex / batchSize) + 1;
|
|
6
|
-
// index所在区间的前一个区间
|
|
7
|
-
const prevPromise = pageIndex > 1
|
|
8
|
-
? fetchRecordItems({
|
|
9
|
-
pageSize: batchSize,
|
|
10
|
-
pageIndex: pageIndex - 1,
|
|
11
|
-
})
|
|
12
|
-
: Promise.resolve({ list: [], total: 0 });
|
|
13
|
-
const nextPromise = typeof total !== 'number' || currentIndex + batchSize < total
|
|
14
|
-
? fetchRecordItems({
|
|
15
|
-
pageSize: batchSize,
|
|
16
|
-
pageIndex: pageIndex + 1,
|
|
17
|
-
})
|
|
18
|
-
: Promise.resolve({ list: [], total: 0 });
|
|
19
|
-
const res = await Promise.all([
|
|
20
|
-
// index所在区间的前一个区间
|
|
21
|
-
prevPromise,
|
|
22
|
-
// index所在区间
|
|
23
|
-
fetchRecordItems({
|
|
24
|
-
pageSize: batchSize,
|
|
25
|
-
pageIndex,
|
|
26
|
-
}),
|
|
27
|
-
// index所在区间的后一个区间
|
|
28
|
-
nextPromise,
|
|
29
|
-
]);
|
|
30
|
-
const allList = res.flatMap(item => item.list || []);
|
|
31
|
-
// 计算当前index所在区间的前一个区间的起始index
|
|
32
|
-
const prevStartIndex = Math.max(0, currentIndex - (currentIndex % batchSize) - batchSize);
|
|
33
|
-
const allItems = [];
|
|
34
|
-
const list = allList || [];
|
|
35
|
-
for (let i = 0; i < list.length; i++) {
|
|
36
|
-
allItems[prevStartIndex + i] = list[i];
|
|
37
|
-
}
|
|
38
|
-
return { list: allItems, total: res?.[1]?.total || 0 };
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* 索引控制器
|
|
42
|
-
* 用于在详情抽屉中实现上一条、下一条功能
|
|
43
|
-
*/
|
|
44
|
-
export function useItemIndexController({ defaultIndex, onRecordChange, fetchRecordItem, fetchRecordItems, batchSize = 50, }) {
|
|
45
|
-
const [allRecords, setAllRecords] = useState([]);
|
|
46
|
-
const [currentIndex, setCurrentIndex] = useState(defaultIndex);
|
|
47
|
-
const [total, setTotalCount] = useState(0);
|
|
48
|
-
const totalRef = useLatest(total);
|
|
49
|
-
// 上一次触发请求的index
|
|
50
|
-
const lastCurrentIndexRef = useRef(-1);
|
|
51
|
-
// 列表请求,根据 currentIndex 所在位置的前后各自获取batchSize个数量
|
|
52
|
-
const { loading: listLoading, run: updateList } = useRequest(async () => {
|
|
53
|
-
const res = await batchFetchRecordItems({
|
|
54
|
-
currentIndex,
|
|
55
|
-
total: total || undefined,
|
|
56
|
-
batchSize,
|
|
57
|
-
fetchRecordItems,
|
|
58
|
-
});
|
|
59
|
-
setTotalCount(res.total);
|
|
60
|
-
setAllRecords(res.list);
|
|
61
|
-
lastCurrentIndexRef.current = currentIndex;
|
|
62
|
-
});
|
|
63
|
-
// 详情请求
|
|
64
|
-
const { runAsync: fetchRecordItemAsync, loading: itemLoading } = useRequest(async (record) => {
|
|
65
|
-
const res = await fetchRecordItem(record);
|
|
66
|
-
return res;
|
|
67
|
-
}, { manual: true });
|
|
68
|
-
// 切换到上一条记录
|
|
69
|
-
const goToPrevious = useCallback(async () => {
|
|
70
|
-
try {
|
|
71
|
-
const record = allRecords[currentIndex - 1];
|
|
72
|
-
if (currentIndex > 0 && record) {
|
|
73
|
-
const previousRecord = await fetchRecordItemAsync(record);
|
|
74
|
-
if (previousRecord) {
|
|
75
|
-
onRecordChange?.(previousRecord);
|
|
76
|
-
setCurrentIndex(currentIndex - 1);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
catch (e) {
|
|
81
|
-
console.warn(e);
|
|
82
|
-
}
|
|
83
|
-
}, [currentIndex, fetchRecordItemAsync, allRecords, onRecordChange]);
|
|
84
|
-
// 切换到下一条记录
|
|
85
|
-
const goToNext = useCallback(async () => {
|
|
86
|
-
try {
|
|
87
|
-
const record = allRecords[currentIndex + 1];
|
|
88
|
-
if (currentIndex < totalRef.current - 1 && record) {
|
|
89
|
-
const nextRecord = await fetchRecordItemAsync(record);
|
|
90
|
-
if (nextRecord) {
|
|
91
|
-
onRecordChange?.(nextRecord);
|
|
92
|
-
setCurrentIndex(currentIndex + 1);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
catch (e) {
|
|
97
|
-
console.warn(e);
|
|
98
|
-
}
|
|
99
|
-
}, [
|
|
100
|
-
currentIndex,
|
|
101
|
-
totalRef,
|
|
102
|
-
fetchRecordItemAsync,
|
|
103
|
-
allRecords,
|
|
104
|
-
onRecordChange,
|
|
105
|
-
]);
|
|
106
|
-
useEffect(() => {
|
|
107
|
-
// fetchRecordItems 会根据 currentIndex 是否超过上次触发请求的list范围来判断是否需要触发请求
|
|
108
|
-
if (lastCurrentIndexRef.current !== -1 &&
|
|
109
|
-
Math.abs(currentIndex - lastCurrentIndexRef.current) >= batchSize) {
|
|
110
|
-
updateList();
|
|
111
|
-
}
|
|
112
|
-
}, [currentIndex]);
|
|
113
|
-
return {
|
|
114
|
-
hasPrevious: currentIndex > 0,
|
|
115
|
-
hasNext: currentIndex < total - 1,
|
|
116
|
-
currentIndex,
|
|
117
|
-
total,
|
|
118
|
-
goToPrevious,
|
|
119
|
-
goToNext,
|
|
120
|
-
loading: listLoading || itemLoading,
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=use-item-index-controller.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-item-index-controller.js","sourceRoot":"","sources":["../../../src/index-controller/use-item-index-controller.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AA2C/C,KAAK,UAAU,qBAAqB,CAAa,EAC/C,YAAY,GAAG,CAAC,EAChB,SAAS,EACT,KAAK,EACL,gBAAgB,GAMjB;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3D,kBAAkB;IAClB,MAAM,WAAW,GACf,SAAS,GAAG,CAAC;QACX,CAAC,CAAC,gBAAgB,CAAC;YACf,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,SAAS,GAAG,CAAC;SACzB,CAAC;QACJ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAE9C,MAAM,WAAW,GACf,OAAO,KAAK,KAAK,QAAQ,IAAI,YAAY,GAAG,SAAS,GAAG,KAAK;QAC3D,CAAC,CAAC,gBAAgB,CAAC;YACf,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,SAAS,GAAG,CAAC;SACzB,CAAC;QACJ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5B,kBAAkB;QAClB,WAAW;QACX,YAAY;QACZ,gBAAgB,CAAC;YACf,QAAQ,EAAE,SAAS;YACnB,SAAS;SACV,CAAC;QACF,kBAAkB;QAClB,WAAW;KACZ,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACrD,8BAA8B;IAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC7B,CAAC,EACD,YAAY,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,SAAS,CACtD,CAAC;IACF,MAAM,QAAQ,GAA+B,EAAE,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAuC,EAC3E,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,SAAS,GAAG,EAAE,GACqB;IACnC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAA6B,EAAE,CAAC,CAAC;IAC7E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC/D,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,gBAAgB;IAChB,MAAM,mBAAmB,GAAG,MAAM,CAAS,CAAC,CAAC,CAAC,CAAC;IAE/C,+CAA+C;IAC/C,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;QACtE,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC;YACtC,YAAY;YACZ,KAAK,EAAE,KAAK,IAAI,SAAS;YACzB,SAAS;YACT,gBAAgB;SACjB,CAAC,CAAC;QACH,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzB,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,mBAAmB,CAAC,OAAO,GAAG,YAAY,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,OAAO;IACP,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,UAAU,CACzE,KAAK,EAAE,MAAkB,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;IAEF,WAAW;IACX,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,YAAY,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;gBAC/B,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAC1D,IAAI,cAAc,EAAE,CAAC;oBACnB,cAAc,EAAE,CAAC,cAAc,CAAC,CAAC;oBACjC,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IAErE,WAAW;IACX,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,YAAY,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;gBAClD,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBACtD,IAAI,UAAU,EAAE,CAAC;oBACf,cAAc,EAAE,CAAC,UAAU,CAAC,CAAC;oBAC7B,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,EAAE;QACD,YAAY;QACZ,QAAQ;QACR,oBAAoB;QACpB,UAAU;QACV,cAAc;KACf,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,iEAAiE;QACjE,IACE,mBAAmB,CAAC,OAAO,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,SAAS,EACjE,CAAC;YACD,UAAU,EAAE,CAAC;QACf,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO;QACL,WAAW,EAAE,YAAY,GAAG,CAAC;QAC7B,OAAO,EAAE,YAAY,GAAG,KAAK,GAAG,CAAC;QACjC,YAAY;QACZ,KAAK;QACL,YAAY;QACZ,QAAQ;QACR,OAAO,EAAE,WAAW,IAAI,WAAW;KACpC,CAAC;AACJ,CAAC"}
|