diff --git a/build/cool/eps.d.ts b/build/cool/eps.d.ts index f34324b3..39271e1d 100644 --- a/build/cool/eps.d.ts +++ b/build/cool/eps.d.ts @@ -1,47 +1,1129 @@ declare namespace Eps { - interface BaseSysDepartmentEntity { + interface NcCategoryEntity { + /** + * 分类名称 + */ + name?: string; + + /** + * 父分类ID + */ + parentId?: number; + + /** + * 图标 + */ + icon?: string; + + /** + * 排序号 + */ + sortOrder?: number; + + /** + * 状态 0-禁用 1-启用 + */ + status?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + /** * 任意键值 */ [key: string]: any; } - interface BaseSysMenuEntity { + interface NcDeviceEntity { + /** + * 设备编号 + */ + deviceNo?: string; + + /** + * 设备名称 + */ + name?: string; + + /** + * 设备类型 + */ + type?: string; + + /** + * 设备型号 + */ + model?: string; + + /** + * 安装位置 + */ + location?: string; + + /** + * 所属农场ID + */ + farmId?: number; + + /** + * 关联种子ID + */ + userSeedId?: number; + + /** + * 设备图片 + */ + image?: string; + + /** + * 最后在线时间 + */ + lastOnlineTime?: string; + + /** + * 当前温度 + */ + temperature?: string; + + /** + * 当前湿度 + */ + humidity?: string; + + /** + * 当前光照 + */ + light?: string; + + /** + * 土壤湿度 + */ + soilMoisture?: string; + + /** + * 状态 0-离线 1-在线 2-故障 + */ + status?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + /** * 任意键值 */ [key: string]: any; } - interface BaseSysParamEntity { + interface NcAppMenuEntity { + /** + * 菜单标题 + */ + title?: string; + + /** + * 菜单副标题 + */ + subtitle?: string; + + /** + * 菜单图标(图标名或URL) + */ + icon?: string; + + /** + * 跳转路径 + */ + path?: string; + + /** + * 背景颜色/渐变 + */ + color?: string; + + /** + * 菜单类型 home-首页菜单 my-我的页菜单 tabbar-底部导航 + */ + menuType?: string; + + /** + * 排序号 + */ + sortOrder?: number; + + /** + * 状态 0-禁用 1-启用 + */ + status?: number; + + /** + * 备注 + */ + remark?: string; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + /** * 任意键值 */ [key: string]: any; } - interface BaseSysUserEntity { + interface NcOrderEntity { + /** + * 订单号 + */ + orderNo?: string; + + /** + * 用户ID + */ + userId?: number; + + /** + * 订单类型 1-商品 2-种子 3-认养 + */ + orderType?: number; + + /** + * 总金额 + */ + totalAmount?: string; + + /** + * 优惠金额 + */ + discountAmount?: string; + + /** + * 运费 + */ + freightAmount?: string; + + /** + * 实付金额 + */ + payAmount?: string; + + /** + * 商品数量 + */ + productCount?: number; + + /** + * 收货地址ID + */ + addressId?: number; + + /** + * 收货人 + */ + receiverName?: string; + + /** + * 收货电话 + */ + receiverPhone?: string; + + /** + * 收货地址 + */ + receiverAddress?: string; + + /** + * 订单备注 + */ + remark?: string; + + /** + * 优惠券ID + */ + couponId?: number; + + /** + * 支付方式 1-微信 2-支付宝 + */ + paymentMethod?: number; + + /** + * 支付流水号 + */ + paymentNo?: string; + + /** + * 支付时间 + */ + payTime?: string; + + /** + * 发货时间 + */ + deliveryTime?: string; + + /** + * 物流公司 + */ + expressCompany?: string; + + /** + * 物流单号 + */ + expressNo?: string; + + /** + * 完成时间 + */ + completeTime?: string; + + /** + * 取消原因 + */ + cancelReason?: string; + + /** + * 状态 1-待支付 2-已支付 3-已发货 4-已完成 5-已取消 6-退款中 + */ + status?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + /** * 任意键值 */ [key: string]: any; } - interface BaseSysRoleEntity { + interface NcSeedEntity { + /** + * 种子名称 + */ + name?: string; + + /** + * 种子品种 + */ + variety?: string; + + /** + * 种子描述 + */ + description?: string; + + /** + * 种子图片URL + */ + imageUrl?: string; + + /** + * 各阶段图片JSON + */ + stageImages?: string; + + /** + * 价格 + */ + price?: string; + + /** + * 原价 + */ + originalPrice?: string; + + /** + * 成长周期(天) + */ + growthCycle?: number; + + /** + * 总阶段数 + */ + totalStages?: number; + + /** + * 关联商品ID + */ + relatedProductId?: number; + + /** + * 权益说明JSON + */ + benefits?: string; + + /** + * 分类ID + */ + categoryId?: number; + + /** + * 库存 + */ + stock?: number; + + /** + * 销量 + */ + salesCount?: number; + + /** + * 排序号 + */ + sortOrder?: number; + + /** + * 状态 0-下架 1-上架 + */ + status?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + /** * 任意键值 */ [key: string]: any; } - interface BaseSysLogEntity { + interface NcUserAdoptionEntity { + /** + * 用户ID + */ + userId?: number; + + /** + * 项目ID + */ + projectId?: number; + + /** + * 项目名称(冗余) + */ + projectName?: string; + + /** + * 项目图片(冗余) + */ + projectImage?: string; + + /** + * 订单ID + */ + orderId?: number; + + /** + * 礼品卡ID + */ + giftCardId?: number; + + /** + * 认养编号 + */ + adoptionNo?: string; + + /** + * 认养开始时间 + */ + startTime?: string; + + /** + * 认养结束时间 + */ + endTime?: string; + + /** + * 当前进度百分比 + */ + progress?: number; + + /** + * 进度记录(JSON) + */ + progressRecords?: string; + + /** + * 证书URL + */ + certificateUrl?: string; + + /** + * 权益是否已激活 + */ + benefitsActivated?: number; + + /** + * 收货地址ID + */ + addressId?: number; + + /** + * 状态 1-进行中 2-已完成 3-已取消 + */ + status?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + /** * 任意键值 */ [key: string]: any; } - interface DictTypeEntity { + interface NcUserSeedEntity { + /** + * 用户ID + */ + userId?: number; + + /** + * 种子ID + */ + seedId?: number; + + /** + * 种子名称(冗余) + */ + seedName?: string; + + /** + * 种子图片(冗余) + */ + seedImage?: string; + + /** + * 当前阶段 + */ + currentStage?: number; + + /** + * 成长进度百分比 0-100 + */ + progress?: number; + + /** + * 健康值 0-100 + */ + health?: number; + + /** + * 种植时间 + */ + plantTime?: string; + + /** + * 预计成熟时间 + */ + matureTime?: string; + + /** + * 实际成熟时间 + */ + realMatureTime?: string; + + /** + * 种子数据JSON + */ + seedData?: string; + + /** + * 成长记录JSON + */ + growthRecords?: string; + + /** + * 今日浇水次数 + */ + todayWaterCount?: number; + + /** + * 今日施肥次数 + */ + todayFertilizeCount?: number; + + /** + * 关联订单ID + */ + orderId?: number; + + /** + * 发货地址ID + */ + addressId?: number; + + /** + * 状态 1-生长中 2-已成熟 3-已发货 4-已取消 + */ + status?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface NcModel3DEntity { + /** + * 模型名称 + */ + name?: string; + + /** + * 模型描述 + */ + description?: string; + + /** + * 模型文件URL + */ + modelUrl?: string; + + /** + * 模型格式 fbx/glb/gltf + */ + modelFormat?: string; + + /** + * 预览图URL + */ + previewUrl?: string; + + /** + * 模型类型 seed-种子模型 planet-星球模型 other-其他 + */ + modelType?: string; + + /** + * 关联种子ID + */ + seedId?: number; + + /** + * 文件大小(字节) + */ + fileSize?: number; + + /** + * 排序号 + */ + sortOrder?: number; + + /** + * 状态 0-禁用 1-启用 + */ + status?: number; + + /** + * 备注 + */ + remark?: string; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface NcAdoptionProjectEntity { + /** + * 项目名称 + */ + name?: string; + + /** + * 项目描述 + */ + description?: string; + + /** + * 农场ID + */ + farmId?: number; + + /** + * 项目分类 + */ + category?: string; + + /** + * 认养价格 + */ + price?: string; + + /** + * 原价 + */ + originalPrice?: string; + + /** + * 认养周期(天) + */ + duration?: number; + + /** + * 权益说明(JSON) + */ + benefits?: string; + + /** + * 项目图片(JSON) + */ + images?: string; + + /** + * 库存 + */ + stock?: number; + + /** + * 已认养数量 + */ + adoptedCount?: number; + + /** + * 预计产量 + */ + expectedYield?: string; + + /** + * 排序号 + */ + sortOrder?: number; + + /** + * 状态 0-下架 1-上架 + */ + status?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface NcUserEntity { + /** + * 手机号 + */ + mobile?: string; + + /** + * 用户名 + */ + username?: string; + + /** + * 密码 + */ + password?: string; + + /** + * 昵称 + */ + nickname?: string; + + /** + * 头像URL + */ + avatar?: string; + + /** + * 性别 0-未知 1-男 2-女 + */ + gender?: number; + + /** + * 生日 + */ + birthday?: string; + + /** + * 省份 + */ + province?: string; + + /** + * 城市 + */ + city?: string; + + /** + * 详细地址 + */ + address?: string; + + /** + * 微信OpenID + */ + wechatOpenId?: string; + + /** + * 微信UnionID + */ + wechatUnionId?: string; + + /** + * 用户类型 1-普通用户 2-VIP用户 + */ + userType?: number; + + /** + * 积分 + */ + points?: number; + + /** + * 最后登录时间 + */ + lastLoginTime?: string; + + /** + * 最后登录IP + */ + lastLoginIp?: string; + + /** + * 状态 0-禁用 1-正常 + */ + status?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface NcProductEntity { + /** + * 商品名称 + */ + name?: string; + + /** + * 商品描述 + */ + description?: string; + + /** + * 分类ID + */ + categoryId?: number; + + /** + * 商品价格 + */ + price?: string; + + /** + * 原价 + */ + originalPrice?: string; + + /** + * 库存 + */ + stock?: number; + + /** + * 销量 + */ + salesCount?: number; + + /** + * 商品图片(JSON) + */ + images?: string; + + /** + * 主图 + */ + mainImage?: string; + + /** + * 规格参数(JSON) + */ + specifications?: string; + + /** + * 商品详情(富文本) + */ + detail?: string; + + /** + * 产地 + */ + origin?: string; + + /** + * 保质期 + */ + shelfLife?: string; + + /** + * 存储条件 + */ + storageCondition?: string; + + /** + * 排序号 + */ + sortOrder?: number; + + /** + * 是否推荐 0-否 1-是 + */ + isRecommend?: number; + + /** + * 状态 0-下架 1-上架 + */ + status?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface NcFarmEntity { + /** + * 农场名称 + */ + name?: string; + + /** + * 农场简介 + */ + description?: string; + + /** + * 农场地址 + */ + address?: string; + + /** + * 省份 + */ + province?: string; + + /** + * 城市 + */ + city?: string; + + /** + * 经度 + */ + longitude?: string; + + /** + * 纬度 + */ + latitude?: string; + + /** + * 农场图片(JSON) + */ + images?: string; + + /** + * 联系人 + */ + contactName?: string; + + /** + * 联系电话 + */ + contactPhone?: string; + + /** + * 农场面积(亩) + */ + area?: string; + + /** + * 农场特色 + */ + features?: string; + + /** + * 认证信息 + */ + certifications?: string; + + /** + * 状态 0-待审核 1-正常 2-停用 + */ + status?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface NcGiftCardEntity { + /** + * 礼品卡码 + */ + cardCode?: string; + + /** + * 二维码内容 + */ + qrCode?: string; + + /** + * 关联项目ID + */ + projectId?: number; + + /** + * 项目名称 + */ + projectName?: string; + + /** + * 卡面金额 + */ + amount?: string; + + /** + * 有效期开始 + */ + validFrom?: string; + + /** + * 有效期结束 + */ + validTo?: string; + + /** + * 兑换用户ID + */ + redeemUserId?: number; + + /** + * 兑换时间 + */ + redeemTime?: string; + + /** + * 状态 0-未使用 1-已使用 2-已过期 + */ + status?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + /** * 任意键值 */ @@ -50,26 +1132,72 @@ declare namespace Eps { interface DictInfoEntity { /** - * 任意键值 + * 类型ID */ - [key: string]: any; - } + typeId?: number; + + /** + * 父ID + */ + parentId?: number; + + /** + * 名称 + */ + name?: string; + + /** + * 值 + */ + value?: string; + + /** + * 排序 + */ + orderNum?: number; + + /** + * 备注 + */ + remark?: string; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; - interface PluginInfoEntity { /** * 任意键值 */ [key: string]: any; } - interface SpaceInfoEntity { + interface DictTypeEntity { /** - * 任意键值 + * 名称 */ - [key: string]: any; - } + name?: string; + + /** + * 标识 + */ + key?: string; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; - interface SpaceTypeEntity { /** * 任意键值 */ @@ -77,6 +1205,358 @@ declare namespace Eps { } interface RecycleDataEntity { + /** + * 表信息 + */ + entityInfo?: string; + + /** + * 操作人 + */ + userId?: number; + + /** + * 被删除的数据 + */ + data?: string; + + /** + * 请求的接口 + */ + url?: string; + + /** + * 请求参数 + */ + params?: string; + + /** + * 删除数据条数 + */ + count?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface BaseSysLogEntity { + /** + * 用户ID + */ + userId?: number; + + /** + * 行为 + */ + action?: string; + + /** + * IP + */ + ip?: string; + + /** + * 参数 + */ + params?: string; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface BaseSysRoleEntity { + /** + * 用户ID + */ + userId?: number; + + /** + * 名称 + */ + name?: string; + + /** + * 角色标签 + */ + label?: string; + + /** + * 备注 + */ + remark?: string; + + /** + * 数据权限是否关联上下级 + */ + relevance?: number; + + /** + * 菜单权限 + */ + menuIdList?: string; + + /** + * 部门权限 + */ + departmentIdList?: string; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface BaseSysParamEntity { + /** + * 键 + */ + keyName?: string; + + /** + * 名称 + */ + name?: string; + + /** + * 数据 + */ + data?: string; + + /** + * 数据类型 0:字符串 1:数组 2:键值对 + */ + dataType?: number; + + /** + * 备注 + */ + remark?: string; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface BaseSysMenuEntity { + /** + * 父菜单ID + */ + parentId?: number; + + /** + * 菜单名称 + */ + name?: string; + + /** + * 权限 + */ + perms?: string; + + /** + * 类型 0:目录 1:菜单 2:按钮 + */ + type?: number; + + /** + * 图标 + */ + icon?: string; + + /** + * 排序 + */ + orderNum?: number; + + /** + * 菜单地址 + */ + router?: string; + + /** + * 视图地址 + */ + viewPath?: string; + + /** + * 路由缓存 + */ + keepAlive?: boolean; + + /** + * 是否显示 + */ + isShow?: boolean; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface BaseSysUserEntity { + /** + * 部门ID + */ + departmentId?: number; + + /** + * 姓名 + */ + name?: string; + + /** + * 用户名 + */ + username?: string; + + /** + * 密码 + */ + password?: string; + + /** + * 密码版本 + */ + passwordV?: number; + + /** + * 昵称 + */ + nickName?: string; + + /** + * 头像 + */ + headImg?: string; + + /** + * 手机号 + */ + phone?: string; + + /** + * 邮箱 + */ + email?: string; + + /** + * 备注 + */ + remark?: string; + + /** + * 状态 0:禁用 1:启用 + */ + status?: number; + + /** + * socketId + */ + socketId?: string; + + /** + * 租户id + */ + tenantId?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface BaseSysDepartmentEntity { + /** + * 部门名称 + */ + name?: string; + + /** + * 上级部门ID + */ + parentId?: number; + + /** + * 排序 + */ + orderNum?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + /** * 任意键值 */ @@ -84,6 +1564,212 @@ declare namespace Eps { } interface UserInfoEntity { + /** + * 登录唯一ID + */ + unionid?: string; + + /** + * 头像 + */ + avatarUrl?: string; + + /** + * 昵称 + */ + nickName?: string; + + /** + * 手机号 + */ + phone?: string; + + /** + * 性别 0-未知 1-男 2-女 + */ + gender?: number; + + /** + * 状态 0-禁用 1-正常 2-已注销 + */ + status?: number; + + /** + * 登录方式 0-小程序 1-公众号 2-H5 + */ + loginType?: string; + + /** + * 密码 + */ + password?: string; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface PluginInfoEntity { + /** + * 名称 + */ + name?: string; + + /** + * 简介 + */ + description?: string; + + /** + * 实例对象 + */ + key?: string; + + /** + * Hook + */ + hook?: string; + + /** + * 描述 + */ + readme?: string; + + /** + * 版本 + */ + version?: string; + + /** + * Logo(base64) + */ + logo?: string; + + /** + * 作者 + */ + author?: string; + + /** + * 状态 0-禁用 1-启用 + */ + status?: number; + + /** + * 插件的plugin.json + */ + pluginJson?: string; + + /** + * 配置 + */ + config?: string; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface SpaceTypeEntity { + /** + * 类别名称 + */ + name?: string; + + /** + * 父分类ID + */ + parentId?: number; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + + /** + * 任意键值 + */ + [key: string]: any; + } + + interface SpaceInfoEntity { + /** + * 地址 + */ + url?: string; + + /** + * 类型 + */ + type?: string; + + /** + * 分类ID + */ + classifyId?: number; + + /** + * 文件id + */ + fileId?: string; + + /** + * 文件名 + */ + name?: string; + + /** + * 文件大小 + */ + size?: number; + + /** + * 文档版本 + */ + version?: number; + + /** + * 文件位置 + */ + filePath?: string; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + /** * 任意键值 */ @@ -91,6 +1777,86 @@ declare namespace Eps { } interface TaskInfoEntity { + /** + * 名称 + */ + name?: string; + + /** + * 任务ID + */ + jobId?: string; + + /** + * 最大执行次数 不传为无限次 + */ + repeatCount?: number; + + /** + * 每间隔多少毫秒执行一次 如果cron设置了 这项设置就无效 + */ + every?: number; + + /** + * 状态 0:停止 1:运行 + */ + status?: number; + + /** + * 服务实例名称 + */ + service?: string; + + /** + * 状态 0:cron 1:时间间隔 + */ + taskType?: number; + + /** + * 状态 0:系统 1:用户 + */ + type?: number; + + /** + * 任务数据 + */ + data?: string; + + /** + * 备注 + */ + remark?: string; + + /** + * cron + */ + cron?: string; + + /** + * 下一次执行时间 + */ + nextRunTime?: Date; + + /** + * 开始时间 + */ + startDate?: Date; + + /** + * 结束时间 + */ + endDate?: Date; + + /** + * 创建时间 + */ + createTime?: Date; + + /** + * 更新时间 + */ + updateTime?: Date; + /** * 任意键值 */ @@ -112,29 +1878,79 @@ declare namespace Eps { [key: string]: any; } - interface BaseSysMenuPageResponse { + interface NongchuangDevicePageResponse { pagination: PagePagination; - list: BaseSysMenuEntity[]; + list: NcDeviceEntity[]; } - interface BaseSysParamPageResponse { + interface NongchuangAppMenuPageResponse { pagination: PagePagination; - list: BaseSysParamEntity[]; + list: NcAppMenuEntity[]; } - interface BaseSysUserPageResponse { + interface NongchuangProductPageResponse { pagination: PagePagination; - list: BaseSysUserEntity[]; + list: NcProductEntity[]; } - interface BaseSysRolePageResponse { + interface NongchuangModel3dPageResponse { pagination: PagePagination; - list: BaseSysRoleEntity[]; + list: NcModel3DEntity[]; } - interface BaseSysLogPageResponse { + interface NongchuangOrderPageResponse { pagination: PagePagination; - list: BaseSysLogEntity[]; + list: NcOrderEntity[]; + } + + interface NongchuangFarmPageResponse { + pagination: PagePagination; + list: NcFarmEntity[]; + } + + interface NongchuangAdoptionProjectPageResponse { + pagination: PagePagination; + list: NcAdoptionProjectEntity[]; + } + + interface NongchuangUserSeedPageResponse { + pagination: PagePagination; + list: NcUserSeedEntity[]; + } + + interface NongchuangUserAdoptionPageResponse { + pagination: PagePagination; + list: NcUserAdoptionEntity[]; + } + + interface NongchuangUserPageResponse { + pagination: PagePagination; + list: NcUserEntity[]; + } + + interface NongchuangSeedPageResponse { + pagination: PagePagination; + list: NcSeedEntity[]; + } + + interface NongchuangGiftCardPageResponse { + pagination: PagePagination; + list: NcGiftCardEntity[]; + } + + interface NongchuangCategoryPageResponse { + pagination: PagePagination; + list: NcCategoryEntity[]; + } + + interface TaskInfoPageResponse { + pagination: PagePagination; + list: TaskInfoEntity[]; + } + + interface RecycleDataPageResponse { + pagination: PagePagination; + list: RecycleDataEntity[]; } interface DictTypePageResponse { @@ -152,6 +1968,36 @@ declare namespace Eps { list: PluginInfoEntity[]; } + interface BaseSysUserPageResponse { + pagination: PagePagination; + list: BaseSysUserEntity[]; + } + + interface BaseSysRolePageResponse { + pagination: PagePagination; + list: BaseSysRoleEntity[]; + } + + interface BaseSysMenuPageResponse { + pagination: PagePagination; + list: BaseSysMenuEntity[]; + } + + interface BaseSysLogPageResponse { + pagination: PagePagination; + list: BaseSysLogEntity[]; + } + + interface BaseSysParamPageResponse { + pagination: PagePagination; + list: BaseSysParamEntity[]; + } + + interface UserInfoPageResponse { + pagination: PagePagination; + list: UserInfoEntity[]; + } + interface SpaceInfoPageResponse { pagination: PagePagination; list: SpaceInfoEntity[]; @@ -162,60 +2008,1361 @@ declare namespace Eps { list: SpaceTypeEntity[]; } - interface RecycleDataPageResponse { - pagination: PagePagination; - list: RecycleDataEntity[]; - } - - interface UserInfoPageResponse { - pagination: PagePagination; - list: UserInfoEntity[]; - } - - interface TaskInfoPageResponse { - pagination: PagePagination; - list: TaskInfoEntity[]; - } - - interface BaseSysDepartment { + interface NongchuangDevice { /** - * delete + * 分页 */ - delete(data?: any): Promise; + page(data?: any): Promise; /** - * list + * 查询 */ - list(data?: any): Promise; + list(data?: any): Promise; /** - * order + * 信息 */ - order(data?: any): Promise; + info(data?: any): Promise; /** - * update + * 修改 */ update(data?: any): Promise; /** - * add + * 删除 + */ + delete(data?: any): Promise; + + /** + * 新增 */ add(data?: any): Promise; /** * 权限标识 */ - permission: { delete: string; list: string; order: string; update: string; add: string }; + permission: { + page: string; + list: string; + info: string; + update: string; + delete: string; + add: string; + }; + + /** + * 权限状态 + */ + _permission: { + page: boolean; + list: boolean; + info: boolean; + update: boolean; + delete: boolean; + add: boolean; + }; + + request: Request; + } + + interface NongchuangAppMenu { + /** + * 更新菜单排序 + */ + updatesort(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 根据类型获取菜单列表 + */ + listbytype(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 批量更新排序 + */ + batchsort(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + updatesort: string; + update: string; + listbytype: string; + delete: string; + add: string; + list: string; + info: string; + batchsort: string; + page: string; + }; + + /** + * 权限状态 + */ + _permission: { + updatesort: boolean; + update: boolean; + listbytype: boolean; + delete: boolean; + add: boolean; + list: boolean; + info: boolean; + batchsort: boolean; + page: boolean; + }; + + request: Request; + } + + interface NongchuangProduct { + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + add: string; + page: string; + info: string; + list: string; + update: string; + delete: string; + }; + + /** + * 权限状态 + */ + _permission: { + add: boolean; + page: boolean; + info: boolean; + list: boolean; + update: boolean; + delete: boolean; + }; + + request: Request; + } + + interface NongchuangModel3d { + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 获取默认星球模型 + */ + defaultplanet(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 根据类型获取模型列表 + */ + listbytype(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 根据种子ID获取模型 + */ + byseed(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + update: string; + delete: string; + page: string; + defaultplanet: string; + info: string; + add: string; + listbytype: string; + list: string; + byseed: string; + }; + + /** + * 权限状态 + */ + _permission: { + update: boolean; + delete: boolean; + page: boolean; + defaultplanet: boolean; + info: boolean; + add: boolean; + listbytype: boolean; + list: boolean; + byseed: boolean; + }; + + request: Request; + } + + interface NongchuangOrder { + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + add: string; + info: string; + list: string; + page: string; + update: string; + delete: string; + }; + + /** + * 权限状态 + */ + _permission: { + add: boolean; + info: boolean; + list: boolean; + page: boolean; + update: boolean; + delete: boolean; + }; + + request: Request; + } + + interface NongchuangFarm { + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + update: string; + delete: string; + add: string; + page: string; + info: string; + list: string; + }; + + /** + * 权限状态 + */ + _permission: { + update: boolean; + delete: boolean; + add: boolean; + page: boolean; + info: boolean; + list: boolean; + }; + + request: Request; + } + + interface NongchuangAdoptionProject { + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + list: string; + add: string; + update: string; + delete: string; + page: string; + info: string; + }; + + /** + * 权限状态 + */ + _permission: { + list: boolean; + add: boolean; + update: boolean; + delete: boolean; + page: boolean; + info: boolean; + }; + + request: Request; + } + + interface NongchuangUserSeed { + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + page: string; + info: string; + list: string; + add: string; + update: string; + delete: string; + }; + + /** + * 权限状态 + */ + _permission: { + page: boolean; + info: boolean; + list: boolean; + add: boolean; + update: boolean; + delete: boolean; + }; + + request: Request; + } + + interface NongchuangUserAdoption { + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + list: string; + delete: string; + page: string; + add: string; + info: string; + update: string; + }; + + /** + * 权限状态 + */ + _permission: { + list: boolean; + delete: boolean; + page: boolean; + add: boolean; + info: boolean; + update: boolean; + }; + + request: Request; + } + + interface NongchuangStats { + /** + * 获取用户统计 + */ + users(data?: any): Promise; + + /** + * 获取近7天订单趋势 + */ + ordertrend(data?: any): Promise; + + /** + * 获取用户增长趋势 + */ + usergrowth(data?: any): Promise; + + /** + * 获取种子统计 + */ + seeds(data?: any): Promise; + + /** + * 获取仪表盘数据 + */ + dashboard(data?: any): Promise; + + /** + * 获取订单统计 + */ + orders(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + users: string; + ordertrend: string; + usergrowth: string; + seeds: string; + dashboard: string; + orders: string; + }; + + /** + * 权限状态 + */ + _permission: { + users: boolean; + ordertrend: boolean; + usergrowth: boolean; + seeds: boolean; + dashboard: boolean; + orders: boolean; + }; + + request: Request; + } + + interface NongchuangUser { + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + update: string; + delete: string; + add: string; + page: string; + info: string; + list: string; + }; + + /** + * 权限状态 + */ + _permission: { + update: boolean; + delete: boolean; + add: boolean; + page: boolean; + info: boolean; + list: boolean; + }; + + request: Request; + } + + interface NongchuangSeed { + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + add: string; + update: string; + delete: string; + page: string; + info: string; + list: string; + }; + + /** + * 权限状态 + */ + _permission: { + add: boolean; + update: boolean; + delete: boolean; + page: boolean; + info: boolean; + list: boolean; + }; + + request: Request; + } + + interface NongchuangGiftCard { + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + page: string; + info: string; + add: string; + list: string; + update: string; + delete: string; + }; + + /** + * 权限状态 + */ + _permission: { + page: boolean; + info: boolean; + add: boolean; + list: boolean; + update: boolean; + delete: boolean; + }; + + request: Request; + } + + interface NongchuangCategory { + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + delete: string; + page: string; + add: string; + list: string; + info: string; + update: string; + }; /** * 权限状态 */ _permission: { delete: boolean; + page: boolean; + add: boolean; + list: boolean; + info: boolean; + update: boolean; + }; + + request: Request; + } + + interface TaskInfo { + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 开始任务 + */ + start(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 任务日志 + */ + log(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 执行一次 + */ + once(data?: any): Promise; + + /** + * 停止任务 + */ + stop(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + info: string; + start: string; + update: string; + delete: string; + log: string; + add: string; + once: string; + stop: string; + page: string; + }; + + /** + * 权限状态 + */ + _permission: { + info: boolean; + start: boolean; + update: boolean; + delete: boolean; + log: boolean; + add: boolean; + once: boolean; + stop: boolean; + page: boolean; + }; + + request: Request; + } + + interface RecycleData { + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 恢复数据 + */ + restore(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + update: string; + delete: string; + list: string; + add: string; + restore: string; + page: string; + info: string; + }; + + /** + * 权限状态 + */ + _permission: { + update: boolean; + delete: boolean; + list: boolean; + add: boolean; + restore: boolean; + page: boolean; + info: boolean; + }; + + request: Request; + } + + interface DictType { + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + update: string; + delete: string; + page: string; + info: string; + list: string; + add: string; + }; + + /** + * 权限状态 + */ + _permission: { + update: boolean; + delete: boolean; + page: boolean; + info: boolean; + list: boolean; + add: boolean; + }; + + request: Request; + } + + interface DictInfo { + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 获得字典数据 + */ + data(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 获得字典数据 + */ + types(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + info: string; + update: string; + delete: string; + data: string; + list: string; + types: string; + page: string; + add: string; + }; + + /** + * 权限状态 + */ + _permission: { + info: boolean; + update: boolean; + delete: boolean; + data: boolean; + list: boolean; + types: boolean; + page: boolean; + add: boolean; + }; + + request: Request; + } + + interface PluginInfo { + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 安装插件 + */ + install(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 卸载插件 + */ + delete(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + info: string; + install: string; + list: string; + update: string; + delete: string; + add: string; + page: string; + }; + + /** + * 权限状态 + */ + _permission: { + info: boolean; + install: boolean; + list: boolean; + update: boolean; + delete: boolean; + add: boolean; + page: boolean; + }; + + request: Request; + } + + interface BaseSysDepartment { + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 排序 + */ + order(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { list: string; order: string; add: string; update: string; delete: string }; + + /** + * 权限状态 + */ + _permission: { list: boolean; order: boolean; + add: boolean; update: boolean; + delete: boolean; + }; + + request: Request; + } + + interface BaseSysUser { + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 移动部门 + */ + move(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + page: string; + info: string; + list: string; + add: string; + update: string; + move: string; + delete: string; + }; + + /** + * 权限状态 + */ + _permission: { + page: boolean; + info: boolean; + list: boolean; + add: boolean; + update: boolean; + move: boolean; + delete: boolean; + }; + + request: Request; + } + + interface BaseSysRole { + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + update: string; + delete: string; + page: string; + list: string; + info: string; + add: string; + }; + + /** + * 权限状态 + */ + _permission: { + update: boolean; + delete: boolean; + page: boolean; + list: boolean; + info: boolean; add: boolean; }; @@ -224,252 +3371,78 @@ declare namespace Eps { interface BaseSysMenu { /** - * update - */ - update(data?: any): Promise; - - /** - * export - */ - export(data?: any): Promise; - - /** - * add - */ - add(data?: any): Promise; - - /** - * info - */ - info(data?: any): Promise; - - /** - * list - */ - list(data?: any): Promise; - - /** - * import - */ - import(data?: any): Promise; - - /** - * delete - */ - delete(data?: any): Promise; - - /** - * create + * 创建代码 */ create(data?: any): Promise; /** - * page + * 新增 + */ + add(data?: any): Promise; + + /** + * 分页 */ page(data?: any): Promise; + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 查询 + */ + list(data?: any): Promise; + + /** + * 导入 + */ + import(data?: any): Promise; + + /** + * 导出 + */ + export(data?: any): Promise; + + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + /** * 权限标识 */ permission: { - update: string; - export: string; + create: string; add: string; + page: string; info: string; list: string; import: string; + export: string; + update: string; delete: string; - create: string; - page: string; }; /** * 权限状态 */ _permission: { - update: boolean; - export: boolean; + create: boolean; add: boolean; + page: boolean; info: boolean; list: boolean; import: boolean; - delete: boolean; - create: boolean; - page: boolean; - }; - - request: Request; - } - - interface BaseSysParam { - /** - * delete - */ - delete(data?: any): Promise; - - /** - * page - */ - page(data?: any): Promise; - - /** - * html - */ - html(data?: any): Promise; - - /** - * info - */ - info(data?: any): Promise; - - /** - * update - */ - update(data?: any): Promise; - - /** - * add - */ - add(data?: any): Promise; - - /** - * 权限标识 - */ - permission: { - delete: string; - page: string; - html: string; - info: string; - update: string; - add: string; - }; - - /** - * 权限状态 - */ - _permission: { - delete: boolean; - page: boolean; - html: boolean; - info: boolean; + export: boolean; update: boolean; - add: boolean; - }; - - request: Request; - } - - interface BaseSysUser { - /** - * add - */ - add(data?: any): Promise; - - /** - * info - */ - info(data?: any): Promise; - - /** - * delete - */ - delete(data?: any): Promise; - - /** - * move - */ - move(data?: any): Promise; - - /** - * page - */ - page(data?: any): Promise; - - /** - * update - */ - update(data?: any): Promise; - - /** - * 权限标识 - */ - permission: { - add: string; - info: string; - delete: string; - move: string; - page: string; - update: string; - }; - - /** - * 权限状态 - */ - _permission: { - add: boolean; - info: boolean; delete: boolean; - move: boolean; - page: boolean; - update: boolean; - }; - - request: Request; - } - - interface BaseSysRole { - /** - * delete - */ - delete(data?: any): Promise; - - /** - * page - */ - page(data?: any): Promise; - - /** - * update - */ - update(data?: any): Promise; - - /** - * info - */ - info(data?: any): Promise; - - /** - * list - */ - list(data?: any): Promise; - - /** - * add - */ - add(data?: any): Promise; - - /** - * 权限标识 - */ - permission: { - delete: string; - page: string; - update: string; - info: string; - list: string; - add: string; - }; - - /** - * 权限状态 - */ - _permission: { - delete: boolean; - page: boolean; - update: boolean; - info: boolean; - list: boolean; - add: boolean; }; request: Request; @@ -477,71 +3450,119 @@ declare namespace Eps { interface BaseSysLog { /** - * getKeep - */ - getKeep(data?: any): Promise; - - /** - * page + * 分页 */ page(data?: any): Promise; /** - * clear - */ - clear(data?: any): Promise; - - /** - * setKeep + * 设置日志保存时间 */ setKeep(data?: any): Promise; + /** + * 清理日志 + */ + clear(data?: any): Promise; + + /** + * 获得日志报错时间 + */ + getKeep(data?: any): Promise; + /** * 权限标识 */ - permission: { getKeep: string; page: string; clear: string; setKeep: string }; + permission: { page: string; setKeep: string; clear: string; getKeep: string }; /** * 权限状态 */ - _permission: { getKeep: boolean; page: boolean; clear: boolean; setKeep: boolean }; + _permission: { page: boolean; setKeep: boolean; clear: boolean; getKeep: boolean }; + + request: Request; + } + + interface BaseSysParam { + /** + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 + */ + delete(data?: any): Promise; + + /** + * 分页 + */ + page(data?: any): Promise; + + /** + * 信息 + */ + info(data?: any): Promise; + + /** + * 新增 + */ + add(data?: any): Promise; + + /** + * 根据键返回网页的参数值 + */ + html(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + update: string; + delete: string; + page: string; + info: string; + add: string; + html: string; + }; + + /** + * 权限状态 + */ + _permission: { + update: boolean; + delete: boolean; + page: boolean; + info: boolean; + add: boolean; + html: boolean; + }; request: Request; } interface BaseOpen { /** - * check - */ - check(data?: any): Promise; - - /** - * html - */ - html(data?: any): Promise; - - /** - * login - */ - login(data?: any): Promise; - - /** - * captchaMode - */ - captchaMode(data?: any): Promise; - - /** - * eps + * 实体信息与路径 */ eps(data?: any): Promise; /** - * refreshToken + * 刷新token */ refreshToken(data?: any): Promise; /** - * captcha + * 验证码类型 + */ + captchaMode(data?: any): Promise; + + /** + * 获得网页内容的参数值 + */ + html(data?: any): Promise; + + /** + * 验证码 */ captcha(data?: any): Promise; @@ -550,32 +3571,114 @@ declare namespace Eps { */ gen(data?: any): Promise; + /** + * check + */ + check(data?: any): Promise; + + /** + * 登录 + */ + login(data?: any): Promise; + /** * 权限标识 */ permission: { - check: string; - html: string; - login: string; - captchaMode: string; eps: string; refreshToken: string; + captchaMode: string; + html: string; captcha: string; gen: string; + check: string; + login: string; }; /** * 权限状态 */ _permission: { - check: boolean; - html: boolean; - login: boolean; - captchaMode: boolean; eps: boolean; refreshToken: boolean; + captchaMode: boolean; + html: boolean; captcha: boolean; gen: boolean; + check: boolean; + login: boolean; + }; + + request: Request; + } + + interface BaseComm { + /** + * 权限与菜单 + */ + permmenu(data?: any): Promise; + + /** + * 文件上传 + */ + upload(data?: any): Promise; + + /** + * 实体信息与路径 + */ + eps(data?: any): Promise; + + /** + * 文件上传模式 + */ + uploadMode(data?: any): Promise; + + /** + * 修改个人信息 + */ + personUpdate(data?: any): Promise; + + /** + * 个人信息 + */ + person(data?: any): Promise; + + /** + * 编程 + */ + program(data?: any): Promise; + + /** + * 退出 + */ + logout(data?: any): Promise; + + /** + * 权限标识 + */ + permission: { + permmenu: string; + upload: string; + eps: string; + uploadMode: string; + personUpdate: string; + person: string; + program: string; + logout: string; + }; + + /** + * 权限状态 + */ + _permission: { + permmenu: boolean; + upload: boolean; + eps: boolean; + uploadMode: boolean; + personUpdate: boolean; + person: boolean; + program: boolean; + logout: boolean; }; request: Request; @@ -583,12 +3686,12 @@ declare namespace Eps { interface BaseCoding { /** - * createCode + * 创建代码 */ createCode(data?: any): Promise; /** - * getModuleTree + * 获取模块目录结构 */ getModuleTree(data?: any): Promise; @@ -605,268 +3708,59 @@ declare namespace Eps { request: Request; } - interface BaseComm { + interface UserInfo { /** - * logout + * 信息 */ - logout(data?: any): Promise; + info(data?: any): Promise; /** - * program + * 查询 */ - program(data?: any): Promise; + list(data?: any): Promise; /** - * uploadMode - */ - uploadMode(data?: any): Promise; - - /** - * person - */ - person(data?: any): Promise; - - /** - * upload - */ - upload(data?: any): Promise; - - /** - * eps - */ - eps(data?: any): Promise; - - /** - * permmenu - */ - permmenu(data?: any): Promise; - - /** - * personUpdate - */ - personUpdate(data?: any): Promise; - - /** - * 权限标识 - */ - permission: { - logout: string; - program: string; - uploadMode: string; - person: string; - upload: string; - eps: string; - permmenu: string; - personUpdate: string; - }; - - /** - * 权限状态 - */ - _permission: { - logout: boolean; - program: boolean; - uploadMode: boolean; - person: boolean; - upload: boolean; - eps: boolean; - permmenu: boolean; - personUpdate: boolean; - }; - - request: Request; - } - - interface DictType { - /** - * update - */ - update(data?: any): Promise; - - /** - * add + * 新增 */ add(data?: any): Promise; /** - * page + * 分页 */ - page(data?: any): Promise; + page(data?: any): Promise; /** - * delete - */ - delete(data?: any): Promise; - - /** - * info - */ - info(data?: any): Promise; - - /** - * list - */ - list(data?: any): Promise; - - /** - * 权限标识 - */ - permission: { - update: string; - add: string; - page: string; - delete: string; - info: string; - list: string; - }; - - /** - * 权限状态 - */ - _permission: { - update: boolean; - add: boolean; - page: boolean; - delete: boolean; - info: boolean; - list: boolean; - }; - - request: Request; - } - - interface DictInfo { - /** - * add - */ - add(data?: any): Promise; - - /** - * update + * 修改 */ update(data?: any): Promise; /** - * info - */ - info(data?: any): Promise; - - /** - * list - */ - list(data?: any): Promise; - - /** - * delete + * 删除 */ delete(data?: any): Promise; - /** - * data - */ - data(data?: any): Promise; - - /** - * types - */ - types(data?: any): Promise; - - /** - * page - */ - page(data?: any): Promise; - /** * 权限标识 */ permission: { - add: string; - update: string; info: string; list: string; - delete: string; - data: string; - types: string; + add: string; page: string; + update: string; + delete: string; }; /** * 权限状态 */ _permission: { - add: boolean; - update: boolean; info: boolean; list: boolean; - delete: boolean; - data: boolean; - types: boolean; - page: boolean; - }; - - request: Request; - } - - interface PluginInfo { - /** - * page - */ - page(data?: any): Promise; - - /** - * update - */ - update(data?: any): Promise; - - /** - * add - */ - add(data?: any): Promise; - - /** - * info - */ - info(data?: any): Promise; - - /** - * list - */ - list(data?: any): Promise; - - /** - * delete - */ - delete(data?: any): Promise; - - /** - * install - */ - install(data?: any): Promise; - - /** - * 权限标识 - */ - permission: { - page: string; - update: string; - add: string; - info: string; - list: string; - delete: string; - install: string; - }; - - /** - * 权限状态 - */ - _permission: { + add: boolean; page: boolean; update: boolean; - add: boolean; - info: boolean; - list: boolean; delete: boolean; - install: boolean; }; request: Request; @@ -874,57 +3768,57 @@ declare namespace Eps { interface SpaceInfo { /** - * info + * 分页 + */ + page(data?: any): Promise; + + /** + * 信息 */ info(data?: any): Promise; /** - * update - */ - update(data?: any): Promise; - - /** - * list - */ - list(data?: any): Promise; - - /** - * add + * 新增 */ add(data?: any): Promise; /** - * delete + * 修改 + */ + update(data?: any): Promise; + + /** + * 删除 */ delete(data?: any): Promise; /** - * page + * 查询 */ - page(data?: any): Promise; + list(data?: any): Promise; /** * 权限标识 */ permission: { - info: string; - update: string; - list: string; - add: string; - delete: string; page: string; + info: string; + add: string; + update: string; + delete: string; + list: string; }; /** * 权限状态 */ _permission: { - info: boolean; - update: boolean; - list: boolean; - add: boolean; - delete: boolean; page: boolean; + info: boolean; + add: boolean; + update: boolean; + delete: boolean; + list: boolean; }; request: Request; @@ -932,168 +3826,45 @@ declare namespace Eps { interface SpaceType { /** - * page + * 新增 + */ + add(data?: any): Promise; + + /** + * 分页 */ page(data?: any): Promise; /** - * delete - */ - delete(data?: any): Promise; - - /** - * add - */ - add(data?: any): Promise; - - /** - * info - */ - info(data?: any): Promise; - - /** - * list + * 查询 */ list(data?: any): Promise; /** - * update + * 修改 */ update(data?: any): Promise; /** - * 权限标识 + * 信息 */ - permission: { - page: string; - delete: string; - add: string; - info: string; - list: string; - update: string; - }; + info(data?: any): Promise; /** - * 权限状态 - */ - _permission: { - page: boolean; - delete: boolean; - add: boolean; - info: boolean; - list: boolean; - update: boolean; - }; - - request: Request; - } - - interface RecycleData { - /** - * update - */ - update(data?: any): Promise; - - /** - * info - */ - info(data?: any): Promise; - - /** - * add - */ - add(data?: any): Promise; - - /** - * list - */ - list(data?: any): Promise; - - /** - * restore - */ - restore(data?: any): Promise; - - /** - * delete + * 删除 */ delete(data?: any): Promise; - /** - * page - */ - page(data?: any): Promise; - - /** - * 权限标识 - */ - permission: { - update: string; - info: string; - add: string; - list: string; - restore: string; - delete: string; - page: string; - }; - - /** - * 权限状态 - */ - _permission: { - update: boolean; - info: boolean; - add: boolean; - list: boolean; - restore: boolean; - delete: boolean; - page: boolean; - }; - - request: Request; - } - - interface UserInfo { - /** - * add - */ - add(data?: any): Promise; - - /** - * page - */ - page(data?: any): Promise; - - /** - * delete - */ - delete(data?: any): Promise; - - /** - * info - */ - info(data?: any): Promise; - - /** - * list - */ - list(data?: any): Promise; - - /** - * update - */ - update(data?: any): Promise; - /** * 权限标识 */ permission: { add: string; page: string; - delete: string; - info: string; list: string; update: string; + info: string; + delete: string; }; /** @@ -1102,89 +3873,10 @@ declare namespace Eps { _permission: { add: boolean; page: boolean; - delete: boolean; - info: boolean; list: boolean; update: boolean; - }; - - request: Request; - } - - interface TaskInfo { - /** - * info - */ - info(data?: any): Promise; - - /** - * start - */ - start(data?: any): Promise; - - /** - * delete - */ - delete(data?: any): Promise; - - /** - * add - */ - add(data?: any): Promise; - - /** - * log - */ - log(data?: any): Promise; - - /** - * stop - */ - stop(data?: any): Promise; - - /** - * page - */ - page(data?: any): Promise; - - /** - * once - */ - once(data?: any): Promise; - - /** - * update - */ - update(data?: any): Promise; - - /** - * 权限标识 - */ - permission: { - info: string; - start: string; - delete: string; - add: string; - log: string; - stop: string; - page: string; - once: string; - update: string; - }; - - /** - * 权限状态 - */ - _permission: { info: boolean; - start: boolean; delete: boolean; - add: boolean; - log: boolean; - stop: boolean; - page: boolean; - once: boolean; - update: boolean; }; request: Request; @@ -1202,27 +3894,45 @@ declare namespace Eps { type Request = (options: RequestOptions) => Promise; + type DictKey = string; + type Service = { request: Request; + nongchuang: { + device: NongchuangDevice; + appMenu: NongchuangAppMenu; + product: NongchuangProduct; + model3d: NongchuangModel3d; + order: NongchuangOrder; + farm: NongchuangFarm; + adoptionProject: NongchuangAdoptionProject; + userSeed: NongchuangUserSeed; + userAdoption: NongchuangUserAdoption; + stats: NongchuangStats; + user: NongchuangUser; + seed: NongchuangSeed; + giftCard: NongchuangGiftCard; + category: NongchuangCategory; + }; + task: { info: TaskInfo }; + recycle: { data: RecycleData }; + dict: { type: DictType; info: DictInfo }; + plugin: { info: PluginInfo }; base: { sys: { department: BaseSysDepartment; - menu: BaseSysMenu; - param: BaseSysParam; user: BaseSysUser; role: BaseSysRole; + menu: BaseSysMenu; log: BaseSysLog; + param: BaseSysParam; }; open: BaseOpen; - coding: BaseCoding; comm: BaseComm; + coding: BaseCoding; }; - dict: { type: DictType; info: DictInfo }; - plugin: { info: PluginInfo }; - space: { info: SpaceInfo; type: SpaceType }; - recycle: { data: RecycleData }; user: { info: UserInfo }; - task: { info: TaskInfo }; + space: { info: SpaceInfo; type: SpaceType }; }; } diff --git a/build/cool/eps.json b/build/cool/eps.json index 63f63417..a3a97d12 100644 --- a/build/cool/eps.json +++ b/build/cool/eps.json @@ -1 +1 @@ -[{"prefix":"/admin/base/sys/department","name":"BaseSysDepartmentEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/list"},{"method":"post","path":"/order"},{"method":"post","path":"/update"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/open","name":"","api":[{"method":"post","path":"/check"},{"method":"get","path":"/html"},{"method":"post","path":"/login"},{"method":"get","path":"/captchaMode"},{"method":"get","path":"/eps"},{"method":"get","path":"/refreshToken"},{"method":"get","path":"/captcha"},{"method":"get","path":"/gen"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/menu","name":"BaseSysMenuEntity","api":[{"method":"post","path":"/update"},{"method":"post","path":"/export"},{"method":"post","path":"/add"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/import"},{"method":"post","path":"/delete"},{"method":"post","path":"/create"},{"method":"post","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/param","name":"BaseSysParamEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/page"},{"method":"get","path":"/html"},{"method":"get","path":"/info"},{"method":"post","path":"/update"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/user","name":"BaseSysUserEntity","api":[{"method":"post","path":"/add"},{"method":"get","path":"/info"},{"method":"post","path":"/delete"},{"method":"post","path":"/move"},{"method":"post","path":"/page"},{"method":"post","path":"/update"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/coding","name":"","api":[{"method":"post","path":"/createCode"},{"method":"get","path":"/getModuleTree"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/comm","name":"","api":[{"method":"post","path":"/logout"},{"method":"get","path":"/program"},{"method":"get","path":"/uploadMode"},{"method":"get","path":"/person"},{"method":"post","path":"/upload"},{"method":"get","path":"/eps"},{"method":"get","path":"/permmenu"},{"method":"post","path":"/personUpdate"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/role","name":"BaseSysRoleEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/page"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/log","name":"BaseSysLogEntity","api":[{"method":"post","path":"/getKeep"},{"method":"post","path":"/page"},{"method":"post","path":"/clear"},{"method":"post","path":"/setKeep"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/dict/type","name":"DictTypeEntity","api":[{"method":"post","path":"/update"},{"method":"post","path":"/add"},{"method":"post","path":"/page"},{"method":"post","path":"/delete"},{"method":"get","path":"/info"},{"method":"post","path":"/list"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/dict/info","name":"DictInfoEntity","api":[{"method":"post","path":"/add"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/delete"},{"method":"post","path":"/data"},{"method":"get","path":"/types"},{"method":"post","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/plugin/info","name":"PluginInfoEntity","api":[{"method":"post","path":"/page"},{"method":"post","path":"/update"},{"method":"post","path":"/add"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/delete"},{"method":"post","path":"/install"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/space/info","name":"SpaceInfoEntity","api":[{"method":"get","path":"/info"},{"method":"post","path":"/update"},{"method":"post","path":"/list"},{"method":"post","path":"/add"},{"method":"post","path":"/delete"},{"method":"post","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/space/type","name":"SpaceTypeEntity","api":[{"method":"post","path":"/page"},{"method":"post","path":"/delete"},{"method":"post","path":"/add"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/update"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/recycle/data","name":"RecycleDataEntity","api":[{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/add"},{"method":"post","path":"/list"},{"method":"post","path":"/restore"},{"method":"post","path":"/delete"},{"method":"post","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/user/info","name":"UserInfoEntity","api":[{"method":"post","path":"/add"},{"method":"post","path":"/page"},{"method":"post","path":"/delete"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/update"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/task/info","name":"TaskInfoEntity","api":[{"method":"get","path":"/info"},{"method":"post","path":"/start"},{"method":"post","path":"/delete"},{"method":"post","path":"/add"},{"method":"get","path":"/log"},{"method":"post","path":"/stop"},{"method":"post","path":"/page"},{"method":"post","path":"/once"},{"method":"post","path":"/update"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}}] \ No newline at end of file +[{"prefix":"/admin/nongchuang/category","name":"NcCategoryEntity","api":[{"method":"post","path":"/delete"},{"method":"get","path":"/page"},{"method":"post","path":"/add"},{"method":"get","path":"/list"},{"method":"get","path":"/info"},{"method":"post","path":"/update"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/nongchuang/device","name":"NcDeviceEntity","api":[{"method":"get","path":"/page"},{"method":"get","path":"/list"},{"method":"get","path":"/info"},{"method":"post","path":"/update"},{"method":"post","path":"/delete"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/nongchuang/app-menu","name":"NcAppMenuEntity","api":[{"method":"post","path":"/update-sort"},{"method":"post","path":"/update"},{"method":"get","path":"/list-by-type"},{"method":"post","path":"/delete"},{"method":"post","path":"/add"},{"method":"get","path":"/list"},{"method":"get","path":"/info"},{"method":"post","path":"/batch-sort"},{"method":"get","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/nongchuang/order","name":"NcOrderEntity","api":[{"method":"post","path":"/add"},{"method":"get","path":"/info"},{"method":"get","path":"/list"},{"method":"get","path":"/page"},{"method":"post","path":"/update"},{"method":"post","path":"/delete"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/nongchuang/stats","name":"","api":[{"method":"get","path":"/users"},{"method":"get","path":"/order-trend"},{"method":"get","path":"/user-growth"},{"method":"get","path":"/seeds"},{"method":"get","path":"/dashboard"},{"method":"get","path":"/orders"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/nongchuang/seed","name":"NcSeedEntity","api":[{"method":"post","path":"/add"},{"method":"post","path":"/update"},{"method":"post","path":"/delete"},{"method":"get","path":"/page"},{"method":"get","path":"/info"},{"method":"get","path":"/list"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/nongchuang/user-adoption","name":"NcUserAdoptionEntity","api":[{"method":"get","path":"/list"},{"method":"post","path":"/delete"},{"method":"get","path":"/page"},{"method":"post","path":"/add"},{"method":"get","path":"/info"},{"method":"post","path":"/update"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/nongchuang/user-seed","name":"NcUserSeedEntity","api":[{"method":"get","path":"/page"},{"method":"get","path":"/info"},{"method":"get","path":"/list"},{"method":"post","path":"/add"},{"method":"post","path":"/update"},{"method":"post","path":"/delete"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/nongchuang/model-3d","name":"NcModel3DEntity","api":[{"method":"post","path":"/update"},{"method":"post","path":"/delete"},{"method":"get","path":"/page"},{"method":"get","path":"/default-planet"},{"method":"get","path":"/info"},{"method":"post","path":"/add"},{"method":"get","path":"/list-by-type"},{"method":"get","path":"/list"},{"method":"get","path":"/by-seed"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/nongchuang/adoption-project","name":"NcAdoptionProjectEntity","api":[{"method":"get","path":"/list"},{"method":"post","path":"/add"},{"method":"post","path":"/update"},{"method":"post","path":"/delete"},{"method":"get","path":"/page"},{"method":"get","path":"/info"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/nongchuang/user","name":"NcUserEntity","api":[{"method":"post","path":"/update"},{"method":"post","path":"/delete"},{"method":"post","path":"/add"},{"method":"get","path":"/page"},{"method":"get","path":"/info"},{"method":"get","path":"/list"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/nongchuang/product","name":"NcProductEntity","api":[{"method":"post","path":"/add"},{"method":"get","path":"/page"},{"method":"get","path":"/info"},{"method":"get","path":"/list"},{"method":"post","path":"/update"},{"method":"post","path":"/delete"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/nongchuang/farm","name":"NcFarmEntity","api":[{"method":"post","path":"/update"},{"method":"post","path":"/delete"},{"method":"post","path":"/add"},{"method":"get","path":"/page"},{"method":"get","path":"/info"},{"method":"get","path":"/list"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/nongchuang/gift-card","name":"NcGiftCardEntity","api":[{"method":"get","path":"/page"},{"method":"get","path":"/info"},{"method":"post","path":"/add"},{"method":"get","path":"/list"},{"method":"post","path":"/update"},{"method":"post","path":"/delete"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/dict/info","name":"DictInfoEntity","api":[{"method":"get","path":"/info"},{"method":"post","path":"/update"},{"method":"post","path":"/delete"},{"method":"post","path":"/data"},{"method":"get","path":"/list"},{"method":"get","path":"/types"},{"method":"get","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/dict/type","name":"DictTypeEntity","api":[{"method":"post","path":"/update"},{"method":"post","path":"/delete"},{"method":"get","path":"/page"},{"method":"get","path":"/info"},{"method":"get","path":"/list"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/recycle/data","name":"RecycleDataEntity","api":[{"method":"post","path":"/update"},{"method":"post","path":"/delete"},{"method":"get","path":"/list"},{"method":"post","path":"/add"},{"method":"post","path":"/restore"},{"method":"get","path":"/page"},{"method":"get","path":"/info"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/log","name":"BaseSysLogEntity","api":[{"method":"get","path":"/page"},{"method":"post","path":"/setKeep"},{"method":"post","path":"/clear"},{"method":"post","path":"/getKeep"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/role","name":"BaseSysRoleEntity","api":[{"method":"post","path":"/update"},{"method":"post","path":"/delete"},{"method":"get","path":"/page"},{"method":"get","path":"/list"},{"method":"get","path":"/info"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/comm","name":"","api":[{"method":"get","path":"/permmenu"},{"method":"post","path":"/upload"},{"method":"get","path":"/eps"},{"method":"get","path":"/uploadMode"},{"method":"post","path":"/personUpdate"},{"method":"get","path":"/person"},{"method":"get","path":"/program"},{"method":"post","path":"/logout"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/param","name":"BaseSysParamEntity","api":[{"method":"post","path":"/update"},{"method":"post","path":"/delete"},{"method":"get","path":"/page"},{"method":"get","path":"/info"},{"method":"post","path":"/add"},{"method":"get","path":"/html"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/menu","name":"BaseSysMenuEntity","api":[{"method":"post","path":"/create"},{"method":"post","path":"/add"},{"method":"get","path":"/page"},{"method":"get","path":"/info"},{"method":"get","path":"/list"},{"method":"post","path":"/import"},{"method":"post","path":"/export"},{"method":"post","path":"/update"},{"method":"post","path":"/delete"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/user","name":"BaseSysUserEntity","api":[{"method":"get","path":"/page"},{"method":"get","path":"/info"},{"method":"get","path":"/list"},{"method":"post","path":"/add"},{"method":"post","path":"/update"},{"method":"post","path":"/move"},{"method":"post","path":"/delete"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/department","name":"BaseSysDepartmentEntity","api":[{"method":"get","path":"/list"},{"method":"post","path":"/order"},{"method":"post","path":"/add"},{"method":"post","path":"/update"},{"method":"post","path":"/delete"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/coding","name":"","api":[{"method":"post","path":"/createCode"},{"method":"get","path":"/getModuleTree"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/open","name":"","api":[{"method":"get","path":"/eps"},{"method":"get","path":"/refreshToken"},{"method":"get","path":"/captchaMode"},{"method":"get","path":"/html"},{"method":"get","path":"/captcha"},{"method":"get","path":"/gen"},{"method":"post","path":"/check"},{"method":"post","path":"/login"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/user/info","name":"UserInfoEntity","api":[{"method":"get","path":"/info"},{"method":"get","path":"/list"},{"method":"post","path":"/add"},{"method":"get","path":"/page"},{"method":"post","path":"/update"},{"method":"post","path":"/delete"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/plugin/info","name":"PluginInfoEntity","api":[{"method":"get","path":"/info"},{"method":"post","path":"/install"},{"method":"get","path":"/list"},{"method":"post","path":"/update"},{"method":"post","path":"/delete"},{"method":"post","path":"/add"},{"method":"get","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/space/type","name":"SpaceTypeEntity","api":[{"method":"post","path":"/add"},{"method":"get","path":"/page"},{"method":"get","path":"/list"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/delete"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/space/info","name":"SpaceInfoEntity","api":[{"method":"get","path":"/page"},{"method":"get","path":"/info"},{"method":"post","path":"/add"},{"method":"post","path":"/update"},{"method":"post","path":"/delete"},{"method":"get","path":"/list"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/task/info","name":"TaskInfoEntity","api":[{"method":"get","path":"/info"},{"method":"post","path":"/start"},{"method":"post","path":"/update"},{"method":"post","path":"/delete"},{"method":"get","path":"/log"},{"method":"post","path":"/add"},{"method":"post","path":"/once"},{"method":"post","path":"/stop"},{"method":"get","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}}] \ No newline at end of file diff --git a/bun.lock b/bun.lock index 7640e5e0..48d387e1 100644 --- a/bun.lock +++ b/bun.lock @@ -21,8 +21,10 @@ "mitt": "^3.0.1", "nprogress": "^0.2.0", "pinia": "^2.3.1", + "qs": "^6.13.0", "store": "^2.0.12", "vue": "^3.5.13", + "vue-cropper": "^1.1.4", "vue-echarts": "^7.0.3", "vue-i18n": "^11.0.1", "vue-router": "^4.5.0", @@ -39,6 +41,7 @@ "@types/mockjs": "^1.0.10", "@types/node": "^20.17.17", "@types/nprogress": "^0.2.3", + "@types/qs": "^6.9.15", "@types/store": "^2.0.5", "@vitejs/plugin-vue": "^5.2.1", "@vitejs/plugin-vue-jsx": "^4.1.1", @@ -362,6 +365,8 @@ "@types/nprogress": ["@types/nprogress@0.2.3", "", {}, "sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA=="], + "@types/qs": ["@types/qs@6.14.0", "", {}, "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ=="], + "@types/store": ["@types/store@2.0.5", "", {}, "sha512-5NmTKe3GWdOaykzq7no+Ahf6mafJu0oLc9JNhJ3E26+0oFvd6GnksnZQpMXcH526mfG4xDYjFiKzyDL51PzeWQ=="], "@types/web-bluetooth": ["@types/web-bluetooth@0.0.21", "", {}, "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA=="], @@ -526,6 +531,8 @@ "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "1.3.0", "function-bind": "1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], + "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], + "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], "camelcase-css": ["camelcase-css@2.0.1", "", {}, "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="], @@ -948,6 +955,8 @@ "object-hash": ["object-hash@3.0.0", "", {}, "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="], + "object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], + "open": ["open@8.4.2", "", { "dependencies": { "define-lazy-prop": "2.0.0", "is-docker": "2.2.1", "is-wsl": "2.2.0" } }, "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ=="], "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "0.1.4", "fast-levenshtein": "2.0.6", "levn": "0.4.1", "prelude-ls": "1.2.1", "type-check": "0.4.0", "word-wrap": "1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], @@ -1020,6 +1029,8 @@ "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + "qs": ["qs@6.14.1", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ=="], + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], "read-cache": ["read-cache@1.0.0", "", { "dependencies": { "pify": "2.3.0" } }, "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA=="], @@ -1054,6 +1065,14 @@ "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], + + "side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], + + "side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="], + + "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], + "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], "sirv": ["sirv@3.0.1", "", { "dependencies": { "@polka/url": "1.0.0-next.29", "mrmime": "2.0.1", "totalist": "3.0.1" } }, "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A=="], @@ -1168,6 +1187,8 @@ "vue-component-type-helpers": ["vue-component-type-helpers@2.2.12", "", {}, "sha512-YbGqHZ5/eW4SnkPNR44mKVc6ZKQoRs/Rux1sxC6rdwXb4qpbOSYfDr9DsTHolOTGmIKgM9j141mZbBeg05R1pw=="], + "vue-cropper": ["vue-cropper@1.1.4", "", {}, "sha512-5m98vBsCEI9rbS4JxELxXidtAui3qNyTHLHg67Qbn7g8cg+E6LcnC+hh3SM/p94x6mFh6KRxT1ttnta+wCYqWA=="], + "vue-demi": ["vue-demi@0.14.10", "", { "peerDependencies": { "vue": "3.5.18" }, "bin": { "vue-demi-fix": "bin/vue-demi-fix.js", "vue-demi-switch": "bin/vue-demi-switch.js" } }, "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg=="], "vue-echarts": ["vue-echarts@7.0.3", "", { "dependencies": { "vue-demi": "0.13.11" }, "optionalDependencies": { "@vue/runtime-core": "3.5.18" }, "peerDependencies": { "echarts": "5.6.0", "vue": "3.5.18" } }, "sha512-/jSxNwOsw5+dYAUcwSfkLwKPuzTQ0Cepz1LxCOpj2QcHrrmUa/Ql0eQqMmc1rTPQVrh2JQ29n2dhq75ZcHvRDw=="], diff --git a/node_modules/.vite/deps/@cool-vue_crud.js b/node_modules/.vite/deps/@cool-vue_crud.js index cf9939ef..d64a5aeb 100644 --- a/node_modules/.vite/deps/@cool-vue_crud.js +++ b/node_modules/.vite/deps/@cool-vue_crud.js @@ -24,9 +24,6 @@ import { import { isVue2 } from "./chunk-HYZ2CRGS.js"; -import { - require_dayjs_min -} from "./chunk-4ONYKVE4.js"; import { castArray_default, cloneDeep_default, @@ -191,6 +188,9 @@ import { withKeys, withModifiers } from "./chunk-KS2IYBSN.js"; +import { + require_dayjs_min +} from "./chunk-4ONYKVE4.js"; import { __toESM } from "./chunk-EWTE5DHJ.js"; diff --git a/node_modules/.vite/deps/_metadata.json b/node_modules/.vite/deps/_metadata.json index f3215b2d..cb305d4f 100644 --- a/node_modules/.vite/deps/_metadata.json +++ b/node_modules/.vite/deps/_metadata.json @@ -2,178 +2,190 @@ "hash": "31774665", "configHash": "e628d048", "lockfileHash": "45d9103f", - "browserHash": "579ea83f", + "browserHash": "3e6f73bc", "optimized": { "@cool-vue/crud": { "src": "../../@cool-vue/crud/dist/index.es.js", "file": "@cool-vue_crud.js", - "fileHash": "e04567ea", + "fileHash": "4c43c1f5", "needsInterop": false }, "@element-plus/icons-vue": { "src": "../../@element-plus/icons-vue/dist/index.js", "file": "@element-plus_icons-vue.js", - "fileHash": "b4dfa804", + "fileHash": "a7be4fb4", "needsInterop": false }, "@vueuse/core": { "src": "../../@vueuse/core/index.mjs", "file": "@vueuse_core.js", - "fileHash": "36b806e9", + "fileHash": "a8d18c33", "needsInterop": false }, "@wangeditor/editor": { "src": "../../@wangeditor/editor/dist/index.esm.js", "file": "@wangeditor_editor.js", - "fileHash": "61d435b8", + "fileHash": "abb28e84", "needsInterop": false }, "@wangeditor/editor-for-vue": { "src": "../../@wangeditor/editor-for-vue/dist/index.esm.js", "file": "@wangeditor_editor-for-vue.js", - "fileHash": "452a144c", + "fileHash": "4b089e95", "needsInterop": false }, "axios": { "src": "../../axios/index.js", "file": "axios.js", - "fileHash": "459280fd", + "fileHash": "b2b14d76", "needsInterop": false }, "chardet": { "src": "../../chardet/lib/index.js", "file": "chardet.js", - "fileHash": "0ebbe05c", + "fileHash": "f8e7983e", "needsInterop": true }, "dayjs": { "src": "../../dayjs/dayjs.min.js", "file": "dayjs.js", - "fileHash": "82e2d55f", + "fileHash": "05916e44", "needsInterop": true }, "echarts": { "src": "../../echarts/index.js", "file": "echarts.js", - "fileHash": "b85f0172", + "fileHash": "bb530390", "needsInterop": false }, "element-plus": { "src": "../../element-plus/es/index.mjs", "file": "element-plus.js", - "fileHash": "414a31db", + "fileHash": "912039b1", "needsInterop": false }, "element-plus/es/locale/lang/en": { "src": "../../element-plus/es/locale/lang/en.mjs", "file": "element-plus_es_locale_lang_en.js", - "fileHash": "3a3585ef", + "fileHash": "fec0bae4", "needsInterop": false }, "element-plus/es/locale/lang/zh-cn": { "src": "../../element-plus/es/locale/lang/zh-cn.mjs", "file": "element-plus_es_locale_lang_zh-cn.js", - "fileHash": "3b7d1eda", + "fileHash": "6927bb33", "needsInterop": false }, "file-saver": { "src": "../../file-saver/dist/FileSaver.min.js", "file": "file-saver.js", - "fileHash": "49f5dbe5", + "fileHash": "c28f0dbf", "needsInterop": true }, "lodash-es": { "src": "../../lodash-es/lodash.js", "file": "lodash-es.js", - "fileHash": "c7e7ec4a", + "fileHash": "1ee551a2", "needsInterop": false }, "marked": { "src": "../../marked/lib/marked.esm.js", "file": "marked.js", - "fileHash": "5f7545e4", + "fileHash": "547925e1", "needsInterop": false }, "mitt": { "src": "../../mitt/dist/mitt.mjs", "file": "mitt.js", - "fileHash": "44bb1a04", + "fileHash": "b83175db", "needsInterop": false }, "nprogress": { "src": "../../nprogress/nprogress.js", "file": "nprogress.js", - "fileHash": "483cabce", + "fileHash": "29285d3e", "needsInterop": true }, "pinia": { "src": "../../pinia/dist/pinia.mjs", "file": "pinia.js", - "fileHash": "d8932e17", + "fileHash": "75d6e5a8", + "needsInterop": false + }, + "sortablejs": { + "src": "../../sortablejs/modular/sortable.esm.js", + "file": "sortablejs.js", + "fileHash": "70ecff88", "needsInterop": false }, "store": { "src": "../../store/dist/store.legacy.js", "file": "store.js", - "fileHash": "e8d239ff", + "fileHash": "a55761f9", "needsInterop": true }, "vue": { "src": "../../vue/dist/vue.runtime.esm-bundler.js", "file": "vue.js", - "fileHash": "d1eca411", + "fileHash": "25b24add", + "needsInterop": false + }, + "vue-cropper": { + "src": "../../vue-cropper/dist/vue-cropper.es.js", + "file": "vue-cropper.js", + "fileHash": "27f366e3", "needsInterop": false }, "vue-echarts": { "src": "../../vue-echarts/dist/index.js", "file": "vue-echarts.js", - "fileHash": "ec410e40", + "fileHash": "48ed0f19", "needsInterop": false }, "vue-i18n": { "src": "../../vue-i18n/dist/vue-i18n.runtime.esm-bundler.js", "file": "vue-i18n.js", - "fileHash": "da8d1a12", + "fileHash": "2d184aab", "needsInterop": false }, "vue-router": { "src": "../../vue-router/dist/vue-router.mjs", "file": "vue-router.js", - "fileHash": "c52717d5", + "fileHash": "5e846c8e", "needsInterop": false }, "vuedraggable": { "src": "../../vuedraggable/dist/vuedraggable.umd.js", "file": "vuedraggable.js", - "fileHash": "633c5aaf", + "fileHash": "cdffc523", "needsInterop": true }, "vuedraggable/src/vuedraggable": { "src": "../../vuedraggable/src/vuedraggable.js", "file": "vuedraggable_src_vuedraggable.js", - "fileHash": "0adc098d", + "fileHash": "961d6b38", "needsInterop": false }, "xlsx": { "src": "../../xlsx/xlsx.mjs", "file": "xlsx.js", - "fileHash": "3308b746", + "fileHash": "57e7d853", "needsInterop": false + }, + "qs": { + "src": "../../qs/lib/index.js", + "file": "qs.js", + "fileHash": "61aa4f82", + "needsInterop": true } }, "chunks": { + "chunk-BRYZGPRI": { + "file": "chunk-BRYZGPRI.js" + }, "chunk-YFT6OQ5R": { "file": "chunk-YFT6OQ5R.js" }, - "chunk-GVFQZHYH": { - "file": "chunk-GVFQZHYH.js" - }, - "chunk-WSWOVUTY": { - "file": "chunk-WSWOVUTY.js" - }, - "chunk-7MAXRZVH": { - "file": "chunk-7MAXRZVH.js" - }, "chunk-XYY2WIPO": { "file": "chunk-XYY2WIPO.js" }, @@ -183,21 +195,27 @@ "chunk-HYZ2CRGS": { "file": "chunk-HYZ2CRGS.js" }, - "chunk-4ONYKVE4": { - "file": "chunk-4ONYKVE4.js" - }, "chunk-LK7GAOJV": { "file": "chunk-LK7GAOJV.js" }, "chunk-DRCSKQJL": { "file": "chunk-DRCSKQJL.js" }, + "chunk-WSWOVUTY": { + "file": "chunk-WSWOVUTY.js" + }, "chunk-5Z3IENVP": { "file": "chunk-5Z3IENVP.js" }, "chunk-KS2IYBSN": { "file": "chunk-KS2IYBSN.js" }, + "chunk-4ONYKVE4": { + "file": "chunk-4ONYKVE4.js" + }, + "chunk-7MAXRZVH": { + "file": "chunk-7MAXRZVH.js" + }, "chunk-EWTE5DHJ": { "file": "chunk-EWTE5DHJ.js" } diff --git a/node_modules/.vite/deps/chunk-GVFQZHYH.js b/node_modules/.vite/deps/chunk-GVFQZHYH.js deleted file mode 100644 index 6893d9a1..00000000 --- a/node_modules/.vite/deps/chunk-GVFQZHYH.js +++ /dev/null @@ -1,2750 +0,0 @@ -import { - __esm, - __export -} from "./chunk-EWTE5DHJ.js"; - -// node_modules/sortablejs/modular/sortable.esm.js -var sortable_esm_exports = {}; -__export(sortable_esm_exports, { - MultiDrag: () => MultiDragPlugin, - Sortable: () => Sortable, - Swap: () => SwapPlugin, - default: () => sortable_esm_default -}); -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) { - symbols = symbols.filter(function(sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - } - keys.push.apply(keys, symbols); - } - return keys; -} -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - if (i % 2) { - ownKeys(Object(source), true).forEach(function(key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function(key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; -} -function _typeof(obj) { - "@babel/helpers - typeof"; - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function(obj2) { - return typeof obj2; - }; - } else { - _typeof = function(obj2) { - return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; - }; - } - return _typeof(obj); -} -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; -} -function _extends() { - _extends = Object.assign || function(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - return target; - }; - return _extends.apply(this, arguments); -} -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - return target; -} -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - var target = _objectWithoutPropertiesLoose(source, excluded); - var key, i; - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } - } - return target; -} -function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); -} -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return _arrayLikeToArray(arr); -} -function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); -} -function _unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return _arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); -} -function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; -} -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} -function userAgent(pattern) { - if (typeof window !== "undefined" && window.navigator) { - return !!navigator.userAgent.match(pattern); - } -} -function on(el, event, fn) { - el.addEventListener(event, fn, !IE11OrLess && captureMode); -} -function off(el, event, fn) { - el.removeEventListener(event, fn, !IE11OrLess && captureMode); -} -function matches(el, selector) { - if (!selector) return; - selector[0] === ">" && (selector = selector.substring(1)); - if (el) { - try { - if (el.matches) { - return el.matches(selector); - } else if (el.msMatchesSelector) { - return el.msMatchesSelector(selector); - } else if (el.webkitMatchesSelector) { - return el.webkitMatchesSelector(selector); - } - } catch (_) { - return false; - } - } - return false; -} -function getParentOrHost(el) { - return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode; -} -function closest(el, selector, ctx, includeCTX) { - if (el) { - ctx = ctx || document; - do { - if (selector != null && (selector[0] === ">" ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) { - return el; - } - if (el === ctx) break; - } while (el = getParentOrHost(el)); - } - return null; -} -function toggleClass(el, name, state) { - if (el && name) { - if (el.classList) { - el.classList[state ? "add" : "remove"](name); - } else { - var className = (" " + el.className + " ").replace(R_SPACE, " ").replace(" " + name + " ", " "); - el.className = (className + (state ? " " + name : "")).replace(R_SPACE, " "); - } - } -} -function css(el, prop, val) { - var style = el && el.style; - if (style) { - if (val === void 0) { - if (document.defaultView && document.defaultView.getComputedStyle) { - val = document.defaultView.getComputedStyle(el, ""); - } else if (el.currentStyle) { - val = el.currentStyle; - } - return prop === void 0 ? val : val[prop]; - } else { - if (!(prop in style) && prop.indexOf("webkit") === -1) { - prop = "-webkit-" + prop; - } - style[prop] = val + (typeof val === "string" ? "" : "px"); - } - } -} -function matrix(el, selfOnly) { - var appliedTransforms = ""; - if (typeof el === "string") { - appliedTransforms = el; - } else { - do { - var transform = css(el, "transform"); - if (transform && transform !== "none") { - appliedTransforms = transform + " " + appliedTransforms; - } - } while (!selfOnly && (el = el.parentNode)); - } - var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix; - return matrixFn && new matrixFn(appliedTransforms); -} -function find(ctx, tagName, iterator) { - if (ctx) { - var list = ctx.getElementsByTagName(tagName), i = 0, n = list.length; - if (iterator) { - for (; i < n; i++) { - iterator(list[i], i); - } - } - return list; - } - return []; -} -function getWindowScrollingElement() { - var scrollingElement = document.scrollingElement; - if (scrollingElement) { - return scrollingElement; - } else { - return document.documentElement; - } -} -function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) { - if (!el.getBoundingClientRect && el !== window) return; - var elRect, top, left, bottom, right, height, width; - if (el !== window && el.parentNode && el !== getWindowScrollingElement()) { - elRect = el.getBoundingClientRect(); - top = elRect.top; - left = elRect.left; - bottom = elRect.bottom; - right = elRect.right; - height = elRect.height; - width = elRect.width; - } else { - top = 0; - left = 0; - bottom = window.innerHeight; - right = window.innerWidth; - height = window.innerHeight; - width = window.innerWidth; - } - if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) { - container = container || el.parentNode; - if (!IE11OrLess) { - do { - if (container && container.getBoundingClientRect && (css(container, "transform") !== "none" || relativeToNonStaticParent && css(container, "position") !== "static")) { - var containerRect = container.getBoundingClientRect(); - top -= containerRect.top + parseInt(css(container, "border-top-width")); - left -= containerRect.left + parseInt(css(container, "border-left-width")); - bottom = top + elRect.height; - right = left + elRect.width; - break; - } - } while (container = container.parentNode); - } - } - if (undoScale && el !== window) { - var elMatrix = matrix(container || el), scaleX = elMatrix && elMatrix.a, scaleY = elMatrix && elMatrix.d; - if (elMatrix) { - top /= scaleY; - left /= scaleX; - width /= scaleX; - height /= scaleY; - bottom = top + height; - right = left + width; - } - } - return { - top, - left, - bottom, - right, - width, - height - }; -} -function isScrolledPast(el, elSide, parentSide) { - var parent = getParentAutoScrollElement(el, true), elSideVal = getRect(el)[elSide]; - while (parent) { - var parentSideVal = getRect(parent)[parentSide], visible = void 0; - if (parentSide === "top" || parentSide === "left") { - visible = elSideVal >= parentSideVal; - } else { - visible = elSideVal <= parentSideVal; - } - if (!visible) return parent; - if (parent === getWindowScrollingElement()) break; - parent = getParentAutoScrollElement(parent, false); - } - return false; -} -function getChild(el, childNum, options, includeDragEl) { - var currentChild = 0, i = 0, children = el.children; - while (i < children.length) { - if (children[i].style.display !== "none" && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) { - if (currentChild === childNum) { - return children[i]; - } - currentChild++; - } - i++; - } - return null; -} -function lastChild(el, selector) { - var last = el.lastElementChild; - while (last && (last === Sortable.ghost || css(last, "display") === "none" || selector && !matches(last, selector))) { - last = last.previousElementSibling; - } - return last || null; -} -function index(el, selector) { - var index2 = 0; - if (!el || !el.parentNode) { - return -1; - } - while (el = el.previousElementSibling) { - if (el.nodeName.toUpperCase() !== "TEMPLATE" && el !== Sortable.clone && (!selector || matches(el, selector))) { - index2++; - } - } - return index2; -} -function getRelativeScrollOffset(el) { - var offsetLeft = 0, offsetTop = 0, winScroller = getWindowScrollingElement(); - if (el) { - do { - var elMatrix = matrix(el), scaleX = elMatrix.a, scaleY = elMatrix.d; - offsetLeft += el.scrollLeft * scaleX; - offsetTop += el.scrollTop * scaleY; - } while (el !== winScroller && (el = el.parentNode)); - } - return [offsetLeft, offsetTop]; -} -function indexOfObject(arr, obj) { - for (var i in arr) { - if (!arr.hasOwnProperty(i)) continue; - for (var key in obj) { - if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i); - } - } - return -1; -} -function getParentAutoScrollElement(el, includeSelf) { - if (!el || !el.getBoundingClientRect) return getWindowScrollingElement(); - var elem = el; - var gotSelf = false; - do { - if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) { - var elemCSS = css(elem); - if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == "auto" || elemCSS.overflowX == "scroll") || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == "auto" || elemCSS.overflowY == "scroll")) { - if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement(); - if (gotSelf || includeSelf) return elem; - gotSelf = true; - } - } - } while (elem = elem.parentNode); - return getWindowScrollingElement(); -} -function extend(dst, src) { - if (dst && src) { - for (var key in src) { - if (src.hasOwnProperty(key)) { - dst[key] = src[key]; - } - } - } - return dst; -} -function isRectEqual(rect1, rect2) { - return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width); -} -function throttle(callback, ms) { - return function() { - if (!_throttleTimeout) { - var args = arguments, _this = this; - if (args.length === 1) { - callback.call(_this, args[0]); - } else { - callback.apply(_this, args); - } - _throttleTimeout = setTimeout(function() { - _throttleTimeout = void 0; - }, ms); - } - }; -} -function cancelThrottle() { - clearTimeout(_throttleTimeout); - _throttleTimeout = void 0; -} -function scrollBy(el, x, y) { - el.scrollLeft += x; - el.scrollTop += y; -} -function clone(el) { - var Polymer = window.Polymer; - var $ = window.jQuery || window.Zepto; - if (Polymer && Polymer.dom) { - return Polymer.dom(el).cloneNode(true); - } else if ($) { - return $(el).clone(true)[0]; - } else { - return el.cloneNode(true); - } -} -function setRect(el, rect) { - css(el, "position", "absolute"); - css(el, "top", rect.top); - css(el, "left", rect.left); - css(el, "width", rect.width); - css(el, "height", rect.height); -} -function unsetRect(el) { - css(el, "position", ""); - css(el, "top", ""); - css(el, "left", ""); - css(el, "width", ""); - css(el, "height", ""); -} -function AnimationStateManager() { - var animationStates = [], animationCallbackId; - return { - captureAnimationState: function captureAnimationState() { - animationStates = []; - if (!this.options.animation) return; - var children = [].slice.call(this.el.children); - children.forEach(function(child) { - if (css(child, "display") === "none" || child === Sortable.ghost) return; - animationStates.push({ - target: child, - rect: getRect(child) - }); - var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect); - if (child.thisAnimationDuration) { - var childMatrix = matrix(child, true); - if (childMatrix) { - fromRect.top -= childMatrix.f; - fromRect.left -= childMatrix.e; - } - } - child.fromRect = fromRect; - }); - }, - addAnimationState: function addAnimationState(state) { - animationStates.push(state); - }, - removeAnimationState: function removeAnimationState(target) { - animationStates.splice(indexOfObject(animationStates, { - target - }), 1); - }, - animateAll: function animateAll(callback) { - var _this = this; - if (!this.options.animation) { - clearTimeout(animationCallbackId); - if (typeof callback === "function") callback(); - return; - } - var animating = false, animationTime = 0; - animationStates.forEach(function(state) { - var time = 0, target = state.target, fromRect = target.fromRect, toRect = getRect(target), prevFromRect = target.prevFromRect, prevToRect = target.prevToRect, animatingRect = state.rect, targetMatrix = matrix(target, true); - if (targetMatrix) { - toRect.top -= targetMatrix.f; - toRect.left -= targetMatrix.e; - } - target.toRect = toRect; - if (target.thisAnimationDuration) { - if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect - (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) { - time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options); - } - } - if (!isRectEqual(toRect, fromRect)) { - target.prevFromRect = fromRect; - target.prevToRect = toRect; - if (!time) { - time = _this.options.animation; - } - _this.animate(target, animatingRect, toRect, time); - } - if (time) { - animating = true; - animationTime = Math.max(animationTime, time); - clearTimeout(target.animationResetTimer); - target.animationResetTimer = setTimeout(function() { - target.animationTime = 0; - target.prevFromRect = null; - target.fromRect = null; - target.prevToRect = null; - target.thisAnimationDuration = null; - }, time); - target.thisAnimationDuration = time; - } - }); - clearTimeout(animationCallbackId); - if (!animating) { - if (typeof callback === "function") callback(); - } else { - animationCallbackId = setTimeout(function() { - if (typeof callback === "function") callback(); - }, animationTime); - } - animationStates = []; - }, - animate: function animate(target, currentRect, toRect, duration) { - if (duration) { - css(target, "transition", ""); - css(target, "transform", ""); - var elMatrix = matrix(this.el), scaleX = elMatrix && elMatrix.a, scaleY = elMatrix && elMatrix.d, translateX = (currentRect.left - toRect.left) / (scaleX || 1), translateY = (currentRect.top - toRect.top) / (scaleY || 1); - target.animatingX = !!translateX; - target.animatingY = !!translateY; - css(target, "transform", "translate3d(" + translateX + "px," + translateY + "px,0)"); - this.forRepaintDummy = repaint(target); - css(target, "transition", "transform " + duration + "ms" + (this.options.easing ? " " + this.options.easing : "")); - css(target, "transform", "translate3d(0,0,0)"); - typeof target.animated === "number" && clearTimeout(target.animated); - target.animated = setTimeout(function() { - css(target, "transition", ""); - css(target, "transform", ""); - target.animated = false; - target.animatingX = false; - target.animatingY = false; - }, duration); - } - } - }; -} -function repaint(target) { - return target.offsetWidth; -} -function calculateRealTime(animatingRect, fromRect, toRect, options) { - return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation; -} -function dispatchEvent(_ref) { - var sortable = _ref.sortable, rootEl2 = _ref.rootEl, name = _ref.name, targetEl = _ref.targetEl, cloneEl2 = _ref.cloneEl, toEl = _ref.toEl, fromEl = _ref.fromEl, oldIndex2 = _ref.oldIndex, newIndex2 = _ref.newIndex, oldDraggableIndex2 = _ref.oldDraggableIndex, newDraggableIndex2 = _ref.newDraggableIndex, originalEvent = _ref.originalEvent, putSortable2 = _ref.putSortable, extraEventProperties = _ref.extraEventProperties; - sortable = sortable || rootEl2 && rootEl2[expando]; - if (!sortable) return; - var evt, options = sortable.options, onName = "on" + name.charAt(0).toUpperCase() + name.substr(1); - if (window.CustomEvent && !IE11OrLess && !Edge) { - evt = new CustomEvent(name, { - bubbles: true, - cancelable: true - }); - } else { - evt = document.createEvent("Event"); - evt.initEvent(name, true, true); - } - evt.to = toEl || rootEl2; - evt.from = fromEl || rootEl2; - evt.item = targetEl || rootEl2; - evt.clone = cloneEl2; - evt.oldIndex = oldIndex2; - evt.newIndex = newIndex2; - evt.oldDraggableIndex = oldDraggableIndex2; - evt.newDraggableIndex = newDraggableIndex2; - evt.originalEvent = originalEvent; - evt.pullMode = putSortable2 ? putSortable2.lastPutMode : void 0; - var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable)); - for (var option2 in allEventProperties) { - evt[option2] = allEventProperties[option2]; - } - if (rootEl2) { - rootEl2.dispatchEvent(evt); - } - if (options[onName]) { - options[onName].call(sortable, evt); - } -} -function _dispatchEvent(info) { - dispatchEvent(_objectSpread2({ - putSortable, - cloneEl, - targetEl: dragEl, - rootEl, - oldIndex, - oldDraggableIndex, - newIndex, - newDraggableIndex - }, info)); -} -function Sortable(el, options) { - if (!(el && el.nodeType && el.nodeType === 1)) { - throw "Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(el)); - } - this.el = el; - this.options = options = _extends({}, options); - el[expando] = this; - var defaults2 = { - group: null, - sort: true, - disabled: false, - store: null, - handle: null, - draggable: /^[uo]l$/i.test(el.nodeName) ? ">li" : ">*", - swapThreshold: 1, - // percentage; 0 <= x <= 1 - invertSwap: false, - // invert always - invertedSwapThreshold: null, - // will be set to same as swapThreshold if default - removeCloneOnHide: true, - direction: function direction() { - return _detectDirection(el, this.options); - }, - ghostClass: "sortable-ghost", - chosenClass: "sortable-chosen", - dragClass: "sortable-drag", - ignore: "a, img", - filter: null, - preventOnFilter: true, - animation: 0, - easing: null, - setData: function setData(dataTransfer, dragEl2) { - dataTransfer.setData("Text", dragEl2.textContent); - }, - dropBubble: false, - dragoverBubble: false, - dataIdAttr: "data-id", - delay: 0, - delayOnTouchOnly: false, - touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, - forceFallback: false, - fallbackClass: "sortable-fallback", - fallbackOnBody: false, - fallbackTolerance: 0, - fallbackOffset: { - x: 0, - y: 0 - }, - supportPointer: Sortable.supportPointer !== false && "PointerEvent" in window && !Safari, - emptyInsertThreshold: 5 - }; - PluginManager.initializePlugins(this, el, defaults2); - for (var name in defaults2) { - !(name in options) && (options[name] = defaults2[name]); - } - _prepareGroup(options); - for (var fn in this) { - if (fn.charAt(0) === "_" && typeof this[fn] === "function") { - this[fn] = this[fn].bind(this); - } - } - this.nativeDraggable = options.forceFallback ? false : supportDraggable; - if (this.nativeDraggable) { - this.options.touchStartThreshold = 1; - } - if (options.supportPointer) { - on(el, "pointerdown", this._onTapStart); - } else { - on(el, "mousedown", this._onTapStart); - on(el, "touchstart", this._onTapStart); - } - if (this.nativeDraggable) { - on(el, "dragover", this); - on(el, "dragenter", this); - } - sortables.push(this.el); - options.store && options.store.get && this.sort(options.store.get(this) || []); - _extends(this, AnimationStateManager()); -} -function _globalDragOver(evt) { - if (evt.dataTransfer) { - evt.dataTransfer.dropEffect = "move"; - } - evt.cancelable && evt.preventDefault(); -} -function _onMove(fromEl, toEl, dragEl2, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) { - var evt, sortable = fromEl[expando], onMoveFn = sortable.options.onMove, retVal; - if (window.CustomEvent && !IE11OrLess && !Edge) { - evt = new CustomEvent("move", { - bubbles: true, - cancelable: true - }); - } else { - evt = document.createEvent("Event"); - evt.initEvent("move", true, true); - } - evt.to = toEl; - evt.from = fromEl; - evt.dragged = dragEl2; - evt.draggedRect = dragRect; - evt.related = targetEl || toEl; - evt.relatedRect = targetRect || getRect(toEl); - evt.willInsertAfter = willInsertAfter; - evt.originalEvent = originalEvent; - fromEl.dispatchEvent(evt); - if (onMoveFn) { - retVal = onMoveFn.call(sortable, evt, originalEvent); - } - return retVal; -} -function _disableDraggable(el) { - el.draggable = false; -} -function _unsilent() { - _silent = false; -} -function _ghostIsFirst(evt, vertical, sortable) { - var rect = getRect(getChild(sortable.el, 0, sortable.options, true)); - var spacer = 10; - return vertical ? evt.clientX < rect.left - spacer || evt.clientY < rect.top && evt.clientX < rect.right : evt.clientY < rect.top - spacer || evt.clientY < rect.bottom && evt.clientX < rect.left; -} -function _ghostIsLast(evt, vertical, sortable) { - var rect = getRect(lastChild(sortable.el, sortable.options.draggable)); - var spacer = 10; - return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer; -} -function _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) { - var mouseOnAxis = vertical ? evt.clientY : evt.clientX, targetLength = vertical ? targetRect.height : targetRect.width, targetS1 = vertical ? targetRect.top : targetRect.left, targetS2 = vertical ? targetRect.bottom : targetRect.right, invert = false; - if (!invertSwap) { - if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) { - if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) { - pastFirstInvertThresh = true; - } - if (!pastFirstInvertThresh) { - if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance : mouseOnAxis > targetS2 - targetMoveDistance) { - return -lastDirection; - } - } else { - invert = true; - } - } else { - if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) { - return _getInsertDirection(target); - } - } - } - invert = invert || invertSwap; - if (invert) { - if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) { - return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1; - } - } - return 0; -} -function _getInsertDirection(target) { - if (index(dragEl) < index(target)) { - return 1; - } else { - return -1; - } -} -function _generateId(el) { - var str = el.tagName + el.className + el.src + el.href + el.textContent, i = str.length, sum = 0; - while (i--) { - sum += str.charCodeAt(i); - } - return sum.toString(36); -} -function _saveInputCheckedState(root) { - savedInputChecked.length = 0; - var inputs = root.getElementsByTagName("input"); - var idx = inputs.length; - while (idx--) { - var el = inputs[idx]; - el.checked && savedInputChecked.push(el); - } -} -function _nextTick(fn) { - return setTimeout(fn, 0); -} -function _cancelNextTick(id) { - return clearTimeout(id); -} -function AutoScrollPlugin() { - function AutoScroll() { - this.defaults = { - scroll: true, - forceAutoScrollFallback: false, - scrollSensitivity: 30, - scrollSpeed: 10, - bubbleScroll: true - }; - for (var fn in this) { - if (fn.charAt(0) === "_" && typeof this[fn] === "function") { - this[fn] = this[fn].bind(this); - } - } - } - AutoScroll.prototype = { - dragStarted: function dragStarted2(_ref) { - var originalEvent = _ref.originalEvent; - if (this.sortable.nativeDraggable) { - on(document, "dragover", this._handleAutoScroll); - } else { - if (this.options.supportPointer) { - on(document, "pointermove", this._handleFallbackAutoScroll); - } else if (originalEvent.touches) { - on(document, "touchmove", this._handleFallbackAutoScroll); - } else { - on(document, "mousemove", this._handleFallbackAutoScroll); - } - } - }, - dragOverCompleted: function dragOverCompleted(_ref2) { - var originalEvent = _ref2.originalEvent; - if (!this.options.dragOverBubble && !originalEvent.rootEl) { - this._handleAutoScroll(originalEvent); - } - }, - drop: function drop3() { - if (this.sortable.nativeDraggable) { - off(document, "dragover", this._handleAutoScroll); - } else { - off(document, "pointermove", this._handleFallbackAutoScroll); - off(document, "touchmove", this._handleFallbackAutoScroll); - off(document, "mousemove", this._handleFallbackAutoScroll); - } - clearPointerElemChangedInterval(); - clearAutoScrolls(); - cancelThrottle(); - }, - nulling: function nulling() { - touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null; - autoScrolls.length = 0; - }, - _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) { - this._handleAutoScroll(evt, true); - }, - _handleAutoScroll: function _handleAutoScroll(evt, fallback) { - var _this = this; - var x = (evt.touches ? evt.touches[0] : evt).clientX, y = (evt.touches ? evt.touches[0] : evt).clientY, elem = document.elementFromPoint(x, y); - touchEvt$1 = evt; - if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) { - autoScroll(evt, this.options, elem, fallback); - var ogElemScroller = getParentAutoScrollElement(elem, true); - if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) { - pointerElemChangedInterval && clearPointerElemChangedInterval(); - pointerElemChangedInterval = setInterval(function() { - var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true); - if (newElem !== ogElemScroller) { - ogElemScroller = newElem; - clearAutoScrolls(); - } - autoScroll(evt, _this.options, newElem, fallback); - }, 10); - lastAutoScrollX = x; - lastAutoScrollY = y; - } - } else { - if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) { - clearAutoScrolls(); - return; - } - autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false); - } - } - }; - return _extends(AutoScroll, { - pluginName: "scroll", - initializeByDefault: true - }); -} -function clearAutoScrolls() { - autoScrolls.forEach(function(autoScroll2) { - clearInterval(autoScroll2.pid); - }); - autoScrolls = []; -} -function clearPointerElemChangedInterval() { - clearInterval(pointerElemChangedInterval); -} -function Revert() { -} -function Remove() { -} -function SwapPlugin() { - function Swap() { - this.defaults = { - swapClass: "sortable-swap-highlight" - }; - } - Swap.prototype = { - dragStart: function dragStart2(_ref) { - var dragEl2 = _ref.dragEl; - lastSwapEl = dragEl2; - }, - dragOverValid: function dragOverValid(_ref2) { - var completed = _ref2.completed, target = _ref2.target, onMove = _ref2.onMove, activeSortable = _ref2.activeSortable, changed = _ref2.changed, cancel = _ref2.cancel; - if (!activeSortable.options.swap) return; - var el = this.sortable.el, options = this.options; - if (target && target !== el) { - var prevSwapEl = lastSwapEl; - if (onMove(target) !== false) { - toggleClass(target, options.swapClass, true); - lastSwapEl = target; - } else { - lastSwapEl = null; - } - if (prevSwapEl && prevSwapEl !== lastSwapEl) { - toggleClass(prevSwapEl, options.swapClass, false); - } - } - changed(); - completed(true); - cancel(); - }, - drop: function drop3(_ref3) { - var activeSortable = _ref3.activeSortable, putSortable2 = _ref3.putSortable, dragEl2 = _ref3.dragEl; - var toSortable = putSortable2 || this.sortable; - var options = this.options; - lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false); - if (lastSwapEl && (options.swap || putSortable2 && putSortable2.options.swap)) { - if (dragEl2 !== lastSwapEl) { - toSortable.captureAnimationState(); - if (toSortable !== activeSortable) activeSortable.captureAnimationState(); - swapNodes(dragEl2, lastSwapEl); - toSortable.animateAll(); - if (toSortable !== activeSortable) activeSortable.animateAll(); - } - } - }, - nulling: function nulling() { - lastSwapEl = null; - } - }; - return _extends(Swap, { - pluginName: "swap", - eventProperties: function eventProperties() { - return { - swapItem: lastSwapEl - }; - } - }); -} -function swapNodes(n1, n2) { - var p1 = n1.parentNode, p2 = n2.parentNode, i1, i2; - if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return; - i1 = index(n1); - i2 = index(n2); - if (p1.isEqualNode(p2) && i1 < i2) { - i2++; - } - p1.insertBefore(n2, p1.children[i1]); - p2.insertBefore(n1, p2.children[i2]); -} -function MultiDragPlugin() { - function MultiDrag(sortable) { - for (var fn in this) { - if (fn.charAt(0) === "_" && typeof this[fn] === "function") { - this[fn] = this[fn].bind(this); - } - } - if (sortable.options.supportPointer) { - on(document, "pointerup", this._deselectMultiDrag); - } else { - on(document, "mouseup", this._deselectMultiDrag); - on(document, "touchend", this._deselectMultiDrag); - } - on(document, "keydown", this._checkKeyDown); - on(document, "keyup", this._checkKeyUp); - this.defaults = { - selectedClass: "sortable-selected", - multiDragKey: null, - setData: function setData(dataTransfer, dragEl2) { - var data = ""; - if (multiDragElements.length && multiDragSortable === sortable) { - multiDragElements.forEach(function(multiDragElement, i) { - data += (!i ? "" : ", ") + multiDragElement.textContent; - }); - } else { - data = dragEl2.textContent; - } - dataTransfer.setData("Text", data); - } - }; - } - MultiDrag.prototype = { - multiDragKeyDown: false, - isMultiDrag: false, - delayStartGlobal: function delayStartGlobal(_ref) { - var dragged = _ref.dragEl; - dragEl$1 = dragged; - }, - delayEnded: function delayEnded() { - this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1); - }, - setupClone: function setupClone(_ref2) { - var sortable = _ref2.sortable, cancel = _ref2.cancel; - if (!this.isMultiDrag) return; - for (var i = 0; i < multiDragElements.length; i++) { - multiDragClones.push(clone(multiDragElements[i])); - multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex; - multiDragClones[i].draggable = false; - multiDragClones[i].style["will-change"] = ""; - toggleClass(multiDragClones[i], this.options.selectedClass, false); - multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false); - } - sortable._hideClone(); - cancel(); - }, - clone: function clone2(_ref3) { - var sortable = _ref3.sortable, rootEl2 = _ref3.rootEl, dispatchSortableEvent = _ref3.dispatchSortableEvent, cancel = _ref3.cancel; - if (!this.isMultiDrag) return; - if (!this.options.removeCloneOnHide) { - if (multiDragElements.length && multiDragSortable === sortable) { - insertMultiDragClones(true, rootEl2); - dispatchSortableEvent("clone"); - cancel(); - } - } - }, - showClone: function showClone(_ref4) { - var cloneNowShown = _ref4.cloneNowShown, rootEl2 = _ref4.rootEl, cancel = _ref4.cancel; - if (!this.isMultiDrag) return; - insertMultiDragClones(false, rootEl2); - multiDragClones.forEach(function(clone2) { - css(clone2, "display", ""); - }); - cloneNowShown(); - clonesHidden = false; - cancel(); - }, - hideClone: function hideClone(_ref5) { - var _this = this; - var sortable = _ref5.sortable, cloneNowHidden = _ref5.cloneNowHidden, cancel = _ref5.cancel; - if (!this.isMultiDrag) return; - multiDragClones.forEach(function(clone2) { - css(clone2, "display", "none"); - if (_this.options.removeCloneOnHide && clone2.parentNode) { - clone2.parentNode.removeChild(clone2); - } - }); - cloneNowHidden(); - clonesHidden = true; - cancel(); - }, - dragStartGlobal: function dragStartGlobal(_ref6) { - var sortable = _ref6.sortable; - if (!this.isMultiDrag && multiDragSortable) { - multiDragSortable.multiDrag._deselectMultiDrag(); - } - multiDragElements.forEach(function(multiDragElement) { - multiDragElement.sortableIndex = index(multiDragElement); - }); - multiDragElements = multiDragElements.sort(function(a, b) { - return a.sortableIndex - b.sortableIndex; - }); - dragStarted = true; - }, - dragStarted: function dragStarted2(_ref7) { - var _this2 = this; - var sortable = _ref7.sortable; - if (!this.isMultiDrag) return; - if (this.options.sort) { - sortable.captureAnimationState(); - if (this.options.animation) { - multiDragElements.forEach(function(multiDragElement) { - if (multiDragElement === dragEl$1) return; - css(multiDragElement, "position", "absolute"); - }); - var dragRect = getRect(dragEl$1, false, true, true); - multiDragElements.forEach(function(multiDragElement) { - if (multiDragElement === dragEl$1) return; - setRect(multiDragElement, dragRect); - }); - folding = true; - initialFolding = true; - } - } - sortable.animateAll(function() { - folding = false; - initialFolding = false; - if (_this2.options.animation) { - multiDragElements.forEach(function(multiDragElement) { - unsetRect(multiDragElement); - }); - } - if (_this2.options.sort) { - removeMultiDragElements(); - } - }); - }, - dragOver: function dragOver(_ref8) { - var target = _ref8.target, completed = _ref8.completed, cancel = _ref8.cancel; - if (folding && ~multiDragElements.indexOf(target)) { - completed(false); - cancel(); - } - }, - revert: function revert(_ref9) { - var fromSortable = _ref9.fromSortable, rootEl2 = _ref9.rootEl, sortable = _ref9.sortable, dragRect = _ref9.dragRect; - if (multiDragElements.length > 1) { - multiDragElements.forEach(function(multiDragElement) { - sortable.addAnimationState({ - target: multiDragElement, - rect: folding ? getRect(multiDragElement) : dragRect - }); - unsetRect(multiDragElement); - multiDragElement.fromRect = dragRect; - fromSortable.removeAnimationState(multiDragElement); - }); - folding = false; - insertMultiDragElements(!this.options.removeCloneOnHide, rootEl2); - } - }, - dragOverCompleted: function dragOverCompleted(_ref10) { - var sortable = _ref10.sortable, isOwner = _ref10.isOwner, insertion = _ref10.insertion, activeSortable = _ref10.activeSortable, parentEl2 = _ref10.parentEl, putSortable2 = _ref10.putSortable; - var options = this.options; - if (insertion) { - if (isOwner) { - activeSortable._hideClone(); - } - initialFolding = false; - if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable2)) { - var dragRectAbsolute = getRect(dragEl$1, false, true, true); - multiDragElements.forEach(function(multiDragElement) { - if (multiDragElement === dragEl$1) return; - setRect(multiDragElement, dragRectAbsolute); - parentEl2.appendChild(multiDragElement); - }); - folding = true; - } - if (!isOwner) { - if (!folding) { - removeMultiDragElements(); - } - if (multiDragElements.length > 1) { - var clonesHiddenBefore = clonesHidden; - activeSortable._showClone(sortable); - if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) { - multiDragClones.forEach(function(clone2) { - activeSortable.addAnimationState({ - target: clone2, - rect: clonesFromRect - }); - clone2.fromRect = clonesFromRect; - clone2.thisAnimationDuration = null; - }); - } - } else { - activeSortable._showClone(sortable); - } - } - } - }, - dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) { - var dragRect = _ref11.dragRect, isOwner = _ref11.isOwner, activeSortable = _ref11.activeSortable; - multiDragElements.forEach(function(multiDragElement) { - multiDragElement.thisAnimationDuration = null; - }); - if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) { - clonesFromRect = _extends({}, dragRect); - var dragMatrix = matrix(dragEl$1, true); - clonesFromRect.top -= dragMatrix.f; - clonesFromRect.left -= dragMatrix.e; - } - }, - dragOverAnimationComplete: function dragOverAnimationComplete() { - if (folding) { - folding = false; - removeMultiDragElements(); - } - }, - drop: function drop3(_ref12) { - var evt = _ref12.originalEvent, rootEl2 = _ref12.rootEl, parentEl2 = _ref12.parentEl, sortable = _ref12.sortable, dispatchSortableEvent = _ref12.dispatchSortableEvent, oldIndex2 = _ref12.oldIndex, putSortable2 = _ref12.putSortable; - var toSortable = putSortable2 || this.sortable; - if (!evt) return; - var options = this.options, children = parentEl2.children; - if (!dragStarted) { - if (options.multiDragKey && !this.multiDragKeyDown) { - this._deselectMultiDrag(); - } - toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1)); - if (!~multiDragElements.indexOf(dragEl$1)) { - multiDragElements.push(dragEl$1); - dispatchEvent({ - sortable, - rootEl: rootEl2, - name: "select", - targetEl: dragEl$1, - originalEvt: evt - }); - if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) { - var lastIndex = index(lastMultiDragSelect), currentIndex = index(dragEl$1); - if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) { - var n, i; - if (currentIndex > lastIndex) { - i = lastIndex; - n = currentIndex; - } else { - i = currentIndex; - n = lastIndex + 1; - } - for (; i < n; i++) { - if (~multiDragElements.indexOf(children[i])) continue; - toggleClass(children[i], options.selectedClass, true); - multiDragElements.push(children[i]); - dispatchEvent({ - sortable, - rootEl: rootEl2, - name: "select", - targetEl: children[i], - originalEvt: evt - }); - } - } - } else { - lastMultiDragSelect = dragEl$1; - } - multiDragSortable = toSortable; - } else { - multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1); - lastMultiDragSelect = null; - dispatchEvent({ - sortable, - rootEl: rootEl2, - name: "deselect", - targetEl: dragEl$1, - originalEvt: evt - }); - } - } - if (dragStarted && this.isMultiDrag) { - folding = false; - if ((parentEl2[expando].options.sort || parentEl2 !== rootEl2) && multiDragElements.length > 1) { - var dragRect = getRect(dragEl$1), multiDragIndex = index(dragEl$1, ":not(." + this.options.selectedClass + ")"); - if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null; - toSortable.captureAnimationState(); - if (!initialFolding) { - if (options.animation) { - dragEl$1.fromRect = dragRect; - multiDragElements.forEach(function(multiDragElement) { - multiDragElement.thisAnimationDuration = null; - if (multiDragElement !== dragEl$1) { - var rect = folding ? getRect(multiDragElement) : dragRect; - multiDragElement.fromRect = rect; - toSortable.addAnimationState({ - target: multiDragElement, - rect - }); - } - }); - } - removeMultiDragElements(); - multiDragElements.forEach(function(multiDragElement) { - if (children[multiDragIndex]) { - parentEl2.insertBefore(multiDragElement, children[multiDragIndex]); - } else { - parentEl2.appendChild(multiDragElement); - } - multiDragIndex++; - }); - if (oldIndex2 === index(dragEl$1)) { - var update = false; - multiDragElements.forEach(function(multiDragElement) { - if (multiDragElement.sortableIndex !== index(multiDragElement)) { - update = true; - return; - } - }); - if (update) { - dispatchSortableEvent("update"); - } - } - } - multiDragElements.forEach(function(multiDragElement) { - unsetRect(multiDragElement); - }); - toSortable.animateAll(); - } - multiDragSortable = toSortable; - } - if (rootEl2 === parentEl2 || putSortable2 && putSortable2.lastPutMode !== "clone") { - multiDragClones.forEach(function(clone2) { - clone2.parentNode && clone2.parentNode.removeChild(clone2); - }); - } - }, - nullingGlobal: function nullingGlobal() { - this.isMultiDrag = dragStarted = false; - multiDragClones.length = 0; - }, - destroyGlobal: function destroyGlobal() { - this._deselectMultiDrag(); - off(document, "pointerup", this._deselectMultiDrag); - off(document, "mouseup", this._deselectMultiDrag); - off(document, "touchend", this._deselectMultiDrag); - off(document, "keydown", this._checkKeyDown); - off(document, "keyup", this._checkKeyUp); - }, - _deselectMultiDrag: function _deselectMultiDrag(evt) { - if (typeof dragStarted !== "undefined" && dragStarted) return; - if (multiDragSortable !== this.sortable) return; - if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; - if (evt && evt.button !== 0) return; - while (multiDragElements.length) { - var el = multiDragElements[0]; - toggleClass(el, this.options.selectedClass, false); - multiDragElements.shift(); - dispatchEvent({ - sortable: this.sortable, - rootEl: this.sortable.el, - name: "deselect", - targetEl: el, - originalEvt: evt - }); - } - }, - _checkKeyDown: function _checkKeyDown(evt) { - if (evt.key === this.options.multiDragKey) { - this.multiDragKeyDown = true; - } - }, - _checkKeyUp: function _checkKeyUp(evt) { - if (evt.key === this.options.multiDragKey) { - this.multiDragKeyDown = false; - } - } - }; - return _extends(MultiDrag, { - // Static methods & properties - pluginName: "multiDrag", - utils: { - /** - * Selects the provided multi-drag item - * @param {HTMLElement} el The element to be selected - */ - select: function select(el) { - var sortable = el.parentNode[expando]; - if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return; - if (multiDragSortable && multiDragSortable !== sortable) { - multiDragSortable.multiDrag._deselectMultiDrag(); - multiDragSortable = sortable; - } - toggleClass(el, sortable.options.selectedClass, true); - multiDragElements.push(el); - }, - /** - * Deselects the provided multi-drag item - * @param {HTMLElement} el The element to be deselected - */ - deselect: function deselect(el) { - var sortable = el.parentNode[expando], index2 = multiDragElements.indexOf(el); - if (!sortable || !sortable.options.multiDrag || !~index2) return; - toggleClass(el, sortable.options.selectedClass, false); - multiDragElements.splice(index2, 1); - } - }, - eventProperties: function eventProperties() { - var _this3 = this; - var oldIndicies = [], newIndicies = []; - multiDragElements.forEach(function(multiDragElement) { - oldIndicies.push({ - multiDragElement, - index: multiDragElement.sortableIndex - }); - var newIndex2; - if (folding && multiDragElement !== dragEl$1) { - newIndex2 = -1; - } else if (folding) { - newIndex2 = index(multiDragElement, ":not(." + _this3.options.selectedClass + ")"); - } else { - newIndex2 = index(multiDragElement); - } - newIndicies.push({ - multiDragElement, - index: newIndex2 - }); - }); - return { - items: _toConsumableArray(multiDragElements), - clones: [].concat(multiDragClones), - oldIndicies, - newIndicies - }; - }, - optionListeners: { - multiDragKey: function multiDragKey(key) { - key = key.toLowerCase(); - if (key === "ctrl") { - key = "Control"; - } else if (key.length > 1) { - key = key.charAt(0).toUpperCase() + key.substr(1); - } - return key; - } - } - }); -} -function insertMultiDragElements(clonesInserted, rootEl2) { - multiDragElements.forEach(function(multiDragElement, i) { - var target = rootEl2.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)]; - if (target) { - rootEl2.insertBefore(multiDragElement, target); - } else { - rootEl2.appendChild(multiDragElement); - } - }); -} -function insertMultiDragClones(elementsInserted, rootEl2) { - multiDragClones.forEach(function(clone2, i) { - var target = rootEl2.children[clone2.sortableIndex + (elementsInserted ? Number(i) : 0)]; - if (target) { - rootEl2.insertBefore(clone2, target); - } else { - rootEl2.appendChild(clone2); - } - }); -} -function removeMultiDragElements() { - multiDragElements.forEach(function(multiDragElement) { - if (multiDragElement === dragEl$1) return; - multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement); - }); -} -var version, IE11OrLess, Edge, FireFox, Safari, IOS, ChromeForAndroid, captureMode, R_SPACE, _throttleTimeout, expando, plugins, defaults, PluginManager, _excluded, pluginEvent2, dragEl, parentEl, ghostEl, rootEl, nextEl, lastDownEl, cloneEl, cloneHidden, oldIndex, newIndex, oldDraggableIndex, newDraggableIndex, activeGroup, putSortable, awaitingDragStarted, ignoreNextClick, sortables, tapEvt, touchEvt, lastDx, lastDy, tapDistanceLeft, tapDistanceTop, moved, lastTarget, lastDirection, pastFirstInvertThresh, isCircumstantialInvert, targetMoveDistance, ghostRelativeParent, ghostRelativeParentInitialScroll, _silent, savedInputChecked, documentExists, PositionGhostAbsolutely, CSSFloatProperty, supportDraggable, supportCssPointerEvents, _detectDirection, _dragElInRowColumn, _detectNearestEmptySortable, _prepareGroup, _hideGhostForTarget, _unhideGhostForTarget, nearestEmptyInsertDetectEvent, _checkOutsideTargetEl, autoScrolls, scrollEl, scrollRootEl, scrolling, lastAutoScrollX, lastAutoScrollY, touchEvt$1, pointerElemChangedInterval, autoScroll, drop, lastSwapEl, multiDragElements, multiDragClones, lastMultiDragSelect, multiDragSortable, initialFolding, folding, dragStarted, dragEl$1, clonesFromRect, clonesHidden, sortable_esm_default; -var init_sortable_esm = __esm({ - "node_modules/sortablejs/modular/sortable.esm.js"() { - version = "1.14.0"; - IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i); - Edge = userAgent(/Edge/i); - FireFox = userAgent(/firefox/i); - Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i); - IOS = userAgent(/iP(ad|od|hone)/i); - ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i); - captureMode = { - capture: false, - passive: false - }; - R_SPACE = /\s+/g; - expando = "Sortable" + (/* @__PURE__ */ new Date()).getTime(); - plugins = []; - defaults = { - initializeByDefault: true - }; - PluginManager = { - mount: function mount(plugin) { - for (var option2 in defaults) { - if (defaults.hasOwnProperty(option2) && !(option2 in plugin)) { - plugin[option2] = defaults[option2]; - } - } - plugins.forEach(function(p) { - if (p.pluginName === plugin.pluginName) { - throw "Sortable: Cannot mount plugin ".concat(plugin.pluginName, " more than once"); - } - }); - plugins.push(plugin); - }, - pluginEvent: function pluginEvent(eventName, sortable, evt) { - var _this = this; - this.eventCanceled = false; - evt.cancel = function() { - _this.eventCanceled = true; - }; - var eventNameGlobal = eventName + "Global"; - plugins.forEach(function(plugin) { - if (!sortable[plugin.pluginName]) return; - if (sortable[plugin.pluginName][eventNameGlobal]) { - sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({ - sortable - }, evt)); - } - if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) { - sortable[plugin.pluginName][eventName](_objectSpread2({ - sortable - }, evt)); - } - }); - }, - initializePlugins: function initializePlugins(sortable, el, defaults2, options) { - plugins.forEach(function(plugin) { - var pluginName = plugin.pluginName; - if (!sortable.options[pluginName] && !plugin.initializeByDefault) return; - var initialized = new plugin(sortable, el, sortable.options); - initialized.sortable = sortable; - initialized.options = sortable.options; - sortable[pluginName] = initialized; - _extends(defaults2, initialized.defaults); - }); - for (var option2 in sortable.options) { - if (!sortable.options.hasOwnProperty(option2)) continue; - var modified = this.modifyOption(sortable, option2, sortable.options[option2]); - if (typeof modified !== "undefined") { - sortable.options[option2] = modified; - } - } - }, - getEventProperties: function getEventProperties(name, sortable) { - var eventProperties = {}; - plugins.forEach(function(plugin) { - if (typeof plugin.eventProperties !== "function") return; - _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name)); - }); - return eventProperties; - }, - modifyOption: function modifyOption(sortable, name, value) { - var modifiedValue; - plugins.forEach(function(plugin) { - if (!sortable[plugin.pluginName]) return; - if (plugin.optionListeners && typeof plugin.optionListeners[name] === "function") { - modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value); - } - }); - return modifiedValue; - } - }; - _excluded = ["evt"]; - pluginEvent2 = function pluginEvent3(eventName, sortable) { - var _ref = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, originalEvent = _ref.evt, data = _objectWithoutProperties(_ref, _excluded); - PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({ - dragEl, - parentEl, - ghostEl, - rootEl, - nextEl, - lastDownEl, - cloneEl, - cloneHidden, - dragStarted: moved, - putSortable, - activeSortable: Sortable.active, - originalEvent, - oldIndex, - oldDraggableIndex, - newIndex, - newDraggableIndex, - hideGhostForTarget: _hideGhostForTarget, - unhideGhostForTarget: _unhideGhostForTarget, - cloneNowHidden: function cloneNowHidden() { - cloneHidden = true; - }, - cloneNowShown: function cloneNowShown() { - cloneHidden = false; - }, - dispatchSortableEvent: function dispatchSortableEvent(name) { - _dispatchEvent({ - sortable, - name, - originalEvent - }); - } - }, data)); - }; - awaitingDragStarted = false; - ignoreNextClick = false; - sortables = []; - pastFirstInvertThresh = false; - isCircumstantialInvert = false; - ghostRelativeParentInitialScroll = []; - _silent = false; - savedInputChecked = []; - documentExists = typeof document !== "undefined"; - PositionGhostAbsolutely = IOS; - CSSFloatProperty = Edge || IE11OrLess ? "cssFloat" : "float"; - supportDraggable = documentExists && !ChromeForAndroid && !IOS && "draggable" in document.createElement("div"); - supportCssPointerEvents = function() { - if (!documentExists) return; - if (IE11OrLess) { - return false; - } - var el = document.createElement("x"); - el.style.cssText = "pointer-events:auto"; - return el.style.pointerEvents === "auto"; - }(); - _detectDirection = function _detectDirection2(el, options) { - var elCSS = css(el), elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth), child1 = getChild(el, 0, options), child2 = getChild(el, 1, options), firstChildCSS = child1 && css(child1), secondChildCSS = child2 && css(child2), firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width, secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width; - if (elCSS.display === "flex") { - return elCSS.flexDirection === "column" || elCSS.flexDirection === "column-reverse" ? "vertical" : "horizontal"; - } - if (elCSS.display === "grid") { - return elCSS.gridTemplateColumns.split(" ").length <= 1 ? "vertical" : "horizontal"; - } - if (child1 && firstChildCSS["float"] && firstChildCSS["float"] !== "none") { - var touchingSideChild2 = firstChildCSS["float"] === "left" ? "left" : "right"; - return child2 && (secondChildCSS.clear === "both" || secondChildCSS.clear === touchingSideChild2) ? "vertical" : "horizontal"; - } - return child1 && (firstChildCSS.display === "block" || firstChildCSS.display === "flex" || firstChildCSS.display === "table" || firstChildCSS.display === "grid" || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === "none" || child2 && elCSS[CSSFloatProperty] === "none" && firstChildWidth + secondChildWidth > elWidth) ? "vertical" : "horizontal"; - }; - _dragElInRowColumn = function _dragElInRowColumn2(dragRect, targetRect, vertical) { - var dragElS1Opp = vertical ? dragRect.left : dragRect.top, dragElS2Opp = vertical ? dragRect.right : dragRect.bottom, dragElOppLength = vertical ? dragRect.width : dragRect.height, targetS1Opp = vertical ? targetRect.left : targetRect.top, targetS2Opp = vertical ? targetRect.right : targetRect.bottom, targetOppLength = vertical ? targetRect.width : targetRect.height; - return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2; - }; - _detectNearestEmptySortable = function _detectNearestEmptySortable2(x, y) { - var ret; - sortables.some(function(sortable) { - var threshold = sortable[expando].options.emptyInsertThreshold; - if (!threshold || lastChild(sortable)) return; - var rect = getRect(sortable), insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold, insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold; - if (insideHorizontally && insideVertically) { - return ret = sortable; - } - }); - return ret; - }; - _prepareGroup = function _prepareGroup2(options) { - function toFn(value, pull) { - return function(to, from, dragEl2, evt) { - var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name; - if (value == null && (pull || sameGroup)) { - return true; - } else if (value == null || value === false) { - return false; - } else if (pull && value === "clone") { - return value; - } else if (typeof value === "function") { - return toFn(value(to, from, dragEl2, evt), pull)(to, from, dragEl2, evt); - } else { - var otherGroup = (pull ? to : from).options.group.name; - return value === true || typeof value === "string" && value === otherGroup || value.join && value.indexOf(otherGroup) > -1; - } - }; - } - var group = {}; - var originalGroup = options.group; - if (!originalGroup || _typeof(originalGroup) != "object") { - originalGroup = { - name: originalGroup - }; - } - group.name = originalGroup.name; - group.checkPull = toFn(originalGroup.pull, true); - group.checkPut = toFn(originalGroup.put); - group.revertClone = originalGroup.revertClone; - options.group = group; - }; - _hideGhostForTarget = function _hideGhostForTarget2() { - if (!supportCssPointerEvents && ghostEl) { - css(ghostEl, "display", "none"); - } - }; - _unhideGhostForTarget = function _unhideGhostForTarget2() { - if (!supportCssPointerEvents && ghostEl) { - css(ghostEl, "display", ""); - } - }; - if (documentExists) { - document.addEventListener("click", function(evt) { - if (ignoreNextClick) { - evt.preventDefault(); - evt.stopPropagation && evt.stopPropagation(); - evt.stopImmediatePropagation && evt.stopImmediatePropagation(); - ignoreNextClick = false; - return false; - } - }, true); - } - nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent2(evt) { - if (dragEl) { - evt = evt.touches ? evt.touches[0] : evt; - var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY); - if (nearest) { - var event = {}; - for (var i in evt) { - if (evt.hasOwnProperty(i)) { - event[i] = evt[i]; - } - } - event.target = event.rootEl = nearest; - event.preventDefault = void 0; - event.stopPropagation = void 0; - nearest[expando]._onDragOver(event); - } - } - }; - _checkOutsideTargetEl = function _checkOutsideTargetEl2(evt) { - if (dragEl) { - dragEl.parentNode[expando]._isOutsideThisEl(evt.target); - } - }; - Sortable.prototype = /** @lends Sortable.prototype */ - { - constructor: Sortable, - _isOutsideThisEl: function _isOutsideThisEl(target) { - if (!this.el.contains(target) && target !== this.el) { - lastTarget = null; - } - }, - _getDirection: function _getDirection(evt, target) { - return typeof this.options.direction === "function" ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction; - }, - _onTapStart: function _onTapStart(evt) { - if (!evt.cancelable) return; - var _this = this, el = this.el, options = this.options, preventOnFilter = options.preventOnFilter, type = evt.type, touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === "touch" && evt, target = (touch || evt).target, originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target, filter = options.filter; - _saveInputCheckedState(el); - if (dragEl) { - return; - } - if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) { - return; - } - if (originalTarget.isContentEditable) { - return; - } - if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === "SELECT") { - return; - } - target = closest(target, options.draggable, el, false); - if (target && target.animated) { - return; - } - if (lastDownEl === target) { - return; - } - oldIndex = index(target); - oldDraggableIndex = index(target, options.draggable); - if (typeof filter === "function") { - if (filter.call(this, evt, target, this)) { - _dispatchEvent({ - sortable: _this, - rootEl: originalTarget, - name: "filter", - targetEl: target, - toEl: el, - fromEl: el - }); - pluginEvent2("filter", _this, { - evt - }); - preventOnFilter && evt.cancelable && evt.preventDefault(); - return; - } - } else if (filter) { - filter = filter.split(",").some(function(criteria) { - criteria = closest(originalTarget, criteria.trim(), el, false); - if (criteria) { - _dispatchEvent({ - sortable: _this, - rootEl: criteria, - name: "filter", - targetEl: target, - fromEl: el, - toEl: el - }); - pluginEvent2("filter", _this, { - evt - }); - return true; - } - }); - if (filter) { - preventOnFilter && evt.cancelable && evt.preventDefault(); - return; - } - } - if (options.handle && !closest(originalTarget, options.handle, el, false)) { - return; - } - this._prepareDragStart(evt, touch, target); - }, - _prepareDragStart: function _prepareDragStart(evt, touch, target) { - var _this = this, el = _this.el, options = _this.options, ownerDocument = el.ownerDocument, dragStartFn; - if (target && !dragEl && target.parentNode === el) { - var dragRect = getRect(target); - rootEl = el; - dragEl = target; - parentEl = dragEl.parentNode; - nextEl = dragEl.nextSibling; - lastDownEl = target; - activeGroup = options.group; - Sortable.dragged = dragEl; - tapEvt = { - target: dragEl, - clientX: (touch || evt).clientX, - clientY: (touch || evt).clientY - }; - tapDistanceLeft = tapEvt.clientX - dragRect.left; - tapDistanceTop = tapEvt.clientY - dragRect.top; - this._lastX = (touch || evt).clientX; - this._lastY = (touch || evt).clientY; - dragEl.style["will-change"] = "all"; - dragStartFn = function dragStartFn2() { - pluginEvent2("delayEnded", _this, { - evt - }); - if (Sortable.eventCanceled) { - _this._onDrop(); - return; - } - _this._disableDelayedDragEvents(); - if (!FireFox && _this.nativeDraggable) { - dragEl.draggable = true; - } - _this._triggerDragStart(evt, touch); - _dispatchEvent({ - sortable: _this, - name: "choose", - originalEvent: evt - }); - toggleClass(dragEl, options.chosenClass, true); - }; - options.ignore.split(",").forEach(function(criteria) { - find(dragEl, criteria.trim(), _disableDraggable); - }); - on(ownerDocument, "dragover", nearestEmptyInsertDetectEvent); - on(ownerDocument, "mousemove", nearestEmptyInsertDetectEvent); - on(ownerDocument, "touchmove", nearestEmptyInsertDetectEvent); - on(ownerDocument, "mouseup", _this._onDrop); - on(ownerDocument, "touchend", _this._onDrop); - on(ownerDocument, "touchcancel", _this._onDrop); - if (FireFox && this.nativeDraggable) { - this.options.touchStartThreshold = 4; - dragEl.draggable = true; - } - pluginEvent2("delayStart", this, { - evt - }); - if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) { - if (Sortable.eventCanceled) { - this._onDrop(); - return; - } - on(ownerDocument, "mouseup", _this._disableDelayedDrag); - on(ownerDocument, "touchend", _this._disableDelayedDrag); - on(ownerDocument, "touchcancel", _this._disableDelayedDrag); - on(ownerDocument, "mousemove", _this._delayedDragTouchMoveHandler); - on(ownerDocument, "touchmove", _this._delayedDragTouchMoveHandler); - options.supportPointer && on(ownerDocument, "pointermove", _this._delayedDragTouchMoveHandler); - _this._dragStartTimer = setTimeout(dragStartFn, options.delay); - } else { - dragStartFn(); - } - } - }, - _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(e) { - var touch = e.touches ? e.touches[0] : e; - if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) { - this._disableDelayedDrag(); - } - }, - _disableDelayedDrag: function _disableDelayedDrag() { - dragEl && _disableDraggable(dragEl); - clearTimeout(this._dragStartTimer); - this._disableDelayedDragEvents(); - }, - _disableDelayedDragEvents: function _disableDelayedDragEvents() { - var ownerDocument = this.el.ownerDocument; - off(ownerDocument, "mouseup", this._disableDelayedDrag); - off(ownerDocument, "touchend", this._disableDelayedDrag); - off(ownerDocument, "touchcancel", this._disableDelayedDrag); - off(ownerDocument, "mousemove", this._delayedDragTouchMoveHandler); - off(ownerDocument, "touchmove", this._delayedDragTouchMoveHandler); - off(ownerDocument, "pointermove", this._delayedDragTouchMoveHandler); - }, - _triggerDragStart: function _triggerDragStart(evt, touch) { - touch = touch || evt.pointerType == "touch" && evt; - if (!this.nativeDraggable || touch) { - if (this.options.supportPointer) { - on(document, "pointermove", this._onTouchMove); - } else if (touch) { - on(document, "touchmove", this._onTouchMove); - } else { - on(document, "mousemove", this._onTouchMove); - } - } else { - on(dragEl, "dragend", this); - on(rootEl, "dragstart", this._onDragStart); - } - try { - if (document.selection) { - _nextTick(function() { - document.selection.empty(); - }); - } else { - window.getSelection().removeAllRanges(); - } - } catch (err) { - } - }, - _dragStarted: function _dragStarted(fallback, evt) { - awaitingDragStarted = false; - if (rootEl && dragEl) { - pluginEvent2("dragStarted", this, { - evt - }); - if (this.nativeDraggable) { - on(document, "dragover", _checkOutsideTargetEl); - } - var options = this.options; - !fallback && toggleClass(dragEl, options.dragClass, false); - toggleClass(dragEl, options.ghostClass, true); - Sortable.active = this; - fallback && this._appendGhost(); - _dispatchEvent({ - sortable: this, - name: "start", - originalEvent: evt - }); - } else { - this._nulling(); - } - }, - _emulateDragOver: function _emulateDragOver() { - if (touchEvt) { - this._lastX = touchEvt.clientX; - this._lastY = touchEvt.clientY; - _hideGhostForTarget(); - var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY); - var parent = target; - while (target && target.shadowRoot) { - target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY); - if (target === parent) break; - parent = target; - } - dragEl.parentNode[expando]._isOutsideThisEl(target); - if (parent) { - do { - if (parent[expando]) { - var inserted = void 0; - inserted = parent[expando]._onDragOver({ - clientX: touchEvt.clientX, - clientY: touchEvt.clientY, - target, - rootEl: parent - }); - if (inserted && !this.options.dragoverBubble) { - break; - } - } - target = parent; - } while (parent = parent.parentNode); - } - _unhideGhostForTarget(); - } - }, - _onTouchMove: function _onTouchMove(evt) { - if (tapEvt) { - var options = this.options, fallbackTolerance = options.fallbackTolerance, fallbackOffset = options.fallbackOffset, touch = evt.touches ? evt.touches[0] : evt, ghostMatrix = ghostEl && matrix(ghostEl, true), scaleX = ghostEl && ghostMatrix && ghostMatrix.a, scaleY = ghostEl && ghostMatrix && ghostMatrix.d, relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent), dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1), dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); - if (!Sortable.active && !awaitingDragStarted) { - if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) { - return; - } - this._onDragStart(evt, true); - } - if (ghostEl) { - if (ghostMatrix) { - ghostMatrix.e += dx - (lastDx || 0); - ghostMatrix.f += dy - (lastDy || 0); - } else { - ghostMatrix = { - a: 1, - b: 0, - c: 0, - d: 1, - e: dx, - f: dy - }; - } - var cssMatrix = "matrix(".concat(ghostMatrix.a, ",").concat(ghostMatrix.b, ",").concat(ghostMatrix.c, ",").concat(ghostMatrix.d, ",").concat(ghostMatrix.e, ",").concat(ghostMatrix.f, ")"); - css(ghostEl, "webkitTransform", cssMatrix); - css(ghostEl, "mozTransform", cssMatrix); - css(ghostEl, "msTransform", cssMatrix); - css(ghostEl, "transform", cssMatrix); - lastDx = dx; - lastDy = dy; - touchEvt = touch; - } - evt.cancelable && evt.preventDefault(); - } - }, - _appendGhost: function _appendGhost() { - if (!ghostEl) { - var container = this.options.fallbackOnBody ? document.body : rootEl, rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container), options = this.options; - if (PositionGhostAbsolutely) { - ghostRelativeParent = container; - while (css(ghostRelativeParent, "position") === "static" && css(ghostRelativeParent, "transform") === "none" && ghostRelativeParent !== document) { - ghostRelativeParent = ghostRelativeParent.parentNode; - } - if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) { - if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement(); - rect.top += ghostRelativeParent.scrollTop; - rect.left += ghostRelativeParent.scrollLeft; - } else { - ghostRelativeParent = getWindowScrollingElement(); - } - ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent); - } - ghostEl = dragEl.cloneNode(true); - toggleClass(ghostEl, options.ghostClass, false); - toggleClass(ghostEl, options.fallbackClass, true); - toggleClass(ghostEl, options.dragClass, true); - css(ghostEl, "transition", ""); - css(ghostEl, "transform", ""); - css(ghostEl, "box-sizing", "border-box"); - css(ghostEl, "margin", 0); - css(ghostEl, "top", rect.top); - css(ghostEl, "left", rect.left); - css(ghostEl, "width", rect.width); - css(ghostEl, "height", rect.height); - css(ghostEl, "opacity", "0.8"); - css(ghostEl, "position", PositionGhostAbsolutely ? "absolute" : "fixed"); - css(ghostEl, "zIndex", "100000"); - css(ghostEl, "pointerEvents", "none"); - Sortable.ghost = ghostEl; - container.appendChild(ghostEl); - css(ghostEl, "transform-origin", tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + "% " + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + "%"); - } - }, - _onDragStart: function _onDragStart(evt, fallback) { - var _this = this; - var dataTransfer = evt.dataTransfer; - var options = _this.options; - pluginEvent2("dragStart", this, { - evt - }); - if (Sortable.eventCanceled) { - this._onDrop(); - return; - } - pluginEvent2("setupClone", this); - if (!Sortable.eventCanceled) { - cloneEl = clone(dragEl); - cloneEl.draggable = false; - cloneEl.style["will-change"] = ""; - this._hideClone(); - toggleClass(cloneEl, this.options.chosenClass, false); - Sortable.clone = cloneEl; - } - _this.cloneId = _nextTick(function() { - pluginEvent2("clone", _this); - if (Sortable.eventCanceled) return; - if (!_this.options.removeCloneOnHide) { - rootEl.insertBefore(cloneEl, dragEl); - } - _this._hideClone(); - _dispatchEvent({ - sortable: _this, - name: "clone" - }); - }); - !fallback && toggleClass(dragEl, options.dragClass, true); - if (fallback) { - ignoreNextClick = true; - _this._loopId = setInterval(_this._emulateDragOver, 50); - } else { - off(document, "mouseup", _this._onDrop); - off(document, "touchend", _this._onDrop); - off(document, "touchcancel", _this._onDrop); - if (dataTransfer) { - dataTransfer.effectAllowed = "move"; - options.setData && options.setData.call(_this, dataTransfer, dragEl); - } - on(document, "drop", _this); - css(dragEl, "transform", "translateZ(0)"); - } - awaitingDragStarted = true; - _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt)); - on(document, "selectstart", _this); - moved = true; - if (Safari) { - css(document.body, "user-select", "none"); - } - }, - // Returns true - if no further action is needed (either inserted or another condition) - _onDragOver: function _onDragOver(evt) { - var el = this.el, target = evt.target, dragRect, targetRect, revert, options = this.options, group = options.group, activeSortable = Sortable.active, isOwner = activeGroup === group, canSort = options.sort, fromSortable = putSortable || activeSortable, vertical, _this = this, completedFired = false; - if (_silent) return; - function dragOverEvent(name, extra) { - pluginEvent2(name, _this, _objectSpread2({ - evt, - isOwner, - axis: vertical ? "vertical" : "horizontal", - revert, - dragRect, - targetRect, - canSort, - fromSortable, - target, - completed, - onMove: function onMove(target2, after2) { - return _onMove(rootEl, el, dragEl, dragRect, target2, getRect(target2), evt, after2); - }, - changed - }, extra)); - } - function capture() { - dragOverEvent("dragOverAnimationCapture"); - _this.captureAnimationState(); - if (_this !== fromSortable) { - fromSortable.captureAnimationState(); - } - } - function completed(insertion) { - dragOverEvent("dragOverCompleted", { - insertion - }); - if (insertion) { - if (isOwner) { - activeSortable._hideClone(); - } else { - activeSortable._showClone(_this); - } - if (_this !== fromSortable) { - toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false); - toggleClass(dragEl, options.ghostClass, true); - } - if (putSortable !== _this && _this !== Sortable.active) { - putSortable = _this; - } else if (_this === Sortable.active && putSortable) { - putSortable = null; - } - if (fromSortable === _this) { - _this._ignoreWhileAnimating = target; - } - _this.animateAll(function() { - dragOverEvent("dragOverAnimationComplete"); - _this._ignoreWhileAnimating = null; - }); - if (_this !== fromSortable) { - fromSortable.animateAll(); - fromSortable._ignoreWhileAnimating = null; - } - } - if (target === dragEl && !dragEl.animated || target === el && !target.animated) { - lastTarget = null; - } - if (!options.dragoverBubble && !evt.rootEl && target !== document) { - dragEl.parentNode[expando]._isOutsideThisEl(evt.target); - !insertion && nearestEmptyInsertDetectEvent(evt); - } - !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation(); - return completedFired = true; - } - function changed() { - newIndex = index(dragEl); - newDraggableIndex = index(dragEl, options.draggable); - _dispatchEvent({ - sortable: _this, - name: "change", - toEl: el, - newIndex, - newDraggableIndex, - originalEvent: evt - }); - } - if (evt.preventDefault !== void 0) { - evt.cancelable && evt.preventDefault(); - } - target = closest(target, options.draggable, el, true); - dragOverEvent("dragOver"); - if (Sortable.eventCanceled) return completedFired; - if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) { - return completed(false); - } - ignoreNextClick = false; - if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) { - vertical = this._getDirection(evt, target) === "vertical"; - dragRect = getRect(dragEl); - dragOverEvent("dragOverValid"); - if (Sortable.eventCanceled) return completedFired; - if (revert) { - parentEl = rootEl; - capture(); - this._hideClone(); - dragOverEvent("revert"); - if (!Sortable.eventCanceled) { - if (nextEl) { - rootEl.insertBefore(dragEl, nextEl); - } else { - rootEl.appendChild(dragEl); - } - } - return completed(true); - } - var elLastChild = lastChild(el, options.draggable); - if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) { - if (elLastChild === dragEl) { - return completed(false); - } - if (elLastChild && el === evt.target) { - target = elLastChild; - } - if (target) { - targetRect = getRect(target); - } - if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) { - capture(); - el.appendChild(dragEl); - parentEl = el; - changed(); - return completed(true); - } - } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) { - var firstChild = getChild(el, 0, options, true); - if (firstChild === dragEl) { - return completed(false); - } - target = firstChild; - targetRect = getRect(target); - if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) { - capture(); - el.insertBefore(dragEl, firstChild); - parentEl = el; - changed(); - return completed(true); - } - } else if (target.parentNode === el) { - targetRect = getRect(target); - var direction = 0, targetBeforeFirstSwap, differentLevel = dragEl.parentNode !== el, differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical), side1 = vertical ? "top" : "left", scrolledPastTop = isScrolledPast(target, "top", "top") || isScrolledPast(dragEl, "top", "top"), scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0; - if (lastTarget !== target) { - targetBeforeFirstSwap = targetRect[side1]; - pastFirstInvertThresh = false; - isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel; - } - direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target); - var sibling; - if (direction !== 0) { - var dragIndex = index(dragEl); - do { - dragIndex -= direction; - sibling = parentEl.children[dragIndex]; - } while (sibling && (css(sibling, "display") === "none" || sibling === ghostEl)); - } - if (direction === 0 || sibling === target) { - return completed(false); - } - lastTarget = target; - lastDirection = direction; - var nextSibling = target.nextElementSibling, after = false; - after = direction === 1; - var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after); - if (moveVector !== false) { - if (moveVector === 1 || moveVector === -1) { - after = moveVector === 1; - } - _silent = true; - setTimeout(_unsilent, 30); - capture(); - if (after && !nextSibling) { - el.appendChild(dragEl); - } else { - target.parentNode.insertBefore(dragEl, after ? nextSibling : target); - } - if (scrolledPastTop) { - scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop); - } - parentEl = dragEl.parentNode; - if (targetBeforeFirstSwap !== void 0 && !isCircumstantialInvert) { - targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]); - } - changed(); - return completed(true); - } - } - if (el.contains(dragEl)) { - return completed(false); - } - } - return false; - }, - _ignoreWhileAnimating: null, - _offMoveEvents: function _offMoveEvents() { - off(document, "mousemove", this._onTouchMove); - off(document, "touchmove", this._onTouchMove); - off(document, "pointermove", this._onTouchMove); - off(document, "dragover", nearestEmptyInsertDetectEvent); - off(document, "mousemove", nearestEmptyInsertDetectEvent); - off(document, "touchmove", nearestEmptyInsertDetectEvent); - }, - _offUpEvents: function _offUpEvents() { - var ownerDocument = this.el.ownerDocument; - off(ownerDocument, "mouseup", this._onDrop); - off(ownerDocument, "touchend", this._onDrop); - off(ownerDocument, "pointerup", this._onDrop); - off(ownerDocument, "touchcancel", this._onDrop); - off(document, "selectstart", this); - }, - _onDrop: function _onDrop(evt) { - var el = this.el, options = this.options; - newIndex = index(dragEl); - newDraggableIndex = index(dragEl, options.draggable); - pluginEvent2("drop", this, { - evt - }); - parentEl = dragEl && dragEl.parentNode; - newIndex = index(dragEl); - newDraggableIndex = index(dragEl, options.draggable); - if (Sortable.eventCanceled) { - this._nulling(); - return; - } - awaitingDragStarted = false; - isCircumstantialInvert = false; - pastFirstInvertThresh = false; - clearInterval(this._loopId); - clearTimeout(this._dragStartTimer); - _cancelNextTick(this.cloneId); - _cancelNextTick(this._dragStartId); - if (this.nativeDraggable) { - off(document, "drop", this); - off(el, "dragstart", this._onDragStart); - } - this._offMoveEvents(); - this._offUpEvents(); - if (Safari) { - css(document.body, "user-select", ""); - } - css(dragEl, "transform", ""); - if (evt) { - if (moved) { - evt.cancelable && evt.preventDefault(); - !options.dropBubble && evt.stopPropagation(); - } - ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl); - if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== "clone") { - cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl); - } - if (dragEl) { - if (this.nativeDraggable) { - off(dragEl, "dragend", this); - } - _disableDraggable(dragEl); - dragEl.style["will-change"] = ""; - if (moved && !awaitingDragStarted) { - toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false); - } - toggleClass(dragEl, this.options.chosenClass, false); - _dispatchEvent({ - sortable: this, - name: "unchoose", - toEl: parentEl, - newIndex: null, - newDraggableIndex: null, - originalEvent: evt - }); - if (rootEl !== parentEl) { - if (newIndex >= 0) { - _dispatchEvent({ - rootEl: parentEl, - name: "add", - toEl: parentEl, - fromEl: rootEl, - originalEvent: evt - }); - _dispatchEvent({ - sortable: this, - name: "remove", - toEl: parentEl, - originalEvent: evt - }); - _dispatchEvent({ - rootEl: parentEl, - name: "sort", - toEl: parentEl, - fromEl: rootEl, - originalEvent: evt - }); - _dispatchEvent({ - sortable: this, - name: "sort", - toEl: parentEl, - originalEvent: evt - }); - } - putSortable && putSortable.save(); - } else { - if (newIndex !== oldIndex) { - if (newIndex >= 0) { - _dispatchEvent({ - sortable: this, - name: "update", - toEl: parentEl, - originalEvent: evt - }); - _dispatchEvent({ - sortable: this, - name: "sort", - toEl: parentEl, - originalEvent: evt - }); - } - } - } - if (Sortable.active) { - if (newIndex == null || newIndex === -1) { - newIndex = oldIndex; - newDraggableIndex = oldDraggableIndex; - } - _dispatchEvent({ - sortable: this, - name: "end", - toEl: parentEl, - originalEvent: evt - }); - this.save(); - } - } - } - this._nulling(); - }, - _nulling: function _nulling() { - pluginEvent2("nulling", this); - rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null; - savedInputChecked.forEach(function(el) { - el.checked = true; - }); - savedInputChecked.length = lastDx = lastDy = 0; - }, - handleEvent: function handleEvent(evt) { - switch (evt.type) { - case "drop": - case "dragend": - this._onDrop(evt); - break; - case "dragenter": - case "dragover": - if (dragEl) { - this._onDragOver(evt); - _globalDragOver(evt); - } - break; - case "selectstart": - evt.preventDefault(); - break; - } - }, - /** - * Serializes the item into an array of string. - * @returns {String[]} - */ - toArray: function toArray() { - var order = [], el, children = this.el.children, i = 0, n = children.length, options = this.options; - for (; i < n; i++) { - el = children[i]; - if (closest(el, options.draggable, this.el, false)) { - order.push(el.getAttribute(options.dataIdAttr) || _generateId(el)); - } - } - return order; - }, - /** - * Sorts the elements according to the array. - * @param {String[]} order order of the items - */ - sort: function sort(order, useAnimation) { - var items = {}, rootEl2 = this.el; - this.toArray().forEach(function(id, i) { - var el = rootEl2.children[i]; - if (closest(el, this.options.draggable, rootEl2, false)) { - items[id] = el; - } - }, this); - useAnimation && this.captureAnimationState(); - order.forEach(function(id) { - if (items[id]) { - rootEl2.removeChild(items[id]); - rootEl2.appendChild(items[id]); - } - }); - useAnimation && this.animateAll(); - }, - /** - * Save the current sorting - */ - save: function save() { - var store = this.options.store; - store && store.set && store.set(this); - }, - /** - * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree. - * @param {HTMLElement} el - * @param {String} [selector] default: `options.draggable` - * @returns {HTMLElement|null} - */ - closest: function closest$1(el, selector) { - return closest(el, selector || this.options.draggable, this.el, false); - }, - /** - * Set/get option - * @param {string} name - * @param {*} [value] - * @returns {*} - */ - option: function option(name, value) { - var options = this.options; - if (value === void 0) { - return options[name]; - } else { - var modifiedValue = PluginManager.modifyOption(this, name, value); - if (typeof modifiedValue !== "undefined") { - options[name] = modifiedValue; - } else { - options[name] = value; - } - if (name === "group") { - _prepareGroup(options); - } - } - }, - /** - * Destroy - */ - destroy: function destroy() { - pluginEvent2("destroy", this); - var el = this.el; - el[expando] = null; - off(el, "mousedown", this._onTapStart); - off(el, "touchstart", this._onTapStart); - off(el, "pointerdown", this._onTapStart); - if (this.nativeDraggable) { - off(el, "dragover", this); - off(el, "dragenter", this); - } - Array.prototype.forEach.call(el.querySelectorAll("[draggable]"), function(el2) { - el2.removeAttribute("draggable"); - }); - this._onDrop(); - this._disableDelayedDragEvents(); - sortables.splice(sortables.indexOf(this.el), 1); - this.el = el = null; - }, - _hideClone: function _hideClone() { - if (!cloneHidden) { - pluginEvent2("hideClone", this); - if (Sortable.eventCanceled) return; - css(cloneEl, "display", "none"); - if (this.options.removeCloneOnHide && cloneEl.parentNode) { - cloneEl.parentNode.removeChild(cloneEl); - } - cloneHidden = true; - } - }, - _showClone: function _showClone(putSortable2) { - if (putSortable2.lastPutMode !== "clone") { - this._hideClone(); - return; - } - if (cloneHidden) { - pluginEvent2("showClone", this); - if (Sortable.eventCanceled) return; - if (dragEl.parentNode == rootEl && !this.options.group.revertClone) { - rootEl.insertBefore(cloneEl, dragEl); - } else if (nextEl) { - rootEl.insertBefore(cloneEl, nextEl); - } else { - rootEl.appendChild(cloneEl); - } - if (this.options.group.revertClone) { - this.animate(dragEl, cloneEl); - } - css(cloneEl, "display", ""); - cloneHidden = false; - } - } - }; - if (documentExists) { - on(document, "touchmove", function(evt) { - if ((Sortable.active || awaitingDragStarted) && evt.cancelable) { - evt.preventDefault(); - } - }); - } - Sortable.utils = { - on, - off, - css, - find, - is: function is(el, selector) { - return !!closest(el, selector, el, false); - }, - extend, - throttle, - closest, - toggleClass, - clone, - index, - nextTick: _nextTick, - cancelNextTick: _cancelNextTick, - detectDirection: _detectDirection, - getChild - }; - Sortable.get = function(element) { - return element[expando]; - }; - Sortable.mount = function() { - for (var _len = arguments.length, plugins2 = new Array(_len), _key = 0; _key < _len; _key++) { - plugins2[_key] = arguments[_key]; - } - if (plugins2[0].constructor === Array) plugins2 = plugins2[0]; - plugins2.forEach(function(plugin) { - if (!plugin.prototype || !plugin.prototype.constructor) { - throw "Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(plugin)); - } - if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils); - PluginManager.mount(plugin); - }); - }; - Sortable.create = function(el, options) { - return new Sortable(el, options); - }; - Sortable.version = version; - autoScrolls = []; - scrolling = false; - autoScroll = throttle(function(evt, options, rootEl2, isFallback) { - if (!options.scroll) return; - var x = (evt.touches ? evt.touches[0] : evt).clientX, y = (evt.touches ? evt.touches[0] : evt).clientY, sens = options.scrollSensitivity, speed = options.scrollSpeed, winScroller = getWindowScrollingElement(); - var scrollThisInstance = false, scrollCustomFn; - if (scrollRootEl !== rootEl2) { - scrollRootEl = rootEl2; - clearAutoScrolls(); - scrollEl = options.scroll; - scrollCustomFn = options.scrollFn; - if (scrollEl === true) { - scrollEl = getParentAutoScrollElement(rootEl2, true); - } - } - var layersOut = 0; - var currentParent = scrollEl; - do { - var el = currentParent, rect = getRect(el), top = rect.top, bottom = rect.bottom, left = rect.left, right = rect.right, width = rect.width, height = rect.height, canScrollX = void 0, canScrollY = void 0, scrollWidth = el.scrollWidth, scrollHeight = el.scrollHeight, elCSS = css(el), scrollPosX = el.scrollLeft, scrollPosY = el.scrollTop; - if (el === winScroller) { - canScrollX = width < scrollWidth && (elCSS.overflowX === "auto" || elCSS.overflowX === "scroll" || elCSS.overflowX === "visible"); - canScrollY = height < scrollHeight && (elCSS.overflowY === "auto" || elCSS.overflowY === "scroll" || elCSS.overflowY === "visible"); - } else { - canScrollX = width < scrollWidth && (elCSS.overflowX === "auto" || elCSS.overflowX === "scroll"); - canScrollY = height < scrollHeight && (elCSS.overflowY === "auto" || elCSS.overflowY === "scroll"); - } - var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX); - var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY); - if (!autoScrolls[layersOut]) { - for (var i = 0; i <= layersOut; i++) { - if (!autoScrolls[i]) { - autoScrolls[i] = {}; - } - } - } - if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) { - autoScrolls[layersOut].el = el; - autoScrolls[layersOut].vx = vx; - autoScrolls[layersOut].vy = vy; - clearInterval(autoScrolls[layersOut].pid); - if (vx != 0 || vy != 0) { - scrollThisInstance = true; - autoScrolls[layersOut].pid = setInterval((function() { - if (isFallback && this.layer === 0) { - Sortable.active._onTouchMove(touchEvt$1); - } - var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0; - var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0; - if (typeof scrollCustomFn === "function") { - if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== "continue") { - return; - } - } - scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY); - }).bind({ - layer: layersOut - }), 24); - } - } - layersOut++; - } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false))); - scrolling = scrollThisInstance; - }, 30); - drop = function drop2(_ref) { - var originalEvent = _ref.originalEvent, putSortable2 = _ref.putSortable, dragEl2 = _ref.dragEl, activeSortable = _ref.activeSortable, dispatchSortableEvent = _ref.dispatchSortableEvent, hideGhostForTarget = _ref.hideGhostForTarget, unhideGhostForTarget = _ref.unhideGhostForTarget; - if (!originalEvent) return; - var toSortable = putSortable2 || activeSortable; - hideGhostForTarget(); - var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent; - var target = document.elementFromPoint(touch.clientX, touch.clientY); - unhideGhostForTarget(); - if (toSortable && !toSortable.el.contains(target)) { - dispatchSortableEvent("spill"); - this.onSpill({ - dragEl: dragEl2, - putSortable: putSortable2 - }); - } - }; - Revert.prototype = { - startIndex: null, - dragStart: function dragStart(_ref2) { - var oldDraggableIndex2 = _ref2.oldDraggableIndex; - this.startIndex = oldDraggableIndex2; - }, - onSpill: function onSpill(_ref3) { - var dragEl2 = _ref3.dragEl, putSortable2 = _ref3.putSortable; - this.sortable.captureAnimationState(); - if (putSortable2) { - putSortable2.captureAnimationState(); - } - var nextSibling = getChild(this.sortable.el, this.startIndex, this.options); - if (nextSibling) { - this.sortable.el.insertBefore(dragEl2, nextSibling); - } else { - this.sortable.el.appendChild(dragEl2); - } - this.sortable.animateAll(); - if (putSortable2) { - putSortable2.animateAll(); - } - }, - drop - }; - _extends(Revert, { - pluginName: "revertOnSpill" - }); - Remove.prototype = { - onSpill: function onSpill2(_ref4) { - var dragEl2 = _ref4.dragEl, putSortable2 = _ref4.putSortable; - var parentSortable = putSortable2 || this.sortable; - parentSortable.captureAnimationState(); - dragEl2.parentNode && dragEl2.parentNode.removeChild(dragEl2); - parentSortable.animateAll(); - }, - drop - }; - _extends(Remove, { - pluginName: "removeOnSpill" - }); - multiDragElements = []; - multiDragClones = []; - initialFolding = false; - folding = false; - dragStarted = false; - Sortable.mount(new AutoScrollPlugin()); - Sortable.mount(Remove, Revert); - sortable_esm_default = Sortable; - } -}); - -export { - sortable_esm_default, - sortable_esm_exports, - init_sortable_esm -}; -/*! Bundled license information: - -sortablejs/modular/sortable.esm.js: - (**! - * Sortable 1.14.0 - * @author RubaXa - * @author owenm - * @license MIT - *) -*/ -//# sourceMappingURL=chunk-GVFQZHYH.js.map diff --git a/node_modules/.vite/deps/chunk-GVFQZHYH.js.map b/node_modules/.vite/deps/chunk-GVFQZHYH.js.map deleted file mode 100644 index fab79f90..00000000 --- a/node_modules/.vite/deps/chunk-GVFQZHYH.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../sortablejs/modular/sortable.esm.js"], - "sourcesContent": ["/**!\n * Sortable 1.14.0\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar version = \"1.14.0\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !! /*@__PURE__*/navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\n * Returns the \"bounding client rect\" of given element\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\n * @param {[HTMLElement]} container The parent the element will be placed in\n * @return {Object} The boundingClientRect of el, with specified adjustments\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el.parentNode && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\n * Checks if a side of an element is scrolled past a side of its parents\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\n * and non-draggable elements\n * @param {HTMLElement} el The parent element\n * @param {Number} childNum The index of the child\n * @param {Object} options Parent Sortable's options\n * @return {HTMLElement} The child at index childNum, or null if not found\n */\n\n\nfunction getChild(el, childNum, options, includeDragEl) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\n * @param {HTMLElement} el Parent element\n * @param {selector} selector Any other elements that should be ignored\n * @return {HTMLElement} The last child, ignoring ghostEl\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\n * Returns the index of an element within its parent for a selected set of\n * elements\n * @param {HTMLElement} el\n * @param {selector} selector\n * @return {number}\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\n * The value is returned in real pixels.\n * @param {HTMLElement} el\n * @return {Array} Offsets in the format of [left, top]\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\n * Returns the index of the object within the given array\n * @param {Array} arr Array that may or may not hold the object\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\n * @return {Number} The index of the object in the array, or -1\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n this.forRepaintDummy = repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.forEach(function (p) {\n if (p.pluginName === plugin.pluginName) {\n throw \"Sortable: Cannot mount plugin \".concat(plugin.pluginName, \" more than once\");\n }\n });\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread2({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar _excluded = [\"evt\"];\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, _excluded);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread2({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n var threshold = sortable[expando].options.emptyInsertThreshold;\n if (!threshold || lastChild(sortable)) return;\n var rect = getRect(sortable),\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && !Safari,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n } // Safari ignores further event handling after mousedown\n\n\n if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread2({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // Insert to end of list\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // if there is a last element, it is the target\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) {\n // Insert to start of list\n var firstChild = getChild(el, 0, options, true);\n\n if (firstChild === dragEl) {\n return completed(false);\n }\n\n target = firstChild;\n targetRect = getRect(target);\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {\n capture();\n el.insertBefore(dragEl, firstChild);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order, useAnimation) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n useAnimation && this.captureAnimationState();\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n useAnimation && this.animateAll();\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (dragEl.parentNode == rootEl && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsFirst(evt, vertical, sortable) {\n var rect = getRect(getChild(sortable.el, 0, sortable.options, true));\n var spacer = 10;\n return vertical ? evt.clientX < rect.left - spacer || evt.clientY < rect.top && evt.clientX < rect.right : evt.clientY < rect.top - spacer || evt.clientY < rect.bottom && evt.clientX < rect.left;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n forceAutoScrollFallback: false,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n folding = false; // Do not \"unfold\" after around dragEl if reverted\n\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\n * Selects the provided multi-drag item\n * @param {HTMLElement} el The element to be selected\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\n * Deselects the provided multi-drag item\n * @param {HTMLElement} el The element to be deselected\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\n * Insert multi-drag clones\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\n * @param {HTMLElement} rootEl\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n"], - "mappings": "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", - "names": ["obj", "index", "rootEl", "cloneEl", "oldIndex", "newIndex", "oldDraggableIndex", "newDraggableIndex", "putSortable", "option", "defaults", "dragEl", "dragStarted", "drop", "autoScroll", "dragStart", "clone", "parentEl", "pluginEvent", "_detectDirection", "_dragElInRowColumn", "_detectNearestEmptySortable", "_prepareGroup", "_hideGhostForTarget", "_unhideGhostForTarget", "nearestEmptyInsertDetectEvent", "_checkOutsideTargetEl", "dragStartFn", "target", "after", "el", "plugins", "onSpill"] -} diff --git a/node_modules/.vite/deps/element-plus.js b/node_modules/.vite/deps/element-plus.js index eadd5f63..13bb5b00 100644 --- a/node_modules/.vite/deps/element-plus.js +++ b/node_modules/.vite/deps/element-plus.js @@ -27,9 +27,6 @@ import { import { isVue2 } from "./chunk-HYZ2CRGS.js"; -import { - require_dayjs_min -} from "./chunk-4ONYKVE4.js"; import { castArray_default, cloneDeep_default, @@ -187,6 +184,9 @@ import { withKeys, withModifiers } from "./chunk-KS2IYBSN.js"; +import { + require_dayjs_min +} from "./chunk-4ONYKVE4.js"; import { __toESM } from "./chunk-EWTE5DHJ.js"; diff --git a/node_modules/.vite/deps/vue-echarts.js b/node_modules/.vite/deps/vue-echarts.js index 1765ea1e..53b17e8d 100644 --- a/node_modules/.vite/deps/vue-echarts.js +++ b/node_modules/.vite/deps/vue-echarts.js @@ -1,7 +1,3 @@ -import { - init, - throttle -} from "./chunk-7MAXRZVH.js"; import "./chunk-5Z3IENVP.js"; import { computed, @@ -19,6 +15,10 @@ import { watch, watchEffect } from "./chunk-KS2IYBSN.js"; +import { + init, + throttle +} from "./chunk-7MAXRZVH.js"; import "./chunk-EWTE5DHJ.js"; // node_modules/vue-echarts/node_modules/vue-demi/lib/index.mjs diff --git a/node_modules/.vite/deps/vuedraggable.js b/node_modules/.vite/deps/vuedraggable.js index 71afa9fa..61438d60 100644 --- a/node_modules/.vite/deps/vuedraggable.js +++ b/node_modules/.vite/deps/vuedraggable.js @@ -1,7 +1,7 @@ import { init_sortable_esm, sortable_esm_exports -} from "./chunk-GVFQZHYH.js"; +} from "./chunk-BRYZGPRI.js"; import { EMPTY_OBJ, NO, diff --git a/node_modules/.vite/deps/vuedraggable_src_vuedraggable.js b/node_modules/.vite/deps/vuedraggable_src_vuedraggable.js index f39128aa..c84245fd 100644 --- a/node_modules/.vite/deps/vuedraggable_src_vuedraggable.js +++ b/node_modules/.vite/deps/vuedraggable_src_vuedraggable.js @@ -1,7 +1,7 @@ import { init_sortable_esm, sortable_esm_default -} from "./chunk-GVFQZHYH.js"; +} from "./chunk-BRYZGPRI.js"; import "./chunk-5Z3IENVP.js"; import { TransitionGroup, diff --git a/node_modules/.vue-global-types/vue_3.5_0.d.ts b/node_modules/.vue-global-types/vue_3.5_0.d.ts deleted file mode 100644 index 8ed6b8cf..00000000 --- a/node_modules/.vue-global-types/vue_3.5_0.d.ts +++ /dev/null @@ -1,138 +0,0 @@ -// @ts-nocheck -export {}; - -; declare global { - var __VLS_PROPS_FALLBACK: Record; - - const __VLS_directiveBindingRestFields: { instance: null, oldValue: null, modifiers: any, dir: any }; - const __VLS_unref: typeof import('vue').unref; - const __VLS_placeholder: any; - const __VLS_intrinsics: import('vue/jsx-runtime').JSX.IntrinsicElements; - - type __VLS_Elements = __VLS_SpreadMerge; - type __VLS_GlobalComponents = import('vue').GlobalComponents; - type __VLS_GlobalDirectives = import('vue').GlobalDirectives; - type __VLS_IsAny = 0 extends 1 & T ? true : false; - type __VLS_PickNotAny = __VLS_IsAny extends true ? B : A; - type __VLS_SpreadMerge = Omit & B; - type __VLS_WithComponent = - N1 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N1] } : - N2 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N2] } : - N3 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N3] } : - Self extends object ? { [K in N0]: Self } : - N1 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N1] } : - N2 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N2] } : - N3 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N3] } : - {}; - type __VLS_FunctionalComponentCtx = __VLS_PickNotAny<'__ctx' extends keyof __VLS_PickNotAny - ? K extends { __ctx?: infer Ctx } ? NonNullable : never : any - , T extends (props: any, ctx: infer Ctx) => any ? Ctx : any - >; - type __VLS_FunctionalComponentProps = '__ctx' extends keyof __VLS_PickNotAny - ? K extends { __ctx?: { props?: infer P } } ? NonNullable

: never - : T extends (props: infer P, ...args: any) => any ? P - : {}; - type __VLS_FunctionalComponent = (props: (T extends { $props: infer Props } ? Props : {}) & Record, ctx?: any) => import('vue/jsx-runtime').JSX.Element & { - __ctx?: { - attrs?: any; - slots?: T extends { $slots: infer Slots } ? Slots : Record; - emit?: T extends { $emit: infer Emit } ? Emit : {}; - props?: typeof props; - expose?: (exposed: T) => void; - }; - }; - type __VLS_IsFunction = K extends keyof T - ? __VLS_IsAny extends false - ? unknown extends T[K] - ? false - : true - : false - : false; - type __VLS_NormalizeComponentEvent< - Props, - Emits, - onEvent extends keyof Props, - Event extends keyof Emits, - CamelizedEvent extends keyof Emits, - > = __VLS_IsFunction extends true - ? Props - : __VLS_IsFunction extends true - ? { [K in onEvent]?: Emits[Event] } - : __VLS_IsFunction extends true - ? { [K in onEvent]?: Emits[CamelizedEvent] } - : Props; - // fix https://github.com/vuejs/language-tools/issues/926 - type __VLS_UnionToIntersection = (U extends unknown ? (arg: U) => unknown : never) extends ((arg: infer P) => unknown) ? P : never; - type __VLS_OverloadUnionInner = U & T extends (...args: infer A) => infer R - ? U extends T - ? never - : __VLS_OverloadUnionInner & U & ((...args: A) => R)> | ((...args: A) => R) - : never; - type __VLS_OverloadUnion = Exclude< - __VLS_OverloadUnionInner<(() => never) & T>, - T extends () => never ? never : () => never - >; - type __VLS_ConstructorOverloads = __VLS_OverloadUnion extends infer F - ? F extends (event: infer E, ...args: infer A) => any - ? { [K in E & string]: (...args: A) => void; } - : never - : never; - type __VLS_NormalizeEmits = __VLS_PrettifyGlobal< - __VLS_UnionToIntersection< - __VLS_ConstructorOverloads & { - [K in keyof T]: T[K] extends any[] ? { (...args: T[K]): void } : never - } - > - >; - type __VLS_EmitsToProps = __VLS_PrettifyGlobal<{ - [K in string & keyof T as `on${Capitalize}`]?: - (...args: T[K] extends (...args: infer P) => any ? P : T[K] extends null ? any[] : never) => any; - }>; - type __VLS_ResolveEmits< - Comp, - Emits, - TypeEmits = {}, - NormalizedEmits = __VLS_NormalizeEmits extends infer E ? string extends keyof E ? {} : E : never, - > = __VLS_SpreadMerge; - type __VLS_ResolveDirectives = { - [K in keyof T & string as `v${Capitalize}`]: T[K]; - }; - type __VLS_PrettifyGlobal = { [K in keyof T as K]: T[K]; } & {}; - type __VLS_WithDefaultsGlobal = { - [K in keyof P as K extends keyof D ? K : never]-?: P[K]; - } & { - [K in keyof P as K extends keyof D ? never : K]: P[K]; - }; - type __VLS_UseTemplateRef = Readonly>; - type __VLS_ProxyRefs = import('vue').ShallowUnwrapRef; - - function __VLS_getVForSourceType>(source: T): [ - item: T extends number ? number - : T extends string ? string - : T extends any[] ? T[number] - : T extends Iterable ? T1 - : any, - index: number, - ][]; - function __VLS_getVForSourceType(source: T): [ - item: T[keyof T], - key: keyof T, - index: number, - ][]; - function __VLS_getSlotParameters(slot: S, decl?: D): - D extends (...args: infer P) => any ? P : any[]; - function __VLS_asFunctionalDirective(dir: T): T extends import('vue').ObjectDirective - ? NonNullable - : T extends (...args: any) => any - ? T - : (arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown) => void; - function __VLS_asFunctionalComponent any ? InstanceType : unknown>(t: T, instance?: K): - T extends new (...args: any) => any ? __VLS_FunctionalComponent - : T extends () => any ? (props: {}, ctx?: any) => ReturnType - : T extends (...args: any) => any ? T - : __VLS_FunctionalComponent<{}>; - function __VLS_functionalComponentArgsRest any>(t: T): 2 extends Parameters['length'] ? [any] : []; - function __VLS_asFunctionalElement(tag: T, endTag?: T): (attrs: T & Record) => void; - function __VLS_asFunctionalSlot(slot: S): S extends () => infer R ? (props: {}) => R : NonNullable; - function __VLS_tryAsConstant(t: T): T; -} diff --git a/node_modules/.vue-global-types/vue_99_0.d.ts b/node_modules/.vue-global-types/vue_99_0.d.ts deleted file mode 100644 index 96b3bd30..00000000 --- a/node_modules/.vue-global-types/vue_99_0.d.ts +++ /dev/null @@ -1,138 +0,0 @@ -// @ts-nocheck -export {}; - -; declare global { - var __VLS_PROPS_FALLBACK: Record; - - const __VLS_directiveBindingRestFields: { instance: null, oldValue: null, modifiers: any, dir: any }; - const __VLS_unref: typeof import('vue').unref; - const __VLS_placeholder: any; - const __VLS_intrinsics: import('vue/jsx-runtime').JSX.IntrinsicElements; - - type __VLS_Elements = __VLS_SpreadMerge; - type __VLS_GlobalComponents = import('vue').GlobalComponents; - type __VLS_GlobalDirectives = import('vue').GlobalDirectives; - type __VLS_IsAny = 0 extends 1 & T ? true : false; - type __VLS_PickNotAny = __VLS_IsAny extends true ? B : A; - type __VLS_SpreadMerge = Omit & B; - type __VLS_WithComponent = - N1 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N1] } : - N2 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N2] } : - N3 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N3] } : - Self extends object ? { [K in N0]: Self } : - N1 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N1] } : - N2 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N2] } : - N3 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N3] } : - {}; - type __VLS_FunctionalComponentCtx = __VLS_PickNotAny<'__ctx' extends keyof __VLS_PickNotAny - ? K extends { __ctx?: infer Ctx } ? NonNullable : never : any - , T extends (props: any, ctx: infer Ctx) => any ? Ctx : any - >; - type __VLS_FunctionalComponentProps = '__ctx' extends keyof __VLS_PickNotAny - ? K extends { __ctx?: { props?: infer P } } ? NonNullable

: never - : T extends (props: infer P, ...args: any) => any ? P - : {}; - type __VLS_FunctionalComponent = (props: (T extends { $props: infer Props } ? Props : {}) & Record, ctx?: any) => import('vue/jsx-runtime').JSX.Element & { - __ctx?: { - attrs?: any; - slots?: T extends { $slots: infer Slots } ? Slots : Record; - emit?: T extends { $emit: infer Emit } ? Emit : {}; - props?: typeof props; - expose?: (exposed: T) => void; - }; - }; - type __VLS_IsFunction = K extends keyof T - ? __VLS_IsAny extends false - ? unknown extends T[K] - ? false - : true - : false - : false; - type __VLS_NormalizeComponentEvent< - Props, - Emits, - onEvent extends keyof Props, - Event extends keyof Emits, - CamelizedEvent extends keyof Emits, - > = __VLS_IsFunction extends true - ? Props - : __VLS_IsFunction extends true - ? { [K in onEvent]?: Emits[Event] } - : __VLS_IsFunction extends true - ? { [K in onEvent]?: Emits[CamelizedEvent] } - : Props; - // fix https://github.com/vuejs/language-tools/issues/926 - type __VLS_UnionToIntersection = (U extends unknown ? (arg: U) => unknown : never) extends ((arg: infer P) => unknown) ? P : never; - type __VLS_OverloadUnionInner = U & T extends (...args: infer A) => infer R - ? U extends T - ? never - : __VLS_OverloadUnionInner & U & ((...args: A) => R)> | ((...args: A) => R) - : never; - type __VLS_OverloadUnion = Exclude< - __VLS_OverloadUnionInner<(() => never) & T>, - T extends () => never ? never : () => never - >; - type __VLS_ConstructorOverloads = __VLS_OverloadUnion extends infer F - ? F extends (event: infer E, ...args: infer A) => any - ? { [K in E & string]: (...args: A) => void; } - : never - : never; - type __VLS_NormalizeEmits = __VLS_PrettifyGlobal< - __VLS_UnionToIntersection< - __VLS_ConstructorOverloads & { - [K in keyof T]: T[K] extends any[] ? { (...args: T[K]): void } : never - } - > - >; - type __VLS_EmitsToProps = __VLS_PrettifyGlobal<{ - [K in string & keyof T as `on${Capitalize}`]?: - (...args: T[K] extends (...args: infer P) => any ? P : T[K] extends null ? any[] : never) => any; - }>; - type __VLS_ResolveEmits< - Comp, - Emits, - TypeEmits = Comp extends { __typeEmits?: infer T } ? unknown extends T ? {} : import('vue').ShortEmitsToObject : {}, - NormalizedEmits = __VLS_NormalizeEmits extends infer E ? string extends keyof E ? {} : E : never, - > = __VLS_SpreadMerge; - type __VLS_ResolveDirectives = { - [K in keyof T & string as `v${Capitalize}`]: T[K]; - }; - type __VLS_PrettifyGlobal = { [K in keyof T as K]: T[K]; } & {}; - type __VLS_WithDefaultsGlobal = { - [K in keyof P as K extends keyof D ? K : never]-?: P[K]; - } & { - [K in keyof P as K extends keyof D ? never : K]: P[K]; - }; - type __VLS_UseTemplateRef = Readonly>; - type __VLS_ProxyRefs = import('vue').ShallowUnwrapRef; - - function __VLS_getVForSourceType>(source: T): [ - item: T extends number ? number - : T extends string ? string - : T extends any[] ? T[number] - : T extends Iterable ? T1 - : any, - index: number, - ][]; - function __VLS_getVForSourceType(source: T): [ - item: T[keyof T], - key: keyof T, - index: number, - ][]; - function __VLS_getSlotParameters(slot: S, decl?: D): - D extends (...args: infer P) => any ? P : any[]; - function __VLS_asFunctionalDirective(dir: T): T extends import('vue').ObjectDirective - ? NonNullable - : T extends (...args: any) => any - ? T - : (arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown) => void; - function __VLS_asFunctionalComponent any ? InstanceType : unknown>(t: T, instance?: K): - T extends new (...args: any) => any ? __VLS_FunctionalComponent - : T extends () => any ? (props: {}, ctx?: any) => ReturnType - : T extends (...args: any) => any ? T - : __VLS_FunctionalComponent<{}>; - function __VLS_functionalComponentArgsRest any>(t: T): 2 extends Parameters['length'] ? [any] : []; - function __VLS_asFunctionalElement(tag: T, endTag?: T): (attrs: T & Record) => void; - function __VLS_asFunctionalSlot(slot: S): S extends () => infer R ? (props: {}) => R : NonNullable; - function __VLS_tryAsConstant(t: T): T; -} diff --git a/node_modules/tailwindcss/stubs/.gitignore b/node_modules/tailwindcss/stubs/.gitignore deleted file mode 100644 index f9be8dfe..00000000 --- a/node_modules/tailwindcss/stubs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!* diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..3759b036 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7672 @@ +{ + "name": "cool-admin-vue", + "version": "8.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "cool-admin-vue", + "version": "8.0.0", + "dependencies": { + "@cool-vue/crud": "^8.0.6", + "@element-plus/icons-vue": "^2.3.1", + "@vueuse/core": "^12.5.0", + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-vue": "^5.1.12", + "axios": "^1.7.9", + "chardet": "^2.0.0", + "core-js": "^3.40.0", + "dayjs": "^1.11.13", + "echarts": "^5.6.0", + "element-plus": "2.10.2", + "file-saver": "^2.0.5", + "lodash-es": "^4.17.21", + "marked": "^14.1.3", + "mitt": "^3.0.1", + "nprogress": "^0.2.0", + "pinia": "^2.3.1", + "store": "^2.0.12", + "vue": "^3.5.13", + "vue-cropper": "^1.1.4", + "vue-echarts": "^7.0.3", + "vue-i18n": "^11.0.1", + "vue-router": "^4.5.0", + "vuedraggable": "^4.1.0", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@cool-vue/vite-plugin": "^8.2.2", + "@intlify/unplugin-vue-i18n": "^6.0.3", + "@rushstack/eslint-patch": "^1.10.5", + "@tsconfig/node20": "^20.1.4", + "@types/file-saver": "^2.0.7", + "@types/lodash-es": "^4.17.12", + "@types/mockjs": "^1.0.10", + "@types/node": "^20.17.17", + "@types/nprogress": "^0.2.3", + "@types/store": "^2.0.5", + "@vitejs/plugin-vue": "^5.2.1", + "@vitejs/plugin-vue-jsx": "^4.1.1", + "@vue/compiler-sfc": "^3.5.13", + "@vue/eslint-config-prettier": "^10.2.0", + "@vue/eslint-config-typescript": "^14.3.0", + "@vue/test-utils": "^2.4.6", + "@vue/tsconfig": "^0.5.1", + "autoprefixer": "^10.4.20", + "eslint": "^9.19.0", + "eslint-plugin-prettier": "^5.2.3", + "eslint-plugin-vue": "^9.32.0", + "postcss": "^8.5.1", + "prettier": "^3.4.2", + "rollup-plugin-visualizer": "^5.14.0", + "sass": "1.81.0", + "tailwindcss": "^3.4.17", + "terser": "^5.36.0", + "typescript": "~5.5.4", + "vite": "^5.4.14", + "vite-plugin-compression": "^0.5.1", + "vite-plugin-vue-devtools": "^7.7.1", + "vue-tsc": "^2.2.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.10", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.0", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-decorators": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.6", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.1", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cool-vue/crud": { + "version": "8.0.6", + "dependencies": { + "@vue/runtime-core": "^3.5.13", + "element-plus": "^2.10.4", + "lodash-es": "^4.17.21", + "vue": "^3.5.13" + } + }, + "node_modules/@cool-vue/crud/node_modules/element-plus": { + "version": "2.10.4", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.3.1", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.13", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@cool-vue/crud/node_modules/element-plus/node_modules/@vueuse/core": { + "version": "9.13.0", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@cool-vue/crud/node_modules/element-plus/node_modules/@vueuse/core/node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "license": "MIT" + }, + "node_modules/@cool-vue/crud/node_modules/element-plus/node_modules/@vueuse/core/node_modules/@vueuse/metadata": { + "version": "9.13.0", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@cool-vue/crud/node_modules/element-plus/node_modules/@vueuse/core/node_modules/@vueuse/shared": { + "version": "9.13.0", + "license": "MIT", + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@cool-vue/vite-plugin": { + "version": "8.2.2", + "dev": true, + "license": "ISC", + "dependencies": { + "@vue/compiler-sfc": "^3.5.13", + "axios": "^1.6.8", + "glob": "^10.3.12", + "lodash": "^4.17.21", + "magic-string": "^0.30.17", + "prettier": "^3.4.2", + "svgo": "^3.3.2" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.3.1", + "license": "MIT", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.15.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.31.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.3.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.2", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.2", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.2", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "license": "MIT" + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@intlify/bundle-utils": { + "version": "10.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "^11.1.2", + "@intlify/shared": "^11.1.2", + "acorn": "^8.8.2", + "escodegen": "^2.1.0", + "estree-walker": "^2.0.2", + "jsonc-eslint-parser": "^2.3.0", + "mlly": "^1.2.0", + "source-map-js": "^1.0.1", + "yaml-eslint-parser": "^1.2.2" + }, + "engines": { + "node": ">= 18" + }, + "peerDependenciesMeta": { + "petite-vue-i18n": { + "optional": true + }, + "vue-i18n": { + "optional": true + } + } + }, + "node_modules/@intlify/core-base": { + "version": "11.1.10", + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "11.1.10", + "@intlify/shared": "11.1.10" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "11.1.10", + "license": "MIT", + "dependencies": { + "@intlify/shared": "11.1.10", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "11.1.10", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/unplugin-vue-i18n": { + "version": "6.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@intlify/bundle-utils": "^10.0.1", + "@intlify/shared": "^11.1.2", + "@intlify/vue-i18n-extensions": "^8.0.0", + "@rollup/pluginutils": "^5.1.0", + "@typescript-eslint/scope-manager": "^8.13.0", + "@typescript-eslint/typescript-estree": "^8.13.0", + "debug": "^4.3.3", + "fast-glob": "^3.2.12", + "js-yaml": "^4.1.0", + "json5": "^2.2.3", + "pathe": "^1.0.0", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2", + "unplugin": "^1.1.0", + "vue": "^3.4" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "petite-vue-i18n": "*", + "vue": "^3.2.25", + "vue-i18n": "*" + }, + "peerDependenciesMeta": { + "petite-vue-i18n": { + "optional": true + }, + "vue-i18n": { + "optional": true + } + } + }, + "node_modules/@intlify/vue-i18n-extensions": { + "version": "8.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.24.6", + "@intlify/shared": "^10.0.0", + "@vue/compiler-dom": "^3.2.45", + "vue-i18n": "^10.0.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@intlify/shared": "^9.0.0 || ^10.0.0 || ^11.0.0", + "@vue/compiler-dom": "^3.0.0", + "vue": "^3.0.0", + "vue-i18n": "^9.0.0 || ^10.0.0 || ^11.0.0" + }, + "peerDependenciesMeta": { + "@intlify/shared": { + "optional": true + }, + "@vue/compiler-dom": { + "optional": true + }, + "vue": { + "optional": true + }, + "vue-i18n": { + "optional": true + } + } + }, + "node_modules/@intlify/vue-i18n-extensions/node_modules/@intlify/core-base": { + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-10.0.8.tgz", + "integrity": "sha512-FoHslNWSoHjdUBLy35bpm9PV/0LVI/DSv9L6Km6J2ad8r/mm0VaGg06C40FqlE8u2ADcGUM60lyoU7Myo4WNZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "10.0.8", + "@intlify/shared": "10.0.8" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/vue-i18n-extensions/node_modules/@intlify/message-compiler": { + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-10.0.8.tgz", + "integrity": "sha512-DV+sYXIkHVd5yVb2mL7br/NEUwzUoLBsMkV3H0InefWgmYa34NLZUvMCGi5oWX+Hqr2Y2qUxnVrnOWF4aBlgWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@intlify/shared": "10.0.8", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/vue-i18n-extensions/node_modules/@intlify/shared": { + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-10.0.8.tgz", + "integrity": "sha512-BcmHpb5bQyeVNrptC3UhzpBZB/YHHDoEREOUERrmF2BRxsyOEuRrq+Z96C/D4+2KJb8kuHiouzAei7BXlG0YYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/vue-i18n-extensions/node_modules/vue-i18n": { + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-10.0.8.tgz", + "integrity": "sha512-mIjy4utxMz9lMMo6G9vYePv7gUFt4ztOMhY9/4czDJxZ26xPeJ49MAGa9wBAE3XuXbYCrtVPmPxNjej7JJJkZQ==", + "deprecated": "v9 and v10 no longer supported. please migrate to v11. about maintenance status, see https://vue-i18n.intlify.dev/guide/maintenance.html", + "dev": true, + "license": "MIT", + "dependencies": { + "@intlify/core-base": "10.0.8", + "@intlify/shared": "10.0.8", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "dev": true, + "license": "ISC", + "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" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.4", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.29", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "dev": true, + "license": "MIT" + }, + "node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.7", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.29", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.1.tgz", + "integrity": "sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.1.tgz", + "integrity": "sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.1.tgz", + "integrity": "sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.1.tgz", + "integrity": "sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.1.tgz", + "integrity": "sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.1.tgz", + "integrity": "sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.1.tgz", + "integrity": "sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.1.tgz", + "integrity": "sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.1.tgz", + "integrity": "sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.1.tgz", + "integrity": "sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.1.tgz", + "integrity": "sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.1.tgz", + "integrity": "sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.1.tgz", + "integrity": "sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.1.tgz", + "integrity": "sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.1.tgz", + "integrity": "sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.1.tgz", + "integrity": "sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.1.tgz", + "integrity": "sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.1.tgz", + "integrity": "sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.1.tgz", + "integrity": "sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.45.1", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.12.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@transloadit/prettier-bytes": { + "version": "0.0.7", + "license": "MIT" + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@tsconfig/node20": { + "version": "20.1.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/event-emitter": { + "version": "0.3.5", + "license": "MIT" + }, + "node_modules/@types/file-saver": { + "version": "2.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.20", + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/mockjs": { + "version": "1.0.10", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.19.9", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/nprogress": { + "version": "0.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/store": { + "version": "2.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/type-utils": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.38.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.38.0", + "@typescript-eslint/types": "^8.38.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.38.0", + "@typescript-eslint/tsconfig-utils": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.38.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@uppy/companion-client": { + "version": "2.2.2", + "license": "MIT", + "dependencies": { + "@uppy/utils": "^4.1.2", + "namespace-emitter": "^2.0.1" + } + }, + "node_modules/@uppy/core": { + "version": "2.3.4", + "license": "MIT", + "peer": true, + "dependencies": { + "@transloadit/prettier-bytes": "0.0.7", + "@uppy/store-default": "^2.1.1", + "@uppy/utils": "^4.1.3", + "lodash.throttle": "^4.1.1", + "mime-match": "^1.0.2", + "namespace-emitter": "^2.0.1", + "nanoid": "^3.1.25", + "preact": "^10.5.13" + } + }, + "node_modules/@uppy/store-default": { + "version": "2.1.1", + "license": "MIT" + }, + "node_modules/@uppy/utils": { + "version": "4.1.3", + "license": "MIT", + "dependencies": { + "lodash.throttle": "^4.1.1" + } + }, + "node_modules/@uppy/xhr-upload": { + "version": "2.1.3", + "license": "MIT", + "peer": true, + "dependencies": { + "@uppy/companion-client": "^2.2.2", + "@uppy/utils": "^4.1.2", + "nanoid": "^3.1.25" + }, + "peerDependencies": { + "@uppy/core": "^2.3.3" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.27.1", + "@rolldown/pluginutils": "^1.0.0-beta.9", + "@vue/babel-plugin-jsx": "^1.4.0" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.15", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.15" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.15", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.15", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@babel/types": "^7.26.9", + "@vue/babel-helper-vue-transform-on": "1.4.0", + "@vue/babel-plugin-resolve-type": "1.4.0", + "@vue/shared": "^3.5.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "1.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/parser": "^7.26.9", + "@vue/compiler-sfc": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.18", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.0", + "@vue/shared": "3.5.18", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.18", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.18", + "@vue/shared": "3.5.18" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.18", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.0", + "@vue/compiler-core": "3.5.18", + "@vue/compiler-dom": "3.5.18", + "@vue/compiler-ssr": "3.5.18", + "@vue/shared": "3.5.18", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.17", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.18", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.18", + "@vue/shared": "3.5.18" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "license": "MIT" + }, + "node_modules/@vue/devtools-core": { + "version": "7.7.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.7", + "@vue/devtools-shared": "^7.7.7", + "mitt": "^3.0.1", + "nanoid": "^5.1.0", + "pathe": "^2.0.3", + "vite-hot-client": "^2.0.4" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@vue/devtools-core/node_modules/nanoid": { + "version": "5.1.5", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/@vue/devtools-core/node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/devtools-kit": { + "version": "7.7.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.7", + "birpc": "^2.3.0", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.7.7", + "dev": true, + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/eslint-config-prettier": { + "version": "10.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-prettier": "^5.2.2" + }, + "peerDependencies": { + "eslint": ">= 8.21.0", + "prettier": ">= 3.0.0" + } + }, + "node_modules/@vue/eslint-config-typescript": { + "version": "14.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^8.35.1", + "fast-glob": "^3.3.3", + "typescript-eslint": "^8.35.1", + "vue-eslint-parser": "^10.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": "^9.10.0", + "eslint-plugin-vue": "^9.28.0 || ^10.0.0", + "typescript": ">=4.8.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core": { + "version": "2.2.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.15", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^1.0.3", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.18", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.18" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.18", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.18", + "@vue/shared": "3.5.18" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.18", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.18", + "@vue/runtime-core": "3.5.18", + "@vue/shared": "3.5.18", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.18", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.18", + "@vue/shared": "3.5.18" + }, + "peerDependencies": { + "vue": "3.5.18" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.18", + "license": "MIT" + }, + "node_modules/@vue/test-utils": { + "version": "2.4.6", + "dev": true, + "license": "MIT", + "dependencies": { + "js-beautify": "^1.14.9", + "vue-component-type-helpers": "^2.0.0" + } + }, + "node_modules/@vue/tsconfig": { + "version": "0.5.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@vueuse/core": { + "version": "12.8.2", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "12.8.2", + "@vueuse/shared": "12.8.2", + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/metadata": { + "version": "12.8.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "12.8.2", + "license": "MIT", + "dependencies": { + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@wangeditor/basic-modules": { + "version": "1.1.7", + "license": "MIT", + "peer": true, + "dependencies": { + "is-url": "^1.2.4" + }, + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "lodash.throttle": "^4.1.1", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/code-highlight": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "prismjs": "^1.23.0" + }, + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/core": { + "version": "1.1.19", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/event-emitter": "^0.3.3", + "event-emitter": "^0.3.5", + "html-void-elements": "^2.0.0", + "i18next": "^20.4.0", + "scroll-into-view-if-needed": "^2.2.28", + "slate-history": "^0.66.0" + }, + "peerDependencies": { + "@uppy/core": "^2.1.1", + "@uppy/xhr-upload": "^2.0.3", + "dom7": "^3.0.0", + "is-hotkey": "^0.2.0", + "lodash.camelcase": "^4.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.debounce": "^4.0.8", + "lodash.foreach": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.throttle": "^4.1.1", + "lodash.toarray": "^4.4.0", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/editor": { + "version": "5.1.23", + "license": "MIT", + "peer": true, + "dependencies": { + "@uppy/core": "^2.1.1", + "@uppy/xhr-upload": "^2.0.3", + "@wangeditor/basic-modules": "^1.1.7", + "@wangeditor/code-highlight": "^1.0.3", + "@wangeditor/core": "^1.1.19", + "@wangeditor/list-module": "^1.0.5", + "@wangeditor/table-module": "^1.1.4", + "@wangeditor/upload-image-module": "^1.0.2", + "@wangeditor/video-module": "^1.1.4", + "dom7": "^3.0.0", + "is-hotkey": "^0.2.0", + "lodash.camelcase": "^4.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.debounce": "^4.0.8", + "lodash.foreach": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.throttle": "^4.1.1", + "lodash.toarray": "^4.4.0", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/editor-for-vue": { + "version": "5.1.12", + "license": "MIT", + "peerDependencies": { + "@wangeditor/editor": ">=5.1.0", + "vue": "^3.0.5" + } + }, + "node_modules/@wangeditor/list-module": { + "version": "1.0.5", + "license": "MIT", + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/table-module": { + "version": "1.1.4", + "license": "MIT", + "peerDependencies": { + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "lodash.isequal": "^4.5.0", + "lodash.throttle": "^4.1.1", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/upload-image-module": { + "version": "1.0.2", + "license": "MIT", + "peerDependencies": { + "@uppy/core": "^2.0.3", + "@uppy/xhr-upload": "^2.0.3", + "@wangeditor/basic-modules": "1.x", + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "lodash.foreach": "^4.5.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/@wangeditor/video-module": { + "version": "1.1.4", + "license": "MIT", + "peerDependencies": { + "@uppy/core": "^2.1.4", + "@uppy/xhr-upload": "^2.0.7", + "@wangeditor/core": "1.x", + "dom7": "^3.0.0", + "nanoid": "^3.2.0", + "slate": "^0.72.0", + "snabbdom": "^3.1.0" + } + }, + "node_modules/abbrev": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/adler-32": { + "version": "1.3.1", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/alien-signals": { + "version": "1.0.13", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/async-validator": { + "version": "4.2.5", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "1.11.0", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/birpc": { + "version": "2.5.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.1", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001727", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/cfb": { + "version": "1.2.2", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chardet": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/codepage": { + "version": "1.15.0", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "node_modules/compute-scroll-into-view": { + "version": "1.0.20", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.1.8", + "dev": true, + "license": "MIT" + }, + "node_modules/config-chain": { + "version": "1.1.13", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/core-js": { + "version": "3.44.0", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree/node_modules/mdn-data": { + "version": "2.0.28", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.1.3", + "license": "MIT" + }, + "node_modules/d": { + "version": "1.0.2", + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "license": "MIT" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/default-browser": { + "version": "5.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom7": { + "version": "3.0.0", + "license": "MIT", + "peer": true, + "dependencies": { + "ssr-window": "^3.0.0-alpha.1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/echarts": { + "version": "5.6.0", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "tslib": "2.3.0", + "zrender": "5.6.1" + } + }, + "node_modules/editorconfig": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@one-ini/wasm": "0.1.1", + "commander": "^10.0.0", + "minimatch": "9.0.1", + "semver": "^7.5.3" + }, + "bin": { + "editorconfig": "bin/editorconfig" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/editorconfig/node_modules/commander": { + "version": "10.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/editorconfig/node_modules/minimatch": { + "version": "9.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/editorconfig/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.190", + "dev": true, + "license": "ISC" + }, + "node_modules/element-plus": { + "version": "2.10.2", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.3.1", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.13", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/element-plus/node_modules/@vueuse/core": { + "version": "9.13.0", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/element-plus/node_modules/@vueuse/core/node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "license": "MIT" + }, + "node_modules/element-plus/node_modules/@vueuse/core/node_modules/@vueuse/metadata": { + "version": "9.13.0", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/element-plus/node_modules/@vueuse/core/node_modules/@vueuse/shared": { + "version": "9.13.0", + "license": "MIT", + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "4.5.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-stack-parser-es": { + "version": "0.1.5", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "9.31.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.15.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.31.0", + "@eslint/plugin-kit": "^0.3.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.5.3", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.7" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.33.0", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.3", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/vue-eslint-parser": { + "version": "9.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-vue/node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-vue/node_modules/vue-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esniff": { + "version": "2.0.1", + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/execa": { + "version": "9.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.6", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.1", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.2.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "license": "ISC", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "dev": true, + "license": "MIT", + "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.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figures": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/file-saver": { + "version": "2.0.5", + "license": "MIT" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.4", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/frac": { + "version": "1.1.2", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "9.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "dev": true, + "license": "MIT" + }, + "node_modules/html-void-elements": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/human-signals": { + "version": "8.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/i18next": { + "version": "20.6.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "5.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hotkey": { + "version": "0.2.0", + "license": "MIT", + "peer": true + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-url": { + "version": "1.2.4", + "license": "MIT" + }, + "node_modules/is-what": { + "version": "4.1.16", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-beautify": { + "version": "1.15.4", + "dev": true, + "license": "MIT", + "dependencies": { + "config-chain": "^1.1.13", + "editorconfig": "^1.0.4", + "glob": "^10.4.2", + "js-cookie": "^3.0.5", + "nopt": "^7.2.1" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-eslint-parser": { + "version": "2.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.5.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/jsonc-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/jsonc-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "license": "MIT", + "peer": true + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "license": "MIT", + "peer": true + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "license": "MIT", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.foreach": { + "version": "4.5.0", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "license": "MIT", + "peer": true + }, + "node_modules/lodash.toarray": { + "version": "4.4.0", + "license": "MIT", + "peer": true + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "dev": true, + "license": "ISC" + }, + "node_modules/magic-string": { + "version": "0.30.17", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/marked": { + "version": "14.1.4", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-match": { + "version": "1.0.2", + "license": "ISC", + "dependencies": { + "wildcard": "^1.1.0" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "license": "MIT" + }, + "node_modules/mlly": { + "version": "1.7.4", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", + "ufo": "^1.5.4" + } + }, + "node_modules/mlly/node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/mrmime": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/namespace-emitter": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/next-tick": { + "version": "1.1.0", + "license": "ISC" + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-releases": { + "version": "2.0.19", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "7.2.1", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-wheel-es": { + "version": "1.2.0", + "license": "BSD-3-Clause" + }, + "node_modules/npm-run-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "license": "MIT" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/open": { + "version": "8.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinia": { + "version": "2.3.1", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.3", + "vue-demi": "^0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.4.4", + "vue": "^2.7.0 || ^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "1.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/pkg-types/node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss": { + "version": "8.5.6", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/preact": { + "version": "10.26.9", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.6.2", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-ms": { + "version": "9.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "dev": true, + "license": "ISC" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.45.1", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.45.1", + "@rollup/rollup-android-arm64": "4.45.1", + "@rollup/rollup-darwin-arm64": "4.45.1", + "@rollup/rollup-darwin-x64": "4.45.1", + "@rollup/rollup-freebsd-arm64": "4.45.1", + "@rollup/rollup-freebsd-x64": "4.45.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.45.1", + "@rollup/rollup-linux-arm-musleabihf": "4.45.1", + "@rollup/rollup-linux-arm64-gnu": "4.45.1", + "@rollup/rollup-linux-arm64-musl": "4.45.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.45.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.45.1", + "@rollup/rollup-linux-riscv64-gnu": "4.45.1", + "@rollup/rollup-linux-riscv64-musl": "4.45.1", + "@rollup/rollup-linux-s390x-gnu": "4.45.1", + "@rollup/rollup-linux-x64-gnu": "4.45.1", + "@rollup/rollup-linux-x64-musl": "4.45.1", + "@rollup/rollup-win32-arm64-msvc": "4.45.1", + "@rollup/rollup-win32-ia32-msvc": "4.45.1", + "@rollup/rollup-win32-x64-msvc": "4.45.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-visualizer": { + "version": "5.14.0", + "dev": true, + "license": "MIT", + "dependencies": { + "open": "^8.4.0", + "picomatch": "^4.0.2", + "source-map": "^0.7.4", + "yargs": "^17.5.1" + }, + "bin": { + "rollup-plugin-visualizer": "dist/bin/cli.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "rolldown": "1.x", + "rollup": "2.x || 3.x || 4.x" + }, + "peerDependenciesMeta": { + "rolldown": { + "optional": true + }, + "rollup": { + "optional": true + } + } + }, + "node_modules/run-applescript": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sass": { + "version": "1.81.0", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/scroll-into-view-if-needed": { + "version": "2.2.31", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^1.0.20" + } + }, + "node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sirv": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/slate": { + "version": "0.72.8", + "license": "MIT", + "peer": true, + "dependencies": { + "immer": "^9.0.6", + "is-plain-object": "^5.0.0", + "tiny-warning": "^1.0.3" + } + }, + "node_modules/slate-history": { + "version": "0.66.0", + "license": "MIT", + "dependencies": { + "is-plain-object": "^5.0.0" + }, + "peerDependencies": { + "slate": ">=0.65.3" + } + }, + "node_modules/snabbdom": { + "version": "3.6.2", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12.17.0" + } + }, + "node_modules/sortablejs": { + "version": "1.14.0", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.7.4", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssf": { + "version": "0.11.2", + "license": "Apache-2.0", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ssr-window": { + "version": "3.0.0", + "license": "MIT" + }, + "node_modules/store": { + "version": "2.0.12", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "dev": true, + "license": "MIT", + "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" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/superjson": { + "version": "2.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/synckit": { + "version": "0.11.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.17", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/node_modules/readdirp": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/terser": { + "version": "5.43.1", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.14.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.3.0", + "license": "0BSD" + }, + "node_modules/type": { + "version": "2.7.3", + "license": "ISC" + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.5.4", + "devOptional": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.38.0", + "@typescript-eslint/parser": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/ufo": { + "version": "1.6.1", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.21.0", + "dev": true, + "license": "MIT" + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unplugin": { + "version": "1.16.1", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "5.4.19", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-hot-client": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0" + } + }, + "node_modules/vite-plugin-compression": { + "version": "0.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "debug": "^4.3.3", + "fs-extra": "^10.0.0" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "node_modules/vite-plugin-inspect": { + "version": "0.8.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.10", + "@rollup/pluginutils": "^5.1.3", + "debug": "^4.3.7", + "error-stack-parser-es": "^0.1.5", + "fs-extra": "^11.2.0", + "open": "^10.1.0", + "perfect-debounce": "^1.0.0", + "picocolors": "^1.1.1", + "sirv": "^3.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.1" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/vite-plugin-inspect/node_modules/fs-extra": { + "version": "11.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/vite-plugin-inspect/node_modules/open": { + "version": "10.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-inspect/node_modules/open/node_modules/define-lazy-prop": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-devtools": { + "version": "7.7.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-core": "^7.7.7", + "@vue/devtools-kit": "^7.7.7", + "@vue/devtools-shared": "^7.7.7", + "execa": "^9.5.2", + "sirv": "^3.0.1", + "vite-plugin-inspect": "0.8.9", + "vite-plugin-vue-inspector": "^5.3.1" + }, + "engines": { + "node": ">=v14.21.3" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0" + } + }, + "node_modules/vite-plugin-vue-inspector": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.0", + "@babel/plugin-proposal-decorators": "^7.23.0", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.22.15", + "@vue/babel-plugin-jsx": "^1.1.5", + "@vue/compiler-dom": "^3.3.4", + "kolorist": "^1.8.0", + "magic-string": "^0.30.4" + }, + "peerDependencies": { + "vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0" + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/vue": { + "version": "3.5.18", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.5.18", + "@vue/compiler-sfc": "3.5.18", + "@vue/runtime-dom": "3.5.18", + "@vue/server-renderer": "3.5.18", + "@vue/shared": "3.5.18" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-component-type-helpers": { + "version": "2.2.12", + "dev": true, + "license": "MIT" + }, + "node_modules/vue-cropper": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/vue-cropper/-/vue-cropper-1.1.4.tgz", + "integrity": "sha512-5m98vBsCEI9rbS4JxELxXidtAui3qNyTHLHg67Qbn7g8cg+E6LcnC+hh3SM/p94x6mFh6KRxT1ttnta+wCYqWA==", + "license": "ISC" + }, + "node_modules/vue-demi": { + "version": "0.14.10", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-echarts": { + "version": "7.0.3", + "license": "MIT", + "dependencies": { + "vue-demi": "^0.13.11" + }, + "peerDependencies": { + "@vue/runtime-core": "^3.0.0", + "echarts": "^5.5.1", + "vue": "^2.7.0 || ^3.1.1" + }, + "peerDependenciesMeta": { + "@vue/runtime-core": { + "optional": true + } + } + }, + "node_modules/vue-echarts/node_modules/vue-demi": { + "version": "0.13.11", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-eslint-parser": { + "version": "10.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.6.0", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/vue-i18n": { + "version": "11.1.10", + "license": "MIT", + "peer": true, + "dependencies": { + "@intlify/core-base": "11.1.10", + "@intlify/shared": "11.1.10", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.5.1", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "2.2.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "2.4.15", + "@vue/language-core": "2.2.12" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + }, + "node_modules/vuedraggable": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "sortablejs": "1.14.0" + }, + "peerDependencies": { + "vue": "^3.0.1" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/wmf": { + "version": "1.0.2", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wsl-utils/node_modules/is-wsl": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xlsx": { + "version": "0.18.5", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.0", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.0.0", + "yaml": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/yaml-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zrender": { + "version": "5.6.1", + "license": "BSD-3-Clause", + "dependencies": { + "tslib": "2.3.0" + } + } + } +} diff --git a/package.json b/package.json index d3d95ed0..d0c7fae2 100644 --- a/package.json +++ b/package.json @@ -32,13 +32,16 @@ "pinia": "^2.3.1", "store": "^2.0.12", "vue": "^3.5.13", + "vue-cropper": "^1.1.4", "vue-echarts": "^7.0.3", "vue-i18n": "^11.0.1", "vue-router": "^4.5.0", "vuedraggable": "^4.1.0", - "xlsx": "^0.18.5" + "xlsx": "^0.18.5", + "qs": "^6.13.0" }, "devDependencies": { + "@types/qs": "^6.9.15", "@cool-vue/vite-plugin": "^8.2.2", "@intlify/unplugin-vue-i18n": "^6.0.3", "@rushstack/eslint-patch": "^1.10.5", diff --git a/src/cool/bootstrap/eps.ts b/src/cool/bootstrap/eps.ts index f42ce089..dc68a27f 100644 --- a/src/cool/bootstrap/eps.ts +++ b/src/cool/bootstrap/eps.ts @@ -47,7 +47,7 @@ export function createEps() { // 提示 if (isDev) { - console.log('[cool-eps] updated'); + // console.log('[cool-eps] updated'); } } diff --git a/src/cool/bootstrap/module.ts b/src/cool/bootstrap/module.ts index 7c3c4623..bd13197a 100644 --- a/src/cool/bootstrap/module.ts +++ b/src/cool/bootstrap/module.ts @@ -94,7 +94,9 @@ export function createModule(app: App) { // 注册指令 e.directives?.forEach(v => { - app.directive(v.name, v.value); + if (!app.directive(v.name)) { + app.directive(v.name, v.value); + } }); // 合并忽略配置 diff --git a/src/cool/router/index.ts b/src/cool/router/index.ts index 41b41651..dc9f59d7 100644 --- a/src/cool/router/index.ts +++ b/src/cool/router/index.ts @@ -149,14 +149,32 @@ router.find = function (path: string) { // 获取已注册的路由 const registeredRoutes = router.getRoutes(); + // 构建路由列表,包括已注册的路由、菜单配置和模块自定义路由 + // 模块路由 + const moduleRoutes = module.list.flatMap(module => (module.views || []).concat(module.pages || [])); + + // 菜单路由 + const menuRoutes = menu.routes.map(e => { + const m = moduleRoutes.find(a => a.path == e.path); + + if (m) { + // 如果菜单路由没有组件,尝试使用模块路由的组件 + if (!e.component && m.component) { + e.component = m.component; + } + } + + return e; + }); + // 构建路由列表,包括已注册的路由、菜单配置和模块自定义路由 const routeList: any[] = [ ...registeredRoutes.map(route => ({ ...route, isReg: true })), - ...menu.routes, - ...module.list.flatMap(module => (module.views || []).concat(module.pages || [])) + ...menuRoutes, + ...moduleRoutes ]; let isRegistered = false; diff --git a/src/cool/service/request.ts b/src/cool/service/request.ts index 51b16d54..f56566d2 100644 --- a/src/cool/service/request.ts +++ b/src/cool/service/request.ts @@ -8,10 +8,15 @@ import { useBase } from '/$/base'; import { router } from '../router'; import { config, isDev } from '/@/config'; +import qs from 'qs'; + // 创建 axios 实例 const request = axios.create({ timeout: import.meta.env.VITE_TIMEOUT, // 设置请求超时时间 - withCredentials: false // 不携带凭证 + withCredentials: false, // 不携带凭证 + paramsSerializer: params => { + return qs.stringify(params, { arrayFormat: 'repeat' }); + } }); // 配置 NProgress @@ -42,10 +47,10 @@ request.interceptors.request.use( // 在开发环境中打印请求信息 if (isDev) { - console.group(req.url); - console.log('method:', req.method); - console.table('data:', req.method == 'get' ? req.params : req.data); - console.groupEnd(); + // console.group(req.url); + // console.log('method:', req.method); + // console.table('data:', req.method == 'get' ? req.params : req.data); + // console.groupEnd(); } if (!req.headers) { @@ -136,6 +141,12 @@ request.interceptors.response.use( async error => { NProgress.done(); // 结束进度条 + // 接口无响应或网络错误处理 + if (error.message.includes('Network Error') || error.message.includes('timeout') || error.message.includes('Failed to fetch')) { + ElMessage.error('网络连接失败或服务不可用,请检查网络后重试'); + return Promise.reject({ message: '服务暂不可用', code: 500 }); + } + if (error.response) { const { status } = error.response; const { user } = useBase(); diff --git a/src/cool/utils/storage.ts b/src/cool/utils/storage.ts index 1763c6ea..0e7d9911 100644 --- a/src/cool/utils/storage.ts +++ b/src/cool/utils/storage.ts @@ -9,7 +9,11 @@ export default { * @param {string} key 关键字 */ get(key: string) { - return store.get(key); + try { + return store.get(key); + } catch (e) { + return null; + } }, /** @@ -18,9 +22,13 @@ export default { info() { const data: Record = {}; - store.each((value: any, key: any) => { - data[key] = value; - }); + try { + store.each((value: any, key: any) => { + data[key] = value; + }); + } catch (e) { + // 忽略错误 + } return data; }, @@ -32,11 +40,15 @@ export default { * @param {number} expires 过期时间 */ set(key: string, value: any, expires?: number) { - store.set(key, value); + try { + store.set(key, value); - if (expires) { - const expirationTime = Date.now() + expires * 1000; - store.set(`${key}${this.suffix}`, expirationTime); + if (expires) { + const expirationTime = Date.now() + expires * 1000; + store.set(`${key}${this.suffix}`, expirationTime); + } + } catch (e) { + console.warn('Storage access blocked', e); } }, @@ -62,8 +74,12 @@ export default { * @param {string} key 关键字 */ remove(key: string) { - store.remove(key); - this.removeExpiration(key); + try { + store.remove(key); + this.removeExpiration(key); + } catch (e) { + // 忽略错误 + } }, /** @@ -71,13 +87,21 @@ export default { * @param {string} key 关键字 */ removeExpiration(key: string) { - store.remove(key + this.suffix); + try { + store.remove(key + this.suffix); + } catch (e) { + // 忽略错误 + } }, /** * 清理 */ clearAll() { - store.clearAll(); + try { + store.clearAll(); + } catch (e) { + // 忽略错误 + } } }; diff --git a/src/modules/base/components/cl-icon.vue b/src/modules/base/components/cl-icon.vue new file mode 100644 index 00000000..625d9fa4 --- /dev/null +++ b/src/modules/base/components/cl-icon.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/modules/base/components/cl-upload-crop.vue b/src/modules/base/components/cl-upload-crop.vue new file mode 100644 index 00000000..a5a9d626 --- /dev/null +++ b/src/modules/base/components/cl-upload-crop.vue @@ -0,0 +1,256 @@ + + + + + diff --git a/src/modules/base/locales/zh-cn.json b/src/modules/base/locales/zh-cn.json index ac9bfdf5..4ee71311 100644 --- a/src/modules/base/locales/zh-cn.json +++ b/src/modules/base/locales/zh-cn.json @@ -139,5 +139,7 @@ "ip": "ip", "数据类型 0-字符串 1-富文本 2-文件 ": "数据类型 0-字符串 1-富文本 2-文件 ", "键": "键", - "角色标签": "角色标签" + "角色标签": "角色标签", + "带裁剪图片": "带裁剪图片", + "图片": "图片" } \ No newline at end of file diff --git a/src/modules/base/pages/main/components/views.vue b/src/modules/base/pages/main/components/views.vue index 0ae0219c..99bd8fc6 100644 --- a/src/modules/base/pages/main/components/views.vue +++ b/src/modules/base/pages/main/components/views.vue @@ -30,7 +30,7 @@ const caches = computed(() => { return process.list .filter(e => e.meta?.keepAlive) .map(e => { - return e.path.substring(1, e.path.length).replace(/\//g, '-'); + return e.path ? e.path.substring(1, e.path.length).replace(/\//g, '-') : ''; }); }); diff --git a/src/modules/base/views/file.vue b/src/modules/base/views/file.vue new file mode 100644 index 00000000..a0026414 --- /dev/null +++ b/src/modules/base/views/file.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/src/modules/base/views/home-menu.vue b/src/modules/base/views/home-menu.vue new file mode 100644 index 00000000..8aa8a99f --- /dev/null +++ b/src/modules/base/views/home-menu.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/modules/base/views/param.vue b/src/modules/base/views/param.vue index c7ef57e5..39789531 100644 --- a/src/modules/base/views/param.vue +++ b/src/modules/base/views/param.vue @@ -147,7 +147,13 @@ const Upsert = useUpsert({ required: true, component: { name: 'el-radio-group', - options: options.dataType + options: [ + ...options.dataType, + { + label: t('带裁剪图片'), + value: 3 + } + ] } }, { @@ -195,6 +201,17 @@ const Upsert = useUpsert({ } } }, + { + prop: 'data_3', + label: t('图片'), + required: true, + hidden({ scope }) { + return scope.dataType != 3; + }, + component: { + name: 'cl-upload-crop' + } + }, { prop: 'remark', label: t('备注'), @@ -219,7 +236,8 @@ const Upsert = useUpsert({ data: data[`data_${data.dataType}`], data_0: undefined, data_1: undefined, - data_2: undefined + data_2: undefined, + data_3: undefined }); } }); diff --git a/src/modules/base/views/tabbar.vue b/src/modules/base/views/tabbar.vue new file mode 100644 index 00000000..2a5bb35a --- /dev/null +++ b/src/modules/base/views/tabbar.vue @@ -0,0 +1,210 @@ + + + + + diff --git a/src/modules/demo/locales/zh-cn.json b/src/modules/demo/locales/zh-cn.json index 8182c786..df3cf4b9 100644 --- a/src/modules/demo/locales/zh-cn.json +++ b/src/modules/demo/locales/zh-cn.json @@ -50,5 +50,10 @@ "日同比": "日同比", "类别占比": "类别占比", "启用": "启用", - "描述": "描述" + "描述": "描述", + "业务分类占比": "业务分类占比", + "热销农产品排行": "热销农产品排行", + "种子": "种子", + "商品": "商品", + "认养": "认养" } \ No newline at end of file diff --git a/src/modules/demo/views/home/components/category-ratio.vue b/src/modules/demo/views/home/components/category-ratio.vue index d8f6159e..61d6fd6b 100644 --- a/src/modules/demo/views/home/components/category-ratio.vue +++ b/src/modules/demo/views/home/components/category-ratio.vue @@ -1,7 +1,7 @@ diff --git a/src/modules/demo/views/home/components/count-user.vue b/src/modules/demo/views/home/components/count-user.vue index aee29483..4757dd0e 100644 --- a/src/modules/demo/views/home/components/count-user.vue +++ b/src/modules/demo/views/home/components/count-user.vue @@ -7,7 +7,7 @@

- +
@@ -28,13 +28,12 @@ diff --git a/src/modules/demo/views/home/components/count-views.vue b/src/modules/demo/views/home/components/count-views.vue index 5e591c83..33b6ed19 100644 --- a/src/modules/demo/views/home/components/count-views.vue +++ b/src/modules/demo/views/home/components/count-views.vue @@ -2,7 +2,7 @@
- {{ $t('浏览量') }} + {{ $t('种子销量') }}
@@ -11,16 +11,23 @@
+ diff --git a/src/modules/demo/views/home/components/tab-chart.vue b/src/modules/demo/views/home/components/tab-chart.vue index 0656b78f..5db0b7cd 100644 --- a/src/modules/demo/views/home/components/tab-chart.vue +++ b/src/modules/demo/views/home/components/tab-chart.vue @@ -17,10 +17,12 @@ import dayjs from 'dayjs'; import { useDark } from '@vueuse/core'; import { useI18n } from 'vue-i18n'; import { useTheme } from '/#/theme'; +import { useCool } from '/@/cool'; const { t } = useI18n(); const isDark = useDark(); const theme = useTheme(); +const { service } = useCool(); const tab = reactive({ active: 'sales', @@ -105,10 +107,38 @@ const chartOption = reactive({ ] }); -function refresh() { +async function refresh() { chartOption.xAxis.data = range(12).map((_, i) => t('{i}月', { i: i + 1 })); - chartOption.series[0].data = range(12).map(() => parseInt(String(Math.random() * 10000))); - chartOption.series[1].data = range(12).map(() => 10000); + + try { + // 从数据库获取真实数据 + const res = await service.nongchuang.stats.dashboard(); + if (res) { + // 使用真实数据,如果没有月度数据则显示0 + const totalOrders = res.orderCount || 0; + const totalRevenue = res.totalRevenue || 0; + + // 均匀分布到各月(实际项目应从后端获取月度统计) + if (tab.active === 'sales') { + // 销售金额:如果有收入则显示,否则为0 + chartOption.series[0].data = range(12).map(() => Math.floor(totalRevenue / 12)); + } else { + // 销售订单:如果有订单则显示,否则为0 + chartOption.series[0].data = range(12).map(() => Math.floor(totalOrders / 12)); + } + } else { + // 没有数据时显示0 + chartOption.series[0].data = range(12).map(() => 0); + } + } catch (e) { + console.error('加载图表数据失败', e); + // 错误时显示0 + chartOption.series[0].data = range(12).map(() => 0); + } + + // 背景条高度设为最大值或固定值 + const maxValue = Math.max(...(chartOption.series[0].data as number[]), 100); + chartOption.series[1].data = range(12).map(() => maxValue); } function onChange() { diff --git a/src/modules/demo/views/home/index.vue b/src/modules/demo/views/home/index.vue index 34ea22a6..633a64c2 100644 --- a/src/modules/demo/views/home/index.vue +++ b/src/modules/demo/views/home/index.vue @@ -3,16 +3,16 @@
- + - + - + - + @@ -35,10 +35,8 @@ diff --git a/src/modules/nongchuang/views/category.vue b/src/modules/nongchuang/views/category.vue new file mode 100644 index 00000000..8f03bbc9 --- /dev/null +++ b/src/modules/nongchuang/views/category.vue @@ -0,0 +1,58 @@ + + + diff --git a/src/modules/nongchuang/views/device.vue b/src/modules/nongchuang/views/device.vue new file mode 100644 index 00000000..39e53f9a --- /dev/null +++ b/src/modules/nongchuang/views/device.vue @@ -0,0 +1,71 @@ + + + diff --git a/src/modules/nongchuang/views/farm.vue b/src/modules/nongchuang/views/farm.vue new file mode 100644 index 00000000..3cb08cc9 --- /dev/null +++ b/src/modules/nongchuang/views/farm.vue @@ -0,0 +1,76 @@ + + + diff --git a/src/modules/nongchuang/views/giftCard.vue b/src/modules/nongchuang/views/giftCard.vue new file mode 100644 index 00000000..72493c01 --- /dev/null +++ b/src/modules/nongchuang/views/giftCard.vue @@ -0,0 +1,69 @@ + + + diff --git a/src/modules/nongchuang/views/model3d.vue b/src/modules/nongchuang/views/model3d.vue new file mode 100644 index 00000000..fb0d35a0 --- /dev/null +++ b/src/modules/nongchuang/views/model3d.vue @@ -0,0 +1,202 @@ + + + diff --git a/src/modules/nongchuang/views/order.vue b/src/modules/nongchuang/views/order.vue new file mode 100644 index 00000000..4c3b0761 --- /dev/null +++ b/src/modules/nongchuang/views/order.vue @@ -0,0 +1,72 @@ + + + diff --git a/src/modules/nongchuang/views/product.vue b/src/modules/nongchuang/views/product.vue new file mode 100644 index 00000000..fe1961c1 --- /dev/null +++ b/src/modules/nongchuang/views/product.vue @@ -0,0 +1,104 @@ + + + diff --git a/src/modules/nongchuang/views/seed.vue b/src/modules/nongchuang/views/seed.vue new file mode 100644 index 00000000..fb6e4e22 --- /dev/null +++ b/src/modules/nongchuang/views/seed.vue @@ -0,0 +1,73 @@ + + + diff --git a/src/modules/nongchuang/views/stats.vue b/src/modules/nongchuang/views/stats.vue new file mode 100644 index 00000000..9b47d98d --- /dev/null +++ b/src/modules/nongchuang/views/stats.vue @@ -0,0 +1,304 @@ + + + + + diff --git a/src/modules/nongchuang/views/user.vue b/src/modules/nongchuang/views/user.vue new file mode 100644 index 00000000..d858eb42 --- /dev/null +++ b/src/modules/nongchuang/views/user.vue @@ -0,0 +1,81 @@ + + + diff --git a/src/modules/nongchuang/views/userAdoption.vue b/src/modules/nongchuang/views/userAdoption.vue new file mode 100644 index 00000000..ed7aa365 --- /dev/null +++ b/src/modules/nongchuang/views/userAdoption.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/modules/nongchuang/views/userSeed.vue b/src/modules/nongchuang/views/userSeed.vue new file mode 100644 index 00000000..8d44bc73 --- /dev/null +++ b/src/modules/nongchuang/views/userSeed.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/modules/user/views/list.vue b/src/modules/user/views/list.vue index f1b69bf1..506a573d 100644 --- a/src/modules/user/views/list.vue +++ b/src/modules/user/views/list.vue @@ -1,5 +1,5 @@