gbs-fwk-buildingblock 1.3.20-script-block → 1.3.21

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gbs-fwk-buildingblock",
3
- "version": "1.3.20-script-block",
3
+ "version": "1.3.21",
4
4
  "description": "building blocks",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.es.js",
@@ -1,11 +1,4 @@
1
- import React, {
2
- ChangeEvent,
3
- FocusEvent,
4
- KeyboardEvent,
5
- useState,
6
- useRef,
7
- useEffect,
8
- } from "react";
1
+ import React, { ChangeEvent, FocusEvent, KeyboardEvent, useState, useRef, useEffect } from "react";
9
2
  import { TooltipComponent } from "@syncfusion/ej2-react-popups";
10
3
 
11
4
  interface TextAreaprops {
@@ -21,7 +14,7 @@ interface TextAreaprops {
21
14
  required?: boolean;
22
15
  className?: string;
23
16
  placeholder?: string;
24
- maxLength?: any;
17
+ maxLength?: any
25
18
  disabled?: boolean;
26
19
  defaultValue?: any;
27
20
  enableTooltip?: boolean;
@@ -45,76 +38,41 @@ export const TextArea: React.FC<TextAreaprops> = ({
45
38
  onBlur,
46
39
  defaultValue,
47
40
  enableTooltip,
48
- maxWords,
41
+ maxWords
49
42
  }) => {
50
- const [toolTipValue, setToolTipValue] = useState("");
43
+ const [toolTipValue, setToolTipValue] = useState("")
51
44
 
52
45
  const textAreaRef: any = useRef(null);
53
46
 
54
47
  useEffect(() => {
55
- setToolTipValue(textAreaRef.current?.value);
56
- }, [defaultValue, value]);
48
+ setToolTipValue(textAreaRef.current?.value)
49
+ }, [defaultValue, value])
57
50
 
58
51
  const tooltipBeforeOpen = (event: any, tooltipValue: any) => {
59
- if (!tooltipValue || !enableTooltip) event.cancel = true;
60
- };
61
-
62
- const sanitizeInput = (value: string): string => {
63
- return value
64
- .replace(/[<>`;]/g, "") // strip common XSS/script vectors
65
- };
52
+ if (!tooltipValue || !enableTooltip)
53
+ event.cancel = true;
54
+ }
66
55
 
67
56
  const onHandleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {
68
57
  const inputValue = event.target.value;
69
- const sanitizedValue = sanitizeInput(inputValue);
70
-
71
- const clonedEvent = Object.assign(Object.create(Object.getPrototypeOf(event)), event, {
72
- target: {
73
- ...event.target,
74
- value: sanitizedValue,
75
- name: event.target.name,
76
- }
77
- });
78
-
79
58
  const words = inputValue.trim().split(/\s+/);
80
59
  if (maxWords && words.length > maxWords) {
81
60
  return;
82
61
  }
83
62
  setToolTipValue(inputValue);
84
- onChange?.(clonedEvent as any, {});
85
- };
86
-
87
- const onBlurEvent = (event: FocusEvent<HTMLTextAreaElement>) => {
88
- const inputValue = event.target.value;
89
- const sanitizedValue = sanitizeInput(inputValue);
90
- const clonedEvent = {
91
- ...event,
92
- target: {
93
- ...event.target,
94
- value: sanitizedValue,
95
- },
96
- };
97
- setToolTipValue(event.target.value);
98
- onBlur?.(clonedEvent as any, {});
63
+ onChange?.(event, {});
99
64
  };
100
65
 
101
66
  const onKeyDown = (e: any) => {
102
- e.stopPropagation();
103
- onKeypress?.(e);
104
- };
67
+ e.stopPropagation()
68
+ onKeypress?.(e)
69
+ }
105
70
 
106
71
  return (
107
72
  <>
108
- {label && (
109
- <label htmlFor={id} className="form-label">
110
- {label} {required ? <i className="req-lbl">*</i> : <></>}
111
- </label>
112
- )}
73
+ {label && <label htmlFor={id} className="form-label">{label} {required ? <i className="req-lbl">*</i> : <></>}</label>}
113
74
  {value != undefined ? (
114
- <TooltipComponent
115
- beforeOpen={(event: any) => tooltipBeforeOpen(event, toolTipValue)}
116
- content={enableTooltip ? toolTipValue : ""}
117
- >
75
+ <TooltipComponent beforeOpen={(event: any) => tooltipBeforeOpen(event, toolTipValue)} content={enableTooltip ? toolTipValue : ""}>
118
76
  <textarea
119
77
  id={id}
120
78
  name={name}
@@ -132,10 +90,7 @@ export const TextArea: React.FC<TextAreaprops> = ({
132
90
  />
133
91
  </TooltipComponent>
134
92
  ) : (
135
- <TooltipComponent
136
- beforeOpen={(event: any) => tooltipBeforeOpen(event, toolTipValue)}
137
- content={enableTooltip ? toolTipValue : ""}
138
- >
93
+ <TooltipComponent beforeOpen={(event: any) => tooltipBeforeOpen(event, toolTipValue)} content={enableTooltip ? toolTipValue : ""}>
139
94
  <textarea
140
95
  id={id}
141
96
  name={name}
@@ -148,7 +103,7 @@ export const TextArea: React.FC<TextAreaprops> = ({
148
103
  disabled={disabled}
149
104
  onKeyDown={onKeyDown}
150
105
  defaultValue={defaultValue}
151
- onBlur={onBlurEvent}
106
+ onBlur={onBlur}
152
107
  maxLength={maxLength}
153
108
  ref={textAreaRef}
154
109
  />
@@ -1,10 +1,4 @@
1
- import React, {
2
- ChangeEvent,
3
- FocusEvent,
4
- useState,
5
- useRef,
6
- useEffect,
7
- } from "react";
1
+ import React, { ChangeEvent, FocusEvent, useState, useRef, useEffect } from "react";
8
2
  import { TooltipComponent } from "@syncfusion/ej2-react-popups";
9
3
 
10
4
  interface TextInputProps {
@@ -30,7 +24,7 @@ interface TextInputProps {
30
24
  enableTooltip?: boolean;
31
25
  disablePasting?: boolean;
32
26
  autoComplete?: string;
33
- inputRef?: any;
27
+ inputRef?: any
34
28
  }
35
29
 
36
30
  export const Textbox: React.FC<TextInputProps> = ({
@@ -56,11 +50,11 @@ export const Textbox: React.FC<TextInputProps> = ({
56
50
  enableTooltip,
57
51
  disablePasting = false,
58
52
  autoComplete = "",
59
- inputRef,
53
+ inputRef
60
54
  }) => {
61
55
  const [patternError, setPatternError] = useState(false);
62
56
  const [oldValue, setOldValue] = useState(value ? value : defaultValue);
63
- const [tooltipValue, setTooltipValue] = useState();
57
+ const [tooltipValue, setTooltipValue] = useState()
64
58
 
65
59
  const isValidPattern = (value: string): boolean => {
66
60
  switch (pattern) {
@@ -93,11 +87,6 @@ export const Textbox: React.FC<TextInputProps> = ({
93
87
  return "Invalid Input";
94
88
  };
95
89
 
96
- const sanitizeInput = (value: string): string => {
97
- return value
98
- .replace(/[<>`;]/g, "")
99
- };
100
-
101
90
  const onBlurEvent = (event: any) => {
102
91
  if (pattern && event.target.value && !isValidPattern(event.target.value)) {
103
92
  setPatternError(true);
@@ -105,73 +94,64 @@ export const Textbox: React.FC<TextInputProps> = ({
105
94
  onBlur?.(event, {});
106
95
  };
107
96
 
108
- const onChangeEvent = (event: React.ChangeEvent<HTMLInputElement>) => {
109
- const rawValue = event.target.value;
110
- const sanitizedValue: any = sanitizeInput(rawValue);
111
- setTooltipValue(texboxTooltip.current?.value);
112
- setPatternError(false);
97
+ const onChangeEvent = (event: any) => {
98
+ setTooltipValue(texboxTooltip.current?.value)
113
99
 
114
- const clonedEvent = Object.assign(Object.create(Object.getPrototypeOf(event)), event, {
115
- target: {
116
- ...event.target,
117
- value: sanitizedValue,
118
- name: event.target.name
119
- }
120
- });
100
+ setPatternError(false);
121
101
 
122
102
  if (pattern === "number") {
123
103
  if (
124
- (sanitizedValue.length === 1 && sanitizedValue === "-") ||
125
- !isNaN(sanitizedValue)
104
+ (event.target.value.length === 1 && event.target.value === "-") ||
105
+ !isNaN(event.target.value)
126
106
  ) {
127
- onChange?.(clonedEvent as any, {});
128
- setOldValue(sanitizedValue);
107
+ onChange?.(event, {});
108
+ setOldValue(event.target.value);
129
109
  } else {
130
110
  event.target.value = oldValue;
131
111
  }
132
- } else if (
133
- pattern === "negativenumber" ||
134
- pattern === "preventnegativenumber"
135
- ) {
136
- if (!sanitizedValue.includes("-") && !isNaN(sanitizedValue)) {
137
- onChange?.(clonedEvent as any, {});
138
- setOldValue(sanitizedValue);
112
+ } else if (pattern === "negativenumber" || pattern === "preventnegativenumber") {
113
+ if (!event.target.value.includes("-") && !isNaN(event.target.value)) {
114
+ onChange?.(event, {});
115
+ setOldValue(event.target.value);
139
116
  } else {
140
117
  event.target.value = oldValue;
141
118
  }
142
- } else if (pattern === "lettersOnly") {
119
+ }
120
+ else if (pattern === "lettersOnly") {
143
121
  const textRegex = /^[a-zA-Z]*$/;
144
- if (textRegex.test(sanitizedValue) || sanitizedValue === "") {
145
- setOldValue(sanitizedValue);
146
- onChange?.(clonedEvent as any, {});
122
+ if (textRegex.test(event.target.value) || event.target.value === "") {
123
+ setOldValue(event.target.value);
124
+ onChange?.(event, {});
147
125
  } else {
148
126
  event.target.value = oldValue;
149
127
  }
150
128
  } else {
151
- setOldValue(sanitizedValue);
152
- onChange?.(clonedEvent as any, {});
129
+ setOldValue(event.target.value);
130
+ onChange?.(event, {});
153
131
  }
154
132
  };
155
133
 
156
134
  //tooltip settings
157
135
  const texboxTooltip: any = useRef(null);
158
136
  useEffect(() => {
159
- setTooltipValue(texboxTooltip.current?.value);
160
- }, [defaultValue, value]);
137
+ setTooltipValue(texboxTooltip.current?.value)
138
+ }, [defaultValue, value])
161
139
 
162
140
  useEffect(() => {
163
141
  if (inputRef) {
164
- inputRef(texboxTooltip);
142
+ inputRef(texboxTooltip)
165
143
  }
166
- }, [texboxTooltip, inputRef]);
144
+ }, [texboxTooltip, inputRef])
167
145
 
168
146
  const tooltipBeforeOpen = (event: any, tooltipValue: any) => {
169
- if (!tooltipValue || !enableTooltip) event.cancel = true;
170
- };
147
+ if (!tooltipValue || !enableTooltip)
148
+ event.cancel = true;
149
+ }
171
150
  const handleonKeyDown = (e: any) => {
172
- onKeyDown?.(e);
173
- e.stopPropagation();
174
- };
151
+ onKeyDown?.(e)
152
+ e.stopPropagation()
153
+
154
+ }
175
155
  return (
176
156
  <>
177
157
  {label && (
@@ -181,10 +161,7 @@ export const Textbox: React.FC<TextInputProps> = ({
181
161
  )}
182
162
  <>
183
163
  {value != undefined ? (
184
- <TooltipComponent
185
- beforeOpen={(event: any) => tooltipBeforeOpen(event, tooltipValue)}
186
- content={enableTooltip ? tooltipValue : ""}
187
- >
164
+ <TooltipComponent beforeOpen={(event: any) => tooltipBeforeOpen(event, tooltipValue)} content={enableTooltip ? tooltipValue : ""} >
188
165
  <input
189
166
  id={id}
190
167
  type={type}
@@ -206,15 +183,12 @@ export const Textbox: React.FC<TextInputProps> = ({
206
183
  defaultValue={defaultValue}
207
184
  checked={checked}
208
185
  ref={texboxTooltip}
209
- onPaste={disablePasting ? (e) => e.preventDefault() : undefined}
186
+ onPaste={disablePasting ? e => e.preventDefault() : undefined}
210
187
  autoComplete={autoComplete}
211
188
  />
212
189
  </TooltipComponent>
213
190
  ) : (
214
- <TooltipComponent
215
- beforeOpen={(event: any) => tooltipBeforeOpen(event, tooltipValue)}
216
- content={enableTooltip ? tooltipValue : ""}
217
- >
191
+ <TooltipComponent beforeOpen={(event: any) => tooltipBeforeOpen(event, tooltipValue)} content={enableTooltip ? tooltipValue : ""}>
218
192
  <input
219
193
  id={id}
220
194
  type={type}
@@ -235,7 +209,7 @@ export const Textbox: React.FC<TextInputProps> = ({
235
209
  defaultValue={defaultValue}
236
210
  checked={checked}
237
211
  ref={texboxTooltip}
238
- onPaste={disablePasting ? (e) => e.preventDefault() : undefined}
212
+ onPaste={disablePasting ? e => e.preventDefault() : undefined}
239
213
  autoComplete={autoComplete}
240
214
  />
241
215
  </TooltipComponent>