@opentiny/vue-renderless 3.5.0 → 3.6.0-alpha.1

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.
package/tabs/index.js CHANGED
@@ -52,7 +52,7 @@ export var calcMorePanes = function calcMorePanes(_ref3) {
52
52
  var el = parent.$el;
53
53
  var tabs = el.querySelectorAll('.tiny-tabs__item');
54
54
  if (tabs && tabs.length) {
55
- var tabsHeaderWidth = el.querySelector('.tiny-tabs__nav-scroll').clientWidth - 76;
55
+ var tabsHeaderWidth = el.querySelector('.tiny-tabs__nav-scroll').clientWidth + 15;
56
56
  var tabsAllWidth = 0;
57
57
  for (var i = 0, length = tabs.length; i < length; i++) {
58
58
  var width = tabs[i].offsetWidth;
@@ -65,15 +65,35 @@ export var calcMorePanes = function calcMorePanes(_ref3) {
65
65
  }
66
66
  };
67
67
  };
68
- export var handleTabClick = function handleTabClick(_ref4) {
69
- var api = _ref4.api,
70
- emit = _ref4.emit;
68
+ export var calcExpandPanes = function calcExpandPanes(_ref4) {
69
+ var parent = _ref4.parent,
70
+ props = _ref4.props,
71
+ state = _ref4.state;
72
+ return function () {
73
+ if (!props.showExpandTabs) {
74
+ return;
75
+ }
76
+ var el = parent.$el;
77
+ var tabsHeader = el.querySelector('.tiny-mobile-tabs__header');
78
+ if (tabsHeader) {
79
+ state.expandPanesWidth = tabsHeader.clientWidth;
80
+ }
81
+ };
82
+ };
83
+ export var handleTabClick = function handleTabClick(_ref5) {
84
+ var api = _ref5.api,
85
+ emit = _ref5.emit,
86
+ props = _ref5.props,
87
+ refs = _ref5.refs;
71
88
  return function (pane, tabName, event) {
72
89
  if (pane.disabled) {
73
90
  return;
74
91
  }
75
92
  api.setCurrentName(tabName);
76
93
  emit('click', pane, event);
94
+ if (props.showExpandTabs) {
95
+ refs.nav && refs.nav.expandTabHide();
96
+ }
77
97
  };
78
98
  };
79
99
  export var handleTabRemove = function handleTabRemove(emit) {
@@ -92,11 +112,11 @@ export var handleTabAdd = function handleTabAdd(emit) {
92
112
  emit('add');
93
113
  };
94
114
  };
95
- export var setCurrentName = function setCurrentName(_ref5) {
96
- var api = _ref5.api,
97
- props = _ref5.props,
98
- refs = _ref5.refs,
99
- state = _ref5.state;
115
+ export var setCurrentName = function setCurrentName(_ref6) {
116
+ var api = _ref6.api,
117
+ props = _ref6.props,
118
+ refs = _ref6.refs,
119
+ state = _ref6.state;
100
120
  return function (value) {
101
121
  api.changeDirection(state.currentName);
102
122
  if (state.currentName !== value && props.beforeLeave) {
@@ -114,18 +134,18 @@ export var setCurrentName = function setCurrentName(_ref5) {
114
134
  }
115
135
  };
116
136
  };
117
- export var changeCurrentName = function changeCurrentName(_ref6) {
118
- var emit = _ref6.emit,
119
- state = _ref6.state;
137
+ export var changeCurrentName = function changeCurrentName(_ref7) {
138
+ var emit = _ref7.emit,
139
+ state = _ref7.state;
120
140
  return function (value) {
121
141
  state.currentName = value;
122
142
  emit('update:modelValue', value);
123
143
  };
124
144
  };
125
- export var created = function created(_ref7) {
126
- var api = _ref7.api,
127
- parent = _ref7.parent,
128
- state = _ref7.state;
145
+ export var created = function created(_ref8) {
146
+ var api = _ref8.api,
147
+ parent = _ref8.parent,
148
+ state = _ref8.state;
129
149
  return function () {
130
150
  if (!state.currentName) {
131
151
  state.currentIndex = 0;
@@ -135,9 +155,9 @@ export var created = function created(_ref7) {
135
155
  parent.$on('tab-nav-update', api.calcPaneInstances.bind(null, true));
136
156
  };
137
157
  };
138
- export var changeDirection = function changeDirection(_ref8) {
139
- var props = _ref8.props,
140
- state = _ref8.state;
158
+ export var changeDirection = function changeDirection(_ref9) {
159
+ var props = _ref9.props,
160
+ state = _ref9.state;
141
161
  return function (currentName) {
142
162
  state.panes.forEach(function (item, index) {
143
163
  if (item.state.paneName === currentName && state.currentIndex !== index) {
@@ -149,21 +169,21 @@ export var changeDirection = function changeDirection(_ref8) {
149
169
  });
150
170
  };
151
171
  };
152
- export var handleTabDragStart = function handleTabDragStart(_ref9) {
153
- var emit = _ref9.emit;
172
+ export var handleTabDragStart = function handleTabDragStart(_ref10) {
173
+ var emit = _ref10.emit;
154
174
  return function (event) {
155
175
  emit('tab-drag-start', event);
156
176
  };
157
177
  };
158
- export var handleTabDragOver = function handleTabDragOver(_ref10) {
159
- var emit = _ref10.emit;
178
+ export var handleTabDragOver = function handleTabDragOver(_ref11) {
179
+ var emit = _ref11.emit;
160
180
  return function (event) {
161
181
  emit('tab-drag-over', event);
162
182
  };
163
183
  };
164
- export var handleTabDragEnd = function handleTabDragEnd(_ref11) {
165
- var state = _ref11.state,
166
- emit = _ref11.emit;
184
+ export var handleTabDragEnd = function handleTabDragEnd(_ref12) {
185
+ var state = _ref12.state,
186
+ emit = _ref12.emit;
167
187
  return function (event) {
168
188
  var oldDraggableIndex = event.oldDraggableIndex,
169
189
  newDraggableIndex = event.newDraggableIndex;
package/tabs/vue.js CHANGED
@@ -1,4 +1,4 @@
1
- import { calcMorePanes, calcPaneInstances, handleTabClick, handleTabAdd, handleTabRemove, setCurrentName, changeCurrentName, created, changeDirection, handleTabDragStart, handleTabDragOver, handleTabDragEnd } from './index';
1
+ import { calcMorePanes, calcExpandPanes, calcPaneInstances, handleTabClick, handleTabAdd, handleTabRemove, setCurrentName, changeCurrentName, created, changeDirection, handleTabDragStart, handleTabDragOver, handleTabDragEnd } from './index';
2
2
  export var api = ['state', 'handleTabAdd', 'calcPaneInstances', 'handleTabRemove', 'handleTabClick', 'handleTabDragStart', 'handleTabDragOver', 'handleTabDragEnd', 'setCurrentName', 'getNavRefs'];
3
3
  var initState = function initState(_ref) {
4
4
  var reactive = _ref.reactive,
@@ -14,7 +14,8 @@ var initState = function initState(_ref) {
14
14
  deltaY: 0,
15
15
  offsetX: 0,
16
16
  offsetY: 0,
17
- direction: ''
17
+ direction: '',
18
+ expandPanesWidth: ''
18
19
  });
19
20
  };
20
21
  var initWatcher = function initWatcher(_ref2) {
@@ -84,6 +85,11 @@ export var renderless = function renderless(props, _ref3, _ref4) {
84
85
  props: props,
85
86
  state: state
86
87
  }),
88
+ calcExpandPanes: calcExpandPanes({
89
+ parent: parent,
90
+ props: props,
91
+ state: state
92
+ }),
87
93
  calcPaneInstances: calcPaneInstances({
88
94
  constants: constants,
89
95
  parent: parent,
@@ -102,7 +108,9 @@ export var renderless = function renderless(props, _ref3, _ref4) {
102
108
  }),
103
109
  handleTabClick: handleTabClick({
104
110
  api: api,
105
- emit: emit
111
+ emit: emit,
112
+ props: props,
113
+ refs: refs
106
114
  }),
107
115
  setCurrentName: setCurrentName({
108
116
  api: api,
@@ -132,10 +140,12 @@ export var renderless = function renderless(props, _ref3, _ref4) {
132
140
  onMounted(function () {
133
141
  api.calcPaneInstances();
134
142
  api.calcMorePanes();
143
+ api.calcExpandPanes();
135
144
  });
136
145
  onUpdated(function () {
137
146
  api.calcPaneInstances();
138
147
  api.calcMorePanes();
148
+ api.calcExpandPanes();
139
149
  });
140
150
  return api;
141
151
  };
package/tag/index.js CHANGED
@@ -1,12 +1,17 @@
1
- export var handleClose = function handleClose(emit) {
1
+ export var handleClose = function handleClose(_ref) {
2
+ var emit = _ref.emit,
3
+ props = _ref.props;
2
4
  return function (event) {
3
5
  event.stopPropagation();
4
- emit('close', event);
6
+ var close = function close() {
7
+ return emit('close', event);
8
+ };
9
+ props.beforeDelete ? props.beforeDelete(close) : close();
5
10
  };
6
11
  };
7
- export var handleClick = function handleClick(_ref) {
8
- var emit = _ref.emit,
9
- parent = _ref.parent;
12
+ export var handleClick = function handleClick(_ref2) {
13
+ var emit = _ref2.emit,
14
+ parent = _ref2.parent;
10
15
  return function (event) {
11
16
  parent.$parent && parent.$parent.tagSelectable && event.stopPropagation();
12
17
  emit('click', event);
package/tag/vue.js CHANGED
@@ -4,7 +4,10 @@ export var renderless = function renderless(props, hooks, _ref) {
4
4
  var emit = _ref.emit,
5
5
  parent = _ref.parent;
6
6
  return {
7
- handleClose: handleClose(emit),
7
+ handleClose: handleClose({
8
+ emit: emit,
9
+ props: props
10
+ }),
8
11
  handleClick: handleClick({
9
12
  emit: emit,
10
13
  parent: parent
package/wheel/index.js ADDED
@@ -0,0 +1,201 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import { cloneDeep } from '@opentiny/vue-renderless/chart-core/deps/utils';
3
+ export var created = function created(api) {
4
+ return function () {
5
+ api.loadPickerData();
6
+ api.loadWheels();
7
+ };
8
+ };
9
+ export var loadPickerData = function loadPickerData(_ref) {
10
+ var props = _ref.props,
11
+ state = _ref.state;
12
+ return function () {
13
+ state.dataSource = cloneDeep(props.dataSource);
14
+ state.defaultSelectedIndexs = cloneDeep(props.defaultSelectedIndexs);
15
+ var level_1 = state.dataSource.map(function (_ref2) {
16
+ var label = _ref2.label;
17
+ return {
18
+ label: label
19
+ };
20
+ });
21
+ var level_n = getNextLevel([], state.dataSource, state.defaultSelectedIndexs, 0);
22
+ if (level_n.length === 0) {
23
+ state.pickerData = [level_1];
24
+ } else {
25
+ state.pickerData = [level_1].concat(_toConsumableArray(level_n));
26
+ }
27
+ };
28
+ };
29
+ export var getNextLevel = function getNextLevel(levelItems, children, nextIndexs, start) {
30
+ var _children$nextIndexs$, _children$nextIndexs$2;
31
+ var levelItem = (_children$nextIndexs$ = (_children$nextIndexs$2 = children[nextIndexs[start]]) === null || _children$nextIndexs$2 === void 0 ? void 0 : _children$nextIndexs$2.children) !== null && _children$nextIndexs$ !== void 0 ? _children$nextIndexs$ : [];
32
+ if (start !== nextIndexs.length - 1) {
33
+ levelItems.push(levelItem);
34
+ return getNextLevel(levelItems, levelItem, nextIndexs, ++start);
35
+ } else {
36
+ return levelItems;
37
+ }
38
+ };
39
+ export var wheelChanged = function wheelChanged(_ref3) {
40
+ var api = _ref3.api,
41
+ state = _ref3.state;
42
+ return function (newIndexs, oldIndexs) {
43
+ if (newIndexs.length > 1) {
44
+ newIndexs.forEach(function (ii, ri) {
45
+ if (newIndexs[ri] !== oldIndexs[ri] && ri !== newIndexs.length - 1) {
46
+ var children = getChildren(state.dataSource, newIndexs, 0, ri);
47
+ state.pickerData.splice(ri + 1, 1, children);
48
+ }
49
+ });
50
+ }
51
+ api.wheelsTo(newIndexs);
52
+ api.changeWheelItemStyle(state.pickerData, newIndexs);
53
+ };
54
+ };
55
+ export var getChildren = function getChildren(levelItems, newIndexs, start, maxLoop) {
56
+ var _levelItems$newIndexs, _levelItems$newIndexs2;
57
+ var levelItem = (_levelItems$newIndexs = (_levelItems$newIndexs2 = levelItems[newIndexs[start]]) === null || _levelItems$newIndexs2 === void 0 ? void 0 : _levelItems$newIndexs2.children) !== null && _levelItems$newIndexs !== void 0 ? _levelItems$newIndexs : [];
58
+ if (start !== maxLoop) {
59
+ return getChildren(levelItem, newIndexs, ++start, maxLoop);
60
+ } else {
61
+ return levelItem;
62
+ }
63
+ };
64
+ export var wheelsTo = function wheelsTo(_ref4) {
65
+ var api = _ref4.api,
66
+ state = _ref4.state,
67
+ nextTick = _ref4.nextTick;
68
+ return function (indexs) {
69
+ nextTick(function () {
70
+ state.wheels.forEach(function (wheel, i) {
71
+ wheel.wheelTo(indexs[i], 0);
72
+ api.refreshWheel(wheel);
73
+ });
74
+ });
75
+ };
76
+ };
77
+ export var refreshWheel = function refreshWheel(nextTick) {
78
+ return function (wheel) {
79
+ nextTick(function () {
80
+ wheel.refresh();
81
+ });
82
+ };
83
+ };
84
+ export var loadWheels = function loadWheels(_ref5) {
85
+ var api = _ref5.api,
86
+ props = _ref5.props,
87
+ state = _ref5.state,
88
+ nextTick = _ref5.nextTick,
89
+ refs = _ref5.refs;
90
+ return function (wheel) {
91
+ if (state.wheels.length === 0) {
92
+ nextTick(function () {
93
+ state.wheels = [];
94
+ var wheelWrapper = refs.wheelWrapper;
95
+ if (props.hasFooter) {
96
+ for (var i = 0; i < state.pickerData.length; i++) {
97
+ api.createWheelHasFooter(wheelWrapper, i);
98
+ }
99
+ } else {
100
+ api.createWheelNoFooter(wheelWrapper);
101
+ }
102
+ });
103
+ }
104
+ };
105
+ };
106
+ export var createWheelHasFooter = function createWheelHasFooter(_ref6) {
107
+ var api = _ref6.api,
108
+ state = _ref6.state,
109
+ emit = _ref6.emit,
110
+ BScroll = _ref6.BScroll;
111
+ return function (wheelWrapper, i) {
112
+ var wheels = state.wheels;
113
+ if (!wheels[i]) {
114
+ wheels[i] = state.wheels[i] = new BScroll(wheelWrapper.children[i], {
115
+ wheel: {
116
+ selectedIndex: state.defaultSelectedIndexs[i],
117
+ wheelWrapperClass: 'wheel-scroll',
118
+ wheelItemClass: 'wheel-item'
119
+ },
120
+ probeType: 3
121
+ });
122
+ state.prevSelectedIndexs = state.defaultSelectedIndexs;
123
+ wheels[i].on('wheelIndexChanged', function () {
124
+ var currentSelectedIndex = wheels[i].getSelectedIndex();
125
+ var currentSelectedIndexs = [].concat(_toConsumableArray(state.prevSelectedIndexs.slice(0, i)), [currentSelectedIndex], _toConsumableArray(new Array(state.defaultSelectedIndexs.length - i - 1).fill(0)));
126
+ api.wheelChanged(currentSelectedIndexs, state.prevSelectedIndexs);
127
+ state.prevSelectedIndexs = currentSelectedIndexs;
128
+ var selectedLabels = [];
129
+ state.pickerData.forEach(function (data, i) {
130
+ var _data$index;
131
+ var index = currentSelectedIndexs[i];
132
+ if ((_data$index = data[index]) !== null && _data$index !== void 0 && _data$index.label) {
133
+ var _data$index2;
134
+ selectedLabels.push((_data$index2 = data[index]) === null || _data$index2 === void 0 ? void 0 : _data$index2.label);
135
+ }
136
+ });
137
+ emit('change', currentSelectedIndexs, selectedLabels.join(' '));
138
+ });
139
+ api.wheelsTo(state.defaultSelectedIndexs);
140
+ api.changeWheelItemStyle(state.pickerData, state.defaultSelectedIndexs);
141
+ } else {
142
+ wheels[i].refresh();
143
+ }
144
+ return wheels[i];
145
+ };
146
+ };
147
+ export var createWheelNoFooter = function createWheelNoFooter(_ref7) {
148
+ var api = _ref7.api,
149
+ state = _ref7.state,
150
+ BScroll = _ref7.BScroll;
151
+ return function (wheelWrapper) {
152
+ var wheels = state.wheels;
153
+ if (!wheels[0]) {
154
+ wheels[0] = state.wheels[0] = new BScroll(wheelWrapper.children[0], {
155
+ probeType: 3,
156
+ click: true
157
+ });
158
+ api.changeWheelItemStyle(state.pickerData, state.defaultSelectedIndexs);
159
+ api.refreshWheel(wheels[0]);
160
+ } else {
161
+ wheels[0].refresh();
162
+ }
163
+ return wheels[0];
164
+ };
165
+ };
166
+ export var changeWheelItemStyle = function changeWheelItemStyle(state) {
167
+ return function (pickerData, currentSelectedIndexs) {
168
+ pickerData.forEach(function (item, index) {
169
+ state.pickerData[index] = item.map(function (rItem, i) {
170
+ rItem.selected = i === currentSelectedIndexs[index];
171
+ return rItem;
172
+ });
173
+ });
174
+ };
175
+ };
176
+ export var dealWheels = function dealWheels(state) {
177
+ return function () {
178
+ state.wheels.forEach(function (wheel) {
179
+ wheel.destroy();
180
+ });
181
+ state.wheels = [];
182
+ state.pickerData = [];
183
+ state.prevSelectedIndexs = [];
184
+ state.defaultSelectedIndexs = [];
185
+ };
186
+ };
187
+ export var clickWheelItem = function clickWheelItem(_ref8) {
188
+ var api = _ref8.api,
189
+ state = _ref8.state,
190
+ emit = _ref8.emit;
191
+ return function (index) {
192
+ api.changeWheelItemStyle(state.pickerData, [index]);
193
+ var rItem = state.pickerData[0][index];
194
+ if (state.defaultSelectedIndexs[0] !== index) {
195
+ var selectedLabel = rItem === null || rItem === void 0 ? void 0 : rItem.label;
196
+ emit('clickWheelItem', [index], selectedLabel);
197
+ } else {
198
+ emit('clickWheelItem', [], '');
199
+ }
200
+ };
201
+ };
package/wheel/vue.js ADDED
@@ -0,0 +1,110 @@
1
+ import { created, loadPickerData, wheelChanged, changeWheelItemStyle, loadWheels, createWheelHasFooter, createWheelNoFooter, wheelsTo, refreshWheel, dealWheels, clickWheelItem } from './index';
2
+ export var api = ['state', 'created', 'loadPickerData', 'wheelChanged', 'changeWheelItemStyle', 'loadWheels', 'createWheelHasFooter', 'createWheelNoFooter', 'wheelsTo', 'refreshWheel', 'dealWheels', 'clickWheelItem'];
3
+ var initState = function initState(reactive) {
4
+ var state = reactive({
5
+ dataSource: [],
6
+ defaultSelectedIndexs: [],
7
+ pickerData: [],
8
+ wheels: [],
9
+ prevSelectedIndexs: []
10
+ });
11
+ return state;
12
+ };
13
+ var initApi = function initApi(_ref) {
14
+ var api = _ref.api,
15
+ props = _ref.props,
16
+ state = _ref.state,
17
+ emit = _ref.emit,
18
+ nextTick = _ref.nextTick,
19
+ refs = _ref.refs,
20
+ BScroll = _ref.BScroll;
21
+ Object.assign(api, {
22
+ state: state,
23
+ created: created(api),
24
+ loadPickerData: loadPickerData({
25
+ props: props,
26
+ state: state
27
+ }),
28
+ wheelChanged: wheelChanged({
29
+ api: api,
30
+ state: state
31
+ }),
32
+ changeWheelItemStyle: changeWheelItemStyle(state),
33
+ loadWheels: loadWheels({
34
+ api: api,
35
+ props: props,
36
+ state: state,
37
+ nextTick: nextTick,
38
+ refs: refs
39
+ }),
40
+ createWheelHasFooter: createWheelHasFooter({
41
+ api: api,
42
+ state: state,
43
+ emit: emit,
44
+ BScroll: BScroll
45
+ }),
46
+ createWheelNoFooter: createWheelNoFooter({
47
+ api: api,
48
+ state: state,
49
+ BScroll: BScroll
50
+ }),
51
+ wheelsTo: wheelsTo({
52
+ api: api,
53
+ state: state,
54
+ nextTick: nextTick
55
+ }),
56
+ refreshWheel: refreshWheel(nextTick),
57
+ dealWheels: dealWheels(state),
58
+ clickWheelItem: clickWheelItem({
59
+ api: api,
60
+ state: state,
61
+ emit: emit
62
+ })
63
+ });
64
+ };
65
+ var initWatch = function initWatch(_ref2) {
66
+ var watch = _ref2.watch,
67
+ api = _ref2.api,
68
+ props = _ref2.props,
69
+ state = _ref2.state,
70
+ nextTick = _ref2.nextTick;
71
+ watch(function () {
72
+ return props.defaultSelectedIndexs;
73
+ }, function () {
74
+ api.dealWheels(state);
75
+ nextTick(function () {
76
+ api.created(api);
77
+ });
78
+ });
79
+ };
80
+ export var renderless = function renderless(props, _ref3, _ref4, _ref5) {
81
+ var onMounted = _ref3.onMounted,
82
+ reactive = _ref3.reactive,
83
+ watch = _ref3.watch;
84
+ var emit = _ref4.emit,
85
+ nextTick = _ref4.nextTick,
86
+ refs = _ref4.refs;
87
+ var BScroll = _ref5.BScroll;
88
+ var api = {};
89
+ var state = initState(reactive);
90
+ initApi({
91
+ api: api,
92
+ props: props,
93
+ state: state,
94
+ emit: emit,
95
+ nextTick: nextTick,
96
+ refs: refs,
97
+ BScroll: BScroll
98
+ });
99
+ initWatch({
100
+ watch: watch,
101
+ api: api,
102
+ props: props,
103
+ state: state,
104
+ nextTick: nextTick
105
+ });
106
+ onMounted(function () {
107
+ api.created(api);
108
+ });
109
+ return api;
110
+ };