@cwncollab-org/mui-component-kit 0.4.2 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +118 -54
- package/dist/form/MaskedInput.d.ts +95 -10
- package/dist/form/MaskedInput.d.ts.map +1 -1
- package/dist/form/MaskedInput.js +4 -13
- package/dist/form/MaskedInput.js.map +1 -1
- package/dist/form/MaskedInputAdapter.d.ts +96 -0
- package/dist/form/MaskedInputAdapter.d.ts.map +1 -0
- package/dist/form/MaskedInputAdapter.js +10 -0
- package/dist/form/MaskedInputAdapter.js.map +1 -0
- package/dist/form/MaskedTextField.d.ts +2 -7
- package/dist/form/MaskedTextField.d.ts.map +1 -1
- package/dist/form/MaskedTextField.js +3 -14
- package/dist/form/MaskedTextField.js.map +1 -1
- package/dist/form/index.d.ts +1 -0
- package/dist/form/index.d.ts.map +1 -1
- package/dist/form/index.js +1 -0
- package/dist/form/index.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/layout/AppBar.d.ts +0 -20
- package/dist/layout/AppBar.d.ts.map +0 -1
- package/dist/layout/AppBar.js +0 -17
- package/dist/layout/AppBar.js.map +0 -1
- package/dist/layout/AppBarMenu.d.ts +0 -12
- package/dist/layout/AppBarMenu.d.ts.map +0 -1
- package/dist/layout/AppBarMenu.js +0 -26
- package/dist/layout/AppBarMenu.js.map +0 -1
- package/dist/layout/AppLayout.d.ts +0 -23
- package/dist/layout/AppLayout.d.ts.map +0 -1
- package/dist/layout/AppLayout.js +0 -71
- package/dist/layout/AppLayout.js.map +0 -1
- package/dist/layout/index.d.ts +0 -4
- package/dist/layout/index.d.ts.map +0 -1
- package/dist/layout/index.js +0 -3
- package/dist/layout/index.js.map +0 -1
- package/dist/layout/types.d.ts +0 -11
- package/dist/layout/types.d.ts.map +0 -1
- package/dist/layout/types.js +0 -2
- package/dist/layout/types.js.map +0 -1
- package/dist/tabs/removeTrailingSlash.d.ts +0 -7
- package/dist/tabs/removeTrailingSlash.d.ts.map +0 -1
- package/dist/tabs/removeTrailingSlash.js +0 -9
- package/dist/tabs/removeTrailingSlash.js.map +0 -1
- package/dist/tabs/removeTrailingSlash.test.d.ts +0 -2
- package/dist/tabs/removeTrailingSlash.test.d.ts.map +0 -1
- package/dist/tabs/removeTrailingSlash.test.js +0 -19
- package/dist/tabs/removeTrailingSlash.test.js.map +0 -1
- package/dist/tabs/routerTabHooks.d.ts +0 -2
- package/dist/tabs/routerTabHooks.d.ts.map +0 -1
- package/dist/tabs/routerTabHooks.js +0 -9
- package/dist/tabs/routerTabHooks.js.map +0 -1
package/README.md
CHANGED
|
@@ -719,6 +719,8 @@ The RadioGroup component also accepts all standard MUI RadioGroup props except `
|
|
|
719
719
|
|
|
720
720
|
The MaskedTextField component provides input masking functionality, built on top of MUI's TextField component and `react-imask` library, integrated with TanStack Form. This component is useful for formatting user input such as phone numbers, credit card numbers, social security numbers, and other structured data.
|
|
721
721
|
|
|
722
|
+
The component now supports the full `react-imask` API, allowing for advanced masking patterns including custom definitions, blocks, regular expressions, and more complex validation patterns.
|
|
723
|
+
|
|
722
724
|
```tsx
|
|
723
725
|
import { useAppForm } from '@cwncollab-org/component-kit'
|
|
724
726
|
import { z } from 'zod'
|
|
@@ -751,7 +753,7 @@ function MyForm() {
|
|
|
751
753
|
|
|
752
754
|
return (
|
|
753
755
|
<>
|
|
754
|
-
{/*
|
|
756
|
+
{/* Basic phone number mask */}
|
|
755
757
|
<form.AppField
|
|
756
758
|
name="phone"
|
|
757
759
|
children={field => (
|
|
@@ -796,20 +798,6 @@ function MyForm() {
|
|
|
796
798
|
)}
|
|
797
799
|
/>
|
|
798
800
|
|
|
799
|
-
{/* ZIP Code mask */}
|
|
800
|
-
<form.AppField
|
|
801
|
-
name="zipCode"
|
|
802
|
-
children={field => (
|
|
803
|
-
<field.MaskedTextField
|
|
804
|
-
mask="00000"
|
|
805
|
-
label="ZIP Code"
|
|
806
|
-
labelBehavior="shrink"
|
|
807
|
-
size="small"
|
|
808
|
-
placeholder="12345"
|
|
809
|
-
/>
|
|
810
|
-
)}
|
|
811
|
-
/>
|
|
812
|
-
|
|
813
801
|
{/* Date mask */}
|
|
814
802
|
<form.AppField
|
|
815
803
|
name="date"
|
|
@@ -846,16 +834,22 @@ function MyForm() {
|
|
|
846
834
|
|
|
847
835
|
#### Advanced Masking Examples
|
|
848
836
|
|
|
837
|
+
The MaskedTextField component now supports advanced react-imask features including custom definitions, blocks, regular expressions, and complex validation patterns:
|
|
838
|
+
|
|
849
839
|
```tsx
|
|
850
|
-
|
|
840
|
+
import { useAppForm } from '@cwncollab-org/component-kit'
|
|
841
|
+
import { IMask } from 'react-imask'
|
|
842
|
+
import { z } from 'zod'
|
|
843
|
+
|
|
844
|
+
// Advanced masking patterns using react-imask features
|
|
851
845
|
function AdvancedMaskingExamples() {
|
|
852
846
|
const form = useAppForm({
|
|
853
847
|
defaultValues: {
|
|
854
|
-
|
|
848
|
+
productCode: '',
|
|
849
|
+
email: '',
|
|
850
|
+
serialNumber: '',
|
|
851
|
+
dateRange: '',
|
|
855
852
|
time: '',
|
|
856
|
-
currency: '',
|
|
857
|
-
alphanumeric: '',
|
|
858
|
-
ipAddress: '',
|
|
859
853
|
},
|
|
860
854
|
onSubmit: ({ value }) => {
|
|
861
855
|
console.log('Advanced mask values:', value)
|
|
@@ -864,60 +858,121 @@ function AdvancedMaskingExamples() {
|
|
|
864
858
|
|
|
865
859
|
return (
|
|
866
860
|
<>
|
|
867
|
-
{/*
|
|
861
|
+
{/* Custom definitions for product codes */}
|
|
868
862
|
<form.AppField
|
|
869
|
-
name="
|
|
863
|
+
name="productCode"
|
|
870
864
|
children={field => (
|
|
871
865
|
<field.MaskedTextField
|
|
872
|
-
mask="
|
|
873
|
-
|
|
866
|
+
mask="AA-####-**"
|
|
867
|
+
definitions={{
|
|
868
|
+
A: /[A-Z]/, // Uppercase letters only
|
|
869
|
+
'#': /[1-9]/, // Digits 1-9 only
|
|
870
|
+
'*': /[A-Z0-9]/, // Alphanumeric uppercase
|
|
871
|
+
}}
|
|
872
|
+
label="Product Code"
|
|
874
873
|
labelBehavior="shrink"
|
|
875
874
|
size="small"
|
|
876
875
|
fullWidth
|
|
877
|
-
placeholder="
|
|
876
|
+
placeholder="AB-1234-CD"
|
|
878
877
|
/>
|
|
879
878
|
)}
|
|
880
879
|
/>
|
|
881
880
|
|
|
882
|
-
{/*
|
|
881
|
+
{/* Email validation with regex pattern */}
|
|
883
882
|
<form.AppField
|
|
884
|
-
name="
|
|
883
|
+
name="email"
|
|
885
884
|
children={field => (
|
|
886
885
|
<field.MaskedTextField
|
|
887
|
-
mask=
|
|
888
|
-
label="
|
|
886
|
+
mask={/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/}
|
|
887
|
+
label="Email with Pattern Validation"
|
|
889
888
|
labelBehavior="shrink"
|
|
890
889
|
size="small"
|
|
891
|
-
|
|
890
|
+
fullWidth
|
|
891
|
+
placeholder="user@example.com"
|
|
892
892
|
/>
|
|
893
893
|
)}
|
|
894
894
|
/>
|
|
895
895
|
|
|
896
|
-
{/*
|
|
896
|
+
{/* Serial number with mixed definitions */}
|
|
897
897
|
<form.AppField
|
|
898
|
-
name="
|
|
898
|
+
name="serialNumber"
|
|
899
899
|
children={field => (
|
|
900
900
|
<field.MaskedTextField
|
|
901
|
-
mask="
|
|
902
|
-
|
|
901
|
+
mask="SN-LLLNNN-CCC"
|
|
902
|
+
definitions={{
|
|
903
|
+
L: /[A-Z]/, // Letters
|
|
904
|
+
N: /[0-9]/, // Numbers
|
|
905
|
+
C: /[A-Z0-9]/, // Alphanumeric
|
|
906
|
+
}}
|
|
907
|
+
label="Serial Number"
|
|
903
908
|
labelBehavior="shrink"
|
|
904
909
|
size="small"
|
|
905
|
-
|
|
910
|
+
fullWidth
|
|
911
|
+
placeholder="SN-ABC123-XYZ"
|
|
906
912
|
/>
|
|
907
913
|
)}
|
|
908
914
|
/>
|
|
909
915
|
|
|
910
|
-
{/*
|
|
916
|
+
{/* Date range with blocks (advanced pattern) */}
|
|
911
917
|
<form.AppField
|
|
912
|
-
name="
|
|
918
|
+
name="dateRange"
|
|
913
919
|
children={field => (
|
|
914
920
|
<field.MaskedTextField
|
|
915
|
-
mask=
|
|
916
|
-
|
|
921
|
+
mask={Date}
|
|
922
|
+
pattern="d{/}`m{/}`Y - d{/}`m{/}`Y*"
|
|
923
|
+
blocks={{
|
|
924
|
+
d: {
|
|
925
|
+
mask: IMask.MaskedRange,
|
|
926
|
+
from: 1,
|
|
927
|
+
to: 31,
|
|
928
|
+
maxLength: 2,
|
|
929
|
+
},
|
|
930
|
+
m: {
|
|
931
|
+
mask: IMask.MaskedRange,
|
|
932
|
+
from: 1,
|
|
933
|
+
to: 12,
|
|
934
|
+
maxLength: 2,
|
|
935
|
+
},
|
|
936
|
+
Y: {
|
|
937
|
+
mask: IMask.MaskedRange,
|
|
938
|
+
from: 1900,
|
|
939
|
+
to: 9999,
|
|
940
|
+
maxLength: 4,
|
|
941
|
+
},
|
|
942
|
+
}}
|
|
943
|
+
label="Date Range"
|
|
917
944
|
labelBehavior="shrink"
|
|
918
945
|
size="small"
|
|
919
946
|
fullWidth
|
|
920
|
-
placeholder="
|
|
947
|
+
placeholder="DD/MM/YYYY - DD/MM/YYYY"
|
|
948
|
+
/>
|
|
949
|
+
)}
|
|
950
|
+
/>
|
|
951
|
+
|
|
952
|
+
{/* Time format with validation */}
|
|
953
|
+
<form.AppField
|
|
954
|
+
name="time"
|
|
955
|
+
children={field => (
|
|
956
|
+
<field.MaskedTextField
|
|
957
|
+
mask="HH:MM"
|
|
958
|
+
blocks={{
|
|
959
|
+
HH: {
|
|
960
|
+
mask: IMask.MaskedRange,
|
|
961
|
+
from: 0,
|
|
962
|
+
to: 23,
|
|
963
|
+
maxLength: 2,
|
|
964
|
+
},
|
|
965
|
+
MM: {
|
|
966
|
+
mask: IMask.MaskedRange,
|
|
967
|
+
from: 0,
|
|
968
|
+
to: 59,
|
|
969
|
+
maxLength: 2,
|
|
970
|
+
},
|
|
971
|
+
}}
|
|
972
|
+
label="Time (24h format)"
|
|
973
|
+
labelBehavior="shrink"
|
|
974
|
+
size="small"
|
|
975
|
+
placeholder="14:30"
|
|
921
976
|
/>
|
|
922
977
|
)}
|
|
923
978
|
/>
|
|
@@ -928,9 +983,16 @@ function AdvancedMaskingExamples() {
|
|
|
928
983
|
|
|
929
984
|
#### MaskedTextField Props
|
|
930
985
|
|
|
986
|
+
The MaskedTextField component accepts all `react-imask` options as props, providing full access to the masking library's capabilities:
|
|
987
|
+
|
|
931
988
|
| Prop | Type | Default | Description |
|
|
932
989
|
|------|------|---------|-------------|
|
|
933
|
-
| `mask` | `
|
|
990
|
+
| `mask` | `ReactMaskOpts['mask']` | - | The mask pattern - can be string, RegExp, function, or IMask class |
|
|
991
|
+
| `definitions` | `ReactMaskOpts['definitions']` | - | Custom character definitions for the mask pattern |
|
|
992
|
+
| `blocks` | `ReactMaskOpts['blocks']` | - | Block definitions for complex patterns with validation |
|
|
993
|
+
| `pattern` | `ReactMaskOpts['pattern']` | - | Pattern string when using blocks |
|
|
994
|
+
| `lazy` | `ReactMaskOpts['lazy']` | - | Show placeholder and fixed characters only on focus |
|
|
995
|
+
| `placeholderChar` | `ReactMaskOpts['placeholderChar']` | - | Character to show for unfilled mask positions |
|
|
934
996
|
| `label` | `string` | - | The label text for the text field |
|
|
935
997
|
| `labelBehavior` | `'auto' \| 'shrink' \| 'static'` | `'auto'` | How the label should behave |
|
|
936
998
|
| `size` | `'small' \| 'medium'` | `'medium'` | The size of the text field |
|
|
@@ -940,31 +1002,33 @@ function AdvancedMaskingExamples() {
|
|
|
940
1002
|
| `required` | `boolean` | `false` | Whether the text field is required |
|
|
941
1003
|
| `slotProps` | `object` | - | Props for underlying MUI components |
|
|
942
1004
|
|
|
943
|
-
The MaskedTextField component accepts all standard MUI TextField props and
|
|
1005
|
+
The MaskedTextField component accepts all standard MUI TextField props and all `react-imask` options, providing full flexibility for complex masking scenarios.
|
|
944
1006
|
|
|
945
|
-
**Mask Patterns:**
|
|
1007
|
+
**Basic Mask Patterns:**
|
|
946
1008
|
- `0` - any digit (0-9)
|
|
947
|
-
- `a` - any letter (a-z, A-Z)
|
|
1009
|
+
- `a` - any letter (a-z, A-Z)
|
|
948
1010
|
- `*` - any character
|
|
949
|
-
- `[]` - make input optional
|
|
1011
|
+
- `[]` - make input optional
|
|
950
1012
|
- `{}` - include fixed part in unmasked value
|
|
951
|
-
-
|
|
952
|
-
|
|
1013
|
+
- `\` - escape character
|
|
1014
|
+
|
|
1015
|
+
**Advanced Features:**
|
|
1016
|
+
- **Custom Definitions**: Define your own character patterns using regular expressions
|
|
1017
|
+
- **Blocks**: Create complex validated input segments (like date ranges, time validation)
|
|
1018
|
+
- **Regular Expressions**: Use regex patterns for complex validation rules
|
|
1019
|
+
- **IMask Classes**: Access to all IMask functionality including MaskedRange, MaskedDate, etc.
|
|
1020
|
+
- **Dynamic Masking**: Conditional masks based on input content
|
|
953
1021
|
|
|
954
1022
|
**Label Behaviors:**
|
|
955
1023
|
- `'auto'`: Default MUI behavior - label floats when focused or has value
|
|
956
|
-
- `'shrink'`: Label is always in the shrunk (floating) position
|
|
1024
|
+
- `'shrink'`: Label is always in the shrunk (floating) position
|
|
957
1025
|
- `'static'`: Label appears as a static label above the input
|
|
958
1026
|
|
|
959
|
-
**Advanced Masking:**
|
|
960
|
-
The current MaskedTextField component supports basic mask patterns. For more advanced masking scenarios like currency formatting, custom validation, or nested patterns with custom definitions and blocks, you would need to extend the component or use IMask directly.
|
|
961
|
-
|
|
962
|
-
**Available Mask Patterns:**
|
|
963
|
-
The component currently supports simple string patterns where each character in the mask string represents a constraint for the corresponding input character.
|
|
964
|
-
|
|
965
1027
|
**SubscribeMaskedTextField:**
|
|
966
1028
|
The `SubscribeMaskedTextField` component has the same props as `MaskedTextField` but automatically disables the field when the form is submitting, providing better UX during form submission.
|
|
967
1029
|
|
|
1030
|
+
For more advanced masking scenarios, refer to the [react-imask documentation](https://imask.js.org/) as the MaskedTextField component provides full access to all react-imask features.
|
|
1031
|
+
|
|
968
1032
|
|
|
969
1033
|
### Router Tabs
|
|
970
1034
|
|
|
@@ -1,11 +1,96 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
1
|
+
import { ReactMaskOpts } from 'react-imask';
|
|
2
|
+
import { InputProps as MuiInputProps } from '@mui/material';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
export type MaskedInputProps = MuiInputProps & ReactMaskOpts;
|
|
5
|
+
export declare const MaskedInput: React.ForwardRefExoticComponent<(Omit<MuiInputProps & Omit<import("imask").MaskedDateOptions, "mask"> & {
|
|
6
|
+
mask: DateConstructor;
|
|
7
|
+
} & {
|
|
8
|
+
unmask?: "typed" | boolean;
|
|
9
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
10
|
+
mask: typeof import("imask").MaskedDate;
|
|
11
|
+
} & Omit<Omit<import("imask").MaskedDateOptions, "mask"> & {
|
|
12
|
+
mask: DateConstructor;
|
|
13
|
+
}, "mask"> & {
|
|
14
|
+
unmask?: "typed" | boolean;
|
|
15
|
+
}, "ref"> | Omit<MuiInputProps & Partial<Pick<import("imask").MaskedNumber, "mask" | "scale" | "max" | "min" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "radix" | "thousandsSeparator" | "mapToRadix" | "normalizeZeros" | "padFractionalZeros">> & {
|
|
16
|
+
unmask?: "typed" | boolean;
|
|
17
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
18
|
+
mask: typeof import("imask").MaskedNumber;
|
|
19
|
+
} & Omit<Partial<Pick<import("imask").MaskedNumber, "mask" | "scale" | "max" | "min" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "radix" | "thousandsSeparator" | "mapToRadix" | "normalizeZeros" | "padFractionalZeros">>, "mask"> & {
|
|
20
|
+
unmask?: "typed" | boolean;
|
|
21
|
+
}, "ref"> | Omit<MuiInputProps & Partial<Pick<import("imask").MaskedPattern<string>, "mask" | "format" | "eager" | "lazy" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "definitions" | "blocks" | "placeholderChar" | "displayChar">> & {
|
|
22
|
+
unmask?: "typed" | boolean;
|
|
23
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
24
|
+
mask: typeof import("imask").MaskedEnum;
|
|
25
|
+
} & Omit<import("imask").MaskedEnumOptions, "mask"> & {
|
|
26
|
+
unmask?: "typed" | boolean;
|
|
27
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
28
|
+
mask: typeof import("imask").MaskedRange;
|
|
29
|
+
} & Omit<import("imask").MaskedRangeOptions, "mask"> & {
|
|
30
|
+
unmask?: "typed" | boolean;
|
|
31
|
+
}, "ref"> | Omit<MuiInputProps & Partial<Pick<import("imask").MaskedRegExp, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">> & {
|
|
32
|
+
unmask?: "typed" | boolean;
|
|
33
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
34
|
+
mask: typeof import("imask").MaskedRegExp;
|
|
35
|
+
} & Omit<Partial<Pick<import("imask").MaskedRegExp, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">>, "mask"> & {
|
|
36
|
+
unmask?: "typed" | boolean;
|
|
37
|
+
}, "ref"> | Omit<MuiInputProps & Partial<Pick<import("imask").MaskedFunction<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">> & {
|
|
38
|
+
unmask?: "typed" | boolean;
|
|
39
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
40
|
+
mask: typeof import("imask").MaskedFunction;
|
|
41
|
+
} & Omit<Partial<Pick<import("imask").MaskedFunction<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">>, "mask"> & {
|
|
42
|
+
unmask?: "typed" | boolean;
|
|
43
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
44
|
+
mask: typeof import("imask").MaskedPattern;
|
|
45
|
+
} & Omit<Partial<Pick<import("imask").MaskedPattern<string>, "mask" | "format" | "eager" | "lazy" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "definitions" | "blocks" | "placeholderChar" | "displayChar">>, "mask"> & {
|
|
46
|
+
unmask?: "typed" | boolean;
|
|
47
|
+
}, "ref"> | Omit<MuiInputProps & Partial<Pick<import("imask").MaskedDynamic<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "dispatch">> & {
|
|
48
|
+
unmask?: "typed" | boolean;
|
|
49
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
50
|
+
mask: typeof import("imask").MaskedDynamic;
|
|
51
|
+
} & Omit<Partial<Pick<import("imask").MaskedDynamic<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "dispatch">>, "mask"> & {
|
|
52
|
+
unmask?: "typed" | boolean;
|
|
53
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
54
|
+
mask: typeof import("imask").Masked;
|
|
55
|
+
} & Omit<Partial<Pick<import("imask").Masked<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">>, "mask"> & {
|
|
56
|
+
unmask?: "typed" | boolean;
|
|
57
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
58
|
+
mask: import("imask").MaskedDate;
|
|
59
|
+
} & Omit<Omit<import("imask").MaskedDateOptions, "mask"> & {
|
|
60
|
+
mask: DateConstructor;
|
|
61
|
+
}, "mask"> & {
|
|
62
|
+
unmask?: "typed" | boolean;
|
|
63
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
64
|
+
mask: import("imask").MaskedNumber;
|
|
65
|
+
} & Omit<Partial<Pick<import("imask").MaskedNumber, "mask" | "scale" | "max" | "min" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "radix" | "thousandsSeparator" | "mapToRadix" | "normalizeZeros" | "padFractionalZeros">>, "mask"> & {
|
|
66
|
+
unmask?: "typed" | boolean;
|
|
67
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
68
|
+
mask: import("imask").MaskedEnum;
|
|
69
|
+
} & Omit<import("imask").MaskedEnumOptions, "mask"> & {
|
|
70
|
+
unmask?: "typed" | boolean;
|
|
71
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
72
|
+
mask: import("imask").MaskedRange;
|
|
73
|
+
} & Omit<import("imask").MaskedRangeOptions, "mask"> & {
|
|
74
|
+
unmask?: "typed" | boolean;
|
|
75
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
76
|
+
mask: import("imask").MaskedRegExp;
|
|
77
|
+
} & Omit<Partial<Pick<import("imask").MaskedRegExp, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">>, "mask"> & {
|
|
78
|
+
unmask?: "typed" | boolean;
|
|
79
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
80
|
+
mask: import("imask").MaskedFunction;
|
|
81
|
+
} & Omit<Partial<Pick<import("imask").MaskedFunction<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">>, "mask"> & {
|
|
82
|
+
unmask?: "typed" | boolean;
|
|
83
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
84
|
+
mask: import("imask").MaskedPattern;
|
|
85
|
+
} & Omit<Partial<Pick<import("imask").MaskedPattern<string>, "mask" | "format" | "eager" | "lazy" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "definitions" | "blocks" | "placeholderChar" | "displayChar">>, "mask"> & {
|
|
86
|
+
unmask?: "typed" | boolean;
|
|
87
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
88
|
+
mask: import("imask").MaskedDynamic;
|
|
89
|
+
} & Omit<Partial<Pick<import("imask").MaskedDynamic<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "dispatch">>, "mask"> & {
|
|
90
|
+
unmask?: "typed" | boolean;
|
|
91
|
+
}, "ref"> | Omit<MuiInputProps & {
|
|
92
|
+
mask: import("imask").Masked;
|
|
93
|
+
} & Omit<Partial<Pick<import("imask").Masked<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">>, "mask"> & {
|
|
94
|
+
unmask?: "typed" | boolean;
|
|
95
|
+
}, "ref">) & React.RefAttributes<HTMLInputElement>>;
|
|
11
96
|
//# sourceMappingURL=MaskedInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaskedInput.d.ts","sourceRoot":"","sources":["../../src/lib/form/MaskedInput.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"MaskedInput.d.ts","sourceRoot":"","sources":["../../src/lib/form/MaskedInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,UAAU,IAAI,aAAa,EAAqB,MAAM,eAAe,CAAA;AAK9E,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,aAAa,CAAA;AAE5D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mDAcvB,CAAA"}
|
package/dist/form/MaskedInput.js
CHANGED
|
@@ -1,18 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { IMaskInput } from 'react-imask';
|
|
3
2
|
import { Input as MuiInput } from '@mui/material';
|
|
3
|
+
import { MaskedInputAdapter, } from './MaskedInputAdapter';
|
|
4
4
|
import React from 'react';
|
|
5
|
-
const
|
|
6
|
-
const { onChange, ...
|
|
7
|
-
return (_jsx(
|
|
5
|
+
export const MaskedInput = React.forwardRef((props, ref) => {
|
|
6
|
+
const { value, onChange, ...inputProps } = props;
|
|
7
|
+
return (_jsx(MuiInput, { ref: ref, value: value, onChange: onChange, inputComponent: MaskedInputAdapter, inputProps: inputProps }));
|
|
8
8
|
});
|
|
9
|
-
export function MaskedInput(props) {
|
|
10
|
-
const { mask, value, onChange, definitions, blocks, pattern } = props;
|
|
11
|
-
return (_jsx(MuiInput, { value: value, onChange: e => onChange?.(e.target.value), name: 'maskedInput', inputComponent: TextMaskCustom, inputProps: {
|
|
12
|
-
mask: mask,
|
|
13
|
-
definitions: definitions,
|
|
14
|
-
blocks: blocks,
|
|
15
|
-
pattern: pattern,
|
|
16
|
-
} }));
|
|
17
|
-
}
|
|
18
9
|
//# sourceMappingURL=MaskedInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaskedInput.js","sourceRoot":"","sources":["../../src/lib/form/MaskedInput.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"MaskedInput.js","sourceRoot":"","sources":["../../src/lib/form/MaskedInput.tsx"],"names":[],"mappings":";AACA,OAAO,EAA+B,KAAK,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EACL,kBAAkB,GAEnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CACzC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACb,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAA;IAEhD,OAAO,CACL,KAAC,QAAQ,IACP,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,kBAAkB,EAClC,UAAU,EAAE,UAAqC,GACjD,CACH,CAAA;AACH,CAAC,CACF,CAAA"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { InputBaseComponentProps as MuiInputBaseComponentProps } from '@mui/material';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ReactMaskOpts } from 'react-imask';
|
|
4
|
+
export type MaskedInputAdapterProps = MuiInputBaseComponentProps & ReactMaskOpts;
|
|
5
|
+
export declare const MaskedInputAdapter: React.ForwardRefExoticComponent<(Omit<MuiInputBaseComponentProps & Omit<import("imask").MaskedDateOptions, "mask"> & {
|
|
6
|
+
mask: DateConstructor;
|
|
7
|
+
} & {
|
|
8
|
+
unmask?: "typed" | boolean;
|
|
9
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
10
|
+
mask: typeof import("imask").MaskedDate;
|
|
11
|
+
} & Omit<Omit<import("imask").MaskedDateOptions, "mask"> & {
|
|
12
|
+
mask: DateConstructor;
|
|
13
|
+
}, "mask"> & {
|
|
14
|
+
unmask?: "typed" | boolean;
|
|
15
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & Partial<Pick<import("imask").MaskedNumber, "mask" | "scale" | "max" | "min" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "radix" | "thousandsSeparator" | "mapToRadix" | "normalizeZeros" | "padFractionalZeros">> & {
|
|
16
|
+
unmask?: "typed" | boolean;
|
|
17
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
18
|
+
mask: typeof import("imask").MaskedNumber;
|
|
19
|
+
} & Omit<Partial<Pick<import("imask").MaskedNumber, "mask" | "scale" | "max" | "min" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "radix" | "thousandsSeparator" | "mapToRadix" | "normalizeZeros" | "padFractionalZeros">>, "mask"> & {
|
|
20
|
+
unmask?: "typed" | boolean;
|
|
21
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & Partial<Pick<import("imask").MaskedPattern<string>, "mask" | "format" | "eager" | "lazy" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "definitions" | "blocks" | "placeholderChar" | "displayChar">> & {
|
|
22
|
+
unmask?: "typed" | boolean;
|
|
23
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
24
|
+
mask: typeof import("imask").MaskedEnum;
|
|
25
|
+
} & Omit<import("imask").MaskedEnumOptions, "mask"> & {
|
|
26
|
+
unmask?: "typed" | boolean;
|
|
27
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
28
|
+
mask: typeof import("imask").MaskedRange;
|
|
29
|
+
} & Omit<import("imask").MaskedRangeOptions, "mask"> & {
|
|
30
|
+
unmask?: "typed" | boolean;
|
|
31
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & Partial<Pick<import("imask").MaskedRegExp, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">> & {
|
|
32
|
+
unmask?: "typed" | boolean;
|
|
33
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
34
|
+
mask: typeof import("imask").MaskedRegExp;
|
|
35
|
+
} & Omit<Partial<Pick<import("imask").MaskedRegExp, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">>, "mask"> & {
|
|
36
|
+
unmask?: "typed" | boolean;
|
|
37
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & Partial<Pick<import("imask").MaskedFunction<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">> & {
|
|
38
|
+
unmask?: "typed" | boolean;
|
|
39
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
40
|
+
mask: typeof import("imask").MaskedFunction;
|
|
41
|
+
} & Omit<Partial<Pick<import("imask").MaskedFunction<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">>, "mask"> & {
|
|
42
|
+
unmask?: "typed" | boolean;
|
|
43
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
44
|
+
mask: typeof import("imask").MaskedPattern;
|
|
45
|
+
} & Omit<Partial<Pick<import("imask").MaskedPattern<string>, "mask" | "format" | "eager" | "lazy" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "definitions" | "blocks" | "placeholderChar" | "displayChar">>, "mask"> & {
|
|
46
|
+
unmask?: "typed" | boolean;
|
|
47
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & Partial<Pick<import("imask").MaskedDynamic<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "dispatch">> & {
|
|
48
|
+
unmask?: "typed" | boolean;
|
|
49
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
50
|
+
mask: typeof import("imask").MaskedDynamic;
|
|
51
|
+
} & Omit<Partial<Pick<import("imask").MaskedDynamic<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "dispatch">>, "mask"> & {
|
|
52
|
+
unmask?: "typed" | boolean;
|
|
53
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
54
|
+
mask: typeof import("imask").Masked;
|
|
55
|
+
} & Omit<Partial<Pick<import("imask").Masked<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">>, "mask"> & {
|
|
56
|
+
unmask?: "typed" | boolean;
|
|
57
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
58
|
+
mask: import("imask").MaskedDate;
|
|
59
|
+
} & Omit<Omit<import("imask").MaskedDateOptions, "mask"> & {
|
|
60
|
+
mask: DateConstructor;
|
|
61
|
+
}, "mask"> & {
|
|
62
|
+
unmask?: "typed" | boolean;
|
|
63
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
64
|
+
mask: import("imask").MaskedNumber;
|
|
65
|
+
} & Omit<Partial<Pick<import("imask").MaskedNumber, "mask" | "scale" | "max" | "min" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "radix" | "thousandsSeparator" | "mapToRadix" | "normalizeZeros" | "padFractionalZeros">>, "mask"> & {
|
|
66
|
+
unmask?: "typed" | boolean;
|
|
67
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
68
|
+
mask: import("imask").MaskedEnum;
|
|
69
|
+
} & Omit<import("imask").MaskedEnumOptions, "mask"> & {
|
|
70
|
+
unmask?: "typed" | boolean;
|
|
71
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
72
|
+
mask: import("imask").MaskedRange;
|
|
73
|
+
} & Omit<import("imask").MaskedRangeOptions, "mask"> & {
|
|
74
|
+
unmask?: "typed" | boolean;
|
|
75
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
76
|
+
mask: import("imask").MaskedRegExp;
|
|
77
|
+
} & Omit<Partial<Pick<import("imask").MaskedRegExp, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">>, "mask"> & {
|
|
78
|
+
unmask?: "typed" | boolean;
|
|
79
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
80
|
+
mask: import("imask").MaskedFunction;
|
|
81
|
+
} & Omit<Partial<Pick<import("imask").MaskedFunction<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">>, "mask"> & {
|
|
82
|
+
unmask?: "typed" | boolean;
|
|
83
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
84
|
+
mask: import("imask").MaskedPattern;
|
|
85
|
+
} & Omit<Partial<Pick<import("imask").MaskedPattern<string>, "mask" | "format" | "eager" | "lazy" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "definitions" | "blocks" | "placeholderChar" | "displayChar">>, "mask"> & {
|
|
86
|
+
unmask?: "typed" | boolean;
|
|
87
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
88
|
+
mask: import("imask").MaskedDynamic;
|
|
89
|
+
} & Omit<Partial<Pick<import("imask").MaskedDynamic<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix" | "dispatch">>, "mask"> & {
|
|
90
|
+
unmask?: "typed" | boolean;
|
|
91
|
+
}, "ref"> | Omit<MuiInputBaseComponentProps & {
|
|
92
|
+
mask: import("imask").Masked;
|
|
93
|
+
} & Omit<Partial<Pick<import("imask").Masked<any>, "mask" | "format" | "eager" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "parse" | "overwrite" | "skipInvalid" | "autofix">>, "mask"> & {
|
|
94
|
+
unmask?: "typed" | boolean;
|
|
95
|
+
}, "ref">) & React.RefAttributes<HTMLInputElement>>;
|
|
96
|
+
//# sourceMappingURL=MaskedInputAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaskedInputAdapter.d.ts","sourceRoot":"","sources":["../../src/lib/form/MaskedInputAdapter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,IAAI,0BAA0B,EAAE,MAAM,eAAe,CAAA;AACrF,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAc,aAAa,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,uBAAuB,GAAG,0BAA0B,GAAG,aAAa,CAAA;AAEhF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mDAc7B,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { IMaskInput } from 'react-imask';
|
|
4
|
+
export const MaskedInputAdapter = React.forwardRef(function MaskedInputAdapter(props, ref) {
|
|
5
|
+
const { onChange, ...other } = props;
|
|
6
|
+
return (_jsx(IMaskInput, { ...other, inputRef: ref, onComplete: value => {
|
|
7
|
+
onChange({ target: { name: props.name, value } });
|
|
8
|
+
} }));
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=MaskedInputAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaskedInputAdapter.js","sourceRoot":"","sources":["../../src/lib/form/MaskedInputAdapter.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAA;AAIvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAGhD,SAAS,kBAAkB,CAAC,KAAK,EAAE,GAAG;IACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,CAAA;IACpC,OAAO,CACL,KAAC,UAAU,OACL,KAAK,EACT,QAAQ,EAAE,GAAG,EACb,UAAU,EAAE,KAAK,CAAC,EAAE;YAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;QACnD,CAAC,GACD,CACH,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ReactMaskOpts } from 'react-imask';
|
|
2
2
|
import { TextFieldProps } from './TextField';
|
|
3
3
|
export type MaskedTextFieldProps = Omit<TextFieldProps, 'slotProps'> & {
|
|
4
|
-
mask: IMaskInputProps<HTMLInputElement>['mask'];
|
|
5
|
-
blocks?: Record<string, any>;
|
|
6
|
-
definitions?: Record<string, any>;
|
|
7
|
-
pattern?: string;
|
|
8
|
-
lazy?: boolean;
|
|
9
4
|
slotProps?: Omit<TextFieldProps['slotProps'], 'input'> & {
|
|
10
5
|
input?: Omit<TextFieldProps['slotProps'], 'input'>;
|
|
11
6
|
};
|
|
12
|
-
};
|
|
7
|
+
} & ReactMaskOpts;
|
|
13
8
|
export declare function MaskedTextField(props: MaskedTextFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
14
9
|
//# sourceMappingURL=MaskedTextField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaskedTextField.d.ts","sourceRoot":"","sources":["../../src/lib/form/MaskedTextField.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MaskedTextField.d.ts","sourceRoot":"","sources":["../../src/lib/form/MaskedTextField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAa,cAAc,EAAE,MAAM,aAAa,CAAA;AAMvD,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG;IACrE,SAAS,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,GAAG;QACvD,KAAK,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAA;KACnD,CAAA;CACF,GAAG,aAAa,CAAA;AAEjB,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CAgB1D"}
|
|
@@ -1,24 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import React from 'react';
|
|
3
2
|
import { TextField } from './TextField';
|
|
4
|
-
import {
|
|
5
|
-
const MaskedInputAdapter = React.forwardRef(function MaskedInputAdapter(props, ref) {
|
|
6
|
-
const { onChange, ...other } = props;
|
|
7
|
-
return (_jsx(IMaskInput, { ...other, inputRef: ref, onAccept: (value) => onChange({ target: { name: props.name, value } }), overwrite: true }));
|
|
8
|
-
});
|
|
3
|
+
import { MaskedInputAdapter, } from './MaskedInputAdapter';
|
|
9
4
|
export function MaskedTextField(props) {
|
|
10
|
-
const {
|
|
5
|
+
const { slotProps, ...rest } = props;
|
|
11
6
|
return (_jsx(TextField, { ...rest, slotProps: {
|
|
12
7
|
...slotProps,
|
|
13
8
|
input: {
|
|
14
9
|
inputComponent: MaskedInputAdapter,
|
|
15
|
-
inputProps:
|
|
16
|
-
mask: mask,
|
|
17
|
-
blocks: blocks,
|
|
18
|
-
definitions: definitions,
|
|
19
|
-
pattern: pattern,
|
|
20
|
-
lazy: lazy,
|
|
21
|
-
},
|
|
10
|
+
inputProps: rest,
|
|
22
11
|
...slotProps?.input,
|
|
23
12
|
},
|
|
24
13
|
} }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaskedTextField.js","sourceRoot":"","sources":["../../src/lib/form/MaskedTextField.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"MaskedTextField.js","sourceRoot":"","sources":["../../src/lib/form/MaskedTextField.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAA;AACvD,OAAO,EACL,kBAAkB,GAEnB,MAAM,sBAAsB,CAAA;AAQ7B,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IAEpC,OAAO,CACL,KAAC,SAAS,OACJ,IAAI,EACR,SAAS,EAAE;YACT,GAAG,SAAS;YACZ,KAAK,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,UAAU,EAAE,IAA+B;gBAC3C,GAAG,SAAS,EAAE,KAAK;aACpB;SACF,GACD,CACH,CAAA;AACH,CAAC"}
|
package/dist/form/index.d.ts
CHANGED
package/dist/form/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EACL,wBAAwB,EACxB,KAAK,6BAA6B,GACnC,MAAM,4BAA4B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EACL,wBAAwB,EACxB,KAAK,6BAA6B,GACnC,MAAM,4BAA4B,CAAA"}
|
package/dist/form/index.js
CHANGED
package/dist/form/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAiBlD,OAAO,EAAE,WAAW,EAAyB,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,eAAe,EAA6B,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EACL,wBAAwB,GAEzB,MAAM,4BAA4B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAiBlD,OAAO,EAAE,WAAW,EAAyB,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,eAAe,EAA6B,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EACL,wBAAwB,GAEzB,MAAM,4BAA4B,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export { useMaterialRouterTable, tableSearchSchema } from './table';
|
|
5
|
-
export { useConfirmDialog, useConfirmDeleteDialog } from './common-dialogs';
|
|
1
|
+
export { useConfirmDeleteDialog, useConfirmDialog } from './common-dialogs';
|
|
2
|
+
export { DialogCloseButton, DialogsProvider, useDialogs, type DialogProps, type DialogResult, } from './dialogs';
|
|
3
|
+
export { IMask, MaskedInput, MaskedTextField, SubscribeMaskedTextField, useAppForm, withForm, type CheckboxProps, type DatePickerProps, type MaskedInputProps, type MaskedTextFieldProps, type MultiSelectProps, type SelectProps, type SubscribeCheckboxProps, type SubscribeDatePickerProps, type SubscribeMaskedTextFieldProps, type SubscribeMultiSelectProps, type SubscribeSelectProps, type SubscribeTextFieldProps, type SubscribeTimePickerProps, type TextFieldProps, type TimePickerProps, } from './form';
|
|
6
4
|
export { Link } from './link';
|
|
5
|
+
export { tableSearchSchema, useMaterialRouterTable } from './table';
|
|
6
|
+
export { RouterTab, RouterTabs, TabLabel } from './tabs';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAC3E,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,KAAK,EACL,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export { useMaterialRouterTable, tableSearchSchema } from './table';
|
|
5
|
-
export { useConfirmDialog, useConfirmDeleteDialog } from './common-dialogs';
|
|
1
|
+
export { useConfirmDeleteDialog, useConfirmDialog } from './common-dialogs';
|
|
2
|
+
export { DialogCloseButton, DialogsProvider, useDialogs, } from './dialogs';
|
|
3
|
+
export { IMask, MaskedInput, MaskedTextField, SubscribeMaskedTextField, useAppForm, withForm, } from './form';
|
|
6
4
|
export { Link } from './link';
|
|
5
|
+
export { tableSearchSchema, useMaterialRouterTable } from './table';
|
|
6
|
+
export { RouterTab, RouterTabs, TabLabel } from './tabs';
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAC3E,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,GAGX,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,KAAK,EACL,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,QAAQ,GAgBT,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA"}
|
package/package.json
CHANGED
package/dist/layout/AppBar.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { SxProps } from '@mui/material';
|
|
2
|
-
import { AppBarMenuInitialState, AppBarMenuState } from './AppBarMenu';
|
|
3
|
-
export type AppBarState = AppBarMenuState;
|
|
4
|
-
export type AppBarInitialState = AppBarMenuInitialState;
|
|
5
|
-
export type AppBarProps = {
|
|
6
|
-
title?: string | React.ReactNode;
|
|
7
|
-
status?: string | React.ReactNode;
|
|
8
|
-
sidebarOpen: boolean;
|
|
9
|
-
drawerWidth: number;
|
|
10
|
-
collapsedDrawerWidth: number;
|
|
11
|
-
dense?: boolean;
|
|
12
|
-
onDrawerToggle: () => void;
|
|
13
|
-
endSlot?: React.ReactNode;
|
|
14
|
-
menuItems?: React.ReactNode[];
|
|
15
|
-
initialState?: AppBarInitialState;
|
|
16
|
-
state?: AppBarState;
|
|
17
|
-
sx?: SxProps;
|
|
18
|
-
};
|
|
19
|
-
export declare function AppBar(props: AppBarProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
-
//# sourceMappingURL=AppBar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppBar.d.ts","sourceRoot":"","sources":["../../src/lib/layout/AppBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,OAAO,EAGR,MAAM,eAAe,CAAA;AAEtB,OAAO,EAEL,sBAAsB,EACtB,eAAe,EAChB,MAAM,cAAc,CAAA;AAErB,MAAM,MAAM,WAAW,GAAG,eAAe,CAAA;AACzC,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAA;AAEvD,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IACjC,WAAW,EAAE,OAAO,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC7B,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,EAAE,CAAC,EAAE,OAAO,CAAA;CACb,CAAA;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,2CA0DxC"}
|
package/dist/layout/AppBar.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, IconButton, AppBar as MuiAppBar, Toolbar, Typography, } from '@mui/material';
|
|
3
|
-
import { Menu as MenuIcon } from '@mui/icons-material';
|
|
4
|
-
import { AppBarMenu, } from './AppBarMenu';
|
|
5
|
-
export function AppBar(props) {
|
|
6
|
-
const { title, sidebarOpen, drawerWidth, collapsedDrawerWidth, dense, onDrawerToggle, endSlot, menuItems, initialState, state, sx, } = props;
|
|
7
|
-
const renderedEndSlot = endSlot ?? (_jsx(AppBarMenu, { menuItems: menuItems, initialState: initialState, state: state }));
|
|
8
|
-
return (_jsx(MuiAppBar, { position: 'fixed', sx: {
|
|
9
|
-
...sx,
|
|
10
|
-
width: {
|
|
11
|
-
sm: `calc(100% - ${sidebarOpen ? drawerWidth : collapsedDrawerWidth}px)`,
|
|
12
|
-
},
|
|
13
|
-
ml: { sm: `${sidebarOpen ? drawerWidth : collapsedDrawerWidth}px` },
|
|
14
|
-
transition: 'width 0.2s, margin-left 0.2s',
|
|
15
|
-
}, children: _jsxs(Toolbar, { variant: dense ? 'dense' : 'regular', children: [_jsx(IconButton, { color: 'inherit', "aria-label": 'open drawer', edge: 'start', onClick: () => onDrawerToggle(), sx: { mr: 2, display: { sm: 'none' } }, children: _jsx(MenuIcon, {}) }), typeof title === 'string' ? (_jsx(Typography, { variant: 'h6', noWrap: true, component: 'div', sx: { flexGrow: 1 }, children: title })) : (_jsx(Box, { sx: { flexGrow: 1 }, children: title })), renderedEndSlot && _jsx(Box, { children: renderedEndSlot })] }) }));
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=AppBar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppBar.js","sourceRoot":"","sources":["../../src/lib/layout/AppBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,GAAG,EACH,UAAU,EACV,MAAM,IAAI,SAAS,EAEnB,OAAO,EACP,UAAU,GACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EACL,UAAU,GAGX,MAAM,cAAc,CAAA;AAoBrB,MAAM,UAAU,MAAM,CAAC,KAAkB;IACvC,MAAM,EACJ,KAAK,EACL,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,KAAK,EACL,cAAc,EACd,OAAO,EACP,SAAS,EACT,YAAY,EACZ,KAAK,EACL,EAAE,GACH,GAAG,KAAK,CAAA;IAET,MAAM,eAAe,GAAG,OAAO,IAAI,CACjC,KAAC,UAAU,IACT,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,GACZ,CACH,CAAA;IAED,OAAO,CACL,KAAC,SAAS,IACR,QAAQ,EAAC,OAAO,EAChB,EAAE,EAAE;YACF,GAAG,EAAE;YACL,KAAK,EAAE;gBACL,EAAE,EAAE,eACF,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,oBAC9B,KAAK;aACN;YACD,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,IAAI,EAAE;YACnE,UAAU,EAAE,8BAA8B;SAC3C,YAED,MAAC,OAAO,IAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,aAC3C,KAAC,UAAU,IACT,KAAK,EAAC,SAAS,gBACJ,aAAa,EACxB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE,EAC/B,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,YAEtC,KAAC,QAAQ,KAAG,GACD,EACZ,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC3B,KAAC,UAAU,IAAC,OAAO,EAAC,IAAI,EAAC,MAAM,QAAC,SAAS,EAAC,KAAK,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,YAChE,KAAK,GACK,CACd,CAAC,CAAC,CAAC,CACF,KAAC,GAAG,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAG,KAAK,GAAO,CACxC,EACA,eAAe,IAAI,KAAC,GAAG,cAAE,eAAe,GAAO,IACxC,GACA,CACb,CAAA;AACH,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export type AppBarMenuState = {
|
|
2
|
-
menuOpen: boolean;
|
|
3
|
-
onMenuOpenChange?: (open: boolean) => void;
|
|
4
|
-
};
|
|
5
|
-
export type AppBarMenuInitialState = Pick<AppBarMenuState, 'menuOpen'>;
|
|
6
|
-
export type AppBarMenuProps = {
|
|
7
|
-
menuItems?: React.ReactNode[];
|
|
8
|
-
initialState?: AppBarMenuInitialState;
|
|
9
|
-
state?: AppBarMenuState;
|
|
10
|
-
};
|
|
11
|
-
export declare function AppBarMenu(props: AppBarMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
//# sourceMappingURL=AppBarMenu.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppBarMenu.d.ts","sourceRoot":"","sources":["../../src/lib/layout/AppBarMenu.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,OAAO,CAAA;IACjB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CAC3C,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;AAEtE,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC7B,YAAY,CAAC,EAAE,sBAAsB,CAAA;IACrC,KAAK,CAAC,EAAE,eAAe,CAAA;CACxB,CAAA;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,2CA2ChD"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Avatar, IconButton, Menu } from '@mui/material';
|
|
3
|
-
import { useLayoutEffect, useRef, useState } from 'react';
|
|
4
|
-
import { Person as PersonIcon } from '@mui/icons-material';
|
|
5
|
-
export function AppBarMenu(props) {
|
|
6
|
-
const { menuItems, initialState, state } = props;
|
|
7
|
-
const [anchorEl, setAnchorEl] = useState(null);
|
|
8
|
-
const [_menuOpen, setMenuOpen] = useState(initialState?.menuOpen ?? false);
|
|
9
|
-
const buttonRef = useRef(null);
|
|
10
|
-
const menuOpen = state?.menuOpen ?? _menuOpen;
|
|
11
|
-
useLayoutEffect(() => {
|
|
12
|
-
if (buttonRef.current) {
|
|
13
|
-
setAnchorEl(buttonRef.current);
|
|
14
|
-
}
|
|
15
|
-
}, [buttonRef.current]);
|
|
16
|
-
const handleClick = () => {
|
|
17
|
-
setMenuOpen(true);
|
|
18
|
-
state?.onMenuOpenChange?.(true);
|
|
19
|
-
};
|
|
20
|
-
const handleClose = () => {
|
|
21
|
-
setMenuOpen(false);
|
|
22
|
-
state?.onMenuOpenChange?.(false);
|
|
23
|
-
};
|
|
24
|
-
return (_jsxs("div", { children: [_jsx(IconButton, { ref: buttonRef, color: 'inherit', "aria-label": 'search', onClick: handleClick, children: _jsx(Avatar, { sx: { width: 32, height: 32 }, children: _jsx(PersonIcon, {}) }) }), menuItems && (_jsx(Menu, { open: menuOpen, onClose: handleClose, anchorEl: anchorEl, children: menuItems }))] }));
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=AppBarMenu.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppBarMenu.js","sourceRoot":"","sources":["../../src/lib/layout/AppBarMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAe1D,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAChD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAA;IAClE,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,YAAY,EAAE,QAAQ,IAAI,KAAK,CAAC,CAAA;IAE1E,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IAEjD,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,IAAI,SAAS,CAAA;IAE7C,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAChC,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAEvB,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,WAAW,CAAC,IAAI,CAAC,CAAA;QACjB,KAAK,EAAE,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC,CAAA;IACD,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,KAAK,EAAE,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,OAAO,CACL,0BACE,KAAC,UAAU,IACT,GAAG,EAAE,SAAS,EACd,KAAK,EAAC,SAAS,gBACJ,QAAQ,EACnB,OAAO,EAAE,WAAW,YAEpB,KAAC,MAAM,IAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YACnC,KAAC,UAAU,KAAG,GACP,GACE,EACZ,SAAS,IAAI,CACZ,KAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,YAC3D,SAAS,GACL,CACR,IACG,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ListProps, SxProps } from '@mui/material';
|
|
2
|
-
import { PropsWithChildren } from 'react';
|
|
3
|
-
import { AppBarInitialState, AppBarProps, AppBarState } from './AppBar';
|
|
4
|
-
import { NavList } from './types';
|
|
5
|
-
export type AppLayoutState = AppBarState;
|
|
6
|
-
export type AppLayoutInitialState = AppBarInitialState;
|
|
7
|
-
export type AppLayoutProps = PropsWithChildren & {
|
|
8
|
-
title?: string | React.ReactNode;
|
|
9
|
-
navList?: NavList | NavList[];
|
|
10
|
-
drawerWidth?: number;
|
|
11
|
-
collapsedDrawerWidth?: number;
|
|
12
|
-
dense?: boolean;
|
|
13
|
-
slotProps?: {
|
|
14
|
-
appBar?: Omit<AppBarProps, 'title' | 'status' | 'sidebarOpen' | 'drawerWidth' | 'collapsedDrawerWidth' | 'onDrawerToggle'>;
|
|
15
|
-
list?: ListProps;
|
|
16
|
-
};
|
|
17
|
-
menuItems?: React.ReactNode[];
|
|
18
|
-
initialState?: AppLayoutInitialState;
|
|
19
|
-
state?: AppLayoutState;
|
|
20
|
-
sx?: SxProps;
|
|
21
|
-
};
|
|
22
|
-
export declare function AppLayout(props: AppLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
-
//# sourceMappingURL=AppLayout.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppLayout.d.ts","sourceRoot":"","sources":["../../src/lib/layout/AppLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,SAAS,EACT,OAAO,EAER,MAAM,eAAe,CAAA;AACtB,OAAO,EAAW,iBAAiB,EAAY,MAAM,OAAO,CAAA;AAK5D,OAAO,EAAU,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAKjC,MAAM,MAAM,cAAc,GAAG,WAAW,CAAA;AACxC,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CAAA;AAEtD,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG;IAC/C,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE;QACV,MAAM,CAAC,EAAE,IAAI,CACX,WAAW,EACT,OAAO,GACP,QAAQ,GACR,aAAa,GACb,aAAa,GACb,sBAAsB,GACtB,gBAAgB,CACnB,CAAA;QACD,IAAI,CAAC,EAAE,SAAS,CAAA;KACjB,CAAA;IACD,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC7B,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB,EAAE,CAAC,EAAE,OAAO,CAAA;CACb,CAAA;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CA0K9C"}
|
package/dist/layout/AppLayout.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Drawer, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemText, Toolbar, } from '@mui/material';
|
|
3
|
-
import { useMemo, Fragment } from 'react';
|
|
4
|
-
import { ChevronRight } from '@mui/icons-material';
|
|
5
|
-
import { useState } from 'react';
|
|
6
|
-
import { ChevronLeft } from '@mui/icons-material';
|
|
7
|
-
import { Link } from '@tanstack/react-router';
|
|
8
|
-
import { AppBar } from './AppBar';
|
|
9
|
-
const defaultDrawerWidth = 240;
|
|
10
|
-
const defaultCollapsedDrawerWidth = 64;
|
|
11
|
-
export function AppLayout(props) {
|
|
12
|
-
const { title, navList = [], drawerWidth = defaultDrawerWidth, collapsedDrawerWidth = defaultCollapsedDrawerWidth, dense, children, slotProps, menuItems, initialState, state, sx, } = props;
|
|
13
|
-
const [mobileOpen, setMobileOpen] = useState(false);
|
|
14
|
-
const [sidebarOpen, setSidebarOpen] = useState(true);
|
|
15
|
-
const navLists = useMemo(() => (Array.isArray(navList) ? navList : [navList]), [navList]);
|
|
16
|
-
const handleDrawerToggle = () => {
|
|
17
|
-
setMobileOpen(!mobileOpen);
|
|
18
|
-
};
|
|
19
|
-
const handleSidebarToggle = () => {
|
|
20
|
-
setSidebarOpen(!sidebarOpen);
|
|
21
|
-
};
|
|
22
|
-
const drawerContent = useMemo(() => {
|
|
23
|
-
const renderNavSidebar = (expanded) => {
|
|
24
|
-
return (_jsxs("div", { children: [_jsx(Toolbar, { variant: dense ? 'dense' : 'regular', sx: {
|
|
25
|
-
justifyContent: expanded ? 'flex-end' : 'center',
|
|
26
|
-
display: { xs: 'none', sm: 'flex' },
|
|
27
|
-
}, children: _jsx(IconButton, { onClick: handleSidebarToggle, children: expanded ? _jsx(ChevronLeft, {}) : _jsx(ChevronRight, {}) }) }), navLists.map((list, index) => (_jsx(Fragment, { children: renderNavList(expanded, list) }, index)))] }));
|
|
28
|
-
};
|
|
29
|
-
const renderNavList = (expanded, navList) => (_jsx(List, { dense: dense, ...slotProps?.list, children: navList.items.map((item, index) => (_jsx(ListItem, { disablePadding: true, sx: { justifyContent: 'center' }, children: _jsxs(ListItemButton, { component: item.url ? Link : 'div', to: item.url, sx: { justifyContent: 'center' }, children: [_jsx(ListItemIcon, { sx: {
|
|
30
|
-
minWidth: '24px',
|
|
31
|
-
}, children: item.icon }), expanded && (_jsx(ListItemText, { primary: item.label, sx: {
|
|
32
|
-
ml: '1rem',
|
|
33
|
-
textOverflow: 'clip',
|
|
34
|
-
overflow: 'hidden',
|
|
35
|
-
whiteSpace: 'nowrap',
|
|
36
|
-
} }))] }) }, index))) }));
|
|
37
|
-
return {
|
|
38
|
-
expanded: renderNavSidebar(true),
|
|
39
|
-
collapsed: renderNavSidebar(false),
|
|
40
|
-
};
|
|
41
|
-
}, [handleSidebarToggle, navLists]);
|
|
42
|
-
return (_jsxs(Box, { sx: { display: 'flex', ...sx }, children: [_jsx(AppBar, { dense: dense, ...slotProps?.appBar, title: title, sidebarOpen: sidebarOpen, drawerWidth: drawerWidth, collapsedDrawerWidth: collapsedDrawerWidth, onDrawerToggle: handleDrawerToggle, menuItems: menuItems, initialState: initialState, state: state }), _jsxs(Box, { component: 'nav', sx: {
|
|
43
|
-
width: { sm: sidebarOpen ? drawerWidth : collapsedDrawerWidth },
|
|
44
|
-
flexShrink: { sm: 0 },
|
|
45
|
-
transition: 'width 0.2s',
|
|
46
|
-
}, children: [_jsx(Drawer, { variant: 'temporary', open: mobileOpen, onClose: handleDrawerToggle, ModalProps: {
|
|
47
|
-
keepMounted: true,
|
|
48
|
-
}, sx: {
|
|
49
|
-
display: { xs: 'block', sm: 'none' },
|
|
50
|
-
'& .MuiDrawer-paper': {
|
|
51
|
-
boxSizing: 'border-box',
|
|
52
|
-
width: drawerWidth,
|
|
53
|
-
},
|
|
54
|
-
}, children: drawerContent.expanded }), _jsx(Drawer, { variant: 'permanent', sx: {
|
|
55
|
-
display: { xs: 'none', sm: 'block' },
|
|
56
|
-
'& .MuiDrawer-paper': {
|
|
57
|
-
boxSizing: 'border-box',
|
|
58
|
-
width: sidebarOpen ? drawerWidth : collapsedDrawerWidth,
|
|
59
|
-
transition: 'width 0.2s',
|
|
60
|
-
},
|
|
61
|
-
}, open: sidebarOpen, children: sidebarOpen ? drawerContent.expanded : drawerContent.collapsed })] }), _jsxs(Box, { component: 'main', sx: {
|
|
62
|
-
flexGrow: 1,
|
|
63
|
-
p: 0,
|
|
64
|
-
width: {
|
|
65
|
-
sm: `calc(100% - ${sidebarOpen ? drawerWidth : collapsedDrawerWidth}px)`,
|
|
66
|
-
},
|
|
67
|
-
transition: 'width 0.2s',
|
|
68
|
-
overflowX: 'hidden',
|
|
69
|
-
}, children: [_jsx(Toolbar, { variant: dense ? 'dense' : 'regular' }), children] })] }));
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=AppLayout.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppLayout.js","sourceRoot":"","sources":["../../src/lib/layout/AppLayout.tsx"],"names":[],"mappings":"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"}
|
package/dist/layout/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAA"}
|
package/dist/layout/index.js
DELETED
package/dist/layout/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/layout/types.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ValidateToPath } from '@tanstack/react-router';
|
|
2
|
-
export type NavList = {
|
|
3
|
-
items: NavItem[];
|
|
4
|
-
title?: string;
|
|
5
|
-
};
|
|
6
|
-
export type NavItem = {
|
|
7
|
-
icon: React.ReactNode;
|
|
8
|
-
label: string;
|
|
9
|
-
url?: ValidateToPath;
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/layout/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,cAAc,CAAA;CACrB,CAAA"}
|
package/dist/layout/types.js
DELETED
package/dist/layout/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/layout/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Removes trailing slashes from a string
|
|
3
|
-
* @param str The string to remove trailing slashes from
|
|
4
|
-
* @returns The string with trailing slashes removed
|
|
5
|
-
*/
|
|
6
|
-
export declare function removeTrailingSlash(str: string): string;
|
|
7
|
-
//# sourceMappingURL=removeTrailingSlash.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"removeTrailingSlash.d.ts","sourceRoot":"","sources":["../../src/lib/tabs/removeTrailingSlash.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Removes trailing slashes from a string
|
|
3
|
-
* @param str The string to remove trailing slashes from
|
|
4
|
-
* @returns The string with trailing slashes removed
|
|
5
|
-
*/
|
|
6
|
-
export function removeTrailingSlash(str) {
|
|
7
|
-
return str.replace(/\/+$/, '');
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=removeTrailingSlash.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"removeTrailingSlash.js","sourceRoot":"","sources":["../../src/lib/tabs/removeTrailingSlash.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAChC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"removeTrailingSlash.test.d.ts","sourceRoot":"","sources":["../../src/lib/tabs/removeTrailingSlash.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { removeTrailingSlash } from './removeTrailingSlash';
|
|
2
|
-
describe('removeTrailingSlash', () => {
|
|
3
|
-
it('should remove single trailing slash', () => {
|
|
4
|
-
expect(removeTrailingSlash('test/')).toBe('test');
|
|
5
|
-
});
|
|
6
|
-
it('should remove multiple trailing slashes', () => {
|
|
7
|
-
expect(removeTrailingSlash('test///')).toBe('test');
|
|
8
|
-
});
|
|
9
|
-
it('should not modify string without trailing slash', () => {
|
|
10
|
-
expect(removeTrailingSlash('test')).toBe('test');
|
|
11
|
-
});
|
|
12
|
-
it('should handle empty string', () => {
|
|
13
|
-
expect(removeTrailingSlash('')).toBe('');
|
|
14
|
-
});
|
|
15
|
-
it('should handle string with only slashes', () => {
|
|
16
|
-
expect(removeTrailingSlash('///')).toBe('');
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
//# sourceMappingURL=removeTrailingSlash.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"removeTrailingSlash.test.js","sourceRoot":"","sources":["../../src/lib/tabs/removeTrailingSlash.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routerTabHooks.d.ts","sourceRoot":"","sources":["../../src/lib/tabs/routerTabHooks.ts"],"names":[],"mappings":"AAIA,wBAAgB,kBAAkB,WAQjC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { useRouterState } from '@tanstack/react-router';
|
|
2
|
-
import { useMemo } from 'react';
|
|
3
|
-
import { removeTrailingSlash } from './removeTrailingSlash';
|
|
4
|
-
export function useRouterTabsValue() {
|
|
5
|
-
const matches = useRouterState({ select: state => state.matches });
|
|
6
|
-
const normalizedValue = useMemo(() => removeTrailingSlash(matches[matches.length - 1].fullPath), [matches]);
|
|
7
|
-
return normalizedValue;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=routerTabHooks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routerTabHooks.js","sourceRoot":"","sources":["../../src/lib/tabs/routerTabHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,UAAU,kBAAkB;IAChC,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAElE,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAC/D,CAAC,OAAO,CAAC,CACV,CAAA;IACD,OAAO,eAAe,CAAA;AACxB,CAAC"}
|