@amirjalili1374/ui-kit 1.4.13 → 1.4.16

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
@@ -17143,6 +17143,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
17143
17143
  ref(null);
17144
17144
  const filterDialog = ref(false);
17145
17145
  const filterModel = ref({});
17146
+ const filterOperatorModel = ref({});
17146
17147
  ref(null);
17147
17148
  const isLoadingMore = ref(false);
17148
17149
  const hasMore = ref(true);
@@ -17474,7 +17475,58 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
17474
17475
  });
17475
17476
  return model;
17476
17477
  });
17477
- const hasFilterComponent = computed(() => {
17478
+ const FILTER_OPERATOR_LABELS = {
17479
+ equals: "برابر با",
17480
+ notEquals: "مخالف با",
17481
+ contains: "شامل",
17482
+ doesNotContain: "شامل نباشد",
17483
+ in: "یکی از",
17484
+ specified: "خالی / غیر خالی",
17485
+ greaterThan: "بزرگتر از",
17486
+ lessThan: "کوچکتر از",
17487
+ greaterThanOrEqual: "بزرگتر یا مساوی",
17488
+ lessThanOrEqual: "کوچکتر یا مساوی"
17489
+ };
17490
+ const getHeaderFilterOperators = (header) => {
17491
+ const configured = header.filterOperators;
17492
+ const effective = configured && configured.length > 0 ? configured : ["equals", "contains", "in"];
17493
+ return effective.map((op) => ({
17494
+ value: op,
17495
+ label: FILTER_OPERATOR_LABELS[op] || op
17496
+ }));
17497
+ };
17498
+ const getDefaultFilterOperator = (header) => {
17499
+ const configured = header.defaultFilterOperator;
17500
+ return configured || "equals";
17501
+ };
17502
+ const hasFilterOperators = (header) => {
17503
+ const operators = header.filterOperators;
17504
+ return Array.isArray(operators) && operators.length > 0;
17505
+ };
17506
+ const buildFilterParams = () => {
17507
+ if (props.filterComponent) {
17508
+ return cleanFilterModel.value;
17509
+ }
17510
+ const base = {};
17511
+ Object.entries(cleanFilterModel.value).forEach(([key2, value2]) => {
17512
+ const header = props.headers.find((h2) => h2.key === key2);
17513
+ if (header && hasFilterOperators(header)) {
17514
+ const op = filterOperatorModel.value[key2] || getDefaultFilterOperator(header);
17515
+ const paramKey = `${key2}.${op}`;
17516
+ if (op === "in" && Array.isArray(value2)) {
17517
+ base[paramKey] = value2.join(",");
17518
+ } else if (op === "specified") {
17519
+ base[paramKey] = Boolean(value2);
17520
+ } else {
17521
+ base[paramKey] = value2;
17522
+ }
17523
+ } else {
17524
+ base[key2] = value2;
17525
+ }
17526
+ });
17527
+ return base;
17528
+ };
17529
+ computed(() => {
17478
17530
  return !!props.filterComponent;
17479
17531
  });
17480
17532
  const fetchData = async (queryParams) => {
@@ -17482,7 +17534,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
17482
17534
  loading.value = true;
17483
17535
  error.value = null;
17484
17536
  let params = {
17485
- ...cleanFilterModel.value,
17537
+ ...buildFilterParams(),
17486
17538
  ...props.queryParams
17487
17539
  };
17488
17540
  if (queryParams) {
@@ -17544,7 +17596,9 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
17544
17596
  watch(
17545
17597
  [cleanFilterModel],
17546
17598
  () => {
17547
- debouncedFetchData();
17599
+ if (!props.filterComponent) {
17600
+ debouncedFetchData();
17601
+ }
17548
17602
  },
17549
17603
  { deep: true }
17550
17604
  );
@@ -18016,14 +18070,40 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18016
18070
  snackbar.value = true;
18017
18071
  }
18018
18072
  };
18073
+ const applyFilter = () => {
18074
+ currentPage.value = 1;
18075
+ debouncedFetchData();
18076
+ filterDialog.value = false;
18077
+ };
18078
+ const resetFilter = () => {
18079
+ filterModel.value = {};
18080
+ filterOperatorModel.value = {};
18081
+ currentPage.value = 1;
18082
+ debouncedFetchData();
18083
+ filterDialog.value = false;
18084
+ };
18019
18085
  const handleFilterApply = (filterData) => {
18020
18086
  filterModel.value = filterData;
18021
18087
  currentPage.value = 1;
18022
- debouncedFetchData();
18088
+ fetchData();
18023
18089
  filterDialog.value = false;
18024
18090
  };
18091
+ watch(
18092
+ () => filterDialog.value,
18093
+ (isOpen) => {
18094
+ if (!isOpen) return;
18095
+ formHeaders.value.forEach((header) => {
18096
+ if (hasFilterOperators(header)) {
18097
+ const key2 = resolveHeaderKey(header);
18098
+ if (!filterOperatorModel.value[key2]) {
18099
+ filterOperatorModel.value[key2] = getDefaultFilterOperator(header);
18100
+ }
18101
+ }
18102
+ });
18103
+ }
18104
+ );
18025
18105
  return (_ctx, _cache) => {
18026
- var _a;
18106
+ var _a, _b;
18027
18107
  return openBlock(), createElementBlock(Fragment, null, [
18028
18108
  props.title ? (openBlock(), createElementBlock("div", _hoisted_1$9, [
18029
18109
  createElementVNode("h3", _hoisted_2$5, toDisplayString(props.title), 1)
@@ -18035,17 +18115,17 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18035
18115
  class: "me-2",
18036
18116
  onClick: _cache[0] || (_cache[0] = ($event) => openDialog())
18037
18117
  }, {
18038
- default: withCtx(() => [..._cache[23] || (_cache[23] = [
18118
+ default: withCtx(() => [..._cache[22] || (_cache[22] = [
18039
18119
  createTextVNode("ایجاد ✅", -1)
18040
18120
  ])]),
18041
18121
  _: 1
18042
18122
  })) : createCommentVNode("", true),
18043
- hasFilterComponent.value ? (openBlock(), createBlock(VBtn, {
18123
+ ((_b = props.actions) == null ? void 0 : _b.includes("filter")) ? (openBlock(), createBlock(VBtn, {
18044
18124
  key: 1,
18045
18125
  class: "me-2",
18046
18126
  onClick: _cache[1] || (_cache[1] = ($event) => filterDialog.value = true)
18047
18127
  }, {
18048
- default: withCtx(() => [..._cache[24] || (_cache[24] = [
18128
+ default: withCtx(() => [..._cache[23] || (_cache[23] = [
18049
18129
  createTextVNode("فیلتر 🔍", -1)
18050
18130
  ])]),
18051
18131
  _: 1
@@ -18056,7 +18136,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18056
18136
  onClick: unref(debouncedFetchData),
18057
18137
  loading: loading.value
18058
18138
  }, {
18059
- default: withCtx(() => [..._cache[25] || (_cache[25] = [
18139
+ default: withCtx(() => [..._cache[24] || (_cache[24] = [
18060
18140
  createTextVNode("بروزرسانی 🔄", -1)
18061
18141
  ])]),
18062
18142
  _: 1
@@ -18077,7 +18157,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18077
18157
  class: "me-2",
18078
18158
  onClick: clearSelection
18079
18159
  }, {
18080
- default: withCtx(() => [..._cache[26] || (_cache[26] = [
18160
+ default: withCtx(() => [..._cache[25] || (_cache[25] = [
18081
18161
  createTextVNode(" پاک کردن انتخاب ", -1)
18082
18162
  ])]),
18083
18163
  _: 1
@@ -18097,13 +18177,13 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18097
18177
  onClick: openGroupDeleteDialog
18098
18178
  }, {
18099
18179
  default: withCtx(() => [
18100
- _cache[27] || (_cache[27] = createElementVNode("span", { class: "me-1" }, "🗑️", -1)),
18180
+ _cache[26] || (_cache[26] = createElementVNode("span", { class: "me-1" }, "🗑️", -1)),
18101
18181
  createTextVNode(" حذف گروهی (" + toDisplayString(selectedCount.value) + ") ", 1)
18102
18182
  ]),
18103
18183
  _: 1
18104
18184
  })) : createCommentVNode("", true),
18105
18185
  props.bulkMode ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(validSelectedItems.value, (item) => {
18106
- var _a2, _b, _c;
18186
+ var _a2, _b2, _c;
18107
18187
  return openBlock(), createElementBlock(Fragment, {
18108
18188
  key: getUniqueValue(item)
18109
18189
  }, [
@@ -18114,20 +18194,20 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18114
18194
  class: "me-2",
18115
18195
  onClick: ($event) => openDialog(item)
18116
18196
  }, {
18117
- default: withCtx(() => [..._cache[28] || (_cache[28] = [
18197
+ default: withCtx(() => [..._cache[27] || (_cache[27] = [
18118
18198
  createElementVNode("span", { class: "me-1" }, "✏️", -1),
18119
18199
  createTextVNode(" ویرایش ", -1)
18120
18200
  ])]),
18121
18201
  _: 1
18122
18202
  }, 8, ["onClick"])) : createCommentVNode("", true),
18123
- ((_b = props.actions) == null ? void 0 : _b.includes("delete")) ? (openBlock(), createBlock(VBtn, {
18203
+ ((_b2 = props.actions) == null ? void 0 : _b2.includes("delete")) ? (openBlock(), createBlock(VBtn, {
18124
18204
  key: 1,
18125
18205
  color: "red",
18126
18206
  size: "small",
18127
18207
  class: "me-2",
18128
18208
  onClick: ($event) => openDeleteDialog(item)
18129
18209
  }, {
18130
- default: withCtx(() => [..._cache[29] || (_cache[29] = [
18210
+ default: withCtx(() => [..._cache[28] || (_cache[28] = [
18131
18211
  createElementVNode("span", { class: "me-1" }, "🗑️", -1),
18132
18212
  createTextVNode(" حذف ", -1)
18133
18213
  ])]),
@@ -18140,7 +18220,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18140
18220
  class: "me-2",
18141
18221
  onClick: ($event) => goToRoute("view", item)
18142
18222
  }, {
18143
- default: withCtx(() => [..._cache[30] || (_cache[30] = [
18223
+ default: withCtx(() => [..._cache[29] || (_cache[29] = [
18144
18224
  createElementVNode("span", { class: "me-1" }, "👁️", -1),
18145
18225
  createTextVNode(" نمایش ", -1)
18146
18226
  ])]),
@@ -18155,7 +18235,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18155
18235
  onClick: ($event) => goToRoute(routeKey, item)
18156
18236
  }, {
18157
18237
  default: withCtx(() => [
18158
- _cache[31] || (_cache[31] = createElementVNode("span", { class: "me-1" }, "➡️", -1)),
18238
+ _cache[30] || (_cache[30] = createElementVNode("span", { class: "me-1" }, "➡️", -1)),
18159
18239
  createTextVNode(" " + toDisplayString(String(routeKey)), 1)
18160
18240
  ]),
18161
18241
  _: 2
@@ -18169,7 +18249,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18169
18249
  onClick: ($event) => download(key2, item)
18170
18250
  }, {
18171
18251
  default: withCtx(() => [
18172
- _cache[32] || (_cache[32] = createElementVNode("span", { class: "me-1" }, "⬇️", -1)),
18252
+ _cache[31] || (_cache[31] = createElementVNode("span", { class: "me-1" }, "⬇️", -1)),
18173
18253
  createTextVNode(" " + toDisplayString(key2), 1)
18174
18254
  ]),
18175
18255
  _: 2
@@ -18256,7 +18336,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18256
18336
  onClick: expandAllGroups,
18257
18337
  class: "me-2"
18258
18338
  }, {
18259
- default: withCtx(() => [..._cache[33] || (_cache[33] = [
18339
+ default: withCtx(() => [..._cache[32] || (_cache[32] = [
18260
18340
  createTextVNode(" گسترش همه ", -1)
18261
18341
  ])]),
18262
18342
  _: 1
@@ -18267,7 +18347,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18267
18347
  onClick: collapseAllGroups,
18268
18348
  class: "me-2"
18269
18349
  }, {
18270
- default: withCtx(() => [..._cache[34] || (_cache[34] = [
18350
+ default: withCtx(() => [..._cache[33] || (_cache[33] = [
18271
18351
  createTextVNode(" جمع کردن همه ", -1)
18272
18352
  ])]),
18273
18353
  _: 1
@@ -18361,7 +18441,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18361
18441
  onClick: ($event) => props.bulkMode && props.selectable && selectSingleItem(item)
18362
18442
  }, [
18363
18443
  (openBlock(true), createElementBlock(Fragment, null, renderList(columns, (column) => {
18364
- var _a2, _b, _c;
18444
+ var _a2, _b2, _c;
18365
18445
  return openBlock(), createElementBlock("td", {
18366
18446
  key: column.key || "unknown",
18367
18447
  style: normalizeStyle({
@@ -18395,19 +18475,19 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18395
18475
  class: "mr-2",
18396
18476
  onClick: ($event) => openDialog(item)
18397
18477
  }, {
18398
- default: withCtx(() => [..._cache[35] || (_cache[35] = [
18478
+ default: withCtx(() => [..._cache[34] || (_cache[34] = [
18399
18479
  createTextVNode(" ویرایش ✏️ ", -1)
18400
18480
  ])]),
18401
18481
  _: 1
18402
18482
  }, 8, ["onClick"])) : createCommentVNode("", true),
18403
- ((_b = props.actions) == null ? void 0 : _b.includes("delete")) ? (openBlock(), createBlock(VBtn, {
18483
+ ((_b2 = props.actions) == null ? void 0 : _b2.includes("delete")) ? (openBlock(), createBlock(VBtn, {
18404
18484
  key: 1,
18405
18485
  color: "red",
18406
18486
  size: "small",
18407
18487
  class: "mr-2",
18408
18488
  onClick: ($event) => openDeleteDialog(item)
18409
18489
  }, {
18410
- default: withCtx(() => [..._cache[36] || (_cache[36] = [
18490
+ default: withCtx(() => [..._cache[35] || (_cache[35] = [
18411
18491
  createTextVNode("حذف ❌ ", -1)
18412
18492
  ])]),
18413
18493
  _: 1
@@ -18419,7 +18499,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18419
18499
  class: "mr-2",
18420
18500
  onClick: ($event) => goToRoute("view", item)
18421
18501
  }, {
18422
- default: withCtx(() => [..._cache[37] || (_cache[37] = [
18502
+ default: withCtx(() => [..._cache[36] || (_cache[36] = [
18423
18503
  createTextVNode("🔍 نمایش ", -1)
18424
18504
  ])]),
18425
18505
  _: 1
@@ -18534,7 +18614,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18534
18614
  }, {
18535
18615
  default: withCtx(() => [
18536
18616
  createVNode(VIcon, { size: "16" }, {
18537
- default: withCtx(() => [..._cache[38] || (_cache[38] = [
18617
+ default: withCtx(() => [..._cache[37] || (_cache[37] = [
18538
18618
  createTextVNode("mdi-content-copy", -1)
18539
18619
  ])]),
18540
18620
  _: 1
@@ -18591,7 +18671,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18591
18671
  onClick: ($event) => props.bulkMode && props.selectable && selectSingleItem(item)
18592
18672
  }, [
18593
18673
  (openBlock(true), createElementBlock(Fragment, null, renderList(columns, (column) => {
18594
- var _a2, _b, _c;
18674
+ var _a2, _b2, _c;
18595
18675
  return openBlock(), createElementBlock("td", {
18596
18676
  key: column.key || "unknown",
18597
18677
  style: normalizeStyle({
@@ -18625,19 +18705,19 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18625
18705
  class: "mr-2",
18626
18706
  onClick: ($event) => openDialog(item)
18627
18707
  }, {
18628
- default: withCtx(() => [..._cache[39] || (_cache[39] = [
18708
+ default: withCtx(() => [..._cache[38] || (_cache[38] = [
18629
18709
  createTextVNode(" ویرایش ✏️ ", -1)
18630
18710
  ])]),
18631
18711
  _: 1
18632
18712
  }, 8, ["onClick"])) : createCommentVNode("", true),
18633
- ((_b = props.actions) == null ? void 0 : _b.includes("delete")) ? (openBlock(), createBlock(VBtn, {
18713
+ ((_b2 = props.actions) == null ? void 0 : _b2.includes("delete")) ? (openBlock(), createBlock(VBtn, {
18634
18714
  key: 1,
18635
18715
  color: "red",
18636
18716
  size: "small",
18637
18717
  class: "mr-2",
18638
18718
  onClick: ($event) => openDeleteDialog(item)
18639
18719
  }, {
18640
- default: withCtx(() => [..._cache[40] || (_cache[40] = [
18720
+ default: withCtx(() => [..._cache[39] || (_cache[39] = [
18641
18721
  createTextVNode("حذف ❌ ", -1)
18642
18722
  ])]),
18643
18723
  _: 1
@@ -18649,7 +18729,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18649
18729
  class: "mr-2",
18650
18730
  onClick: ($event) => goToRoute("view", item)
18651
18731
  }, {
18652
- default: withCtx(() => [..._cache[41] || (_cache[41] = [
18732
+ default: withCtx(() => [..._cache[40] || (_cache[40] = [
18653
18733
  createTextVNode("🔍 نمایش ", -1)
18654
18734
  ])]),
18655
18735
  _: 1
@@ -18764,7 +18844,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18764
18844
  }, {
18765
18845
  default: withCtx(() => [
18766
18846
  createVNode(VIcon, { size: "16" }, {
18767
- default: withCtx(() => [..._cache[42] || (_cache[42] = [
18847
+ default: withCtx(() => [..._cache[41] || (_cache[41] = [
18768
18848
  createTextVNode("mdi-content-copy", -1)
18769
18849
  ])]),
18770
18850
  _: 1
@@ -18914,7 +18994,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18914
18994
  color: "error",
18915
18995
  onClick: _cache[5] || (_cache[5] = ($event) => dialog.value = false)
18916
18996
  }, {
18917
- default: withCtx(() => [..._cache[43] || (_cache[43] = [
18997
+ default: withCtx(() => [..._cache[42] || (_cache[42] = [
18918
18998
  createTextVNode("انصراف", -1)
18919
18999
  ])]),
18920
19000
  _: 1
@@ -18947,13 +19027,13 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18947
19027
  createVNode(VCard, null, {
18948
19028
  default: withCtx(() => [
18949
19029
  createVNode(VCardTitle, null, {
18950
- default: withCtx(() => [..._cache[44] || (_cache[44] = [
19030
+ default: withCtx(() => [..._cache[43] || (_cache[43] = [
18951
19031
  createTextVNode("حذف آیتم", -1)
18952
19032
  ])]),
18953
19033
  _: 1
18954
19034
  }),
18955
19035
  createVNode(VCardText, null, {
18956
- default: withCtx(() => [..._cache[45] || (_cache[45] = [
19036
+ default: withCtx(() => [..._cache[44] || (_cache[44] = [
18957
19037
  createTextVNode(" آیا مایل به حذف این رکورد هستید ?", -1)
18958
19038
  ])]),
18959
19039
  _: 1
@@ -18964,7 +19044,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18964
19044
  color: "grey",
18965
19045
  onClick: _cache[7] || (_cache[7] = ($event) => deleteDialog.value = false)
18966
19046
  }, {
18967
- default: withCtx(() => [..._cache[46] || (_cache[46] = [
19047
+ default: withCtx(() => [..._cache[45] || (_cache[45] = [
18968
19048
  createTextVNode("انصراف", -1)
18969
19049
  ])]),
18970
19050
  _: 1
@@ -18976,7 +19056,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
18976
19056
  return deleteItem(String(((_a2 = itemToDelete.value) == null ? void 0 : _a2.id) || ""));
18977
19057
  })
18978
19058
  }, {
18979
- default: withCtx(() => [..._cache[47] || (_cache[47] = [
19059
+ default: withCtx(() => [..._cache[46] || (_cache[46] = [
18980
19060
  createTextVNode("حذف", -1)
18981
19061
  ])]),
18982
19062
  _: 1
@@ -19004,28 +19084,28 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
19004
19084
  color: "red",
19005
19085
  class: "me-2"
19006
19086
  }, {
19007
- default: withCtx(() => [..._cache[48] || (_cache[48] = [
19087
+ default: withCtx(() => [..._cache[47] || (_cache[47] = [
19008
19088
  createTextVNode("🗑️", -1)
19009
19089
  ])]),
19010
19090
  _: 1
19011
19091
  }),
19012
- _cache[49] || (_cache[49] = createTextVNode(" حذف گروهی ", -1))
19092
+ _cache[48] || (_cache[48] = createTextVNode(" حذف گروهی ", -1))
19013
19093
  ]),
19014
19094
  _: 1
19015
19095
  }),
19016
19096
  createVNode(VCardText, null, {
19017
19097
  default: withCtx(() => [
19018
19098
  createElementVNode("p", null, [
19019
- _cache[50] || (_cache[50] = createTextVNode(" آیا مایل به حذف ", -1)),
19099
+ _cache[49] || (_cache[49] = createTextVNode(" آیا مایل به حذف ", -1)),
19020
19100
  createElementVNode("strong", null, toDisplayString(selectedCount.value), 1),
19021
- _cache[51] || (_cache[51] = createTextVNode(" آیتم انتخاب شده هستید؟ ", -1))
19101
+ _cache[50] || (_cache[50] = createTextVNode(" آیتم انتخاب شده هستید؟ ", -1))
19022
19102
  ]),
19023
19103
  createVNode(VAlert, {
19024
19104
  type: "warning",
19025
19105
  variant: "tonal",
19026
19106
  class: "mt-3"
19027
19107
  }, {
19028
- default: withCtx(() => [..._cache[52] || (_cache[52] = [
19108
+ default: withCtx(() => [..._cache[51] || (_cache[51] = [
19029
19109
  createTextVNode(" این عمل قابل بازگشت نیست! ", -1)
19030
19110
  ])]),
19031
19111
  _: 1
@@ -19040,7 +19120,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
19040
19120
  color: "grey",
19041
19121
  onClick: _cache[10] || (_cache[10] = ($event) => groupDeleteDialog.value = false)
19042
19122
  }, {
19043
- default: withCtx(() => [..._cache[53] || (_cache[53] = [
19123
+ default: withCtx(() => [..._cache[52] || (_cache[52] = [
19044
19124
  createTextVNode("انصراف", -1)
19045
19125
  ])]),
19046
19126
  _: 1
@@ -19074,9 +19154,9 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
19074
19154
  default: withCtx(() => [
19075
19155
  createVNode(VCardTitle, null, {
19076
19156
  default: withCtx(() => {
19077
- var _a2, _b;
19157
+ var _a2, _b2;
19078
19158
  return [
19079
- createTextVNode(toDisplayString(((_b = (_a2 = props.customActions) == null ? void 0 : _a2.find((a) => a.component === customActionComponent.value)) == null ? void 0 : _b.title) || ""), 1)
19159
+ createTextVNode(toDisplayString(((_b2 = (_a2 = props.customActions) == null ? void 0 : _a2.find((a) => a.component === customActionComponent.value)) == null ? void 0 : _b2.title) || ""), 1)
19080
19160
  ];
19081
19161
  }),
19082
19162
  _: 1
@@ -19099,14 +19179,14 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
19099
19179
  }, 8, ["modelValue"]),
19100
19180
  createVNode(VDialog, {
19101
19181
  modelValue: filterDialog.value,
19102
- "onUpdate:modelValue": _cache[16] || (_cache[16] = ($event) => filterDialog.value = $event),
19182
+ "onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => filterDialog.value = $event),
19103
19183
  "max-width": "800"
19104
19184
  }, {
19105
19185
  default: withCtx(() => [
19106
19186
  createVNode(VCard, null, {
19107
19187
  default: withCtx(() => [
19108
19188
  createVNode(VCardTitle, null, {
19109
- default: withCtx(() => [..._cache[54] || (_cache[54] = [
19189
+ default: withCtx(() => [..._cache[53] || (_cache[53] = [
19110
19190
  createTextVNode("فیلتر", -1)
19111
19191
  ])]),
19112
19192
  _: 1
@@ -19115,16 +19195,131 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
19115
19195
  default: withCtx(() => [
19116
19196
  props.filterComponent ? (openBlock(), createBlock(resolveDynamicComponent(props.filterComponent), {
19117
19197
  key: 0,
19118
- modelValue: filterModel.value,
19119
- "onUpdate:modelValue": [
19120
- _cache[14] || (_cache[14] = ($event) => filterModel.value = $event),
19121
- _cache[15] || (_cache[15] = ($event) => filterModel.value = $event)
19122
- ],
19198
+ "model-value": filterModel.value,
19199
+ "onUpdate:modelValue": _cache[14] || (_cache[14] = ($event) => filterModel.value = $event),
19123
19200
  onApply: handleFilterApply
19124
- }, null, 40, ["modelValue"])) : createCommentVNode("", true)
19201
+ }, null, 40, ["model-value"])) : (openBlock(), createBlock(VContainer, { key: 1 }, {
19202
+ default: withCtx(() => [
19203
+ createVNode(VRow, null, {
19204
+ default: withCtx(() => [
19205
+ (openBlock(true), createElementBlock(Fragment, null, renderList(formHeaders.value, (header) => {
19206
+ return openBlock(), createBlock(VCol, {
19207
+ key: resolveHeaderKey(header),
19208
+ cols: header.cols ? typeof header.cols === "number" ? header.cols : Number(header.cols) : 4,
19209
+ md: header.cols ? typeof header.cols === "number" ? header.cols : Number(header.cols) : 4
19210
+ }, {
19211
+ default: withCtx(() => [
19212
+ !header.hidden ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
19213
+ hasFilterOperators(header) ? (openBlock(), createBlock(VSelect, {
19214
+ key: 0,
19215
+ modelValue: filterOperatorModel.value[resolveHeaderKey(header)],
19216
+ "onUpdate:modelValue": ($event) => filterOperatorModel.value[resolveHeaderKey(header)] = $event,
19217
+ items: getHeaderFilterOperators(header),
19218
+ "item-title": "label",
19219
+ "item-value": "value",
19220
+ density: "compact",
19221
+ variant: "underlined",
19222
+ "hide-details": "",
19223
+ class: "mb-1"
19224
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "items"])) : createCommentVNode("", true),
19225
+ isDateHeader(header) ? (openBlock(), createBlock(ShamsiDatePicker, {
19226
+ key: 1,
19227
+ modelValue: filterModel.value[resolveHeaderKey(header)],
19228
+ "onUpdate:modelValue": ($event) => filterModel.value[resolveHeaderKey(header)] = $event,
19229
+ label: resolveHeaderTitle(header),
19230
+ disabled: isHeaderDisabled(header)
19231
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "disabled"])) : hasAutocomplete(header) ? (openBlock(), createBlock(VAutocomplete, {
19232
+ key: 2,
19233
+ modelValue: filterModel.value[resolveHeaderKey(header)],
19234
+ "onUpdate:modelValue": ($event) => filterModel.value[resolveHeaderKey(header)] = $event,
19235
+ label: resolveHeaderTitle(header),
19236
+ items: resolveAutocompleteItems(header, filterModel.value.value),
19237
+ "item-title": resolveAutocompleteItemTitle(header),
19238
+ "item-value": resolveAutocompleteItemValue(header),
19239
+ "return-object": resolveAutocompleteReturnObject(header),
19240
+ multiple: resolveAutocompleteMultiple(header),
19241
+ chips: resolveAutocompleteMultiple(header),
19242
+ "closable-chips": resolveAutocompleteMultiple(header),
19243
+ disabled: isHeaderDisabled(header),
19244
+ clearable: "",
19245
+ variant: "outlined"
19246
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "items", "item-title", "item-value", "return-object", "multiple", "chips", "closable-chips", "disabled"])) : isMoneyHeader(header) ? (openBlock(), createBlock(_sfc_main$i, {
19247
+ key: 3,
19248
+ modelValue: filterModel.value[resolveHeaderKey(header)],
19249
+ "onUpdate:modelValue": ($event) => filterModel.value[resolveHeaderKey(header)] = $event,
19250
+ label: resolveHeaderTitle(header),
19251
+ disabled: isHeaderDisabled(header)
19252
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "disabled"])) : isTextareaHeader(header) ? (openBlock(), createBlock(VTextarea, {
19253
+ key: 4,
19254
+ modelValue: filterModel.value[resolveHeaderKey(header)],
19255
+ "onUpdate:modelValue": ($event) => filterModel.value[resolveHeaderKey(header)] = $event,
19256
+ label: resolveHeaderTitle(header),
19257
+ variant: "outlined",
19258
+ disabled: isHeaderDisabled(header),
19259
+ dir: header.dir,
19260
+ "auto-grow": "",
19261
+ rows: "3"
19262
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "disabled", "dir"])) : isToggleHeader(header) ? (openBlock(), createBlock(ToggleSwitch, {
19263
+ key: 5,
19264
+ modelValue: filterModel.value[resolveHeaderKey(header)],
19265
+ "onUpdate:modelValue": ($event) => filterModel.value[resolveHeaderKey(header)] = $event,
19266
+ label: resolveHeaderTitle(header),
19267
+ type: "boolean",
19268
+ activeColor: "#3bd32a",
19269
+ inactiveColor: "#d32a2a",
19270
+ options: [
19271
+ { value: "true", label: "فعال", icon: unref(IconCheck) },
19272
+ { value: "false", label: "غیر فعال", icon: unref(IconSquareX) }
19273
+ ]
19274
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "options"])) : (openBlock(), createBlock(VTextField, {
19275
+ key: 6,
19276
+ modelValue: filterModel.value[resolveHeaderKey(header)],
19277
+ "onUpdate:modelValue": ($event) => filterModel.value[resolveHeaderKey(header)] = $event,
19278
+ label: resolveHeaderTitle(header),
19279
+ variant: "outlined",
19280
+ disabled: isHeaderDisabled(header),
19281
+ type: getFieldInputType(header),
19282
+ dir: header.dir
19283
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "disabled", "type", "dir"]))
19284
+ ], 64)) : createCommentVNode("", true)
19285
+ ]),
19286
+ _: 2
19287
+ }, 1032, ["cols", "md"]);
19288
+ }), 128))
19289
+ ]),
19290
+ _: 1
19291
+ })
19292
+ ]),
19293
+ _: 1
19294
+ }))
19125
19295
  ]),
19126
19296
  _: 1
19127
- })
19297
+ }),
19298
+ !props.filterComponent ? (openBlock(), createBlock(VCardActions, { key: 0 }, {
19299
+ default: withCtx(() => [
19300
+ createVNode(VSpacer),
19301
+ createVNode(VBtn, {
19302
+ color: "grey",
19303
+ variant: "tonal",
19304
+ onClick: resetFilter
19305
+ }, {
19306
+ default: withCtx(() => [..._cache[54] || (_cache[54] = [
19307
+ createTextVNode("حذف فیلترها", -1)
19308
+ ])]),
19309
+ _: 1
19310
+ }),
19311
+ createVNode(VBtn, {
19312
+ color: "primary",
19313
+ onClick: applyFilter
19314
+ }, {
19315
+ default: withCtx(() => [..._cache[55] || (_cache[55] = [
19316
+ createTextVNode("اعمال فیلتر", -1)
19317
+ ])]),
19318
+ _: 1
19319
+ })
19320
+ ]),
19321
+ _: 1
19322
+ })) : createCommentVNode("", true)
19128
19323
  ]),
19129
19324
  _: 1
19130
19325
  })
@@ -19133,7 +19328,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
19133
19328
  }, 8, ["modelValue"]),
19134
19329
  createVNode(VDialog, {
19135
19330
  modelValue: textPreviewDialog.value,
19136
- "onUpdate:modelValue": _cache[20] || (_cache[20] = ($event) => textPreviewDialog.value = $event),
19331
+ "onUpdate:modelValue": _cache[19] || (_cache[19] = ($event) => textPreviewDialog.value = $event),
19137
19332
  "max-width": "800"
19138
19333
  }, {
19139
19334
  default: withCtx(() => [
@@ -19145,11 +19340,11 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
19145
19340
  createVNode(VBtn, {
19146
19341
  icon: "",
19147
19342
  variant: "text",
19148
- onClick: _cache[17] || (_cache[17] = ($event) => textPreviewDialog.value = false)
19343
+ onClick: _cache[16] || (_cache[16] = ($event) => textPreviewDialog.value = false)
19149
19344
  }, {
19150
19345
  default: withCtx(() => [
19151
19346
  createVNode(VIcon, null, {
19152
- default: withCtx(() => [..._cache[55] || (_cache[55] = [
19347
+ default: withCtx(() => [..._cache[56] || (_cache[56] = [
19153
19348
  createTextVNode("mdi-close", -1)
19154
19349
  ])]),
19155
19350
  _: 1
@@ -19178,16 +19373,16 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
19178
19373
  createVNode(VSpacer),
19179
19374
  createVNode(VBtn, {
19180
19375
  color: "primary",
19181
- onClick: _cache[18] || (_cache[18] = ($event) => copyToClipboard(previewText.value))
19376
+ onClick: _cache[17] || (_cache[17] = ($event) => copyToClipboard(previewText.value))
19182
19377
  }, {
19183
19378
  default: withCtx(() => [
19184
19379
  createVNode(VIcon, { start: "" }, {
19185
- default: withCtx(() => [..._cache[56] || (_cache[56] = [
19380
+ default: withCtx(() => [..._cache[57] || (_cache[57] = [
19186
19381
  createTextVNode("mdi-content-copy", -1)
19187
19382
  ])]),
19188
19383
  _: 1
19189
19384
  }),
19190
- _cache[57] || (_cache[57] = createTextVNode(" کپی متن ", -1))
19385
+ _cache[58] || (_cache[58] = createTextVNode(" کپی متن ", -1))
19191
19386
  ]),
19192
19387
  _: 1
19193
19388
  }),
@@ -19197,20 +19392,20 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
19197
19392
  }, {
19198
19393
  default: withCtx(() => [
19199
19394
  createVNode(VIcon, { start: "" }, {
19200
- default: withCtx(() => [..._cache[58] || (_cache[58] = [
19395
+ default: withCtx(() => [..._cache[59] || (_cache[59] = [
19201
19396
  createTextVNode("mdi-content-copy", -1)
19202
19397
  ])]),
19203
19398
  _: 1
19204
19399
  }),
19205
- _cache[59] || (_cache[59] = createTextVNode(" کپی رکورد کامل ", -1))
19400
+ _cache[60] || (_cache[60] = createTextVNode(" کپی رکورد کامل ", -1))
19206
19401
  ]),
19207
19402
  _: 1
19208
19403
  }),
19209
19404
  createVNode(VBtn, {
19210
19405
  color: "grey",
19211
- onClick: _cache[19] || (_cache[19] = ($event) => textPreviewDialog.value = false)
19406
+ onClick: _cache[18] || (_cache[18] = ($event) => textPreviewDialog.value = false)
19212
19407
  }, {
19213
- default: withCtx(() => [..._cache[60] || (_cache[60] = [
19408
+ default: withCtx(() => [..._cache[61] || (_cache[61] = [
19214
19409
  createTextVNode("بستن", -1)
19215
19410
  ])]),
19216
19411
  _: 1
@@ -19227,7 +19422,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
19227
19422
  snackbar.value ? (openBlock(), createBlock(VSnackbar, {
19228
19423
  key: 1,
19229
19424
  modelValue: snackbar.value,
19230
- "onUpdate:modelValue": _cache[22] || (_cache[22] = ($event) => snackbar.value = $event),
19425
+ "onUpdate:modelValue": _cache[21] || (_cache[21] = ($event) => snackbar.value = $event),
19231
19426
  timeout: 3e3,
19232
19427
  location: "top"
19233
19428
  }, {
@@ -19235,9 +19430,9 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
19235
19430
  createVNode(VBtn, {
19236
19431
  color: "white",
19237
19432
  variant: "text",
19238
- onClick: _cache[21] || (_cache[21] = ($event) => snackbar.value = false)
19433
+ onClick: _cache[20] || (_cache[20] = ($event) => snackbar.value = false)
19239
19434
  }, {
19240
- default: withCtx(() => [..._cache[61] || (_cache[61] = [
19435
+ default: withCtx(() => [..._cache[62] || (_cache[62] = [
19241
19436
  createTextVNode(" بستن ", -1)
19242
19437
  ])]),
19243
19438
  _: 1