UNPKG

zoomla

Version:

16年专业研发|中文alexa排名第一的CMS品牌-基于dotNET core、功能强大,集成站群、微信开发、小程序与ERP及OA办公系统,支持国际语言和多民族语言,世界五百强与大型门户专用高端网站内核CMS系统

1,206 lines (1,008 loc) 136 kB
/*! * weui.js v1.0.0 (https://weui.io) * Copyright 2016, wechat ui team * MIT license */ (function webpackUniversalModuleDefinition(root, factory) { if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if (typeof define === 'function' && define.amd) define([], factory); else if (typeof exports === 'object') exports["weui"] = factory(); else root["weui"] = factory(); })(this, function () { return /******/ (function (modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ if (installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ // Flag the module as loaded /******/ module.loaded = true; /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/([ /* 0 */ /***/ function (module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); var _alert = __webpack_require__(7); var _alert2 = _interopRequireDefault(_alert); var _confirm = __webpack_require__(8); var _confirm2 = _interopRequireDefault(_confirm); var _toast = __webpack_require__(9); var _toast2 = _interopRequireDefault(_toast); var _loading = __webpack_require__(11); var _loading2 = _interopRequireDefault(_loading); var _actionSheet = __webpack_require__(13); var _actionSheet2 = _interopRequireDefault(_actionSheet); var _topTips = __webpack_require__(15); var _topTips2 = _interopRequireDefault(_topTips); var _searchBar = __webpack_require__(17); var _searchBar2 = _interopRequireDefault(_searchBar); var _tab = __webpack_require__(18); var _tab2 = _interopRequireDefault(_tab); var _form = __webpack_require__(19); var _form2 = _interopRequireDefault(_form); var _uploader = __webpack_require__(20); var _uploader2 = _interopRequireDefault(_uploader); var _picker = __webpack_require__(24); var _gallery = __webpack_require__(29); var _gallery2 = _interopRequireDefault(_gallery); var _slider = __webpack_require__(31); var _slider2 = _interopRequireDefault(_slider); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = { dialog: _dialog2.default, alert: _alert2.default, confirm: _confirm2.default, toast: _toast2.default, loading: _loading2.default, actionSheet: _actionSheet2.default, topTips: _topTips2.default, searchBar: _searchBar2.default, tab: _tab2.default, form: _form2.default, uploader: _uploader2.default, picker: _picker.picker, datePicker: _picker.datePicker, gallery: _gallery2.default, slider: _slider2.default }; module.exports = exports['default']; /***/ }, /* 1 */ /***/ function (module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _util = __webpack_require__(2); var _util2 = _interopRequireDefault(_util); var _dialog = __webpack_require__(6); var _dialog2 = _interopRequireDefault(_dialog); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _sington = void 0; /** * dialog,弹窗,alert和confirm的父类 * * @param {object=} options 配置项 * @param {string=} options.title 弹窗的标题 * @param {string=} options.content 弹窗的内容 * @param {string=} options.className 弹窗的自定义类名 * @param {array=} options.buttons 按钮配置项 * * @param {string} [options.buttons[].label=确定] 按钮的文字 * @param {string} [options.buttons[].type=primary] 按钮的类型 [primary, default] * @param {function} [options.buttons[].onClick=$.noop] 按钮的回调 * * @example * weui.dialog({ * title: 'dialog标题', * content: 'dialog内容', * className: 'custom-classname', * buttons: [{ * label: '取消', * type: 'default', * onClick: function () { alert('取消') } * }, { * label: '确定', * type: 'primary', * onClick: function () { alert('确定') } * }] * }); */ function dialog() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; if (_sington) return _sington; var isAndroid = _util2.default.os.android; options = _util2.default.extend({ title: null, content: '', className: '', buttons: [{ label: '确定', type: 'primary', onClick: _util2.default.noop }], isAndroid: isAndroid }, options); var $dialogWrap = (0, _util2.default)(_util2.default.render(_dialog2.default, options)); var $dialog = $dialogWrap.find('.weui-dialog'); var $mask = $dialogWrap.find('.weui-mask'); function hide() { var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _util2.default.noop; $mask.addClass('weui-animate-fade-out'); $dialog.addClass('weui-animate-fade-out').on('animationend webkitAnimationEnd', function () { $dialogWrap.remove(); _sington = false; callback(); }); } (0, _util2.default)('body').append($dialogWrap); // 不能直接把.weui-animate-fade-in加到$dialog,会导致mask的z-index有问题 $mask.addClass('weui-animate-fade-in'); $dialog.addClass('weui-animate-fade-in'); $dialogWrap.on('click', '.weui-dialog__btn', function (evt) { var _this = this; var index = (0, _util2.default)(this).index(); hide(function () { options.buttons[index].onClick && options.buttons[index].onClick.call(_this, evt); }); }); _sington = $dialogWrap[0]; _sington.hide = hide; return _sington; } exports.default = dialog; module.exports = exports['default']; /***/ }, /* 2 */ /***/ 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; }; __webpack_require__(3); var _objectAssign = __webpack_require__(4); var _objectAssign2 = _interopRequireDefault(_objectAssign); var _balajs = __webpack_require__(5); var _balajs2 = _interopRequireDefault(_balajs); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // 其实,$ 的原型就是一个数组,拥有数组的各种方法 // 这里只是库内部使用,所以通过文档约束,不做容错校验,达到代码最小化 /* 判断系统 */ function _detect(ua) { var os = this.os = {}, android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); if (android) { os.android = true; os.version = android[2]; } } _detect.call(_balajs2.default, navigator.userAgent); (0, _objectAssign2.default)(_balajs2.default.fn, { /** * 只能是一个 HTMLElement 元素或者 HTMLElement 数组,不支持字符串 * @param {Element|Element[]} $child * @returns {append} */ append: function append($child) { if (!($child instanceof HTMLElement)) { $child = $child[0]; } this.forEach(function ($element) { $element.appendChild($child); }); return this; }, /** * * @returns {remove} */ remove: function remove() { this.forEach(function ($element) { $element.parentNode.removeChild($element); }); return this; }, /** * * @param selector * @returns {HTMLElement} */ find: function find(selector) { return (0, _balajs2.default)(selector, this); }, /** * * @param {String} className * @returns {addClass} */ addClass: function addClass(className) { this.forEach(function ($element) { // http://caniuse.com/#search=classList $element.classList.add(className); }); return this; }, /** * * @param {String} className * @returns {removeClass} */ removeClass: function removeClass(className) { this.forEach(function ($element) { // http://caniuse.com/#search=classList $element.classList.remove(className); }); return this; }, /** * * @param index * @returns {*|jQuery|HTMLElement} */ eq: function eq(index) { return (0, _balajs2.default)(this[index]); }, /** * * @returns {show} */ show: function show() { this.forEach(function ($element) { $element.style.display = 'block'; }); return this; }, /** * * @returns {hide} */ hide: function hide() { this.forEach(function ($element) { $element.style.display = 'none'; }); return this; }, /** * * @param html 目前只能接受字符串 * @returns {html} */ html: function html(_html) { this.forEach(function ($element) { $element.innerHTML = _html; }); return this; }, /** * * @param {Object} obj 目前只能接受object * @returns {css} */ css: function css(obj) { var _this = this; Object.keys(obj).forEach(function (key) { _this.forEach(function ($element) { $element.style[key] = obj[key]; }); }); return this; }, /** * * @param eventType * @param selector * @param handler */ on: function on(eventType, selector, handler) { var isDelegate = typeof selector === 'string' && typeof handler === 'function'; if (!isDelegate) { handler = selector; } this.forEach(function ($element) { eventType.split(' ').forEach(function (event) { $element.addEventListener(event, function (evt) { if (isDelegate) { // http://caniuse.com/#search=closest if (this.contains(evt.target.closest(selector))) { handler.call(evt.target, evt); } } else { handler.call(this, evt); } }); }); }); return this; }, /** * * @param {String} eventType * @param {String|Function} selector * @param {Function=} handler * @returns {off} */ off: function off(eventType, selector, handler) { if (typeof selector === 'function') { handler = selector; selector = null; } this.forEach(function ($element) { eventType.split(' ').forEach(function (event) { if (typeof selector === 'string') { $element.querySelectorAll(selector).forEach(function ($element) { $element.removeEventListener(event, handler); }); } else { $element.removeEventListener(event, handler); } }); }); return this; }, /** * * @returns {Number} */ index: function index() { var $element = this[0]; var $parent = $element.parentNode; return Array.prototype.indexOf.call($parent.children, $element); }, /** * @desc 因为off方法目前不可以移除绑定的匿名函数,现在直接暴力移除所有listener * @returns {offAll} */ offAll: function offAll() { var _this2 = this; this.forEach(function ($element, index) { var clone = $element.cloneNode(true); $element.parentNode.replaceChild(clone, $element); _this2[index] = clone; }); return this; }, /** * * @returns {*} */ val: function val() { var _arguments = arguments; if (arguments.length) { this.forEach(function ($element) { $element.value = _arguments[0]; }); return this; } return this[0].value; }, /** * * @returns {*} */ attr: function attr() { var _arguments2 = arguments, _this3 = this; if (_typeof(arguments[0]) == 'object') { var _ret = function () { var attrsObj = _arguments2[0]; var that = _this3; Object.keys(attrsObj).forEach(function (attr) { that.forEach(function ($element) { $element.setAttribute(attr, attrsObj[attr]); }); }); return { v: _this3 }; }(); if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v; } if (typeof arguments[0] == 'string' && arguments.length < 2) { return this[0].getAttribute(arguments[0]); } this.forEach(function ($element) { $element.setAttribute(_arguments2[0], _arguments2[1]); }); return this; } }); (0, _objectAssign2.default)(_balajs2.default, { extend: _objectAssign2.default, /** * noop */ noop: function noop() { }, /** * render * 取值:<%= variable %> * 表达式:<% if {} %> * 例子: * <div> * <div class="weui-mask"></div> * <div class="weui-dialog"> * <% if(typeof title === 'string'){ %> * <div class="weui-dialog__hd"><strong class="weui-dialog__title"><%=title%></strong></div> * <% } %> * <div class="weui-dialog__bd"><%=content%></div> * <div class="weui-dialog__ft"> * <% for(var i = 0; i < buttons.length; i++){ %> * <a href="javascript:;" class="weui-dialog__btn weui-dialog__btn_<%=buttons[i]['type']%>"><%=buttons[i]['label']%></a> * <% } %> * </div> * </div> * </div> * A very simple template engine * @param {String} tpl * @param {Object=} data * @returns {String} */ render: function render(tpl, data) { var code = 'var p=[],print=function(){p.push.apply(p,arguments);};with(this){p.push(\'' + tpl.replace(/[\r\t\n]/g, ' ').split('<%').join('\t').replace(/((^|%>)[^\t]*)'/g, '$1\r').replace(/\t=(.*?)%>/g, '\',$1,\'').split('\t').join('\');').split('%>').join('p.push(\'').split('\r').join('\\\'') + '\');}return p.join(\'\');'; return new Function(code).apply(data); }, /** * getStyle 获得元素计算后的样式值 */ getStyle: function getStyle(el, styleProp) { var value, defaultView = (el.ownerDocument || document).defaultView; // W3C standard way: if (defaultView && defaultView.getComputedStyle) { // sanitize property name to css notation // (hypen separated words eg. font-Size) styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase(); return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp); } else if (el.currentStyle) { // IE // sanitize property name to camelCase styleProp = styleProp.replace(/\-(\w)/g, function (str, letter) { return letter.toUpperCase(); }); value = el.currentStyle[styleProp]; // convert other units to pixels on IE if (/^\d+(em|pt|%|ex)?$/i.test(value)) { return function (value) { var oldLeft = el.style.left, oldRsLeft = el.runtimeStyle.left; el.runtimeStyle.left = el.currentStyle.left; el.style.left = value || 0; value = el.style.pixelLeft + 'px'; el.style.left = oldLeft; el.runtimeStyle.left = oldRsLeft; return value; }(value); } return value; } } }); exports.default = _balajs2.default; module.exports = exports['default']; /***/ }, /* 3 */ /***/ function (module, exports) { // element-closest | CC0-1.0 | github.com/jonathantneal/closest (function (ElementProto) { if (typeof ElementProto.matches !== 'function') { ElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) { var element = this; var elements = (element.document || element.ownerDocument).querySelectorAll(selector); var index = 0; while (elements[index] && elements[index] !== element) { ++index; } return Boolean(elements[index]); }; } if (typeof ElementProto.closest !== 'function') { ElementProto.closest = function closest(selector) { var element = this; while (element && element.nodeType === 1) { if (element.matches(selector)) { return element; } element = element.parentNode; } return null; }; } })(window.Element.prototype); /***/ }, /* 4 */ /***/ function (module, exports) { 'use strict'; /* eslint-disable no-unused-vars */ var hasOwnProperty = Object.prototype.hasOwnProperty; var propIsEnumerable = Object.prototype.propertyIsEnumerable; function toObject(val) { if (val === null || val === undefined) { throw new TypeError('Object.assign cannot be called with null or undefined'); } return Object(val); } function shouldUseNative() { try { if (!Object.assign) { return false; } // Detect buggy property enumeration order in older V8 versions. // https://bugs.chromium.org/p/v8/issues/detail?id=4118 var test1 = new String('abc'); // eslint-disable-line test1[5] = 'de'; if (Object.getOwnPropertyNames(test1)[0] === '5') { return false; } // https://bugs.chromium.org/p/v8/issues/detail?id=3056 var test2 = {}; for (var i = 0; i < 10; i++) { test2['_' + String.fromCharCode(i)] = i; } var order2 = Object.getOwnPropertyNames(test2).map(function (n) { return test2[n]; }); if (order2.join('') !== '0123456789') { return false; } // https://bugs.chromium.org/p/v8/issues/detail?id=3056 var test3 = {}; 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { test3[letter] = letter; }); if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') { return false; } return true; } catch (e) { // We don't expect any of the above to throw, but better to be safe. return false; } } module.exports = shouldUseNative() ? Object.assign : function (target, source) { var from; var to = toObject(target); var symbols; for (var s = 1; s < arguments.length; s++) { from = Object(arguments[s]); for (var key in from) { if (hasOwnProperty.call(from, key)) { to[key] = from[key]; } } if (Object.getOwnPropertySymbols) { symbols = Object.getOwnPropertySymbols(from); for (var i = 0; i < symbols.length; i++) { if (propIsEnumerable.call(from, symbols[i])) { to[symbols[i]] = from[symbols[i]]; } } } } return to; }; /***/ }, /* 5 */ /***/ function (module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; (function (root, $) { $ = (function (document, s_addEventListener, s_querySelectorAll) { function $(s, context, bala) { bala = Object.create($.fn); s && bala.push.apply(bala, // if s is truly then push the following s[s_addEventListener] // if arg is node or window, ? [s] // then pass [s] : "" + s === s // else if arg is a string ? /</.test(s) // if the string contains "<" (if HTML code is passed) // then parse it and return node.children // use 'addEventListener' (HTMLUnknownElement) if content is not presented ? ((context = document.createElement(context || s_addEventListener)).innerHTML = s , context.children) : context // else if context is truly ? ((context = $(context)[0]) // if context element is found ? context[s_querySelectorAll](s) // then select element from context : bala) // else pass [] (context isn't found) : document[s_querySelectorAll](s) // else select elements globally : typeof s == 'function' // else if function is passed // if DOM is ready // readyState[7] means readyState value is "interactive" or "complete" (not "loading") ? document.readyState[7] ? s() // then run given function : document[s_addEventListener]('DOMContentLoaded', s) // else wait for DOM ready : s); // else guessing that s variable is array-like Object return bala; } $.fn = []; $.one = function (s, context) { return $(s, context)[0] || null; }; return $; })(document, 'addEventListener', 'querySelectorAll'); if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () { return $; }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else if (typeof module == 'object' && module.exports) { module.exports = $; } else { root.$ = $; } })(this); /***/ }, /* 6 */ /***/ function (module, exports) { module.exports = "<div class=\"<%=className%>\"> <div class=weui-mask></div> <div class=\"weui-dialog <% if(isAndroid){ %> weui-skin_android <% } %>\"> <% if(title){ %> <div class=weui-dialog__hd><strong class=weui-dialog__title><%=title%></strong></div> <% } %> <div class=weui-dialog__bd><%=content%></div> <div class=weui-dialog__ft> <% for(var i = 0; i < buttons.length; i++){ %> <a href=javascript:; class=\"weui-dialog__btn weui-dialog__btn_<%=buttons[i]['type']%>\"><%=buttons[i]['label']%></a> <% } %> </div> </div> </div> "; /***/ }, /* 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; }; 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') }); * 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') } * }] * }); */ function alert() { var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var yes = arguments[1]; var options = arguments[2]; var type = (typeof yes === 'undefined' ? 'undefined' : _typeof(yes)) === 'object'; if (type) { options = yes; } options = _util2.default.extend({ content: content, buttons: [{ label: '确定', type: 'primary', onClick: type ? _util2.default.noop : 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; }; 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') }); * 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[1]; var no = arguments[2]; var options = arguments[3]; var type = (typeof yes === 'undefined' ? 'undefined' : _typeof(yes)) === 'object'; if (type) { options = yes; } options = _util2.default.extend({ content: content, buttons: [{ label: '取消', type: 'default', onClick: type ? _util2.default.noop : no }, { label: '确定', type: 'primary', onClick: type ? _util2.default.noop : 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 }; } 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 $toast = (0, _util2.default)(_util2.default.render(_toast2.default, options)); (0, _util2.default)('body').append($toast); $toast.addClass('weui-animate-fade-in'); setTimeout(function () { $toast.addClass('weui-animate-fade-out').on('animationend webkitAnimationEnd', function () { $toast.remove(); _sington = false; options.callback(); }); }, options.duration); _sington = $toast[0]; return $toast[0]; } exports.default = toast; module.exports = exports['default']; /***/ }, /* 10 */ /***/ function (module, exports) { module.exports = "<div class=\"<%= className %>\"> <div class=weui-mask_transparent></div> <div class=weui-toast> <i class=\"weui-icon_toast weui-icon-success-no-circle\"></i> <p class=weui-toast__content><%=content%></p> </div> </div> "; /***/ }, /* 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 }; } 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(); * }, 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 $loading = (0, _util2.default)(_util2.default.render(_loading2.default, options)); function hide() { $loading.addClass('weui-animate-fade-out').on('animationend webkitAnimationEnd', function () { $loading.remove(); _sington = false; }); } (0, _util2.default)('body').append($loading); $loading.addClass('weui-animate-fade-in'); _sington = $loading[0]; _sington.hide = hide; return _sington; } exports.default = loading; module.exports = exports['default']; /***/ }, /* 12 */ /***/ function (module, exports) { module.exports = "<div class=\"weui-loading_toast <%= className %>\"> <div class=weui-mask_transparent></div> <div class=weui-toast> <i class=\"weui-loading weui-icon_toast\"></i> <p class=weui-toast__content><%=content%></p> </div> </div> "; /***/ }, /* 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 }; } 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.className 自定义类名 * * @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' * }); */ 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, className: '', isAndroid: isAndroid }, 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() { $actionSheet.addClass(isAndroid ? 'weui-animate-fade-out' : 'weui-animate-slide-down'); $actionSheetMask.addClass('weui-animate-fade-out').on('animationend webkitAnimationEnd', function () { $actionSheetWrap.remove(); _sington = false; }); } (0, _util2.default)('body').append($actionSheetWrap);