@douyinfe/semi-foundation 2.34.0-alpha.1 → 2.34.0

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.
Files changed (78) hide show
  1. package/breadcrumb/breadcrumb.scss +4 -4
  2. package/calendar/eventUtil.ts +9 -7
  3. package/calendar/foundation.ts +4 -4
  4. package/cascader/foundation.ts +24 -13
  5. package/lib/cjs/breadcrumb/breadcrumb.css +0 -3
  6. package/lib/cjs/breadcrumb/breadcrumb.scss +4 -4
  7. package/lib/cjs/calendar/eventUtil.d.ts +7 -6
  8. package/lib/cjs/calendar/eventUtil.js +8 -6
  9. package/lib/cjs/calendar/foundation.d.ts +2 -2
  10. package/lib/cjs/calendar/foundation.js +2 -2
  11. package/lib/cjs/cascader/foundation.d.ts +3 -1
  12. package/lib/cjs/cascader/foundation.js +26 -8
  13. package/lib/cjs/navigation/itemFoundation.d.ts +0 -2
  14. package/lib/cjs/navigation/navigation.css +7 -77
  15. package/lib/cjs/navigation/navigation.scss +7 -119
  16. package/lib/cjs/navigation/subNavFoundation.d.ts +0 -2
  17. package/lib/cjs/radio/radio.css +1 -0
  18. package/lib/cjs/radio/radio.scss +1 -0
  19. package/lib/cjs/steps/bacisSteps.scss +238 -287
  20. package/lib/cjs/steps/fillSteps.scss +142 -153
  21. package/lib/cjs/steps/navSteps.scss +40 -61
  22. package/lib/cjs/steps/steps.css +28 -392
  23. package/lib/cjs/table/foundation.d.ts +5 -0
  24. package/lib/cjs/table/table.css +23 -5
  25. package/lib/cjs/table/table.scss +25 -5
  26. package/lib/cjs/table/utils.d.ts +2 -0
  27. package/lib/cjs/table/utils.js +6 -0
  28. package/lib/cjs/timePicker/foundation.js +15 -1
  29. package/lib/cjs/timeline/timeline.css +0 -36
  30. package/lib/cjs/timeline/timeline.scss +46 -96
  31. package/lib/cjs/tree/treeUtil.d.ts +1 -1
  32. package/lib/cjs/typography/typography.css +8 -0
  33. package/lib/cjs/typography/typography.scss +13 -0
  34. package/lib/cjs/upload/constants.d.ts +1 -1
  35. package/lib/es/breadcrumb/breadcrumb.css +0 -3
  36. package/lib/es/breadcrumb/breadcrumb.scss +4 -4
  37. package/lib/es/calendar/eventUtil.d.ts +7 -6
  38. package/lib/es/calendar/eventUtil.js +8 -6
  39. package/lib/es/calendar/foundation.d.ts +2 -2
  40. package/lib/es/calendar/foundation.js +2 -2
  41. package/lib/es/cascader/foundation.d.ts +3 -1
  42. package/lib/es/cascader/foundation.js +26 -8
  43. package/lib/es/navigation/itemFoundation.d.ts +0 -2
  44. package/lib/es/navigation/navigation.css +7 -77
  45. package/lib/es/navigation/navigation.scss +7 -119
  46. package/lib/es/navigation/subNavFoundation.d.ts +0 -2
  47. package/lib/es/radio/radio.css +1 -0
  48. package/lib/es/radio/radio.scss +1 -0
  49. package/lib/es/steps/bacisSteps.scss +238 -287
  50. package/lib/es/steps/fillSteps.scss +142 -153
  51. package/lib/es/steps/navSteps.scss +40 -61
  52. package/lib/es/steps/steps.css +28 -392
  53. package/lib/es/table/foundation.d.ts +5 -0
  54. package/lib/es/table/table.css +23 -5
  55. package/lib/es/table/table.scss +25 -5
  56. package/lib/es/table/utils.d.ts +2 -0
  57. package/lib/es/table/utils.js +5 -0
  58. package/lib/es/timePicker/foundation.js +14 -1
  59. package/lib/es/timeline/timeline.css +0 -36
  60. package/lib/es/timeline/timeline.scss +46 -96
  61. package/lib/es/tree/treeUtil.d.ts +1 -1
  62. package/lib/es/typography/typography.css +8 -0
  63. package/lib/es/typography/typography.scss +13 -0
  64. package/lib/es/upload/constants.d.ts +1 -1
  65. package/navigation/itemFoundation.ts +1 -3
  66. package/navigation/navigation.scss +7 -119
  67. package/navigation/subNavFoundation.ts +1 -3
  68. package/package.json +2 -2
  69. package/radio/radio.scss +1 -0
  70. package/steps/bacisSteps.scss +238 -287
  71. package/steps/fillSteps.scss +142 -153
  72. package/steps/navSteps.scss +40 -61
  73. package/table/foundation.ts +6 -2
  74. package/table/table.scss +25 -5
  75. package/table/utils.ts +6 -0
  76. package/timePicker/foundation.ts +12 -3
  77. package/timeline/timeline.scss +46 -96
  78. package/typography/typography.scss +13 -0
@@ -82,14 +82,14 @@ $module: #{$prefix}-breadcrumb;
82
82
  }
83
83
  }
84
84
 
85
- &-item-icon+&-item-title {
86
- margin-left: $spacing-breadcrumb_item_text-marginLeft;
87
- }
85
+ // &-item-icon+&-item-title {
86
+ // margin-left: $spacing-breadcrumb_item_text-marginLeft;
87
+ // }
88
88
 
89
89
  &-item-link {
90
90
  display: inline-flex;
91
91
  align-items: center;
92
- column-gap: 4px;
92
+ column-gap: $spacing-breadcrumb_item_text-marginLeft;
93
93
  text-decoration: inherit;
94
94
  transition: color $transition_duration-breadcrumb_link-text $transition-function_breadcrumb_link-text $transition_delay-breadcrumb_link-text;
95
95
  transform: scale($transform_scale-breadcrumb_link-text);
@@ -96,9 +96,9 @@ export interface DateObj {
96
96
  month: string
97
97
  }
98
98
 
99
- export type weeekStartsOnEnum = 0 | 1 | 2 | 3 | 4 | 5 | 6;
99
+ export type weekStartsOnEnum = 0 | 1 | 2 | 3 | 4 | 5 | 6;
100
100
 
101
- export const calcRangeData = (value: Date, start: Date, rangeLen: number, mode: string, locale: Locale, weekStartsOn: weeekStartsOnEnum) => {
101
+ export const calcRangeData = (value: Date, start: Date, rangeLen: number, mode: string, locale: Locale, weekStartsOn: weekStartsOnEnum) => {
102
102
  const today = getCurrDate();
103
103
  const arr: Array<DateObj> = [];
104
104
  [...Array(rangeLen).keys()].map(ind => {
@@ -121,15 +121,17 @@ export const calcRangeData = (value: Date, start: Date, rangeLen: number, mode:
121
121
 
122
122
  /**
123
123
  *
124
- * @param {value} date
124
+ * @param {Date} date
125
+ * @param {Date} monthStart current month start date, using for month mode
125
126
  * @param {string} mode
126
127
  * @param {string} locale
127
128
  * @returns {object[]} { date: Date, dayString: string, ind: number, isToday: boolean, isWeekend: boolean, weekday: string }
128
129
  * create weekly object array
129
130
  */
130
- export const calcWeekData = (value: Date, mode = 'week', locale: Locale, weekStartsOn: weeekStartsOnEnum) => {
131
+ export const calcWeekData = (value: Date, monthStart: Date | null, mode = 'week', locale: Locale, weekStartsOn: weekStartsOnEnum) => {
131
132
  const start = startOfWeek(value, { weekStartsOn });
132
- return calcRangeData(value, start, 7, mode, locale, weekStartsOn);
133
+ const realValue = monthStart || value;
134
+ return calcRangeData(realValue, start, 7, mode, locale, weekStartsOn);
133
135
  };
134
136
 
135
137
  /**
@@ -250,7 +252,7 @@ export const filterEvents = (events: Map<string, EventObject[]>, start: Date, en
250
252
  * filter out event that is not in the week range
251
253
  */
252
254
  // eslint-disable-next-line max-len
253
- export const filterWeeklyEvents = (events: Map<string, EventObject[]>, weekStart: Date, weekStartsOn: weeekStartsOnEnum ) => filterEvents(events, weekStart, addDays(endOfWeek(weekStart, { weekStartsOn }), 1));
255
+ export const filterWeeklyEvents = (events: Map<string, EventObject[]>, weekStart: Date, weekStartsOn: weekStartsOnEnum ) => filterEvents(events, weekStart, addDays(endOfWeek(weekStart, { weekStartsOn }), 1));
254
256
 
255
257
  /**
256
258
  * @returns {arr}
@@ -309,7 +311,7 @@ export const parseWeeklyAllDayEvent = (
309
311
  startDate: Date,
310
312
  weekStart: Date,
311
313
  parsed: Array<Array<ParsedRangeEvent>>,
312
- weekStartsOn: weeekStartsOnEnum
314
+ weekStartsOn: weekStartsOnEnum
313
315
  ) => parseRangeAllDayEvent(event, startDate, weekStart, addDays(endOfWeek(startDate, { weekStartsOn }), 1), parsed);
314
316
 
315
317
 
@@ -33,9 +33,9 @@ import {
33
33
  DateObj,
34
34
  checkWeekend,
35
35
  } from './eventUtil';
36
- import type { weeekStartsOnEnum } from './eventUtil';
36
+ import type { weekStartsOnEnum } from './eventUtil';
37
37
 
38
- export { weeekStartsOnEnum };
38
+ export { weekStartsOnEnum };
39
39
  export interface EventObject {
40
40
  [x: string]: any;
41
41
  key: string;
@@ -191,7 +191,7 @@ export default class CalendarFoundation<P = Record<string, any>, S = Record<stri
191
191
  const data = {} as WeeklyData;
192
192
  const { weekStartsOn } = this.getProps();
193
193
  data.month = format(value, 'LLL', { locale: dateFnsLocale, weekStartsOn });
194
- data.week = calcWeekData(value, 'week', dateFnsLocale, weekStartsOn);
194
+ data.week = calcWeekData(value, null, 'week', dateFnsLocale, weekStartsOn);
195
195
  this._adapter.setWeeklyData(data);
196
196
  return data;
197
197
  }
@@ -212,7 +212,7 @@ export default class CalendarFoundation<P = Record<string, any>, S = Record<stri
212
212
  const { weekStartsOn } = this.getProps();
213
213
  const numberOfWeek = getWeeksInMonth(value, { weekStartsOn });
214
214
  [...Array(numberOfWeek).keys()].map(ind => {
215
- data[ind] = calcWeekData(addDays(monthStart, ind * 7), 'month', dateFnsLocale, weekStartsOn);
215
+ data[ind] = calcWeekData(addDays(monthStart, ind * 7), monthStart, 'month', dateFnsLocale, weekStartsOn);
216
216
  });
217
217
  this._adapter.setMonthlyData(data);
218
218
  return data;
@@ -92,9 +92,9 @@ export interface BasicTriggerRenderProps {
92
92
  * customized by triggerRender is updated to synchronize the state
93
93
  * with Cascader. */
94
94
  onSearch: (inputValue: string) => void;
95
- /* This function is the same as onSearch (supported since v2.32.0),
96
- * because this function was used before, and to align with TreeSelect,
97
- * use onSearch instead of onChange is more suitable,
95
+ /* This function is the same as onSearch (supported since v2.32.0),
96
+ * because this function was used before, and to align with TreeSelect,
97
+ * use onSearch instead of onChange is more suitable,
98
98
  * onChange needs to be deleted in the next Major
99
99
  */
100
100
  onChange: (inputValue: string) => void;
@@ -203,6 +203,7 @@ export interface CascaderAdapter extends DefaultAdapter<BasicCascaderProps, Basi
203
203
  updateInputValue: (value: string) => void;
204
204
  updateInputPlaceHolder: (value: string) => void;
205
205
  focusInput: () => void;
206
+ blurInput: () => void;
206
207
  registerClickOutsideHandler: (cb: (e: any) => void) => void;
207
208
  unregisterClickOutsideHandler: () => void;
208
209
  rePositionDropdown: () => void;
@@ -259,7 +260,7 @@ export default class CascaderFoundation extends BaseFoundation<CascaderAdapter,
259
260
  if (multiple) {
260
261
  const valuePath: BasicValue = [];
261
262
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
262
- // @ts-ignore
263
+ // @ts-ignore
263
264
  item.forEach((checkedKey: string) => {
264
265
  const valuePathItem = this.getItemPropPath(checkedKey, valueProp);
265
266
  valuePath.push(valuePathItem as any);
@@ -449,7 +450,7 @@ export default class CascaderFoundation extends BaseFoundation<CascaderAdapter,
449
450
  if (filterable && !multiple) {
450
451
  const displayText = this.renderDisplayText(selectedKey, keyEntities);
451
452
  updateStates.inputPlaceHolder = displayText;
452
- /*
453
+ /*
453
454
  * displayText should not be assign to inputValue,
454
455
  * cause inputValue should only change by user enter
455
456
  */
@@ -484,7 +485,7 @@ export default class CascaderFoundation extends BaseFoundation<CascaderAdapter,
484
485
  if (filterable && !multiple) {
485
486
  const displayText = this._defaultRenderText(valuePath);
486
487
  updateStates.inputPlaceHolder = displayText;
487
- /*
488
+ /*
488
489
  * displayText should not be assign to inputValue,
489
490
  * cause inputValue should only change by user enter
490
491
  */
@@ -555,20 +556,30 @@ export default class CascaderFoundation extends BaseFoundation<CascaderAdapter,
555
556
  this._notifyBlur(e);
556
557
  }
557
558
 
559
+ focus() {
560
+ const { filterTreeNode } = this.getProps();
561
+ if (filterTreeNode) {
562
+ this._adapter.focusInput();
563
+ }
564
+ this._adapter.updateFocusState(true);
565
+ }
566
+
567
+ blur() {
568
+ const { filterTreeNode } = this.getProps();
569
+ if (filterTreeNode) {
570
+ this._adapter.blurInput();
571
+ }
572
+ this._adapter.updateFocusState(false);
573
+ }
574
+
558
575
  toggle2SearchInput(isShow: boolean) {
559
576
  if (isShow) {
560
- this._adapter.toggleInputShow(isShow, () => this.focusInput());
577
+ this._adapter.toggleInputShow(isShow, () => this.focus());
561
578
  } else {
562
579
  this._adapter.toggleInputShow(isShow, () => undefined);
563
580
  }
564
581
  }
565
582
 
566
- focusInput() {
567
- this._adapter.focusInput();
568
- this._adapter.updateFocusState(true);
569
- }
570
-
571
-
572
583
  updateSearching = (isSearching: boolean)=>{
573
584
  this._adapter.updateStates({ isSearching: false });
574
585
  }
@@ -54,9 +54,6 @@
54
54
  .semi-breadcrumb-item-more svg {
55
55
  vertical-align: middle;
56
56
  }
57
- .semi-breadcrumb-item-icon + .semi-breadcrumb-item-title {
58
- margin-left: 4px;
59
- }
60
57
  .semi-breadcrumb-item-link {
61
58
  display: inline-flex;
62
59
  align-items: center;
@@ -82,14 +82,14 @@ $module: #{$prefix}-breadcrumb;
82
82
  }
83
83
  }
84
84
 
85
- &-item-icon+&-item-title {
86
- margin-left: $spacing-breadcrumb_item_text-marginLeft;
87
- }
85
+ // &-item-icon+&-item-title {
86
+ // margin-left: $spacing-breadcrumb_item_text-marginLeft;
87
+ // }
88
88
 
89
89
  &-item-link {
90
90
  display: inline-flex;
91
91
  align-items: center;
92
- column-gap: 4px;
92
+ column-gap: $spacing-breadcrumb_item_text-marginLeft;
93
93
  text-decoration: inherit;
94
94
  transition: color $transition_duration-breadcrumb_link-text $transition-function_breadcrumb_link-text $transition_delay-breadcrumb_link-text;
95
95
  transform: scale($transform_scale-breadcrumb_link-text);
@@ -30,17 +30,18 @@ export interface DateObj {
30
30
  isSameMonth: boolean;
31
31
  month: string;
32
32
  }
33
- export declare type weeekStartsOnEnum = 0 | 1 | 2 | 3 | 4 | 5 | 6;
34
- export declare const calcRangeData: (value: Date, start: Date, rangeLen: number, mode: string, locale: Locale, weekStartsOn: weeekStartsOnEnum) => DateObj[];
33
+ export declare type weekStartsOnEnum = 0 | 1 | 2 | 3 | 4 | 5 | 6;
34
+ export declare const calcRangeData: (value: Date, start: Date, rangeLen: number, mode: string, locale: Locale, weekStartsOn: weekStartsOnEnum) => DateObj[];
35
35
  /**
36
36
  *
37
- * @param {value} date
37
+ * @param {Date} date
38
+ * @param {Date} monthStart current month start date, using for month mode
38
39
  * @param {string} mode
39
40
  * @param {string} locale
40
41
  * @returns {object[]} { date: Date, dayString: string, ind: number, isToday: boolean, isWeekend: boolean, weekday: string }
41
42
  * create weekly object array
42
43
  */
43
- export declare const calcWeekData: (value: Date, mode: string, locale: Locale, weekStartsOn: weeekStartsOnEnum) => DateObj[];
44
+ export declare const calcWeekData: (value: Date, monthStart: Date | null, mode: string, locale: Locale, weekStartsOn: weekStartsOnEnum) => DateObj[];
44
45
  /**
45
46
  *
46
47
  * @param {object} event
@@ -74,7 +75,7 @@ export declare const filterEvents: (events: Map<string, EventObject[]>, start: D
74
75
  * @returns {arr}
75
76
  * filter out event that is not in the week range
76
77
  */
77
- export declare const filterWeeklyEvents: (events: Map<string, EventObject[]>, weekStart: Date, weekStartsOn: weeekStartsOnEnum) => Map<string, EventObject[]>;
78
+ export declare const filterWeeklyEvents: (events: Map<string, EventObject[]>, weekStart: Date, weekStartsOn: weekStartsOnEnum) => Map<string, EventObject[]>;
78
79
  /**
79
80
  * @returns {arr}
80
81
  * arrange and sort all day event for a range
@@ -84,7 +85,7 @@ export declare const parseRangeAllDayEvent: (event: EventObject[], startDate: Da
84
85
  * @returns {arr}
85
86
  * arrange and sort weekly all day event
86
87
  */
87
- export declare const parseWeeklyAllDayEvent: (event: EventObject[], startDate: Date, weekStart: Date, parsed: Array<Array<ParsedRangeEvent>>, weekStartsOn: weeekStartsOnEnum) => ParsedRangeEvent[][];
88
+ export declare const parseWeeklyAllDayEvent: (event: EventObject[], startDate: Date, weekStart: Date, parsed: Array<Array<ParsedRangeEvent>>, weekStartsOn: weekStartsOnEnum) => ParsedRangeEvent[][];
88
89
  export declare const collectDailyEvents: (events: ParsedRangeEvent[][]) => ParsedRangeEvent[][];
89
90
  export declare const renderDailyEvent: (event: EventObject) => {
90
91
  startPos: number;
@@ -127,7 +127,8 @@ const calcRangeData = (value, start, rangeLen, mode, locale, weekStartsOn) => {
127
127
  };
128
128
  /**
129
129
  *
130
- * @param {value} date
130
+ * @param {Date} date
131
+ * @param {Date} monthStart current month start date, using for month mode
131
132
  * @param {string} mode
132
133
  * @param {string} locale
133
134
  * @returns {object[]} { date: Date, dayString: string, ind: number, isToday: boolean, isWeekend: boolean, weekday: string }
@@ -137,14 +138,15 @@ const calcRangeData = (value, start, rangeLen, mode, locale, weekStartsOn) => {
137
138
 
138
139
  exports.calcRangeData = calcRangeData;
139
140
 
140
- const calcWeekData = function (value) {
141
- let mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'week';
142
- let locale = arguments.length > 2 ? arguments[2] : undefined;
143
- let weekStartsOn = arguments.length > 3 ? arguments[3] : undefined;
141
+ const calcWeekData = function (value, monthStart) {
142
+ let mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'week';
143
+ let locale = arguments.length > 3 ? arguments[3] : undefined;
144
+ let weekStartsOn = arguments.length > 4 ? arguments[4] : undefined;
144
145
  const start = (0, _dateFns.startOfWeek)(value, {
145
146
  weekStartsOn
146
147
  });
147
- return calcRangeData(value, start, 7, mode, locale, weekStartsOn);
148
+ const realValue = monthStart || value;
149
+ return calcRangeData(realValue, start, 7, mode, locale, weekStartsOn);
148
150
  };
149
151
  /**
150
152
  *
@@ -1,8 +1,8 @@
1
1
  import BaseFoundation, { DefaultAdapter } from '../base/foundation';
2
2
  import { Locale } from 'date-fns';
3
3
  import { DateObj } from './eventUtil';
4
- import type { weeekStartsOnEnum } from './eventUtil';
5
- export { weeekStartsOnEnum };
4
+ import type { weekStartsOnEnum } from './eventUtil';
5
+ export { weekStartsOnEnum };
6
6
  export interface EventObject {
7
7
  [x: string]: any;
8
8
  key: string;
@@ -119,7 +119,7 @@ class CalendarFoundation extends _foundation.default {
119
119
  locale: dateFnsLocale,
120
120
  weekStartsOn
121
121
  });
122
- data.week = (0, _eventUtil.calcWeekData)(value, 'week', dateFnsLocale, weekStartsOn);
122
+ data.week = (0, _eventUtil.calcWeekData)(value, null, 'week', dateFnsLocale, weekStartsOn);
123
123
 
124
124
  this._adapter.setWeeklyData(data);
125
125
 
@@ -154,7 +154,7 @@ class CalendarFoundation extends _foundation.default {
154
154
  weekStartsOn
155
155
  });
156
156
  [...Array(numberOfWeek).keys()].map(ind => {
157
- data[ind] = (0, _eventUtil.calcWeekData)((0, _dateFns.addDays)(monthStart, ind * 7), 'month', dateFnsLocale, weekStartsOn);
157
+ data[ind] = (0, _eventUtil.calcWeekData)((0, _dateFns.addDays)(monthStart, ind * 7), monthStart, 'month', dateFnsLocale, weekStartsOn);
158
158
  });
159
159
 
160
160
  this._adapter.setMonthlyData(data);
@@ -149,6 +149,7 @@ export interface CascaderAdapter extends DefaultAdapter<BasicCascaderProps, Basi
149
149
  updateInputValue: (value: string) => void;
150
150
  updateInputPlaceHolder: (value: string) => void;
151
151
  focusInput: () => void;
152
+ blurInput: () => void;
152
153
  registerClickOutsideHandler: (cb: (e: any) => void) => void;
153
154
  unregisterClickOutsideHandler: () => void;
154
155
  rePositionDropdown: () => void;
@@ -196,8 +197,9 @@ export default class CascaderFoundation extends BaseFoundation<CascaderAdapter,
196
197
  open(): void;
197
198
  reCalcActiveKeys(): void;
198
199
  close(e: any, key?: string): void;
200
+ focus(): void;
201
+ blur(): void;
199
202
  toggle2SearchInput(isShow: boolean): void;
200
- focusInput(): void;
201
203
  updateSearching: (isSearching: boolean) => void;
202
204
  handleItemClick(e: any, item: BasicEntity | BasicData): void;
203
205
  handleItemHover(e: any, item: BasicEntity): void;
@@ -79,7 +79,7 @@ class CascaderFoundation extends _foundation.default {
79
79
 
80
80
  if (multiple) {
81
81
  const valuePath = []; // eslint-disable-next-line @typescript-eslint/ban-ts-comment
82
- // @ts-ignore
82
+ // @ts-ignore
83
83
 
84
84
  item.forEach(checkedKey => {
85
85
  const valuePathItem = this.getItemPropPath(checkedKey, valueProp);
@@ -449,20 +449,38 @@ class CascaderFoundation extends _foundation.default {
449
449
  this._notifyBlur(e);
450
450
  }
451
451
 
452
+ focus() {
453
+ const {
454
+ filterTreeNode
455
+ } = this.getProps();
456
+
457
+ if (filterTreeNode) {
458
+ this._adapter.focusInput();
459
+ }
460
+
461
+ this._adapter.updateFocusState(true);
462
+ }
463
+
464
+ blur() {
465
+ const {
466
+ filterTreeNode
467
+ } = this.getProps();
468
+
469
+ if (filterTreeNode) {
470
+ this._adapter.blurInput();
471
+ }
472
+
473
+ this._adapter.updateFocusState(false);
474
+ }
475
+
452
476
  toggle2SearchInput(isShow) {
453
477
  if (isShow) {
454
- this._adapter.toggleInputShow(isShow, () => this.focusInput());
478
+ this._adapter.toggleInputShow(isShow, () => this.focus());
455
479
  } else {
456
480
  this._adapter.toggleInputShow(isShow, () => undefined);
457
481
  }
458
482
  }
459
483
 
460
- focusInput() {
461
- this._adapter.focusInput();
462
-
463
- this._adapter.updateFocusState(true);
464
- }
465
-
466
484
  handleItemClick(e, item) {
467
485
  const isDisabled = this._isDisabled();
468
486
 
@@ -34,8 +34,6 @@ export interface ItemAdapter<P = Record<string, any>, S = Record<string, any>> e
34
34
  getIsCollapsed(): boolean;
35
35
  getSelected(): boolean;
36
36
  getIsOpen(): boolean;
37
- getIsInSubNav(): boolean;
38
- getMode(): string;
39
37
  }
40
38
  export default class ItemFoundation<P = Record<string, any>, S = Record<string, any>> extends BaseFoundation<ItemAdapter<P, S>, P, S> {
41
39
  _timer: number;
@@ -56,6 +56,7 @@
56
56
  padding: 8px 12px;
57
57
  box-sizing: border-box;
58
58
  margin-top: 0;
59
+ margin-bottom: 8px;
59
60
  font-size: 14px;
60
61
  line-height: 20px;
61
62
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
@@ -240,12 +241,6 @@
240
241
  text-overflow: ellipsis;
241
242
  white-space: nowrap;
242
243
  overflow: hidden;
243
- display: flex;
244
- flex-direction: column;
245
- row-gap: 8px;
246
- }
247
- .semi-navigation-sub.semi-navigation-sub-open {
248
- margin-top: 8px;
249
244
  }
250
245
  .semi-navigation-sub .semi-navigation-item {
251
246
  color: var(--semi-color-text-0);
@@ -254,6 +249,9 @@
254
249
  font-weight: 400;
255
250
  width: 100%;
256
251
  }
252
+ .semi-navigation-sub .semi-navigation-item:first-child {
253
+ margin-top: 8px;
254
+ }
257
255
  .semi-navigation-sub .semi-navigation-item > .semi-navigation-sub .semi-navigation-item-text:first-child {
258
256
  margin-left: 44px;
259
257
  }
@@ -335,12 +333,6 @@
335
333
  transition: transform 200ms ease-in-out;
336
334
  transform: rotate(-180deg);
337
335
  }
338
- .semi-navigation-icon-rotate-0-no-transition {
339
- transform: rotate(0);
340
- }
341
- .semi-navigation-icon-rotate-180-no-transition {
342
- transform: rotate(-180deg);
343
- }
344
336
 
345
337
  /* Header、Footer-Common */
346
338
  .semi-navigation-header {
@@ -401,11 +393,6 @@
401
393
  .semi-navigation-vertical .semi-navigation-list > .semi-navigation-item-selected:not(.semi-navigation-item-disabled).semi-navigation-item-normal:hover .semi-navigation-item-icon:first-child {
402
394
  color: var(--semi-color-primary);
403
395
  }
404
- .semi-navigation-vertical .semi-navigation-list {
405
- display: flex;
406
- flex-direction: column;
407
- row-gap: 8px;
408
- }
409
396
  .semi-navigation-vertical .semi-navigation-list > .semi-navigation-sub-wrap > .semi-navigation-sub-title {
410
397
  color: var(--semi-color-text-0);
411
398
  background-color: transparent;
@@ -483,6 +470,9 @@
483
470
  .semi-navigation-vertical .semi-navigation-list > .semi-navigation-sub-wrap > .semi-navigation-sub-title:hover.semi-navigation-sub-title-disabled.semi-navigation-sub-title-selected .semi-navigation-item-icon:first-child, .semi-navigation-vertical .semi-navigation-list > .semi-navigation-sub-wrap > .semi-navigation-sub-title:active.semi-navigation-sub-title-disabled.semi-navigation-sub-title-selected .semi-navigation-item-icon:first-child {
484
471
  color: var(--semi-color-primary-disabled);
485
472
  }
473
+ .semi-navigation-vertical .semi-navigation-item:last-of-type {
474
+ margin-bottom: 0;
475
+ }
486
476
  .semi-navigation-vertical .semi-navigation-inner {
487
477
  flex-direction: column;
488
478
  }
@@ -681,66 +671,6 @@
681
671
  padding: 0;
682
672
  }
683
673
 
684
- .semi-navigation-first-layer > .semi-navigation-sub-title .semi-navigation-item-text {
685
- font-weight: 600;
686
- }
687
- .semi-navigation-first-layer > .semi-navigation-item-text {
688
- font-weight: 600;
689
- }
690
-
691
- .semi-navigation-sub-title-selected .semi-navigation-item-icon:first-child {
692
- color: var(--semi-color-primary);
693
- }
694
-
695
- .semi-navigation-sub-wrap .semi-navigation-sub-title {
696
- margin-bottom: 0;
697
- }
698
- .semi-navigation-sub-wrap .semi-navigation-item:last-of-type {
699
- margin-bottom: 0;
700
- }
701
-
702
- .semi-navigation-sub-title.semi-navigation-sub-title-disabled .semi-navigation-item-text {
703
- color: var(--semi-color-disabled-text);
704
- }
705
-
706
- .semi-navigation-item-horizontal.semi-navigation-item {
707
- width: fit-content;
708
- margin-bottom: 0;
709
- margin-right: 8px;
710
- }
711
- .semi-navigation-item-horizontal.semi-navigation-item.semi-navigation-item-disabled {
712
- color: var(--semi-color-disabled-text);
713
- }
714
- .semi-navigation-item-horizontal .semi-navigation-sub-title .semi-navigation-item-icon:first-child,
715
- .semi-navigation-item-horizontal .semi-navigation-sub-title .semi-navigation-item-text {
716
- color: var(--semi-color-text-2);
717
- background-color: transparent;
718
- }
719
- .semi-navigation-item-horizontal .semi-navigation-sub-title.semi-navigation-sub-title-selected .semi-navigation-item-icon:first-child,
720
- .semi-navigation-item-horizontal .semi-navigation-sub-title.semi-navigation-sub-title-selected .semi-navigation-item-text {
721
- color: var(--semi-color-text-0);
722
- }
723
- .semi-navigation-item-horizontal .semi-navigation-sub-title.semi-navigation-sub-title-disabled .semi-navigation-item-icon:first-child,
724
- .semi-navigation-item-horizontal .semi-navigation-sub-title.semi-navigation-sub-title-disabled .semi-navigation-item-text {
725
- color: var(--semi-color-disabled-text);
726
- }
727
- .semi-navigation-item-horizontal.semi-navigation-first-layer {
728
- color: var(--semi-color-text-2);
729
- }
730
- .semi-navigation-item-horizontal.semi-navigation-item-selected {
731
- background-color: transparent;
732
- }
733
- .semi-navigation-item-horizontal.semi-navigation-item-selected .semi-navigation-item-icon:first-child,
734
- .semi-navigation-item-horizontal.semi-navigation-item-selected .semi-navigation-item-text {
735
- color: var(--semi-color-text-0);
736
- }
737
- .semi-navigation-item-horizontal .semi-navigation-item-icon:first-child {
738
- margin-right: 8px;
739
- }
740
- .semi-navigation-item-horizontal .semi-navigation-item-icon:last-child {
741
- margin-left: 8px;
742
- }
743
-
744
674
  .semi-rtl .semi-navigation,
745
675
  .semi-portal-rtl .semi-navigation {
746
676
  direction: rtl;