diff --git a/build/webpack.config.dev.js b/build/webpack.config.dev.js index a70c778a0..2a1b95031 100644 --- a/build/webpack.config.dev.js +++ b/build/webpack.config.dev.js @@ -1,9 +1,8 @@ const webpack = require('webpack'); const path = require('path'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); const ExtractTextPlugin = require('extract-text-webpack-plugin'); const ProgressBarPlugin = require('progress-bar-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin'); const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); const isProduction = process.env.NODE_ENV === 'production'; const docConfig = require('../docs/src/doc.config'); @@ -127,7 +126,6 @@ module.exports = { minChunks: 2, filename: isProduction ? 'vendor.[hash:8].js' : 'vendor.js' }), - new OptimizeCssAssetsPlugin(), new ExtractTextPlugin({ filename: isProduction ? '[name].[hash:8].css' : '[name].css', allChunks: true diff --git a/docs/examples-docs/button.md b/docs/examples-docs/button.md index a5bfd47d2..6938cbe52 100644 --- a/docs/examples-docs/button.md +++ b/docs/examples-docs/button.md @@ -74,7 +74,8 @@ Vue.component(Button.name, Button); :::demo 加载状态 ```html - + + ``` ::: diff --git a/docs/examples-docs/changelog.md b/docs/examples-docs/changelog.md index 10b611047..525695eca 100644 --- a/docs/examples-docs/changelog.md +++ b/docs/examples-docs/changelog.md @@ -1,412 +1,78 @@ ## 更新日志 -## [v0.9.2](https://github.com/youzan/vant/tree/v0.9.2) (2017-09-08) -[Full Changelog](https://github.com/youzan/vant/compare/v0.9.1...v0.9.2) +## [v0.7.8](https://github.com/pangxie1991/vant/tree/v0.7.8) (2017-08-10) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.7.7...v0.7.8) -**非兼容更新和新特性:** +## [v0.7.7](https://github.com/pangxie1991/vant/tree/v0.7.7) (2017-08-09) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.7.6...v0.7.7) -- add NavBar component [\#121](https://github.com/youzan/vant/pull/121) ([chenjiahan](https://github.com/chenjiahan)) -- Rename some components and use more suitable names [\#120](https://github.com/youzan/vant/pull/120) ([chenjiahan](https://github.com/chenjiahan)) +## [v0.7.6](https://github.com/pangxie1991/vant/tree/v0.7.6) (2017-08-08) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.7.5...v0.7.6) -**合并的 Pull Request (可能有不兼容改动):** +## [v0.7.5](https://github.com/pangxie1991/vant/tree/v0.7.5) (2017-08-08) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.7.3...v0.7.5) -- sku组件迁移 [\#123](https://github.com/youzan/vant/pull/123) ([w91](https://github.com/w91)) +## [v0.7.3](https://github.com/pangxie1991/vant/tree/v0.7.3) (2017-08-04) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.7.2...v0.7.3) -## [v0.9.1](https://github.com/youzan/vant/tree/v0.9.1) (2017-09-07) -[Full Changelog](https://github.com/youzan/vant/compare/v0.9.0...v0.9.1) +## [v0.7.2](https://github.com/pangxie1991/vant/tree/v0.7.2) (2017-07-31) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.6.6...v0.7.2) -**修复:** +## [v0.6.6](https://github.com/pangxie1991/vant/tree/v0.6.6) (2017-07-15) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.6.5...v0.6.6) -- Toast: fix background color [\#118](https://github.com/youzan/vant/pull/118) ([chenjiahan](https://github.com/chenjiahan)) +## [v0.6.5](https://github.com/pangxie1991/vant/tree/v0.6.5) (2017-07-11) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.6.4...v0.6.5) -**处理的 Issue:** +## [v0.6.4](https://github.com/pangxie1991/vant/tree/v0.6.4) (2017-07-06) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.6.3...v0.6.4) -- 请问captain-ui 开源了吗? [\#116](https://github.com/youzan/vant/issues/116) +## [v0.6.3](https://github.com/pangxie1991/vant/tree/v0.6.3) (2017-07-04) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.6.2...v0.6.3) -## [v0.9.0](https://github.com/youzan/vant/tree/v0.9.0) (2017-09-07) -[Full Changelog](https://github.com/youzan/vant/compare/v0.8.9...v0.9.0) +## [v0.6.2](https://github.com/pangxie1991/vant/tree/v0.6.2) (2017-06-26) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.6.1...v0.6.2) -**非兼容更新和新特性:** +## [v0.6.1](https://github.com/pangxie1991/vant/tree/v0.6.1) (2017-06-19) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.6.0...v0.6.1) -- add PullRefresh component [\#117](https://github.com/youzan/vant/pull/117) ([chenjiahan](https://github.com/chenjiahan)) -- Build: analyzes component dependencies when build style entries [\#115](https://github.com/youzan/vant/pull/115) ([chenjiahan](https://github.com/chenjiahan)) -- Toast: use flex layout, support loading with text, improve performance [\#114](https://github.com/youzan/vant/pull/114) ([chenjiahan](https://github.com/chenjiahan)) -- Card: support num and price props [\#112](https://github.com/youzan/vant/pull/112) ([chenjiahan](https://github.com/chenjiahan)) -- vant-css: use hairline classes instead of mixins [\#110](https://github.com/youzan/vant/pull/110) ([chenjiahan](https://github.com/chenjiahan)) -- update `popup` and `quickstart` readme [\#109](https://github.com/youzan/vant/pull/109) ([cookfront](https://github.com/cookfront)) -- add OrderCoupon component [\#108](https://github.com/youzan/vant/pull/108) ([chenjiahan](https://github.com/chenjiahan)) -- Doc: improve site load speed [\#107](https://github.com/youzan/vant/pull/107) ([chenjiahan](https://github.com/chenjiahan)) +## [v0.6.0](https://github.com/pangxie1991/vant/tree/v0.6.0) (2017-06-15) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.5.12...v0.6.0) -**修复:** +## [v0.5.12](https://github.com/pangxie1991/vant/tree/v0.5.12) (2017-06-02) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.5.11...v0.5.12) -- Fix: swipe tabs animation time and timing function [\#111](https://github.com/youzan/vant/pull/111) ([cookfront](https://github.com/cookfront)) -- hide indicators when one swipe page [\#106](https://github.com/youzan/vant/pull/106) ([Raistlin916](https://github.com/Raistlin916)) +## [v0.5.11](https://github.com/pangxie1991/vant/tree/v0.5.11) (2017-05-25) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.5.10...v0.5.11) -**合并的 Pull Request (可能有不兼容改动):** +## [v0.5.10](https://github.com/pangxie1991/vant/tree/v0.5.10) (2017-05-25) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.5.9...v0.5.10) -- 新增:Area(省市区选择)组件 [\#113](https://github.com/youzan/vant/pull/113) ([cookfront](https://github.com/cookfront)) +## [v0.5.9](https://github.com/pangxie1991/vant/tree/v0.5.9) (2017-05-25) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.5.8...v0.5.9) -## [v0.8.9](https://github.com/youzan/vant/tree/v0.8.9) (2017-09-01) -[Full Changelog](https://github.com/youzan/vant/compare/v0.8.8...v0.8.9) +## [v0.5.8](https://github.com/pangxie1991/vant/tree/v0.5.8) (2017-05-25) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.5.7...v0.5.8) -## [v0.8.8](https://github.com/youzan/vant/tree/v0.8.8) (2017-09-01) -[Full Changelog](https://github.com/youzan/vant/compare/v0.8.7...v0.8.8) +## [v0.5.7](https://github.com/pangxie1991/vant/tree/v0.5.7) (2017-05-19) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.5.6...v0.5.7) -**非兼容更新和新特性:** +## [v0.5.6](https://github.com/pangxie1991/vant/tree/v0.5.6) (2017-05-15) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.5.4...v0.5.6) -- PayOrder component add tip slot [\#105](https://github.com/youzan/vant/pull/105) ([Raistlin916](https://github.com/Raistlin916)) -- Checkbox: support listen to change event [\#104](https://github.com/youzan/vant/pull/104) ([chenjiahan](https://github.com/chenjiahan)) -- add GoodsAction component [\#102](https://github.com/youzan/vant/pull/102) ([chenjiahan](https://github.com/chenjiahan)) -- add InvalidGoods component [\#100](https://github.com/youzan/vant/pull/100) ([chenjiahan](https://github.com/chenjiahan)) -- add OrderGoods component [\#99](https://github.com/youzan/vant/pull/99) ([chenjiahan](https://github.com/chenjiahan)) -- add PayOrder component [\#98](https://github.com/youzan/vant/pull/98) ([chenjiahan](https://github.com/chenjiahan)) +## [v0.5.4](https://github.com/pangxie1991/vant/tree/v0.5.4) (2017-05-09) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.5.3...v0.5.4) -**修复:** +## [v0.5.3](https://github.com/pangxie1991/vant/tree/v0.5.3) (2017-04-27) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.5.2...v0.5.3) -- 修复 make init bug [\#97](https://github.com/youzan/vant/pull/97) ([pangxie1991](https://github.com/pangxie1991)) +## [v0.5.2](https://github.com/pangxie1991/vant/tree/v0.5.2) (2017-04-26) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.5.1...v0.5.2) -**合并的 Pull Request (可能有不兼容改动):** - -- Add deep-select component and fix a popup bug. [\#103](https://github.com/youzan/vant/pull/103) ([Tinysymphony](https://github.com/Tinysymphony)) -- Doc: update Step/Loading/Tag/Badge documents [\#101](https://github.com/youzan/vant/pull/101) ([chenjiahan](https://github.com/chenjiahan)) - -## [v0.8.7](https://github.com/youzan/vant/tree/v0.8.7) (2017-08-29) -[Full Changelog](https://github.com/youzan/vant/compare/v0.8.6...v0.8.7) - -**非兼容更新和新特性:** - -- add ExpressWay component [\#96](https://github.com/youzan/vant/pull/96) ([chenjiahan](https://github.com/chenjiahan)) -- add CellSwitch component [\#95](https://github.com/youzan/vant/pull/95) ([chenjiahan](https://github.com/chenjiahan)) -- add NoticeBar && test cases [\#94](https://github.com/youzan/vant/pull/94) ([chenjiahan](https://github.com/chenjiahan)) -- Dialog: support both function call and component call [\#93](https://github.com/youzan/vant/pull/93) ([chenjiahan](https://github.com/chenjiahan)) -- CellSwipe: improve test coverage && code review [\#91](https://github.com/youzan/vant/pull/91) ([chenjiahan](https://github.com/chenjiahan)) -- Progress: adjust DOM struct [\#90](https://github.com/youzan/vant/pull/90) ([chenjiahan](https://github.com/chenjiahan)) - -## [v0.8.6](https://github.com/youzan/vant/tree/v0.8.6) (2017-08-24) -[Full Changelog](https://github.com/youzan/vant/compare/v0.8.5...v0.8.6) - -**非兼容更新和新特性:** - -- dalete merge && class operating methods [\#88](https://github.com/youzan/vant/pull/88) ([chenjiahan](https://github.com/chenjiahan)) -- directory adjust: delete entry index.js [\#87](https://github.com/youzan/vant/pull/87) ([chenjiahan](https://github.com/chenjiahan)) -- Button: reduce unnecessary styles [\#86](https://github.com/youzan/vant/pull/86) ([chenjiahan](https://github.com/chenjiahan)) -- Layout: optimize doc [\#85](https://github.com/youzan/vant/pull/85) ([chenjiahan](https://github.com/chenjiahan)) - -**修复:** - -- Fix datetime-picker init value [\#89](https://github.com/youzan/vant/pull/89) ([w91](https://github.com/w91)) - -**处理的 Issue:** - -- When 'showIndicators' set to 'false' The second image does not show [\#80](https://github.com/youzan/vant/issues/80) - -## [v0.8.5](https://github.com/youzan/vant/tree/v0.8.5) (2017-08-21) -[Full Changelog](https://github.com/youzan/vant/compare/v0.8.4...v0.8.5) - -**非兼容更新和新特性:** - -- Doc: add usage guide && top progress [\#83](https://github.com/youzan/vant/pull/83) ([chenjiahan](https://github.com/chenjiahan)) - -**修复:** - -- Popup: not preventScroll by default [\#84](https://github.com/youzan/vant/pull/84) ([chenjiahan](https://github.com/chenjiahan)) -- fix: swipe sometimes will change to drag image [\#81](https://github.com/youzan/vant/pull/81) ([pangxie1991](https://github.com/pangxie1991)) - -**处理的 Issue:** - -- Href link does not work [\#82](https://github.com/youzan/vant/issues/82) -- Swipe image not displayed [\#79](https://github.com/youzan/vant/issues/79) - -## [v0.8.4](https://github.com/youzan/vant/tree/v0.8.4) (2017-08-18) -[Full Changelog](https://github.com/youzan/vant/compare/v0.8.3...v0.8.4) - -**修复:** - -- fix: field 计算autosize,需要nextTick [\#78](https://github.com/youzan/vant/pull/78) ([pangxie1991](https://github.com/pangxie1991)) - -## [v0.8.3](https://github.com/youzan/vant/tree/v0.8.3) (2017-08-18) -[Full Changelog](https://github.com/youzan/vant/compare/v0.8.1...v0.8.3) - -**修复:** - -- fix: dialog wrong z-index [\#77](https://github.com/youzan/vant/pull/77) ([chenjiahan](https://github.com/chenjiahan)) - -## [v0.8.1](https://github.com/youzan/vant/tree/v0.8.1) (2017-08-18) -[Full Changelog](https://github.com/youzan/vant/compare/v0.8.0...v0.8.1) - -**非兼容更新和新特性:** - -- field 增加icon slot支持 [\#76](https://github.com/youzan/vant/pull/76) ([pangxie1991](https://github.com/pangxie1991)) - -## [v0.8.0](https://github.com/youzan/vant/tree/v0.8.0) (2017-08-17) -[Full Changelog](https://github.com/youzan/vant/compare/v0.7.10...v0.8.0) - -**非兼容更新和新特性:** - -- Optimize component building, reduce dist file size [\#74](https://github.com/youzan/vant/pull/74) ([chenjiahan](https://github.com/chenjiahan)) - -## [v0.7.10](https://github.com/youzan/vant/tree/v0.7.10) (2017-08-16) -[Full Changelog](https://github.com/youzan/vant/compare/v0.7.8...v0.7.10) - -**修复:** - -- fix: 修复popup和dialog同时出现时,几率出现dialog被挡住的情况 [\#75](https://github.com/youzan/vant/pull/75) ([pangxie1991](https://github.com/pangxie1991)) -- 修复:popup滚动穿透 [\#73](https://github.com/youzan/vant/pull/73) ([cookfront](https://github.com/cookfront)) - -## [v0.7.8](https://github.com/youzan/vant/tree/v0.7.8) (2017-08-10) -[Full Changelog](https://github.com/youzan/vant/compare/v0.7.7...v0.7.8) - -**非兼容更新和新特性:** - -- 补充 babel-plugin-import 文档 [\#71](https://github.com/youzan/vant/pull/71) ([chenjiahan](https://github.com/chenjiahan)) - -**修复:** - -- not require reset.css by default [\#72](https://github.com/youzan/vant/pull/72) ([chenjiahan](https://github.com/chenjiahan)) - -## [v0.7.7](https://github.com/youzan/vant/tree/v0.7.7) (2017-08-09) -[Full Changelog](https://github.com/youzan/vant/compare/v0.7.6...v0.7.7) - -**修复:** - -- Fixed: one page Swipe components error [\#70](https://github.com/youzan/vant/pull/70) ([Raistlin916](https://github.com/Raistlin916)) - -## [v0.7.6](https://github.com/youzan/vant/tree/v0.7.6) (2017-08-08) -[Full Changelog](https://github.com/youzan/vant/compare/v0.7.5...v0.7.6) - -**非兼容更新和新特性:** - -- 新增几个icon [\#69](https://github.com/youzan/vant/pull/69) ([cookfront](https://github.com/cookfront)) - -## [v0.7.5](https://github.com/youzan/vant/tree/v0.7.5) (2017-08-08) -[Full Changelog](https://github.com/youzan/vant/compare/v0.7.3...v0.7.5) - -**修复:** - -- fix: one page swiper broken [\#68](https://github.com/youzan/vant/pull/68) ([Raistlin916](https://github.com/Raistlin916)) - -**处理的 Issue:** - -- 安装业务组件导致基础组件css样式文件引入失败 [\#65](https://github.com/youzan/vant/issues/65) - -## [v0.7.3](https://github.com/youzan/vant/tree/v0.7.3) (2017-08-04) -[Full Changelog](https://github.com/youzan/vant/compare/v0.7.2...v0.7.3) - -**处理的 Issue:** - -- datetime-picker的问题 [\#45](https://github.com/youzan/vant/issues/45) - -**合并的 Pull Request (可能有不兼容改动):** - -- fix: utils 修复babel编译 [\#67](https://github.com/youzan/vant/pull/67) ([pangxie1991](https://github.com/pangxie1991)) -- README.md使用英文文档 [\#66](https://github.com/youzan/vant/pull/66) ([cookfront](https://github.com/cookfront)) - -## [v0.7.2](https://github.com/youzan/vant/tree/v0.7.2) (2017-07-31) -[Full Changelog](https://github.com/youzan/vant/compare/v0.6.6...v0.7.2) - -**非兼容更新和新特性:** - -- 支持 babel-plugin-import [\#62](https://github.com/youzan/vant/pull/62) ([chenjiahan](https://github.com/chenjiahan)) -- 依赖更新 && 构建调整 [\#60](https://github.com/youzan/vant/pull/60) ([chenjiahan](https://github.com/chenjiahan)) -- Switch 组件: 个人建议加了动画效果 [\#59](https://github.com/youzan/vant/pull/59) ([BosenY](https://github.com/BosenY)) -- 文档改版 [\#55](https://github.com/youzan/vant/pull/55) ([chenjiahan](https://github.com/chenjiahan)) -- 新增:Card 组件增加 centered 属性 [\#54](https://github.com/youzan/vant/pull/54) ([chenjiahan](https://github.com/chenjiahan)) - -**修复:** - -- fix: datetimepicker cancel event not work [\#64](https://github.com/youzan/vant/pull/64) ([chenjiahan](https://github.com/chenjiahan)) -- 修复:popup多层级van-modal未插入到正确的位置 [\#63](https://github.com/youzan/vant/pull/63) ([cookfront](https://github.com/cookfront)) -- 新增几个图标 && 修复tabs组件为空报错的问题 [\#61](https://github.com/youzan/vant/pull/61) ([cookfront](https://github.com/cookfront)) -- Fix: deploy doc fail [\#56](https://github.com/youzan/vant/pull/56) ([chenjiahan](https://github.com/chenjiahan)) - -**处理的 Issue:** - -- SVG's SMIL animations deprecated [\#46](https://github.com/youzan/vant/issues/46) - -## [v0.6.6](https://github.com/youzan/vant/tree/v0.6.6) (2017-07-15) -[Full Changelog](https://github.com/youzan/vant/compare/v0.6.5...v0.6.6) - -**非兼容更新和新特性:** - -- 新增:Field 增加blur事件 && Field 支持尾部icon [\#53](https://github.com/youzan/vant/pull/53) ([pangxie1991](https://github.com/pangxie1991)) - -## [v0.6.5](https://github.com/youzan/vant/tree/v0.6.5) (2017-07-11) -[Full Changelog](https://github.com/youzan/vant/compare/v0.6.4...v0.6.5) - -**非兼容更新和新特性:** - -- tabs组件支持滑动 [\#52](https://github.com/youzan/vant/pull/52) ([cookfront](https://github.com/cookfront)) - -**处理的 Issue:** - -- 有计划都生成vue版本吗 [\#50](https://github.com/youzan/vant/issues/50) - -## [v0.6.4](https://github.com/youzan/vant/tree/v0.6.4) (2017-07-06) -[Full Changelog](https://github.com/youzan/vant/compare/v0.6.3...v0.6.4) - -**非兼容更新和新特性:** - -- src/utils目录支持SSR [\#51](https://github.com/youzan/vant/pull/51) ([cookfront](https://github.com/cookfront)) - -## [v0.6.3](https://github.com/youzan/vant/tree/v0.6.3) (2017-07-04) -[Full Changelog](https://github.com/youzan/vant/compare/v0.6.2...v0.6.3) - -**非兼容更新和新特性:** - -- 步骤条组件新增direction和activeColor属性,增加了竖的步骤条 [\#49](https://github.com/youzan/vant/pull/49) ([cookfront](https://github.com/cookfront)) -- Card component supoort thumb slot,use flex layout [\#48](https://github.com/youzan/vant/pull/48) ([chenjiahan](https://github.com/chenjiahan)) - -**修复:** - -- 修复人民币符号在ios显示问题 [\#44](https://github.com/youzan/vant/pull/44) ([w91](https://github.com/w91)) - -**处理的 Issue:** - -- goods-action 文档有误 [\#47](https://github.com/youzan/vant/issues/47) - -## [v0.6.2](https://github.com/youzan/vant/tree/v0.6.2) (2017-06-26) -[Full Changelog](https://github.com/youzan/vant/compare/v0.6.1...v0.6.2) - -**非兼容更新和新特性:** - -- 新增icon、filed组件新增time类型和Dialog组件默认文案修改 [\#43](https://github.com/youzan/vant/pull/43) ([cookfront](https://github.com/cookfront)) - -## [v0.6.1](https://github.com/youzan/vant/tree/v0.6.1) (2017-06-19) -[Full Changelog](https://github.com/youzan/vant/compare/v0.6.0...v0.6.1) - -**修复:** - -- 新增icon和修复toast样式问题 [\#42](https://github.com/youzan/vant/pull/42) ([cookfront](https://github.com/cookfront)) - -## [v0.6.0](https://github.com/youzan/vant/tree/v0.6.0) (2017-06-15) -[Full Changelog](https://github.com/youzan/vant/compare/v0.5.12...v0.6.0) - -**非兼容更新和新特性:** - -- Search组件新增微杂志样式 [\#38](https://github.com/youzan/vant/pull/38) ([cookfront](https://github.com/cookfront)) -- 支持SSR、升级Vue版本和增加新的icon [\#40](https://github.com/youzan/vant/pull/40) ([cookfront](https://github.com/cookfront)) -- 增加cell swipe组件 [\#39](https://github.com/youzan/vant/pull/39) ([tsxuehu](https://github.com/tsxuehu)) - -## [v0.5.12](https://github.com/youzan/vant/tree/v0.5.12) (2017-06-02) -[Full Changelog](https://github.com/youzan/vant/compare/v0.5.11...v0.5.12) - -**处理的 Issue:** - -- 业务组件的cap-goods-list出现问题 [\#36](https://github.com/youzan/vant/issues/36) - -**合并的 Pull Request (可能有不兼容改动):** - -- utils/scroll [\#37](https://github.com/youzan/vant/pull/37) ([pangxie1991](https://github.com/pangxie1991)) - -## [v0.5.11](https://github.com/youzan/vant/tree/v0.5.11) (2017-05-25) -[Full Changelog](https://github.com/youzan/vant/compare/v0.5.10...v0.5.11) - -**合并的 Pull Request (可能有不兼容改动):** - -- 移除postcss-reset [\#35](https://github.com/youzan/vant/pull/35) ([cookfront](https://github.com/cookfront)) - -## [v0.5.10](https://github.com/youzan/vant/tree/v0.5.10) (2017-05-25) -[Full Changelog](https://github.com/youzan/vant/compare/v0.5.9...v0.5.10) - -## [v0.5.9](https://github.com/youzan/vant/tree/v0.5.9) (2017-05-25) -[Full Changelog](https://github.com/youzan/vant/compare/v0.5.8...v0.5.9) - -**合并的 Pull Request (可能有不兼容改动):** - -- 新增微信导航icon [\#34](https://github.com/youzan/vant/pull/34) ([cookfront](https://github.com/cookfront)) - -## [v0.5.8](https://github.com/youzan/vant/tree/v0.5.8) (2017-05-25) -[Full Changelog](https://github.com/youzan/vant/compare/v0.5.7...v0.5.8) - -**修复:** - -- 修复长按图片后,图片会隐藏问题 [\#32](https://github.com/youzan/vant/pull/32) ([w91](https://github.com/w91)) - -**合并的 Pull Request (可能有不兼容改动):** - -- 新增微信导航icon [\#33](https://github.com/youzan/vant/pull/33) ([cookfront](https://github.com/cookfront)) - -## [v0.5.7](https://github.com/youzan/vant/tree/v0.5.7) (2017-05-19) -[Full Changelog](https://github.com/youzan/vant/compare/v0.5.6...v0.5.7) - -**非兼容更新和新特性:** - -- picker 增加 title 显示 [\#30](https://github.com/youzan/vant/pull/30) ([pangxie1991](https://github.com/pangxie1991)) - -**合并的 Pull Request (可能有不兼容改动):** - -- 更新reset中body背景色 [\#31](https://github.com/youzan/vant/pull/31) ([w91](https://github.com/w91)) - -## [v0.5.6](https://github.com/youzan/vant/tree/v0.5.6) (2017-05-15) -[Full Changelog](https://github.com/youzan/vant/compare/v0.5.4...v0.5.6) - -**合并的 Pull Request (可能有不兼容改动):** - -- 添加两个新的icon [\#29](https://github.com/youzan/vant/pull/29) ([cookfront](https://github.com/cookfront)) -- 改变打包出来的amd模块,增加amd模块的名字 [\#28](https://github.com/youzan/vant/pull/28) ([pangxie1991](https://github.com/pangxie1991)) - -## [v0.5.4](https://github.com/youzan/vant/tree/v0.5.4) (2017-05-09) -[Full Changelog](https://github.com/youzan/vant/compare/v0.5.3...v0.5.4) - -**修复:** - -- 修复:添加reset.css和cell加上right-icon的slot [\#27](https://github.com/youzan/vant/pull/27) ([cookfront](https://github.com/cookfront)) -- 修复:cell同时设置title和label时,value不居中 [\#26](https://github.com/youzan/vant/pull/26) ([cookfront](https://github.com/cookfront)) -- 修复:popup的zIndex转换为number [\#24](https://github.com/youzan/vant/pull/24) ([cookfront](https://github.com/cookfront)) - -**合并的 Pull Request (可能有不兼容改动):** - -- fix bugs and add new features [\#25](https://github.com/youzan/vant/pull/25) ([radicalviva](https://github.com/radicalviva)) - -## [v0.5.3](https://github.com/youzan/vant/tree/v0.5.3) (2017-04-27) -[Full Changelog](https://github.com/youzan/vant/compare/v0.5.2...v0.5.3) - -**修复:** - -- 修复:picker中值变了后未更新picker-colum中的值 [\#23](https://github.com/youzan/vant/pull/23) ([cookfront](https://github.com/cookfront)) - -## [v0.5.2](https://github.com/youzan/vant/tree/v0.5.2) (2017-04-26) -[Full Changelog](https://github.com/youzan/vant/compare/v0.5.1...v0.5.2) - -**处理的 Issue:** - -- does it render UI Natively just like React - Native or like ionic ? [\#15](https://github.com/youzan/vant/issues/15) -- give me an english version of this : https://www.youzanyun.com/zanui/react/guides/install [\#14](https://github.com/youzan/vant/issues/14) - -**合并的 Pull Request (可能有不兼容改动):** - -- 修复:webpack打包修复 [\#21](https://github.com/youzan/vant/pull/21) ([cookfront](https://github.com/cookfront)) -- unit test: picker [\#20](https://github.com/youzan/vant/pull/20) ([cookfront](https://github.com/cookfront)) -- Fix: 修复toast关闭时未移除Dom节点,以及补上单元测试 [\#19](https://github.com/youzan/vant/pull/19) ([cookfront](https://github.com/cookfront)) -- tabs 组件修改 [\#18](https://github.com/youzan/vant/pull/18) ([pangxie1991](https://github.com/pangxie1991)) -- 补充 Col & Row 测试用例 [\#16](https://github.com/youzan/vant/pull/16) ([w91](https://github.com/w91)) -- 单元测试 排除src/目录 [\#13](https://github.com/youzan/vant/pull/13) ([pangxie1991](https://github.com/pangxie1991)) -- 添加单元测试 [\#12](https://github.com/youzan/vant/pull/12) ([cookfront](https://github.com/cookfront)) -- test 环境不跑 PhantomJS [\#11](https://github.com/youzan/vant/pull/11) ([pangxie1991](https://github.com/pangxie1991)) -- 修改 unit test 的配置 [\#10](https://github.com/youzan/vant/pull/10) ([pangxie1991](https://github.com/pangxie1991)) -- unit test: uploader [\#9](https://github.com/youzan/vant/pull/9) ([tsxuehu](https://github.com/tsxuehu)) -- 文档页样式优化和打包配置优化 [\#8](https://github.com/youzan/vant/pull/8) ([cookfront](https://github.com/cookfront)) -- 修复表单组件样式和单元测试用例 [\#7](https://github.com/youzan/vant/pull/7) ([cookfront](https://github.com/cookfront)) -- 文档小细节优化 [\#6](https://github.com/youzan/vant/pull/6) ([cookfront](https://github.com/cookfront)) - -## [v0.5.1](https://github.com/youzan/vant/tree/v0.5.1) (2017-04-24) -[Full Changelog](https://github.com/youzan/vant/compare/v0.5.0...v0.5.1) - -**合并的 Pull Request (可能有不兼容改动):** - -- 文档细节优化,search、loading和dialog组件样式修复 [\#5](https://github.com/youzan/vant/pull/5) ([cookfront](https://github.com/cookfront)) - -## [v0.5.0](https://github.com/youzan/vant/tree/v0.5.0) (2017-04-23) -**处理的 Issue:** - -- 一些建议 [\#1](https://github.com/youzan/vant/issues/1) - -**合并的 Pull Request (可能有不兼容改动):** - -- use vue in amd & commonjs, use Vue in root [\#4](https://github.com/youzan/vant/pull/4) ([pangxie1991](https://github.com/pangxie1991)) -- 手机端样式细节调整,补充测试用例 [\#3](https://github.com/youzan/vant/pull/3) ([cookfront](https://github.com/cookfront)) -- 补充waterfall文档,依赖vue改为Vue [\#2](https://github.com/youzan/vant/pull/2) ([pangxie1991](https://github.com/pangxie1991)) +## [v0.5.1](https://github.com/pangxie1991/vant/tree/v0.5.1) (2017-04-24) +[Full Changelog](https://github.com/pangxie1991/vant/compare/v0.5.0...v0.5.1) +## [v0.5.0](https://github.com/pangxie1991/vant/tree/v0.5.0) (2017-04-23) \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* \ No newline at end of file diff --git a/docs/examples-docs/coupon.md b/docs/examples-docs/coupon.md index 0f30ee984..fba3aede9 100644 --- a/docs/examples-docs/coupon.md +++ b/docs/examples-docs/coupon.md @@ -1,5 +1,3 @@ -## Coupon 优惠券选择器 - + + +## Coupon 优惠券选择器 + ### 使用指南 ``` javascript import { CouponCell, CouponList } from 'vant'; @@ -81,14 +90,15 @@ Vue.component(CouponList.name, CouponList); > - + + + ``` ```javascript @@ -116,6 +126,7 @@ export default { methods: { onChange(index) { + this.showList = false; this.chosenCoupon = index; }, onExchange(code) { diff --git a/docs/examples-docs/icon.md b/docs/examples-docs/icon.md index 340d5fc36..e3196efe8 100644 --- a/docs/examples-docs/icon.md +++ b/docs/examples-docs/icon.md @@ -108,7 +108,9 @@ const icons = [ 'description', 'card', 'gift-card', - 'coupon' + 'coupon', + 'completed', + 'value-card' ]; const IconListConstructor = Vue.extend({ diff --git a/docs/examples-docs/loading.md b/docs/examples-docs/loading.md index b6a4521f7..4b577895c 100644 --- a/docs/examples-docs/loading.md +++ b/docs/examples-docs/loading.md @@ -22,8 +22,8 @@ Vue.component(Loading.name, Loading); :::demo 单色 spinner ```html - + ``` ::: diff --git a/docs/examples-docs/number-keyboard.md b/docs/examples-docs/number-keyboard.md new file mode 100644 index 000000000..362d1d1f8 --- /dev/null +++ b/docs/examples-docs/number-keyboard.md @@ -0,0 +1,101 @@ + + + + +## NumberKeyboard 数字键盘 + +### 使用指南 +``` javascript +import { NumberKeyboard } from 'vant'; + +Vue.component(NumberKeyboard.name, NumberKeyboard); +``` + +### 代码演示 + +#### 基础用法 + +:::demo 基础用法 +```html + + 弹出键盘 + + + + 收起键盘 + + + +``` + +```javascript +export default { + data() { + return { + showKeyboard: true + } + }, + + methods: { + onInput(value) { + Toast(value); + }, + onDelete() { + Toast('delete'); + } + } +} +``` +::: + + +### API + +| 参数 | 说明 | 类型 | 默认值 | 可选值 | +|-----------|-----------|-----------|-------------|-------------| +| show | 是否显示键盘 | `Boolean` | - | - | +| title | 键盘标题 | `String` | `安全输入键盘` | - | +| extraKey | 左下角按键内容 | `String` | `''` | - | +| zIndex | 键盘 z-index | `Number` | `100` | - | +| transition | 是否开启过场动画 | `Boolean` | `true` | - | +| showDeleteKey | 是否展示删除按钮 | `Boolean` | `true` | - | + +### Event + +| 事件名 | 说明 | 参数 | +|-----------|-----------|-----------| +| input | 点击按键时触发 | key: 按键内容 | +| delete | 点击删除键时触发 | - | +| blur | 点击非键盘区域时触发 | - | +| show | 键盘完全弹出时触发 | - | +| hide | 键盘完全收起时触发 | - | diff --git a/docs/examples-docs/password-input.md b/docs/examples-docs/password-input.md new file mode 100644 index 000000000..440e96475 --- /dev/null +++ b/docs/examples-docs/password-input.md @@ -0,0 +1,88 @@ + + +## PasswordInput 密码输入框 +密码输入框组件通常与 [数字键盘](/zanui/vue/component/number-keyboard) 组件配合使用 + +### 使用指南 +``` javascript +import { PasswordInput, NumberKeyBoard } from 'vant'; + +Vue.component(PasswordInput.name, PasswordInput); +Vue.component(NumberKeyBoard.name, NumberKeyBoard); +``` + +### 代码演示 + +#### 基础用法 + +:::demo 基础用法 +```html + + + + + +``` + +```javascript +export default { + data() { + return { + value: '', + showKeyboard: true + } + }, + + methods: { + onInput(key) { + this.value = (this.value + key).slice(0, 6); + }, + onDelete() { + this.value = this.value.slice(0, this.value.length - 1); + } + } +} +``` +::: + +### API + +| 参数 | 说明 | 类型 | 默认值 | 可选值 | +|-----------|-----------|-----------|-------------|-------------| +| value | 密码值 | `String` | `''` | - | +| length | 密码长度 | `Number` | `6` | - | +| info | 输入框下方提示 | `String` | - | - | +| errorInfo | 输入框下方错误提示 | `String` | - | - | + +### Event + +| 事件名 | 说明 | 参数 | +|-----------|-----------|-----------| +| focus | 输入框聚焦时触发 | - | diff --git a/docs/examples-docs/steps.md b/docs/examples-docs/steps.md index 1d5f0b70f..61c9af637 100644 --- a/docs/examples-docs/steps.md +++ b/docs/examples-docs/steps.md @@ -12,6 +12,13 @@ .van-steps__message + p { margin-bottom: 10px; } + + p, + h3 { + margin: 0; + font-size: inherit; + font-weight: normal; + } } diff --git a/docs/src/components/demo-list.vue b/docs/src/components/demo-list.vue index 301b4d072..0877b7c49 100644 --- a/docs/src/components/demo-list.vue +++ b/docs/src/components/demo-list.vue @@ -29,33 +29,33 @@ export default { diff --git a/docs/src/doc.config.js b/docs/src/doc.config.js index b92675eba..7ab9edcd7 100644 --- a/docs/src/doc.config.js +++ b/docs/src/doc.config.js @@ -8,11 +8,11 @@ module.exports = { '微信小程序': 'https://github.com/youzan/zanui-weapp' }, footer: { - copyright: `2012-${(new Date()).getFullYear()} © youzanyun.com - 浙公网安备 33010602004354号 增值电信业务经营许可证:浙B2-20140331 - 浙ICP备13037466号`, + github: 'https://github.com/youzan/vant', nav: { '有赞官网': 'https://www.youzan.com/', - '有赞云': 'http://www.youzanyun.com/zanui', - '加入我们': 'https://job.youzan.com/' + '加入我们': 'https://job.youzan.com/', + '意见反馈': 'https://github.com/youzan/vant/issues' } }, nav: [ @@ -143,6 +143,14 @@ module.exports = { "path": "/field", "title": "Field 输入框" }, + { + "path": "/number-keyboard", + "title": "NumberKeyboard 数字键盘" + }, + { + "path": "/password-input", + "title": "PasswordInput 密码输入框" + }, { "path": "/radio", "title": "Radio 单选框" diff --git a/package.json b/package.json index 65ac938cd..a3b520ce3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vant", - "version": "0.9.2", + "version": "0.9.5", "description": "有赞vue wap组件库", "main": "lib/vant.js", "style": "lib/vant-css/index.css", @@ -95,7 +95,6 @@ "markdown-it": "^8.4.0", "markdown-it-container": "^2.0.0", "mocha": "^3.4.2", - "optimize-css-assets-webpack-plugin": "^3.1.1", "postcss": "^6.0.10", "postcss-easy-import": "^2.1.0", "postcss-loader": "^2.0.6", diff --git a/packages/actionsheet/index.vue b/packages/actionsheet/index.vue index 0ce765aaa..dff11f5da 100644 --- a/packages/actionsheet/index.vue +++ b/packages/actionsheet/index.vue @@ -2,7 +2,7 @@
-

+
    diff --git a/packages/card/index.vue b/packages/card/index.vue index 69f93dbb1..b672be415 100644 --- a/packages/card/index.vue +++ b/packages/card/index.vue @@ -8,14 +8,14 @@
    -

    {{ title }}

    -

    ¥ {{ price }}

    +
    {{ title }}
    +
    ¥ {{ price }}
    -

    {{ desc }}

    -

    x {{ num }}

    +
    {{ desc }}
    +
    x {{ num }}
    diff --git a/packages/coupon-cell/index.vue b/packages/coupon-cell/index.vue index 953540e5f..2017c1e16 100644 --- a/packages/coupon-cell/index.vue +++ b/packages/coupon-cell/index.vue @@ -3,8 +3,8 @@
    -

    {{ amount }}

    - {{ coupons[chosenCoupon].condition }} +
    {{ amount }}
    +
    {{ coupons[chosenCoupon].condition }}
    diff --git a/packages/coupon-list/index.vue b/packages/coupon-list/index.vue index 2787e4de9..9a7ddaae9 100644 --- a/packages/coupon-list/index.vue +++ b/packages/coupon-list/index.vue @@ -1,5 +1,5 @@ diff --git a/packages/panel/index.vue b/packages/panel/index.vue index 60107b200..4ccdabd8e 100644 --- a/packages/panel/index.vue +++ b/packages/panel/index.vue @@ -2,7 +2,7 @@
    -

    +
    diff --git a/packages/password-input/index.vue b/packages/password-input/index.vue new file mode 100644 index 000000000..2f16aed3a --- /dev/null +++ b/packages/password-input/index.vue @@ -0,0 +1,43 @@ + + + diff --git a/packages/picker/index.vue b/packages/picker/index.vue index beb7fca87..b9084bb26 100644 --- a/packages/picker/index.vue +++ b/packages/picker/index.vue @@ -4,7 +4,7 @@ 取消 完成 -

    {{ title }}

    +
    {{ title }}
    diff --git a/packages/steps/index.vue b/packages/steps/index.vue index 800cfd118..a333938be 100644 --- a/packages/steps/index.vue +++ b/packages/steps/index.vue @@ -8,8 +8,8 @@
    -

    -

    +
    +
    diff --git a/packages/vant-css/assets/icons.sketch b/packages/vant-css/assets/icons.sketch index f81941d43..cc77e345a 100644 Binary files a/packages/vant-css/assets/icons.sketch and b/packages/vant-css/assets/icons.sketch differ diff --git a/packages/vant-css/package.json b/packages/vant-css/package.json index 2e8cc9bda..cbad0fe19 100644 --- a/packages/vant-css/package.json +++ b/packages/vant-css/package.json @@ -1,6 +1,6 @@ { "name": "vant-css", - "version": "0.9.2", + "version": "0.9.5", "description": "vant css.", "main": "lib/index.css", "style": "lib/index.css", diff --git a/packages/vant-css/scripts/fount-config.js b/packages/vant-css/scripts/fount-config.js index 9063f39af..88dbc67bd 100644 --- a/packages/vant-css/scripts/fount-config.js +++ b/packages/vant-css/scripts/fount-config.js @@ -393,6 +393,16 @@ module.exports = { keywords: ['gold-coin'], src: '金币.svg', css: 'gold-coin' + }, + { + keywords: ['completed'], + src: '已完成.svg', + css: 'completed' + }, + { + keywords: ['value-card'], + src: '会员余额.svg', + css: 'value-card' } ] }; diff --git a/packages/vant-css/src/base.css b/packages/vant-css/src/base.css index 5cbf9bc24..5609574e8 100644 --- a/packages/vant-css/src/base.css +++ b/packages/vant-css/src/base.css @@ -5,4 +5,4 @@ @import "./common/var.css"; @import "./common/normalize.css"; @import "./common/hairline.css"; - +@import "./common/animation.css"; diff --git a/packages/vant-css/src/button.css b/packages/vant-css/src/button.css index b058230a3..7a3356dd1 100644 --- a/packages/vant-css/src/button.css +++ b/packages/vant-css/src/button.css @@ -24,7 +24,7 @@ border-radius: inherit; /* inherit parent's border radius */ } - &:not(.is-disabled):active::before { + &:not([disabled]):active::before { opacity: .3; } @@ -36,10 +36,6 @@ color: $button-default-color; background-color: $button-default-background-color; border: 1px solid $button-default-border-color; - - &:active { - color: $gray-dark; - } } &--primary { @@ -91,12 +87,6 @@ } } - &--disabled { - color: $button-disabled-color; - background-color: $button-disabled-background-color; - border: 1px solid $button-disabled-border-color; - } - &--block { width: 100%; display: block; @@ -112,13 +102,14 @@ color: $bottom-action-button-default-color; background-color: $bottom-action-button-default-background-color; - &:active { - color: $white; - } - &.van-button--primary { - color: $bottom-action-button-primary-color; background-color: $bottom-action-button-primary-background-color; } } + + &--disabled { + color: $button-disabled-color; + background-color: $button-disabled-background-color; + border: 1px solid $button-disabled-border-color; + } } diff --git a/packages/vant-css/src/common/animation.css b/packages/vant-css/src/common/animation.css new file mode 100644 index 000000000..070c8e1fc --- /dev/null +++ b/packages/vant-css/src/common/animation.css @@ -0,0 +1,21 @@ +@keyframes van-slide-bottom-enter { + from { + transform: translate3d(0, 100%, 0); + } +} + +@keyframes van-slide-bottom-leave { + to { + transform: translate3d(0, 100%, 0); + } +} + +.van-slide-bottom { + &-enter-active { + animation: van-slide-bottom-enter .3s both ease; + } + + &-leave-active { + animation: van-slide-bottom-leave .3s both ease; + } +} diff --git a/packages/vant-css/src/common/normalize.css b/packages/vant-css/src/common/normalize.css index 5561d9e4b..a935e39f3 100644 --- a/packages/vant-css/src/common/normalize.css +++ b/packages/vant-css/src/common/normalize.css @@ -6,6 +6,10 @@ html { -webkit-tap-highlight-color: transparent; } +body { + margin: 0; +} + a { text-decoration: none; } diff --git a/packages/vant-css/src/coupon-list.css b/packages/vant-css/src/coupon-list.css index f13498e23..8c65692f6 100644 --- a/packages/vant-css/src/coupon-list.css +++ b/packages/vant-css/src/coupon-list.css @@ -4,6 +4,7 @@ .van-coupon { &-list { height: 100%; + position: relative; background-color: $background-color; &__top { @@ -33,6 +34,7 @@ color: $gray-dark; margin: 15px 0; font-size: 14px; + font-weight: normal; position: relative; text-align: center; @@ -105,7 +107,8 @@ h2 { font-size: 22px; - margin-bottom: 10px; + font-weight: normal; + margin: 0 0 10px; span { font-size: 16px; @@ -113,6 +116,7 @@ } p { + margin: 0; font-size: 14px; font-weight: 300; @mixin multi-ellipsis 1; @@ -132,8 +136,10 @@ border-radius: 0 4px 4px 0; h2 { + margin: 0; opacity: .8; font-size: 16px; + font-weight: normal; } p, diff --git a/packages/vant-css/src/goods-action.css b/packages/vant-css/src/goods-action.css index ce80b3ce0..ce63f0009 100644 --- a/packages/vant-css/src/goods-action.css +++ b/packages/vant-css/src/goods-action.css @@ -17,6 +17,7 @@ height: 50px; font-size: 10px; min-width: 15%; + line-height: 1; text-align: center; background-color: $white; flex-direction: column; diff --git a/packages/vant-css/src/icon.css b/packages/vant-css/src/icon.css index a58683465..08f66012d 100644 --- a/packages/vant-css/src/icon.css +++ b/packages/vant-css/src/icon.css @@ -2,11 +2,11 @@ @font-face { font-family: 'vant-icon'; - src: url('https://b.yzcdn.cn/zanui/icon/vant-icon-5e6d465ada.eot'); - src: url('https://b.yzcdn.cn/zanui/icon/vant-icon-5e6d465ada.eot?#iefix') format('embedded-opentype'), - url('https://b.yzcdn.cn/zanui/icon/vant-icon-5e6d465ada.woff2') format('woff2'), - url('https://b.yzcdn.cn/zanui/icon/vant-icon-5e6d465ada.woff') format('woff'), - url('https://b.yzcdn.cn/zanui/icon/vant-icon-5e6d465ada.ttf') format('truetype') + src: url('https://b.yzcdn.cn/zanui/icon/vant-icon-6b495bd63f.eot'); + src: url('https://b.yzcdn.cn/zanui/icon/vant-icon-6b495bd63f.eot?#iefix') format('embedded-opentype'), + url('https://b.yzcdn.cn/zanui/icon/vant-icon-6b495bd63f.woff2') format('woff2'), + url('https://b.yzcdn.cn/zanui/icon/vant-icon-6b495bd63f.woff') format('woff'), + url('https://b.yzcdn.cn/zanui/icon/vant-icon-6b495bd63f.ttf') format('truetype') } .van-icon { @@ -121,4 +121,6 @@ .van-icon-gift-card:before { content: '\e847'; } /* '' */ .van-icon-coupon:before { content: '\e848'; } /* '' */ .van-icon-clock:before { content: '\e849'; } /* '' */ -.van-icon-gold-coin:before { content: '\e84a'; } /* '' */ \ No newline at end of file +.van-icon-gold-coin:before { content: '\e84a'; } /* '' */ +.van-icon-completed:before { content: '\e84b'; } /* '' */ +.van-icon-value-card:before { content: '\e84c'; } /* '' */ \ No newline at end of file diff --git a/packages/vant-css/src/index.css b/packages/vant-css/src/index.css index 31bd8c8cc..dc819043f 100644 --- a/packages/vant-css/src/index.css +++ b/packages/vant-css/src/index.css @@ -34,6 +34,8 @@ @import './radio.css'; @import './switch.css'; @import './uploader.css'; +@import './password-input.css'; +@import './number-keyboard.css'; /* action components */ @import './actionsheet.css'; diff --git a/packages/vant-css/src/loading.css b/packages/vant-css/src/loading.css index 94288eeb3..055031e79 100644 --- a/packages/vant-css/src/loading.css +++ b/packages/vant-css/src/loading.css @@ -41,8 +41,8 @@ } &.van-loading__spinner--white { - border-color: rgba(0, 0, 0, .5); - border-top-color: transparent; + border-color: rgba(0, 0, 0, .1); + border-top-color: rgba(255, 255, 255, .7); } } diff --git a/packages/vant-css/src/number-keyboard.css b/packages/vant-css/src/number-keyboard.css new file mode 100644 index 000000000..fc2c4b39a --- /dev/null +++ b/packages/vant-css/src/number-keyboard.css @@ -0,0 +1,52 @@ +@import "./common/var.css"; + +.van-number-keyboard { + left: 0; + bottom: 0; + width: 100%; + position: fixed; + user-select: none; + background-color: $white; + animation-timing-function: ease-out; + + &__title { + font-weight: 400; + text-align: center; + color: $gray-dark; + font-size: 12px; + line-height: 25px; + } + + i { + width: calc(100%/3); + height: 54px; + font-size: 24px; + line-height: 54px; + font-style: normal; + text-align: center; + display: inline-block; + vertical-align: middle; + + &::after { + border-top-width: 1px; + } + + &:not(:nth-of-type(3n))::after { + border-right-width: 1px; + } + + &:nth-of-type(10), + &:nth-of-type(12) { + background-color: #F3F3F6; + } + } + + &__delete { + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAeCAMAAABg6AyVAAAAbFBMVEUAAAAfHiIdHB4eHR8dHR4eHB4dHB4dHR8gICIdHB4dHB4dHB4dHB8eHh8hISEeHR8fHB8fHR8fHR8fHx8eHiArKyszMzMeHB8eHB8fHR8eHiAeHh4dHB4vLjDY2Nn////b29zKysq9vb28vLzkfBRpAAAAHHRSTlMAK/PW+I/llBv77N1kSCPwWlFAOTMGBb28hHlu08g5sgAAAMlJREFUOMuV1MsWgiAQgGHQyOx+s+sgYO//jnnMGIdDDfwbN99CYEDQFiVEKkolPUG7gl9VTWC31NKuDbVz+Fc1tRJtPDmxS2BS3p5ZC+XXnnbAVoz2WEBCH7uZAalzGoa06whGiznT6sG2xgX4QO2Aej1+KN7XBKL2FvGaMtTWBhbQhtoaYzVQrHKwuGf8hhAPSF5g3xPSt45sCHcouNWx436FGA+RHyQcD35EcUj54U8ff4WYvVi1zLjelUh/OG6XjOeLWv5hfAOI+HLwwOAqhAAAAABJRU5ErkJggg==") no-repeat center center; + background-size: auto 15px; + } + + i&--active { + background-color: $active-color!important; + } +} diff --git a/packages/vant-css/src/password-input.css b/packages/vant-css/src/password-input.css new file mode 100644 index 000000000..eb6a64982 --- /dev/null +++ b/packages/vant-css/src/password-input.css @@ -0,0 +1,59 @@ +@import "./common/var.css"; + +.van-password-input { + margin: 0 15px; + user-select: none; + position: relative; + + &:focus { + outline: none; + } + + &__info, + &__error-info { + font-size: 14px; + margin-top: 15px; + text-align: center; + } + + &__info { + color: $gray-dark; + } + + &__error-info { + color: $red; + } + + &__security { + width: 100%; + height: 50px; + display: flex; + background-color: $white; + + &::after { + border-radius: 6px; + } + + li { + flex: 1; + height: 100%; + position: relative; + + &:not(:first-of-type)::after { + border-left-width: 1px; + } + } + + i { + position: absolute; + left: 50%; + top: 50%; + width: 10px; + height: 10px; + margin: -5px 0 0 -5px; + visibility: hidden; + border-radius: 100%; + background-color: $black; + } + } +} diff --git a/packages/vant-css/src/search.css b/packages/vant-css/src/search.css index 4c816f9d2..cc165a328 100644 --- a/packages/vant-css/src/search.css +++ b/packages/vant-css/src/search.css @@ -32,8 +32,12 @@ width: 100%; height: 14px; font-size: 14px; - color: $gray-dark; + color: $gray-darker; border: none; + + &::placeholder { + color: $gray-dark; + } } &__cancel { diff --git a/test/unit/components/number-keyboard.vue b/test/unit/components/number-keyboard.vue new file mode 100644 index 000000000..b6cd28b8d --- /dev/null +++ b/test/unit/components/number-keyboard.vue @@ -0,0 +1,19 @@ + + + diff --git a/test/unit/specs/coupon.spec.js b/test/unit/specs/coupon.spec.js index 378edd553..45c5fe334 100644 --- a/test/unit/specs/coupon.spec.js +++ b/test/unit/specs/coupon.spec.js @@ -82,8 +82,7 @@ describe('CouponCell', () => { DOMChecker(wrapper, { text: { - '.van-cell__value--link h2': '新手专用优惠券 省¥1.50', - '.van-cell__value--link span': '下单立减 1.50 元' + '.van-cell__value--link div div': '新手专用优惠券 省¥1.50' }, count: { '.van-cell__right-icon': 1 @@ -102,8 +101,7 @@ describe('CouponCell', () => { DOMChecker(wrapper, { text: { - '.van-cell__value h2': '新手专用优惠券 省¥1.50', - '.van-cell__value span': '下单立减 1.50 元' + '.van-cell__value div div': '新手专用优惠券 省¥1.50' }, count: { '.van-cell__right-icon': 0 @@ -155,7 +153,6 @@ describe('CouponList', () => { wrapper = mount(CouponList, { attachToDocument: true, propsData: { - show: true, chosenCoupon: -1, coupons: [coupon, discountCoupon], disabledCoupons: [disabledCoupon, disabledDiscountCoupon] @@ -166,9 +163,7 @@ describe('CouponList', () => { wrapper.vm.chosenCoupon = index; }); - // 弹出 popup setTimeout(() => { - expect(wrapper.find('.van-coupon-list')[0].hasStyle('display', 'none')).to.equal(false); wrapper.find('.van-coupon-item')[0].trigger('click'); setTimeout(() => { @@ -182,7 +177,6 @@ describe('CouponList', () => { wrapper = mount(CouponList, { attachToDocument: true, propsData: { - show: false, chosenCoupon: 0, displayedCouponIndex: 0, coupons: [coupon, discountCoupon], @@ -190,8 +184,6 @@ describe('CouponList', () => { } }); - wrapper.vm.show = true; - wrapper.vm.$on('change', (index) => { wrapper.vm.chosenCoupon = index; wrapper.vm.displayedCouponIndex = index; @@ -201,7 +193,6 @@ describe('CouponList', () => { wrapper.find('.van-coupon-list__close')[0].trigger('click'); setTimeout(() => { expect(wrapper.vm.chosenCoupon).to.equal(-1); - expect(wrapper.find('.van-coupon-list')[0].hasStyle('display', 'none')).to.equal(true); done(); }, 500); }, 500); @@ -257,7 +248,6 @@ describe('CouponList', () => { wrapper = mount(CouponList, { attachToDocument: true, propsData: { - show: true, chosenCoupon: 0, coupons: [coupon, discountCoupon, emptyCoupon], disabledCoupons: [disabledCoupon, disabledDiscountCoupon] @@ -307,7 +297,6 @@ describe('CouponList', () => { it('displayedCouponIndex out of range', (done) => { wrapper = mount(CouponList, { propsData: { - show: true, displayedCouponIndex: -100, coupons: [coupon, discountCoupon, emptyCoupon] } diff --git a/test/unit/specs/number-keyboard.spec.js b/test/unit/specs/number-keyboard.spec.js new file mode 100644 index 000000000..d096722e4 --- /dev/null +++ b/test/unit/specs/number-keyboard.spec.js @@ -0,0 +1,160 @@ +import NumberKeyboard from 'packages/number-keyboard'; +import NumberKeyboardKeepAlive from '../components/number-keyboard'; +import { mount } from 'avoriaz'; +import { triggerTouch } from '../utils'; + +function mockKeyDown(wrapper, keyIndex) { + const customEvent = document.createEvent('CustomEvent'); + customEvent.initCustomEvent('touchstart', true, true, {}); + wrapper.element.dataset.key = keyIndex; + wrapper.element.dispatchEvent(customEvent); +} + +describe('NumberKeyboard', () => { + let wrapper; + afterEach(() => { + wrapper && wrapper.destroy(); + }); + + it('create a NumberKeyboard', () => { + wrapper = mount(NumberKeyboard, {}); + expect(wrapper.hasClass('van-number-keyboard')).to.be.true; + }); + + it('click a keyboard key', (done) => { + wrapper = mount(NumberKeyboard, {}); + + // just for coverage + wrapper.vm.handler(true); + + wrapper.vm.$on('input', value => { + expect(value).to.equal(1); + expect(wrapper.vm.active).to.equal(0); + + triggerTouch(wrapper, 'touchend'); + expect(wrapper.vm.active).to.equal(-1); + done(); + }); + + mockKeyDown(wrapper, 9); + mockKeyDown(wrapper, NaN); + mockKeyDown(wrapper, 0); + }); + + it('click delete key', (done) => { + wrapper = mount(NumberKeyboard, {}); + + const deleteSpy = sinon.spy(); + wrapper.vm.$on('delete', deleteSpy); + + mockKeyDown(wrapper, 11); + wrapper.vm.$nextTick(() => { + expect(deleteSpy.calledOnce).to.be.true; + done(); + }); + }); + + it('blur keyboard', (done) => { + wrapper = mount(NumberKeyboard, { + attachToDocument: true + }); + + const blur = sinon.spy(); + wrapper.vm.$on('blur', blur); + + triggerTouch(document.body, 'touchstart'); + wrapper.vm.$nextTick(() => { + expect(blur.calledOnce).to.be.true; + done(); + }); + }); + + it('listen to show event when has transtion', (done) => { + wrapper = mount(NumberKeyboard, { + attachToDocument: true + }); + + const show = sinon.spy(); + wrapper.vm.$on('show', show); + wrapper.vm.show = true; + wrapper.trigger('animationend'); + + setTimeout(() => { + expect(show.calledOnce).to.be.true; + done(); + }, 100); + }); + + it('listen to show event when no transtion', (done) => { + wrapper = mount(NumberKeyboard, { + attachToDocument: true, + propsData: { + transition: false + } + }); + + const show = sinon.spy(); + wrapper.vm.$on('show', show); + wrapper.vm.show = true; + + wrapper.vm.$nextTick(() => { + expect(show.calledOnce).to.be.true; + done(); + }); + }); + + it('listen to hide event when has transtion', (done) => { + wrapper = mount(NumberKeyboard, { + attachToDocument: true, + propsData: { + show: true + } + }); + + const hide = sinon.spy(); + wrapper.vm.$on('hide', hide); + wrapper.vm.show = false; + wrapper.trigger('animationend'); + + setTimeout(() => { + expect(hide.calledOnce).to.be.true; + done(); + }, 100); + }); + + it('listen to hide event when no transtion', (done) => { + wrapper = mount(NumberKeyboard, { + attachToDocument: true, + propsData: { + show: true, + transition: false + } + }); + + const hide = sinon.spy(); + wrapper.vm.$on('hide', hide); + wrapper.vm.show = false; + + wrapper.vm.$nextTick(() => { + expect(hide.calledOnce).to.be.true; + done(); + }); + }); + + it('keey-alive live cycle', (done) => { + wrapper = mount(NumberKeyboardKeepAlive, { + attachToDocument: true, + propsData: { + showKeyboard: true + } + }); + + expect(wrapper.find('.van-number-keyboard').length).to.equal(1); + + wrapper.vm.showKeyboard = false; + wrapper.vm.$nextTick(() => { + expect(wrapper.find('.van-number-keyboard').length).to.equal(0); + done(); + }); + }); +}); diff --git a/test/unit/specs/password-input.spec.js b/test/unit/specs/password-input.spec.js new file mode 100644 index 000000000..e5ce480d5 --- /dev/null +++ b/test/unit/specs/password-input.spec.js @@ -0,0 +1,56 @@ +import PasswordInput from 'packages/password-input'; +import { mount } from 'avoriaz'; + +describe('PasswordInput', () => { + let wrapper; + afterEach(() => { + wrapper && wrapper.destroy(); + }); + + it('create a PasswordInput', () => { + wrapper = mount(PasswordInput, {}); + expect(wrapper.find('.van-password-input').length).to.equal(1); + }); + + it('create a PasswordInput with value && info', (done) => { + wrapper = mount(PasswordInput, { + propsData: { + value: '000', + info: '测试info' + } + }); + + expect(wrapper.find('.van-password-input i')[2].hasStyle('visibility', 'visible')).to.be.true; + expect(wrapper.find('.van-password-input i')[3].hasStyle('visibility', 'visible')).to.be.false; + expect(wrapper.find('.van-password-input__info')[0].text()).to.equal('测试info'); + + wrapper.vm.value = '0000'; + wrapper.vm.errorInfo = '测试errorInfo'; + wrapper.vm.$nextTick(() => { + expect(wrapper.find('.van-password-input i')[3].hasStyle('visibility', 'visible')).to.be.true; + expect(wrapper.find('.van-password-input__info').length).to.equal(0); + expect(wrapper.find('.van-password-input__error-info')[0].text()).to.equal('测试errorInfo'); + done(); + }); + }); + + it('listen to focus event', () => { + wrapper = mount(PasswordInput, {}); + + const focus = sinon.spy(); + wrapper.vm.$on('focus', focus); + wrapper.find('.van-password-input__security')[0].trigger('touchstart'); + + expect(focus.calledOnce).to.be.true; + }); + + it('change password length', () => { + wrapper = mount(PasswordInput, { + propsData: { + length: 2 + } + }); + + expect(wrapper.find('.van-password-input i').length).to.equal(2); + }); +}); diff --git a/yarn.lock b/yarn.lock index f62d7febb..e34c64473 100644 --- a/yarn.lock +++ b/yarn.lock @@ -323,14 +323,14 @@ autoprefixer@^6.3.1: postcss-value-parser "^3.2.3" autoprefixer@^7.1.3: - version "7.1.3" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.3.tgz#0e8d337976d6f13644db9f8813b4c42f3d1ccc34" + version "7.1.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.4.tgz#960847dbaa4016bc8e8e52ec891cbf8f1257a748" dependencies: browserslist "^2.4.0" - caniuse-lite "^1.0.30000718" + caniuse-lite "^1.0.30000726" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^6.0.10" + postcss "^6.0.11" postcss-value-parser "^3.2.3" avoriaz@2.0.0: @@ -1195,6 +1195,10 @@ caniuse-lite@^1.0.30000718: version "1.0.30000718" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000718.tgz#0dd24290beb11310b2d80f6b70a823c2a65a6fad" +caniuse-lite@^1.0.30000726: + version "1.0.30000727" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000727.tgz#20c895768398ded5f98a4beab4a76c285def41d2" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -1713,7 +1717,7 @@ cssesc@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" -"cssnano@>=2.6.1 <4", cssnano@^3.4.0: +"cssnano@>=2.6.1 <4": version "3.10.0" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" dependencies: @@ -3343,7 +3347,7 @@ hawk@~3.1.3: hoek "2.x.x" sntp "1.x.x" -he@1.1.x, he@^1.1.0: +he@1.1.1, he@1.1.x, he@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" @@ -4132,13 +4136,6 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" -last-call-webpack-plugin@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-2.1.1.tgz#bd7af41186b80e6cc3968eee5d65b250eaf791f1" - dependencies: - lodash "^4.17.4" - webpack-sources "^1.0.1" - lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" @@ -4758,8 +4755,8 @@ mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdi minimist "0.0.8" mocha@^3.4.2: - version "3.5.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.0.tgz#1328567d2717f997030f8006234bce9b8cd72465" + version "3.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" dependencies: browser-stdout "1.3.0" commander "2.9.0" @@ -4768,6 +4765,7 @@ mocha@^3.4.2: escape-string-regexp "1.0.5" glob "7.1.1" growl "1.9.2" + he "1.1.1" json3 "3.3.2" lodash.create "3.1.1" mkdirp "0.5.1" @@ -5075,13 +5073,6 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" -optimize-css-assets-webpack-plugin@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-3.1.1.tgz#b86f255a762d9143e3db41a64a136a6b76e8c8a7" - dependencies: - cssnano "^3.4.0" - last-call-webpack-plugin "^2.1.1" - optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" @@ -5815,7 +5806,7 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0 source-map "^0.5.6" supports-color "^3.2.3" -postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.10, postcss@^6.0.2, postcss@^6.0.3, postcss@^6.0.6, postcss@^6.0.9: +postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.2, postcss@^6.0.3, postcss@^6.0.6, postcss@^6.0.9: version "6.0.10" resolved "https://registry.npmjs.org/postcss/-/postcss-6.0.10.tgz#c311b89734483d87a91a56dc9e53f15f4e6e84e4" dependencies: @@ -5823,6 +5814,14 @@ postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.10, postcss@^6.0.2, postcss@^6.0.3, source-map "^0.5.7" supports-color "^4.2.1" +postcss@^6.0.10, postcss@^6.0.11: + version "6.0.11" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.11.tgz#f48db210b1d37a7f7ab6499b7a54982997ab6f72" + dependencies: + chalk "^2.1.0" + source-map "^0.5.7" + supports-color "^4.4.0" + precss@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/precss/-/precss-2.0.0.tgz#7f567e3318e06d44c8fdbf9e58452e8358bf4b71" @@ -6310,12 +6309,18 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.0, rimraf@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: glob "^7.0.5" +rimraf@^2.5.4: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" @@ -6825,6 +6830,12 @@ supports-color@^4.0.0, supports-color@^4.2.1: dependencies: has-flag "^2.0.0" +supports-color@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" + dependencies: + has-flag "^2.0.0" + svgo@^0.7.0: version "0.7.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" @@ -7311,8 +7322,8 @@ vue-loader@^13.0.4: vue-template-es2015-compiler "^1.5.3" vue-markdown-loader@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/vue-markdown-loader/-/vue-markdown-loader-2.1.0.tgz#112d1921dd56daa29906b7c012623c6c5d6e0d8c" + version "2.2.1" + resolved "https://registry.yarnpkg.com/vue-markdown-loader/-/vue-markdown-loader-2.2.1.tgz#becf0c7455589eb27189fe78a9d5a283bb7acc00" dependencies: cheerio "^0.20.0" highlight.js "^9.4.0" @@ -7331,8 +7342,8 @@ vue-sfc-compiler@^0.0.2: vue-template-es2015-compiler "^1.5.3" vue-style-loader@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-3.0.1.tgz#c8b639bb2f24baf9d78274dc17e4f264c1deda08" + version "3.0.2" + resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-3.0.2.tgz#eaeb299729fa3ee54717e907ce3c1e425ebae729" dependencies: hash-sum "^1.0.2" loader-utils "^1.0.2" @@ -7429,8 +7440,8 @@ webpack-sources@^1.0.1: source-map "~0.5.3" webpack@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.5.5.tgz#3226f09fc8b3e435ff781e7af34f82b68b26996c" + version "3.5.6" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.5.6.tgz#a492fb6c1ed7f573816f90e00c8fbb5a20cc5c36" dependencies: acorn "^5.0.0" acorn-dynamic-import "^2.0.0" @@ -7641,8 +7652,8 @@ yeast@0.1.2: resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" zan-doc@^0.2.12: - version "0.2.12" - resolved "https://registry.npmjs.org/zan-doc/-/zan-doc-0.2.12.tgz#bfbf9a7ec5a4b77a7f53ca1ac030b305432a91c5" + version "0.2.14" + resolved "https://registry.yarnpkg.com/zan-doc/-/zan-doc-0.2.14.tgz#f5915e8e45fd10d2eae3e36d10949d22a7f9ac62" dependencies: cheerio "0.22.0" decamelize "^1.2.0"