@opengis/filter 0.1.27 → 0.1.28
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/README.md
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
# Filter Panel
|
|
2
|
-
|
|
3
|
-
A flexible and extensible filter component system for Vue 3.
|
|
4
|
-
Ideal for building customizable filter UIs with checkbox, radio, or custom slot fields.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Features
|
|
9
|
-
|
|
10
|
-
- Schema-based filter rendering (radio, checkbox)
|
|
11
|
-
- Slot-based extensibility for custom filters
|
|
12
|
-
- Built-in clear/reset support
|
|
13
|
-
- Emits `change` and `clear` events
|
|
14
|
-
- Popover support with positioning logic
|
|
15
|
-
- Show more / limit options logic
|
|
16
|
-
- Written in TypeScript
|
|
17
|
-
- Fully styleable with Tailwind CSS
|
|
18
|
-
- Mobile-friendly and responsive
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Documentation
|
|
23
|
-
|
|
24
|
-
Check out the documentation and live demo here: [Live Demo & Docs](https://filter.opengis.info)
|
|
25
|
-
|
|
26
|
-
## Install & Usage
|
|
27
|
-
|
|
28
|
-
### Install
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
npm i @opengis/filter
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Usage
|
|
35
|
-
|
|
36
|
-
```vue
|
|
37
|
-
<template>
|
|
38
|
-
<VsFilter :schema="schema" @change="console.log($event.data)" />
|
|
39
|
-
</template>
|
|
40
|
-
|
|
41
|
-
<script setup lang="ts">
|
|
42
|
-
|
|
43
|
-
import {ref} from 'vue'
|
|
44
|
-
import VsFilter from "@opengis/filter";
|
|
45
|
-
|
|
46
|
-
// import { Filter, FilterField } from '@opengis/filter'; // component import
|
|
47
|
-
|
|
48
|
-
const schema = ref([
|
|
49
|
-
{name: 'media', type: 'checkbox', label: 'Media type', options: [...] },
|
|
50
|
-
{name: 'source', type: 'radio', label: 'Source', options: [...] }
|
|
51
|
-
]);
|
|
52
|
-
</script>
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
### Register
|
|
56
|
-
|
|
57
|
-
```ts
|
|
58
|
-
// main.ts
|
|
59
|
-
import VsFilter from '@opengis/filter';
|
|
60
|
-
app.use(VsFilter); // Register: Filter, VsFilter, FilterField
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### Style
|
|
64
|
-
|
|
65
|
-
```html
|
|
66
|
-
<script src="https://cdn.tailwindcss.com"></script>
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## Contributions
|
|
72
|
-
|
|
73
|
-
We welcome contributions!
|
|
74
|
-
Feel free to open issues, suggest features, or submit pull requests.
|
|
1
|
+
# Filter Panel
|
|
2
|
+
|
|
3
|
+
A flexible and extensible filter component system for Vue 3.
|
|
4
|
+
Ideal for building customizable filter UIs with checkbox, radio, or custom slot fields.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Features
|
|
9
|
+
|
|
10
|
+
- Schema-based filter rendering (radio, checkbox)
|
|
11
|
+
- Slot-based extensibility for custom filters
|
|
12
|
+
- Built-in clear/reset support
|
|
13
|
+
- Emits `change` and `clear` events
|
|
14
|
+
- Popover support with positioning logic
|
|
15
|
+
- Show more / limit options logic
|
|
16
|
+
- Written in TypeScript
|
|
17
|
+
- Fully styleable with Tailwind CSS
|
|
18
|
+
- Mobile-friendly and responsive
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Documentation
|
|
23
|
+
|
|
24
|
+
Check out the documentation and live demo here: [Live Demo & Docs](https://filter.opengis.info)
|
|
25
|
+
|
|
26
|
+
## Install & Usage
|
|
27
|
+
|
|
28
|
+
### Install
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm i @opengis/filter
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Usage
|
|
35
|
+
|
|
36
|
+
```vue
|
|
37
|
+
<template>
|
|
38
|
+
<VsFilter :schema="schema" @change="console.log($event.data)" />
|
|
39
|
+
</template>
|
|
40
|
+
|
|
41
|
+
<script setup lang="ts">
|
|
42
|
+
|
|
43
|
+
import {ref} from 'vue'
|
|
44
|
+
import VsFilter from "@opengis/filter";
|
|
45
|
+
|
|
46
|
+
// import { Filter, FilterField } from '@opengis/filter'; // component import
|
|
47
|
+
|
|
48
|
+
const schema = ref([
|
|
49
|
+
{name: 'media', type: 'checkbox', label: 'Media type', options: [...] },
|
|
50
|
+
{name: 'source', type: 'radio', label: 'Source', options: [...] }
|
|
51
|
+
]);
|
|
52
|
+
</script>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Register
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
// main.ts
|
|
59
|
+
import VsFilter from '@opengis/filter';
|
|
60
|
+
app.use(VsFilter); // Register: Filter, VsFilter, FilterField
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Style
|
|
64
|
+
|
|
65
|
+
```html
|
|
66
|
+
<script src="https://cdn.tailwindcss.com"></script>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Contributions
|
|
72
|
+
|
|
73
|
+
We welcome contributions!
|
|
74
|
+
Feel free to open issues, suggest features, or submit pull requests.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover-filter-layout.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/layouts/popover-filter-layout.vue"],"names":[],"mappings":"AA6PA,OAAO,KAAK,EAAE,OAAO,EAAyB,MAAM,0BAA0B,CAAC;AAS/E,UAAU,YAAa,SAAQ,OAAO;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"popover-filter-layout.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/layouts/popover-filter-layout.vue"],"names":[],"mappings":"AA6PA,OAAO,KAAK,EAAE,OAAO,EAAyB,MAAM,0BAA0B,CAAC;AAS/E,UAAU,YAAa,SAAQ,OAAO;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsgBD,wBASG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ui/popover.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"popover.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ui/popover.vue"],"names":[],"mappings":"AA2OA,QAAA,IAAI,OAAO,IAAU,EAAE,OAAO,IAAW,CAAE;AAC3C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AA0B/C,QAAA,MAAM,eAAe;;;;;;iFAMnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAE1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,7 @@ const ee = (m, n) => {
|
|
|
18
18
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-reload absolute inline mr-1 text-gray-800 transition-all cursor-pointer active:rotate-90 right-1 top-1 hover:text-blue-500"
|
|
19
19
|
};
|
|
20
20
|
function Ze(m, n) {
|
|
21
|
-
return u(), w("svg", Je, n[0] || (n[0] = [
|
|
21
|
+
return u(), w("svg", Je, [...n[0] || (n[0] = [
|
|
22
22
|
d("path", {
|
|
23
23
|
stroke: "none",
|
|
24
24
|
d: "M0 0h24v24H0z",
|
|
@@ -26,7 +26,7 @@ function Ze(m, n) {
|
|
|
26
26
|
}, null, -1),
|
|
27
27
|
d("path", { d: "M19.933 13.041a8 8 0 1 1 -9.925 -8.788c3.899 -1 7.935 1.007 9.425 4.747" }, null, -1),
|
|
28
28
|
d("path", { d: "M20 4v5h-5" }, null, -1)
|
|
29
|
-
]));
|
|
29
|
+
])]);
|
|
30
30
|
}
|
|
31
31
|
const et = /* @__PURE__ */ ee(Xe, [["render", Ze]]), tt = {}, lt = {
|
|
32
32
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -41,9 +41,9 @@ const et = /* @__PURE__ */ ee(Xe, [["render", Ze]]), tt = {}, lt = {
|
|
|
41
41
|
class: "text-blue-600 w-[16px] h-[16px]"
|
|
42
42
|
};
|
|
43
43
|
function ot(m, n) {
|
|
44
|
-
return u(), w("svg", lt, n[0] || (n[0] = [
|
|
44
|
+
return u(), w("svg", lt, [...n[0] || (n[0] = [
|
|
45
45
|
d("path", { d: "M20 6 9 17l-5-5" }, null, -1)
|
|
46
|
-
]));
|
|
46
|
+
])]);
|
|
47
47
|
}
|
|
48
48
|
const oe = /* @__PURE__ */ ee(tt, [["render", ot]]), at = { class: "flex items-center justify-between w-full text-sm" }, nt = { class: "flex items-center cursor-pointer w-full" }, rt = {
|
|
49
49
|
key: 0,
|
|
@@ -179,9 +179,9 @@ const ct = {}, ft = {
|
|
|
179
179
|
xmlns: "http://www.w3.org/2000/svg"
|
|
180
180
|
};
|
|
181
181
|
function pt(m, n) {
|
|
182
|
-
return u(), w("svg", ft, n[0] || (n[0] = [
|
|
182
|
+
return u(), w("svg", ft, [...n[0] || (n[0] = [
|
|
183
183
|
Ne('<rect x="27" y="50.5" width="124" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="27" y="50.5" width="124" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-50 dark:stroke-neutral-700/10"></rect><rect x="34.5" y="58" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="61" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="73" width="77" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/30"></rect><rect x="27" y="36" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="39" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="51" width="92" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><g filter="url(#filter1)"><rect x="12" y="6" width="154" height="40" rx="8" fill="currentColor" class="fill-white dark:fill-neutral-800" shape-rendering="crispEdges"></rect><rect x="12.5" y="6.5" width="153" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/60" shape-rendering="crispEdges"></rect><rect x="20" y="14" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="17" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="29" width="106" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect></g><defs><filter id="filter1" x="0" y="0" width="178" height="64" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix><feOffset dy="6"></feOffset><feGaussianBlur stdDeviation="6"></feGaussianBlur><feComposite in2="hardAlpha" operator="out"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03 0"></feColorMatrix><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1187_14810"></feBlend><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1187_14810" result="shape"></feBlend></filter></defs>', 12)
|
|
184
|
-
]));
|
|
184
|
+
])]);
|
|
185
185
|
}
|
|
186
186
|
const we = /* @__PURE__ */ ee(ct, [["render", pt]]), mt = {}, vt = {
|
|
187
187
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -196,14 +196,14 @@ const we = /* @__PURE__ */ ee(ct, [["render", pt]]), mt = {}, vt = {
|
|
|
196
196
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-chevron-down w-[14px] rotate"
|
|
197
197
|
};
|
|
198
198
|
function yt(m, n) {
|
|
199
|
-
return u(), w("svg", vt, n[0] || (n[0] = [
|
|
199
|
+
return u(), w("svg", vt, [...n[0] || (n[0] = [
|
|
200
200
|
d("path", {
|
|
201
201
|
stroke: "none",
|
|
202
202
|
d: "M0 0h24v24H0z",
|
|
203
203
|
fill: "none"
|
|
204
204
|
}, null, -1),
|
|
205
205
|
d("path", { d: "M6 9l6 6l6 -6" }, null, -1)
|
|
206
|
-
]));
|
|
206
|
+
])]);
|
|
207
207
|
}
|
|
208
208
|
const ve = /* @__PURE__ */ ee(mt, [["render", yt]]), gt = {}, bt = {
|
|
209
209
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -218,14 +218,14 @@ const ve = /* @__PURE__ */ ee(mt, [["render", yt]]), gt = {}, bt = {
|
|
|
218
218
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-chevron-down w-[14px] rotate-[180deg]"
|
|
219
219
|
};
|
|
220
220
|
function ht(m, n) {
|
|
221
|
-
return u(), w("svg", bt, n[0] || (n[0] = [
|
|
221
|
+
return u(), w("svg", bt, [...n[0] || (n[0] = [
|
|
222
222
|
d("path", {
|
|
223
223
|
stroke: "none",
|
|
224
224
|
d: "M0 0h24v24H0z",
|
|
225
225
|
fill: "none"
|
|
226
226
|
}, null, -1),
|
|
227
227
|
d("path", { d: "M6 9l6 6l6 -6" }, null, -1)
|
|
228
|
-
]));
|
|
228
|
+
])]);
|
|
229
229
|
}
|
|
230
230
|
const ke = /* @__PURE__ */ ee(gt, [["render", ht]]), xt = {
|
|
231
231
|
key: 0,
|
|
@@ -625,7 +625,7 @@ const _t = {
|
|
|
625
625
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-search stroke-gray-500 transition-all"
|
|
626
626
|
};
|
|
627
627
|
function Ft(m, n) {
|
|
628
|
-
return u(), w("svg", Rt, n[0] || (n[0] = [
|
|
628
|
+
return u(), w("svg", Rt, [...n[0] || (n[0] = [
|
|
629
629
|
d("path", {
|
|
630
630
|
stroke: "none",
|
|
631
631
|
d: "M0 0h24v24H0z",
|
|
@@ -633,7 +633,7 @@ function Ft(m, n) {
|
|
|
633
633
|
}, null, -1),
|
|
634
634
|
d("path", { d: "M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" }, null, -1),
|
|
635
635
|
d("path", { d: "M21 21l-6 -6" }, null, -1)
|
|
636
|
-
]));
|
|
636
|
+
])]);
|
|
637
637
|
}
|
|
638
638
|
const Le = /* @__PURE__ */ ee(Dt, [["render", Ft]]), Kt = {}, Mt = {
|
|
639
639
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -648,7 +648,7 @@ const Le = /* @__PURE__ */ ee(Dt, [["render", Ft]]), Kt = {}, Mt = {
|
|
|
648
648
|
height: "15px"
|
|
649
649
|
};
|
|
650
650
|
function Lt(m, n) {
|
|
651
|
-
return u(), w("svg", Mt, n[0] || (n[0] = [
|
|
651
|
+
return u(), w("svg", Mt, [...n[0] || (n[0] = [
|
|
652
652
|
d("path", {
|
|
653
653
|
stroke: "none",
|
|
654
654
|
d: "M0 0h24v24H0z",
|
|
@@ -656,7 +656,7 @@ function Lt(m, n) {
|
|
|
656
656
|
}, null, -1),
|
|
657
657
|
d("path", { d: "M18 6l-12 12" }, null, -1),
|
|
658
658
|
d("path", { d: "M6 6l12 12" }, null, -1)
|
|
659
|
-
]));
|
|
659
|
+
])]);
|
|
660
660
|
}
|
|
661
661
|
const Ce = /* @__PURE__ */ ee(Kt, [["render", Lt]]);
|
|
662
662
|
class Ee {
|
|
@@ -1754,14 +1754,14 @@ const il = { class: "h-[45px] shrink-0 px-[6px] py-[4px] flex items-center relat
|
|
|
1754
1754
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-chevron-down text-gray-800 rotate-[90deg]"
|
|
1755
1755
|
};
|
|
1756
1756
|
function Dl(m, n) {
|
|
1757
|
-
return u(), w("svg", jl, n[0] || (n[0] = [
|
|
1757
|
+
return u(), w("svg", jl, [...n[0] || (n[0] = [
|
|
1758
1758
|
d("path", {
|
|
1759
1759
|
stroke: "none",
|
|
1760
1760
|
d: "M0 0h24v24H0z",
|
|
1761
1761
|
fill: "none"
|
|
1762
1762
|
}, null, -1),
|
|
1763
1763
|
d("path", { d: "M6 9l6 6l6 -6" }, null, -1)
|
|
1764
|
-
]));
|
|
1764
|
+
])]);
|
|
1765
1765
|
}
|
|
1766
1766
|
const Rl = /* @__PURE__ */ ee(Bl, [["render", Dl]]), Fl = {}, Kl = {
|
|
1767
1767
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -1776,14 +1776,14 @@ const Rl = /* @__PURE__ */ ee(Bl, [["render", Dl]]), Fl = {}, Kl = {
|
|
|
1776
1776
|
class: "icon icon-tabler icons-tabler-outline icon-tabler-chevron-down text-gray-800 rotate-[270deg]"
|
|
1777
1777
|
};
|
|
1778
1778
|
function Ml(m, n) {
|
|
1779
|
-
return u(), w("svg", Kl, n[0] || (n[0] = [
|
|
1779
|
+
return u(), w("svg", Kl, [...n[0] || (n[0] = [
|
|
1780
1780
|
d("path", {
|
|
1781
1781
|
stroke: "none",
|
|
1782
1782
|
d: "M0 0h24v24H0z",
|
|
1783
1783
|
fill: "none"
|
|
1784
1784
|
}, null, -1),
|
|
1785
1785
|
d("path", { d: "M6 9l6 6l6 -6" }, null, -1)
|
|
1786
|
-
]));
|
|
1786
|
+
])]);
|
|
1787
1787
|
}
|
|
1788
1788
|
const Ll = /* @__PURE__ */ ee(Fl, [["render", Ml]]), El = { class: "flex gap-1" }, Ol = { class: "mb-1" }, Tl = { class: "mb-1" }, Il = { class: "inline-flex rounded-sm shrink-0 pl-1" }, Ul = ["title"], zl = { class: "inline-flex rounded-sm shrink-0 pl-1" }, Nl = ["title"], Pl = {
|
|
1789
1789
|
key: 1,
|
|
@@ -1939,8 +1939,7 @@ const ql = /* @__PURE__ */ W({
|
|
|
1939
1939
|
])
|
|
1940
1940
|
])
|
|
1941
1941
|
]),
|
|
1942
|
-
_: 1
|
|
1943
|
-
__: [12]
|
|
1942
|
+
_: 1
|
|
1944
1943
|
}, 8, ["label", "current-value", "mode", "width", "onClear", "layout", "class"]),
|
|
1945
1944
|
e(p) !== "" && e(p) !== "range" && e(p) !== "last_7_days" ? (u(), w(U, { key: 0 }, [
|
|
1946
1945
|
d("div", Il, [
|
|
@@ -2560,7 +2559,7 @@ const ro = /* @__PURE__ */ W({
|
|
|
2560
2559
|
H(d("div", {
|
|
2561
2560
|
ref_key: "popoverRef",
|
|
2562
2561
|
ref: t,
|
|
2563
|
-
class: "absolute z-[50] w-[600px] rounded-md border bg-white shadow-md",
|
|
2562
|
+
class: "absolute z-[50] w-[calc(100vw-32px)] md:w-[600px] rounded-md border bg-white shadow-md",
|
|
2564
2563
|
style: be(x.value)
|
|
2565
2564
|
}, [
|
|
2566
2565
|
de(k.$slots, "default")
|
|
@@ -2583,26 +2582,26 @@ const ro = /* @__PURE__ */ W({
|
|
|
2583
2582
|
class: "lucide lucide-filter h-4 w-4"
|
|
2584
2583
|
};
|
|
2585
2584
|
function uo(m, n) {
|
|
2586
|
-
return u(), w("svg", io, n[0] || (n[0] = [
|
|
2585
|
+
return u(), w("svg", io, [...n[0] || (n[0] = [
|
|
2587
2586
|
d("polygon", { points: "22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3" }, null, -1)
|
|
2588
|
-
]));
|
|
2587
|
+
])]);
|
|
2589
2588
|
}
|
|
2590
2589
|
const Ue = /* @__PURE__ */ ee(so, [["render", uo]]), co = { class: "flex items-center gap-2 overflow-hidden" }, fo = {
|
|
2591
2590
|
key: 0,
|
|
2592
2591
|
class: "inline-flex min-h-[18px] min-w-[18px] items-center justify-center rounded-[4px] bg-blue-500 px-1 text-[11px] font-semibold text-white"
|
|
2593
|
-
}, po = { class: "flex max-h-[400px]" }, mo = { class: "w-64 border-r border-gray-200 overflow-y-auto" }, vo = { class: "p-4 border-b" }, yo = { class: "text-sm text-gray-600" }, go = { class: "p-2" }, bo = ["onClick"], ho = { class: "flex items-center gap-2" }, xo = { class: "text-sm font-medium" }, wo = {
|
|
2592
|
+
}, po = { class: "flex max-h-[400px] md:max-h-[400px]" }, mo = { class: "w-[150px] sm:w-[180px] md:w-64 border-r border-gray-200 overflow-y-auto" }, vo = { class: "p-2 md:p-4 border-b" }, yo = { class: "text-xs md:text-sm text-gray-600" }, go = { class: "p-1 md:p-2" }, bo = ["onClick"], ho = { class: "flex items-center gap-1.5 md:gap-2" }, xo = { class: "text-xs md:text-sm font-medium line-clamp-3" }, wo = {
|
|
2594
2593
|
key: 0,
|
|
2595
|
-
class: "inline-flex min-h-[18px] min-w-[18px] items-center justify-center rounded-[4px] bg-blue-100 px-1 text-[11px] font-semibold text-blue-600"
|
|
2596
|
-
}, ko = ["onClick"], Co = { class: "flex items-center gap-2" }, Vo = { class: "text-sm font-medium" }, _o = {
|
|
2594
|
+
class: "inline-flex min-h-[16px] md:min-h-[18px] min-w-[16px] md:min-w-[18px] items-center justify-center rounded-[4px] bg-blue-100 px-0.5 md:px-1 text-[10px] md:text-[11px] font-semibold text-blue-600 flex-shrink-0"
|
|
2595
|
+
}, ko = ["onClick"], Co = { class: "flex items-center gap-1.5 md:gap-2" }, Vo = { class: "text-xs md:text-sm font-medium truncate" }, _o = {
|
|
2597
2596
|
key: 0,
|
|
2598
|
-
class: "inline-flex min-h-[18px] min-w-[18px] items-center justify-center rounded-[4px] bg-blue-100 px-1 text-[11px] font-semibold text-blue-600"
|
|
2597
|
+
class: "inline-flex min-h-[16px] md:min-h-[18px] min-w-[16px] md:min-w-[18px] items-center justify-center rounded-[4px] bg-blue-100 px-0.5 md:px-1 text-[10px] md:text-[11px] font-semibold text-blue-600 flex-shrink-0"
|
|
2599
2598
|
}, $o = {
|
|
2600
2599
|
key: 0,
|
|
2601
|
-
class: "p-2 border-t"
|
|
2602
|
-
}, Ao = { class: "flex-1 min-h-[300px] overflow-y-auto" }, So = {
|
|
2600
|
+
class: "p-1 md:p-2 border-t"
|
|
2601
|
+
}, Ao = { class: "flex-1 min-h-[250px] md:min-h-[300px] overflow-y-auto" }, So = {
|
|
2603
2602
|
key: 0,
|
|
2604
2603
|
class: "flex items-center justify-center h-full text-gray-500"
|
|
2605
|
-
}, Bo = { class: "text-sm" }, ze = /* @__PURE__ */ W({
|
|
2604
|
+
}, Bo = { class: "text-xs md:text-sm" }, ze = /* @__PURE__ */ W({
|
|
2606
2605
|
__name: "popover-filter-layout",
|
|
2607
2606
|
props: {
|
|
2608
2607
|
badgeCount: {},
|
|
@@ -2692,7 +2691,7 @@ const Ue = /* @__PURE__ */ ee(so, [["render", uo]]), co = { class: "flex items-c
|
|
|
2692
2691
|
i.value = S;
|
|
2693
2692
|
},
|
|
2694
2693
|
class: O([
|
|
2695
|
-
"flex w-full items-center justify-between px-3 py-2 text-left transition-colors hover:bg-gray-50",
|
|
2694
|
+
"flex w-full items-center justify-between px-2 md:px-3 py-1.5 md:py-2 text-left transition-colors hover:bg-gray-50",
|
|
2696
2695
|
e(i) === S ? "bg-blue-50 text-blue-700 border-l-2 border-blue-500" : "text-neutral-700"
|
|
2697
2696
|
])
|
|
2698
2697
|
}, [
|
|
@@ -2705,7 +2704,7 @@ const Ue = /* @__PURE__ */ ee(so, [["render", uo]]), co = { class: "flex items-c
|
|
|
2705
2704
|
key: "slot-" + F,
|
|
2706
2705
|
onClick: (D) => i.value = S.props.name,
|
|
2707
2706
|
class: O([
|
|
2708
|
-
"flex items-center justify-between px-3 py-2 text-left transition-colors hover:bg-gray-50",
|
|
2707
|
+
"flex items-center justify-between px-2 md:px-3 py-1.5 md:py-2 text-left transition-colors hover:bg-gray-50",
|
|
2709
2708
|
e(i) === S.props.name ? "bg-blue-50 text-blue-700 border-l-2 border-blue-500" : "text-neutral-700"
|
|
2710
2709
|
])
|
|
2711
2710
|
}, [
|
|
@@ -2717,7 +2716,7 @@ const Ue = /* @__PURE__ */ ee(so, [["render", uo]]), co = { class: "flex items-c
|
|
|
2717
2716
|
]),
|
|
2718
2717
|
e(v) > 0 ? (u(), w("div", $o, [
|
|
2719
2718
|
d("button", {
|
|
2720
|
-
class: O([L.itemClass, "w-full px-3 py-2 text-left text-sm text-gray-600 hover:bg-gray-50 transition-colors"]),
|
|
2719
|
+
class: O([L.itemClass, "w-full px-2 md:px-3 py-1.5 md:py-2 text-left text-xs md:text-sm text-gray-600 hover:bg-gray-50 transition-colors"]),
|
|
2721
2720
|
onClick: $[0] || ($[0] = (S) => e(_)()),
|
|
2722
2721
|
"data-inside-popover": ""
|
|
2723
2722
|
}, " Очистити всі ", 2)
|
package/dist/index.umd.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(T,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@opengis/core")):typeof define=="function"&&define.amd?define(["exports","vue","@opengis/core"],e):(T=typeof globalThis<"u"?globalThis:T||self,e(T.FilterLib={},T.Vue,T.OpenGISCore))})(this,function(T,e,Z){"use strict";const K=(m,r)=>{const p=m.__vccOpts||m;for(const[t,s]of r)p[t]=s;return p},ue={},pe={xmlns:"http://www.w3.org/2000/svg",width:"15px",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-reload absolute inline mr-1 text-gray-800 transition-all cursor-pointer active:rotate-90 right-1 top-1 hover:text-blue-500"};function ye(m,r){return e.openBlock(),e.createElementBlock("svg",pe,r[0]||(r[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M19.933 13.041a8 8 0 1 1 -9.925 -8.788c3.899 -1 7.935 1.007 9.425 4.747"},null,-1),e.createElementVNode("path",{d:"M20 4v5h-5"},null,-1)]))}const ge=K(ue,[["render",ye]]),he={},be={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"text-blue-600 w-[16px] h-[16px]"};function ke(m,r){return e.openBlock(),e.createElementBlock("svg",be,r[0]||(r[0]=[e.createElementVNode("path",{d:"M20 6 9 17l-5-5"},null,-1)]))}const O=K(he,[["render",ke]]),xe={class:"flex items-center justify-between w-full text-sm"},we={class:"flex items-center cursor-pointer w-full"},Ve={key:0,width:"16",height:"auto",src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9J3doaXRlJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxwYXRoIGQ9J00xMi4yMDcgNC43OTNhMSAxIDAgMDEwIDEuNDE0bC01IDVhMSAxIDAgMDEtMS40MTQgMGwtMi0yYTEgMSAwIDAxMS40MTQtMS40MTRMNi41IDkuMDg2bDQuMjkzLTQuMjkzYTEgMSAwIDAxMS40MTQgMHonLz48L3N2Zz4="},Ce=["value"],Be={class:"flex flex-row items-center font-normal text-gray-800 gap-x-1"},Ee={key:0,class:"text-xs text-gray-500 dark:text-neutral-500 pr-1"},Ne={key:1,class:"absolute right-2 flex size-3.5 items-center justify-center"},W=e.defineComponent({__name:"list-item",props:{layout:{},count:{},type:{},label:{},value:{},isSelected:{type:Boolean},color:{},highlighted:{type:Boolean}},emits:["itemClick"],setup(m,{expose:r,emit:p}){const t=m,s=p;function o(){s("itemClick",t.value)}const y=e.ref(null),f=e.computed(()=>t.layout==="inline"&&t.type==="radio");return r({el:y}),(a,b)=>(e.openBlock(),e.createElementBlock("div",{class:"flex items-center w-full rounded-sm group hover:bg-gray-100",ref_key:"el",ref:y},[e.createElementVNode("div",xe,[e.createElementVNode("div",we,[e.createElementVNode("label",{for:"radio-9740",class:e.normalizeClass([["inline","popover"].includes(a.layout)?"text-sm text-gray-500 px-2 w-full py-2 cursor-pointer !flex flex-row items-center":"flex flex-row items-center w-full px-2 py-2 text-sm text-gray-500 cursor-pointer",{"bg-blue-100":a.highlighted,relative:f.value}]),onClick:e.withModifiers(o,["stop","prevent"])},[f.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["w-[18px] h-[18px] border flex items-center justify-center",[a.type==="checkbox"?"rounded-[4px]":"rounded-full",a.color?`bg-[${a.color}] border-[#ffffff]`:a.isSelected?"bg-[#2563eb] border-[#ffffff]":"bg-[#ffffff] border-[#d9d9d9]"]])},[a.isSelected?(e.openBlock(),e.createElementBlock("img",Ve)):e.createCommentVNode("",!0)],2)),e.createElementVNode("input",{type:"checkbox",class:"hidden",id:"radio-9740",value:a.value},null,8,Ce),e.createElementVNode("div",{class:e.normalizeClass(["flex flex-1 flex-row items-center justify-between",f.value?"pl-1 pr-6":"w-[calc(100%-18px)] pl-[10px]"])},[e.createElementVNode("span",Be,e.toDisplayString(a.label??"Відсутні дані"),1),a.count?(e.openBlock(),e.createElementBlock("div",Ee," ("+e.toDisplayString(a.count)+") ",1)):e.createCommentVNode("",!0)],2),f.value&&a.isSelected?(e.openBlock(),e.createElementBlock("span",Ne,[e.createVNode(O)])):e.createCommentVNode("",!0)],2)])])],512))}});function q(m,r){const{options:p=[],limit:t=20}=m;function s(g){return Array.isArray(g)?g[0]:g}const o=e.ref(s(m.modelValue)),y=e.ref(""),f=e.ref(!1),a=e.ref([]),b=e.ref("id"),c=e.ref("text"),u=e.ref(!1),d=e.ref(m.layout!=="popover"&&p.length>t);function k(g){const h=g.find(Boolean)??{},_=["id","value","code","key"].find(V=>V in h)??"id",D=["text","label","name","title"].find(V=>V in h)??"text";return{autoValueKey:_,autoLabelKey:D}}if(p.length>0){const g=k(p);b.value=g.autoValueKey,c.value=g.autoLabelKey}const w=e.computed(()=>{const g=a.value;return m.layout==="popover"||u.value?g:g.slice(0,t)});e.watch(()=>m.modelValue,g=>{o.value=s(g)},{immediate:!0}),a.value=[...p].sort((g,h)=>m.sort==="count"?h.count&&g.count?h.count-g.count:0:m.sort==="name"?String(g[c.value]??"").localeCompare(String(h[c.value]??"")):0);function x(g){return o.value===g[b.value]}function i(g){o.value=g[b.value],r("update:modelValue",o.value),r("change",{name:m.name,value:o.value})}function l(){o.value=void 0,r("update:modelValue",o.value),r("clear",m.name)}function n(){u.value=!u.value}return{innerValue:o,searchTerm:y,filteredOptions:w,isSelected:x,selectItem:i,clear:l,toggleShowAll:n,isReqProc:f,showAll:u,isEnableShowAll:d,labelKey:c,valueKey:b,allOptions:a}}const Se={},_e={class:"w-48 mx-auto",viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function De(m,r){return e.openBlock(),e.createElementBlock("svg",_e,r[0]||(r[0]=[e.createStaticVNode('<rect x="27" y="50.5" width="124" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="27" y="50.5" width="124" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-50 dark:stroke-neutral-700/10"></rect><rect x="34.5" y="58" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="61" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="73" width="77" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/30"></rect><rect x="27" y="36" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="39" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="51" width="92" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><g filter="url(#filter1)"><rect x="12" y="6" width="154" height="40" rx="8" fill="currentColor" class="fill-white dark:fill-neutral-800" shape-rendering="crispEdges"></rect><rect x="12.5" y="6.5" width="153" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/60" shape-rendering="crispEdges"></rect><rect x="20" y="14" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="17" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="29" width="106" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect></g><defs><filter id="filter1" x="0" y="0" width="178" height="64" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix><feOffset dy="6"></feOffset><feGaussianBlur stdDeviation="6"></feGaussianBlur><feComposite in2="hardAlpha" operator="out"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03 0"></feColorMatrix><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1187_14810"></feBlend><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1187_14810" result="shape"></feBlend></filter></defs>',12)]))}const H=K(Se,[["render",De]]),$e={},Fe={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-chevron-down w-[14px] rotate"};function Ae(m,r){return e.openBlock(),e.createElementBlock("svg",Fe,r[0]||(r[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)]))}const U=K($e,[["render",Ae]]),je={},Me={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-chevron-down w-[14px] rotate-[180deg]"};function Re(m,r){return e.openBlock(),e.createElementBlock("svg",Me,r[0]||(r[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)]))}const Q=K(je,[["render",Re]]),Te={key:0,class:"w-full"},Ke={class:"flex flex-col items-center justify-center p-5 text-center"},Le={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},ze={key:1,class:"flex justify-between items-center text-xs text-gray-500 p-1 border-t"},Oe=e.defineComponent({__name:"radio",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{default:10},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(m,{expose:r,emit:p}){const t=m,s=e.ref(null),o=p,{innerValue:y,filteredOptions:f,isSelected:a,selectItem:b,clear:c,toggleShowAll:u,isReqProc:d,showAll:k,isEnableShowAll:w,labelKey:x,valueKey:i,allOptions:l}=q({...t,modelValue:t.modelValue??t.default??""},o);return r({clear:c,inputTextRef:s}),e.watch(()=>t.modelValue,n=>{n===void 0&&(y.value=void 0)}),(n,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([n.layout==="popover"?"flex flex-col h-full":"flex flex-col vs-filter-checkbox"])},[e.createElementVNode("div",{class:e.normalizeClass([n.layout==="popover"?"flex-1 overflow-y-auto p-2":"",n.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),h=>(e.openBlock(),e.createBlock(W,{layout:n.layout,key:h[e.unref(i)],count:h.count,label:h[e.unref(x)],color:h.color,type:"radio",value:h[e.unref(i)],"is-selected":e.unref(a)(h),onItemClick:_=>e.unref(b)(h)},null,8,["layout","count","label","color","value","is-selected","onItemClick"]))),128))],2),n.type==="select"&&e.unref(f).length===0&&!e.unref(d)?(e.openBlock(),e.createElementBlock("div",Te,[e.createElementVNode("div",Ke,[e.createVNode(H),g[4]||(g[4]=e.createElementVNode("div",{class:"max-w-sm mx-auto mt-6"},[e.createElementVNode("p",{class:"font-medium text-gray-800 dark:text-neutral-200"},"За вашим запитом нічого не знайдено"),e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"})],-1))])])):e.createCommentVNode("",!0),n.layout!=="popover"&&n.type!=="select"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[!e.unref(k)&&e.unref(w)?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:g[0]||(g[0]=(...h)=>e.unref(u)&&e.unref(u)(...h)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[g[5]||(g[5]=e.createTextVNode(" Показати більше ",-1)),e.createVNode(U)])):e.createCommentVNode("",!0),e.unref(k)?(e.openBlock(),e.createElementBlock("div",{key:1,onClick:g[1]||(g[1]=(...h)=>e.unref(u)&&e.unref(u)(...h)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[g[6]||(g[6]=e.createTextVNode(" Показати менше ",-1)),e.createVNode(Q)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),n.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[n.layout==="inline"?(e.openBlock(),e.createElementBlock("div",Le,[e.createTextVNode(e.toDisplayString(e.unref(y)||e.unref(y)===null?1:0)+" з "+e.toDisplayString(e.unref(l).length)+" обрано ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:g[2]||(g[2]=(...h)=>e.unref(c)&&e.unref(c)(...h))}," Очистити ",512),[[e.vShow,e.unref(y)!==""&&e.unref(y)!==void 0]])])):e.createCommentVNode("",!0),n.layout==="popover"?(e.openBlock(),e.createElementBlock("div",ze,[e.createElementVNode("span",null,e.toDisplayString(e.unref(y)||e.unref(y)===null?1:0)+" з "+e.toDisplayString(e.unref(l).length)+" обрано",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:g[3]||(g[3]=(...h)=>e.unref(c)&&e.unref(c)(...h))}," Очистити ",512),[[e.vShow,e.unref(y)!==""&&e.unref(y)!==void 0]])])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}});function v(m,r){const{options:p=[],limit:t=20}=m;function s(g){return Array.isArray(g)?g:g?[g]:[]}const o=e.ref(s(m.modelValue)),y=e.ref(""),f=e.ref(!1),a=e.ref([]),b=e.ref("id"),c=e.ref("text"),u=e.ref(!1),d=e.ref(m.layout!=="popover"&&p.length>t);function k(g){const h=g.find(Boolean)??{},_=["id","value","code","key"].find(V=>V in h)??"id",D=["text","label","name","title"].find(V=>V in h)??"text";return{autoValueKey:_,autoLabelKey:D}}if(p.length>0){const g=k(p);b.value=g.autoValueKey,c.value=g.autoLabelKey}const w=e.computed(()=>{const g=a.value;return m.layout==="popover"||u.value?g:g.slice(0,t)});e.watch(()=>m.modelValue,g=>{o.value=s(g)},{immediate:!0}),a.value=[...p].sort((g,h)=>m.sort==="count"?h.count&&g.count?h.count-g.count:0:m.sort==="name"?String(g[c.value]).localeCompare(String(h[c.value])):0);function x(g){return o.value&&o.value.includes(g[b.value])}function i(g){const h=o.value.includes(g[b.value]);o.value=h?o.value.filter(_=>_!==g[b.value]):[...o.value,g[b.value]],r("update:modelValue",o.value),r("change",{name:m.name,value:o.value})}function l(){o.value=[],r("update:modelValue",o.value),r("clear",m.name)}function n(){u.value=!u.value}return{innerValue:o,searchTerm:y,filteredOptions:w,isSelected:x,selectItem:i,clear:l,toggleShowAll:n,isReqProc:f,showAll:u,isEnableShowAll:d,labelKey:c,valueKey:b,allOptions:a}}const ee={en:{apply:"Apply",search:"Search",more:"Show more",less:"Show less",selected:"selected",clear:"Clear",notfound:"Nothing found",period:"Period",today:"Today",week:"Week",max:"max",min:"min",month:"Month",quarter:"Quarter",year:"Year",alltime:"All Time",prev:"Prev",next:"Next",selectFieldHelp:"Select a field to start creating a filter."},uk:{apply:"Застосувати",search:"Пошук",more:"Показати більше",less:"Показати меньше",selected:"обрано",clear:"Очистити",notfound:"Нічого не знайдено",period:"Період",today:"Сьогодні",week:"Тиждень",max:"макс",min:"мін",month:"Місяць",quarter:"Квартал",year:"Рік",alltime:"Весь час",prev:"Попередній період",next:"Настпуний період",selectFieldHelp:"Оберіть поле, щоб розпочати створення фільтра."}};function te(m){const r=m.split(".")[1],p=typeof window<"u"&&window.localStorage?localStorage.locale:null;return(ee[p||navigator.language]||ee.uk)[r]}function z(){const m=e.getCurrentInstance();if(!m.appContext.config.globalProperties.$i18n)return te;const r=m.appContext.config.globalProperties.$t;return p=>{const t=r(p);return t===p?te(p):t}}const Ie={key:0,class:"w-full"},Ue={class:"flex flex-col items-center justify-center p-5 text-center"},Pe={class:"max-w-sm mx-auto mt-6"},Ye={class:"font-medium text-gray-800 dark:text-neutral-200"},We={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},qe={key:1,class:"flex justify-between items-center text-xs text-gray-500 p-1 border-t"},le=e.defineComponent({__name:"checkbox",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{default:10},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(m,{expose:r,emit:p}){const t=z(),s=m,o=p,{innerValue:y,filteredOptions:f,isSelected:a,selectItem:b,clear:c,toggleShowAll:u,isReqProc:d,showAll:k,isEnableShowAll:w,labelKey:x,valueKey:i,allOptions:l}=v({...s,modelValue:s.modelValue},o);return e.watch(()=>s.modelValue,n=>{n===void 0&&(y.value=[])}),r({clear:c}),(n,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([n.layout==="popover"?"flex flex-col h-full":"flex flex-col vs-filter-checkbox space-y-0.5"])},[e.createElementVNode("div",{class:e.normalizeClass([n.layout==="popover"?"flex-1 overflow-y-auto p-2":"",n.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),h=>(e.openBlock(),e.createBlock(W,{layout:n.layout,count:h.count,label:h[e.unref(x)],color:h.color,type:"checkbox",value:h[e.unref(i)],"is-selected":e.unref(a)(h),onItemClick:_=>e.unref(b)(h)},null,8,["layout","count","label","color","value","is-selected","onItemClick"]))),256))],2),n.type==="select"&&e.unref(f).length===0&&!e.unref(d)?(e.openBlock(),e.createElementBlock("div",Ie,[e.createElementVNode("div",Ue,[e.createVNode(H),e.createElementVNode("div",Pe,[e.createElementVNode("p",Ye,e.toDisplayString(e.unref(t)("filter.notfound")),1),g[4]||(g[4]=e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"},null,-1))])])])):e.createCommentVNode("",!0),n.layout!=="popover"&&n.type!=="select"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[!e.unref(k)&&e.unref(w)?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:g[0]||(g[0]=(...h)=>e.unref(u)&&e.unref(u)(...h)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.more"))+" ",1),e.createVNode(U)])):e.createCommentVNode("",!0),e.unref(k)?(e.openBlock(),e.createElementBlock("div",{key:1,onClick:g[1]||(g[1]=(...h)=>e.unref(u)&&e.unref(u)(...h)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.less"))+" ",1),e.createVNode(Q)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),n.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[n.layout==="inline"?(e.openBlock(),e.createElementBlock("div",We,[e.createTextVNode(e.toDisplayString(e.unref(y).length)+" / "+e.toDisplayString(e.unref(l).length)+" "+e.toDisplayString(e.unref(t)("filter.selected"))+" ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:g[2]||(g[2]=(...h)=>e.unref(c)&&e.unref(c)(...h))},e.toDisplayString(e.unref(t)("filter.clear")),513),[[e.vShow,e.unref(y).length!==0]])])):e.createCommentVNode("",!0),n.layout==="popover"?(e.openBlock(),e.createElementBlock("div",qe,[e.createElementVNode("span",null,e.toDisplayString(e.unref(y).length)+" / "+e.toDisplayString(e.unref(l).length)+" "+e.toDisplayString(e.unref(t)("filter.selected")),1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:g[3]||(g[3]=(...h)=>e.unref(c)&&e.unref(c)(...h))},e.toDisplayString(e.unref(t)("filter.clear")),513),[[e.vShow,e.unref(y).length!==0]])])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),He={},Qe={xmlns:"http://www.w3.org/2000/svg",width:"15px",height:"15px",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-search stroke-gray-500 transition-all"};function Ge(m,r){return e.openBlock(),e.createElementBlock("svg",Qe,r[0]||(r[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"},null,-1),e.createElementVNode("path",{d:"M21 21l-6 -6"},null,-1)]))}const oe=K(He,[["render",Ge]]),Xe={},Je={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-x stroke-gray-500 hover:stroke-red-500 transition-all",width:"15px",height:"15px"};function Ze(m,r){return e.openBlock(),e.createElementBlock("svg",Je,r[0]||(r[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M18 6l-12 12"},null,-1),e.createElementVNode("path",{d:"M6 6l12 12"},null,-1)]))}const G=K(Xe,[["render",Ze]]);class ne{static getWidthClass(r){return typeof r=="number"?`max-w-[${r}px] min-w-[${r}px]`:typeof r=="string"?r.endsWith("%")||r.endsWith("px")?`max-w-[${r}]`:`max-w-${r}`:"w-full"}}const ve={class:"absolute bottom-2/4 translate-y-2/4 cursor-pointer left-3"},et=["placeholder"],tt=e.defineComponent({__name:"text-input",props:{id:{},name:{},title:{},type:{},label:{},width:{default:220},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(m,{emit:r}){const p=m,t=e.ref((p.placeholder||p.label||p.title||p.name||"search").toString()),s=r,o=e.ref(p.modelValue?.toString()??"");e.watch(()=>p.modelValue,b=>{b!==o.value&&(o.value=b?.toString()??"")});let y=null;function f(){if(o.value=o.value.trimStart(),o.value.length===0){a();return}y&&clearTimeout(y),y=setTimeout(()=>{s("update:modelValue",o.value),s("change",{name:p.name,value:o.value})},300)}function a(){o.value="",s("update:modelValue",""),s("clear",p.name)}return(b,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-form-text relative bg-white rounded-sm [&>input]:py-[7px] [&>input]:max-h-[38px] [&>input]:ps-10 [&>input]:pe-8 [&>input]:block [&>input]:w-full [&>input]:bg-gray-100 [&>input]:border-transparent [&>input]:rounded-sm [&>input]:text-sm [&>input]:focus:bg-white [&>input]:focus:border-blue-500 [&>input]:focus:ring-blue-500 [&>input]:disabled:opacity-50 [&>input]:disabled:pointer-events-none [&>input]:dark:bg-neutral-700 [&>input]:dark:border-transparent [&>input]:dark:text-neutral-400 [&>input]:dark:placeholder:text-neutral-400 dark:focus:bg-neutral-800 dark:focus:ring-neutral-600",b.layout==="inline"?e.unref(ne).getWidthClass(b.width):"mb-2"+(b.layout==="popover"?" m-2":"")])},[e.createElementVNode("div",ve,[e.createVNode(oe)]),o.value!==""?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:a,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer"},[e.createVNode(G)])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":c[0]||(c[0]=u=>o.value=u),onInput:f,placeholder:t.value,class:"!pr-7 !pl-8 bg-white h-[38px] min-w-[100px] text-sm py-2 px-3 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-sm text-sm text-stone-800 placeholder:text-stone-400 focus:border-2 focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,40,et),[[e.vModelText,o.value]])],2))}});function re(m={color:"blue"}){return e.computed(()=>{const p=`w-full px-3 py-2 border-solid border text-black border-gray-300 text-sm rounded focus:outline-none focus:ring-2 focus:ring-${m.color}-500 focus:border-transparent
|
|
2
|
-
text-gray-800 bg-white dark:text-neutral-300 dark:bg-neutral-800 dark:border-neutral-600`;return m?.size==="sm"?`${p}h-[32px]`:`${p}h-[38px]`})}function lt(){return"rounded-md font-medium border-gray-200 border-solid disabled:pointer-events-none disabled:opacity-50 px-4 py-2 w-full bg-transparent border text-black text-sm h-[38px]"}function ot(){return"font-medium border border-gray-200 border-solid disabled:pointer-events-none disabled:opacity-50 h-7 rounded-md text-xs px-2 py-1 text-gray-800 bg-white hover:bg-gray-100 dark:text-neutral-300 dark:bg-neutral-800 dark:hover:bg-neutral-700 dark:border-neutral-600"}function ae(m){return m==="ghost"?"inline-flex relative py-2 px-4 items-center gap-x-2 text-sm font-medium rounded-sm border text-gray-600 hover:bg-blue-100 hover:text-gray-800 focus:outline-hidden focus:bg-gray-100 focus:text-gray-800 disabled:opacity-50 disabled:pointer-events-none dark:text-gray-500 dark:hover:bg-blue-800/30 dark:hover:text-blue-400 dark:focus:bg-blue-800/30 dark:focus:text-blue-400":m==="soft"?"inline-flex relative py-2 px-4 items-center gap-x-2 text-sm font-medium rounded-sm border bg-white-100 text-gray-800 hover:bg-gray-200 hover:bg-gray-200 focus:outline-hidden focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:text-blue-400 dark:hover:bg-blue-900 dark:focus:bg-blue-900":"relative border-solid border-gray-200 focus-visible:outline-hidden focus-visible:ring-ring inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border-input hover:bg-gray-100 border px-4 py-2 gap-1 bg-transparent h-[38px]"}const nt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},rt=["placeholder","disabled"],at={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},st={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},it=["placeholder","disabled"],ct=["disabled"],no={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},ro={key:1,class:"flex justify-end items-center text-xs text-gray-500 p-1 border-t"},dt=e.defineComponent({__name:"range-input",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(m,{expose:r,emit:p}){const t=re(),s=lt(),o=z(),y=m,f=e.ref(y.modelValue??y.default??[]),a=p,b=e.computed({get:()=>y.modelValue??f.value,set:d=>{y.modelValue!==void 0?a("update:modelValue",d):f.value=d}});function c(){a("change",{name:y.name,value:b.value||f.value})}function u(){f.value=[],b.value=f.value,a("clear",y.name)}return e.watch(()=>y.modelValue,d=>{d!==void 0&&y.layout!=="popover"?(f.value=d,a("update:modelValue",d)):f.value=[]}),r({clear:u,currentValue:b}),(d,k)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",null,[e.createElementVNode("div",{class:e.normalizeClass(d.layout==="vertical"?"inline-flex items-center gap-2":"space-y-3 p-2")},[e.createElementVNode("div",null,[d.layout!=="vertical"?(e.openBlock(),e.createElementBlock("label",nt,e.toDisplayString(e.unref(o)("filter.from")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"number",class:e.normalizeClass(e.unref(t)),placeholder:d.placeholder?.[0]??e.unref(o)("filter.min"),step:"1",style:{outline:"none"},"onUpdate:modelValue":k[0]||(k[0]=w=>b.value[0]=w),disabled:d.disabled},null,10,rt),[[e.vModelText,b.value[0]]])]),d.layout==="vertical"?(e.openBlock(),e.createElementBlock("label",at," - ")):e.createCommentVNode("",!0),e.createElementVNode("div",null,[d.layout!=="vertical"?(e.openBlock(),e.createElementBlock("label",st,e.toDisplayString(e.unref(o)("filter.to")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"number",class:e.normalizeClass(e.unref(t)),placeholder:d.placeholder?.[1]??e.unref(o)("filter.max"),min:"0",max:"1000000000000000",step:"1",style:{outline:"none"},"onUpdate:modelValue":k[1]||(k[1]=w=>b.value[1]=w),disabled:d.disabled},null,10,it),[[e.vModelText,b.value[1]]])]),["popover","inline","vertical"].includes(d.layout)?(e.openBlock(),e.createElementBlock("button",{key:1,onClick:c,class:e.normalizeClass(e.unref(s)+(d.layout==="vertical"?" w-[50px]":" bg-blue-100 hover:bg-blue-200"))},e.toDisplayString(d.layout==="vertical"?"Ok":e.unref(o)("filter.apply")),3)):e.createCommentVNode("",!0),["popover","inline"].includes(d.layout)?(e.openBlock(),e.createElementBlock("button",{key:2,disabled:!(b.value[0]||b.value[1]),onClick:u,class:e.normalizeClass(e.unref(s)+" hover:bg-gray-100")},e.toDisplayString(e.unref(o)("filter.clear")),11,ct)):e.createCommentVNode("",!0)],2)]),(d.cleanable&&f.value.length,e.createCommentVNode("",!0))],64))}});class R{static format(r){const p=r.getFullYear(),t=(r.getMonth()+1).toString().padStart(2,"0"),s=r.getDate().toString().padStart(2,"0");return`${p}-${t}-${s}`}static getShiftedDay(r,p=0){const t=r?new Date(r):new Date;return t.setDate(t.getDate()+p),this.format(t)}static getLastWeekRange(r,p,t=0){if(r&&p){const b=new Date(r),c=new Date(p);return b.setDate(b.getDate()+t*7),c.setDate(c.getDate()+t*7),[this.format(b),this.format(c)]}const s=new Date,o=s.getDay(),y=o===0?13:o-1+7,f=new Date(s);f.setDate(s.getDate()-y+t*7);const a=new Date(f);return a.setDate(f.getDate()+6),[this.format(f),this.format(a)]}static getMonthRange(r,p,t=0){let s;r?s=new Date(r):s=new Date,s=new Date(s.getFullYear(),s.getMonth()+t,1);const o=s,y=new Date(s.getFullYear(),s.getMonth()+1,0);return[this.format(o),this.format(y)]}static getQuarterRange(r,p,t=0){const s=r||p,o=s?new Date(s):new Date;let y=Math.floor(o.getMonth()/3);y+=t;const f=(y%4+4)%4*3,a=o.getFullYear()+Math.floor(y/4),b=new Date(a,f,1),c=new Date(a,f+3,0);return[this.format(b),this.format(c)]}static getYear(r,p=0){let t;return r&&/^\d{4}$/.test(r)?t=parseInt(r,10):r?t=new Date(r).getFullYear():t=new Date().getFullYear(),String(t+p)}static getYearRange(r,p=0){let t;return r&&/^\d{4}$/.test(r)?t=parseInt(r,10):r?t=new Date(r).getFullYear():t=new Date().getFullYear(),[this.format(new Date(t+p,0,1)),this.format(new Date(t+p+1,0,0))]}static getRangeFromDaysBefore(r){const p=new Date,t=new Date(p.getTime());return t.setDate(p.getDate()-r),[this.format(t),this.format(p)]}}function se(m,r){const{popoverRef:p}=m,t=z(),s=e.ref(""),o=e.ref(m.modelValue??m.default??[]),y=e.ref(0);function f(){const l=R.getRangeFromDaysBefore(y.value);return o.value=[...l],r("change",{name:m.name,value:o.value}),r("update:modelValue",o.value),l}function a(l){s.value=l,p.value?.close();const n=[];switch(s.value){case"today":n.push(R.getShiftedDay()),n.push(R.getShiftedDay());break;case"week":n.push(...R.getLastWeekRange());break;case"month":n.push(...R.getMonthRange());break;case"quarter":n.push(...R.getQuarterRange());break;case"year":n.push(...R.getYearRange());break;case"last_7_days":y.value=7,f();break;case"range":y.value=7,n.push(...f());break}o.value=[...n],r("change",{name:m.name,value:o.value}),r("update:modelValue",o.value)}function b(){const l=[];switch(s.value){case"today":l.push(R.getShiftedDay(o.value[0],1));break;case"week":l.push(...R.getLastWeekRange(o.value[0],o.value[1],1));break;case"month":l.push(...R.getMonthRange(o.value[0],o.value[1],1));break;case"quarter":l.push(...R.getQuarterRange(o.value[0],o.value[1],1));break;case"year":l.push(...R.getYearRange(o.value[0],1));break}o.value=[...l],r("change",{name:m.name,value:o.value}),r("update:modelValue",o.value)}function c(){const l=[];switch(s.value){case"today":l.push(R.getShiftedDay(o.value[0],-1));break;case"week":l.push(...R.getLastWeekRange(o.value[0],o.value[1],-1));break;case"month":l.push(...R.getMonthRange(o.value[0],o.value[1],-1));break;case"quarter":l.push(...R.getQuarterRange(o.value[0],o.value[1],-1));break;case"year":l.push(...R.getYearRange(o.value[0],-1));break}o.value=[...l],r("change",{name:m.name,value:o.value}),r("update:modelValue",o.value)}const u=["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"];function d(l){const[n,g,h]=l.split("-");return`${h}.${g}.${n}`}function k(l,n="long"){const g=new Date(Date.UTC(2e3,l-1,1));return new Intl.DateTimeFormat(localStorage.locale,{month:n,timeZone:"UTC"}).format(g)}function w(l){const{value:n}=o;switch(l){case"today":return d(n[0]);case"range":return"Період";case"week":return n[0]&&n[1]?`${d(n[0])} – ${d(n[1])}`:"";case"quarter":if(n[0]){const g=new Date(n[0]),h=g.getFullYear(),_=g.getMonth();return`${Math.floor(_/3)+1} ${t("filter.quarter")} ${h}`}return"";case"month":if(n[0]){const[g,h]=n[0].split("-");return`${k(parseInt(h,10))} ${g}`}return"";case"year":return n[0]||"";case"last_7_days":return"За останні дні";default:return m.label??""}}const x=e.computed(()=>s.value?w(s.value):m.label??"");function i(){s.value="",o.value=[],r("update:modelValue",[]),r("clear",m.name)}return{activeMode:s,innerValue:o,daysBefore:y,onDaysBeforeChange:f,onSelectChange:a,nextClick:b,prevClick:c,ukMonths:u,formatDisplayDate:d,getModeLabel:w,currentLabel:x,clear:i}}const ft={key:0,class:"relative flex w-full h-auto gap-2 filter-date m-2 flex-wrap"},mt={key:0,class:"flex gap-1 !w-[75%] rounded-sm"},ut=["max","disabled"],pt=["min","disabled"],yt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},gt=["max","disabled"],ht={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},bt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},kt=["min","disabled"],xt={class:"flex gap-1 pt-2"},wt=["onClick"],ao={key:0,class:"flex justify-end items-center text-xs text-gray-500 p-1 border-t"},Vt=e.defineComponent({__name:"date-input",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(m,{expose:r,emit:p}){const t=m,s=re(),o=ot(),y=z(),f=p,a=e.ref(null),{activeMode:b,innerValue:c,onSelectChange:u,nextClick:d,prevClick:k,clear:w}=se({...t,popoverRef:a},f);return e.watch(()=>t.modelValue,x=>{x!==void 0?(c.value=x,f("update:modelValue",x)):(b.value="",c.value=[])}),e.watch(c,x=>{f("update:modelValue",x),f("change",{name:t.name,value:x})},{deep:!0}),r({clear:w,popoverRef:a}),(x,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[x.layout==="inline"?(e.openBlock(),e.createElementBlock("div",ft,[e.unref(b)!==""&&e.unref(b)==="range"?(e.openBlock(),e.createElementBlock("div",mt,[i[7]||(i[7]=e.createTextVNode(" 1111 ",-1)),e.withDirectives(e.createElementVNode("input",{type:"date",max:e.unref(c)[1],locale:"uk-UA","onUpdate:modelValue":i[0]||(i[0]=l=>e.unref(c)[0]=l),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-sm focus:outline-blue-600",disabled:x.disabled},null,8,ut),[[e.vModelText,e.unref(c)[0]]]),e.withDirectives(e.createElementVNode("input",{type:"date",min:e.unref(c)[0],locale:"uk-UA","onUpdate:modelValue":i[1]||(i[1]=l=>e.unref(c)[1]=l),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-sm focus:outline-blue-600 appearance-auto",disabled:x.disabled},null,8,pt),[[e.vModelText,e.unref(c)[1]]])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(x.layout==="popover"?"space-y-3 p-2":"flex items-center gap-2")},[e.createElementVNode("div",{class:e.normalizeClass(x.layout!=="popover"?"w-[48%]":"")},[x.layout==="popover"?(e.openBlock(),e.createElementBlock("label",yt,e.toDisplayString(e.unref(y)("filter.from")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"date",max:e.unref(c)[1],locale:"uk-UA","onUpdate:modelValue":i[2]||(i[2]=l=>e.unref(c)[0]=l),class:e.normalizeClass(e.unref(s)),disabled:x.disabled},null,10,gt),[[e.vModelText,e.unref(c)[0]]])],2),x.layout!=="popover"?(e.openBlock(),e.createElementBlock("label",ht," - ")):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(x.layout!=="popover"?"w-[48%]":"")},[x.layout==="popover"?(e.openBlock(),e.createElementBlock("label",bt,e.toDisplayString(e.unref(y)("filter.to")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"date",min:e.unref(c)[0],locale:"uk-UA","onUpdate:modelValue":i[3]||(i[3]=l=>e.unref(c)[1]=l),class:e.normalizeClass(e.unref(s)),disabled:x.disabled},null,10,kt),[[e.vModelText,e.unref(c)[1]]])],2)],2),e.createElementVNode("div",xt,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["today","week","month","quarter","year"],l=>e.createElementVNode("button",{key:l,class:e.normalizeClass(e.unref(o)+(e.unref(b)===l?" bg-blue-100":"")),onClick:n=>e.unref(u)(l)},e.toDisplayString(e.unref(y)("filter."+l)),11,wt)),64)),e.createElementVNode("button",{class:e.normalizeClass(e.unref(o)),onClick:i[4]||(i[4]=(...l)=>e.unref(k)&&e.unref(k)(...l))},"<",2),e.createElementVNode("button",{class:e.normalizeClass(e.unref(o)),onClick:i[5]||(i[5]=(...l)=>e.unref(d)&&e.unref(d)(...l))},">",2)]),(x.cleanable,e.createCommentVNode("",!0))],64))}});function Ct(m,r){const{api:p,options:t=[],limit:s=20,dataKey:o="data"}=m,y=m.multi;function f(B){return y?Array.isArray(B)?B:B?[B]:[]:Array.isArray(B)?B[0]:B}const a=e.ref(f(m.modelValue)),b=e.ref(""),c=e.ref(!1),u=e.ref(t),d=e.ref("id"),k=e.ref("text"),w=e.ref(!1),x=e.ref(m.layout!=="popover"&&t.length>s),i=e.ref([]),l=e.ref(0);function n(B){const $=B.find(Boolean)??{},j=["id","value","code","key"].find(I=>I in $)??"id",M=["text","label","name","title"].find(I=>I in $)??"text";return{autoValueKey:j,autoLabelKey:M}}if(t.length>0){const B=n(t);d.value=B.autoValueKey,k.value=B.autoLabelKey}const g=e.computed(()=>{if(p)return u.value;const B=u.value;if(m.layout==="popover")return B;if(!b.value)return w.value?B:B.slice(0,s);const $=b.value.toLowerCase();return B.filter(j=>j[k.value].toLowerCase().includes($))});let h=null;async function _(B){if(p){c.value=!0;try{const $=new URL(p,window.location.origin);$.searchParams.set("json","1"),$.searchParams.set("key",B),$.searchParams.set("limit",s.toString());const j=await fetch($.toString());if(!j.ok){Z.notify({type:"error",title:"Error",message:"Failed to fetch remote options"}),u.value=[];return}const M=await j.json();if(!M[o]){Z.notify({type:"error",title:"Error",message:M}),u.value=[];return}if(u.value=M[o],u.value.length>0){const I=n(u.value);d.value=I.autoValueKey,k.value=I.autoLabelKey}l.value=M.total}catch($){console.error("Failed to fetch remote options:",$)}finally{c.value=!1}}}e.watch(b,B=>{p&&(h&&clearTimeout(h),h=setTimeout(()=>{_(B)},200))}),e.watch(()=>m.modelValue,B=>{a.value=f(B)},{immediate:!0});function D(B){return y&&Array.isArray(a.value)?a.value.includes(B[d.value]):a.value&&a.value===B[d.value]}function V(B){if(y&&!Array.isArray(a.value)&&(a.value=[]),y&&Array.isArray(a.value)){const $=a.value.includes(B[d.value]);a.value=$?a.value.filter(j=>j!==B[d.value]):[...a.value,B[d.value]],i.value=$?i.value.filter(j=>j!==B[k.value]):[...i.value,B[k.value]]}else a.value=B[d.value],i.value=B[k.value];r("update:modelValue",a.value),r("change",{name:m.name,value:a.value})}function C(){y?(a.value=[],i.value=[]):(a.value=void 0,i.value=[]),r("update:modelValue",a.value),r("clear",m.name)}function S(){h&&clearTimeout(h),b.value="",w.value=!1}function E(){w.value=!w.value}e.onBeforeUnmount(()=>{h&&clearTimeout(h)});const N=e.ref(-1);e.watch(g,()=>{N.value=g.value.length>0?0:-1});function A(B){const $=g.value.length;if(B.key==="ArrowDown")B.preventDefault(),N.value=(N.value+1)%$;else if(B.key==="ArrowUp")B.preventDefault(),N.value=(N.value-1+$)%$;else if(B.key==="Enter"&&(B.preventDefault(),N.value>=0&&N.value<g.value.length)){const j=g.value[N.value];V(j)}}function F(){p&&u.value.length===0&&b.value.length===0&&_(b.value)}return{innerValue:a,searchTerm:b,filteredOptions:g,isSelected:D,selectItem:V,clear:C,resetSearch:S,toggleShowAll:E,isReqProc:c,showAll:w,isEnableShowAll:x,labelKey:k,valueKey:d,allOptions:u,highlightedIndex:N,onKeyDown:A,selectedLabels:i,totalCount:l,loadData:F}}const Bt={class:"h-[45px] shrink-0 px-[6px] py-[4px] flex items-center relative justify-center"},Et=["placeholder"],Nt={key:0,class:"w-full"},St={class:"flex flex-col items-center justify-center p-5 text-center"},_t={class:"max-w-sm mx-auto mt-6"},Dt={class:"font-medium text-gray-800 dark:text-neutral-200"},$t={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},Ft={key:1,class:"flex justify-between items-center text-xs text-gray-500 p-1 border-t"},At=e.defineComponent({__name:"select",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{default:10},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(m,{expose:r,emit:p}){const t=z(),s=m,o=p,y=e.ref(null),{innerValue:f,filteredOptions:a,isSelected:b,selectItem:c,clear:u,resetSearch:d,toggleShowAll:k,isReqProc:w,showAll:x,isEnableShowAll:i,searchTerm:l,labelKey:n,valueKey:g,highlightedIndex:h,onKeyDown:_,selectedLabels:D,totalCount:V,loadData:C}=Ct({...s,modelValue:s.modelValue},o);e.onMounted(()=>{d(),s.layout!=="inline"&&(C(),y.value&&s.layout==="popover"&&y.value.focus())}),e.watch(()=>s.modelValue,E=>{E===void 0&&(s.multi?f.value=[]:f.value=void 0)});const S=e.ref([]);return e.watch(h,E=>{E>=0&&S.value[E]&&S.value[E]?.scrollIntoView({block:"nearest",behavior:"smooth"})}),e.watch(a,()=>{S.value=[]}),r({clear:u,inputTextRef:y,selectedLabels:D,loadData:C}),(E,N)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([E.layout==="popover"?"flex flex-col h-full":"flex flex-col vs-filter-checkbox space-y-0.5"])},[e.createElementVNode("div",Bt,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":N[0]||(N[0]=A=>e.isRef(l)?l.value=A:null),onKeydown:N[1]||(N[1]=(...A)=>e.unref(_)&&e.unref(_)(...A)),class:"w-full h-full text-[13px] px-4 border rounded-sm pl-9 focus:outline-none focus:ring-ring focus:ring-1 focus:ring-blue-500 text-gray-700",placeholder:e.unref(t)("filter.search"),type:"text",ref_key:"inputTextRef",ref:y},null,40,Et),[[e.vModelText,e.unref(l)]]),e.createVNode(oe,{class:"absolute text-gray-400 -translate-y-1/2 left-4 top-1/2"}),e.unref(l)!=""?(e.openBlock(),e.createBlock(G,{key:0,onClick:N[2]||(N[2]=A=>l.value=""),class:"absolute text-gray-400 -translate-y-1/2 cursor-pointer hover:text-red-500 right-4 top-1/2"})):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass([E.layout==="popover"?"flex-1 overflow-y-auto p-2":"",E.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),(A,F)=>(e.openBlock(),e.createBlock(W,{layout:E.layout,count:A.count,label:A[e.unref(n)],color:A.color,type:E.multi?"checkbox":"radio",value:A[e.unref(g)],"is-selected":e.unref(b)(A),highlighted:F===e.unref(h),onItemClick:B=>e.unref(c)(A),ref_for:!0,ref:B=>S.value[F]=B?.el},null,8,["layout","count","label","color","type","value","is-selected","highlighted","onItemClick"]))),256))],2),E.type==="select"&&e.unref(a).length===0&&!e.unref(w)?(e.openBlock(),e.createElementBlock("div",Nt,[e.createElementVNode("div",St,[e.createVNode(H),e.createElementVNode("div",_t,[e.createElementVNode("p",Dt,e.toDisplayString(e.unref(t)("filter.notfound")),1),N[7]||(N[7]=e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"},null,-1))])])])):e.createCommentVNode("",!0),E.layout!=="popover"&&E.type!=="select"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[!e.unref(x)&&e.unref(i)?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:N[3]||(N[3]=(...A)=>e.unref(k)&&e.unref(k)(...A)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.more"))+" ",1),e.createVNode(U)])):e.createCommentVNode("",!0),e.unref(x)?(e.openBlock(),e.createElementBlock("div",{key:1,onClick:N[4]||(N[4]=(...A)=>e.unref(k)&&e.unref(k)(...A)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.less"))+" ",1),e.createVNode(Q)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),E.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[E.layout==="inline"?(e.openBlock(),e.createElementBlock("div",$t,[e.createTextVNode(e.toDisplayString(E.multi&&Array.isArray(e.unref(f))?e.unref(f)?.length:e.unref(f)!==void 0&&(e.unref(f)||e.unref(f)===null)?1:0)+" / "+e.toDisplayString(e.unref(V))+" "+e.toDisplayString(e.unref(t)("filter.selected"))+" ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:N[5]||(N[5]=(...A)=>e.unref(u)&&e.unref(u)(...A))},e.toDisplayString(e.unref(t)("filter.clear")),513),[[e.vShow,e.unref(f)!==""&&e.unref(f)!==void 0||e.unref(f)]])])):e.createCommentVNode("",!0),E.layout==="popover"?(e.openBlock(),e.createElementBlock("div",Ft,[e.createElementVNode("span",null,e.toDisplayString(E.multi&&Array.isArray(e.unref(f))?e.unref(f)?.length:e.unref(f)!==void 0&&(e.unref(f)||e.unref(f)===null)?1:0)+" / "+e.toDisplayString(e.unref(V))+" "+e.toDisplayString(e.unref(t)("filter.selected")),1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:N[6]||(N[6]=(...A)=>e.unref(u)&&e.unref(u)(...A))},e.toDisplayString(e.unref(t)("filter.clear")),513),[[e.vShow,e.unref(f)!==""&&e.unref(f)!==void 0||e.unref(f)]])])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),jt=["for","onClick"],Mt=["id","name","value"],Rt={class:"block"},Tt={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},Kt={key:1,class:"flex justify-between items-center text-xs text-gray-500 p-1 border-t"},Lt=e.defineComponent({__name:"tag-field",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(m,{expose:r,emit:p}){const t=m,s=p,{innerValue:o,isSelected:y,selectItem:f,clear:a,labelKey:b,valueKey:c,allOptions:u}=t.multi?v({...t,modelValue:t.modelValue??t.default??[]},s):q({...t,modelValue:t.modelValue!==void 0?t.modelValue:t.default??""},s);return r({clear:a}),e.watch(()=>t.modelValue,d=>{d===void 0&&(t.multi?o.value=[]:o.value=void 0)}),(d,k)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:e.normalizeClass(["grid grid-cols-3 gap-2 mx-[1px]",d.layout==="popover"?"m-1":"mb-1"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(u),w=>(e.openBlock(),e.createElementBlock("label",{key:`item-${w[e.unref(c)]}`,for:`item-${w[e.unref(c)]}`,onClick:e.withModifiers(x=>e.unref(f)(w),["stop","prevent"]),class:e.normalizeClass([e.unref(y)(w)?"ring-2 ring-indigo-600":"","p-2.5 group relative flex justify-center items-center gap-x-12 text-center text-xs bg-white text-gray-800 border border-gray-200 cursor-pointer rounded-sm dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-200 peer-checked:text-indigo-600 dark:has-checked:text-indigo-500 peer-checked:border-indigo-600 dark:has-checked:border-indigo-500 peer-checked:ring peer-checked:shadow focus:ring dark:has-checked:ring-indigo-500 has-disabled:pointer-events-none has-disabled:text-gray-200 dark:has-disabled:text-neutral-700 has-disabled:after:absolute has-disabled:after:inset-0 has-disabled:after:bg-[linear-gradient(to_right_bottom,transparent_calc(50%-1px),var(--color-gray-200)_calc(50%-1px),var(--color-gray-200)_50%,transparent_50%)] dark:has-disabled:after:bg-[linear-gradient(to_right_bottom,transparent_calc(50%-1px),var(--color-neutral-700)_calc(50%-1px),var(--color-neutral-700)_50%,transparent_50%)]"])},[e.createElementVNode("input",{type:"checkbox",id:`item-${w[e.unref(c)]}`,class:"hidden w4poy border-gray-200 g41z1 g22e3 axcnw dark:text-indigo-500 dark:border-neutral-700 dark:focus:ring-neutral-900",name:`item-${w[e.unref(c)]}`,value:w[e.unref(c)]},null,8,Mt),e.createElementVNode("span",Rt,e.toDisplayString(w[e.unref(b)]),1)],10,jt))),128))],2),d.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[d.layout==="inline"?(e.openBlock(),e.createElementBlock("div",Tt,[e.createTextVNode(e.toDisplayString(d.multi&&Array.isArray(e.unref(o))?e.unref(o)?.length:e.unref(o)!==void 0&&(e.unref(o)||e.unref(o)===null)?1:0)+" з "+e.toDisplayString(e.unref(u).length)+" обрано ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:k[0]||(k[0]=(...w)=>e.unref(a)&&e.unref(a)(...w))}," Очистити ",512),[[e.vShow,e.unref(o)!==""&&e.unref(o)!==void 0||e.unref(o)]])])):e.createCommentVNode("",!0),d.layout==="popover"?(e.openBlock(),e.createElementBlock("div",Kt,[e.createElementVNode("span",null,e.toDisplayString(d.multi&&Array.isArray(e.unref(o))?e.unref(o)?.length:e.unref(o)!==void 0&&(e.unref(o)||e.unref(o)===null)?1:0)+" з "+e.toDisplayString(e.unref(u).length)+" обрано",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:k[1]||(k[1]=(...w)=>e.unref(a)&&e.unref(a)(...w))}," Очистити ",512),[[e.vShow,e.unref(o)!==void 0&&e.unref(o)!==""||e.unref(o)]])])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],64))}}),zt=["disabled","title"],Ot={class:"flex w-full items-center justify-between gap-1 overflow-hidden text-left"},It={class:"truncate text-ellipsis text-sm"},Ut={key:0,class:"inline-flex min-h-[18px] min-w-[18px] items-center justify-center rounded-sm bg-blue-100 px-2 text-[11px] font-semibold text-blue-600"},Pt={class:"w-full text-sm text-stone-800 bg-white shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-sm focus:outline-none focus:bg-stone-100 after:h-4 after:absolute after:-bottom-4 after:start-0 after:w-full before:h-4 before:absolute before:-top-4 before:start-0 before:w-full"},Yt={class:"w-[360px] max-h-[500px] overflow-auto [&::-webkit-scrollbar]:h-2 [&::-webkit-scrollbar]:w-1 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-stone-100 [&::-webkit-scrollbar-thumb]:bg-stone-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 before:w-full p-2"},X=e.defineComponent({__name:"popover-field",props:{disabled:{type:Boolean,default:!1},label:{},en:{},ua:{},uk:{},fr:{},de:{},es:{},currentValue:{},fieldRef:{},width:{},mode:{},layout:{}},setup(m,{expose:r}){const p=m,t=e.computed(()=>ae(p.mode)),s=e.ref(!1),o=e.ref({top:0,left:0}),y=e.ref(null),f=e.ref(null),a=e.ref(null);function b(){const h=f.value,_=a.value;if(!h||!_)return;const D=h.getBoundingClientRect(),V=_.offsetWidth,C=_.offsetHeight,S=window.innerWidth,E=window.innerHeight,N=8;let A=D.bottom+N,{left:F}=D;const B=Math.max(S-V-10,10);if(F=Math.min(F,B),F=Math.max(F,10),A+C>E-10){const $=D.top-C-N;A=$>=10?$:Math.max(E-C-10,10)}A<10&&(A=10),o.value={top:A,left:F}}function c(){s.value=!s.value,s.value&&e.nextTick(()=>{b(),p.fieldRef?.inputTextRef&&p.fieldRef?.inputTextRef?.focus?.(),p.fieldRef?.loadData&&p.fieldRef?.loadData?.()})}function u(h){!y.value?.contains(h.target)&&!a.value?.contains(h.target)&&!f.value?.contains(h.target)&&(s.value=!1)}function d(h){h.key==="Escape"&&(s.value=!1)}const k=e.ref(!1),w=e.ref("ua"),x=h=>{h.detail.key==="locale"&&(w.value=h.detail.newValue)};e.onMounted(()=>{k.value=!0,w.value=localStorage.locale,window.addEventListener("storage",x),document.addEventListener("click",u,!0),document.addEventListener("keydown",d),window.addEventListener("scroll",b,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("resize",x),document.removeEventListener("click",u,!0),document.removeEventListener("keydown",d),window.removeEventListener("scroll",b,!0)});function i(){s.value=!1}r({close:i});function l(h){return Array.isArray(h)?h.filter(_=>_!=null&&_!=="").length:h&&typeof h=="object"?Object.values(h).filter(_=>_!=null&&_!=="").length:typeof h=="string"?h.trim()===""?0:1:typeof h=="number"?Number.isNaN(h)?0:1:h===null||h!==void 0?1:0}const n=e.computed(()=>{const h=p.fieldRef?.selectedLabels,_=l(h);return _>0?_:l(p.currentValue)}),g=e.computed(()=>{const h=p.fieldRef?.selectedLabels;return!h||["inline"].includes(p.layout||"")?p[w.value]||(p.label??""):Array.isArray(h)?h.length>0?h.join(", "):p.label??"":String(h)});return(h,_)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{onClick:c,disabled:h.disabled,ref_key:"triggerRef",ref:f,title:h.label,class:e.normalizeClass([t.value,h.width?e.unref(ne).getWidthClass(h.width):"w-full",h.layout==="inline"&&n.value>0?"border border-blue-400 bg-blue-50 text-blue-600":""]),type:"button"},[e.createElementVNode("span",Ot,[e.createElementVNode("span",It,e.toDisplayString(g.value),1),h.layout==="inline"&&n.value>0?(e.openBlock(),e.createElementBlock("span",Ut,e.toDisplayString(n.value),1)):e.createCommentVNode("",!0)]),e.createVNode(U,{class:"h-4 w-4 text-neutral-500"})],10,zt),k.value?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:"body"},[e.withDirectives(e.createElementVNode("div",{ref_key:"popperRef",ref:a,class:"vsTailwind vs-popover__content bottom-right w-fit fixed z-[1000]",style:e.normalizeStyle({top:`${o.value.top}px`,left:`${o.value.left}px`}),"data-inside-popover":""},[e.createElementVNode("div",Pt,[e.createElementVNode("div",Yt,[e.renderSlot(h.$slots,"default")])])],4),[[e.vShow,s.value]])])):e.createCommentVNode("",!0)]))}}),Wt={},qt={xmlns:"http://www.w3.org/2000/svg",width:"15px",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-chevron-down text-gray-800 rotate-[90deg]"};function Ht(m,r){return e.openBlock(),e.createElementBlock("svg",qt,r[0]||(r[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)]))}const Qt=K(Wt,[["render",Ht]]),Gt={},Xt={xmlns:"http://www.w3.org/2000/svg",width:"15px",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-chevron-down text-gray-800 rotate-[270deg]"};function Jt(m,r){return e.openBlock(),e.createElementBlock("svg",Xt,r[0]||(r[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)]))}const Zt=K(Gt,[["render",Jt]]),vt={class:"flex gap-1"},el={class:"mb-1"},tl={class:"mb-1"},ll={class:"inline-flex rounded-sm shrink-0 pl-1"},ol=["title"],nl={class:"inline-flex rounded-sm shrink-0 pl-1"},rl=["title"],al={key:1,class:"flex gap-1 !w-[75%] rounded-sm"},sl=["max","value","disabled"],il=["min","value","disabled"],so={key:0,class:"flex justify-end items-center text-xs text-gray-500 p-1 border-t"},cl=e.defineComponent({__name:"date-input-inline",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(m,{expose:r,emit:p}){const t=z(),s=m,o=p,y=e.ref(null),{activeMode:f,innerValue:a,onSelectChange:b,nextClick:c,prevClick:u,currentLabel:d,clear:k}=se({...s,popoverRef:y},o);e.watch(()=>s.modelValue,i=>{i!==void 0?(a.value=i,o("update:modelValue",i)):(f.value="",a.value=[])}),e.watch(a,i=>{o("update:modelValue",i),o("change",{name:s.name,value:i})},{deep:!0});function w(i){const l=Array.isArray(a.value)?[...a.value]:[];a.value=[i,l[1]||""]}function x(i){const l=Array.isArray(a.value)?[...a.value]:[];a.value=[l[0]||"",i]}return r({clear:k,popoverRef:y}),(i,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",vt,[e.createVNode(X,{ref_key:"popoverRef",ref:y,label:e.unref(d),"current-value":e.unref(a),mode:i.mode,width:typeof i.width=="number"&&e.unref(a).length?i.width-70:i.width,onClear:e.unref(k),layout:i.layout,class:e.normalizeClass(i.itemClass)},{default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:l[0]||(l[0]=n=>e.unref(b)("range")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-sm cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.period"))+" ",1),e.unref(f)==="range"?(e.openBlock(),e.createBlock(O,{key:0})):e.createCommentVNode("",!0)])]),l[12]||(l[12]=e.createElementVNode("div",null,[e.createElementVNode("div",{class:"pt-1 mt-1 border-t"})],-1)),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:l[1]||(l[1]=n=>e.unref(b)("today")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-sm cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.today"))+" ",1),e.unref(f)==="today"?(e.openBlock(),e.createBlock(O,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:l[2]||(l[2]=n=>e.unref(b)("week")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-sm cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.week"))+" ",1),e.unref(f)==="week"?(e.openBlock(),e.createBlock(O,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:l[3]||(l[3]=n=>e.unref(b)("month")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-sm cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.month"))+" ",1),e.unref(f)==="month"?(e.openBlock(),e.createBlock(O,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:l[4]||(l[4]=n=>e.unref(b)("quarter")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-sm cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.quarter"))+" ",1),e.unref(f)==="quarter"?(e.openBlock(),e.createBlock(O,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",el,[e.createElementVNode("button",{type:"button",onClick:l[5]||(l[5]=n=>e.unref(b)("year")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-sm cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.year"))+" ",1),e.unref(f)==="year"?(e.openBlock(),e.createBlock(O,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",tl,[e.createElementVNode("button",{type:"button",onClick:l[6]||(l[6]=n=>e.unref(k)()),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-sm cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.alltime"))+" ",1),e.unref(a)[0]?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(O,{key:0}))])])]),_:1,__:[12]},8,["label","current-value","mode","width","onClear","layout","class"]),e.unref(f)!==""&&e.unref(f)!=="range"&&e.unref(f)!=="last_7_days"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",ll,[e.createElementVNode("button",{type:"button",title:e.unref(t)("filter.prev"),class:"inline-flex h-[38px] items-center px-2 text-sm text-gray-800 bg-gray-100 gap-x-2 -ms-px first:rounded-s-lg first:ms-0 last:rounded-e-lg focus:z-10 hover:bg-gray-200 focus:bg-gray-200 duration-300",onClick:l[7]||(l[7]=(...n)=>e.unref(u)&&e.unref(u)(...n))},[e.createVNode(Qt)],8,ol)]),e.createElementVNode("div",nl,[e.createElementVNode("button",{type:"button",title:e.unref(t)("filter.next"),class:"inline-flex h-[38px] items-center px-2 text-sm text-gray-800 gap-x-2 bg-gray-100 -ms-px first:rounded-s-lg first:ms-0 last:rounded-e-lg focus:z-10 hover:bg-gray-200 focus:bg-gray-200 duration-300",onClick:l[8]||(l[8]=(...n)=>e.unref(c)&&e.unref(c)(...n))},[e.createVNode(Zt)],8,rl)])],64)):e.createCommentVNode("",!0),e.unref(f)!==""&&e.unref(f)==="range"?(e.openBlock(),e.createElementBlock("div",al,[e.createElementVNode("input",{type:"date",max:e.unref(a)[1],locale:"uk-UA",value:e.unref(a)[0],onInput:l[9]||(l[9]=n=>w(n.target.value)),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-sm focus:outline-blue-600",disabled:i.disabled},null,40,sl),e.createElementVNode("input",{type:"date",min:e.unref(a)[0],locale:"uk-UA",value:e.unref(a)[1],onInput:l[10]||(l[10]=n=>x(n.target.value)),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-sm focus:outline-blue-600 appearance-auto",disabled:i.disabled},null,40,il)])):e.createCommentVNode("",!0)]),(i.cleanable,e.createCommentVNode("",!0))],64))}}),dl={class:"flex flex-wrap items-center gap-2"},fl=["disabled","onClick"],ml={key:0,class:"flex justify-between items-center text-xs text-gray-500 p-1 border-t"},ie={radio:Oe,checkbox:le,check:le,text:tt,range:dt,date:Vt,select:At,tag:Lt,button:e.defineComponent({__name:"button-field",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(m,{expose:r,emit:p}){const t=m,s=p,{innerValue:o,isSelected:y,selectItem:f,clear:a,labelKey:b,valueKey:c,allOptions:u}=q({...t,modelValue:t.modelValue??t.default??""},s),d=e.computed(()=>o.value!==void 0&&!(typeof o.value=="string"&&o.value==="")),k=e.computed(()=>d.value?1:0);function w(i){return y(i)?["bg-blue-600 text-white"].filter(l=>typeof l=="string"&&l.trim().length>0).join(" "):["text-gray-700 hover:bg-gray-200 bg-gray-50 "].filter(l=>typeof l=="string"&&l.trim().length>0).join(" ")}function x(i){t.disabled||f(i)}return r({clear:a}),e.watch(()=>t.modelValue,i=>{i===void 0&&(o.value=void 0)}),(i,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",dl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(u),n=>(e.openBlock(),e.createElementBlock("button",{key:n[e.unref(c)],type:"button",class:e.normalizeClass(["px-3 py-2 text-sm font-medium rounded-md transition-colors",w(n)]),disabled:i.disabled,onClick:g=>x(n)},e.toDisplayString(n[e.unref(b)]),11,fl))),128))]),i.cleanable&&i.layout==="popover"?(e.openBlock(),e.createElementBlock("div",ml,[e.createElementVNode("span",null,e.toDisplayString(k.value)+" з "+e.toDisplayString(e.unref(u).length)+" обрано",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:l[0]||(l[0]=(...n)=>e.unref(a)&&e.unref(a)(...n))}," Очистити ",512),[[e.vShow,d.value]])])):e.createCommentVNode("",!0)],64))}}),"date:inline":cl};function J(m,r){let p;switch(m.toLowerCase()){case"autocomplete":p="select";break;case"check":p="checkbox";break;default:p=m?.toString().toLowerCase()}return p==="date"&&r&&r==="inline"&&(p="date:inline"),{component:ie[p]||ie.text,type:p}}const ul={style:{display:"inline-flex",margin:"0px",width:"100%"}},pl={class:"relative w-full mb-2 p-4 bg-white rounded-lg shadow-sm"},yl={class:"block mb-3 text-sm font-medium text-gray-800 dark:text-neutral-200"},gl={class:"flex items-center"},hl={class:"text-sm font-medium max-w-[80%] text-gray-800 flex items-center gap-x-1"},bl={class:"filter-layout__body"},kl=e.defineComponent({__name:"vertical-layout",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(m,{expose:r,emit:p}){const t=m,s=p,o=e.ref(),y=e.computed(()=>J(t.type,t.layout)),f=e.computed({get:()=>t.modelValue,set:u=>s("update:modelValue",u)});function a(u){s("clear",u)}function b(u,d){s("change",{name:u,value:d}),t.modelValue!==void 0&&s("update:modelValue",d)}function c(){s("clear",t.name)}return e.watch(()=>t.default,u=>{f.value=u}),e.watch(()=>t.modelValue,u=>{f.value=u}),r({filterRef:o}),(u,d)=>(e.openBlock(),e.createElementBlock("div",ul,[e.createElementVNode("div",pl,[e.createElementVNode("div",yl,[e.createElementVNode("div",gl,[e.createElementVNode("span",hl,e.toDisplayString(u.label),1)]),typeof f.value=="string"&&f.value.trim()!==""||Array.isArray(f.value)&&f.value.length>0&&f.value.some(k=>k!==void 0)||f.value===null?(e.openBlock(),e.createBlock(ge,{key:0,onClick:c})):e.createCommentVNode("",!0)]),e.createElementVNode("div",bl,[y.value?.type!=="select"?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value?.component),e.mergeProps({key:0},t,{type:y.value?.type,class:t.itemClass,onChange:d[0]||(d[0]=k=>b(k.name,k.value)),onClear:d[1]||(d[1]=k=>a(k)),ref_key:"filterRef",ref:o}),null,16,["type","class"])):(e.openBlock(),e.createBlock(X,{key:1,"current-value":f.value,label:u.label,mode:u.mode,onClear:c,fieldRef:o.value,width:void 0,disabled:u.disabled,layout:"vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value?.component),e.mergeProps({ref_key:"filterRef",ref:o},t,{type:y.value?.type,class:t.itemClass,onChange:d[2]||(d[2]=k=>b(k.name,k.value)),onClear:d[3]||(d[3]=k=>a(k))}),null,16,["type","class"]))]),_:1},8,["current-value","label","mode","fieldRef","disabled"]))])])]))}}),ce=e.defineComponent({__name:"inline-layout",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(m,{expose:r,emit:p}){const t=m,s=p,o=e.ref(),y=e.computed(()=>J(t.type,t.layout)),f=e.computed({get:()=>t.modelValue,set:c=>s("update:modelValue",c)});function a(c=t.name){s("clear",c)}function b(c,u){s("change",{name:c,value:u}),t.modelValue!==void 0&&s("update:modelValue",u)}return e.watch(()=>t.default,c=>{f.value=c}),e.watch(()=>t.modelValue,c=>{f.value=c}),r({filterRef:o}),(c,u)=>["text","date","button"].includes(c.type.toLocaleLowerCase())?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value?.component),e.mergeProps({key:0},t,{type:y.value?.type,class:c.itemClass,onChange:u[0]||(u[0]=d=>b(d.name,d.value)),onClear:u[1]||(u[1]=d=>a(d)),disabled:c.disabled,modelValue:f.value,"onUpdate:modelValue":u[2]||(u[2]=d=>f.value=d)}),null,16,["type","class","disabled","modelValue"])):(e.openBlock(),e.createBlock(X,{key:1,"current-value":f.value,label:c.label,mode:c.mode,onClear:a,fieldRef:o.value,width:t.width,disabled:c.disabled,layout:"inline"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value?.component),e.mergeProps({ref_key:"filterRef",ref:o},t,{modelValue:f.value,"onUpdate:modelValue":u[3]||(u[3]=d=>f.value=d),type:y.value?.type,class:t.itemClass,onChange:u[4]||(u[4]=d=>b(d.name,d.value)),onClear:u[5]||(u[5]=d=>a(d))}),null,16,["modelValue","type","class"]))]),_:1},8,["current-value","label","mode","fieldRef","width","disabled"]))}}),xl=e.defineComponent({__name:"popover-layout",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(m,{expose:r,emit:p}){const t=m,s=p,o=e.ref(),y=e.computed(()=>J(t.type,t.layout)),f=e.computed({get:()=>t.modelValue,set:c=>s("update:modelValue",c)});function a(c){s("clear",c)}function b(c,u){s("change",{name:c,value:u}),t.modelValue!==void 0&&s("update:modelValue",u)}return e.watch(()=>t.default,c=>{f.value=c}),e.watch(()=>t.modelValue,c=>{f.value=c}),e.watch(()=>t,c=>{f.value=c}),r({filterRef:o}),(c,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value?.component),e.mergeProps(t,{type:y.value?.type,class:t.itemClass,modelValue:f.value,"onUpdate:modelValue":u[0]||(u[0]=d=>f.value=d),onChange:u[1]||(u[1]=d=>b(d.name,d.value)),onClear:u[2]||(u[2]=d=>a(d)),ref_key:"filterRef",ref:o}),null,16,["type","class","modelValue"]))}}),L=e.defineComponent({__name:"filter-field",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{default:10},multi:{type:Boolean,default:!0},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{default:"name"},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(m,{expose:r,emit:p}){const t=m,s=p,o=e.ref(),y=e.computed({get:()=>t.modelValue,set:c=>s("update:modelValue",c)});function f(c){s("clear",c)}function a(c,u){s("change",{name:c,value:u}),t.modelValue!==void 0&&s("update:modelValue",u)}e.watch(()=>t.default,c=>{y.value=c}),e.watch(()=>t.modelValue,c=>{y.value=c}),r({filterRef:o});function b(){switch(t.layout){case"inline":return ce;case"vertical":return kl;case"popover":return xl;default:return ce}}return(c,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(b()),e.mergeProps(t,{onChange:u[0]||(u[0]=d=>a(d.name,d.value)),onClear:u[1]||(u[1]=d=>f(d)),modelValue:y.value,"onUpdate:modelValue":u[2]||(u[2]=d=>y.value=d)}),null,16,["modelValue"]))}});function P(m,r){const{slots:p}=m,t=l=>l?JSON.parse(JSON.stringify(e.toRaw(l))):{},s=e.ref(t(m.value));e.watch(()=>m.value,l=>{s.value=t(l)},{deep:!0,immediate:!0});const o=e.computed(()=>(e.toRaw(p?.default?.())??[]).flatMap(n=>Array.isArray(n.children)?n.children:[n]));function y(l){delete s.value[l],r("clear",{data:e.toRaw(s.value),name:l})}function f(l,n){n===void 0?y(l):s.value={...s.value,[l]:n},r("change",{data:e.toRaw(s.value),name:l,value:n})}const a=e.computed(()=>o.value.map(l=>{const n=l.props?.name;return e.cloneVNode(l,{...l.props,layout:m.view,showClean:!0,modelValue:s.value[n],"onUpdate:modelValue":g=>{f(n,g)},onClear:()=>y(n),class:[m.itemClass,l.props?.class],itemClass:[m.itemClass,l.props?.itemClass].filter(g=>typeof g=="string"&&g.trim().length>0).join(" ")||void 0})})),b=e.computed(()=>new Map(a.value.map(l=>{const n=l.props?.name;return n?[n,l]:null}).filter(l=>l!==null)));function c(l=!1){s.value={},l||r("clearAll",{data:e.toRaw(s.value),name:"ALL"})}const u=e.ref(""),d=e.computed(()=>m.schema?.value?Object.entries(s.value).filter(([l,n])=>m.schema&&!(l in m.schema.value)?!1:Array.isArray(n)?n.some(g=>g!==""&&g!==void 0):n!==""&&n!==void 0).length:0),k=e.ref();e.watch(u,async()=>{await e.nextTick(),k?.value?.filterRef?.inputTextRef&&k.value.filterRef.inputTextRef.focus()});const w=e.computed(()=>m.schema?.value?Object.fromEntries(Object.entries(m.schema?.value).slice(0,m.limit)):{}),x=e.computed(()=>{if(a.value.length===0)return[];let l=0;if(m.schema?.value){const n=Object.entries(m.schema.value).length;m.limit&&n<m.limit?l=m.limit-n:l=0}return a.value.slice(0,l)}),i=e.computed(()=>a.value.length===0?[]:m.view!=="inline"?a.value:a.value.slice(x.value.length));return{activeFilter:s,activeFilterCount:d,onFilterChange:f,clearFilter:y,clearAllFilters:c,limitedSchema:w,filtersSlot:a,limitedFiltersSlot:x,popoverFiltersSlot:i,vnodeMap:b,selectedFilter:u,filterRef:k}}const wl=e.defineComponent({__name:"popover",emits:["open","close"],setup(m,{emit:r}){const p=e.ref(!1),t=e.ref(null),s=e.ref(null),o=e.ref(null),y=e.ref({top:"0px",left:"0px",position:"absolute"});function f(){p.value=!p.value}function a(){const k=o.value,w=t.value;if(!k||!w)return;const x=k.getBoundingClientRect(),i=w.offsetWidth,l=window.innerWidth-x.left;let n=x.left+window.scrollX;i>l&&(n=window.innerWidth-i-18,n<18&&(n=18)),y.value={position:"absolute",top:`${x.bottom+window.scrollY+18}px`,left:`${n}px`}}const b=e.computed(()=>Object.entries(y.value).map(k=>k.join(":")).join(";"));function c(k){const w=k.target;!o.value?.contains(k.target)&&!t.value?.contains(k.target)&&!w.closest("[data-inside-popover]")&&(p.value=!1)}const u=e.ref(!1);e.onMounted(()=>{u.value=!0}),e.onMounted(()=>{o.value=s.value?.querySelector("[data-popover-trigger]")||null,o.value?.addEventListener("click",f),document.addEventListener("click",c),window.addEventListener("resize",a),window.addEventListener("scroll",a,!0)}),e.onBeforeUnmount(()=>{o.value?.removeEventListener("click",f),document.removeEventListener("click",c),window.removeEventListener("resize",a),window.removeEventListener("scroll",a,!0)});const d=r;return e.watch(p,async k=>{k?(d("open"),await e.nextTick(),a()):d("close")}),(k,w)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"wrapperRef",ref:s},[e.renderSlot(k.$slots,"trigger"),u.value?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:"body"},[e.withDirectives(e.createElementVNode("div",{ref_key:"popoverRef",ref:t,class:"absolute z-[50] w-[600px] rounded-md border bg-white shadow-md",style:e.normalizeStyle(b.value)},[e.renderSlot(k.$slots,"default")],4),[[e.vShow,p.value]])])):e.createCommentVNode("",!0)],512))}}),Vl={},Cl={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-filter h-4 w-4"};function Bl(m,r){return e.openBlock(),e.createElementBlock("svg",Cl,r[0]||(r[0]=[e.createElementVNode("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"},null,-1)]))}const de=K(Vl,[["render",Bl]]),El={class:"flex items-center gap-2 overflow-hidden"},Nl={key:0,class:"inline-flex min-h-[18px] min-w-[18px] items-center justify-center rounded-[4px] bg-blue-500 px-1 text-[11px] font-semibold text-white"},Sl={class:"flex max-h-[400px]"},_l={class:"w-64 border-r border-gray-200 overflow-y-auto"},Dl={class:"p-4 border-b"},$l={class:"text-sm text-gray-600"},Fl={class:"p-2"},Al=["onClick"],jl={class:"flex items-center gap-2"},Ml={class:"text-sm font-medium"},Rl={key:0,class:"inline-flex min-h-[18px] min-w-[18px] items-center justify-center rounded-[4px] bg-blue-100 px-1 text-[11px] font-semibold text-blue-600"},Tl=["onClick"],Kl={class:"flex items-center gap-2"},Ll={class:"text-sm font-medium"},zl={key:0,class:"inline-flex min-h-[18px] min-w-[18px] items-center justify-center rounded-[4px] bg-blue-100 px-1 text-[11px] font-semibold text-blue-600"},Ol={key:0,class:"p-2 border-t"},Il={class:"flex-1 min-h-[300px] overflow-y-auto"},Ul={key:0,class:"flex items-center justify-center h-full text-gray-500"},Pl={class:"text-sm"},fe=e.defineComponent({__name:"popover-filter-layout",props:{badgeCount:{},schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:3},width:{},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{}},emits:["change","clear","clearAll"],setup(m,{expose:r,emit:p}){const t=z(),s=m,o=ae(s.mode),y=e.useSlots(),f=p,a=e.ref({}),b=e.computed(()=>a?.value?s.view!=="inline"?a?.value:Object.fromEntries(Object.entries(a?.value).slice(s.limit)):{}),{activeFilter:c,activeFilterCount:u,onFilterChange:d,clearFilter:k,clearAllFilters:w,popoverFiltersSlot:x,selectedFilter:i,filterRef:l}=P({...s,schema:a,slots:y},f),n=e.computed(()=>s.badgeCount??u.value);function g(D){return Array.isArray(D)?D.filter(V=>V!=null&&V!=="").length:D&&typeof D=="object"?Object.values(D).filter(V=>V!=null&&V!=="").length:D===null||D!==void 0&&D!==""?1:0}function h(D){return c.value?g(c.value[D]):0}function _(){if(b.value){const[D]=Object.keys(b.value);i.value=D}else x.value.length>0?i.value=x.value[0].props.name:i.value=""}return e.watch(()=>s.schema,D=>{a.value=D??{}},{deep:!0,immediate:!0}),r({clearFilter:k,clearAllFilters:w}),(D,V)=>(e.openBlock(),e.createBlock(wl,{onOpen:_,onClose:V[5]||(V[5]=C=>i.value="")},{trigger:e.withCtx(()=>[e.createElementVNode("button",{"data-popover-trigger":"","aria-haspopup":"dialog","aria-expanded":"false",class:e.normalizeClass([D.itemClass,e.unref(o),"flex items-center justify-between gap-2",n.value>0?"border border-blue-400 bg-blue-50 text-blue-600 hover:border-blue-500":"text-neutral-700 hover:border-neutral-400"]),type:"button"},[e.createElementVNode("span",El,[e.createVNode(de,{class:"h-4 w-4"}),V[6]||(V[6]=e.createElementVNode("span",{class:"text-sm font-medium"},"Фільтр",-1))]),n.value>0?(e.openBlock(),e.createElementBlock("span",Nl,e.toDisplayString(n.value),1)):e.createCommentVNode("",!0)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Sl,[e.createElementVNode("div",_l,[e.createElementVNode("div",Dl,[e.createElementVNode("p",$l,e.toDisplayString(e.unref(t)("filter.selectFieldHelp")),1)]),e.createElementVNode("div",Fl,[D.schema?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(b.value),([C,S])=>(e.openBlock(),e.createElementBlock("button",{key:C,onClick:()=>{i.value=C},class:e.normalizeClass(["flex w-full items-center justify-between px-3 py-2 text-left transition-colors hover:bg-gray-50",e.unref(i)===C?"bg-blue-50 text-blue-700 border-l-2 border-blue-500":"text-neutral-700"])},[e.createElementVNode("div",jl,[e.createElementVNode("span",Ml,e.toDisplayString(S.label),1)]),h(C)>0?(e.openBlock(),e.createElementBlock("div",Rl,e.toDisplayString(h(C)),1)):e.createCommentVNode("",!0)],10,Al))),128)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(x),(C,S)=>(e.openBlock(),e.createElementBlock("button",{key:"slot-"+S,onClick:E=>i.value=C.props.name,class:e.normalizeClass(["flex items-center justify-between px-3 py-2 text-left transition-colors hover:bg-gray-50",e.unref(i)===C.props.name?"bg-blue-50 text-blue-700 border-l-2 border-blue-500":"text-neutral-700"])},[e.createElementVNode("div",Kl,[e.createElementVNode("span",Ll,e.toDisplayString(C.props.label),1)]),h(C.props.name)>0?(e.openBlock(),e.createElementBlock("div",zl,e.toDisplayString(h(C.props.name)),1)):e.createCommentVNode("",!0)],10,Tl))),128))]),e.unref(u)>0?(e.openBlock(),e.createElementBlock("div",Ol,[e.createElementVNode("button",{class:e.normalizeClass([D.itemClass,"w-full px-3 py-2 text-left text-sm text-gray-600 hover:bg-gray-50 transition-colors"]),onClick:V[0]||(V[0]=C=>e.unref(w)()),"data-inside-popover":""}," Очистити всі ",2)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Il,[e.unref(i)===""?(e.openBlock(),e.createElementBlock("div",Ul,[e.createElementVNode("p",Pl,e.toDisplayString(e.unref(t)("filter.selectFieldHelp")),1)])):e.createCommentVNode("",!0),e.unref(i)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[b.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(b.value),([C,S])=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(i)===C?(e.openBlock(),e.createBlock(L,e.mergeProps({key:C,layout:"popover",ref_for:!0,ref_key:"filterRef",ref:l},{ref_for:!0},S,{class:[D.itemClass,S?.class],"item-class":[D.itemClass,S?.itemClass].filter(Boolean).join(" ")||void 0,onChange:V[1]||(V[1]=E=>e.unref(d)(E.name,E.value)),onClear:V[2]||(V[2]=E=>{e.unref(k)(E),e.unref(d)(E,void 0)}),modelValue:e.unref(c)[C],"onUpdate:modelValue":E=>e.unref(c)[C]=E,cleanable:!0}),null,16,["class","item-class","modelValue","onUpdate:modelValue"])):e.createCommentVNode("",!0)],64))),256)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(x),(C,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:"slot-"+S},[e.unref(i)===C.props.name?(e.openBlock(),e.createBlock(L,e.mergeProps({key:0,layout:"popover"},{ref_for:!0},C.props,{ref_for:!0,ref_key:"filterRef",ref:l,class:[D.itemClass,C.props?.class],"item-class":[D.itemClass,C.props?.itemClass].filter(Boolean).join(" ")||void 0,onChange:V[3]||(V[3]=E=>e.unref(d)(E.name,E.value)),onClear:V[4]||(V[4]=E=>{e.unref(k)(E),e.unref(d)(E,void 0)}),modelValue:e.unref(c)[C.props.name],"onUpdate:modelValue":E=>e.unref(c)[C.props.name]=E,cleanable:!0}),null,16,["class","item-class","modelValue","onUpdate:modelValue"])):e.createCommentVNode("",!0)],64))),128))],64)):e.createCommentVNode("",!0)])])]),_:1}))}}),Yl={class:"flex gap-1 items-center flex-wrap"},me=e.defineComponent({__name:"inline-filter-layout",props:{schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:3},width:{},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{}},emits:["change","clear","clearAll"],setup(m,{expose:r,emit:p}){const t=z(),s=m,o=p,y=e.useSlots(),f=e.ref({}),a=e.computed(()=>Object.keys(s.schema).length>s.limit),{activeFilter:b,activeFilterCount:c,onFilterChange:u,clearFilter:d,clearAllFilters:k,limitedSchema:w,filtersSlot:x,limitedFiltersSlot:i}=P({...s,schema:f,slots:y},o);function l(V){return Array.isArray(V)?V.some(C=>C!==""&&C!==void 0&&C!==null):V===null?!0:V&&typeof V=="object"?Object.values(V).some(C=>C!==""&&C!==void 0&&C!==null):V!==""&&V!==void 0}const n=e.computed(()=>{const V=Object.keys(w.value??{}),C=i.value.map(S=>S.props?.name).filter(S=>typeof S=="string");return new Set([...V,...C])}),g=e.computed(()=>Object.entries(b.value??{}).filter(([V,C])=>n.value.has(V)&&l(C)).length),h=e.computed(()=>{const V=c.value??0,C=g.value??0;return Math.max(V-C,0)}),_=e.ref();function D(){_.value&&_.value.clearAllFilters(!0),k()}return e.watch(()=>s.schema,V=>{f.value=V},{deep:!0,immediate:!0}),r({clearFilter:d,clearAllFilters:k}),(V,C)=>(e.openBlock(),e.createElementBlock("div",Yl,[V.schema?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(e.unref(w)),([S,E])=>(e.openBlock(),e.createBlock(L,e.mergeProps({key:S,mode:V.mode,width:V.width?V.width:E?.width},{ref_for:!0},E,{class:[V.itemClass,E?.class],"item-class":[V.itemClass,E?.itemClass].filter(Boolean).join(" ")||void 0,onChange:C[0]||(C[0]=N=>e.unref(u)(N.name,N.value)),onClear:e.unref(d),layout:"inline",cleanable:!0,modelValue:e.unref(b)[S],"onUpdate:modelValue":N=>e.unref(b)[S]=N}),null,16,["mode","width","class","item-class","onClear","modelValue","onUpdate:modelValue"]))),128)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),(S,E)=>(e.openBlock(),e.createBlock(L,e.mergeProps({key:"slot-"+E,layout:"inline"},{ref_for:!0},S.props,{class:[V.itemClass,S.props?.class],"item-class":[V.itemClass,S.props?.itemClass].filter(Boolean).join(" ")||void 0,onChange:C[1]||(C[1]=N=>e.unref(u)(N.name,N.value)),onClear:C[2]||(C[2]=N=>{e.unref(d)(N),e.unref(u)(N,void 0)}),cleanable:!0,modelValue:e.unref(b)[S.props.name],"onUpdate:modelValue":N=>e.unref(b)[S.props.name]=N}),null,16,["class","item-class","modelValue","onUpdate:modelValue"]))),128)),a.value?(e.openBlock(),e.createBlock(fe,e.mergeProps({key:1},s,{schema:V.schema,limit:V.limit,onChange:C[3]||(C[3]=S=>e.unref(u)(S.name,S.value)),onClearAll:C[4]||(C[4]=S=>e.unref(k)()),onClear:C[5]||(C[5]=S=>e.unref(d)(S.name)),mode:V.mode,ref_key:"popoverRef",ref:_,cleanable:!0,"badge-count":h.value}),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(x),(S,E)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S),e.mergeProps({key:"slot-"+E,layout:"popover"},{ref_for:!0},S.props,{cleanable:!0}),null,16))),128))]),_:1},16,["schema","limit","mode","badge-count"])):e.createCommentVNode("",!0),e.unref(c)>0?(e.openBlock(),e.createElementBlock("button",{key:2,onClick:D,class:e.normalizeClass([V.itemClass,"relative py-2 px-3 inline-flex justify-center items-center gap-x-2 text-sm font-medium rounded-md bg-gray-50 border text-gray-800 hover:bg-gray-200 focus:bg-gray-200"])},e.toDisplayString(e.unref(t)("filter.clear")),3)):e.createCommentVNode("",!0)]))}}),Wl={key:0,class:"p-2 overflow-y-auto overflow-hidden [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-800 max-h-[calc(100%-142px)] h-full bg-gray-100"},ql={class:"flex items-center vst-filters vsTailwind flex-col w-full"},Hl=e.defineComponent({__name:"vertical-filter-layout",props:{schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:3},width:{},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{}},emits:["change","clear","clearAll"],setup(m,{expose:r,emit:p}){const t=m,s=p,o=e.useSlots(),{activeFilter:y,activeFilterCount:f,onFilterChange:a,clearFilter:b,clearAllFilters:c,filtersSlot:u}=P({...t,slots:o},s);return r({clearFilter:b,clearAllFilters:c}),(d,k)=>d.view==="vertical"?(e.openBlock(),e.createElementBlock("div",Wl,[e.createElementVNode("div",ql,[e.unref(f)>0?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:k[0]||(k[0]=w=>e.unref(c)()),"data-popover-trigger":"","aria-haspopup":"dialog","aria-expanded":"false",class:e.normalizeClass([d.itemClass,"w-full ring-offset-background focus-visible:outline-hidden focus-visible:ring-ring inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:text-accent-foreground border h-10 px-4 py-2 gap-2 m-2 bg-white text-gray-800 hover:bg-gray-200 focus:bg-gray-200"]),type:"button"}," Очистити ",2)):e.createCommentVNode("",!0),d.schema?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(Object.entries(d.schema),([w,x])=>(e.openBlock(),e.createBlock(L,e.mergeProps({layout:"vertical"},{ref_for:!0},x,{class:[d.itemClass,x?.class],"item-class":[d.itemClass,x?.itemClass].filter(Boolean).join(" ")||void 0,onChange:k[1]||(k[1]=i=>e.unref(a)(i.name,i.value)),onClear:k[2]||(k[2]=i=>{e.unref(b)(i),e.unref(a)(i,void 0)}),modelValue:e.unref(y)[w],"onUpdate:modelValue":i=>e.unref(y)[w]=i,showClean:!0}),null,16,["class","item-class","modelValue","onUpdate:modelValue"]))),256)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(u),(w,x)=>(e.openBlock(),e.createBlock(L,e.mergeProps({key:"slot-"+x,layout:"vertical"},{ref_for:!0},w.props,{class:[d.itemClass,w.props?.class],"item-class":[d.itemClass,w.props?.itemClass].filter(Boolean).join(" ")||void 0,onChange:k[3]||(k[3]=i=>e.unref(a)(i.name,i.value)),onClear:k[4]||(k[4]=i=>{e.unref(b)(i),e.unref(a)(i,void 0)}),modelValue:e.unref(y)[w.props.name],"onUpdate:modelValue":i=>e.unref(y)[w.props.name]=i,showClean:!0}),null,16,["class","item-class","modelValue","onUpdate:modelValue"]))),128))])])):e.createCommentVNode("",!0)}}),Ql=["onKeydown"],Gl=["disabled"],Xl={key:0,class:"ml-2 inline-flex min-h-[18px] min-w-[18px] items-center justify-center rounded-full bg-blue-500 px-1.5 text-[11px] font-semibold text-white"},Jl={class:"rounded-2xl border border-slate-300/35 bg-white/95 p-4 shadow-2xl backdrop-blur-sm"},Zl={class:"mb-3 flex items-center justify-between"},vl={class:"text-[15px] font-semibold text-slate-800"},eo={"aria-hidden":"true"},to={class:"flex max-h-80 flex-col gap-1 overflow-y-auto"},lo={key:0,class:"mt-3 flex justify-end"},oo=e.defineComponent({__name:"popover-inline-filter-layout",props:{schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:10},width:{default:220},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{}},emits:["change","clear","clearAll"],setup(m,{emit:r}){const p=z(),t=m,s=r,o=e.ref({}),y=e.useSlots(),{activeFilter:f,activeFilterCount:a,onFilterChange:b,clearFilter:c,clearAllFilters:u,filtersSlot:d}=P({...t,schema:o.value,slots:y},s),k=e.ref(null),w=e.ref(null),x=e.reactive({open:!1,top:0,left:0}),i=e.computed(()=>x.open),l=e.computed(()=>!!t.disabled),n=e.computed(()=>o.value||{}),g=e.computed(()=>t.title??"Фільтр"),h=e.computed(()=>!!y.trigger),_=e.computed(()=>["inline-flex h-9 items-center justify-center gap-2 rounded-lg border border-transparent bg-slate-200/70 px-3 text-sm font-medium text-slate-700 transition-colors hover:bg-blue-100 hover:text-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-200 disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-slate-200/70 disabled:hover:text-slate-700",l.value?"cursor-not-allowed opacity-60":"cursor-pointer"]),D=e.computed(()=>x.open?{position:"absolute",top:`${x.top}px`,left:`${x.left}px`,transform:"translateX(-50%)",zIndex:1e3}:{display:"none"});function V(){x.open=!1}function C(){if(!k.value)return;const F=k.value.getBoundingClientRect();x.top=F.bottom+window.scrollY+8,x.left=F.left+F.width/2+window.scrollX}function S(){x.open=!x.open,x.open&&e.nextTick(C)}function E(){l.value||S()}function N(){x.open&&C()}function A(){u()}return e.onMounted(()=>{window.addEventListener("resize",N),window.addEventListener("scroll",N,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("resize",N),window.removeEventListener("scroll",N,!0)}),e.watch(()=>t.schema,F=>{if(!F){o.value={};return}if(Array.isArray(F)){const B=F.filter($=>$&&($.name||$.id)).map($=>{const j=$.name||$.id;return[j,{...$,name:j}]});o.value=Object.fromEntries(B);return}o.value=F},{deep:!0,immediate:!0}),e.watch(()=>t.disabled,F=>{F&&V()}),(F,B)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex",ref_key:"anchor",ref:k},[h.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["inline-flex",l.value?"cursor-not-allowed opacity-60 pointer-events-none":"cursor-pointer"]),role:"button",tabindex:"0","data-popover-trigger":"",onClick:e.withModifiers(E,["prevent","stop"]),onKeydown:[e.withKeys(e.withModifiers(E,["prevent","stop"]),["enter"]),e.withKeys(e.withModifiers(E,["prevent","stop"]),["space"])]},[e.renderSlot(F.$slots,"trigger",{toggle:E,open:i.value,disabled:l.value,activeCount:e.unref(a)})],42,Ql)):(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(_.value),type:"button",disabled:l.value,onClick:e.withModifiers(E,["prevent","stop"]),"data-popover-trigger":""},[e.createVNode(de,{class:"h-4 w-4"}),e.unref(a)>0?(e.openBlock(),e.createElementBlock("div",Xl,e.toDisplayString(e.unref(a)),1)):e.createCommentVNode("",!0)],10,Gl)),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[i.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["absolute",typeof F.width=="number"?`min-w-[${F.width+32+(Object.keys(n.value).length>7?20:0)}px]`:"min-w-[268px] "]),style:e.normalizeStyle(D.value),ref_key:"panel",ref:w,onClick:B[4]||(B[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",Jl,[e.createElementVNode("div",Zl,[e.createElementVNode("h3",vl,e.toDisplayString(g.value),1),e.createElementVNode("button",{type:"button",class:"inline-flex h-6 w-6 items-center justify-center rounded-full border-0 bg-slate-300/40 text-slate-600 transition-colors hover:bg-blue-200/60 hover:text-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-200",onClick:V},[e.createElementVNode("span",eo,[e.createVNode(G,{class:"h-4 w-4"})]),B[5]||(B[5]=e.createElementVNode("span",{class:"sr-only"},"Закрити",-1))])]),e.createElementVNode("div",to,[Object.keys(n.value).length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(n.value),([$,j])=>(e.openBlock(),e.createBlock(L,e.mergeProps({key:$},{ref_for:!0},{...j,layout:"inline"},{width:F.width?F.width:j?.width,class:[F.itemClass,j?.class],"item-class":[F.itemClass,j?.itemClass].filter(Boolean).join(" ")||void 0,cleanable:!0,modelValue:e.unref(f)[$],"onUpdate:modelValue":M=>e.unref(f)[$]=M,onChange:B[0]||(B[0]=M=>e.unref(b)(M.name,M.value)),onClear:B[1]||(B[1]=M=>{e.unref(c)(M),e.unref(b)(M,void 0)})}),null,16,["width","class","item-class","modelValue","onUpdate:modelValue"]))),128)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(d),($,j)=>(e.openBlock(),e.createBlock(L,e.mergeProps({key:"slot-"+j,ref_for:!0},{...$.props,layout:"inline"},{class:[F.itemClass,$.props?.class],"item-class":[F.itemClass,$.props?.itemClass].filter(Boolean).join(" ")||void 0,cleanable:!0,modelValue:e.unref(f)[$.props.name],"onUpdate:modelValue":M=>e.unref(f)[$.props.name]=M,onChange:B[2]||(B[2]=M=>e.unref(b)(M.name,M.value)),onClear:B[3]||(B[3]=M=>{e.unref(c)(M),e.unref(b)(M,void 0)})}),null,16,["class","item-class","modelValue","onUpdate:modelValue"]))),128))]),e.unref(a)>0?(e.openBlock(),e.createElementBlock("div",lo,[e.createElementVNode("button",{type:"button",class:e.normalizeClass([F.itemClass,"text-sm font-semibold text-blue-600 transition-colors hover:text-blue-700 focus:outline-none"]),onClick:A},e.toDisplayString(e.unref(p)("filter.clear")),3)])):e.createCommentVNode("",!0)])],6)):e.createCommentVNode("",!0)]))],512))}}),Y=e.defineComponent({__name:"filter",props:{schema:{},view:{default:"inline"},value:{},history:{type:Boolean},mode:{},limit:{default:3},width:{},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{}},emits:["change","clear","clearAll"],setup(m,{expose:r,emit:p}){const t=m,s=e.ref(a(t.value??{}));e.watch(()=>t.value,async i=>{s.value=a(i??{}),(!i||Object.keys(i).length===0)&&(await e.nextTick(),y.value?.clearAllFilters?.(!0))},{deep:!0,immediate:!0});const o=p,y=e.ref(),f=e.useSlots();function a(i){if(Array.isArray(i))return i.map(l=>a(l));if(i!==null&&typeof i=="object"){const l=e.toRaw(i),n={};for(const g in l)n[g]=a(l[g]);return n}return i}function b(i,l){l!==void 0?s.value={...s.value,[i]:l}:delete s.value[i],o("change",{data:a(s.value),name:i,value:a(l)})}function c(i){delete s.value[i],o("clear",{data:a(s.value),name:i}),o("change",{data:a(s.value),name:i,value:null})}function u(){s.value={},o("clear",{data:a(s.value),name:"ALL"}),o("change",{data:a(s.value),name:"ALL",value:null})}const d=e.ref({});function k(){switch(t.view){case"inline":return me;case"vertical":return Hl;case"popover":return fe;case"popover-inline":return oo;default:return me}}e.watch(()=>t.schema,i=>{if(!i){d.value={};return}if(Array.isArray(i)&&!i.length){d.value={};return}Array.isArray(i)?d.value=i.filter(l=>l.type).reduce((l,n)=>(Object.assign(n,{name:n.id||n.name,type:{datepicker:"date"}[n.type.toLowerCase()]||n.type.toLowerCase(),label:n.label||n.ua}),l[n.name]=n,n.data&&!n.api&&!n.options&&Object.assign(n,{api:`/api/suggest/${n.data}`}),l),{}):(Object.entries(i).forEach(([l,n])=>{Object.assign(n,{name:l||n.name||n.id,type:n.type.toLowerCase()})}),d.value={...i})},{immediate:!0,deep:!0});function w(i){y.value.clearFilter(i),c(i)}function x(){y.value.clearAllFilters(),u()}return e.watch(()=>s.value,i=>{if(t.history){const l=new URL(window.location.href),n=new URLSearchParams(window.location.search);Object.keys(i).length>0?n.set("filter",Object.entries(i).filter(([,g])=>g).map(([g,h])=>`${g}=${h}`).join("|")):n.delete("filter"),l.search=decodeURI(n.toString()),window.history.pushState({},"",l)}}),r({clearAllFilters:x,clearFilter:w}),(i,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(k()),e.mergeProps(t,{schema:d.value,onChange:l[0]||(l[0]=n=>b(n.name,n.value)),onClear:l[1]||(l[1]=n=>c(n.name)),onClearAll:u,ref_key:"filterRef",ref:y}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:2},[e.unref(f).trigger?{name:"trigger",fn:e.withCtx(n=>[e.renderSlot(i.$slots,"trigger",e.normalizeProps(e.guardReactiveProps(n)))]),key:"0"}:void 0]),1040,["schema"]))}});Y.install=function(r){r.component("Filter",Y),r.component("FilterField",L)},T.Filter=Y,T.FilterField=L,T.default=Y,Object.defineProperties(T,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
1
|
+
(function(T,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@opengis/core")):typeof define=="function"&&define.amd?define(["exports","vue","@opengis/core"],e):(T=typeof globalThis<"u"?globalThis:T||self,e(T.FilterLib={},T.Vue,T.OpenGISCore))})(this,(function(T,e,Z){"use strict";const K=(f,r)=>{const p=f.__vccOpts||f;for(const[t,s]of r)p[t]=s;return p},ue={},pe={xmlns:"http://www.w3.org/2000/svg",width:"15px",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-reload absolute inline mr-1 text-gray-800 transition-all cursor-pointer active:rotate-90 right-1 top-1 hover:text-blue-500"};function ye(f,r){return e.openBlock(),e.createElementBlock("svg",pe,[...r[0]||(r[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M19.933 13.041a8 8 0 1 1 -9.925 -8.788c3.899 -1 7.935 1.007 9.425 4.747"},null,-1),e.createElementVNode("path",{d:"M20 4v5h-5"},null,-1)])])}const ge=K(ue,[["render",ye]]),he={},be={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"text-blue-600 w-[16px] h-[16px]"};function ke(f,r){return e.openBlock(),e.createElementBlock("svg",be,[...r[0]||(r[0]=[e.createElementVNode("path",{d:"M20 6 9 17l-5-5"},null,-1)])])}const O=K(he,[["render",ke]]),xe={class:"flex items-center justify-between w-full text-sm"},we={class:"flex items-center cursor-pointer w-full"},Ve={key:0,width:"16",height:"auto",src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9J3doaXRlJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxwYXRoIGQ9J00xMi4yMDcgNC43OTNhMSAxIDAgMDEwIDEuNDE0bC01IDVhMSAxIDAgMDEtMS40MTQgMGwtMi0yYTEgMSAwIDAxMS40MTQtMS40MTRMNi41IDkuMDg2bDQuMjkzLTQuMjkzYTEgMSAwIDAxMS40MTQgMHonLz48L3N2Zz4="},Ce=["value"],Be={class:"flex flex-row items-center font-normal text-gray-800 gap-x-1"},Ee={key:0,class:"text-xs text-gray-500 dark:text-neutral-500 pr-1"},Ne={key:1,class:"absolute right-2 flex size-3.5 items-center justify-center"},W=e.defineComponent({__name:"list-item",props:{layout:{},count:{},type:{},label:{},value:{},isSelected:{type:Boolean},color:{},highlighted:{type:Boolean}},emits:["itemClick"],setup(f,{expose:r,emit:p}){const t=f,s=p;function o(){s("itemClick",t.value)}const y=e.ref(null),m=e.computed(()=>t.layout==="inline"&&t.type==="radio");return r({el:y}),(a,b)=>(e.openBlock(),e.createElementBlock("div",{class:"flex items-center w-full rounded-sm group hover:bg-gray-100",ref_key:"el",ref:y},[e.createElementVNode("div",xe,[e.createElementVNode("div",we,[e.createElementVNode("label",{for:"radio-9740",class:e.normalizeClass([["inline","popover"].includes(a.layout)?"text-sm text-gray-500 px-2 w-full py-2 cursor-pointer !flex flex-row items-center":"flex flex-row items-center w-full px-2 py-2 text-sm text-gray-500 cursor-pointer",{"bg-blue-100":a.highlighted,relative:m.value}]),onClick:e.withModifiers(o,["stop","prevent"])},[m.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["w-[18px] h-[18px] border flex items-center justify-center",[a.type==="checkbox"?"rounded-[4px]":"rounded-full",a.color?`bg-[${a.color}] border-[#ffffff]`:a.isSelected?"bg-[#2563eb] border-[#ffffff]":"bg-[#ffffff] border-[#d9d9d9]"]])},[a.isSelected?(e.openBlock(),e.createElementBlock("img",Ve)):e.createCommentVNode("",!0)],2)),e.createElementVNode("input",{type:"checkbox",class:"hidden",id:"radio-9740",value:a.value},null,8,Ce),e.createElementVNode("div",{class:e.normalizeClass(["flex flex-1 flex-row items-center justify-between",m.value?"pl-1 pr-6":"w-[calc(100%-18px)] pl-[10px]"])},[e.createElementVNode("span",Be,e.toDisplayString(a.label??"Відсутні дані"),1),a.count?(e.openBlock(),e.createElementBlock("div",Ee," ("+e.toDisplayString(a.count)+") ",1)):e.createCommentVNode("",!0)],2),m.value&&a.isSelected?(e.openBlock(),e.createElementBlock("span",Ne,[e.createVNode(O)])):e.createCommentVNode("",!0)],2)])])],512))}});function q(f,r){const{options:p=[],limit:t=20}=f;function s(g){return Array.isArray(g)?g[0]:g}const o=e.ref(s(f.modelValue)),y=e.ref(""),m=e.ref(!1),a=e.ref([]),b=e.ref("id"),c=e.ref("text"),u=e.ref(!1),d=e.ref(f.layout!=="popover"&&p.length>t);function k(g){const h=g.find(Boolean)??{},_=["id","value","code","key"].find(V=>V in h)??"id",D=["text","label","name","title"].find(V=>V in h)??"text";return{autoValueKey:_,autoLabelKey:D}}if(p.length>0){const g=k(p);b.value=g.autoValueKey,c.value=g.autoLabelKey}const w=e.computed(()=>{const g=a.value;return f.layout==="popover"||u.value?g:g.slice(0,t)});e.watch(()=>f.modelValue,g=>{o.value=s(g)},{immediate:!0}),a.value=[...p].sort((g,h)=>f.sort==="count"?h.count&&g.count?h.count-g.count:0:f.sort==="name"?String(g[c.value]??"").localeCompare(String(h[c.value]??"")):0);function x(g){return o.value===g[b.value]}function i(g){o.value=g[b.value],r("update:modelValue",o.value),r("change",{name:f.name,value:o.value})}function l(){o.value=void 0,r("update:modelValue",o.value),r("clear",f.name)}function n(){u.value=!u.value}return{innerValue:o,searchTerm:y,filteredOptions:w,isSelected:x,selectItem:i,clear:l,toggleShowAll:n,isReqProc:m,showAll:u,isEnableShowAll:d,labelKey:c,valueKey:b,allOptions:a}}const Se={},_e={class:"w-48 mx-auto",viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function De(f,r){return e.openBlock(),e.createElementBlock("svg",_e,[...r[0]||(r[0]=[e.createStaticVNode('<rect x="27" y="50.5" width="124" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="27" y="50.5" width="124" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-50 dark:stroke-neutral-700/10"></rect><rect x="34.5" y="58" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="61" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="73" width="77" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/30"></rect><rect x="27" y="36" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="39" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="51" width="92" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><g filter="url(#filter1)"><rect x="12" y="6" width="154" height="40" rx="8" fill="currentColor" class="fill-white dark:fill-neutral-800" shape-rendering="crispEdges"></rect><rect x="12.5" y="6.5" width="153" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/60" shape-rendering="crispEdges"></rect><rect x="20" y="14" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="17" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="29" width="106" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect></g><defs><filter id="filter1" x="0" y="0" width="178" height="64" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix><feOffset dy="6"></feOffset><feGaussianBlur stdDeviation="6"></feGaussianBlur><feComposite in2="hardAlpha" operator="out"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03 0"></feColorMatrix><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1187_14810"></feBlend><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1187_14810" result="shape"></feBlend></filter></defs>',12)])])}const H=K(Se,[["render",De]]),$e={},Fe={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-chevron-down w-[14px] rotate"};function Ae(f,r){return e.openBlock(),e.createElementBlock("svg",Fe,[...r[0]||(r[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const U=K($e,[["render",Ae]]),je={},Me={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-chevron-down w-[14px] rotate-[180deg]"};function Re(f,r){return e.openBlock(),e.createElementBlock("svg",Me,[...r[0]||(r[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const Q=K(je,[["render",Re]]),Te={key:0,class:"w-full"},Ke={class:"flex flex-col items-center justify-center p-5 text-center"},Le={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},ze={key:1,class:"flex justify-between items-center text-xs text-gray-500 p-1 border-t"},Oe=e.defineComponent({__name:"radio",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{default:10},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(f,{expose:r,emit:p}){const t=f,s=e.ref(null),o=p,{innerValue:y,filteredOptions:m,isSelected:a,selectItem:b,clear:c,toggleShowAll:u,isReqProc:d,showAll:k,isEnableShowAll:w,labelKey:x,valueKey:i,allOptions:l}=q({...t,modelValue:t.modelValue??t.default??""},o);return r({clear:c,inputTextRef:s}),e.watch(()=>t.modelValue,n=>{n===void 0&&(y.value=void 0)}),(n,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([n.layout==="popover"?"flex flex-col h-full":"flex flex-col vs-filter-checkbox"])},[e.createElementVNode("div",{class:e.normalizeClass([n.layout==="popover"?"flex-1 overflow-y-auto p-2":"",n.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m),h=>(e.openBlock(),e.createBlock(W,{layout:n.layout,key:h[e.unref(i)],count:h.count,label:h[e.unref(x)],color:h.color,type:"radio",value:h[e.unref(i)],"is-selected":e.unref(a)(h),onItemClick:_=>e.unref(b)(h)},null,8,["layout","count","label","color","value","is-selected","onItemClick"]))),128))],2),n.type==="select"&&e.unref(m).length===0&&!e.unref(d)?(e.openBlock(),e.createElementBlock("div",Te,[e.createElementVNode("div",Ke,[e.createVNode(H),g[4]||(g[4]=e.createElementVNode("div",{class:"max-w-sm mx-auto mt-6"},[e.createElementVNode("p",{class:"font-medium text-gray-800 dark:text-neutral-200"},"За вашим запитом нічого не знайдено"),e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"})],-1))])])):e.createCommentVNode("",!0),n.layout!=="popover"&&n.type!=="select"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[!e.unref(k)&&e.unref(w)?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:g[0]||(g[0]=(...h)=>e.unref(u)&&e.unref(u)(...h)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[g[5]||(g[5]=e.createTextVNode(" Показати більше ",-1)),e.createVNode(U)])):e.createCommentVNode("",!0),e.unref(k)?(e.openBlock(),e.createElementBlock("div",{key:1,onClick:g[1]||(g[1]=(...h)=>e.unref(u)&&e.unref(u)(...h)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[g[6]||(g[6]=e.createTextVNode(" Показати менше ",-1)),e.createVNode(Q)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),n.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[n.layout==="inline"?(e.openBlock(),e.createElementBlock("div",Le,[e.createTextVNode(e.toDisplayString(e.unref(y)||e.unref(y)===null?1:0)+" з "+e.toDisplayString(e.unref(l).length)+" обрано ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:g[2]||(g[2]=(...h)=>e.unref(c)&&e.unref(c)(...h))}," Очистити ",512),[[e.vShow,e.unref(y)!==""&&e.unref(y)!==void 0]])])):e.createCommentVNode("",!0),n.layout==="popover"?(e.openBlock(),e.createElementBlock("div",ze,[e.createElementVNode("span",null,e.toDisplayString(e.unref(y)||e.unref(y)===null?1:0)+" з "+e.toDisplayString(e.unref(l).length)+" обрано",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:g[3]||(g[3]=(...h)=>e.unref(c)&&e.unref(c)(...h))}," Очистити ",512),[[e.vShow,e.unref(y)!==""&&e.unref(y)!==void 0]])])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}});function v(f,r){const{options:p=[],limit:t=20}=f;function s(g){return Array.isArray(g)?g:g?[g]:[]}const o=e.ref(s(f.modelValue)),y=e.ref(""),m=e.ref(!1),a=e.ref([]),b=e.ref("id"),c=e.ref("text"),u=e.ref(!1),d=e.ref(f.layout!=="popover"&&p.length>t);function k(g){const h=g.find(Boolean)??{},_=["id","value","code","key"].find(V=>V in h)??"id",D=["text","label","name","title"].find(V=>V in h)??"text";return{autoValueKey:_,autoLabelKey:D}}if(p.length>0){const g=k(p);b.value=g.autoValueKey,c.value=g.autoLabelKey}const w=e.computed(()=>{const g=a.value;return f.layout==="popover"||u.value?g:g.slice(0,t)});e.watch(()=>f.modelValue,g=>{o.value=s(g)},{immediate:!0}),a.value=[...p].sort((g,h)=>f.sort==="count"?h.count&&g.count?h.count-g.count:0:f.sort==="name"?String(g[c.value]).localeCompare(String(h[c.value])):0);function x(g){return o.value&&o.value.includes(g[b.value])}function i(g){const h=o.value.includes(g[b.value]);o.value=h?o.value.filter(_=>_!==g[b.value]):[...o.value,g[b.value]],r("update:modelValue",o.value),r("change",{name:f.name,value:o.value})}function l(){o.value=[],r("update:modelValue",o.value),r("clear",f.name)}function n(){u.value=!u.value}return{innerValue:o,searchTerm:y,filteredOptions:w,isSelected:x,selectItem:i,clear:l,toggleShowAll:n,isReqProc:m,showAll:u,isEnableShowAll:d,labelKey:c,valueKey:b,allOptions:a}}const ee={en:{apply:"Apply",search:"Search",more:"Show more",less:"Show less",selected:"selected",clear:"Clear",notfound:"Nothing found",period:"Period",today:"Today",week:"Week",max:"max",min:"min",month:"Month",quarter:"Quarter",year:"Year",alltime:"All Time",prev:"Prev",next:"Next",selectFieldHelp:"Select a field to start creating a filter."},uk:{apply:"Застосувати",search:"Пошук",more:"Показати більше",less:"Показати меньше",selected:"обрано",clear:"Очистити",notfound:"Нічого не знайдено",period:"Період",today:"Сьогодні",week:"Тиждень",max:"макс",min:"мін",month:"Місяць",quarter:"Квартал",year:"Рік",alltime:"Весь час",prev:"Попередній період",next:"Настпуний період",selectFieldHelp:"Оберіть поле, щоб розпочати створення фільтра."}};function te(f){const r=f.split(".")[1],p=typeof window<"u"&&window.localStorage?localStorage.locale:null;return(ee[p||navigator.language]||ee.uk)[r]}function z(){const f=e.getCurrentInstance();if(!f.appContext.config.globalProperties.$i18n)return te;const r=f.appContext.config.globalProperties.$t;return p=>{const t=r(p);return t===p?te(p):t}}const Ie={key:0,class:"w-full"},Ue={class:"flex flex-col items-center justify-center p-5 text-center"},Pe={class:"max-w-sm mx-auto mt-6"},Ye={class:"font-medium text-gray-800 dark:text-neutral-200"},We={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},qe={key:1,class:"flex justify-between items-center text-xs text-gray-500 p-1 border-t"},le=e.defineComponent({__name:"checkbox",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{default:10},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(f,{expose:r,emit:p}){const t=z(),s=f,o=p,{innerValue:y,filteredOptions:m,isSelected:a,selectItem:b,clear:c,toggleShowAll:u,isReqProc:d,showAll:k,isEnableShowAll:w,labelKey:x,valueKey:i,allOptions:l}=v({...s,modelValue:s.modelValue},o);return e.watch(()=>s.modelValue,n=>{n===void 0&&(y.value=[])}),r({clear:c}),(n,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([n.layout==="popover"?"flex flex-col h-full":"flex flex-col vs-filter-checkbox space-y-0.5"])},[e.createElementVNode("div",{class:e.normalizeClass([n.layout==="popover"?"flex-1 overflow-y-auto p-2":"",n.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m),h=>(e.openBlock(),e.createBlock(W,{layout:n.layout,count:h.count,label:h[e.unref(x)],color:h.color,type:"checkbox",value:h[e.unref(i)],"is-selected":e.unref(a)(h),onItemClick:_=>e.unref(b)(h)},null,8,["layout","count","label","color","value","is-selected","onItemClick"]))),256))],2),n.type==="select"&&e.unref(m).length===0&&!e.unref(d)?(e.openBlock(),e.createElementBlock("div",Ie,[e.createElementVNode("div",Ue,[e.createVNode(H),e.createElementVNode("div",Pe,[e.createElementVNode("p",Ye,e.toDisplayString(e.unref(t)("filter.notfound")),1),g[4]||(g[4]=e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"},null,-1))])])])):e.createCommentVNode("",!0),n.layout!=="popover"&&n.type!=="select"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[!e.unref(k)&&e.unref(w)?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:g[0]||(g[0]=(...h)=>e.unref(u)&&e.unref(u)(...h)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.more"))+" ",1),e.createVNode(U)])):e.createCommentVNode("",!0),e.unref(k)?(e.openBlock(),e.createElementBlock("div",{key:1,onClick:g[1]||(g[1]=(...h)=>e.unref(u)&&e.unref(u)(...h)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.less"))+" ",1),e.createVNode(Q)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),n.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[n.layout==="inline"?(e.openBlock(),e.createElementBlock("div",We,[e.createTextVNode(e.toDisplayString(e.unref(y).length)+" / "+e.toDisplayString(e.unref(l).length)+" "+e.toDisplayString(e.unref(t)("filter.selected"))+" ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:g[2]||(g[2]=(...h)=>e.unref(c)&&e.unref(c)(...h))},e.toDisplayString(e.unref(t)("filter.clear")),513),[[e.vShow,e.unref(y).length!==0]])])):e.createCommentVNode("",!0),n.layout==="popover"?(e.openBlock(),e.createElementBlock("div",qe,[e.createElementVNode("span",null,e.toDisplayString(e.unref(y).length)+" / "+e.toDisplayString(e.unref(l).length)+" "+e.toDisplayString(e.unref(t)("filter.selected")),1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:g[3]||(g[3]=(...h)=>e.unref(c)&&e.unref(c)(...h))},e.toDisplayString(e.unref(t)("filter.clear")),513),[[e.vShow,e.unref(y).length!==0]])])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),He={},Qe={xmlns:"http://www.w3.org/2000/svg",width:"15px",height:"15px",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-search stroke-gray-500 transition-all"};function Ge(f,r){return e.openBlock(),e.createElementBlock("svg",Qe,[...r[0]||(r[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"},null,-1),e.createElementVNode("path",{d:"M21 21l-6 -6"},null,-1)])])}const oe=K(He,[["render",Ge]]),Xe={},Je={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-x stroke-gray-500 hover:stroke-red-500 transition-all",width:"15px",height:"15px"};function Ze(f,r){return e.openBlock(),e.createElementBlock("svg",Je,[...r[0]||(r[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M18 6l-12 12"},null,-1),e.createElementVNode("path",{d:"M6 6l12 12"},null,-1)])])}const G=K(Xe,[["render",Ze]]);class ne{static getWidthClass(r){return typeof r=="number"?`max-w-[${r}px] min-w-[${r}px]`:typeof r=="string"?r.endsWith("%")||r.endsWith("px")?`max-w-[${r}]`:`max-w-${r}`:"w-full"}}const ve={class:"absolute bottom-2/4 translate-y-2/4 cursor-pointer left-3"},et=["placeholder"],tt=e.defineComponent({__name:"text-input",props:{id:{},name:{},title:{},type:{},label:{},width:{default:220},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(f,{emit:r}){const p=f,t=e.ref((p.placeholder||p.label||p.title||p.name||"search").toString()),s=r,o=e.ref(p.modelValue?.toString()??"");e.watch(()=>p.modelValue,b=>{b!==o.value&&(o.value=b?.toString()??"")});let y=null;function m(){if(o.value=o.value.trimStart(),o.value.length===0){a();return}y&&clearTimeout(y),y=setTimeout(()=>{s("update:modelValue",o.value),s("change",{name:p.name,value:o.value})},300)}function a(){o.value="",s("update:modelValue",""),s("clear",p.name)}return(b,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-form-text relative bg-white rounded-sm [&>input]:py-[7px] [&>input]:max-h-[38px] [&>input]:ps-10 [&>input]:pe-8 [&>input]:block [&>input]:w-full [&>input]:bg-gray-100 [&>input]:border-transparent [&>input]:rounded-sm [&>input]:text-sm [&>input]:focus:bg-white [&>input]:focus:border-blue-500 [&>input]:focus:ring-blue-500 [&>input]:disabled:opacity-50 [&>input]:disabled:pointer-events-none [&>input]:dark:bg-neutral-700 [&>input]:dark:border-transparent [&>input]:dark:text-neutral-400 [&>input]:dark:placeholder:text-neutral-400 dark:focus:bg-neutral-800 dark:focus:ring-neutral-600",b.layout==="inline"?e.unref(ne).getWidthClass(b.width):"mb-2"+(b.layout==="popover"?" m-2":"")])},[e.createElementVNode("div",ve,[e.createVNode(oe)]),o.value!==""?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:a,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer"},[e.createVNode(G)])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":c[0]||(c[0]=u=>o.value=u),onInput:m,placeholder:t.value,class:"!pr-7 !pl-8 bg-white h-[38px] min-w-[100px] text-sm py-2 px-3 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-sm text-sm text-stone-800 placeholder:text-stone-400 focus:border-2 focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,40,et),[[e.vModelText,o.value]])],2))}});function re(f={color:"blue"}){return e.computed(()=>{const p=`w-full px-3 py-2 border-solid border text-black border-gray-300 text-sm rounded focus:outline-none focus:ring-2 focus:ring-${f.color}-500 focus:border-transparent
|
|
2
|
+
text-gray-800 bg-white dark:text-neutral-300 dark:bg-neutral-800 dark:border-neutral-600`;return f?.size==="sm"?`${p}h-[32px]`:`${p}h-[38px]`})}function lt(){return"rounded-md font-medium border-gray-200 border-solid disabled:pointer-events-none disabled:opacity-50 px-4 py-2 w-full bg-transparent border text-black text-sm h-[38px]"}function ot(){return"font-medium border border-gray-200 border-solid disabled:pointer-events-none disabled:opacity-50 h-7 rounded-md text-xs px-2 py-1 text-gray-800 bg-white hover:bg-gray-100 dark:text-neutral-300 dark:bg-neutral-800 dark:hover:bg-neutral-700 dark:border-neutral-600"}function ae(f){return f==="ghost"?"inline-flex relative py-2 px-4 items-center gap-x-2 text-sm font-medium rounded-sm border text-gray-600 hover:bg-blue-100 hover:text-gray-800 focus:outline-hidden focus:bg-gray-100 focus:text-gray-800 disabled:opacity-50 disabled:pointer-events-none dark:text-gray-500 dark:hover:bg-blue-800/30 dark:hover:text-blue-400 dark:focus:bg-blue-800/30 dark:focus:text-blue-400":f==="soft"?"inline-flex relative py-2 px-4 items-center gap-x-2 text-sm font-medium rounded-sm border bg-white-100 text-gray-800 hover:bg-gray-200 hover:bg-gray-200 focus:outline-hidden focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:text-blue-400 dark:hover:bg-blue-900 dark:focus:bg-blue-900":"relative border-solid border-gray-200 focus-visible:outline-hidden focus-visible:ring-ring inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border-input hover:bg-gray-100 border px-4 py-2 gap-1 bg-transparent h-[38px]"}const nt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},rt=["placeholder","disabled"],at={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},st={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},it=["placeholder","disabled"],ct=["disabled"],no={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},ro={key:1,class:"flex justify-end items-center text-xs text-gray-500 p-1 border-t"},dt=e.defineComponent({__name:"range-input",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(f,{expose:r,emit:p}){const t=re(),s=lt(),o=z(),y=f,m=e.ref(y.modelValue??y.default??[]),a=p,b=e.computed({get:()=>y.modelValue??m.value,set:d=>{y.modelValue!==void 0?a("update:modelValue",d):m.value=d}});function c(){a("change",{name:y.name,value:b.value||m.value})}function u(){m.value=[],b.value=m.value,a("clear",y.name)}return e.watch(()=>y.modelValue,d=>{d!==void 0&&y.layout!=="popover"?(m.value=d,a("update:modelValue",d)):m.value=[]}),r({clear:u,currentValue:b}),(d,k)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",null,[e.createElementVNode("div",{class:e.normalizeClass(d.layout==="vertical"?"inline-flex items-center gap-2":"space-y-3 p-2")},[e.createElementVNode("div",null,[d.layout!=="vertical"?(e.openBlock(),e.createElementBlock("label",nt,e.toDisplayString(e.unref(o)("filter.from")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"number",class:e.normalizeClass(e.unref(t)),placeholder:d.placeholder?.[0]??e.unref(o)("filter.min"),step:"1",style:{outline:"none"},"onUpdate:modelValue":k[0]||(k[0]=w=>b.value[0]=w),disabled:d.disabled},null,10,rt),[[e.vModelText,b.value[0]]])]),d.layout==="vertical"?(e.openBlock(),e.createElementBlock("label",at," - ")):e.createCommentVNode("",!0),e.createElementVNode("div",null,[d.layout!=="vertical"?(e.openBlock(),e.createElementBlock("label",st,e.toDisplayString(e.unref(o)("filter.to")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"number",class:e.normalizeClass(e.unref(t)),placeholder:d.placeholder?.[1]??e.unref(o)("filter.max"),min:"0",max:"1000000000000000",step:"1",style:{outline:"none"},"onUpdate:modelValue":k[1]||(k[1]=w=>b.value[1]=w),disabled:d.disabled},null,10,it),[[e.vModelText,b.value[1]]])]),["popover","inline","vertical"].includes(d.layout)?(e.openBlock(),e.createElementBlock("button",{key:1,onClick:c,class:e.normalizeClass(e.unref(s)+(d.layout==="vertical"?" w-[50px]":" bg-blue-100 hover:bg-blue-200"))},e.toDisplayString(d.layout==="vertical"?"Ok":e.unref(o)("filter.apply")),3)):e.createCommentVNode("",!0),["popover","inline"].includes(d.layout)?(e.openBlock(),e.createElementBlock("button",{key:2,disabled:!(b.value[0]||b.value[1]),onClick:u,class:e.normalizeClass(e.unref(s)+" hover:bg-gray-100")},e.toDisplayString(e.unref(o)("filter.clear")),11,ct)):e.createCommentVNode("",!0)],2)]),(d.cleanable&&m.value.length,e.createCommentVNode("",!0))],64))}});class R{static format(r){const p=r.getFullYear(),t=(r.getMonth()+1).toString().padStart(2,"0"),s=r.getDate().toString().padStart(2,"0");return`${p}-${t}-${s}`}static getShiftedDay(r,p=0){const t=r?new Date(r):new Date;return t.setDate(t.getDate()+p),this.format(t)}static getLastWeekRange(r,p,t=0){if(r&&p){const b=new Date(r),c=new Date(p);return b.setDate(b.getDate()+t*7),c.setDate(c.getDate()+t*7),[this.format(b),this.format(c)]}const s=new Date,o=s.getDay(),y=o===0?13:o-1+7,m=new Date(s);m.setDate(s.getDate()-y+t*7);const a=new Date(m);return a.setDate(m.getDate()+6),[this.format(m),this.format(a)]}static getMonthRange(r,p,t=0){let s;r?s=new Date(r):s=new Date,s=new Date(s.getFullYear(),s.getMonth()+t,1);const o=s,y=new Date(s.getFullYear(),s.getMonth()+1,0);return[this.format(o),this.format(y)]}static getQuarterRange(r,p,t=0){const s=r||p,o=s?new Date(s):new Date;let y=Math.floor(o.getMonth()/3);y+=t;const m=(y%4+4)%4*3,a=o.getFullYear()+Math.floor(y/4),b=new Date(a,m,1),c=new Date(a,m+3,0);return[this.format(b),this.format(c)]}static getYear(r,p=0){let t;return r&&/^\d{4}$/.test(r)?t=parseInt(r,10):r?t=new Date(r).getFullYear():t=new Date().getFullYear(),String(t+p)}static getYearRange(r,p=0){let t;return r&&/^\d{4}$/.test(r)?t=parseInt(r,10):r?t=new Date(r).getFullYear():t=new Date().getFullYear(),[this.format(new Date(t+p,0,1)),this.format(new Date(t+p+1,0,0))]}static getRangeFromDaysBefore(r){const p=new Date,t=new Date(p.getTime());return t.setDate(p.getDate()-r),[this.format(t),this.format(p)]}}function se(f,r){const{popoverRef:p}=f,t=z(),s=e.ref(""),o=e.ref(f.modelValue??f.default??[]),y=e.ref(0);function m(){const l=R.getRangeFromDaysBefore(y.value);return o.value=[...l],r("change",{name:f.name,value:o.value}),r("update:modelValue",o.value),l}function a(l){s.value=l,p.value?.close();const n=[];switch(s.value){case"today":n.push(R.getShiftedDay()),n.push(R.getShiftedDay());break;case"week":n.push(...R.getLastWeekRange());break;case"month":n.push(...R.getMonthRange());break;case"quarter":n.push(...R.getQuarterRange());break;case"year":n.push(...R.getYearRange());break;case"last_7_days":y.value=7,m();break;case"range":y.value=7,n.push(...m());break}o.value=[...n],r("change",{name:f.name,value:o.value}),r("update:modelValue",o.value)}function b(){const l=[];switch(s.value){case"today":l.push(R.getShiftedDay(o.value[0],1));break;case"week":l.push(...R.getLastWeekRange(o.value[0],o.value[1],1));break;case"month":l.push(...R.getMonthRange(o.value[0],o.value[1],1));break;case"quarter":l.push(...R.getQuarterRange(o.value[0],o.value[1],1));break;case"year":l.push(...R.getYearRange(o.value[0],1));break}o.value=[...l],r("change",{name:f.name,value:o.value}),r("update:modelValue",o.value)}function c(){const l=[];switch(s.value){case"today":l.push(R.getShiftedDay(o.value[0],-1));break;case"week":l.push(...R.getLastWeekRange(o.value[0],o.value[1],-1));break;case"month":l.push(...R.getMonthRange(o.value[0],o.value[1],-1));break;case"quarter":l.push(...R.getQuarterRange(o.value[0],o.value[1],-1));break;case"year":l.push(...R.getYearRange(o.value[0],-1));break}o.value=[...l],r("change",{name:f.name,value:o.value}),r("update:modelValue",o.value)}const u=["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"];function d(l){const[n,g,h]=l.split("-");return`${h}.${g}.${n}`}function k(l,n="long"){const g=new Date(Date.UTC(2e3,l-1,1));return new Intl.DateTimeFormat(localStorage.locale,{month:n,timeZone:"UTC"}).format(g)}function w(l){const{value:n}=o;switch(l){case"today":return d(n[0]);case"range":return"Період";case"week":return n[0]&&n[1]?`${d(n[0])} – ${d(n[1])}`:"";case"quarter":if(n[0]){const g=new Date(n[0]),h=g.getFullYear(),_=g.getMonth();return`${Math.floor(_/3)+1} ${t("filter.quarter")} ${h}`}return"";case"month":if(n[0]){const[g,h]=n[0].split("-");return`${k(parseInt(h,10))} ${g}`}return"";case"year":return n[0]||"";case"last_7_days":return"За останні дні";default:return f.label??""}}const x=e.computed(()=>s.value?w(s.value):f.label??"");function i(){s.value="",o.value=[],r("update:modelValue",[]),r("clear",f.name)}return{activeMode:s,innerValue:o,daysBefore:y,onDaysBeforeChange:m,onSelectChange:a,nextClick:b,prevClick:c,ukMonths:u,formatDisplayDate:d,getModeLabel:w,currentLabel:x,clear:i}}const mt={key:0,class:"relative flex w-full h-auto gap-2 filter-date m-2 flex-wrap"},ft={key:0,class:"flex gap-1 !w-[75%] rounded-sm"},ut=["max","disabled"],pt=["min","disabled"],yt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},gt=["max","disabled"],ht={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},bt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},kt=["min","disabled"],xt={class:"flex gap-1 pt-2"},wt=["onClick"],ao={key:0,class:"flex justify-end items-center text-xs text-gray-500 p-1 border-t"},Vt=e.defineComponent({__name:"date-input",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(f,{expose:r,emit:p}){const t=f,s=re(),o=ot(),y=z(),m=p,a=e.ref(null),{activeMode:b,innerValue:c,onSelectChange:u,nextClick:d,prevClick:k,clear:w}=se({...t,popoverRef:a},m);return e.watch(()=>t.modelValue,x=>{x!==void 0?(c.value=x,m("update:modelValue",x)):(b.value="",c.value=[])}),e.watch(c,x=>{m("update:modelValue",x),m("change",{name:t.name,value:x})},{deep:!0}),r({clear:w,popoverRef:a}),(x,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[x.layout==="inline"?(e.openBlock(),e.createElementBlock("div",mt,[e.unref(b)!==""&&e.unref(b)==="range"?(e.openBlock(),e.createElementBlock("div",ft,[i[7]||(i[7]=e.createTextVNode(" 1111 ",-1)),e.withDirectives(e.createElementVNode("input",{type:"date",max:e.unref(c)[1],locale:"uk-UA","onUpdate:modelValue":i[0]||(i[0]=l=>e.unref(c)[0]=l),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-sm focus:outline-blue-600",disabled:x.disabled},null,8,ut),[[e.vModelText,e.unref(c)[0]]]),e.withDirectives(e.createElementVNode("input",{type:"date",min:e.unref(c)[0],locale:"uk-UA","onUpdate:modelValue":i[1]||(i[1]=l=>e.unref(c)[1]=l),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-sm focus:outline-blue-600 appearance-auto",disabled:x.disabled},null,8,pt),[[e.vModelText,e.unref(c)[1]]])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(x.layout==="popover"?"space-y-3 p-2":"flex items-center gap-2")},[e.createElementVNode("div",{class:e.normalizeClass(x.layout!=="popover"?"w-[48%]":"")},[x.layout==="popover"?(e.openBlock(),e.createElementBlock("label",yt,e.toDisplayString(e.unref(y)("filter.from")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"date",max:e.unref(c)[1],locale:"uk-UA","onUpdate:modelValue":i[2]||(i[2]=l=>e.unref(c)[0]=l),class:e.normalizeClass(e.unref(s)),disabled:x.disabled},null,10,gt),[[e.vModelText,e.unref(c)[0]]])],2),x.layout!=="popover"?(e.openBlock(),e.createElementBlock("label",ht," - ")):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(x.layout!=="popover"?"w-[48%]":"")},[x.layout==="popover"?(e.openBlock(),e.createElementBlock("label",bt,e.toDisplayString(e.unref(y)("filter.to")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"date",min:e.unref(c)[0],locale:"uk-UA","onUpdate:modelValue":i[3]||(i[3]=l=>e.unref(c)[1]=l),class:e.normalizeClass(e.unref(s)),disabled:x.disabled},null,10,kt),[[e.vModelText,e.unref(c)[1]]])],2)],2),e.createElementVNode("div",xt,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["today","week","month","quarter","year"],l=>e.createElementVNode("button",{key:l,class:e.normalizeClass(e.unref(o)+(e.unref(b)===l?" bg-blue-100":"")),onClick:n=>e.unref(u)(l)},e.toDisplayString(e.unref(y)("filter."+l)),11,wt)),64)),e.createElementVNode("button",{class:e.normalizeClass(e.unref(o)),onClick:i[4]||(i[4]=(...l)=>e.unref(k)&&e.unref(k)(...l))},"<",2),e.createElementVNode("button",{class:e.normalizeClass(e.unref(o)),onClick:i[5]||(i[5]=(...l)=>e.unref(d)&&e.unref(d)(...l))},">",2)]),(x.cleanable,e.createCommentVNode("",!0))],64))}});function Ct(f,r){const{api:p,options:t=[],limit:s=20,dataKey:o="data"}=f,y=f.multi;function m(B){return y?Array.isArray(B)?B:B?[B]:[]:Array.isArray(B)?B[0]:B}const a=e.ref(m(f.modelValue)),b=e.ref(""),c=e.ref(!1),u=e.ref(t),d=e.ref("id"),k=e.ref("text"),w=e.ref(!1),x=e.ref(f.layout!=="popover"&&t.length>s),i=e.ref([]),l=e.ref(0);function n(B){const $=B.find(Boolean)??{},j=["id","value","code","key"].find(I=>I in $)??"id",M=["text","label","name","title"].find(I=>I in $)??"text";return{autoValueKey:j,autoLabelKey:M}}if(t.length>0){const B=n(t);d.value=B.autoValueKey,k.value=B.autoLabelKey}const g=e.computed(()=>{if(p)return u.value;const B=u.value;if(f.layout==="popover")return B;if(!b.value)return w.value?B:B.slice(0,s);const $=b.value.toLowerCase();return B.filter(j=>j[k.value].toLowerCase().includes($))});let h=null;async function _(B){if(p){c.value=!0;try{const $=new URL(p,window.location.origin);$.searchParams.set("json","1"),$.searchParams.set("key",B),$.searchParams.set("limit",s.toString());const j=await fetch($.toString());if(!j.ok){Z.notify({type:"error",title:"Error",message:"Failed to fetch remote options"}),u.value=[];return}const M=await j.json();if(!M[o]){Z.notify({type:"error",title:"Error",message:M}),u.value=[];return}if(u.value=M[o],u.value.length>0){const I=n(u.value);d.value=I.autoValueKey,k.value=I.autoLabelKey}l.value=M.total}catch($){console.error("Failed to fetch remote options:",$)}finally{c.value=!1}}}e.watch(b,B=>{p&&(h&&clearTimeout(h),h=setTimeout(()=>{_(B)},200))}),e.watch(()=>f.modelValue,B=>{a.value=m(B)},{immediate:!0});function D(B){return y&&Array.isArray(a.value)?a.value.includes(B[d.value]):a.value&&a.value===B[d.value]}function V(B){if(y&&!Array.isArray(a.value)&&(a.value=[]),y&&Array.isArray(a.value)){const $=a.value.includes(B[d.value]);a.value=$?a.value.filter(j=>j!==B[d.value]):[...a.value,B[d.value]],i.value=$?i.value.filter(j=>j!==B[k.value]):[...i.value,B[k.value]]}else a.value=B[d.value],i.value=B[k.value];r("update:modelValue",a.value),r("change",{name:f.name,value:a.value})}function C(){y?(a.value=[],i.value=[]):(a.value=void 0,i.value=[]),r("update:modelValue",a.value),r("clear",f.name)}function S(){h&&clearTimeout(h),b.value="",w.value=!1}function E(){w.value=!w.value}e.onBeforeUnmount(()=>{h&&clearTimeout(h)});const N=e.ref(-1);e.watch(g,()=>{N.value=g.value.length>0?0:-1});function A(B){const $=g.value.length;if(B.key==="ArrowDown")B.preventDefault(),N.value=(N.value+1)%$;else if(B.key==="ArrowUp")B.preventDefault(),N.value=(N.value-1+$)%$;else if(B.key==="Enter"&&(B.preventDefault(),N.value>=0&&N.value<g.value.length)){const j=g.value[N.value];V(j)}}function F(){p&&u.value.length===0&&b.value.length===0&&_(b.value)}return{innerValue:a,searchTerm:b,filteredOptions:g,isSelected:D,selectItem:V,clear:C,resetSearch:S,toggleShowAll:E,isReqProc:c,showAll:w,isEnableShowAll:x,labelKey:k,valueKey:d,allOptions:u,highlightedIndex:N,onKeyDown:A,selectedLabels:i,totalCount:l,loadData:F}}const Bt={class:"h-[45px] shrink-0 px-[6px] py-[4px] flex items-center relative justify-center"},Et=["placeholder"],Nt={key:0,class:"w-full"},St={class:"flex flex-col items-center justify-center p-5 text-center"},_t={class:"max-w-sm mx-auto mt-6"},Dt={class:"font-medium text-gray-800 dark:text-neutral-200"},$t={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},Ft={key:1,class:"flex justify-between items-center text-xs text-gray-500 p-1 border-t"},At=e.defineComponent({__name:"select",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{default:10},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(f,{expose:r,emit:p}){const t=z(),s=f,o=p,y=e.ref(null),{innerValue:m,filteredOptions:a,isSelected:b,selectItem:c,clear:u,resetSearch:d,toggleShowAll:k,isReqProc:w,showAll:x,isEnableShowAll:i,searchTerm:l,labelKey:n,valueKey:g,highlightedIndex:h,onKeyDown:_,selectedLabels:D,totalCount:V,loadData:C}=Ct({...s,modelValue:s.modelValue},o);e.onMounted(()=>{d(),s.layout!=="inline"&&(C(),y.value&&s.layout==="popover"&&y.value.focus())}),e.watch(()=>s.modelValue,E=>{E===void 0&&(s.multi?m.value=[]:m.value=void 0)});const S=e.ref([]);return e.watch(h,E=>{E>=0&&S.value[E]&&S.value[E]?.scrollIntoView({block:"nearest",behavior:"smooth"})}),e.watch(a,()=>{S.value=[]}),r({clear:u,inputTextRef:y,selectedLabels:D,loadData:C}),(E,N)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([E.layout==="popover"?"flex flex-col h-full":"flex flex-col vs-filter-checkbox space-y-0.5"])},[e.createElementVNode("div",Bt,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":N[0]||(N[0]=A=>e.isRef(l)?l.value=A:null),onKeydown:N[1]||(N[1]=(...A)=>e.unref(_)&&e.unref(_)(...A)),class:"w-full h-full text-[13px] px-4 border rounded-sm pl-9 focus:outline-none focus:ring-ring focus:ring-1 focus:ring-blue-500 text-gray-700",placeholder:e.unref(t)("filter.search"),type:"text",ref_key:"inputTextRef",ref:y},null,40,Et),[[e.vModelText,e.unref(l)]]),e.createVNode(oe,{class:"absolute text-gray-400 -translate-y-1/2 left-4 top-1/2"}),e.unref(l)!=""?(e.openBlock(),e.createBlock(G,{key:0,onClick:N[2]||(N[2]=A=>l.value=""),class:"absolute text-gray-400 -translate-y-1/2 cursor-pointer hover:text-red-500 right-4 top-1/2"})):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass([E.layout==="popover"?"flex-1 overflow-y-auto p-2":"",E.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),(A,F)=>(e.openBlock(),e.createBlock(W,{layout:E.layout,count:A.count,label:A[e.unref(n)],color:A.color,type:E.multi?"checkbox":"radio",value:A[e.unref(g)],"is-selected":e.unref(b)(A),highlighted:F===e.unref(h),onItemClick:B=>e.unref(c)(A),ref_for:!0,ref:B=>S.value[F]=B?.el},null,8,["layout","count","label","color","type","value","is-selected","highlighted","onItemClick"]))),256))],2),E.type==="select"&&e.unref(a).length===0&&!e.unref(w)?(e.openBlock(),e.createElementBlock("div",Nt,[e.createElementVNode("div",St,[e.createVNode(H),e.createElementVNode("div",_t,[e.createElementVNode("p",Dt,e.toDisplayString(e.unref(t)("filter.notfound")),1),N[7]||(N[7]=e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"},null,-1))])])])):e.createCommentVNode("",!0),E.layout!=="popover"&&E.type!=="select"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[!e.unref(x)&&e.unref(i)?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:N[3]||(N[3]=(...A)=>e.unref(k)&&e.unref(k)(...A)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.more"))+" ",1),e.createVNode(U)])):e.createCommentVNode("",!0),e.unref(x)?(e.openBlock(),e.createElementBlock("div",{key:1,onClick:N[4]||(N[4]=(...A)=>e.unref(k)&&e.unref(k)(...A)),class:"inline-flex cursor-pointer items-center gap-x-1.5 text-[13px] text-gray-800 underline underline-offset-4 hover:text-blue-600 focus:outline-none focus:text-blue-600 mt-1 px-2"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.less"))+" ",1),e.createVNode(Q)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),E.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[E.layout==="inline"?(e.openBlock(),e.createElementBlock("div",$t,[e.createTextVNode(e.toDisplayString(E.multi&&Array.isArray(e.unref(m))?e.unref(m)?.length:e.unref(m)!==void 0&&(e.unref(m)||e.unref(m)===null)?1:0)+" / "+e.toDisplayString(e.unref(V))+" "+e.toDisplayString(e.unref(t)("filter.selected"))+" ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:N[5]||(N[5]=(...A)=>e.unref(u)&&e.unref(u)(...A))},e.toDisplayString(e.unref(t)("filter.clear")),513),[[e.vShow,e.unref(m)!==""&&e.unref(m)!==void 0||e.unref(m)]])])):e.createCommentVNode("",!0),E.layout==="popover"?(e.openBlock(),e.createElementBlock("div",Ft,[e.createElementVNode("span",null,e.toDisplayString(E.multi&&Array.isArray(e.unref(m))?e.unref(m)?.length:e.unref(m)!==void 0&&(e.unref(m)||e.unref(m)===null)?1:0)+" / "+e.toDisplayString(e.unref(V))+" "+e.toDisplayString(e.unref(t)("filter.selected")),1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:N[6]||(N[6]=(...A)=>e.unref(u)&&e.unref(u)(...A))},e.toDisplayString(e.unref(t)("filter.clear")),513),[[e.vShow,e.unref(m)!==""&&e.unref(m)!==void 0||e.unref(m)]])])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),jt=["for","onClick"],Mt=["id","name","value"],Rt={class:"block"},Tt={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},Kt={key:1,class:"flex justify-between items-center text-xs text-gray-500 p-1 border-t"},Lt=e.defineComponent({__name:"tag-field",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(f,{expose:r,emit:p}){const t=f,s=p,{innerValue:o,isSelected:y,selectItem:m,clear:a,labelKey:b,valueKey:c,allOptions:u}=t.multi?v({...t,modelValue:t.modelValue??t.default??[]},s):q({...t,modelValue:t.modelValue!==void 0?t.modelValue:t.default??""},s);return r({clear:a}),e.watch(()=>t.modelValue,d=>{d===void 0&&(t.multi?o.value=[]:o.value=void 0)}),(d,k)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:e.normalizeClass(["grid grid-cols-3 gap-2 mx-[1px]",d.layout==="popover"?"m-1":"mb-1"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(u),w=>(e.openBlock(),e.createElementBlock("label",{key:`item-${w[e.unref(c)]}`,for:`item-${w[e.unref(c)]}`,onClick:e.withModifiers(x=>e.unref(m)(w),["stop","prevent"]),class:e.normalizeClass([e.unref(y)(w)?"ring-2 ring-indigo-600":"","p-2.5 group relative flex justify-center items-center gap-x-12 text-center text-xs bg-white text-gray-800 border border-gray-200 cursor-pointer rounded-sm dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-200 peer-checked:text-indigo-600 dark:has-checked:text-indigo-500 peer-checked:border-indigo-600 dark:has-checked:border-indigo-500 peer-checked:ring peer-checked:shadow focus:ring dark:has-checked:ring-indigo-500 has-disabled:pointer-events-none has-disabled:text-gray-200 dark:has-disabled:text-neutral-700 has-disabled:after:absolute has-disabled:after:inset-0 has-disabled:after:bg-[linear-gradient(to_right_bottom,transparent_calc(50%-1px),var(--color-gray-200)_calc(50%-1px),var(--color-gray-200)_50%,transparent_50%)] dark:has-disabled:after:bg-[linear-gradient(to_right_bottom,transparent_calc(50%-1px),var(--color-neutral-700)_calc(50%-1px),var(--color-neutral-700)_50%,transparent_50%)]"])},[e.createElementVNode("input",{type:"checkbox",id:`item-${w[e.unref(c)]}`,class:"hidden w4poy border-gray-200 g41z1 g22e3 axcnw dark:text-indigo-500 dark:border-neutral-700 dark:focus:ring-neutral-900",name:`item-${w[e.unref(c)]}`,value:w[e.unref(c)]},null,8,Mt),e.createElementVNode("span",Rt,e.toDisplayString(w[e.unref(b)]),1)],10,jt))),128))],2),d.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[d.layout==="inline"?(e.openBlock(),e.createElementBlock("div",Tt,[e.createTextVNode(e.toDisplayString(d.multi&&Array.isArray(e.unref(o))?e.unref(o)?.length:e.unref(o)!==void 0&&(e.unref(o)||e.unref(o)===null)?1:0)+" з "+e.toDisplayString(e.unref(u).length)+" обрано ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:k[0]||(k[0]=(...w)=>e.unref(a)&&e.unref(a)(...w))}," Очистити ",512),[[e.vShow,e.unref(o)!==""&&e.unref(o)!==void 0||e.unref(o)]])])):e.createCommentVNode("",!0),d.layout==="popover"?(e.openBlock(),e.createElementBlock("div",Kt,[e.createElementVNode("span",null,e.toDisplayString(d.multi&&Array.isArray(e.unref(o))?e.unref(o)?.length:e.unref(o)!==void 0&&(e.unref(o)||e.unref(o)===null)?1:0)+" з "+e.toDisplayString(e.unref(u).length)+" обрано",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:k[1]||(k[1]=(...w)=>e.unref(a)&&e.unref(a)(...w))}," Очистити ",512),[[e.vShow,e.unref(o)!==void 0&&e.unref(o)!==""||e.unref(o)]])])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],64))}}),zt=["disabled","title"],Ot={class:"flex w-full items-center justify-between gap-1 overflow-hidden text-left"},It={class:"truncate text-ellipsis text-sm"},Ut={key:0,class:"inline-flex min-h-[18px] min-w-[18px] items-center justify-center rounded-sm bg-blue-100 px-2 text-[11px] font-semibold text-blue-600"},Pt={class:"w-full text-sm text-stone-800 bg-white shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-sm focus:outline-none focus:bg-stone-100 after:h-4 after:absolute after:-bottom-4 after:start-0 after:w-full before:h-4 before:absolute before:-top-4 before:start-0 before:w-full"},Yt={class:"w-[360px] max-h-[500px] overflow-auto [&::-webkit-scrollbar]:h-2 [&::-webkit-scrollbar]:w-1 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-stone-100 [&::-webkit-scrollbar-thumb]:bg-stone-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 before:w-full p-2"},X=e.defineComponent({__name:"popover-field",props:{disabled:{type:Boolean,default:!1},label:{},en:{},ua:{},uk:{},fr:{},de:{},es:{},currentValue:{},fieldRef:{},width:{},mode:{},layout:{}},setup(f,{expose:r}){const p=f,t=e.computed(()=>ae(p.mode)),s=e.ref(!1),o=e.ref({top:0,left:0}),y=e.ref(null),m=e.ref(null),a=e.ref(null);function b(){const h=m.value,_=a.value;if(!h||!_)return;const D=h.getBoundingClientRect(),V=_.offsetWidth,C=_.offsetHeight,S=window.innerWidth,E=window.innerHeight,N=8;let A=D.bottom+N,{left:F}=D;const B=Math.max(S-V-10,10);if(F=Math.min(F,B),F=Math.max(F,10),A+C>E-10){const $=D.top-C-N;A=$>=10?$:Math.max(E-C-10,10)}A<10&&(A=10),o.value={top:A,left:F}}function c(){s.value=!s.value,s.value&&e.nextTick(()=>{b(),p.fieldRef?.inputTextRef&&p.fieldRef?.inputTextRef?.focus?.(),p.fieldRef?.loadData&&p.fieldRef?.loadData?.()})}function u(h){!y.value?.contains(h.target)&&!a.value?.contains(h.target)&&!m.value?.contains(h.target)&&(s.value=!1)}function d(h){h.key==="Escape"&&(s.value=!1)}const k=e.ref(!1),w=e.ref("ua"),x=h=>{h.detail.key==="locale"&&(w.value=h.detail.newValue)};e.onMounted(()=>{k.value=!0,w.value=localStorage.locale,window.addEventListener("storage",x),document.addEventListener("click",u,!0),document.addEventListener("keydown",d),window.addEventListener("scroll",b,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("resize",x),document.removeEventListener("click",u,!0),document.removeEventListener("keydown",d),window.removeEventListener("scroll",b,!0)});function i(){s.value=!1}r({close:i});function l(h){return Array.isArray(h)?h.filter(_=>_!=null&&_!=="").length:h&&typeof h=="object"?Object.values(h).filter(_=>_!=null&&_!=="").length:typeof h=="string"?h.trim()===""?0:1:typeof h=="number"?Number.isNaN(h)?0:1:h===null||h!==void 0?1:0}const n=e.computed(()=>{const h=p.fieldRef?.selectedLabels,_=l(h);return _>0?_:l(p.currentValue)}),g=e.computed(()=>{const h=p.fieldRef?.selectedLabels;return!h||["inline"].includes(p.layout||"")?p[w.value]||(p.label??""):Array.isArray(h)?h.length>0?h.join(", "):p.label??"":String(h)});return(h,_)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{onClick:c,disabled:h.disabled,ref_key:"triggerRef",ref:m,title:h.label,class:e.normalizeClass([t.value,h.width?e.unref(ne).getWidthClass(h.width):"w-full",h.layout==="inline"&&n.value>0?"border border-blue-400 bg-blue-50 text-blue-600":""]),type:"button"},[e.createElementVNode("span",Ot,[e.createElementVNode("span",It,e.toDisplayString(g.value),1),h.layout==="inline"&&n.value>0?(e.openBlock(),e.createElementBlock("span",Ut,e.toDisplayString(n.value),1)):e.createCommentVNode("",!0)]),e.createVNode(U,{class:"h-4 w-4 text-neutral-500"})],10,zt),k.value?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:"body"},[e.withDirectives(e.createElementVNode("div",{ref_key:"popperRef",ref:a,class:"vsTailwind vs-popover__content bottom-right w-fit fixed z-[1000]",style:e.normalizeStyle({top:`${o.value.top}px`,left:`${o.value.left}px`}),"data-inside-popover":""},[e.createElementVNode("div",Pt,[e.createElementVNode("div",Yt,[e.renderSlot(h.$slots,"default")])])],4),[[e.vShow,s.value]])])):e.createCommentVNode("",!0)]))}}),Wt={},qt={xmlns:"http://www.w3.org/2000/svg",width:"15px",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-chevron-down text-gray-800 rotate-[90deg]"};function Ht(f,r){return e.openBlock(),e.createElementBlock("svg",qt,[...r[0]||(r[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const Qt=K(Wt,[["render",Ht]]),Gt={},Xt={xmlns:"http://www.w3.org/2000/svg",width:"15px",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"icon icon-tabler icons-tabler-outline icon-tabler-chevron-down text-gray-800 rotate-[270deg]"};function Jt(f,r){return e.openBlock(),e.createElementBlock("svg",Xt,[...r[0]||(r[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const Zt=K(Gt,[["render",Jt]]),vt={class:"flex gap-1"},el={class:"mb-1"},tl={class:"mb-1"},ll={class:"inline-flex rounded-sm shrink-0 pl-1"},ol=["title"],nl={class:"inline-flex rounded-sm shrink-0 pl-1"},rl=["title"],al={key:1,class:"flex gap-1 !w-[75%] rounded-sm"},sl=["max","value","disabled"],il=["min","value","disabled"],so={key:0,class:"flex justify-end items-center text-xs text-gray-500 p-1 border-t"},cl=e.defineComponent({__name:"date-input-inline",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(f,{expose:r,emit:p}){const t=z(),s=f,o=p,y=e.ref(null),{activeMode:m,innerValue:a,onSelectChange:b,nextClick:c,prevClick:u,currentLabel:d,clear:k}=se({...s,popoverRef:y},o);e.watch(()=>s.modelValue,i=>{i!==void 0?(a.value=i,o("update:modelValue",i)):(m.value="",a.value=[])}),e.watch(a,i=>{o("update:modelValue",i),o("change",{name:s.name,value:i})},{deep:!0});function w(i){const l=Array.isArray(a.value)?[...a.value]:[];a.value=[i,l[1]||""]}function x(i){const l=Array.isArray(a.value)?[...a.value]:[];a.value=[l[0]||"",i]}return r({clear:k,popoverRef:y}),(i,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",vt,[e.createVNode(X,{ref_key:"popoverRef",ref:y,label:e.unref(d),"current-value":e.unref(a),mode:i.mode,width:typeof i.width=="number"&&e.unref(a).length?i.width-70:i.width,onClear:e.unref(k),layout:i.layout,class:e.normalizeClass(i.itemClass)},{default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:l[0]||(l[0]=n=>e.unref(b)("range")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-sm cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.period"))+" ",1),e.unref(m)==="range"?(e.openBlock(),e.createBlock(O,{key:0})):e.createCommentVNode("",!0)])]),l[12]||(l[12]=e.createElementVNode("div",null,[e.createElementVNode("div",{class:"pt-1 mt-1 border-t"})],-1)),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:l[1]||(l[1]=n=>e.unref(b)("today")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-sm cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.today"))+" ",1),e.unref(m)==="today"?(e.openBlock(),e.createBlock(O,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:l[2]||(l[2]=n=>e.unref(b)("week")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-sm cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.week"))+" ",1),e.unref(m)==="week"?(e.openBlock(),e.createBlock(O,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:l[3]||(l[3]=n=>e.unref(b)("month")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-sm cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.month"))+" ",1),e.unref(m)==="month"?(e.openBlock(),e.createBlock(O,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:l[4]||(l[4]=n=>e.unref(b)("quarter")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-sm cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.quarter"))+" ",1),e.unref(m)==="quarter"?(e.openBlock(),e.createBlock(O,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",el,[e.createElementVNode("button",{type:"button",onClick:l[5]||(l[5]=n=>e.unref(b)("year")),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-sm cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.year"))+" ",1),e.unref(m)==="year"?(e.openBlock(),e.createBlock(O,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",tl,[e.createElementVNode("button",{type:"button",onClick:l[6]||(l[6]=n=>e.unref(k)()),class:"flex items-center justify-between w-full px-4 py-2 text-sm text-left rounded-sm cursor-pointer filter-date__item hs-selected:bg-stone-100 text-stone-800 hover:bg-stone-100 focus:outline-none focus:bg-stone-100"},[e.createTextVNode(e.toDisplayString(e.unref(t)("filter.alltime"))+" ",1),e.unref(a)[0]?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(O,{key:0}))])])]),_:1},8,["label","current-value","mode","width","onClear","layout","class"]),e.unref(m)!==""&&e.unref(m)!=="range"&&e.unref(m)!=="last_7_days"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",ll,[e.createElementVNode("button",{type:"button",title:e.unref(t)("filter.prev"),class:"inline-flex h-[38px] items-center px-2 text-sm text-gray-800 bg-gray-100 gap-x-2 -ms-px first:rounded-s-lg first:ms-0 last:rounded-e-lg focus:z-10 hover:bg-gray-200 focus:bg-gray-200 duration-300",onClick:l[7]||(l[7]=(...n)=>e.unref(u)&&e.unref(u)(...n))},[e.createVNode(Qt)],8,ol)]),e.createElementVNode("div",nl,[e.createElementVNode("button",{type:"button",title:e.unref(t)("filter.next"),class:"inline-flex h-[38px] items-center px-2 text-sm text-gray-800 gap-x-2 bg-gray-100 -ms-px first:rounded-s-lg first:ms-0 last:rounded-e-lg focus:z-10 hover:bg-gray-200 focus:bg-gray-200 duration-300",onClick:l[8]||(l[8]=(...n)=>e.unref(c)&&e.unref(c)(...n))},[e.createVNode(Zt)],8,rl)])],64)):e.createCommentVNode("",!0),e.unref(m)!==""&&e.unref(m)==="range"?(e.openBlock(),e.createElementBlock("div",al,[e.createElementVNode("input",{type:"date",max:e.unref(a)[1],locale:"uk-UA",value:e.unref(a)[0],onInput:l[9]||(l[9]=n=>w(n.target.value)),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-sm focus:outline-blue-600",disabled:i.disabled},null,40,sl),e.createElementVNode("input",{type:"date",min:e.unref(a)[0],locale:"uk-UA",value:e.unref(a)[1],onInput:l[10]||(l[10]=n=>x(n.target.value)),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-sm focus:outline-blue-600 appearance-auto",disabled:i.disabled},null,40,il)])):e.createCommentVNode("",!0)]),(i.cleanable,e.createCommentVNode("",!0))],64))}}),dl={class:"flex flex-wrap items-center gap-2"},ml=["disabled","onClick"],fl={key:0,class:"flex justify-between items-center text-xs text-gray-500 p-1 border-t"},ie={radio:Oe,checkbox:le,check:le,text:tt,range:dt,date:Vt,select:At,tag:Lt,button:e.defineComponent({__name:"button-field",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(f,{expose:r,emit:p}){const t=f,s=p,{innerValue:o,isSelected:y,selectItem:m,clear:a,labelKey:b,valueKey:c,allOptions:u}=q({...t,modelValue:t.modelValue??t.default??""},s),d=e.computed(()=>o.value!==void 0&&!(typeof o.value=="string"&&o.value==="")),k=e.computed(()=>d.value?1:0);function w(i){return y(i)?["bg-blue-600 text-white"].filter(l=>typeof l=="string"&&l.trim().length>0).join(" "):["text-gray-700 hover:bg-gray-200 bg-gray-50 "].filter(l=>typeof l=="string"&&l.trim().length>0).join(" ")}function x(i){t.disabled||m(i)}return r({clear:a}),e.watch(()=>t.modelValue,i=>{i===void 0&&(o.value=void 0)}),(i,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",dl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(u),n=>(e.openBlock(),e.createElementBlock("button",{key:n[e.unref(c)],type:"button",class:e.normalizeClass(["px-3 py-2 text-sm font-medium rounded-md transition-colors",w(n)]),disabled:i.disabled,onClick:g=>x(n)},e.toDisplayString(n[e.unref(b)]),11,ml))),128))]),i.cleanable&&i.layout==="popover"?(e.openBlock(),e.createElementBlock("div",fl,[e.createElementVNode("span",null,e.toDisplayString(k.value)+" з "+e.toDisplayString(e.unref(u).length)+" обрано",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:l[0]||(l[0]=(...n)=>e.unref(a)&&e.unref(a)(...n))}," Очистити ",512),[[e.vShow,d.value]])])):e.createCommentVNode("",!0)],64))}}),"date:inline":cl};function J(f,r){let p;switch(f.toLowerCase()){case"autocomplete":p="select";break;case"check":p="checkbox";break;default:p=f?.toString().toLowerCase()}return p==="date"&&r&&r==="inline"&&(p="date:inline"),{component:ie[p]||ie.text,type:p}}const ul={style:{display:"inline-flex",margin:"0px",width:"100%"}},pl={class:"relative w-full mb-2 p-4 bg-white rounded-lg shadow-sm"},yl={class:"block mb-3 text-sm font-medium text-gray-800 dark:text-neutral-200"},gl={class:"flex items-center"},hl={class:"text-sm font-medium max-w-[80%] text-gray-800 flex items-center gap-x-1"},bl={class:"filter-layout__body"},kl=e.defineComponent({__name:"vertical-layout",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(f,{expose:r,emit:p}){const t=f,s=p,o=e.ref(),y=e.computed(()=>J(t.type,t.layout)),m=e.computed({get:()=>t.modelValue,set:u=>s("update:modelValue",u)});function a(u){s("clear",u)}function b(u,d){s("change",{name:u,value:d}),t.modelValue!==void 0&&s("update:modelValue",d)}function c(){s("clear",t.name)}return e.watch(()=>t.default,u=>{m.value=u}),e.watch(()=>t.modelValue,u=>{m.value=u}),r({filterRef:o}),(u,d)=>(e.openBlock(),e.createElementBlock("div",ul,[e.createElementVNode("div",pl,[e.createElementVNode("div",yl,[e.createElementVNode("div",gl,[e.createElementVNode("span",hl,e.toDisplayString(u.label),1)]),typeof m.value=="string"&&m.value.trim()!==""||Array.isArray(m.value)&&m.value.length>0&&m.value.some(k=>k!==void 0)||m.value===null?(e.openBlock(),e.createBlock(ge,{key:0,onClick:c})):e.createCommentVNode("",!0)]),e.createElementVNode("div",bl,[y.value?.type!=="select"?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value?.component),e.mergeProps({key:0},t,{type:y.value?.type,class:t.itemClass,onChange:d[0]||(d[0]=k=>b(k.name,k.value)),onClear:d[1]||(d[1]=k=>a(k)),ref_key:"filterRef",ref:o}),null,16,["type","class"])):(e.openBlock(),e.createBlock(X,{key:1,"current-value":m.value,label:u.label,mode:u.mode,onClear:c,fieldRef:o.value,width:void 0,disabled:u.disabled,layout:"vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value?.component),e.mergeProps({ref_key:"filterRef",ref:o},t,{type:y.value?.type,class:t.itemClass,onChange:d[2]||(d[2]=k=>b(k.name,k.value)),onClear:d[3]||(d[3]=k=>a(k))}),null,16,["type","class"]))]),_:1},8,["current-value","label","mode","fieldRef","disabled"]))])])]))}}),ce=e.defineComponent({__name:"inline-layout",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(f,{expose:r,emit:p}){const t=f,s=p,o=e.ref(),y=e.computed(()=>J(t.type,t.layout)),m=e.computed({get:()=>t.modelValue,set:c=>s("update:modelValue",c)});function a(c=t.name){s("clear",c)}function b(c,u){s("change",{name:c,value:u}),t.modelValue!==void 0&&s("update:modelValue",u)}return e.watch(()=>t.default,c=>{m.value=c}),e.watch(()=>t.modelValue,c=>{m.value=c}),r({filterRef:o}),(c,u)=>["text","date","button"].includes(c.type.toLocaleLowerCase())?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value?.component),e.mergeProps({key:0},t,{type:y.value?.type,class:c.itemClass,onChange:u[0]||(u[0]=d=>b(d.name,d.value)),onClear:u[1]||(u[1]=d=>a(d)),disabled:c.disabled,modelValue:m.value,"onUpdate:modelValue":u[2]||(u[2]=d=>m.value=d)}),null,16,["type","class","disabled","modelValue"])):(e.openBlock(),e.createBlock(X,{key:1,"current-value":m.value,label:c.label,mode:c.mode,onClear:a,fieldRef:o.value,width:t.width,disabled:c.disabled,layout:"inline"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value?.component),e.mergeProps({ref_key:"filterRef",ref:o},t,{modelValue:m.value,"onUpdate:modelValue":u[3]||(u[3]=d=>m.value=d),type:y.value?.type,class:t.itemClass,onChange:u[4]||(u[4]=d=>b(d.name,d.value)),onClear:u[5]||(u[5]=d=>a(d))}),null,16,["modelValue","type","class"]))]),_:1},8,["current-value","label","mode","fieldRef","width","disabled"]))}}),xl=e.defineComponent({__name:"popover-layout",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean},layout:{},cleanable:{type:Boolean},limit:{},multi:{type:Boolean},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(f,{expose:r,emit:p}){const t=f,s=p,o=e.ref(),y=e.computed(()=>J(t.type,t.layout)),m=e.computed({get:()=>t.modelValue,set:c=>s("update:modelValue",c)});function a(c){s("clear",c)}function b(c,u){s("change",{name:c,value:u}),t.modelValue!==void 0&&s("update:modelValue",u)}return e.watch(()=>t.default,c=>{m.value=c}),e.watch(()=>t.modelValue,c=>{m.value=c}),e.watch(()=>t,c=>{m.value=c}),r({filterRef:o}),(c,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value?.component),e.mergeProps(t,{type:y.value?.type,class:t.itemClass,modelValue:m.value,"onUpdate:modelValue":u[0]||(u[0]=d=>m.value=d),onChange:u[1]||(u[1]=d=>b(d.name,d.value)),onClear:u[2]||(u[2]=d=>a(d)),ref_key:"filterRef",ref:o}),null,16,["type","class","modelValue"]))}}),L=e.defineComponent({__name:"filter-field",props:{id:{},name:{},title:{},type:{},label:{},width:{},options:{default:()=>[]},placeholder:{},api:{},data:{},default:{},modelValue:{},disabled:{type:Boolean,default:!1},layout:{default:"inline"},cleanable:{type:Boolean},limit:{default:10},multi:{type:Boolean,default:!0},dataKey:{},valueKey:{},mode:{},labelKey:{},sort:{default:"name"},ua:{},itemClass:{}},emits:["update:modelValue","change","clear"],setup(f,{expose:r,emit:p}){const t=f,s=p,o=e.ref(),y=e.computed({get:()=>t.modelValue,set:c=>s("update:modelValue",c)});function m(c){s("clear",c)}function a(c,u){s("change",{name:c,value:u}),t.modelValue!==void 0&&s("update:modelValue",u)}e.watch(()=>t.default,c=>{y.value=c}),e.watch(()=>t.modelValue,c=>{y.value=c}),r({filterRef:o});function b(){switch(t.layout){case"inline":return ce;case"vertical":return kl;case"popover":return xl;default:return ce}}return(c,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(b()),e.mergeProps(t,{onChange:u[0]||(u[0]=d=>a(d.name,d.value)),onClear:u[1]||(u[1]=d=>m(d)),modelValue:y.value,"onUpdate:modelValue":u[2]||(u[2]=d=>y.value=d)}),null,16,["modelValue"]))}});function P(f,r){const{slots:p}=f,t=l=>l?JSON.parse(JSON.stringify(e.toRaw(l))):{},s=e.ref(t(f.value));e.watch(()=>f.value,l=>{s.value=t(l)},{deep:!0,immediate:!0});const o=e.computed(()=>(e.toRaw(p?.default?.())??[]).flatMap(n=>Array.isArray(n.children)?n.children:[n]));function y(l){delete s.value[l],r("clear",{data:e.toRaw(s.value),name:l})}function m(l,n){n===void 0?y(l):s.value={...s.value,[l]:n},r("change",{data:e.toRaw(s.value),name:l,value:n})}const a=e.computed(()=>o.value.map(l=>{const n=l.props?.name;return e.cloneVNode(l,{...l.props,layout:f.view,showClean:!0,modelValue:s.value[n],"onUpdate:modelValue":g=>{m(n,g)},onClear:()=>y(n),class:[f.itemClass,l.props?.class],itemClass:[f.itemClass,l.props?.itemClass].filter(g=>typeof g=="string"&&g.trim().length>0).join(" ")||void 0})})),b=e.computed(()=>new Map(a.value.map(l=>{const n=l.props?.name;return n?[n,l]:null}).filter(l=>l!==null)));function c(l=!1){s.value={},l||r("clearAll",{data:e.toRaw(s.value),name:"ALL"})}const u=e.ref(""),d=e.computed(()=>f.schema?.value?Object.entries(s.value).filter(([l,n])=>f.schema&&!(l in f.schema.value)?!1:Array.isArray(n)?n.some(g=>g!==""&&g!==void 0):n!==""&&n!==void 0).length:0),k=e.ref();e.watch(u,async()=>{await e.nextTick(),k?.value?.filterRef?.inputTextRef&&k.value.filterRef.inputTextRef.focus()});const w=e.computed(()=>f.schema?.value?Object.fromEntries(Object.entries(f.schema?.value).slice(0,f.limit)):{}),x=e.computed(()=>{if(a.value.length===0)return[];let l=0;if(f.schema?.value){const n=Object.entries(f.schema.value).length;f.limit&&n<f.limit?l=f.limit-n:l=0}return a.value.slice(0,l)}),i=e.computed(()=>a.value.length===0?[]:f.view!=="inline"?a.value:a.value.slice(x.value.length));return{activeFilter:s,activeFilterCount:d,onFilterChange:m,clearFilter:y,clearAllFilters:c,limitedSchema:w,filtersSlot:a,limitedFiltersSlot:x,popoverFiltersSlot:i,vnodeMap:b,selectedFilter:u,filterRef:k}}const wl=e.defineComponent({__name:"popover",emits:["open","close"],setup(f,{emit:r}){const p=e.ref(!1),t=e.ref(null),s=e.ref(null),o=e.ref(null),y=e.ref({top:"0px",left:"0px",position:"absolute"});function m(){p.value=!p.value}function a(){const k=o.value,w=t.value;if(!k||!w)return;const x=k.getBoundingClientRect(),i=w.offsetWidth,l=window.innerWidth-x.left;let n=x.left+window.scrollX;i>l&&(n=window.innerWidth-i-18,n<18&&(n=18)),y.value={position:"absolute",top:`${x.bottom+window.scrollY+18}px`,left:`${n}px`}}const b=e.computed(()=>Object.entries(y.value).map(k=>k.join(":")).join(";"));function c(k){const w=k.target;!o.value?.contains(k.target)&&!t.value?.contains(k.target)&&!w.closest("[data-inside-popover]")&&(p.value=!1)}const u=e.ref(!1);e.onMounted(()=>{u.value=!0}),e.onMounted(()=>{o.value=s.value?.querySelector("[data-popover-trigger]")||null,o.value?.addEventListener("click",m),document.addEventListener("click",c),window.addEventListener("resize",a),window.addEventListener("scroll",a,!0)}),e.onBeforeUnmount(()=>{o.value?.removeEventListener("click",m),document.removeEventListener("click",c),window.removeEventListener("resize",a),window.removeEventListener("scroll",a,!0)});const d=r;return e.watch(p,async k=>{k?(d("open"),await e.nextTick(),a()):d("close")}),(k,w)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"wrapperRef",ref:s},[e.renderSlot(k.$slots,"trigger"),u.value?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:"body"},[e.withDirectives(e.createElementVNode("div",{ref_key:"popoverRef",ref:t,class:"absolute z-[50] w-[calc(100vw-32px)] md:w-[600px] rounded-md border bg-white shadow-md",style:e.normalizeStyle(b.value)},[e.renderSlot(k.$slots,"default")],4),[[e.vShow,p.value]])])):e.createCommentVNode("",!0)],512))}}),Vl={},Cl={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-filter h-4 w-4"};function Bl(f,r){return e.openBlock(),e.createElementBlock("svg",Cl,[...r[0]||(r[0]=[e.createElementVNode("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"},null,-1)])])}const de=K(Vl,[["render",Bl]]),El={class:"flex items-center gap-2 overflow-hidden"},Nl={key:0,class:"inline-flex min-h-[18px] min-w-[18px] items-center justify-center rounded-[4px] bg-blue-500 px-1 text-[11px] font-semibold text-white"},Sl={class:"flex max-h-[400px] md:max-h-[400px]"},_l={class:"w-[150px] sm:w-[180px] md:w-64 border-r border-gray-200 overflow-y-auto"},Dl={class:"p-2 md:p-4 border-b"},$l={class:"text-xs md:text-sm text-gray-600"},Fl={class:"p-1 md:p-2"},Al=["onClick"],jl={class:"flex items-center gap-1.5 md:gap-2"},Ml={class:"text-xs md:text-sm font-medium line-clamp-3"},Rl={key:0,class:"inline-flex min-h-[16px] md:min-h-[18px] min-w-[16px] md:min-w-[18px] items-center justify-center rounded-[4px] bg-blue-100 px-0.5 md:px-1 text-[10px] md:text-[11px] font-semibold text-blue-600 flex-shrink-0"},Tl=["onClick"],Kl={class:"flex items-center gap-1.5 md:gap-2"},Ll={class:"text-xs md:text-sm font-medium truncate"},zl={key:0,class:"inline-flex min-h-[16px] md:min-h-[18px] min-w-[16px] md:min-w-[18px] items-center justify-center rounded-[4px] bg-blue-100 px-0.5 md:px-1 text-[10px] md:text-[11px] font-semibold text-blue-600 flex-shrink-0"},Ol={key:0,class:"p-1 md:p-2 border-t"},Il={class:"flex-1 min-h-[250px] md:min-h-[300px] overflow-y-auto"},Ul={key:0,class:"flex items-center justify-center h-full text-gray-500"},Pl={class:"text-xs md:text-sm"},me=e.defineComponent({__name:"popover-filter-layout",props:{badgeCount:{},schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:3},width:{},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{}},emits:["change","clear","clearAll"],setup(f,{expose:r,emit:p}){const t=z(),s=f,o=ae(s.mode),y=e.useSlots(),m=p,a=e.ref({}),b=e.computed(()=>a?.value?s.view!=="inline"?a?.value:Object.fromEntries(Object.entries(a?.value).slice(s.limit)):{}),{activeFilter:c,activeFilterCount:u,onFilterChange:d,clearFilter:k,clearAllFilters:w,popoverFiltersSlot:x,selectedFilter:i,filterRef:l}=P({...s,schema:a,slots:y},m),n=e.computed(()=>s.badgeCount??u.value);function g(D){return Array.isArray(D)?D.filter(V=>V!=null&&V!=="").length:D&&typeof D=="object"?Object.values(D).filter(V=>V!=null&&V!=="").length:D===null||D!==void 0&&D!==""?1:0}function h(D){return c.value?g(c.value[D]):0}function _(){if(b.value){const[D]=Object.keys(b.value);i.value=D}else x.value.length>0?i.value=x.value[0].props.name:i.value=""}return e.watch(()=>s.schema,D=>{a.value=D??{}},{deep:!0,immediate:!0}),r({clearFilter:k,clearAllFilters:w}),(D,V)=>(e.openBlock(),e.createBlock(wl,{onOpen:_,onClose:V[5]||(V[5]=C=>i.value="")},{trigger:e.withCtx(()=>[e.createElementVNode("button",{"data-popover-trigger":"","aria-haspopup":"dialog","aria-expanded":"false",class:e.normalizeClass([D.itemClass,e.unref(o),"flex items-center justify-between gap-2",n.value>0?"border border-blue-400 bg-blue-50 text-blue-600 hover:border-blue-500":"text-neutral-700 hover:border-neutral-400"]),type:"button"},[e.createElementVNode("span",El,[e.createVNode(de,{class:"h-4 w-4"}),V[6]||(V[6]=e.createElementVNode("span",{class:"text-sm font-medium"},"Фільтр",-1))]),n.value>0?(e.openBlock(),e.createElementBlock("span",Nl,e.toDisplayString(n.value),1)):e.createCommentVNode("",!0)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Sl,[e.createElementVNode("div",_l,[e.createElementVNode("div",Dl,[e.createElementVNode("p",$l,e.toDisplayString(e.unref(t)("filter.selectFieldHelp")),1)]),e.createElementVNode("div",Fl,[D.schema?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(b.value),([C,S])=>(e.openBlock(),e.createElementBlock("button",{key:C,onClick:()=>{i.value=C},class:e.normalizeClass(["flex w-full items-center justify-between px-2 md:px-3 py-1.5 md:py-2 text-left transition-colors hover:bg-gray-50",e.unref(i)===C?"bg-blue-50 text-blue-700 border-l-2 border-blue-500":"text-neutral-700"])},[e.createElementVNode("div",jl,[e.createElementVNode("span",Ml,e.toDisplayString(S.label),1)]),h(C)>0?(e.openBlock(),e.createElementBlock("div",Rl,e.toDisplayString(h(C)),1)):e.createCommentVNode("",!0)],10,Al))),128)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(x),(C,S)=>(e.openBlock(),e.createElementBlock("button",{key:"slot-"+S,onClick:E=>i.value=C.props.name,class:e.normalizeClass(["flex items-center justify-between px-2 md:px-3 py-1.5 md:py-2 text-left transition-colors hover:bg-gray-50",e.unref(i)===C.props.name?"bg-blue-50 text-blue-700 border-l-2 border-blue-500":"text-neutral-700"])},[e.createElementVNode("div",Kl,[e.createElementVNode("span",Ll,e.toDisplayString(C.props.label),1)]),h(C.props.name)>0?(e.openBlock(),e.createElementBlock("div",zl,e.toDisplayString(h(C.props.name)),1)):e.createCommentVNode("",!0)],10,Tl))),128))]),e.unref(u)>0?(e.openBlock(),e.createElementBlock("div",Ol,[e.createElementVNode("button",{class:e.normalizeClass([D.itemClass,"w-full px-2 md:px-3 py-1.5 md:py-2 text-left text-xs md:text-sm text-gray-600 hover:bg-gray-50 transition-colors"]),onClick:V[0]||(V[0]=C=>e.unref(w)()),"data-inside-popover":""}," Очистити всі ",2)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Il,[e.unref(i)===""?(e.openBlock(),e.createElementBlock("div",Ul,[e.createElementVNode("p",Pl,e.toDisplayString(e.unref(t)("filter.selectFieldHelp")),1)])):e.createCommentVNode("",!0),e.unref(i)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[b.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(b.value),([C,S])=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(i)===C?(e.openBlock(),e.createBlock(L,e.mergeProps({key:C,layout:"popover",ref_for:!0,ref_key:"filterRef",ref:l},{ref_for:!0},S,{class:[D.itemClass,S?.class],"item-class":[D.itemClass,S?.itemClass].filter(Boolean).join(" ")||void 0,onChange:V[1]||(V[1]=E=>e.unref(d)(E.name,E.value)),onClear:V[2]||(V[2]=E=>{e.unref(k)(E),e.unref(d)(E,void 0)}),modelValue:e.unref(c)[C],"onUpdate:modelValue":E=>e.unref(c)[C]=E,cleanable:!0}),null,16,["class","item-class","modelValue","onUpdate:modelValue"])):e.createCommentVNode("",!0)],64))),256)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(x),(C,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:"slot-"+S},[e.unref(i)===C.props.name?(e.openBlock(),e.createBlock(L,e.mergeProps({key:0,layout:"popover"},{ref_for:!0},C.props,{ref_for:!0,ref_key:"filterRef",ref:l,class:[D.itemClass,C.props?.class],"item-class":[D.itemClass,C.props?.itemClass].filter(Boolean).join(" ")||void 0,onChange:V[3]||(V[3]=E=>e.unref(d)(E.name,E.value)),onClear:V[4]||(V[4]=E=>{e.unref(k)(E),e.unref(d)(E,void 0)}),modelValue:e.unref(c)[C.props.name],"onUpdate:modelValue":E=>e.unref(c)[C.props.name]=E,cleanable:!0}),null,16,["class","item-class","modelValue","onUpdate:modelValue"])):e.createCommentVNode("",!0)],64))),128))],64)):e.createCommentVNode("",!0)])])]),_:1}))}}),Yl={class:"flex gap-1 items-center flex-wrap"},fe=e.defineComponent({__name:"inline-filter-layout",props:{schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:3},width:{},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{}},emits:["change","clear","clearAll"],setup(f,{expose:r,emit:p}){const t=z(),s=f,o=p,y=e.useSlots(),m=e.ref({}),a=e.computed(()=>Object.keys(s.schema).length>s.limit),{activeFilter:b,activeFilterCount:c,onFilterChange:u,clearFilter:d,clearAllFilters:k,limitedSchema:w,filtersSlot:x,limitedFiltersSlot:i}=P({...s,schema:m,slots:y},o);function l(V){return Array.isArray(V)?V.some(C=>C!==""&&C!==void 0&&C!==null):V===null?!0:V&&typeof V=="object"?Object.values(V).some(C=>C!==""&&C!==void 0&&C!==null):V!==""&&V!==void 0}const n=e.computed(()=>{const V=Object.keys(w.value??{}),C=i.value.map(S=>S.props?.name).filter(S=>typeof S=="string");return new Set([...V,...C])}),g=e.computed(()=>Object.entries(b.value??{}).filter(([V,C])=>n.value.has(V)&&l(C)).length),h=e.computed(()=>{const V=c.value??0,C=g.value??0;return Math.max(V-C,0)}),_=e.ref();function D(){_.value&&_.value.clearAllFilters(!0),k()}return e.watch(()=>s.schema,V=>{m.value=V},{deep:!0,immediate:!0}),r({clearFilter:d,clearAllFilters:k}),(V,C)=>(e.openBlock(),e.createElementBlock("div",Yl,[V.schema?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(e.unref(w)),([S,E])=>(e.openBlock(),e.createBlock(L,e.mergeProps({key:S,mode:V.mode,width:V.width?V.width:E?.width},{ref_for:!0},E,{class:[V.itemClass,E?.class],"item-class":[V.itemClass,E?.itemClass].filter(Boolean).join(" ")||void 0,onChange:C[0]||(C[0]=N=>e.unref(u)(N.name,N.value)),onClear:e.unref(d),layout:"inline",cleanable:!0,modelValue:e.unref(b)[S],"onUpdate:modelValue":N=>e.unref(b)[S]=N}),null,16,["mode","width","class","item-class","onClear","modelValue","onUpdate:modelValue"]))),128)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),(S,E)=>(e.openBlock(),e.createBlock(L,e.mergeProps({key:"slot-"+E,layout:"inline"},{ref_for:!0},S.props,{class:[V.itemClass,S.props?.class],"item-class":[V.itemClass,S.props?.itemClass].filter(Boolean).join(" ")||void 0,onChange:C[1]||(C[1]=N=>e.unref(u)(N.name,N.value)),onClear:C[2]||(C[2]=N=>{e.unref(d)(N),e.unref(u)(N,void 0)}),cleanable:!0,modelValue:e.unref(b)[S.props.name],"onUpdate:modelValue":N=>e.unref(b)[S.props.name]=N}),null,16,["class","item-class","modelValue","onUpdate:modelValue"]))),128)),a.value?(e.openBlock(),e.createBlock(me,e.mergeProps({key:1},s,{schema:V.schema,limit:V.limit,onChange:C[3]||(C[3]=S=>e.unref(u)(S.name,S.value)),onClearAll:C[4]||(C[4]=S=>e.unref(k)()),onClear:C[5]||(C[5]=S=>e.unref(d)(S.name)),mode:V.mode,ref_key:"popoverRef",ref:_,cleanable:!0,"badge-count":h.value}),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(x),(S,E)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S),e.mergeProps({key:"slot-"+E,layout:"popover"},{ref_for:!0},S.props,{cleanable:!0}),null,16))),128))]),_:1},16,["schema","limit","mode","badge-count"])):e.createCommentVNode("",!0),e.unref(c)>0?(e.openBlock(),e.createElementBlock("button",{key:2,onClick:D,class:e.normalizeClass([V.itemClass,"relative py-2 px-3 inline-flex justify-center items-center gap-x-2 text-sm font-medium rounded-md bg-gray-50 border text-gray-800 hover:bg-gray-200 focus:bg-gray-200"])},e.toDisplayString(e.unref(t)("filter.clear")),3)):e.createCommentVNode("",!0)]))}}),Wl={key:0,class:"p-2 overflow-y-auto overflow-hidden [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-800 max-h-[calc(100%-142px)] h-full bg-gray-100"},ql={class:"flex items-center vst-filters vsTailwind flex-col w-full"},Hl=e.defineComponent({__name:"vertical-filter-layout",props:{schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:3},width:{},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{}},emits:["change","clear","clearAll"],setup(f,{expose:r,emit:p}){const t=f,s=p,o=e.useSlots(),{activeFilter:y,activeFilterCount:m,onFilterChange:a,clearFilter:b,clearAllFilters:c,filtersSlot:u}=P({...t,slots:o},s);return r({clearFilter:b,clearAllFilters:c}),(d,k)=>d.view==="vertical"?(e.openBlock(),e.createElementBlock("div",Wl,[e.createElementVNode("div",ql,[e.unref(m)>0?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:k[0]||(k[0]=w=>e.unref(c)()),"data-popover-trigger":"","aria-haspopup":"dialog","aria-expanded":"false",class:e.normalizeClass([d.itemClass,"w-full ring-offset-background focus-visible:outline-hidden focus-visible:ring-ring inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:text-accent-foreground border h-10 px-4 py-2 gap-2 m-2 bg-white text-gray-800 hover:bg-gray-200 focus:bg-gray-200"]),type:"button"}," Очистити ",2)):e.createCommentVNode("",!0),d.schema?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(Object.entries(d.schema),([w,x])=>(e.openBlock(),e.createBlock(L,e.mergeProps({layout:"vertical"},{ref_for:!0},x,{class:[d.itemClass,x?.class],"item-class":[d.itemClass,x?.itemClass].filter(Boolean).join(" ")||void 0,onChange:k[1]||(k[1]=i=>e.unref(a)(i.name,i.value)),onClear:k[2]||(k[2]=i=>{e.unref(b)(i),e.unref(a)(i,void 0)}),modelValue:e.unref(y)[w],"onUpdate:modelValue":i=>e.unref(y)[w]=i,showClean:!0}),null,16,["class","item-class","modelValue","onUpdate:modelValue"]))),256)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(u),(w,x)=>(e.openBlock(),e.createBlock(L,e.mergeProps({key:"slot-"+x,layout:"vertical"},{ref_for:!0},w.props,{class:[d.itemClass,w.props?.class],"item-class":[d.itemClass,w.props?.itemClass].filter(Boolean).join(" ")||void 0,onChange:k[3]||(k[3]=i=>e.unref(a)(i.name,i.value)),onClear:k[4]||(k[4]=i=>{e.unref(b)(i),e.unref(a)(i,void 0)}),modelValue:e.unref(y)[w.props.name],"onUpdate:modelValue":i=>e.unref(y)[w.props.name]=i,showClean:!0}),null,16,["class","item-class","modelValue","onUpdate:modelValue"]))),128))])])):e.createCommentVNode("",!0)}}),Ql=["onKeydown"],Gl=["disabled"],Xl={key:0,class:"ml-2 inline-flex min-h-[18px] min-w-[18px] items-center justify-center rounded-full bg-blue-500 px-1.5 text-[11px] font-semibold text-white"},Jl={class:"rounded-2xl border border-slate-300/35 bg-white/95 p-4 shadow-2xl backdrop-blur-sm"},Zl={class:"mb-3 flex items-center justify-between"},vl={class:"text-[15px] font-semibold text-slate-800"},eo={"aria-hidden":"true"},to={class:"flex max-h-80 flex-col gap-1 overflow-y-auto"},lo={key:0,class:"mt-3 flex justify-end"},oo=e.defineComponent({__name:"popover-inline-filter-layout",props:{schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:10},width:{default:220},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{}},emits:["change","clear","clearAll"],setup(f,{emit:r}){const p=z(),t=f,s=r,o=e.ref({}),y=e.useSlots(),{activeFilter:m,activeFilterCount:a,onFilterChange:b,clearFilter:c,clearAllFilters:u,filtersSlot:d}=P({...t,schema:o.value,slots:y},s),k=e.ref(null),w=e.ref(null),x=e.reactive({open:!1,top:0,left:0}),i=e.computed(()=>x.open),l=e.computed(()=>!!t.disabled),n=e.computed(()=>o.value||{}),g=e.computed(()=>t.title??"Фільтр"),h=e.computed(()=>!!y.trigger),_=e.computed(()=>["inline-flex h-9 items-center justify-center gap-2 rounded-lg border border-transparent bg-slate-200/70 px-3 text-sm font-medium text-slate-700 transition-colors hover:bg-blue-100 hover:text-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-200 disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-slate-200/70 disabled:hover:text-slate-700",l.value?"cursor-not-allowed opacity-60":"cursor-pointer"]),D=e.computed(()=>x.open?{position:"absolute",top:`${x.top}px`,left:`${x.left}px`,transform:"translateX(-50%)",zIndex:1e3}:{display:"none"});function V(){x.open=!1}function C(){if(!k.value)return;const F=k.value.getBoundingClientRect();x.top=F.bottom+window.scrollY+8,x.left=F.left+F.width/2+window.scrollX}function S(){x.open=!x.open,x.open&&e.nextTick(C)}function E(){l.value||S()}function N(){x.open&&C()}function A(){u()}return e.onMounted(()=>{window.addEventListener("resize",N),window.addEventListener("scroll",N,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("resize",N),window.removeEventListener("scroll",N,!0)}),e.watch(()=>t.schema,F=>{if(!F){o.value={};return}if(Array.isArray(F)){const B=F.filter($=>$&&($.name||$.id)).map($=>{const j=$.name||$.id;return[j,{...$,name:j}]});o.value=Object.fromEntries(B);return}o.value=F},{deep:!0,immediate:!0}),e.watch(()=>t.disabled,F=>{F&&V()}),(F,B)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex",ref_key:"anchor",ref:k},[h.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["inline-flex",l.value?"cursor-not-allowed opacity-60 pointer-events-none":"cursor-pointer"]),role:"button",tabindex:"0","data-popover-trigger":"",onClick:e.withModifiers(E,["prevent","stop"]),onKeydown:[e.withKeys(e.withModifiers(E,["prevent","stop"]),["enter"]),e.withKeys(e.withModifiers(E,["prevent","stop"]),["space"])]},[e.renderSlot(F.$slots,"trigger",{toggle:E,open:i.value,disabled:l.value,activeCount:e.unref(a)})],42,Ql)):(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(_.value),type:"button",disabled:l.value,onClick:e.withModifiers(E,["prevent","stop"]),"data-popover-trigger":""},[e.createVNode(de,{class:"h-4 w-4"}),e.unref(a)>0?(e.openBlock(),e.createElementBlock("div",Xl,e.toDisplayString(e.unref(a)),1)):e.createCommentVNode("",!0)],10,Gl)),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[i.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["absolute",typeof F.width=="number"?`min-w-[${F.width+32+(Object.keys(n.value).length>7?20:0)}px]`:"min-w-[268px] "]),style:e.normalizeStyle(D.value),ref_key:"panel",ref:w,onClick:B[4]||(B[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",Jl,[e.createElementVNode("div",Zl,[e.createElementVNode("h3",vl,e.toDisplayString(g.value),1),e.createElementVNode("button",{type:"button",class:"inline-flex h-6 w-6 items-center justify-center rounded-full border-0 bg-slate-300/40 text-slate-600 transition-colors hover:bg-blue-200/60 hover:text-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-200",onClick:V},[e.createElementVNode("span",eo,[e.createVNode(G,{class:"h-4 w-4"})]),B[5]||(B[5]=e.createElementVNode("span",{class:"sr-only"},"Закрити",-1))])]),e.createElementVNode("div",to,[Object.keys(n.value).length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(n.value),([$,j])=>(e.openBlock(),e.createBlock(L,e.mergeProps({key:$},{ref_for:!0},{...j,layout:"inline"},{width:F.width?F.width:j?.width,class:[F.itemClass,j?.class],"item-class":[F.itemClass,j?.itemClass].filter(Boolean).join(" ")||void 0,cleanable:!0,modelValue:e.unref(m)[$],"onUpdate:modelValue":M=>e.unref(m)[$]=M,onChange:B[0]||(B[0]=M=>e.unref(b)(M.name,M.value)),onClear:B[1]||(B[1]=M=>{e.unref(c)(M),e.unref(b)(M,void 0)})}),null,16,["width","class","item-class","modelValue","onUpdate:modelValue"]))),128)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(d),($,j)=>(e.openBlock(),e.createBlock(L,e.mergeProps({key:"slot-"+j,ref_for:!0},{...$.props,layout:"inline"},{class:[F.itemClass,$.props?.class],"item-class":[F.itemClass,$.props?.itemClass].filter(Boolean).join(" ")||void 0,cleanable:!0,modelValue:e.unref(m)[$.props.name],"onUpdate:modelValue":M=>e.unref(m)[$.props.name]=M,onChange:B[2]||(B[2]=M=>e.unref(b)(M.name,M.value)),onClear:B[3]||(B[3]=M=>{e.unref(c)(M),e.unref(b)(M,void 0)})}),null,16,["class","item-class","modelValue","onUpdate:modelValue"]))),128))]),e.unref(a)>0?(e.openBlock(),e.createElementBlock("div",lo,[e.createElementVNode("button",{type:"button",class:e.normalizeClass([F.itemClass,"text-sm font-semibold text-blue-600 transition-colors hover:text-blue-700 focus:outline-none"]),onClick:A},e.toDisplayString(e.unref(p)("filter.clear")),3)])):e.createCommentVNode("",!0)])],6)):e.createCommentVNode("",!0)]))],512))}}),Y=e.defineComponent({__name:"filter",props:{schema:{},view:{default:"inline"},value:{},history:{type:Boolean},mode:{},limit:{default:3},width:{},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{}},emits:["change","clear","clearAll"],setup(f,{expose:r,emit:p}){const t=f,s=e.ref(a(t.value??{}));e.watch(()=>t.value,async i=>{s.value=a(i??{}),(!i||Object.keys(i).length===0)&&(await e.nextTick(),y.value?.clearAllFilters?.(!0))},{deep:!0,immediate:!0});const o=p,y=e.ref(),m=e.useSlots();function a(i){if(Array.isArray(i))return i.map(l=>a(l));if(i!==null&&typeof i=="object"){const l=e.toRaw(i),n={};for(const g in l)n[g]=a(l[g]);return n}return i}function b(i,l){l!==void 0?s.value={...s.value,[i]:l}:delete s.value[i],o("change",{data:a(s.value),name:i,value:a(l)})}function c(i){delete s.value[i],o("clear",{data:a(s.value),name:i}),o("change",{data:a(s.value),name:i,value:null})}function u(){s.value={},o("clear",{data:a(s.value),name:"ALL"}),o("change",{data:a(s.value),name:"ALL",value:null})}const d=e.ref({});function k(){switch(t.view){case"inline":return fe;case"vertical":return Hl;case"popover":return me;case"popover-inline":return oo;default:return fe}}e.watch(()=>t.schema,i=>{if(!i){d.value={};return}if(Array.isArray(i)&&!i.length){d.value={};return}Array.isArray(i)?d.value=i.filter(l=>l.type).reduce((l,n)=>(Object.assign(n,{name:n.id||n.name,type:{datepicker:"date"}[n.type.toLowerCase()]||n.type.toLowerCase(),label:n.label||n.ua}),l[n.name]=n,n.data&&!n.api&&!n.options&&Object.assign(n,{api:`/api/suggest/${n.data}`}),l),{}):(Object.entries(i).forEach(([l,n])=>{Object.assign(n,{name:l||n.name||n.id,type:n.type.toLowerCase()})}),d.value={...i})},{immediate:!0,deep:!0});function w(i){y.value.clearFilter(i),c(i)}function x(){y.value.clearAllFilters(),u()}return e.watch(()=>s.value,i=>{if(t.history){const l=new URL(window.location.href),n=new URLSearchParams(window.location.search);Object.keys(i).length>0?n.set("filter",Object.entries(i).filter(([,g])=>g).map(([g,h])=>`${g}=${h}`).join("|")):n.delete("filter"),l.search=decodeURI(n.toString()),window.history.pushState({},"",l)}}),r({clearAllFilters:x,clearFilter:w}),(i,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(k()),e.mergeProps(t,{schema:d.value,onChange:l[0]||(l[0]=n=>b(n.name,n.value)),onClear:l[1]||(l[1]=n=>c(n.name)),onClearAll:u,ref_key:"filterRef",ref:y}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:2},[e.unref(m).trigger?{name:"trigger",fn:e.withCtx(n=>[e.renderSlot(i.$slots,"trigger",e.normalizeProps(e.guardReactiveProps(n)))]),key:"0"}:void 0]),1040,["schema"]))}});Y.install=function(r){r.component("Filter",Y),r.component("FilterField",L)},T.Filter=Y,T.FilterField=L,T.default=Y,Object.defineProperties(T,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
package/package.json
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@opengis/filter",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"type": "module",
|
|
5
|
-
"types": "./dist/index.d.ts",
|
|
6
|
-
"main": "./dist/index.js",
|
|
7
|
-
"private": false,
|
|
8
|
-
"files": [
|
|
9
|
-
"dist"
|
|
10
|
-
],
|
|
11
|
-
"description": "A flexible and extensible filter component system for Vue 3. Ideal for building customizable filter UIs with checkbox, radio, or custom slot fields.",
|
|
12
|
-
"license": "MIT",
|
|
13
|
-
"homepage": "https://filter.opengis.info/",
|
|
14
|
-
"author": {
|
|
15
|
-
"name": "OpenGIS",
|
|
16
|
-
"url": "https://opengis.info/"
|
|
17
|
-
},
|
|
18
|
-
"keywords": [
|
|
19
|
-
"filter",
|
|
20
|
-
"vue3"
|
|
21
|
-
],
|
|
22
|
-
"repository": {
|
|
23
|
-
"type": "git",
|
|
24
|
-
"url": "git://github.com/opengisinfo/filter"
|
|
25
|
-
},
|
|
26
|
-
"scripts": {
|
|
27
|
-
"lint": "eslint src --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
|
28
|
-
"dev": "vite",
|
|
29
|
-
"type-check": "vue-tsc --noEmit -p tsconfig.app.json",
|
|
30
|
-
"build:types": "vue-tsc --declaration --emitDeclarationOnly -p tsconfig.app.json",
|
|
31
|
-
"build": "vue-tsc -b && vite build && npm run build:types",
|
|
32
|
-
"preview": "vite preview",
|
|
33
|
-
"test": "vitest",
|
|
34
|
-
"docs:dev": "npm run --prefix ./docs docs:dev",
|
|
35
|
-
"docs:build": "npm run --prefix ./docs docs:build",
|
|
36
|
-
"prepublishOnly": "bun run build",
|
|
37
|
-
"docs:preview": "npm run --prefix ./docs docs:preview"
|
|
38
|
-
},
|
|
39
|
-
"dependencies": {},
|
|
40
|
-
"devDependencies": {
|
|
41
|
-
"vue": "^3.5.18",
|
|
42
|
-
"@tsconfig/node22": "^22.0.2",
|
|
43
|
-
"@types/node": "^22.15.32",
|
|
44
|
-
"@vitejs/plugin-vue": "^6.0.0",
|
|
45
|
-
"@vue/eslint-config-typescript": "^12.0.0",
|
|
46
|
-
"@vue/test-utils": "^2.4.6",
|
|
47
|
-
"@vue/tsconfig": "^0.7.0",
|
|
48
|
-
"eslint": "8.49.0",
|
|
49
|
-
"eslint-config-airbnb": "19.0.4",
|
|
50
|
-
"eslint-plugin-import": "^2.25.3",
|
|
51
|
-
"eslint-plugin-vue": "^9.17.0",
|
|
52
|
-
"typescript": "~5.8.0",
|
|
53
|
-
"vite": "^7.0.0",
|
|
54
|
-
"vitest": "^3.2.4",
|
|
55
|
-
"vue-tsc": "^2.2.10",
|
|
56
|
-
"@opengis/core": "^0.0.26"
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@opengis/filter",
|
|
3
|
+
"version": "0.1.28",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"types": "./dist/index.d.ts",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"private": false,
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"description": "A flexible and extensible filter component system for Vue 3. Ideal for building customizable filter UIs with checkbox, radio, or custom slot fields.",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"homepage": "https://filter.opengis.info/",
|
|
14
|
+
"author": {
|
|
15
|
+
"name": "OpenGIS",
|
|
16
|
+
"url": "https://opengis.info/"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"filter",
|
|
20
|
+
"vue3"
|
|
21
|
+
],
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git://github.com/opengisinfo/filter"
|
|
25
|
+
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"lint": "eslint src --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
|
28
|
+
"dev": "vite",
|
|
29
|
+
"type-check": "vue-tsc --noEmit -p tsconfig.app.json",
|
|
30
|
+
"build:types": "vue-tsc --declaration --emitDeclarationOnly -p tsconfig.app.json",
|
|
31
|
+
"build": "vue-tsc -b && vite build && npm run build:types",
|
|
32
|
+
"preview": "vite preview",
|
|
33
|
+
"test": "vitest",
|
|
34
|
+
"docs:dev": "npm run --prefix ./docs docs:dev",
|
|
35
|
+
"docs:build": "npm run --prefix ./docs docs:build",
|
|
36
|
+
"prepublishOnly": "bun run build",
|
|
37
|
+
"docs:preview": "npm run --prefix ./docs docs:preview"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"vue": "^3.5.18",
|
|
42
|
+
"@tsconfig/node22": "^22.0.2",
|
|
43
|
+
"@types/node": "^22.15.32",
|
|
44
|
+
"@vitejs/plugin-vue": "^6.0.0",
|
|
45
|
+
"@vue/eslint-config-typescript": "^12.0.0",
|
|
46
|
+
"@vue/test-utils": "^2.4.6",
|
|
47
|
+
"@vue/tsconfig": "^0.7.0",
|
|
48
|
+
"eslint": "8.49.0",
|
|
49
|
+
"eslint-config-airbnb": "19.0.4",
|
|
50
|
+
"eslint-plugin-import": "^2.25.3",
|
|
51
|
+
"eslint-plugin-vue": "^9.17.0",
|
|
52
|
+
"typescript": "~5.8.0",
|
|
53
|
+
"vite": "^7.0.0",
|
|
54
|
+
"vitest": "^3.2.4",
|
|
55
|
+
"vue-tsc": "^2.2.10",
|
|
56
|
+
"@opengis/core": "^0.0.26"
|
|
57
|
+
|
|
58
|
+
}
|
|
59
|
+
}
|