diff --git a/.env.development b/.env.development index 7b5c813..1fd5cb5 100644 --- a/.env.development +++ b/.env.development @@ -1,2 +1,3 @@ -VUE_APP_HOST=http://test-temple.wdx-tc.com/ -NODE_ENV = development \ No newline at end of file +VUE_APP_HOST=http://temple.free.idcfengye.com +NODE_ENV = development +VUE_APP_TMAP_KEY=ZFGBZ-76ICF-BG5JY-NH4HX-MQOOJ-VJB4E \ No newline at end of file diff --git a/.env.production b/.env.production index 550e777..7364e0f 100644 --- a/.env.production +++ b/.env.production @@ -1,2 +1,3 @@ -VUE_APP_HOST=http://prod-temple.wdx-tc.com/ +VUE_APP_HOST=https://prod-temple.wdx-tc.com/ +VUE_APP_TMAP_KEY=ZFGBZ-76ICF-BG5JY-NH4HX-MQOOJ-VJB4E NODE_ENV = production \ No newline at end of file diff --git a/.env.test b/.env.test index 4f0cb2c..98b2a0b 100644 --- a/.env.test +++ b/.env.test @@ -1,2 +1,3 @@ -VUE_APP_HOST=http://test-temple.wdx-tc.com/ +VUE_APP_HOST=http://https-temple.wdx-tc.com/ +VUE_APP_TMAP_KEY=ZFGBZ-76ICF-BG5JY-NH4HX-MQOOJ-VJB4E NODE_ENV = test \ No newline at end of file diff --git a/https/6500549_test-temple.wdx-tc.com.key b/https/6500549_test-temple.wdx-tc.com.key new file mode 100644 index 0000000..06bc179 --- /dev/null +++ b/https/6500549_test-temple.wdx-tc.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAjOzQOMFq0ofA8HGWq+SI2UGLfl4Wrm6QpWZS9JggjFRxpWCR +pwnbSeO76sOxPMXx2fzd++1X2gOLDguoNVIyk8zWfA2aIQ7iUfCvOdJg45kMv0Rv +139LAVQwfrC50TuKbvwTPKfEgtrfiBDEs0K/C5TKJ++77oYyxsiIwZ8zsorbpNEA +JZgGXthHgTddnetmnYiH9dqs3eJIEricMhGpKx9psq8B3J9YksoD5CFHfz0QLIC4 +DhyfAa72b2nj0wJcX2XMP4QkEgDM+nf2Iq0QOkgKH6KT2fgFflCqQQKAwQ6XmqSj +NNXiCr9GCQmZw4er/pH1BUHvI5t0IYCltJ6CIwIDAQABAoIBAA/R4coNRG2f2bPk +PHLNc+NXrU4hR9CLDufSZcuZbEX0kNFs1sz2mUxhKU5Aa5wT6IN9FHpceXk63phU +DKz3rj/TRdylNkExx4xFRZZrHH9QRhMOnrOFUakzh0Ihmqp3UaIF4C718mRyJ5fB +siMhggrNyCfVjLZJEFgqWNfLhGUtcLePjD+K40jv4iG3R1Oorgo/rVaNbezw3TUj +rz35JKFBbBEDPEmfj5arYuZKYVQnthh2NJu2bv+4ckbczo47XZPlaFjUzDucO+EB +VCDgvo0uPktejXsrb39rgRhPUQRgnv5gpnkv5DEuPuxTT1Ws1Z9yUtrP3b15KIM3 +VEMFC9kCgYEAvuwCeHLW2v9JHolmUCYXyl2GogWKFwNKSbRZi5G+TFiJdCTipQ/Q +b1gcgoRT4WrzzOLqv7/SakIZrnmvZSlFcD9MuDm9jW7pngidZYGMSyNQGb6XAJLs +mjxImt1hLbNC+4LG/x5fk3aAZgjV4aBWnG9umNGyJhqBqDSJzYtrWFcCgYEAvPYK +NpVzcHxdd8MM5s+eYblsWyBXqtLOevDnhlIonHO6WG5mrQL1E2UYjifosVN5y69S +N9j9CWvG5sL96pnxZw2n+uz+0VwfqCI2zn2srD9XBadFPSFc0fusG+wokXSHL7OG +M6o7Plx8ZGH5EFAkqaoSnMeP57/Sf5puh1nD9RUCgYAyNXj02iac0zQUfsfUXiA1 +jOECLPjC0o+v0GkYJkzoYQRM8gJUrFMBZSeiP1Cb4HebMzXPFZAtd5KvarrwnKjx +OwRfEnhCAKAZemSCNE6D2BaRnqixcvIcIaxqZbvPu+vqntrcbs1tx2U+8CXnPzZn +z3pDYCo8kQ32AVMYJgkl4wKBgDY5yQ6G7tzN46i1oaMu232hz3WLH31XB4gCT/6c +3yiekVBFRlPJ8HiDX3uT+lPA58fK5SY/r8WfVzHrrSBA0yTGp3j7v9hmvnLqdp3l +NMMtXhSyPs1fIJrlxSsyJyYusYi/1PhIlr27nrrT3ryOsya5NqQlJKfVxVt2/tb6 +rKBNAoGBALBwk93oGAvRSzQTfHiO8b0JNxNjX2HyLQ0vKciNKvcaGXxaOFO0yj0S +spsoXWsx2uA8RBs4mxkp14mhOQ/KJbtzxn05eX8rkpwuZUwRZU4CwiIBdEBEPEAC +Sh/hzYWNMsB1Enle/+35wohfdlV5LbHiZC/dUa7LR17MRBSloXjX +-----END RSA PRIVATE KEY----- diff --git a/https/6500549_test-temple.wdx-tc.com.pem b/https/6500549_test-temple.wdx-tc.com.pem new file mode 100644 index 0000000..ab2cfd4 --- /dev/null +++ b/https/6500549_test-temple.wdx-tc.com.pem @@ -0,0 +1,62 @@ +-----BEGIN CERTIFICATE----- +MIIGATCCBOmgAwIBAgIQC/WwdIdUJZZP8hOOr/tdhTANBgkqhkiG9w0BAQsFADBu +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMS0wKwYDVQQDEyRFbmNyeXB0aW9uIEV2ZXJ5d2hlcmUg +RFYgVExTIENBIC0gRzEwHhcNMjExMDI3MDAwMDAwWhcNMjIxMDI3MjM1OTU5WjAh +MR8wHQYDVQQDExZ0ZXN0LXRlbXBsZS53ZHgtdGMuY29tMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAjOzQOMFq0ofA8HGWq+SI2UGLfl4Wrm6QpWZS9Jgg +jFRxpWCRpwnbSeO76sOxPMXx2fzd++1X2gOLDguoNVIyk8zWfA2aIQ7iUfCvOdJg +45kMv0Rv139LAVQwfrC50TuKbvwTPKfEgtrfiBDEs0K/C5TKJ++77oYyxsiIwZ8z +sorbpNEAJZgGXthHgTddnetmnYiH9dqs3eJIEricMhGpKx9psq8B3J9YksoD5CFH +fz0QLIC4DhyfAa72b2nj0wJcX2XMP4QkEgDM+nf2Iq0QOkgKH6KT2fgFflCqQQKA +wQ6XmqSjNNXiCr9GCQmZw4er/pH1BUHvI5t0IYCltJ6CIwIDAQABo4IC5jCCAuIw +HwYDVR0jBBgwFoAUVXRPsnJP9WC6UNHX5lFcmgGHGtcwHQYDVR0OBBYEFHpk8ROV +lQtVOZKu5qc7np6AslobMCEGA1UdEQQaMBiCFnRlc3QtdGVtcGxlLndkeC10Yy5j +b20wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD +AjA+BgNVHSAENzA1MDMGBmeBDAECATApMCcGCCsGAQUFBwIBFhtodHRwOi8vd3d3 +LmRpZ2ljZXJ0LmNvbS9DUFMwgYAGCCsGAQUFBwEBBHQwcjAkBggrBgEFBQcwAYYY +aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEoGCCsGAQUFBzAChj5odHRwOi8vY2Fj +ZXJ0cy5kaWdpY2VydC5jb20vRW5jcnlwdGlvbkV2ZXJ5d2hlcmVEVlRMU0NBLUcx +LmNydDAJBgNVHRMEAjAAMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdwApeb7w +njk5IfBWc59jpXflvld9nGAK+PlNXSZcJV3HhAAAAXzA1qNlAAAEAwBIMEYCIQCi ++I5gizS7zedy++e2jEe8AXpj7TfOv8CMom2uv8ZyjQIhALgAe5DjRrqjUwF54wYc +urNW++wS7z0R+6hvK0KiY2dPAHYAUaOw9f0BeZxWbbg3eI8MpHrMGyfL956IQpoN +/tSLBeUAAAF8wNajogAABAMARzBFAiEA4IL8L69sZloHgEt+RcoWY+V7fS+VwNim +RAz8nyi5qL4CIHUiBtPn3EO3Pz1+Ti0AxRLXEHKjulPW3roeQMS4n4uqAHUAQcjK +sd8iRkoQxqE6CUKHXk4xixsD6+tLx2jwkGKWBvYAAAF8wNajPwAABAMARjBEAiA8 +Nym+BTQfaov/Jc8n1hxG5srV5mb6QV6NqOksFmWjCQIgKpIZoW/kmLeEepfo2Arn +njAXmCDSH5LiqR5KLiAEFLQwDQYJKoZIhvcNAQELBQADggEBAALiKq7t5xLeKipg +KSSTWLv8kOuin2ETUL1VDuDUdnMy2CeMcmadebsbz8XbwdJSvlAQk98SA9yTM4sZ +6wU1jLPrQ/6lJR+BgyoDOkN81QZozpVe2VwOMX6FQdOu3YL01wZFGj9yT0/89Doy +cGUdq97tGIqOO/qK2ZyxoP2e4OZ0Nw0bTXoajCGEVD2darphN2++ThBKqu1B8lEO +kq7cTcgsJ2WWv40bcV21jqgPKSgCVENJ0BejVN7DcN3F8J0MoMJ2ecvx4UbelzRb +eydFifag+aqIegSqXSpycny4OpWv+V8MjEpK/6doglq6Xq/PCErdAcUzN/FNNOsN +P6vug9M= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEqjCCA5KgAwIBAgIQAnmsRYvBskWr+YBTzSybsTANBgkqhkiG9w0BAQsFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD +QTAeFw0xNzExMjcxMjQ2MTBaFw0yNzExMjcxMjQ2MTBaMG4xCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xLTArBgNVBAMTJEVuY3J5cHRpb24gRXZlcnl3aGVyZSBEViBUTFMgQ0EgLSBH +MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALPeP6wkab41dyQh6mKc +oHqt3jRIxW5MDvf9QyiOR7VfFwK656es0UFiIb74N9pRntzF1UgYzDGu3ppZVMdo +lbxhm6dWS9OK/lFehKNT0OYI9aqk6F+U7cA6jxSC+iDBPXwdF4rs3KRyp3aQn6pj +pp1yr7IB6Y4zv72Ee/PlZ/6rK6InC6WpK0nPVOYR7n9iDuPe1E4IxUMBH/T33+3h +yuH3dvfgiWUOUkjdpMbyxX+XNle5uEIiyBsi4IvbcTCh8ruifCIi5mDXkZrnMT8n +wfYCV6v6kDdXkbgGRLKsR4pucbJtbKqIkUGxuZI2t7pfewKRc5nWecvDBZf3+p1M +pA8CAwEAAaOCAU8wggFLMB0GA1UdDgQWBBRVdE+yck/1YLpQ0dfmUVyaAYca1zAf +BgNVHSMEGDAWgBQD3lA1VtFMu2bwo+IbG8OXsj3RVTAOBgNVHQ8BAf8EBAMCAYYw +HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8C +AQAwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp +Y2VydC5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQu +Y29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG +/WwBAjAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT +MAgGBmeBDAECATANBgkqhkiG9w0BAQsFAAOCAQEAK3Gp6/aGq7aBZsxf/oQ+TD/B +SwW3AU4ETK+GQf2kFzYZkby5SFrHdPomunx2HBzViUchGoofGgg7gHW0W3MlQAXW +M0r5LUvStcr82QDWYNPaUy4taCQmyaJ+VB+6wxHstSigOlSNF2a6vg4rgexixeiV +4YSB03Yqp2t3TeZHM9ESfkus74nQyW7pRGezj+TC44xCagCQQOzzNmzEAP2SnCrJ +sNE2DpRVMnL8J6xBRdjmOsC3N6cQuKuRXbzByVBjCqAA8t1L0I+9wXJerLPyErjy +rMKWaBFLmfK/AHNF4ZihwPGOc7w6UHczBZXH5RFzJNnww+WnKuTPI0HfnVH8lg== +-----END CERTIFICATE----- diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..5099355 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["src/*"], + } + }, + "include": ["./src/**/*.vue", "./src/**/*.js"], + "exclude": ["node_modules"] +} \ No newline at end of file diff --git a/package.json b/package.json index b0e67a6..b58e820 100644 --- a/package.json +++ b/package.json @@ -10,14 +10,16 @@ }, "dependencies": { "axios": "^0.24.0", + "better-scroll": "^2.4.2", "core-js": "^3.6.5", "dayjs": "^1.10.7", + "swiper": "5", "vant": "^2.12.30", "vue": "^2.6.11", + "vue-awesome-swiper": "2.6.7", "vue-router": "^3.5.3" }, "devDependencies": { - "@nbfe/postcss-px2rem": "^0.1.2", "@vue/cli-plugin-babel": "~4.5.0", "@vue/cli-plugin-eslint": "~4.5.0", "@vue/cli-service": "~4.5.0", @@ -25,13 +27,16 @@ "babel-plugin-import": "^1.13.3", "eslint": "^6.7.2", "eslint-plugin-vue": "^6.2.2", - "postcss-short": "^5.0.0", "sass": "^1.43.4", "sass-loader": "^7.1.0", + "sass-resources-loader": "^2.2.4", "vue-template-compiler": "^2.6.11" }, "eslintConfig": { "root": true, + "globals": { + "wx": true + }, "env": { "node": true }, diff --git a/public/index.html b/public/index.html index 3e5a139..f9e6cfe 100644 --- a/public/index.html +++ b/public/index.html @@ -3,7 +3,8 @@
- + +套用模型省时省力,不用冥思苦想,但是,每一个需要设计的内容和体系应…
+为佛像贴金身,菩萨护佑
+24212.23元
+ 2021-10-3 21:58 +自动行善
+每日填砖
+为佛像贴金身,菩萨菩萨
+为佛像贴金身,菩萨菩萨
+为佛像贴金身,菩萨菩萨
+素全法师的法名智国,是属羊人,他毕业于电子科技大学,他出生于成都市。他出于对佛教文化的特别喜爱,在1989年于昭觉寺皈依清定上师,法名智国。在2006-7-28日入驻四川省什邡市的罗汉寺,在1994年,于山西五台山碧山寺依本焕大和尚、一诚大和尚、香港圣一大和尚为三师,美国寿冶大和尚为学戒和尚受具足戒。并且在1996~1999年,于山西五台山塔院寺学修。曾任传戒引礼、尊证等职先后参加了四川省佛教协会宝光寺、峨眉山、石经寺、广德寺的传授三坛大戒法会。
+{{query.subTitle}}
+支付方式
+
+
+
+
+ 少林寺始建于北魏太和十九年(495年),是孝文帝为了安置他所敬仰的印度高僧跋陀尊者,在与都城洛阳相望的嵩山少室山北麓敕建而成。少林寺常住院占地面积约57600平方米,现任方丈是曹洞正宗第47世、第33代嗣祖沙门释永信。 [1-2] 少林寺是世界著名的佛教寺院,是汉传佛教的禅宗祖庭,在中国佛教史上占有重要地位,被誉为“天下第一名刹”。因其历代少林武僧潜心研创和不断发展的少林功夫而名扬天下,素有“天下功夫出少林,少林功夫甲天下”之说。
++ 素全法师,法名智国,属羊,出生于成都市。2006-7-28日入驻四川省什邡市的罗汉寺。1989年,出于对佛教文化的特别喜爱,于昭觉寺皈依清定上师,法名智国。1992~1996年,受隆莲法师影响和介绍到成都市的龙泉驿区的石经寺依贞意大和尚出家。1994年,于山西五台山碧山寺依本焕大和尚、一诚大和尚、香港圣一大和尚为三师,美国寿冶大和尚为学戒和尚受具足戒。1996~1999年,于山西五台山塔院寺学修。曾任传戒引礼、尊证等职先后参加了四川省佛教协会宝光寺、峨眉山、石经寺、广德寺的传授三坛大戒法会。 +
++ 素全法师,法名智国,属羊,出生于成都市。2006-7-28日入驻四川省什邡市的罗汉寺。1989年,出于对佛教文化的特别喜爱,于昭觉寺皈依清定上师,法名智国。1992~1996年,受隆莲法师影响和介绍到成都市的龙泉驿区的石经寺依贞意大和尚出家。1994年,于山西五台山碧山寺依本焕大和尚、一诚大和尚、香港圣一大和尚为三师,美国寿冶大和尚为学戒和尚受具足戒。1996~1999年,于山西五台山塔院寺学修。曾任传戒引礼、尊证等职先后参加了四川省佛教协会宝光寺、峨眉山、石经寺、广德寺的传授三坛大戒法会。 +
+为佛像贴金身,菩萨菩萨
+为佛像贴金身,菩萨菩萨
+为佛像贴金身,菩萨菩萨
++ +
+审核中
+照片需清晰美观,用于信众展示
+仅用于认证,不公开
+第12份功德
+下载功德证书
++ 今日计数 / 今日目标(遍): + + 23 + / + 108 + + +
++ 总计数 / 总目标(遍): + + 23 + / + 108 + + +
++ 功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益 +
+ ++ 功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益功德利益 +
+ +3
+23 遍
+已修行0天 功课总计0遍
++ + + 总58遍 + + + + 今日58遍 + +
+
+ 使用寺院联盟遇到任何疑问都可以联系我
+服务时间:周一至周五 10:00-18:00
+如不在服务时间,留言后我们会及时与您联系
+服务时间:周一至周五 10:00-18:00
+点击即可复制微信号,在微信中添加好友,我们会及时与您联系
+
+ 我的善缘
+待支付
+处理中
+已处理
+全部订单
+请准备好如下材料的扫描件或彩色照片,要求清晰可辨认:
+《宗教场地登记证》
+寺院联盟认证将谨慎、严格的验证真实性,能够更好地保护寺院及用户的合法权益。
+认证资料仅在寺院联盟后台进行备注和核实信息使用,通过认证后将展示在认证页面。
+, or missing
. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm)) {\n removeVnodes([oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n};\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n dir.oldArg = oldDir.arg;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n];\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur, vnode.data.pre);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value, isInPre) {\n if (isInPre || el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. \n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for