feat: update vc-tabs
							parent
							
								
									7661eafe9c
								
							
						
					
					
						commit
						132a1e58bf
					
				| 
						 | 
				
			
			@ -4,24 +4,19 @@ import TabBarRootNode from './TabBarRootNode';
 | 
			
		|||
import SaveRef from './SaveRef';
 | 
			
		||||
function noop() {}
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'InkTabBar',
 | 
			
		||||
  functional: true,
 | 
			
		||||
  render(h, context) {
 | 
			
		||||
    const { props, listeners = {} } = context;
 | 
			
		||||
    return (
 | 
			
		||||
      <SaveRef
 | 
			
		||||
        children={(saveRef, getRef) => (
 | 
			
		||||
          <TabBarRootNode saveRef={saveRef} {...props}>
 | 
			
		||||
            <TabBarTabsNode
 | 
			
		||||
              onTabClick={listeners.tabClick || noop}
 | 
			
		||||
              saveRef={saveRef}
 | 
			
		||||
              {...{ props }}
 | 
			
		||||
            />
 | 
			
		||||
            <InkTabBarNode saveRef={saveRef} getRef={getRef} {...{ props }} />
 | 
			
		||||
          </TabBarRootNode>
 | 
			
		||||
        )}
 | 
			
		||||
      />
 | 
			
		||||
    );
 | 
			
		||||
  },
 | 
			
		||||
const InkTabBar = (_, { attrs }) => {
 | 
			
		||||
  const { onTabClick = noop, ...props } = attrs;
 | 
			
		||||
  return (
 | 
			
		||||
    <SaveRef
 | 
			
		||||
      children={(saveRef, getRef) => (
 | 
			
		||||
        <TabBarRootNode saveRef={saveRef} {...props}>
 | 
			
		||||
          <TabBarTabsNode onTabClick={onTabClick} saveRef={saveRef} {...props} />
 | 
			
		||||
          <InkTabBarNode saveRef={saveRef} getRef={getRef} {...props} />
 | 
			
		||||
        </TabBarRootNode>
 | 
			
		||||
      )}
 | 
			
		||||
    />
 | 
			
		||||
  );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
InkTabBar.inheritAttrs = false;
 | 
			
		||||
export default InkTabBar;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,6 +8,7 @@ import {
 | 
			
		|||
  getActiveIndex,
 | 
			
		||||
} from './utils';
 | 
			
		||||
import BaseMixin from '../../_util/BaseMixin';
 | 
			
		||||
import createRefHooks from '../../_util/createRefHooks';
 | 
			
		||||
 | 
			
		||||
function componentDidUpdate(component, init) {
 | 
			
		||||
  const { styles = {}, panels, activeKey, direction } = component.$props;
 | 
			
		||||
| 
						 | 
				
			
			@ -120,14 +121,7 @@ export default {
 | 
			
		|||
        style={styles.inkBar}
 | 
			
		||||
        class={classes}
 | 
			
		||||
        key="inkBar"
 | 
			
		||||
        {...{
 | 
			
		||||
          directives: [
 | 
			
		||||
            {
 | 
			
		||||
              name: 'ant-ref',
 | 
			
		||||
              value: this.saveRef('inkBar'),
 | 
			
		||||
            },
 | 
			
		||||
          ],
 | 
			
		||||
        }}
 | 
			
		||||
        {...createRefHooks(this.saveRef('inkBar'))}
 | 
			
		||||
      />
 | 
			
		||||
    );
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,6 @@ import TabBarTabsNode from './TabBarTabsNode';
 | 
			
		|||
import TabBarRootNode from './TabBarRootNode';
 | 
			
		||||
import ScrollableTabBarNode from './ScrollableTabBarNode';
 | 
			
		||||
import SaveRef from './SaveRef';
 | 
			
		||||
import { getListeners } from '../../_util/props-util';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'ScrollableInkTabBar',
 | 
			
		||||
| 
						 | 
				
			
			@ -21,19 +20,14 @@ export default {
 | 
			
		|||
    'nextIcon',
 | 
			
		||||
  ],
 | 
			
		||||
  render() {
 | 
			
		||||
    const props = { ...this.$props };
 | 
			
		||||
    const listeners = getListeners(this);
 | 
			
		||||
    const { default: renderTabBarNode } = this.$scopedSlots;
 | 
			
		||||
    const { default: renderTabBarNode } = this.$slots;
 | 
			
		||||
    return (
 | 
			
		||||
      <SaveRef
 | 
			
		||||
        children={(saveRef, getRef) => (
 | 
			
		||||
          <TabBarRootNode saveRef={saveRef} {...{ props, on: listeners }}>
 | 
			
		||||
            <ScrollableTabBarNode saveRef={saveRef} getRef={getRef} {...{ props, on: listeners }}>
 | 
			
		||||
              <TabBarTabsNode
 | 
			
		||||
                saveRef={saveRef}
 | 
			
		||||
                {...{ props: { ...props, renderTabBarNode }, on: listeners }}
 | 
			
		||||
              />
 | 
			
		||||
              <InkTabBarNode saveRef={saveRef} getRef={getRef} {...{ props, on: listeners }} />
 | 
			
		||||
          <TabBarRootNode saveRef={saveRef} {...this.$attrs}>
 | 
			
		||||
            <ScrollableTabBarNode saveRef={saveRef} getRef={getRef} {...this.$attrs}>
 | 
			
		||||
              <TabBarTabsNode saveRef={saveRef} {...{ ...this.$attrs, renderTabBarNode }} />
 | 
			
		||||
              <InkTabBarNode saveRef={saveRef} getRef={getRef} {...this.$attrs} />
 | 
			
		||||
            </ScrollableTabBarNode>
 | 
			
		||||
          </TabBarRootNode>
 | 
			
		||||
        )}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,21 +3,18 @@ import TabBarRootNode from './TabBarRootNode';
 | 
			
		|||
import TabBarTabsNode from './TabBarTabsNode';
 | 
			
		||||
import SaveRef from './SaveRef';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'ScrollableTabBar',
 | 
			
		||||
  functional: true,
 | 
			
		||||
  render(h, context) {
 | 
			
		||||
    const { props, listeners = {} } = context;
 | 
			
		||||
    return (
 | 
			
		||||
      <SaveRef
 | 
			
		||||
        children={(saveRef, getRef) => (
 | 
			
		||||
          <TabBarRootNode saveRef={saveRef} {...{ props, on: listeners }}>
 | 
			
		||||
            <ScrollableTabBarNode saveRef={saveRef} getRef={getRef} {...{ props, on: listeners }}>
 | 
			
		||||
              <TabBarTabsNode saveRef={saveRef} {...{ props, on: listeners }} />
 | 
			
		||||
            </ScrollableTabBarNode>
 | 
			
		||||
          </TabBarRootNode>
 | 
			
		||||
        )}
 | 
			
		||||
      />
 | 
			
		||||
    );
 | 
			
		||||
  },
 | 
			
		||||
const ScrollableTabBar = (_, { attrs }) => {
 | 
			
		||||
  return (
 | 
			
		||||
    <SaveRef
 | 
			
		||||
      children={(saveRef, getRef) => (
 | 
			
		||||
        <TabBarRootNode saveRef={saveRef} {...attrs}>
 | 
			
		||||
          <ScrollableTabBarNode saveRef={saveRef} getRef={getRef} {...attrs}>
 | 
			
		||||
            <TabBarTabsNode saveRef={saveRef} {...attrs} />
 | 
			
		||||
          </ScrollableTabBarNode>
 | 
			
		||||
        </TabBarRootNode>
 | 
			
		||||
      )}
 | 
			
		||||
    />
 | 
			
		||||
  );
 | 
			
		||||
};
 | 
			
		||||
ScrollableTabBar.inheritAttrs = false;
 | 
			
		||||
export default ScrollableTabBar;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,9 @@ import debounce from 'lodash/debounce';
 | 
			
		|||
import ResizeObserver from 'resize-observer-polyfill';
 | 
			
		||||
import PropTypes from '../../_util/vue-types';
 | 
			
		||||
import BaseMixin from '../../_util/BaseMixin';
 | 
			
		||||
import { getComponentFromProp } from '../../_util/props-util';
 | 
			
		||||
import { getComponent, getSlot } from '../../_util/props-util';
 | 
			
		||||
import { setTransform, isTransform3dSupported } from './utils';
 | 
			
		||||
import createRefHooks from '../../_util/createRefHooks';
 | 
			
		||||
 | 
			
		||||
function noop() {}
 | 
			
		||||
export default {
 | 
			
		||||
| 
						 | 
				
			
			@ -202,9 +203,6 @@ export default {
 | 
			
		|||
    },
 | 
			
		||||
 | 
			
		||||
    setNext(v) {
 | 
			
		||||
      if (!v) {
 | 
			
		||||
        // debugger
 | 
			
		||||
      }
 | 
			
		||||
      if (this.next !== v) {
 | 
			
		||||
        this.next = v;
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			@ -275,8 +273,8 @@ export default {
 | 
			
		|||
  render() {
 | 
			
		||||
    const { next, prev } = this;
 | 
			
		||||
    const { prefixCls, scrollAnimated, navWrapper } = this.$props;
 | 
			
		||||
    const prevIcon = getComponentFromProp(this, 'prevIcon');
 | 
			
		||||
    const nextIcon = getComponentFromProp(this, 'nextIcon');
 | 
			
		||||
    const prevIcon = getComponent(this, 'prevIcon');
 | 
			
		||||
    const nextIcon = getComponent(this, 'nextIcon');
 | 
			
		||||
    const showNextPrev = prev || next;
 | 
			
		||||
 | 
			
		||||
    const prevButton = (
 | 
			
		||||
| 
						 | 
				
			
			@ -321,41 +319,14 @@ export default {
 | 
			
		|||
          [`${prefixCls}-nav-container-scrolling`]: showNextPrev,
 | 
			
		||||
        }}
 | 
			
		||||
        key="container"
 | 
			
		||||
        {...{
 | 
			
		||||
          directives: [
 | 
			
		||||
            {
 | 
			
		||||
              name: 'ant-ref',
 | 
			
		||||
              value: this.saveRef('container'),
 | 
			
		||||
            },
 | 
			
		||||
          ],
 | 
			
		||||
        }}
 | 
			
		||||
        {...createRefHooks(this.saveRef('container'))}
 | 
			
		||||
      >
 | 
			
		||||
        {prevButton}
 | 
			
		||||
        {nextButton}
 | 
			
		||||
        <div
 | 
			
		||||
          class={`${prefixCls}-nav-wrap`}
 | 
			
		||||
          {...{
 | 
			
		||||
            directives: [
 | 
			
		||||
              {
 | 
			
		||||
                name: 'ant-ref',
 | 
			
		||||
                value: this.saveRef('navWrap'),
 | 
			
		||||
              },
 | 
			
		||||
            ],
 | 
			
		||||
          }}
 | 
			
		||||
        >
 | 
			
		||||
        <div class={`${prefixCls}-nav-wrap`} {...createRefHooks(this.saveRef('navWrap'))}>
 | 
			
		||||
          <div class={`${prefixCls}-nav-scroll`}>
 | 
			
		||||
            <div
 | 
			
		||||
              class={navClasses}
 | 
			
		||||
              {...{
 | 
			
		||||
                directives: [
 | 
			
		||||
                  {
 | 
			
		||||
                    name: 'ant-ref',
 | 
			
		||||
                    value: this.saveRef('nav'),
 | 
			
		||||
                  },
 | 
			
		||||
                ],
 | 
			
		||||
              }}
 | 
			
		||||
            >
 | 
			
		||||
              {navWrapper(this.$slots.default)}
 | 
			
		||||
            <div class={navClasses} {...createRefHooks(this.saveRef('nav'))}>
 | 
			
		||||
              {navWrapper(getSlot(this))}
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,7 @@
 | 
			
		|||
import PropTypes from '../../_util/vue-types';
 | 
			
		||||
import KeyCode from '../../_util/KeyCode';
 | 
			
		||||
import createRefHooks from '../../_util/createRefHooks';
 | 
			
		||||
import { getSlot } from '../../_util/props-util';
 | 
			
		||||
 | 
			
		||||
const sentinelStyle = { width: 0, height: 0, overflow: 'hidden', position: 'absolute' };
 | 
			
		||||
export default {
 | 
			
		||||
| 
						 | 
				
			
			@ -31,19 +33,12 @@ export default {
 | 
			
		|||
    return (
 | 
			
		||||
      <div
 | 
			
		||||
        tabIndex={0}
 | 
			
		||||
        {...{
 | 
			
		||||
          directives: [
 | 
			
		||||
            {
 | 
			
		||||
              name: 'ant-ref',
 | 
			
		||||
              value: setRef,
 | 
			
		||||
            },
 | 
			
		||||
          ],
 | 
			
		||||
        }}
 | 
			
		||||
        {...createRefHooks(setRef)}
 | 
			
		||||
        style={sentinelStyle}
 | 
			
		||||
        onKeydown={this.onKeyDown}
 | 
			
		||||
        role="presentation"
 | 
			
		||||
      >
 | 
			
		||||
        {this.$slots.default}
 | 
			
		||||
        {getSlot(this)}
 | 
			
		||||
      </div>
 | 
			
		||||
    );
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,19 +1,16 @@
 | 
			
		|||
import TabBarRootNode from './TabBarRootNode';
 | 
			
		||||
import TabBarTabsNode from './TabBarTabsNode';
 | 
			
		||||
import SaveRef from './SaveRef';
 | 
			
		||||
import { getAttrs, getListeners } from '../../_util/props-util';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'TabBar',
 | 
			
		||||
  inheritAttrs: false,
 | 
			
		||||
  render() {
 | 
			
		||||
    const props = getAttrs(this);
 | 
			
		||||
    const listeners = getListeners(this);
 | 
			
		||||
    return (
 | 
			
		||||
      <SaveRef
 | 
			
		||||
        children={saveRef => (
 | 
			
		||||
          <TabBarRootNode saveRef={saveRef} {...{ props, on: listeners }}>
 | 
			
		||||
            <TabBarTabsNode saveRef={saveRef} {...{ props, on: listeners }} />
 | 
			
		||||
          <TabBarRootNode saveRef={saveRef} {...this.$attrs}>
 | 
			
		||||
            <TabBarTabsNode saveRef={saveRef} {...this.$attrs} />
 | 
			
		||||
          </TabBarRootNode>
 | 
			
		||||
        )}
 | 
			
		||||
      />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
import { cloneElement } from '../../_util/vnode';
 | 
			
		||||
import PropTypes from '../../_util/vue-types';
 | 
			
		||||
import BaseMixin from '../../_util/BaseMixin';
 | 
			
		||||
import createRefHooks from '../../_util/createRefHooks';
 | 
			
		||||
function noop() {}
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'TabBarRootNode',
 | 
			
		||||
| 
						 | 
				
			
			@ -11,6 +12,7 @@ export default {
 | 
			
		|||
    prefixCls: PropTypes.string.def(''),
 | 
			
		||||
    tabBarPosition: PropTypes.string.def('top'),
 | 
			
		||||
    extraContent: PropTypes.any,
 | 
			
		||||
    onKeydown: PropTypes.func,
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    onKeyDown(e) {
 | 
			
		||||
| 
						 | 
				
			
			@ -45,14 +47,7 @@ export default {
 | 
			
		|||
        class={cls}
 | 
			
		||||
        tabIndex="0"
 | 
			
		||||
        onKeydown={onKeyDown}
 | 
			
		||||
        {...{
 | 
			
		||||
          directives: [
 | 
			
		||||
            {
 | 
			
		||||
              name: 'ant-ref',
 | 
			
		||||
              value: this.saveRef('root'),
 | 
			
		||||
            },
 | 
			
		||||
          ],
 | 
			
		||||
        }}
 | 
			
		||||
        {...createRefHooks(this.saveRef('root'))}
 | 
			
		||||
      >
 | 
			
		||||
        {newChildren}
 | 
			
		||||
      </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,7 @@
 | 
			
		|||
// based on rc-tabs 9.7.0
 | 
			
		||||
import ref from 'vue-ref';
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
import Tabs from './Tabs';
 | 
			
		||||
import TabPane from './TabPane';
 | 
			
		||||
import TabContent from './TabContent';
 | 
			
		||||
 | 
			
		||||
Vue.use(ref, { name: 'ant-ref' });
 | 
			
		||||
 | 
			
		||||
export default Tabs;
 | 
			
		||||
export { TabPane, TabContent };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue