@itcase/ui-web 1.10.27 → 1.10.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";var e=require("react/jsx-runtime"),a=require("react"),r=require("clsx"),i=require("luxon"),s=require("@itcase/ui-core/hooks"),t=require("@itcase/ui-core/utils"),c=require("../../ChipsGroup_cjs_DmlWfqO5.js"),n=require("../../DatePicker_cjs_uTMwXLmJ.js");require("react-select"),require("../../primitives_cjs_EVP_2N_A.js");var p=require("../../SelectContainer_cjs_oasI4gzw.js");require("../../Group_cjs_CiLUYKP7.js");var d=require("@itcase/common");require("date-fns/locale"),require("react-datepicker"),require("../../Button_cjs_D0Fa5AsR.js"),require("../../Loader_cjs_4kGh3xPd.js"),require("axios"),require("../../Input_cjs_D9PxC_lJ.js"),require("../../default_cjs_BMdcKzhJ.js"),require("@rc-component/tooltip"),require("react-inlinesvg"),require("@itcase/ui-core/hoc"),require("react-select/creatable");const o={surfacePrimary:{fill:"surfacePrimary",chipsAppearance:"surfacePrimary sizeM ghost rounded",datePickerAppearance:"surfacePrimary sizeM solid rounded",datePickerInputAppearance:"defaultPrimary sizeM solid rounded",selectAppearance:"defaultPrimary sizeM solid rounded"},surfaceSecondary:{fill:"surfaceSecondary",chipsAppearance:"surfacePrimary sizeM ghost rounded",datePickerAppearance:"surfacePrimary sizeM solid rounded",datePickerInputAppearance:"defaultPrimary sizeM solid rounded",selectAppearance:"defaultPrimary sizeM solid rounded"},sizeL:{size:"l",chipsAppearanceSize:"sizeXL",datePickerAppearanceSize:"sizeL",datePickerInputAppearanceSize:"sizeL",selectAppearanceSize:"sizeL"},sizeM:{size:"m",chipsAppearanceSize:"sizeL",datePickerAppearanceSize:"sizeM",datePickerInputAppearanceSize:"sizeM",selectAppearanceSize:"sizeM"},sizeS:{size:"s",chipsAppearanceSize:"sizeM",datePickerAppearanceSize:"sizeS",datePickerInputAppearanceSize:"sizeS",selectAppearanceSize:"sizeS"},circular:{shape:"circular"},rounded:{chipsShape:"rounded",selectShape:"rounded",shape:"rounded"},roundedXL:{chipsShape:"roundedXL",selectShape:"roundedXL",shape:"roundedXL"},roundedL:{chipsShape:"roundedL",selectShape:"roundedL",shape:"roundedL"},roundedM:{chipsShape:"roundedM",selectShape:"roundedM",shape:"roundedM"},roundedS:{chipsShape:"roundedS",selectShape:"roundedS",shape:"roundedS"}},l=Object.values(d.DATE_PERIOD_INTERVALS);const u={appearance:o,setAppearance:e=>{u.appearance=e}};exports.DatePeriod=function(o){const{appearance:h,className:S,dataTestId:P,dataTour:z,type:m="year",datePeriodIntervalsList:_,datePeriodSelectFirstOptions:A,datePeriodSelectFirstPlaceholder:k="Выбрать",datePeriodSelectFirstValue:I,datePeriodSelectSecondOptions:f,datePeriodSelectSecondPlaceholder:y="Выбрать",datePeriodSelectSecondValue:j,datePeriodValueEnd:v,datePeriodValueStart:D,monthsShown:q=2,popperPlacement:L,selectFirstIsSearchable:C=!0,selectFirstWidth:g="180px",selectSecondIsSearchable:M=!0,selectSecondWidth:x="180px",selectsRange:b=!0,showWeekNumbers:w=!1,isDisabled:N,isSkeleton:F,onChangeDatePeriod:T,onChangeDatePeriodFirstSelect:E,onChangeDatePeriodSecondSelect:W,onKeyDown:O}=o,R=s.useAppearanceConfig(h,u,N),V=s.useDevicePropsGenerator(o,R),{fillClass:K,chipsAppearance:X,chipsAppearanceSize:G,chipsShape:$,datePickerAppearance:H,datePickerAppearanceSize:J,datePickerInputAppearance:B,datePickerInputAppearanceSize:Q,datePickerInputFillHover:U,datePickerInputTextSize:Y,selectAppearance:Z,selectAppearanceSize:ee,selectShape:ae,shapeClass:re,sizeClass:ie}=V,se=function(e="year",a){if("period"===e)return[];const r=a??l;if("year"===e)return r;const i="month"===e?d.DATE_PERIOD_INTERVALS.backMonth.value:d.DATE_PERIOD_INTERVALS.backQuarter.value,s=l.findIndex(e=>e.value===i),t=new Set(l.slice(0,s+1).map(e=>e.value));return r.filter(e=>t.has(e.value))}(V.type??m,_),te=a.useCallback(e=>{const a=e.dateIntervalsList[0],r=e.dateIntervalsList[1];T?.(new Date(a),new Date(r))},[T]),ce=a.useCallback(e=>{const a=e.dateIntervalsList[0],r=e.dateIntervalsList[1];let s=null,t=null;return D&&(s=i.DateTime.fromJSDate(new Date(D)).toISODate()),v&&(t=i.DateTime.fromJSDate(new Date(v)).toISODate()),a===s&&r===t},[v,D]);return e.jsxs("div",{className:r(S,"date-period",ie&&`date-period_size_${ie}`,F&&"skeleton"),"data-testid":P,"data-tour":z,children:[e.jsxs("div",{className:r("date-period__wrapper",re&&`shape_${re}`,K&&`fill_${K}`,"cursor_type_pointer"),children:[se.length>0&&e.jsx(c.ChipsGroup,{className:"date-period__choice",direction:"horizontal",children:se.map(a=>e.jsx(c.Chips,{appearance:t.mergeAppearanceKeys(X,G),label:a.label,shape:$,isActive:ce(a),onClick:()=>te(a)},a.value))}),e.jsx(n.DatePickerInput,{className:"date-period__datepicker",datePickerProps:{appearance:t.mergeAppearanceKeys(H,J),dateFormat:"dd/MM/yyyy",monthsShown:V.monthsShown??q,popperPlacement:L,selectsRange:b,showWeekNumbers:w,isClearable:!1,onKeyDown:O},endValue:v,inputProps:{appearance:t.mergeAppearanceKeys(B,Q,"ghost"),className:`date-period__datepicker-input date-period__datepicker-input_size_${ie} `,fillHover:U,textSize:Y,placeholder:"Выбрать период"},value:D,onChange:T})]}),A&&e.jsx(p.SelectContainer,{appearance:t.mergeAppearanceKeys(Z,ee),className:"date-period__select",width:V.selectFirstWidth??g,minWidth:V.selectFirstWidth??g,options:A,placeholder:k,shape:ae,value:I??null,isSearchable:V.selectFirstIsSearchable??C,onChange:E}),f&&e.jsx(p.SelectContainer,{appearance:t.mergeAppearanceKeys(Z,ee),className:"date-period__select",width:V.selectSecondWidth??x,minWidth:V.selectSecondWidth??x,options:f,placeholder:y,shape:ae,value:j??null,isSearchable:V.selectSecondIsSearchable??M,onChange:W})]})},exports.datePeriodAppearance=o,exports.datePeriodConfig=u;
1
+ "use strict";var e=require("react/jsx-runtime"),a=require("react"),r=require("clsx"),t=require("luxon"),i=require("@itcase/ui-core/hooks"),s=require("@itcase/ui-core/utils"),c=require("../../ChipsGroup_cjs_DmlWfqO5.js"),n=require("../../DatePicker_cjs_uTMwXLmJ.js");require("react-select"),require("../../primitives_cjs_EVP_2N_A.js");var p=require("../../SelectContainer_cjs_oasI4gzw.js");require("../../Group_cjs_CiLUYKP7.js");var d=require("@itcase/common");require("date-fns/locale"),require("react-datepicker"),require("../../Button_cjs_D0Fa5AsR.js"),require("../../Loader_cjs_4kGh3xPd.js"),require("axios"),require("../../Input_cjs_D9PxC_lJ.js"),require("../../default_cjs_BMdcKzhJ.js"),require("@rc-component/tooltip"),require("react-inlinesvg"),require("@itcase/ui-core/hoc"),require("react-select/creatable");const o={surfacePrimary:{fill:"surfacePrimary",chipsAppearance:"surfacePrimary sizeM ghost rounded",datePickerAppearance:"surfacePrimary sizeM solid rounded",datePickerInputAppearance:"defaultPrimary sizeM solid rounded",selectAppearance:"defaultPrimary sizeM solid rounded"},surfaceSecondary:{fill:"surfaceSecondary",chipsAppearance:"surfacePrimary sizeM ghost rounded",datePickerAppearance:"surfacePrimary sizeM solid rounded",datePickerInputAppearance:"defaultPrimary sizeM solid rounded",selectAppearance:"defaultPrimary sizeM solid rounded"},sizeL:{size:"l",chipsAppearanceSize:"sizeXL",datePickerAppearanceSize:"sizeL",datePickerInputAppearanceSize:"sizeL",selectAppearanceSize:"sizeL"},sizeM:{size:"m",chipsAppearanceSize:"sizeL",datePickerAppearanceSize:"sizeM",datePickerInputAppearanceSize:"sizeM",selectAppearanceSize:"sizeM"},sizeS:{size:"s",chipsAppearanceSize:"sizeM",datePickerAppearanceSize:"sizeS",datePickerInputAppearanceSize:"sizeS",selectAppearanceSize:"sizeS"},circular:{shape:"circular"},rounded:{chipsShape:"rounded",selectShape:"rounded",shape:"rounded"},roundedXL:{chipsShape:"roundedXL",selectShape:"roundedXL",shape:"roundedXL"},roundedL:{chipsShape:"roundedL",selectShape:"roundedL",shape:"roundedL"},roundedM:{chipsShape:"roundedM",selectShape:"roundedM",shape:"roundedM"},roundedS:{chipsShape:"roundedS",selectShape:"roundedS",shape:"roundedS"}},l=Object.values(d.DATE_PERIOD_INTERVALS);function u(){const e=t.DateTime.now().startOf("day");return{label:"Год",dateIntervalsList:[e.minus({year:1}).toISODate(),e.toISODate()],value:"backYear"}}const h={appearance:o,setAppearance:e=>{h.appearance=e}};exports.DatePeriod=function(o){const{appearance:S,className:P,dataTestId:m,dataTour:z,type:_="year",datePeriodIntervalsList:A,datePeriodSelectFirstOptions:k,datePeriodSelectFirstPlaceholder:I="Выбрать",datePeriodSelectFirstValue:f,datePeriodSelectSecondOptions:y,datePeriodSelectSecondPlaceholder:v="Выбрать",datePeriodSelectSecondValue:D,datePeriodValueEnd:j,datePeriodValueStart:q,monthsShown:L=2,popperPlacement:b,selectFirstIsSearchable:C=!0,selectFirstWidth:g="180px",selectSecondIsSearchable:M=!0,selectSecondWidth:x="180px",selectsRange:w=!0,showWeekNumbers:N=!1,isDisabled:T,isSkeleton:F,onChangeDatePeriod:O,onChangeDatePeriodFirstSelect:E,onChangeDatePeriodSecondSelect:W,onKeyDown:R}=o,V=i.useAppearanceConfig(S,h,T),K=i.useDevicePropsGenerator(o,V),{fillClass:X,chipsAppearance:G,chipsAppearanceSize:$,chipsShape:H,datePickerAppearance:J,datePickerAppearanceSize:Y,datePickerInputAppearance:B,datePickerInputAppearanceSize:Q,datePickerInputFillHover:U,datePickerInputTextSize:Z,selectAppearance:ee,selectAppearanceSize:ae,selectShape:re,shapeClass:te,sizeClass:ie}=K,se=function(e="year",a){if("period"===e)return[];const r=a??l;if("year"===e)return r.some(e=>"backYear"===e.value)?r:[...r,u()];const t="month"===e?d.DATE_PERIOD_INTERVALS.backMonth.value:d.DATE_PERIOD_INTERVALS.backQuarter.value,i=l.findIndex(e=>e.value===t),s=new Set(l.slice(0,i+1).map(e=>e.value));return r.filter(e=>s.has(e.value))}(K.type??_,A),ce=a.useCallback(e=>{const a=e.dateIntervalsList[0],r=e.dateIntervalsList[1];O?.(new Date(a),new Date(r))},[O]),ne=a.useCallback(e=>{const a=e.dateIntervalsList[0],r=e.dateIntervalsList[1];let i=null,s=null;return q&&(i=t.DateTime.fromJSDate(new Date(q)).toISODate()),j&&(s=t.DateTime.fromJSDate(new Date(j)).toISODate()),a===i&&r===s},[j,q]);return e.jsxs("div",{className:r(P,"date-period",ie&&`date-period_size_${ie}`,F&&"skeleton"),"data-testid":m,"data-tour":z,children:[e.jsxs("div",{className:r("date-period__wrapper",te&&`shape_${te}`,X&&`fill_${X}`,"cursor_type_pointer"),children:[se.length>0&&e.jsx(c.ChipsGroup,{className:"date-period__choice",direction:"horizontal",children:se.map(a=>e.jsx(c.Chips,{appearance:s.mergeAppearanceKeys(G,$),label:a.label,shape:H,isActive:ne(a),onClick:()=>ce(a)},a.value))}),e.jsx(n.DatePickerInput,{className:"date-period__datepicker",datePickerProps:{appearance:s.mergeAppearanceKeys(J,Y),dateFormat:"dd/MM/yyyy",monthsShown:K.monthsShown??L,popperPlacement:b,selectsRange:w,showWeekNumbers:N,isClearable:!1,onKeyDown:R},endValue:j,inputProps:{appearance:s.mergeAppearanceKeys(B,Q,"ghost"),className:`date-period__datepicker-input date-period__datepicker-input_size_${ie} `,fillHover:U,textSize:Z,placeholder:"Выбрать период"},value:q,onChange:O})]}),k&&e.jsx(p.SelectContainer,{appearance:s.mergeAppearanceKeys(ee,ae),className:"date-period__select",width:K.selectFirstWidth??g,minWidth:K.selectFirstWidth??g,options:k,placeholder:I,shape:re,value:f??null,isSearchable:K.selectFirstIsSearchable??C,onChange:E}),y&&e.jsx(p.SelectContainer,{appearance:s.mergeAppearanceKeys(ee,ae),className:"date-period__select",width:K.selectSecondWidth??x,minWidth:K.selectSecondWidth??x,options:y,placeholder:v,shape:re,value:D??null,isSearchable:K.selectSecondIsSearchable??M,onChange:W})]})},exports.datePeriodAppearance=o,exports.datePeriodConfig=h;
@@ -1 +1 @@
1
- import{jsxs as e,jsx as a}from"react/jsx-runtime";import{useCallback as r}from"react";import t from"clsx";import{DateTime as i}from"luxon";import{useAppearanceConfig as s,useDevicePropsGenerator as c}from"@itcase/ui-core/hooks";import{mergeAppearanceKeys as p}from"@itcase/ui-core/utils";import{a as o,C as d}from"../ChipsGroup_es_D3y5WSL6.js";import{D as n}from"../DatePicker_es_Bq_AFDLO.js";import"react-select";import"../primitives_es_D7LYOijE.js";import{S as l}from"../SelectContainer_es_B4IWlcz3.js";import"../Group_es_DIuSNHx3.js";import{DATE_PERIOD_INTERVALS as u}from"@itcase/common";import"date-fns/locale";import"react-datepicker";import"../Button_es_DvzjOfyQ.js";import"../Loader_es_CdWc_Prk.js";import"axios";import"../Input_es_DabuPYuA.js";import"../default_es_CsYL84NN.js";import"@rc-component/tooltip";import"react-inlinesvg";import"@itcase/ui-core/hoc";import"react-select/creatable";const h={surfacePrimary:{fill:"surfacePrimary",chipsAppearance:"surfacePrimary sizeM ghost rounded",datePickerAppearance:"surfacePrimary sizeM solid rounded",datePickerInputAppearance:"defaultPrimary sizeM solid rounded",selectAppearance:"defaultPrimary sizeM solid rounded"},surfaceSecondary:{fill:"surfaceSecondary",chipsAppearance:"surfacePrimary sizeM ghost rounded",datePickerAppearance:"surfacePrimary sizeM solid rounded",datePickerInputAppearance:"defaultPrimary sizeM solid rounded",selectAppearance:"defaultPrimary sizeM solid rounded"},sizeL:{size:"l",chipsAppearanceSize:"sizeXL",datePickerAppearanceSize:"sizeL",datePickerInputAppearanceSize:"sizeL",selectAppearanceSize:"sizeL"},sizeM:{size:"m",chipsAppearanceSize:"sizeL",datePickerAppearanceSize:"sizeM",datePickerInputAppearanceSize:"sizeM",selectAppearanceSize:"sizeM"},sizeS:{size:"s",chipsAppearanceSize:"sizeM",datePickerAppearanceSize:"sizeS",datePickerInputAppearanceSize:"sizeS",selectAppearanceSize:"sizeS"},circular:{shape:"circular"},rounded:{chipsShape:"rounded",selectShape:"rounded",shape:"rounded"},roundedXL:{chipsShape:"roundedXL",selectShape:"roundedXL",shape:"roundedXL"},roundedL:{chipsShape:"roundedL",selectShape:"roundedL",shape:"roundedL"},roundedM:{chipsShape:"roundedM",selectShape:"roundedM",shape:"roundedM"},roundedS:{chipsShape:"roundedS",selectShape:"roundedS",shape:"roundedS"}},S=Object.values(u);const m={appearance:h,setAppearance:e=>{m.appearance=e}};function z(h){const{appearance:z,className:P,dataTestId:_,dataTour:f,type:k="year",datePeriodIntervalsList:A,datePeriodSelectFirstOptions:y,datePeriodSelectFirstPlaceholder:I="Выбрать",datePeriodSelectFirstValue:v,datePeriodSelectSecondOptions:L,datePeriodSelectSecondPlaceholder:M="Выбрать",datePeriodSelectSecondValue:b,datePeriodValueEnd:D,datePeriodValueStart:w,monthsShown:C=2,popperPlacement:g,selectFirstIsSearchable:j=!0,selectFirstWidth:F="180px",selectSecondIsSearchable:x=!0,selectSecondWidth:N="180px",selectsRange:W=!0,showWeekNumbers:O=!1,isDisabled:V,isSkeleton:X,onChangeDatePeriod:$,onChangeDatePeriodFirstSelect:T,onChangeDatePeriodSecondSelect:G,onKeyDown:H}=h,J=s(z,m,V),K=c(h,J),{fillClass:R,chipsAppearance:B,chipsAppearanceSize:E,chipsShape:Q,datePickerAppearance:q,datePickerAppearanceSize:U,datePickerInputAppearance:Y,datePickerInputAppearanceSize:Z,datePickerInputFillHover:ee,datePickerInputTextSize:ae,selectAppearance:re,selectAppearanceSize:te,selectShape:ie,shapeClass:se,sizeClass:ce}=K,pe=function(e="year",a){if("period"===e)return[];const r=a??S;if("year"===e)return r;const t="month"===e?u.backMonth.value:u.backQuarter.value,i=S.findIndex(e=>e.value===t),s=new Set(S.slice(0,i+1).map(e=>e.value));return r.filter(e=>s.has(e.value))}(K.type??k,A),oe=r(e=>{const a=e.dateIntervalsList[0],r=e.dateIntervalsList[1];$?.(new Date(a),new Date(r))},[$]),de=r(e=>{const a=e.dateIntervalsList[0],r=e.dateIntervalsList[1];let t=null,s=null;return w&&(t=i.fromJSDate(new Date(w)).toISODate()),D&&(s=i.fromJSDate(new Date(D)).toISODate()),a===t&&r===s},[D,w]);return e("div",{className:t(P,"date-period",ce&&`date-period_size_${ce}`,X&&"skeleton"),"data-testid":_,"data-tour":f,children:[e("div",{className:t("date-period__wrapper",se&&`shape_${se}`,R&&`fill_${R}`,"cursor_type_pointer"),children:[pe.length>0&&a(o,{className:"date-period__choice",direction:"horizontal",children:pe.map(e=>a(d,{appearance:p(B,E),label:e.label,shape:Q,isActive:de(e),onClick:()=>oe(e)},e.value))}),a(n,{className:"date-period__datepicker",datePickerProps:{appearance:p(q,U),dateFormat:"dd/MM/yyyy",monthsShown:K.monthsShown??C,popperPlacement:g,selectsRange:W,showWeekNumbers:O,isClearable:!1,onKeyDown:H},endValue:D,inputProps:{appearance:p(Y,Z,"ghost"),className:`date-period__datepicker-input date-period__datepicker-input_size_${ce} `,fillHover:ee,textSize:ae,placeholder:"Выбрать период"},value:w,onChange:$})]}),y&&a(l,{appearance:p(re,te),className:"date-period__select",width:K.selectFirstWidth??F,minWidth:K.selectFirstWidth??F,options:y,placeholder:I,shape:ie,value:v??null,isSearchable:K.selectFirstIsSearchable??j,onChange:T}),L&&a(l,{appearance:p(re,te),className:"date-period__select",width:K.selectSecondWidth??N,minWidth:K.selectSecondWidth??N,options:L,placeholder:M,shape:ie,value:b??null,isSearchable:K.selectSecondIsSearchable??x,onChange:G})]})}export{z as DatePeriod,h as datePeriodAppearance,m as datePeriodConfig};
1
+ import{jsxs as e,jsx as a}from"react/jsx-runtime";import{useCallback as r}from"react";import t from"clsx";import{DateTime as i}from"luxon";import{useAppearanceConfig as s,useDevicePropsGenerator as c}from"@itcase/ui-core/hooks";import{mergeAppearanceKeys as o}from"@itcase/ui-core/utils";import{a as p,C as n}from"../ChipsGroup_es_D3y5WSL6.js";import{D as d}from"../DatePicker_es_Bq_AFDLO.js";import"react-select";import"../primitives_es_D7LYOijE.js";import{S as l}from"../SelectContainer_es_B4IWlcz3.js";import"../Group_es_DIuSNHx3.js";import{DATE_PERIOD_INTERVALS as u}from"@itcase/common";import"date-fns/locale";import"react-datepicker";import"../Button_es_DvzjOfyQ.js";import"../Loader_es_CdWc_Prk.js";import"axios";import"../Input_es_DabuPYuA.js";import"../default_es_CsYL84NN.js";import"@rc-component/tooltip";import"react-inlinesvg";import"@itcase/ui-core/hoc";import"react-select/creatable";const h={surfacePrimary:{fill:"surfacePrimary",chipsAppearance:"surfacePrimary sizeM ghost rounded",datePickerAppearance:"surfacePrimary sizeM solid rounded",datePickerInputAppearance:"defaultPrimary sizeM solid rounded",selectAppearance:"defaultPrimary sizeM solid rounded"},surfaceSecondary:{fill:"surfaceSecondary",chipsAppearance:"surfacePrimary sizeM ghost rounded",datePickerAppearance:"surfacePrimary sizeM solid rounded",datePickerInputAppearance:"defaultPrimary sizeM solid rounded",selectAppearance:"defaultPrimary sizeM solid rounded"},sizeL:{size:"l",chipsAppearanceSize:"sizeXL",datePickerAppearanceSize:"sizeL",datePickerInputAppearanceSize:"sizeL",selectAppearanceSize:"sizeL"},sizeM:{size:"m",chipsAppearanceSize:"sizeL",datePickerAppearanceSize:"sizeM",datePickerInputAppearanceSize:"sizeM",selectAppearanceSize:"sizeM"},sizeS:{size:"s",chipsAppearanceSize:"sizeM",datePickerAppearanceSize:"sizeS",datePickerInputAppearanceSize:"sizeS",selectAppearanceSize:"sizeS"},circular:{shape:"circular"},rounded:{chipsShape:"rounded",selectShape:"rounded",shape:"rounded"},roundedXL:{chipsShape:"roundedXL",selectShape:"roundedXL",shape:"roundedXL"},roundedL:{chipsShape:"roundedL",selectShape:"roundedL",shape:"roundedL"},roundedM:{chipsShape:"roundedM",selectShape:"roundedM",shape:"roundedM"},roundedS:{chipsShape:"roundedS",selectShape:"roundedS",shape:"roundedS"}},S=Object.values(u);function m(){const e=i.now().startOf("day");return{label:"Год",dateIntervalsList:[e.minus({year:1}).toISODate(),e.toISODate()],value:"backYear"}}const z={appearance:h,setAppearance:e=>{z.appearance=e}};function P(h){const{appearance:P,className:_,dataTestId:f,dataTour:k,type:A="year",datePeriodIntervalsList:y,datePeriodSelectFirstOptions:I,datePeriodSelectFirstPlaceholder:v="Выбрать",datePeriodSelectFirstValue:L,datePeriodSelectSecondOptions:M,datePeriodSelectSecondPlaceholder:b="Выбрать",datePeriodSelectSecondValue:D,datePeriodValueEnd:w,datePeriodValueStart:C,monthsShown:g=2,popperPlacement:j,selectFirstIsSearchable:F=!0,selectFirstWidth:x="180px",selectSecondIsSearchable:N=!0,selectSecondWidth:W="180px",selectsRange:O=!0,showWeekNumbers:V=!1,isDisabled:X,isSkeleton:$,onChangeDatePeriod:T,onChangeDatePeriodFirstSelect:G,onChangeDatePeriodSecondSelect:H,onKeyDown:J}=h,K=s(P,z,X),R=c(h,K),{fillClass:Y,chipsAppearance:B,chipsAppearanceSize:E,chipsShape:Q,datePickerAppearance:q,datePickerAppearanceSize:U,datePickerInputAppearance:Z,datePickerInputAppearanceSize:ee,datePickerInputFillHover:ae,datePickerInputTextSize:re,selectAppearance:te,selectAppearanceSize:ie,selectShape:se,shapeClass:ce,sizeClass:oe}=R,pe=function(e="year",a){if("period"===e)return[];const r=a??S;if("year"===e)return r.some(e=>"backYear"===e.value)?r:[...r,m()];const t="month"===e?u.backMonth.value:u.backQuarter.value,i=S.findIndex(e=>e.value===t),s=new Set(S.slice(0,i+1).map(e=>e.value));return r.filter(e=>s.has(e.value))}(R.type??A,y),ne=r(e=>{const a=e.dateIntervalsList[0],r=e.dateIntervalsList[1];T?.(new Date(a),new Date(r))},[T]),de=r(e=>{const a=e.dateIntervalsList[0],r=e.dateIntervalsList[1];let t=null,s=null;return C&&(t=i.fromJSDate(new Date(C)).toISODate()),w&&(s=i.fromJSDate(new Date(w)).toISODate()),a===t&&r===s},[w,C]);return e("div",{className:t(_,"date-period",oe&&`date-period_size_${oe}`,$&&"skeleton"),"data-testid":f,"data-tour":k,children:[e("div",{className:t("date-period__wrapper",ce&&`shape_${ce}`,Y&&`fill_${Y}`,"cursor_type_pointer"),children:[pe.length>0&&a(p,{className:"date-period__choice",direction:"horizontal",children:pe.map(e=>a(n,{appearance:o(B,E),label:e.label,shape:Q,isActive:de(e),onClick:()=>ne(e)},e.value))}),a(d,{className:"date-period__datepicker",datePickerProps:{appearance:o(q,U),dateFormat:"dd/MM/yyyy",monthsShown:R.monthsShown??g,popperPlacement:j,selectsRange:O,showWeekNumbers:V,isClearable:!1,onKeyDown:J},endValue:w,inputProps:{appearance:o(Z,ee,"ghost"),className:`date-period__datepicker-input date-period__datepicker-input_size_${oe} `,fillHover:ae,textSize:re,placeholder:"Выбрать период"},value:C,onChange:T})]}),I&&a(l,{appearance:o(te,ie),className:"date-period__select",width:R.selectFirstWidth??x,minWidth:R.selectFirstWidth??x,options:I,placeholder:v,shape:se,value:L??null,isSearchable:R.selectFirstIsSearchable??F,onChange:G}),M&&a(l,{appearance:o(te,ie),className:"date-period__select",width:R.selectSecondWidth??W,minWidth:R.selectSecondWidth??W,options:M,placeholder:b,shape:se,value:D??null,isSearchable:R.selectSecondIsSearchable??N,onChange:H})]})}export{P as DatePeriod,h as datePeriodAppearance,z as datePeriodConfig};
@@ -34,6 +34,7 @@ type DatePeriodAppearanceProps<Option> = {
34
34
  size?: SizeProps;
35
35
  type?: DatePeriodType;
36
36
  typeMobile?: DatePeriodType;
37
+ typeTablet?: DatePeriodType;
37
38
  };
38
39
  type DatePeriodProps<Option = SelectOption> = DatePeriodAppearanceProps<Option> & StyleAttributes & {
39
40
  appearance?: CompositeAppearanceKeys;
@@ -1,12 +1,25 @@
1
1
  import { DATE_PERIOD_INTERVALS } from '@itcase/common';
2
+ import { DateTime } from 'luxon';
2
3
  const DATE_PERIOD_INTERVALS_LIST = Object.values(DATE_PERIOD_INTERVALS);
4
+ function getDatePeriodYearItem() {
5
+ const todayDT = DateTime.now().startOf('day');
6
+ return {
7
+ label: 'Год',
8
+ dateIntervalsList: [
9
+ todayDT.minus({ year: 1 }).toISODate(),
10
+ todayDT.toISODate(),
11
+ ],
12
+ value: 'backYear',
13
+ };
14
+ }
3
15
  function getDatePeriodIntervalsList(type = 'year', datePeriodIntervalsList) {
4
16
  if (type === 'period') {
5
17
  return [];
6
18
  }
7
19
  const sourceList = datePeriodIntervalsList ?? DATE_PERIOD_INTERVALS_LIST;
8
20
  if (type === 'year') {
9
- return sourceList;
21
+ const hasYearItem = sourceList.some((item) => item.value === 'backYear');
22
+ return hasYearItem ? sourceList : [...sourceList, getDatePeriodYearItem()];
10
23
  }
11
24
  const lastValue = type === 'month'
12
25
  ? DATE_PERIOD_INTERVALS.backMonth.value
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itcase/ui-web",
3
- "version": "1.10.27",
3
+ "version": "1.10.28",
4
4
  "description": "UI components",
5
5
  "keywords": "",
6
6
  "license": "MIT",
@@ -116,5 +116,5 @@
116
116
  "storybook": "^10.4.2",
117
117
  "typescript": "^6.0.3"
118
118
  },
119
- "gitHead": "3d4d84c876ebc1173a6696cda865324de82ed77b"
119
+ "gitHead": "ae63d242c0352a89179cc482c692ea4c938566d0"
120
120
  }