@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,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExampleShowcase = void 0;
4
+ const framework_1 = require("@type-dom/framework");
5
+ const var_1 = require("../../../styles/var");
6
+ class ExampleShowcase extends framework_1.TypeDiv {
7
+ constructor(params) {
8
+ super();
9
+ this.className = 'ExampleShowcase';
10
+ this.attr.addName('example-showcase');
11
+ this.style.addObj({
12
+ padding: '1.5rem',
13
+ margin: '.5px',
14
+ // background-color: var(--bg-color),
15
+ backgroundColor: var_1.$bgColor.default
16
+ });
17
+ this.useParams(params);
18
+ }
19
+ }
20
+ exports.ExampleShowcase = ExampleShowcase;
@@ -0,0 +1,9 @@
1
+ import { IJsonData, ITypeConfig, TypeDiv, XProxy } from '@type-dom/framework';
2
+ export interface IExampleSourceWrapperConfig extends ITypeConfig {
3
+ sourceWrapper: string | XProxy<IJsonData>;
4
+ }
5
+ export declare class ExampleSourceWrapper extends TypeDiv {
6
+ className: 'ExampleSourceWrapper';
7
+ props: IExampleSourceWrapperConfig;
8
+ constructor(params: IExampleSourceWrapperConfig);
9
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExampleSourceWrapper = void 0;
4
+ const framework_1 = require("@type-dom/framework");
5
+ const styles_1 = require("../../../styles");
6
+ class ExampleSourceWrapper extends framework_1.TypeDiv {
7
+ constructor(params) {
8
+ var _a;
9
+ super();
10
+ this.className = 'ExampleSourceWrapper';
11
+ this.attr.addName('example-source-wrapper');
12
+ this.style.addObj({
13
+ // background-color: var(--code-bg-color),
14
+ backgroundColor: styles_1.$fillColor.light,
15
+ overflowX: 'auto'
16
+ });
17
+ this.addChild(new framework_1.Pre({
18
+ childNodes: [
19
+ new framework_1.Code({
20
+ text: (_a = params.sourceWrapper) !== null && _a !== void 0 ? _a : ''
21
+ })
22
+ ]
23
+ }));
24
+ // if (params?.slot) {
25
+ // this.slotChild(params.slot);
26
+ // }
27
+ this.props = this.useParams(params);
28
+ }
29
+ }
30
+ exports.ExampleSourceWrapper = ExampleSourceWrapper;
@@ -0,0 +1,14 @@
1
+ import { IJsonData, ITypeConfig, TypeDiv, TypeElement, XProxy } from '@type-dom/framework';
2
+ import { ExampleSourceWrapper } from './example-source-wrapper';
3
+ import { ExampleFloatControl } from './example-float-control';
4
+ export interface IExampleConfig extends ITypeConfig {
5
+ showcase: TypeElement[];
6
+ sourceWrapper: string | XProxy<IJsonData>;
7
+ }
8
+ export declare class Example extends TypeDiv {
9
+ className: 'Example';
10
+ sourceWrapper: ExampleSourceWrapper;
11
+ floatControl: ExampleFloatControl;
12
+ props: IExampleConfig;
13
+ constructor(params: IExampleConfig);
14
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Example = void 0;
4
+ const framework_1 = require("@type-dom/framework");
5
+ const var_1 = require("../../../styles/var");
6
+ const td_divider_class_1 = require("../td-divider/td-divider.class");
7
+ const example_showcase_1 = require("./example-showcase");
8
+ const example_source_wrapper_1 = require("./example-source-wrapper");
9
+ const op_btns_1 = require("./op-btns");
10
+ const example_float_control_1 = require("./example-float-control");
11
+ // todo slots 改造
12
+ class Example extends framework_1.TypeDiv {
13
+ constructor(params) {
14
+ super();
15
+ this.className = 'Example';
16
+ this.attr.addName('example');
17
+ this.style.addObj({
18
+ // border: '1px solid 'var(--border-color),
19
+ border: '1px solid ' + var_1.$borderColor.base,
20
+ // border-radius: var(--el-border-radius-base);
21
+ borderRadius: var_1.$borderRadius.base
22
+ });
23
+ const exampleShowcase = new example_showcase_1.ExampleShowcase({
24
+ parent: this
25
+ });
26
+ exampleShowcase.addChildren(...params.showcase);
27
+ this.addChild(exampleShowcase);
28
+ this.addChild(new td_divider_class_1.TdDivider({
29
+ styleObj: {
30
+ margin: '0'
31
+ }
32
+ }));
33
+ const opBtns = new op_btns_1.OpBtns({
34
+ parent: this
35
+ });
36
+ this.addChild(opBtns);
37
+ this.sourceWrapper = new example_source_wrapper_1.ExampleSourceWrapper({
38
+ parent: this,
39
+ styleObj: {
40
+ display: 'none'
41
+ },
42
+ sourceWrapper: params.sourceWrapper,
43
+ // slot: [
44
+ // new Div({
45
+ // attrObj: {
46
+ // name: 'source-wrapper'
47
+ // },
48
+ // styleObj: {
49
+ // // background-color: var(--code-bg-color),
50
+ // backgroundColor: $fillColor.light,
51
+ // overflowX: 'auto'
52
+ // },
53
+ // childNodes: [
54
+ // new Pre({
55
+ // childNodes: [
56
+ // new Code({
57
+ // text: params.sourceWrapper
58
+ // })
59
+ // ]
60
+ // })
61
+ // ]
62
+ // })
63
+ // ]
64
+ });
65
+ // this.sourceWrapper.addChild(config.sourceWrapper);
66
+ this.addChild(this.sourceWrapper);
67
+ this.floatControl = new example_float_control_1.ExampleFloatControl({
68
+ parent: this,
69
+ styleObj: {
70
+ display: 'none'
71
+ }
72
+ });
73
+ this.addChild(this.floatControl);
74
+ this.props = this.useParams(params);
75
+ }
76
+ }
77
+ exports.Example = Example;
@@ -0,0 +1,5 @@
1
+ export { Example } from './example';
2
+ export { ExampleFloatControl } from './example-float-control';
3
+ export { ExampleShowcase } from './example-showcase';
4
+ export { ExampleSourceWrapper } from './example-source-wrapper';
5
+ export { OpBtns } from './op-btns';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpBtns = exports.ExampleSourceWrapper = exports.ExampleShowcase = exports.ExampleFloatControl = exports.Example = void 0;
4
+ var example_1 = require("./example");
5
+ Object.defineProperty(exports, "Example", { enumerable: true, get: function () { return example_1.Example; } });
6
+ var example_float_control_1 = require("./example-float-control");
7
+ Object.defineProperty(exports, "ExampleFloatControl", { enumerable: true, get: function () { return example_float_control_1.ExampleFloatControl; } });
8
+ var example_showcase_1 = require("./example-showcase");
9
+ Object.defineProperty(exports, "ExampleShowcase", { enumerable: true, get: function () { return example_showcase_1.ExampleShowcase; } });
10
+ var example_source_wrapper_1 = require("./example-source-wrapper");
11
+ Object.defineProperty(exports, "ExampleSourceWrapper", { enumerable: true, get: function () { return example_source_wrapper_1.ExampleSourceWrapper; } });
12
+ var op_btns_1 = require("./op-btns");
13
+ Object.defineProperty(exports, "OpBtns", { enumerable: true, get: function () { return op_btns_1.OpBtns; } });
@@ -0,0 +1,7 @@
1
+ import { ITypeConfig, TypeDiv } from '@type-dom/framework';
2
+ import { Example } from './example';
3
+ export declare class OpBtns extends TypeDiv {
4
+ className: 'OpBtns';
5
+ parent: Example;
6
+ constructor(params: ITypeConfig);
7
+ }
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpBtns = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const framework_1 = require("@type-dom/framework");
6
+ const svgs_1 = require("@type-dom/svgs");
7
+ const var_1 = require("../../../styles/var");
8
+ const td_icon_class_1 = require("../../basic/td-icon/td-icon.class");
9
+ class OpBtns extends framework_1.TypeDiv {
10
+ constructor(params) {
11
+ super();
12
+ this.className = 'OpBtns';
13
+ this.parent = params.parent;
14
+ this.attr.addName('op-btns');
15
+ this.style.addObj({
16
+ padding: '.5rem',
17
+ display: 'flex',
18
+ alignItems: 'center',
19
+ justifyContent: 'flex-end',
20
+ height: '2.5rem',
21
+ boxSizing: 'border-box'
22
+ });
23
+ this.addChild(new td_icon_class_1.TdIcon({
24
+ styleObj: {
25
+ height: '1em',
26
+ width: '1em',
27
+ lineHeight: '1em',
28
+ display: 'inline-flex',
29
+ justifyContent: 'center',
30
+ color: var_1.$textColor.secondary
31
+ },
32
+ svgObj: new svgs_1.ElCopyDocumentSvg(),
33
+ events: {
34
+ click: () => tslib_1.__awaiter(this, void 0, void 0, function* () {
35
+ var _a, _b;
36
+ // 选取要复制的文本
37
+ let textToCopy = '';
38
+ if (this.parent.props.sourceWrapper instanceof framework_1.XProxy) {
39
+ textToCopy = (_a = this.parent.props.sourceWrapper) === null || _a === void 0 ? void 0 : _a.value;
40
+ }
41
+ else {
42
+ textToCopy = (_b = this.parent.props.sourceWrapper) !== null && _b !== void 0 ? _b : '';
43
+ }
44
+ // 尝试使用Async Clipboard API
45
+ try {
46
+ yield navigator.clipboard.writeText(textToCopy);
47
+ alert('文本已复制到剪贴板!');
48
+ }
49
+ catch (err) {
50
+ console.error('无法复制文本: ', err);
51
+ alert('复制失败,请手动复制。');
52
+ }
53
+ })
54
+ }
55
+ }));
56
+ this.addChild(new td_icon_class_1.TdIcon({
57
+ // text: '查看代码',
58
+ styleObj: {
59
+ height: '1em',
60
+ width: '1em',
61
+ lineHeight: '1em',
62
+ display: 'inline-flex',
63
+ justifyContent: 'center',
64
+ alignItems: 'center',
65
+ position: 'relative',
66
+ fill: 'currentColor',
67
+ // color: var(--color),
68
+ fontSize: '16px',
69
+ background: 'none',
70
+ border: 'none',
71
+ padding: '0',
72
+ cursor: 'pointer',
73
+ margin: '0 .5rem',
74
+ // color: var(--text-color-lighter),
75
+ color: var_1.$textColor.secondary,
76
+ transition: '.2s'
77
+ },
78
+ svgObj: new svgs_1.TdViewCodeSvg(),
79
+ events: {
80
+ click: () => {
81
+ if (this.parent.sourceWrapper.style.get('display') === 'none') {
82
+ this.parent.sourceWrapper.style.show();
83
+ this.parent.floatControl.style.show('flex');
84
+ }
85
+ else {
86
+ this.parent.sourceWrapper.style.hide();
87
+ this.parent.floatControl.style.hide();
88
+ }
89
+ }
90
+ }
91
+ }));
92
+ this.useParams(params);
93
+ }
94
+ }
95
+ exports.OpBtns = OpBtns;
@@ -3,3 +3,7 @@ export { ExpandHeading } from './collapsible-box/heading/expand-heading';
3
3
  export { CollapsibleBoxContents } from './collapsible-box/contents/contents';
4
4
  export { TdDivider } from './td-divider/td-divider.class';
5
5
  export type { ITdDivider, ITdDividerConfig } from './td-divider/td-divider.interface';
6
+ export * from './example';
7
+ export { Menus } from './menus/menus';
8
+ export { Menu } from './menus/menu';
9
+ export { CustomBlock } from './custom-block/custom-block';
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TdDivider = exports.CollapsibleBoxContents = exports.ExpandHeading = exports.CollapsibleBox = void 0;
3
+ exports.CustomBlock = exports.Menu = exports.Menus = exports.TdDivider = exports.CollapsibleBoxContents = exports.ExpandHeading = exports.CollapsibleBox = void 0;
4
+ const tslib_1 = require("tslib");
4
5
  var collapsible_box_1 = require("./collapsible-box/collapsible-box");
5
6
  Object.defineProperty(exports, "CollapsibleBox", { enumerable: true, get: function () { return collapsible_box_1.CollapsibleBox; } });
6
7
  var expand_heading_1 = require("./collapsible-box/heading/expand-heading");
@@ -9,3 +10,10 @@ var contents_1 = require("./collapsible-box/contents/contents");
9
10
  Object.defineProperty(exports, "CollapsibleBoxContents", { enumerable: true, get: function () { return contents_1.CollapsibleBoxContents; } });
10
11
  var td_divider_class_1 = require("./td-divider/td-divider.class");
11
12
  Object.defineProperty(exports, "TdDivider", { enumerable: true, get: function () { return td_divider_class_1.TdDivider; } });
13
+ tslib_1.__exportStar(require("./example"), exports);
14
+ var menus_1 = require("./menus/menus");
15
+ Object.defineProperty(exports, "Menus", { enumerable: true, get: function () { return menus_1.Menus; } });
16
+ var menu_1 = require("./menus/menu");
17
+ Object.defineProperty(exports, "Menu", { enumerable: true, get: function () { return menu_1.Menu; } });
18
+ var custom_block_1 = require("./custom-block/custom-block");
19
+ Object.defineProperty(exports, "CustomBlock", { enumerable: true, get: function () { return custom_block_1.CustomBlock; } });
@@ -0,0 +1,21 @@
1
+ import { Div, TypeMenu, type IRoute, Router, ITypeConfig } from '@type-dom/framework';
2
+ import { TdIcon } from '../../basic/td-icon/td-icon.class';
3
+ import { Menus } from './menus';
4
+ export interface IMenuConfig extends ITypeConfig {
5
+ route: IRoute;
6
+ router?: Router;
7
+ width?: string;
8
+ }
9
+ export declare class Menu extends TypeMenu {
10
+ className: 'Menu';
11
+ route?: IRoute;
12
+ router?: Router;
13
+ parent?: Menu | Menus;
14
+ contentItem: Div;
15
+ menuItems: Menu[];
16
+ collapsed?: boolean;
17
+ caret?: TdIcon;
18
+ constructor(params: IMenuConfig);
19
+ get menuRoot(): Menus | undefined;
20
+ setup(): void;
21
+ }
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Menu = void 0;
4
+ const framework_1 = require("@type-dom/framework");
5
+ const svgs_1 = require("@type-dom/svgs");
6
+ const td_icon_class_1 = require("../../basic/td-icon/td-icon.class");
7
+ class Menu extends framework_1.TypeMenu {
8
+ constructor(params) {
9
+ var _a;
10
+ console.log('Menu constructor . ');
11
+ super();
12
+ this.className = 'Menu';
13
+ this.route = params.route;
14
+ this.router = params.router;
15
+ this.style.addObj({
16
+ paddingInlineStart: '20px'
17
+ // display: 'flex',
18
+ // flexDirection: 'column',
19
+ });
20
+ const div = new framework_1.Div({
21
+ parent: this,
22
+ styleObj: {
23
+ display: 'flex',
24
+ alignItems: 'center'
25
+ }
26
+ });
27
+ if (this.route.svgObj) {
28
+ div.addChild(new td_icon_class_1.TdIcon({
29
+ svgObj: this.route.svgObj,
30
+ styleObj: {
31
+ paddingRight: '5px'
32
+ }
33
+ }));
34
+ }
35
+ div.addChild(new framework_1.Div({
36
+ text: this.route.name,
37
+ attrObj: {
38
+ name: 'route-name'
39
+ },
40
+ styleObj: {
41
+ width: (_a = params.width) !== null && _a !== void 0 ? _a : '160px'
42
+ }
43
+ }));
44
+ if (this.route.children) {
45
+ const caret = new td_icon_class_1.TdIcon({
46
+ svgObj: new svgs_1.ElCaretBottomSvg(),
47
+ // size: '30px'
48
+ });
49
+ caret.appendParent(div);
50
+ this.caret = caret;
51
+ }
52
+ div.appendParent(this);
53
+ this.contentItem = div;
54
+ this.menuItems = [];
55
+ this.useParams(params);
56
+ }
57
+ get menuRoot() {
58
+ var _a;
59
+ return (_a = this.parent) === null || _a === void 0 ? void 0 : _a.menuRoot;
60
+ }
61
+ setup() {
62
+ var _a;
63
+ if (((_a = this.route) === null || _a === void 0 ? void 0 : _a.redirect) === undefined) {
64
+ // todo addEvent 如何pipe ??
65
+ this.contentItem.addEvents({
66
+ click: (event) => {
67
+ var _a, _b, _c, _d;
68
+ console.log('click . ');
69
+ if (((_a = this.menuRoot) === null || _a === void 0 ? void 0 : _a.selectedMenu) === this) {
70
+ return;
71
+ }
72
+ (_b = this.router) === null || _b === void 0 ? void 0 : _b.push(this.route.path);
73
+ (_c = this.menuRoot) === null || _c === void 0 ? void 0 : _c.setSelectedMenu(this);
74
+ document.title = 'UI - ' + ((_d = this.route) === null || _d === void 0 ? void 0 : _d.name);
75
+ event === null || event === void 0 ? void 0 : event.stopPropagation(); // 防止冒泡
76
+ event === null || event === void 0 ? void 0 : event.preventDefault();
77
+ }
78
+ });
79
+ }
80
+ else {
81
+ // todo 添加展开、收起的监听
82
+ const leftSvg = new svgs_1.ElCaretLeftSvg();
83
+ // console.log(' leftSvg.resetSize ');
84
+ // leftSvg.resetSize('1.5em', '1.5em');
85
+ // leftSvg.style.setObj({
86
+ // width: '1.5em',
87
+ // height: '1.5em'
88
+ // })
89
+ const bottomSvg = new svgs_1.ElCaretBottomSvg();
90
+ // bottomSvg.style.setObj({
91
+ // width: '1.5em',
92
+ // height: '1.5em'
93
+ // })
94
+ // bottomSvg.resetSize('1.5em', '1.5em');
95
+ this.contentItem.addEvent('click', (event) => {
96
+ var _a, _b, _c;
97
+ console.log('click .');
98
+ if (((_a = this.menuRoot) === null || _a === void 0 ? void 0 : _a.selectedMenu) === this) {
99
+ return;
100
+ }
101
+ if (this.collapsed === undefined || this.collapsed === false) {
102
+ this.collapsed = true;
103
+ this.menuItems.forEach((menu) => {
104
+ menu.style.setObj({
105
+ display: 'none'
106
+ });
107
+ });
108
+ (_b = this.caret) === null || _b === void 0 ? void 0 : _b.replaceSvg(leftSvg); // 左三角
109
+ }
110
+ else {
111
+ this.collapsed = false;
112
+ this.menuItems.forEach((menu) => {
113
+ menu.style.setObj({
114
+ display: 'block'
115
+ });
116
+ });
117
+ (_c = this.caret) === null || _c === void 0 ? void 0 : _c.replaceSvg(bottomSvg); // 向下三角
118
+ }
119
+ event === null || event === void 0 ? void 0 : event.stopPropagation(); // 防止冒泡
120
+ event === null || event === void 0 ? void 0 : event.preventDefault();
121
+ });
122
+ }
123
+ }
124
+ }
125
+ exports.Menu = Menu;
@@ -0,0 +1,15 @@
1
+ import { IRoute, ITypeConfig, Router, TypeDiv } from '@type-dom/framework';
2
+ import { Menu } from './menu';
3
+ export interface IMenusConfig extends ITypeConfig {
4
+ router?: Router;
5
+ }
6
+ export declare class Menus extends TypeDiv {
7
+ className: 'Menus';
8
+ selectedMenu?: Menu;
9
+ private router?;
10
+ constructor(params?: IMenusConfig);
11
+ get menuRoot(): Menus;
12
+ mounted(): void;
13
+ createMenus(parent: Menus | Menu, routes: IRoute[], router: Router): void;
14
+ setSelectedMenu(menu: Menu): void;
15
+ }
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Menus = void 0;
4
+ // 基于router创建的菜单
5
+ const framework_1 = require("@type-dom/framework");
6
+ const menu_1 = require("./menu");
7
+ class Menus extends framework_1.TypeDiv {
8
+ constructor(params = {}) {
9
+ super();
10
+ this.className = 'Menus';
11
+ this.attr.addName('menus');
12
+ // 默认样式
13
+ this.style.addObj({
14
+ userSelect: 'none',
15
+ // overflow: 'auto',
16
+ boxSizing: 'border-box',
17
+ flexShrink: 0,
18
+ maxHeight: 'calc(100vh - 60px)',
19
+ paddingBottom: '40px'
20
+ });
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
+ }
27
+ console.log('menus is ', this);
28
+ }
29
+ get menuRoot() {
30
+ return this;
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
+ }
50
+ // /home '' '/' 首页菜单要单独处理
51
+ createMenus(parent, routes, router) {
52
+ console.log('createMenus . ');
53
+ routes.forEach((route) => {
54
+ if (route.hidden) {
55
+ return;
56
+ }
57
+ if ((route === null || route === void 0 ? void 0 : route.path) === '/' && route.redirect) {
58
+ route = route.children.find((item) => item.path === route.redirect);
59
+ // todo 没有的话,要报错的。
60
+ }
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
+ });
75
+ if (parent instanceof menu_1.Menu) {
76
+ parent.menuItems.push(menuItem);
77
+ }
78
+ menuItem.appendParent(parent);
79
+ if (route.children) {
80
+ this.createMenus(menuItem, route.children, router);
81
+ }
82
+ });
83
+ }
84
+ setSelectedMenu(menu) {
85
+ var _a;
86
+ if (menu !== this.selectedMenu) {
87
+ if (this.selectedMenu) {
88
+ this.selectedMenu.style.setObj({
89
+ backgroundColor: ''
90
+ });
91
+ }
92
+ this.selectedMenu = menu;
93
+ if (((_a = menu.route) === null || _a === void 0 ? void 0 : _a.redirect) === undefined) {
94
+ menu.style.setObj({
95
+ backgroundColor: '#ccc'
96
+ });
97
+ }
98
+ }
99
+ }
100
+ }
101
+ exports.Menus = Menus;
@@ -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.setParams(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];