easy-component-ui 1.0.3 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/.github/workflows/publish.yml +28 -0
  2. package/components/Base.js +1 -90
  3. package/components/ea-alert/index.js +1 -298
  4. package/components/ea-alert/src/style/stylesheet.js +1 -0
  5. package/components/ea-aside/index.js +1 -0
  6. package/components/ea-avatar/index.js +1 -277
  7. package/components/ea-avatar/src/assets/defaultAvatar.js +1 -0
  8. package/components/ea-avatar/src/assets/errorAvatar.js +1 -0
  9. package/components/ea-avatar/src/assets/iconAndTextAvatar.js +1 -0
  10. package/components/ea-avatar/src/style/stylesheet.js +1 -0
  11. package/components/ea-backtop/index.js +1 -232
  12. package/components/ea-backtop/src/style/stylesheet.js +1 -0
  13. package/components/ea-badge/index.js +1 -160
  14. package/components/ea-badge/src/style/stylesheet.js +1 -0
  15. package/components/ea-breadcrumb/index.js +1 -0
  16. package/components/ea-breadcrumb/src/style/stylesheet.js +1 -0
  17. package/components/ea-breadcrumb-item/index.js +1 -0
  18. package/components/ea-breadcrumb-item/src/style/style.js +1 -0
  19. package/components/ea-button/index.js +1 -584
  20. package/components/ea-button/src/components/ButtonComm.js +1 -0
  21. package/components/ea-button/src/components/HrefComm.js +1 -0
  22. package/components/ea-button/src/style/stylesheet.js +1 -0
  23. package/components/ea-button-group/index.js +1 -459
  24. package/components/ea-button-group/src/style/stylesheet.js +1 -0
  25. package/components/ea-calendar/index.js +1 -409
  26. package/components/ea-calendar/src/style/stylesheet.js +1 -0
  27. package/components/ea-calendar/src/utils/createChangerElement.js +1 -0
  28. package/components/ea-calendar/src/utils/createThead.js +1 -0
  29. package/components/ea-calendar/src/utils/getDate.js +1 -0
  30. package/components/ea-calendar/src/utils/getUserWeekStart.js +1 -0
  31. package/components/ea-card/index.js +1 -77
  32. package/components/ea-card/src/style/stylesheet.js +1 -0
  33. package/components/ea-carousel/index.js +1 -434
  34. package/components/ea-carousel/src/style/stylesheet.js +1 -0
  35. package/components/ea-carousel/src/utils/handleIndexOverflow.js +1 -0
  36. package/components/ea-carousel-item/index.js +1 -0
  37. package/components/ea-carousel-item/src/style/stylesheet.js +1 -0
  38. package/components/ea-checkbox/index.js +1 -314
  39. package/components/ea-checkbox/src/style/stylesheet.js +1 -0
  40. package/components/ea-checkbox-group/index.js +1 -107
  41. package/components/ea-checkbox-group/src/style/stylesheet.js +1 -0
  42. package/components/ea-collapse/index.js +1 -293
  43. package/components/ea-collapse-item/index.js +1 -0
  44. package/components/ea-collapse-item/src/style/stylesheet.js +1 -0
  45. package/components/ea-container/index.js +1 -0
  46. package/components/ea-date-picker/index.js +1 -0
  47. package/components/ea-date-picker/src/style/stylesheet.js +1 -0
  48. package/components/ea-descriptions/index.js +1 -240
  49. package/components/ea-descriptions/src/components/contentTemplate.js +1 -0
  50. package/components/ea-descriptions/src/components/getTdTemplate_border.js +1 -0
  51. package/components/ea-descriptions/src/components/getTdTemplate_direction.js +1 -0
  52. package/components/ea-descriptions/src/components/getThTemplate_direction.js +1 -0
  53. package/components/ea-descriptions/src/components/getThTemplate_normal.js +1 -0
  54. package/components/ea-descriptions/src/style/stylesheet.js +1 -0
  55. package/components/ea-descriptions-item/index.js +1 -110
  56. package/components/ea-descriptions-item/src/stylesheet.js +1 -0
  57. package/components/ea-drawer/index.js +1 -0
  58. package/components/ea-drawer/src/style/stylesheet.js +1 -0
  59. package/components/ea-empty/index.js +1 -141
  60. package/components/ea-empty/src/assets/emptyStatusSVG.js +1 -0
  61. package/components/ea-empty/src/style/stylesheet.js +1 -0
  62. package/components/ea-footer/index.js +1 -0
  63. package/components/ea-form/index.js +1 -0
  64. package/components/ea-form-item/index.js +1 -0
  65. package/components/ea-form-item/src/style/stylesheet.js +1 -0
  66. package/components/ea-header/index.js +1 -0
  67. package/components/ea-icon/config.json +1029 -1017
  68. package/components/ea-icon/css/animation.css +85 -85
  69. package/components/ea-icon/css/fontello.css +226 -224
  70. package/components/ea-icon/font/fontello.eot +0 -0
  71. package/components/ea-icon/font/fontello.svg +350 -683
  72. package/components/ea-icon/font/fontello.ttf +0 -0
  73. package/components/ea-icon/font/fontello.woff +0 -0
  74. package/components/ea-icon/font/fontello.woff2 +0 -0
  75. package/components/ea-icon/index.js +1 -47
  76. package/components/ea-image/index.js +1 -412
  77. package/components/ea-image/src/assets/errorImage.js +1 -0
  78. package/components/ea-image/src/style/stylesheet.js +1 -0
  79. package/components/ea-image/src/utils/createPreviewTools.js +1 -0
  80. package/components/ea-infinite-scroll/index.js +1 -170
  81. package/components/ea-infinite-scroll-item/index.js +1 -0
  82. package/components/ea-input/index.js +1 -765
  83. package/components/ea-input/src/components/createFixIcon.js +1 -0
  84. package/components/ea-input/src/components/createSuggestionBoard.js +1 -0
  85. package/components/ea-input/src/components/createWordLimitElement.js +1 -0
  86. package/components/ea-input/src/style/stylesheet.js +1 -0
  87. package/components/ea-input/src/utils/dispatchEvent.js +1 -0
  88. package/components/ea-input/src/utils/handleSearchResult.js +1 -0
  89. package/components/ea-input/src/utils/handleSuggestionBoardTrigger.js +1 -0
  90. package/components/ea-input-number/index.js +1 -458
  91. package/components/ea-input-number/src/style/stylesheet.js +1 -0
  92. package/components/ea-input-number/src/utils/handleCustomEvent.js +1 -0
  93. package/components/ea-link/index.js +1 -200
  94. package/components/ea-link/src/style/stylesheet.js +1 -0
  95. package/components/ea-loading/index.js +1 -218
  96. package/components/ea-loading/src/style/stylesheet.js +1 -0
  97. package/components/ea-main/index.js +1 -0
  98. package/components/ea-menu/index.js +1 -0
  99. package/components/ea-menu/src/style/stylesheet.js +1 -0
  100. package/components/ea-menu/src/utils/handleMenuItemEvent.js +1 -0
  101. package/components/ea-menu-item/index.js +1 -0
  102. package/components/ea-menu-item/src/style/stylesheet.js +1 -0
  103. package/components/ea-menu-item-group/index.js +1 -0
  104. package/components/ea-menu-item-group/src/style/stylesheet.js +1 -0
  105. package/components/ea-message/index.js +1 -233
  106. package/components/ea-message/src/style/stylesheet.js +1 -0
  107. package/components/ea-message/src/utils/MessageClass.js +1 -0
  108. package/components/ea-message-box/index.js +1 -202
  109. package/components/ea-message-box/src/style/stylesheet.js +1 -0
  110. package/components/ea-message-box/src/utils/EaMessageBoxClass.js +1 -0
  111. package/components/ea-option/index.js +1 -0
  112. package/components/ea-option/src/style/stylesheet.js +1 -0
  113. package/components/ea-option-gropu/index.js +1 -0
  114. package/components/ea-page-header/index.js +1 -0
  115. package/components/ea-page-header/src/style/stylesheet.js +1 -0
  116. package/components/ea-pagination/index.js +1 -444
  117. package/components/ea-pagination/src/components/getMoreItem.js +1 -0
  118. package/components/ea-pagination/src/components/getPageItem.js +1 -0
  119. package/components/ea-pagination/src/components/getShowTotalItem.js +1 -0
  120. package/components/ea-pagination/src/style/stylesheet.js +1 -0
  121. package/components/ea-pane/index.js +1 -0
  122. package/components/ea-pane/src/stylesheet.js +1 -0
  123. package/components/ea-progress/index.js +1 -333
  124. package/components/ea-progress/src/components/SVGComm.js +1 -0
  125. package/components/ea-progress/src/style/stylesheet.js +1 -0
  126. package/components/ea-radio/index.js +1 -287
  127. package/components/ea-radio/src/style/stylesheet.js +1 -0
  128. package/components/ea-radio-group/index.js +1 -59
  129. package/components/ea-rate/index.js +1 -326
  130. package/components/ea-rate/src/components/rateComm.js +1 -0
  131. package/components/ea-rate/src/style/stylesheet.js +1 -0
  132. package/components/ea-result/index.js +1 -167
  133. package/components/ea-result/src/style/stylesheet.js +1 -0
  134. package/components/ea-select/index.js +1 -34
  135. package/components/ea-select/src/style/stylesheet.js +1 -0
  136. package/components/ea-skeleton/index.js +1 -341
  137. package/components/ea-skeleton/src/style/stylesheet.js +1 -0
  138. package/components/ea-skeleton/src/utils/createSkeletonElement.js +1 -0
  139. package/components/ea-skeleton-item/index.js +1 -0
  140. package/components/ea-skeleton-item/src/assets/imageSVG.js +1 -0
  141. package/components/ea-skeleton-item/src/style/stylesheet.js +1 -0
  142. package/components/ea-step/index.js +1 -0
  143. package/components/ea-step/src/style/stylesheet.js +1 -0
  144. package/components/ea-steps/index.js +1 -0
  145. package/components/ea-steps/src/style/stylesheet.js +1 -0
  146. package/components/ea-submenu/index.js +1 -0
  147. package/components/ea-submenu/src/style/stylesheet.js +1 -0
  148. package/components/ea-switch/index.js +1 -301
  149. package/components/ea-switch/src/style/stylesheet.js +1 -0
  150. package/components/ea-tab/index.js +1 -0
  151. package/components/ea-tab/src/style/stylesheet.js +1 -0
  152. package/components/ea-table/index.js +1 -0
  153. package/components/ea-table/src/style/stylesheet.js +1 -0
  154. package/components/ea-table-column/index.js +1 -0
  155. package/components/ea-tabs/index.js +1 -0
  156. package/components/ea-tabs/src/style/stylesheet.js +1 -0
  157. package/components/ea-tag/index.js +1 -212
  158. package/components/ea-tag/src/style/stylesheet.js +1 -0
  159. package/components/ea-textarea/index.js +1 -333
  160. package/components/ea-textarea/src/style/stylesheet.js +1 -0
  161. package/components/ea-time-picker/index.js +1 -0
  162. package/components/ea-time-picker/src/style/stylesheet.js +1 -0
  163. package/components/ea-timeline/index.js +1 -334
  164. package/components/ea-timeline/style/stylesheet.js +1 -0
  165. package/components/ea-timeline-item/index.js +1 -0
  166. package/components/ea-timeline-item/src/style/stylesheet.js +1 -0
  167. package/package.json +11 -11
  168. package/utils/Validator.js +1 -0
  169. package/utils/createElement.js +1 -30
  170. package/utils/handleDefaultAttrIsTrue.js +1 -0
  171. package/utils/handleTemplate.js +1 -19
  172. package/utils/setStyle.js +1 -8
  173. package/utils/timeout.js +1 -0
  174. package/components/ea-message/MessageClass.js +0 -71
  175. package/components/ea-message-box/EaMessageBoxClass.js +0 -48
  176. package/components/ea-ui-base-style.css +0 -0
@@ -0,0 +1 @@
1
+ export const stylesheet="\n.ea-badge_wrap {\n position: relative;\n vertical-align: middle;\n display: inline-block;\n}\n.ea-badge_wrap .ea-badge_content {\n display: inline-block;\n padding: 0 0.375rem;\n border-radius: 0.625rem;\n border: 1px solid #fff;\n height: 1.125rem;\n line-height: 1.125rem;\n position: absolute;\n right: 0.625rem;\n top: 0;\n transform: translate(100%, -50%);\n color: #fff;\n font-size: 0.75rem;\n text-align: center;\n white-space: nowrap;\n background-color: #f56c6c;\n}\n.ea-badge_wrap .ea-badge_content.primary {\n background-color: #409eff;\n}\n.ea-badge_wrap .ea-badge_content.success {\n background-color: #67c23a;\n}\n.ea-badge_wrap .ea-badge_content.warning {\n background-color: #e6a23c;\n}\n.ea-badge_wrap .ea-badge_content.info {\n background-color: #909399;\n}\n.ea-badge_wrap .ea-badge_content.dot {\n right: 0.3125rem;\n padding: 0;\n border-radius: 50%;\n width: 0.5rem;\n height: 0.5rem;\n}\n";
@@ -0,0 +1 @@
1
+ import Base from"../Base.js";import"../ea-icon/index.js";import"../ea-breadcrumb-item/index.js";import{stylesheet}from"./src/style/stylesheet.js";import{createElement}from"../../utils/createElement.js";export class EaBreadcrumb extends Base{constructor(){super();const t=this.attachShadow({mode:"open"});t.innerHTML="\n <div class=\"ea-breadcrumb_wrap\" part='container'>\n <slot></slot>\n </div>\n ",this.build(t,stylesheet)}get separator(){return this.getAttribute("separator")||"/"}set separator(t){this.setAttribute("separator",t)}get separatorClass(){return this.getAttribute("separator-class")||""}set separatorClass(t){this.setAttribute("separator-class",t)}get separatorColor(){return this.getAttribute("separator-color")||"#c0c4cc"}set separatorColor(t){this.setAttribute("separator-color",t)}#t(){const t=this.querySelectorAll("ea-breadcrumb-item");t.forEach(((e,r)=>{if(r<t.length-1){const t=createElement("ea-icon");t.color=this.separatorColor,this.separatorClass?t.icon=this.separatorClass:(t.style.margin="0 10px",t.innerText=this.separator),e.appendChild(t)}}))}connectedCallback(){this.separator=this.separator,this.separatorClass=this.separatorClass,this.separatorColor=this.separatorColor,this.#t()}}customElements.get("ea-breadcrumb")||customElements.define("ea-breadcrumb",EaBreadcrumb);
@@ -0,0 +1 @@
1
+ export const stylesheet="\n.ea-breadcrumb_wrap {\n display: flex;\n}\n.ea-breadcrumb_wrap .separator {\n margin: 0 10px;\n}\n";
@@ -0,0 +1 @@
1
+ import Base from"../Base.js";import"../ea-icon/index.js";import{stylesheet}from"./src/style/style.js";export class EaBreadcrumbItem extends Base{constructor(){super();const e=this.attachShadow({mode:"open"});e.innerHTML="\n <span class=\"ea-breadcrumb-item_wrap\" part='container'>\n <slot></slot>\n </span>\n ",this.build(e,stylesheet)}}customElements.get("ea-breadcrumb-item")||customElements.define("ea-breadcrumb-item",EaBreadcrumbItem);
@@ -0,0 +1 @@
1
+ export const stylesheet="\n.ea-breadcrumb-item_wrap {\n font-size: 14px;\n color: #606266;\n line-height: 1;\n}\n.ea-breadcrumb-item_wrap ::slotted(a) {\n text-decoration: none;\n font-weight: 600;\n color: #303133;\n}\n";
@@ -1,584 +1 @@
1
- // @ts-nocheck
2
- import Base from "../Base.js";
3
- import "../ea-icon/index.js"
4
-
5
- const stylesheet = `
6
- :host {
7
- --margin-right: 0rem;
8
- --border-radius: 6px;
9
- --border-size: 1px;
10
- }
11
-
12
- :host([href]) > a {
13
- text-decoration: none;
14
- }
15
-
16
- :host-context(ea-button-group) {
17
- --margin-right: 0;
18
- --border-size: 0;
19
- }
20
-
21
- .__ea-button {
22
- box-sizing: border-box;
23
- padding: 0.5rem 1rem;
24
- margin-right: var(--margin-right);
25
- cursor: pointer;
26
- font-size: 1rem;
27
- line-height: 1.25;
28
- font-weight: 500;
29
- transition: background-color 0.1s, color 0.1s;
30
- border-radius: var(--border-radius);
31
- }
32
- .__ea-button.normal {
33
- border: var(--border-size) solid #dcdfe6;
34
- color: #606266;
35
- background-color: transparent;
36
- }
37
- .__ea-button.normal.disabled {
38
- cursor: not-allowed !important;
39
- background-image: none !important;
40
- background-color: rgba(64, 64, 64, 0) !important;
41
- border-color: white !important;
42
- color: white !important;
43
- pointer-events: none;
44
- border-color: #ebedf1 !important;
45
- color: #babcbe !important;
46
- }
47
- .__ea-button.normal.plain {
48
- background-color: rgba(92, 92, 92, 0);
49
- border: var(--border-size) solid white;
50
- color: transparent;
51
- background-color: transparent;
52
- border: var(--border-size) solid #dcdfe6;
53
- color: #606266;
54
- }
55
- .__ea-button.normal.plain:hover {
56
- background-color: transparent;
57
- }
58
- .__ea-button.normal.round {
59
- --border-radius: 999px;
60
- }
61
- .__ea-button.normal.medium {
62
- font-size: 14px;
63
- }
64
- .__ea-button.normal.small {
65
- font-size: 12px;
66
- }
67
- .__ea-button.normal.mini {
68
- font-size: 10px;
69
- }
70
- .__ea-button.normal:hover {
71
- border: var(--border-size) solid rgba(160, 207, 255, 0.4);
72
- color: #3a9bff;
73
- background-color: rgba(160, 207, 255, 0.05);
74
- }
75
- .__ea-button.normal:active {
76
- background-color: rgba(7, 130, 255, 0.05);
77
- border: var(--border-size) solid rgba(33, 143, 255, 0.4);
78
- }
79
- .__ea-button > i {
80
- font-size: 1rem;
81
- margin-right: 0.5rem;
82
- }
83
- .__ea-button.primary {
84
- border: var(--border-size) solid #409eff;
85
- color: #fff;
86
- background-color: #409eff;
87
- }
88
- .__ea-button.primary.disabled {
89
- cursor: not-allowed !important;
90
- background-image: none !important;
91
- background-color: #c0dfff !important;
92
- border-color: #c0dfff !important;
93
- color: white !important;
94
- pointer-events: none;
95
- }
96
- .__ea-button.primary.plain {
97
- background-color: #f8fbff;
98
- border: var(--border-size) solid #c0dfff;
99
- color: #409eff;
100
- }
101
- .__ea-button.primary.round {
102
- --border-radius: 999px;
103
- }
104
- .__ea-button.primary.medium {
105
- font-size: 14px;
106
- }
107
- .__ea-button.primary.small {
108
- font-size: 12px;
109
- }
110
- .__ea-button.primary.mini {
111
- font-size: 10px;
112
- }
113
- .__ea-button.primary:hover {
114
- border: var(--border-size) solid #73b8ff;
115
- color: white;
116
- background-color: #73b8ff;
117
- }
118
- .__ea-button.primary:active {
119
- background-color: #006bd9;
120
- }
121
- .__ea-button > i {
122
- font-size: 1rem;
123
- margin-right: 0.5rem;
124
- }
125
- .__ea-button.success {
126
- border: var(--border-size) solid #67c23a;
127
- color: #fff;
128
- background-color: #67c23a;
129
- }
130
- .__ea-button.success.disabled {
131
- cursor: not-allowed !important;
132
- background-image: none !important;
133
- background-color: #b2e19b !important;
134
- border-color: #b2e19b !important;
135
- color: white !important;
136
- pointer-events: none;
137
- }
138
- .__ea-button.success.plain {
139
- background-color: #d3eec6;
140
- border: var(--border-size) solid #b2e19b;
141
- color: #67c23a;
142
- }
143
- .__ea-button.success.round {
144
- --border-radius: 999px;
145
- }
146
- .__ea-button.success.medium {
147
- font-size: 14px;
148
- }
149
- .__ea-button.success.small {
150
- font-size: 12px;
151
- }
152
- .__ea-button.success.mini {
153
- font-size: 10px;
154
- }
155
- .__ea-button.success:hover {
156
- border: var(--border-size) solid #85cf60;
157
- color: white;
158
- background-color: #85cf60;
159
- }
160
- .__ea-button.success:active {
161
- background-color: #3d7323;
162
- }
163
- .__ea-button > i {
164
- font-size: 1rem;
165
- margin-right: 0.5rem;
166
- }
167
- .__ea-button.info {
168
- border: var(--border-size) solid #909399;
169
- color: #fff;
170
- background-color: #909399;
171
- }
172
- .__ea-button.info.disabled {
173
- cursor: not-allowed !important;
174
- background-image: none !important;
175
- background-color: #d2d4d6 !important;
176
- border-color: #d2d4d6 !important;
177
- color: white !important;
178
- pointer-events: none;
179
- }
180
- .__ea-button.info.plain {
181
- background-color: #f0f0f1;
182
- border: var(--border-size) solid #d2d4d6;
183
- color: #909399;
184
- }
185
- .__ea-button.info.round {
186
- --border-radius: 999px;
187
- }
188
- .__ea-button.info.medium {
189
- font-size: 14px;
190
- }
191
- .__ea-button.info.small {
192
- font-size: 12px;
193
- }
194
- .__ea-button.info.mini {
195
- font-size: 10px;
196
- }
197
- .__ea-button.info:hover {
198
- border: var(--border-size) solid #abadb1;
199
- color: white;
200
- background-color: #abadb1;
201
- }
202
- .__ea-button.info:active {
203
- background-color: #5d6066;
204
- }
205
- .__ea-button > i {
206
- font-size: 1rem;
207
- margin-right: 0.5rem;
208
- }
209
- .__ea-button.warning {
210
- border: var(--border-size) solid #e6a23c;
211
- color: #fff;
212
- background-color: #e6a23c;
213
- }
214
- .__ea-button.warning.disabled {
215
- cursor: not-allowed !important;
216
- background-image: none !important;
217
- background-color: #f4d8ad !important;
218
- border-color: #f4d8ad !important;
219
- color: white !important;
220
- pointer-events: none;
221
- }
222
- .__ea-button.warning.plain {
223
- background-color: #fbf0df;
224
- border: var(--border-size) solid #f4d8ad;
225
- color: #e6a23c;
226
- }
227
- .__ea-button.warning.round {
228
- --border-radius: 999px;
229
- }
230
- .__ea-button.warning.medium {
231
- font-size: 14px;
232
- }
233
- .__ea-button.warning.small {
234
- font-size: 12px;
235
- }
236
- .__ea-button.warning.mini {
237
- font-size: 10px;
238
- }
239
- .__ea-button.warning:hover {
240
- border: var(--border-size) solid #ecb869;
241
- color: white;
242
- background-color: #ecb869;
243
- }
244
- .__ea-button.warning:active {
245
- background-color: #a76d15;
246
- }
247
- .__ea-button > i {
248
- font-size: 1rem;
249
- margin-right: 0.5rem;
250
- }
251
- .__ea-button.danger {
252
- border: var(--border-size) solid #f56c6c;
253
- color: #fff;
254
- background-color: #f56c6c;
255
- }
256
- .__ea-button.danger.disabled {
257
- cursor: not-allowed !important;
258
- background-image: none !important;
259
- background-color: #fde3e3 !important;
260
- border-color: #fde3e3 !important;
261
- color: white !important;
262
- pointer-events: none;
263
- }
264
- .__ea-button.danger.plain {
265
- background-color: white;
266
- border: var(--border-size) solid #fde3e3;
267
- color: #f56c6c;
268
- background-color: #fde8e8;
269
- }
270
- .__ea-button.danger.round {
271
- --border-radius: 999px;
272
- }
273
- .__ea-button.danger.medium {
274
- font-size: 14px;
275
- }
276
- .__ea-button.danger.small {
277
- font-size: 12px;
278
- }
279
- .__ea-button.danger.mini {
280
- font-size: 10px;
281
- }
282
- .__ea-button.danger:hover {
283
- border: var(--border-size) solid #f89c9c;
284
- color: white;
285
- background-color: #f89c9c;
286
- }
287
- .__ea-button.danger:active {
288
- background-color: #eb1010;
289
- }
290
- .__ea-button > i {
291
- font-size: 1rem;
292
- margin-right: 0.5rem;
293
- }
294
- .__ea-button.text {
295
- border: var(--border-size) solid transparent;
296
- color: #409eff;
297
- background-color: transparent;
298
- }
299
- .__ea-button.text.disabled {
300
- cursor: not-allowed !important;
301
- background-image: none !important;
302
- background-color: rgba(64, 64, 64, 0) !important;
303
- border-color: rgba(64, 64, 64, 0) !important;
304
- color: white !important;
305
- pointer-events: none;
306
- color: #c0c4cc !important;
307
- }
308
- .__ea-button.text.plain {
309
- background-color: rgba(92, 92, 92, 0);
310
- border: var(--border-size) solid rgba(64, 64, 64, 0);
311
- color: transparent;
312
- }
313
- .__ea-button.text.round {
314
- --border-radius: 999px;
315
- }
316
- .__ea-button.text.medium {
317
- font-size: 14px;
318
- }
319
- .__ea-button.text.small {
320
- font-size: 12px;
321
- }
322
- .__ea-button.text.mini {
323
- font-size: 10px;
324
- }
325
- .__ea-button.text:hover {
326
- border: var(--border-size) solid rgba(26, 26, 26, 0);
327
- color: #73b8ff;
328
- background-color: rgba(26, 26, 26, 0);
329
- }
330
- .__ea-button.text:active {
331
- background-color: rgba(0, 0, 0, 0);
332
- }
333
- .__ea-button > i {
334
- font-size: 1rem;
335
- margin-right: 0.5rem;
336
- }
337
- .__ea-button.first-child {
338
- border-radius: 4px 0 0 4px;
339
- }
340
- .__ea-button.middle-child {
341
- border-radius: 0;
342
- }
343
- .__ea-button.last-child {
344
- border-radius: 0 4px 4px 0;
345
- }
346
- `;
347
-
348
- export class EaButton extends Base {
349
- #mounted = false;
350
-
351
- constructor() {
352
- super();
353
-
354
- const shadowRoot = this.attachShadow({ mode: 'open' });
355
- let dom = null;
356
-
357
-
358
- if (this.getAttribute('href') !== null && this.getAttribute('href') !== '') dom = document.createElement('a');
359
- else dom = document.createElement('button');
360
-
361
- const slot = document.createElement('slot');
362
- dom.className = "__ea-button";
363
- dom.appendChild(slot);
364
-
365
- this.dom = dom;
366
-
367
- this.build(shadowRoot, stylesheet);
368
-
369
- shadowRoot.appendChild(dom);
370
- }
371
-
372
- static get observedAttributes() {
373
- return ['loading', 'disabled'];
374
- }
375
-
376
- get BUTTON_STYLE() {
377
- return ['plain', 'round'];
378
- }
379
-
380
- get BUTTON_TYPE() {
381
- return ['normal', 'primary', 'success', 'warning', 'danger', 'text'];
382
- }
383
-
384
- get BUTTON_SIZE() {
385
- return ['medium', 'small', 'mini'];
386
- }
387
-
388
-
389
- // ------- 禁用 -------
390
- // #region
391
- get disabled() {
392
- return this.hasAttribute('disabled');
393
- }
394
-
395
- set disabled(value) {
396
- if (!this.#mounted) {
397
- this.toggleAttribute('disabled', this.disabled, 'disabled');
398
- } else {
399
- this.toggleAttribute('disabled', value, 'disabled');
400
- }
401
- }
402
-
403
- get ariaDisabled() {
404
- return this.getAttribute('aria-disabled') !== null || this.getAttribute('aria-disabled') !== undefined;
405
- }
406
-
407
- set ariaDisabled(value) {
408
- this.toggleAttribute('aria-disabled', value, 'disabled');
409
- }
410
- // #endregion
411
- // ------- end -------
412
-
413
- // ------- 按钮样式 -------
414
- // #region
415
- get plain() {
416
- return this.getAttribute('plain') !== undefined && this.getAttribute('plain') !== null;
417
- }
418
- set plain(value) {
419
- this.toggleAttribute('plain', value, 'plain');
420
- }
421
-
422
- get round() {
423
- return this.getAttribute('round') !== undefined && this.getAttribute('round') !== null;
424
- }
425
- set round(value) {
426
- this.toggleAttribute('round', value, 'round');
427
-
428
- if (value) this.dom.style.setProperty('--border-radius', '999px');
429
- }
430
- // #endregion
431
- // ------- end -------
432
-
433
- // ------- type属性 -------
434
- // #region
435
- get type() {
436
- const attr = this.getAttribute('type');
437
-
438
- if (attr == null || attr == false) return 'normal';
439
- else return attr;
440
- }
441
-
442
- set type(value) {
443
- if (!this.BUTTON_TYPE.includes(value)) value = 'normal';
444
-
445
- this.toggleAttribute('type', value, value);
446
- }
447
- // #endregion
448
- // ------- end -------
449
-
450
- // ------- 按钮大小 -------
451
- // #region
452
- get size() {
453
- return this.getAttribute('size');
454
- }
455
- set size(value) {
456
- if (!this.BUTTON_SIZE.includes(value)) return;
457
-
458
- this.toggleAttribute('size', value, value);
459
- }
460
- // #endregion
461
- // ------- end -------
462
-
463
- // ------- 按钮加载 -------
464
- // #region
465
- get loading() {
466
- return this.hasAttribute('loading');
467
- }
468
-
469
- set loading(value) {
470
- value = value === "true" || value === "" || value === true ? true : false;
471
- this.toggleAttribute('loading', value, 'loading');
472
- this.disabled = value;
473
-
474
- if (value && !this.dom.querySelector('i')) {
475
- const i = document.createElement('i');
476
- i.className = "icon-spin6 animate-spin";
477
-
478
- this.dom.insertBefore(i, this.dom.firstChild)
479
- } else if (!value && this.dom.querySelector('i')) {
480
- this.dom.querySelector('i').remove();
481
- }
482
- }
483
- // #endregion
484
- // ------- end -------
485
-
486
- // ------- 图标按钮 -------
487
- // #region
488
- get icon() {
489
- return this.getAttribute('icon');
490
- }
491
-
492
- set icon(value) {
493
- if (value) {
494
- this.setAttribute('icon', value);
495
-
496
- if (!this.dom.querySelector('i')) {
497
- const eaIcon = document.createElement('ea-icon');
498
- eaIcon.icon = value;
499
-
500
- this.dom.insertBefore(eaIcon, this.dom.firstChild)
501
- }
502
- } else {
503
- this.removeAttribute('icon');
504
- this.dom.querySelector('i')?.remove();
505
- }
506
- }
507
- // #endregion
508
- // ------- end -------
509
-
510
- // ------- 链接按钮 -------
511
- // #region
512
- get href() {
513
- return this.getAttribute('href');
514
- }
515
-
516
- set href(value) {
517
- if (this.shadowRoot.querySelector("button")) return;
518
-
519
- if (value == null && value == false) {
520
- this.removeAttribute('href');
521
- this.dom.removeAttribute('href');
522
- } else {
523
- this.setAttribute('href', value);
524
- this.dom.setAttribute('href', value);
525
- }
526
- }
527
- // #endregion
528
- // ------- end -------
529
-
530
- init() {
531
- // 禁用
532
- this.disabled = this.hasAttribute('disabled');
533
-
534
- // 加载
535
- this.loading = this.loading;
536
-
537
- // 按钮样式
538
- for (let i = 0, style; style = this.BUTTON_STYLE[i++];) {
539
- if (this[style]) {
540
- this[style] = this[style];
541
- break;
542
- }
543
- }
544
-
545
- // 按钮种类
546
- this.type = this.type;
547
-
548
- // 按钮大小
549
- this.size = this.size;
550
-
551
- // 链接
552
- this.href = this.href;
553
-
554
- // 图标
555
- this.icon = this.icon;
556
- }
557
-
558
- connectedCallback() {
559
- this.init();
560
-
561
- this.#mounted = true;
562
- }
563
-
564
- attributeChangedCallback(name, oldValue, newValue) {
565
- if (oldValue == newValue) return;
566
- switch (name) {
567
- case "loading":
568
- if (newValue === "") newValue = true;
569
- this.loading = newValue;
570
- break;
571
- case "disabled":
572
- if (this.#mounted) {
573
- this.disabled = newValue === "true" || newValue === "";
574
- if (newValue === "true" || newValue === "") this.setAttribute("disabled", true);
575
- }
576
- break;
577
- default: break;
578
- }
579
- }
580
- }
581
-
582
- if (!window.customElements.get("ea-button")) {
583
- window.customElements.define("ea-button", EaButton);
584
- }
1
+ import Base from"../Base.js";import"../ea-icon/index.js";import{ButtonComm}from"./src/components/ButtonComm.js";import{HrefComm}from"./src/components/HrefComm.js";import{stylesheet}from"./src/style/stylesheet.js";export class EaButton extends Base{#t="button";#e;constructor(){super();const t=this.attachShadow({mode:"open"});this.getAttribute("href")?(t.innerHTML=HrefComm,this.#t="a"):(t.innerHTML=ButtonComm,this.#t="button"),this.#e=t.querySelector(".ea-button"),this.build(t,stylesheet)}get BUTTON_STYLE(){return["plain","round"]}get BUTTON_TYPE(){return["normal","primary","success","warning","danger","text"]}get BUTTON_SIZE(){return["medium","small","mini"]}get disabled(){return this.getAttrBoolean("disabled")}set disabled(t){this.toggleAttr("disabled",t),this.#e.classList.toggle("disabled",t)}get plain(){return this.getAttrBoolean("plain")}set plain(t){this.toggleAttr("plain",t),this.#e.classList.toggle("plain",t)}get round(){return this.getAttrBoolean("round")}set round(t){this.toggleAttr("round",t),this.#e.classList.toggle("round",t)}get type(){const t=this.getAttribute("type");return this.BUTTON_TYPE.includes(t)?t:"normal"}set type(t){this.setAttribute("type",t),this.#e.classList.add(t)}get size(){const t=this.getAttribute("size");return this.BUTTON_SIZE.includes(t)?t:"medium"}set size(t){this.toggleAttr("size",t),this.#e.classList.add(t)}get loading(){return this.getAttrBoolean("loading")}set loading(t){if(this.toggleAttr("loading",t),this.disabled=t,t){const t=document.createElement("ea-icon");t.id="ea-loading-icon",t.icon="icon-spin6 animate-spin",this.#e.insertBefore(t,this.#e.firstChild)}else{const t=this.#e?.querySelectorAll("#ea-loading-icon");t?.length>0&&t?.forEach((t=>t.remove()))}}get icon(){return this.getAttribute("icon")||""}set icon(t){if(this.setAttribute("icon",t),t&&!this.#e.querySelector("ea-icon")){const e=document.createElement("ea-icon");e.icon=t,e.part="icon",this.#e.insertBefore(e,this.#e.firstChild)}}get href(){return this.getAttribute("href")||""}set href(t){"button"!==this.#t&&(this.setAttribute("href",t),this.#e.setAttribute("href",t))}connectedCallback(){this.plain=this.plain,this.round=this.round,this.type=this.type,this.size=this.size,this.icon=this.icon,this.disabled=this.disabled,this.href=this.href,this.loading&&(this.loading=this.loading)}}window.customElements.get("ea-button")||window.customElements.define("ea-button",EaButton);
@@ -0,0 +1 @@
1
+ export const ButtonComm='\n<button class="ea-button" part="container">\n <slot></slot>\n</button>\n';
@@ -0,0 +1 @@
1
+ export const HrefComm='\n<a class="ea-button" part="container">\n <slot></slot>\n</a>\n';
@@ -0,0 +1 @@
1
+ export const stylesheet="\n:host {\n --border-radius: 6px;\n}\n\n.ea-button {\n box-sizing: border-box;\n padding: 0.5rem;\n border-radius: var(--border-radius);\n cursor: pointer;\n font-size: 1rem;\n line-height: 1.25;\n font-weight: 500;\n transition: background-color 0.1s, color 0.1s;\n text-decoration: none;\n will-change: width;\n}\n.ea-button.normal {\n border: 1px solid #dcdfe6;\n color: #606266;\n background-color: transparent;\n}\n.ea-button.normal.disabled {\n background-color: rgba(64, 64, 64, 0) !important;\n border-color: white !important;\n color: white !important;\n pointer-events: none;\n border-color: #ebedf1 !important;\n color: #babcbe !important;\n}\n.ea-button.normal.plain {\n background-color: rgba(92, 92, 92, 0);\n border-color: white;\n color: transparent;\n background-color: transparent;\n color: #606266;\n border-color: #dcdfe6;\n}\n.ea-button.normal.plain:hover {\n background-color: transparent;\n}\n.ea-button.normal:hover {\n border-color: rgba(160, 207, 255, 0.4);\n color: #3a9bff;\n background-color: rgba(160, 207, 255, 0.05);\n}\n.ea-button.normal:active {\n background-color: rgba(7, 130, 255, 0.05);\n}\n.ea-button.primary {\n border: 1px solid #409eff;\n color: #fff;\n background-color: #409eff;\n}\n.ea-button.primary.disabled {\n background-color: #c0dfff !important;\n border-color: #c0dfff !important;\n color: white !important;\n pointer-events: none;\n}\n.ea-button.primary.plain {\n background-color: #f8fbff;\n border-color: #c0dfff;\n color: #409eff;\n}\n.ea-button.primary:hover {\n border-color: #73b8ff;\n color: white;\n background-color: #73b8ff;\n}\n.ea-button.primary:active {\n background-color: #006bd9;\n}\n.ea-button.success {\n border: 1px solid #67c23a;\n color: #fff;\n background-color: #67c23a;\n}\n.ea-button.success.disabled {\n background-color: #b2e19b !important;\n border-color: #b2e19b !important;\n color: white !important;\n pointer-events: none;\n}\n.ea-button.success.plain {\n background-color: #d3eec6;\n border-color: #b2e19b;\n color: #67c23a;\n}\n.ea-button.success:hover {\n border-color: #85cf60;\n color: white;\n background-color: #85cf60;\n}\n.ea-button.success:active {\n background-color: #3d7323;\n}\n.ea-button.info {\n border: 1px solid #909399;\n color: #fff;\n background-color: #909399;\n}\n.ea-button.info.disabled {\n background-color: #d2d4d6 !important;\n border-color: #d2d4d6 !important;\n color: white !important;\n pointer-events: none;\n}\n.ea-button.info.plain {\n background-color: #f0f0f1;\n border-color: #d2d4d6;\n color: #909399;\n}\n.ea-button.info:hover {\n border-color: #abadb1;\n color: white;\n background-color: #abadb1;\n}\n.ea-button.info:active {\n background-color: #5d6066;\n}\n.ea-button.warning {\n border: 1px solid #e6a23c;\n color: #fff;\n background-color: #e6a23c;\n}\n.ea-button.warning.disabled {\n background-color: #f4d8ad !important;\n border-color: #f4d8ad !important;\n color: white !important;\n pointer-events: none;\n}\n.ea-button.warning.plain {\n background-color: #fbf0df;\n border-color: #f4d8ad;\n color: #e6a23c;\n}\n.ea-button.warning:hover {\n border-color: #ecb869;\n color: white;\n background-color: #ecb869;\n}\n.ea-button.warning:active {\n background-color: #a76d15;\n}\n.ea-button.danger {\n border: 1px solid #f56c6c;\n color: #fff;\n background-color: #f56c6c;\n}\n.ea-button.danger.disabled {\n background-color: #fde3e3 !important;\n border-color: #fde3e3 !important;\n color: white !important;\n pointer-events: none;\n}\n.ea-button.danger.plain {\n background-color: white;\n border-color: #fde3e3;\n color: #f56c6c;\n background-color: #fde8e8;\n}\n.ea-button.danger:hover {\n border-color: #f89c9c;\n color: white;\n background-color: #f89c9c;\n}\n.ea-button.danger:active {\n background-color: #eb1010;\n}\n.ea-button.text {\n border: 1px solid transparent;\n color: #409eff;\n background-color: transparent;\n}\n.ea-button.text.disabled {\n background-color: rgba(64, 64, 64, 0) !important;\n border-color: rgba(64, 64, 64, 0) !important;\n color: white !important;\n pointer-events: none;\n color: #c0c4cc !important;\n}\n.ea-button.text.plain {\n background-color: rgba(92, 92, 92, 0);\n border-color: rgba(64, 64, 64, 0);\n color: transparent;\n}\n.ea-button.text:hover {\n border-color: rgba(26, 26, 26, 0);\n color: #73b8ff;\n background-color: rgba(26, 26, 26, 0);\n}\n.ea-button.text:active {\n background-color: rgba(0, 0, 0, 0);\n}\n.ea-button.round {\n border-radius: 50%;\n}\n.ea-button.medium {\n font-size: 14px;\n}\n.ea-button.small {\n font-size: 12px;\n}\n.ea-button.mini {\n font-size: 10px;\n}\n";