react-restyle-components 0.4.39 → 0.4.40

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 (232) hide show
  1. package/lib/index.js +3 -1
  2. package/lib/src/core-components/index.js +1 -1
  3. package/lib/src/core-components/src/components/Accordion/AccordionSection/Accordion.js +15 -1
  4. package/lib/src/core-components/src/components/Accordion/AccordionSection/AccordionContext.js +6 -1
  5. package/lib/src/core-components/src/components/Accordion/AccordionSection/AccordionSection.js +39 -1
  6. package/lib/src/core-components/src/components/Accordion/AccordionSection/Header.js +39 -1
  7. package/lib/src/core-components/src/components/Accordion/AccordionSection/elements.js +94 -57
  8. package/lib/src/core-components/src/components/Accordion/AccordionSection/hooks/useCurrentAccordionIndex.js +13 -1
  9. package/lib/src/core-components/src/components/Accordion/AccordionSection/index.js +3 -1
  10. package/lib/src/core-components/src/components/Accordion/AccordionSection/types.js +9 -1
  11. package/lib/src/core-components/src/components/Accordion/Collapsible/Collapsible2.component.js +249 -1
  12. package/lib/src/core-components/src/components/Action/types.js +8 -1
  13. package/lib/src/core-components/src/components/AlertBanner/AlertBanner.js +45 -1
  14. package/lib/src/core-components/src/components/AlertBanner/elements.js +120 -45
  15. package/lib/src/core-components/src/components/AlertBanner/index.js +2 -1
  16. package/lib/src/core-components/src/components/AlertBanner/types.js +10 -1
  17. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-group-by-multiple-select-multiple-fields-display/auto-complete-filter-group-by-multiple-select-multiple-fields-display.component.js +334 -1
  18. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multi-select-multi-fields-display-drag-drop/auto-complete-filter-multi-select-multi-fields-display-drag-drop.component.js +229 -1
  19. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multi-select-selected-top-display/auto-complete-filter-multi-select-selected-top-display.component.js +174 -1
  20. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.component.js +129 -2
  21. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-single-select/auto-complete-filter-single-select.component.js +55 -1
  22. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.js +308 -2
  23. package/lib/src/core-components/src/components/AutoComplete/auto-complete-group-by/auto-complete-group-by.component.js +115 -1
  24. package/lib/src/core-components/src/components/AutoComplete/autocomplete/autocomplete.js +442 -2
  25. package/lib/src/core-components/src/components/AutoComplete/index.js +8 -1
  26. package/lib/src/core-components/src/components/Avatar/Avatar.js +148 -14
  27. package/lib/src/core-components/src/components/Badge/Badge.js +25 -2
  28. package/lib/src/core-components/src/components/Badge/InnerBadge/Inline.js +25 -1
  29. package/lib/src/core-components/src/components/Badge/InnerBadge/InnerBadge.js +25 -1
  30. package/lib/src/core-components/src/components/Badge/InnerBadge/elements.js +78 -32
  31. package/lib/src/core-components/src/components/Badge/InnerBadge/index.js +1 -1
  32. package/lib/src/core-components/src/components/Badge/index.js +1 -1
  33. package/lib/src/core-components/src/components/Badge/types.js +5 -1
  34. package/lib/src/core-components/src/components/Breadcrumb/Breadcrumb.js +83 -1
  35. package/lib/src/core-components/src/components/Breadcrumb/elements.js +166 -94
  36. package/lib/src/core-components/src/components/Breadcrumb/index.js +3 -1
  37. package/lib/src/core-components/src/components/Breadcrumb/types.js +3 -1
  38. package/lib/src/core-components/src/components/Button/button.component.js +18 -1
  39. package/lib/src/core-components/src/components/Button/buttonGroup/buttonGroup.component.js +4 -1
  40. package/lib/src/core-components/src/components/Button/index.js +2 -1
  41. package/lib/src/core-components/src/components/Button/types.js +1 -1
  42. package/lib/src/core-components/src/components/Chip/Chip.js +64 -1
  43. package/lib/src/core-components/src/components/Chip/elements.js +148 -48
  44. package/lib/src/core-components/src/components/Chip/index.js +2 -1
  45. package/lib/src/core-components/src/components/Chip/types.js +4 -1
  46. package/lib/src/core-components/src/components/Divider/Divider.js +25 -1
  47. package/lib/src/core-components/src/components/Divider/elements.js +68 -31
  48. package/lib/src/core-components/src/components/Divider/index.js +2 -1
  49. package/lib/src/core-components/src/components/Divider/types.js +4 -1
  50. package/lib/src/core-components/src/components/DynamicGrid/DynamicGrid.js +147 -1
  51. package/lib/src/core-components/src/components/DynamicGrid/GridContainer.js +24 -17
  52. package/lib/src/core-components/src/components/DynamicGrid/elements.js +162 -100
  53. package/lib/src/core-components/src/components/DynamicGrid/index.js +3 -1
  54. package/lib/src/core-components/src/components/DynamicGrid/types.js +28 -1
  55. package/lib/src/core-components/src/components/DynamicGrid/utils.js +193 -1
  56. package/lib/src/core-components/src/components/FormField/FormField.js +103 -1
  57. package/lib/src/core-components/src/components/FormField/components/CheckboxGroupInput.js +37 -1
  58. package/lib/src/core-components/src/components/FormField/components/CheckboxInput.js +8 -1
  59. package/lib/src/core-components/src/components/FormField/components/CssMultilineInput.js +192 -1
  60. package/lib/src/core-components/src/components/FormField/components/DatePickerInput.js +99 -1
  61. package/lib/src/core-components/src/components/FormField/components/DropdownInput.js +70 -1
  62. package/lib/src/core-components/src/components/FormField/components/OtpInput.js +81 -1
  63. package/lib/src/core-components/src/components/FormField/components/PasswordInput.js +40 -1
  64. package/lib/src/core-components/src/components/FormField/components/PinInput.js +75 -1
  65. package/lib/src/core-components/src/components/FormField/components/RadioInput.js +54 -1
  66. package/lib/src/core-components/src/components/FormField/components/TextDropdownInput.js +94 -1
  67. package/lib/src/core-components/src/components/FormField/components/ToggleInput.js +36 -1
  68. package/lib/src/core-components/src/components/FormField/components/index.js +11 -1
  69. package/lib/src/core-components/src/components/FormField/css-properties.js +161 -1
  70. package/lib/src/core-components/src/components/FormField/index.js +2 -1
  71. package/lib/src/core-components/src/components/Icon/Icon.js +79 -1
  72. package/lib/src/core-components/src/components/Icon/index.js +2 -1
  73. package/lib/src/core-components/src/components/Icon/types.js +9 -1
  74. package/lib/src/core-components/src/components/Loader/loader.component.js +215 -2
  75. package/lib/src/core-components/src/components/Masonry/Masonry.js +73 -1
  76. package/lib/src/core-components/src/components/Masonry/elements.js +46 -29
  77. package/lib/src/core-components/src/components/Masonry/hooks.js +100 -1
  78. package/lib/src/core-components/src/components/Masonry/index.js +3 -1
  79. package/lib/src/core-components/src/components/Masonry/types.js +1 -1
  80. package/lib/src/core-components/src/components/Modal/BasicModal/modal.component.js +116 -1
  81. package/lib/src/core-components/src/components/Modal/index.js +2 -1
  82. package/lib/src/core-components/src/components/Modal/modal-confirm/modal-confirm.component.js +147 -1
  83. package/lib/src/core-components/src/components/Picker/color-picker/color-picker.component.js +12 -1
  84. package/lib/src/core-components/src/components/Picker/color-picker-modal/color-picker-modal.component.js +40 -1
  85. package/lib/src/core-components/src/components/Picker/index.js +2 -1
  86. package/lib/src/core-components/src/components/Selection/index.js +4 -1
  87. package/lib/src/core-components/src/components/Selection/multi-select/multi-select.component.js +49 -1
  88. package/lib/src/core-components/src/components/Selection/multi-select-with-field/multi-select-with-field.component.js +58 -1
  89. package/lib/src/core-components/src/components/Selection/multi-selection-dropdown/multi-selection-dropdown.component.js +43 -1
  90. package/lib/src/core-components/src/components/Selection/single-select/single-select.component.js +87 -1
  91. package/lib/src/core-components/src/components/Skeleton/Skeleton.js +51 -1
  92. package/lib/src/core-components/src/components/Skeleton/elements.js +143 -54
  93. package/lib/src/core-components/src/components/Skeleton/index.js +2 -1
  94. package/lib/src/core-components/src/components/Skeleton/types.js +4 -1
  95. package/lib/src/core-components/src/components/SpeedDial/SpeedDial.js +128 -1
  96. package/lib/src/core-components/src/components/SpeedDial/elements.js +132 -62
  97. package/lib/src/core-components/src/components/SpeedDial/index.js +2 -1
  98. package/lib/src/core-components/src/components/SpeedDial/types.js +3 -1
  99. package/lib/src/core-components/src/components/Stepper2/stepper.component.js +139 -1
  100. package/lib/src/core-components/src/components/Switch/Switch.js +26 -1
  101. package/lib/src/core-components/src/components/Switch/elements.js +103 -34
  102. package/lib/src/core-components/src/components/Switch/index.js +2 -1
  103. package/lib/src/core-components/src/components/Switch/types.js +3 -1
  104. package/lib/src/core-components/src/components/Table/Table.js +1332 -1
  105. package/lib/src/core-components/src/components/Table/columnReorder.d.ts +128 -0
  106. package/lib/src/core-components/src/components/Table/columnReorder.js +530 -0
  107. package/lib/src/core-components/src/components/Table/columnResize.d.ts +99 -0
  108. package/lib/src/core-components/src/components/Table/columnResize.js +399 -0
  109. package/lib/src/core-components/src/components/Table/elements.d.ts +9 -1
  110. package/lib/src/core-components/src/components/Table/elements.js +324 -155
  111. package/lib/src/core-components/src/components/Table/filters.js +555 -30
  112. package/lib/src/core-components/src/components/Table/hooks.js +536 -2
  113. package/lib/src/core-components/src/components/Table/index.d.ts +4 -0
  114. package/lib/src/core-components/src/components/Table/index.js +6 -1
  115. package/lib/src/core-components/src/components/Table/types.d.ts +58 -0
  116. package/lib/src/core-components/src/components/Table/types.js +1 -1
  117. package/lib/src/core-components/src/components/Tabs/tabs.component.js +22 -1
  118. package/lib/src/core-components/src/components/Tags1/Tags.component.js +118 -1
  119. package/lib/src/core-components/src/components/Tags1/types.js +20 -1
  120. package/lib/src/core-components/src/components/Timer1/timer.component.js +76 -1
  121. package/lib/src/core-components/src/components/Toast/Toast.js +50 -1
  122. package/lib/src/core-components/src/components/Toast/elements.js +122 -41
  123. package/lib/src/core-components/src/components/Toast/index.js +2 -1
  124. package/lib/src/core-components/src/components/Toast/types.js +9 -1
  125. package/lib/src/core-components/src/components/Tooltip/Tooltip.js +200 -1
  126. package/lib/src/core-components/src/components/Tooltip/elements.js +117 -55
  127. package/lib/src/core-components/src/components/Tooltip/index.js +2 -1
  128. package/lib/src/core-components/src/components/Tooltip/types.js +17 -1
  129. package/lib/src/core-components/src/components/Tooltip/utils.js +140 -1
  130. package/lib/src/core-components/src/components/TreeSelect/TreeSelect.js +303 -1
  131. package/lib/src/core-components/src/components/TreeSelect/elements.js +216 -117
  132. package/lib/src/core-components/src/components/TreeSelect/hooks.js +252 -1
  133. package/lib/src/core-components/src/components/TreeSelect/index.js +3 -1
  134. package/lib/src/core-components/src/components/TreeSelect/types.js +1 -1
  135. package/lib/src/core-components/src/components/index.js +30 -1
  136. package/lib/src/core-components/src/components/pdf/pdf-images.components.js +7 -1
  137. package/lib/src/core-components/src/components/pdf/pdf-table.components.js +48 -5
  138. package/lib/src/core-components/src/components/pdf/pdf-typography.components.js +70 -1
  139. package/lib/src/core-components/src/components/pdf/pdf-wrapped-view.components.js +50 -1
  140. package/lib/src/core-components/src/core-components/Avatar.js +33 -4
  141. package/lib/src/core-components/src/core-components/CoreButton/CoreButton.js +10 -1
  142. package/lib/src/core-components/src/core-components/CoreButton/elements.js +176 -67
  143. package/lib/src/core-components/src/core-components/CoreButton/index.js +3 -1
  144. package/lib/src/core-components/src/core-components/CoreButton/types.js +6 -1
  145. package/lib/src/core-components/src/core-components/CoreButton/utils.js +12 -1
  146. package/lib/src/core-components/src/core-components/Divider/Divider.js +19 -4
  147. package/lib/src/core-components/src/core-components/Divider/index.js +1 -1
  148. package/lib/src/core-components/src/core-components/SelectionCardStrip/index.js +1 -1
  149. package/lib/src/core-components/src/core-components/SelectionCardStrip/selectionCardStrip.js +33 -10
  150. package/lib/src/core-components/src/core-components/StateLayer.js +5 -3
  151. package/lib/src/core-components/src/core-components/ToggleCore/elements.js +50 -25
  152. package/lib/src/core-components/src/core-components/ToggleCore/index.js +2 -1
  153. package/lib/src/core-components/src/core-components/ToggleCore/toggleCore.js +14 -1
  154. package/lib/src/core-components/src/core-components/atoms/Input/Input.js +22 -1
  155. package/lib/src/core-components/src/core-components/atoms/Label/Label.js +21 -1
  156. package/lib/src/core-components/src/core-components/atoms/Textarea/Textarea.js +19 -1
  157. package/lib/src/core-components/src/core-components/index.js +3 -1
  158. package/lib/src/core-components/src/helpers/constants.js +11 -1
  159. package/lib/src/core-components/src/hooks/index.js +1 -1
  160. package/lib/src/core-components/src/hooks/outside.hook.js +28 -1
  161. package/lib/src/core-components/src/index.js +12 -1
  162. package/lib/src/core-components/src/tc.global.css +12 -1
  163. package/lib/src/core-components/src/tc.module.css +1 -1
  164. package/lib/src/core-components/src/utils/abstracts/breakpoints/index.js +28 -1
  165. package/lib/src/core-components/src/utils/abstracts/colors/index.js +49 -1
  166. package/lib/src/core-components/src/utils/abstracts/index.js +5 -1
  167. package/lib/src/core-components/src/utils/abstracts/space/index.js +26 -1
  168. package/lib/src/core-components/src/utils/abstracts/theme/ThemeBoundary.js +8 -1
  169. package/lib/src/core-components/src/utils/abstracts/theme/default-themes.js +30 -1
  170. package/lib/src/core-components/src/utils/abstracts/theme/index.js +3 -1
  171. package/lib/src/core-components/src/utils/abstracts/theme/theme.js +30 -1
  172. package/lib/src/core-components/src/utils/abstracts/theme/types.js +1 -1
  173. package/lib/src/core-components/src/utils/abstracts/theme/useTheme.js +17 -1
  174. package/lib/src/core-components/src/utils/abstracts/typography/index.js +25 -1
  175. package/lib/src/core-components/src/utils/context/DefaultsProvider.js +8 -1
  176. package/lib/src/core-components/src/utils/context/InternalProvider.js +24 -1
  177. package/lib/src/core-components/src/utils/context/index.js +2 -1
  178. package/lib/src/core-components/src/utils/designTokens.js +125 -1
  179. package/lib/src/core-components/src/utils/helpers/attachSubComponents.js +23 -1
  180. package/lib/src/core-components/src/utils/helpers/flattenChildren.js +11 -1
  181. package/lib/src/core-components/src/utils/helpers/getChildByType.js +3 -1
  182. package/lib/src/core-components/src/utils/helpers/index.js +5 -1
  183. package/lib/src/core-components/src/utils/helpers/isComponentType.js +16 -1
  184. package/lib/src/core-components/src/utils/helpers/separateChildrenByType.js +12 -1
  185. package/lib/src/core-components/src/utils/hooks/index.js +18 -1
  186. package/lib/src/core-components/src/utils/hooks/useClickOutside.js +18 -1
  187. package/lib/src/core-components/src/utils/hooks/useCombinedRefs.js +17 -1
  188. package/lib/src/core-components/src/utils/hooks/useDebouncedCallback.js +12 -1
  189. package/lib/src/core-components/src/utils/hooks/useDebouncedValue.js +20 -1
  190. package/lib/src/core-components/src/utils/hooks/useDeprecation.js +40 -1
  191. package/lib/src/core-components/src/utils/hooks/useDeviceDetect.js +10 -1
  192. package/lib/src/core-components/src/utils/hooks/useDeviceForm.js +24 -1
  193. package/lib/src/core-components/src/utils/hooks/useDisableBodyScroll.js +16 -1
  194. package/lib/src/core-components/src/utils/hooks/useHoverState.js +36 -1
  195. package/lib/src/core-components/src/utils/hooks/useId.js +7 -1
  196. package/lib/src/core-components/src/utils/hooks/useIsBrowser.js +11 -1
  197. package/lib/src/core-components/src/utils/hooks/useMediaQuery.js +16 -1
  198. package/lib/src/core-components/src/utils/hooks/useOverflow.js +22 -1
  199. package/lib/src/core-components/src/utils/hooks/useSafeLayoutEffect.js +5 -1
  200. package/lib/src/core-components/src/utils/hooks/useScrollingUp.js +18 -1
  201. package/lib/src/core-components/src/utils/hooks/useTrapFocus.js +30 -1
  202. package/lib/src/core-components/src/utils/hooks/useWindowDimensions.js +23 -1
  203. package/lib/src/core-components/src/utils/index.js +9 -1
  204. package/lib/src/core-components/src/utils/stories/Wrappers.js +23 -8
  205. package/lib/src/core-components/src/utils/stories/cleanProps.js +5 -1
  206. package/lib/src/core-components/src/utils/stories/index.js +4 -1
  207. package/lib/src/core-components/src/utils/stories/sleep.js +4 -1
  208. package/lib/src/core-components/src/utils/stories/view-ports.js +50 -1
  209. package/lib/src/core-components/src/utils/styling/calcWidthOfColumns.js +5 -1
  210. package/lib/src/core-components/src/utils/styling/createGridContainer.js +12 -6
  211. package/lib/src/core-components/src/utils/styling/createTransition.js +7 -2
  212. package/lib/src/core-components/src/utils/styling/forwardProps.js +10 -1
  213. package/lib/src/core-components/src/utils/styling/index.js +5 -1
  214. package/lib/src/core-components/src/utils/styling/pxToRem.js +6 -1
  215. package/lib/src/core-components/src/utils/testing/getComputedStyle.js +3 -1
  216. package/lib/src/core-components/src/utils/testing/index.js +1 -1
  217. package/lib/src/core-components/src/utils/utility.util.js +14 -1
  218. package/lib/src/core-components/tailwind.config.js +233 -1
  219. package/lib/src/core-hooks/index.js +3 -1
  220. package/lib/src/core-hooks/src/useClickOutside/useClickOutside.hook.js +46 -1
  221. package/lib/src/core-hooks/src/useDebounce/useDebounce.hook.js +30 -1
  222. package/lib/src/core-hooks/src/usePreventEKey/usePreventEKey.hook.js +8 -1
  223. package/lib/src/core-utils/index.js +7 -1
  224. package/lib/src/core-utils/src/calculation/calculation.util.js +89 -1
  225. package/lib/src/core-utils/src/colors/color.util.js +15 -1
  226. package/lib/src/core-utils/src/convert/numberToWords/numToWords.util.js +145 -1
  227. package/lib/src/core-utils/src/convert/typography/camelCaseToTitleCase.util.js +5 -1
  228. package/lib/src/core-utils/src/form-helper/form-helper.util.js +82 -1
  229. package/lib/src/core-utils/src/index.js +7 -1
  230. package/lib/src/core-utils/src/utility/utility.util.js +12 -1
  231. package/lib/src/core-utils/src/uuid/uuid.util.js +8 -1
  232. package/package.json +1 -1
@@ -1 +1,89 @@
1
- "use strict";function d(s){switch(s){case"grossAmount":return"gross-net";case"netAmount":return"gross-net";case"discountedAmount":return"gross-discounted";case"discountPercent":return"gross-discountPercent";default:return"gross-net"}}export function calculateAmount(s,r){const e=d(r);return calculateAmountByKey(s,e)}export const calculateAmountByKey=(s,r)=>{const{grossAmount:e,netAmount:o,discountedAmount:u,discountPercent:c}=s;switch(r){case"gross-discountPercent":{const t=e*c/100,n=e-t;return{grossAmount:Number(e?.toFixed(2)),netAmount:Number(n?.toFixed(2)),discountedAmount:Number(t?.toFixed(2)),discountPercent:Number(c?.toFixed(2))}}case"gross-net":{const t=e-o,n=t/e*100;return{grossAmount:Number(e?.toFixed(2)),netAmount:Number(o?.toFixed(2)),discountedAmount:Number(t?.toFixed(2)),discountPercent:Number(n?.toFixed(2))}}case"net-discountPercent":{const t=o/(1-c/100),n=t-o;return{grossAmount:Number(t?.toFixed(2)),netAmount:Number(o?.toFixed(2)),discountedAmount:Number(n?.toFixed(2)),discountPercent:Number(c?.toFixed(2))}}case"gross-discounted":{const t=e-u,n=u/e*100;return{grossAmount:Number(e?.toFixed(2)),netAmount:Number(t?.toFixed(2)),discountedAmount:Number(u?.toFixed(2)),discountPercent:Number(n?.toFixed(2))}}case"net-discounted":{const t=o+u,n=u/t*100;return{grossAmount:Number(t?.toFixed(2)),netAmount:Number(o?.toFixed(2)),discountedAmount:Number(u?.toFixed(2)),discountPercent:Number(n?.toFixed(2))}}default:return{grossAmount:e,netAmount:o,discountedAmount:u,discountPercent:c}}};
1
+ /**
2
+ * Maps the changed AmountKey to the correct AmountMode.
3
+ * You can adjust this mapping as per your business logic.
4
+ */
5
+ function getAmountModeByKey(key) {
6
+ switch (key) {
7
+ case 'grossAmount':
8
+ return 'gross-net';
9
+ case 'netAmount':
10
+ return 'gross-net';
11
+ case 'discountedAmount':
12
+ return 'gross-discounted';
13
+ case 'discountPercent':
14
+ return 'gross-discountPercent';
15
+ default:
16
+ return 'gross-net';
17
+ }
18
+ }
19
+ /**
20
+ * Calculates all amount fields based on the last changed key.
21
+ * @param amounts The amounts object.
22
+ * @param changedKey The key that was last changed.
23
+ */
24
+ export function calculateAmount(amounts, changedKey) {
25
+ const mode = getAmountModeByKey(changedKey);
26
+ return calculateAmountByKey(amounts, mode);
27
+ }
28
+ export const calculateAmountByKey = (amounts, mode) => {
29
+ const { grossAmount, netAmount, discountedAmount, discountPercent } = amounts;
30
+ switch (mode) {
31
+ case 'gross-discountPercent': {
32
+ const discountedAmountCalc = (grossAmount * discountPercent) / 100;
33
+ const netAmountCalc = grossAmount - discountedAmountCalc;
34
+ return {
35
+ grossAmount: Number(grossAmount?.toFixed(2)),
36
+ netAmount: Number(netAmountCalc?.toFixed(2)),
37
+ discountedAmount: Number(discountedAmountCalc?.toFixed(2)),
38
+ discountPercent: Number(discountPercent?.toFixed(2)),
39
+ };
40
+ }
41
+ case 'gross-net': {
42
+ const discountedAmountCalc = grossAmount - netAmount;
43
+ const discountPercentCalc = (discountedAmountCalc / grossAmount) * 100;
44
+ return {
45
+ grossAmount: Number(grossAmount?.toFixed(2)),
46
+ netAmount: Number(netAmount?.toFixed(2)),
47
+ discountedAmount: Number(discountedAmountCalc?.toFixed(2)),
48
+ discountPercent: Number(discountPercentCalc?.toFixed(2)),
49
+ };
50
+ }
51
+ case 'net-discountPercent': {
52
+ const grossAmountCalc = netAmount / (1 - discountPercent / 100);
53
+ const discountedAmountCalc = grossAmountCalc - netAmount;
54
+ return {
55
+ grossAmount: Number(grossAmountCalc?.toFixed(2)),
56
+ netAmount: Number(netAmount?.toFixed(2)),
57
+ discountedAmount: Number(discountedAmountCalc?.toFixed(2)),
58
+ discountPercent: Number(discountPercent?.toFixed(2)),
59
+ };
60
+ }
61
+ case 'gross-discounted': {
62
+ const netAmountCalc = grossAmount - discountedAmount;
63
+ const discountPercentCalc = (discountedAmount / grossAmount) * 100;
64
+ return {
65
+ grossAmount: Number(grossAmount?.toFixed(2)),
66
+ netAmount: Number(netAmountCalc?.toFixed(2)),
67
+ discountedAmount: Number(discountedAmount?.toFixed(2)),
68
+ discountPercent: Number(discountPercentCalc?.toFixed(2)),
69
+ };
70
+ }
71
+ case 'net-discounted': {
72
+ const grossAmountCalc = netAmount + discountedAmount;
73
+ const discountPercentCalc = (discountedAmount / grossAmountCalc) * 100;
74
+ return {
75
+ grossAmount: Number(grossAmountCalc?.toFixed(2)),
76
+ netAmount: Number(netAmount?.toFixed(2)),
77
+ discountedAmount: Number(discountedAmount?.toFixed(2)),
78
+ discountPercent: Number(discountPercentCalc?.toFixed(2)),
79
+ };
80
+ }
81
+ default:
82
+ return {
83
+ grossAmount,
84
+ netAmount,
85
+ discountedAmount,
86
+ discountPercent,
87
+ };
88
+ }
89
+ };
@@ -1 +1,15 @@
1
- "use strict";export const invertHex=s=>{s?.slice(0,1)==="#"&&(s=s?.slice(1));const t=Number.parseInt(s?.slice(0,2),16),e=Number.parseInt(s?.slice(2,4),16),i=Number.parseInt(s?.slice(4,6),16);return(t*299+e*587+i*114)/1e3>=128?"black":"white"};
1
+ /* eslint-disable unicorn/number-literal-case */
2
+ export const invertHex = (hexcolor) => {
3
+ // If a leading # is provided, remove it
4
+ if (hexcolor?.slice(0, 1) === '#') {
5
+ hexcolor = hexcolor?.slice(1);
6
+ }
7
+ // Convert to RGB value
8
+ const r = Number.parseInt(hexcolor?.slice(0, 2), 16);
9
+ const g = Number.parseInt(hexcolor?.slice(2, 4), 16);
10
+ const b = Number.parseInt(hexcolor?.slice(4, 6), 16);
11
+ // Get YIQ ratio
12
+ const yiq = (r * 299 + g * 587 + b * 114) / 1000;
13
+ // Check contrast
14
+ return yiq >= 128 ? 'black' : 'white';
15
+ };
@@ -1 +1,145 @@
1
- "use strict";const b=t=>t.length===0,y=t=>n=>n.slice(0,t),k=t=>n=>n.slice(t),w=t=>n=>b(n)?[]:[y(t)(n),...w(t)(k(t)(n))];export const numToWords=t=>{const n=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],a=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],u=["","thousand","lakh","crore","arab","kharab","neel","padma","shankh"],f=["","thousand","lakhs","crores","arabs","kharabs","neels","padmas","shankhs"];if(typeof t=="number"&&(t=String(t)),t==="0")return"zero";const m=e=>{if(e.length<=3)return[e];const l=e.slice(e.length-3),s=e.slice(0,e.length-3),r=[];for(;s.length>0;)r.unshift(s.splice(-2));return[...r,l]},d=e=>{if(Number(e.join(""))===0)return"";if(e.length===3){let[s,r,o]=e.map(Number),i="";s&&(i+=n[s]+" hundred ");let h=r*10+o;return h&&(i&&(i+="and "),h<20?i+=n[h]:i+=a[r]+(o?"-"+n[o]:"")),i.trim()}else if(e.length===2){let[s,r]=e.map(Number);return s===0?n[r]:s*10+r<20?n[s*10+r]:a[s]+(r?"-"+n[r]:"")}else if(e.length===1)return n[Number(e[0])];return""},g=Array.from(t),c=m(g);return c.map((e,l,s)=>{if(l===s.length-1)for(;e.length<3;)e.unshift("0");else for(;e.length<2;)e.unshift("0");return d(e)}).map((e,l,s)=>{const r=s.length-1-l,i=Number(c[l].join(""))>1&&u[r]?f[r]:u[r];return e?`${e} ${i}`.trim():""}).filter(Boolean).join(" ").replace(/\s+/g," ").trim()};
1
+ const isEmpty = (xs) => xs.length === 0;
2
+ const take = (n) => (xs) => xs.slice(0, n);
3
+ const drop = (n) => (xs) => xs.slice(n);
4
+ const chunk = (n) => (xs) => isEmpty(xs) ? [] : [take(n)(xs), ...chunk(n)(drop(n)(xs))];
5
+ /**
6
+ * Converts a number to words using the Indian numbering system (supports lakh, crore, arab, etc.).
7
+ */
8
+ export const numToWords = (n) => {
9
+ const a = [
10
+ '',
11
+ 'one',
12
+ 'two',
13
+ 'three',
14
+ 'four',
15
+ 'five',
16
+ 'six',
17
+ 'seven',
18
+ 'eight',
19
+ 'nine',
20
+ 'ten',
21
+ 'eleven',
22
+ 'twelve',
23
+ 'thirteen',
24
+ 'fourteen',
25
+ 'fifteen',
26
+ 'sixteen',
27
+ 'seventeen',
28
+ 'eighteen',
29
+ 'nineteen',
30
+ ];
31
+ const b = [
32
+ '',
33
+ '',
34
+ 'twenty',
35
+ 'thirty',
36
+ 'forty',
37
+ 'fifty',
38
+ 'sixty',
39
+ 'seventy',
40
+ 'eighty',
41
+ 'ninety',
42
+ ];
43
+ const g = [
44
+ '',
45
+ 'thousand',
46
+ 'lakh',
47
+ 'crore',
48
+ 'arab',
49
+ 'kharab',
50
+ 'neel',
51
+ 'padma',
52
+ 'shankh',
53
+ ];
54
+ // Plural forms for units
55
+ const gPlural = [
56
+ '',
57
+ 'thousand',
58
+ 'lakhs',
59
+ 'crores',
60
+ 'arabs',
61
+ 'kharabs',
62
+ 'neels',
63
+ 'padmas',
64
+ 'shankhs',
65
+ ];
66
+ if (typeof n === 'number')
67
+ n = String(n);
68
+ if (n === '0')
69
+ return 'zero';
70
+ // Indian chunking: last 3 digits, then every 2 digits
71
+ const chunkIndian = (xs) => {
72
+ if (xs.length <= 3)
73
+ return [xs];
74
+ const last3 = xs.slice(xs.length - 3);
75
+ const rest = xs.slice(0, xs.length - 3);
76
+ const pairs = [];
77
+ while (rest.length > 0) {
78
+ pairs.unshift(rest.splice(-2));
79
+ }
80
+ return [...pairs, last3];
81
+ };
82
+ // Convert a group (1 or 2 or 3 digits) to words
83
+ const groupToWords = (group) => {
84
+ let numVal = Number(group.join(''));
85
+ if (numVal === 0)
86
+ return '';
87
+ if (group.length === 3) {
88
+ // 3 digits: hundreds
89
+ let [h, t, o] = group.map(Number);
90
+ let str = '';
91
+ if (h)
92
+ str += a[h] + ' hundred ';
93
+ let lastTwo = t * 10 + o;
94
+ if (lastTwo) {
95
+ if (str)
96
+ str += 'and ';
97
+ if (lastTwo < 20)
98
+ str += a[lastTwo];
99
+ else
100
+ str += b[t] + (o ? '-' + a[o] : '');
101
+ }
102
+ return str.trim();
103
+ }
104
+ else if (group.length === 2) {
105
+ // 2 digits
106
+ let [t, o] = group.map(Number);
107
+ if (t === 0)
108
+ return a[o];
109
+ if (t * 10 + o < 20)
110
+ return a[t * 10 + o];
111
+ return b[t] + (o ? '-' + a[o] : '');
112
+ }
113
+ else if (group.length === 1) {
114
+ return a[Number(group[0])];
115
+ }
116
+ return '';
117
+ };
118
+ const digits = Array.from(n);
119
+ const groups = chunkIndian(digits);
120
+ const words = groups
121
+ .map((group, i, arr) => {
122
+ // Only pad the last group (units) to 3 digits, others to 2
123
+ if (i === arr.length - 1) {
124
+ while (group.length < 3)
125
+ group.unshift('0');
126
+ }
127
+ else {
128
+ while (group.length < 2)
129
+ group.unshift('0');
130
+ }
131
+ return groupToWords(group);
132
+ })
133
+ .map((word, i, arr) => {
134
+ const unitIdx = arr.length - 1 - i;
135
+ // Use plural for units if value > 1 and unit is not ''
136
+ const groupValue = Number(groups[i].join(''));
137
+ const unit = groupValue > 1 && g[unitIdx] ? gPlural[unitIdx] : g[unitIdx];
138
+ return word ? `${word} ${unit}`.trim() : '';
139
+ })
140
+ .filter(Boolean)
141
+ .join(' ')
142
+ .replace(/\s+/g, ' ')
143
+ .trim();
144
+ return words;
145
+ };
@@ -1 +1,5 @@
1
- "use strict";export const camelCaseToTitleCase=e=>e.replace(/([A-Z])/g," $1").replace(/^./,a=>a.toUpperCase());
1
+ export const camelCaseToTitleCase = (str) => {
2
+ return str
3
+ .replace(/([A-Z])/g, ' $1') // Add space before capital letters
4
+ .replace(/^./, (char) => char.toUpperCase()); // Capitalize the first letter
5
+ };
@@ -1 +1,82 @@
1
- "use strict";class a{static patterns={email:/^\w+([\\.-]?\w+)*@\w+([\\.-]?\w+)*(\.\w{2,3})+$/,emptySpace:/^\S$|^\S[\s\S]*\S$/,emptyString:/^\s*$/,nonEmptyString:/^(?!\s*$).+/,userName:/^[a-z][a-z0-9_.]+$/,password:/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,20}$/,mobileNo:/^\d{0,10}$/,panNumber:/^[A-Z]{3}P[A-Z]{1}\d{4}[A-Z]{1}$/,panNumberPartialMatch:/^([A-Z]{3}P[A-Z]{1}\d{4}[A-Z]{1})|([A-Z]{3}P[A-Z]{1}\d{0,4})|([A-Z]{3}P[A-Z]{1})|([A-Z]{3}P)|([A-Z]{0,3})$/,aadhaarNumber:/^[2-9]{1}\d{3}\d{4}\d{4}$/,otp:/\b\d{6}\b/};static isUserNameValid(t){return this.patterns.userName.test(t)}static isEmailValid(t){return this.patterns.email.test(t)}static isAddressLengthInvalid(t){return t?.length<3||t?.length>60}static isAddressLength(t){return t?.length>2}static addressNonEmpty(t){return this.patterns.nonEmptyString.test(t)}static isAddressMoreLengthInvalid(t){return t?.length>60}static isNameLengthInvalid(t){return t?.length<3||t?.length>30}static isPincodeLengthInvalid(t){return t?.length<5}static isDateValid(t,e,r){if(!Number(e)||!Number(r))return!!Number(t)&&Number(t)<=31;const s=new Date(Number(r),Number(e),0).getDate();return Number(t)<=s}static isMobileNoValid(t){return this.patterns.mobileNo.test(t)}static isMonthValid(t){return!!Number(t)&&Number(t)<=12}static isYearValid(t){return!!Number(t)&&t.length===4}static isPasswordValid(t){return this.patterns.password.test(t)}static isValidHeight(t){return!!Number(t)&&Number(t)<=214}static isValidWeight(t){return!!Number(t)&&Number(t)<=150}static isNumberAvailable(t){const e=t.match(/\d+/g);return t?e!=null:!0}static isValidPAN(t,e=!0){const r=e?this.patterns.panNumberPartialMatch:this.patterns.panNumber,s=`${t}`.trim().match(r);return!!s?.length&&s[0]===t}}export const formHelperValidation=a;
1
+ class FormHelper {
2
+ static patterns = {
3
+ email: /^\w+([\\.-]?\w+)*@\w+([\\.-]?\w+)*(\.\w{2,3})+$/,
4
+ emptySpace: /^\S$|^\S[\s\S]*\S$/,
5
+ emptyString: /^\s*$/,
6
+ nonEmptyString: /^(?!\s*$).+/,
7
+ userName: /^[a-z][a-z0-9_.]+$/,
8
+ password: /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,20}$/,
9
+ mobileNo: /^\d{0,10}$/,
10
+ panNumber: /^[A-Z]{3}P[A-Z]{1}\d{4}[A-Z]{1}$/,
11
+ panNumberPartialMatch: /^([A-Z]{3}P[A-Z]{1}\d{4}[A-Z]{1})|([A-Z]{3}P[A-Z]{1}\d{0,4})|([A-Z]{3}P[A-Z]{1})|([A-Z]{3}P)|([A-Z]{0,3})$/,
12
+ aadhaarNumber: /^[2-9]{1}\d{3}\d{4}\d{4}$/,
13
+ otp: /\b\d{6}\b/,
14
+ };
15
+ static isUserNameValid(userName) {
16
+ return this.patterns.userName.test(userName);
17
+ }
18
+ static isEmailValid(email) {
19
+ return this.patterns.email.test(email);
20
+ }
21
+ static isAddressLengthInvalid(value) {
22
+ return value?.length < 3 || value?.length > 60;
23
+ }
24
+ static isAddressLength(value) {
25
+ return value?.length > 2;
26
+ }
27
+ static addressNonEmpty(value) {
28
+ return this.patterns.nonEmptyString.test(value);
29
+ }
30
+ static isAddressMoreLengthInvalid(value) {
31
+ return value?.length > 60;
32
+ }
33
+ static isNameLengthInvalid(value) {
34
+ return value?.length < 3 || value?.length > 30;
35
+ }
36
+ static isPincodeLengthInvalid(value) {
37
+ return value?.length < 5;
38
+ }
39
+ static isDateValid(date, month, year) {
40
+ if (!Number(month) || !Number(year)) {
41
+ return !!Number(date) && Number(date) <= 31;
42
+ }
43
+ const daysInMonth = new Date(Number(year), Number(month), 0).getDate();
44
+ return Number(date) <= daysInMonth;
45
+ }
46
+ static isMobileNoValid(number) {
47
+ return this.patterns.mobileNo.test(number);
48
+ }
49
+ static isMonthValid(month) {
50
+ return !!Number(month) && Number(month) <= 12;
51
+ }
52
+ static isYearValid(year) {
53
+ return !!Number(year) && year.length === 4;
54
+ }
55
+ static isPasswordValid(password) {
56
+ return this.patterns.password.test(password);
57
+ }
58
+ static isValidHeight(height) {
59
+ return !!Number(height) && Number(height) <= 214;
60
+ }
61
+ static isValidWeight(weight) {
62
+ return !!Number(weight) && Number(weight) <= 150;
63
+ }
64
+ static isNumberAvailable(val) {
65
+ const matches = val.match(/\d+/g);
66
+ if (val) {
67
+ if (matches != null)
68
+ return true;
69
+ else
70
+ return false;
71
+ }
72
+ return true;
73
+ }
74
+ static isValidPAN(panNo, partial = true) {
75
+ const pattern = partial
76
+ ? this.patterns.panNumberPartialMatch
77
+ : this.patterns.panNumber;
78
+ const panNoMatch = `${panNo}`.trim().match(pattern);
79
+ return !!panNoMatch?.length && panNoMatch[0] === panNo;
80
+ }
81
+ }
82
+ export const formHelperValidation = FormHelper;
@@ -1 +1,7 @@
1
- "use strict";export*from"./utility/utility.util";export*from"./calculation/calculation.util";export*from"./convert/numberToWords/numToWords.util";export*from"./convert/typography/camelCaseToTitleCase.util";export*from"./colors/color.util";export*from"./uuid/uuid.util";export*from"./form-helper/form-helper.util";
1
+ export * from './utility/utility.util';
2
+ export * from './calculation/calculation.util';
3
+ export * from './convert/numberToWords/numToWords.util';
4
+ export * from './convert/typography/camelCaseToTitleCase.util';
5
+ export * from './colors/color.util';
6
+ export * from './uuid/uuid.util';
7
+ export * from './form-helper/form-helper.util';
@@ -1 +1,12 @@
1
- "use strict";import*as c from"lodash";export const debounce=c.debounce(e=>{e()},1e3),calculateHoursDifference=(e,t)=>{const o=Math.abs(t.getTime()-e.getTime());return Math.floor(o/(1e3*60*60))},calculateHoursDifferenceDecimal=(e,t)=>Math.abs(t.getTime()-e.getTime())/(1e3*60*60);
1
+ import * as _ from 'lodash';
2
+ export const debounce = _.debounce((fun) => {
3
+ fun();
4
+ }, 1000);
5
+ export const calculateHoursDifference = (date1, date2) => {
6
+ const diffInMs = Math.abs(date2.getTime() - date1.getTime());
7
+ return Math.floor(diffInMs / (1000 * 60 * 60));
8
+ };
9
+ export const calculateHoursDifferenceDecimal = (date1, date2) => {
10
+ const diffInMs = Math.abs(date2.getTime() - date1.getTime());
11
+ return diffInMs / (1000 * 60 * 60);
12
+ };
@@ -1 +1,8 @@
1
- "use strict";import*as n from"lodash";export function uuidv4(r){return n.repeat("x",r).replace(/[xy]/g,function(o){const t=Math.random()*r|0;return(o==="x"?t:t&3|8).toString(r)})}
1
+ /* eslint-disable unicorn/prefer-math-trunc */
2
+ import * as _ from 'lodash';
3
+ export function uuidv4(len) {
4
+ return _.repeat('x', len).replace(/[xy]/g, function (c) {
5
+ const r = (Math.random() * len) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;
6
+ return v.toString(len);
7
+ });
8
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-restyle-components",
3
- "version": "0.4.39",
3
+ "version": "0.4.40",
4
4
  "private": false,
5
5
  "description": "Easy use restyle components",
6
6
  "author": {