(defaultOptions) // Toast选项
+ const toastOptionKey = selector ? toastDefaultOptionKey + selector : toastDefaultOptionKey
+ provide(toastOptionKey, toastOption)
+
+ const createMethod = (toastOptions: ToastOptions) => {
+ // 优先级:options->toastOptions->defaultOptions
+ return (options: ToastOptions | string) => {
+ return show(deepMerge(toastOptions, typeof options === 'string' ? { msg: options } : options) as ToastOptions)
+ }
+ }
+
+ const show = (option: ToastOptions | string) => {
+ const options = deepMerge(defaultOptions, typeof option === 'string' ? { msg: option } : option) as ToastOptions
+ toastOption.value = deepMerge(options, {
+ show: true
+ }) as ToastOptions
+ // 开始渲染,并在 duration ms之后执行清除
+ if (toastOption.value.duration && toastOption.value.duration > 0) {
+ timer && clearTimeout(timer)
+ timer = setTimeout(() => {
+ timer && clearTimeout(timer)
+ close()
+ }, options.duration)
+ }
+ }
+
+ const loading = createMethod({
+ iconName: 'loading',
+ duration: 0
+ })
+ const success = createMethod({
+ iconName: 'success',
+ duration: 1500
+ })
+ const error = createMethod({ iconName: 'error' })
+ const warning = createMethod({ iconName: 'warning' })
+ const info = createMethod({ iconName: 'info' })
+
+ const close = () => {
+ toastOption.value = { show: false }
+ }
+ return {
+ show,
+ loading,
+ success,
+ error,
+ warning,
+ info,
+ close
+ }
+}
+
+export const toastIcon = {
+ success() {
+ return ''
+ },
+ warning() {
+ return ''
+ },
+ info() {
+ return ''
+ },
+ error() {
+ return ''
+ }
+}
diff --git a/uni_modules/wot-design-uni/components/wd-toast/type.ts b/uni_modules/wot-design-uni/components/wd-toast/type.ts
new file mode 100644
index 0000000..f61154e
--- /dev/null
+++ b/uni_modules/wot-design-uni/components/wd-toast/type.ts
@@ -0,0 +1,48 @@
+/*
+ * @Author: weisheng
+ * @Date: 2023-06-19 12:47:57
+ * @LastEditTime: 2023-09-07 00:34:18
+ * @LastEditors: weisheng
+ * @Description:
+ * @FilePath: \wot-design-uni\src\uni_modules\wot-design-uni\components\wd-toast\type.ts
+ * 记得注释
+ */
+import type { LoadingType } from '../wd-loading/type'
+
+export type ToastIconType = 'success' | 'error' | 'warning' | 'loading' | 'info' // 图标类型
+
+export type ToastPositionType = 'top' | 'middle' | 'bottom' // 提示信息框的位置类型
+
+export type ToastLoadingType = LoadingType // 提示信息加载状态类型
+
+export type ToastOptions = {
+ msg?: string
+ duration?: number
+ iconName?: ToastIconType
+ iconSize?: number
+ loadingType?: ToastLoadingType
+ loadingColor?: string
+ iconColor?: string
+ loadingSize?: number
+ customIcon?: boolean
+ position?: ToastPositionType
+ show?: boolean
+ zIndex?: number
+}
+
+export interface Toast {
+ // 打开Toast
+ show(toastOptions: ToastOptions | string): void
+ // 成功提示
+ success(toastOptions: ToastOptions | string): void
+ // 关闭提示
+ error(toastOptions: ToastOptions | string): void
+ // 常规提示
+ info(toastOptions: ToastOptions | string): void
+ // 警告提示
+ warning(toastOptions: ToastOptions | string): void
+ // 加载提示
+ loading(toastOptions: ToastOptions | string): void
+ // 关闭Toast
+ close(): void
+}
diff --git a/uni_modules/wot-design-uni/components/wd-toast/wd-toast.vue b/uni_modules/wot-design-uni/components/wd-toast/wd-toast.vue
new file mode 100644
index 0000000..aa71755
--- /dev/null
+++ b/uni_modules/wot-design-uni/components/wd-toast/wd-toast.vue
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ msg }}
+
+
+
+
+
+
+
+
diff --git a/uni_modules/wot-design-uni/components/wd-tooltip/index.scss b/uni_modules/wot-design-uni/components/wd-tooltip/index.scss
new file mode 100644
index 0000000..c16949f
--- /dev/null
+++ b/uni_modules/wot-design-uni/components/wd-tooltip/index.scss
@@ -0,0 +1,66 @@
+@import "./../common/abstracts/_mixin.scss";
+@import "./../common/abstracts/variable.scss";
+
+.wot-theme-dark {
+
+ @include b(tooltip) {
+
+ @include e(pos) {
+ background: $-dark-background4;
+ color: $-tooltip-color;
+ }
+
+ @include triangleArrow($-tooltip-arrow-size, $-dark-background4);
+
+ }
+
+}
+
+@include b(tooltip) {
+ position: relative;
+ display: inline-block;
+
+ @include edeep(pos) {
+ position: absolute;
+ min-width: 138px;
+ min-height: 36px;
+ font-size: $-tooltip-fs;
+ backdrop-filter: blur($-tooltip-blur);
+ background-clip: padding-box;
+ border-radius: $-tooltip-radius;
+ background: $-tooltip-bg;
+ color: $-tooltip-color;
+ text-align: center;
+ box-sizing: border-box;
+ z-index: $-tooltip-z-index;
+ }
+
+
+ @include e(hidden) {
+ left: -100vw;
+ bottom: -100vh;
+ visibility: hidden;
+ }
+
+ @include e(container) {
+ line-height: $-tooltip-line-height;
+ font-size: $-tooltip-fs;
+ }
+
+ @include e(inner) {
+ padding: $-tooltip-padding;
+ white-space: nowrap;
+ line-height: $-tooltip-line-height;
+ }
+
+ @include edeep(close-icon) {
+ font-size: 12px;
+ position: absolute;
+ right: -8px;
+ top: -10px;
+ transform: scale(0.5);
+ padding: 10px;
+ }
+
+ @include triangleArrow($-tooltip-arrow-size, $-tooltip-bg);
+}
\ No newline at end of file
diff --git a/uni_modules/wot-design-uni/components/wd-tooltip/wd-tooltip.vue b/uni_modules/wot-design-uni/components/wd-tooltip/wd-tooltip.vue
new file mode 100644
index 0000000..fdaca6e
--- /dev/null
+++ b/uni_modules/wot-design-uni/components/wd-tooltip/wd-tooltip.vue
@@ -0,0 +1,161 @@
+
+
+
+
+
+ {{ content }}
+
+
+
+
+
+
+ {{ content }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/uni_modules/wot-design-uni/components/wd-transition/index.scss b/uni_modules/wot-design-uni/components/wd-transition/index.scss
new file mode 100644
index 0000000..c098c97
--- /dev/null
+++ b/uni_modules/wot-design-uni/components/wd-transition/index.scss
@@ -0,0 +1,91 @@
+.wd-transition {
+ transition-timing-function: ease;
+}
+
+.wd-fade-enter-active,
+.wd-fade-leave-active {
+ transition-property: opacity;
+}
+
+.wd-fade-enter,
+.wd-fade-leave-to {
+ opacity: 0;
+}
+
+.wd-fade-up-enter-active,
+.wd-fade-up-leave-active,
+.wd-fade-down-enter-active,
+.wd-fade-down-leave-active,
+.wd-fade-left-enter-active,
+.wd-fade-left-leave-active,
+.wd-fade-right-enter-active,
+.wd-fade-right-enter-active {
+ transition-property: opacity, transform;
+}
+
+.wd-fade-up-enter,
+.wd-fade-up-leave-to {
+ transform: translate3d(0, 100%, 0);
+ opacity: 0;
+}
+
+.wd-fade-down-enter,
+.wd-fade-down-leave-to {
+ transform: translate3d(0, -100%, 0);
+ opacity: 0;
+}
+
+.wd-fade-left-enter,
+.wd-fade-left-leave-to {
+ transform: translate3d(-100%, 0, 0);
+ opacity: 0;
+}
+
+.wd-fade-right-enter,
+.wd-fade-right-leave-to {
+ transform: translate3d(100%, 0, 0);
+ opacity: 0;
+}
+
+.wd-slide-up-enter-active,
+.wd-slide-up-leave-active,
+.wd-slide-down-enter-active,
+.wd-slide-down-leave-active,
+.wd-slide-left-enter-active,
+.wd-slide-left-leave-active,
+.wd-slide-right-enter-active,
+.wd-slide-right-enter-active {
+ transition-property: transform;
+}
+
+.wd-slide-up-enter,
+.wd-slide-up-leave-to {
+ transform: translate3d(0, 100%, 0);
+}
+
+.wd-slide-down-enter,
+.wd-slide-down-leave-to {
+ transform: translate3d(0, -100%, 0);
+}
+
+.wd-slide-left-enter,
+.wd-slide-left-leave-to {
+ transform: translate3d(-100%, 0, 0);
+}
+
+.wd-slide-right-enter,
+.wd-slide-right-leave-to {
+ transform: translate3d(100%, 0, 0);
+}
+
+.wd-zoom-in-enter-active,
+.wd-zoom-in-leave-active {
+ transition-property: opacity, transform;
+ transform-origin: center center;
+}
+
+.wd-zoom-in-enter,
+.wd-zoom-in-leave-to {
+ opacity: 0;
+ transform: scale(0.7);
+}
\ No newline at end of file
diff --git a/uni_modules/wot-design-uni/components/wd-transition/wd-transition.vue b/uni_modules/wot-design-uni/components/wd-transition/wd-transition.vue
new file mode 100644
index 0000000..9dab131
--- /dev/null
+++ b/uni_modules/wot-design-uni/components/wd-transition/wd-transition.vue
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/uni_modules/wot-design-uni/components/wd-upload/index.scss b/uni_modules/wot-design-uni/components/wd-upload/index.scss
new file mode 100644
index 0000000..7e35e0f
--- /dev/null
+++ b/uni_modules/wot-design-uni/components/wd-upload/index.scss
@@ -0,0 +1,134 @@
+@import "../common/abstracts/variable.scss";
+@import "../common/abstracts/_mixin.scss";
+
+.wot-theme-dark {
+ @include b(upload) {
+ @include e(evoke) {
+ background-color: $-dark-background4;
+ color: $-dark-color3;
+
+ @include when(disabled) {
+ color: $-dark-color-gray;
+ }
+ }
+ }
+
+}
+
+@include b(upload) {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+
+ @include e(evoke) {
+ position: relative;
+ display: inline-flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: $-upload-size;
+ height: $-upload-size;
+ font-size: $-upload-evoke-icon-size;
+ background-color: $-upload-evoke-bg;
+ color: $-upload-evoke-color;
+ margin-bottom: 12px;
+
+ @include when(disabled) {
+ color: $-upload-evoke-disabled-color;
+ }
+
+ @include when(slot-default) {
+ width: auto;
+ height: auto;
+ background-color: transparent;
+ }
+ }
+
+ @include e(evoke-num) {
+ font-size: 14px;
+ line-height: 14px;
+ margin-top: 8px;
+ }
+
+ @include edeep(evoke-icon) {
+ width: 32px;
+ height: 32px;
+ }
+
+ @include e(input) {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ opacity: 0;
+ }
+
+ @include e(preview) {
+ position: relative;
+ width: $-upload-size;
+ height: $-upload-size;
+ margin: 0 12px 12px 0;
+ }
+
+ @include e(preview-list) {
+ display: flex;
+ }
+
+ @include e(picture) {
+ display: block;
+ width: 100%;
+ height: 100%;
+ }
+
+ @include edeep(close) {
+ position: absolute;
+ right: calc($-upload-close-icon-size / 2 * -1);
+ top: calc($-upload-close-icon-size / 2 * -1);
+ font-size: $-upload-close-icon-size;
+ z-index: 1;
+ color: $-upload-close-icon-color;
+ width: $-upload-close-icon-size;
+ height: $-upload-close-icon-size;
+
+ &::after {
+ position: absolute;
+ content: "";
+ width: 100%;
+ height: 100%;
+ border-radius: 50%;
+ background-color: $-color-white;
+ left: 0;
+ z-index: -1;
+ }
+ }
+
+ @include e(mask) {
+ position: absolute;
+ top: 0;
+ left: 0;
+ background-color: $-upload-preview-name-bg;
+ }
+
+ @include e(progress-txt) {
+ font-size: $-upload-progress-fs;
+ line-height: $-upload-progress-fs;
+ margin-top: 9px;
+ color: $-color-white;
+ }
+
+ @include edeep(icon) {
+ font-size: $-upload-preview-icon-size;
+ color: $-color-white;
+ }
+
+ @include e(status-content) {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/wot-design-uni/components/wd-upload/utils.ts b/uni_modules/wot-design-uni/components/wd-upload/utils.ts
new file mode 100644
index 0000000..4b29ad6
--- /dev/null
+++ b/uni_modules/wot-design-uni/components/wd-upload/utils.ts
@@ -0,0 +1,21 @@
+/*
+ * @Author: weisheng
+ * @Date: 2023-08-01 11:12:05
+ * @LastEditTime: 2023-08-15 22:58:47
+ * @LastEditors: weisheng
+ * @Description:
+ * @FilePath: \wot-design-uni\src\uni_modules\wot-design-uni\components\wd-upload\utils.ts
+ * 记得注释
+ */
+// 后续会对外暴露选中视频文件
+export function chooseFile({ multiple, sizeType, sourceType, maxCount }) {
+ return new Promise((resolve, reject) => {
+ uni.chooseImage({
+ count: multiple ? Math.min(maxCount, 9) : 1, // 最多可以选择的数量,如果不支持多选则数量为1
+ sizeType,
+ sourceType,
+ success: resolve,
+ fail: reject
+ })
+ })
+}
diff --git a/uni_modules/wot-design-uni/components/wd-upload/wd-upload.vue b/uni_modules/wot-design-uni/components/wd-upload/wd-upload.vue
new file mode 100644
index 0000000..dd92e57
--- /dev/null
+++ b/uni_modules/wot-design-uni/components/wd-upload/wd-upload.vue
@@ -0,0 +1,553 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ file.percent }}%
+
+
+
+
+ {{ file.error || '上传失败' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ({{ uploadFiles.length }}/{{ limit }})
+
+
+
+
+
+
+
+
+
diff --git a/uni_modules/wot-design-uni/components/wd-watermark/index.scss b/uni_modules/wot-design-uni/components/wd-watermark/index.scss
new file mode 100644
index 0000000..8bfa97d
--- /dev/null
+++ b/uni_modules/wot-design-uni/components/wd-watermark/index.scss
@@ -0,0 +1,18 @@
+@import "../common/abstracts/variable.scss";
+@import "../common/abstracts/_mixin.scss";
+
+@include b(watermark) {
+ position: absolute;
+ z-index: 1100;
+ opacity: 0.5;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ pointer-events: none;
+ background-repeat: repeat;
+
+ @include when(fullscreen) {
+ position: fixed;
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/wot-design-uni/components/wd-watermark/wd-watermark.vue b/uni_modules/wot-design-uni/components/wd-watermark/wd-watermark.vue
new file mode 100644
index 0000000..9836dc6
--- /dev/null
+++ b/uni_modules/wot-design-uni/components/wd-watermark/wd-watermark.vue
@@ -0,0 +1,570 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/uni_modules/wot-design-uni/components/wot-design-uni/wot-design-uni.vue b/uni_modules/wot-design-uni/components/wot-design-uni/wot-design-uni.vue
new file mode 100644
index 0000000..a8da816
--- /dev/null
+++ b/uni_modules/wot-design-uni/components/wot-design-uni/wot-design-uni.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/uni_modules/wot-design-uni/global.d.ts b/uni_modules/wot-design-uni/global.d.ts
new file mode 100644
index 0000000..358b056
--- /dev/null
+++ b/uni_modules/wot-design-uni/global.d.ts
@@ -0,0 +1,102 @@
+/*
+ * @Author: weisheng
+ * @Date: 2023-09-25 17:28:12
+ * @LastEditTime: 2023-12-23 22:42:18
+ * @LastEditors: weisheng
+ * @Description:
+ * @FilePath: \wot-design-uni\src\uni_modules\wot-design-uni\global.d.ts
+ * 记得注释
+ */
+// For this project development
+import '@vue/runtime-core'
+
+declare module '@vue/runtime-core' {
+ // Helper for Volar
+ export interface GlobalComponents {
+ WdActionSheet: typeof import('./components/wd-action-sheet/wd-action-sheet.vue')['default']
+ WdBadge: typeof import('./components/wd-badge/wd-badge.vue')['default']
+ WdButton: typeof import('./components/wd-button/wd-button.vue')['default']
+ WdCalendar: typeof import('./components/wd-calendar/wd-calendar.vue')['default']
+ WdCalendarView: typeof import('./components/wd-calendar-view/wd-calendar-view.vue')['default']
+ WdCard: typeof import('./components/wd-card/wd-card.vue')['default']
+ WdCell: typeof import('./components/wd-cell/wd-cell.vue')['default']
+ WdCellGroup: typeof import('./components/wd-cell-group/wd-cell-group.vue')['default']
+ WdCheckbox: typeof import('./components/wd-checkbox/wd-checkbox.vue')['default']
+ WdCheckboxGroup: typeof import('./components/wd-checkbox-group/wd-checkbox-group.vue')['default']
+ WdCol: typeof import('./components/wd-col/wd-col.vue')['default']
+ WdColPicker: typeof import('./components/wd-col-picker/wd-col-picker.vue')['default']
+ WdCollapse: typeof import('./components/wd-collapse/wd-collapse.vue')['default']
+ WdCollapseItem: typeof import('./components/wd-collapse-item/wd-collapse-item.vue')['default']
+ WdConfigProvider: typeof import('./components/wd-config-provider/wd-config-provider.vue')['default']
+ WdCurtain: typeof import('./components/wd-curtain/wd-curtain.vue')['default']
+ WdDatetimePicker: typeof import('./components/wd-datetime-picker/wd-datetime-picker.vue')['default']
+ WdDatetimePickerView: typeof import('./components/wd-datetime-picker-view/wd-datetime-picker-view.vue')['default']
+ WdDivider: typeof import('./components/wd-divider/wd-divider.vue')['default']
+ WdDropMenu: typeof import('./components/wd-drop-menu/wd-drop-menu.vue')['default']
+ WdDropMenuItem: typeof import('./components/wd-drop-menu-item/wd-drop-menu-item.vue')['default']
+ WdGrid: typeof import('./components/wd-grid/wd-grid.vue')['default']
+ WdGridItem: typeof import('./components/wd-grid-item/wd-grid-item.vue')['default']
+ WdIcon: typeof import('./components/wd-icon/wd-icon.vue')['default']
+ WdImg: typeof import('./components/wd-img/wd-img.vue')['default']
+ WdImgCropper: typeof import('./components/wd-img-cropper/wd-img-cropper.vue')['default']
+ WdInput: typeof import('./components/wd-input/wd-input.vue')['default']
+ WdInputNumber: typeof import('./components/wd-input-number/wd-input-number.vue')['default']
+ WdLoading: typeof import('./components/wd-loading/wd-loading.vue')['default']
+ WdLoadmore: typeof import('./components/wd-loadmore/wd-loadmore.vue')['default']
+ WdMessageBox: typeof import('./components/wd-message-box/wd-message-box.vue')['default']
+ WdModal: typeof import('./components/wd-overlay/wd-overlay.vue')['default']
+ WdNoticeBar: typeof import('./components/wd-notice-bar/wd-notice-bar.vue')['default']
+ WdPagination: typeof import('./components/wd-pagination/wd-pagination.vue')['default']
+ WdPicker: typeof import('./components/wd-picker/wd-picker.vue')['default']
+ WdPickerView: typeof import('./components/wd-picker-view/wd-picker-view.vue')['default']
+ WdPopover: typeof import('./components/wd-popover/wd-popover.vue')['default']
+ WdPopup: typeof import('./components/wd-popup/wd-popup.vue')['default']
+ WdProgress: typeof import('./components/wd-progress/wd-progress.vue')['default']
+ WdRadio: typeof import('./components/wd-radio/wd-radio.vue')['default']
+ WdRadioGroup: typeof import('./components/wd-radio-group/wd-radio-group.vue')['default']
+ WdRate: typeof import('./components/wd-rate/wd-rate.vue')['default']
+ WdResize: typeof import('./components/wd-resize/wd-resize.vue')['default']
+ WdRow: typeof import('./components/wd-row/wd-row.vue')['default']
+ WdSearch: typeof import('./components/wd-search/wd-search.vue')['default']
+ WdSelectPicker: typeof import('./components/wd-select-picker/wd-select-picker.vue')['default']
+ WdSlider: typeof import('./components/wd-slider/wd-slider.vue')['default']
+ WdSortButton: typeof import('./components/wd-sort-button/wd-sort-button.vue')['default']
+ WdStatusTip: typeof import('./components/wd-status-tip/wd-status-tip.vue')['default']
+ WdStep: typeof import('./components/wd-step/wd-step.vue')['default']
+ WdSteps: typeof import('./components/wd-steps/wd-steps.vue')['default']
+ WdSticky: typeof import('./components/wd-sticky/wd-sticky.vue')['default']
+ WdStickyBox: typeof import('./components/wd-sticky-box/wd-sticky-box.vue')['default']
+ WdSwipeAction: typeof import('./components/wd-swipe-action/wd-swipe-action.vue')['default']
+ WdSwitch: typeof import('./components/wd-switch/wd-switch.vue')['default']
+ WdTab: typeof import('./components/wd-tab/wd-tab.vue')['default']
+ WdTabs: typeof import('./components/wd-tabs/wd-tabs.vue')['default']
+ WdTag: typeof import('./components/wd-tag/wd-tag.vue')['default']
+ WdToast: typeof import('./components/wd-toast/wd-toast.vue')['default']
+ WdTooltip: typeof import('./components/wd-tooltip/wd-tooltip.vue')['default']
+ WdTransition: typeof import('./components/wd-transition/wd-transition.vue')['default']
+ WdUpload: typeof import('./components/wd-upload/wd-upload.vue')['default']
+ WdNotify: typeof import('./components/wd-notify/wd-notify.vue')['default']
+ WdWatermark: typeof import('./components/wd-watermark/wd-watermark.vue')['default']
+ WdCircle: typeof import('./components/wd-circle/wd-circle.vue')['default']
+ WdSwiper: typeof import('./components/wd-swiper/wd-swiper.vue')['default']
+ WdSwiperNav: typeof import('./components/wd-swiper-nav/wd-swiper-nav.vue')['default']
+ WdSegmented: typeof import('./components/wd-segmented/wd-segmented.vue')['default']
+ WdTabbar: typeof import('./components/wd-tabbar/wd-tabbar.vue')['default']
+ WdTabbarItem: typeof import('./components/wd-tabbar-item/wd-tabbar-item.vue')['default']
+ WdNavbar: typeof import('./components/wd-navbar/wd-navbar.vue')['default']
+ WdNavbarCapsule: typeof import('./components/wd-navbar-capsule/wd-navbar-capsule.vue')['default']
+ WdTable: typeof import('./components/wd-table/wd-table.vue')['default']
+ WdTableCol: typeof import('./components/wd-table-col/wd-table-col.vue')['default']
+ WdSidebar: typeof import('./components/wd-sidebar/wd-sidebar.vue')['default']
+ WdSidebarItem: typeof import('./components/wd-sidebar-item/wd-sidebar-item.vue')['default']
+ WdFab: typeof import('./components/wd-fab/wd-fab.vue')['default']
+ WdCountDown: typeof import('./components/wd-count-down/wd-count-down.vue')['default']
+ WdNumberKeyboard: typeof import('./components/wd-number-keyboard/wd-number-keyboard.vue')['default']
+ WdGap: typeof import('./components/wd-gap/wd-gap.vue')['default']
+ WdPasswordInput: typeof import('./components/wd-password-input/wd-password-input.vue')['default']
+ WdForm: typeof import('./components/wd-form/wd-form.vue')['default']
+ WdTextarea: typeof import('./components/wd-textarea/wd-textarea.vue')['default']
+ }
+}
+
+export {}
diff --git a/uni_modules/wot-design-uni/index.ts b/uni_modules/wot-design-uni/index.ts
new file mode 100644
index 0000000..8034bc1
--- /dev/null
+++ b/uni_modules/wot-design-uni/index.ts
@@ -0,0 +1,26 @@
+/*
+ * @Author: weisheng
+ * @Date: 2021-12-21 14:22:03
+ * @LastEditTime: 2023-10-31 22:20:14
+ * @LastEditors: weisheng
+ * @Description:
+ * @FilePath: \wot-design-uni\src\uni_modules\wot-design-uni\index.ts
+ * 记得注释
+ */
+
+// Toast
+export { useToast } from './components/wd-toast'
+// Messageb
+export { useMessage } from './components/wd-message-box'
+
+// useQueue
+export { useQueue } from './components/composables/useQueue'
+
+// Notify
+export * from './components/wd-notify'
+
+export { dayjs } from './components/common/dayjs'
+
+export * as CommonUtil from './components/common/util'
+
+export * as clickOut from './components/common/clickoutside'
diff --git a/uni_modules/wot-design-uni/package.json b/uni_modules/wot-design-uni/package.json
new file mode 100644
index 0000000..13127ee
--- /dev/null
+++ b/uni_modules/wot-design-uni/package.json
@@ -0,0 +1,90 @@
+{
+ "id": "wot-design-uni",
+ "name": "wot-design-uni",
+ "displayName": "wot-design-uni 基于vue3+Typescript的高颜值组件库",
+ "version": "0.2.3",
+ "description": "一个基于Vue3+TS开发的uni-app组件库,提供60+高质量组件,支持暗黑模式和自定义主题。",
+ "keywords": [
+ "wot-design-uni",
+ "wot-design",
+ "组件库",
+ "vue3",
+ "暗黑模式"
+ ],
+ "main": "index.ts",
+ "repository":"https://github.com/Moonofweisheng/wot-design-uni.git",
+ "engines": {
+ "HBuilderX": "^3.8.7"
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "插件不采集任何数据",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/wot-design-uni"
+ },
+ "uni_modules": {
+ "dependencies": [],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "n",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "u"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "u",
+ "IE": "u",
+ "Edge": "u",
+ "Firefox": "u",
+ "Safari": "u"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "u",
+ "百度": "u",
+ "字节跳动": "u",
+ "QQ": "u",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ },
+ "peerDependencies": {
+ "vue": "^3.2.0"
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/wot-design-uni/readme.md b/uni_modules/wot-design-uni/readme.md
new file mode 100644
index 0000000..7147d54
--- /dev/null
+++ b/uni_modules/wot-design-uni/readme.md
@@ -0,0 +1,110 @@
+
+
+
+Wot Design Uni
+
+📱 一个参照Wot-design,基于 Vue3 打造的uni-app组件库
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 🚀 文档网站 (官网)
+ 🔥 文档网站 (Netlify)
+
+
+## ✨ 特性
+
+- 🚀 支持 APP、H5、微信小程序 等平台.
+- 🚀 60+ 个高质量组件,覆盖移动端主流场景.
+- 💪 使用 Typescript 构建,提供良好的组件类型系统.
+- 💪 采用 Vue3 最新特性,提升组件性能.
+- 📖 提供丰富的文档和组件示例.
+- 🎨 支持修改 CSS 变量实现主题定制.
+- 🍭 支持暗黑模式
+
+## 📱 预览
+
+扫描二维码访问演示,注意:因微信审核机制限制,当前的微信小程序示例可能不是最新版本,可以clone代码到本地预览。
+
+
+
+
+
+
+## 快速上手
+
+详细说明见 [快速上手](https://wot-design-uni.cn/guide/quick-use.html)。
+
+## 链接
+
+* [意见反馈](https://github.com/Moonofweisheng/wot-design-uni/issues)
+* [更新日志](https://wot-design-uni.cn/guide/changelog.html)
+* [常见问题](https://wot-design-uni.cn/guide/common-problems.html)
+* [Discussions 讨论区](https://github.com/Moonofweisheng/wot-design-uni/discussions)
+* [QQ 群](https://qm.qq.com/cgi-bin/qm/qr?k=O1Z3pal6StL39qHtABqR54Tb56igr90O&jump_from=webapi&authKey=MtVWfi/EQbT03wW7tKXv4bmyKYHBHtzI8VewlzSsOdxFjN0wbgNy17np9Z9yC4Z8)
+* [快速上手项目](https://github.com/Moonofweisheng/wot-starter)
+* [Vue3路由库](https://moonofweisheng.gitee.io/uni-mini-router/)
+
+## 开发计划
+
+开发计划已公布在[Discussions 讨论区](https://github.com/Moonofweisheng/wot-design-uni/discussions/45)中,欢迎参与讨论,提出意见和建议。
+
+## 贡献指南
+
+修改代码请阅读我们的 [贡献指南](https://github.com/Moonofweisheng/wot-design-uni/blob/develop/.github/CONTRIBUTING.md)。
+
+使用过程中发现任何问题都可以提 [Issue](https://github.com/Moonofweisheng/wot-design-uni/issues) 给我们,当然,我们也非常欢迎你给我们发 [PR](https://github.com/Moonofweisheng/wot-design-uni/pulls)。
+
+## 贡献者们
+感谢以下所有给 Wot Design Uni 贡献过代码的 [开发者](https://github.com/Moonofweisheng/wot-design-uni/graphs/contributors)。
+
+
+
+
+
+
+
+## 捐赠本项目
+
+捐赠本项目,支持组件库的更好的发展,捐赠后你的昵称和主页将会被展示在 `wot design uni` 文档的捐赠榜单上。
+
+### 爱发电捐赠
+
+https://afdian.net/a/weisheng233
+
+### 扫码捐赠
+
+
+
+
+
+
+## LICENSE
+
+[MIT](https://github.com/Moonofweisheng/wot-design-uni/blob/develop/LICENSE)
diff --git a/utils/app.js b/utils/app.js
new file mode 100644
index 0000000..e705bd1
--- /dev/null
+++ b/utils/app.js
@@ -0,0 +1,122 @@
+// const tabbar = [
+// "pages/index/index",
+// "pages/cat/cat",
+// "pages/shoppingCart/index",
+// "pages/my/my",
+// ];
+
+/**
+ * @des 小程序版本更新管理器
+ */
+export function getUpdateManager() {
+ // #ifdef MP-WEIXIN || MP-ALIPAY
+ const updateManager = uni.getUpdateManager();
+ updateManager.onCheckForUpdate((res) => {
+ // 检测新版本后的回调
+ if (res.hasUpdate) {
+ uni.showModal({
+ content: "新版本已经准备好,是否重启应用?",
+ showCancel: false,
+ confirmText: "确定",
+ success: (res) => {
+ if (res.confirm) {
+ updateManager.onUpdateReady(() => {
+ // 新版本下载完成的回调
+ updateManager.applyUpdate(); // 强制当前小程序应用上新版本并重启
+ });
+
+ updateManager.onUpdateFailed(() => {
+ // 新版本下载失败的回调
+ // 新版本下载失败,提示用户删除后通过冷启动重新打开
+ uni.showModal({
+ content: "下载失败,请删除当前小程序后重新打开",
+ showCancel: false,
+ confirmText: "知道了",
+ });
+ });
+ }
+ },
+ });
+ }
+ });
+ // #endif
+}
+
+/**
+ * @des 获取头部高度
+ * @return {Object} {} 获取手机头部高度
+ */
+export function getHeaderHeight() {
+ // 获取手机信息
+ let sysinfo = uni.getSystemInfoSync(),
+ // 状态栏高度
+ statusBarHeight = sysinfo.statusBarHeight,
+ // 判断是否是ios
+ isiOS = sysinfo.system.indexOf("iOS") > -1,
+ headHeight;
+
+ // 标题栏高度:安卓:48px,iOS:44px
+ if (!isiOS) {
+ headHeight = 48;
+ } else {
+ headHeight = 44;
+ }
+
+ return {
+ statusBarHeight,
+ headHeight,
+ headAllHeight: statusBarHeight + headHeight,
+ };
+}
+
+/**
+ * @des 设置状态栏高度和标题高度
+ */
+export function setHeaderHeight() {
+ let heightObj = getHeaderHeight();
+
+ uni.setStorageSync("statusBarHeight", heightObj.statusBarHeight);
+ uni.setStorageSync("headHeight", heightObj.headHeight);
+ uni.setStorageSync("headAllHeight", heightObj.headAllHeight);
+}
+
+/**
+ * @des 获取当前路由
+ */
+export function getCurPage() {
+ let pages = getCurrentPages();
+ let curPage = pages[pages.length - 1];
+ return curPage;
+}
+
+/**
+ * @des 获取当前平台
+ */
+export function getOrigin() {
+ let origin = "";
+
+ // #ifdef APP-PLUS
+ origin = "APP_PLUS";
+ // #endif
+ // #ifdef H5
+ origin = "H5";
+ // #endif
+ // #ifdef MP-WEIXIN
+ origin = "MP_WEIXIN";
+ // #endif
+ // #ifdef MP-ALIPAY
+ origin = "MP_ALIPAY";
+ // #endif
+ return origin;
+}
+
+/**
+ * @des 获取tabbar索引
+ */
+// export function getTabbarIndex() {
+// const routes = getCurrentPages(),
+// last = routes[routes.length - 1],
+// index = tabbar.indexOf(last.route);
+
+// return index;
+// }
\ No newline at end of file
diff --git a/utils/eventBus.js b/utils/eventBus.js
new file mode 100644
index 0000000..67624d4
--- /dev/null
+++ b/utils/eventBus.js
@@ -0,0 +1,3 @@
+import Vue from "vue";
+const Emit = new Vue();
+export { Emit };
diff --git a/utils/location.js b/utils/location.js
new file mode 100644
index 0000000..3dd08d7
--- /dev/null
+++ b/utils/location.js
@@ -0,0 +1,120 @@
+export const isGetLocation = () => {
+ // #ifdef MP-ALIPAY
+ return new Promise((resolve, reject) => {
+ const systemSetting = my.getSystemSetting();
+ if (!systemSetting.locationEnabled) {
+ my.showModal({
+ title: '提示',
+ content: '需要获取您的位置信息,请前往设置页面开启位置权限',
+ success(modalRes) {
+ if (modalRes.confirm) {
+ my.showAuthGuide({
+ authType: 'LBS',
+ success() {
+ const systemSetting = my.getSystemSetting();
+ if (systemSetting.locationEnabled) {
+ // 用户在引导页面开启了位置权限,调用my.getLocation获取位置信息
+ resolve(true);
+ } else {
+ // 用户依然未开启位置权限
+ resolve(false);
+ }
+ },
+ fail() {
+ // 引导页面调用失败,可能用户取消了操作
+ resolve(false);
+ }
+ });
+ } else {
+ // 用户点击取消
+ resolve(false);
+ }
+ }
+ });
+
+ } else {
+ console.log("系统已授权");
+ my.getSetting({
+ success(settingRes) {
+ console.log("小程序授权了吗");
+ console.log(settingRes);
+ if (!settingRes.authSetting['location']) {
+ // 用户未授权位置权限,引导用户去设置页面开启权限
+ uni.showModal({
+ title: '提示',
+ content: '需要获取您的位置信息,请前往设置页面开启位置权限',
+ success(modalRes) {
+ if (modalRes.confirm) {
+ uni.openSetting({
+ success(openSettingRes) {
+ if (openSettingRes.authSetting['location']) {
+ // 用户在设置页面开启了位置权限,调用uni.getLocation获取位置信息
+ resolve(true);
+ } else {
+ // 用户依然未开启位置权限
+ resolve(false);
+ }
+ }
+ });
+ } else {
+ // 用户点击取消
+ resolve(false);
+ }
+ }
+ });
+ } else {
+ // 用户已授权,调用my.getLocation获取位置信息
+ resolve(true);
+ }
+ },
+ fail(err) {
+ reject(err);
+ }
+ });
+ }
+ });
+ // #endif
+
+ // #ifdef MP-WEIXIN
+ return new Promise((resolve, reject) => {
+ uni.getSetting({
+ success(settingRes) {
+ console.clear(settingRes);
+ console.log(settingRes);
+ if (!settingRes.authSetting['scope.userLocation']) {
+ // 用户未授权位置权限,引导用户去设置页面开启权限
+ uni.showModal({
+ title: '提示',
+ content: '需要获取您的位置信息,请前往设置页面开启位置权限',
+ success(modalRes) {
+ if (modalRes.confirm) {
+ uni.openSetting({
+ success(openSettingRes) {
+ if (openSettingRes.authSetting['scope.userLocation']) {
+ // 用户在设置页面开启了位置权限,调用uni.getLocation获取位置信息
+ resolve(true);
+ } else {
+ // 用户依然未开启位置权限
+ resolve(false);
+ }
+ }
+ });
+ } else {
+ // 用户点击取消
+ resolve(false);
+ }
+ }
+ });
+ } else {
+ // 用户已授权,调用uni.getLocation获取位置信息
+ resolve(true);
+ }
+ },
+ fail(err) {
+ reject(err);
+ }
+ });
+ });
+ // #endif
+
+}
diff --git a/utils/pay.js b/utils/pay.js
new file mode 100644
index 0000000..cf53bd7
--- /dev/null
+++ b/utils/pay.js
@@ -0,0 +1,48 @@
+/**
+ * @des 支付方法
+ */
+export function paymentMethod(type) {
+ switch (type) {
+ case "1":
+ console.log("支付宝");
+ break;
+
+ case "2":
+ console.log("微信");
+ break;
+
+ case "3":
+ console.log("余额");
+ break;
+
+ case "4":
+ console.log("货到付款");
+ break;
+ }
+
+}
+
+/**
+ * @des 订单类型
+ */
+export function getOrderType(type) {
+ const obj = {
+ 1: "商城订单",
+ 2: "秒杀订单",
+ 3: "拼团订单",
+ };
+ return obj[type];
+}
+
+/**
+ * @des 支付类型
+ */
+export function getPayType(type) {
+ const obj = {
+ 1: "支付宝",
+ 2: "微信",
+ 3: "余额",
+ 3: "货到付款",
+ };
+ return obj[type];
+}
diff --git a/utils/regExp.js b/utils/regExp.js
new file mode 100644
index 0000000..77fc7a0
--- /dev/null
+++ b/utils/regExp.js
@@ -0,0 +1,8 @@
+export function regMobile(mobile) {
+ let re = /^1[2,3,4,5,6,7,8,9][0-9]{9}$/,
+ result = re.test(mobile);
+ if (!result) {
+ return false;
+ }
+ return true;
+}
diff --git a/utils/request.js b/utils/request.js
new file mode 100644
index 0000000..a88b180
--- /dev/null
+++ b/utils/request.js
@@ -0,0 +1,142 @@
+import _env from "../env";
+import {
+ getOrigin
+} from "./app";
+import utils from "./utils";
+
+let extConfig = {};
+
+const env = {
+ ..._env,
+ ...extConfig
+}
+
+/**
+ * 请求基类
+ * @param {Object} options 请求参数 { url: String 路径, [data: Object 请求携带的数据], [method: String 请求方式] }
+ */
+export function request(options) {
+
+
+ options.header = {
+ Authorization: `Bearer ${uni.getStorageSync("token")}`,
+ }
+
+ if (options.externalRequest) {
+
+ } else {
+ options.noclient ? (options.url = env.host + options.url) : (options.url = env.host + "" + options.url);
+ }
+
+ return new Promise((resolve, reject) => {
+ uni.request({
+ url: options.url,
+ timeout: env.NETWORK_TIME_OUT,
+ // data: { ...options.data, store_id: env.store_id, mini_id: env.mini_id, origin: getOrigin() },
+ data: { ...options.data, ...env, origin: getOrigin() },
+ header: options.header,
+ method: options.method,
+ success: (res) => {
+ uni.hideLoading();
+ let { statusCode } = res;
+ switch (statusCode) {
+ case 200:
+ resolve(res.data);
+ break;
+
+ case 401:
+ // 401 过期
+ setTimeout(() => {
+ utils.loginOut();
+ }, 300)
+ break;
+
+ default:
+ console.log("请求失败(" + statusCode + ")")
+ reject(res)
+ uni.$u.toast(res?.data?.message || "出错了");
+ break;
+ }
+ },
+
+ fail: (res) => {
+ console.log(res, 'reslogin')
+ // #ifdef MP-ALIPAY
+ if (res.statusCode == 401) {
+ setTimeout(() => {
+ utils.loginOut();
+ }, 300)
+ }
+ // #endif
+ reject(res.data.data);
+ },
+ });
+ });
+}
+
+export function uploadFile({
+ filePath,
+ name,
+ formData
+}) {
+
+ return new Promise((resolve, reject) => {
+
+ // #ifdef MP-ALIPAY
+ let fileType = ""
+ let contentType = '';
+ if (filePath.endsWith('.image')) {
+ contentType = 'image/png';
+ fileType = 'image';
+ } else if (filePath.endsWith('.video')) {
+ contentType = 'video/mp4';
+ fileType = 'video';
+ }
+ // #endif
+
+ uni.uploadFile({
+ url: env.host + '/client/common/upload',
+ name: "file",
+ filePath: filePath,
+
+ fileName: "file",
+ // #ifdef MP-ALIPAY
+ fileType: fileType,
+ // #endif
+
+ headers: {
+ // #ifdef MP-ALIPAY
+ "Content-Type": "application/x-www-form-urlencoded"
+ // #endif
+ },
+ formData: {
+ ...formData,
+ store_id: env.store_id,
+ origin: getOrigin()
+ },
+ timeout: 10000,
+ success: (res) => {
+ switch (res.statusCode) {
+ case 200:
+ resolve(JSON.parse(res.data))
+ break;
+
+ case 401:
+ // 401 过期
+ utils.loginOut();
+ break;
+
+ default:
+ uni.$u.toast(console.log("请求失败(" + statusCode + ")"));
+ break;
+ }
+ },
+ fail: (err) => {
+ my.alert({
+ title: '上传失败',
+ content: JSON.stringify(err)
+ });
+ },
+ });
+ })
+}
\ No newline at end of file
diff --git a/utils/utils.js b/utils/utils.js
new file mode 100644
index 0000000..98dc002
--- /dev/null
+++ b/utils/utils.js
@@ -0,0 +1,300 @@
+import { isGetLocation } from "./location.js";
+
+const tabBarList = [
+ "/pages/index/index",
+ "/pages/cat/cat",
+ "/pages/shoppingCart/index",
+ "/pages/my/my",
+];
+
+export default {
+ // 跳转页面
+ toUrl(url, type) {
+ console.log(url);
+
+ if (
+ tabBarList.some((item) => url.indexOf(item) !== -1) &&
+ type != "reLaunch"
+ ) {
+ uni.switchTab({
+ url: url,
+ });
+
+ return;
+ }
+
+ if (type == "redirectTo") {
+ uni.redirectTo({
+ url,
+ });
+ } else if (type == "reLaunch") {
+ uni.reLaunch({
+ url,
+ });
+ } else {
+ uni.navigateTo({
+ url,
+ });
+ }
+ },
+
+ // 后退页面
+ backTo(num = 1) {
+ const current = getCurrentPages();
+ if (current.length <= 1) {
+ this.toUrl("/pages/home/home");
+ } else {
+ uni.navigateBack({
+ delta: num,
+ });
+ }
+ },
+
+ /**
+ * @des 复制
+ */
+ copy(data, toast = "内容已复制") {
+ uni.setClipboardData({
+ data,
+ success: () => {
+ uni.$u.toast(toast);
+ },
+ });
+ },
+
+ /**
+ * @des 将 Date 转化为指定格式的String
+ * @des 月(m)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
+ * @des 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
+ * @des 例子: DateFormat("yyyy-MM-dd hh:mm:ss.s","2006-07-02") ==> 2006-07-02 08:09:04.423
+ * @param fmt
+ * @param date
+ * @returns {String}
+ */
+ DateFormat(fmt, date) {
+ const newDate = date || new Date();
+
+ const o = {
+ "M+": newDate.getMonth() + 1, // 月份
+ "d+": newDate.getDate(), // 日
+ "h+": newDate.getHours(), // 小时
+ "m+": newDate.getMinutes(), // 分
+ "s+": newDate.getSeconds(), // 秒
+ "q+": Math.floor((newDate.getMonth() + 3) / 3), // 季度
+ S: newDate.getMilliseconds(), // 毫秒
+ };
+ if (/(y+)/.test(fmt)) {
+ fmt = fmt.replace(
+ RegExp.$1,
+ (newDate.getFullYear() + "").substr(4 - RegExp.$1.length)
+ );
+ }
+ for (var k in o) {
+ if (new RegExp("(" + k + ")").test(fmt)) {
+ fmt = fmt.replace(
+ RegExp.$1,
+ RegExp.$1.length === 1 ?
+ o[k] :
+ ("00" + o[k]).substr(("" + o[k]).length)
+ );
+ }
+ }
+ return fmt;
+ },
+
+ getRouterInfo() {
+ let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
+ let curRoute = routes[routes.length - 1].route // 获取当前页面路由,也就是最后一个打开的页面路由
+ let curParam = routes[routes.length - 1].options; //获取路由参数
+
+ const params = Object.entries(curParam).reduce((param, [key, val], index) => {
+ if (index === 0) {
+ return param + key + '=' + val
+ }
+
+ return param += '&' + key + '=' + val
+ }, "?")
+
+ return [curRoute, params]
+ },
+
+ loginOut() {
+ const [curRoute, curRouteParam] = this.getRouterInfo()
+ uni.setStorageSync("backPage", "/" + curRoute + curRouteParam)
+
+ uni.removeStorageSync("token");
+ uni.removeStorageSync("user_info");
+ this.toUrl("/subPackages/login/login/index", "redirectTo");
+ },
+
+ kmUnit(m) {
+ var v;
+ if (typeof m === 'number' && !isNaN(m)) {
+ if (m >= 1000) {
+ v = (m / 1000).toFixed(2) + ' km'
+ } else {
+ v = m.toFixed(2) + ' m'
+ }
+ } else {
+ v = '0 m'
+ }
+ return v;
+ },
+
+ objectToQueryString(obj) {
+ var params = '';
+ for (var key in obj) {
+ if (obj.hasOwnProperty(key)) {
+ if (params !== '') {
+ params += '&';
+ }
+ params += encodeURIComponent(key) + '=' + encodeURIComponent(obj[key]);
+ }
+ }
+ return '?' + params;
+ },
+
+ oneValues(url) {
+ var name, value;
+ var str = url; //取得整个地址栏
+ var num = str.indexOf("?");
+ str = str.substr(num + 1); //取得所有参数 stringvar.substr(start [, length ]
+ let obj = {};
+ var arr = str.split("&"); //各个参数放到数组里
+ for (var i = 0; i < arr.length; i++) {
+ num = arr[i].indexOf("=");
+ if (num > 0) {
+ name = arr[i].substring(0, num);
+ value = arr[i].substr(num + 1);
+ obj[name] = value;
+ }
+ }
+ return obj;
+ },
+
+ // 下载图片
+ downloadImage(imageUrl) {
+ return new Promise((resolve, reject) => {
+
+ function downloadFile() {
+ uni.downloadFile({
+ url: imageUrl,
+ success: function (res) {
+ // 检查下载是否成功
+ if (res.statusCode === 200) {
+ console.log('图片下载成功:', res.tempFilePath);
+ // 将图片保存到相册
+ uni.saveImageToPhotosAlbum({
+ filePath: res.tempFilePath,
+ success: function () {
+ console.log('图片保存成功');
+ resolve(res.tempFilePath); // 返回下载的图片路径
+ },
+ fail: function (saveErr) {
+ console.error('图片保存失败:', saveErr);
+ reject(new Error('图片保存失败'));
+ }
+ });
+ } else {
+ // 下载失败,拒绝 Promise
+ uni.showToast({
+ title: "保存失败,请检查是否开启权限 (2)",
+ icon: "none",
+ });
+
+ console.error('图片下载失败:', res);
+ reject(new Error('图片下载失败'));
+ }
+ },
+ fail: function (err) {
+ uni.showToast({
+ title: "保存失败,请检查是否开启权限 (1)",
+ icon: "none",
+ });
+
+ // 下载失败,拒绝 Promise
+ console.error('图片下载失败:', err);
+ reject(err);
+ }
+ });
+ }
+
+ // #ifdef MP-WEIXIN
+ //获取相册授权
+ uni.getSetting({
+ success(res) {
+ if (!res.authSetting["scope.writePhotosAlbum"]) {
+ uni.authorize({
+ scope: "scope.writePhotosAlbum",
+ success(e) {
+ //这里是用户同意授权后的回调
+ downloadFile();
+ },
+ fail(fail) {
+ uni.showModal({
+ title: "提示",
+ content: "需要获取您的相册保存权限,请到小程序的设置中打开授权",
+ success(res) {
+ if (res.confirm) {
+ wx.openSetting()
+ }
+ }
+ })
+ },
+ });
+ } else {
+ //用户已经授权过了
+ downloadFile();
+ }
+ },
+ });
+ // #endif
+
+
+ // #ifdef MP-ALIPAY
+ downloadFile();
+ // #endif
+
+ });
+ },
+
+ // 判断参数中是否存在 distributor_id 属性,并将其存储到本地
+ // 将传入的 url 参数解析为对象,并保存到本地
+ saveDistributorIdToLocal(params, url) {
+ try {
+ if (url) {
+ return this.saveDistributorIdToLocal(this.oneValues(url))
+ }
+
+ if (params && typeof params === 'object' && 'distributor_id' in params) {
+ // 如果 params 是一个对象,并且包含 distributor_id 属性,将其存储到本地
+ const distributorId = params.distributor_id;
+ uni.setStorageSync('distributor_id', distributorId);
+ return distributorId
+ } else {
+ // 如果 params 不符合条件,则将 distributor_id 设置为 0
+ uni.setStorageSync('distributor_id', 0);
+ }
+ } catch (error) {
+ console.log(error);
+ }
+ },
+
+ // 小程序跳转
+ navigateToMiniProgramWithParams(appId, path, params) {
+ uni.navigateToMiniProgram({
+ appId: appId,
+ path: path,
+ extraData: params,
+ success: function (res) {
+ console.log('跳转成功', res);
+ },
+ fail: function () {
+ uni.$u.toast("跳转失败:" + JSON.stringify({ appId, path, params }))
+ }
+ });
+ },
+
+ // 判断位置权限
+ isGetLocation: isGetLocation,
+};
\ No newline at end of file
diff --git a/vite.config.js b/vite.config.js
new file mode 100644
index 0000000..4650ae9
--- /dev/null
+++ b/vite.config.js
@@ -0,0 +1,35 @@
+import path from "path";
+import { defineConfig } from "vite";
+import uni from "@dcloudio/vite-plugin-uni";
+import vwt from "weapp-tailwindcss-webpack-plugin/vite";
+import postcssWeappTailwindcssRename from "weapp-tailwindcss-webpack-plugin/postcss";
+
+const isH5 = process.env.UNI_PLATFORM === "h5";
+
+// vite 插件配置,注意一定要把 uni 注册在 vwt 前
+const vitePlugins = [uni()];
+
+const resolve = (p) => {
+ return path.resolve(__dirname, p);
+};
+
+const postcssPlugins = [
+ require("autoprefixer")(),
+ require("tailwindcss")({
+ config: resolve("./tailwind.config.js"),
+ }),
+];
+if (!isH5) {
+ vitePlugins.push(vwt());
+ postcssPlugins.push(postcssWeappTailwindcssRename({}));
+}
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: vitePlugins,
+ css: {
+ postcss: {
+ // 内联写法
+ plugins: postcssPlugins,
+ },
+ },
+});
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..98b6b85
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,1052 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@alloc/quick-lru@^5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30"
+ integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==
+
+"@babel/code-frame@^7.18.6", "@babel/code-frame@^7.22.13":
+ version "7.23.5"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
+ integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
+ dependencies:
+ "@babel/highlight" "^7.23.4"
+ chalk "^2.4.2"
+
+"@babel/generator@7.20.5":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95"
+ integrity sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==
+ dependencies:
+ "@babel/types" "^7.20.5"
+ "@jridgewell/gen-mapping" "^0.3.2"
+ jsesc "^2.5.1"
+
+"@babel/generator@^7.20.5":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e"
+ integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==
+ dependencies:
+ "@babel/types" "^7.23.6"
+ "@jridgewell/gen-mapping" "^0.3.2"
+ "@jridgewell/trace-mapping" "^0.3.17"
+ jsesc "^2.5.1"
+
+"@babel/helper-environment-visitor@^7.18.9":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
+ integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
+
+"@babel/helper-function-name@^7.19.0":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
+ integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
+ dependencies:
+ "@babel/template" "^7.22.15"
+ "@babel/types" "^7.23.0"
+
+"@babel/helper-hoist-variables@^7.18.6":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
+ integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-split-export-declaration@^7.18.6":
+ version "7.22.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
+ integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-string-parser@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83"
+ integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==
+
+"@babel/helper-validator-identifier@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
+ integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
+
+"@babel/highlight@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
+ integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.22.20"
+ chalk "^2.4.2"
+ js-tokens "^4.0.0"
+
+"@babel/parser@7.20.5":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8"
+ integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==
+
+"@babel/parser@^7.20.5", "@babel/parser@^7.22.15":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b"
+ integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==
+
+"@babel/template@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
+ integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==
+ dependencies:
+ "@babel/code-frame" "^7.22.13"
+ "@babel/parser" "^7.22.15"
+ "@babel/types" "^7.22.15"
+
+"@babel/traverse@7.20.5":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.5.tgz#78eb244bea8270fdda1ef9af22a5d5e5b7e57133"
+ integrity sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==
+ dependencies:
+ "@babel/code-frame" "^7.18.6"
+ "@babel/generator" "^7.20.5"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.19.0"
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/parser" "^7.20.5"
+ "@babel/types" "^7.20.5"
+ debug "^4.1.0"
+ globals "^11.1.0"
+
+"@babel/types@^7.20.5", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd"
+ integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==
+ dependencies:
+ "@babel/helper-string-parser" "^7.23.4"
+ "@babel/helper-validator-identifier" "^7.22.20"
+ to-fast-properties "^2.0.0"
+
+"@isaacs/cliui@^8.0.2":
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
+ integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
+ dependencies:
+ string-width "^5.1.2"
+ string-width-cjs "npm:string-width@^4.2.0"
+ strip-ansi "^7.0.1"
+ strip-ansi-cjs "npm:strip-ansi@^6.0.1"
+ wrap-ansi "^8.1.0"
+ wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
+
+"@jridgewell/gen-mapping@^0.3.2":
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
+ integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
+ dependencies:
+ "@jridgewell/set-array" "^1.0.1"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
+"@jridgewell/resolve-uri@^3.1.0":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
+ integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
+
+"@jridgewell/set-array@^1.0.1":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
+ integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
+
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
+ version "1.4.15"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
+ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
+
+"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
+ version "0.3.20"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f"
+ integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.1.0"
+ "@jridgewell/sourcemap-codec" "^1.4.14"
+
+"@nodelib/fs.scandir@2.1.5":
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+ integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+ dependencies:
+ "@nodelib/fs.stat" "2.0.5"
+ run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.walk@^1.2.3":
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+ integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.5"
+ fastq "^1.6.0"
+
+"@pkgjs/parseargs@^0.11.0":
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
+ integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
+
+ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-regex@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
+ integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
+
+ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
+ansi-styles@^4.0.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ dependencies:
+ color-convert "^2.0.1"
+
+ansi-styles@^6.1.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
+ integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
+
+any-promise@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
+ integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
+
+anymatch@~3.1.2:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
+ integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+arg@^5.0.2:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
+ integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
+
+autoprefixer@^10.4.8:
+ version "10.4.16"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8"
+ integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==
+ dependencies:
+ browserslist "^4.21.10"
+ caniuse-lite "^1.0.30001538"
+ fraction.js "^4.3.6"
+ normalize-range "^0.1.2"
+ picocolors "^1.0.0"
+ postcss-value-parser "^4.2.0"
+
+balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+big.js@^5.2.2:
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+ integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+
+binary-extensions@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+ integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
+brace-expansion@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
+ integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
+ dependencies:
+ balanced-match "^1.0.0"
+
+braces@^3.0.2, braces@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
+browserslist@^4.21.10:
+ version "4.22.2"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b"
+ integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==
+ dependencies:
+ caniuse-lite "^1.0.30001565"
+ electron-to-chromium "^1.4.601"
+ node-releases "^2.0.14"
+ update-browserslist-db "^1.0.13"
+
+camelcase-css@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
+ integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
+
+caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001565:
+ version "1.0.30001572"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz#1ccf7dc92d2ee2f92ed3a54e11b7b4a3041acfa0"
+ integrity sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==
+
+chalk@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+chokidar@^3.5.3:
+ version "3.5.3"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
+ integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
+ dependencies:
+ anymatch "~3.1.2"
+ braces "~3.0.2"
+ glob-parent "~5.1.2"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.6.0"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
+color-convert@^1.9.0:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
+
+color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+commander@^4.0.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
+ integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+
+cross-spawn@^7.0.0:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
+cssesc@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
+ integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
+debug@^4.1.0:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
+didyoumean@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037"
+ integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
+
+dlv@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
+ integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
+
+eastasianwidth@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
+ integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
+
+electron-to-chromium@^1.4.601:
+ version "1.4.616"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz#4bddbc2c76e1e9dbf449ecd5da3d8119826ea4fb"
+ integrity sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==
+
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+emoji-regex@^9.2.2:
+ version "9.2.2"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
+ integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
+
+emojis-list@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+ integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
+
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
+
+fast-glob@^3.3.0:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
+ integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.2"
+ merge2 "^1.3.0"
+ micromatch "^4.0.4"
+
+fastq@^1.6.0:
+ version "1.16.0"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320"
+ integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==
+ dependencies:
+ reusify "^1.0.4"
+
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
+foreground-child@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d"
+ integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==
+ dependencies:
+ cross-spawn "^7.0.0"
+ signal-exit "^4.0.1"
+
+fraction.js@^4.3.6:
+ version "4.3.7"
+ resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7"
+ integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==
+
+fsevents@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+
+function-bind@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
+
+glob-parent@^5.1.2, glob-parent@~5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+ dependencies:
+ is-glob "^4.0.1"
+
+glob-parent@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+ integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+ dependencies:
+ is-glob "^4.0.3"
+
+glob@^10.3.10:
+ version "10.3.10"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b"
+ integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==
+ dependencies:
+ foreground-child "^3.1.0"
+ jackspeak "^2.3.5"
+ minimatch "^9.0.1"
+ minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
+ path-scurry "^1.10.1"
+
+globals@^11.1.0:
+ version "11.12.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+ integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
+
+hasown@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
+ integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==
+ dependencies:
+ function-bind "^1.1.2"
+
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
+is-core-module@^2.13.0:
+ version "2.13.1"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
+ integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
+ dependencies:
+ hasown "^2.0.0"
+
+is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
+
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ dependencies:
+ is-extglob "^2.1.1"
+
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
+jackspeak@^2.3.5:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8"
+ integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==
+ dependencies:
+ "@isaacs/cliui" "^8.0.2"
+ optionalDependencies:
+ "@pkgjs/parseargs" "^0.11.0"
+
+jiti@^1.19.1:
+ version "1.21.0"
+ resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d"
+ integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==
+
+js-md5@^0.8.3:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/js-md5/-/js-md5-0.8.3.tgz#921bab7efa95bfc9d62b87ee08a57f8fe4305b69"
+ integrity sha512-qR0HB5uP6wCuRMrWPTrkMaev7MJZwJuuw4fnwAzRgP4J4/F8RwtodOKpGp4XpqsLBFzzgqIO42efFAyz2Et6KQ==
+
+js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+jsesc@^2.5.1:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+ integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+
+json5@^2.1.2:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
+ integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+
+lilconfig@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
+ integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
+
+lilconfig@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc"
+ integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==
+
+lines-and-columns@^1.1.6:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
+ integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+
+loader-utils@^2.0.2:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c"
+ integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^2.1.2"
+
+lru-cache@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+ dependencies:
+ yallist "^4.0.0"
+
+"lru-cache@^9.1.1 || ^10.0.0":
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484"
+ integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==
+
+merge2@^1.3.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+ integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+micromatch@^4.0.4, micromatch@^4.0.5:
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
+ integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
+ dependencies:
+ braces "^3.0.2"
+ picomatch "^2.3.1"
+
+minimatch@^9.0.1:
+ version "9.0.3"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
+ integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
+ dependencies:
+ brace-expansion "^2.0.1"
+
+"minipass@^5.0.0 || ^6.0.2 || ^7.0.0":
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c"
+ integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==
+
+ms@2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+mz@^2.7.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
+ integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
+ dependencies:
+ any-promise "^1.0.0"
+ object-assign "^4.0.1"
+ thenify-all "^1.0.0"
+
+nanoid@^3.3.4, nanoid@^3.3.7:
+ version "3.3.7"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
+ integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
+
+node-releases@^2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
+ integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
+
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+normalize-range@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+ integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
+
+object-assign@^4.0.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
+
+object-hash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
+ integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
+
+path-key@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+path-parse@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+path-scurry@^1.10.1:
+ version "1.10.1"
+ resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698"
+ integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==
+ dependencies:
+ lru-cache "^9.1.1 || ^10.0.0"
+ minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
+
+picocolors@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+ integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
+pify@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
+
+pirates@^4.0.1:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
+ integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
+
+postcss-import@^15.1.0:
+ version "15.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70"
+ integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==
+ dependencies:
+ postcss-value-parser "^4.0.0"
+ read-cache "^1.0.0"
+ resolve "^1.1.7"
+
+postcss-js@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2"
+ integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==
+ dependencies:
+ camelcase-css "^2.0.1"
+
+postcss-load-config@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3"
+ integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==
+ dependencies:
+ lilconfig "^3.0.0"
+ yaml "^2.3.4"
+
+postcss-nested@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c"
+ integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==
+ dependencies:
+ postcss-selector-parser "^6.0.11"
+
+postcss-rem-to-responsive-pixel@^5.1.3:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/postcss-rem-to-responsive-pixel/-/postcss-rem-to-responsive-pixel-5.1.3.tgz#d9486de84137bbca71bc4e903b92db66c9bf5fb3"
+ integrity sha512-qi17MnTWzJ/3PnPrlspG5njMgmUomLXdgRc4AGqjfyMzn896V6tB4u5jW3xjtkxMM5IHB1z8LHnS81cLMpQ2Kg==
+
+postcss-selector-parser@^6.0.11:
+ version "6.0.14"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.14.tgz#9d45f1afbebedae6811a17f49d09754f2ad153b3"
+ integrity sha512-65xXYsT40i9GyWzlHQ5ShZoK7JZdySeOozi/tz2EezDo6c04q6+ckYMeoY7idaie1qp2dT5KoYQ2yky6JuoHnA==
+ dependencies:
+ cssesc "^3.0.0"
+ util-deprecate "^1.0.2"
+
+postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
+ integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
+
+postcss@8.4.20:
+ version "8.4.20"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56"
+ integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==
+ dependencies:
+ nanoid "^3.3.4"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
+postcss@^8.4.14, postcss@^8.4.23:
+ version "8.4.32"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9"
+ integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==
+ dependencies:
+ nanoid "^3.3.7"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
+queue-microtask@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+ integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
+read-cache@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
+ integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
+ dependencies:
+ pify "^2.3.0"
+
+readdirp@~3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+ dependencies:
+ picomatch "^2.2.1"
+
+resolve@^1.1.7, resolve@^1.22.2:
+ version "1.22.8"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
+ integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
+ dependencies:
+ is-core-module "^2.13.0"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
+reusify@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+ integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
+run-parallel@^1.1.9:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+ integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+ dependencies:
+ queue-microtask "^1.2.2"
+
+semver@^7.3.8:
+ version "7.5.4"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
+ integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
+ dependencies:
+ lru-cache "^6.0.0"
+
+shebang-command@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+ dependencies:
+ shebang-regex "^3.0.0"
+
+shebang-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+signal-exit@^4.0.1:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
+ integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+
+source-map-js@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
+ integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+
+"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0:
+ name string-width-cjs
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+string-width@^5.0.1, string-width@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
+ integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
+ dependencies:
+ eastasianwidth "^0.2.0"
+ emoji-regex "^9.2.2"
+ strip-ansi "^7.0.1"
+
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ name strip-ansi-cjs
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
+strip-ansi@^7.0.1:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
+ integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
+ dependencies:
+ ansi-regex "^6.0.1"
+
+sucrase@^3.32.0:
+ version "3.35.0"
+ resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263"
+ integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.3.2"
+ commander "^4.0.0"
+ glob "^10.3.10"
+ lines-and-columns "^1.1.6"
+ mz "^2.7.0"
+ pirates "^4.0.1"
+ ts-interface-checker "^0.1.9"
+
+supports-color@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
+
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+tailwindcss@^3.1.7:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.0.tgz#045a9c474e6885ebd0436354e611a76af1c76839"
+ integrity sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==
+ dependencies:
+ "@alloc/quick-lru" "^5.2.0"
+ arg "^5.0.2"
+ chokidar "^3.5.3"
+ didyoumean "^1.2.2"
+ dlv "^1.1.3"
+ fast-glob "^3.3.0"
+ glob-parent "^6.0.2"
+ is-glob "^4.0.3"
+ jiti "^1.19.1"
+ lilconfig "^2.1.0"
+ micromatch "^4.0.5"
+ normalize-path "^3.0.0"
+ object-hash "^3.0.0"
+ picocolors "^1.0.0"
+ postcss "^8.4.23"
+ postcss-import "^15.1.0"
+ postcss-js "^4.0.1"
+ postcss-load-config "^4.0.1"
+ postcss-nested "^6.0.1"
+ postcss-selector-parser "^6.0.11"
+ resolve "^1.22.2"
+ sucrase "^3.32.0"
+
+thenify-all@^1.0.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
+ integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==
+ dependencies:
+ thenify ">= 3.1.0 < 4"
+
+"thenify@>= 3.1.0 < 4":
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f"
+ integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
+ dependencies:
+ any-promise "^1.0.0"
+
+to-fast-properties@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+ integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
+
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
+ts-interface-checker@^0.1.9:
+ version "0.1.13"
+ resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"
+ integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
+
+update-browserslist-db@^1.0.13:
+ version "1.0.13"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
+ integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
+ dependencies:
+ escalade "^3.1.1"
+ picocolors "^1.0.0"
+
+util-deprecate@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+
+weapp-tailwindcss-webpack-plugin@^1.6.10:
+ version "1.12.8"
+ resolved "https://registry.yarnpkg.com/weapp-tailwindcss-webpack-plugin/-/weapp-tailwindcss-webpack-plugin-1.12.8.tgz#2a59ada930a985c7abf0f77d19c7de4522583e4d"
+ integrity sha512-nGRaB7HwWLXC4XZxKg3nG4VKinXx3ucH7pekRIavBpoZmmIupINMXhQYEf5D64r/YIJwHfhuCoYxoSZOmCv/Xg==
+ dependencies:
+ "@babel/generator" "7.20.5"
+ "@babel/parser" "7.20.5"
+ "@babel/traverse" "7.20.5"
+ loader-utils "^2.0.2"
+ micromatch "^4.0.5"
+ postcss "8.4.20"
+ postcss-selector-parser "^6.0.11"
+ semver "^7.3.8"
+ webpack-sources "^3.2.3"
+
+webpack-sources@^3.2.3:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
+ integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
+
+which@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ dependencies:
+ isexe "^2.0.0"
+
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrap-ansi@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
+ integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
+ dependencies:
+ ansi-styles "^6.1.0"
+ string-width "^5.0.1"
+ strip-ansi "^7.0.1"
+
+yallist@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+yaml@^2.3.4:
+ version "2.3.4"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2"
+ integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==