@varlet/ui 2.11.0 → 2.11.1-alpha.1684493331817
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/es/image-preview/ImagePreview.mjs +9 -14
- package/es/index.bundle.mjs +1 -1
- package/es/index.mjs +1 -1
- package/es/picker/Picker.mjs +78 -47
- package/es/utils/elements.mjs +10 -4
- package/es/varlet.esm.js +6728 -6722
- package/highlight/web-types.en-US.json +1 -1
- package/highlight/web-types.zh-CN.json +1 -1
- package/lib/varlet.cjs.js +85 -62
- package/package.json +6 -6
- package/umd/varlet.js +4 -4
|
@@ -163,7 +163,7 @@ var __sfc__ = defineComponent({
|
|
|
163
163
|
var canSwipe = ref(true);
|
|
164
164
|
var startTouch = null;
|
|
165
165
|
var prevTouch = null;
|
|
166
|
-
var
|
|
166
|
+
var closeRunner = null;
|
|
167
167
|
|
|
168
168
|
var getDistance = (touch, target) => {
|
|
169
169
|
var {
|
|
@@ -180,7 +180,7 @@ var __sfc__ = defineComponent({
|
|
|
180
180
|
var createVarTouch = (touches, target) => ({
|
|
181
181
|
clientX: touches.clientX,
|
|
182
182
|
clientY: touches.clientY,
|
|
183
|
-
timestamp:
|
|
183
|
+
timestamp: performance.now(),
|
|
184
184
|
target
|
|
185
185
|
});
|
|
186
186
|
|
|
@@ -217,22 +217,20 @@ var __sfc__ = defineComponent({
|
|
|
217
217
|
return false;
|
|
218
218
|
}
|
|
219
219
|
|
|
220
|
-
return getDistance(startTouch, prevTouch) <= DISTANCE_OFFSET &&
|
|
220
|
+
return getDistance(startTouch, prevTouch) <= DISTANCE_OFFSET && performance.now() - prevTouch.timestamp < TAP_DELAY && (target === startTouch.target || target.parentNode === startTouch.target);
|
|
221
221
|
};
|
|
222
222
|
|
|
223
223
|
var handleTouchend = event => {
|
|
224
|
-
|
|
225
|
-
|
|
224
|
+
var isTap = isTapTouch(event.target);
|
|
225
|
+
closeRunner = window.setTimeout(() => {
|
|
226
|
+
isTap && close();
|
|
226
227
|
startTouch = null;
|
|
227
228
|
}, EVENT_DELAY);
|
|
228
229
|
};
|
|
229
230
|
|
|
230
231
|
var handleTouchstart = event => {
|
|
231
|
-
|
|
232
|
-
var
|
|
233
|
-
touches
|
|
234
|
-
} = event;
|
|
235
|
-
var currentTouch = createVarTouch(touches[0], event.currentTarget);
|
|
232
|
+
closeRunner && window.clearTimeout(closeRunner);
|
|
233
|
+
var currentTouch = createVarTouch(event.touches[0], event.currentTarget);
|
|
236
234
|
startTouch = currentTouch;
|
|
237
235
|
|
|
238
236
|
if (isDoubleTouch(currentTouch)) {
|
|
@@ -313,10 +311,7 @@ var __sfc__ = defineComponent({
|
|
|
313
311
|
}
|
|
314
312
|
|
|
315
313
|
var target = event.currentTarget;
|
|
316
|
-
var
|
|
317
|
-
touches
|
|
318
|
-
} = event;
|
|
319
|
-
var currentTouch = createVarTouch(touches[0], target);
|
|
314
|
+
var currentTouch = createVarTouch(event.touches[0], target);
|
|
320
315
|
|
|
321
316
|
if (scale.value > 1) {
|
|
322
317
|
var moveX = currentTouch.clientX - prevTouch.clientX;
|
package/es/index.bundle.mjs
CHANGED
|
@@ -241,7 +241,7 @@ import './time-picker/style/index.mjs'
|
|
|
241
241
|
import './tooltip/style/index.mjs'
|
|
242
242
|
import './uploader/style/index.mjs'
|
|
243
243
|
|
|
244
|
-
const version = '2.11.
|
|
244
|
+
const version = '2.11.1-alpha.1684493331817'
|
|
245
245
|
|
|
246
246
|
function install(app) {
|
|
247
247
|
ActionSheet.install && app.use(ActionSheet)
|
package/es/index.mjs
CHANGED
|
@@ -160,7 +160,7 @@ export * from './time-picker/index.mjs'
|
|
|
160
160
|
export * from './tooltip/index.mjs'
|
|
161
161
|
export * from './uploader/index.mjs'
|
|
162
162
|
|
|
163
|
-
const version = '2.11.
|
|
163
|
+
const version = '2.11.1-alpha.1684493331817'
|
|
164
164
|
|
|
165
165
|
function install(app) {
|
|
166
166
|
ActionSheet.install && app.use(ActionSheet)
|
package/es/picker/Picker.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import { defineComponent, watch, ref, computed, Transition, toRaw } from 'vue';
|
|
|
4
4
|
import { props } from './props.mjs';
|
|
5
5
|
import { isArray } from '@varlet/shared';
|
|
6
6
|
import { dt } from '../utils/shared.mjs';
|
|
7
|
-
import { toPxNum,
|
|
7
|
+
import { toPxNum, getTranslateY, requestAnimationFrame } from '../utils/elements.mjs';
|
|
8
8
|
import { pack } from '../locale/index.mjs';
|
|
9
9
|
import { createNamespace, call } from '../utils/components.mjs';
|
|
10
10
|
var {
|
|
@@ -13,6 +13,8 @@ var {
|
|
|
13
13
|
} = createNamespace('picker');
|
|
14
14
|
var MOMENTUM_RECORD_TIME = 300;
|
|
15
15
|
var MOMENTUM_ALLOW_DISTANCE = 15;
|
|
16
|
+
var TRANSITION_DURATION = 200;
|
|
17
|
+
var MOMENTUM_TRANSITION_DURATION = 1000;
|
|
16
18
|
var sid = 0;
|
|
17
19
|
import { renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, normalizeStyle as _normalizeStyle, withModifiers as _withModifiers, mergeProps as _mergeProps, resolveDynamicComponent as _resolveDynamicComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from "vue";
|
|
18
20
|
|
|
@@ -20,6 +22,7 @@ var _withScopeId = n => (_pushScopeId(""), n = n(), _popScopeId(), n);
|
|
|
20
22
|
|
|
21
23
|
var _hoisted_1 = ["onTouchstart", "onTouchmove", "onTouchend"];
|
|
22
24
|
var _hoisted_2 = ["onTransitionend"];
|
|
25
|
+
var _hoisted_3 = ["onClick"];
|
|
23
26
|
|
|
24
27
|
function __render__(_ctx, _cache) {
|
|
25
28
|
var _component_var_button = _resolveComponent("var-button");
|
|
@@ -97,27 +100,28 @@ function __render__(_ctx, _cache) {
|
|
|
97
100
|
}, [_createElementVNode("div", {
|
|
98
101
|
class: _normalizeClass(_ctx.n('scroller')),
|
|
99
102
|
ref_for: true,
|
|
100
|
-
ref: el => _ctx.
|
|
103
|
+
ref: el => _ctx.setScrollEl(el, c),
|
|
101
104
|
style: _normalizeStyle({
|
|
102
105
|
transform: "translateY(" + c.translate + "px)",
|
|
103
106
|
transitionDuration: c.duration + "ms",
|
|
104
107
|
transitionProperty: c.duration ? 'transform' : 'none'
|
|
105
108
|
}),
|
|
106
109
|
onTransitionend: $event => _ctx.handleTransitionend(c)
|
|
107
|
-
}, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(c.column.texts, t => {
|
|
110
|
+
}, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(c.column.texts, (t, i) => {
|
|
108
111
|
return _openBlock(), _createElementBlock("div", {
|
|
109
112
|
class: _normalizeClass(_ctx.n('option')),
|
|
110
113
|
style: _normalizeStyle({
|
|
111
114
|
height: _ctx.optionHeight + "px"
|
|
112
115
|
}),
|
|
113
|
-
key: t
|
|
116
|
+
key: t,
|
|
117
|
+
onClick: $event => _ctx.handleClick(c, i)
|
|
114
118
|
}, [_createElementVNode("div", {
|
|
115
119
|
class: _normalizeClass(_ctx.n('text'))
|
|
116
120
|
}, _toDisplayString(_ctx.textFormatter(t, c.columnIndex)), 3
|
|
117
121
|
/* TEXT, CLASS */
|
|
118
|
-
)],
|
|
119
|
-
/* CLASS, STYLE */
|
|
120
|
-
);
|
|
122
|
+
)], 14
|
|
123
|
+
/* CLASS, STYLE, PROPS */
|
|
124
|
+
, _hoisted_3);
|
|
121
125
|
}), 128
|
|
122
126
|
/* KEYED_FRAGMENT */
|
|
123
127
|
))], 46
|
|
@@ -171,8 +175,9 @@ var __sfc__ = defineComponent({
|
|
|
171
175
|
var center = computed(() => optionCount.value * optionHeight.value / 2 - optionHeight.value / 2);
|
|
172
176
|
var columnHeight = computed(() => optionCount.value * optionHeight.value);
|
|
173
177
|
var prevIndexes = [];
|
|
178
|
+
var dragging = false;
|
|
174
179
|
|
|
175
|
-
var
|
|
180
|
+
var setScrollEl = (el, scrollColumn) => {
|
|
176
181
|
scrollColumn.scrollEl = el;
|
|
177
182
|
};
|
|
178
183
|
|
|
@@ -180,16 +185,16 @@ var __sfc__ = defineComponent({
|
|
|
180
185
|
call(props['onUpdate:show'], value);
|
|
181
186
|
};
|
|
182
187
|
|
|
183
|
-
var
|
|
184
|
-
var
|
|
185
|
-
var
|
|
188
|
+
var boundaryTranslate = scrollColumn => {
|
|
189
|
+
var startTranslate = optionHeight.value + center.value;
|
|
190
|
+
var endTranslate = center.value - scrollColumn.column.texts.length * optionHeight.value;
|
|
186
191
|
|
|
187
|
-
if (scrollColumn.translate >=
|
|
188
|
-
scrollColumn.translate =
|
|
192
|
+
if (scrollColumn.translate >= startTranslate) {
|
|
193
|
+
scrollColumn.translate = startTranslate;
|
|
189
194
|
}
|
|
190
195
|
|
|
191
|
-
if (scrollColumn.translate <=
|
|
192
|
-
scrollColumn.translate =
|
|
196
|
+
if (scrollColumn.translate <= endTranslate) {
|
|
197
|
+
scrollColumn.translate = endTranslate;
|
|
193
198
|
}
|
|
194
199
|
};
|
|
195
200
|
|
|
@@ -202,11 +207,16 @@ var __sfc__ = defineComponent({
|
|
|
202
207
|
return index;
|
|
203
208
|
};
|
|
204
209
|
|
|
205
|
-
var
|
|
206
|
-
var index = Math.round((center.value -
|
|
210
|
+
var getTargetIndex = (scrollColumn, viewTranslate) => {
|
|
211
|
+
var index = Math.round((center.value - viewTranslate) / optionHeight.value);
|
|
207
212
|
return boundaryIndex(scrollColumn, index);
|
|
208
213
|
};
|
|
209
214
|
|
|
215
|
+
var updateTranslate = scrollColumn => {
|
|
216
|
+
scrollColumn.translate = center.value - scrollColumn.index * optionHeight.value;
|
|
217
|
+
return scrollColumn.translate;
|
|
218
|
+
};
|
|
219
|
+
|
|
210
220
|
var getPicked = () => {
|
|
211
221
|
var texts = scrollColumns.value.map(scrollColumn => scrollColumn.column.texts[scrollColumn.index]);
|
|
212
222
|
var indexes = scrollColumns.value.map(scrollColumn => scrollColumn.index);
|
|
@@ -216,19 +226,12 @@ var __sfc__ = defineComponent({
|
|
|
216
226
|
};
|
|
217
227
|
};
|
|
218
228
|
|
|
219
|
-
var scrollTo = function (scrollColumn,
|
|
220
|
-
if (
|
|
221
|
-
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
var translate = center.value - boundaryIndex(scrollColumn, index) * optionHeight.value;
|
|
225
|
-
|
|
226
|
-
if (translate === scrollColumn.translate) {
|
|
227
|
-
scrollColumn.scrolling = false;
|
|
228
|
-
!noEmit && change(scrollColumn);
|
|
229
|
+
var scrollTo = function (scrollColumn, duration) {
|
|
230
|
+
if (duration === void 0) {
|
|
231
|
+
duration = 0;
|
|
229
232
|
}
|
|
230
233
|
|
|
231
|
-
scrollColumn
|
|
234
|
+
updateTranslate(scrollColumn);
|
|
232
235
|
scrollColumn.duration = duration;
|
|
233
236
|
};
|
|
234
237
|
|
|
@@ -236,11 +239,21 @@ var __sfc__ = defineComponent({
|
|
|
236
239
|
scrollColumn.translate += Math.abs(distance / duration) / 0.003 * (distance < 0 ? -1 : 1);
|
|
237
240
|
};
|
|
238
241
|
|
|
242
|
+
var handleClick = (scrollColumn, index) => {
|
|
243
|
+
if (dragging) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
scrollColumn.index = index;
|
|
248
|
+
scrollColumn.scrolling = true;
|
|
249
|
+
scrollTo(scrollColumn, TRANSITION_DURATION);
|
|
250
|
+
};
|
|
251
|
+
|
|
239
252
|
var handleTouchstart = (event, scrollColumn) => {
|
|
240
253
|
scrollColumn.touching = true;
|
|
241
254
|
scrollColumn.scrolling = false;
|
|
242
255
|
scrollColumn.duration = 0;
|
|
243
|
-
scrollColumn.translate =
|
|
256
|
+
scrollColumn.translate = getTranslateY(scrollColumn.scrollEl);
|
|
244
257
|
};
|
|
245
258
|
|
|
246
259
|
var handleTouchmove = (event, scrollColumn) => {
|
|
@@ -248,13 +261,14 @@ var __sfc__ = defineComponent({
|
|
|
248
261
|
return;
|
|
249
262
|
}
|
|
250
263
|
|
|
264
|
+
dragging = true;
|
|
251
265
|
var {
|
|
252
266
|
clientY
|
|
253
267
|
} = event.touches[0];
|
|
254
|
-
var
|
|
268
|
+
var deltaY = scrollColumn.prevY !== undefined ? clientY - scrollColumn.prevY : 0;
|
|
255
269
|
scrollColumn.prevY = clientY;
|
|
256
|
-
scrollColumn.translate +=
|
|
257
|
-
|
|
270
|
+
scrollColumn.translate += deltaY;
|
|
271
|
+
boundaryTranslate(scrollColumn);
|
|
258
272
|
var now = performance.now();
|
|
259
273
|
|
|
260
274
|
if (now - scrollColumn.momentumTime > MOMENTUM_RECORD_TIME) {
|
|
@@ -265,14 +279,28 @@ var __sfc__ = defineComponent({
|
|
|
265
279
|
|
|
266
280
|
var handleTouchend = (event, scrollColumn) => {
|
|
267
281
|
scrollColumn.touching = false;
|
|
268
|
-
scrollColumn.scrolling = true;
|
|
269
282
|
scrollColumn.prevY = undefined;
|
|
270
283
|
var distance = scrollColumn.translate - scrollColumn.momentumPrevY;
|
|
271
284
|
var duration = performance.now() - scrollColumn.momentumTime;
|
|
272
285
|
var shouldMomentum = Math.abs(distance) >= MOMENTUM_ALLOW_DISTANCE && duration <= MOMENTUM_RECORD_TIME;
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
286
|
+
|
|
287
|
+
if (shouldMomentum) {
|
|
288
|
+
momentum(scrollColumn, distance, duration);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
scrollColumn.index = getTargetIndex(scrollColumn, scrollColumn.translate);
|
|
292
|
+
var oldTranslate = scrollColumn.translate;
|
|
293
|
+
var newTranslate = updateTranslate(scrollColumn);
|
|
294
|
+
scrollColumn.scrolling = newTranslate !== oldTranslate;
|
|
295
|
+
scrollTo(scrollColumn, shouldMomentum ? MOMENTUM_TRANSITION_DURATION : TRANSITION_DURATION); // Can't trigger transition end when not scrolling, change needs to be triggered manually.
|
|
296
|
+
|
|
297
|
+
if (!scrollColumn.scrolling) {
|
|
298
|
+
change(scrollColumn);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
requestAnimationFrame(() => {
|
|
302
|
+
dragging = false;
|
|
303
|
+
});
|
|
276
304
|
};
|
|
277
305
|
|
|
278
306
|
var handleTransitionend = scrollColumn => {
|
|
@@ -301,7 +329,7 @@ var __sfc__ = defineComponent({
|
|
|
301
329
|
scrollEl: null,
|
|
302
330
|
scrolling: false
|
|
303
331
|
};
|
|
304
|
-
scrollTo(scrollColumn
|
|
332
|
+
scrollTo(scrollColumn);
|
|
305
333
|
return scrollColumn;
|
|
306
334
|
});
|
|
307
335
|
};
|
|
@@ -339,7 +367,7 @@ var __sfc__ = defineComponent({
|
|
|
339
367
|
scrolling: false
|
|
340
368
|
};
|
|
341
369
|
scrollColumns.push(scrollColumn);
|
|
342
|
-
scrollTo(scrollColumn
|
|
370
|
+
scrollTo(scrollColumn);
|
|
343
371
|
createChildren(scrollColumns, scrollColumn.columns[scrollColumn.index].children, columnIndex + 1, initial);
|
|
344
372
|
}
|
|
345
373
|
};
|
|
@@ -354,7 +382,11 @@ var __sfc__ = defineComponent({
|
|
|
354
382
|
cascade,
|
|
355
383
|
onChange
|
|
356
384
|
} = props;
|
|
357
|
-
|
|
385
|
+
|
|
386
|
+
if (cascade) {
|
|
387
|
+
rebuildChildren(scrollColumn);
|
|
388
|
+
}
|
|
389
|
+
|
|
358
390
|
var hasScrolling = scrollColumns.value.some(scrollColumn => scrollColumn.scrolling);
|
|
359
391
|
|
|
360
392
|
if (hasScrolling) {
|
|
@@ -380,17 +412,15 @@ var __sfc__ = defineComponent({
|
|
|
380
412
|
var currentScrollColumn = scrollColumns.value.find(scrollColumn => scrollColumn.scrolling);
|
|
381
413
|
|
|
382
414
|
if (currentScrollColumn) {
|
|
383
|
-
currentScrollColumn.
|
|
384
|
-
currentScrollColumn.index = getIndex(currentScrollColumn);
|
|
385
|
-
scrollTo(currentScrollColumn, currentScrollColumn.index, 0, true);
|
|
415
|
+
currentScrollColumn.index = getTargetIndex(currentScrollColumn, getTranslateY(currentScrollColumn.scrollEl));
|
|
386
416
|
currentScrollColumn.scrolling = false;
|
|
417
|
+
scrollTo(currentScrollColumn);
|
|
387
418
|
rebuildChildren(currentScrollColumn);
|
|
388
419
|
}
|
|
389
420
|
} else {
|
|
390
421
|
scrollColumns.value.forEach(scrollColumn => {
|
|
391
|
-
scrollColumn.
|
|
392
|
-
|
|
393
|
-
scrollTo(scrollColumn, scrollColumn.index, 0);
|
|
422
|
+
scrollColumn.index = getTargetIndex(scrollColumn, getTranslateY(scrollColumn.scrollEl));
|
|
423
|
+
scrollTo(scrollColumn);
|
|
394
424
|
});
|
|
395
425
|
}
|
|
396
426
|
}; // expose
|
|
@@ -437,7 +467,7 @@ var __sfc__ = defineComponent({
|
|
|
437
467
|
columnHeight,
|
|
438
468
|
center,
|
|
439
469
|
Transition,
|
|
440
|
-
|
|
470
|
+
setScrollEl,
|
|
441
471
|
handlePopupUpdateShow,
|
|
442
472
|
handleTouchstart,
|
|
443
473
|
handleTouchmove,
|
|
@@ -445,7 +475,8 @@ var __sfc__ = defineComponent({
|
|
|
445
475
|
handleTransitionend,
|
|
446
476
|
confirm,
|
|
447
477
|
cancel,
|
|
448
|
-
dt
|
|
478
|
+
dt,
|
|
479
|
+
handleClick
|
|
449
480
|
};
|
|
450
481
|
}
|
|
451
482
|
|
package/es/utils/elements.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
|
-
import { isNumber, isObject, isString, kebabCase, toNumber, isWindow } from '@varlet/shared';
|
|
3
|
+
import { isNumber, isObject, isString, kebabCase, toNumber, isWindow, inBrowser } from '@varlet/shared';
|
|
4
4
|
import { getGlobalThis } from './shared.mjs';
|
|
5
5
|
import { error } from './logger.mjs';
|
|
6
6
|
// shorthand only
|
|
@@ -64,7 +64,7 @@ export function inViewport(element) {
|
|
|
64
64
|
var yInViewport = top <= height && bottom >= 0;
|
|
65
65
|
return xInViewport && yInViewport;
|
|
66
66
|
}
|
|
67
|
-
export function
|
|
67
|
+
export function getTranslateY(el) {
|
|
68
68
|
var {
|
|
69
69
|
transform
|
|
70
70
|
} = getStyle(el);
|
|
@@ -136,7 +136,9 @@ export function getViewportSize() {
|
|
|
136
136
|
};
|
|
137
137
|
} // example 1rem
|
|
138
138
|
|
|
139
|
-
export var isRem = value => isString(value) && value.endsWith('rem'); //
|
|
139
|
+
export var isRem = value => isString(value) && value.endsWith('rem'); // example 1em
|
|
140
|
+
|
|
141
|
+
export var isEm = value => isString(value) && value.endsWith('em') && !value.endsWith('rem'); // e.g. 1 || 1px
|
|
140
142
|
|
|
141
143
|
export var isPx = value => isString(value) && value.endsWith('px') || isNumber(value); // e.g. 1%
|
|
142
144
|
|
|
@@ -163,6 +165,10 @@ export var toPxNum = value => {
|
|
|
163
165
|
return +value.replace('px', '');
|
|
164
166
|
}
|
|
165
167
|
|
|
168
|
+
if (!inBrowser()) {
|
|
169
|
+
return 0;
|
|
170
|
+
}
|
|
171
|
+
|
|
166
172
|
var {
|
|
167
173
|
width,
|
|
168
174
|
height
|
|
@@ -203,7 +209,7 @@ export var toSizeUnit = value => {
|
|
|
203
209
|
return undefined;
|
|
204
210
|
}
|
|
205
211
|
|
|
206
|
-
if (isPercent(value) || isVw(value) || isVh(value) || isRem(value) || isCalc(value) || isVar(value) || isVMin(value) || isVMax(value)) {
|
|
212
|
+
if (isPercent(value) || isVw(value) || isVh(value) || isEm(value) || isRem(value) || isCalc(value) || isVar(value) || isVMin(value) || isVMax(value)) {
|
|
207
213
|
return value;
|
|
208
214
|
}
|
|
209
215
|
|