@gez/date-time-kit 1.0.0-alpha.0

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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) [2025] [wesloong]
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,120 @@
1
+ # date-time-kit
2
+
3
+ ![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)
4
+ ![npm version](https://img.shields.io/npm/v/your-library-name.svg)
5
+ ![GitHub stars](https://img.shields.io/github/stars/your-username/your-repo.svg)
6
+
7
+ ## 📌 简介
8
+
9
+ date-time-kit是一个功能强大且易于使用的 TypeScript 库,旨在解决 [web前端 时间区间选择] 的问题。它适用于 [所有web环境],并提供高效、轻量级的解决方案。
10
+
11
+ ## ✨ 特性
12
+
13
+ - 🚀 **特性 1** - js原生开发,不依赖任何第三方框架
14
+ - 🎯 **特性 2** - 非常小 仅需几十kb
15
+ - 📦 **特性 3** - 提供国际化,时区控制,精确到毫秒
16
+ - 🔥 适用于浏览器
17
+ - ✅ 易于集成,支持 TypeScript
18
+
19
+ ## 📦 安装
20
+
21
+ 使用 npm 安装:
22
+
23
+ ```sh
24
+ npm install @gez/date-time-kit
25
+ ```
26
+
27
+ 使用 yarn 安装:
28
+
29
+ ```sh
30
+ yarn add @gez/date-time-kit
31
+ ```
32
+
33
+ ## 🚀 快速开始
34
+
35
+ ### 在 ES6 环境中使用
36
+
37
+ ```ts
38
+ import { open } from 'date-time-kit';
39
+
40
+ const result = awiat open({
41
+ root: document.getElementById('root')
42
+ });
43
+ console.log(result);
44
+ ```
45
+
46
+ ## 📖 API 文档
47
+
48
+ ### `open(option)`
49
+
50
+ - `option` (**kitOption**): 初始化对象
51
+ ```ts
52
+ export interface kitOption {
53
+ root: HTMLElement,
54
+ // default select
55
+ startTime?: timeString,
56
+ endTime?: timeString,
57
+ // default limit
58
+ maxTime?: timeString,
59
+ minTime?: timeString,
60
+ // default lang
61
+ lang?: lang, // zhCN, enUS ...
62
+ // default time zone
63
+ timeZone?: number // -12 - 12
64
+ }
65
+ export type timeString = `${number}-${number}-${number} ${number}:${number}:${number}:${number}`;
66
+ ```
67
+ - **返回值**: kitResult
68
+ ```ts
69
+ export interface kitResult {
70
+ startTime: timeString,
71
+ endTime: timeString,
72
+ // time stamp
73
+ startTimeStamp: number,
74
+ endTimeStamp: number,
75
+ timeZone: number
76
+ }
77
+
78
+ ```
79
+
80
+ 示例:
81
+
82
+ ```js
83
+ import dataTimeKit from 'date-time-kit';
84
+
85
+ const result = awiat dataTimeKit.open({
86
+ root: document.getElementById('root')
87
+ });
88
+ console.log(result);
89
+ ```
90
+
91
+ ## 💡 示例代码
92
+
93
+ ```js
94
+ const result = awiat dataTimeKit.open({
95
+ root: document.getElementById('root'),
96
+ maxTime: "1990-01-01 00:00:00:000",
97
+ minTime: "2050-01-01 00:00:00:000",
98
+ startTime: "1990-01-01 00:00:00:000",
99
+ endTime: "2050-01-01 00:10:10:022",
100
+ timeZone: 4
101
+ });
102
+ console.log(result);
103
+ ```
104
+
105
+ ## 🛠️ 贡献
106
+
107
+ 欢迎贡献代码!请阅读 [贡献指南](CONTRIBUTING.md) 以了解如何提交 PR 或报告问题。
108
+
109
+ ## 📄 许可证
110
+
111
+ 本项目基于 [MIT 许可证](LICENSE) 进行发布。
112
+
113
+ ## 📬 联系
114
+
115
+ 如果你有任何问题或建议,请随时在 [GitHub Issues](https://github.com/dp-os/date-time-kit/issues) 提交反馈,或通过 email@example.com 联系我们。
116
+
117
+ ---
118
+
119
+ ⭐️ 如果你觉得这个项目有用,欢迎给个 Star 支持我们!
120
+
package/dist/index.css ADDED
@@ -0,0 +1 @@
1
+ .dt-box{background-color:var(--color-bg);color:var(--color-text-primary);box-shadow:var(--shadow);font-family:var(--font-fimily);border-radius:var(--radius);visibility:hidden;opacity:0;z-index:var(--z-base);font-size:var(--font-size);transition:all .3s ease-in-out;display:flex;position:absolute;top:0;left:0;overflow:hidden}.dt-box ::-webkit-scrollbar{display:none}.dt-date-box{flex:1;display:flex}.dt-data-body{width:280px}.dt-data-body+.dt-data-body{margin-left:var(--spacing-size-medium)}.dt-content{padding:var(--spacing-size-medium);flex-direction:column;display:flex}.dt-footer{justify-content:end;display:flex}.dt-button{height:40px;padding:0 var(--spacing-size-medium);cursor:pointer;color:var(--color-text-primary);background-color:var(--color-surface);font-family:var(--font-fimily);font-size:var(--font-size);border:none;border-radius:20px;transition:all .2s ease-in-out}.dt-button:hover{box-shadow:var(--shadow-hover);transform:scale(1.02)}.dt-button:active{box-shadow:var(--shadow-active);transform:scale(.98)}.dt-button+.dt-button{margin-left:var(--spacing-size-medium)}.dt-button-primary{background-color:var(--color-text-primary);color:var(--color-bg)}.dt-quick{width:150px;padding:var(--spacing-size-small);background:var(--color-surface);flex-direction:column;display:flex}.dt-quick-item{height:32px;margin:var(--spacing-size-small)0;padding:0 var(--spacing-size-small);border-radius:var(--radius);cursor:pointer;line-height:32px;transition:all .3s ease-in-out;position:relative;overflow:hidden}.dt-quick-item:after{content:"";background:var(--color-hover);opacity:1;pointer-events:none;width:80px;height:80px;color:var(--color-primary);transform-origin:50%;border-radius:50%;position:absolute;top:-26px;left:35px;transform:scale(0)}.dt-quick-item:hover:after{animation:1.2s ease-out ripple;transform:scale(4)}.dt-quick-item:active{color:var(--color-primary)}@keyframes ripple{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(4)}}.dt-quick-item-active{background:var(--color-primary-light);color:var(--color-primary)}.dt-quick-item-active:hover{background:var(--color-primary-light)}.dt-quick-item-active:hover:after{opacity:0;animation:none}.dt-time-zone{cursor:pointer;height:32px;margin:var(--spacing-size-small)0;padding:0 var(--spacing-size-small);border-radius:var(--radius);justify-content:space-between;align-items:center;line-height:32px;display:flex;position:relative}.dt-time-zone:hover{background:var(--color-hover)}.dt-time-zone-text{font-size:var(--font-size-small)}.dt-time-zone-icon{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNSAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IiYjMjMxOyYjMTc0OyYjMTczOyYjMjI5OyYjMTY0OyYjMTgwOyYjMjI5OyYjMTYxOyYjMTcxOyYjMjI5OyYjMTMzOyYjMTMzOyI+CjxwYXRoIGlkPSJPdXRsaW5lZCIgZD0iTTguMDE5MzUgMTAuNTQwNUwxMS45ODA3IDYuMTQwMjNDMTIuMTk2MiA1LjkwMDc2IDEyLjE3NjggNS41MzE5MyAxMS45MzczIDUuMzE2NDFDMTEuODMwMiA1LjIyMDAxIDExLjY5MTIgNS4xNjY2NiAxMS41NDcxIDUuMTY2NjZIMy42NjY2N0MzLjM0NDUgNS4xNjY2NiAzLjA4MzMzIDUuNDI3ODMgMy4wODMzMyA1Ljc1QzMuMDgzMzMgNS44OTQxMSAzLjEzNjY4IDYuMDMzMTEgMy4yMzMwOCA2LjE0MDIzTDcuMTczMjggMTAuNTE4MkM3LjM4ODggMTAuNzU3NyA3Ljc1NzY0IDEwLjc3NzEgNy45OTcxIDEwLjU2MTZMOC4wMTkzNSAxMC41NDA1WiIgZmlsbD0iIzMzMzMzMyIvPgo8L2c+Cjwvc3ZnPgo=) 50% no-repeat;width:16px;height:16px;transition:all .3s ease-in-out;display:inline-block}.dt-time-zone-select{border-radius:var(--radius);opacity:0;visibility:hidden;width:160px;z-index:var(--z-pop);padding:var(--spacing-size-small);background:#fff;height:200px;font-weight:400;transition:all .3s ease-in-out;position:absolute;bottom:10px;right:-170px;overflow:auto;box-shadow:0 6px 10px #00000029,0 1px 18px #0000003b}.dt-time-zone-select-title{font-size:var(--font-size-small);color:var(--color-text-secondary);padding:0 var(--spacing-size-small);line-height:24px}.dt-time-zone-item{height:30px;padding:0 var(--spacing-size-small);border-radius:var(--radius);cursor:pointer;align-items:center;line-height:30px;transition:all .3s ease-in-out;display:flex}.dt-time-zone-item:hover{background:var(--color-hover)}.dt-time-zone-item+.dt-time-zone-select-title{border-top:1px solid #0000001a}.dt-time-zone-mask{width:100%;height:100%;z-index:var(--z-mask);opacity:0;visibility:hidden;background:#ffffff4d;transition:all .3s ease-in-out;position:absolute;top:0;left:0}.dt-time-zone-select-show{background:var(--color-hover)}.dt-time-zone-select-show .dt-time-zone-icon{transform:rotate(180deg)}.dt-time-zone-select-show .dt-time-zone-select{opacity:1;visibility:visible;bottom:0}.dt-time-zone-select-show+.dt-time-zone-mask{opacity:1;visibility:visible}.dt-time-zone-item-icon{border:1px solid var(--color-text-primary);width:16px;height:16px;margin-right:var(--spacing-size);box-sizing:border-box;border-radius:10px;padding:2px}.dt-time-zone-item-icon:after{content:"";background:var(--color-text-primary);visibility:hidden;opacity:0;border-radius:8px;width:100%;height:100%;transition:all .3s ease-in-out;display:block}.dt-time-zone-select-active .dt-time-zone-item-icon:after{visibility:visible;opacity:1}.dt-month{justify-content:space-between;display:flex}.dt-month-year-sub{cursor:pointer;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxNiAxNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IiYjMjMxOyYjMTc0OyYjMTczOyYjMjI5OyYjMTY0OyYjMTgwOyYjMjMxOyYjMTg2OyYjMTkxOyYjMjMwOyYjMTU3OyYjMTYxOyI+CjxnIGlkPSJPdXRsaW5lZCI+CjxwYXRoIGQ9Ik05LjAzNjc1IDEuOTc5NzhDOS4yMzIwMSAxLjc4NDUyIDkuNTQ4NTkgMS43ODQ1MiA5Ljc0Mzg1IDEuOTc5NzhDOS45MzkxMiAyLjE3NTA0IDkuOTM5MTIgMi40OTE2MyA5Ljc0Mzg1IDIuNjg2ODlMMy44NzM3NyA4LjU1Njk3TDkuNjQ4MTEgMTQuMzMxM0M5Ljg0MzM3IDE0LjUyNjYgOS44NDMzNyAxNC44NDMxIDkuNjQ4MTEgMTUuMDM4NEM5LjQ1Mjg1IDE1LjIzMzcgOS4xMzYyNyAxNS4yMzM3IDguOTQxIDE1LjAzODRMMi44MTMxMiA4LjkxMDUzQzIuNjE3ODYgOC43MTUyNiAyLjYxNzg2IDguMzk4NjggMi44MTMxMiA4LjIwMzQyQzIuODI5MzUgOC4xODcxOSAyLjg0NjQyIDguMTcyMyAyLjg2NDE5IDguMTU4NzdDMi44Nzc3MyA4LjE0MDk5IDIuODkyNjIgOC4xMjM5MSAyLjkwODg2IDguMTA3NjdMOS4wMzY3NSAxLjk3OTc4WiIgZmlsbD0iIzMzMzMzMyIvPgo8cGF0aCBkPSJNMTMuMDM2NyAxLjk3OTc4QzEzLjIzMiAxLjc4NDUyIDEzLjU0ODYgMS43ODQ1MiAxMy43NDM5IDEuOTc5NzhDMTMuOTM5MSAyLjE3NTA0IDEzLjkzOTEgMi40OTE2MyAxMy43NDM5IDIuNjg2ODlMNy44NzM3OCA4LjU1Njk3TDEzLjY0ODEgMTQuMzMxM0MxMy44NDM0IDE0LjUyNjYgMTMuODQzNCAxNC44NDMxIDEzLjY0ODEgMTUuMDM4NEMxMy40NTI4IDE1LjIzMzcgMTMuMTM2MyAxNS4yMzM3IDEyLjk0MSAxNS4wMzg0TDYuODEzMTIgOC45MTA1M0M2LjYxNzg2IDguNzE1MjYgNi42MTc4NiA4LjM5ODY4IDYuODEzMTIgOC4yMDM0MkM2LjgyOTM1IDguMTg3MTkgNi44NDY0MiA4LjE3MjMgNi44NjQxOSA4LjE1ODc3QzYuODc3NzMgOC4xNDA5OSA2Ljg5MjYyIDguMTIzOTEgNi45MDg4NiA4LjEwNzY3TDEzLjAzNjcgMS45Nzk3OFoiIGZpbGw9IiMzMzMzMzMiLz4KPC9nPgo8cGF0aCBpZD0iT3V0bGluZWRfMiIgZD0iTTkuNzQzODUgMS45Nzk3OEM5LjU0ODU5IDEuNzg0NTIgOS4yMzIwMSAxLjc4NDUyIDkuMDM2NzUgMS45Nzk3OEwyLjkwODg2IDguMTA3NjdDMi44OTI2MiA4LjEyMzkxIDIuODc3NzMgOC4xNDA5OSAyLjg2NDE5IDguMTU4NzdDMi44NDY0MiA4LjE3MjMgMi44MjkzNSA4LjE4NzE5IDIuODEzMTIgOC4yMDM0MkMyLjYxNzg2IDguMzk4NjggMi42MTc4NiA4LjcxNTI2IDIuODEzMTIgOC45MTA1M0w4Ljk0MSAxNS4wMzg0QzkuMTM2MjcgMTUuMjMzNyA5LjQ1Mjg1IDE1LjIzMzcgOS42NDgxMSAxNS4wMzg0QzkuODQzMzcgMTQuODQzMSA5Ljg0MzM3IDE0LjUyNjYgOS42NDgxMSAxNC4zMzEzTDMuODczNzcgOC41NTY5N0w5Ljc0Mzg1IDIuNjg2ODlDOS45MzkxMiAyLjQ5MTYzIDkuOTM5MTIgMi4xNzUwNCA5Ljc0Mzg1IDEuOTc5NzhaIiBmaWxsPSIjMzMzMzMzIi8+CjwvZz4KPC9zdmc+Cg==) 50% no-repeat;width:16px;height:16px}.dt-month-sub{cursor:pointer;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxNiAxNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IiYjMjMxOyYjMTc0OyYjMTczOyYjMjI5OyYjMTY0OyYjMTgwOyYjMjMxOyYjMTg2OyYjMTkxOyYjMjMwOyYjMTU3OyYjMTYxOyI+CjxwYXRoIGlkPSJPdXRsaW5lZCIgZD0iTTExLjY4NjkgMS43MDI2MkMxMS40OTE2IDEuNTA3MzYgMTEuMTc1IDEuNTA3MzYgMTAuOTc5OCAxLjcwMjYyTDQuODUxODkgNy44MzA1MUM0LjgzNTY1IDcuODQ2NzUgNC44MjA3NiA3Ljg2MzgzIDQuODA3MjIgNy44ODE2MUM0Ljc4OTQ1IDcuODk1MTQgNC43NzIzOCA3LjkxMDAzIDQuNzU2MTUgNy45MjYyNkM0LjU2MDg5IDguMTIxNTIgNC41NjA4OSA4LjQzODEgNC43NTYxNSA4LjYzMzM2TDEwLjg4NCAxNC43NjEzQzExLjA3OTMgMTQuOTU2NSAxMS4zOTU5IDE0Ljk1NjUgMTEuNTkxMSAxNC43NjEzQzExLjc4NjQgMTQuNTY2IDExLjc4NjQgMTQuMjQ5NCAxMS41OTExIDE0LjA1NDFMNS44MTY4MSA4LjI3OTgxTDExLjY4NjkgMi40MDk3M0MxMS44ODIxIDIuMjE0NDcgMTEuODgyMSAxLjg5Nzg4IDExLjY4NjkgMS43MDI2MloiIGZpbGw9IiMzMzMzMzMiLz4KPC9nPgo8L3N2Zz4K) 50% no-repeat;width:16px;height:16px}.dt-month-add{cursor:pointer;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTciIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxNyAxNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IiYjMjMxOyYjMTc0OyYjMTczOyYjMjI5OyYjMTY0OyYjMTgwOyYjMjMxOyYjMTg2OyYjMTkxOyYjMjMwOyYjMTU3OyYjMTYxOyI+CjxwYXRoIGlkPSJPdXRsaW5lZCIgZD0iTTUuMjU2MTUgMS43MDI2MkM1LjQ1MTQxIDEuNTA3MzYgNS43Njc5OSAxLjUwNzM2IDUuOTYzMjYgMS43MDI2MkwxMi4wOTExIDcuODMwNTFDMTIuMTA3NCA3Ljg0Njc1IDEyLjEyMjMgNy44NjM4MyAxMi4xMzU4IDcuODgxNjFDMTIuMTUzNiA3Ljg5NTE0IDEyLjE3MDcgNy45MTAwMyAxMi4xODY5IDcuOTI2MjZDMTIuMzgyMSA4LjEyMTUyIDEyLjM4MjEgOC40MzgxIDEyLjE4NjkgOC42MzMzNkw2LjA1OSAxNC43NjEzQzUuODYzNzQgMTQuOTU2NSA1LjU0NzE2IDE0Ljk1NjUgNS4zNTE4OSAxNC43NjEzQzUuMTU2NjMgMTQuNTY2IDUuMTU2NjMgMTQuMjQ5NCA1LjM1MTg5IDE0LjA1NDFMMTEuMTI2MiA4LjI3OTgxTDUuMjU2MTUgMi40MDk3M0M1LjA2MDg5IDIuMjE0NDcgNS4wNjA4OSAxLjg5Nzg4IDUuMjU2MTUgMS43MDI2MloiIGZpbGw9IiMzMzMzMzMiLz4KPC9nPgo8L3N2Zz4K) 50% no-repeat;width:16px;height:16px}.dt-month-year-add{cursor:pointer;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTciIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxNyAxNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IiYjMjMxOyYjMTc0OyYjMTczOyYjMjI5OyYjMTY0OyYjMTgwOyYjMjMxOyYjMTg2OyYjMTkxOyYjMjMwOyYjMTU3OyYjMTYxOyI+CjxnIGlkPSJPdXRsaW5lZCI+CjxwYXRoIGQ9Ik03Ljk2MzI1IDEuNzAyNjJDNy43Njc5OSAxLjUwNzM2IDcuNDUxNCAxLjUwNzM2IDcuMjU2MTQgMS43MDI2MkM3LjA2MDg4IDEuODk3ODggNy4wNjA4OCAyLjIxNDQ3IDcuMjU2MTQgMi40MDk3M0wxMy4xMjYyIDguMjc5ODFMNy4zNTE4OSAxNC4wNTQxQzcuMTU2NjIgMTQuMjQ5NCA3LjE1NjYyIDE0LjU2NiA3LjM1MTg5IDE0Ljc2MTNDNy41NDcxNSAxNC45NTY1IDcuODYzNzMgMTQuOTU2NSA4LjA1ODk5IDE0Ljc2MTNMMTQuMTg2OSA4LjYzMzM2QzE0LjM4MjEgOC40MzgxIDE0LjM4MjEgOC4xMjE1MiAxNC4xODY5IDcuOTI2MjZDMTQuMTcwNiA3LjkxMDAzIDE0LjE1MzYgNy44OTUxNCAxNC4xMzU4IDcuODgxNjFDMTQuMTIyMyA3Ljg2MzgzIDE0LjEwNzQgNy44NDY3NSAxNC4wOTExIDcuODMwNTFMNy45NjMyNSAxLjcwMjYyWiIgZmlsbD0iIzMzMzMzMyIvPgo8cGF0aCBkPSJNMy45NjMyNSAxLjcwMjYyQzMuNzY3OTkgMS41MDczNiAzLjQ1MTQgMS41MDczNiAzLjI1NjE0IDEuNzAyNjJDMy4wNjA4OCAxLjg5Nzg4IDMuMDYwODggMi4yMTQ0NyAzLjI1NjE0IDIuNDA5NzNMOS4xMjYyMiA4LjI3OTgxTDMuMzUxODkgMTQuMDU0MUMzLjE1NjYyIDE0LjI0OTQgMy4xNTY2MiAxNC41NjYgMy4zNTE4OSAxNC43NjEzQzMuNTQ3MTUgMTQuOTU2NSAzLjg2MzczIDE0Ljk1NjUgNC4wNTg5OSAxNC43NjEzTDEwLjE4NjkgOC42MzMzNkMxMC4zODIxIDguNDM4MSAxMC4zODIxIDguMTIxNTIgMTAuMTg2OSA3LjkyNjI2QzEwLjE3MDYgNy45MTAwMyAxMC4xNTM2IDcuODk1MTQgMTAuMTM1OCA3Ljg4MTYxQzEwLjEyMjMgNy44NjM4MyAxMC4xMDc0IDcuODQ2NzUgMTAuMDkxMSA3LjgzMDUxTDMuOTYzMjUgMS43MDI2MloiIGZpbGw9IiMzMzMzMzMiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo=) 50% no-repeat;width:16px;height:16px}.dt-month-icon{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNSAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IiYjMjMxOyYjMTc0OyYjMTczOyYjMjI5OyYjMTY0OyYjMTgwOyYjMjI5OyYjMTYxOyYjMTcxOyYjMjI5OyYjMTMzOyYjMTMzOyI+CjxwYXRoIGlkPSJPdXRsaW5lZCIgZD0iTTguMDE5MzUgMTAuNTQwNUwxMS45ODA3IDYuMTQwMjNDMTIuMTk2MiA1LjkwMDc2IDEyLjE3NjggNS41MzE5MyAxMS45MzczIDUuMzE2NDFDMTEuODMwMiA1LjIyMDAxIDExLjY5MTIgNS4xNjY2NiAxMS41NDcxIDUuMTY2NjZIMy42NjY2N0MzLjM0NDUgNS4xNjY2NiAzLjA4MzMzIDUuNDI3ODMgMy4wODMzMyA1Ljc1QzMuMDgzMzMgNS44OTQxMSAzLjEzNjY4IDYuMDMzMTEgMy4yMzMwOCA2LjE0MDIzTDcuMTczMjggMTAuNTE4MkM3LjM4ODggMTAuNzU3NyA3Ljc1NzY0IDEwLjc3NzEgNy45OTcxIDEwLjU2MTZMOC4wMTkzNSAxMC41NDA1WiIgZmlsbD0iIzMzMzMzMyIvPgo8L2c+Cjwvc3ZnPgo=) 50% no-repeat;width:16px;height:16px;transition:all .3s ease-in-out}.dt-month-text{cursor:pointer;font-weight:bolder;display:flex;position:relative}.dt-month-sub-box,.dt-month-add-box{display:flex}.dt-month-select{border-radius:var(--radius);background:var(--color-bg);width:160px;height:254px;z-index:var(--z-pop);opacity:0;visibility:hidden;padding:var(--spacing-size);border:1px solid #0000001a;font-weight:400;transition:all .3s ease-in-out;display:flex;position:absolute;top:0;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 6px 10px #00000029,0 1px 18px #0000003b}.dt-month-select-li{flex:1;overflow:auto}.dt-month-select-li+.dt-month-select-li{margin-left:2px}.dt-month-item,.dt-year-item{text-align:center;cursor:pointer;border-radius:2px;height:30px;line-height:30px;transition:all .3s ease-in-out}.dt-month-item:hover,.dt-year-item:hover{background:var(--color-hover)}.dt-month-item+.dt-month-item,.dt-month-item+.dt-year-item,.dt-year-item+.dt-month-item,.dt-year-item+.dt-year-item{margin-top:2px}.dt-month-item-active{background:var(--color-primary-light);color:var(--color-primary)}.dt-month-mask{width:100%;height:100%;z-index:var(--z-mask);opacity:0;visibility:hidden;background:#ffffff4d;transition:all .3s ease-in-out;position:absolute;top:0;left:0}.dt-month-select-show .dt-month-select{opacity:1;visibility:visible;top:20px}.dt-month-select-show .dt-month-mask{opacity:1;visibility:visible}.dt-month-select-show .dt-month-icon{transform:rotate(180deg)}.dt-month-hide-right-m .dt-month-add,.dt-month-hide-left-m .dt-month-sub,.dt-year-hide-right-y .dt-month-year-add,.dt-year-hide-left-y .dt-month-year-sub{visibility:hidden}.dt-date-week{font-size:var(--font-size-small);color:var(--color-text-secondary);margin-top:var(--spacing-size-medium);display:flex}.dt-date-week>div{text-align:center;flex:1}.dt-date-content{flex-wrap:wrap;display:flex}.dt-data-item{cursor:pointer;text-align:center;width:40px;height:40px;padding:var(--spacing-size-small)0;box-sizing:border-box;line-height:32px;position:relative;overflow:hidden}.dt-data-item:hover .dt-data-circle{background:var(--color-hover);box-shadow:var(--shadow-hover);transform:scale(1.2)}.dt-data-item:active .dt-data-circle{box-shadow:var(--shadow-active);transform:scale(.98)}.dt-data-rect{height:100%;padding:0 var(--spacing-size-small)}.dt-data-circle{border-radius:20px;width:32px;height:32px;transition:all .3s ease-in-out;position:absolute;top:4px;left:4px;transform:scale(0)}.dt-data-text{position:relative}.dt-data-item-current .dt-data-circle{background:var(--color-primary-light);color:var(--color-primary);transform:scale(1)}.dt-data-item-start{color:#fff}.dt-data-item-start:hover .dt-data-circle{background:var(--color-primary)}.dt-data-item-start .dt-data-circle{background:var(--color-primary);transform:scale(1)}.dt-data-item-start .dt-data-rect{background:linear-gradient(to left,var(--color-primary-light)50%,transparent 50%)}.dt-data-item-active{color:#fff}.dt-data-item-active:hover .dt-data-circle{background:var(--color-primary)}.dt-data-item-active .dt-data-circle{background:var(--color-primary);transform:scale(1)}.dt-data-item-end{color:#fff}.dt-data-item-end:hover .dt-data-circle{background:var(--color-primary)}.dt-data-item-end .dt-data-circle{background:var(--color-primary);transform:scale(1)}.dt-data-item-end .dt-data-rect{background:linear-gradient(to right,var(--color-primary-light)50%,transparent 50%)}.dt-data-item-sel .dt-data-rect{background:var(--color-primary-light);color:var(--color-primary)}.dt-data-item-disabled{cursor:not-allowed;color:var(--color-text-disabled)}.dt-data-item-disabled:hover .dt-data-circle,.dt-data-item.dt-data-item-start.dt-data-item-end .dt-data-rect{background:0 0}.dt-time-body{position:relative}.dt-time-body-content{background:var(--color-surface);height:20px;margin-bottom:var(--spacing-size-medium);text-align:left;padding:0 var(--spacing-size-small);cursor:pointer;border:1px solid #0000001a;border-radius:4px;justify-content:space-between;align-items:center;line-height:20px;display:flex}.dt-time-icon{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNCAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IiYjMjMwOyYjMTUxOyYjMTgyOyYjMjMzOyYjMTUxOyYjMTgwOyI+CjxnIGlkPSJPdXRsaW5lZCI+CjxwYXRoIGQ9Ik03LjQzMzUgNC4yNDEwNkM3LjQwNDUzIDQuMDI3NTIgNy4yMjE0OCAzLjg2MjkzIDYuOTk5OTkgMy44NjI5M0M2Ljc1ODM3IDMuODYyOTMgNi41NjI0OSA0LjA1ODggNi41NjI0OSA0LjMwMDQzVjguMDgzMzJMNi41NjY5NCA4LjE0NTU5QzYuNTg0NTggOC4yNjgzOSA2LjY1Mzg2IDguMzc5MDkgNi43NTkwNCA4LjQ0ODQ5TDguOTI0MTkgOS44NzcxNEw4Ljk4MDc3IDkuOTA4NzhDOS4xNzQwNyA5Ljk5ODg5IDkuNDA5MzQgOS45MzYyNiA5LjUzMDMxIDkuNzUyOTJMOS41NjE5NiA5LjY5NjM0QzkuNjUyMDcgOS41MDMwNCA5LjU4OTQ0IDkuMjY3NzcgOS40MDYxIDkuMTQ2OEw3LjQzNzQ5IDcuODQ3MDdWNC4zMDA0M0w3LjQzMzUgNC4yNDEwNloiIGZpbGw9IiMzMzMzMzMiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02Ljk5OTk5IDEuNjY2NjZDMy43NzgzMyAxLjY2NjY2IDEuMTY2NjYgNC4yNzgzMyAxLjE2NjY2IDcuNDk5OTlDMS4xNjY2NiAxMC43MjE3IDMuNzc4MzMgMTMuMzMzMyA2Ljk5OTk5IDEzLjMzMzNDMTAuMjIxNyAxMy4zMzMzIDEyLjgzMzMgMTAuNzIxNyAxMi44MzMzIDcuNDk5OTlDMTIuODMzMyA0LjI3ODMzIDEwLjIyMTcgMS42NjY2NiA2Ljk5OTk5IDEuNjY2NjZaTTYuOTk5OTkgMi40ODA2MUM5Ljc3MjEyIDIuNDgwNjEgMTIuMDE5NCA0LjcyNzg2IDEyLjAxOTQgNy40OTk5OUMxMi4wMTk0IDEwLjI3MjEgOS43NzIxMiAxMi41MTk0IDYuOTk5OTkgMTIuNTE5NEM0LjIyNzg2IDEyLjUxOTQgMS45ODA2MSAxMC4yNzIxIDEuOTgwNjEgNy40OTk5OUMxLjk4MDYxIDQuNzI3ODYgNC4yMjc4NiAyLjQ4MDYxIDYuOTk5OTkgMi40ODA2MVoiIGZpbGw9IiMzMzMzMzMiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo=) 50% no-repeat;width:16px;height:16px;display:inline-block}.dt-time-select-box{visibility:hidden;opacity:0;background:var(--color-bg);border-radius:var(--radius);height:288px;box-shadow:var(--shadow);padding:var(--spacing-size-small);z-index:var(--z-pop);transition:all .3s ease-in-out;display:flex;position:absolute;bottom:34px}.dt-time-select-title{text-align:center;height:28px;line-height:28px}.dt-time-select-box-show .dt-time-select-box{opacity:1;visibility:visible;bottom:24px}.dt-time-select-box-show .dt-time-mask{opacity:1;visibility:visible}.dt-time-select-content{flex:1;display:flex;overflow:hidden}.dt-time-select-ul{height:100%;overflow:auto}.dt-time-select-ul+.dt-time-select-ul{margin-left:2px}.dt-time-select-body{flex-direction:column;display:flex}.dt-time-line{margin:0 var(--spacing-size-medium);background:#0000001a;width:1px}.dt-time-select-item{text-align:center;cursor:pointer;border-radius:4px;width:48px;height:30px;line-height:30px;transition:all .3s ease-in-out}.dt-time-select-item:hover{background:var(--color-hover)}.dt-time-select-item-active{background:var(--color-primary-light);color:var(--color-primary)}.dt-time-select-item-active:hover{background:var(--color-primary-light)}.dt-time-mask{width:100%;height:100%;z-index:var(--z-mask);opacity:0;visibility:hidden;background:#ffffff4d;transition:all .3s ease-in-out;position:absolute;top:0;left:0}.dt-time-select-millisecond{text-align:left}.dt-time-millisecond-title{margin:var(--spacing-size-small)0}.dt-time-millisecond-input{border-radius:var(--radius);height:30px;color:var(--color-text-secondary);box-sizing:border-box;border:1px solid #0003;outline:none;width:148px;padding:5px;font-size:14px}:root{--color-bg:#fff;--color-surface:#f5f6f7;--color-primary:#35bbc4;--color-primary-light:#d1eaed;--color-text-primary:#333;--color-text-secondary:#666;--color-text-disabled:#aaa;--color-hover:#0000000d;--font-fimily:"PingFang SC","Microsoft YaHei",sans-serif;--font-size:14px;--font-size-small:12px;--spacing-size-small:4px;--spacing-size:8px;--spacing-size-medium:16px;--radius:6px;--shadow:0px 6px 10px #00000029,0px 1px 18px #0000003b;--shadow-hover:0px 4px 8px #0000004d;--shadow-active:0px 8px 16px #0006;--z-base:100;--z-pop:120;--z-mask:110}.dt-show{visibility:visible;opacity:1}.dt-hidden{visibility:hidden;opacity:0}
@@ -0,0 +1,55 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>test</title>
7
+ <style>
8
+
9
+ .select {
10
+ position: relative;
11
+ }
12
+
13
+ </style>
14
+ <script type="module" src="/index.js"></script><link href="/index.css" rel="stylesheet"></head>
15
+ <body>
16
+ <div id="root"></div>
17
+ <button id="select" class="select">选择日期</button>
18
+ <button id="select-def" class="select">默认选中</button>
19
+
20
+ <script type="module">
21
+ // import dataTimeKit from './index.ts';
22
+ const dataTimeKit = await import('./index.js');
23
+
24
+ // event
25
+ dataTimeKit.open({
26
+ root: document.querySelector('#root'),
27
+ maxTime: "1990-01-01 00:00:00:000",
28
+ minTime: "2050-01-01 00:00:00:000",
29
+ startTime: "1990-01-01 00:00:00:000",
30
+ endTime: "2050-01-01 00:10:10:022",
31
+ timeZone: 4
32
+ });
33
+
34
+ document.querySelector('#select').addEventListener('click', async (e) => {
35
+ e.stopPropagation();
36
+ const data = await dataTimeKit.open({
37
+ root: e.target,
38
+ });
39
+ console.log(data);
40
+ });
41
+
42
+ document.querySelector('#select-def').addEventListener('click', async (e) => {
43
+ e.stopPropagation();
44
+ const data = await dataTimeKit.open({
45
+ root: e.target,
46
+ maxTime: "1990-01-01 00:00:00:000",
47
+ minTime: "2050-01-01 00:00:00:000",
48
+ startTime: "1990-01-01 00:00:00:000",
49
+ endTime: "2050-01-01 00:10:10:022",
50
+ });
51
+ console.log(data);
52
+ });
53
+ </script>
54
+ </body>
55
+ </html>
package/dist/index.js ADDED
@@ -0,0 +1,153 @@
1
+ var t={757:function(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNSAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IiYjMjMxOyYjMTc0OyYjMTczOyYjMjI5OyYjMTY0OyYjMTgwOyYjMjI5OyYjMTYxOyYjMTcxOyYjMjI5OyYjMTMzOyYjMTMzOyI+CjxwYXRoIGlkPSJPdXRsaW5lZCIgZD0iTTguMDE5MzUgMTAuNTQwNUwxMS45ODA3IDYuMTQwMjNDMTIuMTk2MiA1LjkwMDc2IDEyLjE3NjggNS41MzE5MyAxMS45MzczIDUuMzE2NDFDMTEuODMwMiA1LjIyMDAxIDExLjY5MTIgNS4xNjY2NiAxMS41NDcxIDUuMTY2NjZIMy42NjY2N0MzLjM0NDUgNS4xNjY2NiAzLjA4MzMzIDUuNDI3ODMgMy4wODMzMyA1Ljc1QzMuMDgzMzMgNS44OTQxMSAzLjEzNjY4IDYuMDMzMTEgMy4yMzMwOCA2LjE0MDIzTDcuMTczMjggMTAuNTE4MkM3LjM4ODggMTAuNzU3NyA3Ljc1NzY0IDEwLjc3NzEgNy45OTcxIDEwLjU2MTZMOC4wMTkzNSAxMC41NDA1WiIgZmlsbD0iIzMzMzMzMyIvPgo8L2c+Cjwvc3ZnPgo="},37:function(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxNiAxNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IiYjMjMxOyYjMTc0OyYjMTczOyYjMjI5OyYjMTY0OyYjMTgwOyYjMjMxOyYjMTg2OyYjMTkxOyYjMjMwOyYjMTU3OyYjMTYxOyI+CjxnIGlkPSJPdXRsaW5lZCI+CjxwYXRoIGQ9Ik05LjAzNjc1IDEuOTc5NzhDOS4yMzIwMSAxLjc4NDUyIDkuNTQ4NTkgMS43ODQ1MiA5Ljc0Mzg1IDEuOTc5NzhDOS45MzkxMiAyLjE3NTA0IDkuOTM5MTIgMi40OTE2MyA5Ljc0Mzg1IDIuNjg2ODlMMy44NzM3NyA4LjU1Njk3TDkuNjQ4MTEgMTQuMzMxM0M5Ljg0MzM3IDE0LjUyNjYgOS44NDMzNyAxNC44NDMxIDkuNjQ4MTEgMTUuMDM4NEM5LjQ1Mjg1IDE1LjIzMzcgOS4xMzYyNyAxNS4yMzM3IDguOTQxIDE1LjAzODRMMi44MTMxMiA4LjkxMDUzQzIuNjE3ODYgOC43MTUyNiAyLjYxNzg2IDguMzk4NjggMi44MTMxMiA4LjIwMzQyQzIuODI5MzUgOC4xODcxOSAyLjg0NjQyIDguMTcyMyAyLjg2NDE5IDguMTU4NzdDMi44Nzc3MyA4LjE0MDk5IDIuODkyNjIgOC4xMjM5MSAyLjkwODg2IDguMTA3NjdMOS4wMzY3NSAxLjk3OTc4WiIgZmlsbD0iIzMzMzMzMyIvPgo8cGF0aCBkPSJNMTMuMDM2NyAxLjk3OTc4QzEzLjIzMiAxLjc4NDUyIDEzLjU0ODYgMS43ODQ1MiAxMy43NDM5IDEuOTc5NzhDMTMuOTM5MSAyLjE3NTA0IDEzLjkzOTEgMi40OTE2MyAxMy43NDM5IDIuNjg2ODlMNy44NzM3OCA4LjU1Njk3TDEzLjY0ODEgMTQuMzMxM0MxMy44NDM0IDE0LjUyNjYgMTMuODQzNCAxNC44NDMxIDEzLjY0ODEgMTUuMDM4NEMxMy40NTI4IDE1LjIzMzcgMTMuMTM2MyAxNS4yMzM3IDEyLjk0MSAxNS4wMzg0TDYuODEzMTIgOC45MTA1M0M2LjYxNzg2IDguNzE1MjYgNi42MTc4NiA4LjM5ODY4IDYuODEzMTIgOC4yMDM0MkM2LjgyOTM1IDguMTg3MTkgNi44NDY0MiA4LjE3MjMgNi44NjQxOSA4LjE1ODc3QzYuODc3NzMgOC4xNDA5OSA2Ljg5MjYyIDguMTIzOTEgNi45MDg4NiA4LjEwNzY3TDEzLjAzNjcgMS45Nzk3OFoiIGZpbGw9IiMzMzMzMzMiLz4KPC9nPgo8cGF0aCBpZD0iT3V0bGluZWRfMiIgZD0iTTkuNzQzODUgMS45Nzk3OEM5LjU0ODU5IDEuNzg0NTIgOS4yMzIwMSAxLjc4NDUyIDkuMDM2NzUgMS45Nzk3OEwyLjkwODg2IDguMTA3NjdDMi44OTI2MiA4LjEyMzkxIDIuODc3NzMgOC4xNDA5OSAyLjg2NDE5IDguMTU4NzdDMi44NDY0MiA4LjE3MjMgMi44MjkzNSA4LjE4NzE5IDIuODEzMTIgOC4yMDM0MkMyLjYxNzg2IDguMzk4NjggMi42MTc4NiA4LjcxNTI2IDIuODEzMTIgOC45MTA1M0w4Ljk0MSAxNS4wMzg0QzkuMTM2MjcgMTUuMjMzNyA5LjQ1Mjg1IDE1LjIzMzcgOS42NDgxMSAxNS4wMzg0QzkuODQzMzcgMTQuODQzMSA5Ljg0MzM3IDE0LjUyNjYgOS42NDgxMSAxNC4zMzEzTDMuODczNzcgOC41NTY5N0w5Ljc0Mzg1IDIuNjg2ODlDOS45MzkxMiAyLjQ5MTYzIDkuOTM5MTIgMi4xNzUwNCA5Ljc0Mzg1IDEuOTc5NzhaIiBmaWxsPSIjMzMzMzMzIi8+CjwvZz4KPC9zdmc+Cg=="},592:function(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxNiAxNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IiYjMjMxOyYjMTc0OyYjMTczOyYjMjI5OyYjMTY0OyYjMTgwOyYjMjMxOyYjMTg2OyYjMTkxOyYjMjMwOyYjMTU3OyYjMTYxOyI+CjxwYXRoIGlkPSJPdXRsaW5lZCIgZD0iTTExLjY4NjkgMS43MDI2MkMxMS40OTE2IDEuNTA3MzYgMTEuMTc1IDEuNTA3MzYgMTAuOTc5OCAxLjcwMjYyTDQuODUxODkgNy44MzA1MUM0LjgzNTY1IDcuODQ2NzUgNC44MjA3NiA3Ljg2MzgzIDQuODA3MjIgNy44ODE2MUM0Ljc4OTQ1IDcuODk1MTQgNC43NzIzOCA3LjkxMDAzIDQuNzU2MTUgNy45MjYyNkM0LjU2MDg5IDguMTIxNTIgNC41NjA4OSA4LjQzODEgNC43NTYxNSA4LjYzMzM2TDEwLjg4NCAxNC43NjEzQzExLjA3OTMgMTQuOTU2NSAxMS4zOTU5IDE0Ljk1NjUgMTEuNTkxMSAxNC43NjEzQzExLjc4NjQgMTQuNTY2IDExLjc4NjQgMTQuMjQ5NCAxMS41OTExIDE0LjA1NDFMNS44MTY4MSA4LjI3OTgxTDExLjY4NjkgMi40MDk3M0MxMS44ODIxIDIuMjE0NDcgMTEuODgyMSAxLjg5Nzg4IDExLjY4NjkgMS43MDI2MloiIGZpbGw9IiMzMzMzMzMiLz4KPC9nPgo8L3N2Zz4K"},797:function(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTciIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxNyAxNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IiYjMjMxOyYjMTc0OyYjMTczOyYjMjI5OyYjMTY0OyYjMTgwOyYjMjMxOyYjMTg2OyYjMTkxOyYjMjMwOyYjMTU3OyYjMTYxOyI+CjxnIGlkPSJPdXRsaW5lZCI+CjxwYXRoIGQ9Ik03Ljk2MzI1IDEuNzAyNjJDNy43Njc5OSAxLjUwNzM2IDcuNDUxNCAxLjUwNzM2IDcuMjU2MTQgMS43MDI2MkM3LjA2MDg4IDEuODk3ODggNy4wNjA4OCAyLjIxNDQ3IDcuMjU2MTQgMi40MDk3M0wxMy4xMjYyIDguMjc5ODFMNy4zNTE4OSAxNC4wNTQxQzcuMTU2NjIgMTQuMjQ5NCA3LjE1NjYyIDE0LjU2NiA3LjM1MTg5IDE0Ljc2MTNDNy41NDcxNSAxNC45NTY1IDcuODYzNzMgMTQuOTU2NSA4LjA1ODk5IDE0Ljc2MTNMMTQuMTg2OSA4LjYzMzM2QzE0LjM4MjEgOC40MzgxIDE0LjM4MjEgOC4xMjE1MiAxNC4xODY5IDcuOTI2MjZDMTQuMTcwNiA3LjkxMDAzIDE0LjE1MzYgNy44OTUxNCAxNC4xMzU4IDcuODgxNjFDMTQuMTIyMyA3Ljg2MzgzIDE0LjEwNzQgNy44NDY3NSAxNC4wOTExIDcuODMwNTFMNy45NjMyNSAxLjcwMjYyWiIgZmlsbD0iIzMzMzMzMyIvPgo8cGF0aCBkPSJNMy45NjMyNSAxLjcwMjYyQzMuNzY3OTkgMS41MDczNiAzLjQ1MTQgMS41MDczNiAzLjI1NjE0IDEuNzAyNjJDMy4wNjA4OCAxLjg5Nzg4IDMuMDYwODggMi4yMTQ0NyAzLjI1NjE0IDIuNDA5NzNMOS4xMjYyMiA4LjI3OTgxTDMuMzUxODkgMTQuMDU0MUMzLjE1NjYyIDE0LjI0OTQgMy4xNTY2MiAxNC41NjYgMy4zNTE4OSAxNC43NjEzQzMuNTQ3MTUgMTQuOTU2NSAzLjg2MzczIDE0Ljk1NjUgNC4wNTg5OSAxNC43NjEzTDEwLjE4NjkgOC42MzMzNkMxMC4zODIxIDguNDM4MSAxMC4zODIxIDguMTIxNTIgMTAuMTg2OSA3LjkyNjI2QzEwLjE3MDYgNy45MTAwMyAxMC4xNTM2IDcuODk1MTQgMTAuMTM1OCA3Ljg4MTYxQzEwLjEyMjMgNy44NjM4MyAxMC4xMDc0IDcuODQ2NzUgMTAuMDkxMSA3LjgzMDUxTDMuOTYzMjUgMS43MDI2MloiIGZpbGw9IiMzMzMzMzMiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},937:function(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTciIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxNyAxNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IiYjMjMxOyYjMTc0OyYjMTczOyYjMjI5OyYjMTY0OyYjMTgwOyYjMjMxOyYjMTg2OyYjMTkxOyYjMjMwOyYjMTU3OyYjMTYxOyI+CjxwYXRoIGlkPSJPdXRsaW5lZCIgZD0iTTUuMjU2MTUgMS43MDI2MkM1LjQ1MTQxIDEuNTA3MzYgNS43Njc5OSAxLjUwNzM2IDUuOTYzMjYgMS43MDI2MkwxMi4wOTExIDcuODMwNTFDMTIuMTA3NCA3Ljg0Njc1IDEyLjEyMjMgNy44NjM4MyAxMi4xMzU4IDcuODgxNjFDMTIuMTUzNiA3Ljg5NTE0IDEyLjE3MDcgNy45MTAwMyAxMi4xODY5IDcuOTI2MjZDMTIuMzgyMSA4LjEyMTUyIDEyLjM4MjEgOC40MzgxIDEyLjE4NjkgOC42MzMzNkw2LjA1OSAxNC43NjEzQzUuODYzNzQgMTQuOTU2NSA1LjU0NzE2IDE0Ljk1NjUgNS4zNTE4OSAxNC43NjEzQzUuMTU2NjMgMTQuNTY2IDUuMTU2NjMgMTQuMjQ5NCA1LjM1MTg5IDE0LjA1NDFMMTEuMTI2MiA4LjI3OTgxTDUuMjU2MTUgMi40MDk3M0M1LjA2MDg5IDIuMjE0NDcgNS4wNjA4OSAxLjg5Nzg4IDUuMjU2MTUgMS43MDI2MloiIGZpbGw9IiMzMzMzMzMiLz4KPC9nPgo8L3N2Zz4K"},368:function(t){t.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNCAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IiYjMjMwOyYjMTUxOyYjMTgyOyYjMjMzOyYjMTUxOyYjMTgwOyI+CjxnIGlkPSJPdXRsaW5lZCI+CjxwYXRoIGQ9Ik03LjQzMzUgNC4yNDEwNkM3LjQwNDUzIDQuMDI3NTIgNy4yMjE0OCAzLjg2MjkzIDYuOTk5OTkgMy44NjI5M0M2Ljc1ODM3IDMuODYyOTMgNi41NjI0OSA0LjA1ODggNi41NjI0OSA0LjMwMDQzVjguMDgzMzJMNi41NjY5NCA4LjE0NTU5QzYuNTg0NTggOC4yNjgzOSA2LjY1Mzg2IDguMzc5MDkgNi43NTkwNCA4LjQ0ODQ5TDguOTI0MTkgOS44NzcxNEw4Ljk4MDc3IDkuOTA4NzhDOS4xNzQwNyA5Ljk5ODg5IDkuNDA5MzQgOS45MzYyNiA5LjUzMDMxIDkuNzUyOTJMOS41NjE5NiA5LjY5NjM0QzkuNjUyMDcgOS41MDMwNCA5LjU4OTQ0IDkuMjY3NzcgOS40MDYxIDkuMTQ2OEw3LjQzNzQ5IDcuODQ3MDdWNC4zMDA0M0w3LjQzMzUgNC4yNDEwNloiIGZpbGw9IiMzMzMzMzMiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02Ljk5OTk5IDEuNjY2NjZDMy43NzgzMyAxLjY2NjY2IDEuMTY2NjYgNC4yNzgzMyAxLjE2NjY2IDcuNDk5OTlDMS4xNjY2NiAxMC43MjE3IDMuNzc4MzMgMTMuMzMzMyA2Ljk5OTk5IDEzLjMzMzNDMTAuMjIxNyAxMy4zMzMzIDEyLjgzMzMgMTAuNzIxNyAxMi44MzMzIDcuNDk5OTlDMTIuODMzMyA0LjI3ODMzIDEwLjIyMTcgMS42NjY2NiA2Ljk5OTk5IDEuNjY2NjZaTTYuOTk5OTkgMi40ODA2MUM5Ljc3MjEyIDIuNDgwNjEgMTIuMDE5NCA0LjcyNzg2IDEyLjAxOTQgNy40OTk5OUMxMi4wMTk0IDEwLjI3MjEgOS43NzIxMiAxMi41MTk0IDYuOTk5OTkgMTIuNTE5NEM0LjIyNzg2IDEyLjUxOTQgMS45ODA2MSAxMC4yNzIxIDEuOTgwNjEgNy40OTk5OUMxLjk4MDYxIDQuNzI3ODYgNC4yMjc4NiAyLjQ4MDYxIDYuOTk5OTkgMi40ODA2MVoiIGZpbGw9IiMzMzMzMzMiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo="},468:function(t,e,a){t.exports={}},803:function(t,e,a){t.exports={}},611:function(t,e,a){t.exports={}},837:function(t,e,a){t.exports={}},406:function(t,e,a){t.exports={}},276:function(t,e,a){t.exports={}}},e={};function a(i){var n=e[i];if(void 0!==n)return n.exports;var d=e[i]={exports:{}};return t[i](d,d.exports,a),d.exports}a.m=t,a.d=function(t,e){for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.k=function(t){return""+t+".css"},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.p="/";var i={};(()=>{a.d(i,{b:()=>w});var t={};a.r(t),a.d(t,{create:()=>M,updateData:()=>l});var e={};a.r(e),a.d(e,{create:()=>c,updateData:()=>u});var n={};a.r(n),a.d(n,{create:()=>g,updateData:()=>T});var d={};a.r(d),a.d(d,{create:()=>N,updateData:()=>L}),a(468),a(837);let s={all:null,today:function(){let t=new Date;return r(t,t)}(),yesterday:function(){let t=new Date;return r(new Date(t.getFullYear(),t.getMonth(),t.getDate()-1),new Date(t.getFullYear(),t.getMonth(),t.getDate()-1))}(),week:function(){let t=new Date;return r(new Date(t.getFullYear(),t.getMonth(),t.getDate()-t.getDay()+1),new Date(t.getFullYear(),t.getMonth(),t.getDate()-t.getDay()+7))}(),lastWeek:function(){let t=new Date;return r(new Date(t.getFullYear(),t.getMonth(),t.getDate()-t.getDay()+1),new Date(t.getFullYear(),t.getMonth(),t.getDate()-t.getDay()+7))}(),last7Days:function(){let t=new Date;return r(new Date(t.getFullYear(),t.getMonth(),t.getDate()-6),new Date(t.getFullYear(),t.getMonth(),t.getDate()))}(),month:function(){let t=new Date;return r(new Date(t.getFullYear(),t.getMonth(),1),new Date(t.getFullYear(),t.getMonth()+1,0))}(),last30Days:function(){let t=new Date;return r(new Date(t.getFullYear(),t.getMonth(),t.getDate()-29),new Date(t.getFullYear(),t.getMonth(),t.getDate()))}(),last180Days:function(){let t=new Date;return r(new Date(t.getFullYear(),t.getMonth(),t.getDate()-179),new Date(t.getFullYear(),t.getMonth(),t.getDate()))}(),last6Month:function(){let t=new Date;return r(new Date(t.getFullYear(),t.getMonth()-5,1),new Date(t.getFullYear(),t.getMonth()+1,0))}(),year:function(){let t=new Date;return r(new Date(t.getFullYear(),0,1),new Date(t.getFullYear()+1,0,0))}()};function M(t){var e,a;let i=document.createElement("div");return i.classList.add("dt-quick"),i.innerHTML=(e=t,`
2
+ <div class="dt-quick-item" data-limit="all">All</div>
3
+ <div class="dt-quick-item" data-limit="today">Today</div>
4
+ <div class="dt-quick-item" data-limit="yesterday">Yesterday</div>
5
+ <div class="dt-quick-item" data-limit="week">This Week</div>
6
+ <div class="dt-quick-item" data-limit="lastWeek">Last Week</div>
7
+ <div class="dt-quick-item" data-limit="last7Days">Last 7 Days</div>
8
+ <div class="dt-quick-item" data-limit="month">This Month</div>
9
+ <div class="dt-quick-item" data-limit="last30Days">Last 30 Days</div>
10
+ <div class="dt-quick-item" data-limit="last180Days">Last 180 Days</div>
11
+ <div class="dt-quick-item" data-limit="last6Month">Last 6 Month</div>
12
+ <div class="dt-quick-item" data-limit="year">This Year</div>
13
+ <div class="dt-time-zone">
14
+ <div class="dt-time-zone-text">${o(e)}</div>
15
+ <div class="dt-time-zone-icon"></div>
16
+ <div class="dt-time-zone-select">
17
+ ${function(t){let e=-new Date().getTimezoneOffset()/60,a='<div class="dt-time-zone-select-title">Recommend</div>';e>=0?a+=`<div class="dt-time-zone-item${t.timeZone===e?" dt-time-zone-select-active":""}"" data-timezone="${e}">
18
+ <span class="dt-time-zone-item-icon"></span><span>UTC+${e}</span>
19
+ </div>`:a+=`<div class="dt-time-zone-item${2===t.timeZone?" dt-time-zone-select-active":""}"" data-timezone="${e}">
20
+ <span class="dt-time-zone-item-icon"></span><span>UTC${e}</span>
21
+ </div>`,a+=`<div class="dt-time-zone-item" data-timezone="2">
22
+ <span class="dt-time-zone-item-icon"></span><span>UTC+2</span>
23
+ </div><div class="dt-time-zone-select-title">Timezone</div>`;for(let i=0;i<=12;i++)i!==e&&2!==i&&(a+=`<div class="dt-time-zone-item${i===t.timeZone?" dt-time-zone-select-active":""}" data-timezone="${i}">
24
+ <span class="dt-time-zone-item-icon"></span>
25
+ <span>UTC+${i}</span>
26
+ </div>`);for(let i=12;i>0;i--)i!==e&&(a+=`<div class="dt-time-zone-item${i===t.timeZone?" dt-time-zone-select-active":""}" data-timezone="-${i}">
27
+ <span class="dt-time-zone-item-icon"></span><span>UTC-${i}</span>
28
+ </div>`);return a}(e)}
29
+ </div>
30
+ </div>
31
+ <div class="dt-time-zone-mask"></div>
32
+ `),s.all={startDate:(a=t).minDate,startTime:a.minTime,endDate:a.maxDate,endTime:a.maxTime},i.addEventListener("click",e=>{var a,n,d,M,o,l;let r=e.target;if(r.classList.contains("dt-quick-item")){null===(n=r.parentElement)||void 0===n||null===(a=n.querySelector(".dt-quick-item-active"))||void 0===a||a.classList.remove("dt-quick-item-active"),r.classList.add("dt-quick-item-active"),function(t,e){if(!s[t])return;e.startDate=s[t].startDate,e.startTime=s[t].startTime,e.endDate=s[t].endDate,e.endTime=s[t].endTime,e.startDateShow=e.startDate;let a=new Date(`${e.endDate.year}-${e.endDate.month}-${e.endDate.date}`),i=new Date(`${e.startDate.year}-${e.startDate.month}-${e.startDate.date}`);a.getFullYear()===i.getFullYear()&&a.getMonth()==i.getMonth()&&a.setMonth(a.getMonth()+1),e.endDateShow={...e.endDate,year:a.getFullYear(),month:a.getMonth()+1}}(r.getAttribute("data-limit"),t);return}if(r.classList.contains("dt-time-zone")||r.classList.contains("dt-time-zone-text")||r.classList.contains("dt-time-zone-icon")){null===(d=i.querySelector(".dt-time-zone"))||void 0===d||d.classList.add("dt-time-zone-select-show");return}if(r.classList.contains("dt-time-zone-mask")){null===(M=i.querySelector(".dt-time-zone"))||void 0===M||M.classList.remove("dt-time-zone-select-show");return}let c=r.parentElement,D=r;if((null==c?void 0:c.classList.contains("dt-time-zone-item"))&&(D=c),D.classList.contains("dt-time-zone-item")){null===(o=i.querySelector(".dt-time-zone-select-active"))||void 0===o||o.classList.remove("dt-time-zone-select-active"),D.classList.add("dt-time-zone-select-active"),t.timeZone=Number(D.getAttribute("data-timezone")),null===(l=i.querySelector(".dt-time-zone"))||void 0===l||l.classList.remove("dt-time-zone-select-show");return}}),i}function o(t){return t.timeZone>=0?`
33
+ Timezone: UTC+${t.timeZone}
34
+ `:`
35
+ Timezone: UTC${t.timeZone}
36
+ `}function l(t,e){t.querySelector(".dt-time-zone-text").innerHTML=o(e)}function r(t,e){return{startDate:{year:t.getFullYear(),month:t.getMonth()+1,date:t.getDate()},startTime:{hour:0,minute:0,second:0,millisecond:0},endDate:{year:e.getFullYear(),month:e.getMonth()+1,date:e.getDate()},endTime:{hour:23,minute:59,second:59,millisecond:999}}}function c(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"start",a=document.createElement("div");return a.classList.add(...m(t,e)),a.setAttribute("data-status",e),a.innerHTML=function(t,e){let a="start"===e?"startDateShow":"endDateShow";return`
37
+ <div class="dt-month-sub-box">
38
+ <div class="dt-month-year-sub"></div>
39
+ <div class="dt-month-sub"></div>
40
+ </div>
41
+ <div class="dt-month-text">
42
+
43
+
44
+ <div class="dt-month-title">${t[a].month}/${t[a].year}</div>
45
+ <div class="dt-month-icon"></div>
46
+ <div class="dt-month-select">
47
+ ${D(t,e)}
48
+ </div>
49
+ </div>
50
+ <div class="dt-month-add-box">
51
+ <div class="dt-month-add"></div>
52
+ <div class="dt-month-year-add"></div>
53
+ </div>
54
+ <div class="dt-month-mask"></div>
55
+ `}(t,e),a.addEventListener("click",i=>{var n,d,s;let M=i.target;if(M.classList.contains("dt-month-year-sub")){let a="start"===e?"startDateShow":"endDateShow";t[a]={...t[a],year:t[a].year-1};return}if(M.classList.contains("dt-month-year-add")){let a="start"===e?"startDateShow":"endDateShow";t[a]={...t[a],year:t[a].year+1};return}if(M.classList.contains("dt-month-sub")){let a="start"===e?"startDateShow":"endDateShow",i=new Date(`${t[a].year}-${t[a].month}-${t[a].date}`);i.setMonth(i.getMonth()-1),t[a]={year:i.getFullYear(),month:i.getMonth()+1,date:i.getDate()};return}if(M.classList.contains("dt-month-add")){let a="start"===e?"startDateShow":"endDateShow",i=new Date(`${t[a].year}-${t[a].month}-${t[a].date}`);i.setMonth(i.getMonth()+1),t[a]={year:i.getFullYear(),month:i.getMonth()+1,date:i.getDate()};return}if(M.classList.contains("dt-month-text")||(null===(n=M.parentElement)||void 0===n?void 0:n.classList.contains("dt-month-text"))){a.querySelector(".dt-month-select").innerHTML=D(t,e),a.classList.add("dt-month-select-show"),setTimeout(()=>{a.querySelectorAll(".dt-month-item-active").forEach(t=>{t.scrollIntoView({block:"start",inline:"center",behavior:"smooth"})})},200);return}if(M.classList.contains("dt-month-mask")){a.classList.remove("dt-month-select-show");return}if(M.classList.contains("dt-year-item")){let a="start"===e?"startDateShow":"endDateShow";t[a]={...t[a],year:parseInt(M.getAttribute("data-year"))},null===(d=M.parentElement.querySelector(".dt-month-item-active"))||void 0===d||d.classList.remove("dt-month-item-active"),M.classList.add("dt-month-item-active"),M.scrollIntoView({block:"start",inline:"center",behavior:"smooth"});return}if(M.classList.contains("dt-month-item")){let a="start"===e?"startDateShow":"endDateShow";t[a]={...t[a],month:parseInt(M.getAttribute("data-month"))},null===(s=M.parentElement.querySelector(".dt-month-item-active"))||void 0===s||s.classList.remove("dt-month-item-active"),M.classList.add("dt-month-item-active"),M.scrollIntoView({block:"start",inline:"center",behavior:"smooth"});return}}),a}function D(t,e){let a="start"===e?"startDateShow":"endDateShow",i=t[a].year,n=t[a].month,d="";for(let a=1;a<=12;a++){let s=["dt-month-item"];a===n&&s.push("dt-month-item-active"),"start"===e&&(i===t.maxDate.year&&a>t.maxDate.month&&s.push("dt-month-item-disabled"),i===t.minDate.year&&a<t.minDate.month&&s.push("dt-month-item-disabled"),i<t.minDate.year&&s.push("dt-month-item-disabled"),i>t.maxDate.year&&s.push("dt-month-item-disabled")),"end"===e&&(i===t.maxDate.year&&a>t.maxDate.month&&s.push("dt-month-item-disabled"),i===t.minDate.year&&a<t.minDate.month&&s.push("dt-month-item-disabled"),i<t.minDate.year&&s.push("dt-month-item-disabled"),i>t.maxDate.year&&s.push("dt-month-item-disabled")),d+=`
56
+ <div class="${s.join(" ")}" data-month="${a}">${a}</div>
57
+ `}let s="";for(let a=t.maxDate.year;a>=t.minDate.year;a--){let n=["dt-month-item"];a===i&&n.push("dt-month-item-active"),"start"===e&&(i===t.maxDate.year&&a>t.maxDate.month&&n.push("dt-month-item-disabled"),i===t.minDate.year&&a<t.minDate.month&&n.push("dt-month-item-disabled"),i<t.minDate.year&&n.push("dt-month-item-disabled"),i>t.maxDate.year&&n.push("dt-month-item-disabled")),"end"===e&&(i===t.maxDate.year&&a>t.maxDate.month&&n.push("dt-month-item-disabled"),i===t.minDate.year&&a<t.minDate.month&&n.push("dt-month-item-disabled"),i<t.minDate.year&&n.push("dt-month-item-disabled"),i>t.maxDate.year&&n.push("dt-month-item-disabled")),s+=`
58
+ <div class="dt-year-item ${n.join(" ")}" data-year="${a}">${a}</div>
59
+ `}return`
60
+ <div class="dt-month-select-li">
61
+ ${d}
62
+ </div>
63
+ <div class="dt-month-select-li">
64
+ ${s}
65
+ </div>
66
+ `}function u(t,e){let a=t.getAttribute("data-status"),i="start"===a?"startDateShow":"endDateShow";t.querySelector(".dt-month-title").innerHTML=`${e[i].month}/${e[i].year}`,t.className=[...m(e,a),t.classList.contains("dt-month-select-show")?"dt-month-select-show":""].join(" ")}function m(t,e){let a=["dt-month"],i=new Date(`${t.startDateShow.year}-${t.startDateShow.month}`),n=new Date(`${t.endDateShow.year}-${t.endDateShow.month}`);return i.setMonth(i.getMonth()+1),i.getTime()>=n.getTime()&&a.push("start"===e?"dt-month-hide-right-m":"dt-month-hide-left-m"),(i=new Date(`${t.startDateShow.year}-${t.startDateShow.month}`)).setFullYear(i.getFullYear()+1),i.getTime()>=n.getTime()&&a.push("start"===e?"dt-year-hide-right-y":"dt-year-hide-left-y"),a}function g(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"start",a=document.createElement("div");return a.classList.add("dt-time-date"),a.setAttribute("data-status",e),a.innerHTML=j(t,e),a.addEventListener("click",e=>{let a=e.target;if(a.classList.contains("dt-data-item")||a.classList.contains("dt-data-rect")||a.classList.contains("dt-data-circle")||a.classList.contains("dt-data-text")){if(a.classList.contains("dt-data-item-disabled"))return;let e=new Date(a.getAttribute("data-date")),i={year:e.getFullYear(),month:e.getMonth()+1,date:e.getDate()};if(t.startDate.year&&!t.endDate.year){if(new Date(`${t.startDate.year}-${t.startDate.month}-${t.startDate.date}`).getTime()>e.getTime()){t.endDate=t.startDate,t.startDate=i;return}return t.endDate=i}if(t.moveDate.year){t.moveDate={year:0,month:0,date:0};return}return t.moveDate=i,t.startDate=i,void(t.endDate={year:0,month:0,date:0})}}),a.addEventListener("mousemove",e=>{let a=e.target;if(a.classList.contains("dt-data-item")||a.classList.contains("dt-data-rect")||a.classList.contains("dt-data-circle")||a.classList.contains("dt-data-text")){if(a.classList.contains("dt-data-item-disabled"))return;let e=t.moveDate;if(!e.year)return;let i=new Date(a.getAttribute("data-date")),n={year:i.getFullYear(),month:i.getMonth()+1,date:i.getDate()};if(new Date(`${e.year}-${e.month}-${e.date}`).getTime()>i.getTime()){t.endDate=e,t.startDate=n;return}t.startDate=e,t.endDate=n;return}}),a}function j(t,e){let a=null;"start"!==e||t.startDateShow.year||(a=new Date),"start"===e&&t.startDateShow.year&&(a=new Date(`${t.startDateShow.year}-${t.startDateShow.month}-${t.startDateShow.date}`)),"end"!==e||t.endDateShow.year||(t.startDateShow.year?(a=new Date(`${t.startDateShow.year}-${t.startDateShow.month}-${t.startDateShow.date}`)).setMonth(a.getMonth()+1):(a=new Date).setMonth(a.getMonth()+1)),"end"===e&&t.endDateShow.year&&(a=new Date(`${t.endDateShow.year}-${t.endDateShow.month}-${t.endDateShow.date}`));let i="";return a||(a=new Date),i=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Date,a=e.getMonth()+1,i=new Date(e.getFullYear(),a,0).getDate(),n=new Date(e.getFullYear(),a-1,0).getDate(),d=new Date(e.getFullYear(),a-1,1).getDay(),s=new Date,M=`${s.getFullYear()}-${s.getMonth()+1}-${s.getDate()}`,o="";for(let t=n-d;t<n;t++)o+=`
67
+ <div class="dt-data-item dt-data-item-disabled">
68
+ <div class="dt-data-rect dt-data-item-disabled">
69
+ <div class="dt-data-circle dt-data-item-disabled"></div>
70
+ <div class="dt-data-text dt-data-item-disabled">${t+1}</div>
71
+ </div>
72
+ </div>
73
+ `;let l=`${t.startDate.year}-${t.startDate.month}-${t.startDate.date}`,r=`${t.endDate.year}-${t.endDate.month}-${t.endDate.date}`;for(let n=1;n<=i;n++){let i=["dt-data-item"],d=`${e.getFullYear()}-${a}-${n}`;M===d&&i.push("dt-data-item-current"),t.startDate.year&&t.endDate.year&&(new Date(l)<new Date(d)&&new Date(r)>new Date(d)&&i.push("dt-data-item-sel"),l===d&&i.push("dt-data-item-start"),r===d&&i.push("dt-data-item-end")),l===d&&i.push("dt-data-item-active"),o+=`
74
+ <div class="${i.join(" ")}" data-date="${d}">
75
+ <div class="dt-data-rect" data-date="${d}">
76
+ <div class="dt-data-circle" data-date="${d}"></div>
77
+ <div class="dt-data-text" data-date="${d}">${n}</div>
78
+ </div>
79
+ </div>
80
+ `}for(let t=1;t<=42-d-i;t++)o+=`
81
+ <div class="dt-data-item dt-data-item-disabled">
82
+ <div class="dt-data-rect dt-data-item-disabled">
83
+ <div class="dt-data-circle dt-data-item-disabled"></div>
84
+ <div class="dt-data-text dt-data-item-disabled">${t}</div>
85
+ </div>
86
+ </div>
87
+ `;return o}(t,a),`
88
+ <div class="dt-date-week">
89
+ <div>Sun</div>
90
+ <div>Mon</div>
91
+ <div>Tue</div>
92
+ <div>Wed</div>
93
+ <div>Thu</div>
94
+ <div>Fri</div>
95
+ <div>Sat</div>
96
+ </div>
97
+ <div class="dt-date-content" data-date="${null==a?void 0:a.getFullYear()}-${(null==a?void 0:a.getMonth())+1}">
98
+ ${i}
99
+ </div>
100
+ `}function T(t,e){t.innerHTML=j(e,t.getAttribute("data-status"))}function N(t){let e=document.createElement("div");return e.classList.add("dt-time"),e.innerHTML=y(t),e.addEventListener("click",a=>{let i=a.target;if(i.classList.contains("dt-time-select-item")){var n,d;let e=i.getAttribute("data-status"),a=i.getAttribute("data-hour"),s=i.getAttribute("data-minute"),M=i.getAttribute("data-second"),o="start"===e?"startTime":"endTime";t[o]={...t[o],hour:a?Number(a):t[o].hour,minute:s?Number(s):t[o].minute,second:M?Number(M):t[o].second},null===(d=i.parentElement)||void 0===d||null===(n=d.querySelector(".dt-time-select-item-active"))||void 0===n||n.classList.remove("dt-time-select-item-active"),i.classList.add("dt-time-select-item-active"),i.scrollIntoView({block:"start",inline:"center",behavior:"smooth"});return}if(i.classList.contains("dt-time-mask")){e.classList.remove("dt-time-select-box-show");return}!e.classList.contains("dt-time-select-box-show")&&(e.innerHTML=y(t),e.classList.add("dt-time-select-box-show"),setTimeout(()=>{e.querySelectorAll(".dt-time-select-item-active").forEach(t=>{t.scrollIntoView({block:"start",inline:"center",behavior:"smooth"})})},200))}),e.addEventListener("input",e=>{let a=e.target;if(a.classList.contains("dt-time-millisecond-input")){let e=(a.getAttribute("data-status"),"startTime"),i=a.value;if(isNaN(Number(i))){a.value=t[e].millisecond.toString().padStart(3,"0");return}t[e]={...t[e],millisecond:Number(i)};return}}),e}function y(t){return`
101
+ <div class="dt-time-body">
102
+ <div class="dt-time-body-content">
103
+ <span class="dt-time-string">${I(t)}</span>
104
+ <span class="dt-time-icon"></span>
105
+
106
+ </div>
107
+
108
+ <div class="dt-time-select-box">
109
+ ${z(t,"start")}
110
+ <div class="dt-time-line"></div>
111
+ ${z(t,"end")}
112
+ </div>
113
+ </div>
114
+ <div class="dt-time-mask"></div>
115
+ `}function z(t,e){let a="start"===e?t.startTime:t.endTime,i="";for(let t=0;t<24;t++)i+=`<div data-status="${e}" class="dt-time-select-item ${a.hour===t?"dt-time-select-item-active":""}" data-hour="${t}">${String(t).padStart(2,"0")}</div>`;let n="",d="";for(let t=0;t<60;t++)n+=`<div data-status="${e}" class="dt-time-select-item ${a.minute===t?"dt-time-select-item-active":""}" data-minute="${t}">${String(t).padStart(2,"0")}</div>`,d+=`<div data-status="${e}" class="dt-time-select-item ${a.second===t?"dt-time-select-item-active":""}" data-second="${t}">${String(t).padStart(2,"0")}</div>`;return`
116
+ <div class="dt-time-select-body">
117
+ <div class="dt-time-select-title">${"start"===e?"Start time":"End time"}</div>
118
+ <div class="dt-time-select-content">
119
+ <div class="dt-time-select-ul">
120
+ ${i}
121
+ </div>
122
+ <div class="dt-time-select-ul">
123
+ ${n}
124
+ </div>
125
+ <div class="dt-time-select-ul">
126
+ ${d}
127
+ </div>
128
+ </div>
129
+ <div class="dt-time-select-millisecond">
130
+ <div>${"start"===e?"Start Millisecond":"End Mnllisecond"}</div>
131
+ <input type="text"
132
+ data-status="${e}"
133
+ value="${a.millisecond.toString().padStart(3,"0")}"
134
+ class="dt-time-millisecond-input"
135
+ maxlength="3"
136
+
137
+ />
138
+ </div>
139
+ </div>
140
+
141
+ `}function I(t){return`${h(t.startDate)} ${v(t.startTime)} - ${h(t.endDate)} ${v(t.endTime)}`}function h(t){return`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.date).padStart(2,"0")}`}function v(t){return`${String(t.hour).padStart(2,"0")}:${String(t.minute).padStart(2,"0")}:${String(t.second).padStart(2,"0")}:${String(t.millisecond).padStart(3,"0")}`}function L(t,e){t.querySelector(".dt-time-string").innerHTML=I(e)}function O(t){t.classList.remove("dt-show"),setTimeout(()=>{t.parentElement.removeChild(t)},350)}async function x(a,i){let{root:s}=a;return new Promise((a,o)=>{var l;let r;let D=[];if(s.querySelector(".dt-box"))return o("Date time picker has been created");let u=(l=()=>{console.log("render"),D.forEach(t=>{t.component.updateData(t.ele,m)})},function(){clearTimeout(r),r=setTimeout(()=>{l()},10)}),m=new Proxy(i,{set(t,e,a){let i=!1;if("object"==typeof t[e]){for(let n in t[e])if(t[e][n]!==a[n]){i=!0;break}}else t[e]!==a&&(i=!0);return!i||(t[e]=a,u(),!0)}}),j=document.createElement("div");j.classList.add("dt-box"),j.innerHTML=`
142
+ <div class="dt-content">
143
+ <div class="dt-date-box">
144
+ <div class="dt-start dt-data-body"></div>
145
+ <div class="dt-end dt-data-body"></div>
146
+ </div>
147
+ <div class="dt-time-box"></div>
148
+ <div class="dt-footer">
149
+ <button class="dt-button dt-button-cancel">Cancel</button>
150
+ <button class="dt-button dt-button-primary">Done</button>
151
+ </div>
152
+ </div>
153
+ `,s.appendChild(j);let T=s.getBoundingClientRect();j.style.top=`${T.height+5}px`;let y=M(m);j.insertBefore(y,j.querySelector(".dt-content")),D.push({ele:y,component:t});let z=c(m,"start");j.querySelector(".dt-start").appendChild(z),D.push({ele:z,component:e});let I=g(m,"start");j.querySelector(".dt-start").appendChild(I),D.push({ele:I,component:n});let h=c(m,"end");j.querySelector(".dt-end").appendChild(h),D.push({ele:h,component:e});let v=g(m,"end");j.querySelector(".dt-end").appendChild(v),D.push({ele:v,component:n});let L=N(m);function x(){document.removeEventListener("click",w),j.removeEventListener("click",A)}function w(){x(),O(j),o("cancel")}function A(t){t.stopPropagation();let e=t.target;e.classList.contains("dt-button-cancel")&&w(),e.classList.contains("dt-button-primary")&&function(){x(),O(j);let t=`${m.startDate.year}-${m.startDate.month}-${m.startDate.date} ${m.startTime.hour}:${m.startTime.minute}:${m.startTime.second}:${m.startTime.millisecond}`,e=`${m.endDate.year}-${m.endDate.month}-${m.endDate.date} ${m.endTime.hour}:${m.endTime.minute}:${m.endTime.second}:${m.endTime.millisecond}`;a({startTime:t,endTime:e,startTimeStamp:new Date(t).getTime(),endTimeStamp:new Date(e).getTime(),timeZone:m.timeZone})}()}j.querySelector(".dt-time-box").appendChild(L),D.push({ele:L,component:d}),j.addEventListener("click",A),document.addEventListener("click",w),function(t){t.classList.add("dt-show")}(j)})}async function w(t){var e;let a,i,n,d,s,M;return x({root:t.root},((a=new Date((e=t).maxTime||Date.now())).setFullYear(a.getFullYear()+5*!e.maxTime),(i=new Date(e.minTime||Date.now())).setFullYear(i.getFullYear()-20*!e.minTime),n=new Date(e.startTime||Date.now()),d=new Date(e.endTime||Date.now()),s=new Date(e.endTime||Date.now()),n.getUTCFullYear()===d.getUTCFullYear()&&n.getMonth()==d.getMonth()&&s.setMonth(d.getMonth()+1),M=0,M=void 0!==e.timeZone?e.timeZone:-new Date().getTimezoneOffset()/60,{startDate:e.startTime?A(n):A(),endDate:e.endTime?A(d):A(),startTime:e.startTime?Y(n):Y(),endTime:e.endTime?Y(d):Y(),startDateShow:e.startTime?A(n):A(),endDateShow:e.startTime?A(s):A(),moveDate:A(),maxDate:A(i),maxTime:Y(i),minDate:A(a),minTime:Y(a),timeZone:M}))}function A(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;return t?{year:t.getFullYear(),month:t.getMonth()+1,date:t.getDate()}:{year:0,month:0,date:0}}function Y(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;return t?{hour:t.getHours(),minute:t.getMinutes(),second:t.getSeconds(),millisecond:t.getMilliseconds()}:{hour:0,minute:0,second:0,millisecond:0}}a(611),a(803),a(406),a(276)})();var n=i.b;export{n as open};
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@gez/date-time-kit",
3
+ "version": "1.0.0-alpha.0",
4
+ "description": "A JavaScript library for handling date and time operations efficiently.",
5
+ "type": "module",
6
+ "types": "type.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js",
10
+ "types": "./type.d.ts"
11
+ }
12
+ },
13
+ "main": "./dist/index.js",
14
+ "module": "./dist/index.js",
15
+ "files": [
16
+ "dist",
17
+ "type.d.ts"
18
+ ],
19
+ "scripts": {
20
+ "build": "rsbuild build",
21
+ "check": "biome check --write",
22
+ "dev": "rsbuild dev --open",
23
+ "format": "prettier --write .",
24
+ "lint": "eslint .",
25
+ "preview": "rsbuild preview",
26
+ "prepublishOnly": "rsbuild build"
27
+ },
28
+ "devDependencies": {
29
+ "@biomejs/biome": "^1.9.3",
30
+ "@eslint/js": "^9.12.0",
31
+ "@rsbuild/core": "^1.0.19",
32
+ "eslint": "^9.12.0",
33
+ "globals": "^15.11.0",
34
+ "prettier": "^3.3.3",
35
+ "sass-embedded": "^1.81.0",
36
+ "sass-loader": "^16.0.3",
37
+ "typescript": "^5.6.3",
38
+ "typescript-eslint": "^8.8.1"
39
+ },
40
+ "dependencies": {
41
+ "lodash": "^4.17.21"
42
+ },
43
+ "keywords": [
44
+ "date",
45
+ "time",
46
+ "datetime",
47
+ "utility",
48
+ "javascript",
49
+ "library"
50
+ ],
51
+ "repository": {
52
+ "type": "git",
53
+ "url": "https://github.com/dp-os/date-time-kit.git"
54
+ },
55
+ "author": "Wes Loong <wesloong@gmail.com>",
56
+ "license": "MIT",
57
+ "bugs": {
58
+ "url": "https://github.com/dp-os/date-time-kit/issues"
59
+ },
60
+ "homepage": "https://github.com/dp-os/date-time-kit#readme",
61
+ "engines": {
62
+ "node": ">=14"
63
+ }
64
+ }
package/type.d.ts ADDED
@@ -0,0 +1,76 @@
1
+
2
+ export interface kitContent {
3
+ startDate: kitDate,
4
+ endDate: kitDate,
5
+ startTime: kitTime,
6
+ endTime: kitTime,
7
+ startDateShow: kitDate,
8
+ endDateShow: kitDate,
9
+ moveDate: kitDate,
10
+ maxDate: kitDate,
11
+ minDate: kitDate,
12
+ maxTime: kitTime,
13
+ minTime: kitTime,
14
+ timeZone: number
15
+ }
16
+
17
+ export interface kitDate {
18
+ year: number,
19
+ month: number,
20
+ date: number
21
+ }
22
+
23
+ export interface kitTime {
24
+ hour: number,
25
+ minute: number,
26
+ second: number,
27
+ millisecond: number
28
+ }
29
+
30
+
31
+ export interface kitDataLimitContent {
32
+ startDate: kitDate,
33
+ startTime: kitTime,
34
+ endDate: kitDate,
35
+ endTime: kitTime
36
+ }
37
+
38
+
39
+ export interface kitComponentOption {
40
+ ele: HTMLElement,
41
+ component: kitComponent
42
+ }
43
+
44
+ export interface kitComponent {
45
+ updateData(ele: HTMLElement, data: kitContent): void
46
+ create(data: kitContent): HTMLElement
47
+ }
48
+
49
+ export type status = 'start' | 'end';
50
+ export type timeString = `${number}-${number}-${number} ${number}:${number}:${number}:${number}`;
51
+ export type lang = 'zh-CN' | 'en-US';
52
+ export interface kitOption {
53
+ root: HTMLElement,
54
+ // default select
55
+ startTime?: timeString,
56
+ endTime?: timeString,
57
+ // default limit
58
+ maxTime?: timeString,
59
+ minTime?: timeString,
60
+ // default lang
61
+ lang?: lang,
62
+ // default time zone
63
+ timeZone?: number
64
+ }
65
+
66
+ export interface kitResult {
67
+ startTime: timeString,
68
+ endTime: timeString,
69
+ // time stamp
70
+ startTimeStamp: number,
71
+ endTimeStamp: number,
72
+
73
+ timeZone: number
74
+ }
75
+
76
+ export type kitDataLimit = 'all' | 'today' | 'yesterday' | 'week' | 'lastWeek' | 'last7Days' | 'month' | 'last30Days' | 'last180Days' | 'last6Month' | 'year';