guestbell-forms 2.0.235 → 2.0.236

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.
@@ -17,6 +17,8 @@ var _Guid = _interopRequireDefault(require("../../utils/Guid"));
17
17
 
18
18
  var _ShallowEqual = require("../../utils/ShallowEqual");
19
19
 
20
+ var _classnames = _interopRequireDefault(require("classnames"));
21
+
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
23
 
22
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -356,7 +358,9 @@ var BaseInput = /*#__PURE__*/function (_React$Component) {
356
358
 
357
359
  if (!this.props.tooltip || this.props.tooltip && this.props.title) {
358
360
  return /*#__PURE__*/React.createElement("span", {
359
- className: 'w-100' + (touchable ? '' : 'label--no-touch')
361
+ className: (0, _classnames.default)('w-100', {
362
+ 'label--no-touch': !touchable
363
+ })
360
364
  }, this.props.label);
361
365
  }
362
366
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/components/base/input/BaseInput.tsx"],"names":["defaultBaseTranslations","required","BaseInput","props","subscribe","res","handleValueChange","value","state","isValid","errors","touched","defaultTouched","disabled","focused","handleValueChangeEnabled","containerRef","React","createRef","inputRef","handleChange","bind","handleBlur","handleFocus","setValid","focus","scrollTo","setInvalid","disableComponent","enableComponent","touch","unTouch","subscribeSelf","ignoreContext","formContext","unSubscribe","componentId","oldProps","oldState","validators","customValidators","domNode","ReactDOM","findDOMNode","current","scrollIntoView","behavior","setState","nextProps","nextState","shouldUpdate","reRendersWhenContextChanges","undefined","extraErrors","showValidation","length","finalErrors","concat","filter","i","lastValidation","map","item","index","event","target","onTheFlightValidate","onChange","componentApi","validation","name","validationName","title","label","e","onBlur","touchOn","Object","assign","onFocus","updateCallback","touchable","tooltip","renderTooltip","initializing","translations","getTranslations","push","forEach","validator","validInner","Validators","EmailValidator","Validate","error","NumberValidator","LatitudeValidator","LongitudeValidator","UrlValidator","Error","customValidator","onErrorsChanged","content","Tippy","require","default","document","body","tooltipProps","_defaultTranslations","Component","className"],"mappings":"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","sourcesContent":["// Libs\r\nimport * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport { TippyProps } from '@tippy.js/react';\r\n\r\n// Misc\r\nimport * as Validators from '../../../validators';\r\nimport guid from '../../utils/Guid';\r\nimport { FormContextProps } from '../../form/FormContext';\r\nimport { shallowEqual } from '../../utils/ShallowEqual';\r\nimport { Theme } from '../../../types/Theme';\r\n\r\nexport interface ComponentApi {\r\n focus: () => void;\r\n touch: () => void;\r\n unTouch: () => void;\r\n enableComponent: () => void;\r\n disableComponent: () => void;\r\n scrollTo: () => void;\r\n}\r\n\r\nexport type ValidationError = string | JSX.Element;\r\n\r\nexport type AllowedHtmlElements =\r\n | HTMLInputElement\r\n | HTMLSelectElement\r\n | HTMLTextAreaElement;\r\n\r\nexport const defaultBaseTranslations = {\r\n required: 'Required',\r\n};\r\n\r\nexport type BaseTranslations = Partial<typeof defaultBaseTranslations>;\r\n\r\nexport type BaseInputProps<\r\n HTMLType extends AllowedHtmlElements,\r\n TranslationsT extends BaseTranslations = BaseTranslations\r\n> = {\r\n theme?: Theme;\r\n id?: string;\r\n disabled?: boolean;\r\n className?: string;\r\n label?: string | JSX.Element;\r\n tooltip?: string | JSX.Element;\r\n tooltipProps?: TippyProps;\r\n value?: string;\r\n onChange?: (e: React.ChangeEvent<HTMLType>, isValid: boolean) => void;\r\n required?: boolean;\r\n customValidators?: Validators.IBaseValidator[];\r\n validators?: Validators.ValidatorTypes[];\r\n noValidate?: boolean;\r\n validationName?: string;\r\n touchOn?: 'focus' | 'blur';\r\n ignoreContext?: boolean;\r\n onTheFlightValidate?: (value: string) => boolean;\r\n onFocus?: (e: React.SyntheticEvent<{}>) => void;\r\n onBlur?: () => void;\r\n onSuggestionsClosed?: () => void;\r\n onSuggestionsOpened?: () => void;\r\n onClick?: (e: React.MouseEvent) => void;\r\n title?: string | JSX.Element;\r\n onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\r\n errors?: ValidationError[];\r\n onErrorsChanged?: (errors: ValidationError[]) => void;\r\n showValidation?: boolean;\r\n reRendersWhenContextChanges?: boolean;\r\n defaultTouched?: boolean;\r\n translations?: TranslationsT;\r\n} & FormContextProps;\r\n\r\nexport interface BaseInputState {\r\n isValid: boolean;\r\n value: string;\r\n errors: ValidationError[];\r\n validator: undefined;\r\n touched: boolean;\r\n disabled: boolean;\r\n focused: boolean;\r\n handleValueChangeEnabled: boolean;\r\n}\r\n\r\nexport class BaseInput<\r\n P extends BaseInputProps<HTMLType, TranslationsT>,\r\n S extends BaseInputState,\r\n HTMLType extends AllowedHtmlElements,\r\n TranslationsT extends BaseTranslations = BaseTranslations\r\n> extends React.Component<P, S> implements ComponentApi {\r\n public static defaultProps: BaseInputProps<never> = {\r\n className: undefined,\r\n required: false,\r\n label: undefined,\r\n disabled: false,\r\n touchOn: 'focus',\r\n ignoreContext: false,\r\n showValidation: true,\r\n formContext: undefined,\r\n reRendersWhenContextChanges: false,\r\n };\r\n\r\n public componentId = guid();\r\n\r\n public inputRef: React.RefObject<HTMLType>;\r\n\r\n protected containerRef: React.RefObject<HTMLDivElement>;\r\n\r\n private lastValidation: JSX.Element[];\r\n\r\n constructor(props: P, subscribe: boolean = true) {\r\n super(props);\r\n const res = this.handleValueChange(this.props.value, true, [], props, true);\r\n this.state = {\r\n isValid: res.isValid,\r\n errors: res.errors,\r\n value: props.value ? props.value : '',\r\n touched: props.defaultTouched,\r\n disabled: false,\r\n focused: false,\r\n handleValueChangeEnabled: true,\r\n } as S;\r\n this.containerRef = React.createRef<HTMLDivElement>();\r\n this.inputRef = React.createRef<HTMLType>();\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.handleFocus = this.handleFocus.bind(this);\r\n this.setValid = this.setValid.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.scrollTo = this.scrollTo.bind(this);\r\n this.setInvalid = this.setInvalid.bind(this);\r\n this.disableComponent = this.disableComponent.bind(this);\r\n this.enableComponent = this.enableComponent.bind(this);\r\n this.touch = this.touch.bind(this);\r\n this.unTouch = this.unTouch.bind(this);\r\n if (subscribe) {\r\n this.subscribeSelf(props);\r\n }\r\n }\r\n\r\n public componentWillUnmount() {\r\n if (!this.props.ignoreContext) {\r\n this.props.formContext &&\r\n this.props.formContext.unSubscribe(this.componentId);\r\n }\r\n }\r\n\r\n public componentDidUpdate(oldProps: P, oldState: S) {\r\n if (\r\n oldProps.value !== this.props.value ||\r\n oldProps.validators !== this.props.validators ||\r\n oldProps.customValidators !== this.props.customValidators ||\r\n oldProps.required !== this.props.required\r\n ) {\r\n this.handleValueChange(this.props.value, true, [], this.props);\r\n }\r\n }\r\n\r\n public scrollTo() {\r\n const domNode: HTMLDivElement = ReactDOM.findDOMNode(\r\n (this.containerRef as React.RefObject<HTMLDivElement>).current\r\n ) as HTMLDivElement;\r\n domNode && domNode.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n\r\n public touch() {\r\n this.setState({ touched: true });\r\n this.handleValueChange(this.state.value || '');\r\n }\r\n\r\n public unTouch() {\r\n this.setState({ touched: false });\r\n }\r\n\r\n public disableComponent() {\r\n this.setState({ disabled: true });\r\n }\r\n\r\n public enableComponent() {\r\n this.setState({ disabled: false });\r\n }\r\n\r\n public focus() {\r\n if (this.inputRef) {\r\n const domNode: HTMLElement = ReactDOM.findDOMNode(\r\n (this.inputRef as React.RefObject<HTMLElement>).current\r\n ) as HTMLElement;\r\n domNode && domNode.focus();\r\n }\r\n this.touch();\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: P, nextState: S) {\r\n let shouldUpdate =\r\n !shallowEqual(\r\n this.props,\r\n nextProps,\r\n !this.props.reRendersWhenContextChanges ? 'formContext' : undefined\r\n ) || !shallowEqual(this.state, nextState);\r\n return shouldUpdate;\r\n }\r\n\r\n protected getValidationClass(extraErrors?: ValidationError[]) {\r\n if (!this.props.showValidation || !this.state.touched) {\r\n return 'validation__success';\r\n }\r\n return this.state.isValid &&\r\n (!this.props.errors || this.props.errors.length === 0) &&\r\n (!this.state.errors || this.state.errors.length === 0) &&\r\n (!extraErrors || extraErrors.length === 0)\r\n ? 'validation__success'\r\n : 'validation__error';\r\n }\r\n\r\n protected renderDefaultValidation(extraErrors?: ValidationError[]) {\r\n if (this.props.disabled) {\r\n return null;\r\n }\r\n if (!this.props.showValidation) {\r\n return null;\r\n }\r\n let finalErrors: ValidationError[] = this.state.errors;\r\n if (!finalErrors) {\r\n finalErrors = [];\r\n }\r\n if (extraErrors) {\r\n finalErrors = finalErrors.concat(extraErrors);\r\n }\r\n if (this.props.errors) {\r\n finalErrors = finalErrors.concat(this.props.errors);\r\n }\r\n finalErrors = finalErrors.filter(i => i);\r\n if (finalErrors.length > 0) {\r\n this.lastValidation = finalErrors.map((item, index) => (\r\n <li key={index} className=\"validation__item\">\r\n {item}\r\n </li>\r\n ));\r\n }\r\n return (\r\n <div className=\"validation__container\">\r\n <ul className=\"validation__ul\">{this.lastValidation}</ul>\r\n </div>\r\n );\r\n }\r\n\r\n protected handleChange(\r\n event: React.ChangeEvent<HTMLType>,\r\n isValid?: boolean,\r\n errors: ValidationError[] = []\r\n ) {\r\n let value = event.target.value;\r\n if (\r\n !this.props.onTheFlightValidate ||\r\n (this.props.onTheFlightValidate && this.props.onTheFlightValidate(value))\r\n ) {\r\n const res = this.handleValueChange(value, isValid, errors);\r\n if (this.props.onChange) {\r\n this.props.onChange(event, res.isValid);\r\n }\r\n }\r\n }\r\n\r\n protected subscribeSelf(props: P) {\r\n if (!props.ignoreContext && props.formContext) {\r\n props.formContext.subscribe(this.componentId, {\r\n componentApi: {\r\n disableComponent: this.disableComponent,\r\n enableComponent: this.enableComponent,\r\n touch: this.touch,\r\n unTouch: this.unTouch,\r\n scrollTo: this.scrollTo,\r\n focus: this.focus,\r\n },\r\n validation: {\r\n isValid: this.state.isValid,\r\n errors: this.state.errors,\r\n name: this.props.validationName\r\n ? this.props.validationName\r\n : this.props.title\r\n ? this.props.title\r\n : this.props.label,\r\n },\r\n });\r\n }\r\n }\r\n\r\n protected handleBlur(e: React.FocusEvent<HTMLType>) {\r\n this.props.onBlur && this.props.onBlur();\r\n let state = { focused: false };\r\n if (!this.state.touched && this.props.touchOn === 'blur') {\r\n state = Object.assign(state, { touched: true });\r\n this.handleValueChange(this.state.value);\r\n }\r\n this.setState(state);\r\n }\r\n\r\n protected handleFocus(e: React.FocusEvent<HTMLType>) {\r\n if (!this.props.disabled) {\r\n this.props.onFocus && this.props.onFocus(e);\r\n let state = { focused: true };\r\n if (!this.state.touched && this.props.touchOn === 'focus') {\r\n state = Object.assign(state, { touched: true });\r\n this.handleValueChange(this.state.value);\r\n }\r\n this.setState(state);\r\n }\r\n }\r\n\r\n protected getDisabled() {\r\n return this.state.disabled ? this.state.disabled : this.props.disabled;\r\n }\r\n\r\n protected setValid() {\r\n this.setState(\r\n () => ({ isValid: true, errors: [] }),\r\n () => {\r\n if (!this.props.ignoreContext) {\r\n this.props.formContext &&\r\n this.props.formContext.updateCallback(this.componentId, {\r\n validation: {\r\n isValid: true,\r\n errors: [],\r\n },\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n protected setInvalid(errors: ValidationError[] = []) {\r\n this.setState(\r\n () => ({ isValid: false, errors }),\r\n () => {\r\n if (!this.props.ignoreContext) {\r\n this.props.formContext &&\r\n this.props.formContext.updateCallback(this.componentId, {\r\n validation: {\r\n isValid: false,\r\n errors: errors,\r\n },\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n protected renderLabel(touchable: boolean = false) {\r\n if (!this.props.tooltip || (this.props.tooltip && this.props.title)) {\r\n return (\r\n <span className={'w-100' + (touchable ? '' : 'label--no-touch')}>\r\n {this.props.label}\r\n </span>\r\n );\r\n }\r\n return (\r\n <React.Fragment>\r\n <span className={touchable ? '' : 'label--no-touch'}>\r\n {this.props.label}\r\n </span>\r\n {this.renderTooltip()}\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n protected renderTitle() {\r\n if (!this.props.tooltip) {\r\n return this.props.title;\r\n }\r\n return (\r\n <React.Fragment>\r\n {this.props.title}\r\n {this.renderTooltip()}\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n protected handleValueChange(\r\n value: string,\r\n isValid: boolean = true,\r\n errors: ValidationError[] = [],\r\n props: P = this.props,\r\n initializing: boolean = false\r\n ): {\r\n isValid: boolean;\r\n errors: ValidationError[];\r\n } {\r\n if (!initializing && !this.state.handleValueChangeEnabled) {\r\n return { isValid, errors: [] };\r\n }\r\n if (props.required && !value) {\r\n const translations = this.getTranslations(defaultBaseTranslations);\r\n errors.push(translations.required);\r\n isValid = false;\r\n } else {\r\n if (!props.required && !value) {\r\n isValid = true;\r\n } else {\r\n if (props.validators) {\r\n isValid = true;\r\n props.validators.forEach(validator => {\r\n let validInner = false;\r\n switch (validator) {\r\n case 'email':\r\n validInner = new Validators.EmailValidator().Validate(\r\n value,\r\n props.required,\r\n error => errors.push(error)\r\n );\r\n break;\r\n case 'number':\r\n validInner = new Validators.NumberValidator().Validate(\r\n value,\r\n props.required,\r\n error => errors.push(error)\r\n );\r\n break;\r\n case 'latitude':\r\n validInner = new Validators.LatitudeValidator().Validate(\r\n value,\r\n props.required,\r\n error => errors.push(error)\r\n );\r\n break;\r\n case 'longitude':\r\n validInner = new Validators.LongitudeValidator().Validate(\r\n value,\r\n props.required,\r\n error => errors.push(error)\r\n );\r\n break;\r\n case 'url':\r\n validInner = new Validators.UrlValidator().Validate(\r\n value,\r\n props.required,\r\n error => errors.push(error)\r\n );\r\n break;\r\n default:\r\n throw new Error(`Validator ${validator} not implemented`);\r\n }\r\n if (isValid && !validInner) {\r\n isValid = validInner;\r\n }\r\n });\r\n }\r\n if (props.customValidators) {\r\n props.customValidators.forEach(customValidator => {\r\n let validInner = false;\r\n validInner = customValidator.Validate(\r\n value,\r\n props.required,\r\n error => errors.push(error)\r\n );\r\n if (isValid && !validInner) {\r\n isValid = validInner;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n props.onErrorsChanged && props.onErrorsChanged(errors);\r\n if (!initializing) {\r\n this.setState({ value, isValid, errors });\r\n if (!props.ignoreContext) {\r\n props.formContext &&\r\n props.formContext.updateCallback(this.componentId, {\r\n validation: {\r\n isValid: isValid,\r\n errors: errors,\r\n },\r\n });\r\n }\r\n }\r\n return { isValid, errors };\r\n }\r\n\r\n protected renderTooltip(\r\n content: JSX.Element = <span className=\"label--help-icon\">?</span>\r\n ) {\r\n if (this.props.tooltip) {\r\n const Tippy = require('@tippy.js/react').default;\r\n return (\r\n <Tippy\r\n content={this.props.tooltip}\r\n placement=\"bottom\"\r\n animation=\"scale-subtle\"\r\n arrow={false}\r\n duration={200}\r\n delay={[75, 0]}\r\n distance={8}\r\n interactive={true}\r\n appendTo={document?.body}\r\n trigger=\"mouseenter focus\"\r\n {...this.props.tooltipProps}\r\n >\r\n {content}\r\n </Tippy>\r\n );\r\n }\r\n return content;\r\n }\r\n\r\n protected getTranslations(\r\n _defaultTranslations: BaseTranslations\r\n ): TranslationsT {\r\n return {\r\n ..._defaultTranslations,\r\n ...this.props.translations,\r\n };\r\n }\r\n}\r\nexport default BaseInput;\r\n"],"file":"BaseInput.js"}
1
+ {"version":3,"sources":["../../../../src/lib/components/base/input/BaseInput.tsx"],"names":["defaultBaseTranslations","required","BaseInput","props","subscribe","res","handleValueChange","value","state","isValid","errors","touched","defaultTouched","disabled","focused","handleValueChangeEnabled","containerRef","React","createRef","inputRef","handleChange","bind","handleBlur","handleFocus","setValid","focus","scrollTo","setInvalid","disableComponent","enableComponent","touch","unTouch","subscribeSelf","ignoreContext","formContext","unSubscribe","componentId","oldProps","oldState","validators","customValidators","domNode","ReactDOM","findDOMNode","current","scrollIntoView","behavior","setState","nextProps","nextState","shouldUpdate","reRendersWhenContextChanges","undefined","extraErrors","showValidation","length","finalErrors","concat","filter","i","lastValidation","map","item","index","event","target","onTheFlightValidate","onChange","componentApi","validation","name","validationName","title","label","e","onBlur","touchOn","Object","assign","onFocus","updateCallback","touchable","tooltip","renderTooltip","initializing","translations","getTranslations","push","forEach","validator","validInner","Validators","EmailValidator","Validate","error","NumberValidator","LatitudeValidator","LongitudeValidator","UrlValidator","Error","customValidator","onErrorsChanged","content","Tippy","require","default","document","body","tooltipProps","_defaultTranslations","Component","className"],"mappings":"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","sourcesContent":["// Libs\r\nimport * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport { TippyProps } from '@tippy.js/react';\r\n\r\n// Misc\r\nimport * as Validators from '../../../validators';\r\nimport guid from '../../utils/Guid';\r\nimport { FormContextProps } from '../../form/FormContext';\r\nimport { shallowEqual } from '../../utils/ShallowEqual';\r\nimport { Theme } from '../../../types/Theme';\r\nimport classNames from 'classnames';\r\n\r\nexport interface ComponentApi {\r\n focus: () => void;\r\n touch: () => void;\r\n unTouch: () => void;\r\n enableComponent: () => void;\r\n disableComponent: () => void;\r\n scrollTo: () => void;\r\n}\r\n\r\nexport type ValidationError = string | JSX.Element;\r\n\r\nexport type AllowedHtmlElements =\r\n | HTMLInputElement\r\n | HTMLSelectElement\r\n | HTMLTextAreaElement;\r\n\r\nexport const defaultBaseTranslations = {\r\n required: 'Required',\r\n};\r\n\r\nexport type BaseTranslations = Partial<typeof defaultBaseTranslations>;\r\n\r\nexport type BaseInputProps<\r\n HTMLType extends AllowedHtmlElements,\r\n TranslationsT extends BaseTranslations = BaseTranslations\r\n> = {\r\n theme?: Theme;\r\n id?: string;\r\n disabled?: boolean;\r\n className?: string;\r\n label?: string | JSX.Element;\r\n tooltip?: string | JSX.Element;\r\n tooltipProps?: TippyProps;\r\n value?: string;\r\n onChange?: (e: React.ChangeEvent<HTMLType>, isValid: boolean) => void;\r\n required?: boolean;\r\n customValidators?: Validators.IBaseValidator[];\r\n validators?: Validators.ValidatorTypes[];\r\n noValidate?: boolean;\r\n validationName?: string;\r\n touchOn?: 'focus' | 'blur';\r\n ignoreContext?: boolean;\r\n onTheFlightValidate?: (value: string) => boolean;\r\n onFocus?: (e: React.SyntheticEvent<{}>) => void;\r\n onBlur?: () => void;\r\n onSuggestionsClosed?: () => void;\r\n onSuggestionsOpened?: () => void;\r\n onClick?: (e: React.MouseEvent) => void;\r\n title?: string | JSX.Element;\r\n onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\r\n errors?: ValidationError[];\r\n onErrorsChanged?: (errors: ValidationError[]) => void;\r\n showValidation?: boolean;\r\n reRendersWhenContextChanges?: boolean;\r\n defaultTouched?: boolean;\r\n translations?: TranslationsT;\r\n} & FormContextProps;\r\n\r\nexport interface BaseInputState {\r\n isValid: boolean;\r\n value: string;\r\n errors: ValidationError[];\r\n validator: undefined;\r\n touched: boolean;\r\n disabled: boolean;\r\n focused: boolean;\r\n handleValueChangeEnabled: boolean;\r\n}\r\n\r\nexport class BaseInput<\r\n P extends BaseInputProps<HTMLType, TranslationsT>,\r\n S extends BaseInputState,\r\n HTMLType extends AllowedHtmlElements,\r\n TranslationsT extends BaseTranslations = BaseTranslations\r\n> extends React.Component<P, S> implements ComponentApi {\r\n public static defaultProps: BaseInputProps<never> = {\r\n className: undefined,\r\n required: false,\r\n label: undefined,\r\n disabled: false,\r\n touchOn: 'focus',\r\n ignoreContext: false,\r\n showValidation: true,\r\n formContext: undefined,\r\n reRendersWhenContextChanges: false,\r\n };\r\n\r\n public componentId = guid();\r\n\r\n public inputRef: React.RefObject<HTMLType>;\r\n\r\n protected containerRef: React.RefObject<HTMLDivElement>;\r\n\r\n private lastValidation: JSX.Element[];\r\n\r\n constructor(props: P, subscribe: boolean = true) {\r\n super(props);\r\n const res = this.handleValueChange(this.props.value, true, [], props, true);\r\n this.state = {\r\n isValid: res.isValid,\r\n errors: res.errors,\r\n value: props.value ? props.value : '',\r\n touched: props.defaultTouched,\r\n disabled: false,\r\n focused: false,\r\n handleValueChangeEnabled: true,\r\n } as S;\r\n this.containerRef = React.createRef<HTMLDivElement>();\r\n this.inputRef = React.createRef<HTMLType>();\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.handleFocus = this.handleFocus.bind(this);\r\n this.setValid = this.setValid.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.scrollTo = this.scrollTo.bind(this);\r\n this.setInvalid = this.setInvalid.bind(this);\r\n this.disableComponent = this.disableComponent.bind(this);\r\n this.enableComponent = this.enableComponent.bind(this);\r\n this.touch = this.touch.bind(this);\r\n this.unTouch = this.unTouch.bind(this);\r\n if (subscribe) {\r\n this.subscribeSelf(props);\r\n }\r\n }\r\n\r\n public componentWillUnmount() {\r\n if (!this.props.ignoreContext) {\r\n this.props.formContext &&\r\n this.props.formContext.unSubscribe(this.componentId);\r\n }\r\n }\r\n\r\n public componentDidUpdate(oldProps: P, oldState: S) {\r\n if (\r\n oldProps.value !== this.props.value ||\r\n oldProps.validators !== this.props.validators ||\r\n oldProps.customValidators !== this.props.customValidators ||\r\n oldProps.required !== this.props.required\r\n ) {\r\n this.handleValueChange(this.props.value, true, [], this.props);\r\n }\r\n }\r\n\r\n public scrollTo() {\r\n const domNode: HTMLDivElement = ReactDOM.findDOMNode(\r\n (this.containerRef as React.RefObject<HTMLDivElement>).current\r\n ) as HTMLDivElement;\r\n domNode && domNode.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n\r\n public touch() {\r\n this.setState({ touched: true });\r\n this.handleValueChange(this.state.value || '');\r\n }\r\n\r\n public unTouch() {\r\n this.setState({ touched: false });\r\n }\r\n\r\n public disableComponent() {\r\n this.setState({ disabled: true });\r\n }\r\n\r\n public enableComponent() {\r\n this.setState({ disabled: false });\r\n }\r\n\r\n public focus() {\r\n if (this.inputRef) {\r\n const domNode: HTMLElement = ReactDOM.findDOMNode(\r\n (this.inputRef as React.RefObject<HTMLElement>).current\r\n ) as HTMLElement;\r\n domNode && domNode.focus();\r\n }\r\n this.touch();\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: P, nextState: S) {\r\n let shouldUpdate =\r\n !shallowEqual(\r\n this.props,\r\n nextProps,\r\n !this.props.reRendersWhenContextChanges ? 'formContext' : undefined\r\n ) || !shallowEqual(this.state, nextState);\r\n return shouldUpdate;\r\n }\r\n\r\n protected getValidationClass(extraErrors?: ValidationError[]) {\r\n if (!this.props.showValidation || !this.state.touched) {\r\n return 'validation__success';\r\n }\r\n return this.state.isValid &&\r\n (!this.props.errors || this.props.errors.length === 0) &&\r\n (!this.state.errors || this.state.errors.length === 0) &&\r\n (!extraErrors || extraErrors.length === 0)\r\n ? 'validation__success'\r\n : 'validation__error';\r\n }\r\n\r\n protected renderDefaultValidation(extraErrors?: ValidationError[]) {\r\n if (this.props.disabled) {\r\n return null;\r\n }\r\n if (!this.props.showValidation) {\r\n return null;\r\n }\r\n let finalErrors: ValidationError[] = this.state.errors;\r\n if (!finalErrors) {\r\n finalErrors = [];\r\n }\r\n if (extraErrors) {\r\n finalErrors = finalErrors.concat(extraErrors);\r\n }\r\n if (this.props.errors) {\r\n finalErrors = finalErrors.concat(this.props.errors);\r\n }\r\n finalErrors = finalErrors.filter(i => i);\r\n if (finalErrors.length > 0) {\r\n this.lastValidation = finalErrors.map((item, index) => (\r\n <li key={index} className=\"validation__item\">\r\n {item}\r\n </li>\r\n ));\r\n }\r\n return (\r\n <div className=\"validation__container\">\r\n <ul className=\"validation__ul\">{this.lastValidation}</ul>\r\n </div>\r\n );\r\n }\r\n\r\n protected handleChange(\r\n event: React.ChangeEvent<HTMLType>,\r\n isValid?: boolean,\r\n errors: ValidationError[] = []\r\n ) {\r\n let value = event.target.value;\r\n if (\r\n !this.props.onTheFlightValidate ||\r\n (this.props.onTheFlightValidate && this.props.onTheFlightValidate(value))\r\n ) {\r\n const res = this.handleValueChange(value, isValid, errors);\r\n if (this.props.onChange) {\r\n this.props.onChange(event, res.isValid);\r\n }\r\n }\r\n }\r\n\r\n protected subscribeSelf(props: P) {\r\n if (!props.ignoreContext && props.formContext) {\r\n props.formContext.subscribe(this.componentId, {\r\n componentApi: {\r\n disableComponent: this.disableComponent,\r\n enableComponent: this.enableComponent,\r\n touch: this.touch,\r\n unTouch: this.unTouch,\r\n scrollTo: this.scrollTo,\r\n focus: this.focus,\r\n },\r\n validation: {\r\n isValid: this.state.isValid,\r\n errors: this.state.errors,\r\n name: this.props.validationName\r\n ? this.props.validationName\r\n : this.props.title\r\n ? this.props.title\r\n : this.props.label,\r\n },\r\n });\r\n }\r\n }\r\n\r\n protected handleBlur(e: React.FocusEvent<HTMLType>) {\r\n this.props.onBlur && this.props.onBlur();\r\n let state = { focused: false };\r\n if (!this.state.touched && this.props.touchOn === 'blur') {\r\n state = Object.assign(state, { touched: true });\r\n this.handleValueChange(this.state.value);\r\n }\r\n this.setState(state);\r\n }\r\n\r\n protected handleFocus(e: React.FocusEvent<HTMLType>) {\r\n if (!this.props.disabled) {\r\n this.props.onFocus && this.props.onFocus(e);\r\n let state = { focused: true };\r\n if (!this.state.touched && this.props.touchOn === 'focus') {\r\n state = Object.assign(state, { touched: true });\r\n this.handleValueChange(this.state.value);\r\n }\r\n this.setState(state);\r\n }\r\n }\r\n\r\n protected getDisabled() {\r\n return this.state.disabled ? this.state.disabled : this.props.disabled;\r\n }\r\n\r\n protected setValid() {\r\n this.setState(\r\n () => ({ isValid: true, errors: [] }),\r\n () => {\r\n if (!this.props.ignoreContext) {\r\n this.props.formContext &&\r\n this.props.formContext.updateCallback(this.componentId, {\r\n validation: {\r\n isValid: true,\r\n errors: [],\r\n },\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n protected setInvalid(errors: ValidationError[] = []) {\r\n this.setState(\r\n () => ({ isValid: false, errors }),\r\n () => {\r\n if (!this.props.ignoreContext) {\r\n this.props.formContext &&\r\n this.props.formContext.updateCallback(this.componentId, {\r\n validation: {\r\n isValid: false,\r\n errors: errors,\r\n },\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n protected renderLabel(touchable: boolean = false) {\r\n if (!this.props.tooltip || (this.props.tooltip && this.props.title)) {\r\n return (\r\n <span\r\n className={classNames('w-100', { 'label--no-touch': !touchable })}\r\n >\r\n {this.props.label}\r\n </span>\r\n );\r\n }\r\n return (\r\n <React.Fragment>\r\n <span className={touchable ? '' : 'label--no-touch'}>\r\n {this.props.label}\r\n </span>\r\n {this.renderTooltip()}\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n protected renderTitle() {\r\n if (!this.props.tooltip) {\r\n return this.props.title;\r\n }\r\n return (\r\n <React.Fragment>\r\n {this.props.title}\r\n {this.renderTooltip()}\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n protected handleValueChange(\r\n value: string,\r\n isValid: boolean = true,\r\n errors: ValidationError[] = [],\r\n props: P = this.props,\r\n initializing: boolean = false\r\n ): {\r\n isValid: boolean;\r\n errors: ValidationError[];\r\n } {\r\n if (!initializing && !this.state.handleValueChangeEnabled) {\r\n return { isValid, errors: [] };\r\n }\r\n if (props.required && !value) {\r\n const translations = this.getTranslations(defaultBaseTranslations);\r\n errors.push(translations.required);\r\n isValid = false;\r\n } else {\r\n if (!props.required && !value) {\r\n isValid = true;\r\n } else {\r\n if (props.validators) {\r\n isValid = true;\r\n props.validators.forEach(validator => {\r\n let validInner = false;\r\n switch (validator) {\r\n case 'email':\r\n validInner = new Validators.EmailValidator().Validate(\r\n value,\r\n props.required,\r\n error => errors.push(error)\r\n );\r\n break;\r\n case 'number':\r\n validInner = new Validators.NumberValidator().Validate(\r\n value,\r\n props.required,\r\n error => errors.push(error)\r\n );\r\n break;\r\n case 'latitude':\r\n validInner = new Validators.LatitudeValidator().Validate(\r\n value,\r\n props.required,\r\n error => errors.push(error)\r\n );\r\n break;\r\n case 'longitude':\r\n validInner = new Validators.LongitudeValidator().Validate(\r\n value,\r\n props.required,\r\n error => errors.push(error)\r\n );\r\n break;\r\n case 'url':\r\n validInner = new Validators.UrlValidator().Validate(\r\n value,\r\n props.required,\r\n error => errors.push(error)\r\n );\r\n break;\r\n default:\r\n throw new Error(`Validator ${validator} not implemented`);\r\n }\r\n if (isValid && !validInner) {\r\n isValid = validInner;\r\n }\r\n });\r\n }\r\n if (props.customValidators) {\r\n props.customValidators.forEach(customValidator => {\r\n let validInner = false;\r\n validInner = customValidator.Validate(\r\n value,\r\n props.required,\r\n error => errors.push(error)\r\n );\r\n if (isValid && !validInner) {\r\n isValid = validInner;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n props.onErrorsChanged && props.onErrorsChanged(errors);\r\n if (!initializing) {\r\n this.setState({ value, isValid, errors });\r\n if (!props.ignoreContext) {\r\n props.formContext &&\r\n props.formContext.updateCallback(this.componentId, {\r\n validation: {\r\n isValid: isValid,\r\n errors: errors,\r\n },\r\n });\r\n }\r\n }\r\n return { isValid, errors };\r\n }\r\n\r\n protected renderTooltip(\r\n content: JSX.Element = <span className=\"label--help-icon\">?</span>\r\n ) {\r\n if (this.props.tooltip) {\r\n const Tippy = require('@tippy.js/react').default;\r\n return (\r\n <Tippy\r\n content={this.props.tooltip}\r\n placement=\"bottom\"\r\n animation=\"scale-subtle\"\r\n arrow={false}\r\n duration={200}\r\n delay={[75, 0]}\r\n distance={8}\r\n interactive={true}\r\n appendTo={document?.body}\r\n trigger=\"mouseenter focus\"\r\n {...this.props.tooltipProps}\r\n >\r\n {content}\r\n </Tippy>\r\n );\r\n }\r\n return content;\r\n }\r\n\r\n protected getTranslations(\r\n _defaultTranslations: BaseTranslations\r\n ): TranslationsT {\r\n return {\r\n ..._defaultTranslations,\r\n ...this.props.translations,\r\n };\r\n }\r\n}\r\nexport default BaseInput;\r\n"],"file":"BaseInput.js"}
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8"/>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
- <title>guestbell-forms [14 Sep 2021 at 14:3]</title>
6
+ <title>guestbell-forms [21 Sep 2021 at 0:46]</title>
7
7
  <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
8
8
 
9
9
  <script>
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.0.235",
2
+ "version": "2.0.236",
3
3
  "description": "React forms with validation as used in GuestBell",
4
4
  "keywords": [
5
5
  "react",