@type-dom/ui 0.0.7 → 0.0.9

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 (225) hide show
  1. package/package.json +1 -2
  2. package/src/aria.d.ts +0 -17
  3. package/src/aria.js +0 -18
  4. package/src/components/basic/td-button/td-button.abstract.d.ts +2 -3
  5. package/src/components/basic/td-button/td-button.abstract.js +30 -26
  6. package/src/components/basic/td-button/td-button.interface.d.ts +0 -1
  7. package/src/components/basic/td-button-group/td-button-group.class.d.ts +2 -3
  8. package/src/components/basic/td-button-group/td-button-group.class.js +14 -16
  9. package/src/components/basic/td-container/td-aside/td-aside.class.js +2 -2
  10. package/src/components/basic/td-container/td-container.class.js +5 -5
  11. package/src/components/basic/td-container/td-container.js +1 -1
  12. package/src/components/basic/td-container/td-footer/td-footer.class.js +2 -2
  13. package/src/components/basic/td-container/td-header/td-header.class.js +3 -4
  14. package/src/components/basic/td-container/td-main/td-main.class.js +2 -2
  15. package/src/components/basic/td-icon/td-icon.class.js +9 -9
  16. package/src/components/basic/td-layout/td-col/td-col.class.d.ts +5 -2
  17. package/src/components/basic/td-layout/td-col/td-col.class.js +80 -80
  18. package/src/components/basic/td-layout/td-row/td-row.class.js +13 -13
  19. package/src/components/basic/td-link/td-link.class.d.ts +0 -1
  20. package/src/components/basic/td-link/td-link.class.js +17 -19
  21. package/src/components/basic/td-scrollbar/bar/bar.class.js +3 -3
  22. package/src/components/basic/td-scrollbar/td-scrollbar.class.js +5 -5
  23. package/src/components/basic/td-scrollbar/thumb/thumb.class.js +3 -3
  24. package/src/components/basic/td-space/td-space.class.js +10 -10
  25. package/src/components/basic/td-text/td-text.class.js +12 -9
  26. package/src/components/data/td-avatar/td-avatar.class.js +12 -13
  27. package/src/components/data/td-badge/td-badge.class.d.ts +1 -0
  28. package/src/components/data/td-badge/td-badge.class.js +15 -11
  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 -3
  33. package/src/components/data/td-collapse/td-collapse.interface.d.ts +1 -0
  34. package/src/components/data/td-collapse-item/td-collapse-item.class.js +8 -8
  35. package/src/components/data/td-collapse-transition/td-collapse-transition.util.js +14 -14
  36. package/src/components/data/td-count-down/td-count-down.class.js +1 -1
  37. package/src/components/data/td-descriptions/td-descriptions-row.js +2 -2
  38. package/src/components/data/td-descriptions/td-descriptions.class.js +8 -8
  39. package/src/components/data/td-descriptions/td-descritions-cell.js +14 -14
  40. package/src/components/data/td-descriptions-item/td-descriptions-item.class.js +1 -1
  41. package/src/components/data/td-empty/img-empty.class.js +3 -3
  42. package/src/components/data/td-empty/td-empty.class.js +4 -4
  43. package/src/components/data/td-image/td-image.class.js +6 -6
  44. package/src/components/data/td-image-viewer/td-image-viewer.class.d.ts +2 -1
  45. package/src/components/data/td-image-viewer/td-image-viewer.class.js +14 -10
  46. package/src/components/data/td-result/td-result.class.js +3 -3
  47. package/src/components/data/td-segmented/td-segmented.class.js +26 -30
  48. package/src/components/data/td-statistic/td-statistic.abstract.js +2 -2
  49. package/src/components/data/td-tag/td-tag.class.js +10 -10
  50. package/src/components/feedback/index.d.ts +0 -2
  51. package/src/components/feedback/index.js +3 -5
  52. package/src/components/feedback/td-alert/td-alert.class.js +9 -9
  53. package/src/components/feedback/td-dialog/td-dialog.class.js +4 -4
  54. package/src/components/feedback/td-dialog-content/td-dialog-content.class.js +4 -4
  55. package/src/components/feedback/td-drawer/td-drawer.class.js +1 -1
  56. package/src/components/feedback/td-focus-trap/td-focus-trap.class.d.ts +19 -1
  57. package/src/components/feedback/td-focus-trap/td-focus-trap.class.js +223 -48
  58. package/src/components/feedback/td-focus-trap/tokens.d.ts +2 -1
  59. package/src/components/feedback/td-focus-trap/utils.d.ts +1 -1
  60. package/src/components/feedback/td-focus-trap/utils.js +9 -11
  61. package/src/components/feedback/td-loading/td-loading.class.js +1 -1
  62. package/src/components/feedback/td-message/td-message.class.d.ts +4 -2
  63. package/src/components/feedback/td-message/td-message.class.js +34 -27
  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 +3 -1
  66. package/src/components/feedback/td-message-box/td-message-box.class.js +79 -75
  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 +29 -29
  70. package/src/components/feedback/td-only-child/td-only-child.class.d.ts +7 -0
  71. package/src/components/feedback/td-only-child/td-only-child.class.js +74 -0
  72. package/src/components/feedback/td-overlay/td-overlay.class.d.ts +1 -1
  73. package/src/components/feedback/td-overlay/td-overlay.class.js +5 -5
  74. package/src/components/feedback/td-popper/arrow/arrow.class.d.ts +6 -0
  75. package/src/components/feedback/td-popper/arrow/arrow.class.js +22 -3
  76. package/src/components/feedback/td-popper/composable/use-focus-trap.d.ts +0 -0
  77. package/src/components/feedback/td-popper/composable/use-focus-trap.js +1 -0
  78. package/src/components/feedback/td-popper/content/content.class.d.ts +1 -0
  79. package/src/components/feedback/td-popper/content/content.class.js +25 -4
  80. package/src/components/feedback/td-popper/content/content.const.d.ts +3 -0
  81. package/src/components/feedback/td-popper/content/content.const.js +29 -0
  82. package/src/components/feedback/td-popper/content/content.interface.d.ts +9 -0
  83. package/src/components/feedback/td-popper/td-popper.class.d.ts +1 -1
  84. package/src/components/feedback/td-popper/td-popper.class.js +35 -2
  85. package/src/components/feedback/td-popper/td-popper.const.d.ts +21 -0
  86. package/src/components/feedback/td-popper/td-popper.const.js +5 -0
  87. package/src/components/feedback/td-popper/trigger/trigger.class.d.ts +11 -0
  88. package/src/components/feedback/td-popper/trigger/trigger.class.js +96 -1
  89. package/src/components/feedback/td-popper/trigger/trigger.const.d.ts +1 -0
  90. package/src/components/feedback/td-popper/trigger/trigger.const.js +12 -0
  91. package/src/components/feedback/td-popper/trigger/trigger.interface.d.ts +1 -0
  92. package/src/components/feedback/td-tooltip/content/content.class.js +1 -1
  93. package/src/components/feedback/td-tooltip/td-tooltip.class.js +1 -1
  94. package/src/components/feedback/td-tooltip/trigger/trigger.class.js +1 -1
  95. package/src/components/form/checkbox-group/checkbox-group.class.js +6 -7
  96. package/src/components/form/checkbox-group/checkbox-option/checkbox-option.class.d.ts +1 -1
  97. package/src/components/form/checkbox-group/checkbox-option/checkbox-option.class.js +21 -20
  98. package/src/components/form/field-item/cascade/field-cascade.abstract.d.ts +1 -1
  99. package/src/components/form/field-item/cascade/field-cascade.abstract.js +48 -43
  100. package/src/components/form/field-item/field-item.abstract.js +3 -3
  101. package/src/components/form/field-item/input/field-input.abstract.d.ts +1 -1
  102. package/src/components/form/field-item/input/field-input.abstract.js +15 -14
  103. package/src/components/form/field-item/options/field-options.abstract.d.ts +1 -3
  104. package/src/components/form/field-item/options/field-options.abstract.js +49 -46
  105. package/src/components/form/field-item/radio/field-radio.abstract.d.ts +1 -1
  106. package/src/components/form/field-item/radio/field-radio.abstract.js +32 -36
  107. package/src/components/form/field-item/select/field-select.abstract.d.ts +1 -1
  108. package/src/components/form/field-item/select/field-select.abstract.js +19 -19
  109. package/src/components/form/field-item/span/field-span.abstract.js +5 -5
  110. package/src/components/form/field-item/textarea/field-textarea.abstract.js +5 -5
  111. package/src/components/form/field-select/field-select.class.d.ts +1 -1
  112. package/src/components/form/field-select/field-select.class.js +23 -24
  113. package/src/components/form/field-select/option/option.class.js +1 -3
  114. package/src/components/form/radio-group/radio-group.class.js +6 -7
  115. package/src/components/form/radio-group/radio-option/radio-option.class.d.ts +0 -1
  116. package/src/components/form/radio-group/radio-option/radio-option.class.js +14 -15
  117. package/src/components/form/select/select.class.d.ts +1 -1
  118. package/src/components/form/select/select.class.js +19 -18
  119. package/src/components/form/td-checkbox/td-checkbox.class.js +3 -3
  120. package/src/components/form/td-checkbox-button/td-checkbox-button.class.js +3 -3
  121. package/src/components/form/td-checkbox-group/td-checkbox-group.class.js +3 -3
  122. package/src/components/form/td-form/td-form.class.js +5 -3
  123. package/src/components/form/td-form-item/td-form-item.class.js +16 -16
  124. package/src/components/form/td-input/td-input-field.class.js +8 -8
  125. package/src/components/form/td-input/td-input.class.d.ts +0 -1
  126. package/src/components/form/td-input/td-input.class.js +9 -11
  127. package/src/components/form/td-input/widget/prefix.js +1 -1
  128. package/src/components/form/td-input/widget/suffix.js +3 -3
  129. package/src/components/form/td-input/widget/td-input-wrapper.class.js +12 -11
  130. package/src/components/form/td-input/widget/td-textarea-wrapper.js +3 -3
  131. package/src/components/form/td-option/td-option.class.js +3 -3
  132. package/src/components/form/td-option-group/td-option-group.class.js +3 -3
  133. package/src/components/form/td-radio/td-radio.class.d.ts +0 -1
  134. package/src/components/form/td-radio/td-radio.class.js +50 -54
  135. package/src/components/form/td-radio-button/td-radio-button.class.d.ts +0 -1
  136. package/src/components/form/td-radio-button/td-radio-button.class.js +46 -50
  137. package/src/components/form/td-radio-group/td-radio-group.class.js +3 -4
  138. package/src/components/form/td-select/dropdown/dropdown.class.js +2 -2
  139. package/src/components/form/td-select/td-select.class.js +2 -2
  140. package/src/components/form/td-switch/td-switch.class.d.ts +1 -1
  141. package/src/components/form/td-switch/td-switch.class.js +27 -28
  142. package/src/components/form/td-switch/widget/td-switch-core.js +6 -6
  143. package/src/components/form/td-switch/widget/td-switch-left.js +3 -3
  144. package/src/components/form/td-switch/widget/td-switch-right.js +2 -2
  145. package/src/components/navigation/td-affix/td-affix.class.d.ts +3 -0
  146. package/src/components/navigation/td-affix/td-affix.class.js +22 -20
  147. package/src/components/navigation/td-anchor/td-anchor-link/td-anchor-link.class.js +1 -1
  148. package/src/components/navigation/td-anchor/td-anchor.class.js +10 -10
  149. package/src/components/navigation/td-backtop/td-backtop.class.d.ts +5 -3
  150. package/src/components/navigation/td-backtop/td-backtop.class.js +42 -34
  151. package/src/components/navigation/td-backtop/td-backtop.interface.d.ts +3 -0
  152. package/src/components/navigation/td-backtop/use-backtop.d.ts +7 -0
  153. package/src/components/navigation/td-backtop/use-backtop.js +44 -0
  154. package/src/components/navigation/td-breadcrumb/td-breadcrumb.class.js +4 -4
  155. package/src/components/navigation/td-breadcrumb-item/td-breadcrumb-item.class.js +3 -3
  156. package/src/components/navigation/td-menu/td-menu.class.js +5 -5
  157. package/src/components/navigation/td-menu/td-menu.interface.d.ts +2 -1
  158. package/src/components/navigation/td-tabs/td-tab-bar.class.js +5 -5
  159. package/src/components/navigation/td-tabs/td-tab-nav.class.js +14 -14
  160. package/src/components/navigation/td-tabs/td-tab-pane.class.js +3 -3
  161. package/src/components/navigation/td-tabs/td-tabs.class.js +22 -25
  162. package/src/components/others/collapsible-box/collapsible-box.js +2 -2
  163. package/src/components/others/collapsible-box/contents/contents.js +2 -2
  164. package/src/components/others/collapsible-box/heading/expand-heading.d.ts +1 -1
  165. package/src/components/others/collapsible-box/heading/expand-heading.js +27 -26
  166. package/src/components/others/custom-block/custom-block.d.ts +11 -0
  167. package/src/components/others/custom-block/custom-block.js +58 -0
  168. package/src/components/others/example/example-float-control.d.ts +8 -0
  169. package/src/components/others/example/example-float-control.js +63 -0
  170. package/src/components/others/example/example-showcase.d.ts +7 -0
  171. package/src/components/others/example/example-showcase.js +20 -0
  172. package/src/components/others/example/example-source-wrapper.d.ts +9 -0
  173. package/src/components/others/example/example-source-wrapper.js +30 -0
  174. package/src/components/others/example/example.d.ts +14 -0
  175. package/src/components/others/example/example.js +77 -0
  176. package/src/components/others/example/index.d.ts +5 -0
  177. package/src/components/others/example/index.js +13 -0
  178. package/src/components/others/example/op-btns.d.ts +7 -0
  179. package/src/components/others/example/op-btns.js +95 -0
  180. package/src/components/others/index.d.ts +4 -0
  181. package/src/components/others/index.js +9 -1
  182. package/src/components/others/menus/menu.d.ts +21 -0
  183. package/src/components/others/menus/menu.js +125 -0
  184. package/src/components/others/menus/menus.d.ts +15 -0
  185. package/src/components/others/menus/menus.js +101 -0
  186. package/src/components/others/td-divider/td-divider.class.js +8 -8
  187. package/src/hooks/index.d.ts +3 -0
  188. package/src/hooks/index.js +6 -0
  189. package/src/hooks/use-cursor.d.ts +1 -0
  190. package/src/hooks/use-cursor.js +56 -0
  191. package/src/hooks/use-escape-keydown.d.ts +4 -0
  192. package/src/hooks/use-escape-keydown.js +31 -0
  193. package/src/hooks/use-forward-ref.d.ts +13 -0
  194. package/src/hooks/use-forward-ref.js +27 -0
  195. package/src/index.d.ts +1 -0
  196. package/src/index.js +1 -0
  197. package/src/ui/ui.abstract.d.ts +1 -1
  198. package/src/ui/ui.abstract.js +3 -3
  199. package/src/ui/ui.interface.d.ts +3 -3
  200. package/src/components/feedback/dialog/dialog.class.d.ts +0 -7
  201. package/src/components/feedback/dialog/dialog.class.js +0 -21
  202. package/src/components/feedback/dialog/dialog.interface.d.ts +0 -4
  203. package/src/components/feedback/dialog/dialog.interface.js +0 -2
  204. package/src/components/feedback/message-box/message-box.d.ts +0 -9
  205. package/src/components/feedback/message-box/message-box.interface.d.ts +0 -4
  206. package/src/components/feedback/message-box/message-box.interface.js +0 -2
  207. package/src/components/feedback/message-box/message-box.js +0 -33
  208. package/src/components/feedback/overlay/container/body/body.d.ts +0 -7
  209. package/src/components/feedback/overlay/container/body/body.js +0 -17
  210. package/src/components/feedback/overlay/container/container.d.ts +0 -15
  211. package/src/components/feedback/overlay/container/container.js +0 -37
  212. package/src/components/feedback/overlay/container/footer/cancel-button/cancel-button.d.ts +0 -8
  213. package/src/components/feedback/overlay/container/footer/cancel-button/cancel-button.js +0 -31
  214. package/src/components/feedback/overlay/container/footer/confirm-button/confirm-button.d.ts +0 -9
  215. package/src/components/feedback/overlay/container/footer/confirm-button/confirm-button.js +0 -31
  216. package/src/components/feedback/overlay/container/footer/footer.d.ts +0 -10
  217. package/src/components/feedback/overlay/container/footer/footer.js +0 -47
  218. package/src/components/feedback/overlay/container/header/close-button/close-button.d.ts +0 -11
  219. package/src/components/feedback/overlay/container/header/close-button/close-button.js +0 -33
  220. package/src/components/feedback/overlay/container/header/header.d.ts +0 -12
  221. package/src/components/feedback/overlay/container/header/header.js +0 -25
  222. package/src/components/feedback/overlay/container/header/title/title.d.ts +0 -9
  223. package/src/components/feedback/overlay/container/header/title/title.js +0 -19
  224. package/src/components/feedback/overlay/overlay.abstract.d.ts +0 -13
  225. package/src/components/feedback/overlay/overlay.abstract.js +0 -59
@@ -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);
@@ -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;
@@ -20,7 +20,7 @@ class UI extends framework_1.TypeElement {
20
20
  this.dom = document.createElement(this.nodeName.trim());
21
21
  }
22
22
  this.slotNodes = {
23
- default: new framework_1.SlotNode('default'),
23
+ // default: new SlotNode('default'),
24
24
  };
25
25
  // todo 统一处理,还是在各个类中处理
26
26
  this.useSlots(params);
@@ -1,12 +1,12 @@
1
- import { ISlotNodes, ITypeConfig, ITypeElement, SlotNode } from '@type-dom/framework';
1
+ import { ISlotNodes, ITypeConfig, ITypeElement, SlotNode, TypeElement } from '@type-dom/framework';
2
2
  export interface IUI extends ITypeElement {
3
3
  componentId?: string | number;
4
4
  }
5
5
  export interface IUIConfig extends ITypeConfig {
6
6
  tag?: string;
7
7
  items?: ITypeConfig[];
8
- childNodes?: undefined;
8
+ childNodes?: TypeElement[] | undefined;
9
9
  }
10
10
  export interface IUISlotNodes extends ISlotNodes {
11
- default: SlotNode;
11
+ default?: SlotNode;
12
12
  }
@@ -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.setParams(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.setParams(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,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OverlayContainer = void 0;
4
- const rxjs_1 = require("rxjs");
5
- const framework_1 = require("@type-dom/framework");
6
- const header_1 = require("./header/header");
7
- const body_1 = require("./body/body");
8
- const footer_1 = require("./footer/footer");
9
- class OverlayContainer extends framework_1.TypeDiv {
10
- constructor() {
11
- super();
12
- this.className = 'OverlayContainer';
13
- this.ctrl.addStyleObj({
14
- position: 'relative',
15
- margin: '15vh auto 50px',
16
- width: '50%',
17
- boxShadow: '0 1px 3px rgba(0, 0, 0, 0.3)',
18
- borderRadius: '4px',
19
- backgroundColor: '#FFF',
20
- padding: '20px'
21
- });
22
- this.ctrl.addAttrName('overlay-container');
23
- this.header = new header_1.OverlayHeader();
24
- this.header.parent = this;
25
- this.body = new body_1.OverlayBody();
26
- this.body.parent = this;
27
- this.footer = new footer_1.OverlayFooter();
28
- this.footer.parent = this;
29
- this.childNodes = [this.header, this.body, this.footer];
30
- }
31
- initEvents() {
32
- this.subscriptions.push((0, rxjs_1.fromEvent)(this.dom, 'click').subscribe((e) => {
33
- e.stopPropagation();
34
- }));
35
- }
36
- }
37
- 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,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CancelButton = void 0;
4
- const rxjs_1 = require("rxjs");
5
- const framework_1 = require("@type-dom/framework");
6
- class CancelButton extends framework_1.TypeButton {
7
- constructor() {
8
- super();
9
- this.className = 'CancelButton';
10
- this.ctrl.addStyleObj({
11
- // backgroundColor: '#f00',
12
- // color: '#FFF',
13
- margin: 'auto 10px'
14
- // outline: 'none',
15
- // border: '1px solid #f00',
16
- });
17
- this.ctrl.addAttrName('cancel-button');
18
- this.setTitle('取消');
19
- }
20
- initEvents() {
21
- var _a, _b;
22
- if (!((_b = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.parent)) {
23
- console.error('this.parent?.parent?.parent is undefined . ');
24
- }
25
- this.subscriptions.push((0, rxjs_1.fromEvent)(this.dom, 'click').subscribe(() => {
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
- 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
- }
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConfirmButton = void 0;
4
- const rxjs_1 = require("rxjs");
5
- const framework_1 = require("@type-dom/framework");
6
- class ConfirmButton extends framework_1.TypeButton {
7
- constructor() {
8
- super();
9
- this.className = 'ConfirmButton';
10
- this.ctrl.addStyleObj({
11
- backgroundColor: '#1890ff',
12
- color: '#fff',
13
- borderColor: '#1890ff',
14
- margin: 'auto 10px'
15
- });
16
- this.ctrl.addAttrName('confirm-button');
17
- this.setTitle('确认');
18
- this.childNodes = [this.textNode];
19
- }
20
- initEvents() {
21
- var _a, _b;
22
- if (!((_b = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.parent)) {
23
- console.error('this.parent?.parent?.parent is undefined . ');
24
- }
25
- this.subscriptions.push((0, rxjs_1.fromEvent)(this.dom, 'click').subscribe(() => {
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
- exports.ConfirmButton = ConfirmButton;
@@ -1,10 +0,0 @@
1
- import { TypeDiv } from '@type-dom/framework';
2
- import { TdButton } from '../../../../basic/td-button/td-button.class';
3
- import { OverlayContainer } from '../container';
4
- export declare class OverlayFooter extends TypeDiv {
5
- className: 'OverlayFooter';
6
- parent?: OverlayContainer;
7
- cancelBtn: TdButton;
8
- confirmBtn: TdButton;
9
- constructor();
10
- }
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OverlayFooter = void 0;
4
- const framework_1 = require("@type-dom/framework");
5
- const td_button_class_1 = require("../../../../basic/td-button/td-button.class");
6
- class OverlayFooter extends framework_1.TypeDiv {
7
- constructor() {
8
- super();
9
- this.className = 'OverlayFooter';
10
- this.ctrl.addStyleObj({
11
- padding: '20px',
12
- paddingTop: '10px',
13
- textAlign: 'right',
14
- boxSizing: 'border-box'
15
- });
16
- this.ctrl.addAttrName('overlay-foot');
17
- // this.cancelBtn = new CancelButton(this);
18
- this.cancelBtn = new td_button_class_1.TdButton({
19
- slot: '取消',
20
- events: {
21
- click: () => {
22
- var _a, _b;
23
- console.log('cancelBtn click . ');
24
- (_b = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.ctrl.hide();
25
- }
26
- }
27
- });
28
- // cancelBtn.ctrl.hide();
29
- this.confirmBtn = new td_button_class_1.TdButton({
30
- slot: '确定',
31
- type: 'primary',
32
- styleObj: {
33
- marginLeft: '10px'
34
- },
35
- events: {
36
- click: () => {
37
- var _a, _b;
38
- console.log('confirmBtn click . ');
39
- (_b = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.ctrl.hide();
40
- }
41
- }
42
- });
43
- // this.confirmBtn.setTitle('确定');
44
- this.addChildren(this.cancelBtn, this.confirmBtn);
45
- }
46
- }
47
- exports.OverlayFooter = OverlayFooter;
@@ -1,11 +0,0 @@
1
- import { TypeButton } from '@type-dom/framework';
2
- import { TdCloseSvg } from '@type-dom/svgs';
3
- import { OverlayHeader } from '../header';
4
- export declare class CloseButton extends TypeButton {
5
- className: 'CloseButton';
6
- parent?: OverlayHeader;
7
- childNodes: [TdCloseSvg];
8
- private readonly svg;
9
- constructor();
10
- initEvents(): void;
11
- }
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CloseButton = void 0;
4
- const rxjs_1 = require("rxjs");
5
- const framework_1 = require("@type-dom/framework");
6
- const svgs_1 = require("@type-dom/svgs");
7
- class CloseButton extends framework_1.TypeButton {
8
- constructor() {
9
- super();
10
- this.className = 'CloseButton';
11
- this.ctrl.addStyleObj({
12
- cursor: 'pointer',
13
- position: 'absolute',
14
- top: '20px',
15
- right: '20px',
16
- padding: '0',
17
- background: 'transparent',
18
- border: 'none',
19
- outline: 'none',
20
- fontSize: '16px'
21
- });
22
- this.ctrl.addAttrName('close-button');
23
- this.svg = new svgs_1.TdCloseSvg({ parent: this });
24
- this.childNodes = [this.svg];
25
- }
26
- initEvents() {
27
- this.subscriptions.push((0, rxjs_1.fromEvent)(this.dom, 'click').subscribe(() => {
28
- var _a, _b, _c;
29
- (_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();
30
- }));
31
- }
32
- }
33
- exports.CloseButton = CloseButton;
@@ -1,12 +0,0 @@
1
- import { TypeDiv } from '@type-dom/framework';
2
- import { OverlayContainer } from '../container';
3
- import { OverlayTitle } from './title/title';
4
- import { CloseButton } from './close-button/close-button';
5
- export declare class OverlayHeader extends TypeDiv {
6
- className: 'OverlayHeader';
7
- parent?: OverlayContainer;
8
- childNodes: [OverlayTitle, CloseButton];
9
- title: OverlayTitle;
10
- closeBtn: CloseButton;
11
- constructor();
12
- }
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OverlayHeader = void 0;
4
- const framework_1 = require("@type-dom/framework");
5
- const title_1 = require("./title/title");
6
- const close_button_1 = require("./close-button/close-button");
7
- class OverlayHeader extends framework_1.TypeDiv {
8
- constructor() {
9
- super();
10
- this.className = 'OverlayHeader';
11
- this.ctrl.addStyleObj({
12
- padding: '20px',
13
- paddingBottom: '10px',
14
- boxSizing: 'border-box'
15
- });
16
- this.ctrl.addAttrObj({
17
- name: 'overlay-header'
18
- });
19
- this.title = new title_1.OverlayTitle();
20
- this.closeBtn = new close_button_1.CloseButton();
21
- this.closeBtn.parent = this;
22
- this.childNodes = [this.title, this.closeBtn];
23
- }
24
- }
25
- exports.OverlayHeader = OverlayHeader;
@@ -1,9 +0,0 @@
1
- import { TextNode, TypeSpan } from '@type-dom/framework';
2
- import { OverlayHeader } from '../header';
3
- export declare class OverlayTitle extends TypeSpan {
4
- className: 'OverlayTitle';
5
- parent?: OverlayHeader;
6
- childNodes: TextNode[];
7
- textNode: TextNode;
8
- constructor();
9
- }
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OverlayTitle = void 0;
4
- const framework_1 = require("@type-dom/framework");
5
- class OverlayTitle extends framework_1.TypeSpan {
6
- constructor() {
7
- super();
8
- this.className = 'OverlayTitle';
9
- this.ctrl.addStyleObj({
10
- lineHeight: '16px',
11
- fontSize: '16px',
12
- color: '#000'
13
- });
14
- this.ctrl.addAttrName('overlay-title');
15
- this.textNode = new framework_1.TextNode('标题');
16
- this.childNodes = [this.textNode];
17
- }
18
- }
19
- exports.OverlayTitle = OverlayTitle;
@@ -1,13 +0,0 @@
1
- import { TypeDiv } from '@type-dom/framework';
2
- import { OverlayContainer } from './container/container';
3
- export declare abstract class Overlay extends TypeDiv {
4
- childNodes: [OverlayContainer];
5
- container: OverlayContainer;
6
- protected constructor();
7
- setTitle(title: string): void;
8
- setMsg(msg: string): void;
9
- setContent(content: string): void;
10
- clear(): void;
11
- clearBody(): void;
12
- initEvents(): void;
13
- }