@adcops/autocore-react 3.3.9 → 3.3.14

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 (223) hide show
  1. package/LICENSE +58 -58
  2. package/additional-docs/AutoCoreTagContext.md +441 -441
  3. package/additional-docs/ButtonApiSpecs.md +48 -48
  4. package/additional-docs/GlobalEventEmitter.md +243 -243
  5. package/additional-docs/general_recommendations.md +22 -22
  6. package/additional-docs/react_performance_notes.md +94 -94
  7. package/dist/assets/svg/blockly_logo.svg +82 -82
  8. package/dist/assets/svg/distance.svg +40 -40
  9. package/dist/assets/svg/python_logo.svg +246 -246
  10. package/dist/assets/svg/rotation_ccw.svg +50 -50
  11. package/dist/assets/svg/rotation_ccw_a.svg +57 -57
  12. package/dist/assets/svg/rotation_ccw_b.svg +57 -57
  13. package/dist/assets/svg/rotation_ccw_c.svg +57 -57
  14. package/dist/assets/svg/rotation_cw.svg +49 -49
  15. package/dist/assets/svg/rotation_cw_a.svg +30 -30
  16. package/dist/assets/svg/rotation_cw_b.svg +30 -30
  17. package/dist/assets/svg/rotation_cw_c.svg +30 -30
  18. package/dist/assets/svg/speed.svg +39 -39
  19. package/dist/components/BlocklyEditor.css +93 -93
  20. package/dist/components/Indicator.js +1 -1
  21. package/dist/components/IndicatorRect.d.ts.map +1 -1
  22. package/dist/components/IndicatorRect.js +1 -1
  23. package/dist/components/JogPanel.css +41 -41
  24. package/dist/components/ProgressBarWithValue.css +27 -27
  25. package/dist/components/TextInput.js +1 -1
  26. package/dist/components/ToggleGroup.js +1 -1
  27. package/dist/components/ValueIndicator.css +29 -31
  28. package/dist/components/ValueInput.js +1 -1
  29. package/dist/components/osk.css +123 -123
  30. package/dist/core/AutoCoreTagContext.d.ts.map +1 -1
  31. package/dist/core/AutoCoreTagContext.js +1 -1
  32. package/dist/hub/HubBase.d.ts +3 -3
  33. package/dist/hub/HubBase.d.ts.map +1 -1
  34. package/dist/hub/HubBase.js +1 -1
  35. package/dist/themes/adc-dark/blue/theme.css +3 -0
  36. package/dist/themes/adc-dark/blue/theme.css.map +1 -1
  37. package/package.json +104 -104
  38. package/readme.md +343 -343
  39. package/src/assets/BlocklyLogo.tsx +27 -27
  40. package/src/assets/Distance.tsx +18 -18
  41. package/src/assets/JogLong.tsx +13 -13
  42. package/src/assets/JogMedium.tsx +13 -13
  43. package/src/assets/JogShort.tsx +13 -13
  44. package/src/assets/PythonLogo.tsx +83 -83
  45. package/src/assets/Rotation3D.tsx +13 -13
  46. package/src/assets/RotationCcw.tsx +33 -33
  47. package/src/assets/RotationCcwA.tsx +45 -45
  48. package/src/assets/RotationCcwB.tsx +45 -45
  49. package/src/assets/RotationCcwC.tsx +45 -45
  50. package/src/assets/RotationCw.tsx +31 -31
  51. package/src/assets/RotationCwA.tsx +42 -42
  52. package/src/assets/RotationCwB.tsx +42 -42
  53. package/src/assets/RotationCwC.tsx +42 -42
  54. package/src/assets/Run.tsx +13 -13
  55. package/src/assets/Speed.tsx +18 -18
  56. package/src/assets/SpeedFast.tsx +13 -13
  57. package/src/assets/SpeedMedium.tsx +13 -13
  58. package/src/assets/SpeedNone.tsx +13 -13
  59. package/src/assets/SpeedSlow.tsx +13 -13
  60. package/src/assets/Walk.tsx +13 -13
  61. package/src/assets/index.ts +22 -22
  62. package/src/assets/svg/blockly_logo.svg +82 -82
  63. package/src/assets/svg/distance.svg +40 -40
  64. package/src/assets/svg/python_logo.svg +246 -246
  65. package/src/assets/svg/rotation_ccw.svg +50 -50
  66. package/src/assets/svg/rotation_ccw_a.svg +57 -57
  67. package/src/assets/svg/rotation_ccw_b.svg +57 -57
  68. package/src/assets/svg/rotation_ccw_c.svg +57 -57
  69. package/src/assets/svg/rotation_cw.svg +49 -49
  70. package/src/assets/svg/rotation_cw_a.svg +30 -30
  71. package/src/assets/svg/rotation_cw_b.svg +30 -30
  72. package/src/assets/svg/rotation_cw_c.svg +30 -30
  73. package/src/assets/svg/speed.svg +39 -39
  74. package/src/components/AutoCoreDevPanel.tsx +414 -414
  75. package/src/components/BlocklyEditor.css +93 -93
  76. package/src/components/BlocklyEditor.tsx +609 -609
  77. package/src/components/CodeEditor.tsx +155 -155
  78. package/src/components/FileList.tsx +390 -390
  79. package/src/components/FileSelect.tsx +128 -128
  80. package/src/components/FitText.tsx +35 -35
  81. package/src/components/Indicator.tsx +188 -188
  82. package/src/components/IndicatorButton.tsx +214 -214
  83. package/src/components/IndicatorRect.tsx +170 -172
  84. package/src/components/JogPanel.css +41 -41
  85. package/src/components/JogPanel.tsx +461 -461
  86. package/src/components/Lamp.tsx +243 -243
  87. package/src/components/Osk.tsx +192 -192
  88. package/src/components/OskDialog.tsx +164 -164
  89. package/src/components/ProgressBarWithValue.css +27 -27
  90. package/src/components/ProgressBarWithValue.tsx +48 -48
  91. package/src/components/TextInput.tsx +195 -195
  92. package/src/components/ToggleGroup.tsx +322 -322
  93. package/src/components/ValueDisplay.tsx +236 -236
  94. package/src/components/ValueIndicator.css +29 -31
  95. package/src/components/ValueIndicator.tsx +135 -135
  96. package/src/components/ValueInput.tsx +368 -368
  97. package/src/components/osk.css +123 -123
  98. package/src/core/ActionMode.ts +19 -19
  99. package/src/core/AutoCoreTagContext.tsx +625 -614
  100. package/src/core/AutoCoreTagTypes.ts +334 -334
  101. package/src/core/CoreStreamTypes.ts +512 -512
  102. package/src/core/EventEmitterContext.tsx +434 -434
  103. package/src/core/IndicatorButtonState.ts +34 -34
  104. package/src/core/IndicatorColor.ts +35 -35
  105. package/src/core/MaskPatterns.ts +87 -87
  106. package/src/core/NumerableTypes.ts +80 -80
  107. package/src/core/PositionContext.ts +59 -59
  108. package/src/core/UniqueId.ts +41 -41
  109. package/src/core/ValueSimulator.ts +166 -166
  110. package/src/core/hoc.tsx +65 -65
  111. package/src/hooks/adsHooks.tsx +287 -287
  112. package/src/hooks/commandHooks.tsx +300 -300
  113. package/src/hooks/index.ts +12 -12
  114. package/src/hooks/useAutoCoreTag.ts +103 -103
  115. package/src/hooks/useScaledValue.tsx +99 -99
  116. package/src/hub/CommandMessage.ts +89 -89
  117. package/src/hub/DebugPanel.ts +307 -307
  118. package/src/hub/HubBase.ts +249 -236
  119. package/src/hub/HubSimulate.ts +124 -124
  120. package/src/hub/HubTauri.ts +140 -140
  121. package/src/hub/HubWebSocket.ts +250 -250
  122. package/src/hub/debug.ts +211 -211
  123. package/src/hub/index.ts +81 -81
  124. package/src/themes/adc-dark/_extensions.scss +166 -166
  125. package/src/themes/adc-dark/_variables.scss +913 -913
  126. package/src/themes/adc-dark/blue/_fonts.scss +23 -23
  127. package/src/themes/adc-dark/blue/adc_theme.scss +31 -31
  128. package/src/themes/adc-dark/blue/theme.scss +14 -14
  129. package/src/themes/theme-base/_colors.scss +17 -17
  130. package/src/themes/theme-base/_common.scss +78 -74
  131. package/src/themes/theme-base/_components.scss +111 -111
  132. package/src/themes/theme-base/_mixins.scss +243 -243
  133. package/src/themes/theme-base/components/button/_button.scss +644 -644
  134. package/src/themes/theme-base/components/button/_speeddial.scss +91 -91
  135. package/src/themes/theme-base/components/button/_splitbutton.scss +358 -358
  136. package/src/themes/theme-base/components/data/_carousel.scss +39 -39
  137. package/src/themes/theme-base/components/data/_datascroller.scss +47 -47
  138. package/src/themes/theme-base/components/data/_datatable.scss +388 -388
  139. package/src/themes/theme-base/components/data/_dataview.scss +47 -47
  140. package/src/themes/theme-base/components/data/_filter.scss +137 -137
  141. package/src/themes/theme-base/components/data/_orderlist.scss +86 -86
  142. package/src/themes/theme-base/components/data/_organizationchart.scss +50 -50
  143. package/src/themes/theme-base/components/data/_paginator.scss +91 -91
  144. package/src/themes/theme-base/components/data/_picklist.scss +73 -73
  145. package/src/themes/theme-base/components/data/_timeline.scss +38 -38
  146. package/src/themes/theme-base/components/data/_tree.scss +184 -184
  147. package/src/themes/theme-base/components/data/_treetable.scss +431 -431
  148. package/src/themes/theme-base/components/file/_fileupload.scss +41 -41
  149. package/src/themes/theme-base/components/input/_autocomplete.scss +94 -94
  150. package/src/themes/theme-base/components/input/_calendar.scss +251 -251
  151. package/src/themes/theme-base/components/input/_cascadeselect.scss +107 -107
  152. package/src/themes/theme-base/components/input/_checkbox.scss +181 -181
  153. package/src/themes/theme-base/components/input/_chips.scss +102 -102
  154. package/src/themes/theme-base/components/input/_colorpicker.scss +17 -17
  155. package/src/themes/theme-base/components/input/_dropdown.scss +252 -252
  156. package/src/themes/theme-base/components/input/_editor.scss +122 -122
  157. package/src/themes/theme-base/components/input/_iconfield.scss +9 -9
  158. package/src/themes/theme-base/components/input/_inputgroup.scss +74 -74
  159. package/src/themes/theme-base/components/input/_inputicon.scss +14 -14
  160. package/src/themes/theme-base/components/input/_inputnumber.scss +4 -4
  161. package/src/themes/theme-base/components/input/_inputotp.scss +10 -10
  162. package/src/themes/theme-base/components/input/_inputswitch.scss +99 -99
  163. package/src/themes/theme-base/components/input/_inputtext.scss +101 -101
  164. package/src/themes/theme-base/components/input/_listbox.scss +138 -138
  165. package/src/themes/theme-base/components/input/_mention.scss +30 -30
  166. package/src/themes/theme-base/components/input/_multiselect.scss +278 -278
  167. package/src/themes/theme-base/components/input/_password.scss +32 -32
  168. package/src/themes/theme-base/components/input/_radiobutton.scss +169 -169
  169. package/src/themes/theme-base/components/input/_rating.scss +80 -80
  170. package/src/themes/theme-base/components/input/_selectbutton.scss +49 -49
  171. package/src/themes/theme-base/components/input/_slider.scss +49 -49
  172. package/src/themes/theme-base/components/input/_togglebutton.scss +99 -99
  173. package/src/themes/theme-base/components/input/_treeselect.scss +151 -151
  174. package/src/themes/theme-base/components/input/_tristatecheckbox.scss +46 -46
  175. package/src/themes/theme-base/components/menu/_breadcrumb.scss +42 -42
  176. package/src/themes/theme-base/components/menu/_contextmenu.scss +39 -39
  177. package/src/themes/theme-base/components/menu/_dock.scss +109 -109
  178. package/src/themes/theme-base/components/menu/_megamenu.scss +141 -141
  179. package/src/themes/theme-base/components/menu/_menu.scss +33 -33
  180. package/src/themes/theme-base/components/menu/_menubar.scss +216 -216
  181. package/src/themes/theme-base/components/menu/_panelmenu.scss +153 -153
  182. package/src/themes/theme-base/components/menu/_slidemenu.scss +60 -60
  183. package/src/themes/theme-base/components/menu/_steps.scss +57 -57
  184. package/src/themes/theme-base/components/menu/_tabmenu.scss +50 -50
  185. package/src/themes/theme-base/components/menu/_tieredmenu.scss +43 -43
  186. package/src/themes/theme-base/components/messages/_inlinemessage.scss +69 -69
  187. package/src/themes/theme-base/components/messages/_message.scss +107 -107
  188. package/src/themes/theme-base/components/messages/_toast.scss +100 -100
  189. package/src/themes/theme-base/components/misc/_avatar.scss +33 -33
  190. package/src/themes/theme-base/components/misc/_badge.scss +76 -76
  191. package/src/themes/theme-base/components/misc/_chip.scss +38 -38
  192. package/src/themes/theme-base/components/misc/_inplace.scss +17 -17
  193. package/src/themes/theme-base/components/misc/_metergroup.scss +80 -80
  194. package/src/themes/theme-base/components/misc/_progressbar.scss +17 -17
  195. package/src/themes/theme-base/components/misc/_scrolltop.scss +24 -24
  196. package/src/themes/theme-base/components/misc/_skeleton.scss +7 -7
  197. package/src/themes/theme-base/components/misc/_tag.scss +39 -39
  198. package/src/themes/theme-base/components/misc/_terminal.scss +12 -12
  199. package/src/themes/theme-base/components/multimedia/_galleria.scss +153 -153
  200. package/src/themes/theme-base/components/multimedia/_image.scss +53 -53
  201. package/src/themes/theme-base/components/overlay/_confirmpopup.scss +72 -72
  202. package/src/themes/theme-base/components/overlay/_dialog.scss +78 -78
  203. package/src/themes/theme-base/components/overlay/_overlaypanel.scss +64 -64
  204. package/src/themes/theme-base/components/overlay/_sidebar.scss +23 -23
  205. package/src/themes/theme-base/components/overlay/_tooltip.scss +33 -33
  206. package/src/themes/theme-base/components/panel/_accordion.scss +118 -118
  207. package/src/themes/theme-base/components/panel/_card.scss +30 -30
  208. package/src/themes/theme-base/components/panel/_divider.scss +30 -30
  209. package/src/themes/theme-base/components/panel/_fieldset.scss +47 -47
  210. package/src/themes/theme-base/components/panel/_panel.scss +47 -47
  211. package/src/themes/theme-base/components/panel/_scrollpanel.scss +10 -10
  212. package/src/themes/theme-base/components/panel/_splitter.scss +23 -23
  213. package/src/themes/theme-base/components/panel/_stepper.scss +136 -136
  214. package/src/themes/theme-base/components/panel/_tabview.scss +147 -147
  215. package/src/themes/theme-base/components/panel/_toolbar.scss +11 -11
  216. package/terser.config.cjs +25 -25
  217. package/todo.md +18 -18
  218. package/tools/build-themes.cjs +65 -65
  219. package/tools/copy-distribution-files.cjs +77 -77
  220. package/tools/minify.cjs +55 -55
  221. package/tsconfig.json +48 -48
  222. package/typedoc.json +12 -12
  223. package/.claude/settings.local.json +0 -7
@@ -1,34 +1,34 @@
1
- /*
2
- * Copyright (C) 2024 Automated Design Corp.. All Rights Reserved.
3
- * Created Date: 2024-03-12 11:08:29
4
- * -----
5
- * Last Modified: 2026-01-29 09:32:28
6
- * -----
7
- *
8
- */
9
-
10
-
11
- /**
12
- * Common state for the indicator buttons, toggles or similar components.
13
- */
14
- export interface IndicatorButtonState {
15
- /**
16
- * Current value/state of the button based on the subscribed topic.
17
- */
18
- currentValue?: boolean | number | string;
19
-
20
- /**
21
- * Indicates whether the button is disabled.
22
- */
23
- isDisabled?: boolean;
24
-
25
- /**
26
- * Indicates whether the button is invisible.
27
- */
28
- isInvisible?: boolean;
29
-
30
- /**
31
- * The button is in the "down" state.
32
- */
33
- isPressed : boolean;
34
- }
1
+ /*
2
+ * Copyright (C) 2024 Automated Design Corp.. All Rights Reserved.
3
+ * Created Date: 2024-03-12 11:08:29
4
+ * -----
5
+ * Last Modified: 2026-01-29 09:32:28
6
+ * -----
7
+ *
8
+ */
9
+
10
+
11
+ /**
12
+ * Common state for the indicator buttons, toggles or similar components.
13
+ */
14
+ export interface IndicatorButtonState {
15
+ /**
16
+ * Current value/state of the button based on the subscribed topic.
17
+ */
18
+ currentValue?: boolean | number | string;
19
+
20
+ /**
21
+ * Indicates whether the button is disabled.
22
+ */
23
+ isDisabled?: boolean;
24
+
25
+ /**
26
+ * Indicates whether the button is invisible.
27
+ */
28
+ isInvisible?: boolean;
29
+
30
+ /**
31
+ * The button is in the "down" state.
32
+ */
33
+ isPressed : boolean;
34
+ }
@@ -1,36 +1,36 @@
1
- /*
2
- * Copyright (C) 2024 Automated Design Corp. All Rights Reserved.
3
- * Created Date: 2024-01-21 11:45:09
4
- * -----
5
- * Last Modified: 2024-03-08 07:16:47
6
- * Modified By: ADC
7
- * -----
8
- *
9
- */
10
-
11
- /**
12
- * Standardized indicator colors and their meanings. It's probably
13
- * best to use their meaning and not the actual color name.
14
- */
15
- export enum IndicatorColor {
16
- /** Green: On, Ok, Ready, Home, General Use */
17
- IndicatorGreen = "green",
18
- /** Alias for the ON condition to make meaning clear. Preferred for ON case. */
19
- IndicatorOn = IndicatorGreen,
20
- /** Off. ONLY USE THIS FOR OFF. */
21
- IndicatorOff = "gray",
22
- /** Red: Error, Fault, Stop, Stopped. Use sparingly. */
23
- IndicatorRed = "red",
24
- /** Orange: Warning, Out of position, moving, out of range. */
25
- IndicatorOrange = "orange",
26
- /** Alias for Red to make meaning clear. Preferred. */
27
- IndicatorError = IndicatorRed,
28
- /** Alias for Orange to make meaning clear. Preferred. */
29
- IndicatorWarning = IndicatorOrange,
30
- /** Invalid. If an indicator is black, the interface does not know the current value. */
31
- IndicatorInvalid = "black",
32
- /** Use for navigation buttons. No other meaning allowed. */
33
- IndicatorNavigation = "cyan",
34
- /** Use for informational buttons. No other meaning allowed. */
35
- IndicatorInfo = "blue"
1
+ /*
2
+ * Copyright (C) 2024 Automated Design Corp. All Rights Reserved.
3
+ * Created Date: 2024-01-21 11:45:09
4
+ * -----
5
+ * Last Modified: 2024-03-08 07:16:47
6
+ * Modified By: ADC
7
+ * -----
8
+ *
9
+ */
10
+
11
+ /**
12
+ * Standardized indicator colors and their meanings. It's probably
13
+ * best to use their meaning and not the actual color name.
14
+ */
15
+ export enum IndicatorColor {
16
+ /** Green: On, Ok, Ready, Home, General Use */
17
+ IndicatorGreen = "green",
18
+ /** Alias for the ON condition to make meaning clear. Preferred for ON case. */
19
+ IndicatorOn = IndicatorGreen,
20
+ /** Off. ONLY USE THIS FOR OFF. */
21
+ IndicatorOff = "gray",
22
+ /** Red: Error, Fault, Stop, Stopped. Use sparingly. */
23
+ IndicatorRed = "red",
24
+ /** Orange: Warning, Out of position, moving, out of range. */
25
+ IndicatorOrange = "orange",
26
+ /** Alias for Red to make meaning clear. Preferred. */
27
+ IndicatorError = IndicatorRed,
28
+ /** Alias for Orange to make meaning clear. Preferred. */
29
+ IndicatorWarning = IndicatorOrange,
30
+ /** Invalid. If an indicator is black, the interface does not know the current value. */
31
+ IndicatorInvalid = "black",
32
+ /** Use for navigation buttons. No other meaning allowed. */
33
+ IndicatorNavigation = "cyan",
34
+ /** Use for informational buttons. No other meaning allowed. */
35
+ IndicatorInfo = "blue"
36
36
  }
@@ -1,88 +1,88 @@
1
- /*
2
- * (C) Copyright 2021 Automated Design Corp. All Rights Reserved.
3
- * File Created: Thursday, 1st April 2021 12:30:41 pm
4
- * Author: Thomas C. Bitsky Jr. Automated Design Corp.
5
- */
6
-
7
- /**
8
- * @fileoverview
9
- * Provides a collection of pre-defined patterns for masking/validating different types of user input or data string.
10
- * These patterns come up so regularly in our work that it seemed best to standardize and centralize their definition.
11
- *
12
- * These patterns can be used to ensure that user inputs conform to expected formats, such as real numbers (with or without
13
- * decimal points), positive real numbers, integers, and positive integers. Utilizing these patterns simplifies the process
14
- * of validating and filtering input in forms or any other user input scenarios.
15
- *
16
- * The patterns are defined as regular expressions and are encapsulated within the `InputPatterns` constant for easy access.
17
- * They can be used directly with input validation functions or in conjunction with form validation libraries to enforce
18
- * input constraints.
19
- */
20
-
21
- /**
22
- * Regular expressions Common input patterns for matching different input or expected data types.
23
- */
24
- export const RegExMaskPatterns = {
25
- /**
26
- * Regular expression pattern for matching real numbers.
27
- * This pattern matches any real number, including negative and positive numbers with or without a decimal point.
28
- * Examples of valid inputs: "123", "-123", "123.456", "-123.456", ".456", "-.456"
29
- */
30
- RealNumber: /^-?\d*(\.)?(\d+)?$/,
31
- /**
32
- * Regular expression pattern for matching positive real numbers.
33
- * This pattern matches any positive real number with or without a decimal point, excluding negative numbers.
34
- * Examples of valid inputs: "123", "123.456", ".456"
35
- */
36
- RealNumberPositive: /^\d*(\.)?(\d+)?$/,
37
- /**
38
- * Regular expression pattern for matching integers.
39
- * This pattern matches any integer, including negative and positive integers without a decimal point.
40
- * Examples of valid inputs: "123", "-123"
41
- */
42
- Integer: /^-?\d*$/,
43
- /**
44
- * Regular expression pattern for matching positive integers.
45
- * This pattern matches any positive integer without a decimal point, excluding negative numbers.
46
- * Examples of valid inputs: "123"
47
- */
48
- IntegerPositive: /^\d+$/,
49
-
50
-
51
- /**
52
- * Regular expression for matching IPV4 address.
53
- */
54
- Ipv4: /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,
55
- } as const;
56
-
57
-
58
-
59
- /**
60
- * Patterns for use with PrimeReact.InputMask components
61
- */
62
- export const PrimeReactMaskPatterns = {
63
- /** USA Social Security Number */
64
- SocialSecurityNumber: "999-99-9999",
65
- /** USA phone number with optional extension */
66
- PhoneNumberUS: "(999) 999-9999? x99999",
67
- /** International phone number with optional extension */
68
- PhoneNumberInternational: "+999 999 999 9999? x99999",
69
- /** International phone number with optional extension */
70
- PhoneNumberJapan: "+81 9999 999 9999? x99999",
71
- /** International phone number with optional extension */
72
- PhoneNumberChina: "+86 999 999 9999? x99999",
73
- /** International phone number with optional extension */
74
- PhoneNumberVietnam: "+84 999 999 9999? x99999",
75
- /** International phone number with optional extension */
76
- PhoneNumberSouthKorea: "+82 99 9999 9999 x99999",
77
- /** International phone number with optional extension */
78
- PhoneNumberCanada: "+1 (999) 999-9999 x99999",
79
- /** International phone number with optional extension */
80
- PhoneNumberMexico: "+52 999 999 9999 x99999",
81
- /** International phone number with optional extension */
82
- PhoneNumberScotland: "+44 9999 999999 x99999",
83
- /** International phone number with optional extension */
84
- PhoneNumberEngland: "+44 9999 999999 x99999",
85
- /** International phone number with optional extension */
86
- PhoneNumberIreland: "+353 99 999 9999 x99999",
87
-
1
+ /*
2
+ * (C) Copyright 2021 Automated Design Corp. All Rights Reserved.
3
+ * File Created: Thursday, 1st April 2021 12:30:41 pm
4
+ * Author: Thomas C. Bitsky Jr. Automated Design Corp.
5
+ */
6
+
7
+ /**
8
+ * @fileoverview
9
+ * Provides a collection of pre-defined patterns for masking/validating different types of user input or data string.
10
+ * These patterns come up so regularly in our work that it seemed best to standardize and centralize their definition.
11
+ *
12
+ * These patterns can be used to ensure that user inputs conform to expected formats, such as real numbers (with or without
13
+ * decimal points), positive real numbers, integers, and positive integers. Utilizing these patterns simplifies the process
14
+ * of validating and filtering input in forms or any other user input scenarios.
15
+ *
16
+ * The patterns are defined as regular expressions and are encapsulated within the `InputPatterns` constant for easy access.
17
+ * They can be used directly with input validation functions or in conjunction with form validation libraries to enforce
18
+ * input constraints.
19
+ */
20
+
21
+ /**
22
+ * Regular expressions Common input patterns for matching different input or expected data types.
23
+ */
24
+ export const RegExMaskPatterns = {
25
+ /**
26
+ * Regular expression pattern for matching real numbers.
27
+ * This pattern matches any real number, including negative and positive numbers with or without a decimal point.
28
+ * Examples of valid inputs: "123", "-123", "123.456", "-123.456", ".456", "-.456"
29
+ */
30
+ RealNumber: /^-?\d*(\.)?(\d+)?$/,
31
+ /**
32
+ * Regular expression pattern for matching positive real numbers.
33
+ * This pattern matches any positive real number with or without a decimal point, excluding negative numbers.
34
+ * Examples of valid inputs: "123", "123.456", ".456"
35
+ */
36
+ RealNumberPositive: /^\d*(\.)?(\d+)?$/,
37
+ /**
38
+ * Regular expression pattern for matching integers.
39
+ * This pattern matches any integer, including negative and positive integers without a decimal point.
40
+ * Examples of valid inputs: "123", "-123"
41
+ */
42
+ Integer: /^-?\d*$/,
43
+ /**
44
+ * Regular expression pattern for matching positive integers.
45
+ * This pattern matches any positive integer without a decimal point, excluding negative numbers.
46
+ * Examples of valid inputs: "123"
47
+ */
48
+ IntegerPositive: /^\d+$/,
49
+
50
+
51
+ /**
52
+ * Regular expression for matching IPV4 address.
53
+ */
54
+ Ipv4: /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,
55
+ } as const;
56
+
57
+
58
+
59
+ /**
60
+ * Patterns for use with PrimeReact.InputMask components
61
+ */
62
+ export const PrimeReactMaskPatterns = {
63
+ /** USA Social Security Number */
64
+ SocialSecurityNumber: "999-99-9999",
65
+ /** USA phone number with optional extension */
66
+ PhoneNumberUS: "(999) 999-9999? x99999",
67
+ /** International phone number with optional extension */
68
+ PhoneNumberInternational: "+999 999 999 9999? x99999",
69
+ /** International phone number with optional extension */
70
+ PhoneNumberJapan: "+81 9999 999 9999? x99999",
71
+ /** International phone number with optional extension */
72
+ PhoneNumberChina: "+86 999 999 9999? x99999",
73
+ /** International phone number with optional extension */
74
+ PhoneNumberVietnam: "+84 999 999 9999? x99999",
75
+ /** International phone number with optional extension */
76
+ PhoneNumberSouthKorea: "+82 99 9999 9999 x99999",
77
+ /** International phone number with optional extension */
78
+ PhoneNumberCanada: "+1 (999) 999-9999 x99999",
79
+ /** International phone number with optional extension */
80
+ PhoneNumberMexico: "+52 999 999 9999 x99999",
81
+ /** International phone number with optional extension */
82
+ PhoneNumberScotland: "+44 9999 999999 x99999",
83
+ /** International phone number with optional extension */
84
+ PhoneNumberEngland: "+44 9999 999999 x99999",
85
+ /** International phone number with optional extension */
86
+ PhoneNumberIreland: "+353 99 999 9999 x99999",
87
+
88
88
  } as const;
@@ -1,81 +1,81 @@
1
- /*
2
- * Copyright (C) 2024 Automated Design Corp. All Rights Reserved.
3
- * Created Date: 2024-01-16 14:19:17
4
- * -----
5
- * Last Modified: 2024-03-08 07:55:25
6
- * Modified By: ADC
7
- * -----
8
- *
9
- */
10
-
11
- /**
12
- * @fileoverview
13
- *
14
- * These types enhance TypeScript support for the `numerable` library, which does not directly
15
- * export the `NumerableFormatNumberOptions` type. By extracting and refining the type definitions
16
- * for the `format` function's parameters, including handling its overloaded signatures, this file
17
- * makes it easier to use `numerable` in TypeScript and React projects.
18
- *
19
- * The process involves creating a type that captures the overloads of the `format` function and
20
- * then mapping over these overloads to extract their parameters. This technique enables the
21
- * extraction of the specific options type `NumerableFormatNumberOptions` used by the `format`
22
- * function, thereby providing type safety and IntelliSense support in TypeScript environments.
23
- *
24
- * The approach used here is based on a solution for handling function overloads in TypeScript,
25
- * as discussed in a StackOverflow answer: https://stackoverflow.com/a/59538756/10049787.
26
- */
27
-
28
- import { format } from 'numerable';
29
-
30
- /**
31
- * Type helper to capture the overload signatures of a function.
32
- * This utility type takes a function with multiple overloads and maps them to a tuple of
33
- * functions, each representing one of the overloads.
34
- */
35
- type NumerableFormatOverloads<T> = T extends {
36
- (...args: infer A1): infer R1;
37
- (...args: infer A2): infer R2;
38
- (...args: infer A3): infer R3;
39
- }
40
- ? [(...args: A1) => R1, (...args: A2) => R2, (...args: A3) => R3]
41
- : T extends {
42
- (...args: infer A1): infer R1;
43
- (...args: infer A2): infer R2;
44
- }
45
- ? [(...args: A1) => R1, (...args: A2) => R2]
46
- : T extends {
47
- (...args: infer A1): infer R1;
48
- }
49
- ? [(...args: A1) => R1]
50
- : any; // eslint-disable-line @typescript-eslint/no-explicit-any
51
-
52
- /**
53
- * Extracts parameters from a tuple of function types.
54
- * This utility type maps over a tuple of functions (representing overloads) to produce a tuple
55
- * of their respective parameter types.
56
- */
57
- type OverloadedParameters<T> = NumerableFormatOverloads<T> extends infer O
58
- ? // eslint-disable-next-line @typescript-eslint/no-explicit-any
59
- { [K in keyof O]: Parameters<Extract<O[K], (...args: any) => any>> }
60
- : never;
61
-
62
- /**
63
- * Type representing the parameters of the `numerable.format` function, taking into account its
64
- * overloaded signatures.
65
- */
66
- type NumerableFormatParams = OverloadedParameters<typeof format>;
67
-
68
-
69
- /**
70
- * Type specifically for the options parameter of the `numerable.format` function.
71
- * This extracts the type of the third parameter (options) from the first overload of `format`,
72
- * as this is where the formatting options are specified.
73
- */
74
- type NumerableFormatNumberOptions = NumerableFormatParams[0][2];
75
-
76
- /**
77
- * Exported type for external use, providing a non-nullable version of the formatting options.
78
- * This type is intended for use wherever `numerable.format` options are needed, enhancing
79
- * code readability and type safety.
80
- */
1
+ /*
2
+ * Copyright (C) 2024 Automated Design Corp. All Rights Reserved.
3
+ * Created Date: 2024-01-16 14:19:17
4
+ * -----
5
+ * Last Modified: 2024-03-08 07:55:25
6
+ * Modified By: ADC
7
+ * -----
8
+ *
9
+ */
10
+
11
+ /**
12
+ * @fileoverview
13
+ *
14
+ * These types enhance TypeScript support for the `numerable` library, which does not directly
15
+ * export the `NumerableFormatNumberOptions` type. By extracting and refining the type definitions
16
+ * for the `format` function's parameters, including handling its overloaded signatures, this file
17
+ * makes it easier to use `numerable` in TypeScript and React projects.
18
+ *
19
+ * The process involves creating a type that captures the overloads of the `format` function and
20
+ * then mapping over these overloads to extract their parameters. This technique enables the
21
+ * extraction of the specific options type `NumerableFormatNumberOptions` used by the `format`
22
+ * function, thereby providing type safety and IntelliSense support in TypeScript environments.
23
+ *
24
+ * The approach used here is based on a solution for handling function overloads in TypeScript,
25
+ * as discussed in a StackOverflow answer: https://stackoverflow.com/a/59538756/10049787.
26
+ */
27
+
28
+ import { format } from 'numerable';
29
+
30
+ /**
31
+ * Type helper to capture the overload signatures of a function.
32
+ * This utility type takes a function with multiple overloads and maps them to a tuple of
33
+ * functions, each representing one of the overloads.
34
+ */
35
+ type NumerableFormatOverloads<T> = T extends {
36
+ (...args: infer A1): infer R1;
37
+ (...args: infer A2): infer R2;
38
+ (...args: infer A3): infer R3;
39
+ }
40
+ ? [(...args: A1) => R1, (...args: A2) => R2, (...args: A3) => R3]
41
+ : T extends {
42
+ (...args: infer A1): infer R1;
43
+ (...args: infer A2): infer R2;
44
+ }
45
+ ? [(...args: A1) => R1, (...args: A2) => R2]
46
+ : T extends {
47
+ (...args: infer A1): infer R1;
48
+ }
49
+ ? [(...args: A1) => R1]
50
+ : any; // eslint-disable-line @typescript-eslint/no-explicit-any
51
+
52
+ /**
53
+ * Extracts parameters from a tuple of function types.
54
+ * This utility type maps over a tuple of functions (representing overloads) to produce a tuple
55
+ * of their respective parameter types.
56
+ */
57
+ type OverloadedParameters<T> = NumerableFormatOverloads<T> extends infer O
58
+ ? // eslint-disable-next-line @typescript-eslint/no-explicit-any
59
+ { [K in keyof O]: Parameters<Extract<O[K], (...args: any) => any>> }
60
+ : never;
61
+
62
+ /**
63
+ * Type representing the parameters of the `numerable.format` function, taking into account its
64
+ * overloaded signatures.
65
+ */
66
+ type NumerableFormatParams = OverloadedParameters<typeof format>;
67
+
68
+
69
+ /**
70
+ * Type specifically for the options parameter of the `numerable.format` function.
71
+ * This extracts the type of the third parameter (options) from the first overload of `format`,
72
+ * as this is where the formatting options are specified.
73
+ */
74
+ type NumerableFormatNumberOptions = NumerableFormatParams[0][2];
75
+
76
+ /**
77
+ * Exported type for external use, providing a non-nullable version of the formatting options.
78
+ * This type is intended for use wherever `numerable.format` options are needed, enhancing
79
+ * code readability and type safety.
80
+ */
81
81
  export type NumerableFormatOptions = NonNullable<NumerableFormatNumberOptions>;
@@ -1,60 +1,60 @@
1
- /*
2
- * Copyright (C) 2024 Automated Design Corp. All Rights Reserved.
3
- * Created Date: 2024-01-16 14:19:52
4
- * -----
5
- * Last Modified: 2024-03-08 07:48:18
6
- * Modified By: ADC
7
- * -----
8
- *
9
- */
10
-
11
-
12
-
13
- import { createContext } from 'react';
14
-
15
-
16
- /**
17
- * Interface representing the position and scale context of a component within its parent container.
18
- *
19
- * This context is designed to provide components with necessary scaling and positioning
20
- * information, such as for rendering elements correctly in absolute positioning or for
21
- * adjusting layout based on dynamic offsets.
22
- */
23
- export interface IPositionContext {
24
-
25
- /**
26
- * Represents the scale factor applied to the dimensions of elements.
27
- * A scale of 1 indicates no scaling, while values greater or less than 1
28
- * indicate zoomed-in or zoomed-out states respectively.
29
- */
30
- scale: number;
31
- /**
32
- * Represents the horizontal offset that should be applied to the position
33
- * of elements. This can be used to adjust element positioning in response to
34
- * dynamic layout changes or to align elements within a scaled environment.
35
- */
36
- xOffset: number;
37
- /**
38
- * Represents the vertical offset that should be applied to the position
39
- * of elements. Similar to `xOffset`, this is used for vertical alignment and
40
- * positioning adjustments in a dynamic or scaled layout.
41
- */
42
- yOffset: number;
43
- }
44
-
45
-
46
- /**
47
- * Creates a React context for position and scaling information of a component using absolute positioning.
48
- * This context provides a standardized way to access and react to changes in scale and positioning offsets,
49
- * enabling components to adjust their layout and rendering behavior dynamically.
50
- *
51
- * The default context values are set to assume no scaling (`scale: 1`) and no offsets (`xOffset: 0, yOffset: 0`),
52
- * which corresponds to the initial state in many applications before any dynamic adjustments are made.
53
- */
54
- export const DimensionsContext = createContext<IPositionContext>({
55
- scale: 1, /** Default scaling factor indicating no scaling. */
56
- xOffset: 0, /** Default horizontal offset indicating no shift. */
57
- yOffset: 0, /** Default vertical offset indicating no shift. */
58
- });
59
-
1
+ /*
2
+ * Copyright (C) 2024 Automated Design Corp. All Rights Reserved.
3
+ * Created Date: 2024-01-16 14:19:52
4
+ * -----
5
+ * Last Modified: 2024-03-08 07:48:18
6
+ * Modified By: ADC
7
+ * -----
8
+ *
9
+ */
10
+
11
+
12
+
13
+ import { createContext } from 'react';
14
+
15
+
16
+ /**
17
+ * Interface representing the position and scale context of a component within its parent container.
18
+ *
19
+ * This context is designed to provide components with necessary scaling and positioning
20
+ * information, such as for rendering elements correctly in absolute positioning or for
21
+ * adjusting layout based on dynamic offsets.
22
+ */
23
+ export interface IPositionContext {
24
+
25
+ /**
26
+ * Represents the scale factor applied to the dimensions of elements.
27
+ * A scale of 1 indicates no scaling, while values greater or less than 1
28
+ * indicate zoomed-in or zoomed-out states respectively.
29
+ */
30
+ scale: number;
31
+ /**
32
+ * Represents the horizontal offset that should be applied to the position
33
+ * of elements. This can be used to adjust element positioning in response to
34
+ * dynamic layout changes or to align elements within a scaled environment.
35
+ */
36
+ xOffset: number;
37
+ /**
38
+ * Represents the vertical offset that should be applied to the position
39
+ * of elements. Similar to `xOffset`, this is used for vertical alignment and
40
+ * positioning adjustments in a dynamic or scaled layout.
41
+ */
42
+ yOffset: number;
43
+ }
44
+
45
+
46
+ /**
47
+ * Creates a React context for position and scaling information of a component using absolute positioning.
48
+ * This context provides a standardized way to access and react to changes in scale and positioning offsets,
49
+ * enabling components to adjust their layout and rendering behavior dynamically.
50
+ *
51
+ * The default context values are set to assume no scaling (`scale: 1`) and no offsets (`xOffset: 0, yOffset: 0`),
52
+ * which corresponds to the initial state in many applications before any dynamic adjustments are made.
53
+ */
54
+ export const DimensionsContext = createContext<IPositionContext>({
55
+ scale: 1, /** Default scaling factor indicating no scaling. */
56
+ xOffset: 0, /** Default horizontal offset indicating no shift. */
57
+ yOffset: 0, /** Default vertical offset indicating no shift. */
58
+ });
59
+
60
60
  export default DimensionsContext;