@king-design/react 3.0.0-beta.0 → 3.0.0-beta.2
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/__tests__/__snapshots__/Dialog.md +1 -1
- package/__tests__/__snapshots__/React Demos.md +468 -309
- package/__tests__/components/cascader.spec.tsx +53 -0
- package/__tests__/components/drawer.spec.tsx +67 -5
- package/components/button/index.d.ts +1 -1
- package/components/button/index.js +1 -1
- package/components/button/styles.d.ts +1 -1
- package/components/button/styles.js +3 -5
- package/components/carousel/index.vdt.js +2 -2
- package/components/cascader/index.d.ts +22 -11
- package/components/cascader/index.js +9 -12
- package/components/cascader/index.spec.js +81 -0
- package/components/cascader/index.vdt.js +11 -9
- package/components/cascader/styles.js +1 -1
- package/components/cascader/useFields.d.ts +2 -0
- package/components/cascader/useFields.js +18 -0
- package/components/cascader/useFilterable.d.ts +2 -1
- package/components/cascader/useFilterable.js +17 -6
- package/components/cascader/useLabel.d.ts +2 -1
- package/components/cascader/useLabel.js +4 -4
- package/components/cascader/useLoad.d.ts +2 -1
- package/components/cascader/useLoad.js +9 -7
- package/components/collapse/item.vdt.js +1 -1
- package/components/colorpicker/index.d.ts +2 -0
- package/components/colorpicker/index.js +7 -2
- package/components/colorpicker/index.vdt.js +3 -6
- package/components/copy/index.d.ts +17 -0
- package/components/copy/index.js +43 -0
- package/components/copy/index.spec.d.ts +1 -0
- package/components/copy/index.spec.js +52 -0
- package/components/copy/index.vdt.js +45 -0
- package/components/copy/styles.d.ts +2 -0
- package/components/copy/styles.js +14 -0
- package/components/copy/useCopy.d.ts +4 -0
- package/components/copy/useCopy.js +90 -0
- package/components/datepicker/calendar.vdt.js +6 -6
- package/components/datepicker/index.spec.js +171 -153
- package/components/datepicker/index.vdt.js +1 -1
- package/components/datepicker/styles.js +1 -1
- package/components/datepicker/useValue.d.ts +3 -3
- package/components/datepicker/useValue.js +38 -9
- package/components/diagram/shapes/callout.d.ts +1 -1
- package/components/diagram/shapes/circle.d.ts +1 -1
- package/components/diagram/shapes/document.d.ts +1 -1
- package/components/diagram/shapes/ellipse.d.ts +1 -1
- package/components/diagram/shapes/hexagon.d.ts +1 -1
- package/components/diagram/shapes/image.d.ts +1 -1
- package/components/diagram/shapes/parallelogram.d.ts +1 -1
- package/components/diagram/shapes/rectangle.d.ts +1 -1
- package/components/diagram/shapes/square.d.ts +1 -1
- package/components/diagram/shapes/text.d.ts +1 -1
- package/components/dialog/alert.vdt.js +6 -5
- package/components/dialog/index.spec.js +6 -6
- package/components/dialog/styles.js +1 -1
- package/components/dropdown/dropdown.d.ts +6 -6
- package/components/dropdown/dropdown.js +58 -75
- package/components/dropdown/index.spec.js +96 -17
- package/components/dropdown/item.d.ts +1 -1
- package/components/dropdown/item.js +19 -7
- package/components/dropdown/menu.js +1 -1
- package/components/dropdown/usePosition.js +11 -2
- package/components/editable/index.d.ts +1 -0
- package/components/editable/index.js +20 -6
- package/components/editable/index.vdt.js +2 -1
- package/components/form/index.spec.js +4 -2
- package/components/form/item.vdt.js +2 -1
- package/components/form/styles.js +4 -4
- package/components/grid/useGutter.js +8 -8
- package/components/icon/styles.js +1 -1
- package/components/input/index.d.ts +13 -2
- package/components/input/index.js +16 -13
- package/components/input/index.spec.js +169 -1
- package/components/input/index.vdt.js +44 -12
- package/components/input/search.vdt.js +2 -4
- package/components/input/styles.js +30 -6
- package/components/input/useAutoRows.d.ts +2 -0
- package/components/input/useAutoRows.js +79 -0
- package/components/input/useAutoWidth.js +13 -3
- package/components/input/useFocus.d.ts +4 -0
- package/components/input/useFocus.js +21 -0
- package/components/input/useShowPassword.d.ts +7 -0
- package/components/input/useShowPassword.js +31 -0
- package/components/menu/index.spec.js +26 -15
- package/components/menu/item.d.ts +2 -0
- package/components/menu/item.js +5 -0
- package/components/menu/item.vdt.js +4 -1
- package/components/pagination/index.d.ts +1 -1
- package/components/pagination/index.js +3 -2
- package/components/pagination/index.spec.js +49 -0
- package/components/pagination/index.vdt.js +10 -12
- package/components/pagination/styles.js +1 -1
- package/components/popover/content.d.ts +19 -0
- package/components/popover/content.js +31 -0
- package/components/popover/content.vdt.js +68 -0
- package/components/popover/index.d.ts +16 -0
- package/components/popover/index.js +44 -0
- package/components/popover/index.spec.d.ts +1 -0
- package/components/popover/index.spec.js +195 -0
- package/components/popover/styles.d.ts +1 -0
- package/components/popover/styles.js +22 -0
- package/components/portal.d.ts +6 -2
- package/components/portal.js +4 -3
- package/components/position.js +2 -1
- package/components/progress/index.js +1 -1
- package/components/progress/index.vdt.js +46 -8
- package/components/progress/styles.js +19 -13
- package/components/rate/styles.js +1 -1
- package/components/select/base.d.ts +7 -3
- package/components/select/base.js +9 -3
- package/components/select/base.vdt.js +75 -47
- package/components/select/index.spec.js +25 -13
- package/components/select/menu.vdt.js +6 -6
- package/components/select/option.vdt.js +2 -1
- package/components/select/styles.js +11 -5
- package/components/select/useDraggble.d.ts +2 -0
- package/components/select/useDraggble.js +11 -0
- package/components/slider/index.spec.js +48 -9
- package/components/slider/index.vdt.js +23 -12
- package/components/slider/styles.js +23 -14
- package/components/slider/useValue.d.ts +3 -1
- package/components/slider/useValue.js +12 -0
- package/components/spinner/index.d.ts +0 -1
- package/components/spinner/index.js +1 -19
- package/components/spinner/index.vdt.js +13 -8
- package/components/spinner/styles.js +2 -2
- package/components/spinner/useChange.d.ts +1 -1
- package/components/spinner/useChange.js +2 -2
- package/components/spinner/useValue.d.ts +1 -0
- package/components/spinner/useValue.js +16 -1
- package/components/split/index.vdt.js +32 -20
- package/components/split/memo.d.ts +9 -0
- package/components/split/memo.js +26 -0
- package/components/steps/index.d.ts +1 -0
- package/components/steps/index.js +2 -1
- package/components/steps/index.spec.js +1 -1
- package/components/steps/index.vdt.js +7 -4
- package/components/steps/step.vdt.js +2 -3
- package/components/steps/styles.d.ts +1 -0
- package/components/steps/styles.js +50 -17
- package/components/switch/index.spec.js +82 -65
- package/components/table/cell.js +1 -6
- package/components/table/cell.vdt.js +1 -1
- package/components/table/column.vdt.js +40 -24
- package/components/table/index.spec.js +162 -20
- package/components/table/row.d.ts +1 -1
- package/components/table/row.js +2 -1
- package/components/table/styles.js +16 -9
- package/components/table/table.d.ts +15 -0
- package/components/table/table.js +16 -7
- package/components/table/table.vdt.js +20 -6
- package/components/table/useChecked.d.ts +3 -2
- package/components/table/useChecked.js +23 -12
- package/components/table/useDisableRow.d.ts +2 -1
- package/components/table/useDisableRow.js +4 -4
- package/components/table/useDraggable.d.ts +3 -2
- package/components/table/useDraggable.js +11 -15
- package/components/table/useGroup.d.ts +9 -3
- package/components/table/useGroup.js +48 -37
- package/components/table/useMerge.d.ts +2 -1
- package/components/table/useMerge.js +5 -4
- package/components/table/usePagination.d.ts +8 -0
- package/components/table/usePagination.js +81 -0
- package/components/table/useStickyScrollbar.js +2 -2
- package/components/table/useTree.d.ts +2 -1
- package/components/table/useTree.js +3 -4
- package/components/table/useWidth.js +2 -2
- package/components/tabs/index.d.ts +1 -1
- package/components/tabs/index.js +1 -1
- package/components/tabs/index.spec.js +67 -0
- package/components/tabs/index.vdt.js +9 -4
- package/components/tabs/styles.js +32 -34
- package/components/tabs/useScroll.d.ts +1 -1
- package/components/tabs/useScroll.js +75 -48
- package/components/tag/base.d.ts +1 -0
- package/components/tag/base.js +1 -1
- package/components/tag/index.d.ts +1 -0
- package/components/tag/index.js +2 -1
- package/components/tag/index.spec.js +147 -4
- package/components/tag/styles.d.ts +67 -0
- package/components/tag/styles.js +33 -8
- package/components/tag/tags.d.ts +27 -0
- package/components/tag/tags.js +51 -0
- package/components/tag/tags.vdt.js +91 -0
- package/components/tag/useChildren.d.ts +2 -0
- package/components/tag/useChildren.js +39 -0
- package/components/tag/useDraggable.d.ts +3 -0
- package/components/tag/useDraggable.js +89 -0
- package/components/tag/useNowrap.d.ts +7 -0
- package/components/tag/useNowrap.js +115 -0
- package/components/timepicker/index.spec.js +1 -1
- package/components/tooltip/content.d.ts +3 -2
- package/components/tooltip/content.js +18 -1
- package/components/tooltip/content.vdt.js +22 -10
- package/components/tooltip/index.spec.js +147 -92
- package/components/tooltip/styles.d.ts +23 -0
- package/components/tooltip/styles.js +2 -2
- package/components/tooltip/tooltip.d.ts +1 -1
- package/components/tooltip/tooltip.js +11 -11
- package/components/transfer/index.vdt.js +14 -3
- package/components/types.d.ts +1 -0
- package/components/upload/index.spec.js +5 -6
- package/components/upload/index.vdt.js +7 -5
- package/components/utils.d.ts +2 -0
- package/components/utils.js +24 -3
- package/components/virtual.d.ts +8 -0
- package/components/virtual.js +126 -0
- package/hooks/useResizeObserver.d.ts +1 -1
- package/hooks/useResizeObserver.js +19 -6
- package/i18n/en-US.d.ts +4 -1
- package/i18n/en-US.js +6 -2
- package/index.d.ts +5 -3
- package/index.js +5 -3
- package/package.json +2 -2
- package/styles/fonts/iconfont.eot +0 -0
- package/styles/fonts/iconfont.js +2 -2
- package/styles/fonts/iconfont.svg +35 -35
- package/styles/fonts/iconfont.ttf +0 -0
- package/styles/fonts/iconfont.woff +0 -0
- package/styles/fonts/ionicons.js +3 -3
- package/styles/global.js +1 -1
- package/yarn-error.log +41 -43
- package/components/table/useResizeObserver.d.ts +0 -2
- package/components/table/useResizeObserver.js +0 -20
|
@@ -83,7 +83,7 @@ export function makePanelStyles() {
|
|
|
83
83
|
return /*#__PURE__*/css("display:flex;.k-datepicker-shortcuts{width:", datepicker.shortcuts.width, ";padding:", datepicker.shortcuts.padding, ";border-right:", datepicker.border, ";}.k-datepicker-shortcut{height:", datepicker.shortcuts.shortcut.height, ";line-height:", datepicker.shortcuts.shortcut.height, ";padding:", datepicker.shortcuts.shortcut.padding, ";cursor:pointer;&:hover{background:", datepicker.shortcuts.shortcut.hoverBgcolor, ";}}.k-datepicker-calendars{display:flex;}.k-datepicker-calendar-wrapper{&:nth-child(2){border-left:", datepicker.border, ";}.k-tabs{border:none;.k-tabs-wrapper{float:none;}.k-tab{width:50%;}}}.k-datepicker-footer{border-top:", datepicker.border, ";padding:", datepicker.footer.padding, ";text-align:right;}");
|
|
84
84
|
}
|
|
85
85
|
export function makeCalendarStyles() {
|
|
86
|
-
return /*#__PURE__*/css("padding:", datepicker.padding, ";width:", datepicker.width, ";position:relative;.k-datepicker-month{display:flex;padding:", datepicker.month.padding, ";}.k-month-values{flex:1;font-size:14px;text-align:center;cursor:pointer;overflow:hidden;position:relative;}.k-month-value{margin:0 ", datepicker.month.valueGap, ";line-height:", theme.small.height, ";&:hover{color:", theme.color.primary, ";}},.k-weekdays{display:flex;border-bottom:", datepicker.border, ";padding:", datepicker.weekday.padding, ";}.k-weekday{flex:1;text-align:center;}.k-calendar-item{text-align:center;margin:", datepicker.item.gutter, ";aspect-ratio:1;display:flex;align-items:center;cursor:pointer;position:relative;border-radius:", datepicker.item.borderRadius, "
|
|
86
|
+
return /*#__PURE__*/css("padding:", datepicker.padding, ";width:", datepicker.width, ";position:relative;.k-datepicker-month{display:flex;padding:", datepicker.month.padding, ";}.k-prev .k-icon,.k-next .k-icon{margin:0 -5px!important;}.k-month-values{flex:1;font-size:14px;text-align:center;cursor:pointer;overflow:hidden;position:relative;}.k-month-value{margin:0 ", datepicker.month.valueGap, ";line-height:", theme.small.height, ";&:hover{color:", theme.color.primary, ";}},.k-weekdays{display:flex;border-bottom:", datepicker.border, ";padding:", datepicker.weekday.padding, ";}.k-weekday{flex:1;text-align:center;}.k-calendar-item{text-align:center;margin:", datepicker.item.gutter, ";aspect-ratio:1;display:flex;align-items:center;cursor:pointer;position:relative;border-radius:", datepicker.item.borderRadius, ";.k-value{border-radius:", datepicker.item.borderRadius, ";}&.k-hover{background:", datepicker.item.hoverBgColor, ";}&.k-exceed{color:", datepicker.item.exceedColor, ";}&.k-today .k-value{border:", datepicker.item.todayBorder, ";}&.k-active{background:", datepicker.item.active.bgColor, ";color:", datepicker.item.active.color, ";&.k-today .k-value{border-color:", datepicker.item.active.todayBorderColor, ";}}&.k-disabled{color:", datepicker.item.disabled.color, ";cursor:not-allowed;background:", datepicker.item.disabled.hoverBgColor, ";}&.k-in-range:after{content:'';display:block;position:absolute;box-sizing:content-box;background:", datepicker.item.range.bgColor, ";width:100%;height:100%;left:-", datepicker.item.gutter, ";padding:0 ", datepicker.item.gutter, ";z-index:-1;}.k-value{flex:1;display:flex;align-items:center;justify-content:center;height:100%;}}.k-days{display:grid;grid-template-columns:repeat(7, 1fr);}.k-years{display:grid;grid-template-columns:repeat(4, 1fr);}");
|
|
87
87
|
}
|
|
88
88
|
export function makeTimeStyles() {
|
|
89
89
|
return /*#__PURE__*/css("display:flex;padding:", datepicker.padding, ";width:", datepicker.width, ";position:relative;.k-scroll-select{flex:1;height:305px;}");
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { StateValueItem, DayjsValue } from './basepicker';
|
|
2
|
-
import { Dayjs } from 'dayjs';
|
|
2
|
+
import dayjs, { Dayjs } from 'dayjs';
|
|
3
3
|
import type { useFormats } from './useFormats';
|
|
4
4
|
import type { useDisabled } from './useDisabled';
|
|
5
5
|
import { PanelFlags, usePanel } from './usePanel';
|
|
6
6
|
export declare function useValue(formats: ReturnType<typeof useFormats>, disabled: ReturnType<typeof useDisabled>, panel: ReturnType<typeof usePanel>): {
|
|
7
7
|
format: () => string | string[];
|
|
8
8
|
onConfirm: () => void;
|
|
9
|
-
onChangeTime: (date: Dayjs, flag: PanelFlags) => void;
|
|
10
|
-
getTimeValue: (flag: PanelFlags) => Dayjs | null | undefined;
|
|
9
|
+
onChangeTime: (date: dayjs.Dayjs, flag: PanelFlags) => void;
|
|
10
|
+
getTimeValue: (flag: PanelFlags) => dayjs.Dayjs | null | undefined;
|
|
11
11
|
convertToDayjs: (v: import("./basepicker").Value | [import("./basepicker").Value, import("./basepicker").Value] | import("./basepicker").Value[] | [import("./basepicker").Value, import("./basepicker").Value][] | null | undefined) => DayjsValue;
|
|
12
12
|
getDayjsValue: () => DayjsValue;
|
|
13
13
|
value: import("../../hooks/useState").State<import("./basepicker").StateValue>;
|
|
@@ -6,7 +6,9 @@ import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js/instance/slic
|
|
|
6
6
|
import _sortInstanceProperty from "@babel/runtime-corejs3/core-js/instance/sort";
|
|
7
7
|
import { useInstance } from 'intact-react';
|
|
8
8
|
import { useValue as useValueBase } from './basepicker';
|
|
9
|
+
import dayjs from 'dayjs';
|
|
9
10
|
import { last } from '../utils';
|
|
11
|
+
import { endTime } from './helpers';
|
|
10
12
|
import { PanelTypes, PanelFlags } from './usePanel';
|
|
11
13
|
export function useValue(formats, disabled, panel) {
|
|
12
14
|
var instance = useInstance();
|
|
@@ -41,21 +43,21 @@ export function useValue(formats, disabled, panel) {
|
|
|
41
43
|
type = _instance$get3.type,
|
|
42
44
|
range = _instance$get3.range;
|
|
43
45
|
|
|
44
|
-
var _value
|
|
45
|
-
|
|
46
|
-
var minDate = disabled.minDate.value;
|
|
47
|
-
|
|
48
|
-
if (minDate && _value.isBefore(minDate)) {
|
|
49
|
-
_value = minDate;
|
|
50
|
-
}
|
|
46
|
+
var _value;
|
|
51
47
|
|
|
52
48
|
if (range) {
|
|
53
49
|
var oldValue = last(value.value);
|
|
54
50
|
|
|
55
51
|
if (!oldValue || oldValue.length === 2) {
|
|
56
|
-
|
|
52
|
+
/**
|
|
53
|
+
* if we select the first value or re-select the value
|
|
54
|
+
* no matter what the flag is, we should set flag to start panel
|
|
55
|
+
* #877
|
|
56
|
+
*/
|
|
57
|
+
flag = PanelFlags.Start;
|
|
58
|
+
_value = [fixDatetimeWithMinDate(v)];
|
|
57
59
|
} else {
|
|
58
|
-
_value = [oldValue[0], v];
|
|
60
|
+
_value = [oldValue[0], fixDatetimeWithMaxDate(v)];
|
|
59
61
|
|
|
60
62
|
_sortInstanceProperty(_value).call(_value, function (a, b) {
|
|
61
63
|
return a.isAfter(b) ? 1 : -1;
|
|
@@ -63,6 +65,8 @@ export function useValue(formats, disabled, panel) {
|
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
instance.trigger('selecting', _value);
|
|
68
|
+
} else {
|
|
69
|
+
_value = fixDatetimeWithMinDate(v);
|
|
66
70
|
}
|
|
67
71
|
|
|
68
72
|
setValue(_value, false);
|
|
@@ -74,6 +78,31 @@ export function useValue(formats, disabled, panel) {
|
|
|
74
78
|
}
|
|
75
79
|
}
|
|
76
80
|
|
|
81
|
+
function fixDatetimeWithMinDate(v) {
|
|
82
|
+
// the datetime must be greater than minDate, #406
|
|
83
|
+
var minDate = disabled.minDate.value;
|
|
84
|
+
|
|
85
|
+
if (minDate && v.isBefore(minDate)) {
|
|
86
|
+
return minDate;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return v;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function fixDatetimeWithMaxDate(v) {
|
|
93
|
+
// the tiem of end datetime should be set to 23:59:59, #878
|
|
94
|
+
var maxDate = disabled.maxDate.value;
|
|
95
|
+
var date = v.toDate();
|
|
96
|
+
endTime(date);
|
|
97
|
+
v = dayjs(date);
|
|
98
|
+
|
|
99
|
+
if (maxDate && v.isAfter(maxDate)) {
|
|
100
|
+
return maxDate;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return v;
|
|
104
|
+
}
|
|
105
|
+
|
|
77
106
|
return _extends({
|
|
78
107
|
value: value,
|
|
79
108
|
setValue: setValue,
|
|
@@ -12,7 +12,7 @@ export declare class DCallout extends DShape {
|
|
|
12
12
|
rotatable?: boolean | undefined;
|
|
13
13
|
editable?: boolean | undefined;
|
|
14
14
|
connectable?: boolean | undefined;
|
|
15
|
-
strokeStyle?: "
|
|
15
|
+
strokeStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
16
16
|
label?: string | number | undefined;
|
|
17
17
|
style?: Record<string, string | number> | undefined;
|
|
18
18
|
data?: any;
|
|
@@ -12,7 +12,7 @@ export declare class DCircle extends DShape {
|
|
|
12
12
|
rotatable?: boolean | undefined;
|
|
13
13
|
editable?: boolean | undefined;
|
|
14
14
|
connectable?: boolean | undefined;
|
|
15
|
-
strokeStyle?: "
|
|
15
|
+
strokeStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
16
16
|
label?: string | number | undefined;
|
|
17
17
|
style?: Record<string, string | number> | undefined;
|
|
18
18
|
data?: any;
|
|
@@ -12,7 +12,7 @@ export declare class DDocument extends DShape {
|
|
|
12
12
|
rotatable?: boolean | undefined;
|
|
13
13
|
editable?: boolean | undefined;
|
|
14
14
|
connectable?: boolean | undefined;
|
|
15
|
-
strokeStyle?: "
|
|
15
|
+
strokeStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
16
16
|
label?: string | number | undefined;
|
|
17
17
|
style?: Record<string, string | number> | undefined;
|
|
18
18
|
data?: any;
|
|
@@ -12,7 +12,7 @@ export declare class DEllipse extends DShape {
|
|
|
12
12
|
rotatable?: boolean | undefined;
|
|
13
13
|
editable?: boolean | undefined;
|
|
14
14
|
connectable?: boolean | undefined;
|
|
15
|
-
strokeStyle?: "
|
|
15
|
+
strokeStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
16
16
|
label?: string | number | undefined;
|
|
17
17
|
style?: Record<string, string | number> | undefined;
|
|
18
18
|
data?: any;
|
|
@@ -12,7 +12,7 @@ export declare class DHexagon extends DShape {
|
|
|
12
12
|
rotatable?: boolean | undefined;
|
|
13
13
|
editable?: boolean | undefined;
|
|
14
14
|
connectable?: boolean | undefined;
|
|
15
|
-
strokeStyle?: "
|
|
15
|
+
strokeStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
16
16
|
label?: string | number | undefined;
|
|
17
17
|
style?: Record<string, string | number> | undefined;
|
|
18
18
|
data?: any;
|
|
@@ -18,7 +18,7 @@ export declare class DImage extends DShape<DImageProps> {
|
|
|
18
18
|
rotatable?: boolean | undefined;
|
|
19
19
|
editable?: boolean | undefined;
|
|
20
20
|
connectable?: boolean | undefined;
|
|
21
|
-
strokeStyle?: "
|
|
21
|
+
strokeStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
22
22
|
label?: string | number | undefined;
|
|
23
23
|
style?: Record<string, string | number> | undefined;
|
|
24
24
|
data?: any;
|
|
@@ -12,7 +12,7 @@ export declare class DParallelogram extends DShape {
|
|
|
12
12
|
rotatable?: boolean | undefined;
|
|
13
13
|
editable?: boolean | undefined;
|
|
14
14
|
connectable?: boolean | undefined;
|
|
15
|
-
strokeStyle?: "
|
|
15
|
+
strokeStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
16
16
|
label?: string | number | undefined;
|
|
17
17
|
style?: Record<string, string | number> | undefined;
|
|
18
18
|
data?: any;
|
|
@@ -18,7 +18,7 @@ export declare class DRectangle extends DShape<DRectangleProps> {
|
|
|
18
18
|
rotatable?: boolean | undefined;
|
|
19
19
|
editable?: boolean | undefined;
|
|
20
20
|
connectable?: boolean | undefined;
|
|
21
|
-
strokeStyle?: "
|
|
21
|
+
strokeStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
22
22
|
label?: string | number | undefined;
|
|
23
23
|
style?: Record<string, string | number> | undefined;
|
|
24
24
|
data?: any;
|
|
@@ -13,7 +13,7 @@ export declare class DSquare extends DRectangle {
|
|
|
13
13
|
rotatable?: boolean | undefined;
|
|
14
14
|
editable?: boolean | undefined;
|
|
15
15
|
connectable?: boolean | undefined;
|
|
16
|
-
strokeStyle?: "
|
|
16
|
+
strokeStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
17
17
|
label?: string | number | undefined;
|
|
18
18
|
style?: Record<string, string | number> | undefined;
|
|
19
19
|
data?: any;
|
|
@@ -12,7 +12,7 @@ export declare class DText extends DShape {
|
|
|
12
12
|
rotatable?: boolean | undefined;
|
|
13
13
|
editable?: boolean | undefined;
|
|
14
14
|
connectable?: boolean | undefined;
|
|
15
|
-
strokeStyle?: "
|
|
15
|
+
strokeStyle?: "solid" | "dashed" | "dotted" | undefined;
|
|
16
16
|
label?: string | number | undefined;
|
|
17
17
|
style?: Record<string, string | number> | undefined;
|
|
18
18
|
data?: any;
|
|
@@ -41,11 +41,12 @@ export default function ($props, $blocks, $__proto__) {
|
|
|
41
41
|
}), (_$blocks['body'] = function ($super) {
|
|
42
42
|
return [_$ce(2, 'div', [!hideIcon && !icon ? _$cc(Icon, {
|
|
43
43
|
'className': _$cn(iconClassName || {
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
})
|
|
44
|
+
"k-icon-success-fill": type === 'success',
|
|
45
|
+
"k-icon-warning-fill": type === 'warning',
|
|
46
|
+
"k-icon-error-fill": type === 'error',
|
|
47
|
+
"k-icon-question-fill": type === 'confirm'
|
|
48
|
+
}),
|
|
49
|
+
'color': type === 'error' ? 'danger' : type === 'confirm' ? 'primary' : type
|
|
49
50
|
}) : undefined, icon], 0, 'k-dialog-tip-icon'), _$ce(2, 'div', [title ? _$ce(2, 'div', title, 0, 'k-alert-dialog-title') : undefined, content], 0, 'k-alert-dialog-wrapper')];
|
|
50
51
|
}, __$blocks['body'] = function ($super, data) {
|
|
51
52
|
var block = $blocks['body'];
|
|
@@ -201,7 +201,7 @@ describe('Dialog', function () {
|
|
|
201
201
|
var _mount4 = mount(Demo),
|
|
202
202
|
instance = _mount4[0];
|
|
203
203
|
|
|
204
|
-
expect(getElement('.k-dialog-footer').innerText).to.eql('dialog footer
|
|
204
|
+
expect(getElement('.k-dialog-footer').innerText).to.eql('dialog footer 取消确定');
|
|
205
205
|
});
|
|
206
206
|
it('basic test', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
207
207
|
var _mount5, instance, element, btn, dialog;
|
|
@@ -243,7 +243,7 @@ describe('Dialog', function () {
|
|
|
243
243
|
return wait(500);
|
|
244
244
|
|
|
245
245
|
case 20:
|
|
246
|
-
expect(document.body.getAttribute('style')).to.be.
|
|
246
|
+
expect(!!document.body.getAttribute('style')).to.be.false;
|
|
247
247
|
|
|
248
248
|
case 21:
|
|
249
249
|
case "end":
|
|
@@ -347,7 +347,7 @@ describe('Dialog', function () {
|
|
|
347
347
|
return wait(500);
|
|
348
348
|
|
|
349
349
|
case 18:
|
|
350
|
-
expect(document.body.getAttribute('style')).to.be.
|
|
350
|
+
expect(!!document.body.getAttribute('style')).to.be.false;
|
|
351
351
|
|
|
352
352
|
case 19:
|
|
353
353
|
case "end":
|
|
@@ -439,7 +439,7 @@ describe('Dialog', function () {
|
|
|
439
439
|
|
|
440
440
|
case 4:
|
|
441
441
|
dialog = expectDialog();
|
|
442
|
-
dialog.querySelector('.k-
|
|
442
|
+
dialog.querySelector('.k-dialog-ok').click();
|
|
443
443
|
_context12.next = 8;
|
|
444
444
|
return wait();
|
|
445
445
|
|
|
@@ -472,7 +472,7 @@ describe('Dialog', function () {
|
|
|
472
472
|
|
|
473
473
|
case 21:
|
|
474
474
|
dialog = expectDialog();
|
|
475
|
-
dialog.querySelector('.k-
|
|
475
|
+
dialog.querySelector('.k-dialog-ok').click();
|
|
476
476
|
cb2 = sinon.spy();
|
|
477
477
|
Dialog.confirm({
|
|
478
478
|
content: 'test',
|
|
@@ -489,7 +489,7 @@ describe('Dialog', function () {
|
|
|
489
489
|
|
|
490
490
|
case 31:
|
|
491
491
|
expect(cb2.callCount).to.eql(0);
|
|
492
|
-
getElement('.k-dialog').querySelector('.k-
|
|
492
|
+
getElement('.k-dialog').querySelector('.k-dialog-ok').click();
|
|
493
493
|
|
|
494
494
|
case 33:
|
|
495
495
|
case "end":
|
|
@@ -3,6 +3,7 @@ import { Options, Feedback } from '../position';
|
|
|
3
3
|
import { Portal, PortalProps } from '../portal';
|
|
4
4
|
import { FeedbackCallback } from './usePosition';
|
|
5
5
|
import type { Events } from '../types';
|
|
6
|
+
import { Virtual } from '../virtual';
|
|
6
7
|
export declare type Position = Options;
|
|
7
8
|
export declare type PositionShorthand = 'left' | 'bottom' | 'right' | 'top';
|
|
8
9
|
export declare const DROPDOWN = "Dropdown";
|
|
@@ -12,6 +13,7 @@ export interface DropdownProps {
|
|
|
12
13
|
disabled?: boolean;
|
|
13
14
|
value?: boolean;
|
|
14
15
|
position?: Position | 'left' | 'bottom' | 'right' | 'top';
|
|
16
|
+
collison?: Position['collision'];
|
|
15
17
|
of?: 'self' | 'parent' | Event;
|
|
16
18
|
container?: PortalProps['container'];
|
|
17
19
|
}
|
|
@@ -21,6 +23,8 @@ export interface DropdownEvents {
|
|
|
21
23
|
hide: [];
|
|
22
24
|
mouseenter: [MouseEvent];
|
|
23
25
|
mouseleave: [MouseEvent];
|
|
26
|
+
click: [MouseEvent];
|
|
27
|
+
contextmenu: [MouseEvent];
|
|
24
28
|
positioned: [Feedback];
|
|
25
29
|
}
|
|
26
30
|
export interface DropdownBlocks {
|
|
@@ -30,7 +34,7 @@ export declare class Dropdown<T extends DropdownProps = DropdownProps, E extends
|
|
|
30
34
|
static typeDefs: Required<TypeDefs<DropdownProps>>;
|
|
31
35
|
static defaults: () => Partial<DropdownProps>;
|
|
32
36
|
static events: Events<DropdownEvents>;
|
|
33
|
-
static template: (this: Dropdown) => (VNode<
|
|
37
|
+
static template: (this: Dropdown) => (VNode<typeof Virtual> | VNode<typeof Portal>)[];
|
|
34
38
|
menuVNode: VNode | null;
|
|
35
39
|
dropdown: Dropdown | null;
|
|
36
40
|
rootDropdown: Dropdown | null;
|
|
@@ -41,9 +45,7 @@ export declare class Dropdown<T extends DropdownProps = DropdownProps, E extends
|
|
|
41
45
|
value: boolean;
|
|
42
46
|
};
|
|
43
47
|
};
|
|
44
|
-
protected
|
|
45
|
-
private timer;
|
|
46
|
-
private triggerProps;
|
|
48
|
+
protected timer: number | undefined;
|
|
47
49
|
init(): void;
|
|
48
50
|
show(shouldFocus?: boolean): void;
|
|
49
51
|
hide(immediately?: boolean): void;
|
|
@@ -53,6 +55,4 @@ export declare class Dropdown<T extends DropdownProps = DropdownProps, E extends
|
|
|
53
55
|
private onContextMenu;
|
|
54
56
|
private onLeave;
|
|
55
57
|
private initEventCallbacks;
|
|
56
|
-
private callOriginalCallback;
|
|
57
|
-
private normalizeTriggerProps;
|
|
58
58
|
}
|
|
@@ -3,14 +3,15 @@ import _inheritsLoose from "@babel/runtime-corejs3/helpers/inheritsLoose";
|
|
|
3
3
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js/instance/concat";
|
|
4
4
|
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js/instance/filter";
|
|
5
5
|
import { __decorate } from "tslib";
|
|
6
|
-
import { Component, createVNode as h,
|
|
7
|
-
import { bind,
|
|
8
|
-
import {
|
|
6
|
+
import { Component, createVNode as h, provide, inject, findDomFromVNode, nextTick } from 'intact-react';
|
|
7
|
+
import { bind, getRestProps } from '../utils';
|
|
8
|
+
import { noop } from 'intact-shared';
|
|
9
9
|
import { cx } from '@emotion/css';
|
|
10
10
|
import { useDocumentClick, containsOrEqual } from '../../hooks/useDocumentClick';
|
|
11
11
|
import { Portal } from '../portal';
|
|
12
12
|
import { useShowHideEvents } from '../../hooks/useShowHideEvents';
|
|
13
13
|
import { usePosition } from './usePosition';
|
|
14
|
+
import { Virtual } from '../virtual';
|
|
14
15
|
export var DROPDOWN = 'Dropdown';
|
|
15
16
|
export var ROOT_DROPDOWN = 'RootDropdown';
|
|
16
17
|
var typeDefs = {
|
|
@@ -20,13 +21,13 @@ var typeDefs = {
|
|
|
20
21
|
position: [Object, 'left', 'bottom', 'right', 'top'],
|
|
21
22
|
// Event is undefined in NodeJs
|
|
22
23
|
of: ['self', 'parent', typeof Event === 'undefined' ? undefined : Event],
|
|
23
|
-
container: [String, Function]
|
|
24
|
+
container: [String, Function],
|
|
25
|
+
collison: ['none', 'fit', 'flip', 'flipfit', Array]
|
|
24
26
|
};
|
|
25
27
|
|
|
26
28
|
var defaults = function defaults() {
|
|
27
29
|
return {
|
|
28
30
|
trigger: 'hover',
|
|
29
|
-
position: {},
|
|
30
31
|
of: 'self'
|
|
31
32
|
};
|
|
32
33
|
};
|
|
@@ -37,6 +38,8 @@ var events = {
|
|
|
37
38
|
hide: true,
|
|
38
39
|
mouseenter: true,
|
|
39
40
|
mouseleave: true,
|
|
41
|
+
click: true,
|
|
42
|
+
contextmenu: true,
|
|
40
43
|
positioned: true
|
|
41
44
|
};
|
|
42
45
|
export var Dropdown = /*#__PURE__*/function (_Component) {
|
|
@@ -57,9 +60,7 @@ export var Dropdown = /*#__PURE__*/function (_Component) {
|
|
|
57
60
|
_this.rootDropdown = null;
|
|
58
61
|
_this.showedDropdown = null;
|
|
59
62
|
_this.positionHook = usePosition();
|
|
60
|
-
_this.alwaysPortal = false;
|
|
61
63
|
_this.timer = undefined;
|
|
62
|
-
_this.triggerProps = null;
|
|
63
64
|
return _this;
|
|
64
65
|
}
|
|
65
66
|
|
|
@@ -97,7 +98,13 @@ export var Dropdown = /*#__PURE__*/function (_Component) {
|
|
|
97
98
|
|
|
98
99
|
if (this.get('disabled')) return;
|
|
99
100
|
clearTimeout(this.timer);
|
|
100
|
-
this.set('value', true);
|
|
101
|
+
this.set('value', true); // should show parent dropdown
|
|
102
|
+
|
|
103
|
+
var parentDropdown = this.dropdown;
|
|
104
|
+
|
|
105
|
+
if (parentDropdown) {
|
|
106
|
+
parentDropdown.show();
|
|
107
|
+
}
|
|
101
108
|
|
|
102
109
|
if (shouldFocus) {
|
|
103
110
|
nextTick(function () {
|
|
@@ -115,10 +122,16 @@ export var Dropdown = /*#__PURE__*/function (_Component) {
|
|
|
115
122
|
|
|
116
123
|
if (this.get('disabled')) return;
|
|
117
124
|
if (!this.get('value')) return;
|
|
125
|
+
var showedDropdown = this.showedDropdown;
|
|
126
|
+
|
|
127
|
+
if (showedDropdown) {
|
|
128
|
+
showedDropdown.hide(immediately);
|
|
129
|
+
}
|
|
118
130
|
|
|
119
131
|
if (immediately) {
|
|
120
132
|
this.set('value', false);
|
|
121
133
|
} else {
|
|
134
|
+
clearTimeout(this.timer);
|
|
122
135
|
this.timer = window.setTimeout(function () {
|
|
123
136
|
_this4.set('value', false);
|
|
124
137
|
}, 200);
|
|
@@ -138,23 +151,24 @@ export var Dropdown = /*#__PURE__*/function (_Component) {
|
|
|
138
151
|
};
|
|
139
152
|
|
|
140
153
|
_proto.onEnter = function onEnter(e) {
|
|
141
|
-
this.callOriginalCallback(e.type === 'click' ? 'ev-click' : 'ev-mouseenter', e);
|
|
142
154
|
this.show();
|
|
155
|
+
this.trigger(e.type, e);
|
|
143
156
|
};
|
|
144
157
|
|
|
145
158
|
_proto.onContextMenu = function onContextMenu(e) {
|
|
146
|
-
this.callOriginalCallback('ev-contextmenu', e);
|
|
147
159
|
e.preventDefault();
|
|
148
160
|
this.set('of', e);
|
|
149
161
|
this.show();
|
|
162
|
+
this.trigger('contextmenu', e);
|
|
150
163
|
};
|
|
151
164
|
|
|
152
165
|
_proto.onLeave = function onLeave(e) {
|
|
153
|
-
this.callOriginalCallback('ev-mouseleave', e);
|
|
154
166
|
this.hide();
|
|
167
|
+
this.trigger(e.type, e);
|
|
155
168
|
};
|
|
156
169
|
|
|
157
|
-
_proto.initEventCallbacks = function initEventCallbacks(
|
|
170
|
+
_proto.initEventCallbacks = function initEventCallbacks() {
|
|
171
|
+
var trigger = this.get('trigger');
|
|
158
172
|
var props = {};
|
|
159
173
|
|
|
160
174
|
switch (trigger) {
|
|
@@ -181,51 +195,6 @@ export var Dropdown = /*#__PURE__*/function (_Component) {
|
|
|
181
195
|
return props;
|
|
182
196
|
};
|
|
183
197
|
|
|
184
|
-
_proto.callOriginalCallback = function callOriginalCallback(name, e) {
|
|
185
|
-
var callback = this.triggerProps[name];
|
|
186
|
-
var callbackOnDropdown = this.get(name);
|
|
187
|
-
if (isFunction(callback)) callback(e);
|
|
188
|
-
if (isFunction(callbackOnDropdown)) callbackOnDropdown(e);
|
|
189
|
-
};
|
|
190
|
-
|
|
191
|
-
_proto.normalizeTriggerProps = function normalizeTriggerProps(props) {
|
|
192
|
-
// if use kpc in react or vue, normalize props by Wrapper.props.vnode;
|
|
193
|
-
var vnode = props.vnode;
|
|
194
|
-
if (!vnode) return props; // maybe we render the intact component in react slot property, in this case
|
|
195
|
-
// the $isReact is false. so use the vnode $$typeof field as gauge
|
|
196
|
-
|
|
197
|
-
if (vnode.$$typeof || this.$isVueNext) {
|
|
198
|
-
var _props = vnode.props;
|
|
199
|
-
if (!_props) return props;
|
|
200
|
-
return {
|
|
201
|
-
vnode: vnode,
|
|
202
|
-
'ev-click': _props.onClick,
|
|
203
|
-
'ev-mouseenter': _props.onMouseEnter,
|
|
204
|
-
'ev-mouseleave': _props.onMouseLeave,
|
|
205
|
-
'ev-contextmenu': _props.onContextMenu,
|
|
206
|
-
className: _props.className || _props.class
|
|
207
|
-
/* vue-next */
|
|
208
|
-
|
|
209
|
-
};
|
|
210
|
-
} else if (this.$isVue) {
|
|
211
|
-
var data = vnode.data;
|
|
212
|
-
var on = data && data.on || EMPTY_OBJ;
|
|
213
|
-
var ret = {
|
|
214
|
-
vnode: vnode
|
|
215
|
-
};
|
|
216
|
-
['click', 'mouseenter', 'mouseleave', 'contextmenu'].forEach(function (event) {
|
|
217
|
-
var method = on[event];
|
|
218
|
-
|
|
219
|
-
if (method) {
|
|
220
|
-
ret["ev-" + event] = method;
|
|
221
|
-
}
|
|
222
|
-
});
|
|
223
|
-
return ret;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
return props;
|
|
227
|
-
};
|
|
228
|
-
|
|
229
198
|
return Dropdown;
|
|
230
199
|
}(Component);
|
|
231
200
|
Dropdown.$doubleVNodes = true;
|
|
@@ -255,23 +224,23 @@ Dropdown.template = function () {
|
|
|
255
224
|
var _children = children,
|
|
256
225
|
trigger = _children[0],
|
|
257
226
|
menu = _children[1];
|
|
258
|
-
var
|
|
259
|
-
|
|
260
|
-
var
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
});
|
|
268
|
-
clonedTrigger.className = className;
|
|
227
|
+
var props = this.initEventCallbacks();
|
|
228
|
+
|
|
229
|
+
var _this$get = this.get(),
|
|
230
|
+
className = _this$get.className,
|
|
231
|
+
value = _this$get.value,
|
|
232
|
+
container = _this$get.container;
|
|
233
|
+
|
|
234
|
+
className = cx((_cx = {
|
|
235
|
+
'k-dropdown-open': value
|
|
236
|
+
}, _cx[className] = !!className, _cx));
|
|
269
237
|
this.menuVNode = menu;
|
|
270
|
-
return [
|
|
271
|
-
|
|
238
|
+
return [h(Virtual, _extends({}, props, getRestProps(this), {
|
|
239
|
+
className: className
|
|
240
|
+
}), trigger), h(Portal, {
|
|
272
241
|
children: menu,
|
|
273
|
-
container:
|
|
274
|
-
})
|
|
242
|
+
container: container
|
|
243
|
+
})];
|
|
275
244
|
};
|
|
276
245
|
|
|
277
246
|
__decorate([bind], Dropdown.prototype, "position", null);
|
|
@@ -288,9 +257,10 @@ function useDocumentClickForDropdown(dropdown) {
|
|
|
288
257
|
};
|
|
289
258
|
|
|
290
259
|
var _useDocumentClick = useDocumentClick(elementRef, function (e) {
|
|
291
|
-
// case 1: if click
|
|
292
|
-
// case 2: if right click on trigger and
|
|
293
|
-
// case 3: if click on trigger and
|
|
260
|
+
// case 1: if click a trigger and its trigger type is hover, ignore it
|
|
261
|
+
// case 2: if right click on a trigger and its trigger type is contextmenu, ignore it
|
|
262
|
+
// case 3: if click on a trigger and its trigger type is focus, do nothing
|
|
263
|
+
// case 3: if click on sub-dropdown, we should also show the parent dropdown, so ignore it
|
|
294
264
|
var trigger = dropdown.get('trigger');
|
|
295
265
|
if (trigger === 'focus') return;
|
|
296
266
|
var isHover = trigger === 'hover';
|
|
@@ -305,6 +275,7 @@ function useDocumentClickForDropdown(dropdown) {
|
|
|
305
275
|
}
|
|
306
276
|
}
|
|
307
277
|
|
|
278
|
+
if (isSubDropdownElement(e.target, dropdown)) return;
|
|
308
279
|
dropdown.hide(true);
|
|
309
280
|
}, true),
|
|
310
281
|
addDocumentClick = _useDocumentClick[0],
|
|
@@ -314,6 +285,18 @@ function useDocumentClickForDropdown(dropdown) {
|
|
|
314
285
|
dropdown.on('hide', removeDocumentClick);
|
|
315
286
|
}
|
|
316
287
|
|
|
288
|
+
function isSubDropdownElement(elem, dropdown) {
|
|
289
|
+
var showedDropdown = dropdown.showedDropdown;
|
|
290
|
+
if (!showedDropdown) return false;
|
|
291
|
+
var subMenuElement = findDomFromVNode(showedDropdown.menuVNode, true);
|
|
292
|
+
|
|
293
|
+
if (containsOrEqual(subMenuElement, elem)) {
|
|
294
|
+
return true;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
return isSubDropdownElement(elem, showedDropdown);
|
|
298
|
+
}
|
|
299
|
+
|
|
317
300
|
function useHideLastMenuOnShow(dropdown) {
|
|
318
301
|
var parentDropdown = dropdown.dropdown;
|
|
319
302
|
dropdown.on('show', function () {
|