@adcops/autocore-react 3.3.8 → 3.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +58 -58
- package/additional-docs/AutoCoreTagContext.md +441 -441
- package/additional-docs/ButtonApiSpecs.md +48 -48
- package/additional-docs/GlobalEventEmitter.md +243 -243
- package/additional-docs/general_recommendations.md +22 -22
- package/additional-docs/react_performance_notes.md +94 -94
- package/dist/assets/svg/blockly_logo.svg +82 -82
- package/dist/assets/svg/distance.svg +40 -40
- package/dist/assets/svg/python_logo.svg +246 -246
- package/dist/assets/svg/rotation_ccw.svg +50 -50
- package/dist/assets/svg/rotation_ccw_a.svg +57 -57
- package/dist/assets/svg/rotation_ccw_b.svg +57 -57
- package/dist/assets/svg/rotation_ccw_c.svg +57 -57
- package/dist/assets/svg/rotation_cw.svg +49 -49
- package/dist/assets/svg/rotation_cw_a.svg +30 -30
- package/dist/assets/svg/rotation_cw_b.svg +30 -30
- package/dist/assets/svg/rotation_cw_c.svg +30 -30
- package/dist/assets/svg/speed.svg +39 -39
- package/dist/components/BlocklyEditor.css +93 -93
- package/dist/components/JogPanel.css +41 -41
- package/dist/components/ProgressBarWithValue.css +27 -27
- package/dist/components/ValueIndicator.css +31 -31
- package/dist/components/osk.css +123 -123
- package/dist/core/AutoCoreTagContext.d.ts.map +1 -1
- package/dist/core/AutoCoreTagContext.js +1 -1
- package/dist/hub/HubBase.d.ts +3 -3
- package/dist/hub/HubBase.d.ts.map +1 -1
- package/dist/hub/HubBase.js +1 -1
- package/package.json +104 -104
- package/readme.md +343 -343
- package/src/assets/BlocklyLogo.tsx +27 -27
- package/src/assets/Distance.tsx +18 -18
- package/src/assets/JogLong.tsx +13 -13
- package/src/assets/JogMedium.tsx +13 -13
- package/src/assets/JogShort.tsx +13 -13
- package/src/assets/PythonLogo.tsx +83 -83
- package/src/assets/Rotation3D.tsx +13 -13
- package/src/assets/RotationCcw.tsx +33 -33
- package/src/assets/RotationCcwA.tsx +45 -45
- package/src/assets/RotationCcwB.tsx +45 -45
- package/src/assets/RotationCcwC.tsx +45 -45
- package/src/assets/RotationCw.tsx +31 -31
- package/src/assets/RotationCwA.tsx +42 -42
- package/src/assets/RotationCwB.tsx +42 -42
- package/src/assets/RotationCwC.tsx +42 -42
- package/src/assets/Run.tsx +13 -13
- package/src/assets/Speed.tsx +18 -18
- package/src/assets/SpeedFast.tsx +13 -13
- package/src/assets/SpeedMedium.tsx +13 -13
- package/src/assets/SpeedNone.tsx +13 -13
- package/src/assets/SpeedSlow.tsx +13 -13
- package/src/assets/Walk.tsx +13 -13
- package/src/assets/index.ts +22 -22
- package/src/assets/svg/blockly_logo.svg +82 -82
- package/src/assets/svg/distance.svg +40 -40
- package/src/assets/svg/python_logo.svg +246 -246
- package/src/assets/svg/rotation_ccw.svg +50 -50
- package/src/assets/svg/rotation_ccw_a.svg +57 -57
- package/src/assets/svg/rotation_ccw_b.svg +57 -57
- package/src/assets/svg/rotation_ccw_c.svg +57 -57
- package/src/assets/svg/rotation_cw.svg +49 -49
- package/src/assets/svg/rotation_cw_a.svg +30 -30
- package/src/assets/svg/rotation_cw_b.svg +30 -30
- package/src/assets/svg/rotation_cw_c.svg +30 -30
- package/src/assets/svg/speed.svg +39 -39
- package/src/components/AutoCoreDevPanel.tsx +414 -414
- package/src/components/BlocklyEditor.css +93 -93
- package/src/components/BlocklyEditor.tsx +609 -609
- package/src/components/CodeEditor.tsx +155 -155
- package/src/components/FileList.tsx +390 -390
- package/src/components/FileSelect.tsx +128 -128
- package/src/components/FitText.tsx +35 -35
- package/src/components/Indicator.tsx +188 -188
- package/src/components/IndicatorButton.tsx +214 -214
- package/src/components/IndicatorRect.tsx +172 -172
- package/src/components/JogPanel.css +41 -41
- package/src/components/JogPanel.tsx +461 -461
- package/src/components/Lamp.tsx +243 -243
- package/src/components/Osk.tsx +192 -192
- package/src/components/OskDialog.tsx +164 -164
- package/src/components/ProgressBarWithValue.css +27 -27
- package/src/components/ProgressBarWithValue.tsx +48 -48
- package/src/components/TextInput.tsx +195 -195
- package/src/components/ToggleGroup.tsx +322 -322
- package/src/components/ValueDisplay.tsx +236 -236
- package/src/components/ValueIndicator.css +31 -31
- package/src/components/ValueIndicator.tsx +135 -135
- package/src/components/ValueInput.tsx +368 -368
- package/src/components/osk.css +123 -123
- package/src/core/ActionMode.ts +19 -19
- package/src/core/AutoCoreTagContext.tsx +625 -614
- package/src/core/AutoCoreTagTypes.ts +334 -334
- package/src/core/CoreStreamTypes.ts +512 -512
- package/src/core/EventEmitterContext.tsx +434 -434
- package/src/core/IndicatorButtonState.ts +34 -34
- package/src/core/IndicatorColor.ts +35 -35
- package/src/core/MaskPatterns.ts +87 -87
- package/src/core/NumerableTypes.ts +80 -80
- package/src/core/PositionContext.ts +59 -59
- package/src/core/UniqueId.ts +41 -41
- package/src/core/ValueSimulator.ts +166 -166
- package/src/core/hoc.tsx +65 -65
- package/src/hooks/adsHooks.tsx +287 -287
- package/src/hooks/commandHooks.tsx +300 -300
- package/src/hooks/index.ts +12 -12
- package/src/hooks/useAutoCoreTag.ts +103 -103
- package/src/hooks/useScaledValue.tsx +99 -99
- package/src/hub/CommandMessage.ts +89 -89
- package/src/hub/DebugPanel.ts +307 -307
- package/src/hub/HubBase.ts +249 -236
- package/src/hub/HubSimulate.ts +124 -124
- package/src/hub/HubTauri.ts +140 -140
- package/src/hub/HubWebSocket.ts +250 -250
- package/src/hub/debug.ts +211 -211
- package/src/hub/index.ts +81 -81
- package/src/themes/adc-dark/_extensions.scss +166 -166
- package/src/themes/adc-dark/_variables.scss +913 -913
- package/src/themes/adc-dark/blue/_fonts.scss +23 -23
- package/src/themes/adc-dark/blue/adc_theme.scss +31 -31
- package/src/themes/adc-dark/blue/theme.scss +14 -14
- package/src/themes/theme-base/_colors.scss +17 -17
- package/src/themes/theme-base/_common.scss +74 -74
- package/src/themes/theme-base/_components.scss +111 -111
- package/src/themes/theme-base/_mixins.scss +243 -243
- package/src/themes/theme-base/components/button/_button.scss +644 -644
- package/src/themes/theme-base/components/button/_speeddial.scss +91 -91
- package/src/themes/theme-base/components/button/_splitbutton.scss +358 -358
- package/src/themes/theme-base/components/data/_carousel.scss +39 -39
- package/src/themes/theme-base/components/data/_datascroller.scss +47 -47
- package/src/themes/theme-base/components/data/_datatable.scss +388 -388
- package/src/themes/theme-base/components/data/_dataview.scss +47 -47
- package/src/themes/theme-base/components/data/_filter.scss +137 -137
- package/src/themes/theme-base/components/data/_orderlist.scss +86 -86
- package/src/themes/theme-base/components/data/_organizationchart.scss +50 -50
- package/src/themes/theme-base/components/data/_paginator.scss +91 -91
- package/src/themes/theme-base/components/data/_picklist.scss +73 -73
- package/src/themes/theme-base/components/data/_timeline.scss +38 -38
- package/src/themes/theme-base/components/data/_tree.scss +184 -184
- package/src/themes/theme-base/components/data/_treetable.scss +431 -431
- package/src/themes/theme-base/components/file/_fileupload.scss +41 -41
- package/src/themes/theme-base/components/input/_autocomplete.scss +94 -94
- package/src/themes/theme-base/components/input/_calendar.scss +251 -251
- package/src/themes/theme-base/components/input/_cascadeselect.scss +107 -107
- package/src/themes/theme-base/components/input/_checkbox.scss +181 -181
- package/src/themes/theme-base/components/input/_chips.scss +102 -102
- package/src/themes/theme-base/components/input/_colorpicker.scss +17 -17
- package/src/themes/theme-base/components/input/_dropdown.scss +252 -252
- package/src/themes/theme-base/components/input/_editor.scss +122 -122
- package/src/themes/theme-base/components/input/_iconfield.scss +9 -9
- package/src/themes/theme-base/components/input/_inputgroup.scss +74 -74
- package/src/themes/theme-base/components/input/_inputicon.scss +14 -14
- package/src/themes/theme-base/components/input/_inputnumber.scss +4 -4
- package/src/themes/theme-base/components/input/_inputotp.scss +10 -10
- package/src/themes/theme-base/components/input/_inputswitch.scss +99 -99
- package/src/themes/theme-base/components/input/_inputtext.scss +101 -101
- package/src/themes/theme-base/components/input/_listbox.scss +138 -138
- package/src/themes/theme-base/components/input/_mention.scss +30 -30
- package/src/themes/theme-base/components/input/_multiselect.scss +278 -278
- package/src/themes/theme-base/components/input/_password.scss +32 -32
- package/src/themes/theme-base/components/input/_radiobutton.scss +169 -169
- package/src/themes/theme-base/components/input/_rating.scss +80 -80
- package/src/themes/theme-base/components/input/_selectbutton.scss +49 -49
- package/src/themes/theme-base/components/input/_slider.scss +49 -49
- package/src/themes/theme-base/components/input/_togglebutton.scss +99 -99
- package/src/themes/theme-base/components/input/_treeselect.scss +151 -151
- package/src/themes/theme-base/components/input/_tristatecheckbox.scss +46 -46
- package/src/themes/theme-base/components/menu/_breadcrumb.scss +42 -42
- package/src/themes/theme-base/components/menu/_contextmenu.scss +39 -39
- package/src/themes/theme-base/components/menu/_dock.scss +109 -109
- package/src/themes/theme-base/components/menu/_megamenu.scss +141 -141
- package/src/themes/theme-base/components/menu/_menu.scss +33 -33
- package/src/themes/theme-base/components/menu/_menubar.scss +216 -216
- package/src/themes/theme-base/components/menu/_panelmenu.scss +153 -153
- package/src/themes/theme-base/components/menu/_slidemenu.scss +60 -60
- package/src/themes/theme-base/components/menu/_steps.scss +57 -57
- package/src/themes/theme-base/components/menu/_tabmenu.scss +50 -50
- package/src/themes/theme-base/components/menu/_tieredmenu.scss +43 -43
- package/src/themes/theme-base/components/messages/_inlinemessage.scss +69 -69
- package/src/themes/theme-base/components/messages/_message.scss +107 -107
- package/src/themes/theme-base/components/messages/_toast.scss +100 -100
- package/src/themes/theme-base/components/misc/_avatar.scss +33 -33
- package/src/themes/theme-base/components/misc/_badge.scss +76 -76
- package/src/themes/theme-base/components/misc/_chip.scss +38 -38
- package/src/themes/theme-base/components/misc/_inplace.scss +17 -17
- package/src/themes/theme-base/components/misc/_metergroup.scss +80 -80
- package/src/themes/theme-base/components/misc/_progressbar.scss +17 -17
- package/src/themes/theme-base/components/misc/_scrolltop.scss +24 -24
- package/src/themes/theme-base/components/misc/_skeleton.scss +7 -7
- package/src/themes/theme-base/components/misc/_tag.scss +39 -39
- package/src/themes/theme-base/components/misc/_terminal.scss +12 -12
- package/src/themes/theme-base/components/multimedia/_galleria.scss +153 -153
- package/src/themes/theme-base/components/multimedia/_image.scss +53 -53
- package/src/themes/theme-base/components/overlay/_confirmpopup.scss +72 -72
- package/src/themes/theme-base/components/overlay/_dialog.scss +78 -78
- package/src/themes/theme-base/components/overlay/_overlaypanel.scss +64 -64
- package/src/themes/theme-base/components/overlay/_sidebar.scss +23 -23
- package/src/themes/theme-base/components/overlay/_tooltip.scss +33 -33
- package/src/themes/theme-base/components/panel/_accordion.scss +118 -118
- package/src/themes/theme-base/components/panel/_card.scss +30 -30
- package/src/themes/theme-base/components/panel/_divider.scss +30 -30
- package/src/themes/theme-base/components/panel/_fieldset.scss +47 -47
- package/src/themes/theme-base/components/panel/_panel.scss +47 -47
- package/src/themes/theme-base/components/panel/_scrollpanel.scss +10 -10
- package/src/themes/theme-base/components/panel/_splitter.scss +23 -23
- package/src/themes/theme-base/components/panel/_stepper.scss +136 -136
- package/src/themes/theme-base/components/panel/_tabview.scss +147 -147
- package/src/themes/theme-base/components/panel/_toolbar.scss +11 -11
- package/terser.config.cjs +25 -25
- package/todo.md +18 -18
- package/tools/build-themes.cjs +65 -65
- package/tools/copy-distribution-files.cjs +77 -77
- package/tools/minify.cjs +55 -55
- package/tsconfig.json +48 -48
- package/typedoc.json +12 -12
- 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
|
}
|
package/src/core/MaskPatterns.ts
CHANGED
|
@@ -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;
|