@scbt-ecom/ui 0.121.0 → 0.122.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.
@@ -1,2 +1,2 @@
1
- import{jsxs as C,jsx as d}from"react/jsx-runtime";import{cn as x}from"../../utils/cn.js";import"react";import{Button as b}from"../button/Button.js";import{Icon as z}from"../icon/Icon.js";const I=({page:o=1,between:i=3,totalPages:n,changePage:f,next:u=!0,ellipsis:m=0,classes:r})=>{i=i<1?1:i,o=Math.min(Math.max(o,1),n),m=Math.min(Math.max(m,0),i-2);const k=Array.from({length:n},(t,N)=>N),h=i*2+1;let y;return n<h?y=k:o-1<=i?y=k.slice(0,h-(m>0?m+1:0)):o+i>=n?y=k.slice(n-h+(m>0?m+1:0),n):y=k.slice(o-1-(i-(m>0?m+1:0)),o+(i-(m>0?m+1:0))),C("div",{className:x("flex",r==null?void 0:r.root),children:[u&&d(b,{size:"sm",intent:"ghost",className:x("mob-body-regular-l w-[40px] p-0 text-color-dark disabled:text-icon-disabled",r==null?void 0:r.button),disabled:o<=1,onClick:()=>o>1&&f(o-2),children:d(z,{name:"arrows/arrowRight",className:"rotate-180"})}),n>h&&m>0&&k.slice(0,o-1<=i?0:m).map(t=>d(b,{size:"sm",intent:"ghost",className:x("mob-body-regular-l w-[40px] p-0 text-color-dark",r==null?void 0:r.button),onClick:()=>t!==o-1&&f(t),children:t+1},t)),n>h&&m>0&&o-1>i&&d(b,{size:"sm",intent:"ghost",className:x("mob-body-regular-l pointer-events-none w-[40px] p-0 text-color-dark",r==null?void 0:r.ellipsis),children:"..."}),y.map(t=>{const N=t===o-1;return d(b,{size:"sm",className:x("mob-body-regular-l w-[40px] p-0 text-color-dark",{[`text-color-primary-default ${r==null?void 0:r.active}`]:N},r==null?void 0:r.button),intent:N?"secondary":"ghost",onClick:()=>!N&&f(t),children:t+1},t)}),n>h&&m>0&&o<n-i&&d(b,{size:"sm",intent:"ghost",className:x("mob-body-regular-l pointer-events-none w-[40px] p-0 text-color-dark",r==null?void 0:r.ellipsis),children:"..."}),n>h&&m>0&&k.slice(o>=n-i?n:n-m,n).map(t=>d(b,{size:"sm",className:x("mob-body-regular-l w-[40px] p-0 text-color-dark",r==null?void 0:r.button),intent:"ghost",onClick:()=>t!==o-1&&f(t),children:t+1},t)),u&&d(b,{size:"sm",intent:"ghost",className:x("mob-body-regular-l w-[40px] p-0 text-color-dark disabled:text-icon-disabled",r==null?void 0:r.button),disabled:o>=n,onClick:()=>o<n&&f(o),children:d(z,{name:"arrows/arrowRight"})})]})};export{I as Pagination};
1
+ import{jsxs as M,jsx as d}from"react/jsx-runtime";import{cn as x}from"../../utils/cn.js";import"react";import{Button as b}from"../button/Button.js";import{Icon as z}from"../icon/Icon.js";const _=({page:o=1,between:i=3,totalPages:n,changePage:f,next:u=!0,ellipsis:m=0,classes:r,...C})=>{i=i<1?1:i,o=Math.min(Math.max(o,1),n),m=Math.min(Math.max(m,0),i-2);const k=Array.from({length:n},(t,N)=>N),h=i*2+1;let y;return n<h?y=k:o-1<=i?y=k.slice(0,h-(m>0?m+1:0)):o+i>=n?y=k.slice(n-h+(m>0?m+1:0),n):y=k.slice(o-1-(i-(m>0?m+1:0)),o+(i-(m>0?m+1:0))),M("div",{...C,className:x("flex",r==null?void 0:r.root),children:[u&&d(b,{size:"sm",intent:"ghost",className:x("mob-body-regular-l w-[40px] p-0 text-color-dark disabled:text-icon-disabled",r==null?void 0:r.button),disabled:o<=1,onClick:()=>o>1&&f(o-2),children:d(z,{name:"arrows/arrowRight",className:"rotate-180"})}),n>h&&m>0&&k.slice(0,o-1<=i?0:m).map(t=>d(b,{size:"sm",intent:"ghost",className:x("mob-body-regular-l w-[40px] p-0 text-color-dark",r==null?void 0:r.button),onClick:()=>t!==o-1&&f(t),children:t+1},t)),n>h&&m>0&&o-1>i&&d(b,{size:"sm",intent:"ghost",className:x("mob-body-regular-l pointer-events-none w-[40px] p-0 text-color-dark",r==null?void 0:r.ellipsis),children:"..."}),y.map(t=>{const N=t===o-1;return d(b,{size:"sm",className:x("mob-body-regular-l w-[40px] p-0 text-color-dark",{[`text-color-primary-default ${r==null?void 0:r.active}`]:N},r==null?void 0:r.button),intent:N?"secondary":"ghost",onClick:()=>!N&&f(t),children:t+1},t)}),n>h&&m>0&&o<n-i&&d(b,{size:"sm",intent:"ghost",className:x("mob-body-regular-l pointer-events-none w-[40px] p-0 text-color-dark",r==null?void 0:r.ellipsis),children:"..."}),n>h&&m>0&&k.slice(o>=n-i?n:n-m,n).map(t=>d(b,{size:"sm",className:x("mob-body-regular-l w-[40px] p-0 text-color-dark",r==null?void 0:r.button),intent:"ghost",onClick:()=>t!==o-1&&f(t),children:t+1},t)),u&&d(b,{size:"sm",intent:"ghost",className:x("mob-body-regular-l w-[40px] p-0 text-color-dark disabled:text-icon-disabled",r==null?void 0:r.button),disabled:o>=n,onClick:()=>o<n&&f(o),children:d(z,{name:"arrows/arrowRight"})})]})};export{_ as Pagination};
2
2
  //# sourceMappingURL=Pagination.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../../../lib/shared/ui/pagination/Pagination.tsx"],"sourcesContent":["import { cn } from '../../utils'\nimport { Button } from '../button'\nimport { Icon } from '../icon'\n\ntype PaginationClasses = {\n root?: string\n button?: string\n ellipsis?: string\n active?: string\n}\n\nexport type PaginationProps = {\n /**\n * активная страница\n */\n page?: number\n /**\n * количество элементов после сужения страниц пример 1 - (1...6 7 8...n)\n * ^ ^\n */\n between?: number\n /**\n * количество элементов на странице\n */\n totalPages: number\n /**\n * функция для переключения страницы\n */\n changePage: (page: number) => void\n /**\n * включить переход на следующую/предыдущую страницу\n */\n next?: boolean\n /**\n * количество страниц для сужения\n */\n ellipsis?: number\n /**\n * дополнительные стили\n */\n classes?: PaginationClasses\n}\n\nexport const Pagination = ({\n page = 1,\n between = 3,\n totalPages,\n changePage,\n next = true,\n ellipsis = 0,\n classes\n}: PaginationProps) => {\n // гарантирует что between никогда не будет меньше 1\n between = between < 1 ? 1 : between\n // ограничиваем текущую страницу от 1 до totalPages\n page = Math.min(Math.max(page, 1), totalPages)\n // ограничиваем количество сужаемых элементов от 0 до between - 2\n ellipsis = Math.min(Math.max(ellipsis, 0), between - 2)\n\n const positions = Array.from({ length: totalPages }, (_, index) => index)\n\n // количество отображаемых страниц (включая активную)\n const visiblePages = between * 2 + 1\n\n let range\n\n if (totalPages < visiblePages) {\n // если общее количество страниц меньше, чем нужно отобразить, то отображаем все страницы\n range = positions\n } else if (page - 1 <= between) {\n // если текущая страница близка к началу, то отображаем страницы с начала\n range = positions.slice(0, visiblePages - (ellipsis > 0 ? ellipsis + 1 : 0))\n } else if (page + between >= totalPages) {\n // если текущая страница близка к концу, то отображаем страницы с конца\n range = positions.slice(totalPages - visiblePages + (ellipsis > 0 ? ellipsis + 1 : 0), totalPages)\n } else {\n // иначе показываем страницы обрезая их слева и справа\n range = positions.slice(\n page - 1 - (between - (ellipsis > 0 ? ellipsis + 1 : 0)),\n page + (between - (ellipsis > 0 ? ellipsis + 1 : 0))\n )\n }\n\n return (\n <div className={cn('flex', classes?.root)}>\n {next && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark disabled:text-icon-disabled', classes?.button)}\n disabled={page <= 1}\n onClick={() => page > 1 && changePage(page - 2)}\n >\n <Icon name='arrows/arrowRight' className='rotate-180' />\n </Button>\n )}\n {totalPages > visiblePages &&\n ellipsis > 0 &&\n positions.slice(0, page - 1 <= between ? 0 : ellipsis).map((value) => (\n <Button\n key={value}\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark', classes?.button)}\n onClick={() => value !== page - 1 && changePage(value)}\n >\n {value + 1}\n </Button>\n ))}\n {totalPages > visiblePages && ellipsis > 0 && page - 1 > between && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l pointer-events-none w-[40px] p-0 text-color-dark', classes?.ellipsis)}\n >\n ...\n </Button>\n )}\n {range.map((value) => {\n const active = value === page - 1\n\n return (\n <Button\n key={value}\n size='sm'\n className={cn(\n 'mob-body-regular-l w-[40px] p-0 text-color-dark',\n {\n [`text-color-primary-default ${classes?.active}`]: active\n },\n classes?.button\n )}\n intent={active ? 'secondary' : 'ghost'}\n onClick={() => !active && changePage(value)}\n >\n {value + 1}\n </Button>\n )\n })}\n {totalPages > visiblePages && ellipsis > 0 && page < totalPages - between && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l pointer-events-none w-[40px] p-0 text-color-dark', classes?.ellipsis)}\n >\n ...\n </Button>\n )}\n {totalPages > visiblePages &&\n ellipsis > 0 &&\n positions.slice(page >= totalPages - between ? totalPages : totalPages - ellipsis, totalPages).map((value) => (\n <Button\n key={value}\n size='sm'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark', classes?.button)}\n intent='ghost'\n onClick={() => value !== page - 1 && changePage(value)}\n >\n {value + 1}\n </Button>\n ))}\n {next && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark disabled:text-icon-disabled', classes?.button)}\n disabled={page >= totalPages}\n onClick={() => page < totalPages && changePage(page)}\n >\n <Icon name='arrows/arrowRight' />\n </Button>\n )}\n </div>\n )\n}\n"],"names":["Pagination","page","between","totalPages","changePage","next","ellipsis","classes","positions","_","index","visiblePages","range","cn","jsx","Button","Icon","value","active"],"mappings":"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"}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../../../lib/shared/ui/pagination/Pagination.tsx"],"sourcesContent":["import { type HTMLAttributes } from 'react'\nimport { cn } from '../../utils'\nimport { Button } from '../button'\nimport { Icon } from '../icon'\n\ntype PaginationClasses = {\n root?: string\n button?: string\n ellipsis?: string\n active?: string\n}\n\nexport type PaginationProps = HTMLAttributes<HTMLDivElement> & {\n /**\n * активная страница\n */\n page?: number\n /**\n * количество элементов после сужения страниц пример 1 - (1...6 7 8...n)\n * ^ ^\n */\n between?: number\n /**\n * количество элементов на странице\n */\n totalPages: number\n /**\n * функция для переключения страницы\n */\n changePage: (page: number) => void\n /**\n * включить переход на следующую/предыдущую страницу\n */\n next?: boolean\n /**\n * количество страниц для сужения\n */\n ellipsis?: number\n /**\n * дополнительные стили\n */\n classes?: PaginationClasses\n}\n\nexport const Pagination = ({\n page = 1,\n between = 3,\n totalPages,\n changePage,\n next = true,\n ellipsis = 0,\n classes,\n ...props\n}: PaginationProps) => {\n // гарантирует что between никогда не будет меньше 1\n between = between < 1 ? 1 : between\n // ограничиваем текущую страницу от 1 до totalPages\n page = Math.min(Math.max(page, 1), totalPages)\n // ограничиваем количество сужаемых элементов от 0 до between - 2\n ellipsis = Math.min(Math.max(ellipsis, 0), between - 2)\n\n const positions = Array.from({ length: totalPages }, (_, index) => index)\n\n // количество отображаемых страниц (включая активную)\n const visiblePages = between * 2 + 1\n\n let range\n\n if (totalPages < visiblePages) {\n // если общее количество страниц меньше, чем нужно отобразить, то отображаем все страницы\n range = positions\n } else if (page - 1 <= between) {\n // если текущая страница близка к началу, то отображаем страницы с начала\n range = positions.slice(0, visiblePages - (ellipsis > 0 ? ellipsis + 1 : 0))\n } else if (page + between >= totalPages) {\n // если текущая страница близка к концу, то отображаем страницы с конца\n range = positions.slice(totalPages - visiblePages + (ellipsis > 0 ? ellipsis + 1 : 0), totalPages)\n } else {\n // иначе показываем страницы обрезая их слева и справа\n range = positions.slice(\n page - 1 - (between - (ellipsis > 0 ? ellipsis + 1 : 0)),\n page + (between - (ellipsis > 0 ? ellipsis + 1 : 0))\n )\n }\n\n return (\n <div {...props} className={cn('flex', classes?.root)}>\n {next && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark disabled:text-icon-disabled', classes?.button)}\n disabled={page <= 1}\n onClick={() => page > 1 && changePage(page - 2)}\n >\n <Icon name='arrows/arrowRight' className='rotate-180' />\n </Button>\n )}\n {totalPages > visiblePages &&\n ellipsis > 0 &&\n positions.slice(0, page - 1 <= between ? 0 : ellipsis).map((value) => (\n <Button\n key={value}\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark', classes?.button)}\n onClick={() => value !== page - 1 && changePage(value)}\n >\n {value + 1}\n </Button>\n ))}\n {totalPages > visiblePages && ellipsis > 0 && page - 1 > between && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l pointer-events-none w-[40px] p-0 text-color-dark', classes?.ellipsis)}\n >\n ...\n </Button>\n )}\n {range.map((value) => {\n const active = value === page - 1\n\n return (\n <Button\n key={value}\n size='sm'\n className={cn(\n 'mob-body-regular-l w-[40px] p-0 text-color-dark',\n {\n [`text-color-primary-default ${classes?.active}`]: active\n },\n classes?.button\n )}\n intent={active ? 'secondary' : 'ghost'}\n onClick={() => !active && changePage(value)}\n >\n {value + 1}\n </Button>\n )\n })}\n {totalPages > visiblePages && ellipsis > 0 && page < totalPages - between && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l pointer-events-none w-[40px] p-0 text-color-dark', classes?.ellipsis)}\n >\n ...\n </Button>\n )}\n {totalPages > visiblePages &&\n ellipsis > 0 &&\n positions.slice(page >= totalPages - between ? totalPages : totalPages - ellipsis, totalPages).map((value) => (\n <Button\n key={value}\n size='sm'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark', classes?.button)}\n intent='ghost'\n onClick={() => value !== page - 1 && changePage(value)}\n >\n {value + 1}\n </Button>\n ))}\n {next && (\n <Button\n size='sm'\n intent='ghost'\n className={cn('mob-body-regular-l w-[40px] p-0 text-color-dark disabled:text-icon-disabled', classes?.button)}\n disabled={page >= totalPages}\n onClick={() => page < totalPages && changePage(page)}\n >\n <Icon name='arrows/arrowRight' />\n </Button>\n )}\n </div>\n )\n}\n"],"names":["Pagination","page","between","totalPages","changePage","next","ellipsis","classes","props","positions","_","index","visiblePages","range","jsxs","cn","jsx","Button","Icon","value","active"],"mappings":"2LA4CO,MAAMA,EAAa,CAAC,CACzB,KAAAC,EAAO,EACP,QAAAC,EAAU,EACV,WAAAC,EACA,WAAAC,EACA,KAAAC,EAAO,GACP,SAAAC,EAAW,EACX,QAAAC,EACA,GAAGC,CACL,IAAuB,CAErBN,EAAUA,EAAU,EAAI,EAAIA,EAE5BD,EAAO,KAAK,IAAI,KAAK,IAAIA,EAAM,CAAC,EAAGE,CAAU,EAE7CG,EAAW,KAAK,IAAI,KAAK,IAAIA,EAAU,CAAC,EAAGJ,EAAU,CAAC,EAEtD,MAAMO,EAAY,MAAM,KAAK,CAAE,OAAQN,GAAc,CAACO,EAAGC,IAAUA,CAAK,EAGlEC,EAAeV,EAAU,EAAI,EAEnC,IAAIW,EAEJ,OAAIV,EAAaS,EAEfC,EAAQJ,EACCR,EAAO,GAAKC,EAErBW,EAAQJ,EAAU,MAAM,EAAGG,GAAgBN,EAAW,EAAIA,EAAW,EAAI,EAAE,EAClEL,EAAOC,GAAWC,EAE3BU,EAAQJ,EAAU,MAAMN,EAAaS,GAAgBN,EAAW,EAAIA,EAAW,EAAI,GAAIH,CAAU,EAGjGU,EAAQJ,EAAU,MAChBR,EAAO,GAAKC,GAAWI,EAAW,EAAIA,EAAW,EAAI,IACrDL,GAAQC,GAAWI,EAAW,EAAIA,EAAW,EAAI,GAAA,EAKnDQ,EAAC,OAAK,GAAGN,EAAO,UAAWO,EAAG,OAAQR,GAAA,YAAAA,EAAS,IAAI,EAChD,SAAA,CAAAF,GACCW,EAACC,EAAA,CACC,KAAK,KACL,OAAO,QACP,UAAWF,EAAG,8EAA+ER,GAAA,YAAAA,EAAS,MAAM,EAC5G,SAAUN,GAAQ,EAClB,QAAS,IAAMA,EAAO,GAAKG,EAAWH,EAAO,CAAC,EAE9C,SAAAe,EAACE,EAAA,CAAK,KAAK,oBAAoB,UAAU,YAAA,CAAa,CAAA,CAAA,EAGzDf,EAAaS,GACZN,EAAW,GACXG,EAAU,MAAM,EAAGR,EAAO,GAAKC,EAAU,EAAII,CAAQ,EAAE,IAAKa,GAC1DH,EAACC,EAAA,CAEC,KAAK,KACL,OAAO,QACP,UAAWF,EAAG,kDAAmDR,GAAA,YAAAA,EAAS,MAAM,EAChF,QAAS,IAAMY,IAAUlB,EAAO,GAAKG,EAAWe,CAAK,EAEpD,SAAAA,EAAQ,CAAA,EANJA,CAAA,CAQR,EACFhB,EAAaS,GAAgBN,EAAW,GAAKL,EAAO,EAAIC,GACvDc,EAACC,EAAA,CACC,KAAK,KACL,OAAO,QACP,UAAWF,EAAG,sEAAuER,GAAA,YAAAA,EAAS,QAAQ,EACvG,SAAA,KAAA,CAAA,EAIFM,EAAM,IAAKM,GAAU,CACpB,MAAMC,EAASD,IAAUlB,EAAO,EAEhC,OACEe,EAACC,EAAA,CAEC,KAAK,KACL,UAAWF,EACT,kDACA,CACE,CAAC,8BAA8BR,GAAA,YAAAA,EAAS,MAAM,EAAE,EAAGa,CAAA,EAErDb,GAAA,YAAAA,EAAS,MAAA,EAEX,OAAQa,EAAS,YAAc,QAC/B,QAAS,IAAM,CAACA,GAAUhB,EAAWe,CAAK,EAEzC,SAAAA,EAAQ,CAAA,EAZJA,CAAA,CAeX,CAAC,EACAhB,EAAaS,GAAgBN,EAAW,GAAKL,EAAOE,EAAaD,GAChEc,EAACC,EAAA,CACC,KAAK,KACL,OAAO,QACP,UAAWF,EAAG,sEAAuER,GAAA,YAAAA,EAAS,QAAQ,EACvG,SAAA,KAAA,CAAA,EAIFJ,EAAaS,GACZN,EAAW,GACXG,EAAU,MAAMR,GAAQE,EAAaD,EAAUC,EAAaA,EAAaG,EAAUH,CAAU,EAAE,IAAKgB,GAClGH,EAACC,EAAA,CAEC,KAAK,KACL,UAAWF,EAAG,kDAAmDR,GAAA,YAAAA,EAAS,MAAM,EAChF,OAAO,QACP,QAAS,IAAMY,IAAUlB,EAAO,GAAKG,EAAWe,CAAK,EAEpD,SAAAA,EAAQ,CAAA,EANJA,CAAA,CAQR,EACFd,GACCW,EAACC,EAAA,CACC,KAAK,KACL,OAAO,QACP,UAAWF,EAAG,8EAA+ER,GAAA,YAAAA,EAAS,MAAM,EAC5G,SAAUN,GAAQE,EAClB,QAAS,IAAMF,EAAOE,GAAcC,EAAWH,CAAI,EAEnD,SAAAe,EAACE,EAAA,CAAK,KAAK,mBAAA,CAAoB,CAAA,CAAA,CACjC,EAEJ,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsx as o,jsxs as r}from"react/jsx-runtime";import{TableUtils as b}from"../../shared/ui/table/model/TableUtils.js";import{cn as h}from"../../shared/utils/cn.js";import"react";import{getHeaderAccessors as u,isHorizontalTable as T}from"./model/utils.js";import{ResponsiveContainer as N}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";import"../../shared/ui/button/Button.js";import"../../shared/ui/buttonIcon/ButtonIcon.js";import"../../shared/ui/calendar/Calendar.js";import"../../shared/ui/calendar/model/utils.js";import"../../shared/ui/accordion/Accordion.js";import"react-dom";import"../../shared/ui/modal/ui/IframeModalContent.js";import"../../../node_modules/react-hot-toast/dist/index.js";import"../../shared/ui/table/ui/primitives/Primitives.js";import{DataTable as v}from"../../shared/ui/table/Table.js";import"../../shared/ui/carousel/ui/CarouselContent.js";import"../../shared/ui/slot/Slot.js";import"../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../../src/configs/api.js";import"../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const io=i=>{const{title:m,subtitle:l,helperText:t,pagination:s=!1,columns:a,data:e,horizontal:p,...n}=i,{accessors:c,sortingColumns:d,sortingFn:f}=u(a),g=b.getColumns(e[0],{headerAccessor:c,enableSorting:d,sortingFn:f}),x=T(p);return o("section",{className:"w-full",children:r(N,{className:h("flex flex-col gap-12 mobile:max-w-[360px]"),children:[r("div",{className:"flex flex-col gap-[16px]",children:[o("div",{className:"mob-headline-bold-s desktop:desk-headline-bold-m",dangerouslySetInnerHTML:{__html:m}}),o("div",{className:"desktop:desk-body-regular-l",dangerouslySetInnerHTML:{__html:l}})]}),r("div",{className:"flex flex-col gap-4",children:[o(v,{...n,horizontal:x,data:e,columns:g,mode:"odd",pagination:s}),t&&o("div",{className:"desk-body-regular-m text-color-tetriary",dangerouslySetInnerHTML:{__html:t}})]})]})})};export{io as InfoTable,io as default};
1
+ import{jsx as r,jsxs as i}from"react/jsx-runtime";import{TableUtils as u}from"../../shared/ui/table/model/TableUtils.js";import{cn as t}from"../../shared/utils/cn.js";import"react";import{getHeaderAccessors as T,isHorizontalTable as N}from"./model/utils.js";import{ResponsiveContainer as v}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";import"../../shared/ui/button/Button.js";import"../../shared/ui/buttonIcon/ButtonIcon.js";import"../../shared/ui/calendar/Calendar.js";import"../../shared/ui/calendar/model/utils.js";import"../../shared/ui/accordion/Accordion.js";import"react-dom";import"../../shared/ui/modal/ui/IframeModalContent.js";import"../../../node_modules/react-hot-toast/dist/index.js";import"../../shared/ui/table/ui/primitives/Primitives.js";import{DataTable as y}from"../../shared/ui/table/Table.js";import"../../shared/ui/carousel/ui/CarouselContent.js";import"../../shared/ui/slot/Slot.js";import"../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../../src/configs/api.js";import"../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const mo=l=>{const{title:p,subtitle:n,helperText:e,pagination:a=!1,columns:d,data:m,horizontal:s,classes:o,...c}=l,{accessors:b,sortingColumns:f,sortingFn:x}=T(d),g=u.getColumns(m[0],{headerAccessor:b,enableSorting:f,sortingFn:x}),h=N(s);return r("section",{className:t("w-full",o==null?void 0:o.root),children:i(v,{className:t("flex flex-col gap-12 mobile:max-w-[360px]",o==null?void 0:o.container),children:[i("div",{className:t("flex flex-col gap-[16px]",o==null?void 0:o.textContainer),children:[r("div",{className:t("mob-headline-bold-s desktop:desk-headline-bold-m",o==null?void 0:o.title),dangerouslySetInnerHTML:{__html:p}}),r("div",{className:t("desktop:desk-body-regular-l",o==null?void 0:o.subtitle),dangerouslySetInnerHTML:{__html:n}})]}),i("div",{className:t("flex flex-col gap-4",o==null?void 0:o.tableContainer),children:[r(y,{...c,horizontal:h,data:m,columns:g,classes:o==null?void 0:o.baseTableClasses,mode:"odd",pagination:a}),e&&r("div",{className:t("desk-body-regular-m text-color-tetriary",o==null?void 0:o.helperText),dangerouslySetInnerHTML:{__html:e}})]})]})})};export{mo as InfoTable,mo as default};
2
2
  //# sourceMappingURL=InfoTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InfoTable.js","sources":["../../../../lib/widgets/table/InfoTable.tsx"],"sourcesContent":["import { TableUtils } from '../../shared/ui/table/model'\nimport { cn } from '../../shared/utils'\nimport { getHeaderAccessors, isHorizontalTable, type TableProps } from './model'\nimport { DataTable, ResponsiveContainer } from '$/shared/ui'\n\nexport const InfoTable = <Key extends string, TData extends Record<Key, unknown>>(props: TableProps<Key, TData>) => {\n const { title, subtitle, helperText, pagination = false, columns, data, horizontal, ...restTableProps } = props\n\n const { accessors, sortingColumns, sortingFn } = getHeaderAccessors(columns)\n\n const cols = TableUtils.getColumns(data[0], {\n headerAccessor: accessors,\n enableSorting: sortingColumns,\n sortingFn\n })\n\n const isHorizontal = isHorizontalTable(horizontal)\n\n return (\n <section className='w-full'>\n <ResponsiveContainer className={cn('flex flex-col gap-12 mobile:max-w-[360px]')}>\n <div className='flex flex-col gap-[16px]'>\n <div className='mob-headline-bold-s desktop:desk-headline-bold-m' dangerouslySetInnerHTML={{ __html: title }} />\n <div className='desktop:desk-body-regular-l' dangerouslySetInnerHTML={{ __html: subtitle }} />\n </div>\n\n <div className='flex flex-col gap-4'>\n <DataTable\n {...restTableProps}\n horizontal={isHorizontal}\n data={data}\n columns={cols}\n mode='odd'\n pagination={pagination}\n />\n {helperText && (\n <div className='desk-body-regular-m text-color-tetriary' dangerouslySetInnerHTML={{ __html: helperText }} />\n )}\n </div>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default InfoTable\n"],"names":["InfoTable","props","title","subtitle","helperText","pagination","columns","data","horizontal","restTableProps","accessors","sortingColumns","sortingFn","getHeaderAccessors","cols","TableUtils","isHorizontal","isHorizontalTable","jsx","ResponsiveContainer","cn","jsxs","DataTable"],"mappings":"4oEAKO,MAAMA,GAAqEC,GAAkC,CAClH,KAAM,CAAE,MAAAC,EAAO,SAAAC,EAAU,WAAAC,EAAY,WAAAC,EAAa,GAAO,QAAAC,EAAS,KAAAC,EAAM,WAAAC,EAAY,GAAGC,CAAA,EAAmBR,EAEpG,CAAE,UAAAS,EAAW,eAAAC,EAAgB,UAAAC,CAAA,EAAcC,EAAmBP,CAAO,EAErEQ,EAAOC,EAAW,WAAWR,EAAK,CAAC,EAAG,CAC1C,eAAgBG,EAChB,cAAeC,EACf,UAAAC,CAAA,CACD,EAEKI,EAAeC,EAAkBT,CAAU,EAEjD,OACEU,EAAC,WAAQ,UAAU,SACjB,WAACC,EAAA,CAAoB,UAAWC,EAAG,2CAA2C,EAC5E,SAAA,CAAAC,EAAC,MAAA,CAAI,UAAU,2BACb,SAAA,CAAAH,EAAC,OAAI,UAAU,mDAAmD,wBAAyB,CAAE,OAAQhB,GAAS,EAC9GgB,EAAC,OAAI,UAAU,8BAA8B,wBAAyB,CAAE,OAAQf,EAAS,CAAG,CAAA,EAC9F,EAEAkB,EAAC,MAAA,CAAI,UAAU,sBACb,SAAA,CAAAH,EAACI,EAAA,CACE,GAAGb,EACJ,WAAYO,EACZ,KAAAT,EACA,QAASO,EACT,KAAK,MACL,WAAAT,CAAA,CAAA,EAEDD,KACE,MAAA,CAAI,UAAU,0CAA0C,wBAAyB,CAAE,OAAQA,EAAW,CAAG,CAAA,CAAA,CAE9G,CAAA,CAAA,CACF,CAAA,CACF,CAEJ"}
1
+ {"version":3,"file":"InfoTable.js","sources":["../../../../lib/widgets/table/InfoTable.tsx"],"sourcesContent":["import { TableUtils } from '../../shared/ui/table/model'\nimport { cn } from '../../shared/utils'\nimport { getHeaderAccessors, isHorizontalTable, type TableProps } from './model'\nimport { DataTable, ResponsiveContainer } from '$/shared/ui'\n\nexport const InfoTable = <Key extends string, TData extends Record<Key, unknown>>(props: TableProps<Key, TData>) => {\n const { title, subtitle, helperText, pagination = false, columns, data, horizontal, classes, ...restTableProps } = props\n\n const { accessors, sortingColumns, sortingFn } = getHeaderAccessors(columns)\n\n const cols = TableUtils.getColumns(data[0], {\n headerAccessor: accessors,\n enableSorting: sortingColumns,\n sortingFn\n })\n\n const isHorizontal = isHorizontalTable(horizontal)\n\n return (\n <section className={cn('w-full', classes?.root)}>\n <ResponsiveContainer className={cn('flex flex-col gap-12 mobile:max-w-[360px]', classes?.container)}>\n <div className={cn('flex flex-col gap-[16px]', classes?.textContainer)}>\n <div\n className={cn('mob-headline-bold-s desktop:desk-headline-bold-m', classes?.title)}\n dangerouslySetInnerHTML={{ __html: title }}\n />\n <div className={cn('desktop:desk-body-regular-l', classes?.subtitle)} dangerouslySetInnerHTML={{ __html: subtitle }} />\n </div>\n\n <div className={cn('flex flex-col gap-4', classes?.tableContainer)}>\n <DataTable\n {...restTableProps}\n horizontal={isHorizontal}\n data={data}\n columns={cols}\n classes={classes?.baseTableClasses}\n mode='odd'\n pagination={pagination}\n />\n {helperText && (\n <div\n className={cn('desk-body-regular-m text-color-tetriary', classes?.helperText)}\n dangerouslySetInnerHTML={{ __html: helperText }}\n />\n )}\n </div>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default InfoTable\n"],"names":["InfoTable","props","title","subtitle","helperText","pagination","columns","data","horizontal","classes","restTableProps","accessors","sortingColumns","sortingFn","getHeaderAccessors","cols","TableUtils","isHorizontal","isHorizontalTable","jsx","cn","jsxs","ResponsiveContainer","DataTable"],"mappings":"4oEAKO,MAAMA,GAAqEC,GAAkC,CAClH,KAAM,CAAE,MAAAC,EAAO,SAAAC,EAAU,WAAAC,EAAY,WAAAC,EAAa,GAAO,QAAAC,EAAS,KAAAC,EAAM,WAAAC,EAAY,QAAAC,EAAS,GAAGC,CAAA,EAAmBT,EAE7G,CAAE,UAAAU,EAAW,eAAAC,EAAgB,UAAAC,CAAA,EAAcC,EAAmBR,CAAO,EAErES,EAAOC,EAAW,WAAWT,EAAK,CAAC,EAAG,CAC1C,eAAgBI,EAChB,cAAeC,EACf,UAAAC,CAAA,CACD,EAEKI,EAAeC,EAAkBV,CAAU,EAEjD,OACEW,EAAC,UAAA,CAAQ,UAAWC,EAAG,SAAUX,GAAA,YAAAA,EAAS,IAAI,EAC5C,SAAAY,EAACC,GAAoB,UAAWF,EAAG,4CAA6CX,GAAA,YAAAA,EAAS,SAAS,EAChG,SAAA,CAAAY,EAAC,OAAI,UAAWD,EAAG,2BAA4BX,GAAA,YAAAA,EAAS,aAAa,EACnE,SAAA,CAAAU,EAAC,MAAA,CACC,UAAWC,EAAG,mDAAoDX,GAAA,YAAAA,EAAS,KAAK,EAChF,wBAAyB,CAAE,OAAQP,CAAA,CAAM,CAAA,EAE3CiB,EAAC,MAAA,CAAI,UAAWC,EAAG,8BAA+BX,GAAA,YAAAA,EAAS,QAAQ,EAAG,wBAAyB,CAAE,OAAQN,CAAA,CAAS,CAAG,CAAA,EACvH,IAEC,MAAA,CAAI,UAAWiB,EAAG,sBAAuBX,GAAA,YAAAA,EAAS,cAAc,EAC/D,SAAA,CAAAU,EAACI,EAAA,CACE,GAAGb,EACJ,WAAYO,EACZ,KAAAV,EACA,QAASQ,EACT,QAASN,GAAA,YAAAA,EAAS,iBAClB,KAAK,MACL,WAAAJ,CAAA,CAAA,EAEDD,GACCe,EAAC,MAAA,CACC,UAAWC,EAAG,0CAA2CX,GAAA,YAAAA,EAAS,UAAU,EAC5E,wBAAyB,CAAE,OAAQL,CAAA,CAAW,CAAA,CAChD,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CACF,CAEJ"}