datex.js 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,11 @@
1
+ # Nodejs安装datex
2
+ ```js
3
+ npm install datex.js
4
+ ```
5
+
6
+
7
+ # datex方法说明
8
+
1
9
  ## getTime() 返回时间戳(毫秒)
2
10
  ```js
3
11
  datex().getTime()
package/dist/datex.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * datex v1.0.0
2
+ * datex.js v1.0.1
3
3
  * a datetime format library
4
4
  * https://passer-by.com/datex/
5
5
  *
@@ -8,6 +8,6 @@
8
8
  * Released under the MIT License
9
9
  * https://github.com/mumuy/datex
10
10
  *
11
- * Created on: 2023-04-12
11
+ * Created on: 2023-04-13
12
12
  */
13
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).datex=t()}(this,(function(){"use strict";let e={"en-US":{MMM:["Jan.","Feb.","Mar.","Apr.","May.","Jun.","Jul.","Aug.","Sept.","Oct.","Nov.","Dec."],MMMM:["January","February","March","April","May","June","July","August","September","October","November","December"],Do:["1st","2nd","3rd","4th","5th","6th","7th","8th","9th","10th","11th","12th","13th","14th","15th","16th","17th","18th","19th","20th","21st","22nd","23rd","24th","25th","26th","27th","28th","29th","30th","31st"],W:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],w:["Sun.","Mon.","Tues.","Wed.","Thur.","Fri.","Sat."]},"zh-CN":{MMM:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],MMMM:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],Do:["1日","2日","3日","4日","5日","6日","7日","8日","9日","10日","11日","12日","13日","14日","15日","16日","17日","18日","19日","20日","21日","22日","23日","24日","25日","26日","27日","28日","29日","30日","31日"],W:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],w:["周日","周一","周二","周三","周四","周五","周六"]}},t=e["en-US"];function n(){return new n.prototype.init(...arguments)}function a(e){return e instanceof n||(e=n(e)),e}return"undefined"!=typeof self&&self.navigator&&(t=e[self.navigator.language]),n.prototype={_date:null,init:function(){return arguments.length>=3&&arguments[1]--,this._date=new Date(...arguments),this},getTime(){return this._date.getTime()},getUnix(){return~~(this._date.getTime()/1e3)},clone(){return n(this.getTime())},toDate(){return this._date},toObject(){let e=this._date;return{year:e.getFullYear(),month:e.getMonth()+1,day:e.getDate(),hour:e.getHours(),minute:e.getMinutes(),second:e.getSeconds(),millsecond:e.getMilliseconds(),timestamp:e.getTime(),week:e.getDay()}},toArray(){let e=this.toObject();return[e.year,e.month,e.day,e.hour,e.minute,e.second,e.millsecond]},toString(){return this._date.toString()},toISOString(){return this._date.toISOString()},set(e,t){let n=this._date,a=this.toObject();switch(e){case"year":n.setFullYear(t);break;case"month":n.setMonth(t-1);break;case"day":n.setDate(t);break;case"hour":n.setHours(t);break;case"minute":n.setMinutes(t);break;case"second":n.setSeconds(t);break;case"millsecond":n.setMilliseconds(t);break;case"timestamp":n.setTime(t);break;case"week":let e=a.week-t;n.setDate(a.day-e)}return this},get(e){return this.toObject()[e]},change(e,t){let n=this.toObject();return this.set(e,n[e]+t)},format(e="YYYY-MM-DD HH:mm:ss"){let n=this._date,a=this.toObject(),r=n.toTimeString().match(/GMT([\+\-])(\d{2})(\d{2})/),s={YYYY:""+a.year,YY:(""+a.year).padStart(2,"0"),MM:(""+a.month).padStart(2,"0"),M:""+a.month,DD:(""+a.day).padStart(2,"0"),D:""+a.day,HH:(""+a.hour).padStart(2,"0"),H:""+a.hour,hh:(""+a.hour%12).padStart(2,"0"),h:""+a.hour%12,mm:(""+a.minute).padStart(2,"0"),m:""+a.minute,ss:(""+a.second).padStart(2,"0"),s:""+a.second,S:""+~~(a.millsecond%1e3/100),SS:""+~~(a.millsecond%1e3/10),SSS:""+a.millsecond%1e3,Z:r[1]+r[2]+":"+r[3],ZZ:r[1]+r[2]+r[3],A:["AM","PM"][~~(a.hour/12)],a:["am","pm"][~~(a.hour/12)],X:~~(a.timestamp/1e3),x:a.timestamp,Q:""+~~(a.month/3)};return s.MMM=t.MMM[a.month-1],s.MMMM=t.MMMM[a.month-1],s.Do=t.Do[a.day-1],s.W=t.W[a.week],s.w=t.w[a.week],e.replace(/Y+|M+|D+|H+|h+|m+|s+|S+|Z+|Do|A|a|X|x|Q|W|w/g,(function(e){return s[e]||""}))},startOf(e){let t=this.toObject(),a=null;switch(e){case"year":a=n(t.year,1,1,0,0,0,0);break;case"month":a=n(t.year,t.month,1,0,0,0,0);break;case"day":a=n(t.year,t.month,t.day,0,0,0,0);break;case"hour":a=n(t.year,t.month,t.day,t.hour,0,0,0);break;case"minute":a=n(t.year,t.month,t.day,t.hour,t.minute,0,0);break;case"second":a=n(t.year,t.month,t.day,t.hour,t.minute,t.second,0);break;case"millsecond":case"timestamp":a=this.clone();break;case"week":a=n(t.year,t.month,t.day-t.week,0,0,0,0)}return a},endOf(e){return this.toObject(),this.startOf(e).change(e,"week"==e?7:1).change("millsecond",-1)},diffWith(e,t){if(e=a(e),isNaN(e.getTime()))return!1;let n={day:864e5,hour:36e5,minute:6e4,second:1e3,millsecond:1,timestamp:1},r=this.getTime()-e.getTime(),s=0;if(t){if(n[t])s=~~(r/n[t]);else if("month"==t){s=12*(this.get("year")-1)+this.get("month")-(12*(e.get("year")-1)+e.get("month")),s<0&&this.get("day")>e.get("day")?s+=1:s>0&&this.get("day")<e.get("day")&&(s-=1)}else"year"==t&&(s=this.get("year")-e.get("year"),s<0&&(this.get("month")>e.get("month")||this.get("month")==e.get("month")&&this.get("day")>e.get("day"))?s+=1:s>0&&(this.get("month")<e.get("month")||this.get("month")==e.get("month")&&this.get("day")<e.get("day"))&&(s-=1));return s}{let t=this.clone(),n={};return["year","month","day","hour","minute","second","millsecond"].forEach((function(a){n[a]=t.diffWith(e,a),t.set(a,e.get(a))})),n}},isBefore(e,t="millsecond"){return e=a(e),this.get(t)<e.get(t)},isAfter(e,t="millsecond"){return e=a(e),this.get(t)>e.get(t)},isSame(e,t="millsecond"){return e=a(e),this.get(t)==e.get(t)},isBetween(e,t,n="millsecond"){return e=a(e),t=a(t),this.get(n)>e.get(n)&&this.get(n)<t.get(n)}},n.prototype.init.prototype=n.prototype,n}));
13
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).datex=e()}(this,(function(){"use strict";let t={"en-US":{MMM:["Jan.","Feb.","Mar.","Apr.","May.","Jun.","Jul.","Aug.","Sept.","Oct.","Nov.","Dec."],MMMM:["January","February","March","April","May","June","July","August","September","October","November","December"],Do:["1st","2nd","3rd","4th","5th","6th","7th","8th","9th","10th","11th","12th","13th","14th","15th","16th","17th","18th","19th","20th","21st","22nd","23rd","24th","25th","26th","27th","28th","29th","30th","31st"],W:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],w:["Sun.","Mon.","Tues.","Wed.","Thur.","Fri.","Sat."]},"zh-CN":{MMM:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],MMMM:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],Do:["1日","2日","3日","4日","5日","6日","7日","8日","9日","10日","11日","12日","13日","14日","15日","16日","17日","18日","19日","20日","21日","22日","23日","24日","25日","26日","27日","28日","29日","30日","31日"],W:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],w:["周日","周一","周二","周三","周四","周五","周六"]}},e=t["en-US"];"undefined"!=typeof self&&self.navigator&&(e=t[self.navigator.language]);const n=["year","month","day","hour","minute","second","millsecond"];function i(){return new i.prototype.init(...arguments)}function r(t){return t instanceof i?t:i(t)}return i.prototype={_date:null,init:function(){return arguments.length>=3&&arguments[1]--,this._date=new Date(...arguments),this},getTime(){return this._date.getTime()},getUnix(){return~~(this._date.getTime()/1e3)},clone(){return i(this.getTime())},toDate(){return this._date},toObject(){let t=this._date;return{year:t.getFullYear(),month:t.getMonth()+1,day:t.getDate(),hour:t.getHours(),minute:t.getMinutes(),second:t.getSeconds(),millsecond:t.getMilliseconds(),timestamp:t.getTime(),week:t.getDay()}},toArray(){let t=this.toObject();return n.map((e=>t[e]))},toString(){return this._date.toString()},toISOString(){return this._date.toISOString()},set(t,e){let n=this._date,i=this.toObject();switch(t){case"year":n.setFullYear(e);break;case"month":n.setMonth(e-1);break;case"day":n.setDate(e);break;case"hour":n.setHours(e);break;case"minute":n.setMinutes(e);break;case"second":n.setSeconds(e);break;case"millsecond":n.setMilliseconds(e);break;case"timestamp":n.setTime(e);break;case"week":n.setDate(i.day-i.week+e)}return this},get(t){return this.toObject()[t]},change(t,e){let n=this.toObject();return this.set(t,n[t]+e)},format(t="YYYY-MM-DD HH:mm:ss"){let n=this._date,i=this.toObject(),r=n.toTimeString().match(/GMT([\+\-])(\d{2})(\d{2})/),s={YYYY:""+i.year,YY:(""+i.year).padStart(2,"0"),MM:(""+i.month).padStart(2,"0"),M:""+i.month,DD:(""+i.day).padStart(2,"0"),D:""+i.day,HH:(""+i.hour).padStart(2,"0"),H:""+i.hour,hh:(""+i.hour%12).padStart(2,"0"),h:""+i.hour%12,mm:(""+i.minute).padStart(2,"0"),m:""+i.minute,ss:(""+i.second).padStart(2,"0"),s:""+i.second,S:""+~~(i.millsecond%1e3/100),SS:""+~~(i.millsecond%1e3/10),SSS:""+i.millsecond%1e3,Z:r[1]+r[2]+":"+r[3],ZZ:r[1]+r[2]+r[3],A:["AM","PM"][~~(i.hour/12)],a:["am","pm"][~~(i.hour/12)],X:~~(i.timestamp/1e3),x:i.timestamp,Q:""+~~(i.month/3)};return s.MMM=e.MMM[i.month-1],s.MMMM=e.MMMM[i.month-1],s.Do=e.Do[i.day-1],s.W=e.W[i.week],s.w=e.w[i.week],t.replace(/Y+|M+|D+|H+|h+|m+|s+|S+|Z+|Do|A|a|X|x|Q|W|w/g,(function(t){return s[t]||""}))},startOf(t){let e=this.toObject(),r=null,s=n.indexOf(t)+1,a=this.toArray(),h=[1970,1,1,0,0,0,0].slice(s);return a.splice(s,h.length,...h),r="timestamp"==t?this.clone():"week"==t?i(e.year,e.month,e.day-e.week,0,0,0,0):i(...a),r},endOf(t){return this.startOf(t).change(t,"week"==t?7:1).change("millsecond",-1)},diffWith(t,e){if(!(t=r(t)).isValid())return!1;let i={day:864e5,hour:36e5,minute:6e4,second:1e3,millsecond:1,timestamp:1},s=this.getTime()-t.getTime(),a=0;if(e){if(i[e])a=~~(s/i[e]);else if("month"==e){a=12*(this.get("year")-1)+this.get("month")-(12*(t.get("year")-1)+t.get("month")),a<0&&this.get("day")>t.get("day")?a+=1:a>0&&this.get("day")<t.get("day")&&(a-=1)}else"year"==e&&(a=this.get("year")-t.get("year"),a<0&&(this.get("month")>t.get("month")||this.get("month")==t.get("month")&&this.get("day")>t.get("day"))?a+=1:a>0&&(this.get("month")<t.get("month")||this.get("month")==t.get("month")&&this.get("day")<t.get("day"))&&(a-=1));return a}{let e=this.clone(),i={};return n.forEach((function(n){i[n]=e.diffWith(t,n),e.set(n,t.get(n))})),i}},isBefore(t,e="timestamp"){return t=r(t),this.get(e)<t.get(e)},isAfter(t,e="timestamp"){return t=r(t),this.get(e)>t.get(e)},isSame(t,e="timestamp"){return t=r(t),this.get(e)==t.get(e)},isBetween(t,e,n="timestamp"){return t=r(t),e=r(e),this.get(n)>t.get(n)&&this.get(n)<e.get(n)},isValid(){return!isNaN(this.getTime())}},i.prototype.init.prototype=i.prototype,i}));
package/index.html CHANGED
@@ -143,6 +143,12 @@
143
143
  <span class="subtitle">isBetween</span>
144
144
  </a>
145
145
  </li>
146
+ <li>
147
+ <a href="#has20">
148
+ <span class="title">是否为有效对象</span>
149
+ <span class="subtitle">isValid</span>
150
+ </a>
151
+ </li>
146
152
  </ul>
147
153
  </div>
148
154
  </div>
@@ -977,6 +983,16 @@
977
983
  </table>
978
984
  </div>
979
985
  </div>
986
+ <div id="hash20" class="box">
987
+ <div class="c-hd">
988
+ <p class="title">是否为有效对象</p>
989
+ <p class="subtitle">isValid()</p>
990
+ </div>
991
+ <div class="c-bd">
992
+ <p>运行:datex('2008-13-12').isValid()</p>
993
+ <p>返回:false</p>
994
+ </div>
995
+ </div>
980
996
  </div>
981
997
  </div>
982
998
  </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datex.js",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "a datetime format library",
5
5
  "author": "HaoLe Zheng",
6
6
  "license": "MIT",
package/src/datex.js CHANGED
@@ -17,15 +17,13 @@ let language = langMap['en-US'];
17
17
  if(typeof self!='undefined'&&self.navigator){
18
18
  language = langMap[self.navigator.language];
19
19
  }
20
+ const timeList = ['year','month','day','hour','minute','second','millsecond'];
20
21
 
21
22
  function datex(){
22
23
  return new datex.prototype.init(...arguments);
23
24
  }
24
25
  function getInstance(that){
25
- if(!(that instanceof datex)){
26
- that = datex(that);
27
- }
28
- return that;
26
+ return that instanceof datex?that:datex(that);
29
27
  }
30
28
 
31
29
  datex.prototype = {
@@ -65,7 +63,7 @@ datex.prototype = {
65
63
  },
66
64
  toArray(){
67
65
  let $ = this.toObject();
68
- return [$.year,$.month,$.day,$.hour,$.minute,$.second,$.millsecond];
66
+ return timeList.map(name=>$[name]);
69
67
  },
70
68
  toString(){
71
69
  return this._date.toString();
@@ -102,8 +100,7 @@ datex.prototype = {
102
100
  _.setTime(value);
103
101
  break;
104
102
  case 'week':
105
- let diff = $.week-value;
106
- _.setDate($.day-diff);
103
+ _.setDate($.day-$.week+value);
107
104
  break;
108
105
  }
109
106
  return this;
@@ -158,48 +155,31 @@ datex.prototype = {
158
155
  startOf(unit){
159
156
  let $ = this.toObject();
160
157
  let that = null;
161
- switch (unit) {
162
- case 'year':
163
- that = datex($.year,1,1,0,0,0,0);
164
- break;
165
- case 'month':
166
- that = datex($.year,$.month,1,0,0,0,0);
167
- break;
168
- case 'day':
169
- that = datex($.year,$.month,$.day,0,0,0,0);
170
- break;
171
- case 'hour':
172
- that = datex($.year,$.month,$.day,$.hour,0,0,0);
173
- break;
174
- case 'minute':
175
- that = datex($.year,$.month,$.day,$.hour,$.minute,0,0);
176
- break;
177
- case 'second':
178
- that = datex($.year,$.month,$.day,$.hour,$.minute,$.second,0);
179
- break;
180
- case 'millsecond':
181
- case 'timestamp':
182
- that = this.clone();
183
- break;
184
- case 'week':
185
- that = datex($.year,$.month,$.day-$.week,0,0,0,0);
186
- break;
158
+ let index = timeList.indexOf(unit)+1;
159
+ let dateSet = this.toArray();
160
+ let initSet = [1970,1,1,0,0,0,0].slice(index);
161
+ dateSet.splice(index,initSet.length,...initSet);
162
+ if(unit=='timestamp'){
163
+ that = this.clone();
164
+ }else if(unit=='week'){
165
+ that = datex($.year,$.month,$.day-$.week,0,0,0,0);
166
+ }else{
167
+ that = datex(...dateSet);
187
168
  }
188
169
  return that;
189
170
  },
190
171
  endOf(unit){
191
- let $ = this.toObject();
192
172
  return this.startOf(unit).change(unit,unit=='week'?7:1).change('millsecond',-1);
193
173
  },
194
174
  diffWith(that,unit){
195
175
  that = getInstance(that);
196
- if(isNaN(that.getTime())){
176
+ if(!that.isValid()){
197
177
  return false;
198
178
  }
199
179
  let diffMap = {
200
- 'day':86400000,
201
- 'hour':3600000,
202
- 'minute':60000,
180
+ 'day':8.64e7,
181
+ 'hour':3.6e6,
182
+ 'minute':6e4,
203
183
  'second':1000,
204
184
  'millsecond':1,
205
185
  'timestamp':1
@@ -230,29 +210,32 @@ datex.prototype = {
230
210
  }else{
231
211
  let clone = this.clone();
232
212
  let hash = {};
233
- ['year','month','day','hour','minute','second','millsecond'].forEach(function(unit){
213
+ timeList.forEach(function(unit){
234
214
  hash[unit] = clone.diffWith(that,unit);
235
215
  clone.set(unit,that.get(unit));
236
216
  });
237
217
  return hash;
238
218
  }
239
219
  },
240
- isBefore(that,unit = 'millsecond'){
220
+ isBefore(that,unit = 'timestamp'){
241
221
  that = getInstance(that);
242
222
  return this.get(unit)<that.get(unit);
243
223
  },
244
- isAfter(that,unit = 'millsecond'){
224
+ isAfter(that,unit = 'timestamp'){
245
225
  that = getInstance(that);
246
226
  return this.get(unit)>that.get(unit);
247
227
  },
248
- isSame(that,unit = 'millsecond'){
228
+ isSame(that,unit = 'timestamp'){
249
229
  that = getInstance(that);
250
230
  return this.get(unit)==that.get(unit);
251
231
  },
252
- isBetween(startDate,endDate,unit = 'millsecond'){
232
+ isBetween(startDate,endDate,unit = 'timestamp'){
253
233
  startDate = getInstance(startDate);
254
234
  endDate = getInstance(endDate);
255
235
  return this.get(unit)>startDate.get(unit)&&this.get(unit)<endDate.get(unit);
236
+ },
237
+ isValid(){
238
+ return !isNaN(this.getTime());
256
239
  }
257
240
  };
258
241
  datex.prototype.init.prototype = datex.prototype;
@@ -1,54 +1,54 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <svg width="1440px" height="448px" viewBox="0 0 1440 448" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
- <!-- Generator: Sketch 59.1 (86144) - https://sketch.com -->
4
- <title>编组 5备份</title>
5
- <desc>Created with Sketch.</desc>
6
- <defs>
7
- <linearGradient x1="-5.68700053%" y1="45.5298642%" x2="84.7892757%" y2="53.934985%" id="linearGradient-1">
8
- <stop stop-color="#FBFCFD" offset="0%"></stop>
9
- <stop stop-color="#F8FCFF" offset="100%"></stop>
10
- </linearGradient>
11
- <radialGradient cx="49.4552285%" cy="50%" fx="49.4552285%" fy="50%" r="94.8348304%" gradientTransform="translate(0.494552,0.500000),scale(0.311111,1.000000),rotate(90.000000),translate(-0.494552,-0.500000)" id="radialGradient-2">
12
- <stop stop-color="#FFFFFF" stop-opacity="0.5" offset="0%"></stop>
13
- <stop stop-color="#EDF6FF" stop-opacity="0.578179633" offset="100%"></stop>
14
- </radialGradient>
15
- <rect id="path-3" x="0" y="0" width="1440" height="448"></rect>
16
- <linearGradient x1="72.8463444%" y1="12.5451885%" x2="72.8463444%" y2="295.836589%" id="linearGradient-5">
17
- <stop stop-color="#FFFFFF" stop-opacity="0" offset="0%"></stop>
18
- <stop stop-color="#9FD7FF" stop-opacity="0.383058348" offset="100%"></stop>
19
- </linearGradient>
20
- <linearGradient x1="16.6159843%" y1="49.1386719%" x2="5.85340543%" y2="50.8613281%" id="linearGradient-6">
21
- <stop stop-color="#FFFFFF" stop-opacity="0" offset="0%"></stop>
22
- <stop stop-color="#F2F7FC" offset="100%"></stop>
23
- </linearGradient>
24
- <rect id="path-7" x="0" y="259" width="1440" height="189"></rect>
25
- <linearGradient x1="54.7550093%" y1="16.6478641%" x2="54.7550093%" y2="112.331979%" id="linearGradient-8">
26
- <stop stop-color="#FFFFFF" stop-opacity="0" offset="0%"></stop>
27
- <stop stop-color="#D2ECFF" stop-opacity="0.225387893" offset="100%"></stop>
28
- </linearGradient>
29
- </defs>
30
- <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
31
- <g id="导航方案备份">
32
- <g id="编组-5备份">
33
- <g id="路径备份">
34
- <g id="蒙版">
35
- <g transform="translate(0.000000, 0.000000)">
36
- <mask id="mask-4" fill="white">
37
- <use xlink:href="#path-3"></use>
38
- </mask>
39
- <g>
40
- <use fill="url(#linearGradient-1)" xlink:href="#path-3"></use>
41
- <use fill="url(#radialGradient-2)" xlink:href="#path-3"></use>
42
- </g>
43
- <g id="矩形备份-32" mask="url(#mask-4)">
44
- <use fill="url(#linearGradient-5)" xlink:href="#path-7"></use>
45
- <use fill="url(#linearGradient-6)" xlink:href="#path-7"></use>
46
- </g>
47
- <rect id="矩形" fill="url(#linearGradient-8)" mask="url(#mask-4)" x="0" y="166" width="1440" height="282"></rect>
48
- </g>
49
- </g>
50
- </g>
51
- </g>
52
- </g>
53
- </g>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="1440px" height="448px" viewBox="0 0 1440 448" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 59.1 (86144) - https://sketch.com -->
4
+ <title>编组 5备份</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <defs>
7
+ <linearGradient x1="-5.68700053%" y1="45.5298642%" x2="84.7892757%" y2="53.934985%" id="linearGradient-1">
8
+ <stop stop-color="#FBFCFD" offset="0%"></stop>
9
+ <stop stop-color="#F8FCFF" offset="100%"></stop>
10
+ </linearGradient>
11
+ <radialGradient cx="49.4552285%" cy="50%" fx="49.4552285%" fy="50%" r="94.8348304%" gradientTransform="translate(0.494552,0.500000),scale(0.311111,1.000000),rotate(90.000000),translate(-0.494552,-0.500000)" id="radialGradient-2">
12
+ <stop stop-color="#FFFFFF" stop-opacity="0.5" offset="0%"></stop>
13
+ <stop stop-color="#EDF6FF" stop-opacity="0.578179633" offset="100%"></stop>
14
+ </radialGradient>
15
+ <rect id="path-3" x="0" y="0" width="1440" height="448"></rect>
16
+ <linearGradient x1="72.8463444%" y1="12.5451885%" x2="72.8463444%" y2="295.836589%" id="linearGradient-5">
17
+ <stop stop-color="#FFFFFF" stop-opacity="0" offset="0%"></stop>
18
+ <stop stop-color="#9FD7FF" stop-opacity="0.383058348" offset="100%"></stop>
19
+ </linearGradient>
20
+ <linearGradient x1="16.6159843%" y1="49.1386719%" x2="5.85340543%" y2="50.8613281%" id="linearGradient-6">
21
+ <stop stop-color="#FFFFFF" stop-opacity="0" offset="0%"></stop>
22
+ <stop stop-color="#F2F7FC" offset="100%"></stop>
23
+ </linearGradient>
24
+ <rect id="path-7" x="0" y="259" width="1440" height="189"></rect>
25
+ <linearGradient x1="54.7550093%" y1="16.6478641%" x2="54.7550093%" y2="112.331979%" id="linearGradient-8">
26
+ <stop stop-color="#FFFFFF" stop-opacity="0" offset="0%"></stop>
27
+ <stop stop-color="#D2ECFF" stop-opacity="0.225387893" offset="100%"></stop>
28
+ </linearGradient>
29
+ </defs>
30
+ <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
31
+ <g id="导航方案备份">
32
+ <g id="编组-5备份">
33
+ <g id="路径备份">
34
+ <g id="蒙版">
35
+ <g transform="translate(0.000000, 0.000000)">
36
+ <mask id="mask-4" fill="white">
37
+ <use xlink:href="#path-3"></use>
38
+ </mask>
39
+ <g>
40
+ <use fill="url(#linearGradient-1)" xlink:href="#path-3"></use>
41
+ <use fill="url(#radialGradient-2)" xlink:href="#path-3"></use>
42
+ </g>
43
+ <g id="矩形备份-32" mask="url(#mask-4)">
44
+ <use fill="url(#linearGradient-5)" xlink:href="#path-7"></use>
45
+ <use fill="url(#linearGradient-6)" xlink:href="#path-7"></use>
46
+ </g>
47
+ <rect id="矩形" fill="url(#linearGradient-8)" mask="url(#mask-4)" x="0" y="166" width="1440" height="282"></rect>
48
+ </g>
49
+ </g>
50
+ </g>
51
+ </g>
52
+ </g>
53
+ </g>
54
54
  </svg>