@type-dom/ui 0.0.8 → 0.0.10

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 (222) hide show
  1. package/README.md +44 -44
  2. package/package.json +2 -8
  3. package/src/aria.d.ts +0 -17
  4. package/src/aria.js +0 -18
  5. package/src/components/basic/td-button/td-button.abstract.d.ts +2 -3
  6. package/src/components/basic/td-button/td-button.abstract.js +30 -26
  7. package/src/components/basic/td-button/td-button.interface.d.ts +0 -1
  8. package/src/components/basic/td-button-group/td-button-group.class.d.ts +2 -3
  9. package/src/components/basic/td-button-group/td-button-group.class.js +14 -16
  10. package/src/components/basic/td-container/td-aside/td-aside.class.js +2 -2
  11. package/src/components/basic/td-container/td-container.class.js +5 -5
  12. package/src/components/basic/td-container/td-container.js +1 -1
  13. package/src/components/basic/td-container/td-footer/td-footer.class.js +2 -2
  14. package/src/components/basic/td-container/td-header/td-header.class.js +3 -3
  15. package/src/components/basic/td-container/td-main/td-main.class.js +2 -2
  16. package/src/components/basic/td-icon/td-icon.class.js +20 -20
  17. package/src/components/basic/td-layout/td-col/td-col.class.d.ts +5 -2
  18. package/src/components/basic/td-layout/td-col/td-col.class.js +80 -80
  19. package/src/components/basic/td-layout/td-row/td-row.class.js +13 -13
  20. package/src/components/basic/td-link/td-link.class.d.ts +0 -1
  21. package/src/components/basic/td-link/td-link.class.js +17 -19
  22. package/src/components/basic/td-scrollbar/bar/bar.class.js +3 -3
  23. package/src/components/basic/td-scrollbar/td-scrollbar.class.js +5 -5
  24. package/src/components/basic/td-scrollbar/thumb/thumb.class.js +3 -3
  25. package/src/components/basic/td-space/td-space.class.js +10 -10
  26. package/src/components/basic/td-text/td-text.class.js +12 -9
  27. package/src/components/data/td-avatar/td-avatar.class.js +12 -13
  28. package/src/components/data/td-badge/td-badge.class.js +9 -8
  29. package/src/components/data/td-card/td-card.class.js +7 -7
  30. package/src/components/data/td-check-tag/td-check-tag.class.d.ts +0 -1
  31. package/src/components/data/td-check-tag/td-check-tag.class.js +9 -11
  32. package/src/components/data/td-collapse/td-collapse.class.js +2 -2
  33. package/src/components/data/td-collapse-item/td-collapse-item.class.js +15 -16
  34. package/src/components/data/td-collapse-transition/td-collapse-transition.util.js +14 -14
  35. package/src/components/data/td-count-down/td-count-down.class.js +1 -1
  36. package/src/components/data/td-descriptions/td-descriptions-row.js +2 -2
  37. package/src/components/data/td-descriptions/td-descriptions.class.js +8 -8
  38. package/src/components/data/td-descriptions/td-descritions-cell.js +14 -14
  39. package/src/components/data/td-descriptions-item/td-descriptions-item.class.js +1 -1
  40. package/src/components/data/td-empty/img-empty.class.js +3 -3
  41. package/src/components/data/td-empty/td-empty.class.js +4 -4
  42. package/src/components/data/td-image/td-image.class.js +6 -6
  43. package/src/components/data/td-image-viewer/td-image-viewer.class.d.ts +2 -1
  44. package/src/components/data/td-image-viewer/td-image-viewer.class.js +13 -10
  45. package/src/components/data/td-result/td-result.class.js +3 -3
  46. package/src/components/data/td-segmented/td-segmented.class.js +14 -17
  47. package/src/components/data/td-statistic/td-statistic.abstract.js +2 -2
  48. package/src/components/data/td-tag/td-tag.class.js +9 -9
  49. package/src/components/feedback/index.d.ts +2 -2
  50. package/src/components/feedback/index.js +5 -6
  51. package/src/components/feedback/td-alert/td-alert.class.js +9 -9
  52. package/src/components/feedback/td-dialog/td-dialog.class.js +5 -5
  53. package/src/components/feedback/td-dialog-content/td-dialog-content.class.js +4 -4
  54. package/src/components/feedback/td-drawer/td-drawer.class.js +10 -12
  55. package/src/components/feedback/td-focus-trap/td-focus-trap.class.d.ts +19 -1
  56. package/src/components/feedback/td-focus-trap/td-focus-trap.class.js +223 -48
  57. package/src/components/feedback/td-focus-trap/tokens.d.ts +2 -1
  58. package/src/components/feedback/td-focus-trap/utils.d.ts +1 -1
  59. package/src/components/feedback/td-focus-trap/utils.js +9 -11
  60. package/src/components/feedback/td-loading/td-loading.class.d.ts +2 -0
  61. package/src/components/feedback/td-loading/td-loading.class.js +7 -1
  62. package/src/components/feedback/td-message/td-message.class.d.ts +3 -2
  63. package/src/components/feedback/td-message/td-message.class.js +18 -18
  64. package/src/components/feedback/td-message/td-message.style.js +2 -1
  65. package/src/components/feedback/td-message-box/td-message-box.class.d.ts +5 -3
  66. package/src/components/feedback/td-message-box/td-message-box.class.js +79 -74
  67. package/src/components/feedback/td-message-box/td-message-box.interface.d.ts +2 -1
  68. package/src/components/feedback/td-notification/td-notification.class.d.ts +3 -2
  69. package/src/components/feedback/td-notification/td-notification.class.js +26 -26
  70. package/src/components/feedback/td-notification/td-notification.style.js +6 -6
  71. package/src/components/feedback/td-only-child/td-only-child.class.d.ts +7 -0
  72. package/src/components/feedback/td-only-child/td-only-child.class.js +74 -0
  73. package/src/components/feedback/td-overlay/td-overlay.class.d.ts +1 -1
  74. package/src/components/feedback/td-overlay/td-overlay.class.js +5 -5
  75. package/src/components/feedback/td-popper/arrow/arrow.class.d.ts +6 -0
  76. package/src/components/feedback/td-popper/arrow/arrow.class.js +22 -3
  77. package/src/components/feedback/td-popper/composable/use-focus-trap.d.ts +0 -0
  78. package/src/components/feedback/td-popper/composable/use-focus-trap.js +1 -0
  79. package/src/components/feedback/td-popper/content/content.class.d.ts +1 -0
  80. package/src/components/feedback/td-popper/content/content.class.js +25 -4
  81. package/src/components/feedback/td-popper/content/content.const.d.ts +3 -0
  82. package/src/components/feedback/td-popper/content/content.const.js +29 -0
  83. package/src/components/feedback/td-popper/content/content.interface.d.ts +9 -0
  84. package/src/components/feedback/td-popper/td-popper.class.d.ts +1 -1
  85. package/src/components/feedback/td-popper/td-popper.class.js +35 -2
  86. package/src/components/feedback/td-popper/td-popper.const.d.ts +21 -0
  87. package/src/components/feedback/td-popper/td-popper.const.js +5 -0
  88. package/src/components/feedback/td-popper/trigger/trigger.class.d.ts +11 -0
  89. package/src/components/feedback/td-popper/trigger/trigger.class.js +96 -1
  90. package/src/components/feedback/td-popper/trigger/trigger.const.d.ts +1 -0
  91. package/src/components/feedback/td-popper/trigger/trigger.const.js +12 -0
  92. package/src/components/feedback/td-popper/trigger/trigger.interface.d.ts +1 -0
  93. package/src/components/feedback/td-tooltip/content/content.class.js +1 -1
  94. package/src/components/feedback/td-tooltip/td-tooltip.class.js +1 -1
  95. package/src/components/feedback/td-tooltip/trigger/trigger.class.js +1 -1
  96. package/src/components/form/checkbox-group/checkbox-group.class.js +6 -7
  97. package/src/components/form/checkbox-group/checkbox-option/checkbox-option.class.d.ts +1 -1
  98. package/src/components/form/checkbox-group/checkbox-option/checkbox-option.class.js +4 -4
  99. package/src/components/form/field-item/cascade/field-cascade.abstract.d.ts +1 -1
  100. package/src/components/form/field-item/cascade/field-cascade.abstract.js +8 -8
  101. package/src/components/form/field-item/field-item.abstract.js +3 -3
  102. package/src/components/form/field-item/input/field-input.abstract.d.ts +1 -1
  103. package/src/components/form/field-item/input/field-input.abstract.js +8 -8
  104. package/src/components/form/field-item/options/field-options.abstract.d.ts +1 -3
  105. package/src/components/form/field-item/options/field-options.abstract.js +32 -30
  106. package/src/components/form/field-item/radio/field-radio.abstract.d.ts +1 -1
  107. package/src/components/form/field-item/radio/field-radio.abstract.js +32 -35
  108. package/src/components/form/field-item/select/field-select.abstract.d.ts +1 -1
  109. package/src/components/form/field-item/select/field-select.abstract.js +5 -5
  110. package/src/components/form/field-item/span/field-span.abstract.js +5 -5
  111. package/src/components/form/field-item/textarea/field-textarea.abstract.js +5 -5
  112. package/src/components/form/field-select/field-select.class.d.ts +1 -1
  113. package/src/components/form/field-select/field-select.class.js +7 -8
  114. package/src/components/form/field-select/option/option.class.js +1 -3
  115. package/src/components/form/radio-group/radio-group.class.js +6 -7
  116. package/src/components/form/radio-group/radio-option/radio-option.class.d.ts +0 -1
  117. package/src/components/form/radio-group/radio-option/radio-option.class.js +6 -8
  118. package/src/components/form/select/select.class.d.ts +1 -1
  119. package/src/components/form/select/select.class.js +4 -4
  120. package/src/components/form/td-checkbox/td-checkbox.class.js +3 -3
  121. package/src/components/form/td-checkbox/td-checkbox.style.js +2 -2
  122. package/src/components/form/td-checkbox-button/td-checkbox-button.class.js +3 -3
  123. package/src/components/form/td-checkbox-group/td-checkbox-group.class.js +3 -3
  124. package/src/components/form/td-form/td-form.class.js +5 -3
  125. package/src/components/form/td-form-item/td-form-item.class.js +16 -16
  126. package/src/components/form/td-input/td-input-field.class.js +8 -8
  127. package/src/components/form/td-input/td-input.class.d.ts +0 -1
  128. package/src/components/form/td-input/td-input.class.js +9 -11
  129. package/src/components/form/td-input/widget/prefix.js +1 -1
  130. package/src/components/form/td-input/widget/suffix.js +3 -3
  131. package/src/components/form/td-input/widget/td-input-wrapper.class.js +12 -11
  132. package/src/components/form/td-input/widget/td-textarea-wrapper.js +3 -3
  133. package/src/components/form/td-input/widget/utils.js +8 -8
  134. package/src/components/form/td-option/td-option.class.js +3 -3
  135. package/src/components/form/td-option-group/td-option-group.class.js +3 -3
  136. package/src/components/form/td-radio/td-radio.class.d.ts +0 -1
  137. package/src/components/form/td-radio/td-radio.class.js +50 -53
  138. package/src/components/form/td-radio-button/td-radio-button.class.d.ts +0 -1
  139. package/src/components/form/td-radio-button/td-radio-button.class.js +46 -49
  140. package/src/components/form/td-radio-group/td-radio-group.class.js +3 -4
  141. package/src/components/form/td-select/dropdown/dropdown.class.js +2 -2
  142. package/src/components/form/td-select/td-select.class.js +2 -2
  143. package/src/components/form/td-switch/td-switch.class.d.ts +1 -1
  144. package/src/components/form/td-switch/td-switch.class.js +21 -21
  145. package/src/components/form/td-switch/widget/td-switch-core.js +10 -10
  146. package/src/components/form/td-switch/widget/td-switch-left.js +3 -3
  147. package/src/components/form/td-switch/widget/td-switch-right.js +2 -2
  148. package/src/components/navigation/td-affix/td-affix.class.d.ts +3 -0
  149. package/src/components/navigation/td-affix/td-affix.class.js +22 -20
  150. package/src/components/navigation/td-anchor/td-anchor-link/td-anchor-link.class.js +1 -1
  151. package/src/components/navigation/td-anchor/td-anchor.class.js +10 -10
  152. package/src/components/navigation/td-backtop/td-backtop.class.d.ts +5 -3
  153. package/src/components/navigation/td-backtop/td-backtop.class.js +41 -32
  154. package/src/components/navigation/td-backtop/td-backtop.interface.d.ts +3 -0
  155. package/src/components/navigation/td-backtop/use-backtop.d.ts +7 -0
  156. package/src/components/navigation/td-backtop/use-backtop.js +44 -0
  157. package/src/components/navigation/td-breadcrumb/td-breadcrumb.class.js +4 -4
  158. package/src/components/navigation/td-breadcrumb-item/td-breadcrumb-item.class.js +3 -3
  159. package/src/components/navigation/td-menu/td-menu.class.js +5 -5
  160. package/src/components/navigation/td-menu/td-menu.interface.d.ts +2 -1
  161. package/src/components/navigation/td-tabs/td-tab-bar.class.js +5 -5
  162. package/src/components/navigation/td-tabs/td-tab-nav.class.js +14 -14
  163. package/src/components/navigation/td-tabs/td-tab-pane.class.js +3 -3
  164. package/src/components/navigation/td-tabs/td-tabs.class.js +4 -4
  165. package/src/components/others/collapsible-box/collapsible-box.js +2 -2
  166. package/src/components/others/collapsible-box/contents/contents.js +2 -2
  167. package/src/components/others/collapsible-box/heading/expand-heading.d.ts +1 -1
  168. package/src/components/others/collapsible-box/heading/expand-heading.js +11 -11
  169. package/src/components/others/custom-block/custom-block.js +2 -2
  170. package/src/components/others/example/example-float-control.d.ts +1 -1
  171. package/src/components/others/example/example-float-control.js +8 -8
  172. package/src/components/others/example/example-showcase.js +3 -3
  173. package/src/components/others/example/example-source-wrapper.d.ts +6 -2
  174. package/src/components/others/example/example-source-wrapper.js +3 -3
  175. package/src/components/others/example/example.d.ts +1 -2
  176. package/src/components/others/example/example.js +4 -4
  177. package/src/components/others/example/op-btns.js +9 -10
  178. package/src/components/others/menus/menu.d.ts +10 -5
  179. package/src/components/others/menus/menu.js +35 -33
  180. package/src/components/others/menus/menus.d.ts +6 -1
  181. package/src/components/others/menus/menus.js +46 -24
  182. package/src/components/others/td-divider/td-divider.class.js +8 -8
  183. package/src/hooks/index.d.ts +3 -0
  184. package/src/hooks/index.js +6 -0
  185. package/src/hooks/use-cursor.d.ts +1 -0
  186. package/src/hooks/use-cursor.js +56 -0
  187. package/src/hooks/use-escape-keydown.d.ts +4 -0
  188. package/src/hooks/use-escape-keydown.js +31 -0
  189. package/src/hooks/use-forward-ref.d.ts +13 -0
  190. package/src/hooks/use-forward-ref.js +27 -0
  191. package/src/index.d.ts +1 -0
  192. package/src/index.js +1 -0
  193. package/src/styles/var.d.ts +1 -1
  194. package/src/styles/var.js +2 -2
  195. package/src/ui/ui.abstract.d.ts +1 -1
  196. package/src/ui/ui.abstract.js +2 -2
  197. package/src/components/feedback/dialog/dialog.class.d.ts +0 -7
  198. package/src/components/feedback/dialog/dialog.class.js +0 -21
  199. package/src/components/feedback/dialog/dialog.interface.d.ts +0 -4
  200. package/src/components/feedback/dialog/dialog.interface.js +0 -2
  201. package/src/components/feedback/message-box/message-box.d.ts +0 -9
  202. package/src/components/feedback/message-box/message-box.interface.d.ts +0 -4
  203. package/src/components/feedback/message-box/message-box.interface.js +0 -2
  204. package/src/components/feedback/message-box/message-box.js +0 -33
  205. package/src/components/feedback/overlay/container/body/body.d.ts +0 -7
  206. package/src/components/feedback/overlay/container/body/body.js +0 -17
  207. package/src/components/feedback/overlay/container/container.d.ts +0 -15
  208. package/src/components/feedback/overlay/container/container.js +0 -38
  209. package/src/components/feedback/overlay/container/footer/cancel-button/cancel-button.d.ts +0 -8
  210. package/src/components/feedback/overlay/container/footer/cancel-button/cancel-button.js +0 -32
  211. package/src/components/feedback/overlay/container/footer/confirm-button/confirm-button.d.ts +0 -9
  212. package/src/components/feedback/overlay/container/footer/confirm-button/confirm-button.js +0 -32
  213. package/src/components/feedback/overlay/container/footer/footer.d.ts +0 -10
  214. package/src/components/feedback/overlay/container/footer/footer.js +0 -47
  215. package/src/components/feedback/overlay/container/header/close-button/close-button.d.ts +0 -11
  216. package/src/components/feedback/overlay/container/header/close-button/close-button.js +0 -34
  217. package/src/components/feedback/overlay/container/header/header.d.ts +0 -12
  218. package/src/components/feedback/overlay/container/header/header.js +0 -25
  219. package/src/components/feedback/overlay/container/header/title/title.d.ts +0 -9
  220. package/src/components/feedback/overlay/container/header/title/title.js +0 -19
  221. package/src/components/feedback/overlay/overlay.abstract.d.ts +0 -13
  222. package/src/components/feedback/overlay/overlay.abstract.js +0 -60
@@ -8,24 +8,45 @@ class Menus extends framework_1.TypeDiv {
8
8
  constructor(params = {}) {
9
9
  super();
10
10
  this.className = 'Menus';
11
- this.ctrl.addAttrName('menus');
11
+ this.attr.addName('menus');
12
12
  // 默认样式
13
- this.ctrl.addStyleObj({
13
+ this.style.addObj({
14
14
  userSelect: 'none',
15
15
  // overflow: 'auto',
16
16
  boxSizing: 'border-box',
17
17
  flexShrink: 0,
18
- maxHeight: 'calc(100vh - 40px)'
18
+ maxHeight: 'calc(100vh - 60px)',
19
+ paddingBottom: '40px'
19
20
  });
20
- this.setProps(params);
21
- const router = params.router;
22
- console.log('ui-doc routerUI.routes is ', router);
23
- this.createMenus(this, router.routes, router);
21
+ this.useParams(params);
22
+ this.router = params.router;
23
+ console.log('ui-doc routerUI.routes is ', this.router);
24
+ if (this.router) {
25
+ this.createMenus(this, this.router.routes, this.router);
26
+ }
24
27
  console.log('menus is ', this);
25
28
  }
26
29
  get menuRoot() {
27
30
  return this;
28
31
  }
32
+ mounted() {
33
+ var _a, _b;
34
+ console.warn('menus mounted . ');
35
+ // hash路由和history路由要分别判断
36
+ let path;
37
+ if (((_a = this.router) === null || _a === void 0 ? void 0 : _a.mode) === 'hash') {
38
+ path = window.location.hash.slice(1);
39
+ }
40
+ else if (((_b = this.router) === null || _b === void 0 ? void 0 : _b.mode) === 'history') {
41
+ path = window.location.pathname;
42
+ }
43
+ if (path === '/') {
44
+ path = '/home';
45
+ }
46
+ const menuItem = this.down('route.path', path);
47
+ // 当前路由与菜单绑定路由一致,则选中状态
48
+ this.setSelectedMenu(menuItem);
49
+ }
29
50
  // /home '' '/' 首页菜单要单独处理
30
51
  createMenus(parent, routes, router) {
31
52
  console.log('createMenus . ');
@@ -37,39 +58,40 @@ class Menus extends framework_1.TypeDiv {
37
58
  route = route.children.find((item) => item.path === route.redirect);
38
59
  // todo 没有的话,要报错的。
39
60
  }
40
- const menuItem = new menu_1.Menu(route, router);
61
+ // 创建菜单项
62
+ const menuItem = new menu_1.Menu({
63
+ parent,
64
+ route,
65
+ router,
66
+ width: this.style.get('width'),
67
+ events: {
68
+ mouseenter: (evt) => {
69
+ if ((evt === null || evt === void 0 ? void 0 : evt.target) instanceof HTMLElement || (evt === null || evt === void 0 ? void 0 : evt.target) instanceof SVGElement) {
70
+ evt === null || evt === void 0 ? void 0 : evt.target.style.setProperty('cursor', 'auto');
71
+ }
72
+ }
73
+ }
74
+ });
41
75
  if (parent instanceof menu_1.Menu) {
42
76
  parent.menuItems.push(menuItem);
43
77
  }
44
78
  menuItem.appendParent(parent);
45
- // hash路由和history路由要分别判断
46
- if (router.mode === 'hash') {
47
- if (window.location.hash.slice(1) === route.path) {
48
- // 当前路由与菜单绑定路由一致,则选中状态
49
- this.setSelectedMenu(menuItem);
50
- }
51
- }
52
- else if (router.mode === 'history') {
53
- if (window.location.pathname === route.path) {
54
- // 当前路由与菜单绑定路由一致,则选中状态
55
- this.setSelectedMenu(menuItem);
56
- }
57
- }
58
79
  if (route.children) {
59
80
  this.createMenus(menuItem, route.children, router);
60
81
  }
61
82
  });
62
83
  }
63
84
  setSelectedMenu(menu) {
85
+ var _a;
64
86
  if (menu !== this.selectedMenu) {
65
87
  if (this.selectedMenu) {
66
- this.selectedMenu.ctrl.setStyleObj({
88
+ this.selectedMenu.style.setObj({
67
89
  backgroundColor: ''
68
90
  });
69
91
  }
70
92
  this.selectedMenu = menu;
71
- if (menu.route.redirect === undefined) {
72
- menu.ctrl.setStyleObj({
93
+ if (((_a = menu.route) === null || _a === void 0 ? void 0 : _a.redirect) === undefined) {
94
+ menu.style.setObj({
73
95
  backgroundColor: '#ccc'
74
96
  });
75
97
  }
@@ -8,14 +8,14 @@ class TdDivider extends ui_abstract_1.UI {
8
8
  constructor(params = {}) {
9
9
  super(params);
10
10
  this.className = 'TdDivider';
11
- this.ctrl.addStyleObj({
11
+ this.style.addObj({
12
12
  position: 'relative'
13
13
  });
14
14
  const direction = (params === null || params === void 0 ? void 0 : params.direction) || 'horizontal';
15
15
  const contentPosition = (params === null || params === void 0 ? void 0 : params.contentPosition) || 'center';
16
16
  const borderStyle = (params === null || params === void 0 ? void 0 : params.borderStyle) || 'solid';
17
17
  if (direction === 'horizontal') {
18
- this.ctrl.addStyleObj({
18
+ this.style.addObj({
19
19
  display: 'block',
20
20
  height: '1px',
21
21
  width: '100%',
@@ -40,19 +40,19 @@ class TdDivider extends ui_abstract_1.UI {
40
40
  }
41
41
  });
42
42
  if (contentPosition === 'left') {
43
- textDiv.ctrl.addStyleObj({
43
+ textDiv.style.addObj({
44
44
  left: '20px',
45
45
  transform: 'translateY(-50%)'
46
46
  });
47
47
  }
48
48
  else if (contentPosition === 'right') {
49
- textDiv.ctrl.addStyleObj({
49
+ textDiv.style.addObj({
50
50
  right: '20px',
51
51
  transform: 'translateY(-50%)'
52
52
  });
53
53
  }
54
54
  else {
55
- textDiv.ctrl.addStyleObj({
55
+ textDiv.style.addObj({
56
56
  left: '50%',
57
57
  transform: 'translateX(-50%) translateY(-50%)'
58
58
  });
@@ -60,11 +60,11 @@ class TdDivider extends ui_abstract_1.UI {
60
60
  this.addChild(textDiv);
61
61
  }
62
62
  if (contentPosition === 'left') {
63
- this.ctrl.addStyleObj({});
63
+ this.style.addObj({});
64
64
  }
65
65
  }
66
66
  else {
67
- this.ctrl.addStyleObj({
67
+ this.style.addObj({
68
68
  display: 'inline-block',
69
69
  width: '1px',
70
70
  height: '1em',
@@ -75,7 +75,7 @@ class TdDivider extends ui_abstract_1.UI {
75
75
  borderLeft: '1px ' + var_1.$borderColor.base + ' ' + borderStyle
76
76
  });
77
77
  }
78
- this.setProps(params);
78
+ this.useParams(params);
79
79
  }
80
80
  }
81
81
  exports.TdDivider = TdDivider;
@@ -0,0 +1,3 @@
1
+ export * from './use-cursor';
2
+ export * from './use-escape-keydown';
3
+ export * from './use-forward-ref';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./use-cursor"), exports);
5
+ tslib_1.__exportStar(require("./use-escape-keydown"), exports);
6
+ tslib_1.__exportStar(require("./use-forward-ref"), exports);
@@ -0,0 +1 @@
1
+ export declare function useCursor(input: HTMLInputElement | undefined): [() => void, () => void];
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ // element plus hooks useCursor
3
+ // Keep input cursor in the correct position when we use formatter.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.useCursor = useCursor;
6
+ function useCursor(input) {
7
+ let selectionRef;
8
+ function recordCursor() {
9
+ console.log('recordCursor . ');
10
+ if (input === undefined) {
11
+ return;
12
+ }
13
+ const { selectionStart, selectionEnd, value } = input;
14
+ if (selectionStart === null || selectionEnd === null) {
15
+ return;
16
+ }
17
+ const beforeTxt = value.slice(0, Math.max(0, selectionStart));
18
+ const afterTxt = value.slice(Math.max(0, selectionEnd));
19
+ selectionRef = {
20
+ selectionStart,
21
+ selectionEnd,
22
+ value,
23
+ beforeTxt,
24
+ afterTxt
25
+ };
26
+ }
27
+ function setCursor() {
28
+ console.log('setCursor . ');
29
+ if (input === undefined || selectionRef === undefined) {
30
+ return;
31
+ }
32
+ const { value } = input;
33
+ const { beforeTxt, afterTxt, selectionStart } = selectionRef;
34
+ if (beforeTxt === undefined ||
35
+ afterTxt === undefined ||
36
+ selectionStart === undefined) {
37
+ return;
38
+ }
39
+ let startPos = value.length;
40
+ if (value.endsWith(afterTxt)) {
41
+ startPos = value.length - afterTxt.length;
42
+ }
43
+ else if (value.startsWith(beforeTxt)) {
44
+ startPos = beforeTxt.length;
45
+ }
46
+ else {
47
+ const beforeLastChar = beforeTxt[selectionStart - 1];
48
+ const newIndex = value.indexOf(beforeLastChar, selectionStart - 1);
49
+ if (newIndex !== -1) {
50
+ startPos = newIndex + 1;
51
+ }
52
+ }
53
+ input.setSelectionRange(startPos, startPos);
54
+ }
55
+ return [recordCursor, setCursor];
56
+ }
@@ -0,0 +1,4 @@
1
+ export declare const useEscapeKeydown: (handler: (e: KeyboardEvent) => void) => {
2
+ mounted: () => void;
3
+ beforeDestroy: () => void;
4
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useEscapeKeydown = void 0;
4
+ const utils_1 = require("@type-dom/utils");
5
+ let registeredEscapeHandlers = [];
6
+ const cachedHandler = (e) => {
7
+ const event = e;
8
+ if (event.key === utils_1.EVENT_CODE.esc) {
9
+ registeredEscapeHandlers.forEach((registeredHandler) => registeredHandler(event));
10
+ }
11
+ };
12
+ const useEscapeKeydown = (handler) => {
13
+ const mounted = () => {
14
+ if (registeredEscapeHandlers.length === 0) {
15
+ document.addEventListener('keydown', cachedHandler);
16
+ }
17
+ if (utils_1.isClient) {
18
+ registeredEscapeHandlers.push(handler);
19
+ }
20
+ };
21
+ const beforeDestroy = () => {
22
+ registeredEscapeHandlers = registeredEscapeHandlers.filter((registeredHandler) => registeredHandler !== handler);
23
+ if (registeredEscapeHandlers.length === 0) {
24
+ if (utils_1.isClient) {
25
+ document.removeEventListener('keydown', cachedHandler);
26
+ }
27
+ }
28
+ };
29
+ return { mounted, beforeDestroy };
30
+ };
31
+ exports.useEscapeKeydown = useEscapeKeydown;
@@ -0,0 +1,13 @@
1
+ import { InjectionKey } from '@type-dom/framework';
2
+ type ForwardRefSetter = (el?: HTMLElement) => void;
3
+ export type ForwardRefInjectionContext = {
4
+ setForwardRef: ForwardRefSetter;
5
+ };
6
+ export declare const FORWARD_REF_INJECTION_KEY: InjectionKey<ForwardRefInjectionContext>;
7
+ export declare const useForwardRef: (provide: (key: string | symbol, value: any) => void, forwardRef?: HTMLElement) => void;
8
+ export declare const useForwardRefDirective: (setForwardRef: ForwardRefSetter) => {
9
+ mounted(el: HTMLElement): void;
10
+ updated(el: HTMLElement): void;
11
+ unmounted(): void;
12
+ };
13
+ export {};
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useForwardRefDirective = exports.useForwardRef = exports.FORWARD_REF_INJECTION_KEY = void 0;
4
+ exports.FORWARD_REF_INJECTION_KEY = Symbol('tdForwardRef');
5
+ const useForwardRef = (provide, forwardRef) => {
6
+ const setForwardRef = (el) => {
7
+ forwardRef = el;
8
+ };
9
+ provide(exports.FORWARD_REF_INJECTION_KEY, {
10
+ setForwardRef,
11
+ });
12
+ };
13
+ exports.useForwardRef = useForwardRef;
14
+ const useForwardRefDirective = (setForwardRef) => {
15
+ return {
16
+ mounted(el) {
17
+ setForwardRef(el);
18
+ },
19
+ updated(el) {
20
+ setForwardRef(el);
21
+ },
22
+ unmounted() {
23
+ setForwardRef(undefined);
24
+ },
25
+ };
26
+ };
27
+ exports.useForwardRefDirective = useForwardRefDirective;
package/src/index.d.ts CHANGED
@@ -6,3 +6,4 @@ export * from './components/form';
6
6
  export * from './components/navigation';
7
7
  export * from './components/others';
8
8
  export * from './constants/event';
9
+ export * from './hooks';
package/src/index.js CHANGED
@@ -10,3 +10,4 @@ tslib_1.__exportStar(require("./components/form"), exports);
10
10
  tslib_1.__exportStar(require("./components/navigation"), exports);
11
11
  tslib_1.__exportStar(require("./components/others"), exports);
12
12
  tslib_1.__exportStar(require("./constants/event"), exports);
13
+ tslib_1.__exportStar(require("./hooks"), exports);
@@ -196,7 +196,7 @@ export declare const $paddingHorizontalMap: {
196
196
  default: string;
197
197
  small: string;
198
198
  };
199
- export declare const $transitionDuration = "0.3s";
199
+ export declare const $transitionDurationDefault = "0.3s";
200
200
  export declare const $transitionDurationFast = "0.2s";
201
201
  export declare const $colorPrimaryRgb = "64, 158, 255";
202
202
  export declare const $colorDangerRgb = "245, 108, 108";
package/src/styles/var.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.$svgMonochromeGrey = exports.$border = exports.$ellipsisStyle = exports.$scrollbar = exports.$colorDangerRgb = exports.$colorPrimaryRgb = exports.$transitionDurationFast = exports.$transitionDuration = exports.$paddingHorizontalMap = exports.$paddingVerticalMap = exports.$borderRadiusMap = exports.$fontSizeMap = exports.$buttonTextColor = exports.$buttonBgColor = exports.$buttonBorderColor = exports.$buttonActiveShadePercent = exports.$buttonHoverTintPercent = exports.$buttonBorderWidth = exports.$button = exports.$colorInfo = exports.$colorError = exports.$colorDanger = exports.$colorWarning = exports.$colorSuccess = exports.$colorPrimary = exports.$colorBlack = exports.$colorWhite = exports.$colors = exports.$overlayColor = exports.$commonComponentSize = exports.componentSizeMap = exports.componentSizes = exports.$disabled = exports.$zIndex = exports.$fontSizes = exports.fontFamily = exports.$boxShadow = exports.$borderRadius = exports.$borderColorHover = exports.$borderStyle = exports.$borderWidth = exports.$bgColor = exports.$fillColor = exports.$borderColor = exports.$textColor = exports.$types = exports.$fontLineHeightPrimary = exports.$fontWeightPrimary = void 0;
3
+ exports.$svgMonochromeGrey = exports.$border = exports.$ellipsisStyle = exports.$scrollbar = exports.$colorDangerRgb = exports.$colorPrimaryRgb = exports.$transitionDurationFast = exports.$transitionDurationDefault = exports.$paddingHorizontalMap = exports.$paddingVerticalMap = exports.$borderRadiusMap = exports.$fontSizeMap = exports.$buttonTextColor = exports.$buttonBgColor = exports.$buttonBorderColor = exports.$buttonActiveShadePercent = exports.$buttonHoverTintPercent = exports.$buttonBorderWidth = exports.$button = exports.$colorInfo = exports.$colorError = exports.$colorDanger = exports.$colorWarning = exports.$colorSuccess = exports.$colorPrimary = exports.$colorBlack = exports.$colorWhite = exports.$colors = exports.$overlayColor = exports.$commonComponentSize = exports.componentSizeMap = exports.componentSizes = exports.$disabled = exports.$zIndex = exports.$fontSizes = exports.fontFamily = exports.$boxShadow = exports.$borderRadius = exports.$borderColorHover = exports.$borderStyle = exports.$borderWidth = exports.$bgColor = exports.$fillColor = exports.$borderColor = exports.$textColor = exports.$types = exports.$fontLineHeightPrimary = exports.$fontWeightPrimary = void 0;
4
4
  exports.setColorMixLevel = setColorMixLevel;
5
5
  /**
6
6
  * scss/var
@@ -271,7 +271,7 @@ exports.$paddingHorizontalMap = {
271
271
  default: '16px',
272
272
  small: '12px',
273
273
  };
274
- exports.$transitionDuration = '0.3s';
274
+ exports.$transitionDurationDefault = '0.3s';
275
275
  exports.$transitionDurationFast = '0.2s';
276
276
  exports.$colorPrimaryRgb = '64, 158, 255';
277
277
  exports.$colorDangerRgb = '245, 108, 108';
@@ -5,7 +5,7 @@ export declare abstract class UI<T extends HTMLElement | undefined = HTMLElement
5
5
  nodeName: 'fragment' | string;
6
6
  dom: T;
7
7
  componentId: number;
8
- private slotNodes;
8
+ slotNodes: IUISlotNodes;
9
9
  protected constructor(params: ITypeConfig | undefined, tag?: string);
10
10
  /**
11
11
  * 确保slot存在,不存在则创建;
@@ -7,9 +7,9 @@ class UI extends framework_1.TypeElement {
7
7
  // 手动的方式设置 fragment; 实现类似 TypeFragment 类
8
8
  constructor(params, tag = 'div') {
9
9
  super();
10
- this.params = params !== null && params !== void 0 ? params : this.params; // setConfig 重复
10
+ this.params = Object.assign(this.params, params);
11
11
  this.componentId = exports.componentId++;
12
- this.ctrl.addAttrObj({
12
+ this.attr.addObj({
13
13
  componentId: this.componentId,
14
14
  });
15
15
  this.nodeName = tag;
@@ -1,7 +0,0 @@
1
- import { Overlay } from '../overlay/overlay.abstract';
2
- import { IDialogConfig } from './dialog.interface';
3
- export declare class Dialog extends Overlay {
4
- className: 'Dialog';
5
- props: IDialogConfig;
6
- constructor(params?: IDialogConfig);
7
- }
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Dialog = void 0;
4
- const overlay_abstract_1 = require("../overlay/overlay.abstract");
5
- class Dialog extends overlay_abstract_1.Overlay {
6
- constructor(params = {}) {
7
- super();
8
- this.className = 'Dialog';
9
- this.ctrl.addAttrObj({
10
- name: 'dialog'
11
- });
12
- this.props = this.setProps(params);
13
- if (params === null || params === void 0 ? void 0 : params.to) {
14
- this.mount(params.to);
15
- }
16
- else {
17
- this.mount(document.body);
18
- }
19
- }
20
- }
21
- exports.Dialog = Dialog;
@@ -1,4 +0,0 @@
1
- import { IUIConfig } from '../../../ui/ui.interface';
2
- export interface IDialogConfig extends IUIConfig {
3
- title?: string;
4
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +0,0 @@
1
- import { Overlay } from '../overlay/overlay.abstract';
2
- import { IMessageBoxConfig } from './message-box.interface';
3
- export declare class MessageBox extends Overlay {
4
- className: 'MessageBox';
5
- props: IMessageBoxConfig;
6
- constructor(params?: IMessageBoxConfig);
7
- toast(title: string, message: string): void;
8
- confirm(title: string, message: string): void;
9
- }
@@ -1,4 +0,0 @@
1
- import { IUIConfig } from '../../../ui/ui.interface';
2
- export interface IMessageBoxConfig extends IUIConfig {
3
- el?: HTMLElement;
4
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MessageBox = void 0;
4
- const overlay_abstract_1 = require("../overlay/overlay.abstract");
5
- class MessageBox extends overlay_abstract_1.Overlay {
6
- constructor(params = {}) {
7
- super();
8
- this.className = 'MessageBox';
9
- this.ctrl.addAttrObj({
10
- name: 'message-box'
11
- });
12
- this.props = this.setProps(params);
13
- if (params === null || params === void 0 ? void 0 : params.el) {
14
- this.mount(params.el);
15
- }
16
- else {
17
- // 默认挂载到body上;
18
- // todo 挂载到body上,需要能清理掉,否则会重复挂载
19
- this.mount(document.body);
20
- }
21
- }
22
- toast(title, message) {
23
- // this.clear();
24
- this.setTitle(title);
25
- this.setMsg(message);
26
- this.ctrl.show();
27
- }
28
- confirm(title, message) {
29
- this.setTitle(title);
30
- this.setMsg(message);
31
- }
32
- }
33
- exports.MessageBox = MessageBox;
@@ -1,7 +0,0 @@
1
- import { TypeDiv } from '@type-dom/framework';
2
- import { OverlayContainer } from '../container';
3
- export declare class OverlayBody extends TypeDiv {
4
- className: 'OverlayBody';
5
- parent?: OverlayContainer;
6
- constructor();
7
- }
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OverlayBody = void 0;
4
- const framework_1 = require("@type-dom/framework");
5
- class OverlayBody extends framework_1.TypeDiv {
6
- constructor() {
7
- super();
8
- this.className = 'OverlayBody';
9
- this.ctrl.addStyleObj({
10
- padding: '30px 20px',
11
- fontSize: '14px',
12
- wordBreak: 'break-all'
13
- });
14
- this.ctrl.addAttrName('overlay-body');
15
- }
16
- }
17
- exports.OverlayBody = OverlayBody;
@@ -1,15 +0,0 @@
1
- import { TypeDiv } from '@type-dom/framework';
2
- import { Overlay } from '../overlay.abstract';
3
- import { OverlayHeader } from './header/header';
4
- import { OverlayBody } from './body/body';
5
- import { OverlayFooter } from './footer/footer';
6
- export declare class OverlayContainer extends TypeDiv {
7
- className: 'OverlayContainer';
8
- parent?: Overlay;
9
- childNodes: [OverlayHeader, OverlayBody, OverlayFooter];
10
- header: OverlayHeader;
11
- body: OverlayBody;
12
- footer: OverlayFooter;
13
- constructor();
14
- initEvents(): void;
15
- }
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OverlayContainer = void 0;
4
- const framework_1 = require("@type-dom/framework");
5
- const header_1 = require("./header/header");
6
- const body_1 = require("./body/body");
7
- const footer_1 = require("./footer/footer");
8
- class OverlayContainer extends framework_1.TypeDiv {
9
- constructor() {
10
- super();
11
- this.className = 'OverlayContainer';
12
- this.ctrl.addStyleObj({
13
- position: 'relative',
14
- margin: '15vh auto 50px',
15
- width: '50%',
16
- boxShadow: '0 1px 3px rgba(0, 0, 0, 0.3)',
17
- borderRadius: '4px',
18
- backgroundColor: '#FFF',
19
- padding: '20px'
20
- });
21
- this.ctrl.addAttrName('overlay-container');
22
- this.header = new header_1.OverlayHeader();
23
- this.header.parent = this;
24
- this.body = new body_1.OverlayBody();
25
- this.body.parent = this;
26
- this.footer = new footer_1.OverlayFooter();
27
- this.footer.parent = this;
28
- this.childNodes = [this.header, this.body, this.footer];
29
- }
30
- initEvents() {
31
- this.addEvents({
32
- click: (e) => {
33
- e === null || e === void 0 ? void 0 : e.stopPropagation();
34
- }
35
- });
36
- }
37
- }
38
- exports.OverlayContainer = OverlayContainer;
@@ -1,8 +0,0 @@
1
- import { TypeButton } from '@type-dom/framework';
2
- import { OverlayFooter } from '../footer';
3
- export declare class CancelButton extends TypeButton {
4
- className: 'CancelButton';
5
- parent?: OverlayFooter;
6
- constructor();
7
- initEvents(): void;
8
- }
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CancelButton = void 0;
4
- const framework_1 = require("@type-dom/framework");
5
- class CancelButton extends framework_1.TypeButton {
6
- constructor() {
7
- super();
8
- this.className = 'CancelButton';
9
- this.ctrl.addStyleObj({
10
- // backgroundColor: '#f00',
11
- // color: '#FFF',
12
- margin: 'auto 10px'
13
- // outline: 'none',
14
- // border: '1px solid #f00',
15
- });
16
- this.ctrl.addAttrName('cancel-button');
17
- this.setTitle('取消');
18
- }
19
- initEvents() {
20
- var _a, _b;
21
- if (!((_b = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.parent)) {
22
- console.error('this.parent?.parent?.parent is undefined . ');
23
- }
24
- this.addEvents({
25
- click: () => {
26
- var _a, _b, _c;
27
- (_c = (_b = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.parent) === null || _c === void 0 ? void 0 : _c.ctrl.hide();
28
- }
29
- });
30
- }
31
- }
32
- exports.CancelButton = CancelButton;
@@ -1,9 +0,0 @@
1
- import { TextNode, TypeButton } from '@type-dom/framework';
2
- import { OverlayFooter } from '../footer';
3
- export declare class ConfirmButton extends TypeButton {
4
- className: 'ConfirmButton';
5
- parent?: OverlayFooter;
6
- childNodes: [TextNode];
7
- constructor();
8
- initEvents(): void;
9
- }