xiaoxin 1 gadu atpakaļ
vecāks
revīzija
c949ecdb9d
100 mainītis faili ar 8878 papildinājumiem un 84 dzēšanām
  1. 14 13
      App.vue
  2. 265 0
      api/index.js
  3. 12 0
      api/uploadImage.js
  4. 9 0
      common/scss/index.scss
  5. 752 0
      components/act-set-form/act-set-form.vue
  6. 80 0
      components/common-controlTag/common-controlTag.vue
  7. 59 0
      components/common-search/common-search.vue
  8. 159 0
      components/my-join/my-join.vue
  9. 247 0
      components/my-set/my-set.vue
  10. 23 0
      components/noData/noData.vue
  11. 50 0
      components/org-item/org-item.vue
  12. 265 0
      components/school-form-launch/school-form-launch.vue
  13. 249 0
      components/school-form-record/school-form-record.vue
  14. 293 0
      components/school-photo-upload-box/school-photo-upload-box.vue
  15. 207 0
      components/school-photo-upload-my/school-photo-upload-my.vue
  16. 88 71
      manifest.json
  17. 384 0
      node_modules/.package-lock.json
  18. 1 0
      node_modules/call-bind/.eslintignore
  19. 16 0
      node_modules/call-bind/.eslintrc
  20. 12 0
      node_modules/call-bind/.github/FUNDING.yml
  21. 9 0
      node_modules/call-bind/.nycrc
  22. 93 0
      node_modules/call-bind/CHANGELOG.md
  23. 21 0
      node_modules/call-bind/LICENSE
  24. 64 0
      node_modules/call-bind/README.md
  25. 15 0
      node_modules/call-bind/callBound.js
  26. 35 0
      node_modules/call-bind/index.js
  27. 95 0
      node_modules/call-bind/package.json
  28. 54 0
      node_modules/call-bind/test/callBound.js
  29. 80 0
      node_modules/call-bind/test/index.js
  30. 4 0
      node_modules/clone/.npmignore
  31. 18 0
      node_modules/clone/LICENSE
  32. 194 0
      node_modules/clone/README.md
  33. 10 0
      node_modules/clone/clone.iml
  34. 257 0
      node_modules/clone/clone.js
  35. 56 0
      node_modules/clone/package.json
  36. 7 0
      node_modules/dayjs/.editorconfig
  37. 947 0
      node_modules/dayjs/CHANGELOG.md
  38. 21 0
      node_modules/dayjs/LICENSE
  39. 172 0
      node_modules/dayjs/README.md
  40. 1 0
      node_modules/dayjs/dayjs.min.js
  41. 25 0
      node_modules/dayjs/esm/constant.js
  42. 429 0
      node_modules/dayjs/esm/index.d.ts
  43. 541 0
      node_modules/dayjs/esm/index.js
  44. 39 0
      node_modules/dayjs/esm/locale/af.js
  45. 40 0
      node_modules/dayjs/esm/locale/am.js
  46. 41 0
      node_modules/dayjs/esm/locale/ar-dz.js
  47. 42 0
      node_modules/dayjs/esm/locale/ar-iq.js
  48. 41 0
      node_modules/dayjs/esm/locale/ar-kw.js
  49. 27 0
      node_modules/dayjs/esm/locale/ar-ly.js
  50. 42 0
      node_modules/dayjs/esm/locale/ar-ma.js
  51. 41 0
      node_modules/dayjs/esm/locale/ar-sa.js
  52. 42 0
      node_modules/dayjs/esm/locale/ar-tn.js
  53. 77 0
      node_modules/dayjs/esm/locale/ar.js
  54. 39 0
      node_modules/dayjs/esm/locale/az.js
  55. 24 0
      node_modules/dayjs/esm/locale/be.js
  56. 55 0
      node_modules/dayjs/esm/locale/bg.js
  57. 39 0
      node_modules/dayjs/esm/locale/bi.js
  58. 39 0
      node_modules/dayjs/esm/locale/bm.js
  59. 81 0
      node_modules/dayjs/esm/locale/bn-bd.js
  60. 72 0
      node_modules/dayjs/esm/locale/bn.js
  61. 38 0
      node_modules/dayjs/esm/locale/bo.js
  62. 93 0
      node_modules/dayjs/esm/locale/br.js
  63. 24 0
      node_modules/dayjs/esm/locale/bs.js
  64. 44 0
      node_modules/dayjs/esm/locale/ca.js
  65. 120 0
      node_modules/dayjs/esm/locale/cs.js
  66. 24 0
      node_modules/dayjs/esm/locale/cv.js
  67. 39 0
      node_modules/dayjs/esm/locale/cy.js
  68. 40 0
      node_modules/dayjs/esm/locale/da.js
  69. 63 0
      node_modules/dayjs/esm/locale/de-at.js
  70. 63 0
      node_modules/dayjs/esm/locale/de-ch.js
  71. 64 0
      node_modules/dayjs/esm/locale/de.js
  72. 39 0
      node_modules/dayjs/esm/locale/dv.js
  73. 39 0
      node_modules/dayjs/esm/locale/el.js
  74. 39 0
      node_modules/dayjs/esm/locale/en-au.js
  75. 38 0
      node_modules/dayjs/esm/locale/en-ca.js
  76. 42 0
      node_modules/dayjs/esm/locale/en-gb.js
  77. 39 0
      node_modules/dayjs/esm/locale/en-ie.js
  78. 38 0
      node_modules/dayjs/esm/locale/en-il.js
  79. 42 0
      node_modules/dayjs/esm/locale/en-in.js
  80. 41 0
      node_modules/dayjs/esm/locale/en-nz.js
  81. 39 0
      node_modules/dayjs/esm/locale/en-sg.js
  82. 42 0
      node_modules/dayjs/esm/locale/en-tt.js
  83. 12 0
      node_modules/dayjs/esm/locale/en.js
  84. 39 0
      node_modules/dayjs/esm/locale/eo.js
  85. 39 0
      node_modules/dayjs/esm/locale/es-do.js
  86. 38 0
      node_modules/dayjs/esm/locale/es-mx.js
  87. 39 0
      node_modules/dayjs/esm/locale/es-pr.js
  88. 38 0
      node_modules/dayjs/esm/locale/es-us.js
  89. 39 0
      node_modules/dayjs/esm/locale/es.js
  90. 65 0
      node_modules/dayjs/esm/locale/et.js
  91. 43 0
      node_modules/dayjs/esm/locale/eu.js
  92. 39 0
      node_modules/dayjs/esm/locale/fa.js
  93. 88 0
      node_modules/dayjs/esm/locale/fi.js
  94. 39 0
      node_modules/dayjs/esm/locale/fo.js
  95. 38 0
      node_modules/dayjs/esm/locale/fr-ca.js
  96. 39 0
      node_modules/dayjs/esm/locale/fr-ch.js
  97. 41 0
      node_modules/dayjs/esm/locale/fr.js
  98. 39 0
      node_modules/dayjs/esm/locale/fy.js
  99. 39 0
      node_modules/dayjs/esm/locale/ga.js
  100. 0 0
      node_modules/dayjs/esm/locale/gd.js

+ 14 - 13
App.vue

@@ -1,17 +1,18 @@
 <script>
-	export default {
-		onLaunch: function() {
-			console.log('App Launch')
-		},
-		onShow: function() {
-			console.log('App Show')
-		},
-		onHide: function() {
-			console.log('App Hide')
-		}
-	}
+export default {
+	onLaunch: function () {},
+	onShow: function () {},
+	onHide: function () {}
+}
 </script>
 
-<style>
-	/*每个页面公共css */
+<style lang="scss">
+/*每个页面公共css */
+@import '@/common/scss/index.scss';
+
+// 设置editor组件的placeholder样式,只在这边设置才会生效
+.ql-editor.ql-blank::before {
+	font-style: normal;
+	color: #a6a6a6;
+}
 </style>

+ 265 - 0
api/index.js

@@ -0,0 +1,265 @@
+import {
+	myRequest
+} from '@/utils/request.js'
+
+// 获取校友组织首页数据
+export const getHomeClubData = async () => {
+	return await myRequest({
+		url: '/alumniClub/queryHomeClub'
+	})
+}
+
+// 获取校友组织分页数据
+export const getClubByCategoryId = async (data) => {
+	return await myRequest({
+		url: '/alumniClub/queryClubByCategoryId',
+		data
+	})
+}
+
+// 获取校友组织下拉分页数据
+export const getClubPage = async (data) => {
+	return await myRequest({
+		url: "/alumniClub/queryClubPage",
+		data
+	})
+}
+
+// 申请加入组织
+export const getJoinClubApply = async (data) => {
+	return await myRequest({
+		url: '/alumniClubApply/joinClubApply',
+		data
+	})
+}
+
+// 获取相册分类集合
+export const getCategoryImages = async () => {
+	return await myRequest({
+		url: '/alumniCategoryImage/queryCategoryImages'
+	})
+}
+
+// 根据分类ID获取校友相册分页数据
+export const getMobileImagePage = async (data) => {
+	return await myRequest({
+		url: '/alumniImage/queryMobileImagePage',
+		data
+	})
+}
+
+// 发布校友相册
+export const getInsertImage = async (data) => {
+	return await myRequest({
+		url: '/alumniImage/insertImage',
+		method: "post",
+		data
+	})
+}
+
+// 我上传的校友相册分页数据
+export const getMyImagePage = async (data) => {
+	return await myRequest({
+		url: '/alumniImage/queryMyImagePage',
+		data
+	})
+}
+
+// 发起活动
+export const getInsertActivity = async (data) => {
+	return await myRequest({
+		url: '/alumniActivity/insertActivity',
+		method: 'post',
+		data
+	})
+}
+
+// 获取首页活动分页数据
+export const getActivityPages = async (data) => {
+	return await myRequest({
+		url: '/alumniActivity/queryActivityPages',
+		data
+	})
+}
+
+// 获取我发起的活动分页数据
+export const getMyActivityPages = async (data) => {
+	return await myRequest({
+		url: '/alumniActivity/queryMyActivityPages',
+		data
+	})
+}
+
+// 获取我参加的活动分页数据
+export const getMyJoinActivityPages = async (data) => {
+	return await myRequest({
+		url: '/alumniActivity/queryMyJoinActivityPages',
+		data
+	})
+}
+
+// 根据ID获取数据详情--活动
+export const getDetailInfoById = async (data) => {
+	return await myRequest({
+		url: '/alumniActivity/queryMobileDetailInfoById',
+		data
+	})
+}
+
+// 发布照片--活动
+export const getReleaseImage = async (data) => {
+	return await myRequest({
+		url: '/alumniActvity/confirmReleaseImage',
+		method: 'post',
+		data
+	})
+}
+
+// 我上传的活动图片分页数据--活动
+export const getMyUploadPage = async (data) => {
+	return await myRequest({
+		url: '/alumniActivity/queryMyUploadPage',
+		data
+	})
+}
+
+// 我要报名--活动
+export const getReportById = async (data) => {
+	return await myRequest({
+		url: '/alumniActivity/activityReportById',
+		data
+	})
+}
+
+// 活动签到--活动
+export const getSigninById = async (data) => {
+	return await myRequest({
+		url: '/alumniActivity/activitySigninById',
+		data
+	})
+}
+
+// 获取母校代言分页数据
+export const getEndorsePage = async (data) => {
+	return await myRequest({
+		url: '/alumniEndorse/queryMobileEndorsePage',
+		data
+	})
+}
+
+// 根据ID获取数据详情 -- 母校代言
+export const getEndorseById = async (data) => {
+	return await myRequest({
+		url: '/alumniEndorse/queryEndorseById',
+		data
+	})
+}
+
+//  发起申请 -- 母校代言
+export const getApplication = async (data) => {
+	return await myRequest({
+		url: '/alumniEndorse/initiateApplication',
+		method: "post",
+		data
+	})
+}
+
+//  申请记录 时间类型列表数据
+export const getWeekTypes = async () => {
+	return await myRequest({
+		url: '/alumniEndorse/queryWeekTypes'
+	})
+}
+
+//  我的申请分页数据 -- 母校代言
+export const getApplicationRecord = async (data) => {
+	return await myRequest({
+		url: '/alumniEndorse/applicationRecord',
+		data
+	})
+}
+
+//  获取新闻分类列表数据
+export const getCategoryNewss = async () => {
+	return await myRequest({
+		url: '/alumniCategoryNews/queryCategoryNewss'
+	})
+}
+
+//  获取新闻分页数据
+export const getNewsByCategoryId = async (data) => {
+	return await myRequest({
+		url: '/alumniNews/queryPageByCategoryId',
+		data
+	})
+}
+
+//  获取通讯录类型列表
+export const getAddressBookType = async () => {
+	return await myRequest({
+		url: '/alumniUser/queryTypes'
+	})
+}
+
+//  获取通讯录分页数据
+export const getAddressBookData = async (data) => {
+	return await myRequest({
+		url: '/alumniUser/queryMobileUserPages',
+		data
+	})
+}
+
+//  获取审批模块列表数据
+export const getApplyTypes = async () => {
+	return await myRequest({
+		url: '/login/queryApplyTypes'
+	})
+}
+
+//  获取我发起的审核分页数据
+export const getIinitiatedApply = async (data) => {
+	return await myRequest({
+		url: '/login/queryIinitiatedApply',
+		data
+	})
+}
+
+//  获取待我审核的分页数据
+export const getIapproveApply = async (data) => {
+	return await myRequest({
+		url: '/login/queryIapproveApply',
+		data
+	})
+}
+
+//  审核管理 --审核请求
+export const getExamineData = async (data) => {
+	return await myRequest({
+		url: '/login/toExamineData',
+		data
+	})
+}
+
+//  校区下拉列表数据 --返校申请
+export const getSchoolData = async () => {
+	return await myRequest({
+		url: '/alumniReturn/querySchools'
+	})
+}
+
+//  发起申请 --返校申请
+export const getInsertReturnData = async (data) => {
+	return await myRequest({
+		url: '/alumniReturn/insertReturnData',
+		method: 'post',
+		data
+	})
+}
+
+//  提交记录分页数据 --返校申请
+export const getApplicationReturn = async (data) => {
+	return await myRequest({
+		url: '/alumniReturn/applicationReturn',
+		data
+	})
+}

+ 12 - 0
api/uploadImage.js

@@ -0,0 +1,12 @@
+// 上传图片方法
+export const uploadImage = async (filePath) => {
+	return await uni.uploadFile({
+		// url: 'http://192.168.161.220:8687/alumni/api/file/uploadFile',
+		url: 'https://chtech.ncjti.edu.cn/alumnus/alumni_api/alumni/api/file/uploadFile',
+		filePath: filePath,
+		name: 'file',
+		header: {
+			token: uni.getStorageSync('token') || ''
+		}
+	})
+}

+ 9 - 0
common/scss/index.scss

@@ -0,0 +1,9 @@
+view {
+	box-sizing: border-box;
+}
+
+// 引入字体图标
+@font-face {
+	font-family: CustomFont;
+	src: url('@/static/iconfonts/iconfont.ttf');
+}

+ 752 - 0
components/act-set-form/act-set-form.vue

@@ -0,0 +1,752 @@
+<template>
+	<view class="content">
+		<!-- 所属组织区域 -->
+		<view class="box">
+			<view class="box_title">
+				<text class="text">*</text>
+				所属组织
+			</view>
+			<picker :range="orgRange" range-key="name" @change="changeOrg">
+				<view class="box_input">
+					<view class="picker" :class="{ pick: form.orgName }">{{ form.orgName ? form.orgName : '请选择所属组织' }}</view>
+					<uni-icons type="down" size="24" color="#A6A6A6"></uni-icons>
+				</view>
+			</picker>
+		</view>
+
+		<!-- 活动主题区域 -->
+		<view class="box">
+			<view class="box_title">
+				<text class="text">*</text>
+				活动主题
+			</view>
+			<view class="box_input">
+				<input class="input" placeholder-style="color:#A6A6A6" placeholder="请输入活动主题" v-model="form.theme" />
+			</view>
+		</view>
+
+		<!--活动详情区域 -->
+		<view class="box">
+			<view class="box_title">
+				<text class="text">*</text>
+				活动详情
+			</view>
+
+			<view class="box_richtext">
+				<!-- 富文本输入框区域 -->
+				<editor class="editor" placeholder="请输入活动详情" @ready="handleReady" @focus="handleFocus" @blur="handleBlur" @statuschange="handleStatusChange"></editor>
+
+				<view class="tools" v-if="showTool">
+					<!-- 大标题图标 -->
+					<uni-icons :color="isTitle ? '#5278fb' : ''" fontFamily="CustomFont" :size="26" @click="handleTitle">&#xe609;</uni-icons>
+
+					<!-- 加粗图标 -->
+					<uni-icons :color="isBold ? '#5278fb' : ''" fontFamily="CustomFont" :size="26" @click="handleBold">&#xec83;</uni-icons>
+
+					<!-- 倾斜图标 -->
+					<uni-icons :color="isIncline ? '#5278fb' : ''" fontFamily="CustomFont" :size="26" @click="handleIncline">&#xe852;</uni-icons>
+
+					<!-- 横线图标 -->
+					<uni-icons fontFamily="CustomFont" :size="26" @click="handleRowLine">&#xe60a;</uni-icons>
+
+					<!-- 图片图标 -->
+					<uni-icons fontFamily="CustomFont" :size="26" @click="handleImage">&#xe8ba;</uni-icons>
+
+					<!-- 确认图标 -->
+					<uni-icons fontFamily="CustomFont" :size="26" @click="handleFinish">&#xe622;</uni-icons>
+				</view>
+			</view>
+		</view>
+
+		<!-- 活动开始时间区域 -->
+		<view class="box">
+			<view class="box_title">
+				<text class="text">*</text>
+				活动开始时间
+			</view>
+			<uni-datetime-picker type="datetime" v-model="form.startTime" placeholder="请选择活动开始时间" :start="dayjs(Date.now()).format('YYYY-MM-DD')" />
+			<!-- <picker mode="date" :start="dayjs(Date.now()).format('YYYY-MM-DD')" @change="changeStartTime">
+				<view class="box_input">
+					<view class="picker" :class="{ pick: form.startTime }">{{ form.startTime ? form.startTime : '请选择活动开始时间' }}</view>
+					<uni-icons type="down" size="24" color="#A6A6A6"></uni-icons>
+				</view>
+			</picker> -->
+		</view>
+
+		<!-- 活动结束时间区域 -->
+		<view class="box">
+			<view class="box_title">
+				<text class="text">*</text>
+				活动结束时间
+			</view>
+			<uni-datetime-picker type="datetime" v-model="form.endTime" placeholder="请选择活动结束时间" :start="dayjs(Date.now()).format('YYYY-MM-DD')" />
+			<!-- <picker mode="date" :start="dayjs(Date.now()).format('YYYY-MM-DD')" @change="changeEndTime">
+				<view class="box_input">
+					<view class="picker" :class="{ pick: form.endTime }">{{ form.endTime ? form.endTime : '请选择活动结束时间' }}</view>
+					<uni-icons type="down" size="24" color="#A6A6A6"></uni-icons>
+				</view>
+			</picker> -->
+		</view>
+
+		<!-- 活动地址区域 -->
+		<view class="box">
+			<view class="box_title">
+				<text class="text">*</text>
+				活动地址
+			</view>
+			<view class="box_input" @click="clickAddress">
+				<view class="picker" :class="{ pick: form.address }">{{ form.address ? form.address : '请选择活动地址' }}</view>
+				<uni-icons type="down" size="24" color="#A6A6A6"></uni-icons>
+			</view>
+		</view>
+
+		<!-- 参与说明区域 -->
+		<view class="box">
+			<view class="box_title">
+				<text class="text">*</text>
+				参与说明
+			</view>
+			<view class="box_textarea">
+				<textarea class="textarea" :maxlength="300" placeholder="请输入参与说明,最多300字" @blur="inputDesc"></textarea>
+			</view>
+		</view>
+
+		<!-- 报名开始时间区域 -->
+		<view class="box">
+			<view class="box_title">
+				<text class="text">*</text>
+				报名开始时间
+			</view>
+			<uni-datetime-picker type="datetime" v-model="form.signsTime" placeholder="请选择报名开始时间" :start="dayjs(Date.now()).format('YYYY-MM-DD')" />
+			<!-- <picker mode="date" :start="dayjs(Date.now()).format('YYYY-MM-DD')" @change="changeApplyStartTime">
+				<view class="box_input">
+					<view class="picker" :class="{ pick: form.signsTime }">{{ form.signsTime ? form.signsTime : '请选择报名开始时间' }}</view>
+					<uni-icons type="down" size="24" color="#A6A6A6"></uni-icons>
+				</view>
+			</picker> -->
+		</view>
+
+		<!-- 报名结束时间区域 -->
+		<view class="box">
+			<view class="box_title">
+				<text class="text">*</text>
+				报名结束时间
+			</view>
+			<uni-datetime-picker type="datetime" v-model="form.signeTime" placeholder="请选择报名结束时间" :start="dayjs(Date.now()).format('YYYY-MM-DD')" />
+			<!-- <picker mode="date" :start="dayjs(Date.now()).format('YYYY-MM-DD')" @change="changeApplyEndTime">
+				<view class="box_input">
+					<view class="picker" :class="{ pick: form.signeTime }">{{ form.signeTime ? form.signeTime : '请选择报名结束时间' }}</view>
+					<uni-icons type="down" size="24" color="#A6A6A6"></uni-icons>
+				</view>
+			</picker> -->
+		</view>
+
+		<!-- 报名总人数区域 -->
+		<view class="box">
+			<view class="box_title">
+				<text class="text">*</text>
+				报名总人数
+			</view>
+			<view class="box_input">
+				<input class="input" placeholder-style="color:#A6A6A6" placeholder="请输入报名总人数,0为不设限" v-model="form.totalNumber" />
+			</view>
+		</view>
+
+		<!-- 报名范围区域 -->
+		<view class="box">
+			<view class="box_title">
+				<text class="text">*</text>
+				报名范围
+			</view>
+			<picker :range="addressList" @change="changeRange">
+				<view class="box_input">
+					<view class="picker" :class="{ pick: form.addressRange }">{{ form.addressRange ? form.addressRange : '请选择报名范围' }}</view>
+					<uni-icons type="down" size="24" color="#A6A6A6"></uni-icons>
+				</view>
+			</picker>
+		</view>
+
+		<!-- 咨询方式区域 -->
+		<view class="box">
+			<view class="box_title">
+				<text class="text">*</text>
+				咨询方式
+			</view>
+			<view class="box_input">
+				<input class="input" placeholder-style="color:#A6A6A6" placeholder="请输入咨询方式" v-model="form.phone" />
+			</view>
+		</view>
+
+		<!-- 活动相册区域 -->
+		<view class="box">
+			<view class="box_title">
+				<text class="text">*</text>
+				活动相册
+			</view>
+			<switch :checked="form.showPhoto" @change="switchChange" />
+		</view>
+
+		<view class="btn" @click="handleSubmit">提交</view>
+	</view>
+</template>
+
+<script setup>
+import { ref, onMounted } from 'vue'
+import { getClubPage, getInsertActivity } from '@/api/index.js'
+import { uploadImage } from '@/api/uploadImage.js'
+import dayjs from 'dayjs'
+// #ifdef H5
+import quill from 'quill'
+window.Quill = quill
+// #endif
+
+// 组织数组
+const orgRange = ref([])
+
+// 报名范围数组
+const addressList = ['全部', '组织成员']
+
+// 富文本编辑器实例
+const editorCtx = ref()
+
+// 富文本工具栏显示隐藏控制
+const showTool = ref(false)
+
+// 是否为大标题
+const isTitle = ref(false)
+
+// 是否加粗
+const isBold = ref(false)
+
+// 是否倾斜
+const isIncline = ref(false)
+
+// 提交数据
+const form = ref({
+	// 所属组织
+	orgName: '',
+	// 所属组织ID
+	orgId: '',
+	// 活动主题
+	theme: '',
+	// 活动详情
+	themeDetail: '',
+	// 活动开始时间
+	startTime: '',
+	// 活动结束时间
+	endTime: '',
+	// 活动地址
+	address: '',
+	// 纬度
+	lat: '',
+	// 经度
+	lng: '',
+	// 参与说明
+	describes: '',
+	// 报名开始时间
+	signsTime: '',
+	// 报名结束时间
+	signeTime: '',
+	// 报名总人数
+	totalNumber: '',
+	// 报名范围
+	addressRange: '',
+	// 组织成员:1 全部:2
+	scope: '',
+	// 咨询方式
+	phone: '',
+	// 活动相册
+	showPhoto: false,
+	// 是否可上传照片 是:1 否:2
+	isImage: 2
+})
+
+onMounted(() => {
+	// 获取组织分页下拉数据
+	getOrgList()
+})
+
+// 获取组织分页下拉数据
+const getOrgList = async () => {
+	let data = {
+		currentPage: 1,
+		pageCount: 100
+	}
+	const res = await getClubPage(data)
+	// console.log(res)
+	orgRange.value = res.data.list
+}
+
+// 选择所属组织时触发的回调
+const changeOrg = (e) => {
+	// console.log(e.detail.value)
+	let index = e.detail.value
+	form.value.orgName = orgRange.value[index].name
+	form.value.orgId = orgRange.value[index].id
+	// console.log(form.value)
+}
+
+// 富文本编辑器初始化完成时触发
+const handleReady = () => {
+	uni.createSelectorQuery()
+		.select('.editor')
+		.context((res) => {
+			// 获取富文本编辑器实例
+			editorCtx.value = res.context
+		})
+		.exec()
+}
+
+// 富文本编辑器聚焦时触发
+const handleFocus = () => {
+	showTool.value = true
+}
+
+// 富文本编辑器失焦时触发
+const handleBlur = () => {
+	// showTool.value = false
+	editorCtx.value.getContents({
+		success: (res) => {
+			// console.log(res)
+			if (res.html.trim() == '<p><br></p>') {
+				uni.showToast({
+					title: '活动详情不能为空',
+					icon: 'none'
+				})
+				return
+			} else {
+				// getImgSrc(res.html)
+				form.value.themeDetail = res.html
+				// console.log(form.value)
+			}
+		}
+	})
+}
+
+// 改变编辑器内样式时触发
+const handleStatusChange = (e) => {
+	// console.log(e.detail)
+	let detail = e.detail
+	checkStatus(detail, 'header')
+	checkStatus(detail, 'bold')
+	checkStatus(detail, 'italic')
+}
+
+// 校验工具栏是否应该高亮
+const checkStatus = (detail, name) => {
+	if (detail.hasOwnProperty(name)) {
+		if (name == 'header') {
+			isTitle.value = true
+		}
+		if (name == 'bold') {
+			isBold.value = true
+		}
+		if (name == 'italic') {
+			isIncline.value = true
+		}
+	} else {
+		if (name == 'header') {
+			isTitle.value = false
+		}
+		if (name == 'bold') {
+			isBold.value = false
+		}
+		if (name == 'italic') {
+			isIncline.value = false
+		}
+	}
+}
+
+// 点击大标题图标回调
+const handleTitle = () => {
+	isTitle.value = !isTitle.value
+	editorCtx.value.format('header', isTitle.value ? 'h2' : '')
+}
+
+// 点击加粗图标回调
+const handleBold = () => {
+	isBold.value = !isBold.value
+	editorCtx.value.format('bold')
+}
+
+// 点击倾斜图标回调
+const handleIncline = () => {
+	isIncline.value = !isIncline.value
+	editorCtx.value.format('italic')
+}
+
+// 点击横线图标回调
+const handleRowLine = () => {
+	editorCtx.value.insertDivider()
+}
+
+// 点击图片图标回调
+const handleImage = () => {
+	uni.chooseImage({
+		success: async (res) => {
+			// console.log(res)
+
+			uni.showLoading({
+				title: '上传中...',
+				mask: true
+			})
+
+			for (let item of res.tempFilePaths) {
+				let temp = await uploadImage(item)
+				let result = JSON.parse(temp.data)
+				// console.log(result)
+
+				if (result.code == 200) {
+					// 编辑器插入图片
+					editorCtx.value.insertImage({
+						src: result.data.fileUrl
+					})
+				}
+			}
+			uni.hideLoading()
+		}
+	})
+}
+
+// 点击确认图标回调
+const handleFinish = () => {
+	showTool.value = false
+	editorCtx.value.getContents({
+		success: (res) => {
+			// console.log(res)
+			if (res.html.trim() == '<p><br></p>') {
+				uni.showToast({
+					title: '活动详情不能为空',
+					icon: 'none'
+				})
+				return
+			} else {
+				// getImgSrc(res.html)
+				form.value.themeDetail = res.html
+				// console.log(form.value)
+			}
+		}
+	})
+}
+
+// 选择活动开始时间回调
+// const changeStartTime = (e) => {
+// 	console.log(e)
+// 	console.log(form.value.startTime)
+// 	// form.value.startTime = e.detail.value + ' 00:00:00'
+// 	// console.log(form.value)
+// }
+
+// 选择活动结束时间回调
+// const changeEndTime = (e) => {
+// 	form.value.endTime = e.detail.value + ' 00:00:00'
+// 	// console.log(form.value)
+// }
+
+// 点击选择地址回调
+const clickAddress = () => {
+	uni.chooseLocation({
+		success: (res) => {
+			// console.log(res)
+			form.value.address = res.address
+			form.value.lat = res.latitude
+			form.value.lng = res.longitude
+			// console.log(form.value)
+		},
+		fail: (err) => {
+			console.log(err)
+		}
+	})
+}
+
+// 参与说明输入框失去焦点回调
+const inputDesc = (e) => {
+	// console.log(e)
+	form.value.describes = e.detail.value
+	// console.log(form.value)
+}
+
+// 选择报名开始时间回调
+// const changeApplyStartTime = (e) => {
+// 	form.value.signsTime = e.detail.value + ' 00:00:00'
+// 	// console.log(form.value)
+// }
+
+// 选择报名结束时间回调
+// const changeApplyEndTime = (e) => {
+// 	form.value.signeTime = e.detail.value + ' 00:00:00'
+// 	// console.log(form.value)
+// }
+
+// 选择报名范围时的回调
+const changeRange = (e) => {
+	let index = e.detail.value
+	form.value.addressRange = addressList[index]
+	form.value.scope = index == 0 ? 2 : 1
+	// console.log(form.value)
+}
+
+// 活动相册切换回调
+const switchChange = (e) => {
+	// console.log(e)
+	form.value.showPhoto = e.detail.value
+	form.value.isImage = form.value.showPhoto ? 1 : 2
+	// console.log(form.value)
+}
+
+// 提交按钮回调
+const handleSubmit = () => {
+	// 校验提交值是否为空
+	let flag = checkValue()
+
+	if (!flag) {
+		uni.showModal({
+			title: '提示',
+			content: '确定提交吗?',
+			success: (res) => {
+				if (res.confirm) {
+					submitReq()
+				}
+			}
+		})
+	}
+}
+
+// 提交请求
+const submitReq = async () => {
+	const res = await getInsertActivity(form.value)
+	uni.showToast({
+		title: res.message,
+		icon: 'success',
+		mask: true
+	})
+	setTimeout(() => {
+		uni.reLaunch({
+			url: '/pages/activity/activity'
+		})
+	}, 1500)
+}
+
+// 校验提交值是否为空
+const checkValue = () => {
+	let keyList = Object.keys(form.value)
+
+	// 提示信息
+	keyList.forEach((ele) => {
+		// console.log(ele)
+		if (ele == 'phone') {
+			let regPhone = /^1[3-9]\d{9}$/
+
+			if (!regPhone.test(form.value[ele])) {
+				uni.showToast({
+					title: `手机号码格式有误`,
+					icon: 'none'
+				})
+
+				// 符合条件时强制打断循环
+				keyList.length = 0
+			}
+		}
+		if (form.value[ele] === '') {
+			uni.showToast({
+				title: `${mapValue(ele)}不能为空`,
+				icon: 'none'
+			})
+
+			// 符合条件时强制打断循环
+			keyList.length = 0
+		}
+	})
+
+	// 判断是否是空值 true 为有空值
+	let t = keyList.every((ele) => form.value[ele] === '')
+	return t
+}
+
+// 映射
+const mapValue = (v) => {
+	let msg = ''
+	switch (v) {
+		case 'orgName':
+		case 'orgId':
+			msg = '所属组织'
+
+			break
+
+		case 'theme':
+			msg = '活动主题'
+
+			break
+
+		case 'themeDetail':
+			msg = '活动详情'
+
+			break
+
+		case 'startTime':
+			msg = '活动开始时间'
+
+			break
+
+		case 'endTime':
+			msg = '活动结束时间'
+
+			break
+
+		case 'address':
+		case 'lat':
+		case 'lng':
+			msg = '活动地址'
+
+			break
+
+		case 'describes':
+			msg = '参与说明'
+
+			break
+
+		case 'signsTime':
+			msg = '报名开始时间'
+
+			break
+
+		case 'signeTime':
+			msg = '报名结束时间'
+
+			break
+
+		case 'totalNumber':
+			msg = '报名总人数'
+
+			break
+
+		case 'addressRange':
+		case 'scope':
+			msg = '报名范围'
+
+			break
+
+		case 'phone':
+			msg = '咨询方式'
+
+			break
+
+		default:
+			msg = '内容'
+			break
+	}
+
+	return msg
+}
+</script>
+
+<style lang="scss" scoped>
+.content {
+	.box {
+		margin-bottom: 15rpx;
+		font-size: 28rpx;
+
+		.box_title {
+			display: flex;
+			margin-bottom: 15rpx;
+
+			.text {
+				color: #d43030;
+			}
+		}
+
+		.box_input {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			padding: 0 22rpx;
+			width: 710rpx;
+			height: 80rpx;
+			border-radius: 6rpx;
+			background-color: #f5f5f5;
+
+			.input {
+				width: 100%;
+				height: 100%;
+				font-size: 28rpx;
+			}
+
+			.picker {
+				color: #a6a6a6;
+				overflow: hidden;
+				white-space: nowrap;
+				text-overflow: ellipsis;
+			}
+
+			.pick {
+				color: #000;
+			}
+		}
+
+		.box_textarea {
+			width: 710rpx;
+			height: 308rpx;
+			border-radius: 6rpx;
+			background-color: #f5f5f5;
+
+			.textarea {
+				box-sizing: border-box;
+				padding: 10rpx;
+				width: 100%;
+				height: 100%;
+				font-size: 28rpx;
+			}
+		}
+
+		.box_richtext {
+			position: relative;
+			box-sizing: border-box;
+			padding: 15rpx 20rpx;
+			width: 710rpx;
+			height: 400rpx;
+			border-radius: 6rpx;
+			border: 2rpx solid #e6e6e6;
+			background-color: #f5f5f5;
+
+			.editor {
+				width: 100%;
+				height: 302rpx;
+				min-height: 302rpx;
+			}
+
+			.tools {
+				position: absolute;
+				left: 0;
+				right: 0;
+				bottom: 0;
+				display: flex;
+				justify-content: space-around;
+				align-items: center;
+				height: 80rpx;
+			}
+		}
+	}
+
+	.btn {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		margin: 95rpx 0;
+		width: 710rpx;
+		height: 80rpx;
+		font-size: 28rpx;
+		color: #fff;
+		border-radius: 8rpx;
+		background-color: #007aff;
+	}
+}
+
+::v-deep {
+	.uni-date-editor--x {
+		background-color: #f5f5f5;
+	}
+	.uni-date-x {
+		background-color: #f5f5f5;
+	}
+}
+</style>

+ 80 - 0
components/common-controlTag/common-controlTag.vue

@@ -0,0 +1,80 @@
+<template>
+	<view class="content" :class="{ between: type == 'between' }">
+		<view class="box" :class="{ active: currentIndex == index }" v-for="(item, index) in tagList" :key="index" @click="handleChange(index)">
+			{{ rangekey ? item[rangekey] || item : item }}
+		</view>
+	</view>
+</template>
+
+<script setup>
+import { onLoad } from '@dcloudio/uni-app'
+import { ref, watch } from 'vue'
+
+const $props = defineProps(['tagList', 'type', 'rangekey', 'currentIndex'])
+const $emit = defineEmits(['change'])
+
+// 当前索引值
+const currentIndex = ref(0)
+
+onLoad(() => {
+	if ($props.currentIndex) {
+		currentIndex.value = $props.currentIndex
+	}
+})
+
+// 监听索引值变化
+watch(
+	() => $props.currentIndex,
+	(a, b) => {
+		currentIndex.value = $props.currentIndex
+	}
+)
+
+// 切换tag时的回调
+const handleChange = (index) => {
+	if (currentIndex.value != index) {
+		currentIndex.value = index
+		// 给父组件传值
+		$emit('change', currentIndex.value)
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+.content {
+	display: flex;
+	align-items: center;
+	height: 70rpx;
+	overflow-x: auto;
+
+	.box {
+		position: relative;
+		padding: 0 10rpx;
+		margin-right: 35rpx;
+		height: 50rpx;
+		font-size: 32rpx;
+		text-align: center;
+		white-space: nowrap;
+		color: #333333;
+	}
+
+	.active {
+		color: #000;
+		font-weight: bold;
+
+		&::after {
+			position: absolute;
+			bottom: 12rpx;
+			left: 0;
+			content: '';
+			width: 100%;
+			height: 9rpx;
+			background-image: linear-gradient(270deg, rgba(91, 186, 255, 0.5) 0%, rgba(0, 119, 255, 0.5) 100%);
+		}
+	}
+}
+
+.between {
+	justify-content: space-between;
+}
+</style>

+ 59 - 0
components/common-search/common-search.vue

@@ -0,0 +1,59 @@
+<template>
+	<view class="common_search">
+		<uni-icons type="search" size="30" color="#999999"></uni-icons>
+		<input v-model="searchValue" class="input" type="text" :placeholder="placeholder" />
+		<view class="btn" @click="handleSearch">搜索</view>
+	</view>
+</template>
+
+<script setup>
+import { ref } from 'vue'
+
+defineProps(['placeholder'])
+const $emit = defineEmits(['change'])
+
+// 搜索框绑定值
+const searchValue = ref('')
+
+// 点击搜索按钮回调
+const handleSearch = () => {
+	// console.log(searchValue.value)
+	// if (searchValue.value.trim()) {
+	// 	$emit('change', searchValue.value.trim())
+	// }
+
+	$emit('change', searchValue.value.trim())
+}
+</script>
+
+<style lang="scss" scoped>
+.common_search {
+	display: flex;
+	align-items: center;
+	padding: 0 5rpx 0 35rpx;
+	width: 714rpx;
+	height: 80rpx;
+	border-radius: 145rpx;
+	border: 2rpx solid #e5e5e5;
+	background-color: #f5f5f5;
+
+	.input {
+		flex: 1;
+		padding: 20rpx;
+		font-size: 28rpx;
+	}
+
+	.btn {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		margin-left: auto;
+		width: 141rpx;
+		height: 69rpx;
+		font-size: 28rpx;
+		color: #fff;
+		border-radius: 68rpx;
+		background-color: #007aff;
+	}
+}
+</style>

+ 159 - 0
components/my-join/my-join.vue

@@ -0,0 +1,159 @@
+<template>
+	<view class="content">
+		<!-- 活动列表区域 -->
+		<view class="list">
+			<!-- 每一个活动区域 -->
+			<view class="list_box" v-for="item in dataList" :key="item.id" @click="clickItem(item.id)">
+				<view class="box_top">
+					<img v-if="item.poster" class="img" :src="item.poster" mode="aspectFill" />
+					<img v-else class="img" src="@/static/images/3.png" mode="aspectFill" />
+					<view class="top_msg">
+						<view class="msg_title">{{ item.theme }}</view>
+						<view class="msg_name">{{ item.orgName }}</view>
+						<view class="">{{ item.startTime }} 至 {{ item.startTime }}</view>
+					</view>
+				</view>
+				<view v-if="item.statuName == '报名进行中'" class="box_bottom on">报名进行中</view>
+				<view v-if="item.statuName == '活动已结束'" class="box_bottom off">活动已结束</view>
+				<view v-if="item.statuName == '活动未开始'" class="box_bottom nostart">活动未开始</view>
+			</view>
+
+			<noData v-if="!dataList.length"></noData>
+		</view>
+	</view>
+</template>
+
+<script setup>
+import { onReachBottom } from '@dcloudio/uni-app'
+import { ref, onMounted } from 'vue'
+import { getMyJoinActivityPages } from '@/api/index.js'
+
+// 当前页
+const currentPage = ref(1)
+// 每页多少条
+const pageCount = ref(6)
+// 总条数
+const total = ref(0)
+// 列表数据
+const dataList = ref([])
+
+onMounted(() => {
+	// 获取我参加的活动分页数据
+	getData()
+})
+
+onReachBottom(() => {
+	if (total.value > dataList.value.length) {
+		currentPage.value++
+		getData()
+	} else {
+		uni.showToast({
+			title: '没有更多数据了~~',
+			icon: 'none'
+		})
+	}
+})
+
+// 获取我参加的活动分页数据
+const getData = async () => {
+	let data = {
+		currentPage: currentPage.value,
+		pageCount: pageCount.value
+	}
+	const res = await getMyJoinActivityPages(data)
+	// console.log(res)
+	dataList.value = [...dataList.value, ...res.data.list]
+	total.value = res.data.totalCount
+}
+
+// 点击每一个活动的回调
+const clickItem = (id) => {
+	uni.navigateTo({
+		url: `/pages/act_detail/act_detail?id=${id}`
+	})
+}
+</script>
+
+<style lang="scss" scoped>
+.content {
+	.list {
+		margin-top: 20rpx;
+
+		.list_box {
+			display: flex;
+			flex-direction: column;
+			justify-content: space-between;
+			padding: 30rpx 25rpx;
+			margin-bottom: 20rpx;
+			width: 714rpx;
+			height: 344rpx;
+			border-radius: 28rpx;
+			box-shadow: 0 4rpx 35rpx #d3d3d3;
+			background-color: #fff;
+
+			.box_top {
+				display: flex;
+				justify-content: space-between;
+
+				.img {
+					margin-right: 24rpx;
+					width: 249rpx;
+					height: 168rpx;
+					border-radius: 8rpx;
+				}
+
+				.top_msg {
+					display: flex;
+					flex-direction: column;
+					justify-content: space-between;
+					flex: 1;
+					font-size: 24rpx;
+					color: #808080;
+					overflow: hidden;
+
+					.msg_title {
+						font-size: 28rpx;
+						font-weight: bold;
+						color: #000;
+						display: -webkit-box;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 2;
+						overflow: hidden;
+					}
+
+					.msg_name {
+						white-space: nowrap;
+						overflow: hidden;
+						text-overflow: ellipsis;
+					}
+				}
+			}
+
+			.box_bottom {
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				width: 661rpx;
+				height: 80rpx;
+				border-radius: 8rpx;
+			}
+
+			.on {
+				color: #fff;
+				background-color: #007aff;
+			}
+
+			.off {
+				color: #a6a6a6;
+				background-color: #e5e5e5;
+			}
+
+			.nostart {
+				color: #fff;
+				background-color: #007aff;
+				opacity: 0.3;
+			}
+		}
+	}
+}
+</style>

+ 247 - 0
components/my-set/my-set.vue

@@ -0,0 +1,247 @@
+<template>
+	<view class="content">
+		<!-- 状态栏分段器区域 -->
+		<view class="status">
+			<view class="status_box" :class="{ active: currentIndex == index }" v-for="(item, index) in statusList" :key="index" @click="changeIndex(index)">
+				{{ item }}
+			</view>
+		</view>
+
+		<!-- 列表区域 -->
+		<view class="list">
+			<!-- 每一个活动区域 -->
+			<view class="list_box" v-for="item in dataList" :key="item.id" @click="clickItem(item.id)">
+				<view class="box_top">
+					<img v-if="item.poster" class="img" :src="item.poster" mode="aspectFill" />
+					<img v-else class="img" src="@/static/images/3.png" mode="aspectFill" />
+					<view class="top_msg">
+						<view class="msg_title">{{ item.theme }}</view>
+						<view class="msg_name">{{ item.orgName }}</view>
+						<view class="">{{ item.startTime }} 至 {{ item.endTime }}</view>
+					</view>
+				</view>
+				<view class="box_bottom">
+					<view class="bottom_left">
+						审批意见:
+						<text v-if="item.passName == '待审核'" class="ing">审核中...</text>
+						<text v-if="item.passName == '已通过'" class="pass">审核通过</text>
+						<text v-if="item.passName == '已拒绝'" class="reject">信息违规,请重新提交。</text>
+					</view>
+					<view v-if="item.passName == '待审核'" class="bottom_right ing_btn">审核中...</view>
+					<view v-if="item.passName == '已通过'" class="bottom_right pass_btn">审批通过</view>
+					<view v-if="item.passName == '已拒绝'" class="bottom_right reject_btn">驳回</view>
+				</view>
+			</view>
+
+			<!-- 没有数据时展示的页面 -->
+			<noData v-if="!dataList.length"></noData>
+		</view>
+	</view>
+</template>
+
+<script setup>
+import { onReachBottom } from '@dcloudio/uni-app'
+import { ref, onMounted } from 'vue'
+import { getMyActivityPages } from '@/api/index.js'
+
+// 状态栏数组
+const statusList = ['全部', '审核中', '审核通过', '驳回']
+// 状态栏当前索引
+const currentIndex = ref(0)
+// 当前页
+const currentPage = ref(1)
+// 每页多少条
+const pageCount = ref(6)
+// 总条数
+const total = ref(0)
+// 列表数据
+const dataList = ref([])
+
+onMounted(() => {
+	// 获取我发起的活动分页数据
+	getData()
+})
+
+// 页面触底时触发的回调
+onReachBottom(() => {
+	if (total.value > dataList.value.length) {
+		currentPage.value++
+		getData()
+	} else {
+		uni.showToast({
+			title: '没有更多数据了~~',
+			icon: 'none'
+		})
+	}
+})
+
+// 获取我发起的活动分页数据
+const getData = async () => {
+	let data = {
+		currentPage: currentPage.value,
+		pageCount: pageCount.value,
+		isPass: currentIndex.value
+	}
+	const res = await getMyActivityPages(data)
+	// console.log(res)
+	dataList.value = [...dataList.value, ...res.data.list]
+	total.value = res.data.totalCount
+}
+
+// 状态栏切换时的回调
+const changeIndex = (e) => {
+	if (currentIndex.value != e) {
+		currentIndex.value = e
+		currentPage.value = 1
+		dataList.value = []
+		getData()
+	}
+}
+
+// 点击每一个活动的回调
+const clickItem = (id) => {
+	uni.navigateTo({
+		url: `/pages/act_detail/act_detail?id=${id}`
+	})
+}
+</script>
+
+<style lang="scss" scoped>
+.content {
+	.status {
+		display: flex;
+		align-items: center;
+		justify-content: space-around;
+		margin-top: 20rpx;
+		width: 712rpx;
+		height: 90rpx;
+		font-size: 28rpx;
+		border-radius: 8rpx;
+		background-color: #f2f7ff;
+
+		.status_box {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 211rpx;
+			height: 71rpx;
+			border-radius: 8rpx;
+		}
+
+		.active {
+			font-size: 30rpx;
+			color: #0061ff;
+			border: 2rpx solid #0061ff;
+			background-color: rgba(0, 97, 255, 0.1);
+		}
+	}
+
+	.list {
+		margin-top: 20rpx;
+
+		.list_box {
+			display: flex;
+			flex-direction: column;
+			justify-content: space-between;
+			padding: 30rpx 25rpx;
+			margin-bottom: 20rpx;
+			width: 714rpx;
+			height: 344rpx;
+			border-radius: 28rpx;
+			box-shadow: 0 4rpx 35rpx #d3d3d3;
+			background-color: #fff;
+
+			.box_top {
+				display: flex;
+				justify-content: space-between;
+				padding-bottom: 40rpx;
+				border-bottom: 2rpx solid #e5e5e5;
+
+				.img {
+					margin-right: 24rpx;
+					width: 249rpx;
+					height: 168rpx;
+					border-radius: 8rpx;
+				}
+
+				.top_msg {
+					display: flex;
+					flex-direction: column;
+					justify-content: space-between;
+					flex: 1;
+					font-size: 24rpx;
+					color: #808080;
+					overflow: hidden;
+
+					.msg_title {
+						font-size: 28rpx;
+						font-weight: bold;
+						color: #000;
+						display: -webkit-box;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 2;
+						overflow: hidden;
+					}
+
+					.msg_name {
+						white-space: nowrap;
+						overflow: hidden;
+						text-overflow: ellipsis;
+					}
+				}
+			}
+
+			.box_bottom {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				margin-top: 18rpx;
+				height: 104rpx;
+				font-size: 28rpx;
+
+				.bottom_left {
+					display: flex;
+					flex: 1;
+					padding-right: 20rpx;
+					white-space: nowrap;
+					overflow: hidden;
+
+					.pass {
+						color: #007aff;
+					}
+					.ing {
+						color: #ff5733;
+					}
+					.reject {
+						color: #d43030;
+						white-space: nowrap;
+						text-overflow: ellipsis;
+						overflow: hidden;
+					}
+				}
+
+				.bottom_right {
+					display: flex;
+					justify-content: center;
+					align-items: center;
+					width: 157rpx;
+					height: 55rpx;
+					color: #fff;
+					font-size: 28rpx;
+					border-radius: 70rpx 40rpx 0 70rpx;
+				}
+
+				.pass_btn {
+					background: linear-gradient(90deg, #366fff 0%, #5da0fc 100%);
+				}
+				.ing_btn {
+					background: linear-gradient(90deg, #ff7045 0%, #f7a172 100%);
+				}
+				.reject_btn {
+					background: linear-gradient(90deg, #d43030 0%, #f56c6c 100%);
+				}
+			}
+		}
+	}
+}
+</style>

+ 23 - 0
components/noData/noData.vue

@@ -0,0 +1,23 @@
+<template>
+	<view class="content">
+		<img class="img" src="@/static/images/8.png" />
+		<view class="info">暂无数据</view>
+	</view>
+</template>
+
+<script setup></script>
+
+<style lang="scss" scoped>
+.content {
+	padding: 150rpx 30rpx;
+	text-align: center;
+
+	.img {
+		height: 508rpx;
+	}
+
+	.info {
+		color: #999999;
+	}
+}
+</style>

+ 50 - 0
components/org-item/org-item.vue

@@ -0,0 +1,50 @@
+<template>
+	<view class="content">
+		<!-- 名字区域 -->
+		<view class="msg">
+			<view class="msg_name">{{ item.categoryName }}</view>
+			({{ item.count }})
+		</view>
+
+		<!-- 图标区域 -->
+		<img class="img" src="@/static/images/2.png" />
+
+		<!-- 背景图区域 插槽 -->
+		<slot name="bg"></slot>
+	</view>
+</template>
+
+<script setup>
+defineProps(['item'])
+</script>
+
+<style lang="scss" scoped>
+.content {
+	position: relative;
+	width: 347rpx;
+	height: 177rpx;
+	font-size: 28rpx;
+	font-weight: bold;
+	border-radius: 12rpx;
+	background-color: #f0f7ff;
+	border: 2rpx solid #e6e6e6;
+
+	.msg {
+		display: flex;
+		margin: 27rpx 0 0 24rpx;
+
+		.msg_name {
+			max-width: 180rpx;
+			white-space: nowrap;
+			overflow: hidden;
+			text-overflow: ellipsis;
+		}
+	}
+
+	.img {
+		margin: 30rpx 0 0 66rpx;
+		width: 70rpx;
+		height: 47rpx;
+	}
+}
+</style>

+ 265 - 0
components/school-form-launch/school-form-launch.vue

@@ -0,0 +1,265 @@
+<template>
+	<view class="content">
+		<!-- 上榜方式区域 -->
+		<view class="box">
+			<view class="box_title">
+				<text class="text">*</text>
+				上榜方式
+			</view>
+			<picker :range="listRange" @change="changeMode">
+				<view class="box_input">
+					<view class="picker" :class="{ pick: form.mode }">{{ form.mode ? form.mode : '请选择上榜方式' }}</view>
+					<uni-icons type="down" size="24" color="#A6A6A6"></uni-icons>
+				</view>
+			</picker>
+		</view>
+
+		<!-- 上传照片区域 -->
+		<view class="upload">
+			<image v-if="form.image" class="img" :src="form.image" mode="aspectFill" @click="clickImg(form.image)"></image>
+
+			<view v-else class="upload_box" @click="handleUpload">
+				<uni-icons type="plusempty" size="30" color="#A6A6A6"></uni-icons>
+				上传照片
+			</view>
+
+			<!-- 删除图标区域 -->
+			<view class="delete" v-if="form.image" @click="clickClose">
+				<uni-icons type="close" size="15" color="#fff"></uni-icons>
+			</view>
+		</view>
+
+		<!-- 人物简介区域 -->
+		<view class="desc">
+			<view class="desc_title">人物简介</view>
+
+			<textarea v-model="form.descript" class="textarea" maxlength="-1" placeholder="请输入人物简介"></textarea>
+		</view>
+
+		<!-- 提交按钮区域 -->
+		<view class="btn" @click="handleSubmit">提交</view>
+	</view>
+</template>
+
+<script setup>
+import { ref } from 'vue'
+import { uploadImage } from '@/api/uploadImage.js'
+import { getApplication } from '@/api/index.js'
+
+const $emit = defineEmits(['change'])
+
+// 上榜方式筛选框数组
+const listRange = ['自荐', '学院推荐']
+
+// 提交数据
+const form = ref({
+	// 上榜方式(展示)
+	mode: '',
+	// 自荐:1  学院推荐:2 (接口参数)
+	preferredMethod: '',
+	// 照片
+	image: '',
+	// 人物简介
+	descript: ''
+})
+
+// 选择上榜方式时的回调
+const changeMode = (e) => {
+	// console.log(e)
+	let index = e.detail.value
+	form.value.mode = listRange[index]
+	form.value.preferredMethod = index - 0 + 1
+	// console.log(form.value)
+}
+
+// 上传照片回调
+const handleUpload = () => {
+	uni.chooseImage({
+		count: 1,
+		success: async (res) => {
+			// console.log(res)
+
+			uni.showLoading({
+				title: '上传中...',
+				mask: true
+			})
+
+			let temp = await uploadImage(res.tempFilePaths[0])
+			let result = JSON.parse(temp.data)
+			// console.log(result)
+
+			if (result.code == 200) {
+				form.value.image = result.data.fileUrl
+			}
+
+			// console.log(form.value)
+			uni.hideLoading()
+		}
+	})
+}
+
+// 点击图片回调
+const clickImg = (e) => {
+	uni.previewImage({
+		urls: [e]
+	})
+}
+
+// 点击删除图标回调
+const clickClose = () => {
+	uni.showModal({
+		title: '提示',
+		content: '确定删除照片吗?',
+		success: (res) => {
+			if (res.confirm) {
+				form.value.image = ''
+			}
+		}
+	})
+}
+
+// 提交按钮回调
+const handleSubmit = () => {
+	// console.log(form.value)
+	uni.showModal({
+		title: '提示',
+		content: '确定提交吗?',
+		success: (res) => {
+			if (res.confirm) {
+				// 提交请求
+				handleSubmitReq()
+			}
+		}
+	})
+}
+
+// 提交请求
+const handleSubmitReq = async () => {
+	const res = await getApplication(form.value)
+	// console.log(res)
+	if (res.code == 200) {
+		uni.showToast({
+			title: '提交成功',
+			icon: 'success'
+		})
+
+		setTimeout(() => {
+			$emit('change', 1)
+		}, 1500)
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+.content {
+	margin-top: 20rpx;
+
+	.box {
+		margin-bottom: 15rpx;
+		font-size: 28rpx;
+
+		.box_title {
+			display: flex;
+			margin-bottom: 15rpx;
+
+			.text {
+				color: #d43030;
+			}
+		}
+
+		.box_input {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			padding: 0 22rpx;
+			width: 710rpx;
+			height: 80rpx;
+			border-radius: 6rpx;
+			background-color: #f5f5f5;
+
+			.input {
+				height: 100%;
+				font-size: 28rpx;
+			}
+
+			.picker {
+				color: #a6a6a6;
+			}
+
+			.pick {
+				color: #000;
+			}
+		}
+	}
+
+	.upload {
+		position: relative;
+		margin-top: 56rpx;
+
+		.img {
+			width: 140rpx;
+			height: 140rpx;
+			border-radius: 8rpx;
+		}
+
+		.upload_box {
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			align-items: center;
+			margin-top: 30rpx;
+			width: 140rpx;
+			height: 140rpx;
+			color: #a6a6a6;
+			font-size: 24rpx;
+			border-radius: 8rpx;
+			background-color: #f0f6fc;
+		}
+
+		.delete {
+			z-index: 1;
+			position: absolute;
+			top: 5rpx;
+			left: 102rpx;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 30rpx;
+			height: 30rpx;
+		}
+	}
+
+	.desc {
+		margin-top: 30rpx;
+
+		.desc_title {
+			font-size: 28rpx;
+			font-weight: bold;
+		}
+
+		.textarea {
+			box-sizing: border-box;
+			padding: 10rpx;
+			margin-top: 15rpx;
+			width: 710rpx;
+			height: 308rpx;
+			font-size: 28rpx;
+			border-radius: 6rpx;
+			background-color: #f5f5f5;
+		}
+	}
+
+	.btn {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		margin: 100rpx auto;
+		width: 661rpx;
+		height: 90rpx;
+		font-size: 28rpx;
+		color: #fff;
+		border-radius: 8rpx;
+		background-color: #007aff;
+	}
+}
+</style>

+ 249 - 0
components/school-form-record/school-form-record.vue

@@ -0,0 +1,249 @@
+<template>
+	<view class="content">
+		<!-- 选择时间区域 -->
+		<view class="time">
+			<view class="time_box" :class="{ active: currentIndex == index }" v-for="(item, index) in timeList" :key="item.id" @click="changeTimeIndex(index)">
+				{{ item.name }}
+			</view>
+		</view>
+
+		<!-- 列表区域 -->
+		<view class="list">
+			<!-- 每一个记录区域 -->
+			<view class="list_box" v-for="item in dataList" :key="item.id">
+				<!-- 申请状态区域 -->
+				<view class="box_status ing" v-if="item.passName == '待审核'">审核中</view>
+				<view class="box_status pass" v-if="item.passName == '已通过'">已通过</view>
+				<view class="box_status nopass" v-if="item.passName == '已拒绝'">驳回</view>
+				<!-- 姓名 -->
+				<view class="box_item">
+					<view class="item_key">姓名:</view>
+					<view class="item_value">{{ item.name }}</view>
+				</view>
+
+				<!-- 微卡 -->
+				<view class="box_item">
+					<view class="item_key">微卡:</view>
+					<view class="item_value">{{ item.cardNumber }}</view>
+				</view>
+
+				<!-- 手机 -->
+				<view class="box_item">
+					<view class="item_key">手机:</view>
+					<view class="item_value">{{ item.phone }}</view>
+				</view>
+
+				<!-- 学院 -->
+				<view class="box_item">
+					<view class="item_key">学院:</view>
+					<view class="item_value">{{ item.collegeName ? item.collegeName + '-' : '' }}{{ item.majorName ? item.majorName + '-' : '' }}{{ item.className }}</view>
+				</view>
+				<!-- 创建时间 -->
+				<view class="box_item">
+					<view class="item_key">创建时间:</view>
+					<view class="item_value">{{ item.createTime }}</view>
+				</view>
+
+				<!-- 上榜方式 -->
+				<view class="box_item">
+					<view class="item_key">上榜方式:</view>
+					<view class="item_value">{{ item.preferredMethodName }}</view>
+				</view>
+
+				<!-- 照片 -->
+				<view class="box_item">
+					<view class="item_key">照片:</view>
+					<view class="item_value">
+						<image class="img" :src="item.image" mode="aspectFill" @click="clickImg(item.image)"></image>
+					</view>
+				</view>
+
+				<!-- 人物简介 -->
+				<view class="box_item">
+					<view class="item_key">人物简介:</view>
+				</view>
+				<view class="box_desc">
+					{{ item.descript }}
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script setup>
+import { onReachBottom } from '@dcloudio/uni-app'
+import { ref, onMounted } from 'vue'
+import { getWeekTypes, getApplicationRecord } from '@/api/index.js'
+
+// 时间分段器数组
+const timeList = ref([])
+// 时间分段器当前索引
+const currentIndex = ref(0)
+// 当前页
+const currentPage = ref(1)
+// 每页多少条
+const pageCount = ref(6)
+// 总条数
+const total = ref(0)
+// 列表数据
+const dataList = ref([])
+
+onMounted(() => {
+	// 获取时间类型列表数据
+	getWeekData()
+})
+
+// 页面触底触发的回调
+onReachBottom(() => {
+	if (total.value > dataList.value.length) {
+		currentPage.value++
+		getDataList()
+	} else {
+		uni.showToast({
+			title: '没有更多数据了~~',
+			icon: 'none'
+		})
+	}
+})
+
+// 获取时间类型列表数据
+const getWeekData = async () => {
+	const res = await getWeekTypes()
+	// console.log(res)
+	timeList.value = res.data
+
+	// 获取我的申请分页数据
+	getDataList()
+}
+
+// 获取我的申请分页数据
+const getDataList = async () => {
+	let data = {
+		currentPage: currentPage.value,
+		pageCount: pageCount.value,
+		weekType: timeList.value[currentIndex.value].id
+	}
+	const res = await getApplicationRecord(data)
+	// console.log(res)
+	dataList.value = [...dataList.value, ...res.data.list]
+	total.value = res.data.totalCount
+}
+
+// 分段器切换回调
+const changeTimeIndex = (e) => {
+	if (currentIndex.value != e) {
+		currentIndex.value = e
+		currentPage.value = 1
+		dataList.value = []
+		getDataList()
+	}
+}
+
+// 点击图片回调
+const clickImg = (e) => {
+	uni.previewImage({
+		urls: [e]
+	})
+}
+</script>
+
+<style lang="scss" scoped>
+.content {
+	.time {
+		display: flex;
+		align-items: center;
+		justify-content: space-around;
+		margin-top: 20rpx;
+		width: 712rpx;
+		height: 90rpx;
+		font-size: 28rpx;
+		border-radius: 8rpx;
+		background-color: #f2f7ff;
+
+		.time_box {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 211rpx;
+			height: 71rpx;
+			border-radius: 8rpx;
+		}
+
+		.active {
+			font-size: 30rpx;
+			color: #0061ff;
+			border: 2rpx solid #0061ff;
+			background-color: rgba(0, 97, 255, 0.1);
+		}
+	}
+
+	.list {
+		margin-top: 28rpx;
+		font-size: 28rpx;
+
+		.list_box {
+			position: relative;
+			margin-bottom: 20rpx;
+			padding: 15rpx 30rpx;
+			width: 714rpx;
+			line-height: 50rpx;
+			border-radius: 28rpx;
+			box-shadow: 0 4rpx 35rpx rgba(211, 211, 211, 0.32);
+
+			.box_status {
+				position: absolute;
+				top: 27rpx;
+				right: 23rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				width: 128rpx;
+				height: 55rpx;
+				color: #fff;
+				border-radius: 71rpx 40rpx 0 70rpx;
+			}
+
+			.ing {
+				background: linear-gradient(90deg, #ff7045 0%, #f7a172 100%);
+			}
+
+			.pass {
+				background: linear-gradient(90deg, #366fff 0%, #5da0fc 100%);
+			}
+
+			.nopass {
+				background: linear-gradient(90deg, #d43030 0%, #f56c6c 100%);
+			}
+
+			.box_item {
+				display: flex;
+
+				.item_key {
+					font-weight: bold;
+				}
+
+				.item_value {
+					flex: 1;
+					color: #666666;
+					overflow: hidden;
+					white-space: nowrap;
+					text-overflow: ellipsis;
+
+					.img {
+						margin-top: 5rpx;
+						width: 136rpx;
+						height: 162rpx;
+						border-radius: 8rpx;
+					}
+				}
+			}
+
+			.box_desc {
+				margin-top: 10rpx;
+				color: #666666;
+				line-height: 40rpx;
+			}
+		}
+	}
+}
+</style>

+ 293 - 0
components/school-photo-upload-box/school-photo-upload-box.vue

@@ -0,0 +1,293 @@
+<template>
+	<view class="content">
+		<!-- 上传到区域 -->
+		<view class="box" v-if="type == 2">
+			<view class="box_title">
+				<text class="text">*</text>
+				上传到
+			</view>
+			<picker :range="listRange" range-key="name" @change="changeMode">
+				<view class="box_input">
+					<view class="picker" :class="{ pick: form.categoryName }">{{ form.categoryName ? form.categoryName : '请选择相册分组' }}</view>
+					<uni-icons type="down" size="24" color="#A6A6A6"></uni-icons>
+				</view>
+			</picker>
+		</view>
+
+		<!-- 上传照片区域 -->
+		<view class="upload">
+			<view class="img_box" v-if="form.images.length" v-for="(item, index) in form.images">
+				<image class="img" :src="item" mode="aspectFill" @click="clickImg(form.images, index)"></image>
+				<!-- 删除图标区域 -->
+				<view class="delete" v-if="form.images.length" @click="clickClose(index)">
+					<uni-icons type="close" size="15" color="#fff"></uni-icons>
+				</view>
+			</view>
+
+			<view v-if="form.images.length < 3" class="upload_box" @click="handleUpload">
+				<uni-icons type="plusempty" size="30" color="#A6A6A6"></uni-icons>
+				上传照片
+			</view>
+		</view>
+
+		<view class="btn" @click="handleSubmit">确认发布</view>
+	</view>
+</template>
+
+<script setup>
+import { ref, onMounted } from 'vue'
+import { getCategoryImages, getInsertImage, getReleaseImage } from '@/api/index.js'
+import { uploadImage } from '@/api/uploadImage.js'
+
+const $props = defineProps(['type', 'currentId'])
+const $emit = defineEmits(['change'])
+
+// 筛选框绑定数组
+const listRange = ref([])
+
+// 提交数据
+const form = ref({
+	// 相册分类名称
+	categoryName: '',
+	// 相册分类ID
+	categoryId: '',
+	// 照片链接集合
+	images: [],
+	// 活动id
+	id: ''
+})
+
+onMounted(() => {
+	// console.log($props.type)
+	if ($props.type == 1) {
+		form.value.id = $props.currentId
+	}
+	if ($props.type == 2) {
+		getTagList()
+	}
+})
+
+// 获取相册分类集合
+const getTagList = async () => {
+	const res = await getCategoryImages()
+	// console.log(res)
+	listRange.value = res.data
+}
+
+// 筛选框选择时的回调
+const changeMode = (e) => {
+	let index = e.detail.value
+	form.value.categoryName = listRange.value[index].name
+	form.value.categoryId = listRange.value[index].id
+	// console.log(form.value)
+}
+
+// 上传照片按钮回调
+const handleUpload = () => {
+	uni.chooseImage({
+		count: 3 - form.value.images.length,
+		success: async (res) => {
+			// console.log(res)
+
+			uni.showLoading({
+				title: '上传中...',
+				mask: true
+			})
+
+			for (let item of res.tempFilePaths) {
+				let temp = await uploadImage(item)
+				let result = JSON.parse(temp.data)
+				// console.log(result)
+
+				if (result.code == 200) {
+					form.value.images.push(result.data.fileUrl)
+				}
+			}
+			// console.log(form.value)
+			uni.hideLoading()
+		}
+	})
+}
+
+// 确认发布按钮回调
+const handleSubmit = () => {
+	uni.showModal({
+		title: '提示',
+		content: '确定发布吗?',
+		success: (res) => {
+			if (res.confirm) {
+				if ($props.type == 1) {
+					// 活动
+					submit_type1()
+				} else {
+					// 校友相册
+					submit_type2()
+				}
+			}
+		}
+	})
+}
+
+// 上传活动照片
+const submit_type1 = async () => {
+	const res = await getReleaseImage(form.value)
+	// console.log(res)
+	if (res.code == 200) {
+		uni.showToast({
+			title: '发布成功',
+			icon: 'success',
+			mask: true
+		})
+
+		setTimeout(() => {
+			uni.reLaunch({
+				url: '/pages/activity/activity'
+			})
+		}, 1500)
+	}
+}
+
+// 上传校友相册
+const submit_type2 = async () => {
+	const res = await getInsertImage(form.value)
+	// console.log(res)
+	if (res.code == 200) {
+		uni.showToast({
+			title: '发布成功',
+			icon: 'success',
+			mask: true
+		})
+
+		setTimeout(() => {
+			$emit('change', 1)
+		}, 1500)
+	}
+}
+
+// 点击每一张图片的回调
+const clickImg = (urls, current) => {
+	uni.previewImage({
+		urls,
+		current
+	})
+}
+
+// 点击删除图标回调
+const clickClose = (e) => {
+	uni.showModal({
+		title: '提示',
+		content: '确定删除该照片吗?',
+		success: (res) => {
+			if (res.confirm) {
+				form.value.images.splice(e, 1)
+			}
+		}
+	})
+}
+</script>
+
+<style lang="scss" scoped>
+.content {
+	position: relative;
+	margin-top: 20rpx;
+	min-height: calc(100vh - 130rpx);
+
+	.box {
+		margin-bottom: 15rpx;
+		font-size: 28rpx;
+
+		.box_title {
+			display: flex;
+			margin-bottom: 15rpx;
+
+			.text {
+				color: #d43030;
+			}
+		}
+
+		.box_input {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			padding: 0 22rpx;
+			width: 710rpx;
+			height: 80rpx;
+			border-radius: 6rpx;
+			background-color: #f5f5f5;
+
+			.input {
+				height: 100%;
+				font-size: 28rpx;
+			}
+
+			.picker {
+				color: #a6a6a6;
+			}
+
+			.pick {
+				color: #000;
+			}
+		}
+	}
+
+	.upload {
+		margin-top: 56rpx;
+
+		.img_box {
+			position: relative;
+			display: inline-block;
+			margin-right: 20rpx;
+			width: 140rpx;
+			height: 140rpx;
+			border-radius: 8rpx;
+
+			.img {
+				width: 100%;
+				height: 100%;
+			}
+
+			.delete {
+				z-index: 1;
+				position: absolute;
+				top: 5rpx;
+				left: 102rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				width: 30rpx;
+				height: 30rpx;
+			}
+		}
+
+		.upload_box {
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			align-items: center;
+			margin-top: 30rpx;
+			width: 140rpx;
+			height: 140rpx;
+			color: #a6a6a6;
+			font-size: 24rpx;
+			border-radius: 8rpx;
+			background-color: #f0f6fc;
+		}
+	}
+
+	.btn {
+		position: absolute;
+		left: 50%;
+		bottom: 150rpx;
+		transform: translateX(-50%);
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		width: 661rpx;
+		height: 90rpx;
+		font-size: 28rpx;
+		color: #fff;
+		border-radius: 8rpx;
+		background-color: #007aff;
+	}
+}
+</style>

+ 207 - 0
components/school-photo-upload-my/school-photo-upload-my.vue

@@ -0,0 +1,207 @@
+<template>
+	<view class="content">
+		<!-- 选择时间区域 -->
+		<view class="time">
+			<view class="time_box" :class="{ active: currentIndex == index }" v-for="(item, index) in timeList" :key="index" @click="changeTimeIndex(index)">
+				{{ item }}
+			</view>
+		</view>
+
+		<!-- 列表区域 -->
+		<view class="list">
+			<view class="list_box" v-for="item in dataList" :key="item.id">
+				<image class="img" mode="aspectFill" :src="item.images[0]" @click="clickImg(item.images)"></image>
+				<view v-if="item.isPass == 1" class="status ing">审核中...</view>
+				<view v-if="item.isPass == 2" class="status pass">审批通过</view>
+				<view v-if="item.isPass == 3" class="status nopass">驳回</view>
+				<view v-if="item.isPass == 3" class="msg">照片违规,请重新提交</view>
+			</view>
+
+			<noData v-if="!dataList.length"></noData>
+		</view>
+	</view>
+</template>
+
+<script setup>
+import { onReachBottom } from '@dcloudio/uni-app'
+import { ref, onMounted } from 'vue'
+import { getMyImagePage, getMyUploadPage } from '@/api/index.js'
+
+const $props = defineProps(['type'])
+
+// 页面类型 1为活动相册 2为校友相册
+const type = ref()
+
+// 分段器数组
+const timeList = ['全部', '审核中', '审核通过', '驳回']
+
+// 分段器当前索引
+const currentIndex = ref(0)
+// 当前页
+const currentPage = ref(1)
+// 每页多少条
+const pageCount = ref(6)
+// 总条数
+const total = ref(0)
+// 列表数据
+const dataList = ref([])
+
+onMounted(() => {
+	type.value = $props.type
+	if ($props.type == 1) {
+		// 活动相册
+		getData_act()
+	}
+	if ($props.type == 2) {
+		// 校友相册
+		getData()
+	}
+})
+
+// 页面触底触发的回调
+onReachBottom(() => {
+	if (total.value > dataList.value.length) {
+		currentPage.value++
+		if (type.value == 1) {
+			getData_act()
+		} else {
+			getData()
+		}
+	} else {
+		uni.showToast({
+			title: '没有更多数据了~~',
+			icon: 'none'
+		})
+	}
+})
+
+// 获取我上传的活动图片分页数据
+const getData_act = async () => {
+	let data = {
+		currentPage: currentPage.value,
+		pageCount: pageCount.value,
+		isPass: currentIndex.value
+	}
+	const res = await getMyUploadPage(data)
+	// console.log(res);
+	dataList.value = [...dataList.value, ...res.data.list]
+	total.value = res.data.totalCount
+}
+
+// 获取我上传的校友相册分页数据
+const getData = async () => {
+	let data = {
+		currentPage: currentPage.value,
+		pageCount: pageCount.value,
+		isPass: currentIndex.value
+	}
+	const res = await getMyImagePage(data)
+	// console.log(res)
+	dataList.value = [...dataList.value, ...res.data.list]
+	total.value = res.data.totalCount
+}
+
+// 分段器切换回调
+const changeTimeIndex = (e) => {
+	if (e != currentIndex.value) {
+		currentIndex.value = e
+		currentPage.value = 1
+		dataList.value = []
+		if (type.value == 1) {
+			getData_act()
+		} else {
+			getData()
+		}
+	}
+}
+
+// 点击图片回调
+const clickImg = (urls) => {
+	uni.previewImage({
+		urls
+	})
+}
+</script>
+
+<style lang="scss" scoped>
+.content {
+	.time {
+		display: flex;
+		align-items: center;
+		justify-content: space-around;
+		margin-top: 20rpx;
+		width: 712rpx;
+		height: 90rpx;
+		font-size: 28rpx;
+		border-radius: 8rpx;
+		background-color: #f2f7ff;
+
+		.time_box {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 211rpx;
+			height: 71rpx;
+			border-radius: 8rpx;
+		}
+
+		.active {
+			font-size: 30rpx;
+			color: #0061ff;
+			border: 2rpx solid #0061ff;
+			background-color: rgba(0, 97, 255, 0.1);
+		}
+	}
+
+	.list {
+		margin-top: 40rpx;
+
+		.list_box {
+			position: relative;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			height: 200rpx;
+			border-bottom: 2rpx solid #e5e5e5;
+
+			.img {
+				width: 140rpx;
+				height: 140rpx;
+				border-radius: 8rpx;
+			}
+
+			.status {
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				width: 157rpx;
+				height: 55rpx;
+				color: #fff;
+				font-size: 28rpx;
+				border-radius: 70rpx 40rpx 0 70rpx;
+			}
+
+			.pass {
+				background: linear-gradient(90deg, #366fff 0%, #5da0fc 100%);
+			}
+
+			.ing {
+				background: linear-gradient(90deg, #ff7045 0%, #f7a172 100%);
+			}
+
+			.nopass {
+				background: linear-gradient(90deg, #d43030 0%, #f56c6c 100%);
+			}
+
+			.msg {
+				position: absolute;
+				top: 36rpx;
+				left: 157rpx;
+				width: 360rpx;
+				font-size: 24rpx;
+				color: #d43030;
+			}
+		}
+	}
+}
+</style>

+ 88 - 71
manifest.json

@@ -1,72 +1,89 @@
 {
-    "name" : "H5_schoolFellow",
-    "appid" : "__UNI__7FA0A0A",
-    "description" : "",
-    "versionName" : "1.0.0",
-    "versionCode" : "100",
-    "transformPx" : false,
-    /* 5+App特有相关 */
-    "app-plus" : {
-        "usingComponents" : true,
-        "nvueStyleCompiler" : "uni-app",
-        "compilerVersion" : 3,
-        "splashscreen" : {
-            "alwaysShowBeforeRender" : true,
-            "waiting" : true,
-            "autoclose" : true,
-            "delay" : 0
-        },
-        /* 模块配置 */
-        "modules" : {},
-        /* 应用发布信息 */
-        "distribute" : {
-            /* android打包配置 */
-            "android" : {
-                "permissions" : [
-                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
-                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
-                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-                    "<uses-feature android:name=\"android.hardware.camera\"/>",
-                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
-                ]
-            },
-            /* ios打包配置 */
-            "ios" : {},
-            /* SDK配置 */
-            "sdkConfigs" : {}
-        }
-    },
-    /* 快应用特有相关 */
-    "quickapp" : {},
-    /* 小程序特有相关 */
-    "mp-weixin" : {
-        "appid" : "",
-        "setting" : {
-            "urlCheck" : false
-        },
-        "usingComponents" : true
-    },
-    "mp-alipay" : {
-        "usingComponents" : true
-    },
-    "mp-baidu" : {
-        "usingComponents" : true
-    },
-    "mp-toutiao" : {
-        "usingComponents" : true
-    },
-    "uniStatistics" : {
-        "enable" : false
-    },
-    "vueVersion" : "3"
-}
+	"name": "H5_schoolFellow",
+	"appid": "__UNI__7FA0A0A",
+	"description": "",
+	"versionName": "1.0.0",
+	"versionCode": "100",
+	"transformPx": false,
+	/* 5+App特有相关 */
+	"app-plus": {
+		"usingComponents": true,
+		"nvueStyleCompiler": "uni-app",
+		"compilerVersion": 3,
+		"splashscreen": {
+			"alwaysShowBeforeRender": true,
+			"waiting": true,
+			"autoclose": true,
+			"delay": 0
+		},
+		/* 模块配置 */
+		"modules": {},
+		/* 应用发布信息 */
+		"distribute": {
+			/* android打包配置 */
+			"android": {
+				"permissions": [
+					"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+					"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+					"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+					"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+					"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+					"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+					"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+					"<uses-permission android:name=\"android.permission.CAMERA\"/>",
+					"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+					"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+					"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+					"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+					"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+					"<uses-feature android:name=\"android.hardware.camera\"/>",
+					"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+				]
+			},
+			/* ios打包配置 */
+			"ios": {},
+			/* SDK配置 */
+			"sdkConfigs": {}
+		}
+	},
+	/* 快应用特有相关 */
+	"quickapp": {},
+	/* 小程序特有相关 */
+	"mp-weixin": {
+		"appid": "wx0baa0e7e965c61e8",
+		"setting": {
+			"urlCheck": false
+		},
+		"usingComponents": true,
+		"permission": {
+			"scope.userLocation": {
+				"desc": ""
+			}
+		}
+	},
+	"mp-alipay": {
+		"usingComponents": true
+	},
+	"mp-baidu": {
+		"usingComponents": true
+	},
+	"mp-toutiao": {
+		"usingComponents": true
+	},
+	"uniStatistics": {
+		"enable": false
+	},
+	"vueVersion": "3",
+	"h5": {
+		"sdkConfigs": {
+			"maps": {
+				"tencent": {
+					"key": "R43BZ-2XROX-L7T45-T5OQI-IBDFT-GNBOI"
+				}
+			}
+		},
+		"router": {
+			"base": "/alumnus/alumniH5/"
+		}
+	}
+}

+ 384 - 0
node_modules/.package-lock.json

@@ -0,0 +1,384 @@
+{
+  "name": "H5_schoolFellow",
+  "lockfileVersion": 2,
+  "requires": true,
+  "packages": {
+    "node_modules/call-bind": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz",
+      "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+      "dependencies": {
+        "es-define-property": "^1.0.0",
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.4",
+        "set-function-length": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/clone": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz",
+      "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/dayjs": {
+      "version": "1.11.13",
+      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
+      "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
+    },
+    "node_modules/deep-equal": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.2.tgz",
+      "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==",
+      "dependencies": {
+        "is-arguments": "^1.1.1",
+        "is-date-object": "^1.0.5",
+        "is-regex": "^1.1.4",
+        "object-is": "^1.1.5",
+        "object-keys": "^1.1.1",
+        "regexp.prototype.flags": "^1.5.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/define-data-property": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz",
+      "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+      "dependencies": {
+        "es-define-property": "^1.0.0",
+        "es-errors": "^1.3.0",
+        "gopd": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/define-properties": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz",
+      "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+      "dependencies": {
+        "define-data-property": "^1.0.1",
+        "has-property-descriptors": "^1.0.0",
+        "object-keys": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/es-define-property": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz",
+      "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+      "dependencies": {
+        "get-intrinsic": "^1.2.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-errors": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
+      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/eventemitter3": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-2.0.3.tgz",
+      "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg=="
+    },
+    "node_modules/extend": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz",
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+    },
+    "node_modules/fast-diff": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.1.2.tgz",
+      "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig=="
+    },
+    "node_modules/function-bind": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/functions-have-names": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz",
+      "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/get-intrinsic": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+      "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2",
+        "has-proto": "^1.0.1",
+        "has-symbols": "^1.0.3",
+        "hasown": "^2.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/gopd": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.1.0.tgz",
+      "integrity": "sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==",
+      "dependencies": {
+        "get-intrinsic": "^1.2.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-property-descriptors": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+      "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+      "dependencies": {
+        "es-define-property": "^1.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-proto": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.1.0.tgz",
+      "integrity": "sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==",
+      "dependencies": {
+        "call-bind": "^1.0.7"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-symbols": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
+      "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-tostringtag": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+      "dependencies": {
+        "has-symbols": "^1.0.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/hasown": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
+      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+      "dependencies": {
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/is-arguments": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz",
+      "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-date-object": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz",
+      "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+      "dependencies": {
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-regex": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.2.0.tgz",
+      "integrity": "sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==",
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "gopd": "^1.1.0",
+        "has-tostringtag": "^1.0.2",
+        "hasown": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/lodash": {
+      "version": "4.17.21",
+      "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+    },
+    "node_modules/object-is": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmmirror.com/object-is/-/object-is-1.1.6.tgz",
+      "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==",
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "define-properties": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/object-keys": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz",
+      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/parchment": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmmirror.com/parchment/-/parchment-1.1.4.tgz",
+      "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg=="
+    },
+    "node_modules/quill": {
+      "version": "1.3.7",
+      "resolved": "https://registry.npmmirror.com/quill/-/quill-1.3.7.tgz",
+      "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==",
+      "dependencies": {
+        "clone": "^2.1.1",
+        "deep-equal": "^1.0.1",
+        "eventemitter3": "^2.0.3",
+        "extend": "^3.0.2",
+        "parchment": "^1.1.4",
+        "quill-delta": "^3.6.2"
+      }
+    },
+    "node_modules/quill-delta": {
+      "version": "3.6.3",
+      "resolved": "https://registry.npmmirror.com/quill-delta/-/quill-delta-3.6.3.tgz",
+      "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==",
+      "dependencies": {
+        "deep-equal": "^1.0.1",
+        "extend": "^3.0.2",
+        "fast-diff": "1.1.2"
+      },
+      "engines": {
+        "node": ">=0.10"
+      }
+    },
+    "node_modules/regexp.prototype.flags": {
+      "version": "1.5.3",
+      "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz",
+      "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==",
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "define-properties": "^1.2.1",
+        "es-errors": "^1.3.0",
+        "set-function-name": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/set-function-length": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz",
+      "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+      "dependencies": {
+        "define-data-property": "^1.1.4",
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.4",
+        "gopd": "^1.0.1",
+        "has-property-descriptors": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/set-function-name": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.2.tgz",
+      "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+      "dependencies": {
+        "define-data-property": "^1.1.4",
+        "es-errors": "^1.3.0",
+        "functions-have-names": "^1.2.3",
+        "has-property-descriptors": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    }
+  }
+}

+ 1 - 0
node_modules/call-bind/.eslintignore

@@ -0,0 +1 @@
+coverage/

+ 16 - 0
node_modules/call-bind/.eslintrc

@@ -0,0 +1,16 @@
+{
+	"root": true,
+
+	"extends": "@ljharb",
+
+	"rules": {
+		"func-name-matching": 0,
+		"id-length": 0,
+		"new-cap": [2, {
+			"capIsNewExceptions": [
+				"GetIntrinsic",
+			],
+		}],
+		"no-magic-numbers": 0,
+	},
+}

+ 12 - 0
node_modules/call-bind/.github/FUNDING.yml

@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/call-bind
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

+ 9 - 0
node_modules/call-bind/.nycrc

@@ -0,0 +1,9 @@
+{
+	"all": true,
+	"check-coverage": false,
+	"reporter": ["text-summary", "text", "html", "json"],
+	"exclude": [
+		"coverage",
+		"test"
+	]
+}

+ 93 - 0
node_modules/call-bind/CHANGELOG.md

@@ -0,0 +1,93 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v1.0.7](https://github.com/ljharb/call-bind/compare/v1.0.6...v1.0.7) - 2024-02-12
+
+### Commits
+
+- [Refactor] use `es-define-property` [`09b76a0`](https://github.com/ljharb/call-bind/commit/09b76a01634440461d44a80c9924ec4b500f3b03)
+- [Deps] update `get-intrinsic`, `set-function-length` [`ad5136d`](https://github.com/ljharb/call-bind/commit/ad5136ddda2a45c590959829ad3dce0c9f4e3590)
+
+## [v1.0.6](https://github.com/ljharb/call-bind/compare/v1.0.5...v1.0.6) - 2024-02-05
+
+### Commits
+
+- [Dev Deps] update `aud`, `npmignore`, `tape` [`d564d5c`](https://github.com/ljharb/call-bind/commit/d564d5ce3e06a19df4d499c77f8d1a9da44e77aa)
+- [Deps] update `get-intrinsic`, `set-function-length` [`cfc2bdc`](https://github.com/ljharb/call-bind/commit/cfc2bdca7b633df0e0e689e6b637f668f1c6792e)
+- [Refactor] use `es-errors`, so things that only need those do not need `get-intrinsic` [`64cd289`](https://github.com/ljharb/call-bind/commit/64cd289ae5862c250a4ca80aa8d461047c166af5)
+- [meta] add missing `engines.node` [`32a4038`](https://github.com/ljharb/call-bind/commit/32a4038857b62179f7f9b7b3df2c5260036be582)
+
+## [v1.0.5](https://github.com/ljharb/call-bind/compare/v1.0.4...v1.0.5) - 2023-10-19
+
+### Commits
+
+- [Fix] throw an error on non-functions as early as possible [`f262408`](https://github.com/ljharb/call-bind/commit/f262408f822c840fbc268080f3ad7c429611066d)
+- [Deps] update `set-function-length` [`3fff271`](https://github.com/ljharb/call-bind/commit/3fff27145a1e3a76a5b74f1d7c3c43d0fa3b9871)
+
+## [v1.0.4](https://github.com/ljharb/call-bind/compare/v1.0.3...v1.0.4) - 2023-10-19
+
+## [v1.0.3](https://github.com/ljharb/call-bind/compare/v1.0.2...v1.0.3) - 2023-10-19
+
+### Commits
+
+- [actions] reuse common workflows [`a994df6`](https://github.com/ljharb/call-bind/commit/a994df69f401f4bf735a4ccd77029b85d1549453)
+- [meta] use `npmignore` to autogenerate an npmignore file [`eef3ef2`](https://github.com/ljharb/call-bind/commit/eef3ef21e1f002790837fedb8af2679c761fbdf5)
+- [readme] flesh out content [`1845ccf`](https://github.com/ljharb/call-bind/commit/1845ccfd9976a607884cfc7157c93192cc16cf22)
+- [actions] use `node/install` instead of `node/run`; use `codecov` action [`5b47d53`](https://github.com/ljharb/call-bind/commit/5b47d53d2fd74af5ea0a44f1d51e503cd42f7a90)
+- [Refactor] use `set-function-length` [`a0e165c`](https://github.com/ljharb/call-bind/commit/a0e165c5dc61db781cbc919b586b1c2b8da0b150)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`9c50103`](https://github.com/ljharb/call-bind/commit/9c50103f44137279a817317cf6cc421a658f85b4)
+- [meta] simplify "exports" [`019c6d0`](https://github.com/ljharb/call-bind/commit/019c6d06b0e1246ceed8e579f57e44441cbbf6d9)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `safe-publish-latest`, `tape` [`23bd718`](https://github.com/ljharb/call-bind/commit/23bd718a288d3b03042062b4ef5153b3cea83f11)
+- [actions] update codecov uploader [`62552d7`](https://github.com/ljharb/call-bind/commit/62552d79cc79e05825e99aaba134ae5b37f33da5)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`ec81665`](https://github.com/ljharb/call-bind/commit/ec81665b300f87eabff597afdc8b8092adfa7afd)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`35d67fc`](https://github.com/ljharb/call-bind/commit/35d67fcea883e686650f736f61da5ddca2592de8)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`0266d8d`](https://github.com/ljharb/call-bind/commit/0266d8d2a45086a922db366d0c2932fa463662ff)
+- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`43a5b28`](https://github.com/ljharb/call-bind/commit/43a5b28a444e710e1bbf92adb8afb5cf7523a223)
+- [Deps] update `define-data-property`, `function-bind`, `get-intrinsic` [`780eb36`](https://github.com/ljharb/call-bind/commit/780eb36552514f8cc99c70821ce698697c2726a5)
+- [Dev Deps] update `aud`, `tape` [`90d50ad`](https://github.com/ljharb/call-bind/commit/90d50ad03b061e0268b3380b0065fcaec183dc05)
+- [meta] use `prepublishOnly` script for npm 7+ [`44c5433`](https://github.com/ljharb/call-bind/commit/44c5433b7980e02b4870007046407cf6fc543329)
+- [Deps] update `get-intrinsic` [`86bfbfc`](https://github.com/ljharb/call-bind/commit/86bfbfcf34afdc6eabc93ce3d408548d0e27d958)
+- [Deps] update `get-intrinsic` [`5c53354`](https://github.com/ljharb/call-bind/commit/5c5335489be0294c18cd7a8bb6e08226ee019ff5)
+- [actions] update checkout action [`4c393a8`](https://github.com/ljharb/call-bind/commit/4c393a8173b3c8e5b30d5b3297b3b94d48bf87f3)
+- [Deps] update `get-intrinsic` [`4e70bde`](https://github.com/ljharb/call-bind/commit/4e70bdec0626acb11616d66250fc14565e716e91)
+- [Deps] update `get-intrinsic` [`55ae803`](https://github.com/ljharb/call-bind/commit/55ae803a920bd93c369cd798c20de31f91e9fc60)
+
+## [v1.0.2](https://github.com/ljharb/call-bind/compare/v1.0.1...v1.0.2) - 2021-01-11
+
+### Commits
+
+- [Fix] properly include the receiver in the bound length [`dbae7bc`](https://github.com/ljharb/call-bind/commit/dbae7bc676c079a0d33c0a43e9ef92cb7b01345d)
+
+## [v1.0.1](https://github.com/ljharb/call-bind/compare/v1.0.0...v1.0.1) - 2021-01-08
+
+### Commits
+
+- [Tests] migrate tests to Github Actions [`b6db284`](https://github.com/ljharb/call-bind/commit/b6db284c36f8ccd195b88a6764fe84b7223a0da1)
+- [meta] do not publish github action workflow files [`ec7fe46`](https://github.com/ljharb/call-bind/commit/ec7fe46e60cfa4764ee943d2755f5e5a366e578e)
+- [Fix] preserve original function’s length when possible [`adbceaa`](https://github.com/ljharb/call-bind/commit/adbceaa3cac4b41ea78bb19d7ccdbaaf7e0bdadb)
+- [Tests] gather coverage data on every job [`d69e23c`](https://github.com/ljharb/call-bind/commit/d69e23cc65f101ba1d4c19bb07fa8eb0ec624be8)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`2fd3586`](https://github.com/ljharb/call-bind/commit/2fd3586c5d47b335364c14293114c6b625ae1f71)
+- [Deps] update `get-intrinsic` [`f23e931`](https://github.com/ljharb/call-bind/commit/f23e9318cc271c2add8bb38cfded85ee7baf8eee)
+- [Deps] update `get-intrinsic` [`72d9f44`](https://github.com/ljharb/call-bind/commit/72d9f44e184465ba8dd3fb48260bbcff234985f2)
+- [meta] fix FUNDING.yml [`e723573`](https://github.com/ljharb/call-bind/commit/e723573438c5a68dcec31fb5d96ea6b7e4a93be8)
+- [eslint] ignore coverage output [`15e76d2`](https://github.com/ljharb/call-bind/commit/15e76d28a5f43e504696401e5b31ebb78ee1b532)
+- [meta] add Automatic Rebase and Require Allow Edits workflows [`8fa4dab`](https://github.com/ljharb/call-bind/commit/8fa4dabb23ba3dd7bb92c9571c1241c08b56e4b6)
+
+## v1.0.0 - 2020-10-30
+
+### Commits
+
+- Initial commit [`306cf98`](https://github.com/ljharb/call-bind/commit/306cf98c7ec9e7ef66b653ec152277ac1381eb50)
+- Tests [`e10d0bb`](https://github.com/ljharb/call-bind/commit/e10d0bbdadc7a10ecedc9a1c035112d3e368b8df)
+- Implementation [`43852ed`](https://github.com/ljharb/call-bind/commit/43852eda0f187327b7fad2423ca972149a52bd65)
+- npm init [`408f860`](https://github.com/ljharb/call-bind/commit/408f860b773a2f610805fd3613d0d71bac1b6249)
+- [meta] add Automatic Rebase and Require Allow Edits workflows [`fb349b2`](https://github.com/ljharb/call-bind/commit/fb349b2e48defbec8b5ec8a8395cc8f69f220b13)
+- [meta] add `auto-changelog` [`c4001fc`](https://github.com/ljharb/call-bind/commit/c4001fc43031799ef908211c98d3b0fb2b60fde4)
+- [meta] add "funding"; create `FUNDING.yml` [`d4d6d29`](https://github.com/ljharb/call-bind/commit/d4d6d2974a14bc2e98830468eda7fe6d6a776717)
+- [Tests] add `npm run lint` [`dedfb98`](https://github.com/ljharb/call-bind/commit/dedfb98bd0ecefb08ddb9a94061bd10cde4332af)
+- Only apps should have lockfiles [`54ac776`](https://github.com/ljharb/call-bind/commit/54ac77653db45a7361dc153d2f478e743f110650)
+- [meta] add `safe-publish-latest` [`9ea8e43`](https://github.com/ljharb/call-bind/commit/9ea8e435b950ce9b705559cd651039f9bf40140f)

+ 21 - 0
node_modules/call-bind/LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 Jordan Harband
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 64 - 0
node_modules/call-bind/README.md

@@ -0,0 +1,64 @@
+# call-bind <sup>[![Version Badge][npm-version-svg]][package-url]</sup>
+
+[![github actions][actions-image]][actions-url]
+[![coverage][codecov-image]][codecov-url]
+[![dependency status][deps-svg]][deps-url]
+[![dev dependency status][dev-deps-svg]][dev-deps-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+Robustly `.call.bind()` a function.
+
+## Getting started
+
+```sh
+npm install --save call-bind
+```
+
+## Usage/Examples
+
+```js
+const assert = require('assert');
+const callBind = require('call-bind');
+const callBound = require('call-bind/callBound');
+
+function f(a, b) {
+	assert.equal(this, 1);
+	assert.equal(a, 2);
+	assert.equal(b, 3);
+	assert.equal(arguments.length, 2);
+}
+
+const fBound = callBind(f);
+
+const slice = callBound('Array.prototype.slice');
+
+delete Function.prototype.call;
+delete Function.prototype.bind;
+
+fBound(1, 2, 3);
+
+assert.deepEqual(slice([1, 2, 3, 4], 1, -1), [2, 3]);
+```
+
+## Tests
+
+Clone the repo, `npm install`, and run `npm test`
+
+[package-url]: https://npmjs.org/package/call-bind
+[npm-version-svg]: https://versionbadg.es/ljharb/call-bind.svg
+[deps-svg]: https://david-dm.org/ljharb/call-bind.svg
+[deps-url]: https://david-dm.org/ljharb/call-bind
+[dev-deps-svg]: https://david-dm.org/ljharb/call-bind/dev-status.svg
+[dev-deps-url]: https://david-dm.org/ljharb/call-bind#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/call-bind.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/call-bind.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/call-bind.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=call-bind
+[codecov-image]: https://codecov.io/gh/ljharb/call-bind/branch/main/graphs/badge.svg
+[codecov-url]: https://app.codecov.io/gh/ljharb/call-bind/
+[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bind
+[actions-url]: https://github.com/ljharb/call-bind/actions

+ 15 - 0
node_modules/call-bind/callBound.js

@@ -0,0 +1,15 @@
+'use strict';
+
+var GetIntrinsic = require('get-intrinsic');
+
+var callBind = require('./');
+
+var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
+
+module.exports = function callBoundIntrinsic(name, allowMissing) {
+	var intrinsic = GetIntrinsic(name, !!allowMissing);
+	if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
+		return callBind(intrinsic);
+	}
+	return intrinsic;
+};

+ 35 - 0
node_modules/call-bind/index.js

@@ -0,0 +1,35 @@
+'use strict';
+
+var bind = require('function-bind');
+var GetIntrinsic = require('get-intrinsic');
+var setFunctionLength = require('set-function-length');
+
+var $TypeError = require('es-errors/type');
+var $apply = GetIntrinsic('%Function.prototype.apply%');
+var $call = GetIntrinsic('%Function.prototype.call%');
+var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
+
+var $defineProperty = require('es-define-property');
+var $max = GetIntrinsic('%Math.max%');
+
+module.exports = function callBind(originalFunction) {
+	if (typeof originalFunction !== 'function') {
+		throw new $TypeError('a function is required');
+	}
+	var func = $reflectApply(bind, $call, arguments);
+	return setFunctionLength(
+		func,
+		1 + $max(0, originalFunction.length - (arguments.length - 1)),
+		true
+	);
+};
+
+var applyBind = function applyBind() {
+	return $reflectApply(bind, $apply, arguments);
+};
+
+if ($defineProperty) {
+	$defineProperty(module.exports, 'apply', { value: applyBind });
+} else {
+	module.exports.apply = applyBind;
+}

+ 95 - 0
node_modules/call-bind/package.json

@@ -0,0 +1,95 @@
+{
+	"name": "call-bind",
+	"version": "1.0.7",
+	"description": "Robustly `.call.bind()` a function",
+	"main": "index.js",
+	"exports": {
+		".": "./index.js",
+		"./callBound": "./callBound.js",
+		"./package.json": "./package.json"
+	},
+	"scripts": {
+		"prepack": "npmignore --auto --commentLines=auto",
+		"prepublish": "not-in-publish || npm run prepublishOnly",
+		"prepublishOnly": "safe-publish-latest",
+		"lint": "eslint --ext=.js,.mjs .",
+		"postlint": "evalmd README.md",
+		"pretest": "npm run lint",
+		"tests-only": "nyc tape 'test/**/*.js'",
+		"test": "npm run tests-only",
+		"posttest": "aud --production",
+		"version": "auto-changelog && git add CHANGELOG.md",
+		"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
+	},
+	"repository": {
+		"type": "git",
+		"url": "git+https://github.com/ljharb/call-bind.git"
+	},
+	"keywords": [
+		"javascript",
+		"ecmascript",
+		"es",
+		"js",
+		"callbind",
+		"callbound",
+		"call",
+		"bind",
+		"bound",
+		"call-bind",
+		"call-bound",
+		"function",
+		"es-abstract"
+	],
+	"author": "Jordan Harband <ljharb@gmail.com>",
+	"funding": {
+		"url": "https://github.com/sponsors/ljharb"
+	},
+	"license": "MIT",
+	"bugs": {
+		"url": "https://github.com/ljharb/call-bind/issues"
+	},
+	"homepage": "https://github.com/ljharb/call-bind#readme",
+	"devDependencies": {
+		"@ljharb/eslint-config": "^21.1.0",
+		"aud": "^2.0.4",
+		"auto-changelog": "^2.4.0",
+		"es-value-fixtures": "^1.4.2",
+		"eslint": "=8.8.0",
+		"evalmd": "^0.0.19",
+		"for-each": "^0.3.3",
+		"gopd": "^1.0.1",
+		"has-strict-mode": "^1.0.1",
+		"in-publish": "^2.0.1",
+		"npmignore": "^0.3.1",
+		"nyc": "^10.3.2",
+		"object-inspect": "^1.13.1",
+		"safe-publish-latest": "^2.0.0",
+		"tape": "^5.7.4"
+	},
+	"dependencies": {
+		"es-define-property": "^1.0.0",
+		"es-errors": "^1.3.0",
+		"function-bind": "^1.1.2",
+		"get-intrinsic": "^1.2.4",
+		"set-function-length": "^1.2.1"
+	},
+	"testling": {
+		"files": "test/index.js"
+	},
+	"auto-changelog": {
+		"output": "CHANGELOG.md",
+		"template": "keepachangelog",
+		"unreleased": false,
+		"commitLimit": false,
+		"backfillLimit": false,
+		"hideCredit": true
+	},
+	"publishConfig": {
+		"ignore": [
+			".github/workflows"
+		]
+	},
+	"engines": {
+		"node": ">= 0.4"
+	}
+}

+ 54 - 0
node_modules/call-bind/test/callBound.js

@@ -0,0 +1,54 @@
+'use strict';
+
+var test = require('tape');
+
+var callBound = require('../callBound');
+
+test('callBound', function (t) {
+	// static primitive
+	t.equal(callBound('Array.length'), Array.length, 'Array.length yields itself');
+	t.equal(callBound('%Array.length%'), Array.length, '%Array.length% yields itself');
+
+	// static non-function object
+	t.equal(callBound('Array.prototype'), Array.prototype, 'Array.prototype yields itself');
+	t.equal(callBound('%Array.prototype%'), Array.prototype, '%Array.prototype% yields itself');
+	t.equal(callBound('Array.constructor'), Array.constructor, 'Array.constructor yields itself');
+	t.equal(callBound('%Array.constructor%'), Array.constructor, '%Array.constructor% yields itself');
+
+	// static function
+	t.equal(callBound('Date.parse'), Date.parse, 'Date.parse yields itself');
+	t.equal(callBound('%Date.parse%'), Date.parse, '%Date.parse% yields itself');
+
+	// prototype primitive
+	t.equal(callBound('Error.prototype.message'), Error.prototype.message, 'Error.prototype.message yields itself');
+	t.equal(callBound('%Error.prototype.message%'), Error.prototype.message, '%Error.prototype.message% yields itself');
+
+	// prototype function
+	t.notEqual(callBound('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString does not yield itself');
+	t.notEqual(callBound('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% does not yield itself');
+	t.equal(callBound('Object.prototype.toString')(true), Object.prototype.toString.call(true), 'call-bound Object.prototype.toString calls into the original');
+	t.equal(callBound('%Object.prototype.toString%')(true), Object.prototype.toString.call(true), 'call-bound %Object.prototype.toString% calls into the original');
+
+	t['throws'](
+		function () { callBound('does not exist'); },
+		SyntaxError,
+		'nonexistent intrinsic throws'
+	);
+	t['throws'](
+		function () { callBound('does not exist', true); },
+		SyntaxError,
+		'allowMissing arg still throws for unknown intrinsic'
+	);
+
+	t.test('real but absent intrinsic', { skip: typeof WeakRef !== 'undefined' }, function (st) {
+		st['throws'](
+			function () { callBound('WeakRef'); },
+			TypeError,
+			'real but absent intrinsic throws'
+		);
+		st.equal(callBound('WeakRef', true), undefined, 'allowMissing arg avoids exception');
+		st.end();
+	});
+
+	t.end();
+});

+ 80 - 0
node_modules/call-bind/test/index.js

@@ -0,0 +1,80 @@
+'use strict';
+
+var callBind = require('../');
+var bind = require('function-bind');
+var gOPD = require('gopd');
+var hasStrictMode = require('has-strict-mode')();
+var forEach = require('for-each');
+var inspect = require('object-inspect');
+var v = require('es-value-fixtures');
+
+var test = require('tape');
+
+/*
+ * older engines have length nonconfigurable
+ * in io.js v3, it is configurable except on bound functions, hence the .bind()
+ */
+var functionsHaveConfigurableLengths = !!(
+	gOPD
+	&& Object.getOwnPropertyDescriptor
+	&& Object.getOwnPropertyDescriptor(bind.call(function () {}), 'length').configurable
+);
+
+test('callBind', function (t) {
+	forEach(v.nonFunctions, function (nonFunction) {
+		t['throws'](
+			function () { callBind(nonFunction); },
+			TypeError,
+			inspect(nonFunction) + ' is not a function'
+		);
+	});
+
+	var sentinel = { sentinel: true };
+	var func = function (a, b) {
+		// eslint-disable-next-line no-invalid-this
+		return [!hasStrictMode && this === global ? undefined : this, a, b];
+	};
+	t.equal(func.length, 2, 'original function length is 2');
+	t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args');
+	t.deepEqual(func(1, 2), [undefined, 1, 2], 'unbound func with right args');
+	t.deepEqual(func(1, 2, 3), [undefined, 1, 2], 'unbound func with too many args');
+
+	var bound = callBind(func);
+	t.equal(bound.length, func.length + 1, 'function length is preserved', { skip: !functionsHaveConfigurableLengths });
+	t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with too few args');
+	t.deepEqual(bound(1, 2), [hasStrictMode ? 1 : Object(1), 2, undefined], 'bound func with right args');
+	t.deepEqual(bound(1, 2, 3), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with too many args');
+
+	var boundR = callBind(func, sentinel);
+	t.equal(boundR.length, func.length, 'function length is preserved', { skip: !functionsHaveConfigurableLengths });
+	t.deepEqual(boundR(), [sentinel, undefined, undefined], 'bound func with receiver, with too few args');
+	t.deepEqual(boundR(1, 2), [sentinel, 1, 2], 'bound func with receiver, with right args');
+	t.deepEqual(boundR(1, 2, 3), [sentinel, 1, 2], 'bound func with receiver, with too many args');
+
+	var boundArg = callBind(func, sentinel, 1);
+	t.equal(boundArg.length, func.length - 1, 'function length is preserved', { skip: !functionsHaveConfigurableLengths });
+	t.deepEqual(boundArg(), [sentinel, 1, undefined], 'bound func with receiver and arg, with too few args');
+	t.deepEqual(boundArg(2), [sentinel, 1, 2], 'bound func with receiver and arg, with right arg');
+	t.deepEqual(boundArg(2, 3), [sentinel, 1, 2], 'bound func with receiver and arg, with too many args');
+
+	t.test('callBind.apply', function (st) {
+		var aBound = callBind.apply(func);
+		st.deepEqual(aBound(sentinel), [sentinel, undefined, undefined], 'apply-bound func with no args');
+		st.deepEqual(aBound(sentinel, [1], 4), [sentinel, 1, undefined], 'apply-bound func with too few args');
+		st.deepEqual(aBound(sentinel, [1, 2], 4), [sentinel, 1, 2], 'apply-bound func with right args');
+
+		var aBoundArg = callBind.apply(func);
+		st.deepEqual(aBoundArg(sentinel, [1, 2, 3], 4), [sentinel, 1, 2], 'apply-bound func with too many args');
+		st.deepEqual(aBoundArg(sentinel, [1, 2], 4), [sentinel, 1, 2], 'apply-bound func with right args');
+		st.deepEqual(aBoundArg(sentinel, [1], 4), [sentinel, 1, undefined], 'apply-bound func with too few args');
+
+		var aBoundR = callBind.apply(func, sentinel);
+		st.deepEqual(aBoundR([1, 2, 3], 4), [sentinel, 1, 2], 'apply-bound func with receiver and too many args');
+		st.deepEqual(aBoundR([1, 2], 4), [sentinel, 1, 2], 'apply-bound func with receiver and right args');
+		st.deepEqual(aBoundR([1], 4), [sentinel, 1, undefined], 'apply-bound func with receiver and too few args');
+
+		st.end();
+	});
+
+	t.end();
+});

+ 4 - 0
node_modules/clone/.npmignore

@@ -0,0 +1,4 @@
+/node_modules/
+/test.js
+/.travis.yml
+*.html

+ 18 - 0
node_modules/clone/LICENSE

@@ -0,0 +1,18 @@
+Copyright © 2011-2015 Paul Vorbach <paul@vorba.ch>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the “Software”), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 194 - 0
node_modules/clone/README.md

@@ -0,0 +1,194 @@
+# clone
+
+[![build status](https://secure.travis-ci.org/pvorb/clone.svg)](http://travis-ci.org/pvorb/clone) [![downloads](https://img.shields.io/npm/dt/clone.svg)](http://npm-stat.com/charts.html?package=clone)
+
+offers foolproof _deep cloning_ of objects, arrays, numbers, strings, maps,
+sets, promises, etc. in JavaScript.
+
+**XSS vulnerability detected**
+
+
+## Installation
+
+    npm install clone
+
+(It also works with browserify, ender or standalone. You may want to use the
+option `noParse` in browserify to reduce the resulting file size, since usually
+`Buffer`s are not needed in browsers.)
+
+
+## Example
+
+~~~ javascript
+var clone = require('clone');
+
+var a, b;
+
+a = { foo: { bar: 'baz' } };  // initial value of a
+
+b = clone(a);                 // clone a -> b
+a.foo.bar = 'foo';            // change a
+
+console.log(a);               // show a
+console.log(b);               // show b
+~~~
+
+This will print:
+
+~~~ javascript
+{ foo: { bar: 'foo' } }
+{ foo: { bar: 'baz' } }
+~~~
+
+**clone** masters cloning simple objects (even with custom prototype), arrays,
+Date objects, and RegExp objects. Everything is cloned recursively, so that you
+can clone dates in arrays in objects, for example.
+
+
+## API
+
+`clone(val, circular, depth)`
+
+  * `val` -- the value that you want to clone, any type allowed
+  * `circular` -- boolean
+
+    Call `clone` with `circular` set to `false` if you are certain that `obj`
+    contains no circular references. This will give better performance if
+    needed. There is no error if `undefined` or `null` is passed as `obj`.
+  * `depth` -- depth to which the object is to be cloned (optional,
+    defaults to infinity)
+  * `prototype` -- sets the prototype to be used when cloning an object.
+    (optional, defaults to parent prototype).
+  * `includeNonEnumerable` -- set to `true` if the non-enumerable properties
+    should be cloned as well. Non-enumerable properties on the prototype chain
+    will be ignored. (optional, defaults to `false`)
+
+`clone.clonePrototype(obj)`
+
+  * `obj` -- the object that you want to clone
+
+Does a prototype clone as
+[described by Oran Looney](http://oranlooney.com/functional-javascript/).
+
+
+## Circular References
+
+~~~ javascript
+var a, b;
+
+a = { hello: 'world' };
+
+a.myself = a;
+b = clone(a);
+
+console.log(b);
+~~~
+
+This will print:
+
+~~~ javascript
+{ hello: "world", myself: [Circular] }
+~~~
+
+So, `b.myself` points to `b`, not `a`. Neat!
+
+
+## Test
+
+    npm test
+
+
+## Changelog
+
+### v2.1.2
+
+#### 2018-03-21
+
+  - Use `Buffer.allocUnsafe()` on Node >= 4.5.0 (contributed by @ChALkeR)
+
+### v2.1.1
+
+#### 2017-03-09
+
+  - Fix build badge in README
+  - Add support for cloning Maps and Sets on Internet Explorer
+
+### v2.1.0
+
+#### 2016-11-22
+
+  - Add support for cloning Errors
+  - Exclude non-enumerable symbol-named object properties from cloning
+  - Add option to include non-enumerable own properties of objects
+
+### v2.0.0
+
+#### 2016-09-28
+
+  - Add support for cloning ES6 Maps, Sets, Promises, and Symbols
+
+### v1.0.3
+
+#### 2017-11-08
+
+  - Close XSS vulnerability in the NPM package, which included the file
+    `test-apart-ctx.html`. This vulnerability was disclosed by Juho Nurminen of
+    2NS - Second Nature Security.
+
+### v1.0.2 (deprecated)
+
+#### 2015-03-25
+
+  - Fix call on getRegExpFlags
+  - Refactor utilities
+  - Refactor test suite
+
+### v1.0.1 (deprecated)
+
+#### 2015-03-04
+
+  - Fix nodeunit version
+  - Directly call getRegExpFlags
+
+### v1.0.0 (deprecated)
+
+#### 2015-02-10
+
+  - Improve browser support
+  - Improve browser testability
+  - Move helper methods to private namespace
+
+## Caveat
+
+Some special objects like a socket or `process.stdout`/`stderr` are known to not
+be cloneable. If you find other objects that cannot be cloned, please [open an
+issue](https://github.com/pvorb/clone/issues/new).
+
+
+## Bugs and Issues
+
+If you encounter any bugs or issues, feel free to [open an issue at
+github](https://github.com/pvorb/clone/issues) or send me an email to
+<paul@vorba.ch>. I also always like to hear from you, if you’re using my code.
+
+## License
+
+Copyright © 2011-2016 [Paul Vorbach](https://paul.vorba.ch/) and
+[contributors](https://github.com/pvorb/clone/graphs/contributors).
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the “Software”), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 10 - 0
node_modules/clone/clone.iml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="WEB_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="clone node_modules" level="project" />
+  </component>
+</module>

+ 257 - 0
node_modules/clone/clone.js

@@ -0,0 +1,257 @@
+var clone = (function() {
+'use strict';
+
+function _instanceof(obj, type) {
+  return type != null && obj instanceof type;
+}
+
+var nativeMap;
+try {
+  nativeMap = Map;
+} catch(_) {
+  // maybe a reference error because no `Map`. Give it a dummy value that no
+  // value will ever be an instanceof.
+  nativeMap = function() {};
+}
+
+var nativeSet;
+try {
+  nativeSet = Set;
+} catch(_) {
+  nativeSet = function() {};
+}
+
+var nativePromise;
+try {
+  nativePromise = Promise;
+} catch(_) {
+  nativePromise = function() {};
+}
+
+/**
+ * Clones (copies) an Object using deep copying.
+ *
+ * This function supports circular references by default, but if you are certain
+ * there are no circular references in your object, you can save some CPU time
+ * by calling clone(obj, false).
+ *
+ * Caution: if `circular` is false and `parent` contains circular references,
+ * your program may enter an infinite loop and crash.
+ *
+ * @param `parent` - the object to be cloned
+ * @param `circular` - set to true if the object to be cloned may contain
+ *    circular references. (optional - true by default)
+ * @param `depth` - set to a number if the object is only to be cloned to
+ *    a particular depth. (optional - defaults to Infinity)
+ * @param `prototype` - sets the prototype to be used when cloning an object.
+ *    (optional - defaults to parent prototype).
+ * @param `includeNonEnumerable` - set to true if the non-enumerable properties
+ *    should be cloned as well. Non-enumerable properties on the prototype
+ *    chain will be ignored. (optional - false by default)
+*/
+function clone(parent, circular, depth, prototype, includeNonEnumerable) {
+  if (typeof circular === 'object') {
+    depth = circular.depth;
+    prototype = circular.prototype;
+    includeNonEnumerable = circular.includeNonEnumerable;
+    circular = circular.circular;
+  }
+  // maintain two arrays for circular references, where corresponding parents
+  // and children have the same index
+  var allParents = [];
+  var allChildren = [];
+
+  var useBuffer = typeof Buffer != 'undefined';
+
+  if (typeof circular == 'undefined')
+    circular = true;
+
+  if (typeof depth == 'undefined')
+    depth = Infinity;
+
+  // recurse this function so we don't reset allParents and allChildren
+  function _clone(parent, depth) {
+    // cloning null always returns null
+    if (parent === null)
+      return null;
+
+    if (depth === 0)
+      return parent;
+
+    var child;
+    var proto;
+    if (typeof parent != 'object') {
+      return parent;
+    }
+
+    if (_instanceof(parent, nativeMap)) {
+      child = new nativeMap();
+    } else if (_instanceof(parent, nativeSet)) {
+      child = new nativeSet();
+    } else if (_instanceof(parent, nativePromise)) {
+      child = new nativePromise(function (resolve, reject) {
+        parent.then(function(value) {
+          resolve(_clone(value, depth - 1));
+        }, function(err) {
+          reject(_clone(err, depth - 1));
+        });
+      });
+    } else if (clone.__isArray(parent)) {
+      child = [];
+    } else if (clone.__isRegExp(parent)) {
+      child = new RegExp(parent.source, __getRegExpFlags(parent));
+      if (parent.lastIndex) child.lastIndex = parent.lastIndex;
+    } else if (clone.__isDate(parent)) {
+      child = new Date(parent.getTime());
+    } else if (useBuffer && Buffer.isBuffer(parent)) {
+      if (Buffer.allocUnsafe) {
+        // Node.js >= 4.5.0
+        child = Buffer.allocUnsafe(parent.length);
+      } else {
+        // Older Node.js versions
+        child = new Buffer(parent.length);
+      }
+      parent.copy(child);
+      return child;
+    } else if (_instanceof(parent, Error)) {
+      child = Object.create(parent);
+    } else {
+      if (typeof prototype == 'undefined') {
+        proto = Object.getPrototypeOf(parent);
+        child = Object.create(proto);
+      }
+      else {
+        child = Object.create(prototype);
+        proto = prototype;
+      }
+    }
+
+    if (circular) {
+      var index = allParents.indexOf(parent);
+
+      if (index != -1) {
+        return allChildren[index];
+      }
+      allParents.push(parent);
+      allChildren.push(child);
+    }
+
+    if (_instanceof(parent, nativeMap)) {
+      parent.forEach(function(value, key) {
+        var keyChild = _clone(key, depth - 1);
+        var valueChild = _clone(value, depth - 1);
+        child.set(keyChild, valueChild);
+      });
+    }
+    if (_instanceof(parent, nativeSet)) {
+      parent.forEach(function(value) {
+        var entryChild = _clone(value, depth - 1);
+        child.add(entryChild);
+      });
+    }
+
+    for (var i in parent) {
+      var attrs;
+      if (proto) {
+        attrs = Object.getOwnPropertyDescriptor(proto, i);
+      }
+
+      if (attrs && attrs.set == null) {
+        continue;
+      }
+      child[i] = _clone(parent[i], depth - 1);
+    }
+
+    if (Object.getOwnPropertySymbols) {
+      var symbols = Object.getOwnPropertySymbols(parent);
+      for (var i = 0; i < symbols.length; i++) {
+        // Don't need to worry about cloning a symbol because it is a primitive,
+        // like a number or string.
+        var symbol = symbols[i];
+        var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);
+        if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {
+          continue;
+        }
+        child[symbol] = _clone(parent[symbol], depth - 1);
+        if (!descriptor.enumerable) {
+          Object.defineProperty(child, symbol, {
+            enumerable: false
+          });
+        }
+      }
+    }
+
+    if (includeNonEnumerable) {
+      var allPropertyNames = Object.getOwnPropertyNames(parent);
+      for (var i = 0; i < allPropertyNames.length; i++) {
+        var propertyName = allPropertyNames[i];
+        var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);
+        if (descriptor && descriptor.enumerable) {
+          continue;
+        }
+        child[propertyName] = _clone(parent[propertyName], depth - 1);
+        Object.defineProperty(child, propertyName, {
+          enumerable: false
+        });
+      }
+    }
+
+    return child;
+  }
+
+  return _clone(parent, depth);
+}
+
+/**
+ * Simple flat clone using prototype, accepts only objects, usefull for property
+ * override on FLAT configuration object (no nested props).
+ *
+ * USE WITH CAUTION! This may not behave as you wish if you do not know how this
+ * works.
+ */
+clone.clonePrototype = function clonePrototype(parent) {
+  if (parent === null)
+    return null;
+
+  var c = function () {};
+  c.prototype = parent;
+  return new c();
+};
+
+// private utility functions
+
+function __objToStr(o) {
+  return Object.prototype.toString.call(o);
+}
+clone.__objToStr = __objToStr;
+
+function __isDate(o) {
+  return typeof o === 'object' && __objToStr(o) === '[object Date]';
+}
+clone.__isDate = __isDate;
+
+function __isArray(o) {
+  return typeof o === 'object' && __objToStr(o) === '[object Array]';
+}
+clone.__isArray = __isArray;
+
+function __isRegExp(o) {
+  return typeof o === 'object' && __objToStr(o) === '[object RegExp]';
+}
+clone.__isRegExp = __isRegExp;
+
+function __getRegExpFlags(re) {
+  var flags = '';
+  if (re.global) flags += 'g';
+  if (re.ignoreCase) flags += 'i';
+  if (re.multiline) flags += 'm';
+  return flags;
+}
+clone.__getRegExpFlags = __getRegExpFlags;
+
+return clone;
+})();
+
+if (typeof module === 'object' && module.exports) {
+  module.exports = clone;
+}

+ 56 - 0
node_modules/clone/package.json

@@ -0,0 +1,56 @@
+{
+  "name": "clone",
+  "description": "deep cloning of objects and arrays",
+  "tags": [
+    "clone",
+    "object",
+    "array",
+    "function",
+    "date"
+  ],
+  "version": "2.1.2",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/pvorb/node-clone.git"
+  },
+  "bugs": {
+    "url": "https://github.com/pvorb/node-clone/issues"
+  },
+  "main": "clone.js",
+  "author": "Paul Vorbach <paul@vorba.ch> (http://paul.vorba.ch/)",
+  "contributors": [
+    "Blake Miner <miner.blake@gmail.com> (http://www.blakeminer.com/)",
+    "Tian You <axqd001@gmail.com> (http://blog.axqd.net/)",
+    "George Stagas <gstagas@gmail.com> (http://stagas.com/)",
+    "Tobiasz Cudnik <tobiasz.cudnik@gmail.com> (https://github.com/TobiaszCudnik)",
+    "Pavel Lang <langpavel@phpskelet.org> (https://github.com/langpavel)",
+    "Dan MacTough (http://yabfog.com/)",
+    "w1nk (https://github.com/w1nk)",
+    "Hugh Kennedy (http://twitter.com/hughskennedy)",
+    "Dustin Diaz (http://dustindiaz.com)",
+    "Ilya Shaisultanov (https://github.com/diversario)",
+    "Nathan MacInnes <nathan@macinn.es> (http://macinn.es/)",
+    "Benjamin E. Coe <ben@npmjs.com> (https://twitter.com/benjamincoe)",
+    "Nathan Zadoks (https://github.com/nathan7)",
+    "Róbert Oroszi <robert+gh@oroszi.net> (https://github.com/oroce)",
+    "Aurélio A. Heckert (http://softwarelivre.org/aurium)",
+    "Guy Ellis (http://www.guyellisrocks.com/)",
+    "fscherwi (https://fscherwi.github.io)",
+    "rictic (https://github.com/rictic)",
+    "Martin Jurča (https://github.com/jurca)",
+    "Misery Lee <miserylee@foxmail.com> (https://github.com/miserylee)",
+    "Clemens Wolff (https://github.com/c-w)"
+  ],
+  "license": "MIT",
+  "engines": {
+    "node": ">=0.8"
+  },
+  "dependencies": {},
+  "devDependencies": {
+    "nodeunit": "~0.9.0"
+  },
+  "optionalDependencies": {},
+  "scripts": {
+    "test": "nodeunit test.js"
+  }
+}

+ 7 - 0
node_modules/dayjs/.editorconfig

@@ -0,0 +1,7 @@
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+insert_final_newline = true
+indent_size = 2

+ 947 - 0
node_modules/dayjs/CHANGELOG.md

@@ -0,0 +1,947 @@
+## [1.11.13](https://github.com/iamkun/dayjs/compare/v1.11.12...v1.11.13) (2024-08-20)
+
+
+### Bug Fixes
+
+* customParseFormat supports Q quter / w ww weekOfYear ([#2705](https://github.com/iamkun/dayjs/issues/2705)) ([8ca74f1](https://github.com/iamkun/dayjs/commit/8ca74f178eff4bb4eb686676cf35fe7edb815536))
+
+## [1.11.12](https://github.com/iamkun/dayjs/compare/v1.11.11...v1.11.12) (2024-07-18)
+
+
+### Bug Fixes
+
+* Add NegativeYear Plugin support  ([#2640](https://github.com/iamkun/dayjs/issues/2640)) ([6a42e0d](https://github.com/iamkun/dayjs/commit/6a42e0d7398639238f575d51287daaf4d495a2a3))
+* add UTC support to negativeYear plugin ([#2692](https://github.com/iamkun/dayjs/issues/2692)) ([f3ef705](https://github.com/iamkun/dayjs/commit/f3ef705613af83333fe132b470896a65e12f31b0))
+* Fix zero offset issue when use tz with locale ([#2532](https://github.com/iamkun/dayjs/issues/2532)) ([d0e6738](https://github.com/iamkun/dayjs/commit/d0e6738a66e1b65d3706aad2f9168ebb43d4f887))
+* Improve typing for min/max plugin ([#2573](https://github.com/iamkun/dayjs/issues/2573)) ([4fbe94a](https://github.com/iamkun/dayjs/commit/4fbe94aaba8c815a42cf4d23dabac918ec50e68c))
+* timezone plugin correct parse UTC tz ([#2693](https://github.com/iamkun/dayjs/issues/2693)) ([b575c81](https://github.com/iamkun/dayjs/commit/b575c81a8c9c85c7a0baf6f608a12f9d3ba95bd1))
+
+## [1.11.11](https://github.com/iamkun/dayjs/compare/v1.11.10...v1.11.11) (2024-04-28)
+
+
+### Bug Fixes
+
+* day of week type literal ([#2630](https://github.com/iamkun/dayjs/issues/2630)) ([f68d73e](https://github.com/iamkun/dayjs/commit/f68d73efe562fdedd9e288ecb0ce6565e602f507))
+* improve locale "zh-hk" format and meridiem ([#2419](https://github.com/iamkun/dayjs/issues/2419)) ([a947a51](https://github.com/iamkun/dayjs/commit/a947a5171aad5695eaf593bc95fe073de0f0894a))
+* Update 'da' locale to match correct first week of year ([#2592](https://github.com/iamkun/dayjs/issues/2592)) ([44b0936](https://github.com/iamkun/dayjs/commit/44b0936ad709212b63e48672d8b9c225e2c3b830))
+* update locale Bulgarian monthsShort Jan ([#2538](https://github.com/iamkun/dayjs/issues/2538)) ([f0c9a41](https://github.com/iamkun/dayjs/commit/f0c9a41c6ec91528f3790e442b0c5dff15a4e640))
+
+## [1.11.10](https://github.com/iamkun/dayjs/compare/v1.11.9...v1.11.10) (2023-09-19)
+
+
+### Bug Fixes
+
+* Add Korean Day of Month with ordinal ([#2395](https://github.com/iamkun/dayjs/issues/2395)) ([dd55ee2](https://github.com/iamkun/dayjs/commit/dd55ee2aadd1009242235e47d558bbf028827896))
+* change back fa locale to the Gregorian calendar equivalent ([#2411](https://github.com/iamkun/dayjs/issues/2411)) ([95e9458](https://github.com/iamkun/dayjs/commit/95e9458b221fe35e59ee4a160a5db247313a68fb))
+* duration plugin - MILLISECONDS_A_MONTH const calculation ([#2362](https://github.com/iamkun/dayjs/issues/2362)) ([f0a0b54](https://github.com/iamkun/dayjs/commit/f0a0b546b074b3b511c2319a1ce83d412894b91f))
+* duration plugin getter get result  0 instead of undefined ([#2369](https://github.com/iamkun/dayjs/issues/2369)) ([061aa7e](https://github.com/iamkun/dayjs/commit/061aa7ed6c31696974665fc9b11a74d30841ebed))
+* fix isDayjs check logic ([#2383](https://github.com/iamkun/dayjs/issues/2383)) ([5f3f878](https://github.com/iamkun/dayjs/commit/5f3f8786c796cd432fe6bcb6966a810daea89203))
+* fix timezone plugin to get correct locale setting ([#2420](https://github.com/iamkun/dayjs/issues/2420)) ([4f45012](https://github.com/iamkun/dayjs/commit/4f4501256fa1bc72128aae1d841bbd782df86aed))
+* **locale:** add meridiem in `ar` locale ([#2418](https://github.com/iamkun/dayjs/issues/2418)) ([361be5c](https://github.com/iamkun/dayjs/commit/361be5c7c628614ee833d710acbe154a598b904d))
+* round durations to millisecond precision for ISO string ([#2367](https://github.com/iamkun/dayjs/issues/2367)) ([890a17a](https://github.com/iamkun/dayjs/commit/890a17a8d8ddd43c7c8b806e3afc7b27f3288d27))
+* sub-second precisions need to be rounded at the seconds field to avoid adding floats ([#2377](https://github.com/iamkun/dayjs/issues/2377)) ([a9d7d03](https://github.com/iamkun/dayjs/commit/a9d7d0398d22ebd4bfc3812ca0134a97606d54d9))
+* update $x logic to avoid plugin error ([#2429](https://github.com/iamkun/dayjs/issues/2429)) ([2254635](https://github.com/iamkun/dayjs/commit/22546357f30924fcff3b3ffa14fd04be21f97a5e))
+* Update Slovenian locale for relative time ([#2396](https://github.com/iamkun/dayjs/issues/2396)) ([5470a15](https://github.com/iamkun/dayjs/commit/5470a15e437fac803797363063b24f3ba3bd5299))
+* update uzbek language translation ([#2327](https://github.com/iamkun/dayjs/issues/2327)) ([0a91056](https://github.com/iamkun/dayjs/commit/0a910564d76dc7c128da8e0d85d8e11ebdb5660b))
+
+## [1.11.9](https://github.com/iamkun/dayjs/compare/v1.11.8...v1.11.9) (2023-07-01)
+
+
+### Bug Fixes
+
+* Add null to min and max plugin return type ([#2355](https://github.com/iamkun/dayjs/issues/2355)) ([62d9042](https://github.com/iamkun/dayjs/commit/62d9042eb84b78d78324694ccbeaad1679d37e68))
+* check if null passed to objectSupport parser ([#2175](https://github.com/iamkun/dayjs/issues/2175)) ([013968f](https://github.com/iamkun/dayjs/commit/013968f609c32e2269df69b4dd1feb2e8e1e035a))
+* dayjs.diff improve performance ([#2244](https://github.com/iamkun/dayjs/issues/2244)) ([33c80e1](https://github.com/iamkun/dayjs/commit/33c80e14cf14f70ceb4f54639e266cd70a3c3996))
+* dayjs(null) throws error, not return dayjs object as invalid date ([#2334](https://github.com/iamkun/dayjs/issues/2334)) ([c79e2f5](https://github.com/iamkun/dayjs/commit/c79e2f5d03eef5660b1f13385b69c0c9668d2f98))
+* objectSupport plugin causes an error when null is passed to dayjs function (closes [#2277](https://github.com/iamkun/dayjs/issues/2277)) ([#2342](https://github.com/iamkun/dayjs/issues/2342)) ([89bf31c](https://github.com/iamkun/dayjs/commit/89bf31ce0a36dcfc892029dc019d85d3654cf5fb))
+* Optimize format method ([#2313](https://github.com/iamkun/dayjs/issues/2313)) ([1fe1b1d](https://github.com/iamkun/dayjs/commit/1fe1b1d9a214d3b8c9f267b432801424a493f1c4))
+* update Duration plugin add/subtract take into account days in month ([#2337](https://github.com/iamkun/dayjs/issues/2337)) ([3b1060f](https://github.com/iamkun/dayjs/commit/3b1060f92183ab3a3c49289c2d87fbdd34c1eacc))
+* update MinMax plugin 1. ignore the 'null' in args 2. return the only one arg ([#2330](https://github.com/iamkun/dayjs/issues/2330)) ([3c2c6ee](https://github.com/iamkun/dayjs/commit/3c2c6ee4db00bbb43a7a3bb0b56bc0d0f03daddc))
+
+## [1.11.8](https://github.com/iamkun/dayjs/compare/v1.11.7...v1.11.8) (2023-06-02)
+
+
+### Bug Fixes
+
+* .format add padding to 'YYYY' ([#2231](https://github.com/iamkun/dayjs/issues/2231)) ([00c223b](https://github.com/iamkun/dayjs/commit/00c223b7e92970d07557133994fcb225a6d4c960))
+* Added .valueOf method to Duration class ([#2226](https://github.com/iamkun/dayjs/issues/2226)) ([9b4fcfd](https://github.com/iamkun/dayjs/commit/9b4fcfde35b39693894be1821b6c7222fac98657))
+* timezone type mark `date` parameter as optional ([#2222](https://github.com/iamkun/dayjs/issues/2222)) ([b87aa0e](https://github.com/iamkun/dayjs/commit/b87aa0ed9a748c478a66ef48230cd1d6350d7b8a))
+* type file first parameter date is optional in isSame(), isBefore(), isAfter() ([#2272](https://github.com/iamkun/dayjs/issues/2272)) ([4d56f3e](https://github.com/iamkun/dayjs/commit/4d56f3eb2b3770879d60f824590bf1b32f237d47))
+
+## [1.11.7](https://github.com/iamkun/dayjs/compare/v1.11.6...v1.11.7) (2022-12-06)
+
+
+### Bug Fixes
+
+* Add locale (zh-tw) meridiem ([#2149](https://github.com/iamkun/dayjs/issues/2149)) ([1e9ba76](https://github.com/iamkun/dayjs/commit/1e9ba761ff4e3f2759106dfe1aa9054d5826451c))
+* update fa locale ([#2151](https://github.com/iamkun/dayjs/issues/2151)) ([1c26732](https://github.com/iamkun/dayjs/commit/1c267321a1a01b4947e1482bac67d67ebc7c3dfa))
+
+## [1.11.6](https://github.com/iamkun/dayjs/compare/v1.11.5...v1.11.6) (2022-10-21)
+
+
+### Bug Fixes
+
+* add BigIntSupport plugin ([#2087](https://github.com/iamkun/dayjs/issues/2087)) ([f6dce48](https://github.com/iamkun/dayjs/commit/f6dce48a9e39677718b087867d9fd901d5078155))
+* Fix objectSupport collides with Duration plugin - issue [#2027](https://github.com/iamkun/dayjs/issues/2027) ([#2038](https://github.com/iamkun/dayjs/issues/2038)) ([c9370ea](https://github.com/iamkun/dayjs/commit/c9370ea96bf420439ee7eaa4146e8ed643160312))
+
+## [1.11.5](https://github.com/iamkun/dayjs/compare/v1.11.4...v1.11.5) (2022-08-12)
+
+
+### Bug Fixes
+
+* ordinal for nl not working ([#2011](https://github.com/iamkun/dayjs/issues/2011)) ([c93c85e](https://github.com/iamkun/dayjs/commit/c93c85eaa11564a1aae2d823480a417812c01bf4))
+* wrong ordinal for french locale ([#2010](https://github.com/iamkun/dayjs/issues/2010)) ([dd192a7](https://github.com/iamkun/dayjs/commit/dd192a72fc5d26ce56481e89b0c1ccf5f939be0c))
+
+## [1.11.4](https://github.com/iamkun/dayjs/compare/v1.11.3...v1.11.4) (2022-07-19)
+
+
+### Bug Fixes
+
+* correct past property in ku (kurdish) locale ([#1916](https://github.com/iamkun/dayjs/issues/1916)) ([74e82b9](https://github.com/iamkun/dayjs/commit/74e82b9da5ec8b90361fc27ac7c8b63faf354502))
+* fix French [fr] local ordinal ([#1932](https://github.com/iamkun/dayjs/issues/1932)) ([8f09834](https://github.com/iamkun/dayjs/commit/8f09834a88b8e7f8353c6e7473d4711596890a8c))
+* fix objectSupport plugin ConfigTypeMap type ([#1441](https://github.com/iamkun/dayjs/issues/1441)) ([#1990](https://github.com/iamkun/dayjs/issues/1990)) ([fd51fe4](https://github.com/iamkun/dayjs/commit/fd51fe4f7fa799d8c598343e71fa59299ec4cf93))
+* fix type error to add ordianl property in InstanceLocaleDataReturn and GlobalLocaleDataReturn types ([#1931](https://github.com/iamkun/dayjs/issues/1931)) ([526f0ae](https://github.com/iamkun/dayjs/commit/526f0ae549ffbeeb9ef1099ca23964791fc59743))
+* update locale ar-* meridiem function ([#1954](https://github.com/iamkun/dayjs/issues/1954)) ([3d31611](https://github.com/iamkun/dayjs/commit/3d316117f04362d31f4e8bd349620b8414ce5d0c))
+* zh-tw / zh-hk locale ordinal error ([#1976](https://github.com/iamkun/dayjs/issues/1976)) ([0a1bd08](https://github.com/iamkun/dayjs/commit/0a1bd08e736be7d4e378aaca280caa6543f8066d))
+
+## [1.11.3](https://github.com/iamkun/dayjs/compare/v1.11.2...v1.11.3) (2022-06-06)
+
+
+### Bug Fixes
+
+*  customParseFormat plugin to parse comma as a separator character ([#1913](https://github.com/iamkun/dayjs/issues/1913)) ([41b1405](https://github.com/iamkun/dayjs/commit/41b1405971e099431211ae6c2a100cd797da4427))
+* update Dutch [nl] locale ordinal ([#1908](https://github.com/iamkun/dayjs/issues/1908)) ([5da98f8](https://github.com/iamkun/dayjs/commit/5da98f8085d2d2847d79e38c795082703a14f24b))
+
+## [1.11.2](https://github.com/iamkun/dayjs/compare/v1.11.1...v1.11.2) (2022-05-06)
+
+
+### Bug Fixes
+
+* add OpUnitType (week) to quarterOfYear startOf/endOf types ([#1865](https://github.com/iamkun/dayjs/issues/1865)) ([400bc3e](https://github.com/iamkun/dayjs/commit/400bc3e8915e0c58e7abbfd3a1235364b1abaf3e))
+* Fix type issue with ManipulateType ([#1864](https://github.com/iamkun/dayjs/issues/1864)) ([d033dfc](https://github.com/iamkun/dayjs/commit/d033dfcfc1d2ced39b2733898e8d85ad5984c9e9))
+* fix UTC plugin .valueOf not taking DST into account  ([#1448](https://github.com/iamkun/dayjs/issues/1448)) ([27d1c50](https://github.com/iamkun/dayjs/commit/27d1c506100ae6624f258c21cc06b24768ced733))
+
+## [1.11.1](https://github.com/iamkun/dayjs/compare/v1.11.0...v1.11.1) (2022-04-15)
+
+
+### Bug Fixes
+
+* add Bengali (Bangladesh) [bn-bd] locale ([#1806](https://github.com/iamkun/dayjs/issues/1806)) ([840ed76](https://github.com/iamkun/dayjs/commit/840ed76eedc085afefc4dedd05f31d44196b63b0))
+* refactor replace deprecated String.prototype.substr() ([#1836](https://github.com/iamkun/dayjs/issues/1836)) ([627fa39](https://github.com/iamkun/dayjs/commit/627fa393e4daf83c92431162dbe18534b23fcbae))
+* Update German [de] locale, adds the abbreviations for month including a . in the end, as in September -> Sept. ([#1831](https://github.com/iamkun/dayjs/issues/1831)) ([4e2802c](https://github.com/iamkun/dayjs/commit/4e2802cc3bec2941ffb737a15fb531c90951eafe))
+* update Italian (Switzerland) [it-ch] locale relativeTime ([#1829](https://github.com/iamkun/dayjs/issues/1829)) ([8e6d11d](https://github.com/iamkun/dayjs/commit/8e6d11d053393d97bee1ba411adb2d82de1a58c4))
+* update Kurdish [ku] locale strings and formatted output contains non-standard kurdish characters ([#1848](https://github.com/iamkun/dayjs/issues/1848)) ([a597d0b](https://github.com/iamkun/dayjs/commit/a597d0b1b8dd28e626f8c59d326622088f7b51e7))
+* update locale bo [Tibetan]: corrected the orders in formats ([#1823](https://github.com/iamkun/dayjs/issues/1823)) ([e790516](https://github.com/iamkun/dayjs/commit/e79051617af6787358f6c9b5443d987b8b53a9e1))
+
+# [1.11.0](https://github.com/iamkun/dayjs/compare/v1.10.8...v1.11.0) (2022-03-14)
+
+
+### Bug Fixes
+
+* Add Kirundi (rn) locale ([#1793](https://github.com/iamkun/dayjs/issues/1793)) ([74e5247](https://github.com/iamkun/dayjs/commit/74e5247227a779fffde39bdfcd1ee19911496709))
+* add missing date shorthand D type definition ([#1752](https://github.com/iamkun/dayjs/issues/1752)) ([b045baf](https://github.com/iamkun/dayjs/commit/b045baf1646a81f7e4f446f355d02d5fb0ef4aa7))
+* Add relative time to Galician (gl) and fix ordinals ([#1800](https://github.com/iamkun/dayjs/issues/1800)) ([dcbf170](https://github.com/iamkun/dayjs/commit/dcbf1708400624addfbddbc71e0f6a9ac15fa961))
+* update German locales (de-at, de-ch) ([#1775](https://github.com/iamkun/dayjs/issues/1775)) ([f9055a7](https://github.com/iamkun/dayjs/commit/f9055a77bf3d84c575e5fcf99e21611138ba64d7))
+* update Icelandic [is] locale relativeTime config ([#1796](https://github.com/iamkun/dayjs/issues/1796)) ([76f9e17](https://github.com/iamkun/dayjs/commit/76f9e1756de7e99c01e471dab30ea074b9ec9629))
+* Update index.d.ts note ([#1716](https://github.com/iamkun/dayjs/issues/1716)) ([5a108ff](https://github.com/iamkun/dayjs/commit/5a108ff3159c53fd270ea7638f33c35c934d6457))
+* Update locale German [de] monthsShort ([#1746](https://github.com/iamkun/dayjs/issues/1746)) ([4a7b7d0](https://github.com/iamkun/dayjs/commit/4a7b7d07c885bb9338514c234dbb708e24e9863e))
+* update meridiem function to Kurdish (ku) locale ([#1725](https://github.com/iamkun/dayjs/issues/1725)) ([efd3904](https://github.com/iamkun/dayjs/commit/efd3904ff8cbf0a4fc064911dda76fc86b669f7b))
+* update updateLocal plugin typescript types ([#1692](https://github.com/iamkun/dayjs/issues/1692)) ([c7a3f73](https://github.com/iamkun/dayjs/commit/c7a3f73064dbb63b4d365b2ad4c792f075f4d8d8))
+
+
+### Features
+
+* Fallback to language only locale + support uppercase locales ([#1524](https://github.com/iamkun/dayjs/issues/1524)) ([9138dc2](https://github.com/iamkun/dayjs/commit/9138dc28206875372da4fb74c64716437cd11b95))
+
+## [1.10.8](https://github.com/iamkun/dayjs/compare/v1.10.7...v1.10.8) (2022-02-28)
+
+
+### Bug Fixes
+
+* set locale pt, pt-br correct weekdays and months ([#1697](https://github.com/iamkun/dayjs/issues/1697)) ([e019301](https://github.com/iamkun/dayjs/commit/e01930171c8235f58a114236f146086428f99569))
+
+## [1.10.7](https://github.com/iamkun/dayjs/compare/v1.10.6...v1.10.7) (2021-09-10)
+
+
+### Bug Fixes
+
+* Add  Spanish (Mexico) [es-mx] locale ([#1614](https://github.com/iamkun/dayjs/issues/1614)) ([3393f2a](https://github.com/iamkun/dayjs/commit/3393f2ad55346d55902683a2e31c6f253d96c8c2))
+* Add Arabic (Iraq) [ar-iq] locale ([#1627](https://github.com/iamkun/dayjs/issues/1627)) ([b5a1391](https://github.com/iamkun/dayjs/commit/b5a1391011b247d08863d291542db5937b23b427))
+* add format object type to type file ([#1572](https://github.com/iamkun/dayjs/issues/1572)) ([5a79cc6](https://github.com/iamkun/dayjs/commit/5a79cc6408e825d9e123629eb44fc19c996d7751))
+* duration plugin when parsing duration from ISO string, set missing components to 0 instead of NaN ([#1611](https://github.com/iamkun/dayjs/issues/1611)) ([252585b](https://github.com/iamkun/dayjs/commit/252585b4b2bd59508150e21bb994908a9d78f9b0))
+* narrow type for `add` and `subtract` ([#1576](https://github.com/iamkun/dayjs/issues/1576)) ([1686962](https://github.com/iamkun/dayjs/commit/16869621b1a42563064dbf87f80c1ebfd74c1188))
+* update customParseFormat plugin strict x X parsing ([#1571](https://github.com/iamkun/dayjs/issues/1571)) ([08adda5](https://github.com/iamkun/dayjs/commit/08adda54edbcca38601f57841921d0f87f84e49e))
+* update Lithuanian [lt] locale spelling for single month ([#1609](https://github.com/iamkun/dayjs/issues/1609)) ([255dc54](https://github.com/iamkun/dayjs/commit/255dc54d9295de135a9037ce6ca13cae4bfd2cfb))
+* Update Norwegian Bokmål [nb] local yearStart 4 ([#1608](https://github.com/iamkun/dayjs/issues/1608)) ([7a8467c](https://github.com/iamkun/dayjs/commit/7a8467c0b7d59821f7e19d4a6973bcda8e4c19b1))
+* update plugin advancedFormat `isValid` validation ([#1566](https://github.com/iamkun/dayjs/issues/1566)) ([755fc8b](https://github.com/iamkun/dayjs/commit/755fc8bb1c532eb991459f180eee81367d12016c))
+* update Sinhalese [si] locale month name ([#1475](https://github.com/iamkun/dayjs/issues/1475)) ([63de2a8](https://github.com/iamkun/dayjs/commit/63de2a8b7dcd7e68c132c85d88572d4c9d296907))
+* update utcOffset plugin type file ([#1604](https://github.com/iamkun/dayjs/issues/1604)) ([f68e4b1](https://github.com/iamkun/dayjs/commit/f68e4b1a29fc33542f74cde10ec6d9fb045ca37e))
+
+## [1.10.6](https://github.com/iamkun/dayjs/compare/v1.10.5...v1.10.6) (2021-07-06)
+
+
+### Bug Fixes
+
+* add invalid date string override ([#1465](https://github.com/iamkun/dayjs/issues/1465)) ([#1470](https://github.com/iamkun/dayjs/issues/1470)) ([06f88f4](https://github.com/iamkun/dayjs/commit/06f88f425828b1ce96b737332d25145a95a4ee9d))
+* add sv-fi Finland Swedish locale ([#1522](https://github.com/iamkun/dayjs/issues/1522)) ([8e32164](https://github.com/iamkun/dayjs/commit/8e32164855cff724642e24c37a631eb4c4d760c8))
+* customParseFormat support parsing X x timestamp ([#1567](https://github.com/iamkun/dayjs/issues/1567)) ([eb087f5](https://github.com/iamkun/dayjs/commit/eb087f52861313b8dd8a5c1b77858665ec72859e))
+* dayjs ConfigTypeMap add null & undefined ([#1560](https://github.com/iamkun/dayjs/issues/1560)) ([b5e40e6](https://github.com/iamkun/dayjs/commit/b5e40e6f16abeaea6a0facfa466d20aefaa8a444))
+* Fix DayOfYear plugin when using BadMutable plugin ([#1511](https://github.com/iamkun/dayjs/issues/1511)) ([0b0c6a3](https://github.com/iamkun/dayjs/commit/0b0c6a31ec9c0aff991b0e8dd6eed116201274cc))
+* Implement ordinal in Bulgarian translation (fixes [#1501](https://github.com/iamkun/dayjs/issues/1501)) ([#1502](https://github.com/iamkun/dayjs/issues/1502)) ([b728da5](https://github.com/iamkun/dayjs/commit/b728da5ed9ed08210004ed20ce5fcd52a92de7da))
+* more strict delimiter in REGEX_PARSE ([#1555](https://github.com/iamkun/dayjs/issues/1555)) ([bfdab5c](https://github.com/iamkun/dayjs/commit/bfdab5c0d45a5736b68e8e1b1354fc021e05f607))
+* parameter type ([#1549](https://github.com/iamkun/dayjs/issues/1549)) ([f369844](https://github.com/iamkun/dayjs/commit/f369844dd69d253c4c7cbf68150939db3db233be))
+* update customParseFormat plugin to custom two-digit year parse function ([#1421](https://github.com/iamkun/dayjs/issues/1421)) ([bb5df55](https://github.com/iamkun/dayjs/commit/bb5df55cd3975dc7638b8f4e762afa470b6620f7))
+* update names of weekdays and months in Bulgarian [bg] to lowercase ([#1438](https://github.com/iamkun/dayjs/issues/1438)) ([b246210](https://github.com/iamkun/dayjs/commit/b24621091fec9cf6704de21e4b323f6f0c4abbf1))
+* update type file `.diff` ([#1505](https://github.com/iamkun/dayjs/issues/1505)) ([6508494](https://github.com/iamkun/dayjs/commit/6508494a4e62977b4397baaeef293d1bcf3c7235))
+* update UTC plugin type file for strict parsing ([#1443](https://github.com/iamkun/dayjs/issues/1443)) ([b4f28df](https://github.com/iamkun/dayjs/commit/b4f28df219fe63202dffdbeeaec5677c4d2c9111))
+
+## [1.10.5](https://github.com/iamkun/dayjs/compare/v1.10.4...v1.10.5) (2021-05-26)
+
+
+### Bug Fixes
+
+* add meridiem in ar locales ([#1375](https://github.com/iamkun/dayjs/issues/1375)) ([319f616](https://github.com/iamkun/dayjs/commit/319f616e572a03b984013d04d1b3a18ffd5b1190))
+* Added Zulu support to customParseFormat ([#1359](https://github.com/iamkun/dayjs/issues/1359)) ([1138a3f](https://github.com/iamkun/dayjs/commit/1138a3f0a76592c6d72fb86c4399e133fa41e2ec))
+* fix Bengali [bn] locale monthsShort error ([a0e6c0c](https://github.com/iamkun/dayjs/commit/a0e6c0cf3e1828020dfa11432c6716990f6ed5e0))
+* fix missing types for ArraySupport plugin ([#1401](https://github.com/iamkun/dayjs/issues/1401)) ([b1abdc4](https://github.com/iamkun/dayjs/commit/b1abdc40ee6c9d18ff46c311a114e0755677ea6f))
+* fix Ukrainian [uk] locale ([#1463](https://github.com/iamkun/dayjs/issues/1463)) ([0fdac93](https://github.com/iamkun/dayjs/commit/0fdac93ff2531542301b76952be9b084b2e2dfa0))
+* hotfix for `Duration` types ([#1357](https://github.com/iamkun/dayjs/issues/1357)) ([855b7b3](https://github.com/iamkun/dayjs/commit/855b7b3d049a3903794f91db3419f167c00dabd2)), closes [#1354](https://github.com/iamkun/dayjs/issues/1354)
+* timezone plugin DST error ([#1352](https://github.com/iamkun/dayjs/issues/1352)) ([71bed15](https://github.com/iamkun/dayjs/commit/71bed155edf32bff24379930ac684fc783538d8f))
+* Update duration plugin change string to number ([#1394](https://github.com/iamkun/dayjs/issues/1394)) ([e1546d1](https://github.com/iamkun/dayjs/commit/e1546d1a0cdb97ae92cf11efe61d94707af6a3a3))
+* update Duration plugin to support no-argument ([#1400](https://github.com/iamkun/dayjs/issues/1400)) ([8d9a5ae](https://github.com/iamkun/dayjs/commit/8d9a5ae0749e1b4e76babd4deeaa3b1d9776c29b))
+* Update Finnish [fi] locale to set yearStart  ([#1378](https://github.com/iamkun/dayjs/issues/1378)) ([f3370bd](https://github.com/iamkun/dayjs/commit/f3370bda4e435118f714c8a7daf5c88cfc4b69ba))
+* update Russian [ru] locale meridiem and unit tests ([#1403](https://github.com/iamkun/dayjs/issues/1403)) ([f10f39d](https://github.com/iamkun/dayjs/commit/f10f39de7db70244a3c35e4a421090a12972457b))
+* update Russian [ru] locale yearStart config  ([#1372](https://github.com/iamkun/dayjs/issues/1372)) ([5052515](https://github.com/iamkun/dayjs/commit/5052515fe35b2444201ef8ef87220b1876a94d0a))
+* update Slovenian [sl] locale to set correct ordinal  ([#1386](https://github.com/iamkun/dayjs/issues/1386)) ([cb4f746](https://github.com/iamkun/dayjs/commit/cb4f74633b3020d6dbf19548c8cb13613dafca18))
+* update Spanish [es] locale to change month names to lowercase ([#1414](https://github.com/iamkun/dayjs/issues/1414)) ([9c20e77](https://github.com/iamkun/dayjs/commit/9c20e77caf7b1b5eccf418175203b198d4e29535))
+* update Swedish [sv] locale to set correct yearStart ([#1385](https://github.com/iamkun/dayjs/issues/1385)) ([66c5935](https://github.com/iamkun/dayjs/commit/66c59354964ef456bcd5f6152819618f44978082))
+* update UTC plugin to support string argument like +HH:mm ([#1395](https://github.com/iamkun/dayjs/issues/1395)) ([656127c](https://github.com/iamkun/dayjs/commit/656127cc44eda50923a1ac755602863fc32b9e69))
+
+## [1.10.4](https://github.com/iamkun/dayjs/compare/v1.10.3...v1.10.4) (2021-01-22)
+
+
+### Bug Fixes
+
+* Correct handling negative duration ([#1317](https://github.com/iamkun/dayjs/issues/1317)) ([3f5c085](https://github.com/iamkun/dayjs/commit/3f5c085608182472f20b84766b10949945663e44))
+* Improve `Duration` types ([#1338](https://github.com/iamkun/dayjs/issues/1338)) ([4aca4b1](https://github.com/iamkun/dayjs/commit/4aca4b1b584a15de1146d929f95c944594032f20))
+* parse a string for MMM month format with underscore delimiter ([#1349](https://github.com/iamkun/dayjs/issues/1349)) ([82ef9a3](https://github.com/iamkun/dayjs/commit/82ef9a304f06287ac0a14c4da9a7fe6152b5fec9))
+* Update Bengali [bn] locale ([#1329](https://github.com/iamkun/dayjs/issues/1329)) ([02d96ec](https://github.com/iamkun/dayjs/commit/02d96ec7189f62d6ef8987135919cbb5ceff20a6))
+* update locale Portuguese [pt] yearStart ([#1345](https://github.com/iamkun/dayjs/issues/1345)) ([5c785d5](https://github.com/iamkun/dayjs/commit/5c785d528cc08811638d7cbfc7fc158d67b32d75))
+* update Polish [pl] locale yearStart ([#1348](https://github.com/iamkun/dayjs/issues/1348)) ([e93e6b8](https://github.com/iamkun/dayjs/commit/e93e6b8ffa61036b26382f1763e3864d4a7d5df5))
+* Update Slovenian [sl] relativeTime locale ([#1333](https://github.com/iamkun/dayjs/issues/1333)) ([fe5f1d0](https://github.com/iamkun/dayjs/commit/fe5f1d0afbe57b70339e268047e6c3028ca3d59b))
+
+## [1.10.3](https://github.com/iamkun/dayjs/compare/v1.10.2...v1.10.3) (2021-01-09)
+
+
+### Bug Fixes
+
+* fix customParseFormat plugin strict mode parse meridiem bug ([#1321](https://github.com/iamkun/dayjs/issues/1321)) ([e49eeef](https://github.com/iamkun/dayjs/commit/e49eeefbe8acb36419d36ca2e7ed8bc152f73ac1))
+* fix weekYear plugin missing locale bug ([#1319](https://github.com/iamkun/dayjs/issues/1319)) ([344bdc0](https://github.com/iamkun/dayjs/commit/344bdc0eed6843edb05723dc7853a41833d88f08)), closes [#1304](https://github.com/iamkun/dayjs/issues/1304)
+* update advancedFormat plugin to add format options for iso week and weekyear ([#1309](https://github.com/iamkun/dayjs/issues/1309)) ([2c54c64](https://github.com/iamkun/dayjs/commit/2c54c6441871a175ac9b95e41e4cd075dbac10cb))
+* update devHelper to add dev warning setting locale before loading ([c5cc893](https://github.com/iamkun/dayjs/commit/c5cc89355e1e206ca72433c19c40cb528690b04f))
+* update German [de] locale yearStart ([1858df8](https://github.com/iamkun/dayjs/commit/1858df8008de56570680723df89b36a8cbc970ef)), closes [#1264](https://github.com/iamkun/dayjs/issues/1264)
+
+## [1.10.2](https://github.com/iamkun/dayjs/compare/v1.10.1...v1.10.2) (2021-01-05)
+
+
+### Bug Fixes
+
+* fix parse regex bug ([#1307](https://github.com/iamkun/dayjs/issues/1307)) ([db2b6a5](https://github.com/iamkun/dayjs/commit/db2b6a5ea8e70f9fda645d113ca33495aa96b616)), closes [#1305](https://github.com/iamkun/dayjs/issues/1305)
+* remove module entry in package.json to revert 1.10.1 change ([#1314](https://github.com/iamkun/dayjs/issues/1314)) ([824dcb8](https://github.com/iamkun/dayjs/commit/824dcb8dfcccf14f64b6a2741a00fcdfe53dcd98))
+* update devHelper add warning "passing Year as a Number will be parsed as a Unix timestamp" ([#1315](https://github.com/iamkun/dayjs/issues/1315)) ([b0dda31](https://github.com/iamkun/dayjs/commit/b0dda3139e25441ab4e7c1f4f192dee0ecce6ef8))
+
+## [1.10.1](https://github.com/iamkun/dayjs/compare/v1.10.0...v1.10.1) (2021-01-03)
+
+
+### Bug Fixes
+
+* fix typescript type error UnitTypeLongPlural ([#1302](https://github.com/iamkun/dayjs/issues/1302)) ([bfaabe4](https://github.com/iamkun/dayjs/commit/bfaabe4f398c11564eca6cda7c8aded22e1b231a)), closes [#1300](https://github.com/iamkun/dayjs/issues/1300)
+
+# [1.10.0](https://github.com/iamkun/dayjs/compare/v1.9.8...v1.10.0) (2021-01-03)
+
+
+### Bug Fixes
+
+* add ordinal to localeData plugin ([#1266](https://github.com/iamkun/dayjs/issues/1266)) ([fd229fa](https://github.com/iamkun/dayjs/commit/fd229fa5bd26bcba810e2535eb937ea8d99106c2))
+* add preParsePostFormat plugin & update Arabic [ar] locale ([#1255](https://github.com/iamkun/dayjs/issues/1255)) ([f2e4790](https://github.com/iamkun/dayjs/commit/f2e479006a9a49bc0917f8620101d40ac645f7f2))
+* add type support for plural forms of units ([#1289](https://github.com/iamkun/dayjs/issues/1289)) ([de49bb1](https://github.com/iamkun/dayjs/commit/de49bb100badfb92b9a5933cc568841f340a923f))
+* escape last period to match only milliseconds ([#1239](https://github.com/iamkun/dayjs/issues/1239)) ([#1295](https://github.com/iamkun/dayjs/issues/1295)) ([64037e6](https://github.com/iamkun/dayjs/commit/64037e6a8cf303dcfd2b954f309bd9691f87fffc))
+
+
+### Features
+
+* add ES6 Module Support, package.json module point to "esm/index.js" ([#1298](https://github.com/iamkun/dayjs/issues/1298)) ([f63375d](https://github.com/iamkun/dayjs/commit/f63375dea89becbd3bb2bb8ea7289c58c752bfed)), closes [#598](https://github.com/iamkun/dayjs/issues/598) [#313](https://github.com/iamkun/dayjs/issues/313)
+
+## [1.9.8](https://github.com/iamkun/dayjs/compare/v1.9.7...v1.9.8) (2020-12-27)
+
+
+### Bug Fixes
+
+* fix Ukrainian [uk] locale typo ([1605cc0](https://github.com/iamkun/dayjs/commit/1605cc0f6fe0e9c46a92d529bc9cd6e130432337))
+* update Hebrew [he] locale for double units ([#1287](https://github.com/iamkun/dayjs/issues/1287)) ([1c4b0da](https://github.com/iamkun/dayjs/commit/1c4b0da1468522e59dc9ee646d10dd2b31477d99))
+* update zh locale meridiem "noon" ([0e7ff3d](https://github.com/iamkun/dayjs/commit/0e7ff3dd29ca3aed85cb76dfcb8298d326e26542))
+* update zh-cn locale definition of noon  ([#1278](https://github.com/iamkun/dayjs/issues/1278)) ([d5930b9](https://github.com/iamkun/dayjs/commit/d5930b96ff884f4176ca3fcb1bc95e8f1ec75c71))
+
+## [1.9.7](https://github.com/iamkun/dayjs/compare/v1.9.6...v1.9.7) (2020-12-05)
+
+
+### Bug Fixes
+
+* add duration.format to format a Duration ([#1202](https://github.com/iamkun/dayjs/issues/1202)) ([9a859a1](https://github.com/iamkun/dayjs/commit/9a859a147ba223a1eeff0f2bb6f33d97e0ccc6c7))
+* Add function handling for relativeTime.future and relativeTime.past ([#1197](https://github.com/iamkun/dayjs/issues/1197)) ([ef1979c](https://github.com/iamkun/dayjs/commit/ef1979ce85c61fe2d759ef3c37cb6aaf2358094f))
+* avoid install installed plugin ([#1214](https://github.com/iamkun/dayjs/issues/1214)) ([a92eb6c](https://github.com/iamkun/dayjs/commit/a92eb6c4dc1437ec920e69484d52984f5921a8ea))
+* avoid memory leak after installing a plugin too many times ([b8d2e32](https://github.com/iamkun/dayjs/commit/b8d2e32a9eb59661a7ed6200daa070687becaebd))
+* fix diff bug when UTC plugin enabled ([#1201](https://github.com/iamkun/dayjs/issues/1201)) ([9544ed2](https://github.com/iamkun/dayjs/commit/9544ed2a6c466b8308d26b33a388a6737435a1f4)), closes [#1200](https://github.com/iamkun/dayjs/issues/1200)
+* fix startOf/endOf bug in timezone plugin ([#1229](https://github.com/iamkun/dayjs/issues/1229)) ([eb5fbc4](https://github.com/iamkun/dayjs/commit/eb5fbc4c7d1b62a8615d2f263b404a9515d8e15c))
+* fix utc plugin diff edge case ([#1187](https://github.com/iamkun/dayjs/issues/1187)) ([971b3d4](https://github.com/iamkun/dayjs/commit/971b3d40b4c9403165138f1034e2223cd97c3abf))
+* update customParseFormat plugin to parse 2-digit offset ([#1209](https://github.com/iamkun/dayjs/issues/1209)) ([b56936a](https://github.com/iamkun/dayjs/commit/b56936ab77b8f6289a1b77d49307b495c4bf9f91)), closes [#1205](https://github.com/iamkun/dayjs/issues/1205)
+* Update timezone plugin type definition ([#1221](https://github.com/iamkun/dayjs/issues/1221)) ([34cfb92](https://github.com/iamkun/dayjs/commit/34cfb920b9653ad44d4b31fe49e533692a3ce01b))
+
+## [1.9.6](https://github.com/iamkun/dayjs/compare/v1.9.5...v1.9.6) (2020-11-10)
+
+
+### Bug Fixes
+
+* fix customParseFormat plugin parsing date bug ([#1198](https://github.com/iamkun/dayjs/issues/1198)) ([50f05ad](https://github.com/iamkun/dayjs/commit/50f05ad3addf27827c5657ae7519514e40d9faec)), closes [#1194](https://github.com/iamkun/dayjs/issues/1194)
+* Update lv (Latvian) locale relative time ([#1192](https://github.com/iamkun/dayjs/issues/1192)) ([6d6c684](https://github.com/iamkun/dayjs/commit/6d6c6841b13ba4f7e69de92caf132a3592c5253a))
+
+## [1.9.5](https://github.com/iamkun/dayjs/compare/v1.9.4...v1.9.5) (2020-11-05)
+
+
+### Bug Fixes
+
+* customParseFormat plugin supports parsing localizedFormats  ([#1110](https://github.com/iamkun/dayjs/issues/1110)) ([402b603](https://github.com/iamkun/dayjs/commit/402b603aa3ee4199786950bc88b3fdc6b527aa35))
+* fix customParseFormat plugin parse meridiem bug ([#1169](https://github.com/iamkun/dayjs/issues/1169)) ([9e8f8d9](https://github.com/iamkun/dayjs/commit/9e8f8d96c69d557f4d267f42567c25ae9e7ab227)), closes [#1168](https://github.com/iamkun/dayjs/issues/1168)
+* fix devHelper error in umd bundle in browser ([#1165](https://github.com/iamkun/dayjs/issues/1165)) ([d11b5ee](https://github.com/iamkun/dayjs/commit/d11b5ee7dc11af671355f65ccda00f6ba42cc725))
+* fix utc plugin diff bug in DST ([#1171](https://github.com/iamkun/dayjs/issues/1171)) ([f8da3fe](https://github.com/iamkun/dayjs/commit/f8da3fe7e50c84c0502bf5be0b364910922dbd79)), closes [#1097](https://github.com/iamkun/dayjs/issues/1097) [#1021](https://github.com/iamkun/dayjs/issues/1021)
+* isoWeek plugin type ([#1177](https://github.com/iamkun/dayjs/issues/1177)) ([c3d0436](https://github.com/iamkun/dayjs/commit/c3d0436b06f74989e3a2c751a5d170f8072c4aad))
+* update localeData plugin to support meridiem ([#1174](https://github.com/iamkun/dayjs/issues/1174)) ([fdb09e4](https://github.com/iamkun/dayjs/commit/fdb09e4074cc7e8f6196846f18d3566c1f9e8fcd)), closes [#1172](https://github.com/iamkun/dayjs/issues/1172)
+* update timezone plugin parse Date instance / timestamp logic & remove useless test ([#1183](https://github.com/iamkun/dayjs/issues/1183)) ([a7f858b](https://github.com/iamkun/dayjs/commit/a7f858bb70ad81f718ba35c479e84b54eace48b2))
+
+## [1.9.4](https://github.com/iamkun/dayjs/compare/v1.9.3...v1.9.4) (2020-10-23)
+
+
+### Bug Fixes
+
+* Add descriptions to types ([#1148](https://github.com/iamkun/dayjs/issues/1148)) ([9a407a1](https://github.com/iamkun/dayjs/commit/9a407a140b089345a387d1aceab4d0d1635229c7))
+* add devHelper plugin ([#1163](https://github.com/iamkun/dayjs/issues/1163)) ([de49dc8](https://github.com/iamkun/dayjs/commit/de49dc80c83b85de4170571b64412bd60ada221b))
+* Fix Hungarian (hu) locale ([#1112](https://github.com/iamkun/dayjs/issues/1112)) ([ab13754](https://github.com/iamkun/dayjs/commit/ab13754f43c5033dacaa0eb2042dc4ab1a7a2754))
+* fix minMax plugin parsing empty array bug ([#1062](https://github.com/iamkun/dayjs/issues/1062)) ([368108b](https://github.com/iamkun/dayjs/commit/368108bc6d5cb1542f711b8eba722bd4dfaab0cd))
+* update adding/subtracting Duration from Dayjs object ([#1156](https://github.com/iamkun/dayjs/issues/1156)) ([f861aca](https://github.com/iamkun/dayjs/commit/f861acac3e83e28d3a4a96312c71119fd6b544fc))
+* update en-NZ locale to use proper ordinal formatting function ([#1143](https://github.com/iamkun/dayjs/issues/1143)) ([fcdbc58](https://github.com/iamkun/dayjs/commit/fcdbc5880710456a29b2bacf250542230bf48b99))
+* update localeData plugin type ([#1116](https://github.com/iamkun/dayjs/issues/1116)) ([ee5a4ec](https://github.com/iamkun/dayjs/commit/ee5a4ec41edddfb57d103c35182dc635c9264a10))
+* update timezone plugin to support custom parse format ([#1160](https://github.com/iamkun/dayjs/issues/1160)) ([48cbf31](https://github.com/iamkun/dayjs/commit/48cbf3118ba5427de428777c2e025896db654f2e)), closes [#1159](https://github.com/iamkun/dayjs/issues/1159)
+* update timezone plugin to support keepLocalTime ([#1161](https://github.com/iamkun/dayjs/issues/1161)) ([1d429e5](https://github.com/iamkun/dayjs/commit/1d429e5fe4467ebddcf81b43cf6f36e5e3be944c)), closes [#1149](https://github.com/iamkun/dayjs/issues/1149)
+
+## [1.9.3](https://github.com/iamkun/dayjs/compare/v1.9.2...v1.9.3) (2020-10-13)
+
+
+### Bug Fixes
+
+* fix localizedFormat export error ([#1133](https://github.com/iamkun/dayjs/issues/1133)) ([deecd6a](https://github.com/iamkun/dayjs/commit/deecd6ab8a2f4173ee7046f6b568b41fd2677531)), closes [#1132](https://github.com/iamkun/dayjs/issues/1132)
+
+## [1.9.2](https://github.com/iamkun/dayjs/compare/v1.9.1...v1.9.2) (2020-10-13)
+
+
+### Bug Fixes
+
+* add arraySupport plugin ([#1129](https://github.com/iamkun/dayjs/issues/1129)) ([be505c2](https://github.com/iamkun/dayjs/commit/be505c2c540261027342cecc55d8919a3d18d893))
+* export type of duration plugin ([#1094](https://github.com/iamkun/dayjs/issues/1094)) ([2c92e71](https://github.com/iamkun/dayjs/commit/2c92e71bf55d09601120cdf433da7a19cc8abff6))
+* Fix LocaleData plugin longDateFormat lowercase error ([#1101](https://github.com/iamkun/dayjs/issues/1101)) ([7937ccd](https://github.com/iamkun/dayjs/commit/7937ccdeac47d094a60e65ebb62a6020b81c46f4))
+* Fix objectSupport plugin bug in UTC ([#1107](https://github.com/iamkun/dayjs/issues/1107)) ([fe90bb6](https://github.com/iamkun/dayjs/commit/fe90bb6944f2ff1969ca975954d303b449dfa95b)), closes [#1105](https://github.com/iamkun/dayjs/issues/1105)
+* fix Serbian locale grammar (sr, sr-cyrl) ([#1108](https://github.com/iamkun/dayjs/issues/1108)) ([cc87eff](https://github.com/iamkun/dayjs/commit/cc87eff8b75b0d86ce0956516319d402bccae6c0))
+* Fix typo for "monday" in arabic ([#1067](https://github.com/iamkun/dayjs/issues/1067)) ([2e1e426](https://github.com/iamkun/dayjs/commit/2e1e42650124f30282dc4d710798d576b928f1c7))
+* support dayjs.add(Duration), dayjs.subtract(Duration) ([#1099](https://github.com/iamkun/dayjs/issues/1099)) ([b1a0294](https://github.com/iamkun/dayjs/commit/b1a02942c5238203aaa04ce9a074c73742324ab7))
+* update Breton [br] locale relativeTime config ([#1103](https://github.com/iamkun/dayjs/issues/1103)) ([b038bfd](https://github.com/iamkun/dayjs/commit/b038bfdb128889d677c95534d2be29cc30c9e72f))
+* update Catalan [ca] locale ordinal ([73da380](https://github.com/iamkun/dayjs/commit/73da38024c8b550bdcfbe3ff7e578e742c7aecf2))
+* update German [de] locale relativeTime config ([#1109](https://github.com/iamkun/dayjs/issues/1109)) ([f6e771b](https://github.com/iamkun/dayjs/commit/f6e771b70f93d19ebb12e6b794aa4628a1796248))
+* update localeData plugin to add longDateFormat to global localeData ([#1106](https://github.com/iamkun/dayjs/issues/1106)) ([16937d1](https://github.com/iamkun/dayjs/commit/16937d16e053b8c1d4a607622fa2fdbfd9809832))
+* Update objectSupport plugin to return current date time while parsing empty object ([f56783e](https://github.com/iamkun/dayjs/commit/f56783e14d8cf50916b015e7188b23bb6fbca839))
+
+## [1.9.1](https://github.com/iamkun/dayjs/compare/v1.9.0...v1.9.1) (2020-09-28)
+
+
+### Bug Fixes
+
+* Fix objectSupport plugin to get the correct result (zero-based month) ([#1089](https://github.com/iamkun/dayjs/issues/1089)) ([f95ac15](https://github.com/iamkun/dayjs/commit/f95ac15a4577ae5a3d1ce353872a2cd9fc454bc2))
+
+# [1.9.0](https://github.com/iamkun/dayjs/compare/v1.8.36...v1.9.0) (2020-09-28)
+
+
+### Bug Fixes
+
+* Add `setDefault` typing to timezone.d.ts ([#1057](https://github.com/iamkun/dayjs/issues/1057)) ([c0f0886](https://github.com/iamkun/dayjs/commit/c0f088620f17260e6e3ebce7697d561b5623f5f3))
+* fix DST bug in utc plugin ([#1053](https://github.com/iamkun/dayjs/issues/1053)) ([3d73543](https://github.com/iamkun/dayjs/commit/3d7354361f042ced1176d91f9ae9edffe6173425))
+* Fix optional type for timezone plugin ([#1081](https://github.com/iamkun/dayjs/issues/1081)) ([a6ebcf2](https://github.com/iamkun/dayjs/commit/a6ebcf283a83273562dce5663155e3b3a12ea9a5)), closes [#1079](https://github.com/iamkun/dayjs/issues/1079)
+* Fix timezone plugin conversion bug ([#1073](https://github.com/iamkun/dayjs/issues/1073)) ([16816a3](https://github.com/iamkun/dayjs/commit/16816a31ff43220aca9d1d179df6b729182abb55))
+* update duration plugin type file ([#1065](https://github.com/iamkun/dayjs/issues/1065)) ([94af9af](https://github.com/iamkun/dayjs/commit/94af9af27c5bc182cbb24f1845e561dd1d82d776))
+* update timezone plugin to support getting offset name e.g. EST ([#1069](https://github.com/iamkun/dayjs/issues/1069)) ([cbb755e](https://github.com/iamkun/dayjs/commit/cbb755e5c68d49c5678291f3ce832b32831a056e))
+* update utc plugin to support keepLocalTime `.utc(true)` ([#1080](https://github.com/iamkun/dayjs/issues/1080)) ([5ce4e0d](https://github.com/iamkun/dayjs/commit/5ce4e0d2f552f3645262537ff7afdc946f5a7e72))
+
+
+### Features
+
+* Correct casing for en-sg locale name ([#1048](https://github.com/iamkun/dayjs/issues/1048)) ([2edaddc](https://github.com/iamkun/dayjs/commit/2edaddc22a7eb914f915531f389766217acd7034))
+
+## [1.8.36](https://github.com/iamkun/dayjs/compare/v1.8.35...v1.8.36) (2020-09-17)
+
+
+### Bug Fixes
+
+* Add Amharic (am) locale ([#1046](https://github.com/iamkun/dayjs/issues/1046)) ([cdc49a1](https://github.com/iamkun/dayjs/commit/cdc49a1911c74b7ea96ed222f42796d53715cfed))
+* Export Duration type in duration plugin ([#1043](https://github.com/iamkun/dayjs/issues/1043)) ([0f20c3a](https://github.com/iamkun/dayjs/commit/0f20c3ac75d9ac1026a15a7bb343d3a150d9b30f))
+* Fix duration plugin parsing milliseconds bug ([#1042](https://github.com/iamkun/dayjs/issues/1042)) ([fe2301b](https://github.com/iamkun/dayjs/commit/fe2301b22318886aaa89ed1620e0a118e98c2b8a))
+* Timezone plugin set default timezone ([#1033](https://github.com/iamkun/dayjs/issues/1033)) ([0c2050a](https://github.com/iamkun/dayjs/commit/0c2050a152da708b01edd6150a5013f642b14576))
+* Timezone plugin should have the same behavior in latest ICU version ([#1032](https://github.com/iamkun/dayjs/issues/1032)) ([de31592](https://github.com/iamkun/dayjs/commit/de315921575cc50c38464b27d0338e30a54d8e2a))
+* Update Finnish (fi) locale ([#963](https://github.com/iamkun/dayjs/issues/963)) ([cf8b6a0](https://github.com/iamkun/dayjs/commit/cf8b6a096f24b54cbdb95675ac386d8ac85ea616))
+* Update Polish (pl) , Hungarian (hr) and Lithuanian (lt) localization ([#1045](https://github.com/iamkun/dayjs/issues/1045)) ([638fd39](https://github.com/iamkun/dayjs/commit/638fd394fc24f4188390faf387da6b156e7c6320))
+
+## [1.8.35](https://github.com/iamkun/dayjs/compare/v1.8.34...v1.8.35) (2020-09-02)
+
+
+### Bug Fixes
+
+* Fix BadMutable plugin bug in .diff ([#1023](https://github.com/iamkun/dayjs/issues/1023)) ([40ab6d9](https://github.com/iamkun/dayjs/commit/40ab6d9a53e8047cfca63c611c25dd045372d021))
+* fix LocaleData plugin to support instance.weekdays() API ([#1019](https://github.com/iamkun/dayjs/issues/1019)) ([a09d259](https://github.com/iamkun/dayjs/commit/a09d259a407b81d1cb6bb5623fad551c775d8674)), closes [#1017](https://github.com/iamkun/dayjs/issues/1017)
+* Update Dutch (nl) locale to set correct yearStart ([1533a2c](https://github.com/iamkun/dayjs/commit/1533a2cc1475270032da2d87b19fc3d62327e6e3))
+
+## [1.8.34](https://github.com/iamkun/dayjs/compare/v1.8.33...v1.8.34) (2020-08-20)
+
+
+### Bug Fixes
+
+* Fix Timezone plugin to preserve milliseconds while changing timezone ([#1003](https://github.com/iamkun/dayjs/issues/1003)) ([5f446ed](https://github.com/iamkun/dayjs/commit/5f446eda770fa97e895c81a8195b3ba5d082cef0)), closes [#1002](https://github.com/iamkun/dayjs/issues/1002)
+* support parsing unlimited decimals of millisecond ([#1010](https://github.com/iamkun/dayjs/issues/1010)) ([d1bdd36](https://github.com/iamkun/dayjs/commit/d1bdd36a56e3d1786523a180e3fc18068f609135)), closes [#544](https://github.com/iamkun/dayjs/issues/544)
+* update Duration plugin to support global locale ([#1008](https://github.com/iamkun/dayjs/issues/1008)) ([1c49c83](https://github.com/iamkun/dayjs/commit/1c49c83e79811eede13db6372b5d65db598aee77)), closes [#1007](https://github.com/iamkun/dayjs/issues/1007)
+
+## [1.8.33](https://github.com/iamkun/dayjs/compare/v1.8.32...v1.8.33) (2020-08-10)
+
+
+### Bug Fixes
+
+* Add PluralGetSet plugin for plural getters/setters ([#996](https://github.com/iamkun/dayjs/issues/996)) ([f76e3ce](https://github.com/iamkun/dayjs/commit/f76e3ce2fbe5d3e9ed9121086baf55eb0cc4d355))
+* Add typescript type defs in esm build ([#985](https://github.com/iamkun/dayjs/issues/985)) ([50e3b3c](https://github.com/iamkun/dayjs/commit/50e3b3c6719cb0b4ec6eff394dacd63d5db8f253))
+* Fix isoWeek Plugin cal bug in UTC mode ([#993](https://github.com/iamkun/dayjs/issues/993)) ([f2e5f32](https://github.com/iamkun/dayjs/commit/f2e5f327aaf12b4572296ec6e107ecc05fcf76e7))
+* Fix Timezone plugin parsing js date, Day.js object, timestamp bug && update type file ([#994](https://github.com/iamkun/dayjs/issues/994)) ([22f3d49](https://github.com/iamkun/dayjs/commit/22f3d49405da98db6da56d1673eebcd01b57554b)), closes [#992](https://github.com/iamkun/dayjs/issues/992) [#989](https://github.com/iamkun/dayjs/issues/989)
+* Fix Timezone plugin UTCOffset rounding bug ([#987](https://github.com/iamkun/dayjs/issues/987)) ([b07182b](https://github.com/iamkun/dayjs/commit/b07182bbdf5aef7f6bf1e88fcd38432e2b8ee465)), closes [#986](https://github.com/iamkun/dayjs/issues/986)
+* Fix UTC plugin bug while comparing an utc instance to a local one ([#995](https://github.com/iamkun/dayjs/issues/995)) ([747c0fb](https://github.com/iamkun/dayjs/commit/747c0fb4eba6353755b5dad3417fd8d5a408c378))
+* Update pt-br locale weekStart 0 ([#984](https://github.com/iamkun/dayjs/issues/984)) ([0f881c1](https://github.com/iamkun/dayjs/commit/0f881c18efb02b9d0ba7f76cba92bb504226fa95))
+
+## [1.8.32](https://github.com/iamkun/dayjs/compare/v1.8.31...v1.8.32) (2020-08-04)
+
+
+### Bug Fixes
+
+* Add Experimental Timezone Plugin ([#974](https://github.com/iamkun/dayjs/issues/974)) ([e69caba](https://github.com/iamkun/dayjs/commit/e69caba1b0957241a855aa0ae38db899fa2c3795))
+* fix parse date string error e.g. '2020/9/30' ([#980](https://github.com/iamkun/dayjs/issues/980)) ([231790d](https://github.com/iamkun/dayjs/commit/231790da62af0494732960c2c50d86ae9bf63ec6)), closes [#979](https://github.com/iamkun/dayjs/issues/979)
+* update monthDiff function to get more accurate results ([19e8a7f](https://github.com/iamkun/dayjs/commit/19e8a7f2f7582b717f49d446822e39603694433c))
+* Update UTC plugin to support keepLocalTime ([#973](https://github.com/iamkun/dayjs/issues/973)) ([9f488e5](https://github.com/iamkun/dayjs/commit/9f488e5aca92f0b4c2951459436829d79f86d8d7))
+
+## [1.8.31](https://github.com/iamkun/dayjs/compare/v1.8.30...v1.8.31) (2020-07-29)
+
+
+### Bug Fixes
+
+* Rollback LocalePresetType to string ([#968](https://github.com/iamkun/dayjs/issues/968)) ([b342bd3](https://github.com/iamkun/dayjs/commit/b342bd3d84987d6c7587a0c4590d614fb0e670d7))
+* Update Regex to parse 'YYYY' correctly ([#969](https://github.com/iamkun/dayjs/issues/969)) ([70c1239](https://github.com/iamkun/dayjs/commit/70c123990dcc6bd479fa2b5d7f9985127872a826))
+
+## [1.8.30](https://github.com/iamkun/dayjs/compare/v1.8.29...v1.8.30) (2020-07-22)
+
+
+### Bug Fixes
+
+* Add Haitian Creole (ht) and Spanish Puerto Rico (es-pr) locale configs ([#958](https://github.com/iamkun/dayjs/issues/958)) ([b2642e2](https://github.com/iamkun/dayjs/commit/b2642e2d1f87734a34808c66e5176cb18bc0414d))
+* Fix UTC plugin wrong hour bug while adding month or year  ([#957](https://github.com/iamkun/dayjs/issues/957)) ([28ae070](https://github.com/iamkun/dayjs/commit/28ae070024ff26685c88ce4cc8747307e86923c9))
+* Update French (fr) locale to set correct yearStart ([14ab808](https://github.com/iamkun/dayjs/commit/14ab808a7b7e226f2eb2cbe894916a18ed5d967d)), closes [#956](https://github.com/iamkun/dayjs/issues/956)
+
+## [1.8.29](https://github.com/iamkun/dayjs/compare/v1.8.28...v1.8.29) (2020-07-02)
+
+
+### Bug Fixes
+
+* Duration plugin supports parse ISO string with week (W) ([#950](https://github.com/iamkun/dayjs/issues/950)) ([f0fc12a](https://github.com/iamkun/dayjs/commit/f0fc12adadcab53fb0577ad8f5e2f1cf784fd8f5))
+* LocaleData plugin supports locale order ([#938](https://github.com/iamkun/dayjs/issues/938)) ([62f429d](https://github.com/iamkun/dayjs/commit/62f429db73a0a069b1267231dea172b85f4b90e3)), closes [#936](https://github.com/iamkun/dayjs/issues/936)
+* Update type definition to support array format ([#945](https://github.com/iamkun/dayjs/issues/945)) ([81d4740](https://github.com/iamkun/dayjs/commit/81d4740511d47e34f891b21afeb0449ef8a28688)), closes [#944](https://github.com/iamkun/dayjs/issues/944)
+* Update type definition to support strict mode ([#951](https://github.com/iamkun/dayjs/issues/951)) ([8d54f3f](https://github.com/iamkun/dayjs/commit/8d54f3f7d4d161e72c767fa09699e70a2b3d681c))
+
+## [1.8.28](https://github.com/iamkun/dayjs/compare/v1.8.27...v1.8.28) (2020-05-28)
+
+
+### Bug Fixes
+
+* Fix CustomParseFormat plugin month index error ([#918](https://github.com/iamkun/dayjs/issues/918)) ([fa2ec7f](https://github.com/iamkun/dayjs/commit/fa2ec7fcb980dcd2c7498dafe2f9ca2e52d735cf)), closes [#915](https://github.com/iamkun/dayjs/issues/915)
+* Update Ukrainian (uk) locale monthFormat and monthStandalone ([#899](https://github.com/iamkun/dayjs/issues/899)) ([a08756e](https://github.com/iamkun/dayjs/commit/a08756e80bd1d7126fca28c5ad9e382613fc86c4))
+
+## [1.8.27](https://github.com/iamkun/dayjs/compare/v1.8.26...v1.8.27) (2020-05-14)
+
+
+### Bug Fixes
+
+* Add Kinyarwanda (rw) locale ([#903](https://github.com/iamkun/dayjs/issues/903)) ([f355235](https://github.com/iamkun/dayjs/commit/f355235a836540d77880959fb1b614c87e9f7b3e))
+* Add plugin objectSupport ([#887](https://github.com/iamkun/dayjs/issues/887)) ([52dfb13](https://github.com/iamkun/dayjs/commit/52dfb13a6b84f0a753cc5761192b92416f440961))
+* Add Turkmen (tk) locale ([#893](https://github.com/iamkun/dayjs/issues/893)) ([a9ca8dc](https://github.com/iamkun/dayjs/commit/a9ca8dcbbd0964c5b9abb4e8a2d620c983cf091a))
+* Fix CustomParseFormat plugin set locale error ([#896](https://github.com/iamkun/dayjs/issues/896)) ([8035c8a](https://github.com/iamkun/dayjs/commit/8035c8a760549b631252252718db3cdc4ab2f68f))
+* Fix locale month function bug ([#908](https://github.com/iamkun/dayjs/issues/908)) ([bf347c3](https://github.com/iamkun/dayjs/commit/bf347c36e401f50727fb5afcc537497b54b90d6b))
+* Update CustomParseFormat plugin to support Array formats ([#906](https://github.com/iamkun/dayjs/issues/906)) ([97856c6](https://github.com/iamkun/dayjs/commit/97856c603ef5fbbeb1cf8a42387479e56a77dbe8))
+
+## [1.8.26](https://github.com/iamkun/dayjs/compare/v1.8.25...v1.8.26) (2020-04-30)
+
+
+### Bug Fixes
+
+* Fix Duration plugin `.toISOString` format bug ([#889](https://github.com/iamkun/dayjs/issues/889)) ([058d624](https://github.com/iamkun/dayjs/commit/058d624808fd2be024ae846bcb2e03885f39b556)), closes [#888](https://github.com/iamkun/dayjs/issues/888)
+* Fix WeekOfYear plugin bug while using BadMutable plugin ([#884](https://github.com/iamkun/dayjs/issues/884)) ([2977438](https://github.com/iamkun/dayjs/commit/2977438458542573a4500e21f7ba5d1f8442960e))
+* Update CustomParseFormat plugin strict mode ([#882](https://github.com/iamkun/dayjs/issues/882)) ([db642ac](https://github.com/iamkun/dayjs/commit/db642ac73e52e00d8c41546b2935c9e691cf66e0))
+* Update RelativeTime plugin default config ([#883](https://github.com/iamkun/dayjs/issues/883)) ([0606f42](https://github.com/iamkun/dayjs/commit/0606f425aef8ccbfc3da3e43cba368130603b0cc))
+
+## [1.8.25](https://github.com/iamkun/dayjs/compare/v1.8.24...v1.8.25) (2020-04-21)
+
+
+### Bug Fixes
+
+* Fix CustomParseFormat plugin of parsing only YYYY / YYYY-MM bug ([#873](https://github.com/iamkun/dayjs/issues/873)) ([3cea04d](https://github.com/iamkun/dayjs/commit/3cea04d33d54d44bbdd3d026b5c7f67ebf176116)), closes [#849](https://github.com/iamkun/dayjs/issues/849)
+* Fix Duration plugin get seconds ([#867](https://github.com/iamkun/dayjs/issues/867)) ([62b092d](https://github.com/iamkun/dayjs/commit/62b092d9f9a3db5506ef01f798bdf211f163f53f))
+* Fix type definition of locale ([9790b85](https://github.com/iamkun/dayjs/commit/9790b853e6113243a7f4a81dd12c6509e406a102))
+* Fix UTC plugin startOf, endOf bug ([#872](https://github.com/iamkun/dayjs/issues/872)) ([4141084](https://github.com/iamkun/dayjs/commit/4141084ba96d35cadcda3f1e661bf1d0f6c8e4de)), closes [#809](https://github.com/iamkun/dayjs/issues/809) [#808](https://github.com/iamkun/dayjs/issues/808)
+
+## [1.8.24](https://github.com/iamkun/dayjs/compare/v1.8.23...v1.8.24) (2020-04-10)
+
+
+### Bug Fixes
+
+* Add config option to RelativeTime plugin ([#851](https://github.com/iamkun/dayjs/issues/851)) ([bd24034](https://github.com/iamkun/dayjs/commit/bd24034b95bfc656024b75ef3f3c986708845fed))
+* add Duration plugin ([#858](https://github.com/iamkun/dayjs/issues/858)) ([d568273](https://github.com/iamkun/dayjs/commit/d568273223199ca0497f238e2cc3a8d3dcf32d0f))
+* Add en-in, en-tt locales ([#855](https://github.com/iamkun/dayjs/issues/855)) ([c39fb96](https://github.com/iamkun/dayjs/commit/c39fb96e2a9102c14b004c14a6c073af9d266f2f))
+* add isToday, isTomorrow, isYesterday plugins ([#857](https://github.com/iamkun/dayjs/issues/857)) ([fc08ab6](https://github.com/iamkun/dayjs/commit/fc08ab68f8a28269802deeab9d6b0473b92cdc51))
+* Add option callback to Calendar plugin ([#839](https://github.com/iamkun/dayjs/issues/839)) ([b25be90](https://github.com/iamkun/dayjs/commit/b25be9094325295310c8fc5e617fb058be8a5f68))
+* Fix monthsShort for locale fr ([#862](https://github.com/iamkun/dayjs/issues/862)) ([d2de9a0](https://github.com/iamkun/dayjs/commit/d2de9a0b44b830038ed0094f79bfd40726311f2a))
+* Update Breton locale (br) meridiem config ([#856](https://github.com/iamkun/dayjs/issues/856)) ([a2a6672](https://github.com/iamkun/dayjs/commit/a2a66720abb788a8f1cffbfd0929b35579f29c72))
+* Update Ukrainian (uk) locale relative time ([#842](https://github.com/iamkun/dayjs/issues/842)) ([578bc1a](https://github.com/iamkun/dayjs/commit/578bc1a23c6e737783bbac3da12c0ed5d1edcf82))
+
+## [1.8.23](https://github.com/iamkun/dayjs/compare/v1.8.22...v1.8.23) (2020-03-16)
+
+
+### Bug Fixes
+
+* Add Chinese (zh) locale ([f9b8945](https://github.com/iamkun/dayjs/commit/f9b89453166d8b53d33b1d7eefd9942022552e6e))
+* Fix IsoWeek plugin typescript definition ([#828](https://github.com/iamkun/dayjs/issues/828)) ([30aab0c](https://github.com/iamkun/dayjs/commit/30aab0c7bce85dfac0ae208a891def30f88b5cb4))
+* Update Arabic (ar) locale relative time ([#836](https://github.com/iamkun/dayjs/issues/836)) ([14044c6](https://github.com/iamkun/dayjs/commit/14044c6fda1229e3f0e5473d3f886bd79589b15f))
+* Update Slovak (sk) locale,  Czech (cs) locale ([#833](https://github.com/iamkun/dayjs/issues/833)) ([f0d451f](https://github.com/iamkun/dayjs/commit/f0d451f795e9ebf752cd854d51b25b11de2343a3))
+* Update Thai (th) locale relativeTime ([#826](https://github.com/iamkun/dayjs/issues/826)) ([63b7c03](https://github.com/iamkun/dayjs/commit/63b7c03a6dbb0507d60776e8bad6cccde3828b88)), closes [#816](https://github.com/iamkun/dayjs/issues/816)
+
+## [1.8.22](https://github.com/iamkun/dayjs/compare/v1.8.21...v1.8.22) (2020-03-08)
+
+
+### Bug Fixes
+
+* Add IsoWeek plugin ([#811](https://github.com/iamkun/dayjs/issues/811)) ([28a2207](https://github.com/iamkun/dayjs/commit/28a2207ef9849afbac15dd29267b2e7a09cd3c16))
+* Fix unsupported locale fallback to previous one ([#819](https://github.com/iamkun/dayjs/issues/819)) ([4868715](https://github.com/iamkun/dayjs/commit/48687152cf5bee6a4c1b8ceea4bda8b9bab9be10))
+
+## [1.8.21](https://github.com/iamkun/dayjs/compare/v1.8.20...v1.8.21) (2020-02-26)
+
+
+### Bug Fixes
+
+* Set + Get accept 'D' as the short version of 'date' ([#795](https://github.com/iamkun/dayjs/issues/795)) ([523c038](https://github.com/iamkun/dayjs/commit/523c03880fa8bbad83214494ad02cd606cdb8b30))
+* Update DayOfYear plugin type ([#799](https://github.com/iamkun/dayjs/issues/799)) ([5809652](https://github.com/iamkun/dayjs/commit/5809652e40245b7759827d9bf317abdcfa75a330))
+* Update fi (Finnish) locale relativeTime ([#797](https://github.com/iamkun/dayjs/issues/797)) ([4a470fb](https://github.com/iamkun/dayjs/commit/4a470fbd6fef9e051727d0f26d53cc050b85935d))
+
+## [1.8.20](https://github.com/iamkun/dayjs/compare/v1.8.19...v1.8.20) (2020-02-04)
+
+
+### Bug Fixes
+
+* Add Bislama Locale (bi) ([#780](https://github.com/iamkun/dayjs/issues/780)) ([9ac6ab4](https://github.com/iamkun/dayjs/commit/9ac6ab481bc883dd4ecc02caab12c8b2fc218a42))
+* Fix weekOfYear plugin to support yearStart locale for better week number result ([#769](https://github.com/iamkun/dayjs/issues/769)) ([f00db36](https://github.com/iamkun/dayjs/commit/f00db36e70bc7beaca1abadeb30a9b1fbb3261ee))
+* Update et (Estonian) locale relativeTime ([#790](https://github.com/iamkun/dayjs/issues/790)) ([d8e0f45](https://github.com/iamkun/dayjs/commit/d8e0f45f6cd2d5e5704b9797929227454c92d1a5))
+* Update LocaleData plugin to support dayjs.localeData().weekdays() API ([287fed6](https://github.com/iamkun/dayjs/commit/287fed6db9eb4fd979b4861aca4dacbd32422533)), closes [#779](https://github.com/iamkun/dayjs/issues/779)
+* Update LocaleData plugin to support dayjs.months dayjs.weekdays API ([144c2ae](https://github.com/iamkun/dayjs/commit/144c2ae6e15fbf89e3acd7c8cb9e237c5f6e1348)), closes [#779](https://github.com/iamkun/dayjs/issues/779)
+* Update pl locale fusional config ([d372475](https://github.com/iamkun/dayjs/commit/d3724758bb27d5b17587b995ba14e7e80dcd1151))
+
+## [1.8.19](https://github.com/iamkun/dayjs/compare/v1.8.18...v1.8.19) (2020-01-06)
+
+
+### Bug Fixes
+
+* Add UpdateLocale plugin to update a locale's properties ([#766](https://github.com/iamkun/dayjs/issues/766)) ([82ce2ba](https://github.com/iamkun/dayjs/commit/82ce2ba8d7e402e40f6d005d400eb5356a0b0633))
+* Fix CustomParseFormat Plugin 'YYYY-MM' use first day of the month ([ba709ec](https://github.com/iamkun/dayjs/commit/ba709eca86a71ae648bc68bf67d9abdc229198d4)), closes [#761](https://github.com/iamkun/dayjs/issues/761)
+* Fix CustomParseFormat Plugin to set correct locale ([66ce23f](https://github.com/iamkun/dayjs/commit/66ce23f2e18c5506e8f1a7ef20d3483a4df80087))
+* Fix WeekOfYear Plugin wrong calender week number bug ([79b86db](https://github.com/iamkun/dayjs/commit/79b86dbbf3cfd3f1e2165b3d479a7061ad1b6925)), closes [#760](https://github.com/iamkun/dayjs/issues/760)
+* Update RelativeTime plugin to support function to make additional processing ([#767](https://github.com/iamkun/dayjs/issues/767)) ([4bd9250](https://github.com/iamkun/dayjs/commit/4bd9250fbe7131e2fddfb5fa1b3350e8c2262ca9))
+* Update ru, uk, cs locale to support relativeTime with plural ([3f080f7](https://github.com/iamkun/dayjs/commit/3f080f7d6bfdc4018cbb7c4d0112ff1ead4ef6b8))
+
+## [1.8.18](https://github.com/iamkun/dayjs/compare/v1.8.17...v1.8.18) (2019-12-18)
+
+
+### Bug Fixes
+
+* Add missing locale type definition ([#716](https://github.com/iamkun/dayjs/issues/716)) ([cde5d0b](https://github.com/iamkun/dayjs/commit/cde5d0b91be7b2f5f3098de4aa0b9a4f0f28ea5c))
+* Fix .locale() handel unsupported locale ([78ec173](https://github.com/iamkun/dayjs/commit/78ec173fcecc1299516ab7b44f4554d431b4b2fd))
+* Update Italian locale (it) ([#727](https://github.com/iamkun/dayjs/issues/727)) ([5b53e98](https://github.com/iamkun/dayjs/commit/5b53e98c0a3ba0eb9573a9c77caeb907439be9e7))
+* Update locale (fa) ([#733](https://github.com/iamkun/dayjs/issues/733)) ([9ad2e47](https://github.com/iamkun/dayjs/commit/9ad2e47e0569b23991bb0d5578f49c792c12df08))
+* Update locale (zh-cn) ([#706](https://github.com/iamkun/dayjs/issues/706)) ([e31e544](https://github.com/iamkun/dayjs/commit/e31e54414fb90e1f54da13a117748ba37f52645d))
+* Update locale (zh-cn) meridiem ([#735](https://github.com/iamkun/dayjs/issues/735)) ([15d1b81](https://github.com/iamkun/dayjs/commit/15d1b813e7faf5a1f9d1ea6fc673fd27ac49d8b1))
+* Update LocaleData plugin to support dayjs().longDateFormat() ([#734](https://github.com/iamkun/dayjs/issues/734)) ([aa0f210](https://github.com/iamkun/dayjs/commit/aa0f210a1e3c4f6aba61c3b96f9eb445b43a33f0)), closes [#680](https://github.com/iamkun/dayjs/issues/680)
+* Update Mongolian (mn) locale relativeTime ([#753](https://github.com/iamkun/dayjs/issues/753)) ([6d51435](https://github.com/iamkun/dayjs/commit/6d51435092c0c94d8e50256d3f0f058cdd15febe))
+* Update Swedish locale (sv) fix ordinal error ([#745](https://github.com/iamkun/dayjs/issues/745)) ([49670d5](https://github.com/iamkun/dayjs/commit/49670d5ae31e4e21636cc5a8bfe35fef0f6d9e4a)), closes [#743](https://github.com/iamkun/dayjs/issues/743)
+
+## [1.8.17](https://github.com/iamkun/dayjs/compare/v1.8.16...v1.8.17) (2019-11-06)
+
+
+### Bug Fixes
+
+* Fix set utcOffset in utc mode ([d148115](https://github.com/iamkun/dayjs/commit/d148115dad8f1a5afc0a64e9b8163dfeba4616b6))
+* Update advancedFormat plugin to support w ww wo week tokens … ([#678](https://github.com/iamkun/dayjs/issues/678)) ([26cfa63](https://github.com/iamkun/dayjs/commit/26cfa63a524b803f7966dac5464f9cbf8f63387e)), closes [#676](https://github.com/iamkun/dayjs/issues/676)
+* Update ka locale weekdays ([f8ca3d4](https://github.com/iamkun/dayjs/commit/f8ca3d4ba1d3cbe41613d3909c0627935a51a0c4))
+* Update nb locale ([#679](https://github.com/iamkun/dayjs/issues/679)) ([1063b0e](https://github.com/iamkun/dayjs/commit/1063b0e1b5c19a1354d233cc0f21438e7073233a))
+* Update Polish locale (pl)([#713](https://github.com/iamkun/dayjs/issues/713)) ([30d2f02](https://github.com/iamkun/dayjs/commit/30d2f026b47188833a4f44fee4bab52467d4a718))
+* Update Ukrainian locale (uk) ([#710](https://github.com/iamkun/dayjs/issues/710)) ([360161c](https://github.com/iamkun/dayjs/commit/360161cac75f597fdd51d9d1ff138601282a1b4b))
+* UTC plugin set utcOffset value ([#668](https://github.com/iamkun/dayjs/issues/668)) ([8877883](https://github.com/iamkun/dayjs/commit/88778838e71dd309e79cd1a8094d5bea36ca3390))
+
+## [1.8.16](https://github.com/iamkun/dayjs/compare/v1.8.15...v1.8.16) (2019-08-27)
+
+
+### Bug Fixes
+
+* Fix relativeTime Plugin .FromNow() result error in UTC mode ([a385d5c](https://github.com/iamkun/dayjs/commit/a385d5c))
+* Handle locale in WeekOfYear plugin ([#658](https://github.com/iamkun/dayjs/issues/658)) ([0e45b0a](https://github.com/iamkun/dayjs/commit/0e45b0a))
+* LocaleData plugin returns all months and weekdays data when pas no argument ([#645](https://github.com/iamkun/dayjs/issues/645)) ([95e70b4](https://github.com/iamkun/dayjs/commit/95e70b4))
+* Return null in toJSON if not valid ([#633](https://github.com/iamkun/dayjs/issues/633)) ([19affc8](https://github.com/iamkun/dayjs/commit/19affc8))
+* Update Danish (da) locale ([#626](https://github.com/iamkun/dayjs/issues/626)) ([ac2ec77](https://github.com/iamkun/dayjs/commit/ac2ec77))
+* Update Korean locale meridiem ([#642](https://github.com/iamkun/dayjs/issues/642)) ([b457146](https://github.com/iamkun/dayjs/commit/b457146))
+* update Occitan locale Catalan locale ([#630](https://github.com/iamkun/dayjs/issues/630)) ([fef135e](https://github.com/iamkun/dayjs/commit/fef135e))
+* update pt-br locale ([#628](https://github.com/iamkun/dayjs/issues/628)) ([ccf596d](https://github.com/iamkun/dayjs/commit/ccf596d))
+* Update weekdaysShort to some locale files ([#643](https://github.com/iamkun/dayjs/issues/643)) ([cc1f15f](https://github.com/iamkun/dayjs/commit/cc1f15f))
+
+## [1.8.15](https://github.com/iamkun/dayjs/compare/v1.8.14...v1.8.15) (2019-07-08)
+
+
+### Bug Fixes
+
+* Fix dayjs.locale() returns current global locale ([#602](https://github.com/iamkun/dayjs/issues/602)) ([790cd1a](https://github.com/iamkun/dayjs/commit/790cd1a))
+* Fix incorrect Thai locale translation of July ([#607](https://github.com/iamkun/dayjs/issues/607)) ([43cbfd3](https://github.com/iamkun/dayjs/commit/43cbfd3))
+* Lowercase french locale months and weekdays ([#615](https://github.com/iamkun/dayjs/issues/615)) ([e5a257c](https://github.com/iamkun/dayjs/commit/e5a257c))
+* Type - Export Ls object to query all available locales ([#623](https://github.com/iamkun/dayjs/issues/623)) ([f6bfae0](https://github.com/iamkun/dayjs/commit/f6bfae0))
+* Update  nb (Norsk Bokmål) locale ([#604](https://github.com/iamkun/dayjs/issues/604)) ([907f5c9](https://github.com/iamkun/dayjs/commit/907f5c9))
+* Update types of `.diff` API ([#617](https://github.com/iamkun/dayjs/issues/617)) ([f0f43d2](https://github.com/iamkun/dayjs/commit/f0f43d2))
+
+## [1.8.14](https://github.com/iamkun/dayjs/compare/v1.8.13...v1.8.14) (2019-05-07)
+
+
+### Bug Fixes
+
+* Fix `.format` API returns UTC offset when value is 0 bug ([b254964](https://github.com/iamkun/dayjs/commit/b254964))
+* Fix QuarterOfYear plugin bug ([#591](https://github.com/iamkun/dayjs/issues/591)) ([434f774](https://github.com/iamkun/dayjs/commit/434f774))
+* Fix UTC plugin add day DST bug ([#590](https://github.com/iamkun/dayjs/issues/590)) ([86cd839](https://github.com/iamkun/dayjs/commit/86cd839))
+
+## [1.8.13](https://github.com/iamkun/dayjs/compare/v1.8.12...v1.8.13) (2019-04-26)
+
+
+### Bug Fixes
+
+* Add missing relativeTime and formats for some locales ([#560](https://github.com/iamkun/dayjs/issues/560)) ([96b917e](https://github.com/iamkun/dayjs/commit/96b917e))
+* Add weekday (locale aware day of the week) plugin ([#569](https://github.com/iamkun/dayjs/issues/569)) ([9007cc5](https://github.com/iamkun/dayjs/commit/9007cc5)), closes [#559](https://github.com/iamkun/dayjs/issues/559)
+* Allow customizing "am" / "pm" strings with locale meridiem function ([#580](https://github.com/iamkun/dayjs/issues/580)) ([576e93e](https://github.com/iamkun/dayjs/commit/576e93e)), closes [#578](https://github.com/iamkun/dayjs/issues/578)
+* Fix `.add` day/week decimal rouding bug ([800f6c9](https://github.com/iamkun/dayjs/commit/800f6c9))
+* Fix `.diff` type definition error ([#565](https://github.com/iamkun/dayjs/issues/565)) ([c4921ae](https://github.com/iamkun/dayjs/commit/c4921ae)), closes [#561](https://github.com/iamkun/dayjs/issues/561)
+* Fix CustomParseFormat plugin bug ([#568](https://github.com/iamkun/dayjs/issues/568)) ([1f5a9db](https://github.com/iamkun/dayjs/commit/1f5a9db)), closes [#555](https://github.com/iamkun/dayjs/issues/555)
+* Fix relativeTime plugin Math.round bug ([40bea40](https://github.com/iamkun/dayjs/commit/40bea40))
+* skip square brackets in  buddhistEra, advancedFormat plugins ([#556](https://github.com/iamkun/dayjs/issues/556)) ([9279718](https://github.com/iamkun/dayjs/commit/9279718)), closes [#554](https://github.com/iamkun/dayjs/issues/554)
+* Update Indonesian locale([#574](https://github.com/iamkun/dayjs/issues/574)) ([0aa7143](https://github.com/iamkun/dayjs/commit/0aa7143))
+* Update locale month to support both array and function ([#581](https://github.com/iamkun/dayjs/issues/581)) ([b6599d3](https://github.com/iamkun/dayjs/commit/b6599d3))
+* Update LocalizedFormat plugin lowercase formats logic ([#557](https://github.com/iamkun/dayjs/issues/557)) ([d409304](https://github.com/iamkun/dayjs/commit/d409304))
+
+## [1.8.12](https://github.com/iamkun/dayjs/compare/v1.8.11...v1.8.12) (2019-04-02)
+
+
+### Bug Fixes
+
+* Add .get API ([7318797](https://github.com/iamkun/dayjs/commit/7318797))
+* Add 79 locales ([#541](https://github.com/iamkun/dayjs/issues/541)) ([f75a125](https://github.com/iamkun/dayjs/commit/f75a125))
+* Add Calendar plugin ([d1b9cf9](https://github.com/iamkun/dayjs/commit/d1b9cf9))
+* Add isoWeeksInYear plugin ([2db8631](https://github.com/iamkun/dayjs/commit/2db8631))
+* Add Occitan (oc-lnc) locale file ([#551](https://github.com/iamkun/dayjs/issues/551)) ([c30b715](https://github.com/iamkun/dayjs/commit/c30b715))
+* Add plugin minMax to sopport .max .min ([2870a23](https://github.com/iamkun/dayjs/commit/2870a23))
+* Fix set Month Year error in last day of the month ([d058f4a](https://github.com/iamkun/dayjs/commit/d058f4a))
+* Update ko locale weekdaysShort  ([#543](https://github.com/iamkun/dayjs/issues/543)) ([317fd3e](https://github.com/iamkun/dayjs/commit/317fd3e))
+* Update localizedFormat plugin to support lowercase localizable formats (l, ll, lll, llll) ([#546](https://github.com/iamkun/dayjs/issues/546)) ([f2b5ebf](https://github.com/iamkun/dayjs/commit/f2b5ebf))
+
+## [1.8.11](https://github.com/iamkun/dayjs/compare/v1.8.10...v1.8.11) (2019-03-21)
+
+
+### Bug Fixes
+
+* Add .add('quarter') .startOf('quarter') through plugin quarterOfYear ([dde39e9](https://github.com/iamkun/dayjs/commit/dde39e9)), closes [#537](https://github.com/iamkun/dayjs/issues/537) [#531](https://github.com/iamkun/dayjs/issues/531)
+* Add locale support for Azerbaijani language (az) ([#535](https://github.com/iamkun/dayjs/issues/535)) ([eeb20fa](https://github.com/iamkun/dayjs/commit/eeb20fa))
+* Correct typescript definition `add` ([22a249c](https://github.com/iamkun/dayjs/commit/22a249c)), closes [#531](https://github.com/iamkun/dayjs/issues/531)
+* Fix CustomParseFormat plugin formatting bug ([#536](https://github.com/iamkun/dayjs/issues/536)) ([8578546](https://github.com/iamkun/dayjs/commit/8578546)), closes [#533](https://github.com/iamkun/dayjs/issues/533)
+* Update pt locale ([#538](https://github.com/iamkun/dayjs/issues/538)) ([1ac9e1e](https://github.com/iamkun/dayjs/commit/1ac9e1e))
+
+## [1.8.10](https://github.com/iamkun/dayjs/compare/v1.8.9...v1.8.10) (2019-03-10)
+
+
+### Bug Fixes
+
+* **locale:** Add nepali (ne) locale ([#524](https://github.com/iamkun/dayjs/issues/524)) ([bdbec01](https://github.com/iamkun/dayjs/commit/bdbec01))
+* Add WeekYear plugin ([a892608](https://github.com/iamkun/dayjs/commit/a892608))
+* API .locale() with no argument should return current locale name string ([8d63d88](https://github.com/iamkun/dayjs/commit/8d63d88))
+* CustomParseFormat correct parse HH:mm:ss with only one digit like 0:12:10 ([600d547](https://github.com/iamkun/dayjs/commit/600d547))
+* CustomParseFormat plugin parse Do format string ([bf27fda](https://github.com/iamkun/dayjs/commit/bf27fda)), closes [#522](https://github.com/iamkun/dayjs/issues/522)
+* Expand setters like .year(2000) .hour(12) ([ac532a0](https://github.com/iamkun/dayjs/commit/ac532a0))
+* Move toObject, toArray API to separate plugin from core ([40a3431](https://github.com/iamkun/dayjs/commit/40a3431))
+
+## [1.8.9](https://github.com/iamkun/dayjs/compare/v1.8.8...v1.8.9) (2019-03-06)
+
+
+### Features
+
+* Add UTC mode with UTC plugin ([#517](https://github.com/iamkun/dayjs/issues/517)) ([caf335c](https://github.com/iamkun/dayjs/commit/caf335c))
+
+> For plugin developers: Please note, we have changed the name of some method in `Utils` in order to reduce the file size. ([#517](https://github.com/iamkun/dayjs/issues/517)) ([detail](https://github.com/iamkun/dayjs/pull/517/files#diff-2b4ca49d4bb0a774c4d4c1672d7aa781R46))
+
+### Bug Fixes
+
+* Add locale de-AT ([#515](https://github.com/iamkun/dayjs/issues/515)) ([d93f7b6](https://github.com/iamkun/dayjs/commit/d93f7b6))
+* Add locale zh-hk ([#516](https://github.com/iamkun/dayjs/issues/516)) ([5fc05a6](https://github.com/iamkun/dayjs/commit/5fc05a6))
+
+## [1.8.8](https://github.com/iamkun/dayjs/compare/v1.8.7...v1.8.8) (2019-02-25)
+
+
+### Bug Fixes
+
+* Update relativeTime plugin type definition ([de56f2c](https://github.com/iamkun/dayjs/commit/de56f2c))
+
+## [1.8.7](https://github.com/iamkun/dayjs/compare/v1.8.6...v1.8.7) (2019-02-24)
+
+
+### Bug Fixes
+
+* Add plugin type definitions ([#418](https://github.com/iamkun/dayjs/issues/418)) ([361d437](https://github.com/iamkun/dayjs/commit/361d437))
+* Add Swahili locale ([#508](https://github.com/iamkun/dayjs/issues/508)) ([b9cee84](https://github.com/iamkun/dayjs/commit/b9cee84))
+* Parse month string 'MMMM MMM (February, Feb)' in customParseFormat ([#457](https://github.com/iamkun/dayjs/issues/457)) ([f343206](https://github.com/iamkun/dayjs/commit/f343206))
+* Update declaration file .diff .isBefore .isSame .isAfter ([#496](https://github.com/iamkun/dayjs/issues/496)) ([4523275](https://github.com/iamkun/dayjs/commit/4523275))
+* Word orders corrections for locale 'fa' ([#491](https://github.com/iamkun/dayjs/issues/491)) ([56050c2](https://github.com/iamkun/dayjs/commit/56050c2))
+
+## [1.8.6](https://github.com/iamkun/dayjs/compare/v1.8.5...v1.8.6) (2019-02-14)
+
+
+### Bug Fixes
+
+* Add Bahasa Melayu (Malaysia) locale ([#485](https://github.com/iamkun/dayjs/issues/485)) ([cb208b0](https://github.com/iamkun/dayjs/commit/cb208b0))
+* Copy & export built-in en locale to /locale folder as a separate file ([a7e05e0](https://github.com/iamkun/dayjs/commit/a7e05e0))
+* Fix bug in customParseFormat plugin while month(MM) is '01' ([9884ca5](https://github.com/iamkun/dayjs/commit/9884ca5)), closes [#494](https://github.com/iamkun/dayjs/issues/494)
+* Fix startOf week bug while week start is not Sunday ([5eaf77b](https://github.com/iamkun/dayjs/commit/5eaf77b))
+* Implemented isBetween inclusivity ([#464](https://github.com/iamkun/dayjs/issues/464)) ([af2f4f1](https://github.com/iamkun/dayjs/commit/af2f4f1))
+* Update Swedish and Finnish locales ([#488](https://github.com/iamkun/dayjs/issues/488)) ([f142082](https://github.com/iamkun/dayjs/commit/f142082))
+* Fix commonJS require ES Module bug in webpack4 ([23f9f3d](https://github.com/iamkun/dayjs/commit/23f9f3d)), check [#492](https://github.com/iamkun/dayjs/issues/492)
+
+> Get access to ESM code with `import dayjs from 'dayjs/esm'`
+
+## [1.8.5](https://github.com/iamkun/dayjs/compare/v1.8.4...v1.8.5) (2019-02-07)
+
+
+### Bug Fixes
+
+* Add en-gb locale ([#478](https://github.com/iamkun/dayjs/issues/478)) ([508c3a7](https://github.com/iamkun/dayjs/commit/508c3a7))
+* **module:** transpile everything except ES6 modules in the 'module' entrypoint ([#477](https://github.com/iamkun/dayjs/issues/477)) ([#480](https://github.com/iamkun/dayjs/issues/480)) ([#482](https://github.com/iamkun/dayjs/issues/482)) ([767017d](https://github.com/iamkun/dayjs/commit/767017d))
+* update customParseFormat plugin support hh:mm ([54947cc](https://github.com/iamkun/dayjs/commit/54947cc)), closes [#484](https://github.com/iamkun/dayjs/issues/484)
+* Update module in package.json ([5c5a7a0](https://github.com/iamkun/dayjs/commit/5c5a7a0))
+
+## [1.8.4](https://github.com/iamkun/dayjs/compare/v1.8.3...v1.8.4) (2019-02-05)
+
+* Allow set start day of week in locale && Allow set week in weekOfYear plugin ([1295591](https://github.com/iamkun/dayjs/commit/1295591))
+### Bug Fixes
+* update all locale files with correct week start ([5b03412](https://github.com/iamkun/dayjs/commit/5b03412))
+* update es es-do locale adding weekStart && update weekStart test ([66e42ec](https://github.com/iamkun/dayjs/commit/66e42ec))
+* Revert default export ([b00da1b](https://github.com/iamkun/dayjs/commit/b00da1b))
+
+## [1.8.3](https://github.com/iamkun/dayjs/compare/v1.8.2...v1.8.3) (2019-02-04)
+
+
+### Bug Fixes
+
+* fix ios safari YYYY-MM-DD HH:mm parse BUG ([e02ae82](https://github.com/iamkun/dayjs/commit/e02ae82)), closes [#254](https://github.com/iamkun/dayjs/issues/254)
+
+## [1.8.2](https://github.com/iamkun/dayjs/compare/v1.8.1...v1.8.2) (2019-02-02)
+
+
+### Bug Fixes
+
+* Add missing czech language locale ([#461](https://github.com/iamkun/dayjs/issues/461)) ([7e04004](https://github.com/iamkun/dayjs/commit/7e04004))
+* Add utcOffset api method and fix calculating diff error in DST ([#453](https://github.com/iamkun/dayjs/issues/453)) ([ce2e30e](https://github.com/iamkun/dayjs/commit/ce2e30e))
+* Fix it locale error ([#458](https://github.com/iamkun/dayjs/issues/458)) ([f6d9a64](https://github.com/iamkun/dayjs/commit/f6d9a64))
+* Add DayOfYear plugin (#454)
+* Fix es locale monthsShort error
+
+## [1.8.1](https://github.com/iamkun/dayjs/compare/v1.8.0...v1.8.1) (2019-02-02)
+
+* Add LocalizedFormat plugin supplying format like LTS, LT, LLLL 
+
+* <del>update declaration File with default export (#278)</del>
+> <del>From v1.8.1, in TypeScript Project, just `import from dayjs from 'dayjs'`</del>
+* add ES2015 module support (#451)
+
+### Performance Improvements
+
+* **format:** reuse matches instead of created when replacing ([#441](https://github.com/iamkun/dayjs/issues/441)) ([10b79d8](https://github.com/iamkun/dayjs/commit/10b79d8))
+
+# [1.8.0](https://github.com/iamkun/dayjs/compare/v1.7.8...v1.8.0) (2019-01-14)
+
+
+### Features
+
+* add CustomParseFormat plugin  and QuarterOfYear plugin ([#450](https://github.com/iamkun/dayjs/issues/450)) ([8f6f63c](https://github.com/iamkun/dayjs/commit/8f6f63c))
+
+## [1.7.8](https://github.com/iamkun/dayjs/compare/v1.7.7...v1.7.8) (2018-12-13)
+
+
+### Feature
+
+* update isSame isBefore isAfter supports units ([fd65464](https://github.com/iamkun/dayjs/commit/fd65464))
+
+* add greek lithuanian locales 
+
+## [1.7.7](https://github.com/iamkun/dayjs/compare/v1.7.6...v1.7.7) (2018-09-26)
+
+
+### Bug Fixes
+
+* **DST:** fix daylight saving time DST bug && add test ([#354](https://github.com/iamkun/dayjs/issues/354)) ([6fca6d5](https://github.com/iamkun/dayjs/commit/6fca6d5))
+
+## [1.7.6](https://github.com/iamkun/dayjs/compare/v1.7.5...v1.7.6) (2018-09-25)
+
+
+### Bug Fixes
+
+* **add dayjs.unix:** add dayjs.unix to parse timestamp in seconds && locale update ([5711c5e](https://github.com/iamkun/dayjs/commit/5711c5e))
+
+## [1.7.5](https://github.com/iamkun/dayjs/compare/v1.7.4...v1.7.5) (2018-08-10)
+
+
+### Bug Fixes
+
+* add isBetween API & update ([b5fc3d1](https://github.com/iamkun/dayjs/commit/b5fc3d1))
+
+## [1.7.4](https://github.com/iamkun/dayjs/compare/v1.7.3...v1.7.4) (2018-07-11)
+
+
+### Bug Fixes
+
+* update set week logic ([60b6325](https://github.com/iamkun/dayjs/commit/60b6325)), closes [#276](https://github.com/iamkun/dayjs/issues/276)
+
+## [1.7.3](https://github.com/iamkun/dayjs/compare/v1.7.2...v1.7.3) (2018-07-10)
+
+
+### Bug Fixes
+
+* **locale-nl:** set correct weekdays and months ([6d089d7](https://github.com/iamkun/dayjs/commit/6d089d7))
+
+## [1.7.2](https://github.com/iamkun/dayjs/compare/v1.7.1...v1.7.2) (2018-07-04)
+
+
+### Bug Fixes
+
+* DEPRECATED isLeapYear, use IsLeapYear plugin instead ([e2e5116](https://github.com/iamkun/dayjs/commit/e2e5116))
+
+## [1.7.1](https://github.com/iamkun/dayjs/compare/v1.7.0...v1.7.1) (2018-07-03)
+
+
+### Bug Fixes
+
+* fix week() error near the end of the year ([fa03689](https://github.com/iamkun/dayjs/commit/fa03689))
+
+# [1.7.0](https://github.com/iamkun/dayjs/compare/v1.6.10...v1.7.0) (2018-07-02)
+
+
+### Features
+
+* Added method `.week()` to retrieve week of the year ([e1c1b1c](https://github.com/iamkun/dayjs/commit/e1c1b1c))
+* Updated Japanese locae
+
+## [1.6.10](https://github.com/iamkun/dayjs/compare/v1.6.9...v1.6.10) (2018-06-25)
+
+
+### Bug Fixes
+
+* Add relative locales to russian language ([c7e9898](https://github.com/iamkun/dayjs/commit/c7e9898)), closes [#256](https://github.com/iamkun/dayjs/issues/256)
+
+## [1.6.9](https://github.com/iamkun/dayjs/compare/v1.6.8...v1.6.9) (2018-06-14)
+
+
+### Bug Fixes
+
+* add isDayjs => boolean API ([6227c8b](https://github.com/iamkun/dayjs/commit/6227c8b))
+
+## [1.6.8](https://github.com/iamkun/dayjs/compare/v1.6.7...v1.6.8) (2018-06-14)
+
+
+### Bug Fixes
+
+* fix  Advanced format bug in zh-cn ([0c07874](https://github.com/iamkun/dayjs/commit/0c07874)), closes [#242](https://github.com/iamkun/dayjs/issues/242)
+
+## [1.6.7](https://github.com/iamkun/dayjs/compare/v1.6.6...v1.6.7) (2018-06-11)
+
+
+### Bug Fixes
+
+* fix id locale ([1ebbeb8](https://github.com/iamkun/dayjs/commit/1ebbeb8)), closes [#234](https://github.com/iamkun/dayjs/issues/234)
+
+<a name="1.6.6"></a>
+## [1.6.6](https://github.com/iamkun/dayjs/compare/v1.6.5...v1.6.6) (2018-06-06)
+
+
+### Bug Fixes
+
+*  format API update and locale file update ([5ca48f0](https://github.com/iamkun/dayjs/commit/5ca48f0)), closes [#228](https://github.com/iamkun/dayjs/issues/228)
+
+<a name="1.6.5"></a>
+## [1.6.5](https://github.com/iamkun/dayjs/compare/v1.6.4...v1.6.5) (2018-05-31)
+
+
+### Bug Fixes
+
+* bugfix, utils update and  locale file update ([ebcb6d5](https://github.com/iamkun/dayjs/commit/ebcb6d5)), closes [#214](https://github.com/iamkun/dayjs/issues/214)
+
+<a name="1.6.4"></a>
+## [1.6.4](https://github.com/iamkun/dayjs/compare/v1.6.3...v1.6.4) (2018-05-25)
+
+
+### Bug Fixes
+
+* add RelativeTime plugin and locale file update ([c1fbbca](https://github.com/iamkun/dayjs/commit/c1fbbca)), closes [#198](https://github.com/iamkun/dayjs/issues/198)
+
+<a name="1.6.3"></a>
+## [1.6.3](https://github.com/iamkun/dayjs/compare/v1.6.2...v1.6.3) (2018-05-21)
+
+
+### Bug Fixes
+
+* Changing locales locally is immutable from this release ([2cce729](https://github.com/iamkun/dayjs/commit/2cce729)), closes [#182](https://github.com/iamkun/dayjs/issues/182)
+* instance locale change should be immutable ([84597c9](https://github.com/iamkun/dayjs/commit/84597c9))
+* Add more locales
+* english ordinal fix
+
+<a name="1.6.2"></a>
+## [1.6.2](https://github.com/iamkun/dayjs/compare/v1.6.1...v1.6.2) (2018-05-18)
+
+
+### Bug Fixes
+
+* change-log update && test new npm release ([aa49cba](https://github.com/iamkun/dayjs/commit/aa49cba)), closes [#163](https://github.com/iamkun/dayjs/issues/163)
+
+<a name="1.6.1"></a>
+## [1.6.1](https://github.com/iamkun/dayjs/compare/v1.6.0...v1.6.1) (2018-05-18)
+
+
+### Bug Fixes
+
+* Add German, Brazilian Portuguese locales
+* add() & parse() bug fix & add locale de, pt-br ([bf1331e](https://github.com/iamkun/dayjs/commit/bf1331e))
+
+<a name="1.6.0"></a>
+# [1.6.0](https://github.com/iamkun/dayjs/compare/v1.5.24...v1.6.0) (2018-05-15)
+
+
+### Features
+
+* Locale && Plugin ([2342c55](https://github.com/iamkun/dayjs/commit/2342c55)), closes [#141](https://github.com/iamkun/dayjs/issues/141)

+ 21 - 0
node_modules/dayjs/LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018-present, iamkun
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 172 - 0
node_modules/dayjs/README.md

@@ -0,0 +1,172 @@
+English | [简体中文](./docs/zh-cn/README.zh-CN.md) | [日本語](./docs/ja/README-ja.md) | [Português Brasileiro](./docs/pt-br/README-pt-br.md) | [한국어](./docs/ko/README-ko.md) | [Español (España)](./docs/es-es/README-es-es.md) | [Русский](./docs/ru/README-ru.md) | [Türkçe](./docs/tr/README-tr.md) | [සිංහල](./docs/si/README-si.md) | [עברית](./docs/he/README-he.md)
+
+<p align="center"><a href="https://day.js.org/" target="_blank" rel="noopener noreferrer"><img width="550"
+                                                                             src="https://user-images.githubusercontent.com/17680888/39081119-3057bbe2-456e-11e8-862c-646133ad4b43.png"
+                                                                             alt="Day.js" /></a></p>
+<p align="center">Fast <b>2kB</b> alternative to Moment.js with the same modern API</p>
+<p align="center">
+    <a href="https://bundlephobia.com/package/dayjs"><img
+            src="https://img.shields.io/bundlephobia/minzip/dayjs?style=flat-square&color=%2345cc11"
+            alt="Gzip Size"></a>
+    <a href="https://www.npmjs.com/package/dayjs"><img src="https://img.shields.io/npm/v/dayjs.svg?style=flat-square&colorB=51C838"
+                                                       alt="NPM Version"></a>
+    <a href="https://github.com/iamkun/dayjs/actions/workflows/check.yml"><img
+            src="https://img.shields.io/github/actions/workflow/status/iamkun/dayjs/check.yml?style=flat-square" alt="Build Status"></a>
+    <a href="https://codecov.io/gh/iamkun/dayjs"><img
+            src="https://img.shields.io/codecov/c/github/iamkun/dayjs/master.svg?style=flat-square" alt="Codecov"></a>
+    <a href="https://github.com/iamkun/dayjs/blob/master/LICENSE"><img
+            src="https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square" alt="License"></a>
+    <br>
+    <a href="https://saucelabs.com/u/dayjs">
+        <img width="750" src="https://user-images.githubusercontent.com/17680888/40040137-8e3323a6-584b-11e8-9dba-bbe577ee8a7b.png" alt="Sauce Test Status">
+    </a>
+</p>
+
+> Day.js is a minimalist JavaScript library that parses, validates, manipulates, and displays dates and times for modern browsers with a largely Moment.js-compatible API. If you use Moment.js, you already know how to use Day.js.
+
+```js
+dayjs().startOf('month').add(1, 'day').set('year', 2018).format('YYYY-MM-DD HH:mm:ss');
+```
+
+* 🕒 Familiar Moment.js API & patterns
+* 💪 Immutable
+* 🔥 Chainable
+* 🌐 I18n support
+* 📦 2kb mini library
+* 👫 All browsers supported
+
+---
+
+## Getting Started
+
+### Documentation
+
+You can find more details, API, and other docs on [day.js.org](https://day.js.org/) website.
+
+### Installation
+
+```console
+npm install dayjs --save
+```
+
+📚[Installation Guide](https://day.js.org/docs/en/installation/installation)
+
+### API
+
+It's easy to use Day.js APIs to parse, validate, manipulate, and display dates and times.
+
+```javascript
+dayjs('2018-08-08') // parse
+
+dayjs().format('{YYYY} MM-DDTHH:mm:ss SSS [Z] A') // display
+
+dayjs().set('month', 3).month() // get & set
+
+dayjs().add(1, 'year') // manipulate
+
+dayjs().isBefore(dayjs()) // query
+```
+
+📚[API Reference](https://day.js.org/docs/en/parse/parse)
+
+### I18n
+
+Day.js has great support for internationalization.
+
+But none of them will be included in your build unless you use it.
+
+```javascript
+import 'dayjs/locale/es' // load on demand
+
+dayjs.locale('es') // use Spanish locale globally
+
+dayjs('2018-05-05').locale('zh-cn').format() // use Chinese Simplified locale in a specific instance
+```
+
+📚[Internationalization](https://day.js.org/docs/en/i18n/i18n)
+
+### Plugin
+
+A plugin is an independent module that can be added to Day.js to extend functionality or add new features.
+
+```javascript
+import advancedFormat from 'dayjs/plugin/advancedFormat' // load on demand
+
+dayjs.extend(advancedFormat) // use plugin
+
+dayjs().format('Q Do k kk X x') // more available formats
+```
+
+📚[Plugin List](https://day.js.org/docs/en/plugin/plugin)
+
+### Usage Trend
+
+<a href="https://npm-compare.com/moment,dayjs/#timeRange=THREE_YEARS" target="_blank">
+  <img src="https://user-images.githubusercontent.com/3455798/270162667-c7bd2ebe-675e-45c6-a2c9-dc67f3b65d6e.png">
+</a>
+
+## Sponsors
+
+Support this project by becoming a sponsor. Your logo will show up here with a link to your website.
+
+[[Become a sponsor via Github](https://github.com/sponsors/iamkun/)] [[Become a sponsor via OpenCollective](https://opencollective.com/dayjs#sponsor)]
+
+<a href="https://toyokumo.co.jp" target="_blank">
+  <img width="70" src="https://user-images.githubusercontent.com/17680888/197092231-2367b5eb-1e43-467e-a311-23f7cd97b086.png">
+</a>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a href="https://github.com/ken-swyfft" target="_blank">
+  <img width="70" src="https://avatars.githubusercontent.com/u/65305317?v=4">
+</a>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a href="https://opencollective.com/sight-and-sound-ministries" target="_blank">
+  <img width="70" src="https://user-images.githubusercontent.com/17680888/232316426-cb99b4cf-0ccb-4e73-a6ce-e16dba6aadf4.png">
+</a>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a href="https://chudovo.com/" target="_blank">
+  <img width="70" src="https://images.opencollective.com/chudovo/3c866f5/logo/256.png?height=256">
+</a>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a href="https://www.honrev.com" target="_blank">
+  <img width="70" src="https://github.com/user-attachments/assets/b3203350-34c1-4637-b8b1-d9b8bab346d3">
+</a>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a href="https://github.com/alan-eu" target="_blank">
+  <img width="70" src="https://avatars.githubusercontent.com/u/18175329?s=52&v=4">
+</a>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a href="https://www.exoflare.com/open-source/?utm_source=dayjs&utm_campaign=open_source" target="_blank">
+  <img width="70" src="https://user-images.githubusercontent.com/17680888/162761622-1407a849-0c41-4591-8aa9-f98114ec2092.png">
+</a>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a href="https://github.com/storyblok" target="_blank">
+  <img width="70" src="https://avatars.githubusercontent.com/u/13880908?s=200&v=4">
+</a>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a href="https://bestkru.com/" target="_blank">
+  <img width="70" src="https://avatars.githubusercontent.com/u/159320286" alt="BestKru">
+</a>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a href="https://route4me.com/" target="_blank">
+  <img width="70" src="https://github.com/user-attachments/assets/3fbc86c5-98a9-49c2-beae-1969026fcd76" alt="Route Optimizer and Route Planner Software">
+</a>
+
+
+## Contributors
+
+This project exists thanks to all the people who contribute.
+
+Please give us a 💖 star 💖 to support us. Thank you.
+
+And thank you to all our backers! 🙏
+
+<a href="https://opencollective.com/dayjs/backer/0/website?requireActive=false" target="_blank"><img width="35" src="https://opencollective.com/dayjs/backer/0/avatar.svg?requireActive=false"></a>
+<a href="https://opencollective.com/dayjs/backer/1/website?requireActive=false" target="_blank"><img width="35" src="https://opencollective.com/dayjs/backer/1/avatar.svg?requireActive=false"></a>
+<a href="https://opencollective.com/dayjs/backer/2/website?requireActive=false" target="_blank"><img width="35" src="https://opencollective.com/dayjs/backer/2/avatar.svg?requireActive=false"></a>
+<a href="https://opencollective.com/dayjs/backer/3/website?requireActive=false" target="_blank"><img width="35" src="https://opencollective.com/dayjs/backer/3/avatar.svg?requireActive=false"></a>
+<br />
+<a href="https://opencollective.com/dayjs#backers" target="_blank"><img src="https://opencollective.com/dayjs/contributors.svg?width=890" /></a>
+
+## License
+
+Day.js is licensed under a [MIT License](./LICENSE).

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
node_modules/dayjs/dayjs.min.js


+ 25 - 0
node_modules/dayjs/esm/constant.js

@@ -0,0 +1,25 @@
+export var SECONDS_A_MINUTE = 60;
+export var SECONDS_A_HOUR = SECONDS_A_MINUTE * 60;
+export var SECONDS_A_DAY = SECONDS_A_HOUR * 24;
+export var SECONDS_A_WEEK = SECONDS_A_DAY * 7;
+export var MILLISECONDS_A_SECOND = 1e3;
+export var MILLISECONDS_A_MINUTE = SECONDS_A_MINUTE * MILLISECONDS_A_SECOND;
+export var MILLISECONDS_A_HOUR = SECONDS_A_HOUR * MILLISECONDS_A_SECOND;
+export var MILLISECONDS_A_DAY = SECONDS_A_DAY * MILLISECONDS_A_SECOND;
+export var MILLISECONDS_A_WEEK = SECONDS_A_WEEK * MILLISECONDS_A_SECOND; // English locales
+
+export var MS = 'millisecond';
+export var S = 'second';
+export var MIN = 'minute';
+export var H = 'hour';
+export var D = 'day';
+export var W = 'week';
+export var M = 'month';
+export var Q = 'quarter';
+export var Y = 'year';
+export var DATE = 'date';
+export var FORMAT_DEFAULT = 'YYYY-MM-DDTHH:mm:ssZ';
+export var INVALID_DATE_STRING = 'Invalid Date'; // regex
+
+export var REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/;
+export var REGEX_FORMAT = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;

+ 429 - 0
node_modules/dayjs/esm/index.d.ts

@@ -0,0 +1,429 @@
+/// <reference path="./locale/index.d.ts" />
+
+export = dayjs;
+
+declare function dayjs (date?: dayjs.ConfigType): dayjs.Dayjs
+
+declare function dayjs (date?: dayjs.ConfigType, format?: dayjs.OptionType, strict?: boolean): dayjs.Dayjs
+
+declare function dayjs (date?: dayjs.ConfigType, format?: dayjs.OptionType, locale?: string, strict?: boolean): dayjs.Dayjs
+
+declare namespace dayjs {
+  interface ConfigTypeMap {
+    default: string | number | Date | Dayjs | null | undefined
+  }
+
+  export type ConfigType = ConfigTypeMap[keyof ConfigTypeMap]
+
+  export interface FormatObject { locale?: string, format?: string, utc?: boolean }
+
+  export type OptionType = FormatObject | string | string[]
+
+  export type UnitTypeShort = 'd' | 'D' | 'M' | 'y' | 'h' | 'm' | 's' | 'ms'
+
+  export type UnitTypeLong = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year' | 'date'
+
+  export type UnitTypeLongPlural = 'milliseconds' | 'seconds' | 'minutes' | 'hours' | 'days' | 'months' | 'years' | 'dates'
+  
+  export type UnitType = UnitTypeLong | UnitTypeLongPlural | UnitTypeShort;
+
+  export type OpUnitType = UnitType | "week" | "weeks" | 'w';
+  export type QUnitType = UnitType | "quarter" | "quarters" | 'Q';
+  export type ManipulateType = Exclude<OpUnitType, 'date' | 'dates'>;
+  class Dayjs {
+    constructor (config?: ConfigType)
+    /**
+     * All Day.js objects are immutable. Still, `dayjs#clone` can create a clone of the current object if you need one.
+     * ```
+     * dayjs().clone()// => Dayjs
+     * dayjs(dayjs('2019-01-25')) // passing a Dayjs object to a constructor will also clone it
+     * ```
+     * Docs: https://day.js.org/docs/en/parse/dayjs-clone
+     */
+    clone(): Dayjs
+    /**
+     * This returns a `boolean` indicating whether the Day.js object contains a valid date or not.
+     * ```
+     * dayjs().isValid()// => boolean
+     * ```
+     * Docs: https://day.js.org/docs/en/parse/is-valid
+     */
+    isValid(): boolean
+    /**
+     * Get the year.
+     * ```
+     * dayjs().year()// => 2020
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/year
+     */
+    year(): number
+    /**
+     * Set the year.
+     * ```
+     * dayjs().year(2000)// => Dayjs
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/year
+     */
+    year(value: number): Dayjs
+    /**
+     * Get the month.
+     *
+     * Months are zero indexed, so January is month 0.
+     * ```
+     * dayjs().month()// => 0-11
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/month
+     */
+    month(): number
+    /**
+     * Set the month.
+     *
+     * Months are zero indexed, so January is month 0.
+     *
+     * Accepts numbers from 0 to 11. If the range is exceeded, it will bubble up to the next year.
+     * ```
+     * dayjs().month(0)// => Dayjs
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/month
+     */
+    month(value: number): Dayjs
+    /**
+     * Get the date of the month.
+     * ```
+     * dayjs().date()// => 1-31
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/date
+     */
+    date(): number
+    /**
+     * Set the date of the month.
+     *
+     * Accepts numbers from 1 to 31. If the range is exceeded, it will bubble up to the next months.
+     * ```
+     * dayjs().date(1)// => Dayjs
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/date
+     */
+    date(value: number): Dayjs
+    /**
+     * Get the day of the week.
+     *
+     * Returns numbers from 0 (Sunday) to 6 (Saturday).
+     * ```
+     * dayjs().day()// 0-6
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/day
+     */
+    day(): 0 | 1 | 2 | 3 | 4 | 5 | 6
+    /**
+     * Set the day of the week.
+     *
+     * Accepts numbers from 0 (Sunday) to 6 (Saturday). If the range is exceeded, it will bubble up to next weeks.
+     * ```
+     * dayjs().day(0)// => Dayjs
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/day
+     */
+    day(value: number): Dayjs
+    /**
+     * Get the hour.
+     * ```
+     * dayjs().hour()// => 0-23
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/hour
+     */
+    hour(): number
+    /**
+     * Set the hour.
+     *
+     * Accepts numbers from 0 to 23. If the range is exceeded, it will bubble up to the next day.
+     * ```
+     * dayjs().hour(12)// => Dayjs
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/hour
+     */
+    hour(value: number): Dayjs
+    /**
+     * Get the minutes.
+     * ```
+     * dayjs().minute()// => 0-59
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/minute
+     */
+    minute(): number
+    /**
+     * Set the minutes.
+     *
+     * Accepts numbers from 0 to 59. If the range is exceeded, it will bubble up to the next hour.
+     * ```
+     * dayjs().minute(59)// => Dayjs
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/minute
+     */
+    minute(value: number): Dayjs
+    /**
+     * Get the seconds.
+     * ```
+     * dayjs().second()// => 0-59
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/second
+     */
+    second(): number
+    /**
+     * Set the seconds.
+     *
+     * Accepts numbers from 0 to 59. If the range is exceeded, it will bubble up to the next minutes.
+     * ```
+     * dayjs().second(1)// Dayjs
+     * ```
+     */
+    second(value: number): Dayjs
+    /**
+     * Get the milliseconds.
+     * ```
+     * dayjs().millisecond()// => 0-999
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/millisecond
+     */
+    millisecond(): number
+    /**
+     * Set the milliseconds.
+     *
+     * Accepts numbers from 0 to 999. If the range is exceeded, it will bubble up to the next seconds.
+     * ```
+     * dayjs().millisecond(1)// => Dayjs
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/millisecond
+     */
+    millisecond(value: number): Dayjs
+    /**
+     * Generic setter, accepting unit as first argument, and value as second, returns a new instance with the applied changes.
+     *
+     * In general:
+     * ```
+     * dayjs().set(unit, value) === dayjs()[unit](value)
+     * ```
+     * Units are case insensitive, and support plural and short forms.
+     * ```
+     * dayjs().set('date', 1)
+     * dayjs().set('month', 3) // April
+     * dayjs().set('second', 30)
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/set
+     */
+    set(unit: UnitType, value: number): Dayjs
+    /**
+     * String getter, returns the corresponding information getting from Day.js object.
+     *
+     * In general:
+     * ```
+     * dayjs().get(unit) === dayjs()[unit]()
+     * ```
+     * Units are case insensitive, and support plural and short forms.
+     * ```
+     * dayjs().get('year')
+     * dayjs().get('month') // start 0
+     * dayjs().get('date')
+     * ```
+     * Docs: https://day.js.org/docs/en/get-set/get
+     */
+    get(unit: UnitType): number
+    /**
+     * Returns a cloned Day.js object with a specified amount of time added.
+     * ```
+     * dayjs().add(7, 'day')// => Dayjs
+     * ```
+     * Units are case insensitive, and support plural and short forms.
+     *
+     * Docs: https://day.js.org/docs/en/manipulate/add
+     */
+    add(value: number, unit?: ManipulateType): Dayjs
+    /**
+     * Returns a cloned Day.js object with a specified amount of time subtracted.
+     * ```
+     * dayjs().subtract(7, 'year')// => Dayjs
+     * ```
+     * Units are case insensitive, and support plural and short forms.
+     *
+     * Docs: https://day.js.org/docs/en/manipulate/subtract
+     */
+    subtract(value: number, unit?: ManipulateType): Dayjs
+    /**
+     * Returns a cloned Day.js object and set it to the start of a unit of time.
+     * ```
+     * dayjs().startOf('year')// => Dayjs
+     * ```
+     * Units are case insensitive, and support plural and short forms.
+     *
+     * Docs: https://day.js.org/docs/en/manipulate/start-of
+     */
+    startOf(unit: OpUnitType): Dayjs
+    /**
+     * Returns a cloned Day.js object and set it to the end of a unit of time.
+     * ```
+     * dayjs().endOf('month')// => Dayjs
+     * ```
+     * Units are case insensitive, and support plural and short forms.
+     *
+     * Docs: https://day.js.org/docs/en/manipulate/end-of
+     */
+    endOf(unit: OpUnitType): Dayjs
+    /**
+     * Get the formatted date according to the string of tokens passed in.
+     *
+     * To escape characters, wrap them in square brackets (e.g. [MM]).
+     * ```
+     * dayjs().format()// => current date in ISO8601, without fraction seconds e.g. '2020-04-02T08:02:17-05:00'
+     * dayjs('2019-01-25').format('[YYYYescape] YYYY-MM-DDTHH:mm:ssZ[Z]')// 'YYYYescape 2019-01-25T00:00:00-02:00Z'
+     * dayjs('2019-01-25').format('DD/MM/YYYY') // '25/01/2019'
+     * ```
+     * Docs: https://day.js.org/docs/en/display/format
+     */
+    format(template?: string): string
+    /**
+     * This indicates the difference between two date-time in the specified unit.
+     *
+     * To get the difference in milliseconds, use `dayjs#diff`
+     * ```
+     * const date1 = dayjs('2019-01-25')
+     * const date2 = dayjs('2018-06-05')
+     * date1.diff(date2) // 20214000000 default milliseconds
+     * date1.diff() // milliseconds to current time
+     * ```
+     *
+     * To get the difference in another unit of measurement, pass that measurement as the second argument.
+     * ```
+     * const date1 = dayjs('2019-01-25')
+     * date1.diff('2018-06-05', 'month') // 7
+     * ```
+     * Units are case insensitive, and support plural and short forms.
+     *
+     * Docs: https://day.js.org/docs/en/display/difference
+     */
+    diff(date?: ConfigType, unit?: QUnitType | OpUnitType, float?: boolean): number
+    /**
+     * This returns the number of **milliseconds** since the Unix Epoch of the Day.js object.
+     * ```
+     * dayjs('2019-01-25').valueOf() // 1548381600000
+     * +dayjs(1548381600000) // 1548381600000
+     * ```
+     * To get a Unix timestamp (the number of seconds since the epoch) from a Day.js object, you should use Unix Timestamp `dayjs#unix()`.
+     *
+     * Docs: https://day.js.org/docs/en/display/unix-timestamp-milliseconds
+     */
+    valueOf(): number
+    /**
+     * This returns the Unix timestamp (the number of **seconds** since the Unix Epoch) of the Day.js object.
+     * ```
+     * dayjs('2019-01-25').unix() // 1548381600
+     * ```
+     * This value is floored to the nearest second, and does not include a milliseconds component.
+     *
+     * Docs: https://day.js.org/docs/en/display/unix-timestamp
+     */
+    unix(): number
+    /**
+     * Get the number of days in the current month.
+     * ```
+     * dayjs('2019-01-25').daysInMonth() // 31
+     * ```
+     * Docs: https://day.js.org/docs/en/display/days-in-month
+     */
+    daysInMonth(): number
+    /**
+     * To get a copy of the native `Date` object parsed from the Day.js object use `dayjs#toDate`.
+     * ```
+     * dayjs('2019-01-25').toDate()// => Date
+     * ```
+     */
+    toDate(): Date
+    /**
+     * To serialize as an ISO 8601 string.
+     * ```
+     * dayjs('2019-01-25').toJSON() // '2019-01-25T02:00:00.000Z'
+     * ```
+     * Docs: https://day.js.org/docs/en/display/as-json
+     */
+    toJSON(): string
+    /**
+     * To format as an ISO 8601 string.
+     * ```
+     * dayjs('2019-01-25').toISOString() // '2019-01-25T02:00:00.000Z'
+     * ```
+     * Docs: https://day.js.org/docs/en/display/as-iso-string
+     */
+    toISOString(): string
+    /**
+     * Returns a string representation of the date.
+     * ```
+     * dayjs('2019-01-25').toString() // 'Fri, 25 Jan 2019 02:00:00 GMT'
+     * ```
+     * Docs: https://day.js.org/docs/en/display/as-string
+     */
+    toString(): string
+    /**
+     * Get the UTC offset in minutes.
+     * ```
+     * dayjs().utcOffset()
+     * ```
+     * Docs: https://day.js.org/docs/en/manipulate/utc-offset
+     */
+    utcOffset(): number
+    /**
+     * This indicates whether the Day.js object is before the other supplied date-time.
+     * ```
+     * dayjs().isBefore(dayjs('2011-01-01')) // default milliseconds
+     * ```
+     * If you want to limit the granularity to a unit other than milliseconds, pass it as the second parameter.
+     * ```
+     * dayjs().isBefore('2011-01-01', 'year')// => boolean
+     * ```
+     * Units are case insensitive, and support plural and short forms.
+     *
+     * Docs: https://day.js.org/docs/en/query/is-before
+     */
+    isBefore(date?: ConfigType, unit?: OpUnitType): boolean
+    /**
+     * This indicates whether the Day.js object is the same as the other supplied date-time.
+     * ```
+     * dayjs().isSame(dayjs('2011-01-01')) // default milliseconds
+     * ```
+     * If you want to limit the granularity to a unit other than milliseconds, pass it as the second parameter.
+     * ```
+     * dayjs().isSame('2011-01-01', 'year')// => boolean
+     * ```
+     * Docs: https://day.js.org/docs/en/query/is-same
+     */
+    isSame(date?: ConfigType, unit?: OpUnitType): boolean
+    /**
+     * This indicates whether the Day.js object is after the other supplied date-time.
+     * ```
+     * dayjs().isAfter(dayjs('2011-01-01')) // default milliseconds
+     * ```
+     * If you want to limit the granularity to a unit other than milliseconds, pass it as the second parameter.
+     * ```
+     * dayjs().isAfter('2011-01-01', 'year')// => boolean
+     * ```
+     * Units are case insensitive, and support plural and short forms.
+     *
+     * Docs: https://day.js.org/docs/en/query/is-after
+     */
+    isAfter(date?: ConfigType, unit?: OpUnitType): boolean
+
+    locale(): string
+
+    locale(preset: string | ILocale, object?: Partial<ILocale>): Dayjs
+  }
+
+  export type PluginFunc<T = unknown> = (option: T, c: typeof Dayjs, d: typeof dayjs) => void
+
+  export function extend<T = unknown>(plugin: PluginFunc<T>, option?: T): Dayjs
+
+  export function locale(preset?: string | ILocale, object?: Partial<ILocale>, isLocal?: boolean): string
+
+  export function isDayjs(d: any): d is Dayjs
+
+  export function unix(t: number): Dayjs
+
+  const Ls : { [key: string] :  ILocale }
+}

+ 541 - 0
node_modules/dayjs/esm/index.js

@@ -0,0 +1,541 @@
+import * as C from './constant';
+import en from './locale/en';
+import U from './utils';
+var L = 'en'; // global locale
+
+var Ls = {}; // global loaded locale
+
+Ls[L] = en;
+var IS_DAYJS = '$isDayjsObject'; // eslint-disable-next-line no-use-before-define
+
+var isDayjs = function isDayjs(d) {
+  return d instanceof Dayjs || !!(d && d[IS_DAYJS]);
+};
+
+var parseLocale = function parseLocale(preset, object, isLocal) {
+  var l;
+  if (!preset) return L;
+
+  if (typeof preset === 'string') {
+    var presetLower = preset.toLowerCase();
+
+    if (Ls[presetLower]) {
+      l = presetLower;
+    }
+
+    if (object) {
+      Ls[presetLower] = object;
+      l = presetLower;
+    }
+
+    var presetSplit = preset.split('-');
+
+    if (!l && presetSplit.length > 1) {
+      return parseLocale(presetSplit[0]);
+    }
+  } else {
+    var name = preset.name;
+    Ls[name] = preset;
+    l = name;
+  }
+
+  if (!isLocal && l) L = l;
+  return l || !isLocal && L;
+};
+
+var dayjs = function dayjs(date, c) {
+  if (isDayjs(date)) {
+    return date.clone();
+  } // eslint-disable-next-line no-nested-ternary
+
+
+  var cfg = typeof c === 'object' ? c : {};
+  cfg.date = date;
+  cfg.args = arguments; // eslint-disable-line prefer-rest-params
+
+  return new Dayjs(cfg); // eslint-disable-line no-use-before-define
+};
+
+var wrapper = function wrapper(date, instance) {
+  return dayjs(date, {
+    locale: instance.$L,
+    utc: instance.$u,
+    x: instance.$x,
+    $offset: instance.$offset // todo: refactor; do not use this.$offset in you code
+
+  });
+};
+
+var Utils = U; // for plugin use
+
+Utils.l = parseLocale;
+Utils.i = isDayjs;
+Utils.w = wrapper;
+
+var parseDate = function parseDate(cfg) {
+  var date = cfg.date,
+      utc = cfg.utc;
+  if (date === null) return new Date(NaN); // null is invalid
+
+  if (Utils.u(date)) return new Date(); // today
+
+  if (date instanceof Date) return new Date(date);
+
+  if (typeof date === 'string' && !/Z$/i.test(date)) {
+    var d = date.match(C.REGEX_PARSE);
+
+    if (d) {
+      var m = d[2] - 1 || 0;
+      var ms = (d[7] || '0').substring(0, 3);
+
+      if (utc) {
+        return new Date(Date.UTC(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms));
+      }
+
+      return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);
+    }
+  }
+
+  return new Date(date); // everything else
+};
+
+var Dayjs = /*#__PURE__*/function () {
+  function Dayjs(cfg) {
+    this.$L = parseLocale(cfg.locale, null, true);
+    this.parse(cfg); // for plugin
+
+    this.$x = this.$x || cfg.x || {};
+    this[IS_DAYJS] = true;
+  }
+
+  var _proto = Dayjs.prototype;
+
+  _proto.parse = function parse(cfg) {
+    this.$d = parseDate(cfg);
+    this.init();
+  };
+
+  _proto.init = function init() {
+    var $d = this.$d;
+    this.$y = $d.getFullYear();
+    this.$M = $d.getMonth();
+    this.$D = $d.getDate();
+    this.$W = $d.getDay();
+    this.$H = $d.getHours();
+    this.$m = $d.getMinutes();
+    this.$s = $d.getSeconds();
+    this.$ms = $d.getMilliseconds();
+  } // eslint-disable-next-line class-methods-use-this
+  ;
+
+  _proto.$utils = function $utils() {
+    return Utils;
+  };
+
+  _proto.isValid = function isValid() {
+    return !(this.$d.toString() === C.INVALID_DATE_STRING);
+  };
+
+  _proto.isSame = function isSame(that, units) {
+    var other = dayjs(that);
+    return this.startOf(units) <= other && other <= this.endOf(units);
+  };
+
+  _proto.isAfter = function isAfter(that, units) {
+    return dayjs(that) < this.startOf(units);
+  };
+
+  _proto.isBefore = function isBefore(that, units) {
+    return this.endOf(units) < dayjs(that);
+  };
+
+  _proto.$g = function $g(input, get, set) {
+    if (Utils.u(input)) return this[get];
+    return this.set(set, input);
+  };
+
+  _proto.unix = function unix() {
+    return Math.floor(this.valueOf() / 1000);
+  };
+
+  _proto.valueOf = function valueOf() {
+    // timezone(hour) * 60 * 60 * 1000 => ms
+    return this.$d.getTime();
+  };
+
+  _proto.startOf = function startOf(units, _startOf) {
+    var _this = this;
+
+    // startOf -> endOf
+    var isStartOf = !Utils.u(_startOf) ? _startOf : true;
+    var unit = Utils.p(units);
+
+    var instanceFactory = function instanceFactory(d, m) {
+      var ins = Utils.w(_this.$u ? Date.UTC(_this.$y, m, d) : new Date(_this.$y, m, d), _this);
+      return isStartOf ? ins : ins.endOf(C.D);
+    };
+
+    var instanceFactorySet = function instanceFactorySet(method, slice) {
+      var argumentStart = [0, 0, 0, 0];
+      var argumentEnd = [23, 59, 59, 999];
+      return Utils.w(_this.toDate()[method].apply( // eslint-disable-line prefer-spread
+      _this.toDate('s'), (isStartOf ? argumentStart : argumentEnd).slice(slice)), _this);
+    };
+
+    var $W = this.$W,
+        $M = this.$M,
+        $D = this.$D;
+    var utcPad = "set" + (this.$u ? 'UTC' : '');
+
+    switch (unit) {
+      case C.Y:
+        return isStartOf ? instanceFactory(1, 0) : instanceFactory(31, 11);
+
+      case C.M:
+        return isStartOf ? instanceFactory(1, $M) : instanceFactory(0, $M + 1);
+
+      case C.W:
+        {
+          var weekStart = this.$locale().weekStart || 0;
+          var gap = ($W < weekStart ? $W + 7 : $W) - weekStart;
+          return instanceFactory(isStartOf ? $D - gap : $D + (6 - gap), $M);
+        }
+
+      case C.D:
+      case C.DATE:
+        return instanceFactorySet(utcPad + "Hours", 0);
+
+      case C.H:
+        return instanceFactorySet(utcPad + "Minutes", 1);
+
+      case C.MIN:
+        return instanceFactorySet(utcPad + "Seconds", 2);
+
+      case C.S:
+        return instanceFactorySet(utcPad + "Milliseconds", 3);
+
+      default:
+        return this.clone();
+    }
+  };
+
+  _proto.endOf = function endOf(arg) {
+    return this.startOf(arg, false);
+  };
+
+  _proto.$set = function $set(units, _int) {
+    var _C$D$C$DATE$C$M$C$Y$C;
+
+    // private set
+    var unit = Utils.p(units);
+    var utcPad = "set" + (this.$u ? 'UTC' : '');
+    var name = (_C$D$C$DATE$C$M$C$Y$C = {}, _C$D$C$DATE$C$M$C$Y$C[C.D] = utcPad + "Date", _C$D$C$DATE$C$M$C$Y$C[C.DATE] = utcPad + "Date", _C$D$C$DATE$C$M$C$Y$C[C.M] = utcPad + "Month", _C$D$C$DATE$C$M$C$Y$C[C.Y] = utcPad + "FullYear", _C$D$C$DATE$C$M$C$Y$C[C.H] = utcPad + "Hours", _C$D$C$DATE$C$M$C$Y$C[C.MIN] = utcPad + "Minutes", _C$D$C$DATE$C$M$C$Y$C[C.S] = utcPad + "Seconds", _C$D$C$DATE$C$M$C$Y$C[C.MS] = utcPad + "Milliseconds", _C$D$C$DATE$C$M$C$Y$C)[unit];
+    var arg = unit === C.D ? this.$D + (_int - this.$W) : _int;
+
+    if (unit === C.M || unit === C.Y) {
+      // clone is for badMutable plugin
+      var date = this.clone().set(C.DATE, 1);
+      date.$d[name](arg);
+      date.init();
+      this.$d = date.set(C.DATE, Math.min(this.$D, date.daysInMonth())).$d;
+    } else if (name) this.$d[name](arg);
+
+    this.init();
+    return this;
+  };
+
+  _proto.set = function set(string, _int2) {
+    return this.clone().$set(string, _int2);
+  };
+
+  _proto.get = function get(unit) {
+    return this[Utils.p(unit)]();
+  };
+
+  _proto.add = function add(number, units) {
+    var _this2 = this,
+        _C$MIN$C$H$C$S$unit;
+
+    number = Number(number); // eslint-disable-line no-param-reassign
+
+    var unit = Utils.p(units);
+
+    var instanceFactorySet = function instanceFactorySet(n) {
+      var d = dayjs(_this2);
+      return Utils.w(d.date(d.date() + Math.round(n * number)), _this2);
+    };
+
+    if (unit === C.M) {
+      return this.set(C.M, this.$M + number);
+    }
+
+    if (unit === C.Y) {
+      return this.set(C.Y, this.$y + number);
+    }
+
+    if (unit === C.D) {
+      return instanceFactorySet(1);
+    }
+
+    if (unit === C.W) {
+      return instanceFactorySet(7);
+    }
+
+    var step = (_C$MIN$C$H$C$S$unit = {}, _C$MIN$C$H$C$S$unit[C.MIN] = C.MILLISECONDS_A_MINUTE, _C$MIN$C$H$C$S$unit[C.H] = C.MILLISECONDS_A_HOUR, _C$MIN$C$H$C$S$unit[C.S] = C.MILLISECONDS_A_SECOND, _C$MIN$C$H$C$S$unit)[unit] || 1; // ms
+
+    var nextTimeStamp = this.$d.getTime() + number * step;
+    return Utils.w(nextTimeStamp, this);
+  };
+
+  _proto.subtract = function subtract(number, string) {
+    return this.add(number * -1, string);
+  };
+
+  _proto.format = function format(formatStr) {
+    var _this3 = this;
+
+    var locale = this.$locale();
+    if (!this.isValid()) return locale.invalidDate || C.INVALID_DATE_STRING;
+    var str = formatStr || C.FORMAT_DEFAULT;
+    var zoneStr = Utils.z(this);
+    var $H = this.$H,
+        $m = this.$m,
+        $M = this.$M;
+    var weekdays = locale.weekdays,
+        months = locale.months,
+        meridiem = locale.meridiem;
+
+    var getShort = function getShort(arr, index, full, length) {
+      return arr && (arr[index] || arr(_this3, str)) || full[index].slice(0, length);
+    };
+
+    var get$H = function get$H(num) {
+      return Utils.s($H % 12 || 12, num, '0');
+    };
+
+    var meridiemFunc = meridiem || function (hour, minute, isLowercase) {
+      var m = hour < 12 ? 'AM' : 'PM';
+      return isLowercase ? m.toLowerCase() : m;
+    };
+
+    var matches = function matches(match) {
+      switch (match) {
+        case 'YY':
+          return String(_this3.$y).slice(-2);
+
+        case 'YYYY':
+          return Utils.s(_this3.$y, 4, '0');
+
+        case 'M':
+          return $M + 1;
+
+        case 'MM':
+          return Utils.s($M + 1, 2, '0');
+
+        case 'MMM':
+          return getShort(locale.monthsShort, $M, months, 3);
+
+        case 'MMMM':
+          return getShort(months, $M);
+
+        case 'D':
+          return _this3.$D;
+
+        case 'DD':
+          return Utils.s(_this3.$D, 2, '0');
+
+        case 'd':
+          return String(_this3.$W);
+
+        case 'dd':
+          return getShort(locale.weekdaysMin, _this3.$W, weekdays, 2);
+
+        case 'ddd':
+          return getShort(locale.weekdaysShort, _this3.$W, weekdays, 3);
+
+        case 'dddd':
+          return weekdays[_this3.$W];
+
+        case 'H':
+          return String($H);
+
+        case 'HH':
+          return Utils.s($H, 2, '0');
+
+        case 'h':
+          return get$H(1);
+
+        case 'hh':
+          return get$H(2);
+
+        case 'a':
+          return meridiemFunc($H, $m, true);
+
+        case 'A':
+          return meridiemFunc($H, $m, false);
+
+        case 'm':
+          return String($m);
+
+        case 'mm':
+          return Utils.s($m, 2, '0');
+
+        case 's':
+          return String(_this3.$s);
+
+        case 'ss':
+          return Utils.s(_this3.$s, 2, '0');
+
+        case 'SSS':
+          return Utils.s(_this3.$ms, 3, '0');
+
+        case 'Z':
+          return zoneStr;
+        // 'ZZ' logic below
+
+        default:
+          break;
+      }
+
+      return null;
+    };
+
+    return str.replace(C.REGEX_FORMAT, function (match, $1) {
+      return $1 || matches(match) || zoneStr.replace(':', '');
+    }); // 'ZZ'
+  };
+
+  _proto.utcOffset = function utcOffset() {
+    // Because a bug at FF24, we're rounding the timezone offset around 15 minutes
+    // https://github.com/moment/moment/pull/1871
+    return -Math.round(this.$d.getTimezoneOffset() / 15) * 15;
+  };
+
+  _proto.diff = function diff(input, units, _float) {
+    var _this4 = this;
+
+    var unit = Utils.p(units);
+    var that = dayjs(input);
+    var zoneDelta = (that.utcOffset() - this.utcOffset()) * C.MILLISECONDS_A_MINUTE;
+    var diff = this - that;
+
+    var getMonth = function getMonth() {
+      return Utils.m(_this4, that);
+    };
+
+    var result;
+
+    switch (unit) {
+      case C.Y:
+        result = getMonth() / 12;
+        break;
+
+      case C.M:
+        result = getMonth();
+        break;
+
+      case C.Q:
+        result = getMonth() / 3;
+        break;
+
+      case C.W:
+        result = (diff - zoneDelta) / C.MILLISECONDS_A_WEEK;
+        break;
+
+      case C.D:
+        result = (diff - zoneDelta) / C.MILLISECONDS_A_DAY;
+        break;
+
+      case C.H:
+        result = diff / C.MILLISECONDS_A_HOUR;
+        break;
+
+      case C.MIN:
+        result = diff / C.MILLISECONDS_A_MINUTE;
+        break;
+
+      case C.S:
+        result = diff / C.MILLISECONDS_A_SECOND;
+        break;
+
+      default:
+        result = diff; // milliseconds
+
+        break;
+    }
+
+    return _float ? result : Utils.a(result);
+  };
+
+  _proto.daysInMonth = function daysInMonth() {
+    return this.endOf(C.M).$D;
+  };
+
+  _proto.$locale = function $locale() {
+    // get locale object
+    return Ls[this.$L];
+  };
+
+  _proto.locale = function locale(preset, object) {
+    if (!preset) return this.$L;
+    var that = this.clone();
+    var nextLocaleName = parseLocale(preset, object, true);
+    if (nextLocaleName) that.$L = nextLocaleName;
+    return that;
+  };
+
+  _proto.clone = function clone() {
+    return Utils.w(this.$d, this);
+  };
+
+  _proto.toDate = function toDate() {
+    return new Date(this.valueOf());
+  };
+
+  _proto.toJSON = function toJSON() {
+    return this.isValid() ? this.toISOString() : null;
+  };
+
+  _proto.toISOString = function toISOString() {
+    // ie 8 return
+    // new Dayjs(this.valueOf() + this.$d.getTimezoneOffset() * 60000)
+    // .format('YYYY-MM-DDTHH:mm:ss.SSS[Z]')
+    return this.$d.toISOString();
+  };
+
+  _proto.toString = function toString() {
+    return this.$d.toUTCString();
+  };
+
+  return Dayjs;
+}();
+
+var proto = Dayjs.prototype;
+dayjs.prototype = proto;
+[['$ms', C.MS], ['$s', C.S], ['$m', C.MIN], ['$H', C.H], ['$W', C.D], ['$M', C.M], ['$y', C.Y], ['$D', C.DATE]].forEach(function (g) {
+  proto[g[1]] = function (input) {
+    return this.$g(input, g[0], g[1]);
+  };
+});
+
+dayjs.extend = function (plugin, option) {
+  if (!plugin.$i) {
+    // install plugin only once
+    plugin(option, Dayjs, dayjs);
+    plugin.$i = true;
+  }
+
+  return dayjs;
+};
+
+dayjs.locale = parseLocale;
+dayjs.isDayjs = isDayjs;
+
+dayjs.unix = function (timestamp) {
+  return dayjs(timestamp * 1e3);
+};
+
+dayjs.en = Ls[L];
+dayjs.Ls = Ls;
+dayjs.p = {};
+export default dayjs;

+ 39 - 0
node_modules/dayjs/esm/locale/af.js

@@ -0,0 +1,39 @@
+// Afrikaans [af]
+import dayjs from '../index';
+var locale = {
+  name: 'af',
+  weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),
+  months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
+  monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
+  weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd, D MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'oor %s',
+    past: '%s gelede',
+    s: "'n paar sekondes",
+    m: "'n minuut",
+    mm: '%d minute',
+    h: "'n uur",
+    hh: '%d ure',
+    d: "'n dag",
+    dd: '%d dae',
+    M: "'n maand",
+    MM: '%d maande',
+    y: "'n jaar",
+    yy: '%d jaar'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 40 - 0
node_modules/dayjs/esm/locale/am.js

@@ -0,0 +1,40 @@
+// Amharic [am]
+import dayjs from '../index';
+var locale = {
+  name: 'am',
+  weekdays: 'እሑድ_ሰኞ_ማክሰኞ_ረቡዕ_ሐሙስ_አርብ_ቅዳሜ'.split('_'),
+  weekdaysShort: 'እሑድ_ሰኞ_ማክሰ_ረቡዕ_ሐሙስ_አርብ_ቅዳሜ'.split('_'),
+  weekdaysMin: 'እሑ_ሰኞ_ማክ_ረቡ_ሐሙ_አር_ቅዳ'.split('_'),
+  months: 'ጃንዋሪ_ፌብሯሪ_ማርች_ኤፕሪል_ሜይ_ጁን_ጁላይ_ኦገስት_ሴፕቴምበር_ኦክቶበር_ኖቬምበር_ዲሴምበር'.split('_'),
+  monthsShort: 'ጃንዋ_ፌብሯ_ማርች_ኤፕሪ_ሜይ_ጁን_ጁላይ_ኦገስ_ሴፕቴ_ኦክቶ_ኖቬም_ዲሴም'.split('_'),
+  weekStart: 1,
+  yearStart: 4,
+  relativeTime: {
+    future: 'በ%s',
+    past: '%s በፊት',
+    s: 'ጥቂት ሰከንዶች',
+    m: 'አንድ ደቂቃ',
+    mm: '%d ደቂቃዎች',
+    h: 'አንድ ሰዓት',
+    hh: '%d ሰዓታት',
+    d: 'አንድ ቀን',
+    dd: '%d ቀናት',
+    M: 'አንድ ወር',
+    MM: '%d ወራት',
+    y: 'አንድ ዓመት',
+    yy: '%d ዓመታት'
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'MMMM D ፣ YYYY',
+    LLL: 'MMMM D ፣ YYYY HH:mm',
+    LLLL: 'dddd ፣ MMMM D ፣ YYYY HH:mm'
+  },
+  ordinal: function ordinal(n) {
+    return n + "\u129B";
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 41 - 0
node_modules/dayjs/esm/locale/ar-dz.js

@@ -0,0 +1,41 @@
+// Arabic (Algeria) [ar-dz]
+import dayjs from '../index';
+var locale = {
+  name: 'ar-dz',
+  weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+  months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+  weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
+  monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+  weekdaysMin: 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D MMMM YYYY HH:mm'
+  },
+  meridiem: function meridiem(hour) {
+    return hour > 12 ? 'م' : 'ص';
+  },
+  relativeTime: {
+    future: 'في %s',
+    past: 'منذ %s',
+    s: 'ثوان',
+    m: 'دقيقة',
+    mm: '%d دقائق',
+    h: 'ساعة',
+    hh: '%d ساعات',
+    d: 'يوم',
+    dd: '%d أيام',
+    M: 'شهر',
+    MM: '%d أشهر',
+    y: 'سنة',
+    yy: '%d سنوات'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 42 - 0
node_modules/dayjs/esm/locale/ar-iq.js

@@ -0,0 +1,42 @@
+//  Arabic (Iraq) [ar-iq]
+import dayjs from '../index';
+var locale = {
+  name: 'ar-iq',
+  weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+  months: 'كانون الثاني_شباط_آذار_نيسان_أيار_حزيران_تموز_آب_أيلول_تشرين الأول_ تشرين الثاني_كانون الأول'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+  monthsShort: 'كانون الثاني_شباط_آذار_نيسان_أيار_حزيران_تموز_آب_أيلول_تشرين الأول_ تشرين الثاني_كانون الأول'.split('_'),
+  weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D MMMM YYYY HH:mm'
+  },
+  meridiem: function meridiem(hour) {
+    return hour > 12 ? 'م' : 'ص';
+  },
+  relativeTime: {
+    future: 'في %s',
+    past: 'منذ %s',
+    s: 'ثوان',
+    m: 'دقيقة',
+    mm: '%d دقائق',
+    h: 'ساعة',
+    hh: '%d ساعات',
+    d: 'يوم',
+    dd: '%d أيام',
+    M: 'شهر',
+    MM: '%d أشهر',
+    y: 'سنة',
+    yy: '%d سنوات'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 41 - 0
node_modules/dayjs/esm/locale/ar-kw.js

@@ -0,0 +1,41 @@
+// Arabic (Kuwait) [ar-kw]
+import dayjs from '../index';
+var locale = {
+  name: 'ar-kw',
+  weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+  months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
+  weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
+  monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
+  weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D MMMM YYYY HH:mm'
+  },
+  meridiem: function meridiem(hour) {
+    return hour > 12 ? 'م' : 'ص';
+  },
+  relativeTime: {
+    future: 'في %s',
+    past: 'منذ %s',
+    s: 'ثوان',
+    m: 'دقيقة',
+    mm: '%d دقائق',
+    h: 'ساعة',
+    hh: '%d ساعات',
+    d: 'يوم',
+    dd: '%d أيام',
+    M: 'شهر',
+    MM: '%d أشهر',
+    y: 'سنة',
+    yy: '%d سنوات'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 27 - 0
node_modules/dayjs/esm/locale/ar-ly.js

@@ -0,0 +1,27 @@
+// Arabic (Lybia) [ar-ly]
+import dayjs from '../index';
+var locale = {
+  name: 'ar-ly',
+  weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+  months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+  weekStart: 6,
+  weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+  monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+  weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  meridiem: function meridiem(hour) {
+    return hour > 12 ? 'م' : 'ص';
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'D/‏M/‏YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D MMMM YYYY HH:mm'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 42 - 0
node_modules/dayjs/esm/locale/ar-ma.js

@@ -0,0 +1,42 @@
+// Arabic (Morocco) [ar-ma]
+import dayjs from '../index';
+var locale = {
+  name: 'ar-ma',
+  weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+  months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
+  weekStart: 6,
+  weekdaysShort: 'احد_إثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
+  monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
+  weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D MMMM YYYY HH:mm'
+  },
+  meridiem: function meridiem(hour) {
+    return hour > 12 ? 'م' : 'ص';
+  },
+  relativeTime: {
+    future: 'في %s',
+    past: 'منذ %s',
+    s: 'ثوان',
+    m: 'دقيقة',
+    mm: '%d دقائق',
+    h: 'ساعة',
+    hh: '%d ساعات',
+    d: 'يوم',
+    dd: '%d أيام',
+    M: 'شهر',
+    MM: '%d أشهر',
+    y: 'سنة',
+    yy: '%d سنوات'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 41 - 0
node_modules/dayjs/esm/locale/ar-sa.js

@@ -0,0 +1,41 @@
+// Arabic (Saudi Arabia) [ar-sa]
+import dayjs from '../index';
+var locale = {
+  name: 'ar-sa',
+  weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+  months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+  weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+  monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+  weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D MMMM YYYY HH:mm'
+  },
+  meridiem: function meridiem(hour) {
+    return hour > 12 ? 'م' : 'ص';
+  },
+  relativeTime: {
+    future: 'في %s',
+    past: 'منذ %s',
+    s: 'ثوان',
+    m: 'دقيقة',
+    mm: '%d دقائق',
+    h: 'ساعة',
+    hh: '%d ساعات',
+    d: 'يوم',
+    dd: '%d أيام',
+    M: 'شهر',
+    MM: '%d أشهر',
+    y: 'سنة',
+    yy: '%d سنوات'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 42 - 0
node_modules/dayjs/esm/locale/ar-tn.js

@@ -0,0 +1,42 @@
+//  Arabic (Tunisia) [ar-tn]
+import dayjs from '../index';
+var locale = {
+  name: 'ar-tn',
+  weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+  months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+  monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
+  weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D MMMM YYYY HH:mm'
+  },
+  meridiem: function meridiem(hour) {
+    return hour > 12 ? 'م' : 'ص';
+  },
+  relativeTime: {
+    future: 'في %s',
+    past: 'منذ %s',
+    s: 'ثوان',
+    m: 'دقيقة',
+    mm: '%d دقائق',
+    h: 'ساعة',
+    hh: '%d ساعات',
+    d: 'يوم',
+    dd: '%d أيام',
+    M: 'شهر',
+    MM: '%d أشهر',
+    y: 'سنة',
+    yy: '%d سنوات'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 77 - 0
node_modules/dayjs/esm/locale/ar.js

@@ -0,0 +1,77 @@
+// Arabic [ar]
+import dayjs from '../index';
+var months = 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_');
+var symbolMap = {
+  1: '١',
+  2: '٢',
+  3: '٣',
+  4: '٤',
+  5: '٥',
+  6: '٦',
+  7: '٧',
+  8: '٨',
+  9: '٩',
+  0: '٠'
+};
+var numberMap = {
+  '١': '1',
+  '٢': '2',
+  '٣': '3',
+  '٤': '4',
+  '٥': '5',
+  '٦': '6',
+  '٧': '7',
+  '٨': '8',
+  '٩': '9',
+  '٠': '0'
+};
+var locale = {
+  name: 'ar',
+  weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+  weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+  weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+  months: months,
+  monthsShort: months,
+  weekStart: 6,
+  meridiem: function meridiem(hour) {
+    return hour > 12 ? 'م' : 'ص';
+  },
+  relativeTime: {
+    future: 'بعد %s',
+    past: 'منذ %s',
+    s: 'ثانية واحدة',
+    m: 'دقيقة واحدة',
+    mm: '%d دقائق',
+    h: 'ساعة واحدة',
+    hh: '%d ساعات',
+    d: 'يوم واحد',
+    dd: '%d أيام',
+    M: 'شهر واحد',
+    MM: '%d أشهر',
+    y: 'عام واحد',
+    yy: '%d أعوام'
+  },
+  preparse: function preparse(string) {
+    return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
+      return numberMap[match];
+    }).replace(/،/g, ',');
+  },
+  postformat: function postformat(string) {
+    return string.replace(/\d/g, function (match) {
+      return symbolMap[match];
+    }).replace(/,/g, '،');
+  },
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'D/‏M/‏YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D MMMM YYYY HH:mm'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/az.js

@@ -0,0 +1,39 @@
+// Azerbaijani [az]
+import dayjs from '../index';
+var locale = {
+  name: 'az',
+  weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),
+  weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
+  weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
+  months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),
+  monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
+  weekStart: 1,
+  formats: {
+    LT: 'H:mm',
+    LTS: 'H:mm:ss',
+    L: 'DD.MM.YYYY',
+    LL: 'D MMMM YYYY г.',
+    LLL: 'D MMMM YYYY г., H:mm',
+    LLLL: 'dddd, D MMMM YYYY г., H:mm'
+  },
+  relativeTime: {
+    future: '%s sonra',
+    past: '%s əvvəl',
+    s: 'bir neçə saniyə',
+    m: 'bir dəqiqə',
+    mm: '%d dəqiqə',
+    h: 'bir saat',
+    hh: '%d saat',
+    d: 'bir gün',
+    dd: '%d gün',
+    M: 'bir ay',
+    MM: '%d ay',
+    y: 'bir il',
+    yy: '%d il'
+  },
+  ordinal: function ordinal(n) {
+    return n;
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 24 - 0
node_modules/dayjs/esm/locale/be.js

@@ -0,0 +1,24 @@
+// Belarusian [be]
+import dayjs from '../index';
+var locale = {
+  name: 'be',
+  weekdays: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),
+  months: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
+  monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
+  weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD.MM.YYYY',
+    LL: 'D MMMM YYYY г.',
+    LLL: 'D MMMM YYYY г., HH:mm',
+    LLLL: 'dddd, D MMMM YYYY г., HH:mm'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 55 - 0
node_modules/dayjs/esm/locale/bg.js

@@ -0,0 +1,55 @@
+// Bulgarian [bg]
+import dayjs from '../index';
+var locale = {
+  name: 'bg',
+  weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),
+  weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
+  weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+  months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),
+  monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
+  weekStart: 1,
+  ordinal: function ordinal(n) {
+    var last2Digits = n % 100;
+
+    if (last2Digits > 10 && last2Digits < 20) {
+      return n + "-\u0442\u0438";
+    }
+
+    var lastDigit = n % 10;
+
+    if (lastDigit === 1) {
+      return n + "-\u0432\u0438";
+    } else if (lastDigit === 2) {
+      return n + "-\u0440\u0438";
+    } else if (lastDigit === 7 || lastDigit === 8) {
+      return n + "-\u043C\u0438";
+    }
+
+    return n + "-\u0442\u0438";
+  },
+  formats: {
+    LT: 'H:mm',
+    LTS: 'H:mm:ss',
+    L: 'D.MM.YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY H:mm',
+    LLLL: 'dddd, D MMMM YYYY H:mm'
+  },
+  relativeTime: {
+    future: 'след %s',
+    past: 'преди %s',
+    s: 'няколко секунди',
+    m: 'минута',
+    mm: '%d минути',
+    h: 'час',
+    hh: '%d часа',
+    d: 'ден',
+    dd: '%d дена',
+    M: 'месец',
+    MM: '%d месеца',
+    y: 'година',
+    yy: '%d години'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/bi.js

@@ -0,0 +1,39 @@
+// Bislama [bi]
+import dayjs from '../index';
+var locale = {
+  name: 'bi',
+  weekdays: 'Sande_Mande_Tusde_Wenesde_Tosde_Fraede_Sarade'.split('_'),
+  months: 'Januari_Februari_Maj_Eprel_Mei_Jun_Julae_Okis_Septemba_Oktoba_Novemba_Disemba'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'San_Man_Tus_Wen_Tos_Frae_Sar'.split('_'),
+  monthsShort: 'Jan_Feb_Maj_Epr_Mai_Jun_Jul_Oki_Sep_Okt_Nov_Dis'.split('_'),
+  weekdaysMin: 'San_Ma_Tu_We_To_Fr_Sar'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'h:mm A',
+    LTS: 'h:mm:ss A',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY h:mm A',
+    LLLL: 'dddd, D MMMM YYYY h:mm A'
+  },
+  relativeTime: {
+    future: 'lo %s',
+    past: '%s bifo',
+    s: 'sam seken',
+    m: 'wan minit',
+    mm: '%d minit',
+    h: 'wan haoa',
+    hh: '%d haoa',
+    d: 'wan dei',
+    dd: '%d dei',
+    M: 'wan manis',
+    MM: '%d manis',
+    y: 'wan yia',
+    yy: '%d yia'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/bm.js

@@ -0,0 +1,39 @@
+// Bambara [bm]
+import dayjs from '../index';
+var locale = {
+  name: 'bm',
+  weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
+  months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
+  monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
+  weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'MMMM [tile] D [san] YYYY',
+    LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
+    LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'
+  },
+  relativeTime: {
+    future: '%s kɔnɔ',
+    past: 'a bɛ %s bɔ',
+    s: 'sanga dama dama',
+    m: 'miniti kelen',
+    mm: 'miniti %d',
+    h: 'lɛrɛ kelen',
+    hh: 'lɛrɛ %d',
+    d: 'tile kelen',
+    dd: 'tile %d',
+    M: 'kalo kelen',
+    MM: 'kalo %d',
+    y: 'san kelen',
+    yy: 'san %d'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 81 - 0
node_modules/dayjs/esm/locale/bn-bd.js

@@ -0,0 +1,81 @@
+// Bengali (Bangladesh) [bn-bd]
+import dayjs from '../index';
+var symbolMap = {
+  1: '১',
+  2: '২',
+  3: '৩',
+  4: '৪',
+  5: '৫',
+  6: '৬',
+  7: '৭',
+  8: '৮',
+  9: '৯',
+  0: '০'
+};
+var numberMap = {
+  '১': '1',
+  '২': '2',
+  '৩': '3',
+  '৪': '4',
+  '৫': '5',
+  '৬': '6',
+  '৭': '7',
+  '৮': '8',
+  '৯': '9',
+  '০': '0'
+};
+var locale = {
+  name: 'bn-bd',
+  weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),
+  months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
+  weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
+  monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),
+  weekdaysMin: 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'),
+  weekStart: 0,
+  preparse: function preparse(string) {
+    return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
+      return numberMap[match];
+    });
+  },
+  postformat: function postformat(string) {
+    return string.replace(/\d/g, function (match) {
+      return symbolMap[match];
+    });
+  },
+  ordinal: function ordinal(n) {
+    var s = ['ই', 'লা', 'রা', 'ঠা', 'শে'];
+    var v = n % 100;
+    return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]";
+  },
+  formats: {
+    LT: 'A h:mm সময়',
+    LTS: 'A h:mm:ss সময়',
+    L: 'DD/MM/YYYY খ্রিস্টাব্দ',
+    LL: 'D MMMM YYYY খ্রিস্টাব্দ',
+    LLL: 'D MMMM YYYY খ্রিস্টাব্দ, A h:mm সময়',
+    LLLL: 'dddd, D MMMM YYYY খ্রিস্টাব্দ, A h:mm সময়'
+  },
+  meridiem: function meridiem(hour) {
+    return (
+      /* eslint-disable no-nested-ternary */
+      hour < 4 ? 'রাত' : hour < 6 ? 'ভোর' : hour < 12 ? 'সকাল' : hour < 15 ? 'দুপুর' : hour < 18 ? 'বিকাল' : hour < 20 ? 'সন্ধ্যা' : 'রাত'
+    );
+  },
+  relativeTime: {
+    future: '%s পরে',
+    past: '%s আগে',
+    s: 'কয়েক সেকেন্ড',
+    m: 'এক মিনিট',
+    mm: '%d মিনিট',
+    h: 'এক ঘন্টা',
+    hh: '%d ঘন্টা',
+    d: 'এক দিন',
+    dd: '%d দিন',
+    M: 'এক মাস',
+    MM: '%d মাস',
+    y: 'এক বছর',
+    yy: '%d বছর'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 72 - 0
node_modules/dayjs/esm/locale/bn.js

@@ -0,0 +1,72 @@
+// Bengali [bn]
+import dayjs from '../index';
+var symbolMap = {
+  1: '১',
+  2: '২',
+  3: '৩',
+  4: '৪',
+  5: '৫',
+  6: '৬',
+  7: '৭',
+  8: '৮',
+  9: '৯',
+  0: '০'
+};
+var numberMap = {
+  '১': '1',
+  '২': '2',
+  '৩': '3',
+  '৪': '4',
+  '৫': '5',
+  '৬': '6',
+  '৭': '7',
+  '৮': '8',
+  '৯': '9',
+  '০': '0'
+};
+var locale = {
+  name: 'bn',
+  weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),
+  months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
+  weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
+  monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),
+  weekdaysMin: 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'),
+  preparse: function preparse(string) {
+    return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
+      return numberMap[match];
+    });
+  },
+  postformat: function postformat(string) {
+    return string.replace(/\d/g, function (match) {
+      return symbolMap[match];
+    });
+  },
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'A h:mm সময়',
+    LTS: 'A h:mm:ss সময়',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY, A h:mm সময়',
+    LLLL: 'dddd, D MMMM YYYY, A h:mm সময়'
+  },
+  relativeTime: {
+    future: '%s পরে',
+    past: '%s আগে',
+    s: 'কয়েক সেকেন্ড',
+    m: 'এক মিনিট',
+    mm: '%d মিনিট',
+    h: 'এক ঘন্টা',
+    hh: '%d ঘন্টা',
+    d: 'এক দিন',
+    dd: '%d দিন',
+    M: 'এক মাস',
+    MM: '%d মাস',
+    y: 'এক বছর',
+    yy: '%d বছর'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 38 - 0
node_modules/dayjs/esm/locale/bo.js

@@ -0,0 +1,38 @@
+// Tibetan [bo]
+import dayjs from '../index';
+var locale = {
+  name: 'bo',
+  weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),
+  weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
+  weekdaysMin: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
+  months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
+  monthsShort: 'ཟླ་དང་པོ_ཟླ་གཉིས་པ_ཟླ་གསུམ་པ_ཟླ་བཞི་པ_ཟླ་ལྔ་པ_ཟླ་དྲུག་པ_ཟླ་བདུན་པ_ཟླ་བརྒྱད་པ_ཟླ་དགུ་པ_ཟླ་བཅུ་པ_ཟླ་བཅུ་གཅིག་པ_ཟླ་བཅུ་གཉིས་པ'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'A h:mm',
+    LTS: 'A h:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY, A h:mm',
+    LLLL: 'dddd, D MMMM YYYY, A h:mm'
+  },
+  relativeTime: {
+    future: '%s ལ་',
+    past: '%s སྔོན་ལ་',
+    s: 'ཏོག་ཙམ་',
+    m: 'སྐར་མ་གཅིག་',
+    mm: 'སྐར་མ་ %d',
+    h: 'ཆུ་ཚོད་གཅིག་',
+    hh: 'ཆུ་ཚོད་ %d',
+    d: 'ཉིན་གཅིག་',
+    dd: 'ཉིན་ %d',
+    M: 'ཟླ་བ་གཅིག་',
+    MM: 'ཟླ་བ་ %d',
+    y: 'ལོ་གཅིག་',
+    yy: 'ལོ་ %d'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 93 - 0
node_modules/dayjs/esm/locale/br.js

@@ -0,0 +1,93 @@
+// Breton [br]
+import dayjs from '../index';
+
+function lastNumber(number) {
+  if (number > 9) {
+    return lastNumber(number % 10);
+  }
+
+  return number;
+}
+
+function softMutation(text) {
+  var mutationTable = {
+    m: 'v',
+    b: 'v',
+    d: 'z'
+  };
+  return mutationTable[text.charAt(0)] + text.substring(1);
+}
+
+function mutation(text, number) {
+  if (number === 2) {
+    return softMutation(text);
+  }
+
+  return text;
+}
+
+function relativeTimeWithMutation(number, withoutSuffix, key) {
+  var format = {
+    mm: 'munutenn',
+    MM: 'miz',
+    dd: 'devezh'
+  };
+  return number + " " + mutation(format[key], number);
+}
+
+function specialMutationForYears(number) {
+  /* istanbul ignore next line */
+  switch (lastNumber(number)) {
+    case 1:
+    case 3:
+    case 4:
+    case 5:
+    case 9:
+      return number + " bloaz";
+
+    default:
+      return number + " vloaz";
+  }
+}
+
+var locale = {
+  name: 'br',
+  weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),
+  months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
+  monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
+  weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'h[e]mm A',
+    LTS: 'h[e]mm:ss A',
+    L: 'DD/MM/YYYY',
+    LL: 'D [a viz] MMMM YYYY',
+    LLL: 'D [a viz] MMMM YYYY h[e]mm A',
+    LLLL: 'dddd, D [a viz] MMMM YYYY h[e]mm A'
+  },
+  relativeTime: {
+    future: 'a-benn %s',
+    past: '%s ʼzo',
+    s: 'un nebeud segondennoù',
+    m: 'ur vunutenn',
+    mm: relativeTimeWithMutation,
+    h: 'un eur',
+    hh: '%d eur',
+    d: 'un devezh',
+    dd: relativeTimeWithMutation,
+    M: 'ur miz',
+    MM: relativeTimeWithMutation,
+    y: 'ur bloaz',
+    yy: specialMutationForYears
+  },
+  meridiem: function meridiem(hour) {
+    return hour < 12 ? 'a.m.' : 'g.m.';
+  } // a-raok merenn | goude merenn
+
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 24 - 0
node_modules/dayjs/esm/locale/bs.js

@@ -0,0 +1,24 @@
+// Bosnian [bs]
+import dayjs from '../index';
+var locale = {
+  name: 'bs',
+  weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
+  months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
+  monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),
+  weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'H:mm',
+    LTS: 'H:mm:ss',
+    L: 'DD.MM.YYYY',
+    LL: 'D. MMMM YYYY',
+    LLL: 'D. MMMM YYYY H:mm',
+    LLLL: 'dddd, D. MMMM YYYY H:mm'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 44 - 0
node_modules/dayjs/esm/locale/ca.js

@@ -0,0 +1,44 @@
+// Catalan [ca]
+import dayjs from '../index';
+var locale = {
+  name: 'ca',
+  weekdays: 'Diumenge_Dilluns_Dimarts_Dimecres_Dijous_Divendres_Dissabte'.split('_'),
+  weekdaysShort: 'Dg._Dl._Dt._Dc._Dj._Dv._Ds.'.split('_'),
+  weekdaysMin: 'Dg_Dl_Dt_Dc_Dj_Dv_Ds'.split('_'),
+  months: 'Gener_Febrer_Març_Abril_Maig_Juny_Juliol_Agost_Setembre_Octubre_Novembre_Desembre'.split('_'),
+  monthsShort: 'Gen._Febr._Març_Abr._Maig_Juny_Jul._Ag._Set._Oct._Nov._Des.'.split('_'),
+  weekStart: 1,
+  formats: {
+    LT: 'H:mm',
+    LTS: 'H:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM [de] YYYY',
+    LLL: 'D MMMM [de] YYYY [a les] H:mm',
+    LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',
+    ll: 'D MMM YYYY',
+    lll: 'D MMM YYYY, H:mm',
+    llll: 'ddd D MMM YYYY, H:mm'
+  },
+  relativeTime: {
+    future: 'd\'aquí %s',
+    past: 'fa %s',
+    s: 'uns segons',
+    m: 'un minut',
+    mm: '%d minuts',
+    h: 'una hora',
+    hh: '%d hores',
+    d: 'un dia',
+    dd: '%d dies',
+    M: 'un mes',
+    MM: '%d mesos',
+    y: 'un any',
+    yy: '%d anys'
+  },
+  ordinal: function ordinal(n) {
+    var ord;
+    if (n === 1 || n === 3) ord = 'r';else if (n === 2) ord = 'n';else if (n === 4) ord = 't';else ord = 'è';
+    return "" + n + ord;
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 120 - 0
node_modules/dayjs/esm/locale/cs.js

@@ -0,0 +1,120 @@
+// Czech [cs]
+import dayjs from '../index';
+
+function plural(n) {
+  return n > 1 && n < 5 && ~~(n / 10) !== 1; // eslint-disable-line
+}
+/* eslint-disable */
+
+
+function translate(number, withoutSuffix, key, isFuture) {
+  var result = number + " ";
+
+  switch (key) {
+    case 's':
+      // a few seconds / in a few seconds / a few seconds ago
+      return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';
+
+    case 'm':
+      // a minute / in a minute / a minute ago
+      return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';
+
+    case 'mm':
+      // 9 minutes / in 9 minutes / 9 minutes ago
+      if (withoutSuffix || isFuture) {
+        return result + (plural(number) ? 'minuty' : 'minut');
+      }
+
+      return result + "minutami";
+
+    case 'h':
+      // an hour / in an hour / an hour ago
+      return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
+
+    case 'hh':
+      // 9 hours / in 9 hours / 9 hours ago
+      if (withoutSuffix || isFuture) {
+        return result + (plural(number) ? 'hodiny' : 'hodin');
+      }
+
+      return result + "hodinami";
+
+    case 'd':
+      // a day / in a day / a day ago
+      return withoutSuffix || isFuture ? 'den' : 'dnem';
+
+    case 'dd':
+      // 9 days / in 9 days / 9 days ago
+      if (withoutSuffix || isFuture) {
+        return result + (plural(number) ? 'dny' : 'dní');
+      }
+
+      return result + "dny";
+
+    case 'M':
+      // a month / in a month / a month ago
+      return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';
+
+    case 'MM':
+      // 9 months / in 9 months / 9 months ago
+      if (withoutSuffix || isFuture) {
+        return result + (plural(number) ? 'měsíce' : 'měsíců');
+      }
+
+      return result + "m\u011Bs\xEDci";
+
+    case 'y':
+      // a year / in a year / a year ago
+      return withoutSuffix || isFuture ? 'rok' : 'rokem';
+
+    case 'yy':
+      // 9 years / in 9 years / 9 years ago
+      if (withoutSuffix || isFuture) {
+        return result + (plural(number) ? 'roky' : 'let');
+      }
+
+      return result + "lety";
+  }
+}
+/* eslint-enable */
+
+
+var locale = {
+  name: 'cs',
+  weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
+  weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),
+  weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),
+  months: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),
+  monthsShort: 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),
+  weekStart: 1,
+  yearStart: 4,
+  ordinal: function ordinal(n) {
+    return n + ".";
+  },
+  formats: {
+    LT: 'H:mm',
+    LTS: 'H:mm:ss',
+    L: 'DD.MM.YYYY',
+    LL: 'D. MMMM YYYY',
+    LLL: 'D. MMMM YYYY H:mm',
+    LLLL: 'dddd D. MMMM YYYY H:mm',
+    l: 'D. M. YYYY'
+  },
+  relativeTime: {
+    future: 'za %s',
+    past: 'před %s',
+    s: translate,
+    m: translate,
+    mm: translate,
+    h: translate,
+    hh: translate,
+    d: translate,
+    dd: translate,
+    M: translate,
+    MM: translate,
+    y: translate,
+    yy: translate
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 24 - 0
node_modules/dayjs/esm/locale/cv.js

@@ -0,0 +1,24 @@
+// Chuvash [cv]
+import dayjs from '../index';
+var locale = {
+  name: 'cv',
+  weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),
+  months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
+  monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
+  weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD-MM-YYYY',
+    LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
+    LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
+    LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/cy.js

@@ -0,0 +1,39 @@
+// Welsh [cy]
+import dayjs from '../index';
+var locale = {
+  name: 'cy',
+  weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),
+  months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
+  monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
+  weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd, D MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'mewn %s',
+    past: '%s yn ôl',
+    s: 'ychydig eiliadau',
+    m: 'munud',
+    mm: '%d munud',
+    h: 'awr',
+    hh: '%d awr',
+    d: 'diwrnod',
+    dd: '%d diwrnod',
+    M: 'mis',
+    MM: '%d mis',
+    y: 'blwyddyn',
+    yy: '%d flynedd'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 40 - 0
node_modules/dayjs/esm/locale/da.js

@@ -0,0 +1,40 @@
+// Danish [da]
+import dayjs from '../index';
+var locale = {
+  name: 'da',
+  weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
+  weekdaysShort: 'søn._man._tirs._ons._tors._fre._lør.'.split('_'),
+  weekdaysMin: 'sø._ma._ti._on._to._fr._lø.'.split('_'),
+  months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
+  monthsShort: 'jan._feb._mar._apr._maj_juni_juli_aug._sept._okt._nov._dec.'.split('_'),
+  weekStart: 1,
+  yearStart: 4,
+  ordinal: function ordinal(n) {
+    return n + ".";
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD.MM.YYYY',
+    LL: 'D. MMMM YYYY',
+    LLL: 'D. MMMM YYYY HH:mm',
+    LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'
+  },
+  relativeTime: {
+    future: 'om %s',
+    past: '%s siden',
+    s: 'få sekunder',
+    m: 'et minut',
+    mm: '%d minutter',
+    h: 'en time',
+    hh: '%d timer',
+    d: 'en dag',
+    dd: '%d dage',
+    M: 'en måned',
+    MM: '%d måneder',
+    y: 'et år',
+    yy: '%d år'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 63 - 0
node_modules/dayjs/esm/locale/de-at.js

@@ -0,0 +1,63 @@
+// German (Austria) [de-at]
+import dayjs from '../index';
+var texts = {
+  s: 'ein paar Sekunden',
+  m: ['eine Minute', 'einer Minute'],
+  mm: '%d Minuten',
+  h: ['eine Stunde', 'einer Stunde'],
+  hh: '%d Stunden',
+  d: ['ein Tag', 'einem Tag'],
+  dd: ['%d Tage', '%d Tagen'],
+  M: ['ein Monat', 'einem Monat'],
+  MM: ['%d Monate', '%d Monaten'],
+  y: ['ein Jahr', 'einem Jahr'],
+  yy: ['%d Jahre', '%d Jahren']
+};
+
+function relativeTimeFormatter(number, withoutSuffix, key) {
+  var l = texts[key];
+
+  if (Array.isArray(l)) {
+    l = l[withoutSuffix ? 0 : 1];
+  }
+
+  return l.replace('%d', number);
+}
+
+var locale = {
+  name: 'de-at',
+  weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
+  weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
+  weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
+  months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+  monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
+  ordinal: function ordinal(n) {
+    return n + ".";
+  },
+  weekStart: 1,
+  formats: {
+    LTS: 'HH:mm:ss',
+    LT: 'HH:mm',
+    L: 'DD.MM.YYYY',
+    LL: 'D. MMMM YYYY',
+    LLL: 'D. MMMM YYYY HH:mm',
+    LLLL: 'dddd, D. MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'in %s',
+    past: 'vor %s',
+    s: relativeTimeFormatter,
+    m: relativeTimeFormatter,
+    mm: relativeTimeFormatter,
+    h: relativeTimeFormatter,
+    hh: relativeTimeFormatter,
+    d: relativeTimeFormatter,
+    dd: relativeTimeFormatter,
+    M: relativeTimeFormatter,
+    MM: relativeTimeFormatter,
+    y: relativeTimeFormatter,
+    yy: relativeTimeFormatter
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 63 - 0
node_modules/dayjs/esm/locale/de-ch.js

@@ -0,0 +1,63 @@
+// German (Switzerland) [de-ch]
+import dayjs from '../index';
+var texts = {
+  s: 'ein paar Sekunden',
+  m: ['eine Minute', 'einer Minute'],
+  mm: '%d Minuten',
+  h: ['eine Stunde', 'einer Stunde'],
+  hh: '%d Stunden',
+  d: ['ein Tag', 'einem Tag'],
+  dd: ['%d Tage', '%d Tagen'],
+  M: ['ein Monat', 'einem Monat'],
+  MM: ['%d Monate', '%d Monaten'],
+  y: ['ein Jahr', 'einem Jahr'],
+  yy: ['%d Jahre', '%d Jahren']
+};
+
+function relativeTimeFormatter(number, withoutSuffix, key) {
+  var l = texts[key];
+
+  if (Array.isArray(l)) {
+    l = l[withoutSuffix ? 0 : 1];
+  }
+
+  return l.replace('%d', number);
+}
+
+var locale = {
+  name: 'de-ch',
+  weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
+  weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
+  weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
+  months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+  monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
+  ordinal: function ordinal(n) {
+    return n + ".";
+  },
+  weekStart: 1,
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD.MM.YYYY',
+    LL: 'D. MMMM YYYY',
+    LLL: 'D. MMMM YYYY HH:mm',
+    LLLL: 'dddd, D. MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'in %s',
+    past: 'vor %s',
+    s: relativeTimeFormatter,
+    m: relativeTimeFormatter,
+    mm: relativeTimeFormatter,
+    h: relativeTimeFormatter,
+    hh: relativeTimeFormatter,
+    d: relativeTimeFormatter,
+    dd: relativeTimeFormatter,
+    M: relativeTimeFormatter,
+    MM: relativeTimeFormatter,
+    y: relativeTimeFormatter,
+    yy: relativeTimeFormatter
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 64 - 0
node_modules/dayjs/esm/locale/de.js

@@ -0,0 +1,64 @@
+// German [de]
+import dayjs from '../index';
+var texts = {
+  s: 'ein paar Sekunden',
+  m: ['eine Minute', 'einer Minute'],
+  mm: '%d Minuten',
+  h: ['eine Stunde', 'einer Stunde'],
+  hh: '%d Stunden',
+  d: ['ein Tag', 'einem Tag'],
+  dd: ['%d Tage', '%d Tagen'],
+  M: ['ein Monat', 'einem Monat'],
+  MM: ['%d Monate', '%d Monaten'],
+  y: ['ein Jahr', 'einem Jahr'],
+  yy: ['%d Jahre', '%d Jahren']
+};
+
+function relativeTimeFormatter(number, withoutSuffix, key) {
+  var l = texts[key];
+
+  if (Array.isArray(l)) {
+    l = l[withoutSuffix ? 0 : 1];
+  }
+
+  return l.replace('%d', number);
+}
+
+var locale = {
+  name: 'de',
+  weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
+  weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
+  weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
+  months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
+  monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.'.split('_'),
+  ordinal: function ordinal(n) {
+    return n + ".";
+  },
+  weekStart: 1,
+  yearStart: 4,
+  formats: {
+    LTS: 'HH:mm:ss',
+    LT: 'HH:mm',
+    L: 'DD.MM.YYYY',
+    LL: 'D. MMMM YYYY',
+    LLL: 'D. MMMM YYYY HH:mm',
+    LLLL: 'dddd, D. MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'in %s',
+    past: 'vor %s',
+    s: relativeTimeFormatter,
+    m: relativeTimeFormatter,
+    mm: relativeTimeFormatter,
+    h: relativeTimeFormatter,
+    hh: relativeTimeFormatter,
+    d: relativeTimeFormatter,
+    dd: relativeTimeFormatter,
+    M: relativeTimeFormatter,
+    MM: relativeTimeFormatter,
+    y: relativeTimeFormatter,
+    yy: relativeTimeFormatter
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/dv.js

@@ -0,0 +1,39 @@
+// Maldivian [dv]
+import dayjs from '../index';
+var locale = {
+  name: 'dv',
+  weekdays: 'އާދިއްތަ_ހޯމަ_އަންގާރަ_ބުދަ_ބުރާސްފަތި_ހުކުރު_ހޮނިހިރު'.split('_'),
+  months: 'ޖެނުއަރީ_ފެބްރުއަރީ_މާރިޗު_އޭޕްރީލު_މޭ_ޖޫން_ޖުލައި_އޯގަސްޓު_ސެޕްޓެމްބަރު_އޮކްޓޯބަރު_ނޮވެމްބަރު_ޑިސެމްބަރު'.split('_'),
+  weekStart: 7,
+  weekdaysShort: 'އާދިއްތަ_ހޯމަ_އަންގާރަ_ބުދަ_ބުރާސްފަތި_ހުކުރު_ހޮނިހިރު'.split('_'),
+  monthsShort: 'ޖެނުއަރީ_ފެބްރުއަރީ_މާރިޗު_އޭޕްރީލު_މޭ_ޖޫން_ޖުލައި_އޯގަސްޓު_ސެޕްޓެމްބަރު_އޮކްޓޯބަރު_ނޮވެމްބަރު_ޑިސެމްބަރު'.split('_'),
+  weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'D/M/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'ތެރޭގައި %s',
+    past: 'ކުރިން %s',
+    s: 'ސިކުންތުކޮޅެއް',
+    m: 'މިނިޓެއް',
+    mm: 'މިނިޓު %d',
+    h: 'ގަޑިއިރެއް',
+    hh: 'ގަޑިއިރު %d',
+    d: 'ދުވަހެއް',
+    dd: 'ދުވަސް %d',
+    M: 'މަހެއް',
+    MM: 'މަސް %d',
+    y: 'އަހަރެއް',
+    yy: 'އަހަރު %d'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/el.js

@@ -0,0 +1,39 @@
+// Greek [el]
+import dayjs from '../index';
+var locale = {
+  name: 'el',
+  weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),
+  weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
+  weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
+  months: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),
+  monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαι_Ιουν_Ιουλ_Αυγ_Σεπτ_Οκτ_Νοε_Δεκ'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  weekStart: 1,
+  relativeTime: {
+    future: 'σε %s',
+    past: 'πριν %s',
+    s: 'μερικά δευτερόλεπτα',
+    m: 'ένα λεπτό',
+    mm: '%d λεπτά',
+    h: 'μία ώρα',
+    hh: '%d ώρες',
+    d: 'μία μέρα',
+    dd: '%d μέρες',
+    M: 'ένα μήνα',
+    MM: '%d μήνες',
+    y: 'ένα χρόνο',
+    yy: '%d χρόνια'
+  },
+  formats: {
+    LT: 'h:mm A',
+    LTS: 'h:mm:ss A',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY h:mm A',
+    LLLL: 'dddd, D MMMM YYYY h:mm A'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/en-au.js

@@ -0,0 +1,39 @@
+// English (Australia) [en-au]
+import dayjs from '../index';
+var locale = {
+  name: 'en-au',
+  weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+  months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+  monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+  weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'h:mm A',
+    LTS: 'h:mm:ss A',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY h:mm A',
+    LLLL: 'dddd, D MMMM YYYY h:mm A'
+  },
+  relativeTime: {
+    future: 'in %s',
+    past: '%s ago',
+    s: 'a few seconds',
+    m: 'a minute',
+    mm: '%d minutes',
+    h: 'an hour',
+    hh: '%d hours',
+    d: 'a day',
+    dd: '%d days',
+    M: 'a month',
+    MM: '%d months',
+    y: 'a year',
+    yy: '%d years'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 38 - 0
node_modules/dayjs/esm/locale/en-ca.js

@@ -0,0 +1,38 @@
+// English (Canada) [en-ca]
+import dayjs from '../index';
+var locale = {
+  name: 'en-ca',
+  weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+  months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+  weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+  monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+  weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'h:mm A',
+    LTS: 'h:mm:ss A',
+    L: 'YYYY-MM-DD',
+    LL: 'MMMM D, YYYY',
+    LLL: 'MMMM D, YYYY h:mm A',
+    LLLL: 'dddd, MMMM D, YYYY h:mm A'
+  },
+  relativeTime: {
+    future: 'in %s',
+    past: '%s ago',
+    s: 'a few seconds',
+    m: 'a minute',
+    mm: '%d minutes',
+    h: 'an hour',
+    hh: '%d hours',
+    d: 'a day',
+    dd: '%d days',
+    M: 'a month',
+    MM: '%d months',
+    y: 'a year',
+    yy: '%d years'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 42 - 0
node_modules/dayjs/esm/locale/en-gb.js

@@ -0,0 +1,42 @@
+// English (United Kingdom) [en-gb]
+import dayjs from '../index';
+var locale = {
+  name: 'en-gb',
+  weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+  weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+  weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+  months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+  monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+  weekStart: 1,
+  yearStart: 4,
+  relativeTime: {
+    future: 'in %s',
+    past: '%s ago',
+    s: 'a few seconds',
+    m: 'a minute',
+    mm: '%d minutes',
+    h: 'an hour',
+    hh: '%d hours',
+    d: 'a day',
+    dd: '%d days',
+    M: 'a month',
+    MM: '%d months',
+    y: 'a year',
+    yy: '%d years'
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd, D MMMM YYYY HH:mm'
+  },
+  ordinal: function ordinal(n) {
+    var s = ['th', 'st', 'nd', 'rd'];
+    var v = n % 100;
+    return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]";
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/en-ie.js

@@ -0,0 +1,39 @@
+// English (Ireland) [en-ie]
+import dayjs from '../index';
+var locale = {
+  name: 'en-ie',
+  weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+  months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+  monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+  weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'in %s',
+    past: '%s ago',
+    s: 'a few seconds',
+    m: 'a minute',
+    mm: '%d minutes',
+    h: 'an hour',
+    hh: '%d hours',
+    d: 'a day',
+    dd: '%d days',
+    M: 'a month',
+    MM: '%d months',
+    y: 'a year',
+    yy: '%d years'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 38 - 0
node_modules/dayjs/esm/locale/en-il.js

@@ -0,0 +1,38 @@
+// English (Israel) [en-il]
+import dayjs from '../index';
+var locale = {
+  name: 'en-il',
+  weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+  months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+  weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+  monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+  weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd, D MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'in %s',
+    past: '%s ago',
+    s: 'a few seconds',
+    m: 'a minute',
+    mm: '%d minutes',
+    h: 'an hour',
+    hh: '%d hours',
+    d: 'a day',
+    dd: '%d days',
+    M: 'a month',
+    MM: '%d months',
+    y: 'a year',
+    yy: '%d years'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 42 - 0
node_modules/dayjs/esm/locale/en-in.js

@@ -0,0 +1,42 @@
+// English (India) [en-in]
+import dayjs from '../index';
+var locale = {
+  name: 'en-in',
+  weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+  weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+  weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+  months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+  monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+  weekStart: 1,
+  yearStart: 4,
+  relativeTime: {
+    future: 'in %s',
+    past: '%s ago',
+    s: 'a few seconds',
+    m: 'a minute',
+    mm: '%d minutes',
+    h: 'an hour',
+    hh: '%d hours',
+    d: 'a day',
+    dd: '%d days',
+    M: 'a month',
+    MM: '%d months',
+    y: 'a year',
+    yy: '%d years'
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd, D MMMM YYYY HH:mm'
+  },
+  ordinal: function ordinal(n) {
+    var s = ['th', 'st', 'nd', 'rd'];
+    var v = n % 100;
+    return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]";
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 41 - 0
node_modules/dayjs/esm/locale/en-nz.js

@@ -0,0 +1,41 @@
+// English (New Zealand) [en-nz]
+import dayjs from '../index';
+var locale = {
+  name: 'en-nz',
+  weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+  months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+  monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+  weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+  ordinal: function ordinal(n) {
+    var s = ['th', 'st', 'nd', 'rd'];
+    var v = n % 100;
+    return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]";
+  },
+  formats: {
+    LT: 'h:mm A',
+    LTS: 'h:mm:ss A',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY h:mm A',
+    LLLL: 'dddd, D MMMM YYYY h:mm A'
+  },
+  relativeTime: {
+    future: 'in %s',
+    past: '%s ago',
+    s: 'a few seconds',
+    m: 'a minute',
+    mm: '%d minutes',
+    h: 'an hour',
+    hh: '%d hours',
+    d: 'a day',
+    dd: '%d days',
+    M: 'a month',
+    MM: '%d months',
+    y: 'a year',
+    yy: '%d years'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/en-sg.js

@@ -0,0 +1,39 @@
+// English (Singapore) [en-sg]
+import dayjs from '../index';
+var locale = {
+  name: 'en-sg',
+  weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+  months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+  monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+  weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd, D MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'in %s',
+    past: '%s ago',
+    s: 'a few seconds',
+    m: 'a minute',
+    mm: '%d minutes',
+    h: 'an hour',
+    hh: '%d hours',
+    d: 'a day',
+    dd: '%d days',
+    M: 'a month',
+    MM: '%d months',
+    y: 'a year',
+    yy: '%d years'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 42 - 0
node_modules/dayjs/esm/locale/en-tt.js

@@ -0,0 +1,42 @@
+// English (Trinidad & Tobago) [en-tt]
+import dayjs from '../index';
+var locale = {
+  name: 'en-tt',
+  weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+  weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+  weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+  months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+  monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+  weekStart: 1,
+  yearStart: 4,
+  relativeTime: {
+    future: 'in %s',
+    past: '%s ago',
+    s: 'a few seconds',
+    m: 'a minute',
+    mm: '%d minutes',
+    h: 'an hour',
+    hh: '%d hours',
+    d: 'a day',
+    dd: '%d days',
+    M: 'a month',
+    MM: '%d months',
+    y: 'a year',
+    yy: '%d years'
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd, D MMMM YYYY HH:mm'
+  },
+  ordinal: function ordinal(n) {
+    var s = ['th', 'st', 'nd', 'rd'];
+    var v = n % 100;
+    return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]";
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 12 - 0
node_modules/dayjs/esm/locale/en.js

@@ -0,0 +1,12 @@
+// English [en]
+// We don't need weekdaysShort, weekdaysMin, monthsShort in en.js locale
+export default {
+  name: 'en',
+  weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
+  months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
+  ordinal: function ordinal(n) {
+    var s = ['th', 'st', 'nd', 'rd'];
+    var v = n % 100;
+    return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]";
+  }
+};

+ 39 - 0
node_modules/dayjs/esm/locale/eo.js

@@ -0,0 +1,39 @@
+// Esperanto [eo]
+import dayjs from '../index';
+var locale = {
+  name: 'eo',
+  weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),
+  months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
+  monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),
+  weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'YYYY-MM-DD',
+    LL: 'D[-a de] MMMM, YYYY',
+    LLL: 'D[-a de] MMMM, YYYY HH:mm',
+    LLLL: 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'post %s',
+    past: 'antaŭ %s',
+    s: 'sekundoj',
+    m: 'minuto',
+    mm: '%d minutoj',
+    h: 'horo',
+    hh: '%d horoj',
+    d: 'tago',
+    dd: '%d tagoj',
+    M: 'monato',
+    MM: '%d monatoj',
+    y: 'jaro',
+    yy: '%d jaroj'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/es-do.js

@@ -0,0 +1,39 @@
+// Spanish (Dominican Republic) [es-do]
+import dayjs from '../index';
+var locale = {
+  name: 'es-do',
+  weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
+  weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
+  weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
+  months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
+  monthsShort: 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
+  weekStart: 1,
+  relativeTime: {
+    future: 'en %s',
+    past: 'hace %s',
+    s: 'unos segundos',
+    m: 'un minuto',
+    mm: '%d minutos',
+    h: 'una hora',
+    hh: '%d horas',
+    d: 'un día',
+    dd: '%d días',
+    M: 'un mes',
+    MM: '%d meses',
+    y: 'un año',
+    yy: '%d años'
+  },
+  ordinal: function ordinal(n) {
+    return n + "\xBA";
+  },
+  formats: {
+    LT: 'h:mm A',
+    LTS: 'h:mm:ss A',
+    L: 'DD/MM/YYYY',
+    LL: 'D [de] MMMM [de] YYYY',
+    LLL: 'D [de] MMMM [de] YYYY h:mm A',
+    LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 38 - 0
node_modules/dayjs/esm/locale/es-mx.js

@@ -0,0 +1,38 @@
+// Spanish (Mexico) [es-mx]
+import dayjs from '../index';
+var locale = {
+  name: 'es-mx',
+  weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
+  weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
+  weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
+  months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
+  monthsShort: 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
+  relativeTime: {
+    future: 'en %s',
+    past: 'hace %s',
+    s: 'unos segundos',
+    m: 'un minuto',
+    mm: '%d minutos',
+    h: 'una hora',
+    hh: '%d horas',
+    d: 'un día',
+    dd: '%d días',
+    M: 'un mes',
+    MM: '%d meses',
+    y: 'un año',
+    yy: '%d años'
+  },
+  ordinal: function ordinal(n) {
+    return n + "\xBA";
+  },
+  formats: {
+    LT: 'H:mm',
+    LTS: 'H:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D [de] MMMM [de] YYYY',
+    LLL: 'D [de] MMMM [de] YYYY H:mm',
+    LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/es-pr.js

@@ -0,0 +1,39 @@
+// Spanish (Puerto Rico) [es-PR]
+import dayjs from '../index';
+var locale = {
+  name: 'es-pr',
+  monthsShort: 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
+  weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
+  weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
+  weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
+  months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
+  weekStart: 1,
+  formats: {
+    LT: 'h:mm A',
+    LTS: 'h:mm:ss A',
+    L: 'MM/DD/YYYY',
+    LL: 'D [de] MMMM [de] YYYY',
+    LLL: 'D [de] MMMM [de] YYYY h:mm A',
+    LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'
+  },
+  relativeTime: {
+    future: 'en %s',
+    past: 'hace %s',
+    s: 'unos segundos',
+    m: 'un minuto',
+    mm: '%d minutos',
+    h: 'una hora',
+    hh: '%d horas',
+    d: 'un día',
+    dd: '%d días',
+    M: 'un mes',
+    MM: '%d meses',
+    y: 'un año',
+    yy: '%d años'
+  },
+  ordinal: function ordinal(n) {
+    return n + "\xBA";
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 38 - 0
node_modules/dayjs/esm/locale/es-us.js

@@ -0,0 +1,38 @@
+// Spanish (United States) [es-us]
+import dayjs from '../index';
+var locale = {
+  name: 'es-us',
+  weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
+  weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
+  weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
+  months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
+  monthsShort: 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
+  relativeTime: {
+    future: 'en %s',
+    past: 'hace %s',
+    s: 'unos segundos',
+    m: 'un minuto',
+    mm: '%d minutos',
+    h: 'una hora',
+    hh: '%d horas',
+    d: 'un día',
+    dd: '%d días',
+    M: 'un mes',
+    MM: '%d meses',
+    y: 'un año',
+    yy: '%d años'
+  },
+  ordinal: function ordinal(n) {
+    return n + "\xBA";
+  },
+  formats: {
+    LT: 'h:mm A',
+    LTS: 'h:mm:ss A',
+    L: 'MM/DD/YYYY',
+    LL: 'D [de] MMMM [de] YYYY',
+    LLL: 'D [de] MMMM [de] YYYY h:mm A',
+    LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/es.js

@@ -0,0 +1,39 @@
+// Spanish [es]
+import dayjs from '../index';
+var locale = {
+  name: 'es',
+  monthsShort: 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
+  weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
+  weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
+  weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
+  months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
+  weekStart: 1,
+  formats: {
+    LT: 'H:mm',
+    LTS: 'H:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D [de] MMMM [de] YYYY',
+    LLL: 'D [de] MMMM [de] YYYY H:mm',
+    LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'
+  },
+  relativeTime: {
+    future: 'en %s',
+    past: 'hace %s',
+    s: 'unos segundos',
+    m: 'un minuto',
+    mm: '%d minutos',
+    h: 'una hora',
+    hh: '%d horas',
+    d: 'un día',
+    dd: '%d días',
+    M: 'un mes',
+    MM: '%d meses',
+    y: 'un año',
+    yy: '%d años'
+  },
+  ordinal: function ordinal(n) {
+    return n + "\xBA";
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 65 - 0
node_modules/dayjs/esm/locale/et.js

@@ -0,0 +1,65 @@
+// Estonian [et]
+import dayjs from '../index';
+
+function relativeTimeWithTense(number, withoutSuffix, key, isFuture) {
+  var format = {
+    s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
+    m: ['ühe minuti', 'üks minut'],
+    mm: ['%d minuti', '%d minutit'],
+    h: ['ühe tunni', 'tund aega', 'üks tund'],
+    hh: ['%d tunni', '%d tundi'],
+    d: ['ühe päeva', 'üks päev'],
+    M: ['kuu aja', 'kuu aega', 'üks kuu'],
+    MM: ['%d kuu', '%d kuud'],
+    y: ['ühe aasta', 'aasta', 'üks aasta'],
+    yy: ['%d aasta', '%d aastat']
+  };
+
+  if (withoutSuffix) {
+    return (format[key][2] ? format[key][2] : format[key][1]).replace('%d', number);
+  }
+
+  return (isFuture ? format[key][0] : format[key][1]).replace('%d', number);
+}
+
+var locale = {
+  name: 'et',
+  // Estonian
+  weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),
+  // Note weekdays are not capitalized in Estonian
+  weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),
+  // There is no short form of weekdays in Estonian except this 1 letter format so it is used for both 'weekdaysShort' and 'weekdaysMin'
+  weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),
+  months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),
+  // Note month names are not capitalized in Estonian
+  monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
+  ordinal: function ordinal(n) {
+    return n + ".";
+  },
+  weekStart: 1,
+  relativeTime: {
+    future: '%s pärast',
+    past: '%s tagasi',
+    s: relativeTimeWithTense,
+    m: relativeTimeWithTense,
+    mm: relativeTimeWithTense,
+    h: relativeTimeWithTense,
+    hh: relativeTimeWithTense,
+    d: relativeTimeWithTense,
+    dd: '%d päeva',
+    M: relativeTimeWithTense,
+    MM: relativeTimeWithTense,
+    y: relativeTimeWithTense,
+    yy: relativeTimeWithTense
+  },
+  formats: {
+    LT: 'H:mm',
+    LTS: 'H:mm:ss',
+    L: 'DD.MM.YYYY',
+    LL: 'D. MMMM YYYY',
+    LLL: 'D. MMMM YYYY H:mm',
+    LLLL: 'dddd, D. MMMM YYYY H:mm'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 43 - 0
node_modules/dayjs/esm/locale/eu.js

@@ -0,0 +1,43 @@
+// Basque [eu]
+import dayjs from '../index';
+var locale = {
+  name: 'eu',
+  weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),
+  months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),
+  monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),
+  weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'YYYY-MM-DD',
+    LL: 'YYYY[ko] MMMM[ren] D[a]',
+    LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',
+    LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
+    l: 'YYYY-M-D',
+    ll: 'YYYY[ko] MMM D[a]',
+    lll: 'YYYY[ko] MMM D[a] HH:mm',
+    llll: 'ddd, YYYY[ko] MMM D[a] HH:mm'
+  },
+  relativeTime: {
+    future: '%s barru',
+    past: 'duela %s',
+    s: 'segundo batzuk',
+    m: 'minutu bat',
+    mm: '%d minutu',
+    h: 'ordu bat',
+    hh: '%d ordu',
+    d: 'egun bat',
+    dd: '%d egun',
+    M: 'hilabete bat',
+    MM: '%d hilabete',
+    y: 'urte bat',
+    yy: '%d urte'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/fa.js

@@ -0,0 +1,39 @@
+// Persian [fa]
+import dayjs from '../index';
+var locale = {
+  name: 'fa',
+  weekdays: 'یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه'.split('_'),
+  weekdaysShort: "\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647_\u062F\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200C\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067E\u0646\u062C\u200C\u0634\u0646\u0628\u0647_\u062C\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split('_'),
+  weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),
+  weekStart: 6,
+  months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
+  monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd, D MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'در %s',
+    past: '%s پیش',
+    s: 'چند ثانیه',
+    m: 'یک دقیقه',
+    mm: '%d دقیقه',
+    h: 'یک ساعت',
+    hh: '%d ساعت',
+    d: 'یک روز',
+    dd: '%d روز',
+    M: 'یک ماه',
+    MM: '%d ماه',
+    y: 'یک سال',
+    yy: '%d سال'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 88 - 0
node_modules/dayjs/esm/locale/fi.js

@@ -0,0 +1,88 @@
+// Finnish [fi]
+import dayjs from '../index';
+
+function relativeTimeFormatter(number, withoutSuffix, key, isFuture) {
+  var past = {
+    s: 'muutama sekunti',
+    m: 'minuutti',
+    mm: '%d minuuttia',
+    h: 'tunti',
+    hh: '%d tuntia',
+    d: 'päivä',
+    dd: '%d päivää',
+    M: 'kuukausi',
+    MM: '%d kuukautta',
+    y: 'vuosi',
+    yy: '%d vuotta',
+    numbers: 'nolla_yksi_kaksi_kolme_neljä_viisi_kuusi_seitsemän_kahdeksan_yhdeksän'.split('_')
+  };
+  var future = {
+    s: 'muutaman sekunnin',
+    m: 'minuutin',
+    mm: '%d minuutin',
+    h: 'tunnin',
+    hh: '%d tunnin',
+    d: 'päivän',
+    dd: '%d päivän',
+    M: 'kuukauden',
+    MM: '%d kuukauden',
+    y: 'vuoden',
+    yy: '%d vuoden',
+    numbers: 'nollan_yhden_kahden_kolmen_neljän_viiden_kuuden_seitsemän_kahdeksan_yhdeksän'.split('_')
+  };
+  var words = isFuture && !withoutSuffix ? future : past;
+  var result = words[key];
+
+  if (number < 10) {
+    return result.replace('%d', words.numbers[number]);
+  }
+
+  return result.replace('%d', number);
+}
+
+var locale = {
+  name: 'fi',
+  // Finnish
+  weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
+  // Note weekdays are not capitalized in Finnish
+  weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),
+  // There is no short form of weekdays in Finnish except this 2 letter format so it is used for both 'weekdaysShort' and 'weekdaysMin'
+  weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),
+  months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
+  // Note month names are not capitalized in Finnish
+  monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
+  ordinal: function ordinal(n) {
+    return n + ".";
+  },
+  weekStart: 1,
+  yearStart: 4,
+  relativeTime: {
+    future: '%s päästä',
+    past: '%s sitten',
+    s: relativeTimeFormatter,
+    m: relativeTimeFormatter,
+    mm: relativeTimeFormatter,
+    h: relativeTimeFormatter,
+    hh: relativeTimeFormatter,
+    d: relativeTimeFormatter,
+    dd: relativeTimeFormatter,
+    M: relativeTimeFormatter,
+    MM: relativeTimeFormatter,
+    y: relativeTimeFormatter,
+    yy: relativeTimeFormatter
+  },
+  formats: {
+    LT: 'HH.mm',
+    LTS: 'HH.mm.ss',
+    L: 'DD.MM.YYYY',
+    LL: 'D. MMMM[ta] YYYY',
+    LLL: 'D. MMMM[ta] YYYY, [klo] HH.mm',
+    LLLL: 'dddd, D. MMMM[ta] YYYY, [klo] HH.mm',
+    l: 'D.M.YYYY',
+    ll: 'D. MMM YYYY',
+    lll: 'D. MMM YYYY, [klo] HH.mm',
+    llll: 'ddd, D. MMM YYYY, [klo] HH.mm'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/fo.js

@@ -0,0 +1,39 @@
+// Faroese [fo]
+import dayjs from '../index';
+var locale = {
+  name: 'fo',
+  weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),
+  months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
+  monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
+  weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D. MMMM, YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'um %s',
+    past: '%s síðani',
+    s: 'fá sekund',
+    m: 'ein minuttur',
+    mm: '%d minuttir',
+    h: 'ein tími',
+    hh: '%d tímar',
+    d: 'ein dagur',
+    dd: '%d dagar',
+    M: 'ein mánaður',
+    MM: '%d mánaðir',
+    y: 'eitt ár',
+    yy: '%d ár'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 38 - 0
node_modules/dayjs/esm/locale/fr-ca.js

@@ -0,0 +1,38 @@
+// French (Canada) [fr-ca]
+import dayjs from '../index';
+var locale = {
+  name: 'fr-ca',
+  weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+  months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
+  weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+  monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
+  weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'YYYY-MM-DD',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'dans %s',
+    past: 'il y a %s',
+    s: 'quelques secondes',
+    m: 'une minute',
+    mm: '%d minutes',
+    h: 'une heure',
+    hh: '%d heures',
+    d: 'un jour',
+    dd: '%d jours',
+    M: 'un mois',
+    MM: '%d mois',
+    y: 'un an',
+    yy: '%d ans'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/fr-ch.js

@@ -0,0 +1,39 @@
+// French (Switzerland) [fr-ch]
+import dayjs from '../index';
+var locale = {
+  name: 'fr-ch',
+  weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+  months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+  monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
+  weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD.MM.YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'dans %s',
+    past: 'il y a %s',
+    s: 'quelques secondes',
+    m: 'une minute',
+    mm: '%d minutes',
+    h: 'une heure',
+    hh: '%d heures',
+    d: 'un jour',
+    dd: '%d jours',
+    M: 'un mois',
+    MM: '%d mois',
+    y: 'un an',
+    yy: '%d ans'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 41 - 0
node_modules/dayjs/esm/locale/fr.js

@@ -0,0 +1,41 @@
+// French [fr]
+import dayjs from '../index';
+var locale = {
+  name: 'fr',
+  weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+  weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+  weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
+  months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
+  monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
+  weekStart: 1,
+  yearStart: 4,
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'dans %s',
+    past: 'il y a %s',
+    s: 'quelques secondes',
+    m: 'une minute',
+    mm: '%d minutes',
+    h: 'une heure',
+    hh: '%d heures',
+    d: 'un jour',
+    dd: '%d jours',
+    M: 'un mois',
+    MM: '%d mois',
+    y: 'un an',
+    yy: '%d ans'
+  },
+  ordinal: function ordinal(n) {
+    var o = n === 1 ? 'er' : '';
+    return "" + n + o;
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/fy.js

@@ -0,0 +1,39 @@
+// Frisian [fy]
+import dayjs from '../index';
+var locale = {
+  name: 'fy',
+  weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),
+  months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),
+  monthsShort: 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),
+  weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD-MM-YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd D MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'oer %s',
+    past: '%s lyn',
+    s: 'in pear sekonden',
+    m: 'ien minút',
+    mm: '%d minuten',
+    h: 'ien oere',
+    hh: '%d oeren',
+    d: 'ien dei',
+    dd: '%d dagen',
+    M: 'ien moanne',
+    MM: '%d moannen',
+    y: 'ien jier',
+    yy: '%d jierren'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 39 - 0
node_modules/dayjs/esm/locale/ga.js

@@ -0,0 +1,39 @@
+// Irish or Irish Gaelic [ga]
+import dayjs from '../index';
+var locale = {
+  name: 'ga',
+  weekdays: 'Dé Domhnaigh_Dé Luain_Dé Máirt_Dé Céadaoin_Déardaoin_Dé hAoine_Dé Satharn'.split('_'),
+  months: 'Eanáir_Feabhra_Márta_Aibreán_Bealtaine_Méitheamh_Iúil_Lúnasa_Meán Fómhair_Deaireadh Fómhair_Samhain_Nollaig'.split('_'),
+  weekStart: 1,
+  weekdaysShort: 'Dom_Lua_Mái_Céa_Déa_hAo_Sat'.split('_'),
+  monthsShort: 'Eaná_Feab_Márt_Aibr_Beal_Méit_Iúil_Lúna_Meán_Deai_Samh_Noll'.split('_'),
+  weekdaysMin: 'Do_Lu_Má_Ce_Dé_hA_Sa'.split('_'),
+  ordinal: function ordinal(n) {
+    return n;
+  },
+  formats: {
+    LT: 'HH:mm',
+    LTS: 'HH:mm:ss',
+    L: 'DD/MM/YYYY',
+    LL: 'D MMMM YYYY',
+    LLL: 'D MMMM YYYY HH:mm',
+    LLLL: 'dddd, D MMMM YYYY HH:mm'
+  },
+  relativeTime: {
+    future: 'i %s',
+    past: '%s ó shin',
+    s: 'cúpla soicind',
+    m: 'nóiméad',
+    mm: '%d nóiméad',
+    h: 'uair an chloig',
+    hh: '%d uair an chloig',
+    d: 'lá',
+    dd: '%d lá',
+    M: 'mí',
+    MM: '%d mí',
+    y: 'bliain',
+    yy: '%d bliain'
+  }
+};
+dayjs.locale(locale, null, true);
+export default locale;

+ 0 - 0
node_modules/dayjs/esm/locale/gd.js


Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels