guestbell-forms 3.0.85 → 3.0.87

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.
Files changed (34) hide show
  1. package/build/components/base/input/BaseInput.js +2 -2
  2. package/build/components/base/input/BaseInput.js.map +1 -1
  3. package/build/components/button/Button.js +21 -11
  4. package/build/components/button/Button.js.map +1 -1
  5. package/build/components/form/Form.d.ts +4 -2
  6. package/build/components/form/Form.js +36 -27
  7. package/build/components/form/Form.js.map +1 -1
  8. package/build/components/form/FormContext.d.ts +1 -14
  9. package/build/components/form/FormContext.js.map +1 -1
  10. package/build/components/form/FormValidationContext.d.ts +27 -0
  11. package/build/components/form/FormValidationContext.js +15 -0
  12. package/build/components/form/FormValidationContext.js.map +1 -0
  13. package/build/components/form/FormValidationSummary.d.ts +3 -3
  14. package/build/components/form/FormValidationSummary.js +3 -3
  15. package/build/components/form/FormValidationSummary.js.map +1 -1
  16. package/build/components/form/withFormContext.d.ts +1 -1
  17. package/build/components/form/withFormContext.js.map +1 -1
  18. package/build/components/form/withFormValidationContext.d.ts +3 -0
  19. package/build/components/form/withFormValidationContext.js +25 -0
  20. package/build/components/form/withFormValidationContext.js.map +1 -0
  21. package/build/components/submit/Submit.d.ts +3 -2
  22. package/build/components/submit/Submit.js +5 -5
  23. package/build/components/submit/Submit.js.map +1 -1
  24. package/build/dist/report.html +1 -1
  25. package/package.json +1 -1
  26. package/src/lib/components/base/input/BaseInput.tsx +1 -4
  27. package/src/lib/components/button/Button.tsx +16 -13
  28. package/src/lib/components/form/Form.tsx +48 -32
  29. package/src/lib/components/form/FormContext.ts +4 -18
  30. package/src/lib/components/form/FormValidationContext.ts +40 -0
  31. package/src/lib/components/form/FormValidationSummary.tsx +12 -7
  32. package/src/lib/components/form/withFormContext.tsx +14 -11
  33. package/src/lib/components/form/withFormValidationContext.tsx +29 -0
  34. package/src/lib/components/submit/Submit.tsx +9 -7
@@ -71,8 +71,8 @@ class BaseInput extends React.Component {
71
71
  }
72
72
  }
73
73
  scrollTo() {
74
- const domNode = ReactDOM.findDOMNode(this.containerRef.current);
75
- domNode && domNode.scrollIntoView({
74
+ var _this$containerRef$cu, _this$containerRef$cu2;
75
+ (_this$containerRef$cu = this.containerRef.current) === null || _this$containerRef$cu === void 0 ? void 0 : (_this$containerRef$cu2 = _this$containerRef$cu.scrollIntoView) === null || _this$containerRef$cu2 === void 0 ? void 0 : _this$containerRef$cu2.call(_this$containerRef$cu, {
76
76
  behavior: 'smooth'
77
77
  });
78
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseInput.js","names":["React","_interopRequireWildcard","require","ReactDOM","Validators","_Guid","_interopRequireDefault","_ShallowEqual","_classnames","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_extends","assign","bind","defaultBaseTranslations","required","exports","BaseInput","Component","constructor","props","subscribe","componentId","guid","inputRef","containerRef","lastValidation","lastInfoText","handleValueChange","state","isValid","errors","touched","defaultTouched","disabled","focused","handleValueChangeEnabled","createRef","handleChange","handleBlur","handleFocus","setValid","focus","scrollTo","setInvalid","disableComponent","enableComponent","touch","unTouch","subscribeSelf","componentWillUnmount","ignoreContext","formContext","unSubscribe","componentDidUpdate","oldProps","oldState","validators","customValidators","domNode","findDOMNode","current","scrollIntoView","behavior","setState","_this$props$onFocus","_this$props","onFocus","shouldComponentUpdate","nextProps","nextState","shouldUpdate","shallowEqual","reRendersWhenContextChanges","getValidationClass","extraErrors","showValidation","renderDefaultValidation","finalErrors","concat","map","item","index","createElement","className","infoText","Fragment","event","onTheFlightValidate","onChange","componentApi","validation","name","validationName","title","label","_this$props$onBlur","_this$props2","onBlur","touchOn","_this$props$onFocus2","_this$props3","getDisabled","updateCallback","renderLabel","touchable","tooltip","classNames","renderTooltip","renderTitle","initializing","translations","getTranslations","validator","validInner","EmailValidator","Validate","error","NumberValidator","LatitudeValidator","LongitudeValidator","UrlValidator","Error","customValidator","onErrorsChanged","content","_document","Tippy","placement","animation","arrow","duration","delay","distance","interactive","appendTo","document","body","trigger","tooltipProps","_defaultTranslations","defaultProps","_default"],"sources":["../../../../src/lib/components/base/input/BaseInput.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport type { 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?: () => 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 inputGroupClassName?: string;\r\n infoText?: string | JSX.Element;\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 >\r\n extends React.Component<P, S>\r\n implements ComponentApi\r\n{\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 private lastInfoText: 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.props.onFocus?.();\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 .concat(extraErrors ?? [])\r\n .concat(this.props.errors ?? [])\r\n .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 if (this.props.infoText && this.state.isValid) {\r\n this.lastInfoText = [\r\n <li key={1} className=\"info-text__item\">\r\n {this.props.infoText}\r\n </li>,\r\n ];\r\n }\r\n return (\r\n <>\r\n <div className=\"validation__container\">\r\n <ul className=\"validation__ul\">{this.lastValidation}</ul>\r\n </div>\r\n <div className=\"info-text__container\">\r\n <ul className=\"info-text__ul\">{this.lastInfoText}</ul>\r\n </div>\r\n </>\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() {\r\n 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() {\r\n if (!this.props.disabled) {\r\n this.props.onFocus?.();\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 isValid: true,\r\n errors: [],\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 isValid: false,\r\n errors: errors,\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 isValid: isValid,\r\n errors: errors,\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"],"mappings":"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"}
1
+ {"version":3,"file":"BaseInput.js","names":["React","_interopRequireWildcard","require","ReactDOM","Validators","_Guid","_interopRequireDefault","_ShallowEqual","_classnames","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_extends","assign","bind","defaultBaseTranslations","required","exports","BaseInput","Component","constructor","props","subscribe","componentId","guid","inputRef","containerRef","lastValidation","lastInfoText","handleValueChange","state","isValid","errors","touched","defaultTouched","disabled","focused","handleValueChangeEnabled","createRef","handleChange","handleBlur","handleFocus","setValid","focus","scrollTo","setInvalid","disableComponent","enableComponent","touch","unTouch","subscribeSelf","componentWillUnmount","ignoreContext","formContext","unSubscribe","componentDidUpdate","oldProps","oldState","validators","customValidators","_this$containerRef$cu","_this$containerRef$cu2","current","scrollIntoView","behavior","setState","_this$props$onFocus","_this$props","domNode","findDOMNode","onFocus","shouldComponentUpdate","nextProps","nextState","shouldUpdate","shallowEqual","reRendersWhenContextChanges","getValidationClass","extraErrors","showValidation","renderDefaultValidation","finalErrors","concat","map","item","index","createElement","className","infoText","Fragment","event","onTheFlightValidate","onChange","componentApi","validation","name","validationName","title","label","_this$props$onBlur","_this$props2","onBlur","touchOn","_this$props$onFocus2","_this$props3","getDisabled","updateCallback","renderLabel","touchable","tooltip","classNames","renderTooltip","renderTitle","initializing","translations","getTranslations","validator","validInner","EmailValidator","Validate","error","NumberValidator","LatitudeValidator","LongitudeValidator","UrlValidator","Error","customValidator","onErrorsChanged","content","_document","Tippy","placement","animation","arrow","duration","delay","distance","interactive","appendTo","document","body","trigger","tooltipProps","_defaultTranslations","defaultProps","_default"],"sources":["../../../../src/lib/components/base/input/BaseInput.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport type { 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?: () => 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 inputGroupClassName?: string;\r\n infoText?: string | JSX.Element;\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 >\r\n extends React.Component<P, S>\r\n implements ComponentApi\r\n{\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 private lastInfoText: 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 this.containerRef.current?.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.props.onFocus?.();\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 .concat(extraErrors ?? [])\r\n .concat(this.props.errors ?? [])\r\n .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 if (this.props.infoText && this.state.isValid) {\r\n this.lastInfoText = [\r\n <li key={1} className=\"info-text__item\">\r\n {this.props.infoText}\r\n </li>,\r\n ];\r\n }\r\n return (\r\n <>\r\n <div className=\"validation__container\">\r\n <ul className=\"validation__ul\">{this.lastValidation}</ul>\r\n </div>\r\n <div className=\"info-text__container\">\r\n <ul className=\"info-text__ul\">{this.lastInfoText}</ul>\r\n </div>\r\n </>\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() {\r\n 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() {\r\n if (!this.props.disabled) {\r\n this.props.onFocus?.();\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 isValid: true,\r\n errors: [],\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 isValid: false,\r\n errors: errors,\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 isValid: isValid,\r\n errors: errors,\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"],"mappings":"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"}
@@ -8,6 +8,7 @@ var React = _interopRequireWildcard(require("react"));
8
8
  var _withThemeContext = require("../themeProvider/withThemeContext");
9
9
  var _reactInk = _interopRequireDefault(require("react-ink"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
+ const _excluded = ["disabled"]; // Libs
11
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
13
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
14
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -16,19 +17,28 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
16
17
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
18
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
18
19
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
19
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } // Libs
20
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
22
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
20
23
  // Misc
21
24
 
22
- const DefaultButtonComponent = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement("button", _extends({
23
- ref: ref
24
- // tslint:disable-next-line:no-any
25
- }, props.buttonProps ? props.buttonProps : {}, props.id && {
26
- id: props.id
27
- }, {
28
- className: props.className,
29
- onClick: props.onClick,
30
- style: props.style
31
- }), props.children));
25
+ const DefaultButtonComponent = /*#__PURE__*/React.forwardRef((props, ref) => {
26
+ const _ref = props.buttonProps ?? {},
27
+ {
28
+ disabled
29
+ } = _ref,
30
+ rest = _objectWithoutProperties(_ref, _excluded);
31
+ return /*#__PURE__*/React.createElement("button", _extends({
32
+ ref: ref
33
+ // tslint:disable-next-line:no-any
34
+ }, rest, props.id && {
35
+ id: props.id
36
+ }, {
37
+ className: props.className,
38
+ onClick: props.onClick,
39
+ style: props.style
40
+ }), props.children);
41
+ });
32
42
  class Button extends React.PureComponent {
33
43
  constructor(props) {
34
44
  super(props);
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["React","_interopRequireWildcard","require","_withThemeContext","_reactInk","_interopRequireDefault","_classnames","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_extends","assign","bind","DefaultButtonComponent","forwardRef","props","ref","createElement","buttonProps","id","className","onClick","style","children","Button","PureComponent","constructor","preventMultipleClickTimer","handleClick","state","disabledAfterClick","render","_this$props$buttonPro","disabled","disableAfterClick","btnClassName","classNames","getButtonClassName","circular","small","noShadow","blank","unobtrusive","outlined","dropdown","icon","hero","text","button","Component","tabIndex","noRipples","Ink","tooltip","disableTooltip","_document","Tippy","content","placement","animation","arrow","duration","delay","distance","interactive","appendTo","document","body","tooltipProps","componentWillUnmount","clearTimeout","e","preventsDefault","preventDefault","disableAfterClickMs","setState","setTimeout","type","exports","defaultProps","role","_default","withThemeContext"],"sources":["../../../src/lib/components/button/Button.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\nimport type { TippyProps } from '@tippy.js/react';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\nimport { ThemeContextProps } from '../themeProvider/ThemeContext';\r\nimport Ink from 'react-ink';\r\nimport classNames from 'classnames';\r\n\r\n// Misc\r\n\r\nexport type ButtonTypes =\r\n | 'primary'\r\n | 'success'\r\n | 'error'\r\n | 'warning'\r\n | 'info'\r\n | 'gray'\r\n | 'white'\r\n | 'black'\r\n | 'none';\r\n\r\nexport type ButtonComponentProps = {\r\n id?: string;\r\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\r\n className: string;\r\n buttonProps: React.ButtonHTMLAttributes<HTMLButtonElement>;\r\n children: React.ReactNode;\r\n style: React.CSSProperties;\r\n};\r\n\r\nexport type ButtonProps = React.PropsWithChildren<\r\n {\r\n id?: string;\r\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\r\n style?: React.CSSProperties;\r\n className?: string;\r\n disabled?: boolean;\r\n type?: ButtonTypes;\r\n circular?: boolean;\r\n noRipples?: boolean;\r\n small?: boolean;\r\n icon?: boolean;\r\n outlined?: boolean;\r\n disableAfterClickMs?: number;\r\n disableAfterClick?: boolean;\r\n buttonProps?: React.ButtonHTMLAttributes<HTMLButtonElement>;\r\n text?: boolean;\r\n hero?: boolean;\r\n noShadow?: boolean;\r\n blank?: boolean;\r\n unobtrusive?: boolean;\r\n dropdown?: boolean;\r\n Component?: React.FC<ButtonComponentProps>;\r\n tooltip?: JSX.Element | string;\r\n disableTooltip?: boolean;\r\n tooltipProps?: TippyProps;\r\n preventsDefault?: boolean;\r\n } & ThemeContextProps\r\n>;\r\n\r\nexport interface ButtonState {\r\n disabledAfterClick: boolean;\r\n}\r\n\r\nconst DefaultButtonComponent: React.FC<ButtonComponentProps> = React.forwardRef(\r\n (props, ref) => (\r\n <button\r\n ref={ref}\r\n // tslint:disable-next-line:no-any\r\n {...((props.buttonProps ? props.buttonProps : {}) as any)}\r\n {...(props.id && { id: props.id })}\r\n className={props.className}\r\n onClick={props.onClick}\r\n style={props.style}\r\n >\r\n {props.children}\r\n </button>\r\n )\r\n);\r\n\r\nexport class Button extends React.PureComponent<ButtonProps, ButtonState> {\r\n public static defaultProps: ButtonProps = {\r\n disabled: false,\r\n className: '',\r\n onClick: () => null,\r\n circular: false,\r\n noRipples: false,\r\n small: false,\r\n disableAfterClickMs: 100,\r\n disableAfterClick: false,\r\n Component: DefaultButtonComponent,\r\n buttonProps: {\r\n type: 'button',\r\n role: 'button',\r\n tabIndex: 0,\r\n },\r\n type: 'none',\r\n preventsDefault: true,\r\n };\r\n\r\n private preventMultipleClickTimer: number;\r\n\r\n constructor(props: ButtonProps) {\r\n super(props);\r\n this.handleClick = this.handleClick.bind(this);\r\n this.state = {\r\n disabledAfterClick: false,\r\n };\r\n }\r\n\r\n public render() {\r\n const disabled =\r\n this.props.disabled ||\r\n (this.props.disableAfterClick && this.state.disabledAfterClick);\r\n let btnClassName = classNames([\r\n 'guestbell-btn',\r\n this.getButtonClassName(),\r\n this.props.className,\r\n { ['guestbell-btn--disabled']: disabled },\r\n { ['guestbell-btn--circular']: this.props.circular },\r\n { ['guestbell-btn--small']: this.props.small },\r\n { ['guestbell-btn--no-shadow']: this.props.noShadow },\r\n { ['guestbell-btn--blank']: this.props.blank },\r\n { ['guestbell-btn--unobtrusive']: this.props.unobtrusive },\r\n { ['guestbell-btn--outlined']: this.props.outlined },\r\n { ['guestbell-btn--dropdown']: this.props.dropdown },\r\n { ['guestbell-btn--icon']: this.props.icon },\r\n { ['guestbell-btn--hero']: this.props.hero },\r\n { ['guestbell-btn--text']: this.props.text },\r\n ]);\r\n const button = (\r\n <this.props.Component\r\n {...(this.props.id && { id: this.props.id })}\r\n onClick={this.handleClick}\r\n buttonProps={{\r\n ...this.props.buttonProps,\r\n disabled: this.props.disabled,\r\n tabIndex: !disabled ? this.props.buttonProps?.tabIndex : -1,\r\n }}\r\n className={btnClassName}\r\n style={this.props.style}\r\n >\r\n {!this.props.noRipples && !disabled && Ink && <Ink />}\r\n {this.props.children}\r\n </this.props.Component>\r\n );\r\n if (this.props.tooltip && !this.props.disableTooltip) {\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 {...this.props.tooltipProps}\r\n >\r\n {button}\r\n </Tippy>\r\n );\r\n }\r\n return button;\r\n }\r\n\r\n public componentWillUnmount() {\r\n clearTimeout(this.preventMultipleClickTimer);\r\n }\r\n\r\n private handleClick(e: React.MouseEvent<HTMLButtonElement>) {\r\n if (this.props.preventsDefault) {\r\n e.preventDefault();\r\n }\r\n if (!this.state.disabledAfterClick && !this.props.disabled) {\r\n this.props.onClick && this.props.onClick(e);\r\n if (this.props.disableAfterClickMs !== 0) {\r\n this.setState({ disabledAfterClick: true });\r\n this.preventMultipleClickTimer = setTimeout(() => {\r\n this.setState({ disabledAfterClick: false });\r\n }, this.props.disableAfterClickMs) as unknown as number;\r\n }\r\n }\r\n }\r\n\r\n private getButtonClassName() {\r\n return this.props.type && 'guestbell-btn-' + this.props.type;\r\n }\r\n}\r\nexport default withThemeContext<ButtonProps, InstanceType<typeof Button>>(\r\n Button,\r\n 'button'\r\n);\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","names":["React","_interopRequireWildcard","require","_withThemeContext","_reactInk","_interopRequireDefault","_classnames","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_extends","assign","bind","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","DefaultButtonComponent","forwardRef","props","ref","_ref","buttonProps","disabled","rest","createElement","id","className","onClick","style","children","Button","PureComponent","constructor","preventMultipleClickTimer","handleClick","state","disabledAfterClick","render","_this$props$buttonPro","disableAfterClick","btnClassName","classNames","getButtonClassName","circular","small","noShadow","blank","unobtrusive","outlined","dropdown","icon","hero","text","button","Component","tabIndex","noRipples","Ink","tooltip","disableTooltip","_document","Tippy","content","placement","animation","arrow","duration","delay","distance","interactive","appendTo","document","body","tooltipProps","componentWillUnmount","clearTimeout","e","preventsDefault","preventDefault","disableAfterClickMs","setState","setTimeout","type","exports","defaultProps","role","_default","withThemeContext"],"sources":["../../../src/lib/components/button/Button.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\nimport type { TippyProps } from '@tippy.js/react';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\nimport { ThemeContextProps } from '../themeProvider/ThemeContext';\r\nimport Ink from 'react-ink';\r\nimport classNames from 'classnames';\r\n\r\n// Misc\r\n\r\nexport type ButtonTypes =\r\n | 'primary'\r\n | 'success'\r\n | 'error'\r\n | 'warning'\r\n | 'info'\r\n | 'gray'\r\n | 'white'\r\n | 'black'\r\n | 'none';\r\n\r\nexport type ButtonComponentProps = {\r\n id?: string;\r\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\r\n className: string;\r\n buttonProps: React.ButtonHTMLAttributes<HTMLButtonElement>;\r\n children: React.ReactNode;\r\n style: React.CSSProperties;\r\n};\r\n\r\nexport type ButtonProps = React.PropsWithChildren<\r\n {\r\n id?: string;\r\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\r\n style?: React.CSSProperties;\r\n className?: string;\r\n disabled?: boolean;\r\n type?: ButtonTypes;\r\n circular?: boolean;\r\n noRipples?: boolean;\r\n small?: boolean;\r\n icon?: boolean;\r\n outlined?: boolean;\r\n disableAfterClickMs?: number;\r\n disableAfterClick?: boolean;\r\n buttonProps?: React.ButtonHTMLAttributes<HTMLButtonElement>;\r\n text?: boolean;\r\n hero?: boolean;\r\n noShadow?: boolean;\r\n blank?: boolean;\r\n unobtrusive?: boolean;\r\n dropdown?: boolean;\r\n Component?: React.FC<ButtonComponentProps>;\r\n tooltip?: JSX.Element | string;\r\n disableTooltip?: boolean;\r\n tooltipProps?: TippyProps;\r\n preventsDefault?: boolean;\r\n } & ThemeContextProps\r\n>;\r\n\r\nexport interface ButtonState {\r\n disabledAfterClick: boolean;\r\n}\r\n\r\nconst DefaultButtonComponent: React.FC<ButtonComponentProps> = React.forwardRef(\r\n (props, ref) => {\r\n const { disabled, ...rest } = props.buttonProps ?? {};\r\n return (\r\n <button\r\n ref={ref}\r\n // tslint:disable-next-line:no-any\r\n {...(rest as any)}\r\n {...(props.id && { id: props.id })}\r\n className={props.className}\r\n onClick={props.onClick}\r\n style={props.style}\r\n >\r\n {props.children}\r\n </button>\r\n );\r\n }\r\n);\r\n\r\nexport class Button extends React.PureComponent<ButtonProps, ButtonState> {\r\n public static defaultProps: ButtonProps = {\r\n disabled: false,\r\n className: '',\r\n onClick: () => null,\r\n circular: false,\r\n noRipples: false,\r\n small: false,\r\n disableAfterClickMs: 100,\r\n disableAfterClick: false,\r\n Component: DefaultButtonComponent,\r\n buttonProps: {\r\n type: 'button',\r\n role: 'button',\r\n tabIndex: 0,\r\n },\r\n type: 'none',\r\n preventsDefault: true,\r\n };\r\n\r\n private preventMultipleClickTimer: number;\r\n\r\n constructor(props: ButtonProps) {\r\n super(props);\r\n this.handleClick = this.handleClick.bind(this);\r\n this.state = {\r\n disabledAfterClick: false,\r\n };\r\n }\r\n\r\n public render() {\r\n const disabled =\r\n this.props.disabled ||\r\n (this.props.disableAfterClick && this.state.disabledAfterClick);\r\n let btnClassName = classNames([\r\n 'guestbell-btn',\r\n this.getButtonClassName(),\r\n this.props.className,\r\n { ['guestbell-btn--disabled']: disabled },\r\n { ['guestbell-btn--circular']: this.props.circular },\r\n { ['guestbell-btn--small']: this.props.small },\r\n { ['guestbell-btn--no-shadow']: this.props.noShadow },\r\n { ['guestbell-btn--blank']: this.props.blank },\r\n { ['guestbell-btn--unobtrusive']: this.props.unobtrusive },\r\n { ['guestbell-btn--outlined']: this.props.outlined },\r\n { ['guestbell-btn--dropdown']: this.props.dropdown },\r\n { ['guestbell-btn--icon']: this.props.icon },\r\n { ['guestbell-btn--hero']: this.props.hero },\r\n { ['guestbell-btn--text']: this.props.text },\r\n ]);\r\n const button = (\r\n <this.props.Component\r\n {...(this.props.id && { id: this.props.id })}\r\n onClick={this.handleClick}\r\n buttonProps={{\r\n ...this.props.buttonProps,\r\n disabled: this.props.disabled,\r\n tabIndex: !disabled ? this.props.buttonProps?.tabIndex : -1,\r\n }}\r\n className={btnClassName}\r\n style={this.props.style}\r\n >\r\n {!this.props.noRipples && !disabled && Ink && <Ink />}\r\n {this.props.children}\r\n </this.props.Component>\r\n );\r\n if (this.props.tooltip && !this.props.disableTooltip) {\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 {...this.props.tooltipProps}\r\n >\r\n {button}\r\n </Tippy>\r\n );\r\n }\r\n return button;\r\n }\r\n\r\n public componentWillUnmount() {\r\n clearTimeout(this.preventMultipleClickTimer);\r\n }\r\n\r\n private handleClick(e: React.MouseEvent<HTMLButtonElement>) {\r\n if (this.props.preventsDefault) {\r\n e.preventDefault();\r\n }\r\n if (!this.state.disabledAfterClick && !this.props.disabled) {\r\n this.props.onClick && this.props.onClick(e);\r\n if (this.props.disableAfterClickMs !== 0) {\r\n this.setState({ disabledAfterClick: true });\r\n this.preventMultipleClickTimer = setTimeout(() => {\r\n this.setState({ disabledAfterClick: false });\r\n }, this.props.disableAfterClickMs) as unknown as number;\r\n }\r\n }\r\n }\r\n\r\n private getButtonClassName() {\r\n return this.props.type && 'guestbell-btn-' + this.props.type;\r\n }\r\n}\r\nexport default withThemeContext<ButtonProps, InstanceType<typeof Button>>(\r\n Button,\r\n 'button'\r\n);\r\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
- import { FormContextState, FormComponentContextState, ComponentsDict } from './FormContext';
2
+ import { FormContextState, ComponentsDict } from './FormContext';
3
3
  import { ThemeContextProps } from '../themeProvider/ThemeContext';
4
+ import { FormComponentContextState, FormValidationContextState } from './FormValidationContext';
4
5
  export type FormProps = React.PropsWithChildren<ThemeContextProps & {
5
6
  id?: string;
6
7
  className?: string;
@@ -11,7 +12,8 @@ export type FormProps = React.PropsWithChildren<ThemeContextProps & {
11
12
  onValidChanged?: (isValid: boolean, errors?: FormComponentContextState[]) => void;
12
13
  }>;
13
14
  export interface FormState {
14
- contextState: FormContextState;
15
+ formContext: FormContextState;
16
+ formValidationContext: FormValidationContextState;
15
17
  }
16
18
  export declare class Form extends React.PureComponent<FormProps, FormState> {
17
19
  static defaultProps: {
@@ -7,6 +7,7 @@ exports.default = exports.Form = void 0;
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _FormContext = require("./FormContext");
9
9
  var _withThemeContext = require("../themeProvider/withThemeContext");
10
+ var _FormValidationContext = require("./FormValidationContext");
10
11
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
12
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
13
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -29,59 +30,62 @@ class Form extends React.PureComponent {
29
30
  this.disableComponents = this.disableComponents.bind(this);
30
31
  this.enableComponents = this.enableComponents.bind(this);
31
32
  this.state = {
32
- contextState: {
33
+ formContext: {
33
34
  subscribe: this.subscribe,
34
35
  unSubscribe: this.unSubscribe,
35
- isFormValid: true,
36
36
  updateCallback: this.updateCallback,
37
37
  disableComponents: this.disableComponents,
38
- enableComponents: this.enableComponents,
38
+ enableComponents: this.enableComponents
39
+ },
40
+ formValidationContext: {
41
+ isFormValid: true,
39
42
  components: {}
40
43
  }
41
44
  };
42
45
  }
43
46
  componentDidUpdate(prevProps, prevState, snapshot) {
44
- var _this$state$contextSt, _prevState$contextSta;
45
- if (((_this$state$contextSt = this.state.contextState) === null || _this$state$contextSt === void 0 ? void 0 : _this$state$contextSt.isFormValid) !== (prevState === null || prevState === void 0 ? void 0 : (_prevState$contextSta = prevState.contextState) === null || _prevState$contextSta === void 0 ? void 0 : _prevState$contextSta.isFormValid)) {
46
- var _this$props$onValidCh, _this$props, _this$state$contextSt2;
47
- const componentsWithErrors = this.state.contextState ? Object.keys(this.state.contextState.components).map(key => this.state.contextState.components[key]).filter(component => {
47
+ var _this$state$formValid, _prevState$formValida;
48
+ if (((_this$state$formValid = this.state.formValidationContext) === null || _this$state$formValid === void 0 ? void 0 : _this$state$formValid.isFormValid) !== (prevState === null || prevState === void 0 ? void 0 : (_prevState$formValida = prevState.formValidationContext) === null || _prevState$formValida === void 0 ? void 0 : _prevState$formValida.isFormValid)) {
49
+ var _this$props$onValidCh, _this$props, _this$state$formValid2;
50
+ const componentsWithErrors = this.state.formContext ? Object.keys(this.state.formValidationContext.components).map(key => this.state.formValidationContext.components[key]).filter(component => {
48
51
  if (!component.validation.isValid && !component.validation.name) {
49
52
  console.warn(component, 'Has validation error. FormValidationSummary is present but the component has no validation name');
50
53
  }
51
54
  return !component.validation.isValid;
52
55
  }) : [];
53
- (_this$props$onValidCh = (_this$props = this.props).onValidChanged) === null || _this$props$onValidCh === void 0 ? void 0 : _this$props$onValidCh.call(_this$props, (_this$state$contextSt2 = this.state.contextState) === null || _this$state$contextSt2 === void 0 ? void 0 : _this$state$contextSt2.isFormValid, componentsWithErrors);
56
+ (_this$props$onValidCh = (_this$props = this.props).onValidChanged) === null || _this$props$onValidCh === void 0 ? void 0 : _this$props$onValidCh.call(_this$props, (_this$state$formValid2 = this.state.formValidationContext) === null || _this$state$formValid2 === void 0 ? void 0 : _this$state$formValid2.isFormValid, componentsWithErrors);
54
57
  }
55
58
  }
56
59
  disableComponents() {
57
- const components = _objectSpread(_objectSpread({}, this.state.contextState.components), this.props.extraComponents);
60
+ const components = _objectSpread(_objectSpread({}, this.state.formValidationContext.components), this.props.extraComponents);
58
61
  Object.keys(components).forEach(key => {
59
62
  const component = components[key];
60
63
  component && component.componentApi && component.componentApi.disableComponent && component.componentApi.disableComponent();
61
64
  });
62
65
  }
63
66
  enableComponents() {
64
- const components = _objectSpread(_objectSpread({}, this.state.contextState.components), this.props.extraComponents);
67
+ const components = _objectSpread(_objectSpread({}, this.state.formValidationContext.components), this.props.extraComponents);
65
68
  Object.keys(components).forEach(key => {
66
69
  const component = components[key];
67
70
  component && component.componentApi && component.componentApi.enableComponent && component.componentApi.enableComponent();
68
71
  });
69
72
  }
70
73
  touchAll() {
71
- const components = _objectSpread(_objectSpread({}, this.state.contextState.components), this.props.extraComponents);
74
+ const components = _objectSpread(_objectSpread({}, this.state.formValidationContext.components), this.props.extraComponents);
72
75
  Object.keys(components).forEach(key => {
73
76
  const component = components[key];
74
77
  component && component.componentApi && component.componentApi.touch && component.componentApi.touch();
75
78
  });
76
79
  }
77
80
  unTouchAll() {
78
- const components = _objectSpread(_objectSpread({}, this.state.contextState.components), this.props.extraComponents);
81
+ const components = _objectSpread(_objectSpread({}, this.state.formValidationContext.components), this.props.extraComponents);
79
82
  Object.keys(components).forEach(key => {
80
83
  const component = components[key];
81
84
  component && component.componentApi && component.componentApi.unTouch && component.componentApi.unTouch();
82
85
  });
83
86
  }
84
87
  render() {
88
+ const validationContext = this.mergeContext();
85
89
  return /*#__PURE__*/React.createElement(this.props.component, _extends({}, this.props.id && {
86
90
  id: this.props.id
87
91
  }, {
@@ -90,32 +94,35 @@ class Form extends React.PureComponent {
90
94
  className: `input__form validation-form ${this.props.className ? this.props.className : ''}`,
91
95
  onSubmit: this.onSubmit
92
96
  }), /*#__PURE__*/React.createElement(_FormContext.FormContextProvider, {
93
- value: this.mergeContext()
94
- }, this.props.children));
97
+ value: this.state.formContext
98
+ }, /*#__PURE__*/React.createElement(_FormValidationContext.FormValidationContextProvider, {
99
+ value: validationContext
100
+ }, this.props.children)));
95
101
  }
96
102
  mergeContext() {
97
103
  if (!this.props.extraComponents) {
98
- return this.state.contextState;
104
+ return this.state.formValidationContext;
99
105
  }
100
- const isFormValid = this.state.contextState.isFormValid && this.getIsFormValid(this.props.extraComponents);
101
- return _objectSpread(_objectSpread({}, this.state.contextState), {}, {
102
- components: _objectSpread(_objectSpread({}, this.state.contextState.components), this.props.extraComponents),
106
+ const isFormValid = this.state.formValidationContext.isFormValid && this.getIsFormValid(this.props.extraComponents);
107
+ return _objectSpread(_objectSpread({}, this.state.formValidationContext), {}, {
108
+ components: _objectSpread(_objectSpread({}, this.state.formValidationContext.components), this.props.extraComponents),
103
109
  isFormValid
104
110
  });
105
111
  }
106
112
  subscribe(componentId, componentState) {
107
113
  if (componentId) {
108
114
  this.setState(previousState => {
109
- let components = Object.assign({}, previousState.contextState.components);
115
+ let components = Object.assign({}, previousState.formValidationContext.components);
110
116
  if (componentState) {
111
117
  components[componentId] = componentState;
112
118
  }
113
119
  let isFormValid = this.getIsFormValid(components);
114
120
  return {
115
- contextState: _objectSpread(_objectSpread({}, previousState.contextState), {}, {
121
+ formValidationContext: _objectSpread(_objectSpread({}, previousState.formValidationContext), {}, {
116
122
  components,
117
123
  isFormValid
118
- })
124
+ }),
125
+ formContext: previousState.formContext
119
126
  };
120
127
  });
121
128
  }
@@ -123,11 +130,12 @@ class Form extends React.PureComponent {
123
130
  unSubscribe(componentId) {
124
131
  if (componentId) {
125
132
  this.setState(previousState => {
126
- let components = Object.assign({}, previousState.contextState.components);
133
+ let components = Object.assign({}, previousState.formValidationContext.components);
127
134
  delete components[componentId];
128
135
  let isFormValid = this.getIsFormValid(components);
129
136
  return {
130
- contextState: _objectSpread(_objectSpread({}, previousState.contextState), {}, {
137
+ formContext: previousState.formContext,
138
+ formValidationContext: _objectSpread(_objectSpread({}, previousState.formValidationContext), {}, {
131
139
  components,
132
140
  isFormValid
133
141
  })
@@ -136,7 +144,7 @@ class Form extends React.PureComponent {
136
144
  }
137
145
  }
138
146
  getIsFormValid() {
139
- let components = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state.contextState.components;
147
+ let components = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state.formValidationContext.components;
140
148
  let initialValid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
141
149
  let isFormValid = initialValid;
142
150
  Object.keys(components).forEach(key => {
@@ -150,7 +158,7 @@ class Form extends React.PureComponent {
150
158
  updateCallback(componentId, componentState) {
151
159
  this.setState(previousState => {
152
160
  var _previousComponent$va, _componentState$error, _previousComponent$va2;
153
- let components = Object.assign({}, previousState.contextState.components);
161
+ let components = Object.assign({}, previousState.formValidationContext.components);
154
162
  const previousComponent = components[componentId];
155
163
  if (previousComponent && previousComponent.validation && previousComponent.validation.isValid === componentState.isValid && ((_previousComponent$va = previousComponent.validation.errors) === null || _previousComponent$va === void 0 ? void 0 : _previousComponent$va.length) === ((_componentState$error = componentState.errors) === null || _componentState$error === void 0 ? void 0 : _componentState$error.length) && (_previousComponent$va2 = previousComponent.validation.errors) !== null && _previousComponent$va2 !== void 0 && _previousComponent$va2.every((error, index) => {
156
164
  var _componentState$error2;
@@ -165,10 +173,11 @@ class Form extends React.PureComponent {
165
173
  }
166
174
  let isFormValid = this.getIsFormValid(components);
167
175
  return {
168
- contextState: _objectSpread(_objectSpread({}, this.state.contextState), {}, {
176
+ formValidationContext: _objectSpread(_objectSpread({}, this.state.formValidationContext), {}, {
169
177
  components,
170
178
  isFormValid
171
- })
179
+ }),
180
+ formContext: previousState.formContext
172
181
  };
173
182
  });
174
183
  }