@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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "framework": "vue",
4
- "version": "2.11.0",
4
+ "version": "2.11.1-alpha.1684493331817",
5
5
  "name": "VARLET",
6
6
  "contributions": {
7
7
  "html": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "framework": "vue",
4
- "version": "2.11.0",
4
+ "version": "2.11.1-alpha.1684493331817",
5
5
  "name": "VARLET",
6
6
  "contributions": {
7
7
  "html": {
package/lib/varlet.cjs.js CHANGED
@@ -220,7 +220,7 @@ function inViewport(element) {
220
220
  var yInViewport = top2 <= height && bottom2 >= 0;
221
221
  return xInViewport && yInViewport;
222
222
  }
223
- function getTranslate(el) {
223
+ function getTranslateY(el) {
224
224
  var {
225
225
  transform
226
226
  } = getStyle$1(el);
@@ -282,6 +282,7 @@ function getViewportSize() {
282
282
  };
283
283
  }
284
284
  var isRem = (value) => isString(value) && value.endsWith("rem");
285
+ var isEm = (value) => isString(value) && value.endsWith("em") && !value.endsWith("rem");
285
286
  var isPx = (value) => isString(value) && value.endsWith("px") || isNumber(value);
286
287
  var isPercent = (value) => isString(value) && value.endsWith("%");
287
288
  var isVw = (value) => isString(value) && value.endsWith("vw");
@@ -297,6 +298,9 @@ var toPxNum = (value) => {
297
298
  if (isPx(value)) {
298
299
  return +value.replace("px", "");
299
300
  }
301
+ if (!inBrowser()) {
302
+ return 0;
303
+ }
300
304
  var {
301
305
  width,
302
306
  height
@@ -327,7 +331,7 @@ var toSizeUnit = (value) => {
327
331
  if (value == null) {
328
332
  return void 0;
329
333
  }
330
- if (isPercent(value) || isVw(value) || isVh(value) || isRem(value) || isCalc(value) || isVar(value) || isVMin(value) || isVMax(value)) {
334
+ if (isPercent(value) || isVw(value) || isVh(value) || isEm(value) || isRem(value) || isCalc(value) || isVar(value) || isVMin(value) || isVMax(value)) {
331
335
  return value;
332
336
  }
333
337
  return toPxNum(value) + "px";
@@ -14787,7 +14791,7 @@ var __sfc__$G = vue.defineComponent({
14787
14791
  var canSwipe = vue.ref(true);
14788
14792
  var startTouch = null;
14789
14793
  var prevTouch = null;
14790
- var checker = null;
14794
+ var closeRunner = null;
14791
14795
  var getDistance = (touch, target) => {
14792
14796
  var {
14793
14797
  clientX: touchX,
@@ -14802,7 +14806,7 @@ var __sfc__$G = vue.defineComponent({
14802
14806
  var createVarTouch = (touches, target) => ({
14803
14807
  clientX: touches.clientX,
14804
14808
  clientY: touches.clientY,
14805
- timestamp: Date.now(),
14809
+ timestamp: performance.now(),
14806
14810
  target
14807
14811
  });
14808
14812
  var zoomIn = () => {
@@ -14833,20 +14837,18 @@ var __sfc__$G = vue.defineComponent({
14833
14837
  if (!target || !startTouch || !prevTouch) {
14834
14838
  return false;
14835
14839
  }
14836
- return getDistance(startTouch, prevTouch) <= DISTANCE_OFFSET && Date.now() - prevTouch.timestamp < TAP_DELAY && (target === startTouch.target || target.parentNode === startTouch.target);
14840
+ return getDistance(startTouch, prevTouch) <= DISTANCE_OFFSET && performance.now() - prevTouch.timestamp < TAP_DELAY && (target === startTouch.target || target.parentNode === startTouch.target);
14837
14841
  };
14838
14842
  var handleTouchend = (event) => {
14839
- checker = window.setTimeout(() => {
14840
- isTapTouch(event.target) && close();
14843
+ var isTap = isTapTouch(event.target);
14844
+ closeRunner = window.setTimeout(() => {
14845
+ isTap && close();
14841
14846
  startTouch = null;
14842
14847
  }, EVENT_DELAY);
14843
14848
  };
14844
14849
  var handleTouchstart = (event) => {
14845
- checker && window.clearTimeout(checker);
14846
- var {
14847
- touches
14848
- } = event;
14849
- var currentTouch = createVarTouch(touches[0], event.currentTarget);
14850
+ closeRunner && window.clearTimeout(closeRunner);
14851
+ var currentTouch = createVarTouch(event.touches[0], event.currentTarget);
14850
14852
  startTouch = currentTouch;
14851
14853
  if (isDoubleTouch(currentTouch)) {
14852
14854
  scale.value > 1 ? zoomOut() : zoomIn();
@@ -14913,10 +14915,7 @@ var __sfc__$G = vue.defineComponent({
14913
14915
  return;
14914
14916
  }
14915
14917
  var target = event.currentTarget;
14916
- var {
14917
- touches
14918
- } = event;
14919
- var currentTouch = createVarTouch(touches[0], target);
14918
+ var currentTouch = createVarTouch(event.touches[0], target);
14920
14919
  if (scale.value > 1) {
14921
14920
  var moveX = currentTouch.clientX - prevTouch.clientX;
14922
14921
  var moveY = currentTouch.clientY - prevTouch.clientY;
@@ -16069,7 +16068,7 @@ var {
16069
16068
  } = createNamespace("input");
16070
16069
  var _hoisted_1$e = ["placeholder", "enterkeyhint"];
16071
16070
  var _hoisted_2$9 = ["id", "disabled", "type", "value", "placeholder", "maxlength", "rows", "enterkeyhint", "inputmode"];
16072
- var _hoisted_3$7 = ["id", "disabled", "type", "value", "placeholder", "maxlength", "enterkeyhint", "inputmode"];
16071
+ var _hoisted_3$8 = ["id", "disabled", "type", "value", "placeholder", "maxlength", "enterkeyhint", "inputmode"];
16073
16072
  function __render__$A(_ctx, _cache) {
16074
16073
  var _component_var_field_decorator = vue.resolveComponent("var-field-decorator");
16075
16074
  var _component_var_form_details = vue.resolveComponent("var-form-details");
@@ -16213,7 +16212,7 @@ function __render__$A(_ctx, _cache) {
16213
16212
  },
16214
16213
  null,
16215
16214
  46,
16216
- _hoisted_3$7
16215
+ _hoisted_3$8
16217
16216
  ))]),
16218
16217
  _: 3
16219
16218
  /* FORWARDED */
@@ -18036,9 +18035,12 @@ var {
18036
18035
  } = createNamespace("picker");
18037
18036
  var MOMENTUM_RECORD_TIME = 300;
18038
18037
  var MOMENTUM_ALLOW_DISTANCE = 15;
18038
+ var TRANSITION_DURATION = 200;
18039
+ var MOMENTUM_TRANSITION_DURATION = 1e3;
18039
18040
  var sid$1 = 0;
18040
18041
  var _hoisted_1$c = ["onTouchstart", "onTouchmove", "onTouchend"];
18041
18042
  var _hoisted_2$8 = ["onTransitionend"];
18043
+ var _hoisted_3$7 = ["onClick"];
18042
18044
  function __render__$t(_ctx, _cache) {
18043
18045
  var _component_var_button = vue.resolveComponent("var-button");
18044
18046
  return vue.openBlock(), vue.createBlock(
@@ -18149,7 +18151,7 @@ function __render__$t(_ctx, _cache) {
18149
18151
  {
18150
18152
  class: vue.normalizeClass(_ctx.n("scroller")),
18151
18153
  ref_for: true,
18152
- ref: (el) => _ctx.getScrollEl(el, c),
18154
+ ref: (el) => _ctx.setScrollEl(el, c),
18153
18155
  style: vue.normalizeStyle({
18154
18156
  transform: "translateY(" + c.translate + "px)",
18155
18157
  transitionDuration: c.duration + "ms",
@@ -18160,7 +18162,7 @@ function __render__$t(_ctx, _cache) {
18160
18162
  [(vue.openBlock(true), vue.createElementBlock(
18161
18163
  vue.Fragment,
18162
18164
  null,
18163
- vue.renderList(c.column.texts, (t) => {
18165
+ vue.renderList(c.column.texts, (t, i) => {
18164
18166
  return vue.openBlock(), vue.createElementBlock(
18165
18167
  "div",
18166
18168
  {
@@ -18168,7 +18170,8 @@ function __render__$t(_ctx, _cache) {
18168
18170
  style: vue.normalizeStyle({
18169
18171
  height: _ctx.optionHeight + "px"
18170
18172
  }),
18171
- key: t
18173
+ key: t,
18174
+ onClick: ($event) => _ctx.handleClick(c, i)
18172
18175
  },
18173
18176
  [vue.createElementVNode(
18174
18177
  "div",
@@ -18179,8 +18182,8 @@ function __render__$t(_ctx, _cache) {
18179
18182
  3
18180
18183
  /* TEXT, CLASS */
18181
18184
  )],
18182
- 6
18183
- /* CLASS, STYLE */
18185
+ 14,
18186
+ _hoisted_3$7
18184
18187
  );
18185
18188
  }),
18186
18189
  128
@@ -18247,20 +18250,21 @@ var __sfc__$u = vue.defineComponent({
18247
18250
  var center = vue.computed(() => optionCount.value * optionHeight.value / 2 - optionHeight.value / 2);
18248
18251
  var columnHeight = vue.computed(() => optionCount.value * optionHeight.value);
18249
18252
  var prevIndexes = [];
18250
- var getScrollEl = (el, scrollColumn) => {
18253
+ var dragging = false;
18254
+ var setScrollEl = (el, scrollColumn) => {
18251
18255
  scrollColumn.scrollEl = el;
18252
18256
  };
18253
18257
  var handlePopupUpdateShow = (value) => {
18254
18258
  call(props2["onUpdate:show"], value);
18255
18259
  };
18256
- var limitTranslate = (scrollColumn) => {
18257
- var START_LIMIT = optionHeight.value + center.value;
18258
- var END_LIMIT = center.value - scrollColumn.column.texts.length * optionHeight.value;
18259
- if (scrollColumn.translate >= START_LIMIT) {
18260
- scrollColumn.translate = START_LIMIT;
18260
+ var boundaryTranslate = (scrollColumn) => {
18261
+ var startTranslate = optionHeight.value + center.value;
18262
+ var endTranslate = center.value - scrollColumn.column.texts.length * optionHeight.value;
18263
+ if (scrollColumn.translate >= startTranslate) {
18264
+ scrollColumn.translate = startTranslate;
18261
18265
  }
18262
- if (scrollColumn.translate <= END_LIMIT) {
18263
- scrollColumn.translate = END_LIMIT;
18266
+ if (scrollColumn.translate <= endTranslate) {
18267
+ scrollColumn.translate = endTranslate;
18264
18268
  }
18265
18269
  };
18266
18270
  var boundaryIndex = (scrollColumn, index) => {
@@ -18271,10 +18275,14 @@ var __sfc__$u = vue.defineComponent({
18271
18275
  index = index <= 0 ? 0 : index;
18272
18276
  return index;
18273
18277
  };
18274
- var getIndex = (scrollColumn) => {
18275
- var index = Math.round((center.value - scrollColumn.translate) / optionHeight.value);
18278
+ var getTargetIndex = (scrollColumn, viewTranslate) => {
18279
+ var index = Math.round((center.value - viewTranslate) / optionHeight.value);
18276
18280
  return boundaryIndex(scrollColumn, index);
18277
18281
  };
18282
+ var updateTranslate = (scrollColumn) => {
18283
+ scrollColumn.translate = center.value - scrollColumn.index * optionHeight.value;
18284
+ return scrollColumn.translate;
18285
+ };
18278
18286
  var getPicked = () => {
18279
18287
  var texts = scrollColumns.value.map((scrollColumn) => scrollColumn.column.texts[scrollColumn.index]);
18280
18288
  var indexes = scrollColumns.value.map((scrollColumn) => scrollColumn.index);
@@ -18283,38 +18291,42 @@ var __sfc__$u = vue.defineComponent({
18283
18291
  indexes
18284
18292
  };
18285
18293
  };
18286
- var scrollTo2 = function(scrollColumn, index, duration, noEmit) {
18287
- if (noEmit === void 0) {
18288
- noEmit = false;
18289
- }
18290
- var translate = center.value - boundaryIndex(scrollColumn, index) * optionHeight.value;
18291
- if (translate === scrollColumn.translate) {
18292
- scrollColumn.scrolling = false;
18293
- !noEmit && change(scrollColumn);
18294
+ var scrollTo2 = function(scrollColumn, duration) {
18295
+ if (duration === void 0) {
18296
+ duration = 0;
18294
18297
  }
18295
- scrollColumn.translate = translate;
18298
+ updateTranslate(scrollColumn);
18296
18299
  scrollColumn.duration = duration;
18297
18300
  };
18298
18301
  var momentum = (scrollColumn, distance, duration) => {
18299
18302
  scrollColumn.translate += Math.abs(distance / duration) / 3e-3 * (distance < 0 ? -1 : 1);
18300
18303
  };
18304
+ var handleClick = (scrollColumn, index) => {
18305
+ if (dragging) {
18306
+ return;
18307
+ }
18308
+ scrollColumn.index = index;
18309
+ scrollColumn.scrolling = true;
18310
+ scrollTo2(scrollColumn, TRANSITION_DURATION);
18311
+ };
18301
18312
  var handleTouchstart = (event, scrollColumn) => {
18302
18313
  scrollColumn.touching = true;
18303
18314
  scrollColumn.scrolling = false;
18304
18315
  scrollColumn.duration = 0;
18305
- scrollColumn.translate = getTranslate(scrollColumn.scrollEl);
18316
+ scrollColumn.translate = getTranslateY(scrollColumn.scrollEl);
18306
18317
  };
18307
18318
  var handleTouchmove = (event, scrollColumn) => {
18308
18319
  if (!scrollColumn.touching) {
18309
18320
  return;
18310
18321
  }
18322
+ dragging = true;
18311
18323
  var {
18312
18324
  clientY
18313
18325
  } = event.touches[0];
18314
- var moveY = scrollColumn.prevY !== void 0 ? clientY - scrollColumn.prevY : 0;
18326
+ var deltaY = scrollColumn.prevY !== void 0 ? clientY - scrollColumn.prevY : 0;
18315
18327
  scrollColumn.prevY = clientY;
18316
- scrollColumn.translate += moveY;
18317
- limitTranslate(scrollColumn);
18328
+ scrollColumn.translate += deltaY;
18329
+ boundaryTranslate(scrollColumn);
18318
18330
  var now = performance.now();
18319
18331
  if (now - scrollColumn.momentumTime > MOMENTUM_RECORD_TIME) {
18320
18332
  scrollColumn.momentumTime = now;
@@ -18323,14 +18335,24 @@ var __sfc__$u = vue.defineComponent({
18323
18335
  };
18324
18336
  var handleTouchend = (event, scrollColumn) => {
18325
18337
  scrollColumn.touching = false;
18326
- scrollColumn.scrolling = true;
18327
18338
  scrollColumn.prevY = void 0;
18328
18339
  var distance = scrollColumn.translate - scrollColumn.momentumPrevY;
18329
18340
  var duration = performance.now() - scrollColumn.momentumTime;
18330
18341
  var shouldMomentum = Math.abs(distance) >= MOMENTUM_ALLOW_DISTANCE && duration <= MOMENTUM_RECORD_TIME;
18331
- shouldMomentum && momentum(scrollColumn, distance, duration);
18332
- scrollColumn.index = getIndex(scrollColumn);
18333
- scrollTo2(scrollColumn, scrollColumn.index, shouldMomentum ? 1e3 : 200);
18342
+ if (shouldMomentum) {
18343
+ momentum(scrollColumn, distance, duration);
18344
+ }
18345
+ scrollColumn.index = getTargetIndex(scrollColumn, scrollColumn.translate);
18346
+ var oldTranslate = scrollColumn.translate;
18347
+ var newTranslate = updateTranslate(scrollColumn);
18348
+ scrollColumn.scrolling = newTranslate !== oldTranslate;
18349
+ scrollTo2(scrollColumn, shouldMomentum ? MOMENTUM_TRANSITION_DURATION : TRANSITION_DURATION);
18350
+ if (!scrollColumn.scrolling) {
18351
+ change(scrollColumn);
18352
+ }
18353
+ requestAnimationFrame(() => {
18354
+ dragging = false;
18355
+ });
18334
18356
  };
18335
18357
  var handleTransitionend = (scrollColumn) => {
18336
18358
  scrollColumn.scrolling = false;
@@ -18356,7 +18378,7 @@ var __sfc__$u = vue.defineComponent({
18356
18378
  scrollEl: null,
18357
18379
  scrolling: false
18358
18380
  };
18359
- scrollTo2(scrollColumn, scrollColumn.index, 0, true);
18381
+ scrollTo2(scrollColumn);
18360
18382
  return scrollColumn;
18361
18383
  });
18362
18384
  };
@@ -18390,7 +18412,7 @@ var __sfc__$u = vue.defineComponent({
18390
18412
  scrolling: false
18391
18413
  };
18392
18414
  scrollColumns2.push(scrollColumn);
18393
- scrollTo2(scrollColumn, scrollColumn.index, 0, true);
18415
+ scrollTo2(scrollColumn);
18394
18416
  createChildren(scrollColumns2, scrollColumn.columns[scrollColumn.index].children, columnIndex + 1, initial);
18395
18417
  }
18396
18418
  };
@@ -18403,7 +18425,9 @@ var __sfc__$u = vue.defineComponent({
18403
18425
  cascade,
18404
18426
  onChange
18405
18427
  } = props2;
18406
- cascade && rebuildChildren(scrollColumn);
18428
+ if (cascade) {
18429
+ rebuildChildren(scrollColumn);
18430
+ }
18407
18431
  var hasScrolling = scrollColumns.value.some((scrollColumn2) => scrollColumn2.scrolling);
18408
18432
  if (hasScrolling) {
18409
18433
  return;
@@ -18423,17 +18447,15 @@ var __sfc__$u = vue.defineComponent({
18423
18447
  if (props2.cascade) {
18424
18448
  var currentScrollColumn = scrollColumns.value.find((scrollColumn) => scrollColumn.scrolling);
18425
18449
  if (currentScrollColumn) {
18426
- currentScrollColumn.translate = getTranslate(currentScrollColumn.scrollEl);
18427
- currentScrollColumn.index = getIndex(currentScrollColumn);
18428
- scrollTo2(currentScrollColumn, currentScrollColumn.index, 0, true);
18450
+ currentScrollColumn.index = getTargetIndex(currentScrollColumn, getTranslateY(currentScrollColumn.scrollEl));
18429
18451
  currentScrollColumn.scrolling = false;
18452
+ scrollTo2(currentScrollColumn);
18430
18453
  rebuildChildren(currentScrollColumn);
18431
18454
  }
18432
18455
  } else {
18433
18456
  scrollColumns.value.forEach((scrollColumn) => {
18434
- scrollColumn.translate = getTranslate(scrollColumn.scrollEl);
18435
- scrollColumn.index = getIndex(scrollColumn);
18436
- scrollTo2(scrollColumn, scrollColumn.index, 0);
18457
+ scrollColumn.index = getTargetIndex(scrollColumn, getTranslateY(scrollColumn.scrollEl));
18458
+ scrollTo2(scrollColumn);
18437
18459
  });
18438
18460
  }
18439
18461
  };
@@ -18475,7 +18497,7 @@ var __sfc__$u = vue.defineComponent({
18475
18497
  columnHeight,
18476
18498
  center,
18477
18499
  Transition: vue.Transition,
18478
- getScrollEl,
18500
+ setScrollEl,
18479
18501
  handlePopupUpdateShow,
18480
18502
  handleTouchstart,
18481
18503
  handleTouchmove,
@@ -18483,7 +18505,8 @@ var __sfc__$u = vue.defineComponent({
18483
18505
  handleTransitionend,
18484
18506
  confirm,
18485
18507
  cancel,
18486
- dt
18508
+ dt,
18509
+ handleClick
18487
18510
  };
18488
18511
  }
18489
18512
  });
@@ -25468,7 +25491,7 @@ const TimePickerSfc = "";
25468
25491
  const TooltipSfc = "";
25469
25492
  const uploader = "";
25470
25493
  const UploaderSfc = "";
25471
- const version = "2.11.0";
25494
+ const version = "2.11.1-alpha.1684493331817";
25472
25495
  function install(app) {
25473
25496
  ActionSheet.install && app.use(ActionSheet);
25474
25497
  AppBar.install && app.use(AppBar);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@varlet/ui",
3
- "version": "2.11.0",
3
+ "version": "2.11.1-alpha.1684493331817",
4
4
  "description": "A material like components library",
5
5
  "main": "lib/varlet.cjs.js",
6
6
  "module": "es/index.mjs",
@@ -46,9 +46,9 @@
46
46
  "@popperjs/core": "^2.11.6",
47
47
  "dayjs": "^1.10.4",
48
48
  "decimal.js": "^10.2.1",
49
- "@varlet/icons": "2.11.0",
50
- "@varlet/shared": "2.11.0",
51
- "@varlet/use": "2.11.0"
49
+ "@varlet/icons": "2.11.1-alpha.1684493331817",
50
+ "@varlet/shared": "2.11.1-alpha.1684493331817",
51
+ "@varlet/use": "2.11.1-alpha.1684493331817"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@vue/runtime-core": "3.3.1",
@@ -63,8 +63,8 @@
63
63
  "typescript": "^4.4.4",
64
64
  "vue": "3.3.2",
65
65
  "vue-router": "4.2.0",
66
- "@varlet/cli": "2.11.0",
67
- "@varlet/touch-emulator": "2.11.0"
66
+ "@varlet/touch-emulator": "2.11.1-alpha.1684493331817",
67
+ "@varlet/cli": "2.11.1-alpha.1684493331817"
68
68
  },
69
69
  "browserslist": [
70
70
  "Chrome >= 54",