@cerebruminc/cerebellum 13.1.6 → 13.1.7
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/lib/cjs/index.cjs
CHANGED
|
@@ -523,24 +523,19 @@ var DigitalInput = function (_a) {
|
|
|
523
523
|
var aggregatedValue = Object.values(updatedValues_1).join("");
|
|
524
524
|
setStateLib(updatedValues_1);
|
|
525
525
|
onChange === null || onChange === void 0 ? void 0 : onChange({ value: aggregatedValue, event: event, nativeEvent: event.nativeEvent });
|
|
526
|
-
var nextEmptyIndex = Object.values(updatedValues_1).findIndex(function (val, i) { return val === "" && i > index; });
|
|
527
|
-
var targetInput_1 = nextEmptyIndex !== -1 ? inputRefs.current[nextEmptyIndex] : inputRefs.current[digitLength - 1];
|
|
528
|
-
setTimeout(function () { var _a; return (_a = targetInput_1.current) === null || _a === void 0 ? void 0 : _a.select(); }, 0);
|
|
529
526
|
// Determine the next input to focus. This only comes into play if the input changing has content after it.
|
|
530
527
|
var nextFocusIndex_1 = index + 1;
|
|
531
528
|
while (nextFocusIndex_1 < digitLength && updatedValues_1[nextFocusIndex_1] === "") {
|
|
532
529
|
nextFocusIndex_1++;
|
|
533
530
|
}
|
|
534
531
|
if (pasteEvent) {
|
|
535
|
-
var
|
|
536
|
-
if (
|
|
537
|
-
(_c = (_b = inputRefs.current[
|
|
538
|
-
setTimeout(function () { var _a, _b; return (_b = (_a = inputRefs.current[firstEmptyIndex_1]) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.select(); }, 0);
|
|
532
|
+
var firstEmptyIndex = Object.keys(updatedValues_1).find(function (key) { return updatedValues_1[key] === ""; });
|
|
533
|
+
if (firstEmptyIndex) {
|
|
534
|
+
(_c = (_b = inputRefs.current[firstEmptyIndex]) === null || _b === void 0 ? void 0 : _b.current) === null || _c === void 0 ? void 0 : _c.focus();
|
|
539
535
|
}
|
|
540
536
|
else {
|
|
541
537
|
// set to the last input
|
|
542
538
|
(_e = (_d = inputRefs.current[digitLength - 1]) === null || _d === void 0 ? void 0 : _d.current) === null || _e === void 0 ? void 0 : _e.focus();
|
|
543
|
-
setTimeout(function () { var _a, _b; return (_b = (_a = inputRefs.current[digitLength - 1]) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.select(); }, 0);
|
|
544
539
|
}
|
|
545
540
|
}
|
|
546
541
|
else if (nextFocusIndex_1 < digitLength) {
|
|
@@ -570,10 +565,10 @@ var DigitalInput = function (_a) {
|
|
|
570
565
|
labelColor: (_c = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.labelColor) !== null && _c !== void 0 ? _c : theme.input.labelColor,
|
|
571
566
|
removePaddingRight: required,
|
|
572
567
|
}), required && (jsxRuntime.jsx(Inputs.Asterisk, _tslib.__assign({ "aria-label": "Required", "$asteriskColor": (_d = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.asteriskColor) !== null && _d !== void 0 ? _d : theme.input.asteriskColor }, { children: "*" }), void 0))] }), void 0), jsxRuntime.jsx(Switches.HiddenInput, { "aria-label": typeof label === "string" ? label : "code input", disabled: disabled, name: name, id: id, onChange: isEmptyObject.noop, ref: innerHiddenRef, tabIndex: -1, type: "text", value: value }, void 0), jsxRuntime.jsx(InputGroup, _tslib.__assign({ "$themeOverride": themeOverride }, { children: Array.from({ length: digitLength }, function (_, index) {
|
|
573
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p
|
|
568
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
574
569
|
return (jsxRuntime.jsx(InlineInput.InlineInput, { autofocus: autofocus && index === 0 ? true : undefined, inputMode: "numeric", disabled: disabled, onChange: function (event) { return handleInputChange({ index: index, event: event }); }, onClick: function () { return handleInputClick(index); }, onEnter: handleEnter, onInputBlur: onInputBlur, onInputFocus: handleInputFocus, onKeyDown: function (event) { return handleKeyDown({ index: index, event: event }); }, noMinWidth: true, showValidationMessage: showValidationMessage, sidePadding: 5, innerRef: inputRefs.current[index], value: stateLib[index],
|
|
575
570
|
// Theme props
|
|
576
|
-
activeBackgroundColor: (_b = (_a = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.activeBackgroundColor) !== null && _a !== void 0 ? _a : themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.inputBackgroundColor) !== null && _b !== void 0 ? _b : theme.input.inputBackgroundColor, activeBorderColor: (_c = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.activeBorderColor) !== null && _c !== void 0 ? _c : theme.input.activeBorderColor, disabledColor: (_d = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.disabledColor) !== null && _d !== void 0 ? _d : theme.input.disabledColor, disabledBorderColor: (_e = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.disabledBorderColor) !== null && _e !== void 0 ? _e : theme.input.disabledBorderColor, failColor: (_f = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.failColor) !== null && _f !== void 0 ? _f : theme.input.failColor, failColorSecondary:
|
|
571
|
+
activeBackgroundColor: (_b = (_a = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.activeBackgroundColor) !== null && _a !== void 0 ? _a : themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.inputBackgroundColor) !== null && _b !== void 0 ? _b : theme.input.inputBackgroundColor, activeBorderColor: (_c = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.activeBorderColor) !== null && _c !== void 0 ? _c : theme.input.activeBorderColor, disabledColor: (_d = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.disabledColor) !== null && _d !== void 0 ? _d : theme.input.disabledColor, disabledBorderColor: (_e = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.disabledBorderColor) !== null && _e !== void 0 ? _e : theme.input.disabledBorderColor, failColor: (_f = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.failColor) !== null && _f !== void 0 ? _f : theme.input.failColor, failColorSecondary: "transparent", hoverBorderColor: (_g = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.hoverBorderColor) !== null && _g !== void 0 ? _g : theme.input.hoverBorderColor, inactiveBorderColor: (_h = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.inactiveBorderColor) !== null && _h !== void 0 ? _h : theme.input.inactiveBorderColor, inputBackgroundColor: (_j = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.inputBackgroundColor) !== null && _j !== void 0 ? _j : theme.input.inputBackgroundColor, inputBorderRadius: (_k = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.inputBorderRadius) !== null && _k !== void 0 ? _k : theme.input.inputBorderRadius, inputHeight: (_l = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.inputHeight) !== null && _l !== void 0 ? _l : theme.input.inputHeight, inputWidth: (_m = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.inputWidth) !== null && _m !== void 0 ? _m : theme.digitalInput.inputWidth, textAlign: "center", textColor: (_o = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.textColor) !== null && _o !== void 0 ? _o : theme.input.textColor, textFontSize: (_p = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.textFontSize) !== null && _p !== void 0 ? _p : theme.digitalInput.textFontSize }, "digitalInput_".concat(index)));
|
|
577
572
|
}) }), void 0), jsxRuntime.jsx(Inputs.ValidationText, _tslib.__assign({ ref: validationRef, "$showValidationMessage": !!showValidationMessage, "$disabled": disabled, "$failColor": (_e = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.failColor) !== null && _e !== void 0 ? _e : theme.input.failColor, "$disabledColor": (_f = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.disabledColor) !== null && _f !== void 0 ? _f : theme.input.disabledColor, "$designSwitch": designSwitch && showValidationMessage }, { children: validationMessage }), void 0), helperTextVisible && (jsxRuntime.jsx(Inputs.HelperText, _tslib.__assign({ "$disabled": disabled, "$helperTextColor": (_g = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.helperTextColor) !== null && _g !== void 0 ? _g : theme.input.helperTextColor, "$disabledColor": (_h = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.disabledColor) !== null && _h !== void 0 ? _h : theme.input.disabledColor }, { children: helperText }), void 0))] }), void 0));
|
|
578
573
|
};
|
|
579
574
|
DigitalInput.defaultProps = {
|
package/lib/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/lib/esm/index.js
CHANGED
|
@@ -523,24 +523,19 @@ var DigitalInput = function (_a) {
|
|
|
523
523
|
var aggregatedValue = Object.values(updatedValues_1).join("");
|
|
524
524
|
setStateLib(updatedValues_1);
|
|
525
525
|
onChange === null || onChange === void 0 ? void 0 : onChange({ value: aggregatedValue, event: event, nativeEvent: event.nativeEvent });
|
|
526
|
-
var nextEmptyIndex = Object.values(updatedValues_1).findIndex(function (val, i) { return val === "" && i > index; });
|
|
527
|
-
var targetInput_1 = nextEmptyIndex !== -1 ? inputRefs.current[nextEmptyIndex] : inputRefs.current[digitLength - 1];
|
|
528
|
-
setTimeout(function () { var _a; return (_a = targetInput_1.current) === null || _a === void 0 ? void 0 : _a.select(); }, 0);
|
|
529
526
|
// Determine the next input to focus. This only comes into play if the input changing has content after it.
|
|
530
527
|
var nextFocusIndex_1 = index + 1;
|
|
531
528
|
while (nextFocusIndex_1 < digitLength && updatedValues_1[nextFocusIndex_1] === "") {
|
|
532
529
|
nextFocusIndex_1++;
|
|
533
530
|
}
|
|
534
531
|
if (pasteEvent) {
|
|
535
|
-
var
|
|
536
|
-
if (
|
|
537
|
-
(_c = (_b = inputRefs.current[
|
|
538
|
-
setTimeout(function () { var _a, _b; return (_b = (_a = inputRefs.current[firstEmptyIndex_1]) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.select(); }, 0);
|
|
532
|
+
var firstEmptyIndex = Object.keys(updatedValues_1).find(function (key) { return updatedValues_1[key] === ""; });
|
|
533
|
+
if (firstEmptyIndex) {
|
|
534
|
+
(_c = (_b = inputRefs.current[firstEmptyIndex]) === null || _b === void 0 ? void 0 : _b.current) === null || _c === void 0 ? void 0 : _c.focus();
|
|
539
535
|
}
|
|
540
536
|
else {
|
|
541
537
|
// set to the last input
|
|
542
538
|
(_e = (_d = inputRefs.current[digitLength - 1]) === null || _d === void 0 ? void 0 : _d.current) === null || _e === void 0 ? void 0 : _e.focus();
|
|
543
|
-
setTimeout(function () { var _a, _b; return (_b = (_a = inputRefs.current[digitLength - 1]) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.select(); }, 0);
|
|
544
539
|
}
|
|
545
540
|
}
|
|
546
541
|
else if (nextFocusIndex_1 < digitLength) {
|
|
@@ -570,10 +565,10 @@ var DigitalInput = function (_a) {
|
|
|
570
565
|
labelColor: (_c = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.labelColor) !== null && _c !== void 0 ? _c : theme.input.labelColor,
|
|
571
566
|
removePaddingRight: required,
|
|
572
567
|
}), required && (jsx(Asterisk, __assign({ "aria-label": "Required", "$asteriskColor": (_d = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.asteriskColor) !== null && _d !== void 0 ? _d : theme.input.asteriskColor }, { children: "*" }), void 0))] }), void 0), jsx(HiddenInput, { "aria-label": typeof label === "string" ? label : "code input", disabled: disabled, name: name, id: id, onChange: noop, ref: innerHiddenRef, tabIndex: -1, type: "text", value: value }, void 0), jsx(InputGroup, __assign({ "$themeOverride": themeOverride }, { children: Array.from({ length: digitLength }, function (_, index) {
|
|
573
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p
|
|
568
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
574
569
|
return (jsx(InlineInput, { autofocus: autofocus && index === 0 ? true : undefined, inputMode: "numeric", disabled: disabled, onChange: function (event) { return handleInputChange({ index: index, event: event }); }, onClick: function () { return handleInputClick(index); }, onEnter: handleEnter, onInputBlur: onInputBlur, onInputFocus: handleInputFocus, onKeyDown: function (event) { return handleKeyDown({ index: index, event: event }); }, noMinWidth: true, showValidationMessage: showValidationMessage, sidePadding: 5, innerRef: inputRefs.current[index], value: stateLib[index],
|
|
575
570
|
// Theme props
|
|
576
|
-
activeBackgroundColor: (_b = (_a = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.activeBackgroundColor) !== null && _a !== void 0 ? _a : themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.inputBackgroundColor) !== null && _b !== void 0 ? _b : theme.input.inputBackgroundColor, activeBorderColor: (_c = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.activeBorderColor) !== null && _c !== void 0 ? _c : theme.input.activeBorderColor, disabledColor: (_d = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.disabledColor) !== null && _d !== void 0 ? _d : theme.input.disabledColor, disabledBorderColor: (_e = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.disabledBorderColor) !== null && _e !== void 0 ? _e : theme.input.disabledBorderColor, failColor: (_f = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.failColor) !== null && _f !== void 0 ? _f : theme.input.failColor, failColorSecondary:
|
|
571
|
+
activeBackgroundColor: (_b = (_a = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.activeBackgroundColor) !== null && _a !== void 0 ? _a : themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.inputBackgroundColor) !== null && _b !== void 0 ? _b : theme.input.inputBackgroundColor, activeBorderColor: (_c = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.activeBorderColor) !== null && _c !== void 0 ? _c : theme.input.activeBorderColor, disabledColor: (_d = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.disabledColor) !== null && _d !== void 0 ? _d : theme.input.disabledColor, disabledBorderColor: (_e = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.disabledBorderColor) !== null && _e !== void 0 ? _e : theme.input.disabledBorderColor, failColor: (_f = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.failColor) !== null && _f !== void 0 ? _f : theme.input.failColor, failColorSecondary: "transparent", hoverBorderColor: (_g = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.hoverBorderColor) !== null && _g !== void 0 ? _g : theme.input.hoverBorderColor, inactiveBorderColor: (_h = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.inactiveBorderColor) !== null && _h !== void 0 ? _h : theme.input.inactiveBorderColor, inputBackgroundColor: (_j = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.inputBackgroundColor) !== null && _j !== void 0 ? _j : theme.input.inputBackgroundColor, inputBorderRadius: (_k = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.inputBorderRadius) !== null && _k !== void 0 ? _k : theme.input.inputBorderRadius, inputHeight: (_l = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.inputHeight) !== null && _l !== void 0 ? _l : theme.input.inputHeight, inputWidth: (_m = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.inputWidth) !== null && _m !== void 0 ? _m : theme.digitalInput.inputWidth, textAlign: "center", textColor: (_o = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.textColor) !== null && _o !== void 0 ? _o : theme.input.textColor, textFontSize: (_p = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.textFontSize) !== null && _p !== void 0 ? _p : theme.digitalInput.textFontSize }, "digitalInput_".concat(index)));
|
|
577
572
|
}) }), void 0), jsx(ValidationText, __assign({ ref: validationRef, "$showValidationMessage": !!showValidationMessage, "$disabled": disabled, "$failColor": (_e = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.failColor) !== null && _e !== void 0 ? _e : theme.input.failColor, "$disabledColor": (_f = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.disabledColor) !== null && _f !== void 0 ? _f : theme.input.disabledColor, "$designSwitch": designSwitch && showValidationMessage }, { children: validationMessage }), void 0), helperTextVisible && (jsx(HelperText, __assign({ "$disabled": disabled, "$helperTextColor": (_g = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.helperTextColor) !== null && _g !== void 0 ? _g : theme.input.helperTextColor, "$disabledColor": (_h = themeOverride === null || themeOverride === void 0 ? void 0 : themeOverride.disabledColor) !== null && _h !== void 0 ? _h : theme.input.disabledColor }, { children: helperText }), void 0))] }), void 0));
|
|
578
573
|
};
|
|
579
574
|
DigitalInput.defaultProps = {
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|