@tarojs/components 3.6.0-beta.3 → 3.6.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -39,6 +39,12 @@ const addLeadingSlash = (url = '') => (url.charAt(0) === '/' ? url : '/' + url);
39
39
  const hasBasename = (path = '', prefix = '') => new RegExp('^' + prefix + '(\\/|\\?|#|$)', 'i').test(path) || path === prefix;
40
40
  const stripBasename = (path = '', prefix = '') => hasBasename(path, prefix) ? path.substring(prefix.length) : path;
41
41
  const stripSuffix = (path = '', suffix = '') => path.includes(suffix) ? path.substring(0, path.length - suffix.length) : path;
42
+ const getCurrentPage = (routerMode = 'hash', basename = '/') => {
43
+ const pagePath = routerMode === 'hash'
44
+ ? location.hash.slice(1).split('?')[0]
45
+ : location.pathname;
46
+ return addLeadingSlash(stripBasename(pagePath, basename));
47
+ };
42
48
 
43
49
  function isAbsolute(pathname) {
44
50
  return pathname.charAt(0) === '/';
@@ -358,21 +364,8 @@ const Tabbar = class {
358
364
  this.selectedColor = this.conf.selectedColor;
359
365
  }
360
366
  getCurrentUrl() {
361
- const routerMode = this.conf.mode;
362
- const routerBasename = this.conf.basename || '/';
363
- let url;
364
- if (routerMode === 'hash') {
365
- const href = window.location.href;
366
- const hashIndex = href.indexOf('#');
367
- url = hashIndex === -1
368
- ? ''
369
- : href.substring(hashIndex + 1);
370
- }
371
- else {
372
- url = location.pathname;
373
- }
374
- const processedUrl = addLeadingSlash(stripBasename(url, routerBasename));
375
- return decodeURI(processedUrl === '/' ? this.homePage : processedUrl);
367
+ const routePath = getCurrentPage(this.conf.mode, this.conf.basename);
368
+ return decodeURI(routePath === '/' ? this.homePage : routePath);
376
369
  }
377
370
  bindEvent() {
378
371
  Taro__default['default'].eventCenter.on('__taroRouterChange', this.routerChangeHandler);
@@ -1 +1 @@
1
- {"file":"taro-tabbar.entry.cjs.js","mappings":"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","names":["index","classNames","Taro","isVisible","h","Host"],"sources":["./src/utils/url.ts","../taro-router/dist/utils/index.js","../../node_modules/.pnpm/registry.npmjs.org+resolve-pathname@3.0.0/node_modules/resolve-pathname/esm/resolve-pathname.js","./src/components/tabbar/tabbar-item.tsx","./src/components/tabbar/style/index.scss?tag=taro-tabbar","./src/components/tabbar/tabbar.tsx"],"sourcesContent":["export const normalizePath = url => {\n let _isRelative\n let _leadingParents = ''\n let _parent, _pos\n\n // handle relative paths\n if (url.charAt(0) !== '/') {\n _isRelative = true\n url = '/' + url\n }\n\n // handle relative files (as opposed to directories)\n if (url.substring(-3) === '/..' || url.slice(-2) === '/.') {\n url += '/'\n }\n\n // resolve simples\n url = url.replace(/(\\/(\\.\\/)+)|(\\/\\.$)/g, '/').replace(/\\/{2,}/g, '/')\n\n // remember leading parents\n if (_isRelative) {\n _leadingParents = url.substring(1).match(/^(\\.\\.\\/)+/) || ''\n if (_leadingParents) {\n _leadingParents = _leadingParents[0]\n }\n }\n\n // resolve parents\n while (true) {\n _parent = url.search(/\\/\\.\\.(\\/|$)/)\n if (_parent === -1) {\n // no more ../ to resolve\n break\n } else if (_parent === 0) {\n // top level cannot be relative, skip it\n url = url.substring(3)\n continue\n }\n\n _pos = url.substring(0, _parent).lastIndexOf('/')\n if (_pos === -1) {\n _pos = _parent\n }\n url = url.substring(0, _pos) + url.substring(_parent + 3)\n }\n\n // revert to relative\n if (_isRelative) {\n url = _leadingParents + url.substring(1)\n }\n\n return url\n}\n\nexport const splitUrl = _url => {\n let url = _url || ''\n let pos\n const res = {\n path: null,\n query: null,\n fragment: null\n }\n\n pos = url.indexOf('#')\n if (pos > -1) {\n res.fragment = url.substring(pos + 1)\n url = url.substring(0, pos)\n }\n\n pos = url.indexOf('?')\n if (pos > -1) {\n res.query = url.substring(pos + 1)\n url = url.substring(0, pos)\n }\n\n res.path = url\n\n return res\n}\n","// export const removeLeadingSlash = (str = '') => str.replace(/^\\.?\\//, '')\n// export const removeTrailingSearch = (str = '') => str.replace(/\\?[\\s\\S]*$/, '')\nexport const addLeadingSlash = (url = '') => (url.charAt(0) === '/' ? url : '/' + url);\nexport const hasBasename = (path = '', prefix = '') => new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path) || path === prefix;\nexport const stripBasename = (path = '', prefix = '') => hasBasename(path, prefix) ? path.substring(prefix.length) : path;\nexport const stripTrailing = (str = '') => str.replace(/[?#][\\s\\S]*$/, '');\nexport const stripSuffix = (path = '', suffix = '') => path.includes(suffix) ? path.substring(0, path.length - suffix.length) : path;\nexport const getHomePage = (path = '', basename = '', customRoutes = {}, entryPagePath = '') => {\n var _a;\n const routePath = addLeadingSlash(stripBasename(path, basename));\n const alias = ((_a = Object.entries(customRoutes).find(([key]) => key === routePath)) === null || _a === void 0 ? void 0 : _a[1]) || routePath;\n return entryPagePath || (typeof alias === 'string' ? alias : alias[0]) || basename;\n};\nclass RoutesAlias {\n constructor() {\n this.conf = [];\n this.getConfig = (url = '') => {\n const customRoute = this.conf.filter((arr) => {\n return arr.includes(url);\n });\n return customRoute[0];\n };\n this.getOrigin = (url = '') => {\n var _a;\n return ((_a = this.getConfig(url)) === null || _a === void 0 ? void 0 : _a[0]) || url;\n };\n this.getAlias = (url = '') => {\n var _a;\n return ((_a = this.getConfig(url)) === null || _a === void 0 ? void 0 : _a[1]) || url;\n };\n this.getAll = (url = '') => {\n return this.conf\n .filter((arr) => arr.includes(url))\n .reduceRight((p, a) => {\n p.unshift(a[1]);\n return p;\n }, []);\n };\n }\n set(customRoutes = {}) {\n for (let key in customRoutes) {\n const path = customRoutes[key];\n key = addLeadingSlash(key);\n if (typeof path === 'string') {\n this.conf.push([key, addLeadingSlash(path)]);\n }\n else if ((path === null || path === void 0 ? void 0 : path.length) > 0) {\n this.conf.push(...path.map(p => [key, addLeadingSlash(p)]));\n }\n }\n }\n}\nexport const routesAlias = new RoutesAlias();\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","import classNames from 'classnames'\nimport { FunctionalComponent, h } from '@stencil/core'\nimport Taro from '@tarojs/taro'\n\nimport { isVisible } from '../../utils'\n\ntype TabbarItemProps = {\n index: number\n isSelected?: boolean\n textColor?: string\n badgeText?: string\n iconPath: string\n showRedDot?: boolean\n pagePath?: string\n text?: string\n onSelect: (index: number) => void\n}\n\nexport const TabbarItem: FunctionalComponent<TabbarItemProps> = ({\n index,\n isSelected = false,\n textColor,\n iconPath,\n badgeText,\n showRedDot = false,\n pagePath,\n text,\n onSelect\n}) => {\n const className = classNames('weui-tabbar__item', {\n 'weui-bar__item_on': isSelected\n })\n const badgeStyle = {\n position: 'absolute',\n top: '-2px',\n right: '-13px'\n }\n const dotStyle = {\n position: 'absolute',\n top: '0',\n right: '-6px'\n }\n\n function onClick () {\n const page = Taro.getCurrentPages().shift()\n if (typeof page?.onTabItemTap === 'function' && isVisible(this)) {\n page.onTabItemTap({ index, pagePath, text })\n }\n onSelect(index)\n }\n\n return (\n <a key={index} href='javascript:;' class={className} onClick={onClick}>\n <span style={{ display: 'inline-block', position: 'relative' }}>\n <img src={iconPath} alt='' class='weui-tabbar__icon' />\n {!!badgeText && (\n <span\n class='weui-badge taro-tabbar-badge'\n style={badgeStyle}>\n {badgeText}\n </span>\n )}\n {showRedDot && (\n <span\n class='weui-badge weui-badge_dot'\n style={dotStyle}\n />\n )}\n </span>\n <p class='weui-tabbar__label' style={{ color: textColor }}>\n {text}\n </p>\n </a>\n )\n}\n","html,\nbody {\n height: 100%;\n}\n\n#app {\n height: 100%;\n}\n\n.taro-tabbar {\n &__border {\n &-white {\n &::before {\n border-top-color: #fff !important;\n }\n }\n }\n\n &__container {\n display: flex;\n overflow: hidden;\n flex-direction: column;\n height: 100%;\n }\n\n &__panel {\n overflow: auto;\n position: relative;\n flex: 1;\n -webkit-overflow-scrolling: auto;\n }\n\n &__tabbar {\n position: relative;\n width: 100%;\n height: 50px;\n transition: bottom 0.2s, top 0.2s;\n\n &-top {\n top: 0;\n }\n\n &-bottom {\n bottom: 0;\n margin-bottom: constant(safe-area-inset-bottom);\n margin-bottom: env(safe-area-inset-bottom);\n }\n\n &-hide {\n display: none;\n }\n\n &-slideout {\n top: -52px;\n flex: 0 0;\n }\n }\n\n &__panel + &__tabbar-slideout {\n top: auto;\n bottom: -52px;\n }\n}\n","import { Component, Prop, h, ComponentInterface, Host, State, Event, EventEmitter, Element } from '@stencil/core'\nimport Taro from '@tarojs/taro'\nimport { addLeadingSlash, stripBasename, stripSuffix } from '@tarojs/router/dist/utils'\nimport { IH5RouterConfig } from '@tarojs/taro/types/compile'\nimport classNames from 'classnames'\nimport resolvePathname from 'resolve-pathname'\n\nimport { splitUrl } from '../../utils'\nimport { TabbarItem } from './tabbar-item'\n\nconst STATUS_SHOW = 0\nconst STATUS_HIDE = 1\nconst STATUS_SLIDEOUT = 2\n\nconst basicTabBarClassName = 'taro-tabbar__tabbar'\nconst hideTabBarClassName = 'taro-tabbar__tabbar-hide'\nconst hideTabBarWithAnimationClassName = 'taro-tabbar__tabbar-slideout'\n\ninterface RouterHandler {\n index: string\n text: string\n url: string\n successHandler: Function\n errorHandler: Function\n animation?: boolean\n}\n\nexport interface Conf {\n color: string\n selectedColor: string\n backgroundColor: string\n borderStyle?: 'black' | 'white'\n list: TabbarList[]\n position?: 'bottom' | 'top'\n custom: boolean\n customRoutes: Record<string, string | string[]>\n mode: IH5RouterConfig['mode']\n basename: string\n homePage: string\n currentPagename: string\n}\n\ninterface TabbarList {\n pagePath: string\n text: string\n iconPath?: string\n selectedIconPath?: string\n badgeText?: string\n showRedDot?: boolean\n}\n\n@Component({\n tag: 'taro-tabbar',\n styleUrl: './style/index.scss'\n})\nexport class Tabbar implements ComponentInterface {\n private homePage = ''\n\n private customRoutes: Array<string[]> = []\n\n private tabbarPos: 'top' | 'bottom' = 'bottom'\n\n @Prop() conf: Conf\n\n @State() list: TabbarList[]\n\n @State() borderStyle: Conf['borderStyle']\n\n @State() backgroundColor: Conf['backgroundColor']\n\n @State() color: Conf['color']\n\n @State() selectedColor: Conf['selectedColor']\n\n @State() selectedIndex = -1\n\n @State() status: 0 | 1 | 2 = STATUS_SHOW\n\n @Event({\n eventName: 'longpress'\n }) onLongPress: EventEmitter\n\n @Element() tabbar: HTMLDivElement\n\n constructor () {\n const list = this.conf.list\n const customRoutes = this.conf.customRoutes\n if (\n Object.prototype.toString.call(list) !== '[object Array]' ||\n list.length < 2 ||\n list.length > 5\n ) {\n throw new Error('tabBar 配置错误')\n }\n\n this.homePage = addLeadingSlash(this.conf.homePage)\n for (let key in customRoutes) {\n const path = customRoutes[key]\n key = addLeadingSlash(key)\n if (typeof path === 'string') {\n this.customRoutes.push([key, addLeadingSlash(path)])\n } else if (path?.length > 0) {\n this.customRoutes.push(...path.map(p => [key, addLeadingSlash(p)]))\n }\n }\n\n list.forEach(item => {\n if (item.pagePath.indexOf('/') !== 0) {\n item.pagePath = '/' + item.pagePath\n }\n })\n\n this.list = list\n this.borderStyle = this.conf.borderStyle\n this.backgroundColor = this.conf.backgroundColor\n this.color = this.conf.color\n this.selectedColor = this.conf.selectedColor\n }\n\n getCurrentUrl () {\n const routerMode = this.conf.mode\n const routerBasename = this.conf.basename || '/'\n let url\n if (routerMode === 'hash') {\n const href = window.location.href\n const hashIndex = href.indexOf('#')\n url = hashIndex === -1\n ? ''\n : href.substring(hashIndex + 1)\n } else {\n url = location.pathname\n }\n const processedUrl = addLeadingSlash(stripBasename(url, routerBasename))\n return decodeURI(processedUrl === '/' ? this.homePage : processedUrl)\n }\n\n getOriginUrl = (url: string) => {\n const customRoute = this.customRoutes.filter(([, customUrl]) => {\n const pathA = splitUrl(customUrl).path\n const pathB = splitUrl(url).path\n return pathA === pathB\n })\n return stripSuffix(customRoute.length ? customRoute[0][0] : url, '.html')\n }\n\n getSelectedIndex = (url: string) => {\n let foundIndex = -1\n this.list.forEach(({ pagePath }, idx) => {\n const pathA = splitUrl(url).path\n const pathB = splitUrl(pagePath).path\n if (pathA === pathB) {\n foundIndex = idx\n }\n })\n return foundIndex\n }\n\n switchTab = (index: number) => {\n this.selectedIndex = index\n Taro.switchTab({\n url: this.list[index].pagePath\n })\n }\n\n switchTabHandler = ({ url, successHandler, errorHandler }: RouterHandler) => {\n const currentUrl = this.getOriginUrl(this.getCurrentUrl() || this.homePage)\n const nextTab = resolvePathname(url, currentUrl)\n const foundIndex = this.getSelectedIndex(nextTab)\n\n if (foundIndex > -1) {\n this.switchTab(foundIndex)\n successHandler({\n errMsg: 'switchTab:ok'\n })\n } else {\n errorHandler({\n errMsg: `switchTab:fail page \"${nextTab}\" is not found`\n })\n }\n }\n\n routerChangeHandler = (options?) => {\n const to = options?.toLocation?.path\n let currentPage\n\n if (typeof to === 'string') {\n const routerBasename = this.conf.basename || '/'\n currentPage = stripBasename(addLeadingSlash(to || this.homePage), routerBasename) || '/'\n } else {\n currentPage = this.getCurrentUrl()\n }\n\n this.selectedIndex = this.getSelectedIndex(this.getOriginUrl(currentPage))\n }\n\n setTabBarBadgeHandler = ({ index, text, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].showRedDot = false\n list[index].badgeText = text\n successHandler({\n errMsg: 'setTabBarBadge:ok'\n })\n } else {\n errorHandler({\n errMsg: 'setTabBarBadge:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n removeTabBarBadgeHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].badgeText = null\n list[index].badgeText = null\n successHandler({\n errMsg: 'removeTabBarBadge:ok'\n })\n } else {\n errorHandler({\n errMsg: 'removeTabBarBadge:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n showTabBarRedDotHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].badgeText = null\n list[index].showRedDot = true\n successHandler({\n errMsg: 'showTabBarRedDot:ok'\n })\n } else {\n errorHandler({\n errMsg: 'showTabBarRedDot:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n hideTabBarRedDotHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].showRedDot = false\n successHandler({\n errMsg: 'hideTabBarRedDot:ok'\n })\n } else {\n errorHandler({\n errMsg: 'hideTabBarRedDot:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n showTabBarHandler = ({ successHandler }) => {\n this.status = STATUS_SHOW\n successHandler({\n errMsg: 'showTabBar:ok'\n })\n }\n\n hideTabBarHandler = ({ animation, successHandler }) => {\n this.status = animation ? STATUS_SLIDEOUT : STATUS_HIDE\n successHandler({\n errMsg: 'hideTabBar:ok'\n })\n }\n\n setTabBarStyleHandler = ({ color, selectedColor, backgroundColor, borderStyle, successHandler }) => {\n if (backgroundColor) this.backgroundColor = backgroundColor\n if (borderStyle) this.borderStyle = borderStyle\n if (color) this.color = color\n if (selectedColor) this.selectedColor = selectedColor\n successHandler({\n errMsg: 'setTabBarStyle:ok'\n })\n }\n\n setTabBarItemHandler = ({ index, iconPath, selectedIconPath, text, successHandler, errorHandler }) => {\n const list = [...this.list]\n if (index in list) {\n if (iconPath) list[index].iconPath = iconPath\n if (selectedIconPath) list[index].selectedIconPath = selectedIconPath\n if (text) list[index].text = text\n successHandler({\n errMsg: 'setTabBarItem:ok'\n })\n } else {\n errorHandler({\n errMsg: 'setTabBarItem:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n bindEvent () {\n Taro.eventCenter.on('__taroRouterChange', this.routerChangeHandler)\n Taro.eventCenter.on('__taroSwitchTab', this.switchTabHandler)\n Taro.eventCenter.on('__taroSetTabBarBadge', this.setTabBarBadgeHandler)\n Taro.eventCenter.on('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler)\n Taro.eventCenter.on('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler)\n Taro.eventCenter.on('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler)\n Taro.eventCenter.on('__taroShowTabBar', this.showTabBarHandler)\n Taro.eventCenter.on('__taroHideTabBar', this.hideTabBarHandler)\n Taro.eventCenter.on('__taroSetTabBarStyle', this.setTabBarStyleHandler)\n Taro.eventCenter.on('__taroSetTabBarItem', this.setTabBarItemHandler)\n }\n\n removeEvent () {\n Taro.eventCenter.off('__taroRouterChange', this.routerChangeHandler)\n Taro.eventCenter.off('__taroSwitchTab', this.switchTabHandler)\n Taro.eventCenter.off('__taroSetTabBarBadge', this.setTabBarBadgeHandler)\n Taro.eventCenter.off('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler)\n Taro.eventCenter.off('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler)\n Taro.eventCenter.off('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler)\n Taro.eventCenter.off('__taroShowTabBar', this.showTabBarHandler)\n Taro.eventCenter.off('__taroHideTabBar', this.hideTabBarHandler)\n Taro.eventCenter.off('__taroSetTabBarStyle', this.setTabBarStyleHandler)\n Taro.eventCenter.off('__taroSetTabBarItem', this.setTabBarItemHandler)\n }\n\n componentDidLoad () {\n this.tabbarPos = this.tabbar.nextElementSibling ? 'top' : 'bottom'\n this.bindEvent()\n this.routerChangeHandler()\n }\n\n disconnectedCallback () {\n this.removeEvent()\n }\n\n render () {\n const { tabbarPos = 'bottom' } = this\n const status = this.status\n const containerCls = classNames('weui-tabbar', {\n [`taro-tabbar__border-${this.borderStyle || 'black'}`]: true\n })\n const shouldHideTabBar = this.selectedIndex === -1 || status === STATUS_HIDE\n const shouldSlideout = status === STATUS_SLIDEOUT\n\n return (\n <Host\n class={classNames(\n basicTabBarClassName,\n `${basicTabBarClassName}-${tabbarPos}`, {\n [hideTabBarClassName]: shouldHideTabBar,\n [hideTabBarWithAnimationClassName]: shouldSlideout\n })} >\n <div\n class={containerCls}\n style={{\n backgroundColor: this.backgroundColor || '',\n height: 'inherit'\n }}\n >\n {this.list.map((item, index) => {\n const isSelected = this.selectedIndex === index\n let textColor\n let iconPath\n if (isSelected) {\n textColor = this.selectedColor || ''\n iconPath = item.selectedIconPath\n } else {\n textColor = this.color || ''\n iconPath = item.iconPath\n }\n return (\n <TabbarItem\n index={index}\n onSelect={this.switchTab.bind(this)}\n isSelected={isSelected}\n textColor={textColor}\n iconPath={iconPath}\n pagePath={item.pagePath}\n text={item.text}\n badgeText={item.badgeText}\n showRedDot={item.showRedDot}\n />\n )\n })}\n </div>\n </Host>\n )\n }\n}\n"],"version":3}
1
+ {"file":"taro-tabbar.entry.cjs.js","mappings":"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","names":["index","classNames","Taro","isVisible","h","Host"],"sources":["./src/utils/url.ts","../taro-router/dist/utils/index.js","../../node_modules/.pnpm/registry.npmjs.org+resolve-pathname@3.0.0/node_modules/resolve-pathname/esm/resolve-pathname.js","./src/components/tabbar/tabbar-item.tsx","./src/components/tabbar/style/index.scss?tag=taro-tabbar","./src/components/tabbar/tabbar.tsx"],"sourcesContent":["export const normalizePath = url => {\n let _isRelative\n let _leadingParents = ''\n let _parent, _pos\n\n // handle relative paths\n if (url.charAt(0) !== '/') {\n _isRelative = true\n url = '/' + url\n }\n\n // handle relative files (as opposed to directories)\n if (url.substring(-3) === '/..' || url.slice(-2) === '/.') {\n url += '/'\n }\n\n // resolve simples\n url = url.replace(/(\\/(\\.\\/)+)|(\\/\\.$)/g, '/').replace(/\\/{2,}/g, '/')\n\n // remember leading parents\n if (_isRelative) {\n _leadingParents = url.substring(1).match(/^(\\.\\.\\/)+/) || ''\n if (_leadingParents) {\n _leadingParents = _leadingParents[0]\n }\n }\n\n // resolve parents\n while (true) {\n _parent = url.search(/\\/\\.\\.(\\/|$)/)\n if (_parent === -1) {\n // no more ../ to resolve\n break\n } else if (_parent === 0) {\n // top level cannot be relative, skip it\n url = url.substring(3)\n continue\n }\n\n _pos = url.substring(0, _parent).lastIndexOf('/')\n if (_pos === -1) {\n _pos = _parent\n }\n url = url.substring(0, _pos) + url.substring(_parent + 3)\n }\n\n // revert to relative\n if (_isRelative) {\n url = _leadingParents + url.substring(1)\n }\n\n return url\n}\n\nexport const splitUrl = _url => {\n let url = _url || ''\n let pos\n const res = {\n path: null,\n query: null,\n fragment: null\n }\n\n pos = url.indexOf('#')\n if (pos > -1) {\n res.fragment = url.substring(pos + 1)\n url = url.substring(0, pos)\n }\n\n pos = url.indexOf('?')\n if (pos > -1) {\n res.query = url.substring(pos + 1)\n url = url.substring(0, pos)\n }\n\n res.path = url\n\n return res\n}\n","// export const removeLeadingSlash = (str = '') => str.replace(/^\\.?\\//, '')\n// export const removeTrailingSearch = (str = '') => str.replace(/\\?[\\s\\S]*$/, '')\nexport const addLeadingSlash = (url = '') => (url.charAt(0) === '/' ? url : '/' + url);\nexport const hasBasename = (path = '', prefix = '') => new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path) || path === prefix;\nexport const stripBasename = (path = '', prefix = '') => hasBasename(path, prefix) ? path.substring(prefix.length) : path;\nexport const stripTrailing = (str = '') => str.replace(/[?#][\\s\\S]*$/, '');\nexport const stripSuffix = (path = '', suffix = '') => path.includes(suffix) ? path.substring(0, path.length - suffix.length) : path;\nexport const getHomePage = (path = '', basename = '', customRoutes = {}, entryPagePath = '') => {\n var _a;\n const routePath = addLeadingSlash(stripBasename(path, basename));\n const alias = ((_a = Object.entries(customRoutes).find(([key]) => key === routePath)) === null || _a === void 0 ? void 0 : _a[1]) || routePath;\n return entryPagePath || (typeof alias === 'string' ? alias : alias[0]) || basename;\n};\nexport const getCurrentPage = (routerMode = 'hash', basename = '/') => {\n const pagePath = routerMode === 'hash'\n ? location.hash.slice(1).split('?')[0]\n : location.pathname;\n return addLeadingSlash(stripBasename(pagePath, basename));\n};\nclass RoutesAlias {\n constructor() {\n this.conf = [];\n this.getConfig = (url = '') => {\n const customRoute = this.conf.filter((arr) => {\n return arr.includes(url);\n });\n return customRoute[0];\n };\n this.getOrigin = (url = '') => {\n var _a;\n return ((_a = this.getConfig(url)) === null || _a === void 0 ? void 0 : _a[0]) || url;\n };\n this.getAlias = (url = '') => {\n var _a;\n return ((_a = this.getConfig(url)) === null || _a === void 0 ? void 0 : _a[1]) || url;\n };\n this.getAll = (url = '') => {\n return this.conf\n .filter((arr) => arr.includes(url))\n .reduceRight((p, a) => {\n p.unshift(a[1]);\n return p;\n }, []);\n };\n }\n set(customRoutes = {}) {\n for (let key in customRoutes) {\n const path = customRoutes[key];\n key = addLeadingSlash(key);\n if (typeof path === 'string') {\n this.conf.push([key, addLeadingSlash(path)]);\n }\n else if ((path === null || path === void 0 ? void 0 : path.length) > 0) {\n this.conf.push(...path.map(p => [key, addLeadingSlash(p)]));\n }\n }\n }\n}\nexport const routesAlias = new RoutesAlias();\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","import classNames from 'classnames'\nimport { FunctionalComponent, h } from '@stencil/core'\nimport Taro from '@tarojs/taro'\n\nimport { isVisible } from '../../utils'\n\ntype TabbarItemProps = {\n index: number\n isSelected?: boolean\n textColor?: string\n badgeText?: string\n iconPath: string\n showRedDot?: boolean\n pagePath?: string\n text?: string\n onSelect: (index: number) => void\n}\n\nexport const TabbarItem: FunctionalComponent<TabbarItemProps> = ({\n index,\n isSelected = false,\n textColor,\n iconPath,\n badgeText,\n showRedDot = false,\n pagePath,\n text,\n onSelect\n}) => {\n const className = classNames('weui-tabbar__item', {\n 'weui-bar__item_on': isSelected\n })\n const badgeStyle = {\n position: 'absolute',\n top: '-2px',\n right: '-13px'\n }\n const dotStyle = {\n position: 'absolute',\n top: '0',\n right: '-6px'\n }\n\n function onClick () {\n const page = Taro.getCurrentPages().shift()\n if (typeof page?.onTabItemTap === 'function' && isVisible(this)) {\n page.onTabItemTap({ index, pagePath, text })\n }\n onSelect(index)\n }\n\n return (\n <a key={index} href='javascript:;' class={className} onClick={onClick}>\n <span style={{ display: 'inline-block', position: 'relative' }}>\n <img src={iconPath} alt='' class='weui-tabbar__icon' />\n {!!badgeText && (\n <span\n class='weui-badge taro-tabbar-badge'\n style={badgeStyle}>\n {badgeText}\n </span>\n )}\n {showRedDot && (\n <span\n class='weui-badge weui-badge_dot'\n style={dotStyle}\n />\n )}\n </span>\n <p class='weui-tabbar__label' style={{ color: textColor }}>\n {text}\n </p>\n </a>\n )\n}\n","html,\nbody {\n height: 100%;\n}\n\n#app {\n height: 100%;\n}\n\n.taro-tabbar {\n &__border {\n &-white {\n &::before {\n border-top-color: #fff !important;\n }\n }\n }\n\n &__container {\n display: flex;\n overflow: hidden;\n flex-direction: column;\n height: 100%;\n }\n\n &__panel {\n overflow: auto;\n position: relative;\n flex: 1;\n -webkit-overflow-scrolling: auto;\n }\n\n &__tabbar {\n position: relative;\n width: 100%;\n height: 50px;\n transition: bottom 0.2s, top 0.2s;\n\n &-top {\n top: 0;\n }\n\n &-bottom {\n bottom: 0;\n margin-bottom: constant(safe-area-inset-bottom);\n margin-bottom: env(safe-area-inset-bottom);\n }\n\n &-hide {\n display: none;\n }\n\n &-slideout {\n top: -52px;\n flex: 0 0;\n }\n }\n\n &__panel + &__tabbar-slideout {\n top: auto;\n bottom: -52px;\n }\n}\n","import { Component, Prop, h, ComponentInterface, Host, State, Event, EventEmitter, Element } from '@stencil/core'\nimport Taro from '@tarojs/taro'\nimport { addLeadingSlash, getCurrentPage, stripBasename, stripSuffix } from '@tarojs/router/dist/utils'\nimport { IH5RouterConfig } from '@tarojs/taro/types/compile'\nimport classNames from 'classnames'\nimport resolvePathname from 'resolve-pathname'\n\nimport { splitUrl } from '../../utils'\nimport { TabbarItem } from './tabbar-item'\n\nconst STATUS_SHOW = 0\nconst STATUS_HIDE = 1\nconst STATUS_SLIDEOUT = 2\n\nconst basicTabBarClassName = 'taro-tabbar__tabbar'\nconst hideTabBarClassName = 'taro-tabbar__tabbar-hide'\nconst hideTabBarWithAnimationClassName = 'taro-tabbar__tabbar-slideout'\n\ninterface RouterHandler {\n index: string\n text: string\n url: string\n successHandler: Function\n errorHandler: Function\n animation?: boolean\n}\n\nexport interface Conf {\n color: string\n selectedColor: string\n backgroundColor: string\n borderStyle?: 'black' | 'white'\n list: TabbarList[]\n position?: 'bottom' | 'top'\n custom: boolean\n customRoutes: Record<string, string | string[]>\n mode: IH5RouterConfig['mode']\n basename: string\n homePage: string\n currentPagename: string\n}\n\ninterface TabbarList {\n pagePath: string\n text: string\n iconPath?: string\n selectedIconPath?: string\n badgeText?: string\n showRedDot?: boolean\n}\n\n@Component({\n tag: 'taro-tabbar',\n styleUrl: './style/index.scss'\n})\nexport class Tabbar implements ComponentInterface {\n private homePage = ''\n\n private customRoutes: Array<string[]> = []\n\n private tabbarPos: 'top' | 'bottom' = 'bottom'\n\n @Prop() conf: Conf\n\n @State() list: TabbarList[]\n\n @State() borderStyle: Conf['borderStyle']\n\n @State() backgroundColor: Conf['backgroundColor']\n\n @State() color: Conf['color']\n\n @State() selectedColor: Conf['selectedColor']\n\n @State() selectedIndex = -1\n\n @State() status: 0 | 1 | 2 = STATUS_SHOW\n\n @Event({\n eventName: 'longpress'\n }) onLongPress: EventEmitter\n\n @Element() tabbar: HTMLDivElement\n\n constructor () {\n const list = this.conf.list\n const customRoutes = this.conf.customRoutes\n if (\n Object.prototype.toString.call(list) !== '[object Array]' ||\n list.length < 2 ||\n list.length > 5\n ) {\n throw new Error('tabBar 配置错误')\n }\n\n this.homePage = addLeadingSlash(this.conf.homePage)\n for (let key in customRoutes) {\n const path = customRoutes[key]\n key = addLeadingSlash(key)\n if (typeof path === 'string') {\n this.customRoutes.push([key, addLeadingSlash(path)])\n } else if (path?.length > 0) {\n this.customRoutes.push(...path.map(p => [key, addLeadingSlash(p)]))\n }\n }\n\n list.forEach(item => {\n if (item.pagePath.indexOf('/') !== 0) {\n item.pagePath = '/' + item.pagePath\n }\n })\n\n this.list = list\n this.borderStyle = this.conf.borderStyle\n this.backgroundColor = this.conf.backgroundColor\n this.color = this.conf.color\n this.selectedColor = this.conf.selectedColor\n }\n\n getCurrentUrl () {\n const routePath = getCurrentPage(this.conf.mode, this.conf.basename)\n return decodeURI(routePath === '/' ? this.homePage : routePath)\n }\n\n getOriginUrl = (url: string) => {\n const customRoute = this.customRoutes.filter(([, customUrl]) => {\n const pathA = splitUrl(customUrl).path\n const pathB = splitUrl(url).path\n return pathA === pathB\n })\n return stripSuffix(customRoute.length ? customRoute[0][0] : url, '.html')\n }\n\n getSelectedIndex = (url: string) => {\n let foundIndex = -1\n this.list.forEach(({ pagePath }, idx) => {\n const pathA = splitUrl(url).path\n const pathB = splitUrl(pagePath).path\n if (pathA === pathB) {\n foundIndex = idx\n }\n })\n return foundIndex\n }\n\n switchTab = (index: number) => {\n this.selectedIndex = index\n Taro.switchTab({\n url: this.list[index].pagePath\n })\n }\n\n switchTabHandler = ({ url, successHandler, errorHandler }: RouterHandler) => {\n const currentUrl = this.getOriginUrl(this.getCurrentUrl() || this.homePage)\n const nextTab = resolvePathname(url, currentUrl)\n const foundIndex = this.getSelectedIndex(nextTab)\n\n if (foundIndex > -1) {\n this.switchTab(foundIndex)\n successHandler({\n errMsg: 'switchTab:ok'\n })\n } else {\n errorHandler({\n errMsg: `switchTab:fail page \"${nextTab}\" is not found`\n })\n }\n }\n\n routerChangeHandler = (options?) => {\n const to = options?.toLocation?.path\n let currentPage\n\n if (typeof to === 'string') {\n const routerBasename = this.conf.basename || '/'\n currentPage = stripBasename(addLeadingSlash(to || this.homePage), routerBasename) || '/'\n } else {\n currentPage = this.getCurrentUrl()\n }\n\n this.selectedIndex = this.getSelectedIndex(this.getOriginUrl(currentPage))\n }\n\n setTabBarBadgeHandler = ({ index, text, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].showRedDot = false\n list[index].badgeText = text\n successHandler({\n errMsg: 'setTabBarBadge:ok'\n })\n } else {\n errorHandler({\n errMsg: 'setTabBarBadge:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n removeTabBarBadgeHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].badgeText = null\n list[index].badgeText = null\n successHandler({\n errMsg: 'removeTabBarBadge:ok'\n })\n } else {\n errorHandler({\n errMsg: 'removeTabBarBadge:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n showTabBarRedDotHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].badgeText = null\n list[index].showRedDot = true\n successHandler({\n errMsg: 'showTabBarRedDot:ok'\n })\n } else {\n errorHandler({\n errMsg: 'showTabBarRedDot:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n hideTabBarRedDotHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].showRedDot = false\n successHandler({\n errMsg: 'hideTabBarRedDot:ok'\n })\n } else {\n errorHandler({\n errMsg: 'hideTabBarRedDot:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n showTabBarHandler = ({ successHandler }) => {\n this.status = STATUS_SHOW\n successHandler({\n errMsg: 'showTabBar:ok'\n })\n }\n\n hideTabBarHandler = ({ animation, successHandler }) => {\n this.status = animation ? STATUS_SLIDEOUT : STATUS_HIDE\n successHandler({\n errMsg: 'hideTabBar:ok'\n })\n }\n\n setTabBarStyleHandler = ({ color, selectedColor, backgroundColor, borderStyle, successHandler }) => {\n if (backgroundColor) this.backgroundColor = backgroundColor\n if (borderStyle) this.borderStyle = borderStyle\n if (color) this.color = color\n if (selectedColor) this.selectedColor = selectedColor\n successHandler({\n errMsg: 'setTabBarStyle:ok'\n })\n }\n\n setTabBarItemHandler = ({ index, iconPath, selectedIconPath, text, successHandler, errorHandler }) => {\n const list = [...this.list]\n if (index in list) {\n if (iconPath) list[index].iconPath = iconPath\n if (selectedIconPath) list[index].selectedIconPath = selectedIconPath\n if (text) list[index].text = text\n successHandler({\n errMsg: 'setTabBarItem:ok'\n })\n } else {\n errorHandler({\n errMsg: 'setTabBarItem:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n bindEvent () {\n Taro.eventCenter.on('__taroRouterChange', this.routerChangeHandler)\n Taro.eventCenter.on('__taroSwitchTab', this.switchTabHandler)\n Taro.eventCenter.on('__taroSetTabBarBadge', this.setTabBarBadgeHandler)\n Taro.eventCenter.on('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler)\n Taro.eventCenter.on('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler)\n Taro.eventCenter.on('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler)\n Taro.eventCenter.on('__taroShowTabBar', this.showTabBarHandler)\n Taro.eventCenter.on('__taroHideTabBar', this.hideTabBarHandler)\n Taro.eventCenter.on('__taroSetTabBarStyle', this.setTabBarStyleHandler)\n Taro.eventCenter.on('__taroSetTabBarItem', this.setTabBarItemHandler)\n }\n\n removeEvent () {\n Taro.eventCenter.off('__taroRouterChange', this.routerChangeHandler)\n Taro.eventCenter.off('__taroSwitchTab', this.switchTabHandler)\n Taro.eventCenter.off('__taroSetTabBarBadge', this.setTabBarBadgeHandler)\n Taro.eventCenter.off('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler)\n Taro.eventCenter.off('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler)\n Taro.eventCenter.off('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler)\n Taro.eventCenter.off('__taroShowTabBar', this.showTabBarHandler)\n Taro.eventCenter.off('__taroHideTabBar', this.hideTabBarHandler)\n Taro.eventCenter.off('__taroSetTabBarStyle', this.setTabBarStyleHandler)\n Taro.eventCenter.off('__taroSetTabBarItem', this.setTabBarItemHandler)\n }\n\n componentDidLoad () {\n this.tabbarPos = this.tabbar.nextElementSibling ? 'top' : 'bottom'\n this.bindEvent()\n this.routerChangeHandler()\n }\n\n disconnectedCallback () {\n this.removeEvent()\n }\n\n render () {\n const { tabbarPos = 'bottom' } = this\n const status = this.status\n const containerCls = classNames('weui-tabbar', {\n [`taro-tabbar__border-${this.borderStyle || 'black'}`]: true\n })\n const shouldHideTabBar = this.selectedIndex === -1 || status === STATUS_HIDE\n const shouldSlideout = status === STATUS_SLIDEOUT\n\n return (\n <Host\n class={classNames(\n basicTabBarClassName,\n `${basicTabBarClassName}-${tabbarPos}`, {\n [hideTabBarClassName]: shouldHideTabBar,\n [hideTabBarWithAnimationClassName]: shouldSlideout\n })} >\n <div\n class={containerCls}\n style={{\n backgroundColor: this.backgroundColor || '',\n height: 'inherit'\n }}\n >\n {this.list.map((item, index) => {\n const isSelected = this.selectedIndex === index\n let textColor\n let iconPath\n if (isSelected) {\n textColor = this.selectedColor || ''\n iconPath = item.selectedIconPath\n } else {\n textColor = this.color || ''\n iconPath = item.iconPath\n }\n return (\n <TabbarItem\n index={index}\n onSelect={this.switchTab.bind(this)}\n isSelected={isSelected}\n textColor={textColor}\n iconPath={iconPath}\n pagePath={item.pagePath}\n text={item.text}\n badgeText={item.badgeText}\n showRedDot={item.showRedDot}\n />\n )\n })}\n </div>\n </Host>\n )\n }\n}\n"],"version":3}
@@ -1,6 +1,6 @@
1
1
  import { h, Host } from '@stencil/core';
2
2
  import Taro from '@tarojs/taro';
3
- import { addLeadingSlash, stripBasename, stripSuffix } from '@tarojs/router/dist/utils';
3
+ import { addLeadingSlash, getCurrentPage, stripBasename, stripSuffix } from '@tarojs/router/dist/utils';
4
4
  import classNames from 'classnames';
5
5
  import resolvePathname from 'resolve-pathname';
6
6
  import { splitUrl } from '../../utils';
@@ -216,21 +216,8 @@ export class Tabbar {
216
216
  this.selectedColor = this.conf.selectedColor;
217
217
  }
218
218
  getCurrentUrl() {
219
- const routerMode = this.conf.mode;
220
- const routerBasename = this.conf.basename || '/';
221
- let url;
222
- if (routerMode === 'hash') {
223
- const href = window.location.href;
224
- const hashIndex = href.indexOf('#');
225
- url = hashIndex === -1
226
- ? ''
227
- : href.substring(hashIndex + 1);
228
- }
229
- else {
230
- url = location.pathname;
231
- }
232
- const processedUrl = addLeadingSlash(stripBasename(url, routerBasename));
233
- return decodeURI(processedUrl === '/' ? this.homePage : processedUrl);
219
+ const routePath = getCurrentPage(this.conf.mode, this.conf.basename);
220
+ return decodeURI(routePath === '/' ? this.homePage : routePath);
234
221
  }
235
222
  bindEvent() {
236
223
  Taro.eventCenter.on('__taroRouterChange', this.routerChangeHandler);
@@ -1 +1 @@
1
- {"version":3,"file":"tabbar.js","sourceRoot":"","sources":["../../../src/components/tabbar/tabbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAsB,IAAI,EAAE,KAAK,EAAE,KAAK,EAAgB,OAAO,EAAE,MAAM,eAAe,CAAA;AACjH,OAAO,IAAI,MAAM,cAAc,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvF,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,eAAe,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,MAAM,WAAW,GAAG,CAAC,CAAA;AACrB,MAAM,WAAW,GAAG,CAAC,CAAA;AACrB,MAAM,eAAe,GAAG,CAAC,CAAA;AAEzB,MAAM,oBAAoB,GAAG,qBAAqB,CAAA;AAClD,MAAM,mBAAmB,GAAG,0BAA0B,CAAA;AACtD,MAAM,gCAAgC,GAAG,8BAA8B,CAAA;AAuCvE,MAAM,OAAO,MAAM;EA6BjB;IA5BQ,aAAQ,GAAG,EAAE,CAAA;IAEb,iBAAY,GAAoB,EAAE,CAAA;IAElC,cAAS,GAAqB,QAAQ,CAAA;IA4E9C,iBAAY,GAAG,CAAC,GAAW,EAAE,EAAE;MAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE;QAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAA;QACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;QAChC,OAAO,KAAK,KAAK,KAAK,CAAA;MACxB,CAAC,CAAC,CAAA;MACF,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAC3E,CAAC,CAAA;IAED,qBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE;MACjC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAA;MACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAA;QACrC,IAAI,KAAK,KAAK,KAAK,EAAE;UACnB,UAAU,GAAG,GAAG,CAAA;SACjB;MACH,CAAC,CAAC,CAAA;MACF,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAED,cAAS,GAAG,CAAC,KAAa,EAAE,EAAE;MAC5B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;MAC1B,IAAI,CAAC,SAAS,CAAC;QACb,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ;OAC/B,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,qBAAgB,GAAG,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,YAAY,EAAiB,EAAE,EAAE;MAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAA;MAC3E,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;MAChD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;MAEjD,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;QACnB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QAC1B,cAAc,CAAC;UACb,MAAM,EAAE,cAAc;SACvB,CAAC,CAAA;OACH;WAAM;QACL,YAAY,CAAC;UACX,MAAM,EAAE,wBAAwB,OAAO,gBAAgB;SACxD,CAAC,CAAA;OACH;IACH,CAAC,CAAA;IAED,wBAAmB,GAAG,CAAC,OAAQ,EAAE,EAAE;;MACjC,MAAM,EAAE,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,0CAAE,IAAI,CAAA;MACpC,IAAI,WAAW,CAAA;MAEf,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAA;QAChD,WAAW,GAAG,aAAa,CAAC,eAAe,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,IAAI,GAAG,CAAA;OACzF;WAAM;QACL,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;OACnC;MAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAA;IAC5E,CAAC,CAAA;IAED,0BAAqB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAiB,EAAE,EAAE;MACvF,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;MAC3B,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,KAAK,CAAA;QAC9B,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAA;QAC5B,cAAc,CAAC;UACb,MAAM,EAAE,mBAAmB;SAC5B,CAAC,CAAA;OACH;WAAM;QACL,YAAY,CAAC;UACX,MAAM,EAAE,2CAA2C;SACpD,CAAC,CAAA;OACH;MAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC,CAAA;IAED,6BAAwB,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAiB,EAAE,EAAE;MACpF,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;MAC3B,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAA;QAC5B,cAAc,CAAC;UACb,MAAM,EAAE,sBAAsB;SAC/B,CAAC,CAAA;OACH;WAAM;QACL,YAAY,CAAC;UACX,MAAM,EAAE,8CAA8C;SACvD,CAAC,CAAA;OACH;MAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC,CAAA;IAED,4BAAuB,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAiB,EAAE,EAAE;MACnF,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;MAC3B,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,IAAI,CAAA;QAC7B,cAAc,CAAC;UACb,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAA;OACH;WAAM;QACL,YAAY,CAAC;UACX,MAAM,EAAE,6CAA6C;SACtD,CAAC,CAAA;OACH;MAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC,CAAA;IAED,4BAAuB,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAiB,EAAE,EAAE;MACnF,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;MAC3B,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,KAAK,CAAA;QAC9B,cAAc,CAAC;UACb,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAA;OACH;WAAM;QACL,YAAY,CAAC;UACX,MAAM,EAAE,6CAA6C;SACtD,CAAC,CAAA;OACH;MAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC,CAAA;IAED,sBAAiB,GAAG,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE;MACzC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAA;MACzB,cAAc,CAAC;QACb,MAAM,EAAE,eAAe;OACxB,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,sBAAiB,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE;MACpD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAA;MACvD,cAAc,CAAC;QACb,MAAM,EAAE,eAAe;OACxB,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,0BAAqB,GAAG,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,EAAE;MACjG,IAAI,eAAe;QAAE,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;MAC3D,IAAI,WAAW;QAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;MAC/C,IAAI,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;MAC7B,IAAI,aAAa;QAAE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;MACrD,cAAc,CAAC;QACb,MAAM,EAAE,mBAAmB;OAC5B,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,yBAAoB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,EAAE;MACnG,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;MAC3B,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,IAAI,QAAQ;UAAE,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC7C,IAAI,gBAAgB;UAAE,IAAI,CAAC,KAAK,CAAC,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACrE,IAAI,IAAI;UAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,CAAA;QACjC,cAAc,CAAC;UACb,MAAM,EAAE,kBAAkB;SAC3B,CAAC,CAAA;OACH;WAAM;QACL,YAAY,CAAC;UACX,MAAM,EAAE,0CAA0C;SACnD,CAAC,CAAA;OACH;MAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC,CAAA;;;;;;;yBApOwB,CAAC,CAAC;kBAEE,WAAW;IAStC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;IAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAA;IAC3C,IACE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,gBAAgB;MACzD,IAAI,CAAC,MAAM,GAAG,CAAC;MACf,IAAI,CAAC,MAAM,GAAG,CAAC,EACf;MACA,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;KAC/B;IAED,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACnD,KAAK,IAAI,GAAG,IAAI,YAAY,EAAE;MAC5B,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;MAC9B,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;MAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;OACrD;WAAM,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,IAAG,CAAC,EAAE;QAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;OACpE;KACF;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;MAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACpC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;OACpC;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAA;IACxC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAA;IAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;IAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAA;GAC7C;EAED,aAAa;IACX,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;IACjC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAA;IAChD,IAAI,GAAG,CAAA;IACP,IAAI,UAAU,KAAK,MAAM,EAAE;MACzB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAA;MACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;MACnC,GAAG,GAAG,SAAS,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;KAClC;SAAM;MACL,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAA;KACxB;IACD,MAAM,YAAY,GAAG,eAAe,CAAC,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAA;IACxE,OAAO,SAAS,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;EACvE,CAAC;EA0KD,SAAS;IACP,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACnE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC7D,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,sBAAsB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACvE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,yBAAyB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAA;IAC7E,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,+BAA+B,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAA;IAClF,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,+BAA+B,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAA;IAClF,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC/D,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC/D,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,sBAAsB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACvE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAA;EACvE,CAAC;EAED,WAAW;IACT,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACpE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC9D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACxE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAA;IAC9E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAA;IACnF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAA;IACnF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAChE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAChE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACxE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAA;EACxE,CAAC;EAED,gBAAgB;IACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAA;IAClE,IAAI,CAAC,SAAS,EAAE,CAAA;IAChB,IAAI,CAAC,mBAAmB,EAAE,CAAA;EAC5B,CAAC;EAED,oBAAoB;IAClB,IAAI,CAAC,WAAW,EAAE,CAAA;EACpB,CAAC;EAED,MAAM;IACJ,MAAM,EAAE,SAAS,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAA;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC1B,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,EAAE;MAC7C,CAAC,uBAAuB,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC,EAAE,IAAI;KAC7D,CAAC,CAAA;IACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,IAAI,MAAM,KAAK,WAAW,CAAA;IAC5E,MAAM,cAAc,GAAG,MAAM,KAAK,eAAe,CAAA;IAEjD,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE,UAAU,CACf,oBAAoB,EACpB,GAAG,oBAAoB,IAAI,SAAS,EAAE,EAAE;QACtC,CAAC,mBAAmB,CAAC,EAAE,gBAAgB;QACvC,CAAC,gCAAgC,CAAC,EAAE,cAAc;OACnD,CAAC;MACJ,WACE,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE;UACL,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,EAAE;UAC3C,MAAM,EAAE,SAAS;SAClB,IAEA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,KAAK,KAAK,CAAA;QAC/C,IAAI,SAAS,CAAA;QACb,IAAI,QAAQ,CAAA;QACZ,IAAI,UAAU,EAAE;UACd,SAAS,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAA;UACpC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAA;SACjC;aAAM;UACL,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;UAC5B,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;SACzB;QACD,OAAO,CACL,EAAC,UAAU,IACT,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EACnC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,UAAU,EAAE,IAAI,CAAC,UAAU,GAC3B,CACH,CAAA;MACH,CAAC,CAAC,CACE,CACD,CACR,CAAA;EACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, ComponentInterface, Host, State, Event, EventEmitter, Element } from '@stencil/core'\nimport Taro from '@tarojs/taro'\nimport { addLeadingSlash, stripBasename, stripSuffix } from '@tarojs/router/dist/utils'\nimport { IH5RouterConfig } from '@tarojs/taro/types/compile'\nimport classNames from 'classnames'\nimport resolvePathname from 'resolve-pathname'\n\nimport { splitUrl } from '../../utils'\nimport { TabbarItem } from './tabbar-item'\n\nconst STATUS_SHOW = 0\nconst STATUS_HIDE = 1\nconst STATUS_SLIDEOUT = 2\n\nconst basicTabBarClassName = 'taro-tabbar__tabbar'\nconst hideTabBarClassName = 'taro-tabbar__tabbar-hide'\nconst hideTabBarWithAnimationClassName = 'taro-tabbar__tabbar-slideout'\n\ninterface RouterHandler {\n index: string\n text: string\n url: string\n successHandler: Function\n errorHandler: Function\n animation?: boolean\n}\n\nexport interface Conf {\n color: string\n selectedColor: string\n backgroundColor: string\n borderStyle?: 'black' | 'white'\n list: TabbarList[]\n position?: 'bottom' | 'top'\n custom: boolean\n customRoutes: Record<string, string | string[]>\n mode: IH5RouterConfig['mode']\n basename: string\n homePage: string\n currentPagename: string\n}\n\ninterface TabbarList {\n pagePath: string\n text: string\n iconPath?: string\n selectedIconPath?: string\n badgeText?: string\n showRedDot?: boolean\n}\n\n@Component({\n tag: 'taro-tabbar',\n styleUrl: './style/index.scss'\n})\nexport class Tabbar implements ComponentInterface {\n private homePage = ''\n\n private customRoutes: Array<string[]> = []\n\n private tabbarPos: 'top' | 'bottom' = 'bottom'\n\n @Prop() conf: Conf\n\n @State() list: TabbarList[]\n\n @State() borderStyle: Conf['borderStyle']\n\n @State() backgroundColor: Conf['backgroundColor']\n\n @State() color: Conf['color']\n\n @State() selectedColor: Conf['selectedColor']\n\n @State() selectedIndex = -1\n\n @State() status: 0 | 1 | 2 = STATUS_SHOW\n\n @Event({\n eventName: 'longpress'\n }) onLongPress: EventEmitter\n\n @Element() tabbar: HTMLDivElement\n\n constructor () {\n const list = this.conf.list\n const customRoutes = this.conf.customRoutes\n if (\n Object.prototype.toString.call(list) !== '[object Array]' ||\n list.length < 2 ||\n list.length > 5\n ) {\n throw new Error('tabBar 配置错误')\n }\n\n this.homePage = addLeadingSlash(this.conf.homePage)\n for (let key in customRoutes) {\n const path = customRoutes[key]\n key = addLeadingSlash(key)\n if (typeof path === 'string') {\n this.customRoutes.push([key, addLeadingSlash(path)])\n } else if (path?.length > 0) {\n this.customRoutes.push(...path.map(p => [key, addLeadingSlash(p)]))\n }\n }\n\n list.forEach(item => {\n if (item.pagePath.indexOf('/') !== 0) {\n item.pagePath = '/' + item.pagePath\n }\n })\n\n this.list = list\n this.borderStyle = this.conf.borderStyle\n this.backgroundColor = this.conf.backgroundColor\n this.color = this.conf.color\n this.selectedColor = this.conf.selectedColor\n }\n\n getCurrentUrl () {\n const routerMode = this.conf.mode\n const routerBasename = this.conf.basename || '/'\n let url\n if (routerMode === 'hash') {\n const href = window.location.href\n const hashIndex = href.indexOf('#')\n url = hashIndex === -1\n ? ''\n : href.substring(hashIndex + 1)\n } else {\n url = location.pathname\n }\n const processedUrl = addLeadingSlash(stripBasename(url, routerBasename))\n return decodeURI(processedUrl === '/' ? this.homePage : processedUrl)\n }\n\n getOriginUrl = (url: string) => {\n const customRoute = this.customRoutes.filter(([, customUrl]) => {\n const pathA = splitUrl(customUrl).path\n const pathB = splitUrl(url).path\n return pathA === pathB\n })\n return stripSuffix(customRoute.length ? customRoute[0][0] : url, '.html')\n }\n\n getSelectedIndex = (url: string) => {\n let foundIndex = -1\n this.list.forEach(({ pagePath }, idx) => {\n const pathA = splitUrl(url).path\n const pathB = splitUrl(pagePath).path\n if (pathA === pathB) {\n foundIndex = idx\n }\n })\n return foundIndex\n }\n\n switchTab = (index: number) => {\n this.selectedIndex = index\n Taro.switchTab({\n url: this.list[index].pagePath\n })\n }\n\n switchTabHandler = ({ url, successHandler, errorHandler }: RouterHandler) => {\n const currentUrl = this.getOriginUrl(this.getCurrentUrl() || this.homePage)\n const nextTab = resolvePathname(url, currentUrl)\n const foundIndex = this.getSelectedIndex(nextTab)\n\n if (foundIndex > -1) {\n this.switchTab(foundIndex)\n successHandler({\n errMsg: 'switchTab:ok'\n })\n } else {\n errorHandler({\n errMsg: `switchTab:fail page \"${nextTab}\" is not found`\n })\n }\n }\n\n routerChangeHandler = (options?) => {\n const to = options?.toLocation?.path\n let currentPage\n\n if (typeof to === 'string') {\n const routerBasename = this.conf.basename || '/'\n currentPage = stripBasename(addLeadingSlash(to || this.homePage), routerBasename) || '/'\n } else {\n currentPage = this.getCurrentUrl()\n }\n\n this.selectedIndex = this.getSelectedIndex(this.getOriginUrl(currentPage))\n }\n\n setTabBarBadgeHandler = ({ index, text, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].showRedDot = false\n list[index].badgeText = text\n successHandler({\n errMsg: 'setTabBarBadge:ok'\n })\n } else {\n errorHandler({\n errMsg: 'setTabBarBadge:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n removeTabBarBadgeHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].badgeText = null\n list[index].badgeText = null\n successHandler({\n errMsg: 'removeTabBarBadge:ok'\n })\n } else {\n errorHandler({\n errMsg: 'removeTabBarBadge:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n showTabBarRedDotHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].badgeText = null\n list[index].showRedDot = true\n successHandler({\n errMsg: 'showTabBarRedDot:ok'\n })\n } else {\n errorHandler({\n errMsg: 'showTabBarRedDot:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n hideTabBarRedDotHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].showRedDot = false\n successHandler({\n errMsg: 'hideTabBarRedDot:ok'\n })\n } else {\n errorHandler({\n errMsg: 'hideTabBarRedDot:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n showTabBarHandler = ({ successHandler }) => {\n this.status = STATUS_SHOW\n successHandler({\n errMsg: 'showTabBar:ok'\n })\n }\n\n hideTabBarHandler = ({ animation, successHandler }) => {\n this.status = animation ? STATUS_SLIDEOUT : STATUS_HIDE\n successHandler({\n errMsg: 'hideTabBar:ok'\n })\n }\n\n setTabBarStyleHandler = ({ color, selectedColor, backgroundColor, borderStyle, successHandler }) => {\n if (backgroundColor) this.backgroundColor = backgroundColor\n if (borderStyle) this.borderStyle = borderStyle\n if (color) this.color = color\n if (selectedColor) this.selectedColor = selectedColor\n successHandler({\n errMsg: 'setTabBarStyle:ok'\n })\n }\n\n setTabBarItemHandler = ({ index, iconPath, selectedIconPath, text, successHandler, errorHandler }) => {\n const list = [...this.list]\n if (index in list) {\n if (iconPath) list[index].iconPath = iconPath\n if (selectedIconPath) list[index].selectedIconPath = selectedIconPath\n if (text) list[index].text = text\n successHandler({\n errMsg: 'setTabBarItem:ok'\n })\n } else {\n errorHandler({\n errMsg: 'setTabBarItem:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n bindEvent () {\n Taro.eventCenter.on('__taroRouterChange', this.routerChangeHandler)\n Taro.eventCenter.on('__taroSwitchTab', this.switchTabHandler)\n Taro.eventCenter.on('__taroSetTabBarBadge', this.setTabBarBadgeHandler)\n Taro.eventCenter.on('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler)\n Taro.eventCenter.on('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler)\n Taro.eventCenter.on('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler)\n Taro.eventCenter.on('__taroShowTabBar', this.showTabBarHandler)\n Taro.eventCenter.on('__taroHideTabBar', this.hideTabBarHandler)\n Taro.eventCenter.on('__taroSetTabBarStyle', this.setTabBarStyleHandler)\n Taro.eventCenter.on('__taroSetTabBarItem', this.setTabBarItemHandler)\n }\n\n removeEvent () {\n Taro.eventCenter.off('__taroRouterChange', this.routerChangeHandler)\n Taro.eventCenter.off('__taroSwitchTab', this.switchTabHandler)\n Taro.eventCenter.off('__taroSetTabBarBadge', this.setTabBarBadgeHandler)\n Taro.eventCenter.off('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler)\n Taro.eventCenter.off('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler)\n Taro.eventCenter.off('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler)\n Taro.eventCenter.off('__taroShowTabBar', this.showTabBarHandler)\n Taro.eventCenter.off('__taroHideTabBar', this.hideTabBarHandler)\n Taro.eventCenter.off('__taroSetTabBarStyle', this.setTabBarStyleHandler)\n Taro.eventCenter.off('__taroSetTabBarItem', this.setTabBarItemHandler)\n }\n\n componentDidLoad () {\n this.tabbarPos = this.tabbar.nextElementSibling ? 'top' : 'bottom'\n this.bindEvent()\n this.routerChangeHandler()\n }\n\n disconnectedCallback () {\n this.removeEvent()\n }\n\n render () {\n const { tabbarPos = 'bottom' } = this\n const status = this.status\n const containerCls = classNames('weui-tabbar', {\n [`taro-tabbar__border-${this.borderStyle || 'black'}`]: true\n })\n const shouldHideTabBar = this.selectedIndex === -1 || status === STATUS_HIDE\n const shouldSlideout = status === STATUS_SLIDEOUT\n\n return (\n <Host\n class={classNames(\n basicTabBarClassName,\n `${basicTabBarClassName}-${tabbarPos}`, {\n [hideTabBarClassName]: shouldHideTabBar,\n [hideTabBarWithAnimationClassName]: shouldSlideout\n })} >\n <div\n class={containerCls}\n style={{\n backgroundColor: this.backgroundColor || '',\n height: 'inherit'\n }}\n >\n {this.list.map((item, index) => {\n const isSelected = this.selectedIndex === index\n let textColor\n let iconPath\n if (isSelected) {\n textColor = this.selectedColor || ''\n iconPath = item.selectedIconPath\n } else {\n textColor = this.color || ''\n iconPath = item.iconPath\n }\n return (\n <TabbarItem\n index={index}\n onSelect={this.switchTab.bind(this)}\n isSelected={isSelected}\n textColor={textColor}\n iconPath={iconPath}\n pagePath={item.pagePath}\n text={item.text}\n badgeText={item.badgeText}\n showRedDot={item.showRedDot}\n />\n )\n })}\n </div>\n </Host>\n )\n }\n}\n"]}
1
+ {"version":3,"file":"tabbar.js","sourceRoot":"","sources":["../../../src/components/tabbar/tabbar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, ComponentInterface, Host, State, Event, EventEmitter, Element } from '@stencil/core'\nimport Taro from '@tarojs/taro'\nimport { addLeadingSlash, getCurrentPage, stripBasename, stripSuffix } from '@tarojs/router/dist/utils'\nimport { IH5RouterConfig } from '@tarojs/taro/types/compile'\nimport classNames from 'classnames'\nimport resolvePathname from 'resolve-pathname'\n\nimport { splitUrl } from '../../utils'\nimport { TabbarItem } from './tabbar-item'\n\nconst STATUS_SHOW = 0\nconst STATUS_HIDE = 1\nconst STATUS_SLIDEOUT = 2\n\nconst basicTabBarClassName = 'taro-tabbar__tabbar'\nconst hideTabBarClassName = 'taro-tabbar__tabbar-hide'\nconst hideTabBarWithAnimationClassName = 'taro-tabbar__tabbar-slideout'\n\ninterface RouterHandler {\n index: string\n text: string\n url: string\n successHandler: Function\n errorHandler: Function\n animation?: boolean\n}\n\nexport interface Conf {\n color: string\n selectedColor: string\n backgroundColor: string\n borderStyle?: 'black' | 'white'\n list: TabbarList[]\n position?: 'bottom' | 'top'\n custom: boolean\n customRoutes: Record<string, string | string[]>\n mode: IH5RouterConfig['mode']\n basename: string\n homePage: string\n currentPagename: string\n}\n\ninterface TabbarList {\n pagePath: string\n text: string\n iconPath?: string\n selectedIconPath?: string\n badgeText?: string\n showRedDot?: boolean\n}\n\n@Component({\n tag: 'taro-tabbar',\n styleUrl: './style/index.scss'\n})\nexport class Tabbar implements ComponentInterface {\n private homePage = ''\n\n private customRoutes: Array<string[]> = []\n\n private tabbarPos: 'top' | 'bottom' = 'bottom'\n\n @Prop() conf: Conf\n\n @State() list: TabbarList[]\n\n @State() borderStyle: Conf['borderStyle']\n\n @State() backgroundColor: Conf['backgroundColor']\n\n @State() color: Conf['color']\n\n @State() selectedColor: Conf['selectedColor']\n\n @State() selectedIndex = -1\n\n @State() status: 0 | 1 | 2 = STATUS_SHOW\n\n @Event({\n eventName: 'longpress'\n }) onLongPress: EventEmitter\n\n @Element() tabbar: HTMLDivElement\n\n constructor () {\n const list = this.conf.list\n const customRoutes = this.conf.customRoutes\n if (\n Object.prototype.toString.call(list) !== '[object Array]' ||\n list.length < 2 ||\n list.length > 5\n ) {\n throw new Error('tabBar 配置错误')\n }\n\n this.homePage = addLeadingSlash(this.conf.homePage)\n for (let key in customRoutes) {\n const path = customRoutes[key]\n key = addLeadingSlash(key)\n if (typeof path === 'string') {\n this.customRoutes.push([key, addLeadingSlash(path)])\n } else if (path?.length > 0) {\n this.customRoutes.push(...path.map(p => [key, addLeadingSlash(p)]))\n }\n }\n\n list.forEach(item => {\n if (item.pagePath.indexOf('/') !== 0) {\n item.pagePath = '/' + item.pagePath\n }\n })\n\n this.list = list\n this.borderStyle = this.conf.borderStyle\n this.backgroundColor = this.conf.backgroundColor\n this.color = this.conf.color\n this.selectedColor = this.conf.selectedColor\n }\n\n getCurrentUrl () {\n const routePath = getCurrentPage(this.conf.mode, this.conf.basename)\n return decodeURI(routePath === '/' ? this.homePage : routePath)\n }\n\n getOriginUrl = (url: string) => {\n const customRoute = this.customRoutes.filter(([, customUrl]) => {\n const pathA = splitUrl(customUrl).path\n const pathB = splitUrl(url).path\n return pathA === pathB\n })\n return stripSuffix(customRoute.length ? customRoute[0][0] : url, '.html')\n }\n\n getSelectedIndex = (url: string) => {\n let foundIndex = -1\n this.list.forEach(({ pagePath }, idx) => {\n const pathA = splitUrl(url).path\n const pathB = splitUrl(pagePath).path\n if (pathA === pathB) {\n foundIndex = idx\n }\n })\n return foundIndex\n }\n\n switchTab = (index: number) => {\n this.selectedIndex = index\n Taro.switchTab({\n url: this.list[index].pagePath\n })\n }\n\n switchTabHandler = ({ url, successHandler, errorHandler }: RouterHandler) => {\n const currentUrl = this.getOriginUrl(this.getCurrentUrl() || this.homePage)\n const nextTab = resolvePathname(url, currentUrl)\n const foundIndex = this.getSelectedIndex(nextTab)\n\n if (foundIndex > -1) {\n this.switchTab(foundIndex)\n successHandler({\n errMsg: 'switchTab:ok'\n })\n } else {\n errorHandler({\n errMsg: `switchTab:fail page \"${nextTab}\" is not found`\n })\n }\n }\n\n routerChangeHandler = (options?) => {\n const to = options?.toLocation?.path\n let currentPage\n\n if (typeof to === 'string') {\n const routerBasename = this.conf.basename || '/'\n currentPage = stripBasename(addLeadingSlash(to || this.homePage), routerBasename) || '/'\n } else {\n currentPage = this.getCurrentUrl()\n }\n\n this.selectedIndex = this.getSelectedIndex(this.getOriginUrl(currentPage))\n }\n\n setTabBarBadgeHandler = ({ index, text, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].showRedDot = false\n list[index].badgeText = text\n successHandler({\n errMsg: 'setTabBarBadge:ok'\n })\n } else {\n errorHandler({\n errMsg: 'setTabBarBadge:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n removeTabBarBadgeHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].badgeText = null\n list[index].badgeText = null\n successHandler({\n errMsg: 'removeTabBarBadge:ok'\n })\n } else {\n errorHandler({\n errMsg: 'removeTabBarBadge:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n showTabBarRedDotHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].badgeText = null\n list[index].showRedDot = true\n successHandler({\n errMsg: 'showTabBarRedDot:ok'\n })\n } else {\n errorHandler({\n errMsg: 'showTabBarRedDot:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n hideTabBarRedDotHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].showRedDot = false\n successHandler({\n errMsg: 'hideTabBarRedDot:ok'\n })\n } else {\n errorHandler({\n errMsg: 'hideTabBarRedDot:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n showTabBarHandler = ({ successHandler }) => {\n this.status = STATUS_SHOW\n successHandler({\n errMsg: 'showTabBar:ok'\n })\n }\n\n hideTabBarHandler = ({ animation, successHandler }) => {\n this.status = animation ? STATUS_SLIDEOUT : STATUS_HIDE\n successHandler({\n errMsg: 'hideTabBar:ok'\n })\n }\n\n setTabBarStyleHandler = ({ color, selectedColor, backgroundColor, borderStyle, successHandler }) => {\n if (backgroundColor) this.backgroundColor = backgroundColor\n if (borderStyle) this.borderStyle = borderStyle\n if (color) this.color = color\n if (selectedColor) this.selectedColor = selectedColor\n successHandler({\n errMsg: 'setTabBarStyle:ok'\n })\n }\n\n setTabBarItemHandler = ({ index, iconPath, selectedIconPath, text, successHandler, errorHandler }) => {\n const list = [...this.list]\n if (index in list) {\n if (iconPath) list[index].iconPath = iconPath\n if (selectedIconPath) list[index].selectedIconPath = selectedIconPath\n if (text) list[index].text = text\n successHandler({\n errMsg: 'setTabBarItem:ok'\n })\n } else {\n errorHandler({\n errMsg: 'setTabBarItem:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n bindEvent () {\n Taro.eventCenter.on('__taroRouterChange', this.routerChangeHandler)\n Taro.eventCenter.on('__taroSwitchTab', this.switchTabHandler)\n Taro.eventCenter.on('__taroSetTabBarBadge', this.setTabBarBadgeHandler)\n Taro.eventCenter.on('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler)\n Taro.eventCenter.on('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler)\n Taro.eventCenter.on('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler)\n Taro.eventCenter.on('__taroShowTabBar', this.showTabBarHandler)\n Taro.eventCenter.on('__taroHideTabBar', this.hideTabBarHandler)\n Taro.eventCenter.on('__taroSetTabBarStyle', this.setTabBarStyleHandler)\n Taro.eventCenter.on('__taroSetTabBarItem', this.setTabBarItemHandler)\n }\n\n removeEvent () {\n Taro.eventCenter.off('__taroRouterChange', this.routerChangeHandler)\n Taro.eventCenter.off('__taroSwitchTab', this.switchTabHandler)\n Taro.eventCenter.off('__taroSetTabBarBadge', this.setTabBarBadgeHandler)\n Taro.eventCenter.off('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler)\n Taro.eventCenter.off('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler)\n Taro.eventCenter.off('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler)\n Taro.eventCenter.off('__taroShowTabBar', this.showTabBarHandler)\n Taro.eventCenter.off('__taroHideTabBar', this.hideTabBarHandler)\n Taro.eventCenter.off('__taroSetTabBarStyle', this.setTabBarStyleHandler)\n Taro.eventCenter.off('__taroSetTabBarItem', this.setTabBarItemHandler)\n }\n\n componentDidLoad () {\n this.tabbarPos = this.tabbar.nextElementSibling ? 'top' : 'bottom'\n this.bindEvent()\n this.routerChangeHandler()\n }\n\n disconnectedCallback () {\n this.removeEvent()\n }\n\n render () {\n const { tabbarPos = 'bottom' } = this\n const status = this.status\n const containerCls = classNames('weui-tabbar', {\n [`taro-tabbar__border-${this.borderStyle || 'black'}`]: true\n })\n const shouldHideTabBar = this.selectedIndex === -1 || status === STATUS_HIDE\n const shouldSlideout = status === STATUS_SLIDEOUT\n\n return (\n <Host\n class={classNames(\n basicTabBarClassName,\n `${basicTabBarClassName}-${tabbarPos}`, {\n [hideTabBarClassName]: shouldHideTabBar,\n [hideTabBarWithAnimationClassName]: shouldSlideout\n })} >\n <div\n class={containerCls}\n style={{\n backgroundColor: this.backgroundColor || '',\n height: 'inherit'\n }}\n >\n {this.list.map((item, index) => {\n const isSelected = this.selectedIndex === index\n let textColor\n let iconPath\n if (isSelected) {\n textColor = this.selectedColor || ''\n iconPath = item.selectedIconPath\n } else {\n textColor = this.color || ''\n iconPath = item.iconPath\n }\n return (\n <TabbarItem\n index={index}\n onSelect={this.switchTab.bind(this)}\n isSelected={isSelected}\n textColor={textColor}\n iconPath={iconPath}\n pagePath={item.pagePath}\n text={item.text}\n badgeText={item.badgeText}\n showRedDot={item.showRedDot}\n />\n )\n })}\n </div>\n </Host>\n )\n }\n}\n"]}
@@ -31,6 +31,12 @@ const addLeadingSlash = (url = '') => (url.charAt(0) === '/' ? url : '/' + url);
31
31
  const hasBasename = (path = '', prefix = '') => new RegExp('^' + prefix + '(\\/|\\?|#|$)', 'i').test(path) || path === prefix;
32
32
  const stripBasename = (path = '', prefix = '') => hasBasename(path, prefix) ? path.substring(prefix.length) : path;
33
33
  const stripSuffix = (path = '', suffix = '') => path.includes(suffix) ? path.substring(0, path.length - suffix.length) : path;
34
+ const getCurrentPage = (routerMode = 'hash', basename = '/') => {
35
+ const pagePath = routerMode === 'hash'
36
+ ? location.hash.slice(1).split('?')[0]
37
+ : location.pathname;
38
+ return addLeadingSlash(stripBasename(pagePath, basename));
39
+ };
34
40
 
35
41
  function isAbsolute(pathname) {
36
42
  return pathname.charAt(0) === '/';
@@ -351,21 +357,8 @@ const Tabbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
351
357
  this.selectedColor = this.conf.selectedColor;
352
358
  }
353
359
  getCurrentUrl() {
354
- const routerMode = this.conf.mode;
355
- const routerBasename = this.conf.basename || '/';
356
- let url;
357
- if (routerMode === 'hash') {
358
- const href = window.location.href;
359
- const hashIndex = href.indexOf('#');
360
- url = hashIndex === -1
361
- ? ''
362
- : href.substring(hashIndex + 1);
363
- }
364
- else {
365
- url = location.pathname;
366
- }
367
- const processedUrl = addLeadingSlash(stripBasename(url, routerBasename));
368
- return decodeURI(processedUrl === '/' ? this.homePage : processedUrl);
360
+ const routePath = getCurrentPage(this.conf.mode, this.conf.basename);
361
+ return decodeURI(routePath === '/' ? this.homePage : routePath);
369
362
  }
370
363
  bindEvent() {
371
364
  Taro.eventCenter.on('__taroRouterChange', this.routerChangeHandler);
@@ -1 +1 @@
1
- {"file":"taro-tabbar.js","mappings":"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","names":["classNames"],"sources":["./src/utils/url.ts","../taro-router/dist/utils/index.js","../../node_modules/.pnpm/registry.npmjs.org+resolve-pathname@3.0.0/node_modules/resolve-pathname/esm/resolve-pathname.js","./src/components/tabbar/tabbar-item.tsx","./src/components/tabbar/style/index.scss?tag=taro-tabbar","./src/components/tabbar/tabbar.tsx"],"sourcesContent":["export const normalizePath = url => {\n let _isRelative\n let _leadingParents = ''\n let _parent, _pos\n\n // handle relative paths\n if (url.charAt(0) !== '/') {\n _isRelative = true\n url = '/' + url\n }\n\n // handle relative files (as opposed to directories)\n if (url.substring(-3) === '/..' || url.slice(-2) === '/.') {\n url += '/'\n }\n\n // resolve simples\n url = url.replace(/(\\/(\\.\\/)+)|(\\/\\.$)/g, '/').replace(/\\/{2,}/g, '/')\n\n // remember leading parents\n if (_isRelative) {\n _leadingParents = url.substring(1).match(/^(\\.\\.\\/)+/) || ''\n if (_leadingParents) {\n _leadingParents = _leadingParents[0]\n }\n }\n\n // resolve parents\n while (true) {\n _parent = url.search(/\\/\\.\\.(\\/|$)/)\n if (_parent === -1) {\n // no more ../ to resolve\n break\n } else if (_parent === 0) {\n // top level cannot be relative, skip it\n url = url.substring(3)\n continue\n }\n\n _pos = url.substring(0, _parent).lastIndexOf('/')\n if (_pos === -1) {\n _pos = _parent\n }\n url = url.substring(0, _pos) + url.substring(_parent + 3)\n }\n\n // revert to relative\n if (_isRelative) {\n url = _leadingParents + url.substring(1)\n }\n\n return url\n}\n\nexport const splitUrl = _url => {\n let url = _url || ''\n let pos\n const res = {\n path: null,\n query: null,\n fragment: null\n }\n\n pos = url.indexOf('#')\n if (pos > -1) {\n res.fragment = url.substring(pos + 1)\n url = url.substring(0, pos)\n }\n\n pos = url.indexOf('?')\n if (pos > -1) {\n res.query = url.substring(pos + 1)\n url = url.substring(0, pos)\n }\n\n res.path = url\n\n return res\n}\n","// export const removeLeadingSlash = (str = '') => str.replace(/^\\.?\\//, '')\n// export const removeTrailingSearch = (str = '') => str.replace(/\\?[\\s\\S]*$/, '')\nexport const addLeadingSlash = (url = '') => (url.charAt(0) === '/' ? url : '/' + url);\nexport const hasBasename = (path = '', prefix = '') => new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path) || path === prefix;\nexport const stripBasename = (path = '', prefix = '') => hasBasename(path, prefix) ? path.substring(prefix.length) : path;\nexport const stripTrailing = (str = '') => str.replace(/[?#][\\s\\S]*$/, '');\nexport const stripSuffix = (path = '', suffix = '') => path.includes(suffix) ? path.substring(0, path.length - suffix.length) : path;\nexport const getHomePage = (path = '', basename = '', customRoutes = {}, entryPagePath = '') => {\n var _a;\n const routePath = addLeadingSlash(stripBasename(path, basename));\n const alias = ((_a = Object.entries(customRoutes).find(([key]) => key === routePath)) === null || _a === void 0 ? void 0 : _a[1]) || routePath;\n return entryPagePath || (typeof alias === 'string' ? alias : alias[0]) || basename;\n};\nclass RoutesAlias {\n constructor() {\n this.conf = [];\n this.getConfig = (url = '') => {\n const customRoute = this.conf.filter((arr) => {\n return arr.includes(url);\n });\n return customRoute[0];\n };\n this.getOrigin = (url = '') => {\n var _a;\n return ((_a = this.getConfig(url)) === null || _a === void 0 ? void 0 : _a[0]) || url;\n };\n this.getAlias = (url = '') => {\n var _a;\n return ((_a = this.getConfig(url)) === null || _a === void 0 ? void 0 : _a[1]) || url;\n };\n this.getAll = (url = '') => {\n return this.conf\n .filter((arr) => arr.includes(url))\n .reduceRight((p, a) => {\n p.unshift(a[1]);\n return p;\n }, []);\n };\n }\n set(customRoutes = {}) {\n for (let key in customRoutes) {\n const path = customRoutes[key];\n key = addLeadingSlash(key);\n if (typeof path === 'string') {\n this.conf.push([key, addLeadingSlash(path)]);\n }\n else if ((path === null || path === void 0 ? void 0 : path.length) > 0) {\n this.conf.push(...path.map(p => [key, addLeadingSlash(p)]));\n }\n }\n }\n}\nexport const routesAlias = new RoutesAlias();\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","import classNames from 'classnames'\nimport { FunctionalComponent, h } from '@stencil/core'\nimport Taro from '@tarojs/taro'\n\nimport { isVisible } from '../../utils'\n\ntype TabbarItemProps = {\n index: number\n isSelected?: boolean\n textColor?: string\n badgeText?: string\n iconPath: string\n showRedDot?: boolean\n pagePath?: string\n text?: string\n onSelect: (index: number) => void\n}\n\nexport const TabbarItem: FunctionalComponent<TabbarItemProps> = ({\n index,\n isSelected = false,\n textColor,\n iconPath,\n badgeText,\n showRedDot = false,\n pagePath,\n text,\n onSelect\n}) => {\n const className = classNames('weui-tabbar__item', {\n 'weui-bar__item_on': isSelected\n })\n const badgeStyle = {\n position: 'absolute',\n top: '-2px',\n right: '-13px'\n }\n const dotStyle = {\n position: 'absolute',\n top: '0',\n right: '-6px'\n }\n\n function onClick () {\n const page = Taro.getCurrentPages().shift()\n if (typeof page?.onTabItemTap === 'function' && isVisible(this)) {\n page.onTabItemTap({ index, pagePath, text })\n }\n onSelect(index)\n }\n\n return (\n <a key={index} href='javascript:;' class={className} onClick={onClick}>\n <span style={{ display: 'inline-block', position: 'relative' }}>\n <img src={iconPath} alt='' class='weui-tabbar__icon' />\n {!!badgeText && (\n <span\n class='weui-badge taro-tabbar-badge'\n style={badgeStyle}>\n {badgeText}\n </span>\n )}\n {showRedDot && (\n <span\n class='weui-badge weui-badge_dot'\n style={dotStyle}\n />\n )}\n </span>\n <p class='weui-tabbar__label' style={{ color: textColor }}>\n {text}\n </p>\n </a>\n )\n}\n","html,\nbody {\n height: 100%;\n}\n\n#app {\n height: 100%;\n}\n\n.taro-tabbar {\n &__border {\n &-white {\n &::before {\n border-top-color: #fff !important;\n }\n }\n }\n\n &__container {\n display: flex;\n overflow: hidden;\n flex-direction: column;\n height: 100%;\n }\n\n &__panel {\n overflow: auto;\n position: relative;\n flex: 1;\n -webkit-overflow-scrolling: auto;\n }\n\n &__tabbar {\n position: relative;\n width: 100%;\n height: 50px;\n transition: bottom 0.2s, top 0.2s;\n\n &-top {\n top: 0;\n }\n\n &-bottom {\n bottom: 0;\n margin-bottom: constant(safe-area-inset-bottom);\n margin-bottom: env(safe-area-inset-bottom);\n }\n\n &-hide {\n display: none;\n }\n\n &-slideout {\n top: -52px;\n flex: 0 0;\n }\n }\n\n &__panel + &__tabbar-slideout {\n top: auto;\n bottom: -52px;\n }\n}\n","import { Component, Prop, h, ComponentInterface, Host, State, Event, EventEmitter, Element } from '@stencil/core'\nimport Taro from '@tarojs/taro'\nimport { addLeadingSlash, stripBasename, stripSuffix } from '@tarojs/router/dist/utils'\nimport { IH5RouterConfig } from '@tarojs/taro/types/compile'\nimport classNames from 'classnames'\nimport resolvePathname from 'resolve-pathname'\n\nimport { splitUrl } from '../../utils'\nimport { TabbarItem } from './tabbar-item'\n\nconst STATUS_SHOW = 0\nconst STATUS_HIDE = 1\nconst STATUS_SLIDEOUT = 2\n\nconst basicTabBarClassName = 'taro-tabbar__tabbar'\nconst hideTabBarClassName = 'taro-tabbar__tabbar-hide'\nconst hideTabBarWithAnimationClassName = 'taro-tabbar__tabbar-slideout'\n\ninterface RouterHandler {\n index: string\n text: string\n url: string\n successHandler: Function\n errorHandler: Function\n animation?: boolean\n}\n\nexport interface Conf {\n color: string\n selectedColor: string\n backgroundColor: string\n borderStyle?: 'black' | 'white'\n list: TabbarList[]\n position?: 'bottom' | 'top'\n custom: boolean\n customRoutes: Record<string, string | string[]>\n mode: IH5RouterConfig['mode']\n basename: string\n homePage: string\n currentPagename: string\n}\n\ninterface TabbarList {\n pagePath: string\n text: string\n iconPath?: string\n selectedIconPath?: string\n badgeText?: string\n showRedDot?: boolean\n}\n\n@Component({\n tag: 'taro-tabbar',\n styleUrl: './style/index.scss'\n})\nexport class Tabbar implements ComponentInterface {\n private homePage = ''\n\n private customRoutes: Array<string[]> = []\n\n private tabbarPos: 'top' | 'bottom' = 'bottom'\n\n @Prop() conf: Conf\n\n @State() list: TabbarList[]\n\n @State() borderStyle: Conf['borderStyle']\n\n @State() backgroundColor: Conf['backgroundColor']\n\n @State() color: Conf['color']\n\n @State() selectedColor: Conf['selectedColor']\n\n @State() selectedIndex = -1\n\n @State() status: 0 | 1 | 2 = STATUS_SHOW\n\n @Event({\n eventName: 'longpress'\n }) onLongPress: EventEmitter\n\n @Element() tabbar: HTMLDivElement\n\n constructor () {\n const list = this.conf.list\n const customRoutes = this.conf.customRoutes\n if (\n Object.prototype.toString.call(list) !== '[object Array]' ||\n list.length < 2 ||\n list.length > 5\n ) {\n throw new Error('tabBar 配置错误')\n }\n\n this.homePage = addLeadingSlash(this.conf.homePage)\n for (let key in customRoutes) {\n const path = customRoutes[key]\n key = addLeadingSlash(key)\n if (typeof path === 'string') {\n this.customRoutes.push([key, addLeadingSlash(path)])\n } else if (path?.length > 0) {\n this.customRoutes.push(...path.map(p => [key, addLeadingSlash(p)]))\n }\n }\n\n list.forEach(item => {\n if (item.pagePath.indexOf('/') !== 0) {\n item.pagePath = '/' + item.pagePath\n }\n })\n\n this.list = list\n this.borderStyle = this.conf.borderStyle\n this.backgroundColor = this.conf.backgroundColor\n this.color = this.conf.color\n this.selectedColor = this.conf.selectedColor\n }\n\n getCurrentUrl () {\n const routerMode = this.conf.mode\n const routerBasename = this.conf.basename || '/'\n let url\n if (routerMode === 'hash') {\n const href = window.location.href\n const hashIndex = href.indexOf('#')\n url = hashIndex === -1\n ? ''\n : href.substring(hashIndex + 1)\n } else {\n url = location.pathname\n }\n const processedUrl = addLeadingSlash(stripBasename(url, routerBasename))\n return decodeURI(processedUrl === '/' ? this.homePage : processedUrl)\n }\n\n getOriginUrl = (url: string) => {\n const customRoute = this.customRoutes.filter(([, customUrl]) => {\n const pathA = splitUrl(customUrl).path\n const pathB = splitUrl(url).path\n return pathA === pathB\n })\n return stripSuffix(customRoute.length ? customRoute[0][0] : url, '.html')\n }\n\n getSelectedIndex = (url: string) => {\n let foundIndex = -1\n this.list.forEach(({ pagePath }, idx) => {\n const pathA = splitUrl(url).path\n const pathB = splitUrl(pagePath).path\n if (pathA === pathB) {\n foundIndex = idx\n }\n })\n return foundIndex\n }\n\n switchTab = (index: number) => {\n this.selectedIndex = index\n Taro.switchTab({\n url: this.list[index].pagePath\n })\n }\n\n switchTabHandler = ({ url, successHandler, errorHandler }: RouterHandler) => {\n const currentUrl = this.getOriginUrl(this.getCurrentUrl() || this.homePage)\n const nextTab = resolvePathname(url, currentUrl)\n const foundIndex = this.getSelectedIndex(nextTab)\n\n if (foundIndex > -1) {\n this.switchTab(foundIndex)\n successHandler({\n errMsg: 'switchTab:ok'\n })\n } else {\n errorHandler({\n errMsg: `switchTab:fail page \"${nextTab}\" is not found`\n })\n }\n }\n\n routerChangeHandler = (options?) => {\n const to = options?.toLocation?.path\n let currentPage\n\n if (typeof to === 'string') {\n const routerBasename = this.conf.basename || '/'\n currentPage = stripBasename(addLeadingSlash(to || this.homePage), routerBasename) || '/'\n } else {\n currentPage = this.getCurrentUrl()\n }\n\n this.selectedIndex = this.getSelectedIndex(this.getOriginUrl(currentPage))\n }\n\n setTabBarBadgeHandler = ({ index, text, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].showRedDot = false\n list[index].badgeText = text\n successHandler({\n errMsg: 'setTabBarBadge:ok'\n })\n } else {\n errorHandler({\n errMsg: 'setTabBarBadge:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n removeTabBarBadgeHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].badgeText = null\n list[index].badgeText = null\n successHandler({\n errMsg: 'removeTabBarBadge:ok'\n })\n } else {\n errorHandler({\n errMsg: 'removeTabBarBadge:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n showTabBarRedDotHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].badgeText = null\n list[index].showRedDot = true\n successHandler({\n errMsg: 'showTabBarRedDot:ok'\n })\n } else {\n errorHandler({\n errMsg: 'showTabBarRedDot:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n hideTabBarRedDotHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].showRedDot = false\n successHandler({\n errMsg: 'hideTabBarRedDot:ok'\n })\n } else {\n errorHandler({\n errMsg: 'hideTabBarRedDot:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n showTabBarHandler = ({ successHandler }) => {\n this.status = STATUS_SHOW\n successHandler({\n errMsg: 'showTabBar:ok'\n })\n }\n\n hideTabBarHandler = ({ animation, successHandler }) => {\n this.status = animation ? STATUS_SLIDEOUT : STATUS_HIDE\n successHandler({\n errMsg: 'hideTabBar:ok'\n })\n }\n\n setTabBarStyleHandler = ({ color, selectedColor, backgroundColor, borderStyle, successHandler }) => {\n if (backgroundColor) this.backgroundColor = backgroundColor\n if (borderStyle) this.borderStyle = borderStyle\n if (color) this.color = color\n if (selectedColor) this.selectedColor = selectedColor\n successHandler({\n errMsg: 'setTabBarStyle:ok'\n })\n }\n\n setTabBarItemHandler = ({ index, iconPath, selectedIconPath, text, successHandler, errorHandler }) => {\n const list = [...this.list]\n if (index in list) {\n if (iconPath) list[index].iconPath = iconPath\n if (selectedIconPath) list[index].selectedIconPath = selectedIconPath\n if (text) list[index].text = text\n successHandler({\n errMsg: 'setTabBarItem:ok'\n })\n } else {\n errorHandler({\n errMsg: 'setTabBarItem:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n bindEvent () {\n Taro.eventCenter.on('__taroRouterChange', this.routerChangeHandler)\n Taro.eventCenter.on('__taroSwitchTab', this.switchTabHandler)\n Taro.eventCenter.on('__taroSetTabBarBadge', this.setTabBarBadgeHandler)\n Taro.eventCenter.on('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler)\n Taro.eventCenter.on('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler)\n Taro.eventCenter.on('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler)\n Taro.eventCenter.on('__taroShowTabBar', this.showTabBarHandler)\n Taro.eventCenter.on('__taroHideTabBar', this.hideTabBarHandler)\n Taro.eventCenter.on('__taroSetTabBarStyle', this.setTabBarStyleHandler)\n Taro.eventCenter.on('__taroSetTabBarItem', this.setTabBarItemHandler)\n }\n\n removeEvent () {\n Taro.eventCenter.off('__taroRouterChange', this.routerChangeHandler)\n Taro.eventCenter.off('__taroSwitchTab', this.switchTabHandler)\n Taro.eventCenter.off('__taroSetTabBarBadge', this.setTabBarBadgeHandler)\n Taro.eventCenter.off('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler)\n Taro.eventCenter.off('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler)\n Taro.eventCenter.off('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler)\n Taro.eventCenter.off('__taroShowTabBar', this.showTabBarHandler)\n Taro.eventCenter.off('__taroHideTabBar', this.hideTabBarHandler)\n Taro.eventCenter.off('__taroSetTabBarStyle', this.setTabBarStyleHandler)\n Taro.eventCenter.off('__taroSetTabBarItem', this.setTabBarItemHandler)\n }\n\n componentDidLoad () {\n this.tabbarPos = this.tabbar.nextElementSibling ? 'top' : 'bottom'\n this.bindEvent()\n this.routerChangeHandler()\n }\n\n disconnectedCallback () {\n this.removeEvent()\n }\n\n render () {\n const { tabbarPos = 'bottom' } = this\n const status = this.status\n const containerCls = classNames('weui-tabbar', {\n [`taro-tabbar__border-${this.borderStyle || 'black'}`]: true\n })\n const shouldHideTabBar = this.selectedIndex === -1 || status === STATUS_HIDE\n const shouldSlideout = status === STATUS_SLIDEOUT\n\n return (\n <Host\n class={classNames(\n basicTabBarClassName,\n `${basicTabBarClassName}-${tabbarPos}`, {\n [hideTabBarClassName]: shouldHideTabBar,\n [hideTabBarWithAnimationClassName]: shouldSlideout\n })} >\n <div\n class={containerCls}\n style={{\n backgroundColor: this.backgroundColor || '',\n height: 'inherit'\n }}\n >\n {this.list.map((item, index) => {\n const isSelected = this.selectedIndex === index\n let textColor\n let iconPath\n if (isSelected) {\n textColor = this.selectedColor || ''\n iconPath = item.selectedIconPath\n } else {\n textColor = this.color || ''\n iconPath = item.iconPath\n }\n return (\n <TabbarItem\n index={index}\n onSelect={this.switchTab.bind(this)}\n isSelected={isSelected}\n textColor={textColor}\n iconPath={iconPath}\n pagePath={item.pagePath}\n text={item.text}\n badgeText={item.badgeText}\n showRedDot={item.showRedDot}\n />\n )\n })}\n </div>\n </Host>\n )\n }\n}\n"],"version":3}
1
+ {"file":"taro-tabbar.js","mappings":"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","names":["classNames"],"sources":["./src/utils/url.ts","../taro-router/dist/utils/index.js","../../node_modules/.pnpm/registry.npmjs.org+resolve-pathname@3.0.0/node_modules/resolve-pathname/esm/resolve-pathname.js","./src/components/tabbar/tabbar-item.tsx","./src/components/tabbar/style/index.scss?tag=taro-tabbar","./src/components/tabbar/tabbar.tsx"],"sourcesContent":["export const normalizePath = url => {\n let _isRelative\n let _leadingParents = ''\n let _parent, _pos\n\n // handle relative paths\n if (url.charAt(0) !== '/') {\n _isRelative = true\n url = '/' + url\n }\n\n // handle relative files (as opposed to directories)\n if (url.substring(-3) === '/..' || url.slice(-2) === '/.') {\n url += '/'\n }\n\n // resolve simples\n url = url.replace(/(\\/(\\.\\/)+)|(\\/\\.$)/g, '/').replace(/\\/{2,}/g, '/')\n\n // remember leading parents\n if (_isRelative) {\n _leadingParents = url.substring(1).match(/^(\\.\\.\\/)+/) || ''\n if (_leadingParents) {\n _leadingParents = _leadingParents[0]\n }\n }\n\n // resolve parents\n while (true) {\n _parent = url.search(/\\/\\.\\.(\\/|$)/)\n if (_parent === -1) {\n // no more ../ to resolve\n break\n } else if (_parent === 0) {\n // top level cannot be relative, skip it\n url = url.substring(3)\n continue\n }\n\n _pos = url.substring(0, _parent).lastIndexOf('/')\n if (_pos === -1) {\n _pos = _parent\n }\n url = url.substring(0, _pos) + url.substring(_parent + 3)\n }\n\n // revert to relative\n if (_isRelative) {\n url = _leadingParents + url.substring(1)\n }\n\n return url\n}\n\nexport const splitUrl = _url => {\n let url = _url || ''\n let pos\n const res = {\n path: null,\n query: null,\n fragment: null\n }\n\n pos = url.indexOf('#')\n if (pos > -1) {\n res.fragment = url.substring(pos + 1)\n url = url.substring(0, pos)\n }\n\n pos = url.indexOf('?')\n if (pos > -1) {\n res.query = url.substring(pos + 1)\n url = url.substring(0, pos)\n }\n\n res.path = url\n\n return res\n}\n","// export const removeLeadingSlash = (str = '') => str.replace(/^\\.?\\//, '')\n// export const removeTrailingSearch = (str = '') => str.replace(/\\?[\\s\\S]*$/, '')\nexport const addLeadingSlash = (url = '') => (url.charAt(0) === '/' ? url : '/' + url);\nexport const hasBasename = (path = '', prefix = '') => new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path) || path === prefix;\nexport const stripBasename = (path = '', prefix = '') => hasBasename(path, prefix) ? path.substring(prefix.length) : path;\nexport const stripTrailing = (str = '') => str.replace(/[?#][\\s\\S]*$/, '');\nexport const stripSuffix = (path = '', suffix = '') => path.includes(suffix) ? path.substring(0, path.length - suffix.length) : path;\nexport const getHomePage = (path = '', basename = '', customRoutes = {}, entryPagePath = '') => {\n var _a;\n const routePath = addLeadingSlash(stripBasename(path, basename));\n const alias = ((_a = Object.entries(customRoutes).find(([key]) => key === routePath)) === null || _a === void 0 ? void 0 : _a[1]) || routePath;\n return entryPagePath || (typeof alias === 'string' ? alias : alias[0]) || basename;\n};\nexport const getCurrentPage = (routerMode = 'hash', basename = '/') => {\n const pagePath = routerMode === 'hash'\n ? location.hash.slice(1).split('?')[0]\n : location.pathname;\n return addLeadingSlash(stripBasename(pagePath, basename));\n};\nclass RoutesAlias {\n constructor() {\n this.conf = [];\n this.getConfig = (url = '') => {\n const customRoute = this.conf.filter((arr) => {\n return arr.includes(url);\n });\n return customRoute[0];\n };\n this.getOrigin = (url = '') => {\n var _a;\n return ((_a = this.getConfig(url)) === null || _a === void 0 ? void 0 : _a[0]) || url;\n };\n this.getAlias = (url = '') => {\n var _a;\n return ((_a = this.getConfig(url)) === null || _a === void 0 ? void 0 : _a[1]) || url;\n };\n this.getAll = (url = '') => {\n return this.conf\n .filter((arr) => arr.includes(url))\n .reduceRight((p, a) => {\n p.unshift(a[1]);\n return p;\n }, []);\n };\n }\n set(customRoutes = {}) {\n for (let key in customRoutes) {\n const path = customRoutes[key];\n key = addLeadingSlash(key);\n if (typeof path === 'string') {\n this.conf.push([key, addLeadingSlash(path)]);\n }\n else if ((path === null || path === void 0 ? void 0 : path.length) > 0) {\n this.conf.push(...path.map(p => [key, addLeadingSlash(p)]));\n }\n }\n }\n}\nexport const routesAlias = new RoutesAlias();\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","import classNames from 'classnames'\nimport { FunctionalComponent, h } from '@stencil/core'\nimport Taro from '@tarojs/taro'\n\nimport { isVisible } from '../../utils'\n\ntype TabbarItemProps = {\n index: number\n isSelected?: boolean\n textColor?: string\n badgeText?: string\n iconPath: string\n showRedDot?: boolean\n pagePath?: string\n text?: string\n onSelect: (index: number) => void\n}\n\nexport const TabbarItem: FunctionalComponent<TabbarItemProps> = ({\n index,\n isSelected = false,\n textColor,\n iconPath,\n badgeText,\n showRedDot = false,\n pagePath,\n text,\n onSelect\n}) => {\n const className = classNames('weui-tabbar__item', {\n 'weui-bar__item_on': isSelected\n })\n const badgeStyle = {\n position: 'absolute',\n top: '-2px',\n right: '-13px'\n }\n const dotStyle = {\n position: 'absolute',\n top: '0',\n right: '-6px'\n }\n\n function onClick () {\n const page = Taro.getCurrentPages().shift()\n if (typeof page?.onTabItemTap === 'function' && isVisible(this)) {\n page.onTabItemTap({ index, pagePath, text })\n }\n onSelect(index)\n }\n\n return (\n <a key={index} href='javascript:;' class={className} onClick={onClick}>\n <span style={{ display: 'inline-block', position: 'relative' }}>\n <img src={iconPath} alt='' class='weui-tabbar__icon' />\n {!!badgeText && (\n <span\n class='weui-badge taro-tabbar-badge'\n style={badgeStyle}>\n {badgeText}\n </span>\n )}\n {showRedDot && (\n <span\n class='weui-badge weui-badge_dot'\n style={dotStyle}\n />\n )}\n </span>\n <p class='weui-tabbar__label' style={{ color: textColor }}>\n {text}\n </p>\n </a>\n )\n}\n","html,\nbody {\n height: 100%;\n}\n\n#app {\n height: 100%;\n}\n\n.taro-tabbar {\n &__border {\n &-white {\n &::before {\n border-top-color: #fff !important;\n }\n }\n }\n\n &__container {\n display: flex;\n overflow: hidden;\n flex-direction: column;\n height: 100%;\n }\n\n &__panel {\n overflow: auto;\n position: relative;\n flex: 1;\n -webkit-overflow-scrolling: auto;\n }\n\n &__tabbar {\n position: relative;\n width: 100%;\n height: 50px;\n transition: bottom 0.2s, top 0.2s;\n\n &-top {\n top: 0;\n }\n\n &-bottom {\n bottom: 0;\n margin-bottom: constant(safe-area-inset-bottom);\n margin-bottom: env(safe-area-inset-bottom);\n }\n\n &-hide {\n display: none;\n }\n\n &-slideout {\n top: -52px;\n flex: 0 0;\n }\n }\n\n &__panel + &__tabbar-slideout {\n top: auto;\n bottom: -52px;\n }\n}\n","import { Component, Prop, h, ComponentInterface, Host, State, Event, EventEmitter, Element } from '@stencil/core'\nimport Taro from '@tarojs/taro'\nimport { addLeadingSlash, getCurrentPage, stripBasename, stripSuffix } from '@tarojs/router/dist/utils'\nimport { IH5RouterConfig } from '@tarojs/taro/types/compile'\nimport classNames from 'classnames'\nimport resolvePathname from 'resolve-pathname'\n\nimport { splitUrl } from '../../utils'\nimport { TabbarItem } from './tabbar-item'\n\nconst STATUS_SHOW = 0\nconst STATUS_HIDE = 1\nconst STATUS_SLIDEOUT = 2\n\nconst basicTabBarClassName = 'taro-tabbar__tabbar'\nconst hideTabBarClassName = 'taro-tabbar__tabbar-hide'\nconst hideTabBarWithAnimationClassName = 'taro-tabbar__tabbar-slideout'\n\ninterface RouterHandler {\n index: string\n text: string\n url: string\n successHandler: Function\n errorHandler: Function\n animation?: boolean\n}\n\nexport interface Conf {\n color: string\n selectedColor: string\n backgroundColor: string\n borderStyle?: 'black' | 'white'\n list: TabbarList[]\n position?: 'bottom' | 'top'\n custom: boolean\n customRoutes: Record<string, string | string[]>\n mode: IH5RouterConfig['mode']\n basename: string\n homePage: string\n currentPagename: string\n}\n\ninterface TabbarList {\n pagePath: string\n text: string\n iconPath?: string\n selectedIconPath?: string\n badgeText?: string\n showRedDot?: boolean\n}\n\n@Component({\n tag: 'taro-tabbar',\n styleUrl: './style/index.scss'\n})\nexport class Tabbar implements ComponentInterface {\n private homePage = ''\n\n private customRoutes: Array<string[]> = []\n\n private tabbarPos: 'top' | 'bottom' = 'bottom'\n\n @Prop() conf: Conf\n\n @State() list: TabbarList[]\n\n @State() borderStyle: Conf['borderStyle']\n\n @State() backgroundColor: Conf['backgroundColor']\n\n @State() color: Conf['color']\n\n @State() selectedColor: Conf['selectedColor']\n\n @State() selectedIndex = -1\n\n @State() status: 0 | 1 | 2 = STATUS_SHOW\n\n @Event({\n eventName: 'longpress'\n }) onLongPress: EventEmitter\n\n @Element() tabbar: HTMLDivElement\n\n constructor () {\n const list = this.conf.list\n const customRoutes = this.conf.customRoutes\n if (\n Object.prototype.toString.call(list) !== '[object Array]' ||\n list.length < 2 ||\n list.length > 5\n ) {\n throw new Error('tabBar 配置错误')\n }\n\n this.homePage = addLeadingSlash(this.conf.homePage)\n for (let key in customRoutes) {\n const path = customRoutes[key]\n key = addLeadingSlash(key)\n if (typeof path === 'string') {\n this.customRoutes.push([key, addLeadingSlash(path)])\n } else if (path?.length > 0) {\n this.customRoutes.push(...path.map(p => [key, addLeadingSlash(p)]))\n }\n }\n\n list.forEach(item => {\n if (item.pagePath.indexOf('/') !== 0) {\n item.pagePath = '/' + item.pagePath\n }\n })\n\n this.list = list\n this.borderStyle = this.conf.borderStyle\n this.backgroundColor = this.conf.backgroundColor\n this.color = this.conf.color\n this.selectedColor = this.conf.selectedColor\n }\n\n getCurrentUrl () {\n const routePath = getCurrentPage(this.conf.mode, this.conf.basename)\n return decodeURI(routePath === '/' ? this.homePage : routePath)\n }\n\n getOriginUrl = (url: string) => {\n const customRoute = this.customRoutes.filter(([, customUrl]) => {\n const pathA = splitUrl(customUrl).path\n const pathB = splitUrl(url).path\n return pathA === pathB\n })\n return stripSuffix(customRoute.length ? customRoute[0][0] : url, '.html')\n }\n\n getSelectedIndex = (url: string) => {\n let foundIndex = -1\n this.list.forEach(({ pagePath }, idx) => {\n const pathA = splitUrl(url).path\n const pathB = splitUrl(pagePath).path\n if (pathA === pathB) {\n foundIndex = idx\n }\n })\n return foundIndex\n }\n\n switchTab = (index: number) => {\n this.selectedIndex = index\n Taro.switchTab({\n url: this.list[index].pagePath\n })\n }\n\n switchTabHandler = ({ url, successHandler, errorHandler }: RouterHandler) => {\n const currentUrl = this.getOriginUrl(this.getCurrentUrl() || this.homePage)\n const nextTab = resolvePathname(url, currentUrl)\n const foundIndex = this.getSelectedIndex(nextTab)\n\n if (foundIndex > -1) {\n this.switchTab(foundIndex)\n successHandler({\n errMsg: 'switchTab:ok'\n })\n } else {\n errorHandler({\n errMsg: `switchTab:fail page \"${nextTab}\" is not found`\n })\n }\n }\n\n routerChangeHandler = (options?) => {\n const to = options?.toLocation?.path\n let currentPage\n\n if (typeof to === 'string') {\n const routerBasename = this.conf.basename || '/'\n currentPage = stripBasename(addLeadingSlash(to || this.homePage), routerBasename) || '/'\n } else {\n currentPage = this.getCurrentUrl()\n }\n\n this.selectedIndex = this.getSelectedIndex(this.getOriginUrl(currentPage))\n }\n\n setTabBarBadgeHandler = ({ index, text, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].showRedDot = false\n list[index].badgeText = text\n successHandler({\n errMsg: 'setTabBarBadge:ok'\n })\n } else {\n errorHandler({\n errMsg: 'setTabBarBadge:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n removeTabBarBadgeHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].badgeText = null\n list[index].badgeText = null\n successHandler({\n errMsg: 'removeTabBarBadge:ok'\n })\n } else {\n errorHandler({\n errMsg: 'removeTabBarBadge:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n showTabBarRedDotHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].badgeText = null\n list[index].showRedDot = true\n successHandler({\n errMsg: 'showTabBarRedDot:ok'\n })\n } else {\n errorHandler({\n errMsg: 'showTabBarRedDot:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n hideTabBarRedDotHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].showRedDot = false\n successHandler({\n errMsg: 'hideTabBarRedDot:ok'\n })\n } else {\n errorHandler({\n errMsg: 'hideTabBarRedDot:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n showTabBarHandler = ({ successHandler }) => {\n this.status = STATUS_SHOW\n successHandler({\n errMsg: 'showTabBar:ok'\n })\n }\n\n hideTabBarHandler = ({ animation, successHandler }) => {\n this.status = animation ? STATUS_SLIDEOUT : STATUS_HIDE\n successHandler({\n errMsg: 'hideTabBar:ok'\n })\n }\n\n setTabBarStyleHandler = ({ color, selectedColor, backgroundColor, borderStyle, successHandler }) => {\n if (backgroundColor) this.backgroundColor = backgroundColor\n if (borderStyle) this.borderStyle = borderStyle\n if (color) this.color = color\n if (selectedColor) this.selectedColor = selectedColor\n successHandler({\n errMsg: 'setTabBarStyle:ok'\n })\n }\n\n setTabBarItemHandler = ({ index, iconPath, selectedIconPath, text, successHandler, errorHandler }) => {\n const list = [...this.list]\n if (index in list) {\n if (iconPath) list[index].iconPath = iconPath\n if (selectedIconPath) list[index].selectedIconPath = selectedIconPath\n if (text) list[index].text = text\n successHandler({\n errMsg: 'setTabBarItem:ok'\n })\n } else {\n errorHandler({\n errMsg: 'setTabBarItem:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n bindEvent () {\n Taro.eventCenter.on('__taroRouterChange', this.routerChangeHandler)\n Taro.eventCenter.on('__taroSwitchTab', this.switchTabHandler)\n Taro.eventCenter.on('__taroSetTabBarBadge', this.setTabBarBadgeHandler)\n Taro.eventCenter.on('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler)\n Taro.eventCenter.on('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler)\n Taro.eventCenter.on('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler)\n Taro.eventCenter.on('__taroShowTabBar', this.showTabBarHandler)\n Taro.eventCenter.on('__taroHideTabBar', this.hideTabBarHandler)\n Taro.eventCenter.on('__taroSetTabBarStyle', this.setTabBarStyleHandler)\n Taro.eventCenter.on('__taroSetTabBarItem', this.setTabBarItemHandler)\n }\n\n removeEvent () {\n Taro.eventCenter.off('__taroRouterChange', this.routerChangeHandler)\n Taro.eventCenter.off('__taroSwitchTab', this.switchTabHandler)\n Taro.eventCenter.off('__taroSetTabBarBadge', this.setTabBarBadgeHandler)\n Taro.eventCenter.off('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler)\n Taro.eventCenter.off('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler)\n Taro.eventCenter.off('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler)\n Taro.eventCenter.off('__taroShowTabBar', this.showTabBarHandler)\n Taro.eventCenter.off('__taroHideTabBar', this.hideTabBarHandler)\n Taro.eventCenter.off('__taroSetTabBarStyle', this.setTabBarStyleHandler)\n Taro.eventCenter.off('__taroSetTabBarItem', this.setTabBarItemHandler)\n }\n\n componentDidLoad () {\n this.tabbarPos = this.tabbar.nextElementSibling ? 'top' : 'bottom'\n this.bindEvent()\n this.routerChangeHandler()\n }\n\n disconnectedCallback () {\n this.removeEvent()\n }\n\n render () {\n const { tabbarPos = 'bottom' } = this\n const status = this.status\n const containerCls = classNames('weui-tabbar', {\n [`taro-tabbar__border-${this.borderStyle || 'black'}`]: true\n })\n const shouldHideTabBar = this.selectedIndex === -1 || status === STATUS_HIDE\n const shouldSlideout = status === STATUS_SLIDEOUT\n\n return (\n <Host\n class={classNames(\n basicTabBarClassName,\n `${basicTabBarClassName}-${tabbarPos}`, {\n [hideTabBarClassName]: shouldHideTabBar,\n [hideTabBarWithAnimationClassName]: shouldSlideout\n })} >\n <div\n class={containerCls}\n style={{\n backgroundColor: this.backgroundColor || '',\n height: 'inherit'\n }}\n >\n {this.list.map((item, index) => {\n const isSelected = this.selectedIndex === index\n let textColor\n let iconPath\n if (isSelected) {\n textColor = this.selectedColor || ''\n iconPath = item.selectedIconPath\n } else {\n textColor = this.color || ''\n iconPath = item.iconPath\n }\n return (\n <TabbarItem\n index={index}\n onSelect={this.switchTab.bind(this)}\n isSelected={isSelected}\n textColor={textColor}\n iconPath={iconPath}\n pagePath={item.pagePath}\n text={item.text}\n badgeText={item.badgeText}\n showRedDot={item.showRedDot}\n />\n )\n })}\n </div>\n </Host>\n )\n }\n}\n"],"version":3}