@dgshahr/ui-kit 1.7.1 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DateAndTimePickerFooter-ClSJWVd3.js +74 -0
- package/dist/DateAndTimePickerFooter-Dikf0ZUx.cjs +1 -0
- package/dist/Form/Common/DateAndTimePickerFooter/DateAndTimePickerFooter.d.ts +10 -0
- package/dist/Form/Common/DateAndTimePickerFooter/DateAndTimePickerFooter.d.ts.map +1 -0
- package/dist/Form/Datepicker/Footer.d.ts.map +1 -1
- package/dist/Form/Datepicker/index.cjs +1 -1
- package/dist/Form/Datepicker/index.d.ts.map +1 -1
- package/dist/Form/Datepicker/index.mjs +396 -425
- package/dist/Form/Datepicker/types.d.ts +2 -22
- package/dist/Form/Datepicker/types.d.ts.map +1 -1
- package/dist/Form/Select/index.cjs +1 -1
- package/dist/Form/Select/index.mjs +1 -1
- package/dist/Form/Timepicker/Body.d.ts +4 -0
- package/dist/Form/Timepicker/Body.d.ts.map +1 -0
- package/dist/Form/Timepicker/Footer.d.ts +4 -0
- package/dist/Form/Timepicker/Footer.d.ts.map +1 -0
- package/dist/Form/Timepicker/GradientOverlay.d.ts +7 -0
- package/dist/Form/Timepicker/GradientOverlay.d.ts.map +1 -0
- package/dist/Form/Timepicker/ScrollWheel.d.ts +5 -0
- package/dist/Form/Timepicker/ScrollWheel.d.ts.map +1 -0
- package/dist/Form/Timepicker/TimeInput.d.ts +10 -0
- package/dist/Form/Timepicker/TimeInput.d.ts.map +1 -0
- package/dist/Form/Timepicker/TimeInputs.d.ts +5 -0
- package/dist/Form/Timepicker/TimeInputs.d.ts.map +1 -0
- package/dist/Form/Timepicker/TimeScrollWheels.d.ts +5 -0
- package/dist/Form/Timepicker/TimeScrollWheels.d.ts.map +1 -0
- package/dist/Form/Timepicker/constants.d.ts +2 -0
- package/dist/Form/Timepicker/constants.d.ts.map +1 -0
- package/dist/Form/Timepicker/context.d.ts +12 -0
- package/dist/Form/Timepicker/context.d.ts.map +1 -0
- package/dist/Form/Timepicker/hooks/useCaret.d.ts +5 -0
- package/dist/Form/Timepicker/hooks/useCaret.d.ts.map +1 -0
- package/dist/Form/Timepicker/hooks/useScrollWheel.d.ts +5 -0
- package/dist/Form/Timepicker/hooks/useScrollWheel.d.ts.map +1 -0
- package/dist/Form/Timepicker/index.cjs +1 -0
- package/dist/Form/Timepicker/index.d.ts +5 -0
- package/dist/Form/Timepicker/index.d.ts.map +1 -0
- package/dist/Form/Timepicker/index.mjs +369 -0
- package/dist/Form/Timepicker/types.d.ts +44 -0
- package/dist/Form/Timepicker/types.d.ts.map +1 -0
- package/dist/Form/Timepicker/utils.d.ts +10 -0
- package/dist/Form/Timepicker/utils.d.ts.map +1 -0
- package/dist/Form/Wrappers/PickerWrapper/PickerWrapper.d.ts.map +1 -1
- package/dist/Form/Wrappers/PickerWrapper/type.d.ts +2 -1
- package/dist/Form/Wrappers/PickerWrapper/type.d.ts.map +1 -1
- package/dist/Menu/constants.d.ts +1 -1
- package/dist/Menu/constants.d.ts.map +1 -1
- package/dist/Menu/index.cjs +1 -1
- package/dist/Menu/index.d.ts.map +1 -1
- package/dist/Menu/index.mjs +11 -9
- package/dist/Menu/types.d.ts +1 -1
- package/dist/Menu/types.d.ts.map +1 -1
- package/dist/PickerWrapper-BcOkTb3G.cjs +1 -0
- package/dist/{PickerWrapper-CQAaW1cs.js → PickerWrapper-CZPsW03T.js} +52 -47
- package/dist/Tooltip/Content.d.ts.map +1 -1
- package/dist/Tooltip/index.cjs +1 -1
- package/dist/Tooltip/index.d.ts +1 -1
- package/dist/Tooltip/index.d.ts.map +1 -1
- package/dist/Tooltip/index.mjs +21 -17
- package/dist/assets/styles.css +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +46 -44
- package/package.json +7 -1
- package/dist/PickerWrapper-DpLS0Ogo.cjs +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { HasOrNotRange, HasOrNotSubmitButton } from '../../../utils/types/DateAndTimePicker';
|
|
1
2
|
import { PickerWrapperProps } from '../Wrappers/PickerWrapper/type';
|
|
2
3
|
export declare enum DateTypes {
|
|
3
4
|
Day = 0,
|
|
@@ -27,28 +28,7 @@ type DatepickerPropsBase = PickerWrapperProps & {
|
|
|
27
28
|
element: (dayItem: DayItem) => React.ReactNode;
|
|
28
29
|
};
|
|
29
30
|
};
|
|
30
|
-
|
|
31
|
-
showSubmitButton?: true;
|
|
32
|
-
onSubmit?: () => void;
|
|
33
|
-
}
|
|
34
|
-
interface DatepickerWithoutSubmitButton {
|
|
35
|
-
showSubmitButton?: false;
|
|
36
|
-
onSubmit?: never;
|
|
37
|
-
}
|
|
38
|
-
export interface DatepickerWithRange {
|
|
39
|
-
acceptRange: true;
|
|
40
|
-
value: {
|
|
41
|
-
start: Date | null;
|
|
42
|
-
end: Date | null;
|
|
43
|
-
};
|
|
44
|
-
onChange: (value: DatepickerWithRange['value']) => void;
|
|
45
|
-
}
|
|
46
|
-
export interface DatepickerWithoutRange {
|
|
47
|
-
acceptRange?: false;
|
|
48
|
-
value: Date | null;
|
|
49
|
-
onChange: (value: Date) => void;
|
|
50
|
-
}
|
|
51
|
-
export type DatepickerProps = DatepickerPropsBase & (DatepickerWithSubmitButton | DatepickerWithoutSubmitButton) & (DatepickerWithRange | DatepickerWithoutRange);
|
|
31
|
+
export type DatepickerProps = DatepickerPropsBase & HasOrNotSubmitButton & HasOrNotRange;
|
|
52
32
|
export interface IDatepickerContext {
|
|
53
33
|
dateType: DateTypes;
|
|
54
34
|
setDateType: (type: DateTypes) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Datepicker/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,oBAAY,SAAS;IACnB,GAAG,IAAA;IACH,KAAK,IAAA;IACL,IAAI,IAAA;CACL;AAED,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAElG,KAAK,mBAAmB,GAAG,kBAAkB,GAAG;IAC9C,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5B,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE;QACf,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;QACpC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;KAChD,CAAC;CACH,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Datepicker/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC/F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,oBAAY,SAAS;IACnB,GAAG,IAAA;IACH,KAAK,IAAA;IACL,IAAI,IAAA;CACL;AAED,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAElG,KAAK,mBAAmB,GAAG,kBAAkB,GAAG;IAC9C,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5B,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE;QACf,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;QACpC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;KAChD,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,aAAa,CAAC;AAEzF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,YAAY,EAAE,IAAI,CAAC;IACnB,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACtC,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,eAAe,CAAC;CAClC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";require('../../assets/styles.css');const i=require("react/jsx-runtime"),d=require("../../clsx-C11secjj.cjs"),E=require("../../index-DmSuyV3m.cjs"),a=require("react"),_=require("../../IconSearch-BeVs-gUu.cjs"),H=require("../Checkbox/index.cjs"),V=require("../../Button/index.cjs"),M=require("../../PickerWrapper-
|
|
1
|
+
"use strict";require('../../assets/styles.css');const i=require("react/jsx-runtime"),d=require("../../clsx-C11secjj.cjs"),E=require("../../index-DmSuyV3m.cjs"),a=require("react"),_=require("../../IconSearch-BeVs-gUu.cjs"),H=require("../Checkbox/index.cjs"),V=require("../../Button/index.cjs"),M=require("../../PickerWrapper-BcOkTb3G.cjs"),$=require("../../Chip/index.cjs");;/* empty css */function z({label:n,isMultiple:s,isActive:r,disabled:u}){return s?i.jsx(H,{checked:r,label:n,readOnly:!0,disabled:u}):n}const D=n=>{const{option:s,onClick:r,value:u,mode:c,optionCellClassName:g,optionCell:t}=n;function l(){return Array.isArray(u)?u.includes(s.value):s.value===u}return i.jsx("button",{type:"button",onClick:r,className:d.clsx("dgsuikit:w-full dgsuikit:text-start dgsuikit:px-3 dgsuikit:disabled:cursor-not-allowed dgsuikit:py-3 dgsuikit:font-p1-regular dgsuikit:disabled:bg-gray-50 dgsuikit:transition",l()?"dgsuikit:bg-primary-50 dgsuikit:text-primary-500":"dgsuikit:text-gray-700 dgsuikit:disabled:text-gray-400",g),disabled:s.disabled,children:t?t(s,l()):z({label:s.label,isMultiple:c==="multiple",isActive:l(),disabled:s.disabled??!1})})},A=a.memo(D),U=20,G=n=>{const{options:s,mode:r="single",afterOptions:u,beforeOptions:c,onChange:g,searchable:t=!0,separateSelectedOptions:l=!0,optionsTitle:f="عنوانها",value:p,optionCellClassName:v,emptyContent:F="نتیجهای یافت نشد !",showClearButtonOnEmpty:R=!0}=n,[k,I]=a.useState(""),[x,B]=a.useState(0),m=a.useRef(null),N=a.useRef(null),{toggleWrapperVisibility:L}=M.usePickerWrapperContext(),O=d.clsx("dgsuikit:border-t dgsuikit:border-solid dgsuikit:border-gray-100",(!t&&!c||r==="multiple"&&l)&&"dgsuikit:first-of-type:border-t-0",!!u&&"dgsuikit:last-of-type:border-b");let h;const b=t;typeof t=="boolean"?h=t:h=Object.keys(t).length>0;const j=a.useMemo(()=>{if(!Array.isArray(s))throw new Error("options should be array");return k?s?.filter(e=>e.label.includes(k)):s},[k,s]),C=a.useMemo(()=>r==="multiple"&&l?s?.filter(e=>p.includes(e.value))??[]:[],[s,p]),S=a.useMemo(()=>{let e=j;r==="multiple"&&l&&(e=e?.filter(P=>!p.includes(P.value)));const o=Math.min(x+U,e?.length??0);return e?.slice(x,o)},[j,x,p]),y=m?.current?.children[0]?.clientHeight??50,W=((j?.length??0)-(r==="multiple"?C.length??0:0))*y,w=a.useCallback(()=>{const e=m?.current?.parentElement;if(!e)return;const o=e.scrollTop,P=m.current.offsetTop,T=Math.floor((o-P)/y);B(T>=0?T:0)},[y]);a.useEffect(()=>{const e=m.current?.parentElement;if(e)return e.addEventListener("scroll",w),()=>e.removeEventListener("scroll",w)},[w]),a.useEffect(()=>{!h||b.autoFocus===!1||!N.current||setTimeout(()=>{N.current?.focus()},300)},[]);const q=a.useCallback(e=>{if(typeof g=="function")if(r==="multiple"){const o=[...p??[]];o.includes(e)?o.splice(o.indexOf(e),1):o.push(e),g(o)}else g(e),L()},[p]);return i.jsxs(i.Fragment,{children:[h&&i.jsx(E.Input,{ref:N,id:"search-input",wrapperClassName:d.clsx("dgsuikit:sticky dgsuikit:top-0 dgsuikit:pt-3 dgsuikit:right-0 dgsuikit:bg-white dgsuikit:z-10 dgsuikit:px-3",c?"dgsuikit:pb-2":"dgsuikit:pb-3",b?.wrapperClassName),placeholder:b?.placeholder??"جستجوی عنوان",value:k,onChange:e=>I(e.currentTarget.value),rightIcon:b?.rightIcon??i.jsx(_.IconSearch,{width:20,height:20}),...typeof t=="object"?t:{}}),c,r==="multiple"&&l&&C.length>0&&i.jsxs(i.Fragment,{children:[i.jsx("p",{className:"dgsuikit:font-p2-regular dgsuikit:text-gray-400 dgsuikit:px-3 dgsuikit:py-2",children:`${f}ی انتخاب شده`}),C.map(e=>i.jsx(A,{onClick:()=>q(e.value),option:e,optionCellClassName:d.clsx(O,v),...n},e.value))]}),i.jsxs(i.Fragment,{children:[r==="multiple"&&l&&i.jsx("p",{className:"dgsuikit:font-p2-regular dgsuikit:text-gray-400 dgsuikit:px-3 dgsuikit:py-2",children:f}),i.jsx("div",{ref:m,className:"dgsuikit:relative",style:{height:W},children:S?.map((e,o)=>i.jsx("div",{className:d.clsx("dgsuikit:absolute dgsuikit:w-full",O),style:{top:`${(x+o)*y}px`},children:i.jsx(A,{onClick:()=>q(e.value),option:e,...n})},e.value))}),!S?.length&&!C.length&&i.jsxs("div",{className:"dgsuikit:text-center dgsuikit:flex dgsuikit:flex-col dgsuikit:items-center dgsuikit:mt-2",children:[i.jsx("p",{className:"dgsuikit:text-gray-500 dgsuikit:font-p3-medium",children:F}),R&&i.jsx(V,{type:"button",className:"dgsuikit:mt-1",variant:"text",size:"small",onClick:()=>I(""),children:"پاک کردن"})]})]}),u]})};function J(n,s){if(!Array.isArray(n))return s.find(r=>r.value===n)?.label??""}const K=n=>{const{searchable:s=!0,value:r,options:u}=n,c=Array.isArray(r)&&r.length>0;function g(){return n.inputProps?.prefix?n.inputProps.prefix:c?r.map(l=>i.jsx($,{label:u.find(f=>f.value===l)?.label,clickable:!0,leftIcon:i.jsx(E.IconCloseSquare,{}),onClick:f=>{f.stopPropagation();const p=r.filter(v=>v!==l);n.onChange?.(p)}},l)):null}const t={...n};return t.dropdownType==="popover"&&!s&&(t.popoverClassName=d.clsx("dgsuikit:pt-3",t.popoverClassName)),t.dropdownType==="drawer"&&(t.drawerProps={...t.drawerProps,containerClassName:d.clsx(s?"dgsuikit:!pt-0":"dgsuikit:!pt-3",t.drawerProps?.containerClassName)}),t.customInput||(t.inputProps={...t.inputProps,value:J(r,u),prefix:g(),prefixClassName:c?d.clsx("dgsuikit:flex dgsuikit:items-center flex dgsuikit:flex-wrap dgsuikit:gap-2 dgsuikit:w-full",t.inputProps?.prefixClassName):t.inputProps?.prefixClassName,className:c?"dgsuikit:hidden":t.inputProps?.className,containerClassName:c?d.clsx("dgsuikit:items-baseline",t.inputProps?.containerClassName):t.inputProps?.containerClassName}),i.jsx(M.PickerWrapper,{...t,children:i.jsx(G,{...n})})};module.exports=K;
|
|
@@ -5,7 +5,7 @@ import { memo as U, useState as B, useRef as L, useMemo as S, useCallback as H,
|
|
|
5
5
|
import { I as G } from "../../IconSearch-aShj2vmu.js";
|
|
6
6
|
import J from "../Checkbox/index.mjs";
|
|
7
7
|
import K from "../../Button/index.mjs";
|
|
8
|
-
import { u as Q, P as X } from "../../PickerWrapper-
|
|
8
|
+
import { u as Q, P as X } from "../../PickerWrapper-CZPsW03T.js";
|
|
9
9
|
import Y from "../../Chip/index.mjs";
|
|
10
10
|
import '../../assets/styles.css';/* empty css */
|
|
11
11
|
function Z({
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Body.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Timepicker/Body.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAY,MAAM,OAAO,CAAC;AAK1C,QAAA,MAAM,IAAI,EAAE,EA+CX,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Timepicker/Footer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,QAAA,MAAM,MAAM,EAAE,EAuCb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GradientOverlay.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Timepicker/GradientOverlay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,KAAK,oBAAoB,GAAG;IAAE,QAAQ,EAAE,KAAK,GAAG,QAAQ,CAAA;CAAE,CAAC;AAE3D,QAAA,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAY7C,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollWheel.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Timepicker/ScrollWheel.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAmCrC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { TimeValue } from './types';
|
|
3
|
+
import { InputProps } from '../Input';
|
|
4
|
+
export interface ControlledTimeInputProps extends Omit<InputProps, 'onChange' | 'value'> {
|
|
5
|
+
value: TimeValue;
|
|
6
|
+
onChange: (value: TimeValue) => void;
|
|
7
|
+
}
|
|
8
|
+
declare const ControlledTimeInput: FC<ControlledTimeInputProps>;
|
|
9
|
+
export default ControlledTimeInput;
|
|
10
|
+
//# sourceMappingURL=TimeInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeInput.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Timepicker/TimeInput.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAuB,KAAK,EAAE,EAAsB,MAAM,OAAO,CAAC;AAGhF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAc,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;IACtF,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACtC;AAED,QAAA,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CAyGrD,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeInputs.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Timepicker/TimeInputs.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,QAAA,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAuEnC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeScrollWheels.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Timepicker/TimeScrollWheels.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,QAAA,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAgE/C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Timepicker/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,UAAe,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FC, PropsWithChildren } from 'react';
|
|
2
|
+
import { TimepickerProps } from './types';
|
|
3
|
+
interface ITimePickerContext {
|
|
4
|
+
timePickerProps: TimepickerProps;
|
|
5
|
+
}
|
|
6
|
+
interface ContextProviderProps {
|
|
7
|
+
timePickerProps: TimepickerProps;
|
|
8
|
+
}
|
|
9
|
+
export declare const TimePickerProvider: FC<PropsWithChildren<ContextProviderProps>>;
|
|
10
|
+
export declare const useTimePickerContext: () => ITimePickerContext;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Timepicker/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,UAAU,kBAAkB;IAC1B,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,UAAU,oBAAoB;IAC5B,eAAe,EAAE,eAAe,CAAC;CAClC;AASD,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAY1E,CAAC;AAEF,eAAO,MAAM,oBAAoB,0BAAsC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCaret.d.ts","sourceRoot":"","sources":["../../../../src/components/Form/Timepicker/hooks/useCaret.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ;;8BAGc,MAAM;CAUxC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function useScrollWheel(items: number[], defaultValue: number | null | undefined, onValueChange: (val: number) => void): {
|
|
2
|
+
containerRef: import('react').RefObject<HTMLDivElement | null>;
|
|
3
|
+
itemRefs: import('react').RefObject<(HTMLDivElement | null)[]>;
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=useScrollWheel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScrollWheel.d.ts","sourceRoot":"","sources":["../../../../src/components/Form/Timepicker/hooks/useScrollWheel.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;;;EA4CrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const g=require("react/jsx-runtime"),b=require("react"),y=require("../../DateAndTimePickerFooter-Dikf0ZUx.cjs"),T=require("../../clsx-C11secjj.cjs"),V=require("../../index-DmSuyV3m.cjs"),A=require("../../index-BfuaA-Ji.cjs"),D=b.createContext({timePickerProps:{value:new Date,onChange:()=>{}}}),$=t=>{const{children:e,timePickerProps:n}=t;return g.jsx(D.Provider,{value:{timePickerProps:n},children:e})},H=()=>b.useContext(D),x=[0,1,3,4],B=t=>t[0]?.getBoundingClientRect().height??64,E=(t,e,n,r,o="instant")=>{if(!t)return;const c=e.indexOf(n);c!==-1&&t.scrollTo({top:c*r(),behavior:o})},I=t=>{if(t.length!==2)return!1;const e=Number(t);return!Number.isNaN(e)&&e>=0&&e<=23},F=t=>{if(t.length!==2)return!1;const e=Number(t);return!Number.isNaN(e)&&e>=0&&e<=59},N=t=>{if(!t)return["-","-",":","-","-"];const e=t.hour==null?"--":String(t.hour).padStart(2,"0"),n=t.minute==null?"--":String(t.minute).padStart(2,"0");return[e.charAt(0)??"-",e.charAt(1)??"-",":",n.charAt(0)??"-",n.charAt(1)??"-"]},R=t=>{const e=`${t[0]??"-"}${t[1]??"-"}`,n=`${t[3]}${t[4]}`;return{hour:!e.includes("-")&&I(e)?Number(e):null,minute:!n.includes("-")&&F(n)?Number(n):null}},w=(t,e=!0)=>{const n=x.indexOf(t);if(n===-1)return e?x[0]:x[x.length-1]??0;const r=e?n+1:n-1;return r<0?x[0]:r>=x.length?x[x.length-1]??0:x[r]??0},q=(t,e,n)=>e===0?/[0-2]/.test(t):e===1?+`${n[0]==="-"?"0":n[0]}${t}`<=23:e===3?/[0-5]/.test(t):!0,W=()=>{const t=b.useRef(null);return{inputRef:t,setCaretToEditable:(n,r=!0)=>{const o=t.current;if(!o)return;const c=x.includes(n)?n:w(n,r);typeof c=="number"&&o.setSelectionRange(c,c+1)}}},K=t=>{const{value:e={hour:null,minute:null},onChange:n,disabled:r=!1,className:o,...c}=t,{inputRef:l,setCaretToEditable:u}=W(),[a,k]=b.useState(()=>N(e)),i=b.useRef(e);b.useEffect(()=>{(e.hour!==i.current.hour||e.minute!==i.current.minute)&&(i.current=e,k(N(e)))},[e]);const f=()=>{const h=l.current;if(!h)return;const s=h.selectionStart??0;x.includes(s)||u(s,!0)},p=(h,s)=>{const d=h==="ArrowRight";u(w(s,d),d)},m=(h,s)=>{const d=x.includes(s)?s:w(s,!1),S=[...a];S[d]="-",k(S),n(R(S));const v=h==="Backspace"?w(d,!1):w(d,!0);setTimeout(()=>u(v,h!=="Backspace"),0)},C=(h,s)=>{const d=x.includes(s)?s:w(s,!0),S=[...a];q(h,d,S)&&(S[d]=h,k(S),n(R(S)),setTimeout(()=>u(w(d,!0),!0),0))},P=h=>{if(h.preventDefault(),r)return;const s=l.current;if(!s)return;const d=s.selectionStart??0;if(["ArrowLeft","ArrowRight"].includes(h.key)){p(h.key,d);return}if(["Backspace","Delete"].includes(h.key)){m(h.key,d);return}/^\d$/.test(h.key)&&C(h.key,d)};return g.jsx(V.Input,{ref:l,dir:"ltr",className:o,value:a.join(""),onKeyDown:P,onFocus:f,disabled:r,inputMode:"numeric",pattern:"[0-9:]*",...c})},O=({timePickerProps:t,setActivePart:e,handleSingleTimeChange:n,handleRangeTimeChange:r})=>{const{acceptRange:o,value:c}=t,l=a=>({hour:a?.getHours()??0,minute:a?.getMinutes()??0}),u=o?[{key:"start",id:"from-time",label:"از ساعت",value:l(c?.start),className:"dgsuikit:w-1/2"},{key:"end",id:"to-time",label:"تا ساعت",value:l(c?.end),className:"dgsuikit:w-1/2"}]:[{key:"single",id:"time",label:"ساعت",value:l(c),className:void 0}];return g.jsx("div",{className:T.clsx(o&&"dgsuikit:flex dgsuikit:justify-between dgsuikit:gap-4 dgsuikit:mb-4"),children:u.map(({key:a,id:k,label:i,value:f,className:p})=>g.jsx(K,{id:k,value:f,labelContent:i,className:p,onFocus:()=>{o&&a!=="single"&&e(a)},onChange:m=>{typeof m.hour=="number"&&typeof m.minute=="number"&&(o&&a!=="single"?r(a,m.hour,m.minute):n(m.hour,m.minute))}},k))})},j=({position:t})=>g.jsx("div",{className:T.clsx("dgsuikit:absolute dgsuikit:left-0 dgsuikit:right-0 dgsuikit:h-12 dgsuikit:pointer-events-none","dgsuikit:from-[rgba(255,255,255,0.54)] dgsuikit:to-[rgba(255,255,255,0.90)]",t==="top"?"dgsuikit:bg-gradient-to-t dgsuikit:top-0":"dgsuikit:bg-gradient-to-b dgsuikit:bottom-0")});function L(t,e,n){const r=b.useRef(null),o=b.useRef([]),c=b.useRef(null),l=()=>B(o.current),u=(i=e??0,f="smooth")=>{E(r.current,t,i,l,f),c.current=i},a=A.debounce(i=>{i!==c.current&&(c.current=i,n(i))},200),k=i=>{const f=Math.round(i.scrollTop/l()),p=t[Math.max(0,Math.min(f,t.length-1))];p!=null&&a(p)};return b.useEffect(()=>{const i=r.current;if(!i)return;const f=()=>k(i);return i.addEventListener("scroll",f),()=>i.removeEventListener("scroll",f)},[t,a]),b.useEffect(()=>{e!=null&&u()},[e]),{containerRef:r,itemRefs:o}}const M=t=>{const{items:e,defaultValue:n,onValueChange:r,className:o,formatValue:c=a=>String(a).padStart(2,"0")}=t,{containerRef:l,itemRefs:u}=L(e,n,r);return g.jsxs("div",{className:"dgsuikit:relative dgsuikit:h-28 dgsuikit:w-full",children:[g.jsx("div",{ref:l,className:T.clsx("dgsuikit:h-28 dgsuikit:w-full dgsuikit:py-10 dgsuikit:overflow-y-scroll dgsuikit:snap-y dgsuikit:snap-mandatory dgsuikit:scroll-smooth dgsuikit:no-scrollbar",o),children:e.map((a,k)=>g.jsx("div",{ref:i=>{u.current[k]=i},className:"dgsuikit:h-10 dgsuikit:flex dgsuikit:items-center dgsuikit:justify-center dgsuikit:snap-center dgsuikit:font-p1-regular",children:c(a)},a))}),g.jsx(j,{position:"top"}),g.jsx(j,{position:"bottom"})]})},_=t=>{const{timePickerProps:e,activePart:n,handleSingleTimeChange:r,handleRangeTimeChange:o}=t,{minuteStep:c=1,acceptRange:l,value:u}=e,a=Array.from({length:24},(s,d)=>d),k=Array.from({length:60},(s,d)=>d).filter(s=>s%c===0),i=s=>s.toString().padStart(2,"0"),f=s=>s.toString().padStart(2,"0"),p=s=>{if(l){const d=n==="start"?u?.start:u?.end;return d?d[s]():0}return u?u[s]():0},m=p("getHours"),C=p("getMinutes"),P=s=>{l?o(n,n==="start"?u?.start?.getHours()??0:u?.end?.getHours()??0,s):r(u?.getHours()??0,s)},h=s=>{l?o(n,s,n==="start"?u?.start?.getMinutes()??0:u?.end?.getMinutes()??0):r(s,u?.getMinutes()??0)};return g.jsxs("div",{className:"dgsuikit:flex dgsuikit:mt-2 dgsuikit:w-full dgsuikit:justify-center",children:[g.jsx(M,{items:k,defaultValue:C,onValueChange:P,formatValue:f}),g.jsx(M,{items:a,defaultValue:m,onValueChange:h,formatValue:i})]})},G=()=>{const{timePickerProps:t}=H(),{acceptRange:e,value:n,onChange:r}=t,[o,c]=b.useState("start"),l=(i,f,p)=>{const m=new Date(i);return m.setHours(f),m.setMinutes(p),m.setSeconds(0),m.setMilliseconds(0),m},k={timePickerProps:t,handleSingleTimeChange:(i,f)=>{!n||e||n.getHours()===i&&n.getMinutes()===f||r(l(n,i,f))},handleRangeTimeChange:(i,f,p)=>{if(!n||!e)return;const m=new Date(n[i]??new Date);m.getHours()===f&&m.getMinutes()===p||r({...n,[i]:l(m,f,p)})}};return g.jsxs("div",{className:"dgsuikit:p-4 dgsuikit:ss02",children:[g.jsx(O,{setActivePart:c,...k}),g.jsx(_,{activePart:o,...k})]})},z=()=>{const{timePickerProps:t}=H(),{showSubmitButton:e=!0,showNowButton:n=!0,onSubmit:r,onChange:o,acceptRange:c}=t,l=()=>{if(c){const u=new Date;u.setHours(u.getHours()+1),o({start:new Date,end:u})}else o(new Date)};return g.jsx(y.DateAndTimePickerFooter,{...e&&{primaryButton:{onClick:r,children:"اعمال"}},...n&&{secondaryButton:{variant:"text",onClick:l,children:"رفتن به اکنون"}},className:"dgsuikit:p-4"})};function J(t){if(!t)return"";if(t instanceof Date){const e=t.getHours().toString().padStart(2,"0"),n=t.getMinutes().toString().padStart(2,"0");return`${e}:${n}`}if(t.start&&t.end){const e=t.start.getHours().toString().padStart(2,"0"),n=t.start.getMinutes().toString().padStart(2,"0"),r=t.end.getHours().toString().padStart(2,"0"),o=t.end.getMinutes().toString().padStart(2,"0");return`${e}:${n} - ${r}:${o}`}return""}const Q=t=>{const{showSubmitButton:e=!0,showNowButton:n=!0}=t,{Wrapper:r,wrapperProps:o}=y.useDateAndTimePickerWrapper({props:t,standaloneMode:"time",formatValue:J});return g.jsx(r,{...o,children:g.jsxs($,{timePickerProps:t,children:[g.jsx(G,{}),(e||n)&&g.jsx(z,{})]})})};module.exports=Q;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Form/Timepicker/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAKhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAqB/C,QAAA,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAiBnC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
import { jsx as h, jsxs as N } from "react/jsx-runtime";
|
|
2
|
+
import B, { createContext as I, useContext as E, useRef as C, useState as v, useEffect as M } from "react";
|
|
3
|
+
import { D as j, u as F } from "../../DateAndTimePickerFooter-ClSJWVd3.js";
|
|
4
|
+
import { c as T } from "../../clsx-OuTLNxxd.js";
|
|
5
|
+
import { I as W } from "../../index-ChP5zdaB.js";
|
|
6
|
+
import { d as K } from "../../index-CzwAoGdL.js";
|
|
7
|
+
const V = I({
|
|
8
|
+
timePickerProps: {
|
|
9
|
+
value: /* @__PURE__ */ new Date(),
|
|
10
|
+
onChange: () => {
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}), O = (t) => {
|
|
14
|
+
const { children: e, timePickerProps: n } = t;
|
|
15
|
+
return /* @__PURE__ */ h(
|
|
16
|
+
V.Provider,
|
|
17
|
+
{
|
|
18
|
+
value: {
|
|
19
|
+
timePickerProps: n
|
|
20
|
+
},
|
|
21
|
+
children: e
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
}, A = () => E(V), b = [0, 1, 3, 4], L = (t) => t[0]?.getBoundingClientRect().height ?? 64, _ = (t, e, n, s, o = "instant") => {
|
|
25
|
+
if (!t) return;
|
|
26
|
+
const a = e.indexOf(n);
|
|
27
|
+
a !== -1 && t.scrollTo({
|
|
28
|
+
top: a * s(),
|
|
29
|
+
behavior: o
|
|
30
|
+
});
|
|
31
|
+
}, G = (t) => {
|
|
32
|
+
if (t.length !== 2) return !1;
|
|
33
|
+
const e = Number(t);
|
|
34
|
+
return !Number.isNaN(e) && e >= 0 && e <= 23;
|
|
35
|
+
}, q = (t) => {
|
|
36
|
+
if (t.length !== 2) return !1;
|
|
37
|
+
const e = Number(t);
|
|
38
|
+
return !Number.isNaN(e) && e >= 0 && e <= 59;
|
|
39
|
+
}, R = (t) => {
|
|
40
|
+
if (!t) return ["-", "-", ":", "-", "-"];
|
|
41
|
+
const e = t.hour == null ? "--" : String(t.hour).padStart(2, "0"), n = t.minute == null ? "--" : String(t.minute).padStart(2, "0");
|
|
42
|
+
return [e.charAt(0) ?? "-", e.charAt(1) ?? "-", ":", n.charAt(0) ?? "-", n.charAt(1) ?? "-"];
|
|
43
|
+
}, y = (t) => {
|
|
44
|
+
const e = `${t[0] ?? "-"}${t[1] ?? "-"}`, n = `${t[3]}${t[4]}`;
|
|
45
|
+
return {
|
|
46
|
+
hour: !e.includes("-") && G(e) ? Number(e) : null,
|
|
47
|
+
minute: !n.includes("-") && q(n) ? Number(n) : null
|
|
48
|
+
};
|
|
49
|
+
}, w = (t, e = !0) => {
|
|
50
|
+
const n = b.indexOf(t);
|
|
51
|
+
if (n === -1)
|
|
52
|
+
return e ? b[0] : b[b.length - 1] ?? 0;
|
|
53
|
+
const s = e ? n + 1 : n - 1;
|
|
54
|
+
return s < 0 ? b[0] : s >= b.length ? b[b.length - 1] ?? 0 : b[s] ?? 0;
|
|
55
|
+
}, z = (t, e, n) => e === 0 ? /[0-2]/.test(t) : e === 1 ? +`${n[0] === "-" ? "0" : n[0]}${t}` <= 23 : e === 3 ? /[0-5]/.test(t) : !0, J = () => {
|
|
56
|
+
const t = C(null);
|
|
57
|
+
return { inputRef: t, setCaretToEditable: (n, s = !0) => {
|
|
58
|
+
const o = t.current;
|
|
59
|
+
if (!o) return;
|
|
60
|
+
const a = b.includes(n) ? n : w(n, s);
|
|
61
|
+
typeof a == "number" && o.setSelectionRange(a, a + 1);
|
|
62
|
+
} };
|
|
63
|
+
}, Q = (t) => {
|
|
64
|
+
const {
|
|
65
|
+
value: e = { hour: null, minute: null },
|
|
66
|
+
onChange: n,
|
|
67
|
+
disabled: s = !1,
|
|
68
|
+
className: o,
|
|
69
|
+
...a
|
|
70
|
+
} = t, { inputRef: d, setCaretToEditable: u } = J(), [c, p] = v(() => R(e)), i = B.useRef(e);
|
|
71
|
+
M(() => {
|
|
72
|
+
(e.hour !== i.current.hour || e.minute !== i.current.minute) && (i.current = e, p(R(e)));
|
|
73
|
+
}, [e]);
|
|
74
|
+
const g = () => {
|
|
75
|
+
const f = d.current;
|
|
76
|
+
if (!f) return;
|
|
77
|
+
const r = f.selectionStart ?? 0;
|
|
78
|
+
b.includes(r) || u(r, !0);
|
|
79
|
+
}, k = (f, r) => {
|
|
80
|
+
const l = f === "ArrowRight";
|
|
81
|
+
u(w(r, l), l);
|
|
82
|
+
}, m = (f, r) => {
|
|
83
|
+
const l = b.includes(r) ? r : w(r, !1), S = [...c];
|
|
84
|
+
S[l] = "-", p(S), n(y(S));
|
|
85
|
+
const $ = f === "Backspace" ? w(l, !1) : w(l, !0);
|
|
86
|
+
setTimeout(() => u($, f !== "Backspace"), 0);
|
|
87
|
+
}, P = (f, r) => {
|
|
88
|
+
const l = b.includes(r) ? r : w(r, !0), S = [...c];
|
|
89
|
+
z(f, l, S) && (S[l] = f, p(S), n(y(S)), setTimeout(() => u(w(l, !0), !0), 0));
|
|
90
|
+
}, x = (f) => {
|
|
91
|
+
if (f.preventDefault(), s) return;
|
|
92
|
+
const r = d.current;
|
|
93
|
+
if (!r) return;
|
|
94
|
+
const l = r.selectionStart ?? 0;
|
|
95
|
+
if (["ArrowLeft", "ArrowRight"].includes(f.key)) {
|
|
96
|
+
k(f.key, l);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (["Backspace", "Delete"].includes(f.key)) {
|
|
100
|
+
m(f.key, l);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
/^\d$/.test(f.key) && P(f.key, l);
|
|
104
|
+
};
|
|
105
|
+
return /* @__PURE__ */ h(
|
|
106
|
+
W,
|
|
107
|
+
{
|
|
108
|
+
ref: d,
|
|
109
|
+
dir: "ltr",
|
|
110
|
+
className: o,
|
|
111
|
+
value: c.join(""),
|
|
112
|
+
onKeyDown: x,
|
|
113
|
+
onFocus: g,
|
|
114
|
+
disabled: s,
|
|
115
|
+
inputMode: "numeric",
|
|
116
|
+
pattern: "[0-9:]*",
|
|
117
|
+
...a
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
}, U = ({
|
|
121
|
+
timePickerProps: t,
|
|
122
|
+
setActivePart: e,
|
|
123
|
+
handleSingleTimeChange: n,
|
|
124
|
+
handleRangeTimeChange: s
|
|
125
|
+
}) => {
|
|
126
|
+
const { acceptRange: o, value: a } = t, d = (c) => ({
|
|
127
|
+
hour: c?.getHours() ?? 0,
|
|
128
|
+
minute: c?.getMinutes() ?? 0
|
|
129
|
+
}), u = o ? [
|
|
130
|
+
{
|
|
131
|
+
key: "start",
|
|
132
|
+
id: "from-time",
|
|
133
|
+
label: "از ساعت",
|
|
134
|
+
value: d(a?.start),
|
|
135
|
+
className: "dgsuikit:w-1/2"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
key: "end",
|
|
139
|
+
id: "to-time",
|
|
140
|
+
label: "تا ساعت",
|
|
141
|
+
value: d(a?.end),
|
|
142
|
+
className: "dgsuikit:w-1/2"
|
|
143
|
+
}
|
|
144
|
+
] : [
|
|
145
|
+
{
|
|
146
|
+
key: "single",
|
|
147
|
+
id: "time",
|
|
148
|
+
label: "ساعت",
|
|
149
|
+
value: d(a),
|
|
150
|
+
className: void 0
|
|
151
|
+
}
|
|
152
|
+
];
|
|
153
|
+
return /* @__PURE__ */ h(
|
|
154
|
+
"div",
|
|
155
|
+
{
|
|
156
|
+
className: T(
|
|
157
|
+
o && "dgsuikit:flex dgsuikit:justify-between dgsuikit:gap-4 dgsuikit:mb-4"
|
|
158
|
+
),
|
|
159
|
+
children: u.map(({ key: c, id: p, label: i, value: g, className: k }) => /* @__PURE__ */ h(
|
|
160
|
+
Q,
|
|
161
|
+
{
|
|
162
|
+
id: p,
|
|
163
|
+
value: g,
|
|
164
|
+
labelContent: i,
|
|
165
|
+
className: k,
|
|
166
|
+
onFocus: () => {
|
|
167
|
+
o && c !== "single" && e(c);
|
|
168
|
+
},
|
|
169
|
+
onChange: (m) => {
|
|
170
|
+
typeof m.hour == "number" && typeof m.minute == "number" && (o && c !== "single" ? s(c, m.hour, m.minute) : n(m.hour, m.minute));
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
p
|
|
174
|
+
))
|
|
175
|
+
}
|
|
176
|
+
);
|
|
177
|
+
}, H = ({ position: t }) => /* @__PURE__ */ h(
|
|
178
|
+
"div",
|
|
179
|
+
{
|
|
180
|
+
className: T(
|
|
181
|
+
"dgsuikit:absolute dgsuikit:left-0 dgsuikit:right-0 dgsuikit:h-12 dgsuikit:pointer-events-none",
|
|
182
|
+
"dgsuikit:from-[rgba(255,255,255,0.54)] dgsuikit:to-[rgba(255,255,255,0.90)]",
|
|
183
|
+
t === "top" ? "dgsuikit:bg-gradient-to-t dgsuikit:top-0" : "dgsuikit:bg-gradient-to-b dgsuikit:bottom-0"
|
|
184
|
+
)
|
|
185
|
+
}
|
|
186
|
+
);
|
|
187
|
+
function X(t, e, n) {
|
|
188
|
+
const s = C(null), o = C([]), a = C(null), d = () => L(o.current), u = (i = e ?? 0, g = "smooth") => {
|
|
189
|
+
_(s.current, t, i, d, g), a.current = i;
|
|
190
|
+
}, c = K((i) => {
|
|
191
|
+
i !== a.current && (a.current = i, n(i));
|
|
192
|
+
}, 200), p = (i) => {
|
|
193
|
+
const g = Math.round(i.scrollTop / d()), k = t[Math.max(0, Math.min(g, t.length - 1))];
|
|
194
|
+
k != null && c(k);
|
|
195
|
+
};
|
|
196
|
+
return M(() => {
|
|
197
|
+
const i = s.current;
|
|
198
|
+
if (!i) return;
|
|
199
|
+
const g = () => p(i);
|
|
200
|
+
return i.addEventListener("scroll", g), () => i.removeEventListener("scroll", g);
|
|
201
|
+
}, [t, c]), M(() => {
|
|
202
|
+
e != null && u();
|
|
203
|
+
}, [e]), { containerRef: s, itemRefs: o };
|
|
204
|
+
}
|
|
205
|
+
const D = (t) => {
|
|
206
|
+
const {
|
|
207
|
+
items: e,
|
|
208
|
+
defaultValue: n,
|
|
209
|
+
onValueChange: s,
|
|
210
|
+
className: o,
|
|
211
|
+
formatValue: a = (c) => String(c).padStart(2, "0")
|
|
212
|
+
} = t, { containerRef: d, itemRefs: u } = X(e, n, s);
|
|
213
|
+
return /* @__PURE__ */ N("div", { className: "dgsuikit:relative dgsuikit:h-28 dgsuikit:w-full", children: [
|
|
214
|
+
/* @__PURE__ */ h(
|
|
215
|
+
"div",
|
|
216
|
+
{
|
|
217
|
+
ref: d,
|
|
218
|
+
className: T(
|
|
219
|
+
"dgsuikit:h-28 dgsuikit:w-full dgsuikit:py-10 dgsuikit:overflow-y-scroll dgsuikit:snap-y dgsuikit:snap-mandatory dgsuikit:scroll-smooth dgsuikit:no-scrollbar",
|
|
220
|
+
o
|
|
221
|
+
),
|
|
222
|
+
children: e.map((c, p) => /* @__PURE__ */ h(
|
|
223
|
+
"div",
|
|
224
|
+
{
|
|
225
|
+
ref: (i) => {
|
|
226
|
+
u.current[p] = i;
|
|
227
|
+
},
|
|
228
|
+
className: "dgsuikit:h-10 dgsuikit:flex dgsuikit:items-center dgsuikit:justify-center dgsuikit:snap-center dgsuikit:font-p1-regular",
|
|
229
|
+
children: a(c)
|
|
230
|
+
},
|
|
231
|
+
c
|
|
232
|
+
))
|
|
233
|
+
}
|
|
234
|
+
),
|
|
235
|
+
/* @__PURE__ */ h(H, { position: "top" }),
|
|
236
|
+
/* @__PURE__ */ h(H, { position: "bottom" })
|
|
237
|
+
] });
|
|
238
|
+
}, Y = (t) => {
|
|
239
|
+
const { timePickerProps: e, activePart: n, handleSingleTimeChange: s, handleRangeTimeChange: o } = t, { minuteStep: a = 1, acceptRange: d, value: u } = e, c = Array.from({ length: 24 }, (r, l) => l), p = Array.from({ length: 60 }, (r, l) => l).filter(
|
|
240
|
+
(r) => r % a === 0
|
|
241
|
+
), i = (r) => r.toString().padStart(2, "0"), g = (r) => r.toString().padStart(2, "0"), k = (r) => {
|
|
242
|
+
if (d) {
|
|
243
|
+
const l = n === "start" ? u?.start : u?.end;
|
|
244
|
+
return l ? l[r]() : 0;
|
|
245
|
+
}
|
|
246
|
+
return u ? u[r]() : 0;
|
|
247
|
+
}, m = k("getHours"), P = k("getMinutes");
|
|
248
|
+
return /* @__PURE__ */ N("div", { className: "dgsuikit:flex dgsuikit:mt-2 dgsuikit:w-full dgsuikit:justify-center", children: [
|
|
249
|
+
/* @__PURE__ */ h(
|
|
250
|
+
D,
|
|
251
|
+
{
|
|
252
|
+
items: p,
|
|
253
|
+
defaultValue: P,
|
|
254
|
+
onValueChange: (r) => {
|
|
255
|
+
d ? o(
|
|
256
|
+
n,
|
|
257
|
+
n === "start" ? u?.start?.getHours() ?? 0 : u?.end?.getHours() ?? 0,
|
|
258
|
+
r
|
|
259
|
+
) : s(u?.getHours() ?? 0, r);
|
|
260
|
+
},
|
|
261
|
+
formatValue: g
|
|
262
|
+
}
|
|
263
|
+
),
|
|
264
|
+
/* @__PURE__ */ h(
|
|
265
|
+
D,
|
|
266
|
+
{
|
|
267
|
+
items: c,
|
|
268
|
+
defaultValue: m,
|
|
269
|
+
onValueChange: (r) => {
|
|
270
|
+
d ? o(
|
|
271
|
+
n,
|
|
272
|
+
r,
|
|
273
|
+
n === "start" ? u?.start?.getMinutes() ?? 0 : u?.end?.getMinutes() ?? 0
|
|
274
|
+
) : s(r, u?.getMinutes() ?? 0);
|
|
275
|
+
},
|
|
276
|
+
formatValue: i
|
|
277
|
+
}
|
|
278
|
+
)
|
|
279
|
+
] });
|
|
280
|
+
}, Z = () => {
|
|
281
|
+
const { timePickerProps: t } = A(), { acceptRange: e, value: n, onChange: s } = t, [o, a] = v("start"), d = (i, g, k) => {
|
|
282
|
+
const m = new Date(i);
|
|
283
|
+
return m.setHours(g), m.setMinutes(k), m.setSeconds(0), m.setMilliseconds(0), m;
|
|
284
|
+
}, p = { timePickerProps: t, handleSingleTimeChange: (i, g) => {
|
|
285
|
+
!n || e || n.getHours() === i && n.getMinutes() === g || s(d(n, i, g));
|
|
286
|
+
}, handleRangeTimeChange: (i, g, k) => {
|
|
287
|
+
if (!n || !e) return;
|
|
288
|
+
const m = new Date(n[i] ?? /* @__PURE__ */ new Date());
|
|
289
|
+
m.getHours() === g && m.getMinutes() === k || s({
|
|
290
|
+
...n,
|
|
291
|
+
[i]: d(m, g, k)
|
|
292
|
+
});
|
|
293
|
+
} };
|
|
294
|
+
return /* @__PURE__ */ N("div", { className: "dgsuikit:p-4 dgsuikit:ss02", children: [
|
|
295
|
+
/* @__PURE__ */ h(
|
|
296
|
+
U,
|
|
297
|
+
{
|
|
298
|
+
setActivePart: a,
|
|
299
|
+
...p
|
|
300
|
+
}
|
|
301
|
+
),
|
|
302
|
+
/* @__PURE__ */ h(
|
|
303
|
+
Y,
|
|
304
|
+
{
|
|
305
|
+
activePart: o,
|
|
306
|
+
...p
|
|
307
|
+
}
|
|
308
|
+
)
|
|
309
|
+
] });
|
|
310
|
+
}, tt = () => {
|
|
311
|
+
const { timePickerProps: t } = A(), {
|
|
312
|
+
showSubmitButton: e = !0,
|
|
313
|
+
showNowButton: n = !0,
|
|
314
|
+
onSubmit: s,
|
|
315
|
+
onChange: o,
|
|
316
|
+
acceptRange: a
|
|
317
|
+
} = t;
|
|
318
|
+
return /* @__PURE__ */ h(
|
|
319
|
+
j,
|
|
320
|
+
{
|
|
321
|
+
...e && {
|
|
322
|
+
primaryButton: {
|
|
323
|
+
onClick: s,
|
|
324
|
+
children: "اعمال"
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
...n && {
|
|
328
|
+
secondaryButton: {
|
|
329
|
+
variant: "text",
|
|
330
|
+
onClick: () => {
|
|
331
|
+
if (a) {
|
|
332
|
+
const u = /* @__PURE__ */ new Date();
|
|
333
|
+
u.setHours(u.getHours() + 1), o({ start: /* @__PURE__ */ new Date(), end: u });
|
|
334
|
+
} else
|
|
335
|
+
o(/* @__PURE__ */ new Date());
|
|
336
|
+
},
|
|
337
|
+
children: "رفتن به اکنون"
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
className: "dgsuikit:p-4"
|
|
341
|
+
}
|
|
342
|
+
);
|
|
343
|
+
};
|
|
344
|
+
function et(t) {
|
|
345
|
+
if (!t) return "";
|
|
346
|
+
if (t instanceof Date) {
|
|
347
|
+
const e = t.getHours().toString().padStart(2, "0"), n = t.getMinutes().toString().padStart(2, "0");
|
|
348
|
+
return `${e}:${n}`;
|
|
349
|
+
}
|
|
350
|
+
if (t.start && t.end) {
|
|
351
|
+
const e = t.start.getHours().toString().padStart(2, "0"), n = t.start.getMinutes().toString().padStart(2, "0"), s = t.end.getHours().toString().padStart(2, "0"), o = t.end.getMinutes().toString().padStart(2, "0");
|
|
352
|
+
return `${e}:${n} - ${s}:${o}`;
|
|
353
|
+
}
|
|
354
|
+
return "";
|
|
355
|
+
}
|
|
356
|
+
const at = (t) => {
|
|
357
|
+
const { showSubmitButton: e = !0, showNowButton: n = !0 } = t, { Wrapper: s, wrapperProps: o } = F({
|
|
358
|
+
props: t,
|
|
359
|
+
standaloneMode: "time",
|
|
360
|
+
formatValue: et
|
|
361
|
+
});
|
|
362
|
+
return /* @__PURE__ */ h(s, { ...o, children: /* @__PURE__ */ N(O, { timePickerProps: t, children: [
|
|
363
|
+
/* @__PURE__ */ h(Z, {}),
|
|
364
|
+
(e || n) && /* @__PURE__ */ h(tt, {})
|
|
365
|
+
] }) });
|
|
366
|
+
};
|
|
367
|
+
export {
|
|
368
|
+
at as default
|
|
369
|
+
};
|