@king-design/intact 3.1.1-beta.3 → 3.1.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.
Files changed (249) hide show
  1. package/components/affix/styles.ts +4 -2
  2. package/components/badge/index.vdt +1 -1
  3. package/components/badge/styles.ts +4 -3
  4. package/components/breadcrumb/index.vdt +1 -1
  5. package/components/breadcrumb/styles.ts +4 -2
  6. package/components/button/styles.ts +7 -5
  7. package/components/card/styles.ts +4 -2
  8. package/components/carousel/styles.ts +7 -4
  9. package/components/cascader/index.vdt +2 -1
  10. package/components/cascader/styles.ts +7 -4
  11. package/components/checkbox/index.vdt +1 -1
  12. package/components/checkbox/styles.ts +4 -2
  13. package/components/code/styles.ts +3 -2
  14. package/components/collapse/index.spec.ts +1 -1
  15. package/components/collapse/styles.ts +7 -4
  16. package/components/colorpicker/styles.ts +7 -4
  17. package/components/copy/styles.ts +3 -2
  18. package/components/datepicker/styles.ts +10 -6
  19. package/components/diagram/styles.ts +3 -2
  20. package/components/dialog/styles.ts +10 -6
  21. package/components/drawer/styles.ts +4 -2
  22. package/components/dropdown/styles.ts +7 -4
  23. package/components/editable/styles.ts +4 -2
  24. package/components/form/index.md +1 -0
  25. package/components/form/index.spec.ts +17 -0
  26. package/components/form/item.ts +2 -0
  27. package/components/form/styles.ts +7 -4
  28. package/components/form/useDirty.ts +4 -0
  29. package/components/grid/styles.ts +12 -9
  30. package/components/icon/index.vdt +1 -1
  31. package/components/icon/styles.ts +4 -2
  32. package/components/input/styles.ts +8 -5
  33. package/components/layout/styles.ts +13 -9
  34. package/components/menu/demos/recursive.md +340 -0
  35. package/components/menu/styles.ts +21 -16
  36. package/components/message/styles.ts +7 -5
  37. package/components/pagination/styles.ts +4 -2
  38. package/components/popover/content.vdt +1 -1
  39. package/components/popover/demos/basic.md +1 -0
  40. package/components/popover/styles.ts +12 -2
  41. package/components/progress/styles.ts +4 -4
  42. package/components/radio/styles.ts +4 -2
  43. package/components/rate/styles.ts +4 -2
  44. package/components/scrollSelect/styles.ts +4 -2
  45. package/components/select/base.ts +3 -2
  46. package/components/select/base.vdt +1 -1
  47. package/components/select/styles.ts +10 -6
  48. package/components/skeleton/styles.ts +7 -4
  49. package/components/slider/styles.ts +4 -2
  50. package/components/spin/styles.ts +4 -4
  51. package/components/spinner/styles.ts +4 -3
  52. package/components/split/styles.ts +4 -2
  53. package/components/steps/index.vdt +2 -2
  54. package/components/steps/styles.ts +7 -5
  55. package/components/switch/styles.ts +4 -2
  56. package/components/table/column.ts +2 -0
  57. package/components/table/column.vdt +7 -3
  58. package/components/table/demos/basic.md +2 -2
  59. package/components/table/demos/fixColumn.md +3 -1
  60. package/components/table/demos/groupHeader.md +11 -11
  61. package/components/table/demos/scheme.md +1 -1
  62. package/components/table/index.spec.ts +8 -3
  63. package/components/table/styles.ts +11 -8
  64. package/components/table/table.vdt +3 -4
  65. package/components/table/useColumns.ts +1 -0
  66. package/components/table/useFixedColumns.ts +27 -49
  67. package/components/table/useGroup.ts +5 -0
  68. package/components/table/useResizable.ts +38 -10
  69. package/components/table/useWidth.ts +3 -0
  70. package/components/tabs/styles.ts +4 -2
  71. package/components/tag/styles.ts +7 -4
  72. package/components/timeline/styles.ts +7 -5
  73. package/components/timepicker/styles.ts +4 -2
  74. package/components/tip/styles.ts +4 -2
  75. package/components/tooltip/content.vdt +1 -1
  76. package/components/tooltip/styles.ts +4 -2
  77. package/components/transfer/styles.ts +4 -2
  78. package/components/tree/demos/checkbox.md +1 -0
  79. package/components/tree/demos/contextmenu.md +10 -1
  80. package/components/tree/index.spec.ts +7 -0
  81. package/components/tree/styles.ts +4 -2
  82. package/components/tree/useChecked.ts +3 -0
  83. package/components/treeSelect/styles.ts +4 -2
  84. package/components/upload/styles.ts +7 -4
  85. package/components/utils.ts +10 -4
  86. package/components/wave/styles.ts +4 -2
  87. package/es/components/affix/styles.d.ts +4 -1
  88. package/es/components/affix/styles.js +4 -2
  89. package/es/components/badge/index.vdt.js +1 -1
  90. package/es/components/badge/styles.d.ts +4 -1
  91. package/es/components/badge/styles.js +4 -2
  92. package/es/components/breadcrumb/index.vdt.js +1 -1
  93. package/es/components/breadcrumb/styles.d.ts +4 -1
  94. package/es/components/breadcrumb/styles.js +4 -2
  95. package/es/components/button/styles.d.ts +8 -2
  96. package/es/components/button/styles.js +7 -4
  97. package/es/components/card/styles.d.ts +4 -1
  98. package/es/components/card/styles.js +4 -2
  99. package/es/components/carousel/styles.d.ts +8 -2
  100. package/es/components/carousel/styles.js +7 -4
  101. package/es/components/cascader/index.vdt.js +3 -1
  102. package/es/components/cascader/styles.d.ts +8 -2
  103. package/es/components/cascader/styles.js +7 -4
  104. package/es/components/checkbox/index.vdt.js +1 -1
  105. package/es/components/checkbox/styles.d.ts +4 -1
  106. package/es/components/checkbox/styles.js +4 -2
  107. package/es/components/code/styles.d.ts +4 -1
  108. package/es/components/code/styles.js +3 -2
  109. package/es/components/collapse/index.spec.js +1 -1
  110. package/es/components/collapse/styles.d.ts +8 -2
  111. package/es/components/collapse/styles.js +7 -4
  112. package/es/components/colorpicker/styles.d.ts +8 -2
  113. package/es/components/colorpicker/styles.js +7 -4
  114. package/es/components/copy/styles.d.ts +4 -1
  115. package/es/components/copy/styles.js +3 -2
  116. package/es/components/datepicker/styles.d.ts +12 -3
  117. package/es/components/datepicker/styles.js +10 -6
  118. package/es/components/diagram/styles.d.ts +4 -1
  119. package/es/components/diagram/styles.js +3 -2
  120. package/es/components/dialog/styles.d.ts +12 -3
  121. package/es/components/dialog/styles.js +10 -6
  122. package/es/components/drawer/styles.d.ts +4 -1
  123. package/es/components/drawer/styles.js +4 -2
  124. package/es/components/dropdown/styles.d.ts +8 -2
  125. package/es/components/dropdown/styles.js +7 -4
  126. package/es/components/editable/styles.d.ts +4 -1
  127. package/es/components/editable/styles.js +4 -2
  128. package/es/components/form/index.spec.js +43 -0
  129. package/es/components/form/item.d.ts +1 -0
  130. package/es/components/form/item.js +2 -1
  131. package/es/components/form/styles.d.ts +8 -2
  132. package/es/components/form/styles.js +7 -4
  133. package/es/components/form/useDirty.js +4 -0
  134. package/es/components/grid/styles.d.ts +8 -2
  135. package/es/components/grid/styles.js +12 -13
  136. package/es/components/icon/index.vdt.js +1 -1
  137. package/es/components/icon/styles.d.ts +4 -1
  138. package/es/components/icon/styles.js +4 -2
  139. package/es/components/input/styles.d.ts +8 -2
  140. package/es/components/input/styles.js +7 -4
  141. package/es/components/layout/styles.d.ts +16 -4
  142. package/es/components/layout/styles.js +13 -8
  143. package/es/components/menu/styles.d.ts +16 -4
  144. package/es/components/menu/styles.js +14 -9
  145. package/es/components/message/styles.d.ts +8 -2
  146. package/es/components/message/styles.js +7 -4
  147. package/es/components/pagination/styles.d.ts +4 -1
  148. package/es/components/pagination/styles.js +4 -2
  149. package/es/components/popover/content.vdt.js +1 -1
  150. package/es/components/popover/styles.d.ts +4 -1
  151. package/es/components/popover/styles.js +8 -3
  152. package/es/components/progress/styles.d.ts +4 -1
  153. package/es/components/progress/styles.js +4 -2
  154. package/es/components/radio/styles.d.ts +4 -1
  155. package/es/components/radio/styles.js +4 -2
  156. package/es/components/rate/styles.d.ts +4 -1
  157. package/es/components/rate/styles.js +4 -2
  158. package/es/components/scrollSelect/styles.d.ts +4 -1
  159. package/es/components/scrollSelect/styles.js +4 -2
  160. package/es/components/select/base.js +3 -1
  161. package/es/components/select/base.vdt.js +1 -1
  162. package/es/components/select/styles.d.ts +12 -3
  163. package/es/components/select/styles.js +10 -6
  164. package/es/components/skeleton/styles.d.ts +8 -2
  165. package/es/components/skeleton/styles.js +7 -4
  166. package/es/components/slider/styles.d.ts +4 -1
  167. package/es/components/slider/styles.js +4 -2
  168. package/es/components/spin/styles.d.ts +4 -1
  169. package/es/components/spin/styles.js +4 -2
  170. package/es/components/spinner/styles.d.ts +4 -1
  171. package/es/components/spinner/styles.js +4 -2
  172. package/es/components/split/styles.d.ts +4 -1
  173. package/es/components/split/styles.js +4 -2
  174. package/es/components/steps/index.vdt.js +2 -2
  175. package/es/components/steps/styles.d.ts +4 -3
  176. package/es/components/steps/styles.js +9 -4
  177. package/es/components/switch/styles.d.ts +4 -1
  178. package/es/components/switch/styles.js +4 -2
  179. package/es/components/table/column.d.ts +1 -0
  180. package/es/components/table/column.js +2 -1
  181. package/es/components/table/column.vdt.js +9 -3
  182. package/es/components/table/index.spec.js +18 -11
  183. package/es/components/table/styles.d.ts +8 -2
  184. package/es/components/table/styles.js +8 -5
  185. package/es/components/table/table.vdt.js +3 -4
  186. package/es/components/table/useColumns.js +1 -0
  187. package/es/components/table/useFixedColumns.d.ts +3 -3
  188. package/es/components/table/useFixedColumns.js +27 -46
  189. package/es/components/table/useGroup.d.ts +1 -0
  190. package/es/components/table/useGroup.js +11 -1
  191. package/es/components/table/useResizable.js +41 -5
  192. package/es/components/table/useWidth.js +3 -0
  193. package/es/components/tabs/styles.d.ts +4 -1
  194. package/es/components/tabs/styles.js +4 -2
  195. package/es/components/tag/styles.d.ts +8 -2
  196. package/es/components/tag/styles.js +7 -4
  197. package/es/components/timeline/styles.d.ts +8 -2
  198. package/es/components/timeline/styles.js +7 -5
  199. package/es/components/timepicker/styles.d.ts +4 -1
  200. package/es/components/timepicker/styles.js +4 -2
  201. package/es/components/tip/styles.d.ts +4 -1
  202. package/es/components/tip/styles.js +4 -2
  203. package/es/components/tooltip/content.vdt.js +1 -1
  204. package/es/components/tooltip/styles.d.ts +4 -1
  205. package/es/components/tooltip/styles.js +4 -2
  206. package/es/components/transfer/styles.d.ts +4 -1
  207. package/es/components/transfer/styles.js +4 -2
  208. package/es/components/tree/index.spec.js +13 -1
  209. package/es/components/tree/styles.d.ts +4 -1
  210. package/es/components/tree/styles.js +4 -2
  211. package/es/components/tree/useChecked.js +4 -0
  212. package/es/components/treeSelect/styles.d.ts +4 -1
  213. package/es/components/treeSelect/styles.js +4 -2
  214. package/es/components/upload/styles.d.ts +8 -2
  215. package/es/components/upload/styles.js +7 -4
  216. package/es/components/utils.d.ts +10 -2
  217. package/es/components/utils.js +9 -2
  218. package/es/components/wave/styles.d.ts +4 -1
  219. package/es/components/wave/styles.js +4 -2
  220. package/es/i18n/en-US.d.ts +1 -0
  221. package/es/i18n/en-US.js +1 -0
  222. package/es/index.d.ts +2 -2
  223. package/es/index.js +2 -2
  224. package/es/site/data/components/menu/demos/recursive/index.d.ts +29 -0
  225. package/es/site/data/components/menu/demos/recursive/index.js +57 -0
  226. package/es/site/data/components/menu/demos/recursive/react.d.ts +2 -0
  227. package/es/site/data/components/menu/demos/recursive/react.js +69 -0
  228. package/es/site/data/components/popover/demos/basic/react.js +2 -1
  229. package/es/site/data/components/table/demos/basic/react.js +4 -2
  230. package/es/site/data/components/table/demos/fixColumn/react.js +2 -1
  231. package/es/site/data/components/table/demos/groupHeader/react.js +11 -20
  232. package/es/site/data/components/table/demos/scheme/react.js +2 -1
  233. package/es/site/data/components/tree/demos/checkbox/index.d.ts +12 -2
  234. package/es/site/data/components/tree/demos/checkbox/index.js +1 -0
  235. package/es/site/data/components/tree/demos/checkbox/react.d.ts +12 -2
  236. package/es/site/data/components/tree/demos/checkbox/react.js +1 -0
  237. package/es/site/data/components/tree/demos/contextmenu/index.d.ts +1 -0
  238. package/es/site/data/components/tree/demos/contextmenu/index.js +1 -0
  239. package/es/site/data/components/tree/demos/contextmenu/react.d.ts +1 -0
  240. package/es/site/data/components/tree/demos/contextmenu/react.js +1 -0
  241. package/es/site/src/components/article/index.js +6 -2
  242. package/es/styles/fonts/iconfont.d.ts +4 -1
  243. package/es/styles/fonts/iconfont.js +1 -1
  244. package/es/styles/global.js +1 -1
  245. package/i18n/en-US.ts +1 -0
  246. package/index.ts +2 -2
  247. package/package.json +3 -3
  248. package/styles/fonts/iconfont.ts +2 -2
  249. package/styles/global.ts +22 -0
@@ -2,6 +2,7 @@ import {css} from '@emotion/css';
2
2
  import {theme, setDefault} from '../../styles/theme';
3
3
  import {deepDefaults} from '../../styles/utils';
4
4
  import '../../styles/global';
5
+ import { cache } from '../utils';
5
6
 
6
7
  const defaults = {
7
8
  zIndex: 9
@@ -10,11 +11,12 @@ const defaults = {
10
11
  let affix: typeof defaults;
11
12
  setDefault(() => {
12
13
  affix = deepDefaults(theme, {affix: defaults}).affix;
14
+ makeStyles?.clearCache();
13
15
  });
14
16
 
15
- export function makeStyles(k: string) {
17
+ export const makeStyles = cache(function makeStyles(k: string) {
16
18
  return css`
17
19
  position: relative;
18
20
  z-index: ${affix.zIndex};
19
21
  `;
20
- }
22
+ });
@@ -1,5 +1,5 @@
1
1
  import {getRestProps} from '../utils';
2
- import makeStyles from './styles';
2
+ import { makeStyles } from './styles';
3
3
 
4
4
  let {
5
5
  className, children, text, disabled, max
@@ -2,6 +2,7 @@ import {css, cx} from '@emotion/css';
2
2
  import {theme, setDefault} from '../../styles/theme';
3
3
  import {deepDefaults, palette} from '../../styles/utils';
4
4
  import '../../styles/global';
5
+ import { cache } from '../utils';
5
6
 
6
7
  const defaults = {
7
8
  width: '8px',
@@ -17,9 +18,10 @@ const defaults = {
17
18
  let badge: typeof defaults;
18
19
  setDefault(() => {
19
20
  badge = deepDefaults(theme, {badge: defaults}).badge;
21
+ makeStyles?.clearCache();
20
22
  });
21
23
 
22
- export default function makeStyles(k: string) {
24
+ export const makeStyles = cache(function makeStyles(k: string) {
23
25
  return css`
24
26
  display: inline-block;
25
27
  position: relative;
@@ -56,5 +58,4 @@ export default function makeStyles(k: string) {
56
58
  transform: none;
57
59
  }
58
60
  `;
59
- }
60
-
61
+ });
@@ -1,6 +1,6 @@
1
1
  import {getRestProps, mapChildren} from '../utils';
2
2
  import {BreadcrumbItem} from './item';
3
- import makeStyles from './styles';
3
+ import { makeStyles } from './styles';
4
4
 
5
5
  const {children, separator, className} = this.get();
6
6
  const { k } = this.config;
@@ -2,6 +2,7 @@ import {css, cx} from '@emotion/css';
2
2
  import {deepDefaults, darken} from '../../styles/utils';
3
3
  import {theme, setDefault} from '../../styles/theme';
4
4
  import '../../styles/global';
5
+ import { cache } from '../utils';
5
6
 
6
7
  const defaults = {
7
8
  fontSize: '14px',
@@ -15,9 +16,10 @@ const defaults = {
15
16
  let breadcrumb: typeof defaults;
16
17
  setDefault(() => {
17
18
  breadcrumb = deepDefaults(theme, {breadcrumb: defaults}).breadcrumb;
19
+ makeStyles?.clearCache();
18
20
  });
19
21
 
20
- export default function makeStyles(k: string) {
22
+ export const makeStyles = cache(function makeStyles(k: string) {
21
23
  return css`
22
24
  font-size: ${breadcrumb.fontSize};
23
25
  display: flex;
@@ -43,4 +45,4 @@ export default function makeStyles(k: string) {
43
45
  margin: 0 ${breadcrumb.gap};
44
46
  }
45
47
  `
46
- }
48
+ });
@@ -1,8 +1,8 @@
1
1
  import {css, cx} from '@emotion/css';
2
- import { ButtonProps, Button } from './index';
3
2
  import {theme, setDefault} from '../../styles/theme';
4
3
  import {deepDefaults, palette, getLeft, darken} from '../../styles/utils';
5
4
  import '../../styles/global';
5
+ import { cache } from '../utils';
6
6
 
7
7
  type ValueOf<T extends readonly any[]> = T[number]
8
8
 
@@ -151,11 +151,13 @@ const defaults = deepDefaults(
151
151
  let button: typeof defaults;
152
152
  setDefault(() => {
153
153
  button = deepDefaults(theme, {button: defaults}).button;
154
+ makeButtonStyles?.clearCache();
155
+ makeButtonGroupStyles?.clearCache();
154
156
  });
155
157
 
156
158
  export {button};
157
159
 
158
- export function makeButtonStyles(k: string, iconSide?: string) {
160
+ export const makeButtonStyles = cache(function makeButtonStyles(k: string, iconSide?: string) {
159
161
  const {secondary, link} = button;
160
162
 
161
163
  return cx(
@@ -413,9 +415,9 @@ export function makeButtonStyles(k: string, iconSide?: string) {
413
415
  `}
414
416
  `
415
417
  );
416
- }
418
+ });
417
419
 
418
- export function makeButtonGroupStyles(k: string) {
420
+ export const makeButtonGroupStyles = cache(function makeButtonGroupStyles(k: string) {
419
421
  return css`
420
422
  display: inline-flex;
421
423
  align-items: center;
@@ -519,4 +521,4 @@ export function makeButtonGroupStyles(k: string) {
519
521
  }
520
522
  }
521
523
  `;
522
- }
524
+ });
@@ -2,6 +2,7 @@ import {css} from '@emotion/css';
2
2
  import {theme, setDefault} from '../../styles/theme';
3
3
  import {deepDefaults} from '../../styles/utils';
4
4
  import '../../styles/global';
5
+ import { cache } from '../utils';
5
6
 
6
7
  const defaults = {
7
8
  border: '1px solid #e5e5e5',
@@ -16,9 +17,10 @@ const defaults = {
16
17
  let card: typeof defaults;
17
18
  setDefault(() => {
18
19
  card = deepDefaults(theme, {card: defaults}).card;
20
+ makeStyles?.clearCache();
19
21
  });
20
22
 
21
- export function makeStyles(k: string) {
23
+ export const makeStyles = cache(function makeStyles(k: string) {
22
24
  return css`
23
25
  border-radius: ${card.borderRadius};
24
26
  background: ${card.bgColor};
@@ -89,4 +91,4 @@ export function makeStyles(k: string) {
89
91
  }
90
92
  }
91
93
  `;
92
- }
94
+ });
@@ -2,6 +2,7 @@ import {css} from '@emotion/css';
2
2
  import {theme, setDefault} from '../../styles/theme';
3
3
  import {deepDefaults} from '../../styles/utils';
4
4
  import '../../styles/global';
5
+ import { cache } from '../utils';
5
6
 
6
7
  const defaults = {
7
8
  get transition() { return theme.transition.large },
@@ -37,9 +38,11 @@ const defaults = {
37
38
  let carousel: typeof defaults;
38
39
  setDefault(() => {
39
40
  carousel = deepDefaults(theme, {carousel: defaults}).carousel;
41
+ makeStyles?.clearCache();
42
+ makeItemStyles?.clearCache();
40
43
  });
41
44
 
42
- export function makeStyles(k: string) {
45
+ export const makeStyles = cache(function makeStyles(k: string) {
43
46
  return css`
44
47
  height: ${carousel.height};
45
48
  position: relative;
@@ -129,9 +132,9 @@ export function makeStyles(k: string) {
129
132
  }
130
133
  }
131
134
  `;
132
- }
135
+ });
133
136
 
134
- export function makeItemStyles(k: string) {
137
+ export const makeItemStyles = cache(function makeItemStyles(k: string) {
135
138
  return css`
136
139
  display: inline-block;
137
140
  width: 100%;
@@ -147,4 +150,4 @@ export function makeItemStyles(k: string) {
147
150
  opacity: 0;
148
151
  }
149
152
  `
150
- }
153
+ });
@@ -3,7 +3,7 @@ import {Icon} from '../icon';
3
3
  import {_$} from '../../i18n';
4
4
  import {makeMenuStyles, makeFilterMenuStyles} from './styles';
5
5
 
6
- const {data, trigger, filterable, fields} = this.get();
6
+ const {data, trigger, filterable, fields, multiple} = this.get();
7
7
  const { k } = this.config;
8
8
  const baseMenuStyles = makeMenuStyles(k);
9
9
  const classNameObj = {
@@ -38,6 +38,7 @@ const Options = (data, level, loaded, parentSelected) => {
38
38
  [`${k}-selected`]: selected,
39
39
  }}
40
40
  ev-select={onSelect.bind(null, value, level)}
41
+ hideOnSelect={!multiple}
41
42
  >
42
43
  {getField(item, 'label')}
43
44
  <Icon v-if={children}
@@ -2,6 +2,7 @@ import {css} from '@emotion/css';
2
2
  import {theme, setDefault} from '../../styles/theme';
3
3
  import {deepDefaults, sizes, Sizes, getRight, getLeft} from '../../styles/utils';
4
4
  import '../../styles/global';
5
+ import { cache } from '../utils';
5
6
 
6
7
  const defaults = {
7
8
  width: '140px',
@@ -28,9 +29,11 @@ const defaults = {
28
29
  let cascader: typeof defaults;
29
30
  setDefault(() => {
30
31
  cascader = deepDefaults(theme, {cascader: defaults}).cascader;
32
+ makeMenuStyles?.clearCache();
33
+ makeFilterMenuStyles?.clearCache();
31
34
  });
32
35
 
33
- export function makeMenuStyles(k: string) {
36
+ export const makeMenuStyles = cache(function makeMenuStyles(k: string) {
34
37
  return css`
35
38
  min-width: ${cascader.width} !important;
36
39
  height: ${cascader.height};
@@ -63,9 +66,9 @@ export function makeMenuStyles(k: string) {
63
66
  }
64
67
  }
65
68
  `;
66
- }
69
+ });
67
70
 
68
- export function makeFilterMenuStyles(k: string) {
71
+ export const makeFilterMenuStyles = cache(function makeFilterMenuStyles(k: string) {
69
72
  return css`
70
73
  min-width: ${cascader.filter.minWidth} !important;
71
74
  height: auto;
@@ -75,4 +78,4 @@ export function makeFilterMenuStyles(k: string) {
75
78
  color: ${cascader.filter.highlightColor};
76
79
  }
77
80
  `;
78
- }
81
+ });
@@ -1,5 +1,5 @@
1
1
  import {getRestProps} from '../utils';
2
- import makeStyles from './styles';
2
+ import {makeStyles} from './styles';
3
3
  import {Wave} from '../wave';
4
4
 
5
5
  const {
@@ -2,6 +2,7 @@ import {css, cx} from '@emotion/css';
2
2
  import {theme, setDefault} from '../../styles/theme';
3
3
  import {deepDefaults, palette, getLeft} from '../../styles/utils';
4
4
  import '../../styles/global';
5
+ import { cache } from '../utils';
5
6
 
6
7
  const defaults = {
7
8
  width: '16px',
@@ -53,9 +54,10 @@ const defaults = {
53
54
  let checkbox: typeof defaults;
54
55
  setDefault(() => {
55
56
  checkbox = deepDefaults(theme, {checkbox: defaults}).checkbox;
57
+ makeStyles?.clearCache();
56
58
  });
57
59
 
58
- export default function makeStyles(k: string) {
60
+ export const makeStyles = cache(function makeStyles(k: string) {
59
61
  return css`
60
62
  display: inline-flex;
61
63
  align-items: center;
@@ -169,4 +171,4 @@ export default function makeStyles(k: string) {
169
171
 
170
172
  }
171
173
  `;
172
- }
174
+ });
@@ -1,9 +1,10 @@
1
1
  import {css} from '@emotion/css';
2
2
  import '../../styles/global';
3
+ import { cache } from '../utils';
3
4
 
4
- export function makeStyles(k: string) {
5
+ export const makeStyles = cache(function makeStyles(k: string) {
5
6
  return css`
6
7
  position: relative;
7
8
  height: 100%;
8
9
  `;
9
- }
10
+ });
@@ -11,7 +11,7 @@ describe('Collapse', () => {
11
11
  this.timeout(0);
12
12
  const [instance, element] = mount(BasicDemo);
13
13
 
14
- const [title1, title2, title3] = element.querySelectorAll<HTMLElement>('.k-collapse-title');
14
+ const [title1, title2, title3] = element.querySelectorAll<HTMLElement>(':scope > .k-collapse-item > .k-collapse-title');
15
15
  title2.click();
16
16
  await wait(500);
17
17
  // the innerHTML is different on travis and local environment
@@ -2,6 +2,7 @@ import {deepDefaults} from '../../styles/utils';
2
2
  import {theme, setDefault} from '../../styles/theme';
3
3
  import {css} from '@emotion/css';
4
4
  import '../../styles/global';
5
+ import { cache } from '../utils';
5
6
 
6
7
  const defaults = {
7
8
  get transition() { return theme.transition.large },
@@ -22,9 +23,11 @@ const defaults = {
22
23
  let collapse: typeof defaults;
23
24
  setDefault(() => {
24
25
  collapse = deepDefaults(theme, {collapse: defaults}).collapse;
26
+ makeStyles?.clearCache();
27
+ makeItemStyles?.clearCache();
25
28
  });
26
29
 
27
- export function makeStyles(k: string) {
30
+ export const makeStyles = cache(function makeStyles(k: string) {
28
31
  return css`
29
32
  font-size: ${collapse.fontSize};
30
33
 
@@ -41,9 +44,9 @@ export function makeStyles(k: string) {
41
44
  border: ${collapse.collBorder};
42
45
  }
43
46
  `;
44
- }
47
+ });
45
48
 
46
- export function makeItemStyles(k: string) {
49
+ export const makeItemStyles = cache(function makeItemStyles(k: string) {
47
50
  const collapseItem = collapse.item;
48
51
  return css`
49
52
  border-bottom: ${collapseItem.borderBottom};
@@ -86,4 +89,4 @@ export function makeItemStyles(k: string) {
86
89
  }
87
90
  }
88
91
  `;
89
- }
92
+ });
@@ -3,6 +3,7 @@ import {theme, setDefault} from '../../styles/theme';
3
3
  import {deepDefaults, sizes, Sizes} from '../../styles/utils';
4
4
  import '../../styles/global';
5
5
  import {ColorFormats} from 'tinycolor2';
6
+ import { cache } from '../utils';
6
7
 
7
8
  const defaults = {
8
9
  get height() { return theme.default.height },
@@ -88,11 +89,13 @@ const defaults = {
88
89
  let colorpicker: typeof defaults;
89
90
  setDefault(() => {
90
91
  colorpicker = deepDefaults(theme, {colorpicker: defaults}).colorpicker;
92
+ makeStyles?.clearCache();
93
+ makePanelStyles?.clearCache();
91
94
  });
92
95
 
93
96
  const _sizes = ['large', 'small', 'mini'] as const;
94
97
 
95
- export function makeStyles(k: string) {
98
+ export const makeStyles = cache(function makeStyles(k: string) {
96
99
  return css`
97
100
  display: inline-block;
98
101
  vertical-align: middle;
@@ -133,9 +136,9 @@ export function makeStyles(k: string) {
133
136
  }
134
137
  }
135
138
  `;
136
- }
139
+ });
137
140
 
138
- export function makePanelStyles(k: string) {
141
+ export const makePanelStyles = cache(function makePanelStyles(k: string) {
139
142
  return css`
140
143
  padding: ${colorpicker.panel.padding};
141
144
  width: ${colorpicker.panel.width};
@@ -267,7 +270,7 @@ export function makePanelStyles(k: string) {
267
270
  user-select: none;
268
271
  }
269
272
  `
270
- }
273
+ });
271
274
 
272
275
  export function makeAlphaBgColor({r, g, b}: ColorFormats.RGBA, k: string) {
273
276
  return css`
@@ -1,9 +1,10 @@
1
1
  import {css} from '@emotion/css';
2
2
  import '../../styles/global';
3
+ import { cache } from '../utils';
3
4
 
4
- export function makeStyles(k: string) {
5
+ export const makeStyles = cache(function makeStyles(k: string) {
5
6
  return css`
6
7
  cursor: pointer;
7
8
  vertical-align: middle;
8
9
  `
9
- }
10
+ });
@@ -2,6 +2,7 @@ import {css} from '@emotion/css';
2
2
  import {theme, setDefault} from '../../styles/theme';
3
3
  import {deepDefaults, sizes, Sizes, getRight, getLeft, palette} from '../../styles/utils';
4
4
  import '../../styles/global';
5
+ import { cache } from '../utils';
5
6
 
6
7
  const defaults = {
7
8
  width: `300px`,
@@ -62,11 +63,14 @@ const defaults = {
62
63
  let datepicker: typeof defaults;
63
64
  setDefault(() => {
64
65
  datepicker = deepDefaults(theme, {datepicker: defaults}).datepicker;
66
+ makePanelStyles?.clearCache();
67
+ makeCalendarStyles?.clearCache();
68
+ makeTimeStyles?.clearCache();
65
69
  });
66
70
 
67
71
  export {datepicker};
68
72
 
69
- export function makePanelStyles(k: string) {
73
+ export const makePanelStyles = cache(function makePanelStyles(k: string) {
70
74
  return css`
71
75
  display: flex;
72
76
  .${k}-datepicker-shortcuts {
@@ -106,9 +110,9 @@ export function makePanelStyles(k: string) {
106
110
  text-align: right;
107
111
  }
108
112
  `
109
- }
113
+ });
110
114
 
111
- export function makeCalendarStyles(k: string) {
115
+ export const makeCalendarStyles = cache(function makeCalendarStyles(k: string) {
112
116
  return css`
113
117
  padding: ${datepicker.padding};
114
118
  width: ${datepicker.width};
@@ -207,9 +211,9 @@ export function makeCalendarStyles(k: string) {
207
211
  grid-template-columns: repeat(4, 1fr);
208
212
  }
209
213
  `
210
- }
214
+ });
211
215
 
212
- export function makeTimeStyles(k: string) {
216
+ export const makeTimeStyles = cache(function makeTimeStyles(k: string) {
213
217
  return css`
214
218
  display: flex;
215
219
  padding: ${datepicker.padding};
@@ -220,4 +224,4 @@ export function makeTimeStyles(k: string) {
220
224
  height: 305px;
221
225
  }
222
226
  `;
223
- }
227
+ });
@@ -1,7 +1,8 @@
1
1
  import {css} from '@emotion/css';
2
2
  import '../../styles/global';
3
+ import { cache } from '../utils';
3
4
 
4
- export function makeStyles(k: string) {
5
+ export const makeStyles = cache(function makeStyles(k: string) {
5
6
  return css`
6
7
  display: inline-block;
7
8
  overflow: auto;
@@ -32,4 +33,4 @@ export function makeStyles(k: string) {
32
33
  margin: 0;
33
34
  }
34
35
  `;
35
- }
36
+ });
@@ -2,6 +2,7 @@ import {css} from '@emotion/css';
2
2
  import {theme, setDefault} from '../../styles/theme';
3
3
  import {deepDefaults} from '../../styles/utils';
4
4
  import '../../styles/global';
5
+ import { cache } from '../utils';
5
6
 
6
7
  const defaults = {
7
8
  width: '800px',
@@ -66,9 +67,12 @@ const defaults = {
66
67
  let dialog: typeof defaults;
67
68
  setDefault(() => {
68
69
  dialog = deepDefaults(theme, {dialog: defaults}).dialog;
70
+ makeDialogStyles?.clearCache();
71
+ makeWrapperStyles?.clearCache();
72
+ makeAlertStyles?.clearCache();
69
73
  });
70
74
 
71
- export function makeDialogStyles(k: string) {
75
+ export const makeDialogStyles = cache(function makeDialogStyles(k: string) {
72
76
  return css`
73
77
  position: absolute;
74
78
  width: ${dialog.width};
@@ -151,9 +155,9 @@ export function makeDialogStyles(k: string) {
151
155
  }
152
156
  }
153
157
  `;
154
- }
158
+ });
155
159
 
156
- export function makeWrapperStyles(k: string) {
160
+ export const makeWrapperStyles = cache(function makeWrapperStyles(k: string) {
157
161
  //.${k}-fade-leave-active will add position absolute to the styles
158
162
  // so we must set fixed with important to .${k}-dialog-overlay
159
163
  return css`
@@ -172,9 +176,9 @@ export function makeWrapperStyles(k: string) {
172
176
  overflow: auto;
173
177
  }
174
178
  `;
175
- }
179
+ });
176
180
 
177
- export function makeAlertStyles(k: string) {
181
+ export const makeAlertStyles = cache(function makeAlertStyles(k: string) {
178
182
  return css`
179
183
  &.${k}-alert-dialog {
180
184
  .${k}-dialog-body {
@@ -238,4 +242,4 @@ export function makeAlertStyles(k: string) {
238
242
  }
239
243
  }
240
244
  `
241
- }
245
+ });
@@ -2,6 +2,7 @@ import {css} from '@emotion/css';
2
2
  import {theme, setDefault} from '../../styles/theme';
3
3
  import {deepDefaults} from '../../styles/utils';
4
4
  import '../../styles/global';
5
+ import { cache } from '../utils';
5
6
 
6
7
  type ValueOf<T extends readonly any[]> = T[number]
7
8
 
@@ -17,9 +18,10 @@ const defaults = {
17
18
  let drawer: typeof defaults;
18
19
  setDefault(() => {
19
20
  drawer = deepDefaults(theme, {drawer: defaults}).drawer;
21
+ makeStyles?.clearCache();
20
22
  });
21
23
 
22
- export function makeStyles(overlay: boolean, k: string) {
24
+ export const makeStyles = cache(function makeStyles(overlay: boolean, k: string) {
23
25
  const borderRadius = theme.largeBorderRadius;
24
26
  return css`
25
27
  &.k-drawer {
@@ -61,7 +63,7 @@ export function makeStyles(overlay: boolean, k: string) {
61
63
  width: 100%;
62
64
  }
63
65
  `;
64
- }
66
+ });
65
67
 
66
68
  function makePlacementStyles(k: string, placement: string, styles: string, transform: string, borderRadius: string) {
67
69
  return css`
@@ -2,6 +2,7 @@ import {css} from '@emotion/css';
2
2
  import {theme, setDefault} from '../../styles/theme';
3
3
  import {deepDefaults, getLeft, getRight} from '../../styles/utils';
4
4
  import '../../styles/global';
5
+ import { cache } from '../utils';
5
6
 
6
7
  const defaults = {
7
8
  item: {
@@ -25,9 +26,11 @@ const defaults = {
25
26
  let dropdown: typeof defaults;
26
27
  setDefault(() => {
27
28
  dropdown = deepDefaults(theme, {dropdown: defaults}).dropdown;
29
+ makeMenuStyles?.clearCache();
30
+ makeItemStyles?.clearCache();
28
31
  });
29
32
 
30
- export function makeMenuStyles(k: string) {
33
+ export const makeMenuStyles = cache(function makeMenuStyles(k: string) {
31
34
  return css`
32
35
  position: absolute;
33
36
  min-width: ${dropdown.menu.minWidth};
@@ -44,9 +47,9 @@ export function makeMenuStyles(k: string) {
44
47
  display: block;
45
48
  }
46
49
  `
47
- }
50
+ });
48
51
 
49
- export function makeItemStyles(k: string) {
52
+ export const makeItemStyles = cache(function makeItemStyles(k: string) {
50
53
  return css`
51
54
  padding: ${dropdown.item.padding};
52
55
  cursor: pointer;
@@ -86,4 +89,4 @@ export function makeItemStyles(k: string) {
86
89
  vertical-align: baseline;
87
90
  }
88
91
  `
89
- }
92
+ });
@@ -2,6 +2,7 @@ import {css, cx} from '@emotion/css';
2
2
  import {theme, setDefault} from '../../styles/theme';
3
3
  import {deepDefaults} from '../../styles/utils';
4
4
  import '../../styles/global';
5
+ import { cache } from '../utils';
5
6
 
6
7
  const defaults = {
7
8
  iconGap: '0 0 0 8px',
@@ -15,11 +16,12 @@ const defaults = {
15
16
  let editable: typeof defaults;
16
17
  setDefault(() => {
17
18
  editable = deepDefaults(theme, {editable: defaults}).editable;
19
+ makeStyles?.clearCache();
18
20
  });
19
21
 
20
22
  export {editable};
21
23
 
22
- export function makeStyles(k: string) {
24
+ export const makeStyles = cache(function makeStyles(k: string) {
23
25
  return css`
24
26
  display: inline-flex;
25
27
  align-items: center;
@@ -34,4 +36,4 @@ export function makeStyles(k: string) {
34
36
  }
35
37
  }
36
38
  `;
37
- }
39
+ });
@@ -29,6 +29,7 @@ sidebar: doc
29
29
  | htmlFor | 指定`label`的`for`属性 | `string` | `undefined` |
30
30
  | hideLabel | 是否隐藏`label`,默认会展示`label`,即使该属性为空,也会展示占位元素 | `boolean` | `false` |
31
31
  | fluid | `FormItem`的宽度默认是被子元素撑开的,添加该属性可以渲染`100%`的宽度 | `boolean` | `false` |
32
+ | validateOnStart | 是否组件一渲染就开始验证,而不是等用户输入完成再验证 | `boolean` | `false` |
32
33
 
33
34
  ```ts
34
35
  export declare type Method = (value: any, param: any) => boolean | string | Promise<boolean | string>
@@ -461,4 +461,21 @@ describe('Form', () => {
461
461
  await wait(500);
462
462
  expect(element.querySelector('.k-form-error')).to.be.null;
463
463
  });
464
+
465
+ it('should validate on init when setting validateOnStart prop', async () => {
466
+ class Demo extends Component {
467
+ static template = `
468
+ const {Form, FormItem} = this;
469
+ <Form ref="form">
470
+ <FormItem rules={{required: true}} validateOnStart />
471
+ </Form>
472
+ `;
473
+ Form = Form;
474
+ FormItem = FormItem;
475
+ }
476
+ const [instance, element] = mount(Demo);
477
+
478
+ await wait(500);
479
+ expect(element.querySelector('.k-form-error')).to.be.exist;
480
+ });
464
481
  });
@@ -20,6 +20,7 @@ export interface FormItemProps {
20
20
  htmlFor?: string
21
21
  hideLabel?: boolean
22
22
  fluid?: boolean
23
+ validateOnStart?: boolean
23
24
  }
24
25
 
25
26
  export interface FormItemEvents {
@@ -52,6 +53,7 @@ const typeDefs: Required<TypeDefs<FormItemProps>> = {
52
53
  htmlFor: String,
53
54
  hideLabel: Boolean,
54
55
  fluid: Boolean,
56
+ validateOnStart: Boolean,
55
57
  };
56
58
 
57
59
  export class FormItem extends Component<FormItemProps, FormItemEvents, FormItemBlocks> {