@simplybusiness/mobius 6.1.2 → 6.2.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [99ed68f]
8
+ - @simplybusiness/icons@4.33.1
9
+
10
+ ## 6.2.0
11
+
12
+ ### Minor Changes
13
+
14
+ - acc7a69: added MaskedField Atom
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies [db79891]
19
+ - @simplybusiness/icons@4.33.0
20
+
3
21
  ## 6.1.2
4
22
 
5
23
  ### Patch Changes
package/dist/cjs/index.js CHANGED
@@ -62,6 +62,7 @@ __export(index_exports, {
62
62
  Logo: () => Logo,
63
63
  LoqateAddressLookupService: () => LoqateAddressLookupService,
64
64
  MIN_MAX_ERROR: () => MIN_MAX_ERROR,
65
+ MaskedField: () => MaskedField,
65
66
  Modal: () => Modal2,
66
67
  NumberField: () => NumberField,
67
68
  Option: () => Option2,
@@ -4547,3 +4548,96 @@ var ExpandableText = (0, import_react82.forwardRef)((props, ref) => {
4547
4548
  );
4548
4549
  });
4549
4550
  ExpandableText.displayName = "ExpandableText";
4551
+
4552
+ // src/components/MaskedField/MaskedField.tsx
4553
+ var import_react83 = require("react");
4554
+ var import_react_imask = require("react-imask");
4555
+ var import_jsx_runtime71 = require("react/jsx-runtime");
4556
+ var createSyntheticEvent = (options) => {
4557
+ const { event, useMaskedValue, maskedValue, unmaskedValue, name } = options;
4558
+ const valueToEmit = useMaskedValue ? maskedValue : unmaskedValue;
4559
+ return {
4560
+ ...event,
4561
+ target: {
4562
+ ...event.target,
4563
+ value: valueToEmit,
4564
+ name
4565
+ },
4566
+ currentTarget: {
4567
+ ...event.currentTarget,
4568
+ value: valueToEmit,
4569
+ name
4570
+ }
4571
+ };
4572
+ };
4573
+ var MaskedField = (0, import_react83.forwardRef)((props, ref) => {
4574
+ const {
4575
+ mask,
4576
+ value,
4577
+ defaultValue,
4578
+ useMaskedValue = false,
4579
+ onChange,
4580
+ onBlur,
4581
+ "aria-describedby": ariaDescribedBy,
4582
+ "aria-label": ariaLabel,
4583
+ ...textFieldProps
4584
+ } = props;
4585
+ const {
4586
+ ref: maskRef,
4587
+ value: maskedValue,
4588
+ unmaskedValue
4589
+ } = (0, import_react_imask.useIMask)(mask, {
4590
+ defaultValue
4591
+ });
4592
+ const handleChange = (event) => {
4593
+ if (onChange) {
4594
+ onChange(
4595
+ createSyntheticEvent({
4596
+ event,
4597
+ useMaskedValue,
4598
+ maskedValue,
4599
+ unmaskedValue,
4600
+ name: textFieldProps.name
4601
+ })
4602
+ );
4603
+ }
4604
+ };
4605
+ const handleBlur = (event) => {
4606
+ if (onBlur) {
4607
+ onBlur(
4608
+ createSyntheticEvent({
4609
+ event,
4610
+ useMaskedValue,
4611
+ maskedValue,
4612
+ unmaskedValue,
4613
+ name: textFieldProps.name
4614
+ })
4615
+ );
4616
+ }
4617
+ };
4618
+ const inputRef = (node) => {
4619
+ if (maskRef) {
4620
+ maskRef.current = node;
4621
+ }
4622
+ if (ref) {
4623
+ if (typeof ref === "function") {
4624
+ ref(node);
4625
+ } else {
4626
+ ref.current = node;
4627
+ }
4628
+ }
4629
+ };
4630
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
4631
+ TextField,
4632
+ {
4633
+ ...textFieldProps,
4634
+ ref: inputRef,
4635
+ value: maskedValue,
4636
+ onChange: handleChange,
4637
+ onBlur: handleBlur,
4638
+ "aria-describedby": ariaDescribedBy,
4639
+ "aria-label": ariaLabel
4640
+ }
4641
+ );
4642
+ });
4643
+ MaskedField.displayName = "MaskedField";