@rolster/react-components 1.4.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.
Files changed (257) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/assets/lib.cjs-7185a838.css +2080 -0
  3. package/dist/cjs/lib.cjs.js +3326 -0
  4. package/dist/cjs/lib.cjs.js.map +1 -0
  5. package/dist/es/assets/lib-7185a838.css +2080 -0
  6. package/dist/es/lib.js +3260 -0
  7. package/dist/es/lib.js.map +1 -0
  8. package/dist/esm/components/atoms/Amount/Amount.css +6 -0
  9. package/dist/esm/components/atoms/Amount/Amount.d.ts +8 -0
  10. package/dist/esm/components/atoms/Amount/Amount.js +8 -0
  11. package/dist/esm/components/atoms/Amount/Amount.js.map +1 -0
  12. package/dist/esm/components/atoms/Avatar/Avatar.css +28 -0
  13. package/dist/esm/components/atoms/Avatar/Avatar.d.ts +8 -0
  14. package/dist/esm/components/atoms/Avatar/Avatar.js +7 -0
  15. package/dist/esm/components/atoms/Avatar/Avatar.js.map +1 -0
  16. package/dist/esm/components/atoms/Breadcrumb/Breadcrumb.css +57 -0
  17. package/dist/esm/components/atoms/Breadcrumb/Breadcrumb.d.ts +10 -0
  18. package/dist/esm/components/atoms/Breadcrumb/Breadcrumb.js +6 -0
  19. package/dist/esm/components/atoms/Breadcrumb/Breadcrumb.js.map +1 -0
  20. package/dist/esm/components/atoms/Button/Button.css +133 -0
  21. package/dist/esm/components/atoms/Button/Button.d.ts +13 -0
  22. package/dist/esm/components/atoms/Button/Button.js +8 -0
  23. package/dist/esm/components/atoms/Button/Button.js.map +1 -0
  24. package/dist/esm/components/atoms/ButtonAction/ButtonAction.css +93 -0
  25. package/dist/esm/components/atoms/ButtonAction/ButtonAction.d.ts +11 -0
  26. package/dist/esm/components/atoms/ButtonAction/ButtonAction.js +7 -0
  27. package/dist/esm/components/atoms/ButtonAction/ButtonAction.js.map +1 -0
  28. package/dist/esm/components/atoms/CheckBox/CheckBox.css +33 -0
  29. package/dist/esm/components/atoms/CheckBox/CheckBox.d.ts +8 -0
  30. package/dist/esm/components/atoms/CheckBox/CheckBox.js +7 -0
  31. package/dist/esm/components/atoms/CheckBox/CheckBox.js.map +1 -0
  32. package/dist/esm/components/atoms/Icon/Icon.css +23 -0
  33. package/dist/esm/components/atoms/Icon/Icon.d.ts +7 -0
  34. package/dist/esm/components/atoms/Icon/Icon.js +7 -0
  35. package/dist/esm/components/atoms/Icon/Icon.js.map +1 -0
  36. package/dist/esm/components/atoms/Input/Input.css +63 -0
  37. package/dist/esm/components/atoms/Input/Input.d.ts +13 -0
  38. package/dist/esm/components/atoms/Input/Input.js +34 -0
  39. package/dist/esm/components/atoms/Input/Input.js.map +1 -0
  40. package/dist/esm/components/atoms/InputMoney/InputMoney.css +7 -0
  41. package/dist/esm/components/atoms/InputMoney/InputMoney.d.ts +12 -0
  42. package/dist/esm/components/atoms/InputMoney/InputMoney.js +15 -0
  43. package/dist/esm/components/atoms/InputMoney/InputMoney.js.map +1 -0
  44. package/dist/esm/components/atoms/InputNumber/InputNumber.css +7 -0
  45. package/dist/esm/components/atoms/InputNumber/InputNumber.d.ts +10 -0
  46. package/dist/esm/components/atoms/InputNumber/InputNumber.js +14 -0
  47. package/dist/esm/components/atoms/InputNumber/InputNumber.js.map +1 -0
  48. package/dist/esm/components/atoms/InputPassword/InputPassword.css +38 -0
  49. package/dist/esm/components/atoms/InputPassword/InputPassword.d.ts +12 -0
  50. package/dist/esm/components/atoms/InputPassword/InputPassword.js +24 -0
  51. package/dist/esm/components/atoms/InputPassword/InputPassword.js.map +1 -0
  52. package/dist/esm/components/atoms/InputText/InputText.css +7 -0
  53. package/dist/esm/components/atoms/InputText/InputText.d.ts +10 -0
  54. package/dist/esm/components/atoms/InputText/InputText.js +14 -0
  55. package/dist/esm/components/atoms/InputText/InputText.js.map +1 -0
  56. package/dist/esm/components/atoms/Poster/Poster.css +12 -0
  57. package/dist/esm/components/atoms/Poster/Poster.d.ts +3 -0
  58. package/dist/esm/components/atoms/Poster/Poster.js +6 -0
  59. package/dist/esm/components/atoms/Poster/Poster.js.map +1 -0
  60. package/dist/esm/components/atoms/ProgressBar/ProgressBar.css +66 -0
  61. package/dist/esm/components/atoms/ProgressBar/ProgressBar.d.ts +8 -0
  62. package/dist/esm/components/atoms/ProgressBar/ProgressBar.js +7 -0
  63. package/dist/esm/components/atoms/ProgressBar/ProgressBar.js.map +1 -0
  64. package/dist/esm/components/atoms/RadioButton/RadioButton.css +33 -0
  65. package/dist/esm/components/atoms/RadioButton/RadioButton.d.ts +8 -0
  66. package/dist/esm/components/atoms/RadioButton/RadioButton.js +7 -0
  67. package/dist/esm/components/atoms/RadioButton/RadioButton.js.map +1 -0
  68. package/dist/esm/components/atoms/SearchInput/SearchInput.css +10 -0
  69. package/dist/esm/components/atoms/SearchInput/SearchInput.d.ts +9 -0
  70. package/dist/esm/components/atoms/SearchInput/SearchInput.js +8 -0
  71. package/dist/esm/components/atoms/SearchInput/SearchInput.js.map +1 -0
  72. package/dist/esm/components/atoms/Skeleton/Skeleton.css +36 -0
  73. package/dist/esm/components/atoms/Skeleton/Skeleton.d.ts +3 -0
  74. package/dist/esm/components/atoms/Skeleton/Skeleton.js +6 -0
  75. package/dist/esm/components/atoms/Skeleton/Skeleton.js.map +1 -0
  76. package/dist/esm/components/atoms/SkeletonText/SkeletonText.css +59 -0
  77. package/dist/esm/components/atoms/SkeletonText/SkeletonText.d.ts +7 -0
  78. package/dist/esm/components/atoms/SkeletonText/SkeletonText.js +7 -0
  79. package/dist/esm/components/atoms/SkeletonText/SkeletonText.js.map +1 -0
  80. package/dist/esm/components/atoms/Switch/Switch.css +35 -0
  81. package/dist/esm/components/atoms/Switch/Switch.d.ts +9 -0
  82. package/dist/esm/components/atoms/Switch/Switch.js +7 -0
  83. package/dist/esm/components/atoms/Switch/Switch.js.map +1 -0
  84. package/dist/esm/components/atoms/TabularText/TabularText.css +15 -0
  85. package/dist/esm/components/atoms/TabularText/TabularText.d.ts +6 -0
  86. package/dist/esm/components/atoms/TabularText/TabularText.js +11 -0
  87. package/dist/esm/components/atoms/TabularText/TabularText.js.map +1 -0
  88. package/dist/esm/components/atoms/index.d.ts +20 -0
  89. package/dist/esm/components/atoms/index.js +21 -0
  90. package/dist/esm/components/atoms/index.js.map +1 -0
  91. package/dist/esm/components/definitions.d.ts +6 -0
  92. package/dist/esm/components/definitions.js +2 -0
  93. package/dist/esm/components/definitions.js.map +1 -0
  94. package/dist/esm/components/index.d.ts +4 -0
  95. package/dist/esm/components/index.js +5 -0
  96. package/dist/esm/components/index.js.map +1 -0
  97. package/dist/esm/components/molecules/Ballot/Ballot.css +58 -0
  98. package/dist/esm/components/molecules/Ballot/Ballot.d.ts +11 -0
  99. package/dist/esm/components/molecules/Ballot/Ballot.js +8 -0
  100. package/dist/esm/components/molecules/Ballot/Ballot.js.map +1 -0
  101. package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.css +78 -0
  102. package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.d.ts +16 -0
  103. package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.js +40 -0
  104. package/dist/esm/components/molecules/ButtonToggle/ButtonToggle.js.map +1 -0
  105. package/dist/esm/components/molecules/CheckBoxLabel/CheckBoxLabel.css +40 -0
  106. package/dist/esm/components/molecules/CheckBoxLabel/CheckBoxLabel.d.ts +10 -0
  107. package/dist/esm/components/molecules/CheckBoxLabel/CheckBoxLabel.js +24 -0
  108. package/dist/esm/components/molecules/CheckBoxLabel/CheckBoxLabel.js.map +1 -0
  109. package/dist/esm/components/molecules/DayPicker/DayPicker.css +66 -0
  110. package/dist/esm/components/molecules/DayPicker/DayPicker.d.ts +12 -0
  111. package/dist/esm/components/molecules/DayPicker/DayPicker.js +39 -0
  112. package/dist/esm/components/molecules/DayPicker/DayPicker.js.map +1 -0
  113. package/dist/esm/components/molecules/DayRangePicker/DayRangePicker.css +68 -0
  114. package/dist/esm/components/molecules/DayRangePicker/DayRangePicker.d.ts +13 -0
  115. package/dist/esm/components/molecules/DayRangePicker/DayRangePicker.js +37 -0
  116. package/dist/esm/components/molecules/DayRangePicker/DayRangePicker.js.map +1 -0
  117. package/dist/esm/components/molecules/MoneyField/MoneyField.css +7 -0
  118. package/dist/esm/components/molecules/MoneyField/MoneyField.d.ts +12 -0
  119. package/dist/esm/components/molecules/MoneyField/MoneyField.js +13 -0
  120. package/dist/esm/components/molecules/MoneyField/MoneyField.js.map +1 -0
  121. package/dist/esm/components/molecules/MonthPicker/MonthPicker.css +40 -0
  122. package/dist/esm/components/molecules/MonthPicker/MonthPicker.d.ts +12 -0
  123. package/dist/esm/components/molecules/MonthPicker/MonthPicker.js +27 -0
  124. package/dist/esm/components/molecules/MonthPicker/MonthPicker.js.map +1 -0
  125. package/dist/esm/components/molecules/MonthTitlePicker/MonthTitlePicker.css +16 -0
  126. package/dist/esm/components/molecules/MonthTitlePicker/MonthTitlePicker.d.ts +12 -0
  127. package/dist/esm/components/molecules/MonthTitlePicker/MonthTitlePicker.js +43 -0
  128. package/dist/esm/components/molecules/MonthTitlePicker/MonthTitlePicker.js.map +1 -0
  129. package/dist/esm/components/molecules/NumberField/NumberField.css +7 -0
  130. package/dist/esm/components/molecules/NumberField/NumberField.d.ts +10 -0
  131. package/dist/esm/components/molecules/NumberField/NumberField.js +13 -0
  132. package/dist/esm/components/molecules/NumberField/NumberField.js.map +1 -0
  133. package/dist/esm/components/molecules/Pagination/Pagination.css +66 -0
  134. package/dist/esm/components/molecules/Pagination/Pagination.d.ts +27 -0
  135. package/dist/esm/components/molecules/Pagination/Pagination.js +219 -0
  136. package/dist/esm/components/molecules/Pagination/Pagination.js.map +1 -0
  137. package/dist/esm/components/molecules/PasswordField/PasswordField.css +12 -0
  138. package/dist/esm/components/molecules/PasswordField/PasswordField.d.ts +10 -0
  139. package/dist/esm/components/molecules/PasswordField/PasswordField.js +18 -0
  140. package/dist/esm/components/molecules/PasswordField/PasswordField.js.map +1 -0
  141. package/dist/esm/components/molecules/RadioButtonLabel/RadioButtonLabel.css +40 -0
  142. package/dist/esm/components/molecules/RadioButtonLabel/RadioButtonLabel.d.ts +11 -0
  143. package/dist/esm/components/molecules/RadioButtonLabel/RadioButtonLabel.js +21 -0
  144. package/dist/esm/components/molecules/RadioButtonLabel/RadioButtonLabel.js.map +1 -0
  145. package/dist/esm/components/molecules/SwitchLabel/SwitchLabel.css +40 -0
  146. package/dist/esm/components/molecules/SwitchLabel/SwitchLabel.d.ts +10 -0
  147. package/dist/esm/components/molecules/SwitchLabel/SwitchLabel.js +21 -0
  148. package/dist/esm/components/molecules/SwitchLabel/SwitchLabel.js.map +1 -0
  149. package/dist/esm/components/molecules/TextField/TextField.css +7 -0
  150. package/dist/esm/components/molecules/TextField/TextField.d.ts +10 -0
  151. package/dist/esm/components/molecules/TextField/TextField.js +13 -0
  152. package/dist/esm/components/molecules/TextField/TextField.js.map +1 -0
  153. package/dist/esm/components/molecules/Toolbar/Toolbar.css +50 -0
  154. package/dist/esm/components/molecules/Toolbar/Toolbar.d.ts +9 -0
  155. package/dist/esm/components/molecules/Toolbar/Toolbar.js +6 -0
  156. package/dist/esm/components/molecules/Toolbar/Toolbar.js.map +1 -0
  157. package/dist/esm/components/molecules/YearPicker/YearPicker.css +77 -0
  158. package/dist/esm/components/molecules/YearPicker/YearPicker.d.ts +12 -0
  159. package/dist/esm/components/molecules/YearPicker/YearPicker.js +46 -0
  160. package/dist/esm/components/molecules/YearPicker/YearPicker.js.map +1 -0
  161. package/dist/esm/components/molecules/index.d.ts +16 -0
  162. package/dist/esm/components/molecules/index.js +17 -0
  163. package/dist/esm/components/molecules/index.js.map +1 -0
  164. package/dist/esm/components/organisms/AutocompleteField/AutocompleteField.css +71 -0
  165. package/dist/esm/components/organisms/AutocompleteField/AutocompleteField.d.ts +14 -0
  166. package/dist/esm/components/organisms/AutocompleteField/AutocompleteField.js +161 -0
  167. package/dist/esm/components/organisms/AutocompleteField/AutocompleteField.js.map +1 -0
  168. package/dist/esm/components/organisms/Card/Card.css +11 -0
  169. package/dist/esm/components/organisms/Card/Card.d.ts +3 -0
  170. package/dist/esm/components/organisms/Card/Card.js +6 -0
  171. package/dist/esm/components/organisms/Card/Card.js.map +1 -0
  172. package/dist/esm/components/organisms/Confirmation/Confirmation.css +125 -0
  173. package/dist/esm/components/organisms/Confirmation/Confirmation.d.ts +38 -0
  174. package/dist/esm/components/organisms/Confirmation/Confirmation.js +64 -0
  175. package/dist/esm/components/organisms/Confirmation/Confirmation.js.map +1 -0
  176. package/dist/esm/components/organisms/Datatable/Datatable.d.ts +18 -0
  177. package/dist/esm/components/organisms/Datatable/Datatable.js +18 -0
  178. package/dist/esm/components/organisms/Datatable/Datatable.js.map +1 -0
  179. package/dist/esm/components/organisms/DateField/DateField.css +37 -0
  180. package/dist/esm/components/organisms/DateField/DateField.d.ts +13 -0
  181. package/dist/esm/components/organisms/DateField/DateField.js +35 -0
  182. package/dist/esm/components/organisms/DateField/DateField.js.map +1 -0
  183. package/dist/esm/components/organisms/DatePicker/DatePicker.css +75 -0
  184. package/dist/esm/components/organisms/DatePicker/DatePicker.d.ts +15 -0
  185. package/dist/esm/components/organisms/DatePicker/DatePicker.js +99 -0
  186. package/dist/esm/components/organisms/DatePicker/DatePicker.js.map +1 -0
  187. package/dist/esm/components/organisms/DateRangeField/DateRangeField.css +37 -0
  188. package/dist/esm/components/organisms/DateRangeField/DateRangeField.d.ts +14 -0
  189. package/dist/esm/components/organisms/DateRangeField/DateRangeField.js +37 -0
  190. package/dist/esm/components/organisms/DateRangeField/DateRangeField.js.map +1 -0
  191. package/dist/esm/components/organisms/DateRangePicker/DateRangePicker.css +81 -0
  192. package/dist/esm/components/organisms/DateRangePicker/DateRangePicker.d.ts +16 -0
  193. package/dist/esm/components/organisms/DateRangePicker/DateRangePicker.js +89 -0
  194. package/dist/esm/components/organisms/DateRangePicker/DateRangePicker.js.map +1 -0
  195. package/dist/esm/components/organisms/FormNavigation/FormNavigation.css +29 -0
  196. package/dist/esm/components/organisms/FormNavigation/FormNavigation.d.ts +7 -0
  197. package/dist/esm/components/organisms/FormNavigation/FormNavigation.js +7 -0
  198. package/dist/esm/components/organisms/FormNavigation/FormNavigation.js.map +1 -0
  199. package/dist/esm/components/organisms/Modal/Modal.css +59 -0
  200. package/dist/esm/components/organisms/Modal/Modal.d.ts +7 -0
  201. package/dist/esm/components/organisms/Modal/Modal.js +8 -0
  202. package/dist/esm/components/organisms/Modal/Modal.js.map +1 -0
  203. package/dist/esm/components/organisms/SelectField/SelectField.css +10 -0
  204. package/dist/esm/components/organisms/SelectField/SelectField.d.ts +13 -0
  205. package/dist/esm/components/organisms/SelectField/SelectField.js +90 -0
  206. package/dist/esm/components/organisms/SelectField/SelectField.js.map +1 -0
  207. package/dist/esm/components/organisms/Snackbar/Snackbar.css +66 -0
  208. package/dist/esm/components/organisms/Snackbar/Snackbar.d.ts +22 -0
  209. package/dist/esm/components/organisms/Snackbar/Snackbar.js +54 -0
  210. package/dist/esm/components/organisms/Snackbar/Snackbar.js.map +1 -0
  211. package/dist/esm/components/organisms/index.d.ts +12 -0
  212. package/dist/esm/components/organisms/index.js +13 -0
  213. package/dist/esm/components/organisms/index.js.map +1 -0
  214. package/dist/esm/context.d.ts +9 -0
  215. package/dist/esm/context.js +15 -0
  216. package/dist/esm/context.js.map +1 -0
  217. package/dist/esm/hooks/form-control.hook.d.ts +15 -0
  218. package/dist/esm/hooks/form-control.hook.js +77 -0
  219. package/dist/esm/hooks/form-control.hook.js.map +1 -0
  220. package/dist/esm/hooks/form-group.hook.d.ts +2 -0
  221. package/dist/esm/hooks/form-group.hook.js +22 -0
  222. package/dist/esm/hooks/form-group.hook.js.map +1 -0
  223. package/dist/esm/hooks/index.d.ts +3 -0
  224. package/dist/esm/hooks/index.js +4 -0
  225. package/dist/esm/hooks/index.js.map +1 -0
  226. package/dist/esm/hooks/list-control.hook.d.ts +19 -0
  227. package/dist/esm/hooks/list-control.hook.js +139 -0
  228. package/dist/esm/hooks/list-control.hook.js.map +1 -0
  229. package/dist/esm/index.d.ts +5 -0
  230. package/dist/esm/index.js +6 -0
  231. package/dist/esm/index.js.map +1 -0
  232. package/dist/esm/models.d.ts +54 -0
  233. package/dist/esm/models.js +42 -0
  234. package/dist/esm/models.js.map +1 -0
  235. package/dist/esm/types.d.ts +12 -0
  236. package/dist/esm/types.js +7 -0
  237. package/dist/esm/types.js.map +1 -0
  238. package/dist/esm/utils/css.d.ts +3 -0
  239. package/dist/esm/utils/css.js +12 -0
  240. package/dist/esm/utils/css.js.map +1 -0
  241. package/dist/esm/utils/date-picker.d.ts +1 -0
  242. package/dist/esm/utils/date-picker.js +9 -0
  243. package/dist/esm/utils/date-picker.js.map +1 -0
  244. package/dist/esm/utils/date-range-picker.d.ts +9 -0
  245. package/dist/esm/utils/date-range-picker.js +97 -0
  246. package/dist/esm/utils/date-range-picker.js.map +1 -0
  247. package/dist/esm/utils/day-picker.d.ts +9 -0
  248. package/dist/esm/utils/day-picker.js +84 -0
  249. package/dist/esm/utils/day-picker.js.map +1 -0
  250. package/dist/esm/utils/month-picker.d.ts +14 -0
  251. package/dist/esm/utils/month-picker.js +72 -0
  252. package/dist/esm/utils/month-picker.js.map +1 -0
  253. package/dist/esm/utils/year-picker.d.ts +17 -0
  254. package/dist/esm/utils/year-picker.js +83 -0
  255. package/dist/esm/utils/year-picker.js.map +1 -0
  256. package/package.json +72 -0
  257. package/readme.md +23 -0
@@ -0,0 +1,54 @@
1
+ export interface ListFieldElement<T = unknown> {
2
+ description: string;
3
+ title: string;
4
+ value: T;
5
+ code?: string;
6
+ img?: string;
7
+ initials?: string;
8
+ subtitle?: string;
9
+ compareTo(value: T): boolean;
10
+ hasCoincidence(pattern: string): boolean;
11
+ }
12
+ export declare class ListFieldSuggestions<T = unknown> {
13
+ readonly collection: ListFieldElement<T>[];
14
+ constructor(collection: ListFieldElement<T>[]);
15
+ hasElement(value: T): Undefined<ListFieldElement<T>>;
16
+ }
17
+ export interface DayState {
18
+ value?: number;
19
+ disabled: boolean;
20
+ forbidden: boolean;
21
+ selected: boolean;
22
+ }
23
+ export interface WeekState {
24
+ days: DayState[];
25
+ }
26
+ export interface DayRangeState {
27
+ value?: number;
28
+ disabled: boolean;
29
+ forbidden: boolean;
30
+ ranged: boolean;
31
+ selected: boolean;
32
+ }
33
+ export interface WeekRangeState {
34
+ days: DayRangeState[];
35
+ }
36
+ export interface MonthState {
37
+ value: number;
38
+ label: string;
39
+ disabled: boolean;
40
+ selected: boolean;
41
+ }
42
+ export interface YearState {
43
+ value?: number;
44
+ disabled: boolean;
45
+ selected: boolean;
46
+ }
47
+ export declare class DateRange {
48
+ readonly description: string;
49
+ readonly minDate: Date;
50
+ readonly maxDate: Date;
51
+ constructor(minDate: Date, maxDate?: Date);
52
+ recalculate(date: Date): DateRange;
53
+ static now(): DateRange;
54
+ }
@@ -0,0 +1,42 @@
1
+ import { formatDate, isAfter, isBefore, normalizeMinTime, timeDifference } from '@rolster/helpers-date';
2
+ const FORMAT_DESCRIPTION = 'dd/mm/aa';
3
+ export class ListFieldSuggestions {
4
+ constructor(collection) {
5
+ this.collection = collection;
6
+ }
7
+ hasElement(value) {
8
+ const [element] = this.collection.filter((element) => element.compareTo(value));
9
+ return element;
10
+ }
11
+ }
12
+ export class DateRange {
13
+ constructor(minDate, maxDate) {
14
+ this.minDate = normalizeMinTime(minDate);
15
+ if (maxDate && isBefore(maxDate, minDate)) {
16
+ this.maxDate = normalizeMinTime(maxDate);
17
+ }
18
+ else {
19
+ this.maxDate = normalizeMinTime(minDate);
20
+ }
21
+ const minFormat = formatDate(this.minDate, FORMAT_DESCRIPTION);
22
+ const maxFormat = formatDate(this.maxDate, FORMAT_DESCRIPTION);
23
+ this.description = `${minFormat} - ${maxFormat}`;
24
+ }
25
+ recalculate(date) {
26
+ if (isBefore(this.minDate, date)) {
27
+ return new DateRange(date, this.maxDate);
28
+ }
29
+ if (isAfter(this.maxDate, date)) {
30
+ return new DateRange(this.minDate, date);
31
+ }
32
+ const minDifference = timeDifference(date, this.minDate);
33
+ const maxDifference = timeDifference(this.maxDate, date);
34
+ return minDifference > maxDifference
35
+ ? new DateRange(this.minDate, date)
36
+ : new DateRange(date, this.maxDate);
37
+ }
38
+ static now() {
39
+ return new DateRange(new Date());
40
+ }
41
+ }
42
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAE/B,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAgBtC,MAAM,OAAO,oBAAoB;IAC/B,YAA4B,UAAiC;QAAjC,eAAU,GAAV,UAAU,CAAuB;IAAG,CAAC;IAE1D,UAAU,CAAC,KAAQ;QACxB,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CACnD,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CACzB,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAsCD,MAAM,OAAO,SAAS;IAOpB,YAAY,OAAa,EAAE,OAAc;QACvC,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;YACzC,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;SAC1C;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;SAC1C;QAED,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAE/D,IAAI,CAAC,WAAW,GAAG,GAAG,SAAS,MAAM,SAAS,EAAE,CAAC;IACnD,CAAC;IAEM,WAAW,CAAC,IAAU;QAC3B,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YAChC,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC1C;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YAC/B,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SAC1C;QAED,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEzD,OAAO,aAAa,GAAG,aAAa;YAClC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;YACnC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAEM,MAAM,CAAC,GAAG;QACf,OAAO,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import { DateRange } from './models';
2
+ export declare enum PickerListenerType {
3
+ Select = "PickerSelect",
4
+ Now = "PickerNow",
5
+ Cancel = "PickerCancel"
6
+ }
7
+ type PickerValue = DateRange | Date | number;
8
+ export interface PickerListener<D extends PickerValue> {
9
+ type: PickerListenerType;
10
+ value?: D;
11
+ }
12
+ export {};
@@ -0,0 +1,7 @@
1
+ export var PickerListenerType;
2
+ (function (PickerListenerType) {
3
+ PickerListenerType["Select"] = "PickerSelect";
4
+ PickerListenerType["Now"] = "PickerNow";
5
+ PickerListenerType["Cancel"] = "PickerCancel";
6
+ })(PickerListenerType || (PickerListenerType = {}));
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,6CAAuB,CAAA;IACvB,uCAAiB,CAAA;IACjB,6CAAuB,CAAA;AACzB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B"}
@@ -0,0 +1,3 @@
1
+ type Status = Record<string, string | boolean | undefined | null>;
2
+ export declare function renderClassStatus(base: string, status?: Status): string;
3
+ export {};
@@ -0,0 +1,12 @@
1
+ export function renderClassStatus(base, status = {}) {
2
+ const resultClass = [base];
3
+ Object.entries(status).forEach(([name, value]) => {
4
+ if (value) {
5
+ typeof value === 'string'
6
+ ? resultClass.push(`${base}--${value}`)
7
+ : resultClass.push(`${base}--${name}`);
8
+ }
9
+ });
10
+ return resultClass.join(' ');
11
+ }
12
+ //# sourceMappingURL=css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css.js","sourceRoot":"","sources":["../../../src/utils/css.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAAiB,EAAE;IACjE,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC;IAE3B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QAC/C,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,KAAK,QAAQ;gBACvB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC;gBACvC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;SAC1C;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function verifyDateRange(date: Date, min?: Date, max?: Date): Date;
@@ -0,0 +1,9 @@
1
+ import { isAfter, isBefore } from '@rolster/helpers-date';
2
+ export function verifyDateRange(date, min, max) {
3
+ return min && isBefore(min, date)
4
+ ? min
5
+ : max && isAfter(max, date)
6
+ ? max
7
+ : date;
8
+ }
9
+ //# sourceMappingURL=date-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../src/utils/date-picker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,UAAU,eAAe,CAAC,IAAU,EAAE,GAAU,EAAE,GAAU;IAChE,OAAO,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;QAC/B,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;YAC3B,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,IAAI,CAAC;AACX,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { DateRange, WeekRangeState } from '../models';
2
+ interface Props {
3
+ date: Date;
4
+ range: DateRange;
5
+ minDate?: Date;
6
+ maxDate?: Date;
7
+ }
8
+ export declare function createRangePicker(props: Props): WeekRangeState[];
9
+ export {};
@@ -0,0 +1,97 @@
1
+ import { daysFromMonth, isBetween, refactorDay, weight } from '@rolster/helpers-date';
2
+ class Factory {
3
+ constructor(props) {
4
+ const { date, range, maxDate, minDate } = props;
5
+ this.date = new Date(date.getTime());
6
+ this.range = range;
7
+ this.maxDate = maxDate;
8
+ this.minDate = minDate;
9
+ this.date.setDate(1);
10
+ }
11
+ static execute(props) {
12
+ const factory = new Factory(props);
13
+ const firstWeek = factory.createFirstWeek();
14
+ const rightWeeks = factory.createRightWeeks();
15
+ return [firstWeek, ...rightWeeks];
16
+ }
17
+ createFirstWeek() {
18
+ const dayStart = this.date.getDay();
19
+ const days = [];
20
+ let day = 1;
21
+ for (let start = 0; start < dayStart; start++) {
22
+ days.push(this.createDayRangeState());
23
+ }
24
+ for (let end = dayStart; end < 7; end++) {
25
+ days.push(this.createDayRangeState(day));
26
+ day++;
27
+ }
28
+ return { days };
29
+ }
30
+ createRightWeeks() {
31
+ const rightWeeks = [];
32
+ const dayStart = this.date.getDay();
33
+ const dayCount = daysFromMonth(this.date.getFullYear(), this.date.getMonth());
34
+ let days = [];
35
+ let countDaysWeek = 1;
36
+ let day = 8 - dayStart;
37
+ do {
38
+ days.push(this.createDayRangeState(day));
39
+ day++;
40
+ countDaysWeek++;
41
+ if (countDaysWeek > 7) {
42
+ rightWeeks.push({ days });
43
+ days = [];
44
+ countDaysWeek = 1;
45
+ }
46
+ } while (day <= dayCount);
47
+ const daysPending = this.createDaysPending(days.length);
48
+ rightWeeks.push({ days: [...days, ...daysPending] });
49
+ return rightWeeks;
50
+ }
51
+ createDaysPending(daysWeek) {
52
+ const daysPending = [];
53
+ const length = 7 - daysWeek;
54
+ for (let index = 0; index < length; index++) {
55
+ daysPending.push(this.createDayRangeState());
56
+ }
57
+ return daysPending;
58
+ }
59
+ createDayRangeState(day) {
60
+ return {
61
+ value: day,
62
+ disabled: this.overflowDay(day || 0),
63
+ forbidden: !day,
64
+ ranged: day ? this.isRangedFromDate(day) : false,
65
+ selected: day ? this.isSelected(day) : false
66
+ };
67
+ }
68
+ isSelected(day) {
69
+ return (this.isSelectedForDate(this.range.minDate, day) ||
70
+ this.isSelectedForDate(this.range.maxDate, day));
71
+ }
72
+ isSelectedForDate(date, day) {
73
+ return (date.getFullYear() === this.date.getFullYear() &&
74
+ date.getMonth() === this.date.getMonth() &&
75
+ day === date.getDate());
76
+ }
77
+ isRangedFromDate(day) {
78
+ return isBetween(this.range.minDate, this.range.maxDate, refactorDay(this.date, day));
79
+ }
80
+ overflowDay(day) {
81
+ return this.minOverflowDay(day) || this.maxOverflowDay(day);
82
+ }
83
+ minOverflowDay(day) {
84
+ return this.minDate
85
+ ? weight(refactorDay(this.date, day)) < weight(this.minDate)
86
+ : false;
87
+ }
88
+ maxOverflowDay(day) {
89
+ return this.maxDate
90
+ ? weight(refactorDay(this.date, day)) > weight(this.maxDate)
91
+ : false;
92
+ }
93
+ }
94
+ export function createRangePicker(props) {
95
+ return Factory.execute(props);
96
+ }
97
+ //# sourceMappingURL=date-range-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-picker.js","sourceRoot":"","sources":["../../../src/utils/date-range-picker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { WeekState } from '../models';
2
+ interface Props {
3
+ value: number;
4
+ date: Date;
5
+ minDate?: Date;
6
+ maxDate?: Date;
7
+ }
8
+ export declare function createDayPicker(props: Props): WeekState[];
9
+ export {};
@@ -0,0 +1,84 @@
1
+ import { daysFromMonth, refactorDay, weight } from '@rolster/helpers-date';
2
+ class Factory {
3
+ constructor(props) {
4
+ const { date, value, maxDate, minDate } = props;
5
+ this.value = value;
6
+ this.date = new Date(date.getTime());
7
+ this.maxDate = maxDate;
8
+ this.minDate = minDate;
9
+ this.date.setDate(1);
10
+ }
11
+ static execute(props) {
12
+ const factory = new Factory(props);
13
+ const firstWeek = factory.createFirstWeek();
14
+ const rightWeeks = factory.createRightWeeks();
15
+ return [firstWeek, ...rightWeeks];
16
+ }
17
+ createFirstWeek() {
18
+ const dayStart = this.date.getDay();
19
+ const days = [];
20
+ let day = 1;
21
+ for (let start = 0; start < dayStart; start++) {
22
+ days.push(this.createDayState());
23
+ }
24
+ for (let end = dayStart; end < 7; end++) {
25
+ days.push(this.createDayState(day));
26
+ day++;
27
+ }
28
+ return { days };
29
+ }
30
+ createRightWeeks() {
31
+ const dayStart = this.date.getDay();
32
+ const rightWeeks = [];
33
+ const dayCount = daysFromMonth(this.date.getFullYear(), this.date.getMonth());
34
+ let days = [];
35
+ let countDaysWeek = 1;
36
+ let day = 8 - dayStart;
37
+ do {
38
+ days.push(this.createDayState(day));
39
+ day++;
40
+ countDaysWeek++;
41
+ if (countDaysWeek > 7) {
42
+ rightWeeks.push({ days });
43
+ days = [];
44
+ countDaysWeek = 1;
45
+ }
46
+ } while (day <= dayCount);
47
+ const daysPending = this.createDaysPending(days.length);
48
+ rightWeeks.push({ days: [...days, ...daysPending] });
49
+ return rightWeeks;
50
+ }
51
+ createDaysPending(daysWeek) {
52
+ const daysPending = [];
53
+ const length = 7 - daysWeek;
54
+ for (let index = 0; index < length; index++) {
55
+ daysPending.push(this.createDayState());
56
+ }
57
+ return daysPending;
58
+ }
59
+ createDayState(value) {
60
+ return {
61
+ disabled: this.overflowDay(value || 0),
62
+ forbidden: !value,
63
+ selected: value === this.value,
64
+ value
65
+ };
66
+ }
67
+ overflowDay(day) {
68
+ return this.minOverflowDay(day) || this.maxOverflowDay(day);
69
+ }
70
+ minOverflowDay(day) {
71
+ return this.minDate
72
+ ? weight(refactorDay(this.date, day)) < weight(this.minDate)
73
+ : false;
74
+ }
75
+ maxOverflowDay(day) {
76
+ return this.maxDate
77
+ ? weight(refactorDay(this.date, day)) > weight(this.maxDate)
78
+ : false;
79
+ }
80
+ }
81
+ export function createDayPicker(props) {
82
+ return Factory.execute(props);
83
+ }
84
+ //# sourceMappingURL=day-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"day-picker.js","sourceRoot":"","sources":["../../../src/utils/day-picker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Month } from '@rolster/helpers-date';
2
+ import { MonthState } from '../models';
3
+ interface Props {
4
+ value: number;
5
+ date: Date;
6
+ minDate?: Date;
7
+ maxDate?: Date;
8
+ }
9
+ export declare const MONTH_MAX_VALUE = Month.January;
10
+ export declare const MONTH_MIN_VALUE = Month.December;
11
+ export declare function isMinLimitMonth(month: number, date: Date, maxDate?: Date): boolean;
12
+ export declare function isMaxLimitMonth(month: number, date: Date, maxDate?: Date): boolean;
13
+ export declare function createMonthPicker(props: Props): MonthState[];
14
+ export {};
@@ -0,0 +1,72 @@
1
+ import { MONTH_NAMES, Month } from '@rolster/helpers-date';
2
+ export const MONTH_MAX_VALUE = Month.January;
3
+ export const MONTH_MIN_VALUE = Month.December;
4
+ class Factory {
5
+ constructor(props) {
6
+ const { date, value, maxDate, minDate } = props;
7
+ this.value = value;
8
+ this.date = new Date(date.getTime());
9
+ this.maxDate = maxDate;
10
+ this.minDate = minDate;
11
+ }
12
+ static execute(props) {
13
+ const factory = new Factory(props);
14
+ return [
15
+ factory.createMonth(0),
16
+ factory.createMonth(1),
17
+ factory.createMonth(2),
18
+ factory.createMonth(3),
19
+ factory.createMonth(4),
20
+ factory.createMonth(5),
21
+ factory.createMonth(6),
22
+ factory.createMonth(7),
23
+ factory.createMonth(8),
24
+ factory.createMonth(9),
25
+ factory.createMonth(10),
26
+ factory.createMonth(11)
27
+ ];
28
+ }
29
+ createMonth(value) {
30
+ return {
31
+ value,
32
+ label: MONTH_NAMES[value],
33
+ disabled: this.overflowMonth(value),
34
+ selected: value === this.value
35
+ };
36
+ }
37
+ get minYear() {
38
+ return this.minDate?.getFullYear() || 0;
39
+ }
40
+ get maxYear() {
41
+ return this.maxDate?.getFullYear() || 10000;
42
+ }
43
+ get minMonth() {
44
+ return this.minDate?.getMonth() || MONTH_MIN_VALUE;
45
+ }
46
+ get maxMonth() {
47
+ return this.maxDate?.getMonth() || MONTH_MAX_VALUE;
48
+ }
49
+ overflowMonth(month) {
50
+ return this.minOverflowMonth(month) || this.maxOverflowMonth(month);
51
+ }
52
+ minOverflowMonth(month) {
53
+ return this.date.getFullYear() === this.minYear && month < this.minMonth;
54
+ }
55
+ maxOverflowMonth(month) {
56
+ return this.date.getFullYear() === this.maxYear && month > this.maxMonth;
57
+ }
58
+ }
59
+ export function isMinLimitMonth(month, date, maxDate) {
60
+ const minYear = maxDate?.getFullYear() || 0;
61
+ const minMonth = maxDate?.getMonth() || 0;
62
+ return date.getFullYear() === minYear && month <= minMonth;
63
+ }
64
+ export function isMaxLimitMonth(month, date, maxDate) {
65
+ const maxYear = maxDate?.getFullYear() || 10000;
66
+ const maxMonth = maxDate?.getMonth() || 11;
67
+ return date.getFullYear() === maxYear && month >= maxMonth;
68
+ }
69
+ export function createMonthPicker(props) {
70
+ return Factory.execute(props);
71
+ }
72
+ //# sourceMappingURL=month-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"month-picker.js","sourceRoot":"","sources":["../../../src/utils/month-picker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { YearState } from '../models';
2
+ export declare const COUNT_YEAR_RANGE = 4;
3
+ interface Props {
4
+ value: number;
5
+ year: number;
6
+ minDate?: Date;
7
+ maxDate?: Date;
8
+ }
9
+ interface YearPickerTemplate {
10
+ hasNext: boolean;
11
+ hasPrevious: boolean;
12
+ maxRange: number;
13
+ minRange: number;
14
+ years: YearState[];
15
+ }
16
+ export declare function createYearPicker(props: Props): YearPickerTemplate;
17
+ export {};
@@ -0,0 +1,83 @@
1
+ export const COUNT_YEAR_RANGE = 4;
2
+ class FactoryYearPicker {
3
+ constructor(props) {
4
+ const { value, maxDate, minDate } = props;
5
+ this.value = value;
6
+ this.maxDate = maxDate;
7
+ this.minDate = minDate;
8
+ }
9
+ static execute(props) {
10
+ const factory = new FactoryYearPicker(props);
11
+ let year = props.year;
12
+ if (factory.minOverflowYear(year)) {
13
+ year = factory.minYear;
14
+ }
15
+ else if (factory.maxOverflowYear(year)) {
16
+ year = factory.maxYear;
17
+ }
18
+ const years = factory.createYears(year);
19
+ return {
20
+ hasNext: factory.hasNext,
21
+ hasPrevious: factory.hasPrevious,
22
+ maxRange: factory.maxYearRange,
23
+ minRange: factory.minYearRange,
24
+ years
25
+ };
26
+ }
27
+ createYears(year) {
28
+ const prevYears = [];
29
+ const nextYears = [];
30
+ this.minYearRange = year;
31
+ this.maxYearRange = year;
32
+ for (let index = 0; index < COUNT_YEAR_RANGE; index++) {
33
+ const yearPrev = year - COUNT_YEAR_RANGE + index;
34
+ const yearNext = year + index + 1;
35
+ const valuePrev = yearPrev >= this.minYear ? yearPrev : undefined;
36
+ const valueNext = yearNext <= this.maxYear ? yearNext : undefined;
37
+ const prevState = this.createYear(valuePrev);
38
+ const nextState = this.createYear(valueNext);
39
+ prevYears.push(prevState);
40
+ nextYears.push(nextState);
41
+ this.recalculateRange(prevState, nextState);
42
+ }
43
+ const yearCenter = this.createYear(year);
44
+ return [...prevYears, yearCenter, ...nextYears];
45
+ }
46
+ minOverflowYear(year) {
47
+ return year < this.minYear;
48
+ }
49
+ maxOverflowYear(year) {
50
+ return year > this.maxYear;
51
+ }
52
+ get minYear() {
53
+ return this.minDate?.getFullYear() || 0;
54
+ }
55
+ get maxYear() {
56
+ return this.maxDate?.getFullYear() || 10000;
57
+ }
58
+ get hasPrevious() {
59
+ return this.minYear < this.minYearRange;
60
+ }
61
+ get hasNext() {
62
+ return this.maxYear > this.maxYearRange;
63
+ }
64
+ createYear(value) {
65
+ return {
66
+ value,
67
+ disabled: !value,
68
+ selected: value === this.value
69
+ };
70
+ }
71
+ recalculateRange(prev, next) {
72
+ if (!!prev.value && this.minYearRange > prev.value) {
73
+ this.minYearRange = prev.value;
74
+ }
75
+ if (!!next.value && this.maxYearRange < next.value) {
76
+ this.maxYearRange = next.value;
77
+ }
78
+ }
79
+ }
80
+ export function createYearPicker(props) {
81
+ return FactoryYearPicker.execute(props);
82
+ }
83
+ //# sourceMappingURL=year-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"year-picker.js","sourceRoot":"","sources":["../../../src/utils/year-picker.ts"],"names":[],"mappings":"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"}