commit f37f31627ea29e343bb408e13925d3ca9f7a2e0f Author: tony.deng Date: Tue Aug 18 01:11:18 2020 +0800 初始化 diff --git a/App.vue b/App.vue new file mode 100755 index 0000000..0df57e1 --- /dev/null +++ b/App.vue @@ -0,0 +1,23 @@ + + + diff --git a/components/uni-badge/uni-badge.vue b/components/uni-badge/uni-badge.vue new file mode 100644 index 0000000..192deca --- /dev/null +++ b/components/uni-badge/uni-badge.vue @@ -0,0 +1,148 @@ + + + + + \ No newline at end of file diff --git a/components/uni-calendar/calendar.js b/components/uni-calendar/calendar.js new file mode 100644 index 0000000..b8d7d6f --- /dev/null +++ b/components/uni-calendar/calendar.js @@ -0,0 +1,546 @@ +/** +* @1900-2100区间内的公历、农历互转 +* @charset UTF-8 +* @github https://github.com/jjonline/calendar.js +* @Author Jea杨(JJonline@JJonline.Cn) +* @Time 2014-7-21 +* @Time 2016-8-13 Fixed 2033hex、Attribution Annals +* @Time 2016-9-25 Fixed lunar LeapMonth Param Bug +* @Time 2017-7-24 Fixed use getTerm Func Param Error.use solar year,NOT lunar year +* @Version 1.0.3 +* @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0] +* @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0] +*/ +/* eslint-disable */ +var calendar = { + + /** + * 农历1900-2100的润大小信息表 + * @Array Of Property + * @return Hex + */ + lunarInfo: [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, // 1900-1909 + 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, // 1910-1919 + 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, // 1920-1929 + 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, // 1930-1939 + 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, // 1940-1949 + 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, // 1950-1959 + 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, // 1960-1969 + 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, // 1970-1979 + 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, // 1980-1989 + 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0, // 1990-1999 + 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, // 2000-2009 + 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, // 2010-2019 + 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, // 2020-2029 + 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, // 2030-2039 + 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, // 2040-2049 + /** Add By JJonline@JJonline.Cn**/ + 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0, // 2050-2059 + 0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4, // 2060-2069 + 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0, // 2070-2079 + 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160, // 2080-2089 + 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252, // 2090-2099 + 0x0d520], // 2100 + + /** + * 公历每个月份的天数普通表 + * @Array Of Property + * @return Number + */ + solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + + /** + * 天干地支之天干速查表 + * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"] + * @return Cn string + */ + Gan: ['\u7532', '\u4e59', '\u4e19', '\u4e01', '\u620a', '\u5df1', '\u5e9a', '\u8f9b', '\u58ec', '\u7678'], + + /** + * 天干地支之地支速查表 + * @Array Of Property + * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"] + * @return Cn string + */ + Zhi: ['\u5b50', '\u4e11', '\u5bc5', '\u536f', '\u8fb0', '\u5df3', '\u5348', '\u672a', '\u7533', '\u9149', '\u620c', '\u4ea5'], + + /** + * 天干地支之地支速查表<=>生肖 + * @Array Of Property + * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"] + * @return Cn string + */ + Animals: ['\u9f20', '\u725b', '\u864e', '\u5154', '\u9f99', '\u86c7', '\u9a6c', '\u7f8a', '\u7334', '\u9e21', '\u72d7', '\u732a'], + + /** + * 24节气速查表 + * @Array Of Property + * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"] + * @return Cn string + */ + solarTerm: ['\u5c0f\u5bd2', '\u5927\u5bd2', '\u7acb\u6625', '\u96e8\u6c34', '\u60ca\u86f0', '\u6625\u5206', '\u6e05\u660e', '\u8c37\u96e8', '\u7acb\u590f', '\u5c0f\u6ee1', '\u8292\u79cd', '\u590f\u81f3', '\u5c0f\u6691', '\u5927\u6691', '\u7acb\u79cb', '\u5904\u6691', '\u767d\u9732', '\u79cb\u5206', '\u5bd2\u9732', '\u971c\u964d', '\u7acb\u51ac', '\u5c0f\u96ea', '\u5927\u96ea', '\u51ac\u81f3'], + + /** + * 1900-2100各年的24节气日期速查表 + * @Array Of Property + * @return 0x string For splice + */ + sTermInfo: ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', + '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', + 'b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f', + '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa', + '97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f', + '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', + '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722', + '9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f', + '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', + '97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722', + '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', + '97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2', + '977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722', + '7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', + '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd', + '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35', + '7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35', + '665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35', + '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722'], + + /** + * 数字转中文速查表 + * @Array Of Property + * @trans ['日','一','二','三','四','五','六','七','八','九','十'] + * @return Cn string + */ + nStr1: ['\u65e5', '\u4e00', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341'], + + /** + * 日期转农历称呼速查表 + * @Array Of Property + * @trans ['初','十','廿','卅'] + * @return Cn string + */ + nStr2: ['\u521d', '\u5341', '\u5eff', '\u5345'], + + /** + * 月份转农历称呼速查表 + * @Array Of Property + * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊'] + * @return Cn string + */ + nStr3: ['\u6b63', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341', '\u51ac', '\u814a'], + + /** + * 返回农历y年一整年的总天数 + * @param lunar Year + * @return Number + * @eg:var count = calendar.lYearDays(1987) ;//count=387 + */ + lYearDays: function (y) { + var i; var sum = 348 + for (i = 0x8000; i > 0x8; i >>= 1) { sum += (this.lunarInfo[y - 1900] & i) ? 1 : 0 } + return (sum + this.leapDays(y)) + }, + + /** + * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0 + * @param lunar Year + * @return Number (0-12) + * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6 + */ + leapMonth: function (y) { // 闰字编码 \u95f0 + return (this.lunarInfo[y - 1900] & 0xf) + }, + + /** + * 返回农历y年闰月的天数 若该年没有闰月则返回0 + * @param lunar Year + * @return Number (0、29、30) + * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29 + */ + leapDays: function (y) { + if (this.leapMonth(y)) { + return ((this.lunarInfo[y - 1900] & 0x10000) ? 30 : 29) + } + return (0) + }, + + /** + * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法 + * @param lunar Year + * @return Number (-1、29、30) + * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29 + */ + monthDays: function (y, m) { + if (m > 12 || m < 1) { return -1 }// 月份参数从1至12,参数错误返回-1 + return ((this.lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29) + }, + + /** + * 返回公历(!)y年m月的天数 + * @param solar Year + * @return Number (-1、28、29、30、31) + * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30 + */ + solarDays: function (y, m) { + if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1 + var ms = m - 1 + if (ms == 1) { // 2月份的闰平规律测算后确认返回28或29 + return (((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0)) ? 29 : 28) + } else { + return (this.solarMonth[ms]) + } + }, + + /** + * 农历年份转换为干支纪年 + * @param lYear 农历年的年份数 + * @return Cn string + */ + toGanZhiYear: function (lYear) { + var ganKey = (lYear - 3) % 10 + var zhiKey = (lYear - 3) % 12 + if (ganKey == 0) ganKey = 10// 如果余数为0则为最后一个天干 + if (zhiKey == 0) zhiKey = 12// 如果余数为0则为最后一个地支 + return this.Gan[ganKey - 1] + this.Zhi[zhiKey - 1] + }, + + /** + * 公历月、日判断所属星座 + * @param cMonth [description] + * @param cDay [description] + * @return Cn string + */ + toAstro: function (cMonth, cDay) { + var s = '\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf' + var arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22] + return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + '\u5ea7'// 座 + }, + + /** + * 传入offset偏移量返回干支 + * @param offset 相对甲子的偏移量 + * @return Cn string + */ + toGanZhi: function (offset) { + return this.Gan[offset % 10] + this.Zhi[offset % 12] + }, + + /** + * 传入公历(!)y年获得该年第n个节气的公历日期 + * @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起 + * @return day Number + * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春 + */ + getTerm: function (y, n) { + if (y < 1900 || y > 2100) { return -1 } + if (n < 1 || n > 24) { return -1 } + var _table = this.sTermInfo[y - 1900] + var _info = [ + parseInt('0x' + _table.substr(0, 5)).toString(), + parseInt('0x' + _table.substr(5, 5)).toString(), + parseInt('0x' + _table.substr(10, 5)).toString(), + parseInt('0x' + _table.substr(15, 5)).toString(), + parseInt('0x' + _table.substr(20, 5)).toString(), + parseInt('0x' + _table.substr(25, 5)).toString() + ] + var _calday = [ + _info[0].substr(0, 1), + _info[0].substr(1, 2), + _info[0].substr(3, 1), + _info[0].substr(4, 2), + + _info[1].substr(0, 1), + _info[1].substr(1, 2), + _info[1].substr(3, 1), + _info[1].substr(4, 2), + + _info[2].substr(0, 1), + _info[2].substr(1, 2), + _info[2].substr(3, 1), + _info[2].substr(4, 2), + + _info[3].substr(0, 1), + _info[3].substr(1, 2), + _info[3].substr(3, 1), + _info[3].substr(4, 2), + + _info[4].substr(0, 1), + _info[4].substr(1, 2), + _info[4].substr(3, 1), + _info[4].substr(4, 2), + + _info[5].substr(0, 1), + _info[5].substr(1, 2), + _info[5].substr(3, 1), + _info[5].substr(4, 2) + ] + return parseInt(_calday[n - 1]) + }, + + /** + * 传入农历数字月份返回汉语通俗表示法 + * @param lunar month + * @return Cn string + * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月' + */ + toChinaMonth: function (m) { // 月 => \u6708 + if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1 + var s = this.nStr3[m - 1] + s += '\u6708'// 加上月字 + return s + }, + + /** + * 传入农历日期数字返回汉字表示法 + * @param lunar day + * @return Cn string + * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一' + */ + toChinaDay: function (d) { // 日 => \u65e5 + var s + switch (d) { + case 10: + s = '\u521d\u5341'; break + case 20: + s = '\u4e8c\u5341'; break + break + case 30: + s = '\u4e09\u5341'; break + break + default : + s = this.nStr2[Math.floor(d / 10)] + s += this.nStr1[d % 10] + } + return (s) + }, + + /** + * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春” + * @param y year + * @return Cn string + * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔' + */ + getAnimal: function (y) { + return this.Animals[(y - 4) % 12] + }, + + /** + * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON + * @param y solar year + * @param m solar month + * @param d solar day + * @return JSON object + * @eg:console.log(calendar.solar2lunar(1987,11,01)); + */ + solar2lunar: function (y, m, d) { // 参数区间1900.1.31~2100.12.31 + // 年份限定、上限 + if (y < 1900 || y > 2100) { + return -1// undefined转换为数字变为NaN + } + // 公历传参最下限 + if (y == 1900 && m == 1 && d < 31) { + return -1 + } + // 未传参 获得当天 + if (!y) { + var objDate = new Date() + } else { + var objDate = new Date(y, parseInt(m) - 1, d) + } + var i; var leap = 0; var temp = 0 + // 修正ymd参数 + var y = objDate.getFullYear() + var m = objDate.getMonth() + 1 + var d = objDate.getDate() + var offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 86400000 + for (i = 1900; i < 2101 && offset > 0; i++) { + temp = this.lYearDays(i) + offset -= temp + } + if (offset < 0) { + offset += temp; i-- + } + + // 是否今天 + var isTodayObj = new Date() + var isToday = false + if (isTodayObj.getFullYear() == y && isTodayObj.getMonth() + 1 == m && isTodayObj.getDate() == d) { + isToday = true + } + // 星期几 + var nWeek = objDate.getDay() + var cWeek = this.nStr1[nWeek] + // 数字表示周几顺应天朝周一开始的惯例 + if (nWeek == 0) { + nWeek = 7 + } + // 农历年 + var year = i + var leap = this.leapMonth(i) // 闰哪个月 + var isLeap = false + + // 效验闰月 + for (i = 1; i < 13 && offset > 0; i++) { + // 闰月 + if (leap > 0 && i == (leap + 1) && isLeap == false) { + --i + isLeap = true; temp = this.leapDays(year) // 计算农历闰月天数 + } else { + temp = this.monthDays(year, i)// 计算农历普通月天数 + } + // 解除闰月 + if (isLeap == true && i == (leap + 1)) { isLeap = false } + offset -= temp + } + // 闰月导致数组下标重叠取反 + if (offset == 0 && leap > 0 && i == leap + 1) { + if (isLeap) { + isLeap = false + } else { + isLeap = true; --i + } + } + if (offset < 0) { + offset += temp; --i + } + // 农历月 + var month = i + // 农历日 + var day = offset + 1 + // 天干地支处理 + var sm = m - 1 + var gzY = this.toGanZhiYear(year) + + // 当月的两个节气 + // bugfix-2017-7-24 11:03:38 use lunar Year Param `y` Not `year` + var firstNode = this.getTerm(y, (m * 2 - 1))// 返回当月「节」为几日开始 + var secondNode = this.getTerm(y, (m * 2))// 返回当月「节」为几日开始 + + // 依据12节气修正干支月 + var gzM = this.toGanZhi((y - 1900) * 12 + m + 11) + if (d >= firstNode) { + gzM = this.toGanZhi((y - 1900) * 12 + m + 12) + } + + // 传入的日期的节气与否 + var isTerm = false + var Term = null + if (firstNode == d) { + isTerm = true + Term = this.solarTerm[m * 2 - 2] + } + if (secondNode == d) { + isTerm = true + Term = this.solarTerm[m * 2 - 1] + } + // 日柱 当月一日与 1900/1/1 相差天数 + var dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10 + var gzD = this.toGanZhi(dayCyclical + d - 1) + // 该日期所属的星座 + var astro = this.toAstro(m, d) + + return { 'lYear': year, 'lMonth': month, 'lDay': day, 'Animal': this.getAnimal(year), 'IMonthCn': (isLeap ? '\u95f0' : '') + this.toChinaMonth(month), 'IDayCn': this.toChinaDay(day), 'cYear': y, 'cMonth': m, 'cDay': d, 'gzYear': gzY, 'gzMonth': gzM, 'gzDay': gzD, 'isToday': isToday, 'isLeap': isLeap, 'nWeek': nWeek, 'ncWeek': '\u661f\u671f' + cWeek, 'isTerm': isTerm, 'Term': Term, 'astro': astro } + }, + + /** + * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON + * @param y lunar year + * @param m lunar month + * @param d lunar day + * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可] + * @return JSON object + * @eg:console.log(calendar.lunar2solar(1987,9,10)); + */ + lunar2solar: function (y, m, d, isLeapMonth) { // 参数区间1900.1.31~2100.12.1 + var isLeapMonth = !!isLeapMonth + var leapOffset = 0 + var leapMonth = this.leapMonth(y) + var leapDay = this.leapDays(y) + if (isLeapMonth && (leapMonth != m)) { return -1 }// 传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同 + if (y == 2100 && m == 12 && d > 1 || y == 1900 && m == 1 && d < 31) { return -1 }// 超出了最大极限值 + var day = this.monthDays(y, m) + var _day = day + // bugFix 2016-9-25 + // if month is leap, _day use leapDays method + if (isLeapMonth) { + _day = this.leapDays(y, m) + } + if (y < 1900 || y > 2100 || d > _day) { return -1 }// 参数合法性效验 + + // 计算农历的时间差 + var offset = 0 + for (var i = 1900; i < y; i++) { + offset += this.lYearDays(i) + } + var leap = 0; var isAdd = false + for (var i = 1; i < m; i++) { + leap = this.leapMonth(y) + if (!isAdd) { // 处理闰月 + if (leap <= i && leap > 0) { + offset += this.leapDays(y); isAdd = true + } + } + offset += this.monthDays(y, i) + } + // 转换闰月农历 需补充该年闰月的前一个月的时差 + if (isLeapMonth) { offset += day } + // 1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点) + var stmap = Date.UTC(1900, 1, 30, 0, 0, 0) + var calObj = new Date((offset + d - 31) * 86400000 + stmap) + var cY = calObj.getUTCFullYear() + var cM = calObj.getUTCMonth() + 1 + var cD = calObj.getUTCDate() + + return this.solar2lunar(cY, cM, cD) + } +} + +export default calendar diff --git a/components/uni-calendar/uni-calendar-item.vue b/components/uni-calendar/uni-calendar-item.vue new file mode 100644 index 0000000..6743f2e --- /dev/null +++ b/components/uni-calendar/uni-calendar-item.vue @@ -0,0 +1,151 @@ + + + + + \ No newline at end of file diff --git a/components/uni-calendar/uni-calendar.vue b/components/uni-calendar/uni-calendar.vue new file mode 100644 index 0000000..3fb95c2 --- /dev/null +++ b/components/uni-calendar/uni-calendar.vue @@ -0,0 +1,431 @@ + + + + + \ No newline at end of file diff --git a/components/uni-calendar/util.js b/components/uni-calendar/util.js new file mode 100644 index 0000000..54db66f --- /dev/null +++ b/components/uni-calendar/util.js @@ -0,0 +1,327 @@ +import CALENDAR from './calendar.js' + +class Calendar { + constructor({ + date, + selected, + startDate, + endDate, + range + } = {}) { + // 当前日期 + this.date = this.getDate(date) // 当前初入日期 + // 打点信息 + this.selected = selected || []; + // 范围开始 + this.startDate = startDate + // 范围结束 + this.endDate = endDate + this.range = range + // 多选状态 + this.multipleStatus = { + before: '', + after: '', + data: [] + } + // 每周日期 + this.weeks = {} + + this._getWeek(this.date.fullDate) + } + + /** + * 获取任意时间 + */ + getDate(date, AddDayCount = 0, str = 'day') { + if (!date) { + date = new Date() + } + if (typeof date !== 'object') { + date = date.replace(/-/g, '/') + } + const dd = new Date(date) + switch (str) { + case 'day': + dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期 + break + case 'month': + if (dd.getDate() === 31) { + dd.setDate(dd.getDate() + AddDayCount) + } else { + dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期 + } + break + case 'year': + dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期 + break + } + const y = dd.getFullYear() + const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0 + const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0 + return { + fullDate: y + '-' + m + '-' + d, + year: y, + month: m, + date: d, + day: dd.getDay() + } + } + + + /** + * 获取上月剩余天数 + */ + _getLastMonthDays(firstDay, full) { + let dateArr = [] + for (let i = firstDay; i > 0; i--) { + const beforeDate = new Date(full.year, full.month - 1, -i + 1).getDate() + dateArr.push({ + date: beforeDate, + month: full.month - 1, + lunar: this.getlunar(full.year, full.month - 1, beforeDate), + disable: true + }) + } + return dateArr + } + /** + * 获取本月天数 + */ + _currentMonthDys(dateData, full) { + let dateArr = [] + let fullDate = this.date.fullDate + for (let i = 1; i <= dateData; i++) { + let isinfo = false + let nowDate = full.year + '-' + (full.month < 10 ? + full.month : full.month) + '-' + (i < 10 ? + '0' + i : i) + // 是否今天 + let isDay = fullDate === nowDate + // 获取打点信息 + let info = this.selected && this.selected.find((item) => { + if (this.dateEqual(nowDate, item.date)) { + return item + } + }) + + // 日期禁用 + let disableBefore = true + let disableAfter = true + if (this.startDate) { + let dateCompBefore = this.dateCompare(this.startDate, fullDate) + disableBefore = this.dateCompare(dateCompBefore ? this.startDate : fullDate, nowDate) + } + + if (this.endDate) { + let dateCompAfter = this.dateCompare(fullDate, this.endDate) + disableAfter = this.dateCompare(nowDate, dateCompAfter ? this.endDate : fullDate) + } + + let multiples = this.multipleStatus.data + let checked = false + let multiplesStatus = -1 + if (this.range) { + if (multiples) { + multiplesStatus = multiples.findIndex((item) => { + return this.dateEqual(item, nowDate) + }) + } + if (multiplesStatus !== -1) { + checked = true + } + } + + let data = { + fullDate: nowDate, + year: full.year, + date: i, + multiple: this.range ? checked : false, + month: full.month, + lunar: this.getlunar(full.year, full.month, i), + disable: !disableBefore || !disableAfter, + isDay + } + if (info) { + data.extraInfo = info + } + + dateArr.push(data) + } + return dateArr + } + /** + * 获取下月天数 + */ + _getNextMonthDays(surplus, full) { + let dateArr = [] + for (let i = 1; i < surplus + 1; i++) { + dateArr.push({ + date: i, + month: Number(full.month) + 1, + lunar: this.getlunar(full.year, Number(full.month) + 1, i), + disable: true + }) + } + return dateArr + } + /** + * 设置日期 + * @param {Object} date + */ + setDate(date) { + this._getWeek(date) + } + /** + * 获取当前日期详情 + * @param {Object} date + */ + getInfo(date) { + if (!date) { + date = new Date() + } + const dateInfo = this.canlender.find(item => item.fullDate === this.getDate(date).fullDate) + return dateInfo + } + + /** + * 比较时间大小 + */ + dateCompare(startDate, endDate) { + // 计算截止时间 + startDate = new Date(startDate.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + endDate = new Date(endDate.replace('-', '/').replace('-', '/')) + if (startDate <= endDate) { + return true + } else { + return false + } + } + + /** + * 比较时间是否相等 + */ + dateEqual(before, after) { + // 计算截止时间 + before = new Date(before.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + after = new Date(after.replace('-', '/').replace('-', '/')) + if (before.getTime() - after.getTime() === 0) { + return true + } else { + return false + } + } + + + /** + * 获取日期范围内所有日期 + * @param {Object} begin + * @param {Object} end + */ + geDateAll(begin, end) { + var arr = [] + var ab = begin.split('-') + var ae = end.split('-') + var db = new Date() + db.setFullYear(ab[0], ab[1] - 1, ab[2]) + var de = new Date() + de.setFullYear(ae[0], ae[1] - 1, ae[2]) + var unixDb = db.getTime() - 24 * 60 * 60 * 1000 + var unixDe = de.getTime() - 24 * 60 * 60 * 1000 + for (var k = unixDb; k <= unixDe;) { + k = k + 24 * 60 * 60 * 1000 + arr.push(this.getDate(new Date(parseInt(k))).fullDate) + } + return arr + } + /** + * 计算阴历日期显示 + */ + getlunar(year, month, date) { + return CALENDAR.solar2lunar(year, month, date) + } + /** + * 设置打点 + */ + setSelectInfo(data, value) { + this.selected = value + this._getWeek(data) + } + + /** + * 获取多选状态 + */ + setMultiple(fullDate) { + let { + before, + after + } = this.multipleStatus + if (!this.range) return + if (before && after) { + this.multipleStatus.before = '' + this.multipleStatus.after = '' + this.multipleStatus.data = [] + this._getWeek(fullDate) + } else { + if (!before) { + this.multipleStatus.before = fullDate + } else { + this.multipleStatus.after = fullDate + if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before); + } + this._getWeek(fullDate) + } + } + } + + /** + * 获取每周数据 + * @param {Object} dateData + */ + _getWeek(dateData) { + const { + fullDate, + year, + month, + date, + day + } = this.getDate(dateData) + let firstDay = new Date(year, month - 1, 1).getDay() + let currentDay = new Date(year, month, 0).getDate() + let dates = { + lastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), // 上个月末尾几天 + currentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), // 本月天数 + nextMonthDays: [], // 下个月开始几天 + weeks: [] + } + let canlender = [] + const surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length) + dates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData)) + canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays) + let weeks = {} + // 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天 + for (let i = 0; i < canlender.length; i++) { + if (i % 7 === 0) { + weeks[parseInt(i / 7)] = new Array(7) + } + weeks[parseInt(i / 7)][i % 7] = canlender[i] + } + this.canlender = canlender + this.weeks = weeks + } + + //静态方法 + // static init(date) { + // if (!this.instance) { + // this.instance = new Calendar(date); + // } + // return this.instance; + // } +} + + +export default Calendar diff --git a/components/uni-card/uni-card.vue b/components/uni-card/uni-card.vue new file mode 100644 index 0000000..f7dc0b7 --- /dev/null +++ b/components/uni-card/uni-card.vue @@ -0,0 +1,403 @@ + + + + + \ No newline at end of file diff --git a/components/uni-collapse-item/uni-collapse-item.vue b/components/uni-collapse-item/uni-collapse-item.vue new file mode 100644 index 0000000..aa7f7e3 --- /dev/null +++ b/components/uni-collapse-item/uni-collapse-item.vue @@ -0,0 +1,217 @@ + + + + + \ No newline at end of file diff --git a/components/uni-collapse/uni-collapse.vue b/components/uni-collapse/uni-collapse.vue new file mode 100644 index 0000000..1457eb4 --- /dev/null +++ b/components/uni-collapse/uni-collapse.vue @@ -0,0 +1,59 @@ + + + \ No newline at end of file diff --git a/components/uni-combox/uni-combox.vue b/components/uni-combox/uni-combox.vue new file mode 100644 index 0000000..2f80816 --- /dev/null +++ b/components/uni-combox/uni-combox.vue @@ -0,0 +1,212 @@ + + + + + \ No newline at end of file diff --git a/components/uni-countdown/uni-countdown.vue b/components/uni-countdown/uni-countdown.vue new file mode 100644 index 0000000..3f8060d --- /dev/null +++ b/components/uni-countdown/uni-countdown.vue @@ -0,0 +1,200 @@ + + + \ No newline at end of file diff --git a/components/uni-drawer/uni-drawer.vue b/components/uni-drawer/uni-drawer.vue new file mode 100644 index 0000000..feaae3f --- /dev/null +++ b/components/uni-drawer/uni-drawer.vue @@ -0,0 +1,170 @@ + + + + + \ No newline at end of file diff --git a/components/uni-fab/uni-fab.vue b/components/uni-fab/uni-fab.vue new file mode 100644 index 0000000..9bc4a10 --- /dev/null +++ b/components/uni-fab/uni-fab.vue @@ -0,0 +1,428 @@ + + + + + \ No newline at end of file diff --git a/components/uni-fav/uni-fav.vue b/components/uni-fav/uni-fav.vue new file mode 100644 index 0000000..58e94b4 --- /dev/null +++ b/components/uni-fav/uni-fav.vue @@ -0,0 +1,136 @@ + + + + + \ No newline at end of file diff --git a/components/uni-goods-nav/uni-goods-nav.vue b/components/uni-goods-nav/uni-goods-nav.vue new file mode 100644 index 0000000..b80c7b8 --- /dev/null +++ b/components/uni-goods-nav/uni-goods-nav.vue @@ -0,0 +1,230 @@ + + + + + \ No newline at end of file diff --git a/components/uni-grid-item/uni-grid-item copy.vue b/components/uni-grid-item/uni-grid-item copy.vue new file mode 100644 index 0000000..8395a4c --- /dev/null +++ b/components/uni-grid-item/uni-grid-item copy.vue @@ -0,0 +1,167 @@ + + + + + \ No newline at end of file diff --git a/components/uni-grid-item/uni-grid-item.vue b/components/uni-grid-item/uni-grid-item.vue new file mode 100644 index 0000000..5a7a7f5 --- /dev/null +++ b/components/uni-grid-item/uni-grid-item.vue @@ -0,0 +1,125 @@ + + + + + \ No newline at end of file diff --git a/components/uni-grid/uni-grid.vue b/components/uni-grid/uni-grid.vue new file mode 100644 index 0000000..4b2c65f --- /dev/null +++ b/components/uni-grid/uni-grid.vue @@ -0,0 +1,142 @@ + + + + + \ No newline at end of file diff --git a/components/uni-icons/icons.js b/components/uni-icons/icons.js new file mode 100644 index 0000000..5242f22 --- /dev/null +++ b/components/uni-icons/icons.js @@ -0,0 +1,132 @@ +export default { + "pulldown": "\ue588", + "refreshempty": "\ue461", + "back": "\ue471", + "forward": "\ue470", + "more": "\ue507", + "more-filled": "\ue537", + "scan": "\ue612", + "qq": "\ue264", + "weibo": "\ue260", + "weixin": "\ue261", + "pengyouquan": "\ue262", + "loop": "\ue565", + "refresh": "\ue407", + "refresh-filled": "\ue437", + "arrowthindown": "\ue585", + "arrowthinleft": "\ue586", + "arrowthinright": "\ue587", + "arrowthinup": "\ue584", + "undo-filled": "\ue7d6", + "undo": "\ue406", + "redo": "\ue405", + "redo-filled": "\ue7d9", + "bars": "\ue563", + "chatboxes": "\ue203", + "camera": "\ue301", + "chatboxes-filled": "\ue233", + "camera-filled": "\ue7ef", + "cart-filled": "\ue7f4", + "cart": "\ue7f5", + "checkbox-filled": "\ue442", + "checkbox": "\ue7fa", + "arrowleft": "\ue582", + "arrowdown": "\ue581", + "arrowright": "\ue583", + "smallcircle-filled": "\ue801", + "arrowup": "\ue580", + "circle": "\ue411", + "eye-filled": "\ue568", + "eye-slash-filled": "\ue822", + "eye-slash": "\ue823", + "eye": "\ue824", + "flag-filled": "\ue825", + "flag": "\ue508", + "gear-filled": "\ue532", + "reload": "\ue462", + "gear": "\ue502", + "hand-thumbsdown-filled": "\ue83b", + "hand-thumbsdown": "\ue83c", + "hand-thumbsup-filled": "\ue83d", + "heart-filled": "\ue83e", + "hand-thumbsup": "\ue83f", + "heart": "\ue840", + "home": "\ue500", + "info": "\ue504", + "home-filled": "\ue530", + "info-filled": "\ue534", + "circle-filled": "\ue441", + "chat-filled": "\ue847", + "chat": "\ue263", + "mail-open-filled": "\ue84d", + "email-filled": "\ue231", + "mail-open": "\ue84e", + "email": "\ue201", + "checkmarkempty": "\ue472", + "list": "\ue562", + "locked-filled": "\ue856", + "locked": "\ue506", + "map-filled": "\ue85c", + "map-pin": "\ue85e", + "map-pin-ellipse": "\ue864", + "map": "\ue364", + "minus-filled": "\ue440", + "mic-filled": "\ue332", + "minus": "\ue410", + "micoff": "\ue360", + "mic": "\ue302", + "clear": "\ue434", + "smallcircle": "\ue868", + "close": "\ue404", + "closeempty": "\ue460", + "paperclip": "\ue567", + "paperplane": "\ue503", + "paperplane-filled": "\ue86e", + "person-filled": "\ue131", + "contact-filled": "\ue130", + "person": "\ue101", + "contact": "\ue100", + "images-filled": "\ue87a", + "phone": "\ue200", + "images": "\ue87b", + "image": "\ue363", + "image-filled": "\ue877", + "location-filled": "\ue333", + "location": "\ue303", + "plus-filled": "\ue439", + "plus": "\ue409", + "plusempty": "\ue468", + "help-filled": "\ue535", + "help": "\ue505", + "navigate-filled": "\ue884", + "navigate": "\ue501", + "mic-slash-filled": "\ue892", + "search": "\ue466", + "settings": "\ue560", + "sound": "\ue590", + "sound-filled": "\ue8a1", + "spinner-cycle": "\ue465", + "download-filled": "\ue8a4", + "personadd-filled": "\ue132", + "videocam-filled": "\ue8af", + "personadd": "\ue102", + "upload": "\ue402", + "upload-filled": "\ue8b1", + "starhalf": "\ue463", + "star-filled": "\ue438", + "star": "\ue408", + "trash": "\ue401", + "phone-filled": "\ue230", + "compose": "\ue400", + "videocam": "\ue300", + "trash-filled": "\ue8dc", + "download": "\ue403", + "chatbubble-filled": "\ue232", + "chatbubble": "\ue202", + "cloud-download": "\ue8e4", + "cloud-upload-filled": "\ue8e5", + "cloud-upload": "\ue8e6", + "cloud-download-filled": "\ue8e9", + "headphones":"\ue8bf", + "shop":"\ue609" +} diff --git a/components/uni-icons/uni-icons.vue b/components/uni-icons/uni-icons.vue new file mode 100644 index 0000000..23099fe --- /dev/null +++ b/components/uni-icons/uni-icons.vue @@ -0,0 +1,67 @@ + + + + + \ No newline at end of file diff --git a/components/uni-indexed-list/uni-indexed-list-item.vue b/components/uni-indexed-list/uni-indexed-list-item.vue new file mode 100644 index 0000000..a94868a --- /dev/null +++ b/components/uni-indexed-list/uni-indexed-list-item.vue @@ -0,0 +1,142 @@ + + + + + \ No newline at end of file diff --git a/components/uni-indexed-list/uni-indexed-list.vue b/components/uni-indexed-list/uni-indexed-list.vue new file mode 100644 index 0000000..7a98be6 --- /dev/null +++ b/components/uni-indexed-list/uni-indexed-list.vue @@ -0,0 +1,317 @@ + + + \ No newline at end of file diff --git a/components/uni-link/uni-link.vue b/components/uni-link/uni-link.vue new file mode 100644 index 0000000..804b7e5 --- /dev/null +++ b/components/uni-link/uni-link.vue @@ -0,0 +1,72 @@ + + + + + \ No newline at end of file diff --git a/components/uni-list-item/uni-list-item.vue b/components/uni-list-item/uni-list-item.vue new file mode 100644 index 0000000..1b986d8 --- /dev/null +++ b/components/uni-list-item/uni-list-item.vue @@ -0,0 +1,270 @@ + + + + + \ No newline at end of file diff --git a/components/uni-list/uni-list.vue b/components/uni-list/uni-list.vue new file mode 100644 index 0000000..f4db875 --- /dev/null +++ b/components/uni-list/uni-list.vue @@ -0,0 +1,78 @@ + + + + \ No newline at end of file diff --git a/components/uni-list/uni-refresh.vue b/components/uni-list/uni-refresh.vue new file mode 100644 index 0000000..8563709 --- /dev/null +++ b/components/uni-list/uni-refresh.vue @@ -0,0 +1,65 @@ + + + + + \ No newline at end of file diff --git a/components/uni-list/uni-refresh.wxs b/components/uni-list/uni-refresh.wxs new file mode 100644 index 0000000..818a6b7 --- /dev/null +++ b/components/uni-list/uni-refresh.wxs @@ -0,0 +1,87 @@ +var pullDown = { + threshold: 95, + maxHeight: 200, + callRefresh: 'onrefresh', + callPullingDown: 'onpullingdown', + refreshSelector: '.uni-refresh' +}; + +function ready(newValue, oldValue, ownerInstance, instance) { + var state = instance.getState() + state.canPullDown = newValue; + // console.log(newValue); +} + +function touchStart(e, instance) { + var state = instance.getState(); + state.refreshInstance = instance.selectComponent(pullDown.refreshSelector); + state.canPullDown = (state.refreshInstance != null && state.refreshInstance != undefined); + if (!state.canPullDown) { + return + } + + // console.log("touchStart"); + + state.height = 0; + state.touchStartY = e.touches[0].pageY || e.changedTouches[0].pageY; + state.refreshInstance.setStyle({ + 'height': 0 + }); + state.refreshInstance.callMethod("onchange", true); +} + +function touchMove(e, ownerInstance) { + var instance = e.instance; + var state = instance.getState(); + if (!state.canPullDown) { + return + } + + var oldHeight = state.height; + var endY = e.touches[0].pageY || e.changedTouches[0].pageY; + var height = endY - state.touchStartY; + if (height > pullDown.maxHeight) { + return; + } + + var refreshInstance = state.refreshInstance; + refreshInstance.setStyle({ + 'height': height + 'px' + }); + + height = height < pullDown.maxHeight ? height : pullDown.maxHeight; + state.height = height; + refreshInstance.callMethod(pullDown.callPullingDown, { + height: height + }); +} + +function touchEnd(e, ownerInstance) { + var state = e.instance.getState(); + if (!state.canPullDown) { + return + } + + state.refreshInstance.callMethod("onchange", false); + + var refreshInstance = state.refreshInstance; + if (state.height > pullDown.threshold) { + refreshInstance.callMethod(pullDown.callRefresh); + return; + } + + refreshInstance.setStyle({ + 'height': 0 + }); +} + +function propObserver(newValue, oldValue, instance) { + pullDown = newValue; +} + +module.exports = { + touchmove: touchMove, + touchstart: touchStart, + touchend: touchEnd, + propObserver: propObserver +} diff --git a/components/uni-load-more/uni-load-more.vue b/components/uni-load-more/uni-load-more.vue new file mode 100644 index 0000000..53ad880 --- /dev/null +++ b/components/uni-load-more/uni-load-more.vue @@ -0,0 +1,364 @@ + + + + + \ No newline at end of file diff --git a/components/uni-nav-bar/uni-nav-bar.vue b/components/uni-nav-bar/uni-nav-bar.vue new file mode 100644 index 0000000..bd75f44 --- /dev/null +++ b/components/uni-nav-bar/uni-nav-bar.vue @@ -0,0 +1,235 @@ + + + + + \ No newline at end of file diff --git a/components/uni-notice-bar/uni-notice-bar.vue b/components/uni-notice-bar/uni-notice-bar.vue new file mode 100644 index 0000000..1581eae --- /dev/null +++ b/components/uni-notice-bar/uni-notice-bar.vue @@ -0,0 +1,392 @@ + + + + + \ No newline at end of file diff --git a/components/uni-number-box/uni-number-box.vue b/components/uni-number-box/uni-number-box.vue new file mode 100644 index 0000000..dc25162 --- /dev/null +++ b/components/uni-number-box/uni-number-box.vue @@ -0,0 +1,197 @@ + + + \ No newline at end of file diff --git a/components/uni-pagination/uni-pagination.vue b/components/uni-pagination/uni-pagination.vue new file mode 100644 index 0000000..54ed303 --- /dev/null +++ b/components/uni-pagination/uni-pagination.vue @@ -0,0 +1,200 @@ + + + + + \ No newline at end of file diff --git a/components/uni-popup/message.js b/components/uni-popup/message.js new file mode 100644 index 0000000..ca42a20 --- /dev/null +++ b/components/uni-popup/message.js @@ -0,0 +1,29 @@ +export default { + created() { + if (this.type === 'message') { + // 获取自组件对象 + this.maskShow = false + this.children = null + } + }, + created() { + if (this.type === 'message') { + // 不显示遮罩 + this.maskShow = false + // 获取子组件对象 + this.childrenMsg = null + } + }, + methods: { + customOpen() { + if (this.childrenMsg) { + this.childrenMsg.open() + } + }, + customClose() { + if (this.childrenMsg) { + this.childrenMsg.close() + } + } + } +} diff --git a/components/uni-popup/popup.js b/components/uni-popup/popup.js new file mode 100644 index 0000000..04176e7 --- /dev/null +++ b/components/uni-popup/popup.js @@ -0,0 +1,25 @@ +import message from './message.js'; +// 定义 type 类型:弹出类型:top/bottom/center +const config = { + // 顶部弹出 + top:'top', + // 底部弹出 + bottom:'bottom', + // 居中弹出 + center:'center', + // 消息提示 + message:'top', + // 对话框 + dialog:'center', + // 分享 + share:'bottom', +} + +export default { + data(){ + return { + config:config + } + }, + mixins: [message], +} diff --git a/components/uni-popup/uni-popup-dialog.vue b/components/uni-popup/uni-popup-dialog.vue new file mode 100644 index 0000000..13b6a8c --- /dev/null +++ b/components/uni-popup/uni-popup-dialog.vue @@ -0,0 +1,243 @@ + + + + + \ No newline at end of file diff --git a/components/uni-popup/uni-popup-message.vue b/components/uni-popup/uni-popup-message.vue new file mode 100644 index 0000000..e67387f --- /dev/null +++ b/components/uni-popup/uni-popup-message.vue @@ -0,0 +1,116 @@ + + + + \ No newline at end of file diff --git a/components/uni-popup/uni-popup-share.vue b/components/uni-popup/uni-popup-share.vue new file mode 100644 index 0000000..b2a66b1 --- /dev/null +++ b/components/uni-popup/uni-popup-share.vue @@ -0,0 +1,168 @@ + + + + \ No newline at end of file diff --git a/components/uni-popup/uni-popup.vue b/components/uni-popup/uni-popup.vue new file mode 100644 index 0000000..67c03bb --- /dev/null +++ b/components/uni-popup/uni-popup.vue @@ -0,0 +1,293 @@ + + + + \ No newline at end of file diff --git a/components/uni-rate/uni-rate.vue b/components/uni-rate/uni-rate.vue new file mode 100644 index 0000000..7259f85 --- /dev/null +++ b/components/uni-rate/uni-rate.vue @@ -0,0 +1,157 @@ + + + + + \ No newline at end of file diff --git a/components/uni-search-bar/uni-search-bar.vue b/components/uni-search-bar/uni-search-bar.vue new file mode 100644 index 0000000..59a49d0 --- /dev/null +++ b/components/uni-search-bar/uni-search-bar.vue @@ -0,0 +1,203 @@ + + + + + \ No newline at end of file diff --git a/components/uni-section/uni-section.vue b/components/uni-section/uni-section.vue new file mode 100644 index 0000000..cae2962 --- /dev/null +++ b/components/uni-section/uni-section.vue @@ -0,0 +1,137 @@ + + + + \ No newline at end of file diff --git a/components/uni-segmented-control/uni-segmented-control.vue b/components/uni-segmented-control/uni-segmented-control.vue new file mode 100644 index 0000000..0ec7a3a --- /dev/null +++ b/components/uni-segmented-control/uni-segmented-control.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/components/uni-status-bar/uni-status-bar.vue b/components/uni-status-bar/uni-status-bar.vue new file mode 100644 index 0000000..34a171f --- /dev/null +++ b/components/uni-status-bar/uni-status-bar.vue @@ -0,0 +1,26 @@ + + + + + \ No newline at end of file diff --git a/components/uni-steps/uni-steps.vue b/components/uni-steps/uni-steps.vue new file mode 100644 index 0000000..bab47bc --- /dev/null +++ b/components/uni-steps/uni-steps.vue @@ -0,0 +1,253 @@ + + + + + \ No newline at end of file diff --git a/components/uni-swipe-action-item/bindingx.js b/components/uni-swipe-action-item/bindingx.js new file mode 100644 index 0000000..59c592e --- /dev/null +++ b/components/uni-swipe-action-item/bindingx.js @@ -0,0 +1,245 @@ +const BindingX = uni.requireNativePlugin('bindingx'); +const dom = uni.requireNativePlugin('dom'); +const animation = uni.requireNativePlugin('animation'); + +export default { + data() { + return { + right: 0, + button: [], + preventGesture: false + } + }, + + watch: { + show(newVal) { + if (!this.position || JSON.stringify(this.position) === '{}') return; + if (this.autoClose) return + if (this.isInAnimation) return + if (newVal) { + this.open() + } else { + this.close() + } + }, + }, + created() { + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.boxSelector = this.getEl(this.$refs['selector-box-hock']); + this.selector = this.getEl(this.$refs['selector-content-hock']); + this.buttonSelector = this.getEl(this.$refs['selector-button-hock']); + this.position = {} + this.x = 0 + setTimeout(() => { + this.getSelectorQuery() + }, 200) + }, + beforeDestroy() { + if (this.timing) { + BindingX.unbind({ + token: this.timing.token, + eventType: 'timing' + }) + } + if (this.eventpan) { + BindingX.unbind({ + token: this.eventpan.token, + eventType: 'pan' + }) + } + this.swipeaction.children.forEach((item, index) => { + if (item === this) { + this.swipeaction.children.splice(index, 1) + } + }) + }, + methods: { + onClick(index, item) { + this.$emit('click', { + content: item, + index + }) + }, + touchstart(e) { + if (this.isInAnimation) return + if (this.stop) return + this.stop = true + if (this.autoClose) { + this.swipeaction.closeOther(this) + } + let endWidth = this.right + let boxStep = `(x+${this.x})` + let pageX = `${boxStep}> ${-endWidth} && ${boxStep} < 0?${boxStep}:(x+${this.x} < 0? ${-endWidth}:0)` + + let props = [{ + element: this.selector, + property: 'transform.translateX', + expression: pageX + }] + + let left = 0 + for (let i = 0; i < this.options.length; i++) { + let buttonSelectors = this.getEl(this.$refs['button-hock'][i]); + if (this.button.length === 0 || !this.button[i] || !this.button[i].width) return + let moveMix = endWidth - left + left += this.button[i].width + let step = `(${this.x}+x)/${endWidth}` + let moveX = `(${step}) * ${moveMix}` + let pageButtonX = `${moveX}&& (x+${this.x} > ${-endWidth})?${moveX}:${-moveMix}` + props.push({ + element: buttonSelectors, + property: 'transform.translateX', + expression: pageButtonX + }) + } + + this.eventpan = this._bind(this.boxSelector, props, 'pan', (e) => { + if (e.state === 'end') { + this.x = e.deltaX + this.x; + if (this.x < -endWidth) { + this.x = -endWidth + } + if (this.x > 0) { + this.x = 0 + } + this.stop = false + this.bindTiming(); + } + }) + }, + touchend(e) { + this.$nextTick(() => { + if (this.isopen && !this.isDrag && !this.isInAnimation) { + this.close() + } + }) + }, + bindTiming() { + if (this.isopen) { + this.move(this.x, -this.right) + } else { + this.move(this.x, -40) + } + }, + move(left, value) { + if (left >= value) { + this.close() + } else { + this.open() + } + }, + /** + * 开启swipe + */ + open() { + this.animation(true) + }, + /** + * 关闭swipe + */ + close() { + this.animation(false) + }, + /** + * 开启关闭动画 + * @param {Object} type + */ + animation(type) { + this.isDrag = true + let endWidth = this.right + let time = 200 + this.isInAnimation = true; + + let exit = `t>${time}`; + let translate_x_expression = `easeOutExpo(t,${this.x},${type?(-endWidth-this.x):(-this.x)},${time})` + let props = [{ + element: this.selector, + property: 'transform.translateX', + expression: translate_x_expression + }] + + let left = 0 + for (let i = 0; i < this.options.length; i++) { + let buttonSelectors = this.getEl(this.$refs['button-hock'][i]); + if (this.button.length === 0 || !this.button[i] || !this.button[i].width) return + let moveMix = endWidth - left + left += this.button[i].width + let step = `${this.x}/${endWidth}` + let moveX = `(${step}) * ${moveMix}` + let pageButtonX = `easeOutExpo(t,${moveX},${type ? -moveMix + '-' + moveX: 0 + '-' + moveX},${time})` + props.push({ + element: buttonSelectors, + property: 'transform.translateX', + expression: pageButtonX + }) + } + + this.timing = BindingX.bind({ + eventType: 'timing', + exitExpression: exit, + props: props + }, (e) => { + if (e.state === 'end' || e.state === 'exit') { + this.x = type ? -endWidth : 0 + this.isInAnimation = false; + + this.isopen = this.isopen || false + if (this.isopen !== type) { + this.$emit('change', type) + } + this.isopen = type + this.isDrag = false + } + }); + }, + /** + * 绑定 BindingX + * @param {Object} anchor + * @param {Object} props + * @param {Object} fn + */ + _bind(anchor, props, eventType, fn) { + return BindingX.bind({ + anchor, + eventType, + props + }, (e) => { + typeof(fn) === 'function' && fn(e) + }); + }, + /** + * 获取ref + * @param {Object} el + */ + getEl(el) { + return el.ref + }, + /** + * 获取节点信息 + */ + getSelectorQuery() { + dom.getComponentRect(this.$refs['selector-content-hock'], (data) => { + if (this.position.content) return + this.position.content = data.size + }) + for (let i = 0; i < this.options.length; i++) { + dom.getComponentRect(this.$refs['button-hock'][i], (data) => { + if (!this.button) { + this.button = [] + } + if (this.options.length === this.button.length) return + this.button.push(data.size) + this.right += data.size.width + if (this.autoClose) return + if (this.show) { + this.open() + } + }) + } + } + } +} diff --git a/components/uni-swipe-action-item/index.wxs b/components/uni-swipe-action-item/index.wxs new file mode 100644 index 0000000..79c6f9e --- /dev/null +++ b/components/uni-swipe-action-item/index.wxs @@ -0,0 +1,204 @@ +/** + * 监听页面内值的变化,主要用于动态开关swipe-action + * @param {Object} newValue + * @param {Object} oldValue + * @param {Object} ownerInstance + * @param {Object} instance + */ +function sizeReady(newValue, oldValue, ownerInstance, instance) { + var state = instance.getState() + state.position = JSON.parse(newValue) + if (!state.position || state.position.length === 0) return + var show = state.position[0].show + state.left = state.left || state.position[0].left; + // 通过用户变量,开启或关闭 + if (show) { + openState(true, instance, ownerInstance) + } else { + openState(false, instance, ownerInstance) + } +} + +/** + * 开始触摸操作 + * @param {Object} e + * @param {Object} ins + */ +function touchstart(e, ins) { + var instance = e.instance; + var state = instance.getState(); + var pageX = e.touches[0].pageX; + // 开始触摸时移除动画类 + instance.removeClass('ani'); + var owner = ins.selectAllComponents('.button-hock') + for (var i = 0; i < owner.length; i++) { + owner[i].removeClass('ani'); + } + // state.position = JSON.parse(instance.getDataset().position); + state.left = state.left || state.position[0].left; + // 获取最终按钮组的宽度 + state.width = pageX - state.left; + ins.callMethod('closeSwipe') +} + +/** + * 开始滑动操作 + * @param {Object} e + * @param {Object} ownerInstance + */ +function touchmove(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState() + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + + if (disabled) return + var pageX = e.touches[0].pageX; + move(pageX - state.width, instance, ownerInstance) +} + +/** + * 结束触摸操作 + * @param {Object} e + * @param {Object} ownerInstance + */ +function touchend(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState() + + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + + if (disabled) return + // 滑动过程中触摸结束,通过阙值判断是开启还是关闭 + // fixed by mehaotian 定时器解决点击按钮,touchend 触发比 click 事件时机早的问题 ,主要是 ios13 + moveDirection(state.left, -40, instance, ownerInstance) +} + +/** + * 设置移动距离 + * @param {Object} value + * @param {Object} instance + * @param {Object} ownerInstance + */ +function move(value, instance, ownerInstance) { + var state = instance.getState() + // 获取可滑动范围 + var x = Math.max(-state.position[1].width, Math.min((value), 0)); + state.left = x; + instance.setStyle({ + transform: 'translateX(' + x + 'px)', + '-webkit-transform': 'translateX(' + x + 'px)' + }) + // 折叠按钮动画 + buttonFold(x, instance, ownerInstance) +} + +/** + * 移动方向判断 + * @param {Object} left + * @param {Object} value + * @param {Object} ownerInstance + * @param {Object} ins + */ +function moveDirection(left, value, ins, ownerInstance) { + var state = ins.getState() + var position = state.position + var isopen = state.isopen + if (!position[1].width) { + openState(false, ins, ownerInstance) + return + } + // 如果已经是打开状态,进行判断是否关闭,还是保留打开状态 + if (isopen) { + if (-left <= position[1].width) { + openState(false, ins, ownerInstance) + } else { + openState(true, ins, ownerInstance) + } + return + } + // 如果是关闭状态,进行判断是否打开,还是保留关闭状态 + if (left <= value) { + openState(true, ins, ownerInstance) + } else { + openState(false, ins, ownerInstance) + } +} + +/** + * 设置按钮移动距离 + * @param {Object} value + * @param {Object} instance + * @param {Object} ownerInstance + */ +function buttonFold(value, instance, ownerInstance) { + var ins = ownerInstance.selectAllComponents('.button-hock'); + var state = instance.getState(); + var position = state.position; + var arr = []; + var w = 0; + for (var i = 0; i < ins.length; i++) { + if (!ins[i].getDataset().button) return + var btnData = JSON.parse(ins[i].getDataset().button) + + // fix by mehaotian TODO 在 app-vue 中,字符串转对象,需要转两次,这里先这么兼容 + if (typeof(btnData) === 'string') { + btnData = JSON.parse(btnData) + } + + var button = btnData[i] && btnData[i].width || 0 + w += button + arr.push(-w) + // 动态计算按钮组每个按钮的折叠动画移动距离 + var distance = arr[i - 1] + value * (arr[i - 1] / position[1].width) + if (i != 0) { + ins[i].setStyle({ + transform: 'translateX(' + distance + 'px)', + }) + } + } +} + +/** + * 开启状态 + * @param {Boolean} type + * @param {Object} ins + * @param {Object} ownerInstance + */ +function openState(type, ins, ownerInstance) { + var state = ins.getState() + var position = state.position + if (state.isopen === undefined) { + state.isopen = false + } + // 只有状态有改变才会通知页面改变状态 + if (state.isopen !== type) { + // 通知页面,已经打开 + ownerInstance.callMethod('change', { + open: type + }) + } + // 设置打开和移动状态 + state.isopen = type + + + // 添加动画类 + ins.addClass('ani'); + var owner = ownerInstance.selectAllComponents('.button-hock') + for (var i = 0; i < owner.length; i++) { + owner[i].addClass('ani'); + } + // 设置最终移动位置 + move(type ? -position[1].width : 0, ins, ownerInstance) + +} + +module.exports = { + sizeReady: sizeReady, + touchstart: touchstart, + touchmove: touchmove, + touchend: touchend +} diff --git a/components/uni-swipe-action-item/mpalipay.js b/components/uni-swipe-action-item/mpalipay.js new file mode 100644 index 0000000..8537b24 --- /dev/null +++ b/components/uni-swipe-action-item/mpalipay.js @@ -0,0 +1,160 @@ +export default { + data() { + return { + isshow: false, + viewWidth: 0, + buttonWidth: 0, + disabledView: false, + x: 0, + transition: false + } + }, + watch: { + show(newVal) { + if (this.autoClose) return + if (newVal) { + this.open() + } else { + this.close() + } + }, + }, + created() { + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + beforeDestroy() { + this.swipeaction.children.forEach((item, index) => { + if (item === this) { + this.swipeaction.children.splice(index, 1) + } + }) + }, + mounted() { + this.isopen = false + this.transition = true + setTimeout(() => { + this.getQuerySelect() + }, 50) + + }, + methods: { + onClick(index, item) { + this.$emit('click', { + content: item, + index + }) + }, + touchstart(e) { + let { + pageX, + pageY + } = e.changedTouches[0] + this.transition = false + this.startX = pageX + if (this.autoClose) { + this.swipeaction.closeOther(this) + } + }, + touchmove(e) { + let { + pageX, + } = e.changedTouches[0] + this.slide = this.getSlide(pageX) + if (this.slide === 0) { + this.disabledView = false + } + + }, + touchend(e) { + this.stop = false + this.transition = true + if (this.isopen) { + if (this.moveX === -this.buttonWidth) { + this.close() + return + } + this.move() + } else { + if (this.moveX === 0) { + this.close() + return + } + this.move() + } + }, + open() { + this.x = this.moveX + this.$nextTick(() => { + this.x = -this.buttonWidth + this.moveX = this.x + + if(!this.isopen){ + this.isopen = true + this.$emit('change', true) + } + }) + }, + close() { + this.x = this.moveX + this.$nextTick(() => { + this.x = 0 + this.moveX = this.x + if(this.isopen){ + this.isopen = false + this.$emit('change', false) + } + }) + }, + move() { + if (this.slide === 0) { + this.open() + } else { + this.close() + } + }, + onChange(e) { + let x = e.detail.x + this.moveX = x + if (x >= this.buttonWidth) { + this.disabledView = true + this.$nextTick(() => { + this.x = this.buttonWidth + }) + } + }, + getSlide(x) { + if (x >= this.startX) { + this.startX = x + return 1 + } else { + this.startX = x + return 0 + } + + }, + getQuerySelect() { + const query = uni.createSelectorQuery().in(this); + query.selectAll('.viewWidth-hook').boundingClientRect(data => { + + this.viewWidth = data[0].width + this.buttonWidth = data[1].width + this.transition = false + this.$nextTick(() => { + this.transition = true + }) + + if (!this.buttonWidth) { + this.disabledView = true + } + + if (this.autoClose) return + if (this.show) { + this.open() + } + }).exec(); + + } + } +} diff --git a/components/uni-swipe-action-item/mpother.js b/components/uni-swipe-action-item/mpother.js new file mode 100644 index 0000000..dd2e03b --- /dev/null +++ b/components/uni-swipe-action-item/mpother.js @@ -0,0 +1,158 @@ +// #ifdef APP-NVUE +const dom = weex.requireModule('dom'); +// #endif +export default { + data() { + return { + uniShow: false, + left: 0 + } + }, + computed: { + moveLeft() { + return `translateX(${this.left}px)` + } + }, + watch: { + show(newVal) { + if (!this.position || JSON.stringify(this.position) === '{}') return; + if (this.autoClose) return + if (newVal) { + this.$emit('change', true) + this.open() + } else { + this.$emit('change', false) + this.close() + } + } + }, + mounted() { + this.position = {} + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + setTimeout(() => { + this.getSelectorQuery() + }, 100) + }, + beforeDestoy() { + this.swipeaction.children.forEach((item, index) => { + if (item === this) { + this.swipeaction.children.splice(index, 1) + } + }) + }, + methods: { + onClick(index, item) { + this.$emit('click', { + content: item, + index + }) + this.close() + }, + touchstart(e) { + const { + pageX + } = e.touches[0] + if (this.disabled) return + const left = this.position.content.left + if (this.autoClose) { + this.swipeaction.closeOther(this) + } + this.width = pageX - left + if (this.isopen) return + if (this.uniShow) { + this.uniShow = false + this.isopen = true + this.openleft = this.left + this.position.button.width + } + }, + touchmove(e, index) { + if (this.disabled) return + const { + pageX + } = e.touches[0] + this.setPosition(pageX) + }, + touchend() { + if (this.disabled) return + if (this.isopen) { + this.move(this.openleft, 0) + return + } + this.move(this.left, -40) + }, + setPosition(x, y) { + if (!this.position.button.width) { + return + } + // this.left = x - this.width + this.setValue(x - this.width) + }, + setValue(value) { + // 设置最大最小值 + this.left = Math.max(-this.position.button.width, Math.min(parseInt(value), 0)) + this.position.content.left = this.left + if (this.isopen) { + this.openleft = this.left + this.position.button.width + } + }, + move(left, value) { + if (left >= value) { + this.$emit('change', false) + this.close() + } else { + this.$emit('change', true) + this.open() + } + }, + open() { + this.uniShow = true + this.left = -this.position.button.width + this.setValue(-this.position.button.width) + }, + close() { + this.uniShow = true + this.setValue(0) + setTimeout(() => { + this.uniShow = false + this.isopen = false + }, 300) + }, + getSelectorQuery() { + // #ifndef APP-NVUE + const views = uni.createSelectorQuery().in(this); + views + .selectAll('.selector-query-hock') + .boundingClientRect(data => { + console.log(data) + this.position.content = data[1] + this.position.button = data[0] + if (this.autoClose) return + if (this.show) { + this.open() + } else { + this.close() + } + }) + .exec() + // #endif + // #ifdef APP-NVUE + dom.getComponentRect(this.$refs['selector-content-hock'], (data) => { + if (this.position.content) return + this.position.content = data.size + }) + dom.getComponentRect(this.$refs['selector-button-hock'], (data) => { + if (this.position.button) return + this.position.button = data.size + if (this.autoClose) return + if (this.show) { + this.open() + } else { + this.close() + } + }) + // #endif + } + } +} diff --git a/components/uni-swipe-action-item/mpwxs.js b/components/uni-swipe-action-item/mpwxs.js new file mode 100644 index 0000000..f521dac --- /dev/null +++ b/components/uni-swipe-action-item/mpwxs.js @@ -0,0 +1,118 @@ +export default { + data() { + return { + position: [], + button: [] + } + }, + computed: { + pos() { + return JSON.stringify(this.position) + }, + btn() { + return JSON.stringify(this.button) + } + }, + watch: { + show(newVal) { + if (this.autoClose) return + let valueObj = this.position[0] + if (!valueObj) { + this.init() + return + } + valueObj.show = newVal + this.$set(this.position, 0, valueObj) + } + }, + created() { + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.init() + + }, + beforeDestroy() { + this.swipeaction.children.forEach((item, index) => { + if (item === this) { + this.swipeaction.children.splice(index, 1) + } + }) + }, + methods: { + init() { + + setTimeout(() => { + this.getSize() + this.getButtonSize() + }, 50) + }, + closeSwipe(e) { + if (!this.autoClose) return + this.swipeaction.closeOther(this) + }, + + change(e) { + this.$emit('change', e.open) + let valueObj = this.position[0] + if (valueObj.show !== e.open) { + valueObj.show = e.open + this.$set(this.position, 0, valueObj) + } + }, + onClick(index, item) { + this.$emit('click', { + content: item, + index + }) + }, + appTouchStart(e) { + const { + clientX + } = e.changedTouches[0] + this.clientX = clientX + this.timestamp = new Date().getTime() + }, + appTouchEnd(e, index, item) { + const { + clientX + } = e.changedTouches[0] + // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 + let diff = Math.abs(this.clientX - clientX) + let time = (new Date().getTime()) - this.timestamp + console.log(diff); + if (diff < 40 && time < 300) { + // console.log('点击'); + this.$emit('click', { + content: item, + index + }) + } + }, + getSize() { + const views = uni.createSelectorQuery().in(this) + views + .selectAll('.selector-query-hock') + .boundingClientRect(data => { + if (this.autoClose) { + data[0].show = false + } else { + data[0].show = this.show + } + this.position = data + }) + .exec() + }, + getButtonSize() { + const views = uni.createSelectorQuery().in(this) + views + .selectAll('.button-hock') + .boundingClientRect(data => { + this.button = data + }) + .exec() + } + } +} diff --git a/components/uni-swipe-action-item/uni-swipe-action-item.vue b/components/uni-swipe-action-item/uni-swipe-action-item.vue new file mode 100644 index 0000000..591c471 --- /dev/null +++ b/components/uni-swipe-action-item/uni-swipe-action-item.vue @@ -0,0 +1,265 @@ + + + + \ No newline at end of file diff --git a/components/uni-swipe-action/uni-swipe-action.vue b/components/uni-swipe-action/uni-swipe-action.vue new file mode 100644 index 0000000..242ff5f --- /dev/null +++ b/components/uni-swipe-action/uni-swipe-action.vue @@ -0,0 +1,58 @@ + + + + + \ No newline at end of file diff --git a/components/uni-swiper-dot/uni-swiper-dot.vue b/components/uni-swiper-dot/uni-swiper-dot.vue new file mode 100644 index 0000000..8483e27 --- /dev/null +++ b/components/uni-swiper-dot/uni-swiper-dot.vue @@ -0,0 +1,198 @@ + + + + + \ No newline at end of file diff --git a/components/uni-tag/uni-tag.vue b/components/uni-tag/uni-tag.vue new file mode 100644 index 0000000..ab56b0a --- /dev/null +++ b/components/uni-tag/uni-tag.vue @@ -0,0 +1,226 @@ + + + + + \ No newline at end of file diff --git a/components/uni-title/uni-title.vue b/components/uni-title/uni-title.vue new file mode 100644 index 0000000..f1f356c --- /dev/null +++ b/components/uni-title/uni-title.vue @@ -0,0 +1,170 @@ + + + + + \ No newline at end of file diff --git a/components/uni-transition/uni-transition.vue b/components/uni-transition/uni-transition.vue new file mode 100644 index 0000000..228c660 --- /dev/null +++ b/components/uni-transition/uni-transition.vue @@ -0,0 +1,279 @@ + + + + + \ No newline at end of file diff --git a/main.js b/main.js new file mode 100755 index 0000000..b9fbd80 --- /dev/null +++ b/main.js @@ -0,0 +1,11 @@ +import Vue from 'vue' +import App from './App' + +Vue.config.productionTip = false + +App.mpType = 'app' + +const app = new Vue({ + ...App +}) +app.$mount() diff --git a/manifest.json b/manifest.json new file mode 100755 index 0000000..731baa4 --- /dev/null +++ b/manifest.json @@ -0,0 +1,50 @@ +{ + "name" : "yoho", + "appid" : "", + "description": "", + "versionName": "1.0.0", + "versionCode": "100", + "transformPx": true, + "app-plus": { + "nvueCompiler": "uni-app", + "compilerVersion": 3, + "modules": {}, + "distribute": { + "android": { + "permissions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "ios": {}, + "sdkConfigs": {} + } + }, + "quickapp": {}, + "mp-weixin": { + "appid": "", + "setting": { + "urlCheck": true + } + } +} \ No newline at end of file diff --git a/pages.json b/pages.json new file mode 100755 index 0000000..31e0288 --- /dev/null +++ b/pages.json @@ -0,0 +1,36 @@ +{ + "pages": [{ + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "测试项目" + } + }, { + "path": "pages/test/index", + "style": { + "navigationBarTitleText": "test项目" + } + }], + "globalStyle": { + "navigationBarTextStyle": "white", + "navigationBarTitleText": "uni-app", + "navigationBarBackgroundColor": "#007AFF", + "backgroundColor": "#FFFFFF" + }, + "tabBar": { + "color": "#7A7E83", + "selectedColor": "#007aff", + "borderStyle": "black", + "backgroundColor": "#ffffff", + "list": [{ + "pagePath": "pages/index/index", + "iconPath": "static/image/component.png", + "selectedIconPath": "static/image/componentHL.png", + "text": "一起玩" + }, { + "pagePath": "pages/test/index", + "iconPath": "static/image/api.png", + "selectedIconPath": "static/image/apiHL.png", + "text": "我的" + }] + } +} diff --git a/pages/index/index.vue b/pages/index/index.vue new file mode 100755 index 0000000..a2c688f --- /dev/null +++ b/pages/index/index.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/pages/test/index.vue b/pages/test/index.vue new file mode 100644 index 0000000..647c3db --- /dev/null +++ b/pages/test/index.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/static/image/api.png b/static/image/api.png new file mode 100644 index 0000000..58f93e1 Binary files /dev/null and b/static/image/api.png differ diff --git a/static/image/apiHL.png b/static/image/apiHL.png new file mode 100644 index 0000000..f8cbd7d Binary files /dev/null and b/static/image/apiHL.png differ diff --git a/static/image/apiIndex.png b/static/image/apiIndex.png new file mode 100644 index 0000000..890dba5 Binary files /dev/null and b/static/image/apiIndex.png differ diff --git a/static/image/component.png b/static/image/component.png new file mode 100644 index 0000000..fbb116d Binary files /dev/null and b/static/image/component.png differ diff --git a/static/image/componentHL.png b/static/image/componentHL.png new file mode 100644 index 0000000..31f83a0 Binary files /dev/null and b/static/image/componentHL.png differ diff --git a/static/image/errImage.jpeg b/static/image/errImage.jpeg new file mode 100644 index 0000000..b83cae7 Binary files /dev/null and b/static/image/errImage.jpeg differ diff --git a/static/image/extui.png b/static/image/extui.png new file mode 100644 index 0000000..7508e08 Binary files /dev/null and b/static/image/extui.png differ diff --git a/static/image/extuiHL.png b/static/image/extuiHL.png new file mode 100644 index 0000000..612b499 Binary files /dev/null and b/static/image/extuiHL.png differ diff --git a/static/image/temp/timg_1.jpeg b/static/image/temp/timg_1.jpeg new file mode 100644 index 0000000..54fc21a Binary files /dev/null and b/static/image/temp/timg_1.jpeg differ diff --git a/static/image/temp/timg_10.jpeg b/static/image/temp/timg_10.jpeg new file mode 100644 index 0000000..b697228 Binary files /dev/null and b/static/image/temp/timg_10.jpeg differ diff --git a/static/image/temp/timg_2.jpeg b/static/image/temp/timg_2.jpeg new file mode 100644 index 0000000..06438f0 Binary files /dev/null and b/static/image/temp/timg_2.jpeg differ diff --git a/static/image/temp/timg_3.jpeg b/static/image/temp/timg_3.jpeg new file mode 100644 index 0000000..eba1a6a Binary files /dev/null and b/static/image/temp/timg_3.jpeg differ diff --git a/static/image/temp/timg_4.jpeg b/static/image/temp/timg_4.jpeg new file mode 100644 index 0000000..8043e54 Binary files /dev/null and b/static/image/temp/timg_4.jpeg differ diff --git a/static/image/temp/timg_5.jpeg b/static/image/temp/timg_5.jpeg new file mode 100644 index 0000000..1885202 Binary files /dev/null and b/static/image/temp/timg_5.jpeg differ diff --git a/static/image/temp/timg_6.jpeg b/static/image/temp/timg_6.jpeg new file mode 100644 index 0000000..a828ae9 Binary files /dev/null and b/static/image/temp/timg_6.jpeg differ diff --git a/static/image/temp/timg_7.jpeg b/static/image/temp/timg_7.jpeg new file mode 100644 index 0000000..d7e59a1 Binary files /dev/null and b/static/image/temp/timg_7.jpeg differ diff --git a/static/image/temp/timg_8.jpeg b/static/image/temp/timg_8.jpeg new file mode 100644 index 0000000..cca97fb Binary files /dev/null and b/static/image/temp/timg_8.jpeg differ diff --git a/static/image/temp/timg_9.jpeg b/static/image/temp/timg_9.jpeg new file mode 100644 index 0000000..bc9dcfa Binary files /dev/null and b/static/image/temp/timg_9.jpeg differ diff --git a/static/image/template.png b/static/image/template.png new file mode 100644 index 0000000..409ec9b Binary files /dev/null and b/static/image/template.png differ diff --git a/static/image/templateHL.png b/static/image/templateHL.png new file mode 100644 index 0000000..4018448 Binary files /dev/null and b/static/image/templateHL.png differ diff --git a/static/uni.ttf b/static/uni.ttf new file mode 100755 index 0000000..60a1968 Binary files /dev/null and b/static/uni.ttf differ diff --git a/uni.scss b/uni.scss new file mode 100755 index 0000000..4cc2a1b --- /dev/null +++ b/uni.scss @@ -0,0 +1,76 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ + +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ + +/* 颜色变量 */ + +/* 行为相关颜色 */ +$uni-color-primary: #007aff; +$uni-color-success: #4cd964; +$uni-color-warning: #f0ad4e; +$uni-color-error: #dd524d; + +/* 文字基本颜色 */ +$uni-text-color:#333;//基本色 +$uni-text-color-inverse:#fff;//反色 +$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息 +$uni-text-color-placeholder: #808080; +$uni-text-color-disable:#c0c0c0; + +/* 背景颜色 */ +$uni-bg-color:#ffffff; +$uni-bg-color-grey:#f8f8f8; +$uni-bg-color-hover:#f1f1f1;//点击状态颜色 +$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 + +/* 边框颜色 */ +$uni-border-color:#e5e5e5; + +/* 尺寸变量 */ + +/* 文字尺寸 */ +$uni-font-size-sm:24rpx; +$uni-font-size-base:28rpx; +$uni-font-size-lg:32rpx; + +/* 图片尺寸 */ +$uni-img-size-sm:40rpx; +$uni-img-size-base:52rpx; +$uni-img-size-lg:80rpx; + +/* Border Radius */ +$uni-border-radius-sm: 4rpx; +$uni-border-radius-base: 6rpx; +$uni-border-radius-lg: 12rpx; +$uni-border-radius-circle: 50%; + +/* 水平间距 */ +$uni-spacing-row-sm: 10px; +$uni-spacing-row-base: 20rpx; +$uni-spacing-row-lg: 30rpx; + +/* 垂直间距 */ +$uni-spacing-col-sm: 8rpx; +$uni-spacing-col-base: 16rpx; +$uni-spacing-col-lg: 24rpx; + +/* 透明度 */ +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 + +/* 文章场景相关 */ +$uni-color-title: #2C405A; // 文章标题颜色 +$uni-font-size-title:40rpx; +$uni-color-subtitle: #555555; // 二级标题颜色 +$uni-font-size-subtitle:36rpx; +$uni-color-paragraph: #3F536E; // 文章段落颜色 +$uni-font-size-paragraph:30rpx; \ No newline at end of file diff --git a/unpackage/dist/dev/.automator/mp-weixin/.automator.json b/unpackage/dist/dev/.automator/mp-weixin/.automator.json new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map new file mode 100644 index 0000000..60a016a --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["uni-app:///main.js",null,"webpack:////Users/dengtongyu/code/uni-app/yoho/App.vue?139e","uni-app:///App.vue","webpack:////Users/dengtongyu/code/uni-app/yoho/App.vue?3fe2","webpack:////Users/dengtongyu/code/uni-app/yoho/App.vue?57f8"],"names":["Vue","config","productionTip","App","mpType","app","$mount"],"mappings":";;;;;;;;;iDAAA,wCAAmB;AACnB,uE;;AAEAA,aAAIC,MAAJ,CAAWC,aAAX,GAA2B,KAA3B;;AAEAC,aAAIC,MAAJ,GAAa,KAAb;;AAEA,IAAMC,GAAG,GAAG,IAAIL,YAAJ;AACRG,YADQ,EAAZ;;AAGA,UAAAE,GAAG,EAACC,MAAJ,G;;;;;;;;;;;;;;;;ACVA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACuD;AACL;AACa;;;AAG/D;AAC0M;AAC1M,gBAAgB,iNAAU;AAC1B,EAAE,yEAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACe,gF;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAmyB,CAAgB,iyBAAG,EAAC,C;;;;;;;;;;;;ACCvzB;AACA;AACA;AACA,GAHA;AAIA;AACA;AACA,GANA;AAOA;AACA;AACA,GATA,E;;;;;;;;;;;ACDA;AAAA;AAAA;AAAA;AAAooC,CAAgB,8lCAAG,EAAC,C;;;;;;;;;;ACAxpC;AACA,OAAO,KAAU,EAAE,kBAKd","file":"common/main.js","sourcesContent":["import 'uni-pages';import Vue from 'vue'\nimport App from './App'\n\nVue.config.productionTip = false\n\nApp.mpType = 'app'\n\nconst app = new Vue({\n\t...App\n})\napp.$mount()","var render, staticRenderFns, recyclableRender, components\nvar renderjs\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"App.vue\"\nexport default component.exports","import mod from \"-!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js&\"","\r\n\r\n\n","import mod from \"-!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--6-oneOf-1-2!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-3!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--6-oneOf-1-2!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-3!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=css&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1597675738936\n var cssReload = require(\"/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map new file mode 100644 index 0000000..cb9cd96 --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[null],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"common/runtime.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"common/runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map new file mode 100644 index 0000000..61ab44d --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/index.js?543d","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js?66fd","webpack:///(webpack)/buildin/global.js?cd00","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js?f0c5","webpack:////Users/dengtongyu/code/uni-app/yoho/static/image/errImage.jpeg?ae99"],"names":["_toString","Object","prototype","toString","hasOwnProperty","isFn","fn","isStr","str","isPlainObject","obj","call","hasOwn","key","noop","cached","cache","create","cachedFn","hit","camelizeRE","camelize","replace","_","c","toUpperCase","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","Array","isArray","dedupeHooks","hooks","i","length","indexOf","push","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","keys","forEach","removeInterceptorHook","addInterceptor","method","removeInterceptor","wrapperHook","data","isPromise","then","queue","promise","Promise","resolve","callback","wrapperOptions","options","name","oldCallback","callbackInterceptor","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","slice","scopedInterceptor","invokeApi","api","params","invoke","promiseInterceptor","catch","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","test","isSyncApi","isCallbackApi","handlePromise","err","shouldPromise","finally","constructor","value","reason","promisify","promiseApi","success","fail","complete","reject","assign","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","wx","getSystemInfoSync","platform","pixelRatio","windowWidth","upx2px","number","newDeviceWidth","Number","result","Math","floor","interceptors","baseApi","freeze","__proto__","previewImage","args","fromArgs","currentIndex","parseInt","current","isNaN","urls","len","filter","item","indicator","loop","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","windowHeight","protocols","getSystemInfo","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","error","arg1","arg2","apply","todoApis","TODOS","createTodoApi","todoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","Emitter","getUniEmitter","Vue","ctx","$on","arguments","$off","$once","$emit","eventApi","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","mpInstance","canIUse","oldTriggerEvent","triggerEvent","event","initHook","oldHook","PAGE_EVENT_HOOKS","initMocks","vm","mocks","$mp","mpType","mock","hasHook","vueOptions","default","extendOptions","super","mixins","find","mixin","initHooks","mpOptions","$vm","__call_hook","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","split","_$vueId","_$vuePid","initData","context","methods","e","process","VUE_APP_DEBUG","JSON","parse","stringify","__lifecycle_hooks__","PROP_TYPES","String","Boolean","createObserver","observer","newVal","oldVal","initBehaviors","initBehavior","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","type","Date","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","generic","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","target","detail","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","propPath","valuePath","vFor","isInteger","substr","__get_value","vForItem","vForKey","processEventExtra","extra","extraObj","__args__","getObjByArray","arr","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","dataset","comType","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","getContextVm","$parent","$options","$scope","handleEvent","eventOpts","eventOpt","eventsArray","charAt","isOnce","eventArray","handlerCtx","handler","Error","once","parseBaseApp","initRefs","store","$store","mpHost","beforeCreate","appOptions","onLaunch","app","globalData","_isMounted","findVmByVueId","vuePid","$children","childVm","parentVm","Behavior","isPage","route","initRelation","defineProperty","get","$refs","components","selectAllComponents","component","ref","forComponents","handleLink","parent","parseApp","createApp","App","parseBaseComponent","vueComponentOptions","multipleSlots","addGlobalClass","componentOptions","__file","lifetimes","attached","propsData","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","externalClasses","wxsCallMethods","callMethod","parseComponent","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","parsePage","createPage","createComponent","canIUseApi","apiName","uni","Proxy","set","uni$1"],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iCAAiC,EAAE;AACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,cAAc;;AAE3C;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;;AAEvC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,aAAoB;;AAErC;AACA;AACA;AACA,YAAY,aAAoB;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,oCAAoC;AACpC;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA,iCAAiC;AACjC,uCAAuC,wBAAwB,EAAE;AACjE,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,wCAAwC,EAAE;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,+BAA+B,oBAAoB,EAAE;AACrD;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,SAAS,qBAAqB;;AAExD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD,iCAAiC,sBAAsB;AACvD;AACA,kBAAkB;AAClB,MAAM,IAAqC;AAC3C;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAoB;AACtC;AACA;AACA,mBAAmB;AACnB;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,OAAO,UAAU,IAAqC;AACtD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,mBAAmB;AACtC,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,oCAAoC;AACpC;AACA,qCAAqC;AACrC;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAEQ;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,qCAAqC,EAAE;AACpF;;AAEA;AACA;AACA;;AAEA,oCAAoC,yCAAyC,EAAE;AAC/E;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,4BAA4B;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAsD,EAAE;AACtF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C,GAAG;AACH;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;;AAEA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,MAAM,EAEN;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,IAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,sBAAsB,mBAAmB;AACzC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC,uCAAuC;AACvC;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB,sCAAsC;AACtC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,4CAA4C,eAAe;AAC3D,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD;AAClD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,KAAK,UAAU,KAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qCAAqC,gEAAgE;AACrG;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,+BAA+B;AAC3D,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C,kDAAkD;AAClD;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sEAAsE;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,uFAAuF;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,+BAA+B;AAClC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,oBAAoB;AACxC,sBAAsB,4BAA4B;AAClD;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB;AACnB,yBAAyB;AACzB;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAA6C;AAC9E;AACA;AACA,6CAA6C,4CAA4C;;AAEzF;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG,MAAM,EAGN;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK,2CAA2C,8BAA8B,EAAE;;AAEhF;AACA,wCAAwC,OAAO;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAqC;AACrD;AACA,oBAAoB,SAAI;AACxB;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,EAAE;;AAEpD;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oBAAoB,KAAqC;AACzD;AACA,MAAM,SAAE;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,qBAAqB,+BAA+B;AACpD;AACA;AACA,GAAG;AACH,yBAAyB;AACzB;AACA,sBAAsB,iCAAiC;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU,IAAqC;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,sCAAsC;AACtC,8C;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,0CAA0C,2BAA2B,EAAE;AACvE,KAAK;AACL;AACA,0CAA0C,4BAA4B,EAAE;AACxE,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY,gFAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,gCAAgC,EAAE;AAC5E;;AAEA;AACA;AACA;AACA;AACA,WAAW,gFAAW;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,gFAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C;;AAE1C;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,KAAK;AACL;AACA;AACA,UAAU,gFAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qDAAqD,EAAE,SAAS;AACtH;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;ACx5LnB;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;AAAA;AAAA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClHA,kCAAkC,gsjB","file":"common/vendor.js","sourcesContent":["import Vue from 'vue';\n\nconst _toString = Object.prototype.toString;\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isFn (fn) {\n return typeof fn === 'function'\n}\n\nfunction isStr (str) {\n return typeof str === 'string'\n}\n\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\nfunction noop () {}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n const cache = Object.create(null);\n return function cachedFn (str) {\n const hit = cache[str];\n return hit || (cache[str] = fn(str))\n }\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cached((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\n});\n\nconst HOOKS = [\n 'invoke',\n 'success',\n 'fail',\n 'complete',\n 'returnValue'\n];\n\nconst globalInterceptors = {};\nconst scopedInterceptors = {};\n\nfunction mergeHook (parentVal, childVal) {\n const res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n const res = [];\n for (let i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nfunction removeHook (hooks, hook) {\n const index = hooks.indexOf(hook);\n if (index !== -1) {\n hooks.splice(index, 1);\n }\n}\n\nfunction mergeInterceptorHook (interceptor, option) {\n Object.keys(option).forEach(hook => {\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\n interceptor[hook] = mergeHook(interceptor[hook], option[hook]);\n }\n });\n}\n\nfunction removeInterceptorHook (interceptor, option) {\n if (!interceptor || !option) {\n return\n }\n Object.keys(option).forEach(hook => {\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\n removeHook(interceptor[hook], option[hook]);\n }\n });\n}\n\nfunction addInterceptor (method, option) {\n if (typeof method === 'string' && isPlainObject(option)) {\n mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);\n } else if (isPlainObject(method)) {\n mergeInterceptorHook(globalInterceptors, method);\n }\n}\n\nfunction removeInterceptor (method, option) {\n if (typeof method === 'string') {\n if (isPlainObject(option)) {\n removeInterceptorHook(scopedInterceptors[method], option);\n } else {\n delete scopedInterceptors[method];\n }\n } else if (isPlainObject(method)) {\n removeInterceptorHook(globalInterceptors, method);\n }\n}\n\nfunction wrapperHook (hook) {\n return function (data) {\n return hook(data) || data\n }\n}\n\nfunction isPromise (obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\n}\n\nfunction queue (hooks, data) {\n let promise = false;\n for (let i = 0; i < hooks.length; i++) {\n const hook = hooks[i];\n if (promise) {\n promise = Promise.resolve(wrapperHook(hook));\n } else {\n const res = hook(data);\n if (isPromise(res)) {\n promise = Promise.resolve(res);\n }\n if (res === false) {\n return {\n then () {}\n }\n }\n }\n }\n return promise || {\n then (callback) {\n return callback(data)\n }\n }\n}\n\nfunction wrapperOptions (interceptor, options = {}) {\n ['success', 'fail', 'complete'].forEach(name => {\n if (Array.isArray(interceptor[name])) {\n const oldCallback = options[name];\n options[name] = function callbackInterceptor (res) {\n queue(interceptor[name], res).then((res) => {\n /* eslint-disable no-mixed-operators */\n return isFn(oldCallback) && oldCallback(res) || res\n });\n };\n }\n });\n return options\n}\n\nfunction wrapperReturnValue (method, returnValue) {\n const returnValueHooks = [];\n if (Array.isArray(globalInterceptors.returnValue)) {\n returnValueHooks.push(...globalInterceptors.returnValue);\n }\n const interceptor = scopedInterceptors[method];\n if (interceptor && Array.isArray(interceptor.returnValue)) {\n returnValueHooks.push(...interceptor.returnValue);\n }\n returnValueHooks.forEach(hook => {\n returnValue = hook(returnValue) || returnValue;\n });\n return returnValue\n}\n\nfunction getApiInterceptorHooks (method) {\n const interceptor = Object.create(null);\n Object.keys(globalInterceptors).forEach(hook => {\n if (hook !== 'returnValue') {\n interceptor[hook] = globalInterceptors[hook].slice();\n }\n });\n const scopedInterceptor = scopedInterceptors[method];\n if (scopedInterceptor) {\n Object.keys(scopedInterceptor).forEach(hook => {\n if (hook !== 'returnValue') {\n interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\n }\n });\n }\n return interceptor\n}\n\nfunction invokeApi (method, api, options, ...params) {\n const interceptor = getApiInterceptorHooks(method);\n if (interceptor && Object.keys(interceptor).length) {\n if (Array.isArray(interceptor.invoke)) {\n const res = queue(interceptor.invoke, options);\n return res.then((options) => {\n return api(wrapperOptions(interceptor, options), ...params)\n })\n } else {\n return api(wrapperOptions(interceptor, options), ...params)\n }\n }\n return api(options, ...params)\n}\n\nconst promiseInterceptor = {\n returnValue (res) {\n if (!isPromise(res)) {\n return res\n }\n return res.then(res => {\n return res[1]\n }).catch(res => {\n return res[0]\n })\n }\n};\n\nconst SYNC_API_RE =\n /^\\$|sendNativeEvent|restoreGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;\n\nconst CONTEXT_API_RE = /^create|Manager$/;\n\n// Context例外情况\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\n\n// 同步例外情况\nconst ASYNC_API = ['createBLEConnection'];\n\nconst CALLBACK_API_RE = /^on|^off/;\n\nfunction isContextApi (name) {\n return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1\n}\nfunction isSyncApi (name) {\n return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1\n}\n\nfunction isCallbackApi (name) {\n return CALLBACK_API_RE.test(name) && name !== 'onPush'\n}\n\nfunction handlePromise (promise) {\n return promise.then(data => {\n return [null, data]\n })\n .catch(err => [err])\n}\n\nfunction shouldPromise (name) {\n if (\n isContextApi(name) ||\n isSyncApi(name) ||\n isCallbackApi(name)\n ) {\n return false\n }\n return true\n}\n\n/* eslint-disable no-extend-native */\nif (!Promise.prototype.finally) {\n Promise.prototype.finally = function (callback) {\n const promise = this.constructor;\n return this.then(\n value => promise.resolve(callback()).then(() => value),\n reason => promise.resolve(callback()).then(() => {\n throw reason\n })\n )\n };\n}\n\nfunction promisify (name, api) {\n if (!shouldPromise(name)) {\n return api\n }\n return function promiseApi (options = {}, ...params) {\n if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {\n return wrapperReturnValue(name, invokeApi(name, api, options, ...params))\n }\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\n invokeApi(name, api, Object.assign({}, options, {\n success: resolve,\n fail: reject\n }), ...params);\n })))\n }\n}\n\nconst EPS = 1e-4;\nconst BASE_DEVICE_WIDTH = 750;\nlet isIOS = false;\nlet deviceWidth = 0;\nlet deviceDPR = 0;\n\nfunction checkDeviceWidth () {\n const {\n platform,\n pixelRatio,\n windowWidth\n } = wx.getSystemInfoSync(); // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni\n\n deviceWidth = windowWidth;\n deviceDPR = pixelRatio;\n isIOS = platform === 'ios';\n}\n\nfunction upx2px (number, newDeviceWidth) {\n if (deviceWidth === 0) {\n checkDeviceWidth();\n }\n\n number = Number(number);\n if (number === 0) {\n return 0\n }\n let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);\n if (result < 0) {\n result = -result;\n }\n result = Math.floor(result + EPS);\n if (result === 0) {\n if (deviceDPR === 1 || !isIOS) {\n result = 1;\n } else {\n result = 0.5;\n }\n }\n return number < 0 ? -result : result\n}\n\nconst interceptors = {\n promiseInterceptor\n};\n\nvar baseApi = /*#__PURE__*/Object.freeze({\n __proto__: null,\n upx2px: upx2px,\n addInterceptor: addInterceptor,\n removeInterceptor: removeInterceptor,\n interceptors: interceptors\n});\n\nvar previewImage = {\n args (fromArgs) {\n let currentIndex = parseInt(fromArgs.current);\n if (isNaN(currentIndex)) {\n return\n }\n const urls = fromArgs.urls;\n if (!Array.isArray(urls)) {\n return\n }\n const len = urls.length;\n if (!len) {\n return\n }\n if (currentIndex < 0) {\n currentIndex = 0;\n } else if (currentIndex >= len) {\n currentIndex = len - 1;\n }\n if (currentIndex > 0) {\n fromArgs.current = urls[currentIndex];\n fromArgs.urls = urls.filter(\n (item, index) => index < currentIndex ? item !== urls[currentIndex] : true\n );\n } else {\n fromArgs.current = urls[0];\n }\n return {\n indicator: false,\n loop: false\n }\n }\n};\n\nfunction addSafeAreaInsets (result) {\n if (result.safeArea) {\n const safeArea = result.safeArea;\n result.safeAreaInsets = {\n top: safeArea.top,\n left: safeArea.left,\n right: result.windowWidth - safeArea.right,\n bottom: result.windowHeight - safeArea.bottom\n };\n }\n}\nconst protocols = {\n previewImage,\n getSystemInfo: {\n returnValue: addSafeAreaInsets\n },\n getSystemInfoSync: {\n returnValue: addSafeAreaInsets\n }\n};\nconst todos = [\n 'vibrate',\n 'preloadPage',\n 'unPreloadPage',\n 'loadSubPackage'\n];\nconst canIUses = [];\n\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\n\nfunction processCallback (methodName, method, returnValue) {\n return function (res) {\n return method(processReturnValue(methodName, res, returnValue))\n }\n}\n\nfunction processArgs (methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\n if (isPlainObject(fromArgs)) { // 一般 api 的参数解析\n const toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\n if (isFn(argsOption)) {\n argsOption = argsOption(fromArgs, toArgs) || {};\n }\n for (const key in fromArgs) {\n if (hasOwn(argsOption, key)) {\n let keyOption = argsOption[key];\n if (isFn(keyOption)) {\n keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\n }\n if (!keyOption) { // 不支持的参数\n console.warn(`微信小程序 ${methodName}暂不支持${key}`);\n } else if (isStr(keyOption)) { // 重写参数 key\n toArgs[keyOption] = fromArgs[key];\n } else if (isPlainObject(keyOption)) { // {name:newName,value:value}可重新指定参数 key:value\n toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\n }\n } else if (CALLBACKS.indexOf(key) !== -1) {\n if (isFn(fromArgs[key])) {\n toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\n }\n } else {\n if (!keepFromArgs) {\n toArgs[key] = fromArgs[key];\n }\n }\n }\n return toArgs\n } else if (isFn(fromArgs)) {\n fromArgs = processCallback(methodName, fromArgs, returnValue);\n }\n return fromArgs\n}\n\nfunction processReturnValue (methodName, res, returnValue, keepReturnValue = false) {\n if (isFn(protocols.returnValue)) { // 处理通用 returnValue\n res = protocols.returnValue(methodName, res);\n }\n return processArgs(methodName, res, returnValue, {}, keepReturnValue)\n}\n\nfunction wrapper (methodName, method) {\n if (hasOwn(protocols, methodName)) {\n const protocol = protocols[methodName];\n if (!protocol) { // 暂不支持的 api\n return function () {\n console.error(`微信小程序 暂不支持${methodName}`);\n }\n }\n return function (arg1, arg2) { // 目前 api 最多两个参数\n let options = protocol;\n if (isFn(protocol)) {\n options = protocol(arg1);\n }\n\n arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\n\n const args = [arg1];\n if (typeof arg2 !== 'undefined') {\n args.push(arg2);\n }\n const returnValue = wx[options.name || methodName].apply(wx, args);\n if (isSyncApi(methodName)) { // 同步 api\n return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName))\n }\n return returnValue\n }\n }\n return method\n}\n\nconst todoApis = Object.create(null);\n\nconst TODOS = [\n 'onTabBarMidButtonTap',\n 'subscribePush',\n 'unsubscribePush',\n 'onPush',\n 'offPush',\n 'share'\n];\n\nfunction createTodoApi (name) {\n return function todoApi ({\n fail,\n complete\n }) {\n const res = {\n errMsg: `${name}:fail:暂不支持 ${name} 方法`\n };\n isFn(fail) && fail(res);\n isFn(complete) && complete(res);\n }\n}\n\nTODOS.forEach(function (name) {\n todoApis[name] = createTodoApi(name);\n});\n\nvar providers = {\n oauth: ['weixin'],\n share: ['weixin'],\n payment: ['wxpay'],\n push: ['weixin']\n};\n\nfunction getProvider ({\n service,\n success,\n fail,\n complete\n}) {\n let res = false;\n if (providers[service]) {\n res = {\n errMsg: 'getProvider:ok',\n service,\n provider: providers[service]\n };\n isFn(success) && success(res);\n } else {\n res = {\n errMsg: 'getProvider:fail:服务[' + service + ']不存在'\n };\n isFn(fail) && fail(res);\n }\n isFn(complete) && complete(res);\n}\n\nvar extraApi = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getProvider: getProvider\n});\n\nconst getEmitter = (function () {\n let Emitter;\n return function getUniEmitter () {\n if (!Emitter) {\n Emitter = new Vue();\n }\n return Emitter\n }\n})();\n\nfunction apply (ctx, method, args) {\n return ctx[method].apply(ctx, args)\n}\n\nfunction $on () {\n return apply(getEmitter(), '$on', [...arguments])\n}\nfunction $off () {\n return apply(getEmitter(), '$off', [...arguments])\n}\nfunction $once () {\n return apply(getEmitter(), '$once', [...arguments])\n}\nfunction $emit () {\n return apply(getEmitter(), '$emit', [...arguments])\n}\n\nvar eventApi = /*#__PURE__*/Object.freeze({\n __proto__: null,\n $on: $on,\n $off: $off,\n $once: $once,\n $emit: $emit\n});\n\nvar api = /*#__PURE__*/Object.freeze({\n __proto__: null\n});\n\nconst MPPage = Page;\nconst MPComponent = Component;\n\nconst customizeRE = /:/g;\n\nconst customize = cached((str) => {\n return camelize(str.replace(customizeRE, '-'))\n});\n\nfunction initTriggerEvent (mpInstance) {\n {\n if (!wx.canIUse('nextTick')) {\n return\n }\n }\n const oldTriggerEvent = mpInstance.triggerEvent;\n mpInstance.triggerEvent = function (event, ...args) {\n return oldTriggerEvent.apply(mpInstance, [customize(event), ...args])\n };\n}\n\nfunction initHook (name, options) {\n const oldHook = options[name];\n if (!oldHook) {\n options[name] = function () {\n initTriggerEvent(this);\n };\n } else {\n options[name] = function (...args) {\n initTriggerEvent(this);\n return oldHook.apply(this, args)\n };\n }\n}\n\nPage = function (options = {}) {\n initHook('onLoad', options);\n return MPPage(options)\n};\n\nComponent = function (options = {}) {\n initHook('created', options);\n return MPComponent(options)\n};\n\nconst PAGE_EVENT_HOOKS = [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onAddToFavorites',\n 'onShareTimeline',\n 'onShareAppMessage',\n 'onPageScroll',\n 'onResize',\n 'onTabItemTap'\n];\n\nfunction initMocks (vm, mocks) {\n const mpInstance = vm.$mp[vm.mpType];\n mocks.forEach(mock => {\n if (hasOwn(mpInstance, mock)) {\n vm[mock] = mpInstance[mock];\n }\n });\n}\n\nfunction hasHook (hook, vueOptions) {\n if (!vueOptions) {\n return true\n }\n\n if (Vue.options && Array.isArray(Vue.options[hook])) {\n return true\n }\n\n vueOptions = vueOptions.default || vueOptions;\n\n if (isFn(vueOptions)) {\n if (isFn(vueOptions.extendOptions[hook])) {\n return true\n }\n if (vueOptions.super &&\n vueOptions.super.options &&\n Array.isArray(vueOptions.super.options[hook])) {\n return true\n }\n return false\n }\n\n if (isFn(vueOptions[hook])) {\n return true\n }\n const mixins = vueOptions.mixins;\n if (Array.isArray(mixins)) {\n return !!mixins.find(mixin => hasHook(hook, mixin))\n }\n}\n\nfunction initHooks (mpOptions, hooks, vueOptions) {\n hooks.forEach(hook => {\n if (hasHook(hook, vueOptions)) {\n mpOptions[hook] = function (args) {\n return this.$vm && this.$vm.__call_hook(hook, args)\n };\n }\n });\n}\n\nfunction initVueComponent (Vue, vueOptions) {\n vueOptions = vueOptions.default || vueOptions;\n let VueComponent;\n if (isFn(vueOptions)) {\n VueComponent = vueOptions;\n } else {\n VueComponent = Vue.extend(vueOptions);\n }\n vueOptions = VueComponent.options;\n return [VueComponent, vueOptions]\n}\n\nfunction initSlots (vm, vueSlots) {\n if (Array.isArray(vueSlots) && vueSlots.length) {\n const $slots = Object.create(null);\n vueSlots.forEach(slotName => {\n $slots[slotName] = true;\n });\n vm.$scopedSlots = vm.$slots = $slots;\n }\n}\n\nfunction initVueIds (vueIds, mpInstance) {\n vueIds = (vueIds || '').split(',');\n const len = vueIds.length;\n\n if (len === 1) {\n mpInstance._$vueId = vueIds[0];\n } else if (len === 2) {\n mpInstance._$vueId = vueIds[0];\n mpInstance._$vuePid = vueIds[1];\n }\n}\n\nfunction initData (vueOptions, context) {\n let data = vueOptions.data || {};\n const methods = vueOptions.methods || {};\n\n if (typeof data === 'function') {\n try {\n data = data.call(context); // 支持 Vue.prototype 上挂的数据\n } catch (e) {\n if (process.env.VUE_APP_DEBUG) {\n console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);\n }\n }\n } else {\n try {\n // 对 data 格式化\n data = JSON.parse(JSON.stringify(data));\n } catch (e) {}\n }\n\n if (!isPlainObject(data)) {\n data = {};\n }\n\n Object.keys(methods).forEach(methodName => {\n if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {\n data[methodName] = methods[methodName];\n }\n });\n\n return data\n}\n\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\n\nfunction createObserver (name) {\n return function observer (newVal, oldVal) {\n if (this.$vm) {\n this.$vm[name] = newVal; // 为了触发其他非 render watcher\n }\n }\n}\n\nfunction initBehaviors (vueOptions, initBehavior) {\n const vueBehaviors = vueOptions.behaviors;\n const vueExtends = vueOptions.extends;\n const vueMixins = vueOptions.mixins;\n\n let vueProps = vueOptions.props;\n\n if (!vueProps) {\n vueOptions.props = vueProps = [];\n }\n\n const behaviors = [];\n if (Array.isArray(vueBehaviors)) {\n vueBehaviors.forEach(behavior => {\n behaviors.push(behavior.replace('uni://', `${\"wx\"}://`));\n if (behavior === 'uni://form-field') {\n if (Array.isArray(vueProps)) {\n vueProps.push('name');\n vueProps.push('value');\n } else {\n vueProps.name = {\n type: String,\n default: ''\n };\n vueProps.value = {\n type: [String, Number, Boolean, Array, Object, Date],\n default: ''\n };\n }\n }\n });\n }\n if (isPlainObject(vueExtends) && vueExtends.props) {\n behaviors.push(\n initBehavior({\n properties: initProperties(vueExtends.props, true)\n })\n );\n }\n if (Array.isArray(vueMixins)) {\n vueMixins.forEach(vueMixin => {\n if (isPlainObject(vueMixin) && vueMixin.props) {\n behaviors.push(\n initBehavior({\n properties: initProperties(vueMixin.props, true)\n })\n );\n }\n });\n }\n return behaviors\n}\n\nfunction parsePropType (key, type, defaultValue, file) {\n // [String]=>String\n if (Array.isArray(type) && type.length === 1) {\n return type[0]\n }\n return type\n}\n\nfunction initProperties (props, isBehavior = false, file = '') {\n const properties = {};\n if (!isBehavior) {\n properties.vueId = {\n type: String,\n value: ''\n };\n // 用于字节跳动小程序模拟抽象节点\n properties.generic = {\n type: Object,\n value: null\n };\n properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\n type: null,\n value: [],\n observer: function (newVal, oldVal) {\n const $slots = Object.create(null);\n newVal.forEach(slotName => {\n $slots[slotName] = true;\n });\n this.setData({\n $slots\n });\n }\n };\n }\n if (Array.isArray(props)) { // ['title']\n props.forEach(key => {\n properties[key] = {\n type: null,\n observer: createObserver(key)\n };\n });\n } else if (isPlainObject(props)) { // {title:{type:String,default:''},content:String}\n Object.keys(props).forEach(key => {\n const opts = props[key];\n if (isPlainObject(opts)) { // title:{type:String,default:''}\n let value = opts.default;\n if (isFn(value)) {\n value = value();\n }\n\n opts.type = parsePropType(key, opts.type);\n\n properties[key] = {\n type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,\n value,\n observer: createObserver(key)\n };\n } else { // content:String\n const type = parsePropType(key, opts);\n properties[key] = {\n type: PROP_TYPES.indexOf(type) !== -1 ? type : null,\n observer: createObserver(key)\n };\n }\n });\n }\n return properties\n}\n\nfunction wrapper$1 (event) {\n // TODO 又得兼容 mpvue 的 mp 对象\n try {\n event.mp = JSON.parse(JSON.stringify(event));\n } catch (e) {}\n\n event.stopPropagation = noop;\n event.preventDefault = noop;\n\n event.target = event.target || {};\n\n if (!hasOwn(event, 'detail')) {\n event.detail = {};\n }\n\n if (hasOwn(event, 'markerId')) {\n event.detail = typeof event.detail === 'object' ? event.detail : {};\n event.detail.markerId = event.markerId;\n }\n\n if (isPlainObject(event.detail)) {\n event.target = Object.assign({}, event.target, event.detail);\n }\n\n return event\n}\n\nfunction getExtraValue (vm, dataPathsArray) {\n let context = vm;\n dataPathsArray.forEach(dataPathArray => {\n const dataPath = dataPathArray[0];\n const value = dataPathArray[2];\n if (dataPath || typeof value !== 'undefined') { // ['','',index,'disable']\n const propPath = dataPathArray[1];\n const valuePath = dataPathArray[3];\n\n let vFor;\n if (Number.isInteger(dataPath)) {\n vFor = dataPath;\n } else if (!dataPath) {\n vFor = context;\n } else if (typeof dataPath === 'string' && dataPath) {\n if (dataPath.indexOf('#s#') === 0) {\n vFor = dataPath.substr(3);\n } else {\n vFor = vm.__get_value(dataPath, context);\n }\n }\n\n if (Number.isInteger(vFor)) {\n context = value;\n } else if (!propPath) {\n context = vFor[value];\n } else {\n if (Array.isArray(vFor)) {\n context = vFor.find(vForItem => {\n return vm.__get_value(propPath, vForItem) === value\n });\n } else if (isPlainObject(vFor)) {\n context = Object.keys(vFor).find(vForKey => {\n return vm.__get_value(propPath, vFor[vForKey]) === value\n });\n } else {\n console.error('v-for 暂不支持循环数据:', vFor);\n }\n }\n\n if (valuePath) {\n context = vm.__get_value(valuePath, context);\n }\n }\n });\n return context\n}\n\nfunction processEventExtra (vm, extra, event) {\n const extraObj = {};\n\n if (Array.isArray(extra) && extra.length) {\n /**\n *[\n * ['data.items', 'data.id', item.data.id],\n * ['metas', 'id', meta.id]\n *],\n *[\n * ['data.items', 'data.id', item.data.id],\n * ['metas', 'id', meta.id]\n *],\n *'test'\n */\n extra.forEach((dataPath, index) => {\n if (typeof dataPath === 'string') {\n if (!dataPath) { // model,prop.sync\n extraObj['$' + index] = vm;\n } else {\n if (dataPath === '$event') { // $event\n extraObj['$' + index] = event;\n } else if (dataPath === 'arguments') {\n if (event.detail && event.detail.__args__) {\n extraObj['$' + index] = event.detail.__args__;\n } else {\n extraObj['$' + index] = [event];\n }\n } else if (dataPath.indexOf('$event.') === 0) { // $event.target.value\n extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);\n } else {\n extraObj['$' + index] = vm.__get_value(dataPath);\n }\n }\n } else {\n extraObj['$' + index] = getExtraValue(vm, dataPath);\n }\n });\n }\n\n return extraObj\n}\n\nfunction getObjByArray (arr) {\n const obj = {};\n for (let i = 1; i < arr.length; i++) {\n const element = arr[i];\n obj[element[0]] = element[1];\n }\n return obj\n}\n\nfunction processEventArgs (vm, event, args = [], extra = [], isCustom, methodName) {\n let isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象\n if (isCustom) { // 自定义事件\n isCustomMPEvent = event.currentTarget &&\n event.currentTarget.dataset &&\n event.currentTarget.dataset.comType === 'wx';\n if (!args.length) { // 无参数,直接传入 event 或 detail 数组\n if (isCustomMPEvent) {\n return [event]\n }\n return event.detail.__args__ || event.detail\n }\n }\n\n const extraObj = processEventExtra(vm, extra, event);\n\n const ret = [];\n args.forEach(arg => {\n if (arg === '$event') {\n if (methodName === '__set_model' && !isCustom) { // input v-model value\n ret.push(event.target.value);\n } else {\n if (isCustom && !isCustomMPEvent) {\n ret.push(event.detail.__args__[0]);\n } else { // wxcomponent 组件或内置组件\n ret.push(event);\n }\n }\n } else {\n if (Array.isArray(arg) && arg[0] === 'o') {\n ret.push(getObjByArray(arg));\n } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {\n ret.push(extraObj[arg]);\n } else {\n ret.push(arg);\n }\n }\n });\n\n return ret\n}\n\nconst ONCE = '~';\nconst CUSTOM = '^';\n\nfunction isMatchEventType (eventType, optType) {\n return (eventType === optType) ||\n (\n optType === 'regionchange' &&\n (\n eventType === 'begin' ||\n eventType === 'end'\n )\n )\n}\n\nfunction getContextVm (vm) {\n let $parent = vm.$parent;\n // 父组件是 scoped slots 或者其他自定义组件时继续查找\n while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) {\n $parent = $parent.$parent;\n }\n return $parent && $parent.$parent\n}\n\nfunction handleEvent (event) {\n event = wrapper$1(event);\n\n // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]\n const dataset = (event.currentTarget || event.target).dataset;\n if (!dataset) {\n return console.warn('事件信息不存在')\n }\n const eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰\n if (!eventOpts) {\n return console.warn('事件信息不存在')\n }\n\n // [['handle',[1,2,a]],['handle1',[1,2,a]]]\n const eventType = event.type;\n\n const ret = [];\n\n eventOpts.forEach(eventOpt => {\n let type = eventOpt[0];\n const eventsArray = eventOpt[1];\n\n const isCustom = type.charAt(0) === CUSTOM;\n type = isCustom ? type.slice(1) : type;\n const isOnce = type.charAt(0) === ONCE;\n type = isOnce ? type.slice(1) : type;\n\n if (eventsArray && isMatchEventType(eventType, type)) {\n eventsArray.forEach(eventArray => {\n const methodName = eventArray[0];\n if (methodName) {\n let handlerCtx = this.$vm;\n if (handlerCtx.$options.generic) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\n handlerCtx = getContextVm(handlerCtx) || handlerCtx;\n }\n if (methodName === '$emit') {\n handlerCtx.$emit.apply(handlerCtx,\n processEventArgs(\n this.$vm,\n event,\n eventArray[1],\n eventArray[2],\n isCustom,\n methodName\n ));\n return\n }\n const handler = handlerCtx[methodName];\n if (!isFn(handler)) {\n throw new Error(` _vm.${methodName} is not a function`)\n }\n if (isOnce) {\n if (handler.once) {\n return\n }\n handler.once = true;\n }\n const params = processEventArgs(\n this.$vm,\n event,\n eventArray[1],\n eventArray[2],\n isCustom,\n methodName\n ) || [];\n // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据\n // eslint-disable-next-line no-sparse-arrays\n ret.push(handler.apply(handlerCtx, params.concat([, , , , , , , , , , event])));\n }\n });\n }\n });\n\n if (\n eventType === 'input' &&\n ret.length === 1 &&\n typeof ret[0] !== 'undefined'\n ) {\n return ret[0]\n }\n}\n\nconst hooks = [\n 'onShow',\n 'onHide',\n 'onError',\n 'onPageNotFound',\n 'onThemeChange',\n 'onUnhandledRejection'\n];\n\nfunction parseBaseApp (vm, {\n mocks,\n initRefs\n}) {\n if (vm.$options.store) {\n Vue.prototype.$store = vm.$options.store;\n }\n\n Vue.prototype.mpHost = \"mp-weixin\";\n\n Vue.mixin({\n beforeCreate () {\n if (!this.$options.mpType) {\n return\n }\n\n this.mpType = this.$options.mpType;\n\n this.$mp = {\n data: {},\n [this.mpType]: this.$options.mpInstance\n };\n\n this.$scope = this.$options.mpInstance;\n\n delete this.$options.mpType;\n delete this.$options.mpInstance;\n\n if (this.mpType !== 'app') {\n initRefs(this);\n initMocks(this, mocks);\n }\n }\n });\n\n const appOptions = {\n onLaunch (args) {\n if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\n return\n }\n {\n if (!wx.canIUse('nextTick')) { // 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断\n console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');\n }\n }\n\n this.$vm = vm;\n\n this.$vm.$mp = {\n app: this\n };\n\n this.$vm.$scope = this;\n // vm 上也挂载 globalData\n this.$vm.globalData = this.globalData;\n\n this.$vm._isMounted = true;\n this.$vm.__call_hook('mounted', args);\n\n this.$vm.__call_hook('onLaunch', args);\n }\n };\n\n // 兼容旧版本 globalData\n appOptions.globalData = vm.$options.globalData || {};\n // 将 methods 中的方法挂在 getApp() 中\n const methods = vm.$options.methods;\n if (methods) {\n Object.keys(methods).forEach(name => {\n appOptions[name] = methods[name];\n });\n }\n\n initHooks(appOptions, hooks);\n\n return appOptions\n}\n\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\n\nfunction findVmByVueId (vm, vuePid) {\n const $children = vm.$children;\n // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\n for (let i = $children.length - 1; i >= 0; i--) {\n const childVm = $children[i];\n if (childVm.$scope._$vueId === vuePid) {\n return childVm\n }\n }\n // 反向递归查找\n let parentVm;\n for (let i = $children.length - 1; i >= 0; i--) {\n parentVm = findVmByVueId($children[i], vuePid);\n if (parentVm) {\n return parentVm\n }\n }\n}\n\nfunction initBehavior (options) {\n return Behavior(options)\n}\n\nfunction isPage () {\n return !!this.route\n}\n\nfunction initRelation (detail) {\n this.triggerEvent('__l', detail);\n}\n\nfunction initRefs (vm) {\n const mpInstance = vm.$scope;\n Object.defineProperty(vm, '$refs', {\n get () {\n const $refs = {};\n const components = mpInstance.selectAllComponents('.vue-ref');\n components.forEach(component => {\n const ref = component.dataset.ref;\n $refs[ref] = component.$vm || component;\n });\n const forComponents = mpInstance.selectAllComponents('.vue-ref-in-for');\n forComponents.forEach(component => {\n const ref = component.dataset.ref;\n if (!$refs[ref]) {\n $refs[ref] = [];\n }\n $refs[ref].push(component.$vm || component);\n });\n return $refs\n }\n });\n}\n\nfunction handleLink (event) {\n const {\n vuePid,\n vueOptions\n } = event.detail || event.value; // detail 是微信,value 是百度(dipatch)\n\n let parentVm;\n\n if (vuePid) {\n parentVm = findVmByVueId(this.$vm, vuePid);\n }\n\n if (!parentVm) {\n parentVm = this.$vm;\n }\n\n vueOptions.parent = parentVm;\n}\n\nfunction parseApp (vm) {\n return parseBaseApp(vm, {\n mocks,\n initRefs\n })\n}\n\nfunction createApp (vm) {\n App(parseApp(vm));\n return vm\n}\n\nfunction parseBaseComponent (vueComponentOptions, {\n isPage,\n initRelation\n} = {}) {\n const [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);\n\n const options = {\n multipleSlots: true,\n addGlobalClass: true,\n ...(vueOptions.options || {})\n };\n\n {\n // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项\n if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {\n Object.assign(options, vueOptions['mp-weixin'].options);\n }\n }\n\n const componentOptions = {\n options,\n data: initData(vueOptions, Vue.prototype),\n behaviors: initBehaviors(vueOptions, initBehavior),\n properties: initProperties(vueOptions.props, false, vueOptions.__file),\n lifetimes: {\n attached () {\n const properties = this.properties;\n\n const options = {\n mpType: isPage.call(this) ? 'page' : 'component',\n mpInstance: this,\n propsData: properties\n };\n\n initVueIds(properties.vueId, this);\n\n // 处理父子关系\n initRelation.call(this, {\n vuePid: this._$vuePid,\n vueOptions: options\n });\n\n // 初始化 vue 实例\n this.$vm = new VueComponent(options);\n\n // 处理$slots,$scopedSlots(暂不支持动态变化$slots)\n initSlots(this.$vm, properties.vueSlots);\n\n // 触发首次 setData\n this.$vm.$mount();\n },\n ready () {\n // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\n // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\n if (this.$vm) {\n this.$vm._isMounted = true;\n this.$vm.__call_hook('mounted');\n this.$vm.__call_hook('onReady');\n }\n },\n detached () {\n this.$vm && this.$vm.$destroy();\n }\n },\n pageLifetimes: {\n show (args) {\n this.$vm && this.$vm.__call_hook('onPageShow', args);\n },\n hide () {\n this.$vm && this.$vm.__call_hook('onPageHide');\n },\n resize (size) {\n this.$vm && this.$vm.__call_hook('onPageResize', size);\n }\n },\n methods: {\n __l: handleLink,\n __e: handleEvent\n }\n };\n // externalClasses\n if (vueOptions.externalClasses) {\n componentOptions.externalClasses = vueOptions.externalClasses;\n }\n\n if (Array.isArray(vueOptions.wxsCallMethods)) {\n vueOptions.wxsCallMethods.forEach(callMethod => {\n componentOptions.methods[callMethod] = function (args) {\n return this.$vm[callMethod](args)\n };\n });\n }\n\n if (isPage) {\n return componentOptions\n }\n return [componentOptions, VueComponent]\n}\n\nfunction parseComponent (vueComponentOptions) {\n return parseBaseComponent(vueComponentOptions, {\n isPage,\n initRelation\n })\n}\n\nconst hooks$1 = [\n 'onShow',\n 'onHide',\n 'onUnload'\n];\n\nhooks$1.push(...PAGE_EVENT_HOOKS);\n\nfunction parseBasePage (vuePageOptions, {\n isPage,\n initRelation\n}) {\n const pageOptions = parseComponent(vuePageOptions);\n\n initHooks(pageOptions.methods, hooks$1, vuePageOptions);\n\n pageOptions.methods.onLoad = function (args) {\n this.$vm.$mp.query = args; // 兼容 mpvue\n this.$vm.__call_hook('onLoad', args);\n };\n\n return pageOptions\n}\n\nfunction parsePage (vuePageOptions) {\n return parseBasePage(vuePageOptions, {\n isPage,\n initRelation\n })\n}\n\nfunction createPage (vuePageOptions) {\n {\n return Component(parsePage(vuePageOptions))\n }\n}\n\nfunction createComponent (vueOptions) {\n {\n return Component(parseComponent(vueOptions))\n }\n}\n\ntodos.forEach(todoApi => {\n protocols[todoApi] = false;\n});\n\ncanIUses.forEach(canIUseApi => {\n const apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name\n : canIUseApi;\n if (!wx.canIUse(apiName)) {\n protocols[canIUseApi] = false;\n }\n});\n\nlet uni = {};\n\nif (typeof Proxy !== 'undefined' && \"mp-weixin\" !== 'app-plus') {\n uni = new Proxy({}, {\n get (target, name) {\n if (hasOwn(target, name)) {\n return target[name]\n }\n if (baseApi[name]) {\n return baseApi[name]\n }\n if (api[name]) {\n return promisify(name, api[name])\n }\n {\n if (extraApi[name]) {\n return promisify(name, extraApi[name])\n }\n if (todoApis[name]) {\n return promisify(name, todoApis[name])\n }\n }\n if (eventApi[name]) {\n return eventApi[name]\n }\n if (!hasOwn(wx, name) && !hasOwn(protocols, name)) {\n return\n }\n return promisify(name, wrapper(name, wx[name]))\n },\n set (target, name, value) {\n target[name] = value;\n return true\n }\n });\n} else {\n Object.keys(baseApi).forEach(name => {\n uni[name] = baseApi[name];\n });\n\n {\n Object.keys(todoApis).forEach(name => {\n uni[name] = promisify(name, todoApis[name]);\n });\n Object.keys(extraApi).forEach(name => {\n uni[name] = promisify(name, todoApis[name]);\n });\n }\n\n Object.keys(eventApi).forEach(name => {\n uni[name] = eventApi[name];\n });\n\n Object.keys(api).forEach(name => {\n uni[name] = promisify(name, api[name]);\n });\n\n Object.keys(wx).forEach(name => {\n if (hasOwn(wx, name) || hasOwn(protocols, name)) {\n uni[name] = promisify(name, wrapper(name, wx[name]));\n }\n });\n}\n\nwx.createApp = createApp;\nwx.createPage = createPage;\nwx.createComponent = createComponent;\n\nvar uni$1 = uni;\n\nexport default uni$1;\nexport { createApp, createComponent, createPage };\n","/*!\n * Vue.js v2.6.11\n * (c) 2014-2020 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n if (vm.$options && vm.$options.__file) { // fixed by xxxxxx\n return ('') + vm.$options.__file\n }\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm && vm.$options.name !== 'PageBody') {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n !vm.$options.isReserved && tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.SharedObject.target) {\n Dep.SharedObject.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\n// fixed by xxxxxx (nvue shared vuex)\n/* eslint-disable no-undef */\nDep.SharedObject = {};\nDep.SharedObject.target = null;\nDep.SharedObject.targetStack = [];\n\nfunction pushTarget (target) {\n Dep.SharedObject.targetStack.push(target);\n Dep.SharedObject.target = target;\n}\n\nfunction popTarget () {\n Dep.SharedObject.targetStack.pop();\n Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑\n if(value.push !== value.__proto__.push){\n copyAugment(value, arrayMethods, arrayKeys);\n } else {\n protoAugment(value, arrayMethods);\n }\n }\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.SharedObject.target) { // fixed by xxxxxx\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\n/* */\n\n// fixed by xxxxxx (mp properties)\nfunction extractPropertiesFromVNodeData(data, Ctor, res, context) {\n var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;\n if (isUndef(propOptions)) {\n return res\n }\n var externalClasses = Ctor.options.mpOptions.externalClasses || [];\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n var result = checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n // externalClass\n if (\n result &&\n res[key] &&\n externalClasses.indexOf(altKey) !== -1 &&\n context[camelize(res[key])]\n ) {\n // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)\n res[key] = context[camelize(res[key])];\n }\n }\n }\n return res\n}\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag,\n context// fixed by xxxxxx\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, {}, context)\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, res, context)\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.