";
/***/ }),
/* 7 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /*
* Tencent is pleased to support the open source community by making WeUI.js available.
*
* Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
var _util = __webpack_require__(2);
var _util2 = _interopRequireDefault(_util);
var _dialog = __webpack_require__(1);
var _dialog2 = _interopRequireDefault(_dialog);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* alert 警告弹框,功能类似于浏览器自带的 alert 弹框,用于提醒、警告用户简单扼要的信息,只有一个“确认”按钮,点击“确认”按钮后关闭弹框。
* @param {string} content 弹窗内容
* @param {function=} yes 点击确定按钮的回调
* @param {object=} options 配置项
* @param {string=} options.title 弹窗的标题
* @param {string=} options.className 自定义类名
* @param {array=} options.buttons 按钮配置项,详情参考dialog
*
* @example
* weui.alert('普通的alert');
* weui.alert('带回调的alert', function(){ console.log('ok') });
* var alertDom = weui.alert('手动关闭的alert', function(){
* return false; // 不关闭弹窗,可用alertDom.hide()来手动关闭
* });
* weui.alert('自定义标题的alert', { title: '自定义标题' });
* weui.alert('带回调的自定义标题的alert', function(){
* console.log('ok')
* }, {
* title: '自定义标题'
* });
* weui.alert('自定义按钮的alert', {
* title: '自定义按钮的alert',
* buttons: [{
* label: 'OK',
* type: 'primary',
* onClick: function(){ console.log('ok') }
* }]
* });
*
* // 多次使用
* var alert = weui.alert('hello');
* alert.hide(function(){
* weui.alert('world');
* });
*/
function alert() {
var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var yes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _util2.default.noop;
var options = arguments[2];
if ((typeof yes === 'undefined' ? 'undefined' : _typeof(yes)) === 'object') {
options = yes;
yes = _util2.default.noop;
}
options = _util2.default.extend({
content: content,
buttons: [{
label: '确定',
type: 'primary',
onClick: yes
}]
}, options);
return (0, _dialog2.default)(options);
}
exports.default = alert;
module.exports = exports['default'];
/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /*
* Tencent is pleased to support the open source community by making WeUI.js available.
*
* Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
var _util = __webpack_require__(2);
var _util2 = _interopRequireDefault(_util);
var _dialog = __webpack_require__(1);
var _dialog2 = _interopRequireDefault(_dialog);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* 确认弹窗
* @param {string} content 弹窗内容
* @param {function=} yes 点击确定按钮的回调
* @param {function=} no 点击取消按钮的回调
* @param {object=} options 配置项
* @param {string=} options.title 弹窗的标题
* @param {string=} options.className 自定义类名
* @param {array=} options.buttons 按钮配置项,详情参考dialog
*
* @example
* weui.confirm('普通的confirm');
* weui.confirm('自定义标题的confirm', { title: '自定义标题' });
* weui.confirm('带回调的confirm', function(){ console.log('yes') }, function(){ console.log('no') });
* var confirmDom = weui.confirm('手动关闭的confirm', function(){
* return false; // 不关闭弹窗,可用confirmDom.hide()来手动关闭
* });
* weui.confirm('带回调的自定义标题的confirm', function(){ console.log('yes') }, function(){ console.log('no') }, {
* title: '自定义标题'
* });
* weui.confirm('自定义按钮的confirm', {
* title: '自定义按钮的confirm',
* buttons: [{
* label: 'NO',
* type: 'default',
* onClick: function(){ console.log('no') }
* }, {
* label: 'YES',
* type: 'primary',
* onClick: function(){ console.log('yes') }
* }]
* });
*/
function confirm() {
var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var yes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _util2.default.noop;
var no = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _util2.default.noop;
var options = arguments[3];
if ((typeof yes === 'undefined' ? 'undefined' : _typeof(yes)) === 'object') {
options = yes;
yes = _util2.default.noop;
} else if ((typeof no === 'undefined' ? 'undefined' : _typeof(no)) === 'object') {
options = no;
no = _util2.default.noop;
}
options = _util2.default.extend({
content: content,
buttons: [{
label: '取消',
type: 'default',
onClick: no
}, {
label: '确定',
type: 'primary',
onClick: yes
}]
}, options);
return (0, _dialog2.default)(options);
}
exports.default = confirm;
module.exports = exports['default'];
/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _util = __webpack_require__(2);
var _util2 = _interopRequireDefault(_util);
var _toast = __webpack_require__(10);
var _toast2 = _interopRequireDefault(_toast);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*
* Tencent is pleased to support the open source community by making WeUI.js available.
*
* Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
var _sington = void 0;
/**
* toast 一般用于操作成功时的提示场景
* @param {string} content toast的文字
* @param {Object|function=} options 配置项或回调
* @param {number=} [options.duration=3000] 多少毫秒后关闭toast
* @param {function=} options.callback 关闭后的回调
* @param {string=} options.className 自定义类名
*
* @example
* weui.toast('操作成功', 3000);
* weui.toast('操作成功', {
* duration: 3000,
* className: 'custom-classname',
* callback: function(){ console.log('close') }
* });
*/
function toast() {
var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (_sington) return _sington;
if (typeof options === 'number') {
options = {
duration: options
};
}
if (typeof options === 'function') {
options = {
callback: options
};
}
options = _util2.default.extend({
content: content,
duration: 3000,
callback: _util2.default.noop,
className: ''
}, options);
var $toastWrap = (0, _util2.default)(_util2.default.render(_toast2.default, options));
var $toast = $toastWrap.find('.weui-toast');
var $mask = $toastWrap.find('.weui-mask');
(0, _util2.default)('body').append($toastWrap);
$toast.addClass('weui-animate-fade-in');
$mask.addClass('weui-animate-fade-in');
setTimeout(function () {
$mask.addClass('weui-animate-fade-out');
$toast.addClass('weui-animate-fade-out').on('animationend webkitAnimationEnd', function () {
$toastWrap.remove();
_sington = false;
options.callback();
});
}, options.duration);
_sington = $toastWrap[0];
return $toastWrap[0];
}
exports.default = toast;
module.exports = exports['default'];
/***/ }),
/* 10 */
/***/ (function(module, exports) {
module.exports = "
\">
<%=content%>
";
/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _util = __webpack_require__(2);
var _util2 = _interopRequireDefault(_util);
var _loading = __webpack_require__(12);
var _loading2 = _interopRequireDefault(_loading);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*
* Tencent is pleased to support the open source community by making WeUI.js available.
*
* Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
var _sington = void 0;
/**
* loading
* @param {string} content loading的文字
* @param {object=} options 配置项
* @param {string=} options.className 自定义类名
*
* @example
* var loading = weui.loading('loading', {
* className: 'custom-classname'
* });
* setTimeout(function () {
* loading.hide(function() {
* console.log('`loading` has been hidden');
* });
* }, 3000);
*/
function loading() {
var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (_sington) return _sington;
options = _util2.default.extend({
content: content,
className: ''
}, options);
var $loadingWrap = (0, _util2.default)(_util2.default.render(_loading2.default, options));
var $loading = $loadingWrap.find('.weui-toast');
var $mask = $loadingWrap.find('.weui-mask');
function _hide(callback) {
_hide = _util2.default.noop; // 防止二次调用导致报错
$mask.addClass('weui-animate-fade-out');
$loading.addClass('weui-animate-fade-out').on('animationend webkitAnimationEnd', function () {
$loadingWrap.remove();
_sington = false;
callback && callback();
});
}
function hide(callback) {
_hide(callback);
}
(0, _util2.default)('body').append($loadingWrap);
$loading.addClass('weui-animate-fade-in');
$mask.addClass('weui-animate-fade-in');
_sington = $loadingWrap[0];
_sington.hide = hide;
return _sington;
}
exports.default = loading;
module.exports = exports['default'];
/***/ }),
/* 12 */
/***/ (function(module, exports) {
module.exports = "
\">
<%=content%>
";
/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _util = __webpack_require__(2);
var _util2 = _interopRequireDefault(_util);
var _actionSheet = __webpack_require__(14);
var _actionSheet2 = _interopRequireDefault(_actionSheet);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*
* Tencent is pleased to support the open source community by making WeUI.js available.
*
* Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
var _sington = void 0;
/**
* actionsheet 弹出式菜单
* @param {array} menus 上层的选项
* @param {string} menus[].label 选项的文字
* @param {function} menus[].onClick 选项点击时的回调
*
* @param {array} actions 下层的选项
* @param {string} actions[].label 选项的文字
* @param {function} actions[].onClick 选项点击时的回调
*
* @param {object=} options 配置项
* @param {string=} options.title actionSheet的title,如果isAndroid=true,则不会显示
* @param {string=} options.className 自定义类名
* @param {function=} [options.onClose] actionSheet关闭后的回调
*
* @example
* weui.actionSheet([
* {
* label: '拍照',
* onClick: function () {
* console.log('拍照');
* }
* }, {
* label: '从相册选择',
* onClick: function () {
* console.log('从相册选择');
* }
* }, {
* label: '其他',
* onClick: function () {
* console.log('其他');
* }
* }
* ], [
* {
* label: '取消',
* onClick: function () {
* console.log('取消');
* }
* }
* ], {
* className: 'custom-classname',
* onClose: function(){
* console.log('关闭');
* }
* });
*/
function actionSheet() {
var menus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var actions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
if (_sington) return _sington;
var isAndroid = _util2.default.os.android;
options = _util2.default.extend({
menus: menus,
actions: actions,
title: '',
className: '',
isAndroid: isAndroid,
onClose: _util2.default.noop
}, options);
var $actionSheetWrap = (0, _util2.default)(_util2.default.render(_actionSheet2.default, options));
var $actionSheet = $actionSheetWrap.find('.weui-actionsheet');
var $actionSheetMask = $actionSheetWrap.find('.weui-mask');
function _hide(callback) {
_hide = _util2.default.noop; // 防止二次调用导致报错
$actionSheet.addClass(options.isAndroid ? 'weui-animate-fade-out' : 'weui-animate-slide-down');
$actionSheetMask.addClass('weui-animate-fade-out').on('animationend webkitAnimationEnd', function () {
$actionSheetWrap.remove();
_sington = false;
options.onClose();
callback && callback();
});
}
function hide(callback) {
_hide(callback);
}
(0, _util2.default)('body').append($actionSheetWrap);
// 这里获取一下计算后的样式,强制触发渲染. fix IOS10下闪现的问题
_util2.default.getStyle($actionSheet[0], 'transform');
$actionSheet.addClass(options.isAndroid ? 'weui-animate-fade-in' : 'weui-animate-slide-up');
$actionSheetMask.addClass('weui-animate-fade-in').on('click', function () {
hide();
});
$actionSheetWrap.find('.weui-actionsheet__menu').on('click', '.weui-actionsheet__cell', function (evt) {
var index = (0, _util2.default)(this).index();
menus[index].onClick.call(this, evt);
hide();
});
$actionSheetWrap.find('.weui-actionsheet__action').on('click', '.weui-actionsheet__cell', function (evt) {
var index = (0, _util2.default)(this).index();
actions[index].onClick.call(this, evt);
hide();
});
_sington = $actionSheetWrap[0];
_sington.hide = hide;
return _sington;
}
exports.default = actionSheet;
module.exports = exports['default'];
/***/ }),
/* 14 */
/***/ (function(module, exports) {
module.exports = "
weui-skin_android <% } %><%= className %>\">
<% if(!isAndroid && title){ %>
<%= title %>
<% } %>
<% for(var i = 0; i < menus.length; i++){ %>
<%= menus[i].label %>
<% } %>
<% for(var j = 0; j < actions.length; j++){ %>
<%= actions[j].label %>
<% } %>
";
/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _util = __webpack_require__(2);
var _util2 = _interopRequireDefault(_util);
var _topTips = __webpack_require__(16);
var _topTips2 = _interopRequireDefault(_topTips);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*
* Tencent is pleased to support the open source community by making WeUI.js available.
*
* Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
var _toptips = null;
/**
* toptips 顶部报错提示
* @param {string} content 报错的文字
* @param {number|function|object=} options 多少毫秒后消失|消失后的回调|配置项
* @param {number=} [options.duration=3000] 多少毫秒后消失
* @param {string=} options.className 自定义类名
* @param {function=} options.callback 消失后的回调
*
* @example
* weui.topTips('请填写正确的字段');
* weui.topTips('请填写正确的字段', 3000);
* weui.topTips('请填写正确的字段', function(){ console.log('close') });
* weui.topTips('请填写正确的字段', {
* duration: 3000,
* className: 'custom-classname',
* callback: function(){ console.log('close') }
* });
*
* // 主动关闭
* var $topTips = weui.topTips('请填写正确的字段');
* $topTips.hide(function() {
* console.log('`topTips` has been hidden');
* });
*/
function topTips(content) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (typeof options === 'number') {
options = {
duration: options
};
}
if (typeof options === 'function') {
options = {
callback: options
};
}
options = _util2.default.extend({
content: content,
duration: 3000,
callback: _util2.default.noop,
className: ''
}, options);
var $topTips = (0, _util2.default)(_util2.default.render(_topTips2.default, options));
function _hide(callback) {
_hide = _util2.default.noop; // 防止二次调用导致报错
$topTips.remove();
callback && callback();
options.callback();
_toptips = null;
}
function hide(callback) {
_hide(callback);
}
(0, _util2.default)('body').append($topTips);
if (_toptips) {
clearTimeout(_toptips.timeout);
_toptips.hide();
}
_toptips = {
hide: hide
};
_toptips.timeout = setTimeout(hide, options.duration);
$topTips[0].hide = hide;
return $topTips[0];
}
exports.default = topTips;
module.exports = exports['default'];
/***/ }),
/* 16 */
/***/ (function(module, exports) {
module.exports = "
* ```
*
* #### js
* ```javascript
* weui.searchBar('#searchBar');
* ```
*/
function searchBar(selector) {
var $eles = (0, _util2.default)(selector);
$eles.forEach(function (ele) {
var $searchBar = (0, _util2.default)(ele);
var $searchLabel = $searchBar.find('.weui-search-bar__label');
var $searchInput = $searchBar.find('.weui-search-bar__input');
var $searchClear = $searchBar.find('.weui-icon-clear');
var $searchCancel = $searchBar.find('.weui-search-bar__cancel-btn');
function cancelSearch() {
$searchInput.val('');
$searchBar.removeClass('weui-search-bar_focusing');
}
$searchLabel.on('click', function () {
$searchBar.addClass('weui-search-bar_focusing');
$searchInput[0].focus();
});
$searchInput.on('blur', function () {
if (!this.value.length) cancelSearch();
});
$searchClear.on('click', function () {
$searchInput.val('');
$searchInput[0].focus();
});
$searchCancel.on('click', function () {
cancelSearch();
$searchInput[0].blur();
});
});
return $eles;
} /*
* Tencent is pleased to support the open source community by making WeUI.js available.
*
* Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
exports.default = searchBar;
module.exports = exports['default'];
/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _util = __webpack_require__(2);
var _util2 = _interopRequireDefault(_util);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* tab tab导航栏
* @param {string} selector tab的selector
* @param {object=} options 配置项
* @param {number=} [options.defaultIndex=0] 初始展示的index
* @param {function=} options.onChange 点击tab时,返回对应的index
*
* @example
* #### html
* ```html
*
*
*
反馈
*
表单
*
上传
*
其它
*
*
*
反馈页
*
表单页
*
上传页
*
其它页
*
*
* ```
*
* #### js
* ```javascript
* weui.tab('#tab',{
* defaultIndex: 0,
* onChange: function(index){
* console.log(index);
* }
* });
* ```
*/
function tab(selector) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var $eles = (0, _util2.default)(selector);
options = _util2.default.extend({
defaultIndex: 0,
onChange: _util2.default.noop
}, options);
$eles.forEach(function (ele) {
var $tab = (0, _util2.default)(ele);
var $tabItems = $tab.find('.weui-navbar__item, .weui-tabbar__item');
var $tabContents = $tab.find('.weui-tab__content');
$tabItems.eq(options.defaultIndex).addClass('weui-bar__item_on');
$tabContents.eq(options.defaultIndex).show();
$tabItems.on('click', function () {
var $this = (0, _util2.default)(this),
index = $this.index();
$tabItems.removeClass('weui-bar__item_on');
$this.addClass('weui-bar__item_on');
$tabContents.hide();
$tabContents.eq(index).show();
options.onChange.call(this, index);
});
});
return this;
} /*
* Tencent is pleased to support the open source community by making WeUI.js available.
*
* Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
exports.default = tab;
module.exports = exports['default'];
/***/ }),
/* 19 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _util = __webpack_require__(2);
var _util2 = _interopRequireDefault(_util);
var _topTips = __webpack_require__(15);
var _topTips2 = _interopRequireDefault(_topTips);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*
* Tencent is pleased to support the open source community by making WeUI.js available.
*
* Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
function _findCellParent(ele) {
if (!ele || !ele.classList) return null;
if (ele.classList.contains('weui-cell')) return ele;
return _findCellParent(ele.parentNode);
}
function _validate($input, $form, regexp) {
var input = $input[0],
val = $input.val();
if (input.tagName == 'INPUT' || input.tagName == 'TEXTAREA') {
var reg = input.getAttribute('pattern') || '';
if (input.type == 'radio') {
var radioInputs = $form.find('input[type="radio"][name="' + input.name + '"]');
for (var i = 0, len = radioInputs.length; i < len; ++i) {
if (radioInputs[i].checked) return null;
}
return 'empty';
} else if (input.type == 'checkbox') {
if (reg) {
var checkboxInputs = $form.find('input[type="checkbox"][name="' + input.name + '"]');
var regs = reg.replace(/[{\s}]/g, '').split(',');
var count = 0;
if (regs.length != 2) {
throw input.outerHTML + ' regexp is wrong.';
}
checkboxInputs.forEach(function (checkboxInput) {
if (checkboxInput.checked) ++count;
});
if (regs[1] === '') {
// {0,}
if (count >= parseInt(regs[0])) {
return null;
} else {
return count == 0 ? 'empty' : 'notMatch';
}
} else {
// {0,2}
if (parseInt(regs[0]) <= count && count <= parseInt(regs[1])) {
return null;
} else {
return count == 0 ? 'empty' : 'notMatch';
}
}
} else {
return input.checked ? null : 'empty';
}
} else if (reg) {
if (/^REG_/.test(reg)) {
if (!regexp) throw 'RegExp ' + reg + ' is empty.';
reg = reg.replace(/^REG_/, '');
if (!regexp[reg]) throw 'RegExp ' + reg + ' has not found.';
reg = regexp[reg];
}
return new RegExp(reg).test(val) ? null : !$input.val().length ? 'empty' : 'notMatch';
} else if (!$input.val().length) {
return 'empty';
} else {
return null;
}
} else if (val.length) {
// 有输入值
return null;
}
return 'empty';
}
/**
* 表单校验
* @param {string} selector 表单的selector
* @param {function} callback 校验后的回调
* @param {Object=} options 配置项
* @param {object=} options.regexp 表单所需的正则表达式
*
* @example
* ##### 普通input的HTML
* ```html
*
*
* ```
* - required 表示需要校验
* - pattern 表示校验的正则,不填则进行为空校验。当以REG_开头时,则获取校验时传入的正则。如`pattern="REG_IDNUM"`,则需要在调用相应方法时传入`{regexp:{IDNUM: /(?:^\d{15}$)|(?:^\d{18}$)|^\d{17}[\dXx]$/}}`,详情请看下面`checkIfBlur`和`validate`
* - 报错的wording会从 emptyTips | notMatchTips | tips | placeholder 里获得
*
*
* ##### radio
* radio需要检验,只需把参数写在同一表单下,同name的第一个元素即可。
* ```html
*
*
* ```
*
*
* ##### checkbox
* checkbox需要校验,只需把参数写在同一表单下,同name的第一个元素即可。
* pattern 规定选择个数,用法与正则一致,例如:
* ```html
*
*
*
*
* ```
* - {1,} 至少选择1个
* - {1,2} 选择1-2个
* - 这里不会出现{0,}这种情况,因为有required就表示必选。否则直接去掉required即可。
*
*
* ``` js
* // weui.form.validate('#form', function(error){ console.log(error);}); // error: {dom:[Object], msg:[String]}
* weui.form.validate('#form', function (error) {
* if (!error) {
* var loading = weui.loading('提交中...');
* setTimeout(function () {
* loading.hide();
* weui.toast('提交成功', 3000);
* }, 1500);
* }
* // return true; // 当return true时,不会显示错误
* }, {
* regexp: {
* IDNUM: /(?:^\d{15}$)|(?:^\d{18}$)|^\d{17}[\dXx]$/,
* VCODE: /^.{4}$/
* }
* });
* ```
*/
function validate(selector) {
var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _util2.default.noop;
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var $eles = (0, _util2.default)(selector);
$eles.forEach(function (ele) {
var $form = (0, _util2.default)(ele);
var $requireds = $form.find('[required]');
if (typeof callback != 'function') callback = showErrorTips;
for (var i = 0, len = $requireds.length; i < len; ++i) {
var $required = $requireds.eq(i),
errorMsg = _validate($required, $form, options.regexp),
error = { ele: $required[0], msg: errorMsg };
if (errorMsg) {
if (!callback(error)) showErrorTips(error);
return;
}
}
callback(null);
});
return this;
}
/**
* checkIfBlur 当表单的input失去焦点时校验
* @param {string} selector 表单的selector
* @param {Object=} options 配置项
* @param {object=} options.regexp 表单所需的正则表达式
*
* @example
* weui.form.checkIfBlur('#form', {
* regexp: {
* IDNUM: /(?:^\d{15}$)|(?:^\d{18}$)|^\d{17}[\dXx]$/,
* VCODE: /^.{4}$/
* }
* });
*/
function checkIfBlur(selector) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var $eles = (0, _util2.default)(selector);
$eles.forEach(function (ele) {
var $form = (0, _util2.default)(ele);
$form.find('[required]').on('blur', function () {
// checkbox 和 radio 不做blur检测,以免误触发
if (this.type == 'checkbox' || this.type == 'radio') return;
var $this = (0, _util2.default)(this);
if ($this.val().length < 1) return; // 当空的时候不校验,以防不断弹出toptips
var errorMsg = _validate($this, $form, options.regexp);
if (errorMsg) {
showErrorTips({
ele: $this[0],
msg: errorMsg
});
}
}).on('focus', function () {
hideErrorTips(this);
});
});
return this;
}
/**
* showErrorTips 显示错误提示
* @param {Object} error 错误数据
* @param {string} error.ele 出错了的dom元素
* @param {string} error.msg 出错了的msg。会根据此`msg`找到对应的`Tips`(比如`msg`是`empty`),那么`ele`上的`emptyTips`就会以`topTips`显示
*
* @example
* weui.form.showErrorTips({
* ele: document.getElementById("xxxInput")
* msg: 'empty'
* });
*/
function showErrorTips(error) {
if (error) {
var $ele = (0, _util2.default)(error.ele),
msg = error.msg,
tips = $ele.attr(msg + 'Tips') || $ele.attr('tips') || $ele.attr('placeholder');
if (tips) (0, _topTips2.default)(tips);
if (error.ele.type == 'checkbox' || error.ele.type == 'radio') return;
var cellParent = _findCellParent(error.ele);
if (cellParent) cellParent.classList.add('weui-cell_warn');
}
}
/**
* hideErrorTips 隐藏错误提示
* @param {Object} ele dom元素
*
* @example
* weui.form.hideErrorTips(document.getElementById("xxxInput"));
*/
function hideErrorTips(ele) {
var cellParent = _findCellParent(ele);
if (cellParent) cellParent.classList.remove('weui-cell_warn');
}
exports.default = {
showErrorTips: showErrorTips,
hideErrorTips: hideErrorTips,
validate: validate,
checkIfBlur: checkIfBlur
};
module.exports = exports['default'];
/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _util = __webpack_require__(2);
var _util2 = _interopRequireDefault(_util);
var _item = __webpack_require__(21);
var _item2 = _interopRequireDefault(_item);
var _image = __webpack_require__(22);
var _upload = __webpack_require__(23);
var _upload2 = _interopRequireDefault(_upload);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*
* Tencent is pleased to support the open source community by making WeUI.js available.
*
* Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
var _id = 0;
/**
* uploader 上传组件
* @param {string} selector 上传组件的selector
* @param {object} options 配置项
* @param {string} [options.url] 上传的url,返回值需要使用json格式
* @param {boolean} [options.auto=true] 设置为`true`后,不需要手动调用上传,有文件选择即开始上传。用this.upload()来上传,详情请看example
* @param {string} [options.type=file] 上传类型, `file`为文件上传; `base64`为以base64上传
* @param {string=} [options.fileVal=file] 文件上传域的name
* @param {object=} [options.compress] 压缩配置, `false`则不压缩
* @param {number=} [options.compress.width=1600] 图片的最大宽度
* @param {number=} [options.compress.height=1600] 图片的最大高度
* @param {number=} [options.compress.quality=.8] 压缩质量, 取值范围 0 ~ 1
* @param {function=} [options.onBeforeQueued] 文件添加前的回调,return false则不添加
* @param {function=} [options.onQueued] 文件添加成功的回调
* @param {function=} [options.onBeforeSend] 文件上传前调用,具体参数看example
* @param {function=} [options.onSuccess] 上传成功的回调
* @param {function=} [options.onProgress] 上传进度的回调
* @param {function=} [options.onError] 上传失败的回调
*
* @example
* #### html
* ```html
";
/***/ }),
/* 30 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _util = __webpack_require__(2);
var _util2 = _interopRequireDefault(_util);
var _gallery = __webpack_require__(31);
var _gallery2 = _interopRequireDefault(_gallery);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*
* Tencent is pleased to support the open source community by making WeUI.js available.
*
* Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
var _sington = void 0;
/**
* gallery 带删除按钮的图片预览,主要是配合图片上传使用
* @param {string} url gallery显示的图片的url
* @param {object=} options 配置项
* @param {string=} options.className 自定义类名
* @param {function=} options.onDelete 点击删除图片时的回调
*
* @example
* var gallery = weui.gallery(url, {
* className: 'custom-classname',
* onDelete: function(){
* if(confirm('确定删除该图片?')){ console.log('删除'); }
* gallery.hide(function() {
* console.log('`gallery` has been hidden');
* });
* }
* });
*/
function gallery(url) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (_sington) return _sington;
options = _util2.default.extend({
className: '',
onDelete: _util2.default.noop
}, options);
var $gallery = (0, _util2.default)(_util2.default.render(_gallery2.default, _util2.default.extend({
url: url
}, options)));
function _hide(callback) {
_hide = _util2.default.noop; // 防止二次调用导致报错
$gallery.addClass('weui-animate-fade-out').on('animationend webkitAnimationEnd', function () {
$gallery.remove();
_sington = false;
callback && callback();
});
}
function hide(callback) {
_hide(callback);
}
(0, _util2.default)('body').append($gallery);
$gallery.find('.weui-gallery__img').on('click', function () {
hide();
});
$gallery.find('.weui-gallery__del').on('click', function () {
options.onDelete.call(this, url);
});
$gallery.show().addClass('weui-animate-fade-in');
_sington = $gallery[0];
_sington.hide = hide;
return _sington;
}
exports.default = gallery;
module.exports = exports['default'];
/***/ }),
/* 31 */
/***/ (function(module, exports) {
module.exports = "