@opengis/filter 0.1.34 → 0.1.36

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.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { createElementBlock as x, openBlock as s, createElementVNode as r, defineComponent as Y, ref as D, computed as U, normalizeClass as I, withModifiers as se, createCommentVNode as B, toDisplayString as F, createVNode as H, watch as P, getCurrentInstance as We, createStaticVNode as Ye, onMounted as ie, Fragment as N, renderList as Q, unref as e, createBlock as q, createTextVNode as W, withDirectives as X, vShow as ye, vModelText as ne, onBeforeUnmount as be, isRef as He, Teleport as xe, normalizeStyle as ke, renderSlot as me, nextTick as pe, withCtx as oe, resolveDynamicComponent as re, mergeProps as J, toRaw as fe, cloneVNode as Qe, useSlots as ge, reactive as Ge, withKeys as De, useAttrs as Je, createSlots as Xe, normalizeProps as Ze, guardReactiveProps as et } from "vue";
1
+ import { openBlock as s, createElementBlock as x, createElementVNode as r, defineComponent as Y, ref as D, computed as U, normalizeClass as I, withModifiers as se, createCommentVNode as B, toDisplayString as F, createVNode as H, watch as P, getCurrentInstance as We, createStaticVNode as Ye, onMounted as ie, Fragment as N, renderList as Q, unref as e, createBlock as q, createTextVNode as W, withDirectives as X, vShow as ye, vModelText as ne, onBeforeUnmount as be, isRef as He, Teleport as xe, normalizeStyle as ke, renderSlot as me, nextTick as pe, withCtx as oe, resolveDynamicComponent as re, mergeProps as J, toRaw as fe, cloneVNode as Qe, useSlots as ge, reactive as Ge, withKeys as De, useAttrs as Je, createSlots as Xe, normalizeProps as Ze, guardReactiveProps as et } from "vue";
2
2
  import { notify as ve } from "@opengis/core";
3
3
  const te = (t, n) => {
4
4
  const y = t.__vccOpts || t;
@@ -807,7 +807,7 @@ const qt = { class: "absolute bottom-2/4 translate-y-2/4 cursor-pointer left-3"
807
807
  }
808
808
  h && clearTimeout(h), h = setTimeout(() => {
809
809
  u("update:modelValue", c.value), u("change", { name: y.name, value: c.value });
810
- }, 300);
810
+ }, 750);
811
811
  }
812
812
  function d() {
813
813
  c.value = "", u("update:modelValue", ""), u("clear", y.name);
@@ -3393,7 +3393,7 @@ const qe = /* @__PURE__ */ te(ba, [["render", ha]]), wa = { class: "flex items-c
3393
3393
  return;
3394
3394
  }
3395
3395
  Array.isArray(a) ? C.value = a.filter(($) => $.type).reduce(($, V) => (Object.assign(V, {
3396
- name: V.id || V.name,
3396
+ name: V.name || V.id,
3397
3397
  type: { datepicker: "date" }[V.type.toLowerCase()] || V.type.toLowerCase(),
3398
3398
  label: V.label || V.ua
3399
3399
  }), $[V.name] = V, V.data && !V.api && !V.options && Object.assign(V, { api: `/api/suggest/${V.data}` }), $), {}) : (Object.entries(a).forEach(([$, V]) => {
@@ -1,2 +1,2 @@
1
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,U){"use strict";const O=(t,o)=>{const p=t.__vccOpts||t;for(const[l,i]of o)p[l]=i;return p},ge={},he={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 be(t,o){return e.openBlock(),e.createElementBlock("svg",he,[...o[0]||(o[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 xe=O(ge,[["render",be]]),ke={},we={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 Ve(t,o){return e.openBlock(),e.createElementBlock("svg",we,[...o[0]||(o[0]=[e.createElementVNode("path",{d:"M20 6 9 17l-5-5"},null,-1)])])}const P=O(ke,[["render",Ve]]),Ce={class:"flex items-center cursor-pointer w-full"},Be={key:0,width:"16",height:"auto",src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9J3doaXRlJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxwYXRoIGQ9J00xMi4yMDcgNC43OTNhMSAxIDAgMDEwIDEuNDE0bC01IDVhMSAxIDAgMDEtMS40MTQgMGwtMi0yYTEgMSAwIDAxMS40MTQtMS40MTRMNi41IDkuMDg2bDQuMjkzLTQuMjkzYTEgMSAwIDAxMS40MTQgMHonLz48L3N2Zz4="},Ee=["value"],Ne={class:"flex flex-row items-center font-normal text-gray-800 gap-x-1"},Se={key:0,class:"text-xs text-gray-500 dark:text-neutral-500 pr-1"},$e={key:1,class:"absolute right-2 flex size-3.5 items-center justify-center"},G=e.defineComponent({__name:"list-item",props:{layout:{},count:{},type:{},label:{},value:{},isSelected:{type:Boolean},color:{},highlighted:{type:Boolean}},emits:["itemClick"],setup(t,{expose:o,emit:p}){const l=t,i=p;function s(){i("itemClick",l.value)}const h=e.ref(null),a=e.computed(()=>l.layout==="inline"&&l.type==="radio"),c=e.computed(()=>l.layout==="vertical"?"text-[13px]":"text-sm");return o({el:h}),(g,r)=>(e.openBlock(),e.createElementBlock("div",{class:"flex items-center w-full rounded-sm group hover:bg-gray-100",ref_key:"el",ref:h},[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center justify-between w-full",c.value])},[e.createElementVNode("div",Ce,[e.createElementVNode("label",{for:"radio-9740",class:e.normalizeClass([["inline","popover"].includes(t.layout)?"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-gray-500 cursor-pointer",{"bg-blue-100":t.highlighted,relative:a.value},c.value]),onClick:e.withModifiers(s,["stop","prevent"])},[a.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["w-[18px] h-[18px] border flex items-center justify-center",[t.type==="checkbox"?"rounded-[4px]":"rounded-full",t.color?`bg-[${t.color}] border-[#ffffff]`:t.isSelected?"bg-[#2563eb] border-[#ffffff]":"bg-[#ffffff] border-[#d9d9d9]"]])},[t.isSelected?(e.openBlock(),e.createElementBlock("img",Be)):e.createCommentVNode("",!0)],2)),e.createElementVNode("input",{type:"checkbox",class:"hidden",id:"radio-9740",value:t.value},null,8,Ee),e.createElementVNode("div",{class:e.normalizeClass(["flex flex-1 flex-row items-center justify-between",a.value?"pl-1 pr-6":"w-[calc(100%-18px)] pl-[10px]"])},[e.createElementVNode("span",Ne,e.toDisplayString(t.label??"Відсутні дані"),1),t.count?(e.openBlock(),e.createElementBlock("div",Se," ("+e.toDisplayString(t.count)+") ",1)):e.createCommentVNode("",!0)],2),a.value&&t.isSelected?(e.openBlock(),e.createElementBlock("span",$e,[e.createVNode(P)])):e.createCommentVNode("",!0)],2)])],2)],512))}});function J(t,o){const{api:p,options:l=[],limit:i=20,dataKey:s="data",data:h}=t,a=s??h??"data";function c(n){return Array.isArray(n)?n[0]:n}const g=e.ref(c(t.modelValue)),r=e.ref(""),u=e.ref(!1),y=e.ref([]),b=e.ref("id"),k=e.ref("text"),B=e.ref(!1),C=e.ref(t.layout!=="popover"&&l.length>i);function f(n){const V=n.find(Boolean)??{},w=["id","value","code","key"].find(D=>D in V)??"id",$=["text","label","name","title"].find(D=>D in V)??"text";return{autoValueKey:w,autoLabelKey:$}}function d(n){if(n.length>0){const w=f(n);b.value=w.autoValueKey,k.value=w.autoLabelKey}const V=[...n].sort((w,$)=>t.sort==="count"?$.count&&w.count?$.count-w.count:0:t.sort==="name"?String(w[k.value]??"").localeCompare(String($[k.value]??"")):0);y.value=V}l.length>0&&d(l);const A=e.computed(()=>{const n=y.value;return t.layout==="popover"||B.value?n:n.slice(0,i)});async function F(){if(p){u.value=!0;try{const n=new URL(p,window.location.origin);n.searchParams.set("json","1"),n.searchParams.set("limit",i.toString());const V=await fetch(n.toString());if(!V.ok){U.notify({type:"error",title:"Error",message:"Failed to fetch remote options"}),y.value=[];return}const w=await V.json();if(!w[a]){U.notify({type:"error",title:"Error",message:w}),y.value=[];return}d(w[a])}catch(n){console.error("Failed to fetch remote options:",n)}finally{u.value=!1}}}function S(){p&&y.value.length===0&&F()}e.watch(()=>t.modelValue,n=>{g.value=c(n)},{immediate:!0}),p||d(l);function m(n){return g.value===n[b.value]}function x(n){g.value=n[b.value],o("update:modelValue",g.value),o("change",{name:t.name,value:g.value})}function E(){g.value=void 0,o("update:modelValue",g.value),o("clear",t.name)}function M(){B.value=!B.value}return{innerValue:g,searchTerm:r,filteredOptions:A,isSelected:m,selectItem:x,clear:E,toggleShowAll:M,isReqProc:u,showAll:B,isEnableShowAll:C,labelKey:k,valueKey:b,allOptions:y,loadData:S}}function le(t={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-${t.color}-500 focus:border-transparent
2
- text-gray-800 bg-white dark:text-neutral-300 dark:bg-neutral-800 dark:border-neutral-600`;return t?.size==="sm"?`${p}h-[32px]`:`${p}h-[38px]`})}function I(){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 De(){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 ne(t){return t==="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":t==="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 oe={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 ae(t){const o=t.split(".")[1],p=typeof window<"u"&&window.localStorage?localStorage.locale:null;return(oe[p||navigator.language]||oe.uk)[o]}function K(){const t=e.getCurrentInstance();if(!t.appContext.config.globalProperties.$i18n)return ae;const o=t.appContext.config.globalProperties.$t;return p=>{const l=o(p);return l===p?ae(p):l}}const Ae={},Fe={class:"w-48 mx-auto",viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function je(t,o){return e.openBlock(),e.createElementBlock("svg",Fe,[...o[0]||(o[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 X=O(Ae,[["render",je]]),Me={},Re={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 ze(t,o){return e.openBlock(),e.createElementBlock("svg",Re,[...o[0]||(o[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const Y=O(Me,[["render",ze]]),Ke={},Le={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 Te(t,o){return e.openBlock(),e.createElementBlock("svg",Le,[...o[0]||(o[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const Z=O(Ke,[["render",Te]]),Oe={key:0,class:"w-full"},_e={class:"flex flex-col items-center justify-center p-5 text-center"},Pe={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},Ie={key:1,class:"py-2 px-2"},Ue=["disabled"],qe=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(t,{expose:o,emit:p}){const l=t,i=e.ref(null),s=I(),h=K(),a=p,{innerValue:c,filteredOptions:g,isSelected:r,selectItem:u,clear:y,toggleShowAll:b,isReqProc:k,showAll:B,isEnableShowAll:C,labelKey:f,valueKey:d,allOptions:A,loadData:F}=J({...l,modelValue:l.modelValue??l.default??""},a);return e.onMounted(()=>{l.api&&F()}),o({clear:y,inputTextRef:i}),e.watch(()=>l.modelValue,S=>{S===void 0&&(c.value=void 0)}),(S,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.layout==="popover"?"flex flex-col max-h-full":"flex flex-col vs-filter-checkbox"])},[e.createElementVNode("div",{class:e.normalizeClass([t.layout==="popover"?"flex-1 overflow-y-auto p-2":"",t.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),x=>(e.openBlock(),e.createBlock(G,{layout:t.layout,key:x[e.unref(d)],count:x.count,label:x[e.unref(f)],color:x.color,type:"radio",value:x[e.unref(d)],"is-selected":e.unref(r)(x),onItemClick:E=>e.unref(u)(x)},null,8,["layout","count","label","color","value","is-selected","onItemClick"]))),128))],2),t.type==="select"&&e.unref(g).length===0&&!e.unref(k)?(e.openBlock(),e.createElementBlock("div",Oe,[e.createElementVNode("div",_e,[e.createVNode(X),m[4]||(m[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),t.layout!=="popover"&&t.type!=="select"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[!e.unref(B)&&e.unref(C)?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:m[0]||(m[0]=(...x)=>e.unref(b)&&e.unref(b)(...x)),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"},[m[5]||(m[5]=e.createTextVNode(" Показати більше ",-1)),e.createVNode(Y)])):e.createCommentVNode("",!0),e.unref(B)?(e.openBlock(),e.createElementBlock("div",{key:1,onClick:m[1]||(m[1]=(...x)=>e.unref(b)&&e.unref(b)(...x)),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"},[m[6]||(m[6]=e.createTextVNode(" Показати менше ",-1)),e.createVNode(Z)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),t.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.layout==="inline"?(e.openBlock(),e.createElementBlock("div",Pe,[e.createTextVNode(e.toDisplayString(e.unref(c)||e.unref(c)===null?1:0)+" з "+e.toDisplayString(e.unref(A).length)+" обрано ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:m[2]||(m[2]=(...x)=>e.unref(y)&&e.unref(y)(...x))}," Очистити ",512),[[e.vShow,e.unref(c)!==""&&e.unref(c)!==void 0]])])):e.createCommentVNode("",!0),t.layout==="popover"?(e.openBlock(),e.createElementBlock("div",Ie,[e.createElementVNode("button",{type:"button",disabled:!(e.unref(c)!==""&&e.unref(c)!==void 0),class:e.normalizeClass(e.unref(s)+" hover:bg-gray-100"),onClick:m[3]||(m[3]=(...x)=>e.unref(y)&&e.unref(y)(...x))},e.toDisplayString(e.unref(h)("filter.clear")),11,Ue)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}});function re(t,o){const{api:p,options:l=[],limit:i=20,dataKey:s="data",data:h}=t,a=s??h??"data";function c(n){return Array.isArray(n)?n:n?[n]:[]}const g=e.ref(c(t.modelValue)),r=e.ref(""),u=e.ref(!1),y=e.ref([]),b=e.ref("id"),k=e.ref("text"),B=e.ref(!1),C=e.ref(t.layout!=="popover"&&l.length>i);function f(n){const V=n.find(Boolean)??{},w=["id","value","code","key"].find(D=>D in V)??"id",$=["text","label","name","title"].find(D=>D in V)??"text";return{autoValueKey:w,autoLabelKey:$}}function d(n){if(n.length>0){const w=f(n);b.value=w.autoValueKey,k.value=w.autoLabelKey}const V=[...n].sort((w,$)=>t.sort==="count"?$.count&&w.count?$.count-w.count:0:t.sort==="name"?String(w[k.value]).localeCompare(String($[k.value])):0);y.value=V}l.length>0&&d(l);const A=e.computed(()=>{const n=y.value;return t.layout==="popover"||B.value?n:n.slice(0,i)});async function F(){if(p){u.value=!0;try{const n=new URL(p,window.location.origin);n.searchParams.set("json","1"),n.searchParams.set("limit",i.toString());const V=await fetch(n.toString());if(!V.ok){U.notify({type:"error",title:"Error",message:"Failed to fetch remote options"}),y.value=[];return}const w=await V.json();if(!w[a]){U.notify({type:"error",title:"Error",message:w}),y.value=[];return}d(w[a])}catch(n){console.error("Failed to fetch remote options:",n)}finally{u.value=!1}}}function S(){p&&y.value.length===0&&F()}e.watch(()=>t.modelValue,n=>{g.value=c(n)},{immediate:!0}),p||d(l);function m(n){return g.value&&g.value.includes(n[b.value])}function x(n){const V=g.value.includes(n[b.value]);g.value=V?g.value.filter(w=>w!==n[b.value]):[...g.value,n[b.value]],o("update:modelValue",g.value),o("change",{name:t.name,value:g.value})}function E(){g.value=[],o("update:modelValue",g.value),o("clear",t.name)}function M(){B.value=!B.value}return{innerValue:g,searchTerm:r,filteredOptions:A,isSelected:m,selectItem:x,clear:E,toggleShowAll:M,isReqProc:u,showAll:B,isEnableShowAll:C,labelKey:k,valueKey:b,allOptions:y,loadData:S}}const We={key:0,class:"w-full"},Ye={class:"flex flex-col items-center justify-center p-5 text-center"},He={class:"max-w-sm mx-auto mt-6"},Qe={class:"font-medium text-gray-800 dark:text-neutral-200"},Ge={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},Je={key:1,class:"py-2 px-2 border-t"},Xe=["disabled"],Ze={class:"text-xs text-gray-500"},ie=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(t,{expose:o,emit:p}){const l=K(),i=I(),s=t,h=p,{innerValue:a,filteredOptions:c,isSelected:g,selectItem:r,clear:u,toggleShowAll:y,isReqProc:b,showAll:k,isEnableShowAll:B,labelKey:C,valueKey:f,allOptions:d,loadData:A}=re({...s,modelValue:s.modelValue},h);return e.onMounted(()=>{s.api&&A()}),e.watch(()=>s.modelValue,F=>{F===void 0&&(a.value=[])}),o({clear:u}),(F,S)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.layout==="popover"?"flex flex-col max-h-full":"flex flex-col vs-filter-checkbox space-y-0.5"])},[e.createElementVNode("div",{class:e.normalizeClass([t.layout==="popover"?"flex-1 overflow-y-auto p-2":"",t.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c),m=>(e.openBlock(),e.createBlock(G,{layout:t.layout,count:m.count,label:m[e.unref(C)],color:m.color,type:"checkbox",value:m[e.unref(f)],"is-selected":e.unref(g)(m),onItemClick:x=>e.unref(r)(m)},null,8,["layout","count","label","color","value","is-selected","onItemClick"]))),256))],2),t.type==="select"&&e.unref(c).length===0&&!e.unref(b)?(e.openBlock(),e.createElementBlock("div",We,[e.createElementVNode("div",Ye,[e.createVNode(X),e.createElementVNode("div",He,[e.createElementVNode("p",Qe,e.toDisplayString(e.unref(l)("filter.notfound")),1),S[4]||(S[4]=e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"},null,-1))])])])):e.createCommentVNode("",!0),t.layout!=="popover"&&t.type!=="select"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[!e.unref(k)&&e.unref(B)?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:S[0]||(S[0]=(...m)=>e.unref(y)&&e.unref(y)(...m)),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(l)("filter.more"))+" ",1),e.createVNode(Y)])):e.createCommentVNode("",!0),e.unref(k)?(e.openBlock(),e.createElementBlock("div",{key:1,onClick:S[1]||(S[1]=(...m)=>e.unref(y)&&e.unref(y)(...m)),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(l)("filter.less"))+" ",1),e.createVNode(Z)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),t.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.layout==="inline"?(e.openBlock(),e.createElementBlock("div",Ge,[e.createTextVNode(e.toDisplayString(e.unref(a).length)+" / "+e.toDisplayString(e.unref(d).length)+" "+e.toDisplayString(e.unref(l)("filter.selected"))+" ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:S[2]||(S[2]=(...m)=>e.unref(u)&&e.unref(u)(...m))},e.toDisplayString(e.unref(l)("filter.clear")),513),[[e.vShow,e.unref(a).length!==0]])])):e.createCommentVNode("",!0),t.layout==="popover"?(e.openBlock(),e.createElementBlock("div",Je,[e.createElementVNode("button",{type:"button",disabled:e.unref(a).length===0,class:e.normalizeClass(e.unref(i)+" hover:bg-gray-100"),onClick:S[3]||(S[3]=(...m)=>e.unref(u)&&e.unref(u)(...m))},[e.createTextVNode(e.toDisplayString(e.unref(l)("filter.clear"))+" ",1),e.createElementVNode("span",Ze,e.toDisplayString(e.unref(a).length)+" з "+e.toDisplayString(e.unref(d).length),1)],10,Xe)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),ve={},et={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 tt(t,o){return e.openBlock(),e.createElementBlock("svg",et,[...o[0]||(o[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 se=O(ve,[["render",tt]]),lt={},nt={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 ot(t,o){return e.openBlock(),e.createElementBlock("svg",nt,[...o[0]||(o[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 v=O(lt,[["render",ot]]);class ce{static getWidthClass(o){return typeof o=="number"?`max-w-[${o}px] min-w-[${o}px]`:typeof o=="string"?o.endsWith("%")||o.endsWith("px")?`max-w-[${o}]`:`max-w-${o}`:"w-full"}}const at={class:"absolute bottom-2/4 translate-y-2/4 cursor-pointer left-3"},rt=["placeholder"],it=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(t,{emit:o}){const p=t,l=e.ref((p.placeholder||p.label||p.title||p.name||"search").toString()),i=o,s=e.ref(p.modelValue?.toString()??"");e.watch(()=>p.modelValue,g=>{g!==s.value&&(s.value=g?.toString()??"")});let h=null;function a(){if(s.value=s.value.trimStart(),s.value.length===0){c();return}h&&clearTimeout(h),h=setTimeout(()=>{i("update:modelValue",s.value),i("change",{name:p.name,value:s.value})},300)}function c(){s.value="",i("update:modelValue",""),i("clear",p.name)}return(g,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-form-text relative bg-white [&>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]: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",t.layout==="vertical"?"rounded-md":"rounded-sm",t.layout==="vertical"?"[&>input]:rounded-md":"[&>input]:rounded-sm",t.layout==="inline"?e.unref(ce).getWidthClass(t.width):"mb-2"+(t.layout==="popover"?" m-2":"")])},[e.createElementVNode("div",at,[e.createVNode(se)]),s.value!==""?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:c,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer"},[e.createVNode(v)])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":r[0]||(r[0]=u=>s.value=u),onInput:a,placeholder:l.value,class:e.normalizeClass(["!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 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",t.layout==="vertical"?"rounded-md":"rounded-sm"])},null,42,rt),[[e.vModelText,s.value]])],2))}}),st={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},ct=["placeholder","disabled"],dt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},mt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},ft=["placeholder","disabled"],ut=["disabled"],kn={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},wn={key:1,class:"flex justify-end items-center text-xs text-gray-500 p-1 border-t"},pt=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(t,{expose:o,emit:p}){const l=le(),i=I(),s=K(),h=t,a=e.ref(h.modelValue??h.default??[]),c=p,g=e.computed({get:()=>h.modelValue??a.value,set:y=>{h.modelValue!==void 0?c("update:modelValue",y):a.value=y}});function r(){c("change",{name:h.name,value:g.value||a.value})}function u(){a.value=[],g.value=a.value,c("clear",h.name)}return e.watch(()=>h.modelValue,y=>{y!==void 0&&h.layout!=="popover"?(a.value=y,c("update:modelValue",y)):a.value=[]}),o({clear:u,currentValue:g}),(y,b)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",null,[e.createElementVNode("div",{class:e.normalizeClass(t.layout==="vertical"?"inline-flex items-center gap-2":"space-y-3 p-2")},[e.createElementVNode("div",null,[t.layout!=="vertical"?(e.openBlock(),e.createElementBlock("label",st,e.toDisplayString(e.unref(s)("filter.from")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"number",class:e.normalizeClass(e.unref(l)),placeholder:t.placeholder?.[0]??e.unref(s)("filter.min"),step:"1",style:{outline:"none"},"onUpdate:modelValue":b[0]||(b[0]=k=>g.value[0]=k),disabled:t.disabled},null,10,ct),[[e.vModelText,g.value[0]]])]),t.layout==="vertical"?(e.openBlock(),e.createElementBlock("label",dt," - ")):e.createCommentVNode("",!0),e.createElementVNode("div",null,[t.layout!=="vertical"?(e.openBlock(),e.createElementBlock("label",mt,e.toDisplayString(e.unref(s)("filter.to")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"number",class:e.normalizeClass(e.unref(l)),placeholder:t.placeholder?.[1]??e.unref(s)("filter.max"),min:"0",max:"1000000000000000",step:"1",style:{outline:"none"},"onUpdate:modelValue":b[1]||(b[1]=k=>g.value[1]=k),disabled:t.disabled},null,10,ft),[[e.vModelText,g.value[1]]])]),["popover","inline","vertical"].includes(t.layout)?(e.openBlock(),e.createElementBlock("button",{key:1,onClick:r,class:e.normalizeClass(e.unref(i)+(t.layout==="vertical"?" w-[50px]":" bg-blue-100 hover:bg-blue-200"))},e.toDisplayString(t.layout==="vertical"?"Ok":e.unref(s)("filter.apply")),3)):e.createCommentVNode("",!0),["popover","inline"].includes(t.layout)?(e.openBlock(),e.createElementBlock("button",{key:2,disabled:!(g.value[0]||g.value[1]),onClick:u,class:e.normalizeClass(e.unref(i)+" hover:bg-gray-100")},e.toDisplayString(e.unref(s)("filter.clear")),11,ut)):e.createCommentVNode("",!0)],2)]),(t.cleanable&&a.value.length,e.createCommentVNode("",!0))],64))}});class z{static format(o){const p=o.getFullYear(),l=(o.getMonth()+1).toString().padStart(2,"0"),i=o.getDate().toString().padStart(2,"0");return`${p}-${l}-${i}`}static getShiftedDay(o,p=0){const l=o?new Date(o):new Date;return l.setDate(l.getDate()+p),this.format(l)}static getLastWeekRange(o,p,l=0){if(o&&p){const g=new Date(o),r=new Date(p);return g.setDate(g.getDate()+l*7),r.setDate(r.getDate()+l*7),[this.format(g),this.format(r)]}const i=new Date,s=i.getDay(),h=s===0?13:s-1+7,a=new Date(i);a.setDate(i.getDate()-h+l*7);const c=new Date(a);return c.setDate(a.getDate()+6),[this.format(a),this.format(c)]}static getMonthRange(o,p,l=0){let i;o?i=new Date(o):i=new Date,i=new Date(i.getFullYear(),i.getMonth()+l,1);const s=i,h=new Date(i.getFullYear(),i.getMonth()+1,0);return[this.format(s),this.format(h)]}static getQuarterRange(o,p,l=0){const i=o||p,s=i?new Date(i):new Date;let h=Math.floor(s.getMonth()/3);h+=l;const a=(h%4+4)%4*3,c=s.getFullYear()+Math.floor(h/4),g=new Date(c,a,1),r=new Date(c,a+3,0);return[this.format(g),this.format(r)]}static getYear(o,p=0){let l;return o&&/^\d{4}$/.test(o)?l=parseInt(o,10):o?l=new Date(o).getFullYear():l=new Date().getFullYear(),String(l+p)}static getYearRange(o,p=0){let l;return o&&/^\d{4}$/.test(o)?l=parseInt(o,10):o?l=new Date(o).getFullYear():l=new Date().getFullYear(),[this.format(new Date(l+p,0,1)),this.format(new Date(l+p+1,0,0))]}static getRangeFromDaysBefore(o){const p=new Date,l=new Date(p.getTime());return l.setDate(p.getDate()-o),[this.format(l),this.format(p)]}}function de(t,o){const{popoverRef:p}=t,l=K(),i=e.ref(""),s=e.ref(t.modelValue??t.default??[]),h=e.ref(0);function a(){const f=z.getRangeFromDaysBefore(h.value);return s.value=[...f],o("change",{name:t.name,value:s.value}),o("update:modelValue",s.value),f}function c(f){i.value=f,p.value?.close();const d=[];switch(i.value){case"today":d.push(z.getShiftedDay()),d.push(z.getShiftedDay());break;case"week":d.push(...z.getLastWeekRange());break;case"month":d.push(...z.getMonthRange());break;case"quarter":d.push(...z.getQuarterRange());break;case"year":d.push(...z.getYearRange());break;case"last_7_days":h.value=7,a();break;case"range":h.value=7,d.push(...a());break}s.value=[...d],o("change",{name:t.name,value:s.value}),o("update:modelValue",s.value)}function g(){const f=[];switch(i.value){case"today":f.push(z.getShiftedDay(s.value[0],1));break;case"week":f.push(...z.getLastWeekRange(s.value[0],s.value[1],1));break;case"month":f.push(...z.getMonthRange(s.value[0],s.value[1],1));break;case"quarter":f.push(...z.getQuarterRange(s.value[0],s.value[1],1));break;case"year":f.push(...z.getYearRange(s.value[0],1));break}s.value=[...f],o("change",{name:t.name,value:s.value}),o("update:modelValue",s.value)}function r(){const f=[];switch(i.value){case"today":f.push(z.getShiftedDay(s.value[0],-1));break;case"week":f.push(...z.getLastWeekRange(s.value[0],s.value[1],-1));break;case"month":f.push(...z.getMonthRange(s.value[0],s.value[1],-1));break;case"quarter":f.push(...z.getQuarterRange(s.value[0],s.value[1],-1));break;case"year":f.push(...z.getYearRange(s.value[0],-1));break}s.value=[...f],o("change",{name:t.name,value:s.value}),o("update:modelValue",s.value)}const u=["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"];function y(f){const[d,A,F]=f.split("-");return`${F}.${A}.${d}`}function b(f,d="long"){const A=new Date(Date.UTC(2e3,f-1,1));return new Intl.DateTimeFormat(localStorage.locale,{month:d,timeZone:"UTC"}).format(A)}function k(f){const{value:d}=s;switch(f){case"today":return y(d[0]);case"range":return"Період";case"week":return d[0]&&d[1]?`${y(d[0])} – ${y(d[1])}`:"";case"quarter":if(d[0]){const A=new Date(d[0]),F=A.getFullYear(),S=A.getMonth();return`${Math.floor(S/3)+1} ${l("filter.quarter")} ${F}`}return"";case"month":if(d[0]){const[A,F]=d[0].split("-");return`${b(parseInt(F,10))} ${A}`}return"";case"year":return d[0]||"";case"last_7_days":return"За останні дні";default:return t.label??""}}const B=e.computed(()=>i.value?k(i.value):t.label??"");function C(){i.value="",s.value=[],o("update:modelValue",[]),o("clear",t.name)}return{activeMode:i,innerValue:s,daysBefore:h,onDaysBeforeChange:a,onSelectChange:c,nextClick:g,prevClick:r,ukMonths:u,formatDisplayDate:y,getModeLabel:k,currentLabel:B,clear:C}}const yt={key:0,class:"relative flex w-full h-auto gap-2 filter-date m-2 flex-wrap"},gt={key:0,class:"flex gap-1 !w-[75%] rounded-sm"},ht=["max","disabled"],bt=["min","disabled"],xt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},kt=["max","disabled"],wt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},Vt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},Ct=["min","disabled"],Bt={class:"flex gap-1 px-2"},Et=["title","onClick"],Nt={class:"pt-2 px-2"},St=["disabled"],$t=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(t,{expose:o,emit:p}){const l=t,i=le(),s=I(),h=De(),a=K(),c=p,g=e.ref(null),{activeMode:r,innerValue:u,onSelectChange:y,nextClick:b,prevClick:k,clear:B}=de({...l,popoverRef:g},c);e.watch(()=>l.modelValue,F=>{F!==void 0?(u.value=F,c("update:modelValue",F)):(r.value="",u.value=[])}),e.watch(u,F=>{c("update:modelValue",F),c("change",{name:l.name,value:F})},{deep:!0});const C=["today","week","month","quarter","year"],f={today:{label:"день",title:a("filter.today")},week:{label:"тиж.",title:a("filter.week")},month:{label:"міс.",title:a("filter.month")},quarter:{label:"кв.",title:a("filter.quarter")},year:{label:"рік",title:a("filter.year")}};function d(F){return f[F]?.label??a(`filter.${F}`)}function A(F){return f[F]?.title??a(`filter.${F}`)}return o({clear:B,popoverRef:g}),(F,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.layout==="inline"?(e.openBlock(),e.createElementBlock("div",yt,[e.unref(r)!==""&&e.unref(r)==="range"?(e.openBlock(),e.createElementBlock("div",gt,[S[7]||(S[7]=e.createTextVNode(" 1111 ",-1)),e.withDirectives(e.createElementVNode("input",{type:"date",max:e.unref(u)[1],locale:"uk-UA","onUpdate:modelValue":S[0]||(S[0]=m=>e.unref(u)[0]=m),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-sm focus:outline-blue-600",disabled:t.disabled},null,8,ht),[[e.vModelText,e.unref(u)[0]]]),e.withDirectives(e.createElementVNode("input",{type:"date",min:e.unref(u)[0],locale:"uk-UA","onUpdate:modelValue":S[1]||(S[1]=m=>e.unref(u)[1]=m),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-sm focus:outline-blue-600 appearance-auto",disabled:t.disabled},null,8,bt),[[e.vModelText,e.unref(u)[1]]])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(t.layout==="popover"?"space-y-3 p-2":"flex items-center gap-2")},[e.createElementVNode("div",{class:e.normalizeClass(t.layout!=="popover"?"w-[48%]":"")},[t.layout==="popover"?(e.openBlock(),e.createElementBlock("label",xt,e.toDisplayString(e.unref(a)("filter.from")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"date",max:e.unref(u)[1],locale:"uk-UA","onUpdate:modelValue":S[2]||(S[2]=m=>e.unref(u)[0]=m),class:e.normalizeClass(e.unref(i)),disabled:t.disabled},null,10,kt),[[e.vModelText,e.unref(u)[0]]])],2),t.layout!=="popover"?(e.openBlock(),e.createElementBlock("label",wt," - ")):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(t.layout!=="popover"?"w-[48%]":"")},[t.layout==="popover"?(e.openBlock(),e.createElementBlock("label",Vt,e.toDisplayString(e.unref(a)("filter.to")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"date",min:e.unref(u)[0],locale:"uk-UA","onUpdate:modelValue":S[3]||(S[3]=m=>e.unref(u)[1]=m),class:e.normalizeClass(e.unref(i)),disabled:t.disabled},null,10,Ct),[[e.vModelText,e.unref(u)[1]]])],2)],2),e.createElementVNode("div",Bt,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(C,m=>e.createElementVNode("button",{key:m,class:e.normalizeClass(e.unref(h)+(e.unref(r)===m?" bg-blue-100":"")),title:A(m),onClick:x=>e.unref(y)(m)},e.toDisplayString(d(m)),11,Et)),64)),e.createElementVNode("button",{class:e.normalizeClass(e.unref(h)),onClick:S[4]||(S[4]=(...m)=>e.unref(k)&&e.unref(k)(...m))},"<",2),e.createElementVNode("button",{class:e.normalizeClass(e.unref(h)),onClick:S[5]||(S[5]=(...m)=>e.unref(b)&&e.unref(b)(...m))},">",2)]),e.createElementVNode("div",Nt,[["popover"].includes(t.layout)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:!e.unref(u)?.length||!e.unref(u)[0]&&!e.unref(u)[1],class:e.normalizeClass(e.unref(s)+"hover:bg-gray-100"),onClick:S[6]||(S[6]=(...m)=>e.unref(B)&&e.unref(B)(...m))},e.toDisplayString(e.unref(a)("filter.clear")),11,St)):e.createCommentVNode("",!0)])],64))}});function Dt(t,o){const{api:p,options:l=[],limit:i=20,dataKey:s="data",data:h}=t,a=s??h??"data",c=t.multi;function g(N){return c?Array.isArray(N)?N:N?[N]:[]:Array.isArray(N)?N[0]:N}const r=e.ref(g(t.modelValue)),u=e.ref(""),y=e.ref(!1),b=e.ref(l),k=e.ref("id"),B=e.ref("text"),C=e.ref(!1),f=e.ref(t.layout!=="popover"&&l.length>i),d=e.ref([]),A=e.ref(0);function F(N){const R=N.find(Boolean)??{},L=["id","value","code","key"].find(W=>W in R)??"id",q=["text","label","name","title"].find(W=>W in R)??"text";return{autoValueKey:L,autoLabelKey:q}}if(l.length>0){const N=F(l);k.value=N.autoValueKey,B.value=N.autoLabelKey}const S=e.computed(()=>{if(p)return b.value;const N=b.value;if(t.layout==="popover")return N;if(!u.value)return C.value?N:N.slice(0,i);const R=u.value.toLowerCase();return N.filter(L=>L[B.value].toLowerCase().includes(R))});let m=null;async function x(N){if(p){y.value=!0;try{const R=new URL(p,window.location.origin);R.searchParams.set("json","1"),R.searchParams.set("key",N),R.searchParams.set("limit",i.toString());const L=await fetch(R.toString());if(!L.ok){U.notify({type:"error",title:"Error",message:"Failed to fetch remote options"}),b.value=[];return}const q=await L.json();if(!q[a]){U.notify({type:"error",title:"Error",message:q}),b.value=[];return}if(b.value=q[a],b.value.length>0){const W=F(b.value);k.value=W.autoValueKey,B.value=W.autoLabelKey}A.value=q.total}catch(R){console.error("Failed to fetch remote options:",R)}finally{y.value=!1}}}e.watch(u,N=>{p&&(m&&clearTimeout(m),m=setTimeout(()=>{x(N)},200))}),e.watch(()=>t.modelValue,N=>{r.value=g(N)},{immediate:!0}),e.watch(r,N=>{c?(!Array.isArray(N)||N.length===0)&&(d.value=[]):(N==null||typeof N=="string"&&N==="")&&(d.value=[])});function E(N){return c&&Array.isArray(r.value)?r.value.includes(N[k.value]):r.value&&r.value===N[k.value]}function M(N){if(c&&!Array.isArray(r.value)&&(r.value=[]),c&&Array.isArray(r.value)){const R=r.value.includes(N[k.value]);r.value=R?r.value.filter(L=>L!==N[k.value]):[...r.value,N[k.value]],d.value=R?d.value.filter(L=>L!==N[B.value]):[...d.value,N[B.value]]}else r.value=N[k.value],d.value=N[B.value];o("update:modelValue",r.value),o("change",{name:t.name,value:r.value})}function n(){c?(r.value=[],d.value=[]):(r.value=void 0,d.value=[]),o("update:modelValue",r.value),o("clear",t.name)}function V(){m&&clearTimeout(m),u.value="",C.value=!1}function w(){C.value=!C.value}e.onBeforeUnmount(()=>{m&&clearTimeout(m)});const $=e.ref(-1);e.watch(S,()=>{$.value=S.value.length>0?0:-1});function D(N){const R=S.value.length;if(N.key==="ArrowDown")N.preventDefault(),$.value=($.value+1)%R;else if(N.key==="ArrowUp")N.preventDefault(),$.value=($.value-1+R)%R;else if(N.key==="Enter"&&(N.preventDefault(),$.value>=0&&$.value<S.value.length)){const L=S.value[$.value];M(L)}}function j(){p&&b.value.length===0&&u.value.length===0&&x(u.value)}return{innerValue:r,searchTerm:u,filteredOptions:S,isSelected:E,selectItem:M,clear:n,resetSearch:V,toggleShowAll:w,isReqProc:y,showAll:C,isEnableShowAll:f,labelKey:B,valueKey:k,allOptions:b,highlightedIndex:$,onKeyDown:D,selectedLabels:d,totalCount:A,loadData:j}}const At={class:"h-[45px] shrink-0 px-[6px] py-[4px] flex items-center relative justify-center"},Ft=["placeholder"],jt={key:0,class:"w-full"},Mt={class:"flex flex-col items-center justify-center p-5 text-center"},Rt={class:"max-w-sm mx-auto mt-6"},zt={class:"font-medium text-gray-800 dark:text-neutral-200"},Kt={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},Lt={key:1,class:"py-2 px-2 border-t"},Tt=["disabled"],Ot={class:"text-xs text-gray-500"},_t=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(t,{expose:o,emit:p}){const l=K(),i=I(),s=t,h=p,a=e.ref(null),{innerValue:c,filteredOptions:g,isSelected:r,selectItem:u,clear:y,resetSearch:b,toggleShowAll:k,isReqProc:B,showAll:C,isEnableShowAll:f,searchTerm:d,labelKey:A,valueKey:F,highlightedIndex:S,onKeyDown:m,selectedLabels:x,totalCount:E,loadData:M}=Dt({...s,modelValue:s.modelValue},h),n=e.computed(()=>s.multi?Array.isArray(c.value)&&c.value.length>0:c.value!=null&&c.value!==""),V=e.computed(()=>s.multi&&Array.isArray(c.value)?c.value.length:c.value!=null&&c.value!==""?1:0);e.onMounted(()=>{b(),s.layout!=="inline"&&(M(),a.value&&s.layout==="popover"&&a.value.focus())}),e.watch(()=>s.modelValue,$=>{$===void 0&&(s.multi?c.value=[]:c.value=void 0)});const w=e.ref([]);return e.watch(S,$=>{$>=0&&w.value[$]&&w.value[$]?.scrollIntoView({block:"nearest",behavior:"smooth"})}),e.watch(g,()=>{w.value=[]}),o({clear:y,inputTextRef:a,selectedLabels:x,loadData:M}),($,D)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.layout==="popover"?"flex flex-col max-h-full":"flex flex-col vs-filter-checkbox space-y-0.5"])},[e.createElementVNode("div",At,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":D[0]||(D[0]=j=>e.isRef(d)?d.value=j:null),onKeydown:D[1]||(D[1]=(...j)=>e.unref(m)&&e.unref(m)(...j)),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(l)("filter.search"),type:"text",ref_key:"inputTextRef",ref:a},null,40,Ft),[[e.vModelText,e.unref(d)]]),e.createVNode(se,{class:"absolute text-gray-400 -translate-y-1/2 left-4 top-1/2"}),e.unref(d)!=""?(e.openBlock(),e.createBlock(v,{key:0,onClick:D[2]||(D[2]=j=>d.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([t.layout==="popover"?"flex-1 overflow-y-auto p-2":"",t.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),(j,N)=>(e.openBlock(),e.createBlock(G,{layout:t.layout,count:j.count,label:j[e.unref(A)],color:j.color,type:t.multi?"checkbox":"radio",value:j[e.unref(F)],"is-selected":e.unref(r)(j),highlighted:N===e.unref(S),onItemClick:R=>e.unref(u)(j),ref_for:!0,ref:R=>w.value[N]=R?.el},null,8,["layout","count","label","color","type","value","is-selected","highlighted","onItemClick"]))),256))],2),t.type==="select"&&e.unref(g).length===0&&!e.unref(B)?(e.openBlock(),e.createElementBlock("div",jt,[e.createElementVNode("div",Mt,[e.createVNode(X),e.createElementVNode("div",Rt,[e.createElementVNode("p",zt,e.toDisplayString(e.unref(l)("filter.notfound")),1),D[7]||(D[7]=e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"},null,-1))])])])):e.createCommentVNode("",!0),t.layout!=="popover"&&t.type!=="select"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[!e.unref(C)&&e.unref(f)?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:D[3]||(D[3]=(...j)=>e.unref(k)&&e.unref(k)(...j)),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(l)("filter.more"))+" ",1),e.createVNode(Y)])):e.createCommentVNode("",!0),e.unref(C)?(e.openBlock(),e.createElementBlock("div",{key:1,onClick:D[4]||(D[4]=(...j)=>e.unref(k)&&e.unref(k)(...j)),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(l)("filter.less"))+" ",1),e.createVNode(Z)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),t.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.layout==="inline"?(e.openBlock(),e.createElementBlock("div",Kt,[e.createTextVNode(e.toDisplayString(t.multi&&Array.isArray(e.unref(c))?e.unref(c)?.length:e.unref(c)!==void 0&&(e.unref(c)||e.unref(c)===null)?1:0)+" / "+e.toDisplayString(e.unref(E))+" "+e.toDisplayString(e.unref(l)("filter.selected"))+" ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:D[5]||(D[5]=(...j)=>e.unref(y)&&e.unref(y)(...j))},e.toDisplayString(e.unref(l)("filter.clear")),513),[[e.vShow,n.value]])])):e.createCommentVNode("",!0),t.layout==="popover"?(e.openBlock(),e.createElementBlock("div",Lt,[e.createElementVNode("button",{type:"button",disabled:!n.value,class:e.normalizeClass(e.unref(i)+" hover:bg-gray-100"),onClick:D[6]||(D[6]=(...j)=>e.unref(y)&&e.unref(y)(...j))},[e.createTextVNode(e.toDisplayString(e.unref(l)("filter.clear"))+" ",1),e.createElementVNode("span",Ot,e.toDisplayString(V.value)+" з "+e.toDisplayString(e.unref(E)),1)],10,Tt)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),Pt=["for","onClick"],It=["id","name","value"],Ut={class:"block"},qt={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},Wt={key:1,class:"pt-2 px-2 border-t"},Yt=["disabled"],Ht={class:"text-xs text-gray-500"},Qt=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(t,{expose:o,emit:p}){const l=t,i=p,s=I(),h=K(),{innerValue:a,isSelected:c,selectItem:g,clear:r,labelKey:u,valueKey:y,allOptions:b}=l.multi?re({...l,modelValue:l.modelValue??l.default??[]},i):J({...l,modelValue:l.modelValue!==void 0?l.modelValue:l.default??""},i),k=e.computed(()=>l.multi?Array.isArray(a.value)&&a.value.length>0:a.value!=null&&a.value!==""),B=e.computed(()=>l.multi&&Array.isArray(a.value)?a.value.length:a.value!=null&&a.value!==""?1:0);return o({clear:r}),e.watch(()=>l.modelValue,C=>{C===void 0&&(l.multi?a.value=[]:a.value=void 0)}),(C,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:e.normalizeClass(["grid grid-cols-3 gap-2 mx-[1px]",t.layout==="popover"?"p-2 max-h-[calc(100%-55px)] overflow-y-auto":"mb-1"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),d=>(e.openBlock(),e.createElementBlock("label",{key:`item-${d[e.unref(y)]}`,for:`item-${d[e.unref(y)]}`,onClick:e.withModifiers(A=>e.unref(g)(d),["stop","prevent"]),class:e.normalizeClass([e.unref(c)(d)?"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-${d[e.unref(y)]}`,class:"hidden w4poy border-gray-200 g41z1 g22e3 axcnw dark:text-indigo-500 dark:border-neutral-700 dark:focus:ring-neutral-900",name:`item-${d[e.unref(y)]}`,value:d[e.unref(y)]},null,8,It),e.createElementVNode("span",Ut,e.toDisplayString(d[e.unref(u)]),1)],10,Pt))),128))],2),t.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.layout==="inline"?(e.openBlock(),e.createElementBlock("div",qt,[e.createTextVNode(e.toDisplayString(t.multi&&Array.isArray(e.unref(a))?e.unref(a)?.length:e.unref(a)!==void 0&&(e.unref(a)||e.unref(a)===null)?1:0)+" з "+e.toDisplayString(e.unref(b).length)+" обрано ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:f[0]||(f[0]=(...d)=>e.unref(r)&&e.unref(r)(...d))}," Очистити ",512),[[e.vShow,k.value]])])):e.createCommentVNode("",!0),t.layout==="popover"?(e.openBlock(),e.createElementBlock("div",Wt,[e.createElementVNode("button",{type:"button",disabled:!k.value,class:e.normalizeClass(e.unref(s)+" hover:bg-gray-100"),onClick:f[1]||(f[1]=(...d)=>e.unref(r)&&e.unref(r)(...d))},[e.createTextVNode(e.toDisplayString(e.unref(h)("filter.clear"))+" ",1),e.createElementVNode("span",Ht,e.toDisplayString(B.value)+" з "+e.toDisplayString(e.unref(b).length),1)],10,Yt)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],64))}}),Gt=["disabled","title"],Jt={class:"flex w-full items-center justify-between gap-1 overflow-hidden text-left"},Xt={class:"truncate text-ellipsis text-sm"},Zt={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"},vt={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"},el={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"},ee=e.defineComponent({__name:"popover-field",props:{disabled:{type:Boolean,default:!1},label:{},en:{},ua:{},uk:{},fr:{},de:{},es:{},currentValue:{},fieldRef:{},width:{},mode:{},layout:{}},setup(t,{expose:o}){const p=t,l=e.computed(()=>ne(p.mode)),i=e.ref(!1),s=e.ref({top:0,left:0}),h=e.ref(null),a=e.ref(null),c=e.ref(null);let g=null;function r(){const m=a.value,x=c.value;if(!m||!x)return;const E=m.getBoundingClientRect(),M=x.offsetWidth,n=x.offsetHeight,V=window.innerWidth,w=window.innerHeight,$=8;let D=E.bottom+$,{left:j}=E;const N=Math.max(V-M-10,10);if(j=Math.min(j,N),j=Math.max(j,10),D+n>w-10){const R=E.top-n-$;D=R>=10?R:Math.max(w-n-10,10)}D<10&&(D=10),s.value={top:D,left:j}}function u(){e.nextTick(()=>{r(),typeof window<"u"&&typeof window.requestAnimationFrame=="function"&&window.requestAnimationFrame(()=>r())})}function y(){i.value=!i.value,i.value&&(u(),e.nextTick(()=>{p.fieldRef?.inputTextRef&&p.fieldRef?.inputTextRef?.focus?.(),p.fieldRef?.loadData&&Promise.resolve(p.fieldRef?.loadData?.()).finally(()=>{i.value&&u()})}))}function b(m){!h.value?.contains(m.target)&&!c.value?.contains(m.target)&&!a.value?.contains(m.target)&&(i.value=!1)}function k(m){m.key==="Escape"&&(i.value=!1)}const B=e.ref(!1),C=e.ref("ua"),f=m=>{m.detail.key==="locale"&&(C.value=m.detail.newValue)};e.onMounted(()=>{B.value=!0,C.value=localStorage.locale,window.addEventListener("storage",f),document.addEventListener("click",b,!0),document.addEventListener("keydown",k),window.addEventListener("scroll",r,!0),window.addEventListener("resize",r,!0),typeof ResizeObserver<"u"&&(g=new ResizeObserver(()=>{i.value&&u()}))}),e.onBeforeUnmount(()=>{window.removeEventListener("storage",f),document.removeEventListener("click",b,!0),document.removeEventListener("keydown",k),window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",r,!0),g?.disconnect(),g=null});function d(){i.value=!1}o({close:d}),e.watch([B,i,c],([m,x,E])=>{m&&x&&E&&(u(),g?.observe(E))});function A(m){return Array.isArray(m)?m.filter(x=>x!=null&&x!=="").length:m&&typeof m=="object"?Object.values(m).filter(x=>x!=null&&x!=="").length:typeof m=="string"?m.trim()===""?0:1:typeof m=="number"?Number.isNaN(m)?0:1:m===null||m!==void 0?1:0}const F=e.computed(()=>{const m=p.fieldRef?.selectedLabels,x=A(m);return x>0?x:A(p.currentValue)}),S=e.computed(()=>{const m=p.fieldRef?.selectedLabels;return!m||["inline"].includes(p.layout||"")?p[C.value]||(p.label??""):Array.isArray(m)?m.length>0?m.join(", "):p.label??"":String(m)});return(m,x)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"wrapperRef",ref:h},[e.createElementVNode("button",{onClick:y,disabled:t.disabled,ref_key:"triggerRef",ref:a,title:t.label,class:e.normalizeClass([l.value,t.width?e.unref(ce).getWidthClass(t.width):"w-full",t.layout==="inline"&&F.value>0?"border border-blue-400 bg-blue-50 text-blue-600":""]),type:"button"},[e.createElementVNode("span",Jt,[e.createElementVNode("span",Xt,e.toDisplayString(S.value),1),t.layout==="inline"&&F.value>0?(e.openBlock(),e.createElementBlock("span",Zt,e.toDisplayString(F.value),1)):e.createCommentVNode("",!0)]),e.createVNode(Y,{class:"h-4 w-4 text-neutral-500"})],10,Gt),B.value?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:"body"},[e.withDirectives(e.createElementVNode("div",{ref_key:"popperRef",ref:c,class:"vsTailwind vs-popover__content w-fit fixed z-[1000]",style:e.normalizeStyle({top:`${s.value.top}px`,left:`${s.value.left}px`}),"data-inside-popover":""},[e.createElementVNode("div",vt,[e.createElementVNode("div",el,[e.renderSlot(m.$slots,"default")])])],4),[[e.vShow,i.value]])])):e.createCommentVNode("",!0)],512))}}),tl={},ll={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 nl(t,o){return e.openBlock(),e.createElementBlock("svg",ll,[...o[0]||(o[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const ol=O(tl,[["render",nl]]),al={},rl={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 il(t,o){return e.openBlock(),e.createElementBlock("svg",rl,[...o[0]||(o[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const sl=O(al,[["render",il]]),cl={class:"flex gap-1"},dl={class:"mb-1"},ml={class:"mb-1"},fl={class:"inline-flex rounded-sm shrink-0 pl-1"},ul=["title"],pl={class:"inline-flex rounded-sm shrink-0 pl-1"},yl=["title"],gl={key:1,class:"flex gap-1 !w-[75%] rounded-sm"},hl=["max","value","disabled"],bl=["min","value","disabled"],Vn={key:0,class:"flex justify-end items-center text-xs text-gray-500 p-1 border-t"},xl=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(t,{expose:o,emit:p}){const l=K(),i=t,s=p,h=e.ref(null),{activeMode:a,innerValue:c,onSelectChange:g,nextClick:r,prevClick:u,currentLabel:y,clear:b}=de({...i,popoverRef:h},s);e.watch(()=>i.modelValue,C=>{C!==void 0?(c.value=C,s("update:modelValue",C)):(a.value="",c.value=[])}),e.watch(c,C=>{s("update:modelValue",C),s("change",{name:i.name,value:C})},{deep:!0});function k(C){const f=Array.isArray(c.value)?[...c.value]:[];c.value=[C,f[1]||""]}function B(C){const f=Array.isArray(c.value)?[...c.value]:[];c.value=[f[0]||"",C]}return o({clear:b,popoverRef:h}),(C,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",cl,[e.createVNode(ee,{ref_key:"popoverRef",ref:h,label:e.unref(y),"current-value":e.unref(c),mode:t.mode,width:typeof t.width=="number"&&e.unref(c).length?t.width-70:t.width,onClear:e.unref(b),layout:t.layout,class:e.normalizeClass(t.itemClass)},{default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:f[0]||(f[0]=d=>e.unref(g)("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(l)("filter.period"))+" ",1),e.unref(a)==="range"?(e.openBlock(),e.createBlock(P,{key:0})):e.createCommentVNode("",!0)])]),f[12]||(f[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:f[1]||(f[1]=d=>e.unref(g)("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(l)("filter.today"))+" ",1),e.unref(a)==="today"?(e.openBlock(),e.createBlock(P,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:f[2]||(f[2]=d=>e.unref(g)("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(l)("filter.week"))+" ",1),e.unref(a)==="week"?(e.openBlock(),e.createBlock(P,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:f[3]||(f[3]=d=>e.unref(g)("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(l)("filter.month"))+" ",1),e.unref(a)==="month"?(e.openBlock(),e.createBlock(P,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:f[4]||(f[4]=d=>e.unref(g)("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(l)("filter.quarter"))+" ",1),e.unref(a)==="quarter"?(e.openBlock(),e.createBlock(P,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",dl,[e.createElementVNode("button",{type:"button",onClick:f[5]||(f[5]=d=>e.unref(g)("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(l)("filter.year"))+" ",1),e.unref(a)==="year"?(e.openBlock(),e.createBlock(P,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",ml,[e.createElementVNode("button",{type:"button",onClick:f[6]||(f[6]=d=>e.unref(b)()),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(l)("filter.alltime"))+" ",1),e.unref(c)[0]?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(P,{key:0}))])])]),_:1},8,["label","current-value","mode","width","onClear","layout","class"]),e.unref(a)!==""&&e.unref(a)!=="range"&&e.unref(a)!=="last_7_days"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",fl,[e.createElementVNode("button",{type:"button",title:e.unref(l)("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:f[7]||(f[7]=(...d)=>e.unref(u)&&e.unref(u)(...d))},[e.createVNode(ol)],8,ul)]),e.createElementVNode("div",pl,[e.createElementVNode("button",{type:"button",title:e.unref(l)("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:f[8]||(f[8]=(...d)=>e.unref(r)&&e.unref(r)(...d))},[e.createVNode(sl)],8,yl)])],64)):e.createCommentVNode("",!0),e.unref(a)!==""&&e.unref(a)==="range"?(e.openBlock(),e.createElementBlock("div",gl,[e.createElementVNode("input",{type:"date",max:e.unref(c)[1],locale:"uk-UA",value:e.unref(c)[0],onInput:f[9]||(f[9]=d=>k(d.target.value)),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-sm focus:outline-blue-600",disabled:t.disabled},null,40,hl),e.createElementVNode("input",{type:"date",min:e.unref(c)[0],locale:"uk-UA",value:e.unref(c)[1],onInput:f[10]||(f[10]=d=>B(d.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:t.disabled},null,40,bl)])):e.createCommentVNode("",!0)]),(t.cleanable,e.createCommentVNode("",!0))],64))}}),kl=["disabled","onClick"],wl={key:0,class:"pt-2 px-2 border-t"},Vl=["disabled"],me={radio:qe,checkbox:ie,check:ie,text:it,range:pt,date:$t,select:_t,tag:Qt,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(t,{expose:o,emit:p}){const l=t,i=p,s=I(),h=K(),{innerValue:a,isSelected:c,selectItem:g,clear:r,labelKey:u,valueKey:y,allOptions:b}=J({...l,modelValue:l.modelValue??l.default??""},i),k=e.computed(()=>a.value!==void 0&&!(typeof a.value=="string"&&a.value===""));function B(f){return c(f)?["bg-blue-600 text-white"].filter(d=>typeof d=="string"&&d.trim().length>0).join(" "):["text-gray-700 hover:bg-gray-200 bg-gray-50 "].filter(d=>typeof d=="string"&&d.trim().length>0).join(" ")}function C(f){l.disabled||g(f)}return o({clear:r}),e.watch(()=>l.modelValue,f=>{f===void 0&&(a.value=void 0)}),(f,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:e.normalizeClass(["flex flex-wrap items-center gap-2",t.layout==="popover"?"p-2 max-h-[calc(100%-55px)] overflow-y-auto":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),A=>(e.openBlock(),e.createElementBlock("button",{key:A[e.unref(y)],type:"button",class:e.normalizeClass(["px-3 py-2 text-sm font-medium rounded-md transition-colors",B(A)]),disabled:t.disabled,onClick:F=>C(A)},e.toDisplayString(A[e.unref(u)]),11,kl))),128))],2),t.cleanable&&t.layout==="popover"?(e.openBlock(),e.createElementBlock("div",wl,[e.createElementVNode("button",{type:"button",disabled:!k.value,class:e.normalizeClass(e.unref(s)+" hover:bg-gray-100"),onClick:d[0]||(d[0]=(...A)=>e.unref(r)&&e.unref(r)(...A))},e.toDisplayString(e.unref(h)("filter.clear")),11,Vl)])):e.createCommentVNode("",!0)],64))}}),"date:inline":xl};function te(t,o){let p;switch(t.toLowerCase()){case"autocomplete":p="select";break;case"check":p="checkbox";break;default:p=t?.toString().toLowerCase()}return p==="date"&&o&&o==="inline"&&(p="date:inline"),{component:me[p]||me.text,type:p}}const Cl={style:{display:"inline-flex",margin:"0px",width:"100%"}},Bl={class:"relative w-full mb-2 p-4 bg-white rounded-md shadow-sm"},El={class:"block mb-3 text-sm font-medium text-gray-800 dark:text-neutral-200"},Nl={class:"flex items-center"},Sl={class:"text-sm font-medium max-w-[80%] text-gray-800 flex items-center gap-x-1"},$l={class:"filter-layout__body"},Dl=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(t,{expose:o,emit:p}){const l=t,i=p,s=e.ref(),h=e.computed(()=>te(l.type,l.layout)),a=e.computed({get:()=>l.modelValue,set:u=>i("update:modelValue",u)});function c(u){i("clear",u)}function g(u,y){i("change",{name:u,value:y}),l.modelValue!==void 0&&i("update:modelValue",y)}function r(){s.value?.clear?.(),i("clear",l.name)}return e.watch(()=>l.default,u=>{a.value=u}),e.watch(()=>l.modelValue,u=>{a.value=u}),o({filterRef:s}),(u,y)=>(e.openBlock(),e.createElementBlock("div",Cl,[e.createElementVNode("div",Bl,[e.createElementVNode("div",El,[e.createElementVNode("div",Nl,[e.createElementVNode("span",Sl,e.toDisplayString(t.label),1)]),typeof a.value=="string"&&a.value.trim()!==""||Array.isArray(a.value)&&a.value.length>0&&a.value.some(b=>b!==void 0)||a.value===null?(e.openBlock(),e.createBlock(xe,{key:0,onClick:r})):e.createCommentVNode("",!0)]),e.createElementVNode("div",$l,[h.value?.type!=="select"?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value?.component),e.mergeProps({key:0},l,{type:h.value?.type,class:l.itemClass,onChange:y[0]||(y[0]=b=>g(b.name,b.value)),onClear:y[1]||(y[1]=b=>c(b)),ref_key:"filterRef",ref:s}),null,16,["type","class"])):(e.openBlock(),e.createBlock(ee,{key:1,"current-value":a.value,label:t.label,mode:t.mode,onClear:r,fieldRef:s.value,width:void 0,disabled:t.disabled,layout:"vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value?.component),e.mergeProps({ref_key:"filterRef",ref:s},l,{type:h.value?.type,class:l.itemClass,onChange:y[2]||(y[2]=b=>g(b.name,b.value)),onClear:y[3]||(y[3]=b=>c(b))}),null,16,["type","class"]))]),_:1},8,["current-value","label","mode","fieldRef","disabled"]))])])]))}}),fe=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(t,{expose:o,emit:p}){const l=t,i=p,s=e.ref(),h=e.computed(()=>te(l.type,l.layout)),a=e.computed({get:()=>l.modelValue,set:r=>i("update:modelValue",r)});function c(r=l.name){i("clear",r)}function g(r,u){i("change",{name:r,value:u}),l.modelValue!==void 0&&i("update:modelValue",u)}return e.watch(()=>l.default,r=>{a.value=r}),e.watch(()=>l.modelValue,r=>{a.value=r}),o({filterRef:s}),(r,u)=>["text","date","button"].includes(t.type.toLocaleLowerCase())?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value?.component),e.mergeProps({key:0},l,{type:h.value?.type,class:t.itemClass,onChange:u[0]||(u[0]=y=>g(y.name,y.value)),onClear:u[1]||(u[1]=y=>c(y)),disabled:t.disabled,modelValue:a.value,"onUpdate:modelValue":u[2]||(u[2]=y=>a.value=y)}),null,16,["type","class","disabled","modelValue"])):(e.openBlock(),e.createBlock(ee,{key:1,"current-value":a.value,label:t.label,mode:t.mode,onClear:c,fieldRef:s.value,width:l.width,disabled:t.disabled,layout:"inline"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value?.component),e.mergeProps({ref_key:"filterRef",ref:s},l,{modelValue:a.value,"onUpdate:modelValue":u[3]||(u[3]=y=>a.value=y),type:h.value?.type,class:l.itemClass,onChange:u[4]||(u[4]=y=>g(y.name,y.value)),onClear:u[5]||(u[5]=y=>c(y))}),null,16,["modelValue","type","class"]))]),_:1},8,["current-value","label","mode","fieldRef","width","disabled"]))}}),Al=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(t,{expose:o,emit:p}){const l=t,i=p,s=e.ref(),h=e.computed(()=>te(l.type,l.layout)),a=e.computed({get:()=>l.modelValue,set:r=>i("update:modelValue",r)});function c(r){i("clear",r)}function g(r,u){i("change",{name:r,value:u}),l.modelValue!==void 0&&i("update:modelValue",u)}return e.watch(()=>l.default,r=>{a.value=r}),e.watch(()=>l.modelValue,r=>{a.value=r}),e.watch(()=>l,r=>{a.value=r}),o({filterRef:s}),(r,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value?.component),e.mergeProps(l,{type:h.value?.type,class:l.itemClass,modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=y=>a.value=y),onChange:u[1]||(u[1]=y=>g(y.name,y.value)),onClear:u[2]||(u[2]=y=>c(y)),ref_key:"filterRef",ref:s}),null,16,["type","class","modelValue"]))}}),_=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(t,{expose:o,emit:p}){const l=t,i=p,s=e.ref(),h=e.computed({get:()=>l.modelValue,set:r=>i("update:modelValue",r)});function a(r){i("clear",r)}function c(r,u){i("change",{name:r,value:u}),l.modelValue!==void 0&&i("update:modelValue",u)}e.watch(()=>l.default,r=>{h.value=r}),e.watch(()=>l.modelValue,r=>{h.value=r}),o({filterRef:s});function g(){switch(l.layout){case"inline":return fe;case"vertical":return Dl;case"popover":return Al;default:return fe}}return(r,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(g()),e.mergeProps(l,{onChange:u[0]||(u[0]=y=>c(y.name,y.value)),onClear:u[1]||(u[1]=y=>a(y)),modelValue:h.value,"onUpdate:modelValue":u[2]||(u[2]=y=>h.value=y)}),null,16,["modelValue"]))}});function H(t,o){const{slots:p}=t,l=f=>f?JSON.parse(JSON.stringify(e.toRaw(f))):{},i=e.ref(l(t.value));e.watch(()=>t.value,f=>{i.value=l(f)},{deep:!0,immediate:!0});const s=e.computed(()=>(e.toRaw(p?.default?.())??[]).flatMap(d=>Array.isArray(d.children)?d.children:[d]));function h(f){delete i.value[f],o("clear",{data:e.toRaw(i.value),name:f})}function a(f,d){d===void 0?h(f):i.value={...i.value,[f]:d},o("change",{data:e.toRaw(i.value),name:f,value:d})}const c=e.computed(()=>s.value.map(f=>{const d=f.props?.name;return e.cloneVNode(f,{...f.props,layout:t.view,showClean:!0,modelValue:i.value[d],"onUpdate:modelValue":A=>{a(d,A)},onClear:()=>h(d),class:[t.itemClass,f.props?.class],itemClass:[t.itemClass,f.props?.itemClass].filter(A=>typeof A=="string"&&A.trim().length>0).join(" ")||void 0})})),g=e.computed(()=>new Map(c.value.map(f=>{const d=f.props?.name;return d?[d,f]:null}).filter(f=>f!==null)));function r(f=!1){i.value={},f||o("clearAll",{data:e.toRaw(i.value),name:"ALL"})}const u=e.ref(""),y=e.computed(()=>t.schema?.value?Object.entries(i.value).filter(([f,d])=>t.schema&&!(f in t.schema.value)?!1:Array.isArray(d)?d.some(A=>A!==""&&A!==void 0):d!==""&&d!==void 0).length:0),b=e.ref();e.watch(u,async()=>{await e.nextTick(),b?.value?.filterRef?.inputTextRef&&b.value.filterRef.inputTextRef.focus()});const k=e.computed(()=>t.schema?.value?Object.fromEntries(Object.entries(t.schema?.value).slice(0,t.limit)):{}),B=e.computed(()=>{if(c.value.length===0)return[];let f=0;if(t.schema?.value){const d=Object.entries(t.schema.value).length;t.limit&&d<t.limit?f=t.limit-d:f=0}return c.value.slice(0,f)}),C=e.computed(()=>c.value.length===0?[]:t.view!=="inline"?c.value:c.value.slice(B.value.length));return{activeFilter:i,activeFilterCount:y,onFilterChange:a,clearFilter:h,clearAllFilters:r,limitedSchema:k,filtersSlot:c,limitedFiltersSlot:B,popoverFiltersSlot:C,vnodeMap:g,selectedFilter:u,filterRef:b}}const Fl=e.defineComponent({__name:"popover",emits:["open","close"],setup(t,{emit:o}){const p=e.ref(!1),l=e.ref(null),i=e.ref(null),s=e.ref(null),h=e.ref({top:"0px",left:"0px",position:"absolute"}),a=e.ref(!1);function c(){p.value=!p.value}function g(){const k=s.value,B=l.value;if(!k||!B)return;const{left:C,bottom:f}=k.getBoundingClientRect();requestAnimationFrame(()=>{if(!B)return;const{width:d}=B.getBoundingClientRect(),A=B.offsetWidth||d,F=window.innerWidth||document.documentElement.clientWidth,S=F-C;let m=C;A>S&&(m=F-A-18),m<18&&(m=18);const x=F-A-18;m>x&&(m=Math.max(18,x)),h.value={position:"fixed",top:`${f+18}px`,left:`${m}px`},a.value=!0})}const r=e.computed(()=>Object.entries(h.value).map(k=>k.join(":")).join(";"));function u(k){const B=k.target;!s.value?.contains(k.target)&&!l.value?.contains(k.target)&&!B.closest("[data-inside-popover]")&&(p.value=!1)}const y=e.ref(!1);e.onMounted(()=>{y.value=!0}),e.onMounted(()=>{s.value=i.value?.querySelector("[data-popover-trigger]")||null,s.value?.addEventListener("click",c),document.addEventListener("click",u),window.addEventListener("resize",g),window.addEventListener("scroll",g,!0)}),e.onBeforeUnmount(()=>{s.value?.removeEventListener("click",c),document.removeEventListener("click",u),window.removeEventListener("resize",g),window.removeEventListener("scroll",g,!0)});const b=o;return e.watch(p,async k=>{k?(a.value=!1,b("open"),await e.nextTick(),requestAnimationFrame(()=>{g()})):(b("close"),a.value=!1)}),(k,B)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"wrapperRef",ref:i},[e.renderSlot(k.$slots,"trigger"),y.value?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:"body"},[e.withDirectives(e.createElementVNode("div",{ref_key:"popoverRef",ref:l,class:"fixed z-[50] w-[calc(100vw-32px)] md:w-[600px] rounded-md border bg-white shadow-md transition-opacity duration-0",style:e.normalizeStyle([r.value,{visibility:a.value?"visible":"hidden",opacity:a.value?1:0}])},[e.renderSlot(k.$slots,"default")],4),[[e.vShow,p.value]])])):e.createCommentVNode("",!0)],512))}}),jl={},Ml={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 Rl(t,o){return e.openBlock(),e.createElementBlock("svg",Ml,[...o[0]||(o[0]=[e.createElementVNode("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"},null,-1)])])}const ue=O(jl,[["render",Rl]]),zl={class:"flex items-center gap-2 overflow-hidden"},Kl={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"},Ll={class:"flex max-h-[400px] md:max-h-[400px]"},Tl={class:"w-[150px] sm:w-[180px] md:w-64 border-r border-gray-200 overflow-y-auto"},Ol={class:"p-2 md:p-4 border-b"},_l={class:"text-xs md:text-sm text-gray-600"},Pl={class:"p-1 md:p-2"},Il=["onClick"],Ul={class:"flex items-center gap-1.5 md:gap-2"},ql={class:"text-xs md:text-sm font-medium line-clamp-3"},Wl={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"},Yl=["onClick"],Hl={class:"flex items-center gap-1.5 md:gap-2"},Ql={class:"text-xs md:text-sm font-medium truncate"},Gl={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"},Jl={key:0,class:"p-1 md:p-2 border-t"},Xl={class:"flex-1 min-h-[250px] md:min-h-[300px] overflow-y-auto"},Zl={key:0,class:"flex items-center justify-center h-full text-gray-500"},vl={class:"text-xs md:text-sm"},pe=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:{},teleportActive:{}},emits:["change","clear","clearAll"],setup(t,{expose:o,emit:p}){const l=K(),i=t,s=ne(i.mode),h=e.useSlots(),a=p,c=e.ref({}),g=e.computed(()=>c?.value?i.view!=="inline"?c?.value:Object.fromEntries(Object.entries(c?.value).slice(i.limit)):{}),{activeFilter:r,activeFilterCount:u,onFilterChange:y,clearFilter:b,clearAllFilters:k,popoverFiltersSlot:B,selectedFilter:C,filterRef:f}=H({...i,schema:c,slots:h},a),d=e.computed(()=>i.badgeCount??u.value);function A(m){return Array.isArray(m)?m.filter(x=>x!=null&&x!=="").length:m&&typeof m=="object"?Object.values(m).filter(x=>x!=null&&x!=="").length:m===null||m!==void 0&&m!==""?1:0}function F(m){return r.value?A(r.value[m]):0}function S(){if(g.value){const[m]=Object.keys(g.value);C.value=m}else B.value.length>0?C.value=B.value[0].props.name:C.value=""}return e.watch(()=>i.schema,m=>{c.value=m??{}},{deep:!0,immediate:!0}),o({clearFilter:b,clearAllFilters:k}),(m,x)=>(e.openBlock(),e.createBlock(Fl,{onOpen:S,onClose:x[5]||(x[5]=E=>C.value="")},{trigger:e.withCtx(()=>[e.createElementVNode("button",{"data-popover-trigger":"","aria-haspopup":"dialog","aria-expanded":"false",class:e.normalizeClass([t.itemClass,e.unref(s),"flex items-center justify-between gap-2",d.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",zl,[e.createVNode(ue,{class:"h-4 w-4"}),x[6]||(x[6]=e.createElementVNode("span",{class:"text-sm font-medium"},"Фільтр",-1))]),d.value>0?(e.openBlock(),e.createElementBlock("span",Kl,e.toDisplayString(d.value),1)):e.createCommentVNode("",!0)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Ll,[e.createElementVNode("div",Tl,[e.createElementVNode("div",Ol,[e.createElementVNode("p",_l,e.toDisplayString(e.unref(l)("filter.selectFieldHelp")),1)]),e.createElementVNode("div",Pl,[t.schema?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(g.value),([E,M])=>(e.openBlock(),e.createElementBlock("button",{key:E,onClick:()=>{C.value=E},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(C)===E?"bg-blue-50 text-blue-700 border-l-2 border-blue-500":"text-neutral-700"])},[e.createElementVNode("div",Ul,[e.createElementVNode("span",ql,e.toDisplayString(M.label),1)]),F(E)>0?(e.openBlock(),e.createElementBlock("div",Wl,e.toDisplayString(F(E)),1)):e.createCommentVNode("",!0)],10,Il))),128)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(B),(E,M)=>(e.openBlock(),e.createElementBlock("button",{key:"slot-"+M,onClick:n=>C.value=E.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(C)===E.props.name?"bg-blue-50 text-blue-700 border-l-2 border-blue-500":"text-neutral-700"])},[e.createElementVNode("div",Hl,[e.createElementVNode("span",Ql,e.toDisplayString(E.props.label),1)]),F(E.props.name)>0?(e.openBlock(),e.createElementBlock("div",Gl,e.toDisplayString(F(E.props.name)),1)):e.createCommentVNode("",!0)],10,Yl))),128))]),e.unref(u)>0?(e.openBlock(),e.createElementBlock("div",Jl,[e.createElementVNode("button",{class:e.normalizeClass([t.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:x[0]||(x[0]=E=>e.unref(k)()),"data-inside-popover":""}," Очистити всі ",2)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Xl,[e.unref(C)===""?(e.openBlock(),e.createElementBlock("div",Zl,[e.createElementVNode("p",vl,e.toDisplayString(e.unref(l)("filter.selectFieldHelp")),1)])):e.createCommentVNode("",!0),e.unref(C)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[g.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(g.value),([E,M])=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(C)===E?(e.openBlock(),e.createBlock(_,e.mergeProps({key:E,layout:"popover",ref_for:!0,ref_key:"filterRef",ref:f},{ref_for:!0},M,{class:[t.itemClass,M?.class],"item-class":[t.itemClass,M?.itemClass].filter(Boolean).join(" ")||void 0,onChange:x[1]||(x[1]=n=>e.unref(y)(n.name,n.value)),onClear:x[2]||(x[2]=n=>{e.unref(b)(n),e.unref(y)(n,void 0)}),modelValue:e.unref(r)[E],"onUpdate:modelValue":n=>e.unref(r)[E]=n,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(B),(E,M)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:"slot-"+M},[e.unref(C)===E.props.name?(e.openBlock(),e.createBlock(_,e.mergeProps({key:0,layout:"popover"},{ref_for:!0},E.props,{ref_for:!0,ref_key:"filterRef",ref:f,class:[t.itemClass,E.props?.class],"item-class":[t.itemClass,E.props?.itemClass].filter(Boolean).join(" ")||void 0,onChange:x[3]||(x[3]=n=>e.unref(y)(n.name,n.value)),onClear:x[4]||(x[4]=n=>{e.unref(b)(n),e.unref(y)(n,void 0)}),modelValue:e.unref(r)[E.props.name],"onUpdate:modelValue":n=>e.unref(r)[E.props.name]=n,cleanable:!0}),null,16,["class","item-class","modelValue","onUpdate:modelValue"])):e.createCommentVNode("",!0)],64))),128))],64)):e.createCommentVNode("",!0)])])]),_:1}))}}),en={class:"flex gap-1 items-center flex-wrap"},ye=e.defineComponent({__name:"inline-filter-layout",props:{schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:3},width:{},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{},teleportActive:{}},emits:["change","clear","clearAll"],setup(t,{expose:o,emit:p}){const l=K(),i=t,s=p,h=e.useSlots(),a=e.ref({}),c=e.computed(()=>Object.keys(i.schema).length>i.limit),{activeFilter:g,activeFilterCount:r,onFilterChange:u,clearFilter:y,clearAllFilters:b,limitedSchema:k,filtersSlot:B,limitedFiltersSlot:C}=H({...i,schema:a,slots:h},s);function f(x){return Array.isArray(x)?x.some(E=>E!==""&&E!==void 0&&E!==null):x===null?!0:x&&typeof x=="object"?Object.values(x).some(E=>E!==""&&E!==void 0&&E!==null):x!==""&&x!==void 0}const d=e.computed(()=>{const x=Object.keys(k.value??{}),E=C.value.map(M=>M.props?.name).filter(M=>typeof M=="string");return new Set([...x,...E])}),A=e.computed(()=>Object.entries(g.value??{}).filter(([x,E])=>d.value.has(x)&&f(E)).length),F=e.computed(()=>{const x=r.value??0,E=A.value??0;return Math.max(x-E,0)}),S=e.ref();function m(){S.value&&S.value.clearAllFilters(!0),b()}return e.watch(()=>i.schema,x=>{a.value=x},{deep:!0,immediate:!0}),o({clearFilter:y,clearAllFilters:b}),(x,E)=>(e.openBlock(),e.createElementBlock("div",en,[t.schema?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(e.unref(k)),([M,n])=>(e.openBlock(),e.createBlock(_,e.mergeProps({key:M,mode:t.mode,width:t.width?t.width:n?.width},{ref_for:!0},n,{class:[t.itemClass,n?.class],"item-class":[t.itemClass,n?.itemClass].filter(Boolean).join(" ")||void 0,onChange:E[0]||(E[0]=V=>e.unref(u)(V.name,V.value)),onClear:e.unref(y),layout:"inline",cleanable:!0,modelValue:e.unref(g)[M],"onUpdate:modelValue":V=>e.unref(g)[M]=V}),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(C),(M,n)=>(e.openBlock(),e.createBlock(_,e.mergeProps({key:"slot-"+n,layout:"inline"},{ref_for:!0},M.props,{class:[t.itemClass,M.props?.class],"item-class":[t.itemClass,M.props?.itemClass].filter(Boolean).join(" ")||void 0,onChange:E[1]||(E[1]=V=>e.unref(u)(V.name,V.value)),onClear:E[2]||(E[2]=V=>{e.unref(y)(V),e.unref(u)(V,void 0)}),cleanable:!0,modelValue:e.unref(g)[M.props.name],"onUpdate:modelValue":V=>e.unref(g)[M.props.name]=V}),null,16,["class","item-class","modelValue","onUpdate:modelValue"]))),128)),c.value?(e.openBlock(),e.createBlock(pe,e.mergeProps({key:1},i,{schema:t.schema,limit:t.limit,onChange:E[3]||(E[3]=M=>e.unref(u)(M.name,M.value)),onClearAll:E[4]||(E[4]=M=>e.unref(b)()),onClear:E[5]||(E[5]=M=>e.unref(y)(M.name)),mode:t.mode,ref_key:"popoverRef",ref:S,cleanable:!0,"badge-count":F.value}),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(B),(M,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(M),e.mergeProps({key:"slot-"+n,layout:"popover"},{ref_for:!0},M.props,{cleanable:!0}),null,16))),128))]),_:1},16,["schema","limit","mode","badge-count"])):e.createCommentVNode("",!0),e.unref(r)>0?(e.openBlock(),e.createElementBlock("button",{key:2,onClick:m,class:e.normalizeClass([t.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(l)("filter.clear")),3)):e.createCommentVNode("",!0)]))}}),tn={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"},ln={class:"flex items-center vst-filters vsTailwind flex-col w-full"},nn=e.defineComponent({__name:"vertical-filter-layout",props:{schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:3},width:{},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{},teleportActive:{}},emits:["change","clear","clearAll"],setup(t,{expose:o,emit:p}){const l=t,i=p,s=e.useSlots(),{activeFilter:h,activeFilterCount:a,onFilterChange:c,clearFilter:g,clearAllFilters:r,filtersSlot:u}=H({...l,slots:s},i);return o({clearFilter:g,clearAllFilters:r}),(y,b)=>t.view==="vertical"?(e.openBlock(),e.createElementBlock("div",tn,[e.createElementVNode("div",ln,[e.unref(a)>0?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:b[0]||(b[0]=k=>e.unref(r)()),"data-popover-trigger":"","aria-haspopup":"dialog","aria-expanded":"false",class:e.normalizeClass([t.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),t.schema?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(Object.entries(t.schema),([k,B])=>(e.openBlock(),e.createBlock(_,e.mergeProps({layout:"vertical"},{ref_for:!0},B,{class:[t.itemClass,B?.class],"item-class":[t.itemClass,B?.itemClass].filter(Boolean).join(" ")||void 0,onChange:b[1]||(b[1]=C=>e.unref(c)(C.name,C.value)),onClear:b[2]||(b[2]=C=>{e.unref(g)(C),e.unref(c)(C,void 0)}),modelValue:e.unref(h)[k],"onUpdate:modelValue":C=>e.unref(h)[k]=C,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),(k,B)=>(e.openBlock(),e.createBlock(_,e.mergeProps({key:"slot-"+B,layout:"vertical"},{ref_for:!0},k.props,{class:[t.itemClass,k.props?.class],"item-class":[t.itemClass,k.props?.itemClass].filter(Boolean).join(" ")||void 0,onChange:b[3]||(b[3]=C=>e.unref(c)(C.name,C.value)),onClear:b[4]||(b[4]=C=>{e.unref(g)(C),e.unref(c)(C,void 0)}),modelValue:e.unref(h)[k.props.name],"onUpdate:modelValue":C=>e.unref(h)[k.props.name]=C,showClean:!0}),null,16,["class","item-class","modelValue","onUpdate:modelValue"]))),128))])])):e.createCommentVNode("",!0)}}),on=["onKeydown"],an=["disabled"],rn={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"},sn={class:"rounded-2xl border border-slate-300/35 bg-white/95 p-4 shadow-2xl backdrop-blur-sm"},cn={class:"mb-3 flex items-center justify-between"},dn={class:"text-[15px] font-semibold text-slate-800"},mn={"aria-hidden":"true"},fn={class:"flex max-h-80 flex-col gap-1 overflow-y-auto"},un={key:0,class:"mt-3 flex justify-end"},pn=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:{},teleportActive:{}},emits:["change","clear","clearAll"],setup(t,{emit:o}){const p=K(),l=t,i=o,s=e.ref({}),h=e.useSlots(),{activeFilter:a,activeFilterCount:c,onFilterChange:g,clearFilter:r,clearAllFilters:u,filtersSlot:y}=H({...l,schema:s.value,slots:h},i),b=e.ref(null),k=e.ref(null),B=e.reactive({open:!1,top:0,left:0}),C=e.computed(()=>B.open),f=e.computed(()=>!!l.disabled),d=e.computed(()=>s.value||{}),A=e.computed(()=>l.title??"Фільтр"),F=e.computed(()=>!!h.trigger),S=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",f.value?"cursor-not-allowed opacity-60":"cursor-pointer"]),m=e.computed(()=>B.open?{position:"absolute",top:`${B.top}px`,left:`${B.left}px`,transform:"translateX(-50%)",zIndex:1e3}:{display:"none"});function x(){B.open=!1}function E(){if(!b.value)return;const $=b.value.getBoundingClientRect();B.top=$.bottom+window.scrollY+8,B.left=$.left+$.width/2+window.scrollX}function M(){B.open=!B.open,B.open&&e.nextTick(E)}function n(){f.value||M()}function V(){B.open&&E()}function w(){u()}return e.onMounted(()=>{window.addEventListener("resize",V),window.addEventListener("scroll",V,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("resize",V),window.removeEventListener("scroll",V,!0)}),e.watch(()=>l.schema,$=>{if(!$){s.value={};return}if(Array.isArray($)){const D=$.filter(j=>j&&(j.name||j.id)).map(j=>{const N=j.name||j.id;return[N,{...j,name:N}]});s.value=Object.fromEntries(D);return}s.value=$},{deep:!0,immediate:!0}),e.watch(()=>l.disabled,$=>{$&&x()}),($,D)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex",ref_key:"anchor",ref:b},[F.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["inline-flex",f.value?"cursor-not-allowed opacity-60 pointer-events-none":"cursor-pointer"]),role:"button",tabindex:"0","data-popover-trigger":"",onClick:e.withModifiers(n,["prevent","stop"]),onKeydown:[e.withKeys(e.withModifiers(n,["prevent","stop"]),["enter"]),e.withKeys(e.withModifiers(n,["prevent","stop"]),["space"])]},[e.renderSlot($.$slots,"trigger",{toggle:n,open:C.value,disabled:f.value,activeCount:e.unref(c)})],42,on)):(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(S.value),type:"button",disabled:f.value,onClick:e.withModifiers(n,["prevent","stop"]),"data-popover-trigger":""},[e.createVNode(ue,{class:"h-4 w-4"}),e.unref(c)>0?(e.openBlock(),e.createElementBlock("div",rn,e.toDisplayString(e.unref(c)),1)):e.createCommentVNode("",!0)],10,an)),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[C.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["absolute",typeof t.width=="number"?`min-w-[${t.width+32+(Object.keys(d.value).length>7?20:0)}px]`:"min-w-[268px] "]),style:e.normalizeStyle(m.value),ref_key:"panel",ref:k,onClick:D[4]||(D[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",sn,[e.createElementVNode("div",cn,[e.createElementVNode("h3",dn,e.toDisplayString(A.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:x},[e.createElementVNode("span",mn,[e.createVNode(v,{class:"h-4 w-4"})]),D[5]||(D[5]=e.createElementVNode("span",{class:"sr-only"},"Закрити",-1))])]),e.createElementVNode("div",fn,[Object.keys(d.value).length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(d.value),([j,N])=>(e.openBlock(),e.createBlock(_,e.mergeProps({key:j},{ref_for:!0},{...N,layout:"inline"},{width:t.width?t.width:N?.width,class:[t.itemClass,N?.class],"item-class":[t.itemClass,N?.itemClass].filter(Boolean).join(" ")||void 0,cleanable:!0,modelValue:e.unref(a)[j],"onUpdate:modelValue":R=>e.unref(a)[j]=R,onChange:D[0]||(D[0]=R=>e.unref(g)(R.name,R.value)),onClear:D[1]||(D[1]=R=>{e.unref(r)(R),e.unref(g)(R,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(y),(j,N)=>(e.openBlock(),e.createBlock(_,e.mergeProps({key:"slot-"+N,ref_for:!0},{...j.props,layout:"inline"},{class:[t.itemClass,j.props?.class],"item-class":[t.itemClass,j.props?.itemClass].filter(Boolean).join(" ")||void 0,cleanable:!0,modelValue:e.unref(a)[j.props.name],"onUpdate:modelValue":R=>e.unref(a)[j.props.name]=R,onChange:D[2]||(D[2]=R=>e.unref(g)(R.name,R.value)),onClear:D[3]||(D[3]=R=>{e.unref(r)(R),e.unref(g)(R,void 0)})}),null,16,["class","item-class","modelValue","onUpdate:modelValue"]))),128))]),e.unref(c)>0?(e.openBlock(),e.createElementBlock("div",un,[e.createElementVNode("button",{type:"button",class:e.normalizeClass([t.itemClass,"text-sm font-semibold text-blue-600 transition-colors hover:text-blue-700 focus:outline-none"]),onClick:w},e.toDisplayString(e.unref(p)("filter.clear")),3)])):e.createCommentVNode("",!0)])],6)):e.createCommentVNode("",!0)]))],512))}}),yn={class:"mb-6 flex flex-wrap gap-2"},gn=["onClick"],hn={class:"mr-2 flex items-center gap-1"},bn={class:"font-semibold"},xn={class:"text-xs text-gray-500"},Q=e.defineComponent({__name:"filter",props:{schema:{},view:{default:"inline"},value:{},history:{type:Boolean},mode:{},limit:{default:3},width:{},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{},teleportActive:{}},emits:["change","clear","clearAll"],setup(t,{expose:o,emit:p}){const l=t,i=e.useAttrs(),s=e.computed(()=>({...l,...i})),h=e.ref(r(l.value??{}));e.watch(()=>l.value,async n=>{h.value=r(n??{}),(!n||Object.keys(n).length===0)&&(await e.nextTick(),c.value?.clearAllFilters?.(!0))},{deep:!0,immediate:!0});const a=p,c=e.ref(),g=e.useSlots();function r(n){if(Array.isArray(n))return n.map(V=>r(V));if(n!==null&&typeof n=="object"){const V=e.toRaw(n),w={};for(const $ in V)w[$]=r(V[$]);return w}return n}function u(n,V){V!==void 0?h.value={...h.value,[n]:V}:delete h.value[n],a("change",{data:r(h.value),name:n,value:r(V)})}function y(n){delete h.value[n],a("clear",{data:r(h.value),name:n}),a("change",{data:r(h.value),name:n,value:null})}function b(){h.value={},a("clear",{data:r(h.value),name:"ALL"}),a("change",{data:r(h.value),name:"ALL",value:null})}const k=e.ref({}),B=e.computed(()=>l.teleportActive);function C(){switch(l.view){case"inline":return ye;case"vertical":return nn;case"popover":return pe;case"popover-inline":return pn;default:return ye}}e.watch(()=>l.schema,n=>{if(!n){k.value={};return}if(Array.isArray(n)&&!n.length){k.value={};return}Array.isArray(n)?k.value=n.filter(V=>V.type).reduce((V,w)=>(Object.assign(w,{name:w.id||w.name,type:{datepicker:"date"}[w.type.toLowerCase()]||w.type.toLowerCase(),label:w.label||w.ua}),V[w.name]=w,w.data&&!w.api&&!w.options&&Object.assign(w,{api:`/api/suggest/${w.data}`}),V),{}):(Object.entries(n).forEach(([V,w])=>{Object.assign(w,{name:V||w.name||w.id,type:w.type.toLowerCase()})}),k.value={...n})},{immediate:!0,deep:!0});function f(n){c.value.clearFilter(n),y(n)}function d(){c.value.clearAllFilters(),b()}const A=e.computed(()=>Object.entries(h.value).filter(([,n])=>n==null?!1:Array.isArray(n)?n.length>0:typeof n=="string"?n.trim().length>0:!0).map(([n,V])=>{const w=k.value[n],$=w?.label||w?.title||n,D=S(w,V);return{key:n,label:$,value:D}}));function F(n){f(n)}function S(n,V){if(!n||V===void 0||V===null)return"";const w=m(V);if(!w.length)return"";const $=x(n);return w.map(D=>$.get(D)??D).filter(Boolean).join(", ")}function m(n){return Array.isArray(n)?n.map(V=>V?.toString?.()??"").filter(Boolean):typeof n=="string"?n.split(",").map(V=>V.trim()).filter(Boolean):[]}function x(n){const V=new Map,w=n.valueKey||"id",$=n.labelKey||"text";return(n.options??[]).forEach(D=>{const j=E(D,w),N=M(D,$);j&&V.set(j,N||j)}),V}function E(n,V){return n?(n[V]??n.id??n.value??n.key)?.toString?.()??"":""}function M(n,V){return n?(n[V]??n.text??n.label??n.value??n.id)?.toString?.()??"":""}return e.watch(()=>h.value,n=>{if(l.history){const V=new URL(window.location.href),w=new URLSearchParams(window.location.search);Object.keys(n).length>0?w.set("filter",Object.entries(n).filter(([,$])=>$).map(([$,D])=>`${$}=${D}`).join("|")):w.delete("filter"),V.search=decodeURI(w.toString()),window.history.pushState({},"",V)}}),o({clearAllFilters:d,clearFilter:f}),(n,V)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(C()),e.mergeProps(s.value,{schema:k.value,onChange:V[0]||(V[0]=w=>u(w.name,w.value)),onClear:V[1]||(V[1]=w=>y(w.name)),onClearAll:b,ref_key:"filterRef",ref:c}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:2},[e.unref(g).trigger?{name:"trigger",fn:e.withCtx(w=>[e.renderSlot(n.$slots,"trigger",e.normalizeProps(e.guardReactiveProps(w)))]),key:"0"}:void 0]),1040,["schema"])),B.value&&A.value.length?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:B.value},[e.createElementVNode("div",yn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,w=>(e.openBlock(),e.createElementBlock("button",{key:w.key,type:"button",class:"ga1u8 zw1wr sr4j9 flex items-center zu875 kew0r w9dei w4xo0 kghwt wz1vo focus:outline-hidden gugmw dark:bg-emerald-500 dark:hover:bg-emerald-600 dark:focus:bg-emerald-600 bg-white border border-gray-200 px-3 py-1 rounded-full text-sm text-gray-700",onClick:$=>F(w.key)},[e.createElementVNode("span",hn,[e.createElementVNode("span",bn,e.toDisplayString(w.label),1),e.createElementVNode("span",xn,"· "+e.toDisplayString(w.value),1)]),V[2]||(V[2]=e.createElementVNode("span",{class:"g424j flex flex-col jkwm1 items-center b9gop aqyoh ad7q2 kghwt t4363 q7nhl dark:text-emerald-500"},[e.createElementVNode("svg",{class:"e731n u28hb",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("path",{d:"M18 6 6 18"}),e.createElementVNode("path",{d:"m6 6 12 12"})])],-1))],8,gn))),128))])],8,["to"])):e.createCommentVNode("",!0)],64))}});Q.install=function(o){o.component("Filter",Q),o.component("FilterField",_)},T.Filter=Q,T.FilterField=_,T.default=Q,Object.defineProperties(T,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
2
+ text-gray-800 bg-white dark:text-neutral-300 dark:bg-neutral-800 dark:border-neutral-600`;return t?.size==="sm"?`${p}h-[32px]`:`${p}h-[38px]`})}function I(){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 De(){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 ne(t){return t==="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":t==="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 oe={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 ae(t){const o=t.split(".")[1],p=typeof window<"u"&&window.localStorage?localStorage.locale:null;return(oe[p||navigator.language]||oe.uk)[o]}function K(){const t=e.getCurrentInstance();if(!t.appContext.config.globalProperties.$i18n)return ae;const o=t.appContext.config.globalProperties.$t;return p=>{const l=o(p);return l===p?ae(p):l}}const Ae={},Fe={class:"w-48 mx-auto",viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function je(t,o){return e.openBlock(),e.createElementBlock("svg",Fe,[...o[0]||(o[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 X=O(Ae,[["render",je]]),Me={},Re={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 ze(t,o){return e.openBlock(),e.createElementBlock("svg",Re,[...o[0]||(o[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const Y=O(Me,[["render",ze]]),Ke={},Le={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 Te(t,o){return e.openBlock(),e.createElementBlock("svg",Le,[...o[0]||(o[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const Z=O(Ke,[["render",Te]]),Oe={key:0,class:"w-full"},_e={class:"flex flex-col items-center justify-center p-5 text-center"},Pe={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},Ie={key:1,class:"py-2 px-2"},Ue=["disabled"],qe=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(t,{expose:o,emit:p}){const l=t,i=e.ref(null),s=I(),h=K(),a=p,{innerValue:c,filteredOptions:g,isSelected:r,selectItem:u,clear:y,toggleShowAll:b,isReqProc:k,showAll:B,isEnableShowAll:C,labelKey:f,valueKey:d,allOptions:A,loadData:F}=J({...l,modelValue:l.modelValue??l.default??""},a);return e.onMounted(()=>{l.api&&F()}),o({clear:y,inputTextRef:i}),e.watch(()=>l.modelValue,S=>{S===void 0&&(c.value=void 0)}),(S,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.layout==="popover"?"flex flex-col max-h-full":"flex flex-col vs-filter-checkbox"])},[e.createElementVNode("div",{class:e.normalizeClass([t.layout==="popover"?"flex-1 overflow-y-auto p-2":"",t.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),x=>(e.openBlock(),e.createBlock(G,{layout:t.layout,key:x[e.unref(d)],count:x.count,label:x[e.unref(f)],color:x.color,type:"radio",value:x[e.unref(d)],"is-selected":e.unref(r)(x),onItemClick:E=>e.unref(u)(x)},null,8,["layout","count","label","color","value","is-selected","onItemClick"]))),128))],2),t.type==="select"&&e.unref(g).length===0&&!e.unref(k)?(e.openBlock(),e.createElementBlock("div",Oe,[e.createElementVNode("div",_e,[e.createVNode(X),m[4]||(m[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),t.layout!=="popover"&&t.type!=="select"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[!e.unref(B)&&e.unref(C)?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:m[0]||(m[0]=(...x)=>e.unref(b)&&e.unref(b)(...x)),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"},[m[5]||(m[5]=e.createTextVNode(" Показати більше ",-1)),e.createVNode(Y)])):e.createCommentVNode("",!0),e.unref(B)?(e.openBlock(),e.createElementBlock("div",{key:1,onClick:m[1]||(m[1]=(...x)=>e.unref(b)&&e.unref(b)(...x)),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"},[m[6]||(m[6]=e.createTextVNode(" Показати менше ",-1)),e.createVNode(Z)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),t.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.layout==="inline"?(e.openBlock(),e.createElementBlock("div",Pe,[e.createTextVNode(e.toDisplayString(e.unref(c)||e.unref(c)===null?1:0)+" з "+e.toDisplayString(e.unref(A).length)+" обрано ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:m[2]||(m[2]=(...x)=>e.unref(y)&&e.unref(y)(...x))}," Очистити ",512),[[e.vShow,e.unref(c)!==""&&e.unref(c)!==void 0]])])):e.createCommentVNode("",!0),t.layout==="popover"?(e.openBlock(),e.createElementBlock("div",Ie,[e.createElementVNode("button",{type:"button",disabled:!(e.unref(c)!==""&&e.unref(c)!==void 0),class:e.normalizeClass(e.unref(s)+" hover:bg-gray-100"),onClick:m[3]||(m[3]=(...x)=>e.unref(y)&&e.unref(y)(...x))},e.toDisplayString(e.unref(h)("filter.clear")),11,Ue)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}});function re(t,o){const{api:p,options:l=[],limit:i=20,dataKey:s="data",data:h}=t,a=s??h??"data";function c(n){return Array.isArray(n)?n:n?[n]:[]}const g=e.ref(c(t.modelValue)),r=e.ref(""),u=e.ref(!1),y=e.ref([]),b=e.ref("id"),k=e.ref("text"),B=e.ref(!1),C=e.ref(t.layout!=="popover"&&l.length>i);function f(n){const V=n.find(Boolean)??{},w=["id","value","code","key"].find(D=>D in V)??"id",$=["text","label","name","title"].find(D=>D in V)??"text";return{autoValueKey:w,autoLabelKey:$}}function d(n){if(n.length>0){const w=f(n);b.value=w.autoValueKey,k.value=w.autoLabelKey}const V=[...n].sort((w,$)=>t.sort==="count"?$.count&&w.count?$.count-w.count:0:t.sort==="name"?String(w[k.value]).localeCompare(String($[k.value])):0);y.value=V}l.length>0&&d(l);const A=e.computed(()=>{const n=y.value;return t.layout==="popover"||B.value?n:n.slice(0,i)});async function F(){if(p){u.value=!0;try{const n=new URL(p,window.location.origin);n.searchParams.set("json","1"),n.searchParams.set("limit",i.toString());const V=await fetch(n.toString());if(!V.ok){U.notify({type:"error",title:"Error",message:"Failed to fetch remote options"}),y.value=[];return}const w=await V.json();if(!w[a]){U.notify({type:"error",title:"Error",message:w}),y.value=[];return}d(w[a])}catch(n){console.error("Failed to fetch remote options:",n)}finally{u.value=!1}}}function S(){p&&y.value.length===0&&F()}e.watch(()=>t.modelValue,n=>{g.value=c(n)},{immediate:!0}),p||d(l);function m(n){return g.value&&g.value.includes(n[b.value])}function x(n){const V=g.value.includes(n[b.value]);g.value=V?g.value.filter(w=>w!==n[b.value]):[...g.value,n[b.value]],o("update:modelValue",g.value),o("change",{name:t.name,value:g.value})}function E(){g.value=[],o("update:modelValue",g.value),o("clear",t.name)}function M(){B.value=!B.value}return{innerValue:g,searchTerm:r,filteredOptions:A,isSelected:m,selectItem:x,clear:E,toggleShowAll:M,isReqProc:u,showAll:B,isEnableShowAll:C,labelKey:k,valueKey:b,allOptions:y,loadData:S}}const We={key:0,class:"w-full"},Ye={class:"flex flex-col items-center justify-center p-5 text-center"},He={class:"max-w-sm mx-auto mt-6"},Qe={class:"font-medium text-gray-800 dark:text-neutral-200"},Ge={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},Je={key:1,class:"py-2 px-2 border-t"},Xe=["disabled"],Ze={class:"text-xs text-gray-500"},ie=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(t,{expose:o,emit:p}){const l=K(),i=I(),s=t,h=p,{innerValue:a,filteredOptions:c,isSelected:g,selectItem:r,clear:u,toggleShowAll:y,isReqProc:b,showAll:k,isEnableShowAll:B,labelKey:C,valueKey:f,allOptions:d,loadData:A}=re({...s,modelValue:s.modelValue},h);return e.onMounted(()=>{s.api&&A()}),e.watch(()=>s.modelValue,F=>{F===void 0&&(a.value=[])}),o({clear:u}),(F,S)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.layout==="popover"?"flex flex-col max-h-full":"flex flex-col vs-filter-checkbox space-y-0.5"])},[e.createElementVNode("div",{class:e.normalizeClass([t.layout==="popover"?"flex-1 overflow-y-auto p-2":"",t.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c),m=>(e.openBlock(),e.createBlock(G,{layout:t.layout,count:m.count,label:m[e.unref(C)],color:m.color,type:"checkbox",value:m[e.unref(f)],"is-selected":e.unref(g)(m),onItemClick:x=>e.unref(r)(m)},null,8,["layout","count","label","color","value","is-selected","onItemClick"]))),256))],2),t.type==="select"&&e.unref(c).length===0&&!e.unref(b)?(e.openBlock(),e.createElementBlock("div",We,[e.createElementVNode("div",Ye,[e.createVNode(X),e.createElementVNode("div",He,[e.createElementVNode("p",Qe,e.toDisplayString(e.unref(l)("filter.notfound")),1),S[4]||(S[4]=e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"},null,-1))])])])):e.createCommentVNode("",!0),t.layout!=="popover"&&t.type!=="select"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[!e.unref(k)&&e.unref(B)?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:S[0]||(S[0]=(...m)=>e.unref(y)&&e.unref(y)(...m)),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(l)("filter.more"))+" ",1),e.createVNode(Y)])):e.createCommentVNode("",!0),e.unref(k)?(e.openBlock(),e.createElementBlock("div",{key:1,onClick:S[1]||(S[1]=(...m)=>e.unref(y)&&e.unref(y)(...m)),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(l)("filter.less"))+" ",1),e.createVNode(Z)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),t.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.layout==="inline"?(e.openBlock(),e.createElementBlock("div",Ge,[e.createTextVNode(e.toDisplayString(e.unref(a).length)+" / "+e.toDisplayString(e.unref(d).length)+" "+e.toDisplayString(e.unref(l)("filter.selected"))+" ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:S[2]||(S[2]=(...m)=>e.unref(u)&&e.unref(u)(...m))},e.toDisplayString(e.unref(l)("filter.clear")),513),[[e.vShow,e.unref(a).length!==0]])])):e.createCommentVNode("",!0),t.layout==="popover"?(e.openBlock(),e.createElementBlock("div",Je,[e.createElementVNode("button",{type:"button",disabled:e.unref(a).length===0,class:e.normalizeClass(e.unref(i)+" hover:bg-gray-100"),onClick:S[3]||(S[3]=(...m)=>e.unref(u)&&e.unref(u)(...m))},[e.createTextVNode(e.toDisplayString(e.unref(l)("filter.clear"))+" ",1),e.createElementVNode("span",Ze,e.toDisplayString(e.unref(a).length)+" з "+e.toDisplayString(e.unref(d).length),1)],10,Xe)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),ve={},et={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 tt(t,o){return e.openBlock(),e.createElementBlock("svg",et,[...o[0]||(o[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 se=O(ve,[["render",tt]]),lt={},nt={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 ot(t,o){return e.openBlock(),e.createElementBlock("svg",nt,[...o[0]||(o[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 v=O(lt,[["render",ot]]);class ce{static getWidthClass(o){return typeof o=="number"?`max-w-[${o}px] min-w-[${o}px]`:typeof o=="string"?o.endsWith("%")||o.endsWith("px")?`max-w-[${o}]`:`max-w-${o}`:"w-full"}}const at={class:"absolute bottom-2/4 translate-y-2/4 cursor-pointer left-3"},rt=["placeholder"],it=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(t,{emit:o}){const p=t,l=e.ref((p.placeholder||p.label||p.title||p.name||"search").toString()),i=o,s=e.ref(p.modelValue?.toString()??"");e.watch(()=>p.modelValue,g=>{g!==s.value&&(s.value=g?.toString()??"")});let h=null;function a(){if(s.value=s.value.trimStart(),s.value.length===0){c();return}h&&clearTimeout(h),h=setTimeout(()=>{i("update:modelValue",s.value),i("change",{name:p.name,value:s.value})},750)}function c(){s.value="",i("update:modelValue",""),i("clear",p.name)}return(g,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-form-text relative bg-white [&>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]: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",t.layout==="vertical"?"rounded-md":"rounded-sm",t.layout==="vertical"?"[&>input]:rounded-md":"[&>input]:rounded-sm",t.layout==="inline"?e.unref(ce).getWidthClass(t.width):"mb-2"+(t.layout==="popover"?" m-2":"")])},[e.createElementVNode("div",at,[e.createVNode(se)]),s.value!==""?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:c,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer"},[e.createVNode(v)])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":r[0]||(r[0]=u=>s.value=u),onInput:a,placeholder:l.value,class:e.normalizeClass(["!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 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",t.layout==="vertical"?"rounded-md":"rounded-sm"])},null,42,rt),[[e.vModelText,s.value]])],2))}}),st={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},ct=["placeholder","disabled"],dt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},mt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},ft=["placeholder","disabled"],ut=["disabled"],kn={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},wn={key:1,class:"flex justify-end items-center text-xs text-gray-500 p-1 border-t"},pt=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(t,{expose:o,emit:p}){const l=le(),i=I(),s=K(),h=t,a=e.ref(h.modelValue??h.default??[]),c=p,g=e.computed({get:()=>h.modelValue??a.value,set:y=>{h.modelValue!==void 0?c("update:modelValue",y):a.value=y}});function r(){c("change",{name:h.name,value:g.value||a.value})}function u(){a.value=[],g.value=a.value,c("clear",h.name)}return e.watch(()=>h.modelValue,y=>{y!==void 0&&h.layout!=="popover"?(a.value=y,c("update:modelValue",y)):a.value=[]}),o({clear:u,currentValue:g}),(y,b)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",null,[e.createElementVNode("div",{class:e.normalizeClass(t.layout==="vertical"?"inline-flex items-center gap-2":"space-y-3 p-2")},[e.createElementVNode("div",null,[t.layout!=="vertical"?(e.openBlock(),e.createElementBlock("label",st,e.toDisplayString(e.unref(s)("filter.from")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"number",class:e.normalizeClass(e.unref(l)),placeholder:t.placeholder?.[0]??e.unref(s)("filter.min"),step:"1",style:{outline:"none"},"onUpdate:modelValue":b[0]||(b[0]=k=>g.value[0]=k),disabled:t.disabled},null,10,ct),[[e.vModelText,g.value[0]]])]),t.layout==="vertical"?(e.openBlock(),e.createElementBlock("label",dt," - ")):e.createCommentVNode("",!0),e.createElementVNode("div",null,[t.layout!=="vertical"?(e.openBlock(),e.createElementBlock("label",mt,e.toDisplayString(e.unref(s)("filter.to")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"number",class:e.normalizeClass(e.unref(l)),placeholder:t.placeholder?.[1]??e.unref(s)("filter.max"),min:"0",max:"1000000000000000",step:"1",style:{outline:"none"},"onUpdate:modelValue":b[1]||(b[1]=k=>g.value[1]=k),disabled:t.disabled},null,10,ft),[[e.vModelText,g.value[1]]])]),["popover","inline","vertical"].includes(t.layout)?(e.openBlock(),e.createElementBlock("button",{key:1,onClick:r,class:e.normalizeClass(e.unref(i)+(t.layout==="vertical"?" w-[50px]":" bg-blue-100 hover:bg-blue-200"))},e.toDisplayString(t.layout==="vertical"?"Ok":e.unref(s)("filter.apply")),3)):e.createCommentVNode("",!0),["popover","inline"].includes(t.layout)?(e.openBlock(),e.createElementBlock("button",{key:2,disabled:!(g.value[0]||g.value[1]),onClick:u,class:e.normalizeClass(e.unref(i)+" hover:bg-gray-100")},e.toDisplayString(e.unref(s)("filter.clear")),11,ut)):e.createCommentVNode("",!0)],2)]),(t.cleanable&&a.value.length,e.createCommentVNode("",!0))],64))}});class z{static format(o){const p=o.getFullYear(),l=(o.getMonth()+1).toString().padStart(2,"0"),i=o.getDate().toString().padStart(2,"0");return`${p}-${l}-${i}`}static getShiftedDay(o,p=0){const l=o?new Date(o):new Date;return l.setDate(l.getDate()+p),this.format(l)}static getLastWeekRange(o,p,l=0){if(o&&p){const g=new Date(o),r=new Date(p);return g.setDate(g.getDate()+l*7),r.setDate(r.getDate()+l*7),[this.format(g),this.format(r)]}const i=new Date,s=i.getDay(),h=s===0?13:s-1+7,a=new Date(i);a.setDate(i.getDate()-h+l*7);const c=new Date(a);return c.setDate(a.getDate()+6),[this.format(a),this.format(c)]}static getMonthRange(o,p,l=0){let i;o?i=new Date(o):i=new Date,i=new Date(i.getFullYear(),i.getMonth()+l,1);const s=i,h=new Date(i.getFullYear(),i.getMonth()+1,0);return[this.format(s),this.format(h)]}static getQuarterRange(o,p,l=0){const i=o||p,s=i?new Date(i):new Date;let h=Math.floor(s.getMonth()/3);h+=l;const a=(h%4+4)%4*3,c=s.getFullYear()+Math.floor(h/4),g=new Date(c,a,1),r=new Date(c,a+3,0);return[this.format(g),this.format(r)]}static getYear(o,p=0){let l;return o&&/^\d{4}$/.test(o)?l=parseInt(o,10):o?l=new Date(o).getFullYear():l=new Date().getFullYear(),String(l+p)}static getYearRange(o,p=0){let l;return o&&/^\d{4}$/.test(o)?l=parseInt(o,10):o?l=new Date(o).getFullYear():l=new Date().getFullYear(),[this.format(new Date(l+p,0,1)),this.format(new Date(l+p+1,0,0))]}static getRangeFromDaysBefore(o){const p=new Date,l=new Date(p.getTime());return l.setDate(p.getDate()-o),[this.format(l),this.format(p)]}}function de(t,o){const{popoverRef:p}=t,l=K(),i=e.ref(""),s=e.ref(t.modelValue??t.default??[]),h=e.ref(0);function a(){const f=z.getRangeFromDaysBefore(h.value);return s.value=[...f],o("change",{name:t.name,value:s.value}),o("update:modelValue",s.value),f}function c(f){i.value=f,p.value?.close();const d=[];switch(i.value){case"today":d.push(z.getShiftedDay()),d.push(z.getShiftedDay());break;case"week":d.push(...z.getLastWeekRange());break;case"month":d.push(...z.getMonthRange());break;case"quarter":d.push(...z.getQuarterRange());break;case"year":d.push(...z.getYearRange());break;case"last_7_days":h.value=7,a();break;case"range":h.value=7,d.push(...a());break}s.value=[...d],o("change",{name:t.name,value:s.value}),o("update:modelValue",s.value)}function g(){const f=[];switch(i.value){case"today":f.push(z.getShiftedDay(s.value[0],1));break;case"week":f.push(...z.getLastWeekRange(s.value[0],s.value[1],1));break;case"month":f.push(...z.getMonthRange(s.value[0],s.value[1],1));break;case"quarter":f.push(...z.getQuarterRange(s.value[0],s.value[1],1));break;case"year":f.push(...z.getYearRange(s.value[0],1));break}s.value=[...f],o("change",{name:t.name,value:s.value}),o("update:modelValue",s.value)}function r(){const f=[];switch(i.value){case"today":f.push(z.getShiftedDay(s.value[0],-1));break;case"week":f.push(...z.getLastWeekRange(s.value[0],s.value[1],-1));break;case"month":f.push(...z.getMonthRange(s.value[0],s.value[1],-1));break;case"quarter":f.push(...z.getQuarterRange(s.value[0],s.value[1],-1));break;case"year":f.push(...z.getYearRange(s.value[0],-1));break}s.value=[...f],o("change",{name:t.name,value:s.value}),o("update:modelValue",s.value)}const u=["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"];function y(f){const[d,A,F]=f.split("-");return`${F}.${A}.${d}`}function b(f,d="long"){const A=new Date(Date.UTC(2e3,f-1,1));return new Intl.DateTimeFormat(localStorage.locale,{month:d,timeZone:"UTC"}).format(A)}function k(f){const{value:d}=s;switch(f){case"today":return y(d[0]);case"range":return"Період";case"week":return d[0]&&d[1]?`${y(d[0])} – ${y(d[1])}`:"";case"quarter":if(d[0]){const A=new Date(d[0]),F=A.getFullYear(),S=A.getMonth();return`${Math.floor(S/3)+1} ${l("filter.quarter")} ${F}`}return"";case"month":if(d[0]){const[A,F]=d[0].split("-");return`${b(parseInt(F,10))} ${A}`}return"";case"year":return d[0]||"";case"last_7_days":return"За останні дні";default:return t.label??""}}const B=e.computed(()=>i.value?k(i.value):t.label??"");function C(){i.value="",s.value=[],o("update:modelValue",[]),o("clear",t.name)}return{activeMode:i,innerValue:s,daysBefore:h,onDaysBeforeChange:a,onSelectChange:c,nextClick:g,prevClick:r,ukMonths:u,formatDisplayDate:y,getModeLabel:k,currentLabel:B,clear:C}}const yt={key:0,class:"relative flex w-full h-auto gap-2 filter-date m-2 flex-wrap"},gt={key:0,class:"flex gap-1 !w-[75%] rounded-sm"},ht=["max","disabled"],bt=["min","disabled"],xt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},kt=["max","disabled"],wt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},Vt={key:0,class:"block text-xs font-medium text-gray-600 mb-1"},Ct=["min","disabled"],Bt={class:"flex gap-1 px-2"},Et=["title","onClick"],Nt={class:"pt-2 px-2"},St=["disabled"],$t=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(t,{expose:o,emit:p}){const l=t,i=le(),s=I(),h=De(),a=K(),c=p,g=e.ref(null),{activeMode:r,innerValue:u,onSelectChange:y,nextClick:b,prevClick:k,clear:B}=de({...l,popoverRef:g},c);e.watch(()=>l.modelValue,F=>{F!==void 0?(u.value=F,c("update:modelValue",F)):(r.value="",u.value=[])}),e.watch(u,F=>{c("update:modelValue",F),c("change",{name:l.name,value:F})},{deep:!0});const C=["today","week","month","quarter","year"],f={today:{label:"день",title:a("filter.today")},week:{label:"тиж.",title:a("filter.week")},month:{label:"міс.",title:a("filter.month")},quarter:{label:"кв.",title:a("filter.quarter")},year:{label:"рік",title:a("filter.year")}};function d(F){return f[F]?.label??a(`filter.${F}`)}function A(F){return f[F]?.title??a(`filter.${F}`)}return o({clear:B,popoverRef:g}),(F,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.layout==="inline"?(e.openBlock(),e.createElementBlock("div",yt,[e.unref(r)!==""&&e.unref(r)==="range"?(e.openBlock(),e.createElementBlock("div",gt,[S[7]||(S[7]=e.createTextVNode(" 1111 ",-1)),e.withDirectives(e.createElementVNode("input",{type:"date",max:e.unref(u)[1],locale:"uk-UA","onUpdate:modelValue":S[0]||(S[0]=m=>e.unref(u)[0]=m),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-sm focus:outline-blue-600",disabled:t.disabled},null,8,ht),[[e.vModelText,e.unref(u)[0]]]),e.withDirectives(e.createElementVNode("input",{type:"date",min:e.unref(u)[0],locale:"uk-UA","onUpdate:modelValue":S[1]||(S[1]=m=>e.unref(u)[1]=m),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-sm focus:outline-blue-600 appearance-auto",disabled:t.disabled},null,8,bt),[[e.vModelText,e.unref(u)[1]]])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(t.layout==="popover"?"space-y-3 p-2":"flex items-center gap-2")},[e.createElementVNode("div",{class:e.normalizeClass(t.layout!=="popover"?"w-[48%]":"")},[t.layout==="popover"?(e.openBlock(),e.createElementBlock("label",xt,e.toDisplayString(e.unref(a)("filter.from")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"date",max:e.unref(u)[1],locale:"uk-UA","onUpdate:modelValue":S[2]||(S[2]=m=>e.unref(u)[0]=m),class:e.normalizeClass(e.unref(i)),disabled:t.disabled},null,10,kt),[[e.vModelText,e.unref(u)[0]]])],2),t.layout!=="popover"?(e.openBlock(),e.createElementBlock("label",wt," - ")):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(t.layout!=="popover"?"w-[48%]":"")},[t.layout==="popover"?(e.openBlock(),e.createElementBlock("label",Vt,e.toDisplayString(e.unref(a)("filter.to")),1)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{type:"date",min:e.unref(u)[0],locale:"uk-UA","onUpdate:modelValue":S[3]||(S[3]=m=>e.unref(u)[1]=m),class:e.normalizeClass(e.unref(i)),disabled:t.disabled},null,10,Ct),[[e.vModelText,e.unref(u)[1]]])],2)],2),e.createElementVNode("div",Bt,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(C,m=>e.createElementVNode("button",{key:m,class:e.normalizeClass(e.unref(h)+(e.unref(r)===m?" bg-blue-100":"")),title:A(m),onClick:x=>e.unref(y)(m)},e.toDisplayString(d(m)),11,Et)),64)),e.createElementVNode("button",{class:e.normalizeClass(e.unref(h)),onClick:S[4]||(S[4]=(...m)=>e.unref(k)&&e.unref(k)(...m))},"<",2),e.createElementVNode("button",{class:e.normalizeClass(e.unref(h)),onClick:S[5]||(S[5]=(...m)=>e.unref(b)&&e.unref(b)(...m))},">",2)]),e.createElementVNode("div",Nt,[["popover"].includes(t.layout)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:!e.unref(u)?.length||!e.unref(u)[0]&&!e.unref(u)[1],class:e.normalizeClass(e.unref(s)+"hover:bg-gray-100"),onClick:S[6]||(S[6]=(...m)=>e.unref(B)&&e.unref(B)(...m))},e.toDisplayString(e.unref(a)("filter.clear")),11,St)):e.createCommentVNode("",!0)])],64))}});function Dt(t,o){const{api:p,options:l=[],limit:i=20,dataKey:s="data",data:h}=t,a=s??h??"data",c=t.multi;function g(N){return c?Array.isArray(N)?N:N?[N]:[]:Array.isArray(N)?N[0]:N}const r=e.ref(g(t.modelValue)),u=e.ref(""),y=e.ref(!1),b=e.ref(l),k=e.ref("id"),B=e.ref("text"),C=e.ref(!1),f=e.ref(t.layout!=="popover"&&l.length>i),d=e.ref([]),A=e.ref(0);function F(N){const R=N.find(Boolean)??{},L=["id","value","code","key"].find(W=>W in R)??"id",q=["text","label","name","title"].find(W=>W in R)??"text";return{autoValueKey:L,autoLabelKey:q}}if(l.length>0){const N=F(l);k.value=N.autoValueKey,B.value=N.autoLabelKey}const S=e.computed(()=>{if(p)return b.value;const N=b.value;if(t.layout==="popover")return N;if(!u.value)return C.value?N:N.slice(0,i);const R=u.value.toLowerCase();return N.filter(L=>L[B.value].toLowerCase().includes(R))});let m=null;async function x(N){if(p){y.value=!0;try{const R=new URL(p,window.location.origin);R.searchParams.set("json","1"),R.searchParams.set("key",N),R.searchParams.set("limit",i.toString());const L=await fetch(R.toString());if(!L.ok){U.notify({type:"error",title:"Error",message:"Failed to fetch remote options"}),b.value=[];return}const q=await L.json();if(!q[a]){U.notify({type:"error",title:"Error",message:q}),b.value=[];return}if(b.value=q[a],b.value.length>0){const W=F(b.value);k.value=W.autoValueKey,B.value=W.autoLabelKey}A.value=q.total}catch(R){console.error("Failed to fetch remote options:",R)}finally{y.value=!1}}}e.watch(u,N=>{p&&(m&&clearTimeout(m),m=setTimeout(()=>{x(N)},200))}),e.watch(()=>t.modelValue,N=>{r.value=g(N)},{immediate:!0}),e.watch(r,N=>{c?(!Array.isArray(N)||N.length===0)&&(d.value=[]):(N==null||typeof N=="string"&&N==="")&&(d.value=[])});function E(N){return c&&Array.isArray(r.value)?r.value.includes(N[k.value]):r.value&&r.value===N[k.value]}function M(N){if(c&&!Array.isArray(r.value)&&(r.value=[]),c&&Array.isArray(r.value)){const R=r.value.includes(N[k.value]);r.value=R?r.value.filter(L=>L!==N[k.value]):[...r.value,N[k.value]],d.value=R?d.value.filter(L=>L!==N[B.value]):[...d.value,N[B.value]]}else r.value=N[k.value],d.value=N[B.value];o("update:modelValue",r.value),o("change",{name:t.name,value:r.value})}function n(){c?(r.value=[],d.value=[]):(r.value=void 0,d.value=[]),o("update:modelValue",r.value),o("clear",t.name)}function V(){m&&clearTimeout(m),u.value="",C.value=!1}function w(){C.value=!C.value}e.onBeforeUnmount(()=>{m&&clearTimeout(m)});const $=e.ref(-1);e.watch(S,()=>{$.value=S.value.length>0?0:-1});function D(N){const R=S.value.length;if(N.key==="ArrowDown")N.preventDefault(),$.value=($.value+1)%R;else if(N.key==="ArrowUp")N.preventDefault(),$.value=($.value-1+R)%R;else if(N.key==="Enter"&&(N.preventDefault(),$.value>=0&&$.value<S.value.length)){const L=S.value[$.value];M(L)}}function j(){p&&b.value.length===0&&u.value.length===0&&x(u.value)}return{innerValue:r,searchTerm:u,filteredOptions:S,isSelected:E,selectItem:M,clear:n,resetSearch:V,toggleShowAll:w,isReqProc:y,showAll:C,isEnableShowAll:f,labelKey:B,valueKey:k,allOptions:b,highlightedIndex:$,onKeyDown:D,selectedLabels:d,totalCount:A,loadData:j}}const At={class:"h-[45px] shrink-0 px-[6px] py-[4px] flex items-center relative justify-center"},Ft=["placeholder"],jt={key:0,class:"w-full"},Mt={class:"flex flex-col items-center justify-center p-5 text-center"},Rt={class:"max-w-sm mx-auto mt-6"},zt={class:"font-medium text-gray-800 dark:text-neutral-200"},Kt={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},Lt={key:1,class:"py-2 px-2 border-t"},Tt=["disabled"],Ot={class:"text-xs text-gray-500"},_t=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(t,{expose:o,emit:p}){const l=K(),i=I(),s=t,h=p,a=e.ref(null),{innerValue:c,filteredOptions:g,isSelected:r,selectItem:u,clear:y,resetSearch:b,toggleShowAll:k,isReqProc:B,showAll:C,isEnableShowAll:f,searchTerm:d,labelKey:A,valueKey:F,highlightedIndex:S,onKeyDown:m,selectedLabels:x,totalCount:E,loadData:M}=Dt({...s,modelValue:s.modelValue},h),n=e.computed(()=>s.multi?Array.isArray(c.value)&&c.value.length>0:c.value!=null&&c.value!==""),V=e.computed(()=>s.multi&&Array.isArray(c.value)?c.value.length:c.value!=null&&c.value!==""?1:0);e.onMounted(()=>{b(),s.layout!=="inline"&&(M(),a.value&&s.layout==="popover"&&a.value.focus())}),e.watch(()=>s.modelValue,$=>{$===void 0&&(s.multi?c.value=[]:c.value=void 0)});const w=e.ref([]);return e.watch(S,$=>{$>=0&&w.value[$]&&w.value[$]?.scrollIntoView({block:"nearest",behavior:"smooth"})}),e.watch(g,()=>{w.value=[]}),o({clear:y,inputTextRef:a,selectedLabels:x,loadData:M}),($,D)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.layout==="popover"?"flex flex-col max-h-full":"flex flex-col vs-filter-checkbox space-y-0.5"])},[e.createElementVNode("div",At,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":D[0]||(D[0]=j=>e.isRef(d)?d.value=j:null),onKeydown:D[1]||(D[1]=(...j)=>e.unref(m)&&e.unref(m)(...j)),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(l)("filter.search"),type:"text",ref_key:"inputTextRef",ref:a},null,40,Ft),[[e.vModelText,e.unref(d)]]),e.createVNode(se,{class:"absolute text-gray-400 -translate-y-1/2 left-4 top-1/2"}),e.unref(d)!=""?(e.openBlock(),e.createBlock(v,{key:0,onClick:D[2]||(D[2]=j=>d.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([t.layout==="popover"?"flex-1 overflow-y-auto p-2":"",t.layout==="inline"?"flex-1 overflow-y-auto max-h-80":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),(j,N)=>(e.openBlock(),e.createBlock(G,{layout:t.layout,count:j.count,label:j[e.unref(A)],color:j.color,type:t.multi?"checkbox":"radio",value:j[e.unref(F)],"is-selected":e.unref(r)(j),highlighted:N===e.unref(S),onItemClick:R=>e.unref(u)(j),ref_for:!0,ref:R=>w.value[N]=R?.el},null,8,["layout","count","label","color","type","value","is-selected","highlighted","onItemClick"]))),256))],2),t.type==="select"&&e.unref(g).length===0&&!e.unref(B)?(e.openBlock(),e.createElementBlock("div",jt,[e.createElementVNode("div",Mt,[e.createVNode(X),e.createElementVNode("div",Rt,[e.createElementVNode("p",zt,e.toDisplayString(e.unref(l)("filter.notfound")),1),D[7]||(D[7]=e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"},null,-1))])])])):e.createCommentVNode("",!0),t.layout!=="popover"&&t.type!=="select"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[!e.unref(C)&&e.unref(f)?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:D[3]||(D[3]=(...j)=>e.unref(k)&&e.unref(k)(...j)),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(l)("filter.more"))+" ",1),e.createVNode(Y)])):e.createCommentVNode("",!0),e.unref(C)?(e.openBlock(),e.createElementBlock("div",{key:1,onClick:D[4]||(D[4]=(...j)=>e.unref(k)&&e.unref(k)(...j)),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(l)("filter.less"))+" ",1),e.createVNode(Z)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),t.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[t.layout==="inline"?(e.openBlock(),e.createElementBlock("div",Kt,[e.createTextVNode(e.toDisplayString(t.multi&&Array.isArray(e.unref(c))?e.unref(c)?.length:e.unref(c)!==void 0&&(e.unref(c)||e.unref(c)===null)?1:0)+" / "+e.toDisplayString(e.unref(E))+" "+e.toDisplayString(e.unref(l)("filter.selected"))+" ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:D[5]||(D[5]=(...j)=>e.unref(y)&&e.unref(y)(...j))},e.toDisplayString(e.unref(l)("filter.clear")),513),[[e.vShow,n.value]])])):e.createCommentVNode("",!0),t.layout==="popover"?(e.openBlock(),e.createElementBlock("div",Lt,[e.createElementVNode("button",{type:"button",disabled:!n.value,class:e.normalizeClass(e.unref(i)+" hover:bg-gray-100"),onClick:D[6]||(D[6]=(...j)=>e.unref(y)&&e.unref(y)(...j))},[e.createTextVNode(e.toDisplayString(e.unref(l)("filter.clear"))+" ",1),e.createElementVNode("span",Ot,e.toDisplayString(V.value)+" з "+e.toDisplayString(e.unref(E)),1)],10,Tt)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2))}}),Pt=["for","onClick"],It=["id","name","value"],Ut={class:"block"},qt={key:0,class:"flex justify-between p-2 border-t bg-gray-50 text-xs text-gray-500"},Wt={key:1,class:"pt-2 px-2 border-t"},Yt=["disabled"],Ht={class:"text-xs text-gray-500"},Qt=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(t,{expose:o,emit:p}){const l=t,i=p,s=I(),h=K(),{innerValue:a,isSelected:c,selectItem:g,clear:r,labelKey:u,valueKey:y,allOptions:b}=l.multi?re({...l,modelValue:l.modelValue??l.default??[]},i):J({...l,modelValue:l.modelValue!==void 0?l.modelValue:l.default??""},i),k=e.computed(()=>l.multi?Array.isArray(a.value)&&a.value.length>0:a.value!=null&&a.value!==""),B=e.computed(()=>l.multi&&Array.isArray(a.value)?a.value.length:a.value!=null&&a.value!==""?1:0);return o({clear:r}),e.watch(()=>l.modelValue,C=>{C===void 0&&(l.multi?a.value=[]:a.value=void 0)}),(C,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:e.normalizeClass(["grid grid-cols-3 gap-2 mx-[1px]",t.layout==="popover"?"p-2 max-h-[calc(100%-55px)] overflow-y-auto":"mb-1"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),d=>(e.openBlock(),e.createElementBlock("label",{key:`item-${d[e.unref(y)]}`,for:`item-${d[e.unref(y)]}`,onClick:e.withModifiers(A=>e.unref(g)(d),["stop","prevent"]),class:e.normalizeClass([e.unref(c)(d)?"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-${d[e.unref(y)]}`,class:"hidden w4poy border-gray-200 g41z1 g22e3 axcnw dark:text-indigo-500 dark:border-neutral-700 dark:focus:ring-neutral-900",name:`item-${d[e.unref(y)]}`,value:d[e.unref(y)]},null,8,It),e.createElementVNode("span",Ut,e.toDisplayString(d[e.unref(u)]),1)],10,Pt))),128))],2),t.cleanable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.layout==="inline"?(e.openBlock(),e.createElementBlock("div",qt,[e.createTextVNode(e.toDisplayString(t.multi&&Array.isArray(e.unref(a))?e.unref(a)?.length:e.unref(a)!==void 0&&(e.unref(a)||e.unref(a)===null)?1:0)+" з "+e.toDisplayString(e.unref(b).length)+" обрано ",1),e.withDirectives(e.createElementVNode("button",{class:"text-gray-600 hover:text-gray-800",onClick:f[0]||(f[0]=(...d)=>e.unref(r)&&e.unref(r)(...d))}," Очистити ",512),[[e.vShow,k.value]])])):e.createCommentVNode("",!0),t.layout==="popover"?(e.openBlock(),e.createElementBlock("div",Wt,[e.createElementVNode("button",{type:"button",disabled:!k.value,class:e.normalizeClass(e.unref(s)+" hover:bg-gray-100"),onClick:f[1]||(f[1]=(...d)=>e.unref(r)&&e.unref(r)(...d))},[e.createTextVNode(e.toDisplayString(e.unref(h)("filter.clear"))+" ",1),e.createElementVNode("span",Ht,e.toDisplayString(B.value)+" з "+e.toDisplayString(e.unref(b).length),1)],10,Yt)])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],64))}}),Gt=["disabled","title"],Jt={class:"flex w-full items-center justify-between gap-1 overflow-hidden text-left"},Xt={class:"truncate text-ellipsis text-sm"},Zt={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"},vt={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"},el={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"},ee=e.defineComponent({__name:"popover-field",props:{disabled:{type:Boolean,default:!1},label:{},en:{},ua:{},uk:{},fr:{},de:{},es:{},currentValue:{},fieldRef:{},width:{},mode:{},layout:{}},setup(t,{expose:o}){const p=t,l=e.computed(()=>ne(p.mode)),i=e.ref(!1),s=e.ref({top:0,left:0}),h=e.ref(null),a=e.ref(null),c=e.ref(null);let g=null;function r(){const m=a.value,x=c.value;if(!m||!x)return;const E=m.getBoundingClientRect(),M=x.offsetWidth,n=x.offsetHeight,V=window.innerWidth,w=window.innerHeight,$=8;let D=E.bottom+$,{left:j}=E;const N=Math.max(V-M-10,10);if(j=Math.min(j,N),j=Math.max(j,10),D+n>w-10){const R=E.top-n-$;D=R>=10?R:Math.max(w-n-10,10)}D<10&&(D=10),s.value={top:D,left:j}}function u(){e.nextTick(()=>{r(),typeof window<"u"&&typeof window.requestAnimationFrame=="function"&&window.requestAnimationFrame(()=>r())})}function y(){i.value=!i.value,i.value&&(u(),e.nextTick(()=>{p.fieldRef?.inputTextRef&&p.fieldRef?.inputTextRef?.focus?.(),p.fieldRef?.loadData&&Promise.resolve(p.fieldRef?.loadData?.()).finally(()=>{i.value&&u()})}))}function b(m){!h.value?.contains(m.target)&&!c.value?.contains(m.target)&&!a.value?.contains(m.target)&&(i.value=!1)}function k(m){m.key==="Escape"&&(i.value=!1)}const B=e.ref(!1),C=e.ref("ua"),f=m=>{m.detail.key==="locale"&&(C.value=m.detail.newValue)};e.onMounted(()=>{B.value=!0,C.value=localStorage.locale,window.addEventListener("storage",f),document.addEventListener("click",b,!0),document.addEventListener("keydown",k),window.addEventListener("scroll",r,!0),window.addEventListener("resize",r,!0),typeof ResizeObserver<"u"&&(g=new ResizeObserver(()=>{i.value&&u()}))}),e.onBeforeUnmount(()=>{window.removeEventListener("storage",f),document.removeEventListener("click",b,!0),document.removeEventListener("keydown",k),window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",r,!0),g?.disconnect(),g=null});function d(){i.value=!1}o({close:d}),e.watch([B,i,c],([m,x,E])=>{m&&x&&E&&(u(),g?.observe(E))});function A(m){return Array.isArray(m)?m.filter(x=>x!=null&&x!=="").length:m&&typeof m=="object"?Object.values(m).filter(x=>x!=null&&x!=="").length:typeof m=="string"?m.trim()===""?0:1:typeof m=="number"?Number.isNaN(m)?0:1:m===null||m!==void 0?1:0}const F=e.computed(()=>{const m=p.fieldRef?.selectedLabels,x=A(m);return x>0?x:A(p.currentValue)}),S=e.computed(()=>{const m=p.fieldRef?.selectedLabels;return!m||["inline"].includes(p.layout||"")?p[C.value]||(p.label??""):Array.isArray(m)?m.length>0?m.join(", "):p.label??"":String(m)});return(m,x)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"wrapperRef",ref:h},[e.createElementVNode("button",{onClick:y,disabled:t.disabled,ref_key:"triggerRef",ref:a,title:t.label,class:e.normalizeClass([l.value,t.width?e.unref(ce).getWidthClass(t.width):"w-full",t.layout==="inline"&&F.value>0?"border border-blue-400 bg-blue-50 text-blue-600":""]),type:"button"},[e.createElementVNode("span",Jt,[e.createElementVNode("span",Xt,e.toDisplayString(S.value),1),t.layout==="inline"&&F.value>0?(e.openBlock(),e.createElementBlock("span",Zt,e.toDisplayString(F.value),1)):e.createCommentVNode("",!0)]),e.createVNode(Y,{class:"h-4 w-4 text-neutral-500"})],10,Gt),B.value?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:"body"},[e.withDirectives(e.createElementVNode("div",{ref_key:"popperRef",ref:c,class:"vsTailwind vs-popover__content w-fit fixed z-[1000]",style:e.normalizeStyle({top:`${s.value.top}px`,left:`${s.value.left}px`}),"data-inside-popover":""},[e.createElementVNode("div",vt,[e.createElementVNode("div",el,[e.renderSlot(m.$slots,"default")])])],4),[[e.vShow,i.value]])])):e.createCommentVNode("",!0)],512))}}),tl={},ll={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 nl(t,o){return e.openBlock(),e.createElementBlock("svg",ll,[...o[0]||(o[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const ol=O(tl,[["render",nl]]),al={},rl={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 il(t,o){return e.openBlock(),e.createElementBlock("svg",rl,[...o[0]||(o[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 9l6 6l6 -6"},null,-1)])])}const sl=O(al,[["render",il]]),cl={class:"flex gap-1"},dl={class:"mb-1"},ml={class:"mb-1"},fl={class:"inline-flex rounded-sm shrink-0 pl-1"},ul=["title"],pl={class:"inline-flex rounded-sm shrink-0 pl-1"},yl=["title"],gl={key:1,class:"flex gap-1 !w-[75%] rounded-sm"},hl=["max","value","disabled"],bl=["min","value","disabled"],Vn={key:0,class:"flex justify-end items-center text-xs text-gray-500 p-1 border-t"},xl=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(t,{expose:o,emit:p}){const l=K(),i=t,s=p,h=e.ref(null),{activeMode:a,innerValue:c,onSelectChange:g,nextClick:r,prevClick:u,currentLabel:y,clear:b}=de({...i,popoverRef:h},s);e.watch(()=>i.modelValue,C=>{C!==void 0?(c.value=C,s("update:modelValue",C)):(a.value="",c.value=[])}),e.watch(c,C=>{s("update:modelValue",C),s("change",{name:i.name,value:C})},{deep:!0});function k(C){const f=Array.isArray(c.value)?[...c.value]:[];c.value=[C,f[1]||""]}function B(C){const f=Array.isArray(c.value)?[...c.value]:[];c.value=[f[0]||"",C]}return o({clear:b,popoverRef:h}),(C,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",cl,[e.createVNode(ee,{ref_key:"popoverRef",ref:h,label:e.unref(y),"current-value":e.unref(c),mode:t.mode,width:typeof t.width=="number"&&e.unref(c).length?t.width-70:t.width,onClear:e.unref(b),layout:t.layout,class:e.normalizeClass(t.itemClass)},{default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:f[0]||(f[0]=d=>e.unref(g)("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(l)("filter.period"))+" ",1),e.unref(a)==="range"?(e.openBlock(),e.createBlock(P,{key:0})):e.createCommentVNode("",!0)])]),f[12]||(f[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:f[1]||(f[1]=d=>e.unref(g)("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(l)("filter.today"))+" ",1),e.unref(a)==="today"?(e.openBlock(),e.createBlock(P,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:f[2]||(f[2]=d=>e.unref(g)("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(l)("filter.week"))+" ",1),e.unref(a)==="week"?(e.openBlock(),e.createBlock(P,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:f[3]||(f[3]=d=>e.unref(g)("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(l)("filter.month"))+" ",1),e.unref(a)==="month"?(e.openBlock(),e.createBlock(P,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:f[4]||(f[4]=d=>e.unref(g)("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(l)("filter.quarter"))+" ",1),e.unref(a)==="quarter"?(e.openBlock(),e.createBlock(P,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",dl,[e.createElementVNode("button",{type:"button",onClick:f[5]||(f[5]=d=>e.unref(g)("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(l)("filter.year"))+" ",1),e.unref(a)==="year"?(e.openBlock(),e.createBlock(P,{key:0})):e.createCommentVNode("",!0)])]),e.createElementVNode("div",ml,[e.createElementVNode("button",{type:"button",onClick:f[6]||(f[6]=d=>e.unref(b)()),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(l)("filter.alltime"))+" ",1),e.unref(c)[0]?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(P,{key:0}))])])]),_:1},8,["label","current-value","mode","width","onClear","layout","class"]),e.unref(a)!==""&&e.unref(a)!=="range"&&e.unref(a)!=="last_7_days"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",fl,[e.createElementVNode("button",{type:"button",title:e.unref(l)("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:f[7]||(f[7]=(...d)=>e.unref(u)&&e.unref(u)(...d))},[e.createVNode(ol)],8,ul)]),e.createElementVNode("div",pl,[e.createElementVNode("button",{type:"button",title:e.unref(l)("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:f[8]||(f[8]=(...d)=>e.unref(r)&&e.unref(r)(...d))},[e.createVNode(sl)],8,yl)])],64)):e.createCommentVNode("",!0),e.unref(a)!==""&&e.unref(a)==="range"?(e.openBlock(),e.createElementBlock("div",gl,[e.createElementVNode("input",{type:"date",max:e.unref(c)[1],locale:"uk-UA",value:e.unref(c)[0],onInput:f[9]||(f[9]=d=>k(d.target.value)),class:"px-2 p-0 border text-[12px] max-w-[calc(50%-5px)] h-[38px] rounded-sm focus:outline-blue-600",disabled:t.disabled},null,40,hl),e.createElementVNode("input",{type:"date",min:e.unref(c)[0],locale:"uk-UA",value:e.unref(c)[1],onInput:f[10]||(f[10]=d=>B(d.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:t.disabled},null,40,bl)])):e.createCommentVNode("",!0)]),(t.cleanable,e.createCommentVNode("",!0))],64))}}),kl=["disabled","onClick"],wl={key:0,class:"pt-2 px-2 border-t"},Vl=["disabled"],me={radio:qe,checkbox:ie,check:ie,text:it,range:pt,date:$t,select:_t,tag:Qt,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(t,{expose:o,emit:p}){const l=t,i=p,s=I(),h=K(),{innerValue:a,isSelected:c,selectItem:g,clear:r,labelKey:u,valueKey:y,allOptions:b}=J({...l,modelValue:l.modelValue??l.default??""},i),k=e.computed(()=>a.value!==void 0&&!(typeof a.value=="string"&&a.value===""));function B(f){return c(f)?["bg-blue-600 text-white"].filter(d=>typeof d=="string"&&d.trim().length>0).join(" "):["text-gray-700 hover:bg-gray-200 bg-gray-50 "].filter(d=>typeof d=="string"&&d.trim().length>0).join(" ")}function C(f){l.disabled||g(f)}return o({clear:r}),e.watch(()=>l.modelValue,f=>{f===void 0&&(a.value=void 0)}),(f,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:e.normalizeClass(["flex flex-wrap items-center gap-2",t.layout==="popover"?"p-2 max-h-[calc(100%-55px)] overflow-y-auto":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),A=>(e.openBlock(),e.createElementBlock("button",{key:A[e.unref(y)],type:"button",class:e.normalizeClass(["px-3 py-2 text-sm font-medium rounded-md transition-colors",B(A)]),disabled:t.disabled,onClick:F=>C(A)},e.toDisplayString(A[e.unref(u)]),11,kl))),128))],2),t.cleanable&&t.layout==="popover"?(e.openBlock(),e.createElementBlock("div",wl,[e.createElementVNode("button",{type:"button",disabled:!k.value,class:e.normalizeClass(e.unref(s)+" hover:bg-gray-100"),onClick:d[0]||(d[0]=(...A)=>e.unref(r)&&e.unref(r)(...A))},e.toDisplayString(e.unref(h)("filter.clear")),11,Vl)])):e.createCommentVNode("",!0)],64))}}),"date:inline":xl};function te(t,o){let p;switch(t.toLowerCase()){case"autocomplete":p="select";break;case"check":p="checkbox";break;default:p=t?.toString().toLowerCase()}return p==="date"&&o&&o==="inline"&&(p="date:inline"),{component:me[p]||me.text,type:p}}const Cl={style:{display:"inline-flex",margin:"0px",width:"100%"}},Bl={class:"relative w-full mb-2 p-4 bg-white rounded-md shadow-sm"},El={class:"block mb-3 text-sm font-medium text-gray-800 dark:text-neutral-200"},Nl={class:"flex items-center"},Sl={class:"text-sm font-medium max-w-[80%] text-gray-800 flex items-center gap-x-1"},$l={class:"filter-layout__body"},Dl=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(t,{expose:o,emit:p}){const l=t,i=p,s=e.ref(),h=e.computed(()=>te(l.type,l.layout)),a=e.computed({get:()=>l.modelValue,set:u=>i("update:modelValue",u)});function c(u){i("clear",u)}function g(u,y){i("change",{name:u,value:y}),l.modelValue!==void 0&&i("update:modelValue",y)}function r(){s.value?.clear?.(),i("clear",l.name)}return e.watch(()=>l.default,u=>{a.value=u}),e.watch(()=>l.modelValue,u=>{a.value=u}),o({filterRef:s}),(u,y)=>(e.openBlock(),e.createElementBlock("div",Cl,[e.createElementVNode("div",Bl,[e.createElementVNode("div",El,[e.createElementVNode("div",Nl,[e.createElementVNode("span",Sl,e.toDisplayString(t.label),1)]),typeof a.value=="string"&&a.value.trim()!==""||Array.isArray(a.value)&&a.value.length>0&&a.value.some(b=>b!==void 0)||a.value===null?(e.openBlock(),e.createBlock(xe,{key:0,onClick:r})):e.createCommentVNode("",!0)]),e.createElementVNode("div",$l,[h.value?.type!=="select"?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value?.component),e.mergeProps({key:0},l,{type:h.value?.type,class:l.itemClass,onChange:y[0]||(y[0]=b=>g(b.name,b.value)),onClear:y[1]||(y[1]=b=>c(b)),ref_key:"filterRef",ref:s}),null,16,["type","class"])):(e.openBlock(),e.createBlock(ee,{key:1,"current-value":a.value,label:t.label,mode:t.mode,onClear:r,fieldRef:s.value,width:void 0,disabled:t.disabled,layout:"vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value?.component),e.mergeProps({ref_key:"filterRef",ref:s},l,{type:h.value?.type,class:l.itemClass,onChange:y[2]||(y[2]=b=>g(b.name,b.value)),onClear:y[3]||(y[3]=b=>c(b))}),null,16,["type","class"]))]),_:1},8,["current-value","label","mode","fieldRef","disabled"]))])])]))}}),fe=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(t,{expose:o,emit:p}){const l=t,i=p,s=e.ref(),h=e.computed(()=>te(l.type,l.layout)),a=e.computed({get:()=>l.modelValue,set:r=>i("update:modelValue",r)});function c(r=l.name){i("clear",r)}function g(r,u){i("change",{name:r,value:u}),l.modelValue!==void 0&&i("update:modelValue",u)}return e.watch(()=>l.default,r=>{a.value=r}),e.watch(()=>l.modelValue,r=>{a.value=r}),o({filterRef:s}),(r,u)=>["text","date","button"].includes(t.type.toLocaleLowerCase())?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value?.component),e.mergeProps({key:0},l,{type:h.value?.type,class:t.itemClass,onChange:u[0]||(u[0]=y=>g(y.name,y.value)),onClear:u[1]||(u[1]=y=>c(y)),disabled:t.disabled,modelValue:a.value,"onUpdate:modelValue":u[2]||(u[2]=y=>a.value=y)}),null,16,["type","class","disabled","modelValue"])):(e.openBlock(),e.createBlock(ee,{key:1,"current-value":a.value,label:t.label,mode:t.mode,onClear:c,fieldRef:s.value,width:l.width,disabled:t.disabled,layout:"inline"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value?.component),e.mergeProps({ref_key:"filterRef",ref:s},l,{modelValue:a.value,"onUpdate:modelValue":u[3]||(u[3]=y=>a.value=y),type:h.value?.type,class:l.itemClass,onChange:u[4]||(u[4]=y=>g(y.name,y.value)),onClear:u[5]||(u[5]=y=>c(y))}),null,16,["modelValue","type","class"]))]),_:1},8,["current-value","label","mode","fieldRef","width","disabled"]))}}),Al=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(t,{expose:o,emit:p}){const l=t,i=p,s=e.ref(),h=e.computed(()=>te(l.type,l.layout)),a=e.computed({get:()=>l.modelValue,set:r=>i("update:modelValue",r)});function c(r){i("clear",r)}function g(r,u){i("change",{name:r,value:u}),l.modelValue!==void 0&&i("update:modelValue",u)}return e.watch(()=>l.default,r=>{a.value=r}),e.watch(()=>l.modelValue,r=>{a.value=r}),e.watch(()=>l,r=>{a.value=r}),o({filterRef:s}),(r,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value?.component),e.mergeProps(l,{type:h.value?.type,class:l.itemClass,modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=y=>a.value=y),onChange:u[1]||(u[1]=y=>g(y.name,y.value)),onClear:u[2]||(u[2]=y=>c(y)),ref_key:"filterRef",ref:s}),null,16,["type","class","modelValue"]))}}),_=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(t,{expose:o,emit:p}){const l=t,i=p,s=e.ref(),h=e.computed({get:()=>l.modelValue,set:r=>i("update:modelValue",r)});function a(r){i("clear",r)}function c(r,u){i("change",{name:r,value:u}),l.modelValue!==void 0&&i("update:modelValue",u)}e.watch(()=>l.default,r=>{h.value=r}),e.watch(()=>l.modelValue,r=>{h.value=r}),o({filterRef:s});function g(){switch(l.layout){case"inline":return fe;case"vertical":return Dl;case"popover":return Al;default:return fe}}return(r,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(g()),e.mergeProps(l,{onChange:u[0]||(u[0]=y=>c(y.name,y.value)),onClear:u[1]||(u[1]=y=>a(y)),modelValue:h.value,"onUpdate:modelValue":u[2]||(u[2]=y=>h.value=y)}),null,16,["modelValue"]))}});function H(t,o){const{slots:p}=t,l=f=>f?JSON.parse(JSON.stringify(e.toRaw(f))):{},i=e.ref(l(t.value));e.watch(()=>t.value,f=>{i.value=l(f)},{deep:!0,immediate:!0});const s=e.computed(()=>(e.toRaw(p?.default?.())??[]).flatMap(d=>Array.isArray(d.children)?d.children:[d]));function h(f){delete i.value[f],o("clear",{data:e.toRaw(i.value),name:f})}function a(f,d){d===void 0?h(f):i.value={...i.value,[f]:d},o("change",{data:e.toRaw(i.value),name:f,value:d})}const c=e.computed(()=>s.value.map(f=>{const d=f.props?.name;return e.cloneVNode(f,{...f.props,layout:t.view,showClean:!0,modelValue:i.value[d],"onUpdate:modelValue":A=>{a(d,A)},onClear:()=>h(d),class:[t.itemClass,f.props?.class],itemClass:[t.itemClass,f.props?.itemClass].filter(A=>typeof A=="string"&&A.trim().length>0).join(" ")||void 0})})),g=e.computed(()=>new Map(c.value.map(f=>{const d=f.props?.name;return d?[d,f]:null}).filter(f=>f!==null)));function r(f=!1){i.value={},f||o("clearAll",{data:e.toRaw(i.value),name:"ALL"})}const u=e.ref(""),y=e.computed(()=>t.schema?.value?Object.entries(i.value).filter(([f,d])=>t.schema&&!(f in t.schema.value)?!1:Array.isArray(d)?d.some(A=>A!==""&&A!==void 0):d!==""&&d!==void 0).length:0),b=e.ref();e.watch(u,async()=>{await e.nextTick(),b?.value?.filterRef?.inputTextRef&&b.value.filterRef.inputTextRef.focus()});const k=e.computed(()=>t.schema?.value?Object.fromEntries(Object.entries(t.schema?.value).slice(0,t.limit)):{}),B=e.computed(()=>{if(c.value.length===0)return[];let f=0;if(t.schema?.value){const d=Object.entries(t.schema.value).length;t.limit&&d<t.limit?f=t.limit-d:f=0}return c.value.slice(0,f)}),C=e.computed(()=>c.value.length===0?[]:t.view!=="inline"?c.value:c.value.slice(B.value.length));return{activeFilter:i,activeFilterCount:y,onFilterChange:a,clearFilter:h,clearAllFilters:r,limitedSchema:k,filtersSlot:c,limitedFiltersSlot:B,popoverFiltersSlot:C,vnodeMap:g,selectedFilter:u,filterRef:b}}const Fl=e.defineComponent({__name:"popover",emits:["open","close"],setup(t,{emit:o}){const p=e.ref(!1),l=e.ref(null),i=e.ref(null),s=e.ref(null),h=e.ref({top:"0px",left:"0px",position:"absolute"}),a=e.ref(!1);function c(){p.value=!p.value}function g(){const k=s.value,B=l.value;if(!k||!B)return;const{left:C,bottom:f}=k.getBoundingClientRect();requestAnimationFrame(()=>{if(!B)return;const{width:d}=B.getBoundingClientRect(),A=B.offsetWidth||d,F=window.innerWidth||document.documentElement.clientWidth,S=F-C;let m=C;A>S&&(m=F-A-18),m<18&&(m=18);const x=F-A-18;m>x&&(m=Math.max(18,x)),h.value={position:"fixed",top:`${f+18}px`,left:`${m}px`},a.value=!0})}const r=e.computed(()=>Object.entries(h.value).map(k=>k.join(":")).join(";"));function u(k){const B=k.target;!s.value?.contains(k.target)&&!l.value?.contains(k.target)&&!B.closest("[data-inside-popover]")&&(p.value=!1)}const y=e.ref(!1);e.onMounted(()=>{y.value=!0}),e.onMounted(()=>{s.value=i.value?.querySelector("[data-popover-trigger]")||null,s.value?.addEventListener("click",c),document.addEventListener("click",u),window.addEventListener("resize",g),window.addEventListener("scroll",g,!0)}),e.onBeforeUnmount(()=>{s.value?.removeEventListener("click",c),document.removeEventListener("click",u),window.removeEventListener("resize",g),window.removeEventListener("scroll",g,!0)});const b=o;return e.watch(p,async k=>{k?(a.value=!1,b("open"),await e.nextTick(),requestAnimationFrame(()=>{g()})):(b("close"),a.value=!1)}),(k,B)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"wrapperRef",ref:i},[e.renderSlot(k.$slots,"trigger"),y.value?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:"body"},[e.withDirectives(e.createElementVNode("div",{ref_key:"popoverRef",ref:l,class:"fixed z-[50] w-[calc(100vw-32px)] md:w-[600px] rounded-md border bg-white shadow-md transition-opacity duration-0",style:e.normalizeStyle([r.value,{visibility:a.value?"visible":"hidden",opacity:a.value?1:0}])},[e.renderSlot(k.$slots,"default")],4),[[e.vShow,p.value]])])):e.createCommentVNode("",!0)],512))}}),jl={},Ml={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 Rl(t,o){return e.openBlock(),e.createElementBlock("svg",Ml,[...o[0]||(o[0]=[e.createElementVNode("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"},null,-1)])])}const ue=O(jl,[["render",Rl]]),zl={class:"flex items-center gap-2 overflow-hidden"},Kl={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"},Ll={class:"flex max-h-[400px] md:max-h-[400px]"},Tl={class:"w-[150px] sm:w-[180px] md:w-64 border-r border-gray-200 overflow-y-auto"},Ol={class:"p-2 md:p-4 border-b"},_l={class:"text-xs md:text-sm text-gray-600"},Pl={class:"p-1 md:p-2"},Il=["onClick"],Ul={class:"flex items-center gap-1.5 md:gap-2"},ql={class:"text-xs md:text-sm font-medium line-clamp-3"},Wl={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"},Yl=["onClick"],Hl={class:"flex items-center gap-1.5 md:gap-2"},Ql={class:"text-xs md:text-sm font-medium truncate"},Gl={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"},Jl={key:0,class:"p-1 md:p-2 border-t"},Xl={class:"flex-1 min-h-[250px] md:min-h-[300px] overflow-y-auto"},Zl={key:0,class:"flex items-center justify-center h-full text-gray-500"},vl={class:"text-xs md:text-sm"},pe=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:{},teleportActive:{}},emits:["change","clear","clearAll"],setup(t,{expose:o,emit:p}){const l=K(),i=t,s=ne(i.mode),h=e.useSlots(),a=p,c=e.ref({}),g=e.computed(()=>c?.value?i.view!=="inline"?c?.value:Object.fromEntries(Object.entries(c?.value).slice(i.limit)):{}),{activeFilter:r,activeFilterCount:u,onFilterChange:y,clearFilter:b,clearAllFilters:k,popoverFiltersSlot:B,selectedFilter:C,filterRef:f}=H({...i,schema:c,slots:h},a),d=e.computed(()=>i.badgeCount??u.value);function A(m){return Array.isArray(m)?m.filter(x=>x!=null&&x!=="").length:m&&typeof m=="object"?Object.values(m).filter(x=>x!=null&&x!=="").length:m===null||m!==void 0&&m!==""?1:0}function F(m){return r.value?A(r.value[m]):0}function S(){if(g.value){const[m]=Object.keys(g.value);C.value=m}else B.value.length>0?C.value=B.value[0].props.name:C.value=""}return e.watch(()=>i.schema,m=>{c.value=m??{}},{deep:!0,immediate:!0}),o({clearFilter:b,clearAllFilters:k}),(m,x)=>(e.openBlock(),e.createBlock(Fl,{onOpen:S,onClose:x[5]||(x[5]=E=>C.value="")},{trigger:e.withCtx(()=>[e.createElementVNode("button",{"data-popover-trigger":"","aria-haspopup":"dialog","aria-expanded":"false",class:e.normalizeClass([t.itemClass,e.unref(s),"flex items-center justify-between gap-2",d.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",zl,[e.createVNode(ue,{class:"h-4 w-4"}),x[6]||(x[6]=e.createElementVNode("span",{class:"text-sm font-medium"},"Фільтр",-1))]),d.value>0?(e.openBlock(),e.createElementBlock("span",Kl,e.toDisplayString(d.value),1)):e.createCommentVNode("",!0)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Ll,[e.createElementVNode("div",Tl,[e.createElementVNode("div",Ol,[e.createElementVNode("p",_l,e.toDisplayString(e.unref(l)("filter.selectFieldHelp")),1)]),e.createElementVNode("div",Pl,[t.schema?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(g.value),([E,M])=>(e.openBlock(),e.createElementBlock("button",{key:E,onClick:()=>{C.value=E},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(C)===E?"bg-blue-50 text-blue-700 border-l-2 border-blue-500":"text-neutral-700"])},[e.createElementVNode("div",Ul,[e.createElementVNode("span",ql,e.toDisplayString(M.label),1)]),F(E)>0?(e.openBlock(),e.createElementBlock("div",Wl,e.toDisplayString(F(E)),1)):e.createCommentVNode("",!0)],10,Il))),128)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(B),(E,M)=>(e.openBlock(),e.createElementBlock("button",{key:"slot-"+M,onClick:n=>C.value=E.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(C)===E.props.name?"bg-blue-50 text-blue-700 border-l-2 border-blue-500":"text-neutral-700"])},[e.createElementVNode("div",Hl,[e.createElementVNode("span",Ql,e.toDisplayString(E.props.label),1)]),F(E.props.name)>0?(e.openBlock(),e.createElementBlock("div",Gl,e.toDisplayString(F(E.props.name)),1)):e.createCommentVNode("",!0)],10,Yl))),128))]),e.unref(u)>0?(e.openBlock(),e.createElementBlock("div",Jl,[e.createElementVNode("button",{class:e.normalizeClass([t.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:x[0]||(x[0]=E=>e.unref(k)()),"data-inside-popover":""}," Очистити всі ",2)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Xl,[e.unref(C)===""?(e.openBlock(),e.createElementBlock("div",Zl,[e.createElementVNode("p",vl,e.toDisplayString(e.unref(l)("filter.selectFieldHelp")),1)])):e.createCommentVNode("",!0),e.unref(C)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[g.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(g.value),([E,M])=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(C)===E?(e.openBlock(),e.createBlock(_,e.mergeProps({key:E,layout:"popover",ref_for:!0,ref_key:"filterRef",ref:f},{ref_for:!0},M,{class:[t.itemClass,M?.class],"item-class":[t.itemClass,M?.itemClass].filter(Boolean).join(" ")||void 0,onChange:x[1]||(x[1]=n=>e.unref(y)(n.name,n.value)),onClear:x[2]||(x[2]=n=>{e.unref(b)(n),e.unref(y)(n,void 0)}),modelValue:e.unref(r)[E],"onUpdate:modelValue":n=>e.unref(r)[E]=n,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(B),(E,M)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:"slot-"+M},[e.unref(C)===E.props.name?(e.openBlock(),e.createBlock(_,e.mergeProps({key:0,layout:"popover"},{ref_for:!0},E.props,{ref_for:!0,ref_key:"filterRef",ref:f,class:[t.itemClass,E.props?.class],"item-class":[t.itemClass,E.props?.itemClass].filter(Boolean).join(" ")||void 0,onChange:x[3]||(x[3]=n=>e.unref(y)(n.name,n.value)),onClear:x[4]||(x[4]=n=>{e.unref(b)(n),e.unref(y)(n,void 0)}),modelValue:e.unref(r)[E.props.name],"onUpdate:modelValue":n=>e.unref(r)[E.props.name]=n,cleanable:!0}),null,16,["class","item-class","modelValue","onUpdate:modelValue"])):e.createCommentVNode("",!0)],64))),128))],64)):e.createCommentVNode("",!0)])])]),_:1}))}}),en={class:"flex gap-1 items-center flex-wrap"},ye=e.defineComponent({__name:"inline-filter-layout",props:{schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:3},width:{},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{},teleportActive:{}},emits:["change","clear","clearAll"],setup(t,{expose:o,emit:p}){const l=K(),i=t,s=p,h=e.useSlots(),a=e.ref({}),c=e.computed(()=>Object.keys(i.schema).length>i.limit),{activeFilter:g,activeFilterCount:r,onFilterChange:u,clearFilter:y,clearAllFilters:b,limitedSchema:k,filtersSlot:B,limitedFiltersSlot:C}=H({...i,schema:a,slots:h},s);function f(x){return Array.isArray(x)?x.some(E=>E!==""&&E!==void 0&&E!==null):x===null?!0:x&&typeof x=="object"?Object.values(x).some(E=>E!==""&&E!==void 0&&E!==null):x!==""&&x!==void 0}const d=e.computed(()=>{const x=Object.keys(k.value??{}),E=C.value.map(M=>M.props?.name).filter(M=>typeof M=="string");return new Set([...x,...E])}),A=e.computed(()=>Object.entries(g.value??{}).filter(([x,E])=>d.value.has(x)&&f(E)).length),F=e.computed(()=>{const x=r.value??0,E=A.value??0;return Math.max(x-E,0)}),S=e.ref();function m(){S.value&&S.value.clearAllFilters(!0),b()}return e.watch(()=>i.schema,x=>{a.value=x},{deep:!0,immediate:!0}),o({clearFilter:y,clearAllFilters:b}),(x,E)=>(e.openBlock(),e.createElementBlock("div",en,[t.schema?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(e.unref(k)),([M,n])=>(e.openBlock(),e.createBlock(_,e.mergeProps({key:M,mode:t.mode,width:t.width?t.width:n?.width},{ref_for:!0},n,{class:[t.itemClass,n?.class],"item-class":[t.itemClass,n?.itemClass].filter(Boolean).join(" ")||void 0,onChange:E[0]||(E[0]=V=>e.unref(u)(V.name,V.value)),onClear:e.unref(y),layout:"inline",cleanable:!0,modelValue:e.unref(g)[M],"onUpdate:modelValue":V=>e.unref(g)[M]=V}),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(C),(M,n)=>(e.openBlock(),e.createBlock(_,e.mergeProps({key:"slot-"+n,layout:"inline"},{ref_for:!0},M.props,{class:[t.itemClass,M.props?.class],"item-class":[t.itemClass,M.props?.itemClass].filter(Boolean).join(" ")||void 0,onChange:E[1]||(E[1]=V=>e.unref(u)(V.name,V.value)),onClear:E[2]||(E[2]=V=>{e.unref(y)(V),e.unref(u)(V,void 0)}),cleanable:!0,modelValue:e.unref(g)[M.props.name],"onUpdate:modelValue":V=>e.unref(g)[M.props.name]=V}),null,16,["class","item-class","modelValue","onUpdate:modelValue"]))),128)),c.value?(e.openBlock(),e.createBlock(pe,e.mergeProps({key:1},i,{schema:t.schema,limit:t.limit,onChange:E[3]||(E[3]=M=>e.unref(u)(M.name,M.value)),onClearAll:E[4]||(E[4]=M=>e.unref(b)()),onClear:E[5]||(E[5]=M=>e.unref(y)(M.name)),mode:t.mode,ref_key:"popoverRef",ref:S,cleanable:!0,"badge-count":F.value}),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(B),(M,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(M),e.mergeProps({key:"slot-"+n,layout:"popover"},{ref_for:!0},M.props,{cleanable:!0}),null,16))),128))]),_:1},16,["schema","limit","mode","badge-count"])):e.createCommentVNode("",!0),e.unref(r)>0?(e.openBlock(),e.createElementBlock("button",{key:2,onClick:m,class:e.normalizeClass([t.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(l)("filter.clear")),3)):e.createCommentVNode("",!0)]))}}),tn={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"},ln={class:"flex items-center vst-filters vsTailwind flex-col w-full"},nn=e.defineComponent({__name:"vertical-filter-layout",props:{schema:{},view:{},value:{},history:{type:Boolean},mode:{},limit:{default:3},width:{},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{},teleportActive:{}},emits:["change","clear","clearAll"],setup(t,{expose:o,emit:p}){const l=t,i=p,s=e.useSlots(),{activeFilter:h,activeFilterCount:a,onFilterChange:c,clearFilter:g,clearAllFilters:r,filtersSlot:u}=H({...l,slots:s},i);return o({clearFilter:g,clearAllFilters:r}),(y,b)=>t.view==="vertical"?(e.openBlock(),e.createElementBlock("div",tn,[e.createElementVNode("div",ln,[e.unref(a)>0?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:b[0]||(b[0]=k=>e.unref(r)()),"data-popover-trigger":"","aria-haspopup":"dialog","aria-expanded":"false",class:e.normalizeClass([t.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),t.schema?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(Object.entries(t.schema),([k,B])=>(e.openBlock(),e.createBlock(_,e.mergeProps({layout:"vertical"},{ref_for:!0},B,{class:[t.itemClass,B?.class],"item-class":[t.itemClass,B?.itemClass].filter(Boolean).join(" ")||void 0,onChange:b[1]||(b[1]=C=>e.unref(c)(C.name,C.value)),onClear:b[2]||(b[2]=C=>{e.unref(g)(C),e.unref(c)(C,void 0)}),modelValue:e.unref(h)[k],"onUpdate:modelValue":C=>e.unref(h)[k]=C,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),(k,B)=>(e.openBlock(),e.createBlock(_,e.mergeProps({key:"slot-"+B,layout:"vertical"},{ref_for:!0},k.props,{class:[t.itemClass,k.props?.class],"item-class":[t.itemClass,k.props?.itemClass].filter(Boolean).join(" ")||void 0,onChange:b[3]||(b[3]=C=>e.unref(c)(C.name,C.value)),onClear:b[4]||(b[4]=C=>{e.unref(g)(C),e.unref(c)(C,void 0)}),modelValue:e.unref(h)[k.props.name],"onUpdate:modelValue":C=>e.unref(h)[k.props.name]=C,showClean:!0}),null,16,["class","item-class","modelValue","onUpdate:modelValue"]))),128))])])):e.createCommentVNode("",!0)}}),on=["onKeydown"],an=["disabled"],rn={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"},sn={class:"rounded-2xl border border-slate-300/35 bg-white/95 p-4 shadow-2xl backdrop-blur-sm"},cn={class:"mb-3 flex items-center justify-between"},dn={class:"text-[15px] font-semibold text-slate-800"},mn={"aria-hidden":"true"},fn={class:"flex max-h-80 flex-col gap-1 overflow-y-auto"},un={key:0,class:"mt-3 flex justify-end"},pn=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:{},teleportActive:{}},emits:["change","clear","clearAll"],setup(t,{emit:o}){const p=K(),l=t,i=o,s=e.ref({}),h=e.useSlots(),{activeFilter:a,activeFilterCount:c,onFilterChange:g,clearFilter:r,clearAllFilters:u,filtersSlot:y}=H({...l,schema:s.value,slots:h},i),b=e.ref(null),k=e.ref(null),B=e.reactive({open:!1,top:0,left:0}),C=e.computed(()=>B.open),f=e.computed(()=>!!l.disabled),d=e.computed(()=>s.value||{}),A=e.computed(()=>l.title??"Фільтр"),F=e.computed(()=>!!h.trigger),S=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",f.value?"cursor-not-allowed opacity-60":"cursor-pointer"]),m=e.computed(()=>B.open?{position:"absolute",top:`${B.top}px`,left:`${B.left}px`,transform:"translateX(-50%)",zIndex:1e3}:{display:"none"});function x(){B.open=!1}function E(){if(!b.value)return;const $=b.value.getBoundingClientRect();B.top=$.bottom+window.scrollY+8,B.left=$.left+$.width/2+window.scrollX}function M(){B.open=!B.open,B.open&&e.nextTick(E)}function n(){f.value||M()}function V(){B.open&&E()}function w(){u()}return e.onMounted(()=>{window.addEventListener("resize",V),window.addEventListener("scroll",V,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("resize",V),window.removeEventListener("scroll",V,!0)}),e.watch(()=>l.schema,$=>{if(!$){s.value={};return}if(Array.isArray($)){const D=$.filter(j=>j&&(j.name||j.id)).map(j=>{const N=j.name||j.id;return[N,{...j,name:N}]});s.value=Object.fromEntries(D);return}s.value=$},{deep:!0,immediate:!0}),e.watch(()=>l.disabled,$=>{$&&x()}),($,D)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex",ref_key:"anchor",ref:b},[F.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["inline-flex",f.value?"cursor-not-allowed opacity-60 pointer-events-none":"cursor-pointer"]),role:"button",tabindex:"0","data-popover-trigger":"",onClick:e.withModifiers(n,["prevent","stop"]),onKeydown:[e.withKeys(e.withModifiers(n,["prevent","stop"]),["enter"]),e.withKeys(e.withModifiers(n,["prevent","stop"]),["space"])]},[e.renderSlot($.$slots,"trigger",{toggle:n,open:C.value,disabled:f.value,activeCount:e.unref(c)})],42,on)):(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(S.value),type:"button",disabled:f.value,onClick:e.withModifiers(n,["prevent","stop"]),"data-popover-trigger":""},[e.createVNode(ue,{class:"h-4 w-4"}),e.unref(c)>0?(e.openBlock(),e.createElementBlock("div",rn,e.toDisplayString(e.unref(c)),1)):e.createCommentVNode("",!0)],10,an)),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[C.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["absolute",typeof t.width=="number"?`min-w-[${t.width+32+(Object.keys(d.value).length>7?20:0)}px]`:"min-w-[268px] "]),style:e.normalizeStyle(m.value),ref_key:"panel",ref:k,onClick:D[4]||(D[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",sn,[e.createElementVNode("div",cn,[e.createElementVNode("h3",dn,e.toDisplayString(A.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:x},[e.createElementVNode("span",mn,[e.createVNode(v,{class:"h-4 w-4"})]),D[5]||(D[5]=e.createElementVNode("span",{class:"sr-only"},"Закрити",-1))])]),e.createElementVNode("div",fn,[Object.keys(d.value).length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Object.entries(d.value),([j,N])=>(e.openBlock(),e.createBlock(_,e.mergeProps({key:j},{ref_for:!0},{...N,layout:"inline"},{width:t.width?t.width:N?.width,class:[t.itemClass,N?.class],"item-class":[t.itemClass,N?.itemClass].filter(Boolean).join(" ")||void 0,cleanable:!0,modelValue:e.unref(a)[j],"onUpdate:modelValue":R=>e.unref(a)[j]=R,onChange:D[0]||(D[0]=R=>e.unref(g)(R.name,R.value)),onClear:D[1]||(D[1]=R=>{e.unref(r)(R),e.unref(g)(R,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(y),(j,N)=>(e.openBlock(),e.createBlock(_,e.mergeProps({key:"slot-"+N,ref_for:!0},{...j.props,layout:"inline"},{class:[t.itemClass,j.props?.class],"item-class":[t.itemClass,j.props?.itemClass].filter(Boolean).join(" ")||void 0,cleanable:!0,modelValue:e.unref(a)[j.props.name],"onUpdate:modelValue":R=>e.unref(a)[j.props.name]=R,onChange:D[2]||(D[2]=R=>e.unref(g)(R.name,R.value)),onClear:D[3]||(D[3]=R=>{e.unref(r)(R),e.unref(g)(R,void 0)})}),null,16,["class","item-class","modelValue","onUpdate:modelValue"]))),128))]),e.unref(c)>0?(e.openBlock(),e.createElementBlock("div",un,[e.createElementVNode("button",{type:"button",class:e.normalizeClass([t.itemClass,"text-sm font-semibold text-blue-600 transition-colors hover:text-blue-700 focus:outline-none"]),onClick:w},e.toDisplayString(e.unref(p)("filter.clear")),3)])):e.createCommentVNode("",!0)])],6)):e.createCommentVNode("",!0)]))],512))}}),yn={class:"mb-6 flex flex-wrap gap-2"},gn=["onClick"],hn={class:"mr-2 flex items-center gap-1"},bn={class:"font-semibold"},xn={class:"text-xs text-gray-500"},Q=e.defineComponent({__name:"filter",props:{schema:{},view:{default:"inline"},value:{},history:{type:Boolean},mode:{},limit:{default:3},width:{},title:{},disabled:{type:Boolean},defaultPanelWidth:{},itemClass:{},teleportActive:{}},emits:["change","clear","clearAll"],setup(t,{expose:o,emit:p}){const l=t,i=e.useAttrs(),s=e.computed(()=>({...l,...i})),h=e.ref(r(l.value??{}));e.watch(()=>l.value,async n=>{h.value=r(n??{}),(!n||Object.keys(n).length===0)&&(await e.nextTick(),c.value?.clearAllFilters?.(!0))},{deep:!0,immediate:!0});const a=p,c=e.ref(),g=e.useSlots();function r(n){if(Array.isArray(n))return n.map(V=>r(V));if(n!==null&&typeof n=="object"){const V=e.toRaw(n),w={};for(const $ in V)w[$]=r(V[$]);return w}return n}function u(n,V){V!==void 0?h.value={...h.value,[n]:V}:delete h.value[n],a("change",{data:r(h.value),name:n,value:r(V)})}function y(n){delete h.value[n],a("clear",{data:r(h.value),name:n}),a("change",{data:r(h.value),name:n,value:null})}function b(){h.value={},a("clear",{data:r(h.value),name:"ALL"}),a("change",{data:r(h.value),name:"ALL",value:null})}const k=e.ref({}),B=e.computed(()=>l.teleportActive);function C(){switch(l.view){case"inline":return ye;case"vertical":return nn;case"popover":return pe;case"popover-inline":return pn;default:return ye}}e.watch(()=>l.schema,n=>{if(!n){k.value={};return}if(Array.isArray(n)&&!n.length){k.value={};return}Array.isArray(n)?k.value=n.filter(V=>V.type).reduce((V,w)=>(Object.assign(w,{name:w.name||w.id,type:{datepicker:"date"}[w.type.toLowerCase()]||w.type.toLowerCase(),label:w.label||w.ua}),V[w.name]=w,w.data&&!w.api&&!w.options&&Object.assign(w,{api:`/api/suggest/${w.data}`}),V),{}):(Object.entries(n).forEach(([V,w])=>{Object.assign(w,{name:V||w.name||w.id,type:w.type.toLowerCase()})}),k.value={...n})},{immediate:!0,deep:!0});function f(n){c.value.clearFilter(n),y(n)}function d(){c.value.clearAllFilters(),b()}const A=e.computed(()=>Object.entries(h.value).filter(([,n])=>n==null?!1:Array.isArray(n)?n.length>0:typeof n=="string"?n.trim().length>0:!0).map(([n,V])=>{const w=k.value[n],$=w?.label||w?.title||n,D=S(w,V);return{key:n,label:$,value:D}}));function F(n){f(n)}function S(n,V){if(!n||V===void 0||V===null)return"";const w=m(V);if(!w.length)return"";const $=x(n);return w.map(D=>$.get(D)??D).filter(Boolean).join(", ")}function m(n){return Array.isArray(n)?n.map(V=>V?.toString?.()??"").filter(Boolean):typeof n=="string"?n.split(",").map(V=>V.trim()).filter(Boolean):[]}function x(n){const V=new Map,w=n.valueKey||"id",$=n.labelKey||"text";return(n.options??[]).forEach(D=>{const j=E(D,w),N=M(D,$);j&&V.set(j,N||j)}),V}function E(n,V){return n?(n[V]??n.id??n.value??n.key)?.toString?.()??"":""}function M(n,V){return n?(n[V]??n.text??n.label??n.value??n.id)?.toString?.()??"":""}return e.watch(()=>h.value,n=>{if(l.history){const V=new URL(window.location.href),w=new URLSearchParams(window.location.search);Object.keys(n).length>0?w.set("filter",Object.entries(n).filter(([,$])=>$).map(([$,D])=>`${$}=${D}`).join("|")):w.delete("filter"),V.search=decodeURI(w.toString()),window.history.pushState({},"",V)}}),o({clearAllFilters:d,clearFilter:f}),(n,V)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(C()),e.mergeProps(s.value,{schema:k.value,onChange:V[0]||(V[0]=w=>u(w.name,w.value)),onClear:V[1]||(V[1]=w=>y(w.name)),onClearAll:b,ref_key:"filterRef",ref:c}),e.createSlots({default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:2},[e.unref(g).trigger?{name:"trigger",fn:e.withCtx(w=>[e.renderSlot(n.$slots,"trigger",e.normalizeProps(e.guardReactiveProps(w)))]),key:"0"}:void 0]),1040,["schema"])),B.value&&A.value.length?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:B.value},[e.createElementVNode("div",yn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,w=>(e.openBlock(),e.createElementBlock("button",{key:w.key,type:"button",class:"ga1u8 zw1wr sr4j9 flex items-center zu875 kew0r w9dei w4xo0 kghwt wz1vo focus:outline-hidden gugmw dark:bg-emerald-500 dark:hover:bg-emerald-600 dark:focus:bg-emerald-600 bg-white border border-gray-200 px-3 py-1 rounded-full text-sm text-gray-700",onClick:$=>F(w.key)},[e.createElementVNode("span",hn,[e.createElementVNode("span",bn,e.toDisplayString(w.label),1),e.createElementVNode("span",xn,"· "+e.toDisplayString(w.value),1)]),V[2]||(V[2]=e.createElementVNode("span",{class:"g424j flex flex-col jkwm1 items-center b9gop aqyoh ad7q2 kghwt t4363 q7nhl dark:text-emerald-500"},[e.createElementVNode("svg",{class:"e731n u28hb",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("path",{d:"M18 6 6 18"}),e.createElementVNode("path",{d:"m6 6 12 12"})])],-1))],8,gn))),128))])],8,["to"])):e.createCommentVNode("",!0)],64))}});Q.install=function(o){o.component("Filter",Q),o.component("FilterField",_)},T.Filter=Q,T.FilterField=_,T.default=Q,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.34",
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.36",
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
+ }