@type-dom/ui 0.0.1

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 (142) hide show
  1. package/README.md +11 -0
  2. package/package.json +14 -0
  3. package/src/basic/index.d.ts +15 -0
  4. package/src/basic/index.js +19 -0
  5. package/src/basic/td-button/td-button.class.d.ts +16 -0
  6. package/src/basic/td-button/td-button.class.js +140 -0
  7. package/src/basic/td-button/td-button.interface.d.ts +38 -0
  8. package/src/basic/td-button/td-button.interface.js +2 -0
  9. package/src/basic/td-button/td-button.style.d.ts +13 -0
  10. package/src/basic/td-button/td-button.style.js +143 -0
  11. package/src/basic/td-container/td-aside/td-aside.class.d.ts +6 -0
  12. package/src/basic/td-container/td-aside/td-aside.class.js +17 -0
  13. package/src/basic/td-container/td-aside/td-aside.interface.d.ts +7 -0
  14. package/src/basic/td-container/td-aside/td-aside.interface.js +2 -0
  15. package/src/basic/td-container/td-container.class.d.ts +7 -0
  16. package/src/basic/td-container/td-container.class.js +27 -0
  17. package/src/basic/td-container/td-container.d.ts +8 -0
  18. package/src/basic/td-container/td-container.interface.d.ts +8 -0
  19. package/src/basic/td-container/td-container.interface.js +2 -0
  20. package/src/basic/td-container/td-container.js +21 -0
  21. package/src/basic/td-container/td-footer/td-footer.class.d.ts +6 -0
  22. package/src/basic/td-container/td-footer/td-footer.class.js +18 -0
  23. package/src/basic/td-container/td-footer/td-footer.interface.d.ts +7 -0
  24. package/src/basic/td-container/td-footer/td-footer.interface.js +2 -0
  25. package/src/basic/td-container/td-header/td-header.class.d.ts +8 -0
  26. package/src/basic/td-container/td-header/td-header.class.js +18 -0
  27. package/src/basic/td-container/td-header/td-header.interface.d.ts +7 -0
  28. package/src/basic/td-container/td-header/td-header.interface.js +2 -0
  29. package/src/basic/td-container/td-main/td-main.class.d.ts +6 -0
  30. package/src/basic/td-container/td-main/td-main.class.js +19 -0
  31. package/src/basic/td-container/td-main/td-main.interface.d.ts +6 -0
  32. package/src/basic/td-container/td-main/td-main.interface.js +2 -0
  33. package/src/basic/td-icon/td-icon.class.d.ts +11 -0
  34. package/src/basic/td-icon/td-icon.class.js +57 -0
  35. package/src/basic/td-icon/td-icon.interface.d.ts +11 -0
  36. package/src/basic/td-icon/td-icon.interface.js +2 -0
  37. package/src/basic/td-icon/td-icon.style.d.ts +13 -0
  38. package/src/basic/td-icon/td-icon.style.js +27 -0
  39. package/src/basic/td-select/option/option.class.d.ts +12 -0
  40. package/src/basic/td-select/option/option.class.js +18 -0
  41. package/src/basic/td-select/option/option.interface.d.ts +5 -0
  42. package/src/basic/td-select/option/option.interface.js +2 -0
  43. package/src/basic/td-select/td-select.class.d.ts +14 -0
  44. package/src/basic/td-select/td-select.class.js +68 -0
  45. package/src/basic/td-select/td-select.interface.d.ts +6 -0
  46. package/src/basic/td-select/td-select.interface.js +2 -0
  47. package/src/data/index.d.ts +0 -0
  48. package/src/data/index.js +1 -0
  49. package/src/feedback/dialog/dialog.d.ts +7 -0
  50. package/src/feedback/dialog/dialog.js +14 -0
  51. package/src/feedback/index.d.ts +2 -0
  52. package/src/feedback/index.js +7 -0
  53. package/src/feedback/message-box/message-box.d.ts +9 -0
  54. package/src/feedback/message-box/message-box.js +24 -0
  55. package/src/feedback/overlay/container/body/body.d.ts +7 -0
  56. package/src/feedback/overlay/container/body/body.js +21 -0
  57. package/src/feedback/overlay/container/container.d.ts +15 -0
  58. package/src/feedback/overlay/container/container.js +41 -0
  59. package/src/feedback/overlay/container/footer/cancel-button/cancel-button.d.ts +8 -0
  60. package/src/feedback/overlay/container/footer/cancel-button/cancel-button.js +31 -0
  61. package/src/feedback/overlay/container/footer/confirm-button/confirm-button.d.ts +9 -0
  62. package/src/feedback/overlay/container/footer/confirm-button/confirm-button.js +35 -0
  63. package/src/feedback/overlay/container/footer/footer.d.ts +11 -0
  64. package/src/feedback/overlay/container/footer/footer.js +49 -0
  65. package/src/feedback/overlay/container/header/close-button/close-button.d.ts +11 -0
  66. package/src/feedback/overlay/container/header/close-button/close-button.js +37 -0
  67. package/src/feedback/overlay/container/header/header.d.ts +12 -0
  68. package/src/feedback/overlay/container/header/header.js +25 -0
  69. package/src/feedback/overlay/container/header/title/title.d.ts +9 -0
  70. package/src/feedback/overlay/container/header/title/title.js +23 -0
  71. package/src/feedback/overlay/overlay.abstract.d.ts +16 -0
  72. package/src/feedback/overlay/overlay.abstract.js +65 -0
  73. package/src/form/checkbox-group/checkbox-group.class.d.ts +13 -0
  74. package/src/form/checkbox-group/checkbox-group.class.js +59 -0
  75. package/src/form/checkbox-group/checkbox-group.interface.d.ts +6 -0
  76. package/src/form/checkbox-group/checkbox-group.interface.js +2 -0
  77. package/src/form/checkbox-group/checkbox-option/checkbox-option.class.d.ts +12 -0
  78. package/src/form/checkbox-group/checkbox-option/checkbox-option.class.js +44 -0
  79. package/src/form/checkbox-group/checkbox-option/checkbox-option.interface.d.ts +10 -0
  80. package/src/form/checkbox-group/checkbox-option/checkbox-option.interface.js +2 -0
  81. package/src/form/field-item/cascade/field-cascade.abstract.d.ts +22 -0
  82. package/src/form/field-item/cascade/field-cascade.abstract.js +186 -0
  83. package/src/form/field-item/field-item.abstract.d.ts +11 -0
  84. package/src/form/field-item/field-item.abstract.js +42 -0
  85. package/src/form/field-item/field-item.interface.d.ts +12 -0
  86. package/src/form/field-item/field-item.interface.js +2 -0
  87. package/src/form/field-item/field-item.style.d.ts +3 -0
  88. package/src/form/field-item/field-item.style.js +39 -0
  89. package/src/form/field-item/input/field-input.abstract.d.ts +13 -0
  90. package/src/form/field-item/input/field-input.abstract.js +52 -0
  91. package/src/form/field-item/options/field-options.abstract.d.ts +22 -0
  92. package/src/form/field-item/options/field-options.abstract.js +246 -0
  93. package/src/form/field-item/radio/field-radio.abstract.d.ts +16 -0
  94. package/src/form/field-item/radio/field-radio.abstract.js +98 -0
  95. package/src/form/field-item/select/field-select.abstract.d.ts +12 -0
  96. package/src/form/field-item/select/field-select.abstract.js +44 -0
  97. package/src/form/field-item/span/field-span.abstract.d.ts +9 -0
  98. package/src/form/field-item/span/field-span.abstract.js +54 -0
  99. package/src/form/field-item/textarea/field-textarea.abstract.d.ts +11 -0
  100. package/src/form/field-item/textarea/field-textarea.abstract.js +63 -0
  101. package/src/form/index.d.ts +11 -0
  102. package/src/form/index.js +23 -0
  103. package/src/form/input-number/td-input-number.class.d.ts +9 -0
  104. package/src/form/input-number/td-input-number.class.js +55 -0
  105. package/src/form/input-number/td-input-number.interface.d.ts +9 -0
  106. package/src/form/input-number/td-input-number.interface.js +2 -0
  107. package/src/form/radio-group/radio-group.class.d.ts +13 -0
  108. package/src/form/radio-group/radio-group.class.js +48 -0
  109. package/src/form/radio-group/radio-group.interface.d.ts +6 -0
  110. package/src/form/radio-group/radio-group.interface.js +2 -0
  111. package/src/form/radio-group/radio-option/radio-option.class.d.ts +12 -0
  112. package/src/form/radio-group/radio-option/radio-option.class.js +33 -0
  113. package/src/form/radio-group/radio-option/radio-option.interface.d.ts +5 -0
  114. package/src/form/radio-group/radio-option/radio-option.interface.js +2 -0
  115. package/src/form/select/select.class.d.ts +17 -0
  116. package/src/form/select/select.class.js +132 -0
  117. package/src/form/select/select.interface.d.ts +10 -0
  118. package/src/form/select/select.interface.js +2 -0
  119. package/src/form/td-input/td-input.class.d.ts +9 -0
  120. package/src/form/td-input/td-input.class.js +55 -0
  121. package/src/form/td-input/td-input.interface.d.ts +11 -0
  122. package/src/form/td-input/td-input.interface.js +2 -0
  123. package/src/index.d.ts +4 -0
  124. package/src/index.js +8 -0
  125. package/src/navigation/index.d.ts +0 -0
  126. package/src/navigation/index.js +1 -0
  127. package/src/others/collapsible-box/collapsible-box.d.ts +15 -0
  128. package/src/others/collapsible-box/collapsible-box.js +37 -0
  129. package/src/others/collapsible-box/contents/contents.d.ts +7 -0
  130. package/src/others/collapsible-box/contents/contents.js +25 -0
  131. package/src/others/collapsible-box/heading/expand-heading.d.ts +12 -0
  132. package/src/others/collapsible-box/heading/expand-heading.js +70 -0
  133. package/src/others/index.d.ts +3 -0
  134. package/src/others/index.js +9 -0
  135. package/src/styles/color-scheme.d.ts +1 -0
  136. package/src/styles/color-scheme.js +88 -0
  137. package/src/styles/config.d.ts +5 -0
  138. package/src/styles/config.js +8 -0
  139. package/src/styles/function.d.ts +10 -0
  140. package/src/styles/function.js +75 -0
  141. package/src/styles/var.d.ts +184 -0
  142. package/src/styles/var.js +250 -0
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldInput = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const framework_1 = require("@type-dom/framework");
6
+ const field_item_abstract_1 = require("../field-item.abstract");
7
+ const field_item_style_1 = require("../field-item.style");
8
+ class FieldInput extends field_item_abstract_1.FieldItem {
9
+ constructor(labelText = '控件名称', placeholder = '请输入') {
10
+ super(labelText);
11
+ this.content = new framework_1.Input(this);
12
+ this.content.propObj = {
13
+ styleObj: Object.assign({}, field_item_style_1.itemContentStyle),
14
+ attrObj: {
15
+ type: 'text',
16
+ placeholder: placeholder,
17
+ }
18
+ };
19
+ if (this.mode === 'read') {
20
+ this.content.addAttrObj({
21
+ disabled: true,
22
+ });
23
+ }
24
+ // this.button.addStyleObj({
25
+ // // position: 'absolute',
26
+ // // right: '10px',
27
+ // padding: '8px 3px 4px',
28
+ // fontSize: '16px',
29
+ // // border: 'none',
30
+ // display: 'none',
31
+ // border: '1px solid #DCDFE6',
32
+ // borderRadius: '0 4px 4px 0',
33
+ // });
34
+ this.button.textNode.setText('');
35
+ this.childNodes = [this.label, this.content, this.button];
36
+ }
37
+ resetInputPlaceholder(placeholder) {
38
+ this.content.setAttribute('placeholder', placeholder);
39
+ }
40
+ resetInputValue(value = '') {
41
+ this.content.setAttribute('value', value);
42
+ this.content.dom.value = String(value);
43
+ }
44
+ initEvents() {
45
+ this.events.push((0, rxjs_1.fromEvent)(this.content.dom, 'input').subscribe(() => {
46
+ // console.log('this.input input, event is ', evt);
47
+ // console.log('this.input.dom.value is ', this.input.dom.value);
48
+ this.reset(this.content.dom.value);
49
+ }));
50
+ }
51
+ }
52
+ exports.FieldInput = FieldInput;
@@ -0,0 +1,22 @@
1
+ import { Observable } from 'rxjs';
2
+ import { Button, Division, Label } from '@type-dom/framework';
3
+ import { FieldItem } from '../field-item.abstract';
4
+ import { IOptionConfig, IOption } from '../field-item.interface';
5
+ export declare abstract class PropertyOptions extends FieldItem {
6
+ childNodes: [Label, Division, Button];
7
+ selectConfigDiv: Division;
8
+ private readonly firstDiv;
9
+ selectDiv: Division;
10
+ private readonly selectObj;
11
+ optionsContent: Division;
12
+ protected btn: Button;
13
+ private readonly dotsSvg;
14
+ optionsConfigObservable: Observable<Event>;
15
+ protected constructor(labelText?: string);
16
+ get optionConfig(): IOptionConfig | undefined;
17
+ set optionConfig(optConfig: IOptionConfig | undefined);
18
+ resetOptionConfigResultValue(value: string | number | boolean): void;
19
+ resetConfig(optionConfig: IOptionConfig): void;
20
+ resetOptions(options: IOption[]): void;
21
+ initEvents(): void;
22
+ }
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PropertyOptions = 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
+ const td_select_class_1 = require("../../../basic/td-select/td-select.class");
8
+ const field_item_abstract_1 = require("../field-item.abstract");
9
+ const field_item_style_1 = require("../field-item.style");
10
+ class PropertyOptions extends field_item_abstract_1.FieldItem {
11
+ constructor(labelText = '选项列表') {
12
+ super(labelText);
13
+ this.addAttrName('option-property');
14
+ this.selectConfigDiv = new framework_1.Division();
15
+ this.selectConfigDiv.addAttrName('select-config');
16
+ this.selectConfigDiv.addStyleObj({
17
+ height: '100%',
18
+ lineHeight: '32px',
19
+ textAlign: 'center',
20
+ backgroundColor: '#FFF',
21
+ backgroundImage: 'none',
22
+ borderRadius: '4px',
23
+ // border: '1px solid #DCDFE6',
24
+ // -webkit-box-sizing: border-box;
25
+ boxSizing: 'border-box',
26
+ color: '#606266',
27
+ display: framework_1.StyleDisplay.inlineBlock,
28
+ outline: '0',
29
+ // -webkit-transition: border-color .2s cubic-bezier(.645,.045,.355,1);
30
+ transition: 'border-color .2s cubic-bezier(.645,.045,.355,1)',
31
+ width: 'calc(100% - 100px)',
32
+ });
33
+ this.selectDiv = new framework_1.Division();
34
+ this.selectDiv.addStyleObj({
35
+ display: 'flex',
36
+ flexDirection: 'row',
37
+ });
38
+ // 单独的方法实现
39
+ this.selectObj = new td_select_class_1.TdSelect();
40
+ this.selectObj.addAttrName('select');
41
+ this.selectObj.addStyleObj(Object.assign({}, field_item_style_1.itemContentStyle, {
42
+ width: '100%',
43
+ borderRadius: '4px 0 0 4px',
44
+ borderRight: 'none',
45
+ }));
46
+ this.btn = new framework_1.Button(this.selectDiv);
47
+ this.btn.addStyleObj({
48
+ // position: 'absolute',
49
+ // right: '10px',
50
+ padding: '8px 3px 4px',
51
+ fontSize: '16px',
52
+ border: '1px solid #DCDFE6',
53
+ borderRadius: '0 4px 4px 0',
54
+ });
55
+ this.dotsSvg = new svgs_1.TdThreeDotsSvg(this.btn);
56
+ this.dotsSvg.resetSize(16, 16);
57
+ this.btn.textNode.setText('');
58
+ this.btn.addChild(this.dotsSvg);
59
+ this.selectDiv.childNodes = [this.selectObj, this.btn];
60
+ this.firstDiv = new framework_1.Division();
61
+ const labelDiv = new framework_1.Division();
62
+ labelDiv.addStyleObj({
63
+ display: 'inline-block',
64
+ width: '50%',
65
+ });
66
+ labelDiv.addChild(new framework_1.TextNode('标签'));
67
+ const valueDiv = new framework_1.Division();
68
+ valueDiv.addStyleObj({
69
+ display: 'inline-block',
70
+ width: '50%',
71
+ });
72
+ valueDiv.addChild(new framework_1.TextNode('值'));
73
+ this.firstDiv.childNodes = [labelDiv, valueDiv];
74
+ this.optionsContent = new framework_1.Division();
75
+ this.selectConfigDiv.childNodes = [this.selectDiv, this.firstDiv, this.optionsContent];
76
+ this.button.addStyleObj({
77
+ position: framework_1.StylePosition.absolute,
78
+ right: '10px',
79
+ padding: '8px 3px 4px',
80
+ fontSize: '16px',
81
+ // border: 'none',
82
+ display: 'none',
83
+ border: '1px solid #DCDFE6',
84
+ borderRadius: '0 4px 4px 0',
85
+ });
86
+ this.childNodes = [this.label, this.selectConfigDiv, this.button];
87
+ // 创建添加按钮
88
+ // this.addDiv = new Division(this.selectConfigDiv);
89
+ // this.addDiv.setStyleObj({
90
+ // textAlign: 'center',
91
+ // marginTop: '-10px',
92
+ // display: 'none', // 现在不需要动态添加选项。
93
+ // });
94
+ // const svg = new AddSvg(this.addDiv);
95
+ // svg.addAttribute('width', '24px');
96
+ // this.addDiv.addChild(svg);
97
+ this.optionsConfigObservable = (0, rxjs_1.fromEvent)(this.btn.dom, 'click');
98
+ }
99
+ get optionConfig() {
100
+ var _a;
101
+ return (_a = this === null || this === void 0 ? void 0 : this.configs) === null || _a === void 0 ? void 0 : _a.optionConfig;
102
+ }
103
+ set optionConfig(optConfig) {
104
+ if (this.configs === undefined) {
105
+ if (optConfig !== undefined) {
106
+ this.configs = {
107
+ optionConfig: optConfig
108
+ };
109
+ }
110
+ }
111
+ else {
112
+ if (optConfig === undefined) {
113
+ delete this.configs.optionConfig;
114
+ }
115
+ else {
116
+ this.configs.optionConfig = optConfig;
117
+ }
118
+ }
119
+ }
120
+ resetOptionConfigResultValue(value) {
121
+ // AppRoot.selectedControl?.propObj.attrObj.optionConfig''
122
+ // this.optionConfig = Object.assign(this.optionConfig, { resultValue: value });
123
+ if (this.optionConfig)
124
+ this.optionConfig.resultValue = value;
125
+ }
126
+ // vue项目中返回的是选中的项目。只有一层,没有两层。
127
+ resetConfig(optionConfig) {
128
+ console.log('optionConfig is ', optionConfig);
129
+ // this.selectConfigDiv.clearChildNodes();
130
+ // this.selectConfigDiv.clearChildDom();
131
+ // this.selectConfigDiv.appendChild(this.selectObj).appendChild(this.firstDiv);
132
+ this.selectObj.setOptions(optionConfig.options, optionConfig.resultValue);
133
+ // todo 监听事件
134
+ this.optionConfig = optionConfig;
135
+ this.optionsContent.clearChildNodes();
136
+ this.optionsContent.clearChildDom();
137
+ const styleObj = {
138
+ display: 'inline-block',
139
+ width: '45%',
140
+ border: '1px solid #ccc',
141
+ boxSizing: 'border-box',
142
+ };
143
+ // let optIndex = 0;
144
+ // config.options设置
145
+ const selectedOption = optionConfig.options.find(opt => String(opt.value) === String(optionConfig.resultValue).split('.')[0]);
146
+ if (!(selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.options)) {
147
+ throw Error('选项有问题');
148
+ }
149
+ selectedOption.options.forEach((opt, optIndex) => {
150
+ const optDiv = new framework_1.Division();
151
+ const labelDiv = new framework_1.Division();
152
+ labelDiv.addStyleObj(styleObj);
153
+ labelDiv.setAttrObj({
154
+ // contenteditable: 'true', // 现在选项不需要编辑
155
+ optIndex,
156
+ optType: 'label',
157
+ });
158
+ labelDiv.addChild(new framework_1.TextNode(opt.label));
159
+ const valueDiv = new framework_1.Division();
160
+ valueDiv.addStyleObj(styleObj);
161
+ valueDiv.addAttrObj({
162
+ // contenteditable: 'true', // 现在选项不需要编辑
163
+ optIndex,
164
+ optType: 'value',
165
+ });
166
+ valueDiv.addChild(new framework_1.TextNode(String(opt.value)));
167
+ // const deleteDiv = new Division(optDiv);
168
+ // deleteDiv.setStyleObj({
169
+ // display: 'none',
170
+ // // display: 'inline-block', // 现在不需要动态删除选项
171
+ // width: '10%',
172
+ // border: '1px solid #ccc',
173
+ // boxSizing: 'border-box',
174
+ // // float: 'right',
175
+ // // marginTop: '10px',
176
+ // });
177
+ // const svg = new DeleteSvg(deleteDiv);
178
+ // svg.setStyleObj({
179
+ // width: '20',
180
+ // });
181
+ // deleteDiv.appendChild(svg);
182
+ optDiv.childNodes = [labelDiv, valueDiv];
183
+ this.optionsContent.appendChild(optDiv);
184
+ });
185
+ }
186
+ resetOptions(options) {
187
+ // this.selectConfigDiv.clearChildNodes();
188
+ // this.selectConfigDiv.clearChildDom();
189
+ // this.selectConfigDiv.appendChild(this.selectObj).appendChild(this.firstDiv);
190
+ this.optionsContent.clearChildNodes();
191
+ this.optionsContent.clearChildDom();
192
+ const styleObj = {
193
+ display: 'inline-block',
194
+ width: '45%',
195
+ border: '1px solid #ccc',
196
+ boxSizing: 'border-box',
197
+ };
198
+ // let optIndex = 0;
199
+ // config.options设置
200
+ options.forEach((opt, optIndex) => {
201
+ const optDiv = new framework_1.Division();
202
+ optDiv.setAttrName('option');
203
+ const labelDiv = new framework_1.Division();
204
+ labelDiv.addStyleObj(styleObj);
205
+ labelDiv.setAttrObj({
206
+ // contenteditable: 'true', // 现在选项不需要编辑
207
+ optIndex,
208
+ optType: 'label',
209
+ });
210
+ labelDiv.addChild(new framework_1.TextNode(opt.label));
211
+ const valueDiv = new framework_1.Division();
212
+ valueDiv.addStyleObj(styleObj);
213
+ valueDiv.addAttrObj({
214
+ optIndex,
215
+ optType: 'value',
216
+ });
217
+ valueDiv.addChild(new framework_1.TextNode(String(opt.value)));
218
+ optDiv.childNodes = [labelDiv, valueDiv];
219
+ this.optionsContent.appendChild(optDiv);
220
+ });
221
+ }
222
+ initEvents() {
223
+ this.events.push(this.optionsConfigObservable.subscribe(() => {
224
+ console.log('this.btn click . ');
225
+ console.log('this.optionsConfigObservable is ', this.optionsConfigObservable);
226
+ }),
227
+ // todo 没有改变值 ????? 是否要加click监听
228
+ (0, rxjs_1.fromEvent)(this.selectObj.dom, 'change').subscribe(() => {
229
+ var _a, _b;
230
+ console.log('this.selectObj.dom change . ');
231
+ console.log('this.selectObj.dom.value is ', this.selectObj.dom.value);
232
+ const selectedOption = (_b = (_a = this.optionConfig) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.find(opt => String(opt.value) === this.selectObj.dom.value);
233
+ if (!this.optionConfig) {
234
+ throw Error('无法获取optionConfig');
235
+ }
236
+ if (selectedOption && selectedOption.options) {
237
+ this.resetOptionConfigResultValue(selectedOption.value);
238
+ console.log('this.optionConfig is ', this.optionConfig);
239
+ console.log('selectOption is ', selectedOption);
240
+ this.resetOptions(selectedOption.options);
241
+ // this.resetControl();
242
+ }
243
+ }));
244
+ }
245
+ }
246
+ exports.PropertyOptions = PropertyOptions;
@@ -0,0 +1,16 @@
1
+ import { Button, Division, Label } from '@type-dom/framework';
2
+ import { IOption, IOptionConfig } from '../field-item.interface';
3
+ import { FieldItem } from '../field-item.abstract';
4
+ export declare abstract class FieldRadio extends FieldItem {
5
+ config: IOptionConfig;
6
+ childNodes: [Label, Division, Button];
7
+ name: string;
8
+ resultValue: string | number | boolean;
9
+ optionDiv: Division;
10
+ private selectedOpt;
11
+ protected constructor(labelText: string | undefined, config: IOptionConfig);
12
+ abstract reset(value?: string): void;
13
+ setOptions(options: IOption[]): void;
14
+ resetResultValue(value: string): void;
15
+ initEvents(): void;
16
+ }
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldRadio = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const framework_1 = require("@type-dom/framework");
6
+ const field_item_abstract_1 = require("../field-item.abstract");
7
+ class FieldRadio extends field_item_abstract_1.FieldItem {
8
+ constructor(labelText = '单选', config) {
9
+ super(labelText);
10
+ this.config = config;
11
+ this.name = config.name;
12
+ this.resultValue = config.resultValue;
13
+ this.optionDiv = new framework_1.Division();
14
+ this.childNodes = [this.label, this.optionDiv, this.button];
15
+ this.setOptions(config.options);
16
+ }
17
+ setOptions(options) {
18
+ options.forEach((option, index) => {
19
+ let button;
20
+ if (!this.optionDiv.childNodes[index]) {
21
+ button = new framework_1.Button(this);
22
+ button.setTitle(option.label);
23
+ // const label = new TextNode(button, option.label);
24
+ // button.childNodes = [label];
25
+ // button.setTitle(option.label);
26
+ this.optionDiv.addChild(button);
27
+ }
28
+ else {
29
+ button = this.optionDiv.childNodes[index];
30
+ }
31
+ button.addStyleObj({
32
+ height: '32px',
33
+ borderRadius: '0',
34
+ border: '1px solid #000',
35
+ });
36
+ button.addAttrObj({
37
+ type: 'radio',
38
+ value: option.value,
39
+ checked: option.checked
40
+ });
41
+ if (option.checked) {
42
+ button.propObj.styleObj.backgroundColor = '#00f';
43
+ button.propObj.styleObj.color = '#fff';
44
+ this.selectedOpt = button;
45
+ }
46
+ else {
47
+ button.propObj.styleObj.backgroundColor = '#fff';
48
+ button.propObj.styleObj.color = '#000';
49
+ }
50
+ // span.childNodes.push(label, inputRadio);
51
+ // this.optionDiv.childNodes.push(button);
52
+ });
53
+ }
54
+ //
55
+ resetResultValue(value) {
56
+ console.log('resetResultValue value is ', value);
57
+ this.resultValue = value;
58
+ this.config.options.forEach(item => {
59
+ item.checked = item.value === value;
60
+ });
61
+ console.log('this.config.options is ', this.config.options);
62
+ this.setOptions(this.config.options);
63
+ this.optionDiv.render();
64
+ }
65
+ initEvents() {
66
+ this.optionDiv.childNodes.forEach((btn) => {
67
+ if (btn.dom === undefined) {
68
+ return;
69
+ }
70
+ this.events.push((0, rxjs_1.fromEvent)(btn.dom, 'click').subscribe(() => {
71
+ // if (OfdEditor.mode === 'read') {
72
+ // return;
73
+ // }
74
+ if (this.selectedOpt) {
75
+ this.selectedOpt.setStyleObj({
76
+ backgroundColor: '#fff',
77
+ color: '#000',
78
+ });
79
+ this.selectedOpt.setAttribute('checked', false);
80
+ }
81
+ this.selectedOpt = btn;
82
+ if (btn instanceof framework_1.TypeElement) {
83
+ btn.setStyleObj({
84
+ backgroundColor: '#00f',
85
+ color: '#fff',
86
+ });
87
+ btn.setAttribute('checked', true);
88
+ this.resultValue = btn.attrObj.value;
89
+ this.reset(this.resultValue);
90
+ }
91
+ else {
92
+ return;
93
+ }
94
+ }));
95
+ });
96
+ }
97
+ }
98
+ exports.FieldRadio = FieldRadio;
@@ -0,0 +1,12 @@
1
+ import { Button, Label, TypeComponent } from '@type-dom/framework';
2
+ import { Select } from '../../select/select.class';
3
+ import { FieldItem } from '../field-item.abstract';
4
+ export declare abstract class FieldSelect extends FieldItem {
5
+ abstract reset(value?: string): void;
6
+ parent?: TypeComponent;
7
+ childNodes: [Label, Select, Button];
8
+ select: Select;
9
+ mode: string;
10
+ protected constructor(labelText?: string);
11
+ initEvents(): void;
12
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldSelect = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const select_class_1 = require("../../select/select.class");
6
+ const field_item_abstract_1 = require("../field-item.abstract");
7
+ const field_item_style_1 = require("../field-item.style");
8
+ class FieldSelect extends field_item_abstract_1.FieldItem {
9
+ constructor(labelText = '控件名称') {
10
+ super(labelText);
11
+ this.mode = 'editor';
12
+ this.select = new select_class_1.Select();
13
+ this.select.propObj = {
14
+ styleObj: Object.assign({}, field_item_style_1.itemContentStyle),
15
+ attrObj: {
16
+ name: 'property-select'
17
+ // type: 'text',
18
+ // placeholder: placeholder,
19
+ }
20
+ };
21
+ if (this.mode === 'read') {
22
+ this.select.addAttrObj({
23
+ disabled: true,
24
+ });
25
+ }
26
+ this.childNodes = [this.label, this.select, this.button];
27
+ }
28
+ initEvents() {
29
+ this.events.push(
30
+ // 如果只有一个选项时,监听change,input有问题。
31
+ (0, rxjs_1.fromEvent)(this.select.dom, 'click').subscribe((evt) => {
32
+ console.log('this.select.dom click, event is ', evt);
33
+ console.log('this.select.dom.value is ', this.select.dom.value);
34
+ // console.log(this.reset);
35
+ this.reset(this.select.dom.value);
36
+ }), (0, rxjs_1.fromEvent)(this.select.dom, 'change').subscribe((evt) => {
37
+ console.log('this.select.dom change, event is ', evt);
38
+ console.log('this.select.dom.value is ', this.select.dom.value);
39
+ // console.log(this.reset);
40
+ this.reset(this.select.dom.value);
41
+ }));
42
+ }
43
+ }
44
+ exports.FieldSelect = FieldSelect;
@@ -0,0 +1,9 @@
1
+ import { Label, Span, TextNode, Button } from '@type-dom/framework';
2
+ import { FieldItem } from '../field-item.abstract';
3
+ export declare abstract class FieldSpan extends FieldItem {
4
+ readonly text: TextNode;
5
+ childNodes: [Label, Span, Button];
6
+ content: Span;
7
+ protected constructor(labelText?: string);
8
+ resetText(value?: string): void;
9
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldSpan = void 0;
4
+ const framework_1 = require("@type-dom/framework");
5
+ // import { TdButton } from '../../../basic';
6
+ const field_item_abstract_1 = require("../field-item.abstract");
7
+ class FieldSpan extends field_item_abstract_1.FieldItem {
8
+ constructor(labelText = '控件名称') {
9
+ super(labelText);
10
+ this.content = new framework_1.Span(this);
11
+ this.content.propObj = {
12
+ styleObj: {
13
+ height: '28px',
14
+ lineHeight: '28px',
15
+ textAlign: 'center',
16
+ backgroundColor: '#FFF',
17
+ backgroundImage: 'none',
18
+ borderRadius: '4px',
19
+ border: '1px solid #DCDFE6',
20
+ // -webkit-box-sizing: border-box;
21
+ boxSizing: 'border-box',
22
+ color: '#606266',
23
+ display: framework_1.StyleDisplay.inlineBlock,
24
+ outline: '0',
25
+ padding: '0 15px',
26
+ // paddingLeft: '43px',
27
+ // paddingRight: '43px',
28
+ // -webkit-transition: border-color .2s cubic-bezier(.645,.045,.355,1);
29
+ transition: 'border-color .2s cubic-bezier(.645,.045,.355,1)',
30
+ width: 'calc(100% - 80px)',
31
+ },
32
+ attrObj: {
33
+ name: 'field-span',
34
+ }
35
+ };
36
+ this.text = new framework_1.TextNode('显示');
37
+ this.content.addChild(this.text);
38
+ this.button.setStyleObj({
39
+ // position: 'absolute',
40
+ // right: '10px',
41
+ padding: '8px 3px 4px',
42
+ fontSize: '16px',
43
+ display: 'none',
44
+ border: '1px solid #DCDFE6',
45
+ borderRadius: '0 4px 4px 0',
46
+ });
47
+ this.button.textNode.setText('');
48
+ this.childNodes = [this.label, this.content, this.button];
49
+ }
50
+ resetText(value = '') {
51
+ this.text.setText(value);
52
+ }
53
+ }
54
+ exports.FieldSpan = FieldSpan;
@@ -0,0 +1,11 @@
1
+ import { Label, Textarea, TypeComponent, Button } from '@type-dom/framework';
2
+ import { FieldItem } from '../field-item.abstract';
3
+ export declare abstract class FieldTextarea extends FieldItem {
4
+ parent?: TypeComponent;
5
+ childNodes: [Label, Textarea, Button];
6
+ content: Textarea;
7
+ mode: string;
8
+ protected constructor(labelText?: string, placeholder?: string);
9
+ resetInputPlaceholder(placeholder: string): void;
10
+ resetInputValue(value?: string): void;
11
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldTextarea = void 0;
4
+ const framework_1 = require("@type-dom/framework");
5
+ const field_item_abstract_1 = require("../field-item.abstract");
6
+ const field_item_style_1 = require("../field-item.style");
7
+ class FieldTextarea extends field_item_abstract_1.FieldItem {
8
+ constructor(labelText = '控件名称', placeholder = '请输入') {
9
+ super(labelText);
10
+ this.mode = 'edit';
11
+ this.addStyleObj({
12
+ display: 'block',
13
+ marginBottom: '20px',
14
+ });
15
+ this.content = new framework_1.Textarea(this);
16
+ this.content.propObj = {
17
+ styleObj: {
18
+ height: '100%',
19
+ minHeight: '80px',
20
+ // lineHeight: '32px',
21
+ textAlign: 'left',
22
+ backgroundColor: '#FFF',
23
+ backgroundImage: 'none',
24
+ borderRadius: '4px',
25
+ border: '1px solid #DCDFE6',
26
+ // -webkit-box-sizing: border-box;
27
+ boxSizing: 'border-box',
28
+ color: '#606266',
29
+ display: framework_1.StyleDisplay.inlineBlock,
30
+ outline: '0',
31
+ padding: '0 5px',
32
+ // -webkit-transition: border-color .2s cubic-bezier(.645,.045,.355,1);
33
+ transition: 'border-color .2s cubic-bezier(.645,.045,.355,1)',
34
+ width: 'calc(100% - ' + field_item_style_1.labelStyle.width + ')',
35
+ },
36
+ attrObj: {
37
+ placeholder: placeholder,
38
+ }
39
+ };
40
+ console.log('this.parent is ', this.parent);
41
+ console.log('this.mode is ', this.mode);
42
+ if (this.mode === 'read') {
43
+ this.content.addAttrObj({
44
+ disabled: true,
45
+ });
46
+ }
47
+ this.button.textNode.setText('确定');
48
+ this.button.addStyleObj({
49
+ height: '24px',
50
+ float: 'right',
51
+ display: 'block',
52
+ });
53
+ this.childNodes = [this.label, this.content, this.button];
54
+ }
55
+ resetInputPlaceholder(placeholder) {
56
+ this.content.setAttribute('placeholder', placeholder);
57
+ }
58
+ resetInputValue(value = '') {
59
+ this.content.setAttribute('value', value);
60
+ this.content.dom.value = String(value);
61
+ }
62
+ }
63
+ exports.FieldTextarea = FieldTextarea;
@@ -0,0 +1,11 @@
1
+ export { RadioGroup } from './radio-group/radio-group.class';
2
+ export { RadioOption } from './radio-group/radio-option/radio-option.class';
3
+ export { CheckboxGroup } from './checkbox-group/checkbox-group.class';
4
+ export { CheckboxOption } from './checkbox-group/checkbox-option/checkbox-option.class';
5
+ export { FieldInput } from './field-item/input/field-input.abstract';
6
+ export { FieldRadio } from './field-item/radio/field-radio.abstract';
7
+ export { FieldSelect } from './field-item/select/field-select.abstract';
8
+ export { FieldSpan } from './field-item/span/field-span.abstract';
9
+ export { FieldTextarea } from './field-item/textarea/field-textarea.abstract';
10
+ export { TdInput } from './td-input/td-input.class';
11
+ export type { ITdInputConfig } from './td-input/td-input.interface';