tp-react-elements 1.3.2 → 1.3.4
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/_virtual/index.esm10.js +2 -2
- package/dist/_virtual/index.esm4.js +2 -2
- package/dist/_virtual/index.esm5.js +2 -2
- package/dist/_virtual/index.esm7.js +2 -2
- package/dist/_virtual/index.esm9.js +2 -2
- package/dist/components/DateRangePicker/DateRangePicker.d.ts +0 -3
- package/dist/components/DateRangePicker/DateRangePicker.esm.js +4 -0
- package/dist/components/Form/FormRender.esm.js +12 -8
- package/dist/components/FormComponents/Select/SearchableSelect.d.ts +6 -0
- package/dist/components/FormComponents/Select/SearchableSelect.esm.js +78 -0
- package/dist/components/FormComponents/index.d.ts +1 -0
- package/dist/components/FormComponents/index.esm.js +13 -26
- package/dist/components/PaginatedGrid/DynamicFilterBar.d.ts +33 -7
- package/dist/components/PaginatedGrid/DynamicFilterBar.esm.js +101 -40
- package/dist/components/PaginatedGrid/GenericPaginatedGrid.d.ts +10 -3
- package/dist/components/PaginatedGrid/GenericPaginatedGrid.esm.js +49 -5
- package/dist/components/PaginatedGrid/columns.d.ts +2 -2
- package/dist/components/PaginatedGrid/types.d.ts +61 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.js +1 -0
- package/dist/node_modules/prop-types/index.esm.js +1 -1
- package/dist/node_modules/react-date-range/dist/accessibility/index.esm.js +1 -1
- package/dist/node_modules/react-date-range/dist/components/Calendar/index.esm.js +1 -1
- package/dist/node_modules/react-date-range/dist/components/DateRange/index.esm.js +1 -1
- package/dist/node_modules/react-date-range/dist/components/DefinedRange/index.esm.js +1 -1
- package/dist/utils/Interface/FormInterface.d.ts +1 -1
- package/dist/utils/rdrStyles.d.ts +12 -0
- package/dist/utils/rdrStyles.esm.js +180 -0
- package/package.json +5 -1
- package/dist/node_modules/@tanstack/query-core/build/modern/environmentManager.esm.js +0 -22
- package/dist/node_modules/@tanstack/query-core/build/modern/focusManager.esm.js +0 -65
- package/dist/node_modules/@tanstack/query-core/build/modern/notifyManager.esm.js +0 -83
- package/dist/node_modules/@tanstack/query-core/build/modern/onlineManager.esm.js +0 -55
- package/dist/node_modules/@tanstack/query-core/build/modern/query.esm.js +0 -16
- package/dist/node_modules/@tanstack/query-core/build/modern/queryObserver.esm.js +0 -463
- package/dist/node_modules/@tanstack/query-core/build/modern/retryer.esm.js +0 -8
- package/dist/node_modules/@tanstack/query-core/build/modern/subscribable.esm.js +0 -24
- package/dist/node_modules/@tanstack/query-core/build/modern/thenable.esm.js +0 -34
- package/dist/node_modules/@tanstack/query-core/build/modern/timeoutManager.esm.js +0 -66
- package/dist/node_modules/@tanstack/query-core/build/modern/utils.esm.js +0 -115
- package/dist/node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.esm.js +0 -7
- package/dist/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.esm.js +0 -15
- package/dist/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.esm.js +0 -21
- package/dist/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.esm.js +0 -27
- package/dist/node_modules/@tanstack/react-query/build/modern/suspense.esm.js +0 -22
- package/dist/node_modules/@tanstack/react-query/build/modern/useBaseQuery.esm.js +0 -94
- package/dist/node_modules/@tanstack/react-query/build/modern/useQuery.esm.js +0 -8
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { useState, useMemo } from 'react';
|
|
3
3
|
import { useMaterialReactTable, MaterialReactTable } from 'material-react-table';
|
|
4
|
-
import { keepPreviousData } from '
|
|
5
|
-
import { useQuery } from '../../node_modules/@tanstack/react-query/build/modern/useQuery.esm.js';
|
|
4
|
+
import { useQuery, keepPreviousData } from '@tanstack/react-query';
|
|
6
5
|
import { Box, Tooltip, IconButton, Button, GlobalStyles, Typography, Select, MenuItem, CircularProgress } from '@mui/material';
|
|
7
6
|
import RefreshIcon from '@mui/icons-material/Refresh';
|
|
8
7
|
import FileDownloadIcon from '@mui/icons-material/FileDownload';
|
|
@@ -67,14 +66,59 @@ function GenericPaginatedGrid({ columns, fetchPage, queryKey, serverFilterDefs,
|
|
|
67
66
|
});
|
|
68
67
|
const rows = data?.data ?? [];
|
|
69
68
|
const totalRecords = data?.totalRecords ?? 0;
|
|
69
|
+
// ── Strip custom props + auto-inject filterFn before passing to MRT ──────────
|
|
70
|
+
//
|
|
71
|
+
// `TPColumnDef` extends `MRT_ColumnDef` with `filterType` and `options`.
|
|
72
|
+
// MRT doesn't know these props, so we strip them here. We also inject the
|
|
73
|
+
// appropriate `filterFn` automatically so callers never have to write one.
|
|
74
|
+
const processedColumns = useMemo(() => {
|
|
75
|
+
return columns.map((col) => {
|
|
76
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
77
|
+
const { filterType, options, ...mrtCol } = col;
|
|
78
|
+
// Auto-inject filterFn only when the user hasn't already supplied one.
|
|
79
|
+
if (!mrtCol.filterFn && filterType) {
|
|
80
|
+
if (filterType === 'date') {
|
|
81
|
+
// ISO date strings: "2026-05-05T00:00:00" → startsWith "2026-05-05"
|
|
82
|
+
mrtCol.filterFn = (row, columnId, filterValue) => filterValue
|
|
83
|
+
? (row.getValue(columnId) ?? '').startsWith(filterValue)
|
|
84
|
+
: true;
|
|
85
|
+
}
|
|
86
|
+
else if (filterType === 'select' || filterType === 'searchable-select') {
|
|
87
|
+
// Exact-value match (avoids substring false positives)
|
|
88
|
+
mrtCol.filterFn = (row, columnId, filterValue) => filterValue
|
|
89
|
+
? row.getValue(columnId) === filterValue
|
|
90
|
+
: true;
|
|
91
|
+
}
|
|
92
|
+
// 'text' and 'number' use MRT's built-in client-side filtering
|
|
93
|
+
}
|
|
94
|
+
return mrtCol;
|
|
95
|
+
});
|
|
96
|
+
}, [columns]);
|
|
70
97
|
// ── Derive column list for filter chip picker ──────────────────────────────
|
|
98
|
+
//
|
|
99
|
+
// A column is excluded from the "Column Filters" section of Manage Filters
|
|
100
|
+
// when ANY of the following are true:
|
|
101
|
+
// 1. It has no accessorKey (computed / display columns).
|
|
102
|
+
// 2. Its accessorKey is already handled by a server-side 'date' filter def.
|
|
103
|
+
// 3. Its MRT `enableColumnFilter` prop is explicitly set to `false` —
|
|
104
|
+
// use this for numeric/computed columns that don't need a filter chip.
|
|
71
105
|
const availableColumns = useMemo(() => {
|
|
72
106
|
const serverManagedColKeys = new Set(serverFilterDefs
|
|
73
107
|
.filter((d) => d.type === 'date')
|
|
74
108
|
.map((d) => d.columnKey));
|
|
75
109
|
return columns
|
|
76
|
-
.filter((c) => 'accessorKey' in c &&
|
|
77
|
-
|
|
110
|
+
.filter((c) => 'accessorKey' in c &&
|
|
111
|
+
c.accessorKey &&
|
|
112
|
+
!serverManagedColKeys.has(c.accessorKey) &&
|
|
113
|
+
c.enableColumnFilter !== false)
|
|
114
|
+
.map((c) => ({
|
|
115
|
+
id: c.accessorKey,
|
|
116
|
+
label: c.header,
|
|
117
|
+
// Pass filterType directly from TPColumnDef (no meta unwrapping needed)
|
|
118
|
+
filterType: c.filterType,
|
|
119
|
+
// Map TPColumnDef.options → AvailableColumn.filterOptions
|
|
120
|
+
filterOptions: c.options,
|
|
121
|
+
}));
|
|
78
122
|
}, [columns, serverFilterDefs]);
|
|
79
123
|
// ── Handlers ───────────────────────────────────────────────────────────────
|
|
80
124
|
const handleFilterValuesChange = (newValues) => {
|
|
@@ -109,7 +153,7 @@ function GenericPaginatedGrid({ columns, fetchPage, queryKey, serverFilterDefs,
|
|
|
109
153
|
columnFilters.some((f) => f.value);
|
|
110
154
|
// ── Table instance ─────────────────────────────────────────────────────────
|
|
111
155
|
const table = useMaterialReactTable({
|
|
112
|
-
columns,
|
|
156
|
+
columns: processedColumns,
|
|
113
157
|
data: rows,
|
|
114
158
|
manualPagination: true,
|
|
115
159
|
rowCount: totalRecords,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { TPColumnDef } from './types';
|
|
2
2
|
import type { InvoiceDetail } from './types';
|
|
3
|
-
export declare const invoiceColumns:
|
|
3
|
+
export declare const invoiceColumns: TPColumnDef<InvoiceDetail>[];
|
|
@@ -1,3 +1,64 @@
|
|
|
1
|
+
import type { MRT_ColumnDef } from 'material-react-table';
|
|
2
|
+
/**
|
|
3
|
+
* Filter chip variant shown in Manage Filters → Column Filters.
|
|
4
|
+
*
|
|
5
|
+
* | Value | Chip rendered |
|
|
6
|
+
* |---------------------|---------------------------|
|
|
7
|
+
* | `'text'` | Free-text input (default) |
|
|
8
|
+
* | `'date'` | Calendar date picker |
|
|
9
|
+
* | `'select'` | Searchable option list |
|
|
10
|
+
* | `'searchable-select'` | Searchable option list |
|
|
11
|
+
* | `'number'` | Numeric input |
|
|
12
|
+
*
|
|
13
|
+
* Set `enableColumnFilter: false` to hide the column from Manage Filters
|
|
14
|
+
* entirely (e.g. for computed or numeric columns that don't need filtering).
|
|
15
|
+
*/
|
|
16
|
+
export type ColumnFilterType = 'text' | 'date' | 'select' | 'searchable-select' | 'number';
|
|
17
|
+
/**
|
|
18
|
+
* Drop-in replacement for `MRT_ColumnDef` that adds top-level
|
|
19
|
+
* `filterType` and `options` so you never have to write `meta` blocks
|
|
20
|
+
* or custom `filterFn` — the grid handles both automatically.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import type { TPColumnDef } from './types';
|
|
25
|
+
*
|
|
26
|
+
* const columns: TPColumnDef<MyRow>[] = [
|
|
27
|
+
* // Date picker chip
|
|
28
|
+
* { accessorKey: 'invoiceDate', header: 'Invoice Date', filterType: 'date' },
|
|
29
|
+
*
|
|
30
|
+
* // Searchable option list chip
|
|
31
|
+
* {
|
|
32
|
+
* accessorKey: 'status',
|
|
33
|
+
* header: 'Status',
|
|
34
|
+
* filterType: 'searchable-select',
|
|
35
|
+
* options: [
|
|
36
|
+
* { label: 'Active', value: 'A' },
|
|
37
|
+
* { label: 'Inactive', value: 'I' },
|
|
38
|
+
* ],
|
|
39
|
+
* },
|
|
40
|
+
*
|
|
41
|
+
* // Hidden from Manage Filters (numeric column)
|
|
42
|
+
* { accessorKey: 'qty', header: 'Qty', enableColumnFilter: false },
|
|
43
|
+
* ];
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export type TPColumnDef<TData extends object = object> = MRT_ColumnDef<TData> & {
|
|
47
|
+
/**
|
|
48
|
+
* Which filter chip to show in Manage Filters → Column Filters.
|
|
49
|
+
* Omit (or set to `'text'`) for a plain text-input chip.
|
|
50
|
+
*/
|
|
51
|
+
filterType?: ColumnFilterType;
|
|
52
|
+
/**
|
|
53
|
+
* Option pairs for `'select'` and `'searchable-select'` filter types.
|
|
54
|
+
* Each entry needs `label` (display text) and `value` (filter value sent).
|
|
55
|
+
*/
|
|
56
|
+
options?: {
|
|
57
|
+
label: string;
|
|
58
|
+
value: string | number;
|
|
59
|
+
disable?: boolean;
|
|
60
|
+
}[];
|
|
61
|
+
};
|
|
1
62
|
export interface InvoiceDetail {
|
|
2
63
|
Data_from: string;
|
|
3
64
|
FINYEAR: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export { default as SessionTimeoutField } from './components/SessionTimeOut/Sess
|
|
|
6
6
|
export { default as useFormValidatingContext } from './components/Form/FormConstants';
|
|
7
7
|
export { default as MultiSelectFieldComponent } from './components/SelectField/MultiSelectFieldComponent';
|
|
8
8
|
export { default as GenericPaginatedGrid } from './components/PaginatedGrid/GenericPaginatedGrid';
|
|
9
|
+
export { default as SearchableSelect } from './components/FormComponents/Select/SearchableSelect';
|
|
9
10
|
export { TPElementsProvider } from './auth/authContext';
|
|
10
11
|
export { calculateTotalArrayValueTotal, checkIsDateIsBefore, findMenuHierarchy, getDesiredDate, getFormattedDate, getInitials, getUsernameFromEmail, handleDownloadReactTableDataExcel, lightenColor, } from './utils';
|
|
11
12
|
export * as Utils from './utils';
|
package/dist/index.esm.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.m-form__input .prestashop-switch.switch{display:block;height:30px;position:relative;width:160px}.m-form__input .prestashop-switch.switch.stactv{display:block;height:30px;position:relative;width:162px}.prestashop-switch.switch{background-color:#eee;border:1px solid #ccc;border-radius:50px;-webkit-box-shadow:inset 0 1px 4px 1px rgba(0,0,0,.15);-moz-box-shadow:inset 0 1px 4px 1px rgba(0,0,0,.15);box-shadow:inset 0 1px 4px 1px rgba(0,0,0,.15);color:#333;text-align:center}.prestashop-switch.switch *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.m-form__input .prestashop-switch.switch *{outline:0!important}.m-form__input .prestashop-switch.switch input[type=radio]{line-height:normal;margin:4px 0 0;opacity:0;position:absolute}.m-form__input .prestashop-switch.switch label,.m-form__input .prestashop-switch.switch>span{display:inline-block;line-height:30px;max-width:100%;vertical-align:middle}.m-form__input .prestashop-switch.switch label{color:#bbb;cursor:pointer;float:left;font-size:11px;font-weight:400;height:100%;margin:0;position:relative;text-align:center;text-transform:uppercase;-webkit-transition:color .2s ease-out;-o-transition:color .2s ease-out;transition:color .2s ease-out;width:50%;z-index:2}.m-form__input .prestashop-switch.switch input:checked+label{color:#fff}.m-form__input .prestashop-switch.switch .slide-button{background-color:green;border:1px solid green;border-radius:50px;-webkit-box-shadow:inset -1px 0 green;-moz-box-shadow:inset 0 -1px 0 green;box-shadow:inset 0 -1px 0 green;color:#fff;display:block;height:100%;left:0;padding:0;position:absolute;top:0;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;width:50%;z-index:1}.m-form__input{align-items:center;display:flex}.m-form__input .prestashop-switch.switch input:last-of-type:checked~.slide-button{background-color:#ec5c29;border:1px solid #fb561c;-webkit-box-shadow:inset 0 -1px 0 #fb561c;-moz-box-shadow:inset 0 -1px 0 #fb561c;box-shadow:inset 0 -1px 0 #fb561c;left:50%}#list-component{background-color:#fff;max-height:200px;overflow:auto!important}#list-component #MuiScrol-listbox{max-height:none!important;overflow:visible}.css-k2lwa0,.css-svpvcz-MuiFormLabel-root-MuiInputLabel-root{background:#fff;font-size:14px!important}.rdrCalendarWrapper{background:#fff;box-sizing:border-box;display:inline-flex;flex-direction:column;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rdrDateDisplay{display:flex;justify-content:space-between}.rdrDateDisplayItem{color:inherit;flex:1 1;text-align:center;width:0}.rdrDateDisplayItem+.rdrDateDisplayItem{margin-left:.833em}.rdrDateDisplayItem input{text-align:inherit}.rdrDateDisplayItem input:disabled{cursor:default}.rdrMonthAndYearWrapper{box-sizing:inherit;display:flex;justify-content:space-between}.rdrMonthAndYearPickers{align-items:center;display:flex;flex:1 1 auto;justify-content:center}.rdrNextPrevButton{box-sizing:inherit;cursor:pointer;outline:none}.rdrMonths{display:flex}.rdrMonthsVertical{flex-direction:column}.rdrMonthsHorizontal>div>div>div{display:flex;flex-direction:row}.rdrMonth{width:27.667em}.rdrWeekDays{display:flex}.rdrWeekDay{box-sizing:inherit;flex-basis:14.28571%;text-align:center}.rdrDays{display:flex;flex-wrap:wrap}.rdrInfiniteMonths{overflow:auto}.rdrDateRangeWrapper{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rdrDateInput{position:relative}.rdrDateInput input{outline:none}.rdrDateInput .rdrWarning{color:red;font-size:1.6em;line-height:1.6em;position:absolute;right:.25em;top:0}.rdrDay{box-sizing:inherit;cursor:pointer;font:inherit;position:relative;width:14.28571%}.rdrDayNumber{display:block;position:relative}.rdrDayNumber span{color:#1d2429}.rdrDayDisabled{cursor:not-allowed}@supports (-ms-ime-align:auto){.rdrDay{flex-basis:14.285%!important}}.rdrEndEdge,.rdrInRange,.rdrSelected,.rdrStartEdge{pointer-events:none}.rdrDateRangePickerWrapper{display:inline-flex;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rdrStaticRanges{display:flex;flex-direction:column}.rdrStaticRange{font-size:inherit}.rdrInputRange{display:flex}.rdrCalendarWrapper{color:#000;font-size:12px}.rdrDateDisplayWrapper{background-color:#eff2f7}.rdrDateDisplay{margin:.833em}.rdrDateDisplayItem{background-color:#fff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 2px 0 rgba(35,57,66,.21)}.rdrDateDisplayItem input{background:transparent;border:0;color:#849095;cursor:pointer;height:2.5em;line-height:2.5em;width:100%}.rdrDateDisplayItemActive{border-color:currentColor}.rdrDateDisplayItemActive input{color:#7d888d}.rdrMonthAndYearWrapper{align-items:center;height:60px;padding-top:10px}.rdrMonthAndYearPickers{font-weight:600}.rdrMonthAndYearPickers select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;background:url("data:image/svg+xml;utf8,<svg width='9px' height='6px' viewBox='0 0 9 6' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g id='Artboard' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' transform='translate(-636.000000, -171.000000)' fill-opacity='0.368716033'><g id='input' transform='translate(172.000000, 37.000000)' fill='%230E242F' fill-rule='nonzero'><g id='Group-9' transform='translate(323.000000, 127.000000)'><path d='M142.280245,7.23952813 C141.987305,6.92353472 141.512432,6.92361662 141.219585,7.23971106 C140.926739,7.5558055 140.926815,8.06821394 141.219755,8.38420735 L145.498801,13 L149.780245,8.38162071 C150.073185,8.0656273 150.073261,7.55321886 149.780415,7.23712442 C149.487568,6.92102998 149.012695,6.92094808 148.719755,7.23694149 L145.498801,10.7113732 L142.280245,7.23952813 Z' id='arrow'></path></g></g></g></svg>") no-repeat;background-position:right 8px center;border:0;border-radius:4px;color:#3e484f;cursor:pointer;outline:0;padding:10px 30px 10px 10px;text-align:center}.rdrMonthAndYearPickers select:hover{background-color:rgba(0,0,0,.07)}.rdrMonthPicker,.rdrYearPicker{margin:0 5px}.rdrNextPrevButton{background:#eff2f7;border:0;border-radius:5px;display:block;height:24px;margin:0 .833em;padding:0;width:24px}.rdrNextPrevButton:hover{background:#e1e7f0}.rdrNextPrevButton i{border-style:solid;display:block;height:0;margin:auto;padding:0;text-align:center;transform:translate(-3px);width:0}.rdrPprevButton i{border-color:transparent #34495e transparent transparent;border-width:4px 6px 4px 4px;transform:translate(-3px)}.rdrNextButton i{border-color:transparent transparent transparent #34495e;border-width:4px 4px 4px 6px;margin:0 0 0 7px;transform:translate(3px)}.rdrWeekDays{padding:0 .833em}.rdrMonth{padding:0 .833em 1.666em}.rdrMonth .rdrWeekDays{padding:0}.rdrMonths.rdrMonthsVertical .rdrMonth:first-child .rdrMonthName{display:none}.rdrWeekDay{color:#849095;font-weight:400;line-height:2.667em}.rdrDay{background:transparent;border:0;color:#1d2429;height:3em;line-height:3em;padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rdrDay:focus{outline:0}.rdrDayNumber{align-items:center;bottom:0;bottom:5px;display:flex;font-weight:300;justify-content:center;left:0;outline:0;position:absolute;right:0;top:0;top:5px}.rdrDayToday .rdrDayNumber span{font-weight:500}.rdrDayToday .rdrDayNumber span:after{background:#3d91ff;border-radius:2px;bottom:4px;content:"";height:2px;left:50%;position:absolute;transform:translate(-50%);width:18px}.rdrDayToday:not(.rdrDayPassive) .rdrEndEdge~.rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrInRange~.rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrSelected~.rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrStartEdge~.rdrDayNumber span:after{background:#fff}.rdrDay:not(.rdrDayPassive) .rdrEndEdge~.rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrInRange~.rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrSelected~.rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrStartEdge~.rdrDayNumber span{color:hsla(0,0%,100%,.85)}.rdrEndEdge,.rdrInRange,.rdrSelected,.rdrStartEdge{background:currentColor;bottom:5px;left:0;position:absolute;right:0;top:5px}.rdrSelected{left:2px;right:2px}.rdrStartEdge{border-bottom-left-radius:1.042em;border-top-left-radius:1.042em;left:2px}.rdrEndEdge{border-bottom-right-radius:1.042em;border-top-right-radius:1.042em;right:2px}.rdrSelected{border-radius:1.042em}.rdrDayStartOfMonth .rdrEndEdge,.rdrDayStartOfMonth .rdrInRange,.rdrDayStartOfWeek .rdrEndEdge,.rdrDayStartOfWeek .rdrInRange{border-bottom-left-radius:1.042em;border-top-left-radius:1.042em;left:2px}.rdrDayEndOfMonth .rdrInRange,.rdrDayEndOfMonth .rdrStartEdge,.rdrDayEndOfWeek .rdrInRange,.rdrDayEndOfWeek .rdrStartEdge{border-bottom-right-radius:1.042em;border-top-right-radius:1.042em;right:2px}.rdrDayStartOfMonth .rdrDayEndPreview,.rdrDayStartOfMonth .rdrDayInPreview,.rdrDayStartOfWeek .rdrDayEndPreview,.rdrDayStartOfWeek .rdrDayInPreview{border-bottom-left-radius:1.333em;border-left-width:1px;border-top-left-radius:1.333em;left:0}.rdrDayEndOfMonth .rdrDayInPreview,.rdrDayEndOfMonth .rdrDayStartPreview,.rdrDayEndOfWeek .rdrDayInPreview,.rdrDayEndOfWeek .rdrDayStartPreview{border-bottom-right-radius:1.333em;border-right-width:1px;border-top-right-radius:1.333em;right:0}.rdrDayEndPreview,.rdrDayInPreview,.rdrDayStartPreview{background:hsla(0,0%,100%,.09);border:0 solid;bottom:3px;left:0;pointer-events:none;position:absolute;right:0;top:3px;z-index:1}.rdrDayStartPreview{border-bottom-left-radius:1.333em;border-bottom-width:1px;border-left-width:1px;border-top-left-radius:1.333em;border-top-width:1px;left:0}.rdrDayInPreview{border-bottom-width:1px;border-top-width:1px}.rdrDayEndPreview{border-bottom-right-radius:1.333em;border-bottom-width:1px;border-right-width:1px;border-top-right-radius:1.333em;border-top-width:1px;right:2px;right:0}.rdrDefinedRangesWrapper{background:#fff;border-right:1px solid #eff2f7;font-size:12px;width:226px}.rdrDefinedRangesWrapper .rdrStaticRangeSelected{color:currentColor;font-weight:600}.rdrStaticRange{background:#fff;border:0;border-bottom:1px solid #eff2f7;cursor:pointer;display:block;outline:0;padding:0}.rdrStaticRange:focus .rdrStaticRangeLabel,.rdrStaticRange:hover .rdrStaticRangeLabel{background:#eff2f7}.rdrStaticRangeLabel{display:block;line-height:18px;outline:0;padding:10px 20px;text-align:left}.rdrInputRanges{padding:10px 0}.rdrInputRange{align-items:center;padding:5px 20px}.rdrInputRangeInput{border:1px solid #dee7eb;border-radius:4px;color:#6c767a;height:30px;line-height:30px;margin-right:10px;text-align:center;width:30px}.rdrInputRangeInput:focus,.rdrInputRangeInput:hover{border-color:#b4bfc4;color:#333;outline:0}.rdrCalendarWrapper:not(.rdrDateRangeWrapper) .rdrDayHovered .rdrDayNumber:after{background:transparent;border:1px solid;border-radius:1.333em;bottom:-2px;content:"";left:0;position:absolute;right:0;top:-2px}.rdrDayPassive{pointer-events:none}.rdrDayPassive .rdrDayNumber span{color:#d5dce0}.rdrDayPassive .rdrDayEndPreview,.rdrDayPassive .rdrDayInPreview,.rdrDayPassive .rdrDayStartPreview,.rdrDayPassive .rdrEndEdge,.rdrDayPassive .rdrInRange,.rdrDayPassive .rdrSelected,.rdrDayPassive .rdrStartEdge{display:none}.rdrDayDisabled{background-color:#f8f8f8}.rdrDayDisabled .rdrDayNumber span{color:#aeb9bf}.rdrDayDisabled .rdrDayEndPreview,.rdrDayDisabled .rdrDayInPreview,.rdrDayDisabled .rdrDayStartPreview,.rdrDayDisabled .rdrEndEdge,.rdrDayDisabled .rdrInRange,.rdrDayDisabled .rdrSelected,.rdrDayDisabled .rdrStartEdge{filter:grayscale(100%) opacity(60%)}.rdrMonthName{color:#849095;font-weight:600;padding:.833em;text-align:left}.rdrCalendarWrapper .rdrDay:not(.rdrDayPassive) .rdrEndEdge~.rdrDayNumber span,.rdrCalendarWrapper .rdrDay:not(.rdrDayPassive) .rdrInRange~.rdrDayNumber span,.rdrCalendarWrapper .rdrDay:not(.rdrDayPassive) .rdrSelected~.rdrDayNumber span,.rdrCalendarWrapper .rdrDay:not(.rdrDayPassive) .rdrStartEdge~.rdrDayNumber span{color:#fff!important}
|
|
1
|
+
.m-form__input .prestashop-switch.switch{display:block;height:30px;position:relative;width:160px}.m-form__input .prestashop-switch.switch.stactv{display:block;height:30px;position:relative;width:162px}.prestashop-switch.switch{background-color:#eee;border:1px solid #ccc;border-radius:50px;-webkit-box-shadow:inset 0 1px 4px 1px rgba(0,0,0,.15);-moz-box-shadow:inset 0 1px 4px 1px rgba(0,0,0,.15);box-shadow:inset 0 1px 4px 1px rgba(0,0,0,.15);color:#333;text-align:center}.prestashop-switch.switch *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.m-form__input .prestashop-switch.switch *{outline:0!important}.m-form__input .prestashop-switch.switch input[type=radio]{line-height:normal;margin:4px 0 0;opacity:0;position:absolute}.m-form__input .prestashop-switch.switch label,.m-form__input .prestashop-switch.switch>span{display:inline-block;line-height:30px;max-width:100%;vertical-align:middle}.m-form__input .prestashop-switch.switch label{color:#bbb;cursor:pointer;float:left;font-size:11px;font-weight:400;height:100%;margin:0;position:relative;text-align:center;text-transform:uppercase;-webkit-transition:color .2s ease-out;-o-transition:color .2s ease-out;transition:color .2s ease-out;width:50%;z-index:2}.m-form__input .prestashop-switch.switch input:checked+label{color:#fff}.m-form__input .prestashop-switch.switch .slide-button{background-color:green;border:1px solid green;border-radius:50px;-webkit-box-shadow:inset -1px 0 green;-moz-box-shadow:inset 0 -1px 0 green;box-shadow:inset 0 -1px 0 green;color:#fff;display:block;height:100%;left:0;padding:0;position:absolute;top:0;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;width:50%;z-index:1}.m-form__input{align-items:center;display:flex}.m-form__input .prestashop-switch.switch input:last-of-type:checked~.slide-button{background-color:#ec5c29;border:1px solid #fb561c;-webkit-box-shadow:inset 0 -1px 0 #fb561c;-moz-box-shadow:inset 0 -1px 0 #fb561c;box-shadow:inset 0 -1px 0 #fb561c;left:50%}#list-component{background-color:#fff;max-height:200px;overflow:auto!important}#list-component #MuiScrol-listbox{max-height:none!important;overflow:visible}
|
package/dist/index.esm.js
CHANGED
|
@@ -6,6 +6,7 @@ export { default as SessionTimeoutField } from './components/SessionTimeOut/Sess
|
|
|
6
6
|
export { default as useFormValidatingContext } from './components/Form/FormConstants.esm.js';
|
|
7
7
|
export { default as MultiSelectFieldComponent } from './components/SelectField/MultiSelectFieldComponent.esm.js';
|
|
8
8
|
export { default as GenericPaginatedGrid } from './components/PaginatedGrid/GenericPaginatedGrid.esm.js';
|
|
9
|
+
export { default as SearchableSelect } from './components/FormComponents/Select/SearchableSelect.esm.js';
|
|
9
10
|
export { TPElementsProvider } from './auth/authContext.esm.js';
|
|
10
11
|
import * as index$1 from './utils/index.esm.js';
|
|
11
12
|
export { index$1 as Utils };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __module as propTypes } from '../../_virtual/index.
|
|
1
|
+
import { __module as propTypes } from '../../_virtual/index.esm9.js';
|
|
2
2
|
import { __require as requireReactIs } from './node_modules/react-is/index.esm.js';
|
|
3
3
|
import { __require as requireFactoryWithTypeCheckers } from './factoryWithTypeCheckers.esm.js';
|
|
4
4
|
import { __require as requireFactoryWithThrowingShims } from './factoryWithThrowingShims.esm.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __exports as accessibility } from '../../../../_virtual/index.
|
|
1
|
+
import { __exports as accessibility } from '../../../../_virtual/index.esm10.js';
|
|
2
2
|
import { __require as requirePropTypes } from '../../../prop-types/index.esm.js';
|
|
3
3
|
|
|
4
4
|
var hasRequiredAccessibility;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __exports as Calendar } from '../../../../../_virtual/index.
|
|
1
|
+
import { __exports as Calendar } from '../../../../../_virtual/index.esm7.js';
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import { __require as requirePropTypes } from '../../../../prop-types/index.esm.js';
|
|
4
4
|
import { __require as requireDayCell } from '../DayCell/index.esm.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __exports as DateRange } from '../../../../../_virtual/index.
|
|
1
|
+
import { __exports as DateRange } from '../../../../../_virtual/index.esm5.js';
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import { __require as requirePropTypes } from '../../../../prop-types/index.esm.js';
|
|
4
4
|
import { __require as requireCalendar } from '../Calendar/index.esm.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __exports as DefinedRange } from '../../../../../_virtual/index.
|
|
1
|
+
import { __exports as DefinedRange } from '../../../../../_virtual/index.esm4.js';
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import { __require as requirePropTypes } from '../../../../prop-types/index.esm.js';
|
|
4
4
|
import { __require as requireStyles } from '../../styles.esm.js';
|
|
@@ -11,7 +11,7 @@ export interface TextFieldInputProps {
|
|
|
11
11
|
export interface FormSectionPropsItem {
|
|
12
12
|
name: string;
|
|
13
13
|
label: string;
|
|
14
|
-
inputType: 'text' | 'password' | 'number' | 'select' | 'autocomplete-select' | 'autocomplete-multi-select' | 'single-select-search' | 'datepicker' | 'datetimepicker' | 'multiselect' | 'select-v2' | 'basic-select' | 'decimal' | 'alpha-numerical' | 'yearpicker' | 'dateRangePicker' | 'monthpicker' | 'multiselect' | 'file' | 'multifile' | 'multifile-with-preview' | 'textarea' | 'phoneNumber' | 'pincode' | 'email' | 'toggleSwitch' | 'rich-text-editor' | 'multiEmail' | 'timepicker' | 'checkbox-group' | 'radio-group' | 'checkbox' | 'custom' | 'input-select' | 'date-range-picker' | 'multiselect-table' | '';
|
|
14
|
+
inputType: 'text' | 'password' | 'number' | 'select' | 'autocomplete-select' | 'autocomplete-multi-select' | 'single-select-search' | 'datepicker' | 'datetimepicker' | 'multiselect' | 'select-v2' | 'basic-select' | 'searchable-select' | 'decimal' | 'alpha-numerical' | 'yearpicker' | 'dateRangePicker' | 'monthpicker' | 'multiselect' | 'file' | 'multifile' | 'multifile-with-preview' | 'textarea' | 'phoneNumber' | 'pincode' | 'email' | 'toggleSwitch' | 'rich-text-editor' | 'multiEmail' | 'timepicker' | 'checkbox-group' | 'radio-group' | 'checkbox' | 'custom' | 'input-select' | 'date-range-picker' | 'multiselect-table' | '';
|
|
15
15
|
options?: OptionsProps[];
|
|
16
16
|
required?: boolean;
|
|
17
17
|
errorMessage?: string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Call this hook at the top of any component that renders a `<DateRange />` calendar
|
|
3
|
+
* from `react-date-range`. The styles are injected once into `document.head` and
|
|
4
|
+
* never removed (the injection is idempotent — safe to call from multiple components).
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const MyCalendarChip = () => {
|
|
8
|
+
* useRdrStyles();
|
|
9
|
+
* return <DateRange ... />;
|
|
10
|
+
* };
|
|
11
|
+
*/
|
|
12
|
+
export declare function useRdrStyles(): void;
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* react-date-range CSS injected as a JavaScript string — NOT as a CSS import.
|
|
5
|
+
*
|
|
6
|
+
* WHY THIS FILE EXISTS
|
|
7
|
+
* --------------------
|
|
8
|
+
* Importing `react-date-range/dist/styles.css` and `theme/default.css` directly
|
|
9
|
+
* in the component source causes rollup-plugin-postcss (extract: true) to bundle
|
|
10
|
+
* those rules into the library's extracted `dist/index.css`. When a consumer
|
|
11
|
+
* app imports that CSS file they get the react-date-range rules applied globally,
|
|
12
|
+
* which can interfere with the consumer's own MUI dropdowns and date-pickers.
|
|
13
|
+
*
|
|
14
|
+
* Instead we ship the CSS as a JavaScript string and inject a single <style> tag
|
|
15
|
+
* the first time any DateRange calendar is rendered. This means:
|
|
16
|
+
* • The CSS is NOT in the extracted CSS bundle.
|
|
17
|
+
* • The CSS IS present at runtime (injected when the component mounts).
|
|
18
|
+
* • The CSS only affects elements with react-date-range's own `.rdr*` class names,
|
|
19
|
+
* so it cannot conflict with MUI or any other library.
|
|
20
|
+
*
|
|
21
|
+
* USAGE
|
|
22
|
+
* -----
|
|
23
|
+
* Call `useRdrStyles()` at the top of any component that renders <DateRange />.
|
|
24
|
+
* The injection is idempotent — subsequent calls are no-ops.
|
|
25
|
+
*/
|
|
26
|
+
const STYLE_ID = 'tp-rdr-styles';
|
|
27
|
+
/* ─── Combined CSS from react-date-range ──────────────────────────────────── */
|
|
28
|
+
/* Source: react-date-range/dist/styles.css + theme/default.css v2.0.1 */
|
|
29
|
+
const RDR_CSS = `
|
|
30
|
+
/* ── react-date-range/dist/styles.css ── */
|
|
31
|
+
.rdrCalendarWrapper{box-sizing:border-box;background:#ffffff;display:inline-flex;flex-direction:column;-webkit-user-select:none;-moz-user-select:none;user-select:none}
|
|
32
|
+
.rdrDateDisplay{display:flex;justify-content:space-between}
|
|
33
|
+
.rdrDateDisplayItem{flex:1 1;width:0;text-align:center;color:inherit}
|
|
34
|
+
.rdrDateDisplayItem+.rdrDateDisplayItem{margin-left:.833em}
|
|
35
|
+
.rdrDateDisplayItem input{text-align:inherit}
|
|
36
|
+
.rdrDateDisplayItem input:disabled{cursor:default}
|
|
37
|
+
.rdrDateDisplayItemActive{}
|
|
38
|
+
.rdrMonthAndYearWrapper{box-sizing:inherit;display:flex;justify-content:space-between}
|
|
39
|
+
.rdrMonthAndYearPickers{flex:1 1 auto;display:flex;justify-content:center;align-items:center}
|
|
40
|
+
.rdrMonthPicker{}
|
|
41
|
+
.rdrYearPicker{}
|
|
42
|
+
.rdrNextPrevButton{box-sizing:inherit;cursor:pointer;outline:none}
|
|
43
|
+
.rdrPprevButton{}
|
|
44
|
+
.rdrNextButton{}
|
|
45
|
+
.rdrMonths{display:flex}
|
|
46
|
+
.rdrMonthsVertical{flex-direction:column}
|
|
47
|
+
.rdrMonthsHorizontal>div>div>div{display:flex;flex-direction:row}
|
|
48
|
+
.rdrMonth{width:27.667em}
|
|
49
|
+
.rdrWeekDays{display:flex}
|
|
50
|
+
.rdrWeekDay{flex-basis:calc(100% / 7);box-sizing:inherit;text-align:center}
|
|
51
|
+
.rdrDays{display:flex;flex-wrap:wrap}
|
|
52
|
+
.rdrDateDisplayWrapper{}
|
|
53
|
+
.rdrMonthName{}
|
|
54
|
+
.rdrInfiniteMonths{overflow:auto}
|
|
55
|
+
.rdrDateRangeWrapper{-webkit-user-select:none;-moz-user-select:none;user-select:none}
|
|
56
|
+
.rdrDateInput{position:relative}
|
|
57
|
+
.rdrDateInput input{outline:none}
|
|
58
|
+
.rdrDateInput .rdrWarning{position:absolute;font-size:1.6em;line-height:1.6em;top:0;right:.25em;color:#FF0000}
|
|
59
|
+
.rdrDay{box-sizing:inherit;width:calc(100% / 7);position:relative;font:inherit;cursor:pointer}
|
|
60
|
+
.rdrDayNumber{display:block;position:relative}
|
|
61
|
+
.rdrDayNumber span{color:#1d2429}
|
|
62
|
+
.rdrDayDisabled{cursor:not-allowed}
|
|
63
|
+
@supports (-ms-ime-align:auto){.rdrDay{flex-basis:14.285% !important}}
|
|
64
|
+
.rdrSelected,.rdrInRange,.rdrStartEdge,.rdrEndEdge{pointer-events:none}
|
|
65
|
+
.rdrInRange{}
|
|
66
|
+
.rdrDayStartPreview,.rdrDayInPreview,.rdrDayEndPreview{pointer-events:none}
|
|
67
|
+
.rdrDayHovered{}
|
|
68
|
+
.rdrDayActive{}
|
|
69
|
+
.rdrDateRangePickerWrapper{display:inline-flex;-webkit-user-select:none;-moz-user-select:none;user-select:none}
|
|
70
|
+
.rdrDefinedRangesWrapper{}
|
|
71
|
+
.rdrStaticRanges{display:flex;flex-direction:column}
|
|
72
|
+
.rdrStaticRange{font-size:inherit}
|
|
73
|
+
.rdrStaticRangeLabel{}
|
|
74
|
+
.rdrInputRanges{}
|
|
75
|
+
.rdrInputRange{display:flex}
|
|
76
|
+
.rdrInputRangeInput{}
|
|
77
|
+
|
|
78
|
+
/* ── react-date-range/dist/theme/default.css ── */
|
|
79
|
+
.rdrCalendarWrapper{color:#000000;font-size:12px}
|
|
80
|
+
.rdrDateDisplayWrapper{background-color:rgb(239,242,247)}
|
|
81
|
+
.rdrDateDisplay{margin:.833em}
|
|
82
|
+
.rdrDateDisplayItem{border-radius:4px;background-color:rgb(255,255,255);box-shadow:0 1px 2px 0 rgba(35,57,66,.21);border:1px solid transparent}
|
|
83
|
+
.rdrDateDisplayItem input{cursor:pointer;height:2.5em;line-height:2.5em;border:0;background:transparent;width:100%;color:#849095}
|
|
84
|
+
.rdrDateDisplayItemActive{border-color:currentColor}
|
|
85
|
+
.rdrDateDisplayItemActive input{color:#7d888d}
|
|
86
|
+
.rdrMonthAndYearWrapper{align-items:center;height:60px;padding-top:10px}
|
|
87
|
+
.rdrMonthAndYearPickers{font-weight:600}
|
|
88
|
+
.rdrMonthAndYearPickers select{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:0;background:transparent;padding:10px 30px 10px 10px;border-radius:4px;outline:0;color:#3e484f;background:url("data:image/svg+xml;utf8,<svg width='9px' height='6px' viewBox='0 0 9 6' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g id='Artboard' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' transform='translate(-636.000000, -171.000000)' fill-opacity='0.368716033'><g id='input' transform='translate(172.000000, 37.000000)' fill='%230E242F' fill-rule='nonzero'><g id='Group-9' transform='translate(323.000000, 127.000000)'><path d='M142.280245,7.23952813 C141.987305,6.92353472 141.512432,6.92361662 141.219585,7.23971106 C140.926739,7.5558055 140.926815,8.06821394 141.219755,8.38420735 L145.498801,13 L149.780245,8.38162071 C150.073185,8.0656273 150.073261,7.55321886 149.780415,7.23712442 C149.487568,6.92102998 149.012695,6.92094808 148.719755,7.23694149 L145.498801,10.7113732 L142.280245,7.23952813 Z' id='arrow'></path></g></g></g></svg>") no-repeat;background-position:right 8px center;cursor:pointer;text-align:center}
|
|
89
|
+
.rdrMonthAndYearPickers select:hover{background-color:rgba(0,0,0,.07)}
|
|
90
|
+
.rdrMonthPicker,.rdrYearPicker{margin:0 5px}
|
|
91
|
+
.rdrNextPrevButton{display:block;width:24px;height:24px;margin:0 .833em;padding:0;border:0;border-radius:5px;background:#EFF2F7}
|
|
92
|
+
.rdrNextPrevButton:hover{background:#E1E7F0}
|
|
93
|
+
.rdrNextPrevButton i{display:block;width:0;height:0;padding:0;text-align:center;border-style:solid;margin:auto;transform:translate(-3px,0)}
|
|
94
|
+
.rdrPprevButton i{border-width:4px 6px 4px 4px;border-color:transparent rgb(52,73,94) transparent transparent;transform:translate(-3px,0)}
|
|
95
|
+
.rdrNextButton i{margin:0 0 0 7px;border-width:4px 4px 4px 6px;border-color:transparent transparent transparent rgb(52,73,94);transform:translate(3px,0)}
|
|
96
|
+
.rdrWeekDays{padding:0 .833em}
|
|
97
|
+
.rdrMonth{padding:0 .833em 1.666em .833em}
|
|
98
|
+
.rdrMonth .rdrWeekDays{padding:0}
|
|
99
|
+
.rdrMonths.rdrMonthsVertical .rdrMonth:first-child .rdrMonthName{display:none}
|
|
100
|
+
.rdrWeekDay{font-weight:400;line-height:2.667em;color:rgb(132,144,149)}
|
|
101
|
+
.rdrDay{background:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:0;padding:0;line-height:3em;height:3em;text-align:center;color:#1d2429}
|
|
102
|
+
.rdrDay:focus{outline:0}
|
|
103
|
+
.rdrDayNumber{outline:0;font-weight:300;position:absolute;left:0;right:0;top:5px;bottom:5px;display:flex;align-items:center;justify-content:center}
|
|
104
|
+
.rdrDayToday .rdrDayNumber span{font-weight:500}
|
|
105
|
+
.rdrDayToday .rdrDayNumber span:after{content:'';position:absolute;bottom:4px;left:50%;transform:translate(-50%,0);width:18px;height:2px;border-radius:2px;background:#3d91ff}
|
|
106
|
+
.rdrDayToday:not(.rdrDayPassive) .rdrInRange~.rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrStartEdge~.rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrEndEdge~.rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrSelected~.rdrDayNumber span:after{background:#fff}
|
|
107
|
+
.rdrDay:not(.rdrDayPassive) .rdrInRange~.rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrStartEdge~.rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrEndEdge~.rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrSelected~.rdrDayNumber span{color:rgba(255,255,255,.85)}
|
|
108
|
+
.rdrSelected,.rdrInRange,.rdrStartEdge,.rdrEndEdge{background:currentColor;position:absolute;top:5px;left:0;right:0;bottom:5px}
|
|
109
|
+
.rdrSelected{left:2px;right:2px}
|
|
110
|
+
.rdrInRange{}
|
|
111
|
+
.rdrStartEdge{border-top-left-radius:1.042em;border-bottom-left-radius:1.042em;left:2px}
|
|
112
|
+
.rdrEndEdge{border-top-right-radius:1.042em;border-bottom-right-radius:1.042em;right:2px}
|
|
113
|
+
.rdrSelected{border-radius:1.042em}
|
|
114
|
+
.rdrDayStartOfMonth .rdrInRange,.rdrDayStartOfMonth .rdrEndEdge,.rdrDayStartOfWeek .rdrInRange,.rdrDayStartOfWeek .rdrEndEdge{border-top-left-radius:1.042em;border-bottom-left-radius:1.042em;left:2px}
|
|
115
|
+
.rdrDayEndOfMonth .rdrInRange,.rdrDayEndOfMonth .rdrStartEdge,.rdrDayEndOfWeek .rdrInRange,.rdrDayEndOfWeek .rdrStartEdge{border-top-right-radius:1.042em;border-bottom-right-radius:1.042em;right:2px}
|
|
116
|
+
.rdrDayStartOfMonth .rdrDayInPreview,.rdrDayStartOfMonth .rdrDayEndPreview,.rdrDayStartOfWeek .rdrDayInPreview,.rdrDayStartOfWeek .rdrDayEndPreview{border-top-left-radius:1.333em;border-bottom-left-radius:1.333em;border-left-width:1px;left:0}
|
|
117
|
+
.rdrDayEndOfMonth .rdrDayInPreview,.rdrDayEndOfMonth .rdrDayStartPreview,.rdrDayEndOfWeek .rdrDayInPreview,.rdrDayEndOfWeek .rdrDayStartPreview{border-top-right-radius:1.333em;border-bottom-right-radius:1.333em;border-right-width:1px;right:0}
|
|
118
|
+
.rdrDayStartPreview,.rdrDayInPreview,.rdrDayEndPreview{background:rgba(255,255,255,.09);position:absolute;top:3px;left:0;right:0;bottom:3px;pointer-events:none;border:0 solid currentColor;z-index:1}
|
|
119
|
+
.rdrDayStartPreview{border-top-width:1px;border-left-width:1px;border-bottom-width:1px;border-top-left-radius:1.333em;border-bottom-left-radius:1.333em;left:0}
|
|
120
|
+
.rdrDayInPreview{border-top-width:1px;border-bottom-width:1px}
|
|
121
|
+
.rdrDayEndPreview{border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-top-right-radius:1.333em;border-bottom-right-radius:1.333em;right:0}
|
|
122
|
+
.rdrDefinedRangesWrapper{font-size:12px;width:226px;border-right:solid 1px #eff2f7;background:#fff}
|
|
123
|
+
.rdrDefinedRangesWrapper .rdrStaticRangeSelected{color:currentColor;font-weight:600}
|
|
124
|
+
.rdrStaticRange{border:0;cursor:pointer;display:block;outline:0;border-bottom:1px solid #eff2f7;padding:0;background:#fff}
|
|
125
|
+
.rdrStaticRange:hover .rdrStaticRangeLabel,.rdrStaticRange:focus .rdrStaticRangeLabel{background:#eff2f7}
|
|
126
|
+
.rdrStaticRangeLabel{display:block;outline:0;line-height:18px;padding:10px 20px;text-align:left}
|
|
127
|
+
.rdrInputRanges{padding:10px 0}
|
|
128
|
+
.rdrInputRange{align-items:center;padding:5px 20px}
|
|
129
|
+
.rdrInputRangeInput{width:30px;height:30px;line-height:30px;border-radius:4px;text-align:center;border:solid 1px rgb(222,231,235);margin-right:10px;color:rgb(108,118,122)}
|
|
130
|
+
.rdrInputRangeInput:focus,.rdrInputRangeInput:hover{border-color:rgb(180,191,196);outline:0;color:#333}
|
|
131
|
+
.rdrCalendarWrapper:not(.rdrDateRangeWrapper) .rdrDayHovered .rdrDayNumber:after{content:'';border:1px solid currentColor;border-radius:1.333em;position:absolute;top:-2px;bottom:-2px;left:0;right:0;background:transparent}
|
|
132
|
+
.rdrDayPassive{pointer-events:none}
|
|
133
|
+
.rdrDayPassive .rdrDayNumber span{color:#d5dce0}
|
|
134
|
+
.rdrDayPassive .rdrInRange,.rdrDayPassive .rdrStartEdge,.rdrDayPassive .rdrEndEdge,.rdrDayPassive .rdrSelected,.rdrDayPassive .rdrDayStartPreview,.rdrDayPassive .rdrDayInPreview,.rdrDayPassive .rdrDayEndPreview{display:none}
|
|
135
|
+
.rdrDayDisabled{background-color:rgb(248,248,248)}
|
|
136
|
+
.rdrDayDisabled .rdrDayNumber span{color:#aeb9bf}
|
|
137
|
+
.rdrDayDisabled .rdrInRange,.rdrDayDisabled .rdrStartEdge,.rdrDayDisabled .rdrEndEdge,.rdrDayDisabled .rdrSelected,.rdrDayDisabled .rdrDayStartPreview,.rdrDayDisabled .rdrDayInPreview,.rdrDayDisabled .rdrDayEndPreview{filter:grayscale(100%) opacity(60%)}
|
|
138
|
+
.rdrMonthName{text-align:left;font-weight:600;color:#849095;padding:.833em}
|
|
139
|
+
|
|
140
|
+
/* ── DateRangePicker.scss override (compiled) ── */
|
|
141
|
+
.rdrCalendarWrapper .rdrDay:not(.rdrDayPassive) .rdrInRange~.rdrDayNumber span,
|
|
142
|
+
.rdrCalendarWrapper .rdrDay:not(.rdrDayPassive) .rdrStartEdge~.rdrDayNumber span,
|
|
143
|
+
.rdrCalendarWrapper .rdrDay:not(.rdrDayPassive) .rdrEndEdge~.rdrDayNumber span,
|
|
144
|
+
.rdrCalendarWrapper .rdrDay:not(.rdrDayPassive) .rdrSelected~.rdrDayNumber span{color:#fff !important}
|
|
145
|
+
`;
|
|
146
|
+
/* ─── Singleton injection ─────────────────────────────────────────────────── */
|
|
147
|
+
let _injected = false;
|
|
148
|
+
function injectRdrStyles() {
|
|
149
|
+
if (_injected)
|
|
150
|
+
return;
|
|
151
|
+
if (typeof document === 'undefined')
|
|
152
|
+
return;
|
|
153
|
+
if (document.getElementById(STYLE_ID)) {
|
|
154
|
+
_injected = true;
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
const style = document.createElement('style');
|
|
158
|
+
style.id = STYLE_ID;
|
|
159
|
+
style.textContent = RDR_CSS;
|
|
160
|
+
document.head.appendChild(style);
|
|
161
|
+
_injected = true;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Call this hook at the top of any component that renders a `<DateRange />` calendar
|
|
165
|
+
* from `react-date-range`. The styles are injected once into `document.head` and
|
|
166
|
+
* never removed (the injection is idempotent — safe to call from multiple components).
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* const MyCalendarChip = () => {
|
|
170
|
+
* useRdrStyles();
|
|
171
|
+
* return <DateRange ... />;
|
|
172
|
+
* };
|
|
173
|
+
*/
|
|
174
|
+
function useRdrStyles() {
|
|
175
|
+
useEffect(() => {
|
|
176
|
+
injectRdrStyles();
|
|
177
|
+
}, []);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
export { useRdrStyles };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tp-react-elements",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "React form components library built with React Hook Form and Yup",
|
|
@@ -81,6 +81,7 @@
|
|
|
81
81
|
"prepublishOnly": "npm run build:lib"
|
|
82
82
|
},
|
|
83
83
|
"peerDependencies": {
|
|
84
|
+
"@tanstack/react-query": ">=5.0.0 <6.0.0",
|
|
84
85
|
"@emotion/react": ">=11.14.0 <13.0.0",
|
|
85
86
|
"@emotion/styled": ">=11.14.1 <13.0.0",
|
|
86
87
|
"@hookform/error-message": ">=2.0.1 <3.0.0",
|
|
@@ -102,6 +103,9 @@
|
|
|
102
103
|
"yup": ">=1.7.0 <2.0.0"
|
|
103
104
|
},
|
|
104
105
|
"peerDependenciesMeta": {
|
|
106
|
+
"@tanstack/react-query": {
|
|
107
|
+
"optional": true
|
|
108
|
+
},
|
|
105
109
|
"react-idle-timer": {
|
|
106
110
|
"optional": true
|
|
107
111
|
},
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { isServer } from './utils.esm.js';
|
|
2
|
-
|
|
3
|
-
// src/environmentManager.ts
|
|
4
|
-
var environmentManager = /* @__PURE__ */ (() => {
|
|
5
|
-
let isServerFn = () => isServer;
|
|
6
|
-
return {
|
|
7
|
-
/**
|
|
8
|
-
* Returns whether the current runtime should be treated as a server environment.
|
|
9
|
-
*/
|
|
10
|
-
isServer() {
|
|
11
|
-
return isServerFn();
|
|
12
|
-
},
|
|
13
|
-
/**
|
|
14
|
-
* Overrides the server check globally.
|
|
15
|
-
*/
|
|
16
|
-
setIsServer(isServerValue) {
|
|
17
|
-
isServerFn = isServerValue;
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
})();
|
|
21
|
-
|
|
22
|
-
export { environmentManager };
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { Subscribable } from './subscribable.esm.js';
|
|
2
|
-
|
|
3
|
-
// src/focusManager.ts
|
|
4
|
-
var FocusManager = class extends Subscribable {
|
|
5
|
-
#focused;
|
|
6
|
-
#cleanup;
|
|
7
|
-
#setup;
|
|
8
|
-
constructor() {
|
|
9
|
-
super();
|
|
10
|
-
this.#setup = (onFocus) => {
|
|
11
|
-
if (typeof window !== "undefined" && window.addEventListener) {
|
|
12
|
-
const listener = () => onFocus();
|
|
13
|
-
window.addEventListener("visibilitychange", listener, false);
|
|
14
|
-
return () => {
|
|
15
|
-
window.removeEventListener("visibilitychange", listener);
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
return;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
onSubscribe() {
|
|
22
|
-
if (!this.#cleanup) {
|
|
23
|
-
this.setEventListener(this.#setup);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
onUnsubscribe() {
|
|
27
|
-
if (!this.hasListeners()) {
|
|
28
|
-
this.#cleanup?.();
|
|
29
|
-
this.#cleanup = void 0;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
setEventListener(setup) {
|
|
33
|
-
this.#setup = setup;
|
|
34
|
-
this.#cleanup?.();
|
|
35
|
-
this.#cleanup = setup((focused) => {
|
|
36
|
-
if (typeof focused === "boolean") {
|
|
37
|
-
this.setFocused(focused);
|
|
38
|
-
} else {
|
|
39
|
-
this.onFocus();
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
setFocused(focused) {
|
|
44
|
-
const changed = this.#focused !== focused;
|
|
45
|
-
if (changed) {
|
|
46
|
-
this.#focused = focused;
|
|
47
|
-
this.onFocus();
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
onFocus() {
|
|
51
|
-
const isFocused = this.isFocused();
|
|
52
|
-
this.listeners.forEach((listener) => {
|
|
53
|
-
listener(isFocused);
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
isFocused() {
|
|
57
|
-
if (typeof this.#focused === "boolean") {
|
|
58
|
-
return this.#focused;
|
|
59
|
-
}
|
|
60
|
-
return globalThis.document?.visibilityState !== "hidden";
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
var focusManager = new FocusManager();
|
|
64
|
-
|
|
65
|
-
export { FocusManager, focusManager };
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { systemSetTimeoutZero } from './timeoutManager.esm.js';
|
|
2
|
-
|
|
3
|
-
// src/notifyManager.ts
|
|
4
|
-
var defaultScheduler = systemSetTimeoutZero;
|
|
5
|
-
function createNotifyManager() {
|
|
6
|
-
let queue = [];
|
|
7
|
-
let transactions = 0;
|
|
8
|
-
let notifyFn = (callback) => {
|
|
9
|
-
callback();
|
|
10
|
-
};
|
|
11
|
-
let batchNotifyFn = (callback) => {
|
|
12
|
-
callback();
|
|
13
|
-
};
|
|
14
|
-
let scheduleFn = defaultScheduler;
|
|
15
|
-
const schedule = (callback) => {
|
|
16
|
-
if (transactions) {
|
|
17
|
-
queue.push(callback);
|
|
18
|
-
} else {
|
|
19
|
-
scheduleFn(() => {
|
|
20
|
-
notifyFn(callback);
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
const flush = () => {
|
|
25
|
-
const originalQueue = queue;
|
|
26
|
-
queue = [];
|
|
27
|
-
if (originalQueue.length) {
|
|
28
|
-
scheduleFn(() => {
|
|
29
|
-
batchNotifyFn(() => {
|
|
30
|
-
originalQueue.forEach((callback) => {
|
|
31
|
-
notifyFn(callback);
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
return {
|
|
38
|
-
batch: (callback) => {
|
|
39
|
-
let result;
|
|
40
|
-
transactions++;
|
|
41
|
-
try {
|
|
42
|
-
result = callback();
|
|
43
|
-
} finally {
|
|
44
|
-
transactions--;
|
|
45
|
-
if (!transactions) {
|
|
46
|
-
flush();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return result;
|
|
50
|
-
},
|
|
51
|
-
/**
|
|
52
|
-
* All calls to the wrapped function will be batched.
|
|
53
|
-
*/
|
|
54
|
-
batchCalls: (callback) => {
|
|
55
|
-
return (...args) => {
|
|
56
|
-
schedule(() => {
|
|
57
|
-
callback(...args);
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
},
|
|
61
|
-
schedule,
|
|
62
|
-
/**
|
|
63
|
-
* Use this method to set a custom notify function.
|
|
64
|
-
* This can be used to for example wrap notifications with `React.act` while running tests.
|
|
65
|
-
*/
|
|
66
|
-
setNotifyFunction: (fn) => {
|
|
67
|
-
notifyFn = fn;
|
|
68
|
-
},
|
|
69
|
-
/**
|
|
70
|
-
* Use this method to set a custom function to batch notifications together into a single tick.
|
|
71
|
-
* By default React Query will use the batch function provided by ReactDOM or React Native.
|
|
72
|
-
*/
|
|
73
|
-
setBatchNotifyFunction: (fn) => {
|
|
74
|
-
batchNotifyFn = fn;
|
|
75
|
-
},
|
|
76
|
-
setScheduler: (fn) => {
|
|
77
|
-
scheduleFn = fn;
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
var notifyManager = createNotifyManager();
|
|
82
|
-
|
|
83
|
-
export { createNotifyManager, defaultScheduler, notifyManager };
|