@stsdti/funky-ui-kit 1.8.9 → 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,21 +28449,42 @@ var AppDate_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
28475
28449
  }, 16);
28476
28450
  };
28477
28451
  }
28478
- }, [["__scopeId", "data-v-dbda72e2"]]);
28479
- ({
28480
- ...appDatePickerProps_default,
28481
- ...appFormElementProps_default
28482
- });
28452
+ }, [["__scopeId", "data-v-f92c063d"]]);
28453
+ //#endregion
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
+ }
28476
+ }
28477
+ };
28483
28478
  //#endregion
28484
- //#region src/components/small/app-date-picker/AppDatePickerRange.vue
28485
- var _hoisted_1$77 = { class: "w-100" };
28486
- var _hoisted_2$57 = { class: "flex-center-vertical w-100 gap-1" };
28487
- 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 = {
28488
28483
  key: 0,
28489
28484
  class: "flex-center-vertical mt-1"
28490
28485
  };
28491
28486
  var _sfc_main$9 = {
28492
- __name: "AppDatePickerRange",
28487
+ __name: "AppDateRange",
28493
28488
  props: /*@__PURE__*/ mergeModels({
28494
28489
  placeholderLeft: {
28495
28490
  type: String,
@@ -28501,7 +28496,7 @@ var _sfc_main$9 = {
28501
28496
  },
28502
28497
  startName: { type: String },
28503
28498
  endName: { type: String },
28504
- ...appDatePickerProps_default,
28499
+ ...props$1,
28505
28500
  ...appFormElementProps_default
28506
28501
  }, {
28507
28502
  "start": { type: Date },
@@ -28550,8 +28545,8 @@ var _sfc_main$9 = {
28550
28545
  const _component_app_date = resolveComponent("app-date");
28551
28546
  const _component_app_button_group = resolveComponent("app-button-group");
28552
28547
  return openBlock(), createBlock(AppFormElement_default, normalizeProps(guardReactiveProps(unref(formElementProps))), {
28553
- default: withCtx(() => [createElementVNode("div", _hoisted_1$77, [
28554
- 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({
28555
28550
  modelValue: modelValueStart.value,
28556
28551
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValueStart.value = $event),
28557
28552
  class: "app-form-group-element flex-1",
@@ -28574,7 +28569,7 @@ var _sfc_main$9 = {
28574
28569
  "placeholder",
28575
28570
  "name"
28576
28571
  ])]),
28577
- _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, {
28578
28573
  value: unref(easyButtonsList),
28579
28574
  onClick: onEasyButtonClick
28580
28575
  }, null, 8, ["value"])])) : createCommentVNode("", true),
@@ -28587,9 +28582,9 @@ var _sfc_main$9 = {
28587
28582
  };
28588
28583
  //#endregion
28589
28584
  //#region src/components/small/app-card/AppCard.vue
28590
- var _hoisted_1$76 = { class: "d-flex align-items-center" };
28591
- var _hoisted_2$56 = { class: "mb-0 fw-normal" };
28592
- 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" };
28593
28588
  var _sfc_main$5 = {
28594
28589
  __name: "AppCard",
28595
28590
  props: {
@@ -28680,10 +28675,10 @@ var _sfc_main$5 = {
28680
28675
  key: 0,
28681
28676
  class: normalizeClass([headerClasses.value]),
28682
28677
  onClick: collapseBody
28683
- }, [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", {
28684
28679
  class: "header-elements-toggle d-none",
28685
28680
  onClick: toggleVisibleHeadingElement
28686
- }, [..._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", {
28687
28682
  key: 0,
28688
28683
  class: normalizeClass(expandArrowClass.value)
28689
28684
  }, null, 2)) : createCommentVNode("", true)], 2)])])], 2)) : createCommentVNode("", true), createElementVNode("div", {
@@ -28695,7 +28690,7 @@ var _sfc_main$5 = {
28695
28690
  };
28696
28691
  //#endregion
28697
28692
  //#region src/components/small/app-checkbox/AppCheckbox.vue
28698
- var _hoisted_1$75 = ["checked"];
28693
+ var _hoisted_1$76 = ["checked"];
28699
28694
  var _sfc_main$7 = {
28700
28695
  __name: "AppCheckbox",
28701
28696
  props: {
@@ -28738,7 +28733,7 @@ var _sfc_main$7 = {
28738
28733
  checked: __props.modelValue,
28739
28734
  class: checkedClass.value,
28740
28735
  type: "checkbox"
28741
- }, 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)]),
28742
28737
  _: 3
28743
28738
  }, 16, ["label-style"]);
28744
28739
  };
@@ -30242,435 +30237,414 @@ var _sfc_main$112 = {
30242
30237
  }
30243
30238
  };
30244
30239
  //#endregion
30245
- //#region src/components/small/app-grid-picker/AppGridPicker.vue
30246
- var _hoisted_1$74 = { class: "w-100 position-relative cursor-pointer" };
30247
- var _hoisted_2$55 = ["placeholder"];
30248
- var _hoisted_3$38 = {
30249
- key: 1,
30250
- class: "flex-1 input-placeholder"
30251
- };
30252
- var _hoisted_4$30 = {
30253
- key: 2,
30254
- class: "form-control-feedback-icon clear-button"
30255
- };
30256
- var _hoisted_5$22 = ["onClick"];
30257
- var AppGridPicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
30258
- __name: "AppGridPicker",
30259
- props: /*@__PURE__*/ mergeModels({
30260
- options: {
30261
- type: Array,
30262
- required: true
30263
- },
30264
- displayBy: {
30265
- type: [String],
30266
- default: "name"
30267
- },
30268
- openDirection: {
30269
- type: String,
30270
- default: "bottom"
30271
- },
30272
- columns: {
30273
- type: Number,
30274
- default: 4
30275
- },
30276
- width: {
30277
- type: Number,
30278
- default: 200
30279
- },
30280
- height: {
30281
- type: Number,
30282
- default: 500
30283
- },
30284
- showRemoveButtons: {
30285
- type: Boolean,
30286
- default: true
30287
- },
30288
- isTypeable: {
30289
- type: Boolean,
30290
- 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
30291
30254
  },
30292
- search: { type: Function },
30293
- isItemSelected: {},
30294
- ...appFormElementProps_default
30295
- }, {
30296
- "modelValue": {},
30297
30255
  "modelModifiers": {}
30298
30256
  }),
30299
- emits: /*@__PURE__*/ mergeModels(["close", "search"], ["update:modelValue"]),
30300
- setup(__props, { expose: __expose, emit: __emit }) {
30301
- const modelValue = useModel(__props, "modelValue");
30257
+ emits: ["update:modelValue"],
30258
+ setup(__props) {
30302
30259
  const props = __props;
30303
- const emits = __emit;
30304
- ref("100%");
30305
- const showGrid = ref(false);
30306
- const input = ref(null);
30307
- const grid = ref(null);
30308
- const searchValue = ref(null);
30309
- const searchField = ref(null);
30310
- const filteredOptions = ref((0, import_lodash.cloneDeep)(props.options));
30311
- const { formElementProps } = useAppFormElement(props);
30312
- const heightComputed = computed(() => {
30313
- const rows = Math.ceil(filteredOptions.value.length / props.columns);
30314
- return (0, import_lodash.min)([props.width / props.columns * rows, props.height]);
30315
- });
30316
- computed(() => {
30317
- return {
30318
- width: props.width + "px",
30319
- height: heightComputed.value + "px"
30320
- };
30321
- });
30322
- const cellStyle = computed(() => {
30323
- const width = props.width / props.columns;
30324
- return {
30325
- width: width + "px",
30326
- height: width + "px"
30327
- };
30328
- });
30329
- const open = () => {
30330
- if (props.disabled) return;
30331
- showGrid.value = true;
30332
- if (props.isTypeable) nextTick(() => searchField.value.focus());
30333
- };
30334
- const close = () => {
30335
- showGrid.value = false;
30336
- emits("close");
30337
- };
30338
- const onSelectValue = (element, index) => {
30339
- modelValue.value = element;
30340
- close();
30341
- };
30342
- const getDisplayValue = (value) => {
30343
- if ((0, import_lodash.isObject)(value)) return (0, import_lodash.get)(value, props.displayBy, null);
30344
- return value;
30345
- };
30346
- const getActiveClass = (element) => {
30347
- return { active: (0, import_lodash.isEqual)(element, modelValue.value) };
30348
- };
30349
- const onDeleteInput = () => {
30350
- modelValue.value = null;
30351
- };
30352
- useClickOutside({
30353
- target: grid,
30354
- handler: () => {
30355
- if (!showGrid.value) return;
30356
- close();
30357
- },
30358
- isOpen: showGrid,
30359
- ignore: [input, searchField]
30360
- });
30361
- const inputClass = computed(() => ({
30362
- "w-100 form-control": true,
30363
- disabled: props.disabled
30364
- }));
30365
- const getFilteredOptions = async (search = "") => {
30366
- if (props.search) return await props.search(props.options, search);
30367
- if (!search || search.length === 0) return props.options;
30368
- return props.options.filter((item) => {
30369
- let itemName = (0, import_lodash.isObject)(item) ? (0, import_lodash.get)(item, props.displayBy, "") : item;
30370
- itemName = String(itemName).toLowerCase();
30371
- return itemName.includes(search.toLowerCase());
30372
- });
30373
- };
30374
- const onSearch = async (text) => {
30375
- filteredOptions.value = await getFilteredOptions(text);
30376
- emits("searchValue", text);
30377
- searchValue.value = text;
30378
- };
30379
- const onKeyEnter = () => {
30380
- modelValue.value = (0, import_lodash.head)(filteredOptions.value);
30381
- close();
30382
- };
30383
- watch(searchValue, async (newValue) => {
30384
- await onSearch(newValue);
30385
- });
30386
- watch(() => props.options, async (newValue) => {
30387
- filteredOptions.value = newValue;
30388
- });
30389
- __expose({
30390
- open,
30391
- close,
30392
- props
30393
- });
30394
- return (_ctx, _cache) => {
30395
- const _directive_tippy = resolveDirective("tippy");
30396
- return openBlock(), createBlock(AppFormElement_default, normalizeProps(guardReactiveProps(unref(formElementProps))), {
30397
- default: withCtx(() => [createElementVNode("div", _hoisted_1$74, [createElementVNode("div", {
30398
- ref_key: "input",
30399
- ref: input,
30400
- class: "d-flex"
30401
- }, [
30402
- renderSlot(_ctx.$slots, "icon", {}, void 0, true),
30403
- __props.isTypeable && showGrid.value ? withDirectives((openBlock(), createElementBlock("input", {
30404
- key: 0,
30405
- ref_key: "searchField",
30406
- ref: searchField,
30407
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchValue.value = $event),
30408
- class: "mb-0 no-hover flex-1 form-control",
30409
- placeholder: props.placeholder,
30410
- onKeyup: withKeys(onKeyEnter, ["enter"])
30411
- }, null, 40, _hoisted_2$55)), [[vModelText, searchValue.value]]) : (openBlock(), createElementBlock("div", {
30412
- key: 1,
30413
- class: normalizeClass(inputClass.value),
30414
- onClick: withModifiers(open, ["stop"])
30415
- }, [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)),
30416
- modelValue.value && __props.showRemoveButtons ? (openBlock(), createElementBlock("div", _hoisted_4$30, [withDirectives(createElementVNode("i", {
30417
- class: "ph-x-circle app-cross-icon",
30418
- onClick: withModifiers(onDeleteInput, ["stop"])
30419
- }, null, 512), [[_directive_tippy, "Ștergeți opțiunile selectate"]])])) : createCommentVNode("", true)
30420
- ], 512), input.value ? (openBlock(), createBlock(_sfc_main$112, {
30421
- key: 0,
30422
- anchor: input.value,
30423
- "use-teleport": true,
30424
- "is-open": showGrid.value,
30425
- width: props.width
30426
- }, {
30427
- default: withCtx(() => [withDirectives(createElementVNode("div", {
30428
- ref_key: "grid",
30429
- ref: grid,
30430
- class: "app-grid-dropdown overflow-auto scrollbar-hidden"
30431
- }, [(openBlock(true), createElementBlock(Fragment, null, renderList(filteredOptions.value, (element, index) => {
30432
- return openBlock(), createElementBlock("div", {
30433
- key: index,
30434
- class: "cell",
30435
- onClick: ($event) => onSelectValue(element, index)
30436
- }, [createElementVNode("span", {
30437
- class: normalizeClass(getActiveClass(element)),
30438
- style: normalizeStyle(cellStyle.value)
30439
- }, [renderSlot(_ctx.$slots, "default", { item: element }, () => [createTextVNode(toDisplayString(getDisplayValue(element)), 1)], true)], 6)], 8, _hoisted_5$22);
30440
- }), 128))], 512), [[vShow, showGrid.value]])]),
30441
- _: 3
30442
- }, 8, [
30443
- "anchor",
30444
- "is-open",
30445
- "width"
30446
- ])) : createCommentVNode("", true)])]),
30447
- _: 3
30448
- }, 16);
30449
- };
30450
- }
30451
- }, [["__scopeId", "data-v-12dbbc29"]]);
30452
- //#endregion
30453
- //#region src/components/small/app-time-picker/AppTimePickerEasyButtons.vue
30454
- var EMIT_SUB_HOUR = "sub-hour";
30455
- var EMIT_NOW = "now";
30456
- var EMIT_ADD_HOUR = "add-hour";
30457
- var _sfc_main$110 = {
30458
- __name: "AppTimePickerEasyButtons",
30459
- emits: [
30460
- EMIT_NOW,
30461
- EMIT_ADD_HOUR,
30462
- EMIT_SUB_HOUR
30463
- ],
30464
- setup(__props, { emit: __emit }) {
30465
- const buttons = ref([
30260
+ const modelValue = useModel(__props, "modelValue");
30261
+ const buttons = [
30466
30262
  {
30467
30263
  value: "-1",
30468
- emit: EMIT_SUB_HOUR,
30264
+ code: CODE_SUB_HOUR,
30469
30265
  class: "btn-light"
30470
30266
  },
30471
30267
  {
30472
30268
  value: "Acum",
30473
- emit: EMIT_NOW,
30269
+ code: CODE_NOW,
30474
30270
  class: "btn-light"
30475
30271
  },
30476
30272
  {
30477
30273
  value: "+1",
30478
- emit: EMIT_ADD_HOUR,
30274
+ code: CODE_ADD_HOUR,
30479
30275
  class: "btn-light"
30480
30276
  }
30481
- ]);
30482
- const emit = __emit;
30483
- const onClick = (value) => {
30484
- 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);
30485
30286
  };
30486
30287
  return (_ctx, _cache) => {
30487
- return openBlock(), createElementBlock("div", null, [createVNode(_sfc_main$4, {
30488
- value: buttons.value,
30489
- onClick
30490
- }, null, 8, ["value"])]);
30288
+ return openBlock(), createElementBlock("div", _hoisted_1$75, [createVNode(_sfc_main$4, {
30289
+ value: buttons,
30290
+ onClick: onEasyButtonsInput
30291
+ })]);
30491
30292
  };
30492
30293
  }
30493
30294
  };
30494
30295
  //#endregion
30495
- //#region src/components/small/app-time-picker/AppTimePicker.vue
30496
- var _hoisted_1$73 = {
30497
- class: "display-block w-100",
30498
- 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
+ }
30499
30335
  };
30336
+ //#endregion
30337
+ //#region src/components/small/app-time/AppTime.vue
30338
+ var _hoisted_1$74 = { class: "display-flex w-100" };
30500
30339
  var _hoisted_2$54 = {
30501
30340
  key: 0,
30502
- class: "ml-10"
30341
+ class: "app-time2-separator user-select-none"
30503
30342
  };
30504
- var _hoisted_3$37 = {
30505
- key: 1,
30506
- 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"
30507
30358
  };
30508
- var AppTimePicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
30509
- __name: "AppTimePicker",
30359
+ var _hoisted_5$23 = ["onClick"];
30360
+ var AppTime_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
30361
+ __name: "AppTime",
30510
30362
  props: /*@__PURE__*/ mergeModels({
30511
- minuteOptions: {
30512
- type: Array,
30513
- default: () => [{
30514
- id: 1,
30515
- value: "00"
30516
- }, {
30517
- id: 2,
30518
- value: "30"
30519
- }]
30520
- },
30521
- hourOptions: {
30522
- type: Array,
30523
- default: () => {
30524
- const hours = [];
30525
- for (let i = 0; i < 24; i++) hours.push({
30526
- id: i + 1,
30527
- value: i.toString().padStart(2, "0")
30528
- });
30529
- return hours;
30530
- }
30531
- },
30532
- openDirection: {
30533
- type: String,
30534
- default: "bottom"
30535
- },
30536
30363
  isClearable: {
30537
30364
  type: Boolean,
30538
30365
  default: true
30539
30366
  },
30540
- isItemSelected: {},
30541
- ...appFormElementProps_default,
30542
- ...appDatePickerProps_default
30367
+ ...props,
30368
+ ...appFormElementProps_default
30543
30369
  }, {
30544
- "modelValue": {},
30370
+ "modelValue": {
30371
+ type: [String, null],
30372
+ default: null
30373
+ },
30545
30374
  "modelModifiers": {}
30546
30375
  }),
30547
30376
  emits: /*@__PURE__*/ mergeModels(["input"], ["update:modelValue"]),
30548
- 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
+ };
30549
30387
  const props = __props;
30550
30388
  const emit = __emit;
30551
- const { formElementProps } = useAppFormElement(props);
30552
- const hour = ref("12");
30553
- const minute = ref("00");
30554
- const minutePicker = ref(null);
30555
- const hourPicker = ref(null);
30556
30389
  const modelValue = useModel(__props, "modelValue");
30557
- 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(() => {
30558
30426
  return {
30559
- "time-picker h-100 w-100 display-flex": true,
30560
- "cursor-pointer": !props.disabled,
30561
- "time-picker-hover": !props.disabled,
30562
- "opacity-50": props.disabled,
30563
- "flex-center-vertical": true
30564
- };
30565
- });
30566
- watch(() => hour.value, () => {
30567
- onInput();
30568
- });
30569
- watch(() => minute.value, () => {
30570
- onInput();
30571
- });
30572
- onMounted(() => {
30573
- setTime(props.modelValue);
30574
- });
30575
- const setTime = (value) => {
30576
- if (value) {
30577
- const time = value.split(":");
30578
- hour.value = props.hourOptions.find((element) => element.value == time[0]);
30579
- minute.value = props.minuteOptions.find((element) => element.value == time[1]);
30580
- } else {
30581
- hour.value = null;
30582
- 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;
30583
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();
30584
30538
  };
30585
30539
  const reset = () => {
30586
- hour.value = null;
30587
- minute.value = null;
30588
- };
30589
- const onInput = () => {
30590
- if (!hour.value || !minute.value) return;
30591
- emit("input", hour.value, minute.value);
30592
- modelValue.value = `${hour.value.value}:${minute.value.value}`;
30593
- };
30594
- const onHourPickerClose = () => {
30595
- if (hour.value && !minute.value) minute.value = props.minuteOptions[0];
30596
- minutePicker.value.open();
30597
- };
30598
- const onAddHour = () => {
30599
- if (!hour.value) hour.value = props.hourOptions[12];
30600
- const newHour = ((parseInt(hour.value.value) + 1) % 24).toString().padStart(2, "0");
30601
- hour.value = props.hourOptions.find((element) => element.value == newHour);
30602
- minute.value = minute.value ? minute.value : (0, import_lodash.head)(props.minuteOptions);
30603
- };
30604
- const onSubHour = () => {
30605
- if (!hour.value) hour.value = props.hourOptions[12];
30606
- const newHour = ((parseInt(hour.value.value) + 23) % 24).toString().padStart(2, "0");
30607
- hour.value = props.hourOptions.find((element) => element.value == newHour);
30608
- minute.value = minute.value ? minute.value : (0, import_lodash.head)(props.minuteOptions);
30609
- };
30610
- const onSelectNow = () => {
30611
- const now = /* @__PURE__ */ new Date();
30612
- const currentHour = now.getHours().toString().padStart(2, "0");
30613
- const currentMinute = now.getMinutes() >= 30 ? "30" : "00";
30614
- hour.value = props.hourOptions.find((element) => element.value === currentHour);
30615
- 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();
30616
30546
  };
30617
- 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) => {
30618
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()
30619
30575
  });
30620
30576
  return (_ctx, _cache) => {
30621
30577
  const _directive_tippy = resolveDirective("tippy");
30622
30578
  return openBlock(), createBlock(AppFormElement_default, normalizeProps(guardReactiveProps(unref(formElementProps))), createSlots({
30623
30579
  "help-block": withCtx(() => [renderSlot(_ctx.$slots, "help-block", {}, void 0, true)]),
30624
- default: withCtx(() => [createElementVNode("div", _hoisted_1$73, [createElementVNode("div", { class: normalizeClass(timePickerClass.value) }, [
30625
- createVNode(AppGridPicker_default, {
30626
- ref_key: "hourPicker",
30627
- ref: hourPicker,
30628
- modelValue: hour.value,
30629
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => hour.value = $event),
30630
- columns: 4,
30631
- disabled: _ctx.disabled,
30632
- "input-only": true,
30633
- options: __props.hourOptions,
30634
- "show-remove-buttons": false,
30635
- class: "app-grid-picker-hour app-form-group-element flex-grow-1",
30636
- "display-by": "value",
30637
- placeholder: "Ora",
30638
- onClose: onHourPickerClose
30639
- }, null, 8, [
30640
- "modelValue",
30641
- "disabled",
30642
- "options"
30643
- ]),
30644
- _cache[2] || (_cache[2] = createElementVNode("span", { class: "flex-center-vertical ml-10 mr-10" }, ":", -1)),
30645
- createVNode(AppGridPicker_default, {
30646
- ref_key: "minutePicker",
30647
- ref: minutePicker,
30648
- modelValue: minute.value,
30649
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => minute.value = $event),
30650
- 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 }]),
30651
30595
  disabled: _ctx.disabled,
30652
- "input-only": true,
30653
- width: 100,
30654
- options: __props.minuteOptions,
30655
- "show-remove-buttons": false,
30656
- placeholder: "Minut",
30657
- class: "app-grid-picker-minute app-form-group-element flex-grow-1",
30658
- "display-by": "value"
30659
- }, null, 8, [
30660
- "modelValue",
30661
- "disabled",
30662
- "options"
30663
- ]),
30664
- _ctx.showEasyButtons && !_ctx.disabled ? (openBlock(), createElementBlock("div", _hoisted_2$54, [createVNode(_sfc_main$110, {
30665
- onAddHour,
30666
- onSubHour,
30667
- onNow: onSelectNow
30668
- })])) : createCommentVNode("", true),
30669
- !_ctx.disabled && __props.isClearable && modelValue.value ? (openBlock(), createElementBlock("div", _hoisted_3$37, [withDirectives(createElementVNode("i", {
30670
- class: "ph-x-circle app-cross-icon",
30671
- onClick: withModifiers(reset, ["stop"])
30672
- }, null, 512), [[_directive_tippy, "Ștergeți ora si minutul"]])])) : createCommentVNode("", true)
30673
- ], 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)]),
30674
30648
  _: 2
30675
30649
  }, [renderList(Object.keys(_ctx.$slots), (slot) => {
30676
30650
  return {
@@ -30680,424 +30654,68 @@ var AppTimePicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
30680
30654
  })]), 1040);
30681
30655
  };
30682
30656
  }
30683
- }, [["__scopeId", "data-v-56e1c85a"]]);
30657
+ }, [["__scopeId", "data-v-d1c8386d"]]);
30684
30658
  //#endregion
30685
- //#region src/utils/DateUtils.js
30686
- var DateUtils = class DateUtils {
30687
- static getDayNames() {
30688
- return {
30689
- [Constants_default.LANGUAGE_EN]: [
30690
- "Sun",
30691
- "Mon",
30692
- "Tue",
30693
- "Wed",
30694
- "Thu",
30695
- "Fri",
30696
- "Sat"
30697
- ],
30698
- [Constants_default.LANGUAGE_RO]: [
30699
- "Dum",
30700
- "Lun",
30701
- "Mar",
30702
- "Mie",
30703
- "Joi",
30704
- "Vin",
30705
- "Sam"
30706
- ]
30707
- };
30708
- }
30709
- static getMonthNames() {
30710
- return {
30711
- [Constants_default.LANGUAGE_EN]: [
30712
- "Jan",
30713
- "Feb",
30714
- "Mar",
30715
- "Apr",
30716
- "May",
30717
- "Jun",
30718
- "Jul",
30719
- "Aug",
30720
- "Sep",
30721
- "Oct",
30722
- "Nov",
30723
- "Dec"
30724
- ],
30725
- [Constants_default.LANGUAGE_RO]: [
30726
- "Ian",
30727
- "Feb",
30728
- "Mar",
30729
- "Apr",
30730
- "Mai",
30731
- "Iun",
30732
- "Iul",
30733
- "Aug",
30734
- "Sep",
30735
- "Oct",
30736
- "Noi",
30737
- "Dec"
30738
- ]
30739
- };
30740
- }
30741
- static commonFormats = [
30742
- "yyyy-MM-dd HH:mm:ss",
30743
- "yyyy-MM-dd HH:mm",
30744
- "yyyy-MM-dd",
30745
- "MM/dd/yyyy HH:mm:ss",
30746
- "MM/dd/yyyy HH:mm",
30747
- "MM/dd/yyyy",
30748
- "dd/MM/yyyy HH:mm:ss",
30749
- "dd/MM/yyyy HH:mm",
30750
- "dd/MM/yyyy",
30751
- "dd.MM.yyyy HH:mm:ss",
30752
- "dd.MM.yyyy HH:mm",
30753
- "dd.MM.yyyy",
30754
- "yyyy/MM/dd HH:mm:ss",
30755
- "yyyy/MM/dd HH:mm",
30756
- "yyyy/MM/dd",
30757
- "dd-MM-yyyy HH:mm:ss",
30758
- "dd-MM-yyyy HH:mm",
30759
- "dd-MM-yyyy",
30760
- "yyyy-MM-dd h:mm:ss a",
30761
- "yyyy-MM-dd h:mm a",
30762
- "MM/dd/yyyy h:mm:ss a",
30763
- "MM/dd/yyyy h:mm a",
30764
- "dd/MM/yyyy h:mm:ss a",
30765
- "dd/MM/yyyy h:mm a"
30766
- ];
30767
- static getCalendarComponentLanguageData(language) {
30768
- return {
30769
- days: DateUtils.getDayNames()[language],
30770
- months: DateUtils.getMonthNames()[language],
30771
- placeholder: {},
30772
- formatLocale: { firstDayOfWeek: this.getCalendarComponentFirstDatOfWeek(language) }
30773
- };
30774
- }
30775
- static getCalendarComponentFirstDatOfWeek(language) {
30776
- if (language === Constants_default.LANGUAGE_EN) return Constants_default.CALENDAR_FIRST_DAY_OF_WEEK_EN;
30777
- else return Constants_default.CALENDAR_FIRST_DAY_OF_WEEK_RO;
30778
- }
30779
- static get FORMAT_ROMANIAN_DATE() {
30780
- return "dd.MM.yyyy";
30781
- }
30782
- static get FORMAT_ROMANIAN_DATE_HOUR() {
30783
- return "dd.MM.yyyy HH";
30784
- }
30785
- static get FORMAT_ROMANIAN_DATE_HOUR_MINUTE() {
30786
- return "dd.MM.yyyy HH:mm";
30787
- }
30788
- static get FORMAT_ROMANIAN_DATE_HOUR_MINUTE_SECOND() {
30789
- return "dd.MM.yyyy HH:mm:ss";
30790
- }
30791
- static get FORMAT_ENGLISH_DATE() {
30792
- return "yyyy-MM-dd";
30793
- }
30794
- static get FORMAT_ENGLISH_DATE_HOUR() {
30795
- return "yyyy-MM-dd HH";
30796
- }
30797
- static get FORMAT_ENGLISH_DATE_HOUR_MINUTE() {
30798
- return "yyyy-MM-dd HH:mm";
30799
- }
30800
- static get FORMAT_ENGLISH_DATE_HOUR_MINUTE_SECOND() {
30801
- return "yyyy-MM-dd HH:mm:ss";
30802
- }
30803
- static stringToDate(dateString, format = null) {
30804
- if (!dateString) return null;
30805
- if (format) return parse$2(dateString, format, /* @__PURE__ */ new Date());
30806
- for (const format of this.commonFormats) try {
30807
- const result = parse$2(dateString, format, /* @__PURE__ */ new Date());
30808
- if (isValid$1(result)) return result;
30809
- } catch (error) {
30810
- continue;
30811
- }
30812
- const nativeParsed = new Date(dateString);
30813
- return isValid$1(nativeParsed) ? nativeParsed : null;
30814
- }
30815
- static stringFromTo(date, formatFrom = this.FORMAT_ENGLISH_DATE, formatTo = this.FORMAT_ROMANIAN_DATE) {
30816
- if (!date) return null;
30817
- return format$1(parse$2(date, formatFrom, /* @__PURE__ */ new Date()), formatTo);
30818
- }
30819
- static dateToString(date, dateFormat = this.FORMAT_ROMANIAN_DATE) {
30820
- if (!date) return null;
30821
- return format$1(date, dateFormat);
30822
- }
30823
- /**
30824
- * @deprecated since version 1.9.7
30825
- */
30826
- static dateToStringWithTime(date, dateFormat = "dd-MM-yyyy HH:mm:ss") {
30827
- return format$1(date, dateFormat);
30828
- }
30829
- /**
30830
- * @deprecated since version 1.9.7
30831
- */
30832
- static dateFromTo(date, formatFrom = "yyyy-MM-dd", formatTo = "dd-MM-yyyy") {
30833
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
30834
- if (!date) return null;
30835
- return format$1(parse$2(date, formatFrom, /* @__PURE__ */ new Date()), formatTo);
30836
- }
30837
- /**
30838
- * @deprecated since version 1.9.7
30839
- */
30840
- static dateFromToWithTime(date, formatFrom = "yyyy-MM-dd HH:mm:ss", formatTo = "dd-MM-yyyy HH:mm:ss") {
30841
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
30842
- if (!date) return null;
30843
- return format$1(parse$2(date, formatFrom, /* @__PURE__ */ new Date()), formatTo);
30844
- }
30845
- /**
30846
- * @deprecated since version 1.9.7
30847
- */
30848
- static stringFromToWithTime(date, formatFrom = "yyyy-MM-dd HH:mm:ss", formatTo = "dd-MM-yyyy HH:mm:ss") {
30849
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
30850
- if (!date) return null;
30851
- return format$1(parse$2(date, formatFrom, /* @__PURE__ */ new Date()), formatTo);
30852
- }
30853
- /**
30854
- * @deprecated since version 1.9.7
30855
- */
30856
- static romanianToEnglishDate(dateString) {
30857
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
30858
- return this.stringFromTo(dateString, "dd-MM-yyyy", "yyyy-MM-dd");
30859
- }
30860
- /**
30861
- * @deprecated since version 1.9.7
30862
- */
30863
- static romanianToEnglishDateHour(dateString) {
30864
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
30865
- return this.stringFromTo(dateString, "dd-MM-yyyy HH", "yyyy-MM-dd HH:00");
30866
- }
30867
- /**
30868
- * @deprecated since version 1.9.7
30869
- */
30870
- static romanianToEnglishDateHourMinute(dateString) {
30871
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
30872
- return this.stringFromTo(dateString, "dd-MM-yyyy HH:mm", "yyyy-MM-dd HH:mm");
30873
- }
30874
- /**
30875
- * @deprecated since version 1.9.7
30876
- */
30877
- static romanianToEnglishDateHourMinuteSeconds(dateString) {
30878
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
30879
- return this.stringFromTo(dateString, "dd-MM-yyyy HH:mm:ss", "yyyy-MM-dd HH:mm:ss");
30880
- }
30881
- /**
30882
- * @deprecated since version 1.9.7
30883
- */
30884
- static englishToRomanianDate(dateString) {
30885
- console.warn("Warning! Deprecated function from 01.03.2023 called!");
30886
- return this.stringFromTo(dateString, "yyyy-MM-dd", "dd-MM-yyyy");
30887
- }
30888
- /**
30889
- * @deprecated since version 2.0
30890
- */
30891
- static englishToRomanianDateHour(dateString) {
30892
- console.warn("Warning! Depricated function from 01.03.2023 called!");
30893
- return this.stringFromTo(dateString, "yyyy-MM-dd HH:00", "dd-MM-yyyy HH");
30894
- }
30895
- /**
30896
- * @deprecated since version 2.0
30897
- */
30898
- static englishToRomanianDateHourMinute(dateString) {
30899
- return this.stringFromTo(dateString, "yyyy-MM-dd HH:mm", "dd-MM-yyyy HH:mm");
30900
- }
30901
- /**
30902
- * @deprecated since version 2.0
30903
- */
30904
- static englishToRomanianDateHourMinuteSeconds(dateString) {
30905
- return this.stringFromTo(dateString, "yyyy-MM-dd HH:mm:ss", "dd-MM-yyyy HH:mm:ss");
30906
- }
30907
- static displayInterval(start, end, dateFormat = this.FORMAT_ROMANIAN_DATE) {
30908
- if (!start && !end) return `Nedeterminata`;
30909
- if (start && end) return `${DateUtils.dateToString(start, dateFormat)} - ${DateUtils.dateToString(end, dateFormat)}`;
30910
- if (start) return `>= ${DateUtils.dateToString(start, dateFormat)}`;
30911
- if (end) return `<= ${DateUtils.dateToString(end, dateFormat)}`;
30912
- }
30913
- static isStringDate = (dateString) => {
30914
- 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);
30915
- };
30916
- static stringToDateRecursive = (item, deep = false) => {
30917
- if (!item) return item;
30918
- if ((0, import_lodash.isArray)(item)) return item.map((el) => DateUtils.stringToDateRecursive(el, deep));
30919
- if ((0, import_lodash.isPlainObject)(item)) {
30920
- for (const key in item) if (Object.prototype.hasOwnProperty.call(item, key)) item[key] = deep ? DateUtils.stringToDateRecursive(item[key], deep) : DateUtils.stringToDateRecursive(item[key]);
30921
- return item;
30922
- }
30923
- if (typeof item === "string") return DateUtils.isStringDate(item) ? DateUtils.stringToDate(item) : item;
30924
- return item;
30925
- };
30926
- static isOlderThan = (timestamp, minutes) => {
30927
- return Date.now() - timestamp > minutes * 60 * 1e3;
30928
- };
30929
- static nextMonth({ month, year }) {
30930
- const d = new Date(+year, +month);
30931
- return {
30932
- month: String(d.getMonth() + 1),
30933
- year: String(d.getFullYear())
30934
- };
30935
- }
30936
- static previousMonth({ month, year }) {
30937
- const d = new Date(+year, +month - 2);
30938
- return {
30939
- month: String(d.getMonth() + 1),
30940
- year: String(d.getFullYear())
30941
- };
30942
- }
30943
- };
30944
- //#endregion
30945
- //#region src/components/small/app-date-time-picker/AppDateTimePicker.vue
30946
- var _hoisted_1$72 = { class: "flex-center-vertical w-100" };
30947
- var _hoisted_2$53 = { class: "app-form-group-element flex-grow-1 mr-5" };
30948
- var _hoisted_3$36 = { class: "app-form-group-element flex-grow-1" };
30949
- var _hoisted_4$29 = {
30950
- key: 0,
30951
- class: "easy-buttons"
30952
- };
30953
- var CODE_SUB_DAY = "subday";
30954
- var CODE_TODAY = "today";
30955
- 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" };
30956
30661
  var _sfc_main$10 = {
30957
- __name: "AppDateTimePicker",
30958
- props: {
30959
- modelValue: {},
30960
- name: {
30961
- type: String,
30962
- default: "app-date-time-picker"
30963
- },
30964
- minuteOptions: {
30965
- type: Array,
30966
- default: () => {
30967
- return [{
30968
- id: 1,
30969
- value: "00"
30970
- }, {
30971
- id: 2,
30972
- value: "30"
30973
- }];
30974
- }
30975
- },
30976
- dateClass: { default: "flex-1" },
30977
- timeClass: { default: "flex-1" },
30978
- valueType: {
30979
- type: String,
30980
- default: "date"
30981
- },
30982
- format: {
30983
- type: String,
30984
- default: "YYYY-MM-DD"
30985
- },
30986
- ...appDatePickerProps_default,
30662
+ __name: "AppDateTime",
30663
+ props: /*@__PURE__*/ mergeModels({
30664
+ ...props$1,
30665
+ ...props,
30987
30666
  ...appFormElementProps_default
30988
- },
30989
- emits: ["update:modelValue", "input"],
30990
- setup(__props, { emit: __emit }) {
30991
- const props = __props;
30992
- 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"]);
30993
30675
  const { formElementProps } = useAppFormElement(props);
30994
- const localValue = ref(null);
30995
- const localDate = ref(null);
30996
- const localTime = ref(null);
30997
- ref([
30998
- {
30999
- value: "-1",
31000
- code: CODE_SUB_DAY
31001
- },
31002
- {
31003
- value: "Astazi",
31004
- code: CODE_TODAY
31005
- },
31006
- {
31007
- value: "+1",
31008
- 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);
31009
30680
  }
31010
- ]);
31011
- const computedDisabled = computed(() => {
31012
- return !localDate.value || props.disabled;
31013
- });
31014
- const setLocalDate = () => {
31015
- if (localValue.value) localDate.value = startOfDay$1(localValue.value);
31016
- };
31017
- const setLocalTime = () => {
31018
- if (localValue.value) localTime.value = DateUtils.dateToString(localValue.value, "HH:mm");
31019
- };
31020
- const onInput = () => {
31021
- if (!localValue.value) emits("update:modelValue", null);
31022
- if (!localTime.value || !localDate.value) return;
31023
- emits("update:modelValue", localValue.value);
31024
- };
31025
- watch(() => localTime.value, (newValue, oldValue) => {
31026
- if ((0, import_lodash.isEqual)(newValue, oldValue) || !newValue) return;
31027
- let localDateFormatted = DateUtils.dateToString(localDate.value, DateUtils.FORMAT_ENGLISH_DATE);
31028
- localValue.value = DateUtils.stringToDate(`${localDateFormatted} ${newValue}`, DateUtils.FORMAT_ENGLISH_DATE_HOUR_MINUTE);
31029
30681
  });
31030
- watch(() => localDate.value, (newValue, oldValue) => {
31031
- if ((0, import_lodash.isEqual)(newValue, oldValue)) return;
31032
- if (!localDate.value && localTime.value) {
31033
- localTime.value = null;
31034
- localValue.value = null;
31035
- 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;
31036
30694
  }
31037
- let localValueNew = (0, import_lodash.cloneDeep)(localValue.value) ?? startOfDay$1(/* @__PURE__ */ new Date());
31038
- localValueNew.setFullYear(newValue.getFullYear(), newValue.getMonth(), newValue.getDate());
31039
- localValue.value = localValueNew;
31040
30695
  });
31041
- watch(() => localValue.value, (newValue, oldValue) => {
31042
- if ((0, import_lodash.isEqual)(newValue, oldValue)) return;
31043
- setLocalDate();
31044
- setLocalTime();
31045
- onInput();
31046
- }, { immediate: true });
31047
- const setLocalValue = (value) => {
31048
- if (!value) {
31049
- localValue.value = null;
31050
- return;
31051
- }
31052
- if (value instanceof Date) {
31053
- localValue.value = (0, import_lodash.cloneDeep)(value);
31054
- setLocalDate();
31055
- setLocalTime();
31056
- } else {
31057
- localDate.value = startOfDay$1(/* @__PURE__ */ new Date());
31058
- localTime.value = DateUtils.dateToString(localDate.value, "HH:mm");
31059
- }
31060
- };
31061
- watch(() => props.modelValue, (newValue, oldValue) => {
31062
- if ((0, import_lodash.isEqual)(newValue, oldValue)) return;
31063
- setLocalValue(props.modelValue);
31064
- onInput();
31065
- }, { immediate: true });
31066
30696
  return (_ctx, _cache) => {
31067
- const _component_app_date = resolveComponent("app-date");
31068
- const _component_app_time = resolveComponent("app-time");
31069
30697
  return openBlock(), createBlock(AppFormElement_default, normalizeProps(guardReactiveProps(unref(formElementProps))), {
31070
30698
  "help-block": withCtx(() => [renderSlot(_ctx.$slots, "help-block")]),
31071
- default: withCtx(() => [createElementVNode("div", _hoisted_1$72, [
31072
- createElementVNode("div", _hoisted_2$53, [createVNode(_component_app_date, {
31073
- modelValue: localDate.value,
31074
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => localDate.value = $event),
31075
- "current-format": "dd.MM.yyyy",
31076
- disabled: _ctx.disabled,
31077
- "show-day-of-week": _ctx.showDayOfWeek,
31078
- "input-only": true
31079
- }, null, 8, [
31080
- "modelValue",
31081
- "disabled",
31082
- "show-day-of-week"
31083
- ])]),
31084
- createElementVNode("div", _hoisted_3$36, [createVNode(_component_app_time, {
31085
- ref: "timePicker",
31086
- modelValue: localTime.value,
31087
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => localTime.value = $event),
31088
- disabled: computedDisabled.value,
31089
- "minute-options": __props.minuteOptions,
31090
- "input-only": true
31091
- }, null, 8, [
31092
- "modelValue",
31093
- "disabled",
31094
- "minute-options"
31095
- ])]),
31096
- _ctx.showEasyButtons ? (openBlock(), createElementBlock("div", _hoisted_4$29, [createVNode(_sfc_main$116, {
31097
- modelValue: localValue.value,
31098
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => localValue.value = $event)
31099
- }, null, 8, ["modelValue"])])) : createCommentVNode("", true)
31100
- ])]),
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"])])]),
31101
30719
  _: 3
31102
30720
  }, 16);
31103
30721
  };
@@ -66634,11 +66252,11 @@ var IconSquareCheckFilled = createVueComponent("filled", "square-check-filled",
66634
66252
  */
66635
66253
  //#endregion
66636
66254
  //#region src/components/small/app-drawer/AppDrawer.vue
66637
- var _hoisted_1$71 = { class: "display-flex-column h-100" };
66638
- var _hoisted_2$52 = { class: "flex-center-vertical w-100 p-3" };
66639
- var _hoisted_3$35 = { class: "flex-1" };
66640
- var _hoisted_4$28 = { class: "font-600 text-size-14" };
66641
- 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" };
66642
66260
  var AppDrawer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
66643
66261
  __name: "AppDrawer",
66644
66262
  props: /*@__PURE__*/ mergeModels({
@@ -66689,26 +66307,26 @@ var AppDrawer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
66689
66307
  ref: drawer,
66690
66308
  class: normalizeClass(["filter-sidebar", drawerClass.value]),
66691
66309
  style: normalizeStyle(drawerStyle.value)
66692
- }, [createElementVNode("div", _hoisted_1$71, [
66693
- 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), {
66694
66312
  size: 24,
66695
66313
  stroke: 1.5,
66696
66314
  class: "cursor-pointer",
66697
66315
  onClick: hide
66698
66316
  })]),
66699
66317
  _cache[0] || (_cache[0] = createElementVNode("hr", { class: "mb-5 mt-0 w-100" }, null, -1)),
66700
- 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)])
66701
66319
  ])], 6)]);
66702
66320
  };
66703
66321
  }
66704
66322
  }, [["__scopeId", "data-v-7b902216"]]);
66705
66323
  //#endregion
66706
66324
  //#region src/components/small/app-table/AppTableFilterDrawer.vue
66707
- var _hoisted_1$70 = { class: "display-flex-column h-100" };
66708
- var _hoisted_2$51 = { class: "flex-center-vertical pr-20 pl-20 w-100 mt-15" };
66709
- var _hoisted_3$34 = { class: "flex-1 mb-10" };
66710
- var _hoisted_4$27 = { class: "mb-0" };
66711
- 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" };
66712
66330
  var _hoisted_6$13 = { class: "flex-center p-10 w-100 gap-1" };
66713
66331
  var AppTableFilterDrawer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
66714
66332
  __name: "AppTableFilterDrawer",
@@ -66771,13 +66389,13 @@ var AppTableFilterDrawer_default = /*#__PURE__*/ _plugin_vue_export_helper_defau
66771
66389
  createElementVNode("div", {
66772
66390
  ref: "drawer",
66773
66391
  class: normalizeClass(["filter-sidebar", { active: isExpanded.value }])
66774
- }, [createElementVNode("div", _hoisted_1$70, [
66775
- 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", {
66776
66394
  class: "icon-x cursor-pointer",
66777
66395
  onClick: toggleDrawer
66778
66396
  })]),
66779
66397
  _cache[0] || (_cache[0] = createElementVNode("hr", { class: "mb-5 mt-0 w-100" }, null, -1)),
66780
- 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)]),
66781
66399
  _cache[1] || (_cache[1] = createElementVNode("hr", { class: "mb-5 mt-0 w-100" }, null, -1)),
66782
66400
  createElementVNode("div", _hoisted_6$13, [createVNode(_sfc_main$3, {
66783
66401
  class: "btn-default",
@@ -67246,7 +66864,7 @@ var isNumeric = (value) => {
67246
66864
  };
67247
66865
  //#endregion
67248
66866
  //#region src/components/small/app-file/AppFileDropZone.vue
67249
- var _sfc_main$106 = {
66867
+ var _sfc_main$107 = {
67250
66868
  __name: "AppFileDropZone",
67251
66869
  emits: ["files-dropped"],
67252
66870
  setup(__props, { emit: __emit }) {
@@ -67292,11 +66910,11 @@ var _sfc_main$106 = {
67292
66910
  };
67293
66911
  //#endregion
67294
66912
  //#region src/components/small/app-modal/AppModal.vue
67295
- var _hoisted_1$69 = {
66913
+ var _hoisted_1$70 = {
67296
66914
  class: "app-modal-overlay",
67297
66915
  style: { "z-index": "99999" }
67298
66916
  };
67299
- var _hoisted_2$50 = {
66917
+ var _hoisted_2$51 = {
67300
66918
  "aria-modal": "true",
67301
66919
  class: "modal fade show display-block",
67302
66920
  tabindex: "-1"
@@ -67410,7 +67028,7 @@ var AppModal_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
67410
67028
  });
67411
67029
  return (_ctx, _cache) => {
67412
67030
  return openBlock(), createBlock(Transition, { name: "fadeHeight" }, {
67413
- 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", {
67414
67032
  ref_key: "modal",
67415
67033
  ref: modal,
67416
67034
  style: normalizeStyle(modalStyle.value),
@@ -67426,15 +67044,15 @@ var AppModal_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
67426
67044
  }, [["__scopeId", "data-v-4065aede"]]);
67427
67045
  //#endregion
67428
67046
  //#region src/components/small/app-alert-modal/AppAlertModal.vue
67429
- var _hoisted_1$68 = { class: "app-alert-modal rounded-3 shadow p-3" };
67430
- var _hoisted_2$49 = { class: "mb-2 fw-semibold" };
67431
- var _hoisted_3$33 = ["innerHTML"];
67432
- 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 = {
67433
67051
  key: 1,
67434
67052
  class: "mb-0 app-alert-modal-text"
67435
67053
  };
67436
- var _hoisted_5$19 = { class: "d-flex justify-content-end gap-2 mt-4" };
67437
- var _sfc_main$104 = {
67054
+ var _hoisted_5$20 = { class: "d-flex justify-content-end gap-2 mt-4" };
67055
+ var _sfc_main$105 = {
67438
67056
  __name: "AppAlertModal",
67439
67057
  props: {
67440
67058
  title: {
@@ -67509,11 +67127,11 @@ var _sfc_main$104 = {
67509
67127
  class: "app-modal-content",
67510
67128
  onHide: onCancel
67511
67129
  }, {
67512
- 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", {
67513
67131
  key: 0,
67514
67132
  class: "app-alert-modal-text",
67515
67133
  innerHTML: __props.text
67516
- }, 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, {
67517
67135
  key: 0,
67518
67136
  class: "btn app-alert-cancel-btn border",
67519
67137
  onClick: onCancel
@@ -67577,7 +67195,7 @@ var UIUtils = class {
67577
67195
  container.remove();
67578
67196
  }, 300);
67579
67197
  };
67580
- render(h(_sfc_main$104, {
67198
+ render(h(_sfc_main$105, {
67581
67199
  ...options,
67582
67200
  resolve: (value) => {
67583
67201
  resolve(value);
@@ -67589,11 +67207,11 @@ var UIUtils = class {
67589
67207
  };
67590
67208
  //#endregion
67591
67209
  //#region src/components/small/app-toast/AppToastCard.vue
67592
- var _hoisted_1$67 = {
67210
+ var _hoisted_1$68 = {
67593
67211
  key: 0,
67594
67212
  class: "fw-semibold"
67595
67213
  };
67596
- var _sfc_main$103 = {
67214
+ var _sfc_main$104 = {
67597
67215
  __name: "AppToastCard",
67598
67216
  props: {
67599
67217
  item: {
@@ -67637,7 +67255,7 @@ var _sfc_main$103 = {
67637
67255
  }, [__props.item.component ? (openBlock(), createBlock(resolveDynamicComponent(__props.item.component), mergeProps({ key: 0 }, __props.item.props, {
67638
67256
  toast: __props.item,
67639
67257
  close
67640
- }), 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({
67641
67259
  key: 1,
67642
67260
  class: { "small mt-1": __props.item.title }
67643
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", {
@@ -67655,7 +67273,7 @@ var _sfc_main$103 = {
67655
67273
  };
67656
67274
  //#endregion
67657
67275
  //#region src/components/small/app-toast/AppToastContainer.vue
67658
- var _sfc_main$102 = {
67276
+ var _sfc_main$103 = {
67659
67277
  __name: "AppToastContainer",
67660
67278
  setup(__props) {
67661
67279
  const { positions, positionStyle, getVisibleToasts, getPositionClasses, getToastClass, getContainerHoverStyle, getCombinedToastStyle, isContentHidden, onMeasure, pauseAll, resumeAll } = useToastLayout();
@@ -67672,7 +67290,7 @@ var _sfc_main$102 = {
67672
67290
  onMouseenter: _cache[0] || (_cache[0] = (...args) => unref(pauseAll) && unref(pauseAll)(...args)),
67673
67291
  onMouseleave: _cache[1] || (_cache[1] = (...args) => unref(resumeAll) && unref(resumeAll)(...args))
67674
67292
  }, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(getVisibleToasts)(position), (item, index) => {
67675
- return openBlock(), createBlock(_sfc_main$103, {
67293
+ return openBlock(), createBlock(_sfc_main$104, {
67676
67294
  key: item.id,
67677
67295
  item,
67678
67296
  "toast-class": unref(getToastClass)(item),
@@ -67723,7 +67341,7 @@ function ensureMounted() {
67723
67341
  container.id = "app-toast-root";
67724
67342
  document.body.appendChild(container);
67725
67343
  }
67726
- render(h(_sfc_main$102), container);
67344
+ render(h(_sfc_main$103), container);
67727
67345
  mounted = true;
67728
67346
  }
67729
67347
  function createId() {
@@ -68136,7 +67754,7 @@ var typeOfTest = (type) => (thing) => typeof thing === type;
68136
67754
  *
68137
67755
  * @returns {boolean} True if value is an Array, otherwise false
68138
67756
  */
68139
- var { isArray: isArray$3 } = Array;
67757
+ var { isArray: isArray$4 } = Array;
68140
67758
  /**
68141
67759
  * Determine if a value is undefined
68142
67760
  *
@@ -68206,7 +67824,7 @@ var isNumber = typeOfTest("number");
68206
67824
  *
68207
67825
  * @returns {boolean} True if value is an Object, otherwise false
68208
67826
  */
68209
- var isObject$11 = (thing) => thing !== null && typeof thing === "object";
67827
+ var isObject$12 = (thing) => thing !== null && typeof thing === "object";
68210
67828
  /**
68211
67829
  * Determine if a value is a Boolean
68212
67830
  *
@@ -68221,7 +67839,7 @@ var isBoolean = (thing) => thing === true || thing === false;
68221
67839
  *
68222
67840
  * @returns {boolean} True if value is a plain Object, otherwise false
68223
67841
  */
68224
- var isPlainObject = (val) => {
67842
+ var isPlainObject$1 = (val) => {
68225
67843
  if (kindOf(val) !== "object") return false;
68226
67844
  const prototype = getPrototypeOf(val);
68227
67845
  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);
@@ -68265,7 +67883,7 @@ var isFileList = kindOfTest("FileList");
68265
67883
  *
68266
67884
  * @returns {boolean} True if value is a Stream, otherwise false
68267
67885
  */
68268
- var isStream = (val) => isObject$11(val) && isFunction(val.pipe);
67886
+ var isStream = (val) => isObject$12(val) && isFunction(val.pipe);
68269
67887
  /**
68270
67888
  * Determine if a value is a FormData
68271
67889
  *
@@ -68319,7 +67937,7 @@ function forEach$2(obj, fn, { allOwnKeys = false } = {}) {
68319
67937
  let i;
68320
67938
  let l;
68321
67939
  if (typeof obj !== "object") obj = [obj];
68322
- 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);
68323
67941
  else {
68324
67942
  const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
68325
67943
  const len = keys.length;
@@ -68369,9 +67987,9 @@ function merge$1() {
68369
67987
  const result = {};
68370
67988
  const assignValue = (val, key) => {
68371
67989
  const targetKey = caseless && findKey$1(result, key) || key;
68372
- if (isPlainObject(result[targetKey]) && isPlainObject(val)) result[targetKey] = merge$1(result[targetKey], val);
68373
- else if (isPlainObject(val)) result[targetKey] = merge$1({}, val);
68374
- 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();
68375
67993
  else result[targetKey] = val;
68376
67994
  };
68377
67995
  for (let i = 0, l = arguments.length; i < l; i++) arguments[i] && forEach$2(arguments[i], assignValue);
@@ -68475,7 +68093,7 @@ var endsWith = (str, searchString, position) => {
68475
68093
  */
68476
68094
  var toArray$1 = (thing) => {
68477
68095
  if (!thing) return null;
68478
- if (isArray$3(thing)) return thing;
68096
+ if (isArray$4(thing)) return thing;
68479
68097
  let i = thing.length;
68480
68098
  if (!isNumber(i)) return null;
68481
68099
  const arr = new Array(i);
@@ -68579,7 +68197,7 @@ var toObjectSet = (arrayOrString, delimiter) => {
68579
68197
  obj[value] = true;
68580
68198
  });
68581
68199
  };
68582
- isArray$3(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));
68200
+ isArray$4(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));
68583
68201
  return obj;
68584
68202
  };
68585
68203
  var noop$1 = () => {};
@@ -68599,11 +68217,11 @@ function isSpecCompliantForm(thing) {
68599
68217
  var toJSONObject = (obj) => {
68600
68218
  const stack = new Array(10);
68601
68219
  const visit = (source, i) => {
68602
- if (isObject$11(source)) {
68220
+ if (isObject$12(source)) {
68603
68221
  if (stack.indexOf(source) >= 0) return;
68604
68222
  if (!("toJSON" in source)) {
68605
68223
  stack[i] = source;
68606
- const target = isArray$3(source) ? [] : {};
68224
+ const target = isArray$4(source) ? [] : {};
68607
68225
  forEach$2(source, (value, key) => {
68608
68226
  const reducedValue = visit(value, i + 1);
68609
68227
  !isUndefined(reducedValue) && (target[key] = reducedValue);
@@ -68617,7 +68235,7 @@ var toJSONObject = (obj) => {
68617
68235
  return visit(obj, 0);
68618
68236
  };
68619
68237
  var isAsyncFn = kindOfTest("AsyncFunction");
68620
- 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);
68621
68239
  var _setImmediate = ((setImmediateSupported, postMessageSupported) => {
68622
68240
  if (setImmediateSupported) return setImmediate;
68623
68241
  return postMessageSupported ? ((token, callbacks) => {
@@ -68631,7 +68249,7 @@ var _setImmediate = ((setImmediateSupported, postMessageSupported) => {
68631
68249
  })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
68632
68250
  })(typeof setImmediate === "function", isFunction(_global.postMessage));
68633
68251
  var utils_default = {
68634
- isArray: isArray$3,
68252
+ isArray: isArray$4,
68635
68253
  isArrayBuffer,
68636
68254
  isBuffer,
68637
68255
  isFormData,
@@ -68639,8 +68257,8 @@ var utils_default = {
68639
68257
  isString: isString$1,
68640
68258
  isNumber,
68641
68259
  isBoolean,
68642
- isObject: isObject$11,
68643
- isPlainObject,
68260
+ isObject: isObject$12,
68261
+ isPlainObject: isPlainObject$1,
68644
68262
  isReadableStream,
68645
68263
  isRequest,
68646
68264
  isResponse,
@@ -70980,14 +70598,14 @@ var fileStatus = {
70980
70598
  };
70981
70599
  //#endregion
70982
70600
  //#region src/components/small/app-file/AppFileItem.vue
70983
- var _hoisted_1$66 = { class: "flex-center-vertical" };
70984
- var _hoisted_2$48 = { key: 0 };
70985
- 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 = {
70986
70604
  key: 1,
70987
70605
  class: "file-action-button flex-1 mr-10"
70988
70606
  };
70989
- var _hoisted_4$25 = { class: "ph-eye" };
70990
- var _hoisted_5$18 = { class: "ph-download" };
70607
+ var _hoisted_4$26 = { class: "ph-eye" };
70608
+ var _hoisted_5$19 = { class: "ph-download" };
70991
70609
  var _hoisted_6$12 = { class: "ph-x-circle" };
70992
70610
  var AppFileItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
70993
70611
  __name: "AppFileItem",
@@ -71034,23 +70652,23 @@ var AppFileItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71034
70652
  });
71035
70653
  return (_ctx, _cache) => {
71036
70654
  const _directive_tippy = resolveDirective("tippy");
71037
- return openBlock(), createElementBlock("div", _hoisted_1$66, [
70655
+ return openBlock(), createElementBlock("div", _hoisted_1$67, [
71038
70656
  createElementVNode("i", {
71039
70657
  class: normalizeClass([mediaIconClass.value, "mr-10"]),
71040
70658
  style: { "font-size": "22px" }
71041
70659
  }, null, 2),
71042
- __props.file ? (openBlock(), createElementBlock("div", _hoisted_2$48, toDisplayString(filename.value), 1)) : createCommentVNode("", true),
71043
- __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, [
71044
70662
  props.showPreview ? (openBlock(), createElementBlock("div", {
71045
70663
  key: 0,
71046
70664
  class: "ml-5 mr-5 action-icon",
71047
70665
  onClick: _cache[0] || (_cache[0] = () => emits("preview", __props.file))
71048
- }, [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),
71049
70667
  props.showDownload ? (openBlock(), createElementBlock("div", {
71050
70668
  key: 1,
71051
70669
  class: "ml-5 mr-5 action-icon",
71052
70670
  onClick: _cache[1] || (_cache[1] = () => emits("download", __props.file))
71053
- }, [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),
71054
70672
  !__props.disabled ? (openBlock(), createElementBlock("div", {
71055
70673
  key: 2,
71056
70674
  class: "ml-5 mr-5 action-icon",
@@ -71063,17 +70681,17 @@ var AppFileItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71063
70681
  }, [["__scopeId", "data-v-307075d7"]]);
71064
70682
  //#endregion
71065
70683
  //#region src/components/small/app-file/AppFileInput.vue
71066
- var _hoisted_1$65 = { class: "flex-center-vertical" };
71067
- var _hoisted_2$47 = {
70684
+ var _hoisted_1$66 = { class: "flex-center-vertical" };
70685
+ var _hoisted_2$48 = {
71068
70686
  key: 0,
71069
70687
  class: "flex-1"
71070
70688
  };
71071
- var _hoisted_3$31 = {
70689
+ var _hoisted_3$32 = {
71072
70690
  key: 1,
71073
70691
  class: "flex-1"
71074
70692
  };
71075
- var _hoisted_4$24 = { class: "btn-group" };
71076
- var _hoisted_5$17 = ["accept", "disabled"];
70693
+ var _hoisted_4$25 = { class: "btn-group" };
70694
+ var _hoisted_5$18 = ["accept", "disabled"];
71077
70695
  var AppFileInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71078
70696
  __name: "AppFileInput",
71079
70697
  props: /*@__PURE__*/ mergeModels({
@@ -71144,7 +70762,7 @@ var AppFileInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71144
70762
  isLoading.value = false;
71145
70763
  };
71146
70764
  return (_ctx, _cache) => {
71147
- 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) => {
71148
70766
  return openBlock(), createBlock(AppFileItem_default, {
71149
70767
  key: file.id,
71150
70768
  file,
@@ -71164,7 +70782,7 @@ var AppFileInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71164
70782
  "onDownload",
71165
70783
  "onPreview"
71166
70784
  ]);
71167
- }), 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", {
71168
70786
  key: 0,
71169
70787
  class: "btn-container",
71170
70788
  onClick: confirm
@@ -71176,7 +70794,7 @@ var AppFileInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71176
70794
  type: "file",
71177
70795
  style: { "display": "none" },
71178
70796
  onChange: uploadFile
71179
- }, 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", {
71180
70798
  class: "ph-upload",
71181
70799
  style: { "font-size": "16px" }
71182
70800
  }), createElementVNode("span", { class: "ml-5" }, "Încarcă")], -1))])) : createCommentVNode("", true), !isMediaEmpty.value && __props.isMultiple ? (openBlock(), createElementBlock("div", {
@@ -71189,16 +70807,16 @@ var AppFileInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
71189
70807
  }, [["__scopeId", "data-v-c5bb432b"]]);
71190
70808
  //#endregion
71191
70809
  //#region src/components/small/app-overlay/AppOverlay.vue
71192
- var _sfc_main$99 = {};
71193
- var _hoisted_1$64 = { class: "blockUI blockOverlay" };
70810
+ var _sfc_main$100 = {};
70811
+ var _hoisted_1$65 = { class: "blockUI blockOverlay" };
71194
70812
  function _sfc_render$2(_ctx, _cache) {
71195
- 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)]);
71196
70814
  }
71197
- 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"]]);
71198
70816
  //#endregion
71199
70817
  //#region src/components/small/app-loading-overlay/AppLoadingOverlay.vue
71200
- var _hoisted_1$63 = { class: "w-100 h-100 flex-center" };
71201
- var _hoisted_2$46 = {
70818
+ var _hoisted_1$64 = { class: "w-100 h-100 flex-center" };
70819
+ var _hoisted_2$47 = {
71202
70820
  key: 0,
71203
70821
  class: "icon-spinner11 spinner"
71204
70822
  };
@@ -71211,7 +70829,7 @@ var _sfc_main$26 = {
71211
70829
  setup(__props) {
71212
70830
  return (_ctx, _cache) => {
71213
70831
  return openBlock(), createBlock(AppOverlay_default, null, {
71214
- 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)])]),
71215
70833
  _: 1
71216
70834
  });
71217
70835
  };
@@ -71219,7 +70837,7 @@ var _sfc_main$26 = {
71219
70837
  };
71220
70838
  //#endregion
71221
70839
  //#region src/components/small/app-file/AppFile.vue
71222
- var _hoisted_1$62 = { class: "form-control" };
70840
+ var _hoisted_1$63 = { class: "form-control" };
71223
70841
  var _sfc_main$14 = {
71224
70842
  __name: "AppFile",
71225
70843
  props: /*@__PURE__*/ mergeModels({
@@ -71304,7 +70922,7 @@ var _sfc_main$14 = {
71304
70922
  };
71305
70923
  return (_ctx, _cache) => {
71306
70924
  return openBlock(), createBlock(AppFormElement_default, normalizeProps(guardReactiveProps(unref(formElementProps))), {
71307
- 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 }, {
71308
70926
  default: withCtx(({ dropZoneActive }) => [createVNode(AppFileInput_default, {
71309
70927
  modelValue: files.value,
71310
70928
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => files.value = $event),
@@ -71334,14 +70952,14 @@ var _sfc_main$14 = {
71334
70952
  };
71335
70953
  //#endregion
71336
70954
  //#region src/components/small/app-form-repeater/AppFormRepeater.vue
71337
- var _hoisted_1$61 = { class: "display-flex align-items-center" };
71338
- var _hoisted_2$45 = { class: "display-flex pl-10" };
71339
- 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 = {
71340
70958
  key: 1,
71341
70959
  class: "card list app-form-repeater-list'"
71342
70960
  };
71343
- var _hoisted_4$23 = { class: "d-flex py-2 px-1" };
71344
- 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" };
71345
70963
  var _hoisted_6$11 = { class: "px-1" };
71346
70964
  var _hoisted_7$6 = { class: "flex-grow-1" };
71347
70965
  var _hoisted_8$5 = { class: "display-flex align-items-center" };
@@ -71456,11 +71074,11 @@ var _sfc_main$19 = {
71456
71074
  type: "list",
71457
71075
  onIsCollapsedChanged: (isCollapsed) => handleIsCollapsedChange(index, isCollapsed)
71458
71076
  }, {
71459
- 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), {
71460
71078
  key: 0,
71461
71079
  size: 22,
71462
71080
  class: "drag-handle"
71463
- })) : 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({
71464
71082
  element,
71465
71083
  index,
71466
71084
  removeItemAtIndex
@@ -71490,8 +71108,8 @@ var _sfc_main$19 = {
71490
71108
  "can-collapse",
71491
71109
  "is-collapsed",
71492
71110
  "onIsCollapsedChanged"
71493
- ])) : (openBlock(), createElementBlock("div", _hoisted_3$30, [createElementVNode("div", _hoisted_4$23, [
71494
- 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), {
71495
71113
  key: 0,
71496
71114
  size: 22,
71497
71115
  class: "drag-handle"
@@ -71546,6 +71164,214 @@ var _sfc_main$19 = {
71546
71164
  }
71547
71165
  };
71548
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
71549
71375
  //#region node_modules/lodash/isArray.js
71550
71376
  var require_isArray = /* @__PURE__ */ __commonJSMin(((exports, module) => {
71551
71377
  module.exports = Array.isArray;
@@ -125129,7 +124955,7 @@ var _sfc_main$62 = {
125129
124955
  return renderSlot(_ctx.$slots, slotName, {
125130
124956
  key: slotName,
125131
124957
  file,
125132
- fileUpload: _ctx.fileUpload
124958
+ context: unref(fileUploadContext)
125133
124959
  });
125134
124960
  }), 128))
125135
124961
  ])]),
@@ -125139,7 +124965,7 @@ var _sfc_main$62 = {
125139
124965
  action,
125140
124966
  file,
125141
124967
  index,
125142
- fileUploadContext: unref(fileUploadContext)
124968
+ context: unref(fileUploadContext)
125143
124969
  }, () => [createVNode(_component_app_button, {
125144
124970
  disabled: action.name === "removed" && __props.disabled,
125145
124971
  class: "btn-transparent",
@@ -125352,7 +125178,7 @@ var _sfc_main$15 = {
125352
125178
  accept: unref(fileUpload).normalizedAccept.value,
125353
125179
  disabled: _ctx.disabled,
125354
125180
  onChange: _cache[0] || (_cache[0] = (...args) => unref(fileUpload).onFileSelect && unref(fileUpload).onFileSelect(...args))
125355
- }, null, 40, _hoisted_2$3), createVNode(_sfc_main$106, {
125181
+ }, null, 40, _hoisted_2$3), createVNode(_sfc_main$107, {
125356
125182
  disabled: _ctx.disabled,
125357
125183
  onFilesDropped: unref(fileUpload).onFileSelect
125358
125184
  }, {
@@ -125587,6 +125413,266 @@ function useFormDirty(config) {
125587
125413
  };
125588
125414
  }
125589
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
125590
125676
  //#region src/components/small/app-form-draft-toast/AppFormDraftToast.vue
125591
125677
  var _hoisted_1$4 = { class: "app-form-draft-toast flex-center-vertical" };
125592
125678
  var _hoisted_2$1 = { class: "mr-20" };
@@ -137401,7 +137487,9 @@ var components_exports = /* @__PURE__ */ __exportAll({
137401
137487
  AppDatePickerDayOfWeek: () => _sfc_main$8,
137402
137488
  AppDatePickerRange: () => _sfc_main$9,
137403
137489
  AppDateRange: () => _sfc_main$9,
137490
+ AppDateTime: () => _sfc_main$10,
137404
137491
  AppDateTimePicker: () => _sfc_main$10,
137492
+ AppDayOfWeek: () => _sfc_main$8,
137405
137493
  AppDrawer: () => AppDrawer_default,
137406
137494
  AppDropdown: () => _sfc_main$11,
137407
137495
  AppDualListMagic: () => _sfc_main$12,
@@ -137465,12 +137553,11 @@ var components_exports = /* @__PURE__ */ __exportAll({
137465
137553
  AppTeleport: () => _sfc_main$51,
137466
137554
  AppTeleportTarget: () => _sfc_main$52,
137467
137555
  AppTextArea: () => AppTextArea_default,
137468
- AppTimePicker: () => AppTimePicker_default,
137556
+ AppTime: () => AppTime_default,
137469
137557
  AppToggleButton: () => _sfc_main$53,
137470
137558
  AppToolbar: () => _sfc_main$54,
137471
137559
  AppToolbarSubheader: () => AppToolbarSubheader_default,
137472
137560
  AppTree: () => _sfc_main$55,
137473
- DayOfWeek: () => _sfc_main$8,
137474
137561
  VueDatePicker: () => Nr
137475
137562
  });
137476
137563
  //#endregion
@@ -137773,6 +137860,6 @@ var plugin = { install(Vue, config) {
137773
137860
  config?.mediaType && setMediaType(config.mediaType);
137774
137861
  } };
137775
137862
  //#endregion
137776
- 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 };
137777
137864
 
137778
137865
  //# sourceMappingURL=funky-ui-kit.esm.js.map