UNPKG

weex-nuke

Version:

基于 Rax 、Weex 的高性能组件体系 ~~

113 lines (93 loc) 3.18 kB
/** @jsx createElement */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _rax = require('rax'); var _nukeWebPicker = require('../WebPicker/index.js'); var _nukeWebPicker2 = _interopRequireDefault(_nukeWebPicker); var _locale = require('./locale.js'); var _locale2 = _interopRequireDefault(_locale); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var noop = function noop() {}; var pickerInstance = null; var container = null; function formatDataSource(dataSource) { var result = []; dataSource.forEach(function (item, index) { result.push({ key: index, value: item }); }); return result; } function formatResult(result) { return { data: result[0].key }; } function show() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var onSelect = arguments[1]; var onCancel = arguments[2]; var onShow = arguments[3]; var onFail = arguments[4]; var title = options.title, dataSource = options.dataSource, selectedKey = options.selectedKey, _options$maskClosable = options.maskClosable, maskClosable = _options$maskClosable === undefined ? true : _options$maskClosable, _options$locale = options.locale, locale = _options$locale === undefined ? {} : _options$locale, others = _objectWithoutProperties(options, ['title', 'dataSource', 'selectedKey', 'maskClosable', 'locale']); onSelect = onSelect || noop; onShow = onShow || noop; onCancel = onCancel || noop; onFail = onFail || noop; if (!dataSource) { onFail({ err: 'empty dataSource' }); return; } if (!selectedKey) { if (dataSource[0].children) { selectedKey = [dataSource[0].key, dataSource[0].children[0].key]; } else { selectedKey = dataSource[0].key; } } if (!selectedKey) { if (dataSource[0].children) { selectedKey = [dataSource[0].key, dataSource[0].children[0].key]; } else { selectedKey = [dataSource[0].key]; } } if (typeof selectedKey === 'string') { selectedKey = [selectedKey]; } if (typeof selectedKey === 'number') { selectedKey = [selectedKey.toString()]; } _nukeWebPicker2.default.show({ title: title, dataSource: formatDataSource(dataSource, options.selectedKey), selectedKey: selectedKey, hasToolbar: true, hasToolbarButton: true, locale: { confirm: locale.confirm || _locale2.default.confirm, cancel: locale.cancel || _locale2.default.cancel } }, function (result) { onSelect(formatResult(result)); }, onCancel, onShow, onFail); function onSelectCallback(res) { var result = { success: true }; if (res && res[0] && res.length > 0) { result.data = res[0]; } onSelect(result); } } function hide() { _nukeWebPicker2.default.hide(); } exports.default = { show: show, hide: hide }; module.exports = exports['default'];