mp-colorui
Version:
MP ColorUI 是一款基于 Taro 框架并且联合 Color-UI CSS 库开发的多端 UI 组件库(支持小程序端和H5端)
376 lines (307 loc) • 22 kB
JavaScript
(wx["webpackJsonp"] = wx["webpackJsonp"] || []).push([["components/verticalTab/index"],{
/***/ "./node_modules/@tarojs/mini-runner/dist/loaders/wxTransformerLoader.js?!./src/components/verticalTab/index.tsx?taro&type=script&parse=COMPONENT&":
/*!*****************************************************************************************************************************************************************!*\
!*** ./node_modules/@tarojs/mini-runner/dist/loaders/wxTransformerLoader.js??ref--4-0!./src/components/verticalTab/index.tsx?taro&type=script&parse=COMPONENT& ***!
\*****************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _taroWeapp = __webpack_require__(/*! @tarojs/taro-weapp */ "./node_modules/@tarojs/taro-weapp/index.js");
var _taroWeapp2 = _interopRequireDefault(_taroWeapp);
var _index = __webpack_require__(/*! ../../lib/index */ "./src/lib/index.ts");
__webpack_require__(/*! ./index.scss */ "./src/components/verticalTab/index.scss");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var scrollTimer = undefined;
var ClVerticalTab = function (_Taro$Component) {
_inherits(ClVerticalTab, _Taro$Component);
function ClVerticalTab() {
var _ref;
var _temp, _this, _ret;
_classCallCheck(this, ClVerticalTab);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ClVerticalTab.__proto__ || Object.getPrototypeOf(ClVerticalTab)).call.apply(_ref, [this].concat(args))), _this), _this.$usedState = ["anonymousState__temp", "anonymousState__temp2", "anonymousState__temp3", "anonymousState__temp4", "anonymousState__temp5", "loopArray85", "current", "tabs", "scrollId", "isAliPay", "undefined", "scrollContent", "props", "verticalNavTop", "screenPercent", "isH5", "children"], _this.anonymousFunc0Map = {}, _this.customComponents = [], _temp), _possibleConstructorReturn(_this, _ret);
}
_createClass(ClVerticalTab, [{
key: "_constructor",
value: function _constructor(props) {
_get(ClVerticalTab.prototype.__proto__ || Object.getPrototypeOf(ClVerticalTab.prototype), "_constructor", this).call(this, props);
this.$$refs = new _taroWeapp2.default.RefsArray();
}
}, {
key: "_createData",
value: function _createData() {
var _this2 = this;
this.__state = arguments[0] || this.state || {};
this.__props = arguments[1] || this.props || {};
var __isRunloopRef = arguments[2];
var __prefix = this.$prefix;
;
var props = this.__props;
var scrollTab = false;
var id = "";
var _useState = (0, _taroWeapp.useState)(props.tabs || []),
_useState2 = _slicedToArray(_useState, 2),
tabsState = _useState2[0],
setTabsState = _useState2[1];
var currentId = props.current ? props.current : props.tabs[0].id;
var _useState3 = (0, _taroWeapp.useState)(currentId),
_useState4 = _slicedToArray(_useState3, 2),
current = _useState4[0],
setCurrent = _useState4[1];
var _useState5 = (0, _taroWeapp.useState)(tabsState.findIndex(function (item) {
return item.name === props.tabs[0].name;
})),
_useState6 = _slicedToArray(_useState5, 2),
verticalNavTop = _useState6[0],
setVerticalNavTop = _useState6[1];
var _useState7 = (0, _taroWeapp.useState)(currentId),
_useState8 = _slicedToArray(_useState7, 2),
scrollId = _useState8[0],
setScrollId = _useState8[1];
var _useState9 = (0, _taroWeapp.useState)(0),
_useState10 = _slicedToArray(_useState9, 2),
scrollContent = _useState10[0],
setScrollContent = _useState10[1];
var _useState11 = (0, _taroWeapp.useState)(false),
_useState12 = _slicedToArray(_useState11, 2),
clickTab = _useState12[0],
setClickTab = _useState12[1];
(0, _taroWeapp.useEffect)(function () {
var list = props.tabs || [];
setTabsState(list.map(function (item) {
item.cu_vertical_tab_id = (0, _index.generateId)();
return item;
}));
}, [props.tabs]);
var tabs = tabsState || [];
// const [scrollTimer, setScrollTimer] = useState(0);
var isH5 = _taroWeapp2.default.getEnv() === _taroWeapp2.default.ENV_TYPE.WEB;
var onScroll = function onScroll(e) {
if (clickTab) {
return;
}var tabHeight = 0;
var _loop = function _loop(i) {
var query = _taroWeapp2.default.createSelectorQuery();
var view = query.select("#" + tabs[i].id);
view.boundingClientRect().exec(function (res) {
var data = res[0];
tabs[i].top = tabHeight;
tabHeight = tabHeight + data.height;
tabs[i].bottom = tabHeight;
});
};
for (var i = 0; i < tabs.length; i++) {
_loop(i);
}
var scrollTop = e.detail.scrollTop + 20;
isH5 && setScrollContent(e.detail.scrollTop);
if (!scrollTab) {
for (var i = 0; i < tabs.length; i++) {
if (scrollTop > (tabs[i].top || 0) && scrollTop < (tabs[i].bottom || 0)) {
// console.log(i)
setVerticalNavTop(i);
setCurrent(tabs[i].id);
return false;
}
}
}
};
var onH5Scroll = function onH5Scroll(e) {
if (clickTab) {
return;
}if (scrollTimer) {
clearTimeout(scrollTimer);
}scrollTimer = setTimeout(function () {
onScroll(e);
clearTimeout(scrollTimer);
}, 300);
};
var changeTop = function changeTop(id) {
var query = _taroWeapp2.default.createSelectorQuery();
var view = query.select("#" + id);
var topView = query.select("#" + tabs[0].id);
var top = 0;
new Promise(function (resolve) {
topView.boundingClientRect().exec(function (res) {
var data = res[0];
resolve(data.top);
});
}).then(function (res) {
top = res;
new Promise(function (resolve) {
view.boundingClientRect().exec(function (res) {
var data = res[(0, _index.getRectNumber)()];
setTimeout(function () {
var endTop = Math.abs(top - data.top);
setScrollContent(endTop);
scrollTab = false;
resolve();
}, 300);
});
});
});
};
var anonymousState__temp = (0, _taroWeapp.internal_inline_style)({
height: props.height === "full" ? "100%" : (0, _taroWeapp.pxTransform)(props.height),
maxHeight: "100vh",
width: "100%"
});
this.anonymousFunc1 = onScroll;
var anonymousState__temp2 = (0, _taroWeapp.internal_inline_style)({
height: props.height === "full" ? "100%" : (0, _taroWeapp.pxTransform)(props.height),
maxHeight: "100vh",
width: "100%"
});
this.anonymousFunc2 = onH5Scroll;
var anonymousState__temp3 = (0, _index.classNames)("flex", props.className);
var anonymousState__temp4 = (0, _taroWeapp.internal_inline_style)(Object.assign({}, props.style));
var anonymousState__temp5 = (0, _taroWeapp.internal_inline_style)({
height: props.height === "full" ? "100%" : (0, _taroWeapp.pxTransform)(props.height),
maxHeight: "100vh"
});
var loopArray85 = tabs.map(function (item, __index0) {
item = {
$original: (0, _taroWeapp.internal_get_original)(item)
};
var _$indexKey = "bigzz" + __index0;
_this2.anonymousFunc0Map[_$indexKey] = function () {
id = item.$original.id;
scrollTab = true;
changeTop(id);
setCurrent(item.$original.id);
setVerticalNavTop(tabs.findIndex(function (tab) {
return tab.name === item.$original.name;
}));
setClickTab(true);
!isH5 && setScrollId(item.$original.id);
setTimeout(function () {
setClickTab(false);
}, 800);
};
return {
_$indexKey: _$indexKey,
$original: item.$original
};
});
Object.assign(this.__state, {
anonymousState__temp: anonymousState__temp,
anonymousState__temp2: anonymousState__temp2,
anonymousState__temp3: anonymousState__temp3,
anonymousState__temp4: anonymousState__temp4,
anonymousState__temp5: anonymousState__temp5,
loopArray85: loopArray85,
current: current,
tabs: tabs,
scrollId: scrollId,
isAliPay: _index.isAliPay,
undefined: undefined,
scrollContent: scrollContent,
props: props,
verticalNavTop: verticalNavTop,
screenPercent: _index.screenPercent,
isH5: isH5
});
return this.__state;
}
}, {
key: "anonymousFunc0",
value: function anonymousFunc0(_$indexKey) {
var _anonymousFunc0Map;
;
for (var _len2 = arguments.length, e = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
e[_key2 - 1] = arguments[_key2];
}
return this.anonymousFunc0Map[_$indexKey] && (_anonymousFunc0Map = this.anonymousFunc0Map)[_$indexKey].apply(_anonymousFunc0Map, e);
}
}, {
key: "anonymousFunc1",
value: function anonymousFunc1(e) {
;
}
}, {
key: "anonymousFunc2",
value: function anonymousFunc2(e) {
;
}
}]);
return ClVerticalTab;
}(_taroWeapp2.default.Component);
ClVerticalTab.$$events = ["anonymousFunc0", "anonymousFunc1", "anonymousFunc2"];
ClVerticalTab.$$componentPath = "components/verticalTab/index";
ClVerticalTab.options = {
addGlobalClass: true
};
ClVerticalTab.defaultProps = {
tabs: [{ name: "", id: "" }],
height: 0,
current: "",
backTop: false
};
exports.default = ClVerticalTab;
Component(__webpack_require__(/*! @tarojs/taro-weapp */ "./node_modules/@tarojs/taro-weapp/index.js").default.createComponent(ClVerticalTab));
/***/ }),
/***/ "./node_modules/file-loader/dist/cjs.js?name=[path][name].wxml&context=/Users/jinbai/Documents/develop/github/mp-colorui-old/mp-colorui/src!./node_modules/@tarojs/mini-runner/dist/loaders/miniTemplateLoader.js!./node_modules/@tarojs/mini-runner/dist/loaders/wxTransformerLoader.js?!./src/components/verticalTab/index.tsx?taro&type=template&parse=COMPONENT&":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/file-loader/dist/cjs.js?name=[path][name].wxml&context=/Users/jinbai/Documents/develop/github/mp-colorui-old/mp-colorui/src!./node_modules/@tarojs/mini-runner/dist/loaders/miniTemplateLoader.js!./node_modules/@tarojs/mini-runner/dist/loaders/wxTransformerLoader.js??ref--4-0!./src/components/verticalTab/index.tsx?taro&type=template&parse=COMPONENT& ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__.p + "components/verticalTab/index.wxml";
/***/ }),
/***/ "./src/components/verticalTab/index.scss":
/*!***********************************************!*\
!*** ./src/components/verticalTab/index.scss ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ "./src/components/verticalTab/index.tsx":
/*!**********************************************!*\
!*** ./src/components/verticalTab/index.tsx ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _index_tsx_taro_type_template_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.tsx?taro&type=template&parse=COMPONENT& */ "./src/components/verticalTab/index.tsx?taro&type=template&parse=COMPONENT&");
/* harmony import */ var _index_tsx_taro_type_script_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.tsx?taro&type=script&parse=COMPONENT& */ "./src/components/verticalTab/index.tsx?taro&type=script&parse=COMPONENT&");
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_tsx_taro_type_script_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_tsx_taro_type_script_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/***/ "./src/components/verticalTab/index.tsx?taro&type=script&parse=COMPONENT&":
/*!********************************************************************************!*\
!*** ./src/components/verticalTab/index.tsx?taro&type=script&parse=COMPONENT& ***!
\********************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_tarojs_mini_runner_dist_loaders_wxTransformerLoader_js_ref_4_0_index_tsx_taro_type_script_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/@tarojs/mini-runner/dist/loaders/wxTransformerLoader.js??ref--4-0!./index.tsx?taro&type=script&parse=COMPONENT& */ "./node_modules/@tarojs/mini-runner/dist/loaders/wxTransformerLoader.js?!./src/components/verticalTab/index.tsx?taro&type=script&parse=COMPONENT&");
/* harmony import */ var _node_modules_tarojs_mini_runner_dist_loaders_wxTransformerLoader_js_ref_4_0_index_tsx_taro_type_script_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_tarojs_mini_runner_dist_loaders_wxTransformerLoader_js_ref_4_0_index_tsx_taro_type_script_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_tarojs_mini_runner_dist_loaders_wxTransformerLoader_js_ref_4_0_index_tsx_taro_type_script_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_tarojs_mini_runner_dist_loaders_wxTransformerLoader_js_ref_4_0_index_tsx_taro_type_script_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/* harmony default export */ __webpack_exports__["default"] = (_node_modules_tarojs_mini_runner_dist_loaders_wxTransformerLoader_js_ref_4_0_index_tsx_taro_type_script_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_0___default.a);
/***/ }),
/***/ "./src/components/verticalTab/index.tsx?taro&type=template&parse=COMPONENT&":
/*!**********************************************************************************!*\
!*** ./src/components/verticalTab/index.tsx?taro&type=template&parse=COMPONENT& ***!
\**********************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_file_loader_dist_cjs_js_name_path_name_wxml_context_Users_jinbai_Documents_develop_github_mp_colorui_old_mp_colorui_src_node_modules_tarojs_mini_runner_dist_loaders_miniTemplateLoader_js_node_modules_tarojs_mini_runner_dist_loaders_wxTransformerLoader_js_ref_4_0_index_tsx_taro_type_template_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/file-loader/dist/cjs.js?name=[path][name].wxml&context=/Users/jinbai/Documents/develop/github/mp-colorui-old/mp-colorui/src!../../../node_modules/@tarojs/mini-runner/dist/loaders/miniTemplateLoader.js!../../../node_modules/@tarojs/mini-runner/dist/loaders/wxTransformerLoader.js??ref--4-0!./index.tsx?taro&type=template&parse=COMPONENT& */ "./node_modules/file-loader/dist/cjs.js?name=[path][name].wxml&context=/Users/jinbai/Documents/develop/github/mp-colorui-old/mp-colorui/src!./node_modules/@tarojs/mini-runner/dist/loaders/miniTemplateLoader.js!./node_modules/@tarojs/mini-runner/dist/loaders/wxTransformerLoader.js?!./src/components/verticalTab/index.tsx?taro&type=template&parse=COMPONENT&");
/* harmony import */ var _node_modules_file_loader_dist_cjs_js_name_path_name_wxml_context_Users_jinbai_Documents_develop_github_mp_colorui_old_mp_colorui_src_node_modules_tarojs_mini_runner_dist_loaders_miniTemplateLoader_js_node_modules_tarojs_mini_runner_dist_loaders_wxTransformerLoader_js_ref_4_0_index_tsx_taro_type_template_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_file_loader_dist_cjs_js_name_path_name_wxml_context_Users_jinbai_Documents_develop_github_mp_colorui_old_mp_colorui_src_node_modules_tarojs_mini_runner_dist_loaders_miniTemplateLoader_js_node_modules_tarojs_mini_runner_dist_loaders_wxTransformerLoader_js_ref_4_0_index_tsx_taro_type_template_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_file_loader_dist_cjs_js_name_path_name_wxml_context_Users_jinbai_Documents_develop_github_mp_colorui_old_mp_colorui_src_node_modules_tarojs_mini_runner_dist_loaders_miniTemplateLoader_js_node_modules_tarojs_mini_runner_dist_loaders_wxTransformerLoader_js_ref_4_0_index_tsx_taro_type_template_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_file_loader_dist_cjs_js_name_path_name_wxml_context_Users_jinbai_Documents_develop_github_mp_colorui_old_mp_colorui_src_node_modules_tarojs_mini_runner_dist_loaders_miniTemplateLoader_js_node_modules_tarojs_mini_runner_dist_loaders_wxTransformerLoader_js_ref_4_0_index_tsx_taro_type_template_parse_COMPONENT___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ })
},[["./src/components/verticalTab/index.tsx","runtime","taro","vendors","common"]]]);