josenanodev-react-components-library 0.0.11 → 0.0.15

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.
Files changed (188) hide show
  1. package/README.md +4 -4
  2. package/dist/cjs/Services/MulticalendarStatesAndSettings.d.ts +17 -17
  3. package/dist/cjs/Services/MulticalendarStatesAndSettings.js +29 -29
  4. package/dist/cjs/Services/accessToken.d.ts +3 -3
  5. package/dist/cjs/Services/accessToken.js +15 -15
  6. package/dist/cjs/common/constants.d.ts +5 -5
  7. package/dist/cjs/common/constants.js +8 -8
  8. package/dist/cjs/common/turboSuiteUrls.d.ts +7 -7
  9. package/dist/cjs/common/turboSuiteUrls.js +9 -9
  10. package/dist/cjs/common/types.d.ts +113 -113
  11. package/dist/cjs/components/Modal/Modal.css +43 -0
  12. package/dist/cjs/components/Modal/Modal.d.ts +5 -0
  13. package/dist/cjs/components/Modal/Modal.js +82 -0
  14. package/dist/cjs/components/Modal/types.d.ts +9 -0
  15. package/dist/cjs/components/Multicalendar/Multicalendar.css +191 -191
  16. package/dist/cjs/components/Multicalendar/Multicalendar.d.ts +5 -5
  17. package/dist/cjs/components/Multicalendar/Multicalendar.js +302 -302
  18. package/dist/cjs/components/Multicalendar/MulticalendarOwnFunctions.d.ts +86 -86
  19. package/dist/cjs/components/Multicalendar/MulticalendarOwnFunctions.js +192 -192
  20. package/dist/cjs/components/Multicalendar/subcomponents/composites/CellsRow/CellsRow.css +5 -5
  21. package/dist/cjs/components/Multicalendar/subcomponents/composites/CellsRow/CellsRow.d.ts +5 -5
  22. package/dist/cjs/components/Multicalendar/subcomponents/composites/CellsRow/CellsRow.js +20 -20
  23. package/dist/cjs/components/Multicalendar/subcomponents/composites/CellsRow/types.d.ts +11 -11
  24. package/dist/cjs/components/Multicalendar/subcomponents/composites/DatesGrid/DatesGrid.css +7 -7
  25. package/dist/cjs/components/Multicalendar/subcomponents/composites/DatesGrid/DatesGrid.d.ts +5 -5
  26. package/dist/cjs/components/Multicalendar/subcomponents/composites/DatesGrid/DatesGrid.js +20 -20
  27. package/dist/cjs/components/Multicalendar/subcomponents/composites/DatesGrid/types.d.ts +13 -13
  28. package/dist/cjs/components/Multicalendar/subcomponents/composites/ListElementsColumn/ListElementsColumn.css +3 -3
  29. package/dist/cjs/components/Multicalendar/subcomponents/composites/ListElementsColumn/ListElementsColumn.d.ts +5 -5
  30. package/dist/cjs/components/Multicalendar/subcomponents/composites/ListElementsColumn/ListElementsColumn.js +15 -15
  31. package/dist/cjs/components/Multicalendar/subcomponents/composites/ListElementsColumn/types.d.ts +9 -9
  32. package/dist/cjs/components/Multicalendar/subcomponents/individuals/Cell/Cell.css +7 -7
  33. package/dist/cjs/components/Multicalendar/subcomponents/individuals/Cell/Cell.d.ts +5 -5
  34. package/dist/cjs/components/Multicalendar/subcomponents/individuals/Cell/Cell.js +12 -12
  35. package/dist/cjs/components/Multicalendar/subcomponents/individuals/Cell/types.d.ts +10 -10
  36. package/dist/cjs/components/Multicalendar/subcomponents/individuals/DatesRow/DatesRow.css +60 -60
  37. package/dist/cjs/components/Multicalendar/subcomponents/individuals/DatesRow/DatesRow.d.ts +5 -5
  38. package/dist/cjs/components/Multicalendar/subcomponents/individuals/DatesRow/DatesRow.js +56 -56
  39. package/dist/cjs/components/Multicalendar/subcomponents/individuals/DatesRow/types.d.ts +10 -10
  40. package/dist/cjs/components/Multicalendar/subcomponents/individuals/DropdownMonthNavigation/DropdownMonthNavigation.css +13 -13
  41. package/dist/cjs/components/Multicalendar/subcomponents/individuals/DropdownMonthNavigation/DropdownMonthNavigation.d.ts +5 -5
  42. package/dist/cjs/components/Multicalendar/subcomponents/individuals/DropdownMonthNavigation/DropdownMonthNavigation.js +13 -13
  43. package/dist/cjs/components/Multicalendar/subcomponents/individuals/DropdownMonthNavigation/types.d.ts +5 -5
  44. package/dist/cjs/components/Multicalendar/subcomponents/individuals/ListElement/ListElement.css +14 -14
  45. package/dist/cjs/components/Multicalendar/subcomponents/individuals/ListElement/ListElement.d.ts +5 -5
  46. package/dist/cjs/components/Multicalendar/subcomponents/individuals/ListElement/ListElement.js +14 -14
  47. package/dist/cjs/components/Multicalendar/subcomponents/individuals/ListElement/types.d.ts +7 -7
  48. package/dist/cjs/components/Multicalendar/types.d.ts +45 -45
  49. package/dist/cjs/components/PopUp/PopUp.css +15 -0
  50. package/dist/cjs/components/PopUp/PopUp.d.ts +5 -0
  51. package/dist/cjs/components/PopUp/PopUp.js +50 -0
  52. package/dist/cjs/components/PopUp/types.d.ts +8 -0
  53. package/dist/cjs/components/SearchBar/SearchBar.css +35 -0
  54. package/dist/cjs/components/SearchBar/SearchBar.d.ts +5 -0
  55. package/dist/cjs/components/SearchBar/SearchBar.js +67 -0
  56. package/dist/cjs/components/SearchBar/types.d.ts +10 -0
  57. package/dist/cjs/components/SideBar/SideBar.css +50 -50
  58. package/dist/cjs/components/SideBar/SideBar.d.ts +8 -8
  59. package/dist/cjs/components/SideBar/SideBar.js +70 -70
  60. package/dist/cjs/components/SideBar/types.d.ts +8 -8
  61. package/dist/cjs/hooks/useOutsideClick.d.ts +6 -6
  62. package/dist/cjs/hooks/useOutsideClick.js +25 -25
  63. package/dist/cjs/hooks/useResizeObserver.d.ts +7 -7
  64. package/dist/cjs/hooks/useResizeObserver.js +30 -30
  65. package/dist/cjs/hooks/useWindowsSize.d.ts +6 -6
  66. package/dist/cjs/hooks/useWindowsSize.js +20 -20
  67. package/dist/cjs/index.css +77 -77
  68. package/dist/cjs/index.d.ts +7 -4
  69. package/dist/cjs/index.js +18 -12
  70. package/dist/cjs/languages/en-EN.d.ts +3 -3
  71. package/dist/cjs/languages/en-EN.js +25 -25
  72. package/dist/cjs/languages/es-ES.d.ts +3 -3
  73. package/dist/cjs/languages/es-ES.js +25 -25
  74. package/dist/cjs/languages/it-IT.d.ts +3 -3
  75. package/dist/cjs/languages/it-IT.js +25 -25
  76. package/dist/cjs/languages/types.d.ts +21 -21
  77. package/dist/cjs/mocks/ReactComponentMocksForTesting/CellChildrenMock.d.ts +4 -4
  78. package/dist/cjs/mocks/ReactComponentMocksForTesting/CellChildrenMock.js +13 -13
  79. package/dist/cjs/mocks/ReactComponentMocksForTesting/ListElementChildrenMock.d.ts +4 -4
  80. package/dist/cjs/mocks/ReactComponentMocksForTesting/ListElementChildrenMock.js +10 -10
  81. package/dist/cjs/react-app-env.d.ts +1 -1
  82. package/dist/cjs/setupTests.d.ts +2 -2
  83. package/dist/cjs/setupTests.js +8 -8
  84. package/dist/cjs/stories/css-presets.css +77 -77
  85. package/dist/cjs/utils/datesArray.d.ts +8 -8
  86. package/dist/cjs/utils/datesArray.js +23 -23
  87. package/dist/cjs/utils/jsToSqlDate.d.ts +7 -7
  88. package/dist/cjs/utils/jsToSqlDate.js +22 -22
  89. package/dist/cjs/utils/monthYearString.d.ts +3 -3
  90. package/dist/cjs/utils/monthYearString.js +27 -27
  91. package/dist/cjs/utils/numberOfDaysInAMonth.d.ts +6 -6
  92. package/dist/cjs/utils/numberOfDaysInAMonth.js +12 -12
  93. package/dist/cjs/utils/sqlToJsDate.d.ts +7 -7
  94. package/dist/cjs/utils/sqlToJsDate.js +14 -14
  95. package/dist/esm/Services/MulticalendarStatesAndSettings.d.ts +17 -17
  96. package/dist/esm/Services/MulticalendarStatesAndSettings.js +23 -23
  97. package/dist/esm/Services/accessToken.d.ts +3 -3
  98. package/dist/esm/Services/accessToken.js +9 -9
  99. package/dist/esm/common/constants.d.ts +5 -5
  100. package/dist/esm/common/constants.js +5 -5
  101. package/dist/esm/common/turboSuiteUrls.d.ts +7 -7
  102. package/dist/esm/common/turboSuiteUrls.js +7 -7
  103. package/dist/esm/common/types.d.ts +113 -113
  104. package/dist/esm/components/Modal/Modal.css +43 -0
  105. package/dist/esm/components/Modal/Modal.d.ts +5 -0
  106. package/dist/esm/components/Modal/Modal.js +54 -0
  107. package/dist/esm/components/Modal/types.d.ts +9 -0
  108. package/dist/esm/components/Multicalendar/Multicalendar.css +191 -191
  109. package/dist/esm/components/Multicalendar/Multicalendar.d.ts +5 -5
  110. package/dist/esm/components/Multicalendar/Multicalendar.js +274 -274
  111. package/dist/esm/components/Multicalendar/MulticalendarOwnFunctions.d.ts +86 -86
  112. package/dist/esm/components/Multicalendar/MulticalendarOwnFunctions.js +176 -176
  113. package/dist/esm/components/Multicalendar/subcomponents/composites/CellsRow/CellsRow.css +5 -5
  114. package/dist/esm/components/Multicalendar/subcomponents/composites/CellsRow/CellsRow.d.ts +5 -5
  115. package/dist/esm/components/Multicalendar/subcomponents/composites/CellsRow/CellsRow.js +15 -15
  116. package/dist/esm/components/Multicalendar/subcomponents/composites/CellsRow/types.d.ts +11 -11
  117. package/dist/esm/components/Multicalendar/subcomponents/composites/DatesGrid/DatesGrid.css +7 -7
  118. package/dist/esm/components/Multicalendar/subcomponents/composites/DatesGrid/DatesGrid.d.ts +5 -5
  119. package/dist/esm/components/Multicalendar/subcomponents/composites/DatesGrid/DatesGrid.js +15 -15
  120. package/dist/esm/components/Multicalendar/subcomponents/composites/DatesGrid/types.d.ts +13 -13
  121. package/dist/esm/components/Multicalendar/subcomponents/composites/ListElementsColumn/ListElementsColumn.css +3 -3
  122. package/dist/esm/components/Multicalendar/subcomponents/composites/ListElementsColumn/ListElementsColumn.d.ts +5 -5
  123. package/dist/esm/components/Multicalendar/subcomponents/composites/ListElementsColumn/ListElementsColumn.js +10 -10
  124. package/dist/esm/components/Multicalendar/subcomponents/composites/ListElementsColumn/types.d.ts +9 -9
  125. package/dist/esm/components/Multicalendar/subcomponents/individuals/Cell/Cell.css +7 -7
  126. package/dist/esm/components/Multicalendar/subcomponents/individuals/Cell/Cell.d.ts +5 -5
  127. package/dist/esm/components/Multicalendar/subcomponents/individuals/Cell/Cell.js +7 -7
  128. package/dist/esm/components/Multicalendar/subcomponents/individuals/Cell/types.d.ts +10 -10
  129. package/dist/esm/components/Multicalendar/subcomponents/individuals/DatesRow/DatesRow.css +60 -60
  130. package/dist/esm/components/Multicalendar/subcomponents/individuals/DatesRow/DatesRow.d.ts +5 -5
  131. package/dist/esm/components/Multicalendar/subcomponents/individuals/DatesRow/DatesRow.js +51 -51
  132. package/dist/esm/components/Multicalendar/subcomponents/individuals/DatesRow/types.d.ts +10 -10
  133. package/dist/esm/components/Multicalendar/subcomponents/individuals/DropdownMonthNavigation/DropdownMonthNavigation.css +13 -13
  134. package/dist/esm/components/Multicalendar/subcomponents/individuals/DropdownMonthNavigation/DropdownMonthNavigation.d.ts +5 -5
  135. package/dist/esm/components/Multicalendar/subcomponents/individuals/DropdownMonthNavigation/DropdownMonthNavigation.js +8 -8
  136. package/dist/esm/components/Multicalendar/subcomponents/individuals/DropdownMonthNavigation/types.d.ts +5 -5
  137. package/dist/esm/components/Multicalendar/subcomponents/individuals/ListElement/ListElement.css +14 -14
  138. package/dist/esm/components/Multicalendar/subcomponents/individuals/ListElement/ListElement.d.ts +5 -5
  139. package/dist/esm/components/Multicalendar/subcomponents/individuals/ListElement/ListElement.js +9 -9
  140. package/dist/esm/components/Multicalendar/subcomponents/individuals/ListElement/types.d.ts +7 -7
  141. package/dist/esm/components/Multicalendar/types.d.ts +45 -45
  142. package/dist/esm/components/PopUp/PopUp.css +15 -0
  143. package/dist/esm/components/PopUp/PopUp.d.ts +5 -0
  144. package/dist/esm/components/PopUp/PopUp.js +22 -0
  145. package/dist/esm/components/PopUp/types.d.ts +8 -0
  146. package/dist/esm/components/SearchBar/SearchBar.css +35 -0
  147. package/dist/esm/components/SearchBar/SearchBar.d.ts +5 -0
  148. package/dist/esm/components/SearchBar/SearchBar.js +42 -0
  149. package/dist/esm/components/SearchBar/types.d.ts +10 -0
  150. package/dist/esm/components/SideBar/SideBar.css +50 -50
  151. package/dist/esm/components/SideBar/SideBar.d.ts +8 -8
  152. package/dist/esm/components/SideBar/SideBar.js +42 -42
  153. package/dist/esm/components/SideBar/types.d.ts +8 -8
  154. package/dist/esm/hooks/useOutsideClick.d.ts +6 -6
  155. package/dist/esm/hooks/useOutsideClick.js +23 -23
  156. package/dist/esm/hooks/useResizeObserver.d.ts +7 -7
  157. package/dist/esm/hooks/useResizeObserver.js +28 -28
  158. package/dist/esm/hooks/useWindowsSize.d.ts +6 -6
  159. package/dist/esm/hooks/useWindowsSize.js +18 -18
  160. package/dist/esm/index.css +77 -77
  161. package/dist/esm/index.d.ts +7 -4
  162. package/dist/esm/index.js +7 -4
  163. package/dist/esm/languages/en-EN.d.ts +3 -3
  164. package/dist/esm/languages/en-EN.js +23 -23
  165. package/dist/esm/languages/es-ES.d.ts +3 -3
  166. package/dist/esm/languages/es-ES.js +23 -23
  167. package/dist/esm/languages/it-IT.d.ts +3 -3
  168. package/dist/esm/languages/it-IT.js +23 -23
  169. package/dist/esm/languages/types.d.ts +21 -21
  170. package/dist/esm/mocks/ReactComponentMocksForTesting/CellChildrenMock.d.ts +4 -4
  171. package/dist/esm/mocks/ReactComponentMocksForTesting/CellChildrenMock.js +8 -8
  172. package/dist/esm/mocks/ReactComponentMocksForTesting/ListElementChildrenMock.d.ts +4 -4
  173. package/dist/esm/mocks/ReactComponentMocksForTesting/ListElementChildrenMock.js +5 -5
  174. package/dist/esm/react-app-env.d.ts +1 -1
  175. package/dist/esm/setupTests.d.ts +2 -2
  176. package/dist/esm/setupTests.js +6 -6
  177. package/dist/esm/stories/css-presets.css +77 -77
  178. package/dist/esm/utils/datesArray.d.ts +8 -8
  179. package/dist/esm/utils/datesArray.js +21 -21
  180. package/dist/esm/utils/jsToSqlDate.d.ts +7 -7
  181. package/dist/esm/utils/jsToSqlDate.js +20 -20
  182. package/dist/esm/utils/monthYearString.d.ts +3 -3
  183. package/dist/esm/utils/monthYearString.js +25 -25
  184. package/dist/esm/utils/numberOfDaysInAMonth.d.ts +6 -6
  185. package/dist/esm/utils/numberOfDaysInAMonth.js +8 -8
  186. package/dist/esm/utils/sqlToJsDate.d.ts +7 -7
  187. package/dist/esm/utils/sqlToJsDate.js +12 -12
  188. package/package.json +103 -93
@@ -1,7 +1,7 @@
1
- let turboSuiteUrls = {
2
- testEnviroment: "http://localhost",
3
- apiV1Prod: "https://api.turbosuite.es/v1/",
4
- apiV1PreProd: "https://api.demo.turbosuite.com/v1/",
5
- middleware: window.actionUrl,
6
- };
7
- export default turboSuiteUrls;
1
+ let turboSuiteUrls = {
2
+ testEnviroment: "http://localhost",
3
+ apiV1Prod: "https://api.turbosuite.es/v1/",
4
+ apiV1PreProd: "https://api.demo.turbosuite.com/v1/",
5
+ middleware: window.actionUrl,
6
+ };
7
+ export default turboSuiteUrls;
@@ -1,113 +1,113 @@
1
- import { languageType } from "./assets/languages/types";
2
-
3
- export interface customWindow extends Window {
4
- access: string;
5
- propertyManagerCode: string;
6
- propertyManagerLookAndFeelCode: string;
7
- languageCode: string;
8
- actionUrl: string;
9
- }
10
-
11
- export interface SagaActionParamsType<T> {
12
- type: string;
13
- payload: T;
14
- repeatsLeft: number;
15
- persistentReduxAction: string;
16
- reduxError: string;
17
- showErrorMessage?: boolean;
18
- millisecondsWait?: number;
19
- }
20
-
21
- export interface NotificationsReducerStateType {
22
- quickNotifications: QuickNotificationsType[];
23
- }
24
-
25
- export interface lookAndFeelType {
26
- code: string;
27
- logoUrl: string;
28
- primaryColor: string;
29
- secondaryColor: string;
30
- fontFamily: "Roboto" | "Bitter" | "Dosis" | "Figtree" | "Mulish" | "Nunito Sans";
31
- enabled: boolean;
32
- propertyManagerCode?: string;
33
- }
34
-
35
- export interface AppSettingsReducerStateType {
36
- view: "multidestiny";
37
- language: languageType;
38
- lookAndFeel?: lookAndFeelType;
39
- }
40
-
41
- export interface DestiniesReducerStateType {
42
- countries: CountryType[];
43
- regions: RegionType[];
44
- provinces: ProvinceType[];
45
- municipalities: MunicipalityType[];
46
- mixedDestinies: DestinyType[];
47
- }
48
-
49
- export interface DatesReducerStateType {
50
- draggingOverDateCells: boolean;
51
- }
52
-
53
- export interface QuickNotificationsType {
54
- text: string;
55
- creation: Date;
56
- type: "info" | "error" | "ok";
57
- }
58
-
59
- export interface CountryType {
60
- code: string;
61
- name: string;
62
- }
63
-
64
- export interface RegionType {
65
- code: string;
66
- name: string;
67
- country: {
68
- code: string;
69
- name: string;
70
- };
71
- }
72
-
73
- export interface ProvinceType {
74
- code: string;
75
- name: string;
76
- country: {
77
- code: string;
78
- name: string;
79
- };
80
- region: {
81
- code: string;
82
- name: string;
83
- };
84
- }
85
-
86
- export interface MunicipalityType {
87
- code: string;
88
- name: string;
89
- country: {
90
- code: string;
91
- name: string;
92
- };
93
- region: {
94
- code: string;
95
- name: string;
96
- };
97
- province: {
98
- code: string;
99
- name: string;
100
- };
101
- }
102
-
103
- export type DestinyType = (CountryType | RegionType | ProvinceType | MunicipalityType) & {
104
- type: "country" | "region" | "province" | "municipality";
105
- };
106
-
107
- export type SeasonsType = "high" | "medium high" | "medium" | "medium low" | "low"
108
-
109
- export type EventsType = "1" | "2" | "3"
110
-
111
- export type HolidaysType = "1" | "2" | "3"
112
-
113
- export type OccupationsType = "high" | "medium" | "low"
1
+ import { languageType } from "./assets/languages/types";
2
+
3
+ export interface customWindow extends Window {
4
+ access: string;
5
+ propertyManagerCode: string;
6
+ propertyManagerLookAndFeelCode: string;
7
+ languageCode: string;
8
+ actionUrl: string;
9
+ }
10
+
11
+ export interface SagaActionParamsType<T> {
12
+ type: string;
13
+ payload: T;
14
+ repeatsLeft: number;
15
+ persistentReduxAction: string;
16
+ reduxError: string;
17
+ showErrorMessage?: boolean;
18
+ millisecondsWait?: number;
19
+ }
20
+
21
+ export interface NotificationsReducerStateType {
22
+ quickNotifications: QuickNotificationsType[];
23
+ }
24
+
25
+ export interface lookAndFeelType {
26
+ code: string;
27
+ logoUrl: string;
28
+ primaryColor: string;
29
+ secondaryColor: string;
30
+ fontFamily: "Roboto" | "Bitter" | "Dosis" | "Figtree" | "Mulish" | "Nunito Sans";
31
+ enabled: boolean;
32
+ propertyManagerCode?: string;
33
+ }
34
+
35
+ export interface AppSettingsReducerStateType {
36
+ view: "multidestiny";
37
+ language: languageType;
38
+ lookAndFeel?: lookAndFeelType;
39
+ }
40
+
41
+ export interface DestiniesReducerStateType {
42
+ countries: CountryType[];
43
+ regions: RegionType[];
44
+ provinces: ProvinceType[];
45
+ municipalities: MunicipalityType[];
46
+ mixedDestinies: DestinyType[];
47
+ }
48
+
49
+ export interface DatesReducerStateType {
50
+ draggingOverDateCells: boolean;
51
+ }
52
+
53
+ export interface QuickNotificationsType {
54
+ text: string;
55
+ creation: Date;
56
+ type: "info" | "error" | "ok";
57
+ }
58
+
59
+ export interface CountryType {
60
+ code: string;
61
+ name: string;
62
+ }
63
+
64
+ export interface RegionType {
65
+ code: string;
66
+ name: string;
67
+ country: {
68
+ code: string;
69
+ name: string;
70
+ };
71
+ }
72
+
73
+ export interface ProvinceType {
74
+ code: string;
75
+ name: string;
76
+ country: {
77
+ code: string;
78
+ name: string;
79
+ };
80
+ region: {
81
+ code: string;
82
+ name: string;
83
+ };
84
+ }
85
+
86
+ export interface MunicipalityType {
87
+ code: string;
88
+ name: string;
89
+ country: {
90
+ code: string;
91
+ name: string;
92
+ };
93
+ region: {
94
+ code: string;
95
+ name: string;
96
+ };
97
+ province: {
98
+ code: string;
99
+ name: string;
100
+ };
101
+ }
102
+
103
+ export type DestinyType = (CountryType | RegionType | ProvinceType | MunicipalityType) & {
104
+ type: "country" | "region" | "province" | "municipality";
105
+ };
106
+
107
+ export type SeasonsType = "high" | "medium high" | "medium" | "medium low" | "low"
108
+
109
+ export type EventsType = "1" | "2" | "3"
110
+
111
+ export type HolidaysType = "1" | "2" | "3"
112
+
113
+ export type OccupationsType = "high" | "medium" | "low"
@@ -0,0 +1,43 @@
1
+ #modal,
2
+ #close-modal {
3
+ position: fixed;
4
+ width: 100vw;
5
+ height: 100vh;
6
+ backdrop-filter: blur(10px);
7
+ top: 0;
8
+ left: 0;
9
+ z-index: 10;
10
+ display: flex;
11
+ justify-content: center;
12
+ align-items: center;
13
+ animation-name: modal;
14
+ animation-duration: 500ms;
15
+ }
16
+
17
+ #close-modal {
18
+ animation-name: close-modal;
19
+ animation-duration: 500ms;
20
+ }
21
+
22
+ @keyframes modal {
23
+ from {
24
+ backdrop-filter: none;
25
+ opacity: 0;
26
+ }
27
+ to {
28
+ backdrop-filter: blur(10px);
29
+ opacity: 1;
30
+ }
31
+ }
32
+
33
+ @keyframes close-modal {
34
+ from {
35
+ backdrop-filter: blur(10px);
36
+ opacity: 1;
37
+ }
38
+ to {
39
+ backdrop-filter: none;
40
+ opacity: 0;
41
+ display: none;
42
+ }
43
+ }
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import "./Modal.css";
3
+ import { ModalPropsType } from "./types";
4
+ declare const Modal: ({ children, parentElement, visibility, forced, onOpen, onClose, transitionTime, }: ModalPropsType) => JSX.Element;
5
+ export default Modal;
@@ -0,0 +1,54 @@
1
+ import React, { useState, useEffect, useRef } from "react";
2
+ import ReactDOM from "react-dom";
3
+ import "./Modal.css";
4
+ //Hooks
5
+ import useOutsideClick from "../../hooks/useOutsideClick";
6
+ const Modal = ({ children, parentElement, visibility, forced = false, onOpen, onClose, transitionTime = 500, }) => {
7
+ //Refs
8
+ const modalRef = useRef(null);
9
+ //Estados
10
+ const [visible, setVisible] = useState(visibility);
11
+ //Hooks
12
+ useOutsideClick(modalRef, () => {
13
+ if (modalRef.current !== null && !forced) {
14
+ modalRef.current.className = "close-modal";
15
+ setTimeout(() => {
16
+ setVisible(false);
17
+ if (onClose)
18
+ onClose();
19
+ }, transitionTime - 50);
20
+ }
21
+ });
22
+ //UseEffect
23
+ useEffect(() => {
24
+ if (visibility) {
25
+ setVisible(true);
26
+ if (onOpen)
27
+ onOpen();
28
+ }
29
+ else if (!visibility) {
30
+ setTimeout(() => {
31
+ setVisible(false);
32
+ if (onClose)
33
+ onClose();
34
+ }, transitionTime - 50);
35
+ }
36
+ }, [visibility, transitionTime, onOpen, onClose]);
37
+ //Render
38
+ if (visible) {
39
+ return ReactDOM.createPortal(React.createElement("div", { ref: modalRef, className: visibility ? "modal" : "close-modal", style: { animationDuration: `${transitionTime}ms` }, onClick: (event) => {
40
+ if (event.target.id === "modal" && !forced) {
41
+ event.target.id = "close-modal";
42
+ setTimeout(() => {
43
+ setVisible(false);
44
+ if (onClose)
45
+ onClose();
46
+ }, transitionTime - 50);
47
+ }
48
+ } }, children), parentElement);
49
+ }
50
+ else {
51
+ return React.createElement(React.Fragment, null);
52
+ }
53
+ };
54
+ export default Modal;
@@ -0,0 +1,9 @@
1
+ export interface ModalPropsType {
2
+ children: JSX.Element;
3
+ parentElement: HTMLElement;
4
+ visibility: boolean;
5
+ forced?: boolean;
6
+ onOpen?: Function;
7
+ onClose?: Function;
8
+ transitionTime?: number;
9
+ }