easy-component-ui 3.0.13 → 3.0.14

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 (168) hide show
  1. package/README.md +162 -162
  2. package/package.json +8 -2
  3. package/dist/assets/icon.css +0 -1
  4. package/dist/components/Base.js +0 -874
  5. package/dist/components/ea-alert.js +0 -213
  6. package/dist/components/ea-avatar.js +0 -164
  7. package/dist/components/ea-backtop.js +0 -136
  8. package/dist/components/ea-badge.js +0 -144
  9. package/dist/components/ea-breadcrumb.js +0 -148
  10. package/dist/components/ea-button.js +0 -266
  11. package/dist/components/ea-calendar.js +0 -10
  12. package/dist/components/ea-calendar2.js +0 -673
  13. package/dist/components/ea-card.js +0 -121
  14. package/dist/components/ea-carousel.js +0 -415
  15. package/dist/components/ea-checkbox.js +0 -446
  16. package/dist/components/ea-collapse.js +0 -313
  17. package/dist/components/ea-color-picker.js +0 -888
  18. package/dist/components/ea-container.js +0 -206
  19. package/dist/components/ea-countdown.js +0 -142
  20. package/dist/components/ea-date-picker.js +0 -649
  21. package/dist/components/ea-descriptions.js +0 -474
  22. package/dist/components/ea-dialog.js +0 -249
  23. package/dist/components/ea-drawer.js +0 -216
  24. package/dist/components/ea-dropdown.js +0 -228
  25. package/dist/components/ea-empty.js +0 -93
  26. package/dist/components/ea-icon.js +0 -158
  27. package/dist/components/ea-image-preview.js +0 -532
  28. package/dist/components/ea-image.js +0 -327
  29. package/dist/components/ea-infinite-scroll.js +0 -109
  30. package/dist/components/ea-input-number.js +0 -367
  31. package/dist/components/ea-input.js +0 -588
  32. package/dist/components/ea-layout.js +0 -132
  33. package/dist/components/ea-link.js +0 -101
  34. package/dist/components/ea-menu.js +0 -433
  35. package/dist/components/ea-message-box.js +0 -624
  36. package/dist/components/ea-message.js +0 -314
  37. package/dist/components/ea-notification.js +0 -331
  38. package/dist/components/ea-overlay.js +0 -168
  39. package/dist/components/ea-page-header.js +0 -108
  40. package/dist/components/ea-pagination.js +0 -481
  41. package/dist/components/ea-popconfirm.js +0 -275
  42. package/dist/components/ea-popover.js +0 -147
  43. package/dist/components/ea-popper.js +0 -203
  44. package/dist/components/ea-progress.js +0 -286
  45. package/dist/components/ea-radio.js +0 -364
  46. package/dist/components/ea-rate.js +0 -241
  47. package/dist/components/ea-result.js +0 -100
  48. package/dist/components/ea-scrollbar.js +0 -235
  49. package/dist/components/ea-segmented.js +0 -215
  50. package/dist/components/ea-select.js +0 -609
  51. package/dist/components/ea-skeleton.js +0 -263
  52. package/dist/components/ea-slider.js +0 -430
  53. package/dist/components/ea-space.js +0 -123
  54. package/dist/components/ea-splitter.js +0 -233
  55. package/dist/components/ea-statistic.js +0 -74
  56. package/dist/components/ea-steps.js +0 -346
  57. package/dist/components/ea-switch.js +0 -271
  58. package/dist/components/ea-table.js +0 -1135
  59. package/dist/components/ea-tabs.js +0 -501
  60. package/dist/components/ea-tag.js +0 -228
  61. package/dist/components/ea-text.js +0 -113
  62. package/dist/components/ea-time-picker.js +0 -510
  63. package/dist/components/ea-timeline.js +0 -185
  64. package/dist/components/ea-tooltip.js +0 -161
  65. package/dist/components/ea-tour.js +0 -544
  66. package/dist/components/ea-transfer.js +0 -949
  67. package/dist/components/ea-tree.js +0 -1125
  68. package/dist/components/index.js +0 -60
  69. package/dist/core/FormBase.js +0 -238
  70. package/dist/css/ea-alert.style.js +0 -4
  71. package/dist/css/ea-aside.style.js +0 -4
  72. package/dist/css/ea-avatar.style.js +0 -4
  73. package/dist/css/ea-backtop.style.js +0 -4
  74. package/dist/css/ea-badge.style.js +0 -4
  75. package/dist/css/ea-breadcrumb-item.style.js +0 -4
  76. package/dist/css/ea-breadcrumb.style.js +0 -4
  77. package/dist/css/ea-button-group.style.js +0 -4
  78. package/dist/css/ea-button.style.js +0 -4
  79. package/dist/css/ea-calendar.style.js +0 -4
  80. package/dist/css/ea-card.style.js +0 -4
  81. package/dist/css/ea-carousel-item.style.js +0 -4
  82. package/dist/css/ea-carousel.style.js +0 -4
  83. package/dist/css/ea-check-tag.style.js +0 -4
  84. package/dist/css/ea-checkbox-group.style.js +0 -4
  85. package/dist/css/ea-checkbox.style.js +0 -4
  86. package/dist/css/ea-col.style.js +0 -4
  87. package/dist/css/ea-collapse-item.style.js +0 -4
  88. package/dist/css/ea-collapse.style.js +0 -4
  89. package/dist/css/ea-color-picker-panel.style.js +0 -4
  90. package/dist/css/ea-color-picker.style.js +0 -4
  91. package/dist/css/ea-container.style.js +0 -4
  92. package/dist/css/ea-date-picker.style.js +0 -4
  93. package/dist/css/ea-descriptions-item.style.js +0 -4
  94. package/dist/css/ea-descriptions.style.js +0 -4
  95. package/dist/css/ea-dialog.style.js +0 -4
  96. package/dist/css/ea-drawer.style.js +0 -4
  97. package/dist/css/ea-dropdown-item.style.js +0 -4
  98. package/dist/css/ea-dropdown-menu.style.js +0 -4
  99. package/dist/css/ea-dropdown.style.js +0 -4
  100. package/dist/css/ea-empty.style.js +0 -4
  101. package/dist/css/ea-footer.style.js +0 -4
  102. package/dist/css/ea-header.style.js +0 -4
  103. package/dist/css/ea-icon.style.js +0 -4
  104. package/dist/css/ea-image-preview.style.js +0 -4
  105. package/dist/css/ea-image.style.js +0 -4
  106. package/dist/css/ea-infinite-scroll.style.js +0 -4
  107. package/dist/css/ea-input-number.style.js +0 -4
  108. package/dist/css/ea-input.style.js +0 -4
  109. package/dist/css/ea-link.style.js +0 -4
  110. package/dist/css/ea-main.style.js +0 -4
  111. package/dist/css/ea-menu-item-group.style.js +0 -4
  112. package/dist/css/ea-menu-item.style.js +0 -4
  113. package/dist/css/ea-menu.style.js +0 -4
  114. package/dist/css/ea-message-box.style.js +0 -4
  115. package/dist/css/ea-message.style.js +0 -4
  116. package/dist/css/ea-notification.style.js +0 -4
  117. package/dist/css/ea-option-gropu.style.js +0 -4
  118. package/dist/css/ea-option.style.js +0 -4
  119. package/dist/css/ea-overlay.style.js +0 -4
  120. package/dist/css/ea-page-header.style.js +0 -4
  121. package/dist/css/ea-pagination.style.js +0 -4
  122. package/dist/css/ea-popconfirm.style.js +0 -4
  123. package/dist/css/ea-popover.style.js +0 -4
  124. package/dist/css/ea-popper.style.js +0 -4
  125. package/dist/css/ea-progress.style.js +0 -4
  126. package/dist/css/ea-radio-group.style.js +0 -4
  127. package/dist/css/ea-radio.style.js +0 -4
  128. package/dist/css/ea-rate.style.js +0 -4
  129. package/dist/css/ea-result.style.js +0 -4
  130. package/dist/css/ea-row.style.js +0 -4
  131. package/dist/css/ea-scrollbar.style.js +0 -4
  132. package/dist/css/ea-segmented.style.js +0 -4
  133. package/dist/css/ea-select.style.js +0 -4
  134. package/dist/css/ea-skeleton-item.style.js +0 -4
  135. package/dist/css/ea-skeleton.style.js +0 -4
  136. package/dist/css/ea-slider.style.js +0 -4
  137. package/dist/css/ea-space.style.js +0 -4
  138. package/dist/css/ea-splitter-bar.style.js +0 -4
  139. package/dist/css/ea-splitter-panel.style.js +0 -4
  140. package/dist/css/ea-splitter.style.js +0 -4
  141. package/dist/css/ea-statistic.style.js +0 -4
  142. package/dist/css/ea-step.style.js +0 -4
  143. package/dist/css/ea-steps.style.js +0 -4
  144. package/dist/css/ea-sub-menu.style.js +0 -4
  145. package/dist/css/ea-switch.style.js +0 -4
  146. package/dist/css/ea-tab-panel.style.js +0 -4
  147. package/dist/css/ea-tab.style.js +0 -4
  148. package/dist/css/ea-table-column.style.js +0 -4
  149. package/dist/css/ea-table.style.js +0 -4
  150. package/dist/css/ea-tabs.style.js +0 -4
  151. package/dist/css/ea-tag.style.js +0 -4
  152. package/dist/css/ea-text.style.js +0 -4
  153. package/dist/css/ea-time-picker.style.js +0 -4
  154. package/dist/css/ea-timeline-item.style.js +0 -4
  155. package/dist/css/ea-timeline.style.js +0 -4
  156. package/dist/css/ea-tooltip.style.js +0 -4
  157. package/dist/css/ea-tour-step.style.js +0 -4
  158. package/dist/css/ea-tour.style.js +0 -4
  159. package/dist/css/ea-transfer.style.js +0 -5
  160. package/dist/css/ea-tree.style.js +0 -6
  161. package/dist/css/ea-ui-component.style.js +0 -4
  162. package/dist/favicon.ico +0 -0
  163. package/dist/utils/Color.js +0 -439
  164. package/dist/utils/I18nManager.js +0 -218
  165. package/dist/utils/Utils.js +0 -65
  166. package/dist/utils/Variables.js +0 -12
  167. package/dist/utils/parseTime.js +0 -73
  168. package/dist/utils/timeout.js +0 -9
@@ -1,649 +0,0 @@
1
- var pt = Object.defineProperty;
2
- var ct = (n) => {
3
- throw TypeError(n);
4
- };
5
- var mt = (n, o, e) => o in n ? pt(n, o, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[o] = e;
6
- var x = (n, o, e) => mt(n, typeof o != "symbol" ? o + "" : o, e), ht = (n, o, e) => o.has(n) || ct("Cannot " + e);
7
- var t = (n, o, e) => (ht(n, o, "read from private field"), e ? e.call(n) : o.get(n)), i = (n, o, e) => o.has(n) ? ct("Cannot add the same private member more than once") : o instanceof WeakSet ? o.add(n) : o.set(n, e), u = (n, o, e, a) => (ht(n, o, "write to private field"), a ? a.call(n, e) : o.set(n, e), e), N = (n, o, e) => (ht(n, o, "access private method"), e);
8
- import { c as yt, g as vt, d as L, n as bt } from "./ea-calendar2.js";
9
- import { F as ft } from "../core/FormBase.js";
10
- import { s as wt } from "../css/ea-date-picker.style.js";
11
- import "./ea-input.js";
12
- import "./ea-button.js";
13
- import { E as gt } from "../utils/Variables.js";
14
- import { E as Dt } from "../utils/Utils.js";
15
- import { i as G } from "../utils/I18nManager.js";
16
- var ut = { exports: {} };
17
- (function(n, o) {
18
- (function(e, a) {
19
- n.exports = a();
20
- })(yt, function() {
21
- return function(e, a) {
22
- var r = a.prototype, h = r.format;
23
- r.format = function(m) {
24
- var c = this, C = this.$locale();
25
- if (!this.isValid()) return h.bind(this)(m);
26
- var y = this.$utils(), ot = (m || "YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g, function(R) {
27
- switch (R) {
28
- case "Q":
29
- return Math.ceil((c.$M + 1) / 3);
30
- case "Do":
31
- return C.ordinal(c.$D);
32
- case "gggg":
33
- return c.weekYear();
34
- case "GGGG":
35
- return c.isoWeekYear();
36
- case "wo":
37
- return C.ordinal(c.week(), "W");
38
- case "w":
39
- case "ww":
40
- return y.s(c.week(), R === "w" ? 1 : 2, "0");
41
- case "W":
42
- case "WW":
43
- return y.s(c.isoWeek(), R === "W" ? 1 : 2, "0");
44
- case "k":
45
- case "kk":
46
- return y.s(String(c.$H === 0 ? 24 : c.$H), R === "k" ? 1 : 2, "0");
47
- case "X":
48
- return Math.floor(c.$d.getTime() / 1e3);
49
- case "x":
50
- return c.$d.getTime();
51
- case "z":
52
- return "[" + c.offsetName() + "]";
53
- case "zzz":
54
- return "[" + c.offsetName("long") + "]";
55
- default:
56
- return R;
57
- }
58
- });
59
- return h.bind(this)(ot);
60
- };
61
- };
62
- });
63
- })(ut);
64
- var $t = ut.exports;
65
- const Mt = /* @__PURE__ */ vt($t);
66
- class lt extends Event {
67
- constructor(o) {
68
- super("ea-panel-change", {
69
- bubbles: !0,
70
- cancelable: !0,
71
- composed: !0
72
- }), this.detail = o;
73
- }
74
- }
75
- class dt extends Event {
76
- constructor(o) {
77
- super("ea-visible-change", {
78
- bubbles: !0,
79
- cancelable: !0,
80
- composed: !0
81
- }), this.detail = o;
82
- }
83
- }
84
- L.extend(Mt);
85
- var p, H, d, V, $, j, O, v, b, f, M, Y, w, W, A, l, s, E, I, D, P, S, q, z, B, F, _, Q, U, X, Z, J, K, tt, k, et, T, g, st, at, it, rt, nt;
86
- class Yt extends ft {
87
- constructor() {
88
- super();
89
- i(this, E);
90
- /** @type {HTMLElement} */
91
- i(this, p);
92
- /** @type {HTMLElement} */
93
- i(this, H);
94
- /** @type {HTMLElement} */
95
- i(this, d);
96
- /** @type {HTMLElement} */
97
- i(this, V);
98
- /** @type {HTMLElement} */
99
- i(this, $);
100
- /** @type {HTMLElement} */
101
- i(this, j);
102
- /** @type {HTMLElement} */
103
- i(this, O);
104
- /** @type {HTMLElement} */
105
- i(this, v);
106
- /** @type {HTMLElement} */
107
- i(this, b);
108
- /** @type {HTMLElement} */
109
- i(this, f);
110
- /** @type {HTMLElement} */
111
- i(this, M);
112
- /** @type {HTMLElement} */
113
- i(this, Y);
114
- /** @type {HTMLElement} */
115
- i(this, w);
116
- /** @type {HTMLElement} */
117
- i(this, W);
118
- /** @type {HTMLElement} */
119
- i(this, A);
120
- /** @type {AbortController} */
121
- i(this, l, new AbortController());
122
- i(this, s, {
123
- currentDate: L(),
124
- /** @type {'day' | 'month' | 'year'} */
125
- viewMode: "day",
126
- selectedYear: null,
127
- selectedMonth: null
128
- });
129
- x(this, "state", this.properties({
130
- label: {
131
- type: String,
132
- default: "",
133
- observer: async (e) => {
134
- await customElements.whenDefined("ea-input"), t(this, d).label = e;
135
- }
136
- },
137
- width: {
138
- type: String,
139
- default: "auto",
140
- observer: (e) => {
141
- t(this, p).style.setProperty("--ea-date-picker-width", e);
142
- }
143
- },
144
- value: {
145
- type: String,
146
- default: "",
147
- observer: (e) => {
148
- let a = e;
149
- if (isNaN(new Date(e)) && e !== "") {
150
- const r = new Date(Date.now());
151
- a = `${r.getFullYear()}-${r.getMonth() + 1}-${r.getDate()}`;
152
- }
153
- a ? (t(this, s).currentDate = L(a), t(this, s).selectedYear = t(this, s).currentDate.year(), t(this, s).selectedMonth = t(this, s).currentDate.month() + 1, t(this, d).value = t(this, s).currentDate.format(
154
- N(this, E, I).call(this)
155
- )) : t(this, d).value = a, this.setValue(e);
156
- }
157
- },
158
- placeholder: {
159
- type: String,
160
- default: "",
161
- observer: (e) => {
162
- t(this, d).setAttribute("placeholder", e);
163
- }
164
- },
165
- disabled: {
166
- type: Boolean,
167
- default: !1,
168
- observer: (e) => {
169
- t(this, d).toggleAttribute("disabled", e), this.updateContainerClasslist();
170
- }
171
- },
172
- align: {
173
- type: ["left", "center", "right"],
174
- default: "left",
175
- observer: () => {
176
- this.updateContainerClasslist();
177
- }
178
- },
179
- "display-format": {
180
- type: String,
181
- default: "YYYY-MM-DD"
182
- },
183
- "value-format": {
184
- type: String,
185
- default: "YYYY-MM-DD"
186
- },
187
- type: {
188
- type: ["date", "month", "year"],
189
- default: "date",
190
- observer: (e) => {
191
- e === "year" ? t(this, P).call(this) : e === "month" ? t(this, S).call(this) : t(this, q).call(this);
192
- }
193
- },
194
- size: {
195
- type: gt,
196
- default: "default",
197
- observer: (e) => {
198
- t(this, d).setAttribute("size", e), t(this, v).setAttribute("size", e), t(this, b).setAttribute("size", e), t(this, f).setAttribute("size", e), t(this, M).setAttribute("size", e), t(this, Y).setAttribute("size", e), t(this, w).setAttribute("size", e), this.updateContainerClasslist();
199
- }
200
- },
201
- required: {
202
- type: Boolean,
203
- default: !1,
204
- observer: async (e) => {
205
- await customElements.whenDefined("ea-input"), t(this, d).toggleAttribute("required", e);
206
- }
207
- }
208
- }));
209
- /**
210
- * 更新header显示
211
- */
212
- i(this, D, () => {
213
- const e = t(this, s).currentDate.year(), a = t(this, s).currentDate.month() + 1;
214
- if (t(this, s).viewMode === "year") {
215
- const r = Math.floor(e / 10) * 10, h = r + 9;
216
- t(this, v).textContent = `${r} ~ ${h}`, t(this, b).textContent = "";
217
- } else t(this, s).viewMode === "month" ? (t(this, v).textContent = e, t(this, b).textContent = "") : (t(this, v).textContent = e, t(this, b).textContent = a < 10 ? `0${a}` : a);
218
- });
219
- /**
220
- * 切换到年份选择模式
221
- */
222
- i(this, P, () => {
223
- t(this, s).viewMode = "year", t(this, D).call(this), t(this, B).call(this), this.updateContainerClasslist(), t(this, z).call(this, "year"), this.dispatchEvent(
224
- new lt({
225
- date: t(this, s).currentDate.toDate(),
226
- mode: "year",
227
- view: "year-panel"
228
- })
229
- );
230
- });
231
- /**
232
- * 切换到月份选择模式
233
- */
234
- i(this, S, () => {
235
- t(this, s).viewMode = "month", t(this, D).call(this), t(this, F).call(this), this.updateContainerClasslist(), t(this, z).call(this, "month"), this.dispatchEvent(
236
- new lt({
237
- date: t(this, s).currentDate.toDate(),
238
- mode: "month",
239
- view: "month-panel"
240
- })
241
- );
242
- });
243
- /**
244
- * 切换回日期选择模式
245
- */
246
- i(this, q, () => {
247
- t(this, s).viewMode = "day", t(this, D).call(this), this.updateContainerClasslist(), t(this, z).call(this, "day");
248
- const e = t(this, s).currentDate.format("YYYY-MM-DD");
249
- t(this, $).setAttribute("value", e), this.dispatchEvent(
250
- new lt({
251
- date: t(this, s).currentDate.toDate(),
252
- mode: "month",
253
- view: "day-panel"
254
- })
255
- );
256
- });
257
- /**
258
- * 更新header按钮
259
- * @param {'year' | 'month' | 'day'} mode
260
- */
261
- i(this, z, (e) => {
262
- e === "year" ? (t(this, f).ariaLabel = "Previous decade", t(this, w).ariaLabel = "Next decade") : e === "month" ? (t(this, f).ariaLabel = "Previous year", t(this, w).ariaLabel = "Next year") : (t(this, f).ariaLabel = "Previous year", t(this, w).ariaLabel = "Next year", t(this, M).ariaLabel = "Previous month", t(this, Y).ariaLabel = "Next month");
263
- });
264
- /**
265
- * 渲染年份面板
266
- */
267
- i(this, B, () => {
268
- const e = this.ns, a = t(this, s).currentDate.year(), r = Math.floor(a / 10) * 10, h = t(this, W);
269
- let m = Array.from({ length: 10 }, (c, C) => {
270
- const y = r + C, ot = y === t(this, s).selectedYear;
271
- return Dt.EaElement.h(
272
- "button",
273
- null,
274
- {
275
- class: `${e.e("year-item")} ${ot ? e.s("selected") : ""}`,
276
- "data-year": y,
277
- part: "year-item"
278
- },
279
- y
280
- );
281
- }).join("");
282
- h.innerHTML = this.html(m);
283
- });
284
- /**
285
- * 渲染月份面板
286
- */
287
- i(this, F, () => {
288
- const e = this.ns;
289
- t(this, A).querySelectorAll(
290
- `.${e.e("month-item")}`
291
- ).forEach((r) => {
292
- const m = parseInt(r.dataset.month, 10) === t(this, s).selectedMonth && t(this, s).currentDate.year() === t(this, s).selectedYear;
293
- r.classList.toggle(e.s("selected"), m);
294
- });
295
- });
296
- /**
297
- * 上一年按钮点击
298
- */
299
- i(this, _, () => {
300
- t(this, s).viewMode === "year" ? t(this, s).currentDate = t(this, s).currentDate.subtract(10, "year") : t(this, s).currentDate = t(this, s).currentDate.subtract(1, "year"), t(this, k).call(this);
301
- });
302
- /**
303
- * 下一年按钮点击
304
- */
305
- i(this, Q, () => {
306
- t(this, s).viewMode === "year" ? t(this, s).currentDate = t(this, s).currentDate.add(10, "year") : t(this, s).currentDate = t(this, s).currentDate.add(1, "year"), t(this, k).call(this);
307
- });
308
- /**
309
- * 上个月按钮点击
310
- */
311
- i(this, U, () => {
312
- t(this, s).currentDate = t(this, s).currentDate.subtract(1, "month"), t(this, k).call(this);
313
- });
314
- /**
315
- * 下个月按钮点击
316
- */
317
- i(this, X, () => {
318
- t(this, s).currentDate = t(this, s).currentDate.add(1, "month"), t(this, k).call(this);
319
- });
320
- /**
321
- * 年份点击事件
322
- */
323
- i(this, Z, (e) => {
324
- const a = e.target.closest("[data-year]");
325
- if (!a) return;
326
- const r = parseInt(a.dataset.year);
327
- t(this, s).selectedYear = r, t(this, s).currentDate = t(this, s).currentDate.year(r), this.type === "year" ? t(this, J).call(this, r) : t(this, S).call(this);
328
- });
329
- /**
330
- * 处理年份选择(type=year)
331
- */
332
- i(this, J, (e) => {
333
- const a = t(this, s).currentDate, r = a.format(N(this, E, I).call(this)), h = a.format(this["value-format"]);
334
- t(this, d).value = r, this.setAttribute("value", h), this.emit("change", {
335
- detail: {
336
- fullDate: h,
337
- year: e,
338
- month: null,
339
- date: null,
340
- week: null
341
- }
342
- }), t(this, g).call(this);
343
- });
344
- /**
345
- * 月份点击事件
346
- */
347
- i(this, K, (e) => {
348
- const a = e.target.closest("[data-month]");
349
- if (!a) return;
350
- const r = parseInt(a.dataset.month);
351
- t(this, s).selectedMonth = r, t(this, s).currentDate = t(this, s).currentDate.month(r - 1), this.type === "month" ? t(this, tt).call(this, r) : t(this, q).call(this);
352
- });
353
- /**
354
- * 处理月份选择(type=month)
355
- */
356
- i(this, tt, (e) => {
357
- const a = t(this, s).currentDate, r = a.format(N(this, E, I).call(this)), h = a.format(this["value-format"]);
358
- t(this, d).value = r, this.setAttribute("value", h), this.emit("change", {
359
- detail: {
360
- fullDate: h,
361
- year: t(this, s).selectedYear,
362
- month: e,
363
- date: null,
364
- week: null
365
- }
366
- }), t(this, g).call(this);
367
- });
368
- /**
369
- * 更新视图
370
- */
371
- i(this, k, () => {
372
- t(this, D).call(this), t(this, s).viewMode === "year" ? t(this, B).call(this) : t(this, s).viewMode === "month" && t(this, F).call(this);
373
- const e = t(this, s).currentDate.format("YYYY-MM-DD");
374
- t(this, $).setAttribute("value", e);
375
- });
376
- /**
377
- * 日历选择事件处理
378
- * @param {CustomEvent} e
379
- */
380
- i(this, et, (e) => {
381
- const { year: a, month: r, date: h, day: m } = e.detail, c = L(`${a}-${r}-${h}`);
382
- t(this, s).selectedYear = a, t(this, s).selectedMonth = r, t(this, s).currentDate = c;
383
- const C = c.format(N(this, E, I).call(this)), y = c.format(this["value-format"]);
384
- t(this, d).value = C, this.setAttribute("value", y), this.emit("change", {
385
- detail: {
386
- fullDate: y,
387
- year: a,
388
- month: r,
389
- date: h,
390
- week: m
391
- }
392
- }), t(this, g).call(this);
393
- });
394
- /**
395
- * 打开下拉框
396
- */
397
- i(this, T, () => {
398
- if (this.disabled) return;
399
- const e = t(this, p).classList.contains("is-open");
400
- t(this, p).classList.add("is-open"), e || this.dispatchEvent(new dt({ visible: !0 })), this.type === "year" ? t(this, P).call(this) : this.type === "month" ? t(this, S).call(this) : t(this, q).call(this);
401
- });
402
- /**
403
- * 关闭下拉框
404
- */
405
- i(this, g, () => {
406
- const e = t(this, p).classList.contains("is-open");
407
- t(this, p).classList.remove("is-open"), e && this.dispatchEvent(
408
- new dt({ visible: !1 })
409
- );
410
- });
411
- /**
412
- * 切换下拉框显示状态
413
- */
414
- i(this, st, () => {
415
- this.disabled || (t(this, p).classList.contains("is-open") ? t(this, g).call(this) : t(this, T).call(this));
416
- });
417
- /**
418
- * 点击外部关闭下拉
419
- * @param {MouseEvent} e
420
- */
421
- i(this, at, (e) => {
422
- const a = e.composedPath();
423
- a.includes(this) || a.includes(this.shadowRoot) || t(this, g).call(this);
424
- });
425
- /**
426
- * 输入框焦点事件
427
- */
428
- i(this, it, () => {
429
- this.emit("focus");
430
- });
431
- /**
432
- * 输入框失焦事件
433
- */
434
- i(this, rt, () => {
435
- this.emit("blur");
436
- });
437
- /**
438
- * 绑定事件
439
- */
440
- i(this, nt, () => {
441
- var r;
442
- (r = t(this, l)) == null || r.abort(), u(this, l, new AbortController()), t(this, $).addEventListener("select", t(this, et), {
443
- signal: t(this, l).signal
444
- }), t(this, d).addEventListener("click", t(this, st), {
445
- signal: t(this, l).signal
446
- }), t(this, d).addEventListener("focus", t(this, it), {
447
- signal: t(this, l).signal
448
- }), t(this, d).addEventListener("blur", t(this, rt), {
449
- signal: t(this, l).signal
450
- }), window.addEventListener("click", t(this, at), {
451
- signal: t(this, l).signal
452
- }), t(this, f).addEventListener("click", t(this, _), {
453
- signal: t(this, l).signal
454
- }), t(this, w).addEventListener("click", t(this, Q), {
455
- signal: t(this, l).signal
456
- }), t(this, M).addEventListener("click", t(this, U), {
457
- signal: t(this, l).signal
458
- }), t(this, Y).addEventListener("click", t(this, X), {
459
- signal: t(this, l).signal
460
- }), t(this, v).addEventListener("click", t(this, P), {
461
- signal: t(this, l).signal
462
- }), t(this, b).addEventListener("click", t(this, S), {
463
- signal: t(this, l).signal
464
- }), this.shadowRoot.querySelector(this.ns.ce("year-panel")).addEventListener("click", t(this, Z), {
465
- signal: t(this, l).signal
466
- }), this.shadowRoot.querySelector(this.ns.ce("month-panel")).addEventListener("click", t(this, K), {
467
- signal: t(this, l).signal
468
- });
469
- });
470
- /**
471
- * 使组件获取焦点
472
- * @return {void}
473
- */
474
- x(this, "focus", () => {
475
- t(this, d).focus();
476
- });
477
- /**
478
- * 使组件失去焦点
479
- * @return {void}
480
- */
481
- x(this, "blur", () => {
482
- t(this, d).blur();
483
- });
484
- /**
485
- * 打开日期选择器弹窗
486
- * @return {void}
487
- */
488
- x(this, "handleOpen", () => {
489
- t(this, T).call(this);
490
- });
491
- /**
492
- * 关闭日期选择器弹窗
493
- * @return {void}
494
- */
495
- x(this, "handleClose", () => {
496
- t(this, g).call(this);
497
- });
498
- this.stylesheet = wt, this.$render();
499
- }
500
- static get observedAttributes() {
501
- return [
502
- ...super.observedAttributes,
503
- "label",
504
- "width",
505
- "value",
506
- "placeholder",
507
- "disabled",
508
- "align",
509
- "display-format",
510
- "value-format",
511
- "size",
512
- "required"
513
- ];
514
- }
515
- /**
516
- * 获取 classlist 列表
517
- * @return {string} 属性值
518
- */
519
- updateContainerClasslist() {
520
- var r, h;
521
- const e = ((r = t(this, s)) == null ? void 0 : r.viewMode) || "day", a = this.computedClasslist(
522
- "ea-date-picker",
523
- {
524
- [`--${this.size}`]: this.size
525
- },
526
- {
527
- disabled: this.disabled,
528
- [`align-${this.align}`]: this.align,
529
- open: (h = t(this, p)) == null ? void 0 : h.classList.contains("is-open"),
530
- [`view-${e}`]: e
531
- }
532
- );
533
- return t(this, p).className = a, a;
534
- }
535
- /**
536
- * 渲染组件
537
- */
538
- $render() {
539
- const e = bt("date-picker");
540
- this.ns = e, G.locale = this.locale, L.locale(this.locale.toLowerCase());
541
- const a = G.t("calendar.monthsShort");
542
- this.shadowRoot.innerHTML = this.html(`
543
- <div class='${e.b()}' part='container'>
544
- <div class='${e.e("input-wrap")}' part='input-wrap'>
545
- <ea-input class="${e.e("input")}" part='input' prefix-icon="calendar-xmark" readonly></ea-input>
546
- </div>
547
- <div class='${e.e("dropdown-wrap")}' part='dropdown-wrap'>
548
- <div class='${e.e("calendar-wrapper")}'>
549
- <div class='${e.e("calendar-header")}' part='calendar-header'>
550
- <div class='${e.e("header-left")}' part='header-left'>
551
- <ea-button class='${e.e("header-btn")} ${e.e("btn-prev-year")}' part='header-btn' aria-label="Previous year" text>«</ea-button>
552
- <ea-button class='${e.e("header-btn")} ${e.e("btn-prev-month")}' part='header-btn' aria-label="Previous month" text>‹</ea-button>
553
- </div>
554
- <div class='${e.e("header-center")}' part='header-center'>
555
- <ea-button class='${e.e("header-year")}' part='header-year' aria-label="Year" text></ea-button>
556
- <ea-button class='${e.e("header-month")}' part='header-month' aria-label="Month" text></ea-button>
557
- </div>
558
- <div class='${e.e("header-right")}' part='header-right'>
559
- <ea-button class='${e.e("header-btn")} ${e.e("btn-next-month")}' part='header-btn' aria-label="Next month" text>›</ea-button>
560
- <ea-button class='${e.e("header-btn")} ${e.e("btn-next-year")}' part='header-btn' aria-label="Next year" text>»</ea-button>
561
- </div>
562
- </div>
563
- <div class='${e.e("calendar-body")}' part='calendar-body'>
564
- <ea-calendar class="${e.e("calendar")}" size="small" part='calendar'></ea-calendar>
565
- </div>
566
- <div class='${e.e("year-panel")}' part='year-panel'></div>
567
- <div class='${e.e("month-panel")}' part='month-panel'>${a.map(
568
- (r, h) => `<button class='${e.e("month-item")}' part='month-item' data-month='${h + 1}'>${r}</button>`
569
- ).join("")}</div>
570
- </div>
571
- </div>
572
- </div>
573
- `), u(this, p, this.shadowRoot.querySelector(e.cb())), u(this, H, this.shadowRoot.querySelector(e.ce("input-wrap"))), u(this, d, this.shadowRoot.querySelector(e.ce("input"))), u(this, V, this.shadowRoot.querySelector(e.ce("dropdown-wrap"))), u(this, $, this.shadowRoot.querySelector(e.ce("calendar"))), u(this, j, this.shadowRoot.querySelector(
574
- e.ce("calendar-header")
575
- )), u(this, O, this.shadowRoot.querySelector(e.ce("calendar-body"))), u(this, v, this.shadowRoot.querySelector(e.ce("header-year"))), u(this, b, this.shadowRoot.querySelector(e.ce("header-month"))), u(this, f, this.shadowRoot.querySelector(e.ce("btn-prev-year"))), u(this, M, this.shadowRoot.querySelector(e.ce("btn-prev-month"))), u(this, Y, this.shadowRoot.querySelector(e.ce("btn-next-month"))), u(this, w, this.shadowRoot.querySelector(e.ce("btn-next-year"))), u(this, W, this.shadowRoot.querySelector(e.ce("year-panel"))), u(this, A, this.shadowRoot.querySelector(e.ce("month-panel")));
576
- }
577
- /**
578
- * 更新本地化
579
- * @param {string} locale
580
- */
581
- $updateLocalization(e) {
582
- G.locale = e, L.locale(e.toLowerCase());
583
- const a = this.ns, r = G.t("calendar.monthsShort");
584
- t(this, A).querySelectorAll(
585
- `.${a.e("month-item")}`
586
- ).forEach((m, c) => {
587
- r[c] && (m.textContent = r[c]);
588
- });
589
- }
590
- connectedCallback() {
591
- var e;
592
- super.connectedCallback(), (e = t(this, l)) == null || e.abort(), u(this, l, new AbortController()), t(this, D).call(this), t(this, nt).call(this);
593
- }
594
- $beforeUnmounted() {
595
- var e;
596
- (e = t(this, l)) == null || e.abort(), u(this, l, null);
597
- }
598
- /**
599
- * 获取验证目标元素
600
- * @returns {HTMLElement}
601
- */
602
- get validationTarget() {
603
- return t(this, d);
604
- }
605
- /**
606
- * 更新表单验证状态
607
- */
608
- updateValidity() {
609
- const e = this.value !== "" && this.value != null;
610
- this.required && !e ? this.internals.setValidity({ valueMissing: !0 }, "请选择日期", this) : this.internals.setValidity({}, "", this);
611
- }
612
- /**
613
- * 检查表单字段的有效性
614
- * @returns {boolean}
615
- */
616
- checkValidity() {
617
- return this.updateValidity(), this.internals.validity.valid;
618
- }
619
- /**
620
- * 报告表单字段的有效性(显示验证提示)
621
- * @returns {boolean}
622
- */
623
- reportValidity() {
624
- return this.updateValidity(), this.internals.reportValidity();
625
- }
626
- }
627
- p = new WeakMap(), H = new WeakMap(), d = new WeakMap(), V = new WeakMap(), $ = new WeakMap(), j = new WeakMap(), O = new WeakMap(), v = new WeakMap(), b = new WeakMap(), f = new WeakMap(), M = new WeakMap(), Y = new WeakMap(), w = new WeakMap(), W = new WeakMap(), A = new WeakMap(), l = new WeakMap(), s = new WeakMap(), E = new WeakSet(), /**
628
- * 获取实际的显示格式
629
- * 如果用户设置了自定义格式,则使用自定义格式
630
- * 否则根据type使用默认格式
631
- * @return {string} 显示格式
632
- */
633
- I = function() {
634
- const e = this["display-format"];
635
- if (this.hasAttribute("display-format") && this["display-format"] !== "")
636
- return e;
637
- switch (this.type) {
638
- case "year":
639
- return "YYYY";
640
- case "month":
641
- return "YYYY-MM";
642
- default:
643
- return "YYYY-MM-DD";
644
- }
645
- }, D = new WeakMap(), P = new WeakMap(), S = new WeakMap(), q = new WeakMap(), z = new WeakMap(), B = new WeakMap(), F = new WeakMap(), _ = new WeakMap(), Q = new WeakMap(), U = new WeakMap(), X = new WeakMap(), Z = new WeakMap(), J = new WeakMap(), K = new WeakMap(), tt = new WeakMap(), k = new WeakMap(), et = new WeakMap(), T = new WeakMap(), g = new WeakMap(), st = new WeakMap(), at = new WeakMap(), it = new WeakMap(), rt = new WeakMap(), nt = new WeakMap();
646
- customElements.get("ea-date-picker") || customElements.define("ea-date-picker", Yt);
647
- export {
648
- Yt as EaDatePicker
649
- };