@gbmtech/aurora-ui 0.4.58 → 0.4.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,a)=>{for(var t in a)__webpack_require__.o(a,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},__webpack_require__.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{DateTimePicker:()=>DateTimePicker});let jsx_runtime_namespaceObject=require("react/jsx-runtime"),react_namespaceObject=require("@phosphor-icons/react"),external_date_fns_namespaceObject=require("date-fns"),locale_namespaceObject=require("date-fns/locale"),external_react_namespaceObject=require("react"),external_react_day_picker_namespaceObject=require("react-day-picker"),external_month_year_picker_cjs_namespaceObject=require("./month-year-picker.cjs"),external_time_item_cjs_namespaceObject=require("./time-item.cjs"),external_button_cjs_namespaceObject=require("../button.cjs"),external_popover_cjs_namespaceObject=require("../popover.cjs"),index_cjs_namespaceObject=require("../../lib/index.cjs"),external_calendar_cjs_namespaceObject=require("../calendar.cjs"),external_scroll_area_cjs_namespaceObject=require("../scroll-area.cjs"),AM_VALUE=0,PM_VALUE=1;function DateTimePicker({value:e,onChange:a,min:t,max:c,timezone:s,hideTime:n,use12HourFormat:r=!1,disabled:_,clearable:l,classNames:m,timePicker:i,modal:j=!1,variant:o="outline",size:p="default",hasCalendarIcon:u=!0,...b}){let[x,d]=(0,external_react_namespaceObject.useState)(!1),[O,f]=(0,external_react_namespaceObject.useState)(!1),h=(0,external_react_namespaceObject.useMemo)(()=>new external_react_day_picker_namespaceObject.TZDate(e||new Date,s),[e,s]),[v,g]=(0,external_react_namespaceObject.useState)(h),[M,y]=(0,external_react_namespaceObject.useState)(h),k=(0,external_react_namespaceObject.useMemo)(()=>(0,external_date_fns_namespaceObject.setYear)(v,(0,external_date_fns_namespaceObject.getYear)(v)+1),[v]),S=(0,external_react_namespaceObject.useMemo)(()=>t?new external_react_day_picker_namespaceObject.TZDate(t,s):void 0,[t,s]),w=(0,external_react_namespaceObject.useMemo)(()=>c?new external_react_day_picker_namespaceObject.TZDate(c,s):void 0,[c,s]),N=(0,external_react_namespaceObject.useCallback)(e=>{e.setHours(M.getHours(),M.getMinutes(),M.getSeconds()),t&&e<t&&e.setHours(t.getHours(),t.getMinutes(),t.getSeconds()),c&&e>c&&e.setHours(c.getHours(),c.getMinutes(),c.getSeconds()),y(e)},[y,g]),C=(0,external_react_namespaceObject.useCallback)(()=>{a(new Date(M)),d(!1)},[M,a]),T=(0,external_react_namespaceObject.useCallback)((e,a)=>{g(e),"year"===a?f("month"):f(!1)},[g,f]),P=(0,external_react_namespaceObject.useCallback)(()=>{g((0,external_date_fns_namespaceObject.addMonths)(v,1))},[v]),H=(0,external_react_namespaceObject.useCallback)(()=>{g((0,external_date_fns_namespaceObject.subMonths)(v,1))},[v]);(0,external_react_namespaceObject.useEffect)(()=>{x&&(y(h),g(h),f(!1))},[x,h]);let q=(0,external_react_namespaceObject.useMemo)(()=>x||e?x?M:h:e,[M,e,x]),I=(0,external_react_namespaceObject.useMemo)(()=>q?(0,external_date_fns_namespaceObject.format)(q,"dd/MM/yyyy"+(n?"":" HH:mm")):"Selecione uma data",[q,n,r]);return(0,jsx_runtime_namespaceObject.jsxs)(external_popover_cjs_namespaceObject.Popover,{open:x,onOpenChange:d,modal:j,children:[(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverTrigger,{disabled:_,asChild:!0,children:(0,jsx_runtime_namespaceObject.jsxs)("div",{className:(0,index_cjs_namespaceObject.cn)((0,external_button_cjs_namespaceObject.buttonVariants)({variant:o,size:p}),"ps-3 pe-1 font-normal",!q&&"text-muted-foreground",(!l||!e)&&"pe-3",m?.trigger),children:[(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex flex-grow items-center",children:[u&&(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CalendarBlankIcon,{className:"mr-2 size-4"}),I]}),l&&e&&(0,jsx_runtime_namespaceObject.jsx)(external_button_cjs_namespaceObject.Button,{disabled:_,variant:"ghost",size:"sm","aria-label":"Clear date",className:"ms-1 size-6 p-1",onClick:e=>{e.stopPropagation(),e.preventDefault(),a(void 0),d(!1)},children:(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.XIcon,{className:"size-4"})})]})}),(0,jsx_runtime_namespaceObject.jsxs)(external_popover_cjs_namespaceObject.PopoverContent,{className:"w-auto p-2",children:[(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex items-center justify-between",children:[(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"ms-2 flex cursor-pointer items-center font-bold text-md",children:[(0,jsx_runtime_namespaceObject.jsxs)("div",{children:[(0,jsx_runtime_namespaceObject.jsx)("button",{type:"button",onClick:()=>f("month"!==O&&"month"),children:(0,external_date_fns_namespaceObject.format)(v,"MMMM",{locale:locale_namespaceObject.ptBR}).charAt(0).toUpperCase()+(0,external_date_fns_namespaceObject.format)(v,"MMMM",{locale:locale_namespaceObject.ptBR}).slice(1)}),(0,jsx_runtime_namespaceObject.jsx)("button",{type:"button",className:"ms-1",onClick:()=>f("year"!==O&&"year"),children:(0,external_date_fns_namespaceObject.format)(v,"yyyy")})]}),(0,jsx_runtime_namespaceObject.jsx)(external_button_cjs_namespaceObject.Button,{variant:"ghost",size:"icon",className:"ml-1 size-6",onClick:()=>f(!O&&"year"),children:O?(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretUpIcon,{}):(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretDownIcon,{})})]}),(0,jsx_runtime_namespaceObject.jsxs)("div",{className:(0,index_cjs_namespaceObject.cn)("flex space-x-2",O?"hidden":""),children:[(0,jsx_runtime_namespaceObject.jsx)(external_button_cjs_namespaceObject.Button,{variant:"ghost",size:"icon",onClick:H,children:(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretLeftIcon,{})}),(0,jsx_runtime_namespaceObject.jsx)(external_button_cjs_namespaceObject.Button,{variant:"ghost",size:"icon",onClick:P,children:(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretRightIcon,{})})]})]}),(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"relative overflow-hidden",children:[(0,jsx_runtime_namespaceObject.jsx)(external_calendar_cjs_namespaceObject.Calendar,{mode:"single",timeZone:s,selected:M,onSelect:e=>e&&N(e),month:v,endMonth:k,disabled:[c?{after:c}:null,t?{before:t}:null].filter(Boolean),onMonthChange:g,showOutsideDays:!0,classNames:{[external_react_day_picker_namespaceObject.UI.Root]:"py-2 px-0",[external_react_day_picker_namespaceObject.UI.MonthCaption]:"hidden",[external_react_day_picker_namespaceObject.UI.NextMonthButton]:"hidden",[external_react_day_picker_namespaceObject.UI.PreviousMonthButton]:"hidden"},...b}),(0,jsx_runtime_namespaceObject.jsx)("div",{className:(0,index_cjs_namespaceObject.cn)("absolute top-0 right-0 bottom-0 left-0",O?"bg-background":"hidden")}),(0,jsx_runtime_namespaceObject.jsx)(external_month_year_picker_cjs_namespaceObject.MonthYearPicker,{value:v,mode:O,onChange:T,minDate:S,maxDate:w,className:(0,index_cjs_namespaceObject.cn)("absolute top-0 right-0 bottom-0 left-0",O?"":"hidden")})]}),(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex flex-col gap-2",children:[!n&&(0,jsx_runtime_namespaceObject.jsx)(TimePicker,{timePicker:i,value:M,onChange:y,use12HourFormat:r,min:S,max:w}),(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex flex-row-reverse items-center justify-between",children:[(0,jsx_runtime_namespaceObject.jsx)(external_button_cjs_namespaceObject.Button,{className:"ms-2 h-7 px-2 text-sm",onClick:C,children:"Salvar"}),s&&(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"text-sm",children:[(0,jsx_runtime_namespaceObject.jsx)("span",{children:"Timezone:"}),(0,jsx_runtime_namespaceObject.jsx)("span",{className:"ms-1 font-semibold",children:s})]})]})]})]})]})}function TimePicker({value:e,onChange:a,use12HourFormat:t,min:c,max:s,timePicker:n}){let r=(0,external_react_namespaceObject.useMemo)(()=>t?"yyyy-MM-dd hh:mm:ss.SSS a xxxx":"yyyy-MM-dd HH:mm:ss.SSS xxxx",[t]),[_,l]=(0,external_react_namespaceObject.useState)(+("AM"!==(0,external_date_fns_namespaceObject.format)(e,"a"))),[m,i]=(0,external_react_namespaceObject.useState)(t?+(0,external_date_fns_namespaceObject.format)(e,"hh"):e.getHours()),[j,o]=(0,external_react_namespaceObject.useState)(e.getMinutes()),[p,u]=(0,external_react_namespaceObject.useState)(e.getSeconds());(0,external_react_namespaceObject.useEffect)(()=>{a(buildTime({use12HourFormat:t,value:e,formatStr:r,hour:m,minute:j,second:p,ampm:_}))},[m,j,p,_,r,t]);let b=(0,external_react_namespaceObject.useMemo)(()=>t?m%12+12*_:m,[e,t,_]),x=(0,external_react_namespaceObject.useMemo)(()=>Array.from({length:t?12:24},(a,n)=>{let r=!1,l=t&&0===n?12:n,m=(0,external_date_fns_namespaceObject.setHours)(e,t?n+12*_:n),i=(0,external_date_fns_namespaceObject.startOfHour)(m),j=(0,external_date_fns_namespaceObject.endOfHour)(m);return c&&j<c&&(r=!0),s&&i>s&&(r=!0),{value:l,label:l.toString().padStart(2,"0"),disabled:r}}),[e,c,s,t,_]),d=(0,external_react_namespaceObject.useMemo)(()=>{let a=(0,external_date_fns_namespaceObject.setHours)(e,b);return Array.from({length:60},(e,t)=>{let n=!1,r=(0,external_date_fns_namespaceObject.setMinutes)(a,t),_=(0,external_date_fns_namespaceObject.startOfMinute)(r),l=(0,external_date_fns_namespaceObject.endOfMinute)(r);return c&&l<c&&(n=!0),s&&_>s&&(n=!0),{value:t,label:t.toString().padStart(2,"0"),disabled:n}})},[e,c,s,b]),O=(0,external_react_namespaceObject.useMemo)(()=>{let a=(0,external_date_fns_namespaceObject.setMilliseconds)((0,external_date_fns_namespaceObject.setMinutes)((0,external_date_fns_namespaceObject.setHours)(e,b),j),0),t=c?(0,external_date_fns_namespaceObject.setMilliseconds)(c,0):void 0,n=s?(0,external_date_fns_namespaceObject.setMilliseconds)(s,0):void 0;return Array.from({length:60},(e,c)=>{let s=!1,r=(0,external_date_fns_namespaceObject.setSeconds)(a,c);return t&&r<t&&(s=!0),n&&r>n&&(s=!0),{value:c,label:c.toString().padStart(2,"0"),disabled:s}})},[e,j,c,s,b]),f=(0,external_react_namespaceObject.useMemo)(()=>{let a=(0,external_date_fns_namespaceObject.startOfDay)(e),t=(0,external_date_fns_namespaceObject.endOfDay)(e);return[{value:0,label:"AM"},{value:1,label:"PM"}].map(e=>{let n=!1,r=(0,external_date_fns_namespaceObject.addHours)(a,12*e.value),_=(0,external_date_fns_namespaceObject.subHours)(t,(1-e.value)*12);return c&&_<c&&(n=!0),s&&r>s&&(n=!0),{...e,disabled:n}})},[e,c,s]),[h,v]=(0,external_react_namespaceObject.useState)(!1),g=(0,external_react_namespaceObject.useRef)(null),M=(0,external_react_namespaceObject.useRef)(null),y=(0,external_react_namespaceObject.useRef)(null);(0,external_react_namespaceObject.useEffect)(()=>{let e=setTimeout(()=>{h&&(g.current?.scrollIntoView({behavior:"auto"}),M.current?.scrollIntoView({behavior:"auto"}),y.current?.scrollIntoView({behavior:"auto"}))},1);return()=>clearTimeout(e)},[h]);let k=(0,external_react_namespaceObject.useCallback)(a=>{c&&buildTime({use12HourFormat:t,value:e,formatStr:r,hour:a.value,minute:j,second:p,ampm:_})<c&&(o(c.getMinutes()),u(c.getSeconds())),s&&buildTime({use12HourFormat:t,value:e,formatStr:r,hour:a.value,minute:j,second:p,ampm:_})>s&&(o(s.getMinutes()),u(s.getSeconds())),i(a.value)},[i,t,e,r,j,p,_]),S=(0,external_react_namespaceObject.useCallback)(a=>{if(c&&buildTime({use12HourFormat:t,value:e,formatStr:r,hour:a.value,minute:j,second:p,ampm:_})<c&&u(c.getSeconds()),s){let c=buildTime({use12HourFormat:t,value:e,formatStr:r,hour:a.value,minute:j,second:p,ampm:_});c>s&&u(c.getSeconds())}o(a.value)},[o,t,e,r,m,p,_]),w=(0,external_react_namespaceObject.useCallback)(a=>{if(c&&buildTime({use12HourFormat:t,value:e,formatStr:r,hour:m,minute:j,second:p,ampm:a.value})<c){let e=c.getHours()%12;i(0===e?12:e),o(c.getMinutes()),u(c.getSeconds())}if(s&&buildTime({use12HourFormat:t,value:e,formatStr:r,hour:m,minute:j,second:p,ampm:a.value})>s){let e=s.getHours()%12;i(0===e?12:e),o(s.getMinutes()),u(s.getSeconds())}l(a.value)},[l,t,e,r,m,j,p,c,s]),N=(0,external_react_namespaceObject.useMemo)(()=>{let a=[];for(let e of["hour","minute","second"])(!n||n[e])&&("hour"===e?a.push(t?"hh":"HH"):a.push("minute"===e?"mm":"ss"));return(0,external_date_fns_namespaceObject.format)(e,a.join(":")+(t?" a":""))},[e,t,n]);return(0,jsx_runtime_namespaceObject.jsxs)(external_popover_cjs_namespaceObject.Popover,{open:h,onOpenChange:v,children:[(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverTrigger,{asChild:!0,children:(0,jsx_runtime_namespaceObject.jsxs)(external_button_cjs_namespaceObject.Button,{variant:"outline",size:"sm","aria-expanded":h,className:"justify-between font-mono",children:[(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.ClockIcon,{className:"mr-2 size-4"}),N,(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretDownIcon,{className:"ml-2 size-4 shrink-0 opacity-50"})]})}),(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverContent,{className:"p-0",side:"top",children:(0,jsx_runtime_namespaceObject.jsx)("div",{className:"flex-col gap-2 p-2",children:(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex h-56 grow",children:[(!n||n.hour)&&(0,jsx_runtime_namespaceObject.jsx)(external_scroll_area_cjs_namespaceObject.ScrollArea,{className:"h-full flex-grow",children:(0,jsx_runtime_namespaceObject.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48",children:x.map(e=>(0,jsx_runtime_namespaceObject.jsx)("div",{ref:e.value===m?g:void 0,children:(0,jsx_runtime_namespaceObject.jsx)(external_time_item_cjs_namespaceObject.TimeItem,{option:e,selected:e.value===m,onSelect:k,className:"h-8",disabled:e.disabled})},e.value))})}),(!n||n.minute)&&(0,jsx_runtime_namespaceObject.jsx)(external_scroll_area_cjs_namespaceObject.ScrollArea,{className:"h-full flex-grow",children:(0,jsx_runtime_namespaceObject.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48",children:d.map(e=>(0,jsx_runtime_namespaceObject.jsx)("div",{ref:e.value===j?M:void 0,children:(0,jsx_runtime_namespaceObject.jsx)(external_time_item_cjs_namespaceObject.TimeItem,{option:e,selected:e.value===j,onSelect:S,className:"h-8",disabled:e.disabled})},e.value))})}),(!n||n.second)&&(0,jsx_runtime_namespaceObject.jsx)(external_scroll_area_cjs_namespaceObject.ScrollArea,{className:"h-full flex-grow",children:(0,jsx_runtime_namespaceObject.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48",children:O.map(e=>(0,jsx_runtime_namespaceObject.jsx)("div",{ref:e.value===p?y:void 0,children:(0,jsx_runtime_namespaceObject.jsx)(external_time_item_cjs_namespaceObject.TimeItem,{option:e,selected:e.value===p,onSelect:e=>u(e.value),className:"h-8",disabled:e.disabled})},e.value))})}),t&&(0,jsx_runtime_namespaceObject.jsx)(external_scroll_area_cjs_namespaceObject.ScrollArea,{className:"h-full flex-grow",children:(0,jsx_runtime_namespaceObject.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2",children:f.map(e=>(0,jsx_runtime_namespaceObject.jsx)(external_time_item_cjs_namespaceObject.TimeItem,{option:e,selected:e.value===_,onSelect:w,className:"h-8",disabled:e.disabled},e.value))})})]})})})]})}function buildTime(e){let a,{use12HourFormat:t,value:c,formatStr:s,hour:n,minute:r,second:_,ampm:l}=e;if(t){let e=(0,external_date_fns_namespaceObject.format)(c,s),t=e.slice(0,11)+n.toString().padStart(2,"0")+e.slice(13);t=(t=(t=t.slice(0,14)+r.toString().padStart(2,"0")+t.slice(16)).slice(0,17)+_.toString().padStart(2,"0")+t.slice(19)).slice(0,24)+(0===l?"AM":"PM")+t.slice(26),a=(0,external_date_fns_namespaceObject.parse)(t,s,c)}else a=(0,external_date_fns_namespaceObject.setHours)((0,external_date_fns_namespaceObject.setMinutes)((0,external_date_fns_namespaceObject.setSeconds)(c,_),r),n);return a}for(var __webpack_i__ in exports.DateTimePicker=__webpack_exports__.DateTimePicker,__webpack_exports__)-1===["DateTimePicker"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
1
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,a)=>{for(var t in a)__webpack_require__.o(a,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},__webpack_require__.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{DateTimePicker:()=>DateTimePicker});let jsx_runtime_namespaceObject=require("react/jsx-runtime"),react_namespaceObject=require("@phosphor-icons/react"),external_date_fns_namespaceObject=require("date-fns"),locale_namespaceObject=require("date-fns/locale"),external_react_namespaceObject=require("react"),external_react_day_picker_namespaceObject=require("react-day-picker"),index_cjs_namespaceObject=require("../../lib/index.cjs"),external_button_cjs_namespaceObject=require("../button.cjs"),external_calendar_cjs_namespaceObject=require("../calendar.cjs"),external_popover_cjs_namespaceObject=require("../popover.cjs"),external_scroll_area_cjs_namespaceObject=require("../scroll-area.cjs"),external_month_year_picker_cjs_namespaceObject=require("./month-year-picker.cjs"),external_time_item_cjs_namespaceObject=require("./time-item.cjs"),AM_VALUE=0,PM_VALUE=1;function DateTimePicker({value:e,onChange:a,min:t,max:c,timezone:s,hideTime:n,use12HourFormat:r=!1,disabled:_,clearable:l,classNames:m,timePicker:i,modal:o=!1,variant:j="outline",size:p="default",hasCalendarIcon:u=!0,...b}){let[x,d]=(0,external_react_namespaceObject.useState)(!1),[O,f]=(0,external_react_namespaceObject.useState)(!1),h=(0,external_react_namespaceObject.useMemo)(()=>new external_react_day_picker_namespaceObject.TZDate(e||new Date,s),[e,s]),[v,g]=(0,external_react_namespaceObject.useState)(h),[M,k]=(0,external_react_namespaceObject.useState)(h),y=(0,external_react_namespaceObject.useMemo)(()=>(0,external_date_fns_namespaceObject.setYear)(v,(0,external_date_fns_namespaceObject.getYear)(v)+1),[v]),S=(0,external_react_namespaceObject.useMemo)(()=>t?new external_react_day_picker_namespaceObject.TZDate(t,s):void 0,[t,s]),w=(0,external_react_namespaceObject.useMemo)(()=>c?new external_react_day_picker_namespaceObject.TZDate(c,s):void 0,[c,s]),N=(0,external_react_namespaceObject.useCallback)(e=>{e.setHours(M.getHours(),M.getMinutes(),M.getSeconds()),t&&e<t&&e.setHours(t.getHours(),t.getMinutes(),t.getSeconds()),c&&e>c&&e.setHours(c.getHours(),c.getMinutes(),c.getSeconds()),k(e)},[k,g]),C=(0,external_react_namespaceObject.useCallback)(()=>{a(new Date(M)),d(!1)},[M,a]),T=(0,external_react_namespaceObject.useCallback)((e,a)=>{g(e),"year"===a?f("month"):f(!1)},[g,f]),P=(0,external_react_namespaceObject.useCallback)(()=>{g((0,external_date_fns_namespaceObject.addMonths)(v,1))},[v]),H=(0,external_react_namespaceObject.useCallback)(()=>{g((0,external_date_fns_namespaceObject.subMonths)(v,1))},[v]);(0,external_react_namespaceObject.useEffect)(()=>{x&&(k(h),g(h),f(!1))},[x,h]);let q=(0,external_react_namespaceObject.useMemo)(()=>x||e?x?M:h:e,[M,e,x]),I=(0,external_react_namespaceObject.useMemo)(()=>q?(0,external_date_fns_namespaceObject.format)(q,"dd/MM/yyyy"+(n?"":" HH:mm")):"Selecione uma data",[q,n,r]);return(0,jsx_runtime_namespaceObject.jsxs)(external_popover_cjs_namespaceObject.Popover,{open:x,onOpenChange:d,modal:o,children:[(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverTrigger,{disabled:_,asChild:!0,children:(0,jsx_runtime_namespaceObject.jsxs)("div",{className:(0,index_cjs_namespaceObject.cn)((0,external_button_cjs_namespaceObject.buttonVariants)({variant:j,size:p}),"ps-3 pe-1 font-normal hover:bg-transparent dark:hover:bg-input/50",!q&&"text-muted-foreground",(!l||!e)&&"pe-3",m?.trigger),children:[(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex flex-grow items-center",children:[u&&(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CalendarBlankIcon,{className:"mr-2 size-4"}),I]}),l&&e&&(0,jsx_runtime_namespaceObject.jsx)(external_button_cjs_namespaceObject.Button,{disabled:_,variant:"ghost",size:"sm","aria-label":"Clear date",className:"ms-1 size-6 p-1",onClick:e=>{e.stopPropagation(),e.preventDefault(),a(void 0),d(!1)},children:(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.XIcon,{className:"size-4"})})]})}),(0,jsx_runtime_namespaceObject.jsxs)(external_popover_cjs_namespaceObject.PopoverContent,{className:"w-auto p-2",children:[(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex items-center justify-between",children:[(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"ms-2 flex cursor-pointer items-center font-bold text-md",children:[(0,jsx_runtime_namespaceObject.jsxs)("div",{children:[(0,jsx_runtime_namespaceObject.jsx)("button",{type:"button",onClick:()=>f("month"!==O&&"month"),children:(0,external_date_fns_namespaceObject.format)(v,"MMMM",{locale:locale_namespaceObject.ptBR}).charAt(0).toUpperCase()+(0,external_date_fns_namespaceObject.format)(v,"MMMM",{locale:locale_namespaceObject.ptBR}).slice(1)}),(0,jsx_runtime_namespaceObject.jsx)("button",{type:"button",className:"ms-1",onClick:()=>f("year"!==O&&"year"),children:(0,external_date_fns_namespaceObject.format)(v,"yyyy")})]}),(0,jsx_runtime_namespaceObject.jsx)(external_button_cjs_namespaceObject.Button,{variant:"ghost",size:"icon",className:"ml-1 size-6",onClick:()=>f(!O&&"year"),children:O?(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretUpIcon,{}):(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretDownIcon,{})})]}),(0,jsx_runtime_namespaceObject.jsxs)("div",{className:(0,index_cjs_namespaceObject.cn)("flex space-x-2",O?"hidden":""),children:[(0,jsx_runtime_namespaceObject.jsx)(external_button_cjs_namespaceObject.Button,{variant:"ghost",size:"icon",onClick:H,children:(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretLeftIcon,{})}),(0,jsx_runtime_namespaceObject.jsx)(external_button_cjs_namespaceObject.Button,{variant:"ghost",size:"icon",onClick:P,children:(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretRightIcon,{})})]})]}),(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"relative overflow-hidden",children:[(0,jsx_runtime_namespaceObject.jsx)(external_calendar_cjs_namespaceObject.Calendar,{mode:"single",timeZone:s,selected:M,onSelect:e=>e&&N(e),month:v,endMonth:y,disabled:[c?{after:c}:null,t?{before:t}:null].filter(Boolean),onMonthChange:g,showOutsideDays:!0,classNames:{[external_react_day_picker_namespaceObject.UI.Root]:"py-2 px-0",[external_react_day_picker_namespaceObject.UI.MonthCaption]:"hidden",[external_react_day_picker_namespaceObject.UI.NextMonthButton]:"hidden",[external_react_day_picker_namespaceObject.UI.PreviousMonthButton]:"hidden"},...b}),(0,jsx_runtime_namespaceObject.jsx)("div",{className:(0,index_cjs_namespaceObject.cn)("absolute top-0 right-0 bottom-0 left-0",O?"bg-background":"hidden")}),(0,jsx_runtime_namespaceObject.jsx)(external_month_year_picker_cjs_namespaceObject.MonthYearPicker,{value:v,mode:O,onChange:T,minDate:S,maxDate:w,className:(0,index_cjs_namespaceObject.cn)("absolute top-0 right-0 bottom-0 left-0",O?"":"hidden")})]}),(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex flex-col gap-2",children:[!n&&(0,jsx_runtime_namespaceObject.jsx)(TimePicker,{timePicker:i,value:M,onChange:k,use12HourFormat:r,min:S,max:w}),(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex flex-row-reverse items-center justify-between",children:[(0,jsx_runtime_namespaceObject.jsx)(external_button_cjs_namespaceObject.Button,{className:"ms-2 h-7 px-2 text-sm",onClick:C,children:"Salvar"}),s&&(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"text-sm",children:[(0,jsx_runtime_namespaceObject.jsx)("span",{children:"Timezone:"}),(0,jsx_runtime_namespaceObject.jsx)("span",{className:"ms-1 font-semibold",children:s})]})]})]})]})]})}function TimePicker({value:e,onChange:a,use12HourFormat:t,min:c,max:s,timePicker:n}){let r=(0,external_react_namespaceObject.useMemo)(()=>t?"yyyy-MM-dd hh:mm:ss.SSS a xxxx":"yyyy-MM-dd HH:mm:ss.SSS xxxx",[t]),[_,l]=(0,external_react_namespaceObject.useState)(+("AM"!==(0,external_date_fns_namespaceObject.format)(e,"a"))),[m,i]=(0,external_react_namespaceObject.useState)(t?+(0,external_date_fns_namespaceObject.format)(e,"hh"):e.getHours()),[o,j]=(0,external_react_namespaceObject.useState)(e.getMinutes()),[p,u]=(0,external_react_namespaceObject.useState)(e.getSeconds());(0,external_react_namespaceObject.useEffect)(()=>{a(buildTime({use12HourFormat:t,value:e,formatStr:r,hour:m,minute:o,second:p,ampm:_}))},[m,o,p,_,r,t]);let b=(0,external_react_namespaceObject.useMemo)(()=>t?m%12+12*_:m,[e,t,_]),x=(0,external_react_namespaceObject.useMemo)(()=>Array.from({length:t?12:24},(a,n)=>{let r=!1,l=t&&0===n?12:n,m=(0,external_date_fns_namespaceObject.setHours)(e,t?n+12*_:n),i=(0,external_date_fns_namespaceObject.startOfHour)(m),o=(0,external_date_fns_namespaceObject.endOfHour)(m);return c&&o<c&&(r=!0),s&&i>s&&(r=!0),{value:l,label:l.toString().padStart(2,"0"),disabled:r}}),[e,c,s,t,_]),d=(0,external_react_namespaceObject.useMemo)(()=>{let a=(0,external_date_fns_namespaceObject.setHours)(e,b);return Array.from({length:60},(e,t)=>{let n=!1,r=(0,external_date_fns_namespaceObject.setMinutes)(a,t),_=(0,external_date_fns_namespaceObject.startOfMinute)(r),l=(0,external_date_fns_namespaceObject.endOfMinute)(r);return c&&l<c&&(n=!0),s&&_>s&&(n=!0),{value:t,label:t.toString().padStart(2,"0"),disabled:n}})},[e,c,s,b]),O=(0,external_react_namespaceObject.useMemo)(()=>{let a=(0,external_date_fns_namespaceObject.setMilliseconds)((0,external_date_fns_namespaceObject.setMinutes)((0,external_date_fns_namespaceObject.setHours)(e,b),o),0),t=c?(0,external_date_fns_namespaceObject.setMilliseconds)(c,0):void 0,n=s?(0,external_date_fns_namespaceObject.setMilliseconds)(s,0):void 0;return Array.from({length:60},(e,c)=>{let s=!1,r=(0,external_date_fns_namespaceObject.setSeconds)(a,c);return t&&r<t&&(s=!0),n&&r>n&&(s=!0),{value:c,label:c.toString().padStart(2,"0"),disabled:s}})},[e,o,c,s,b]),f=(0,external_react_namespaceObject.useMemo)(()=>{let a=(0,external_date_fns_namespaceObject.startOfDay)(e),t=(0,external_date_fns_namespaceObject.endOfDay)(e);return[{value:0,label:"AM"},{value:1,label:"PM"}].map(e=>{let n=!1,r=(0,external_date_fns_namespaceObject.addHours)(a,12*e.value),_=(0,external_date_fns_namespaceObject.subHours)(t,(1-e.value)*12);return c&&_<c&&(n=!0),s&&r>s&&(n=!0),{...e,disabled:n}})},[e,c,s]),[h,v]=(0,external_react_namespaceObject.useState)(!1),g=(0,external_react_namespaceObject.useRef)(null),M=(0,external_react_namespaceObject.useRef)(null),k=(0,external_react_namespaceObject.useRef)(null);(0,external_react_namespaceObject.useEffect)(()=>{let e=setTimeout(()=>{h&&(g.current?.scrollIntoView({behavior:"auto"}),M.current?.scrollIntoView({behavior:"auto"}),k.current?.scrollIntoView({behavior:"auto"}))},1);return()=>clearTimeout(e)},[h]);let y=(0,external_react_namespaceObject.useCallback)(a=>{c&&buildTime({use12HourFormat:t,value:e,formatStr:r,hour:a.value,minute:o,second:p,ampm:_})<c&&(j(c.getMinutes()),u(c.getSeconds())),s&&buildTime({use12HourFormat:t,value:e,formatStr:r,hour:a.value,minute:o,second:p,ampm:_})>s&&(j(s.getMinutes()),u(s.getSeconds())),i(a.value)},[i,t,e,r,o,p,_]),S=(0,external_react_namespaceObject.useCallback)(a=>{if(c&&buildTime({use12HourFormat:t,value:e,formatStr:r,hour:a.value,minute:o,second:p,ampm:_})<c&&u(c.getSeconds()),s){let c=buildTime({use12HourFormat:t,value:e,formatStr:r,hour:a.value,minute:o,second:p,ampm:_});c>s&&u(c.getSeconds())}j(a.value)},[j,t,e,r,m,p,_]),w=(0,external_react_namespaceObject.useCallback)(a=>{if(c&&buildTime({use12HourFormat:t,value:e,formatStr:r,hour:m,minute:o,second:p,ampm:a.value})<c){let e=c.getHours()%12;i(0===e?12:e),j(c.getMinutes()),u(c.getSeconds())}if(s&&buildTime({use12HourFormat:t,value:e,formatStr:r,hour:m,minute:o,second:p,ampm:a.value})>s){let e=s.getHours()%12;i(0===e?12:e),j(s.getMinutes()),u(s.getSeconds())}l(a.value)},[l,t,e,r,m,o,p,c,s]),N=(0,external_react_namespaceObject.useMemo)(()=>{let a=[];for(let e of["hour","minute","second"])(!n||n[e])&&("hour"===e?a.push(t?"hh":"HH"):a.push("minute"===e?"mm":"ss"));return(0,external_date_fns_namespaceObject.format)(e,a.join(":")+(t?" a":""))},[e,t,n]);return(0,jsx_runtime_namespaceObject.jsxs)(external_popover_cjs_namespaceObject.Popover,{open:h,onOpenChange:v,children:[(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverTrigger,{asChild:!0,children:(0,jsx_runtime_namespaceObject.jsxs)(external_button_cjs_namespaceObject.Button,{variant:"outline",size:"sm","aria-expanded":h,className:"justify-between font-mono",children:[(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.ClockIcon,{className:"mr-2 size-4"}),N,(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretDownIcon,{className:"ml-2 size-4 shrink-0 opacity-50"})]})}),(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverContent,{className:"p-0",side:"top",children:(0,jsx_runtime_namespaceObject.jsx)("div",{className:"flex-col gap-2 p-2",children:(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex h-56 grow",children:[(!n||n.hour)&&(0,jsx_runtime_namespaceObject.jsx)(external_scroll_area_cjs_namespaceObject.ScrollArea,{className:"h-full flex-grow",children:(0,jsx_runtime_namespaceObject.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48",children:x.map(e=>(0,jsx_runtime_namespaceObject.jsx)("div",{ref:e.value===m?g:void 0,children:(0,jsx_runtime_namespaceObject.jsx)(external_time_item_cjs_namespaceObject.TimeItem,{option:e,selected:e.value===m,onSelect:y,className:"h-8",disabled:e.disabled})},e.value))})}),(!n||n.minute)&&(0,jsx_runtime_namespaceObject.jsx)(external_scroll_area_cjs_namespaceObject.ScrollArea,{className:"h-full flex-grow",children:(0,jsx_runtime_namespaceObject.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48",children:d.map(e=>(0,jsx_runtime_namespaceObject.jsx)("div",{ref:e.value===o?M:void 0,children:(0,jsx_runtime_namespaceObject.jsx)(external_time_item_cjs_namespaceObject.TimeItem,{option:e,selected:e.value===o,onSelect:S,className:"h-8",disabled:e.disabled})},e.value))})}),(!n||n.second)&&(0,jsx_runtime_namespaceObject.jsx)(external_scroll_area_cjs_namespaceObject.ScrollArea,{className:"h-full flex-grow",children:(0,jsx_runtime_namespaceObject.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48",children:O.map(e=>(0,jsx_runtime_namespaceObject.jsx)("div",{ref:e.value===p?k:void 0,children:(0,jsx_runtime_namespaceObject.jsx)(external_time_item_cjs_namespaceObject.TimeItem,{option:e,selected:e.value===p,onSelect:e=>u(e.value),className:"h-8",disabled:e.disabled})},e.value))})}),t&&(0,jsx_runtime_namespaceObject.jsx)(external_scroll_area_cjs_namespaceObject.ScrollArea,{className:"h-full flex-grow",children:(0,jsx_runtime_namespaceObject.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2",children:f.map(e=>(0,jsx_runtime_namespaceObject.jsx)(external_time_item_cjs_namespaceObject.TimeItem,{option:e,selected:e.value===_,onSelect:w,className:"h-8",disabled:e.disabled},e.value))})})]})})})]})}function buildTime(e){let a,{use12HourFormat:t,value:c,formatStr:s,hour:n,minute:r,second:_,ampm:l}=e;if(t){let e=(0,external_date_fns_namespaceObject.format)(c,s),t=e.slice(0,11)+n.toString().padStart(2,"0")+e.slice(13);t=(t=(t=t.slice(0,14)+r.toString().padStart(2,"0")+t.slice(16)).slice(0,17)+_.toString().padStart(2,"0")+t.slice(19)).slice(0,24)+(0===l?"AM":"PM")+t.slice(26),a=(0,external_date_fns_namespaceObject.parse)(t,s,c)}else a=(0,external_date_fns_namespaceObject.setHours)((0,external_date_fns_namespaceObject.setMinutes)((0,external_date_fns_namespaceObject.setSeconds)(c,_),r),n);return a}for(var __webpack_i__ in exports.DateTimePicker=__webpack_exports__.DateTimePicker,__webpack_exports__)-1===["DateTimePicker"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
2
2
  //# sourceMappingURL=datetime-picker.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"components\\datetime-picker\\datetime-picker.cjs","sources":["webpack://@gbmtech/aurora-ui/webpack/runtime/define_property_getters","webpack://@gbmtech/aurora-ui/webpack/runtime/has_own_property","webpack://@gbmtech/aurora-ui/webpack/runtime/make_namespace_object","webpack://@gbmtech/aurora-ui/./src/components/datetime-picker/datetime-picker.tsx"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Shadcn Datetime Picker with support for timezone, date and time selection, minimum and maximum date limits, and 12-hour format...\n * Check out the live demo at https://shadcn-datetime-picker-pro.vercel.app/\n * Find the latest source code at https://github.com/huybuidac/shadcn-datetime-picker\n */\n'use client'\n\nimport {\n CalendarBlankIcon,\n CaretDownIcon,\n CaretLeftIcon,\n CaretRightIcon,\n CaretUpIcon,\n ClockIcon,\n XIcon,\n} from '@phosphor-icons/react'\nimport {\n addHours,\n addMonths,\n endOfDay,\n endOfHour,\n endOfMinute,\n format,\n getYear,\n parse,\n setHours,\n setMilliseconds,\n setMinutes,\n setSeconds,\n setYear,\n startOfDay,\n startOfHour,\n startOfMinute,\n subHours,\n subMonths,\n} from 'date-fns'\nimport { ptBR } from 'date-fns/locale'\nimport type * as React from 'react'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { type DayPicker, type Matcher, TZDate, UI } from 'react-day-picker'\nimport { VariantProps } from 'tailwind-variants'\n\nimport { MonthYearPicker } from './month-year-picker'\nimport { TimeItem } from './time-item'\nimport { Button, buttonVariants } from '../button'\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover'\nimport { cn } from '@/lib'\nimport { Calendar } from '../calendar'\nimport { ScrollArea } from '../scroll-area'\n\nexport type CalendarProps = Omit<React.ComponentProps<typeof DayPicker>, 'mode'>\n\nconst AM_VALUE = 0\nconst PM_VALUE = 1\n\ninterface TimeOption {\n value: number\n label: string\n disabled: boolean\n}\n\nexport type DateTimePickerProps = {\n /**\n * The modality of the popover. When set to true, interaction with outside elements will be disabled and only popover content will be visible to screen readers.\n * If you want to use the datetime picker inside a dialog, you should set this to true.\n * @default false\n */\n modal?: boolean\n /**\n * The datetime value to display and control.\n */\n value: Date | null | undefined\n /**\n * Callback function to handle datetime changes.\n */\n onChange: (date: Date | undefined) => void\n /**\n * The minimum datetime value allowed.\n * @default undefined\n */\n min?: Date\n /**\n * The maximum datetime value allowed.\n */\n max?: Date\n /**\n * The timezone to display the datetime in, based on the date-fns.\n * For a complete list of valid time zone identifiers, refer to:\n * https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @default undefined\n */\n timezone?: string\n /**\n * Whether the datetime picker is disabled.\n * @default false\n */\n disabled?: boolean\n /**\n * Whether to show the time picker.\n * @default false\n */\n hideTime?: boolean\n /**\n * Whether to use 12-hour format.\n * @default false\n */\n use12HourFormat?: boolean\n /**\n * Whether to show the clear button.\n * @default false\n */\n clearable?: boolean\n /**\n * Custom class names for the component.\n */\n classNames?: {\n /**\n * Custom class names for the trigger (the button that opens the picker).\n */\n trigger?: string\n }\n timePicker?: {\n hour?: boolean\n minute?: boolean\n second?: boolean\n }\n size?: VariantProps<typeof buttonVariants>['size']\n variant?: VariantProps<typeof buttonVariants>['variant']\n hasCalendarIcon?: boolean\n}\n\nexport function DateTimePicker({\n value,\n onChange,\n min,\n max,\n timezone,\n hideTime,\n use12HourFormat = false,\n disabled,\n clearable,\n classNames,\n timePicker,\n modal = false,\n variant = 'outline',\n size = 'default',\n hasCalendarIcon = true,\n ...props\n}: DateTimePickerProps & CalendarProps) {\n const [open, setOpen] = useState(false)\n const [monthYearPicker, setMonthYearPicker] = useState<\n 'month' | 'year' | false\n >(false)\n const initDate = useMemo(\n () => new TZDate(value || new Date(), timezone),\n [value, timezone]\n )\n\n const [month, setMonth] = useState<Date>(initDate)\n const [date, setDate] = useState<Date>(initDate)\n\n const endMonth = useMemo(() => {\n return setYear(month, getYear(month) + 1)\n }, [month])\n const minDate = useMemo(\n () => (min ? new TZDate(min, timezone) : undefined),\n [min, timezone]\n )\n const maxDate = useMemo(\n () => (max ? new TZDate(max, timezone) : undefined),\n [max, timezone]\n )\n\n const onDayChanged = useCallback(\n (d: Date) => {\n d.setHours(date.getHours(), date.getMinutes(), date.getSeconds())\n if (min && d < min) {\n d.setHours(min.getHours(), min.getMinutes(), min.getSeconds())\n }\n if (max && d > max) {\n d.setHours(max.getHours(), max.getMinutes(), max.getSeconds())\n }\n setDate(d)\n },\n [setDate, setMonth]\n )\n const onSubmit = useCallback(() => {\n onChange(new Date(date))\n setOpen(false)\n }, [date, onChange])\n\n const onMonthYearChanged = useCallback(\n (d: Date, mode: 'month' | 'year') => {\n setMonth(d)\n if (mode === 'year') {\n setMonthYearPicker('month')\n } else {\n setMonthYearPicker(false)\n }\n },\n [setMonth, setMonthYearPicker]\n )\n const onNextMonth = useCallback(() => {\n setMonth(addMonths(month, 1))\n }, [month])\n const onPrevMonth = useCallback(() => {\n setMonth(subMonths(month, 1))\n }, [month])\n\n useEffect(() => {\n if (open) {\n setDate(initDate)\n setMonth(initDate)\n setMonthYearPicker(false)\n }\n }, [open, initDate])\n\n const displayValue = useMemo(() => {\n if (!open && !value) return value\n return open ? date : initDate\n }, [date, value, open])\n\n const displayFormat = useMemo(() => {\n if (!displayValue) return 'Selecione uma data'\n return format(displayValue, 'dd/MM/yyyy' + (hideTime ? '' : ' HH:mm'))\n }, [displayValue, hideTime, use12HourFormat])\n\n return (\n <Popover open={open} onOpenChange={setOpen} modal={modal}>\n <PopoverTrigger disabled={disabled} asChild>\n <div\n className={cn(\n buttonVariants({ variant, size }),\n 'ps-3 pe-1 font-normal',\n !displayValue && 'text-muted-foreground',\n (!clearable || !value) && 'pe-3',\n classNames?.trigger\n )}\n >\n <div className=\"flex flex-grow items-center\">\n {hasCalendarIcon && <CalendarBlankIcon className=\"mr-2 size-4\" />}\n {displayFormat}\n </div>\n {clearable && value && (\n <Button\n disabled={disabled}\n variant=\"ghost\"\n size=\"sm\"\n aria-label=\"Clear date\"\n className=\"ms-1 size-6 p-1\"\n onClick={e => {\n e.stopPropagation()\n e.preventDefault()\n onChange(undefined)\n setOpen(false)\n }}\n >\n <XIcon className=\"size-4\" />\n </Button>\n )}\n </div>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-2\">\n <div className=\"flex items-center justify-between\">\n <div className=\"ms-2 flex cursor-pointer items-center font-bold text-md\">\n <div>\n <button\n type=\"button\"\n onClick={() =>\n setMonthYearPicker(\n monthYearPicker === 'month' ? false : 'month'\n )\n }\n >\n {format(month, 'MMMM', {\n locale: ptBR,\n })\n .charAt(0)\n .toUpperCase() +\n format(month, 'MMMM', {\n locale: ptBR,\n }).slice(1)}\n </button>\n <button\n type=\"button\"\n className=\"ms-1\"\n onClick={() =>\n setMonthYearPicker(\n monthYearPicker === 'year' ? false : 'year'\n )\n }\n >\n {format(month, 'yyyy')}\n </button>\n </div>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"ml-1 size-6\"\n onClick={() =>\n setMonthYearPicker(monthYearPicker ? false : 'year')\n }\n >\n {monthYearPicker ? <CaretUpIcon /> : <CaretDownIcon />}\n </Button>\n </div>\n <div\n className={cn('flex space-x-2', monthYearPicker ? 'hidden' : '')}\n >\n <Button variant=\"ghost\" size=\"icon\" onClick={onPrevMonth}>\n <CaretLeftIcon />\n </Button>\n <Button variant=\"ghost\" size=\"icon\" onClick={onNextMonth}>\n <CaretRightIcon />\n </Button>\n </div>\n </div>\n <div className=\"relative overflow-hidden\">\n <Calendar\n mode=\"single\"\n timeZone={timezone}\n selected={date}\n onSelect={d => d && onDayChanged(d)}\n month={month}\n endMonth={endMonth}\n disabled={\n [\n max ? { after: max } : null,\n min ? { before: min } : null,\n ].filter(Boolean) as Matcher[]\n }\n onMonthChange={setMonth}\n showOutsideDays={true}\n classNames={{\n [UI.Root]: 'py-2 px-0',\n [UI.MonthCaption]: 'hidden',\n [UI.NextMonthButton]: 'hidden',\n [UI.PreviousMonthButton]: 'hidden',\n }}\n {...props}\n />\n <div\n className={cn(\n 'absolute top-0 right-0 bottom-0 left-0',\n monthYearPicker ? 'bg-background' : 'hidden'\n )}\n />\n <MonthYearPicker\n value={month}\n mode={monthYearPicker}\n onChange={onMonthYearChanged}\n minDate={minDate}\n maxDate={maxDate}\n className={cn(\n 'absolute top-0 right-0 bottom-0 left-0',\n monthYearPicker ? '' : 'hidden'\n )}\n />\n </div>\n <div className=\"flex flex-col gap-2\">\n {!hideTime && (\n <TimePicker\n timePicker={timePicker}\n value={date}\n onChange={setDate}\n use12HourFormat={use12HourFormat}\n min={minDate}\n max={maxDate}\n />\n )}\n <div className=\"flex flex-row-reverse items-center justify-between\">\n <Button className=\"ms-2 h-7 px-2 text-sm\" onClick={onSubmit}>\n Salvar\n </Button>\n {timezone && (\n <div className=\"text-sm\">\n <span>Timezone:</span>\n <span className=\"ms-1 font-semibold\">{timezone}</span>\n </div>\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nfunction TimePicker({\n value,\n onChange,\n use12HourFormat,\n min,\n max,\n timePicker,\n}: {\n use12HourFormat?: boolean\n value: Date\n onChange: (date: Date) => void\n min?: Date\n max?: Date\n timePicker?: DateTimePickerProps['timePicker']\n}) {\n // hours24h = HH\n // hours12h = hh\n const formatStr = useMemo(\n () =>\n use12HourFormat\n ? 'yyyy-MM-dd hh:mm:ss.SSS a xxxx'\n : 'yyyy-MM-dd HH:mm:ss.SSS xxxx',\n [use12HourFormat]\n )\n const [ampm, setAmpm] = useState(\n format(value, 'a') === 'AM' ? AM_VALUE : PM_VALUE\n )\n const [hour, setHour] = useState(\n use12HourFormat ? +format(value, 'hh') : value.getHours()\n )\n const [minute, setMinute] = useState(value.getMinutes())\n const [second, setSecond] = useState(value.getSeconds())\n\n useEffect(() => {\n onChange(\n buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour,\n minute,\n second,\n ampm,\n })\n )\n }, [hour, minute, second, ampm, formatStr, use12HourFormat])\n\n const _hourIn24h = useMemo(() => {\n // if (use12HourFormat) {\n // return (hour % 12) + ampm * 12;\n // }\n return use12HourFormat ? (hour % 12) + ampm * 12 : hour\n }, [value, use12HourFormat, ampm])\n\n const hours: TimeOption[] = useMemo(\n () =>\n Array.from({ length: use12HourFormat ? 12 : 24 }, (_, i) => {\n let disabled = false\n const hourValue = use12HourFormat ? (i === 0 ? 12 : i) : i\n const hDate = setHours(value, use12HourFormat ? i + ampm * 12 : i)\n const hStart = startOfHour(hDate)\n const hEnd = endOfHour(hDate)\n if (min && hEnd < min) disabled = true\n if (max && hStart > max) disabled = true\n return {\n value: hourValue,\n label: hourValue.toString().padStart(2, '0'),\n disabled,\n }\n }),\n [value, min, max, use12HourFormat, ampm]\n )\n const minutes: TimeOption[] = useMemo(() => {\n const anchorDate = setHours(value, _hourIn24h)\n return Array.from({ length: 60 }, (_, i) => {\n let disabled = false\n const mDate = setMinutes(anchorDate, i)\n const mStart = startOfMinute(mDate)\n const mEnd = endOfMinute(mDate)\n if (min && mEnd < min) disabled = true\n if (max && mStart > max) disabled = true\n return {\n value: i,\n label: i.toString().padStart(2, '0'),\n disabled,\n }\n })\n }, [value, min, max, _hourIn24h])\n const seconds: TimeOption[] = useMemo(() => {\n const anchorDate = setMilliseconds(\n setMinutes(setHours(value, _hourIn24h), minute),\n 0\n )\n const _min = min ? setMilliseconds(min, 0) : undefined\n const _max = max ? setMilliseconds(max, 0) : undefined\n return Array.from({ length: 60 }, (_, i) => {\n let disabled = false\n const sDate = setSeconds(anchorDate, i)\n if (_min && sDate < _min) disabled = true\n if (_max && sDate > _max) disabled = true\n return {\n value: i,\n label: i.toString().padStart(2, '0'),\n disabled,\n }\n })\n }, [value, minute, min, max, _hourIn24h])\n const ampmOptions = useMemo(() => {\n const startD = startOfDay(value)\n const endD = endOfDay(value)\n return [\n { value: AM_VALUE, label: 'AM' },\n { value: PM_VALUE, label: 'PM' },\n ].map(v => {\n let disabled = false\n const start = addHours(startD, v.value * 12)\n const end = subHours(endD, (1 - v.value) * 12)\n if (min && end < min) disabled = true\n if (max && start > max) disabled = true\n return { ...v, disabled }\n })\n }, [value, min, max])\n\n const [open, setOpen] = useState(false)\n\n const hourRef = useRef<HTMLDivElement>(null)\n const minuteRef = useRef<HTMLDivElement>(null)\n const secondRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const timeoutId = setTimeout(() => {\n if (open) {\n hourRef.current?.scrollIntoView({ behavior: 'auto' })\n minuteRef.current?.scrollIntoView({ behavior: 'auto' })\n secondRef.current?.scrollIntoView({ behavior: 'auto' })\n }\n }, 1)\n return () => clearTimeout(timeoutId)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onHourChange = useCallback(\n (v: TimeOption) => {\n if (min) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime < min) {\n setMinute(min.getMinutes())\n setSecond(min.getSeconds())\n }\n }\n if (max) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime > max) {\n setMinute(max.getMinutes())\n setSecond(max.getSeconds())\n }\n }\n setHour(v.value)\n },\n [setHour, use12HourFormat, value, formatStr, minute, second, ampm]\n )\n\n const onMinuteChange = useCallback(\n (v: TimeOption) => {\n if (min) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime < min) {\n setSecond(min.getSeconds())\n }\n }\n if (max) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime > max) {\n setSecond(newTime.getSeconds())\n }\n }\n setMinute(v.value)\n },\n [setMinute, use12HourFormat, value, formatStr, hour, second, ampm]\n )\n\n const onAmpmChange = useCallback(\n (v: TimeOption) => {\n if (min) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour,\n minute,\n second,\n ampm: v.value,\n })\n if (newTime < min) {\n const minH = min.getHours() % 12\n setHour(minH === 0 ? 12 : minH)\n setMinute(min.getMinutes())\n setSecond(min.getSeconds())\n }\n }\n if (max) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour,\n minute,\n second,\n ampm: v.value,\n })\n if (newTime > max) {\n const maxH = max.getHours() % 12\n setHour(maxH === 0 ? 12 : maxH)\n setMinute(max.getMinutes())\n setSecond(max.getSeconds())\n }\n }\n setAmpm(v.value)\n },\n [setAmpm, use12HourFormat, value, formatStr, hour, minute, second, min, max]\n )\n\n const display = useMemo(() => {\n const arr = []\n for (const element of ['hour', 'minute', 'second']) {\n if (!timePicker || timePicker[element as keyof typeof timePicker]) {\n if (element === 'hour') {\n arr.push(use12HourFormat ? 'hh' : 'HH')\n } else {\n arr.push(element === 'minute' ? 'mm' : 'ss')\n }\n }\n }\n return format(value, arr.join(':') + (use12HourFormat ? ' a' : ''))\n }, [value, use12HourFormat, timePicker])\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n aria-expanded={open}\n className=\"justify-between font-mono\"\n >\n <ClockIcon className=\"mr-2 size-4\" />\n {display}\n <CaretDownIcon className=\"ml-2 size-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"p-0\" side=\"top\">\n <div className=\"flex-col gap-2 p-2\">\n <div className=\"flex h-56 grow\">\n {(!timePicker || timePicker.hour) && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48\">\n {hours.map(v => (\n <div\n key={v.value}\n ref={v.value === hour ? hourRef : undefined}\n >\n <TimeItem\n option={v}\n selected={v.value === hour}\n onSelect={onHourChange}\n className=\"h-8\"\n disabled={v.disabled}\n />\n </div>\n ))}\n </div>\n </ScrollArea>\n )}\n {(!timePicker || timePicker.minute) && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48\">\n {minutes.map(v => (\n <div\n key={v.value}\n ref={v.value === minute ? minuteRef : undefined}\n >\n <TimeItem\n option={v}\n selected={v.value === minute}\n onSelect={onMinuteChange}\n className=\"h-8\"\n disabled={v.disabled}\n />\n </div>\n ))}\n </div>\n </ScrollArea>\n )}\n {(!timePicker || timePicker.second) && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48\">\n {seconds.map(v => (\n <div\n key={v.value}\n ref={v.value === second ? secondRef : undefined}\n >\n <TimeItem\n option={v}\n selected={v.value === second}\n onSelect={v => setSecond(v.value)}\n className=\"h-8\"\n disabled={v.disabled}\n />\n </div>\n ))}\n </div>\n </ScrollArea>\n )}\n {use12HourFormat && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2\">\n {ampmOptions.map(v => (\n <TimeItem\n key={v.value}\n option={v}\n selected={v.value === ampm}\n onSelect={onAmpmChange}\n className=\"h-8\"\n disabled={v.disabled}\n />\n ))}\n </div>\n </ScrollArea>\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\ninterface BuildTimeOptions {\n use12HourFormat?: boolean\n value: Date\n formatStr: string\n hour: number\n minute: number\n second: number\n ampm: number\n}\n\nfunction buildTime(options: BuildTimeOptions) {\n const { use12HourFormat, value, formatStr, hour, minute, second, ampm } =\n options\n let date: Date\n if (use12HourFormat) {\n const dateStrRaw = format(value, formatStr)\n // yyyy-MM-dd hh:mm:ss.SSS a zzzz\n // 2024-10-14 01:20:07.524 AM GMT+00:00\n let dateStr =\n dateStrRaw.slice(0, 11) +\n hour.toString().padStart(2, '0') +\n dateStrRaw.slice(13)\n dateStr =\n dateStr.slice(0, 14) +\n minute.toString().padStart(2, '0') +\n dateStr.slice(16)\n dateStr =\n dateStr.slice(0, 17) +\n second.toString().padStart(2, '0') +\n dateStr.slice(19)\n dateStr =\n dateStr.slice(0, 24) +\n (ampm === AM_VALUE ? 'AM' : 'PM') +\n dateStr.slice(26)\n date = parse(dateStr, formatStr, value)\n } else {\n date = setHours(setMinutes(setSeconds(value, second), minute), hour)\n }\n return date\n}\n\nexport type { TimeOption }\n"],"names":["__webpack_require__","e","Object","Symbol","AM_VALUE","PM_VALUE","DateTimePicker","value","onChange","min","max","timezone","hideTime","use12HourFormat","disabled","clearable","classNames","timePicker","modal","variant","size","hasCalendarIcon","props","open","setOpen","useState","monthYearPicker","setMonthYearPicker","initDate","useMemo","TZDate","Date","month","setMonth","date","setDate","endMonth","setYear","getYear","minDate","undefined","maxDate","onDayChanged","useCallback","d","onSubmit","onMonthYearChanged","mode","onNextMonth","addMonths","onPrevMonth","subMonths","useEffect","displayValue","displayFormat","format","Popover","PopoverTrigger","cn","buttonVariants","CalendarBlankIcon","Button","XIcon","PopoverContent","ptBR","CaretUpIcon","CaretDownIcon","CaretLeftIcon","CaretRightIcon","Calendar","Boolean","UI","MonthYearPicker","TimePicker","formatStr","ampm","setAmpm","hour","setHour","minute","setMinute","second","setSecond","buildTime","_hourIn24h","hours","Array","_","i","hourValue","hDate","setHours","hStart","startOfHour","hEnd","endOfHour","minutes","anchorDate","mDate","setMinutes","mStart","startOfMinute","mEnd","endOfMinute","seconds","setMilliseconds","_min","_max","sDate","setSeconds","ampmOptions","startD","startOfDay","endD","endOfDay","v","start","addHours","end","subHours","hourRef","useRef","minuteRef","secondRef","timeoutId","setTimeout","clearTimeout","onHourChange","newTime","onMinuteChange","onAmpmChange","minH","maxH","display","arr","element","ClockIcon","ScrollArea","TimeItem","options","dateStrRaw","dateStr","parse"],"mappings":"+PAAAA,CAAAA,oBAAoB,CAAC,CAAG,CAACC,EAAS,KACjC,IAAI,IAAI,KAAO,EACLD,oBAAoB,CAAC,CAAC,EAAY,IAAQ,CAACA,oBAAoB,CAAC,CAACC,EAAS,IACzEC,OAAO,cAAc,CAACD,EAAS,EAAK,CAAE,WAAY,GAAM,IAAK,CAAU,CAAC,EAAI,AAAC,EAGzF,ECNAD,oBAAoB,CAAC,CAAG,CAAC,EAAK,IAAUE,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAK,GCClFF,oBAAoB,CAAC,CAAG,AAACC,IACrB,AAAkB,aAAlB,OAAOE,QAA0BA,OAAO,WAAW,EACrDD,OAAO,cAAc,CAACD,EAASE,OAAO,WAAW,CAAE,CAAE,MAAO,QAAS,GAEtED,OAAO,cAAc,CAACD,EAAS,aAAc,CAAE,MAAO,EAAK,EAC5D,E,w7BC8CMG,SAAW,EACXC,SAAW,EA8EV,SAASC,eAAe,CAC7BC,MAAAA,CAAK,CACLC,SAAAA,CAAQ,CACRC,IAAAA,CAAG,CACHC,IAAAA,CAAG,CACHC,SAAAA,CAAQ,CACRC,SAAAA,CAAQ,CACRC,gBAAAA,EAAkB,EAAK,CACvBC,SAAAA,CAAQ,CACRC,UAAAA,CAAS,CACTC,WAAAA,CAAU,CACVC,WAAAA,CAAU,CACVC,MAAAA,EAAQ,EAAK,CACbC,QAAAA,EAAU,SAAS,CACnBC,KAAAA,EAAO,SAAS,CAChBC,gBAAAA,EAAkB,EAAI,CACtB,GAAGC,EACiC,EACpC,GAAM,CAACC,EAAMC,EAAQ,CAAGC,AAAAA,GAAAA,+BAAAA,QAAAA,AAAAA,EAAS,IAC3B,CAACC,EAAiBC,EAAmB,CAAGF,AAAAA,GAAAA,+BAAAA,QAAAA,AAAAA,EAE5C,IACIG,EAAWC,AAAAA,GAAAA,+BAAAA,OAAAA,AAAAA,EACf,IAAM,IAAIC,0CAAAA,MAAMA,CAACvB,GAAS,IAAIwB,KAAQpB,GACtC,CAACJ,EAAOI,EAAS,EAGb,CAACqB,EAAOC,EAAS,CAAGR,AAAAA,GAAAA,+BAAAA,QAAAA,AAAAA,EAAeG,GACnC,CAACM,EAAMC,EAAQ,CAAGV,AAAAA,GAAAA,+BAAAA,QAAAA,AAAAA,EAAeG,GAEjCQ,EAAWP,AAAAA,GAAAA,+BAAAA,OAAAA,AAAAA,EAAQ,IAChBQ,AAAAA,GAAAA,kCAAAA,OAAAA,AAAAA,EAAQL,EAAOM,AAAAA,GAAAA,kCAAAA,OAAAA,AAAAA,EAAQN,GAAS,GACtC,CAACA,EAAM,EACJO,EAAUV,AAAAA,GAAAA,+BAAAA,OAAAA,AAAAA,EACd,IAAOpB,EAAM,IAAIqB,0CAAAA,MAAMA,CAACrB,EAAKE,GAAY6B,OACzC,CAAC/B,EAAKE,EAAS,EAEX8B,EAAUZ,AAAAA,GAAAA,+BAAAA,OAAAA,AAAAA,EACd,IAAOnB,EAAM,IAAIoB,0CAAAA,MAAMA,CAACpB,EAAKC,GAAY6B,OACzC,CAAC9B,EAAKC,EAAS,EAGX+B,EAAeC,AAAAA,GAAAA,+BAAAA,WAAAA,AAAAA,EACnB,AAACC,IACCA,EAAE,QAAQ,CAACV,EAAK,QAAQ,GAAIA,EAAK,UAAU,GAAIA,EAAK,UAAU,IAC1DzB,GAAOmC,EAAInC,GACbmC,EAAE,QAAQ,CAACnC,EAAI,QAAQ,GAAIA,EAAI,UAAU,GAAIA,EAAI,UAAU,IAEzDC,GAAOkC,EAAIlC,GACbkC,EAAE,QAAQ,CAAClC,EAAI,QAAQ,GAAIA,EAAI,UAAU,GAAIA,EAAI,UAAU,IAE7DyB,EAAQS,EACV,EACA,CAACT,EAASF,EAAS,EAEfY,EAAWF,AAAAA,GAAAA,+BAAAA,WAAAA,AAAAA,EAAY,KAC3BnC,EAAS,IAAIuB,KAAKG,IAClBV,EAAQ,GACV,EAAG,CAACU,EAAM1B,EAAS,EAEbsC,EAAqBH,AAAAA,GAAAA,+BAAAA,WAAAA,AAAAA,EACzB,CAACC,EAASG,KACRd,EAASW,GACLG,AAAS,SAATA,EACFpB,EAAmB,SAEnBA,EAAmB,GAEvB,EACA,CAACM,EAAUN,EAAmB,EAE1BqB,EAAcL,AAAAA,GAAAA,+BAAAA,WAAAA,AAAAA,EAAY,KAC9BV,EAASgB,AAAAA,GAAAA,kCAAAA,SAAAA,AAAAA,EAAUjB,EAAO,GAC5B,EAAG,CAACA,EAAM,EACJkB,EAAcP,AAAAA,GAAAA,+BAAAA,WAAAA,AAAAA,EAAY,KAC9BV,EAASkB,AAAAA,GAAAA,kCAAAA,SAAAA,AAAAA,EAAUnB,EAAO,GAC5B,EAAG,CAACA,EAAM,EAEVoB,AAAAA,GAAAA,+BAAAA,SAAAA,AAAAA,EAAU,KACJ7B,IACFY,EAAQP,GACRK,EAASL,GACTD,EAAmB,IAEvB,EAAG,CAACJ,EAAMK,EAAS,EAEnB,IAAMyB,EAAexB,AAAAA,GAAAA,+BAAAA,OAAAA,AAAAA,EAAQ,IAC3B,AAAI,AAACN,GAAShB,EACPgB,EAAOW,EAAON,EADOrB,EAE3B,CAAC2B,EAAM3B,EAAOgB,EAAK,EAEhB+B,EAAgBzB,AAAAA,GAAAA,+BAAAA,OAAAA,AAAAA,EAAQ,IAC5B,AAAKwB,EACEE,AAAAA,GAAAA,kCAAAA,MAAAA,AAAAA,EAAOF,EAAc,aAAgBzC,CAAAA,EAAW,GAAK,QAAO,GADzC,qBAEzB,CAACyC,EAAczC,EAAUC,EAAgB,EAE5C,MACE,qCAAC2C,qCAAAA,OAAOA,CAAAA,CAAC,KAAMjC,EAAM,aAAcC,EAAS,MAAON,E,UACjD,oCAACuC,qCAAAA,cAAcA,CAAAA,CAAC,SAAU3C,EAAU,QAAO,G,SACzC,qCAAC,OACC,UAAW4C,AAAAA,GAAAA,0BAAAA,EAAAA,AAAAA,EACTC,AAAAA,GAAAA,oCAAAA,cAAAA,AAAAA,EAAe,CAAExC,QAAAA,EAASC,KAAAA,CAAK,GAC/B,wBACA,CAACiC,GAAgB,wBAChB,EAACtC,GAAa,CAACR,CAAI,GAAM,OAC1BS,GAAY,S,UAGd,qCAAC,OAAI,UAAU,8B,UACZK,GAAmB,oCAACuC,sBAAAA,iBAAiBA,CAAAA,CAAC,UAAU,a,GAChDN,E,GAEFvC,GAAaR,GACZ,oCAACsD,oCAAAA,MAAMA,CAAAA,CACL,SAAU/C,EACV,QAAQ,QACR,KAAK,KACL,aAAW,aACX,UAAU,kBACV,QAASb,AAAAA,IACPA,EAAE,eAAe,GACjBA,EAAE,cAAc,GAChBO,EAASgC,QACThB,EAAQ,GACV,E,SAEA,oCAACsC,sBAAAA,KAAKA,CAAAA,CAAC,UAAU,Q,UAKzB,qCAACC,qCAAAA,cAAcA,CAAAA,CAAC,UAAU,a,UACxB,qCAAC,OAAI,UAAU,oC,UACb,qCAAC,OAAI,UAAU,0D,UACb,qCAAC,O,UACC,oCAAC,UACC,KAAK,SACL,QAAS,IACPpC,EACED,AAAoB,UAApBA,GAAsC,S,SAIzC6B,AAAAA,GAAAA,kCAAAA,MAAAA,AAAAA,EAAOvB,EAAO,OAAQ,CACrB,OAAQgC,uBAAAA,IAAIA,AACd,GACG,MAAM,CAAC,GACP,WAAW,GACZT,AAAAA,GAAAA,kCAAAA,MAAAA,AAAAA,EAAOvB,EAAO,OAAQ,CACpB,OAAQgC,uBAAAA,IAAIA,AACd,GAAG,KAAK,CAAC,E,GAEb,oCAAC,UACC,KAAK,SACL,UAAU,OACV,QAAS,IACPrC,EACED,AAAoB,SAApBA,GAAqC,Q,SAIxC6B,AAAAA,GAAAA,kCAAAA,MAAAA,AAAAA,EAAOvB,EAAO,O,MAGnB,oCAAC6B,oCAAAA,MAAMA,CAAAA,CACL,QAAQ,QACR,KAAK,OACL,UAAU,cACV,QAAS,IACPlC,EAAmBD,CAAAA,GAA0B,Q,SAG9CA,EAAkB,oCAACuC,sBAAAA,WAAWA,CAAAA,CAAAA,GAAM,oCAACC,sBAAAA,aAAaA,CAAAA,CAAAA,E,MAGvD,qCAAC,OACC,UAAWR,AAAAA,GAAAA,0BAAAA,EAAAA,AAAAA,EAAG,iBAAkBhC,EAAkB,SAAW,I,UAE7D,oCAACmC,oCAAAA,MAAMA,CAAAA,CAAC,QAAQ,QAAQ,KAAK,OAAO,QAASX,E,SAC3C,oCAACiB,sBAAAA,aAAaA,CAAAA,CAAAA,E,GAEhB,oCAACN,oCAAAA,MAAMA,CAAAA,CAAC,QAAQ,QAAQ,KAAK,OAAO,QAASb,E,SAC3C,oCAACoB,sBAAAA,cAAcA,CAAAA,CAAAA,E,SAIrB,qCAAC,OAAI,UAAU,2B,UACb,oCAACC,sCAAAA,QAAQA,CAAAA,CACP,KAAK,SACL,SAAU1D,EACV,SAAUuB,EACV,SAAUU,AAAAA,GAAKA,GAAKF,EAAaE,GACjC,MAAOZ,EACP,SAAUI,EACV,SACE,CACE1B,EAAM,CAAE,MAAOA,CAAI,EAAI,KACvBD,EAAM,CAAE,OAAQA,CAAI,EAAI,KACzB,CAAC,MAAM,CAAC6D,SAEX,cAAerC,EACf,gBAAiB,GACjB,WAAY,CACV,CAACsC,0CAAAA,EAAAA,CAAAA,IAAO,CAAC,CAAE,YACX,CAACA,0CAAAA,EAAAA,CAAAA,YAAe,CAAC,CAAE,SACnB,CAACA,0CAAAA,EAAAA,CAAAA,eAAkB,CAAC,CAAE,SACtB,CAACA,0CAAAA,EAAAA,CAAAA,mBAAsB,CAAC,CAAE,QAC5B,EACC,GAAGjD,CAAK,A,GAEX,oCAAC,OACC,UAAWoC,AAAAA,GAAAA,0BAAAA,EAAAA,AAAAA,EACT,yCACAhC,EAAkB,gBAAkB,S,GAGxC,oCAAC8C,+CAAAA,eAAeA,CAAAA,CACd,MAAOxC,EACP,KAAMN,EACN,SAAUoB,EACV,QAASP,EACT,QAASE,EACT,UAAWiB,AAAAA,GAAAA,0BAAAA,EAAAA,AAAAA,EACT,yCACAhC,EAAkB,GAAK,S,MAI7B,qCAAC,OAAI,UAAU,sB,UACZ,CAACd,GACA,oCAAC6D,WAAAA,CACC,WAAYxD,EACZ,MAAOiB,EACP,SAAUC,EACV,gBAAiBtB,EACjB,IAAK0B,EACL,IAAKE,C,GAGT,qCAAC,OAAI,UAAU,qD,UACb,oCAACoB,oCAAAA,MAAMA,CAAAA,CAAC,UAAU,wBAAwB,QAAShB,E,SAAU,Q,GAG5DlC,GACC,qCAAC,OAAI,UAAU,U,UACb,oCAAC,Q,SAAK,W,GACN,oCAAC,QAAK,UAAU,qB,SAAsBA,C,iBAQtD,CAEA,SAAS8D,WAAW,CAClBlE,MAAAA,CAAK,CACLC,SAAAA,CAAQ,CACRK,gBAAAA,CAAe,CACfJ,IAAAA,CAAG,CACHC,IAAAA,CAAG,CACHO,WAAAA,CAAU,CAQX,EAGC,IAAMyD,EAAY7C,AAAAA,GAAAA,+BAAAA,OAAAA,AAAAA,EAChB,IACEhB,EACI,iCACA,+BACN,CAACA,EAAgB,EAEb,CAAC8D,EAAMC,EAAQ,CAAGnD,AAAAA,GAAAA,+BAAAA,QAAAA,AAAAA,EACtB8B,EAAuB,OAAvBA,AAAAA,GAAAA,kCAAAA,MAAAA,AAAAA,EAAOhD,EAAO,IAAY,GAEtB,CAACsE,EAAMC,EAAQ,CAAGrD,AAAAA,GAAAA,+BAAAA,QAAAA,AAAAA,EACtBZ,EAAkB,CAAC0C,AAAAA,GAAAA,kCAAAA,MAAAA,AAAAA,EAAOhD,EAAO,MAAQA,EAAM,QAAQ,IAEnD,CAACwE,EAAQC,EAAU,CAAGvD,AAAAA,GAAAA,+BAAAA,QAAAA,AAAAA,EAASlB,EAAM,UAAU,IAC/C,CAAC0E,EAAQC,EAAU,CAAGzD,AAAAA,GAAAA,+BAAAA,QAAAA,AAAAA,EAASlB,EAAM,UAAU,IAErD6C,AAAAA,GAAAA,+BAAAA,SAAAA,AAAAA,EAAU,KACR5C,EACE2E,UAAU,CACRtE,gBAAAA,EACAN,MAAAA,EACAmE,UAAAA,EACAG,KAAAA,EACAE,OAAAA,EACAE,OAAAA,EACAN,KAAAA,CACF,GAEJ,EAAG,CAACE,EAAME,EAAQE,EAAQN,EAAMD,EAAW7D,EAAgB,EAE3D,IAAMuE,EAAavD,AAAAA,GAAAA,+BAAAA,OAAAA,AAAAA,EAAQ,IAIlBhB,EAAmBgE,EAAO,GAAMF,AAAO,GAAPA,EAAYE,EAClD,CAACtE,EAAOM,EAAiB8D,EAAK,EAE3BU,EAAsBxD,AAAAA,GAAAA,+BAAAA,OAAAA,AAAAA,EAC1B,IACEyD,MAAM,IAAI,CAAC,CAAE,OAAQzE,EAAkB,GAAK,EAAG,EAAG,CAAC0E,EAAGC,KACpD,IAAI1E,EAAW,GACT2E,EAAY5E,GAAmB2E,AAAM,IAANA,EAAU,GAAKA,EAC9CE,EAAQC,AAAAA,GAAAA,kCAAAA,QAAAA,AAAAA,EAASpF,EAAOM,EAAkB2E,EAAIb,AAAO,GAAPA,EAAYa,GAC1DI,EAASC,AAAAA,GAAAA,kCAAAA,WAAAA,AAAAA,EAAYH,GACrBI,EAAOC,AAAAA,GAAAA,kCAAAA,SAAAA,AAAAA,EAAUL,GAGvB,OAFIjF,GAAOqF,EAAOrF,GAAKK,CAAAA,EAAW,EAAG,EACjCJ,GAAOkF,EAASlF,GAAKI,CAAAA,EAAW,EAAG,EAChC,CACL,MAAO2E,EACP,MAAOA,EAAU,QAAQ,GAAG,QAAQ,CAAC,EAAG,KACxC3E,SAAAA,CACF,CACF,GACF,CAACP,EAAOE,EAAKC,EAAKG,EAAiB8D,EAAK,EAEpCqB,EAAwBnE,AAAAA,GAAAA,+BAAAA,OAAAA,AAAAA,EAAQ,KACpC,IAAMoE,EAAaN,AAAAA,GAAAA,kCAAAA,QAAAA,AAAAA,EAASpF,EAAO6E,GACnC,OAAOE,MAAM,IAAI,CAAC,CAAE,OAAQ,EAAG,EAAG,CAACC,EAAGC,KACpC,IAAI1E,EAAW,GACToF,EAAQC,AAAAA,GAAAA,kCAAAA,UAAAA,AAAAA,EAAWF,EAAYT,GAC/BY,EAASC,AAAAA,GAAAA,kCAAAA,aAAAA,AAAAA,EAAcH,GACvBI,EAAOC,AAAAA,GAAAA,kCAAAA,WAAAA,AAAAA,EAAYL,GAGzB,OAFIzF,GAAO6F,EAAO7F,GAAKK,CAAAA,EAAW,EAAG,EACjCJ,GAAO0F,EAAS1F,GAAKI,CAAAA,EAAW,EAAG,EAChC,CACL,MAAO0E,EACP,MAAOA,EAAE,QAAQ,GAAG,QAAQ,CAAC,EAAG,KAChC1E,SAAAA,CACF,CACF,EACF,EAAG,CAACP,EAAOE,EAAKC,EAAK0E,EAAW,EAC1BoB,EAAwB3E,AAAAA,GAAAA,+BAAAA,OAAAA,AAAAA,EAAQ,KACpC,IAAMoE,EAAaQ,AAAAA,GAAAA,kCAAAA,eAAAA,AAAAA,EACjBN,AAAAA,GAAAA,kCAAAA,UAAAA,AAAAA,EAAWR,AAAAA,GAAAA,kCAAAA,QAAAA,AAAAA,EAASpF,EAAO6E,GAAaL,GACxC,GAEI2B,EAAOjG,EAAMgG,AAAAA,GAAAA,kCAAAA,eAAAA,AAAAA,EAAgBhG,EAAK,GAAK+B,OACvCmE,EAAOjG,EAAM+F,AAAAA,GAAAA,kCAAAA,eAAAA,AAAAA,EAAgB/F,EAAK,GAAK8B,OAC7C,OAAO8C,MAAM,IAAI,CAAC,CAAE,OAAQ,EAAG,EAAG,CAACC,EAAGC,KACpC,IAAI1E,EAAW,GACT8F,EAAQC,AAAAA,GAAAA,kCAAAA,UAAAA,AAAAA,EAAWZ,EAAYT,GAGrC,OAFIkB,GAAQE,EAAQF,GAAM5F,CAAAA,EAAW,EAAG,EACpC6F,GAAQC,EAAQD,GAAM7F,CAAAA,EAAW,EAAG,EACjC,CACL,MAAO0E,EACP,MAAOA,EAAE,QAAQ,GAAG,QAAQ,CAAC,EAAG,KAChC1E,SAAAA,CACF,CACF,EACF,EAAG,CAACP,EAAOwE,EAAQtE,EAAKC,EAAK0E,EAAW,EAClC0B,EAAcjF,AAAAA,GAAAA,+BAAAA,OAAAA,AAAAA,EAAQ,KAC1B,IAAMkF,EAASC,AAAAA,GAAAA,kCAAAA,UAAAA,AAAAA,EAAWzG,GACpB0G,EAAOC,AAAAA,GAAAA,kCAAAA,QAAAA,AAAAA,EAAS3G,GACtB,MAAO,CACL,CAAE,MA9bS,EA8bQ,MAAO,IAAK,EAC/B,CAAE,MA9bS,EA8bQ,MAAO,IAAK,EAChC,CAAC,GAAG,CAAC4G,AAAAA,IACJ,IAAIrG,EAAW,GACTsG,EAAQC,AAAAA,GAAAA,kCAAAA,QAAAA,AAAAA,EAASN,EAAQI,AAAU,GAAVA,EAAE,KAAK,EAChCG,EAAMC,AAAAA,GAAAA,kCAAAA,QAAAA,AAAAA,EAASN,EAAO,GAAIE,EAAE,KAAI,EAAK,IAG3C,OAFI1G,GAAO6G,EAAM7G,GAAKK,CAAAA,EAAW,EAAG,EAChCJ,GAAO0G,EAAQ1G,GAAKI,CAAAA,EAAW,EAAG,EAC/B,CAAE,GAAGqG,CAAC,CAAErG,SAAAA,CAAS,CAC1B,EACF,EAAG,CAACP,EAAOE,EAAKC,EAAI,EAEd,CAACa,EAAMC,EAAQ,CAAGC,AAAAA,GAAAA,+BAAAA,QAAAA,AAAAA,EAAS,IAE3B+F,EAAUC,AAAAA,GAAAA,+BAAAA,MAAAA,AAAAA,EAAuB,MACjCC,EAAYD,AAAAA,GAAAA,+BAAAA,MAAAA,AAAAA,EAAuB,MACnCE,EAAYF,AAAAA,GAAAA,+BAAAA,MAAAA,AAAAA,EAAuB,MAEzCrE,AAAAA,GAAAA,+BAAAA,SAAAA,AAAAA,EAAU,KACR,IAAMwE,EAAYC,WAAW,KACvBtG,IACFiG,EAAQ,OAAO,EAAE,eAAe,CAAE,SAAU,MAAO,GACnDE,EAAU,OAAO,EAAE,eAAe,CAAE,SAAU,MAAO,GACrDC,EAAU,OAAO,EAAE,eAAe,CAAE,SAAU,MAAO,GAEzD,EAAG,GACH,MAAO,IAAMG,aAAaF,EAE5B,EAAG,CAACrG,EAAK,EAET,IAAMwG,EAAepF,AAAAA,GAAAA,+BAAAA,WAAAA,AAAAA,EACnB,AAACwE,IACK1G,GAUEuH,AATY7C,UAAU,CACxBtE,gBAAAA,EACAN,MAAAA,EACAmE,UAAAA,EACA,KAAMyC,EAAE,KAAK,CACbpC,OAAAA,EACAE,OAAAA,EACAN,KAAAA,CACF,GACclE,IACZuE,EAAUvE,EAAI,UAAU,IACxByE,EAAUzE,EAAI,UAAU,KAGxBC,GAUEsH,AATY7C,UAAU,CACxBtE,gBAAAA,EACAN,MAAAA,EACAmE,UAAAA,EACA,KAAMyC,EAAE,KAAK,CACbpC,OAAAA,EACAE,OAAAA,EACAN,KAAAA,CACF,GACcjE,IACZsE,EAAUtE,EAAI,UAAU,IACxBwE,EAAUxE,EAAI,UAAU,KAG5BoE,EAAQqC,EAAE,KAAK,CACjB,EACA,CAACrC,EAASjE,EAAiBN,EAAOmE,EAAWK,EAAQE,EAAQN,EAAK,EAG9DsD,EAAiBtF,AAAAA,GAAAA,+BAAAA,WAAAA,AAAAA,EACrB,AAACwE,IAeC,GAdI1G,GAUEuH,AATY7C,UAAU,CACxBtE,gBAAAA,EACAN,MAAAA,EACAmE,UAAAA,EACA,KAAMyC,EAAE,KAAK,CACbpC,OAAAA,EACAE,OAAAA,EACAN,KAAAA,CACF,GACclE,GACZyE,EAAUzE,EAAI,UAAU,IAGxBC,EAAK,CACP,IAAMsH,EAAU7C,UAAU,CACxBtE,gBAAAA,EACAN,MAAAA,EACAmE,UAAAA,EACA,KAAMyC,EAAE,KAAK,CACbpC,OAAAA,EACAE,OAAAA,EACAN,KAAAA,CACF,EACIqD,CAAAA,EAAUtH,GACZwE,EAAU8C,EAAQ,UAAU,GAEhC,CACAhD,EAAUmC,EAAE,KAAK,CACnB,EACA,CAACnC,EAAWnE,EAAiBN,EAAOmE,EAAWG,EAAMI,EAAQN,EAAK,EAG9DuD,EAAevF,AAAAA,GAAAA,+BAAAA,WAAAA,AAAAA,EACnB,AAACwE,IACC,GAAI1G,GAUEuH,AATY7C,UAAU,CACxBtE,gBAAAA,EACAN,MAAAA,EACAmE,UAAAA,EACAG,KAAAA,EACAE,OAAAA,EACAE,OAAAA,EACA,KAAMkC,EAAE,KAAK,AACf,GACc1G,EAAK,CACjB,IAAM0H,EAAO1H,EAAI,QAAQ,GAAK,GAC9BqE,EAAQqD,AAAS,IAATA,EAAa,GAAKA,GAC1BnD,EAAUvE,EAAI,UAAU,IACxByE,EAAUzE,EAAI,UAAU,GAC1B,CAEF,GAAIC,GAUEsH,AATY7C,UAAU,CACxBtE,gBAAAA,EACAN,MAAAA,EACAmE,UAAAA,EACAG,KAAAA,EACAE,OAAAA,EACAE,OAAAA,EACA,KAAMkC,EAAE,KAAK,AACf,GACczG,EAAK,CACjB,IAAM0H,EAAO1H,EAAI,QAAQ,GAAK,GAC9BoE,EAAQsD,AAAS,IAATA,EAAa,GAAKA,GAC1BpD,EAAUtE,EAAI,UAAU,IACxBwE,EAAUxE,EAAI,UAAU,GAC1B,CAEFkE,EAAQuC,EAAE,KAAK,CACjB,EACA,CAACvC,EAAS/D,EAAiBN,EAAOmE,EAAWG,EAAME,EAAQE,EAAQxE,EAAKC,EAAI,EAGxE2H,EAAUxG,AAAAA,GAAAA,+BAAAA,OAAAA,AAAAA,EAAQ,KACtB,IAAMyG,EAAM,EAAE,CACd,IAAK,IAAMC,IAAW,CAAC,OAAQ,SAAU,SAAS,CAC5C,EAACtH,GAAcA,CAAU,CAACsH,EAAmC,AAA5B,IAC/BA,AAAY,SAAZA,EACFD,EAAI,IAAI,CAACzH,EAAkB,KAAO,MAElCyH,EAAI,IAAI,CAACC,AAAY,WAAZA,EAAuB,KAAO,OAI7C,MAAOhF,AAAAA,GAAAA,kCAAAA,MAAAA,AAAAA,EAAOhD,EAAO+H,EAAI,IAAI,CAAC,KAAQzH,CAAAA,EAAkB,KAAO,EAAC,EAClE,EAAG,CAACN,EAAOM,EAAiBI,EAAW,EAEvC,MACE,qCAACuC,qCAAAA,OAAOA,CAAAA,CAAC,KAAMjC,EAAM,aAAcC,E,UACjC,oCAACiC,qCAAAA,cAAcA,CAAAA,CAAC,QAAO,G,SACrB,qCAACI,oCAAAA,MAAMA,CAAAA,CACL,QAAQ,UACR,KAAK,KACL,gBAAetC,EACf,UAAU,4B,UAEV,oCAACiH,sBAAAA,SAASA,CAAAA,CAAC,UAAU,a,GACpBH,EACD,oCAACnE,sBAAAA,aAAaA,CAAAA,CAAC,UAAU,iC,QAG7B,oCAACH,qCAAAA,cAAcA,CAAAA,CAAC,UAAU,MAAM,KAAK,M,SACnC,oCAAC,OAAI,UAAU,qB,SACb,qCAAC,OAAI,UAAU,iB,UACX,EAAC9C,GAAcA,EAAW,IAAG,GAC7B,oCAACwH,yCAAAA,UAAUA,CAAAA,CAAC,UAAU,mB,SACpB,oCAAC,OAAI,UAAU,8D,SACZpD,EAAM,GAAG,CAAC8B,AAAAA,GACT,oCAAC,OAEC,IAAKA,EAAE,KAAK,GAAKtC,EAAO2C,EAAUhF,O,SAElC,oCAACkG,uCAAAA,QAAQA,CAAAA,CACP,OAAQvB,EACR,SAAUA,EAAE,KAAK,GAAKtC,EACtB,SAAUkD,EACV,UAAU,MACV,SAAUZ,EAAE,QAAQ,A,IARjBA,EAAE,KAAK,E,KAepB,EAAClG,GAAcA,EAAW,MAAK,GAC/B,oCAACwH,yCAAAA,UAAUA,CAAAA,CAAC,UAAU,mB,SACpB,oCAAC,OAAI,UAAU,8D,SACZzC,EAAQ,GAAG,CAACmB,AAAAA,GACX,oCAAC,OAEC,IAAKA,EAAE,KAAK,GAAKpC,EAAS2C,EAAYlF,O,SAEtC,oCAACkG,uCAAAA,QAAQA,CAAAA,CACP,OAAQvB,EACR,SAAUA,EAAE,KAAK,GAAKpC,EACtB,SAAUkD,EACV,UAAU,MACV,SAAUd,EAAE,QAAQ,A,IARjBA,EAAE,KAAK,E,KAepB,EAAClG,GAAcA,EAAW,MAAK,GAC/B,oCAACwH,yCAAAA,UAAUA,CAAAA,CAAC,UAAU,mB,SACpB,oCAAC,OAAI,UAAU,8D,SACZjC,EAAQ,GAAG,CAACW,AAAAA,GACX,oCAAC,OAEC,IAAKA,EAAE,KAAK,GAAKlC,EAAS0C,EAAYnF,O,SAEtC,oCAACkG,uCAAAA,QAAQA,CAAAA,CACP,OAAQvB,EACR,SAAUA,EAAE,KAAK,GAAKlC,EACtB,SAAUkC,AAAAA,GAAKjC,EAAUiC,EAAE,KAAK,EAChC,UAAU,MACV,SAAUA,EAAE,QAAQ,A,IARjBA,EAAE,KAAK,E,KAerBtG,GACC,oCAAC4H,yCAAAA,UAAUA,CAAAA,CAAC,UAAU,mB,SACpB,oCAAC,OAAI,UAAU,wD,SACZ3B,EAAY,GAAG,CAACK,AAAAA,GACf,oCAACuB,uCAAAA,QAAQA,CAAAA,CAEP,OAAQvB,EACR,SAAUA,EAAE,KAAK,GAAKxC,EACtB,SAAUuD,EACV,UAAU,MACV,SAAUf,EAAE,QAAQ,A,EALfA,EAAE,KAAK,E,cAgBlC,CAYA,SAAShC,UAAUwD,CAAyB,EAC1C,IAEIzG,EAFE,CAAErB,gBAAAA,CAAe,CAAEN,MAAAA,CAAK,CAAEmE,UAAAA,CAAS,CAAEG,KAAAA,CAAI,CAAEE,OAAAA,CAAM,CAAEE,OAAAA,CAAM,CAAEN,KAAAA,CAAI,CAAE,CACrEgE,EAEF,GAAI9H,EAAiB,CACnB,IAAM+H,EAAarF,AAAAA,GAAAA,kCAAAA,MAAAA,AAAAA,EAAOhD,EAAOmE,GAG7BmE,EACFD,EAAW,KAAK,CAAC,EAAG,IACpB/D,EAAK,QAAQ,GAAG,QAAQ,CAAC,EAAG,KAC5B+D,EAAW,KAAK,CAAC,IASnBC,EACEA,AALFA,CAAAA,EACEA,AALFA,CAAAA,EACEA,EAAQ,KAAK,CAAC,EAAG,IACjB9D,EAAO,QAAQ,GAAG,QAAQ,CAAC,EAAG,KAC9B8D,EAAQ,KAAK,CAAC,GAAE,EAER,KAAK,CAAC,EAAG,IACjB5D,EAAO,QAAQ,GAAG,QAAQ,CAAC,EAAG,KAC9B4D,EAAQ,KAAK,CAAC,GAAE,EAER,KAAK,CAAC,EAAG,IAChBlE,CAAAA,AA/tBU,IA+tBVA,EAAoB,KAAO,IAAG,EAC/BkE,EAAQ,KAAK,CAAC,IAChB3G,EAAO4G,AAAAA,GAAAA,kCAAAA,KAAAA,AAAAA,EAAMD,EAASnE,EAAWnE,EACnC,MACE2B,EAAOyD,AAAAA,GAAAA,kCAAAA,QAAAA,AAAAA,EAASQ,AAAAA,GAAAA,kCAAAA,UAAAA,AAAAA,EAAWU,AAAAA,GAAAA,kCAAAA,UAAAA,AAAAA,EAAWtG,EAAO0E,GAASF,GAASF,GAEjE,OAAO3C,CACT,C"}
1
+ {"version":3,"file":"components\\datetime-picker\\datetime-picker.cjs","sources":["webpack://@gbmtech/aurora-ui/webpack/runtime/define_property_getters","webpack://@gbmtech/aurora-ui/webpack/runtime/has_own_property","webpack://@gbmtech/aurora-ui/webpack/runtime/make_namespace_object","webpack://@gbmtech/aurora-ui/./src/components/datetime-picker/datetime-picker.tsx"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Shadcn Datetime Picker with support for timezone, date and time selection, minimum and maximum date limits, and 12-hour format...\n * Check out the live demo at https://shadcn-datetime-picker-pro.vercel.app/\n * Find the latest source code at https://github.com/huybuidac/shadcn-datetime-picker\n */\n'use client'\n\nimport {\n CalendarBlankIcon,\n CaretDownIcon,\n CaretLeftIcon,\n CaretRightIcon,\n CaretUpIcon,\n ClockIcon,\n XIcon,\n} from '@phosphor-icons/react'\nimport {\n addHours,\n addMonths,\n endOfDay,\n endOfHour,\n endOfMinute,\n format,\n getYear,\n parse,\n setHours,\n setMilliseconds,\n setMinutes,\n setSeconds,\n setYear,\n startOfDay,\n startOfHour,\n startOfMinute,\n subHours,\n subMonths,\n} from 'date-fns'\nimport { ptBR } from 'date-fns/locale'\nimport type * as React from 'react'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { type DayPicker, type Matcher, TZDate, UI } from 'react-day-picker'\nimport { VariantProps } from 'tailwind-variants'\n\nimport { cn } from '@/lib'\nimport { Button, buttonVariants } from '../button'\nimport { Calendar } from '../calendar'\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover'\nimport { ScrollArea } from '../scroll-area'\nimport { MonthYearPicker } from './month-year-picker'\nimport { TimeItem } from './time-item'\n\nexport type CalendarProps = Omit<React.ComponentProps<typeof DayPicker>, 'mode'>\n\nconst AM_VALUE = 0\nconst PM_VALUE = 1\n\ninterface TimeOption {\n value: number\n label: string\n disabled: boolean\n}\n\nexport type DateTimePickerProps = {\n /**\n * The modality of the popover. When set to true, interaction with outside elements will be disabled and only popover content will be visible to screen readers.\n * If you want to use the datetime picker inside a dialog, you should set this to true.\n * @default false\n */\n modal?: boolean\n /**\n * The datetime value to display and control.\n */\n value: Date | null | undefined\n /**\n * Callback function to handle datetime changes.\n */\n onChange: (date: Date | undefined) => void\n /**\n * The minimum datetime value allowed.\n * @default undefined\n */\n min?: Date\n /**\n * The maximum datetime value allowed.\n */\n max?: Date\n /**\n * The timezone to display the datetime in, based on the date-fns.\n * For a complete list of valid time zone identifiers, refer to:\n * https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @default undefined\n */\n timezone?: string\n /**\n * Whether the datetime picker is disabled.\n * @default false\n */\n disabled?: boolean\n /**\n * Whether to show the time picker.\n * @default false\n */\n hideTime?: boolean\n /**\n * Whether to use 12-hour format.\n * @default false\n */\n use12HourFormat?: boolean\n /**\n * Whether to show the clear button.\n * @default false\n */\n clearable?: boolean\n /**\n * Custom class names for the component.\n */\n classNames?: {\n /**\n * Custom class names for the trigger (the button that opens the picker).\n */\n trigger?: string\n }\n timePicker?: {\n hour?: boolean\n minute?: boolean\n second?: boolean\n }\n size?: VariantProps<typeof buttonVariants>['size']\n variant?: VariantProps<typeof buttonVariants>['variant']\n hasCalendarIcon?: boolean\n}\n\nexport function DateTimePicker({\n value,\n onChange,\n min,\n max,\n timezone,\n hideTime,\n use12HourFormat = false,\n disabled,\n clearable,\n classNames,\n timePicker,\n modal = false,\n variant = 'outline',\n size = 'default',\n hasCalendarIcon = true,\n ...props\n}: DateTimePickerProps & CalendarProps) {\n const [open, setOpen] = useState(false)\n const [monthYearPicker, setMonthYearPicker] = useState<\n 'month' | 'year' | false\n >(false)\n const initDate = useMemo(\n () => new TZDate(value || new Date(), timezone),\n [value, timezone]\n )\n\n const [month, setMonth] = useState<Date>(initDate)\n const [date, setDate] = useState<Date>(initDate)\n\n const endMonth = useMemo(() => {\n return setYear(month, getYear(month) + 1)\n }, [month])\n const minDate = useMemo(\n () => (min ? new TZDate(min, timezone) : undefined),\n [min, timezone]\n )\n const maxDate = useMemo(\n () => (max ? new TZDate(max, timezone) : undefined),\n [max, timezone]\n )\n\n const onDayChanged = useCallback(\n (d: Date) => {\n d.setHours(date.getHours(), date.getMinutes(), date.getSeconds())\n if (min && d < min) {\n d.setHours(min.getHours(), min.getMinutes(), min.getSeconds())\n }\n if (max && d > max) {\n d.setHours(max.getHours(), max.getMinutes(), max.getSeconds())\n }\n setDate(d)\n },\n [setDate, setMonth]\n )\n const onSubmit = useCallback(() => {\n onChange(new Date(date))\n setOpen(false)\n }, [date, onChange])\n\n const onMonthYearChanged = useCallback(\n (d: Date, mode: 'month' | 'year') => {\n setMonth(d)\n if (mode === 'year') {\n setMonthYearPicker('month')\n } else {\n setMonthYearPicker(false)\n }\n },\n [setMonth, setMonthYearPicker]\n )\n const onNextMonth = useCallback(() => {\n setMonth(addMonths(month, 1))\n }, [month])\n const onPrevMonth = useCallback(() => {\n setMonth(subMonths(month, 1))\n }, [month])\n\n useEffect(() => {\n if (open) {\n setDate(initDate)\n setMonth(initDate)\n setMonthYearPicker(false)\n }\n }, [open, initDate])\n\n const displayValue = useMemo(() => {\n if (!open && !value) return value\n return open ? date : initDate\n }, [date, value, open])\n\n const displayFormat = useMemo(() => {\n if (!displayValue) return 'Selecione uma data'\n return format(displayValue, 'dd/MM/yyyy' + (hideTime ? '' : ' HH:mm'))\n }, [displayValue, hideTime, use12HourFormat])\n\n return (\n <Popover open={open} onOpenChange={setOpen} modal={modal}>\n <PopoverTrigger disabled={disabled} asChild>\n <div\n className={cn(\n buttonVariants({ variant, size }),\n 'ps-3 pe-1 font-normal hover:bg-transparent dark:hover:bg-input/50',\n !displayValue && 'text-muted-foreground',\n (!clearable || !value) && 'pe-3',\n classNames?.trigger\n )}\n >\n <div className=\"flex flex-grow items-center\">\n {hasCalendarIcon && <CalendarBlankIcon className=\"mr-2 size-4\" />}\n {displayFormat}\n </div>\n {clearable && value && (\n <Button\n disabled={disabled}\n variant=\"ghost\"\n size=\"sm\"\n aria-label=\"Clear date\"\n className=\"ms-1 size-6 p-1\"\n onClick={e => {\n e.stopPropagation()\n e.preventDefault()\n onChange(undefined)\n setOpen(false)\n }}\n >\n <XIcon className=\"size-4\" />\n </Button>\n )}\n </div>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-2\">\n <div className=\"flex items-center justify-between\">\n <div className=\"ms-2 flex cursor-pointer items-center font-bold text-md\">\n <div>\n <button\n type=\"button\"\n onClick={() =>\n setMonthYearPicker(\n monthYearPicker === 'month' ? false : 'month'\n )\n }\n >\n {format(month, 'MMMM', {\n locale: ptBR,\n })\n .charAt(0)\n .toUpperCase() +\n format(month, 'MMMM', {\n locale: ptBR,\n }).slice(1)}\n </button>\n <button\n type=\"button\"\n className=\"ms-1\"\n onClick={() =>\n setMonthYearPicker(\n monthYearPicker === 'year' ? false : 'year'\n )\n }\n >\n {format(month, 'yyyy')}\n </button>\n </div>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"ml-1 size-6\"\n onClick={() =>\n setMonthYearPicker(monthYearPicker ? false : 'year')\n }\n >\n {monthYearPicker ? <CaretUpIcon /> : <CaretDownIcon />}\n </Button>\n </div>\n <div\n className={cn('flex space-x-2', monthYearPicker ? 'hidden' : '')}\n >\n <Button variant=\"ghost\" size=\"icon\" onClick={onPrevMonth}>\n <CaretLeftIcon />\n </Button>\n <Button variant=\"ghost\" size=\"icon\" onClick={onNextMonth}>\n <CaretRightIcon />\n </Button>\n </div>\n </div>\n <div className=\"relative overflow-hidden\">\n <Calendar\n mode=\"single\"\n timeZone={timezone}\n selected={date}\n onSelect={d => d && onDayChanged(d)}\n month={month}\n endMonth={endMonth}\n disabled={\n [\n max ? { after: max } : null,\n min ? { before: min } : null,\n ].filter(Boolean) as Matcher[]\n }\n onMonthChange={setMonth}\n showOutsideDays={true}\n classNames={{\n [UI.Root]: 'py-2 px-0',\n [UI.MonthCaption]: 'hidden',\n [UI.NextMonthButton]: 'hidden',\n [UI.PreviousMonthButton]: 'hidden',\n }}\n {...props}\n />\n <div\n className={cn(\n 'absolute top-0 right-0 bottom-0 left-0',\n monthYearPicker ? 'bg-background' : 'hidden'\n )}\n />\n <MonthYearPicker\n value={month}\n mode={monthYearPicker}\n onChange={onMonthYearChanged}\n minDate={minDate}\n maxDate={maxDate}\n className={cn(\n 'absolute top-0 right-0 bottom-0 left-0',\n monthYearPicker ? '' : 'hidden'\n )}\n />\n </div>\n <div className=\"flex flex-col gap-2\">\n {!hideTime && (\n <TimePicker\n timePicker={timePicker}\n value={date}\n onChange={setDate}\n use12HourFormat={use12HourFormat}\n min={minDate}\n max={maxDate}\n />\n )}\n <div className=\"flex flex-row-reverse items-center justify-between\">\n <Button className=\"ms-2 h-7 px-2 text-sm\" onClick={onSubmit}>\n Salvar\n </Button>\n {timezone && (\n <div className=\"text-sm\">\n <span>Timezone:</span>\n <span className=\"ms-1 font-semibold\">{timezone}</span>\n </div>\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nfunction TimePicker({\n value,\n onChange,\n use12HourFormat,\n min,\n max,\n timePicker,\n}: {\n use12HourFormat?: boolean\n value: Date\n onChange: (date: Date) => void\n min?: Date\n max?: Date\n timePicker?: DateTimePickerProps['timePicker']\n}) {\n // hours24h = HH\n // hours12h = hh\n const formatStr = useMemo(\n () =>\n use12HourFormat\n ? 'yyyy-MM-dd hh:mm:ss.SSS a xxxx'\n : 'yyyy-MM-dd HH:mm:ss.SSS xxxx',\n [use12HourFormat]\n )\n const [ampm, setAmpm] = useState(\n format(value, 'a') === 'AM' ? AM_VALUE : PM_VALUE\n )\n const [hour, setHour] = useState(\n use12HourFormat ? +format(value, 'hh') : value.getHours()\n )\n const [minute, setMinute] = useState(value.getMinutes())\n const [second, setSecond] = useState(value.getSeconds())\n\n useEffect(() => {\n onChange(\n buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour,\n minute,\n second,\n ampm,\n })\n )\n }, [hour, minute, second, ampm, formatStr, use12HourFormat])\n\n const _hourIn24h = useMemo(() => {\n // if (use12HourFormat) {\n // return (hour % 12) + ampm * 12;\n // }\n return use12HourFormat ? (hour % 12) + ampm * 12 : hour\n }, [value, use12HourFormat, ampm])\n\n const hours: TimeOption[] = useMemo(\n () =>\n Array.from({ length: use12HourFormat ? 12 : 24 }, (_, i) => {\n let disabled = false\n const hourValue = use12HourFormat ? (i === 0 ? 12 : i) : i\n const hDate = setHours(value, use12HourFormat ? i + ampm * 12 : i)\n const hStart = startOfHour(hDate)\n const hEnd = endOfHour(hDate)\n if (min && hEnd < min) disabled = true\n if (max && hStart > max) disabled = true\n return {\n value: hourValue,\n label: hourValue.toString().padStart(2, '0'),\n disabled,\n }\n }),\n [value, min, max, use12HourFormat, ampm]\n )\n const minutes: TimeOption[] = useMemo(() => {\n const anchorDate = setHours(value, _hourIn24h)\n return Array.from({ length: 60 }, (_, i) => {\n let disabled = false\n const mDate = setMinutes(anchorDate, i)\n const mStart = startOfMinute(mDate)\n const mEnd = endOfMinute(mDate)\n if (min && mEnd < min) disabled = true\n if (max && mStart > max) disabled = true\n return {\n value: i,\n label: i.toString().padStart(2, '0'),\n disabled,\n }\n })\n }, [value, min, max, _hourIn24h])\n const seconds: TimeOption[] = useMemo(() => {\n const anchorDate = setMilliseconds(\n setMinutes(setHours(value, _hourIn24h), minute),\n 0\n )\n const _min = min ? setMilliseconds(min, 0) : undefined\n const _max = max ? setMilliseconds(max, 0) : undefined\n return Array.from({ length: 60 }, (_, i) => {\n let disabled = false\n const sDate = setSeconds(anchorDate, i)\n if (_min && sDate < _min) disabled = true\n if (_max && sDate > _max) disabled = true\n return {\n value: i,\n label: i.toString().padStart(2, '0'),\n disabled,\n }\n })\n }, [value, minute, min, max, _hourIn24h])\n const ampmOptions = useMemo(() => {\n const startD = startOfDay(value)\n const endD = endOfDay(value)\n return [\n { value: AM_VALUE, label: 'AM' },\n { value: PM_VALUE, label: 'PM' },\n ].map(v => {\n let disabled = false\n const start = addHours(startD, v.value * 12)\n const end = subHours(endD, (1 - v.value) * 12)\n if (min && end < min) disabled = true\n if (max && start > max) disabled = true\n return { ...v, disabled }\n })\n }, [value, min, max])\n\n const [open, setOpen] = useState(false)\n\n const hourRef = useRef<HTMLDivElement>(null)\n const minuteRef = useRef<HTMLDivElement>(null)\n const secondRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const timeoutId = setTimeout(() => {\n if (open) {\n hourRef.current?.scrollIntoView({ behavior: 'auto' })\n minuteRef.current?.scrollIntoView({ behavior: 'auto' })\n secondRef.current?.scrollIntoView({ behavior: 'auto' })\n }\n }, 1)\n return () => clearTimeout(timeoutId)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onHourChange = useCallback(\n (v: TimeOption) => {\n if (min) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime < min) {\n setMinute(min.getMinutes())\n setSecond(min.getSeconds())\n }\n }\n if (max) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime > max) {\n setMinute(max.getMinutes())\n setSecond(max.getSeconds())\n }\n }\n setHour(v.value)\n },\n [setHour, use12HourFormat, value, formatStr, minute, second, ampm]\n )\n\n const onMinuteChange = useCallback(\n (v: TimeOption) => {\n if (min) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime < min) {\n setSecond(min.getSeconds())\n }\n }\n if (max) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime > max) {\n setSecond(newTime.getSeconds())\n }\n }\n setMinute(v.value)\n },\n [setMinute, use12HourFormat, value, formatStr, hour, second, ampm]\n )\n\n const onAmpmChange = useCallback(\n (v: TimeOption) => {\n if (min) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour,\n minute,\n second,\n ampm: v.value,\n })\n if (newTime < min) {\n const minH = min.getHours() % 12\n setHour(minH === 0 ? 12 : minH)\n setMinute(min.getMinutes())\n setSecond(min.getSeconds())\n }\n }\n if (max) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour,\n minute,\n second,\n ampm: v.value,\n })\n if (newTime > max) {\n const maxH = max.getHours() % 12\n setHour(maxH === 0 ? 12 : maxH)\n setMinute(max.getMinutes())\n setSecond(max.getSeconds())\n }\n }\n setAmpm(v.value)\n },\n [setAmpm, use12HourFormat, value, formatStr, hour, minute, second, min, max]\n )\n\n const display = useMemo(() => {\n const arr = []\n for (const element of ['hour', 'minute', 'second']) {\n if (!timePicker || timePicker[element as keyof typeof timePicker]) {\n if (element === 'hour') {\n arr.push(use12HourFormat ? 'hh' : 'HH')\n } else {\n arr.push(element === 'minute' ? 'mm' : 'ss')\n }\n }\n }\n return format(value, arr.join(':') + (use12HourFormat ? ' a' : ''))\n }, [value, use12HourFormat, timePicker])\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n aria-expanded={open}\n className=\"justify-between font-mono\"\n >\n <ClockIcon className=\"mr-2 size-4\" />\n {display}\n <CaretDownIcon className=\"ml-2 size-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"p-0\" side=\"top\">\n <div className=\"flex-col gap-2 p-2\">\n <div className=\"flex h-56 grow\">\n {(!timePicker || timePicker.hour) && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48\">\n {hours.map(v => (\n <div\n key={v.value}\n ref={v.value === hour ? hourRef : undefined}\n >\n <TimeItem\n option={v}\n selected={v.value === hour}\n onSelect={onHourChange}\n className=\"h-8\"\n disabled={v.disabled}\n />\n </div>\n ))}\n </div>\n </ScrollArea>\n )}\n {(!timePicker || timePicker.minute) && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48\">\n {minutes.map(v => (\n <div\n key={v.value}\n ref={v.value === minute ? minuteRef : undefined}\n >\n <TimeItem\n option={v}\n selected={v.value === minute}\n onSelect={onMinuteChange}\n className=\"h-8\"\n disabled={v.disabled}\n />\n </div>\n ))}\n </div>\n </ScrollArea>\n )}\n {(!timePicker || timePicker.second) && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48\">\n {seconds.map(v => (\n <div\n key={v.value}\n ref={v.value === second ? secondRef : undefined}\n >\n <TimeItem\n option={v}\n selected={v.value === second}\n onSelect={v => setSecond(v.value)}\n className=\"h-8\"\n disabled={v.disabled}\n />\n </div>\n ))}\n </div>\n </ScrollArea>\n )}\n {use12HourFormat && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2\">\n {ampmOptions.map(v => (\n <TimeItem\n key={v.value}\n option={v}\n selected={v.value === ampm}\n onSelect={onAmpmChange}\n className=\"h-8\"\n disabled={v.disabled}\n />\n ))}\n </div>\n </ScrollArea>\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\ninterface BuildTimeOptions {\n use12HourFormat?: boolean\n value: Date\n formatStr: string\n hour: number\n minute: number\n second: number\n ampm: number\n}\n\nfunction buildTime(options: BuildTimeOptions) {\n const { use12HourFormat, value, formatStr, hour, minute, second, ampm } =\n options\n let date: Date\n if (use12HourFormat) {\n const dateStrRaw = format(value, formatStr)\n // yyyy-MM-dd hh:mm:ss.SSS a zzzz\n // 2024-10-14 01:20:07.524 AM GMT+00:00\n let dateStr =\n dateStrRaw.slice(0, 11) +\n hour.toString().padStart(2, '0') +\n dateStrRaw.slice(13)\n dateStr =\n dateStr.slice(0, 14) +\n minute.toString().padStart(2, '0') +\n dateStr.slice(16)\n dateStr =\n dateStr.slice(0, 17) +\n second.toString().padStart(2, '0') +\n dateStr.slice(19)\n dateStr =\n dateStr.slice(0, 24) +\n (ampm === AM_VALUE ? 'AM' : 'PM') +\n dateStr.slice(26)\n date = parse(dateStr, formatStr, value)\n } else {\n date = setHours(setMinutes(setSeconds(value, second), minute), hour)\n }\n return date\n}\n\nexport type { TimeOption }\n"],"names":["__webpack_require__","e","Object","Symbol","AM_VALUE","PM_VALUE","DateTimePicker","value","onChange","min","max","timezone","hideTime","use12HourFormat","disabled","clearable","classNames","timePicker","modal","variant","size","hasCalendarIcon","props","open","setOpen","useState","monthYearPicker","setMonthYearPicker","initDate","useMemo","TZDate","Date","month","setMonth","date","setDate","endMonth","setYear","getYear","minDate","undefined","maxDate","onDayChanged","useCallback","d","onSubmit","onMonthYearChanged","mode","onNextMonth","addMonths","onPrevMonth","subMonths","useEffect","displayValue","displayFormat","format","Popover","PopoverTrigger","cn","buttonVariants","CalendarBlankIcon","Button","XIcon","PopoverContent","ptBR","CaretUpIcon","CaretDownIcon","CaretLeftIcon","CaretRightIcon","Calendar","Boolean","UI","MonthYearPicker","TimePicker","formatStr","ampm","setAmpm","hour","setHour","minute","setMinute","second","setSecond","buildTime","_hourIn24h","hours","Array","_","i","hourValue","hDate","setHours","hStart","startOfHour","hEnd","endOfHour","minutes","anchorDate","mDate","setMinutes","mStart","startOfMinute","mEnd","endOfMinute","seconds","setMilliseconds","_min","_max","sDate","setSeconds","ampmOptions","startD","startOfDay","endD","endOfDay","v","start","addHours","end","subHours","hourRef","useRef","minuteRef","secondRef","timeoutId","setTimeout","clearTimeout","onHourChange","newTime","onMinuteChange","onAmpmChange","minH","maxH","display","arr","element","ClockIcon","ScrollArea","TimeItem","options","dateStrRaw","dateStr","parse"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"datetime-picker.d.ts","sourceRoot":"","sources":["../../../../src/components/datetime-picker/datetime-picker.tsx"],"names":[],"mappings":"AAqCA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AAEnC,OAAO,EAAE,KAAK,SAAS,EAA4B,MAAM,kBAAkB,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIhD,OAAO,EAAU,cAAc,EAAE,MAAM,WAAW,CAAA;AAMlD,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;AAKhF,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;IAC9B;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAA;IAC1C;;;OAGG;IACH,GAAG,CAAC,EAAE,IAAI,CAAA;IACV;;OAEG;IACH,GAAG,CAAC,EAAE,IAAI,CAAA;IACV;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE;QACX;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAA;IACD,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;IAClD,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,SAAS,CAAC,CAAA;IACxD,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,GAAG,EACH,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,eAAuB,EACvB,QAAQ,EACR,SAAS,EACT,UAAU,EACV,UAAU,EACV,KAAa,EACb,OAAmB,EACnB,IAAgB,EAChB,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,mBAAmB,GAAG,aAAa,2CA6OrC;AA2ZD,YAAY,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"datetime-picker.d.ts","sourceRoot":"","sources":["../../../../src/components/datetime-picker/datetime-picker.tsx"],"names":[],"mappings":"AAqCA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AAEnC,OAAO,EAAE,KAAK,SAAS,EAA4B,MAAM,kBAAkB,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAU,cAAc,EAAE,MAAM,WAAW,CAAA;AAOlD,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;AAKhF,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;IAC9B;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAA;IAC1C;;;OAGG;IACH,GAAG,CAAC,EAAE,IAAI,CAAA;IACV;;OAEG;IACH,GAAG,CAAC,EAAE,IAAI,CAAA;IACV;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE;QACX;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAA;IACD,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;IAClD,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,SAAS,CAAC,CAAA;IACxD,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,GAAG,EACH,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,eAAuB,EACvB,QAAQ,EACR,SAAS,EACT,UAAU,EACV,UAAU,EACV,KAAa,EACb,OAAmB,EACnB,IAAgB,EAChB,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,mBAAmB,GAAG,aAAa,2CA6OrC;AA2ZD,YAAY,EAAE,UAAU,EAAE,CAAA"}
@@ -1,3 +1,3 @@
1
1
  'use client'
2
- "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,a)=>{for(var c in a)__webpack_require__.o(a,c)&&!__webpack_require__.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},__webpack_require__.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{MultiSelect:()=>MultiSelect});let jsx_runtime_namespaceObject=require("react/jsx-runtime"),react_namespaceObject=require("@phosphor-icons/react"),external_react_namespaceObject=require("react"),utils_cjs_namespaceObject=require("../lib/utils.cjs"),external_badge_cjs_namespaceObject=require("./badge.cjs"),external_button_cjs_namespaceObject=require("./button.cjs"),external_checkbox_cjs_namespaceObject=require("./checkbox.cjs"),external_command_cjs_namespaceObject=require("./command.cjs"),external_popover_cjs_namespaceObject=require("./popover.cjs");function MultiSelect({options:e=[],onValueChange:a,variant:c="secondary",value:t=[],placeholder:s="Select options",maxCount:n=2,modalPopover:_=!1,className:r,...m}){let[l,j]=(0,external_react_namespaceObject.useState)(t),[i,p]=(0,external_react_namespaceObject.useState)(!1),o=e=>{let c=l.includes(e)?l.filter(a=>a!==e):[...l,e];j(c),a?.(c)},b=()=>{j([]),a?.([])},u=()=>{let e=l.slice(0,n);j(e),a?.(e)};return(0,jsx_runtime_namespaceObject.jsxs)(external_popover_cjs_namespaceObject.Popover,{open:i,onOpenChange:p,modal:_,children:[(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverTrigger,{asChild:!0,children:(0,jsx_runtime_namespaceObject.jsx)(external_button_cjs_namespaceObject.Button,{...m,onClick:()=>{p(e=>!e)},variant:"outline",className:(0,utils_cjs_namespaceObject.cn)("flex h-10 w-auto min-w-60 items-center justify-between rounded-md border border-input bg-background px-3 py-2 hover:bg-transparent dark:hover:bg-input/50",r),children:l.length>0?(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex w-full items-center justify-between",children:[(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex items-center gap-x-1",children:[l.slice(0,n).map(a=>{let t=e.find(e=>e.value===a);return(0,jsx_runtime_namespaceObject.jsxs)(external_badge_cjs_namespaceObject.Badge,{className:(0,utils_cjs_namespaceObject.cn)((0,external_badge_cjs_namespaceObject.badgeVariants)({variant:c})),children:[(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.XIcon,{className:"mr-1 size-3 cursor-pointer",onClick:e=>{e.stopPropagation(),o(a)}}),(0,jsx_runtime_namespaceObject.jsx)("span",{className:"max-w-32 truncate",children:t?.label})]},a)}),l.length>n&&(0,jsx_runtime_namespaceObject.jsxs)(external_badge_cjs_namespaceObject.Badge,{className:(0,utils_cjs_namespaceObject.cn)((0,external_badge_cjs_namespaceObject.badgeVariants)({variant:c})),children:[(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.XIcon,{className:"mr-1 size-3 cursor-pointer",onClick:e=>{e.stopPropagation(),u()}}),`+ ${l.length-n} ...`]})]}),(0,jsx_runtime_namespaceObject.jsx)("div",{className:"ml-4 flex items-center",children:i?(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretUpIcon,{weight:"bold",className:"size-4 opacity-50"}):(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretDownIcon,{weight:"bold",className:"size-4 opacity-50"})})]}):(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"mx-auto flex w-full items-center justify-between",children:[(0,jsx_runtime_namespaceObject.jsx)("span",{className:"font-normal text-sm placeholder:text-muted-foreground",children:"Select options"===s?"Selecione as op\xe7\xf5es":s}),i?(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretUpIcon,{weight:"bold",className:"ml-2 size-4 opacity-50"}):(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretDownIcon,{weight:"bold",className:"ml-2 size-4 opacity-50"})]})})}),(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverContent,{className:"w-auto p-0",align:"start",onEscapeKeyDown:()=>p(!1),children:(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.Command,{children:[(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandInput,{placeholder:"Pesquisar...",onKeyDown:e=>{"Enter"===e.key&&p(!0)}}),(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.CommandList,{children:[(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandEmpty,{children:"Nenhum resultado encontrado."}),(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.CommandGroup,{children:[(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.CommandItem,{onSelect:()=>{if(l.length===e.length)b();else{let c=e.map(e=>e.value);j(c),a?.(c)}},className:"cursor-pointer",children:[(0,jsx_runtime_namespaceObject.jsx)(external_checkbox_cjs_namespaceObject.Checkbox,{checked:l.length===e.length,className:"mr-2"}),(0,jsx_runtime_namespaceObject.jsx)("span",{children:"(Selecionar todos)"})]},"all"),e.map(e=>{let a=l.includes(e.value);return(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.CommandItem,{onSelect:()=>o(e.value),className:"cursor-pointer",children:[(0,jsx_runtime_namespaceObject.jsx)(external_checkbox_cjs_namespaceObject.Checkbox,{checked:a,className:"mr-2"}),(0,jsx_runtime_namespaceObject.jsx)("span",{children:e.label})]},e.value)})]})]})]})})]})}for(var __webpack_i__ in exports.MultiSelect=__webpack_exports__.MultiSelect,__webpack_exports__)-1===["MultiSelect"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
2
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,a)=>{for(var c in a)__webpack_require__.o(a,c)&&!__webpack_require__.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},__webpack_require__.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{MultiSelect:()=>MultiSelect});let jsx_runtime_namespaceObject=require("react/jsx-runtime"),react_namespaceObject=require("@phosphor-icons/react"),external_react_namespaceObject=require("react"),utils_cjs_namespaceObject=require("../lib/utils.cjs"),external_badge_cjs_namespaceObject=require("./badge.cjs"),external_button_cjs_namespaceObject=require("./button.cjs"),external_checkbox_cjs_namespaceObject=require("./checkbox.cjs"),external_command_cjs_namespaceObject=require("./command.cjs"),external_popover_cjs_namespaceObject=require("./popover.cjs");function MultiSelect({options:e=[],onValueChange:a,variant:c="secondary",value:t=[],placeholder:s="Select options",maxCount:n=2,modalPopover:_=!1,className:r,hasRemoveOptionBadge:m=!1,...l}){let[j,i]=(0,external_react_namespaceObject.useState)(t),[p,o]=(0,external_react_namespaceObject.useState)(!1),b=e=>{let c=j.includes(e)?j.filter(a=>a!==e):[...j,e];i(c),a?.(c)},u=()=>{i([]),a?.([])},x=()=>{let e=j.slice(0,n);i(e),a?.(e)};return(0,jsx_runtime_namespaceObject.jsxs)(external_popover_cjs_namespaceObject.Popover,{open:p,onOpenChange:o,modal:_,children:[(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverTrigger,{asChild:!0,children:(0,jsx_runtime_namespaceObject.jsx)(external_button_cjs_namespaceObject.Button,{...l,onClick:()=>{o(e=>!e)},variant:"outline",className:(0,utils_cjs_namespaceObject.cn)("flex h-10 w-auto min-w-60 items-center justify-between rounded-md border border-input bg-background px-3 py-2 hover:bg-transparent dark:hover:bg-input/50",r),children:j.length>0?(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex w-full items-center justify-between",children:[(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"flex items-center gap-x-1",children:[j.slice(0,n).map(a=>{let t=e.find(e=>e.value===a);return(0,jsx_runtime_namespaceObject.jsxs)(external_badge_cjs_namespaceObject.Badge,{className:(0,utils_cjs_namespaceObject.cn)((0,external_badge_cjs_namespaceObject.badgeVariants)({variant:c})),children:[m&&(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.XIcon,{className:"mr-1 size-3 cursor-pointer",onClick:e=>{e.stopPropagation(),b(a)}}),(0,jsx_runtime_namespaceObject.jsx)("span",{className:"max-w-32 truncate",children:t?.label})]},a)}),j.length>n&&(0,jsx_runtime_namespaceObject.jsxs)(external_badge_cjs_namespaceObject.Badge,{className:(0,utils_cjs_namespaceObject.cn)((0,external_badge_cjs_namespaceObject.badgeVariants)({variant:c})),children:[(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.XIcon,{className:"mr-1 size-3 cursor-pointer",onClick:e=>{e.stopPropagation(),x()}}),`+ ${j.length-n} ...`]})]}),(0,jsx_runtime_namespaceObject.jsx)("div",{className:"ml-4 flex items-center",children:p?(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretUpIcon,{weight:"bold",className:"size-4 opacity-50"}):(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretDownIcon,{weight:"bold",className:"size-4 opacity-50"})})]}):(0,jsx_runtime_namespaceObject.jsxs)("div",{className:"mx-auto flex w-full items-center justify-between",children:[(0,jsx_runtime_namespaceObject.jsx)("span",{className:"font-normal text-sm placeholder:text-muted-foreground",children:"Select options"===s?"Selecione as op\xe7\xf5es":s}),p?(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretUpIcon,{weight:"bold",className:"ml-2 size-4 opacity-50"}):(0,jsx_runtime_namespaceObject.jsx)(react_namespaceObject.CaretDownIcon,{weight:"bold",className:"ml-2 size-4 opacity-50"})]})})}),(0,jsx_runtime_namespaceObject.jsx)(external_popover_cjs_namespaceObject.PopoverContent,{className:"w-auto p-0",align:"start",onEscapeKeyDown:()=>o(!1),children:(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.Command,{children:[(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandInput,{placeholder:"Pesquisar...",onKeyDown:e=>{"Enter"===e.key&&o(!0)}}),(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.CommandList,{children:[(0,jsx_runtime_namespaceObject.jsx)(external_command_cjs_namespaceObject.CommandEmpty,{children:"Nenhum resultado encontrado."}),(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.CommandGroup,{children:[(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.CommandItem,{onSelect:()=>{if(j.length===e.length)u();else{let c=e.map(e=>e.value);i(c),a?.(c)}},className:"cursor-pointer",children:[(0,jsx_runtime_namespaceObject.jsx)(external_checkbox_cjs_namespaceObject.Checkbox,{checked:j.length===e.length,className:"mr-2"}),(0,jsx_runtime_namespaceObject.jsx)("span",{children:"(Selecionar todos)"})]},"all"),e.map(e=>{let a=j.includes(e.value);return(0,jsx_runtime_namespaceObject.jsxs)(external_command_cjs_namespaceObject.CommandItem,{onSelect:()=>b(e.value),className:"cursor-pointer",children:[(0,jsx_runtime_namespaceObject.jsx)(external_checkbox_cjs_namespaceObject.Checkbox,{checked:a,className:"mr-2"}),(0,jsx_runtime_namespaceObject.jsx)("span",{children:e.label})]},e.value)})]})]})]})})]})}for(var __webpack_i__ in exports.MultiSelect=__webpack_exports__.MultiSelect,__webpack_exports__)-1===["MultiSelect"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
3
3
  //# sourceMappingURL=multi-select.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"components\\multi-select.cjs","sources":["webpack://@gbmtech/aurora-ui/webpack/runtime/define_property_getters","webpack://@gbmtech/aurora-ui/webpack/runtime/has_own_property","webpack://@gbmtech/aurora-ui/webpack/runtime/make_namespace_object","webpack://@gbmtech/aurora-ui/./src/components/multi-select.tsx"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","\r\n\r\nimport { CaretDownIcon, CaretUpIcon, XIcon } from '@phosphor-icons/react'\r\nimport { ComponentProps, KeyboardEvent, useState } from 'react'\r\n\r\nimport { VariantProps, cn } from '../lib/utils'\r\nimport { Badge, badgeVariants } from './badge'\r\nimport { Button } from './button'\r\nimport { Checkbox } from './checkbox'\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from './command'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: MultiSelect\r\n * -------------------------------------------------------------------------- */\r\n\r\ntype MultiSelectProps = ComponentProps<'button'> &\r\n VariantProps<typeof badgeVariants> & {\r\n options?: {\r\n label: string\r\n value: string\r\n }[]\r\n value?: string[]\r\n placeholder?: string\r\n maxCount?: number\r\n modalPopover?: boolean\r\n asChild?: boolean\r\n className?: string\r\n onValueChange?: (value: string[]) => void\r\n }\r\n\r\nfunction MultiSelect({\r\n options = [],\r\n onValueChange,\r\n variant = 'secondary',\r\n value = [],\r\n placeholder = 'Select options',\r\n maxCount = 2,\r\n modalPopover = false,\r\n className,\r\n ...props\r\n}: MultiSelectProps) {\r\n const [selectedValues, setSelectedValues] = useState<string[]>(value)\r\n const [isPopoverOpen, setIsPopoverOpen] = useState(false)\r\n\r\n const handleInputKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n if (event.key === 'Enter') {\r\n setIsPopoverOpen(true)\r\n }\r\n }\r\n\r\n const toggleOption = (option: string) => {\r\n const newSelectedValues = selectedValues.includes(option)\r\n ? selectedValues.filter(value => value !== option)\r\n : [...selectedValues, option]\r\n setSelectedValues(newSelectedValues)\r\n onValueChange?.(newSelectedValues)\r\n }\r\n\r\n const handleClear = () => {\r\n setSelectedValues([])\r\n onValueChange?.([])\r\n }\r\n\r\n const handleTogglePopover = () => {\r\n setIsPopoverOpen(prev => !prev)\r\n }\r\n\r\n const clearExtraOptions = () => {\r\n const newSelectedValues = selectedValues.slice(0, maxCount)\r\n setSelectedValues(newSelectedValues)\r\n onValueChange?.(newSelectedValues)\r\n }\r\n\r\n const toggleAll = () => {\r\n if (selectedValues.length === options.length) {\r\n handleClear()\r\n } else {\r\n const allValues = options.map(option => option.value)\r\n setSelectedValues(allValues)\r\n onValueChange?.(allValues)\r\n }\r\n }\r\n\r\n return (\r\n <Popover\r\n open={isPopoverOpen}\r\n onOpenChange={setIsPopoverOpen}\r\n modal={modalPopover}\r\n >\r\n <PopoverTrigger asChild>\r\n <Button\r\n {...props}\r\n onClick={handleTogglePopover}\r\n variant=\"outline\"\r\n className={cn(\r\n 'flex h-10 w-auto min-w-60 items-center justify-between rounded-md border border-input bg-background px-3 py-2 hover:bg-transparent dark:hover:bg-input/50',\r\n className\r\n )}\r\n >\r\n {selectedValues.length > 0 ? (\r\n <div className=\"flex w-full items-center justify-between\">\r\n <div className=\"flex items-center gap-x-1\">\r\n {selectedValues.slice(0, maxCount).map(value => {\r\n const option = options.find(o => o.value === value)\r\n return (\r\n <Badge\r\n key={value}\r\n className={cn(badgeVariants({ variant }))}\r\n >\r\n <XIcon\r\n className=\"mr-1 size-3 cursor-pointer\"\r\n onClick={event => {\r\n event.stopPropagation()\r\n toggleOption(value)\r\n }}\r\n />\r\n <span className=\"max-w-32 truncate\">{option?.label}</span>\r\n </Badge>\r\n )\r\n })}\r\n\r\n {selectedValues.length > maxCount && (\r\n <Badge className={cn(badgeVariants({ variant }))}>\r\n <XIcon\r\n className=\"mr-1 size-3 cursor-pointer\"\r\n onClick={event => {\r\n event.stopPropagation()\r\n clearExtraOptions()\r\n }}\r\n />\r\n {`+ ${selectedValues.length - maxCount} ...`}\r\n </Badge>\r\n )}\r\n </div>\r\n <div className=\"ml-4 flex items-center\">\r\n {isPopoverOpen ? (\r\n <CaretUpIcon weight=\"bold\" className=\"size-4 opacity-50\" />\r\n ) : (\r\n <CaretDownIcon weight=\"bold\" className=\"size-4 opacity-50\" />\r\n )}\r\n </div>\r\n </div>\r\n ) : (\r\n <div className=\"mx-auto flex w-full items-center justify-between\">\r\n <span className=\"font-normal text-sm placeholder:text-muted-foreground\">\r\n {placeholder === 'Select options'\r\n ? 'Selecione as opções'\r\n : placeholder}\r\n </span>\r\n {isPopoverOpen ? (\r\n <CaretUpIcon weight=\"bold\" className=\"ml-2 size-4 opacity-50\" />\r\n ) : (\r\n <CaretDownIcon\r\n weight=\"bold\"\r\n className=\"ml-2 size-4 opacity-50\"\r\n />\r\n )}\r\n </div>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n className=\"w-auto p-0\"\r\n align=\"start\"\r\n onEscapeKeyDown={() => setIsPopoverOpen(false)}\r\n >\r\n <Command>\r\n <CommandInput\r\n placeholder=\"Pesquisar...\"\r\n onKeyDown={handleInputKeyDown}\r\n />\r\n <CommandList>\r\n <CommandEmpty>Nenhum resultado encontrado.</CommandEmpty>\r\n <CommandGroup>\r\n <CommandItem\r\n key=\"all\"\r\n onSelect={toggleAll}\r\n className=\"cursor-pointer\"\r\n >\r\n <Checkbox\r\n checked={selectedValues.length === options.length}\r\n className=\"mr-2\"\r\n />\r\n <span>(Selecionar todos)</span>\r\n </CommandItem>\r\n {options.map(option => {\r\n const isSelected = selectedValues.includes(option.value)\r\n return (\r\n <CommandItem\r\n key={option.value}\r\n onSelect={() => toggleOption(option.value)}\r\n className=\"cursor-pointer\"\r\n >\r\n <Checkbox checked={isSelected} className=\"mr-2\" />\r\n <span>{option.label}</span>\r\n </CommandItem>\r\n )\r\n })}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { MultiSelect }\r\n"],"names":["__webpack_require__","e","Object","Symbol","MultiSelect","options","onValueChange","variant","value","placeholder","maxCount","modalPopover","className","props","selectedValues","setSelectedValues","useState","isPopoverOpen","setIsPopoverOpen","toggleOption","option","newSelectedValues","handleClear","clearExtraOptions","Popover","PopoverTrigger","Button","prev","cn","o","Badge","badgeVariants","XIcon","event","CaretUpIcon","CaretDownIcon","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","allValues","Checkbox","isSelected"],"mappings":"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"}
1
+ {"version":3,"file":"components\\multi-select.cjs","sources":["webpack://@gbmtech/aurora-ui/webpack/runtime/define_property_getters","webpack://@gbmtech/aurora-ui/webpack/runtime/has_own_property","webpack://@gbmtech/aurora-ui/webpack/runtime/make_namespace_object","webpack://@gbmtech/aurora-ui/./src/components/multi-select.tsx"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","\r\n\r\nimport { CaretDownIcon, CaretUpIcon, XIcon } from '@phosphor-icons/react'\r\nimport { ComponentProps, KeyboardEvent, useState } from 'react'\r\n\r\nimport { VariantProps, cn } from '../lib/utils'\r\nimport { Badge, badgeVariants } from './badge'\r\nimport { Button } from './button'\r\nimport { Checkbox } from './checkbox'\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from './command'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: MultiSelect\r\n * -------------------------------------------------------------------------- */\r\n\r\ntype MultiSelectProps = ComponentProps<'button'> &\r\n VariantProps<typeof badgeVariants> & {\r\n options?: {\r\n label: string\r\n value: string\r\n }[]\r\n value?: string[]\r\n placeholder?: string\r\n maxCount?: number\r\n modalPopover?: boolean\r\n asChild?: boolean\r\n className?: string\r\n onValueChange?: (value: string[]) => void\r\n hasRemoveOptionBadge?: boolean\r\n }\r\n\r\nfunction MultiSelect({\r\n options = [],\r\n onValueChange,\r\n variant = 'secondary',\r\n value = [],\r\n placeholder = 'Select options',\r\n maxCount = 2,\r\n modalPopover = false,\r\n className,\r\n hasRemoveOptionBadge = false,\r\n ...props\r\n}: MultiSelectProps) {\r\n const [selectedValues, setSelectedValues] = useState<string[]>(value)\r\n const [isPopoverOpen, setIsPopoverOpen] = useState(false)\r\n\r\n const handleInputKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n if (event.key === 'Enter') {\r\n setIsPopoverOpen(true)\r\n }\r\n }\r\n\r\n const toggleOption = (option: string) => {\r\n const newSelectedValues = selectedValues.includes(option)\r\n ? selectedValues.filter(value => value !== option)\r\n : [...selectedValues, option]\r\n setSelectedValues(newSelectedValues)\r\n onValueChange?.(newSelectedValues)\r\n }\r\n\r\n const handleClear = () => {\r\n setSelectedValues([])\r\n onValueChange?.([])\r\n }\r\n\r\n const handleTogglePopover = () => {\r\n setIsPopoverOpen(prev => !prev)\r\n }\r\n\r\n const clearExtraOptions = () => {\r\n const newSelectedValues = selectedValues.slice(0, maxCount)\r\n setSelectedValues(newSelectedValues)\r\n onValueChange?.(newSelectedValues)\r\n }\r\n\r\n const toggleAll = () => {\r\n if (selectedValues.length === options.length) {\r\n handleClear()\r\n } else {\r\n const allValues = options.map(option => option.value)\r\n setSelectedValues(allValues)\r\n onValueChange?.(allValues)\r\n }\r\n }\r\n\r\n return (\r\n <Popover\r\n open={isPopoverOpen}\r\n onOpenChange={setIsPopoverOpen}\r\n modal={modalPopover}\r\n >\r\n <PopoverTrigger asChild>\r\n <Button\r\n {...props}\r\n onClick={handleTogglePopover}\r\n variant=\"outline\"\r\n className={cn(\r\n 'flex h-10 w-auto min-w-60 items-center justify-between rounded-md border border-input bg-background px-3 py-2 hover:bg-transparent dark:hover:bg-input/50',\r\n className\r\n )}\r\n >\r\n {selectedValues.length > 0 ? (\r\n <div className=\"flex w-full items-center justify-between\">\r\n <div className=\"flex items-center gap-x-1\">\r\n {selectedValues.slice(0, maxCount).map(value => {\r\n const option = options.find(option => option.value === value)\r\n return (\r\n <Badge\r\n key={value}\r\n className={cn(badgeVariants({ variant }))}\r\n >\r\n {hasRemoveOptionBadge && (\r\n <XIcon\r\n className=\"mr-1 size-3 cursor-pointer\"\r\n onClick={event => {\r\n event.stopPropagation()\r\n toggleOption(value)\r\n }}\r\n />\r\n )}\r\n <span className=\"max-w-32 truncate\">{option?.label}</span>\r\n </Badge>\r\n )\r\n })}\r\n\r\n {selectedValues.length > maxCount && (\r\n <Badge className={cn(badgeVariants({ variant }))}>\r\n <XIcon\r\n className=\"mr-1 size-3 cursor-pointer\"\r\n onClick={event => {\r\n event.stopPropagation()\r\n clearExtraOptions()\r\n }}\r\n />\r\n {`+ ${selectedValues.length - maxCount} ...`}\r\n </Badge>\r\n )}\r\n </div>\r\n <div className=\"ml-4 flex items-center\">\r\n {isPopoverOpen ? (\r\n <CaretUpIcon weight=\"bold\" className=\"size-4 opacity-50\" />\r\n ) : (\r\n <CaretDownIcon weight=\"bold\" className=\"size-4 opacity-50\" />\r\n )}\r\n </div>\r\n </div>\r\n ) : (\r\n <div className=\"mx-auto flex w-full items-center justify-between\">\r\n <span className=\"font-normal text-sm placeholder:text-muted-foreground\">\r\n {placeholder === 'Select options'\r\n ? 'Selecione as opções'\r\n : placeholder}\r\n </span>\r\n {isPopoverOpen ? (\r\n <CaretUpIcon weight=\"bold\" className=\"ml-2 size-4 opacity-50\" />\r\n ) : (\r\n <CaretDownIcon\r\n weight=\"bold\"\r\n className=\"ml-2 size-4 opacity-50\"\r\n />\r\n )}\r\n </div>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n className=\"w-auto p-0\"\r\n align=\"start\"\r\n onEscapeKeyDown={() => setIsPopoverOpen(false)}\r\n >\r\n <Command>\r\n <CommandInput\r\n placeholder=\"Pesquisar...\"\r\n onKeyDown={handleInputKeyDown}\r\n />\r\n <CommandList>\r\n <CommandEmpty>Nenhum resultado encontrado.</CommandEmpty>\r\n <CommandGroup>\r\n <CommandItem\r\n key=\"all\"\r\n onSelect={toggleAll}\r\n className=\"cursor-pointer\"\r\n >\r\n <Checkbox\r\n checked={selectedValues.length === options.length}\r\n className=\"mr-2\"\r\n />\r\n <span>(Selecionar todos)</span>\r\n </CommandItem>\r\n {options.map(option => {\r\n const isSelected = selectedValues.includes(option.value)\r\n return (\r\n <CommandItem\r\n key={option.value}\r\n onSelect={() => toggleOption(option.value)}\r\n className=\"cursor-pointer\"\r\n >\r\n <Checkbox checked={isSelected} className=\"mr-2\" />\r\n <span>{option.label}</span>\r\n </CommandItem>\r\n )\r\n })}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { MultiSelect }\r\n"],"names":["__webpack_require__","e","Object","Symbol","MultiSelect","options","onValueChange","variant","value","placeholder","maxCount","modalPopover","className","hasRemoveOptionBadge","props","selectedValues","setSelectedValues","useState","isPopoverOpen","setIsPopoverOpen","toggleOption","option","newSelectedValues","handleClear","clearExtraOptions","Popover","PopoverTrigger","Button","prev","cn","Badge","badgeVariants","XIcon","event","CaretUpIcon","CaretDownIcon","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","allValues","Checkbox","isSelected"],"mappings":"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"}
@@ -13,7 +13,8 @@ type MultiSelectProps = ComponentProps<'button'> & VariantProps<typeof badgeVari
13
13
  asChild?: boolean;
14
14
  className?: string;
15
15
  onValueChange?: (value: string[]) => void;
16
+ hasRemoveOptionBadge?: boolean;
16
17
  };
17
- declare function MultiSelect({ options, onValueChange, variant, value, placeholder, maxCount, modalPopover, className, ...props }: MultiSelectProps): import("react/jsx-runtime").JSX.Element;
18
+ declare function MultiSelect({ options, onValueChange, variant, value, placeholder, maxCount, modalPopover, className, hasRemoveOptionBadge, ...props }: MultiSelectProps): import("react/jsx-runtime").JSX.Element;
18
19
  export { MultiSelect };
19
20
  //# sourceMappingURL=multi-select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-select.d.ts","sourceRoot":"","sources":["../../../src/components/multi-select.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAA2B,MAAM,OAAO,CAAA;AAE/D,OAAO,EAAE,YAAY,EAAM,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAS,aAAa,EAAE,MAAM,SAAS,CAAA;AAiB9C,KAAK,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC,GAC9C,YAAY,CAAC,OAAO,aAAa,CAAC,GAAG;IACnC,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;KACd,EAAE,CAAA;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CAC1C,CAAA;AAEH,iBAAS,WAAW,CAAC,EACnB,OAAY,EACZ,aAAa,EACb,OAAqB,EACrB,KAAU,EACV,WAA8B,EAC9B,QAAY,EACZ,YAAoB,EACpB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAoKlB;AAMD,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"multi-select.d.ts","sourceRoot":"","sources":["../../../src/components/multi-select.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAA2B,MAAM,OAAO,CAAA;AAE/D,OAAO,EAAE,YAAY,EAAM,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAS,aAAa,EAAE,MAAM,SAAS,CAAA;AAiB9C,KAAK,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC,GAC9C,YAAY,CAAC,OAAO,aAAa,CAAC,GAAG;IACnC,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;KACd,EAAE,CAAA;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACzC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAEH,iBAAS,WAAW,CAAC,EACnB,OAAY,EACZ,aAAa,EACb,OAAqB,EACrB,KAAU,EACV,WAA8B,EAC9B,QAAY,EACZ,YAAoB,EACpB,SAAS,EACT,oBAA4B,EAC5B,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAsKlB;AAMD,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -1 +1,2 @@
1
- export*from"./sidebar.js";export*from"./app-sidebar.js";export*from"./nav-modules.js";export*from"./nav-sub-item.js";export*from"./nav-user.js";export*from"./sidebar-icons.js";export*from"./logo.js";
1
+ import*as r from"./nav-sub-item.js";import*as e from"./sidebar-icons.js";export*from"./sidebar.js";export*from"./app-sidebar.js";export*from"./nav-modules.js";export*from"./nav-user.js";export*from"./logo.js";var o={"./nav-sub-item":function(e){e.exports=r},"./sidebar-icons":function(r){r.exports=e}},t={};function n(r){var e=t[r];if(void 0!==e)return e.exports;var a=t[r]={exports:{}};return o[r](a,a.exports,n),a.exports}n.d=(r,e)=>{for(var o in e)n.o(e,o)&&!n.o(r,o)&&Object.defineProperty(r,o,{enumerable:!0,get:e[o]})},n.o=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),n.r=r=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})};var a={};n.r(a);var i=n("./nav-sub-item"),s={};for(var f in i)"default"!==f&&(s[f]=(function(r){return i[r]}).bind(0,f));n.d(a,s);var p=n("./sidebar-icons"),s={};for(var f in p)"default"!==f&&(s[f]=(function(r){return p[r]}).bind(0,f));n.d(a,s);
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components\\app-layout\\sidebar\\index.js","sources":["webpack://@gbmtech/aurora-ui/webpack/runtime/define_property_getters","webpack://@gbmtech/aurora-ui/webpack/runtime/has_own_property","webpack://@gbmtech/aurora-ui/webpack/runtime/make_namespace_object"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["Object","Symbol"],"mappings":"waAAA,EAAoB,CAAC,CAAG,CAAC,EAAS,KACjC,IAAI,IAAI,KAAO,EACL,EAAoB,CAAC,CAAC,EAAY,IAAQ,CAAC,EAAoB,CAAC,CAAC,EAAS,IACzEA,OAAO,cAAc,CAAC,EAAS,EAAK,CAAE,WAAY,GAAM,IAAK,CAAU,CAAC,EAAI,AAAC,EAGzF,ECNA,EAAoB,CAAC,CAAG,CAAC,EAAK,IAAUA,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAK,GCClF,EAAoB,CAAC,CAAG,AAAC,IACrB,AAAkB,aAAlB,OAAOC,QAA0BA,OAAO,WAAW,EACrDD,OAAO,cAAc,CAAC,EAASC,OAAO,WAAW,CAAE,CAAE,MAAO,QAAS,GAEtED,OAAO,cAAc,CAAC,EAAS,aAAc,CAAE,MAAO,EAAK,EAC5D,E"}
@@ -1,2 +1 @@
1
- import*as t from"./data-table-date-filter.js";import*as a from"./data-table-faceted-filter.js";import*as e from"./data-table-slider-filter.js";import*as r from"./data-table-view-options.js";export*from"./data-table-action-bar.js";export*from"./data-table-advanced-toolbar.js";export*from"./data-table-column-header.js";export*from"./data-table-filter-list.js";export*from"./data-table-filter-menu.js";export*from"./data-table-pagination.js";export*from"./data-table-range-filter.js";export*from"./data-table-skeleton.js";export*from"./data-table-sort-list.js";export*from"./data-table-toolbar.js";export*from"./data-table.js";var o={"@/components/data-table/data-table-date-filter":function(a){a.exports=t},"@/components/data-table/data-table-faceted-filter":function(t){t.exports=a},"@/components/data-table/data-table-slider-filter":function(t){t.exports=e},"@/components/data-table/data-table-view-options":function(t){t.exports=r}},n={};function l(t){var a=n[t];if(void 0!==a)return a.exports;var e=n[t]={exports:{}};return o[t](e,e.exports,l),e.exports}l.d=(t,a)=>{for(var e in a)l.o(a,e)&&!l.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:a[e]})},l.o=(t,a)=>Object.prototype.hasOwnProperty.call(t,a),l.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var d={};l.r(d);var i=l("@/components/data-table/data-table-date-filter"),f={};for(var s in i)"default"!==s&&(f[s]=(function(t){return i[t]}).bind(0,s));l.d(d,f);var b=l("@/components/data-table/data-table-faceted-filter"),f={};for(var s in b)"default"!==s&&(f[s]=(function(t){return b[t]}).bind(0,s));l.d(d,f);var p=l("@/components/data-table/data-table-slider-filter"),f={};for(var s in p)"default"!==s&&(f[s]=(function(t){return p[t]}).bind(0,s));l.d(d,f);var m=l("@/components/data-table/data-table-view-options"),f={};for(var s in m)"default"!==s&&(f[s]=(function(t){return m[t]}).bind(0,s));l.d(d,f);
2
- //# sourceMappingURL=index.js.map
1
+ export*from"./data-table-action-bar.js";export*from"./data-table-advanced-toolbar.js";export*from"./data-table-column-header.js";export*from"./data-table-date-filter.js";export*from"./data-table-faceted-filter.js";export*from"./data-table-filter-list.js";export*from"./data-table-filter-menu.js";export*from"./data-table-pagination.js";export*from"./data-table-range-filter.js";export*from"./data-table-skeleton.js";export*from"./data-table-slider-filter.js";export*from"./data-table-sort-list.js";export*from"./data-table-toolbar.js";export*from"./data-table-view-options.js";export*from"./data-table.js";
@@ -1 +1 @@
1
- {"version":3,"file":"datetime-picker.d.ts","sourceRoot":"","sources":["../../../../src/components/datetime-picker/datetime-picker.tsx"],"names":[],"mappings":"AAqCA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AAEnC,OAAO,EAAE,KAAK,SAAS,EAA4B,MAAM,kBAAkB,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIhD,OAAO,EAAU,cAAc,EAAE,MAAM,WAAW,CAAA;AAMlD,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;AAKhF,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;IAC9B;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAA;IAC1C;;;OAGG;IACH,GAAG,CAAC,EAAE,IAAI,CAAA;IACV;;OAEG;IACH,GAAG,CAAC,EAAE,IAAI,CAAA;IACV;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE;QACX;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAA;IACD,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;IAClD,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,SAAS,CAAC,CAAA;IACxD,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,GAAG,EACH,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,eAAuB,EACvB,QAAQ,EACR,SAAS,EACT,UAAU,EACV,UAAU,EACV,KAAa,EACb,OAAmB,EACnB,IAAgB,EAChB,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,mBAAmB,GAAG,aAAa,2CA6OrC;AA2ZD,YAAY,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"datetime-picker.d.ts","sourceRoot":"","sources":["../../../../src/components/datetime-picker/datetime-picker.tsx"],"names":[],"mappings":"AAqCA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AAEnC,OAAO,EAAE,KAAK,SAAS,EAA4B,MAAM,kBAAkB,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAU,cAAc,EAAE,MAAM,WAAW,CAAA;AAOlD,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;AAKhF,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;IAC9B;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAA;IAC1C;;;OAGG;IACH,GAAG,CAAC,EAAE,IAAI,CAAA;IACV;;OAEG;IACH,GAAG,CAAC,EAAE,IAAI,CAAA;IACV;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE;QACX;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAA;IACD,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;IAClD,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,SAAS,CAAC,CAAA;IACxD,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,GAAG,EACH,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,eAAuB,EACvB,QAAQ,EACR,SAAS,EACT,UAAU,EACV,UAAU,EACV,KAAa,EACb,OAAmB,EACnB,IAAgB,EAChB,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,mBAAmB,GAAG,aAAa,2CA6OrC;AA2ZD,YAAY,EAAE,UAAU,EAAE,CAAA"}
@@ -1,2 +1,2 @@
1
- import*as e from"react/jsx-runtime";import*as s from"@phosphor-icons/react";import*as t from"date-fns";import*as a from"date-fns/locale";import*as l from"react";import*as o from"react-day-picker";import*as r from"./month-year-picker.js";import*as n from"./time-item.js";import*as i from"../button.js";import*as c from"../popover.js";import*as u from"../../lib/index.js";import*as d from"../calendar.js";import*as m from"../scroll-area.js";function h({value:n,onChange:m,min:h,max:x,timezone:p,hideTime:v,use12HourFormat:g=!1,disabled:j,clearable:M,classNames:b,timePicker:S,modal:y=!1,variant:N="outline",size:C="default",hasCalendarIcon:w=!0,...k}){let[H,I]=(0,l.useState)(!1),[D,P]=(0,l.useState)(!1),T=(0,l.useMemo)(()=>new o.TZDate(n||new Date,p),[n,p]),[z,B]=(0,l.useState)(T),[A,O]=(0,l.useState)(T),R=(0,l.useMemo)(()=>(0,t.setYear)(z,(0,t.getYear)(z)+1),[z]),U=(0,l.useMemo)(()=>h?new o.TZDate(h,p):void 0,[h,p]),V=(0,l.useMemo)(()=>x?new o.TZDate(x,p):void 0,[x,p]),Z=(0,l.useCallback)(e=>{e.setHours(A.getHours(),A.getMinutes(),A.getSeconds()),h&&e<h&&e.setHours(h.getHours(),h.getMinutes(),h.getSeconds()),x&&e>x&&e.setHours(x.getHours(),x.getMinutes(),x.getSeconds()),O(e)},[O,B]),E=(0,l.useCallback)(()=>{m(new Date(A)),I(!1)},[A,m]),Y=(0,l.useCallback)((e,s)=>{B(e),"year"===s?P("month"):P(!1)},[B,P]),F=(0,l.useCallback)(()=>{B((0,t.addMonths)(z,1))},[z]),L=(0,l.useCallback)(()=>{B((0,t.subMonths)(z,1))},[z]);(0,l.useEffect)(()=>{H&&(O(T),B(T),P(!1))},[H,T]);let X=(0,l.useMemo)(()=>H||n?H?A:T:n,[A,n,H]),q=(0,l.useMemo)(()=>X?(0,t.format)(X,"dd/MM/yyyy"+(v?"":" HH:mm")):"Selecione uma data",[X,v,g]);return(0,e.jsxs)(c.Popover,{open:H,onOpenChange:I,modal:y,children:[(0,e.jsx)(c.PopoverTrigger,{disabled:j,asChild:!0,children:(0,e.jsxs)("div",{className:(0,u.cn)((0,i.buttonVariants)({variant:N,size:C}),"ps-3 pe-1 font-normal",!X&&"text-muted-foreground",(!M||!n)&&"pe-3",b?.trigger),children:[(0,e.jsxs)("div",{className:"flex flex-grow items-center",children:[w&&(0,e.jsx)(s.CalendarBlankIcon,{className:"mr-2 size-4"}),q]}),M&&n&&(0,e.jsx)(i.Button,{disabled:j,variant:"ghost",size:"sm","aria-label":"Clear date",className:"ms-1 size-6 p-1",onClick:e=>{e.stopPropagation(),e.preventDefault(),m(void 0),I(!1)},children:(0,e.jsx)(s.XIcon,{className:"size-4"})})]})}),(0,e.jsxs)(c.PopoverContent,{className:"w-auto p-2",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between",children:[(0,e.jsxs)("div",{className:"ms-2 flex cursor-pointer items-center font-bold text-md",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("button",{type:"button",onClick:()=>P("month"!==D&&"month"),children:(0,t.format)(z,"MMMM",{locale:a.ptBR}).charAt(0).toUpperCase()+(0,t.format)(z,"MMMM",{locale:a.ptBR}).slice(1)}),(0,e.jsx)("button",{type:"button",className:"ms-1",onClick:()=>P("year"!==D&&"year"),children:(0,t.format)(z,"yyyy")})]}),(0,e.jsx)(i.Button,{variant:"ghost",size:"icon",className:"ml-1 size-6",onClick:()=>P(!D&&"year"),children:D?(0,e.jsx)(s.CaretUpIcon,{}):(0,e.jsx)(s.CaretDownIcon,{})})]}),(0,e.jsxs)("div",{className:(0,u.cn)("flex space-x-2",D?"hidden":""),children:[(0,e.jsx)(i.Button,{variant:"ghost",size:"icon",onClick:L,children:(0,e.jsx)(s.CaretLeftIcon,{})}),(0,e.jsx)(i.Button,{variant:"ghost",size:"icon",onClick:F,children:(0,e.jsx)(s.CaretRightIcon,{})})]})]}),(0,e.jsxs)("div",{className:"relative overflow-hidden",children:[(0,e.jsx)(d.Calendar,{mode:"single",timeZone:p,selected:A,onSelect:e=>e&&Z(e),month:z,endMonth:R,disabled:[x?{after:x}:null,h?{before:h}:null].filter(Boolean),onMonthChange:B,showOutsideDays:!0,classNames:{[o.UI.Root]:"py-2 px-0",[o.UI.MonthCaption]:"hidden",[o.UI.NextMonthButton]:"hidden",[o.UI.PreviousMonthButton]:"hidden"},...k}),(0,e.jsx)("div",{className:(0,u.cn)("absolute top-0 right-0 bottom-0 left-0",D?"bg-background":"hidden")}),(0,e.jsx)(r.MonthYearPicker,{value:z,mode:D,onChange:Y,minDate:U,maxDate:V,className:(0,u.cn)("absolute top-0 right-0 bottom-0 left-0",D?"":"hidden")})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-2",children:[!v&&(0,e.jsx)(f,{timePicker:S,value:A,onChange:O,use12HourFormat:g,min:U,max:V}),(0,e.jsxs)("div",{className:"flex flex-row-reverse items-center justify-between",children:[(0,e.jsx)(i.Button,{className:"ms-2 h-7 px-2 text-sm",onClick:E,children:"Salvar"}),p&&(0,e.jsxs)("div",{className:"text-sm",children:[(0,e.jsx)("span",{children:"Timezone:"}),(0,e.jsx)("span",{className:"ms-1 font-semibold",children:p})]})]})]})]})]})}function f({value:a,onChange:o,use12HourFormat:r,min:u,max:d,timePicker:h}){let f=(0,l.useMemo)(()=>r?"yyyy-MM-dd hh:mm:ss.SSS a xxxx":"yyyy-MM-dd HH:mm:ss.SSS xxxx",[r]),[p,v]=(0,l.useState)(+("AM"!==(0,t.format)(a,"a"))),[g,j]=(0,l.useState)(r?+(0,t.format)(a,"hh"):a.getHours()),[M,b]=(0,l.useState)(a.getMinutes()),[S,y]=(0,l.useState)(a.getSeconds());(0,l.useEffect)(()=>{o(x({use12HourFormat:r,value:a,formatStr:f,hour:g,minute:M,second:S,ampm:p}))},[g,M,S,p,f,r]);let N=(0,l.useMemo)(()=>r?g%12+12*p:g,[a,r,p]),C=(0,l.useMemo)(()=>Array.from({length:r?12:24},(e,s)=>{let l=!1,o=r&&0===s?12:s,n=(0,t.setHours)(a,r?s+12*p:s),i=(0,t.startOfHour)(n),c=(0,t.endOfHour)(n);return u&&c<u&&(l=!0),d&&i>d&&(l=!0),{value:o,label:o.toString().padStart(2,"0"),disabled:l}}),[a,u,d,r,p]),w=(0,l.useMemo)(()=>{let e=(0,t.setHours)(a,N);return Array.from({length:60},(s,a)=>{let l=!1,o=(0,t.setMinutes)(e,a),r=(0,t.startOfMinute)(o),n=(0,t.endOfMinute)(o);return u&&n<u&&(l=!0),d&&r>d&&(l=!0),{value:a,label:a.toString().padStart(2,"0"),disabled:l}})},[a,u,d,N]),k=(0,l.useMemo)(()=>{let e=(0,t.setMilliseconds)((0,t.setMinutes)((0,t.setHours)(a,N),M),0),s=u?(0,t.setMilliseconds)(u,0):void 0,l=d?(0,t.setMilliseconds)(d,0):void 0;return Array.from({length:60},(a,o)=>{let r=!1,n=(0,t.setSeconds)(e,o);return s&&n<s&&(r=!0),l&&n>l&&(r=!0),{value:o,label:o.toString().padStart(2,"0"),disabled:r}})},[a,M,u,d,N]),H=(0,l.useMemo)(()=>{let e=(0,t.startOfDay)(a),s=(0,t.endOfDay)(a);return[{value:0,label:"AM"},{value:1,label:"PM"}].map(a=>{let l=!1,o=(0,t.addHours)(e,12*a.value),r=(0,t.subHours)(s,(1-a.value)*12);return u&&r<u&&(l=!0),d&&o>d&&(l=!0),{...a,disabled:l}})},[a,u,d]),[I,D]=(0,l.useState)(!1),P=(0,l.useRef)(null),T=(0,l.useRef)(null),z=(0,l.useRef)(null);(0,l.useEffect)(()=>{let e=setTimeout(()=>{I&&(P.current?.scrollIntoView({behavior:"auto"}),T.current?.scrollIntoView({behavior:"auto"}),z.current?.scrollIntoView({behavior:"auto"}))},1);return()=>clearTimeout(e)},[I]);let B=(0,l.useCallback)(e=>{u&&x({use12HourFormat:r,value:a,formatStr:f,hour:e.value,minute:M,second:S,ampm:p})<u&&(b(u.getMinutes()),y(u.getSeconds())),d&&x({use12HourFormat:r,value:a,formatStr:f,hour:e.value,minute:M,second:S,ampm:p})>d&&(b(d.getMinutes()),y(d.getSeconds())),j(e.value)},[j,r,a,f,M,S,p]),A=(0,l.useCallback)(e=>{if(u&&x({use12HourFormat:r,value:a,formatStr:f,hour:e.value,minute:M,second:S,ampm:p})<u&&y(u.getSeconds()),d){let s=x({use12HourFormat:r,value:a,formatStr:f,hour:e.value,minute:M,second:S,ampm:p});s>d&&y(s.getSeconds())}b(e.value)},[b,r,a,f,g,S,p]),O=(0,l.useCallback)(e=>{if(u&&x({use12HourFormat:r,value:a,formatStr:f,hour:g,minute:M,second:S,ampm:e.value})<u){let e=u.getHours()%12;j(0===e?12:e),b(u.getMinutes()),y(u.getSeconds())}if(d&&x({use12HourFormat:r,value:a,formatStr:f,hour:g,minute:M,second:S,ampm:e.value})>d){let e=d.getHours()%12;j(0===e?12:e),b(d.getMinutes()),y(d.getSeconds())}v(e.value)},[v,r,a,f,g,M,S,u,d]),R=(0,l.useMemo)(()=>{let e=[];for(let s of["hour","minute","second"])(!h||h[s])&&("hour"===s?e.push(r?"hh":"HH"):e.push("minute"===s?"mm":"ss"));return(0,t.format)(a,e.join(":")+(r?" a":""))},[a,r,h]);return(0,e.jsxs)(c.Popover,{open:I,onOpenChange:D,children:[(0,e.jsx)(c.PopoverTrigger,{asChild:!0,children:(0,e.jsxs)(i.Button,{variant:"outline",size:"sm","aria-expanded":I,className:"justify-between font-mono",children:[(0,e.jsx)(s.ClockIcon,{className:"mr-2 size-4"}),R,(0,e.jsx)(s.CaretDownIcon,{className:"ml-2 size-4 shrink-0 opacity-50"})]})}),(0,e.jsx)(c.PopoverContent,{className:"p-0",side:"top",children:(0,e.jsx)("div",{className:"flex-col gap-2 p-2",children:(0,e.jsxs)("div",{className:"flex h-56 grow",children:[(!h||h.hour)&&(0,e.jsx)(m.ScrollArea,{className:"h-full flex-grow",children:(0,e.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48",children:C.map(s=>(0,e.jsx)("div",{ref:s.value===g?P:void 0,children:(0,e.jsx)(n.TimeItem,{option:s,selected:s.value===g,onSelect:B,className:"h-8",disabled:s.disabled})},s.value))})}),(!h||h.minute)&&(0,e.jsx)(m.ScrollArea,{className:"h-full flex-grow",children:(0,e.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48",children:w.map(s=>(0,e.jsx)("div",{ref:s.value===M?T:void 0,children:(0,e.jsx)(n.TimeItem,{option:s,selected:s.value===M,onSelect:A,className:"h-8",disabled:s.disabled})},s.value))})}),(!h||h.second)&&(0,e.jsx)(m.ScrollArea,{className:"h-full flex-grow",children:(0,e.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48",children:k.map(s=>(0,e.jsx)("div",{ref:s.value===S?z:void 0,children:(0,e.jsx)(n.TimeItem,{option:s,selected:s.value===S,onSelect:e=>y(e.value),className:"h-8",disabled:s.disabled})},s.value))})}),r&&(0,e.jsx)(m.ScrollArea,{className:"h-full flex-grow",children:(0,e.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2",children:H.map(s=>(0,e.jsx)(n.TimeItem,{option:s,selected:s.value===p,onSelect:O,className:"h-8",disabled:s.disabled},s.value))})})]})})})]})}function x(e){let s,{use12HourFormat:a,value:l,formatStr:o,hour:r,minute:n,second:i,ampm:c}=e;if(a){let e=(0,t.format)(l,o),a=e.slice(0,11)+r.toString().padStart(2,"0")+e.slice(13);a=(a=(a=a.slice(0,14)+n.toString().padStart(2,"0")+a.slice(16)).slice(0,17)+i.toString().padStart(2,"0")+a.slice(19)).slice(0,24)+(0===c?"AM":"PM")+a.slice(26),s=(0,t.parse)(a,o,l)}else s=(0,t.setHours)((0,t.setMinutes)((0,t.setSeconds)(l,i),n),r);return s}export{h as DateTimePicker};
1
+ import*as e from"react/jsx-runtime";import*as s from"@phosphor-icons/react";import*as t from"date-fns";import*as a from"date-fns/locale";import*as l from"react";import*as o from"react-day-picker";import*as r from"../../lib/index.js";import*as n from"../button.js";import*as i from"../calendar.js";import*as c from"../popover.js";import*as u from"../scroll-area.js";import*as d from"./month-year-picker.js";import*as m from"./time-item.js";function h({value:u,onChange:m,min:h,max:x,timezone:p,hideTime:v,use12HourFormat:g=!1,disabled:j,clearable:M,classNames:b,timePicker:S,modal:y=!1,variant:N="outline",size:C="default",hasCalendarIcon:w=!0,...k}){let[H,I]=(0,l.useState)(!1),[D,P]=(0,l.useState)(!1),T=(0,l.useMemo)(()=>new o.TZDate(u||new Date,p),[u,p]),[z,B]=(0,l.useState)(T),[A,O]=(0,l.useState)(T),R=(0,l.useMemo)(()=>(0,t.setYear)(z,(0,t.getYear)(z)+1),[z]),U=(0,l.useMemo)(()=>h?new o.TZDate(h,p):void 0,[h,p]),V=(0,l.useMemo)(()=>x?new o.TZDate(x,p):void 0,[x,p]),Z=(0,l.useCallback)(e=>{e.setHours(A.getHours(),A.getMinutes(),A.getSeconds()),h&&e<h&&e.setHours(h.getHours(),h.getMinutes(),h.getSeconds()),x&&e>x&&e.setHours(x.getHours(),x.getMinutes(),x.getSeconds()),O(e)},[O,B]),E=(0,l.useCallback)(()=>{m(new Date(A)),I(!1)},[A,m]),Y=(0,l.useCallback)((e,s)=>{B(e),"year"===s?P("month"):P(!1)},[B,P]),F=(0,l.useCallback)(()=>{B((0,t.addMonths)(z,1))},[z]),L=(0,l.useCallback)(()=>{B((0,t.subMonths)(z,1))},[z]);(0,l.useEffect)(()=>{H&&(O(T),B(T),P(!1))},[H,T]);let X=(0,l.useMemo)(()=>H||u?H?A:T:u,[A,u,H]),q=(0,l.useMemo)(()=>X?(0,t.format)(X,"dd/MM/yyyy"+(v?"":" HH:mm")):"Selecione uma data",[X,v,g]);return(0,e.jsxs)(c.Popover,{open:H,onOpenChange:I,modal:y,children:[(0,e.jsx)(c.PopoverTrigger,{disabled:j,asChild:!0,children:(0,e.jsxs)("div",{className:(0,r.cn)((0,n.buttonVariants)({variant:N,size:C}),"ps-3 pe-1 font-normal hover:bg-transparent dark:hover:bg-input/50",!X&&"text-muted-foreground",(!M||!u)&&"pe-3",b?.trigger),children:[(0,e.jsxs)("div",{className:"flex flex-grow items-center",children:[w&&(0,e.jsx)(s.CalendarBlankIcon,{className:"mr-2 size-4"}),q]}),M&&u&&(0,e.jsx)(n.Button,{disabled:j,variant:"ghost",size:"sm","aria-label":"Clear date",className:"ms-1 size-6 p-1",onClick:e=>{e.stopPropagation(),e.preventDefault(),m(void 0),I(!1)},children:(0,e.jsx)(s.XIcon,{className:"size-4"})})]})}),(0,e.jsxs)(c.PopoverContent,{className:"w-auto p-2",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between",children:[(0,e.jsxs)("div",{className:"ms-2 flex cursor-pointer items-center font-bold text-md",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("button",{type:"button",onClick:()=>P("month"!==D&&"month"),children:(0,t.format)(z,"MMMM",{locale:a.ptBR}).charAt(0).toUpperCase()+(0,t.format)(z,"MMMM",{locale:a.ptBR}).slice(1)}),(0,e.jsx)("button",{type:"button",className:"ms-1",onClick:()=>P("year"!==D&&"year"),children:(0,t.format)(z,"yyyy")})]}),(0,e.jsx)(n.Button,{variant:"ghost",size:"icon",className:"ml-1 size-6",onClick:()=>P(!D&&"year"),children:D?(0,e.jsx)(s.CaretUpIcon,{}):(0,e.jsx)(s.CaretDownIcon,{})})]}),(0,e.jsxs)("div",{className:(0,r.cn)("flex space-x-2",D?"hidden":""),children:[(0,e.jsx)(n.Button,{variant:"ghost",size:"icon",onClick:L,children:(0,e.jsx)(s.CaretLeftIcon,{})}),(0,e.jsx)(n.Button,{variant:"ghost",size:"icon",onClick:F,children:(0,e.jsx)(s.CaretRightIcon,{})})]})]}),(0,e.jsxs)("div",{className:"relative overflow-hidden",children:[(0,e.jsx)(i.Calendar,{mode:"single",timeZone:p,selected:A,onSelect:e=>e&&Z(e),month:z,endMonth:R,disabled:[x?{after:x}:null,h?{before:h}:null].filter(Boolean),onMonthChange:B,showOutsideDays:!0,classNames:{[o.UI.Root]:"py-2 px-0",[o.UI.MonthCaption]:"hidden",[o.UI.NextMonthButton]:"hidden",[o.UI.PreviousMonthButton]:"hidden"},...k}),(0,e.jsx)("div",{className:(0,r.cn)("absolute top-0 right-0 bottom-0 left-0",D?"bg-background":"hidden")}),(0,e.jsx)(d.MonthYearPicker,{value:z,mode:D,onChange:Y,minDate:U,maxDate:V,className:(0,r.cn)("absolute top-0 right-0 bottom-0 left-0",D?"":"hidden")})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-2",children:[!v&&(0,e.jsx)(f,{timePicker:S,value:A,onChange:O,use12HourFormat:g,min:U,max:V}),(0,e.jsxs)("div",{className:"flex flex-row-reverse items-center justify-between",children:[(0,e.jsx)(n.Button,{className:"ms-2 h-7 px-2 text-sm",onClick:E,children:"Salvar"}),p&&(0,e.jsxs)("div",{className:"text-sm",children:[(0,e.jsx)("span",{children:"Timezone:"}),(0,e.jsx)("span",{className:"ms-1 font-semibold",children:p})]})]})]})]})]})}function f({value:a,onChange:o,use12HourFormat:r,min:i,max:d,timePicker:h}){let f=(0,l.useMemo)(()=>r?"yyyy-MM-dd hh:mm:ss.SSS a xxxx":"yyyy-MM-dd HH:mm:ss.SSS xxxx",[r]),[p,v]=(0,l.useState)(+("AM"!==(0,t.format)(a,"a"))),[g,j]=(0,l.useState)(r?+(0,t.format)(a,"hh"):a.getHours()),[M,b]=(0,l.useState)(a.getMinutes()),[S,y]=(0,l.useState)(a.getSeconds());(0,l.useEffect)(()=>{o(x({use12HourFormat:r,value:a,formatStr:f,hour:g,minute:M,second:S,ampm:p}))},[g,M,S,p,f,r]);let N=(0,l.useMemo)(()=>r?g%12+12*p:g,[a,r,p]),C=(0,l.useMemo)(()=>Array.from({length:r?12:24},(e,s)=>{let l=!1,o=r&&0===s?12:s,n=(0,t.setHours)(a,r?s+12*p:s),c=(0,t.startOfHour)(n),u=(0,t.endOfHour)(n);return i&&u<i&&(l=!0),d&&c>d&&(l=!0),{value:o,label:o.toString().padStart(2,"0"),disabled:l}}),[a,i,d,r,p]),w=(0,l.useMemo)(()=>{let e=(0,t.setHours)(a,N);return Array.from({length:60},(s,a)=>{let l=!1,o=(0,t.setMinutes)(e,a),r=(0,t.startOfMinute)(o),n=(0,t.endOfMinute)(o);return i&&n<i&&(l=!0),d&&r>d&&(l=!0),{value:a,label:a.toString().padStart(2,"0"),disabled:l}})},[a,i,d,N]),k=(0,l.useMemo)(()=>{let e=(0,t.setMilliseconds)((0,t.setMinutes)((0,t.setHours)(a,N),M),0),s=i?(0,t.setMilliseconds)(i,0):void 0,l=d?(0,t.setMilliseconds)(d,0):void 0;return Array.from({length:60},(a,o)=>{let r=!1,n=(0,t.setSeconds)(e,o);return s&&n<s&&(r=!0),l&&n>l&&(r=!0),{value:o,label:o.toString().padStart(2,"0"),disabled:r}})},[a,M,i,d,N]),H=(0,l.useMemo)(()=>{let e=(0,t.startOfDay)(a),s=(0,t.endOfDay)(a);return[{value:0,label:"AM"},{value:1,label:"PM"}].map(a=>{let l=!1,o=(0,t.addHours)(e,12*a.value),r=(0,t.subHours)(s,(1-a.value)*12);return i&&r<i&&(l=!0),d&&o>d&&(l=!0),{...a,disabled:l}})},[a,i,d]),[I,D]=(0,l.useState)(!1),P=(0,l.useRef)(null),T=(0,l.useRef)(null),z=(0,l.useRef)(null);(0,l.useEffect)(()=>{let e=setTimeout(()=>{I&&(P.current?.scrollIntoView({behavior:"auto"}),T.current?.scrollIntoView({behavior:"auto"}),z.current?.scrollIntoView({behavior:"auto"}))},1);return()=>clearTimeout(e)},[I]);let B=(0,l.useCallback)(e=>{i&&x({use12HourFormat:r,value:a,formatStr:f,hour:e.value,minute:M,second:S,ampm:p})<i&&(b(i.getMinutes()),y(i.getSeconds())),d&&x({use12HourFormat:r,value:a,formatStr:f,hour:e.value,minute:M,second:S,ampm:p})>d&&(b(d.getMinutes()),y(d.getSeconds())),j(e.value)},[j,r,a,f,M,S,p]),A=(0,l.useCallback)(e=>{if(i&&x({use12HourFormat:r,value:a,formatStr:f,hour:e.value,minute:M,second:S,ampm:p})<i&&y(i.getSeconds()),d){let s=x({use12HourFormat:r,value:a,formatStr:f,hour:e.value,minute:M,second:S,ampm:p});s>d&&y(s.getSeconds())}b(e.value)},[b,r,a,f,g,S,p]),O=(0,l.useCallback)(e=>{if(i&&x({use12HourFormat:r,value:a,formatStr:f,hour:g,minute:M,second:S,ampm:e.value})<i){let e=i.getHours()%12;j(0===e?12:e),b(i.getMinutes()),y(i.getSeconds())}if(d&&x({use12HourFormat:r,value:a,formatStr:f,hour:g,minute:M,second:S,ampm:e.value})>d){let e=d.getHours()%12;j(0===e?12:e),b(d.getMinutes()),y(d.getSeconds())}v(e.value)},[v,r,a,f,g,M,S,i,d]),R=(0,l.useMemo)(()=>{let e=[];for(let s of["hour","minute","second"])(!h||h[s])&&("hour"===s?e.push(r?"hh":"HH"):e.push("minute"===s?"mm":"ss"));return(0,t.format)(a,e.join(":")+(r?" a":""))},[a,r,h]);return(0,e.jsxs)(c.Popover,{open:I,onOpenChange:D,children:[(0,e.jsx)(c.PopoverTrigger,{asChild:!0,children:(0,e.jsxs)(n.Button,{variant:"outline",size:"sm","aria-expanded":I,className:"justify-between font-mono",children:[(0,e.jsx)(s.ClockIcon,{className:"mr-2 size-4"}),R,(0,e.jsx)(s.CaretDownIcon,{className:"ml-2 size-4 shrink-0 opacity-50"})]})}),(0,e.jsx)(c.PopoverContent,{className:"p-0",side:"top",children:(0,e.jsx)("div",{className:"flex-col gap-2 p-2",children:(0,e.jsxs)("div",{className:"flex h-56 grow",children:[(!h||h.hour)&&(0,e.jsx)(u.ScrollArea,{className:"h-full flex-grow",children:(0,e.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48",children:C.map(s=>(0,e.jsx)("div",{ref:s.value===g?P:void 0,children:(0,e.jsx)(m.TimeItem,{option:s,selected:s.value===g,onSelect:B,className:"h-8",disabled:s.disabled})},s.value))})}),(!h||h.minute)&&(0,e.jsx)(u.ScrollArea,{className:"h-full flex-grow",children:(0,e.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48",children:w.map(s=>(0,e.jsx)("div",{ref:s.value===M?T:void 0,children:(0,e.jsx)(m.TimeItem,{option:s,selected:s.value===M,onSelect:A,className:"h-8",disabled:s.disabled})},s.value))})}),(!h||h.second)&&(0,e.jsx)(u.ScrollArea,{className:"h-full flex-grow",children:(0,e.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48",children:k.map(s=>(0,e.jsx)("div",{ref:s.value===S?z:void 0,children:(0,e.jsx)(m.TimeItem,{option:s,selected:s.value===S,onSelect:e=>y(e.value),className:"h-8",disabled:s.disabled})},s.value))})}),r&&(0,e.jsx)(u.ScrollArea,{className:"h-full flex-grow",children:(0,e.jsx)("div",{className:"flex grow flex-col items-stretch overflow-y-auto pe-2",children:H.map(s=>(0,e.jsx)(m.TimeItem,{option:s,selected:s.value===p,onSelect:O,className:"h-8",disabled:s.disabled},s.value))})})]})})})]})}function x(e){let s,{use12HourFormat:a,value:l,formatStr:o,hour:r,minute:n,second:i,ampm:c}=e;if(a){let e=(0,t.format)(l,o),a=e.slice(0,11)+r.toString().padStart(2,"0")+e.slice(13);a=(a=(a=a.slice(0,14)+n.toString().padStart(2,"0")+a.slice(16)).slice(0,17)+i.toString().padStart(2,"0")+a.slice(19)).slice(0,24)+(0===c?"AM":"PM")+a.slice(26),s=(0,t.parse)(a,o,l)}else s=(0,t.setHours)((0,t.setMinutes)((0,t.setSeconds)(l,i),n),r);return s}export{h as DateTimePicker};
2
2
  //# sourceMappingURL=datetime-picker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components\\datetime-picker\\datetime-picker.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/datetime-picker/datetime-picker.tsx"],"sourcesContent":["/**\n * Shadcn Datetime Picker with support for timezone, date and time selection, minimum and maximum date limits, and 12-hour format...\n * Check out the live demo at https://shadcn-datetime-picker-pro.vercel.app/\n * Find the latest source code at https://github.com/huybuidac/shadcn-datetime-picker\n */\n'use client'\n\nimport {\n CalendarBlankIcon,\n CaretDownIcon,\n CaretLeftIcon,\n CaretRightIcon,\n CaretUpIcon,\n ClockIcon,\n XIcon,\n} from '@phosphor-icons/react'\nimport {\n addHours,\n addMonths,\n endOfDay,\n endOfHour,\n endOfMinute,\n format,\n getYear,\n parse,\n setHours,\n setMilliseconds,\n setMinutes,\n setSeconds,\n setYear,\n startOfDay,\n startOfHour,\n startOfMinute,\n subHours,\n subMonths,\n} from 'date-fns'\nimport { ptBR } from 'date-fns/locale'\nimport type * as React from 'react'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { type DayPicker, type Matcher, TZDate, UI } from 'react-day-picker'\nimport { VariantProps } from 'tailwind-variants'\n\nimport { MonthYearPicker } from './month-year-picker'\nimport { TimeItem } from './time-item'\nimport { Button, buttonVariants } from '../button'\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover'\nimport { cn } from '@/lib'\nimport { Calendar } from '../calendar'\nimport { ScrollArea } from '../scroll-area'\n\nexport type CalendarProps = Omit<React.ComponentProps<typeof DayPicker>, 'mode'>\n\nconst AM_VALUE = 0\nconst PM_VALUE = 1\n\ninterface TimeOption {\n value: number\n label: string\n disabled: boolean\n}\n\nexport type DateTimePickerProps = {\n /**\n * The modality of the popover. When set to true, interaction with outside elements will be disabled and only popover content will be visible to screen readers.\n * If you want to use the datetime picker inside a dialog, you should set this to true.\n * @default false\n */\n modal?: boolean\n /**\n * The datetime value to display and control.\n */\n value: Date | null | undefined\n /**\n * Callback function to handle datetime changes.\n */\n onChange: (date: Date | undefined) => void\n /**\n * The minimum datetime value allowed.\n * @default undefined\n */\n min?: Date\n /**\n * The maximum datetime value allowed.\n */\n max?: Date\n /**\n * The timezone to display the datetime in, based on the date-fns.\n * For a complete list of valid time zone identifiers, refer to:\n * https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @default undefined\n */\n timezone?: string\n /**\n * Whether the datetime picker is disabled.\n * @default false\n */\n disabled?: boolean\n /**\n * Whether to show the time picker.\n * @default false\n */\n hideTime?: boolean\n /**\n * Whether to use 12-hour format.\n * @default false\n */\n use12HourFormat?: boolean\n /**\n * Whether to show the clear button.\n * @default false\n */\n clearable?: boolean\n /**\n * Custom class names for the component.\n */\n classNames?: {\n /**\n * Custom class names for the trigger (the button that opens the picker).\n */\n trigger?: string\n }\n timePicker?: {\n hour?: boolean\n minute?: boolean\n second?: boolean\n }\n size?: VariantProps<typeof buttonVariants>['size']\n variant?: VariantProps<typeof buttonVariants>['variant']\n hasCalendarIcon?: boolean\n}\n\nexport function DateTimePicker({\n value,\n onChange,\n min,\n max,\n timezone,\n hideTime,\n use12HourFormat = false,\n disabled,\n clearable,\n classNames,\n timePicker,\n modal = false,\n variant = 'outline',\n size = 'default',\n hasCalendarIcon = true,\n ...props\n}: DateTimePickerProps & CalendarProps) {\n const [open, setOpen] = useState(false)\n const [monthYearPicker, setMonthYearPicker] = useState<\n 'month' | 'year' | false\n >(false)\n const initDate = useMemo(\n () => new TZDate(value || new Date(), timezone),\n [value, timezone]\n )\n\n const [month, setMonth] = useState<Date>(initDate)\n const [date, setDate] = useState<Date>(initDate)\n\n const endMonth = useMemo(() => {\n return setYear(month, getYear(month) + 1)\n }, [month])\n const minDate = useMemo(\n () => (min ? new TZDate(min, timezone) : undefined),\n [min, timezone]\n )\n const maxDate = useMemo(\n () => (max ? new TZDate(max, timezone) : undefined),\n [max, timezone]\n )\n\n const onDayChanged = useCallback(\n (d: Date) => {\n d.setHours(date.getHours(), date.getMinutes(), date.getSeconds())\n if (min && d < min) {\n d.setHours(min.getHours(), min.getMinutes(), min.getSeconds())\n }\n if (max && d > max) {\n d.setHours(max.getHours(), max.getMinutes(), max.getSeconds())\n }\n setDate(d)\n },\n [setDate, setMonth]\n )\n const onSubmit = useCallback(() => {\n onChange(new Date(date))\n setOpen(false)\n }, [date, onChange])\n\n const onMonthYearChanged = useCallback(\n (d: Date, mode: 'month' | 'year') => {\n setMonth(d)\n if (mode === 'year') {\n setMonthYearPicker('month')\n } else {\n setMonthYearPicker(false)\n }\n },\n [setMonth, setMonthYearPicker]\n )\n const onNextMonth = useCallback(() => {\n setMonth(addMonths(month, 1))\n }, [month])\n const onPrevMonth = useCallback(() => {\n setMonth(subMonths(month, 1))\n }, [month])\n\n useEffect(() => {\n if (open) {\n setDate(initDate)\n setMonth(initDate)\n setMonthYearPicker(false)\n }\n }, [open, initDate])\n\n const displayValue = useMemo(() => {\n if (!open && !value) return value\n return open ? date : initDate\n }, [date, value, open])\n\n const displayFormat = useMemo(() => {\n if (!displayValue) return 'Selecione uma data'\n return format(displayValue, 'dd/MM/yyyy' + (hideTime ? '' : ' HH:mm'))\n }, [displayValue, hideTime, use12HourFormat])\n\n return (\n <Popover open={open} onOpenChange={setOpen} modal={modal}>\n <PopoverTrigger disabled={disabled} asChild>\n <div\n className={cn(\n buttonVariants({ variant, size }),\n 'ps-3 pe-1 font-normal',\n !displayValue && 'text-muted-foreground',\n (!clearable || !value) && 'pe-3',\n classNames?.trigger\n )}\n >\n <div className=\"flex flex-grow items-center\">\n {hasCalendarIcon && <CalendarBlankIcon className=\"mr-2 size-4\" />}\n {displayFormat}\n </div>\n {clearable && value && (\n <Button\n disabled={disabled}\n variant=\"ghost\"\n size=\"sm\"\n aria-label=\"Clear date\"\n className=\"ms-1 size-6 p-1\"\n onClick={e => {\n e.stopPropagation()\n e.preventDefault()\n onChange(undefined)\n setOpen(false)\n }}\n >\n <XIcon className=\"size-4\" />\n </Button>\n )}\n </div>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-2\">\n <div className=\"flex items-center justify-between\">\n <div className=\"ms-2 flex cursor-pointer items-center font-bold text-md\">\n <div>\n <button\n type=\"button\"\n onClick={() =>\n setMonthYearPicker(\n monthYearPicker === 'month' ? false : 'month'\n )\n }\n >\n {format(month, 'MMMM', {\n locale: ptBR,\n })\n .charAt(0)\n .toUpperCase() +\n format(month, 'MMMM', {\n locale: ptBR,\n }).slice(1)}\n </button>\n <button\n type=\"button\"\n className=\"ms-1\"\n onClick={() =>\n setMonthYearPicker(\n monthYearPicker === 'year' ? false : 'year'\n )\n }\n >\n {format(month, 'yyyy')}\n </button>\n </div>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"ml-1 size-6\"\n onClick={() =>\n setMonthYearPicker(monthYearPicker ? false : 'year')\n }\n >\n {monthYearPicker ? <CaretUpIcon /> : <CaretDownIcon />}\n </Button>\n </div>\n <div\n className={cn('flex space-x-2', monthYearPicker ? 'hidden' : '')}\n >\n <Button variant=\"ghost\" size=\"icon\" onClick={onPrevMonth}>\n <CaretLeftIcon />\n </Button>\n <Button variant=\"ghost\" size=\"icon\" onClick={onNextMonth}>\n <CaretRightIcon />\n </Button>\n </div>\n </div>\n <div className=\"relative overflow-hidden\">\n <Calendar\n mode=\"single\"\n timeZone={timezone}\n selected={date}\n onSelect={d => d && onDayChanged(d)}\n month={month}\n endMonth={endMonth}\n disabled={\n [\n max ? { after: max } : null,\n min ? { before: min } : null,\n ].filter(Boolean) as Matcher[]\n }\n onMonthChange={setMonth}\n showOutsideDays={true}\n classNames={{\n [UI.Root]: 'py-2 px-0',\n [UI.MonthCaption]: 'hidden',\n [UI.NextMonthButton]: 'hidden',\n [UI.PreviousMonthButton]: 'hidden',\n }}\n {...props}\n />\n <div\n className={cn(\n 'absolute top-0 right-0 bottom-0 left-0',\n monthYearPicker ? 'bg-background' : 'hidden'\n )}\n />\n <MonthYearPicker\n value={month}\n mode={monthYearPicker}\n onChange={onMonthYearChanged}\n minDate={minDate}\n maxDate={maxDate}\n className={cn(\n 'absolute top-0 right-0 bottom-0 left-0',\n monthYearPicker ? '' : 'hidden'\n )}\n />\n </div>\n <div className=\"flex flex-col gap-2\">\n {!hideTime && (\n <TimePicker\n timePicker={timePicker}\n value={date}\n onChange={setDate}\n use12HourFormat={use12HourFormat}\n min={minDate}\n max={maxDate}\n />\n )}\n <div className=\"flex flex-row-reverse items-center justify-between\">\n <Button className=\"ms-2 h-7 px-2 text-sm\" onClick={onSubmit}>\n Salvar\n </Button>\n {timezone && (\n <div className=\"text-sm\">\n <span>Timezone:</span>\n <span className=\"ms-1 font-semibold\">{timezone}</span>\n </div>\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nfunction TimePicker({\n value,\n onChange,\n use12HourFormat,\n min,\n max,\n timePicker,\n}: {\n use12HourFormat?: boolean\n value: Date\n onChange: (date: Date) => void\n min?: Date\n max?: Date\n timePicker?: DateTimePickerProps['timePicker']\n}) {\n // hours24h = HH\n // hours12h = hh\n const formatStr = useMemo(\n () =>\n use12HourFormat\n ? 'yyyy-MM-dd hh:mm:ss.SSS a xxxx'\n : 'yyyy-MM-dd HH:mm:ss.SSS xxxx',\n [use12HourFormat]\n )\n const [ampm, setAmpm] = useState(\n format(value, 'a') === 'AM' ? AM_VALUE : PM_VALUE\n )\n const [hour, setHour] = useState(\n use12HourFormat ? +format(value, 'hh') : value.getHours()\n )\n const [minute, setMinute] = useState(value.getMinutes())\n const [second, setSecond] = useState(value.getSeconds())\n\n useEffect(() => {\n onChange(\n buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour,\n minute,\n second,\n ampm,\n })\n )\n }, [hour, minute, second, ampm, formatStr, use12HourFormat])\n\n const _hourIn24h = useMemo(() => {\n // if (use12HourFormat) {\n // return (hour % 12) + ampm * 12;\n // }\n return use12HourFormat ? (hour % 12) + ampm * 12 : hour\n }, [value, use12HourFormat, ampm])\n\n const hours: TimeOption[] = useMemo(\n () =>\n Array.from({ length: use12HourFormat ? 12 : 24 }, (_, i) => {\n let disabled = false\n const hourValue = use12HourFormat ? (i === 0 ? 12 : i) : i\n const hDate = setHours(value, use12HourFormat ? i + ampm * 12 : i)\n const hStart = startOfHour(hDate)\n const hEnd = endOfHour(hDate)\n if (min && hEnd < min) disabled = true\n if (max && hStart > max) disabled = true\n return {\n value: hourValue,\n label: hourValue.toString().padStart(2, '0'),\n disabled,\n }\n }),\n [value, min, max, use12HourFormat, ampm]\n )\n const minutes: TimeOption[] = useMemo(() => {\n const anchorDate = setHours(value, _hourIn24h)\n return Array.from({ length: 60 }, (_, i) => {\n let disabled = false\n const mDate = setMinutes(anchorDate, i)\n const mStart = startOfMinute(mDate)\n const mEnd = endOfMinute(mDate)\n if (min && mEnd < min) disabled = true\n if (max && mStart > max) disabled = true\n return {\n value: i,\n label: i.toString().padStart(2, '0'),\n disabled,\n }\n })\n }, [value, min, max, _hourIn24h])\n const seconds: TimeOption[] = useMemo(() => {\n const anchorDate = setMilliseconds(\n setMinutes(setHours(value, _hourIn24h), minute),\n 0\n )\n const _min = min ? setMilliseconds(min, 0) : undefined\n const _max = max ? setMilliseconds(max, 0) : undefined\n return Array.from({ length: 60 }, (_, i) => {\n let disabled = false\n const sDate = setSeconds(anchorDate, i)\n if (_min && sDate < _min) disabled = true\n if (_max && sDate > _max) disabled = true\n return {\n value: i,\n label: i.toString().padStart(2, '0'),\n disabled,\n }\n })\n }, [value, minute, min, max, _hourIn24h])\n const ampmOptions = useMemo(() => {\n const startD = startOfDay(value)\n const endD = endOfDay(value)\n return [\n { value: AM_VALUE, label: 'AM' },\n { value: PM_VALUE, label: 'PM' },\n ].map(v => {\n let disabled = false\n const start = addHours(startD, v.value * 12)\n const end = subHours(endD, (1 - v.value) * 12)\n if (min && end < min) disabled = true\n if (max && start > max) disabled = true\n return { ...v, disabled }\n })\n }, [value, min, max])\n\n const [open, setOpen] = useState(false)\n\n const hourRef = useRef<HTMLDivElement>(null)\n const minuteRef = useRef<HTMLDivElement>(null)\n const secondRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const timeoutId = setTimeout(() => {\n if (open) {\n hourRef.current?.scrollIntoView({ behavior: 'auto' })\n minuteRef.current?.scrollIntoView({ behavior: 'auto' })\n secondRef.current?.scrollIntoView({ behavior: 'auto' })\n }\n }, 1)\n return () => clearTimeout(timeoutId)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onHourChange = useCallback(\n (v: TimeOption) => {\n if (min) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime < min) {\n setMinute(min.getMinutes())\n setSecond(min.getSeconds())\n }\n }\n if (max) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime > max) {\n setMinute(max.getMinutes())\n setSecond(max.getSeconds())\n }\n }\n setHour(v.value)\n },\n [setHour, use12HourFormat, value, formatStr, minute, second, ampm]\n )\n\n const onMinuteChange = useCallback(\n (v: TimeOption) => {\n if (min) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime < min) {\n setSecond(min.getSeconds())\n }\n }\n if (max) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime > max) {\n setSecond(newTime.getSeconds())\n }\n }\n setMinute(v.value)\n },\n [setMinute, use12HourFormat, value, formatStr, hour, second, ampm]\n )\n\n const onAmpmChange = useCallback(\n (v: TimeOption) => {\n if (min) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour,\n minute,\n second,\n ampm: v.value,\n })\n if (newTime < min) {\n const minH = min.getHours() % 12\n setHour(minH === 0 ? 12 : minH)\n setMinute(min.getMinutes())\n setSecond(min.getSeconds())\n }\n }\n if (max) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour,\n minute,\n second,\n ampm: v.value,\n })\n if (newTime > max) {\n const maxH = max.getHours() % 12\n setHour(maxH === 0 ? 12 : maxH)\n setMinute(max.getMinutes())\n setSecond(max.getSeconds())\n }\n }\n setAmpm(v.value)\n },\n [setAmpm, use12HourFormat, value, formatStr, hour, minute, second, min, max]\n )\n\n const display = useMemo(() => {\n const arr = []\n for (const element of ['hour', 'minute', 'second']) {\n if (!timePicker || timePicker[element as keyof typeof timePicker]) {\n if (element === 'hour') {\n arr.push(use12HourFormat ? 'hh' : 'HH')\n } else {\n arr.push(element === 'minute' ? 'mm' : 'ss')\n }\n }\n }\n return format(value, arr.join(':') + (use12HourFormat ? ' a' : ''))\n }, [value, use12HourFormat, timePicker])\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n aria-expanded={open}\n className=\"justify-between font-mono\"\n >\n <ClockIcon className=\"mr-2 size-4\" />\n {display}\n <CaretDownIcon className=\"ml-2 size-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"p-0\" side=\"top\">\n <div className=\"flex-col gap-2 p-2\">\n <div className=\"flex h-56 grow\">\n {(!timePicker || timePicker.hour) && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48\">\n {hours.map(v => (\n <div\n key={v.value}\n ref={v.value === hour ? hourRef : undefined}\n >\n <TimeItem\n option={v}\n selected={v.value === hour}\n onSelect={onHourChange}\n className=\"h-8\"\n disabled={v.disabled}\n />\n </div>\n ))}\n </div>\n </ScrollArea>\n )}\n {(!timePicker || timePicker.minute) && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48\">\n {minutes.map(v => (\n <div\n key={v.value}\n ref={v.value === minute ? minuteRef : undefined}\n >\n <TimeItem\n option={v}\n selected={v.value === minute}\n onSelect={onMinuteChange}\n className=\"h-8\"\n disabled={v.disabled}\n />\n </div>\n ))}\n </div>\n </ScrollArea>\n )}\n {(!timePicker || timePicker.second) && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48\">\n {seconds.map(v => (\n <div\n key={v.value}\n ref={v.value === second ? secondRef : undefined}\n >\n <TimeItem\n option={v}\n selected={v.value === second}\n onSelect={v => setSecond(v.value)}\n className=\"h-8\"\n disabled={v.disabled}\n />\n </div>\n ))}\n </div>\n </ScrollArea>\n )}\n {use12HourFormat && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2\">\n {ampmOptions.map(v => (\n <TimeItem\n key={v.value}\n option={v}\n selected={v.value === ampm}\n onSelect={onAmpmChange}\n className=\"h-8\"\n disabled={v.disabled}\n />\n ))}\n </div>\n </ScrollArea>\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\ninterface BuildTimeOptions {\n use12HourFormat?: boolean\n value: Date\n formatStr: string\n hour: number\n minute: number\n second: number\n ampm: number\n}\n\nfunction buildTime(options: BuildTimeOptions) {\n const { use12HourFormat, value, formatStr, hour, minute, second, ampm } =\n options\n let date: Date\n if (use12HourFormat) {\n const dateStrRaw = format(value, formatStr)\n // yyyy-MM-dd hh:mm:ss.SSS a zzzz\n // 2024-10-14 01:20:07.524 AM GMT+00:00\n let dateStr =\n dateStrRaw.slice(0, 11) +\n hour.toString().padStart(2, '0') +\n dateStrRaw.slice(13)\n dateStr =\n dateStr.slice(0, 14) +\n minute.toString().padStart(2, '0') +\n dateStr.slice(16)\n dateStr =\n dateStr.slice(0, 17) +\n second.toString().padStart(2, '0') +\n dateStr.slice(19)\n dateStr =\n dateStr.slice(0, 24) +\n (ampm === AM_VALUE ? 'AM' : 'PM') +\n dateStr.slice(26)\n date = parse(dateStr, formatStr, value)\n } else {\n date = setHours(setMinutes(setSeconds(value, second), minute), hour)\n }\n return date\n}\n\nexport type { TimeOption }\n"],"names":["DateTimePicker","value","onChange","min","max","timezone","hideTime","use12HourFormat","disabled","clearable","classNames","timePicker","modal","variant","size","hasCalendarIcon","props","open","setOpen","useState","monthYearPicker","setMonthYearPicker","initDate","useMemo","TZDate","Date","month","setMonth","date","setDate","endMonth","setYear","getYear","minDate","undefined","maxDate","onDayChanged","useCallback","d","onSubmit","onMonthYearChanged","mode","onNextMonth","addMonths","onPrevMonth","subMonths","useEffect","displayValue","displayFormat","format","Popover","PopoverTrigger","cn","buttonVariants","CalendarBlankIcon","Button","e","XIcon","PopoverContent","ptBR","CaretUpIcon","CaretDownIcon","CaretLeftIcon","CaretRightIcon","Calendar","Boolean","UI","MonthYearPicker","TimePicker","formatStr","ampm","setAmpm","hour","setHour","minute","setMinute","second","setSecond","buildTime","_hourIn24h","hours","Array","_","i","hourValue","hDate","setHours","hStart","startOfHour","hEnd","endOfHour","minutes","anchorDate","mDate","setMinutes","mStart","startOfMinute","mEnd","endOfMinute","seconds","setMilliseconds","_min","_max","sDate","setSeconds","ampmOptions","startD","startOfDay","endD","endOfDay","v","start","addHours","end","subHours","hourRef","useRef","minuteRef","secondRef","timeoutId","setTimeout","clearTimeout","onHourChange","newTime","onMinuteChange","onAmpmChange","minH","maxH","display","arr","element","ClockIcon","ScrollArea","TimeItem","options","dateStrRaw","dateStr","parse"],"mappings":"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"}
1
+ {"version":3,"file":"components\\datetime-picker\\datetime-picker.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/datetime-picker/datetime-picker.tsx"],"sourcesContent":["/**\n * Shadcn Datetime Picker with support for timezone, date and time selection, minimum and maximum date limits, and 12-hour format...\n * Check out the live demo at https://shadcn-datetime-picker-pro.vercel.app/\n * Find the latest source code at https://github.com/huybuidac/shadcn-datetime-picker\n */\n'use client'\n\nimport {\n CalendarBlankIcon,\n CaretDownIcon,\n CaretLeftIcon,\n CaretRightIcon,\n CaretUpIcon,\n ClockIcon,\n XIcon,\n} from '@phosphor-icons/react'\nimport {\n addHours,\n addMonths,\n endOfDay,\n endOfHour,\n endOfMinute,\n format,\n getYear,\n parse,\n setHours,\n setMilliseconds,\n setMinutes,\n setSeconds,\n setYear,\n startOfDay,\n startOfHour,\n startOfMinute,\n subHours,\n subMonths,\n} from 'date-fns'\nimport { ptBR } from 'date-fns/locale'\nimport type * as React from 'react'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { type DayPicker, type Matcher, TZDate, UI } from 'react-day-picker'\nimport { VariantProps } from 'tailwind-variants'\n\nimport { cn } from '@/lib'\nimport { Button, buttonVariants } from '../button'\nimport { Calendar } from '../calendar'\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover'\nimport { ScrollArea } from '../scroll-area'\nimport { MonthYearPicker } from './month-year-picker'\nimport { TimeItem } from './time-item'\n\nexport type CalendarProps = Omit<React.ComponentProps<typeof DayPicker>, 'mode'>\n\nconst AM_VALUE = 0\nconst PM_VALUE = 1\n\ninterface TimeOption {\n value: number\n label: string\n disabled: boolean\n}\n\nexport type DateTimePickerProps = {\n /**\n * The modality of the popover. When set to true, interaction with outside elements will be disabled and only popover content will be visible to screen readers.\n * If you want to use the datetime picker inside a dialog, you should set this to true.\n * @default false\n */\n modal?: boolean\n /**\n * The datetime value to display and control.\n */\n value: Date | null | undefined\n /**\n * Callback function to handle datetime changes.\n */\n onChange: (date: Date | undefined) => void\n /**\n * The minimum datetime value allowed.\n * @default undefined\n */\n min?: Date\n /**\n * The maximum datetime value allowed.\n */\n max?: Date\n /**\n * The timezone to display the datetime in, based on the date-fns.\n * For a complete list of valid time zone identifiers, refer to:\n * https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @default undefined\n */\n timezone?: string\n /**\n * Whether the datetime picker is disabled.\n * @default false\n */\n disabled?: boolean\n /**\n * Whether to show the time picker.\n * @default false\n */\n hideTime?: boolean\n /**\n * Whether to use 12-hour format.\n * @default false\n */\n use12HourFormat?: boolean\n /**\n * Whether to show the clear button.\n * @default false\n */\n clearable?: boolean\n /**\n * Custom class names for the component.\n */\n classNames?: {\n /**\n * Custom class names for the trigger (the button that opens the picker).\n */\n trigger?: string\n }\n timePicker?: {\n hour?: boolean\n minute?: boolean\n second?: boolean\n }\n size?: VariantProps<typeof buttonVariants>['size']\n variant?: VariantProps<typeof buttonVariants>['variant']\n hasCalendarIcon?: boolean\n}\n\nexport function DateTimePicker({\n value,\n onChange,\n min,\n max,\n timezone,\n hideTime,\n use12HourFormat = false,\n disabled,\n clearable,\n classNames,\n timePicker,\n modal = false,\n variant = 'outline',\n size = 'default',\n hasCalendarIcon = true,\n ...props\n}: DateTimePickerProps & CalendarProps) {\n const [open, setOpen] = useState(false)\n const [monthYearPicker, setMonthYearPicker] = useState<\n 'month' | 'year' | false\n >(false)\n const initDate = useMemo(\n () => new TZDate(value || new Date(), timezone),\n [value, timezone]\n )\n\n const [month, setMonth] = useState<Date>(initDate)\n const [date, setDate] = useState<Date>(initDate)\n\n const endMonth = useMemo(() => {\n return setYear(month, getYear(month) + 1)\n }, [month])\n const minDate = useMemo(\n () => (min ? new TZDate(min, timezone) : undefined),\n [min, timezone]\n )\n const maxDate = useMemo(\n () => (max ? new TZDate(max, timezone) : undefined),\n [max, timezone]\n )\n\n const onDayChanged = useCallback(\n (d: Date) => {\n d.setHours(date.getHours(), date.getMinutes(), date.getSeconds())\n if (min && d < min) {\n d.setHours(min.getHours(), min.getMinutes(), min.getSeconds())\n }\n if (max && d > max) {\n d.setHours(max.getHours(), max.getMinutes(), max.getSeconds())\n }\n setDate(d)\n },\n [setDate, setMonth]\n )\n const onSubmit = useCallback(() => {\n onChange(new Date(date))\n setOpen(false)\n }, [date, onChange])\n\n const onMonthYearChanged = useCallback(\n (d: Date, mode: 'month' | 'year') => {\n setMonth(d)\n if (mode === 'year') {\n setMonthYearPicker('month')\n } else {\n setMonthYearPicker(false)\n }\n },\n [setMonth, setMonthYearPicker]\n )\n const onNextMonth = useCallback(() => {\n setMonth(addMonths(month, 1))\n }, [month])\n const onPrevMonth = useCallback(() => {\n setMonth(subMonths(month, 1))\n }, [month])\n\n useEffect(() => {\n if (open) {\n setDate(initDate)\n setMonth(initDate)\n setMonthYearPicker(false)\n }\n }, [open, initDate])\n\n const displayValue = useMemo(() => {\n if (!open && !value) return value\n return open ? date : initDate\n }, [date, value, open])\n\n const displayFormat = useMemo(() => {\n if (!displayValue) return 'Selecione uma data'\n return format(displayValue, 'dd/MM/yyyy' + (hideTime ? '' : ' HH:mm'))\n }, [displayValue, hideTime, use12HourFormat])\n\n return (\n <Popover open={open} onOpenChange={setOpen} modal={modal}>\n <PopoverTrigger disabled={disabled} asChild>\n <div\n className={cn(\n buttonVariants({ variant, size }),\n 'ps-3 pe-1 font-normal hover:bg-transparent dark:hover:bg-input/50',\n !displayValue && 'text-muted-foreground',\n (!clearable || !value) && 'pe-3',\n classNames?.trigger\n )}\n >\n <div className=\"flex flex-grow items-center\">\n {hasCalendarIcon && <CalendarBlankIcon className=\"mr-2 size-4\" />}\n {displayFormat}\n </div>\n {clearable && value && (\n <Button\n disabled={disabled}\n variant=\"ghost\"\n size=\"sm\"\n aria-label=\"Clear date\"\n className=\"ms-1 size-6 p-1\"\n onClick={e => {\n e.stopPropagation()\n e.preventDefault()\n onChange(undefined)\n setOpen(false)\n }}\n >\n <XIcon className=\"size-4\" />\n </Button>\n )}\n </div>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-2\">\n <div className=\"flex items-center justify-between\">\n <div className=\"ms-2 flex cursor-pointer items-center font-bold text-md\">\n <div>\n <button\n type=\"button\"\n onClick={() =>\n setMonthYearPicker(\n monthYearPicker === 'month' ? false : 'month'\n )\n }\n >\n {format(month, 'MMMM', {\n locale: ptBR,\n })\n .charAt(0)\n .toUpperCase() +\n format(month, 'MMMM', {\n locale: ptBR,\n }).slice(1)}\n </button>\n <button\n type=\"button\"\n className=\"ms-1\"\n onClick={() =>\n setMonthYearPicker(\n monthYearPicker === 'year' ? false : 'year'\n )\n }\n >\n {format(month, 'yyyy')}\n </button>\n </div>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"ml-1 size-6\"\n onClick={() =>\n setMonthYearPicker(monthYearPicker ? false : 'year')\n }\n >\n {monthYearPicker ? <CaretUpIcon /> : <CaretDownIcon />}\n </Button>\n </div>\n <div\n className={cn('flex space-x-2', monthYearPicker ? 'hidden' : '')}\n >\n <Button variant=\"ghost\" size=\"icon\" onClick={onPrevMonth}>\n <CaretLeftIcon />\n </Button>\n <Button variant=\"ghost\" size=\"icon\" onClick={onNextMonth}>\n <CaretRightIcon />\n </Button>\n </div>\n </div>\n <div className=\"relative overflow-hidden\">\n <Calendar\n mode=\"single\"\n timeZone={timezone}\n selected={date}\n onSelect={d => d && onDayChanged(d)}\n month={month}\n endMonth={endMonth}\n disabled={\n [\n max ? { after: max } : null,\n min ? { before: min } : null,\n ].filter(Boolean) as Matcher[]\n }\n onMonthChange={setMonth}\n showOutsideDays={true}\n classNames={{\n [UI.Root]: 'py-2 px-0',\n [UI.MonthCaption]: 'hidden',\n [UI.NextMonthButton]: 'hidden',\n [UI.PreviousMonthButton]: 'hidden',\n }}\n {...props}\n />\n <div\n className={cn(\n 'absolute top-0 right-0 bottom-0 left-0',\n monthYearPicker ? 'bg-background' : 'hidden'\n )}\n />\n <MonthYearPicker\n value={month}\n mode={monthYearPicker}\n onChange={onMonthYearChanged}\n minDate={minDate}\n maxDate={maxDate}\n className={cn(\n 'absolute top-0 right-0 bottom-0 left-0',\n monthYearPicker ? '' : 'hidden'\n )}\n />\n </div>\n <div className=\"flex flex-col gap-2\">\n {!hideTime && (\n <TimePicker\n timePicker={timePicker}\n value={date}\n onChange={setDate}\n use12HourFormat={use12HourFormat}\n min={minDate}\n max={maxDate}\n />\n )}\n <div className=\"flex flex-row-reverse items-center justify-between\">\n <Button className=\"ms-2 h-7 px-2 text-sm\" onClick={onSubmit}>\n Salvar\n </Button>\n {timezone && (\n <div className=\"text-sm\">\n <span>Timezone:</span>\n <span className=\"ms-1 font-semibold\">{timezone}</span>\n </div>\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nfunction TimePicker({\n value,\n onChange,\n use12HourFormat,\n min,\n max,\n timePicker,\n}: {\n use12HourFormat?: boolean\n value: Date\n onChange: (date: Date) => void\n min?: Date\n max?: Date\n timePicker?: DateTimePickerProps['timePicker']\n}) {\n // hours24h = HH\n // hours12h = hh\n const formatStr = useMemo(\n () =>\n use12HourFormat\n ? 'yyyy-MM-dd hh:mm:ss.SSS a xxxx'\n : 'yyyy-MM-dd HH:mm:ss.SSS xxxx',\n [use12HourFormat]\n )\n const [ampm, setAmpm] = useState(\n format(value, 'a') === 'AM' ? AM_VALUE : PM_VALUE\n )\n const [hour, setHour] = useState(\n use12HourFormat ? +format(value, 'hh') : value.getHours()\n )\n const [minute, setMinute] = useState(value.getMinutes())\n const [second, setSecond] = useState(value.getSeconds())\n\n useEffect(() => {\n onChange(\n buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour,\n minute,\n second,\n ampm,\n })\n )\n }, [hour, minute, second, ampm, formatStr, use12HourFormat])\n\n const _hourIn24h = useMemo(() => {\n // if (use12HourFormat) {\n // return (hour % 12) + ampm * 12;\n // }\n return use12HourFormat ? (hour % 12) + ampm * 12 : hour\n }, [value, use12HourFormat, ampm])\n\n const hours: TimeOption[] = useMemo(\n () =>\n Array.from({ length: use12HourFormat ? 12 : 24 }, (_, i) => {\n let disabled = false\n const hourValue = use12HourFormat ? (i === 0 ? 12 : i) : i\n const hDate = setHours(value, use12HourFormat ? i + ampm * 12 : i)\n const hStart = startOfHour(hDate)\n const hEnd = endOfHour(hDate)\n if (min && hEnd < min) disabled = true\n if (max && hStart > max) disabled = true\n return {\n value: hourValue,\n label: hourValue.toString().padStart(2, '0'),\n disabled,\n }\n }),\n [value, min, max, use12HourFormat, ampm]\n )\n const minutes: TimeOption[] = useMemo(() => {\n const anchorDate = setHours(value, _hourIn24h)\n return Array.from({ length: 60 }, (_, i) => {\n let disabled = false\n const mDate = setMinutes(anchorDate, i)\n const mStart = startOfMinute(mDate)\n const mEnd = endOfMinute(mDate)\n if (min && mEnd < min) disabled = true\n if (max && mStart > max) disabled = true\n return {\n value: i,\n label: i.toString().padStart(2, '0'),\n disabled,\n }\n })\n }, [value, min, max, _hourIn24h])\n const seconds: TimeOption[] = useMemo(() => {\n const anchorDate = setMilliseconds(\n setMinutes(setHours(value, _hourIn24h), minute),\n 0\n )\n const _min = min ? setMilliseconds(min, 0) : undefined\n const _max = max ? setMilliseconds(max, 0) : undefined\n return Array.from({ length: 60 }, (_, i) => {\n let disabled = false\n const sDate = setSeconds(anchorDate, i)\n if (_min && sDate < _min) disabled = true\n if (_max && sDate > _max) disabled = true\n return {\n value: i,\n label: i.toString().padStart(2, '0'),\n disabled,\n }\n })\n }, [value, minute, min, max, _hourIn24h])\n const ampmOptions = useMemo(() => {\n const startD = startOfDay(value)\n const endD = endOfDay(value)\n return [\n { value: AM_VALUE, label: 'AM' },\n { value: PM_VALUE, label: 'PM' },\n ].map(v => {\n let disabled = false\n const start = addHours(startD, v.value * 12)\n const end = subHours(endD, (1 - v.value) * 12)\n if (min && end < min) disabled = true\n if (max && start > max) disabled = true\n return { ...v, disabled }\n })\n }, [value, min, max])\n\n const [open, setOpen] = useState(false)\n\n const hourRef = useRef<HTMLDivElement>(null)\n const minuteRef = useRef<HTMLDivElement>(null)\n const secondRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const timeoutId = setTimeout(() => {\n if (open) {\n hourRef.current?.scrollIntoView({ behavior: 'auto' })\n minuteRef.current?.scrollIntoView({ behavior: 'auto' })\n secondRef.current?.scrollIntoView({ behavior: 'auto' })\n }\n }, 1)\n return () => clearTimeout(timeoutId)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onHourChange = useCallback(\n (v: TimeOption) => {\n if (min) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime < min) {\n setMinute(min.getMinutes())\n setSecond(min.getSeconds())\n }\n }\n if (max) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime > max) {\n setMinute(max.getMinutes())\n setSecond(max.getSeconds())\n }\n }\n setHour(v.value)\n },\n [setHour, use12HourFormat, value, formatStr, minute, second, ampm]\n )\n\n const onMinuteChange = useCallback(\n (v: TimeOption) => {\n if (min) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime < min) {\n setSecond(min.getSeconds())\n }\n }\n if (max) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour: v.value,\n minute,\n second,\n ampm,\n })\n if (newTime > max) {\n setSecond(newTime.getSeconds())\n }\n }\n setMinute(v.value)\n },\n [setMinute, use12HourFormat, value, formatStr, hour, second, ampm]\n )\n\n const onAmpmChange = useCallback(\n (v: TimeOption) => {\n if (min) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour,\n minute,\n second,\n ampm: v.value,\n })\n if (newTime < min) {\n const minH = min.getHours() % 12\n setHour(minH === 0 ? 12 : minH)\n setMinute(min.getMinutes())\n setSecond(min.getSeconds())\n }\n }\n if (max) {\n const newTime = buildTime({\n use12HourFormat,\n value,\n formatStr,\n hour,\n minute,\n second,\n ampm: v.value,\n })\n if (newTime > max) {\n const maxH = max.getHours() % 12\n setHour(maxH === 0 ? 12 : maxH)\n setMinute(max.getMinutes())\n setSecond(max.getSeconds())\n }\n }\n setAmpm(v.value)\n },\n [setAmpm, use12HourFormat, value, formatStr, hour, minute, second, min, max]\n )\n\n const display = useMemo(() => {\n const arr = []\n for (const element of ['hour', 'minute', 'second']) {\n if (!timePicker || timePicker[element as keyof typeof timePicker]) {\n if (element === 'hour') {\n arr.push(use12HourFormat ? 'hh' : 'HH')\n } else {\n arr.push(element === 'minute' ? 'mm' : 'ss')\n }\n }\n }\n return format(value, arr.join(':') + (use12HourFormat ? ' a' : ''))\n }, [value, use12HourFormat, timePicker])\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n aria-expanded={open}\n className=\"justify-between font-mono\"\n >\n <ClockIcon className=\"mr-2 size-4\" />\n {display}\n <CaretDownIcon className=\"ml-2 size-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"p-0\" side=\"top\">\n <div className=\"flex-col gap-2 p-2\">\n <div className=\"flex h-56 grow\">\n {(!timePicker || timePicker.hour) && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48\">\n {hours.map(v => (\n <div\n key={v.value}\n ref={v.value === hour ? hourRef : undefined}\n >\n <TimeItem\n option={v}\n selected={v.value === hour}\n onSelect={onHourChange}\n className=\"h-8\"\n disabled={v.disabled}\n />\n </div>\n ))}\n </div>\n </ScrollArea>\n )}\n {(!timePicker || timePicker.minute) && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48\">\n {minutes.map(v => (\n <div\n key={v.value}\n ref={v.value === minute ? minuteRef : undefined}\n >\n <TimeItem\n option={v}\n selected={v.value === minute}\n onSelect={onMinuteChange}\n className=\"h-8\"\n disabled={v.disabled}\n />\n </div>\n ))}\n </div>\n </ScrollArea>\n )}\n {(!timePicker || timePicker.second) && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2 pb-48\">\n {seconds.map(v => (\n <div\n key={v.value}\n ref={v.value === second ? secondRef : undefined}\n >\n <TimeItem\n option={v}\n selected={v.value === second}\n onSelect={v => setSecond(v.value)}\n className=\"h-8\"\n disabled={v.disabled}\n />\n </div>\n ))}\n </div>\n </ScrollArea>\n )}\n {use12HourFormat && (\n <ScrollArea className=\"h-full flex-grow\">\n <div className=\"flex grow flex-col items-stretch overflow-y-auto pe-2\">\n {ampmOptions.map(v => (\n <TimeItem\n key={v.value}\n option={v}\n selected={v.value === ampm}\n onSelect={onAmpmChange}\n className=\"h-8\"\n disabled={v.disabled}\n />\n ))}\n </div>\n </ScrollArea>\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\ninterface BuildTimeOptions {\n use12HourFormat?: boolean\n value: Date\n formatStr: string\n hour: number\n minute: number\n second: number\n ampm: number\n}\n\nfunction buildTime(options: BuildTimeOptions) {\n const { use12HourFormat, value, formatStr, hour, minute, second, ampm } =\n options\n let date: Date\n if (use12HourFormat) {\n const dateStrRaw = format(value, formatStr)\n // yyyy-MM-dd hh:mm:ss.SSS a zzzz\n // 2024-10-14 01:20:07.524 AM GMT+00:00\n let dateStr =\n dateStrRaw.slice(0, 11) +\n hour.toString().padStart(2, '0') +\n dateStrRaw.slice(13)\n dateStr =\n dateStr.slice(0, 14) +\n minute.toString().padStart(2, '0') +\n dateStr.slice(16)\n dateStr =\n dateStr.slice(0, 17) +\n second.toString().padStart(2, '0') +\n dateStr.slice(19)\n dateStr =\n dateStr.slice(0, 24) +\n (ampm === AM_VALUE ? 'AM' : 'PM') +\n dateStr.slice(26)\n date = parse(dateStr, formatStr, value)\n } else {\n date = setHours(setMinutes(setSeconds(value, second), minute), hour)\n }\n return date\n}\n\nexport type { TimeOption }\n"],"names":["DateTimePicker","value","onChange","min","max","timezone","hideTime","use12HourFormat","disabled","clearable","classNames","timePicker","modal","variant","size","hasCalendarIcon","props","open","setOpen","useState","monthYearPicker","setMonthYearPicker","initDate","useMemo","TZDate","Date","month","setMonth","date","setDate","endMonth","setYear","getYear","minDate","undefined","maxDate","onDayChanged","useCallback","d","onSubmit","onMonthYearChanged","mode","onNextMonth","addMonths","onPrevMonth","subMonths","useEffect","displayValue","displayFormat","format","Popover","PopoverTrigger","cn","buttonVariants","CalendarBlankIcon","Button","e","XIcon","PopoverContent","ptBR","CaretUpIcon","CaretDownIcon","CaretLeftIcon","CaretRightIcon","Calendar","Boolean","UI","MonthYearPicker","TimePicker","formatStr","ampm","setAmpm","hour","setHour","minute","setMinute","second","setSecond","buildTime","_hourIn24h","hours","Array","_","i","hourValue","hDate","setHours","hStart","startOfHour","hEnd","endOfHour","minutes","anchorDate","mDate","setMinutes","mStart","startOfMinute","mEnd","endOfMinute","seconds","setMilliseconds","_min","_max","sDate","setSeconds","ampmOptions","startD","startOfDay","endD","endOfDay","v","start","addHours","end","subHours","hourRef","useRef","minuteRef","secondRef","timeoutId","setTimeout","clearTimeout","onHourChange","newTime","onMinuteChange","onAmpmChange","minH","maxH","display","arr","element","ClockIcon","ScrollArea","TimeItem","options","dateStrRaw","dateStr","parse"],"mappings":"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"}
@@ -13,7 +13,8 @@ type MultiSelectProps = ComponentProps<'button'> & VariantProps<typeof badgeVari
13
13
  asChild?: boolean;
14
14
  className?: string;
15
15
  onValueChange?: (value: string[]) => void;
16
+ hasRemoveOptionBadge?: boolean;
16
17
  };
17
- declare function MultiSelect({ options, onValueChange, variant, value, placeholder, maxCount, modalPopover, className, ...props }: MultiSelectProps): import("react/jsx-runtime").JSX.Element;
18
+ declare function MultiSelect({ options, onValueChange, variant, value, placeholder, maxCount, modalPopover, className, hasRemoveOptionBadge, ...props }: MultiSelectProps): import("react/jsx-runtime").JSX.Element;
18
19
  export { MultiSelect };
19
20
  //# sourceMappingURL=multi-select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-select.d.ts","sourceRoot":"","sources":["../../../src/components/multi-select.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAA2B,MAAM,OAAO,CAAA;AAE/D,OAAO,EAAE,YAAY,EAAM,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAS,aAAa,EAAE,MAAM,SAAS,CAAA;AAiB9C,KAAK,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC,GAC9C,YAAY,CAAC,OAAO,aAAa,CAAC,GAAG;IACnC,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;KACd,EAAE,CAAA;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CAC1C,CAAA;AAEH,iBAAS,WAAW,CAAC,EACnB,OAAY,EACZ,aAAa,EACb,OAAqB,EACrB,KAAU,EACV,WAA8B,EAC9B,QAAY,EACZ,YAAoB,EACpB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAoKlB;AAMD,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"multi-select.d.ts","sourceRoot":"","sources":["../../../src/components/multi-select.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAA2B,MAAM,OAAO,CAAA;AAE/D,OAAO,EAAE,YAAY,EAAM,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAS,aAAa,EAAE,MAAM,SAAS,CAAA;AAiB9C,KAAK,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC,GAC9C,YAAY,CAAC,OAAO,aAAa,CAAC,GAAG;IACnC,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;KACd,EAAE,CAAA;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACzC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAEH,iBAAS,WAAW,CAAC,EACnB,OAAY,EACZ,aAAa,EACb,OAAqB,EACrB,KAAU,EACV,WAA8B,EAC9B,QAAY,EACZ,YAAoB,EACpB,SAAS,EACT,oBAA4B,EAC5B,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAsKlB;AAMD,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -1,3 +1,3 @@
1
1
  'use client'
2
- import*as e from"react/jsx-runtime";import*as s from"@phosphor-icons/react";import*as a from"react";import*as n from"../lib/utils.js";import*as o from"./badge.js";import*as t from"./button.js";import*as r from"./checkbox.js";import*as l from"./command.js";import*as c from"./popover.js";function i({options:i=[],onValueChange:m,variant:d="secondary",value:p=[],placeholder:h="Select options",maxCount:x=2,modalPopover:u=!1,className:j,...g}){let[f,b]=(0,a.useState)(p),[N,C]=(0,a.useState)(!1),w=e=>{let s=f.includes(e)?f.filter(s=>s!==e):[...f,e];b(s),m?.(s)},v=()=>{b([]),m?.([])},y=()=>{let e=f.slice(0,x);b(e),m?.(e)};return(0,e.jsxs)(c.Popover,{open:N,onOpenChange:C,modal:u,children:[(0,e.jsx)(c.PopoverTrigger,{asChild:!0,children:(0,e.jsx)(t.Button,{...g,onClick:()=>{C(e=>!e)},variant:"outline",className:(0,n.cn)("flex h-10 w-auto min-w-60 items-center justify-between rounded-md border border-input bg-background px-3 py-2 hover:bg-transparent dark:hover:bg-input/50",j),children:f.length>0?(0,e.jsxs)("div",{className:"flex w-full items-center justify-between",children:[(0,e.jsxs)("div",{className:"flex items-center gap-x-1",children:[f.slice(0,x).map(a=>{let t=i.find(e=>e.value===a);return(0,e.jsxs)(o.Badge,{className:(0,n.cn)((0,o.badgeVariants)({variant:d})),children:[(0,e.jsx)(s.XIcon,{className:"mr-1 size-3 cursor-pointer",onClick:e=>{e.stopPropagation(),w(a)}}),(0,e.jsx)("span",{className:"max-w-32 truncate",children:t?.label})]},a)}),f.length>x&&(0,e.jsxs)(o.Badge,{className:(0,n.cn)((0,o.badgeVariants)({variant:d})),children:[(0,e.jsx)(s.XIcon,{className:"mr-1 size-3 cursor-pointer",onClick:e=>{e.stopPropagation(),y()}}),`+ ${f.length-x} ...`]})]}),(0,e.jsx)("div",{className:"ml-4 flex items-center",children:N?(0,e.jsx)(s.CaretUpIcon,{weight:"bold",className:"size-4 opacity-50"}):(0,e.jsx)(s.CaretDownIcon,{weight:"bold",className:"size-4 opacity-50"})})]}):(0,e.jsxs)("div",{className:"mx-auto flex w-full items-center justify-between",children:[(0,e.jsx)("span",{className:"font-normal text-sm placeholder:text-muted-foreground",children:"Select options"===h?"Selecione as op\xe7\xf5es":h}),N?(0,e.jsx)(s.CaretUpIcon,{weight:"bold",className:"ml-2 size-4 opacity-50"}):(0,e.jsx)(s.CaretDownIcon,{weight:"bold",className:"ml-2 size-4 opacity-50"})]})})}),(0,e.jsx)(c.PopoverContent,{className:"w-auto p-0",align:"start",onEscapeKeyDown:()=>C(!1),children:(0,e.jsxs)(l.Command,{children:[(0,e.jsx)(l.CommandInput,{placeholder:"Pesquisar...",onKeyDown:e=>{"Enter"===e.key&&C(!0)}}),(0,e.jsxs)(l.CommandList,{children:[(0,e.jsx)(l.CommandEmpty,{children:"Nenhum resultado encontrado."}),(0,e.jsxs)(l.CommandGroup,{children:[(0,e.jsxs)(l.CommandItem,{onSelect:()=>{if(f.length===i.length)v();else{let e=i.map(e=>e.value);b(e),m?.(e)}},className:"cursor-pointer",children:[(0,e.jsx)(r.Checkbox,{checked:f.length===i.length,className:"mr-2"}),(0,e.jsx)("span",{children:"(Selecionar todos)"})]},"all"),i.map(s=>{let a=f.includes(s.value);return(0,e.jsxs)(l.CommandItem,{onSelect:()=>w(s.value),className:"cursor-pointer",children:[(0,e.jsx)(r.Checkbox,{checked:a,className:"mr-2"}),(0,e.jsx)("span",{children:s.label})]},s.value)})]})]})]})})]})}export{i as MultiSelect};
2
+ import*as e from"react/jsx-runtime";import*as s from"@phosphor-icons/react";import*as a from"react";import*as n from"../lib/utils.js";import*as o from"./badge.js";import*as t from"./button.js";import*as r from"./checkbox.js";import*as l from"./command.js";import*as c from"./popover.js";function i({options:i=[],onValueChange:m,variant:d="secondary",value:p=[],placeholder:h="Select options",maxCount:x=2,modalPopover:u=!1,className:j,hasRemoveOptionBadge:g=!1,...f}){let[b,N]=(0,a.useState)(p),[C,w]=(0,a.useState)(!1),v=e=>{let s=b.includes(e)?b.filter(s=>s!==e):[...b,e];N(s),m?.(s)},y=()=>{N([]),m?.([])},k=()=>{let e=b.slice(0,x);N(e),m?.(e)};return(0,e.jsxs)(c.Popover,{open:C,onOpenChange:w,modal:u,children:[(0,e.jsx)(c.PopoverTrigger,{asChild:!0,children:(0,e.jsx)(t.Button,{...f,onClick:()=>{w(e=>!e)},variant:"outline",className:(0,n.cn)("flex h-10 w-auto min-w-60 items-center justify-between rounded-md border border-input bg-background px-3 py-2 hover:bg-transparent dark:hover:bg-input/50",j),children:b.length>0?(0,e.jsxs)("div",{className:"flex w-full items-center justify-between",children:[(0,e.jsxs)("div",{className:"flex items-center gap-x-1",children:[b.slice(0,x).map(a=>{let t=i.find(e=>e.value===a);return(0,e.jsxs)(o.Badge,{className:(0,n.cn)((0,o.badgeVariants)({variant:d})),children:[g&&(0,e.jsx)(s.XIcon,{className:"mr-1 size-3 cursor-pointer",onClick:e=>{e.stopPropagation(),v(a)}}),(0,e.jsx)("span",{className:"max-w-32 truncate",children:t?.label})]},a)}),b.length>x&&(0,e.jsxs)(o.Badge,{className:(0,n.cn)((0,o.badgeVariants)({variant:d})),children:[(0,e.jsx)(s.XIcon,{className:"mr-1 size-3 cursor-pointer",onClick:e=>{e.stopPropagation(),k()}}),`+ ${b.length-x} ...`]})]}),(0,e.jsx)("div",{className:"ml-4 flex items-center",children:C?(0,e.jsx)(s.CaretUpIcon,{weight:"bold",className:"size-4 opacity-50"}):(0,e.jsx)(s.CaretDownIcon,{weight:"bold",className:"size-4 opacity-50"})})]}):(0,e.jsxs)("div",{className:"mx-auto flex w-full items-center justify-between",children:[(0,e.jsx)("span",{className:"font-normal text-sm placeholder:text-muted-foreground",children:"Select options"===h?"Selecione as op\xe7\xf5es":h}),C?(0,e.jsx)(s.CaretUpIcon,{weight:"bold",className:"ml-2 size-4 opacity-50"}):(0,e.jsx)(s.CaretDownIcon,{weight:"bold",className:"ml-2 size-4 opacity-50"})]})})}),(0,e.jsx)(c.PopoverContent,{className:"w-auto p-0",align:"start",onEscapeKeyDown:()=>w(!1),children:(0,e.jsxs)(l.Command,{children:[(0,e.jsx)(l.CommandInput,{placeholder:"Pesquisar...",onKeyDown:e=>{"Enter"===e.key&&w(!0)}}),(0,e.jsxs)(l.CommandList,{children:[(0,e.jsx)(l.CommandEmpty,{children:"Nenhum resultado encontrado."}),(0,e.jsxs)(l.CommandGroup,{children:[(0,e.jsxs)(l.CommandItem,{onSelect:()=>{if(b.length===i.length)y();else{let e=i.map(e=>e.value);N(e),m?.(e)}},className:"cursor-pointer",children:[(0,e.jsx)(r.Checkbox,{checked:b.length===i.length,className:"mr-2"}),(0,e.jsx)("span",{children:"(Selecionar todos)"})]},"all"),i.map(s=>{let a=b.includes(s.value);return(0,e.jsxs)(l.CommandItem,{onSelect:()=>v(s.value),className:"cursor-pointer",children:[(0,e.jsx)(r.Checkbox,{checked:a,className:"mr-2"}),(0,e.jsx)("span",{children:s.label})]},s.value)})]})]})]})})]})}export{i as MultiSelect};
3
3
  //# sourceMappingURL=multi-select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components\\multi-select.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/multi-select.tsx"],"sourcesContent":["\r\n\r\nimport { CaretDownIcon, CaretUpIcon, XIcon } from '@phosphor-icons/react'\r\nimport { ComponentProps, KeyboardEvent, useState } from 'react'\r\n\r\nimport { VariantProps, cn } from '../lib/utils'\r\nimport { Badge, badgeVariants } from './badge'\r\nimport { Button } from './button'\r\nimport { Checkbox } from './checkbox'\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from './command'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: MultiSelect\r\n * -------------------------------------------------------------------------- */\r\n\r\ntype MultiSelectProps = ComponentProps<'button'> &\r\n VariantProps<typeof badgeVariants> & {\r\n options?: {\r\n label: string\r\n value: string\r\n }[]\r\n value?: string[]\r\n placeholder?: string\r\n maxCount?: number\r\n modalPopover?: boolean\r\n asChild?: boolean\r\n className?: string\r\n onValueChange?: (value: string[]) => void\r\n }\r\n\r\nfunction MultiSelect({\r\n options = [],\r\n onValueChange,\r\n variant = 'secondary',\r\n value = [],\r\n placeholder = 'Select options',\r\n maxCount = 2,\r\n modalPopover = false,\r\n className,\r\n ...props\r\n}: MultiSelectProps) {\r\n const [selectedValues, setSelectedValues] = useState<string[]>(value)\r\n const [isPopoverOpen, setIsPopoverOpen] = useState(false)\r\n\r\n const handleInputKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n if (event.key === 'Enter') {\r\n setIsPopoverOpen(true)\r\n }\r\n }\r\n\r\n const toggleOption = (option: string) => {\r\n const newSelectedValues = selectedValues.includes(option)\r\n ? selectedValues.filter(value => value !== option)\r\n : [...selectedValues, option]\r\n setSelectedValues(newSelectedValues)\r\n onValueChange?.(newSelectedValues)\r\n }\r\n\r\n const handleClear = () => {\r\n setSelectedValues([])\r\n onValueChange?.([])\r\n }\r\n\r\n const handleTogglePopover = () => {\r\n setIsPopoverOpen(prev => !prev)\r\n }\r\n\r\n const clearExtraOptions = () => {\r\n const newSelectedValues = selectedValues.slice(0, maxCount)\r\n setSelectedValues(newSelectedValues)\r\n onValueChange?.(newSelectedValues)\r\n }\r\n\r\n const toggleAll = () => {\r\n if (selectedValues.length === options.length) {\r\n handleClear()\r\n } else {\r\n const allValues = options.map(option => option.value)\r\n setSelectedValues(allValues)\r\n onValueChange?.(allValues)\r\n }\r\n }\r\n\r\n return (\r\n <Popover\r\n open={isPopoverOpen}\r\n onOpenChange={setIsPopoverOpen}\r\n modal={modalPopover}\r\n >\r\n <PopoverTrigger asChild>\r\n <Button\r\n {...props}\r\n onClick={handleTogglePopover}\r\n variant=\"outline\"\r\n className={cn(\r\n 'flex h-10 w-auto min-w-60 items-center justify-between rounded-md border border-input bg-background px-3 py-2 hover:bg-transparent dark:hover:bg-input/50',\r\n className\r\n )}\r\n >\r\n {selectedValues.length > 0 ? (\r\n <div className=\"flex w-full items-center justify-between\">\r\n <div className=\"flex items-center gap-x-1\">\r\n {selectedValues.slice(0, maxCount).map(value => {\r\n const option = options.find(o => o.value === value)\r\n return (\r\n <Badge\r\n key={value}\r\n className={cn(badgeVariants({ variant }))}\r\n >\r\n <XIcon\r\n className=\"mr-1 size-3 cursor-pointer\"\r\n onClick={event => {\r\n event.stopPropagation()\r\n toggleOption(value)\r\n }}\r\n />\r\n <span className=\"max-w-32 truncate\">{option?.label}</span>\r\n </Badge>\r\n )\r\n })}\r\n\r\n {selectedValues.length > maxCount && (\r\n <Badge className={cn(badgeVariants({ variant }))}>\r\n <XIcon\r\n className=\"mr-1 size-3 cursor-pointer\"\r\n onClick={event => {\r\n event.stopPropagation()\r\n clearExtraOptions()\r\n }}\r\n />\r\n {`+ ${selectedValues.length - maxCount} ...`}\r\n </Badge>\r\n )}\r\n </div>\r\n <div className=\"ml-4 flex items-center\">\r\n {isPopoverOpen ? (\r\n <CaretUpIcon weight=\"bold\" className=\"size-4 opacity-50\" />\r\n ) : (\r\n <CaretDownIcon weight=\"bold\" className=\"size-4 opacity-50\" />\r\n )}\r\n </div>\r\n </div>\r\n ) : (\r\n <div className=\"mx-auto flex w-full items-center justify-between\">\r\n <span className=\"font-normal text-sm placeholder:text-muted-foreground\">\r\n {placeholder === 'Select options'\r\n ? 'Selecione as opções'\r\n : placeholder}\r\n </span>\r\n {isPopoverOpen ? (\r\n <CaretUpIcon weight=\"bold\" className=\"ml-2 size-4 opacity-50\" />\r\n ) : (\r\n <CaretDownIcon\r\n weight=\"bold\"\r\n className=\"ml-2 size-4 opacity-50\"\r\n />\r\n )}\r\n </div>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n className=\"w-auto p-0\"\r\n align=\"start\"\r\n onEscapeKeyDown={() => setIsPopoverOpen(false)}\r\n >\r\n <Command>\r\n <CommandInput\r\n placeholder=\"Pesquisar...\"\r\n onKeyDown={handleInputKeyDown}\r\n />\r\n <CommandList>\r\n <CommandEmpty>Nenhum resultado encontrado.</CommandEmpty>\r\n <CommandGroup>\r\n <CommandItem\r\n key=\"all\"\r\n onSelect={toggleAll}\r\n className=\"cursor-pointer\"\r\n >\r\n <Checkbox\r\n checked={selectedValues.length === options.length}\r\n className=\"mr-2\"\r\n />\r\n <span>(Selecionar todos)</span>\r\n </CommandItem>\r\n {options.map(option => {\r\n const isSelected = selectedValues.includes(option.value)\r\n return (\r\n <CommandItem\r\n key={option.value}\r\n onSelect={() => toggleOption(option.value)}\r\n className=\"cursor-pointer\"\r\n >\r\n <Checkbox checked={isSelected} className=\"mr-2\" />\r\n <span>{option.label}</span>\r\n </CommandItem>\r\n )\r\n })}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { MultiSelect }\r\n"],"names":["MultiSelect","options","onValueChange","variant","value","placeholder","maxCount","modalPopover","className","props","selectedValues","setSelectedValues","useState","isPopoverOpen","setIsPopoverOpen","toggleOption","option","newSelectedValues","handleClear","clearExtraOptions","Popover","PopoverTrigger","Button","prev","cn","o","Badge","badgeVariants","XIcon","event","CaretUpIcon","CaretDownIcon","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","allValues","Checkbox","isSelected"],"mappings":"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"}
1
+ {"version":3,"file":"components\\multi-select.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/multi-select.tsx"],"sourcesContent":["\r\n\r\nimport { CaretDownIcon, CaretUpIcon, XIcon } from '@phosphor-icons/react'\r\nimport { ComponentProps, KeyboardEvent, useState } from 'react'\r\n\r\nimport { VariantProps, cn } from '../lib/utils'\r\nimport { Badge, badgeVariants } from './badge'\r\nimport { Button } from './button'\r\nimport { Checkbox } from './checkbox'\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from './command'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: MultiSelect\r\n * -------------------------------------------------------------------------- */\r\n\r\ntype MultiSelectProps = ComponentProps<'button'> &\r\n VariantProps<typeof badgeVariants> & {\r\n options?: {\r\n label: string\r\n value: string\r\n }[]\r\n value?: string[]\r\n placeholder?: string\r\n maxCount?: number\r\n modalPopover?: boolean\r\n asChild?: boolean\r\n className?: string\r\n onValueChange?: (value: string[]) => void\r\n hasRemoveOptionBadge?: boolean\r\n }\r\n\r\nfunction MultiSelect({\r\n options = [],\r\n onValueChange,\r\n variant = 'secondary',\r\n value = [],\r\n placeholder = 'Select options',\r\n maxCount = 2,\r\n modalPopover = false,\r\n className,\r\n hasRemoveOptionBadge = false,\r\n ...props\r\n}: MultiSelectProps) {\r\n const [selectedValues, setSelectedValues] = useState<string[]>(value)\r\n const [isPopoverOpen, setIsPopoverOpen] = useState(false)\r\n\r\n const handleInputKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n if (event.key === 'Enter') {\r\n setIsPopoverOpen(true)\r\n }\r\n }\r\n\r\n const toggleOption = (option: string) => {\r\n const newSelectedValues = selectedValues.includes(option)\r\n ? selectedValues.filter(value => value !== option)\r\n : [...selectedValues, option]\r\n setSelectedValues(newSelectedValues)\r\n onValueChange?.(newSelectedValues)\r\n }\r\n\r\n const handleClear = () => {\r\n setSelectedValues([])\r\n onValueChange?.([])\r\n }\r\n\r\n const handleTogglePopover = () => {\r\n setIsPopoverOpen(prev => !prev)\r\n }\r\n\r\n const clearExtraOptions = () => {\r\n const newSelectedValues = selectedValues.slice(0, maxCount)\r\n setSelectedValues(newSelectedValues)\r\n onValueChange?.(newSelectedValues)\r\n }\r\n\r\n const toggleAll = () => {\r\n if (selectedValues.length === options.length) {\r\n handleClear()\r\n } else {\r\n const allValues = options.map(option => option.value)\r\n setSelectedValues(allValues)\r\n onValueChange?.(allValues)\r\n }\r\n }\r\n\r\n return (\r\n <Popover\r\n open={isPopoverOpen}\r\n onOpenChange={setIsPopoverOpen}\r\n modal={modalPopover}\r\n >\r\n <PopoverTrigger asChild>\r\n <Button\r\n {...props}\r\n onClick={handleTogglePopover}\r\n variant=\"outline\"\r\n className={cn(\r\n 'flex h-10 w-auto min-w-60 items-center justify-between rounded-md border border-input bg-background px-3 py-2 hover:bg-transparent dark:hover:bg-input/50',\r\n className\r\n )}\r\n >\r\n {selectedValues.length > 0 ? (\r\n <div className=\"flex w-full items-center justify-between\">\r\n <div className=\"flex items-center gap-x-1\">\r\n {selectedValues.slice(0, maxCount).map(value => {\r\n const option = options.find(option => option.value === value)\r\n return (\r\n <Badge\r\n key={value}\r\n className={cn(badgeVariants({ variant }))}\r\n >\r\n {hasRemoveOptionBadge && (\r\n <XIcon\r\n className=\"mr-1 size-3 cursor-pointer\"\r\n onClick={event => {\r\n event.stopPropagation()\r\n toggleOption(value)\r\n }}\r\n />\r\n )}\r\n <span className=\"max-w-32 truncate\">{option?.label}</span>\r\n </Badge>\r\n )\r\n })}\r\n\r\n {selectedValues.length > maxCount && (\r\n <Badge className={cn(badgeVariants({ variant }))}>\r\n <XIcon\r\n className=\"mr-1 size-3 cursor-pointer\"\r\n onClick={event => {\r\n event.stopPropagation()\r\n clearExtraOptions()\r\n }}\r\n />\r\n {`+ ${selectedValues.length - maxCount} ...`}\r\n </Badge>\r\n )}\r\n </div>\r\n <div className=\"ml-4 flex items-center\">\r\n {isPopoverOpen ? (\r\n <CaretUpIcon weight=\"bold\" className=\"size-4 opacity-50\" />\r\n ) : (\r\n <CaretDownIcon weight=\"bold\" className=\"size-4 opacity-50\" />\r\n )}\r\n </div>\r\n </div>\r\n ) : (\r\n <div className=\"mx-auto flex w-full items-center justify-between\">\r\n <span className=\"font-normal text-sm placeholder:text-muted-foreground\">\r\n {placeholder === 'Select options'\r\n ? 'Selecione as opções'\r\n : placeholder}\r\n </span>\r\n {isPopoverOpen ? (\r\n <CaretUpIcon weight=\"bold\" className=\"ml-2 size-4 opacity-50\" />\r\n ) : (\r\n <CaretDownIcon\r\n weight=\"bold\"\r\n className=\"ml-2 size-4 opacity-50\"\r\n />\r\n )}\r\n </div>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n className=\"w-auto p-0\"\r\n align=\"start\"\r\n onEscapeKeyDown={() => setIsPopoverOpen(false)}\r\n >\r\n <Command>\r\n <CommandInput\r\n placeholder=\"Pesquisar...\"\r\n onKeyDown={handleInputKeyDown}\r\n />\r\n <CommandList>\r\n <CommandEmpty>Nenhum resultado encontrado.</CommandEmpty>\r\n <CommandGroup>\r\n <CommandItem\r\n key=\"all\"\r\n onSelect={toggleAll}\r\n className=\"cursor-pointer\"\r\n >\r\n <Checkbox\r\n checked={selectedValues.length === options.length}\r\n className=\"mr-2\"\r\n />\r\n <span>(Selecionar todos)</span>\r\n </CommandItem>\r\n {options.map(option => {\r\n const isSelected = selectedValues.includes(option.value)\r\n return (\r\n <CommandItem\r\n key={option.value}\r\n onSelect={() => toggleOption(option.value)}\r\n className=\"cursor-pointer\"\r\n >\r\n <Checkbox checked={isSelected} className=\"mr-2\" />\r\n <span>{option.label}</span>\r\n </CommandItem>\r\n )\r\n })}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { MultiSelect }\r\n"],"names":["MultiSelect","options","onValueChange","variant","value","placeholder","maxCount","modalPopover","className","hasRemoveOptionBadge","props","selectedValues","setSelectedValues","useState","isPopoverOpen","setIsPopoverOpen","toggleOption","option","newSelectedValues","handleClear","clearExtraOptions","Popover","PopoverTrigger","Button","prev","cn","Badge","badgeVariants","XIcon","event","CaretUpIcon","CaretDownIcon","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","allValues","Checkbox","isSelected"],"mappings":"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"}
@@ -1 +1 @@
1
- import*as t from"./data-table-config.js";export*from"./format.js";export*from"./utils.js";var r={"@/lib/data-table-config":function(r){r.exports=t}},o={};!function t(a){var e=o[a];if(void 0!==e)return e.exports;var i=o[a]={exports:{}};return r[a](i,i.exports,t),i.exports}("@/lib/data-table-config");
1
+ export*from"./format.js";export*from"./utils.js";export*from"./data-table-config.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gbmtech/aurora-ui",
3
- "version": "0.4.58",
3
+ "version": "0.4.59",
4
4
  "main": "./dist/cjs/index.cjs",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/esm/index.d.ts",
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\data-table\\index.js","sources":["webpack://@gbmtech/aurora-ui/webpack/runtime/define_property_getters","webpack://@gbmtech/aurora-ui/webpack/runtime/has_own_property","webpack://@gbmtech/aurora-ui/webpack/runtime/make_namespace_object"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["Object","Symbol"],"mappings":"kiCAAA,EAAoB,CAAC,CAAG,CAAC,EAAS,KACjC,IAAI,IAAI,KAAO,EACL,EAAoB,CAAC,CAAC,EAAY,IAAQ,CAAC,EAAoB,CAAC,CAAC,EAAS,IACzEA,OAAO,cAAc,CAAC,EAAS,EAAK,CAAE,WAAY,GAAM,IAAK,CAAU,CAAC,EAAI,AAAC,EAGzF,ECNA,EAAoB,CAAC,CAAG,CAAC,EAAK,IAAUA,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAK,GCClF,EAAoB,CAAC,CAAG,AAAC,IACrB,AAAkB,aAAlB,OAAOC,QAA0BA,OAAO,WAAW,EACrDD,OAAO,cAAc,CAAC,EAASC,OAAO,WAAW,CAAE,CAAE,MAAO,QAAS,GAEtED,OAAO,cAAc,CAAC,EAAS,aAAc,CAAE,MAAO,EAAK,EAC5D,E"}