@stsdti/funky-ui-kit 1.8.8 → 1.8.10

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,5 +1,5 @@
1
1
  import * as Vue from "vue";
2
- import { Fragment, Teleport, Transition, TransitionGroup, computed, createApp, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, getCurrentInstance, guardReactiveProps, h, inject, isReactive, isRef, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onBeforeUpdate, onMounted, onUnmounted, openBlock, provide, reactive, readonly, ref, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, shallowRef, toDisplayString, toRef, toValue, unref, useAttrs, useModel, useSlots, useTemplateRef, vModelDynamic, vModelText, vShow, watch, watchEffect, withCtx, withDirectives, withKeys, withModifiers } from "vue";
2
+ import { Fragment, Teleport, Transition, TransitionGroup, computed, createApp, createBlock, createCommentVNode, createElementBlock, createElementVNode, createPropsRestProxy, createSlots, createTextVNode, createVNode, defineComponent, getCurrentInstance, guardReactiveProps, h, inject, isReactive, isRef, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onBeforeUpdate, onMounted, onUnmounted, openBlock, provide, reactive, readonly, ref, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, shallowRef, toDisplayString, toRef, toValue, unref, useAttrs, useModel, useSlots, useTemplateRef, vModelDynamic, vModelText, vShow, watch, watchEffect, withCtx, withDirectives, withKeys, withModifiers } from "vue";
3
3
  import draggable from "vuedraggable";
4
4
  //#region \0rolldown/runtime.js
5
5
  var __create = Object.create;
@@ -16226,7 +16226,7 @@ var deepHas = (obj, p) => {
16226
16226
  let parent = (0, import_property_expr.getter)((0, import_property_expr.join)(path), true)(obj);
16227
16227
  return !!(parent && last in parent);
16228
16228
  };
16229
- var isObject$15 = (obj) => Object.prototype.toString.call(obj) === "[object Object]";
16229
+ var isObject$16 = (obj) => Object.prototype.toString.call(obj) === "[object Object]";
16230
16230
  function unknown(ctx, value) {
16231
16231
  let known = Object.keys(ctx.fields);
16232
16232
  return Object.keys(value).filter((key) => known.indexOf(key) === -1);
@@ -16240,7 +16240,7 @@ var ObjectSchema = class extends Schema {
16240
16240
  super({
16241
16241
  type: "object",
16242
16242
  check(value) {
16243
- return isObject$15(value) || typeof value === "function";
16243
+ return isObject$16(value) || typeof value === "function";
16244
16244
  }
16245
16245
  });
16246
16246
  this.fields = Object.create(null);
@@ -16299,7 +16299,7 @@ var ObjectSchema = class extends Schema {
16299
16299
  options.__validating = true;
16300
16300
  options.originalValue = originalValue;
16301
16301
  super._validate(_value, options, panic, (objectErrors, value) => {
16302
- if (!recursive || !isObject$15(value)) {
16302
+ if (!recursive || !isObject$16(value)) {
16303
16303
  next(objectErrors, value);
16304
16304
  return;
16305
16305
  }
@@ -18850,12 +18850,12 @@ var _sfc_main$33 = {
18850
18850
  //#endregion
18851
18851
  //#region src/components/small/app-breadcrumb/AppBreadcrumbs.vue
18852
18852
  var _hoisted_1$83 = { class: "breadcrumb" };
18853
- var _hoisted_2$61 = {
18853
+ var _hoisted_2$59 = {
18854
18854
  key: 0,
18855
18855
  class: "breadcrumb-elements-item"
18856
18856
  };
18857
- var _hoisted_3$44 = { class: "flex-center-vertical" };
18858
- var _hoisted_4$34 = {
18857
+ var _hoisted_3$42 = { class: "flex-center-vertical" };
18858
+ var _hoisted_4$33 = {
18859
18859
  key: 0,
18860
18860
  class: "pl-5 pr-5"
18861
18861
  };
@@ -18880,14 +18880,14 @@ var _sfc_main$2 = {
18880
18880
  };
18881
18881
  return (_ctx, _cache) => {
18882
18882
  const _component_router_link = resolveComponent("router-link");
18883
- return openBlock(), createElementBlock("div", _hoisted_1$83, [__props.isLoading ? (openBlock(), createElementBlock("div", _hoisted_2$61, [createVNode(_sfc_main$33, { style: {
18883
+ return openBlock(), createElementBlock("div", _hoisted_1$83, [__props.isLoading ? (openBlock(), createElementBlock("div", _hoisted_2$59, [createVNode(_sfc_main$33, { style: {
18884
18884
  "width": "200px",
18885
18885
  "height": "20px"
18886
18886
  } })])) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(__props.value, (breadcrumb, index) => {
18887
- return openBlock(), createElementBlock("div", _hoisted_3$44, [renderSlot(_ctx.$slots, "breadcrumb", {
18887
+ return openBlock(), createElementBlock("div", _hoisted_3$42, [renderSlot(_ctx.$slots, "breadcrumb", {
18888
18888
  index,
18889
18889
  item: breadcrumb
18890
- }, () => [index !== 0 ? (openBlock(), createElementBlock("span", _hoisted_4$34, "/")) : createCommentVNode("", true), (openBlock(), createBlock(_component_router_link, {
18890
+ }, () => [index !== 0 ? (openBlock(), createElementBlock("span", _hoisted_4$33, "/")) : createCommentVNode("", true), (openBlock(), createBlock(_component_router_link, {
18891
18891
  key: index,
18892
18892
  class: normalizeClass(getBreadcrumbClass(breadcrumb)),
18893
18893
  to: breadcrumb.route ? breadcrumb.route : "/"
@@ -21857,20 +21857,20 @@ var booleanProps = [
21857
21857
  "touch",
21858
21858
  "touchHold"
21859
21859
  ];
21860
- var props = {};
21860
+ var props$2 = {};
21861
21861
  Object.keys(tippy.defaultProps).forEach((prop) => {
21862
- if (booleanProps.includes(prop)) props[prop] = {
21862
+ if (booleanProps.includes(prop)) props$2[prop] = {
21863
21863
  type: Boolean,
21864
21864
  default: function() {
21865
21865
  return tippy.defaultProps[prop];
21866
21866
  }
21867
21867
  };
21868
- else props[prop] = { default: function() {
21868
+ else props$2[prop] = { default: function() {
21869
21869
  return tippy.defaultProps[prop];
21870
21870
  } };
21871
21871
  });
21872
21872
  var TippySingleton = defineComponent({
21873
- props,
21873
+ props: props$2,
21874
21874
  setup(props) {
21875
21875
  const instances = ref([]);
21876
21876
  const { singleton } = useSingleton(instances, props);
@@ -22295,15 +22295,15 @@ var _plugin_vue_export_helper_default = (sfc, props) => {
22295
22295
  //#endregion
22296
22296
  //#region src/components/small/base/app-form-element/AppFormElement.vue
22297
22297
  var _hoisted_1$82 = ["name"];
22298
- var _hoisted_2$60 = {
22298
+ var _hoisted_2$58 = {
22299
22299
  key: 0,
22300
22300
  class: "text-danger"
22301
22301
  };
22302
- var _hoisted_3$43 = {
22302
+ var _hoisted_3$41 = {
22303
22303
  key: 0,
22304
22304
  class: "help-block text-danger"
22305
22305
  };
22306
- var _hoisted_4$33 = {
22306
+ var _hoisted_4$32 = {
22307
22307
  key: 1,
22308
22308
  class: "help-block"
22309
22309
  };
@@ -22377,14 +22377,14 @@ var AppFormElement_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
22377
22377
  key: 0,
22378
22378
  class: "mb-0",
22379
22379
  style: normalizeStyle(labelStyle.value)
22380
- }, [createTextVNode(toDisplayString(unref(computedLabel)) + " ", 1), _ctx.isRequired ? withDirectives((openBlock(), createElementBlock("span", _hoisted_2$60, [..._cache[0] || (_cache[0] = [createTextVNode(" * ", -1)])])), [[_directive_tippy, "Camp obligatoriu"]]) : createCommentVNode("", true)], 4)) : createCommentVNode("", true), createElementVNode("div", { style: normalizeStyle(contentStyle.value) }, [
22380
+ }, [createTextVNode(toDisplayString(unref(computedLabel)) + " ", 1), _ctx.isRequired ? withDirectives((openBlock(), createElementBlock("span", _hoisted_2$58, [..._cache[0] || (_cache[0] = [createTextVNode(" * ", -1)])])), [[_directive_tippy, "Camp obligatoriu"]]) : createCommentVNode("", true)], 4)) : createCommentVNode("", true), createElementVNode("div", { style: normalizeStyle(contentStyle.value) }, [
22381
22381
  createElementVNode("div", { class: normalizeClass(contentContainerClass.value) }, [
22382
22382
  renderSlot(_ctx.$slots, "beforeContent", {}, void 0, true),
22383
22383
  createElementVNode("div", { class: normalizeClass(contentSlotClass.value) }, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 2),
22384
22384
  renderSlot(_ctx.$slots, "afterContent", {}, void 0, true)
22385
22385
  ], 2),
22386
- currentError.value ? (openBlock(), createElementBlock("span", _hoisted_3$43, toDisplayString(currentError.value), 1)) : createCommentVNode("", true),
22387
- _ctx.infoText ? (openBlock(), createElementBlock("span", _hoisted_4$33, toDisplayString(_ctx.infoText), 1)) : createCommentVNode("", true),
22386
+ currentError.value ? (openBlock(), createElementBlock("span", _hoisted_3$41, toDisplayString(currentError.value), 1)) : createCommentVNode("", true),
22387
+ _ctx.infoText ? (openBlock(), createElementBlock("span", _hoisted_4$32, toDisplayString(_ctx.infoText), 1)) : createCommentVNode("", true),
22388
22388
  renderSlot(_ctx.$slots, "help-block", {}, void 0, true)
22389
22389
  ], 4)], 10, _hoisted_1$82)) : createCommentVNode("", true);
22390
22390
  };
@@ -27646,10 +27646,10 @@ var booleanOption = {
27646
27646
  }
27647
27647
  };
27648
27648
  //#endregion
27649
- //#region src/components/small/app-date-picker/AppDatePickerDayOfWeek.vue
27649
+ //#region src/components/small/app-day-of-week/AppDayOfWeek.vue
27650
27650
  var _hoisted_1$81 = { class: "badge bg-secondary day-of-week-badge" };
27651
27651
  var _sfc_main$8 = {
27652
- __name: "AppDatePickerDayOfWeek",
27652
+ __name: "AppDayOfWeek",
27653
27653
  props: {
27654
27654
  value: { type: Date },
27655
27655
  language: {
@@ -27673,41 +27673,15 @@ var _sfc_main$8 = {
27673
27673
  }
27674
27674
  };
27675
27675
  //#endregion
27676
- //#region src/components/small/app-date-picker/appDatePickerProps.js
27677
- var appDatePickerProps_default = {
27678
- showEasyButtons: Boolean,
27679
- showDayOfWeek: { default: true },
27680
- currentLanguage: {
27681
- type: String,
27682
- default: Constants_default.LANGUAGE_RO
27683
- },
27684
- currentFormat: {
27685
- type: String,
27686
- default: "dd.MM.yyyy"
27687
- },
27688
- disabledDates: {},
27689
- isTypeable: {
27690
- type: Boolean,
27691
- default: true
27692
- },
27693
- yearRange: {
27694
- type: Array,
27695
- validator: (value) => {
27696
- return Array.isArray(value) && value.length === 2 && (typeof value[0] === "number" || value[0] === null) && (typeof value[1] === "number" || value[1] === null);
27697
- }
27698
- }
27699
- };
27700
- //#endregion
27701
- //#region src/components/small/app-date-time-picker/AppDateEasyButtons.vue
27676
+ //#region src/components/small/app-date/AppDateEasyButtons.vue
27702
27677
  var _hoisted_1$80 = { class: "" };
27703
- var CODE_SUB_DAY$1 = "subday";
27704
- var CODE_TODAY$1 = "today";
27705
- var CODE_ADD_DAY$1 = "addday";
27706
- var _sfc_main$116 = {
27678
+ var CODE_SUB_DAY = "subday";
27679
+ var CODE_TODAY = "today";
27680
+ var CODE_ADD_DAY = "addday";
27681
+ var _sfc_main$115 = {
27707
27682
  __name: "AppDateEasyButtons",
27708
27683
  props: {
27709
27684
  modelValue: Date,
27710
- ...appDatePickerProps_default,
27711
27685
  ...appFormElementProps_default
27712
27686
  },
27713
27687
  emits: ["update:modelValue"],
@@ -27717,17 +27691,17 @@ var _sfc_main$116 = {
27717
27691
  const buttons = ref([
27718
27692
  {
27719
27693
  value: "-1",
27720
- code: CODE_SUB_DAY$1,
27694
+ code: CODE_SUB_DAY,
27721
27695
  class: "btn-light"
27722
27696
  },
27723
27697
  {
27724
27698
  value: "Astazi",
27725
- code: CODE_TODAY$1,
27699
+ code: CODE_TODAY,
27726
27700
  class: "btn-light"
27727
27701
  },
27728
27702
  {
27729
27703
  value: "+1",
27730
- code: CODE_ADD_DAY$1,
27704
+ code: CODE_ADD_DAY,
27731
27705
  class: "btn-light"
27732
27706
  }
27733
27707
  ]);
@@ -27741,13 +27715,13 @@ var _sfc_main$116 = {
27741
27715
  });
27742
27716
  const onEasyButtonsInput = (value) => {
27743
27717
  switch (value.code) {
27744
- case CODE_ADD_DAY$1:
27718
+ case CODE_ADD_DAY:
27745
27719
  onAddDay();
27746
27720
  break;
27747
- case CODE_TODAY$1:
27721
+ case CODE_TODAY:
27748
27722
  onSelectToday();
27749
27723
  break;
27750
- case CODE_SUB_DAY$1:
27724
+ case CODE_SUB_DAY:
27751
27725
  onSubtractDay();
27752
27726
  break;
27753
27727
  }
@@ -27829,7 +27803,7 @@ function toValue$2(r) {
27829
27803
  var isClient$1 = typeof window !== "undefined" && typeof document !== "undefined";
27830
27804
  typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
27831
27805
  var toString$2 = Object.prototype.toString;
27832
- var isObject$13 = (val) => toString$2.call(val) === "[object Object]";
27806
+ var isObject$14 = (val) => toString$2.call(val) === "[object Object]";
27833
27807
  var noop$2 = () => {};
27834
27808
  var isIOS$1 = /* @__PURE__ */ getIsIOS$1();
27835
27809
  function getIsIOS$1() {
@@ -28002,7 +27976,7 @@ function useEventListener$1(...args) {
28002
27976
  const stopWatch = (0, lib_exports$1.watch)(() => [unrefElement$1(target), toValue$2(options)], ([el, options2]) => {
28003
27977
  cleanup();
28004
27978
  if (!el) return;
28005
- const optionsClone = isObject$13(options2) ? { ...options2 } : options2;
27979
+ const optionsClone = isObject$14(options2) ? { ...options2 } : options2;
28006
27980
  cleanups.push(...events.flatMap((event) => {
28007
27981
  return listeners.map((listener) => register(el, event, listener, optionsClone));
28008
27982
  }));
@@ -28294,7 +28268,7 @@ function useClickOutside(options = {}) {
28294
28268
  //#endregion
28295
28269
  //#region src/components/small/app-date/AppDate.vue
28296
28270
  var _hoisted_1$79 = ["onClick"];
28297
- var _hoisted_2$59 = [
28271
+ var _hoisted_2$57 = [
28298
28272
  "value",
28299
28273
  "disabled",
28300
28274
  "placeholder",
@@ -28305,14 +28279,14 @@ var _hoisted_2$59 = [
28305
28279
  "onKeypress",
28306
28280
  "onPaste"
28307
28281
  ];
28308
- var _hoisted_3$42 = { key: 0 };
28309
- var _hoisted_4$32 = {
28282
+ var _hoisted_3$40 = { key: 0 };
28283
+ var _hoisted_4$31 = {
28310
28284
  key: 1,
28311
28285
  class: "app-form-element-placeholder"
28312
28286
  };
28313
28287
  var _hoisted_5$24 = { class: "mr-10" };
28314
- var _hoisted_6$15 = ["onClick"];
28315
- var _hoisted_7$8 = {
28288
+ var _hoisted_6$14 = ["onClick"];
28289
+ var _hoisted_7$7 = {
28316
28290
  key: 0,
28317
28291
  class: "ml-10"
28318
28292
  };
@@ -28443,12 +28417,12 @@ var AppDate_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
28443
28417
  onKeydown: [withKeys(onEnter, ["enter"]), withKeys(onTab, ["tab"])],
28444
28418
  onKeypress,
28445
28419
  onPaste
28446
- }, null, 40, _hoisted_2$59)) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [modelValue.value ? (openBlock(), createElementBlock("span", _hoisted_3$42, toDisplayString(value), 1)) : (openBlock(), createElementBlock("span", _hoisted_4$32, toDisplayString(unref(computedPlaceHolder)), 1))], 64))
28420
+ }, null, 40, _hoisted_2$57)) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [modelValue.value ? (openBlock(), createElementBlock("span", _hoisted_3$40, toDisplayString(value), 1)) : (openBlock(), createElementBlock("span", _hoisted_4$31, toDisplayString(unref(computedPlaceHolder)), 1))], 64))
28447
28421
  ], 8, _hoisted_1$79)]),
28448
28422
  "clear-icon": withCtx(({ clear }) => [createElementVNode("div", _hoisted_5$24, [withDirectives(createElementVNode("i", {
28449
28423
  class: "ph-x-circle app-cross-icon",
28450
28424
  onClick: withModifiers(clear, ["stop"])
28451
- }, null, 8, _hoisted_6$15), [[_directive_tippy, "Sterge"]])])]),
28425
+ }, null, 8, _hoisted_6$14), [[_directive_tippy, "Sterge"]])])]),
28452
28426
  _: 2
28453
28427
  }, [renderList(forwardedSlots.value, (slot) => {
28454
28428
  return {
@@ -28467,7 +28441,7 @@ var AppDate_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
28467
28441
  "weekStart",
28468
28442
  "locale",
28469
28443
  "teleport"
28470
- ]), __props.showEasyButtons && !_ctx.disabled ? (openBlock(), createElementBlock("div", _hoisted_7$8, [createVNode(_sfc_main$116, {
28444
+ ]), __props.showEasyButtons && !_ctx.disabled ? (openBlock(), createElementBlock("div", _hoisted_7$7, [createVNode(_sfc_main$115, {
28471
28445
  modelValue: modelValue.value,
28472
28446
  "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => modelValue.value = $event)
28473
28447
  }, null, 8, ["modelValue"])])) : createCommentVNode("", true)]),
@@ -28475,170 +28449,42 @@ var AppDate_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
28475
28449
  }, 16);
28476
28450
  };
28477
28451
  }
28478
- }, [["__scopeId", "data-v-dbda72e2"]]);
28452
+ }, [["__scopeId", "data-v-f92c063d"]]);
28479
28453
  //#endregion
28480
- //#region src/components/small/app-date-picker/AppDatePicker.vue
28481
- var _hoisted_1$78 = {
28482
- class: "flex-center-vertical dp__input dp__pointer dp__input_readonly dp__input_reg",
28483
- style: { "gap": "3px" }
28484
- };
28485
- var _hoisted_2$58 = [
28486
- "disabled",
28487
- "placeholder",
28488
- "onBlur",
28489
- "onKeydown",
28490
- "onKeypress",
28491
- "onPaste"
28492
- ];
28493
- var _hoisted_3$41 = { key: 0 };
28494
- var _hoisted_4$31 = {
28495
- key: 1,
28496
- class: "app-form-element-placeholder"
28497
- };
28498
- var _hoisted_5$23 = { class: "form-control-feedback form-control-feedback-end" };
28499
- var _hoisted_6$14 = { class: "form-control-feedback-icon" };
28500
- var _hoisted_7$7 = {
28501
- key: 0,
28502
- class: "ml-10"
28503
- };
28504
- var _sfc_main$114 = {
28505
- __name: "AppDatePicker",
28506
- props: /*@__PURE__*/ mergeModels({
28507
- ...appDatePickerProps_default,
28508
- ...appFormElementProps_default
28509
- }, {
28510
- "modelValue": { type: Date },
28511
- "modelModifiers": {}
28512
- }),
28513
- emits: ["update:modelValue"],
28514
- setup(__props) {
28515
- const modelValue = useModel(__props, "modelValue");
28516
- const inputValue = ref("");
28517
- const isMenuOpen = ref(false);
28518
- const props = __props;
28519
- const { formElementProps, computedName, computedPlaceHolder } = useAppFormElement(props);
28520
- const computedClass = computed(() => ({
28521
- "app-date-picker": true,
28522
- "disabled-element": props.disabled
28523
- }));
28524
- const computedFormats = computed(() => ({
28525
- input: props.currentFormat,
28526
- preview: props.currentFormat
28527
- }));
28528
- const isDayOfWeekVisible = computed(() => props.showDayOfWeek && modelValue.value);
28529
- watch(modelValue, (newValue) => {
28530
- inputValue.value = newValue ? format$1(newValue, props.currentFormat) : "";
28531
- }, { immediate: true });
28532
- const attemptToParseDate = (dateStr) => {
28533
- if (!(0, import_lodash.isString)(dateStr)) return null;
28534
- dateStr = dateStr.replace(/[.,\-\/]/g, ".");
28535
- const formats = [props.currentFormat.replace("yyyy", "yy"), props.currentFormat];
28536
- for (const format of formats) {
28537
- const date = parse$2(dateStr, format, /* @__PURE__ */ new Date());
28538
- if (!isNaN(date.getTime())) return date;
28539
- }
28540
- };
28541
- const applyInputValue = () => {
28542
- let parsedDate = attemptToParseDate(inputValue.value);
28543
- parsedDate ? modelValue.value = parsedDate : clearValues();
28544
- };
28545
- const clearValues = () => {
28546
- modelValue.value = null;
28547
- inputValue.value = null;
28548
- };
28549
- const updateDate = (date) => {
28550
- date.setHours(0);
28551
- date.setMinutes(0);
28552
- date.setSeconds(0);
28553
- };
28554
- useClickOutside({ isOpen: isMenuOpen });
28555
- return (_ctx, _cache) => {
28556
- const _component_app_date_picker_day_of_week = resolveComponent("app-date-picker-day-of-week");
28557
- const _component_vue_date_picker = resolveComponent("vue-date-picker");
28558
- return openBlock(), createBlock(AppFormElement_default, normalizeProps(guardReactiveProps(unref(formElementProps))), createSlots({
28559
- default: withCtx(() => [createVNode(_component_vue_date_picker, mergeProps({
28560
- modelValue: modelValue.value,
28561
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => modelValue.value = $event)
28562
- }, _ctx.$attrs, {
28563
- position: "left",
28564
- "action-row": {
28565
- showSelect: true,
28566
- showCancel: true,
28567
- showPreview: true
28568
- },
28569
- "auto-apply": true,
28570
- class: computedClass.value,
28571
- "disabled-dates": _ctx.disabledDates,
28572
- disabled: _ctx.disabled,
28573
- "enable-time-picker": false,
28574
- locale: unref(locale),
28575
- formats: computedFormats.value,
28576
- name: unref(computedName),
28577
- placeholder: unref(computedPlaceHolder),
28578
- "text-input": _ctx.isTypeable,
28579
- onDateUpdate: updateDate,
28580
- onClosed: _cache[2] || (_cache[2] = ($event) => isMenuOpen.value = false),
28581
- onOpen: _cache[3] || (_cache[3] = ($event) => isMenuOpen.value = true)
28582
- }), {
28583
- "dp-input": withCtx(({ value, isMenuOpen, onTab, onKeypress, onPaste }) => [createElementVNode("div", _hoisted_1$78, [
28584
- _cache[5] || (_cache[5] = createElementVNode("i", { class: "ph-calendar-blank" }, null, -1)),
28585
- isDayOfWeekVisible.value ? (openBlock(), createBlock(_component_app_date_picker_day_of_week, {
28586
- key: 0,
28587
- language: _ctx.currentLanguage,
28588
- value: modelValue.value
28589
- }, null, 8, ["language", "value"])) : createCommentVNode("", true),
28590
- props.isTypeable ? withDirectives((openBlock(), createElementBlock("input", {
28591
- key: 1,
28592
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inputValue.value = $event),
28593
- class: "dp__input_readonly dp__input_icon_pad dp__input_reg borderless-input date-picker-input",
28594
- type: "text",
28595
- disabled: _ctx.disabled,
28596
- placeholder: _ctx.placeholder,
28597
- onBlur: ($event) => !isMenuOpen && applyInputValue(),
28598
- onKeydown: [withKeys(applyInputValue, ["enter"]), withKeys(onTab, ["tab"])],
28599
- onKeypress,
28600
- onPaste
28601
- }, null, 40, _hoisted_2$58)), [[vModelText, inputValue.value]]) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [modelValue.value ? (openBlock(), createElementBlock("span", _hoisted_3$41, toDisplayString(value), 1)) : (openBlock(), createElementBlock("span", _hoisted_4$31, toDisplayString(_ctx.placeholder), 1))], 64))
28602
- ])]),
28603
- "clear-icon": withCtx(() => [createElementVNode("div", _hoisted_5$23, [createElementVNode("div", _hoisted_6$14, [createElementVNode("i", {
28604
- class: "ph-x-circle app-cross-icon mb-15",
28605
- onClick: withModifiers(clearValues, ["stop"])
28606
- })])])]),
28607
- _: 1
28608
- }, 16, [
28609
- "modelValue",
28610
- "class",
28611
- "disabled-dates",
28612
- "disabled",
28613
- "locale",
28614
- "formats",
28615
- "name",
28616
- "placeholder",
28617
- "text-input"
28618
- ]), _ctx.showEasyButtons && !_ctx.disabled ? (openBlock(), createElementBlock("div", _hoisted_7$7, [createVNode(_sfc_main$116, {
28619
- modelValue: modelValue.value,
28620
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => modelValue.value = $event)
28621
- }, null, 8, ["modelValue"])])) : createCommentVNode("", true)]),
28622
- _: 2
28623
- }, [renderList(Object.keys(_ctx.$slots), (slot) => {
28624
- return {
28625
- name: slot,
28626
- fn: withCtx((scope) => [renderSlot(_ctx.$slots, slot, normalizeProps(guardReactiveProps(scope)))])
28627
- };
28628
- })]), 1040);
28629
- };
28454
+ //#region src/components/small/app-date/AppDate.js
28455
+ var props$1 = {
28456
+ showEasyButtons: Boolean,
28457
+ showDayOfWeek: { default: true },
28458
+ currentLanguage: {
28459
+ type: String,
28460
+ default: Constants_default.LANGUAGE_RO
28461
+ },
28462
+ currentFormat: {
28463
+ type: String,
28464
+ default: "dd.MM.yyyy"
28465
+ },
28466
+ disabledDates: {},
28467
+ isTypeable: {
28468
+ type: Boolean,
28469
+ default: true
28470
+ },
28471
+ yearRange: {
28472
+ type: Array,
28473
+ validator: (value) => {
28474
+ return Array.isArray(value) && value.length === 2 && (typeof value[0] === "number" || value[0] === null) && (typeof value[1] === "number" || value[1] === null);
28475
+ }
28630
28476
  }
28631
28477
  };
28632
28478
  //#endregion
28633
- //#region src/components/small/app-date-picker/AppDatePickerRange.vue
28634
- var _hoisted_1$77 = { class: "w-100" };
28635
- var _hoisted_2$57 = { class: "flex-center-vertical w-100 gap-1" };
28636
- var _hoisted_3$40 = {
28479
+ //#region src/components/small/app-date/AppDateRange.vue
28480
+ var _hoisted_1$78 = { class: "w-100" };
28481
+ var _hoisted_2$56 = { class: "flex-center-vertical w-100 gap-1" };
28482
+ var _hoisted_3$39 = {
28637
28483
  key: 0,
28638
28484
  class: "flex-center-vertical mt-1"
28639
28485
  };
28640
28486
  var _sfc_main$9 = {
28641
- __name: "AppDatePickerRange",
28487
+ __name: "AppDateRange",
28642
28488
  props: /*@__PURE__*/ mergeModels({
28643
28489
  placeholderLeft: {
28644
28490
  type: String,
@@ -28650,7 +28496,7 @@ var _sfc_main$9 = {
28650
28496
  },
28651
28497
  startName: { type: String },
28652
28498
  endName: { type: String },
28653
- ...appDatePickerProps_default,
28499
+ ...props$1,
28654
28500
  ...appFormElementProps_default
28655
28501
  }, {
28656
28502
  "start": { type: Date },
@@ -28699,8 +28545,8 @@ var _sfc_main$9 = {
28699
28545
  const _component_app_date = resolveComponent("app-date");
28700
28546
  const _component_app_button_group = resolveComponent("app-button-group");
28701
28547
  return openBlock(), createBlock(AppFormElement_default, normalizeProps(guardReactiveProps(unref(formElementProps))), {
28702
- default: withCtx(() => [createElementVNode("div", _hoisted_1$77, [
28703
- createElementVNode("div", _hoisted_2$57, [createVNode(_component_app_date, mergeProps({
28548
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$78, [
28549
+ createElementVNode("div", _hoisted_2$56, [createVNode(_component_app_date, mergeProps({
28704
28550
  modelValue: modelValueStart.value,
28705
28551
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValueStart.value = $event),
28706
28552
  class: "app-form-group-element flex-1",
@@ -28723,7 +28569,7 @@ var _sfc_main$9 = {
28723
28569
  "placeholder",
28724
28570
  "name"
28725
28571
  ])]),
28726
- _ctx.showEasyButtons ? (openBlock(), createElementBlock("div", _hoisted_3$40, [createVNode(_component_app_button_group, {
28572
+ _ctx.showEasyButtons ? (openBlock(), createElementBlock("div", _hoisted_3$39, [createVNode(_component_app_button_group, {
28727
28573
  value: unref(easyButtonsList),
28728
28574
  onClick: onEasyButtonClick
28729
28575
  }, null, 8, ["value"])])) : createCommentVNode("", true),
@@ -28736,9 +28582,9 @@ var _sfc_main$9 = {
28736
28582
  };
28737
28583
  //#endregion
28738
28584
  //#region src/components/small/app-card/AppCard.vue
28739
- var _hoisted_1$76 = { class: "d-flex align-items-center" };
28740
- var _hoisted_2$56 = { class: "mb-0 fw-normal" };
28741
- var _hoisted_3$39 = { class: "ms-auto" };
28585
+ var _hoisted_1$77 = { class: "d-flex align-items-center" };
28586
+ var _hoisted_2$55 = { class: "mb-0 fw-normal" };
28587
+ var _hoisted_3$38 = { class: "ms-auto" };
28742
28588
  var _sfc_main$5 = {
28743
28589
  __name: "AppCard",
28744
28590
  props: {
@@ -28829,10 +28675,10 @@ var _sfc_main$5 = {
28829
28675
  key: 0,
28830
28676
  class: normalizeClass([headerClasses.value]),
28831
28677
  onClick: collapseBody
28832
- }, [createElementVNode("div", _hoisted_1$76, [createElementVNode("div", _hoisted_2$56, [renderSlot(_ctx.$slots, "title"), createElementVNode("div", {
28678
+ }, [createElementVNode("div", _hoisted_1$77, [createElementVNode("div", _hoisted_2$55, [renderSlot(_ctx.$slots, "title"), createElementVNode("div", {
28833
28679
  class: "header-elements-toggle d-none",
28834
28680
  onClick: toggleVisibleHeadingElement
28835
- }, [..._cache[0] || (_cache[0] = [createElementVNode("i", { class: "icon-more" }, null, -1)])])]), createElementVNode("div", _hoisted_3$39, [createElementVNode("div", { class: normalizeClass([headerElementsClasses.value]) }, [renderSlot(_ctx.$slots, "heading-elements"), __props.canCollapse ? (openBlock(), createElementBlock("i", {
28681
+ }, [..._cache[0] || (_cache[0] = [createElementVNode("i", { class: "icon-more" }, null, -1)])])]), createElementVNode("div", _hoisted_3$38, [createElementVNode("div", { class: normalizeClass([headerElementsClasses.value]) }, [renderSlot(_ctx.$slots, "heading-elements"), __props.canCollapse ? (openBlock(), createElementBlock("i", {
28836
28682
  key: 0,
28837
28683
  class: normalizeClass(expandArrowClass.value)
28838
28684
  }, null, 2)) : createCommentVNode("", true)], 2)])])], 2)) : createCommentVNode("", true), createElementVNode("div", {
@@ -28844,7 +28690,7 @@ var _sfc_main$5 = {
28844
28690
  };
28845
28691
  //#endregion
28846
28692
  //#region src/components/small/app-checkbox/AppCheckbox.vue
28847
- var _hoisted_1$75 = ["checked"];
28693
+ var _hoisted_1$76 = ["checked"];
28848
28694
  var _sfc_main$7 = {
28849
28695
  __name: "AppCheckbox",
28850
28696
  props: {
@@ -28887,7 +28733,7 @@ var _sfc_main$7 = {
28887
28733
  checked: __props.modelValue,
28888
28734
  class: checkedClass.value,
28889
28735
  type: "checkbox"
28890
- }, getDisabled.value), null, 16, _hoisted_1$75), renderSlot(_ctx.$slots, "afterCheckbox")], 2)]),
28736
+ }, getDisabled.value), null, 16, _hoisted_1$76), renderSlot(_ctx.$slots, "afterCheckbox")], 2)]),
28891
28737
  _: 3
28892
28738
  }, 16, ["label-style"]);
28893
28739
  };
@@ -30332,6 +30178,10 @@ var _sfc_main$112 = {
30332
30178
  width: {
30333
30179
  type: [String, Number],
30334
30180
  default: null
30181
+ },
30182
+ placement: {
30183
+ type: String,
30184
+ default: "bottom-start"
30335
30185
  }
30336
30186
  },
30337
30187
  setup(__props) {
@@ -30347,7 +30197,7 @@ var _sfc_main$112 = {
30347
30197
  else anchorEl.value = props.anchor;
30348
30198
  }, { immediate: true });
30349
30199
  const { x, y, strategy } = useFloating(anchorEl, floatingEl, {
30350
- placement: "bottom-start",
30200
+ placement: computed(() => props.placement),
30351
30201
  strategy: "absolute",
30352
30202
  whileElementsMounted: autoUpdate,
30353
30203
  middleware: [
@@ -30387,435 +30237,414 @@ var _sfc_main$112 = {
30387
30237
  }
30388
30238
  };
30389
30239
  //#endregion
30390
- //#region src/components/small/app-grid-picker/AppGridPicker.vue
30391
- var _hoisted_1$74 = { class: "w-100 position-relative cursor-pointer" };
30392
- var _hoisted_2$55 = ["placeholder"];
30393
- var _hoisted_3$38 = {
30394
- key: 1,
30395
- class: "flex-1 input-placeholder"
30396
- };
30397
- var _hoisted_4$30 = {
30398
- key: 2,
30399
- class: "form-control-feedback-icon clear-button"
30400
- };
30401
- var _hoisted_5$22 = ["onClick"];
30402
- var AppGridPicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
30403
- __name: "AppGridPicker",
30404
- props: /*@__PURE__*/ mergeModels({
30405
- options: {
30406
- type: Array,
30407
- required: true
30408
- },
30409
- displayBy: {
30410
- type: [String],
30411
- default: "name"
30412
- },
30413
- openDirection: {
30414
- type: String,
30415
- default: "bottom"
30416
- },
30417
- columns: {
30418
- type: Number,
30419
- default: 4
30420
- },
30421
- width: {
30422
- type: Number,
30423
- default: 200
30424
- },
30425
- height: {
30426
- type: Number,
30427
- default: 500
30428
- },
30429
- showRemoveButtons: {
30430
- type: Boolean,
30431
- default: true
30432
- },
30433
- isTypeable: {
30434
- type: Boolean,
30435
- default: true
30240
+ //#region src/components/small/app-time/AppTimeEasyButtons.vue
30241
+ var _hoisted_1$75 = { class: "" };
30242
+ var CODE_SUB_HOUR = "subhour";
30243
+ var CODE_NOW = "now";
30244
+ var CODE_ADD_HOUR = "addhour";
30245
+ var _sfc_main$111 = {
30246
+ __name: "AppTimeEasyButtons",
30247
+ props: /*@__PURE__*/ mergeModels({ format: {
30248
+ type: String,
30249
+ default: "hh:mm"
30250
+ } }, {
30251
+ "modelValue": {
30252
+ type: [String, null],
30253
+ default: null
30436
30254
  },
30437
- search: { type: Function },
30438
- isItemSelected: {},
30439
- ...appFormElementProps_default
30440
- }, {
30441
- "modelValue": {},
30442
30255
  "modelModifiers": {}
30443
30256
  }),
30444
- emits: /*@__PURE__*/ mergeModels(["close", "search"], ["update:modelValue"]),
30445
- setup(__props, { expose: __expose, emit: __emit }) {
30446
- const modelValue = useModel(__props, "modelValue");
30257
+ emits: ["update:modelValue"],
30258
+ setup(__props) {
30447
30259
  const props = __props;
30448
- const emits = __emit;
30449
- ref("100%");
30450
- const showGrid = ref(false);
30451
- const input = ref(null);
30452
- const grid = ref(null);
30453
- const searchValue = ref(null);
30454
- const searchField = ref(null);
30455
- const filteredOptions = ref((0, import_lodash.cloneDeep)(props.options));
30456
- const { formElementProps } = useAppFormElement(props);
30457
- const heightComputed = computed(() => {
30458
- const rows = Math.ceil(filteredOptions.value.length / props.columns);
30459
- return (0, import_lodash.min)([props.width / props.columns * rows, props.height]);
30460
- });
30461
- computed(() => {
30462
- return {
30463
- width: props.width + "px",
30464
- height: heightComputed.value + "px"
30465
- };
30466
- });
30467
- const cellStyle = computed(() => {
30468
- const width = props.width / props.columns;
30469
- return {
30470
- width: width + "px",
30471
- height: width + "px"
30472
- };
30473
- });
30474
- const open = () => {
30475
- if (props.disabled) return;
30476
- showGrid.value = true;
30477
- if (props.isTypeable) nextTick(() => searchField.value.focus());
30478
- };
30479
- const close = () => {
30480
- showGrid.value = false;
30481
- emits("close");
30482
- };
30483
- const onSelectValue = (element, index) => {
30484
- modelValue.value = element;
30485
- close();
30486
- };
30487
- const getDisplayValue = (value) => {
30488
- if ((0, import_lodash.isObject)(value)) return (0, import_lodash.get)(value, props.displayBy, null);
30489
- return value;
30490
- };
30491
- const getActiveClass = (element) => {
30492
- return { active: (0, import_lodash.isEqual)(element, modelValue.value) };
30493
- };
30494
- const onDeleteInput = () => {
30495
- modelValue.value = null;
30496
- };
30497
- useClickOutside({
30498
- target: grid,
30499
- handler: () => {
30500
- if (!showGrid.value) return;
30501
- close();
30502
- },
30503
- isOpen: showGrid,
30504
- ignore: [input, searchField]
30505
- });
30506
- const inputClass = computed(() => ({
30507
- "w-100 form-control": true,
30508
- disabled: props.disabled
30509
- }));
30510
- const getFilteredOptions = async (search = "") => {
30511
- if (props.search) return await props.search(props.options, search);
30512
- if (!search || search.length === 0) return props.options;
30513
- return props.options.filter((item) => {
30514
- let itemName = (0, import_lodash.isObject)(item) ? (0, import_lodash.get)(item, props.displayBy, "") : item;
30515
- itemName = String(itemName).toLowerCase();
30516
- return itemName.includes(search.toLowerCase());
30517
- });
30518
- };
30519
- const onSearch = async (text) => {
30520
- filteredOptions.value = await getFilteredOptions(text);
30521
- emits("searchValue", text);
30522
- searchValue.value = text;
30523
- };
30524
- const onKeyEnter = () => {
30525
- modelValue.value = (0, import_lodash.head)(filteredOptions.value);
30526
- close();
30527
- };
30528
- watch(searchValue, async (newValue) => {
30529
- await onSearch(newValue);
30530
- });
30531
- watch(() => props.options, async (newValue) => {
30532
- filteredOptions.value = newValue;
30533
- });
30534
- __expose({
30535
- open,
30536
- close,
30537
- props
30538
- });
30539
- return (_ctx, _cache) => {
30540
- const _directive_tippy = resolveDirective("tippy");
30541
- return openBlock(), createBlock(AppFormElement_default, normalizeProps(guardReactiveProps(unref(formElementProps))), {
30542
- default: withCtx(() => [createElementVNode("div", _hoisted_1$74, [createElementVNode("div", {
30543
- ref_key: "input",
30544
- ref: input,
30545
- class: "d-flex"
30546
- }, [
30547
- renderSlot(_ctx.$slots, "icon", {}, void 0, true),
30548
- __props.isTypeable && showGrid.value ? withDirectives((openBlock(), createElementBlock("input", {
30549
- key: 0,
30550
- ref_key: "searchField",
30551
- ref: searchField,
30552
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchValue.value = $event),
30553
- class: "mb-0 no-hover flex-1 form-control",
30554
- placeholder: props.placeholder,
30555
- onKeyup: withKeys(onKeyEnter, ["enter"])
30556
- }, null, 40, _hoisted_2$55)), [[vModelText, searchValue.value]]) : (openBlock(), createElementBlock("div", {
30557
- key: 1,
30558
- class: normalizeClass(inputClass.value),
30559
- onClick: withModifiers(open, ["stop"])
30560
- }, [renderSlot(_ctx.$slots, "default", { item: modelValue.value }, () => [modelValue.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode(toDisplayString(getDisplayValue(modelValue.value)), 1)], 64)) : (openBlock(), createElementBlock("span", _hoisted_3$38, toDisplayString(props.placeholder), 1))], true)], 2)),
30561
- modelValue.value && __props.showRemoveButtons ? (openBlock(), createElementBlock("div", _hoisted_4$30, [withDirectives(createElementVNode("i", {
30562
- class: "ph-x-circle app-cross-icon",
30563
- onClick: withModifiers(onDeleteInput, ["stop"])
30564
- }, null, 512), [[_directive_tippy, "Ștergeți opțiunile selectate"]])])) : createCommentVNode("", true)
30565
- ], 512), input.value ? (openBlock(), createBlock(_sfc_main$112, {
30566
- key: 0,
30567
- anchor: input.value,
30568
- "use-teleport": true,
30569
- "is-open": showGrid.value,
30570
- width: props.width
30571
- }, {
30572
- default: withCtx(() => [withDirectives(createElementVNode("div", {
30573
- ref_key: "grid",
30574
- ref: grid,
30575
- class: "app-grid-dropdown overflow-auto scrollbar-hidden"
30576
- }, [(openBlock(true), createElementBlock(Fragment, null, renderList(filteredOptions.value, (element, index) => {
30577
- return openBlock(), createElementBlock("div", {
30578
- key: index,
30579
- class: "cell",
30580
- onClick: ($event) => onSelectValue(element, index)
30581
- }, [createElementVNode("span", {
30582
- class: normalizeClass(getActiveClass(element)),
30583
- style: normalizeStyle(cellStyle.value)
30584
- }, [renderSlot(_ctx.$slots, "default", { item: element }, () => [createTextVNode(toDisplayString(getDisplayValue(element)), 1)], true)], 6)], 8, _hoisted_5$22);
30585
- }), 128))], 512), [[vShow, showGrid.value]])]),
30586
- _: 3
30587
- }, 8, [
30588
- "anchor",
30589
- "is-open",
30590
- "width"
30591
- ])) : createCommentVNode("", true)])]),
30592
- _: 3
30593
- }, 16);
30594
- };
30595
- }
30596
- }, [["__scopeId", "data-v-12dbbc29"]]);
30597
- //#endregion
30598
- //#region src/components/small/app-time-picker/AppTimePickerEasyButtons.vue
30599
- var EMIT_SUB_HOUR = "sub-hour";
30600
- var EMIT_NOW = "now";
30601
- var EMIT_ADD_HOUR = "add-hour";
30602
- var _sfc_main$110 = {
30603
- __name: "AppTimePickerEasyButtons",
30604
- emits: [
30605
- EMIT_NOW,
30606
- EMIT_ADD_HOUR,
30607
- EMIT_SUB_HOUR
30608
- ],
30609
- setup(__props, { emit: __emit }) {
30610
- const buttons = ref([
30260
+ const modelValue = useModel(__props, "modelValue");
30261
+ const buttons = [
30611
30262
  {
30612
30263
  value: "-1",
30613
- emit: EMIT_SUB_HOUR,
30264
+ code: CODE_SUB_HOUR,
30614
30265
  class: "btn-light"
30615
30266
  },
30616
30267
  {
30617
30268
  value: "Acum",
30618
- emit: EMIT_NOW,
30269
+ code: CODE_NOW,
30619
30270
  class: "btn-light"
30620
30271
  },
30621
30272
  {
30622
30273
  value: "+1",
30623
- emit: EMIT_ADD_HOUR,
30274
+ code: CODE_ADD_HOUR,
30624
30275
  class: "btn-light"
30625
30276
  }
30626
- ]);
30627
- const emit = __emit;
30628
- const onClick = (value) => {
30629
- emit(value.emit);
30277
+ ];
30278
+ const onEasyButtonsInput = ({ code }) => {
30279
+ const time = /* @__PURE__ */ new Date();
30280
+ if (modelValue.value && code !== CODE_NOW) {
30281
+ const [hours, minutes = 0, seconds = 0] = modelValue.value.split(":");
30282
+ time.setHours(hours, minutes, seconds, 0);
30283
+ }
30284
+ if (code !== CODE_NOW) time.setHours(time.getHours() + (code === CODE_ADD_HOUR ? 1 : -1));
30285
+ modelValue.value = time.toTimeString().slice(0, props.format.length);
30630
30286
  };
30631
30287
  return (_ctx, _cache) => {
30632
- return openBlock(), createElementBlock("div", null, [createVNode(_sfc_main$4, {
30633
- value: buttons.value,
30634
- onClick
30635
- }, null, 8, ["value"])]);
30288
+ return openBlock(), createElementBlock("div", _hoisted_1$75, [createVNode(_sfc_main$4, {
30289
+ value: buttons,
30290
+ onClick: onEasyButtonsInput
30291
+ })]);
30636
30292
  };
30637
30293
  }
30638
30294
  };
30639
30295
  //#endregion
30640
- //#region src/components/small/app-time-picker/AppTimePicker.vue
30641
- var _hoisted_1$73 = {
30642
- class: "display-block w-100",
30643
- style: {}
30296
+ //#region src/components/small/app-time/AppTime.js
30297
+ var props = {
30298
+ hours: {
30299
+ type: Array,
30300
+ default: () => Array.from({ length: 24 }, (_, index) => index.toString().padStart(2, "0"))
30301
+ },
30302
+ minutes: {
30303
+ type: Array,
30304
+ default: () => Array.from({ length: 60 }, (_, index) => index.toString().padStart(2, "0"))
30305
+ },
30306
+ seconds: {
30307
+ type: Array,
30308
+ default: () => Array.from({ length: 60 }, (_, index) => index.toString().padStart(2, "0"))
30309
+ },
30310
+ format: {
30311
+ type: String,
30312
+ default: "hh:mm",
30313
+ validator: (value) => [
30314
+ "hh",
30315
+ "hh:mm",
30316
+ "hh:mm:ss"
30317
+ ].includes(value)
30318
+ },
30319
+ openDirection: {
30320
+ type: String,
30321
+ default: "bottom"
30322
+ },
30323
+ showEasyButtons: {
30324
+ type: Boolean,
30325
+ default: false
30326
+ },
30327
+ isTypeable: {
30328
+ type: Boolean,
30329
+ default: true
30330
+ },
30331
+ useDropdown: {
30332
+ type: Boolean,
30333
+ default: true
30334
+ }
30644
30335
  };
30336
+ //#endregion
30337
+ //#region src/components/small/app-time/AppTime.vue
30338
+ var _hoisted_1$74 = { class: "display-flex w-100" };
30645
30339
  var _hoisted_2$54 = {
30646
30340
  key: 0,
30647
- class: "ml-10"
30341
+ class: "app-time2-separator user-select-none"
30648
30342
  };
30649
- var _hoisted_3$37 = {
30650
- key: 1,
30651
- class: "flex-center-vertical ml-5 mr-5 time-picker-icon"
30343
+ var _hoisted_3$37 = [
30344
+ "onUpdate:modelValue",
30345
+ "disabled",
30346
+ "name",
30347
+ "readonly",
30348
+ "placeholder",
30349
+ "onBlur",
30350
+ "onClick",
30351
+ "onFocus",
30352
+ "onInput",
30353
+ "onKeydown"
30354
+ ];
30355
+ var _hoisted_4$30 = {
30356
+ key: 0,
30357
+ class: "ml-10"
30652
30358
  };
30653
- var AppTimePicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
30654
- __name: "AppTimePicker",
30359
+ var _hoisted_5$23 = ["onClick"];
30360
+ var AppTime_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
30361
+ __name: "AppTime",
30655
30362
  props: /*@__PURE__*/ mergeModels({
30656
- minuteOptions: {
30657
- type: Array,
30658
- default: () => [{
30659
- id: 1,
30660
- value: "00"
30661
- }, {
30662
- id: 2,
30663
- value: "30"
30664
- }]
30665
- },
30666
- hourOptions: {
30667
- type: Array,
30668
- default: () => {
30669
- const hours = [];
30670
- for (let i = 0; i < 24; i++) hours.push({
30671
- id: i + 1,
30672
- value: i.toString().padStart(2, "0")
30673
- });
30674
- return hours;
30675
- }
30676
- },
30677
- openDirection: {
30678
- type: String,
30679
- default: "bottom"
30680
- },
30681
30363
  isClearable: {
30682
30364
  type: Boolean,
30683
30365
  default: true
30684
30366
  },
30685
- isItemSelected: {},
30686
- ...appFormElementProps_default,
30687
- ...appDatePickerProps_default
30367
+ ...props,
30368
+ ...appFormElementProps_default
30688
30369
  }, {
30689
- "modelValue": {},
30370
+ "modelValue": {
30371
+ type: [String, null],
30372
+ default: null
30373
+ },
30690
30374
  "modelModifiers": {}
30691
30375
  }),
30692
30376
  emits: /*@__PURE__*/ mergeModels(["input"], ["update:modelValue"]),
30693
- setup(__props, { emit: __emit }) {
30377
+ setup(__props, { expose: __expose, emit: __emit }) {
30378
+ const partsByFormat = {
30379
+ hh: ["hour"],
30380
+ "hh:mm": ["hour", "minute"],
30381
+ "hh:mm:ss": [
30382
+ "hour",
30383
+ "minute",
30384
+ "second"
30385
+ ]
30386
+ };
30694
30387
  const props = __props;
30695
30388
  const emit = __emit;
30696
- const { formElementProps } = useAppFormElement(props);
30697
- const hour = ref("12");
30698
- const minute = ref("00");
30699
- const minutePicker = ref(null);
30700
- const hourPicker = ref(null);
30701
30389
  const modelValue = useModel(__props, "modelValue");
30702
- const timePickerClass = computed(() => {
30390
+ const { formElementProps, computedName } = useAppFormElement(props);
30391
+ const control = ref(null);
30392
+ const dropdown = ref(null);
30393
+ const partInputs = reactive({
30394
+ hour: null,
30395
+ minute: null,
30396
+ second: null
30397
+ });
30398
+ const openPart = ref(null);
30399
+ const selected = reactive({
30400
+ hour: null,
30401
+ minute: null,
30402
+ second: null
30403
+ });
30404
+ const texts = reactive({
30405
+ hour: "",
30406
+ minute: "",
30407
+ second: ""
30408
+ });
30409
+ const partPlaceholders = {
30410
+ hour: "Ora",
30411
+ minute: "Min",
30412
+ second: "Sec"
30413
+ };
30414
+ const visibleParts = computed(() => partsByFormat[props.format]);
30415
+ const partOptions = computed(() => ({
30416
+ hour: props.hours,
30417
+ minute: props.minutes,
30418
+ second: props.seconds
30419
+ }));
30420
+ const isDropdownOpen = computed(() => Boolean(openPart.value));
30421
+ const dropdownOptions = computed(() => openPart.value ? partOptions.value[openPart.value] : []);
30422
+ const dropdownColumns = computed(() => dropdownOptions.value.length > 12 ? 4 : 2);
30423
+ const dropdownWidth = computed(() => dropdownColumns.value === 4 ? 200 : 120);
30424
+ const activeAnchor = computed(() => partInputs[openPart.value] ?? control.value);
30425
+ const dropdownPlacement = computed(() => {
30703
30426
  return {
30704
- "time-picker h-100 w-100 display-flex": true,
30705
- "cursor-pointer": !props.disabled,
30706
- "time-picker-hover": !props.disabled,
30707
- "opacity-50": props.disabled,
30708
- "flex-center-vertical": true
30709
- };
30710
- });
30711
- watch(() => hour.value, () => {
30712
- onInput();
30713
- });
30714
- watch(() => minute.value, () => {
30715
- onInput();
30716
- });
30717
- onMounted(() => {
30718
- setTime(props.modelValue);
30719
- });
30720
- const setTime = (value) => {
30721
- if (value) {
30722
- const time = value.split(":");
30723
- hour.value = props.hourOptions.find((element) => element.value == time[0]);
30724
- minute.value = props.minuteOptions.find((element) => element.value == time[1]);
30725
- } else {
30726
- hour.value = null;
30727
- minute.value = null;
30427
+ top: "top-start",
30428
+ bottom: "bottom-start",
30429
+ left: "left-start",
30430
+ right: "right-start"
30431
+ }[props.openDirection] ?? props.openDirection;
30432
+ });
30433
+ const dropdownStyle = computed(() => ({ gridTemplateColumns: `repeat(${dropdownColumns.value}, minmax(0, 1fr))` }));
30434
+ const getOptionValue = (option) => {
30435
+ if ((0, import_lodash.isObject)(option)) return (0, import_lodash.get)(option, "value", "");
30436
+ return option;
30437
+ };
30438
+ const optionToText = (option) => {
30439
+ const value = getOptionValue(option);
30440
+ return value === null || value === void 0 ? "" : String(value);
30441
+ };
30442
+ const cleanText = (value) => String(value ?? "").replace(/\D/g, "").slice(0, 2);
30443
+ const findOption = (part, value) => {
30444
+ const cleanValue = cleanText(value);
30445
+ if (!cleanValue) return null;
30446
+ return partOptions.value[part].find((option) => {
30447
+ const optionValue = cleanText(getOptionValue(option));
30448
+ return optionValue === cleanValue || optionValue === cleanValue.padStart(2, "0");
30449
+ }) ?? null;
30450
+ };
30451
+ const getNextPart = (part) => visibleParts.value[visibleParts.value.indexOf(part) + 1];
30452
+ const setTextsFromSelection = () => {
30453
+ visibleParts.value.forEach((part) => {
30454
+ texts[part] = optionToText(selected[part]);
30455
+ });
30456
+ };
30457
+ const closeDropdown = () => {
30458
+ openPart.value = null;
30459
+ };
30460
+ const openDropdown = async (part) => {
30461
+ if (props.disabled || !props.useDropdown) return;
30462
+ openPart.value = part;
30463
+ await nextTick();
30464
+ dropdown.value?.querySelector(".active")?.scrollIntoView({ block: "nearest" });
30465
+ };
30466
+ const onFocus = (part) => {
30467
+ if (isDropdownOpen.value && openPart.value !== part) openDropdown(part);
30468
+ };
30469
+ const onBlur = (part, event) => {
30470
+ validatePart(part);
30471
+ const next = event.relatedTarget;
30472
+ if (next && (control.value?.contains(next) || dropdown.value?.contains(next))) return;
30473
+ closeDropdown();
30474
+ };
30475
+ const openNearestPart = (event) => {
30476
+ if (props.disabled) return;
30477
+ const nearest = visibleParts.value.reduce((best, part) => {
30478
+ const rect = partInputs[part]?.getBoundingClientRect();
30479
+ if (!rect) return best;
30480
+ const distance = Math.abs(event.clientX - (rect.left + rect.width / 2));
30481
+ return !best || distance < best.distance ? {
30482
+ part,
30483
+ distance
30484
+ } : best;
30485
+ }, null);
30486
+ if (!nearest) return;
30487
+ partInputs[nearest.part]?.focus();
30488
+ openDropdown(nearest.part);
30489
+ };
30490
+ const setModelFromSelection = () => {
30491
+ if (visibleParts.value.some((part) => !selected[part])) return;
30492
+ modelValue.value = visibleParts.value.map((part) => getOptionValue(selected[part])).join(":");
30493
+ emit("input", selected.hour, selected.minute, selected.second);
30494
+ };
30495
+ const fillEmptyPartsFrom = (part) => {
30496
+ visibleParts.value.slice(visibleParts.value.indexOf(part) + 1).forEach((nextPart) => {
30497
+ if (!selected[nextPart]) selected[nextPart] = partOptions.value[nextPart][0];
30498
+ });
30499
+ };
30500
+ const selectOption = async (option) => {
30501
+ const part = openPart.value;
30502
+ selected[part] = option;
30503
+ fillEmptyPartsFrom(part);
30504
+ setTextsFromSelection();
30505
+ setModelFromSelection();
30506
+ const nextPart = getNextPart(part);
30507
+ if (!nextPart) {
30508
+ closeDropdown();
30509
+ return;
30728
30510
  }
30511
+ await openDropdown(nextPart);
30512
+ partInputs[nextPart]?.focus();
30513
+ };
30514
+ const onType = async (part) => {
30515
+ if (!props.isTypeable) return;
30516
+ texts[part] = cleanText(texts[part]);
30517
+ if (texts[part].length < 2) return;
30518
+ const nextPart = getNextPart(part);
30519
+ if (!nextPart) return;
30520
+ await openDropdown(nextPart);
30521
+ partInputs[nextPart]?.focus();
30522
+ partInputs[nextPart]?.select();
30523
+ };
30524
+ const validatePart = (part) => {
30525
+ if (!props.isTypeable) return;
30526
+ const option = findOption(part, texts[part]);
30527
+ if (!option) {
30528
+ setTextsFromSelection();
30529
+ return;
30530
+ }
30531
+ selected[part] = option;
30532
+ setTextsFromSelection();
30533
+ setModelFromSelection();
30534
+ };
30535
+ const onEnter = (part) => {
30536
+ validatePart(part);
30537
+ closeDropdown();
30729
30538
  };
30730
30539
  const reset = () => {
30731
- hour.value = null;
30732
- minute.value = null;
30733
- };
30734
- const onInput = () => {
30735
- if (!hour.value || !minute.value) return;
30736
- emit("input", hour.value, minute.value);
30737
- modelValue.value = `${hour.value.value}:${minute.value.value}`;
30738
- };
30739
- const onHourPickerClose = () => {
30740
- if (hour.value && !minute.value) minute.value = props.minuteOptions[0];
30741
- minutePicker.value.open();
30742
- };
30743
- const onAddHour = () => {
30744
- if (!hour.value) hour.value = props.hourOptions[12];
30745
- const newHour = ((parseInt(hour.value.value) + 1) % 24).toString().padStart(2, "0");
30746
- hour.value = props.hourOptions.find((element) => element.value == newHour);
30747
- minute.value = minute.value ? minute.value : (0, import_lodash.head)(props.minuteOptions);
30748
- };
30749
- const onSubHour = () => {
30750
- if (!hour.value) hour.value = props.hourOptions[12];
30751
- const newHour = ((parseInt(hour.value.value) + 23) % 24).toString().padStart(2, "0");
30752
- hour.value = props.hourOptions.find((element) => element.value == newHour);
30753
- minute.value = minute.value ? minute.value : (0, import_lodash.head)(props.minuteOptions);
30754
- };
30755
- const onSelectNow = () => {
30756
- const now = /* @__PURE__ */ new Date();
30757
- const currentHour = now.getHours().toString().padStart(2, "0");
30758
- const currentMinute = now.getMinutes() >= 30 ? "30" : "00";
30759
- hour.value = props.hourOptions.find((element) => element.value === currentHour);
30760
- minute.value = props.minuteOptions.find((element) => element.value === currentMinute);
30540
+ visibleParts.value.forEach((part) => {
30541
+ selected[part] = null;
30542
+ texts[part] = "";
30543
+ });
30544
+ modelValue.value = null;
30545
+ closeDropdown();
30761
30546
  };
30762
- watch(() => props.modelValue, (newValue, oldValue) => {
30547
+ const setTime = (value) => {
30548
+ const values = value ? String(value).split(":") : [];
30549
+ visibleParts.value.forEach((part, index) => {
30550
+ selected[part] = findOption(part, values[index]);
30551
+ });
30552
+ setTextsFromSelection();
30553
+ };
30554
+ watch(() => modelValue.value, (newValue, oldValue) => {
30763
30555
  if (newValue !== oldValue) setTime(newValue);
30556
+ }, { immediate: true });
30557
+ watch(() => [
30558
+ props.hours,
30559
+ props.minutes,
30560
+ props.seconds,
30561
+ props.format
30562
+ ], () => {
30563
+ setTime(modelValue.value);
30564
+ });
30565
+ useClickOutside({
30566
+ target: dropdown,
30567
+ handler: closeDropdown,
30568
+ isOpen: isDropdownOpen,
30569
+ ignore: [control]
30570
+ });
30571
+ __expose({
30572
+ open: () => openDropdown("hour"),
30573
+ close: closeDropdown,
30574
+ focus: () => partInputs.hour?.focus()
30764
30575
  });
30765
30576
  return (_ctx, _cache) => {
30766
30577
  const _directive_tippy = resolveDirective("tippy");
30767
30578
  return openBlock(), createBlock(AppFormElement_default, normalizeProps(guardReactiveProps(unref(formElementProps))), createSlots({
30768
30579
  "help-block": withCtx(() => [renderSlot(_ctx.$slots, "help-block", {}, void 0, true)]),
30769
- default: withCtx(() => [createElementVNode("div", _hoisted_1$73, [createElementVNode("div", { class: normalizeClass(timePickerClass.value) }, [
30770
- createVNode(AppGridPicker_default, {
30771
- ref_key: "hourPicker",
30772
- ref: hourPicker,
30773
- modelValue: hour.value,
30774
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => hour.value = $event),
30775
- columns: 4,
30776
- disabled: _ctx.disabled,
30777
- "input-only": true,
30778
- options: __props.hourOptions,
30779
- "show-remove-buttons": false,
30780
- class: "app-grid-picker-hour app-form-group-element flex-grow-1",
30781
- "display-by": "value",
30782
- placeholder: "Ora",
30783
- onClose: onHourPickerClose
30784
- }, null, 8, [
30785
- "modelValue",
30786
- "disabled",
30787
- "options"
30788
- ]),
30789
- _cache[2] || (_cache[2] = createElementVNode("span", { class: "flex-center-vertical ml-10 mr-10" }, ":", -1)),
30790
- createVNode(AppGridPicker_default, {
30791
- ref_key: "minutePicker",
30792
- ref: minutePicker,
30793
- modelValue: minute.value,
30794
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => minute.value = $event),
30795
- columns: 2,
30580
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$74, [createElementVNode("div", {
30581
+ ref_key: "control",
30582
+ ref: control,
30583
+ class: normalizeClass(["app-time2-control form-control flex-center-vertical p-0 overflow-hidden", {
30584
+ "disabled-element": _ctx.disabled,
30585
+ "cursor-pointer": !_ctx.disabled && _ctx.useDropdown
30586
+ }]),
30587
+ onClick: openNearestPart,
30588
+ onKeydown: withKeys(closeDropdown, ["esc"])
30589
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(visibleParts.value, (part, index) => {
30590
+ return openBlock(), createElementBlock(Fragment, { key: part }, [index > 0 ? (openBlock(), createElementBlock("span", _hoisted_2$54, ":")) : createCommentVNode("", true), withDirectives(createElementVNode("input", {
30591
+ ref_for: true,
30592
+ ref: (el) => partInputs[part] = el,
30593
+ "onUpdate:modelValue": ($event) => texts[part] = $event,
30594
+ class: normalizeClass(["app-time2-field h-100 p-0 text-center bg-transparent border-0 no-hover", { "cursor-pointer": !_ctx.disabled && _ctx.useDropdown }]),
30796
30595
  disabled: _ctx.disabled,
30797
- "input-only": true,
30798
- width: 100,
30799
- options: __props.minuteOptions,
30800
- "show-remove-buttons": false,
30801
- placeholder: "Minut",
30802
- class: "app-grid-picker-minute app-form-group-element flex-grow-1",
30803
- "display-by": "value"
30804
- }, null, 8, [
30805
- "modelValue",
30806
- "disabled",
30807
- "options"
30808
- ]),
30809
- _ctx.showEasyButtons && !_ctx.disabled ? (openBlock(), createElementBlock("div", _hoisted_2$54, [createVNode(_sfc_main$110, {
30810
- onAddHour,
30811
- onSubHour,
30812
- onNow: onSelectNow
30813
- })])) : createCommentVNode("", true),
30814
- !_ctx.disabled && __props.isClearable && modelValue.value ? (openBlock(), createElementBlock("div", _hoisted_3$37, [withDirectives(createElementVNode("i", {
30815
- class: "ph-x-circle app-cross-icon",
30816
- onClick: withModifiers(reset, ["stop"])
30817
- }, null, 512), [[_directive_tippy, "Ștergeți ora si minutul"]])])) : createCommentVNode("", true)
30818
- ], 2)])]),
30596
+ name: index === 0 ? unref(computedName) : void 0,
30597
+ readonly: !_ctx.isTypeable,
30598
+ placeholder: partPlaceholders[part],
30599
+ inputmode: "numeric",
30600
+ maxlength: "2",
30601
+ type: "text",
30602
+ onBlur: ($event) => onBlur(part, $event),
30603
+ onClick: withModifiers(($event) => openDropdown(part), ["stop"]),
30604
+ onFocus: ($event) => onFocus(part),
30605
+ onInput: ($event) => onType(part),
30606
+ onKeydown: withKeys(withModifiers(($event) => onEnter(part), ["prevent"]), ["enter"])
30607
+ }, null, 42, _hoisted_3$37), [[vModelText, texts[part]]])], 64);
30608
+ }), 128)), !_ctx.disabled && __props.isClearable && modelValue.value ? (openBlock(), createElementBlock("div", {
30609
+ key: 0,
30610
+ class: "app-time2-clear flex-center-vertical h-100 ml-auto",
30611
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => {}, ["stop"]))
30612
+ }, [withDirectives(createElementVNode("i", {
30613
+ class: "ph-x-circle app-cross-icon",
30614
+ onClick: withModifiers(reset, ["stop"])
30615
+ }, null, 512), [[_directive_tippy, "Sterge ora"]])])) : createCommentVNode("", true)], 34), _ctx.showEasyButtons && !_ctx.disabled ? (openBlock(), createElementBlock("div", _hoisted_4$30, [createVNode(_sfc_main$111, {
30616
+ modelValue: modelValue.value,
30617
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => modelValue.value = $event),
30618
+ format: _ctx.format
30619
+ }, null, 8, ["modelValue", "format"])])) : createCommentVNode("", true)]), control.value ? (openBlock(), createBlock(_sfc_main$112, {
30620
+ key: 0,
30621
+ anchor: activeAnchor.value,
30622
+ "is-open": isDropdownOpen.value,
30623
+ placement: dropdownPlacement.value,
30624
+ "use-teleport": true,
30625
+ width: dropdownWidth.value
30626
+ }, {
30627
+ default: withCtx(() => [withDirectives(createElementVNode("div", {
30628
+ ref_key: "dropdown",
30629
+ ref: dropdown,
30630
+ class: "app-time2-dropdown app-grid-dropdown overflow-auto scrollbar-hidden w-100",
30631
+ style: normalizeStyle(dropdownStyle.value)
30632
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(dropdownOptions.value, (option) => {
30633
+ return openBlock(), createElementBlock("button", {
30634
+ key: getOptionValue(option),
30635
+ class: normalizeClass(["app-time2-option cell bg-transparent border-0 p-0", { active: unref(import_lodash.isEqual)(option, selected[openPart.value]) }]),
30636
+ type: "button",
30637
+ onMousedown: _cache[2] || (_cache[2] = withModifiers(() => {}, ["prevent"])),
30638
+ onClick: ($event) => selectOption(option)
30639
+ }, toDisplayString(getOptionValue(option)), 43, _hoisted_5$23);
30640
+ }), 128))], 4), [[vShow, isDropdownOpen.value]])]),
30641
+ _: 1
30642
+ }, 8, [
30643
+ "anchor",
30644
+ "is-open",
30645
+ "placement",
30646
+ "width"
30647
+ ])) : createCommentVNode("", true)]),
30819
30648
  _: 2
30820
30649
  }, [renderList(Object.keys(_ctx.$slots), (slot) => {
30821
30650
  return {
@@ -30825,422 +30654,68 @@ var AppTimePicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
30825
30654
  })]), 1040);
30826
30655
  };
30827
30656
  }
30828
- }, [["__scopeId", "data-v-56e1c85a"]]);
30829
- //#endregion
30830
- //#region src/utils/DateUtils.js
30831
- var DateUtils = class DateUtils {
30832
- static getDayNames() {
30833
- return {
30834
- [Constants_default.LANGUAGE_EN]: [
30835
- "Sun",
30836
- "Mon",
30837
- "Tue",
30838
- "Wed",
30839
- "Thu",
30840
- "Fri",
30841
- "Sat"
30842
- ],
30843
- [Constants_default.LANGUAGE_RO]: [
30844
- "Dum",
30845
- "Lun",
30846
- "Mar",
30847
- "Mie",
30848
- "Joi",
30849
- "Vin",
30850
- "Sam"
30851
- ]
30852
- };
30853
- }
30854
- static getMonthNames() {
30855
- return {
30856
- [Constants_default.LANGUAGE_EN]: [
30857
- "Jan",
30858
- "Feb",
30859
- "Mar",
30860
- "Apr",
30861
- "May",
30862
- "Jun",
30863
- "Jul",
30864
- "Aug",
30865
- "Sep",
30866
- "Oct",
30867
- "Nov",
30868
- "Dec"
30869
- ],
30870
- [Constants_default.LANGUAGE_RO]: [
30871
- "Ian",
30872
- "Feb",
30873
- "Mar",
30874
- "Apr",
30875
- "Mai",
30876
- "Iun",
30877
- "Iul",
30878
- "Aug",
30879
- "Sep",
30880
- "Oct",
30881
- "Noi",
30882
- "Dec"
30883
- ]
30884
- };
30885
- }
30886
- static commonFormats = [
30887
- "yyyy-MM-dd HH:mm:ss",
30888
- "yyyy-MM-dd HH:mm",
30889
- "yyyy-MM-dd",
30890
- "MM/dd/yyyy HH:mm:ss",
30891
- "MM/dd/yyyy HH:mm",
30892
- "MM/dd/yyyy",
30893
- "dd/MM/yyyy HH:mm:ss",
30894
- "dd/MM/yyyy HH:mm",
30895
- "dd/MM/yyyy",
30896
- "dd.MM.yyyy HH:mm:ss",
30897
- "dd.MM.yyyy HH:mm",
30898
- "dd.MM.yyyy",
30899
- "yyyy/MM/dd HH:mm:ss",
30900
- "yyyy/MM/dd HH:mm",
30901
- "yyyy/MM/dd",
30902
- "dd-MM-yyyy HH:mm:ss",
30903
- "dd-MM-yyyy HH:mm",
30904
- "dd-MM-yyyy",
30905
- "yyyy-MM-dd h:mm:ss a",
30906
- "yyyy-MM-dd h:mm a",
30907
- "MM/dd/yyyy h:mm:ss a",
30908
- "MM/dd/yyyy h:mm a",
30909
- "dd/MM/yyyy h:mm:ss a",
30910
- "dd/MM/yyyy h:mm a"
30911
- ];
30912
- static getCalendarComponentLanguageData(language) {
30913
- return {
30914
- days: DateUtils.getDayNames()[language],
30915
- months: DateUtils.getMonthNames()[language],
30916
- placeholder: {},
30917
- formatLocale: { firstDayOfWeek: this.getCalendarComponentFirstDatOfWeek(language) }
30918
- };
30919
- }
30920
- static getCalendarComponentFirstDatOfWeek(language) {
30921
- if (language === Constants_default.LANGUAGE_EN) return Constants_default.CALENDAR_FIRST_DAY_OF_WEEK_EN;
30922
- else return Constants_default.CALENDAR_FIRST_DAY_OF_WEEK_RO;
30923
- }
30924
- static get FORMAT_ROMANIAN_DATE() {
30925
- return "dd.MM.yyyy";
30926
- }
30927
- static get FORMAT_ROMANIAN_DATE_HOUR() {
30928
- return "dd.MM.yyyy HH";
30929
- }
30930
- static get FORMAT_ROMANIAN_DATE_HOUR_MINUTE() {
30931
- return "dd.MM.yyyy HH:mm";
30932
- }
30933
- static get FORMAT_ROMANIAN_DATE_HOUR_MINUTE_SECOND() {
30934
- return "dd.MM.yyyy HH:mm:ss";
30935
- }
30936
- static get FORMAT_ENGLISH_DATE() {
30937
- return "yyyy-MM-dd";
30938
- }
30939
- static get FORMAT_ENGLISH_DATE_HOUR() {
30940
- return "yyyy-MM-dd HH";
30941
- }
30942
- static get FORMAT_ENGLISH_DATE_HOUR_MINUTE() {
30943
- return "yyyy-MM-dd HH:mm";
30944
- }
30945
- static get FORMAT_ENGLISH_DATE_HOUR_MINUTE_SECOND() {
30946
- return "yyyy-MM-dd HH:mm:ss";
30947
- }
30948
- static stringToDate(dateString, format = null) {
30949
- if (!dateString) return null;
30950
- if (format) return parse$2(dateString, format, /* @__PURE__ */ new Date());
30951
- for (const format of this.commonFormats) try {
30952
- const result = parse$2(dateString, format, /* @__PURE__ */ new Date());
30953
- if (isValid$1(result)) return result;
30954
- } catch (error) {
30955
- continue;
30956
- }
30957
- const nativeParsed = new Date(dateString);
30958
- return isValid$1(nativeParsed) ? nativeParsed : null;
30959
- }
30960
- static stringFromTo(date, formatFrom = this.FORMAT_ENGLISH_DATE, formatTo = this.FORMAT_ROMANIAN_DATE) {
30961
- if (!date) return null;
30962
- return format$1(parse$2(date, formatFrom, /* @__PURE__ */ new Date()), formatTo);
30963
- }
30964
- static dateToString(date, dateFormat = this.FORMAT_ROMANIAN_DATE) {
30965
- if (!date) return null;
30966
- return format$1(date, dateFormat);
30967
- }
30968
- /**
30969
- * @deprecated since version 1.9.7
30970
- */
30971
- static dateToStringWithTime(date, dateFormat = "dd-MM-yyyy HH:mm:ss") {
30972
- return format$1(date, dateFormat);
30973
- }
30974
- /**
30975
- * @deprecated since version 1.9.7
30976
- */
30977
- static dateFromTo(date, formatFrom = "yyyy-MM-dd", formatTo = "dd-MM-yyyy") {
30978
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
30979
- if (!date) return null;
30980
- return format$1(parse$2(date, formatFrom, /* @__PURE__ */ new Date()), formatTo);
30981
- }
30982
- /**
30983
- * @deprecated since version 1.9.7
30984
- */
30985
- static dateFromToWithTime(date, formatFrom = "yyyy-MM-dd HH:mm:ss", formatTo = "dd-MM-yyyy HH:mm:ss") {
30986
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
30987
- if (!date) return null;
30988
- return format$1(parse$2(date, formatFrom, /* @__PURE__ */ new Date()), formatTo);
30989
- }
30990
- /**
30991
- * @deprecated since version 1.9.7
30992
- */
30993
- static stringFromToWithTime(date, formatFrom = "yyyy-MM-dd HH:mm:ss", formatTo = "dd-MM-yyyy HH:mm:ss") {
30994
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
30995
- if (!date) return null;
30996
- return format$1(parse$2(date, formatFrom, /* @__PURE__ */ new Date()), formatTo);
30997
- }
30998
- /**
30999
- * @deprecated since version 1.9.7
31000
- */
31001
- static romanianToEnglishDate(dateString) {
31002
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
31003
- return this.stringFromTo(dateString, "dd-MM-yyyy", "yyyy-MM-dd");
31004
- }
31005
- /**
31006
- * @deprecated since version 1.9.7
31007
- */
31008
- static romanianToEnglishDateHour(dateString) {
31009
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
31010
- return this.stringFromTo(dateString, "dd-MM-yyyy HH", "yyyy-MM-dd HH:00");
31011
- }
31012
- /**
31013
- * @deprecated since version 1.9.7
31014
- */
31015
- static romanianToEnglishDateHourMinute(dateString) {
31016
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
31017
- return this.stringFromTo(dateString, "dd-MM-yyyy HH:mm", "yyyy-MM-dd HH:mm");
31018
- }
31019
- /**
31020
- * @deprecated since version 1.9.7
31021
- */
31022
- static romanianToEnglishDateHourMinuteSeconds(dateString) {
31023
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
31024
- return this.stringFromTo(dateString, "dd-MM-yyyy HH:mm:ss", "yyyy-MM-dd HH:mm:ss");
31025
- }
31026
- /**
31027
- * @deprecated since version 1.9.7
31028
- */
31029
- static englishToRomanianDate(dateString) {
31030
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
31031
- return this.stringFromTo(dateString, "yyyy-MM-dd", "dd-MM-yyyy");
31032
- }
31033
- /**
31034
- * @deprecated since version 2.0
31035
- */
31036
- static englishToRomanianDateHour(dateString) {
31037
- console.warn("Warning! Depricated function from 01.03.2023 called!");
31038
- return this.stringFromTo(dateString, "yyyy-MM-dd HH:00", "dd-MM-yyyy HH");
31039
- }
31040
- /**
31041
- * @deprecated since version 2.0
31042
- */
31043
- static englishToRomanianDateHourMinute(dateString) {
31044
- return this.stringFromTo(dateString, "yyyy-MM-dd HH:mm", "dd-MM-yyyy HH:mm");
31045
- }
31046
- /**
31047
- * @deprecated since version 2.0
31048
- */
31049
- static englishToRomanianDateHourMinuteSeconds(dateString) {
31050
- return this.stringFromTo(dateString, "yyyy-MM-dd HH:mm:ss", "dd-MM-yyyy HH:mm:ss");
31051
- }
31052
- static displayInterval(start, end, dateFormat = this.FORMAT_ROMANIAN_DATE) {
31053
- if (!start && !end) return `Nedeterminata`;
31054
- if (start && end) return `${DateUtils.dateToString(start, dateFormat)} - ${DateUtils.dateToString(end, dateFormat)}`;
31055
- if (start) return `>= ${DateUtils.dateToString(start, dateFormat)}`;
31056
- if (end) return `<= ${DateUtils.dateToString(end, dateFormat)}`;
31057
- }
31058
- static isStringDate = (dateString) => {
31059
- return /^\d{2,4}[-./]\d{1,2}[-./]\d{1,4}([ T]\d{2}:\d{2}(:\d{2}(\.\d+)?(Z|[+-]\d{2}:?\d{2})?)?)?$/.test(dateString);
31060
- };
31061
- static stringToDateRecursive = (item, deep = false) => {
31062
- if (!item) return item;
31063
- if ((0, import_lodash.isArray)(item)) return item.map((el) => DateUtils.stringToDateRecursive(el, deep));
31064
- if ((0, import_lodash.isPlainObject)(item)) {
31065
- for (const key in item) if (Object.prototype.hasOwnProperty.call(item, key)) item[key] = deep ? DateUtils.stringToDateRecursive(item[key], deep) : DateUtils.stringToDateRecursive(item[key]);
31066
- return item;
31067
- }
31068
- if (typeof item === "string") return DateUtils.isStringDate(item) ? DateUtils.stringToDate(item) : item;
31069
- return item;
31070
- };
31071
- static isOlderThan = (timestamp, minutes) => {
31072
- return Date.now() - timestamp > minutes * 60 * 1e3;
31073
- };
31074
- static nextMonth({ month, year }) {
31075
- const d = new Date(+year, +month);
31076
- return {
31077
- month: String(d.getMonth() + 1),
31078
- year: String(d.getFullYear())
31079
- };
31080
- }
31081
- static previousMonth({ month, year }) {
31082
- const d = new Date(+year, +month - 2);
31083
- return {
31084
- month: String(d.getMonth() + 1),
31085
- year: String(d.getFullYear())
31086
- };
31087
- }
31088
- };
30657
+ }, [["__scopeId", "data-v-d1c8386d"]]);
31089
30658
  //#endregion
31090
- //#region src/components/small/app-date-time-picker/AppDateTimePicker.vue
31091
- var _hoisted_1$72 = { class: "flex-center-vertical w-100" };
31092
- var _hoisted_2$53 = { class: "app-form-group-element flex-grow-1 mr-5" };
31093
- var _hoisted_3$36 = { class: "app-form-group-element flex-grow-1" };
31094
- var _hoisted_4$29 = {
31095
- key: 0,
31096
- class: "easy-buttons"
31097
- };
31098
- var CODE_SUB_DAY = "subday";
31099
- var CODE_TODAY = "today";
31100
- var CODE_ADD_DAY = "addday";
30659
+ //#region src/components/small/app-date-time/AppDateTime.vue
30660
+ var _hoisted_1$73 = { class: "flex-center-vertical w-100 gap-1" };
31101
30661
  var _sfc_main$10 = {
31102
- __name: "AppDateTimePicker",
31103
- props: {
31104
- modelValue: {},
31105
- name: {
31106
- type: String,
31107
- default: "app-date-time-picker"
31108
- },
31109
- minuteOptions: {
31110
- type: Array,
31111
- default: () => {
31112
- return [{
31113
- id: 1,
31114
- value: "00"
31115
- }, {
31116
- id: 2,
31117
- value: "30"
31118
- }];
31119
- }
31120
- },
31121
- dateClass: { default: "flex-1" },
31122
- timeClass: { default: "flex-1" },
31123
- valueType: {
31124
- type: String,
31125
- default: "date"
31126
- },
31127
- format: {
31128
- type: String,
31129
- default: "YYYY-MM-DD"
31130
- },
31131
- ...appDatePickerProps_default,
30662
+ __name: "AppDateTime",
30663
+ props: /*@__PURE__*/ mergeModels({
30664
+ ...props$1,
30665
+ ...props,
31132
30666
  ...appFormElementProps_default
31133
- },
31134
- emits: ["update:modelValue", "input"],
31135
- setup(__props, { emit: __emit }) {
31136
- const props = __props;
31137
- const emits = __emit;
30667
+ }, {
30668
+ "modelValue": { type: Date },
30669
+ "modelModifiers": {}
30670
+ }),
30671
+ emits: ["update:modelValue"],
30672
+ setup(__props) {
30673
+ const modelValue = useModel(__props, "modelValue");
30674
+ const props = createPropsRestProxy(__props, ["modelValue"]);
31138
30675
  const { formElementProps } = useAppFormElement(props);
31139
- const localValue = ref(null);
31140
- const localDate = ref(null);
31141
- const localTime = ref(null);
31142
- ref([
31143
- {
31144
- value: "-1",
31145
- code: CODE_SUB_DAY
31146
- },
31147
- {
31148
- value: "Astazi",
31149
- code: CODE_TODAY
31150
- },
31151
- {
31152
- value: "+1",
31153
- code: CODE_ADD_DAY
30676
+ const date = computed({
30677
+ get: () => modelValue.value,
30678
+ set: (value) => {
30679
+ modelValue.value = value && new Date(value.getFullYear(), value.getMonth(), value.getDate(), modelValue.value?.getHours() ?? 0, modelValue.value?.getMinutes() ?? 0, modelValue.value?.getSeconds() ?? 0);
31154
30680
  }
31155
- ]);
31156
- const computedDisabled = computed(() => {
31157
- return !localDate.value || props.disabled;
31158
30681
  });
31159
- const setLocalDate = () => {
31160
- if (localValue.value) localDate.value = startOfDay$1(localValue.value);
31161
- };
31162
- const setLocalTime = () => {
31163
- if (localValue.value) localTime.value = DateUtils.dateToString(localValue.value, "HH:mm");
31164
- };
31165
- const onInput = () => {
31166
- if (!localValue.value) emits("update:modelValue", null);
31167
- if (!localTime.value || !localDate.value) return;
31168
- emits("update:modelValue", localValue.value);
31169
- };
31170
- watch(() => localTime.value, (newValue, oldValue) => {
31171
- if ((0, import_lodash.isEqual)(newValue, oldValue) || !newValue) return;
31172
- let localDateFormatted = DateUtils.dateToString(localDate.value, DateUtils.FORMAT_ENGLISH_DATE);
31173
- localValue.value = DateUtils.stringToDate(`${localDateFormatted} ${newValue}`, DateUtils.FORMAT_ENGLISH_DATE_HOUR_MINUTE);
31174
- });
31175
- watch(() => localDate.value, (newValue, oldValue) => {
31176
- if ((0, import_lodash.isEqual)(newValue, oldValue)) return;
31177
- if (!localDate.value && localTime.value) {
31178
- localTime.value = null;
31179
- localValue.value = null;
31180
- return;
30682
+ const time = computed({
30683
+ get: () => {
30684
+ const result = modelValue.value?.toTimeString().slice(0, props.format.length) ?? null;
30685
+ console.log({ result });
30686
+ return result;
30687
+ },
30688
+ set: (value) => {
30689
+ if (!value) return modelValue.value = null;
30690
+ const [hours, minutes = 0, seconds = 0] = value.split(":");
30691
+ const date = new Date(modelValue.value ?? /* @__PURE__ */ new Date());
30692
+ date.setHours(hours, minutes, seconds, 0);
30693
+ modelValue.value = date;
31181
30694
  }
31182
- let localValueNew = (0, import_lodash.cloneDeep)(localValue.value) ?? startOfDay$1(/* @__PURE__ */ new Date());
31183
- localValueNew.setFullYear(newValue.getFullYear(), newValue.getMonth(), newValue.getDate());
31184
- localValue.value = localValueNew;
31185
30695
  });
31186
- watch(() => localValue.value, (newValue, oldValue) => {
31187
- if ((0, import_lodash.isEqual)(newValue, oldValue)) return;
31188
- setLocalDate();
31189
- setLocalTime();
31190
- onInput();
31191
- }, { immediate: true });
31192
- const setLocalValue = (value) => {
31193
- if (!value) {
31194
- localValue.value = null;
31195
- return;
31196
- }
31197
- if (value instanceof Date) {
31198
- localValue.value = (0, import_lodash.cloneDeep)(value);
31199
- setLocalDate();
31200
- setLocalTime();
31201
- } else {
31202
- localDate.value = startOfDay$1(/* @__PURE__ */ new Date());
31203
- localTime.value = DateUtils.dateToString(localDate.value, "HH:mm");
31204
- }
31205
- };
31206
- watch(() => props.modelValue, (newValue, oldValue) => {
31207
- if ((0, import_lodash.isEqual)(newValue, oldValue)) return;
31208
- setLocalValue(props.modelValue);
31209
- onInput();
31210
- }, { immediate: true });
31211
30696
  return (_ctx, _cache) => {
31212
30697
  return openBlock(), createBlock(AppFormElement_default, normalizeProps(guardReactiveProps(unref(formElementProps))), {
31213
30698
  "help-block": withCtx(() => [renderSlot(_ctx.$slots, "help-block")]),
31214
- default: withCtx(() => [createElementVNode("div", _hoisted_1$72, [
31215
- createElementVNode("div", _hoisted_2$53, [createVNode(_sfc_main$114, {
31216
- modelValue: localDate.value,
31217
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => localDate.value = $event),
31218
- "current-format": "dd.MM.yyyy",
31219
- disabled: _ctx.disabled,
31220
- "show-day-of-week": _ctx.showDayOfWeek,
31221
- "input-only": true
31222
- }, null, 8, [
31223
- "modelValue",
31224
- "disabled",
31225
- "show-day-of-week"
31226
- ])]),
31227
- createElementVNode("div", _hoisted_3$36, [createVNode(AppTimePicker_default, {
31228
- ref: "timePicker",
31229
- modelValue: localTime.value,
31230
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => localTime.value = $event),
31231
- disabled: computedDisabled.value,
31232
- "minute-options": __props.minuteOptions,
31233
- "input-only": true
31234
- }, null, 8, [
31235
- "modelValue",
31236
- "disabled",
31237
- "minute-options"
31238
- ])]),
31239
- _ctx.showEasyButtons ? (openBlock(), createElementBlock("div", _hoisted_4$29, [createVNode(_sfc_main$116, {
31240
- modelValue: localValue.value,
31241
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => localValue.value = $event)
31242
- }, null, 8, ["modelValue"])])) : createCommentVNode("", true)
31243
- ])]),
30699
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$73, [createVNode(AppDate_default, mergeProps({
30700
+ modelValue: date.value,
30701
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => date.value = $event)
30702
+ }, {
30703
+ ..._ctx.$attrs,
30704
+ ...props
30705
+ }, {
30706
+ class: "app-form-group-element flex-1",
30707
+ "input-only": true
30708
+ }), null, 16, ["modelValue"]), createVNode(AppTime_default, mergeProps({
30709
+ modelValue: time.value,
30710
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => time.value = $event)
30711
+ }, {
30712
+ ..._ctx.$attrs,
30713
+ ...props
30714
+ }, {
30715
+ class: "app-form-group-element flex-1",
30716
+ disabled: !modelValue.value || props.disabled,
30717
+ "input-only": true
30718
+ }), null, 16, ["modelValue", "disabled"])])]),
31244
30719
  _: 3
31245
30720
  }, 16);
31246
30721
  };
@@ -66777,11 +66252,11 @@ var IconSquareCheckFilled = createVueComponent("filled", "square-check-filled",
66777
66252
  */
66778
66253
  //#endregion
66779
66254
  //#region src/components/small/app-drawer/AppDrawer.vue
66780
- var _hoisted_1$71 = { class: "display-flex-column h-100" };
66781
- var _hoisted_2$52 = { class: "flex-center-vertical w-100 p-3" };
66782
- var _hoisted_3$35 = { class: "flex-1" };
66783
- var _hoisted_4$28 = { class: "font-600 text-size-14" };
66784
- var _hoisted_5$21 = { class: "p-20 flex-1 w-100" };
66255
+ var _hoisted_1$72 = { class: "display-flex-column h-100" };
66256
+ var _hoisted_2$53 = { class: "flex-center-vertical w-100 p-3" };
66257
+ var _hoisted_3$36 = { class: "flex-1" };
66258
+ var _hoisted_4$29 = { class: "font-600 text-size-14" };
66259
+ var _hoisted_5$22 = { class: "p-20 flex-1 w-100" };
66785
66260
  var AppDrawer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
66786
66261
  __name: "AppDrawer",
66787
66262
  props: /*@__PURE__*/ mergeModels({
@@ -66832,26 +66307,26 @@ var AppDrawer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
66832
66307
  ref: drawer,
66833
66308
  class: normalizeClass(["filter-sidebar", drawerClass.value]),
66834
66309
  style: normalizeStyle(drawerStyle.value)
66835
- }, [createElementVNode("div", _hoisted_1$71, [
66836
- createElementVNode("div", _hoisted_2$52, [createElementVNode("div", _hoisted_3$35, [renderSlot(_ctx.$slots, "title", {}, () => [createElementVNode("div", _hoisted_4$28, toDisplayString(__props.title), 1)], true)]), createVNode(unref(IconX), {
66310
+ }, [createElementVNode("div", _hoisted_1$72, [
66311
+ createElementVNode("div", _hoisted_2$53, [createElementVNode("div", _hoisted_3$36, [renderSlot(_ctx.$slots, "title", {}, () => [createElementVNode("div", _hoisted_4$29, toDisplayString(__props.title), 1)], true)]), createVNode(unref(IconX), {
66837
66312
  size: 24,
66838
66313
  stroke: 1.5,
66839
66314
  class: "cursor-pointer",
66840
66315
  onClick: hide
66841
66316
  })]),
66842
66317
  _cache[0] || (_cache[0] = createElementVNode("hr", { class: "mb-5 mt-0 w-100" }, null, -1)),
66843
- createElementVNode("div", _hoisted_5$21, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])
66318
+ createElementVNode("div", _hoisted_5$22, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])
66844
66319
  ])], 6)]);
66845
66320
  };
66846
66321
  }
66847
66322
  }, [["__scopeId", "data-v-7b902216"]]);
66848
66323
  //#endregion
66849
66324
  //#region src/components/small/app-table/AppTableFilterDrawer.vue
66850
- var _hoisted_1$70 = { class: "display-flex-column h-100" };
66851
- var _hoisted_2$51 = { class: "flex-center-vertical pr-20 pl-20 w-100 mt-15" };
66852
- var _hoisted_3$34 = { class: "flex-1 mb-10" };
66853
- var _hoisted_4$27 = { class: "mb-0" };
66854
- var _hoisted_5$20 = { class: "p-20 flex-1 w-100" };
66325
+ var _hoisted_1$71 = { class: "display-flex-column h-100" };
66326
+ var _hoisted_2$52 = { class: "flex-center-vertical pr-20 pl-20 w-100 mt-15" };
66327
+ var _hoisted_3$35 = { class: "flex-1 mb-10" };
66328
+ var _hoisted_4$28 = { class: "mb-0" };
66329
+ var _hoisted_5$21 = { class: "p-20 flex-1 w-100" };
66855
66330
  var _hoisted_6$13 = { class: "flex-center p-10 w-100 gap-1" };
66856
66331
  var AppTableFilterDrawer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
66857
66332
  __name: "AppTableFilterDrawer",
@@ -66914,13 +66389,13 @@ var AppTableFilterDrawer_default = /*#__PURE__*/ _plugin_vue_export_helper_defau
66914
66389
  createElementVNode("div", {
66915
66390
  ref: "drawer",
66916
66391
  class: normalizeClass(["filter-sidebar", { active: isExpanded.value }])
66917
- }, [createElementVNode("div", _hoisted_1$70, [
66918
- createElementVNode("div", _hoisted_2$51, [createElementVNode("div", _hoisted_3$34, [createElementVNode("h4", _hoisted_4$27, toDisplayString(__props.title), 1)]), createElementVNode("i", {
66392
+ }, [createElementVNode("div", _hoisted_1$71, [
66393
+ createElementVNode("div", _hoisted_2$52, [createElementVNode("div", _hoisted_3$35, [createElementVNode("h4", _hoisted_4$28, toDisplayString(__props.title), 1)]), createElementVNode("i", {
66919
66394
  class: "icon-x cursor-pointer",
66920
66395
  onClick: toggleDrawer
66921
66396
  })]),
66922
66397
  _cache[0] || (_cache[0] = createElementVNode("hr", { class: "mb-5 mt-0 w-100" }, null, -1)),
66923
- createElementVNode("div", _hoisted_5$20, [renderSlot(_ctx.$slots, "content", {}, void 0, true)]),
66398
+ createElementVNode("div", _hoisted_5$21, [renderSlot(_ctx.$slots, "content", {}, void 0, true)]),
66924
66399
  _cache[1] || (_cache[1] = createElementVNode("hr", { class: "mb-5 mt-0 w-100" }, null, -1)),
66925
66400
  createElementVNode("div", _hoisted_6$13, [createVNode(_sfc_main$3, {
66926
66401
  class: "btn-default",
@@ -67389,7 +66864,7 @@ var isNumeric = (value) => {
67389
66864
  };
67390
66865
  //#endregion
67391
66866
  //#region src/components/small/app-file/AppFileDropZone.vue
67392
- var _sfc_main$106 = {
66867
+ var _sfc_main$107 = {
67393
66868
  __name: "AppFileDropZone",
67394
66869
  emits: ["files-dropped"],
67395
66870
  setup(__props, { emit: __emit }) {
@@ -67435,11 +66910,11 @@ var _sfc_main$106 = {
67435
66910
  };
67436
66911
  //#endregion
67437
66912
  //#region src/components/small/app-modal/AppModal.vue
67438
- var _hoisted_1$69 = {
66913
+ var _hoisted_1$70 = {
67439
66914
  class: "app-modal-overlay",
67440
66915
  style: { "z-index": "99999" }
67441
66916
  };
67442
- var _hoisted_2$50 = {
66917
+ var _hoisted_2$51 = {
67443
66918
  "aria-modal": "true",
67444
66919
  class: "modal fade show display-block",
67445
66920
  tabindex: "-1"
@@ -67553,7 +67028,7 @@ var AppModal_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
67553
67028
  });
67554
67029
  return (_ctx, _cache) => {
67555
67030
  return openBlock(), createBlock(Transition, { name: "fadeHeight" }, {
67556
- default: withCtx(() => [withDirectives(createElementVNode("div", _hoisted_1$69, [createElementVNode("div", _hoisted_2$50, [createElementVNode("div", {
67031
+ default: withCtx(() => [withDirectives(createElementVNode("div", _hoisted_1$70, [createElementVNode("div", _hoisted_2$51, [createElementVNode("div", {
67557
67032
  ref_key: "modal",
67558
67033
  ref: modal,
67559
67034
  style: normalizeStyle(modalStyle.value),
@@ -67569,15 +67044,15 @@ var AppModal_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
67569
67044
  }, [["__scopeId", "data-v-4065aede"]]);
67570
67045
  //#endregion
67571
67046
  //#region src/components/small/app-alert-modal/AppAlertModal.vue
67572
- var _hoisted_1$68 = { class: "app-alert-modal rounded-3 shadow p-3" };
67573
- var _hoisted_2$49 = { class: "mb-2 fw-semibold" };
67574
- var _hoisted_3$33 = ["innerHTML"];
67575
- var _hoisted_4$26 = {
67047
+ var _hoisted_1$69 = { class: "app-alert-modal rounded-3 shadow p-3" };
67048
+ var _hoisted_2$50 = { class: "mb-2 fw-semibold" };
67049
+ var _hoisted_3$34 = ["innerHTML"];
67050
+ var _hoisted_4$27 = {
67576
67051
  key: 1,
67577
67052
  class: "mb-0 app-alert-modal-text"
67578
67053
  };
67579
- var _hoisted_5$19 = { class: "d-flex justify-content-end gap-2 mt-4" };
67580
- var _sfc_main$104 = {
67054
+ var _hoisted_5$20 = { class: "d-flex justify-content-end gap-2 mt-4" };
67055
+ var _sfc_main$105 = {
67581
67056
  __name: "AppAlertModal",
67582
67057
  props: {
67583
67058
  title: {
@@ -67652,11 +67127,11 @@ var _sfc_main$104 = {
67652
67127
  class: "app-modal-content",
67653
67128
  onHide: onCancel
67654
67129
  }, {
67655
- default: withCtx(() => [createElementVNode("div", _hoisted_1$68, [createElementVNode("div", null, [createElementVNode("h5", _hoisted_2$49, toDisplayString(__props.title), 1), __props.html ? (openBlock(), createElementBlock("div", {
67130
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$69, [createElementVNode("div", null, [createElementVNode("h5", _hoisted_2$50, toDisplayString(__props.title), 1), __props.html ? (openBlock(), createElementBlock("div", {
67656
67131
  key: 0,
67657
67132
  class: "app-alert-modal-text",
67658
67133
  innerHTML: __props.text
67659
- }, null, 8, _hoisted_3$33)) : (openBlock(), createElementBlock("p", _hoisted_4$26, toDisplayString(__props.text), 1))]), createElementVNode("div", _hoisted_5$19, [__props.showCancelButton ? (openBlock(), createBlock(_sfc_main$3, {
67134
+ }, null, 8, _hoisted_3$34)) : (openBlock(), createElementBlock("p", _hoisted_4$27, toDisplayString(__props.text), 1))]), createElementVNode("div", _hoisted_5$20, [__props.showCancelButton ? (openBlock(), createBlock(_sfc_main$3, {
67660
67135
  key: 0,
67661
67136
  class: "btn app-alert-cancel-btn border",
67662
67137
  onClick: onCancel
@@ -67720,7 +67195,7 @@ var UIUtils = class {
67720
67195
  container.remove();
67721
67196
  }, 300);
67722
67197
  };
67723
- render(h(_sfc_main$104, {
67198
+ render(h(_sfc_main$105, {
67724
67199
  ...options,
67725
67200
  resolve: (value) => {
67726
67201
  resolve(value);
@@ -67732,11 +67207,11 @@ var UIUtils = class {
67732
67207
  };
67733
67208
  //#endregion
67734
67209
  //#region src/components/small/app-toast/AppToastCard.vue
67735
- var _hoisted_1$67 = {
67210
+ var _hoisted_1$68 = {
67736
67211
  key: 0,
67737
67212
  class: "fw-semibold"
67738
67213
  };
67739
- var _sfc_main$103 = {
67214
+ var _sfc_main$104 = {
67740
67215
  __name: "AppToastCard",
67741
67216
  props: {
67742
67217
  item: {
@@ -67780,7 +67255,7 @@ var _sfc_main$103 = {
67780
67255
  }, [__props.item.component ? (openBlock(), createBlock(resolveDynamicComponent(__props.item.component), mergeProps({ key: 0 }, __props.item.props, {
67781
67256
  toast: __props.item,
67782
67257
  close
67783
- }), null, 16, ["toast"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [__props.item.title ? (openBlock(), createElementBlock("div", _hoisted_1$67, toDisplayString(__props.item.title), 1)) : createCommentVNode("", true), __props.item.message ? (openBlock(), createElementBlock("div", mergeProps({
67258
+ }), null, 16, ["toast"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [__props.item.title ? (openBlock(), createElementBlock("div", _hoisted_1$68, toDisplayString(__props.item.title), 1)) : createCommentVNode("", true), __props.item.message ? (openBlock(), createElementBlock("div", mergeProps({
67784
67259
  key: 1,
67785
67260
  class: { "small mt-1": __props.item.title }
67786
67261
  }, isHtml(__props.item.message) ? { innerHTML: __props.item.message } : {}), [!isHtml(__props.item.message) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode(toDisplayString(__props.item.message), 1)], 64)) : createCommentVNode("", true)], 16)) : createCommentVNode("", true)], 64))], 4), __props.item.isClosable ? (openBlock(), createElementBlock("button", {
@@ -67798,7 +67273,7 @@ var _sfc_main$103 = {
67798
67273
  };
67799
67274
  //#endregion
67800
67275
  //#region src/components/small/app-toast/AppToastContainer.vue
67801
- var _sfc_main$102 = {
67276
+ var _sfc_main$103 = {
67802
67277
  __name: "AppToastContainer",
67803
67278
  setup(__props) {
67804
67279
  const { positions, positionStyle, getVisibleToasts, getPositionClasses, getToastClass, getContainerHoverStyle, getCombinedToastStyle, isContentHidden, onMeasure, pauseAll, resumeAll } = useToastLayout();
@@ -67815,7 +67290,7 @@ var _sfc_main$102 = {
67815
67290
  onMouseenter: _cache[0] || (_cache[0] = (...args) => unref(pauseAll) && unref(pauseAll)(...args)),
67816
67291
  onMouseleave: _cache[1] || (_cache[1] = (...args) => unref(resumeAll) && unref(resumeAll)(...args))
67817
67292
  }, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(getVisibleToasts)(position), (item, index) => {
67818
- return openBlock(), createBlock(_sfc_main$103, {
67293
+ return openBlock(), createBlock(_sfc_main$104, {
67819
67294
  key: item.id,
67820
67295
  item,
67821
67296
  "toast-class": unref(getToastClass)(item),
@@ -67866,7 +67341,7 @@ function ensureMounted() {
67866
67341
  container.id = "app-toast-root";
67867
67342
  document.body.appendChild(container);
67868
67343
  }
67869
- render(h(_sfc_main$102), container);
67344
+ render(h(_sfc_main$103), container);
67870
67345
  mounted = true;
67871
67346
  }
67872
67347
  function createId() {
@@ -68279,7 +67754,7 @@ var typeOfTest = (type) => (thing) => typeof thing === type;
68279
67754
  *
68280
67755
  * @returns {boolean} True if value is an Array, otherwise false
68281
67756
  */
68282
- var { isArray: isArray$3 } = Array;
67757
+ var { isArray: isArray$4 } = Array;
68283
67758
  /**
68284
67759
  * Determine if a value is undefined
68285
67760
  *
@@ -68349,7 +67824,7 @@ var isNumber = typeOfTest("number");
68349
67824
  *
68350
67825
  * @returns {boolean} True if value is an Object, otherwise false
68351
67826
  */
68352
- var isObject$11 = (thing) => thing !== null && typeof thing === "object";
67827
+ var isObject$12 = (thing) => thing !== null && typeof thing === "object";
68353
67828
  /**
68354
67829
  * Determine if a value is a Boolean
68355
67830
  *
@@ -68364,7 +67839,7 @@ var isBoolean = (thing) => thing === true || thing === false;
68364
67839
  *
68365
67840
  * @returns {boolean} True if value is a plain Object, otherwise false
68366
67841
  */
68367
- var isPlainObject = (val) => {
67842
+ var isPlainObject$1 = (val) => {
68368
67843
  if (kindOf(val) !== "object") return false;
68369
67844
  const prototype = getPrototypeOf(val);
68370
67845
  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);
@@ -68408,7 +67883,7 @@ var isFileList = kindOfTest("FileList");
68408
67883
  *
68409
67884
  * @returns {boolean} True if value is a Stream, otherwise false
68410
67885
  */
68411
- var isStream = (val) => isObject$11(val) && isFunction(val.pipe);
67886
+ var isStream = (val) => isObject$12(val) && isFunction(val.pipe);
68412
67887
  /**
68413
67888
  * Determine if a value is a FormData
68414
67889
  *
@@ -68462,7 +67937,7 @@ function forEach$2(obj, fn, { allOwnKeys = false } = {}) {
68462
67937
  let i;
68463
67938
  let l;
68464
67939
  if (typeof obj !== "object") obj = [obj];
68465
- if (isArray$3(obj)) for (i = 0, l = obj.length; i < l; i++) fn.call(null, obj[i], i, obj);
67940
+ if (isArray$4(obj)) for (i = 0, l = obj.length; i < l; i++) fn.call(null, obj[i], i, obj);
68466
67941
  else {
68467
67942
  const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
68468
67943
  const len = keys.length;
@@ -68512,9 +67987,9 @@ function merge$1() {
68512
67987
  const result = {};
68513
67988
  const assignValue = (val, key) => {
68514
67989
  const targetKey = caseless && findKey$1(result, key) || key;
68515
- if (isPlainObject(result[targetKey]) && isPlainObject(val)) result[targetKey] = merge$1(result[targetKey], val);
68516
- else if (isPlainObject(val)) result[targetKey] = merge$1({}, val);
68517
- else if (isArray$3(val)) result[targetKey] = val.slice();
67990
+ if (isPlainObject$1(result[targetKey]) && isPlainObject$1(val)) result[targetKey] = merge$1(result[targetKey], val);
67991
+ else if (isPlainObject$1(val)) result[targetKey] = merge$1({}, val);
67992
+ else if (isArray$4(val)) result[targetKey] = val.slice();
68518
67993
  else result[targetKey] = val;
68519
67994
  };
68520
67995
  for (let i = 0, l = arguments.length; i < l; i++) arguments[i] && forEach$2(arguments[i], assignValue);
@@ -68618,7 +68093,7 @@ var endsWith = (str, searchString, position) => {
68618
68093
  */
68619
68094
  var toArray$1 = (thing) => {
68620
68095
  if (!thing) return null;
68621
- if (isArray$3(thing)) return thing;
68096
+ if (isArray$4(thing)) return thing;
68622
68097
  let i = thing.length;
68623
68098
  if (!isNumber(i)) return null;
68624
68099
  const arr = new Array(i);
@@ -68722,7 +68197,7 @@ var toObjectSet = (arrayOrString, delimiter) => {
68722
68197
  obj[value] = true;
68723
68198
  });
68724
68199
  };
68725
- isArray$3(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));
68200
+ isArray$4(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));
68726
68201
  return obj;
68727
68202
  };
68728
68203
  var noop$1 = () => {};
@@ -68742,11 +68217,11 @@ function isSpecCompliantForm(thing) {
68742
68217
  var toJSONObject = (obj) => {
68743
68218
  const stack = new Array(10);
68744
68219
  const visit = (source, i) => {
68745
- if (isObject$11(source)) {
68220
+ if (isObject$12(source)) {
68746
68221
  if (stack.indexOf(source) >= 0) return;
68747
68222
  if (!("toJSON" in source)) {
68748
68223
  stack[i] = source;
68749
- const target = isArray$3(source) ? [] : {};
68224
+ const target = isArray$4(source) ? [] : {};
68750
68225
  forEach$2(source, (value, key) => {
68751
68226
  const reducedValue = visit(value, i + 1);
68752
68227
  !isUndefined(reducedValue) && (target[key] = reducedValue);
@@ -68760,7 +68235,7 @@ var toJSONObject = (obj) => {
68760
68235
  return visit(obj, 0);
68761
68236
  };
68762
68237
  var isAsyncFn = kindOfTest("AsyncFunction");
68763
- var isThenable = (thing) => thing && (isObject$11(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);
68238
+ var isThenable = (thing) => thing && (isObject$12(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);
68764
68239
  var _setImmediate = ((setImmediateSupported, postMessageSupported) => {
68765
68240
  if (setImmediateSupported) return setImmediate;
68766
68241
  return postMessageSupported ? ((token, callbacks) => {
@@ -68774,7 +68249,7 @@ var _setImmediate = ((setImmediateSupported, postMessageSupported) => {
68774
68249
  })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
68775
68250
  })(typeof setImmediate === "function", isFunction(_global.postMessage));
68776
68251
  var utils_default = {
68777
- isArray: isArray$3,
68252
+ isArray: isArray$4,
68778
68253
  isArrayBuffer,
68779
68254
  isBuffer,
68780
68255
  isFormData,
@@ -68782,8 +68257,8 @@ var utils_default = {
68782
68257
  isString: isString$1,
68783
68258
  isNumber,
68784
68259
  isBoolean,
68785
- isObject: isObject$11,
68786
- isPlainObject,
68260
+ isObject: isObject$12,
68261
+ isPlainObject: isPlainObject$1,
68787
68262
  isReadableStream,
68788
68263
  isRequest,
68789
68264
  isResponse,
@@ -71123,14 +70598,14 @@ var fileStatus = {
71123
70598
  };
71124
70599
  //#endregion
71125
70600
  //#region src/components/small/app-file/AppFileItem.vue
71126
- var _hoisted_1$66 = { class: "flex-center-vertical" };
71127
- var _hoisted_2$48 = { key: 0 };
71128
- var _hoisted_3$32 = {
70601
+ var _hoisted_1$67 = { class: "flex-center-vertical" };
70602
+ var _hoisted_2$49 = { key: 0 };
70603
+ var _hoisted_3$33 = {
71129
70604
  key: 1,
71130
70605
  class: "file-action-button flex-1 mr-10"
71131
70606
  };
71132
- var _hoisted_4$25 = { class: "ph-eye" };
71133
- var _hoisted_5$18 = { class: "ph-download" };
70607
+ var _hoisted_4$26 = { class: "ph-eye" };
70608
+ var _hoisted_5$19 = { class: "ph-download" };
71134
70609
  var _hoisted_6$12 = { class: "ph-x-circle" };
71135
70610
  var AppFileItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71136
70611
  __name: "AppFileItem",
@@ -71177,23 +70652,23 @@ var AppFileItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71177
70652
  });
71178
70653
  return (_ctx, _cache) => {
71179
70654
  const _directive_tippy = resolveDirective("tippy");
71180
- return openBlock(), createElementBlock("div", _hoisted_1$66, [
70655
+ return openBlock(), createElementBlock("div", _hoisted_1$67, [
71181
70656
  createElementVNode("i", {
71182
70657
  class: normalizeClass([mediaIconClass.value, "mr-10"]),
71183
70658
  style: { "font-size": "22px" }
71184
70659
  }, null, 2),
71185
- __props.file ? (openBlock(), createElementBlock("div", _hoisted_2$48, toDisplayString(filename.value), 1)) : createCommentVNode("", true),
71186
- __props.file ? (openBlock(), createElementBlock("div", _hoisted_3$32, [
70660
+ __props.file ? (openBlock(), createElementBlock("div", _hoisted_2$49, toDisplayString(filename.value), 1)) : createCommentVNode("", true),
70661
+ __props.file ? (openBlock(), createElementBlock("div", _hoisted_3$33, [
71187
70662
  props.showPreview ? (openBlock(), createElementBlock("div", {
71188
70663
  key: 0,
71189
70664
  class: "ml-5 mr-5 action-icon",
71190
70665
  onClick: _cache[0] || (_cache[0] = () => emits("preview", __props.file))
71191
- }, [withDirectives(createElementVNode("i", _hoisted_4$25, null, 512), [[_directive_tippy, "Vizualizați fișierul"]])])) : createCommentVNode("", true),
70666
+ }, [withDirectives(createElementVNode("i", _hoisted_4$26, null, 512), [[_directive_tippy, "Vizualizați fișierul"]])])) : createCommentVNode("", true),
71192
70667
  props.showDownload ? (openBlock(), createElementBlock("div", {
71193
70668
  key: 1,
71194
70669
  class: "ml-5 mr-5 action-icon",
71195
70670
  onClick: _cache[1] || (_cache[1] = () => emits("download", __props.file))
71196
- }, [withDirectives(createElementVNode("i", _hoisted_5$18, null, 512), [[_directive_tippy, "Descărcați fișierul"]])])) : createCommentVNode("", true),
70671
+ }, [withDirectives(createElementVNode("i", _hoisted_5$19, null, 512), [[_directive_tippy, "Descărcați fișierul"]])])) : createCommentVNode("", true),
71197
70672
  !__props.disabled ? (openBlock(), createElementBlock("div", {
71198
70673
  key: 2,
71199
70674
  class: "ml-5 mr-5 action-icon",
@@ -71206,17 +70681,17 @@ var AppFileItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71206
70681
  }, [["__scopeId", "data-v-307075d7"]]);
71207
70682
  //#endregion
71208
70683
  //#region src/components/small/app-file/AppFileInput.vue
71209
- var _hoisted_1$65 = { class: "flex-center-vertical" };
71210
- var _hoisted_2$47 = {
70684
+ var _hoisted_1$66 = { class: "flex-center-vertical" };
70685
+ var _hoisted_2$48 = {
71211
70686
  key: 0,
71212
70687
  class: "flex-1"
71213
70688
  };
71214
- var _hoisted_3$31 = {
70689
+ var _hoisted_3$32 = {
71215
70690
  key: 1,
71216
70691
  class: "flex-1"
71217
70692
  };
71218
- var _hoisted_4$24 = { class: "btn-group" };
71219
- var _hoisted_5$17 = ["accept", "disabled"];
70693
+ var _hoisted_4$25 = { class: "btn-group" };
70694
+ var _hoisted_5$18 = ["accept", "disabled"];
71220
70695
  var AppFileInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71221
70696
  __name: "AppFileInput",
71222
70697
  props: /*@__PURE__*/ mergeModels({
@@ -71287,7 +70762,7 @@ var AppFileInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71287
70762
  isLoading.value = false;
71288
70763
  };
71289
70764
  return (_ctx, _cache) => {
71290
- return openBlock(), createElementBlock("div", _hoisted_1$65, [!isMediaEmpty.value ? (openBlock(), createElementBlock("div", _hoisted_2$47, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(import_lodash.isArray)(media.value) ? media.value : [media.value], (file) => {
70765
+ return openBlock(), createElementBlock("div", _hoisted_1$66, [!isMediaEmpty.value ? (openBlock(), createElementBlock("div", _hoisted_2$48, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(import_lodash.isArray)(media.value) ? media.value : [media.value], (file) => {
71291
70766
  return openBlock(), createBlock(AppFileItem_default, {
71292
70767
  key: file.id,
71293
70768
  file,
@@ -71307,7 +70782,7 @@ var AppFileInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71307
70782
  "onDownload",
71308
70783
  "onPreview"
71309
70784
  ]);
71310
- }), 128))])) : (openBlock(), createElementBlock("div", _hoisted_3$31, toDisplayString(__props.disabled ? "Nu a fost ales niciun fișier." : "Alegeți un fișier."), 1)), createElementVNode("div", _hoisted_4$24, [!__props.disabled ? (openBlock(), createElementBlock("div", {
70785
+ }), 128))])) : (openBlock(), createElementBlock("div", _hoisted_3$32, toDisplayString(__props.disabled ? "Nu a fost ales niciun fișier." : "Alegeți un fișier."), 1)), createElementVNode("div", _hoisted_4$25, [!__props.disabled ? (openBlock(), createElementBlock("div", {
71311
70786
  key: 0,
71312
70787
  class: "btn-container",
71313
70788
  onClick: confirm
@@ -71319,7 +70794,7 @@ var AppFileInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71319
70794
  type: "file",
71320
70795
  style: { "display": "none" },
71321
70796
  onChange: uploadFile
71322
- }, null, 40, _hoisted_5$17), _cache[0] || (_cache[0] = createElementVNode("div", { class: "btn btn-primary text-capitalize font-500" }, [createElementVNode("i", {
70797
+ }, null, 40, _hoisted_5$18), _cache[0] || (_cache[0] = createElementVNode("div", { class: "btn btn-primary text-capitalize font-500" }, [createElementVNode("i", {
71323
70798
  class: "ph-upload",
71324
70799
  style: { "font-size": "16px" }
71325
70800
  }), createElementVNode("span", { class: "ml-5" }, "Încarcă")], -1))])) : createCommentVNode("", true), !isMediaEmpty.value && __props.isMultiple ? (openBlock(), createElementBlock("div", {
@@ -71332,16 +70807,16 @@ var AppFileInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71332
70807
  }, [["__scopeId", "data-v-c5bb432b"]]);
71333
70808
  //#endregion
71334
70809
  //#region src/components/small/app-overlay/AppOverlay.vue
71335
- var _sfc_main$99 = {};
71336
- var _hoisted_1$64 = { class: "blockUI blockOverlay" };
70810
+ var _sfc_main$100 = {};
70811
+ var _hoisted_1$65 = { class: "blockUI blockOverlay" };
71337
70812
  function _sfc_render$2(_ctx, _cache) {
71338
- return openBlock(), createElementBlock("div", _hoisted_1$64, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]);
70813
+ return openBlock(), createElementBlock("div", _hoisted_1$65, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]);
71339
70814
  }
71340
- var AppOverlay_default = /*#__PURE__*/ _plugin_vue_export_helper_default(_sfc_main$99, [["render", _sfc_render$2], ["__scopeId", "data-v-07e2c47c"]]);
70815
+ var AppOverlay_default = /*#__PURE__*/ _plugin_vue_export_helper_default(_sfc_main$100, [["render", _sfc_render$2], ["__scopeId", "data-v-07e2c47c"]]);
71341
70816
  //#endregion
71342
70817
  //#region src/components/small/app-loading-overlay/AppLoadingOverlay.vue
71343
- var _hoisted_1$63 = { class: "w-100 h-100 flex-center" };
71344
- var _hoisted_2$46 = {
70818
+ var _hoisted_1$64 = { class: "w-100 h-100 flex-center" };
70819
+ var _hoisted_2$47 = {
71345
70820
  key: 0,
71346
70821
  class: "icon-spinner11 spinner"
71347
70822
  };
@@ -71354,7 +70829,7 @@ var _sfc_main$26 = {
71354
70829
  setup(__props) {
71355
70830
  return (_ctx, _cache) => {
71356
70831
  return openBlock(), createBlock(AppOverlay_default, null, {
71357
- default: withCtx(() => [createElementVNode("div", _hoisted_1$63, [__props.showIcon ? (openBlock(), createElementBlock("i", _hoisted_2$46)) : createCommentVNode("", true)])]),
70832
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$64, [__props.showIcon ? (openBlock(), createElementBlock("i", _hoisted_2$47)) : createCommentVNode("", true)])]),
71358
70833
  _: 1
71359
70834
  });
71360
70835
  };
@@ -71362,7 +70837,7 @@ var _sfc_main$26 = {
71362
70837
  };
71363
70838
  //#endregion
71364
70839
  //#region src/components/small/app-file/AppFile.vue
71365
- var _hoisted_1$62 = { class: "form-control" };
70840
+ var _hoisted_1$63 = { class: "form-control" };
71366
70841
  var _sfc_main$14 = {
71367
70842
  __name: "AppFile",
71368
70843
  props: /*@__PURE__*/ mergeModels({
@@ -71447,7 +70922,7 @@ var _sfc_main$14 = {
71447
70922
  };
71448
70923
  return (_ctx, _cache) => {
71449
70924
  return openBlock(), createBlock(AppFormElement_default, normalizeProps(guardReactiveProps(unref(formElementProps))), {
71450
- default: withCtx(() => [__props.isLoading ? (openBlock(), createBlock(_sfc_main$26, { key: 0 })) : createCommentVNode("", true), createElementVNode("div", _hoisted_1$62, [createVNode(_sfc_main$106, { onFilesDropped: addFiles }, {
70925
+ default: withCtx(() => [__props.isLoading ? (openBlock(), createBlock(_sfc_main$26, { key: 0 })) : createCommentVNode("", true), createElementVNode("div", _hoisted_1$63, [createVNode(_sfc_main$107, { onFilesDropped: addFiles }, {
71451
70926
  default: withCtx(({ dropZoneActive }) => [createVNode(AppFileInput_default, {
71452
70927
  modelValue: files.value,
71453
70928
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => files.value = $event),
@@ -71477,14 +70952,14 @@ var _sfc_main$14 = {
71477
70952
  };
71478
70953
  //#endregion
71479
70954
  //#region src/components/small/app-form-repeater/AppFormRepeater.vue
71480
- var _hoisted_1$61 = { class: "display-flex align-items-center" };
71481
- var _hoisted_2$45 = { class: "display-flex pl-10" };
71482
- var _hoisted_3$30 = {
70955
+ var _hoisted_1$62 = { class: "display-flex align-items-center" };
70956
+ var _hoisted_2$46 = { class: "display-flex pl-10" };
70957
+ var _hoisted_3$31 = {
71483
70958
  key: 1,
71484
70959
  class: "card list app-form-repeater-list'"
71485
70960
  };
71486
- var _hoisted_4$23 = { class: "d-flex py-2 px-1" };
71487
- var _hoisted_5$16 = { class: "flex-center mx-2" };
70961
+ var _hoisted_4$24 = { class: "d-flex py-2 px-1" };
70962
+ var _hoisted_5$17 = { class: "flex-center mx-2" };
71488
70963
  var _hoisted_6$11 = { class: "px-1" };
71489
70964
  var _hoisted_7$6 = { class: "flex-grow-1" };
71490
70965
  var _hoisted_8$5 = { class: "display-flex align-items-center" };
@@ -71599,11 +71074,11 @@ var _sfc_main$19 = {
71599
71074
  type: "list",
71600
71075
  onIsCollapsedChanged: (isCollapsed) => handleIsCollapsedChange(index, isCollapsed)
71601
71076
  }, {
71602
- title: withCtx(() => [createElementVNode("div", _hoisted_1$61, [!__props.disabled && __props.isDraggable ? (openBlock(), createBlock(unref(IconMenu2), {
71077
+ title: withCtx(() => [createElementVNode("div", _hoisted_1$62, [!__props.disabled && __props.isDraggable ? (openBlock(), createBlock(unref(IconMenu2), {
71603
71078
  key: 0,
71604
71079
  size: 22,
71605
71080
  class: "drag-handle"
71606
- })) : createCommentVNode("", true), createElementVNode("div", _hoisted_2$45, [renderSlot(_ctx.$slots, "title", normalizeProps(guardReactiveProps({
71081
+ })) : createCommentVNode("", true), createElementVNode("div", _hoisted_2$46, [renderSlot(_ctx.$slots, "title", normalizeProps(guardReactiveProps({
71607
71082
  element,
71608
71083
  index,
71609
71084
  removeItemAtIndex
@@ -71633,8 +71108,8 @@ var _sfc_main$19 = {
71633
71108
  "can-collapse",
71634
71109
  "is-collapsed",
71635
71110
  "onIsCollapsedChanged"
71636
- ])) : (openBlock(), createElementBlock("div", _hoisted_3$30, [createElementVNode("div", _hoisted_4$23, [
71637
- createElementVNode("div", _hoisted_5$16, [!__props.disabled && __props.isDraggable ? (openBlock(), createBlock(unref(IconMenu2), {
71111
+ ])) : (openBlock(), createElementBlock("div", _hoisted_3$31, [createElementVNode("div", _hoisted_4$24, [
71112
+ createElementVNode("div", _hoisted_5$17, [!__props.disabled && __props.isDraggable ? (openBlock(), createBlock(unref(IconMenu2), {
71638
71113
  key: 0,
71639
71114
  size: 22,
71640
71115
  class: "drag-handle"
@@ -71689,6 +71164,214 @@ var _sfc_main$19 = {
71689
71164
  }
71690
71165
  };
71691
71166
  //#endregion
71167
+ //#region src/components/small/app-grid-picker/AppGridPicker.vue
71168
+ var _hoisted_1$61 = { class: "w-100 position-relative cursor-pointer" };
71169
+ var _hoisted_2$45 = ["placeholder"];
71170
+ var _hoisted_3$30 = {
71171
+ key: 1,
71172
+ class: "flex-1 input-placeholder"
71173
+ };
71174
+ var _hoisted_4$23 = {
71175
+ key: 2,
71176
+ class: "form-control-feedback-icon clear-button"
71177
+ };
71178
+ var _hoisted_5$16 = ["onClick"];
71179
+ var AppGridPicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71180
+ __name: "AppGridPicker",
71181
+ props: /*@__PURE__*/ mergeModels({
71182
+ options: {
71183
+ type: Array,
71184
+ required: true
71185
+ },
71186
+ displayBy: {
71187
+ type: [String],
71188
+ default: "name"
71189
+ },
71190
+ openDirection: {
71191
+ type: String,
71192
+ default: "bottom"
71193
+ },
71194
+ columns: {
71195
+ type: Number,
71196
+ default: 4
71197
+ },
71198
+ width: {
71199
+ type: Number,
71200
+ default: 200
71201
+ },
71202
+ height: {
71203
+ type: Number,
71204
+ default: 500
71205
+ },
71206
+ showRemoveButtons: {
71207
+ type: Boolean,
71208
+ default: true
71209
+ },
71210
+ isTypeable: {
71211
+ type: Boolean,
71212
+ default: true
71213
+ },
71214
+ search: { type: Function },
71215
+ isItemSelected: {},
71216
+ ...appFormElementProps_default
71217
+ }, {
71218
+ "modelValue": {},
71219
+ "modelModifiers": {}
71220
+ }),
71221
+ emits: /*@__PURE__*/ mergeModels(["close", "search"], ["update:modelValue"]),
71222
+ setup(__props, { expose: __expose, emit: __emit }) {
71223
+ const modelValue = useModel(__props, "modelValue");
71224
+ const props = __props;
71225
+ const emits = __emit;
71226
+ ref("100%");
71227
+ const showGrid = ref(false);
71228
+ const input = ref(null);
71229
+ const grid = ref(null);
71230
+ const searchValue = ref(null);
71231
+ const searchField = ref(null);
71232
+ const filteredOptions = ref((0, import_lodash.cloneDeep)(props.options));
71233
+ const { formElementProps } = useAppFormElement(props);
71234
+ const heightComputed = computed(() => {
71235
+ const rows = Math.ceil(filteredOptions.value.length / props.columns);
71236
+ return (0, import_lodash.min)([props.width / props.columns * rows, props.height]);
71237
+ });
71238
+ computed(() => {
71239
+ return {
71240
+ width: props.width + "px",
71241
+ height: heightComputed.value + "px"
71242
+ };
71243
+ });
71244
+ const cellStyle = computed(() => {
71245
+ const width = props.width / props.columns;
71246
+ return {
71247
+ width: width + "px",
71248
+ height: width + "px"
71249
+ };
71250
+ });
71251
+ const open = () => {
71252
+ if (props.disabled) return;
71253
+ showGrid.value = true;
71254
+ if (props.isTypeable) nextTick(() => searchField.value.focus());
71255
+ };
71256
+ const close = () => {
71257
+ showGrid.value = false;
71258
+ emits("close");
71259
+ };
71260
+ const onSelectValue = (element, index) => {
71261
+ modelValue.value = element;
71262
+ close();
71263
+ };
71264
+ const getDisplayValue = (value) => {
71265
+ if ((0, import_lodash.isObject)(value)) return (0, import_lodash.get)(value, props.displayBy, null);
71266
+ return value;
71267
+ };
71268
+ const getActiveClass = (element) => {
71269
+ return { active: (0, import_lodash.isEqual)(element, modelValue.value) };
71270
+ };
71271
+ const onDeleteInput = () => {
71272
+ modelValue.value = null;
71273
+ };
71274
+ useClickOutside({
71275
+ target: grid,
71276
+ handler: () => {
71277
+ if (!showGrid.value) return;
71278
+ close();
71279
+ },
71280
+ isOpen: showGrid,
71281
+ ignore: [input, searchField]
71282
+ });
71283
+ const inputClass = computed(() => ({
71284
+ "w-100 form-control": true,
71285
+ disabled: props.disabled
71286
+ }));
71287
+ const getFilteredOptions = async (search = "") => {
71288
+ if (props.search) return await props.search(props.options, search);
71289
+ if (!search || search.length === 0) return props.options;
71290
+ return props.options.filter((item) => {
71291
+ let itemName = (0, import_lodash.isObject)(item) ? (0, import_lodash.get)(item, props.displayBy, "") : item;
71292
+ itemName = String(itemName).toLowerCase();
71293
+ return itemName.includes(search.toLowerCase());
71294
+ });
71295
+ };
71296
+ const onSearch = async (text) => {
71297
+ filteredOptions.value = await getFilteredOptions(text);
71298
+ emits("searchValue", text);
71299
+ searchValue.value = text;
71300
+ };
71301
+ const onKeyEnter = () => {
71302
+ modelValue.value = (0, import_lodash.head)(filteredOptions.value);
71303
+ close();
71304
+ };
71305
+ watch(searchValue, async (newValue) => {
71306
+ await onSearch(newValue);
71307
+ });
71308
+ watch(() => props.options, async (newValue) => {
71309
+ filteredOptions.value = newValue;
71310
+ });
71311
+ __expose({
71312
+ open,
71313
+ close,
71314
+ props
71315
+ });
71316
+ return (_ctx, _cache) => {
71317
+ const _directive_tippy = resolveDirective("tippy");
71318
+ return openBlock(), createBlock(AppFormElement_default, normalizeProps(guardReactiveProps(unref(formElementProps))), {
71319
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$61, [createElementVNode("div", {
71320
+ ref_key: "input",
71321
+ ref: input,
71322
+ class: "d-flex"
71323
+ }, [
71324
+ renderSlot(_ctx.$slots, "icon", {}, void 0, true),
71325
+ __props.isTypeable && showGrid.value ? withDirectives((openBlock(), createElementBlock("input", {
71326
+ key: 0,
71327
+ ref_key: "searchField",
71328
+ ref: searchField,
71329
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchValue.value = $event),
71330
+ class: "mb-0 no-hover flex-1 form-control",
71331
+ placeholder: props.placeholder,
71332
+ onKeyup: withKeys(onKeyEnter, ["enter"])
71333
+ }, null, 40, _hoisted_2$45)), [[vModelText, searchValue.value]]) : (openBlock(), createElementBlock("div", {
71334
+ key: 1,
71335
+ class: normalizeClass(inputClass.value),
71336
+ onClick: withModifiers(open, ["stop"])
71337
+ }, [renderSlot(_ctx.$slots, "default", { item: modelValue.value }, () => [modelValue.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode(toDisplayString(getDisplayValue(modelValue.value)), 1)], 64)) : (openBlock(), createElementBlock("span", _hoisted_3$30, toDisplayString(props.placeholder), 1))], true)], 2)),
71338
+ modelValue.value && __props.showRemoveButtons ? (openBlock(), createElementBlock("div", _hoisted_4$23, [withDirectives(createElementVNode("i", {
71339
+ class: "ph-x-circle app-cross-icon",
71340
+ onClick: withModifiers(onDeleteInput, ["stop"])
71341
+ }, null, 512), [[_directive_tippy, "Ștergeți opțiunile selectate"]])])) : createCommentVNode("", true)
71342
+ ], 512), input.value ? (openBlock(), createBlock(_sfc_main$112, {
71343
+ key: 0,
71344
+ anchor: input.value,
71345
+ "use-teleport": true,
71346
+ "is-open": showGrid.value,
71347
+ width: props.width
71348
+ }, {
71349
+ default: withCtx(() => [withDirectives(createElementVNode("div", {
71350
+ ref_key: "grid",
71351
+ ref: grid,
71352
+ class: "app-grid-dropdown overflow-auto scrollbar-hidden"
71353
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(filteredOptions.value, (element, index) => {
71354
+ return openBlock(), createElementBlock("div", {
71355
+ key: index,
71356
+ class: "cell",
71357
+ onClick: ($event) => onSelectValue(element, index)
71358
+ }, [createElementVNode("span", {
71359
+ class: normalizeClass(getActiveClass(element)),
71360
+ style: normalizeStyle(cellStyle.value)
71361
+ }, [renderSlot(_ctx.$slots, "default", { item: element }, () => [createTextVNode(toDisplayString(getDisplayValue(element)), 1)], true)], 6)], 8, _hoisted_5$16);
71362
+ }), 128))], 512), [[vShow, showGrid.value]])]),
71363
+ _: 3
71364
+ }, 8, [
71365
+ "anchor",
71366
+ "is-open",
71367
+ "width"
71368
+ ])) : createCommentVNode("", true)])]),
71369
+ _: 3
71370
+ }, 16);
71371
+ };
71372
+ }
71373
+ }, [["__scopeId", "data-v-12dbbc29"]]);
71374
+ //#endregion
71692
71375
  //#region node_modules/lodash/isArray.js
71693
71376
  var require_isArray = /* @__PURE__ */ __commonJSMin(((exports, module) => {
71694
71377
  module.exports = Array.isArray;
@@ -125272,7 +124955,7 @@ var _sfc_main$62 = {
125272
124955
  return renderSlot(_ctx.$slots, slotName, {
125273
124956
  key: slotName,
125274
124957
  file,
125275
- fileUpload: _ctx.fileUpload
124958
+ context: unref(fileUploadContext)
125276
124959
  });
125277
124960
  }), 128))
125278
124961
  ])]),
@@ -125282,7 +124965,7 @@ var _sfc_main$62 = {
125282
124965
  action,
125283
124966
  file,
125284
124967
  index,
125285
- fileUploadContext: unref(fileUploadContext)
124968
+ context: unref(fileUploadContext)
125286
124969
  }, () => [createVNode(_component_app_button, {
125287
124970
  disabled: action.name === "removed" && __props.disabled,
125288
124971
  class: "btn-transparent",
@@ -125495,7 +125178,7 @@ var _sfc_main$15 = {
125495
125178
  accept: unref(fileUpload).normalizedAccept.value,
125496
125179
  disabled: _ctx.disabled,
125497
125180
  onChange: _cache[0] || (_cache[0] = (...args) => unref(fileUpload).onFileSelect && unref(fileUpload).onFileSelect(...args))
125498
- }, null, 40, _hoisted_2$3), createVNode(_sfc_main$106, {
125181
+ }, null, 40, _hoisted_2$3), createVNode(_sfc_main$107, {
125499
125182
  disabled: _ctx.disabled,
125500
125183
  onFilesDropped: unref(fileUpload).onFileSelect
125501
125184
  }, {
@@ -125730,6 +125413,266 @@ function useFormDirty(config) {
125730
125413
  };
125731
125414
  }
125732
125415
  //#endregion
125416
+ //#region src/utils/DateUtils.js
125417
+ var DateUtils = class DateUtils {
125418
+ static getDayNames() {
125419
+ return {
125420
+ [Constants_default.LANGUAGE_EN]: [
125421
+ "Sun",
125422
+ "Mon",
125423
+ "Tue",
125424
+ "Wed",
125425
+ "Thu",
125426
+ "Fri",
125427
+ "Sat"
125428
+ ],
125429
+ [Constants_default.LANGUAGE_RO]: [
125430
+ "Dum",
125431
+ "Lun",
125432
+ "Mar",
125433
+ "Mie",
125434
+ "Joi",
125435
+ "Vin",
125436
+ "Sam"
125437
+ ]
125438
+ };
125439
+ }
125440
+ static getMonthNames() {
125441
+ return {
125442
+ [Constants_default.LANGUAGE_EN]: [
125443
+ "Jan",
125444
+ "Feb",
125445
+ "Mar",
125446
+ "Apr",
125447
+ "May",
125448
+ "Jun",
125449
+ "Jul",
125450
+ "Aug",
125451
+ "Sep",
125452
+ "Oct",
125453
+ "Nov",
125454
+ "Dec"
125455
+ ],
125456
+ [Constants_default.LANGUAGE_RO]: [
125457
+ "Ian",
125458
+ "Feb",
125459
+ "Mar",
125460
+ "Apr",
125461
+ "Mai",
125462
+ "Iun",
125463
+ "Iul",
125464
+ "Aug",
125465
+ "Sep",
125466
+ "Oct",
125467
+ "Noi",
125468
+ "Dec"
125469
+ ]
125470
+ };
125471
+ }
125472
+ static commonFormats = [
125473
+ "yyyy-MM-dd HH:mm:ss",
125474
+ "yyyy-MM-dd HH:mm",
125475
+ "yyyy-MM-dd",
125476
+ "MM/dd/yyyy HH:mm:ss",
125477
+ "MM/dd/yyyy HH:mm",
125478
+ "MM/dd/yyyy",
125479
+ "dd/MM/yyyy HH:mm:ss",
125480
+ "dd/MM/yyyy HH:mm",
125481
+ "dd/MM/yyyy",
125482
+ "dd.MM.yyyy HH:mm:ss",
125483
+ "dd.MM.yyyy HH:mm",
125484
+ "dd.MM.yyyy",
125485
+ "yyyy/MM/dd HH:mm:ss",
125486
+ "yyyy/MM/dd HH:mm",
125487
+ "yyyy/MM/dd",
125488
+ "dd-MM-yyyy HH:mm:ss",
125489
+ "dd-MM-yyyy HH:mm",
125490
+ "dd-MM-yyyy",
125491
+ "yyyy-MM-dd h:mm:ss a",
125492
+ "yyyy-MM-dd h:mm a",
125493
+ "MM/dd/yyyy h:mm:ss a",
125494
+ "MM/dd/yyyy h:mm a",
125495
+ "dd/MM/yyyy h:mm:ss a",
125496
+ "dd/MM/yyyy h:mm a"
125497
+ ];
125498
+ static getCalendarComponentLanguageData(language) {
125499
+ return {
125500
+ days: DateUtils.getDayNames()[language],
125501
+ months: DateUtils.getMonthNames()[language],
125502
+ placeholder: {},
125503
+ formatLocale: { firstDayOfWeek: this.getCalendarComponentFirstDatOfWeek(language) }
125504
+ };
125505
+ }
125506
+ static getCalendarComponentFirstDatOfWeek(language) {
125507
+ if (language === Constants_default.LANGUAGE_EN) return Constants_default.CALENDAR_FIRST_DAY_OF_WEEK_EN;
125508
+ else return Constants_default.CALENDAR_FIRST_DAY_OF_WEEK_RO;
125509
+ }
125510
+ static get FORMAT_ROMANIAN_DATE() {
125511
+ return "dd.MM.yyyy";
125512
+ }
125513
+ static get FORMAT_ROMANIAN_DATE_HOUR() {
125514
+ return "dd.MM.yyyy HH";
125515
+ }
125516
+ static get FORMAT_ROMANIAN_DATE_HOUR_MINUTE() {
125517
+ return "dd.MM.yyyy HH:mm";
125518
+ }
125519
+ static get FORMAT_ROMANIAN_DATE_HOUR_MINUTE_SECOND() {
125520
+ return "dd.MM.yyyy HH:mm:ss";
125521
+ }
125522
+ static get FORMAT_ENGLISH_DATE() {
125523
+ return "yyyy-MM-dd";
125524
+ }
125525
+ static get FORMAT_ENGLISH_DATE_HOUR() {
125526
+ return "yyyy-MM-dd HH";
125527
+ }
125528
+ static get FORMAT_ENGLISH_DATE_HOUR_MINUTE() {
125529
+ return "yyyy-MM-dd HH:mm";
125530
+ }
125531
+ static get FORMAT_ENGLISH_DATE_HOUR_MINUTE_SECOND() {
125532
+ return "yyyy-MM-dd HH:mm:ss";
125533
+ }
125534
+ static stringToDate(dateString, format = null) {
125535
+ if (!dateString) return null;
125536
+ if (format) return parse$2(dateString, format, /* @__PURE__ */ new Date());
125537
+ for (const format of this.commonFormats) try {
125538
+ const result = parse$2(dateString, format, /* @__PURE__ */ new Date());
125539
+ if (isValid$1(result)) return result;
125540
+ } catch (error) {
125541
+ continue;
125542
+ }
125543
+ const nativeParsed = new Date(dateString);
125544
+ return isValid$1(nativeParsed) ? nativeParsed : null;
125545
+ }
125546
+ static stringFromTo(date, formatFrom = this.FORMAT_ENGLISH_DATE, formatTo = this.FORMAT_ROMANIAN_DATE) {
125547
+ if (!date) return null;
125548
+ return format$1(parse$2(date, formatFrom, /* @__PURE__ */ new Date()), formatTo);
125549
+ }
125550
+ static dateToString(date, dateFormat = this.FORMAT_ROMANIAN_DATE) {
125551
+ if (!date) return null;
125552
+ return format$1(date, dateFormat);
125553
+ }
125554
+ /**
125555
+ * @deprecated since version 1.9.7
125556
+ */
125557
+ static dateToStringWithTime(date, dateFormat = "dd-MM-yyyy HH:mm:ss") {
125558
+ return format$1(date, dateFormat);
125559
+ }
125560
+ /**
125561
+ * @deprecated since version 1.9.7
125562
+ */
125563
+ static dateFromTo(date, formatFrom = "yyyy-MM-dd", formatTo = "dd-MM-yyyy") {
125564
+ console.warn("Warning! Deprecated function from 01.03.2023 called!");
125565
+ if (!date) return null;
125566
+ return format$1(parse$2(date, formatFrom, /* @__PURE__ */ new Date()), formatTo);
125567
+ }
125568
+ /**
125569
+ * @deprecated since version 1.9.7
125570
+ */
125571
+ static dateFromToWithTime(date, formatFrom = "yyyy-MM-dd HH:mm:ss", formatTo = "dd-MM-yyyy HH:mm:ss") {
125572
+ console.warn("Warning! Deprecated function from 01.03.2023 called!");
125573
+ if (!date) return null;
125574
+ return format$1(parse$2(date, formatFrom, /* @__PURE__ */ new Date()), formatTo);
125575
+ }
125576
+ /**
125577
+ * @deprecated since version 1.9.7
125578
+ */
125579
+ static stringFromToWithTime(date, formatFrom = "yyyy-MM-dd HH:mm:ss", formatTo = "dd-MM-yyyy HH:mm:ss") {
125580
+ console.warn("Warning! Deprecated function from 01.03.2023 called!");
125581
+ if (!date) return null;
125582
+ return format$1(parse$2(date, formatFrom, /* @__PURE__ */ new Date()), formatTo);
125583
+ }
125584
+ /**
125585
+ * @deprecated since version 1.9.7
125586
+ */
125587
+ static romanianToEnglishDate(dateString) {
125588
+ console.warn("Warning! Deprecated function from 01.03.2023 called!");
125589
+ return this.stringFromTo(dateString, "dd-MM-yyyy", "yyyy-MM-dd");
125590
+ }
125591
+ /**
125592
+ * @deprecated since version 1.9.7
125593
+ */
125594
+ static romanianToEnglishDateHour(dateString) {
125595
+ console.warn("Warning! Deprecated function from 01.03.2023 called!");
125596
+ return this.stringFromTo(dateString, "dd-MM-yyyy HH", "yyyy-MM-dd HH:00");
125597
+ }
125598
+ /**
125599
+ * @deprecated since version 1.9.7
125600
+ */
125601
+ static romanianToEnglishDateHourMinute(dateString) {
125602
+ console.warn("Warning! Deprecated function from 01.03.2023 called!");
125603
+ return this.stringFromTo(dateString, "dd-MM-yyyy HH:mm", "yyyy-MM-dd HH:mm");
125604
+ }
125605
+ /**
125606
+ * @deprecated since version 1.9.7
125607
+ */
125608
+ static romanianToEnglishDateHourMinuteSeconds(dateString) {
125609
+ console.warn("Warning! Deprecated function from 01.03.2023 called!");
125610
+ return this.stringFromTo(dateString, "dd-MM-yyyy HH:mm:ss", "yyyy-MM-dd HH:mm:ss");
125611
+ }
125612
+ /**
125613
+ * @deprecated since version 1.9.7
125614
+ */
125615
+ static englishToRomanianDate(dateString) {
125616
+ console.warn("Warning! Deprecated function from 01.03.2023 called!");
125617
+ return this.stringFromTo(dateString, "yyyy-MM-dd", "dd-MM-yyyy");
125618
+ }
125619
+ /**
125620
+ * @deprecated since version 2.0
125621
+ */
125622
+ static englishToRomanianDateHour(dateString) {
125623
+ console.warn("Warning! Depricated function from 01.03.2023 called!");
125624
+ return this.stringFromTo(dateString, "yyyy-MM-dd HH:00", "dd-MM-yyyy HH");
125625
+ }
125626
+ /**
125627
+ * @deprecated since version 2.0
125628
+ */
125629
+ static englishToRomanianDateHourMinute(dateString) {
125630
+ return this.stringFromTo(dateString, "yyyy-MM-dd HH:mm", "dd-MM-yyyy HH:mm");
125631
+ }
125632
+ /**
125633
+ * @deprecated since version 2.0
125634
+ */
125635
+ static englishToRomanianDateHourMinuteSeconds(dateString) {
125636
+ return this.stringFromTo(dateString, "yyyy-MM-dd HH:mm:ss", "dd-MM-yyyy HH:mm:ss");
125637
+ }
125638
+ static displayInterval(start, end, dateFormat = this.FORMAT_ROMANIAN_DATE) {
125639
+ if (!start && !end) return `Nedeterminata`;
125640
+ if (start && end) return `${DateUtils.dateToString(start, dateFormat)} - ${DateUtils.dateToString(end, dateFormat)}`;
125641
+ if (start) return `>= ${DateUtils.dateToString(start, dateFormat)}`;
125642
+ if (end) return `<= ${DateUtils.dateToString(end, dateFormat)}`;
125643
+ }
125644
+ static isStringDate = (dateString) => {
125645
+ return /^\d{2,4}[-./]\d{1,2}[-./]\d{1,4}([ T]\d{2}:\d{2}(:\d{2}(\.\d+)?(Z|[+-]\d{2}:?\d{2})?)?)?$/.test(dateString);
125646
+ };
125647
+ static stringToDateRecursive = (item, deep = false) => {
125648
+ if (!item) return item;
125649
+ if ((0, import_lodash.isArray)(item)) return item.map((el) => DateUtils.stringToDateRecursive(el, deep));
125650
+ if ((0, import_lodash.isPlainObject)(item)) {
125651
+ for (const key in item) if (Object.prototype.hasOwnProperty.call(item, key)) item[key] = deep ? DateUtils.stringToDateRecursive(item[key], deep) : DateUtils.stringToDateRecursive(item[key]);
125652
+ return item;
125653
+ }
125654
+ if (typeof item === "string") return DateUtils.isStringDate(item) ? DateUtils.stringToDate(item) : item;
125655
+ return item;
125656
+ };
125657
+ static isOlderThan = (timestamp, minutes) => {
125658
+ return Date.now() - timestamp > minutes * 60 * 1e3;
125659
+ };
125660
+ static nextMonth({ month, year }) {
125661
+ const d = new Date(+year, +month);
125662
+ return {
125663
+ month: String(d.getMonth() + 1),
125664
+ year: String(d.getFullYear())
125665
+ };
125666
+ }
125667
+ static previousMonth({ month, year }) {
125668
+ const d = new Date(+year, +month - 2);
125669
+ return {
125670
+ month: String(d.getMonth() + 1),
125671
+ year: String(d.getFullYear())
125672
+ };
125673
+ }
125674
+ };
125675
+ //#endregion
125733
125676
  //#region src/components/small/app-form-draft-toast/AppFormDraftToast.vue
125734
125677
  var _hoisted_1$4 = { class: "app-form-draft-toast flex-center-vertical" };
125735
125678
  var _hoisted_2$1 = { class: "mr-20" };
@@ -137544,7 +137487,9 @@ var components_exports = /* @__PURE__ */ __exportAll({
137544
137487
  AppDatePickerDayOfWeek: () => _sfc_main$8,
137545
137488
  AppDatePickerRange: () => _sfc_main$9,
137546
137489
  AppDateRange: () => _sfc_main$9,
137490
+ AppDateTime: () => _sfc_main$10,
137547
137491
  AppDateTimePicker: () => _sfc_main$10,
137492
+ AppDayOfWeek: () => _sfc_main$8,
137548
137493
  AppDrawer: () => AppDrawer_default,
137549
137494
  AppDropdown: () => _sfc_main$11,
137550
137495
  AppDualListMagic: () => _sfc_main$12,
@@ -137608,12 +137553,11 @@ var components_exports = /* @__PURE__ */ __exportAll({
137608
137553
  AppTeleport: () => _sfc_main$51,
137609
137554
  AppTeleportTarget: () => _sfc_main$52,
137610
137555
  AppTextArea: () => AppTextArea_default,
137611
- AppTimePicker: () => AppTimePicker_default,
137556
+ AppTime: () => AppTime_default,
137612
137557
  AppToggleButton: () => _sfc_main$53,
137613
137558
  AppToolbar: () => _sfc_main$54,
137614
137559
  AppToolbarSubheader: () => AppToolbarSubheader_default,
137615
137560
  AppTree: () => _sfc_main$55,
137616
- DayOfWeek: () => _sfc_main$8,
137617
137561
  VueDatePicker: () => Nr
137618
137562
  });
137619
137563
  //#endregion
@@ -137903,9 +137847,10 @@ function useTableModel({ props, emits, tableContext, formContext = null, model,
137903
137847
  }
137904
137848
  //#endregion
137905
137849
  //#region src/index.js
137850
+ var components = { ...components_exports };
137906
137851
  var plugin = { install(Vue, config) {
137907
- for (const prop in components_exports) if ((void 0)(prop)) {
137908
- const component = components_exports[prop];
137852
+ for (const prop in components) if (components.hasOwnProperty(prop)) {
137853
+ const component = components[prop];
137909
137854
  Vue.component(prop, component);
137910
137855
  }
137911
137856
  if (!Vue.directive("tippy")) Vue.use(plugin$1);
@@ -137915,6 +137860,6 @@ var plugin = { install(Vue, config) {
137915
137860
  config?.mediaType && setMediaType(config.mediaType);
137916
137861
  } };
137917
137862
  //#endregion
137918
- export { _sfc_main as AppBadge, _sfc_main$1 as AppBoard, _sfc_main$2 as AppBreadcrumbs, _sfc_main$3 as AppButton, _sfc_main$4 as AppButtonGroup, _sfc_main$5 as AppCard, _sfc_main$6 as AppCarousel, _sfc_main$7 as AppCheckbox, AppChild_default as AppChild, AppColorPicker_default as AppColorPicker, AppDate_default as AppDate, AppDate_default as AppDatePicker, _sfc_main$8 as AppDatePickerDayOfWeek, _sfc_main$8 as DayOfWeek, _sfc_main$9 as AppDatePickerRange, _sfc_main$9 as AppDateRange, _sfc_main$10 as AppDateTimePicker, AppDrawer_default as AppDrawer, _sfc_main$11 as AppDropdown, _sfc_main$12 as AppDualListMagic, _sfc_main$13 as AppEllipsisText, _sfc_main$14 as AppFile, AppFileInput_default as AppFileInput, _sfc_main$15 as AppFileNew, _sfc_main$16 as AppFilePreview, AppFooter_default as AppFooter, _sfc_main$17 as AppFormDynamic, AppFormElement_default as AppFormElement, _sfc_main$18 as AppFormModal, _sfc_main$19 as AppFormRepeater, _sfc_main$20 as AppFormWizard, AppGridPicker_default as AppGridPicker, _sfc_main$21 as AppHtml, _sfc_main$22 as AppIcon, _sfc_main$23 as AppIframe, AppInput_default as AppInput, _sfc_main$24 as AppLink, _sfc_main$25 as AppLoading, AppLoadingModal_default as AppLoadingModal, _sfc_main$26 as AppLoadingOverlay, _sfc_main$27 as AppMenu, AppModal_default as AppModal, _sfc_main$28 as AppModalCard, AppNumberInput_default as AppNumberInput, AppOverlay_default as AppOverlay, _sfc_main$29 as AppPage, _sfc_main$30 as AppPagination, AppPhone_default as AppPhone, _sfc_main$31 as AppPlaceholderCard, _sfc_main$32 as AppPlaceholderHeading, _sfc_main$33 as AppPlaceholderImage, _sfc_main$34 as AppPlaceholderText, _sfc_main$35 as AppPlaceholderTitle, AppProgressBar_default as AppProgressBar, AppProgressBarOverlay_default as AppProgressBarOverlay, AppRadioButton_default as AppRadioButton, AppRemovableTag_default as AppRemovableTag, AppScrollToBottom_default as AppScrollToBottom, AppScrollToTop_default as AppScrollToTop, _sfc_main$36 as AppScrollTopAndBottom, _sfc_main$37 as AppSelect, _sfc_main$38 as AppSelectBoolean, _sfc_main$39 as AppSelectIcon, _sfc_main$40 as AppSelectNew, _sfc_main$41 as AppSidebar, _sfc_main$42 as AppSidebarHeader, _sfc_main$43 as AppSkeleton, _sfc_main$44 as AppSkeletonGroup, AppSliderInput_default as AppSliderInput, _sfc_main$45 as AppSummary, _sfc_main$46 as AppTable, _sfc_main$47 as AppTableFilter, AppTableFilterDrawer_default as AppTableFilterDrawer, _sfc_main$48 as AppTableMagic, _sfc_main$49 as AppTabs, _sfc_main$50 as AppTabsBoolean, AppTag_default as AppTag, _sfc_main$51 as AppTeleport, _sfc_main$52 as AppTeleportTarget, AppTextArea_default as AppTextArea, AppTimePicker_default as AppTimePicker, _sfc_main$53 as AppToggleButton, _sfc_main$54 as AppToolbar, AppToolbarSubheader_default as AppToolbarSubheader, _sfc_main$55 as AppTree, BaseRepository, DateUtils, ResponseUtils, TableUtils, ToastUtils, UIUtils, Nr as VueDatePicker, VueUtils_exports as VueUtils, appFormElementProps_default as appFormElementProps, useAppSelectCore_default as appSelectProps, useAppSelectCore_default as sharedProps, bindOneWay, bindTwoWay, booleanOption, plugin as default, fetchBuilder, fetchBuilderNew, flattenSchemaFields, generateComputedChildren, generateComputedParent, getBinding, getBindingImmutableFor, getFormBuilder, getFormElementName, getFormElementNameKey, getGUID, getStyleFromObject, hasValue, isEqualLoose, isNumeric, joinList, makeArray, mergeObjectWithoutOverwrite, resolveValue, resolveValueSync, sleep, toPathString, urlToBooleanOption, useAppFormElement, useClickOutside, useForm, useFormOld_default as useFormFunky, useFormValidation, useModelWatch, useSelectOld as useSelect, selectOldProps as useSelectProps, useTable, useTableFilters, useTableModel, useTableModelTableButton, useTableModelTopButton, veeBinds };
137863
+ export { _sfc_main as AppBadge, _sfc_main$1 as AppBoard, _sfc_main$2 as AppBreadcrumbs, _sfc_main$3 as AppButton, _sfc_main$4 as AppButtonGroup, _sfc_main$5 as AppCard, _sfc_main$6 as AppCarousel, _sfc_main$7 as AppCheckbox, AppChild_default as AppChild, AppColorPicker_default as AppColorPicker, AppDate_default as AppDate, AppDate_default as AppDatePicker, _sfc_main$8 as AppDatePickerDayOfWeek, _sfc_main$8 as AppDayOfWeek, _sfc_main$9 as AppDatePickerRange, _sfc_main$9 as AppDateRange, _sfc_main$10 as AppDateTime, _sfc_main$10 as AppDateTimePicker, AppDrawer_default as AppDrawer, _sfc_main$11 as AppDropdown, _sfc_main$12 as AppDualListMagic, _sfc_main$13 as AppEllipsisText, _sfc_main$14 as AppFile, AppFileInput_default as AppFileInput, _sfc_main$15 as AppFileNew, _sfc_main$16 as AppFilePreview, AppFooter_default as AppFooter, _sfc_main$17 as AppFormDynamic, AppFormElement_default as AppFormElement, _sfc_main$18 as AppFormModal, _sfc_main$19 as AppFormRepeater, _sfc_main$20 as AppFormWizard, AppGridPicker_default as AppGridPicker, _sfc_main$21 as AppHtml, _sfc_main$22 as AppIcon, _sfc_main$23 as AppIframe, AppInput_default as AppInput, _sfc_main$24 as AppLink, _sfc_main$25 as AppLoading, AppLoadingModal_default as AppLoadingModal, _sfc_main$26 as AppLoadingOverlay, _sfc_main$27 as AppMenu, AppModal_default as AppModal, _sfc_main$28 as AppModalCard, AppNumberInput_default as AppNumberInput, AppOverlay_default as AppOverlay, _sfc_main$29 as AppPage, _sfc_main$30 as AppPagination, AppPhone_default as AppPhone, _sfc_main$31 as AppPlaceholderCard, _sfc_main$32 as AppPlaceholderHeading, _sfc_main$33 as AppPlaceholderImage, _sfc_main$34 as AppPlaceholderText, _sfc_main$35 as AppPlaceholderTitle, AppProgressBar_default as AppProgressBar, AppProgressBarOverlay_default as AppProgressBarOverlay, AppRadioButton_default as AppRadioButton, AppRemovableTag_default as AppRemovableTag, AppScrollToBottom_default as AppScrollToBottom, AppScrollToTop_default as AppScrollToTop, _sfc_main$36 as AppScrollTopAndBottom, _sfc_main$37 as AppSelect, _sfc_main$38 as AppSelectBoolean, _sfc_main$39 as AppSelectIcon, _sfc_main$40 as AppSelectNew, _sfc_main$41 as AppSidebar, _sfc_main$42 as AppSidebarHeader, _sfc_main$43 as AppSkeleton, _sfc_main$44 as AppSkeletonGroup, AppSliderInput_default as AppSliderInput, _sfc_main$45 as AppSummary, _sfc_main$46 as AppTable, _sfc_main$47 as AppTableFilter, AppTableFilterDrawer_default as AppTableFilterDrawer, _sfc_main$48 as AppTableMagic, _sfc_main$49 as AppTabs, _sfc_main$50 as AppTabsBoolean, AppTag_default as AppTag, _sfc_main$51 as AppTeleport, _sfc_main$52 as AppTeleportTarget, AppTextArea_default as AppTextArea, AppTime_default as AppTime, _sfc_main$53 as AppToggleButton, _sfc_main$54 as AppToolbar, AppToolbarSubheader_default as AppToolbarSubheader, _sfc_main$55 as AppTree, BaseRepository, DateUtils, ResponseUtils, TableUtils, ToastUtils, UIUtils, Nr as VueDatePicker, VueUtils_exports as VueUtils, appFormElementProps_default as appFormElementProps, useAppSelectCore_default as appSelectProps, useAppSelectCore_default as sharedProps, bindOneWay, bindTwoWay, booleanOption, plugin as default, fetchBuilder, fetchBuilderNew, flattenSchemaFields, generateComputedChildren, generateComputedParent, getBinding, getBindingImmutableFor, getFormBuilder, getFormElementName, getFormElementNameKey, getGUID, getStyleFromObject, hasValue, isEqualLoose, isNumeric, joinList, makeArray, mergeObjectWithoutOverwrite, resolveValue, resolveValueSync, sleep, toPathString, urlToBooleanOption, useAppFormElement, useClickOutside, useForm, useFormOld_default as useFormFunky, useFormValidation, useModelWatch, useSelectOld as useSelect, selectOldProps as useSelectProps, useTable, useTableFilters, useTableModel, useTableModelTableButton, useTableModelTopButton, veeBinds };
137919
137864
 
137920
137865
  //# sourceMappingURL=funky-ui-kit.esm.js.map