diff --git a/README.md b/README.md index 44d275a6..a844e1ac 100644 --- a/README.md +++ b/README.md @@ -204,6 +204,7 @@ await resetPinCodeInternalStates() |**`stylePinCodeHiddenPasswordSizeEmpty`**|Size of the circle representing the hidden password of the PinCode file when empty|`4`|`number`| |**`stylePinCodeHiddenPasswordSizeFull`**|Size of the circle representing the hidden password of the PinCode file when full|`8`|`number`| |**`stylePinCodeMainContainer`**|Main container of the PinCode file|`flex: 1, justifyContent: 'center', alignItems: 'center'`|`StyleProp`| +|**`stylePinCodeGrid`**|Grid of container of the PinCode file|`justifyContent: 'center', alignItems: 'center',`|`StyleProp`| |**`stylePinCodeRowButtons`**|Row of buttons of the PinCode file|`justifyContent: 'center', alignItems: 'center', width: '100%', height: grid.unit * 5.5`|`StyleProp`| |**`stylePinCodeTextButtonCircle`**|Text of circle button TouchableHighlight of the PinCode file|`fontSize: grid.unit * 2, fontWeight: '200'`|`StyleProp`| |**`stylePinCodeTextSubtitle`**|Title of the PinCode file|`fontSize: 20, fontWeight: '200', lineHeight: grid.unit * 2.5`|`StyleProp`| diff --git a/dist/index.d.ts b/dist/index.d.ts index fef1aa56..e539b442 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -73,6 +73,7 @@ export declare type IProps = { stylePinCodeHiddenPasswordSizeEmpty?: number; stylePinCodeHiddenPasswordSizeFull?: number; stylePinCodeMainContainer?: StyleProp; + stylePinCodeGrid?: StyleProp; stylePinCodeRowButtons?: StyleProp; stylePinCodeTextButtonCircle?: StyleProp; stylePinCodeTextSubtitle?: StyleProp; diff --git a/dist/index.js b/dist/index.js index 5a74812a..16b79564 100644 --- a/dist/index.js +++ b/dist/index.js @@ -40,9 +40,9 @@ class PINCode extends React.PureComponent { const { status, pinStatus, styleMainContainer } = this.props; return (React.createElement(react_native_1.View, { style: [styles.container, styleMainContainer] }, status === PinCode_1.PinStatus.choose && - React.createElement(PinCodeChoose_1.default, { alphabetCharsVisible: this.props.alphabetCharsVisible, buttonDeleteComponent: this.props.buttonDeleteComponent, buttonDeleteText: this.props.buttonDeleteText, buttonNumberComponent: this.props.buttonNumberComponent, colorCircleButtons: this.props.colorCircleButtons, colorPassword: this.props.colorPassword, colorPasswordEmpty: this.props.colorPasswordEmpty, colorPasswordError: this.props.colorPasswordError, customBackSpaceIcon: this.props.customBackSpaceIcon, emptyColumnComponent: this.props.bottomLeftComponent, finishProcess: this.props.finishProcess, getCurrentLength: this.props.getCurrentPinLength, iconButtonDeleteDisabled: this.props.iconButtonDeleteDisabled, numbersButtonOverlayColor: this.props.numbersButtonOverlayColor, passwordComponent: this.props.passwordComponent, passwordLength: this.props.passwordLength, pinCodeKeychainName: this.props.pinCodeKeychainName || pinCodeKeychainNameDefault, pinCodeVisible: this.props.pinCodeVisible, storePin: this.props.storePin || null, styleAlphabet: this.props.styleAlphabet, styleButtonCircle: this.props.stylePinCodeButtonCircle, styleCircleHiddenPassword: this.props.stylePinCodeHiddenPasswordCircle, styleCircleSizeEmpty: this.props.stylePinCodeHiddenPasswordSizeEmpty, styleCircleSizeFull: this.props.stylePinCodeHiddenPasswordSizeFull, styleColorButtonTitle: this.props.stylePinCodeButtonNumber, styleColorButtonTitleSelected: this.props.stylePinCodeButtonNumberPressed, styleColorSubtitle: this.props.stylePinCodeColorSubtitle, styleColorSubtitleError: this.props.stylePinCodeColorSubtitleError, styleColorTitle: this.props.stylePinCodeColorTitle, styleColorTitleError: this.props.stylePinCodeColorTitleError, styleColumnButtons: this.props.stylePinCodeColumnButtons, styleColumnDeleteButton: this.props.stylePinCodeColumnDeleteButton, styleContainer: this.props.stylePinCodeChooseContainer, styleContainerPinCode: this.props.stylePinCodeMainContainer, styleDeleteButtonColorHideUnderlay: this.props.stylePinCodeDeleteButtonColorHideUnderlay, styleDeleteButtonColorShowUnderlay: this.props.stylePinCodeDeleteButtonColorShowUnderlay, styleDeleteButtonIcon: this.props.stylePinCodeDeleteButtonIcon, styleDeleteButtonSize: this.props.stylePinCodeDeleteButtonSize, styleDeleteButtonText: this.props.stylePinCodeDeleteButtonText, styleEmptyColumn: this.props.stylePinCodeEmptyColumn, stylePinCodeCircle: this.props.stylePinCodeCircle, styleRowButtons: this.props.stylePinCodeRowButtons, styleTextButton: this.props.stylePinCodeTextButtonCircle, styleTextSubtitle: this.props.stylePinCodeTextSubtitle, styleTextTitle: this.props.stylePinCodeTextTitle, styleViewTitle: this.props.stylePinCodeViewTitle, subtitleChoose: this.props.subtitleChoose || "to keep your information secure", subtitleComponent: this.props.subtitleComponent, subtitleConfirm: this.props.subtitleConfirm || "", subtitleError: this.props.subtitleError, textPasswordVisibleFamily: this.props.textPasswordVisibleFamily, textPasswordVisibleSize: this.props.textPasswordVisibleSize, titleAttemptFailed: this.props.titleAttemptFailed, titleChoose: this.props.titleChoose || "1 - Enter a PIN Code", titleComponent: this.props.titleComponent, titleConfirm: this.props.titleConfirm || "2 - Confirm your PIN Code", titleConfirmFailed: this.props.titleConfirmFailed, titleValidationFailed: this.props.titleValidationFailed, validationRegex: this.props.validationRegex, vibrationEnabled: this.props.vibrationEnabled, delayBetweenAttempts: this.props.delayBetweenAttempts }), + React.createElement(PinCodeChoose_1.default, { alphabetCharsVisible: this.props.alphabetCharsVisible, buttonDeleteComponent: this.props.buttonDeleteComponent, buttonDeleteText: this.props.buttonDeleteText, buttonNumberComponent: this.props.buttonNumberComponent, colorCircleButtons: this.props.colorCircleButtons, colorPassword: this.props.colorPassword, colorPasswordEmpty: this.props.colorPasswordEmpty, colorPasswordError: this.props.colorPasswordError, customBackSpaceIcon: this.props.customBackSpaceIcon, emptyColumnComponent: this.props.bottomLeftComponent, finishProcess: this.props.finishProcess, getCurrentLength: this.props.getCurrentPinLength, iconButtonDeleteDisabled: this.props.iconButtonDeleteDisabled, numbersButtonOverlayColor: this.props.numbersButtonOverlayColor, passwordComponent: this.props.passwordComponent, passwordLength: this.props.passwordLength, pinCodeKeychainName: this.props.pinCodeKeychainName || pinCodeKeychainNameDefault, pinCodeVisible: this.props.pinCodeVisible, storePin: this.props.storePin || null, styleAlphabet: this.props.styleAlphabet, styleButtonCircle: this.props.stylePinCodeButtonCircle, styleCircleHiddenPassword: this.props.stylePinCodeHiddenPasswordCircle, styleCircleSizeEmpty: this.props.stylePinCodeHiddenPasswordSizeEmpty, styleCircleSizeFull: this.props.stylePinCodeHiddenPasswordSizeFull, styleColorButtonTitle: this.props.stylePinCodeButtonNumber, styleColorButtonTitleSelected: this.props.stylePinCodeButtonNumberPressed, styleColorSubtitle: this.props.stylePinCodeColorSubtitle, styleColorSubtitleError: this.props.stylePinCodeColorSubtitleError, styleColorTitle: this.props.stylePinCodeColorTitle, styleColorTitleError: this.props.stylePinCodeColorTitleError, styleColumnButtons: this.props.stylePinCodeColumnButtons, styleColumnDeleteButton: this.props.stylePinCodeColumnDeleteButton, styleContainer: this.props.stylePinCodeChooseContainer, styleContainerPinCode: this.props.stylePinCodeMainContainer, styleDeleteButtonColorHideUnderlay: this.props.stylePinCodeDeleteButtonColorHideUnderlay, styleDeleteButtonColorShowUnderlay: this.props.stylePinCodeDeleteButtonColorShowUnderlay, styleDeleteButtonIcon: this.props.stylePinCodeDeleteButtonIcon, styleDeleteButtonSize: this.props.stylePinCodeDeleteButtonSize, styleDeleteButtonText: this.props.stylePinCodeDeleteButtonText, styleEmptyColumn: this.props.stylePinCodeEmptyColumn, stylePinCodeCircle: this.props.stylePinCodeCircle, styleGridButtons: this.props.stylePinCodeGrid, styleRowButtons: this.props.stylePinCodeRowButtons, styleTextButton: this.props.stylePinCodeTextButtonCircle, styleTextSubtitle: this.props.stylePinCodeTextSubtitle, styleTextTitle: this.props.stylePinCodeTextTitle, styleViewTitle: this.props.stylePinCodeViewTitle, subtitleChoose: this.props.subtitleChoose || "to keep your information secure", subtitleComponent: this.props.subtitleComponent, subtitleConfirm: this.props.subtitleConfirm || "", subtitleError: this.props.subtitleError, textPasswordVisibleFamily: this.props.textPasswordVisibleFamily, textPasswordVisibleSize: this.props.textPasswordVisibleSize, titleAttemptFailed: this.props.titleAttemptFailed, titleChoose: this.props.titleChoose || "1 - Enter a PIN Code", titleComponent: this.props.titleComponent, titleConfirm: this.props.titleConfirm || "2 - Confirm your PIN Code", titleConfirmFailed: this.props.titleConfirmFailed, titleValidationFailed: this.props.titleValidationFailed, validationRegex: this.props.validationRegex, vibrationEnabled: this.props.vibrationEnabled, delayBetweenAttempts: this.props.delayBetweenAttempts }), status === PinCode_1.PinStatus.enter && - React.createElement(PinCodeEnter_1.default, { alphabetCharsVisible: this.props.alphabetCharsVisible, passcodeFallback: this.props.passcodeFallback, buttonDeleteComponent: this.props.buttonDeleteComponent, buttonDeleteText: this.props.buttonDeleteText, buttonNumberComponent: this.props.buttonNumberComponent, callbackErrorTouchId: this.props.callbackErrorTouchId, changeInternalStatus: this.changeInternalStatus, colorCircleButtons: this.props.colorCircleButtons, colorPassword: this.props.colorPassword, colorPasswordEmpty: this.props.colorPasswordEmpty, colorPasswordError: this.props.colorPasswordError, customBackSpaceIcon: this.props.customBackSpaceIcon, disableLockScreen: this.props.disableLockScreen || disableLockScreenDefault, emptyColumnComponent: this.props.bottomLeftComponent, endProcessFunction: this.props.endProcessFunction, finishProcess: this.props.finishProcess, getCurrentLength: this.props.getCurrentPinLength, handleResult: this.props.handleResultEnterPin || null, iconButtonDeleteDisabled: this.props.iconButtonDeleteDisabled, maxAttempts: this.props.maxAttempts || 3, numbersButtonOverlayColor: this.props.numbersButtonOverlayColor, onFail: this.props.onFail || null, passwordComponent: this.props.passwordComponent, passwordLength: this.props.passwordLength, pinAttemptsAsyncStorageName: this.props.pinAttemptsAsyncStorageName || pinAttemptsAsyncStorageNameDefault, pinCodeKeychainName: this.props.pinCodeKeychainName || pinCodeKeychainNameDefault, pinCodeVisible: this.props.pinCodeVisible, pinStatusExternal: this.props.pinStatus || utils_1.PinResultStatus.initial, status: PinCode_1.PinStatus.enter, storedPin: this.props.storedPin || null, styleAlphabet: this.props.styleAlphabet, styleButtonCircle: this.props.stylePinCodeButtonCircle, styleCircleHiddenPassword: this.props.stylePinCodeHiddenPasswordCircle, styleCircleSizeEmpty: this.props.stylePinCodeHiddenPasswordSizeEmpty, styleCircleSizeFull: this.props.stylePinCodeHiddenPasswordSizeFull, styleColorButtonTitle: this.props.stylePinCodeButtonNumber, styleColorButtonTitleSelected: this.props.stylePinCodeButtonNumberPressed, styleColorSubtitle: this.props.stylePinCodeColorSubtitle, styleColorSubtitleError: this.props.stylePinCodeColorSubtitleError, styleColorTitle: this.props.stylePinCodeColorTitle, styleColorTitleError: this.props.stylePinCodeColorTitleError, styleColumnButtons: this.props.stylePinCodeColumnButtons, styleColumnDeleteButton: this.props.stylePinCodeColumnDeleteButton, styleContainer: this.props.stylePinCodeEnterContainer, styleContainerPinCode: this.props.stylePinCodeMainContainer, styleDeleteButtonColorHideUnderlay: this.props.stylePinCodeDeleteButtonColorHideUnderlay, styleDeleteButtonColorShowUnderlay: this.props.stylePinCodeDeleteButtonColorShowUnderlay, styleDeleteButtonIcon: this.props.stylePinCodeDeleteButtonIcon, styleDeleteButtonSize: this.props.stylePinCodeDeleteButtonSize, styleDeleteButtonText: this.props.stylePinCodeDeleteButtonText, styleEmptyColumn: this.props.stylePinCodeEmptyColumn, stylePinCodeCircle: this.props.stylePinCodeCircle, styleRowButtons: this.props.stylePinCodeRowButtons, styleTextButton: this.props.stylePinCodeTextButtonCircle, styleTextSubtitle: this.props.stylePinCodeTextSubtitle, styleTextTitle: this.props.stylePinCodeTextTitle, styleViewTitle: this.props.stylePinCodeViewTitle, subtitle: this.props.subtitleEnter || "", subtitleComponent: this.props.subtitleComponent, subtitleError: this.props.subtitleError, textCancelButtonTouchID: this.props.textCancelButtonTouchID, textPasswordVisibleFamily: this.props.textPasswordVisibleFamily, textPasswordVisibleSize: this.props.textPasswordVisibleSize, title: this.props.titleEnter || "Enter your PIN Code", titleAttemptFailed: this.props.titleAttemptFailed, titleComponent: this.props.titleComponent, titleConfirmFailed: this.props.titleConfirmFailed, timePinLockedAsyncStorageName: this.props.timePinLockedAsyncStorageName || timePinLockedAsyncStorageNameDefault, touchIDDisabled: this.props.touchIDDisabled || touchIDDisabledDefault, touchIDSentence: this.props.touchIDSentence || "To unlock your application", touchIDTitle: this.props.touchIDTitle || touchIDTitleDefault, vibrationEnabled: this.props.vibrationEnabled, delayBetweenAttempts: this.props.delayBetweenAttempts }), + React.createElement(PinCodeEnter_1.default, { alphabetCharsVisible: this.props.alphabetCharsVisible, passcodeFallback: this.props.passcodeFallback, buttonDeleteComponent: this.props.buttonDeleteComponent, buttonDeleteText: this.props.buttonDeleteText, buttonNumberComponent: this.props.buttonNumberComponent, callbackErrorTouchId: this.props.callbackErrorTouchId, changeInternalStatus: this.changeInternalStatus, colorCircleButtons: this.props.colorCircleButtons, colorPassword: this.props.colorPassword, colorPasswordEmpty: this.props.colorPasswordEmpty, colorPasswordError: this.props.colorPasswordError, customBackSpaceIcon: this.props.customBackSpaceIcon, disableLockScreen: this.props.disableLockScreen || disableLockScreenDefault, emptyColumnComponent: this.props.bottomLeftComponent, endProcessFunction: this.props.endProcessFunction, finishProcess: this.props.finishProcess, getCurrentLength: this.props.getCurrentPinLength, handleResult: this.props.handleResultEnterPin || null, iconButtonDeleteDisabled: this.props.iconButtonDeleteDisabled, maxAttempts: this.props.maxAttempts || 3, numbersButtonOverlayColor: this.props.numbersButtonOverlayColor, onFail: this.props.onFail || null, passwordComponent: this.props.passwordComponent, passwordLength: this.props.passwordLength, pinAttemptsAsyncStorageName: this.props.pinAttemptsAsyncStorageName || pinAttemptsAsyncStorageNameDefault, pinCodeKeychainName: this.props.pinCodeKeychainName || pinCodeKeychainNameDefault, pinCodeVisible: this.props.pinCodeVisible, pinStatusExternal: this.props.pinStatus || utils_1.PinResultStatus.initial, status: PinCode_1.PinStatus.enter, storedPin: this.props.storedPin || null, styleAlphabet: this.props.styleAlphabet, styleButtonCircle: this.props.stylePinCodeButtonCircle, styleCircleHiddenPassword: this.props.stylePinCodeHiddenPasswordCircle, styleCircleSizeEmpty: this.props.stylePinCodeHiddenPasswordSizeEmpty, styleCircleSizeFull: this.props.stylePinCodeHiddenPasswordSizeFull, styleColorButtonTitle: this.props.stylePinCodeButtonNumber, styleColorButtonTitleSelected: this.props.stylePinCodeButtonNumberPressed, styleColorSubtitle: this.props.stylePinCodeColorSubtitle, styleColorSubtitleError: this.props.stylePinCodeColorSubtitleError, styleColorTitle: this.props.stylePinCodeColorTitle, styleColorTitleError: this.props.stylePinCodeColorTitleError, styleColumnButtons: this.props.stylePinCodeColumnButtons, styleColumnDeleteButton: this.props.stylePinCodeColumnDeleteButton, styleContainer: this.props.stylePinCodeEnterContainer, styleContainerPinCode: this.props.stylePinCodeMainContainer, styleDeleteButtonColorHideUnderlay: this.props.stylePinCodeDeleteButtonColorHideUnderlay, styleDeleteButtonColorShowUnderlay: this.props.stylePinCodeDeleteButtonColorShowUnderlay, styleDeleteButtonIcon: this.props.stylePinCodeDeleteButtonIcon, styleDeleteButtonSize: this.props.stylePinCodeDeleteButtonSize, styleDeleteButtonText: this.props.stylePinCodeDeleteButtonText, styleEmptyColumn: this.props.stylePinCodeEmptyColumn, stylePinCodeCircle: this.props.stylePinCodeCircle, styleGridButtons: this.props.stylePinCodeGrid, styleRowButtons: this.props.stylePinCodeRowButtons, styleTextButton: this.props.stylePinCodeTextButtonCircle, styleTextSubtitle: this.props.stylePinCodeTextSubtitle, styleTextTitle: this.props.stylePinCodeTextTitle, styleViewTitle: this.props.stylePinCodeViewTitle, subtitle: this.props.subtitleEnter || "", subtitleComponent: this.props.subtitleComponent, subtitleError: this.props.subtitleError, textCancelButtonTouchID: this.props.textCancelButtonTouchID, textPasswordVisibleFamily: this.props.textPasswordVisibleFamily, textPasswordVisibleSize: this.props.textPasswordVisibleSize, title: this.props.titleEnter || "Enter your PIN Code", titleAttemptFailed: this.props.titleAttemptFailed, titleComponent: this.props.titleComponent, titleConfirmFailed: this.props.titleConfirmFailed, timePinLockedAsyncStorageName: this.props.timePinLockedAsyncStorageName || timePinLockedAsyncStorageNameDefault, touchIDDisabled: this.props.touchIDDisabled || touchIDDisabledDefault, touchIDSentence: this.props.touchIDSentence || "To unlock your application", touchIDTitle: this.props.touchIDTitle || touchIDTitleDefault, vibrationEnabled: this.props.vibrationEnabled, delayBetweenAttempts: this.props.delayBetweenAttempts }), (pinStatus === utils_1.PinResultStatus.locked || this.state.internalPinStatus === utils_1.PinResultStatus.locked || this.state.pinLocked) && diff --git a/dist/src/PinCode.d.ts b/dist/src/PinCode.d.ts index 79ef1284..cac4eecb 100644 --- a/dist/src/PinCode.d.ts +++ b/dist/src/PinCode.d.ts @@ -48,6 +48,7 @@ export interface IProps { styleDeleteButtonText?: StyleProp; styleEmptyColumn?: StyleProp; stylePinCodeCircle?: StyleProp; + styleGridButtons?: StyleProp; styleRowButtons?: StyleProp; styleTextButton?: StyleProp; styleTextSubtitle?: StyleProp; diff --git a/dist/src/PinCode.js b/dist/src/PinCode.js index 385e2618..d501cb2a 100644 --- a/dist/src/PinCode.js +++ b/dist/src/PinCode.js @@ -363,7 +363,10 @@ class PinCode extends React.PureComponent { React.createElement(react_native_1.View, { style: styles.flexCirclePassword }, this.props.passwordComponent ? this.props.passwordComponent() : this.renderCirclePassword()), - React.createElement(react_native_easy_grid_1.Grid, { style: styles.grid }, + React.createElement(react_native_easy_grid_1.Grid, { style: [ + styles.grid, + this.props.styleGridButtons + ] }, React.createElement(react_native_easy_grid_1.Row, { style: [ styles.row, this.props.styleRowButtons @@ -466,6 +469,7 @@ PinCode.defaultProps = { styleColorTitleError: colors_1.colors.alert, styleColorSubtitleError: colors_1.colors.alert, styleViewTitle: null, + styleGridButtons: null, styleRowButtons: null, styleColumnButtons: null, styleEmptyColumn: null, diff --git a/dist/src/PinCodeChoose.d.ts b/dist/src/PinCodeChoose.d.ts index 7df2185c..1d0e02ec 100644 --- a/dist/src/PinCodeChoose.d.ts +++ b/dist/src/PinCodeChoose.d.ts @@ -46,6 +46,7 @@ export interface IProps { styleDeleteButtonText?: StyleProp; styleEmptyColumn?: StyleProp; stylePinCodeCircle?: StyleProp; + styleGridButtons?: StyleProp; styleRowButtons?: StyleProp; styleTextButton?: StyleProp; styleTextSubtitle?: StyleProp; diff --git a/dist/src/PinCodeChoose.js b/dist/src/PinCodeChoose.js index 86cedfb3..9ae30359 100644 --- a/dist/src/PinCodeChoose.js +++ b/dist/src/PinCodeChoose.js @@ -41,8 +41,8 @@ class PinCodeChoose extends React.PureComponent { styles.container, this.props.styleContainer ] }, - this.state.status === PinCode_1.PinStatus.choose && (React.createElement(PinCode_1.default, { alphabetCharsVisible: this.props.alphabetCharsVisible, buttonDeleteComponent: this.props.buttonDeleteComponent || null, buttonDeleteText: this.props.buttonDeleteText, buttonNumberComponent: this.props.buttonNumberComponent || null, colorCircleButtons: this.props.colorCircleButtons, colorPassword: this.props.colorPassword || undefined, colorPasswordEmpty: this.props.colorPasswordEmpty, colorPasswordError: this.props.colorPasswordError || undefined, customBackSpaceIcon: this.props.customBackSpaceIcon, emptyColumnComponent: this.props.emptyColumnComponent, endProcess: this.endProcessCreation, getCurrentLength: this.props.getCurrentLength, iconButtonDeleteDisabled: this.props.iconButtonDeleteDisabled, numbersButtonOverlayColor: this.props.numbersButtonOverlayColor || undefined, passwordComponent: this.props.passwordComponent || null, passwordLength: this.props.passwordLength || 4, pinCodeVisible: this.props.pinCodeVisible, sentenceTitle: this.props.titleChoose, status: PinCode_1.PinStatus.choose, styleAlphabet: this.props.styleAlphabet, styleButtonCircle: this.props.styleButtonCircle, styleCircleHiddenPassword: this.props.styleCircleHiddenPassword, styleCircleSizeEmpty: this.props.styleCircleSizeEmpty, styleCircleSizeFull: this.props.styleCircleSizeFull, styleColorButtonTitle: this.props.styleColorButtonTitle, styleColorButtonTitleSelected: this.props.styleColorButtonTitleSelected, styleColorSubtitle: this.props.styleColorSubtitle, styleColorSubtitleError: this.props.styleColorSubtitleError, styleColorTitle: this.props.styleColorTitle, styleColorTitleError: this.props.styleColorTitleError, styleColumnButtons: this.props.styleColumnButtons, styleColumnDeleteButton: this.props.styleColumnDeleteButton, styleContainer: this.props.styleContainerPinCode, styleDeleteButtonColorHideUnderlay: this.props.styleDeleteButtonColorHideUnderlay, styleDeleteButtonColorShowUnderlay: this.props.styleDeleteButtonColorShowUnderlay, styleDeleteButtonIcon: this.props.styleDeleteButtonIcon, styleDeleteButtonSize: this.props.styleDeleteButtonSize, styleDeleteButtonText: this.props.styleDeleteButtonText, styleEmptyColumn: this.props.styleEmptyColumn, stylePinCodeCircle: this.props.stylePinCodeCircle, styleRowButtons: this.props.styleRowButtons, styleTextButton: this.props.styleTextButton, styleTextSubtitle: this.props.styleTextSubtitle, styleTextTitle: this.props.styleTextTitle, styleViewTitle: this.props.styleViewTitle, subtitle: this.props.subtitleChoose, subtitleComponent: this.props.subtitleComponent || null, subtitleError: this.props.subtitleError || 'Please try again', textPasswordVisibleFamily: this.props.textPasswordVisibleFamily, textPasswordVisibleSize: this.props.textPasswordVisibleSize, titleComponent: this.props.titleComponent || null, titleValidationFailed: this.props.titleValidationFailed || 'PIN code unsafe', validationRegex: this.props.validationRegex, vibrationEnabled: this.props.vibrationEnabled })), - this.state.status === PinCode_1.PinStatus.confirm && (React.createElement(PinCode_1.default, { alphabetCharsVisible: this.props.alphabetCharsVisible, buttonDeleteComponent: this.props.buttonDeleteComponent || null, buttonDeleteText: this.props.buttonDeleteText, buttonNumberComponent: this.props.buttonNumberComponent || null, cancelFunction: this.cancelConfirm, colorCircleButtons: this.props.colorCircleButtons, colorPassword: this.props.colorPassword || undefined, colorPasswordEmpty: this.props.colorPasswordEmpty, colorPasswordError: this.props.colorPasswordError || undefined, customBackSpaceIcon: this.props.customBackSpaceIcon, emptyColumnComponent: this.props.emptyColumnComponent, endProcess: this.endProcessConfirm, getCurrentLength: this.props.getCurrentLength, iconButtonDeleteDisabled: this.props.iconButtonDeleteDisabled, numbersButtonOverlayColor: this.props.numbersButtonOverlayColor || undefined, passwordComponent: this.props.passwordComponent || null, passwordLength: this.props.passwordLength || 4, pinCodeVisible: this.props.pinCodeVisible, previousPin: this.state.pinCode, sentenceTitle: this.props.titleConfirm, status: PinCode_1.PinStatus.confirm, subtitle: this.props.subtitleConfirm, subtitleComponent: this.props.subtitleComponent || null, subtitleError: this.props.subtitleError || 'Please try again', textPasswordVisibleFamily: this.props.textPasswordVisibleFamily, textPasswordVisibleSize: this.props.textPasswordVisibleSize, titleAttemptFailed: this.props.titleAttemptFailed || 'Incorrect PIN Code', titleComponent: this.props.titleComponent || null, titleConfirmFailed: this.props.titleConfirmFailed || 'Your entries did not match', styleAlphabet: this.props.styleAlphabet, styleButtonCircle: this.props.styleButtonCircle, styleCircleHiddenPassword: this.props.styleCircleHiddenPassword, styleCircleSizeEmpty: this.props.styleCircleSizeEmpty, styleCircleSizeFull: this.props.styleCircleSizeFull, styleColorButtonTitle: this.props.styleColorButtonTitle, styleColorButtonTitleSelected: this.props.styleColorButtonTitleSelected, styleColorSubtitle: this.props.styleColorSubtitle, styleColorSubtitleError: this.props.styleColorSubtitleError, styleColorTitle: this.props.styleColorTitle, styleColorTitleError: this.props.styleColorTitleError, styleColumnButtons: this.props.styleColumnButtons, styleColumnDeleteButton: this.props.styleColumnDeleteButton, styleContainer: this.props.styleContainerPinCode, styleDeleteButtonColorHideUnderlay: this.props.styleDeleteButtonColorHideUnderlay, styleDeleteButtonColorShowUnderlay: this.props.styleDeleteButtonColorShowUnderlay, styleDeleteButtonIcon: this.props.styleDeleteButtonIcon, styleDeleteButtonSize: this.props.styleDeleteButtonSize, styleDeleteButtonText: this.props.styleDeleteButtonText, styleEmptyColumn: this.props.styleEmptyColumn, stylePinCodeCircle: this.props.stylePinCodeCircle, styleRowButtons: this.props.styleRowButtons, styleTextButton: this.props.styleTextButton, styleTextSubtitle: this.props.styleTextSubtitle, styleTextTitle: this.props.styleTextTitle, styleViewTitle: this.props.styleViewTitle, vibrationEnabled: this.props.vibrationEnabled, delayBetweenAttempts: this.props.delayBetweenAttempts })))); + this.state.status === PinCode_1.PinStatus.choose && (React.createElement(PinCode_1.default, { alphabetCharsVisible: this.props.alphabetCharsVisible, buttonDeleteComponent: this.props.buttonDeleteComponent || null, buttonDeleteText: this.props.buttonDeleteText, buttonNumberComponent: this.props.buttonNumberComponent || null, colorCircleButtons: this.props.colorCircleButtons, colorPassword: this.props.colorPassword || undefined, colorPasswordEmpty: this.props.colorPasswordEmpty, colorPasswordError: this.props.colorPasswordError || undefined, customBackSpaceIcon: this.props.customBackSpaceIcon, emptyColumnComponent: this.props.emptyColumnComponent, endProcess: this.endProcessCreation, getCurrentLength: this.props.getCurrentLength, iconButtonDeleteDisabled: this.props.iconButtonDeleteDisabled, numbersButtonOverlayColor: this.props.numbersButtonOverlayColor || undefined, passwordComponent: this.props.passwordComponent || null, passwordLength: this.props.passwordLength || 4, pinCodeVisible: this.props.pinCodeVisible, sentenceTitle: this.props.titleChoose, status: PinCode_1.PinStatus.choose, styleAlphabet: this.props.styleAlphabet, styleButtonCircle: this.props.styleButtonCircle, styleCircleHiddenPassword: this.props.styleCircleHiddenPassword, styleCircleSizeEmpty: this.props.styleCircleSizeEmpty, styleCircleSizeFull: this.props.styleCircleSizeFull, styleColorButtonTitle: this.props.styleColorButtonTitle, styleColorButtonTitleSelected: this.props.styleColorButtonTitleSelected, styleColorSubtitle: this.props.styleColorSubtitle, styleColorSubtitleError: this.props.styleColorSubtitleError, styleColorTitle: this.props.styleColorTitle, styleColorTitleError: this.props.styleColorTitleError, styleColumnButtons: this.props.styleColumnButtons, styleColumnDeleteButton: this.props.styleColumnDeleteButton, styleContainer: this.props.styleContainerPinCode, styleDeleteButtonColorHideUnderlay: this.props.styleDeleteButtonColorHideUnderlay, styleDeleteButtonColorShowUnderlay: this.props.styleDeleteButtonColorShowUnderlay, styleDeleteButtonIcon: this.props.styleDeleteButtonIcon, styleDeleteButtonSize: this.props.styleDeleteButtonSize, styleDeleteButtonText: this.props.styleDeleteButtonText, styleEmptyColumn: this.props.styleEmptyColumn, stylePinCodeCircle: this.props.stylePinCodeCircle, styleGridButtons: this.props.styleGridButtons, styleRowButtons: this.props.styleRowButtons, styleTextButton: this.props.styleTextButton, styleTextSubtitle: this.props.styleTextSubtitle, styleTextTitle: this.props.styleTextTitle, styleViewTitle: this.props.styleViewTitle, subtitle: this.props.subtitleChoose, subtitleComponent: this.props.subtitleComponent || null, subtitleError: this.props.subtitleError || 'Please try again', textPasswordVisibleFamily: this.props.textPasswordVisibleFamily, textPasswordVisibleSize: this.props.textPasswordVisibleSize, titleComponent: this.props.titleComponent || null, titleValidationFailed: this.props.titleValidationFailed || 'PIN code unsafe', validationRegex: this.props.validationRegex, vibrationEnabled: this.props.vibrationEnabled })), + this.state.status === PinCode_1.PinStatus.confirm && (React.createElement(PinCode_1.default, { alphabetCharsVisible: this.props.alphabetCharsVisible, buttonDeleteComponent: this.props.buttonDeleteComponent || null, buttonDeleteText: this.props.buttonDeleteText, buttonNumberComponent: this.props.buttonNumberComponent || null, cancelFunction: this.cancelConfirm, colorCircleButtons: this.props.colorCircleButtons, colorPassword: this.props.colorPassword || undefined, colorPasswordEmpty: this.props.colorPasswordEmpty, colorPasswordError: this.props.colorPasswordError || undefined, customBackSpaceIcon: this.props.customBackSpaceIcon, emptyColumnComponent: this.props.emptyColumnComponent, endProcess: this.endProcessConfirm, getCurrentLength: this.props.getCurrentLength, iconButtonDeleteDisabled: this.props.iconButtonDeleteDisabled, numbersButtonOverlayColor: this.props.numbersButtonOverlayColor || undefined, passwordComponent: this.props.passwordComponent || null, passwordLength: this.props.passwordLength || 4, pinCodeVisible: this.props.pinCodeVisible, previousPin: this.state.pinCode, sentenceTitle: this.props.titleConfirm, status: PinCode_1.PinStatus.confirm, subtitle: this.props.subtitleConfirm, subtitleComponent: this.props.subtitleComponent || null, subtitleError: this.props.subtitleError || 'Please try again', textPasswordVisibleFamily: this.props.textPasswordVisibleFamily, textPasswordVisibleSize: this.props.textPasswordVisibleSize, titleAttemptFailed: this.props.titleAttemptFailed || 'Incorrect PIN Code', titleComponent: this.props.titleComponent || null, titleConfirmFailed: this.props.titleConfirmFailed || 'Your entries did not match', styleAlphabet: this.props.styleAlphabet, styleButtonCircle: this.props.styleButtonCircle, styleCircleHiddenPassword: this.props.styleCircleHiddenPassword, styleCircleSizeEmpty: this.props.styleCircleSizeEmpty, styleCircleSizeFull: this.props.styleCircleSizeFull, styleColorButtonTitle: this.props.styleColorButtonTitle, styleColorButtonTitleSelected: this.props.styleColorButtonTitleSelected, styleColorSubtitle: this.props.styleColorSubtitle, styleColorSubtitleError: this.props.styleColorSubtitleError, styleColorTitle: this.props.styleColorTitle, styleColorTitleError: this.props.styleColorTitleError, styleColumnButtons: this.props.styleColumnButtons, styleColumnDeleteButton: this.props.styleColumnDeleteButton, styleContainer: this.props.styleContainerPinCode, styleDeleteButtonColorHideUnderlay: this.props.styleDeleteButtonColorHideUnderlay, styleDeleteButtonColorShowUnderlay: this.props.styleDeleteButtonColorShowUnderlay, styleDeleteButtonIcon: this.props.styleDeleteButtonIcon, styleDeleteButtonSize: this.props.styleDeleteButtonSize, styleDeleteButtonText: this.props.styleDeleteButtonText, styleEmptyColumn: this.props.styleEmptyColumn, stylePinCodeCircle: this.props.stylePinCodeCircle, styleGridButtons: this.props.styleGridButtons, styleRowButtons: this.props.styleRowButtons, styleTextButton: this.props.styleTextButton, styleTextSubtitle: this.props.styleTextSubtitle, styleTextTitle: this.props.styleTextTitle, styleViewTitle: this.props.styleViewTitle, vibrationEnabled: this.props.vibrationEnabled, delayBetweenAttempts: this.props.delayBetweenAttempts })))); } } PinCodeChoose.defaultProps = { diff --git a/dist/src/PinCodeEnter.d.ts b/dist/src/PinCodeEnter.d.ts index b316e475..b61b1daf 100644 --- a/dist/src/PinCodeEnter.d.ts +++ b/dist/src/PinCodeEnter.d.ts @@ -57,6 +57,7 @@ export interface IProps { styleDeleteButtonText?: StyleProp; styleEmptyColumn?: StyleProp; stylePinCodeCircle?: StyleProp; + styleGridButtons?: StyleProp; styleRowButtons?: StyleProp; styleTextButton?: StyleProp; styleTextSubtitle?: StyleProp; diff --git a/dist/src/PinCodeEnter.js b/dist/src/PinCodeEnter.js index 23baa84a..7e022316 100644 --- a/dist/src/PinCodeEnter.js +++ b/dist/src/PinCodeEnter.js @@ -123,7 +123,7 @@ class PinCodeEnter extends React.PureComponent { styles.container, this.props.styleContainer ] }, - React.createElement(PinCode_1.default, { alphabetCharsVisible: this.props.alphabetCharsVisible, buttonDeleteComponent: this.props.buttonDeleteComponent || null, buttonDeleteText: this.props.buttonDeleteText, buttonNumberComponent: this.props.buttonNumberComponent || null, colorCircleButtons: this.props.colorCircleButtons, colorPassword: this.props.colorPassword || undefined, colorPasswordEmpty: this.props.colorPasswordEmpty, colorPasswordError: this.props.colorPasswordError || undefined, customBackSpaceIcon: this.props.customBackSpaceIcon, emptyColumnComponent: this.props.emptyColumnComponent, endProcess: this.endProcess, launchTouchID: this.launchTouchID, getCurrentLength: this.props.getCurrentLength, iconButtonDeleteDisabled: this.props.iconButtonDeleteDisabled, numbersButtonOverlayColor: this.props.numbersButtonOverlayColor || undefined, passwordComponent: this.props.passwordComponent || null, passwordLength: this.props.passwordLength || 4, pinCodeStatus: this.state.pinCodeStatus, pinCodeVisible: this.props.pinCodeVisible, previousPin: pin, sentenceTitle: this.props.title, status: PinCode_1.PinStatus.enter, styleAlphabet: this.props.styleAlphabet, styleButtonCircle: this.props.styleButtonCircle, styleCircleHiddenPassword: this.props.styleCircleHiddenPassword, styleCircleSizeEmpty: this.props.styleCircleSizeEmpty, styleCircleSizeFull: this.props.styleCircleSizeFull, styleColumnButtons: this.props.styleColumnButtons, styleColumnDeleteButton: this.props.styleColumnDeleteButton, styleColorButtonTitle: this.props.styleColorButtonTitle, styleColorButtonTitleSelected: this.props.styleColorButtonTitleSelected, styleColorSubtitle: this.props.styleColorSubtitle, styleColorSubtitleError: this.props.styleColorSubtitleError, styleColorTitle: this.props.styleColorTitle, styleColorTitleError: this.props.styleColorTitleError, styleContainer: this.props.styleContainerPinCode, styleDeleteButtonColorHideUnderlay: this.props.styleDeleteButtonColorHideUnderlay, styleDeleteButtonColorShowUnderlay: this.props.styleDeleteButtonColorShowUnderlay, styleDeleteButtonIcon: this.props.styleDeleteButtonIcon, styleDeleteButtonSize: this.props.styleDeleteButtonSize, styleDeleteButtonText: this.props.styleDeleteButtonText, styleEmptyColumn: this.props.styleEmptyColumn, stylePinCodeCircle: this.props.stylePinCodeCircle, styleRowButtons: this.props.styleRowButtons, styleTextButton: this.props.styleTextButton, styleTextSubtitle: this.props.styleTextSubtitle, styleTextTitle: this.props.styleTextTitle, styleViewTitle: this.props.styleViewTitle, subtitle: this.props.subtitle, subtitleComponent: this.props.subtitleComponent || null, subtitleError: this.props.subtitleError || 'Please try again', textPasswordVisibleFamily: this.props.textPasswordVisibleFamily, textPasswordVisibleSize: this.props.textPasswordVisibleSize, titleAttemptFailed: this.props.titleAttemptFailed || 'Incorrect PIN Code', titleComponent: this.props.titleComponent || null, titleConfirmFailed: this.props.titleConfirmFailed || 'Your entries did not match', vibrationEnabled: this.props.vibrationEnabled, delayBetweenAttempts: this.props.delayBetweenAttempts }))); + React.createElement(PinCode_1.default, { alphabetCharsVisible: this.props.alphabetCharsVisible, buttonDeleteComponent: this.props.buttonDeleteComponent || null, buttonDeleteText: this.props.buttonDeleteText, buttonNumberComponent: this.props.buttonNumberComponent || null, colorCircleButtons: this.props.colorCircleButtons, colorPassword: this.props.colorPassword || undefined, colorPasswordEmpty: this.props.colorPasswordEmpty, colorPasswordError: this.props.colorPasswordError || undefined, customBackSpaceIcon: this.props.customBackSpaceIcon, emptyColumnComponent: this.props.emptyColumnComponent, endProcess: this.endProcess, launchTouchID: this.launchTouchID, getCurrentLength: this.props.getCurrentLength, iconButtonDeleteDisabled: this.props.iconButtonDeleteDisabled, numbersButtonOverlayColor: this.props.numbersButtonOverlayColor || undefined, passwordComponent: this.props.passwordComponent || null, passwordLength: this.props.passwordLength || 4, pinCodeStatus: this.state.pinCodeStatus, pinCodeVisible: this.props.pinCodeVisible, previousPin: pin, sentenceTitle: this.props.title, status: PinCode_1.PinStatus.enter, styleAlphabet: this.props.styleAlphabet, styleButtonCircle: this.props.styleButtonCircle, styleCircleHiddenPassword: this.props.styleCircleHiddenPassword, styleCircleSizeEmpty: this.props.styleCircleSizeEmpty, styleCircleSizeFull: this.props.styleCircleSizeFull, styleColumnButtons: this.props.styleColumnButtons, styleColumnDeleteButton: this.props.styleColumnDeleteButton, styleColorButtonTitle: this.props.styleColorButtonTitle, styleColorButtonTitleSelected: this.props.styleColorButtonTitleSelected, styleColorSubtitle: this.props.styleColorSubtitle, styleColorSubtitleError: this.props.styleColorSubtitleError, styleColorTitle: this.props.styleColorTitle, styleColorTitleError: this.props.styleColorTitleError, styleContainer: this.props.styleContainerPinCode, styleDeleteButtonColorHideUnderlay: this.props.styleDeleteButtonColorHideUnderlay, styleDeleteButtonColorShowUnderlay: this.props.styleDeleteButtonColorShowUnderlay, styleDeleteButtonIcon: this.props.styleDeleteButtonIcon, styleDeleteButtonSize: this.props.styleDeleteButtonSize, styleDeleteButtonText: this.props.styleDeleteButtonText, styleEmptyColumn: this.props.styleEmptyColumn, stylePinCodeCircle: this.props.stylePinCodeCircle, styleGridButtons: this.props.styleGridButtons, styleRowButtons: this.props.styleRowButtons, styleTextButton: this.props.styleTextButton, styleTextSubtitle: this.props.styleTextSubtitle, styleTextTitle: this.props.styleTextTitle, styleViewTitle: this.props.styleViewTitle, subtitle: this.props.subtitle, subtitleComponent: this.props.subtitleComponent || null, subtitleError: this.props.subtitleError || 'Please try again', textPasswordVisibleFamily: this.props.textPasswordVisibleFamily, textPasswordVisibleSize: this.props.textPasswordVisibleSize, titleAttemptFailed: this.props.titleAttemptFailed || 'Incorrect PIN Code', titleComponent: this.props.titleComponent || null, titleConfirmFailed: this.props.titleConfirmFailed || 'Your entries did not match', vibrationEnabled: this.props.vibrationEnabled, delayBetweenAttempts: this.props.delayBetweenAttempts }))); } } PinCodeEnter.defaultProps = { diff --git a/index.tsx b/index.tsx index 51828f82..d769d47b 100644 --- a/index.tsx +++ b/index.tsx @@ -80,6 +80,7 @@ export type IProps = { stylePinCodeHiddenPasswordSizeEmpty?: number stylePinCodeHiddenPasswordSizeFull?: number stylePinCodeMainContainer?: StyleProp + stylePinCodeGrid?: StyleProp stylePinCodeRowButtons?: StyleProp stylePinCodeTextButtonCircle?: StyleProp stylePinCodeTextSubtitle?: StyleProp @@ -234,6 +235,7 @@ class PINCode extends React.PureComponent { styleDeleteButtonText={this.props.stylePinCodeDeleteButtonText} styleEmptyColumn={this.props.stylePinCodeEmptyColumn} stylePinCodeCircle={this.props.stylePinCodeCircle} + styleGridButtons={this.props.stylePinCodeGrid} styleRowButtons={this.props.stylePinCodeRowButtons} styleTextButton={this.props.stylePinCodeTextButtonCircle} styleTextSubtitle={this.props.stylePinCodeTextSubtitle} @@ -309,6 +311,7 @@ class PINCode extends React.PureComponent { styleDeleteButtonText={this.props.stylePinCodeDeleteButtonText} styleEmptyColumn={this.props.stylePinCodeEmptyColumn} stylePinCodeCircle={this.props.stylePinCodeCircle} + styleGridButtons={this.props.stylePinCodeGrid} styleRowButtons={this.props.stylePinCodeRowButtons} styleTextButton={this.props.stylePinCodeTextButtonCircle} styleTextSubtitle={this.props.stylePinCodeTextSubtitle} diff --git a/package-lock.json b/package-lock.json index fb2b4bba..adfe0340 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9945,4 +9945,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/PinCode.tsx b/src/PinCode.tsx index 369581d6..60006053 100644 --- a/src/PinCode.tsx +++ b/src/PinCode.tsx @@ -69,6 +69,7 @@ export interface IProps { styleDeleteButtonText?: StyleProp styleEmptyColumn?: StyleProp stylePinCodeCircle?: StyleProp + styleGridButtons?: StyleProp styleRowButtons?: StyleProp styleTextButton?: StyleProp styleTextSubtitle?: StyleProp @@ -131,6 +132,7 @@ class PinCode extends React.PureComponent { styleColorTitleError: colors.alert, styleColorSubtitleError: colors.alert, styleViewTitle: null, + styleGridButtons: null, styleRowButtons: null, styleColumnButtons: null, styleEmptyColumn: null, @@ -648,7 +650,10 @@ class PinCode extends React.PureComponent { ? this.props.passwordComponent() : this.renderCirclePassword()} - + styleEmptyColumn?: StyleProp stylePinCodeCircle?: StyleProp + styleGridButtons?: StyleProp styleRowButtons?: StyleProp styleTextButton?: StyleProp styleTextSubtitle?: StyleProp @@ -175,6 +176,7 @@ class PinCodeChoose extends React.PureComponent { styleDeleteButtonText={this.props.styleDeleteButtonText} styleEmptyColumn={this.props.styleEmptyColumn} stylePinCodeCircle={this.props.stylePinCodeCircle} + styleGridButtons={this.props.styleGridButtons} styleRowButtons={this.props.styleRowButtons} styleTextButton={this.props.styleTextButton} styleTextSubtitle={this.props.styleTextSubtitle} @@ -257,6 +259,7 @@ class PinCodeChoose extends React.PureComponent { styleDeleteButtonText={this.props.styleDeleteButtonText} styleEmptyColumn={this.props.styleEmptyColumn} stylePinCodeCircle={this.props.stylePinCodeCircle} + styleGridButtons={this.props.styleGridButtons} styleRowButtons={this.props.styleRowButtons} styleTextButton={this.props.styleTextButton} styleTextSubtitle={this.props.styleTextSubtitle} diff --git a/src/PinCodeEnter.tsx b/src/PinCodeEnter.tsx index aeb98ede..2e437451 100644 --- a/src/PinCodeEnter.tsx +++ b/src/PinCodeEnter.tsx @@ -70,6 +70,7 @@ export interface IProps { styleDeleteButtonText?: StyleProp styleEmptyColumn?: StyleProp stylePinCodeCircle?: StyleProp + styleGridButtons?: StyleProp styleRowButtons?: StyleProp styleTextButton?: StyleProp styleTextSubtitle?: StyleProp @@ -295,6 +296,7 @@ class PinCodeEnter extends React.PureComponent { styleDeleteButtonText={this.props.styleDeleteButtonText} styleEmptyColumn={this.props.styleEmptyColumn} stylePinCodeCircle={this.props.stylePinCodeCircle} + styleGridButtons={this.props.styleGridButtons} styleRowButtons={this.props.styleRowButtons} styleTextButton={this.props.styleTextButton} styleTextSubtitle={this.props.styleTextSubtitle} diff --git a/yarn.lock b/yarn.lock index 0d2fe15d..771cfc52 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6292,4 +6292,4 @@ yargs@^9.0.0: string-width "^2.0.0" which-module "^2.0.0" y18n "^3.2.1" - yargs-parser "^7.0.0" + yargs-parser "^7.0.0" \ No newline at end of file