@baishuyun/ai-design 2.0.3 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/dist/ai-design.css +68 -0
- package/dist/ai-design.js +5928 -5874
- package/dist/ai-design.js.map +1 -1
- package/dist/ai-design.umd.cjs +55 -55
- package/dist/ai-design.umd.cjs.map +1 -1
- package/dist/src/components/bs-entry-select/bs-entry-select.d.ts.map +1 -1
- package/dist/src/components/bs-entry-select/build-tree.d.ts +2 -0
- package/dist/src/components/bs-entry-select/build-tree.d.ts.map +1 -1
- package/dist/src/components/bs-entry-select/index.d.ts +2 -1
- package/dist/src/components/bs-entry-select/index.d.ts.map +1 -1
- package/dist/src/components/bs-entry-select/scroll-slider.d.ts +3 -2
- package/dist/src/components/bs-entry-select/scroll-slider.d.ts.map +1 -1
- package/dist/src/components/bs-entry-select/types.d.ts +2 -0
- package/dist/src/components/bs-entry-select/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +6 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/stories/BsEntrySelect.stories.d.ts +2 -0
- package/dist/src/stories/BsEntrySelect.stories.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/components/bs-entry-select/bs-entry-select.tsx +7 -1
- package/src/components/bs-entry-select/build-tree.ts +70 -3
- package/src/components/bs-entry-select/index.ts +6 -1
- package/src/components/bs-entry-select/scroll-slider.tsx +62 -15
- package/src/components/bs-entry-select/types.ts +3 -0
- package/src/index.ts +28 -6
- package/src/stories/BsEntrySelect.stories.tsx +29 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bs-entry-select.d.ts","sourceRoot":"","sources":["../../../../src/components/bs-entry-select/bs-entry-select.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAG7E,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,CAAC;AAE9D,eAAO,MAAM,aAAa,+
|
|
1
|
+
{"version":3,"file":"bs-entry-select.d.ts","sourceRoot":"","sources":["../../../../src/components/bs-entry-select/bs-entry-select.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAG7E,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,CAAC;AAE9D,eAAO,MAAM,aAAa,+GAmQzB,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { IAppDetail, IEntryDetail } from '@baishuyun/types';
|
|
2
2
|
import { EntryTreeItem, BsEntrySelectChangeResult } from './types';
|
|
3
|
+
import { FormSelectItem } from '../agent-helper/form-select';
|
|
3
4
|
export declare const DEPTH_PADDING: Record<number, string>;
|
|
4
5
|
export declare function getDepthPadding(depth: number): string;
|
|
5
6
|
export declare function getEntryIconClass(entry: IEntryDetail): string;
|
|
6
7
|
export declare function buildEntryTreeFromAliasMap(appDetail: IAppDetail, searchQuery: string): EntryTreeItem[];
|
|
8
|
+
export declare const getEntries: (appDetail: IAppDetail) => FormSelectItem[];
|
|
7
9
|
export declare function filterTreeBySearch(nodes: EntryTreeItem[], searchQuery: string): EntryTreeItem[];
|
|
8
10
|
export declare function findSelected(appDetails: Record<string, IAppDetail>, entryId: string, currentAppId?: string): BsEntrySelectChangeResult | null;
|
|
9
11
|
//# sourceMappingURL=build-tree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-tree.d.ts","sourceRoot":"","sources":["../../../../src/components/bs-entry-select/build-tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAmB,YAAY,
|
|
1
|
+
{"version":3,"file":"build-tree.d.ts","sourceRoot":"","sources":["../../../../src/components/bs-entry-select/build-tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAmB,YAAY,EAAa,MAAM,kBAAkB,CAAC;AAC7F,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOhD,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAI7D;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,MAAM,GAClB,aAAa,EAAE,CAuFjB;AA8CD,eAAO,MAAM,UAAU,GAAI,WAAW,UAAU,KAAG,cAAc,EAgBhE,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,EAAE,CAoB/F;AAED,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACtC,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,yBAAyB,GAAG,IAAI,CAWlC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { BsEntrySelect } from './bs-entry-select';
|
|
2
|
-
export type { BsEntrySelectProps, BsEntrySelectChangeResult } from './types';
|
|
2
|
+
export type { BsEntrySelectProps, BsEntrySelectChangeResult, BsEntrySelectSliderVariant, } from './types';
|
|
3
|
+
export { buildEntryTreeFromAliasMap, getEntries } from './build-tree';
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/bs-entry-select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/bs-entry-select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { IAppDetail } from '@baishuyun/types';
|
|
2
|
-
import { BsEntrySelectChangeResult } from './types';
|
|
3
|
-
export declare function ScrollSlider({ appDetails, currentAppId, selectedEntryId, onSelect, onOverflowChange, showCurrentAppEntriesOnly, }: {
|
|
2
|
+
import { BsEntrySelectChangeResult, BsEntrySelectSliderVariant } from './types';
|
|
3
|
+
export declare function ScrollSlider({ appDetails, currentAppId, selectedEntryId, onSelect, onOverflowChange, showCurrentAppEntriesOnly, variant, }: {
|
|
4
4
|
appDetails: Record<string, IAppDetail>;
|
|
5
5
|
currentAppId?: string;
|
|
6
6
|
selectedEntryId?: string;
|
|
7
7
|
onSelect: (result: BsEntrySelectChangeResult) => void;
|
|
8
8
|
onOverflowChange?: (hasOverflow: boolean) => void;
|
|
9
9
|
showCurrentAppEntriesOnly?: boolean;
|
|
10
|
+
variant?: BsEntrySelectSliderVariant;
|
|
10
11
|
}): import("react").JSX.Element | null;
|
|
11
12
|
//# sourceMappingURL=scroll-slider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-slider.d.ts","sourceRoot":"","sources":["../../../../src/components/bs-entry-select/scroll-slider.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"scroll-slider.d.ts","sourceRoot":"","sources":["../../../../src/components/bs-entry-select/scroll-slider.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAEV,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAYjB,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,yBAAiC,EACjC,OAAmB,GACpB,EAAE;IACD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACtD,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC,sCAucA"}
|
|
@@ -4,6 +4,7 @@ export interface BsEntrySelectChangeResult {
|
|
|
4
4
|
appId: string;
|
|
5
5
|
section: 'current' | 'other';
|
|
6
6
|
}
|
|
7
|
+
export type BsEntrySelectSliderVariant = 'default' | 'tabs';
|
|
7
8
|
export interface BsEntrySelectProps {
|
|
8
9
|
appDetails: Record<string, IAppDetail>;
|
|
9
10
|
currentAppId?: string;
|
|
@@ -15,6 +16,7 @@ export interface BsEntrySelectProps {
|
|
|
15
16
|
className?: string;
|
|
16
17
|
showSlider?: boolean;
|
|
17
18
|
showCurrentAppEntriesOnly?: boolean;
|
|
19
|
+
sliderVariant?: BsEntrySelectSliderVariant;
|
|
18
20
|
}
|
|
19
21
|
export interface EntryTreeItem {
|
|
20
22
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/bs-entry-select/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEjE,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/bs-entry-select/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEjE,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;CAC9B;AAED,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,aAAa,CAAC,EAAE,0BAA0B,CAAC;CAC5C;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;CAC5B"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -25,8 +25,8 @@ export { AttachmentPart } from './components/attachment-part';
|
|
|
25
25
|
export type { FilePart } from './components/attachment-part';
|
|
26
26
|
export { AttachmentsPreviewer } from './components/attachments-previewer';
|
|
27
27
|
export { BaseButton } from './components/base-button';
|
|
28
|
-
export { BsEntrySelect } from './components/bs-entry-select';
|
|
29
|
-
export type { BsEntrySelectProps, BsEntrySelectChangeResult } from './components/bs-entry-select';
|
|
28
|
+
export { BsEntrySelect, buildEntryTreeFromAliasMap, getEntries, } from './components/bs-entry-select';
|
|
29
|
+
export type { BsEntrySelectProps, BsEntrySelectChangeResult, BsEntrySelectSliderVariant, } from './components/bs-entry-select';
|
|
30
30
|
export { BorderAnimation } from './components/border-animation';
|
|
31
31
|
export { BorderColorAnimation } from './components/border-color-animation';
|
|
32
32
|
export { BotAvatarAndName } from './components/bot-avatar-name';
|
|
@@ -54,7 +54,7 @@ export { AgentSortSelect } from './components/agent-helper/agent-sort-select';
|
|
|
54
54
|
export type { AgentSortSelectProps, SortOrder } from './components/agent-helper/agent-sort-select';
|
|
55
55
|
export type { ITriggerSelectProps, TriggerCardConfig, } from './components/agent-helper/trigger-select';
|
|
56
56
|
export { FormSelect } from './components/agent-helper/form-select';
|
|
57
|
-
export { AppSelect, groupsToAppTreeNodes, ALL_APPS_VALUE } from './components/agent-helper/app-select';
|
|
57
|
+
export { AppSelect, groupsToAppTreeNodes, ALL_APPS_VALUE, } from './components/agent-helper/app-select';
|
|
58
58
|
export type { AppSelectProps } from './components/agent-helper/app-select';
|
|
59
59
|
export type { FormSelectProps, FormSelectItem, FormSelectChangeResult, } from './components/agent-helper/form-select';
|
|
60
60
|
export { FormActionTriggerSelect } from './components/agent-helper/form-action-trigger-select';
|
|
@@ -67,13 +67,13 @@ export { TriggerTimePreferenceSelect } from './components/agent-helper/trigger-t
|
|
|
67
67
|
export type { TriggerTimePreferenceSelectProps } from './components/agent-helper/trigger-time-preference-select';
|
|
68
68
|
export { OffsetPreferenceSelect } from './components/agent-helper/offset-preference-select';
|
|
69
69
|
export type { OffsetPreferenceSelectProps } from './components/agent-helper/offset-preference-select';
|
|
70
|
-
export { RepeatPreferenceTypeSelect, RepeatPreferenceTypeOptions } from './components/agent-helper/repeat-preference-type-select';
|
|
70
|
+
export { RepeatPreferenceTypeSelect, RepeatPreferenceTypeOptions, } from './components/agent-helper/repeat-preference-type-select';
|
|
71
71
|
export type { RepeatPreferenceTypeOption, RepeatPreferenceTypeSelectProps, } from './components/agent-helper/repeat-preference-type-select';
|
|
72
72
|
export { WeekdaysSelect, WeekdaysOptions } from './components/agent-helper/weekdays-select';
|
|
73
73
|
export type { WeekdaysOption, WeekdaysSelectProps, } from './components/agent-helper/weekdays-select';
|
|
74
74
|
export { MonthdaysSelect, MonthdaysOptions } from './components/agent-helper/monthdays-select';
|
|
75
75
|
export type { MonthdaysOption, MonthdaysSelectProps, } from './components/agent-helper/monthdays-select';
|
|
76
|
-
export { RepeatByTypeSelect, RepeatByTypeOptions } from './components/agent-helper/repeat-by-type-select';
|
|
76
|
+
export { RepeatByTypeSelect, RepeatByTypeOptions, } from './components/agent-helper/repeat-by-type-select';
|
|
77
77
|
export type { RepeatByTypeOption, RepeatByTypeSelectProps, } from './components/agent-helper/repeat-by-type-select';
|
|
78
78
|
export { RepeatPreferenceSelect } from './components/agent-helper/repeat-preference-select';
|
|
79
79
|
export type { RepeatPreferenceSelectProps } from './components/agent-helper/repeat-preference-select';
|
|
@@ -147,7 +147,7 @@ export { DataTable } from './components/agent-helper/table';
|
|
|
147
147
|
export * from './components/agent-helper/table';
|
|
148
148
|
export type { DataTableProps } from './components/agent-helper/table';
|
|
149
149
|
export { DatePicker, DateInput } from './components/agent-helper/date-picker';
|
|
150
|
-
export type { DatePickerProps, DateInputProps, DateFormat } from './components/agent-helper/date-picker';
|
|
150
|
+
export type { DatePickerProps, DateInputProps, DateFormat, } from './components/agent-helper/date-picker';
|
|
151
151
|
export { DateRangePicker } from './components/date-range-picker';
|
|
152
152
|
export type { DateRangePickerProps } from './components/date-range-picker';
|
|
153
153
|
export { ExecLogFilter } from './components/agent-helper/exec-log-filter';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAG5F,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EACL,QAAQ,EACR,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,YAAY,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,4 +15,6 @@ export declare const ScrollOverflow: Story;
|
|
|
15
15
|
export declare const NoOverflow: Story;
|
|
16
16
|
export declare const OnlyCurrentApp: Story;
|
|
17
17
|
export declare const OnlyCurrentAppEntries: Story;
|
|
18
|
+
export declare const TabsVariant: Story;
|
|
19
|
+
export declare const TabsVariantOverflow: Story;
|
|
18
20
|
//# sourceMappingURL=BsEntrySelect.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BsEntrySelect.stories.d.ts","sourceRoot":"","sources":["../../../src/stories/BsEntrySelect.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AA0I9D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,aAAa,CAgBpC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAYlB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAQtB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KA0CzB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAW5B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAS5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KAQnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"BsEntrySelect.stories.d.ts","sourceRoot":"","sources":["../../../src/stories/BsEntrySelect.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AA0I9D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,aAAa,CAgBpC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAYlB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAQtB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KA0CzB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAW5B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAS5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KAQnC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAazB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAYjC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@baishuyun/ai-design",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.5",
|
|
4
4
|
"description": "AI 功能 UI 组件库 - 所有 AI 功能的 UI 表现唯一真相来源",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
"tw-animate-css": "^1.4.0",
|
|
61
61
|
"vaul": "^1.1.2",
|
|
62
62
|
"zod": "^4.1.13",
|
|
63
|
-
"@baishuyun/ai-feat-utils": "2.0.
|
|
64
|
-
"@baishuyun/types": "3.0.
|
|
63
|
+
"@baishuyun/ai-feat-utils": "2.0.5",
|
|
64
|
+
"@baishuyun/types": "3.0.5"
|
|
65
65
|
},
|
|
66
66
|
"peerDependencies": {
|
|
67
67
|
"react": "^19.0.0",
|
|
@@ -83,9 +83,9 @@
|
|
|
83
83
|
"typescript": "^5.5.0",
|
|
84
84
|
"vite": "^5.1.4",
|
|
85
85
|
"vite-plugin-dts": "^4.5.4",
|
|
86
|
-
"@baishuyun/tailwind-config": "3.0.
|
|
87
|
-
"@baishuyun/types": "3.0.
|
|
88
|
-
"@baishuyun/typescript-config": "2.0.
|
|
86
|
+
"@baishuyun/tailwind-config": "3.0.5",
|
|
87
|
+
"@baishuyun/types": "3.0.5",
|
|
88
|
+
"@baishuyun/typescript-config": "2.0.5"
|
|
89
89
|
},
|
|
90
90
|
"keywords": [],
|
|
91
91
|
"author": "",
|
|
@@ -30,6 +30,7 @@ export const BsEntrySelect = forwardRef<HTMLDivElement, BsEntrySelectProps>(
|
|
|
30
30
|
className,
|
|
31
31
|
showSlider = true,
|
|
32
32
|
showCurrentAppEntriesOnly = false,
|
|
33
|
+
sliderVariant = 'default',
|
|
33
34
|
},
|
|
34
35
|
ref,
|
|
35
36
|
) => {
|
|
@@ -181,8 +182,12 @@ export const BsEntrySelect = forwardRef<HTMLDivElement, BsEntrySelectProps>(
|
|
|
181
182
|
|
|
182
183
|
const hasSearch = searchQuery.trim().length > 0;
|
|
183
184
|
|
|
185
|
+
const isTabMode = sliderVariant === 'tabs';
|
|
186
|
+
|
|
187
|
+
const tabCls = isTabMode ? "h-full" : ""
|
|
188
|
+
|
|
184
189
|
return (
|
|
185
|
-
<div ref={ref} className={cn('relative inline-flex items-center gap-[10px] min-w-0', className)}>
|
|
190
|
+
<div ref={ref} className={cn('relative inline-flex items-center gap-[10px] min-w-0', tabCls ,className)}>
|
|
186
191
|
{/* Scroll slider — greedy width */}
|
|
187
192
|
{showSlider && (
|
|
188
193
|
<ScrollSlider
|
|
@@ -192,6 +197,7 @@ export const BsEntrySelect = forwardRef<HTMLDivElement, BsEntrySelectProps>(
|
|
|
192
197
|
onSelect={handleSelect}
|
|
193
198
|
onOverflowChange={handleOverflowChange}
|
|
194
199
|
showCurrentAppEntriesOnly={showCurrentAppEntriesOnly}
|
|
200
|
+
variant={sliderVariant}
|
|
195
201
|
/>
|
|
196
202
|
)}
|
|
197
203
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { IAppDetail, IEntryAliasItem, IEntryDetail } from '@baishuyun/types';
|
|
1
|
+
import type { IAppDetail, IEntryAliasItem, IEntryDetail, IEntryRef } from '@baishuyun/types';
|
|
2
2
|
import type { EntryTreeItem, BsEntrySelectChangeResult } from './types';
|
|
3
|
+
import { FormSelectItem } from '../agent-helper/form-select';
|
|
3
4
|
|
|
4
5
|
export const DEPTH_PADDING: Record<number, string> = {
|
|
5
6
|
0: 'pl-[10px]',
|
|
@@ -24,14 +25,18 @@ export function buildEntryTreeFromAliasMap(
|
|
|
24
25
|
appDetail: IAppDetail,
|
|
25
26
|
searchQuery: string
|
|
26
27
|
): EntryTreeItem[] {
|
|
27
|
-
const { entryIdAliasMap: originMap, entryMap } = appDetail;
|
|
28
|
+
const { entryIdAliasMap: originMap, entryMap, entryList } = appDetail;
|
|
29
|
+
|
|
30
|
+
const formIdWhiteList = new Set(flattenEntryList(entryList).map((e) => e.id));
|
|
28
31
|
|
|
29
32
|
const entryIdAliasMap: Record<string, IEntryAliasItem> = {
|
|
30
33
|
// ...originMap,
|
|
31
34
|
};
|
|
32
35
|
|
|
33
36
|
for (const [_, v] of Object.entries(originMap ?? {})) {
|
|
34
|
-
|
|
37
|
+
if (formIdWhiteList.has(v.formId)) {
|
|
38
|
+
entryIdAliasMap[v.formId as string] = v;
|
|
39
|
+
}
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
const aliasKeys = Object.keys(entryIdAliasMap);
|
|
@@ -108,6 +113,68 @@ export function buildEntryTreeFromAliasMap(
|
|
|
108
113
|
return result;
|
|
109
114
|
}
|
|
110
115
|
|
|
116
|
+
const flattenFormEntries = (entries: IEntryDetail[]): FormSelectItem[] => {
|
|
117
|
+
const result: FormSelectItem[] = [];
|
|
118
|
+
for (const entry of entries) {
|
|
119
|
+
result.push({
|
|
120
|
+
id: entry.entryId,
|
|
121
|
+
name: entry?.name || entry.entryId,
|
|
122
|
+
icon: entry?.icon || 0,
|
|
123
|
+
type: entry.type,
|
|
124
|
+
parent: entry.parent || undefined,
|
|
125
|
+
itemType: entry.type === 'group' ? 'group' : 'form',
|
|
126
|
+
});
|
|
127
|
+
if (entry.child?.length) {
|
|
128
|
+
for (const child of flattenFormEntries(entry.child)) {
|
|
129
|
+
result.push({ ...child, parent: entry.entryId });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return result;
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
interface IEntryItem {
|
|
137
|
+
id: string;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
const flattenEntryList = (entryList: IEntryRef[]): Array<IEntryItem> => {
|
|
141
|
+
const items: IEntryItem[] = [];
|
|
142
|
+
|
|
143
|
+
for (const entry of entryList) {
|
|
144
|
+
items.push({
|
|
145
|
+
id: entry.id,
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
if (entry.child?.length) {
|
|
149
|
+
for (const c of flattenEntryList(entry.child)) {
|
|
150
|
+
items.push({
|
|
151
|
+
id: c.id,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return items;
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
export const getEntries = (appDetail: IAppDetail): FormSelectItem[] => {
|
|
161
|
+
const { entryIdAliasMap, entryMap, entryList } = appDetail;
|
|
162
|
+
const whiteList = new Set(flattenEntryList(entryList).map((e) => e.id));
|
|
163
|
+
const aliasKeys = Object.keys(entryIdAliasMap).filter((k) => whiteList.has(k));
|
|
164
|
+
|
|
165
|
+
if (aliasKeys.length === 0) {
|
|
166
|
+
return [];
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const entries = aliasKeys
|
|
170
|
+
.map((id) => {
|
|
171
|
+
return entryMap[id] as IEntryDetail;
|
|
172
|
+
})
|
|
173
|
+
.filter(Boolean);
|
|
174
|
+
|
|
175
|
+
return flattenFormEntries(entries);
|
|
176
|
+
};
|
|
177
|
+
|
|
111
178
|
export function filterTreeBySearch(nodes: EntryTreeItem[], searchQuery: string): EntryTreeItem[] {
|
|
112
179
|
const lowerQuery = searchQuery.toLowerCase().trim();
|
|
113
180
|
if (!lowerQuery) return nodes;
|
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
export { BsEntrySelect } from './bs-entry-select';
|
|
2
|
-
export type {
|
|
2
|
+
export type {
|
|
3
|
+
BsEntrySelectProps,
|
|
4
|
+
BsEntrySelectChangeResult,
|
|
5
|
+
BsEntrySelectSliderVariant,
|
|
6
|
+
} from './types';
|
|
7
|
+
export { buildEntryTreeFromAliasMap, getEntries } from './build-tree';
|
|
@@ -18,7 +18,12 @@ import {
|
|
|
18
18
|
import { SearchInput } from './search-input';
|
|
19
19
|
import { TreeItemNode } from './tree-item-node';
|
|
20
20
|
import type { IAppDetail } from '@baishuyun/types';
|
|
21
|
-
import type {
|
|
21
|
+
import type {
|
|
22
|
+
EntryTreeItem,
|
|
23
|
+
BsEntrySelectChangeResult,
|
|
24
|
+
BsEntrySelectSliderVariant,
|
|
25
|
+
} from './types';
|
|
26
|
+
import classNames from 'classnames';
|
|
22
27
|
|
|
23
28
|
const ChevronRightIcon = ({ size }: { size?: number }) => (
|
|
24
29
|
<SolidArrowDownIcon className="-rotate-90" size={size} />
|
|
@@ -37,6 +42,7 @@ export function ScrollSlider({
|
|
|
37
42
|
onSelect,
|
|
38
43
|
onOverflowChange,
|
|
39
44
|
showCurrentAppEntriesOnly = false,
|
|
45
|
+
variant = 'default',
|
|
40
46
|
}: {
|
|
41
47
|
appDetails: Record<string, IAppDetail>;
|
|
42
48
|
currentAppId?: string;
|
|
@@ -44,6 +50,7 @@ export function ScrollSlider({
|
|
|
44
50
|
onSelect: (result: BsEntrySelectChangeResult) => void;
|
|
45
51
|
onOverflowChange?: (hasOverflow: boolean) => void;
|
|
46
52
|
showCurrentAppEntriesOnly?: boolean;
|
|
53
|
+
variant?: BsEntrySelectSliderVariant;
|
|
47
54
|
}) {
|
|
48
55
|
const scrollRef = useRef<HTMLDivElement>(null);
|
|
49
56
|
const [canScrollLeft, setCanScrollLeft] = useState(false);
|
|
@@ -57,6 +64,8 @@ export function ScrollSlider({
|
|
|
57
64
|
const groupPillRefs = useRef<Map<string, HTMLButtonElement>>(new Map());
|
|
58
65
|
const [groupPortalContainer, setGroupPortalContainer] = useState<HTMLElement | null>(null);
|
|
59
66
|
|
|
67
|
+
const isTabs = variant === 'tabs';
|
|
68
|
+
|
|
60
69
|
// Build first-level nodes from all apps (no search filter)
|
|
61
70
|
const flatNodes = useMemo<FlatNode[]>(() => {
|
|
62
71
|
const appIds = Object.keys(appDetails);
|
|
@@ -287,13 +296,13 @@ export function ScrollSlider({
|
|
|
287
296
|
|
|
288
297
|
const hasGroupSearch = groupSearchQuery.trim().length > 0;
|
|
289
298
|
|
|
290
|
-
|
|
291
|
-
|
|
299
|
+
const sliderBody = (
|
|
300
|
+
<>
|
|
292
301
|
{/* Left arrow: always in DOM, width transition */}
|
|
293
302
|
<span
|
|
294
303
|
className={cn(
|
|
295
304
|
transCls,
|
|
296
|
-
'inline-flex overflow-hidden',
|
|
305
|
+
'inline-flex overflow-hidden items-center',
|
|
297
306
|
canScrollLeft ? 'w-[26px] opacity-100 mr-2.5' : 'w-0 opacity-0 mr-0',
|
|
298
307
|
)}
|
|
299
308
|
>
|
|
@@ -306,13 +315,19 @@ export function ScrollSlider({
|
|
|
306
315
|
|
|
307
316
|
<div
|
|
308
317
|
ref={scrollRef}
|
|
309
|
-
className=
|
|
318
|
+
className={cn(
|
|
319
|
+
'flex-1 overflow-x-auto scrollbar-hide flex min-w-0',
|
|
320
|
+
isTabs
|
|
321
|
+
? 'items-end gap-0 overflow-y-hidden border-b-[#e0e0e0] before:content-[""] before:absolute before:bottom-[0px] before:left-[-200px] before:right-0 before:h-[1px] before:w-[100vw] before:bg-[#e0e0e0]'
|
|
322
|
+
: 'items-center gap-2.5',
|
|
323
|
+
)}
|
|
310
324
|
>
|
|
311
325
|
{flatNodes.map((flatNode) => {
|
|
312
326
|
const { node, appId, section } = flatNode;
|
|
313
327
|
const isLeaf = node.isSelectable;
|
|
314
328
|
const isSelected = isLeaf && selectedEntryId === node.id;
|
|
315
|
-
const isGroupActive = activeGroup?.node.id === node.id
|
|
329
|
+
const isGroupActive = activeGroup?.node.id === node.id
|
|
330
|
+
|| node?.children.findIndex(c => c.id === selectedEntryId) >= 0;
|
|
316
331
|
|
|
317
332
|
const setPillRef = (el: HTMLButtonElement | null) => {
|
|
318
333
|
if (el) {
|
|
@@ -335,11 +350,20 @@ export function ScrollSlider({
|
|
|
335
350
|
}}
|
|
336
351
|
className={cn(
|
|
337
352
|
'flex items-center gap-[6px] shrink-0 max-w-[240px]',
|
|
338
|
-
'px-[10px] py-[7px] rounded-[4px]',
|
|
339
353
|
transCls,
|
|
340
|
-
|
|
341
|
-
?
|
|
342
|
-
|
|
354
|
+
isTabs
|
|
355
|
+
? [
|
|
356
|
+
'px-[16px] py-[8px] relative z-10 border-b-none',
|
|
357
|
+
isSelected
|
|
358
|
+
? 'border-r border-t border-l border-[#e0e0e0] bg-[#f6f7fa] text-[#0265FF] rounded-t-[8px] rounded-b-none '
|
|
359
|
+
: 'text-[#030303] hover:bg-[#F0F6FF] rounded-t-[8px]',
|
|
360
|
+
]
|
|
361
|
+
: [
|
|
362
|
+
'px-[10px] py-[7px] rounded-[4px]',
|
|
363
|
+
isSelected
|
|
364
|
+
? 'border border-[#F0F6FF] bg-[#F0F6FF] text-[#0265FF]'
|
|
365
|
+
: 'border border-[#E0E0E0] text-[#030303] hover:bg-[#F0F6FF]',
|
|
366
|
+
],
|
|
343
367
|
)}
|
|
344
368
|
>
|
|
345
369
|
<i
|
|
@@ -367,11 +391,20 @@ export function ScrollSlider({
|
|
|
367
391
|
onClick={(e) => openGroupPopover(flatNode, e)}
|
|
368
392
|
className={cn(
|
|
369
393
|
'flex items-center gap-[10px] shrink-0 max-w-[240px]',
|
|
370
|
-
'px-[10px] py-[7px] rounded-[4px]',
|
|
371
394
|
transCls,
|
|
372
|
-
|
|
373
|
-
?
|
|
374
|
-
|
|
395
|
+
isTabs
|
|
396
|
+
? [
|
|
397
|
+
'px-[16px] py-[8px] relative z-10',
|
|
398
|
+
isGroupActive
|
|
399
|
+
? 'border-r border-t border-l border-[#e0e0e0] bg-[#f6f7fa] text-[#0265FF] rounded-t-[8px] rounded-b-none '
|
|
400
|
+
: 'text-[#030303] hover:bg-[#F0F6FF] rounded-t-[8px]',
|
|
401
|
+
]
|
|
402
|
+
: [
|
|
403
|
+
'px-[10px] py-[7px] rounded-[4px]',
|
|
404
|
+
isGroupActive
|
|
405
|
+
? 'border border-[#0265FF] text-[#030303]'
|
|
406
|
+
: 'border border-[#E0E0E0] text-[#030303] hover:bg-[#F0F6FF]',
|
|
407
|
+
],
|
|
375
408
|
)}
|
|
376
409
|
>
|
|
377
410
|
<span className="flex items-center gap-[6px] min-w-0 flex-1">
|
|
@@ -401,7 +434,7 @@ export function ScrollSlider({
|
|
|
401
434
|
<span
|
|
402
435
|
className={cn(
|
|
403
436
|
transCls,
|
|
404
|
-
'inline-flex overflow-hidden',
|
|
437
|
+
'inline-flex overflow-hidden items-center',
|
|
405
438
|
canScrollRight ? 'w-[26px] opacity-100 ml-2.5' : 'w-0 opacity-0 ml-0',
|
|
406
439
|
)}
|
|
407
440
|
>
|
|
@@ -415,6 +448,20 @@ export function ScrollSlider({
|
|
|
415
448
|
onClick={() => scroll('right')}
|
|
416
449
|
/>
|
|
417
450
|
</span>
|
|
451
|
+
</>
|
|
452
|
+
);
|
|
453
|
+
|
|
454
|
+
const tabCls = isTabs ? 'h-full px-[10px] items-end' : "items-center"
|
|
455
|
+
|
|
456
|
+
return (
|
|
457
|
+
<div className={classNames("flex flex-1 min-w-0", tabCls)}>
|
|
458
|
+
{isTabs ? (
|
|
459
|
+
<div className="relative flex items-stretch flex-1 min-w-0">
|
|
460
|
+
{sliderBody}
|
|
461
|
+
</div>
|
|
462
|
+
) : (
|
|
463
|
+
sliderBody
|
|
464
|
+
)}
|
|
418
465
|
|
|
419
466
|
{/* Group subtree popover */}
|
|
420
467
|
{activeGroup &&
|
|
@@ -6,6 +6,8 @@ export interface BsEntrySelectChangeResult {
|
|
|
6
6
|
section: 'current' | 'other';
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
+
export type BsEntrySelectSliderVariant = 'default' | 'tabs';
|
|
10
|
+
|
|
9
11
|
export interface BsEntrySelectProps {
|
|
10
12
|
appDetails: Record<string, IAppDetail>;
|
|
11
13
|
currentAppId?: string;
|
|
@@ -17,6 +19,7 @@ export interface BsEntrySelectProps {
|
|
|
17
19
|
className?: string;
|
|
18
20
|
showSlider?: boolean;
|
|
19
21
|
showCurrentAppEntriesOnly?: boolean;
|
|
22
|
+
sliderVariant?: BsEntrySelectSliderVariant;
|
|
20
23
|
}
|
|
21
24
|
|
|
22
25
|
export interface EntryTreeItem {
|
package/src/index.ts
CHANGED
|
@@ -46,8 +46,16 @@ export { AttachmentPart } from './components/attachment-part';
|
|
|
46
46
|
export type { FilePart } from './components/attachment-part';
|
|
47
47
|
export { AttachmentsPreviewer } from './components/attachments-previewer';
|
|
48
48
|
export { BaseButton } from './components/base-button';
|
|
49
|
-
export {
|
|
50
|
-
|
|
49
|
+
export {
|
|
50
|
+
BsEntrySelect,
|
|
51
|
+
buildEntryTreeFromAliasMap,
|
|
52
|
+
getEntries,
|
|
53
|
+
} from './components/bs-entry-select';
|
|
54
|
+
export type {
|
|
55
|
+
BsEntrySelectProps,
|
|
56
|
+
BsEntrySelectChangeResult,
|
|
57
|
+
BsEntrySelectSliderVariant,
|
|
58
|
+
} from './components/bs-entry-select';
|
|
51
59
|
export { BorderAnimation } from './components/border-animation';
|
|
52
60
|
export { BorderColorAnimation } from './components/border-color-animation';
|
|
53
61
|
export { BotAvatarAndName } from './components/bot-avatar-name';
|
|
@@ -78,7 +86,11 @@ export type {
|
|
|
78
86
|
TriggerCardConfig,
|
|
79
87
|
} from './components/agent-helper/trigger-select';
|
|
80
88
|
export { FormSelect } from './components/agent-helper/form-select';
|
|
81
|
-
export {
|
|
89
|
+
export {
|
|
90
|
+
AppSelect,
|
|
91
|
+
groupsToAppTreeNodes,
|
|
92
|
+
ALL_APPS_VALUE,
|
|
93
|
+
} from './components/agent-helper/app-select';
|
|
82
94
|
export type { AppSelectProps } from './components/agent-helper/app-select';
|
|
83
95
|
export type {
|
|
84
96
|
FormSelectProps,
|
|
@@ -98,7 +110,10 @@ export { TriggerTimePreferenceSelect } from './components/agent-helper/trigger-t
|
|
|
98
110
|
export type { TriggerTimePreferenceSelectProps } from './components/agent-helper/trigger-time-preference-select';
|
|
99
111
|
export { OffsetPreferenceSelect } from './components/agent-helper/offset-preference-select';
|
|
100
112
|
export type { OffsetPreferenceSelectProps } from './components/agent-helper/offset-preference-select';
|
|
101
|
-
export {
|
|
113
|
+
export {
|
|
114
|
+
RepeatPreferenceTypeSelect,
|
|
115
|
+
RepeatPreferenceTypeOptions,
|
|
116
|
+
} from './components/agent-helper/repeat-preference-type-select';
|
|
102
117
|
export type {
|
|
103
118
|
RepeatPreferenceTypeOption,
|
|
104
119
|
RepeatPreferenceTypeSelectProps,
|
|
@@ -113,7 +128,10 @@ export type {
|
|
|
113
128
|
MonthdaysOption,
|
|
114
129
|
MonthdaysSelectProps,
|
|
115
130
|
} from './components/agent-helper/monthdays-select';
|
|
116
|
-
export {
|
|
131
|
+
export {
|
|
132
|
+
RepeatByTypeSelect,
|
|
133
|
+
RepeatByTypeOptions,
|
|
134
|
+
} from './components/agent-helper/repeat-by-type-select';
|
|
117
135
|
export type {
|
|
118
136
|
RepeatByTypeOption,
|
|
119
137
|
RepeatByTypeSelectProps,
|
|
@@ -193,7 +211,11 @@ export { DataTable } from './components/agent-helper/table';
|
|
|
193
211
|
export * from './components/agent-helper/table';
|
|
194
212
|
export type { DataTableProps } from './components/agent-helper/table';
|
|
195
213
|
export { DatePicker, DateInput } from './components/agent-helper/date-picker';
|
|
196
|
-
export type {
|
|
214
|
+
export type {
|
|
215
|
+
DatePickerProps,
|
|
216
|
+
DateInputProps,
|
|
217
|
+
DateFormat,
|
|
218
|
+
} from './components/agent-helper/date-picker';
|
|
197
219
|
export { DateRangePicker } from './components/date-range-picker';
|
|
198
220
|
export type { DateRangePickerProps } from './components/date-range-picker';
|
|
199
221
|
export { ExecLogFilter } from './components/agent-helper/exec-log-filter';
|
|
@@ -312,3 +312,32 @@ export const OnlyCurrentAppEntries: Story = {
|
|
|
312
312
|
showCurrentAppEntriesOnly: true,
|
|
313
313
|
},
|
|
314
314
|
};
|
|
315
|
+
|
|
316
|
+
export const TabsVariant: Story = {
|
|
317
|
+
render: (args) => (
|
|
318
|
+
<div style={{ padding: 16, background: '#E6F4F1', borderRadius: 8 }}>
|
|
319
|
+
<BsEntrySelect {...args} />
|
|
320
|
+
</div>
|
|
321
|
+
),
|
|
322
|
+
args: {
|
|
323
|
+
appDetails: mockAppDetails,
|
|
324
|
+
currentAppId: 'app1',
|
|
325
|
+
placeholder: '请选择表单',
|
|
326
|
+
defaultValue: 'entry1',
|
|
327
|
+
sliderVariant: 'tabs',
|
|
328
|
+
},
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
export const TabsVariantOverflow: Story = {
|
|
332
|
+
render: (args) => (
|
|
333
|
+
<div style={{ maxWidth: 300, padding: 16, background: '#E6F4F1', borderRadius: 8 }}>
|
|
334
|
+
<BsEntrySelect {...args} />
|
|
335
|
+
</div>
|
|
336
|
+
),
|
|
337
|
+
args: {
|
|
338
|
+
appDetails: mockAppDetails,
|
|
339
|
+
currentAppId: 'app1',
|
|
340
|
+
placeholder: '请选择表单',
|
|
341
|
+
sliderVariant: 'tabs',
|
|
342
|
+
},
|
|
343
|
+
};
|