├── app.js ├── bower_components └── vue │ ├── .bower.json │ ├── LICENSE │ ├── bower.json │ ├── dist │ ├── vue.js │ └── vue.min.js │ └── src │ ├── api │ ├── child.js │ ├── data.js │ ├── dom.js │ ├── events.js │ ├── global.js │ └── lifecycle.js │ ├── batcher.js │ ├── cache.js │ ├── compiler │ ├── compile.js │ └── transclude.js │ ├── config.js │ ├── directive.js │ ├── directives │ ├── attr.js │ ├── class.js │ ├── cloak.js │ ├── component.js │ ├── el.js │ ├── events.js │ ├── html.js │ ├── if.js │ ├── index.js │ ├── model │ │ ├── checkbox.js │ │ ├── default.js │ │ ├── index.js │ │ ├── radio.js │ │ └── select.js │ ├── on.js │ ├── partial.js │ ├── ref.js │ ├── repeat.js │ ├── show.js │ ├── style.js │ ├── text.js │ ├── transition.js │ └── with.js │ ├── filters │ ├── array-filters.js │ └── index.js │ ├── instance │ ├── compile.js │ ├── events.js │ ├── init.js │ └── scope.js │ ├── observer │ ├── array.js │ ├── dep.js │ ├── index.js │ └── object.js │ ├── parsers │ ├── directive.js │ ├── expression.js │ ├── path.js │ ├── template.js │ └── text.js │ ├── transition │ ├── css.js │ ├── index.js │ └── js.js │ ├── util │ ├── debug.js │ ├── dom.js │ ├── env.js │ ├── filter.js │ ├── index.js │ ├── lang.js │ └── merge-option.js │ ├── vue.js │ └── watcher.js ├── components.html ├── custom-directive.html ├── custom-filter.html ├── directive.html ├── filter.html ├── helloworld.html ├── index.html ├── repeat-object.html ├── slides ├── assets │ ├── 05772EC1-BAB6-4889-854E-0286A73506E9 │ │ ├── 05772EC1-BAB6-4889-854E-0286A73506E9.json │ │ ├── 05772EC1-BAB6-4889-854E-0286A73506E9.jsonp │ │ ├── assets │ │ │ ├── 53722F0E42FCB9106D88F30EF8B21DCD.png │ │ │ └── 87B5ADF71758EC9246A23DED3F69837E.png │ │ └── thumbnail.jpeg │ ├── 06B07B6A-D18B-4997-B8AC-D3DFEFBA88AD │ │ ├── 06B07B6A-D18B-4997-B8AC-D3DFEFBA88AD.json │ │ ├── 06B07B6A-D18B-4997-B8AC-D3DFEFBA88AD.jsonp │ │ ├── assets │ │ │ ├── 9C7A1BDA67EF4DBD810CC07A665B0E2E.png │ │ │ └── DB20D269B3009BE1FC05E0A42BEA8F8F.png │ │ └── thumbnail.jpeg │ ├── 07FD0EB9-2B93-45FE-8524-9A1A6E82BFA2 │ │ ├── 07FD0EB9-2B93-45FE-8524-9A1A6E82BFA2.json │ │ ├── 07FD0EB9-2B93-45FE-8524-9A1A6E82BFA2.jsonp │ │ ├── assets │ │ │ ├── 2E2BE01909F32834B2B03801A95DDA86.png │ │ │ └── 56308231EEA2450B4D6252EDE102D604.png │ │ └── thumbnail.jpeg │ ├── 0CFE5B0C-2A9B-4E19-AE4C-F582F2304378 │ │ ├── 0CFE5B0C-2A9B-4E19-AE4C-F582F2304378.json │ │ ├── 0CFE5B0C-2A9B-4E19-AE4C-F582F2304378.jsonp │ │ ├── assets │ │ │ ├── 25356130A0B7B28EAC9299BD719F273B.png │ │ │ ├── 3D0E5C856E25D3C8103A16A701485871.png │ │ │ ├── 4C2B7B42DFDF4DA043F4DEA937B18157.png │ │ │ ├── A3545A078E0570CC7D4DDBC3CCD5697A.svg │ │ │ └── A3545A078E0570CC7D4DDBC3CCD5697A.svgp │ │ └── thumbnail.jpeg │ ├── 0DC871C1-B5E4-448C-B9E1-8AF07C6C5628 │ │ ├── 0DC871C1-B5E4-448C-B9E1-8AF07C6C5628.json │ │ ├── 0DC871C1-B5E4-448C-B9E1-8AF07C6C5628.jsonp │ │ ├── assets │ │ │ ├── 2FE06FD805E594BC99AC9F4FAB9CCE03.png │ │ │ └── 79CB515BF41F2A7D16C2302917E0B07C.png │ │ └── thumbnail.jpeg │ ├── 11696770-8DCA-4C13-8A0F-DD716B2DDF47 │ │ ├── 11696770-8DCA-4C13-8A0F-DD716B2DDF47.json │ │ ├── 11696770-8DCA-4C13-8A0F-DD716B2DDF47.jsonp │ │ ├── assets │ │ │ ├── 4CD8850E0AF8033094C85C781A5E66D9.png │ │ │ ├── 642C1551874B99A3F6015A1959F06746.svg │ │ │ ├── 642C1551874B99A3F6015A1959F06746.svgp │ │ │ └── 79CB515BF41F2A7D16C2302917E0B07C.png │ │ └── thumbnail.jpeg │ ├── 15010985-C303-492D-BA98-3F2832DA9CBC │ │ ├── 15010985-C303-492D-BA98-3F2832DA9CBC.json │ │ ├── 15010985-C303-492D-BA98-3F2832DA9CBC.jsonp │ │ ├── assets │ │ │ ├── 5FE5454CEC4113FDE43DDD5291A37C0F.png │ │ │ └── 667E937E9A6462ADCAC23AADE09217BE.png │ │ └── thumbnail.jpeg │ ├── 1BD95630-4226-4836-9173-41D09F8336BE │ │ ├── 1BD95630-4226-4836-9173-41D09F8336BE.json │ │ ├── 1BD95630-4226-4836-9173-41D09F8336BE.jsonp │ │ ├── assets │ │ │ ├── 2FE06FD805E594BC99AC9F4FAB9CCE03.png │ │ │ ├── 8B174F6C00DE0C3BC6ED636D9FEDABC9.png │ │ │ ├── BD0036D67541B2D12F08E2E21E040D24.png │ │ │ └── C3C0FC898C94653CAF8AD846D6CCD108.png │ │ └── thumbnail.jpeg │ ├── 1EE2B9DE-CC6C-4D7D-B021-B0E04E829C13 │ │ ├── 1EE2B9DE-CC6C-4D7D-B021-B0E04E829C13.json │ │ ├── 1EE2B9DE-CC6C-4D7D-B021-B0E04E829C13.jsonp │ │ ├── assets │ │ │ ├── 1D21CB53A166B86A35C20F208946EFD2.png │ │ │ ├── 5FE5454CEC4113FDE43DDD5291A37C0F.png │ │ │ └── 93A3B80C55BE491CC5976343EC6F7E38.png │ │ └── thumbnail.jpeg │ ├── 22239A1C-5F1D-4D91-86F8-3E27BCB89AC4 │ │ ├── 22239A1C-5F1D-4D91-86F8-3E27BCB89AC4.json │ │ ├── 22239A1C-5F1D-4D91-86F8-3E27BCB89AC4.jsonp │ │ ├── assets │ │ │ ├── 236F7B14610353B595358303E1E7023E.png │ │ │ ├── 53722F0E42FCB9106D88F30EF8B21DCD.png │ │ │ └── 8081A7A3D78A51469E7C055F1FA59716.png │ │ └── thumbnail.jpeg │ ├── 294B63FC-6DE9-4F90-942F-023C1ADA5C26 │ │ ├── 294B63FC-6DE9-4F90-942F-023C1ADA5C26.json │ │ ├── 294B63FC-6DE9-4F90-942F-023C1ADA5C26.jsonp │ │ ├── assets │ │ │ ├── 58D1B98EC40548988C1DC9E6F410ED4A.png │ │ │ └── 7627875620CEBCCCC05719C708EC66BF.png │ │ └── thumbnail.jpeg │ ├── 2FED693E-AFF5-47EB-9814-60111FD5A2CB │ │ ├── 2FED693E-AFF5-47EB-9814-60111FD5A2CB.json │ │ ├── 2FED693E-AFF5-47EB-9814-60111FD5A2CB.jsonp │ │ ├── assets │ │ │ ├── 60A772525D5E4A5DD3D6710C6636A51B.png │ │ │ └── 87B5ADF71758EC9246A23DED3F69837E.png │ │ └── thumbnail.jpeg │ ├── 3D7B2682-825C-4B09-87F4-96FF11BBEA03 │ │ ├── 3D7B2682-825C-4B09-87F4-96FF11BBEA03.json │ │ ├── 3D7B2682-825C-4B09-87F4-96FF11BBEA03.jsonp │ │ ├── assets │ │ │ ├── 93A3B80C55BE491CC5976343EC6F7E38.png │ │ │ └── FCF9FFDD0961D1521C71CABFCB0BBAF8.png │ │ └── thumbnail.jpeg │ ├── 3FC1684C-094D-477B-8945-F9CB861072F3 │ │ ├── 3FC1684C-094D-477B-8945-F9CB861072F3.json │ │ ├── 3FC1684C-094D-477B-8945-F9CB861072F3.jsonp │ │ ├── assets │ │ │ ├── 1F2CE63D39DDF2663393BB21D21E266F.png │ │ │ ├── 25E79730E0E70C326736B0751A3DF9E6.png │ │ │ └── 81F5B1221CC2ADFF1EDB418691EFF26A.png │ │ └── thumbnail.jpeg │ ├── 4711CDD9-056D-4D57-B12D-3AB02B1E2433 │ │ ├── 4711CDD9-056D-4D57-B12D-3AB02B1E2433.json │ │ ├── 4711CDD9-056D-4D57-B12D-3AB02B1E2433.jsonp │ │ ├── assets │ │ │ ├── 667E937E9A6462ADCAC23AADE09217BE.png │ │ │ ├── 77D2749399E063F6ABACEC5812E5FDBD.png │ │ │ └── 8D3C83A93FF6BADF742283D3F1353973.png │ │ └── thumbnail.jpeg │ ├── 475A47B5-4955-43F3-9F20-04AA8B47B2C3 │ │ ├── 475A47B5-4955-43F3-9F20-04AA8B47B2C3.json │ │ ├── 475A47B5-4955-43F3-9F20-04AA8B47B2C3.jsonp │ │ ├── assets │ │ │ ├── 50AE4DD532BB439E3A073FDE39390448.png │ │ │ ├── 542724EC8BBCAE81902D1CDE0B79B3F5.png │ │ │ ├── 5431BBE6F15EAA33B4F4E3A6EE941AB9.png │ │ │ └── 91F3705362B04DC89C22C3EBC2562C8E.png │ │ └── thumbnail.jpeg │ ├── 5423221E-8B87-46B0-B02B-AD6E981C8457 │ │ ├── 5423221E-8B87-46B0-B02B-AD6E981C8457.json │ │ ├── 5423221E-8B87-46B0-B02B-AD6E981C8457.jsonp │ │ ├── assets │ │ │ ├── 7D797CCA68BE2F19125C4929439CC841.png │ │ │ ├── D4538F76BC9A2AE7BDF094D733871423.png │ │ │ └── D4E24E24F5D3C145DC29A6299E963616.png │ │ └── thumbnail.jpeg │ ├── 72499AFC-26FC-4A75-A29C-627B47BE3EC5 │ │ ├── 72499AFC-26FC-4A75-A29C-627B47BE3EC5.json │ │ ├── 72499AFC-26FC-4A75-A29C-627B47BE3EC5.jsonp │ │ ├── assets │ │ │ ├── 25E79730E0E70C326736B0751A3DF9E6.png │ │ │ ├── 880CEE3DC284107933B252C0592446C3.png │ │ │ └── FC6A1EB9D34BABD4B9A4570F6C199DFB.png │ │ └── thumbnail.jpeg │ ├── 78400D81-7500-4992-975E-D4CF8E8E39C4 │ │ ├── 78400D81-7500-4992-975E-D4CF8E8E39C4.json │ │ ├── 78400D81-7500-4992-975E-D4CF8E8E39C4.jsonp │ │ ├── assets │ │ │ ├── 60A772525D5E4A5DD3D6710C6636A51B.png │ │ │ ├── 7E3C58AA1DBB41A743E787E0091A2ECB.png │ │ │ └── D0879CFDF965E00FBD01ACBCDA1A9DB5.png │ │ └── thumbnail.jpeg │ ├── 7EDAA3B6-41C4-4CCA-9B8A-795C04FA38AE │ │ ├── 7EDAA3B6-41C4-4CCA-9B8A-795C04FA38AE.json │ │ ├── 7EDAA3B6-41C4-4CCA-9B8A-795C04FA38AE.jsonp │ │ ├── assets │ │ │ ├── 2E1223C416AEB31AA774E56502F86FF1.png │ │ │ └── 81F5B1221CC2ADFF1EDB418691EFF26A.png │ │ └── thumbnail.jpeg │ ├── 81E4732A-C2A0-455B-994C-32635578F69A │ │ ├── 81E4732A-C2A0-455B-994C-32635578F69A.json │ │ ├── 81E4732A-C2A0-455B-994C-32635578F69A.jsonp │ │ ├── assets │ │ │ ├── 28681002C688BC60E558CD2526988542.png │ │ │ ├── 5620F6CA3C021981C66902D61C294B8C.png │ │ │ └── 7D797CCA68BE2F19125C4929439CC841.png │ │ └── thumbnail.jpeg │ ├── 840BADDF-5F03-4277-A79C-32148F3A84C6 │ │ ├── 840BADDF-5F03-4277-A79C-32148F3A84C6.json │ │ ├── 840BADDF-5F03-4277-A79C-32148F3A84C6.jsonp │ │ ├── assets │ │ │ ├── 4B4245C3B14A2CC43A6200913653911F.png │ │ │ ├── 5620F6CA3C021981C66902D61C294B8C.png │ │ │ ├── A3545A078E0570CC7D4DDBC3CCD5697A.svg │ │ │ └── A3545A078E0570CC7D4DDBC3CCD5697A.svgp │ │ └── thumbnail.jpeg │ ├── 874A81BF-82FC-4AD6-B21E-3A99D7CD53C9 │ │ ├── 874A81BF-82FC-4AD6-B21E-3A99D7CD53C9.json │ │ ├── 874A81BF-82FC-4AD6-B21E-3A99D7CD53C9.jsonp │ │ ├── assets │ │ │ ├── 0BBA42578D4554F4C83E36F58919E568.png │ │ │ ├── 8CD4FA6B0F1487E8BA89D2548BE49AD7.svg │ │ │ ├── 8CD4FA6B0F1487E8BA89D2548BE49AD7.svgp │ │ │ └── FCF9FFDD0961D1521C71CABFCB0BBAF8.png │ │ └── thumbnail.jpeg │ ├── 92EC2160-6368-47CA-95E6-F6899254B6FC │ │ ├── 92EC2160-6368-47CA-95E6-F6899254B6FC.json │ │ ├── 92EC2160-6368-47CA-95E6-F6899254B6FC.jsonp │ │ ├── assets │ │ │ ├── 4EFCB8F7FFC5A7550F0692E98EC33201.png │ │ │ ├── 77D2749399E063F6ABACEC5812E5FDBD.png │ │ │ ├── 97EF59830117493FA6C5E99D0EA8D492.png │ │ │ ├── C413797BED4CF8C9D58AA3AF1641F7DF.png │ │ │ └── DD501338E4BAA8FAA2D73C9773C2C0F0.png │ │ └── thumbnail.jpeg │ ├── 96DC453D-E03B-4FCA-BE62-F6F9E8335FA0 │ │ ├── 96DC453D-E03B-4FCA-BE62-F6F9E8335FA0.json │ │ ├── 96DC453D-E03B-4FCA-BE62-F6F9E8335FA0.jsonp │ │ ├── assets │ │ │ ├── 1586075BF4E2106EB1DB0D4C9FA90579.png │ │ │ ├── 642C1551874B99A3F6015A1959F06746.svg │ │ │ ├── 642C1551874B99A3F6015A1959F06746.svgp │ │ │ ├── 8CD4FA6B0F1487E8BA89D2548BE49AD7.svg │ │ │ └── 8CD4FA6B0F1487E8BA89D2548BE49AD7.svgp │ │ └── thumbnail.jpeg │ ├── 9C5F6114-2E6C-42A7-A4D4-3243AE5BA6D5 │ │ ├── 9C5F6114-2E6C-42A7-A4D4-3243AE5BA6D5.json │ │ ├── 9C5F6114-2E6C-42A7-A4D4-3243AE5BA6D5.jsonp │ │ ├── assets │ │ │ ├── 56308231EEA2450B4D6252EDE102D604.png │ │ │ ├── 5BA6DF7ACEF516F7DAB78587CF30CE20.svg │ │ │ └── 5BA6DF7ACEF516F7DAB78587CF30CE20.svgp │ │ └── thumbnail.jpeg │ ├── 9F7472CC-2C2A-46CF-A0E6-6FEFEBEB55F0 │ │ ├── 9F7472CC-2C2A-46CF-A0E6-6FEFEBEB55F0.json │ │ ├── 9F7472CC-2C2A-46CF-A0E6-6FEFEBEB55F0.jsonp │ │ ├── assets │ │ │ ├── 17118A34EFD1CD762B7A40E947045F5E.png │ │ │ ├── 1D054EE3861C4688811DD1047D81D0C3.png │ │ │ ├── 8D032FD55FE4A7E271874BE51EB8384C.png │ │ │ ├── A763805D641E95265825057AC938C5B4.png │ │ │ └── ABCD05329AF37E7E8C6D2830478A9824.png │ │ └── thumbnail.jpeg │ ├── A54C9064-3464-4AF3-AB46-6E5AAD7A69C1 │ │ ├── A54C9064-3464-4AF3-AB46-6E5AAD7A69C1.json │ │ ├── A54C9064-3464-4AF3-AB46-6E5AAD7A69C1.jsonp │ │ ├── assets │ │ │ ├── 7B2ADDE39CECFB8E7F4865E60F05673F.png │ │ │ ├── 8B174F6C00DE0C3BC6ED636D9FEDABC9.png │ │ │ ├── 8BFF2195EB4A4CDA217C587C93903997.png │ │ │ └── ABA72E2F9C95D5C8368AB159132B1A0E.png │ │ └── thumbnail.jpeg │ ├── AC1F48D3-20E8-49DF-929B-B4C08312922A │ │ ├── AC1F48D3-20E8-49DF-929B-B4C08312922A.json │ │ ├── AC1F48D3-20E8-49DF-929B-B4C08312922A.jsonp │ │ ├── assets │ │ │ ├── 171A630E74E2536DAF44E93FBD8275FA.png │ │ │ ├── 742E1C6E6DAD42CB496804639A24476F.png │ │ │ └── D4538F76BC9A2AE7BDF094D733871423.png │ │ └── thumbnail.jpeg │ ├── AF00B0D3-39D7-4A0B-8287-DDC5EB45A3C6 │ │ ├── AF00B0D3-39D7-4A0B-8287-DDC5EB45A3C6.json │ │ ├── AF00B0D3-39D7-4A0B-8287-DDC5EB45A3C6.jsonp │ │ ├── assets │ │ │ ├── 171A630E74E2536DAF44E93FBD8275FA.png │ │ │ └── ABCD05329AF37E7E8C6D2830478A9824.png │ │ └── thumbnail.jpeg │ ├── C3E33C45-D41F-4CD8-8111-0D3D353A49BE │ │ ├── C3E33C45-D41F-4CD8-8111-0D3D353A49BE.json │ │ ├── C3E33C45-D41F-4CD8-8111-0D3D353A49BE.jsonp │ │ ├── assets │ │ │ ├── 952AC1E3D080B53438824AAE984C6900.png │ │ │ └── DB20D269B3009BE1FC05E0A42BEA8F8F.png │ │ └── thumbnail.jpeg │ ├── D4E68FB9-A4CF-43EB-9897-5D5C96AAD4A9 │ │ ├── D4E68FB9-A4CF-43EB-9897-5D5C96AAD4A9.json │ │ ├── D4E68FB9-A4CF-43EB-9897-5D5C96AAD4A9.jsonp │ │ ├── assets │ │ │ ├── 542724EC8BBCAE81902D1CDE0B79B3F5.png │ │ │ └── 58D1B98EC40548988C1DC9E6F410ED4A.png │ │ └── thumbnail.jpeg │ ├── D76C260A-690E-4F42-BDEA-1E8B4315337F │ │ ├── D76C260A-690E-4F42-BDEA-1E8B4315337F.json │ │ ├── D76C260A-690E-4F42-BDEA-1E8B4315337F.jsonp │ │ ├── assets │ │ │ ├── 2E2BE01909F32834B2B03801A95DDA86.png │ │ │ ├── 31C67BAF977C6E9A3B08F39A02275F48.svg │ │ │ └── 31C67BAF977C6E9A3B08F39A02275F48.svgp │ │ └── thumbnail.jpeg │ ├── D8B3B48D-3208-4E37-BADC-B2CB888588B0 │ │ ├── D8B3B48D-3208-4E37-BADC-B2CB888588B0.json │ │ ├── D8B3B48D-3208-4E37-BADC-B2CB888588B0.jsonp │ │ ├── assets │ │ │ ├── 2E1223C416AEB31AA774E56502F86FF1.png │ │ │ ├── 31C67BAF977C6E9A3B08F39A02275F48.svg │ │ │ ├── 31C67BAF977C6E9A3B08F39A02275F48.svgp │ │ │ └── C56EF58EFA273D12489B83949D83C653.png │ │ └── thumbnail.jpeg │ ├── DC59983E-2D2E-4857-BC5E-0A61B2BD7E73 │ │ ├── DC59983E-2D2E-4857-BC5E-0A61B2BD7E73.json │ │ ├── DC59983E-2D2E-4857-BC5E-0A61B2BD7E73.jsonp │ │ ├── assets │ │ │ ├── 711C4D8ABB3079EFA9168C3AED48BD0E.png │ │ │ ├── 7E3C58AA1DBB41A743E787E0091A2ECB.png │ │ │ └── DD501338E4BAA8FAA2D73C9773C2C0F0.png │ │ └── thumbnail.jpeg │ ├── E807773F-6D4C-4E84-96AB-10C6CDD667A9 │ │ ├── E807773F-6D4C-4E84-96AB-10C6CDD667A9.json │ │ ├── E807773F-6D4C-4E84-96AB-10C6CDD667A9.jsonp │ │ ├── assets │ │ │ ├── 17118A34EFD1CD762B7A40E947045F5E.png │ │ │ ├── 5431BBE6F15EAA33B4F4E3A6EE941AB9.png │ │ │ ├── 7CFB7A448D7697E0CB0DD96BE64025DF.png │ │ │ └── E10B3EC5840AF4F6FDFDC170376A8B2E.png │ │ └── thumbnail.jpeg │ ├── EE53DED5-F216-4AAE-8F68-232B0260C34F │ │ ├── EE53DED5-F216-4AAE-8F68-232B0260C34F.json │ │ ├── EE53DED5-F216-4AAE-8F68-232B0260C34F.jsonp │ │ ├── assets │ │ │ ├── 6823F2BE24A8C025D9A833B9CE1E0141.png │ │ │ ├── 6DA7BDFEF085F1B09100D86BB912135D.png │ │ │ ├── 8BFF2195EB4A4CDA217C587C93903997.png │ │ │ └── 952AC1E3D080B53438824AAE984C6900.png │ │ └── thumbnail.jpeg │ ├── FC0DD1C5-062F-4032-A8A1-6BCC39A79D2D │ │ ├── FC0DD1C5-062F-4032-A8A1-6BCC39A79D2D.json │ │ ├── FC0DD1C5-062F-4032-A8A1-6BCC39A79D2D.jsonp │ │ ├── assets │ │ │ ├── 05B88398B038746895428D1C9BFF1FE4.png │ │ │ ├── 4C2B7B42DFDF4DA043F4DEA937B18157.png │ │ │ └── FC6A1EB9D34BABD4B9A4570F6C199DFB.png │ │ └── thumbnail.jpeg │ ├── FE7C397F-6778-4E07-8B30-9A68D80D40C8 │ │ ├── FE7C397F-6778-4E07-8B30-9A68D80D40C8.json │ │ ├── FE7C397F-6778-4E07-8B30-9A68D80D40C8.jsonp │ │ ├── assets │ │ │ ├── 236F7B14610353B595358303E1E7023E.png │ │ │ ├── 7627875620CEBCCCC05719C708EC66BF.png │ │ │ ├── 7BB9098BDF104E9D533CB22C37680644.png │ │ │ └── A5EC7D8A732817638C6E1AE68627D0C1.png │ │ └── thumbnail.jpeg │ ├── header.json │ ├── header.jsonp │ ├── player │ │ ├── AnimationManager.js │ │ ├── DebuggingSupport.js │ │ ├── DisplayManager.js │ │ ├── Help.png │ │ ├── HelpPlacardController.js │ │ ├── KNTransitionSlide_Black.png │ │ ├── KNTransitionSwoosh_Shadow.png │ │ ├── KPFObjects.js │ │ ├── KeynoteDHTMLPlayer.css │ │ ├── KeynoteDHTMLPlayer.html │ │ ├── KeynoteDHTMLPlayer.js │ │ ├── NarrationManager.js │ │ ├── NavigatorController.js │ │ ├── OrientationController.js │ │ ├── ScriptManager.js │ │ ├── ShowController.js │ │ ├── SlideManager.js │ │ ├── SlideNumberController.js │ │ ├── StageManager.js │ │ ├── TextureManager.js │ │ ├── TouchController.js │ │ ├── Utilities.js │ │ ├── close_hi@2x.png │ │ ├── close_n@2x.png │ │ ├── close_p@2x.png │ │ ├── left_arrow_mobile_d-hd.png │ │ ├── left_arrow_mobile_d.png │ │ ├── left_arrow_mobile_n-hd.png │ │ ├── left_arrow_mobile_n.png │ │ ├── prototype.js │ │ ├── right_arrow_mobile_d-hd.png │ │ ├── right_arrow_mobile_d.png │ │ ├── right_arrow_mobile_n-hd.png │ │ ├── right_arrow_mobile_n.png │ │ ├── spinner.png │ │ ├── string.js │ │ └── waiting_bezel.png │ └── thumbnail.jpeg └── index.html ├── transication.html ├── v-class.html ├── v-repeat.html └── vuejs .pdf /app.js: -------------------------------------------------------------------------------- 1 | Vue.component('score-star',{ 2 | template: "", 3 | replace: true, 4 | ready:function() { 5 | if(this.$el.hasAttribute('readonly')){ 6 | this.readonly=true; 7 | } 8 | if(this.count){ 9 | this._setstar(this.count); 10 | } 11 | }, 12 | methods:{ 13 | _setstar:function(selectedid){ 14 | var lis=this.$el.children; 15 | var len=lis.length; 16 | if(selectedid&&selectedid>0){ 17 | for(var i=0;i" 8 | ], 9 | "license": "MIT", 10 | "ignore": [ 11 | ".*", 12 | "examples", 13 | "test", 14 | "grunt", 15 | "gruntfile.js", 16 | "*.json", 17 | "*.md" 18 | ], 19 | "homepage": "https://github.com/yyx990803/vue", 20 | "_release": "0.11.10", 21 | "_resolution": { 22 | "type": "version", 23 | "tag": "0.11.10", 24 | "commit": "d257c81a5889d45012f6df39873fba3f8697f0cc" 25 | }, 26 | "_source": "git://github.com/yyx990803/vue.git", 27 | "_target": "~0.11.10", 28 | "_originalSource": "vue", 29 | "_direct": true 30 | } -------------------------------------------------------------------------------- /bower_components/vue/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013-2014 Yuxi Evan You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /bower_components/vue/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue", 3 | "version": "0.11.10", 4 | "main": "dist/vue.js", 5 | "description": "Simple, Fast & Composable MVVM for building interative interfaces", 6 | "authors": ["Evan You "], 7 | "license": "MIT", 8 | "ignore": [ 9 | ".*", 10 | "examples", 11 | "test", 12 | "grunt", 13 | "gruntfile.js", 14 | "*.json", 15 | "*.md" 16 | ] 17 | } -------------------------------------------------------------------------------- /bower_components/vue/src/api/child.js: -------------------------------------------------------------------------------- 1 | var _ = require('../util') 2 | 3 | /** 4 | * Create a child instance that prototypally inehrits 5 | * data on parent. To achieve that we create an intermediate 6 | * constructor with its prototype pointing to parent. 7 | * 8 | * @param {Object} opts 9 | * @param {Function} [BaseCtor] 10 | * @return {Vue} 11 | * @public 12 | */ 13 | 14 | exports.$addChild = function (opts, BaseCtor) { 15 | BaseCtor = BaseCtor || _.Vue 16 | opts = opts || {} 17 | var parent = this 18 | var ChildVue 19 | var inherit = opts.inherit !== undefined 20 | ? opts.inherit 21 | : BaseCtor.options.inherit 22 | if (inherit) { 23 | var ctors = parent._childCtors 24 | ChildVue = ctors[BaseCtor.cid] 25 | if (!ChildVue) { 26 | var optionName = BaseCtor.options.name 27 | var className = optionName 28 | ? _.classify(optionName) 29 | : 'VueComponent' 30 | ChildVue = new Function( 31 | 'return function ' + className + ' (options) {' + 32 | 'this.constructor = ' + className + ';' + 33 | 'this._init(options) }' 34 | )() 35 | ChildVue.options = BaseCtor.options 36 | ChildVue.prototype = this 37 | ctors[BaseCtor.cid] = ChildVue 38 | } 39 | } else { 40 | ChildVue = BaseCtor 41 | } 42 | opts._parent = parent 43 | opts._root = parent.$root 44 | var child = new ChildVue(opts) 45 | return child 46 | } -------------------------------------------------------------------------------- /bower_components/vue/src/api/global.js: -------------------------------------------------------------------------------- 1 | var _ = require('../util') 2 | var mergeOptions = require('../util/merge-option') 3 | 4 | /** 5 | * Expose useful internals 6 | */ 7 | 8 | exports.util = _ 9 | exports.nextTick = _.nextTick 10 | exports.config = require('../config') 11 | 12 | exports.compiler = { 13 | compile: require('../compiler/compile'), 14 | transclude: require('../compiler/transclude') 15 | } 16 | 17 | exports.parsers = { 18 | path: require('../parsers/path'), 19 | text: require('../parsers/text'), 20 | template: require('../parsers/template'), 21 | directive: require('../parsers/directive'), 22 | expression: require('../parsers/expression') 23 | } 24 | 25 | /** 26 | * Each instance constructor, including Vue, has a unique 27 | * cid. This enables us to create wrapped "child 28 | * constructors" for prototypal inheritance and cache them. 29 | */ 30 | 31 | exports.cid = 0 32 | var cid = 1 33 | 34 | /** 35 | * Class inehritance 36 | * 37 | * @param {Object} extendOptions 38 | */ 39 | 40 | exports.extend = function (extendOptions) { 41 | extendOptions = extendOptions || {} 42 | var Super = this 43 | var Sub = createClass( 44 | extendOptions.name || 45 | Super.options.name || 46 | 'VueComponent' 47 | ) 48 | Sub.prototype = Object.create(Super.prototype) 49 | Sub.prototype.constructor = Sub 50 | Sub.cid = cid++ 51 | Sub.options = mergeOptions( 52 | Super.options, 53 | extendOptions 54 | ) 55 | Sub['super'] = Super 56 | // allow further extension 57 | Sub.extend = Super.extend 58 | // create asset registers, so extended classes 59 | // can have their private assets too. 60 | createAssetRegisters(Sub) 61 | return Sub 62 | } 63 | 64 | /** 65 | * A function that returns a sub-class constructor with the 66 | * given name. This gives us much nicer output when 67 | * logging instances in the console. 68 | * 69 | * @param {String} name 70 | * @return {Function} 71 | */ 72 | 73 | function createClass (name) { 74 | return new Function( 75 | 'return function ' + _.classify(name) + 76 | ' (options) { this._init(options) }' 77 | )() 78 | } 79 | 80 | /** 81 | * Plugin system 82 | * 83 | * @param {Object} plugin 84 | */ 85 | 86 | exports.use = function (plugin) { 87 | // additional parameters 88 | var args = _.toArray(arguments, 1) 89 | args.unshift(this) 90 | if (typeof plugin.install === 'function') { 91 | plugin.install.apply(plugin, args) 92 | } else { 93 | plugin.apply(null, args) 94 | } 95 | return this 96 | } 97 | 98 | /** 99 | * Define asset registration methods on a constructor. 100 | * 101 | * @param {Function} Constructor 102 | */ 103 | 104 | var assetTypes = [ 105 | 'directive', 106 | 'filter', 107 | 'partial', 108 | 'transition' 109 | ] 110 | 111 | function createAssetRegisters (Constructor) { 112 | 113 | /* Asset registration methods share the same signature: 114 | * 115 | * @param {String} id 116 | * @param {*} definition 117 | */ 118 | 119 | assetTypes.forEach(function (type) { 120 | Constructor[type] = function (id, definition) { 121 | if (!definition) { 122 | return this.options[type + 's'][id] 123 | } else { 124 | this.options[type + 's'][id] = definition 125 | } 126 | } 127 | }) 128 | 129 | /** 130 | * Component registration needs to automatically invoke 131 | * Vue.extend on object values. 132 | * 133 | * @param {String} id 134 | * @param {Object|Function} definition 135 | */ 136 | 137 | Constructor.component = function (id, definition) { 138 | if (!definition) { 139 | return this.options.components[id] 140 | } else { 141 | if (_.isPlainObject(definition)) { 142 | definition.name = id 143 | definition = _.Vue.extend(definition) 144 | } 145 | this.options.components[id] = definition 146 | } 147 | } 148 | } 149 | 150 | createAssetRegisters(exports) -------------------------------------------------------------------------------- /bower_components/vue/src/api/lifecycle.js: -------------------------------------------------------------------------------- 1 | var _ = require('../util') 2 | var compile = require('../compiler/compile') 3 | 4 | /** 5 | * Set instance target element and kick off the compilation 6 | * process. The passed in `el` can be a selector string, an 7 | * existing Element, or a DocumentFragment (for block 8 | * instances). 9 | * 10 | * @param {Element|DocumentFragment|string} el 11 | * @public 12 | */ 13 | 14 | exports.$mount = function (el) { 15 | if (this._isCompiled) { 16 | _.warn('$mount() should be called only once.') 17 | return 18 | } 19 | if (!el) { 20 | el = document.createElement('div') 21 | } else if (typeof el === 'string') { 22 | var selector = el 23 | el = document.querySelector(el) 24 | if (!el) { 25 | _.warn('Cannot find element: ' + selector) 26 | return 27 | } 28 | } 29 | this._compile(el) 30 | this._isCompiled = true 31 | this._callHook('compiled') 32 | if (_.inDoc(this.$el)) { 33 | this._callHook('attached') 34 | this._initDOMHooks() 35 | ready.call(this) 36 | } else { 37 | this._initDOMHooks() 38 | this.$once('hook:attached', ready) 39 | } 40 | return this 41 | } 42 | 43 | /** 44 | * Mark an instance as ready. 45 | */ 46 | 47 | function ready () { 48 | this._isAttached = true 49 | this._isReady = true 50 | this._callHook('ready') 51 | } 52 | 53 | /** 54 | * Teardown the instance, simply delegate to the internal 55 | * _destroy. 56 | */ 57 | 58 | exports.$destroy = function (remove, deferCleanup) { 59 | this._destroy(remove, deferCleanup) 60 | } 61 | 62 | /** 63 | * Partially compile a piece of DOM and return a 64 | * decompile function. 65 | * 66 | * @param {Element|DocumentFragment} el 67 | * @return {Function} 68 | */ 69 | 70 | exports.$compile = function (el) { 71 | return compile(el, this.$options, true)(this, el) 72 | } -------------------------------------------------------------------------------- /bower_components/vue/src/batcher.js: -------------------------------------------------------------------------------- 1 | var _ = require('./util') 2 | var MAX_UPDATE_COUNT = 10 3 | 4 | // we have two separate queues: one for directive updates 5 | // and one for user watcher registered via $watch(). 6 | // we want to guarantee directive updates to be called 7 | // before user watchers so that when user watchers are 8 | // triggered, the DOM would have already been in updated 9 | // state. 10 | var queue = [] 11 | var userQueue = [] 12 | var has = {} 13 | var waiting = false 14 | var flushing = false 15 | 16 | /** 17 | * Reset the batcher's state. 18 | */ 19 | 20 | function reset () { 21 | queue = [] 22 | userQueue = [] 23 | has = {} 24 | waiting = false 25 | flushing = false 26 | } 27 | 28 | /** 29 | * Flush both queues and run the jobs. 30 | */ 31 | 32 | function flush () { 33 | flushing = true 34 | run(queue) 35 | run(userQueue) 36 | reset() 37 | } 38 | 39 | /** 40 | * Run the jobs in a single queue. 41 | * 42 | * @param {Array} queue 43 | */ 44 | 45 | function run (queue) { 46 | // do not cache length because more jobs might be pushed 47 | // as we run existing jobs 48 | for (var i = 0; i < queue.length; i++) { 49 | queue[i].run() 50 | } 51 | } 52 | 53 | /** 54 | * Push a job into the job queue. 55 | * Jobs with duplicate IDs will be skipped unless it's 56 | * pushed when the queue is being flushed. 57 | * 58 | * @param {Object} job 59 | * properties: 60 | * - {String|Number} id 61 | * - {Function} run 62 | */ 63 | 64 | exports.push = function (job) { 65 | var id = job.id 66 | if (!id || !has[id] || flushing) { 67 | if (!has[id]) { 68 | has[id] = 1 69 | } else { 70 | has[id]++ 71 | // detect possible infinite update loops 72 | if (has[id] > MAX_UPDATE_COUNT) { 73 | _.warn( 74 | 'You may have an infinite update loop for the ' + 75 | 'watcher with expression: "' + job.expression + '".' 76 | ) 77 | return 78 | } 79 | } 80 | // A user watcher callback could trigger another 81 | // directive update during the flushing; at that time 82 | // the directive queue would already have been run, so 83 | // we call that update immediately as it is pushed. 84 | if (flushing && !job.user) { 85 | job.run() 86 | return 87 | } 88 | ;(job.user ? userQueue : queue).push(job) 89 | if (!waiting) { 90 | waiting = true 91 | _.nextTick(flush) 92 | } 93 | } 94 | } -------------------------------------------------------------------------------- /bower_components/vue/src/cache.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A doubly linked list-based Least Recently Used (LRU) 3 | * cache. Will keep most recently used items while 4 | * discarding least recently used items when its limit is 5 | * reached. This is a bare-bone version of 6 | * Rasmus Andersson's js-lru: 7 | * 8 | * https://github.com/rsms/js-lru 9 | * 10 | * @param {Number} limit 11 | * @constructor 12 | */ 13 | 14 | function Cache (limit) { 15 | this.size = 0 16 | this.limit = limit 17 | this.head = this.tail = undefined 18 | this._keymap = {} 19 | } 20 | 21 | var p = Cache.prototype 22 | 23 | /** 24 | * Put into the cache associated with . 25 | * Returns the entry which was removed to make room for 26 | * the new entry. Otherwise undefined is returned. 27 | * (i.e. if there was enough room already). 28 | * 29 | * @param {String} key 30 | * @param {*} value 31 | * @return {Entry|undefined} 32 | */ 33 | 34 | p.put = function (key, value) { 35 | var entry = { 36 | key:key, 37 | value:value 38 | } 39 | this._keymap[key] = entry 40 | if (this.tail) { 41 | this.tail.newer = entry 42 | entry.older = this.tail 43 | } else { 44 | this.head = entry 45 | } 46 | this.tail = entry 47 | if (this.size === this.limit) { 48 | return this.shift() 49 | } else { 50 | this.size++ 51 | } 52 | } 53 | 54 | /** 55 | * Purge the least recently used (oldest) entry from the 56 | * cache. Returns the removed entry or undefined if the 57 | * cache was empty. 58 | */ 59 | 60 | p.shift = function () { 61 | var entry = this.head 62 | if (entry) { 63 | this.head = this.head.newer 64 | this.head.older = undefined 65 | entry.newer = entry.older = undefined 66 | this._keymap[entry.key] = undefined 67 | } 68 | return entry 69 | } 70 | 71 | /** 72 | * Get and register recent use of . Returns the value 73 | * associated with or undefined if not in cache. 74 | * 75 | * @param {String} key 76 | * @param {Boolean} returnEntry 77 | * @return {Entry|*} 78 | */ 79 | 80 | p.get = function (key, returnEntry) { 81 | var entry = this._keymap[key] 82 | if (entry === undefined) return 83 | if (entry === this.tail) { 84 | return returnEntry 85 | ? entry 86 | : entry.value 87 | } 88 | // HEAD--------------TAIL 89 | // <.older .newer> 90 | // <--- add direction -- 91 | // A B C E 92 | if (entry.newer) { 93 | if (entry === this.head) { 94 | this.head = entry.newer 95 | } 96 | entry.newer.older = entry.older // C <-- E. 97 | } 98 | if (entry.older) { 99 | entry.older.newer = entry.newer // C. --> E 100 | } 101 | entry.newer = undefined // D --x 102 | entry.older = this.tail // D. --> E 103 | if (this.tail) { 104 | this.tail.newer = entry // E. <-- D 105 | } 106 | this.tail = entry 107 | return returnEntry 108 | ? entry 109 | : entry.value 110 | } 111 | 112 | module.exports = Cache -------------------------------------------------------------------------------- /bower_components/vue/src/config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | /** 4 | * The prefix to look for when parsing directives. 5 | * 6 | * @type {String} 7 | */ 8 | 9 | prefix: 'v-', 10 | 11 | /** 12 | * Whether to print debug messages. 13 | * Also enables stack trace for warnings. 14 | * 15 | * @type {Boolean} 16 | */ 17 | 18 | debug: false, 19 | 20 | /** 21 | * Whether to suppress warnings. 22 | * 23 | * @type {Boolean} 24 | */ 25 | 26 | silent: false, 27 | 28 | /** 29 | * Whether allow observer to alter data objects' 30 | * __proto__. 31 | * 32 | * @type {Boolean} 33 | */ 34 | 35 | proto: true, 36 | 37 | /** 38 | * Whether to parse mustache tags in templates. 39 | * 40 | * @type {Boolean} 41 | */ 42 | 43 | interpolate: true, 44 | 45 | /** 46 | * Whether to use async rendering. 47 | */ 48 | 49 | async: true, 50 | 51 | /** 52 | * Whether to warn against errors caught when evaluating 53 | * expressions. 54 | */ 55 | 56 | warnExpressionErrors: true, 57 | 58 | /** 59 | * Internal flag to indicate the delimiters have been 60 | * changed. 61 | * 62 | * @type {Boolean} 63 | */ 64 | 65 | _delimitersChanged: true 66 | 67 | } 68 | 69 | /** 70 | * Interpolation delimiters. 71 | * We need to mark the changed flag so that the text parser 72 | * knows it needs to recompile the regex. 73 | * 74 | * @type {Array} 75 | */ 76 | 77 | var delimiters = ['{{', '}}'] 78 | Object.defineProperty(module.exports, 'delimiters', { 79 | get: function () { 80 | return delimiters 81 | }, 82 | set: function (val) { 83 | delimiters = val 84 | this._delimitersChanged = true 85 | } 86 | }) -------------------------------------------------------------------------------- /bower_components/vue/src/directives/attr.js: -------------------------------------------------------------------------------- 1 | // xlink 2 | var xlinkNS = 'http://www.w3.org/1999/xlink' 3 | var xlinkRE = /^xlink:/ 4 | 5 | module.exports = { 6 | 7 | priority: 850, 8 | 9 | bind: function () { 10 | var name = this.arg 11 | this.update = xlinkRE.test(name) 12 | ? xlinkHandler 13 | : defaultHandler 14 | } 15 | 16 | } 17 | 18 | function defaultHandler (value) { 19 | if (value || value === 0) { 20 | this.el.setAttribute(this.arg, value) 21 | } else { 22 | this.el.removeAttribute(this.arg) 23 | } 24 | } 25 | 26 | function xlinkHandler (value) { 27 | if (value != null) { 28 | this.el.setAttributeNS(xlinkNS, this.arg, value) 29 | } else { 30 | this.el.removeAttributeNS(xlinkNS, 'href') 31 | } 32 | } -------------------------------------------------------------------------------- /bower_components/vue/src/directives/class.js: -------------------------------------------------------------------------------- 1 | var _ = require('../util') 2 | var addClass = _.addClass 3 | var removeClass = _.removeClass 4 | 5 | module.exports = function (value) { 6 | if (this.arg) { 7 | var method = value ? addClass : removeClass 8 | method(this.el, this.arg) 9 | } else { 10 | if (this.lastVal) { 11 | removeClass(this.el, this.lastVal) 12 | } 13 | if (value) { 14 | addClass(this.el, value) 15 | this.lastVal = value 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /bower_components/vue/src/directives/cloak.js: -------------------------------------------------------------------------------- 1 | var config = require('../config') 2 | 3 | module.exports = { 4 | 5 | bind: function () { 6 | var el = this.el 7 | this.vm.$once('hook:compiled', function () { 8 | el.removeAttribute(config.prefix + 'cloak') 9 | }) 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /bower_components/vue/src/directives/el.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | isLiteral: true, 4 | 5 | bind: function () { 6 | this.vm.$$[this.expression] = this.el 7 | }, 8 | 9 | unbind: function () { 10 | delete this.vm.$$[this.expression] 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /bower_components/vue/src/directives/events.js: -------------------------------------------------------------------------------- 1 | var _ = require('../util') 2 | 3 | module.exports = { 4 | 5 | acceptStatement: true, 6 | 7 | bind: function () { 8 | var child = this.el.__vue__ 9 | if (!child || this.vm !== child.$parent) { 10 | _.warn( 11 | '`v-events` should only be used on a child component ' + 12 | 'from the parent template.' 13 | ) 14 | return 15 | } 16 | }, 17 | 18 | update: function (handler, oldHandler) { 19 | if (typeof handler !== 'function') { 20 | _.warn( 21 | 'Directive "v-events:' + this.expression + '" ' + 22 | 'expects a function value.' 23 | ) 24 | return 25 | } 26 | var child = this.el.__vue__ 27 | if (oldHandler) { 28 | child.$off(this.arg, oldHandler) 29 | } 30 | child.$on(this.arg, handler) 31 | } 32 | 33 | // when child is destroyed, all events are turned off, 34 | // so no need for unbind here. 35 | 36 | } -------------------------------------------------------------------------------- /bower_components/vue/src/directives/html.js: -------------------------------------------------------------------------------- 1 | var _ = require('../util') 2 | var templateParser = require('../parsers/template') 3 | 4 | module.exports = { 5 | 6 | bind: function () { 7 | // a comment node means this is a binding for 8 | // {{{ inline unescaped html }}} 9 | if (this.el.nodeType === 8) { 10 | // hold nodes 11 | this.nodes = [] 12 | } 13 | }, 14 | 15 | update: function (value) { 16 | value = _.toString(value) 17 | if (this.nodes) { 18 | this.swap(value) 19 | } else { 20 | this.el.innerHTML = value 21 | } 22 | }, 23 | 24 | swap: function (value) { 25 | // remove old nodes 26 | var i = this.nodes.length 27 | while (i--) { 28 | _.remove(this.nodes[i]) 29 | } 30 | // convert new value to a fragment 31 | // do not attempt to retrieve from id selector 32 | var frag = templateParser.parse(value, true, true) 33 | // save a reference to these nodes so we can remove later 34 | this.nodes = _.toArray(frag.childNodes) 35 | _.before(frag, this.el) 36 | } 37 | 38 | } -------------------------------------------------------------------------------- /bower_components/vue/src/directives/if.js: -------------------------------------------------------------------------------- 1 | var _ = require('../util') 2 | var compile = require('../compiler/compile') 3 | var templateParser = require('../parsers/template') 4 | var transition = require('../transition') 5 | 6 | module.exports = { 7 | 8 | bind: function () { 9 | var el = this.el 10 | if (!el.__vue__) { 11 | this.start = document.createComment('v-if-start') 12 | this.end = document.createComment('v-if-end') 13 | _.replace(el, this.end) 14 | _.before(this.start, this.end) 15 | if (el.tagName === 'TEMPLATE') { 16 | this.template = templateParser.parse(el, true) 17 | } else { 18 | this.template = document.createDocumentFragment() 19 | this.template.appendChild(templateParser.clone(el)) 20 | } 21 | // compile the nested partial 22 | this.linker = compile( 23 | this.template, 24 | this.vm.$options, 25 | true 26 | ) 27 | } else { 28 | this.invalid = true 29 | _.warn( 30 | 'v-if="' + this.expression + '" cannot be ' + 31 | 'used on an already mounted instance.' 32 | ) 33 | } 34 | }, 35 | 36 | update: function (value) { 37 | if (this.invalid) return 38 | if (value) { 39 | // avoid duplicate compiles, since update() can be 40 | // called with different truthy values 41 | if (!this.unlink) { 42 | var frag = templateParser.clone(this.template) 43 | this.compile(frag) 44 | } 45 | } else { 46 | this.teardown() 47 | } 48 | }, 49 | 50 | // NOTE: this function is shared in v-partial 51 | compile: function (frag) { 52 | var vm = this.vm 53 | // the linker is not guaranteed to be present because 54 | // this function might get called by v-partial 55 | this.unlink = this.linker 56 | ? this.linker(vm, frag) 57 | : vm.$compile(frag) 58 | transition.blockAppend(frag, this.end, vm) 59 | // call attached for all the child components created 60 | // during the compilation 61 | if (_.inDoc(vm.$el)) { 62 | var children = this.getContainedComponents() 63 | if (children) children.forEach(callAttach) 64 | } 65 | }, 66 | 67 | // NOTE: this function is shared in v-partial 68 | teardown: function () { 69 | if (!this.unlink) return 70 | // collect children beforehand 71 | var children 72 | if (_.inDoc(this.vm.$el)) { 73 | children = this.getContainedComponents() 74 | } 75 | transition.blockRemove(this.start, this.end, this.vm) 76 | if (children) children.forEach(callDetach) 77 | this.unlink() 78 | this.unlink = null 79 | }, 80 | 81 | // NOTE: this function is shared in v-partial 82 | getContainedComponents: function () { 83 | var vm = this.vm 84 | var start = this.start.nextSibling 85 | var end = this.end 86 | var selfCompoents = 87 | vm._children.length && 88 | vm._children.filter(contains) 89 | var transComponents = 90 | vm._transCpnts && 91 | vm._transCpnts.filter(contains) 92 | 93 | function contains (c) { 94 | var cur = start 95 | var next 96 | while (next !== end) { 97 | next = cur.nextSibling 98 | if (cur.contains(c.$el)) { 99 | return true 100 | } 101 | cur = next 102 | } 103 | return false 104 | } 105 | 106 | return selfCompoents 107 | ? transComponents 108 | ? selfCompoents.concat(transComponents) 109 | : selfCompoents 110 | : transComponents 111 | }, 112 | 113 | // NOTE: this function is shared in v-partial 114 | unbind: function () { 115 | if (this.unlink) this.unlink() 116 | } 117 | 118 | } 119 | 120 | function callAttach (child) { 121 | if (!child._isAttached) { 122 | child._callHook('attached') 123 | } 124 | } 125 | 126 | function callDetach (child) { 127 | if (child._isAttached) { 128 | child._callHook('detached') 129 | } 130 | } -------------------------------------------------------------------------------- /bower_components/vue/src/directives/index.js: -------------------------------------------------------------------------------- 1 | // manipulation directives 2 | exports.text = require('./text') 3 | exports.html = require('./html') 4 | exports.attr = require('./attr') 5 | exports.show = require('./show') 6 | exports['class'] = require('./class') 7 | exports.el = require('./el') 8 | exports.ref = require('./ref') 9 | exports.cloak = require('./cloak') 10 | exports.style = require('./style') 11 | exports.partial = require('./partial') 12 | exports.transition = require('./transition') 13 | 14 | // event listener directives 15 | exports.on = require('./on') 16 | exports.model = require('./model') 17 | 18 | // child vm directives 19 | exports.component = require('./component') 20 | exports.repeat = require('./repeat') 21 | exports['if'] = require('./if') 22 | 23 | // child vm communication directives 24 | exports['with'] = require('./with') 25 | exports.events = require('./events') -------------------------------------------------------------------------------- /bower_components/vue/src/directives/model/checkbox.js: -------------------------------------------------------------------------------- 1 | var _ = require('../../util') 2 | 3 | module.exports = { 4 | 5 | bind: function () { 6 | var self = this 7 | var el = this.el 8 | this.listener = function () { 9 | self.set(el.checked, true) 10 | } 11 | _.on(el, 'change', this.listener) 12 | if (el.checked) { 13 | this._initValue = el.checked 14 | } 15 | }, 16 | 17 | update: function (value) { 18 | this.el.checked = !!value 19 | }, 20 | 21 | unbind: function () { 22 | _.off(this.el, 'change', this.listener) 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /bower_components/vue/src/directives/model/index.js: -------------------------------------------------------------------------------- 1 | var _ = require('../../util') 2 | 3 | var handlers = { 4 | _default: require('./default'), 5 | radio: require('./radio'), 6 | select: require('./select'), 7 | checkbox: require('./checkbox') 8 | } 9 | 10 | module.exports = { 11 | 12 | priority: 800, 13 | twoWay: true, 14 | handlers: handlers, 15 | 16 | /** 17 | * Possible elements: 18 | *