@amirjalili1374/ui-kit 1.3.24 → 1.3.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ui-kit.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { capitalize, reactive, watchEffect, toRef, shallowRef, Fragment, camelize, isVNode, Comment, unref, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject, defineComponent as defineComponent$1, h, createElementVNode, normalizeStyle, normalizeClass, toValue, resolveDynamicComponent, nextTick, onScopeDispose, createVNode, mergeProps, toRefs, Text, isRef, TransitionGroup, Transition, watch, onBeforeMount, onBeforeUnmount, withDirectives, vShow, toDisplayString, effectScope, toRaw, readonly, createBlock, openBlock, withCtx, createCommentVNode, useId, onMounted, onUpdated, Teleport, createTextVNode, createElementBlock, renderSlot, onDeactivated, cloneVNode, renderList, createSlots, normalizeProps, guardReactiveProps, resolveComponent, onActivated, onBeforeUpdate, withModifiers, vModelText, withKeys, onUnmounted } from "vue";
2
- import { IconHome, IconArrowBadgeLeft, IconChevronDown, IconChevronRight, IconMinus, IconPlus, IconRefresh, IconChevronLeft, IconDownload, IconPrinter, IconMaximize, IconMinimize, IconX, IconFileText, IconCheck, IconPencil, IconClock } from "@tabler/icons-vue";
2
+ import { IconHome, IconArrowBadgeLeft, IconChevronDown, IconChevronRight, IconMinus, IconPlus, IconRefresh, IconChevronLeft, IconDownload, IconPrinter, IconMaximize, IconMinimize, IconX, IconFileText, IconCheck, IconPencil, IconClock, IconMenu2, IconPalette, IconBell, IconSettings } from "@tabler/icons-vue";
3
3
  import axios from "axios";
4
4
  import { useDebounceFn } from "@vueuse/core";
5
5
  import { useRouter as useRouter$1 } from "vue-router";
@@ -3886,9 +3886,9 @@ const VRow = genericComponent()({
3886
3886
  });
3887
3887
  const VSpacer = createSimpleFunctional("v-spacer", "div", "VSpacer");
3888
3888
  const _hoisted_1$d = { class: "text-h3" };
3889
- const _hoisted_2$7 = { class: "d-flex align-center gap-2" };
3890
- const _hoisted_3$6 = { class: "d-flex align-center gap-2" };
3891
- const _sfc_main$l = /* @__PURE__ */ defineComponent$1({
3889
+ const _hoisted_2$5 = { class: "d-flex align-center gap-2" };
3890
+ const _hoisted_3$5 = { class: "d-flex align-center gap-2" };
3891
+ const _sfc_main$i = /* @__PURE__ */ defineComponent$1({
3892
3892
  __name: "BaseBreadcrumb",
3893
3893
  props: {
3894
3894
  title: String,
@@ -3932,7 +3932,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent$1({
3932
3932
  class: "text-h5 justify-md-end pa-1"
3933
3933
  }, {
3934
3934
  divider: withCtx(() => [
3935
- createElementVNode("div", _hoisted_2$7, [
3935
+ createElementVNode("div", _hoisted_2$5, [
3936
3936
  createVNode(unref(IconArrowBadgeLeft), { stroke: "{2}" })
3937
3937
  ])
3938
3938
  ]),
@@ -3941,7 +3941,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent$1({
3941
3941
  size: "16",
3942
3942
  class: "text-secondary ml-2"
3943
3943
  }),
3944
- createElementVNode("div", _hoisted_3$6, [
3944
+ createElementVNode("div", _hoisted_3$5, [
3945
3945
  createVNode(unref(IconArrowBadgeLeft), { stroke: "{2}" })
3946
3946
  ])
3947
3947
  ]),
@@ -3965,7 +3965,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent$1({
3965
3965
  };
3966
3966
  }
3967
3967
  });
3968
- const _sfc_main$k = /* @__PURE__ */ defineComponent$1({
3968
+ const _sfc_main$h = /* @__PURE__ */ defineComponent$1({
3969
3969
  __name: "BaseIcon",
3970
3970
  props: {
3971
3971
  icon: {
@@ -6584,7 +6584,7 @@ const _hoisted_1$c = {
6584
6584
  key: 0,
6585
6585
  class: "mb-2"
6586
6586
  };
6587
- const _sfc_main$j = /* @__PURE__ */ defineComponent$1({
6587
+ const _sfc_main$g = /* @__PURE__ */ defineComponent$1({
6588
6588
  __name: "ConfirmDialog",
6589
6589
  props: {
6590
6590
  modelValue: { type: Boolean },
@@ -12592,16 +12592,16 @@ const VTooltip = genericComponent()({
12592
12592
  }
12593
12593
  });
12594
12594
  const _hoisted_1$b = { class: "ca-item-title" };
12595
- const _hoisted_2$6 = { class: "ca-item-subtitle" };
12596
- const _hoisted_3$5 = { class: "ca-group-tooltip" };
12597
- const _hoisted_4$3 = { class: "ca-group-tooltip-header" };
12598
- const _hoisted_5$3 = { class: "ca-group-count" };
12595
+ const _hoisted_2$4 = { class: "ca-item-subtitle" };
12596
+ const _hoisted_3$4 = { class: "ca-group-tooltip" };
12597
+ const _hoisted_4$2 = { class: "ca-group-tooltip-header" };
12598
+ const _hoisted_5$2 = { class: "ca-group-count" };
12599
12599
  const _hoisted_6$2 = { class: "ca-group-members" };
12600
12600
  const _hoisted_7$2 = { class: "ca-item-title" };
12601
12601
  const _hoisted_8$2 = { class: "ca-item-subtitle" };
12602
12602
  const _hoisted_9$2 = { class: "ca-chip-title" };
12603
12603
  const _hoisted_10$2 = { class: "ca-chip-subtitle" };
12604
- const _sfc_main$i = /* @__PURE__ */ defineComponent$1({
12604
+ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
12605
12605
  __name: "CustomAutocomplete",
12606
12606
  props: {
12607
12607
  fields: {},
@@ -12735,7 +12735,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent$1({
12735
12735
  __props.displayStyle === "detailed" && resolveSubtitle(item.raw ?? item) ? {
12736
12736
  name: "subtitle",
12737
12737
  fn: withCtx(() => [
12738
- createElementVNode("div", _hoisted_2$6, toDisplayString(resolveSubtitle(item.raw ?? item)), 1)
12738
+ createElementVNode("div", _hoisted_2$4, toDisplayString(resolveSubtitle(item.raw ?? item)), 1)
12739
12739
  ]),
12740
12740
  key: "0"
12741
12741
  } : void 0
@@ -12746,10 +12746,10 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent$1({
12746
12746
  item: item.raw ?? item,
12747
12747
  groupMembers: getGroupMembers(item.raw ?? item)
12748
12748
  }, () => [
12749
- createElementVNode("div", _hoisted_3$5, [
12750
- createElementVNode("div", _hoisted_4$3, [
12749
+ createElementVNode("div", _hoisted_3$4, [
12750
+ createElementVNode("div", _hoisted_4$2, [
12751
12751
  createElementVNode("strong", null, toDisplayString(resolveTitle(item.raw ?? item)), 1),
12752
- createElementVNode("span", _hoisted_5$3, toDisplayString(getGroupMembers(item.raw ?? item).length) + " آیتم", 1)
12752
+ createElementVNode("span", _hoisted_5$2, toDisplayString(getGroupMembers(item.raw ?? item).length) + " آیتم", 1)
12753
12753
  ]),
12754
12754
  createElementVNode("div", _hoisted_6$2, [
12755
12755
  (openBlock(true), createElementBlock(Fragment, null, renderList(getGroupMembers(item.raw ?? item), (member, idx) => {
@@ -12812,8 +12812,8 @@ const _export_sfc$1 = (sfc, props) => {
12812
12812
  }
12813
12813
  return target;
12814
12814
  };
12815
- const CustomAutocomplete = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__scopeId", "data-v-4c17f7bd"]]);
12816
- const _sfc_main$h = /* @__PURE__ */ defineComponent$1({
12815
+ const CustomAutocomplete = /* @__PURE__ */ _export_sfc$1(_sfc_main$f, [["__scopeId", "data-v-4c17f7bd"]]);
12816
+ const _sfc_main$e = /* @__PURE__ */ defineComponent$1({
12817
12817
  __name: "MoneyInput",
12818
12818
  props: {
12819
12819
  modelValue: {
@@ -12920,7 +12920,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent$1({
12920
12920
  }
12921
12921
  });
12922
12922
  const _hoisted_1$a = { class: "shamsi-date-picker" };
12923
- const _sfc_main$g = /* @__PURE__ */ defineComponent$1({
12923
+ const _sfc_main$d = /* @__PURE__ */ defineComponent$1({
12924
12924
  __name: "ShamsiDatePicker",
12925
12925
  props: {
12926
12926
  modelValue: { default: "" },
@@ -13031,7 +13031,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent$1({
13031
13031
  };
13032
13032
  }
13033
13033
  });
13034
- const ShamsiDatePicker = /* @__PURE__ */ _export_sfc$1(_sfc_main$g, [["__scopeId", "data-v-d56f50fe"]]);
13034
+ const ShamsiDatePicker = /* @__PURE__ */ _export_sfc$1(_sfc_main$d, [["__scopeId", "data-v-d56f50fe"]]);
13035
13035
  function useTableSelection(items, options = {}) {
13036
13036
  const selectedItems = ref([]);
13037
13037
  const expandedGroups = ref(/* @__PURE__ */ new Set());
@@ -16921,13 +16921,13 @@ const _hoisted_1$9 = {
16921
16921
  key: 0,
16922
16922
  class: "page-title"
16923
16923
  };
16924
- const _hoisted_2$5 = { class: "title-text" };
16925
- const _hoisted_3$4 = { class: "action-buttons" };
16926
- const _hoisted_4$2 = {
16924
+ const _hoisted_2$3 = { class: "title-text" };
16925
+ const _hoisted_3$3 = { class: "action-buttons" };
16926
+ const _hoisted_4$1 = {
16927
16927
  key: 3,
16928
16928
  class: "selection-actions"
16929
16929
  };
16930
- const _hoisted_5$2 = {
16930
+ const _hoisted_5$1 = {
16931
16931
  key: 0,
16932
16932
  class: "selected-actions"
16933
16933
  };
@@ -16975,7 +16975,7 @@ const _hoisted_24 = {
16975
16975
  };
16976
16976
  const _hoisted_25 = { class: "d-flex justify-space-between align-center pa-4" };
16977
16977
  const _hoisted_26 = { class: "text-subtitle-2" };
16978
- const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
16978
+ const _sfc_main$c = /* @__PURE__ */ defineComponent$1({
16979
16979
  ...{ inheritAttrs: false },
16980
16980
  __name: "CustomDataTable",
16981
16981
  props: {
@@ -17277,6 +17277,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
17277
17277
  const resolveHeaderKey = (header) => header.key;
17278
17278
  const resolveHeaderTitle = (header) => header.title;
17279
17279
  const isHeaderDisabled = (header) => header.editable === false;
17280
+ const isTextareaHeader = (header) => header.textarea === true;
17280
17281
  const getUniqueValue = (item) => {
17281
17282
  if (typeof props.uniqueKey === "function") {
17282
17283
  return props.uniqueKey(item);
@@ -17884,9 +17885,9 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
17884
17885
  var _a;
17885
17886
  return openBlock(), createElementBlock(Fragment, null, [
17886
17887
  props.title ? (openBlock(), createElementBlock("div", _hoisted_1$9, [
17887
- createElementVNode("h3", _hoisted_2$5, toDisplayString(props.title), 1)
17888
+ createElementVNode("h3", _hoisted_2$3, toDisplayString(props.title), 1)
17888
17889
  ])) : createCommentVNode("", true),
17889
- createElementVNode("div", _hoisted_3$4, [
17890
+ createElementVNode("div", _hoisted_3$3, [
17890
17891
  ((_a = props.actions) == null ? void 0 : _a.includes("create")) ? (openBlock(), createBlock(VBtn, {
17891
17892
  key: 0,
17892
17893
  color: "green",
@@ -17919,7 +17920,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
17919
17920
  ])]),
17920
17921
  _: 1
17921
17922
  }, 8, ["onClick", "loading"])) : createCommentVNode("", true),
17922
- props.selectable && hasSelection.value ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
17923
+ props.selectable && hasSelection.value ? (openBlock(), createElementBlock("div", _hoisted_4$1, [
17923
17924
  createVNode(VChip, {
17924
17925
  color: "primary",
17925
17926
  class: "me-2"
@@ -17946,7 +17947,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
17946
17947
  appear: ""
17947
17948
  }, {
17948
17949
  default: withCtx(() => [
17949
- props.bulkMode && hasValidSelection.value || props.enableGroupDelete && hasSelection.value ? (openBlock(), createElementBlock("div", _hoisted_5$2, [
17950
+ props.bulkMode && hasValidSelection.value || props.enableGroupDelete && hasSelection.value ? (openBlock(), createElementBlock("div", _hoisted_5$1, [
17950
17951
  props.enableGroupDelete ? (openBlock(), createBlock(VBtn, {
17951
17952
  key: 0,
17952
17953
  color: "red",
@@ -18657,8 +18658,8 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18657
18658
  (openBlock(true), createElementBlock(Fragment, null, renderList(formHeaders.value, (header) => {
18658
18659
  return openBlock(), createBlock(VCol, {
18659
18660
  key: resolveHeaderKey(header),
18660
- cols: "12",
18661
- md: "4"
18661
+ cols: header.cols ? typeof header.cols === "number" ? header.cols : Number(header.cols) : 4,
18662
+ md: header.cols ? typeof header.cols === "number" ? header.cols : Number(header.cols) : 4
18662
18663
  }, {
18663
18664
  default: withCtx(() => [
18664
18665
  !header.hidden ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
@@ -18683,25 +18684,36 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18683
18684
  disabled: isHeaderDisabled(header),
18684
18685
  clearable: "",
18685
18686
  variant: "outlined"
18686
- }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "items", "item-title", "item-value", "return-object", "multiple", "chips", "closable-chips", "disabled"])) : isMoneyHeader(header) ? (openBlock(), createBlock(_sfc_main$h, {
18687
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "items", "item-title", "item-value", "return-object", "multiple", "chips", "closable-chips", "disabled"])) : isMoneyHeader(header) ? (openBlock(), createBlock(_sfc_main$e, {
18687
18688
  key: 2,
18688
18689
  modelValue: formModel.value[resolveHeaderKey(header)],
18689
18690
  "onUpdate:modelValue": ($event) => formModel.value[resolveHeaderKey(header)] = $event,
18690
18691
  label: resolveHeaderTitle(header),
18691
18692
  disabled: isHeaderDisabled(header)
18692
- }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "disabled"])) : (openBlock(), createBlock(VTextField, {
18693
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "disabled"])) : isTextareaHeader(header) ? (openBlock(), createBlock(VTextarea, {
18693
18694
  key: 3,
18694
18695
  modelValue: formModel.value[resolveHeaderKey(header)],
18695
18696
  "onUpdate:modelValue": ($event) => formModel.value[resolveHeaderKey(header)] = $event,
18696
18697
  label: resolveHeaderTitle(header),
18697
18698
  variant: "outlined",
18698
18699
  disabled: isHeaderDisabled(header),
18699
- type: getFieldInputType(header)
18700
- }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "disabled", "type"]))
18700
+ dir: header.dir,
18701
+ "auto-grow": "",
18702
+ rows: "3"
18703
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "disabled", "dir"])) : (openBlock(), createBlock(VTextField, {
18704
+ key: 4,
18705
+ modelValue: formModel.value[resolveHeaderKey(header)],
18706
+ "onUpdate:modelValue": ($event) => formModel.value[resolveHeaderKey(header)] = $event,
18707
+ label: resolveHeaderTitle(header),
18708
+ variant: "outlined",
18709
+ disabled: isHeaderDisabled(header),
18710
+ type: getFieldInputType(header),
18711
+ dir: header.dir
18712
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "disabled", "type", "dir"]))
18701
18713
  ], 64)) : createCommentVNode("", true)
18702
18714
  ]),
18703
18715
  _: 2
18704
- }, 1024);
18716
+ }, 1032, ["cols", "md"]);
18705
18717
  }), 128))
18706
18718
  ]),
18707
18719
  _: 1
@@ -19058,7 +19070,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
19058
19070
  }
19059
19071
  });
19060
19072
  const _hoisted_1$8 = { class: "description-input" };
19061
- const _sfc_main$e = /* @__PURE__ */ defineComponent$1({
19073
+ const _sfc_main$b = /* @__PURE__ */ defineComponent$1({
19062
19074
  __name: "DescriptionInput",
19063
19075
  props: {
19064
19076
  modelValue: { default: "" },
@@ -19180,12 +19192,13 @@ ${newLineNumber} - `;
19180
19192
  };
19181
19193
  }
19182
19194
  });
19183
- const DescriptionInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["__scopeId", "data-v-e8b64ecb"]]);
19195
+ const DescriptionInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["__scopeId", "data-v-e8b64ecb"]]);
19184
19196
  var mdiAlertCircle = "M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z";
19185
19197
  var mdiArrowRight = "M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z";
19186
19198
  var mdiCheckCircle = "M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41 10.59L10 14.17L17.59 6.58L19 8L10 17Z";
19187
19199
  var mdiClose = "M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z";
19188
19200
  var mdiCog = "M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z";
19201
+ var mdiContentCopy = "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z";
19189
19202
  var mdiDelete = "M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z";
19190
19203
  var mdiEye = "M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z";
19191
19204
  var mdiEyeOff = "M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z";
@@ -19207,10 +19220,11 @@ const icons = {
19207
19220
  pencil: mdiPencil,
19208
19221
  delete: mdiDelete,
19209
19222
  arrowRight: mdiArrowRight,
19210
- cog: mdiCog
19223
+ cog: mdiCog,
19224
+ contentCopy: mdiContentCopy
19211
19225
  };
19212
19226
  const _hoisted_1$7 = { class: "download-title" };
19213
- const _sfc_main$d = /* @__PURE__ */ defineComponent$1({
19227
+ const _sfc_main$a = /* @__PURE__ */ defineComponent$1({
19214
19228
  ...{
19215
19229
  inheritAttrs: false
19216
19230
  },
@@ -19328,18 +19342,18 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent$1({
19328
19342
  };
19329
19343
  }
19330
19344
  });
19331
- const DownloadButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$d, [["__scopeId", "data-v-0a911831"]]);
19345
+ const DownloadButton = /* @__PURE__ */ _export_sfc$1(_sfc_main$a, [["__scopeId", "data-v-0a911831"]]);
19332
19346
  const _hoisted_1$6 = {
19333
19347
  key: 0,
19334
19348
  class: "pdf-viewer-header"
19335
19349
  };
19336
- const _hoisted_2$4 = { class: "pdf-viewer-title" };
19337
- const _hoisted_3$3 = { class: "pdf-viewer-controls" };
19338
- const _hoisted_4$1 = {
19350
+ const _hoisted_2$2 = { class: "pdf-viewer-title" };
19351
+ const _hoisted_3$2 = { class: "pdf-viewer-controls" };
19352
+ const _hoisted_4 = {
19339
19353
  key: 0,
19340
19354
  class: "zoom-controls"
19341
19355
  };
19342
- const _hoisted_5$1 = { class: "zoom-level" };
19356
+ const _hoisted_5 = { class: "zoom-level" };
19343
19357
  const _hoisted_6 = {
19344
19358
  key: 1,
19345
19359
  class: "navigation-controls"
@@ -19372,7 +19386,7 @@ const _hoisted_16 = {
19372
19386
  key: 0,
19373
19387
  class: "file-info"
19374
19388
  };
19375
- const _sfc_main$c = /* @__PURE__ */ defineComponent$1({
19389
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent$1({
19376
19390
  __name: "PdfViewer",
19377
19391
  props: {
19378
19392
  src: {},
@@ -19581,11 +19595,11 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent$1({
19581
19595
  class: normalizeClass(["pdf-viewer-container", { "fullscreen": isFullscreen.value }])
19582
19596
  }, [
19583
19597
  __props.showHeader ? (openBlock(), createElementBlock("div", _hoisted_1$6, [
19584
- createElementVNode("div", _hoisted_2$4, [
19598
+ createElementVNode("div", _hoisted_2$2, [
19585
19599
  createElementVNode("h3", null, toDisplayString(__props.title || "PDF Viewer"), 1)
19586
19600
  ]),
19587
- createElementVNode("div", _hoisted_3$3, [
19588
- __props.showZoomControls ? (openBlock(), createElementBlock("div", _hoisted_4$1, [
19601
+ createElementVNode("div", _hoisted_3$2, [
19602
+ __props.showZoomControls ? (openBlock(), createElementBlock("div", _hoisted_4, [
19589
19603
  createVNode(VBtn, {
19590
19604
  size: "small",
19591
19605
  variant: "text",
@@ -19601,7 +19615,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent$1({
19601
19615
  ]),
19602
19616
  _: 1
19603
19617
  }, 8, ["disabled"]),
19604
- createElementVNode("span", _hoisted_5$1, toDisplayString(Math.round(zoom.value * 100)) + "%", 1),
19618
+ createElementVNode("span", _hoisted_5, toDisplayString(Math.round(zoom.value * 100)) + "%", 1),
19605
19619
  createVNode(VBtn, {
19606
19620
  size: "small",
19607
19621
  variant: "text",
@@ -19799,8 +19813,8 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent$1({
19799
19813
  };
19800
19814
  }
19801
19815
  });
19802
- const PdfViewer = /* @__PURE__ */ _export_sfc$1(_sfc_main$c, [["__scopeId", "data-v-f3e9c767"]]);
19803
- const _sfc_main$b = /* @__PURE__ */ defineComponent$1({
19816
+ const PdfViewer = /* @__PURE__ */ _export_sfc$1(_sfc_main$9, [["__scopeId", "data-v-f3e9c767"]]);
19817
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent$1({
19804
19818
  __name: "UiChildCard",
19805
19819
  props: {
19806
19820
  title: String
@@ -19835,7 +19849,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent$1({
19835
19849
  }
19836
19850
  });
19837
19851
  const _hoisted_1$5 = { class: "d-sm-flex align-center justify-space-between" };
19838
- const _sfc_main$a = /* @__PURE__ */ defineComponent$1({
19852
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
19839
19853
  __name: "UiParentCard",
19840
19854
  props: {
19841
19855
  title: String
@@ -19872,7 +19886,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent$1({
19872
19886
  };
19873
19887
  }
19874
19888
  });
19875
- const _sfc_main$9 = /* @__PURE__ */ defineComponent$1({
19889
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent$1({
19876
19890
  __name: "VPriceTextField",
19877
19891
  props: {
19878
19892
  modelValue: {},
@@ -19977,9 +19991,9 @@ const _hoisted_1$4 = {
19977
19991
  class: "app-stepper-root",
19978
19992
  dir: "rtl"
19979
19993
  };
19980
- const _hoisted_2$3 = { class: "app-stepper-header-card" };
19981
- const _hoisted_3$2 = { class: "app-stepper-title" };
19982
- const _sfc_main$8 = /* @__PURE__ */ defineComponent$1({
19994
+ const _hoisted_2$1 = { class: "app-stepper-header-card" };
19995
+ const _hoisted_3$1 = { class: "app-stepper-title" };
19996
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent$1({
19983
19997
  __name: "AppStepper",
19984
19998
  props: {
19985
19999
  steps: {
@@ -20032,7 +20046,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent$1({
20032
20046
  __expose({ currentStepComponentRef });
20033
20047
  return (_ctx, _cache) => {
20034
20048
  return openBlock(), createElementBlock("div", _hoisted_1$4, [
20035
- createElementVNode("div", _hoisted_2$3, [
20049
+ createElementVNode("div", _hoisted_2$1, [
20036
20050
  createElementVNode("div", {
20037
20051
  ref_key: "stepperHeaderRef",
20038
20052
  ref: stepperHeaderRef,
@@ -20073,7 +20087,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent$1({
20073
20087
  }))
20074
20088
  ], true)
20075
20089
  ], 2),
20076
- createElementVNode("span", _hoisted_3$2, toDisplayString(step.title), 1),
20090
+ createElementVNode("span", _hoisted_3$1, toDisplayString(step.title), 1),
20077
20091
  index2 < __props.steps.length - 1 ? (openBlock(), createElementBlock("span", {
20078
20092
  key: 0,
20079
20093
  class: normalizeClass([
@@ -20098,7 +20112,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent$1({
20098
20112
  };
20099
20113
  }
20100
20114
  });
20101
- const AppStepper = /* @__PURE__ */ _export_sfc$1(_sfc_main$8, [["__scopeId", "data-v-d5178633"]]);
20115
+ const AppStepper = /* @__PURE__ */ _export_sfc$1(_sfc_main$5, [["__scopeId", "data-v-d5178633"]]);
20102
20116
  var lottie = { exports: {} };
20103
20117
  (function(module, exports) {
20104
20118
  typeof navigator !== "undefined" && function(global2, factory) {
@@ -36514,7 +36528,7 @@ var _export_sfc = (sfc, props) => {
36514
36528
  }
36515
36529
  return target;
36516
36530
  };
36517
- const _sfc_main$7 = defineComponent$1({
36531
+ const _sfc_main$4 = defineComponent$1({
36518
36532
  props: {
36519
36533
  animationData: {
36520
36534
  type: Object,
@@ -36846,7 +36860,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
36846
36860
  onMouseleave: _cache[1] || (_cache[1] = (...args) => _ctx.hoverEnded && _ctx.hoverEnded(...args))
36847
36861
  }, null, 36);
36848
36862
  }
36849
- var Vue3Lottie = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render]]);
36863
+ var Vue3Lottie = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render]]);
36850
36864
  const useCustomizerStore = defineStore({
36851
36865
  id: "customizer",
36852
36866
  state: () => ({
@@ -36904,9 +36918,9 @@ const _hoisted_1$3 = {
36904
36918
  key: 0,
36905
36919
  class: "loading-overlay"
36906
36920
  };
36907
- const _hoisted_2$2 = { class: "loading-wrapper" };
36908
- const _hoisted_3$1 = { key: 0 };
36909
- const _sfc_main$6 = /* @__PURE__ */ defineComponent$1({
36921
+ const _hoisted_2 = { class: "loading-wrapper" };
36922
+ const _hoisted_3 = { key: 0 };
36923
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent$1({
36910
36924
  __name: "Loading",
36911
36925
  setup(__props) {
36912
36926
  const customizer = useCustomizerStore();
@@ -36914,7 +36928,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent$1({
36914
36928
  return openBlock(), createBlock(Transition, { name: "fade" }, {
36915
36929
  default: withCtx(() => [
36916
36930
  unref(customizer).loading ? (openBlock(), createElementBlock("div", _hoisted_1$3, [
36917
- createElementVNode("div", _hoisted_2$2, [
36931
+ createElementVNode("div", _hoisted_2, [
36918
36932
  createVNode(unref(Vue3Lottie), {
36919
36933
  "animation-link": "/persian.json",
36920
36934
  loop: true,
@@ -36923,7 +36937,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent$1({
36923
36937
  }),
36924
36938
  createVNode(Transition, { name: "fade-slide" }, {
36925
36939
  default: withCtx(() => [
36926
- unref(customizer).loading ? (openBlock(), createElementBlock("span", _hoisted_3$1, "لطفا منتظر بمانید")) : createCommentVNode("", true)
36940
+ unref(customizer).loading ? (openBlock(), createElementBlock("span", _hoisted_3, "لطفا منتظر بمانید")) : createCommentVNode("", true)
36927
36941
  ]),
36928
36942
  _: 1
36929
36943
  })
@@ -36935,808 +36949,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent$1({
36935
36949
  };
36936
36950
  }
36937
36951
  });
36938
- const Loading = /* @__PURE__ */ _export_sfc$1(_sfc_main$6, [["__scopeId", "data-v-9b533ee4"]]);
36939
- const _sfc_main$5 = /* @__PURE__ */ defineComponent$1({
36940
- __name: "NavItem",
36941
- props: {
36942
- item: {},
36943
- level: {}
36944
- },
36945
- setup(__props) {
36946
- const props = __props;
36947
- return (_ctx, _cache) => {
36948
- return openBlock(), createBlock(VListItem, {
36949
- to: __props.item.type === "external" ? "" : __props.item.to,
36950
- href: __props.item.type === "external" ? __props.item.to : "",
36951
- rounded: "",
36952
- class: "mb-1",
36953
- color: "secondary",
36954
- disabled: __props.item.disabled,
36955
- target: __props.item.type === "external" ? "_blank" : ""
36956
- }, createSlots({
36957
- default: withCtx(() => [
36958
- createVNode(VListItemTitle, null, {
36959
- default: withCtx(() => [
36960
- createTextVNode(toDisplayString(__props.item.title), 1)
36961
- ]),
36962
- _: 1
36963
- }),
36964
- __props.item.subCaption ? (openBlock(), createBlock(VListItemSubtitle, {
36965
- key: 0,
36966
- class: "text-caption mt-n1 hide-menu"
36967
- }, {
36968
- default: withCtx(() => [
36969
- createTextVNode(toDisplayString(__props.item.subCaption), 1)
36970
- ]),
36971
- _: 1
36972
- })) : createCommentVNode("", true)
36973
- ]),
36974
- _: 2
36975
- }, [
36976
- props.item.icon ? {
36977
- name: "prepend",
36978
- fn: withCtx(() => [
36979
- typeof props.item.icon === "string" ? (openBlock(), createBlock(VIcon, {
36980
- key: 0,
36981
- icon: props.item.icon
36982
- }, null, 8, ["icon"])) : (openBlock(), createBlock(resolveDynamicComponent(props.item.icon), { key: 1 }))
36983
- ]),
36984
- key: "0"
36985
- } : void 0,
36986
- __props.item.chip ? {
36987
- name: "append",
36988
- fn: withCtx(() => [
36989
- createVNode(VChip, {
36990
- color: __props.item.chipColor,
36991
- class: "sidebarchip hide-menu",
36992
- size: __props.item.chipIcon ? "small" : "default",
36993
- variant: __props.item.chipVariant,
36994
- "prepend-icon": __props.item.chipIcon
36995
- }, {
36996
- default: withCtx(() => [
36997
- createTextVNode(toDisplayString(__props.item.chip), 1)
36998
- ]),
36999
- _: 1
37000
- }, 8, ["color", "size", "variant", "prepend-icon"])
37001
- ]),
37002
- key: "1"
37003
- } : void 0
37004
- ]), 1032, ["to", "href", "disabled", "target"]);
37005
- };
37006
- }
37007
- });
37008
- const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
37009
- ...{ name: "NavCollapse" },
37010
- __name: "NavCollapse",
37011
- props: {
37012
- item: {},
37013
- level: {}
37014
- },
37015
- setup(__props) {
37016
- const props = __props;
37017
- return (_ctx, _cache) => {
37018
- const _component_NavCollapse = resolveComponent("NavCollapse", true);
37019
- return openBlock(), createBlock(VListGroup, { "no-action": "" }, {
37020
- activator: withCtx(({ props: props2 }) => [
37021
- createVNode(VListItem, mergeProps(props2, {
37022
- value: __props.item.title,
37023
- rounded: "",
37024
- class: "mb-1",
37025
- color: "secondary"
37026
- }), {
37027
- prepend: withCtx(() => [
37028
- typeof __props.item.icon === "string" ? (openBlock(), createBlock(VIcon, {
37029
- key: 0,
37030
- icon: __props.item.icon
37031
- }, null, 8, ["icon"])) : __props.item.icon ? (openBlock(), createBlock(resolveDynamicComponent(__props.item.icon), { key: 1 })) : createCommentVNode("", true)
37032
- ]),
37033
- default: withCtx(() => [
37034
- createVNode(VListItemTitle, { class: "ml-auto" }, {
37035
- default: withCtx(() => [
37036
- createTextVNode(toDisplayString(__props.item.title), 1)
37037
- ]),
37038
- _: 1
37039
- }),
37040
- __props.item.subCaption ? (openBlock(), createBlock(VListItemSubtitle, {
37041
- key: 0,
37042
- class: "text-caption mt-n1 hide-menu"
37043
- }, {
37044
- default: withCtx(() => [
37045
- createTextVNode(toDisplayString(__props.item.subCaption), 1)
37046
- ]),
37047
- _: 1
37048
- })) : createCommentVNode("", true)
37049
- ]),
37050
- _: 1
37051
- }, 16, ["value"])
37052
- ]),
37053
- default: withCtx(() => [
37054
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.item.children, (subitem, i) => {
37055
- return openBlock(), createElementBlock(Fragment, { key: i }, [
37056
- subitem.children ? (openBlock(), createBlock(_component_NavCollapse, {
37057
- key: 0,
37058
- item: subitem,
37059
- level: props.level + 1
37060
- }, null, 8, ["item", "level"])) : (openBlock(), createBlock(_sfc_main$5, {
37061
- key: 1,
37062
- item: subitem,
37063
- level: props.level + 1
37064
- }, null, 8, ["item", "level"]))
37065
- ], 64);
37066
- }), 128))
37067
- ]),
37068
- _: 1
37069
- });
37070
- };
37071
- }
37072
- });
37073
- const _sfc_main$3 = {
37074
- __name: "NavGroup",
37075
- props: { item: Object },
37076
- setup(__props) {
37077
- const props = __props;
37078
- return (_ctx, _cache) => {
37079
- return openBlock(), createBlock(VListSubheader, {
37080
- color: "darkText",
37081
- class: "smallCap"
37082
- }, {
37083
- default: withCtx(() => [
37084
- createTextVNode(toDisplayString(props.item.header), 1)
37085
- ]),
37086
- _: 1
37087
- });
37088
- };
37089
- }
37090
- };
37091
- function useSticky(_ref) {
37092
- let {
37093
- rootEl,
37094
- isSticky,
37095
- layoutItemStyles
37096
- } = _ref;
37097
- const isStuck = shallowRef(false);
37098
- const stuckPosition = shallowRef(0);
37099
- const stickyStyles = computed(() => {
37100
- const side = typeof isStuck.value === "boolean" ? "top" : isStuck.value;
37101
- return [isSticky.value ? {
37102
- top: "auto",
37103
- bottom: "auto",
37104
- height: void 0
37105
- } : void 0, isStuck.value ? {
37106
- [side]: convertToUnit(stuckPosition.value)
37107
- } : {
37108
- top: layoutItemStyles.value.top
37109
- }];
37110
- });
37111
- onMounted(() => {
37112
- watch(isSticky, (val2) => {
37113
- if (val2) {
37114
- window.addEventListener("scroll", onScroll, {
37115
- passive: true
37116
- });
37117
- } else {
37118
- window.removeEventListener("scroll", onScroll);
37119
- }
37120
- }, {
37121
- immediate: true
37122
- });
37123
- });
37124
- onBeforeUnmount(() => {
37125
- window.removeEventListener("scroll", onScroll);
37126
- });
37127
- let lastScrollTop = 0;
37128
- function onScroll() {
37129
- const direction = lastScrollTop > window.scrollY ? "up" : "down";
37130
- const rect = rootEl.value.getBoundingClientRect();
37131
- const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0);
37132
- const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop);
37133
- const bottom = rect.height + Math.max(stuckPosition.value, layoutTop) - window.scrollY - window.innerHeight;
37134
- const bodyScroll = parseFloat(getComputedStyle(rootEl.value).getPropertyValue("--v-body-scroll-y")) || 0;
37135
- if (rect.height < window.innerHeight - layoutTop) {
37136
- isStuck.value = "top";
37137
- stuckPosition.value = layoutTop;
37138
- } else if (direction === "up" && isStuck.value === "bottom" || direction === "down" && isStuck.value === "top") {
37139
- stuckPosition.value = window.scrollY + rect.top - bodyScroll;
37140
- isStuck.value = true;
37141
- } else if (direction === "down" && bottom <= 0) {
37142
- stuckPosition.value = 0;
37143
- isStuck.value = "bottom";
37144
- } else if (direction === "up" && top <= 0) {
37145
- if (!bodyScroll) {
37146
- stuckPosition.value = rect.top + top;
37147
- isStuck.value = "top";
37148
- } else if (isStuck.value !== "top") {
37149
- stuckPosition.value = -top + bodyScroll + layoutTop;
37150
- isStuck.value = "top";
37151
- }
37152
- }
37153
- lastScrollTop = window.scrollY;
37154
- }
37155
- return {
37156
- isStuck,
37157
- stickyStyles
37158
- };
37159
- }
37160
- const HORIZON = 100;
37161
- const HISTORY = 20;
37162
- function kineticEnergyToVelocity(work) {
37163
- const sqrt2 = 1.41421356237;
37164
- return (work < 0 ? -1 : 1) * Math.sqrt(Math.abs(work)) * sqrt2;
37165
- }
37166
- function calculateImpulseVelocity(samples) {
37167
- if (samples.length < 2) {
37168
- return 0;
37169
- }
37170
- if (samples.length === 2) {
37171
- if (samples[1].t === samples[0].t) {
37172
- return 0;
37173
- }
37174
- return (samples[1].d - samples[0].d) / (samples[1].t - samples[0].t);
37175
- }
37176
- let work = 0;
37177
- for (let i = samples.length - 1; i > 0; i--) {
37178
- if (samples[i].t === samples[i - 1].t) {
37179
- continue;
37180
- }
37181
- const vprev = kineticEnergyToVelocity(work);
37182
- const vcurr = (samples[i].d - samples[i - 1].d) / (samples[i].t - samples[i - 1].t);
37183
- work += (vcurr - vprev) * Math.abs(vcurr);
37184
- if (i === samples.length - 1) {
37185
- work *= 0.5;
37186
- }
37187
- }
37188
- return kineticEnergyToVelocity(work) * 1e3;
37189
- }
37190
- function useVelocity() {
37191
- const touches = {};
37192
- function addMovement(e) {
37193
- Array.from(e.changedTouches).forEach((touch) => {
37194
- const samples = touches[touch.identifier] ?? (touches[touch.identifier] = new CircularBuffer(HISTORY));
37195
- samples.push([e.timeStamp, touch]);
37196
- });
37197
- }
37198
- function endTouch(e) {
37199
- Array.from(e.changedTouches).forEach((touch) => {
37200
- delete touches[touch.identifier];
37201
- });
37202
- }
37203
- function getVelocity(id) {
37204
- var _a;
37205
- const samples = (_a = touches[id]) == null ? void 0 : _a.values().reverse();
37206
- if (!samples) {
37207
- throw new Error(`No samples for touch id ${id}`);
37208
- }
37209
- const newest = samples[0];
37210
- const x = [];
37211
- const y = [];
37212
- for (const val2 of samples) {
37213
- if (newest[0] - val2[0] > HORIZON) break;
37214
- x.push({
37215
- t: val2[0],
37216
- d: val2[1].clientX
37217
- });
37218
- y.push({
37219
- t: val2[0],
37220
- d: val2[1].clientY
37221
- });
37222
- }
37223
- return {
37224
- x: calculateImpulseVelocity(x),
37225
- y: calculateImpulseVelocity(y),
37226
- get direction() {
37227
- const {
37228
- x: x2,
37229
- y: y2
37230
- } = this;
37231
- const [absX, absY] = [Math.abs(x2), Math.abs(y2)];
37232
- return absX > absY && x2 >= 0 ? "right" : absX > absY && x2 <= 0 ? "left" : absY > absX && y2 >= 0 ? "down" : absY > absX && y2 <= 0 ? "up" : oops$1();
37233
- }
37234
- };
37235
- }
37236
- return {
37237
- addMovement,
37238
- endTouch,
37239
- getVelocity
37240
- };
37241
- }
37242
- function oops$1() {
37243
- throw new Error();
37244
- }
37245
- function useTouch(_ref) {
37246
- let {
37247
- el,
37248
- isActive,
37249
- isTemporary,
37250
- width: width2,
37251
- touchless,
37252
- position: position2
37253
- } = _ref;
37254
- onMounted(() => {
37255
- window.addEventListener("touchstart", onTouchstart, {
37256
- passive: true
37257
- });
37258
- window.addEventListener("touchmove", onTouchmove, {
37259
- passive: false
37260
- });
37261
- window.addEventListener("touchend", onTouchend, {
37262
- passive: true
37263
- });
37264
- });
37265
- onBeforeUnmount(() => {
37266
- window.removeEventListener("touchstart", onTouchstart);
37267
- window.removeEventListener("touchmove", onTouchmove);
37268
- window.removeEventListener("touchend", onTouchend);
37269
- });
37270
- const isHorizontal = computed(() => ["left", "right"].includes(position2.value));
37271
- const {
37272
- addMovement,
37273
- endTouch,
37274
- getVelocity
37275
- } = useVelocity();
37276
- let maybeDragging = false;
37277
- const isDragging = shallowRef(false);
37278
- const dragProgress = shallowRef(0);
37279
- const offset = shallowRef(0);
37280
- let start;
37281
- function getOffset2(pos, active2) {
37282
- return (position2.value === "left" ? pos : position2.value === "right" ? document.documentElement.clientWidth - pos : position2.value === "top" ? pos : position2.value === "bottom" ? document.documentElement.clientHeight - pos : oops()) - (active2 ? width2.value : 0);
37283
- }
37284
- function getProgress(pos) {
37285
- let limit = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
37286
- const progress = position2.value === "left" ? (pos - offset.value) / width2.value : position2.value === "right" ? (document.documentElement.clientWidth - pos - offset.value) / width2.value : position2.value === "top" ? (pos - offset.value) / width2.value : position2.value === "bottom" ? (document.documentElement.clientHeight - pos - offset.value) / width2.value : oops();
37287
- return limit ? clamp(progress) : progress;
37288
- }
37289
- function onTouchstart(e) {
37290
- if (touchless.value) return;
37291
- const touchX = e.changedTouches[0].clientX;
37292
- const touchY = e.changedTouches[0].clientY;
37293
- const touchZone = 25;
37294
- const inTouchZone = position2.value === "left" ? touchX < touchZone : position2.value === "right" ? touchX > document.documentElement.clientWidth - touchZone : position2.value === "top" ? touchY < touchZone : position2.value === "bottom" ? touchY > document.documentElement.clientHeight - touchZone : oops();
37295
- const inElement = isActive.value && (position2.value === "left" ? touchX < width2.value : position2.value === "right" ? touchX > document.documentElement.clientWidth - width2.value : position2.value === "top" ? touchY < width2.value : position2.value === "bottom" ? touchY > document.documentElement.clientHeight - width2.value : oops());
37296
- if (inTouchZone || inElement || isActive.value && isTemporary.value) {
37297
- start = [touchX, touchY];
37298
- offset.value = getOffset2(isHorizontal.value ? touchX : touchY, isActive.value);
37299
- dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY);
37300
- maybeDragging = offset.value > -20 && offset.value < 80;
37301
- endTouch(e);
37302
- addMovement(e);
37303
- }
37304
- }
37305
- function onTouchmove(e) {
37306
- const touchX = e.changedTouches[0].clientX;
37307
- const touchY = e.changedTouches[0].clientY;
37308
- if (maybeDragging) {
37309
- if (!e.cancelable) {
37310
- maybeDragging = false;
37311
- return;
37312
- }
37313
- const dx = Math.abs(touchX - start[0]);
37314
- const dy = Math.abs(touchY - start[1]);
37315
- const thresholdMet = isHorizontal.value ? dx > dy && dx > 3 : dy > dx && dy > 3;
37316
- if (thresholdMet) {
37317
- isDragging.value = true;
37318
- maybeDragging = false;
37319
- } else if ((isHorizontal.value ? dy : dx) > 3) {
37320
- maybeDragging = false;
37321
- }
37322
- }
37323
- if (!isDragging.value) return;
37324
- e.preventDefault();
37325
- addMovement(e);
37326
- const progress = getProgress(isHorizontal.value ? touchX : touchY, false);
37327
- dragProgress.value = Math.max(0, Math.min(1, progress));
37328
- if (progress > 1) {
37329
- offset.value = getOffset2(isHorizontal.value ? touchX : touchY, true);
37330
- } else if (progress < 0) {
37331
- offset.value = getOffset2(isHorizontal.value ? touchX : touchY, false);
37332
- }
37333
- }
37334
- function onTouchend(e) {
37335
- maybeDragging = false;
37336
- if (!isDragging.value) return;
37337
- addMovement(e);
37338
- isDragging.value = false;
37339
- const velocity2 = getVelocity(e.changedTouches[0].identifier);
37340
- const vx = Math.abs(velocity2.x);
37341
- const vy = Math.abs(velocity2.y);
37342
- const thresholdMet = isHorizontal.value ? vx > vy && vx > 400 : vy > vx && vy > 3;
37343
- if (thresholdMet) {
37344
- isActive.value = velocity2.direction === ({
37345
- left: "right",
37346
- right: "left",
37347
- top: "down",
37348
- bottom: "up"
37349
- }[position2.value] || oops());
37350
- } else {
37351
- isActive.value = dragProgress.value > 0.5;
37352
- }
37353
- }
37354
- const dragStyles = computed(() => {
37355
- return isDragging.value ? {
37356
- transform: position2.value === "left" ? `translateX(calc(-100% + ${dragProgress.value * width2.value}px))` : position2.value === "right" ? `translateX(calc(100% - ${dragProgress.value * width2.value}px))` : position2.value === "top" ? `translateY(calc(-100% + ${dragProgress.value * width2.value}px))` : position2.value === "bottom" ? `translateY(calc(100% - ${dragProgress.value * width2.value}px))` : oops(),
37357
- transition: "none"
37358
- } : void 0;
37359
- });
37360
- useToggleScope(isDragging, () => {
37361
- var _a, _b;
37362
- const transform2 = ((_a = el.value) == null ? void 0 : _a.style.transform) ?? null;
37363
- const transition = ((_b = el.value) == null ? void 0 : _b.style.transition) ?? null;
37364
- watchEffect(() => {
37365
- var _a2, _b2, _c, _d;
37366
- (_b2 = el.value) == null ? void 0 : _b2.style.setProperty("transform", ((_a2 = dragStyles.value) == null ? void 0 : _a2.transform) || "none");
37367
- (_d = el.value) == null ? void 0 : _d.style.setProperty("transition", ((_c = dragStyles.value) == null ? void 0 : _c.transition) || null);
37368
- });
37369
- onScopeDispose(() => {
37370
- var _a2, _b2;
37371
- (_a2 = el.value) == null ? void 0 : _a2.style.setProperty("transform", transform2);
37372
- (_b2 = el.value) == null ? void 0 : _b2.style.setProperty("transition", transition);
37373
- });
37374
- });
37375
- return {
37376
- isDragging,
37377
- dragProgress,
37378
- dragStyles
37379
- };
37380
- }
37381
- function oops() {
37382
- throw new Error();
37383
- }
37384
- const locations = ["start", "end", "left", "right", "top", "bottom"];
37385
- const makeVNavigationDrawerProps = propsFactory({
37386
- color: String,
37387
- disableResizeWatcher: Boolean,
37388
- disableRouteWatcher: Boolean,
37389
- expandOnHover: Boolean,
37390
- floating: Boolean,
37391
- modelValue: {
37392
- type: Boolean,
37393
- default: null
37394
- },
37395
- permanent: Boolean,
37396
- rail: {
37397
- type: Boolean,
37398
- default: null
37399
- },
37400
- railWidth: {
37401
- type: [Number, String],
37402
- default: 56
37403
- },
37404
- scrim: {
37405
- type: [Boolean, String],
37406
- default: true
37407
- },
37408
- image: String,
37409
- temporary: Boolean,
37410
- persistent: Boolean,
37411
- touchless: Boolean,
37412
- width: {
37413
- type: [Number, String],
37414
- default: 256
37415
- },
37416
- location: {
37417
- type: String,
37418
- default: "start",
37419
- validator: (value2) => locations.includes(value2)
37420
- },
37421
- sticky: Boolean,
37422
- ...makeBorderProps(),
37423
- ...makeComponentProps(),
37424
- ...makeDelayProps(),
37425
- ...makeDisplayProps({
37426
- mobile: null
37427
- }),
37428
- ...makeElevationProps(),
37429
- ...makeLayoutItemProps(),
37430
- ...makeRoundedProps(),
37431
- ...makeTagProps({
37432
- tag: "nav"
37433
- }),
37434
- ...makeThemeProps()
37435
- }, "VNavigationDrawer");
37436
- const VNavigationDrawer = genericComponent()({
37437
- name: "VNavigationDrawer",
37438
- props: makeVNavigationDrawerProps(),
37439
- emits: {
37440
- "update:modelValue": (val2) => true,
37441
- "update:rail": (val2) => true
37442
- },
37443
- setup(props, _ref) {
37444
- let {
37445
- attrs,
37446
- emit,
37447
- slots
37448
- } = _ref;
37449
- const {
37450
- isRtl
37451
- } = useRtl();
37452
- const {
37453
- themeClasses
37454
- } = provideTheme(props);
37455
- const {
37456
- borderClasses
37457
- } = useBorder(props);
37458
- const {
37459
- backgroundColorClasses,
37460
- backgroundColorStyles
37461
- } = useBackgroundColor(() => props.color);
37462
- const {
37463
- elevationClasses
37464
- } = useElevation(props);
37465
- const {
37466
- displayClasses,
37467
- mobile
37468
- } = useDisplay(props);
37469
- const {
37470
- roundedClasses
37471
- } = useRounded(props);
37472
- const router = useRouter();
37473
- const isActive = useProxiedModel(props, "modelValue", null, (v) => !!v);
37474
- const {
37475
- ssrBootStyles
37476
- } = useSsrBoot();
37477
- const {
37478
- scopeId
37479
- } = useScopeId();
37480
- const rootEl = ref();
37481
- const isHovering = shallowRef(false);
37482
- const {
37483
- runOpenDelay,
37484
- runCloseDelay
37485
- } = useDelay(props, (value2) => {
37486
- isHovering.value = value2;
37487
- });
37488
- const width2 = computed(() => {
37489
- return props.rail && props.expandOnHover && isHovering.value ? Number(props.width) : Number(props.rail ? props.railWidth : props.width);
37490
- });
37491
- const location = computed(() => {
37492
- return toPhysical(props.location, isRtl.value);
37493
- });
37494
- const isPersistent = toRef(() => props.persistent);
37495
- const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary));
37496
- const isSticky = computed(() => props.sticky && !isTemporary.value && location.value !== "bottom");
37497
- useToggleScope(() => props.expandOnHover && props.rail != null, () => {
37498
- watch(isHovering, (val2) => emit("update:rail", !val2));
37499
- });
37500
- useToggleScope(() => !props.disableResizeWatcher, () => {
37501
- watch(isTemporary, (val2) => !props.permanent && nextTick(() => isActive.value = !val2));
37502
- });
37503
- useToggleScope(() => !props.disableRouteWatcher && !!router, () => {
37504
- watch(router.currentRoute, () => isTemporary.value && (isActive.value = false));
37505
- });
37506
- watch(() => props.permanent, (val2) => {
37507
- if (val2) isActive.value = true;
37508
- });
37509
- if (props.modelValue == null && !isTemporary.value) {
37510
- isActive.value = props.permanent || !mobile.value;
37511
- }
37512
- const {
37513
- isDragging,
37514
- dragProgress
37515
- } = useTouch({
37516
- el: rootEl,
37517
- isActive,
37518
- isTemporary,
37519
- width: width2,
37520
- touchless: toRef(() => props.touchless),
37521
- position: location
37522
- });
37523
- const layoutSize = computed(() => {
37524
- const size = isTemporary.value ? 0 : props.rail && props.expandOnHover ? Number(props.railWidth) : width2.value;
37525
- return isDragging.value ? size * dragProgress.value : size;
37526
- });
37527
- const {
37528
- layoutItemStyles,
37529
- layoutItemScrimStyles
37530
- } = useLayoutItem({
37531
- id: props.name,
37532
- order: computed(() => parseInt(props.order, 10)),
37533
- position: location,
37534
- layoutSize,
37535
- elementSize: width2,
37536
- active: readonly(isActive),
37537
- disableTransitions: toRef(() => isDragging.value),
37538
- absolute: computed(() => (
37539
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
37540
- props.absolute || isSticky.value && typeof isStuck.value !== "string"
37541
- ))
37542
- });
37543
- const {
37544
- isStuck,
37545
- stickyStyles
37546
- } = useSticky({
37547
- rootEl,
37548
- isSticky,
37549
- layoutItemStyles
37550
- });
37551
- const scrimColor = useBackgroundColor(() => {
37552
- return typeof props.scrim === "string" ? props.scrim : null;
37553
- });
37554
- const scrimStyles = computed(() => ({
37555
- ...isDragging.value ? {
37556
- opacity: dragProgress.value * 0.2,
37557
- transition: "none"
37558
- } : void 0,
37559
- ...layoutItemScrimStyles.value
37560
- }));
37561
- provideDefaults({
37562
- VList: {
37563
- bgColor: "transparent"
37564
- }
37565
- });
37566
- useRender(() => {
37567
- const hasImage = slots.image || props.image;
37568
- return createElementVNode(Fragment, null, [createVNode(props.tag, mergeProps({
37569
- "ref": rootEl,
37570
- "onMouseenter": runOpenDelay,
37571
- "onMouseleave": runCloseDelay,
37572
- "class": ["v-navigation-drawer", `v-navigation-drawer--${location.value}`, {
37573
- "v-navigation-drawer--expand-on-hover": props.expandOnHover,
37574
- "v-navigation-drawer--floating": props.floating,
37575
- "v-navigation-drawer--is-hovering": isHovering.value,
37576
- "v-navigation-drawer--rail": props.rail,
37577
- "v-navigation-drawer--temporary": isTemporary.value,
37578
- "v-navigation-drawer--persistent": isPersistent.value,
37579
- "v-navigation-drawer--active": isActive.value,
37580
- "v-navigation-drawer--sticky": isSticky.value
37581
- }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],
37582
- "style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
37583
- }, scopeId, attrs), {
37584
- default: () => {
37585
- var _a, _b, _c;
37586
- return [hasImage && createElementVNode("div", {
37587
- "key": "image",
37588
- "class": "v-navigation-drawer__img"
37589
- }, [!slots.image ? createVNode(VImg, {
37590
- "key": "image-img",
37591
- "alt": "",
37592
- "cover": true,
37593
- "height": "inherit",
37594
- "src": props.image
37595
- }, null) : createVNode(VDefaultsProvider, {
37596
- "key": "image-defaults",
37597
- "disabled": !props.image,
37598
- "defaults": {
37599
- VImg: {
37600
- alt: "",
37601
- cover: true,
37602
- height: "inherit",
37603
- src: props.image
37604
- }
37605
- }
37606
- }, slots.image)]), slots.prepend && createElementVNode("div", {
37607
- "class": "v-navigation-drawer__prepend"
37608
- }, [(_a = slots.prepend) == null ? void 0 : _a.call(slots)]), createElementVNode("div", {
37609
- "class": "v-navigation-drawer__content"
37610
- }, [(_b = slots.default) == null ? void 0 : _b.call(slots)]), slots.append && createElementVNode("div", {
37611
- "class": "v-navigation-drawer__append"
37612
- }, [(_c = slots.append) == null ? void 0 : _c.call(slots)])];
37613
- }
37614
- }), createVNode(Transition, {
37615
- "name": "fade-transition"
37616
- }, {
37617
- default: () => [isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && createElementVNode("div", mergeProps({
37618
- "class": ["v-navigation-drawer__scrim", scrimColor.backgroundColorClasses.value],
37619
- "style": [scrimStyles.value, scrimColor.backgroundColorStyles.value],
37620
- "onClick": () => {
37621
- if (isPersistent.value) return;
37622
- isActive.value = false;
37623
- }
37624
- }, scopeId), null)]
37625
- })]);
37626
- });
37627
- return {
37628
- isStuck
37629
- };
37630
- }
37631
- });
37632
- const _hoisted_1$2 = { class: "pa-5" };
37633
- const _hoisted_2$1 = {
37634
- key: 0,
37635
- class: "pa-4 text-center"
37636
- };
37637
- const _sfc_main$2 = /* @__PURE__ */ defineComponent$1({
37638
- __name: "AppSidebar",
37639
- props: {
37640
- sidebarItems: {
37641
- type: Array,
37642
- required: true
37643
- },
37644
- getFilteredSidebarItems: {
37645
- type: Function,
37646
- required: true
37647
- },
37648
- logoComponent: {
37649
- type: Object,
37650
- // Vue component
37651
- required: true
37652
- },
37653
- sidebarDrawer: {
37654
- type: Boolean,
37655
- required: true
37656
- },
37657
- miniSidebar: {
37658
- type: Boolean,
37659
- required: true
37660
- }
37661
- },
37662
- emits: ["update:sidebarDrawer"],
37663
- setup(__props, { emit: __emit }) {
37664
- const props = __props;
37665
- const emit = __emit;
37666
- const sidebarMenu = computed(() => {
37667
- var _a;
37668
- try {
37669
- const filtered = (_a = props.getFilteredSidebarItems) == null ? void 0 : _a.call(props);
37670
- if (Array.isArray(filtered)) return filtered;
37671
- } catch {
37672
- }
37673
- return props.sidebarItems;
37674
- });
37675
- return (_ctx, _cache) => {
37676
- const _component_perfect_scrollbar = resolveComponent("perfect-scrollbar");
37677
- return openBlock(), createBlock(VNavigationDrawer, {
37678
- right: "",
37679
- "model-value": __props.sidebarDrawer,
37680
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => emit("update:sidebarDrawer", $event)),
37681
- elevation: "0",
37682
- "rail-width": "82",
37683
- "mobile-breakpoint": "lg",
37684
- app: "",
37685
- rail: __props.miniSidebar,
37686
- class: normalizeClass(["rightSidebar", { "sidebar-closed": !__props.sidebarDrawer }])
37687
- }, {
37688
- default: withCtx(() => [
37689
- createElementVNode("div", _hoisted_1$2, [
37690
- (openBlock(), createBlock(resolveDynamicComponent(__props.logoComponent)))
37691
- ]),
37692
- createVNode(_component_perfect_scrollbar, { class: "scrollnavbar" }, {
37693
- default: withCtx(() => [
37694
- createVNode(VList, { class: "pa-4" }, {
37695
- default: withCtx(() => [
37696
- (openBlock(true), createElementBlock(Fragment, null, renderList(sidebarMenu.value, (item, i) => {
37697
- return openBlock(), createElementBlock(Fragment, { key: i }, [
37698
- item.header ? (openBlock(), createBlock(_sfc_main$3, {
37699
- key: 0,
37700
- item
37701
- }, null, 8, ["item"])) : item.divider ? (openBlock(), createBlock(VDivider, {
37702
- key: 1,
37703
- class: "my-3"
37704
- })) : item.children ? (openBlock(), createBlock(_sfc_main$4, {
37705
- key: 2,
37706
- item,
37707
- level: 0,
37708
- class: "leftPadding"
37709
- }, null, 8, ["item"])) : (openBlock(), createBlock(_sfc_main$5, {
37710
- key: 3,
37711
- item,
37712
- level: 0,
37713
- class: "leftPadding"
37714
- }, null, 8, ["item"]))
37715
- ], 64);
37716
- }), 128))
37717
- ]),
37718
- _: 1
37719
- }),
37720
- __props.sidebarDrawer ? (openBlock(), createElementBlock("div", _hoisted_2$1, [
37721
- createVNode(VChip, {
37722
- color: "inputBorder",
37723
- size: "small"
37724
- }, {
37725
- default: withCtx(() => [..._cache[1] || (_cache[1] = [
37726
- createTextVNode("نمایشی", -1)
37727
- ])]),
37728
- _: 1
37729
- })
37730
- ])) : createCommentVNode("", true)
37731
- ]),
37732
- _: 1
37733
- })
37734
- ]),
37735
- _: 1
37736
- }, 8, ["model-value", "rail", "class"]);
37737
- };
37738
- }
37739
- });
36952
+ const Loading = /* @__PURE__ */ _export_sfc$1(_sfc_main$3, [["__scopeId", "data-v-9b533ee4"]]);
37740
36953
  const makeVToolbarTitleProps = propsFactory({
37741
36954
  text: String,
37742
36955
  ...makeComponentProps(),
@@ -38119,449 +37332,400 @@ const VAppBar = genericComponent()({
38119
37332
  return {};
38120
37333
  }
38121
37334
  });
38122
- const makeVAppBarNavIconProps = propsFactory({
38123
- ...omit(makeVBtnProps({
38124
- icon: "$menu",
38125
- variant: "text"
38126
- }), ["spaced"])
38127
- }, "VAppBarNavIcon");
38128
- const VAppBarNavIcon = genericComponent()({
38129
- name: "VAppBarNavIcon",
38130
- props: makeVAppBarNavIconProps(),
38131
- setup(props, _ref) {
38132
- let {
38133
- slots
38134
- } = _ref;
38135
- useRender(() => createVNode(VBtn, mergeProps(props, {
38136
- "class": ["v-app-bar-nav-icon"]
38137
- }), slots));
38138
- return {};
38139
- }
38140
- });
38141
- const VAppBarTitle = genericComponent()({
38142
- name: "VAppBarTitle",
38143
- props: makeVToolbarTitleProps(),
38144
- setup(props, _ref) {
38145
- let {
38146
- slots
38147
- } = _ref;
38148
- useRender(() => createVNode(VToolbarTitle, mergeProps(props, {
38149
- "class": "v-app-bar-title"
38150
- }), slots));
38151
- return {};
38152
- }
38153
- });
38154
- const makeVBadgeProps = propsFactory({
38155
- bordered: Boolean,
38156
- color: String,
38157
- content: [Number, String],
38158
- dot: Boolean,
38159
- floating: Boolean,
38160
- icon: IconValue,
38161
- inline: Boolean,
38162
- label: {
38163
- type: String,
38164
- default: "$vuetify.badge"
38165
- },
38166
- max: [Number, String],
38167
- modelValue: {
38168
- type: Boolean,
38169
- default: true
37335
+ const _hoisted_1$2 = {
37336
+ key: 1,
37337
+ class: "header-menu-container"
37338
+ };
37339
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent$1({
37340
+ __name: "AppSidebar",
37341
+ props: {
37342
+ menuOrientation: { type: String, default: "horizontal" },
37343
+ miniSidebar: { type: Boolean, default: false },
37344
+ userInfoLoaded: { type: Boolean, default: false },
37345
+ headerMenu: { type: Array, default: () => [] },
37346
+ // Events sent back to project
37347
+ onToggleMiniSidebar: Function,
37348
+ onToggleCustomizer: Function,
37349
+ onToggleSidebarDrawer: Function
38170
37350
  },
38171
- offsetX: [Number, String],
38172
- offsetY: [Number, String],
38173
- textColor: String,
38174
- ...makeComponentProps(),
38175
- ...makeLocationProps({
38176
- location: "top end"
38177
- }),
38178
- ...makeRoundedProps(),
38179
- ...makeTagProps(),
38180
- ...makeThemeProps(),
38181
- ...makeTransitionProps$1({
38182
- transition: "scale-rotate-transition"
38183
- }),
38184
- ...makeDimensionProps()
38185
- }, "VBadge");
38186
- const VBadge = genericComponent()({
38187
- name: "VBadge",
38188
- inheritAttrs: false,
38189
- props: makeVBadgeProps(),
38190
- setup(props, ctx) {
38191
- const {
38192
- backgroundColorClasses,
38193
- backgroundColorStyles
38194
- } = useBackgroundColor(() => props.color);
38195
- const {
38196
- roundedClasses
38197
- } = useRounded(props);
38198
- const {
38199
- t
38200
- } = useLocale();
38201
- const {
38202
- textColorClasses,
38203
- textColorStyles
38204
- } = useTextColor(() => props.textColor);
38205
- const {
38206
- themeClasses
38207
- } = useTheme();
38208
- const {
38209
- locationStyles
38210
- } = useLocation(props, true, (side) => {
38211
- const base = props.floating ? props.dot ? 2 : 4 : props.dot ? 8 : 12;
38212
- return base + (["top", "bottom"].includes(side) ? Number(props.offsetY ?? 0) : ["left", "right"].includes(side) ? Number(props.offsetX ?? 0) : 0);
37351
+ setup(__props) {
37352
+ const props = __props;
37353
+ ref(false);
37354
+ const computedHeaderMenu = computed(() => {
37355
+ if (props.userInfoLoaded) return props.headerMenu;
37356
+ return props.headerMenu;
38213
37357
  });
38214
- const {
38215
- dimensionStyles
38216
- } = useDimension(props);
38217
- useRender(() => {
38218
- const value2 = Number(props.content);
38219
- const content2 = !props.max || isNaN(value2) ? props.content : value2 <= Number(props.max) ? value2 : `${props.max}+`;
38220
- const [badgeAttrs, attrs] = pickWithRest(ctx.attrs, ["aria-atomic", "aria-label", "aria-live", "role", "title"]);
38221
- return createVNode(props.tag, mergeProps({
38222
- "class": ["v-badge", {
38223
- "v-badge--bordered": props.bordered,
38224
- "v-badge--dot": props.dot,
38225
- "v-badge--floating": props.floating,
38226
- "v-badge--inline": props.inline
38227
- }, props.class]
38228
- }, attrs, {
38229
- "style": props.style
38230
- }), {
38231
- default: () => {
38232
- var _a, _b;
38233
- return [createElementVNode("div", {
38234
- "class": "v-badge__wrapper"
38235
- }, [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a), createVNode(MaybeTransition, {
38236
- "transition": props.transition
37358
+ return (_ctx, _cache) => {
37359
+ return openBlock(), createBlock(VAppBar, {
37360
+ elevation: "0",
37361
+ height: "80"
37362
+ }, {
37363
+ default: withCtx(() => [
37364
+ __props.menuOrientation === "vertical" ? (openBlock(), createBlock(VBtn, {
37365
+ key: 0,
37366
+ class: "hidden-md-and-down text-secondary",
37367
+ color: "lightsecondary",
37368
+ icon: "",
37369
+ rounded: "sm",
37370
+ variant: "flat",
37371
+ size: "small",
37372
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => props.onToggleMiniSidebar && props.onToggleMiniSidebar(), ["stop"]))
38237
37373
  }, {
38238
- default: () => {
38239
- var _a2, _b2;
38240
- return [withDirectives(createElementVNode("span", mergeProps({
38241
- "class": ["v-badge__badge", themeClasses.value, backgroundColorClasses.value, roundedClasses.value, textColorClasses.value],
38242
- "style": [backgroundColorStyles.value, textColorStyles.value, dimensionStyles.value, props.inline ? {} : locationStyles.value],
38243
- "aria-atomic": "true",
38244
- "aria-label": t(props.label, value2),
38245
- "aria-live": "polite",
38246
- "role": "status"
38247
- }, badgeAttrs), [props.dot ? void 0 : ctx.slots.badge ? (_b2 = (_a2 = ctx.slots).badge) == null ? void 0 : _b2.call(_a2) : props.icon ? createVNode(VIcon, {
38248
- "icon": props.icon
38249
- }, null) : content2]), [[vShow, props.modelValue]])];
38250
- }
38251
- })])];
38252
- }
37374
+ default: withCtx(() => [
37375
+ createVNode(unref(IconMenu2), {
37376
+ size: "20",
37377
+ "stroke-width": "1.5"
37378
+ })
37379
+ ]),
37380
+ _: 1
37381
+ })) : createCommentVNode("", true),
37382
+ createVNode(VBtn, {
37383
+ class: "hidden-lg-and-up text-secondary ms-3",
37384
+ color: "lightsecondary",
37385
+ icon: "",
37386
+ rounded: "sm",
37387
+ variant: "flat",
37388
+ size: "small",
37389
+ onClick: _cache[1] || (_cache[1] = withModifiers(($event) => props.onToggleSidebarDrawer && props.onToggleSidebarDrawer(), ["stop"]))
37390
+ }, {
37391
+ default: withCtx(() => [
37392
+ createVNode(unref(IconMenu2), {
37393
+ size: "20",
37394
+ "stroke-width": "1.5"
37395
+ })
37396
+ ]),
37397
+ _: 1
37398
+ }),
37399
+ createVNode(VBtn, {
37400
+ class: "hidden-md-and-down text-secondary mr-2 ml-2",
37401
+ color: "lightsecondary",
37402
+ icon: "",
37403
+ rounded: "sm",
37404
+ variant: "flat",
37405
+ size: "small",
37406
+ onClick: _cache[2] || (_cache[2] = withModifiers(($event) => props.onToggleCustomizer && props.onToggleCustomizer(), ["stop"]))
37407
+ }, {
37408
+ default: withCtx(() => [
37409
+ createVNode(unref(IconPalette), {
37410
+ size: "20",
37411
+ "stroke-width": "1.5"
37412
+ })
37413
+ ]),
37414
+ _: 1
37415
+ }),
37416
+ __props.menuOrientation === "horizontal" ? (openBlock(), createElementBlock("div", _hoisted_1$2, [
37417
+ (openBlock(true), createElementBlock(Fragment, null, renderList(computedHeaderMenu.value, (item, i) => {
37418
+ return openBlock(), createElementBlock(Fragment, { key: i }, [
37419
+ !item.children ? (openBlock(), createBlock(VBtn, {
37420
+ key: 0,
37421
+ to: item.type === "external" ? "" : item.to,
37422
+ href: item.type === "external" ? item.to : "",
37423
+ target: item.type === "external" ? "_blank" : "",
37424
+ variant: "text",
37425
+ disabled: item.disabled,
37426
+ class: "header-menu-btn mr-3",
37427
+ color: "primary"
37428
+ }, {
37429
+ default: withCtx(() => [
37430
+ item.icon ? (openBlock(), createBlock(resolveDynamicComponent(item.icon), {
37431
+ key: 0,
37432
+ class: "mr-2",
37433
+ size: "18"
37434
+ })) : createCommentVNode("", true),
37435
+ createElementVNode("span", null, toDisplayString(item.title), 1)
37436
+ ]),
37437
+ _: 2
37438
+ }, 1032, ["to", "href", "target", "disabled"])) : (openBlock(), createBlock(VMenu, {
37439
+ key: 1,
37440
+ "offset-y": ""
37441
+ }, {
37442
+ activator: withCtx(({ props: mprops }) => [
37443
+ createVNode(VBtn, mergeProps({ ref_for: true }, mprops, {
37444
+ variant: "text",
37445
+ class: "header-menu-btn",
37446
+ color: "primary mr-3"
37447
+ }), {
37448
+ default: withCtx(() => [
37449
+ item.icon ? (openBlock(), createBlock(resolveDynamicComponent(item.icon), {
37450
+ key: 0,
37451
+ size: "18",
37452
+ class: "mr-2"
37453
+ })) : createCommentVNode("", true),
37454
+ createElementVNode("span", null, toDisplayString(item.title), 1),
37455
+ createVNode(unref(IconChevronDown), {
37456
+ size: "18",
37457
+ class: "ml-2"
37458
+ })
37459
+ ]),
37460
+ _: 2
37461
+ }, 1040)
37462
+ ]),
37463
+ default: withCtx(() => [
37464
+ createVNode(VList, null, {
37465
+ default: withCtx(() => [
37466
+ (openBlock(true), createElementBlock(Fragment, null, renderList(item.children, (child, c) => {
37467
+ return openBlock(), createBlock(VListItem, {
37468
+ key: c,
37469
+ to: child.type === "external" ? "" : child.to,
37470
+ href: child.type === "external" ? child.to : "",
37471
+ target: child.type === "external" ? "_blank" : ""
37472
+ }, {
37473
+ default: withCtx(() => [
37474
+ createVNode(VListItemTitle, null, {
37475
+ default: withCtx(() => [
37476
+ createTextVNode(toDisplayString(child.title), 1)
37477
+ ]),
37478
+ _: 2
37479
+ }, 1024)
37480
+ ]),
37481
+ _: 2
37482
+ }, 1032, ["to", "href", "target"]);
37483
+ }), 128))
37484
+ ]),
37485
+ _: 2
37486
+ }, 1024)
37487
+ ]),
37488
+ _: 2
37489
+ }, 1024))
37490
+ ], 64);
37491
+ }), 128))
37492
+ ])) : createCommentVNode("", true),
37493
+ createVNode(VSpacer),
37494
+ renderSlot(_ctx.$slots, "notifications", {}, () => [
37495
+ createVNode(VBtn, {
37496
+ icon: "",
37497
+ class: "text-secondary mx-3",
37498
+ color: "lightsecondary",
37499
+ rounded: "sm",
37500
+ size: "small",
37501
+ variant: "flat"
37502
+ }, {
37503
+ default: withCtx(() => [
37504
+ createVNode(unref(IconBell), {
37505
+ "stroke-width": "1.5",
37506
+ size: "20"
37507
+ })
37508
+ ]),
37509
+ _: 1
37510
+ })
37511
+ ], true),
37512
+ renderSlot(_ctx.$slots, "profile", {}, () => [
37513
+ createVNode(VBtn, {
37514
+ class: "profileBtn text-primary",
37515
+ color: "lightprimary",
37516
+ variant: "flat",
37517
+ rounded: "pill"
37518
+ }, {
37519
+ default: withCtx(() => [
37520
+ createVNode(unref(IconSettings))
37521
+ ]),
37522
+ _: 1
37523
+ })
37524
+ ], true)
37525
+ ]),
37526
+ _: 3
38253
37527
  });
38254
- });
38255
- return {};
37528
+ };
38256
37529
  }
38257
37530
  });
37531
+ const AppSidebar = /* @__PURE__ */ _export_sfc$1(_sfc_main$2, [["__scopeId", "data-v-f9cc73a9"]]);
38258
37532
  const _hoisted_1$1 = {
38259
- key: 0,
38260
- class: "text-h6"
38261
- };
38262
- const _hoisted_2 = {
38263
37533
  key: 1,
38264
- class: "text-caption text-medium-emphasis"
37534
+ class: "header-menu-container"
38265
37535
  };
38266
- const _hoisted_3 = { key: 2 };
38267
- const _hoisted_4 = { key: 2 };
38268
- const _hoisted_5 = { key: 2 };
38269
37536
  const _sfc_main$1 = /* @__PURE__ */ defineComponent$1({
38270
37537
  __name: "AppHeader",
38271
37538
  props: {
38272
- title: {},
38273
- subtitle: {},
38274
- class: {},
38275
- ariaLabel: { default: "Application header" },
38276
- showSidebarToggle: { type: Boolean, default: true },
38277
- showSearch: { type: Boolean, default: false },
38278
- searchPlaceholder: { default: "جستجو..." },
38279
- searchValue: {},
38280
- showNotifications: { type: Boolean, default: false },
38281
- notificationCount: { default: 0 },
38282
- showProfile: { type: Boolean, default: false },
38283
- profileAvatar: {},
38284
- profileName: {},
38285
- profileMenu: { default: () => [] },
38286
- actions: { default: () => [] },
38287
- color: { default: "surface" },
38288
- elevation: { default: 1 },
38289
- height: { default: 70 },
38290
- hideDefaultTitle: { type: Boolean, default: false }
37539
+ menuOrientation: { type: String, default: "horizontal" },
37540
+ miniSidebar: { type: Boolean, default: false },
37541
+ userInfoLoaded: { type: Boolean, default: false },
37542
+ headerMenu: { type: Array, default: () => [] },
37543
+ // Events sent back to project
37544
+ onToggleMiniSidebar: Function,
37545
+ onToggleCustomizer: Function,
37546
+ onToggleSidebarDrawer: Function
38291
37547
  },
38292
- emits: ["update:searchValue", "toggle-sidebar", "search"],
38293
- setup(__props, { emit: __emit }) {
37548
+ setup(__props) {
38294
37549
  const props = __props;
38295
- const emit = __emit;
38296
- const customizer = useCustomizerStore();
38297
- const searchInput = computed({
38298
- get: () => props.searchValue || "",
38299
- set: (val2) => {
38300
- emit("update:searchValue", val2);
38301
- emit("search", val2);
38302
- }
37550
+ ref(false);
37551
+ const computedHeaderMenu = computed(() => {
37552
+ if (props.userInfoLoaded) return props.headerMenu;
37553
+ return props.headerMenu;
38303
37554
  });
38304
- const toggleSidebar = () => {
38305
- customizer.SET_SIDEBAR_DRAWER();
38306
- emit("toggle-sidebar");
38307
- };
38308
- const router = useRouter$1();
38309
- const profileMenuItems = computed(
38310
- () => props.profileMenu.map((item) => ({
38311
- ...item,
38312
- prependIcon: item.icon,
38313
- onClick: item.action || (() => {
38314
- if (item.to) {
38315
- router.push(item.to);
38316
- } else if (item.href) {
38317
- window.open(item.href, "_blank");
38318
- }
38319
- })
38320
- }))
38321
- );
38322
37555
  return (_ctx, _cache) => {
38323
37556
  return openBlock(), createBlock(VAppBar, {
38324
- color: __props.color,
38325
- elevation: __props.elevation,
38326
- height: __props.height,
38327
- class: normalizeClass(["app-header topbar", props.class]),
38328
- "aria-label": __props.ariaLabel,
38329
- fixed: ""
37557
+ elevation: "0",
37558
+ height: "80"
38330
37559
  }, {
38331
37560
  default: withCtx(() => [
38332
- renderSlot(_ctx.$slots, "left", {}, void 0, true),
38333
- __props.showSidebarToggle ? (openBlock(), createBlock(VAppBarNavIcon, {
37561
+ __props.menuOrientation === "vertical" ? (openBlock(), createBlock(VBtn, {
38334
37562
  key: 0,
38335
- variant: "text",
38336
- onClick: toggleSidebar
38337
- })) : createCommentVNode("", true),
38338
- renderSlot(_ctx.$slots, "title", {}, () => [
38339
- !__props.hideDefaultTitle && (__props.title || __props.subtitle) ? (openBlock(), createBlock(VAppBarTitle, {
38340
- key: 0,
38341
- class: "d-flex flex-column"
38342
- }, {
38343
- default: withCtx(() => [
38344
- __props.title ? (openBlock(), createElementBlock("span", _hoisted_1$1, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
38345
- __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)
38346
- ]),
38347
- _: 1
38348
- })) : createCommentVNode("", true)
38349
- ], true),
38350
- createVNode(VSpacer),
38351
- renderSlot(_ctx.$slots, "center", {}, void 0, true),
38352
- __props.showSearch ? (openBlock(), createBlock(VTextField, {
38353
- key: 1,
38354
- modelValue: searchInput.value,
38355
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchInput.value = $event),
38356
- placeholder: __props.searchPlaceholder,
38357
- density: "compact",
38358
- variant: "outlined",
38359
- "hide-details": "",
38360
- "prepend-inner-icon": "mdi-magnify",
38361
- class: "search-bar",
38362
- style: { "max-width": "400px" }
38363
- }, null, 8, ["modelValue", "placeholder"])) : createCommentVNode("", true),
38364
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.actions, (action, index2) => {
38365
- return openBlock(), createElementBlock(Fragment, { key: index2 }, [
38366
- action.tooltip ? (openBlock(), createBlock(VTooltip, {
38367
- key: 0,
38368
- text: action.tooltip,
38369
- location: "bottom"
38370
- }, {
38371
- activator: withCtx(({ props: tooltipProps }) => [
38372
- createVNode(VBtn, mergeProps({ ref_for: true }, tooltipProps, {
38373
- icon: action.icon,
38374
- color: action.color || "primary",
38375
- variant: action.variant || "text",
38376
- size: action.size || "default",
38377
- disabled: action.disabled,
38378
- class: "ms-2",
38379
- onClick: action.onClick
38380
- }), {
38381
- default: withCtx(() => [
38382
- action.badge ? (openBlock(), createBlock(VBadge, {
38383
- key: 0,
38384
- content: action.badge,
38385
- color: action.badgeColor || "error",
38386
- overlap: ""
38387
- }, {
38388
- default: withCtx(() => [
38389
- action.icon ? (openBlock(), createBlock(VIcon, {
38390
- key: 0,
38391
- icon: action.icon
38392
- }, null, 8, ["icon"])) : createCommentVNode("", true)
38393
- ]),
38394
- _: 2
38395
- }, 1032, ["content", "color"])) : action.icon ? (openBlock(), createBlock(VIcon, {
38396
- key: 1,
38397
- icon: action.icon
38398
- }, null, 8, ["icon"])) : createCommentVNode("", true),
38399
- action.label && !action.icon ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(action.label), 1)) : createCommentVNode("", true)
38400
- ]),
38401
- _: 2
38402
- }, 1040, ["icon", "color", "variant", "size", "disabled", "onClick"])
38403
- ]),
38404
- _: 2
38405
- }, 1032, ["text"])) : (openBlock(), createBlock(VBtn, {
38406
- key: 1,
38407
- icon: action.icon,
38408
- color: action.color || "primary",
38409
- variant: action.variant || "text",
38410
- size: action.size || "default",
38411
- disabled: action.disabled,
38412
- class: "ms-2",
38413
- onClick: action.onClick
38414
- }, {
38415
- default: withCtx(() => [
38416
- action.badge ? (openBlock(), createBlock(VBadge, {
38417
- key: 0,
38418
- content: action.badge,
38419
- color: action.badgeColor || "error",
38420
- overlap: ""
38421
- }, {
38422
- default: withCtx(() => [
38423
- action.icon ? (openBlock(), createBlock(VIcon, {
38424
- key: 0,
38425
- icon: action.icon
38426
- }, null, 8, ["icon"])) : createCommentVNode("", true)
38427
- ]),
38428
- _: 2
38429
- }, 1032, ["content", "color"])) : action.icon ? (openBlock(), createBlock(VIcon, {
38430
- key: 1,
38431
- icon: action.icon
38432
- }, null, 8, ["icon"])) : createCommentVNode("", true),
38433
- action.label && !action.icon ? (openBlock(), createElementBlock("span", _hoisted_4, toDisplayString(action.label), 1)) : createCommentVNode("", true)
38434
- ]),
38435
- _: 2
38436
- }, 1032, ["icon", "color", "variant", "size", "disabled", "onClick"]))
38437
- ], 64);
38438
- }), 128)),
38439
- renderSlot(_ctx.$slots, "right", {}, void 0, true),
38440
- __props.showNotifications ? (openBlock(), createBlock(VMenu, {
38441
- key: 2,
38442
- location: "bottom end",
38443
- "offset-y": ""
37563
+ class: "hidden-md-and-down text-secondary",
37564
+ color: "lightsecondary",
37565
+ icon: "",
37566
+ rounded: "sm",
37567
+ variant: "flat",
37568
+ size: "small",
37569
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => props.onToggleMiniSidebar && props.onToggleMiniSidebar(), ["stop"]))
38444
37570
  }, {
38445
- activator: withCtx(({ props: menuProps }) => [
38446
- createVNode(VBtn, mergeProps(menuProps, {
38447
- icon: "",
38448
- variant: "text",
38449
- class: "profileBtn"
38450
- }), {
38451
- default: withCtx(() => [
38452
- createVNode(VBadge, {
38453
- content: __props.notificationCount > 0 ? __props.notificationCount : void 0,
38454
- color: "error",
38455
- overlap: ""
38456
- }, {
38457
- default: withCtx(() => [
38458
- createVNode(VIcon, { icon: "mdi-bell-outline" })
38459
- ]),
38460
- _: 1
38461
- }, 8, ["content"])
38462
- ]),
38463
- _: 1
38464
- }, 16)
38465
- ]),
38466
37571
  default: withCtx(() => [
38467
- createVNode(VList, null, {
38468
- default: withCtx(() => [
38469
- createVNode(VListItem, null, {
38470
- default: withCtx(() => [
38471
- createVNode(VListItemTitle, null, {
38472
- default: withCtx(() => [..._cache[1] || (_cache[1] = [
38473
- createTextVNode("اعلان‌ها", -1)
38474
- ])]),
38475
- _: 1
38476
- })
38477
- ]),
38478
- _: 1
38479
- }),
38480
- createVNode(VDivider),
38481
- createVNode(VListItem, null, {
38482
- default: withCtx(() => [
38483
- createVNode(VListItemTitle, null, {
38484
- default: withCtx(() => [..._cache[2] || (_cache[2] = [
38485
- createTextVNode("هیچ اعلان جدیدی وجود ندارد", -1)
38486
- ])]),
38487
- _: 1
38488
- })
38489
- ]),
38490
- _: 1
38491
- })
38492
- ]),
38493
- _: 1
37572
+ createVNode(unref(IconMenu2), {
37573
+ size: "20",
37574
+ "stroke-width": "1.5"
38494
37575
  })
38495
37576
  ]),
38496
37577
  _: 1
38497
37578
  })) : createCommentVNode("", true),
38498
- __props.showProfile ? (openBlock(), createBlock(VMenu, {
38499
- key: 3,
38500
- location: "bottom end",
38501
- "offset-y": ""
37579
+ createVNode(VBtn, {
37580
+ class: "hidden-lg-and-up text-secondary ms-3",
37581
+ color: "lightsecondary",
37582
+ icon: "",
37583
+ rounded: "sm",
37584
+ variant: "flat",
37585
+ size: "small",
37586
+ onClick: _cache[1] || (_cache[1] = withModifiers(($event) => props.onToggleSidebarDrawer && props.onToggleSidebarDrawer(), ["stop"]))
38502
37587
  }, {
38503
- activator: withCtx(({ props: menuProps }) => [
38504
- createVNode(VBtn, mergeProps(menuProps, {
38505
- icon: !__props.profileName && !__props.profileAvatar,
38506
- variant: "text",
38507
- class: "profileBtn"
38508
- }), {
38509
- default: withCtx(() => [
38510
- __props.profileAvatar ? (openBlock(), createBlock(VAvatar, {
38511
- key: 0,
38512
- size: "32"
38513
- }, {
38514
- default: withCtx(() => [
38515
- createVNode(VImg, {
38516
- src: __props.profileAvatar,
38517
- alt: __props.profileName || "Profile"
38518
- }, null, 8, ["src", "alt"])
38519
- ]),
38520
- _: 1
38521
- })) : !__props.profileName ? (openBlock(), createBlock(VIcon, {
38522
- key: 1,
38523
- icon: "mdi-account-circle"
38524
- })) : (openBlock(), createElementBlock("span", _hoisted_5, toDisplayString(__props.profileName), 1))
38525
- ]),
38526
- _: 1
38527
- }, 16, ["icon"])
37588
+ default: withCtx(() => [
37589
+ createVNode(unref(IconMenu2), {
37590
+ size: "20",
37591
+ "stroke-width": "1.5"
37592
+ })
38528
37593
  ]),
37594
+ _: 1
37595
+ }),
37596
+ createVNode(VBtn, {
37597
+ class: "hidden-md-and-down text-secondary mr-2 ml-2",
37598
+ color: "lightsecondary",
37599
+ icon: "",
37600
+ rounded: "sm",
37601
+ variant: "flat",
37602
+ size: "small",
37603
+ onClick: _cache[2] || (_cache[2] = withModifiers(($event) => props.onToggleCustomizer && props.onToggleCustomizer(), ["stop"]))
37604
+ }, {
38529
37605
  default: withCtx(() => [
38530
- profileMenuItems.value.length > 0 ? (openBlock(), createBlock(VList, { key: 0 }, {
38531
- default: withCtx(() => [
38532
- (openBlock(true), createElementBlock(Fragment, null, renderList(profileMenuItems.value, (item, index2) => {
38533
- return openBlock(), createBlock(VListItem, {
38534
- key: index2,
38535
- "prepend-icon": item.icon,
38536
- to: item.to,
38537
- href: item.href,
38538
- onClick: item.onClick
38539
- }, {
37606
+ createVNode(unref(IconPalette), {
37607
+ size: "20",
37608
+ "stroke-width": "1.5"
37609
+ })
37610
+ ]),
37611
+ _: 1
37612
+ }),
37613
+ __props.menuOrientation === "horizontal" ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
37614
+ (openBlock(true), createElementBlock(Fragment, null, renderList(computedHeaderMenu.value, (item, i) => {
37615
+ return openBlock(), createElementBlock(Fragment, { key: i }, [
37616
+ !item.children ? (openBlock(), createBlock(VBtn, {
37617
+ key: 0,
37618
+ to: item.type === "external" ? "" : item.to,
37619
+ href: item.type === "external" ? item.to : "",
37620
+ target: item.type === "external" ? "_blank" : "",
37621
+ variant: "text",
37622
+ disabled: item.disabled,
37623
+ class: "header-menu-btn mr-3",
37624
+ color: "primary"
37625
+ }, {
37626
+ default: withCtx(() => [
37627
+ item.icon ? (openBlock(), createBlock(resolveDynamicComponent(item.icon), {
37628
+ key: 0,
37629
+ class: "mr-2",
37630
+ size: "18"
37631
+ })) : createCommentVNode("", true),
37632
+ createElementVNode("span", null, toDisplayString(item.title), 1)
37633
+ ]),
37634
+ _: 2
37635
+ }, 1032, ["to", "href", "target", "disabled"])) : (openBlock(), createBlock(VMenu, {
37636
+ key: 1,
37637
+ "offset-y": ""
37638
+ }, {
37639
+ activator: withCtx(({ props: mprops }) => [
37640
+ createVNode(VBtn, mergeProps({ ref_for: true }, mprops, {
37641
+ variant: "text",
37642
+ class: "header-menu-btn",
37643
+ color: "primary mr-3"
37644
+ }), {
38540
37645
  default: withCtx(() => [
38541
- createVNode(VListItemTitle, null, {
38542
- default: withCtx(() => [
38543
- createTextVNode(toDisplayString(item.title), 1)
38544
- ]),
38545
- _: 2
38546
- }, 1024),
38547
- item.divider ? (openBlock(), createBlock(VDivider, { key: 0 })) : createCommentVNode("", true)
37646
+ item.icon ? (openBlock(), createBlock(resolveDynamicComponent(item.icon), {
37647
+ key: 0,
37648
+ size: "18",
37649
+ class: "mr-2"
37650
+ })) : createCommentVNode("", true),
37651
+ createElementVNode("span", null, toDisplayString(item.title), 1),
37652
+ createVNode(unref(IconChevronDown), {
37653
+ size: "18",
37654
+ class: "ml-2"
37655
+ })
38548
37656
  ]),
38549
37657
  _: 2
38550
- }, 1032, ["prepend-icon", "to", "href", "onClick"]);
38551
- }), 128))
38552
- ]),
38553
- _: 1
38554
- })) : createCommentVNode("", true)
38555
- ]),
38556
- _: 1
38557
- })) : createCommentVNode("", true)
37658
+ }, 1040)
37659
+ ]),
37660
+ default: withCtx(() => [
37661
+ createVNode(VList, null, {
37662
+ default: withCtx(() => [
37663
+ (openBlock(true), createElementBlock(Fragment, null, renderList(item.children, (child, c) => {
37664
+ return openBlock(), createBlock(VListItem, {
37665
+ key: c,
37666
+ to: child.type === "external" ? "" : child.to,
37667
+ href: child.type === "external" ? child.to : "",
37668
+ target: child.type === "external" ? "_blank" : ""
37669
+ }, {
37670
+ default: withCtx(() => [
37671
+ createVNode(VListItemTitle, null, {
37672
+ default: withCtx(() => [
37673
+ createTextVNode(toDisplayString(child.title), 1)
37674
+ ]),
37675
+ _: 2
37676
+ }, 1024)
37677
+ ]),
37678
+ _: 2
37679
+ }, 1032, ["to", "href", "target"]);
37680
+ }), 128))
37681
+ ]),
37682
+ _: 2
37683
+ }, 1024)
37684
+ ]),
37685
+ _: 2
37686
+ }, 1024))
37687
+ ], 64);
37688
+ }), 128))
37689
+ ])) : createCommentVNode("", true),
37690
+ createVNode(VSpacer),
37691
+ renderSlot(_ctx.$slots, "notifications", {}, () => [
37692
+ createVNode(VBtn, {
37693
+ icon: "",
37694
+ class: "text-secondary mx-3",
37695
+ color: "lightsecondary",
37696
+ rounded: "sm",
37697
+ size: "small",
37698
+ variant: "flat"
37699
+ }, {
37700
+ default: withCtx(() => [
37701
+ createVNode(unref(IconBell), {
37702
+ "stroke-width": "1.5",
37703
+ size: "20"
37704
+ })
37705
+ ]),
37706
+ _: 1
37707
+ })
37708
+ ], true),
37709
+ renderSlot(_ctx.$slots, "profile", {}, () => [
37710
+ createVNode(VBtn, {
37711
+ class: "profileBtn text-primary",
37712
+ color: "lightprimary",
37713
+ variant: "flat",
37714
+ rounded: "pill"
37715
+ }, {
37716
+ default: withCtx(() => [
37717
+ createVNode(unref(IconSettings))
37718
+ ]),
37719
+ _: 1
37720
+ })
37721
+ ], true)
38558
37722
  ]),
38559
37723
  _: 3
38560
- }, 8, ["color", "elevation", "height", "class", "aria-label"]);
37724
+ });
38561
37725
  };
38562
37726
  }
38563
37727
  });
38564
- const AppHeader = /* @__PURE__ */ _export_sfc$1(_sfc_main$1, [["__scopeId", "data-v-b45b815e"]]);
37728
+ const AppHeader = /* @__PURE__ */ _export_sfc$1(_sfc_main$1, [["__scopeId", "data-v-068c6b7b"]]);
38565
37729
  const makeVAppProps = propsFactory({
38566
37730
  ...makeComponentProps(),
38567
37731
  ...omit(makeLayoutProps(), ["fullHeight"]),
@@ -38682,7 +37846,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent$1({
38682
37846
  return openBlock(), createBlock(VApp, null, {
38683
37847
  default: withCtx(() => [
38684
37848
  createVNode(AppHeader, mergeProps(__props.header, { class: "app-header" }), null, 16),
38685
- createVNode(_sfc_main$2, mergeProps(__props.sidebar, { class: "app-sidebar" }), null, 16),
37849
+ createVNode(AppSidebar, mergeProps(__props.sidebar, { class: "app-sidebar" }), null, 16),
38686
37850
  createVNode(VMain, null, {
38687
37851
  default: withCtx(() => [
38688
37852
  createElementVNode("div", _hoisted_1, [
@@ -38697,7 +37861,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent$1({
38697
37861
  };
38698
37862
  }
38699
37863
  });
38700
- const AppLayout = /* @__PURE__ */ _export_sfc$1(_sfc_main, [["__scopeId", "data-v-106317c7"]]);
37864
+ const AppLayout = /* @__PURE__ */ _export_sfc$1(_sfc_main, [["__scopeId", "data-v-f81b2c63"]]);
38701
37865
  function useDataTable(options) {
38702
37866
  const items = ref([]);
38703
37867
  const loading = ref(false);
@@ -39260,28 +38424,28 @@ const index = {
39260
38424
  export {
39261
38425
  AppHeader,
39262
38426
  AppLayout,
39263
- _sfc_main$2 as AppSidebar,
38427
+ AppSidebar,
39264
38428
  AppStepper,
39265
- _sfc_main$l as BaseBreadcrumb,
39266
- _sfc_main$k as BaseIcon,
38429
+ _sfc_main$i as BaseBreadcrumb,
38430
+ _sfc_main$h as BaseIcon,
39267
38431
  BooleanEnum,
39268
38432
  BooleanEnumOptions,
39269
- _sfc_main$j as ConfirmDialog,
38433
+ _sfc_main$g as ConfirmDialog,
39270
38434
  CustomAutocomplete,
39271
- _sfc_main$f as CustomDataTable,
38435
+ _sfc_main$c as CustomDataTable,
39272
38436
  DateConverter,
39273
38437
  DescriptionInput,
39274
38438
  DigitLimit,
39275
38439
  DownloadButton,
39276
38440
  GreetingUtils,
39277
38441
  Loading,
39278
- _sfc_main$h as MoneyInput,
38442
+ _sfc_main$e as MoneyInput,
39279
38443
  NationalCodeValidator,
39280
38444
  PdfViewer,
39281
38445
  ShamsiDatePicker,
39282
- _sfc_main$b as UiChildCard,
39283
- _sfc_main$a as UiParentCard,
39284
- _sfc_main$9 as VPriceTextField,
38446
+ _sfc_main$8 as UiChildCard,
38447
+ _sfc_main$7 as UiParentCard,
38448
+ _sfc_main$6 as VPriceTextField,
39285
38449
  configureAuth,
39286
38450
  configureAxiosInstance,
39287
38451
  index as default,