@factoringplus/pl-components-pack-v3 0.5.12 → 0.5.13-pre-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.
@@ -25391,7 +25391,14 @@ const _sfc_main$B = {
25391
25391
  setup(__props, { emit: emit2 }) {
25392
25392
  const props = __props;
25393
25393
  const refInput = ref();
25394
- const { getValid, currency, round, currencyInputOptions, valueRange, password } = toRefs(props);
25394
+ const {
25395
+ getValid,
25396
+ currency,
25397
+ round,
25398
+ currencyInputOptions,
25399
+ valueRange,
25400
+ password
25401
+ } = toRefs(props);
25395
25402
  const modelValue = computed$1({
25396
25403
  get: () => props.modelValue,
25397
25404
  set: (val) => {
@@ -25926,11 +25933,12 @@ var objectSupport$1 = { exports: {} };
25926
25933
  })(objectSupport$1);
25927
25934
  var objectSupport = objectSupport$1.exports;
25928
25935
  var plDatePickerRange_vue_vue_type_style_index_0_lang = "";
25929
- const _hoisted_1$v = { class: "date-picker" };
25930
- const _hoisted_2$r = {
25931
- key: 0,
25932
- class: "date-picker__wrapper"
25933
- };
25936
+ const _hoisted_1$v = ["id"];
25937
+ const _hoisted_2$r = /* @__PURE__ */ createElementVNode("img", {
25938
+ class: "date-picker__img",
25939
+ src: _imports_0$8,
25940
+ alt: "date-picker icon"
25941
+ }, null, -1);
25934
25942
  const _hoisted_3$n = { class: "date-switcher__container flex-column" };
25935
25943
  const _hoisted_4$h = { class: "d-flex pb-4 justify-content-between" };
25936
25944
  const _hoisted_5$b = { class: "date-switcher justify-content-center flex-column" };
@@ -25949,8 +25957,12 @@ const _sfc_main$w = {
25949
25957
  __name: "pl-date-picker-range",
25950
25958
  props: {
25951
25959
  modelValue: {
25960
+ type: Array,
25961
+ default: () => []
25962
+ },
25963
+ width: {
25952
25964
  type: String,
25953
- default: ""
25965
+ default: "260"
25954
25966
  },
25955
25967
  placeholder: {
25956
25968
  type: String,
@@ -25960,7 +25972,7 @@ const _sfc_main$w = {
25960
25972
  type: String,
25961
25973
  default: ""
25962
25974
  },
25963
- isOpen: {
25975
+ isClose: {
25964
25976
  type: Boolean,
25965
25977
  default: false
25966
25978
  },
@@ -25975,7 +25987,20 @@ const _sfc_main$w = {
25975
25987
  dayjs.locale("ru");
25976
25988
  dayjs.extend(isBetween);
25977
25989
  dayjs.extend(objectSupport);
25978
- const { isOpen } = toRefs(props);
25990
+ const { isClose } = toRefs(props);
25991
+ const randId = ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c2) => (c2 ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c2 / 4).toString(16));
25992
+ const offsetTop = ref(0);
25993
+ const offsetLeft = ref(0);
25994
+ const calculateOffsets = () => {
25995
+ const currentDatePicker = document.getElementById(`date-picker-range-${randId}`);
25996
+ const offsets = currentDatePicker.getBoundingClientRect();
25997
+ offsetLeft.value = offsets.x;
25998
+ offsetTop.value = offsets.y + offsets.height + window.scrollY;
25999
+ };
26000
+ const openPopup = () => {
26001
+ calculateOffsets();
26002
+ emit2("changeOpen", !isClose.value);
26003
+ };
25979
26004
  const validateDateValueString = (dateStr) => {
25980
26005
  if (dateStr.includes("-")) {
25981
26006
  return dayjs(dateStr.split("-")[0], "DD.MM.YYYY", true).isValid() && dayjs(dateStr.split("-")[1], "DD.MM.YYYY", true).isValid();
@@ -25991,25 +26016,55 @@ const _sfc_main$w = {
25991
26016
  const rangeEndDateValue = ref(dayjs().format("DD.MM.YYYY"));
25992
26017
  const WEEK_DAYS2 = ["\u041F\u043D", "\u0412\u0442", "\u0421\u0440", "\u0427\u0442", "\u041F\u0442", "\u0421\u0431", "\u0412\u0441"];
25993
26018
  let range3 = [];
25994
- const dateValue = computed$1({
25995
- get: () => props.modelValue,
25996
- set: (val) => {
25997
- emit2("update:modelValue", val);
26019
+ const dateValue = ref("");
26020
+ onMounted(() => {
26021
+ setupDates(props.modelValue);
26022
+ });
26023
+ watch(() => props.modelValue, (date4) => {
26024
+ if (date4.length === 2) {
26025
+ setupDates(date4);
25998
26026
  }
25999
26027
  });
26000
26028
  watch(dateValue, (value) => {
26001
26029
  if (validateDateValueString(value)) {
26002
- startDate.value = dayjs(value.split("-")[0].split(".").reverse().join("-"));
26003
- endDate.value = dayjs(value.split("-")[1].split(".").reverse().join("-"));
26004
- range3 = [startDate.value, endDate.value];
26005
- }
26006
- if (startDate.value.isAfter(endDate.value)) {
26007
- endDate.value = range3[0];
26008
- startDate.value = range3[1];
26009
- range3 = [startDate.value, endDate.value];
26030
+ if (value.split("-").length === 2) {
26031
+ startDate.value = dayjs(value.split("-")[0].split(".").reverse().join("-"));
26032
+ endDate.value = dayjs(value.split("-")[1].split(".").reverse().join("-"));
26033
+ range3 = [startDate.value, endDate.value];
26034
+ rangeStartDateValue.value = displayData(startDate.value);
26035
+ rangeEndDateValue.value = displayData(endDate.value);
26036
+ updateModelValue(range3);
26037
+ }
26038
+ if (startDate.value.isAfter(endDate.value)) {
26039
+ endDate.value = range3[0];
26040
+ startDate.value = range3[1];
26041
+ range3 = [startDate.value, endDate.value];
26042
+ rangeStartDateValue.value = displayData(startDate.value);
26043
+ rangeEndDateValue.value = displayData(endDate.value);
26044
+ updateModelValue(range3);
26045
+ }
26046
+ } else {
26047
+ updateModelValue();
26010
26048
  }
26011
26049
  setupUpdate();
26012
26050
  });
26051
+ const setupDates = (date4) => {
26052
+ if (date4 && date4.length === 2) {
26053
+ const startDate2 = dayjs(date4[0]).format("YYYY-MM-DD").split("-").reverse().join(".");
26054
+ const endDate2 = dayjs(date4[1]).format("YYYY-MM-DD").split("-").reverse().join(".");
26055
+ const newDateValue = startDate2 + "-" + endDate2;
26056
+ if (validateDateValueString(newDateValue)) {
26057
+ dateValue.value = `${startDate2}-${endDate2}`;
26058
+ }
26059
+ }
26060
+ };
26061
+ const updateModelValue = (range4 = []) => {
26062
+ let newRange = range4;
26063
+ if (newRange.length === 2) {
26064
+ newRange = [newRange[0].format("YYYY-MM-DD"), newRange[1].format("YYYY-MM-DD")];
26065
+ }
26066
+ emit2("update:modelValue", newRange);
26067
+ };
26013
26068
  const updateDate = (event, flag) => {
26014
26069
  if (validateDateValueString(event.target.value)) {
26015
26070
  if (flag) {
@@ -26089,7 +26144,6 @@ const _sfc_main$w = {
26089
26144
  range3 = [];
26090
26145
  dateValue.value = "";
26091
26146
  emit2("changeOpen", true);
26092
- emit2("update:modelValue", "");
26093
26147
  };
26094
26148
  const closeDatePicker = () => {
26095
26149
  if (!validateDateValueString(dateValue.value)) {
@@ -26101,7 +26155,7 @@ const _sfc_main$w = {
26101
26155
  setupUpdate();
26102
26156
  emit2("changeOpen", true);
26103
26157
  };
26104
- watch(isOpen, (value) => {
26158
+ watch(isClose, (value) => {
26105
26159
  if (validateDateValueString(dateValue.value)) {
26106
26160
  rangeStartDateValue.value = dayjs(dateValue.value.split("-")[0].split(".").reverse().join("-")).format("DD.MM.YYYY");
26107
26161
  rangeEndDateValue.value = dayjs(dateValue.value.split("-")[1].split(".").reverse().join("-")).format("DD.MM.YYYY");
@@ -26136,10 +26190,8 @@ const _sfc_main$w = {
26136
26190
  }
26137
26191
  if (startDate.value.isAfter(endDate.value)) {
26138
26192
  dateValue.value = endDate.value.format("DD.MM.YYYY") + "-" + startDate.value.format("DD.MM.YYYY");
26139
- emit2("update:modelValue", endDate.value.format("DD.MM.YYYY") + "-" + startDate.value.format("DD.MM.YYYY"));
26140
26193
  } else {
26141
26194
  dateValue.value = startDate.value.format("DD.MM.YYYY") + "-" + endDate.value.format("DD.MM.YYYY");
26142
- emit2("update:modelValue", startDate.value.format("DD.MM.YYYY") + "-" + endDate.value.format("DD.MM.YYYY"));
26143
26195
  }
26144
26196
  emit2("changeOpen", true);
26145
26197
  };
@@ -26276,131 +26328,137 @@ const _sfc_main$w = {
26276
26328
  });
26277
26329
  return (_ctx, _cache) => {
26278
26330
  const _directive_maska = resolveDirective("maska");
26279
- return openBlock(), createElementBlock("div", _hoisted_1$v, [
26280
- __props.showInput ? (openBlock(), createElementBlock("div", _hoisted_2$r, [
26331
+ return openBlock(), createElementBlock("div", {
26332
+ class: "date-picker",
26333
+ id: `date-picker-range-${unref(randId)}`
26334
+ }, [
26335
+ __props.showInput ? (openBlock(), createElementBlock("div", {
26336
+ key: 0,
26337
+ class: "date-picker__wrapper",
26338
+ style: normalizeStyle(`width: ${__props.width}px`),
26339
+ onClick: openPopup
26340
+ }, [
26281
26341
  createVNode(_sfc_main$B, {
26282
26342
  mask: "##.##.####-##.##.####",
26283
- modelValue: unref(dateValue),
26284
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(dateValue) ? dateValue.value = $event : null),
26343
+ modelValue: dateValue.value,
26344
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => dateValue.value = $event),
26285
26345
  label: __props.label,
26286
26346
  placeholder: __props.placeholder,
26287
26347
  onInput: updateDate,
26288
26348
  datePicker: ""
26289
26349
  }, null, 8, ["mask", "modelValue", "label", "placeholder"]),
26290
- createElementVNode("img", {
26291
- class: "date-picker__img",
26292
- src: _imports_0$8,
26293
- alt: "date-picker icon",
26294
- onClick: _cache[1] || (_cache[1] = ($event) => emit2("changeOpen", !unref(isOpen)))
26295
- })
26296
- ])) : createCommentVNode("", true),
26297
- !unref(isOpen) ? (openBlock(), createElementBlock("div", {
26298
- key: 1,
26299
- id: "date-picker-popup",
26300
- class: "pl-date-picker__popup",
26301
- ref_key: "datePickerRef",
26302
- ref: datePickerRef
26303
- }, [
26304
- createElementVNode("div", _hoisted_3$n, [
26305
- createElementVNode("div", _hoisted_4$h, [
26306
- createElementVNode("div", _hoisted_5$b, [
26307
- _hoisted_6$7,
26308
- withDirectives(createElementVNode("input", {
26309
- id: "date-mask",
26310
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => rangeStartDateValue.value = $event),
26311
- onInput: updateDate,
26312
- type: "text",
26313
- placeholder: "\u0414\u0414.\u041C\u041C.\u0413\u0413\u0413\u0413",
26314
- class: "pl-date-picker__input"
26315
- }, null, 544), [
26316
- [_directive_maska, "##.##.####"],
26317
- [vModelText, rangeStartDateValue.value]
26350
+ _hoisted_2$r
26351
+ ], 4)) : createCommentVNode("", true),
26352
+ (openBlock(), createBlock(Teleport, { to: "body" }, [
26353
+ !unref(isClose) ? (openBlock(), createElementBlock("div", {
26354
+ key: 0,
26355
+ id: "date-picker-popup",
26356
+ class: "pl-date-picker__popup",
26357
+ ref_key: "datePickerRef",
26358
+ ref: datePickerRef,
26359
+ style: normalizeStyle({ top: `${offsetTop.value}px`, left: `${offsetLeft.value}px` })
26360
+ }, [
26361
+ createElementVNode("div", _hoisted_3$n, [
26362
+ createElementVNode("div", _hoisted_4$h, [
26363
+ createElementVNode("div", _hoisted_5$b, [
26364
+ _hoisted_6$7,
26365
+ withDirectives(createElementVNode("input", {
26366
+ id: "date-mask",
26367
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => rangeStartDateValue.value = $event),
26368
+ onInput: updateDate,
26369
+ type: "text",
26370
+ placeholder: "\u0414\u0414.\u041C\u041C.\u0413\u0413\u0413\u0413",
26371
+ class: "pl-date-picker__input"
26372
+ }, null, 544), [
26373
+ [_directive_maska, "##.##.####"],
26374
+ [vModelText, rangeStartDateValue.value]
26375
+ ])
26376
+ ]),
26377
+ createElementVNode("div", _hoisted_7$5, [
26378
+ _hoisted_8$4,
26379
+ withDirectives(createElementVNode("input", {
26380
+ id: "date-mask",
26381
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => rangeEndDateValue.value = $event),
26382
+ onInput: _cache[3] || (_cache[3] = ($event) => updateDate($event, true)),
26383
+ type: "text",
26384
+ placeholder: "\u0414\u0414.\u041C\u041C.\u0413\u0413\u0413\u0413",
26385
+ class: "pl-date-picker__input"
26386
+ }, null, 544), [
26387
+ [_directive_maska, "##.##.####"],
26388
+ [vModelText, rangeEndDateValue.value]
26389
+ ])
26318
26390
  ])
26319
26391
  ]),
26320
- createElementVNode("div", _hoisted_7$5, [
26321
- _hoisted_8$4,
26322
- withDirectives(createElementVNode("input", {
26323
- id: "date-mask",
26324
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => rangeEndDateValue.value = $event),
26325
- onInput: _cache[4] || (_cache[4] = ($event) => updateDate($event, true)),
26326
- type: "text",
26327
- placeholder: "\u0414\u0414.\u041C\u041C.\u0413\u0413\u0413\u0413",
26328
- class: "pl-date-picker__input"
26329
- }, null, 544), [
26330
- [_directive_maska, "##.##.####"],
26331
- [vModelText, rangeEndDateValue.value]
26392
+ createElementVNode("div", _hoisted_9$4, [
26393
+ createElementVNode("div", _hoisted_10$3, [
26394
+ createElementVNode("div", {
26395
+ class: "date-switcher__arrow date-switcher__arrow-left",
26396
+ onClick: switchPrevMonth
26397
+ }),
26398
+ createElementVNode("span", _hoisted_11$3, toDisplayString(capitalize2(currentDate.value.format("MMMM"))), 1),
26399
+ createElementVNode("div", {
26400
+ class: "date-switcher__arrow date-switcher__arrow-right",
26401
+ onClick: switchNextMonth
26402
+ })
26403
+ ]),
26404
+ createElementVNode("div", _hoisted_12$3, [
26405
+ createElementVNode("div", {
26406
+ class: "date-switcher__arrow date-switcher__arrow-left",
26407
+ onClick: switchPrevYear
26408
+ }),
26409
+ createElementVNode("span", _hoisted_13$3, toDisplayString(capitalize2(currentDate.value.format("YYYY"))), 1),
26410
+ createElementVNode("div", {
26411
+ class: "date-switcher__arrow date-switcher__arrow-right",
26412
+ onClick: switchNextYear
26413
+ })
26332
26414
  ])
26333
26415
  ])
26334
26416
  ]),
26335
- createElementVNode("div", _hoisted_9$4, [
26336
- createElementVNode("div", _hoisted_10$3, [
26337
- createElementVNode("div", {
26338
- class: "date-switcher__arrow date-switcher__arrow-left",
26339
- onClick: switchPrevMonth
26340
- }),
26341
- createElementVNode("span", _hoisted_11$3, toDisplayString(capitalize2(currentDate.value.format("MMMM"))), 1),
26342
- createElementVNode("div", {
26343
- class: "date-switcher__arrow date-switcher__arrow-right",
26344
- onClick: switchNextMonth
26345
- })
26346
- ]),
26347
- createElementVNode("div", _hoisted_12$3, [
26348
- createElementVNode("div", {
26349
- class: "date-switcher__arrow date-switcher__arrow-left",
26350
- onClick: switchPrevYear
26351
- }),
26352
- createElementVNode("span", _hoisted_13$3, toDisplayString(capitalize2(currentDate.value.format("YYYY"))), 1),
26353
- createElementVNode("div", {
26354
- class: "date-switcher__arrow date-switcher__arrow-right",
26355
- onClick: switchNextYear
26356
- })
26357
- ])
26417
+ createElementVNode("div", _hoisted_14$3, [
26418
+ (openBlock(), createElementBlock(Fragment, null, renderList(WEEK_DAYS2, (item, index) => {
26419
+ return createElementVNode("div", {
26420
+ class: "pl-date-picker__week-day",
26421
+ key: index
26422
+ }, [
26423
+ createElementVNode("span", null, toDisplayString(item), 1)
26424
+ ]);
26425
+ }), 64)),
26426
+ (openBlock(true), createElementBlock(Fragment, null, renderList(daysData.value, (item, index) => {
26427
+ return openBlock(), createElementBlock("div", {
26428
+ class: normalizeClass([
26429
+ "pl-date-picker__day-item",
26430
+ item.type !== "previous" && item.type !== "next" ? framePosition(item) : "",
26431
+ {
26432
+ "pl-date-picker__day-item_disabled": item.type !== "current"
26433
+ },
26434
+ {
26435
+ "pl-date-picker__day-item_svg-circle-background": activeDay(item) && item.type === "current"
26436
+ },
26437
+ {
26438
+ "pl-date-picker__background-range": item.type !== "previous" && item.type !== "next" ? updateSelection(item, true) : ""
26439
+ }
26440
+ ]),
26441
+ key: `dd${index}`,
26442
+ onClick: ($event) => item.type !== "previous" && item.type !== "next" ? toggleSelection(item) : "",
26443
+ onMousemove: ($event) => item.type !== "previous" && item.type !== "next" ? updateSelection(item, false) : ""
26444
+ }, [
26445
+ createElementVNode("div", _hoisted_16$2, toDisplayString(item.type !== "previous" && item.type !== "next" ? item.day : ""), 1)
26446
+ ], 42, _hoisted_15$2);
26447
+ }), 128))
26448
+ ]),
26449
+ createElementVNode("div", { class: "pl-date-picker__buttons" }, [
26450
+ createElementVNode("button", {
26451
+ class: "pl-date-picker__btn pl-date-picker__btn-cancel",
26452
+ onClick: cancelButton
26453
+ }, " \u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C "),
26454
+ createElementVNode("button", {
26455
+ class: "pl-date-picker__btn pl-date-picker__btn-confirm",
26456
+ onClick: confirmDate
26457
+ }, " \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C ")
26358
26458
  ])
26359
- ]),
26360
- createElementVNode("div", _hoisted_14$3, [
26361
- (openBlock(), createElementBlock(Fragment, null, renderList(WEEK_DAYS2, (item, index) => {
26362
- return createElementVNode("div", {
26363
- class: "pl-date-picker__week-day",
26364
- key: index
26365
- }, [
26366
- createElementVNode("span", null, toDisplayString(item), 1)
26367
- ]);
26368
- }), 64)),
26369
- (openBlock(true), createElementBlock(Fragment, null, renderList(daysData.value, (item, index) => {
26370
- return openBlock(), createElementBlock("div", {
26371
- class: normalizeClass([
26372
- "pl-date-picker__day-item",
26373
- item.type !== "previous" && item.type !== "next" ? framePosition(item) : "",
26374
- {
26375
- "pl-date-picker__day-item_disabled": item.type !== "current"
26376
- },
26377
- {
26378
- "pl-date-picker__day-item_svg-circle-background": activeDay(item) && item.type === "current"
26379
- },
26380
- {
26381
- "pl-date-picker__background-range": item.type !== "previous" && item.type !== "next" ? updateSelection(item, true) : ""
26382
- }
26383
- ]),
26384
- key: `dd${index}`,
26385
- onClick: ($event) => item.type !== "previous" && item.type !== "next" ? toggleSelection(item) : "",
26386
- onMousemove: ($event) => item.type !== "previous" && item.type !== "next" ? updateSelection(item, false) : ""
26387
- }, [
26388
- createElementVNode("div", _hoisted_16$2, toDisplayString(item.type !== "previous" && item.type !== "next" ? item.day : ""), 1)
26389
- ], 42, _hoisted_15$2);
26390
- }), 128))
26391
- ]),
26392
- createElementVNode("div", { class: "pl-date-picker__buttons" }, [
26393
- createElementVNode("button", {
26394
- class: "pl-date-picker__btn pl-date-picker__btn-cancel",
26395
- onClick: cancelButton
26396
- }, " \u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C "),
26397
- createElementVNode("button", {
26398
- class: "pl-date-picker__btn pl-date-picker__btn-confirm",
26399
- onClick: confirmDate
26400
- }, " \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C ")
26401
- ])
26402
- ], 512)) : createCommentVNode("", true)
26403
- ]);
26459
+ ], 4)) : createCommentVNode("", true)
26460
+ ]))
26461
+ ], 8, _hoisted_1$v);
26404
26462
  };
26405
26463
  }
26406
26464
  };