@hbis-uni/components 2.7.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../c1/src/C1.vue","../c2/src/C2.vue","../hbis-dateStrip/src/hbis-dateStrip.vue","../hbis-previewImage/src/hbis-previewImage.vue","../hbis-auto-scroll-list/src/hbis-auto-scroll-list.vue","../hbis-loading/src/hbis-loading.vue","../hbis-smsInput/src/hbis-sms-input.vue","../hbis-waterfall/src/hbis-waterfall.vue","../../../node_modules/.pnpm/svga.lite@1.6.1/node_modules/svga.lite/svga.lite.min.js","../hbis-svgaPlayer/src/hbis-svgaPlayer.vue","../hbis-search-input/src/hbis-search-input.vue"],"sourcesContent":["<template>\r\n <div class=\"c1-container\" :class=\"{ 'c1-primary': primary }\">\r\n <slot>{{ title }}</slot>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\n/**\r\n * C1组件 - 基础组件示例\r\n * 用于展示基本的Vue3组件结构和TypeScript支持\r\n */\r\n\r\n// 定义组件属性\r\ninterface Props {\r\n /** 标题文本 */\r\n title?: string;\r\n /** 是否使用主要样式 */\r\n primary?: boolean;\r\n}\r\n\r\n// 定义组件属性默认值\r\nconst props = withDefaults(defineProps<Props>(), {\r\n title: 'C1 Component',\r\n primary: false\r\n});\r\n</script>\r\n\r\n<style scoped>\r\n.c1-container {\r\n padding: 16px;\r\n border: 1px solid #e0e0e0;\r\n border-radius: 4px;\r\n background-color: #ffffff;\r\n}\r\n\r\n.c1-primary {\r\n background-color: #1890ff;\r\n color: #ffffff;\r\n border-color: #1890ff;\r\n}\r\n</style>\r\n","<template>\r\n <div class=\"c2-container\">\r\n <h2 class=\"c2-title\">{{ title }}</h2>\r\n <div class=\"c2-content\">\r\n <slot></slot>\r\n </div>\r\n <button v-if=\"showButton\" class=\"c2-button\" @click=\"handleClick\">\r\n {{ buttonText }}\r\n </button>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\n/**\r\n * C2组件 - 带按钮的容器组件\r\n * 用于展示包含事件处理的Vue3组件\r\n */\r\n\r\n// 定义组件属性\r\ninterface Props {\r\n /** 标题文本 */\r\n title?: string;\r\n /** 是否显示按钮 */\r\n showButton?: boolean;\r\n /** 按钮文本 */\r\n buttonText?: string;\r\n}\r\n\r\n// 定义组件事件\r\nconst emit = defineEmits<{\r\n /** 按钮点击事件 */\r\n (e: 'click', event: MouseEvent): void;\r\n}>();\r\n\r\n// 定义组件属性默认值\r\nconst props = withDefaults(defineProps<Props>(), {\r\n title: 'C2 Component',\r\n showButton: true,\r\n buttonText: 'Click Me'\r\n});\r\n\r\n/**\r\n * 处理按钮点击事件\r\n * @param event 鼠标点击事件对象\r\n */\r\nconst handleClick = (event: MouseEvent) => {\r\n emit('click', event);\r\n};\r\n</script>\r\n\r\n<style scoped>\r\n.c2-container {\r\n padding: 20px;\r\n border: 1px solid #e0e0e0;\r\n border-radius: 8px;\r\n background-color: #fafafa;\r\n margin: 16px 0;\r\n}\r\n\r\n.c2-title {\r\n margin: 0 0 12px 0;\r\n font-size: 18px;\r\n font-weight: 600;\r\n color: #333333;\r\n}\r\n\r\n.c2-content {\r\n margin-bottom: 16px;\r\n color: #666666;\r\n}\r\n\r\n.c2-button {\r\n padding: 8px 16px;\r\n background-color: #52c41a;\r\n color: #ffffff;\r\n border: none;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n font-size: 14px;\r\n transition: background-color 0.3s;\r\n}\r\n\r\n.c2-button:hover {\r\n background-color: #73d13d;\r\n}\r\n</style>\r\n","<template>\r\n <div class=\"hbis-date-strip\" :class=\"{\r\n 'hbis-date-strip--highlight-bg': highlightType === 'bg',\r\n 'hbis-date-strip--highlight-dot': highlightType === 'dot',\r\n 'hbis-date-strip--highlight-round': highlightType === 'round',\r\n 'hbis-date-strip--scrollable': shouldScroll\r\n }\">\r\n <!-- 非滚动模式:星期行 + 固定日期行 -->\r\n <div v-if=\"!shouldScroll\">\r\n <!-- 星期行 - 固定显示7个星期,始终在顶部 -->\r\n <div class=\"hbis-date-strip__weekdays\">\r\n <div \r\n v-for=\"weekday in orderedWeekdays\" \r\n :key=\"weekday.value\"\r\n class=\"hbis-date-strip__weekday\"\r\n :class=\"{\r\n 'hbis-date-strip__weekday--weekend': weekday.isWeekend\r\n }\"\r\n >\r\n {{ weekday.label }}\r\n </div>\r\n </div>\r\n \r\n <!-- 日期行 - 固定显示7天 -->\r\n <div class=\"hbis-date-strip__dates\">\r\n <div \r\n v-for=\"date in filteredDisplayDates\" \r\n :key=\"date.dateString\"\r\n class=\"hbis-date-strip__date\"\r\n :class=\"{\r\n 'hbis-date-strip__date--selected': isSelected(date),\r\n 'hbis-date-strip__date--today': isToday(date),\r\n 'hbis-date-strip__date--disabled': !isInRange(date),\r\n 'hbis-date-strip__date--weekend': date.isWeekend\r\n }\"\r\n :style=\"{\r\n color: isSelected(date) ? selectedColor : normalColor,\r\n backgroundColor: isSelected(date) ? selectedBgColor : normalBgColor\r\n }\"\r\n @click=\"handleDateClick(date)\"\r\n >\r\n <div class=\"hbis-date-strip__date-number\">{{ date.day }}</div>\r\n <!-- 每个日期项的自定义slot -->\r\n <div class=\"hbis-date-strip__date-slot\">\r\n <slot :date=\"date\"></slot>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <!-- 滚动模式:星期行和日期行一起滚动 -->\r\n <div v-else class=\"hbis-date-strip__scroll-wrapper\">\r\n <!-- 滚动容器 - 包含星期行和日期行 -->\r\n <div \r\n class=\"hbis-date-strip__scroll-container\"\r\n >\r\n <!-- 星期行 - 与日期一起滚动 -->\r\n <div class=\"hbis-date-strip__weekdays\">\r\n <div \r\n v-for=\"date in filteredDisplayDates\" \r\n :key=\"date.dateString + '-weekday'\"\r\n class=\"hbis-date-strip__weekday\"\r\n :class=\"{\r\n 'hbis-date-strip__weekday--weekend': date.isWeekend\r\n }\"\r\n >\r\n <!-- 显示每个日期对应的星期 -->\r\n {{ getWeekdayLabel(date.weekday) }}\r\n </div>\r\n </div>\r\n \r\n <!-- 日期行 - 一页显示7天,支持横向滑动 -->\r\n <div class=\"hbis-date-strip__dates\">\r\n <div \r\n v-for=\"date in filteredDisplayDates\" \r\n :key=\"date.dateString\"\r\n class=\"hbis-date-strip__date\"\r\n :class=\"{\r\n 'hbis-date-strip__date--selected': isSelected(date),\r\n 'hbis-date-strip__date--today': isToday(date),\r\n 'hbis-date-strip__date--disabled': !isInRange(date),\r\n 'hbis-date-strip__date--weekend': date.isWeekend\r\n }\"\r\n :style=\"{\r\n color: isSelected(date) ? selectedColor : normalColor,\r\n backgroundColor: isSelected(date) ? selectedBgColor : normalBgColor\r\n }\"\r\n @click=\"handleDateClick(date)\"\r\n >\r\n <div class=\"hbis-date-strip__date-number\">{{ date.day }}</div>\r\n <!-- 每个日期项的自定义slot -->\r\n <div class=\"hbis-date-strip__date-slot\">\r\n <slot :date=\"date\"></slot>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\n/**\r\n * hbis-dateStrip组件 - 用于展示一周的日历信息\r\n * 支持多种切换方式和选中样式\r\n * 兼容平台:H5、App、微信小程序、支付宝小程序等Uniapp支持的所有平台\r\n */\r\n\r\nimport { ref, computed, onMounted, watch } from 'vue';\r\n\r\n// 星期数据类型\r\ninterface Weekday {\r\n value: number;\r\n label: string;\r\n isWeekend: boolean;\r\n}\r\n\r\n// 日期数据类型\r\ninterface DateItem {\r\n date: Date;\r\n dateString: string;\r\n day: number;\r\n month: number;\r\n year: number;\r\n isWeekend: boolean;\r\n weekday: number;\r\n}\r\n\r\n// 组件属性类型\r\ninterface Props {\r\n /** 选中日期,可以是单个日期或日期范围 */\r\n modelValue?: Date | Date[];\r\n /** 日期范围开始 */\r\n startDate?: Date;\r\n /** 日期范围结束 */\r\n endDate?: Date;\r\n /** 选中样式类型:bg(背景色高亮), dot(数字背景色高亮), round(数字背景色圆角高亮) */\r\n highlightType?: 'bg' | 'dot' | 'round';\r\n /** 是否显示今天 */\r\n showToday?: boolean;\r\n /** 是否禁用过去的日期 */\r\n disablePast?: boolean;\r\n /** 是否禁用未来的日期 */\r\n disableFuture?: boolean;\r\n /** 选中状态的文字颜色 */\r\n selectedColor?: string;\r\n /** 正常状态的文字颜色 */\r\n normalColor?: string;\r\n /** 选中状态的背景颜色 */\r\n selectedBgColor?: string;\r\n /** 正常状态的背景颜色 */\r\n normalBgColor?: string;\r\n /** 是否支持横向滑动日期 */\r\n scrollable?: boolean;\r\n /** 可见的天数(默认7天) */\r\n visibleDays?: number;\r\n}\r\n\r\n// 定义组件属性默认值\r\nconst props = withDefaults(defineProps<Props>(), {\r\n modelValue: () => new Date(),\r\n startDate: () => new Date(),\r\n endDate: () => {\r\n const end = new Date();\r\n end.setDate(end.getDate() + 30);\r\n return end;\r\n },\r\n highlightType: 'bg',\r\n showToday: true,\r\n disablePast: false,\r\n disableFuture: false,\r\n selectedColor: '#ffffff',\r\n normalColor: '#666666',\r\n selectedBgColor: '#1890ff',\r\n normalBgColor: 'transparent',\r\n scrollable: false,\r\n visibleDays: 7\r\n});\r\n\r\n// 直接使用props访问属性,确保响应性\r\n// 注意:在Vue 3 Composition API中,解构props会失去响应性\r\n\r\n// 定义组件事件\r\nconst emit = defineEmits<{\r\n /** 选中日期变化事件 */\r\n (e: 'update:modelValue', value: Date | Date[]): void;\r\n /** 日期点击事件 */\r\n (e: 'dateClick', date: DateItem): void;\r\n}>();\r\n\r\n// 计算是否需要滚动:如果日期范围超过7天,则可以滚动\r\nconst shouldScroll = computed<boolean>(() => {\r\n // 调试信息:打印props,查看startDate和endDate的值\r\n console.log('props:', {\r\n startDate: props.startDate,\r\n endDate: props.endDate,\r\n scrollable: props.scrollable\r\n });\r\n \r\n // 如果显式设置了scrollable为true,直接返回true\r\n if (props.scrollable) {\r\n console.log('显式设置了scrollable为true,允许滚动');\r\n return true;\r\n }\r\n \r\n try {\r\n // 计算日期范围的天数,忽略时间部分\r\n const start = new Date(props.startDate);\r\n start.setHours(0, 0, 0, 0);\r\n \r\n const end = new Date(props.endDate);\r\n end.setHours(0, 0, 0, 0);\r\n \r\n // 检查日期是否有效\r\n if (isNaN(start.getTime()) || isNaN(end.getTime())) {\r\n console.log('无效的日期对象,使用默认滚动行为');\r\n return false;\r\n }\r\n \r\n // 计算总天数,确保结果正确\r\n const diffTime = end.getTime() - start.getTime();\r\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\r\n const totalDays = diffDays + 1;\r\n \r\n // 调试信息\r\n console.log('日期范围天数计算:', {\r\n start: start.toLocaleDateString(),\r\n end: end.toLocaleDateString(),\r\n diffTime,\r\n diffDays,\r\n totalDays,\r\n shouldScroll: totalDays > 7\r\n });\r\n \r\n // 如果超过7天,允许滚动\r\n return totalDays > 7;\r\n } catch (error) {\r\n console.error('计算日期范围时出错:', error);\r\n // 出错时,默认不允许滚动\r\n return false;\r\n }\r\n});\r\n\r\n// 星期数据\r\nconst weekdays: Weekday[] = [\r\n { value: 0, label: '日', isWeekend: true },\r\n { value: 1, label: '一', isWeekend: false },\r\n { value: 2, label: '二', isWeekend: false },\r\n { value: 3, label: '三', isWeekend: false },\r\n { value: 4, label: '四', isWeekend: false },\r\n { value: 5, label: '五', isWeekend: false },\r\n { value: 6, label: '六', isWeekend: true }\r\n];\r\n\r\n// 根据当前显示的第一个日期动态排序星期,确保星期和日期对应\r\nconst orderedWeekdays = computed<Weekday[]>(() => {\r\n // 获取当前显示的第一个有效的日期\r\n const firstDate = filteredDisplayDates.value[0];\r\n if (!firstDate) {\r\n // 如果没有日期,返回默认的星期顺序\r\n return weekdays;\r\n }\r\n \r\n const firstDateWeekday = firstDate.weekday;\r\n const result: Weekday[] = [];\r\n \r\n // 从第一个日期的星期开始,按顺序排列7天的星期\r\n for (let i = 0; i < 7; i++) {\r\n const weekdayIndex = (firstDateWeekday + i) % 7;\r\n result.push(weekdays[weekdayIndex]);\r\n }\r\n \r\n return result;\r\n});\r\n\r\n// 当前显示的周开始日期\r\n// 初始化时就计算出正确的周开始日期,确保组件第一次渲染时就有有效值\r\nconst initCurrentWeekStart = () => {\r\n // 如果设置了startDate,就从startDate开始,否则从今天开始\r\n const baseDate = props.startDate || new Date();\r\n const day = baseDate.getDay(); // 0是周日,1是周一,2是周二,3是周三,4是周四,5是周五,6是周六\r\n // 计算从baseDate开始的周开始日期:如果是周一,diff=0;如果是周二,diff=-1;...;如果是周日,diff=-6\r\n const diff = baseDate.getDate() - (day === 0 ? 6 : day - 1);\r\n const startDate = new Date(baseDate);\r\n startDate.setDate(diff);\r\n return startDate;\r\n};\r\n\r\nconst currentWeekStart = ref(initCurrentWeekStart());\r\n\r\n// 组件挂载后再次确认周开始日期\r\nonMounted(() => {\r\n // 调试信息:打印props的值,看看是否能被正确接收\r\n console.log('props:', props);\r\n console.log('highlightType:', props.highlightType);\r\n});\r\n\r\n// 监听highlightType变化\r\nwatch(\r\n () => props.highlightType,\r\n (newValue) => {\r\n console.log('highlightType changed:', newValue);\r\n }\r\n);\r\n\r\n// 监听modelValue变化\r\nwatch(\r\n () => props.modelValue,\r\n (newValue) => {\r\n console.log('modelValue changed:', newValue);\r\n }\r\n);\r\n\r\n/**\r\n * 生成显示的日期数组\r\n */\r\nconst displayDates = computed<DateItem[]>(() => {\r\n const dates: DateItem[] = [];\r\n \r\n try {\r\n // 计算日期范围:从startDate开始,到endDate结束\r\n const start = props.startDate;\r\n const end = props.endDate;\r\n \r\n // 检查日期是否有效\r\n if (isNaN(start.getTime()) || isNaN(end.getTime())) {\r\n console.log('无效的日期对象,返回空数组');\r\n return dates;\r\n }\r\n \r\n // 计算总天数\r\n const totalDays = Math.ceil((end.getTime() - start.getTime()) / (1000 * 60 * 60 * 24)) + 1;\r\n \r\n // 生成日期数组\r\n for (let i = 0; i < totalDays; i++) {\r\n const date = new Date(start);\r\n date.setDate(start.getDate() + i);\r\n \r\n // 确保生成的日期是有效的\r\n if (!isNaN(date.getTime())) {\r\n dates.push({\r\n date,\r\n dateString: formatDate(date),\r\n day: date.getDate(),\r\n month: date.getMonth() + 1,\r\n year: date.getFullYear(),\r\n isWeekend: date.getDay() === 0 || date.getDay() === 6,\r\n weekday: date.getDay()\r\n });\r\n }\r\n }\r\n } catch (error) {\r\n console.error('生成日期数组时出错:', error);\r\n }\r\n \r\n return dates;\r\n});\r\n\r\n/**\r\n * 过滤后的日期数组,只包含有效的DateItem对象\r\n */\r\nconst filteredDisplayDates = computed<DateItem[]>(() => {\r\n return displayDates.value.filter((date): date is DateItem => {\r\n // 确保date是有效的DateItem对象,并且包含所有必要的属性\r\n return Boolean(date && \r\n date.date && \r\n date.dateString && \r\n !isNaN(date.date.getTime()) && \r\n typeof date.dateString === 'string' && \r\n typeof date.day === 'number');\r\n });\r\n});\r\n\r\n/**\r\n * 格式化日期为YYYY-MM-DD格式\r\n * @param date 日期对象\r\n * @returns 格式化后的日期字符串\r\n */\r\nconst formatDate = (date: Date): string => {\r\n return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;\r\n};\r\n\r\n/**\r\n * 检查日期是否被选中\r\n * @param date 日期项\r\n * @returns 是否被选中\r\n */\r\nconst isSelected = (date: DateItem): boolean => {\r\n const dateStr = date.dateString;\r\n \r\n // 确保modelValue存在\r\n if (!props.modelValue) {\r\n return false;\r\n }\r\n \r\n if (Array.isArray(props.modelValue)) {\r\n // 范围选择\r\n return props.modelValue.some(selectedDate => {\r\n // 确保selectedDate是有效的Date对象\r\n if (!selectedDate || isNaN(selectedDate.getTime())) {\r\n return false;\r\n }\r\n return formatDate(selectedDate) === dateStr;\r\n });\r\n } else {\r\n // 单个日期选择\r\n // 确保modelValue是有效的Date对象\r\n if (isNaN(props.modelValue.getTime())) {\r\n return false;\r\n }\r\n return formatDate(props.modelValue) === dateStr;\r\n }\r\n};\r\n\r\n/**\r\n * 检查日期是否是今天\r\n * @param date 日期项\r\n * @returns 是否是今天\r\n */\r\nconst isToday = (date: DateItem): boolean => {\r\n const todayStr = formatDate(new Date());\r\n return date.dateString === todayStr;\r\n};\r\n\r\n/**\r\n * 检查日期是否在可选范围内\r\n * @param date 日期项\r\n * @returns 是否在范围内\r\n */\r\nconst isInRange = (date: DateItem): boolean => {\r\n const dateObj = date.date;\r\n \r\n if (props.disablePast && dateObj < new Date(new Date().setHours(0, 0, 0, 0))) {\r\n return false;\r\n }\r\n \r\n if (props.disableFuture && dateObj > new Date(new Date().setHours(23, 59, 59, 999))) {\r\n return false;\r\n }\r\n \r\n return dateObj >= props.startDate && dateObj <= props.endDate;\r\n};\r\n\r\n/**\r\n * 根据星期值获取星期标签\r\n * @param weekday 星期值(0-6,0代表周日)\r\n * @returns 星期标签\r\n */\r\nconst getWeekdayLabel = (weekday: number): string => {\r\n return weekdays.find(w => w.value === weekday)?.label || '';\r\n};\r\n\r\n/**\r\n * 处理日期点击事件\r\n * @param date 日期项\r\n */\r\nconst handleDateClick = (date: DateItem) => {\r\n if (!isInRange(date)) return;\r\n \r\n emit('dateClick', date);\r\n emit('update:modelValue', date.date);\r\n};\r\n</script>\r\n\r\n<style scoped>\r\n/* 基础容器样式 */\r\n.hbis-date-strip {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n padding: 8px;\r\n background-color: #ffffff;\r\n border-radius: 8px;\r\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\r\n box-sizing: border-box;\r\n}\r\n\r\n/* 横向滚动模式 */\r\n.hbis-date-strip--scrollable {\r\n overflow: hidden;\r\n}\r\n\r\n/* 滚动包装器 */\r\n.hbis-date-strip__scroll-wrapper {\r\n overflow: hidden;\r\n width: 100%;\r\n}\r\n\r\n/* 滚动容器 */\r\n.hbis-date-strip__scroll-container {\r\n width: 100%;\r\n overflow-x: auto;\r\n overflow-y: hidden;\r\n scrollbar-width: none; /* 隐藏Firefox滚动条 */\r\n -ms-overflow-style: none; /* 隐藏IE滚动条 */\r\n}\r\n\r\n.hbis-date-strip__scroll-container::-webkit-scrollbar {\r\n display: none; /* 隐藏Chrome、Safari滚动条 */\r\n}\r\n\r\n/* 星期行样式 */\r\n.hbis-date-strip__weekdays {\r\n display: flex;\r\n margin-bottom: 8px;\r\n box-sizing: border-box;\r\n flex-wrap: nowrap;\r\n}\r\n\r\n/* 星期项样式 - 所有模式下都占1/7宽度 */\r\n.hbis-date-strip__weekday {\r\n text-align: center;\r\n font-size: 12px;\r\n font-weight: 500;\r\n color: #666666;\r\n padding: 4px 0;\r\n flex: 0 0 calc(100% / 7); /* 每日宽度占父宽度的1/7 */\r\n width: calc(100% / 7); /* 每日宽度占父宽度的1/7 */\r\n min-width: calc(100% / 7); /* 确保宽度固定,不受内容影响 */\r\n box-sizing: border-box;\r\n}\r\n\r\n.hbis-date-strip__weekday--weekend {\r\n color: #ff4d4f;\r\n}\r\n\r\n/* 日期行样式 - 所有模式下的基础样式 */\r\n.hbis-date-strip__dates {\r\n display: flex;\r\n justify-content: flex-start;\r\n width: 100%;\r\n box-sizing: border-box;\r\n}\r\n\r\n/* 滚动模式下的星期行 */\r\n.hbis-date-strip--scrollable .hbis-date-strip__weekdays {\r\n width: auto;\r\n}\r\n\r\n/* 滚动模式下的日期行 */\r\n.hbis-date-strip--scrollable .hbis-date-strip__dates {\r\n width: auto;\r\n flex-wrap: nowrap;\r\n}\r\n\r\n/* 非滚动模式下的日期行 */\r\n.hbis-date-strip:not(.hbis-date-strip--scrollable) .hbis-date-strip__dates {\r\n justify-content: space-around;\r\n width: 100%;\r\n}\r\n\r\n/* 日期项样式 - 所有模式下都和星期项宽度完全一致 */\r\n.hbis-date-strip__date {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 8px 0;\r\n border-radius: 4px;\r\n transition: all 0.2s ease;\r\n position: relative;\r\n user-select: none;\r\n cursor: pointer;\r\n flex: 0 0 calc(100% / 7); /* 和星期项保持完全一致,每日宽度占父宽度的1/7 */\r\n width: calc(100% / 7); /* 和星期项保持完全一致,每日宽度占父宽度的1/7 */\r\n min-width: calc(100% / 7); /* 和星期项保持完全一致,确保宽度固定 */\r\n max-width: calc(100% / 7); /* 和星期项保持完全一致,确保宽度不超过 */\r\n box-sizing: border-box;\r\n white-space: normal;\r\n}\r\n\r\n.hbis-date-strip__date--disabled {\r\n cursor: not-allowed;\r\n opacity: 0.6;\r\n}\r\n\r\n.hbis-date-strip__date--weekend {\r\n /* 周末颜色通过自定义属性控制 */\r\n}\r\n\r\n.hbis-date-strip__date-number {\r\n font-size: 14px;\r\n font-weight: 500;\r\n padding: 4px;\r\n transition: all 0.2s ease;\r\n width: 100%;\r\n text-align: center;\r\n box-sizing: border-box;\r\n}\r\n\r\n/* 日期slot样式 */\r\n.hbis-date-strip__date-slot {\r\n margin-top: 4px;\r\n font-size: 10px;\r\n text-align: center;\r\n width: 100%;\r\n box-sizing: border-box;\r\n}\r\n\r\n/* 选中样式 - 背景色高亮 */\r\n.hbis-date-strip--highlight-bg .hbis-date-strip__date--selected {\r\n /* 背景色和文字颜色通过内联样式控制 */\r\n}\r\n\r\n/* 选中样式 - 数字背景色高亮 */\r\n.hbis-date-strip--highlight-dot .hbis-date-strip__date--selected .hbis-date-strip__date-number {\r\n /* 背景色和文字颜色通过内联样式控制 */\r\n border-radius: 2px;\r\n}\r\n\r\n/* 选中样式 - 数字背景色圆角高亮 */\r\n.hbis-date-strip--highlight-round .hbis-date-strip__date--selected .hbis-date-strip__date-number {\r\n /* 背景色和文字颜色通过内联样式控制 */\r\n border-radius: 50%;\r\n padding: 4px 8px;\r\n min-width: 20px;\r\n text-align: center;\r\n}\r\n\r\n/* 今天样式 */\r\n.hbis-date-strip__date--today .hbis-date-strip__date-number {\r\n font-weight: 600;\r\n /* 今天颜色保持默认,不受自定义颜色影响 */\r\n color: #1890ff !important;\r\n}\r\n\r\n/* 禁用日期样式 */\r\n.hbis-date-strip__date--disabled {\r\n color: #cccccc !important;\r\n background-color: transparent !important;\r\n}\r\n</style>","<template>\r\n <div class=\"image-preview\">\r\n <!-- 图片数量指示器 -->\r\n <div class=\"counter\" v-if=\"images.length > 1\">\r\n <span class=\"counter-text\">{{ currentIndex + 1 }}/{{ images.length }}</span>\r\n </div>\r\n \r\n <!-- 关闭按钮 -->\r\n <button class=\"close-btn\" @click=\"emit('close')\" v-if=\"showCloseBtn\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\r\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\r\n </svg>\r\n </button>\r\n \r\n <!-- 图片容器 -->\r\n <div class=\"swiper-container\">\r\n <div \r\n class=\"swiper-wrapper\"\r\n ref=\"swiperWrapper\"\r\n :style=\"swiperWrapperStyle\"\r\n @touchstart=\"handleTouchStart\"\r\n @touchmove=\"handleTouchMove\"\r\n @touchend=\"handleTouchEnd\"\r\n @mousedown=\"handleMouseDown\"\r\n @mousemove=\"handleMouseMove\"\r\n @mouseup=\"handleMouseUp\"\r\n @mouseleave=\"handleMouseUp\"\r\n >\r\n <div \r\n v-for=\"(image, index) in images\" \r\n :key=\"index\"\r\n class=\"swiper-slide\"\r\n :style=\"slideStyle\"\r\n >\r\n <div \r\n class=\"image-container\"\r\n @wheel=\"handleWheel($event, index)\"\r\n >\r\n <img \r\n :src=\"image\" \r\n alt=\"Preview image\" \r\n class=\"preview-image\"\r\n :style=\"getImageStyle(index)\"\r\n @load=\"handleImageLoad(index)\"\r\n loading=\"lazy\"\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <!-- 左右切换按钮 -->\r\n <button \r\n class=\"nav-btn prev-btn\" \r\n @click=\"prevImage\"\r\n :disabled=\"currentIndex === 0\"\r\n >\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n <polyline points=\"15 18 9 12 15 6\"></polyline>\r\n </svg>\r\n </button>\r\n <button \r\n class=\"nav-btn next-btn\" \r\n @click=\"nextImage\"\r\n :disabled=\"currentIndex === images.length - 1\"\r\n >\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n <polyline points=\"9 18 15 12 9 6\"></polyline>\r\n </svg>\r\n </button>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref, computed, onMounted, watch, nextTick } from 'vue';\r\n\r\n// 组件属性\r\nconst props = defineProps({\r\n // 图片集合\r\n images: {\r\n type: Array,\r\n required: true,\r\n validator: (value) => value.every(item => typeof item === 'string')\r\n },\r\n // 当前显示的图片索引\r\n initialIndex: {\r\n type: Number,\r\n default: 0\r\n },\r\n // 最小缩放倍数\r\n minScale: {\r\n type: Number,\r\n default: 0.5\r\n },\r\n // 最大缩放倍数\r\n maxScale: {\r\n type: Number,\r\n default: 5\r\n },\r\n // 是否显示关闭按钮\r\n showCloseBtn: {\r\n type: Boolean,\r\n default: true\r\n },\r\n // 是否启用滑动\r\n enableSwipe: {\r\n type: Boolean,\r\n default: true\r\n }\r\n});\r\n\r\n// 定义事件\r\nconst emit = defineEmits(['close', 'change', 'update:initialIndex']);\r\n\r\n// 响应式数据\r\nconst currentIndex = ref(props.initialIndex);\r\nconst swiperWrapper = ref(null);\r\nconst isDragging = ref(false);\r\nconst isMovingImage = ref(false);\r\nconst startX = ref(0);\r\nconst startY = ref(0);\r\nconst currentTranslateX = ref(0);\r\nconst containerWidth = ref(window.innerWidth);\r\nconst containerHeight = ref(window.innerHeight);\r\n\r\n// 图片状态管理\r\nconst imageStates = ref(props.images.map(() => ({\r\n scale: 1,\r\n translateX: 0,\r\n translateY: 0,\r\n naturalWidth: 0,\r\n naturalHeight: 0,\r\n isLoaded: false\r\n})));\r\n\r\n// 触摸事件数据\r\nconst touchStartX = ref(0);\r\nconst touchStartY = ref(0);\r\nconst touchStartTime = ref(0);\r\nconst touchMoveX = ref(0);\r\nconst touchMoveY = ref(0);\r\n\r\n// 计算属性\r\nconst swiperWrapperStyle = computed(() => {\r\n return {\r\n transform: `translateX(${currentTranslateX.value}px)`,\r\n transition: isDragging.value ? 'none' : 'transform 0.3s ease'\r\n };\r\n});\r\n\r\nconst slideStyle = computed(() => {\r\n return {\r\n width: `${containerWidth.value}px`,\r\n height: `${containerHeight.value}px`\r\n };\r\n});\r\n\r\n// 监听初始索引变化\r\nwatch(() => props.initialIndex, (newIndex) => {\r\n if (newIndex !== currentIndex.value) {\r\n currentIndex.value = newIndex;\r\n updateTranslateX();\r\n }\r\n});\r\n\r\n// 监听窗口大小变化\r\nonMounted(() => {\r\n const handleResize = () => {\r\n containerWidth.value = window.innerWidth;\r\n containerHeight.value = window.innerHeight;\r\n updateTranslateX();\r\n };\r\n \r\n window.addEventListener('resize', handleResize);\r\n handleResize();\r\n \r\n return () => {\r\n window.removeEventListener('resize', handleResize);\r\n };\r\n});\r\n\r\n// 更新滑动位置\r\nconst updateTranslateX = () => {\r\n currentTranslateX.value = -currentIndex.value * containerWidth.value;\r\n};\r\n\r\n// 切换到上一张图片\r\nconst prevImage = () => {\r\n if (currentIndex.value > 0) {\r\n currentIndex.value--;\r\n updateTranslateX();\r\n resetCurrentImageState();\r\n emit('change', currentIndex.value);\r\n emit('update:initialIndex', currentIndex.value);\r\n }\r\n};\r\n\r\n// 切换到下一张图片\r\nconst nextImage = () => {\r\n if (currentIndex.value < props.images.length - 1) {\r\n currentIndex.value++;\r\n updateTranslateX();\r\n resetCurrentImageState();\r\n emit('change', currentIndex.value);\r\n emit('update:initialIndex', currentIndex.value);\r\n }\r\n};\r\n\r\n// 重置当前图片状态\r\nconst resetCurrentImageState = () => {\r\n imageStates.value[currentIndex.value] = {\r\n ...imageStates.value[currentIndex.value],\r\n scale: 1,\r\n translateX: 0,\r\n translateY: 0\r\n };\r\n};\r\n\r\n// 获取图片样式\r\nconst getImageStyle = (index) => {\r\n const state = imageStates.value[index];\r\n return {\r\n transform: `scale(${state.scale}) translate(${state.translateX}px, ${state.translateY}px)`,\r\n transition: isMovingImage.value ? 'none' : 'transform 0.1s ease',\r\n opacity: state.isLoaded ? 1 : 0\r\n };\r\n};\r\n\r\n// 图片加载完成处理\r\nconst handleImageLoad = (index) => {\r\n const img = event.target;\r\n imageStates.value[index] = {\r\n ...imageStates.value[index],\r\n naturalWidth: img.naturalWidth,\r\n naturalHeight: img.naturalHeight,\r\n isLoaded: true\r\n };\r\n};\r\n\r\n// 鼠标按下事件\r\nconst handleMouseDown = (event) => {\r\n if (event.target.tagName === 'IMG') {\r\n // 图片内部拖动\r\n isMovingImage.value = true;\r\n startX.value = event.clientX - imageStates.value[currentIndex.value].translateX;\r\n startY.value = event.clientY - imageStates.value[currentIndex.value].translateY;\r\n } else {\r\n // 幻灯片拖动\r\n isDragging.value = true;\r\n startX.value = event.clientX - currentTranslateX.value;\r\n }\r\n event.preventDefault();\r\n};\r\n\r\n// 鼠标移动事件\r\nconst handleMouseMove = (event) => {\r\n if (isMovingImage.value) {\r\n // 移动图片\r\n const newTranslateX = event.clientX - startX.value;\r\n const newTranslateY = event.clientY - startY.value;\r\n \r\n imageStates.value[currentIndex.value] = {\r\n ...imageStates.value[currentIndex.value],\r\n translateX: newTranslateX,\r\n translateY: newTranslateY\r\n };\r\n } else if (isDragging.value && props.enableSwipe) {\r\n // 滑动切换图片\r\n const newTranslateX = event.clientX - startX.value;\r\n currentTranslateX.value = newTranslateX;\r\n }\r\n};\r\n\r\n// 鼠标释放事件\r\nconst handleMouseUp = () => {\r\n if (isDragging.value && props.enableSwipe) {\r\n // 计算滑动距离\r\n const swipeThreshold = containerWidth.value * 0.3;\r\n \r\n if (Math.abs(currentTranslateX.value + currentIndex.value * containerWidth.value) > swipeThreshold) {\r\n if (currentTranslateX.value > 0) {\r\n prevImage();\r\n } else {\r\n nextImage();\r\n }\r\n } else {\r\n // 回弹到原位置\r\n updateTranslateX();\r\n }\r\n }\r\n \r\n isDragging.value = false;\r\n isMovingImage.value = false;\r\n};\r\n\r\n// 触摸开始事件\r\nconst handleTouchStart = (event) => {\r\n const touch = event.touches[0];\r\n touchStartX.value = touch.clientX;\r\n touchStartY.value = touch.clientY;\r\n touchStartTime.value = Date.now();\r\n};\r\n\r\n// 触摸移动事件\r\nconst handleTouchMove = (event) => {\r\n const touch = event.touches[0];\r\n touchMoveX.value = touch.clientX;\r\n touchMoveY.value = touch.clientY;\r\n \r\n const deltaX = touchMoveX.value - touchStartX.value;\r\n const deltaY = touchMoveY.value - touchStartY.value;\r\n \r\n if (Math.abs(deltaX) > Math.abs(deltaY)) {\r\n // 水平滑动,切换图片\r\n event.preventDefault();\r\n isDragging.value = true;\r\n currentTranslateX.value = -currentIndex.value * containerWidth.value + deltaX;\r\n } else if (imageStates.value[currentIndex.value].scale > 1) {\r\n // 垂直滑动且图片已放大,移动图片\r\n event.preventDefault();\r\n isMovingImage.value = true;\r\n \r\n const newTranslateX = deltaX + imageStates.value[currentIndex.value].translateX;\r\n const newTranslateY = deltaY + imageStates.value[currentIndex.value].translateY;\r\n \r\n imageStates.value[currentIndex.value] = {\r\n ...imageStates.value[currentIndex.value],\r\n translateX: newTranslateX,\r\n translateY: newTranslateY\r\n };\r\n }\r\n};\r\n\r\n// 触摸结束事件\r\nconst handleTouchEnd = () => {\r\n if (isDragging.value) {\r\n const deltaX = touchMoveX.value - touchStartX.value;\r\n const deltaTime = Date.now() - touchStartTime.value;\r\n const swipeThreshold = containerWidth.value * 0.2;\r\n const swipeVelocity = Math.abs(deltaX) / deltaTime;\r\n \r\n // 快速滑动或超过阈值\r\n if (Math.abs(deltaX) > swipeThreshold || swipeVelocity > 0.5) {\r\n if (deltaX > 0) {\r\n prevImage();\r\n } else {\r\n nextImage();\r\n }\r\n } else {\r\n updateTranslateX();\r\n }\r\n }\r\n \r\n isDragging.value = false;\r\n isMovingImage.value = false;\r\n};\r\n\r\n// 鼠标滚轮缩放事件\r\nconst handleWheel = (event, index) => {\r\n if (index !== currentIndex.value) return;\r\n \r\n event.preventDefault();\r\n \r\n const delta = event.deltaY > 0 ? -0.1 : 0.1;\r\n const mouseX = event.clientX;\r\n const mouseY = event.clientY;\r\n \r\n zoomImage(mouseX, mouseY, delta);\r\n};\r\n\r\n// 缩放图片\r\nconst zoomImage = (centerX, centerY, delta) => {\r\n const state = imageStates.value[currentIndex.value];\r\n const newScale = Math.max(\r\n props.minScale,\r\n Math.min(props.maxScale, state.scale + delta)\r\n );\r\n \r\n // 计算缩放中心相对图片的位置\r\n const rect = event.target.getBoundingClientRect();\r\n const imageX = centerX - rect.left;\r\n const imageY = centerY - rect.top;\r\n \r\n // 计算缩放后的位移补偿\r\n const scaleDiff = newScale - state.scale;\r\n const newTranslateX = state.translateX + (imageX - state.translateX) * (scaleDiff / state.scale);\r\n const newTranslateY = state.translateY + (imageY - state.translateY) * (scaleDiff / state.scale);\r\n \r\n imageStates.value[currentIndex.value] = {\r\n ...state,\r\n scale: newScale,\r\n translateX: newTranslateX,\r\n translateY: newTranslateY\r\n };\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.image-preview {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n height: 100vh;\r\n background-color: rgba(0, 0, 0, 0.95);\r\n overflow: hidden;\r\n z-index: 9999;\r\n user-select: none;\r\n \r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.counter {\r\n position: absolute;\r\n top: 20px;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n background-color: rgba(0, 0, 0, 0.7);\r\n color: white;\r\n padding: 8px 16px;\r\n border-radius: 20px;\r\n font-size: 14px;\r\n z-index: 10;\r\n}\r\n\r\n.counter-text {\r\n font-weight: 500;\r\n}\r\n\r\n.close-btn {\r\n position: absolute;\r\n top: 20px;\r\n right: 20px;\r\n background: none;\r\n border: none;\r\n color: white;\r\n font-size: 24px;\r\n cursor: pointer;\r\n padding: 8px;\r\n border-radius: 50%;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n width: 40px;\r\n height: 40px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 10;\r\n transition: background-color 0.2s ease;\r\n \r\n &:hover {\r\n background-color: rgba(0, 0, 0, 0.7);\r\n }\r\n}\r\n\r\n.swiper-container {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n overflow: hidden;\r\n}\r\n\r\n.swiper-wrapper {\r\n display: flex;\r\n height: 100%;\r\n}\r\n\r\n.swiper-slide {\r\n flex-shrink: 0;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n overflow: hidden;\r\n}\r\n\r\n.image-container {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: grab;\r\n \r\n &:active {\r\n cursor: grabbing;\r\n }\r\n}\r\n\r\n.preview-image {\r\n max-width: 100%;\r\n max-height: 100%;\r\n object-fit: contain;\r\n transition: opacity 0.3s ease;\r\n}\r\n\r\n.nav-btn {\r\n position: absolute;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n background: none;\r\n border: none;\r\n color: white;\r\n font-size: 24px;\r\n cursor: pointer;\r\n padding: 12px;\r\n border-radius: 50%;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n width: 48px;\r\n height: 48px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 10;\r\n transition: background-color 0.2s ease, opacity 0.2s ease;\r\n \r\n &:hover:not(:disabled) {\r\n background-color: rgba(0, 0, 0, 0.7);\r\n }\r\n \r\n &:disabled {\r\n opacity: 0.3;\r\n cursor: not-allowed;\r\n }\r\n}\r\n\r\n.prev-btn {\r\n left: 20px;\r\n}\r\n\r\n.next-btn {\r\n right: 20px;\r\n}\r\n\r\n/* 动画效果 */\r\n@keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n</style>","<template>\r\n <!-- 主容器:负责显示滚动内容的可视区域 -->\r\n <!-- 添加了鼠标和触摸事件监听,用于实现拖拽功能 -->\r\n <div \r\n class=\"hbis-auto-scroll-list\" \r\n ref=\"containerRef\"\r\n :style=\"containerStyle\"\r\n @mousedown=\"handleMouseDown\"\r\n @touchstart=\"handleTouchStart\"\r\n @touchmove=\"handleTouchMove\"\r\n @touchend=\"handleTouchEnd\"\r\n >\r\n <!-- 滚动内容容器:实际包含所有列表项的容器,通过transform实现滚动效果 -->\r\n <div \r\n class=\"scroll-content\" \r\n ref=\"contentRef\"\r\n :style=\"contentStyle\"\r\n >\r\n <!-- 插槽:支持自定义列表项的内容和样式 -->\r\n <!-- 使用v-for遍历displayList,支持循环滚动 -->\r\n <slot name=\"item\" v-for=\"(item, index) in displayList\" :item=\"item\" :index=\"index\">\r\n <!-- 默认列表项样式 -->\r\n <div class=\"default-item\" :style=\"itemStyle\">\r\n {{ item }}\r\n </div>\r\n </slot>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\n// 导入Vue的响应式API\r\nimport { ref, computed, onMounted, onUnmounted, watch, nextTick } from 'vue';\r\n\r\n// 定义组件属性\r\nconst props = defineProps({\r\n // 列表数据数组\r\n data: {\r\n type: Array,\r\n default: () => []\r\n },\r\n // 滚动速度\r\n speed: {\r\n type: Number,\r\n default: 1\r\n },\r\n // 滚动方向:vertical(垂直)或horizontal(水平)\r\n direction: {\r\n type: String,\r\n default: 'vertical',\r\n validator: (value) => ['vertical', 'horizontal'].includes(value)\r\n },\r\n // 鼠标悬停是否暂停\r\n pauseOnHover: {\r\n type: Boolean,\r\n default: true\r\n },\r\n // 列表项高度(垂直滚动时使用)\r\n itemHeight: {\r\n type: Number,\r\n default: 40\r\n },\r\n // 列表项宽度(水平滚动时使用)\r\n itemWidth: {\r\n type: Number,\r\n default: 200\r\n },\r\n // 容器高度\r\n containerHeight: {\r\n type: [Number, String],\r\n default: 300\r\n },\r\n // 容器宽度\r\n containerWidth: {\r\n type: [Number, String],\r\n default: '100%'\r\n },\r\n // 是否循环滚动\r\n loop: {\r\n type: Boolean,\r\n default: true\r\n },\r\n // 自定义列表项类名\r\n customItemClass: {\r\n type: String,\r\n default: ''\r\n },\r\n // 自定义列表项样式\r\n itemStyle: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n});\r\n\r\n// 定义事件\r\nconst emit = defineEmits(['scroll', 'pause', 'resume', 'dragStart', 'dragEnd']);\r\n\r\n// 组件引用\r\nconst containerRef = ref(null); // 主容器引用\r\nconst contentRef = ref(null); // 滚动内容容器引用\r\n\r\n// 响应式数据\r\nconst isPaused = ref(false); // 是否暂停滚动\r\nconst animationFrameId = ref(null); // 动画帧ID,用于取消动画\r\nconst currentPosition = ref(0); // 当前滚动位置\r\nconst displayList = ref([]); // 显示的列表数据(循环模式下会复制一份)\r\n\r\n// 拖拽相关数据\r\nconst isDragging = ref(false); // 是否正在拖拽\r\nconst dragStartPos = ref(0); // 拖拽开始位置\r\nconst dragCurrentPos = ref(0); // 拖拽当前位置\r\nconst dragOffset = ref(0); // 拖拽偏移量\r\nconst wasPausedBeforeDrag = ref(false); // 拖拽前是否处于暂停状态\r\n\r\n// 计算属性:容器样式\r\nconst containerStyle = computed(() => ({\r\n // 动态设置容器高度和宽度\r\n height: typeof props.containerHeight === 'number' ? `${props.containerHeight}px` : props.containerHeight,\r\n width: typeof props.containerWidth === 'number' ? `${props.containerWidth}px` : props.containerWidth,\r\n overflow: 'hidden', // 隐藏超出部分\r\n position: 'relative' // 相对定位,为绝对定位的内容容器提供参考\r\n}));\r\n\r\n// 计算属性:滚动内容样式\r\nconst contentStyle = computed(() => {\r\n const style = {\r\n with:'100%',\r\n position: 'absolute', // 绝对定位,实现自由移动\r\n transition: 'none', // 禁用过渡,使用transform实现平滑滚动\r\n willChange: 'transform', // 告诉浏览器将要变化的属性,优化性能\r\n };\r\n \r\n // 根据滚动方向设置transform\r\n if (props.direction === 'vertical') {\r\n style.transform = `translateY(${currentPosition.value}px)`;\r\n } else {\r\n style.transform = `translateX(${currentPosition.value}px)`;\r\n }\r\n \r\n return style;\r\n});\r\n\r\n/**\r\n * 更新显示列表\r\n * 说明:如果是循环模式,会复制一份数据到displayList,实现无缝滚动效果\r\n */\r\nconst updateDisplayList = () => {\r\n if (!props.data || props.data.length === 0) {\r\n displayList.value = [];\r\n return;\r\n }\r\n \r\n if (props.loop) {\r\n // 循环模式:复制一份数据,实现无缝滚动\r\n displayList.value = [...props.data, ...props.data];\r\n } else {\r\n // 非循环模式:直接使用原数据\r\n displayList.value = [...props.data];\r\n }\r\n};\r\n\r\n/**\r\n * 动画函数\r\n * 说明:使用requestAnimationFrame实现平滑动画,避免使用setInterval导致的性能问题\r\n */\r\nconst animate = () => {\r\n // 如果暂停或正在拖拽,不执行动画\r\n if (isPaused.value || isDragging.value) {\r\n animationFrameId.value = requestAnimationFrame(animate);\r\n return;\r\n }\r\n \r\n const container = containerRef.value;\r\n const content = contentRef.value;\r\n \r\n // 如果容器不存在,不执行动画\r\n if (!container || !content) {\r\n animationFrameId.value = requestAnimationFrame(animate);\r\n return;\r\n }\r\n \r\n // 获取容器尺寸\r\n const containerSize = props.direction === 'vertical' \r\n ? container.offsetHeight \r\n : container.offsetWidth;\r\n \r\n // 获取列表项尺寸\r\n const itemSize = props.direction === 'vertical' \r\n ? props.itemHeight \r\n : props.itemWidth;\r\n \r\n // 计算总滚动尺寸\r\n const totalSize = itemSize * props.data.length;\r\n \r\n // 更新滚动位置\r\n currentPosition.value -= props.speed;\r\n \r\n // 处理循环滚动\r\n if (props.loop) {\r\n // 当滚动完一轮后,重置位置\r\n if (Math.abs(currentPosition.value) >= totalSize) {\r\n currentPosition.value = 0;\r\n }\r\n } else {\r\n // 处理非循环滚动\r\n const maxPosition = -(totalSize - containerSize);\r\n // 滚动到底部后暂停\r\n if (currentPosition.value <= maxPosition) {\r\n currentPosition.value = maxPosition;\r\n isPaused.value = true;\r\n emit('scroll', currentPosition.value);\r\n return;\r\n }\r\n }\r\n \r\n // 触发滚动事件\r\n emit('scroll', currentPosition.value);\r\n \r\n // 继续下一帧动画\r\n animationFrameId.value = requestAnimationFrame(animate);\r\n};\r\n\r\n/**\r\n * 开始动画\r\n * 说明:在启动新动画前,先取消之前的动画,避免内存泄漏\r\n */\r\nconst startAnimation = () => {\r\n if (animationFrameId.value) {\r\n cancelAnimationFrame(animationFrameId.value);\r\n }\r\n animationFrameId.value = requestAnimationFrame(animate);\r\n};\r\n\r\n/**\r\n * 停止动画\r\n * 说明:取消动画帧,释放资源\r\n */\r\nconst stopAnimation = () => {\r\n if (animationFrameId.value) {\r\n cancelAnimationFrame(animationFrameId.value);\r\n animationFrameId.value = null;\r\n }\r\n};\r\n\r\n/**\r\n * 暂停滚动\r\n */\r\nconst pause = () => {\r\n isPaused.value = true;\r\n emit('pause');\r\n};\r\n\r\n/**\r\n * 恢复滚动\r\n */\r\nconst resume = () => {\r\n isPaused.value = false;\r\n emit('resume');\r\n};\r\n\r\n/**\r\n * 处理鼠标进入事件\r\n */\r\nconst handleMouseEnter = () => {\r\n if (props.pauseOnHover) {\r\n pause();\r\n }\r\n};\r\n\r\n/**\r\n * 处理鼠标离开事件\r\n */\r\nconst handleMouseLeave = () => {\r\n // 只有在非拖拽状态下才恢复滚动\r\n if (props.pauseOnHover && !isDragging.value) {\r\n resume();\r\n }\r\n};\r\n\r\n/**\r\n * 处理鼠标按下事件\r\n * 说明:开始拖拽操作,记录初始状态\r\n */\r\nconst handleMouseDown = (e) => {\r\n // 标记为拖拽状态\r\n isDragging.value = true;\r\n // 记录拖拽前的暂停状态\r\n wasPausedBeforeDrag.value = isPaused.value;\r\n // 暂停滚动\r\n isPaused.value = true;\r\n \r\n // 记录拖拽开始位置\r\n dragStartPos.value = props.direction === 'vertical' ? e.clientY : e.clientX;\r\n dragCurrentPos.value = dragStartPos.value;\r\n // 记录当前滚动位置作为偏移量\r\n dragOffset.value = currentPosition.value;\r\n \r\n // 触发拖拽开始事件\r\n emit('dragStart');\r\n \r\n // 添加全局鼠标移动和释放事件监听\r\n document.addEventListener('mousemove', handleMouseMove);\r\n document.addEventListener('mouseup', handleMouseUp);\r\n};\r\n\r\n/**\r\n * 处理鼠标移动事件\r\n * 说明:更新拖拽位置,实现手动滚动\r\n */\r\nconst handleMouseMove = (e) => {\r\n if (!isDragging.value) return;\r\n \r\n // 计算拖拽当前位置\r\n dragCurrentPos.value = props.direction === 'vertical' ? e.clientY : e.clientX;\r\n // 计算拖拽距离\r\n const delta = dragCurrentPos.value - dragStartPos.value;\r\n \r\n // 更新滚动位置\r\n currentPosition.value = dragOffset.value + delta;\r\n \r\n const container = containerRef.value;\r\n const content = contentRef.value;\r\n \r\n // 边界检查\r\n if (container && content) {\r\n const containerSize = props.direction === 'vertical' \r\n ? container.offsetHeight \r\n : container.offsetWidth;\r\n \r\n const itemSize = props.direction === 'vertical' \r\n ? props.itemHeight \r\n : props.itemWidth;\r\n \r\n const totalSize = itemSize * props.data.length;\r\n \r\n // 循环模式的边界处理\r\n if (props.loop) {\r\n if (currentPosition.value > 0) {\r\n currentPosition.value = 0;\r\n } else if (Math.abs(currentPosition.value) > totalSize) {\r\n currentPosition.value = -totalSize;\r\n }\r\n } else {\r\n // 非循环模式的边界处理\r\n const maxPosition = -(totalSize - containerSize);\r\n if (currentPosition.value > 0) {\r\n currentPosition.value = 0;\r\n } else if (currentPosition.value < maxPosition) {\r\n currentPosition.value = maxPosition;\r\n }\r\n }\r\n }\r\n \r\n // 触发滚动事件\r\n emit('scroll', currentPosition.value);\r\n};\r\n\r\n/**\r\n * 处理鼠标释放事件\r\n * 说明:结束拖拽操作,恢复滚动状态\r\n */\r\nconst handleMouseUp = () => {\r\n if (!isDragging.value) return;\r\n \r\n // 标记为非拖拽状态\r\n isDragging.value = false;\r\n \r\n // 移除全局事件监听\r\n document.removeEventListener('mousemove', handleMouseMove);\r\n document.removeEventListener('mouseup', handleMouseUp);\r\n \r\n // 如果拖拽前不是暂停状态,恢复滚动\r\n if (!wasPausedBeforeDrag.value) {\r\n isPaused.value = false;\r\n }\r\n \r\n // 触发拖拽结束事件\r\n emit('dragEnd');\r\n};\r\n\r\n/**\r\n * 处理触摸开始事件\r\n * 说明:移动端触摸开始,逻辑与鼠标按下类似\r\n */\r\nconst handleTouchStart = (e) => {\r\n const touch = e.touches[0];\r\n isDragging.value = true;\r\n wasPausedBeforeDrag.value = isPaused.value;\r\n isPaused.value = true;\r\n \r\n dragStartPos.value = props.direction === 'vertical' ? touch.clientY : touch.clientX;\r\n dragCurrentPos.value = dragStartPos.value;\r\n dragOffset.value = currentPosition.value;\r\n \r\n emit('dragStart');\r\n};\r\n\r\n/**\r\n * 处理触摸移动事件\r\n * 说明:移动端触摸移动,逻辑与鼠标移动类似\r\n */\r\nconst handleTouchMove = (e) => {\r\n if (!isDragging.value) return;\r\n \r\n // 阻止默认行为,避免页面滚动\r\n e.preventDefault();\r\n \r\n const touch = e.touches[0];\r\n dragCurrentPos.value = props.direction === 'vertical' ? touch.clientY : touch.clientX;\r\n const delta = dragCurrentPos.value - dragStartPos.value;\r\n \r\n currentPosition.value = dragOffset.value + delta;\r\n \r\n const container = containerRef.value;\r\n const content = contentRef.value;\r\n \r\n // 边界检查\r\n if (container && content) {\r\n const containerSize = props.direction === 'vertical' \r\n ? container.offsetHeight \r\n : container.offsetWidth;\r\n \r\n const itemSize = props.direction === 'vertical' \r\n ? props.itemHeight \r\n : props.itemWidth;\r\n \r\n const totalSize = itemSize * props.data.length;\r\n \r\n // 循环模式的边界处理\r\n if (props.loop) {\r\n if (currentPosition.value > 0) {\r\n currentPosition.value = 0;\r\n } else if (Math.abs(currentPosition.value) > totalSize) {\r\n currentPosition.value = -totalSize;\r\n }\r\n } else {\r\n // 非循环模式的边界处理\r\n const maxPosition = -(totalSize - containerSize);\r\n if (currentPosition.value > 0) {\r\n currentPosition.value = 0;\r\n } else if (currentPosition.value < maxPosition) {\r\n currentPosition.value = maxPosition;\r\n }\r\n }\r\n }\r\n \r\n // 触发滚动事件\r\n emit('scroll', currentPosition.value);\r\n};\r\n\r\n/**\r\n * 处理触摸结束事件\r\n * 说明:移动端触摸结束,逻辑与鼠标释放类似\r\n */\r\nconst handleTouchEnd = () => {\r\n if (!isDragging.value) return;\r\n \r\n // 标记为非拖拽状态\r\n isDragging.value = false;\r\n \r\n // 如果拖拽前不是暂停状态,恢复滚动\r\n if (!wasPausedBeforeDrag.value) {\r\n isPaused.value = false;\r\n }\r\n \r\n // 触发拖拽结束事件\r\n emit('dragEnd');\r\n};\r\n\r\n/**\r\n * 滚动到指定位置\r\n */\r\nconst scrollTo = (position) => {\r\n currentPosition.value = position;\r\n};\r\n\r\n/**\r\n * 滚动到顶部\r\n */\r\nconst scrollToTop = () => {\r\n currentPosition.value = 0;\r\n};\r\n\r\n/**\r\n * 滚动到底部\r\n */\r\nconst scrollToBottom = () => {\r\n const container = containerRef.value;\r\n if (container) {\r\n const content = contentRef.value;\r\n if (content) {\r\n // 计算总高度和底部位置\r\n const totalSize = props.direction === 'vertical' \r\n ? content.offsetHeight \r\n : content.offsetWidth;\r\n currentPosition.value = -(totalSize - container.offsetHeight);\r\n }\r\n }\r\n};\r\n\r\n// 监听数据变化\r\nwatch(() => props.data, () => {\r\n // 数据变化时,更新显示列表并重置位置\r\n updateDisplayList();\r\n currentPosition.value = 0;\r\n}, { deep: true });\r\n\r\n// 监听速度变化\r\nwatch(() => props.speed, () => {\r\n // 速度变化时,重启动画以应用新速度\r\n if (!isPaused.value) {\r\n stopAnimation();\r\n startAnimation();\r\n }\r\n});\r\n\r\n// 组件挂载时\r\nonMounted(() => {\r\n // 更新显示列表\r\n updateDisplayList();\r\n \r\n // 等待DOM更新后启动动画\r\n nextTick(() => {\r\n startAnimation();\r\n \r\n // 添加鼠标悬停事件监听\r\n const container = containerRef.value;\r\n if (container) {\r\n container.addEventListener('mouseenter', handleMouseEnter);\r\n container.addEventListener('mouseleave', handleMouseLeave);\r\n }\r\n });\r\n});\r\n\r\n// 组件卸载时\r\nonUnmounted(() => {\r\n // 停止动画,释放资源\r\n stopAnimation();\r\n \r\n // 移除事件监听\r\n const container = containerRef.value;\r\n if (container) {\r\n container.removeEventListener('mouseenter', handleMouseEnter);\r\n container.removeEventListener('mouseleave', handleMouseLeave);\r\n }\r\n \r\n // 移除全局鼠标事件监听\r\n document.removeEventListener('mousemove', handleMouseMove);\r\n document.removeEventListener('mouseup', handleMouseUp);\r\n});\r\n\r\n// 暴露方法给父组件\r\n// 说明:通过defineExpose暴露组件内部方法,方便父组件控制\r\n// 这样设计的好处是:父组件可以通过ref直接调用这些方法,实现更灵活的控制\r\n// 例如:暂停/恢复滚动、滚动到指定位置等\r\n// 同时暴露isPaused和isDragging状态,方便父组件了解当前滚动状态\r\n// 这种设计符合Vue 3的组合式API风格,提供了清晰的组件通信方式\r\ndefineExpose({\r\n pause, // 暂停滚动\r\n resume, // 恢复滚动\r\n scrollTo, // 滚动到指定位置\r\n scrollToTop, // 滚动到顶部\r\n scrollToBottom,// 滚动到底部\r\n isPaused, // 是否暂停(响应式)\r\n isDragging // 是否正在拖拽(响应式)\r\n});\r\n</script>\r\n\r\n<style scoped>\r\n.hbis-auto-scroll-list {\r\n position: relative;\r\n overflow: hidden;\r\n user-select: none;\r\n \r\n width: 100%;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n touch-action: none;\r\n}\r\n\r\n.scroll-content {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n\r\n will-change: transform;\r\n cursor: grab;\r\n}\r\n\r\n.scroll-content:active {\r\n cursor: grabbing;\r\n}\r\n\r\n.default-item {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 0 10px;\r\n width: 100%;\r\n box-sizing: border-box;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n}\r\n\r\n/* 响应式设计 - 适配手机 */\r\n@media (max-width: 768px) {\r\n .hbis-auto-scroll-list {\r\n touch-action: pan-y;\r\n }\r\n\r\n .scroll-content {\r\n width: 100%;\r\n cursor: none;\r\n }\r\n\r\n .scroll-content:active {\r\n cursor: none;\r\n }\r\n\r\n .default-item {\r\n padding: 0 8px;\r\n font-size: 14px;\r\n }\r\n}\r\n\r\n/* 适配小屏幕手机 */\r\n@media (max-width: 480px) {\r\n .default-item {\r\n padding: 0 6px;\r\n font-size: 13px;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <div \r\n v-if=\"visible\" \r\n class=\"hbis-loading-container\" \r\n :class=\"{ 'touch-dismissible': touchDismiss }\"\r\n @click=\"handleContainerClick\"\r\n >\r\n <div class=\"hbis-loading-wrapper\" @click.stop>\r\n <!-- 自定义加载动画插槽 -->\r\n <slot name=\"spinner\">\r\n <div class=\"hbis-loading-spinner\" :class=\"spinnerType\">\r\n <div v-if=\"spinnerType === 'circular'\" class=\"circular-spinner\">\r\n <div class=\"circle\"></div>\r\n </div>\r\n <div v-else-if=\"spinnerType === 'dots'\" class=\"dots-spinner\">\r\n <div class=\"dot\"></div>\r\n <div class=\"dot\"></div>\r\n <div class=\"dot\"></div>\r\n </div>\r\n <div v-else-if=\"spinnerType === 'bars'\" class=\"bars-spinner\">\r\n <div class=\"bar\"></div>\r\n <div class=\"bar\"></div>\r\n <div class=\"bar\"></div>\r\n </div>\r\n </div>\r\n </slot>\r\n \r\n <!-- 加载文字 -->\r\n <div v-if=\"text\" class=\"hbis-loading-text\" :style=\"textStyle\">\r\n {{ text }}\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref, onMounted, onUnmounted, watch } from 'vue';\r\n\r\nconst props = defineProps({\r\n // 控制加载组件是否显示\r\n visible: {\r\n type: Boolean,\r\n default: false\r\n },\r\n // 是否允许触摸屏幕关闭加载\r\n touchDismiss: {\r\n type: Boolean,\r\n default: false\r\n },\r\n // 加载文字\r\n text: {\r\n type: String,\r\n default: ''\r\n },\r\n // 加载动画类型:circular, dots, bars\r\n spinnerType: {\r\n type: String,\r\n default: 'circular'\r\n },\r\n // 自定义文字样式\r\n textStyle: {\r\n type: Object,\r\n default: () => ({})\r\n },\r\n // 自定义容器样式\r\n containerStyle: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n});\r\n\r\nconst emit = defineEmits(['update:visible', 'close']);\r\n\r\n// 处理容器点击事件\r\nconst handleContainerClick = () => {\r\n if (props.touchDismiss) {\r\n emit('update:visible', false);\r\n emit('close');\r\n }\r\n};\r\n\r\n// 监听visible变化,确保组件正确显示/隐藏\r\nwatch(() => props.visible, (newVal) => {\r\n if (newVal) {\r\n // 显示时的处理\r\n document.body.style.overflow = 'hidden';\r\n } else {\r\n // 隐藏时的处理\r\n document.body.style.overflow = '';\r\n }\r\n});\r\n\r\n// 组件卸载时清理\r\nonUnmounted(() => {\r\n document.body.style.overflow = '';\r\n});\r\n\r\n// 暴露组件方法\r\ndefineExpose({\r\n show: () => emit('update:visible', true),\r\n hide: () => {\r\n emit('update:visible', false);\r\n emit('close');\r\n }\r\n});\r\n</script>\r\n\r\n<style scoped>\r\n.hbis-loading-container {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 9999;\r\n transition: opacity 0.3s ease;\r\n}\r\n\r\n.hbis-loading-container.touch-dismissible {\r\n cursor: pointer;\r\n}\r\n\r\n.hbis-loading-wrapper {\r\n background-color: rgba(0, 0, 0, 0.8);\r\n border-radius: 8px;\r\n padding: 24px;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n min-width: 120px;\r\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);\r\n}\r\n\r\n/* 加载动画样式 */\r\n.hbis-loading-spinner {\r\n margin-bottom: 16px;\r\n}\r\n\r\n/* 圆形加载动画 */\r\n.circular-spinner {\r\n position: relative;\r\n width: 40px;\r\n height: 40px;\r\n}\r\n\r\n.circular-spinner .circle {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n border: 3px solid rgba(255, 255, 255, 0.3);\r\n border-top-color: #ffffff;\r\n border-radius: 50%;\r\n animation: spin 1s linear infinite;\r\n}\r\n\r\n@keyframes spin {\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n}\r\n\r\n/* 点状加载动画 */\r\n.dots-spinner {\r\n display: flex;\r\n gap: 8px;\r\n}\r\n\r\n.dots-spinner .dot {\r\n width: 12px;\r\n height: 12px;\r\n border-radius: 50%;\r\n background-color: #ffffff;\r\n animation: pulse 1.4s ease-in-out infinite both;\r\n}\r\n\r\n.dots-spinner .dot:nth-child(1) {\r\n animation-delay: -0.32s;\r\n}\r\n\r\n.dots-spinner .dot:nth-child(2) {\r\n animation-delay: -0.16s;\r\n}\r\n\r\n@keyframes pulse {\r\n 0%, 80%, 100% {\r\n transform: scale(0);\r\n }\r\n 40% {\r\n transform: scale(1);\r\n }\r\n}\r\n\r\n/* 条状加载动画 */\r\n.bars-spinner {\r\n display: flex;\r\n gap: 4px;\r\n}\r\n\r\n.bars-spinner .bar {\r\n width: 8px;\r\n height: 32px;\r\n background-color: #ffffff;\r\n border-radius: 4px;\r\n animation: stretch 1.2s ease-in-out infinite;\r\n}\r\n\r\n.bars-spinner .bar:nth-child(1) {\r\n animation-delay: -1.2s;\r\n}\r\n\r\n.bars-spinner .bar:nth-child(2) {\r\n animation-delay: -1.1s;\r\n}\r\n\r\n.bars-spinner .bar:nth-child(3) {\r\n animation-delay: -1.0s;\r\n}\r\n\r\n@keyframes stretch {\r\n 0%, 40%, 100% {\r\n transform: scaleY(0.4);\r\n }\r\n 20% {\r\n transform: scaleY(1);\r\n }\r\n}\r\n\r\n/* 加载文字样式 */\r\n.hbis-loading-text {\r\n color: #ffffff;\r\n font-size: 14px;\r\n line-height: 1.4;\r\n text-align: center;\r\n min-height: 20px;\r\n}\r\n\r\n/* 响应式设计 */\r\n@media (max-width: 768px) {\r\n .hbis-loading-wrapper {\r\n padding: 20px;\r\n min-width: 100px;\r\n }\r\n \r\n .circular-spinner {\r\n width: 32px;\r\n height: 32px;\r\n }\r\n \r\n .circular-spinner .circle {\r\n border-width: 2px;\r\n }\r\n \r\n .dots-spinner .dot {\r\n width: 10px;\r\n height: 10px;\r\n }\r\n \r\n .bars-spinner .bar {\r\n width: 6px;\r\n height: 24px;\r\n }\r\n \r\n .hbis-loading-text {\r\n font-size: 12px;\r\n }\r\n}\r\n\r\n@media (max-width: 480px) {\r\n .hbis-loading-wrapper {\r\n padding: 16px;\r\n min-width: 80px;\r\n }\r\n \r\n .hbis-loading-spinner {\r\n margin-bottom: 12px;\r\n }\r\n \r\n .circular-spinner {\r\n width: 24px;\r\n height: 24px;\r\n }\r\n \r\n .dots-spinner .dot {\r\n width: 8px;\r\n height: 8px;\r\n }\r\n \r\n .bars-spinner .bar {\r\n width: 4px;\r\n height: 16px;\r\n }\r\n \r\n .hbis-loading-text {\r\n font-size: 11px;\r\n }\r\n}\r\n</style>","<template>\r\n\t<div class=\"parent-view\">\r\n\t\t<div class=\"input_view_sms_code\" :style=\"{'background':inputColor}\">\r\n\t\t\t<input type=\"text\" class='view_sms_code' placeholder-style=\"color:#999\" placeholder=\"请输入验证码\"\r\n\t\t\t\tv-model=\"smsCode\" :style=\"{'color':inputTextColor}\" />\r\n\t\t\t<div class=\"sms_code_btn\" :style=\"{'color':smsCodeBtnTextColor,'background':smsCodeBtnColor}\"\r\n\t\t\t\t@click=\"sendMessage\" v-if=\"!isSendSMS\" :class=\"{'disabled': !isSendSMS}\">{{num}} {{smsCodeTimeText}}</div>\r\n\t\t\t<div class=\"sms_code_btn\" :style=\"{'color':smsCodeBtnTextColor,'background':smsCodeBtnColor}\"\r\n\t\t\t\t@click=\"sendMessage\" v-if=\"isSendSMS\">{{smsCodeBtnText}}</div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<style scoped>\r\n.parent-view {\r\n\twidth: 100%;\r\n}\r\n\r\n.input_view_sms_code {\r\n\tdisplay: flex;\r\n\tflex-direction: row;\r\n\talign-items: center;\r\n\tjustify-content: space-between;\r\n\tcolor: #000;\r\n\tmargin-top: 20px;\r\n\tbackground-color: #F1F7FA;\r\n\twidth: 100%;\r\n\tborder-radius: 8px;\r\n\theight: 48px;\r\n\tpadding: 0 1px;\r\n\tbox-sizing: border-box;\r\n\tborder: 1px solid #e4e7ed;\r\n\ttransition: border-color 0.3s, box-shadow 0.3s;\r\n}\r\n\r\n.input_view_sms_code:focus-within {\r\n\tborder-color: #409eff;\r\n\tbox-shadow: 0 0 0 2px rgba(64, 158, 255, 0.2);\r\n}\r\n\r\n.view_sms_code {\r\n\tflex: 1;\r\n\tcolor: #333;\r\n\tbackground: transparent;\r\n\tborder: none;\r\n\toutline: none;\r\n\tfont-size: 14px;\r\n\tline-height: 1.5;\r\n\tpadding: 0 8px;\r\n}\r\n\r\n.view_sms_code::placeholder {\r\n\tcolor: #999;\r\n}\r\n\r\n.sms_code_btn {\r\n\tpadding: 8px 8px;\r\n\tborder: none;\r\n\tborder-radius: 4px;\r\n\tfont-size: 12px;\r\n\tfont-weight: 500;\r\n\tcursor: pointer;\r\n\ttransition: all 0.3s;\r\n\tmin-width: 100px;\r\n\tdisplay: inline-flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\toutline: none;\r\n}\r\n\r\n.sms_code_btn:hover {\r\n\topacity: 0.9;\r\n\ttransform: translateY(-1px);\r\n\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\r\n}\r\n\r\n.sms_code_btn:active {\r\n\ttransform: translateY(0);\r\n}\r\n\r\n.sms_code_btn.disabled {\r\n\topacity: 0.6;\r\n\tcursor: not-allowed;\r\n}\r\n\r\n.sms_code_btn.disabled:hover {\r\n\topacity: 0.6;\r\n\ttransform: none;\r\n\tbox-shadow: none;\r\n}\r\n</style>\r\n\r\n<script setup>\r\nimport { ref, onMounted } from 'vue';\r\n\r\n// 定义组件属性\r\nconst props = defineProps({\r\n\t/* 倒计时时间\r\n\t */\r\n\tcountDownTime: {\r\n\t\ttype: Number,\r\n\t\tdefault: 60\r\n\t},\r\n\t/* 输入框提示输入文本\r\n\t */\r\n\tinputPlacheHolder: {\r\n\t\ttype: String,\r\n\t\tdefault: '请输入验证码'\r\n\t},\r\n\t/* 输入框背景色\r\n\t */\r\n\tinputColor: {\r\n\t\ttype: String,\r\n\t\tdefault: \"#F1F7FA\",\r\n\t},\r\n\t/* 输入框输入文本颜色\r\n\t */\r\n\tinputTextColor: {\r\n\t\ttype: String,\r\n\t\tdefault: \"#000\",\r\n\t},\r\n\t/* 输入框提示文本颜色\r\n\t */\r\n\tinputPlacheHolderColor: {\r\n\t\ttype: String,\r\n\t\tdefault: \"#F00\",\r\n\t},\r\n\t/* 倒计时后拼接字符\r\n\t */\r\n\tsmsCodeTimeText: {\r\n\t\ttype: String,\r\n\t\tdefault: 's'\r\n\t},\r\n\t/* 发送验证码按钮文本\r\n\t */\r\n\tsmsCodeBtnText: {\r\n\t\ttype: String,\r\n\t\tdefault: '发送'\r\n\t},\r\n\t/* 发送验证码按钮颜色\r\n\t */\r\n\tsmsCodeBtnColor: {\r\n\t\ttype: String,\r\n\t\tdefault: \"#FFF\",\r\n\t},\r\n\t/* 发送验证码按钮文本颜色\r\n\t */\r\n\tsmsCodeBtnTextColor: {\r\n\t\ttype: String,\r\n\t\tdefault: \"#2E6DFF\"\r\n\t},\r\n});\r\n\r\n// 定义事件\r\nconst emit = defineEmits(['custom-event']);\r\n\r\n// 响应式数据\r\nconst isSendSMS = ref(true);\r\nconst smsCode = ref(\"\");\r\nconst num = ref(props.countDownTime);\r\n\r\n// 发送验证码方法\r\nconst sendMessage = () => {\r\n\tconsole.log('验证码isSendSMS:' + isSendSMS.value)\r\n\tif (!isSendSMS.value) {\r\n\t\t// 这里可以替换为Vue 3的提示组件或自定义提示\r\n\t\tconsole.log('请' + props.countDownTime + '秒后再重试。');\r\n\t\treturn;\r\n\t}\r\n\temit('custom-event'); // 触发事件\r\n\t// countDown(); // 开始倒计时\r\n};\r\n\r\n// 倒计时方法\r\nconst countDown = () => {\r\n\tnum.value = props.countDownTime;\r\n\tlet time = setInterval(() => {\r\n\t\tisSendSMS.value = false;\r\n\t\tnum.value--;\r\n\t\tif (num.value === 0) {\r\n\t\t\tisSendSMS.value = true;\r\n\t\t\tclearInterval(time);\r\n\t\t}\r\n\t}, 1000);\r\n};\r\n\r\n// 暴露方法给父组件\r\ndefineExpose({\r\n\tcountDown,\r\n\tsmsCode\r\n});\r\n</script>\r\n\r\n\r\n<style lang=\"scss\">\r\n\tpage {\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n\t.parent-view {\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n\t.input_view_sms_code {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: row;\r\n\t\talign-self: center;\r\n\t\talign-items: center;\r\n\t\tjustify-content: center;\r\n\t\tcolor: #000;\r\n\t\tmargin-top: 20px;\r\n\t\tbackground-color: #F1F7FA;\r\n\t\twidth: 100%;\r\n\t\tborder-radius: 20px;\r\n\t\theight: 80px;\r\n\r\n\t\t.view_sms_code {\r\n\t\t\talign-self: center;\r\n\t\t\tcolor: #000;\r\n\t\t\twidth: 70%;\r\n\t\t\tborder-radius: 20px;\r\n\t\t\theight: 80px;\r\n\t\t\tpadding-left: 10px;\r\n\t\t}\r\n\r\n\t\t.sms_code_btn {\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: row;\r\n\t\t\tjustify-content: center;\r\n\t\t\talign-items: center;\r\n\t\t\tbackground-color: #2E6DFF;\r\n\t\t\tborder-radius: 8px;\r\n\t\t\twidth: 20%;\r\n\t\t\talign-self: center;\r\n\t\t\tmargin-right: 2px;\r\n\t\t\ttext-align: center;\r\n\t\t\theight: 40px;\r\n\t\t\tfont-size: 14px;\r\n\t\t\tcolor: #fff;\r\n\t\t}\r\n\r\n\t\t.input_view_password_code {\r\n\t\t\talign-self: center;\r\n\t\t\tcolor: #000;\r\n\t\t\tbackground-color: #F1F7FA;\r\n\t\t\twidth: 80%;\r\n\t\t\tborder-radius: 20px;\r\n\t\t\theight: 80px;\r\n\t\t\tpadding-left: 10px;\r\n\t\t}\r\n\r\n\t\t.eye_img_btn {\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: row;\r\n\t\t\tjustify-content: center;\r\n\t\t\talign-items: center;\r\n\t\t\tbackground-color: #0000;\r\n\t\t\tborder-radius: 10px;\r\n\t\t\twidth: 28%;\r\n\t\t\talign-self: center;\r\n\t\t\tmargin-right: 10px;\r\n\t\t\ttext-align: center;\r\n\t\t\theight: 60px;\r\n\t\t\tfont-size: 26px;\r\n\t\t\tcolor: #2E6DFF;\r\n\r\n\t\t\t.eye_img {\r\n\t\t\t\twidth: 50px;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</style>","<template>\r\n <div ref=\"waterfallRef\">\r\n <div class=\"waterfall-debug\">\r\n 列数: {{ columnCount }}\r\n <br/>\r\n 数据总量: {{ data.length }}\r\n <br/>\r\n <template v-for=\"(column, index) in columns\" :key=\"index\">\r\n 列{{ index + 1 }}数据量: {{ column.items.length }}<br/>\r\n </template>\r\n </div>\r\n <div class=\"waterfall-container\">\r\n <!-- 动态生成列 -->\r\n <div \r\n v-for=\"(column, index) in columns\" \r\n :key=\"index\"\r\n class=\"waterfall-column\"\r\n >\r\n <div class=\"column-debug\">\r\n 列{{ index + 1 }}: {{ column.items.length }}个元素\r\n </div>\r\n <div \r\n v-for=\"(item, itemIndex) in column.items\" \r\n :key=\"item[itemKey] || `col${index}-${itemIndex}`\"\r\n class=\"waterfall-item\"\r\n >\r\n <template v-if=\"defaultSlot\">\r\n <div class=\"waterfall-item-with-slot\">\r\n <!-- 图片由组件控制 -->\r\n <img \r\n :src=\"item[imageKey]\" \r\n class=\"waterfall-image\"\r\n :style=\"{ height: calculateItemHeight(item) + 'px' }\"\r\n @load=\"handleImageLoad\"\r\n @error=\"handleImageError\"\r\n />\r\n <!-- 内容由父组件通过插槽控制 -->\r\n <div class=\"waterfall-content\">\r\n <slot :item=\"item\" :index=\"itemIndex\" />\r\n </div>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <img \r\n :src=\"item[imageKey]\" \r\n class=\"waterfall-image\"\r\n :style=\"{ height: calculateItemHeight(item) + 'px' }\"\r\n @load=\"handleImageLoad\"\r\n @error=\"handleImageError\"\r\n />\r\n </template>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref, computed, watch, onMounted, useSlots, watchEffect, useCssVars } from 'vue';\r\n\r\n// 组件引用\r\nconst slots = useSlots();\r\nconst waterfallRef = ref(null);\r\n\r\n// 组件名定义\r\ndefineOptions({\r\n name: 'HbisWaterfall'\r\n});\r\n\r\n// 属性定义\r\nconst props = defineProps({\r\n /**\r\n * 瀑布流数据\r\n */\r\n data: {\r\n type: Array,\r\n default: () => []\r\n },\r\n /**\r\n * 列数\r\n */\r\n column: {\r\n type: Number,\r\n default: 2,\r\n validator: (value) => value >= 2\r\n },\r\n /**\r\n * 最大列数\r\n */\r\n maxColumn: {\r\n type: Number,\r\n default: 5\r\n },\r\n /**\r\n * 列间距\r\n */\r\n columnGap: {\r\n type: [Number, String],\r\n default: 10\r\n },\r\n /**\r\n * 行间距\r\n */\r\n rowGap: {\r\n type: [Number, String],\r\n default: 10\r\n },\r\n /**\r\n * 数据唯一键\r\n */\r\n itemKey: {\r\n type: String,\r\n default: 'id'\r\n },\r\n /**\r\n * 图片字段名\r\n */\r\n imageKey: {\r\n type: String,\r\n default: 'url'\r\n }\r\n});\r\n\r\n// 事件定义\r\nconst emit = defineEmits(['load', 'error']);\r\n\r\n// 注入CSS变量\r\nuseCssVars(() => ({\r\n columnGap: String(props.columnGap) + 'px',\r\n rowGap: String(props.rowGap) + 'px'\r\n}));\r\n\r\n// 响应式数据\r\nconst columns = ref([]);\r\nconst columnCount = ref(2);\r\n\r\n// 计算属性\r\nconst defaultSlot = computed(() => {\r\n return slots.default !== undefined;\r\n});\r\n\r\n// 方法\r\n/**\r\n * 计算项目高度\r\n * @param {Object} item - 项目数据\r\n * @returns {number} - 项目高度\r\n */\r\nconst calculateItemHeight = (item) => {\r\n // 计算组件宽度\r\n let componentWidth = 1200; // 默认组件宽度1200px\r\n \r\n // 尝试获取组件的实际宽度\r\n if (waterfallRef.value) {\r\n componentWidth = waterfallRef.value.offsetWidth || 1200;\r\n }\r\n \r\n // 计算列数\r\n const actualColumn = Math.min(props.column, props.maxColumn);\r\n \r\n // 计算间隔\r\n const columnGap = parseInt(props.columnGap) || 10; // 默认列间距10px\r\n const rowGap = parseInt(props.rowGap) || 10; // 默认行间距10px\r\n \r\n // 计算每个项目的宽度\r\n const itemWidth = (componentWidth - (actualColumn - 1) * columnGap) / actualColumn;\r\n \r\n \r\n // 否则,使用默认宽高比计算高度\r\n return 200 + Math.floor(Math.random() * 100) + 20; // 默认宽高比 4:3 + 随机数(10到30)\r\n};\r\n\r\n/**\r\n * 刷新数据,分配到多列\r\n */\r\nconst refresh = () => {\r\n console.log('开始分配数据,总数据量:', props.data.length);\r\n \r\n // 计算实际列数\r\n const actualColumn = Math.min(props.column, props.maxColumn);\r\n columnCount.value = actualColumn;\r\n \r\n // 初始化列数组\r\n const newColumns = [];\r\n for (let i = 0; i < actualColumn; i++) {\r\n newColumns.push({\r\n items: [],\r\n height: 0\r\n });\r\n }\r\n columns.value = newColumns;\r\n \r\n // 分配数据,根据每列的高度来分配\r\n props.data.forEach((item, index) => {\r\n // 计算项目高度\r\n const itemHeight = calculateItemHeight(item);\r\n \r\n // 找到高度最小的列\r\n let minHeight = Infinity;\r\n let minColumnIndex = 0;\r\n for (let i = 0; i < actualColumn; i++) {\r\n if (columns.value[i].height < minHeight) {\r\n minHeight = columns.value[i].height;\r\n minColumnIndex = i;\r\n }\r\n }\r\n \r\n // 将数据分配到高度较小的列中\r\n columns.value[minColumnIndex].items.push(item);\r\n columns.value[minColumnIndex].height += itemHeight;\r\n console.log('分配数据到列:', { itemIndex: index, columnIndex: minColumnIndex, itemHeight, columnHeight: columns.value[minColumnIndex].height });\r\n });\r\n \r\n // 打印分配结果\r\n console.log('分配完成,各列数据量:', columns.value.map((col, idx) => `列${idx+1}: ${col.items.length}个`));\r\n console.log('分配完成,各列高度:', columns.value.map((col, idx) => `列${idx+1}: ${col.height}px`));\r\n};\r\n\r\n/**\r\n * 处理图片加载\r\n */\r\nconst handleImageLoad = (event) => {\r\n emit('load', event);\r\n};\r\n\r\n/**\r\n * 处理图片错误\r\n */\r\nconst handleImageError = (event) => {\r\n emit('error', event);\r\n};\r\n\r\n// 监听数据变化\r\nwatch(() => props.data, () => {\r\n console.log('数据变化,重新分配数据');\r\n refresh();\r\n}, { deep: true });\r\n\r\n// 监听列数变化\r\nwatch(() => [props.column, props.maxColumn], () => {\r\n console.log('列数变化,更新列数');\r\n columnCount.value = Math.min(props.column, props.maxColumn);\r\n refresh();\r\n});\r\n\r\n// 监听间距变化\r\nwatch(() => [props.columnGap, props.rowGap], () => {\r\n console.log('间距变化,重新计算高度和分配数据');\r\n refresh();\r\n});\r\n\r\n\r\n// 组件挂载\r\nonMounted(() => {\r\n console.log('===== 组件挂载 =====');\r\n console.log('组件挂载,初始化数据');\r\n console.log('初始数据量:', props.data.length);\r\n try {\r\n refresh();\r\n console.log('===== 组件挂载完成 =====');\r\n } catch (error) {\r\n console.error('refresh函数执行失败:', error);\r\n console.log('===== 组件挂载失败 =====');\r\n }\r\n});\r\n\r\n// 暴露方法\r\ndefineExpose({\r\n refresh\r\n});\r\n</script>\r\n\r\n<style scoped>\r\n.waterfall-debug {\r\n background-color: #f0f0f0;\r\n padding: 10px;\r\n margin-bottom: 10px;\r\n border-radius: 4px;\r\n}\r\n\r\n.waterfall-container {\r\n display: flex;\r\n gap: var(--columnGap);\r\n width: 100%;\r\n}\r\n\r\n.waterfall-column {\r\n flex: 1;\r\n min-width: 0;\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--rowGap);\r\n}\r\n\r\n.column-debug {\r\n background-color: #e0e0e0;\r\n padding: 5px;\r\n border-radius: 4px;\r\n font-size: 12px;\r\n}\r\n\r\n.waterfall-item {\r\n width: 100%;\r\n}\r\n\r\n.waterfall-image {\r\n width: 100%;\r\n height: auto;\r\n display: block;\r\n}\r\n\r\n.waterfall-item-with-slot {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n}\r\n\r\n.waterfall-content {\r\n padding: 10px;\r\n background-color: white;\r\n border-radius: 0 0 4px 4px;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\r\n}\r\n</style>","/*!\n * svga.lite\n * \n * Version: 1.6.1\n * Document: https://github.com/svga/SVGAPlayer-Web-Lite\n * (c) 2019 YY.SVGA\n * Released under the MIT License.\n */\n!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.SVGA=t():e.SVGA=t()}(window,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=1)}([function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e,t,r){this._d=e,this._transform=t,this._styles=r};t.default=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(2),o=r(3),i=r(4),s={Downloader:n.default,Parser:o.default,Player:i.default};t.default=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){this.request=null}return e.prototype.get=function(e){var t=this;if(!e)throw new Error(\"download link undefined\");return new Promise(function(r,n){var o=new XMLHttpRequest;o.open(\"GET\",e,!0),o.responseType=\"arraybuffer\",o.onloadend=function(){!o.response||200!==o.status&&304!==o.status?n(o):r(o.response)},o.onerror=function(){return n(o.response)},o.send(),t.request=o})},e.prototype.cancel=function(){this.request&&this.request.abort()},e.prototype.destroy=function(){this.request&&this.request.abort()},e}();t.default=n},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var WORKER=\"!function(t){var e={};function r(i){if(e[i])return e[i].exports;var s=e[i]={i:i,l:!1,exports:{}};return t[i].call(s.exports,s,s.exports,r),s.l=!0,s.exports}r.m=t,r.c=e,r.d=function(t,e,i){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},r.r=function(t){\\\"undefined\\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\\\"Module\\\"}),Object.defineProperty(t,\\\"__esModule\\\",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&\\\"object\\\"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,\\\"default\\\",{enumerable:!0,value:t}),2&e&&\\\"string\\\"!=typeof t)for(var s in t)r.d(i,s,function(e){return t[e]}.bind(null,s));return i},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,\\\"a\\\",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p=\\\"\\\",r(r.s=8)}([function(t,e,r){\\\"use strict\\\";var i=t.exports=r(6);i.codegen=r(16),i.toArray=function(t){if(t){for(var e=Object.keys(t),r=new Array(e.length),i=0;i<e.length;)r[i]=t[e[i++]];return r}return[]};var s=/\\\\\\\\/g,n=/\\\"/g;i.isReserved=function(t){return/^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(t)},i.safeProp=function(t){return!/^[$\\\\w_]+$/.test(t)||i.isReserved(t)?'[\\\"'+t.replace(s,\\\"\\\\\\\\\\\\\\\\\\\").replace(n,'\\\\\\\\\\\"')+'\\\"]':\\\".\\\"+t}},function(t,e,r){\\\"use strict\\\";t.exports=h;var i=r(2);((h.prototype=Object.create(i.prototype)).constructor=h).className=\\\"Field\\\";var s,n=r(3),o=r(5),a=r(0),f=/^required|optional|repeated$/;function h(t,e,r,s,n,h,l){if(a.isObject(s)?(l=n,h=s,s=n=void 0):a.isObject(n)&&(l=h,h=n,n=void 0),i.call(this,t,h),!a.isInteger(e)||e<0)throw TypeError(\\\"id must be a non-negative integer\\\");if(!a.isString(r))throw TypeError(\\\"type must be a string\\\");if(void 0!==s&&!f.test(s=s.toString().toLowerCase()))throw TypeError(\\\"rule must be a string rule\\\");if(void 0!==n&&!a.isString(n))throw TypeError(\\\"extend must be a string\\\");this.rule=s&&\\\"optional\\\"!==s?s:void 0,this.type=r,this.id=e,this.extend=n||void 0,this.required=\\\"required\\\"===s,this.optional=!this.required,this.repeated=\\\"repeated\\\"===s,this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=!!a.Long&&void 0!==o.long[r],this.bytes=\\\"bytes\\\"===r,this.resolvedType=null,this.extensionField=null,this.declaringField=null,this._packed=null,this.comment=l}h.fromJSON=function(t,e){return new h(t,e.id,e.type,e.rule,e.extend,e.options,e.comment)},h.prototype.setOption=function(t,e,r){return\\\"packed\\\"===t&&(this._packed=null),i.prototype.setOption.call(this,t,e,r)},h.prototype.resolve=function(){if(this.resolved)return this;if(void 0===(this.typeDefault=o.defaults[this.type])&&(this.resolvedType=(this.declaringField?this.declaringField.parent:this.parent).lookupTypeOrEnum(this.type),this.resolvedType instanceof s?this.typeDefault=null:this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]),this.options&&null!=this.options.default&&(this.typeDefault=this.options.default,this.resolvedType instanceof n&&\\\"string\\\"==typeof this.typeDefault&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&(!0!==this.options.packed&&(void 0===this.options.packed||!this.resolvedType||this.resolvedType instanceof n)||delete this.options.packed,Object.keys(this.options).length||(this.options=void 0)),this.long)this.typeDefault=a.Long.fromNumber(this.typeDefault,\\\"u\\\"===this.type.charAt(0)),Object.freeze&&Object.freeze(this.typeDefault);else if(this.bytes&&\\\"string\\\"==typeof this.typeDefault){var t;a.base64.test(this.typeDefault)?a.base64.decode(this.typeDefault,t=a.newBuffer(a.base64.length(this.typeDefault)),0):a.utf8.write(this.typeDefault,t=a.newBuffer(a.utf8.length(this.typeDefault)),0),this.typeDefault=t}return this.map?this.defaultValue=a.emptyObject:this.repeated?this.defaultValue=a.emptyArray:this.defaultValue=this.typeDefault,this.parent instanceof s&&(this.parent.ctor.prototype[this.name]=this.defaultValue),i.prototype.resolve.call(this)},h._configure=function(t){s=t}},function(t,e,r){\\\"use strict\\\";var i;function s(t,e){this.options=e,this.name=t,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}t.exports=s,s.className=\\\"ReflectionObject\\\",s.prototype.onAdd=function(t){this.parent&&this.parent!==t&&this.parent.remove(this),this.parent=t,this.resolved=!1;var e=t.root;e instanceof i&&e._handleAdd(this)},s.prototype.resolve=function(){return this.resolved?this:(this.root instanceof i&&(this.resolved=!0),this)},s.prototype.getOption=function(t){if(this.options)return this.options[t]},s._configure=function(t){i=t}},function(t,e,r){\\\"use strict\\\";t.exports=s;var i=r(2);function s(t,e,r,s,n){if(i.call(this,t,r),e&&\\\"object\\\"!=typeof e)throw TypeError(\\\"values must be an object\\\");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=s,this.comments=n||{},this.reserved=void 0,e)for(var o=Object.keys(e),a=0;a<o.length;++a)\\\"number\\\"==typeof e[o[a]]&&(this.valuesById[this.values[o[a]]=e[o[a]]]=o[a])}((s.prototype=Object.create(i.prototype)).constructor=s).className=\\\"Enum\\\",s.fromJSON=function(t,e){var r=new s(t,e.values,e.options,e.comment,e.comments);return r.reserved=e.reserved,r}},function(t,e,r){\\\"use strict\\\";t.exports=h;var i=r(2);((h.prototype=Object.create(i.prototype)).constructor=h).className=\\\"Namespace\\\";var s,n,o,a=r(1),f=r(0);function h(t,e){i.call(this,t,e),this.nested=void 0,this._nestedArray=null}h.fromJSON=function(t,e){return new h(t,e.options).addJSON(e.nested)},h.isReservedId=function(t,e){if(t)for(var r=0;r<t.length;++r)if(\\\"string\\\"!=typeof t[r]&&t[r][0]<=e&&t[r][1]>=e)return!0;return!1},h.isReservedName=function(t,e){if(t)for(var r=0;r<t.length;++r)if(t[r]===e)return!0;return!1},Object.defineProperty(h.prototype,\\\"nestedArray\\\",{get:function(){return this._nestedArray||(this._nestedArray=f.toArray(this.nested))}}),h.prototype.addJSON=function(t){if(t)for(var e,r=Object.keys(t),i=0;i<r.length;++i)e=t[r[i]],this.add((void 0!==e.fields?s.fromJSON:void 0!==e.values?o.fromJSON:void 0!==e.methods?n.fromJSON:void 0!==e.id?a.fromJSON:h.fromJSON)(r[i],e));return this},h.prototype.get=function(t){return this.nested&&this.nested[t]||null},h.prototype.add=function(t){if(!(t instanceof a&&void 0!==t.extend||t instanceof s||t instanceof o||t instanceof n||t instanceof h))throw TypeError(\\\"object must be a valid nested object\\\");if(this.nested){var e=this.get(t.name);if(e){if(!(e instanceof h&&t instanceof h)||e instanceof s||e instanceof n)throw Error(\\\"duplicate name '\\\"+t.name+\\\"' in \\\"+this);for(var r=e.nestedArray,i=0;i<r.length;++i)t.add(r[i]);this.remove(e),this.nested||(this.nested={}),t.setOptions(e.options,!0)}}else this.nested={};return this.nested[t.name]=t,t.onAdd(this),(f=this)._nestedArray=null,f;var f},h.prototype.lookup=function(t,e,r){if(\\\"boolean\\\"==typeof e?(r=e,e=void 0):e&&!Array.isArray(e)&&(e=[e]),f.isString(t)&&t.length){if(\\\".\\\"===t)return this.root;t=t.split(\\\".\\\")}else if(!t.length)return this;if(\\\"\\\"===t[0])return this.root.lookup(t.slice(1),e);var i=this.get(t[0]);if(i){if(1===t.length){if(!e||e.indexOf(i.constructor)>-1)return i}else if(i instanceof h&&(i=i.lookup(t.slice(1),e,!0)))return i}else for(var s=0;s<this.nestedArray.length;++s)if(this._nestedArray[s]instanceof h&&(i=this._nestedArray[s].lookup(t,e,!0)))return i;return null===this.parent||r?null:this.parent.lookup(t,e)},h.prototype.lookupType=function(t){var e=this.lookup(t,[s]);if(!e)throw Error(\\\"no such type: \\\"+t);return e},h.prototype.lookupTypeOrEnum=function(t){var e=this.lookup(t,[s,o]);if(!e)throw Error(\\\"no such Type or Enum '\\\"+t+\\\"' in \\\"+this);return e},h._configure=function(t,e,r){s=t,n=e,o=r}},function(t,e,r){\\\"use strict\\\";var i=e,s=r(0),n=[\\\"double\\\",\\\"float\\\",\\\"int32\\\",\\\"uint32\\\",\\\"sint32\\\",\\\"fixed32\\\",\\\"sfixed32\\\",\\\"int64\\\",\\\"uint64\\\",\\\"sint64\\\",\\\"fixed64\\\",\\\"sfixed64\\\",\\\"bool\\\",\\\"string\\\",\\\"bytes\\\"];function o(t,e){var r=0,i={};for(e|=0;r<t.length;)i[n[r+e]]=t[r++];return i}i.basic=o([1,5,0,0,0,5,5,0,0,0,1,1,0,2,2]),i.defaults=o([0,0,0,0,0,0,0,0,0,0,0,0,!1,\\\"\\\",s.emptyArray,null]),i.long=o([0,0,0,1,1],7),i.mapKey=o([0,0,0,5,5,0,0,0,1,1,0,2],2),i.packed=o([1,5,0,0,0,5,5,0,0,0,1,1,0])},function(t,e,r){\\\"use strict\\\";var i=e;i.float=r(14),i.utf8=r(15),i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(t){return\\\"number\\\"==typeof t&&isFinite(t)&&Math.floor(t)===t},i.isString=function(t){return\\\"string\\\"==typeof t||t instanceof String},i.isObject=function(t){return t&&\\\"object\\\"==typeof t},i.Array=\\\"undefined\\\"!=typeof Uint8Array?Uint8Array:Array,i._configure=function(){var t=i.Buffer;t?(i._Buffer_from=t.from!==Uint8Array.from&&t.from||function(e,r){return new t(e,r)},i._Buffer_allocUnsafe=t.allocUnsafe||function(e){return new t(e)}):i._Buffer_from=i._Buffer_allocUnsafe=null}},function(t,e,r){\\\"use strict\\\";t.exports=s;var i=r(4);function s(t,e){i.call(this,t,e),this.methods={},this._methodsArray=null}((s.prototype=Object.create(i.prototype)).constructor=s).className=\\\"Service\\\"},function(t,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0}),r(9);var i,s=r(10),n=r(23),o=r(24),a=r(25),f=r(26);self.document?((i=self.SVGAParserMockWorker={}).disableWorker=!0,i.postMessage=function(t){i.onmessageCallback&&i.onmessageCallback(t)}):i=self;var h=s.Root.fromJSON(n.default).lookupType(\\\"com.opensource.svga.MovieEntity\\\");i.onmessage=function(t){var e=new o.Zlib.Inflate(new Uint8Array(t.data)).decompress(),r=h.decode(e),s={};for(var n in r.images){var l=r.images[n],u=a.default(l);s[n]=btoa(u)}var p=new f.default(r,s);i.postMessage(p)}},function(t,e,r){\\\"use strict\\\";var i=\\\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\\";!self.btoa&&(self.btoa=function(t){for(var e,r,s,n,o=\\\"\\\",a=0,f=(t=String(t)).length%3;a<t.length;){if((r=t.charCodeAt(a++))>255||(s=t.charCodeAt(a++))>255||(n=t.charCodeAt(a++))>255)throw new TypeError(\\\"Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.\\\");o+=i.charAt((e=r<<16|s<<8|n)>>18&63)+i.charAt(e>>12&63)+i.charAt(e>>6&63)+i.charAt(63&e)}return f?o.slice(0,f-3)+\\\"===\\\".substring(f):o})},function(t,e,r){\\\"use strict\\\";t.exports=r(11)},function(t,e,r){\\\"use strict\\\";(t.exports=r(12)).build=\\\"full\\\"},function(t,e,r){\\\"use strict\\\";var i=t.exports=r(13);i.build=\\\"light\\\",i.ReflectionObject=r(2),i.Namespace=r(4),i.Root=r(17),i.Enum=r(3),i.Type=r(19),i.Field=r(1),i.Service=r(7),i.ReflectionObject._configure(i.Root),i.Namespace._configure(i.Type,i.Service,i.Enum),i.Root._configure(i.Type),i.Field._configure(i.Type)},function(t,e,r){\\\"use strict\\\";e.build=\\\"minimal\\\"},function(t,e,r){\\\"use strict\\\";function i(t){return\\\"undefined\\\"!=typeof Float32Array?function(){var e=new Float32Array([-0]),r=new Uint8Array(e.buffer),i=128===r[3];function s(t,i,s){e[0]=t,i[s]=r[0],i[s+1]=r[1],i[s+2]=r[2],i[s+3]=r[3]}function n(t,i,s){e[0]=t,i[s]=r[3],i[s+1]=r[2],i[s+2]=r[1],i[s+3]=r[0]}function o(t,i){return r[0]=t[i],r[1]=t[i+1],r[2]=t[i+2],r[3]=t[i+3],e[0]}function a(t,i){return r[3]=t[i],r[2]=t[i+1],r[1]=t[i+2],r[0]=t[i+3],e[0]}t.writeFloatLE=i?s:n,t.writeFloatBE=i?n:s,t.readFloatLE=i?o:a,t.readFloatBE=i?a:o}():function(){function e(t,e,r,i){var s=e<0?1:0;if(s&&(e=-e),0===e)t(1/e>0?0:2147483648,r,i);else if(isNaN(e))t(2143289344,r,i);else if(e>34028234663852886e22)t((s<<31|2139095040)>>>0,r,i);else if(e<11754943508222875e-54)t((s<<31|Math.round(e/1401298464324817e-60))>>>0,r,i);else{var n=Math.floor(Math.log(e)/Math.LN2);t((s<<31|n+127<<23|8388607&Math.round(e*Math.pow(2,-n)*8388608))>>>0,r,i)}}function r(t,e,r){var i=t(e,r),s=2*(i>>31)+1,n=i>>>23&255,o=8388607&i;return 255===n?o?NaN:s*(1/0):0===n?1401298464324817e-60*s*o:s*Math.pow(2,n-150)*(o+8388608)}t.writeFloatLE=e.bind(null,s),t.writeFloatBE=e.bind(null,n),t.readFloatLE=r.bind(null,o),t.readFloatBE=r.bind(null,a)}(),\\\"undefined\\\"!=typeof Float64Array?function(){var e=new Float64Array([-0]),r=new Uint8Array(e.buffer),i=128===r[7];function s(t,i,s){e[0]=t,i[s]=r[0],i[s+1]=r[1],i[s+2]=r[2],i[s+3]=r[3],i[s+4]=r[4],i[s+5]=r[5],i[s+6]=r[6],i[s+7]=r[7]}function n(t,i,s){e[0]=t,i[s]=r[7],i[s+1]=r[6],i[s+2]=r[5],i[s+3]=r[4],i[s+4]=r[3],i[s+5]=r[2],i[s+6]=r[1],i[s+7]=r[0]}function o(t,i){return r[0]=t[i],r[1]=t[i+1],r[2]=t[i+2],r[3]=t[i+3],r[4]=t[i+4],r[5]=t[i+5],r[6]=t[i+6],r[7]=t[i+7],e[0]}function a(t,i){return r[7]=t[i],r[6]=t[i+1],r[5]=t[i+2],r[4]=t[i+3],r[3]=t[i+4],r[2]=t[i+5],r[1]=t[i+6],r[0]=t[i+7],e[0]}t.writeDoubleLE=i?s:n,t.writeDoubleBE=i?n:s,t.readDoubleLE=i?o:a,t.readDoubleBE=i?a:o}():function(){function e(t,e,r,i,s,n){var o=i<0?1:0;if(o&&(i=-i),0===i)t(0,s,n+e),t(1/i>0?0:2147483648,s,n+r);else if(isNaN(i))t(0,s,n+e),t(2146959360,s,n+r);else if(i>17976931348623157e292)t(0,s,n+e),t((o<<31|2146435072)>>>0,s,n+r);else{var a;if(i<22250738585072014e-324)t((a=i/5e-324)>>>0,s,n+e),t((o<<31|a/4294967296)>>>0,s,n+r);else{var f=Math.floor(Math.log(i)/Math.LN2);1024===f&&(f=1023),t(4503599627370496*(a=i*Math.pow(2,-f))>>>0,s,n+e),t((o<<31|f+1023<<20|1048576*a&1048575)>>>0,s,n+r)}}}function r(t,e,r,i,s){var n=t(i,s+e),o=t(i,s+r),a=2*(o>>31)+1,f=o>>>20&2047,h=4294967296*(1048575&o)+n;return 2047===f?h?NaN:a*(1/0):0===f?5e-324*a*h:a*Math.pow(2,f-1075)*(h+4503599627370496)}t.writeDoubleLE=e.bind(null,s,0,4),t.writeDoubleBE=e.bind(null,n,4,0),t.readDoubleLE=r.bind(null,o,0,4),t.readDoubleBE=r.bind(null,a,4,0)}(),t}function s(t,e,r){e[r]=255&t,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function n(t,e,r){e[r]=t>>>24,e[r+1]=t>>>16&255,e[r+2]=t>>>8&255,e[r+3]=255&t}function o(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}function a(t,e){return(t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3])>>>0}t.exports=i(i)},function(t,e,r){\\\"use strict\\\";var i=e;i.length=function(t){for(var e=0,r=0,i=0;i<t.length;++i)(r=t.charCodeAt(i))<128?e+=1:r<2048?e+=2:55296==(64512&r)&&56320==(64512&t.charCodeAt(i+1))?(++i,e+=4):e+=3;return e},i.read=function(t,e,r){if(r-e<1)return\\\"\\\";for(var i,s=null,n=[],o=0;e<r;)(i=t[e++])<128?n[o++]=i:i>191&&i<224?n[o++]=(31&i)<<6|63&t[e++]:i>239&&i<365?(i=((7&i)<<18|(63&t[e++])<<12|(63&t[e++])<<6|63&t[e++])-65536,n[o++]=55296+(i>>10),n[o++]=56320+(1023&i)):n[o++]=(15&i)<<12|(63&t[e++])<<6|63&t[e++],o>8191&&((s||(s=[])).push(String.fromCharCode.apply(String,n)),o=0);return s?(o&&s.push(String.fromCharCode.apply(String,n.slice(0,o))),s.join(\\\"\\\")):String.fromCharCode.apply(String,n.slice(0,o))},i.write=function(t,e,r){for(var i,s,n=r,o=0;o<t.length;++o)(i=t.charCodeAt(o))<128?e[r++]=i:i<2048?(e[r++]=i>>6|192,e[r++]=63&i|128):55296==(64512&i)&&56320==(64512&(s=t.charCodeAt(o+1)))?(i=65536+((1023&i)<<10)+(1023&s),++o,e[r++]=i>>18|240,e[r++]=i>>12&63|128,e[r++]=i>>6&63|128,e[r++]=63&i|128):(e[r++]=i>>12|224,e[r++]=i>>6&63|128,e[r++]=63&i|128);return r-n}},function(t,e,r){\\\"use strict\\\";function i(t,e){\\\"string\\\"==typeof t&&(e=t,t=void 0);var r=[];function s(t){if(\\\"string\\\"!=typeof t){var e=n();if(i.verbose&&console.log(\\\"codegen: \\\"+e),e=\\\"return \\\"+e,t){for(var o=Object.keys(t),a=new Array(o.length+1),f=new Array(o.length),h=0;h<o.length;)a[h]=o[h],f[h]=t[o[h++]];return a[h]=e,Function.apply(null,a).apply(null,f)}return Function(e)()}for(var l=new Array(arguments.length-1),u=0;u<l.length;)l[u]=arguments[++u];if(u=0,t=t.replace(/%([%dfijs])/g,function(t,e){var r=l[u++];switch(e){case\\\"d\\\":case\\\"f\\\":return String(Number(r));case\\\"i\\\":return String(Math.floor(r));case\\\"j\\\":return JSON.stringify(r);case\\\"s\\\":return String(r)}return\\\"%\\\"}),u!==l.length)throw Error(\\\"parameter count mismatch\\\");return r.push(t),s}function n(i){return\\\"function \\\"+(i||e||\\\"\\\")+\\\"(\\\"+(t&&t.join(\\\",\\\")||\\\"\\\")+\\\"){\\\\n \\\"+r.join(\\\"\\\\n \\\")+\\\"\\\\n}\\\"}return s.toString=n,s}t.exports=i,i.verbose=!1},function(t,e,r){\\\"use strict\\\";t.exports=f;var i=r(4);((f.prototype=Object.create(i.prototype)).constructor=f).className=\\\"Root\\\";var s,n=r(1),o=r(3),a=r(18);function f(t){i.call(this,\\\"\\\",t),this.deferred=[],this.files=[]}f.fromJSON=function(t,e){return e||(e=new f),t.options&&e.setOptions(t.options),e.addJSON(t.nested)};var h=/^[A-Z]/;function l(t,e){var r=e.parent.lookup(e.extend);if(r){var i=new n(e.fullName,e.id,e.type,e.rule,void 0,e.options);return i.declaringField=e,e.extensionField=i,r.add(i),!0}return!1}f.prototype._handleAdd=function(t){if(t instanceof n)void 0===t.extend||t.extensionField||l(0,t)||this.deferred.push(t);else if(t instanceof o)h.test(t.name)&&(t.parent[t.name]=t.values);else if(!(t instanceof a)){if(t instanceof s)for(var e=0;e<this.deferred.length;)l(0,this.deferred[e])?this.deferred.splice(e,1):++e;for(var r=0;r<t.nestedArray.length;++r)this._handleAdd(t._nestedArray[r]);h.test(t.name)&&(t.parent[t.name]=t)}},f._configure=function(t,e,r){s=t,e,r}},function(t,e,r){\\\"use strict\\\";t.exports=o;var i=r(2);((o.prototype=Object.create(i.prototype)).constructor=o).className=\\\"OneOf\\\";var s=r(1),n=r(0);function o(t,e,r,s){if(Array.isArray(e)||(r=e,e=void 0),i.call(this,t,r),void 0!==e&&!Array.isArray(e))throw TypeError(\\\"fieldNames must be an Array\\\");this.oneof=e||[],this.fieldsArray=[],this.comment=s}function a(t){if(t.parent)for(var e=0;e<t.fieldsArray.length;++e)t.fieldsArray[e].parent||t.parent.add(t.fieldsArray[e])}o.fromJSON=function(t,e){return new o(t,e.oneof,e.options,e.comment)},o.prototype.toJSON=function(t){var e=!!t&&Boolean(t.keepComments);return n.toObject([\\\"options\\\",this.options,\\\"oneof\\\",this.oneof,\\\"comment\\\",e?this.comment:void 0])},o.prototype.add=function(t){if(!(t instanceof s))throw TypeError(\\\"field must be a Field\\\");return t.parent&&t.parent!==this.parent&&t.parent.remove(t),this.oneof.push(t.name),this.fieldsArray.push(t),t.partOf=this,a(this),this},o.prototype.remove=function(t){if(!(t instanceof s))throw TypeError(\\\"field must be a Field\\\");var e=this.fieldsArray.indexOf(t);if(e<0)throw Error(t+\\\" is not a member of \\\"+this);return this.fieldsArray.splice(e,1),(e=this.oneof.indexOf(t.name))>-1&&this.oneof.splice(e,1),t.partOf=null,this},o.prototype.onAdd=function(t){i.prototype.onAdd.call(this,t);for(var e=0;e<this.oneof.length;++e){var r=t.get(this.oneof[e]);r&&!r.partOf&&(r.partOf=this,this.fieldsArray.push(r))}a(this)},o.prototype.onRemove=function(t){for(var e,r=0;r<this.fieldsArray.length;++r)(e=this.fieldsArray[r]).parent&&e.parent.remove(e);i.prototype.onRemove.call(this,t)},o.d=function(){for(var t=new Array(arguments.length),e=0;e<arguments.length;)t[e]=arguments[e++];return function(e,r){n.decorateType(e.constructor).add(new o(r,t)),Object.defineProperty(e,r,{get:n.oneOfGetter(t),set:n.oneOfSetter(t)})}}},function(t,e,r){\\\"use strict\\\";t.exports=u;var i=r(4);((u.prototype=Object.create(i.prototype)).constructor=u).className=\\\"Type\\\";var s=r(3),n=r(1),o=r(20),a=r(7),f=r(21),h=r(0),l=r(22);function u(t,e){i.call(this,t,e),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this._fieldsById=null,this._fieldsArray=null,this._oneofsArray=null,this._ctor=null}Object.defineProperties(u.prototype,{fieldsById:{get:function(){if(this._fieldsById)return this._fieldsById;this._fieldsById={};for(var t=Object.keys(this.fields),e=0;e<t.length;++e){var r=this.fields[t[e]],i=r.id;if(this._fieldsById[i])throw Error(\\\"duplicate id \\\"+i+\\\" in \\\"+this);this._fieldsById[i]=r}return this._fieldsById}},fieldsArray:{get:function(){return this._fieldsArray||(this._fieldsArray=h.toArray(this.fields))}},oneofsArray:{get:function(){return this._oneofsArray||(this._oneofsArray=h.toArray(this.oneofs))}},ctor:{get:function(){return this._ctor||(this.ctor=u.generateConstructor(this)())},set:function(t){t.prototype;t.$type=t.prototype.$type=this,this._ctor=t;for(var e=0;e<this.fieldsArray.length;++e)this._fieldsArray[e].resolve();var r={};for(e=0;e<this.oneofsArray.length;++e)r[this._oneofsArray[e].resolve().name]={get:h.oneOfGetter(this._oneofsArray[e].oneof),set:h.oneOfSetter(this._oneofsArray[e].oneof)};e&&Object.defineProperties(t.prototype,r)}}}),u.generateConstructor=function(t){for(var e,r=h.codegen([\\\"p\\\"],t.name),i=0;i<t.fieldsArray.length;++i)(e=t._fieldsArray[i]).map?r(\\\"this%s={}\\\",h.safeProp(e.name)):e.repeated&&r(\\\"this%s=[]\\\",h.safeProp(e.name));return r(\\\"if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)\\\")(\\\"this[ks[i]]=p[ks[i]]\\\")},u.fromJSON=function(t,e){var r=new u(t,e.options);r.extensions=e.extensions,r.reserved=e.reserved;for(var f=Object.keys(e.fields),h=0;h<f.length;++h)r.add((void 0!==e.fields[f[h]].keyType?o.fromJSON:n.fromJSON)(f[h],e.fields[f[h]]));if(e.nested)for(f=Object.keys(e.nested),h=0;h<f.length;++h){var l=e.nested[f[h]];r.add((void 0!==l.id?n.fromJSON:void 0!==l.fields?u.fromJSON:void 0!==l.values?s.fromJSON:void 0!==l.methods?a.fromJSON:i.fromJSON)(f[h],l))}return e.extensions&&e.extensions.length&&(r.extensions=e.extensions),e.reserved&&e.reserved.length&&(r.reserved=e.reserved),e.group&&(r.group=!0),e.comment&&(r.comment=e.comment),r},u.prototype.add=function(t){if(this.get(t.name))throw Error(\\\"duplicate name '\\\"+t.name+\\\"' in \\\"+this);if(t instanceof n&&void 0===t.extend){if(this._fieldsById?this._fieldsById[t.id]:this.fieldsById[t.id])throw Error(\\\"duplicate id \\\"+t.id+\\\" in \\\"+this);if(this.isReservedId(t.id))throw Error(\\\"id \\\"+t.id+\\\" is reserved in \\\"+this);if(this.isReservedName(t.name))throw Error(\\\"name '\\\"+t.name+\\\"' is reserved in \\\"+this);return t.parent&&t.parent.remove(t),this.fields[t.name]=t,t.message=this,t.onAdd(this),(e=this)._fieldsById=e._fieldsArray=e._oneofsArray=null,delete e.encode,delete e.decode,delete e.verify,e}var e;return i.prototype.add.call(this,t)},u.prototype.isReservedId=function(t){return i.isReservedId(this.reserved,t)},u.prototype.isReservedName=function(t){return i.isReservedName(this.reserved,t)},u.prototype.setup=function(){this.fullName;for(var t=[],e=0;e<this.fieldsArray.length;++e)t.push(this._fieldsArray[e].resolve().resolvedType);return this.decode=l(this)({Reader:f,types:t,util:h}),this},u.prototype.decode=function(t,e){return this.setup().decode(t,e)}},function(t,e,r){\\\"use strict\\\";t.exports=n;var i=r(1);((n.prototype=Object.create(i.prototype)).constructor=n).className=\\\"MapField\\\";r(5);var s=r(0);function n(t,e,r,n,o,a){if(i.call(this,t,e,n,void 0,void 0,o,a),!s.isString(r))throw TypeError(\\\"keyType must be a string\\\");this.keyType=r,this.resolvedKeyType=null,this.map=!0}n.fromJSON=function(t,e){return new n(t,e.id,e.keyType,e.type,e.options,e.comment)}},function(t,e,r){\\\"use strict\\\";t.exports=o;var i=r(6),s=(i.LongBits,i.utf8);function n(t,e){return RangeError(\\\"index out of range: \\\"+t.pos+\\\" + \\\"+(e||1)+\\\" > \\\"+t.len)}function o(t){this.buf=t,this.pos=0,this.len=t.length}var a,f=\\\"undefined\\\"!=typeof Uint8Array?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new o(t);throw Error(\\\"illegal buffer\\\")}:function(t){if(Array.isArray(t))return new o(t);throw Error(\\\"illegal buffer\\\")};function h(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}o.create=i.Buffer?function(t){return(o.create=function(t){return i.Buffer.isBuffer(t)?new(void 0)(t):f(t)})(t)}:f,o.prototype._slice=i.Array.prototype.subarray||i.Array.prototype.slice,o.prototype.uint32=(a=4294967295,function(){if(a=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return a;if(a=(a|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return a;if(a=(a|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return a;if(a=(a|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return a;if(a=(a|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return a;if((this.pos+=5)>this.len)throw this.pos=this.len,n(this,10);return a}),o.prototype.int32=function(){return 0|this.uint32()},o.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(1&t)|0},o.prototype.bool=function(){return 0!==this.uint32()},o.prototype.fixed32=function(){if(this.pos+4>this.len)throw n(this,4);return h(this.buf,this.pos+=4)},o.prototype.sfixed32=function(){if(this.pos+4>this.len)throw n(this,4);return 0|h(this.buf,this.pos+=4)},o.prototype.float=function(){if(this.pos+4>this.len)throw n(this,4);var t=i.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t},o.prototype.double=function(){if(this.pos+8>this.len)throw n(this,4);var t=i.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t},o.prototype.bytes=function(){var t=this.uint32(),e=this.pos,r=this.pos+t;if(r>this.len)throw n(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(e,r):e===r?new this.buf.constructor(0):this._slice.call(this.buf,e,r)},o.prototype.string=function(){var t=this.bytes();return s.read(t,0,t.length)},o.prototype.skip=function(t){if(\\\"number\\\"==typeof t){if(this.pos+t>this.len)throw n(this,t);this.pos+=t}else do{if(this.pos>=this.len)throw n(this)}while(128&this.buf[this.pos++]);return this},o.prototype.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(t=7&this.uint32());)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(\\\"invalid wire type \\\"+t+\\\" at offset \\\"+this.pos)}return this}},function(t,e,r){\\\"use strict\\\";t.exports=function(t){var e=n.codegen([\\\"r\\\",\\\"l\\\"],t.name+\\\"$decode\\\")(\\\"if(!(r instanceof Reader))\\\")(\\\"r=Reader.create(r)\\\")(\\\"var c=l===undefined?r.len:r.pos+l,m=new this.ctor\\\"+(t.fieldsArray.filter(function(t){return t.map}).length?\\\",k\\\":\\\"\\\"))(\\\"while(r.pos<c){\\\")(\\\"var t=r.uint32()\\\");t.group&&e(\\\"if((t&7)===4)\\\")(\\\"break\\\");e(\\\"switch(t>>>3){\\\");for(var r=0;r<t.fieldsArray.length;++r){var a=t._fieldsArray[r].resolve(),f=a.resolvedType instanceof i?\\\"int32\\\":a.type,h=\\\"m\\\"+n.safeProp(a.name);e(\\\"case %i:\\\",a.id),a.map?(e(\\\"r.skip().pos++\\\")(\\\"if(%s===util.emptyObject)\\\",h)(\\\"%s={}\\\",h)(\\\"k=r.%s()\\\",a.keyType)(\\\"r.pos++\\\"),void 0!==s.long[a.keyType]?void 0===s.basic[f]?e('%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%i].decode(r,r.uint32())',h,r):e('%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()',h,f):void 0===s.basic[f]?e(\\\"%s[k]=types[%i].decode(r,r.uint32())\\\",h,r):e(\\\"%s[k]=r.%s()\\\",h,f)):a.repeated?(e(\\\"if(!(%s&&%s.length))\\\",h,h)(\\\"%s=[]\\\",h),void 0!==s.packed[f]&&e(\\\"if((t&7)===2){\\\")(\\\"var c2=r.uint32()+r.pos\\\")(\\\"while(r.pos<c2)\\\")(\\\"%s.push(r.%s())\\\",h,f)(\\\"}else\\\"),void 0===s.basic[f]?e(a.resolvedType.group?\\\"%s.push(types[%i].decode(r))\\\":\\\"%s.push(types[%i].decode(r,r.uint32()))\\\",h,r):e(\\\"%s.push(r.%s())\\\",h,f)):void 0===s.basic[f]?e(a.resolvedType.group?\\\"%s=types[%i].decode(r)\\\":\\\"%s=types[%i].decode(r,r.uint32())\\\",h,r):e(\\\"%s=r.%s()\\\",h,f),e(\\\"break\\\")}for(e(\\\"default:\\\")(\\\"r.skipType(t&7)\\\")(\\\"break\\\")(\\\"}\\\")(\\\"}\\\"),r=0;r<t._fieldsArray.length;++r){var l=t._fieldsArray[r];l.required&&e(\\\"if(!m.hasOwnProperty(%j))\\\",l.name)(\\\"throw util.ProtocolError(%j,{instance:m})\\\",o(l))}return e(\\\"return m\\\")};var i=r(3),s=r(5),n=r(0);function o(t){return\\\"missing required '\\\"+t.name+\\\"'\\\"}},function(t,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0}),e.default={nested:{com:{nested:{opensource:{nested:{svga:{options:{objc_class_prefix:\\\"SVGAProto\\\",java_package:\\\"com.opensource.svgaplayer\\\"},nested:{MovieParams:{fields:{viewBoxWidth:{type:\\\"float\\\",id:1},viewBoxHeight:{type:\\\"float\\\",id:2},fps:{type:\\\"int32\\\",id:3},frames:{type:\\\"int32\\\",id:4}}},SpriteEntity:{fields:{imageKey:{type:\\\"string\\\",id:1},frames:{rule:\\\"repeated\\\",type:\\\"FrameEntity\\\",id:2}}},Layout:{fields:{x:{type:\\\"float\\\",id:1},y:{type:\\\"float\\\",id:2},width:{type:\\\"float\\\",id:3},height:{type:\\\"float\\\",id:4}}},Transform:{fields:{a:{type:\\\"float\\\",id:1},b:{type:\\\"float\\\",id:2},c:{type:\\\"float\\\",id:3},d:{type:\\\"float\\\",id:4},tx:{type:\\\"float\\\",id:5},ty:{type:\\\"float\\\",id:6}}},ShapeEntity:{oneofs:{args:{oneof:[\\\"shape\\\",\\\"rect\\\",\\\"ellipse\\\"]}},fields:{type:{type:\\\"ShapeType\\\",id:1},shape:{type:\\\"ShapeArgs\\\",id:2},rect:{type:\\\"RectArgs\\\",id:3},ellipse:{type:\\\"EllipseArgs\\\",id:4},styles:{type:\\\"ShapeStyle\\\",id:10},transform:{type:\\\"Transform\\\",id:11}},nested:{ShapeType:{values:{SHAPE:0,RECT:1,ELLIPSE:2,KEEP:3}},ShapeArgs:{fields:{d:{type:\\\"string\\\",id:1}}},RectArgs:{fields:{x:{type:\\\"float\\\",id:1},y:{type:\\\"float\\\",id:2},width:{type:\\\"float\\\",id:3},height:{type:\\\"float\\\",id:4},cornerRadius:{type:\\\"float\\\",id:5}}},EllipseArgs:{fields:{x:{type:\\\"float\\\",id:1},y:{type:\\\"float\\\",id:2},radiusX:{type:\\\"float\\\",id:3},radiusY:{type:\\\"float\\\",id:4}}},ShapeStyle:{fields:{fill:{type:\\\"RGBAColor\\\",id:1},stroke:{type:\\\"RGBAColor\\\",id:2},strokeWidth:{type:\\\"float\\\",id:3},lineCap:{type:\\\"LineCap\\\",id:4},lineJoin:{type:\\\"LineJoin\\\",id:5},miterLimit:{type:\\\"float\\\",id:6},lineDashI:{type:\\\"float\\\",id:7},lineDashII:{type:\\\"float\\\",id:8},lineDashIII:{type:\\\"float\\\",id:9}},nested:{RGBAColor:{fields:{r:{type:\\\"float\\\",id:1},g:{type:\\\"float\\\",id:2},b:{type:\\\"float\\\",id:3},a:{type:\\\"float\\\",id:4}}},LineCap:{values:{LineCap_BUTT:0,LineCap_ROUND:1,LineCap_SQUARE:2}},LineJoin:{values:{LineJoin_MITER:0,LineJoin_ROUND:1,LineJoin_BEVEL:2}}}}}},FrameEntity:{fields:{alpha:{type:\\\"float\\\",id:1},layout:{type:\\\"Layout\\\",id:2},transform:{type:\\\"Transform\\\",id:3},clipPath:{type:\\\"string\\\",id:4},shapes:{rule:\\\"repeated\\\",type:\\\"ShapeEntity\\\",id:5}}},MovieEntity:{fields:{version:{type:\\\"string\\\",id:1},params:{type:\\\"MovieParams\\\",id:2},images:{keyType:\\\"string\\\",type:\\\"bytes\\\",id:3},sprites:{rule:\\\"repeated\\\",type:\\\"SpriteEntity\\\",id:4}}}}}}}}}}}},function(t,e){\\n/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */\\n(function(){\\\"use strict\\\";var t=void 0,e=this;function r(r,i){var s,n=r.split(\\\".\\\"),o=e;!(n[0]in o)&&o.execScript&&o.execScript(\\\"var \\\"+n[0]);for(;n.length&&(s=n.shift());)n.length||i===t?o=o[s]?o[s]:o[s]={}:o[s]=i}var i=\\\"undefined\\\"!=typeof Uint8Array&&\\\"undefined\\\"!=typeof Uint16Array&&\\\"undefined\\\"!=typeof Uint32Array&&\\\"undefined\\\"!=typeof DataView;function s(t){var e,r,s,n,o,a,f,h,l,u,p=t.length,d=0,c=Number.POSITIVE_INFINITY;for(h=0;h<p;++h)t[h]>d&&(d=t[h]),t[h]<c&&(c=t[h]);for(e=1<<d,r=new(i?Uint32Array:Array)(e),s=1,n=0,o=2;s<=d;){for(h=0;h<p;++h)if(t[h]===s){for(a=0,f=n,l=0;l<s;++l)a=a<<1|1&f,f>>=1;for(u=s<<16|h,l=a;l<e;l+=o)r[l]=u;++n}++s,n<<=1,o<<=1}return[r,d,c]}function n(t,e){switch(this.g=[],this.h=32768,this.d=this.f=this.a=this.l=0,this.input=i?new Uint8Array(t):t,this.m=!1,this.i=a,this.r=!1,!e&&(e={})||(e.index&&(this.a=e.index),e.bufferSize&&(this.h=e.bufferSize),e.bufferType&&(this.i=e.bufferType),e.resize&&(this.r=e.resize)),this.i){case o:this.b=32768,this.c=new(i?Uint8Array:Array)(32768+this.h+258);break;case a:this.b=0,this.c=new(i?Uint8Array:Array)(this.h),this.e=this.z,this.n=this.v,this.j=this.w;break;default:throw Error(\\\"invalid inflate mode\\\")}}var o=0,a=1,f={t:o,s:a};n.prototype.k=function(){for(;!this.m;){var e=S(this,3);switch(1&e&&(this.m=!0),e>>>=1){case 0:var r=this.input,n=this.a,f=this.c,h=this.b,l=r.length,u=t,d=f.length,c=t;if(this.d=this.f=0,n+1>=l)throw Error(\\\"invalid uncompressed block header: LEN\\\");if(u=r[n++]|r[n++]<<8,n+1>=l)throw Error(\\\"invalid uncompressed block header: NLEN\\\");if(u===~(r[n++]|r[n++]<<8))throw Error(\\\"invalid uncompressed block header: length verify\\\");if(n+u>r.length)throw Error(\\\"input buffer is broken\\\");switch(this.i){case o:for(;h+u>f.length;){if(u-=c=d-h,i)f.set(r.subarray(n,n+c),h),h+=c,n+=c;else for(;c--;)f[h++]=r[n++];this.b=h,f=this.e(),h=this.b}break;case a:for(;h+u>f.length;)f=this.e({p:2});break;default:throw Error(\\\"invalid inflate mode\\\")}if(i)f.set(r.subarray(n,n+u),h),h+=u,n+=u;else for(;u--;)f[h++]=r[n++];this.a=n,this.b=h,this.c=f;break;case 1:this.j(_,x);break;case 2:var y,v,m,b,g=S(this,5)+257,A=S(this,5)+1,w=S(this,4)+4,k=new(i?Uint8Array:Array)(p.length),O=t,E=t,T=t,N=t,I=t;for(I=0;I<w;++I)k[p[I]]=S(this,3);if(!i)for(I=w,w=k.length;I<w;++I)k[p[I]]=0;for(y=s(k),O=new(i?Uint8Array:Array)(g+A),I=0,b=g+A;I<b;)switch(E=j(this,y),E){case 16:for(N=3+S(this,2);N--;)O[I++]=T;break;case 17:for(N=3+S(this,3);N--;)O[I++]=0;T=0;break;case 18:for(N=11+S(this,7);N--;)O[I++]=0;T=0;break;default:T=O[I++]=E}v=s(i?O.subarray(0,g):O.slice(0,g)),m=s(i?O.subarray(g):O.slice(g)),this.j(v,m);break;default:throw Error(\\\"unknown BTYPE: \\\"+e)}}return this.n()};var h,l,u=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],p=i?new Uint16Array(u):u,d=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258],c=i?new Uint16Array(d):d,y=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0],v=i?new Uint8Array(y):y,m=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],b=i?new Uint16Array(m):m,g=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],A=i?new Uint8Array(g):g,w=new(i?Uint8Array:Array)(288);for(h=0,l=w.length;h<l;++h)w[h]=143>=h?8:255>=h?9:279>=h?7:8;var k,O,_=s(w),E=new(i?Uint8Array:Array)(30);for(k=0,O=E.length;k<O;++k)E[k]=5;var x=s(E);function S(t,e){for(var r,i=t.f,s=t.d,n=t.input,o=t.a,a=n.length;s<e;){if(o>=a)throw Error(\\\"input buffer is broken\\\");i|=n[o++]<<s,s+=8}return r=i&(1<<e)-1,t.f=i>>>e,t.d=s-e,t.a=o,r}function j(t,e){for(var r,i,s=t.f,n=t.d,o=t.input,a=t.a,f=o.length,h=e[0],l=e[1];n<l&&!(a>=f);)s|=o[a++]<<n,n+=8;if((i=(r=h[s&(1<<l)-1])>>>16)>n)throw Error(\\\"invalid code length: \\\"+i);return t.f=s>>i,t.d=n-i,t.a=a,65535&r}function T(t,e){var r,i;switch(this.input=t,this.a=0,!e&&(e={})||(e.index&&(this.a=e.index),e.verify&&(this.A=e.verify)),r=t[this.a++],i=t[this.a++],15&r){case N:this.method=N;break;default:throw Error(\\\"unsupported compression method\\\")}if(0!=((r<<8)+i)%31)throw Error(\\\"invalid fcheck flag:\\\"+((r<<8)+i)%31);if(32&i)throw Error(\\\"fdict flag is not supported\\\");this.q=new n(t,{index:this.a,bufferSize:e.bufferSize,bufferType:e.bufferType,resize:e.resize})}n.prototype.j=function(t,e){var r=this.c,i=this.b;this.o=t;for(var s,n,o,a,f=r.length-258;256!==(s=j(this,t));)if(256>s)i>=f&&(this.b=i,r=this.e(),i=this.b),r[i++]=s;else for(a=c[n=s-257],0<v[n]&&(a+=S(this,v[n])),s=j(this,e),o=b[s],0<A[s]&&(o+=S(this,A[s])),i>=f&&(this.b=i,r=this.e(),i=this.b);a--;)r[i]=r[i++-o];for(;8<=this.d;)this.d-=8,this.a--;this.b=i},n.prototype.w=function(t,e){var r=this.c,i=this.b;this.o=t;for(var s,n,o,a,f=r.length;256!==(s=j(this,t));)if(256>s)i>=f&&(f=(r=this.e()).length),r[i++]=s;else for(a=c[n=s-257],0<v[n]&&(a+=S(this,v[n])),s=j(this,e),o=b[s],0<A[s]&&(o+=S(this,A[s])),i+a>f&&(f=(r=this.e()).length);a--;)r[i]=r[i++-o];for(;8<=this.d;)this.d-=8,this.a--;this.b=i},n.prototype.e=function(){var t,e,r=new(i?Uint8Array:Array)(this.b-32768),s=this.b-32768,n=this.c;if(i)r.set(n.subarray(32768,r.length));else for(t=0,e=r.length;t<e;++t)r[t]=n[t+32768];if(this.g.push(r),this.l+=r.length,i)n.set(n.subarray(s,s+32768));else for(t=0;32768>t;++t)n[t]=n[s+t];return this.b=32768,n},n.prototype.z=function(t){var e,r,s,n=this.input.length/this.a+1|0,o=this.input,a=this.c;return t&&(\\\"number\\\"==typeof t.p&&(n=t.p),\\\"number\\\"==typeof t.u&&(n+=t.u)),2>n?r=(s=(o.length-this.a)/this.o[2]/2*258|0)<a.length?a.length+s:a.length<<1:r=a.length*n,i?(e=new Uint8Array(r)).set(a):e=a,this.c=e},n.prototype.n=function(){var t,e,r,s,n,o=0,a=this.c,f=this.g,h=new(i?Uint8Array:Array)(this.l+(this.b-32768));if(0===f.length)return i?this.c.subarray(32768,this.b):this.c.slice(32768,this.b);for(e=0,r=f.length;e<r;++e)for(s=0,n=(t=f[e]).length;s<n;++s)h[o++]=t[s];for(e=32768,r=this.b;e<r;++e)h[o++]=a[e];return this.g=[],this.buffer=h},n.prototype.v=function(){var t,e=this.b;return i?this.r?(t=new Uint8Array(e)).set(this.c.subarray(0,e)):t=this.c.subarray(0,e):(this.c.length>e&&(this.c.length=e),t=this.c),this.buffer=t},T.prototype.k=function(){var t,e,r=this.input;if(t=this.q.k(),this.a=this.q.a,this.A){e=(r[this.a++]<<24|r[this.a++]<<16|r[this.a++]<<8|r[this.a++])>>>0;var i=t;if(\\\"string\\\"==typeof i){var s,n,o=i.split(\\\"\\\");for(s=0,n=o.length;s<n;s++)o[s]=(255&o[s].charCodeAt(0))>>>0;i=o}for(var a,f=1,h=0,l=i.length,u=0;0<l;){l-=a=1024<l?1024:l;do{h+=f+=i[u++]}while(--a);f%=65521,h%=65521}if(e!==(h<<16|f)>>>0)throw Error(\\\"invalid adler-32 checksum\\\")}return t};var N=8;r(\\\"Zlib.Inflate\\\",T),r(\\\"Zlib.Inflate.prototype.decompress\\\",T.prototype.k);var I,B,F,D,M={ADAPTIVE:f.s,BLOCK:f.t};if(Object.keys)I=Object.keys(M);else for(B in I=[],F=0,M)I[F++]=B;for(F=0,D=I.length;F<D;++F)r(\\\"Zlib.Inflate.BufferType.\\\"+(B=I[F]),M[B])}).call(this)},function(t,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0}),e.default=function(t){for(var e=[],r=0;r<t.length;r+=32768)e.push(String.fromCharCode.apply(null,t.subarray(r,r+32768)));return e.join(\\\"\\\")}},function(t,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0});var i=r(27),s=function(t,e){this.videoSize={width:0,height:0},this.images={},this.dynamicElements={},this.sprites=[],this.version=t.version,this.videoSize.width=t.params.viewBoxWidth||0,this.videoSize.height=t.params.viewBoxHeight||0,this.FPS=t.params.fps||20,this.frames=t.params.frames||0,t.sprites instanceof Array&&(this.sprites=t.sprites.map(function(t){return new i.default(t)})),e&&(this.images=e)};e.default=s},function(t,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0});var i=r(28),s=function(t){this.frames=[],this.imageKey=t.imageKey,t.frames&&(this.frames=t.frames.map(function(t){return new i.default(t)}))};e.default=s},function(t,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0});var i=r(29),s=function(t,e,r,i,s,n){return{a:t,b:e,c:r,d:i,tx:s,ty:n}},n=function(t,e,r,i){return{x:t,y:e,width:r,height:i}},o=function(){function t(e){this.alpha=0,this.transform=s(1,0,0,1,0,0),this.nx=0,this.ny=0,this.layout=n(0,0,0,0),this.shapes=[],this.alpha=parseFloat(e.alpha)||0,e.layout&&(this.layout=n(parseFloat(e.layout.x)||0,parseFloat(e.layout.y)||0,parseFloat(e.layout.width)||0,parseFloat(e.layout.height)||0)),e.transform&&(this.transform=s(parseFloat(e.transform.a)||1,parseFloat(e.transform.b)||0,parseFloat(e.transform.c)||0,parseFloat(e.transform.d)||1,parseFloat(e.transform.tx)||0,parseFloat(e.transform.ty)||0)),e.clipPath&&e.clipPath.length>0&&(this.maskPath=new i.default(e.clipPath,void 0,{fill:\\\"#000000\\\"})),e.shapes&&(e.shapes instanceof Array&&e.shapes.forEach(function(t){switch(t.pathArgs=t.args,t.type){case 0:t.type=\\\"shape\\\",t.pathArgs=t.shape;break;case 1:t.type=\\\"rect\\\",t.pathArgs=t.rect;break;case 2:t.type=\\\"ellipse\\\",t.pathArgs=t.ellipse;break;case 3:t.type=\\\"keep\\\"}if(t.styles){t.styles.fill&&(\\\"number\\\"==typeof t.styles.fill.r&&(t.styles.fill[0]=t.styles.fill.r),\\\"number\\\"==typeof t.styles.fill.g&&(t.styles.fill[1]=t.styles.fill.g),\\\"number\\\"==typeof t.styles.fill.b&&(t.styles.fill[2]=t.styles.fill.b),\\\"number\\\"==typeof t.styles.fill.a&&(t.styles.fill[3]=t.styles.fill.a)),t.styles.stroke&&(\\\"number\\\"==typeof t.styles.stroke.r&&(t.styles.stroke[0]=t.styles.stroke.r),\\\"number\\\"==typeof t.styles.stroke.g&&(t.styles.stroke[1]=t.styles.stroke.g),\\\"number\\\"==typeof t.styles.stroke.b&&(t.styles.stroke[2]=t.styles.stroke.b),\\\"number\\\"==typeof t.styles.stroke.a&&(t.styles.stroke[3]=t.styles.stroke.a));var e=t.styles.lineDash||[];switch(t.styles.lineDashI>0&&e.push(t.styles.lineDashI),t.styles.lineDashII>0&&(e.length<1&&e.push(0),e.push(t.styles.lineDashII),e.push(0)),t.styles.lineDashIII>0&&(e.length<2&&(e.push(0),e.push(0)),e[2]=t.styles.lineDashIII),t.styles.lineDash=e,t.styles.lineJoin){case 0:t.styles.lineJoin=\\\"miter\\\";break;case 1:t.styles.lineJoin=\\\"round\\\";break;case 2:t.styles.lineJoin=\\\"bevel\\\"}switch(t.styles.lineCap){case 0:t.styles.lineCap=\\\"butt\\\";break;case 1:t.styles.lineCap=\\\"round\\\";break;case 2:t.styles.lineCap=\\\"square\\\"}}}),e.shapes[0]&&\\\"keep\\\"===e.shapes[0].type?this.shapes=t.lastShapes:(t.lastShapes=e.shapes,this.shapes=e.shapes));var r=this.transform.a*this.layout.x+this.transform.c*this.layout.y+this.transform.tx,o=this.transform.a*(this.layout.x+this.layout.width)+this.transform.c*this.layout.y+this.transform.tx,a=this.transform.a*this.layout.x+this.transform.c*(this.layout.y+this.layout.height)+this.transform.tx,f=this.transform.a*(this.layout.x+this.layout.width)+this.transform.c*(this.layout.y+this.layout.height)+this.transform.tx,h=this.transform.b*this.layout.x+this.transform.d*this.layout.y+this.transform.ty,l=this.transform.b*(this.layout.x+this.layout.width)+this.transform.d*this.layout.y+this.transform.ty,u=this.transform.b*this.layout.x+this.transform.d*(this.layout.y+this.layout.height)+this.transform.ty,p=this.transform.b*(this.layout.x+this.layout.width)+this.transform.d*(this.layout.y+this.layout.height)+this.transform.ty;this.nx=Math.min(Math.min(a,f),Math.min(r,o)),this.ny=Math.min(Math.min(u,p),Math.min(h,l))}return t.lastShapes=\\\"\\\",t}();e.default=o},function(t,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0});var i=function(t,e,r){this._d=t,this._transform=e,this._styles=r};e.default=i}]);\",Parser=function(){function Parser(_a){var disableWorker=(void 0===_a?{disableWorker:!1}:_a).disableWorker;disableWorker?(eval(WORKER),this.worker=window.SVGAParserMockWorker):this.worker=new Worker(window.URL.createObjectURL(new Blob([WORKER])))}return Parser.prototype.do=function(e){var t=this,r=new Uint8Array(e,0,4);if(80==r[0]&&75==r[1]&&3==r[2]&&4==r[3])throw\"this parser not support version@1.x of svga.\";if(!e)throw new Error(\"Parser Data not found\");if(!this.worker)throw new Error(\"Parser Worker not found\");return new Promise(function(r,n){var o;t.worker.disableWorker?((o=t.worker).onmessageCallback=function(e){r(e)},o.onmessage({data:e})):((o=t.worker).postMessage(e),o.onmessage=function(e){var t=e.data;r(t)})})},Parser.prototype.destroy=function(){var e=this.worker;e.terminate&&e.terminate()},Parser}();exports.default=Parser},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n,o,i,s=r(5),a=r(9);!function(e){e.START=\"start\",e.RESUME=\"resume\",e.PROCESS=\"process\",e.PAUSE=\"pause\",e.STOP=\"stop\",e.END=\"end\",e.CLEAR=\"clear\"}(n||(n={})),function(e){e.FORWARDS=\"forwards\",e.BACKWARDS=\"backwards\"}(o||(o={})),function(e){e.FORWARDS=\"forwards\",e.FALLBACKS=\"fallbacks\"}(i||(i={}));var u=\"undefined\"!=typeof window&&\"IntersectionObserver\"in window,c=function(){function e(e,t,r){if(this.videoItem=t,this.loop=!0,this.fillMode=o.FORWARDS,this.playMode=i.FORWARDS,this.progress=0,this.currentFrame=0,this.totalFramesCount=0,this.startFrame=0,this.endFrame=0,this.cacheFrames=!1,this.intersectionObserverRender=!1,this.intersectionObserverRenderShow=!0,this._intersectionObserver=null,this.$onEvent={start:function(){},resume:function(){},process:function(){},pause:function(){},stop:function(){},end:function(){},clear:function(){}},this.container=\"string\"==typeof e?document.body.querySelector(e):e,!this.container)throw new Error(\"container undefined.\");if(!this.container.getContext)throw new Error(\"container should be HTMLCanvasElement.\");this._renderer=new s.default(this),this._animator=new a.default,this.videoItem&&this.mount(t),r&&this.set(r)}return e.prototype.set=function(e){var t=this;void 0!==e.loop&&(this.loop=e.loop),e.fillMode&&(this.fillMode=e.fillMode),e.playMode&&(this.playMode=e.playMode),void 0!==e.cacheFrames&&(this.cacheFrames=e.cacheFrames),this.startFrame=e.startFrame?e.startFrame:this.startFrame,this.endFrame=e.endFrame?e.endFrame:this.endFrame,void 0!==e.intersectionObserverRender&&(this.intersectionObserverRender=e.intersectionObserverRender),u&&this.intersectionObserverRender?(this._intersectionObserver=new IntersectionObserver(function(e){e[0].intersectionRatio<=0?t.intersectionObserverRenderShow&&(t.intersectionObserverRenderShow=!1):!t.intersectionObserverRenderShow&&(t.intersectionObserverRenderShow=!0)},{rootMargin:\"0px\",threshold:[0,.5,1]}),this._intersectionObserver.observe(this.container)):(this._intersectionObserver&&this._intersectionObserver.disconnect(),this.intersectionObserverRender=!1,this.intersectionObserverRenderShow=!0),this._animator.noExecutionDelay=e.noExecutionDelay},e.prototype.mount=function(e){var t=this;return new Promise(function(r,n){t.currentFrame=0,t.progress=0,t.totalFramesCount=e.frames-1,t.videoItem=e,t._renderer.prepare().then(r),t._renderer.clear(),t._setSize()})},e.prototype.start=function(){if(!this.videoItem)throw new Error(\"video item undefined.\");this._renderer.clear(),this._startAnimation(),this.$onEvent.start()},e.prototype.resume=function(){if(!this.videoItem)throw new Error(\"video item undefined.\");this._startAnimation(),this.$onEvent.resume()},e.prototype.pause=function(){this._animator&&this._animator.stop(),this.$onEvent.pause()},e.prototype.stop=function(){this._animator&&this._animator.stop(),this.currentFrame=0,this._renderer.drawFrame(this.currentFrame),this.$onEvent.stop()},e.prototype.clear=function(){this._animator&&this._animator.stop(),this._renderer.clear(),this.$onEvent.clear()},e.prototype.destroy=function(){this._animator&&this._animator.stop(),this._renderer.clear(),this._animator=null,this._renderer=null,this.videoItem=null},e.prototype.$on=function(e,t){var r=this;return this.$onEvent[e]=t,\"end\"===e&&(this._animator.onEnd=function(){return r.$onEvent.end()}),this},e.prototype._startAnimation=function(){var e=this,t=this,r=t.playMode,n=t.totalFramesCount,o=t.startFrame,i=t.endFrame,s=t.videoItem;this.currentFrame===n&&(this.currentFrame=o||0),this._animator.startValue=\"fallbacks\"===r?i||n:o||0,this._animator.endValue=\"fallbacks\"===r?o||0:i||n;var a=s.frames;i>0&&i>o?a=i-o:i<=0&&o>0&&(a=s.frames-o),this._animator.duration=a*(1/s.FPS)*1e3,this._animator.loop=!0===this.loop||this.loop<=0?1/0:!1===this.loop?1:this.loop,this._animator.fillRule=\"backwards\"===this.fillMode?1:0,this._animator.onUpdate=function(t){t=Math.floor(t),e.currentFrame!==t&&(e.currentFrame=t,e.progress=parseFloat((t+1).toString())/parseFloat(s.frames.toString())*100,e._renderer.drawFrame(e.currentFrame),e.$onEvent.process())},this._animator.start(this.currentFrame)},e.prototype._setSize=function(){var e=this.videoItem.videoSize;this.container.width=e.width,this.container.height=e.height},e}();t.default=c},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(6),o=function(){function e(e){this._bitmapCache={},this._dynamicElements={},this._frames={},this._player=e;var t=this._player.container;this._ofsCanvas=window.OffscreenCanvas?new window.OffscreenCanvas(t.width,t.height):document.createElement(\"canvas\")}return e.prototype.prepare=function(){var e=this;return new Promise(function(t,r){if(e._bitmapCache={},e._player.videoItem.images&&0!=Object.keys(e._player.videoItem.images).length){e._player.videoItem.dynamicElements&&(e._dynamicElements=e._player.videoItem.dynamicElements);var n=0,o=0;for(var i in e._player.videoItem.images){var s=e._player.videoItem.images[i];if(\"string\"!=typeof s||0!==s.indexOf(\"iVBO\")&&0!==s.indexOf(\"/9j/2w\"))e._bitmapCache[i]=s;else{n++;var a=document.createElement(\"img\");a.src=\"data:image/png;base64,\"+s,e._bitmapCache[i]=a,a.onload=function(){++o===n&&t()}}}}else t()})},e.prototype.clear=function(){this._player.container.width=this._player.container.width},e.prototype.drawFrame=function(e){var t=this._player;if(!t.intersectionObserverRender||t.intersectionObserverRenderShow){this.clear();var r=t.container.getContext(\"2d\");if(this._player.cacheFrames&&this._frames[e]){var o=this._frames[e];r.drawImage(o,0,0,o.width,o.height,0,0,o.width,o.height)}else{var i=this._ofsCanvas;if(i.width=this._player.container.width,i.height=this._player.container.height,n.default(i,this._bitmapCache,this._dynamicElements,this._player.videoItem,this._player.currentFrame),r.drawImage(i,0,0,i.width,i.height,0,0,i.width,i.height),this._player.cacheFrames)if(\"toDataURL\"in i){var s=i.toDataURL(),a=new Image;a.src=s,this._frames[e]=a}else this._frames[e]=i.transferToImageBitmap()}}},e}();t.default=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var n=s(r(0)),o=s(r(7)),i=s(r(8));function s(e){return e&&e.__esModule?e:{default:e}}var a=\"MLHVCSQRZmlhvcsqrz\";function u(e,t){var r=t._styles;void 0!==r&&(r&&r.stroke?e.strokeStyle=\"rgba(\".concat(parseInt((255*r.stroke[0]).toString()),\", \").concat(parseInt((255*r.stroke[1]).toString()),\", \").concat(parseInt((255*r.stroke[2]).toString()),\", \").concat(r.stroke[3],\")\"):e.strokeStyle=\"transparent\",r&&(e.lineWidth=r.strokeWidth||void 0,e.lineCap=r.lineCap||void 0,e.lineJoin=r.lineJoin||void 0,e.miterLimit=r.miterLimit||void 0),r&&r.fill?e.fillStyle=\"rgba(\".concat(parseInt((255*r.fill[0]).toString()),\", \").concat(parseInt((255*r.fill[1]).toString()),\", \").concat(parseInt((255*r.fill[2]).toString()),\", \").concat(r.fill[3],\")\"):e.fillStyle=\"transparent\",r&&r.lineDash&&e.setLineDash(r.lineDash))}function c(e,t){e.save(),u(e,t),void 0!==t._transform&&null!==t._transform&&e.transform(t._transform.a||1,t._transform.b||0,t._transform.c||0,t._transform.d||1,t._transform.tx||0,t._transform.ty||0);var r={x:0,y:0,x1:0,y1:0,x2:0,y2:0};e.beginPath(),t._d.replace(/([a-zA-Z])/g,\"|||$1 \").replace(/,/g,\" \").split(\"|||\").forEach(function(t){if(0!=t.length){var n=t.substr(0,1);if(a.indexOf(n)>=0){var o=t.substr(1).trim().split(\" \");!function(e,t,r,n){switch(r){case\"M\":t.x=Number(n[0]),t.y=Number(n[1]),e.moveTo(t.x,t.y);break;case\"m\":t.x+=Number(n[0]),t.y+=Number(n[1]),e.moveTo(t.x,t.y);break;case\"L\":t.x=Number(n[0]),t.y=Number(n[1]),e.lineTo(t.x,t.y);break;case\"l\":t.x+=Number(n[0]),t.y+=Number(n[1]),e.lineTo(t.x,t.y);break;case\"H\":t.x=Number(n[0]),e.lineTo(t.x,t.y);break;case\"h\":t.x+=Number(n[0]),e.lineTo(t.x,t.y);break;case\"V\":t.y=Number(n[0]),e.lineTo(t.x,t.y);break;case\"v\":t.y+=Number(n[0]),e.lineTo(t.x,t.y);break;case\"C\":t.x1=Number(n[0]),t.y1=Number(n[1]),t.x2=Number(n[2]),t.y2=Number(n[3]),t.x=Number(n[4]),t.y=Number(n[5]),e.bezierCurveTo(t.x1,t.y1,t.x2,t.y2,t.x,t.y);break;case\"c\":t.x1=t.x+Number(n[0]),t.y1=t.y+Number(n[1]),t.x2=t.x+Number(n[2]),t.y2=t.y+Number(n[3]),t.x+=Number(n[4]),t.y+=Number(n[5]),e.bezierCurveTo(t.x1,t.y1,t.x2,t.y2,t.x,t.y);break;case\"S\":t.x1&&t.y1&&t.x2&&t.y2?(t.x1=t.x-t.x2+t.x,t.y1=t.y-t.y2+t.y,t.x2=Number(n[0]),t.y2=Number(n[1]),t.x=Number(n[2]),t.y=Number(n[3]),e.bezierCurveTo(t.x1,t.y1,t.x2,t.y2,t.x,t.y)):(t.x1=Number(n[0]),t.y1=Number(n[1]),t.x=Number(n[2]),t.y=Number(n[3]),e.quadraticCurveTo(t.x1,t.y1,t.x,t.y));break;case\"s\":t.x1&&t.y1&&t.x2&&t.y2?(t.x1=t.x-t.x2+t.x,t.y1=t.y-t.y2+t.y,t.x2=t.x+Number(n[0]),t.y2=t.y+Number(n[1]),t.x+=Number(n[2]),t.y+=Number(n[3]),e.bezierCurveTo(t.x1,t.y1,t.x2,t.y2,t.x,t.y)):(t.x1=t.x+Number(n[0]),t.y1=t.y+Number(n[1]),t.x+=Number(n[2]),t.y+=Number(n[3]),e.quadraticCurveTo(t.x1,t.y1,t.x,t.y));break;case\"Q\":t.x1=Number(n[0]),t.y1=Number(n[1]),t.x=Number(n[2]),t.y=Number(n[3]),e.quadraticCurveTo(t.x1,t.y1,t.x,t.y);break;case\"q\":t.x1=t.x+Number(n[0]),t.y1=t.y+Number(n[1]),t.x+=Number(n[2]),t.y+=Number(n[3]),e.quadraticCurveTo(t.x1,t.y1,t.x,t.y);break;case\"A\":case\"a\":break;case\"Z\":case\"z\":e.closePath()}}(e,r,n,o)}}}),t._styles&&t._styles.fill?e.fill():t._styles&&t._styles.stroke&&e.stroke(),e.restore()}var l=function(e,t,r,s,a){var l=e.getContext(\"2d\");return s.sprites.forEach(function(e){var s=e.frames[a];if(!(s.alpha<.05)){l.save(),l.globalAlpha=s.alpha,l.transform(s.transform.a||1,s.transform.b||0,s.transform.c||0,s.transform.d||1,s.transform.tx||0,s.transform.ty||0);var h=t[e.imageKey];h&&(void 0!==s.maskPath&&null!==s.maskPath&&(s.maskPath._styles=void 0,c(l,s.maskPath),l.clip()),l.drawImage(h,0,0));var f=r[e.imageKey];f&&l.drawImage(f,(s.layout.width-f.width)/2,(s.layout.height-f.height)/2),s.shapes&&s.shapes.forEach(function(e){\"shape\"===e.type&&e.pathArgs&&e.pathArgs.d?c(l,new n.default(e.pathArgs.d,e.transform,e.styles)):\"ellipse\"===e.type&&e.pathArgs?function(e,t){e.save(),u(e,t),void 0!==t._transform&&null!==t._transform&&e.transform(t._transform.a||1,t._transform.b||0,t._transform.c||0,t._transform.d||1,t._transform.tx||0,t._transform.ty||0);var r=t._x-t._radiusX,n=t._y-t._radiusY,o=2*t._radiusX,i=2*t._radiusY,s=o/2*.5522848,a=i/2*.5522848,c=r+o,l=n+i,h=r+o/2,f=n+i/2;e.beginPath(),e.moveTo(r,f),e.bezierCurveTo(r,f-a,h-s,n,h,n),e.bezierCurveTo(h+s,n,c,f-a,c,f),e.bezierCurveTo(c,f+a,h+s,l,h,l),e.bezierCurveTo(h-s,l,r,f+a,r,f),t._styles&&t._styles.fill?e.fill():t._styles&&t._styles.stroke&&e.stroke();e.restore()}(l,new o.default(parseFloat(e.pathArgs.x)||0,parseFloat(e.pathArgs.y)||0,parseFloat(e.pathArgs.radiusX)||0,parseFloat(e.pathArgs.radiusY)||0,e.transform,e.styles)):\"rect\"===e.type&&e.pathArgs&&function(e,t){e.save(),u(e,t),void 0!==t._transform&&null!==t._transform&&e.transform(t._transform.a||1,t._transform.b||0,t._transform.c||0,t._transform.d||1,t._transform.tx||0,t._transform.ty||0);var r=t._x,n=t._y,o=t._width,i=t._height,s=t._cornerRadius;o<2*s&&(s=o/2);i<2*s&&(s=i/2);e.beginPath(),e.moveTo(r+s,n),e.arcTo(r+o,n,r+o,n+i,s),e.arcTo(r+o,n+i,r,n+i,s),e.arcTo(r,n+i,r,n,s),e.arcTo(r,n,r+o,n,s),e.closePath(),t._styles&&t._styles.fill?e.fill():t._styles&&t._styles.stroke&&e.stroke();e.restore()}(l,new i.default(parseFloat(e.pathArgs.x)||0,parseFloat(e.pathArgs.y)||0,parseFloat(e.pathArgs.width)||0,parseFloat(e.pathArgs.height)||0,parseFloat(e.pathArgs.cornerRadius)||0,e.transform,e.styles))}),l.restore()}}),e};t.default=l},function(e,t,r){\"use strict\";var n,o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(t,r,n,o,i,s){var a=e.call(this)||this;return a._x=t,a._y=r,a._radiusX=n,a._radiusY=o,a._transform=i,a._styles=s,a}return o(t,e),t}(r(0).default);t.default=i},function(e,t,r){\"use strict\";var n,o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(t,r,n,o,i,s,a){var u=e.call(this)||this;return u._x=t,u._y=r,u._width=n,u._height=o,u._cornerRadius=i,u._transform=s,u._styles=a,u}return o(t,e),t}(r(0).default);t.default=i},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){this._currentTimeMillsecond=function(){return\"undefined\"==typeof performance?(new Date).getTime():performance.now()},this.noExecutionDelay=!1,this.startValue=0,this.endValue=0,this.duration=0,this.loop=1,this.fillRule=0,this.onStart=function(){},this.onUpdate=function(){},this.onEnd=function(){},this._isRunning=!1,this._mStartTime=0,this._currentFrication=0,this._worker=null}return e.prototype.start=function(e){this.doStart(e)},e.prototype.stop=function(){this._doStop()},Object.defineProperty(e.prototype,\"animatedValue\",{get:function(){return(this.endValue-this.startValue)*this._currentFrication+this.startValue},enumerable:!1,configurable:!0}),e.prototype.doStart=function(e){this._isRunning=!0,this._mStartTime=this._currentTimeMillsecond(),e&&(this._mStartTime-=e/(this.endValue-this.startValue)*this.duration),this._currentFrication=0,this.noExecutionDelay&&null===this._worker&&(this._worker=new Worker(window.URL.createObjectURL(new Blob([\"onmessage = function () {\\n setTimeout(function() {postMessage(null)}, 1 / 60)\\n}\"])))),this.onStart(),this._doFrame()},e.prototype._doStop=function(){this._isRunning=!1,null!==this._worker&&(this._worker.terminate(),this._worker=null)},e.prototype._doFrame=function(){this._isRunning&&(this._doDeltaTime(this._currentTimeMillsecond()-this._mStartTime),this._isRunning&&(this._worker?(this._worker.onmessage=this._doFrame.bind(this),this._worker.postMessage(null)):window.requestAnimationFrame(this._doFrame.bind(this))))},e.prototype._doDeltaTime=function(e){e>=this.duration*this.loop?(this._currentFrication=1===this.fillRule?0:1,this._isRunning=!1):this._currentFrication=e%this.duration/this.duration,this.onUpdate(this.animatedValue),!1===this._isRunning&&(null!==this._worker&&(this._worker.terminate(),this._worker=null),this.onEnd())},e}();t.default=n}]).default});","<template>\r\n <div ref=\"containerRef\" class=\"svga-player-container\">\r\n <canvas ref=\"canvasRef\" class=\"svga-player-canvas\"></canvas>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref, onMounted, onUnmounted, watch, nextTick } from 'vue';\r\nimport { Parser, Player } from 'svga.lite';\r\n\r\n// 定义组件属性\r\nconst props = defineProps({\r\n /**\r\n * SVGA 文件地址\r\n */\r\n src: {\r\n type: String,\r\n required: true\r\n },\r\n /**\r\n * 是否自动播放\r\n */\r\n autoplay: {\r\n type: Boolean,\r\n default: true\r\n },\r\n /**\r\n * 是否循环播放\r\n */\r\n loop: {\r\n type: Boolean,\r\n default: true\r\n },\r\n /**\r\n * 初始播放进度 (0-1)\r\n */\r\n progress: {\r\n type: Number,\r\n default: 0\r\n },\r\n /**\r\n * 播放速度\r\n */\r\n speed: {\r\n type: Number,\r\n default: 1\r\n },\r\n /**\r\n * 宽度\r\n */\r\n width: {\r\n type: [Number, String],\r\n default: '100%'\r\n },\r\n /**\r\n * 高度\r\n */\r\n height: {\r\n type: [Number, String],\r\n default: '100%'\r\n }\r\n});\r\n\r\n// 定义组件事件\r\nconst emit = defineEmits([\r\n /**\r\n * 加载完成事件\r\n */\r\n 'loaded',\r\n /**\r\n * 开始播放事件\r\n */\r\n 'play',\r\n /**\r\n * 暂停播放事件\r\n */\r\n 'pause',\r\n /**\r\n * 播放结束事件\r\n */\r\n 'ended',\r\n /**\r\n * 播放进度更新事件\r\n */\r\n 'progress',\r\n /**\r\n * 错误事件\r\n */\r\n 'error'\r\n]);\r\n\r\n// 组件引用\r\nconst containerRef = ref(null);\r\nconst canvasRef = ref(null);\r\n\r\n// SVGA 实例\r\nlet parser = null;\r\nlet player = null;\r\nlet animationData = null;\r\n\r\n/**\r\n * 初始化 SVGA 播放器\r\n */\r\nconst initPlayer = async () => {\r\n try {\r\n // 创建 Parser 实例\r\n parser = new Parser();\r\n \r\n // 加载 SVGA 文件\r\n animationData = await parser.load(props.src);\r\n \r\n // 创建 Player 实例\r\n player = new Player(canvasRef.value);\r\n \r\n // 设置播放属性\r\n player.loop = props.loop;\r\n player.speed = props.speed;\r\n \r\n // 绑定事件监听器\r\n player.onStart = () => emit('play');\r\n player.onPause = () => emit('pause');\r\n player.onEnd = () => emit('ended');\r\n player.onFrame = () => emit('progress', player.progress);\r\n \r\n // 设置动画数据\r\n await player.setAnimationData(animationData);\r\n \r\n // 设置初始进度\r\n if (props.progress > 0) {\r\n player.progress = props.progress;\r\n }\r\n \r\n // 自动播放\r\n if (props.autoplay) {\r\n player.start();\r\n }\r\n \r\n // 触发加载完成事件\r\n emit('loaded');\r\n } catch (error) {\r\n console.error('SVGA 加载失败:', error);\r\n emit('error', error);\r\n }\r\n};\r\n\r\n/**\r\n * 开始播放\r\n */\r\nconst play = () => {\r\n if (player) {\r\n player.start();\r\n }\r\n};\r\n\r\n/**\r\n * 暂停播放\r\n */\r\nconst pause = () => {\r\n if (player) {\r\n player.pause();\r\n }\r\n};\r\n\r\n/**\r\n * 停止播放\r\n */\r\nconst stop = () => {\r\n if (player) {\r\n player.stop();\r\n }\r\n};\r\n\r\n/**\r\n * 重新播放\r\n */\r\nconst restart = () => {\r\n if (player) {\r\n player.stop();\r\n player.start();\r\n }\r\n};\r\n\r\n/**\r\n * 设置播放进度\r\n * @param {number} progress - 播放进度 (0-1)\r\n */\r\nconst setProgress = (progress) => {\r\n if (player) {\r\n player.progress = progress;\r\n }\r\n};\r\n\r\n/**\r\n * 设置播放速度\r\n * @param {number} speed - 播放速度\r\n */\r\nconst setSpeed = (speed) => {\r\n if (player) {\r\n player.speed = speed;\r\n }\r\n};\r\n\r\n/**\r\n * 设置是否循环播放\r\n * @param {boolean} loop - 是否循环\r\n */\r\nconst setLoop = (loop) => {\r\n if (player) {\r\n player.loop = loop;\r\n }\r\n};\r\n\r\n// 暴露组件方法\r\ndefineExpose({\r\n play,\r\n pause,\r\n stop,\r\n restart,\r\n setProgress,\r\n setSpeed,\r\n setLoop\r\n});\r\n\r\n// 监听属性变化\r\nwatch(() => props.src, async (newSrc) => {\r\n if (newSrc) {\r\n // 重新加载 SVGA\r\n await initPlayer();\r\n }\r\n});\r\n\r\nwatch(() => props.loop, (newLoop) => {\r\n setLoop(newLoop);\r\n});\r\n\r\nwatch(() => props.speed, (newSpeed) => {\r\n setSpeed(newSpeed);\r\n});\r\n\r\nwatch(() => props.progress, (newProgress) => {\r\n setProgress(newProgress);\r\n});\r\n\r\n// 组件挂载时初始化\r\nonMounted(async () => {\r\n await nextTick();\r\n await initPlayer();\r\n});\r\n\r\n// 组件卸载时销毁资源\r\nonUnmounted(() => {\r\n if (player) {\r\n player.stop();\r\n player = null;\r\n }\r\n \r\n if (parser) {\r\n parser = null;\r\n }\r\n \r\n animationData = null;\r\n});\r\n</script>\r\n\r\n<style scoped>\r\n.svga-player-container {\r\n position: relative;\r\n width: v-bind(width);\r\n height: v-bind(height);\r\n overflow: hidden;\r\n}\r\n\r\n.svga-player-canvas {\r\n width: 100%;\r\n height: 100%;\r\n display: block;\r\n}\r\n</style>","<template>\r\n\t<div class=\"search-dropdown\">\r\n\t\t<!-- 搜索输入框 -->\r\n\t\t<div class=\"input-wrapper\" :class=\"{ focus: isFocus }\">\r\n\t\t\t<input class=\"search-input\" :placeholder=\"placeholder\" v-model=\"inputValue\" @input=\"handleInput\"\r\n\t\t\t\t@focus=\"handleFocus\" @blur=\"handleBlur\" />\r\n\t\t\t<div v-if=\"inputValue&&showClear\" class=\"clear-icon\" @click=\"clearInput\">×</div>\r\n\t\t</div>\r\n\r\n\t\t<!-- 下拉列表 -->\r\n\t\t<div v-if=\"showDropdown && filteredList.length > 0\" class=\"dropdown-list\">\r\n\t\t\t<scroll-view scroll-y :style=\"{ maxHeight: maxHeight + 'px' }\">\r\n\t\t\t\t<div v-for=\"(item, index) in filteredList\" :key=\"index\" class=\"dropdown-item\" @click=\"selectItem(item)\">\r\n\t\t\t\t\t<span class=\"item-text\">{{ item.name }}</span>\r\n\t\t\t\t</div>\r\n\t\t\t</scroll-view>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script setup>\r\n\timport {\r\n\t\tref,\r\n\t\twatchEffect,\r\n\t\tdefineProps,\r\n\t\tdefineEmits,\r\n\t\tcomputed,\r\n\t\tonMounted,\r\n\t\twatch,\r\n\t\tnextTick\r\n\t} from 'vue';\r\n\r\n\tconst props = defineProps({\r\n\t\tlist: {\r\n\t\t\ttype: Array,\r\n\t\t\tdefault: () => [],\r\n\t\t},\r\n\t\tplaceholder: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: '请输入关键词搜索',\r\n\t\t},\r\n\t\tdefaultValue: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: '',\r\n\t\t},\r\n\t\tmaxHeight: {\r\n\t\t\ttype: Number,\r\n\t\t\tdefault: 400,\r\n\t\t},\r\n\t\tshowClear: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: true\r\n\t\t}\r\n\t});\r\n\r\n\tconst emit = defineEmits(['clearIcon', 'search', 'select']);\r\n\r\n\t// 响应式状态管理\r\n\tconst inputValue = ref(props.defaultValue);\r\n\tconst isFocus = ref(false);\r\n\tconst showDropdown = ref(false);\r\n\tconst filteredList = ref([]);\r\n\r\n\t// 方法区\r\n\tfunction clearInput() {\r\n\t\tinputValue.value = '';\r\n\t\tfilteredList.value = [];\r\n\t\tshowDropdown.value = false;\r\n\t\temit('clearIcon', '', []);\r\n\t}\r\n\r\n\tfunction handleInput() {\r\n\t\tconst searchText = inputValue.value;\r\n\t\tfilteredList.value = props.list.filter(\r\n\t\t\t(item) => item.name && item.name.includes(searchText)\r\n\t\t);\r\n\t\tshowDropdown.value = filteredList.value.length > 0;\r\n\t\temit('search', searchText, filteredList.value);\r\n\t}\r\n\r\n\tfunction handleFocus() {\r\n\t\tfilteredList.value = props.list.filter(\r\n\t\t\t(item) => item.name && item.name.includes(inputValue.value)\r\n\t\t);\r\n\t\tisFocus.value = true;\r\n\t\tshowDropdown.value = true;\r\n\t}\r\n\r\n\tfunction handleBlur() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tisFocus.value = false;\r\n\t\t\tshowDropdown.value = false;\r\n\t\t}, 150);\r\n\t}\r\n\r\n\tfunction selectItem(item) {\r\n\t\tinputValue.value = item.name;\r\n\t\tshowDropdown.value = false;\r\n\t\temit('select', item);\r\n\t}\r\n\t// watchEffect(() => {\r\n\t// \tif (!props.defaultValue && !inputValue.value) return;\r\n\t// \tinputValue.value = props.defaultValue;\r\n\t// });\r\n\tonMounted(() => {\r\n\t\t// 组件初始化时设置默认值\r\n\t\tif (props.defaultValue) {\r\n\t\t\tinputValue.value = props.defaultValue;\r\n\t\t}\r\n\t});\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t.search-dropdown {\r\n\t\tposition: relative;\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n\t.input-wrapper {\r\n\t\tborder: 2px solid #dcdfe6;\r\n\t\tborder-radius: 8px;\r\n\t\tpadding: 20px;\r\n\t\ttransition: all 0.3s ease;\r\n\t\tposition: relative;\r\n\t\tpadding-right: 60px;\r\n\t}\r\n\r\n\t.clear-icon {\r\n\t\tposition: absolute;\r\n\t\tright: 20px;\r\n\t\ttop: 50%;\r\n\t\ttransform: translateY(-50%);\r\n\t\tfont-size: 32px;\r\n\t\tcolor: #c0c4cc;\r\n\t\tcursor: pointer;\r\n\t\tpadding: 4px;\r\n\t}\r\n\r\n\t.clear-icon:active {\r\n\t\tcolor: #909399;\r\n\t}\r\n\r\n\t.input-wrapper.focus {\r\n\t\tbox-shadow: 0 0 0 2px rgba(64, 158, 255, 0.2);\r\n\t}\r\n\r\n\t.search-input {\r\n\t\twidth: 100%;\r\n\t\tfont-size: 28px;\r\n\t\tcolor: #303133;\r\n\t\tborder-style: none;\r\n\t}\r\n\r\n\t.search-input:focus {\r\n\t\toutline: none;\r\n\t}\r\n\r\n\t.dropdown-list {\r\n\t\tposition: absolute;\r\n\t\ttop: 100%;\r\n\t\tleft: 0;\r\n\t\tright: 0;\r\n\t\tbackground: #ffffff;\r\n\t\tborder: 1px solid #e4e7ed;\r\n\t\tborder-radius: 8px;\r\n\t\tbox-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);\r\n\t\tz-index: 1000;\r\n\t\tmargin-top: 8px;\r\n\t}\r\n\r\n\t.dropdown-item {\r\n\t\tpadding: 20px 24px;\r\n\t\tborder-bottom: 1px solid #ebeef5;\r\n\t}\r\n\r\n\t.dropdown-item:last-child {\r\n\t\tborder-bottom: none;\r\n\t}\r\n\r\n\t.item-text {\r\n\t\tfont-size: 28px;\r\n\t\tcolor: #606266;\r\n\t}\r\n\r\n\t.dropdown-item:active {\r\n\t\tbackground: #f5f7fa;\r\n\t}\r\n</style>"],"names":["_createElementBlock","_normalizeClass","__props","_renderSlot","_ctx","emit","__emit","handleClick","event","_openBlock","_hoisted_1","_createElementVNode","_hoisted_2","_toDisplayString","_hoisted_3","props","shouldScroll","computed","start","end","diffTime","diffDays","totalDays","error","weekdays","orderedWeekdays","firstDate","filteredDisplayDates","firstDateWeekday","result","i","weekdayIndex","initCurrentWeekStart","baseDate","day","diff","startDate","ref","onMounted","watch","newValue","displayDates","dates","date","formatDate","isSelected","dateStr","selectedDate","isToday","todayStr","isInRange","dateObj","getWeekdayLabel","weekday","_a","w","handleDateClick","_hoisted_7","_hoisted_8","_Fragment","_renderList","_normalizeStyle","$event","_hoisted_5","_hoisted_6","currentIndex","swiperWrapper","isDragging","isMovingImage","startX","startY","currentTranslateX","containerWidth","containerHeight","imageStates","touchStartX","touchStartY","touchStartTime","touchMoveX","touchMoveY","swiperWrapperStyle","slideStyle","newIndex","updateTranslateX","handleResize","prevImage","resetCurrentImageState","nextImage","getImageStyle","index","state","handleImageLoad","img","handleMouseDown","handleMouseMove","newTranslateX","newTranslateY","handleMouseUp","swipeThreshold","handleTouchStart","touch","handleTouchMove","deltaX","deltaY","handleTouchEnd","deltaTime","swipeVelocity","handleWheel","delta","mouseX","mouseY","zoomImage","centerX","centerY","newScale","rect","imageX","imageY","scaleDiff","_hoisted_4","image","containerRef","contentRef","isPaused","animationFrameId","currentPosition","displayList","dragStartPos","dragCurrentPos","dragOffset","wasPausedBeforeDrag","containerStyle","contentStyle","style","updateDisplayList","animate","container","content","containerSize","totalSize","maxPosition","startAnimation","stopAnimation","pause","resume","handleMouseEnter","handleMouseLeave","e","scrollTo","position","scrollToTop","scrollToBottom","nextTick","onUnmounted","__expose","item","handleContainerClick","newVal","_cache","isSendSMS","smsCode","num","sendMessage","time","slots","useSlots","waterfallRef","useCssVars","columns","columnCount","defaultSlot","calculateItemHeight","refresh","actualColumn","newColumns","itemHeight","minHeight","minColumnIndex","col","idx","handleImageError","_createTextVNode","column","itemIndex","t","r","n","o","s","exports","a","u","c","l","h","f","canvasRef","parser","player","animationData","initPlayer","Parser","Player","play","stop","restart","setProgress","progress","setSpeed","speed","setLoop","loop","newSrc","newLoop","newSpeed","newProgress","inputValue","isFocus","showDropdown","filteredList","clearInput","handleInput","searchText","handleFocus","handleBlur","selectItem","_createVNode","_component_scroll_view"],"mappings":"sQACEA,IAAAA,mBAEM,MAAA,CAFD,MAAKC,IAAAA,eAAA,CAAC,eAAc,CAAA,aAAyBC,EAAA,QAAO,CAAA,CAAA,GACvDC,IAAAA,WAAwBC,sBAAxB,IAAwB,yCAAfF,EAAA,KAAK,EAAA,CAAA,CAAA,4bC2BlB,MAAMG,EAAOC,EAgBPC,EAAeC,GAAsB,CACzCH,EAAK,QAASG,CAAK,CACrB,gBA9CEC,cAAA,EAAAT,uBAQM,MARNU,aAQM,CAPJC,IAAAA,mBAAqC,KAArCC,aAAqCC,IAAAA,gBAAbX,EAAA,KAAK,EAAA,CAAA,EAC7BS,IAAAA,mBAEM,MAFNG,aAEM,CADJX,IAAAA,WAAaC,EAAA,OAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,GAEDF,EAAA,4BAAdF,IAAAA,mBAES,SAAA,OAFiB,MAAM,YAAa,QAAOO,CAAA,sBAC/CL,EAAA,UAAU,EAAA,CAAA,wwCC0JnB,MAAMa,EAAQb,EAwBRG,EAAOC,EAQPU,EAAeC,IAAAA,SAAkB,IAAM,CAS3C,GAPA,QAAQ,IAAI,SAAU,CACpB,UAAWF,EAAM,UACjB,QAASA,EAAM,QACf,WAAYA,EAAM,UAAA,CACnB,EAGGA,EAAM,WACR,eAAQ,IAAI,2BAA2B,EAChC,GAGT,GAAI,CAEF,MAAMG,EAAQ,IAAI,KAAKH,EAAM,SAAS,EACtCG,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAEzB,MAAMC,EAAM,IAAI,KAAKJ,EAAM,OAAO,EAIlC,GAHAI,EAAI,SAAS,EAAG,EAAG,EAAG,CAAC,EAGnB,MAAMD,EAAM,QAAA,CAAS,GAAK,MAAMC,EAAI,QAAA,CAAS,EAC/C,eAAQ,IAAI,kBAAkB,EACvB,GAIT,MAAMC,EAAWD,EAAI,QAAA,EAAYD,EAAM,QAAA,EACjCG,EAAW,KAAK,KAAKD,GAAY,IAAO,GAAK,GAAK,GAAG,EACrDE,EAAYD,EAAW,EAG7B,eAAQ,IAAI,YAAa,CACvB,MAAOH,EAAM,mBAAA,EACb,IAAKC,EAAI,mBAAA,EACT,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,aAAcA,EAAY,CAAA,CAC3B,EAGMA,EAAY,CACrB,OAASC,EAAO,CACd,eAAQ,MAAM,aAAcA,CAAK,EAE1B,EACT,CACF,CAAC,EAGKC,EAAsB,CAC1B,CAAE,MAAO,EAAG,MAAO,IAAK,UAAW,EAAA,EACnC,CAAE,MAAO,EAAG,MAAO,IAAK,UAAW,EAAA,EACnC,CAAE,MAAO,EAAG,MAAO,IAAK,UAAW,EAAA,EACnC,CAAE,MAAO,EAAG,MAAO,IAAK,UAAW,EAAA,EACnC,CAAE,MAAO,EAAG,MAAO,IAAK,UAAW,EAAA,EACnC,CAAE,MAAO,EAAG,MAAO,IAAK,UAAW,EAAA,EACnC,CAAE,MAAO,EAAG,MAAO,IAAK,UAAW,EAAA,CAAK,EAIpCC,EAAkBR,IAAAA,SAAoB,IAAM,CAEhD,MAAMS,EAAYC,EAAqB,MAAM,CAAC,EAC9C,GAAI,CAACD,EAEH,OAAOF,EAGT,MAAMI,EAAmBF,EAAU,QAC7BG,EAAoB,CAAA,EAG1B,QAASC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,MAAMC,GAAgBH,EAAmBE,GAAK,EAC9CD,EAAO,KAAKL,EAASO,CAAY,CAAC,CACpC,CAEA,OAAOF,CACT,CAAC,EAIKG,EAAuB,IAAM,CAEjC,MAAMC,EAAWlB,EAAM,WAAa,IAAI,KAClCmB,EAAMD,EAAS,OAAA,EAEfE,EAAOF,EAAS,QAAA,GAAaC,IAAQ,EAAI,EAAIA,EAAM,GACnDE,EAAY,IAAI,KAAKH,CAAQ,EACnC,OAAAG,EAAU,QAAQD,CAAI,EACfC,CACT,EAEyBC,IAAAA,IAAIL,EAAA,CAAsB,EAGnDM,IAAAA,UAAU,IAAM,CAEd,QAAQ,IAAI,SAAUvB,CAAK,EAC3B,QAAQ,IAAI,iBAAkBA,EAAM,aAAa,CACnD,CAAC,EAGDwB,IAAAA,MACE,IAAMxB,EAAM,cACXyB,GAAa,CACZ,QAAQ,IAAI,yBAA0BA,CAAQ,CAChD,CAAA,EAIFD,IAAAA,MACE,IAAMxB,EAAM,WACXyB,GAAa,CACZ,QAAQ,IAAI,sBAAuBA,CAAQ,CAC7C,CAAA,EAMF,MAAMC,EAAexB,IAAAA,SAAqB,IAAM,CAC9C,MAAMyB,EAAoB,CAAA,EAE1B,GAAI,CAEF,MAAMxB,EAAQH,EAAM,UACdI,EAAMJ,EAAM,QAGlB,GAAI,MAAMG,EAAM,QAAA,CAAS,GAAK,MAAMC,EAAI,QAAA,CAAS,EAC/C,eAAQ,IAAI,eAAe,EACpBuB,EAIT,MAAMpB,EAAY,KAAK,MAAMH,EAAI,QAAA,EAAYD,EAAM,QAAA,IAAc,IAAO,GAAK,GAAK,GAAG,EAAI,EAGzF,QAASY,EAAI,EAAGA,EAAIR,EAAWQ,IAAK,CAClC,MAAMa,EAAO,IAAI,KAAKzB,CAAK,EAC3ByB,EAAK,QAAQzB,EAAM,QAAA,EAAYY,CAAC,EAG3B,MAAMa,EAAK,QAAA,CAAS,GACvBD,EAAM,KAAK,CACT,KAAAC,EACA,WAAYC,EAAWD,CAAI,EAC3B,IAAKA,EAAK,QAAA,EACV,MAAOA,EAAK,SAAA,EAAa,EACzB,KAAMA,EAAK,YAAA,EACX,UAAWA,EAAK,OAAA,IAAa,GAAKA,EAAK,WAAa,EACpD,QAASA,EAAK,OAAA,CAAO,CACtB,CAEL,CACF,OAASpB,EAAO,CACd,QAAQ,MAAM,aAAcA,CAAK,CACnC,CAEA,OAAOmB,CACT,CAAC,EAKKf,EAAuBV,IAAAA,SAAqB,IACzCwB,EAAa,MAAM,OAAQE,GAEzB,GAAQA,GACRA,EAAK,MACLA,EAAK,YACL,CAAC,MAAMA,EAAK,KAAK,SAAS,GAC1B,OAAOA,EAAK,YAAe,UAC3B,OAAOA,EAAK,KAAQ,SAC5B,CACF,EAOKC,EAAcD,GACX,GAAGA,EAAK,YAAA,CAAa,IAAI,OAAOA,EAAK,SAAA,EAAa,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,IAAI,OAAOA,EAAK,SAAS,EAAE,SAAS,EAAG,GAAG,CAAC,GAQnHE,EAAcF,GAA4B,CAC9C,MAAMG,EAAUH,EAAK,WAGrB,OAAK5B,EAAM,WAIP,MAAM,QAAQA,EAAM,UAAU,EAEzBA,EAAM,WAAW,KAAKgC,GAEvB,CAACA,GAAgB,MAAMA,EAAa,QAAA,CAAS,EACxC,GAEFH,EAAWG,CAAY,IAAMD,CACrC,EAIG,MAAM/B,EAAM,WAAW,QAAA,CAAS,EAC3B,GAEF6B,EAAW7B,EAAM,UAAU,IAAM+B,EAlBjC,EAoBX,EAOME,EAAWL,GAA4B,CAC3C,MAAMM,EAAWL,EAAW,IAAI,IAAM,EACtC,OAAOD,EAAK,aAAeM,CAC7B,EAOMC,EAAaP,GAA4B,CAC7C,MAAMQ,EAAUR,EAAK,KAMrB,OAJI5B,EAAM,aAAeoC,EAAU,IAAI,KAAK,IAAI,OAAO,SAAS,EAAG,EAAG,EAAG,CAAC,CAAC,GAIvEpC,EAAM,eAAiBoC,EAAU,IAAI,KAAK,IAAI,OAAO,SAAS,GAAI,GAAI,GAAI,GAAG,CAAC,EACzE,GAGFA,GAAWpC,EAAM,WAAaoC,GAAWpC,EAAM,OACxD,EAOMqC,EAAmBC,GAA4B,OACnD,QAAOC,EAAA9B,EAAS,KAAK+B,GAAKA,EAAE,QAAUF,CAAO,IAAtC,YAAAC,EAAyC,QAAS,EAC3D,EAMME,EAAmBb,GAAmB,CACrCO,EAAUP,CAAI,IAEnBtC,EAAK,YAAasC,CAAI,EACtBtC,EAAK,oBAAqBsC,EAAK,IAAI,EACrC,gCA9cE3C,IAAAA,mBAmGM,MAAA,CAnGD,0BAAM,kBAAiB,iCAAiDE,EAAA,gBAAa,sCAAkDA,EAAA,gBAAa,yCAAqDA,EAAA,gBAAa,sCAAkDc,EAAA,KAAA,MAO/PA,EAAA,OA2CZP,IAAAA,UAAA,EAAAT,uBA8CM,MA9CNyD,aA8CM,CA5CJ9C,IAAAA,mBA2CM,MA3CN+C,aA2CM,CAvCJ/C,IAAAA,mBAYM,MAZN,WAYM,oBAXJX,IAAAA,mBAUM2D,IAAAA,SAAA,KAAAC,IAAAA,WATWjC,EAAA,MAARgB,oBADT3C,IAAAA,mBAUM,MAAA,CARH,IAAK2C,EAAK,WAAU,WACrB,0BAAM,2BAA0B,CAC8B,oCAAAA,EAAK,SAAA,yBAKhES,EAAgBT,EAAK,OAAO,CAAA,EAAA,CAAA,YAKnChC,IAAAA,mBAuBM,MAvBN,YAuBM,oBAtBJX,IAAAA,mBAqBI2D,IAAAA,SAAA,KAAAC,IAAAA,WApBWjC,EAAA,MAARgB,oBADP3C,IAAAA,mBAqBI,MAAA,CAnBH,IAAK2C,EAAK,WACX,0BAAM,wBAAuB,CAC6B,kCAAAE,EAAWF,CAAI,EAAgD,+BAAAK,EAAQL,CAAI,EAAoD,kCAAA,CAAAO,EAAUP,CAAI,EAAkD,iCAAAA,EAAK,SAAA,IAM7P,MAAKkB,IAAAA,eAAA,CAAwB,MAAAhB,EAAWF,CAAI,EAAIzC,EAAA,cAAgBA,EAAA,YAA2C,gBAAA2C,EAAWF,CAAI,EAAIzC,EAAA,gBAAkBA,EAAA,aAAA,GAIhJ,QAAK4D,GAAEN,EAAgBb,CAAI,CAAA,GAE5BhC,IAAAA,mBAA8D,MAA9D,YAA8DE,IAAAA,gBAAjB8B,EAAK,GAAG,EAAA,CAAA,EAErDhC,IAAAA,mBAEM,MAFN,YAEM,CADJR,IAAAA,WAA0BC,EAAA,OAAA,UAAA,CAAnB,KAAAuC,CAAA,EAAU,OAAA,EAAA,CAAA,oDApFzB3C,IAAAA,mBAwCM,MAAAU,aAAA,CAtCJC,IAAAA,mBAWM,MAXNC,aAWM,oBAVJZ,IAAAA,mBASM2D,IAAAA,SAAA,KAAAC,IAAAA,WARcnC,EAAA,MAAX4B,oBADTrD,IAAAA,mBASM,MAAA,CAPH,IAAKqD,EAAQ,MACd,0BAAM,2BAA0B,CAC4B,oCAAAA,EAAQ,SAAA,KAIjExC,oBAAAwC,EAAQ,KAAK,EAAA,CAAA,YAKpB1C,IAAAA,mBAuBM,MAvBNG,aAuBM,oBAtBJd,IAAAA,mBAqBM2D,IAAAA,SAAA,KAAAC,IAAAA,WApBWjC,EAAA,MAARgB,oBADT3C,IAAAA,mBAqBM,MAAA,CAnBH,IAAK2C,EAAK,WACX,0BAAM,wBAAuB,CAC6B,kCAAAE,EAAWF,CAAI,EAAgD,+BAAAK,EAAQL,CAAI,EAAoD,kCAAA,CAAAO,EAAUP,CAAI,EAAkD,iCAAAA,EAAK,SAAA,IAM7P,MAAKkB,IAAAA,eAAA,CAAwB,MAAAhB,EAAWF,CAAI,EAAIzC,EAAA,cAAgBA,EAAA,YAA2C,gBAAA2C,EAAWF,CAAI,EAAIzC,EAAA,gBAAkBA,EAAA,aAAA,GAIhJ,QAAK4D,GAAEN,EAAgBb,CAAI,CAAA,GAE5BhC,IAAAA,mBAA8D,MAA9DoD,aAA8DlD,IAAAA,gBAAjB8B,EAAK,GAAG,EAAA,CAAA,EAErDhC,IAAAA,mBAEM,MAFNqD,aAEM,CADJ7D,IAAAA,WAA0BC,EAAA,OAAA,UAAA,CAAnB,KAAAuC,CAAA,EAAU,OAAA,EAAA,CAAA,ouBCkC7B,MAAM5B,EAAQb,EAmCRG,EAAOC,EAGP2D,EAAe5B,IAAAA,IAAItB,EAAM,YAAY,EACrCmD,EAAgB7B,IAAAA,IAAI,IAAI,EACxB8B,EAAa9B,IAAAA,IAAI,EAAK,EACtB+B,EAAgB/B,IAAAA,IAAI,EAAK,EACzBgC,EAAShC,IAAAA,IAAI,CAAC,EACdiC,EAASjC,IAAAA,IAAI,CAAC,EACdkC,EAAoBlC,IAAAA,IAAI,CAAC,EACzBmC,EAAiBnC,IAAAA,IAAI,OAAO,UAAU,EACtCoC,EAAkBpC,IAAAA,IAAI,OAAO,WAAW,EAGxCqC,EAAcrC,IAAAA,IAAItB,EAAM,OAAO,IAAI,KAAO,CAC9C,MAAO,EACP,WAAY,EACZ,WAAY,EACZ,aAAc,EACd,cAAe,EACf,SAAU,EACZ,EAAE,CAAC,EAGG4D,EAActC,IAAAA,IAAI,CAAC,EACnBuC,EAAcvC,IAAAA,IAAI,CAAC,EACnBwC,EAAiBxC,IAAAA,IAAI,CAAC,EACtByC,EAAazC,IAAAA,IAAI,CAAC,EAClB0C,EAAa1C,IAAAA,IAAI,CAAC,EAGlB2C,EAAqB/D,IAAAA,SAAS,KAC3B,CACL,UAAW,cAAcsD,EAAkB,KAAK,MAChD,WAAYJ,EAAW,MAAQ,OAAS,qBAC5C,EACC,EAEKc,EAAahE,IAAAA,SAAS,KACnB,CACL,MAAO,GAAGuD,EAAe,KAAK,KAC9B,OAAQ,GAAGC,EAAgB,KAAK,IACpC,EACC,EAGDlC,IAAAA,MAAM,IAAMxB,EAAM,aAAemE,GAAa,CACxCA,IAAajB,EAAa,QAC5BA,EAAa,MAAQiB,EACrBC,IAEJ,CAAC,EAGD7C,IAAAA,UAAU,IAAM,CACd,MAAM8C,EAAe,IAAM,CACzBZ,EAAe,MAAQ,OAAO,WAC9BC,EAAgB,MAAQ,OAAO,YAC/BU,GACF,EAEA,cAAO,iBAAiB,SAAUC,CAAY,EAC9CA,IAEO,IAAM,CACX,OAAO,oBAAoB,SAAUA,CAAY,CACnD,CACF,CAAC,EAGD,MAAMD,EAAmB,IAAM,CAC7BZ,EAAkB,MAAQ,CAACN,EAAa,MAAQO,EAAe,KACjE,EAGMa,EAAY,IAAM,CAClBpB,EAAa,MAAQ,IACvBA,EAAa,QACbkB,IACAG,IACAjF,EAAK,SAAU4D,EAAa,KAAK,EACjC5D,EAAK,sBAAuB4D,EAAa,KAAK,EAElD,EAGMsB,EAAY,IAAM,CAClBtB,EAAa,MAAQlD,EAAM,OAAO,OAAS,IAC7CkD,EAAa,QACbkB,IACAG,IACAjF,EAAK,SAAU4D,EAAa,KAAK,EACjC5D,EAAK,sBAAuB4D,EAAa,KAAK,EAElD,EAGMqB,EAAyB,IAAM,CACnCZ,EAAY,MAAMT,EAAa,KAAK,EAAI,CACtC,GAAGS,EAAY,MAAMT,EAAa,KAAK,EACvC,MAAO,EACP,WAAY,EACZ,WAAY,CAChB,CACA,EAGMuB,EAAiBC,GAAU,CAC/B,MAAMC,EAAQhB,EAAY,MAAMe,CAAK,EACrC,MAAO,CACL,UAAW,SAASC,EAAM,KAAK,eAAeA,EAAM,UAAU,OAAOA,EAAM,UAAU,MACrF,WAAYtB,EAAc,MAAQ,OAAS,sBAC3C,QAASsB,EAAM,SAAW,EAAI,CAClC,CACA,EAGMC,EAAmBF,GAAU,CACjC,MAAMG,EAAM,MAAM,OAClBlB,EAAY,MAAMe,CAAK,EAAI,CACzB,GAAGf,EAAY,MAAMe,CAAK,EAC1B,aAAcG,EAAI,aAClB,cAAeA,EAAI,cACnB,SAAU,EACd,CACA,EAGMC,EAAmBrF,GAAU,CAC7BA,EAAM,OAAO,UAAY,OAE3B4D,EAAc,MAAQ,GACtBC,EAAO,MAAQ7D,EAAM,QAAUkE,EAAY,MAAMT,EAAa,KAAK,EAAE,WACrEK,EAAO,MAAQ9D,EAAM,QAAUkE,EAAY,MAAMT,EAAa,KAAK,EAAE,aAGrEE,EAAW,MAAQ,GACnBE,EAAO,MAAQ7D,EAAM,QAAU+D,EAAkB,OAEnD/D,EAAM,eAAc,CACtB,EAGMsF,EAAmBtF,GAAU,CACjC,GAAI4D,EAAc,MAAO,CAEvB,MAAM2B,EAAgBvF,EAAM,QAAU6D,EAAO,MACvC2B,EAAgBxF,EAAM,QAAU8D,EAAO,MAE7CI,EAAY,MAAMT,EAAa,KAAK,EAAI,CACtC,GAAGS,EAAY,MAAMT,EAAa,KAAK,EACvC,WAAY8B,EACZ,WAAYC,CAClB,CACE,SAAW7B,EAAW,OAASpD,EAAM,YAAa,CAEhD,MAAMgF,EAAgBvF,EAAM,QAAU6D,EAAO,MAC7CE,EAAkB,MAAQwB,CAC5B,CACF,EAGME,EAAgB,IAAM,CAC1B,GAAI9B,EAAW,OAASpD,EAAM,YAAa,CAEzC,MAAMmF,EAAiB1B,EAAe,MAAQ,GAE1C,KAAK,IAAID,EAAkB,MAAQN,EAAa,MAAQO,EAAe,KAAK,EAAI0B,EAC9E3B,EAAkB,MAAQ,EAC5Bc,IAEAE,IAIFJ,GAEJ,CAEAhB,EAAW,MAAQ,GACnBC,EAAc,MAAQ,EACxB,EAGM+B,EAAoB3F,GAAU,CAClC,MAAM4F,EAAQ5F,EAAM,QAAQ,CAAC,EAC7BmE,EAAY,MAAQyB,EAAM,QAC1BxB,EAAY,MAAQwB,EAAM,QAC1BvB,EAAe,MAAQ,KAAK,KAC9B,EAGMwB,EAAmB7F,GAAU,CACjC,MAAM4F,EAAQ5F,EAAM,QAAQ,CAAC,EAC7BsE,EAAW,MAAQsB,EAAM,QACzBrB,EAAW,MAAQqB,EAAM,QAEzB,MAAME,EAASxB,EAAW,MAAQH,EAAY,MACxC4B,EAASxB,EAAW,MAAQH,EAAY,MAE9C,GAAI,KAAK,IAAI0B,CAAM,EAAI,KAAK,IAAIC,CAAM,EAEpC/F,EAAM,eAAc,EACpB2D,EAAW,MAAQ,GACnBI,EAAkB,MAAQ,CAACN,EAAa,MAAQO,EAAe,MAAQ8B,UAC9D5B,EAAY,MAAMT,EAAa,KAAK,EAAE,MAAQ,EAAG,CAE1DzD,EAAM,eAAc,EACpB4D,EAAc,MAAQ,GAEtB,MAAM2B,EAAgBO,EAAS5B,EAAY,MAAMT,EAAa,KAAK,EAAE,WAC/D+B,EAAgBO,EAAS7B,EAAY,MAAMT,EAAa,KAAK,EAAE,WAErES,EAAY,MAAMT,EAAa,KAAK,EAAI,CACtC,GAAGS,EAAY,MAAMT,EAAa,KAAK,EACvC,WAAY8B,EACZ,WAAYC,CAClB,CACE,CACF,EAGMQ,EAAiB,IAAM,CAC3B,GAAIrC,EAAW,MAAO,CACpB,MAAMmC,EAASxB,EAAW,MAAQH,EAAY,MACxC8B,EAAY,KAAK,IAAG,EAAK5B,EAAe,MACxCqB,EAAiB1B,EAAe,MAAQ,GACxCkC,EAAgB,KAAK,IAAIJ,CAAM,EAAIG,EAGrC,KAAK,IAAIH,CAAM,EAAIJ,GAAkBQ,EAAgB,GACnDJ,EAAS,EACXjB,IAEAE,IAGFJ,GAEJ,CAEAhB,EAAW,MAAQ,GACnBC,EAAc,MAAQ,EACxB,EAGMuC,EAAc,CAACnG,EAAOiF,IAAU,CACpC,GAAIA,IAAUxB,EAAa,MAAO,OAElCzD,EAAM,eAAc,EAEpB,MAAMoG,EAAQpG,EAAM,OAAS,EAAI,IAAO,GAClCqG,EAASrG,EAAM,QACfsG,EAAStG,EAAM,QAErBuG,EAAUF,EAAQC,EAAQF,CAAK,CACjC,EAGMG,EAAY,CAACC,EAASC,EAASL,IAAU,CAC7C,MAAMlB,EAAQhB,EAAY,MAAMT,EAAa,KAAK,EAC5CiD,EAAW,KAAK,IACpBnG,EAAM,SACN,KAAK,IAAIA,EAAM,SAAU2E,EAAM,MAAQkB,CAAK,CAChD,EAGQO,EAAO,MAAM,OAAO,sBAAqB,EACzCC,EAASJ,EAAUG,EAAK,KACxBE,EAASJ,EAAUE,EAAK,IAGxBG,EAAYJ,EAAWxB,EAAM,MAC7BK,EAAgBL,EAAM,YAAc0B,EAAS1B,EAAM,aAAe4B,EAAY5B,EAAM,OACpFM,EAAgBN,EAAM,YAAc2B,EAAS3B,EAAM,aAAe4B,EAAY5B,EAAM,OAE1FhB,EAAY,MAAMT,EAAa,KAAK,EAAI,CACtC,GAAGyB,EACH,MAAOwB,EACP,WAAYnB,EACZ,WAAYC,CAChB,CACA,gBA1YEvF,cAAA,EAAAT,uBAsEM,MAtENU,aAsEM,CApEuBR,EAAA,OAAO,OAAM,GAAxCO,IAAAA,YAAAT,IAAAA,mBAEM,MAFNY,aAEM,CADJD,IAAAA,mBAA4E,OAA5EG,aAA4ED,IAAAA,gBAA9CoD,EAAA,SAAmB,IAACpD,IAAAA,gBAAGX,EAAA,OAAO,MAAM,EAAA,CAAA,mCAIbA,EAAA,8BAAvDF,IAAAA,mBAKS,SAAA,OALD,MAAM,YAAa,uBAAOK,EAAI,OAAA,qBACpCM,IAAAA,mBAGM,MAAA,CAHD,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,OAAO,eAAe,eAAa,MAC7FA,IAAAA,mBAA2C,OAAA,CAArC,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,OAC/BA,IAAAA,mBAA2C,OAAA,CAArC,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,+CAKnCA,IAAAA,mBAkCM,MAlCN4G,aAkCM,CAjCJ5G,IAAAA,mBAgCM,MAAA,CA/BJ,MAAM,yBACF,gBAAJ,IAAIuD,EACH,yBAAOc,EAAA,KAAkB,EACzB,aAAYmB,EACZ,YAAWE,EACX,WAAUG,EACV,YAAWX,EACX,YAAWC,EACX,UAASG,EACT,aAAYA,KAEbxF,IAAAA,UAAA,EAAA,EAAAT,IAAAA,mBAmBM2D,aAAA,KAAAC,IAAAA,WAlBqB1D,EAAA,OAAM,CAAvBsH,EAAO/B,qBADjBzF,IAAAA,mBAmBM,MAAA,CAjBH,IAAKyF,EACN,MAAM,eACL,yBAAOR,EAAA,KAAU,IAElBtE,IAAAA,mBAYM,MAAA,CAXJ,MAAM,kBACL,QAAKmD,GAAE6C,EAAY7C,EAAQ2B,CAAK,IAEjC9E,IAAAA,mBAOC,MAAA,CANE,IAAK6G,EACN,IAAI,gBACJ,MAAM,gBACL,MAAK3D,IAAAA,eAAE2B,EAAcC,CAAK,CAAA,EAC1B,OAAI3B,GAAE6B,EAAgBF,CAAK,EAC5B,QAAQ,mEAQlB9E,IAAAA,mBAQS,SAAA,CAPP,MAAM,mBACL,QAAO0E,EACP,SAAUpB,EAAA,QAAY,oBAEvBtD,IAAAA,mBAEM,MAAA,CAFD,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,OAAO,eAAe,eAAa,MAC7FA,IAAAA,mBAA8C,WAAA,CAApC,OAAO,iBAAiB,CAAA,0BAGtCA,IAAAA,mBAQS,SAAA,CAPP,MAAM,mBACL,QAAO4E,EACP,SAAUtB,EAAA,QAAiB/D,EAAA,OAAO,OAAM,oBAEzCS,IAAAA,mBAEM,MAAA,CAFD,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,OAAO,eAAe,eAAa,MAC7FA,IAAAA,mBAA6C,WAAA,CAAnC,OAAO,gBAAgB,CAAA,yoBCjCzC,MAAMI,EAAQb,EA4DRG,EAAOC,EAGPmH,EAAepF,IAAAA,IAAI,IAAI,EACvBqF,EAAarF,IAAAA,IAAI,IAAI,EAGrBsF,EAAWtF,IAAAA,IAAI,EAAK,EACpBuF,EAAmBvF,IAAAA,IAAI,IAAI,EAC3BwF,EAAkBxF,IAAAA,IAAI,CAAC,EACvByF,EAAczF,IAAAA,IAAI,CAAA,CAAE,EAGpB8B,EAAa9B,IAAAA,IAAI,EAAK,EACtB0F,EAAe1F,IAAAA,IAAI,CAAC,EACpB2F,EAAiB3F,IAAAA,IAAI,CAAC,EACtB4F,EAAa5F,IAAAA,IAAI,CAAC,EAClB6F,EAAsB7F,IAAAA,IAAI,EAAK,EAG/B8F,EAAiBlH,IAAAA,SAAS,KAAO,CAErC,OAAQ,OAAOF,EAAM,iBAAoB,SAAW,GAAGA,EAAM,eAAe,KAAOA,EAAM,gBACzF,MAAO,OAAOA,EAAM,gBAAmB,SAAW,GAAGA,EAAM,cAAc,KAAOA,EAAM,eACtF,SAAU,SACV,SAAU,UACZ,EAAE,EAGIqH,EAAenH,IAAAA,SAAS,IAAM,CAClC,MAAMoH,EAAQ,CACZ,KAAK,OACL,SAAU,WACV,WAAY,OACZ,WAAY,WAChB,EAGE,OAAItH,EAAM,YAAc,WACtBsH,EAAM,UAAY,cAAcR,EAAgB,KAAK,MAErDQ,EAAM,UAAY,cAAcR,EAAgB,KAAK,MAGhDQ,CACT,CAAC,EAMKC,EAAoB,IAAM,CAC9B,GAAI,CAACvH,EAAM,MAAQA,EAAM,KAAK,SAAW,EAAG,CAC1C+G,EAAY,MAAQ,GACpB,MACF,CAEI/G,EAAM,KAER+G,EAAY,MAAQ,CAAC,GAAG/G,EAAM,KAAM,GAAGA,EAAM,IAAI,EAGjD+G,EAAY,MAAQ,CAAC,GAAG/G,EAAM,IAAI,CAEtC,EAMMwH,EAAU,IAAM,CAEpB,GAAIZ,EAAS,OAASxD,EAAW,MAAO,CACtCyD,EAAiB,MAAQ,sBAAsBW,CAAO,EACtD,MACF,CAEA,MAAMC,EAAYf,EAAa,MACzBgB,EAAUf,EAAW,MAG3B,GAAI,CAACc,GAAa,CAACC,EAAS,CAC1Bb,EAAiB,MAAQ,sBAAsBW,CAAO,EACtD,MACF,CAGA,MAAMG,EAAgB3H,EAAM,YAAc,WACtCyH,EAAU,aACVA,EAAU,YAQRG,GALW5H,EAAM,YAAc,WACjCA,EAAM,WACNA,EAAM,WAGmBA,EAAM,KAAK,OAMxC,GAHA8G,EAAgB,OAAS9G,EAAM,MAG3BA,EAAM,KAEJ,KAAK,IAAI8G,EAAgB,KAAK,GAAKc,IACrCd,EAAgB,MAAQ,OAErB,CAEL,MAAMe,EAAc,EAAED,EAAYD,GAElC,GAAIb,EAAgB,OAASe,EAAa,CACxCf,EAAgB,MAAQe,EACxBjB,EAAS,MAAQ,GACjBtH,EAAK,SAAUwH,EAAgB,KAAK,EACpC,MACF,CACF,CAGAxH,EAAK,SAAUwH,EAAgB,KAAK,EAGpCD,EAAiB,MAAQ,sBAAsBW,CAAO,CACxD,EAMMM,EAAiB,IAAM,CACvBjB,EAAiB,OACnB,qBAAqBA,EAAiB,KAAK,EAE7CA,EAAiB,MAAQ,sBAAsBW,CAAO,CACxD,EAMMO,EAAgB,IAAM,CACtBlB,EAAiB,QACnB,qBAAqBA,EAAiB,KAAK,EAC3CA,EAAiB,MAAQ,KAE7B,EAKMmB,EAAQ,IAAM,CAClBpB,EAAS,MAAQ,GACjBtH,EAAK,OAAO,CACd,EAKM2I,EAAS,IAAM,CACnBrB,EAAS,MAAQ,GACjBtH,EAAK,QAAQ,CACf,EAKM4I,EAAmB,IAAM,CACzBlI,EAAM,cACRgI,GAEJ,EAKMG,EAAmB,IAAM,CAEzBnI,EAAM,cAAgB,CAACoD,EAAW,OACpC6E,GAEJ,EAMMnD,EAAmBsD,GAAM,CAE7BhF,EAAW,MAAQ,GAEnB+D,EAAoB,MAAQP,EAAS,MAErCA,EAAS,MAAQ,GAGjBI,EAAa,MAAQhH,EAAM,YAAc,WAAaoI,EAAE,QAAUA,EAAE,QACpEnB,EAAe,MAAQD,EAAa,MAEpCE,EAAW,MAAQJ,EAAgB,MAGnCxH,EAAK,WAAW,EAGhB,SAAS,iBAAiB,YAAayF,CAAe,EACtD,SAAS,iBAAiB,UAAWG,CAAa,CACpD,EAMMH,EAAmBqD,GAAM,CAC7B,GAAI,CAAChF,EAAW,MAAO,OAGvB6D,EAAe,MAAQjH,EAAM,YAAc,WAAaoI,EAAE,QAAUA,EAAE,QAEtE,MAAMvC,EAAQoB,EAAe,MAAQD,EAAa,MAGlDF,EAAgB,MAAQI,EAAW,MAAQrB,EAE3C,MAAM4B,EAAYf,EAAa,MACzBgB,EAAUf,EAAW,MAG3B,GAAIc,GAAaC,EAAS,CACxB,MAAMC,EAAgB3H,EAAM,YAAc,WACtCyH,EAAU,aACVA,EAAU,YAMRG,GAJW5H,EAAM,YAAc,WACjCA,EAAM,WACNA,EAAM,WAEmBA,EAAM,KAAK,OAGxC,GAAIA,EAAM,KACJ8G,EAAgB,MAAQ,EAC1BA,EAAgB,MAAQ,EACf,KAAK,IAAIA,EAAgB,KAAK,EAAIc,IAC3Cd,EAAgB,MAAQ,CAACc,OAEtB,CAEL,MAAMC,EAAc,EAAED,EAAYD,GAC9Bb,EAAgB,MAAQ,EAC1BA,EAAgB,MAAQ,EACfA,EAAgB,MAAQe,IACjCf,EAAgB,MAAQe,EAE5B,CACF,CAGAvI,EAAK,SAAUwH,EAAgB,KAAK,CACtC,EAMM5B,EAAgB,IAAM,CACrB9B,EAAW,QAGhBA,EAAW,MAAQ,GAGnB,SAAS,oBAAoB,YAAa2B,CAAe,EACzD,SAAS,oBAAoB,UAAWG,CAAa,EAGhDiC,EAAoB,QACvBP,EAAS,MAAQ,IAInBtH,EAAK,SAAS,EAChB,EAMM8F,EAAoBgD,GAAM,CAC9B,MAAM/C,EAAQ+C,EAAE,QAAQ,CAAC,EACzBhF,EAAW,MAAQ,GACnB+D,EAAoB,MAAQP,EAAS,MACrCA,EAAS,MAAQ,GAEjBI,EAAa,MAAQhH,EAAM,YAAc,WAAaqF,EAAM,QAAUA,EAAM,QAC5E4B,EAAe,MAAQD,EAAa,MACpCE,EAAW,MAAQJ,EAAgB,MAEnCxH,EAAK,WAAW,CAClB,EAMMgG,EAAmB8C,GAAM,CAC7B,GAAI,CAAChF,EAAW,MAAO,OAGvBgF,EAAE,eAAc,EAEhB,MAAM/C,EAAQ+C,EAAE,QAAQ,CAAC,EACzBnB,EAAe,MAAQjH,EAAM,YAAc,WAAaqF,EAAM,QAAUA,EAAM,QAC9E,MAAMQ,EAAQoB,EAAe,MAAQD,EAAa,MAElDF,EAAgB,MAAQI,EAAW,MAAQrB,EAE3C,MAAM4B,EAAYf,EAAa,MACzBgB,EAAUf,EAAW,MAG3B,GAAIc,GAAaC,EAAS,CACxB,MAAMC,EAAgB3H,EAAM,YAAc,WACtCyH,EAAU,aACVA,EAAU,YAMRG,GAJW5H,EAAM,YAAc,WACjCA,EAAM,WACNA,EAAM,WAEmBA,EAAM,KAAK,OAGxC,GAAIA,EAAM,KACJ8G,EAAgB,MAAQ,EAC1BA,EAAgB,MAAQ,EACf,KAAK,IAAIA,EAAgB,KAAK,EAAIc,IAC3Cd,EAAgB,MAAQ,CAACc,OAEtB,CAEL,MAAMC,EAAc,EAAED,EAAYD,GAC9Bb,EAAgB,MAAQ,EAC1BA,EAAgB,MAAQ,EACfA,EAAgB,MAAQe,IACjCf,EAAgB,MAAQe,EAE5B,CACF,CAGAvI,EAAK,SAAUwH,EAAgB,KAAK,CACtC,EAMMrB,EAAiB,IAAM,CACtBrC,EAAW,QAGhBA,EAAW,MAAQ,GAGd+D,EAAoB,QACvBP,EAAS,MAAQ,IAInBtH,EAAK,SAAS,EAChB,EAKM+I,EAAYC,GAAa,CAC7BxB,EAAgB,MAAQwB,CAC1B,EAKMC,EAAc,IAAM,CACxBzB,EAAgB,MAAQ,CAC1B,EAKM0B,EAAiB,IAAM,CAC3B,MAAMf,EAAYf,EAAa,MAC/B,GAAIe,EAAW,CACb,MAAMC,EAAUf,EAAW,MAC3B,GAAIe,EAAS,CAEX,MAAME,EAAY5H,EAAM,YAAc,WAClC0H,EAAQ,aACRA,EAAQ,YACZZ,EAAgB,MAAQ,EAAEc,EAAYH,EAAU,aAClD,CACF,CACF,EAGAjG,WAAAA,MAAM,IAAMxB,EAAM,KAAM,IAAM,CAE5BuH,IACAT,EAAgB,MAAQ,CAC1B,EAAG,CAAE,KAAM,EAAI,CAAE,EAGjBtF,IAAAA,MAAM,IAAMxB,EAAM,MAAO,IAAM,CAExB4G,EAAS,QACZmB,IACAD,IAEJ,CAAC,EAGDvG,IAAAA,UAAU,IAAM,CAEdgG,IAGAkB,IAAAA,SAAS,IAAM,CACbX,IAGA,MAAML,EAAYf,EAAa,MAC3Be,IACFA,EAAU,iBAAiB,aAAcS,CAAgB,EACzDT,EAAU,iBAAiB,aAAcU,CAAgB,EAE7D,CAAC,CACH,CAAC,EAGDO,IAAAA,YAAY,IAAM,CAEhBX,IAGA,MAAMN,EAAYf,EAAa,MAC3Be,IACFA,EAAU,oBAAoB,aAAcS,CAAgB,EAC5DT,EAAU,oBAAoB,aAAcU,CAAgB,GAI9D,SAAS,oBAAoB,YAAapD,CAAe,EACzD,SAAS,oBAAoB,UAAWG,CAAa,CACvD,CAAC,EAQDyD,EAAa,CACX,MAAAX,EACA,OAAAC,EACA,SAAAI,EACA,YAAAE,EACA,eAAAC,EACA,SAAA5B,EACA,WAAAxD,CACF,CAAC,0BAljBCnE,IAAAA,mBAwBM,MAAA,CAvBJ,MAAM,gCACF,eAAJ,IAAIyH,EACH,yBAAOU,EAAA,KAAc,EACrB,YAAWtC,EACX,aAAYM,EACZ,YAAWE,EACX,WAAUG,IAGX7F,IAAAA,mBAaM,MAAA,CAZJ,MAAM,yBACF,aAAJ,IAAI+G,EACH,yBAAOU,EAAA,KAAY,KAIpB3H,IAAAA,UAAA,EAAA,EAAAT,IAAAA,mBAKO2D,aAAA,KAAAC,IAAAA,WALmCkE,EAAA,MAAW,CAA3B6B,EAAMlE,IAAhCtF,eAKOC,EAAA,OAAA,OAAA,CALiD,KAAMuJ,EAAO,MAAOlE,GAA5E,IAKO,CAHL9E,IAAAA,mBAEM,MAAA,CAFD,MAAM,eAAgB,yBAAOT,EAAA,SAAS,uBACtCyJ,CAAI,EAAA,CAAA,4jBCejB,MAAM5I,EAAQb,EAiCRG,EAAOC,EAGPsJ,EAAuB,IAAM,CAC7B7I,EAAM,eACRV,EAAK,iBAAkB,EAAK,EAC5BA,EAAK,OAAO,EAEhB,EAGAkC,WAAAA,MAAM,IAAMxB,EAAM,QAAU8I,GAAW,CACjCA,EAEF,SAAS,KAAK,MAAM,SAAW,SAG/B,SAAS,KAAK,MAAM,SAAW,EAEnC,CAAC,EAGDJ,IAAAA,YAAY,IAAM,CAChB,SAAS,KAAK,MAAM,SAAW,EACjC,CAAC,EAGDC,EAAa,CACX,KAAM,IAAMrJ,EAAK,iBAAkB,EAAI,EACvC,KAAM,IAAM,CACVA,EAAK,iBAAkB,EAAK,EAC5BA,EAAK,OAAO,CACd,CACF,CAAC,SAtGSH,EAAA,yBADRF,IAAAA,mBA+BM,MAAA,OA7BJ,MAAKC,IAAAA,eAAA,CAAC,yBAAwB,CAAA,oBACCC,EAAA,YAAY,CAAA,CAAA,EAC1C,QAAO0J,IAERjJ,IAAAA,mBAwBM,MAAA,CAxBD,MAAM,uBAAwB,sCAAD,IAAA,CAAA,EAAW,CAAA,MAAA,CAAA,KAE3CR,IAAAA,WAgBOC,sBAhBP,IAgBO,CAfLO,IAAAA,mBAcM,MAAA,CAdD,MAAKV,IAAAA,eAAA,CAAC,uBAA+BC,EAAA,WAAW,CAAA,IACxCA,EAAA,cAAW,YAAtBO,IAAAA,YAAAT,IAAAA,mBAEM,MAFNU,aAEM,CAAA,GAAAoJ,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CADJnJ,IAAAA,mBAA0B,MAAA,CAArB,MAAM,QAAQ,EAAA,KAAA,EAAA,OAELT,EAAA,cAAW,QAA3BO,IAAAA,YAAAT,IAAAA,mBAIM,MAJNY,aAIM,CAAA,GAAAkJ,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAHJnJ,IAAAA,mBAAuB,MAAA,CAAlB,MAAM,KAAK,EAAA,KAAA,EAAA,EAChBA,IAAAA,mBAAuB,MAAA,CAAlB,MAAM,KAAK,EAAA,KAAA,EAAA,EAChBA,IAAAA,mBAAuB,MAAA,CAAlB,MAAM,KAAK,EAAA,KAAA,EAAA,OAEFT,EAAA,cAAW,QAA3BO,IAAAA,YAAAT,IAAAA,mBAIM,MAJNc,aAIM,CAAA,GAAAgJ,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAHJnJ,IAAAA,mBAAuB,MAAA,CAAlB,MAAM,KAAK,EAAA,KAAA,EAAA,EAChBA,IAAAA,mBAAuB,MAAA,CAAlB,MAAM,KAAK,EAAA,KAAA,EAAA,EAChBA,IAAAA,mBAAuB,MAAA,CAAlB,MAAM,KAAK,EAAA,KAAA,EAAA,8CAMXT,EAAA,sBAAXF,IAAAA,mBAEM,MAAA,OAFW,MAAM,oBAAqB,yBAAOE,EAAA,SAAS,uBACvDA,EAAA,IAAI,EAAA,CAAA,yqBCmEf,MAAMa,EAAQb,EA0DRG,EAAOC,EAGPyJ,EAAY1H,IAAAA,IAAI,EAAI,EACpB2H,EAAU3H,IAAAA,IAAI,EAAE,EAChB4H,EAAM5H,IAAAA,IAAItB,EAAM,aAAa,EAG7BmJ,EAAc,IAAM,CAEzB,GADA,QAAQ,IAAI,gBAAkBH,EAAU,KAAK,EACzC,CAACA,EAAU,MAAO,CAErB,QAAQ,IAAI,IAAMhJ,EAAM,cAAgB,QAAQ,EAChD,MACD,CACAV,EAAK,cAAc,CAEpB,EAgBA,OAAAqJ,EAAa,CACZ,UAdiB,IAAM,CACvBO,EAAI,MAAQlJ,EAAM,cAClB,IAAIoJ,EAAO,YAAY,IAAM,CAC5BJ,EAAU,MAAQ,GAClBE,EAAI,QACAA,EAAI,QAAU,IACjBF,EAAU,MAAQ,GAClB,cAAcI,CAAI,EAEpB,EAAG,GAAI,CACR,EAKC,QAAAH,CACD,CAAC,UA7LAvJ,cAAA,EAAAT,uBASM,MATNU,aASM,CARLC,IAAAA,mBAOM,MAAA,CAPD,MAAM,sBAAuB,qCAAqBT,EAAA,UAAU,CAAA,uBAChES,IAAAA,mBACuD,QAAA,CADhD,KAAK,OAAO,MAAM,gBAAgB,oBAAkB,aAAa,YAAY,8CAC1EqJ,EAAO,MAAAlG,GAAG,gCAAgB5D,EAAA,cAAc,CAAA,4BAAxC8J,EAAA,KAAO,IAEYD,EAAA,qDAD7B/J,IAAAA,mBAC2G,MAAA,OADtG,MAAKC,IAAAA,eAAA,CAAC,eAAc,CAAA,SAAA,CACqC8J,EAAA,KAAS,CAAA,CAAA,EAD5C,MAAKlG,IAAAA,eAAA,CAAA,MAAW3D,EAAA,oBAAmB,WAAcA,EAAA,eAAe,CAAA,EACzF,QAAOgK,uBAAmED,EAAA,KAAG,EAAE,IAACpJ,IAAAA,gBAAEX,EAAA,eAAe,EAAA,CAAA,GAEvE6J,EAAA,uBAD5B/J,IAAAA,mBAC+D,MAAA,OAD1D,MAAM,eAAgB,MAAK6D,IAAAA,eAAA,CAAA,MAAW3D,EAAA,oBAAmB,WAAcA,EAAA,eAAe,CAAA,EACzF,QAAOgK,uBAAgChK,EAAA,cAAc,EAAA,CAAA,kwBCqD1D,MAAMkK,EAAQC,IAAAA,SAAQ,EAChBC,EAAejI,IAAAA,IAAI,IAAI,EAQvBtB,EAAQb,EAsDRG,EAAOC,EAGbiK,IAAAA,WAAW,KAAO,CAChB,UAAW,OAAOxJ,EAAM,SAAS,EAAI,KACrC,OAAQ,OAAOA,EAAM,MAAM,EAAI,IACjC,EAAE,EAGF,MAAMyJ,EAAUnI,IAAAA,IAAI,CAAA,CAAE,EAChBoI,EAAcpI,IAAAA,IAAI,CAAC,EAGnBqI,EAAczJ,IAAAA,SAAS,IACpBmJ,EAAM,UAAY,MAC1B,EAQKO,EAAuBhB,IAKvBW,EAAa,OACEA,EAAa,MAAM,YAIjB,KAAK,IAAIvJ,EAAM,OAAQA,EAAM,SAAS,EAGzC,SAASA,EAAM,SAAS,EAC3B,SAASA,EAAM,MAAM,EAO7B,IAAM,KAAK,MAAM,KAAK,SAAW,GAAG,EAAI,IAM3C6J,EAAU,IAAM,CACpB,QAAQ,IAAI,eAAgB7J,EAAM,KAAK,MAAM,EAG7C,MAAM8J,EAAe,KAAK,IAAI9J,EAAM,OAAQA,EAAM,SAAS,EAC3D0J,EAAY,MAAQI,EAGpB,MAAMC,EAAa,CAAA,EACnB,QAAShJ,EAAI,EAAGA,EAAI+I,EAAc/I,IAChCgJ,EAAW,KAAK,CACd,MAAO,CAAA,EACP,OAAQ,CACd,CAAK,EAEHN,EAAQ,MAAQM,EAGhB/J,EAAM,KAAK,QAAQ,CAAC4I,EAAMlE,IAAU,CAElC,MAAMsF,EAAaJ,EAAwB,EAG3C,IAAIK,EAAY,IACZC,EAAiB,EACrB,QAASnJ,EAAI,EAAGA,EAAI+I,EAAc/I,IAC5B0I,EAAQ,MAAM1I,CAAC,EAAE,OAASkJ,IAC5BA,EAAYR,EAAQ,MAAM1I,CAAC,EAAE,OAC7BmJ,EAAiBnJ,GAKrB0I,EAAQ,MAAMS,CAAc,EAAE,MAAM,KAAKtB,CAAI,EAC7Ca,EAAQ,MAAMS,CAAc,EAAE,QAAUF,EACxC,QAAQ,IAAI,UAAW,CAAE,UAAWtF,EAAO,YAAawF,EAAgB,WAAAF,EAAY,aAAcP,EAAQ,MAAMS,CAAc,EAAE,MAAM,CAAE,CAC1I,CAAC,EAGD,QAAQ,IAAI,cAAeT,EAAQ,MAAM,IAAI,CAACU,EAAKC,IAAQ,IAAIA,EAAI,CAAC,KAAKD,EAAI,MAAM,MAAM,GAAG,CAAC,EAC7F,QAAQ,IAAI,aAAcV,EAAQ,MAAM,IAAI,CAACU,EAAKC,IAAQ,IAAIA,EAAI,CAAC,KAAKD,EAAI,MAAM,IAAI,CAAC,CACzF,EAKMvF,EAAmBnF,GAAU,CACjCH,EAAK,OAAQG,CAAK,CACpB,EAKM4K,EAAoB5K,GAAU,CAClCH,EAAK,QAASG,CAAK,CACrB,EAGA+B,WAAAA,MAAM,IAAMxB,EAAM,KAAM,IAAM,CAC5B,QAAQ,IAAI,aAAa,EACzB6J,GACF,EAAG,CAAE,KAAM,EAAI,CAAE,EAGjBrI,IAAAA,MAAM,IAAM,CAACxB,EAAM,OAAQA,EAAM,SAAS,EAAG,IAAM,CACjD,QAAQ,IAAI,WAAW,EACvB0J,EAAY,MAAQ,KAAK,IAAI1J,EAAM,OAAQA,EAAM,SAAS,EAC1D6J,GACF,CAAC,EAGDrI,IAAAA,MAAM,IAAM,CAACxB,EAAM,UAAWA,EAAM,MAAM,EAAG,IAAM,CACjD,QAAQ,IAAI,kBAAkB,EAC9B6J,GACF,CAAC,EAIDtI,IAAAA,UAAU,IAAM,CACd,QAAQ,IAAI,kBAAkB,EAC9B,QAAQ,IAAI,YAAY,EACxB,QAAQ,IAAI,SAAUvB,EAAM,KAAK,MAAM,EACvC,GAAI,CACF6J,IACA,QAAQ,IAAI,oBAAoB,CAClC,OAASrJ,EAAO,CACd,QAAQ,MAAM,iBAAkBA,CAAK,EACrC,QAAQ,IAAI,oBAAoB,CAClC,CACF,CAAC,EAGDmI,EAAa,CACX,QAAAkB,CACF,CAAC,0BA3QC5K,IAAAA,mBAqDM,MAAA,SArDG,eAAJ,IAAIsK,IACP3J,IAAAA,mBAQM,MARND,aAQM,qBARuB,QACvBG,oBAAG4J,EAAA,KAAW,EAAG,IACrB,CAAA,cAAA9J,uBAAK,KAAA,KAAA,KAAA,EAAA,GAAA0K,oBAAA,UACCxK,IAAAA,gBAAGX,EAAA,KAAK,MAAM,EAAG,IACvB,CAAA,cAAAS,uBAAK,KAAA,KAAA,KAAA,EAAA,IACLF,IAAAA,UAAA,EAAA,EAAAT,IAAAA,mBAEW2D,aAAA,KAAAC,IAAAA,WAFyB4G,EAAA,MAAO,CAAzBc,EAAQ7F,8DAAyBA,GAAK,qBAAE,KACvD5E,oBAAG4E,EAAK,CAAA,EAAO,4BAAQ6F,EAAO,MAAM,MAAM,EAAA,CAAA,cAAG3K,IAAAA,mBAAK,KAAA,KAAA,KAAA,EAAA,kBAGvDA,IAAAA,mBA0CM,MA1CNC,aA0CM,EAxCJH,IAAAA,UAAA,EAAA,EAAAT,IAAAA,mBAuCM2D,aAAA,KAAAC,IAAAA,WAtCsB4G,EAAA,MAAO,CAAzBc,EAAQ7F,qBADlBzF,IAAAA,mBAuCM,MAAA,CArCH,IAAKyF,EACN,MAAM,qBAEN9E,IAAAA,mBAEM,MAFNG,aAA0B,yBACpB2E,EAAK,CAAA,EAAO,KAAE5E,IAAAA,gBAAGyK,EAAO,MAAM,MAAM,EAAG,OAC7C,CAAA,GACA7K,IAAAA,UAAA,EAAA,EAAAT,IAAAA,mBA8BM2D,iCA7BwB2H,EAAO,MAAK,CAAhC3B,EAAM4B,qBADhBvL,IAAAA,mBA8BM,MAAA,CA5BH,IAAK2J,EAAKzJ,SAAO,GAAA,MAAWuF,CAAK,IAAI8F,CAAS,GAC/C,MAAM,mBAEUb,EAAA,OACdjK,IAAAA,YAAAT,IAAAA,mBAaM,MAbNuH,aAaM,CAXJ5G,IAAAA,mBAME,MAAA,CALC,IAAKgJ,EAAKzJ,EAAA,QAAQ,EACnB,MAAM,kBACL,MAAK2D,IAAAA,eAAA,CAAA,OAAY8G,EAAwB,EAAA,KAAA,EACzC,OAAMhF,EACN,QAAOyF,yBAGVzK,IAAAA,mBAEM,MAFN,WAEM,CADJR,eAAwCC,EAAA,OAAA,UAAA,CAAjC,KAAMuJ,EAAO,MAAO4B,oCAK/BvL,IAAAA,mBAME,MAAA,OALC,IAAK2J,EAAKzJ,EAAA,QAAQ,EACnB,MAAM,kBACL,MAAK2D,IAAAA,eAAA,CAAA,OAAY8G,EAAwB,EAAA,KAAA,EACzC,OAAMhF,EACN,QAAOyF;;;;;;;gCCxCrB,SAASjC,EAAEqC,EAAE,CAAmD,eAAeA,EAAC,CAA0G,GAAE,OAAO,UAAU,CAAC,OAAO,SAASrC,EAAE,CAAC,IAAIqC,EAAE,GAAG,SAASC,EAAEC,EAAE,CAAC,GAAGF,EAAEE,CAAC,EAAE,OAAOF,EAAEE,CAAC,EAAE,QAAQ,IAAIC,EAAEH,EAAEE,CAAC,EAAE,CAAC,EAAEA,EAAE,EAAE,GAAG,QAAQ,CAAA,CAAE,EAAE,OAAOvC,EAAEuC,CAAC,EAAE,KAAKC,EAAE,QAAQA,EAAEA,EAAE,QAAQF,CAAC,EAAEE,EAAE,EAAE,GAAGA,EAAE,OAAO,CAAC,OAAOF,EAAE,EAAEtC,EAAEsC,EAAE,EAAED,EAAEC,EAAE,EAAE,SAAStC,EAAEqC,EAAEE,EAAE,CAACD,EAAE,EAAEtC,EAAEqC,CAAC,GAAG,OAAO,eAAerC,EAAEqC,EAAE,CAAC,WAAW,GAAG,IAAIE,CAAC,CAAC,CAAC,EAAED,EAAE,EAAE,SAAStC,EAAE,CAAc,OAAO,OAApB,KAA4B,OAAO,aAAa,OAAO,eAAeA,EAAE,OAAO,YAAY,CAAC,MAAM,QAAQ,CAAC,EAAE,OAAO,eAAeA,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,EAAEsC,EAAE,EAAE,SAAStC,EAAEqC,EAAE,CAA+B,GAA3B,EAAEA,IAAIrC,EAAEsC,EAAEtC,CAAC,GAAG,EAAEqC,GAAc,EAAEA,GAAa,OAAOrC,GAAjB,UAAoBA,GAAGA,EAAE,WAAW,OAAOA,EAAE,IAAIuC,EAAE,OAAO,OAAO,IAAI,EAAE,GAAGD,EAAE,EAAEC,CAAC,EAAE,OAAO,eAAeA,EAAE,UAAU,CAAC,WAAW,GAAG,MAAMvC,CAAC,CAAC,EAAE,EAAEqC,GAAa,OAAOrC,GAAjB,SAAmB,QAAQwC,KAAKxC,EAAEsC,EAAE,EAAEC,EAAEC,GAAE,SAASH,EAAE,CAAC,OAAOrC,EAAEqC,CAAC,CAAC,GAAE,KAAK,KAAKG,CAAC,CAAC,EAAE,OAAOD,CAAC,EAAED,EAAE,EAAE,SAAStC,EAAE,CAAC,IAAIqC,EAAErC,GAAGA,EAAE,WAAW,UAAU,CAAC,OAAOA,EAAE,OAAO,EAAE,UAAU,CAAC,OAAOA,CAAC,EAAE,OAAOsC,EAAE,EAAED,EAAE,IAAIA,CAAC,EAAEA,CAAC,EAAEC,EAAE,EAAE,SAAStC,EAAEqC,EAAE,CAAC,OAAO,OAAO,UAAU,eAAe,KAAKrC,EAAEqC,CAAC,CAAC,EAAEC,EAAE,EAAE,GAAGA,EAAEA,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,SAAStC,EAAEqC,EAAEC,EAAE,CAAc,OAAO,eAAeD,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,IAAIE,EAAE,SAASvC,EAAEqC,EAAEC,EAAE,CAAC,KAAK,GAAGtC,EAAE,KAAK,WAAWqC,EAAE,KAAK,QAAQC,CAAC,EAAED,EAAE,QAAQE,CAAC,EAAE,SAASvC,EAAEqC,EAAEC,EAAE,CAAc,OAAO,eAAeD,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,IAAIE,EAAED,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAE3J,EAAE2J,EAAE,CAAC,EAAEG,EAAE,CAAC,WAAWF,EAAE,QAAQ,OAAOC,EAAE,QAAQ,OAAO7J,EAAE,OAAO,EAAE0J,EAAE,QAAQI,CAAC,EAAE,SAASzC,EAAEqC,EAAEC,EAAE,CAAc,OAAO,eAAeD,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,IAAIE,EAAE,UAAU,CAAC,SAASvC,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,OAAOA,EAAE,UAAU,IAAI,SAASA,EAAE,CAAC,IAAIqC,EAAE,KAAK,GAAG,CAACrC,EAAE,MAAM,IAAI,MAAM,yBAAyB,EAAE,OAAO,IAAI,QAAQ,SAASsC,EAAEC,EAAE,CAAC,IAAIC,EAAE,IAAI,eAAeA,EAAE,KAAK,MAAMxC,EAAE,EAAE,EAAEwC,EAAE,aAAa,cAAcA,EAAE,UAAU,UAAU,CAAC,CAACA,EAAE,UAAgBA,EAAE,SAAR,KAAsBA,EAAE,SAAR,IAAeD,EAAEC,CAAC,EAAEF,EAAEE,EAAE,QAAQ,CAAC,EAAEA,EAAE,QAAQ,UAAU,CAAC,OAAOD,EAAEC,EAAE,QAAQ,CAAC,EAAEA,EAAE,KAAI,EAAGH,EAAE,QAAQG,CAAC,CAAC,CAAC,EAAExC,EAAE,UAAU,OAAO,UAAU,CAAC,KAAK,SAAS,KAAK,QAAQ,OAAO,EAAEA,EAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,SAAS,KAAK,QAAQ,MAAK,CAAE,EAAEA,CAAC,EAAC,EAAGqC,EAAE,QAAQE,CAAC,EAAE,SAAS,OAAOG,UAAQ,oBAAoB,CAAc,OAAO,eAAeA,UAAQ,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,OAAO;AAAA;AAAA,07VAAmlwC,OAAO,UAAU,CAAC,SAAS,OAAO,GAAG,CAAC,IAAI,eAAwB,KAAT,OAAY,CAAC,cAAc,EAAE,EAAE,IAAI,cAAc,eAAe,KAAK,MAAM,EAAE,KAAK,OAAO,OAAO,sBAAsB,KAAK,OAAO,IAAI,OAAO,OAAO,IAAI,gBAAgB,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,UAAU,GAAG,SAAS1C,EAAE,CAAC,IAAIqC,EAAE,KAAKC,EAAE,IAAI,WAAWtC,EAAE,EAAE,CAAC,EAAE,GAAOsC,EAAE,CAAC,GAAP,IAAcA,EAAE,CAAC,GAAP,IAAaA,EAAE,CAAC,GAAN,GAAYA,EAAE,CAAC,GAAN,EAAQ,KAAK,+CAA+C,GAAG,CAACtC,EAAE,MAAM,IAAI,MAAM,uBAAuB,EAAE,GAAG,CAAC,KAAK,OAAO,MAAM,IAAI,MAAM,yBAAyB,EAAE,OAAO,IAAI,QAAQ,SAASsC,EAAEC,EAAE,CAAC,IAAIC,EAAEH,EAAE,OAAO,gBAAgBG,EAAEH,EAAE,QAAQ,kBAAkB,SAASrC,EAAE,CAACsC,EAAEtC,CAAC,CAAC,EAAEwC,EAAE,UAAU,CAAC,KAAKxC,CAAC,CAAC,KAAKwC,EAAEH,EAAE,QAAQ,YAAYrC,CAAC,EAAEwC,EAAE,UAAU,SAASxC,EAAE,CAAC,IAAIqC,EAAErC,EAAE,KAAKsC,EAAED,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,UAAU,QAAQ,UAAU,CAAC,IAAIrC,EAAE,KAAK,OAAOA,EAAE,WAAWA,EAAE,UAAS,CAAE,EAAE,MAAM,EAAC,EAAG0C,UAAQ,QAAQ,MAAM,EAAE,SAAS1C,EAAEqC,EAAEC,EAAE,CAAc,OAAO,eAAeD,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,IAAIE,EAAEC,EAAE7J,EAAE8J,EAAEH,EAAE,CAAC,EAAEK,EAAEL,EAAE,CAAC,GAAG,SAAStC,EAAE,CAACA,EAAE,MAAM,QAAQA,EAAE,OAAO,SAASA,EAAE,QAAQ,UAAUA,EAAE,MAAM,QAAQA,EAAE,KAAK,OAAOA,EAAE,IAAI,MAAMA,EAAE,MAAM,OAAO,GAAEuC,IAAIA,EAAE,GAAG,EAAE,SAASvC,EAAE,CAACA,EAAE,SAAS,WAAWA,EAAE,UAAU,WAAW,EAAEwC,IAAIA,EAAE,CAAA,EAAG,EAAE,SAASxC,EAAE,CAACA,EAAE,SAAS,WAAWA,EAAE,UAAU,WAAW,EAAErH,IAAIA,EAAE,GAAG,EAAE,IAAIiK,EAAe,OAAO,OAApB,KAA4B,yBAAyB,OAAOC,EAAE,UAAU,CAAC,SAAS7C,EAAEA,EAAEqC,EAAEC,EAAE,CAAC,GAAG,KAAK,UAAUD,EAAE,KAAK,KAAK,GAAG,KAAK,SAASG,EAAE,SAAS,KAAK,SAAS7J,EAAE,SAAS,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,GAAG,KAAK,2BAA2B,GAAG,KAAK,+BAA+B,GAAG,KAAK,sBAAsB,KAAK,KAAK,SAAS,CAAC,MAAM,UAAU,CAAA,EAAG,OAAO,UAAU,GAAG,QAAQ,UAAU,CAAA,EAAG,MAAM,UAAU,CAAA,EAAG,KAAK,UAAU,CAAA,EAAG,IAAI,UAAU,GAAG,MAAM,UAAU,CAAA,CAAE,EAAE,KAAK,UAAoB,OAAOqH,GAAjB,SAAmB,SAAS,KAAK,cAAcA,CAAC,EAAEA,EAAE,CAAC,KAAK,UAAU,MAAM,IAAI,MAAM,sBAAsB,EAAE,GAAG,CAAC,KAAK,UAAU,WAAW,MAAM,IAAI,MAAM,wCAAwC,EAAE,KAAK,UAAU,IAAIyC,EAAE,QAAQ,IAAI,EAAE,KAAK,UAAU,IAAIE,EAAE,QAAQ,KAAK,WAAW,KAAK,MAAMN,CAAC,EAAEC,GAAG,KAAK,IAAIA,CAAC,CAAC,CAAC,OAAOtC,EAAE,UAAU,IAAI,SAASA,EAAE,CAAC,IAAIqC,EAAE,KAAcrC,EAAE,OAAX,SAAkB,KAAK,KAAKA,EAAE,MAAMA,EAAE,WAAW,KAAK,SAASA,EAAE,UAAUA,EAAE,WAAW,KAAK,SAASA,EAAE,UAAmBA,EAAE,cAAX,SAAyB,KAAK,YAAYA,EAAE,aAAa,KAAK,WAAWA,EAAE,WAAWA,EAAE,WAAW,KAAK,WAAW,KAAK,SAASA,EAAE,SAASA,EAAE,SAAS,KAAK,SAAkBA,EAAE,6BAAX,SAAwC,KAAK,2BAA2BA,EAAE,4BAA4B4C,GAAG,KAAK,4BAA4B,KAAK,sBAAsB,IAAI,qBAAqB,SAAS5C,EAAE,CAACA,EAAE,CAAC,EAAE,mBAAmB,EAAEqC,EAAE,iCAAiCA,EAAE,+BAA+B,IAAI,CAACA,EAAE,iCAAiCA,EAAE,+BAA+B,GAAG,EAAE,CAAC,WAAW,MAAM,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,sBAAsB,QAAQ,KAAK,SAAS,IAAI,KAAK,uBAAuB,KAAK,sBAAsB,WAAU,EAAG,KAAK,2BAA2B,GAAG,KAAK,+BAA+B,IAAI,KAAK,UAAU,iBAAiBrC,EAAE,gBAAgB,EAAEA,EAAE,UAAU,MAAM,SAASA,EAAE,CAAC,IAAIqC,EAAE,KAAK,OAAO,IAAI,QAAQ,SAASC,EAAEC,EAAE,CAACF,EAAE,aAAa,EAAEA,EAAE,SAAS,EAAEA,EAAE,iBAAiBrC,EAAE,OAAO,EAAEqC,EAAE,UAAUrC,EAAEqC,EAAE,UAAU,QAAO,EAAG,KAAKC,CAAC,EAAED,EAAE,UAAU,MAAK,EAAGA,EAAE,SAAQ,CAAE,CAAC,CAAC,EAAErC,EAAE,UAAU,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,UAAU,MAAM,IAAI,MAAM,uBAAuB,EAAE,KAAK,UAAU,QAAQ,KAAK,gBAAe,EAAG,KAAK,SAAS,MAAK,CAAE,EAAEA,EAAE,UAAU,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,UAAU,MAAM,IAAI,MAAM,uBAAuB,EAAE,KAAK,gBAAe,EAAG,KAAK,SAAS,OAAM,CAAE,EAAEA,EAAE,UAAU,MAAM,UAAU,CAAC,KAAK,WAAW,KAAK,UAAU,OAAO,KAAK,SAAS,OAAO,EAAEA,EAAE,UAAU,KAAK,UAAU,CAAC,KAAK,WAAW,KAAK,UAAU,OAAO,KAAK,aAAa,EAAE,KAAK,UAAU,UAAU,KAAK,YAAY,EAAE,KAAK,SAAS,KAAI,CAAE,EAAEA,EAAE,UAAU,MAAM,UAAU,CAAC,KAAK,WAAW,KAAK,UAAU,KAAI,EAAG,KAAK,UAAU,MAAK,EAAG,KAAK,SAAS,MAAK,CAAE,EAAEA,EAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,WAAW,KAAK,UAAU,KAAI,EAAG,KAAK,UAAU,MAAK,EAAG,KAAK,UAAU,KAAK,KAAK,UAAU,KAAK,KAAK,UAAU,IAAI,EAAEA,EAAE,UAAU,IAAI,SAASA,EAAEqC,EAAE,CAAC,IAAIC,EAAE,KAAK,OAAO,KAAK,SAAStC,CAAC,EAAEqC,EAAUrC,IAAR,QAAY,KAAK,UAAU,MAAM,UAAU,CAAC,OAAOsC,EAAE,SAAS,IAAG,CAAE,GAAG,IAAI,EAAEtC,EAAE,UAAU,gBAAgB,UAAU,CAAC,IAAIA,EAAE,KAAKqC,EAAE,KAAKC,EAAED,EAAE,SAASE,EAAEF,EAAE,iBAAiBG,EAAEH,EAAE,WAAW1J,EAAE0J,EAAE,SAASI,EAAEJ,EAAE,UAAU,KAAK,eAAeE,IAAI,KAAK,aAAaC,GAAG,GAAG,KAAK,UAAU,WAAyBF,IAAd,YAAgB3J,GAAG4J,EAAEC,GAAG,EAAE,KAAK,UAAU,SAAuBF,IAAd,YAAgBE,GAAG,EAAE7J,GAAG4J,EAAE,IAAII,EAAEF,EAAE,OAAO9J,EAAE,GAAGA,EAAE6J,EAAEG,EAAEhK,EAAE6J,EAAE7J,GAAG,GAAG6J,EAAE,IAAIG,EAAEF,EAAE,OAAOD,GAAG,KAAK,UAAU,SAASG,GAAG,EAAEF,EAAE,KAAK,IAAI,KAAK,UAAU,KAAU,KAAK,OAAV,IAAgB,KAAK,MAAM,EAAE,IAAS,KAAK,OAAV,GAAe,EAAE,KAAK,KAAK,KAAK,UAAU,SAAuB,KAAK,WAAnB,YAA4B,EAAE,EAAE,KAAK,UAAU,SAAS,SAASJ,EAAE,CAACA,EAAE,KAAK,MAAMA,CAAC,EAAErC,EAAE,eAAeqC,IAAIrC,EAAE,aAAaqC,EAAErC,EAAE,SAAS,YAAYqC,EAAE,GAAG,UAAU,EAAE,WAAWI,EAAE,OAAO,SAAQ,CAAE,EAAE,IAAIzC,EAAE,UAAU,UAAUA,EAAE,YAAY,EAAEA,EAAE,SAAS,QAAO,EAAG,EAAE,KAAK,UAAU,MAAM,KAAK,YAAY,CAAC,EAAEA,EAAE,UAAU,SAAS,UAAU,CAAC,IAAIA,EAAE,KAAK,UAAU,UAAU,KAAK,UAAU,MAAMA,EAAE,MAAM,KAAK,UAAU,OAAOA,EAAE,MAAM,EAAEA,CAAC,EAAC,EAAGqC,EAAE,QAAQQ,CAAC,EAAE,SAAS7C,EAAEqC,EAAEC,EAAE,CAAc,OAAO,eAAeD,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,IAAIE,EAAED,EAAE,CAAC,EAAEE,EAAE,UAAU,CAAC,SAASxC,EAAEA,EAAE,CAAC,KAAK,aAAa,CAAA,EAAG,KAAK,iBAAiB,CAAA,EAAG,KAAK,QAAQ,CAAA,EAAG,KAAK,QAAQA,EAAE,IAAIqC,EAAE,KAAK,QAAQ,UAAU,KAAK,WAAW,OAAO,gBAAgB,IAAI,OAAO,gBAAgBA,EAAE,MAAMA,EAAE,MAAM,EAAE,SAAS,cAAc,QAAQ,CAAC,CAAC,OAAOrC,EAAE,UAAU,QAAQ,UAAU,CAAC,IAAIA,EAAE,KAAK,OAAO,IAAI,QAAQ,SAASqC,EAAEC,EAAE,CAAC,GAAGtC,EAAE,aAAa,CAAA,EAAGA,EAAE,QAAQ,UAAU,QAAW,OAAO,KAAKA,EAAE,QAAQ,UAAU,MAAM,EAAE,QAA3C,EAAkD,CAACA,EAAE,QAAQ,UAAU,kBAAkBA,EAAE,iBAAiBA,EAAE,QAAQ,UAAU,iBAAiB,IAAIuC,EAAE,EAAEC,EAAE,EAAE,QAAQ,KAAKxC,EAAE,QAAQ,UAAU,OAAO,CAAC,IAAIyC,EAAEzC,EAAE,QAAQ,UAAU,OAAO,CAAC,EAAE,GAAa,OAAOyC,GAAjB,UAAwBA,EAAE,QAAQ,MAAM,IAApB,GAA2BA,EAAE,QAAQ,QAAQ,IAAtB,EAAwBzC,EAAE,aAAa,CAAC,EAAEyC,MAAM,CAACF,IAAI,IAAII,EAAE,SAAS,cAAc,KAAK,EAAEA,EAAE,IAAI,yBAAyBF,EAAEzC,EAAE,aAAa,CAAC,EAAE2C,EAAEA,EAAE,OAAO,UAAU,CAAC,EAAEH,IAAID,GAAGF,EAAC,CAAE,CAAC,CAAC,CAAC,MAAMA,EAAC,CAAE,CAAC,CAAC,EAAErC,EAAE,UAAU,MAAM,UAAU,CAAC,KAAK,QAAQ,UAAU,MAAM,KAAK,QAAQ,UAAU,KAAK,EAAEA,EAAE,UAAU,UAAU,SAASA,EAAE,CAAC,IAAIqC,EAAE,KAAK,QAAQ,GAAG,CAACA,EAAE,4BAA4BA,EAAE,+BAA+B,CAAC,KAAK,MAAK,EAAG,IAAIC,EAAED,EAAE,UAAU,WAAW,IAAI,EAAE,GAAG,KAAK,QAAQ,aAAa,KAAK,QAAQrC,CAAC,EAAE,CAAC,IAAIwC,EAAE,KAAK,QAAQxC,CAAC,EAAEsC,EAAE,UAAUE,EAAE,EAAE,EAAEA,EAAE,MAAMA,EAAE,OAAO,EAAE,EAAEA,EAAE,MAAMA,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI7J,EAAE,KAAK,WAAW,GAAGA,EAAE,MAAM,KAAK,QAAQ,UAAU,MAAMA,EAAE,OAAO,KAAK,QAAQ,UAAU,OAAO4J,EAAE,QAAQ5J,EAAE,KAAK,aAAa,KAAK,iBAAiB,KAAK,QAAQ,UAAU,KAAK,QAAQ,YAAY,EAAE2J,EAAE,UAAU3J,EAAE,EAAE,EAAEA,EAAE,MAAMA,EAAE,OAAO,EAAE,EAAEA,EAAE,MAAMA,EAAE,MAAM,EAAE,KAAK,QAAQ,YAAY,GAAG,cAAcA,EAAE,CAAC,IAAI8J,EAAE9J,EAAE,UAAS,EAAGgK,EAAE,IAAI,MAAMA,EAAE,IAAIF,EAAE,KAAK,QAAQzC,CAAC,EAAE2C,CAAC,MAAM,KAAK,QAAQ3C,CAAC,EAAErH,EAAE,sBAAqB,CAAE,CAAC,CAAC,EAAEqH,CAAC,EAAC,EAAGqC,EAAE,QAAQG,CAAC,EAAE,SAASxC,EAAEqC,EAAEC,EAAE,CAAc,OAAO,eAAeD,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,EAAEA,EAAE,QAAQ,OAAO,IAAIE,EAAEE,EAAEH,EAAE,CAAC,CAAC,EAAEE,EAAEC,EAAEH,EAAE,CAAC,CAAC,EAAE3J,EAAE8J,EAAEH,EAAE,CAAC,CAAC,EAAE,SAASG,EAAEzC,EAAE,CAAC,OAAOA,GAAGA,EAAE,WAAWA,EAAE,CAAC,QAAQA,CAAC,CAAC,CAAC,IAAI2C,EAAE,qBAAqB,SAASC,EAAE5C,EAAEqC,EAAE,CAAC,IAAIC,EAAED,EAAE,QAAiBC,IAAT,SAAaA,GAAGA,EAAE,OAAOtC,EAAE,YAAY,QAAQ,OAAO,UAAU,IAAIsC,EAAE,OAAO,CAAC,GAAG,SAAQ,CAAE,EAAE,IAAI,EAAE,OAAO,UAAU,IAAIA,EAAE,OAAO,CAAC,GAAG,SAAQ,CAAE,EAAE,IAAI,EAAE,OAAO,UAAU,IAAIA,EAAE,OAAO,CAAC,GAAG,UAAU,EAAE,IAAI,EAAE,OAAOA,EAAE,OAAO,CAAC,EAAE,GAAG,EAAEtC,EAAE,YAAY,cAAcsC,IAAItC,EAAE,UAAUsC,EAAE,aAAa,OAAOtC,EAAE,QAAQsC,EAAE,SAAS,OAAOtC,EAAE,SAASsC,EAAE,UAAU,OAAOtC,EAAE,WAAWsC,EAAE,YAAY,QAAQA,GAAGA,EAAE,KAAKtC,EAAE,UAAU,QAAQ,OAAO,UAAU,IAAIsC,EAAE,KAAK,CAAC,GAAG,SAAQ,CAAE,EAAE,IAAI,EAAE,OAAO,UAAU,IAAIA,EAAE,KAAK,CAAC,GAAG,SAAQ,CAAE,EAAE,IAAI,EAAE,OAAO,UAAU,IAAIA,EAAE,KAAK,CAAC,GAAG,UAAU,EAAE,IAAI,EAAE,OAAOA,EAAE,KAAK,CAAC,EAAE,GAAG,EAAEtC,EAAE,UAAU,cAAcsC,GAAGA,EAAE,UAAUtC,EAAE,YAAYsC,EAAE,QAAQ,EAAE,CAAC,SAASO,EAAE7C,EAAEqC,EAAE,CAACrC,EAAE,KAAI,EAAG4C,EAAE5C,EAAEqC,CAAC,EAAWA,EAAE,aAAX,QAA8BA,EAAE,aAAT,MAAqBrC,EAAE,UAAUqC,EAAE,WAAW,GAAG,EAAEA,EAAE,WAAW,GAAG,EAAEA,EAAE,WAAW,GAAG,EAAEA,EAAE,WAAW,GAAG,EAAEA,EAAE,WAAW,IAAI,EAAEA,EAAE,WAAW,IAAI,CAAC,EAAE,IAAIC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAEtC,EAAE,YAAYqC,EAAE,GAAG,QAAQ,cAAc,QAAQ,EAAE,QAAQ,KAAK,GAAG,EAAE,MAAM,KAAK,EAAE,QAAQ,SAASA,EAAE,CAAC,GAAMA,EAAE,QAAL,EAAY,CAAC,IAAIE,EAAEF,EAAE,OAAO,EAAE,CAAC,EAAE,GAAGM,EAAE,QAAQJ,CAAC,GAAG,EAAE,CAAC,IAAIC,EAAEH,EAAE,OAAO,CAAC,EAAE,KAAI,EAAG,MAAM,GAAG,GAAG,SAASrC,EAAEqC,EAAEC,EAAEC,EAAE,CAAC,OAAOD,GAAG,IAAI,IAAID,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,OAAOqC,EAAE,EAAEA,EAAE,CAAC,EAAE,MAAM,IAAI,IAAIA,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,OAAOqC,EAAE,EAAEA,EAAE,CAAC,EAAE,MAAM,IAAI,IAAIA,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,OAAOqC,EAAE,EAAEA,EAAE,CAAC,EAAE,MAAM,IAAI,IAAIA,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,OAAOqC,EAAE,EAAEA,EAAE,CAAC,EAAE,MAAM,IAAI,IAAIA,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,OAAOqC,EAAE,EAAEA,EAAE,CAAC,EAAE,MAAM,IAAI,IAAIA,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,OAAOqC,EAAE,EAAEA,EAAE,CAAC,EAAE,MAAM,IAAI,IAAIA,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,OAAOqC,EAAE,EAAEA,EAAE,CAAC,EAAE,MAAM,IAAI,IAAIA,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,OAAOqC,EAAE,EAAEA,EAAE,CAAC,EAAE,MAAM,IAAI,IAAIA,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,cAAcqC,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,EAAEA,EAAE,CAAC,EAAE,MAAM,IAAI,IAAIA,EAAE,GAAGA,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAGA,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAGA,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAGA,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,cAAcqC,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,EAAEA,EAAE,CAAC,EAAE,MAAM,IAAI,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,cAAcqC,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,EAAEA,EAAE,CAAC,IAAIA,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,iBAAiBqC,EAAE,GAAGA,EAAE,GAAGA,EAAE,EAAEA,EAAE,CAAC,GAAG,MAAM,IAAI,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAEA,EAAE,GAAGA,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAGA,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,cAAcqC,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,EAAEA,EAAE,CAAC,IAAIA,EAAE,GAAGA,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAGA,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,iBAAiBqC,EAAE,GAAGA,EAAE,GAAGA,EAAE,EAAEA,EAAE,CAAC,GAAG,MAAM,IAAI,IAAIA,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,iBAAiBqC,EAAE,GAAGA,EAAE,GAAGA,EAAE,EAAEA,EAAE,CAAC,EAAE,MAAM,IAAI,IAAIA,EAAE,GAAGA,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAGA,EAAE,EAAE,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEF,EAAE,GAAG,OAAOE,EAAE,CAAC,CAAC,EAAEvC,EAAE,iBAAiBqC,EAAE,GAAGA,EAAE,GAAGA,EAAE,EAAEA,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,IAAIrC,EAAE,UAAS,CAAE,CAAC,GAAEA,EAAEsC,EAAEC,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEH,EAAE,SAASA,EAAE,QAAQ,KAAKrC,EAAE,KAAI,EAAGqC,EAAE,SAASA,EAAE,QAAQ,QAAQrC,EAAE,OAAM,EAAGA,EAAE,QAAO,CAAE,CAAC,IAAI8C,EAAE,SAAS9C,EAAEqC,EAAEC,EAAEG,EAAEE,EAAE,CAAC,IAAI,EAAE3C,EAAE,WAAW,IAAI,EAAE,OAAOyC,EAAE,QAAQ,QAAQ,SAASzC,EAAE,CAAC,IAAIyC,EAAEzC,EAAE,OAAO2C,CAAC,EAAE,GAAG,EAAEF,EAAE,MAAM,KAAK,CAAC,EAAE,KAAI,EAAG,EAAE,YAAYA,EAAE,MAAM,EAAE,UAAUA,EAAE,UAAU,GAAG,EAAEA,EAAE,UAAU,GAAG,EAAEA,EAAE,UAAU,GAAG,EAAEA,EAAE,UAAU,GAAG,EAAEA,EAAE,UAAU,IAAI,EAAEA,EAAE,UAAU,IAAI,CAAC,EAAE,IAAIM,EAAEV,EAAErC,EAAE,QAAQ,EAAE+C,IAAaN,EAAE,WAAX,QAA4BA,EAAE,WAAT,OAAoBA,EAAE,SAAS,QAAQ,OAAOI,EAAE,EAAEJ,EAAE,QAAQ,EAAE,EAAE,KAAI,GAAI,EAAE,UAAUM,EAAE,EAAE,CAAC,GAAG,IAAIC,EAAEV,EAAEtC,EAAE,QAAQ,EAAEgD,GAAG,EAAE,UAAUA,GAAGP,EAAE,OAAO,MAAMO,EAAE,OAAO,GAAGP,EAAE,OAAO,OAAOO,EAAE,QAAQ,CAAC,EAAEP,EAAE,QAAQA,EAAE,OAAO,QAAQ,SAASzC,EAAE,CAAWA,EAAE,OAAZ,SAAkBA,EAAE,UAAUA,EAAE,SAAS,EAAE6C,EAAE,EAAE,IAAIN,EAAE,QAAQvC,EAAE,SAAS,EAAEA,EAAE,UAAUA,EAAE,MAAM,CAAC,EAAcA,EAAE,OAAd,WAAoBA,EAAE,SAAS,SAASA,EAAEqC,EAAE,CAACrC,EAAE,KAAI,EAAG4C,EAAE5C,EAAEqC,CAAC,EAAWA,EAAE,aAAX,QAA8BA,EAAE,aAAT,MAAqBrC,EAAE,UAAUqC,EAAE,WAAW,GAAG,EAAEA,EAAE,WAAW,GAAG,EAAEA,EAAE,WAAW,GAAG,EAAEA,EAAE,WAAW,GAAG,EAAEA,EAAE,WAAW,IAAI,EAAEA,EAAE,WAAW,IAAI,CAAC,EAAE,IAAIC,EAAED,EAAE,GAAGA,EAAE,SAASE,EAAEF,EAAE,GAAGA,EAAE,SAASG,EAAE,EAAEH,EAAE,SAAS1J,EAAE,EAAE0J,EAAE,SAASI,EAAED,EAAE,EAAE,SAASG,EAAEhK,EAAE,EAAE,SAASkK,EAAEP,EAAEE,EAAEM,EAAEP,EAAE5J,EAAEoK,EAAET,EAAEE,EAAE,EAAEQ,EAAET,EAAE5J,EAAE,EAAEqH,EAAE,UAAS,EAAGA,EAAE,OAAOsC,EAAEU,CAAC,EAAEhD,EAAE,cAAcsC,EAAEU,EAAEL,EAAEI,EAAEN,EAAEF,EAAEQ,EAAER,CAAC,EAAEvC,EAAE,cAAc+C,EAAEN,EAAEF,EAAEM,EAAEG,EAAEL,EAAEE,EAAEG,CAAC,EAAEhD,EAAE,cAAc6C,EAAEG,EAAEL,EAAEI,EAAEN,EAAEK,EAAEC,EAAED,CAAC,EAAE9C,EAAE,cAAc+C,EAAEN,EAAEK,EAAER,EAAEU,EAAEL,EAAEL,EAAEU,CAAC,EAAEX,EAAE,SAASA,EAAE,QAAQ,KAAKrC,EAAE,KAAI,EAAGqC,EAAE,SAASA,EAAE,QAAQ,QAAQrC,EAAE,OAAM,EAAGA,EAAE,SAAS,EAAE,EAAE,IAAIwC,EAAE,QAAQ,WAAWxC,EAAE,SAAS,CAAC,GAAG,EAAE,WAAWA,EAAE,SAAS,CAAC,GAAG,EAAE,WAAWA,EAAE,SAAS,OAAO,GAAG,EAAE,WAAWA,EAAE,SAAS,OAAO,GAAG,EAAEA,EAAE,UAAUA,EAAE,MAAM,CAAC,EAAWA,EAAE,OAAX,QAAiBA,EAAE,UAAU,SAASA,EAAEqC,EAAE,CAACrC,EAAE,KAAI,EAAG4C,EAAE5C,EAAEqC,CAAC,EAAWA,EAAE,aAAX,QAA8BA,EAAE,aAAT,MAAqBrC,EAAE,UAAUqC,EAAE,WAAW,GAAG,EAAEA,EAAE,WAAW,GAAG,EAAEA,EAAE,WAAW,GAAG,EAAEA,EAAE,WAAW,GAAG,EAAEA,EAAE,WAAW,IAAI,EAAEA,EAAE,WAAW,IAAI,CAAC,EAAE,IAAIC,EAAED,EAAE,GAAGE,EAAEF,EAAE,GAAGG,EAAEH,EAAE,OAAO1J,EAAE0J,EAAE,QAAQI,EAAEJ,EAAE,cAAcG,EAAE,EAAEC,IAAIA,EAAED,EAAE,GAAG7J,EAAE,EAAE8J,IAAIA,EAAE9J,EAAE,GAAGqH,EAAE,UAAS,EAAGA,EAAE,OAAOsC,EAAEG,EAAEF,CAAC,EAAEvC,EAAE,MAAMsC,EAAEE,EAAED,EAAED,EAAEE,EAAED,EAAE5J,EAAE8J,CAAC,EAAEzC,EAAE,MAAMsC,EAAEE,EAAED,EAAE5J,EAAE2J,EAAEC,EAAE5J,EAAE8J,CAAC,EAAEzC,EAAE,MAAMsC,EAAEC,EAAE5J,EAAE2J,EAAEC,EAAEE,CAAC,EAAEzC,EAAE,MAAMsC,EAAEC,EAAED,EAAEE,EAAED,EAAEE,CAAC,EAAEzC,EAAE,UAAS,EAAGqC,EAAE,SAASA,EAAE,QAAQ,KAAKrC,EAAE,KAAI,EAAGqC,EAAE,SAASA,EAAE,QAAQ,QAAQrC,EAAE,SAASA,EAAE,QAAO,CAAE,EAAE,EAAE,IAAIrH,EAAE,QAAQ,WAAWqH,EAAE,SAAS,CAAC,GAAG,EAAE,WAAWA,EAAE,SAAS,CAAC,GAAG,EAAE,WAAWA,EAAE,SAAS,KAAK,GAAG,EAAE,WAAWA,EAAE,SAAS,MAAM,GAAG,EAAE,WAAWA,EAAE,SAAS,YAAY,GAAG,EAAEA,EAAE,UAAUA,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,EAAEA,CAAC,EAAEqC,EAAE,QAAQS,CAAC,EAAE,SAAS9C,EAAEqC,EAAEC,EAAE,CAAc,IAAIC,EAAEC,GAAGD,EAAE,SAASvC,EAAEqC,EAAE,CAAC,OAAOE,EAAE,OAAO,gBAAgB,CAAC,UAAU,EAAE,YAAY,OAAO,SAASvC,EAAEqC,EAAE,CAACrC,EAAE,UAAUqC,CAAC,GAAG,SAASrC,EAAEqC,EAAE,CAAC,QAAQC,KAAKD,EAAE,OAAO,UAAU,eAAe,KAAKA,EAAEC,CAAC,IAAItC,EAAEsC,CAAC,EAAED,EAAEC,CAAC,EAAE,GAAGtC,EAAEqC,CAAC,CAAC,EAAE,SAASrC,EAAEqC,EAAE,CAAC,SAASC,GAAG,CAAC,KAAK,YAAYtC,CAAC,CAACuC,EAAEvC,EAAEqC,CAAC,EAAErC,EAAE,UAAiBqC,IAAP,KAAS,OAAO,OAAOA,CAAC,GAAGC,EAAE,UAAUD,EAAE,UAAU,IAAIC,EAAE,GAAG,OAAO,eAAeD,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI1J,EAAE,SAASqH,EAAE,CAAC,SAASqC,EAAEA,EAAEC,EAAEC,EAAEC,EAAE7J,EAAE8J,EAAE,CAAC,IAAIE,EAAE3C,EAAE,KAAK,IAAI,GAAG,KAAK,OAAO2C,EAAE,GAAGN,EAAEM,EAAE,GAAGL,EAAEK,EAAE,SAASJ,EAAEI,EAAE,SAASH,EAAEG,EAAE,WAAWhK,EAAEgK,EAAE,QAAQF,EAAEE,CAAC,CAAC,OAAOH,EAAEH,EAAErC,CAAC,EAAEqC,CAAC,EAAEC,EAAE,CAAC,EAAE,OAAO,EAAED,EAAE,QAAQ1J,CAAC,EAAE,SAASqH,EAAEqC,EAAEC,EAAE,CAAc,IAAIC,EAAEC,GAAGD,EAAE,SAASvC,EAAEqC,EAAE,CAAC,OAAOE,EAAE,OAAO,gBAAgB,CAAC,UAAU,CAAA,CAAE,YAAY,OAAO,SAASvC,EAAEqC,EAAE,CAACrC,EAAE,UAAUqC,CAAC,GAAG,SAASrC,EAAEqC,EAAE,CAAC,QAAQC,KAAKD,EAAE,OAAO,UAAU,eAAe,KAAKA,EAAEC,CAAC,IAAItC,EAAEsC,CAAC,EAAED,EAAEC,CAAC,EAAE,GAAGtC,EAAEqC,CAAC,CAAC,EAAE,SAASrC,EAAEqC,EAAE,CAAC,SAASC,GAAG,CAAC,KAAK,YAAYtC,CAAC,CAACuC,EAAEvC,EAAEqC,CAAC,EAAErC,EAAE,UAAiBqC,IAAP,KAAS,OAAO,OAAOA,CAAC,GAAGC,EAAE,UAAUD,EAAE,UAAU,IAAIC,EAAE,GAAG,OAAO,eAAeD,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI1J,EAAE,SAASqH,EAAE,CAAC,SAASqC,EAAEA,EAAEC,EAAEC,EAAEC,EAAE7J,EAAE8J,EAAEE,EAAE,CAAC,IAAIC,EAAE5C,EAAE,KAAK,IAAI,GAAG,KAAK,OAAO4C,EAAE,GAAGP,EAAEO,EAAE,GAAGN,EAAEM,EAAE,OAAOL,EAAEK,EAAE,QAAQJ,EAAEI,EAAE,cAAcjK,EAAEiK,EAAE,WAAWH,EAAEG,EAAE,QAAQD,EAAEC,CAAC,CAAC,OAAOJ,EAAEH,EAAErC,CAAC,EAAEqC,CAAC,EAAEC,EAAE,CAAC,EAAE,OAAO,EAAED,EAAE,QAAQ1J,CAAC,EAAE,SAASqH,EAAEqC,EAAEC,EAAE,CAAc,OAAO,eAAeD,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,IAAIE,EAAE,UAAU,CAAC,SAASvC,GAAG,CAAC,KAAK,uBAAuB,UAAU,CAAC,OAAmB,OAAO,YAApB,IAAiC,IAAI,OAAM,QAAO,EAAG,YAAY,IAAG,CAAE,EAAE,KAAK,iBAAiB,GAAG,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,UAAU,GAAG,KAAK,SAAS,UAAU,GAAG,KAAK,MAAM,UAAU,GAAG,KAAK,WAAW,GAAG,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,QAAQ,IAAI,CAAC,OAAOA,EAAE,UAAU,MAAM,SAASA,EAAE,CAAC,KAAK,QAAQA,CAAC,CAAC,EAAEA,EAAE,UAAU,KAAK,UAAU,CAAC,KAAK,SAAS,EAAE,OAAO,eAAeA,EAAE,UAAU,gBAAgB,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,KAAK,YAAY,KAAK,kBAAkB,KAAK,UAAU,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAEA,EAAE,UAAU,QAAQ,SAASA,EAAE,CAAC,KAAK,WAAW,GAAG,KAAK,YAAY,KAAK,uBAAsB,EAAGA,IAAI,KAAK,aAAaA,GAAG,KAAK,SAAS,KAAK,YAAY,KAAK,UAAU,KAAK,kBAAkB,EAAE,KAAK,kBAAyB,KAAK,UAAZ,OAAsB,KAAK,QAAQ,IAAI,OAAO,OAAO,IAAI,gBAAgB,IAAI,KAAK,CAAC;AAAA;AAAA,EAAoF,CAAC,CAAC,CAAC,GAAG,KAAK,QAAO,EAAG,KAAK,UAAU,EAAEA,EAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,WAAW,GAAU,KAAK,UAAZ,OAAsB,KAAK,QAAQ,UAAS,EAAG,KAAK,QAAQ,KAAK,EAAEA,EAAE,UAAU,SAAS,UAAU,CAAC,KAAK,aAAa,KAAK,aAAa,KAAK,uBAAsB,EAAG,KAAK,WAAW,EAAE,KAAK,aAAa,KAAK,SAAS,KAAK,QAAQ,UAAU,KAAK,SAAS,KAAK,IAAI,EAAE,KAAK,QAAQ,YAAY,IAAI,GAAG,OAAO,sBAAsB,KAAK,SAAS,KAAK,IAAI,CAAC,GAAG,EAAEA,EAAE,UAAU,aAAa,SAASA,EAAE,CAACA,GAAG,KAAK,SAAS,KAAK,MAAM,KAAK,kBAAsB,KAAK,WAAT,EAAkB,EAAE,EAAE,KAAK,WAAW,IAAI,KAAK,kBAAkBA,EAAE,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,aAAa,EAAO,KAAK,aAAV,KAA8B,KAAK,UAAZ,OAAsB,KAAK,QAAQ,YAAY,KAAK,QAAQ,MAAM,KAAK,MAAK,EAAG,EAAEA,CAAC,EAAC,EAAGqC,EAAE,QAAQE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,+fCGv1yD,MAAM3K,EAAQb,EAqDRG,EAAOC,EA4BPmH,EAAepF,IAAAA,IAAI,IAAI,EACvB+J,EAAY/J,IAAAA,IAAI,IAAI,EAG1B,IAAIgK,EAAS,KACTC,EAAS,KACTC,EAAgB,KAKpB,MAAMC,EAAa,SAAY,CAC7B,GAAI,CAEFH,EAAS,IAAII,qBAAAA,OAGbF,EAAgB,MAAMF,EAAO,KAAKtL,EAAM,GAAG,EAG3CuL,EAAS,IAAII,qBAAAA,OAAON,EAAU,KAAK,EAGnCE,EAAO,KAAOvL,EAAM,KACpBuL,EAAO,MAAQvL,EAAM,MAGrBuL,EAAO,QAAU,IAAMjM,EAAK,MAAM,EAClCiM,EAAO,QAAU,IAAMjM,EAAK,OAAO,EACnCiM,EAAO,MAAQ,IAAMjM,EAAK,OAAO,EACjCiM,EAAO,QAAU,IAAMjM,EAAK,WAAYiM,EAAO,QAAQ,EAGvD,MAAMA,EAAO,iBAAiBC,CAAa,EAGvCxL,EAAM,SAAW,IACnBuL,EAAO,SAAWvL,EAAM,UAItBA,EAAM,UACRuL,EAAO,MAAK,EAIdjM,EAAK,QAAQ,CACf,OAASkB,EAAO,CACd,QAAQ,MAAM,aAAcA,CAAK,EACjClB,EAAK,QAASkB,CAAK,CACrB,CACF,EAKMoL,EAAO,IAAM,CACbL,GACFA,EAAO,MAAK,CAEhB,EAKMvD,EAAQ,IAAM,CACduD,GACFA,EAAO,MAAK,CAEhB,EAKMM,EAAO,IAAM,CACbN,GACFA,EAAO,KAAI,CAEf,EAKMO,EAAU,IAAM,CAChBP,IACFA,EAAO,KAAI,EACXA,EAAO,MAAK,EAEhB,EAMMQ,EAAeC,GAAa,CAC5BT,IACFA,EAAO,SAAWS,EAEtB,EAMMC,EAAYC,GAAU,CACtBX,IACFA,EAAO,MAAQW,EAEnB,EAMMC,EAAWC,GAAS,CACpBb,IACFA,EAAO,KAAOa,EAElB,EAGA,OAAAzD,EAAa,CACX,KAAAiD,EACA,MAAA5D,EACA,KAAA6D,EACA,QAAAC,EACA,YAAAC,EACA,SAAAE,EACA,QAAAE,CACF,CAAC,EAGD3K,IAAAA,MAAM,IAAMxB,EAAM,IAAK,MAAOqM,GAAW,CACnCA,GAEF,MAAMZ,EAAU,CAEpB,CAAC,EAEDjK,IAAAA,MAAM,IAAMxB,EAAM,KAAOsM,GAAY,CACnCH,EAAQG,CAAO,CACjB,CAAC,EAED9K,IAAAA,MAAM,IAAMxB,EAAM,MAAQuM,GAAa,CACrCN,EAASM,CAAQ,CACnB,CAAC,EAED/K,IAAAA,MAAM,IAAMxB,EAAM,SAAWwM,GAAgB,CAC3CT,EAAYS,CAAW,CACzB,CAAC,EAGDjL,IAAAA,UAAU,SAAY,CACpB,MAAMkH,IAAAA,SAAQ,EACd,MAAMgD,EAAU,CAClB,CAAC,EAGD/C,IAAAA,YAAY,IAAM,CACZ6C,IACFA,EAAO,KAAI,EACXA,EAAS,MAGPD,IACFA,EAAS,MAGXE,EAAgB,IAClB,CAAC,0BApQCvM,IAAAA,mBAEM,MAAA,SAFG,eAAJ,IAAIyH,EAAe,MAAM,0BAC5B9G,IAAAA,mBAA4D,SAAA,SAAhD,YAAJ,IAAIyL,EAAY,MAAM,ojBC8BjC,MAAMrL,EAAQb,EAuBRG,EAAOC,EAGPkN,EAAanL,IAAAA,IAAItB,EAAM,YAAY,EACnC0M,EAAUpL,QAAI,EAAK,EACnBqL,EAAerL,QAAI,EAAK,EACxBsL,EAAetL,QAAI,CAAA,CAAE,EAG3B,SAASuL,GAAa,CACrBJ,EAAW,MAAQ,GACnBG,EAAa,MAAQ,GACrBD,EAAa,MAAQ,GACrBrN,EAAK,YAAa,GAAI,CAAA,CAAE,CACzB,CAEA,SAASwN,GAAc,CACtB,MAAMC,EAAaN,EAAW,MAC9BG,EAAa,MAAQ5M,EAAM,KAAK,OAC9B4I,GAASA,EAAK,MAAQA,EAAK,KAAK,SAASmE,CAAU,CACvD,EACEJ,EAAa,MAAQC,EAAa,MAAM,OAAS,EACjDtN,EAAK,SAAUyN,EAAYH,EAAa,KAAK,CAC9C,CAEA,SAASI,GAAc,CACtBJ,EAAa,MAAQ5M,EAAM,KAAK,OAC9B4I,GAASA,EAAK,MAAQA,EAAK,KAAK,SAAS6D,EAAW,KAAK,CAC7D,EACEC,EAAQ,MAAQ,GAChBC,EAAa,MAAQ,EACtB,CAEA,SAASM,GAAa,CACrB,WAAW,IAAM,CAChBP,EAAQ,MAAQ,GAChBC,EAAa,MAAQ,EACtB,EAAG,GAAG,CACP,CAEA,SAASO,EAAWtE,EAAM,CACzB6D,EAAW,MAAQ7D,EAAK,KACxB+D,EAAa,MAAQ,GACrBrN,EAAK,SAAUsJ,CAAI,CACpB,CAKArH,WAAAA,UAAU,IAAM,CAEXvB,EAAM,eACTyM,EAAW,MAAQzM,EAAM,aAE3B,CAAC,sDA5GD,OAAAN,cAAA,EAAAT,uBAgBM,MAhBN,WAgBM,CAdLW,IAAAA,mBAIM,MAAA,CAJD,MAAKV,IAAAA,eAAA,CAAC,gBAAe,CAAA,MAAkBwN,EAAA,MAAO,CAAA,uBAClD9M,IAAAA,mBAC2C,QAAA,CADpC,MAAM,eAAgB,YAAaT,EAAA,iDAAsBsN,EAAU,MAAA1J,GAAG,QAAO+J,EAClF,QAAOE,EAAc,OAAMC,wCADmCR,EAAA,KAAU,IAE/DA,EAAA,OAAYtN,EAAA,2BAAvBF,IAAAA,mBAAgF,MAAA,OAA9C,MAAM,aAAc,QAAO4N,GAAY,GAAC,qCAIhEF,EAAA,OAAgBC,EAAA,MAAa,OAAM,GAA9ClN,IAAAA,YAAAT,IAAAA,mBAMM,MANN,WAMM,CALLkO,IAAAA,YAIcC,EAAA,CAJD,WAAA,GAAU,oCAAoBjO,EAAA,UAAS,IAAA,CAAA,wBAC9C,IAAqC,EAA1CO,IAAAA,UAAA,EAAA,EAAAT,IAAAA,mBAEM2D,aAAA,KAAAC,IAAAA,WAFuB+J,EAAA,MAAY,CAA5BhE,EAAMlE,qBAAnBzF,IAAAA,mBAEM,MAAA,CAFsC,IAAKyF,EAAO,MAAM,gBAAiB,QAAK3B,GAAEmK,EAAWtE,CAAI,IACpGhJ,IAAAA,mBAA8C,OAA9C,WAA8CE,IAAAA,gBAAnB8I,EAAK,IAAI,EAAA,CAAA","x_google_ignoreList":[8]}
1
+ {"version":3,"file":"index.cjs.js","sources":["../c1/src/C1.vue","../c2/src/C2.vue","../hbis-dateStrip/src/hbis-dateStrip.vue","../hbis-previewImage/src/hbis-previewImage.vue","../hbis-auto-scroll-list/src/hbis-auto-scroll-list.vue","../hbis-loading/src/hbis-loading.vue","../hbis-smsInput/src/hbis-sms-input.vue","../hbis-waterfall/src/hbis-waterfall.vue","../../../node_modules/.pnpm/svga.lite@1.6.1/node_modules/svga.lite/svga.lite.min.js","../hbis-svgaPlayer/src/hbis-svgaPlayer.vue","../hbis-search-input/src/hbis-search-input.vue","../hbis-dropdown-select/src/hbis-dropdown-select.vue","../hbis-password-input/src/hbis-password-input.vue"],"sourcesContent":["<template>\n <div class=\"c1-container\" :class=\"{ 'c1-primary': primary }\">\n <slot>{{ title }}</slot>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * C1组件 - 基础组件示例\n * 用于展示基本的Vue3组件结构和TypeScript支持\n */\n\n// 定义组件属性\ninterface Props {\n /** 标题文本 */\n title?: string;\n /** 是否使用主要样式 */\n primary?: boolean;\n}\n\n// 定义组件属性默认值\nconst props = withDefaults(defineProps<Props>(), {\n title: 'C1 Component',\n primary: false\n});\n</script>\n\n<style scoped>\n.c1-container {\n padding: 16px;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n background-color: #ffffff;\n}\n\n.c1-primary {\n background-color: #1890ff;\n color: #ffffff;\n border-color: #1890ff;\n}\n</style>\n","<template>\n <div class=\"c2-container\">\n <h2 class=\"c2-title\">{{ title }}</h2>\n <div class=\"c2-content\">\n <slot></slot>\n </div>\n <button v-if=\"showButton\" class=\"c2-button\" @click=\"handleClick\">\n {{ buttonText }}\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * C2组件 - 带按钮的容器组件\n * 用于展示包含事件处理的Vue3组件\n */\n\n// 定义组件属性\ninterface Props {\n /** 标题文本 */\n title?: string;\n /** 是否显示按钮 */\n showButton?: boolean;\n /** 按钮文本 */\n buttonText?: string;\n}\n\n// 定义组件事件\nconst emit = defineEmits<{\n /** 按钮点击事件 */\n (e: 'click', event: MouseEvent): void;\n}>();\n\n// 定义组件属性默认值\nconst props = withDefaults(defineProps<Props>(), {\n title: 'C2 Component',\n showButton: true,\n buttonText: 'Click Me'\n});\n\n/**\n * 处理按钮点击事件\n * @param event 鼠标点击事件对象\n */\nconst handleClick = (event: MouseEvent) => {\n emit('click', event);\n};\n</script>\n\n<style scoped>\n.c2-container {\n padding: 20px;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n background-color: #fafafa;\n margin: 16px 0;\n}\n\n.c2-title {\n margin: 0 0 12px 0;\n font-size: 18px;\n font-weight: 600;\n color: #333333;\n}\n\n.c2-content {\n margin-bottom: 16px;\n color: #666666;\n}\n\n.c2-button {\n padding: 8px 16px;\n background-color: #52c41a;\n color: #ffffff;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 14px;\n transition: background-color 0.3s;\n}\n\n.c2-button:hover {\n background-color: #73d13d;\n}\n</style>\n","<template>\n <div class=\"hbis-date-strip\" :class=\"{\n 'hbis-date-strip--highlight-bg': highlightType === 'bg',\n 'hbis-date-strip--highlight-dot': highlightType === 'dot',\n 'hbis-date-strip--highlight-round': highlightType === 'round',\n 'hbis-date-strip--scrollable': shouldScroll\n }\">\n <!-- 非滚动模式:星期行 + 固定日期行 -->\n <div v-if=\"!shouldScroll\">\n <!-- 星期行 - 固定显示7个星期,始终在顶部 -->\n <div class=\"hbis-date-strip__weekdays\">\n <div \n v-for=\"weekday in orderedWeekdays\" \n :key=\"weekday.value\"\n class=\"hbis-date-strip__weekday\"\n :class=\"{\n 'hbis-date-strip__weekday--weekend': weekday.isWeekend\n }\"\n >\n {{ weekday.label }}\n </div>\n </div>\n \n <!-- 日期行 - 固定显示7天 -->\n <div class=\"hbis-date-strip__dates\">\n <div \n v-for=\"date in filteredDisplayDates\" \n :key=\"date.dateString\"\n class=\"hbis-date-strip__date\"\n :class=\"{\n 'hbis-date-strip__date--selected': isSelected(date),\n 'hbis-date-strip__date--today': isToday(date),\n 'hbis-date-strip__date--disabled': !isInRange(date),\n 'hbis-date-strip__date--weekend': date.isWeekend\n }\"\n :style=\"{\n color: isSelected(date) ? selectedColor : normalColor,\n backgroundColor: isSelected(date) ? selectedBgColor : normalBgColor\n }\"\n @click=\"handleDateClick(date)\"\n >\n <div class=\"hbis-date-strip__date-number\">{{ date.day }}</div>\n <!-- 每个日期项的自定义slot -->\n <div class=\"hbis-date-strip__date-slot\">\n <slot :date=\"date\"></slot>\n </div>\n </div>\n </div>\n </div>\n \n <!-- 滚动模式:星期行和日期行一起滚动 -->\n <div v-else class=\"hbis-date-strip__scroll-wrapper\">\n <!-- 滚动容器 - 包含星期行和日期行 -->\n <div \n class=\"hbis-date-strip__scroll-container\"\n >\n <!-- 星期行 - 与日期一起滚动 -->\n <div class=\"hbis-date-strip__weekdays\">\n <div \n v-for=\"date in filteredDisplayDates\" \n :key=\"date.dateString + '-weekday'\"\n class=\"hbis-date-strip__weekday\"\n :class=\"{\n 'hbis-date-strip__weekday--weekend': date.isWeekend\n }\"\n >\n <!-- 显示每个日期对应的星期 -->\n {{ getWeekdayLabel(date.weekday) }}\n </div>\n </div>\n \n <!-- 日期行 - 一页显示7天,支持横向滑动 -->\n <div class=\"hbis-date-strip__dates\">\n <div \n v-for=\"date in filteredDisplayDates\" \n :key=\"date.dateString\"\n class=\"hbis-date-strip__date\"\n :class=\"{\n 'hbis-date-strip__date--selected': isSelected(date),\n 'hbis-date-strip__date--today': isToday(date),\n 'hbis-date-strip__date--disabled': !isInRange(date),\n 'hbis-date-strip__date--weekend': date.isWeekend\n }\"\n :style=\"{\n color: isSelected(date) ? selectedColor : normalColor,\n backgroundColor: isSelected(date) ? selectedBgColor : normalBgColor\n }\"\n @click=\"handleDateClick(date)\"\n >\n <div class=\"hbis-date-strip__date-number\">{{ date.day }}</div>\n <!-- 每个日期项的自定义slot -->\n <div class=\"hbis-date-strip__date-slot\">\n <slot :date=\"date\"></slot>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n\n </div>\n</template>\n\n<script setup lang=\"ts\">\n/**\n * hbis-dateStrip组件 - 用于展示一周的日历信息\n * 支持多种切换方式和选中样式\n * 兼容平台:H5、App、微信小程序、支付宝小程序等Uniapp支持的所有平台\n */\n\nimport { ref, computed, onMounted, watch } from 'vue';\n\n// 星期数据类型\ninterface Weekday {\n value: number;\n label: string;\n isWeekend: boolean;\n}\n\n// 日期数据类型\ninterface DateItem {\n date: Date;\n dateString: string;\n day: number;\n month: number;\n year: number;\n isWeekend: boolean;\n weekday: number;\n}\n\n// 组件属性类型\ninterface Props {\n /** 选中日期,可以是单个日期或日期范围 */\n modelValue?: Date | Date[];\n /** 日期范围开始 */\n startDate?: Date;\n /** 日期范围结束 */\n endDate?: Date;\n /** 选中样式类型:bg(背景色高亮), dot(数字背景色高亮), round(数字背景色圆角高亮) */\n highlightType?: 'bg' | 'dot' | 'round';\n /** 是否显示今天 */\n showToday?: boolean;\n /** 是否禁用过去的日期 */\n disablePast?: boolean;\n /** 是否禁用未来的日期 */\n disableFuture?: boolean;\n /** 选中状态的文字颜色 */\n selectedColor?: string;\n /** 正常状态的文字颜色 */\n normalColor?: string;\n /** 选中状态的背景颜色 */\n selectedBgColor?: string;\n /** 正常状态的背景颜色 */\n normalBgColor?: string;\n /** 是否支持横向滑动日期 */\n scrollable?: boolean;\n /** 可见的天数(默认7天) */\n visibleDays?: number;\n}\n\n// 定义组件属性默认值\nconst props = withDefaults(defineProps<Props>(), {\n modelValue: () => new Date(),\n startDate: () => new Date(),\n endDate: () => {\n const end = new Date();\n end.setDate(end.getDate() + 30);\n return end;\n },\n highlightType: 'bg',\n showToday: true,\n disablePast: false,\n disableFuture: false,\n selectedColor: '#ffffff',\n normalColor: '#666666',\n selectedBgColor: '#1890ff',\n normalBgColor: 'transparent',\n scrollable: false,\n visibleDays: 7\n});\n\n// 直接使用props访问属性,确保响应性\n// 注意:在Vue 3 Composition API中,解构props会失去响应性\n\n// 定义组件事件\nconst emit = defineEmits<{\n /** 选中日期变化事件 */\n (e: 'update:modelValue', value: Date | Date[]): void;\n /** 日期点击事件 */\n (e: 'dateClick', date: DateItem): void;\n}>();\n\n// 计算是否需要滚动:如果日期范围超过7天,则可以滚动\nconst shouldScroll = computed<boolean>(() => {\n // 调试信息:打印props,查看startDate和endDate的值\n console.log('props:', {\n startDate: props.startDate,\n endDate: props.endDate,\n scrollable: props.scrollable\n });\n \n // 如果显式设置了scrollable为true,直接返回true\n if (props.scrollable) {\n console.log('显式设置了scrollable为true,允许滚动');\n return true;\n }\n \n try {\n // 计算日期范围的天数,忽略时间部分\n const start = new Date(props.startDate);\n start.setHours(0, 0, 0, 0);\n \n const end = new Date(props.endDate);\n end.setHours(0, 0, 0, 0);\n \n // 检查日期是否有效\n if (isNaN(start.getTime()) || isNaN(end.getTime())) {\n console.log('无效的日期对象,使用默认滚动行为');\n return false;\n }\n \n // 计算总天数,确保结果正确\n const diffTime = end.getTime() - start.getTime();\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\n const totalDays = diffDays + 1;\n \n // 调试信息\n console.log('日期范围天数计算:', {\n start: start.toLocaleDateString(),\n end: end.toLocaleDateString(),\n diffTime,\n diffDays,\n totalDays,\n shouldScroll: totalDays > 7\n });\n \n // 如果超过7天,允许滚动\n return totalDays > 7;\n } catch (error) {\n console.error('计算日期范围时出错:', error);\n // 出错时,默认不允许滚动\n return false;\n }\n});\n\n// 星期数据\nconst weekdays: Weekday[] = [\n { value: 0, label: '日', isWeekend: true },\n { value: 1, label: '一', isWeekend: false },\n { value: 2, label: '二', isWeekend: false },\n { value: 3, label: '三', isWeekend: false },\n { value: 4, label: '四', isWeekend: false },\n { value: 5, label: '五', isWeekend: false },\n { value: 6, label: '六', isWeekend: true }\n];\n\n// 根据当前显示的第一个日期动态排序星期,确保星期和日期对应\nconst orderedWeekdays = computed<Weekday[]>(() => {\n // 获取当前显示的第一个有效的日期\n const firstDate = filteredDisplayDates.value[0];\n if (!firstDate) {\n // 如果没有日期,返回默认的星期顺序\n return weekdays;\n }\n \n const firstDateWeekday = firstDate.weekday;\n const result: Weekday[] = [];\n \n // 从第一个日期的星期开始,按顺序排列7天的星期\n for (let i = 0; i < 7; i++) {\n const weekdayIndex = (firstDateWeekday + i) % 7;\n result.push(weekdays[weekdayIndex]);\n }\n \n return result;\n});\n\n// 当前显示的周开始日期\n// 初始化时就计算出正确的周开始日期,确保组件第一次渲染时就有有效值\nconst initCurrentWeekStart = () => {\n // 如果设置了startDate,就从startDate开始,否则从今天开始\n const baseDate = props.startDate || new Date();\n const day = baseDate.getDay(); // 0是周日,1是周一,2是周二,3是周三,4是周四,5是周五,6是周六\n // 计算从baseDate开始的周开始日期:如果是周一,diff=0;如果是周二,diff=-1;...;如果是周日,diff=-6\n const diff = baseDate.getDate() - (day === 0 ? 6 : day - 1);\n const startDate = new Date(baseDate);\n startDate.setDate(diff);\n return startDate;\n};\n\nconst currentWeekStart = ref(initCurrentWeekStart());\n\n// 组件挂载后再次确认周开始日期\nonMounted(() => {\n // 调试信息:打印props的值,看看是否能被正确接收\n console.log('props:', props);\n console.log('highlightType:', props.highlightType);\n});\n\n// 监听highlightType变化\nwatch(\n () => props.highlightType,\n (newValue) => {\n console.log('highlightType changed:', newValue);\n }\n);\n\n// 监听modelValue变化\nwatch(\n () => props.modelValue,\n (newValue) => {\n console.log('modelValue changed:', newValue);\n }\n);\n\n/**\n * 生成显示的日期数组\n */\nconst displayDates = computed<DateItem[]>(() => {\n const dates: DateItem[] = [];\n \n try {\n // 计算日期范围:从startDate开始,到endDate结束\n const start = props.startDate;\n const end = props.endDate;\n \n // 检查日期是否有效\n if (isNaN(start.getTime()) || isNaN(end.getTime())) {\n console.log('无效的日期对象,返回空数组');\n return dates;\n }\n \n // 计算总天数\n const totalDays = Math.ceil((end.getTime() - start.getTime()) / (1000 * 60 * 60 * 24)) + 1;\n \n // 生成日期数组\n for (let i = 0; i < totalDays; i++) {\n const date = new Date(start);\n date.setDate(start.getDate() + i);\n \n // 确保生成的日期是有效的\n if (!isNaN(date.getTime())) {\n dates.push({\n date,\n dateString: formatDate(date),\n day: date.getDate(),\n month: date.getMonth() + 1,\n year: date.getFullYear(),\n isWeekend: date.getDay() === 0 || date.getDay() === 6,\n weekday: date.getDay()\n });\n }\n }\n } catch (error) {\n console.error('生成日期数组时出错:', error);\n }\n \n return dates;\n});\n\n/**\n * 过滤后的日期数组,只包含有效的DateItem对象\n */\nconst filteredDisplayDates = computed<DateItem[]>(() => {\n return displayDates.value.filter((date): date is DateItem => {\n // 确保date是有效的DateItem对象,并且包含所有必要的属性\n return Boolean(date && \n date.date && \n date.dateString && \n !isNaN(date.date.getTime()) && \n typeof date.dateString === 'string' && \n typeof date.day === 'number');\n });\n});\n\n/**\n * 格式化日期为YYYY-MM-DD格式\n * @param date 日期对象\n * @returns 格式化后的日期字符串\n */\nconst formatDate = (date: Date): string => {\n return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;\n};\n\n/**\n * 检查日期是否被选中\n * @param date 日期项\n * @returns 是否被选中\n */\nconst isSelected = (date: DateItem): boolean => {\n const dateStr = date.dateString;\n \n // 确保modelValue存在\n if (!props.modelValue) {\n return false;\n }\n \n if (Array.isArray(props.modelValue)) {\n // 范围选择\n return props.modelValue.some(selectedDate => {\n // 确保selectedDate是有效的Date对象\n if (!selectedDate || isNaN(selectedDate.getTime())) {\n return false;\n }\n return formatDate(selectedDate) === dateStr;\n });\n } else {\n // 单个日期选择\n // 确保modelValue是有效的Date对象\n if (isNaN(props.modelValue.getTime())) {\n return false;\n }\n return formatDate(props.modelValue) === dateStr;\n }\n};\n\n/**\n * 检查日期是否是今天\n * @param date 日期项\n * @returns 是否是今天\n */\nconst isToday = (date: DateItem): boolean => {\n const todayStr = formatDate(new Date());\n return date.dateString === todayStr;\n};\n\n/**\n * 检查日期是否在可选范围内\n * @param date 日期项\n * @returns 是否在范围内\n */\nconst isInRange = (date: DateItem): boolean => {\n const dateObj = date.date;\n \n if (props.disablePast && dateObj < new Date(new Date().setHours(0, 0, 0, 0))) {\n return false;\n }\n \n if (props.disableFuture && dateObj > new Date(new Date().setHours(23, 59, 59, 999))) {\n return false;\n }\n \n return dateObj >= props.startDate && dateObj <= props.endDate;\n};\n\n/**\n * 根据星期值获取星期标签\n * @param weekday 星期值(0-6,0代表周日)\n * @returns 星期标签\n */\nconst getWeekdayLabel = (weekday: number): string => {\n return weekdays.find(w => w.value === weekday)?.label || '';\n};\n\n/**\n * 处理日期点击事件\n * @param date 日期项\n */\nconst handleDateClick = (date: DateItem) => {\n if (!isInRange(date)) return;\n \n emit('dateClick', date);\n emit('update:modelValue', date.date);\n};\n</script>\n\n<style scoped>\n/* 基础容器样式 */\n.hbis-date-strip {\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 8px;\n background-color: #ffffff;\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n box-sizing: border-box;\n}\n\n/* 横向滚动模式 */\n.hbis-date-strip--scrollable {\n overflow: hidden;\n}\n\n/* 滚动包装器 */\n.hbis-date-strip__scroll-wrapper {\n overflow: hidden;\n width: 100%;\n}\n\n/* 滚动容器 */\n.hbis-date-strip__scroll-container {\n width: 100%;\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: none; /* 隐藏Firefox滚动条 */\n -ms-overflow-style: none; /* 隐藏IE滚动条 */\n}\n\n.hbis-date-strip__scroll-container::-webkit-scrollbar {\n display: none; /* 隐藏Chrome、Safari滚动条 */\n}\n\n/* 星期行样式 */\n.hbis-date-strip__weekdays {\n display: flex;\n margin-bottom: 8px;\n box-sizing: border-box;\n flex-wrap: nowrap;\n}\n\n/* 星期项样式 - 所有模式下都占1/7宽度 */\n.hbis-date-strip__weekday {\n text-align: center;\n font-size: 12px;\n font-weight: 500;\n color: #666666;\n padding: 4px 0;\n flex: 0 0 calc(100% / 7); /* 每日宽度占父宽度的1/7 */\n width: calc(100% / 7); /* 每日宽度占父宽度的1/7 */\n min-width: calc(100% / 7); /* 确保宽度固定,不受内容影响 */\n box-sizing: border-box;\n}\n\n.hbis-date-strip__weekday--weekend {\n color: #ff4d4f;\n}\n\n/* 日期行样式 - 所有模式下的基础样式 */\n.hbis-date-strip__dates {\n display: flex;\n justify-content: flex-start;\n width: 100%;\n box-sizing: border-box;\n}\n\n/* 滚动模式下的星期行 */\n.hbis-date-strip--scrollable .hbis-date-strip__weekdays {\n width: auto;\n}\n\n/* 滚动模式下的日期行 */\n.hbis-date-strip--scrollable .hbis-date-strip__dates {\n width: auto;\n flex-wrap: nowrap;\n}\n\n/* 非滚动模式下的日期行 */\n.hbis-date-strip:not(.hbis-date-strip--scrollable) .hbis-date-strip__dates {\n justify-content: space-around;\n width: 100%;\n}\n\n/* 日期项样式 - 所有模式下都和星期项宽度完全一致 */\n.hbis-date-strip__date {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 8px 0;\n border-radius: 4px;\n transition: all 0.2s ease;\n position: relative;\n user-select: none;\n cursor: pointer;\n flex: 0 0 calc(100% / 7); /* 和星期项保持完全一致,每日宽度占父宽度的1/7 */\n width: calc(100% / 7); /* 和星期项保持完全一致,每日宽度占父宽度的1/7 */\n min-width: calc(100% / 7); /* 和星期项保持完全一致,确保宽度固定 */\n max-width: calc(100% / 7); /* 和星期项保持完全一致,确保宽度不超过 */\n box-sizing: border-box;\n white-space: normal;\n}\n\n.hbis-date-strip__date--disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.hbis-date-strip__date--weekend {\n /* 周末颜色通过自定义属性控制 */\n}\n\n.hbis-date-strip__date-number {\n font-size: 14px;\n font-weight: 500;\n padding: 4px;\n transition: all 0.2s ease;\n width: 100%;\n text-align: center;\n box-sizing: border-box;\n}\n\n/* 日期slot样式 */\n.hbis-date-strip__date-slot {\n margin-top: 4px;\n font-size: 10px;\n text-align: center;\n width: 100%;\n box-sizing: border-box;\n}\n\n/* 选中样式 - 背景色高亮 */\n.hbis-date-strip--highlight-bg .hbis-date-strip__date--selected {\n /* 背景色和文字颜色通过内联样式控制 */\n}\n\n/* 选中样式 - 数字背景色高亮 */\n.hbis-date-strip--highlight-dot .hbis-date-strip__date--selected .hbis-date-strip__date-number {\n /* 背景色和文字颜色通过内联样式控制 */\n border-radius: 2px;\n}\n\n/* 选中样式 - 数字背景色圆角高亮 */\n.hbis-date-strip--highlight-round .hbis-date-strip__date--selected .hbis-date-strip__date-number {\n /* 背景色和文字颜色通过内联样式控制 */\n border-radius: 50%;\n padding: 4px 8px;\n min-width: 20px;\n text-align: center;\n}\n\n/* 今天样式 */\n.hbis-date-strip__date--today .hbis-date-strip__date-number {\n font-weight: 600;\n /* 今天颜色保持默认,不受自定义颜色影响 */\n color: #1890ff !important;\n}\n\n/* 禁用日期样式 */\n.hbis-date-strip__date--disabled {\n color: #cccccc !important;\n background-color: transparent !important;\n}\n</style>","<template>\n <div class=\"image-preview\">\n <!-- 图片数量指示器 -->\n <div class=\"counter\" v-if=\"images.length > 1\">\n <span class=\"counter-text\">{{ currentIndex + 1 }}/{{ images.length }}</span>\n </div>\n \n <!-- 关闭按钮 -->\n <button class=\"close-btn\" @click=\"emit('close')\" v-if=\"showCloseBtn\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n \n <!-- 图片容器 -->\n <div class=\"swiper-container\">\n <div \n class=\"swiper-wrapper\"\n ref=\"swiperWrapper\"\n :style=\"swiperWrapperStyle\"\n @touchstart=\"handleTouchStart\"\n @touchmove=\"handleTouchMove\"\n @touchend=\"handleTouchEnd\"\n @mousedown=\"handleMouseDown\"\n @mousemove=\"handleMouseMove\"\n @mouseup=\"handleMouseUp\"\n @mouseleave=\"handleMouseUp\"\n >\n <div \n v-for=\"(image, index) in images\" \n :key=\"index\"\n class=\"swiper-slide\"\n :style=\"slideStyle\"\n >\n <div \n class=\"image-container\"\n @wheel=\"handleWheel($event, index)\"\n >\n <img \n :src=\"image\" \n alt=\"Preview image\" \n class=\"preview-image\"\n :style=\"getImageStyle(index)\"\n @load=\"handleImageLoad(index)\"\n loading=\"lazy\"\n >\n </div>\n </div>\n </div>\n </div>\n \n <!-- 左右切换按钮 -->\n <button \n class=\"nav-btn prev-btn\" \n @click=\"prevImage\"\n :disabled=\"currentIndex === 0\"\n >\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"15 18 9 12 15 6\"></polyline>\n </svg>\n </button>\n <button \n class=\"nav-btn next-btn\" \n @click=\"nextImage\"\n :disabled=\"currentIndex === images.length - 1\"\n >\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n </button>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, watch, nextTick } from 'vue';\n\n// 组件属性\nconst props = defineProps({\n // 图片集合\n images: {\n type: Array,\n required: true,\n validator: (value) => value.every(item => typeof item === 'string')\n },\n // 当前显示的图片索引\n initialIndex: {\n type: Number,\n default: 0\n },\n // 最小缩放倍数\n minScale: {\n type: Number,\n default: 0.5\n },\n // 最大缩放倍数\n maxScale: {\n type: Number,\n default: 5\n },\n // 是否显示关闭按钮\n showCloseBtn: {\n type: Boolean,\n default: true\n },\n // 是否启用滑动\n enableSwipe: {\n type: Boolean,\n default: true\n }\n});\n\n// 定义事件\nconst emit = defineEmits(['close', 'change', 'update:initialIndex']);\n\n// 响应式数据\nconst currentIndex = ref(props.initialIndex);\nconst swiperWrapper = ref(null);\nconst isDragging = ref(false);\nconst isMovingImage = ref(false);\nconst startX = ref(0);\nconst startY = ref(0);\nconst currentTranslateX = ref(0);\nconst containerWidth = ref(window.innerWidth);\nconst containerHeight = ref(window.innerHeight);\n\n// 图片状态管理\nconst imageStates = ref(props.images.map(() => ({\n scale: 1,\n translateX: 0,\n translateY: 0,\n naturalWidth: 0,\n naturalHeight: 0,\n isLoaded: false\n})));\n\n// 触摸事件数据\nconst touchStartX = ref(0);\nconst touchStartY = ref(0);\nconst touchStartTime = ref(0);\nconst touchMoveX = ref(0);\nconst touchMoveY = ref(0);\n\n// 计算属性\nconst swiperWrapperStyle = computed(() => {\n return {\n transform: `translateX(${currentTranslateX.value}px)`,\n transition: isDragging.value ? 'none' : 'transform 0.3s ease'\n };\n});\n\nconst slideStyle = computed(() => {\n return {\n width: `${containerWidth.value}px`,\n height: `${containerHeight.value}px`\n };\n});\n\n// 监听初始索引变化\nwatch(() => props.initialIndex, (newIndex) => {\n if (newIndex !== currentIndex.value) {\n currentIndex.value = newIndex;\n updateTranslateX();\n }\n});\n\n// 监听窗口大小变化\nonMounted(() => {\n const handleResize = () => {\n containerWidth.value = window.innerWidth;\n containerHeight.value = window.innerHeight;\n updateTranslateX();\n };\n \n window.addEventListener('resize', handleResize);\n handleResize();\n \n return () => {\n window.removeEventListener('resize', handleResize);\n };\n});\n\n// 更新滑动位置\nconst updateTranslateX = () => {\n currentTranslateX.value = -currentIndex.value * containerWidth.value;\n};\n\n// 切换到上一张图片\nconst prevImage = () => {\n if (currentIndex.value > 0) {\n currentIndex.value--;\n updateTranslateX();\n resetCurrentImageState();\n emit('change', currentIndex.value);\n emit('update:initialIndex', currentIndex.value);\n }\n};\n\n// 切换到下一张图片\nconst nextImage = () => {\n if (currentIndex.value < props.images.length - 1) {\n currentIndex.value++;\n updateTranslateX();\n resetCurrentImageState();\n emit('change', currentIndex.value);\n emit('update:initialIndex', currentIndex.value);\n }\n};\n\n// 重置当前图片状态\nconst resetCurrentImageState = () => {\n imageStates.value[currentIndex.value] = {\n ...imageStates.value[currentIndex.value],\n scale: 1,\n translateX: 0,\n translateY: 0\n };\n};\n\n// 获取图片样式\nconst getImageStyle = (index) => {\n const state = imageStates.value[index];\n return {\n transform: `scale(${state.scale}) translate(${state.translateX}px, ${state.translateY}px)`,\n transition: isMovingImage.value ? 'none' : 'transform 0.1s ease',\n opacity: state.isLoaded ? 1 : 0\n };\n};\n\n// 图片加载完成处理\nconst handleImageLoad = (index) => {\n const img = event.target;\n imageStates.value[index] = {\n ...imageStates.value[index],\n naturalWidth: img.naturalWidth,\n naturalHeight: img.naturalHeight,\n isLoaded: true\n };\n};\n\n// 鼠标按下事件\nconst handleMouseDown = (event) => {\n if (event.target.tagName === 'IMG') {\n // 图片内部拖动\n isMovingImage.value = true;\n startX.value = event.clientX - imageStates.value[currentIndex.value].translateX;\n startY.value = event.clientY - imageStates.value[currentIndex.value].translateY;\n } else {\n // 幻灯片拖动\n isDragging.value = true;\n startX.value = event.clientX - currentTranslateX.value;\n }\n event.preventDefault();\n};\n\n// 鼠标移动事件\nconst handleMouseMove = (event) => {\n if (isMovingImage.value) {\n // 移动图片\n const newTranslateX = event.clientX - startX.value;\n const newTranslateY = event.clientY - startY.value;\n \n imageStates.value[currentIndex.value] = {\n ...imageStates.value[currentIndex.value],\n translateX: newTranslateX,\n translateY: newTranslateY\n };\n } else if (isDragging.value && props.enableSwipe) {\n // 滑动切换图片\n const newTranslateX = event.clientX - startX.value;\n currentTranslateX.value = newTranslateX;\n }\n};\n\n// 鼠标释放事件\nconst handleMouseUp = () => {\n if (isDragging.value && props.enableSwipe) {\n // 计算滑动距离\n const swipeThreshold = containerWidth.value * 0.3;\n \n if (Math.abs(currentTranslateX.value + currentIndex.value * containerWidth.value) > swipeThreshold) {\n if (currentTranslateX.value > 0) {\n prevImage();\n } else {\n nextImage();\n }\n } else {\n // 回弹到原位置\n updateTranslateX();\n }\n }\n \n isDragging.value = false;\n isMovingImage.value = false;\n};\n\n// 触摸开始事件\nconst handleTouchStart = (event) => {\n const touch = event.touches[0];\n touchStartX.value = touch.clientX;\n touchStartY.value = touch.clientY;\n touchStartTime.value = Date.now();\n};\n\n// 触摸移动事件\nconst handleTouchMove = (event) => {\n const touch = event.touches[0];\n touchMoveX.value = touch.clientX;\n touchMoveY.value = touch.clientY;\n \n const deltaX = touchMoveX.value - touchStartX.value;\n const deltaY = touchMoveY.value - touchStartY.value;\n \n if (Math.abs(deltaX) > Math.abs(deltaY)) {\n // 水平滑动,切换图片\n event.preventDefault();\n isDragging.value = true;\n currentTranslateX.value = -currentIndex.value * containerWidth.value + deltaX;\n } else if (imageStates.value[currentIndex.value].scale > 1) {\n // 垂直滑动且图片已放大,移动图片\n event.preventDefault();\n isMovingImage.value = true;\n \n const newTranslateX = deltaX + imageStates.value[currentIndex.value].translateX;\n const newTranslateY = deltaY + imageStates.value[currentIndex.value].translateY;\n \n imageStates.value[currentIndex.value] = {\n ...imageStates.value[currentIndex.value],\n translateX: newTranslateX,\n translateY: newTranslateY\n };\n }\n};\n\n// 触摸结束事件\nconst handleTouchEnd = () => {\n if (isDragging.value) {\n const deltaX = touchMoveX.value - touchStartX.value;\n const deltaTime = Date.now() - touchStartTime.value;\n const swipeThreshold = containerWidth.value * 0.2;\n const swipeVelocity = Math.abs(deltaX) / deltaTime;\n \n // 快速滑动或超过阈值\n if (Math.abs(deltaX) > swipeThreshold || swipeVelocity > 0.5) {\n if (deltaX > 0) {\n prevImage();\n } else {\n nextImage();\n }\n } else {\n updateTranslateX();\n }\n }\n \n isDragging.value = false;\n isMovingImage.value = false;\n};\n\n// 鼠标滚轮缩放事件\nconst handleWheel = (event, index) => {\n if (index !== currentIndex.value) return;\n \n event.preventDefault();\n \n const delta = event.deltaY > 0 ? -0.1 : 0.1;\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n \n zoomImage(mouseX, mouseY, delta);\n};\n\n// 缩放图片\nconst zoomImage = (centerX, centerY, delta) => {\n const state = imageStates.value[currentIndex.value];\n const newScale = Math.max(\n props.minScale,\n Math.min(props.maxScale, state.scale + delta)\n );\n \n // 计算缩放中心相对图片的位置\n const rect = event.target.getBoundingClientRect();\n const imageX = centerX - rect.left;\n const imageY = centerY - rect.top;\n \n // 计算缩放后的位移补偿\n const scaleDiff = newScale - state.scale;\n const newTranslateX = state.translateX + (imageX - state.translateX) * (scaleDiff / state.scale);\n const newTranslateY = state.translateY + (imageY - state.translateY) * (scaleDiff / state.scale);\n \n imageStates.value[currentIndex.value] = {\n ...state,\n scale: newScale,\n translateX: newTranslateX,\n translateY: newTranslateY\n };\n};\n</script>\n\n<style lang=\"scss\">\n.image-preview {\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.95);\n overflow: hidden;\n z-index: 9999;\n user-select: none;\n \n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.counter {\n position: absolute;\n top: 20px;\n left: 50%;\n transform: translateX(-50%);\n background-color: rgba(0, 0, 0, 0.7);\n color: white;\n padding: 8px 16px;\n border-radius: 20px;\n font-size: 14px;\n z-index: 10;\n}\n\n.counter-text {\n font-weight: 500;\n}\n\n.close-btn {\n position: absolute;\n top: 20px;\n right: 20px;\n background: none;\n border: none;\n color: white;\n font-size: 24px;\n cursor: pointer;\n padding: 8px;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.5);\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n transition: background-color 0.2s ease;\n \n &:hover {\n background-color: rgba(0, 0, 0, 0.7);\n }\n}\n\n.swiper-container {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.swiper-wrapper {\n display: flex;\n height: 100%;\n}\n\n.swiper-slide {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n}\n\n.image-container {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: grab;\n \n &:active {\n cursor: grabbing;\n }\n}\n\n.preview-image {\n max-width: 100%;\n max-height: 100%;\n object-fit: contain;\n transition: opacity 0.3s ease;\n}\n\n.nav-btn {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n background: none;\n border: none;\n color: white;\n font-size: 24px;\n cursor: pointer;\n padding: 12px;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.5);\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n transition: background-color 0.2s ease, opacity 0.2s ease;\n \n &:hover:not(:disabled) {\n background-color: rgba(0, 0, 0, 0.7);\n }\n \n &:disabled {\n opacity: 0.3;\n cursor: not-allowed;\n }\n}\n\n.prev-btn {\n left: 20px;\n}\n\n.next-btn {\n right: 20px;\n}\n\n/* 动画效果 */\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n</style>","<template>\n <!-- 主容器:负责显示滚动内容的可视区域 -->\n <!-- 添加了鼠标和触摸事件监听,用于实现拖拽功能 -->\n <div \n class=\"hbis-auto-scroll-list\" \n ref=\"containerRef\"\n :style=\"containerStyle\"\n @mousedown=\"handleMouseDown\"\n @touchstart=\"handleTouchStart\"\n @touchmove=\"handleTouchMove\"\n @touchend=\"handleTouchEnd\"\n >\n <!-- 滚动内容容器:实际包含所有列表项的容器,通过transform实现滚动效果 -->\n <div \n class=\"scroll-content\" \n ref=\"contentRef\"\n :style=\"contentStyle\"\n >\n <!-- 插槽:支持自定义列表项的内容和样式 -->\n <!-- 使用v-for遍历displayList,支持循环滚动 -->\n <slot name=\"item\" v-for=\"(item, index) in displayList\" :item=\"item\" :index=\"index\">\n <!-- 默认列表项样式 -->\n <div class=\"default-item\" :style=\"itemStyle\">\n {{ item }}\n </div>\n </slot>\n </div>\n </div>\n</template>\n\n<script setup>\n// 导入Vue的响应式API\nimport { ref, computed, onMounted, onUnmounted, watch, nextTick } from 'vue';\n\n// 定义组件属性\nconst props = defineProps({\n // 列表数据数组\n data: {\n type: Array,\n default: () => []\n },\n // 滚动速度\n speed: {\n type: Number,\n default: 1\n },\n // 滚动方向:vertical(垂直)或horizontal(水平)\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value)\n },\n // 鼠标悬停是否暂停\n pauseOnHover: {\n type: Boolean,\n default: true\n },\n // 列表项高度(垂直滚动时使用)\n itemHeight: {\n type: Number,\n default: 40\n },\n // 列表项宽度(水平滚动时使用)\n itemWidth: {\n type: Number,\n default: 200\n },\n // 容器高度\n containerHeight: {\n type: [Number, String],\n default: 300\n },\n // 容器宽度\n containerWidth: {\n type: [Number, String],\n default: '100%'\n },\n // 是否循环滚动\n loop: {\n type: Boolean,\n default: true\n },\n // 自定义列表项类名\n customItemClass: {\n type: String,\n default: ''\n },\n // 自定义列表项样式\n itemStyle: {\n type: Object,\n default: () => ({})\n }\n});\n\n// 定义事件\nconst emit = defineEmits(['scroll', 'pause', 'resume', 'dragStart', 'dragEnd']);\n\n// 组件引用\nconst containerRef = ref(null); // 主容器引用\nconst contentRef = ref(null); // 滚动内容容器引用\n\n// 响应式数据\nconst isPaused = ref(false); // 是否暂停滚动\nconst animationFrameId = ref(null); // 动画帧ID,用于取消动画\nconst currentPosition = ref(0); // 当前滚动位置\nconst displayList = ref([]); // 显示的列表数据(循环模式下会复制一份)\n\n// 拖拽相关数据\nconst isDragging = ref(false); // 是否正在拖拽\nconst dragStartPos = ref(0); // 拖拽开始位置\nconst dragCurrentPos = ref(0); // 拖拽当前位置\nconst dragOffset = ref(0); // 拖拽偏移量\nconst wasPausedBeforeDrag = ref(false); // 拖拽前是否处于暂停状态\n\n// 计算属性:容器样式\nconst containerStyle = computed(() => ({\n // 动态设置容器高度和宽度\n height: typeof props.containerHeight === 'number' ? `${props.containerHeight}px` : props.containerHeight,\n width: typeof props.containerWidth === 'number' ? `${props.containerWidth}px` : props.containerWidth,\n overflow: 'hidden', // 隐藏超出部分\n position: 'relative' // 相对定位,为绝对定位的内容容器提供参考\n}));\n\n// 计算属性:滚动内容样式\nconst contentStyle = computed(() => {\n const style = {\n with:'100%',\n position: 'absolute', // 绝对定位,实现自由移动\n transition: 'none', // 禁用过渡,使用transform实现平滑滚动\n willChange: 'transform', // 告诉浏览器将要变化的属性,优化性能\n };\n \n // 根据滚动方向设置transform\n if (props.direction === 'vertical') {\n style.transform = `translateY(${currentPosition.value}px)`;\n } else {\n style.transform = `translateX(${currentPosition.value}px)`;\n }\n \n return style;\n});\n\n/**\n * 更新显示列表\n * 说明:如果是循环模式,会复制一份数据到displayList,实现无缝滚动效果\n */\nconst updateDisplayList = () => {\n if (!props.data || props.data.length === 0) {\n displayList.value = [];\n return;\n }\n \n if (props.loop) {\n // 循环模式:复制一份数据,实现无缝滚动\n displayList.value = [...props.data, ...props.data];\n } else {\n // 非循环模式:直接使用原数据\n displayList.value = [...props.data];\n }\n};\n\n/**\n * 动画函数\n * 说明:使用requestAnimationFrame实现平滑动画,避免使用setInterval导致的性能问题\n */\nconst animate = () => {\n // 如果暂停或正在拖拽,不执行动画\n if (isPaused.value || isDragging.value) {\n animationFrameId.value = requestAnimationFrame(animate);\n return;\n }\n \n const container = containerRef.value;\n const content = contentRef.value;\n \n // 如果容器不存在,不执行动画\n if (!container || !content) {\n animationFrameId.value = requestAnimationFrame(animate);\n return;\n }\n \n // 获取容器尺寸\n const containerSize = props.direction === 'vertical' \n ? container.offsetHeight \n : container.offsetWidth;\n \n // 获取列表项尺寸\n const itemSize = props.direction === 'vertical' \n ? props.itemHeight \n : props.itemWidth;\n \n // 计算总滚动尺寸\n const totalSize = itemSize * props.data.length;\n \n // 更新滚动位置\n currentPosition.value -= props.speed;\n \n // 处理循环滚动\n if (props.loop) {\n // 当滚动完一轮后,重置位置\n if (Math.abs(currentPosition.value) >= totalSize) {\n currentPosition.value = 0;\n }\n } else {\n // 处理非循环滚动\n const maxPosition = -(totalSize - containerSize);\n // 滚动到底部后暂停\n if (currentPosition.value <= maxPosition) {\n currentPosition.value = maxPosition;\n isPaused.value = true;\n emit('scroll', currentPosition.value);\n return;\n }\n }\n \n // 触发滚动事件\n emit('scroll', currentPosition.value);\n \n // 继续下一帧动画\n animationFrameId.value = requestAnimationFrame(animate);\n};\n\n/**\n * 开始动画\n * 说明:在启动新动画前,先取消之前的动画,避免内存泄漏\n */\nconst startAnimation = () => {\n if (animationFrameId.value) {\n cancelAnimationFrame(animationFrameId.value);\n }\n animationFrameId.value = requestAnimationFrame(animate);\n};\n\n/**\n * 停止动画\n * 说明:取消动画帧,释放资源\n */\nconst stopAnimation = () => {\n if (animationFrameId.value) {\n cancelAnimationFrame(animationFrameId.value);\n animationFrameId.value = null;\n }\n};\n\n/**\n * 暂停滚动\n */\nconst pause = () => {\n isPaused.value = true;\n emit('pause');\n};\n\n/**\n * 恢复滚动\n */\nconst resume = () => {\n isPaused.value = false;\n emit('resume');\n};\n\n/**\n * 处理鼠标进入事件\n */\nconst handleMouseEnter = () => {\n if (props.pauseOnHover) {\n pause();\n }\n};\n\n/**\n * 处理鼠标离开事件\n */\nconst handleMouseLeave = () => {\n // 只有在非拖拽状态下才恢复滚动\n if (props.pauseOnHover && !isDragging.value) {\n resume();\n }\n};\n\n/**\n * 处理鼠标按下事件\n * 说明:开始拖拽操作,记录初始状态\n */\nconst handleMouseDown = (e) => {\n // 标记为拖拽状态\n isDragging.value = true;\n // 记录拖拽前的暂停状态\n wasPausedBeforeDrag.value = isPaused.value;\n // 暂停滚动\n isPaused.value = true;\n \n // 记录拖拽开始位置\n dragStartPos.value = props.direction === 'vertical' ? e.clientY : e.clientX;\n dragCurrentPos.value = dragStartPos.value;\n // 记录当前滚动位置作为偏移量\n dragOffset.value = currentPosition.value;\n \n // 触发拖拽开始事件\n emit('dragStart');\n \n // 添加全局鼠标移动和释放事件监听\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n};\n\n/**\n * 处理鼠标移动事件\n * 说明:更新拖拽位置,实现手动滚动\n */\nconst handleMouseMove = (e) => {\n if (!isDragging.value) return;\n \n // 计算拖拽当前位置\n dragCurrentPos.value = props.direction === 'vertical' ? e.clientY : e.clientX;\n // 计算拖拽距离\n const delta = dragCurrentPos.value - dragStartPos.value;\n \n // 更新滚动位置\n currentPosition.value = dragOffset.value + delta;\n \n const container = containerRef.value;\n const content = contentRef.value;\n \n // 边界检查\n if (container && content) {\n const containerSize = props.direction === 'vertical' \n ? container.offsetHeight \n : container.offsetWidth;\n \n const itemSize = props.direction === 'vertical' \n ? props.itemHeight \n : props.itemWidth;\n \n const totalSize = itemSize * props.data.length;\n \n // 循环模式的边界处理\n if (props.loop) {\n if (currentPosition.value > 0) {\n currentPosition.value = 0;\n } else if (Math.abs(currentPosition.value) > totalSize) {\n currentPosition.value = -totalSize;\n }\n } else {\n // 非循环模式的边界处理\n const maxPosition = -(totalSize - containerSize);\n if (currentPosition.value > 0) {\n currentPosition.value = 0;\n } else if (currentPosition.value < maxPosition) {\n currentPosition.value = maxPosition;\n }\n }\n }\n \n // 触发滚动事件\n emit('scroll', currentPosition.value);\n};\n\n/**\n * 处理鼠标释放事件\n * 说明:结束拖拽操作,恢复滚动状态\n */\nconst handleMouseUp = () => {\n if (!isDragging.value) return;\n \n // 标记为非拖拽状态\n isDragging.value = false;\n \n // 移除全局事件监听\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n \n // 如果拖拽前不是暂停状态,恢复滚动\n if (!wasPausedBeforeDrag.value) {\n isPaused.value = false;\n }\n \n // 触发拖拽结束事件\n emit('dragEnd');\n};\n\n/**\n * 处理触摸开始事件\n * 说明:移动端触摸开始,逻辑与鼠标按下类似\n */\nconst handleTouchStart = (e) => {\n const touch = e.touches[0];\n isDragging.value = true;\n wasPausedBeforeDrag.value = isPaused.value;\n isPaused.value = true;\n \n dragStartPos.value = props.direction === 'vertical' ? touch.clientY : touch.clientX;\n dragCurrentPos.value = dragStartPos.value;\n dragOffset.value = currentPosition.value;\n \n emit('dragStart');\n};\n\n/**\n * 处理触摸移动事件\n * 说明:移动端触摸移动,逻辑与鼠标移动类似\n */\nconst handleTouchMove = (e) => {\n if (!isDragging.value) return;\n \n // 阻止默认行为,避免页面滚动\n e.preventDefault();\n \n const touch = e.touches[0];\n dragCurrentPos.value = props.direction === 'vertical' ? touch.clientY : touch.clientX;\n const delta = dragCurrentPos.value - dragStartPos.value;\n \n currentPosition.value = dragOffset.value + delta;\n \n const container = containerRef.value;\n const content = contentRef.value;\n \n // 边界检查\n if (container && content) {\n const containerSize = props.direction === 'vertical' \n ? container.offsetHeight \n : container.offsetWidth;\n \n const itemSize = props.direction === 'vertical' \n ? props.itemHeight \n : props.itemWidth;\n \n const totalSize = itemSize * props.data.length;\n \n // 循环模式的边界处理\n if (props.loop) {\n if (currentPosition.value > 0) {\n currentPosition.value = 0;\n } else if (Math.abs(currentPosition.value) > totalSize) {\n currentPosition.value = -totalSize;\n }\n } else {\n // 非循环模式的边界处理\n const maxPosition = -(totalSize - containerSize);\n if (currentPosition.value > 0) {\n currentPosition.value = 0;\n } else if (currentPosition.value < maxPosition) {\n currentPosition.value = maxPosition;\n }\n }\n }\n \n // 触发滚动事件\n emit('scroll', currentPosition.value);\n};\n\n/**\n * 处理触摸结束事件\n * 说明:移动端触摸结束,逻辑与鼠标释放类似\n */\nconst handleTouchEnd = () => {\n if (!isDragging.value) return;\n \n // 标记为非拖拽状态\n isDragging.value = false;\n \n // 如果拖拽前不是暂停状态,恢复滚动\n if (!wasPausedBeforeDrag.value) {\n isPaused.value = false;\n }\n \n // 触发拖拽结束事件\n emit('dragEnd');\n};\n\n/**\n * 滚动到指定位置\n */\nconst scrollTo = (position) => {\n currentPosition.value = position;\n};\n\n/**\n * 滚动到顶部\n */\nconst scrollToTop = () => {\n currentPosition.value = 0;\n};\n\n/**\n * 滚动到底部\n */\nconst scrollToBottom = () => {\n const container = containerRef.value;\n if (container) {\n const content = contentRef.value;\n if (content) {\n // 计算总高度和底部位置\n const totalSize = props.direction === 'vertical' \n ? content.offsetHeight \n : content.offsetWidth;\n currentPosition.value = -(totalSize - container.offsetHeight);\n }\n }\n};\n\n// 监听数据变化\nwatch(() => props.data, () => {\n // 数据变化时,更新显示列表并重置位置\n updateDisplayList();\n currentPosition.value = 0;\n}, { deep: true });\n\n// 监听速度变化\nwatch(() => props.speed, () => {\n // 速度变化时,重启动画以应用新速度\n if (!isPaused.value) {\n stopAnimation();\n startAnimation();\n }\n});\n\n// 组件挂载时\nonMounted(() => {\n // 更新显示列表\n updateDisplayList();\n \n // 等待DOM更新后启动动画\n nextTick(() => {\n startAnimation();\n \n // 添加鼠标悬停事件监听\n const container = containerRef.value;\n if (container) {\n container.addEventListener('mouseenter', handleMouseEnter);\n container.addEventListener('mouseleave', handleMouseLeave);\n }\n });\n});\n\n// 组件卸载时\nonUnmounted(() => {\n // 停止动画,释放资源\n stopAnimation();\n \n // 移除事件监听\n const container = containerRef.value;\n if (container) {\n container.removeEventListener('mouseenter', handleMouseEnter);\n container.removeEventListener('mouseleave', handleMouseLeave);\n }\n \n // 移除全局鼠标事件监听\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n});\n\n// 暴露方法给父组件\n// 说明:通过defineExpose暴露组件内部方法,方便父组件控制\n// 这样设计的好处是:父组件可以通过ref直接调用这些方法,实现更灵活的控制\n// 例如:暂停/恢复滚动、滚动到指定位置等\n// 同时暴露isPaused和isDragging状态,方便父组件了解当前滚动状态\n// 这种设计符合Vue 3的组合式API风格,提供了清晰的组件通信方式\ndefineExpose({\n pause, // 暂停滚动\n resume, // 恢复滚动\n scrollTo, // 滚动到指定位置\n scrollToTop, // 滚动到顶部\n scrollToBottom,// 滚动到底部\n isPaused, // 是否暂停(响应式)\n isDragging // 是否正在拖拽(响应式)\n});\n</script>\n\n<style scoped>\n.hbis-auto-scroll-list {\n position: relative;\n overflow: hidden;\n user-select: none;\n \n width: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: none;\n}\n\n.scroll-content {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n\n will-change: transform;\n cursor: grab;\n}\n\n.scroll-content:active {\n cursor: grabbing;\n}\n\n.default-item {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 10px;\n width: 100%;\n box-sizing: border-box;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* 响应式设计 - 适配手机 */\n@media (max-width: 768px) {\n .hbis-auto-scroll-list {\n touch-action: pan-y;\n }\n\n .scroll-content {\n width: 100%;\n cursor: none;\n }\n\n .scroll-content:active {\n cursor: none;\n }\n\n .default-item {\n padding: 0 8px;\n font-size: 14px;\n }\n}\n\n/* 适配小屏幕手机 */\n@media (max-width: 480px) {\n .default-item {\n padding: 0 6px;\n font-size: 13px;\n }\n}\n</style>\n","<template>\n <div \n v-if=\"visible\" \n class=\"hbis-loading-container\" \n :class=\"{ 'touch-dismissible': touchDismiss }\"\n @click=\"handleContainerClick\"\n >\n <div class=\"hbis-loading-wrapper\" @click.stop>\n <!-- 自定义加载动画插槽 -->\n <slot name=\"spinner\">\n <div class=\"hbis-loading-spinner\" :class=\"spinnerType\">\n <div v-if=\"spinnerType === 'circular'\" class=\"circular-spinner\">\n <div class=\"circle\"></div>\n </div>\n <div v-else-if=\"spinnerType === 'dots'\" class=\"dots-spinner\">\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n </div>\n <div v-else-if=\"spinnerType === 'bars'\" class=\"bars-spinner\">\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n </div>\n </div>\n </slot>\n \n <!-- 加载文字 -->\n <div v-if=\"text\" class=\"hbis-loading-text\" :style=\"textStyle\">\n {{ text }}\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onUnmounted, watch } from 'vue';\n\nconst props = defineProps({\n // 控制加载组件是否显示\n visible: {\n type: Boolean,\n default: false\n },\n // 是否允许触摸屏幕关闭加载\n touchDismiss: {\n type: Boolean,\n default: false\n },\n // 加载文字\n text: {\n type: String,\n default: ''\n },\n // 加载动画类型:circular, dots, bars\n spinnerType: {\n type: String,\n default: 'circular'\n },\n // 自定义文字样式\n textStyle: {\n type: Object,\n default: () => ({})\n },\n // 自定义容器样式\n containerStyle: {\n type: Object,\n default: () => ({})\n }\n});\n\nconst emit = defineEmits(['update:visible', 'close']);\n\n// 处理容器点击事件\nconst handleContainerClick = () => {\n if (props.touchDismiss) {\n emit('update:visible', false);\n emit('close');\n }\n};\n\n// 监听visible变化,确保组件正确显示/隐藏\nwatch(() => props.visible, (newVal) => {\n if (newVal) {\n // 显示时的处理\n document.body.style.overflow = 'hidden';\n } else {\n // 隐藏时的处理\n document.body.style.overflow = '';\n }\n});\n\n// 组件卸载时清理\nonUnmounted(() => {\n document.body.style.overflow = '';\n});\n\n// 暴露组件方法\ndefineExpose({\n show: () => emit('update:visible', true),\n hide: () => {\n emit('update:visible', false);\n emit('close');\n }\n});\n</script>\n\n<style scoped>\n.hbis-loading-container {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 9999;\n transition: opacity 0.3s ease;\n}\n\n.hbis-loading-container.touch-dismissible {\n cursor: pointer;\n}\n\n.hbis-loading-wrapper {\n background-color: rgba(0, 0, 0, 0.8);\n border-radius: 8px;\n padding: 24px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-width: 120px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);\n}\n\n/* 加载动画样式 */\n.hbis-loading-spinner {\n margin-bottom: 16px;\n}\n\n/* 圆形加载动画 */\n.circular-spinner {\n position: relative;\n width: 40px;\n height: 40px;\n}\n\n.circular-spinner .circle {\n position: absolute;\n width: 100%;\n height: 100%;\n border: 3px solid rgba(255, 255, 255, 0.3);\n border-top-color: #ffffff;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n/* 点状加载动画 */\n.dots-spinner {\n display: flex;\n gap: 8px;\n}\n\n.dots-spinner .dot {\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background-color: #ffffff;\n animation: pulse 1.4s ease-in-out infinite both;\n}\n\n.dots-spinner .dot:nth-child(1) {\n animation-delay: -0.32s;\n}\n\n.dots-spinner .dot:nth-child(2) {\n animation-delay: -0.16s;\n}\n\n@keyframes pulse {\n 0%, 80%, 100% {\n transform: scale(0);\n }\n 40% {\n transform: scale(1);\n }\n}\n\n/* 条状加载动画 */\n.bars-spinner {\n display: flex;\n gap: 4px;\n}\n\n.bars-spinner .bar {\n width: 8px;\n height: 32px;\n background-color: #ffffff;\n border-radius: 4px;\n animation: stretch 1.2s ease-in-out infinite;\n}\n\n.bars-spinner .bar:nth-child(1) {\n animation-delay: -1.2s;\n}\n\n.bars-spinner .bar:nth-child(2) {\n animation-delay: -1.1s;\n}\n\n.bars-spinner .bar:nth-child(3) {\n animation-delay: -1.0s;\n}\n\n@keyframes stretch {\n 0%, 40%, 100% {\n transform: scaleY(0.4);\n }\n 20% {\n transform: scaleY(1);\n }\n}\n\n/* 加载文字样式 */\n.hbis-loading-text {\n color: #ffffff;\n font-size: 14px;\n line-height: 1.4;\n text-align: center;\n min-height: 20px;\n}\n\n/* 响应式设计 */\n@media (max-width: 768px) {\n .hbis-loading-wrapper {\n padding: 20px;\n min-width: 100px;\n }\n \n .circular-spinner {\n width: 32px;\n height: 32px;\n }\n \n .circular-spinner .circle {\n border-width: 2px;\n }\n \n .dots-spinner .dot {\n width: 10px;\n height: 10px;\n }\n \n .bars-spinner .bar {\n width: 6px;\n height: 24px;\n }\n \n .hbis-loading-text {\n font-size: 12px;\n }\n}\n\n@media (max-width: 480px) {\n .hbis-loading-wrapper {\n padding: 16px;\n min-width: 80px;\n }\n \n .hbis-loading-spinner {\n margin-bottom: 12px;\n }\n \n .circular-spinner {\n width: 24px;\n height: 24px;\n }\n \n .dots-spinner .dot {\n width: 8px;\n height: 8px;\n }\n \n .bars-spinner .bar {\n width: 4px;\n height: 16px;\n }\n \n .hbis-loading-text {\n font-size: 11px;\n }\n}\n</style>","<template>\n\t<div class=\"parent-view\">\n\t\t<div class=\"input_view_sms_code\" :style=\"{'background':inputColor}\">\n\t\t\t<input type=\"text\" class='view_sms_code' placeholder-style=\"color:#999\" placeholder=\"请输入验证码\"\n\t\t\t\tv-model=\"smsCode\" :style=\"{'color':inputTextColor}\" />\n\t\t\t<div class=\"sms_code_btn\" :style=\"{'color':smsCodeBtnTextColor,'background':smsCodeBtnColor}\"\n\t\t\t\t@click=\"sendMessage\" v-if=\"!isSendSMS\" :class=\"{'disabled': !isSendSMS}\">{{num}} {{smsCodeTimeText}}</div>\n\t\t\t<div class=\"sms_code_btn\" :style=\"{'color':smsCodeBtnTextColor,'background':smsCodeBtnColor}\"\n\t\t\t\t@click=\"sendMessage\" v-if=\"isSendSMS\">{{smsCodeBtnText}}</div>\n\t\t</div>\n\t</div>\n</template>\n\n<style scoped>\n.parent-view {\n\twidth: 100%;\n}\n\n.input_view_sms_code {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tjustify-content: space-between;\n\tcolor: #000;\n\tmargin-top: 20px;\n\tbackground-color: #F1F7FA;\n\twidth: 100%;\n\tborder-radius: 8px;\n\theight: 48px;\n\tpadding: 0 1px;\n\tbox-sizing: border-box;\n\tborder: 1px solid #e4e7ed;\n\ttransition: border-color 0.3s, box-shadow 0.3s;\n}\n\n.input_view_sms_code:focus-within {\n\tborder-color: #409eff;\n\tbox-shadow: 0 0 0 2px rgba(64, 158, 255, 0.2);\n}\n\n.view_sms_code {\n\tflex: 1;\n\tcolor: #333;\n\tbackground: transparent;\n\tborder: none;\n\toutline: none;\n\tfont-size: 14px;\n\tline-height: 1.5;\n\tpadding: 0 8px;\n}\n\n.view_sms_code::placeholder {\n\tcolor: #999;\n}\n\n.sms_code_btn {\n\tpadding: 8px 8px;\n\tborder: none;\n\tborder-radius: 4px;\n\tfont-size: 12px;\n\tfont-weight: 500;\n\tcursor: pointer;\n\ttransition: all 0.3s;\n\tmin-width: 100px;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\toutline: none;\n}\n\n.sms_code_btn:hover {\n\topacity: 0.9;\n\ttransform: translateY(-1px);\n\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.sms_code_btn:active {\n\ttransform: translateY(0);\n}\n\n.sms_code_btn.disabled {\n\topacity: 0.6;\n\tcursor: not-allowed;\n}\n\n.sms_code_btn.disabled:hover {\n\topacity: 0.6;\n\ttransform: none;\n\tbox-shadow: none;\n}\n</style>\n\n<script setup>\nimport { ref, onMounted } from 'vue';\n\n// 定义组件属性\nconst props = defineProps({\n\t/* 倒计时时间\n\t */\n\tcountDownTime: {\n\t\ttype: Number,\n\t\tdefault: 60\n\t},\n\t/* 输入框提示输入文本\n\t */\n\tinputPlacheHolder: {\n\t\ttype: String,\n\t\tdefault: '请输入验证码'\n\t},\n\t/* 输入框背景色\n\t */\n\tinputColor: {\n\t\ttype: String,\n\t\tdefault: \"#F1F7FA\",\n\t},\n\t/* 输入框输入文本颜色\n\t */\n\tinputTextColor: {\n\t\ttype: String,\n\t\tdefault: \"#000\",\n\t},\n\t/* 输入框提示文本颜色\n\t */\n\tinputPlacheHolderColor: {\n\t\ttype: String,\n\t\tdefault: \"#F00\",\n\t},\n\t/* 倒计时后拼接字符\n\t */\n\tsmsCodeTimeText: {\n\t\ttype: String,\n\t\tdefault: 's'\n\t},\n\t/* 发送验证码按钮文本\n\t */\n\tsmsCodeBtnText: {\n\t\ttype: String,\n\t\tdefault: '发送'\n\t},\n\t/* 发送验证码按钮颜色\n\t */\n\tsmsCodeBtnColor: {\n\t\ttype: String,\n\t\tdefault: \"#FFF\",\n\t},\n\t/* 发送验证码按钮文本颜色\n\t */\n\tsmsCodeBtnTextColor: {\n\t\ttype: String,\n\t\tdefault: \"#2E6DFF\"\n\t},\n});\n\n// 定义事件\nconst emit = defineEmits(['custom-event']);\n\n// 响应式数据\nconst isSendSMS = ref(true);\nconst smsCode = ref(\"\");\nconst num = ref(props.countDownTime);\n\n// 发送验证码方法\nconst sendMessage = () => {\n\tconsole.log('验证码isSendSMS:' + isSendSMS.value)\n\tif (!isSendSMS.value) {\n\t\t// 这里可以替换为Vue 3的提示组件或自定义提示\n\t\tconsole.log('请' + props.countDownTime + '秒后再重试。');\n\t\treturn;\n\t}\n\temit('custom-event'); // 触发事件\n\t// countDown(); // 开始倒计时\n};\n\n// 倒计时方法\nconst countDown = () => {\n\tnum.value = props.countDownTime;\n\tlet time = setInterval(() => {\n\t\tisSendSMS.value = false;\n\t\tnum.value--;\n\t\tif (num.value === 0) {\n\t\t\tisSendSMS.value = true;\n\t\t\tclearInterval(time);\n\t\t}\n\t}, 1000);\n};\n\n// 暴露方法给父组件\ndefineExpose({\n\tcountDown,\n\tsmsCode\n});\n</script>\n\n\n<style lang=\"scss\">\n\tpage {\n\t\twidth: 100%;\n\t}\n\n\t.parent-view {\n\t\twidth: 100%;\n\t}\n\n\t.input_view_sms_code {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\talign-self: center;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tcolor: #000;\n\t\tmargin-top: 20px;\n\t\tbackground-color: #F1F7FA;\n\t\twidth: 100%;\n\t\tborder-radius: 20px;\n\t\theight: 80px;\n\n\t\t.view_sms_code {\n\t\t\talign-self: center;\n\t\t\tcolor: #000;\n\t\t\twidth: 70%;\n\t\t\tborder-radius: 20px;\n\t\t\theight: 80px;\n\t\t\tpadding-left: 10px;\n\t\t}\n\n\t\t.sms_code_btn {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\tbackground-color: #2E6DFF;\n\t\t\tborder-radius: 8px;\n\t\t\twidth: 20%;\n\t\t\talign-self: center;\n\t\t\tmargin-right: 2px;\n\t\t\ttext-align: center;\n\t\t\theight: 40px;\n\t\t\tfont-size: 14px;\n\t\t\tcolor: #fff;\n\t\t}\n\n\t\t.input_view_password_code {\n\t\t\talign-self: center;\n\t\t\tcolor: #000;\n\t\t\tbackground-color: #F1F7FA;\n\t\t\twidth: 80%;\n\t\t\tborder-radius: 20px;\n\t\t\theight: 80px;\n\t\t\tpadding-left: 10px;\n\t\t}\n\n\t\t.eye_img_btn {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\tbackground-color: #0000;\n\t\t\tborder-radius: 10px;\n\t\t\twidth: 28%;\n\t\t\talign-self: center;\n\t\t\tmargin-right: 10px;\n\t\t\ttext-align: center;\n\t\t\theight: 60px;\n\t\t\tfont-size: 26px;\n\t\t\tcolor: #2E6DFF;\n\n\t\t\t.eye_img {\n\t\t\t\twidth: 50px;\n\t\t\t}\n\t\t}\n\t}\n</style>","<template>\n <div ref=\"waterfallRef\">\n <div class=\"waterfall-debug\">\n 列数: {{ columnCount }}\n <br/>\n 数据总量: {{ data.length }}\n <br/>\n <template v-for=\"(column, index) in columns\" :key=\"index\">\n 列{{ index + 1 }}数据量: {{ column.items.length }}<br/>\n </template>\n </div>\n <div class=\"waterfall-container\">\n <!-- 动态生成列 -->\n <div \n v-for=\"(column, index) in columns\" \n :key=\"index\"\n class=\"waterfall-column\"\n >\n <div class=\"column-debug\">\n 列{{ index + 1 }}: {{ column.items.length }}个元素\n </div>\n <div \n v-for=\"(item, itemIndex) in column.items\" \n :key=\"item[itemKey] || `col${index}-${itemIndex}`\"\n class=\"waterfall-item\"\n >\n <template v-if=\"defaultSlot\">\n <div class=\"waterfall-item-with-slot\">\n <!-- 图片由组件控制 -->\n <img \n :src=\"item[imageKey]\" \n class=\"waterfall-image\"\n :style=\"{ height: calculateItemHeight(item) + 'px' }\"\n @load=\"handleImageLoad\"\n @error=\"handleImageError\"\n />\n <!-- 内容由父组件通过插槽控制 -->\n <div class=\"waterfall-content\">\n <slot :item=\"item\" :index=\"itemIndex\" />\n </div>\n </div>\n </template>\n <template v-else>\n <img \n :src=\"item[imageKey]\" \n class=\"waterfall-image\"\n :style=\"{ height: calculateItemHeight(item) + 'px' }\"\n @load=\"handleImageLoad\"\n @error=\"handleImageError\"\n />\n </template>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, watch, onMounted, useSlots, watchEffect, useCssVars } from 'vue';\n\n// 组件引用\nconst slots = useSlots();\nconst waterfallRef = ref(null);\n\n// 组件名定义\ndefineOptions({\n name: 'HbisWaterfall'\n});\n\n// 属性定义\nconst props = defineProps({\n /**\n * 瀑布流数据\n */\n data: {\n type: Array,\n default: () => []\n },\n /**\n * 列数\n */\n column: {\n type: Number,\n default: 2,\n validator: (value) => value >= 2\n },\n /**\n * 最大列数\n */\n maxColumn: {\n type: Number,\n default: 5\n },\n /**\n * 列间距\n */\n columnGap: {\n type: [Number, String],\n default: 10\n },\n /**\n * 行间距\n */\n rowGap: {\n type: [Number, String],\n default: 10\n },\n /**\n * 数据唯一键\n */\n itemKey: {\n type: String,\n default: 'id'\n },\n /**\n * 图片字段名\n */\n imageKey: {\n type: String,\n default: 'url'\n }\n});\n\n// 事件定义\nconst emit = defineEmits(['load', 'error']);\n\n// 注入CSS变量\nuseCssVars(() => ({\n columnGap: String(props.columnGap) + 'px',\n rowGap: String(props.rowGap) + 'px'\n}));\n\n// 响应式数据\nconst columns = ref([]);\nconst columnCount = ref(2);\n\n// 计算属性\nconst defaultSlot = computed(() => {\n return slots.default !== undefined;\n});\n\n// 方法\n/**\n * 计算项目高度\n * @param {Object} item - 项目数据\n * @returns {number} - 项目高度\n */\nconst calculateItemHeight = (item) => {\n // 计算组件宽度\n let componentWidth = 1200; // 默认组件宽度1200px\n \n // 尝试获取组件的实际宽度\n if (waterfallRef.value) {\n componentWidth = waterfallRef.value.offsetWidth || 1200;\n }\n \n // 计算列数\n const actualColumn = Math.min(props.column, props.maxColumn);\n \n // 计算间隔\n const columnGap = parseInt(props.columnGap) || 10; // 默认列间距10px\n const rowGap = parseInt(props.rowGap) || 10; // 默认行间距10px\n \n // 计算每个项目的宽度\n const itemWidth = (componentWidth - (actualColumn - 1) * columnGap) / actualColumn;\n \n \n // 否则,使用默认宽高比计算高度\n return 200 + Math.floor(Math.random() * 100) + 20; // 默认宽高比 4:3 + 随机数(10到30)\n};\n\n/**\n * 刷新数据,分配到多列\n */\nconst refresh = () => {\n console.log('开始分配数据,总数据量:', props.data.length);\n \n // 计算实际列数\n const actualColumn = Math.min(props.column, props.maxColumn);\n columnCount.value = actualColumn;\n \n // 初始化列数组\n const newColumns = [];\n for (let i = 0; i < actualColumn; i++) {\n newColumns.push({\n items: [],\n height: 0\n });\n }\n columns.value = newColumns;\n \n // 分配数据,根据每列的高度来分配\n props.data.forEach((item, index) => {\n // 计算项目高度\n const itemHeight = calculateItemHeight(item);\n \n // 找到高度最小的列\n let minHeight = Infinity;\n let minColumnIndex = 0;\n for (let i = 0; i < actualColumn; i++) {\n if (columns.value[i].height < minHeight) {\n minHeight = columns.value[i].height;\n minColumnIndex = i;\n }\n }\n \n // 将数据分配到高度较小的列中\n columns.value[minColumnIndex].items.push(item);\n columns.value[minColumnIndex].height += itemHeight;\n console.log('分配数据到列:', { itemIndex: index, columnIndex: minColumnIndex, itemHeight, columnHeight: columns.value[minColumnIndex].height });\n });\n \n // 打印分配结果\n console.log('分配完成,各列数据量:', columns.value.map((col, idx) => `列${idx+1}: ${col.items.length}个`));\n console.log('分配完成,各列高度:', columns.value.map((col, idx) => `列${idx+1}: ${col.height}px`));\n};\n\n/**\n * 处理图片加载\n */\nconst handleImageLoad = (event) => {\n emit('load', event);\n};\n\n/**\n * 处理图片错误\n */\nconst handleImageError = (event) => {\n emit('error', event);\n};\n\n// 监听数据变化\nwatch(() => props.data, () => {\n console.log('数据变化,重新分配数据');\n refresh();\n}, { deep: true });\n\n// 监听列数变化\nwatch(() => [props.column, props.maxColumn], () => {\n console.log('列数变化,更新列数');\n columnCount.value = Math.min(props.column, props.maxColumn);\n refresh();\n});\n\n// 监听间距变化\nwatch(() => [props.columnGap, props.rowGap], () => {\n console.log('间距变化,重新计算高度和分配数据');\n refresh();\n});\n\n\n// 组件挂载\nonMounted(() => {\n console.log('===== 组件挂载 =====');\n console.log('组件挂载,初始化数据');\n console.log('初始数据量:', props.data.length);\n try {\n refresh();\n console.log('===== 组件挂载完成 =====');\n } catch (error) {\n console.error('refresh函数执行失败:', error);\n console.log('===== 组件挂载失败 =====');\n }\n});\n\n// 暴露方法\ndefineExpose({\n refresh\n});\n</script>\n\n<style scoped>\n.waterfall-debug {\n background-color: #f0f0f0;\n padding: 10px;\n margin-bottom: 10px;\n border-radius: 4px;\n}\n\n.waterfall-container {\n display: flex;\n gap: var(--columnGap);\n width: 100%;\n}\n\n.waterfall-column {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: var(--rowGap);\n}\n\n.column-debug {\n background-color: #e0e0e0;\n padding: 5px;\n border-radius: 4px;\n font-size: 12px;\n}\n\n.waterfall-item {\n width: 100%;\n}\n\n.waterfall-image {\n width: 100%;\n height: auto;\n display: block;\n}\n\n.waterfall-item-with-slot {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.waterfall-content {\n padding: 10px;\n background-color: white;\n border-radius: 0 0 4px 4px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n</style>","/*!\n * svga.lite\n * \n * Version: 1.6.1\n * Document: https://github.com/svga/SVGAPlayer-Web-Lite\n * (c) 2019 YY.SVGA\n * Released under the MIT License.\n */\n!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.SVGA=t():e.SVGA=t()}(window,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=1)}([function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e,t,r){this._d=e,this._transform=t,this._styles=r};t.default=n},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(2),o=r(3),i=r(4),s={Downloader:n.default,Parser:o.default,Player:i.default};t.default=s},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){this.request=null}return e.prototype.get=function(e){var t=this;if(!e)throw new Error(\"download link undefined\");return new Promise(function(r,n){var o=new XMLHttpRequest;o.open(\"GET\",e,!0),o.responseType=\"arraybuffer\",o.onloadend=function(){!o.response||200!==o.status&&304!==o.status?n(o):r(o.response)},o.onerror=function(){return n(o.response)},o.send(),t.request=o})},e.prototype.cancel=function(){this.request&&this.request.abort()},e.prototype.destroy=function(){this.request&&this.request.abort()},e}();t.default=n},function(module,exports,__webpack_require__){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var WORKER=\"!function(t){var e={};function r(i){if(e[i])return e[i].exports;var s=e[i]={i:i,l:!1,exports:{}};return t[i].call(s.exports,s,s.exports,r),s.l=!0,s.exports}r.m=t,r.c=e,r.d=function(t,e,i){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},r.r=function(t){\\\"undefined\\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\\\"Module\\\"}),Object.defineProperty(t,\\\"__esModule\\\",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&\\\"object\\\"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,\\\"default\\\",{enumerable:!0,value:t}),2&e&&\\\"string\\\"!=typeof t)for(var s in t)r.d(i,s,function(e){return t[e]}.bind(null,s));return i},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,\\\"a\\\",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p=\\\"\\\",r(r.s=8)}([function(t,e,r){\\\"use strict\\\";var i=t.exports=r(6);i.codegen=r(16),i.toArray=function(t){if(t){for(var e=Object.keys(t),r=new Array(e.length),i=0;i<e.length;)r[i]=t[e[i++]];return r}return[]};var s=/\\\\\\\\/g,n=/\\\"/g;i.isReserved=function(t){return/^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(t)},i.safeProp=function(t){return!/^[$\\\\w_]+$/.test(t)||i.isReserved(t)?'[\\\"'+t.replace(s,\\\"\\\\\\\\\\\\\\\\\\\").replace(n,'\\\\\\\\\\\"')+'\\\"]':\\\".\\\"+t}},function(t,e,r){\\\"use strict\\\";t.exports=h;var i=r(2);((h.prototype=Object.create(i.prototype)).constructor=h).className=\\\"Field\\\";var s,n=r(3),o=r(5),a=r(0),f=/^required|optional|repeated$/;function h(t,e,r,s,n,h,l){if(a.isObject(s)?(l=n,h=s,s=n=void 0):a.isObject(n)&&(l=h,h=n,n=void 0),i.call(this,t,h),!a.isInteger(e)||e<0)throw TypeError(\\\"id must be a non-negative integer\\\");if(!a.isString(r))throw TypeError(\\\"type must be a string\\\");if(void 0!==s&&!f.test(s=s.toString().toLowerCase()))throw TypeError(\\\"rule must be a string rule\\\");if(void 0!==n&&!a.isString(n))throw TypeError(\\\"extend must be a string\\\");this.rule=s&&\\\"optional\\\"!==s?s:void 0,this.type=r,this.id=e,this.extend=n||void 0,this.required=\\\"required\\\"===s,this.optional=!this.required,this.repeated=\\\"repeated\\\"===s,this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=!!a.Long&&void 0!==o.long[r],this.bytes=\\\"bytes\\\"===r,this.resolvedType=null,this.extensionField=null,this.declaringField=null,this._packed=null,this.comment=l}h.fromJSON=function(t,e){return new h(t,e.id,e.type,e.rule,e.extend,e.options,e.comment)},h.prototype.setOption=function(t,e,r){return\\\"packed\\\"===t&&(this._packed=null),i.prototype.setOption.call(this,t,e,r)},h.prototype.resolve=function(){if(this.resolved)return this;if(void 0===(this.typeDefault=o.defaults[this.type])&&(this.resolvedType=(this.declaringField?this.declaringField.parent:this.parent).lookupTypeOrEnum(this.type),this.resolvedType instanceof s?this.typeDefault=null:this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]),this.options&&null!=this.options.default&&(this.typeDefault=this.options.default,this.resolvedType instanceof n&&\\\"string\\\"==typeof this.typeDefault&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&(!0!==this.options.packed&&(void 0===this.options.packed||!this.resolvedType||this.resolvedType instanceof n)||delete this.options.packed,Object.keys(this.options).length||(this.options=void 0)),this.long)this.typeDefault=a.Long.fromNumber(this.typeDefault,\\\"u\\\"===this.type.charAt(0)),Object.freeze&&Object.freeze(this.typeDefault);else if(this.bytes&&\\\"string\\\"==typeof this.typeDefault){var t;a.base64.test(this.typeDefault)?a.base64.decode(this.typeDefault,t=a.newBuffer(a.base64.length(this.typeDefault)),0):a.utf8.write(this.typeDefault,t=a.newBuffer(a.utf8.length(this.typeDefault)),0),this.typeDefault=t}return this.map?this.defaultValue=a.emptyObject:this.repeated?this.defaultValue=a.emptyArray:this.defaultValue=this.typeDefault,this.parent instanceof s&&(this.parent.ctor.prototype[this.name]=this.defaultValue),i.prototype.resolve.call(this)},h._configure=function(t){s=t}},function(t,e,r){\\\"use strict\\\";var i;function s(t,e){this.options=e,this.name=t,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}t.exports=s,s.className=\\\"ReflectionObject\\\",s.prototype.onAdd=function(t){this.parent&&this.parent!==t&&this.parent.remove(this),this.parent=t,this.resolved=!1;var e=t.root;e instanceof i&&e._handleAdd(this)},s.prototype.resolve=function(){return this.resolved?this:(this.root instanceof i&&(this.resolved=!0),this)},s.prototype.getOption=function(t){if(this.options)return this.options[t]},s._configure=function(t){i=t}},function(t,e,r){\\\"use strict\\\";t.exports=s;var i=r(2);function s(t,e,r,s,n){if(i.call(this,t,r),e&&\\\"object\\\"!=typeof e)throw TypeError(\\\"values must be an object\\\");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=s,this.comments=n||{},this.reserved=void 0,e)for(var o=Object.keys(e),a=0;a<o.length;++a)\\\"number\\\"==typeof e[o[a]]&&(this.valuesById[this.values[o[a]]=e[o[a]]]=o[a])}((s.prototype=Object.create(i.prototype)).constructor=s).className=\\\"Enum\\\",s.fromJSON=function(t,e){var r=new s(t,e.values,e.options,e.comment,e.comments);return r.reserved=e.reserved,r}},function(t,e,r){\\\"use strict\\\";t.exports=h;var i=r(2);((h.prototype=Object.create(i.prototype)).constructor=h).className=\\\"Namespace\\\";var s,n,o,a=r(1),f=r(0);function h(t,e){i.call(this,t,e),this.nested=void 0,this._nestedArray=null}h.fromJSON=function(t,e){return new h(t,e.options).addJSON(e.nested)},h.isReservedId=function(t,e){if(t)for(var r=0;r<t.length;++r)if(\\\"string\\\"!=typeof t[r]&&t[r][0]<=e&&t[r][1]>=e)return!0;return!1},h.isReservedName=function(t,e){if(t)for(var r=0;r<t.length;++r)if(t[r]===e)return!0;return!1},Object.defineProperty(h.prototype,\\\"nestedArray\\\",{get:function(){return this._nestedArray||(this._nestedArray=f.toArray(this.nested))}}),h.prototype.addJSON=function(t){if(t)for(var e,r=Object.keys(t),i=0;i<r.length;++i)e=t[r[i]],this.add((void 0!==e.fields?s.fromJSON:void 0!==e.values?o.fromJSON:void 0!==e.methods?n.fromJSON:void 0!==e.id?a.fromJSON:h.fromJSON)(r[i],e));return this},h.prototype.get=function(t){return this.nested&&this.nested[t]||null},h.prototype.add=function(t){if(!(t instanceof a&&void 0!==t.extend||t instanceof s||t instanceof o||t instanceof n||t instanceof h))throw TypeError(\\\"object must be a valid nested object\\\");if(this.nested){var e=this.get(t.name);if(e){if(!(e instanceof h&&t instanceof h)||e instanceof s||e instanceof n)throw Error(\\\"duplicate name '\\\"+t.name+\\\"' in \\\"+this);for(var r=e.nestedArray,i=0;i<r.length;++i)t.add(r[i]);this.remove(e),this.nested||(this.nested={}),t.setOptions(e.options,!0)}}else this.nested={};return this.nested[t.name]=t,t.onAdd(this),(f=this)._nestedArray=null,f;var f},h.prototype.lookup=function(t,e,r){if(\\\"boolean\\\"==typeof e?(r=e,e=void 0):e&&!Array.isArray(e)&&(e=[e]),f.isString(t)&&t.length){if(\\\".\\\"===t)return this.root;t=t.split(\\\".\\\")}else if(!t.length)return this;if(\\\"\\\"===t[0])return this.root.lookup(t.slice(1),e);var i=this.get(t[0]);if(i){if(1===t.length){if(!e||e.indexOf(i.constructor)>-1)return i}else if(i instanceof h&&(i=i.lookup(t.slice(1),e,!0)))return i}else for(var s=0;s<this.nestedArray.length;++s)if(this._nestedArray[s]instanceof h&&(i=this._nestedArray[s].lookup(t,e,!0)))return i;return null===this.parent||r?null:this.parent.lookup(t,e)},h.prototype.lookupType=function(t){var e=this.lookup(t,[s]);if(!e)throw Error(\\\"no such type: \\\"+t);return e},h.prototype.lookupTypeOrEnum=function(t){var e=this.lookup(t,[s,o]);if(!e)throw Error(\\\"no such Type or Enum '\\\"+t+\\\"' in \\\"+this);return e},h._configure=function(t,e,r){s=t,n=e,o=r}},function(t,e,r){\\\"use strict\\\";var i=e,s=r(0),n=[\\\"double\\\",\\\"float\\\",\\\"int32\\\",\\\"uint32\\\",\\\"sint32\\\",\\\"fixed32\\\",\\\"sfixed32\\\",\\\"int64\\\",\\\"uint64\\\",\\\"sint64\\\",\\\"fixed64\\\",\\\"sfixed64\\\",\\\"bool\\\",\\\"string\\\",\\\"bytes\\\"];function o(t,e){var r=0,i={};for(e|=0;r<t.length;)i[n[r+e]]=t[r++];return i}i.basic=o([1,5,0,0,0,5,5,0,0,0,1,1,0,2,2]),i.defaults=o([0,0,0,0,0,0,0,0,0,0,0,0,!1,\\\"\\\",s.emptyArray,null]),i.long=o([0,0,0,1,1],7),i.mapKey=o([0,0,0,5,5,0,0,0,1,1,0,2],2),i.packed=o([1,5,0,0,0,5,5,0,0,0,1,1,0])},function(t,e,r){\\\"use strict\\\";var i=e;i.float=r(14),i.utf8=r(15),i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(t){return\\\"number\\\"==typeof t&&isFinite(t)&&Math.floor(t)===t},i.isString=function(t){return\\\"string\\\"==typeof t||t instanceof String},i.isObject=function(t){return t&&\\\"object\\\"==typeof t},i.Array=\\\"undefined\\\"!=typeof Uint8Array?Uint8Array:Array,i._configure=function(){var t=i.Buffer;t?(i._Buffer_from=t.from!==Uint8Array.from&&t.from||function(e,r){return new t(e,r)},i._Buffer_allocUnsafe=t.allocUnsafe||function(e){return new t(e)}):i._Buffer_from=i._Buffer_allocUnsafe=null}},function(t,e,r){\\\"use strict\\\";t.exports=s;var i=r(4);function s(t,e){i.call(this,t,e),this.methods={},this._methodsArray=null}((s.prototype=Object.create(i.prototype)).constructor=s).className=\\\"Service\\\"},function(t,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0}),r(9);var i,s=r(10),n=r(23),o=r(24),a=r(25),f=r(26);self.document?((i=self.SVGAParserMockWorker={}).disableWorker=!0,i.postMessage=function(t){i.onmessageCallback&&i.onmessageCallback(t)}):i=self;var h=s.Root.fromJSON(n.default).lookupType(\\\"com.opensource.svga.MovieEntity\\\");i.onmessage=function(t){var e=new o.Zlib.Inflate(new Uint8Array(t.data)).decompress(),r=h.decode(e),s={};for(var n in r.images){var l=r.images[n],u=a.default(l);s[n]=btoa(u)}var p=new f.default(r,s);i.postMessage(p)}},function(t,e,r){\\\"use strict\\\";var i=\\\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\\";!self.btoa&&(self.btoa=function(t){for(var e,r,s,n,o=\\\"\\\",a=0,f=(t=String(t)).length%3;a<t.length;){if((r=t.charCodeAt(a++))>255||(s=t.charCodeAt(a++))>255||(n=t.charCodeAt(a++))>255)throw new TypeError(\\\"Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.\\\");o+=i.charAt((e=r<<16|s<<8|n)>>18&63)+i.charAt(e>>12&63)+i.charAt(e>>6&63)+i.charAt(63&e)}return f?o.slice(0,f-3)+\\\"===\\\".substring(f):o})},function(t,e,r){\\\"use strict\\\";t.exports=r(11)},function(t,e,r){\\\"use strict\\\";(t.exports=r(12)).build=\\\"full\\\"},function(t,e,r){\\\"use strict\\\";var i=t.exports=r(13);i.build=\\\"light\\\",i.ReflectionObject=r(2),i.Namespace=r(4),i.Root=r(17),i.Enum=r(3),i.Type=r(19),i.Field=r(1),i.Service=r(7),i.ReflectionObject._configure(i.Root),i.Namespace._configure(i.Type,i.Service,i.Enum),i.Root._configure(i.Type),i.Field._configure(i.Type)},function(t,e,r){\\\"use strict\\\";e.build=\\\"minimal\\\"},function(t,e,r){\\\"use strict\\\";function i(t){return\\\"undefined\\\"!=typeof Float32Array?function(){var e=new Float32Array([-0]),r=new Uint8Array(e.buffer),i=128===r[3];function s(t,i,s){e[0]=t,i[s]=r[0],i[s+1]=r[1],i[s+2]=r[2],i[s+3]=r[3]}function n(t,i,s){e[0]=t,i[s]=r[3],i[s+1]=r[2],i[s+2]=r[1],i[s+3]=r[0]}function o(t,i){return r[0]=t[i],r[1]=t[i+1],r[2]=t[i+2],r[3]=t[i+3],e[0]}function a(t,i){return r[3]=t[i],r[2]=t[i+1],r[1]=t[i+2],r[0]=t[i+3],e[0]}t.writeFloatLE=i?s:n,t.writeFloatBE=i?n:s,t.readFloatLE=i?o:a,t.readFloatBE=i?a:o}():function(){function e(t,e,r,i){var s=e<0?1:0;if(s&&(e=-e),0===e)t(1/e>0?0:2147483648,r,i);else if(isNaN(e))t(2143289344,r,i);else if(e>34028234663852886e22)t((s<<31|2139095040)>>>0,r,i);else if(e<11754943508222875e-54)t((s<<31|Math.round(e/1401298464324817e-60))>>>0,r,i);else{var n=Math.floor(Math.log(e)/Math.LN2);t((s<<31|n+127<<23|8388607&Math.round(e*Math.pow(2,-n)*8388608))>>>0,r,i)}}function r(t,e,r){var i=t(e,r),s=2*(i>>31)+1,n=i>>>23&255,o=8388607&i;return 255===n?o?NaN:s*(1/0):0===n?1401298464324817e-60*s*o:s*Math.pow(2,n-150)*(o+8388608)}t.writeFloatLE=e.bind(null,s),t.writeFloatBE=e.bind(null,n),t.readFloatLE=r.bind(null,o),t.readFloatBE=r.bind(null,a)}(),\\\"undefined\\\"!=typeof Float64Array?function(){var e=new Float64Array([-0]),r=new Uint8Array(e.buffer),i=128===r[7];function s(t,i,s){e[0]=t,i[s]=r[0],i[s+1]=r[1],i[s+2]=r[2],i[s+3]=r[3],i[s+4]=r[4],i[s+5]=r[5],i[s+6]=r[6],i[s+7]=r[7]}function n(t,i,s){e[0]=t,i[s]=r[7],i[s+1]=r[6],i[s+2]=r[5],i[s+3]=r[4],i[s+4]=r[3],i[s+5]=r[2],i[s+6]=r[1],i[s+7]=r[0]}function o(t,i){return r[0]=t[i],r[1]=t[i+1],r[2]=t[i+2],r[3]=t[i+3],r[4]=t[i+4],r[5]=t[i+5],r[6]=t[i+6],r[7]=t[i+7],e[0]}function a(t,i){return r[7]=t[i],r[6]=t[i+1],r[5]=t[i+2],r[4]=t[i+3],r[3]=t[i+4],r[2]=t[i+5],r[1]=t[i+6],r[0]=t[i+7],e[0]}t.writeDoubleLE=i?s:n,t.writeDoubleBE=i?n:s,t.readDoubleLE=i?o:a,t.readDoubleBE=i?a:o}():function(){function e(t,e,r,i,s,n){var o=i<0?1:0;if(o&&(i=-i),0===i)t(0,s,n+e),t(1/i>0?0:2147483648,s,n+r);else if(isNaN(i))t(0,s,n+e),t(2146959360,s,n+r);else if(i>17976931348623157e292)t(0,s,n+e),t((o<<31|2146435072)>>>0,s,n+r);else{var a;if(i<22250738585072014e-324)t((a=i/5e-324)>>>0,s,n+e),t((o<<31|a/4294967296)>>>0,s,n+r);else{var f=Math.floor(Math.log(i)/Math.LN2);1024===f&&(f=1023),t(4503599627370496*(a=i*Math.pow(2,-f))>>>0,s,n+e),t((o<<31|f+1023<<20|1048576*a&1048575)>>>0,s,n+r)}}}function r(t,e,r,i,s){var n=t(i,s+e),o=t(i,s+r),a=2*(o>>31)+1,f=o>>>20&2047,h=4294967296*(1048575&o)+n;return 2047===f?h?NaN:a*(1/0):0===f?5e-324*a*h:a*Math.pow(2,f-1075)*(h+4503599627370496)}t.writeDoubleLE=e.bind(null,s,0,4),t.writeDoubleBE=e.bind(null,n,4,0),t.readDoubleLE=r.bind(null,o,0,4),t.readDoubleBE=r.bind(null,a,4,0)}(),t}function s(t,e,r){e[r]=255&t,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function n(t,e,r){e[r]=t>>>24,e[r+1]=t>>>16&255,e[r+2]=t>>>8&255,e[r+3]=255&t}function o(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}function a(t,e){return(t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3])>>>0}t.exports=i(i)},function(t,e,r){\\\"use strict\\\";var i=e;i.length=function(t){for(var e=0,r=0,i=0;i<t.length;++i)(r=t.charCodeAt(i))<128?e+=1:r<2048?e+=2:55296==(64512&r)&&56320==(64512&t.charCodeAt(i+1))?(++i,e+=4):e+=3;return e},i.read=function(t,e,r){if(r-e<1)return\\\"\\\";for(var i,s=null,n=[],o=0;e<r;)(i=t[e++])<128?n[o++]=i:i>191&&i<224?n[o++]=(31&i)<<6|63&t[e++]:i>239&&i<365?(i=((7&i)<<18|(63&t[e++])<<12|(63&t[e++])<<6|63&t[e++])-65536,n[o++]=55296+(i>>10),n[o++]=56320+(1023&i)):n[o++]=(15&i)<<12|(63&t[e++])<<6|63&t[e++],o>8191&&((s||(s=[])).push(String.fromCharCode.apply(String,n)),o=0);return s?(o&&s.push(String.fromCharCode.apply(String,n.slice(0,o))),s.join(\\\"\\\")):String.fromCharCode.apply(String,n.slice(0,o))},i.write=function(t,e,r){for(var i,s,n=r,o=0;o<t.length;++o)(i=t.charCodeAt(o))<128?e[r++]=i:i<2048?(e[r++]=i>>6|192,e[r++]=63&i|128):55296==(64512&i)&&56320==(64512&(s=t.charCodeAt(o+1)))?(i=65536+((1023&i)<<10)+(1023&s),++o,e[r++]=i>>18|240,e[r++]=i>>12&63|128,e[r++]=i>>6&63|128,e[r++]=63&i|128):(e[r++]=i>>12|224,e[r++]=i>>6&63|128,e[r++]=63&i|128);return r-n}},function(t,e,r){\\\"use strict\\\";function i(t,e){\\\"string\\\"==typeof t&&(e=t,t=void 0);var r=[];function s(t){if(\\\"string\\\"!=typeof t){var e=n();if(i.verbose&&console.log(\\\"codegen: \\\"+e),e=\\\"return \\\"+e,t){for(var o=Object.keys(t),a=new Array(o.length+1),f=new Array(o.length),h=0;h<o.length;)a[h]=o[h],f[h]=t[o[h++]];return a[h]=e,Function.apply(null,a).apply(null,f)}return Function(e)()}for(var l=new Array(arguments.length-1),u=0;u<l.length;)l[u]=arguments[++u];if(u=0,t=t.replace(/%([%dfijs])/g,function(t,e){var r=l[u++];switch(e){case\\\"d\\\":case\\\"f\\\":return String(Number(r));case\\\"i\\\":return String(Math.floor(r));case\\\"j\\\":return JSON.stringify(r);case\\\"s\\\":return String(r)}return\\\"%\\\"}),u!==l.length)throw Error(\\\"parameter count mismatch\\\");return r.push(t),s}function n(i){return\\\"function \\\"+(i||e||\\\"\\\")+\\\"(\\\"+(t&&t.join(\\\",\\\")||\\\"\\\")+\\\"){\\\\n \\\"+r.join(\\\"\\\\n \\\")+\\\"\\\\n}\\\"}return s.toString=n,s}t.exports=i,i.verbose=!1},function(t,e,r){\\\"use strict\\\";t.exports=f;var i=r(4);((f.prototype=Object.create(i.prototype)).constructor=f).className=\\\"Root\\\";var s,n=r(1),o=r(3),a=r(18);function f(t){i.call(this,\\\"\\\",t),this.deferred=[],this.files=[]}f.fromJSON=function(t,e){return e||(e=new f),t.options&&e.setOptions(t.options),e.addJSON(t.nested)};var h=/^[A-Z]/;function l(t,e){var r=e.parent.lookup(e.extend);if(r){var i=new n(e.fullName,e.id,e.type,e.rule,void 0,e.options);return i.declaringField=e,e.extensionField=i,r.add(i),!0}return!1}f.prototype._handleAdd=function(t){if(t instanceof n)void 0===t.extend||t.extensionField||l(0,t)||this.deferred.push(t);else if(t instanceof o)h.test(t.name)&&(t.parent[t.name]=t.values);else if(!(t instanceof a)){if(t instanceof s)for(var e=0;e<this.deferred.length;)l(0,this.deferred[e])?this.deferred.splice(e,1):++e;for(var r=0;r<t.nestedArray.length;++r)this._handleAdd(t._nestedArray[r]);h.test(t.name)&&(t.parent[t.name]=t)}},f._configure=function(t,e,r){s=t,e,r}},function(t,e,r){\\\"use strict\\\";t.exports=o;var i=r(2);((o.prototype=Object.create(i.prototype)).constructor=o).className=\\\"OneOf\\\";var s=r(1),n=r(0);function o(t,e,r,s){if(Array.isArray(e)||(r=e,e=void 0),i.call(this,t,r),void 0!==e&&!Array.isArray(e))throw TypeError(\\\"fieldNames must be an Array\\\");this.oneof=e||[],this.fieldsArray=[],this.comment=s}function a(t){if(t.parent)for(var e=0;e<t.fieldsArray.length;++e)t.fieldsArray[e].parent||t.parent.add(t.fieldsArray[e])}o.fromJSON=function(t,e){return new o(t,e.oneof,e.options,e.comment)},o.prototype.toJSON=function(t){var e=!!t&&Boolean(t.keepComments);return n.toObject([\\\"options\\\",this.options,\\\"oneof\\\",this.oneof,\\\"comment\\\",e?this.comment:void 0])},o.prototype.add=function(t){if(!(t instanceof s))throw TypeError(\\\"field must be a Field\\\");return t.parent&&t.parent!==this.parent&&t.parent.remove(t),this.oneof.push(t.name),this.fieldsArray.push(t),t.partOf=this,a(this),this},o.prototype.remove=function(t){if(!(t instanceof s))throw TypeError(\\\"field must be a Field\\\");var e=this.fieldsArray.indexOf(t);if(e<0)throw Error(t+\\\" is not a member of \\\"+this);return this.fieldsArray.splice(e,1),(e=this.oneof.indexOf(t.name))>-1&&this.oneof.splice(e,1),t.partOf=null,this},o.prototype.onAdd=function(t){i.prototype.onAdd.call(this,t);for(var e=0;e<this.oneof.length;++e){var r=t.get(this.oneof[e]);r&&!r.partOf&&(r.partOf=this,this.fieldsArray.push(r))}a(this)},o.prototype.onRemove=function(t){for(var e,r=0;r<this.fieldsArray.length;++r)(e=this.fieldsArray[r]).parent&&e.parent.remove(e);i.prototype.onRemove.call(this,t)},o.d=function(){for(var t=new Array(arguments.length),e=0;e<arguments.length;)t[e]=arguments[e++];return function(e,r){n.decorateType(e.constructor).add(new o(r,t)),Object.defineProperty(e,r,{get:n.oneOfGetter(t),set:n.oneOfSetter(t)})}}},function(t,e,r){\\\"use strict\\\";t.exports=u;var i=r(4);((u.prototype=Object.create(i.prototype)).constructor=u).className=\\\"Type\\\";var s=r(3),n=r(1),o=r(20),a=r(7),f=r(21),h=r(0),l=r(22);function u(t,e){i.call(this,t,e),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this._fieldsById=null,this._fieldsArray=null,this._oneofsArray=null,this._ctor=null}Object.defineProperties(u.prototype,{fieldsById:{get:function(){if(this._fieldsById)return this._fieldsById;this._fieldsById={};for(var t=Object.keys(this.fields),e=0;e<t.length;++e){var r=this.fields[t[e]],i=r.id;if(this._fieldsById[i])throw Error(\\\"duplicate id \\\"+i+\\\" in \\\"+this);this._fieldsById[i]=r}return this._fieldsById}},fieldsArray:{get:function(){return this._fieldsArray||(this._fieldsArray=h.toArray(this.fields))}},oneofsArray:{get:function(){return this._oneofsArray||(this._oneofsArray=h.toArray(this.oneofs))}},ctor:{get:function(){return this._ctor||(this.ctor=u.generateConstructor(this)())},set:function(t){t.prototype;t.$type=t.prototype.$type=this,this._ctor=t;for(var e=0;e<this.fieldsArray.length;++e)this._fieldsArray[e].resolve();var r={};for(e=0;e<this.oneofsArray.length;++e)r[this._oneofsArray[e].resolve().name]={get:h.oneOfGetter(this._oneofsArray[e].oneof),set:h.oneOfSetter(this._oneofsArray[e].oneof)};e&&Object.defineProperties(t.prototype,r)}}}),u.generateConstructor=function(t){for(var e,r=h.codegen([\\\"p\\\"],t.name),i=0;i<t.fieldsArray.length;++i)(e=t._fieldsArray[i]).map?r(\\\"this%s={}\\\",h.safeProp(e.name)):e.repeated&&r(\\\"this%s=[]\\\",h.safeProp(e.name));return r(\\\"if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)\\\")(\\\"this[ks[i]]=p[ks[i]]\\\")},u.fromJSON=function(t,e){var r=new u(t,e.options);r.extensions=e.extensions,r.reserved=e.reserved;for(var f=Object.keys(e.fields),h=0;h<f.length;++h)r.add((void 0!==e.fields[f[h]].keyType?o.fromJSON:n.fromJSON)(f[h],e.fields[f[h]]));if(e.nested)for(f=Object.keys(e.nested),h=0;h<f.length;++h){var l=e.nested[f[h]];r.add((void 0!==l.id?n.fromJSON:void 0!==l.fields?u.fromJSON:void 0!==l.values?s.fromJSON:void 0!==l.methods?a.fromJSON:i.fromJSON)(f[h],l))}return e.extensions&&e.extensions.length&&(r.extensions=e.extensions),e.reserved&&e.reserved.length&&(r.reserved=e.reserved),e.group&&(r.group=!0),e.comment&&(r.comment=e.comment),r},u.prototype.add=function(t){if(this.get(t.name))throw Error(\\\"duplicate name '\\\"+t.name+\\\"' in \\\"+this);if(t instanceof n&&void 0===t.extend){if(this._fieldsById?this._fieldsById[t.id]:this.fieldsById[t.id])throw Error(\\\"duplicate id \\\"+t.id+\\\" in \\\"+this);if(this.isReservedId(t.id))throw Error(\\\"id \\\"+t.id+\\\" is reserved in \\\"+this);if(this.isReservedName(t.name))throw Error(\\\"name '\\\"+t.name+\\\"' is reserved in \\\"+this);return t.parent&&t.parent.remove(t),this.fields[t.name]=t,t.message=this,t.onAdd(this),(e=this)._fieldsById=e._fieldsArray=e._oneofsArray=null,delete e.encode,delete e.decode,delete e.verify,e}var e;return i.prototype.add.call(this,t)},u.prototype.isReservedId=function(t){return i.isReservedId(this.reserved,t)},u.prototype.isReservedName=function(t){return i.isReservedName(this.reserved,t)},u.prototype.setup=function(){this.fullName;for(var t=[],e=0;e<this.fieldsArray.length;++e)t.push(this._fieldsArray[e].resolve().resolvedType);return this.decode=l(this)({Reader:f,types:t,util:h}),this},u.prototype.decode=function(t,e){return this.setup().decode(t,e)}},function(t,e,r){\\\"use strict\\\";t.exports=n;var i=r(1);((n.prototype=Object.create(i.prototype)).constructor=n).className=\\\"MapField\\\";r(5);var s=r(0);function n(t,e,r,n,o,a){if(i.call(this,t,e,n,void 0,void 0,o,a),!s.isString(r))throw TypeError(\\\"keyType must be a string\\\");this.keyType=r,this.resolvedKeyType=null,this.map=!0}n.fromJSON=function(t,e){return new n(t,e.id,e.keyType,e.type,e.options,e.comment)}},function(t,e,r){\\\"use strict\\\";t.exports=o;var i=r(6),s=(i.LongBits,i.utf8);function n(t,e){return RangeError(\\\"index out of range: \\\"+t.pos+\\\" + \\\"+(e||1)+\\\" > \\\"+t.len)}function o(t){this.buf=t,this.pos=0,this.len=t.length}var a,f=\\\"undefined\\\"!=typeof Uint8Array?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new o(t);throw Error(\\\"illegal buffer\\\")}:function(t){if(Array.isArray(t))return new o(t);throw Error(\\\"illegal buffer\\\")};function h(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}o.create=i.Buffer?function(t){return(o.create=function(t){return i.Buffer.isBuffer(t)?new(void 0)(t):f(t)})(t)}:f,o.prototype._slice=i.Array.prototype.subarray||i.Array.prototype.slice,o.prototype.uint32=(a=4294967295,function(){if(a=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return a;if(a=(a|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return a;if(a=(a|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return a;if(a=(a|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return a;if(a=(a|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return a;if((this.pos+=5)>this.len)throw this.pos=this.len,n(this,10);return a}),o.prototype.int32=function(){return 0|this.uint32()},o.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(1&t)|0},o.prototype.bool=function(){return 0!==this.uint32()},o.prototype.fixed32=function(){if(this.pos+4>this.len)throw n(this,4);return h(this.buf,this.pos+=4)},o.prototype.sfixed32=function(){if(this.pos+4>this.len)throw n(this,4);return 0|h(this.buf,this.pos+=4)},o.prototype.float=function(){if(this.pos+4>this.len)throw n(this,4);var t=i.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t},o.prototype.double=function(){if(this.pos+8>this.len)throw n(this,4);var t=i.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t},o.prototype.bytes=function(){var t=this.uint32(),e=this.pos,r=this.pos+t;if(r>this.len)throw n(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(e,r):e===r?new this.buf.constructor(0):this._slice.call(this.buf,e,r)},o.prototype.string=function(){var t=this.bytes();return s.read(t,0,t.length)},o.prototype.skip=function(t){if(\\\"number\\\"==typeof t){if(this.pos+t>this.len)throw n(this,t);this.pos+=t}else do{if(this.pos>=this.len)throw n(this)}while(128&this.buf[this.pos++]);return this},o.prototype.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(t=7&this.uint32());)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(\\\"invalid wire type \\\"+t+\\\" at offset \\\"+this.pos)}return this}},function(t,e,r){\\\"use strict\\\";t.exports=function(t){var e=n.codegen([\\\"r\\\",\\\"l\\\"],t.name+\\\"$decode\\\")(\\\"if(!(r instanceof Reader))\\\")(\\\"r=Reader.create(r)\\\")(\\\"var c=l===undefined?r.len:r.pos+l,m=new this.ctor\\\"+(t.fieldsArray.filter(function(t){return t.map}).length?\\\",k\\\":\\\"\\\"))(\\\"while(r.pos<c){\\\")(\\\"var t=r.uint32()\\\");t.group&&e(\\\"if((t&7)===4)\\\")(\\\"break\\\");e(\\\"switch(t>>>3){\\\");for(var r=0;r<t.fieldsArray.length;++r){var a=t._fieldsArray[r].resolve(),f=a.resolvedType instanceof i?\\\"int32\\\":a.type,h=\\\"m\\\"+n.safeProp(a.name);e(\\\"case %i:\\\",a.id),a.map?(e(\\\"r.skip().pos++\\\")(\\\"if(%s===util.emptyObject)\\\",h)(\\\"%s={}\\\",h)(\\\"k=r.%s()\\\",a.keyType)(\\\"r.pos++\\\"),void 0!==s.long[a.keyType]?void 0===s.basic[f]?e('%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%i].decode(r,r.uint32())',h,r):e('%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()',h,f):void 0===s.basic[f]?e(\\\"%s[k]=types[%i].decode(r,r.uint32())\\\",h,r):e(\\\"%s[k]=r.%s()\\\",h,f)):a.repeated?(e(\\\"if(!(%s&&%s.length))\\\",h,h)(\\\"%s=[]\\\",h),void 0!==s.packed[f]&&e(\\\"if((t&7)===2){\\\")(\\\"var c2=r.uint32()+r.pos\\\")(\\\"while(r.pos<c2)\\\")(\\\"%s.push(r.%s())\\\",h,f)(\\\"}else\\\"),void 0===s.basic[f]?e(a.resolvedType.group?\\\"%s.push(types[%i].decode(r))\\\":\\\"%s.push(types[%i].decode(r,r.uint32()))\\\",h,r):e(\\\"%s.push(r.%s())\\\",h,f)):void 0===s.basic[f]?e(a.resolvedType.group?\\\"%s=types[%i].decode(r)\\\":\\\"%s=types[%i].decode(r,r.uint32())\\\",h,r):e(\\\"%s=r.%s()\\\",h,f),e(\\\"break\\\")}for(e(\\\"default:\\\")(\\\"r.skipType(t&7)\\\")(\\\"break\\\")(\\\"}\\\")(\\\"}\\\"),r=0;r<t._fieldsArray.length;++r){var l=t._fieldsArray[r];l.required&&e(\\\"if(!m.hasOwnProperty(%j))\\\",l.name)(\\\"throw util.ProtocolError(%j,{instance:m})\\\",o(l))}return e(\\\"return m\\\")};var i=r(3),s=r(5),n=r(0);function o(t){return\\\"missing required '\\\"+t.name+\\\"'\\\"}},function(t,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0}),e.default={nested:{com:{nested:{opensource:{nested:{svga:{options:{objc_class_prefix:\\\"SVGAProto\\\",java_package:\\\"com.opensource.svgaplayer\\\"},nested:{MovieParams:{fields:{viewBoxWidth:{type:\\\"float\\\",id:1},viewBoxHeight:{type:\\\"float\\\",id:2},fps:{type:\\\"int32\\\",id:3},frames:{type:\\\"int32\\\",id:4}}},SpriteEntity:{fields:{imageKey:{type:\\\"string\\\",id:1},frames:{rule:\\\"repeated\\\",type:\\\"FrameEntity\\\",id:2}}},Layout:{fields:{x:{type:\\\"float\\\",id:1},y:{type:\\\"float\\\",id:2},width:{type:\\\"float\\\",id:3},height:{type:\\\"float\\\",id:4}}},Transform:{fields:{a:{type:\\\"float\\\",id:1},b:{type:\\\"float\\\",id:2},c:{type:\\\"float\\\",id:3},d:{type:\\\"float\\\",id:4},tx:{type:\\\"float\\\",id:5},ty:{type:\\\"float\\\",id:6}}},ShapeEntity:{oneofs:{args:{oneof:[\\\"shape\\\",\\\"rect\\\",\\\"ellipse\\\"]}},fields:{type:{type:\\\"ShapeType\\\",id:1},shape:{type:\\\"ShapeArgs\\\",id:2},rect:{type:\\\"RectArgs\\\",id:3},ellipse:{type:\\\"EllipseArgs\\\",id:4},styles:{type:\\\"ShapeStyle\\\",id:10},transform:{type:\\\"Transform\\\",id:11}},nested:{ShapeType:{values:{SHAPE:0,RECT:1,ELLIPSE:2,KEEP:3}},ShapeArgs:{fields:{d:{type:\\\"string\\\",id:1}}},RectArgs:{fields:{x:{type:\\\"float\\\",id:1},y:{type:\\\"float\\\",id:2},width:{type:\\\"float\\\",id:3},height:{type:\\\"float\\\",id:4},cornerRadius:{type:\\\"float\\\",id:5}}},EllipseArgs:{fields:{x:{type:\\\"float\\\",id:1},y:{type:\\\"float\\\",id:2},radiusX:{type:\\\"float\\\",id:3},radiusY:{type:\\\"float\\\",id:4}}},ShapeStyle:{fields:{fill:{type:\\\"RGBAColor\\\",id:1},stroke:{type:\\\"RGBAColor\\\",id:2},strokeWidth:{type:\\\"float\\\",id:3},lineCap:{type:\\\"LineCap\\\",id:4},lineJoin:{type:\\\"LineJoin\\\",id:5},miterLimit:{type:\\\"float\\\",id:6},lineDashI:{type:\\\"float\\\",id:7},lineDashII:{type:\\\"float\\\",id:8},lineDashIII:{type:\\\"float\\\",id:9}},nested:{RGBAColor:{fields:{r:{type:\\\"float\\\",id:1},g:{type:\\\"float\\\",id:2},b:{type:\\\"float\\\",id:3},a:{type:\\\"float\\\",id:4}}},LineCap:{values:{LineCap_BUTT:0,LineCap_ROUND:1,LineCap_SQUARE:2}},LineJoin:{values:{LineJoin_MITER:0,LineJoin_ROUND:1,LineJoin_BEVEL:2}}}}}},FrameEntity:{fields:{alpha:{type:\\\"float\\\",id:1},layout:{type:\\\"Layout\\\",id:2},transform:{type:\\\"Transform\\\",id:3},clipPath:{type:\\\"string\\\",id:4},shapes:{rule:\\\"repeated\\\",type:\\\"ShapeEntity\\\",id:5}}},MovieEntity:{fields:{version:{type:\\\"string\\\",id:1},params:{type:\\\"MovieParams\\\",id:2},images:{keyType:\\\"string\\\",type:\\\"bytes\\\",id:3},sprites:{rule:\\\"repeated\\\",type:\\\"SpriteEntity\\\",id:4}}}}}}}}}}}},function(t,e){\\n/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */\\n(function(){\\\"use strict\\\";var t=void 0,e=this;function r(r,i){var s,n=r.split(\\\".\\\"),o=e;!(n[0]in o)&&o.execScript&&o.execScript(\\\"var \\\"+n[0]);for(;n.length&&(s=n.shift());)n.length||i===t?o=o[s]?o[s]:o[s]={}:o[s]=i}var i=\\\"undefined\\\"!=typeof Uint8Array&&\\\"undefined\\\"!=typeof Uint16Array&&\\\"undefined\\\"!=typeof Uint32Array&&\\\"undefined\\\"!=typeof DataView;function s(t){var e,r,s,n,o,a,f,h,l,u,p=t.length,d=0,c=Number.POSITIVE_INFINITY;for(h=0;h<p;++h)t[h]>d&&(d=t[h]),t[h]<c&&(c=t[h]);for(e=1<<d,r=new(i?Uint32Array:Array)(e),s=1,n=0,o=2;s<=d;){for(h=0;h<p;++h)if(t[h]===s){for(a=0,f=n,l=0;l<s;++l)a=a<<1|1&f,f>>=1;for(u=s<<16|h,l=a;l<e;l+=o)r[l]=u;++n}++s,n<<=1,o<<=1}return[r,d,c]}function n(t,e){switch(this.g=[],this.h=32768,this.d=this.f=this.a=this.l=0,this.input=i?new Uint8Array(t):t,this.m=!1,this.i=a,this.r=!1,!e&&(e={})||(e.index&&(this.a=e.index),e.bufferSize&&(this.h=e.bufferSize),e.bufferType&&(this.i=e.bufferType),e.resize&&(this.r=e.resize)),this.i){case o:this.b=32768,this.c=new(i?Uint8Array:Array)(32768+this.h+258);break;case a:this.b=0,this.c=new(i?Uint8Array:Array)(this.h),this.e=this.z,this.n=this.v,this.j=this.w;break;default:throw Error(\\\"invalid inflate mode\\\")}}var o=0,a=1,f={t:o,s:a};n.prototype.k=function(){for(;!this.m;){var e=S(this,3);switch(1&e&&(this.m=!0),e>>>=1){case 0:var r=this.input,n=this.a,f=this.c,h=this.b,l=r.length,u=t,d=f.length,c=t;if(this.d=this.f=0,n+1>=l)throw Error(\\\"invalid uncompressed block header: LEN\\\");if(u=r[n++]|r[n++]<<8,n+1>=l)throw Error(\\\"invalid uncompressed block header: NLEN\\\");if(u===~(r[n++]|r[n++]<<8))throw Error(\\\"invalid uncompressed block header: length verify\\\");if(n+u>r.length)throw Error(\\\"input buffer is broken\\\");switch(this.i){case o:for(;h+u>f.length;){if(u-=c=d-h,i)f.set(r.subarray(n,n+c),h),h+=c,n+=c;else for(;c--;)f[h++]=r[n++];this.b=h,f=this.e(),h=this.b}break;case a:for(;h+u>f.length;)f=this.e({p:2});break;default:throw Error(\\\"invalid inflate mode\\\")}if(i)f.set(r.subarray(n,n+u),h),h+=u,n+=u;else for(;u--;)f[h++]=r[n++];this.a=n,this.b=h,this.c=f;break;case 1:this.j(_,x);break;case 2:var y,v,m,b,g=S(this,5)+257,A=S(this,5)+1,w=S(this,4)+4,k=new(i?Uint8Array:Array)(p.length),O=t,E=t,T=t,N=t,I=t;for(I=0;I<w;++I)k[p[I]]=S(this,3);if(!i)for(I=w,w=k.length;I<w;++I)k[p[I]]=0;for(y=s(k),O=new(i?Uint8Array:Array)(g+A),I=0,b=g+A;I<b;)switch(E=j(this,y),E){case 16:for(N=3+S(this,2);N--;)O[I++]=T;break;case 17:for(N=3+S(this,3);N--;)O[I++]=0;T=0;break;case 18:for(N=11+S(this,7);N--;)O[I++]=0;T=0;break;default:T=O[I++]=E}v=s(i?O.subarray(0,g):O.slice(0,g)),m=s(i?O.subarray(g):O.slice(g)),this.j(v,m);break;default:throw Error(\\\"unknown BTYPE: \\\"+e)}}return this.n()};var h,l,u=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],p=i?new Uint16Array(u):u,d=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258],c=i?new Uint16Array(d):d,y=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0],v=i?new Uint8Array(y):y,m=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],b=i?new Uint16Array(m):m,g=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],A=i?new Uint8Array(g):g,w=new(i?Uint8Array:Array)(288);for(h=0,l=w.length;h<l;++h)w[h]=143>=h?8:255>=h?9:279>=h?7:8;var k,O,_=s(w),E=new(i?Uint8Array:Array)(30);for(k=0,O=E.length;k<O;++k)E[k]=5;var x=s(E);function S(t,e){for(var r,i=t.f,s=t.d,n=t.input,o=t.a,a=n.length;s<e;){if(o>=a)throw Error(\\\"input buffer is broken\\\");i|=n[o++]<<s,s+=8}return r=i&(1<<e)-1,t.f=i>>>e,t.d=s-e,t.a=o,r}function j(t,e){for(var r,i,s=t.f,n=t.d,o=t.input,a=t.a,f=o.length,h=e[0],l=e[1];n<l&&!(a>=f);)s|=o[a++]<<n,n+=8;if((i=(r=h[s&(1<<l)-1])>>>16)>n)throw Error(\\\"invalid code length: \\\"+i);return t.f=s>>i,t.d=n-i,t.a=a,65535&r}function T(t,e){var r,i;switch(this.input=t,this.a=0,!e&&(e={})||(e.index&&(this.a=e.index),e.verify&&(this.A=e.verify)),r=t[this.a++],i=t[this.a++],15&r){case N:this.method=N;break;default:throw Error(\\\"unsupported compression method\\\")}if(0!=((r<<8)+i)%31)throw Error(\\\"invalid fcheck flag:\\\"+((r<<8)+i)%31);if(32&i)throw Error(\\\"fdict flag is not supported\\\");this.q=new n(t,{index:this.a,bufferSize:e.bufferSize,bufferType:e.bufferType,resize:e.resize})}n.prototype.j=function(t,e){var r=this.c,i=this.b;this.o=t;for(var s,n,o,a,f=r.length-258;256!==(s=j(this,t));)if(256>s)i>=f&&(this.b=i,r=this.e(),i=this.b),r[i++]=s;else for(a=c[n=s-257],0<v[n]&&(a+=S(this,v[n])),s=j(this,e),o=b[s],0<A[s]&&(o+=S(this,A[s])),i>=f&&(this.b=i,r=this.e(),i=this.b);a--;)r[i]=r[i++-o];for(;8<=this.d;)this.d-=8,this.a--;this.b=i},n.prototype.w=function(t,e){var r=this.c,i=this.b;this.o=t;for(var s,n,o,a,f=r.length;256!==(s=j(this,t));)if(256>s)i>=f&&(f=(r=this.e()).length),r[i++]=s;else for(a=c[n=s-257],0<v[n]&&(a+=S(this,v[n])),s=j(this,e),o=b[s],0<A[s]&&(o+=S(this,A[s])),i+a>f&&(f=(r=this.e()).length);a--;)r[i]=r[i++-o];for(;8<=this.d;)this.d-=8,this.a--;this.b=i},n.prototype.e=function(){var t,e,r=new(i?Uint8Array:Array)(this.b-32768),s=this.b-32768,n=this.c;if(i)r.set(n.subarray(32768,r.length));else for(t=0,e=r.length;t<e;++t)r[t]=n[t+32768];if(this.g.push(r),this.l+=r.length,i)n.set(n.subarray(s,s+32768));else for(t=0;32768>t;++t)n[t]=n[s+t];return this.b=32768,n},n.prototype.z=function(t){var e,r,s,n=this.input.length/this.a+1|0,o=this.input,a=this.c;return t&&(\\\"number\\\"==typeof t.p&&(n=t.p),\\\"number\\\"==typeof t.u&&(n+=t.u)),2>n?r=(s=(o.length-this.a)/this.o[2]/2*258|0)<a.length?a.length+s:a.length<<1:r=a.length*n,i?(e=new Uint8Array(r)).set(a):e=a,this.c=e},n.prototype.n=function(){var t,e,r,s,n,o=0,a=this.c,f=this.g,h=new(i?Uint8Array:Array)(this.l+(this.b-32768));if(0===f.length)return i?this.c.subarray(32768,this.b):this.c.slice(32768,this.b);for(e=0,r=f.length;e<r;++e)for(s=0,n=(t=f[e]).length;s<n;++s)h[o++]=t[s];for(e=32768,r=this.b;e<r;++e)h[o++]=a[e];return this.g=[],this.buffer=h},n.prototype.v=function(){var t,e=this.b;return i?this.r?(t=new Uint8Array(e)).set(this.c.subarray(0,e)):t=this.c.subarray(0,e):(this.c.length>e&&(this.c.length=e),t=this.c),this.buffer=t},T.prototype.k=function(){var t,e,r=this.input;if(t=this.q.k(),this.a=this.q.a,this.A){e=(r[this.a++]<<24|r[this.a++]<<16|r[this.a++]<<8|r[this.a++])>>>0;var i=t;if(\\\"string\\\"==typeof i){var s,n,o=i.split(\\\"\\\");for(s=0,n=o.length;s<n;s++)o[s]=(255&o[s].charCodeAt(0))>>>0;i=o}for(var a,f=1,h=0,l=i.length,u=0;0<l;){l-=a=1024<l?1024:l;do{h+=f+=i[u++]}while(--a);f%=65521,h%=65521}if(e!==(h<<16|f)>>>0)throw Error(\\\"invalid adler-32 checksum\\\")}return t};var N=8;r(\\\"Zlib.Inflate\\\",T),r(\\\"Zlib.Inflate.prototype.decompress\\\",T.prototype.k);var I,B,F,D,M={ADAPTIVE:f.s,BLOCK:f.t};if(Object.keys)I=Object.keys(M);else for(B in I=[],F=0,M)I[F++]=B;for(F=0,D=I.length;F<D;++F)r(\\\"Zlib.Inflate.BufferType.\\\"+(B=I[F]),M[B])}).call(this)},function(t,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0}),e.default=function(t){for(var e=[],r=0;r<t.length;r+=32768)e.push(String.fromCharCode.apply(null,t.subarray(r,r+32768)));return e.join(\\\"\\\")}},function(t,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0});var i=r(27),s=function(t,e){this.videoSize={width:0,height:0},this.images={},this.dynamicElements={},this.sprites=[],this.version=t.version,this.videoSize.width=t.params.viewBoxWidth||0,this.videoSize.height=t.params.viewBoxHeight||0,this.FPS=t.params.fps||20,this.frames=t.params.frames||0,t.sprites instanceof Array&&(this.sprites=t.sprites.map(function(t){return new i.default(t)})),e&&(this.images=e)};e.default=s},function(t,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0});var i=r(28),s=function(t){this.frames=[],this.imageKey=t.imageKey,t.frames&&(this.frames=t.frames.map(function(t){return new i.default(t)}))};e.default=s},function(t,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0});var i=r(29),s=function(t,e,r,i,s,n){return{a:t,b:e,c:r,d:i,tx:s,ty:n}},n=function(t,e,r,i){return{x:t,y:e,width:r,height:i}},o=function(){function t(e){this.alpha=0,this.transform=s(1,0,0,1,0,0),this.nx=0,this.ny=0,this.layout=n(0,0,0,0),this.shapes=[],this.alpha=parseFloat(e.alpha)||0,e.layout&&(this.layout=n(parseFloat(e.layout.x)||0,parseFloat(e.layout.y)||0,parseFloat(e.layout.width)||0,parseFloat(e.layout.height)||0)),e.transform&&(this.transform=s(parseFloat(e.transform.a)||1,parseFloat(e.transform.b)||0,parseFloat(e.transform.c)||0,parseFloat(e.transform.d)||1,parseFloat(e.transform.tx)||0,parseFloat(e.transform.ty)||0)),e.clipPath&&e.clipPath.length>0&&(this.maskPath=new i.default(e.clipPath,void 0,{fill:\\\"#000000\\\"})),e.shapes&&(e.shapes instanceof Array&&e.shapes.forEach(function(t){switch(t.pathArgs=t.args,t.type){case 0:t.type=\\\"shape\\\",t.pathArgs=t.shape;break;case 1:t.type=\\\"rect\\\",t.pathArgs=t.rect;break;case 2:t.type=\\\"ellipse\\\",t.pathArgs=t.ellipse;break;case 3:t.type=\\\"keep\\\"}if(t.styles){t.styles.fill&&(\\\"number\\\"==typeof t.styles.fill.r&&(t.styles.fill[0]=t.styles.fill.r),\\\"number\\\"==typeof t.styles.fill.g&&(t.styles.fill[1]=t.styles.fill.g),\\\"number\\\"==typeof t.styles.fill.b&&(t.styles.fill[2]=t.styles.fill.b),\\\"number\\\"==typeof t.styles.fill.a&&(t.styles.fill[3]=t.styles.fill.a)),t.styles.stroke&&(\\\"number\\\"==typeof t.styles.stroke.r&&(t.styles.stroke[0]=t.styles.stroke.r),\\\"number\\\"==typeof t.styles.stroke.g&&(t.styles.stroke[1]=t.styles.stroke.g),\\\"number\\\"==typeof t.styles.stroke.b&&(t.styles.stroke[2]=t.styles.stroke.b),\\\"number\\\"==typeof t.styles.stroke.a&&(t.styles.stroke[3]=t.styles.stroke.a));var e=t.styles.lineDash||[];switch(t.styles.lineDashI>0&&e.push(t.styles.lineDashI),t.styles.lineDashII>0&&(e.length<1&&e.push(0),e.push(t.styles.lineDashII),e.push(0)),t.styles.lineDashIII>0&&(e.length<2&&(e.push(0),e.push(0)),e[2]=t.styles.lineDashIII),t.styles.lineDash=e,t.styles.lineJoin){case 0:t.styles.lineJoin=\\\"miter\\\";break;case 1:t.styles.lineJoin=\\\"round\\\";break;case 2:t.styles.lineJoin=\\\"bevel\\\"}switch(t.styles.lineCap){case 0:t.styles.lineCap=\\\"butt\\\";break;case 1:t.styles.lineCap=\\\"round\\\";break;case 2:t.styles.lineCap=\\\"square\\\"}}}),e.shapes[0]&&\\\"keep\\\"===e.shapes[0].type?this.shapes=t.lastShapes:(t.lastShapes=e.shapes,this.shapes=e.shapes));var r=this.transform.a*this.layout.x+this.transform.c*this.layout.y+this.transform.tx,o=this.transform.a*(this.layout.x+this.layout.width)+this.transform.c*this.layout.y+this.transform.tx,a=this.transform.a*this.layout.x+this.transform.c*(this.layout.y+this.layout.height)+this.transform.tx,f=this.transform.a*(this.layout.x+this.layout.width)+this.transform.c*(this.layout.y+this.layout.height)+this.transform.tx,h=this.transform.b*this.layout.x+this.transform.d*this.layout.y+this.transform.ty,l=this.transform.b*(this.layout.x+this.layout.width)+this.transform.d*this.layout.y+this.transform.ty,u=this.transform.b*this.layout.x+this.transform.d*(this.layout.y+this.layout.height)+this.transform.ty,p=this.transform.b*(this.layout.x+this.layout.width)+this.transform.d*(this.layout.y+this.layout.height)+this.transform.ty;this.nx=Math.min(Math.min(a,f),Math.min(r,o)),this.ny=Math.min(Math.min(u,p),Math.min(h,l))}return t.lastShapes=\\\"\\\",t}();e.default=o},function(t,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0});var i=function(t,e,r){this._d=t,this._transform=e,this._styles=r};e.default=i}]);\",Parser=function(){function Parser(_a){var disableWorker=(void 0===_a?{disableWorker:!1}:_a).disableWorker;disableWorker?(eval(WORKER),this.worker=window.SVGAParserMockWorker):this.worker=new Worker(window.URL.createObjectURL(new Blob([WORKER])))}return Parser.prototype.do=function(e){var t=this,r=new Uint8Array(e,0,4);if(80==r[0]&&75==r[1]&&3==r[2]&&4==r[3])throw\"this parser not support version@1.x of svga.\";if(!e)throw new Error(\"Parser Data not found\");if(!this.worker)throw new Error(\"Parser Worker not found\");return new Promise(function(r,n){var o;t.worker.disableWorker?((o=t.worker).onmessageCallback=function(e){r(e)},o.onmessage({data:e})):((o=t.worker).postMessage(e),o.onmessage=function(e){var t=e.data;r(t)})})},Parser.prototype.destroy=function(){var e=this.worker;e.terminate&&e.terminate()},Parser}();exports.default=Parser},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n,o,i,s=r(5),a=r(9);!function(e){e.START=\"start\",e.RESUME=\"resume\",e.PROCESS=\"process\",e.PAUSE=\"pause\",e.STOP=\"stop\",e.END=\"end\",e.CLEAR=\"clear\"}(n||(n={})),function(e){e.FORWARDS=\"forwards\",e.BACKWARDS=\"backwards\"}(o||(o={})),function(e){e.FORWARDS=\"forwards\",e.FALLBACKS=\"fallbacks\"}(i||(i={}));var u=\"undefined\"!=typeof window&&\"IntersectionObserver\"in window,c=function(){function e(e,t,r){if(this.videoItem=t,this.loop=!0,this.fillMode=o.FORWARDS,this.playMode=i.FORWARDS,this.progress=0,this.currentFrame=0,this.totalFramesCount=0,this.startFrame=0,this.endFrame=0,this.cacheFrames=!1,this.intersectionObserverRender=!1,this.intersectionObserverRenderShow=!0,this._intersectionObserver=null,this.$onEvent={start:function(){},resume:function(){},process:function(){},pause:function(){},stop:function(){},end:function(){},clear:function(){}},this.container=\"string\"==typeof e?document.body.querySelector(e):e,!this.container)throw new Error(\"container undefined.\");if(!this.container.getContext)throw new Error(\"container should be HTMLCanvasElement.\");this._renderer=new s.default(this),this._animator=new a.default,this.videoItem&&this.mount(t),r&&this.set(r)}return e.prototype.set=function(e){var t=this;void 0!==e.loop&&(this.loop=e.loop),e.fillMode&&(this.fillMode=e.fillMode),e.playMode&&(this.playMode=e.playMode),void 0!==e.cacheFrames&&(this.cacheFrames=e.cacheFrames),this.startFrame=e.startFrame?e.startFrame:this.startFrame,this.endFrame=e.endFrame?e.endFrame:this.endFrame,void 0!==e.intersectionObserverRender&&(this.intersectionObserverRender=e.intersectionObserverRender),u&&this.intersectionObserverRender?(this._intersectionObserver=new IntersectionObserver(function(e){e[0].intersectionRatio<=0?t.intersectionObserverRenderShow&&(t.intersectionObserverRenderShow=!1):!t.intersectionObserverRenderShow&&(t.intersectionObserverRenderShow=!0)},{rootMargin:\"0px\",threshold:[0,.5,1]}),this._intersectionObserver.observe(this.container)):(this._intersectionObserver&&this._intersectionObserver.disconnect(),this.intersectionObserverRender=!1,this.intersectionObserverRenderShow=!0),this._animator.noExecutionDelay=e.noExecutionDelay},e.prototype.mount=function(e){var t=this;return new Promise(function(r,n){t.currentFrame=0,t.progress=0,t.totalFramesCount=e.frames-1,t.videoItem=e,t._renderer.prepare().then(r),t._renderer.clear(),t._setSize()})},e.prototype.start=function(){if(!this.videoItem)throw new Error(\"video item undefined.\");this._renderer.clear(),this._startAnimation(),this.$onEvent.start()},e.prototype.resume=function(){if(!this.videoItem)throw new Error(\"video item undefined.\");this._startAnimation(),this.$onEvent.resume()},e.prototype.pause=function(){this._animator&&this._animator.stop(),this.$onEvent.pause()},e.prototype.stop=function(){this._animator&&this._animator.stop(),this.currentFrame=0,this._renderer.drawFrame(this.currentFrame),this.$onEvent.stop()},e.prototype.clear=function(){this._animator&&this._animator.stop(),this._renderer.clear(),this.$onEvent.clear()},e.prototype.destroy=function(){this._animator&&this._animator.stop(),this._renderer.clear(),this._animator=null,this._renderer=null,this.videoItem=null},e.prototype.$on=function(e,t){var r=this;return this.$onEvent[e]=t,\"end\"===e&&(this._animator.onEnd=function(){return r.$onEvent.end()}),this},e.prototype._startAnimation=function(){var e=this,t=this,r=t.playMode,n=t.totalFramesCount,o=t.startFrame,i=t.endFrame,s=t.videoItem;this.currentFrame===n&&(this.currentFrame=o||0),this._animator.startValue=\"fallbacks\"===r?i||n:o||0,this._animator.endValue=\"fallbacks\"===r?o||0:i||n;var a=s.frames;i>0&&i>o?a=i-o:i<=0&&o>0&&(a=s.frames-o),this._animator.duration=a*(1/s.FPS)*1e3,this._animator.loop=!0===this.loop||this.loop<=0?1/0:!1===this.loop?1:this.loop,this._animator.fillRule=\"backwards\"===this.fillMode?1:0,this._animator.onUpdate=function(t){t=Math.floor(t),e.currentFrame!==t&&(e.currentFrame=t,e.progress=parseFloat((t+1).toString())/parseFloat(s.frames.toString())*100,e._renderer.drawFrame(e.currentFrame),e.$onEvent.process())},this._animator.start(this.currentFrame)},e.prototype._setSize=function(){var e=this.videoItem.videoSize;this.container.width=e.width,this.container.height=e.height},e}();t.default=c},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(6),o=function(){function e(e){this._bitmapCache={},this._dynamicElements={},this._frames={},this._player=e;var t=this._player.container;this._ofsCanvas=window.OffscreenCanvas?new window.OffscreenCanvas(t.width,t.height):document.createElement(\"canvas\")}return e.prototype.prepare=function(){var e=this;return new Promise(function(t,r){if(e._bitmapCache={},e._player.videoItem.images&&0!=Object.keys(e._player.videoItem.images).length){e._player.videoItem.dynamicElements&&(e._dynamicElements=e._player.videoItem.dynamicElements);var n=0,o=0;for(var i in e._player.videoItem.images){var s=e._player.videoItem.images[i];if(\"string\"!=typeof s||0!==s.indexOf(\"iVBO\")&&0!==s.indexOf(\"/9j/2w\"))e._bitmapCache[i]=s;else{n++;var a=document.createElement(\"img\");a.src=\"data:image/png;base64,\"+s,e._bitmapCache[i]=a,a.onload=function(){++o===n&&t()}}}}else t()})},e.prototype.clear=function(){this._player.container.width=this._player.container.width},e.prototype.drawFrame=function(e){var t=this._player;if(!t.intersectionObserverRender||t.intersectionObserverRenderShow){this.clear();var r=t.container.getContext(\"2d\");if(this._player.cacheFrames&&this._frames[e]){var o=this._frames[e];r.drawImage(o,0,0,o.width,o.height,0,0,o.width,o.height)}else{var i=this._ofsCanvas;if(i.width=this._player.container.width,i.height=this._player.container.height,n.default(i,this._bitmapCache,this._dynamicElements,this._player.videoItem,this._player.currentFrame),r.drawImage(i,0,0,i.width,i.height,0,0,i.width,i.height),this._player.cacheFrames)if(\"toDataURL\"in i){var s=i.toDataURL(),a=new Image;a.src=s,this._frames[e]=a}else this._frames[e]=i.transferToImageBitmap()}}},e}();t.default=o},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var n=s(r(0)),o=s(r(7)),i=s(r(8));function s(e){return e&&e.__esModule?e:{default:e}}var a=\"MLHVCSQRZmlhvcsqrz\";function u(e,t){var r=t._styles;void 0!==r&&(r&&r.stroke?e.strokeStyle=\"rgba(\".concat(parseInt((255*r.stroke[0]).toString()),\", \").concat(parseInt((255*r.stroke[1]).toString()),\", \").concat(parseInt((255*r.stroke[2]).toString()),\", \").concat(r.stroke[3],\")\"):e.strokeStyle=\"transparent\",r&&(e.lineWidth=r.strokeWidth||void 0,e.lineCap=r.lineCap||void 0,e.lineJoin=r.lineJoin||void 0,e.miterLimit=r.miterLimit||void 0),r&&r.fill?e.fillStyle=\"rgba(\".concat(parseInt((255*r.fill[0]).toString()),\", \").concat(parseInt((255*r.fill[1]).toString()),\", \").concat(parseInt((255*r.fill[2]).toString()),\", \").concat(r.fill[3],\")\"):e.fillStyle=\"transparent\",r&&r.lineDash&&e.setLineDash(r.lineDash))}function c(e,t){e.save(),u(e,t),void 0!==t._transform&&null!==t._transform&&e.transform(t._transform.a||1,t._transform.b||0,t._transform.c||0,t._transform.d||1,t._transform.tx||0,t._transform.ty||0);var r={x:0,y:0,x1:0,y1:0,x2:0,y2:0};e.beginPath(),t._d.replace(/([a-zA-Z])/g,\"|||$1 \").replace(/,/g,\" \").split(\"|||\").forEach(function(t){if(0!=t.length){var n=t.substr(0,1);if(a.indexOf(n)>=0){var o=t.substr(1).trim().split(\" \");!function(e,t,r,n){switch(r){case\"M\":t.x=Number(n[0]),t.y=Number(n[1]),e.moveTo(t.x,t.y);break;case\"m\":t.x+=Number(n[0]),t.y+=Number(n[1]),e.moveTo(t.x,t.y);break;case\"L\":t.x=Number(n[0]),t.y=Number(n[1]),e.lineTo(t.x,t.y);break;case\"l\":t.x+=Number(n[0]),t.y+=Number(n[1]),e.lineTo(t.x,t.y);break;case\"H\":t.x=Number(n[0]),e.lineTo(t.x,t.y);break;case\"h\":t.x+=Number(n[0]),e.lineTo(t.x,t.y);break;case\"V\":t.y=Number(n[0]),e.lineTo(t.x,t.y);break;case\"v\":t.y+=Number(n[0]),e.lineTo(t.x,t.y);break;case\"C\":t.x1=Number(n[0]),t.y1=Number(n[1]),t.x2=Number(n[2]),t.y2=Number(n[3]),t.x=Number(n[4]),t.y=Number(n[5]),e.bezierCurveTo(t.x1,t.y1,t.x2,t.y2,t.x,t.y);break;case\"c\":t.x1=t.x+Number(n[0]),t.y1=t.y+Number(n[1]),t.x2=t.x+Number(n[2]),t.y2=t.y+Number(n[3]),t.x+=Number(n[4]),t.y+=Number(n[5]),e.bezierCurveTo(t.x1,t.y1,t.x2,t.y2,t.x,t.y);break;case\"S\":t.x1&&t.y1&&t.x2&&t.y2?(t.x1=t.x-t.x2+t.x,t.y1=t.y-t.y2+t.y,t.x2=Number(n[0]),t.y2=Number(n[1]),t.x=Number(n[2]),t.y=Number(n[3]),e.bezierCurveTo(t.x1,t.y1,t.x2,t.y2,t.x,t.y)):(t.x1=Number(n[0]),t.y1=Number(n[1]),t.x=Number(n[2]),t.y=Number(n[3]),e.quadraticCurveTo(t.x1,t.y1,t.x,t.y));break;case\"s\":t.x1&&t.y1&&t.x2&&t.y2?(t.x1=t.x-t.x2+t.x,t.y1=t.y-t.y2+t.y,t.x2=t.x+Number(n[0]),t.y2=t.y+Number(n[1]),t.x+=Number(n[2]),t.y+=Number(n[3]),e.bezierCurveTo(t.x1,t.y1,t.x2,t.y2,t.x,t.y)):(t.x1=t.x+Number(n[0]),t.y1=t.y+Number(n[1]),t.x+=Number(n[2]),t.y+=Number(n[3]),e.quadraticCurveTo(t.x1,t.y1,t.x,t.y));break;case\"Q\":t.x1=Number(n[0]),t.y1=Number(n[1]),t.x=Number(n[2]),t.y=Number(n[3]),e.quadraticCurveTo(t.x1,t.y1,t.x,t.y);break;case\"q\":t.x1=t.x+Number(n[0]),t.y1=t.y+Number(n[1]),t.x+=Number(n[2]),t.y+=Number(n[3]),e.quadraticCurveTo(t.x1,t.y1,t.x,t.y);break;case\"A\":case\"a\":break;case\"Z\":case\"z\":e.closePath()}}(e,r,n,o)}}}),t._styles&&t._styles.fill?e.fill():t._styles&&t._styles.stroke&&e.stroke(),e.restore()}var l=function(e,t,r,s,a){var l=e.getContext(\"2d\");return s.sprites.forEach(function(e){var s=e.frames[a];if(!(s.alpha<.05)){l.save(),l.globalAlpha=s.alpha,l.transform(s.transform.a||1,s.transform.b||0,s.transform.c||0,s.transform.d||1,s.transform.tx||0,s.transform.ty||0);var h=t[e.imageKey];h&&(void 0!==s.maskPath&&null!==s.maskPath&&(s.maskPath._styles=void 0,c(l,s.maskPath),l.clip()),l.drawImage(h,0,0));var f=r[e.imageKey];f&&l.drawImage(f,(s.layout.width-f.width)/2,(s.layout.height-f.height)/2),s.shapes&&s.shapes.forEach(function(e){\"shape\"===e.type&&e.pathArgs&&e.pathArgs.d?c(l,new n.default(e.pathArgs.d,e.transform,e.styles)):\"ellipse\"===e.type&&e.pathArgs?function(e,t){e.save(),u(e,t),void 0!==t._transform&&null!==t._transform&&e.transform(t._transform.a||1,t._transform.b||0,t._transform.c||0,t._transform.d||1,t._transform.tx||0,t._transform.ty||0);var r=t._x-t._radiusX,n=t._y-t._radiusY,o=2*t._radiusX,i=2*t._radiusY,s=o/2*.5522848,a=i/2*.5522848,c=r+o,l=n+i,h=r+o/2,f=n+i/2;e.beginPath(),e.moveTo(r,f),e.bezierCurveTo(r,f-a,h-s,n,h,n),e.bezierCurveTo(h+s,n,c,f-a,c,f),e.bezierCurveTo(c,f+a,h+s,l,h,l),e.bezierCurveTo(h-s,l,r,f+a,r,f),t._styles&&t._styles.fill?e.fill():t._styles&&t._styles.stroke&&e.stroke();e.restore()}(l,new o.default(parseFloat(e.pathArgs.x)||0,parseFloat(e.pathArgs.y)||0,parseFloat(e.pathArgs.radiusX)||0,parseFloat(e.pathArgs.radiusY)||0,e.transform,e.styles)):\"rect\"===e.type&&e.pathArgs&&function(e,t){e.save(),u(e,t),void 0!==t._transform&&null!==t._transform&&e.transform(t._transform.a||1,t._transform.b||0,t._transform.c||0,t._transform.d||1,t._transform.tx||0,t._transform.ty||0);var r=t._x,n=t._y,o=t._width,i=t._height,s=t._cornerRadius;o<2*s&&(s=o/2);i<2*s&&(s=i/2);e.beginPath(),e.moveTo(r+s,n),e.arcTo(r+o,n,r+o,n+i,s),e.arcTo(r+o,n+i,r,n+i,s),e.arcTo(r,n+i,r,n,s),e.arcTo(r,n,r+o,n,s),e.closePath(),t._styles&&t._styles.fill?e.fill():t._styles&&t._styles.stroke&&e.stroke();e.restore()}(l,new i.default(parseFloat(e.pathArgs.x)||0,parseFloat(e.pathArgs.y)||0,parseFloat(e.pathArgs.width)||0,parseFloat(e.pathArgs.height)||0,parseFloat(e.pathArgs.cornerRadius)||0,e.transform,e.styles))}),l.restore()}}),e};t.default=l},function(e,t,r){\"use strict\";var n,o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(t,r,n,o,i,s){var a=e.call(this)||this;return a._x=t,a._y=r,a._radiusX=n,a._radiusY=o,a._transform=i,a._styles=s,a}return o(t,e),t}(r(0).default);t.default=i},function(e,t,r){\"use strict\";var n,o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(e){function t(t,r,n,o,i,s,a){var u=e.call(this)||this;return u._x=t,u._y=r,u._width=n,u._height=o,u._cornerRadius=i,u._transform=s,u._styles=a,u}return o(t,e),t}(r(0).default);t.default=i},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(){this._currentTimeMillsecond=function(){return\"undefined\"==typeof performance?(new Date).getTime():performance.now()},this.noExecutionDelay=!1,this.startValue=0,this.endValue=0,this.duration=0,this.loop=1,this.fillRule=0,this.onStart=function(){},this.onUpdate=function(){},this.onEnd=function(){},this._isRunning=!1,this._mStartTime=0,this._currentFrication=0,this._worker=null}return e.prototype.start=function(e){this.doStart(e)},e.prototype.stop=function(){this._doStop()},Object.defineProperty(e.prototype,\"animatedValue\",{get:function(){return(this.endValue-this.startValue)*this._currentFrication+this.startValue},enumerable:!1,configurable:!0}),e.prototype.doStart=function(e){this._isRunning=!0,this._mStartTime=this._currentTimeMillsecond(),e&&(this._mStartTime-=e/(this.endValue-this.startValue)*this.duration),this._currentFrication=0,this.noExecutionDelay&&null===this._worker&&(this._worker=new Worker(window.URL.createObjectURL(new Blob([\"onmessage = function () {\\n setTimeout(function() {postMessage(null)}, 1 / 60)\\n}\"])))),this.onStart(),this._doFrame()},e.prototype._doStop=function(){this._isRunning=!1,null!==this._worker&&(this._worker.terminate(),this._worker=null)},e.prototype._doFrame=function(){this._isRunning&&(this._doDeltaTime(this._currentTimeMillsecond()-this._mStartTime),this._isRunning&&(this._worker?(this._worker.onmessage=this._doFrame.bind(this),this._worker.postMessage(null)):window.requestAnimationFrame(this._doFrame.bind(this))))},e.prototype._doDeltaTime=function(e){e>=this.duration*this.loop?(this._currentFrication=1===this.fillRule?0:1,this._isRunning=!1):this._currentFrication=e%this.duration/this.duration,this.onUpdate(this.animatedValue),!1===this._isRunning&&(null!==this._worker&&(this._worker.terminate(),this._worker=null),this.onEnd())},e}();t.default=n}]).default});","<template>\n <div ref=\"containerRef\" class=\"svga-player-container\">\n <canvas ref=\"canvasRef\" class=\"svga-player-canvas\"></canvas>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onUnmounted, watch, nextTick } from 'vue';\nimport { Parser, Player } from 'svga.lite';\n\n// 定义组件属性\nconst props = defineProps({\n /**\n * SVGA 文件地址\n */\n src: {\n type: String,\n required: true\n },\n /**\n * 是否自动播放\n */\n autoplay: {\n type: Boolean,\n default: true\n },\n /**\n * 是否循环播放\n */\n loop: {\n type: Boolean,\n default: true\n },\n /**\n * 初始播放进度 (0-1)\n */\n progress: {\n type: Number,\n default: 0\n },\n /**\n * 播放速度\n */\n speed: {\n type: Number,\n default: 1\n },\n /**\n * 宽度\n */\n width: {\n type: [Number, String],\n default: '100%'\n },\n /**\n * 高度\n */\n height: {\n type: [Number, String],\n default: '100%'\n }\n});\n\n// 定义组件事件\nconst emit = defineEmits([\n /**\n * 加载完成事件\n */\n 'loaded',\n /**\n * 开始播放事件\n */\n 'play',\n /**\n * 暂停播放事件\n */\n 'pause',\n /**\n * 播放结束事件\n */\n 'ended',\n /**\n * 播放进度更新事件\n */\n 'progress',\n /**\n * 错误事件\n */\n 'error'\n]);\n\n// 组件引用\nconst containerRef = ref(null);\nconst canvasRef = ref(null);\n\n// SVGA 实例\nlet parser = null;\nlet player = null;\nlet animationData = null;\n\n/**\n * 初始化 SVGA 播放器\n */\nconst initPlayer = async () => {\n try {\n // 创建 Parser 实例\n parser = new Parser();\n \n // 加载 SVGA 文件\n animationData = await parser.load(props.src);\n \n // 创建 Player 实例\n player = new Player(canvasRef.value);\n \n // 设置播放属性\n player.loop = props.loop;\n player.speed = props.speed;\n \n // 绑定事件监听器\n player.onStart = () => emit('play');\n player.onPause = () => emit('pause');\n player.onEnd = () => emit('ended');\n player.onFrame = () => emit('progress', player.progress);\n \n // 设置动画数据\n await player.setAnimationData(animationData);\n \n // 设置初始进度\n if (props.progress > 0) {\n player.progress = props.progress;\n }\n \n // 自动播放\n if (props.autoplay) {\n player.start();\n }\n \n // 触发加载完成事件\n emit('loaded');\n } catch (error) {\n console.error('SVGA 加载失败:', error);\n emit('error', error);\n }\n};\n\n/**\n * 开始播放\n */\nconst play = () => {\n if (player) {\n player.start();\n }\n};\n\n/**\n * 暂停播放\n */\nconst pause = () => {\n if (player) {\n player.pause();\n }\n};\n\n/**\n * 停止播放\n */\nconst stop = () => {\n if (player) {\n player.stop();\n }\n};\n\n/**\n * 重新播放\n */\nconst restart = () => {\n if (player) {\n player.stop();\n player.start();\n }\n};\n\n/**\n * 设置播放进度\n * @param {number} progress - 播放进度 (0-1)\n */\nconst setProgress = (progress) => {\n if (player) {\n player.progress = progress;\n }\n};\n\n/**\n * 设置播放速度\n * @param {number} speed - 播放速度\n */\nconst setSpeed = (speed) => {\n if (player) {\n player.speed = speed;\n }\n};\n\n/**\n * 设置是否循环播放\n * @param {boolean} loop - 是否循环\n */\nconst setLoop = (loop) => {\n if (player) {\n player.loop = loop;\n }\n};\n\n// 暴露组件方法\ndefineExpose({\n play,\n pause,\n stop,\n restart,\n setProgress,\n setSpeed,\n setLoop\n});\n\n// 监听属性变化\nwatch(() => props.src, async (newSrc) => {\n if (newSrc) {\n // 重新加载 SVGA\n await initPlayer();\n }\n});\n\nwatch(() => props.loop, (newLoop) => {\n setLoop(newLoop);\n});\n\nwatch(() => props.speed, (newSpeed) => {\n setSpeed(newSpeed);\n});\n\nwatch(() => props.progress, (newProgress) => {\n setProgress(newProgress);\n});\n\n// 组件挂载时初始化\nonMounted(async () => {\n await nextTick();\n await initPlayer();\n});\n\n// 组件卸载时销毁资源\nonUnmounted(() => {\n if (player) {\n player.stop();\n player = null;\n }\n \n if (parser) {\n parser = null;\n }\n \n animationData = null;\n});\n</script>\n\n<style scoped>\n.svga-player-container {\n position: relative;\n width: v-bind(width);\n height: v-bind(height);\n overflow: hidden;\n}\n\n.svga-player-canvas {\n width: 100%;\n height: 100%;\n display: block;\n}\n</style>","<template>\n\t<div class=\"search-dropdown\">\n\t\t<!-- 搜索输入框 -->\n\t\t<div class=\"input-wrapper\" :class=\"{ focus: isFocus }\">\n\t\t\t<input class=\"search-input\" :placeholder=\"placeholder\" v-model=\"inputValue\" @input=\"handleInput\"\n\t\t\t\t@focus=\"handleFocus\" @blur=\"handleBlur\" @keyup.enter=\"performSearch\" />\n\t\t\t<div v-if=\"inputValue&&showClear\" class=\"clear-icon\" @click=\"clearInput\">×</div>\n\t\t</div>\n\n\t\t<!-- 下拉列表 -->\n\t\t<div v-if=\"showDropdown && filteredList.length > 0\" class=\"dropdown-list\"\n\t\t\t:style=\"{ maxHeight: maxHeight + 'px' }\">\n\t\t\t<div v-for=\"(item, index) in filteredList\" :key=\"index\" class=\"dropdown-item\" @click=\"selectItem(item)\">\n\t\t\t\t<span class=\"item-text\">{{ item.label }}</span>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup>\n\timport {\n\t\tref,\n\t\twatchEffect,\n\t\tdefineProps,\n\t\tdefineEmits,\n\t\tcomputed,\n\t\tonMounted,\n\t\twatch,\n\t\tnextTick\n\t} from 'vue';\n\n\tconst props = defineProps({\n\t\tlist: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '请输入关键词搜索',\n\t\t},\n\t\tdefaultValue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tmaxHeight: {\n\t\t\ttype: Number,\n\t\t\tdefault: 200,\n\t\t},\n\t\tshowClear: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tonFocusShowList: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tenterSearch: {\n\t\t\t//点击搜索后再筛选列表\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t}\n\t});\n\n\tconst emit = defineEmits(['clearIcon', 'search', 'select']);\n\n\t// 响应式状态管理\n\tconst inputValue = ref(props.defaultValue);\n\tconst isFocus = ref(false);\n\tconst showDropdown = ref(false);\n\tconst filteredList = ref([]);\n\n\t// 方法区\n\tfunction clearInput() {\n\t\tinputValue.value = '';\n\t\tfilteredList.value = [];\n\t\tshowDropdown.value = false;\n\t\temit('clearIcon', '', []);\n\t}\n\n\tfunction performSearch() {\n\n\t\tif (!props.enterSearch) {\n\t\t\treturn\n\t\t}\n\t\tconst searchText = inputValue.value;\n\t\tfilteredList.value = props.list.filter(\n\t\t\t(item) => item.label && item.label.includes(searchText)\n\t\t);\n\t\tshowDropdown.value = filteredList.value.length > 0;\n\t\temit('search', searchText, filteredList.value);\n\t}\n\n\tfunction handleInput() {\n\t\tif (props.enterSearch) {\n\t\t\treturn\n\t\t}\n\t\tconst searchText = inputValue.value;\n\t\tfilteredList.value = props.list.filter(\n\t\t\t(item) => item.label && item.label.includes(searchText)\n\t\t);\n\t\tshowDropdown.value = filteredList.value.length > 0;\n\t\temit('search', searchText, filteredList.value);\n\t}\n\n\tfunction handleFocus() {\n\t\tif (props.onFocusShowList) {\n\t\t\t//如果焦点显示列表设置为true,则进行搜索操作\n\t\t\tfilteredList.value = props.list.filter(\n\t\t\t\t(item) => item.label && item.label.includes(inputValue.value)\n\t\t\t);\n\t\t\tshowDropdown.value = true;\n\t\t}\n\n\t\tisFocus.value = true;\n\n\t}\n\n\tfunction handleBlur() {\n\t\tsetTimeout(() => {\n\t\t\tisFocus.value = false;\n\t\t\tshowDropdown.value = false;\n\t\t}, 150);\n\t}\n\n\tfunction selectItem(item) {\n\t\tinputValue.value = item.label;\n\t\tshowDropdown.value = false;\n\t\temit('select', item);\n\t}\n\t// watchEffect(() => {\n\t// \tif (!props.defaultValue && !inputValue.value) return;\n\t// \tinputValue.value = props.defaultValue;\n\t// });\n\tonMounted(() => {\n\t\t// 组件初始化时设置默认值\n\t\tif (props.defaultValue) {\n\t\t\tinputValue.value = props.defaultValue;\n\t\t}\n\t});\n</script>\n\n<style lang=\"scss\">\n\t.search-dropdown {\n\t\tposition: relative;\n\t\twidth: 100%;\n\t}\n\n\t.input-wrapper {\n\t\tborder: 2px solid #dcdfe6;\n\t\tborder-radius: 8px;\n\t\tpadding: 20px;\n\t\ttransition: all 0.3s ease;\n\t\tposition: relative;\n\t\tpadding-right: 60px;\n\t}\n\n\t.clear-icon {\n\t\tposition: absolute;\n\t\tright: 20px;\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t\tfont-size: 32px;\n\t\tcolor: #c0c4cc;\n\t\tcursor: pointer;\n\t\tpadding: 4px;\n\t}\n\n\t.clear-icon:active {\n\t\tcolor: #909399;\n\t}\n\n\t.input-wrapper.focus {\n\t\tbox-shadow: 0 0 0 2px rgba(64, 158, 255, 0.2);\n\t}\n\n\t.search-input {\n\t\twidth: 100%;\n\t\tfont-size: 28px;\n\t\tcolor: #303133;\n\t\tborder-style: none;\n\t}\n\n\t.search-input:focus {\n\t\toutline: none;\n\t}\n\n\t.dropdown-list {\n\t\tposition: absolute;\n\t\ttop: 100%;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbackground: #ffffff;\n\t\tborder: 1px solid #e4e7ed;\n\t\tborder-radius: 8px;\n\t\tbox-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);\n\t\tz-index: 1000;\n\t\tmargin-top: 8px;\n\t\toverflow-y: auto;\n\t}\n\n\t.dropdown-item {\n\t\tpadding: 20px 24px;\n\t\tborder-bottom: 1px solid #ebeef5;\n\t}\n\n\t.dropdown-item:last-child {\n\t\tborder-bottom: none;\n\t}\n\n\t.item-text {\n\t\tfont-size: 28px;\n\t\tcolor: #606266;\n\t}\n\n\t.dropdown-item:active {\n\t\tbackground: #f5f7fa;\n\t}\n</style>","<template>\n\t<div class=\"dropdown-filter\">\n\t\t<div class=\"filter-container\">\n\t\t\t<div v-for=\"(item, index) in filterOptions\" :key=\"index\" class=\"filter-item\"\n\t\t\t\t:class=\"{ active: activeIndex === index }\">\n\t\t\t\t<div class=\"filter-header\" @click=\"toggleDropdown(index)\">\n\t\t\t\t\t<span class=\"filter-label\">{{ item.label }}</span>\n\t\t\t\t\t<div class=\"filter-value-group\">\n\t\t\t\t\t\t<span class=\"filter-value\">{{ getSelectedText(item) }}</span>\n\t\t\t\t\t\t<div class=\"arrow\" :class=\"{ up: activeIndex === index }\" v-if=\"props.showArrow\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div v-if=\"activeIndex === index\"\n\t\t\t\t\t:class=\"[props.showScrollBar?'dropdown-menu-show':'dropdown-menu-hide']\"\n\t\t\t\t\t:style=\"props.listHeight? `height: ${props.listHeight}px;`:`height: ${item.options.length * 40}px;` \">\n\t\t\t\t\t<div v-for=\"(option, optIndex) in item.options\" :key=\"optIndex\" class=\"dropdown-item\"\n\t\t\t\t\t\t:class=\"{ selected: isSelected(item, option) }\" @click=\"selectOption(item, option, index)\">\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t:style=\"isSelected(item, option)?`color: ${props.chosenColor};`:`color: ${props.unChosenColor};`\">{{ option.label }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t</div>\n</template>\n\n<script setup>\n\timport {\n\t\tref,\n\t\tdefineProps,\n\t\tdefineEmits\n\t} from 'vue'\n\n\tconst props = defineProps({\n\t\t// 筛选配置项\n\t\toptions: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => []\n\t\t},\n\t\t// 当前选中值\n\t\tmodelValue: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({})\n\t\t},\n\t\t// 是否显示箭头\n\t\tshowArrow: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\t// 下拉列表高度\n\t\tlistHeight: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0\n\t\t},\n\t\t// 选中颜色\n\t\tchosenColor: {\n\t\t\ttype: String,\n\t\t\tdefault: '#ee0a24'\n\t\t},\n\t\t// 未选中颜色\n\t\tunChosenColor: {\n\t\t\ttype: String,\n\t\t\tdefault: '#000'\n\t\t},\n\t\t// 是否显示下拉列表滚动条\n\t\tshowScrollBar: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t}\n\t})\n\n\tconst emit = defineEmits(['update:modelValue', 'change'])\n\n\t// 响应式数据\n\tconst activeIndex = ref(-1)\n\tconst filterOptions = ref(props.options)\n\n\t// 切换下拉菜单\n\tconst toggleDropdown = (index) => {\n\t\tif (activeIndex.value === index) {\n\t\t\tactiveIndex.value = -1\n\t\t} else {\n\t\t\tactiveIndex.value = index\n\t\t}\n\t}\n\n\t// 关闭下拉菜单\n\tconst closeDropdown = () => {\n\t\tactiveIndex.value = -1\n\t}\n\n\t// 选择选项\n\tconst selectOption = (item, option, index) => {\n\t\tconst newValue = {\n\t\t\t...props.modelValue\n\t\t}\n\t\tnewValue[item.key] = option.value\n\t\temit('update:modelValue', newValue)\n\t\temit('change', {\n\t\t\titem,\n\t\t\toption,\n\t\t\tindex\n\t\t})\n\t\tactiveIndex.value = -1\n\t}\n\n\t// 获取选中文本\n\tconst getSelectedText = (item) => {\n\t\tconst selectedValue = props.modelValue[item.key]\n\t\tif (selectedValue !== undefined) {\n\t\t\tconst selectedOption = item.options.find(opt => opt.value === selectedValue)\n\t\t\treturn selectedOption ? selectedOption.label : '请选择'\n\t\t}\n\t\treturn '请选择'\n\t}\n\n\t// 判断是否选中\n\tconst isSelected = (item, option) => {\n\t\treturn props.modelValue[item.key] === option.value\n\t}\n</script>\n\n<style scoped>\n\t.dropdown-filter {\n\t\tposition: relative;\n\t\twidth: 100%;\n\t}\n\n\t.filter-container {\n\t\tdisplay: flex;\n\t\tbackground-color: #ffffff;\n\t\tborder-bottom: 1px solid #ebedf0;\n\t\tpadding: 10px 0;\n\t}\n\n\t.filter-item {\n\t\tflex: 1;\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t}\n\n\t.filter-header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tpadding: 10px 5px;\n\t\tposition: relative;\n\t\tcursor: pointer;\n\n\t}\n\n\t.filter-value-group {\n\t\tflex: 1;\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t}\n\n\t.filter-label {\n\t\tfont-size: 14px;\n\t\tcolor: #323233;\n\t\tmargin-right: 10px;\n\t}\n\n\t.filter-value {\n\t\tfont-size: 14px;\n\t\tcolor: #969799;\n\t\tmax-width: 60px;\n\t\tmargin-right: 2px;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n\n\t.arrow {\n\t\twidth: 0;\n\t\theight: 0;\n\t\tborder-left: 5px solid transparent;\n\t\tborder-right: 5px solid transparent;\n\t\tborder-top: 5px solid #969799;\n\t\ttransition: transform 0.3s;\n\t}\n\n\t.arrow.up {\n\t\ttransform: rotate(180deg);\n\t}\n\n\t.dropdown-menu-hide {\n\t\tposition: absolute;\n\t\ttop: 100%;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbackground-color: #fff;\n\t\toverflow-y: auto;\n\t\t/* 隐藏滚动条 */\n\t\tscrollbar-width: none;\n\t\t/* Firefox */\n\t\t-ms-overflow-style: none;\n\t\t/* IE/Edge */\n\t\t/* IE/Edge */\n\t}\n\n\t.dropdown-menu-show {\n\t\tposition: absolute;\n\t\ttop: 100%;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbackground-color: #fff;\n\t\toverflow-y: auto;\n\t\t/* 显示滚动条 */\n\t\tscrollbar-width: thin;\n\t\t/* Firefox */\n\t\t-ms-overflow-style: scrollbar;\n\t\t/* IE/Edge */\n\t}\n\n\t/* Webkit浏览器(Chrome、Safari等) */\n\t.dropdown-menu::-webkit-scrollbar {\n\t\tdisplay: none;\n\t}\n\n\t.dropdown-item {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tpadding: 10px 15px;\n\t\twidth: 100%;\n\t\tfont-size: 14px;\n\t\tcolor: #323233;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tborder-bottom: 1px solid #f7f8fa;\n\t\tcursor: pointer;\n\t}\n\n\t.dropdown-item:last-child {\n\t\tborder-bottom: none;\n\t}\n\n\n\t.active .filter-header {\n\t\tcolor: #ee0a24;\n\t}\n</style>","<template>\n <div class=\"hbis-password-input\" v-if=\"visible\">\n <!-- 遮罩层 -->\n <div class=\"password-overlay\" @click=\"handleOverlayClick\"></div>\n \n <!-- 弹窗内容 -->\n <div class=\"password-dialog\">\n <!-- 标题 -->\n <div class=\"password-header\">\n <h3 class=\"password-title\">{{ title }}</h3>\n <button class=\"password-close\" @click=\"close\">×</button>\n </div>\n \n <!-- 密码输入区域 -->\n <div class=\"password-body\">\n <div class=\"password-input-container\">\n <div \n v-for=\"(item, index) in maxLength\" \n :key=\"index\"\n class=\"password-input-item\"\n >\n <template v-if=\"showPassword\">\n <span class=\"password-visible\">{{ passwordValue[index] || '' }}</span>\n </template>\n <template v-else>\n <span class=\"password-hidden\">{{ passwordValue[index] ? '●' : '' }}</span>\n </template>\n </div>\n </div>\n \n <!-- 数字键盘 -->\n <div class=\"password-keyboard\">\n <div \n v-for=\"(key, index) in keyboardLayout\" \n :key=\"index\"\n class=\"keyboard-row\"\n >\n <button \n v-for=\"(item, itemIndex) in key\" \n :key=\"itemIndex\"\n class=\"keyboard-key\"\n :class=\"{ 'keyboard-key-action': isActionKey(item) }\"\n @click=\"handleKeyPress(item)\"\n >\n {{ item }}\n </button>\n </div>\n </div>\n </div>\n \n <!-- 底部按钮 -->\n <div class=\"password-footer\">\n <button class=\"password-cancel\" @click=\"close\">取消</button>\n <button class=\"password-confirm\" @click=\"confirm\">\n {{ confirmText }}\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, watch, onMounted } from 'vue';\n\n// 定义组件属性\nconst props = defineProps({\n /**\n * 是否显示弹窗\n */\n visible: {\n type: Boolean,\n default: false\n },\n /**\n * 弹窗标题\n */\n title: {\n type: String,\n default: '请输入密码'\n },\n /**\n * 确认按钮文本\n */\n confirmText: {\n type: String,\n default: '确定'\n },\n /**\n * 密码最大长度\n */\n maxLength: {\n type: Number,\n default: 6\n },\n /**\n * 是否明文显示密码\n */\n showPassword: {\n type: Boolean,\n default: false\n },\n /**\n * 自定义数字键盘布局\n */\n keyboardLayout: {\n type: Array,\n default: () => [\n ['1', '2', '3'],\n ['4', '5', '6'],\n ['7', '8', '9'],\n ['清除', '0', '删除']\n ]\n }\n});\n\n// 定义组件事件\nconst emit = defineEmits([\n /**\n * 密码输入完成事件\n * @param {string} password - 输入的密码\n */\n 'complete',\n /**\n * 关闭弹窗事件\n */\n 'close',\n /**\n * 确认按钮点击事件\n * @param {string} password - 输入的密码\n */\n 'confirm'\n]);\n\n// 响应式数据\nconst passwordValue = ref([]);\n\n// 计算属性:判断是否为动作键\nconst isActionKey = (key) => {\n return ['清除', '删除'].includes(key);\n};\n\n// 监听密码值变化,当达到最大长度时触发完成事件\nwatch(passwordValue, (newValue) => {\n if (newValue.length === props.maxLength) {\n const password = newValue.join('');\n emit('complete', password);\n }\n}, { deep: true });\n\n// 处理键盘按键点击\nconst handleKeyPress = (key) => {\n if (key === '清除') {\n // 清除所有输入\n passwordValue.value = [];\n } else if (key === '删除') {\n // 删除最后一个字符\n passwordValue.value = passwordValue.value.slice(0, -1);\n } else if (/^[0-9]$/.test(key)) {\n // 输入数字,且未达到最大长度\n if (passwordValue.value.length < props.maxLength) {\n passwordValue.value.push(key);\n }\n }\n};\n\n// 处理遮罩层点击\nconst handleOverlayClick = () => {\n // 可以根据需求决定是否允许点击遮罩层关闭弹窗\n};\n\n// 关闭弹窗\nconst close = () => {\n emit('close');\n emit('update:visible', false);\n};\n\n// 确认按钮点击\nconst confirm = () => {\n const password = passwordValue.value.join('');\n emit('confirm', password);\n};\n\n// 组件挂载时重置密码\nonMounted(() => {\n passwordValue.value = [];\n});\n\n// 监听 visible 变化,当弹窗显示时重置密码\nwatch(() => props.visible, (newVal) => {\n if (newVal) {\n passwordValue.value = [];\n }\n});\n</script>\n\n<style scoped>\n.hbis-password-input {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9999;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* 遮罩层 */\n.password-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n}\n\n/* 弹窗内容 */\n.password-dialog {\n position: relative;\n background-color: white;\n border-radius: 12px;\n width: 90%;\n max-width: 400px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);\n overflow: hidden;\n animation: dialogFadeIn 0.3s ease-out;\n}\n\n/* 标题区域 */\n.password-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid #f0f0f0;\n}\n\n.password-title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #333;\n}\n\n.password-close {\n background: none;\n border: none;\n font-size: 24px;\n color: #999;\n cursor: pointer;\n padding: 0;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.password-close:hover {\n color: #666;\n}\n\n/* 密码输入区域 */\n.password-body {\n padding: 20px;\n}\n\n/* 密码输入框 */\n.password-input-container {\n display: flex;\n justify-content: center;\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.password-input-item {\n width: 40px;\n height: 40px;\n border: 1px solid #dcdfe6;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 18px;\n transition: all 0.3s ease;\n}\n\n.password-input-item:focus-within {\n border-color: #409eff;\n box-shadow: 0 0 0 2px rgba(64, 158, 255, 0.2);\n}\n\n.password-visible {\n color: #333;\n}\n\n.password-hidden {\n color: #333;\n font-size: 20px;\n}\n\n/* 数字键盘 */\n.password-keyboard {\n width: 100%;\n}\n\n.keyboard-row {\n display: flex;\n justify-content: space-between;\n margin-bottom: 12px;\n}\n\n.keyboard-key {\n flex: 1;\n height: 48px;\n margin: 0 6px;\n border: 1px solid #dcdfe6;\n border-radius: 8px;\n background-color: white;\n font-size: 18px;\n font-weight: 500;\n color: #333;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.keyboard-key:hover {\n background-color: #f5f7fa;\n border-color: #c0c4cc;\n}\n\n.keyboard-key:active {\n background-color: #ecf5ff;\n border-color: #409eff;\n}\n\n/* 动作键样式 */\n.keyboard-key-action {\n color: #409eff;\n}\n\n/* 底部按钮 */\n.password-footer {\n display: flex;\n border-top: 1px solid #f0f0f0;\n}\n\n.password-cancel,\n.password-confirm {\n flex: 1;\n height: 48px;\n border: none;\n font-size: 16px;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.password-cancel {\n background-color: white;\n color: #606266;\n border-right: 1px solid #f0f0f0;\n}\n\n.password-cancel:hover {\n color: #303133;\n}\n\n.password-confirm {\n background-color: #409eff;\n color: white;\n}\n\n.password-confirm:hover {\n background-color: #66b1ff;\n}\n\n/* 动画效果 */\n@keyframes dialogFadeIn {\n from {\n opacity: 0;\n transform: translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* 响应式设计 */\n@media (max-width: 768px) {\n .password-dialog {\n width: 95%;\n max-width: none;\n }\n \n .password-input-item {\n width: 36px;\n height: 36px;\n }\n \n .keyboard-key {\n height: 44px;\n font-size: 16px;\n }\n \n .password-footer {\n height: 44px;\n }\n \n .password-cancel,\n .password-confirm {\n height: 44px;\n font-size: 14px;\n }\n}\n\n@media (max-width: 480px) {\n .password-header {\n padding: 12px 16px;\n }\n \n .password-title {\n font-size: 16px;\n }\n \n .password-body {\n padding: 16px;\n }\n \n .password-input-container {\n gap: 8px;\n margin-bottom: 20px;\n }\n \n .password-input-item {\n width: 32px;\n height: 32px;\n font-size: 16px;\n }\n \n .keyboard-key {\n height: 40px;\n font-size: 15px;\n }\n}\n</style>"],"names":["_createElementBlock","_normalizeClass","__props","_renderSlot","_ctx","emit","__emit","handleClick","event","_openBlock","_hoisted_1","_createElementVNode","_hoisted_2","_toDisplayString","_hoisted_3","props","shouldScroll","computed","start","end","diffTime","diffDays","totalDays","error","weekdays","orderedWeekdays","firstDate","filteredDisplayDates","firstDateWeekday","result","i","weekdayIndex","initCurrentWeekStart","baseDate","day","diff","startDate","ref","onMounted","watch","newValue","displayDates","dates","date","formatDate","isSelected","dateStr","selectedDate","isToday","todayStr","isInRange","dateObj","getWeekdayLabel","weekday","_a","w","handleDateClick","_hoisted_7","_hoisted_8","_hoisted_9","_Fragment","_renderList","_hoisted_10","_normalizeStyle","$event","_hoisted_5","_hoisted_6","currentIndex","swiperWrapper","isDragging","isMovingImage","startX","startY","currentTranslateX","containerWidth","containerHeight","imageStates","touchStartX","touchStartY","touchStartTime","touchMoveX","touchMoveY","swiperWrapperStyle","slideStyle","newIndex","updateTranslateX","handleResize","prevImage","resetCurrentImageState","nextImage","getImageStyle","index","state","handleImageLoad","img","handleMouseDown","handleMouseMove","newTranslateX","newTranslateY","handleMouseUp","swipeThreshold","handleTouchStart","touch","handleTouchMove","deltaX","deltaY","handleTouchEnd","deltaTime","swipeVelocity","handleWheel","delta","mouseX","mouseY","zoomImage","centerX","centerY","newScale","rect","imageX","imageY","scaleDiff","_hoisted_4","image","containerRef","contentRef","isPaused","animationFrameId","currentPosition","displayList","dragStartPos","dragCurrentPos","dragOffset","wasPausedBeforeDrag","containerStyle","contentStyle","style","updateDisplayList","animate","container","content","containerSize","totalSize","maxPosition","startAnimation","stopAnimation","pause","resume","handleMouseEnter","handleMouseLeave","e","scrollTo","position","scrollToTop","scrollToBottom","nextTick","onUnmounted","__expose","item","handleContainerClick","newVal","_cache","isSendSMS","smsCode","num","sendMessage","time","slots","useSlots","waterfallRef","useCssVars","columns","columnCount","defaultSlot","calculateItemHeight","refresh","actualColumn","newColumns","itemHeight","minHeight","minColumnIndex","col","idx","handleImageError","_createTextVNode","column","itemIndex","t","r","n","o","s","exports","u","c","a","l","h","f","canvasRef","parser","player","animationData","initPlayer","Parser","Player","play","stop","restart","setProgress","progress","setSpeed","speed","setLoop","loop","newSrc","newLoop","newSpeed","newProgress","inputValue","isFocus","showDropdown","filteredList","clearInput","performSearch","searchText","handleInput","handleFocus","handleBlur","selectItem","activeIndex","filterOptions","toggleDropdown","selectOption","option","getSelectedText","selectedValue","selectedOption","opt","optIndex","passwordValue","isActionKey","key","password","handleKeyPress","handleOverlayClick","close","confirm"],"mappings":"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","x_google_ignoreList":[8]}