guestbell-forms 3.0.81 → 3.0.83

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.
@@ -215,10 +215,8 @@ class BaseInput extends React.Component {
215
215
  }), () => {
216
216
  if (!this.props.ignoreContext) {
217
217
  this.props.formContext && this.props.formContext.updateCallback(this.componentId, {
218
- validation: {
219
- isValid: true,
220
- errors: []
221
- }
218
+ isValid: true,
219
+ errors: []
222
220
  });
223
221
  }
224
222
  });
@@ -231,10 +229,8 @@ class BaseInput extends React.Component {
231
229
  }), () => {
232
230
  if (!this.props.ignoreContext) {
233
231
  this.props.formContext && this.props.formContext.updateCallback(this.componentId, {
234
- validation: {
235
- isValid: false,
236
- errors: errors
237
- }
232
+ isValid: false,
233
+ errors: errors
238
234
  });
239
235
  }
240
236
  });
@@ -325,10 +321,8 @@ class BaseInput extends React.Component {
325
321
  });
326
322
  if (!props.ignoreContext) {
327
323
  props.formContext && props.formContext.updateCallback(this.componentId, {
328
- validation: {
329
- isValid: isValid,
330
- errors: errors
331
- }
324
+ isValid: isValid,
325
+ errors: errors
332
326
  });
333
327
  }
334
328
  }
@@ -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 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"],"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","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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"}
@@ -21,10 +21,8 @@ class ExternalValidationComponentRaw extends _BaseInput.BaseInput {
21
21
  });
22
22
  if (!this.props.ignoreContext && this.props.formContext) {
23
23
  this.props.formContext.updateCallback(this.componentId, {
24
- validation: {
25
- isValid: props.isValid,
26
- errors: props.errors
27
- }
24
+ isValid: props.isValid,
25
+ errors: props.errors
28
26
  });
29
27
  }
30
28
  }
@@ -32,10 +30,8 @@ class ExternalValidationComponentRaw extends _BaseInput.BaseInput {
32
30
  if (this.props.isValid !== prevProps.isValid || this.props.errors !== prevProps.errors) {
33
31
  if (!this.props.ignoreContext && this.props.formContext) {
34
32
  this.props.formContext.updateCallback(this.componentId, {
35
- validation: {
36
- isValid: this.props.isValid,
37
- errors: this.props.errors
38
- }
33
+ isValid: this.props.isValid,
34
+ errors: this.props.errors
39
35
  });
40
36
  }
41
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalValidationComponent.js","names":["_BaseInput","require","_withFormContext","_withThemeContext","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","ExternalValidationComponentRaw","BaseInput","constructor","props","state","handleValueChangeEnabled","ignoreContext","formContext","updateCallback","componentId","validation","isValid","errors","componentDidUpdate","prevProps","prevState","render","exports","defaultProps","assign","ExternalValidationComponent","withThemeContext","withFormContext","_default","default"],"sources":["../../../src/lib/components/externalValidationComponent/ExternalValidationComponent.tsx"],"sourcesContent":["// Libs\r\n\r\n// Misc\r\nimport {\r\n BaseInputProps,\r\n BaseInputState,\r\n BaseInput,\r\n} from '../base/input/BaseInput';\r\nimport { withFormContext } from '../form/withFormContext';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\n\r\nexport interface ExternalValidationComponentProps\r\n extends BaseInputProps<HTMLInputElement> {\r\n isValid: boolean;\r\n}\r\n\r\nexport interface ExternalValidationComponentState extends BaseInputState {}\r\n\r\nexport class ExternalValidationComponentRaw extends BaseInput<\r\n ExternalValidationComponentProps,\r\n ExternalValidationComponentState,\r\n HTMLInputElement\r\n> {\r\n public static defaultProps = Object.assign({}, BaseInput.defaultProps, {\r\n isValid: true,\r\n }) as ExternalValidationComponentProps;\r\n\r\n constructor(props: ExternalValidationComponentProps) {\r\n super(props);\r\n this.state = {\r\n ...this.state,\r\n handleValueChangeEnabled: false,\r\n };\r\n if (!this.props.ignoreContext && this.props.formContext) {\r\n this.props.formContext.updateCallback(this.componentId, {\r\n validation: {\r\n isValid: props.isValid,\r\n errors: props.errors,\r\n },\r\n });\r\n }\r\n }\r\n\r\n public componentDidUpdate(\r\n prevProps: ExternalValidationComponentProps,\r\n prevState: ExternalValidationComponentState\r\n ) {\r\n if (\r\n this.props.isValid !== prevProps.isValid ||\r\n this.props.errors !== prevProps.errors\r\n ) {\r\n if (!this.props.ignoreContext && this.props.formContext) {\r\n this.props.formContext.updateCallback(this.componentId, {\r\n validation: {\r\n isValid: this.props.isValid,\r\n errors: this.props.errors,\r\n },\r\n });\r\n }\r\n }\r\n }\r\n\r\n public render() {\r\n return null;\r\n }\r\n}\r\n\r\nexport const ExternalValidationComponent = withThemeContext<\r\n ExternalValidationComponentProps,\r\n InstanceType<typeof ExternalValidationComponentRaw>\r\n>(\r\n withFormContext<ExternalValidationComponentProps>(\r\n ExternalValidationComponentRaw\r\n ),\r\n 'text'\r\n);\r\n\r\nexport default ExternalValidationComponent;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"ExternalValidationComponent.js","names":["_BaseInput","require","_withFormContext","_withThemeContext","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","ExternalValidationComponentRaw","BaseInput","constructor","props","state","handleValueChangeEnabled","ignoreContext","formContext","updateCallback","componentId","isValid","errors","componentDidUpdate","prevProps","prevState","render","exports","defaultProps","assign","ExternalValidationComponent","withThemeContext","withFormContext","_default","default"],"sources":["../../../src/lib/components/externalValidationComponent/ExternalValidationComponent.tsx"],"sourcesContent":["// Libs\r\n\r\n// Misc\r\nimport {\r\n BaseInputProps,\r\n BaseInputState,\r\n BaseInput,\r\n} from '../base/input/BaseInput';\r\nimport { withFormContext } from '../form/withFormContext';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\n\r\nexport interface ExternalValidationComponentProps\r\n extends BaseInputProps<HTMLInputElement> {\r\n isValid: boolean;\r\n}\r\n\r\nexport interface ExternalValidationComponentState extends BaseInputState {}\r\n\r\nexport class ExternalValidationComponentRaw extends BaseInput<\r\n ExternalValidationComponentProps,\r\n ExternalValidationComponentState,\r\n HTMLInputElement\r\n> {\r\n public static defaultProps = Object.assign({}, BaseInput.defaultProps, {\r\n isValid: true,\r\n }) as ExternalValidationComponentProps;\r\n\r\n constructor(props: ExternalValidationComponentProps) {\r\n super(props);\r\n this.state = {\r\n ...this.state,\r\n handleValueChangeEnabled: false,\r\n };\r\n if (!this.props.ignoreContext && this.props.formContext) {\r\n this.props.formContext.updateCallback(this.componentId, {\r\n isValid: props.isValid,\r\n errors: props.errors,\r\n });\r\n }\r\n }\r\n\r\n public componentDidUpdate(\r\n prevProps: ExternalValidationComponentProps,\r\n prevState: ExternalValidationComponentState\r\n ) {\r\n if (\r\n this.props.isValid !== prevProps.isValid ||\r\n this.props.errors !== prevProps.errors\r\n ) {\r\n if (!this.props.ignoreContext && this.props.formContext) {\r\n this.props.formContext.updateCallback(this.componentId, {\r\n isValid: this.props.isValid,\r\n errors: this.props.errors,\r\n });\r\n }\r\n }\r\n }\r\n\r\n public render() {\r\n return null;\r\n }\r\n}\r\n\r\nexport const ExternalValidationComponent = withThemeContext<\r\n ExternalValidationComponentProps,\r\n InstanceType<typeof ExternalValidationComponentRaw>\r\n>(\r\n withFormContext<ExternalValidationComponentProps>(\r\n ExternalValidationComponentRaw\r\n ),\r\n 'text'\r\n);\r\n\r\nexport default ExternalValidationComponent;\r\n"],"mappings":"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"}
@@ -149,11 +149,18 @@ class Form extends React.PureComponent {
149
149
  }
150
150
  updateCallback(componentId, componentState) {
151
151
  this.setState(previousState => {
152
+ var _previousComponent$va, _componentState$error, _previousComponent$va2;
152
153
  let components = Object.assign({}, previousState.contextState.components);
153
154
  const previousComponent = components[componentId];
155
+ if (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
+ var _componentState$error2;
157
+ return error === ((_componentState$error2 = componentState.errors) === null || _componentState$error2 === void 0 ? void 0 : _componentState$error2[index]);
158
+ })) {
159
+ return previousState;
160
+ }
154
161
  if (componentState && previousComponent) {
155
- components[componentId] = _objectSpread(_objectSpread(_objectSpread({}, previousComponent), componentState), {}, {
156
- validation: _objectSpread(_objectSpread({}, previousComponent.validation), componentState.validation)
162
+ components[componentId] = _objectSpread(_objectSpread({}, previousComponent), {}, {
163
+ validation: _objectSpread(_objectSpread({}, previousComponent.validation), componentState)
157
164
  });
158
165
  }
159
166
  let isFormValid = this.getIsFormValid(components);
@@ -1 +1 @@
1
- {"version":3,"file":"Form.js","names":["React","_interopRequireWildcard","require","_FormContext","_withThemeContext","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","Form","PureComponent","constructor","props","onSubmit","e","preventDefault","subscribe","unSubscribe","updateCallback","disableComponents","enableComponents","state","contextState","isFormValid","components","componentDidUpdate","prevProps","prevState","snapshot","_this$state$contextSt","_prevState$contextSta","_this$props$onValidCh","_this$props","_this$state$contextSt2","componentsWithErrors","map","component","validation","isValid","name","console","warn","onValidChanged","extraComponents","componentApi","disableComponent","enableComponent","touchAll","touch","unTouchAll","unTouch","render","createElement","id","noValidate","role","className","FormContextProvider","mergeContext","children","getIsFormValid","componentId","componentState","setState","previousState","initialValid","previousComponent","exports","defaultProps","showExpandAll","_default","withThemeContext"],"sources":["../../../src/lib/components/form/Form.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport {\r\n FormContextState,\r\n FormComponentContextState,\r\n FormContextProvider,\r\n ComponentsDict,\r\n} from './FormContext';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\nimport { ThemeContextProps } from '../themeProvider/ThemeContext';\r\n\r\nexport type FormProps = React.PropsWithChildren<\r\n ThemeContextProps & {\r\n id?: string;\r\n className?: string;\r\n noValidate?: boolean;\r\n onSubmit?: () => void;\r\n extraComponents?: ComponentsDict;\r\n component?: keyof JSX.IntrinsicElements;\r\n onValidChanged?: (\r\n isValid: boolean,\r\n errors?: FormComponentContextState[]\r\n ) => void;\r\n }\r\n>;\r\n\r\nexport interface FormState {\r\n contextState: FormContextState;\r\n}\r\n\r\nexport class Form extends React.PureComponent<FormProps, FormState> {\r\n public static defaultProps = {\r\n noValidate: false,\r\n showExpandAll: true,\r\n component: 'form' as keyof JSX.IntrinsicElements,\r\n };\r\n\r\n constructor(props: FormProps) {\r\n super(props);\r\n this.subscribe = this.subscribe.bind(this);\r\n this.unSubscribe = this.unSubscribe.bind(this);\r\n this.updateCallback = this.updateCallback.bind(this);\r\n this.disableComponents = this.disableComponents.bind(this);\r\n this.enableComponents = this.enableComponents.bind(this);\r\n this.state = {\r\n contextState: {\r\n subscribe: this.subscribe,\r\n unSubscribe: this.unSubscribe,\r\n isFormValid: true,\r\n updateCallback: this.updateCallback,\r\n disableComponents: this.disableComponents,\r\n enableComponents: this.enableComponents,\r\n components: {},\r\n },\r\n };\r\n }\r\n\r\n public componentDidUpdate(\r\n prevProps: Readonly<FormProps>,\r\n prevState: Readonly<FormState>,\r\n snapshot?: any\r\n ): void {\r\n if (\r\n this.state.contextState?.isFormValid !==\r\n prevState?.contextState?.isFormValid\r\n ) {\r\n const componentsWithErrors = this.state.contextState\r\n ? Object.keys(this.state.contextState.components)\r\n .map(key => this.state.contextState.components[key])\r\n .filter(component => {\r\n if (!component.validation.isValid && !component.validation.name) {\r\n console.warn(\r\n component,\r\n 'Has validation error. FormValidationSummary is present but the component has no validation name'\r\n );\r\n }\r\n return !component.validation.isValid;\r\n })\r\n : [];\r\n this.props.onValidChanged?.(\r\n this.state.contextState?.isFormValid,\r\n componentsWithErrors\r\n );\r\n }\r\n }\r\n\r\n public disableComponents() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.disableComponent &&\r\n component.componentApi.disableComponent();\r\n });\r\n }\r\n\r\n public enableComponents() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.enableComponent &&\r\n component.componentApi.enableComponent();\r\n });\r\n }\r\n\r\n public touchAll() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.touch &&\r\n component.componentApi.touch();\r\n });\r\n }\r\n\r\n public unTouchAll() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.unTouch &&\r\n component.componentApi.unTouch();\r\n });\r\n }\r\n\r\n public render() {\r\n return (\r\n <this.props.component\r\n {...(this.props.id && { id: this.props.id })}\r\n noValidate={true}\r\n role=\"form\"\r\n className={`input__form validation-form ${\r\n this.props.className ? this.props.className : ''\r\n }`}\r\n onSubmit={this.onSubmit}\r\n >\r\n <FormContextProvider value={this.mergeContext()}>\r\n {this.props.children}\r\n </FormContextProvider>\r\n </this.props.component>\r\n );\r\n }\r\n\r\n private mergeContext(): FormContextState {\r\n if (!this.props.extraComponents) {\r\n return this.state.contextState;\r\n }\r\n const isFormValid =\r\n this.state.contextState.isFormValid &&\r\n this.getIsFormValid(this.props.extraComponents);\r\n return {\r\n ...this.state.contextState,\r\n components: {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n },\r\n isFormValid,\r\n };\r\n }\r\n\r\n private onSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n this.props.onSubmit && this.props.onSubmit();\r\n };\r\n\r\n private subscribe(\r\n componentId: string,\r\n componentState: FormComponentContextState\r\n ) {\r\n if (componentId) {\r\n this.setState(previousState => {\r\n let components = Object.assign(\r\n {},\r\n previousState.contextState.components\r\n );\r\n if (componentState) {\r\n components[componentId] = componentState;\r\n }\r\n let isFormValid = this.getIsFormValid(components);\r\n return {\r\n contextState: {\r\n ...previousState.contextState,\r\n components,\r\n isFormValid,\r\n },\r\n };\r\n });\r\n }\r\n }\r\n\r\n private unSubscribe(componentId: string) {\r\n if (componentId) {\r\n this.setState(previousState => {\r\n let components = Object.assign(\r\n {},\r\n previousState.contextState.components\r\n );\r\n delete components[componentId];\r\n let isFormValid = this.getIsFormValid(components);\r\n return {\r\n contextState: {\r\n ...previousState.contextState,\r\n components,\r\n isFormValid,\r\n },\r\n };\r\n });\r\n }\r\n }\r\n\r\n private getIsFormValid(\r\n components: ComponentsDict = this.state.contextState.components,\r\n initialValid: boolean = true\r\n ): boolean {\r\n let isFormValid = initialValid;\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n if (component && component.validation && !component.validation.isValid) {\r\n isFormValid = false;\r\n }\r\n });\r\n return isFormValid;\r\n }\r\n\r\n private updateCallback(\r\n componentId: string,\r\n componentState: FormComponentContextState\r\n ) {\r\n this.setState(previousState => {\r\n let components = Object.assign({}, previousState.contextState.components);\r\n const previousComponent = components[componentId];\r\n if (componentState && previousComponent) {\r\n components[componentId] = {\r\n ...previousComponent,\r\n ...componentState,\r\n validation: {\r\n ...previousComponent.validation,\r\n ...componentState.validation,\r\n },\r\n };\r\n }\r\n let isFormValid = this.getIsFormValid(components);\r\n return {\r\n contextState: {\r\n ...this.state.contextState,\r\n components,\r\n isFormValid,\r\n },\r\n };\r\n });\r\n }\r\n}\r\n\r\nexport default withThemeContext<FormProps, InstanceType<typeof Form>>(\r\n Form,\r\n 'form'\r\n);\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"Form.js","names":["React","_interopRequireWildcard","require","_FormContext","_withThemeContext","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","Form","PureComponent","constructor","props","onSubmit","e","preventDefault","subscribe","unSubscribe","updateCallback","disableComponents","enableComponents","state","contextState","isFormValid","components","componentDidUpdate","prevProps","prevState","snapshot","_this$state$contextSt","_prevState$contextSta","_this$props$onValidCh","_this$props","_this$state$contextSt2","componentsWithErrors","map","component","validation","isValid","name","console","warn","onValidChanged","extraComponents","componentApi","disableComponent","enableComponent","touchAll","touch","unTouchAll","unTouch","render","createElement","id","noValidate","role","className","FormContextProvider","mergeContext","children","getIsFormValid","componentId","componentState","setState","previousState","initialValid","_previousComponent$va","_componentState$error","_previousComponent$va2","previousComponent","errors","every","error","index","_componentState$error2","exports","defaultProps","showExpandAll","_default","withThemeContext"],"sources":["../../../src/lib/components/form/Form.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport {\r\n FormContextState,\r\n FormComponentContextState,\r\n FormContextProvider,\r\n ComponentsDict,\r\n FormComponentValidationContextStateBase,\r\n} from './FormContext';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\nimport { ThemeContextProps } from '../themeProvider/ThemeContext';\r\n\r\nexport type FormProps = React.PropsWithChildren<\r\n ThemeContextProps & {\r\n id?: string;\r\n className?: string;\r\n noValidate?: boolean;\r\n onSubmit?: () => void;\r\n extraComponents?: ComponentsDict;\r\n component?: keyof JSX.IntrinsicElements;\r\n onValidChanged?: (\r\n isValid: boolean,\r\n errors?: FormComponentContextState[]\r\n ) => void;\r\n }\r\n>;\r\n\r\nexport interface FormState {\r\n contextState: FormContextState;\r\n}\r\n\r\nexport class Form extends React.PureComponent<FormProps, FormState> {\r\n public static defaultProps = {\r\n noValidate: false,\r\n showExpandAll: true,\r\n component: 'form' as keyof JSX.IntrinsicElements,\r\n };\r\n\r\n constructor(props: FormProps) {\r\n super(props);\r\n this.subscribe = this.subscribe.bind(this);\r\n this.unSubscribe = this.unSubscribe.bind(this);\r\n this.updateCallback = this.updateCallback.bind(this);\r\n this.disableComponents = this.disableComponents.bind(this);\r\n this.enableComponents = this.enableComponents.bind(this);\r\n this.state = {\r\n contextState: {\r\n subscribe: this.subscribe,\r\n unSubscribe: this.unSubscribe,\r\n isFormValid: true,\r\n updateCallback: this.updateCallback,\r\n disableComponents: this.disableComponents,\r\n enableComponents: this.enableComponents,\r\n components: {},\r\n },\r\n };\r\n }\r\n\r\n public componentDidUpdate(\r\n prevProps: Readonly<FormProps>,\r\n prevState: Readonly<FormState>,\r\n snapshot?: any\r\n ): void {\r\n if (\r\n this.state.contextState?.isFormValid !==\r\n prevState?.contextState?.isFormValid\r\n ) {\r\n const componentsWithErrors = this.state.contextState\r\n ? Object.keys(this.state.contextState.components)\r\n .map((key) => this.state.contextState.components[key])\r\n .filter((component) => {\r\n if (!component.validation.isValid && !component.validation.name) {\r\n console.warn(\r\n component,\r\n 'Has validation error. FormValidationSummary is present but the component has no validation name'\r\n );\r\n }\r\n return !component.validation.isValid;\r\n })\r\n : [];\r\n this.props.onValidChanged?.(\r\n this.state.contextState?.isFormValid,\r\n componentsWithErrors\r\n );\r\n }\r\n }\r\n\r\n public disableComponents() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach((key) => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.disableComponent &&\r\n component.componentApi.disableComponent();\r\n });\r\n }\r\n\r\n public enableComponents() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach((key) => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.enableComponent &&\r\n component.componentApi.enableComponent();\r\n });\r\n }\r\n\r\n public touchAll() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach((key) => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.touch &&\r\n component.componentApi.touch();\r\n });\r\n }\r\n\r\n public unTouchAll() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach((key) => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.unTouch &&\r\n component.componentApi.unTouch();\r\n });\r\n }\r\n\r\n public render() {\r\n return (\r\n <this.props.component\r\n {...(this.props.id && { id: this.props.id })}\r\n noValidate={true}\r\n role=\"form\"\r\n className={`input__form validation-form ${\r\n this.props.className ? this.props.className : ''\r\n }`}\r\n onSubmit={this.onSubmit}\r\n >\r\n <FormContextProvider value={this.mergeContext()}>\r\n {this.props.children}\r\n </FormContextProvider>\r\n </this.props.component>\r\n );\r\n }\r\n\r\n private mergeContext(): FormContextState {\r\n if (!this.props.extraComponents) {\r\n return this.state.contextState;\r\n }\r\n const isFormValid =\r\n this.state.contextState.isFormValid &&\r\n this.getIsFormValid(this.props.extraComponents);\r\n return {\r\n ...this.state.contextState,\r\n components: {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n },\r\n isFormValid,\r\n };\r\n }\r\n\r\n private onSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n this.props.onSubmit && this.props.onSubmit();\r\n };\r\n\r\n private subscribe(\r\n componentId: string,\r\n componentState: FormComponentContextState\r\n ) {\r\n if (componentId) {\r\n this.setState((previousState) => {\r\n let components = Object.assign(\r\n {},\r\n previousState.contextState.components\r\n );\r\n if (componentState) {\r\n components[componentId] = componentState;\r\n }\r\n let isFormValid = this.getIsFormValid(components);\r\n return {\r\n contextState: {\r\n ...previousState.contextState,\r\n components,\r\n isFormValid,\r\n },\r\n };\r\n });\r\n }\r\n }\r\n\r\n private unSubscribe(componentId: string) {\r\n if (componentId) {\r\n this.setState((previousState) => {\r\n let components = Object.assign(\r\n {},\r\n previousState.contextState.components\r\n );\r\n delete components[componentId];\r\n let isFormValid = this.getIsFormValid(components);\r\n return {\r\n contextState: {\r\n ...previousState.contextState,\r\n components,\r\n isFormValid,\r\n },\r\n };\r\n });\r\n }\r\n }\r\n\r\n private getIsFormValid(\r\n components: ComponentsDict = this.state.contextState.components,\r\n initialValid: boolean = true\r\n ): boolean {\r\n let isFormValid = initialValid;\r\n Object.keys(components).forEach((key) => {\r\n const component = components[key];\r\n if (component && component.validation && !component.validation.isValid) {\r\n isFormValid = false;\r\n }\r\n });\r\n return isFormValid;\r\n }\r\n\r\n private updateCallback(\r\n componentId: string,\r\n componentState: FormComponentValidationContextStateBase\r\n ) {\r\n this.setState((previousState) => {\r\n let components = Object.assign({}, previousState.contextState.components);\r\n const previousComponent = components[componentId];\r\n if (\r\n previousComponent.validation.isValid === componentState.isValid &&\r\n previousComponent.validation.errors?.length ===\r\n componentState.errors?.length &&\r\n previousComponent.validation.errors?.every(\r\n (error, index) => error === componentState.errors?.[index]\r\n )\r\n ) {\r\n return previousState;\r\n }\r\n if (componentState && previousComponent) {\r\n components[componentId] = {\r\n ...previousComponent,\r\n validation: {\r\n ...previousComponent.validation,\r\n ...componentState,\r\n },\r\n };\r\n }\r\n let isFormValid = this.getIsFormValid(components);\r\n return {\r\n contextState: {\r\n ...this.state.contextState,\r\n components,\r\n isFormValid,\r\n },\r\n };\r\n });\r\n }\r\n}\r\n\r\nexport default withThemeContext<FormProps, InstanceType<typeof Form>>(\r\n Form,\r\n 'form'\r\n);\r\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAGA,IAAAC,YAAA,GAAAD,OAAA;AAOA,IAAAE,iBAAA,GAAAF,OAAA;AAAqE,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAL,wBAAAS,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA;AAAA,SAAAI,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAArB,MAAA,CAAAqB,IAAA,CAAAF,MAAA,OAAAnB,MAAA,CAAAsB,qBAAA,QAAAC,OAAA,GAAAvB,MAAA,CAAAsB,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAzB,MAAA,CAAAE,wBAAA,CAAAiB,MAAA,EAAAM,GAAA,EAAAC,UAAA,OAAAL,IAAA,CAAAM,IAAA,CAAAV,KAAA,CAAAI,IAAA,EAAAE,OAAA,YAAAF,IAAA;AAAA,SAAAO,cAAAhB,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAK,OAAA,CAAAlB,MAAA,CAAAgB,MAAA,OAAAa,OAAA,WAAA1B,GAAA,IAAA2B,eAAA,CAAAlB,MAAA,EAAAT,GAAA,EAAAa,MAAA,CAAAb,GAAA,SAAAH,MAAA,CAAA+B,yBAAA,GAAA/B,MAAA,CAAAgC,gBAAA,CAAApB,MAAA,EAAAZ,MAAA,CAAA+B,yBAAA,CAAAf,MAAA,KAAAE,OAAA,CAAAlB,MAAA,CAAAgB,MAAA,GAAAa,OAAA,WAAA1B,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAW,MAAA,EAAAT,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAc,MAAA,EAAAb,GAAA,iBAAAS,MAAA;AAAA,SAAAkB,gBAAAtC,GAAA,EAAAW,GAAA,EAAA8B,KAAA,IAAA9B,GAAA,GAAA+B,cAAA,CAAA/B,GAAA,OAAAA,GAAA,IAAAX,GAAA,IAAAQ,MAAA,CAAAC,cAAA,CAAAT,GAAA,EAAAW,GAAA,IAAA8B,KAAA,EAAAA,KAAA,EAAAP,UAAA,QAAAS,YAAA,QAAAC,QAAA,oBAAA5C,GAAA,CAAAW,GAAA,IAAA8B,KAAA,WAAAzC,GAAA;AAAA,SAAA0C,eAAAG,GAAA,QAAAlC,GAAA,GAAAmC,YAAA,CAAAD,GAAA,2BAAAlC,GAAA,gBAAAA,GAAA,GAAAoC,MAAA,CAAApC,GAAA;AAAA,SAAAmC,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAApC,IAAA,CAAAkC,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA,KAXpE;AAGD;AA8BO,MAAMS,IAAI,SAASnE,KAAK,CAACoE,aAAa,CAAuB;EAOlEC,WAAWA,CAACC,KAAgB,EAAE;IAC5B,KAAK,CAACA,KAAK,CAAC;IAAC,KA2IPC,QAAQ,GAAIC,CAAkB,IAAK;MACzCA,CAAC,CAACC,cAAc,CAAC,CAAC;MAClB,IAAI,CAACH,KAAK,CAACC,QAAQ,IAAI,IAAI,CAACD,KAAK,CAACC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IA7IC,IAAI,CAACG,SAAS,GAAG,IAAI,CAACA,SAAS,CAAC7C,IAAI,CAAC,IAAI,CAAC;IAC1C,IAAI,CAAC8C,WAAW,GAAG,IAAI,CAACA,WAAW,CAAC9C,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAAC+C,cAAc,GAAG,IAAI,CAACA,cAAc,CAAC/C,IAAI,CAAC,IAAI,CAAC;IACpD,IAAI,CAACgD,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAAChD,IAAI,CAAC,IAAI,CAAC;IAC1D,IAAI,CAACiD,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACjD,IAAI,CAAC,IAAI,CAAC;IACxD,IAAI,CAACkD,KAAK,GAAG;MACXC,YAAY,EAAE;QACZN,SAAS,EAAE,IAAI,CAACA,SAAS;QACzBC,WAAW,EAAE,IAAI,CAACA,WAAW;QAC7BM,WAAW,EAAE,IAAI;QACjBL,cAAc,EAAE,IAAI,CAACA,cAAc;QACnCC,iBAAiB,EAAE,IAAI,CAACA,iBAAiB;QACzCC,gBAAgB,EAAE,IAAI,CAACA,gBAAgB;QACvCI,UAAU,EAAE,CAAC;MACf;IACF,CAAC;EACH;EAEOC,kBAAkBA,CACvBC,SAA8B,EAC9BC,SAA8B,EAC9BC,QAAc,EACR;IAAA,IAAAC,qBAAA,EAAAC,qBAAA;IACN,IACE,EAAAD,qBAAA,OAAI,CAACR,KAAK,CAACC,YAAY,cAAAO,qBAAA,uBAAvBA,qBAAA,CAAyBN,WAAW,OACpCI,SAAS,aAATA,SAAS,wBAAAG,qBAAA,GAATH,SAAS,CAAEL,YAAY,cAAAQ,qBAAA,uBAAvBA,qBAAA,CAAyBP,WAAW,GACpC;MAAA,IAAAQ,qBAAA,EAAAC,WAAA,EAAAC,sBAAA;MACA,MAAMC,oBAAoB,GAAG,IAAI,CAACb,KAAK,CAACC,YAAY,GAChD9D,MAAM,CAACqB,IAAI,CAAC,IAAI,CAACwC,KAAK,CAACC,YAAY,CAACE,UAAU,CAAC,CAC5CW,GAAG,CAAExE,GAAG,IAAK,IAAI,CAAC0D,KAAK,CAACC,YAAY,CAACE,UAAU,CAAC7D,GAAG,CAAC,CAAC,CACrDqB,MAAM,CAAEoD,SAAS,IAAK;QACrB,IAAI,CAACA,SAAS,CAACC,UAAU,CAACC,OAAO,IAAI,CAACF,SAAS,CAACC,UAAU,CAACE,IAAI,EAAE;UAC/DC,OAAO,CAACC,IAAI,CACVL,SAAS,EACT,iGACF,CAAC;QACH;QACA,OAAO,CAACA,SAAS,CAACC,UAAU,CAACC,OAAO;MACtC,CAAC,CAAC,GACJ,EAAE;MACN,CAAAP,qBAAA,IAAAC,WAAA,OAAI,CAACpB,KAAK,EAAC8B,cAAc,cAAAX,qBAAA,uBAAzBA,qBAAA,CAAAjE,IAAA,CAAAkE,WAAA,GAAAC,sBAAA,GACE,IAAI,CAACZ,KAAK,CAACC,YAAY,cAAAW,sBAAA,uBAAvBA,sBAAA,CAAyBV,WAAW,EACpCW,oBACF,CAAC;IACH;EACF;EAEOf,iBAAiBA,CAAA,EAAG;IACzB,MAAMK,UAAU,GAAApC,aAAA,CAAAA,aAAA,KACX,IAAI,CAACiC,KAAK,CAACC,YAAY,CAACE,UAAU,GAClC,IAAI,CAACZ,KAAK,CAAC+B,eAAe,CAC9B;IACDnF,MAAM,CAACqB,IAAI,CAAC2C,UAAU,CAAC,CAACnC,OAAO,CAAE1B,GAAG,IAAK;MACvC,MAAMyE,SAAS,GAAGZ,UAAU,CAAC7D,GAAG,CAAC;MACjCyE,SAAS,IACPA,SAAS,CAACQ,YAAY,IACtBR,SAAS,CAACQ,YAAY,CAACC,gBAAgB,IACvCT,SAAS,CAACQ,YAAY,CAACC,gBAAgB,CAAC,CAAC;IAC7C,CAAC,CAAC;EACJ;EAEOzB,gBAAgBA,CAAA,EAAG;IACxB,MAAMI,UAAU,GAAApC,aAAA,CAAAA,aAAA,KACX,IAAI,CAACiC,KAAK,CAACC,YAAY,CAACE,UAAU,GAClC,IAAI,CAACZ,KAAK,CAAC+B,eAAe,CAC9B;IACDnF,MAAM,CAACqB,IAAI,CAAC2C,UAAU,CAAC,CAACnC,OAAO,CAAE1B,GAAG,IAAK;MACvC,MAAMyE,SAAS,GAAGZ,UAAU,CAAC7D,GAAG,CAAC;MACjCyE,SAAS,IACPA,SAAS,CAACQ,YAAY,IACtBR,SAAS,CAACQ,YAAY,CAACE,eAAe,IACtCV,SAAS,CAACQ,YAAY,CAACE,eAAe,CAAC,CAAC;IAC5C,CAAC,CAAC;EACJ;EAEOC,QAAQA,CAAA,EAAG;IAChB,MAAMvB,UAAU,GAAApC,aAAA,CAAAA,aAAA,KACX,IAAI,CAACiC,KAAK,CAACC,YAAY,CAACE,UAAU,GAClC,IAAI,CAACZ,KAAK,CAAC+B,eAAe,CAC9B;IACDnF,MAAM,CAACqB,IAAI,CAAC2C,UAAU,CAAC,CAACnC,OAAO,CAAE1B,GAAG,IAAK;MACvC,MAAMyE,SAAS,GAAGZ,UAAU,CAAC7D,GAAG,CAAC;MACjCyE,SAAS,IACPA,SAAS,CAACQ,YAAY,IACtBR,SAAS,CAACQ,YAAY,CAACI,KAAK,IAC5BZ,SAAS,CAACQ,YAAY,CAACI,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC;EACJ;EAEOC,UAAUA,CAAA,EAAG;IAClB,MAAMzB,UAAU,GAAApC,aAAA,CAAAA,aAAA,KACX,IAAI,CAACiC,KAAK,CAACC,YAAY,CAACE,UAAU,GAClC,IAAI,CAACZ,KAAK,CAAC+B,eAAe,CAC9B;IACDnF,MAAM,CAACqB,IAAI,CAAC2C,UAAU,CAAC,CAACnC,OAAO,CAAE1B,GAAG,IAAK;MACvC,MAAMyE,SAAS,GAAGZ,UAAU,CAAC7D,GAAG,CAAC;MACjCyE,SAAS,IACPA,SAAS,CAACQ,YAAY,IACtBR,SAAS,CAACQ,YAAY,CAACM,OAAO,IAC9Bd,SAAS,CAACQ,YAAY,CAACM,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC;EACJ;EAEOC,MAAMA,CAAA,EAAG;IACd,oBACE7G,KAAA,CAAA8G,aAAA,MAAMxC,KAAK,CAACwB,SAAS,EAAAnE,QAAA,KACd,IAAI,CAAC2C,KAAK,CAACyC,EAAE,IAAI;MAAEA,EAAE,EAAE,IAAI,CAACzC,KAAK,CAACyC;IAAG,CAAC;MAC3CC,UAAU,EAAE,IAAK;MACjBC,IAAI,EAAC,MAAM;MACXC,SAAS,EAAG,+BACV,IAAI,CAAC5C,KAAK,CAAC4C,SAAS,GAAG,IAAI,CAAC5C,KAAK,CAAC4C,SAAS,GAAG,EAC/C,EAAE;MACH3C,QAAQ,EAAE,IAAI,CAACA;IAAS,iBAExBvE,KAAA,CAAA8G,aAAA,CAAC3G,YAAA,CAAAgH,mBAAmB;MAAChE,KAAK,EAAE,IAAI,CAACiE,YAAY,CAAC;IAAE,GAC7C,IAAI,CAAC9C,KAAK,CAAC+C,QACO,CACD,CAAC;EAE3B;EAEQD,YAAYA,CAAA,EAAqB;IACvC,IAAI,CAAC,IAAI,CAAC9C,KAAK,CAAC+B,eAAe,EAAE;MAC/B,OAAO,IAAI,CAACtB,KAAK,CAACC,YAAY;IAChC;IACA,MAAMC,WAAW,GACf,IAAI,CAACF,KAAK,CAACC,YAAY,CAACC,WAAW,IACnC,IAAI,CAACqC,cAAc,CAAC,IAAI,CAAChD,KAAK,CAAC+B,eAAe,CAAC;IACjD,OAAAvD,aAAA,CAAAA,aAAA,KACK,IAAI,CAACiC,KAAK,CAACC,YAAY;MAC1BE,UAAU,EAAApC,aAAA,CAAAA,aAAA,KACL,IAAI,CAACiC,KAAK,CAACC,YAAY,CAACE,UAAU,GAClC,IAAI,CAACZ,KAAK,CAAC+B,eAAe,CAC9B;MACDpB;IAAW;EAEf;EAOQP,SAASA,CACf6C,WAAmB,EACnBC,cAAyC,EACzC;IACA,IAAID,WAAW,EAAE;MACf,IAAI,CAACE,QAAQ,CAAEC,aAAa,IAAK;QAC/B,IAAIxC,UAAU,GAAGhE,MAAM,CAACU,MAAM,CAC5B,CAAC,CAAC,EACF8F,aAAa,CAAC1C,YAAY,CAACE,UAC7B,CAAC;QACD,IAAIsC,cAAc,EAAE;UAClBtC,UAAU,CAACqC,WAAW,CAAC,GAAGC,cAAc;QAC1C;QACA,IAAIvC,WAAW,GAAG,IAAI,CAACqC,cAAc,CAACpC,UAAU,CAAC;QACjD,OAAO;UACLF,YAAY,EAAAlC,aAAA,CAAAA,aAAA,KACP4E,aAAa,CAAC1C,YAAY;YAC7BE,UAAU;YACVD;UAAW;QAEf,CAAC;MACH,CAAC,CAAC;IACJ;EACF;EAEQN,WAAWA,CAAC4C,WAAmB,EAAE;IACvC,IAAIA,WAAW,EAAE;MACf,IAAI,CAACE,QAAQ,CAAEC,aAAa,IAAK;QAC/B,IAAIxC,UAAU,GAAGhE,MAAM,CAACU,MAAM,CAC5B,CAAC,CAAC,EACF8F,aAAa,CAAC1C,YAAY,CAACE,UAC7B,CAAC;QACD,OAAOA,UAAU,CAACqC,WAAW,CAAC;QAC9B,IAAItC,WAAW,GAAG,IAAI,CAACqC,cAAc,CAACpC,UAAU,CAAC;QACjD,OAAO;UACLF,YAAY,EAAAlC,aAAA,CAAAA,aAAA,KACP4E,aAAa,CAAC1C,YAAY;YAC7BE,UAAU;YACVD;UAAW;QAEf,CAAC;MACH,CAAC,CAAC;IACJ;EACF;EAEQqC,cAAcA,CAAA,EAGX;IAAA,IAFTpC,UAA0B,GAAAlD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA+B,SAAA,GAAA/B,SAAA,MAAG,IAAI,CAAC+C,KAAK,CAACC,YAAY,CAACE,UAAU;IAAA,IAC/DyC,YAAqB,GAAA3F,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA+B,SAAA,GAAA/B,SAAA,MAAG,IAAI;IAE5B,IAAIiD,WAAW,GAAG0C,YAAY;IAC9BzG,MAAM,CAACqB,IAAI,CAAC2C,UAAU,CAAC,CAACnC,OAAO,CAAE1B,GAAG,IAAK;MACvC,MAAMyE,SAAS,GAAGZ,UAAU,CAAC7D,GAAG,CAAC;MACjC,IAAIyE,SAAS,IAAIA,SAAS,CAACC,UAAU,IAAI,CAACD,SAAS,CAACC,UAAU,CAACC,OAAO,EAAE;QACtEf,WAAW,GAAG,KAAK;MACrB;IACF,CAAC,CAAC;IACF,OAAOA,WAAW;EACpB;EAEQL,cAAcA,CACpB2C,WAAmB,EACnBC,cAAuD,EACvD;IACA,IAAI,CAACC,QAAQ,CAAEC,aAAa,IAAK;MAAA,IAAAE,qBAAA,EAAAC,qBAAA,EAAAC,sBAAA;MAC/B,IAAI5C,UAAU,GAAGhE,MAAM,CAACU,MAAM,CAAC,CAAC,CAAC,EAAE8F,aAAa,CAAC1C,YAAY,CAACE,UAAU,CAAC;MACzE,MAAM6C,iBAAiB,GAAG7C,UAAU,CAACqC,WAAW,CAAC;MACjD,IACEQ,iBAAiB,CAAChC,UAAU,CAACC,OAAO,KAAKwB,cAAc,CAACxB,OAAO,IAC/D,EAAA4B,qBAAA,GAAAG,iBAAiB,CAAChC,UAAU,CAACiC,MAAM,cAAAJ,qBAAA,uBAAnCA,qBAAA,CAAqC3F,MAAM,QAAA4F,qBAAA,GACzCL,cAAc,CAACQ,MAAM,cAAAH,qBAAA,uBAArBA,qBAAA,CAAuB5F,MAAM,MAAA6F,sBAAA,GAC/BC,iBAAiB,CAAChC,UAAU,CAACiC,MAAM,cAAAF,sBAAA,eAAnCA,sBAAA,CAAqCG,KAAK,CACxC,CAACC,KAAK,EAAEC,KAAK;QAAA,IAAAC,sBAAA;QAAA,OAAKF,KAAK,OAAAE,sBAAA,GAAKZ,cAAc,CAACQ,MAAM,cAAAI,sBAAA,uBAArBA,sBAAA,CAAwBD,KAAK,CAAC;MAAA,CAC5D,CAAC,EACD;QACA,OAAOT,aAAa;MACtB;MACA,IAAIF,cAAc,IAAIO,iBAAiB,EAAE;QACvC7C,UAAU,CAACqC,WAAW,CAAC,GAAAzE,aAAA,CAAAA,aAAA,KAClBiF,iBAAiB;UACpBhC,UAAU,EAAAjD,aAAA,CAAAA,aAAA,KACLiF,iBAAiB,CAAChC,UAAU,GAC5ByB,cAAc;QAClB,EACF;MACH;MACA,IAAIvC,WAAW,GAAG,IAAI,CAACqC,cAAc,CAACpC,UAAU,CAAC;MACjD,OAAO;QACLF,YAAY,EAAAlC,aAAA,CAAAA,aAAA,KACP,IAAI,CAACiC,KAAK,CAACC,YAAY;UAC1BE,UAAU;UACVD;QAAW;MAEf,CAAC;IACH,CAAC,CAAC;EACJ;AACF;AAACoD,OAAA,CAAAlE,IAAA,GAAAA,IAAA;AAvPYA,IAAI,CACDmE,YAAY,GAAG;EAC3BtB,UAAU,EAAE,KAAK;EACjBuB,aAAa,EAAE,IAAI;EACnBzC,SAAS,EAAE;AACb,CAAC;AAAA,IAAA0C,QAAA,GAoPY,IAAAC,kCAAgB,EAC7BtE,IAAI,EACJ,MACF,CAAC;AAAAkE,OAAA,CAAAzH,OAAA,GAAA4H,QAAA"}
@@ -1,10 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import { ValidationError, ComponentApi } from '../base/input';
3
- import { DeepPartial, PartialBy } from '../utils/Typescript';
3
+ import { PartialBy } from '../utils/Typescript';
4
4
  export type OmitFormContext<P extends FormContextProps> = PartialBy<P, 'formContext'>;
5
- export interface FormComponentValidationContextState {
5
+ export interface FormComponentValidationContextStateBase {
6
6
  isValid: boolean;
7
7
  errors: ValidationError[];
8
+ }
9
+ export interface FormComponentValidationContextState extends FormComponentValidationContextStateBase {
8
10
  name: JSX.Element | string;
9
11
  }
10
12
  export interface FormComponentContextState {
@@ -21,7 +23,7 @@ export interface FormContextState {
21
23
  subscribe: (componentId: string, componentState: FormComponentContextState) => void;
22
24
  unSubscribe: (componentId: string) => void;
23
25
  isFormValid: boolean;
24
- updateCallback: (componentId: string, newComponentState: DeepPartial<FormComponentContextState>) => void;
26
+ updateCallback: (componentId: string, newComponentState: FormComponentValidationContextStateBase) => void;
25
27
  disableComponents: () => void;
26
28
  enableComponents: () => void;
27
29
  components: ComponentsDict;
@@ -1 +1 @@
1
- {"version":3,"file":"FormContext.js","names":["React","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","FormContext","createContext","undefined","FormContextProvider","Provider","exports","FormContextConsumer","Consumer"],"sources":["../../../src/lib/components/form/FormContext.ts"],"sourcesContent":["import * as React from 'react';\r\nimport { ValidationError, ComponentApi } from '../base/input';\r\nimport { DeepPartial, PartialBy } from '../utils/Typescript';\r\n\r\nexport type OmitFormContext<P extends FormContextProps> = PartialBy<\r\n P,\r\n 'formContext'\r\n>;\r\n\r\nexport interface FormComponentValidationContextState {\r\n isValid: boolean;\r\n errors: ValidationError[];\r\n name: JSX.Element | string;\r\n}\r\n\r\nexport interface FormComponentContextState {\r\n validation: FormComponentValidationContextState;\r\n componentApi: ComponentApi;\r\n}\r\n\r\nexport interface FormContextProps {\r\n formContext?: FormContextState;\r\n}\r\n\r\nexport type ComponentsDict = {\r\n [componentId: string]: FormComponentContextState;\r\n};\r\n\r\nexport interface FormContextState {\r\n subscribe: (\r\n componentId: string,\r\n componentState: FormComponentContextState\r\n ) => void;\r\n unSubscribe: (componentId: string) => void;\r\n isFormValid: boolean;\r\n updateCallback: (\r\n componentId: string,\r\n newComponentState: DeepPartial<FormComponentContextState>\r\n ) => void;\r\n disableComponents: () => void;\r\n enableComponents: () => void;\r\n components: ComponentsDict;\r\n}\r\n\r\nconst FormContext = React.createContext<FormContextState | undefined>(\r\n undefined\r\n);\r\nexport const FormContextProvider = FormContext.Provider;\r\nexport const FormContextConsumer = FormContext.Consumer;\r\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA+B,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AA4C/B,MAAMW,WAAW,gBAAGzB,KAAK,CAAC0B,aAAa,CACrCC,SACF,CAAC;AACM,MAAMC,mBAAmB,GAAGH,WAAW,CAACI,QAAQ;AAACC,OAAA,CAAAF,mBAAA,GAAAA,mBAAA;AACjD,MAAMG,mBAAmB,GAAGN,WAAW,CAACO,QAAQ;AAACF,OAAA,CAAAC,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"file":"FormContext.js","names":["React","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","FormContext","createContext","undefined","FormContextProvider","Provider","exports","FormContextConsumer","Consumer"],"sources":["../../../src/lib/components/form/FormContext.ts"],"sourcesContent":["import * as React from 'react';\r\nimport { ValidationError, ComponentApi } from '../base/input';\r\nimport { PartialBy } from '../utils/Typescript';\r\n\r\nexport type OmitFormContext<P extends FormContextProps> = PartialBy<\r\n P,\r\n 'formContext'\r\n>;\r\n\r\nexport interface FormComponentValidationContextStateBase {\r\n isValid: boolean;\r\n errors: ValidationError[];\r\n}\r\n\r\nexport interface FormComponentValidationContextState\r\n extends FormComponentValidationContextStateBase {\r\n name: JSX.Element | string;\r\n}\r\n\r\nexport interface FormComponentContextState {\r\n validation: FormComponentValidationContextState;\r\n componentApi: ComponentApi;\r\n}\r\n\r\nexport interface FormContextProps {\r\n formContext?: FormContextState;\r\n}\r\n\r\nexport type ComponentsDict = {\r\n [componentId: string]: FormComponentContextState;\r\n};\r\n\r\nexport interface FormContextState {\r\n subscribe: (\r\n componentId: string,\r\n componentState: FormComponentContextState\r\n ) => void;\r\n unSubscribe: (componentId: string) => void;\r\n isFormValid: boolean;\r\n updateCallback: (\r\n componentId: string,\r\n newComponentState: FormComponentValidationContextStateBase\r\n ) => void;\r\n disableComponents: () => void;\r\n enableComponents: () => void;\r\n components: ComponentsDict;\r\n}\r\n\r\nconst FormContext = React.createContext<FormContextState | undefined>(\r\n undefined\r\n);\r\nexport const FormContextProvider = FormContext.Provider;\r\nexport const FormContextConsumer = FormContext.Consumer;\r\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA+B,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAgD/B,MAAMW,WAAW,gBAAGzB,KAAK,CAAC0B,aAAa,CACrCC,SACF,CAAC;AACM,MAAMC,mBAAmB,GAAGH,WAAW,CAACI,QAAQ;AAACC,OAAA,CAAAF,mBAAA,GAAAA,mBAAA;AACjD,MAAMG,mBAAmB,GAAGN,WAAW,CAACO,QAAQ;AAACF,OAAA,CAAAC,mBAAA,GAAAA,mBAAA"}
@@ -95,7 +95,9 @@ export declare class TagsRaw<IdT extends number | string = number, T extends Res
95
95
  private tagRemoveClick;
96
96
  }
97
97
  interface TagsFinal {
98
- <IdT extends number | string = number, T extends ResourceTConstraint<IdT> = Tag<IdT>>(item: TagsProps<IdT, T>): React.ReactElement;
98
+ <IdT extends number | string = number, T extends ResourceTConstraint<IdT> = Tag<IdT>>(item: TagsProps<IdT, T> & {
99
+ ref?: React.Ref<TagsRaw<IdT, T>>;
100
+ }): React.ReactElement;
99
101
  defaultProps?: Partial<TagsProps<any, any>>;
100
102
  }
101
103
  export declare const Tags: TagsFinal;
@@ -1 +1 @@
1
- {"version":3,"file":"Tags.js","names":["React","_interopRequireWildcard","require","_InputGroup","_Text","_BaseInput","_Button","_TagsSuggestions","_interopRequireDefault","_withFormContext","_classnames","_withThemeContext","_LinearProgress","_Portal","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","PlusIcon","props","createElement","d","defaultProps","xmlns","width","height","viewBox","LeftArrowIcon","defaultTagsTranslations","defaultBaseTranslations","addNew","valueNotAddedError","maxTagsSurpassedError","waitingForMoreInputComponent","suggestionsEmptyComponent","suggestionsEmptyAllowNewComponent","exports","TagButtonComponent","p","className","id","onClick","children","TagsRaw","BaseInput","constructor","_this","this","textRef","suggestionsRef","isMobile","onTextErrorsChanged","textErrors","setState","handleErrors","onFocus","_this$props$onFocus","_this$props","state","suggestionsVisible","_this$props$onSuggest","_this$props2","onSuggestionsOpened","fetchExistingTags","textIsFocused","touched","showMobileVersion","mobileVersionEnabled","setTimeout","_this$textRef$current","current","focus","onKeyDown","suggestions","e","preselectedSuggestion","preventDefault","stopPropagation","existingTag","existingTags","find","et","getName","onTagsChanged","tags","concat","allowNew","addNewTag","newTag","onNewTagAdded","closeSuggestionsAfterCreate","onSuggestionSelected","tag","lastSelected","newTags","isMax","maxTags","finalValue","_this$textRef$current2","onBlur","_this$props$onBlur","_this$props3","onTextChanged","isValid","textIsValid","errors","getErrors","setInvalid","setValid","tagClick","onTagClick","tagRemoveClick","_this$textRef$current3","sv","fetchingExistingTags","fetchedExistingTags","createRef","handleClickOutside","handleLeaveMobileClick","_require","componentDidUpdate","oldProps","validators","customValidators","required","_this$containerRef$cu","_this$containerRef$cu2","containerRef","querySelector","contains","_this$props$onSuggest2","_this$props4","onSuggestionsClosed","addNewOnBlur","getSuggestions","existing","s","componentDidMount","document","addEventListener","componentWillUnmount","removeEventListener","render","translations","getTranslations","textProps","LeaveMobileButton","Button","noShadow","unobtrusive","showInput","Boolean","readOnly","container","body","disablePortal","InputGroup","title","tooltip","classNames","getValidationClass","placeholder","ref","map","item","index","renderTag","readonlyEmptyPlaceholder","Text","showClearButton","onErrorsChanged","onChange","showValidation","ignoreContext","before","showSuggestions","tagsSuggestionsClassName","innerRef","anchorEl","loading","isLoading","LoadingComponent","suggestionsLoadingComponent","isVisible","EmptyComponent","EmptyAllowNewComponent","WaitingForMoreInputComponent","isWaitingForMoreInput","minLettersToFetch","onSelected","AddNewTagComponent","dropdown","SuggestionTag","popperProps","renderDefaultValidation","label","renderLabel","startsWith","timer","loadingDelayMs","then","clearTimeout","filteredTags","filterExistingTags","toLowerCase","allowSameTagMultipleTimes","some","t","slice","maxSuggestions","Fragment","toString","circular","blank","Component","preventsDefault","showChips","small","disabled","newTagName","Promise","resolve","name","Date","getTime","text","Tags","withThemeContext","withFormContext","_default"],"sources":["../../../src/lib/components/tags/Tags.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\nimport { InputGroup } from '../inputGroup/InputGroup';\r\nimport { Text, TextProps, TextRaw } from '../text/Text';\r\nimport * as PlusIcon from 'material-design-icons/content/svg/production/ic_add_circle_outline_24px.svg';\r\nimport * as LeftArrowIcon from 'material-design-icons/navigation/svg/production/ic_arrow_back_24px.svg';\r\nimport {\r\n BaseInputProps,\r\n BaseInputState,\r\n BaseInput,\r\n ValidationError,\r\n defaultBaseTranslations,\r\n} from '../base/input/BaseInput';\r\nimport { Button, ButtonComponentProps } from '../button/Button';\r\nimport TagsSuggestions, {\r\n RenderSuggestionTagProps,\r\n} from './subComponents/TagsSuggestions';\r\nimport { withFormContext } from '../form/withFormContext';\r\nimport classNames from 'classnames';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\nimport { PopperProps } from '@mui/material/Popper/Popper';\r\nimport LinearProgress from '@mui/material/LinearProgress';\r\nimport Portal from '@mui/material/Portal';\r\n\r\n// Misc\r\nexport type Tag<T extends number | string = number> = {\r\n id: T;\r\n name: string;\r\n};\r\n\r\nexport type ResourceTConstraint<IdT extends number | string> = { id: IdT };\r\n\r\nexport const defaultTagsTranslations = {\r\n ...defaultBaseTranslations,\r\n addNew: 'Add new',\r\n valueNotAddedError: 'You forgot to add tag',\r\n maxTagsSurpassedError: 'Maximum number of tags surpassed',\r\n waitingForMoreInputComponent: 'Waiting for more input...',\r\n suggestionsEmptyComponent: 'No existing tags...',\r\n suggestionsEmptyAllowNewComponent: 'Type to create...',\r\n};\r\n\r\nexport type TagsTranslations = Partial<typeof defaultTagsTranslations>;\r\n\r\nexport type TagsProps<\r\n IdT extends number | string = number,\r\n T extends ResourceTConstraint<IdT> = Tag<IdT>\r\n> = {\r\n className?: string;\r\n tagsSuggestionsClassName?: string;\r\n disabled?: boolean;\r\n tags: T[];\r\n existingTags?: T[];\r\n fetchExistingTags?: (text: string) => Promise<T[]>;\r\n onTagsChanged: (newTags: T[]) => void;\r\n onNewTagAdded?: (newTagName: string) => Promise<T>;\r\n onTagClick?: (tag: T) => void;\r\n showChips?: boolean;\r\n allowNew?: boolean;\r\n addNewOnBlur?: boolean;\r\n textProps?: TextProps;\r\n readOnly?: boolean;\r\n readonlyEmptyPlaceholder?: string;\r\n maxTags?: number;\r\n valueNotAddedError?: string | JSX.Element;\r\n maxTagsSurpassedError?: string | JSX.Element;\r\n showSuggestions?: boolean;\r\n suggestionsLoadingComponent?: string | JSX.Element;\r\n suggestionsEmptyComponent?: string | JSX.Element | null;\r\n suggestionsEmptyAllowNewComponent?: string | JSX.Element | null;\r\n waitingForMoreInputComponent?: string | JSX.Element;\r\n loadingDelayMs?: number;\r\n filterExistingTags?: (text: string, existingTags: T[]) => T[];\r\n allowSameTagMultipleTimes?: boolean;\r\n maxSuggestions?: number;\r\n popperProps?: Partial<PopperProps>;\r\n minLettersToFetch?: number;\r\n mobileVersionEnabled?: boolean;\r\n isLoading?: boolean;\r\n closeSuggestionsAfterCreate?: boolean;\r\n SuggestionTag?: React.ComponentType<RenderSuggestionTagProps<IdT, T>>;\r\n getName?: (tag: T) => string;\r\n} & BaseInputProps<HTMLInputElement, TagsTranslations>;\r\n\r\nexport interface TagsState<\r\n IdT extends number | string = number,\r\n T extends ResourceTConstraint<IdT> = Tag<IdT>\r\n> extends BaseInputState {\r\n textIsFocused: boolean;\r\n textErrors: ValidationError[];\r\n textIsValid: boolean;\r\n suggestionsVisible: boolean;\r\n fetchedExistingTags: T[];\r\n fetchingExistingTags: boolean;\r\n preselectedSuggestion?: number;\r\n}\r\n\r\ntype InjectedProps = {};\r\n\r\nconst TagButtonComponent: React.FC<ButtonComponentProps> = (p) => (\r\n <a className={p.className} id={p.id} onClick={p.onClick}>\r\n {p.children}\r\n </a>\r\n);\r\n\r\nexport class TagsRaw<\r\n IdT extends number | string = number,\r\n T extends ResourceTConstraint<IdT> = Tag<IdT>\r\n> extends BaseInput<\r\n TagsProps<IdT, T> & InjectedProps,\r\n TagsState<IdT, T>,\r\n HTMLInputElement,\r\n TagsTranslations\r\n> {\r\n public static defaultProps: TagsProps = {\r\n ...BaseInput.defaultProps,\r\n disabled: false,\r\n className: '',\r\n tags: [],\r\n existingTags: [],\r\n maxTags: 1000,\r\n onTagsChanged: () => undefined,\r\n onNewTagAdded: (newTagName) =>\r\n Promise.resolve({ name: newTagName, id: new Date().getTime() }),\r\n showSuggestions: true,\r\n suggestionsLoadingComponent: (\r\n <LinearProgress className=\"tags-input__suggestions__defaultLoading\" />\r\n ),\r\n loadingDelayMs: 0,\r\n filterExistingTags: (text, tags) =>\r\n tags.filter((tag) => tag.name && tag.name.toLowerCase().startsWith(text)),\r\n maxSuggestions: 5,\r\n addNewOnBlur: false,\r\n translations: defaultTagsTranslations,\r\n minLettersToFetch: 0,\r\n mobileVersionEnabled: true,\r\n closeSuggestionsAfterCreate: false,\r\n getName: (tag) => tag.name,\r\n };\r\n\r\n private textRef: React.RefObject<TextRaw>;\r\n private suggestionsRef: React.RefObject<HTMLDivElement>;\r\n private isMobile: boolean = false;\r\n\r\n constructor(props: TagsProps<IdT, T> & InjectedProps) {\r\n super(props);\r\n this.state = {\r\n ...this.state,\r\n textErrors: [],\r\n textIsFocused: false,\r\n suggestionsVisible: false,\r\n fetchingExistingTags: false,\r\n textIsValid: false,\r\n fetchedExistingTags: [],\r\n };\r\n this.textRef = React.createRef();\r\n this.suggestionsRef = React.createRef();\r\n this.handleClickOutside = this.handleClickOutside.bind(this);\r\n this.handleLeaveMobileClick = this.handleLeaveMobileClick.bind(this);\r\n if (props.mobileVersionEnabled) {\r\n this.isMobile = require('react-device-detect')?.isMobile;\r\n }\r\n }\r\n\r\n public focus() {\r\n if (this.textRef.current) {\r\n this.textRef.current.focus();\r\n }\r\n }\r\n\r\n public componentDidUpdate(oldProps: TagsProps<IdT, T> & InjectedProps) {\r\n if (\r\n oldProps.tags !== this.props.tags ||\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.handleErrors(this.props.tags);\r\n }\r\n }\r\n\r\n public handleLeaveMobileClick() {\r\n this.setState({\r\n textIsFocused: false,\r\n suggestionsVisible: false,\r\n preselectedSuggestion: undefined,\r\n });\r\n }\r\n\r\n public handleClickOutside(e: MouseEvent) {\r\n if (\r\n !this.containerRef.current ||\r\n this.containerRef.current\r\n .querySelector('.tags-input__tag__wrapper')\r\n ?.contains(e.target as HTMLDivElement) ||\r\n this.containerRef.current\r\n .querySelector('.tags-input__text-input')\r\n ?.contains(e.target as HTMLDivElement) ||\r\n !this.suggestionsRef.current ||\r\n this.suggestionsRef.current.contains(e.target as HTMLDivElement)\r\n ) {\r\n return;\r\n }\r\n if (this.state.suggestionsVisible) {\r\n this.props.onSuggestionsClosed?.();\r\n }\r\n this.setState({\r\n suggestionsVisible: false,\r\n preselectedSuggestion: undefined,\r\n });\r\n if (this.props.addNewOnBlur && this.state.value) {\r\n const suggestions = this.getSuggestions();\r\n const existing = suggestions.find(\r\n (s) => this.props.getName(s) === this.state.value\r\n );\r\n if (existing) {\r\n this.onSuggestionSelected(existing, suggestions.length === 1);\r\n } else if (this.props.allowNew) {\r\n this.addNewTag();\r\n }\r\n } /* else if (this.state.value) {\r\n this.setState({ value: '' });\r\n }*/\r\n }\r\n\r\n public componentDidMount() {\r\n document.addEventListener('mousedown', this.handleClickOutside);\r\n document.addEventListener('touchstart', this.handleClickOutside);\r\n this.handleErrors(this.props.tags);\r\n }\r\n\r\n public componentWillUnmount() {\r\n document.removeEventListener('mousedown', this.handleClickOutside);\r\n document.removeEventListener('touchstart', this.handleClickOutside);\r\n super.componentWillUnmount();\r\n }\r\n\r\n public render() {\r\n const translations = this.getTranslations(defaultTagsTranslations);\r\n const textProps = this.props.textProps ? this.props.textProps : {};\r\n const suggestions = this.getSuggestions();\r\n const showMobileVersion =\r\n this.props.mobileVersionEnabled &&\r\n this.isMobile &&\r\n (this.state.textIsFocused || this.state.suggestionsVisible);\r\n const LeaveMobileButton = showMobileVersion ? (\r\n <Button\r\n className=\"tags-input__leaveMobileTagsButton line-height--0\"\r\n onClick={this.handleLeaveMobileClick}\r\n noShadow={true}\r\n unobtrusive={true}\r\n >\r\n <LeftArrowIcon />\r\n </Button>\r\n ) : undefined;\r\n const showInput = Boolean(\r\n (!this.props.maxTags ||\r\n this.props.maxTags > (this.props.tags && this.props.tags.length)) &&\r\n !this.props.readOnly\r\n );\r\n return (\r\n <Portal container={document.body} disablePortal={!showMobileVersion}>\r\n <InputGroup title={this.props.title} tooltip={this.props.tooltip}>\r\n <div\r\n {...(this.props.id && {\r\n id: this.props.id,\r\n })}\r\n className={classNames(\r\n 'input__base tags-input',\r\n this.getValidationClass(),\r\n this.props.className,\r\n {\r\n 'tags-input--readOnly': this.props.readOnly,\r\n 'tags-input--hasPlaceholder':\r\n this.props.textProps && this.props.textProps.placeholder,\r\n 'tags-input--mobile': showMobileVersion,\r\n }\r\n )}\r\n ref={this.containerRef}\r\n >\r\n {showMobileVersion && (\r\n <div className=\"tags-input__mobileBackdrop\" />\r\n )}\r\n <div className=\"tags-input__tags__wrapper\">\r\n {!showInput && showMobileVersion && LeaveMobileButton}\r\n {this.props.tags && this.props.tags.length > 0 ? (\r\n <div className=\"tags-input__tag__wrapper\">\r\n {this.props.tags.map((item, index) =>\r\n this.renderTag(item, index)\r\n )}\r\n </div>\r\n ) : (\r\n this.props.readOnly && (\r\n <div className=\"tags-input__tag__wrapper\">\r\n <div className=\"tags-input__tag\">\r\n {this.props.readonlyEmptyPlaceholder}\r\n </div>\r\n </div>\r\n )\r\n )}\r\n </div>\r\n {showInput && (\r\n <div\r\n className={\r\n 'tags-input__tags__wrapper ' +\r\n (this.props.readOnly ? 'filled ' : '')\r\n }\r\n >\r\n <Text\r\n showClearButton={true}\r\n {...textProps}\r\n {...(this.props.id && {\r\n id: this.props.id + '-text-input',\r\n })}\r\n ref={this.textRef}\r\n required={\r\n this.props.tags.length > 0 ? false : this.props.required\r\n }\r\n className={\r\n 'tags-input__text-input ' +\r\n (textProps.className ? textProps.className : '')\r\n }\r\n onKeyDown={this.onKeyDown(suggestions)}\r\n onErrorsChanged={this.onTextErrorsChanged}\r\n onChange={this.onTextChanged}\r\n onFocus={this.onFocus}\r\n onBlur={this.onBlur}\r\n value={this.state.value}\r\n readOnly={this.props.readOnly}\r\n showValidation={false}\r\n ignoreContext={true}\r\n validators={this.props.validators}\r\n customValidators={this.props.customValidators}\r\n before={LeaveMobileButton}\r\n />\r\n {this.state.suggestionsVisible &&\r\n this.props.showSuggestions && (\r\n <TagsSuggestions<IdT, T>\r\n {...(this.props.id && {\r\n id: this.props.id + '-text-input',\r\n })}\r\n className={classNames(\r\n this.props.tagsSuggestionsClassName\r\n )}\r\n innerRef={this.suggestionsRef}\r\n anchorEl={this.containerRef.current}\r\n allowNew={this.props.allowNew}\r\n preselectedSuggestion={this.state.preselectedSuggestion}\r\n loading={\r\n this.state.fetchingExistingTags || this.props.isLoading\r\n }\r\n LoadingComponent={this.props.suggestionsLoadingComponent}\r\n isVisible={this.state.suggestionsVisible}\r\n EmptyComponent={\r\n this.props.suggestionsEmptyComponent ??\r\n translations.suggestionsEmptyComponent\r\n }\r\n EmptyAllowNewComponent={\r\n this.props.suggestionsEmptyAllowNewComponent ??\r\n translations.suggestionsEmptyAllowNewComponent\r\n }\r\n WaitingForMoreInputComponent={\r\n this.props.waitingForMoreInputComponent ??\r\n translations.waitingForMoreInputComponent\r\n }\r\n isWaitingForMoreInput={\r\n this.state.value.length < this.props.minLettersToFetch\r\n }\r\n tags={suggestions}\r\n onSelected={this.onSuggestionSelected}\r\n value={this.state.value}\r\n AddNewTagComponent={\r\n this.props.allowNew &&\r\n this.state.value !== '' &&\r\n (!this.props.existingTags ||\r\n !this.props.existingTags.find(\r\n (e) => this.props.getName(e) === this.state.value\r\n )) &&\r\n (!this.state.fetchedExistingTags ||\r\n !this.state.fetchedExistingTags.find(\r\n (e) => this.props.getName(e) === this.state.value\r\n )) &&\r\n this.state.textIsValid && (\r\n <Button\r\n {...(this.props.id && {\r\n id: this.props.id + '-add-new-button',\r\n })}\r\n className=\"tags-input__suggestion tags-input__add-new\"\r\n dropdown={true}\r\n onClick={this.addNewTag}\r\n >\r\n {translations.addNew} \"{this.state.value}\"\r\n </Button>\r\n )\r\n }\r\n SuggestionTag={this.props.SuggestionTag}\r\n popperProps={this.props.popperProps}\r\n getName={this.props.getName}\r\n textIsFocused={this.state.textIsFocused}\r\n />\r\n )}\r\n </div>\r\n )}\r\n {this.renderDefaultValidation()}\r\n {this.props.label && (\r\n <label\r\n className={\r\n this.state.value !== '' ||\r\n this.state.textIsFocused ||\r\n this.props.readOnly ||\r\n this.props.tags.length >= this.props.maxTags ||\r\n showMobileVersion\r\n ? 'label--focused'\r\n : ''\r\n }\r\n >\r\n {this.renderLabel()}\r\n </label>\r\n )}\r\n </div>\r\n </InputGroup>\r\n </Portal>\r\n );\r\n }\r\n\r\n private onTextErrorsChanged = (textErrors: ValidationError[]) =>\r\n this.setState(\r\n () => ({ textErrors }),\r\n () => this.handleErrors()\r\n );\r\n\r\n private onFocus = () => {\r\n this.props.onFocus?.();\r\n if (!this.state.suggestionsVisible) {\r\n this.props.onSuggestionsOpened?.();\r\n }\r\n this.fetchExistingTags(this.state.value);\r\n this.setState(\r\n () => ({ textIsFocused: true, suggestionsVisible: true, touched: true }),\r\n () => this.handleErrors()\r\n );\r\n const showMobileVersion =\r\n this.props.mobileVersionEnabled &&\r\n this.isMobile &&\r\n (this.state.textIsFocused || this.state.suggestionsVisible);\r\n if (\r\n !showMobileVersion &&\r\n this.props.mobileVersionEnabled &&\r\n this.isMobile\r\n ) {\r\n setTimeout(() => this.textRef.current?.focus(), 100);\r\n }\r\n };\r\n\r\n private onKeyDown = (suggestions: T[]) => async (e: React.KeyboardEvent) => {\r\n if (e.key === 'Tab') {\r\n this.setState({\r\n suggestionsVisible: false,\r\n preselectedSuggestion: undefined,\r\n });\r\n }\r\n if (\r\n e.key === 'Enter' &&\r\n (this.state.value !== '' ||\r\n this.state.preselectedSuggestion !== undefined) &&\r\n this.state.textErrors.length === 0\r\n ) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n const existingTag =\r\n this.props.existingTags &&\r\n this.props.existingTags.find(\r\n (et) => this.props.getName(et) === this.state.value\r\n );\r\n if (this.state.preselectedSuggestion !== undefined) {\r\n this.props.onTagsChanged(\r\n this.props.tags.concat(suggestions[this.state.preselectedSuggestion])\r\n );\r\n this.setState({ value: '', preselectedSuggestion: undefined }, () => {\r\n this.fetchExistingTags();\r\n this.handleErrors();\r\n });\r\n } else if (existingTag) {\r\n this.props.onTagsChanged(this.props.tags.concat(existingTag));\r\n this.setState({ value: '' }, () => {\r\n this.fetchExistingTags();\r\n this.handleErrors();\r\n });\r\n } else if (this.props.allowNew) {\r\n await this.addNewTag();\r\n this.handleErrors();\r\n }\r\n }\r\n if (suggestions.length > 0 && this.state.suggestionsVisible) {\r\n if (e.key === 'ArrowUp') {\r\n const preselectedSuggestion =\r\n this.state.preselectedSuggestion === undefined\r\n ? suggestions.length - 1\r\n : this.state.preselectedSuggestion === 0\r\n ? suggestions.length - 1\r\n : this.state.preselectedSuggestion - 1;\r\n this.setState({ preselectedSuggestion });\r\n } else if (e.key === 'ArrowDown') {\r\n const preselectedSuggestion =\r\n this.state.preselectedSuggestion === undefined\r\n ? 0\r\n : this.state.preselectedSuggestion === suggestions.length - 1\r\n ? 0\r\n : this.state.preselectedSuggestion + 1;\r\n this.setState({ preselectedSuggestion });\r\n } else {\r\n this.setState({ preselectedSuggestion: undefined });\r\n }\r\n }\r\n };\r\n\r\n private addNewTag = async () => {\r\n const newTag = await this.props.onNewTagAdded(this.state.value);\r\n this.setState({\r\n suggestionsVisible: this.props.closeSuggestionsAfterCreate\r\n ? false\r\n : this.state.suggestionsVisible,\r\n });\r\n if (newTag) {\r\n this.props.onTagsChanged(\r\n this.props.tags ? this.props.tags.concat(newTag) : [newTag]\r\n );\r\n }\r\n this.setState({ value: '', textErrors: [] }, () => {\r\n this.fetchExistingTags();\r\n this.handleErrors();\r\n });\r\n };\r\n\r\n private onSuggestionSelected = (tag: T, lastSelected: boolean) => {\r\n const newTags = this.props.tags.concat(tag);\r\n this.props.onTagsChanged(newTags);\r\n const isMax = newTags.length === this.props.maxTags;\r\n const finalValue =\r\n !this.props.allowNew && !isMax && !lastSelected ? this.state.value : '';\r\n this.setState(\r\n {\r\n value: finalValue,\r\n suggestionsVisible:\r\n isMax || this.props.closeSuggestionsAfterCreate\r\n ? false\r\n : this.state.suggestionsVisible,\r\n preselectedSuggestion: undefined,\r\n textErrors: [],\r\n },\r\n () => {\r\n /*if (\r\n !this.props.maxTags ||\r\n this.props.tags.length + 1 < this.props.maxTags\r\n ) {\r\n this.fetchExistingTags(finalValue);\r\n }*/\r\n this.handleErrors();\r\n this.textRef.current?.focus();\r\n }\r\n );\r\n };\r\n\r\n private onBlur = () => {\r\n this.props.onBlur?.();\r\n this.setState(\r\n {\r\n textIsFocused: false,\r\n preselectedSuggestion: undefined,\r\n },\r\n () => this.handleErrors()\r\n );\r\n };\r\n\r\n private onTextChanged = (\r\n e: React.ChangeEvent<HTMLInputElement>,\r\n isValid: boolean\r\n ) => {\r\n const value = e.target.value;\r\n this.setState(\r\n () => ({\r\n value,\r\n isValid: isValid,\r\n textIsValid: isValid,\r\n suggestionsVisible: true,\r\n }),\r\n () => this.handleErrors()\r\n );\r\n this.fetchExistingTags(e.target.value);\r\n };\r\n\r\n private handleErrors = (tags: T[] = this.props.tags) => {\r\n let errors = this.getErrors(tags);\r\n if (errors.length > 0) {\r\n this.setInvalid(errors);\r\n } else {\r\n this.setValid();\r\n }\r\n };\r\n\r\n private getErrors(tags: T[]) {\r\n const translations = this.getTranslations(defaultTagsTranslations);\r\n let errors = [];\r\n if (tags.length < this.props.maxTags) {\r\n errors = errors.concat(this.state.textErrors);\r\n }\r\n if (this.state.value !== '' && tags.length === 0 && this.props.required) {\r\n errors = errors.concat(\r\n this.getTranslations(this.props.translations).required\r\n );\r\n }\r\n if (this.state.value && this.props.allowNew && !this.state.textIsFocused) {\r\n errors = errors.concat(\r\n this.props.valueNotAddedError ?? translations.maxTagsSurpassedError\r\n );\r\n }\r\n if (this.props.maxTags < (this.props.tags && this.props.tags.length)) {\r\n errors = errors.concat(\r\n this.props.maxTagsSurpassedError ?? translations.maxTagsSurpassedError\r\n );\r\n }\r\n return errors.filter((i) => i);\r\n }\r\n\r\n private fetchExistingTags(startsWith: string = '') {\r\n if (\r\n this.props.fetchExistingTags &&\r\n startsWith.length >= this.props.minLettersToFetch\r\n ) {\r\n const timer = setTimeout(\r\n () => this.setState(() => ({ fetchingExistingTags: true })),\r\n this.props.loadingDelayMs\r\n );\r\n this.props.fetchExistingTags(startsWith).then((fetchedExistingTags) => {\r\n clearTimeout(timer);\r\n this.setState(() => ({\r\n fetchedExistingTags,\r\n fetchingExistingTags: false,\r\n }));\r\n });\r\n }\r\n }\r\n\r\n private getSuggestions() {\r\n const existingTags: T[] = []\r\n .concat(this.props.existingTags ? this.props.existingTags : [])\r\n .concat(\r\n this.state.fetchedExistingTags ? this.state.fetchedExistingTags : []\r\n );\r\n const filteredTags = this.props.filterExistingTags(\r\n this.state.value ? this.state.value.toLowerCase() : '',\r\n existingTags\r\n );\r\n let suggestions = filteredTags\r\n .filter(\r\n (tag) =>\r\n this.props.allowSameTagMultipleTimes ||\r\n !this.props.tags.some((t) => t.id === tag.id)\r\n )\r\n .slice(0, this.props.maxSuggestions);\r\n return suggestions;\r\n }\r\n\r\n private renderTag(tag: T, index: number) {\r\n const body = (\r\n <>\r\n {this.props.getName(tag)}\r\n {!this.props.readOnly && (\r\n <Button\r\n {...(this.props.id && {\r\n id: this.props.id + '-tag-' + index.toString(),\r\n })}\r\n circular={true}\r\n blank={true}\r\n onClick={this.tagRemoveClick(tag)}\r\n className=\"ml-1 transform-rotate--45 line-height--0 p-0\"\r\n Component={TagButtonComponent}\r\n preventsDefault={false}\r\n >\r\n <PlusIcon />\r\n </Button>\r\n )}\r\n </>\r\n );\r\n const className = classNames('tags-input__tag', {\r\n 'tags-input__tag-chip': this.props.showChips,\r\n });\r\n if (this.props.onTagClick) {\r\n return (\r\n <Button\r\n onClick={this.tagClick(tag)}\r\n small={true}\r\n className={className}\r\n key={index}\r\n >\r\n {body}\r\n </Button>\r\n );\r\n }\r\n return (\r\n <div onClick={this.tagClick(tag)} className={className} key={index}>\r\n {body}\r\n </div>\r\n );\r\n }\r\n\r\n private tagClick = (tag: T) => () => {\r\n this.props.onTagClick && this.props.onTagClick(tag);\r\n };\r\n\r\n private tagRemoveClick = (tag: T) => (e: React.MouseEvent<HTMLElement>) => {\r\n e.stopPropagation();\r\n const newTags = this.props.tags.filter((sv) => sv.id !== tag.id);\r\n /*if (newTags.length === 0) {\r\n setTimeout(() => this.focus(), 50);\r\n }\r\n this.setState({\r\n suggestionsVisible: false,\r\n });*/\r\n this.props.onTagsChanged && this.props.onTagsChanged(newTags);\r\n this.handleErrors(newTags);\r\n // this.fetchExistingTags();\r\n this.textRef.current?.focus();\r\n };\r\n}\r\n\r\ninterface TagsFinal {\r\n <\r\n IdT extends number | string = number,\r\n T extends ResourceTConstraint<IdT> = Tag<IdT>\r\n >(\r\n item: TagsProps<IdT, T>\r\n ): React.ReactElement;\r\n defaultProps?: Partial<TagsProps<any, any>>;\r\n}\r\n\r\nexport const Tags = withThemeContext<TagsProps, InstanceType<typeof TagsRaw>>(\r\n // tslint:disable-next-line: no-any\r\n withFormContext<TagsProps>(TagsRaw),\r\n 'tags'\r\n) as unknown as TagsFinal;\r\n\r\nexport default Tags;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tags.js","names":["React","_interopRequireWildcard","require","_InputGroup","_Text","_BaseInput","_Button","_TagsSuggestions","_interopRequireDefault","_withFormContext","_classnames","_withThemeContext","_LinearProgress","_Portal","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","PlusIcon","props","createElement","d","defaultProps","xmlns","width","height","viewBox","LeftArrowIcon","defaultTagsTranslations","defaultBaseTranslations","addNew","valueNotAddedError","maxTagsSurpassedError","waitingForMoreInputComponent","suggestionsEmptyComponent","suggestionsEmptyAllowNewComponent","exports","TagButtonComponent","p","className","id","onClick","children","TagsRaw","BaseInput","constructor","_this","this","textRef","suggestionsRef","isMobile","onTextErrorsChanged","textErrors","setState","handleErrors","onFocus","_this$props$onFocus","_this$props","state","suggestionsVisible","_this$props$onSuggest","_this$props2","onSuggestionsOpened","fetchExistingTags","textIsFocused","touched","showMobileVersion","mobileVersionEnabled","setTimeout","_this$textRef$current","current","focus","onKeyDown","suggestions","e","preselectedSuggestion","preventDefault","stopPropagation","existingTag","existingTags","find","et","getName","onTagsChanged","tags","concat","allowNew","addNewTag","newTag","onNewTagAdded","closeSuggestionsAfterCreate","onSuggestionSelected","tag","lastSelected","newTags","isMax","maxTags","finalValue","_this$textRef$current2","onBlur","_this$props$onBlur","_this$props3","onTextChanged","isValid","textIsValid","errors","getErrors","setInvalid","setValid","tagClick","onTagClick","tagRemoveClick","_this$textRef$current3","sv","fetchingExistingTags","fetchedExistingTags","createRef","handleClickOutside","handleLeaveMobileClick","_require","componentDidUpdate","oldProps","validators","customValidators","required","_this$containerRef$cu","_this$containerRef$cu2","containerRef","querySelector","contains","_this$props$onSuggest2","_this$props4","onSuggestionsClosed","addNewOnBlur","getSuggestions","existing","s","componentDidMount","document","addEventListener","componentWillUnmount","removeEventListener","render","translations","getTranslations","textProps","LeaveMobileButton","Button","noShadow","unobtrusive","showInput","Boolean","readOnly","container","body","disablePortal","InputGroup","title","tooltip","classNames","getValidationClass","placeholder","ref","map","item","index","renderTag","readonlyEmptyPlaceholder","Text","showClearButton","onErrorsChanged","onChange","showValidation","ignoreContext","before","showSuggestions","tagsSuggestionsClassName","innerRef","anchorEl","loading","isLoading","LoadingComponent","suggestionsLoadingComponent","isVisible","EmptyComponent","EmptyAllowNewComponent","WaitingForMoreInputComponent","isWaitingForMoreInput","minLettersToFetch","onSelected","AddNewTagComponent","dropdown","SuggestionTag","popperProps","renderDefaultValidation","label","renderLabel","startsWith","timer","loadingDelayMs","then","clearTimeout","filteredTags","filterExistingTags","toLowerCase","allowSameTagMultipleTimes","some","t","slice","maxSuggestions","Fragment","toString","circular","blank","Component","preventsDefault","showChips","small","disabled","newTagName","Promise","resolve","name","Date","getTime","text","Tags","withThemeContext","withFormContext","_default"],"sources":["../../../src/lib/components/tags/Tags.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\nimport { InputGroup } from '../inputGroup/InputGroup';\r\nimport { Text, TextProps, TextRaw } from '../text/Text';\r\nimport * as PlusIcon from 'material-design-icons/content/svg/production/ic_add_circle_outline_24px.svg';\r\nimport * as LeftArrowIcon from 'material-design-icons/navigation/svg/production/ic_arrow_back_24px.svg';\r\nimport {\r\n BaseInputProps,\r\n BaseInputState,\r\n BaseInput,\r\n ValidationError,\r\n defaultBaseTranslations,\r\n} from '../base/input/BaseInput';\r\nimport { Button, ButtonComponentProps } from '../button/Button';\r\nimport TagsSuggestions, {\r\n RenderSuggestionTagProps,\r\n} from './subComponents/TagsSuggestions';\r\nimport { withFormContext } from '../form/withFormContext';\r\nimport classNames from 'classnames';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\nimport { PopperProps } from '@mui/material/Popper/Popper';\r\nimport LinearProgress from '@mui/material/LinearProgress';\r\nimport Portal from '@mui/material/Portal';\r\n\r\n// Misc\r\nexport type Tag<T extends number | string = number> = {\r\n id: T;\r\n name: string;\r\n};\r\n\r\nexport type ResourceTConstraint<IdT extends number | string> = { id: IdT };\r\n\r\nexport const defaultTagsTranslations = {\r\n ...defaultBaseTranslations,\r\n addNew: 'Add new',\r\n valueNotAddedError: 'You forgot to add tag',\r\n maxTagsSurpassedError: 'Maximum number of tags surpassed',\r\n waitingForMoreInputComponent: 'Waiting for more input...',\r\n suggestionsEmptyComponent: 'No existing tags...',\r\n suggestionsEmptyAllowNewComponent: 'Type to create...',\r\n};\r\n\r\nexport type TagsTranslations = Partial<typeof defaultTagsTranslations>;\r\n\r\nexport type TagsProps<\r\n IdT extends number | string = number,\r\n T extends ResourceTConstraint<IdT> = Tag<IdT>\r\n> = {\r\n className?: string;\r\n tagsSuggestionsClassName?: string;\r\n disabled?: boolean;\r\n tags: T[];\r\n existingTags?: T[];\r\n fetchExistingTags?: (text: string) => Promise<T[]>;\r\n onTagsChanged: (newTags: T[]) => void;\r\n onNewTagAdded?: (newTagName: string) => Promise<T>;\r\n onTagClick?: (tag: T) => void;\r\n showChips?: boolean;\r\n allowNew?: boolean;\r\n addNewOnBlur?: boolean;\r\n textProps?: TextProps;\r\n readOnly?: boolean;\r\n readonlyEmptyPlaceholder?: string;\r\n maxTags?: number;\r\n valueNotAddedError?: string | JSX.Element;\r\n maxTagsSurpassedError?: string | JSX.Element;\r\n showSuggestions?: boolean;\r\n suggestionsLoadingComponent?: string | JSX.Element;\r\n suggestionsEmptyComponent?: string | JSX.Element | null;\r\n suggestionsEmptyAllowNewComponent?: string | JSX.Element | null;\r\n waitingForMoreInputComponent?: string | JSX.Element;\r\n loadingDelayMs?: number;\r\n filterExistingTags?: (text: string, existingTags: T[]) => T[];\r\n allowSameTagMultipleTimes?: boolean;\r\n maxSuggestions?: number;\r\n popperProps?: Partial<PopperProps>;\r\n minLettersToFetch?: number;\r\n mobileVersionEnabled?: boolean;\r\n isLoading?: boolean;\r\n closeSuggestionsAfterCreate?: boolean;\r\n SuggestionTag?: React.ComponentType<RenderSuggestionTagProps<IdT, T>>;\r\n getName?: (tag: T) => string;\r\n} & BaseInputProps<HTMLInputElement, TagsTranslations>;\r\n\r\nexport interface TagsState<\r\n IdT extends number | string = number,\r\n T extends ResourceTConstraint<IdT> = Tag<IdT>\r\n> extends BaseInputState {\r\n textIsFocused: boolean;\r\n textErrors: ValidationError[];\r\n textIsValid: boolean;\r\n suggestionsVisible: boolean;\r\n fetchedExistingTags: T[];\r\n fetchingExistingTags: boolean;\r\n preselectedSuggestion?: number;\r\n}\r\n\r\ntype InjectedProps = {};\r\n\r\nconst TagButtonComponent: React.FC<ButtonComponentProps> = (p) => (\r\n <a className={p.className} id={p.id} onClick={p.onClick}>\r\n {p.children}\r\n </a>\r\n);\r\n\r\nexport class TagsRaw<\r\n IdT extends number | string = number,\r\n T extends ResourceTConstraint<IdT> = Tag<IdT>\r\n> extends BaseInput<\r\n TagsProps<IdT, T> & InjectedProps,\r\n TagsState<IdT, T>,\r\n HTMLInputElement,\r\n TagsTranslations\r\n> {\r\n public static defaultProps: TagsProps = {\r\n ...BaseInput.defaultProps,\r\n disabled: false,\r\n className: '',\r\n tags: [],\r\n existingTags: [],\r\n maxTags: 1000,\r\n onTagsChanged: () => undefined,\r\n onNewTagAdded: (newTagName) =>\r\n Promise.resolve({ name: newTagName, id: new Date().getTime() }),\r\n showSuggestions: true,\r\n suggestionsLoadingComponent: (\r\n <LinearProgress className=\"tags-input__suggestions__defaultLoading\" />\r\n ),\r\n loadingDelayMs: 0,\r\n filterExistingTags: (text, tags) =>\r\n tags.filter((tag) => tag.name && tag.name.toLowerCase().startsWith(text)),\r\n maxSuggestions: 5,\r\n addNewOnBlur: false,\r\n translations: defaultTagsTranslations,\r\n minLettersToFetch: 0,\r\n mobileVersionEnabled: true,\r\n closeSuggestionsAfterCreate: false,\r\n getName: (tag) => tag.name,\r\n };\r\n\r\n private textRef: React.RefObject<TextRaw>;\r\n private suggestionsRef: React.RefObject<HTMLDivElement>;\r\n private isMobile: boolean = false;\r\n\r\n constructor(props: TagsProps<IdT, T> & InjectedProps) {\r\n super(props);\r\n this.state = {\r\n ...this.state,\r\n textErrors: [],\r\n textIsFocused: false,\r\n suggestionsVisible: false,\r\n fetchingExistingTags: false,\r\n textIsValid: false,\r\n fetchedExistingTags: [],\r\n };\r\n this.textRef = React.createRef();\r\n this.suggestionsRef = React.createRef();\r\n this.handleClickOutside = this.handleClickOutside.bind(this);\r\n this.handleLeaveMobileClick = this.handleLeaveMobileClick.bind(this);\r\n if (props.mobileVersionEnabled) {\r\n this.isMobile = require('react-device-detect')?.isMobile;\r\n }\r\n }\r\n\r\n public focus() {\r\n if (this.textRef.current) {\r\n this.textRef.current.focus();\r\n }\r\n }\r\n\r\n public componentDidUpdate(oldProps: TagsProps<IdT, T> & InjectedProps) {\r\n if (\r\n oldProps.tags !== this.props.tags ||\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.handleErrors(this.props.tags);\r\n }\r\n }\r\n\r\n public handleLeaveMobileClick() {\r\n this.setState({\r\n textIsFocused: false,\r\n suggestionsVisible: false,\r\n preselectedSuggestion: undefined,\r\n });\r\n }\r\n\r\n public handleClickOutside(e: MouseEvent) {\r\n if (\r\n !this.containerRef.current ||\r\n this.containerRef.current\r\n .querySelector('.tags-input__tag__wrapper')\r\n ?.contains(e.target as HTMLDivElement) ||\r\n this.containerRef.current\r\n .querySelector('.tags-input__text-input')\r\n ?.contains(e.target as HTMLDivElement) ||\r\n !this.suggestionsRef.current ||\r\n this.suggestionsRef.current.contains(e.target as HTMLDivElement)\r\n ) {\r\n return;\r\n }\r\n if (this.state.suggestionsVisible) {\r\n this.props.onSuggestionsClosed?.();\r\n }\r\n this.setState({\r\n suggestionsVisible: false,\r\n preselectedSuggestion: undefined,\r\n });\r\n if (this.props.addNewOnBlur && this.state.value) {\r\n const suggestions = this.getSuggestions();\r\n const existing = suggestions.find(\r\n (s) => this.props.getName(s) === this.state.value\r\n );\r\n if (existing) {\r\n this.onSuggestionSelected(existing, suggestions.length === 1);\r\n } else if (this.props.allowNew) {\r\n this.addNewTag();\r\n }\r\n } /* else if (this.state.value) {\r\n this.setState({ value: '' });\r\n }*/\r\n }\r\n\r\n public componentDidMount() {\r\n document.addEventListener('mousedown', this.handleClickOutside);\r\n document.addEventListener('touchstart', this.handleClickOutside);\r\n this.handleErrors(this.props.tags);\r\n }\r\n\r\n public componentWillUnmount() {\r\n document.removeEventListener('mousedown', this.handleClickOutside);\r\n document.removeEventListener('touchstart', this.handleClickOutside);\r\n super.componentWillUnmount();\r\n }\r\n\r\n public render() {\r\n const translations = this.getTranslations(defaultTagsTranslations);\r\n const textProps = this.props.textProps ? this.props.textProps : {};\r\n const suggestions = this.getSuggestions();\r\n const showMobileVersion =\r\n this.props.mobileVersionEnabled &&\r\n this.isMobile &&\r\n (this.state.textIsFocused || this.state.suggestionsVisible);\r\n const LeaveMobileButton = showMobileVersion ? (\r\n <Button\r\n className=\"tags-input__leaveMobileTagsButton line-height--0\"\r\n onClick={this.handleLeaveMobileClick}\r\n noShadow={true}\r\n unobtrusive={true}\r\n >\r\n <LeftArrowIcon />\r\n </Button>\r\n ) : undefined;\r\n const showInput = Boolean(\r\n (!this.props.maxTags ||\r\n this.props.maxTags > (this.props.tags && this.props.tags.length)) &&\r\n !this.props.readOnly\r\n );\r\n return (\r\n <Portal container={document.body} disablePortal={!showMobileVersion}>\r\n <InputGroup title={this.props.title} tooltip={this.props.tooltip}>\r\n <div\r\n {...(this.props.id && {\r\n id: this.props.id,\r\n })}\r\n className={classNames(\r\n 'input__base tags-input',\r\n this.getValidationClass(),\r\n this.props.className,\r\n {\r\n 'tags-input--readOnly': this.props.readOnly,\r\n 'tags-input--hasPlaceholder':\r\n this.props.textProps && this.props.textProps.placeholder,\r\n 'tags-input--mobile': showMobileVersion,\r\n }\r\n )}\r\n ref={this.containerRef}\r\n >\r\n {showMobileVersion && (\r\n <div className=\"tags-input__mobileBackdrop\" />\r\n )}\r\n <div className=\"tags-input__tags__wrapper\">\r\n {!showInput && showMobileVersion && LeaveMobileButton}\r\n {this.props.tags && this.props.tags.length > 0 ? (\r\n <div className=\"tags-input__tag__wrapper\">\r\n {this.props.tags.map((item, index) =>\r\n this.renderTag(item, index)\r\n )}\r\n </div>\r\n ) : (\r\n this.props.readOnly && (\r\n <div className=\"tags-input__tag__wrapper\">\r\n <div className=\"tags-input__tag\">\r\n {this.props.readonlyEmptyPlaceholder}\r\n </div>\r\n </div>\r\n )\r\n )}\r\n </div>\r\n {showInput && (\r\n <div\r\n className={\r\n 'tags-input__tags__wrapper ' +\r\n (this.props.readOnly ? 'filled ' : '')\r\n }\r\n >\r\n <Text\r\n showClearButton={true}\r\n {...textProps}\r\n {...(this.props.id && {\r\n id: this.props.id + '-text-input',\r\n })}\r\n ref={this.textRef}\r\n required={\r\n this.props.tags.length > 0 ? false : this.props.required\r\n }\r\n className={\r\n 'tags-input__text-input ' +\r\n (textProps.className ? textProps.className : '')\r\n }\r\n onKeyDown={this.onKeyDown(suggestions)}\r\n onErrorsChanged={this.onTextErrorsChanged}\r\n onChange={this.onTextChanged}\r\n onFocus={this.onFocus}\r\n onBlur={this.onBlur}\r\n value={this.state.value}\r\n readOnly={this.props.readOnly}\r\n showValidation={false}\r\n ignoreContext={true}\r\n validators={this.props.validators}\r\n customValidators={this.props.customValidators}\r\n before={LeaveMobileButton}\r\n />\r\n {this.state.suggestionsVisible &&\r\n this.props.showSuggestions && (\r\n <TagsSuggestions<IdT, T>\r\n {...(this.props.id && {\r\n id: this.props.id + '-text-input',\r\n })}\r\n className={classNames(\r\n this.props.tagsSuggestionsClassName\r\n )}\r\n innerRef={this.suggestionsRef}\r\n anchorEl={this.containerRef.current}\r\n allowNew={this.props.allowNew}\r\n preselectedSuggestion={this.state.preselectedSuggestion}\r\n loading={\r\n this.state.fetchingExistingTags || this.props.isLoading\r\n }\r\n LoadingComponent={this.props.suggestionsLoadingComponent}\r\n isVisible={this.state.suggestionsVisible}\r\n EmptyComponent={\r\n this.props.suggestionsEmptyComponent ??\r\n translations.suggestionsEmptyComponent\r\n }\r\n EmptyAllowNewComponent={\r\n this.props.suggestionsEmptyAllowNewComponent ??\r\n translations.suggestionsEmptyAllowNewComponent\r\n }\r\n WaitingForMoreInputComponent={\r\n this.props.waitingForMoreInputComponent ??\r\n translations.waitingForMoreInputComponent\r\n }\r\n isWaitingForMoreInput={\r\n this.state.value.length < this.props.minLettersToFetch\r\n }\r\n tags={suggestions}\r\n onSelected={this.onSuggestionSelected}\r\n value={this.state.value}\r\n AddNewTagComponent={\r\n this.props.allowNew &&\r\n this.state.value !== '' &&\r\n (!this.props.existingTags ||\r\n !this.props.existingTags.find(\r\n (e) => this.props.getName(e) === this.state.value\r\n )) &&\r\n (!this.state.fetchedExistingTags ||\r\n !this.state.fetchedExistingTags.find(\r\n (e) => this.props.getName(e) === this.state.value\r\n )) &&\r\n this.state.textIsValid && (\r\n <Button\r\n {...(this.props.id && {\r\n id: this.props.id + '-add-new-button',\r\n })}\r\n className=\"tags-input__suggestion tags-input__add-new\"\r\n dropdown={true}\r\n onClick={this.addNewTag}\r\n >\r\n {translations.addNew} \"{this.state.value}\"\r\n </Button>\r\n )\r\n }\r\n SuggestionTag={this.props.SuggestionTag}\r\n popperProps={this.props.popperProps}\r\n getName={this.props.getName}\r\n textIsFocused={this.state.textIsFocused}\r\n />\r\n )}\r\n </div>\r\n )}\r\n {this.renderDefaultValidation()}\r\n {this.props.label && (\r\n <label\r\n className={\r\n this.state.value !== '' ||\r\n this.state.textIsFocused ||\r\n this.props.readOnly ||\r\n this.props.tags.length >= this.props.maxTags ||\r\n showMobileVersion\r\n ? 'label--focused'\r\n : ''\r\n }\r\n >\r\n {this.renderLabel()}\r\n </label>\r\n )}\r\n </div>\r\n </InputGroup>\r\n </Portal>\r\n );\r\n }\r\n\r\n private onTextErrorsChanged = (textErrors: ValidationError[]) =>\r\n this.setState(\r\n () => ({ textErrors }),\r\n () => this.handleErrors()\r\n );\r\n\r\n private onFocus = () => {\r\n this.props.onFocus?.();\r\n if (!this.state.suggestionsVisible) {\r\n this.props.onSuggestionsOpened?.();\r\n }\r\n this.fetchExistingTags(this.state.value);\r\n this.setState(\r\n () => ({ textIsFocused: true, suggestionsVisible: true, touched: true }),\r\n () => this.handleErrors()\r\n );\r\n const showMobileVersion =\r\n this.props.mobileVersionEnabled &&\r\n this.isMobile &&\r\n (this.state.textIsFocused || this.state.suggestionsVisible);\r\n if (\r\n !showMobileVersion &&\r\n this.props.mobileVersionEnabled &&\r\n this.isMobile\r\n ) {\r\n setTimeout(() => this.textRef.current?.focus(), 100);\r\n }\r\n };\r\n\r\n private onKeyDown = (suggestions: T[]) => async (e: React.KeyboardEvent) => {\r\n if (e.key === 'Tab') {\r\n this.setState({\r\n suggestionsVisible: false,\r\n preselectedSuggestion: undefined,\r\n });\r\n }\r\n if (\r\n e.key === 'Enter' &&\r\n (this.state.value !== '' ||\r\n this.state.preselectedSuggestion !== undefined) &&\r\n this.state.textErrors.length === 0\r\n ) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n const existingTag =\r\n this.props.existingTags &&\r\n this.props.existingTags.find(\r\n (et) => this.props.getName(et) === this.state.value\r\n );\r\n if (this.state.preselectedSuggestion !== undefined) {\r\n this.props.onTagsChanged(\r\n this.props.tags.concat(suggestions[this.state.preselectedSuggestion])\r\n );\r\n this.setState({ value: '', preselectedSuggestion: undefined }, () => {\r\n this.fetchExistingTags();\r\n this.handleErrors();\r\n });\r\n } else if (existingTag) {\r\n this.props.onTagsChanged(this.props.tags.concat(existingTag));\r\n this.setState({ value: '' }, () => {\r\n this.fetchExistingTags();\r\n this.handleErrors();\r\n });\r\n } else if (this.props.allowNew) {\r\n await this.addNewTag();\r\n this.handleErrors();\r\n }\r\n }\r\n if (suggestions.length > 0 && this.state.suggestionsVisible) {\r\n if (e.key === 'ArrowUp') {\r\n const preselectedSuggestion =\r\n this.state.preselectedSuggestion === undefined\r\n ? suggestions.length - 1\r\n : this.state.preselectedSuggestion === 0\r\n ? suggestions.length - 1\r\n : this.state.preselectedSuggestion - 1;\r\n this.setState({ preselectedSuggestion });\r\n } else if (e.key === 'ArrowDown') {\r\n const preselectedSuggestion =\r\n this.state.preselectedSuggestion === undefined\r\n ? 0\r\n : this.state.preselectedSuggestion === suggestions.length - 1\r\n ? 0\r\n : this.state.preselectedSuggestion + 1;\r\n this.setState({ preselectedSuggestion });\r\n } else {\r\n this.setState({ preselectedSuggestion: undefined });\r\n }\r\n }\r\n };\r\n\r\n private addNewTag = async () => {\r\n const newTag = await this.props.onNewTagAdded(this.state.value);\r\n this.setState({\r\n suggestionsVisible: this.props.closeSuggestionsAfterCreate\r\n ? false\r\n : this.state.suggestionsVisible,\r\n });\r\n if (newTag) {\r\n this.props.onTagsChanged(\r\n this.props.tags ? this.props.tags.concat(newTag) : [newTag]\r\n );\r\n }\r\n this.setState({ value: '', textErrors: [] }, () => {\r\n this.fetchExistingTags();\r\n this.handleErrors();\r\n });\r\n };\r\n\r\n private onSuggestionSelected = (tag: T, lastSelected: boolean) => {\r\n const newTags = this.props.tags.concat(tag);\r\n this.props.onTagsChanged(newTags);\r\n const isMax = newTags.length === this.props.maxTags;\r\n const finalValue =\r\n !this.props.allowNew && !isMax && !lastSelected ? this.state.value : '';\r\n this.setState(\r\n {\r\n value: finalValue,\r\n suggestionsVisible:\r\n isMax || this.props.closeSuggestionsAfterCreate\r\n ? false\r\n : this.state.suggestionsVisible,\r\n preselectedSuggestion: undefined,\r\n textErrors: [],\r\n },\r\n () => {\r\n /*if (\r\n !this.props.maxTags ||\r\n this.props.tags.length + 1 < this.props.maxTags\r\n ) {\r\n this.fetchExistingTags(finalValue);\r\n }*/\r\n this.handleErrors();\r\n this.textRef.current?.focus();\r\n }\r\n );\r\n };\r\n\r\n private onBlur = () => {\r\n this.props.onBlur?.();\r\n this.setState(\r\n {\r\n textIsFocused: false,\r\n preselectedSuggestion: undefined,\r\n },\r\n () => this.handleErrors()\r\n );\r\n };\r\n\r\n private onTextChanged = (\r\n e: React.ChangeEvent<HTMLInputElement>,\r\n isValid: boolean\r\n ) => {\r\n const value = e.target.value;\r\n this.setState(\r\n () => ({\r\n value,\r\n isValid: isValid,\r\n textIsValid: isValid,\r\n suggestionsVisible: true,\r\n }),\r\n () => this.handleErrors()\r\n );\r\n this.fetchExistingTags(e.target.value);\r\n };\r\n\r\n private handleErrors = (tags: T[] = this.props.tags) => {\r\n let errors = this.getErrors(tags);\r\n if (errors.length > 0) {\r\n this.setInvalid(errors);\r\n } else {\r\n this.setValid();\r\n }\r\n };\r\n\r\n private getErrors(tags: T[]) {\r\n const translations = this.getTranslations(defaultTagsTranslations);\r\n let errors = [];\r\n if (tags.length < this.props.maxTags) {\r\n errors = errors.concat(this.state.textErrors);\r\n }\r\n if (this.state.value !== '' && tags.length === 0 && this.props.required) {\r\n errors = errors.concat(\r\n this.getTranslations(this.props.translations).required\r\n );\r\n }\r\n if (this.state.value && this.props.allowNew && !this.state.textIsFocused) {\r\n errors = errors.concat(\r\n this.props.valueNotAddedError ?? translations.maxTagsSurpassedError\r\n );\r\n }\r\n if (this.props.maxTags < (this.props.tags && this.props.tags.length)) {\r\n errors = errors.concat(\r\n this.props.maxTagsSurpassedError ?? translations.maxTagsSurpassedError\r\n );\r\n }\r\n return errors.filter((i) => i);\r\n }\r\n\r\n private fetchExistingTags(startsWith: string = '') {\r\n if (\r\n this.props.fetchExistingTags &&\r\n startsWith.length >= this.props.minLettersToFetch\r\n ) {\r\n const timer = setTimeout(\r\n () => this.setState(() => ({ fetchingExistingTags: true })),\r\n this.props.loadingDelayMs\r\n );\r\n this.props.fetchExistingTags(startsWith).then((fetchedExistingTags) => {\r\n clearTimeout(timer);\r\n this.setState(() => ({\r\n fetchedExistingTags,\r\n fetchingExistingTags: false,\r\n }));\r\n });\r\n }\r\n }\r\n\r\n private getSuggestions() {\r\n const existingTags: T[] = []\r\n .concat(this.props.existingTags ? this.props.existingTags : [])\r\n .concat(\r\n this.state.fetchedExistingTags ? this.state.fetchedExistingTags : []\r\n );\r\n const filteredTags = this.props.filterExistingTags(\r\n this.state.value ? this.state.value.toLowerCase() : '',\r\n existingTags\r\n );\r\n let suggestions = filteredTags\r\n .filter(\r\n (tag) =>\r\n this.props.allowSameTagMultipleTimes ||\r\n !this.props.tags.some((t) => t.id === tag.id)\r\n )\r\n .slice(0, this.props.maxSuggestions);\r\n return suggestions;\r\n }\r\n\r\n private renderTag(tag: T, index: number) {\r\n const body = (\r\n <>\r\n {this.props.getName(tag)}\r\n {!this.props.readOnly && (\r\n <Button\r\n {...(this.props.id && {\r\n id: this.props.id + '-tag-' + index.toString(),\r\n })}\r\n circular={true}\r\n blank={true}\r\n onClick={this.tagRemoveClick(tag)}\r\n className=\"ml-1 transform-rotate--45 line-height--0 p-0\"\r\n Component={TagButtonComponent}\r\n preventsDefault={false}\r\n >\r\n <PlusIcon />\r\n </Button>\r\n )}\r\n </>\r\n );\r\n const className = classNames('tags-input__tag', {\r\n 'tags-input__tag-chip': this.props.showChips,\r\n });\r\n if (this.props.onTagClick) {\r\n return (\r\n <Button\r\n onClick={this.tagClick(tag)}\r\n small={true}\r\n className={className}\r\n key={index}\r\n >\r\n {body}\r\n </Button>\r\n );\r\n }\r\n return (\r\n <div onClick={this.tagClick(tag)} className={className} key={index}>\r\n {body}\r\n </div>\r\n );\r\n }\r\n\r\n private tagClick = (tag: T) => () => {\r\n this.props.onTagClick && this.props.onTagClick(tag);\r\n };\r\n\r\n private tagRemoveClick = (tag: T) => (e: React.MouseEvent<HTMLElement>) => {\r\n e.stopPropagation();\r\n const newTags = this.props.tags.filter((sv) => sv.id !== tag.id);\r\n /*if (newTags.length === 0) {\r\n setTimeout(() => this.focus(), 50);\r\n }\r\n this.setState({\r\n suggestionsVisible: false,\r\n });*/\r\n this.props.onTagsChanged && this.props.onTagsChanged(newTags);\r\n this.handleErrors(newTags);\r\n // this.fetchExistingTags();\r\n this.textRef.current?.focus();\r\n };\r\n}\r\n\r\ninterface TagsFinal {\r\n <\r\n IdT extends number | string = number,\r\n T extends ResourceTConstraint<IdT> = Tag<IdT>\r\n >(\r\n item: TagsProps<IdT, T> & { ref?: React.Ref<TagsRaw<IdT, T>> }\r\n ): React.ReactElement;\r\n defaultProps?: Partial<TagsProps<any, any>>;\r\n}\r\n\r\nexport const Tags = withThemeContext<TagsProps, InstanceType<typeof TagsRaw>>(\r\n // tslint:disable-next-line: no-any\r\n withFormContext<TagsProps>(TagsRaw),\r\n 'tags'\r\n) as unknown as TagsFinal;\r\n\r\nexport default Tags;\r\n"],"mappings":"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"}
@@ -60,10 +60,8 @@ class TextRaw extends _BaseInput.BaseInput {
60
60
  });
61
61
  if (!this.props.ignoreContext) {
62
62
  this.props.formContext && this.props.formContext.updateCallback(this.componentId, {
63
- validation: {
64
- isValid: res.isValid,
65
- errors: res.errors
66
- }
63
+ isValid: res.isValid,
64
+ errors: res.errors
67
65
  });
68
66
  }
69
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Text.js","names":["React","_interopRequireWildcard","require","_InputGroup","_interopRequireDefault","_BaseInput","_withFormContext","_withThemeContext","_button","_classnames","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","PlusIcon","props","createElement","d","defaultProps","xmlns","width","height","viewBox","TextRaw","BaseInput","constructor","clearClick","inputRef","current","nativeTextAreaValueSetter","window","HTMLInputElement","event","Event","bubbles","dispatchEvent","containerClick","e","stopClickPropagation","stopPropagation","onKeyDown","number","onNumberChange","_props$number","toString","handleValueChange","state","isValid","errors","ignoreContext","formContext","updateCallback","componentId","validation","componentDidUpdate","prevProps","prevState","num","isNaN","_this$props$number","validators","customValidators","required","render","_this$state$value","_this$props$value","clearButtonHidden","disabled","title","tooltip","className","inputGroupClassName","getValidationClass","readOnly","onClick","ref","containerRef","before","id","placeholder","getDisabled","onChange","handleChange","onBlur","handleBlur","onFocus","handleFocus","type","maxLength","size","sizeFromValue","after","showClearButton","unobtrusive","noShadow","classNames","renderDefaultValidation","label","renderLabel","exports","Text","withThemeContext","withFormContext","_default"],"sources":["../../../src/lib/components/text/Text.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport InputGroup from '../inputGroup/InputGroup';\r\nimport {\r\n BaseInputProps,\r\n BaseInputState,\r\n BaseInput,\r\n} from '../base/input/BaseInput';\r\nimport { withFormContext } from '../form/withFormContext';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\nimport Button from '../button';\r\nimport * as PlusIcon from 'material-design-icons/content/svg/production/ic_add_24px.svg';\r\nimport classNames from 'classnames';\r\n\r\nexport interface TextProps extends BaseInputProps<HTMLInputElement> {\r\n mask?: string;\r\n reverse?: boolean;\r\n placeholder?: string;\r\n stopClickPropagation?: boolean;\r\n inputRef?: React.Ref<HTMLInputElement>;\r\n readOnly?: boolean;\r\n type?: 'number' | 'text';\r\n maxLength?: number;\r\n showClearButton?: boolean;\r\n after?: React.ReactNode;\r\n before?: React.ReactNode;\r\n sizeFromValue?: boolean;\r\n onNumberChange?: (number: number, isValid: boolean) => void;\r\n number?: number;\r\n}\r\n\r\nexport interface TextState extends BaseInputState {}\r\n\r\nexport class TextRaw extends BaseInput<TextProps, TextState, HTMLInputElement> {\r\n public static defaultProps = Object.assign({}, BaseInput.defaultProps, {\r\n type: 'text',\r\n stopClickPropagation: true,\r\n readOnly: false,\r\n }) as TextProps;\r\n\r\n constructor(props: TextProps) {\r\n super(props);\r\n if (props.number !== undefined || props.onNumberChange) {\r\n const value = props.number?.toString() ?? '';\r\n const res = this.handleValueChange(value, true, [], props, true);\r\n this.state = {\r\n ...this.state,\r\n isValid: res.isValid,\r\n errors: res.errors,\r\n value,\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: res.isValid,\r\n errors: res.errors,\r\n },\r\n });\r\n }\r\n }\r\n }\r\n\r\n public componentDidUpdate(prevProps: TextProps, prevState: TextState) {\r\n if (\r\n this.props.onNumberChange &&\r\n (this.state.isValid !== prevState.isValid ||\r\n this.state.value !== prevState.value) &&\r\n this.props.number !== Number(this.state.value)\r\n ) {\r\n const num = Number(this.state.value);\r\n if (this.state.value === '') {\r\n this.props.onNumberChange(undefined, this.state.isValid);\r\n } else if (!isNaN(num)) {\r\n this.props.onNumberChange(num, this.state.isValid);\r\n }\r\n }\r\n if (\r\n (prevProps.number !== undefined || this.props.number !== undefined) &&\r\n this.props.number !== prevProps.number\r\n ) {\r\n this.handleValueChange(this.props.number?.toString() ?? '');\r\n }\r\n if (\r\n !this.props.onNumberChange &&\r\n (prevProps.value !== this.props.value ||\r\n prevProps.validators !== this.props.validators ||\r\n prevProps.customValidators !== this.props.customValidators ||\r\n prevProps.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 render() {\r\n const clearButtonHidden = !this.state.value?.length || this.props.disabled;\r\n return (\r\n <InputGroup\r\n title={this.props.title}\r\n tooltip={this.props.tooltip}\r\n className={this.props.inputGroupClassName}\r\n >\r\n <div\r\n className={`input__base text-input ${this.getValidationClass()} \r\n ${this.props.readOnly ? 'text-input--readOnly' : ''} ${\r\n this.props.className ? this.props.className : ''\r\n }`}\r\n onClick={this.containerClick}\r\n ref={this.containerRef}\r\n >\r\n <div className=\"text-input__textWrapper\">\r\n {this.props.before}\r\n <input\r\n {...(this.props.id && {\r\n id: this.props.id,\r\n })}\r\n ref={this.inputRef}\r\n placeholder={this.props.placeholder}\r\n disabled={this.getDisabled()}\r\n required={this.props.required}\r\n className={this.state.value ? 'filled' : ''}\r\n onChange={this.handleChange}\r\n value={this.state.value ?? ''}\r\n onBlur={this.handleBlur}\r\n onFocus={this.handleFocus}\r\n readOnly={this.props.readOnly}\r\n onKeyDown={this.onKeyDown}\r\n type={this.props.type}\r\n onClick={this.props.onClick}\r\n maxLength={this.props.maxLength}\r\n size={\r\n this.props.sizeFromValue\r\n ? this.props.value?.length || 1\r\n : undefined\r\n }\r\n />\r\n {this.props.after}\r\n {!this.props.readOnly && this.props.showClearButton && (\r\n <Button\r\n {...(this.props.id && {\r\n id: this.props.id + '-clear-button',\r\n })}\r\n disabled={clearButtonHidden}\r\n unobtrusive={true}\r\n noShadow={true}\r\n onClick={this.clearClick}\r\n className={classNames(\r\n 'text-input__clearButton line-height--0',\r\n {\r\n 'text-input__clearButton--hidden': clearButtonHidden,\r\n }\r\n )}\r\n >\r\n <PlusIcon className=\"transform-rotate--45 line-height--0\" />\r\n </Button>\r\n )}\r\n <span className=\"highlight\" />\r\n <span className=\"bar\" />\r\n {this.renderDefaultValidation()}\r\n {this.props.label && (\r\n <label className={this.props.readOnly ? 'label--focused' : ''}>\r\n {this.renderLabel()}\r\n </label>\r\n )}\r\n </div>\r\n </div>\r\n </InputGroup>\r\n );\r\n }\r\n\r\n private clearClick = () => {\r\n if (this.inputRef.current) {\r\n var nativeTextAreaValueSetter = Object.getOwnPropertyDescriptor(\r\n window.HTMLInputElement.prototype,\r\n 'value'\r\n ).set;\r\n if (nativeTextAreaValueSetter) {\r\n nativeTextAreaValueSetter.call(this.inputRef.current, '');\r\n\r\n const event = new Event('input', { bubbles: true });\r\n this.inputRef.current.dispatchEvent(event);\r\n }\r\n }\r\n };\r\n\r\n private containerClick = (e: React.MouseEvent<HTMLDivElement>) =>\r\n this.props.stopClickPropagation && e.stopPropagation();\r\n\r\n private onKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) =>\r\n this.props.onKeyDown && this.props.onKeyDown(e);\r\n}\r\n\r\nexport const Text = withThemeContext<TextProps, InstanceType<typeof TextRaw>>(\r\n withFormContext<TextProps>(TextRaw),\r\n 'text'\r\n);\r\n\r\nexport default Text;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"Text.js","names":["React","_interopRequireWildcard","require","_InputGroup","_interopRequireDefault","_BaseInput","_withFormContext","_withThemeContext","_button","_classnames","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","PlusIcon","props","createElement","d","defaultProps","xmlns","width","height","viewBox","TextRaw","BaseInput","constructor","clearClick","inputRef","current","nativeTextAreaValueSetter","window","HTMLInputElement","event","Event","bubbles","dispatchEvent","containerClick","e","stopClickPropagation","stopPropagation","onKeyDown","number","onNumberChange","_props$number","toString","handleValueChange","state","isValid","errors","ignoreContext","formContext","updateCallback","componentId","componentDidUpdate","prevProps","prevState","num","isNaN","_this$props$number","validators","customValidators","required","render","_this$state$value","_this$props$value","clearButtonHidden","disabled","title","tooltip","className","inputGroupClassName","getValidationClass","readOnly","onClick","ref","containerRef","before","id","placeholder","getDisabled","onChange","handleChange","onBlur","handleBlur","onFocus","handleFocus","type","maxLength","size","sizeFromValue","after","showClearButton","unobtrusive","noShadow","classNames","renderDefaultValidation","label","renderLabel","exports","Text","withThemeContext","withFormContext","_default"],"sources":["../../../src/lib/components/text/Text.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport InputGroup from '../inputGroup/InputGroup';\r\nimport {\r\n BaseInputProps,\r\n BaseInputState,\r\n BaseInput,\r\n} from '../base/input/BaseInput';\r\nimport { withFormContext } from '../form/withFormContext';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\nimport Button from '../button';\r\nimport * as PlusIcon from 'material-design-icons/content/svg/production/ic_add_24px.svg';\r\nimport classNames from 'classnames';\r\n\r\nexport interface TextProps extends BaseInputProps<HTMLInputElement> {\r\n mask?: string;\r\n reverse?: boolean;\r\n placeholder?: string;\r\n stopClickPropagation?: boolean;\r\n inputRef?: React.Ref<HTMLInputElement>;\r\n readOnly?: boolean;\r\n type?: 'number' | 'text';\r\n maxLength?: number;\r\n showClearButton?: boolean;\r\n after?: React.ReactNode;\r\n before?: React.ReactNode;\r\n sizeFromValue?: boolean;\r\n onNumberChange?: (number: number, isValid: boolean) => void;\r\n number?: number;\r\n}\r\n\r\nexport interface TextState extends BaseInputState {}\r\n\r\nexport class TextRaw extends BaseInput<TextProps, TextState, HTMLInputElement> {\r\n public static defaultProps = Object.assign({}, BaseInput.defaultProps, {\r\n type: 'text',\r\n stopClickPropagation: true,\r\n readOnly: false,\r\n }) as TextProps;\r\n\r\n constructor(props: TextProps) {\r\n super(props);\r\n if (props.number !== undefined || props.onNumberChange) {\r\n const value = props.number?.toString() ?? '';\r\n const res = this.handleValueChange(value, true, [], props, true);\r\n this.state = {\r\n ...this.state,\r\n isValid: res.isValid,\r\n errors: res.errors,\r\n value,\r\n };\r\n if (!this.props.ignoreContext) {\r\n this.props.formContext &&\r\n this.props.formContext.updateCallback(this.componentId, {\r\n isValid: res.isValid,\r\n errors: res.errors,\r\n });\r\n }\r\n }\r\n }\r\n\r\n public componentDidUpdate(prevProps: TextProps, prevState: TextState) {\r\n if (\r\n this.props.onNumberChange &&\r\n (this.state.isValid !== prevState.isValid ||\r\n this.state.value !== prevState.value) &&\r\n this.props.number !== Number(this.state.value)\r\n ) {\r\n const num = Number(this.state.value);\r\n if (this.state.value === '') {\r\n this.props.onNumberChange(undefined, this.state.isValid);\r\n } else if (!isNaN(num)) {\r\n this.props.onNumberChange(num, this.state.isValid);\r\n }\r\n }\r\n if (\r\n (prevProps.number !== undefined || this.props.number !== undefined) &&\r\n this.props.number !== prevProps.number\r\n ) {\r\n this.handleValueChange(this.props.number?.toString() ?? '');\r\n }\r\n if (\r\n !this.props.onNumberChange &&\r\n (prevProps.value !== this.props.value ||\r\n prevProps.validators !== this.props.validators ||\r\n prevProps.customValidators !== this.props.customValidators ||\r\n prevProps.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 render() {\r\n const clearButtonHidden = !this.state.value?.length || this.props.disabled;\r\n return (\r\n <InputGroup\r\n title={this.props.title}\r\n tooltip={this.props.tooltip}\r\n className={this.props.inputGroupClassName}\r\n >\r\n <div\r\n className={`input__base text-input ${this.getValidationClass()} \r\n ${this.props.readOnly ? 'text-input--readOnly' : ''} ${\r\n this.props.className ? this.props.className : ''\r\n }`}\r\n onClick={this.containerClick}\r\n ref={this.containerRef}\r\n >\r\n <div className=\"text-input__textWrapper\">\r\n {this.props.before}\r\n <input\r\n {...(this.props.id && {\r\n id: this.props.id,\r\n })}\r\n ref={this.inputRef}\r\n placeholder={this.props.placeholder}\r\n disabled={this.getDisabled()}\r\n required={this.props.required}\r\n className={this.state.value ? 'filled' : ''}\r\n onChange={this.handleChange}\r\n value={this.state.value ?? ''}\r\n onBlur={this.handleBlur}\r\n onFocus={this.handleFocus}\r\n readOnly={this.props.readOnly}\r\n onKeyDown={this.onKeyDown}\r\n type={this.props.type}\r\n onClick={this.props.onClick}\r\n maxLength={this.props.maxLength}\r\n size={\r\n this.props.sizeFromValue\r\n ? this.props.value?.length || 1\r\n : undefined\r\n }\r\n />\r\n {this.props.after}\r\n {!this.props.readOnly && this.props.showClearButton && (\r\n <Button\r\n {...(this.props.id && {\r\n id: this.props.id + '-clear-button',\r\n })}\r\n disabled={clearButtonHidden}\r\n unobtrusive={true}\r\n noShadow={true}\r\n onClick={this.clearClick}\r\n className={classNames(\r\n 'text-input__clearButton line-height--0',\r\n {\r\n 'text-input__clearButton--hidden': clearButtonHidden,\r\n }\r\n )}\r\n >\r\n <PlusIcon className=\"transform-rotate--45 line-height--0\" />\r\n </Button>\r\n )}\r\n <span className=\"highlight\" />\r\n <span className=\"bar\" />\r\n {this.renderDefaultValidation()}\r\n {this.props.label && (\r\n <label className={this.props.readOnly ? 'label--focused' : ''}>\r\n {this.renderLabel()}\r\n </label>\r\n )}\r\n </div>\r\n </div>\r\n </InputGroup>\r\n );\r\n }\r\n\r\n private clearClick = () => {\r\n if (this.inputRef.current) {\r\n var nativeTextAreaValueSetter = Object.getOwnPropertyDescriptor(\r\n window.HTMLInputElement.prototype,\r\n 'value'\r\n ).set;\r\n if (nativeTextAreaValueSetter) {\r\n nativeTextAreaValueSetter.call(this.inputRef.current, '');\r\n\r\n const event = new Event('input', { bubbles: true });\r\n this.inputRef.current.dispatchEvent(event);\r\n }\r\n }\r\n };\r\n\r\n private containerClick = (e: React.MouseEvent<HTMLDivElement>) =>\r\n this.props.stopClickPropagation && e.stopPropagation();\r\n\r\n private onKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) =>\r\n this.props.onKeyDown && this.props.onKeyDown(e);\r\n}\r\n\r\nexport const Text = withThemeContext<TextProps, InstanceType<typeof TextRaw>>(\r\n withFormContext<TextProps>(TextRaw),\r\n 'text'\r\n);\r\n\r\nexport default Text;\r\n"],"mappings":"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"}
@@ -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 [12 Aug 2023 at 17:30]</title>
6
+ <title>guestbell-forms [24 Oct 2024 at 16:16]</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>
@@ -31,7 +31,7 @@
31
31
  <body>
32
32
  <div id="app"></div>
33
33
  <script>
34
- window.chartData = [{"label":"guestbell-forms.min.js","isAsset":true,"statSize":53705,"parsedSize":500,"gzipSize":302,"groups":[{"label":"src/lib/scss","path":"./src/lib/scss","statSize":53705,"groups":[{"id":219,"label":"index.scss","path":"./src/lib/scss/index.scss","statSize":53705,"parsedSize":500,"gzipSize":302}],"parsedSize":500,"gzipSize":302}],"isInitialByEntrypoint":{"guestbell-forms":true}}];
34
+ window.chartData = [{"label":"guestbell-forms.min.js","isAsset":true,"statSize":53705,"parsedSize":500,"gzipSize":303,"groups":[{"label":"src/lib/scss","path":"./src/lib/scss","statSize":53705,"groups":[{"id":219,"label":"index.scss","path":"./src/lib/scss/index.scss","statSize":53705,"parsedSize":500,"gzipSize":303}],"parsedSize":500,"gzipSize":303}],"isInitialByEntrypoint":{"guestbell-forms":true}}];
35
35
  window.entrypoints = ["guestbell-forms"];
36
36
  window.defaultSizes = "parsed";
37
37
  </script>
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.81",
2
+ "version": "3.0.83",
3
3
  "description": "React forms with validation as used in GuestBell",
4
4
  "keywords": [
5
5
  "react",
@@ -41,8 +41,8 @@
41
41
  "@types/babel__core": "^7.20.0",
42
42
  "@types/lodash.debounce": "^4.0.6",
43
43
  "@types/react": "^18.0.4",
44
- "@types/react-datepicker": "^4.11.2",
45
44
  "@types/react-dom": "^18.0.0",
45
+ "@types/react-datepicker": "^4.11.2",
46
46
  "@types/react-onclickoutside": "6.7.3",
47
47
  "@vitejs/plugin-react": "4.0.0",
48
48
  "babel-loader": "^8.3.0",
@@ -329,10 +329,8 @@ export class BaseInput<
329
329
  if (!this.props.ignoreContext) {
330
330
  this.props.formContext &&
331
331
  this.props.formContext.updateCallback(this.componentId, {
332
- validation: {
333
- isValid: true,
334
- errors: [],
335
- },
332
+ isValid: true,
333
+ errors: [],
336
334
  });
337
335
  }
338
336
  }
@@ -346,10 +344,8 @@ export class BaseInput<
346
344
  if (!this.props.ignoreContext) {
347
345
  this.props.formContext &&
348
346
  this.props.formContext.updateCallback(this.componentId, {
349
- validation: {
350
- isValid: false,
351
- errors: errors,
352
- },
347
+ isValid: false,
348
+ errors: errors,
353
349
  });
354
350
  }
355
351
  }
@@ -478,10 +474,8 @@ export class BaseInput<
478
474
  if (!props.ignoreContext) {
479
475
  props.formContext &&
480
476
  props.formContext.updateCallback(this.componentId, {
481
- validation: {
482
- isValid: isValid,
483
- errors: errors,
484
- },
477
+ isValid: isValid,
478
+ errors: errors,
485
479
  });
486
480
  }
487
481
  }
@@ -33,10 +33,8 @@ export class ExternalValidationComponentRaw extends BaseInput<
33
33
  };
34
34
  if (!this.props.ignoreContext && this.props.formContext) {
35
35
  this.props.formContext.updateCallback(this.componentId, {
36
- validation: {
37
- isValid: props.isValid,
38
- errors: props.errors,
39
- },
36
+ isValid: props.isValid,
37
+ errors: props.errors,
40
38
  });
41
39
  }
42
40
  }
@@ -51,10 +49,8 @@ export class ExternalValidationComponentRaw extends BaseInput<
51
49
  ) {
52
50
  if (!this.props.ignoreContext && this.props.formContext) {
53
51
  this.props.formContext.updateCallback(this.componentId, {
54
- validation: {
55
- isValid: this.props.isValid,
56
- errors: this.props.errors,
57
- },
52
+ isValid: this.props.isValid,
53
+ errors: this.props.errors,
58
54
  });
59
55
  }
60
56
  }
@@ -7,6 +7,7 @@ import {
7
7
  FormComponentContextState,
8
8
  FormContextProvider,
9
9
  ComponentsDict,
10
+ FormComponentValidationContextStateBase,
10
11
  } from './FormContext';
11
12
  import { withThemeContext } from '../themeProvider/withThemeContext';
12
13
  import { ThemeContextProps } from '../themeProvider/ThemeContext';
@@ -68,8 +69,8 @@ export class Form extends React.PureComponent<FormProps, FormState> {
68
69
  ) {
69
70
  const componentsWithErrors = this.state.contextState
70
71
  ? Object.keys(this.state.contextState.components)
71
- .map(key => this.state.contextState.components[key])
72
- .filter(component => {
72
+ .map((key) => this.state.contextState.components[key])
73
+ .filter((component) => {
73
74
  if (!component.validation.isValid && !component.validation.name) {
74
75
  console.warn(
75
76
  component,
@@ -91,7 +92,7 @@ export class Form extends React.PureComponent<FormProps, FormState> {
91
92
  ...this.state.contextState.components,
92
93
  ...this.props.extraComponents,
93
94
  };
94
- Object.keys(components).forEach(key => {
95
+ Object.keys(components).forEach((key) => {
95
96
  const component = components[key];
96
97
  component &&
97
98
  component.componentApi &&
@@ -105,7 +106,7 @@ export class Form extends React.PureComponent<FormProps, FormState> {
105
106
  ...this.state.contextState.components,
106
107
  ...this.props.extraComponents,
107
108
  };
108
- Object.keys(components).forEach(key => {
109
+ Object.keys(components).forEach((key) => {
109
110
  const component = components[key];
110
111
  component &&
111
112
  component.componentApi &&
@@ -119,7 +120,7 @@ export class Form extends React.PureComponent<FormProps, FormState> {
119
120
  ...this.state.contextState.components,
120
121
  ...this.props.extraComponents,
121
122
  };
122
- Object.keys(components).forEach(key => {
123
+ Object.keys(components).forEach((key) => {
123
124
  const component = components[key];
124
125
  component &&
125
126
  component.componentApi &&
@@ -133,7 +134,7 @@ export class Form extends React.PureComponent<FormProps, FormState> {
133
134
  ...this.state.contextState.components,
134
135
  ...this.props.extraComponents,
135
136
  };
136
- Object.keys(components).forEach(key => {
137
+ Object.keys(components).forEach((key) => {
137
138
  const component = components[key];
138
139
  component &&
139
140
  component.componentApi &&
@@ -187,7 +188,7 @@ export class Form extends React.PureComponent<FormProps, FormState> {
187
188
  componentState: FormComponentContextState
188
189
  ) {
189
190
  if (componentId) {
190
- this.setState(previousState => {
191
+ this.setState((previousState) => {
191
192
  let components = Object.assign(
192
193
  {},
193
194
  previousState.contextState.components
@@ -209,7 +210,7 @@ export class Form extends React.PureComponent<FormProps, FormState> {
209
210
 
210
211
  private unSubscribe(componentId: string) {
211
212
  if (componentId) {
212
- this.setState(previousState => {
213
+ this.setState((previousState) => {
213
214
  let components = Object.assign(
214
215
  {},
215
216
  previousState.contextState.components
@@ -232,7 +233,7 @@ export class Form extends React.PureComponent<FormProps, FormState> {
232
233
  initialValid: boolean = true
233
234
  ): boolean {
234
235
  let isFormValid = initialValid;
235
- Object.keys(components).forEach(key => {
236
+ Object.keys(components).forEach((key) => {
236
237
  const component = components[key];
237
238
  if (component && component.validation && !component.validation.isValid) {
238
239
  isFormValid = false;
@@ -243,18 +244,27 @@ export class Form extends React.PureComponent<FormProps, FormState> {
243
244
 
244
245
  private updateCallback(
245
246
  componentId: string,
246
- componentState: FormComponentContextState
247
+ componentState: FormComponentValidationContextStateBase
247
248
  ) {
248
- this.setState(previousState => {
249
+ this.setState((previousState) => {
249
250
  let components = Object.assign({}, previousState.contextState.components);
250
251
  const previousComponent = components[componentId];
252
+ if (
253
+ previousComponent.validation.isValid === componentState.isValid &&
254
+ previousComponent.validation.errors?.length ===
255
+ componentState.errors?.length &&
256
+ previousComponent.validation.errors?.every(
257
+ (error, index) => error === componentState.errors?.[index]
258
+ )
259
+ ) {
260
+ return previousState;
261
+ }
251
262
  if (componentState && previousComponent) {
252
263
  components[componentId] = {
253
264
  ...previousComponent,
254
- ...componentState,
255
265
  validation: {
256
266
  ...previousComponent.validation,
257
- ...componentState.validation,
267
+ ...componentState,
258
268
  },
259
269
  };
260
270
  }
@@ -1,15 +1,19 @@
1
1
  import * as React from 'react';
2
2
  import { ValidationError, ComponentApi } from '../base/input';
3
- import { DeepPartial, PartialBy } from '../utils/Typescript';
3
+ import { PartialBy } from '../utils/Typescript';
4
4
 
5
5
  export type OmitFormContext<P extends FormContextProps> = PartialBy<
6
6
  P,
7
7
  'formContext'
8
8
  >;
9
9
 
10
- export interface FormComponentValidationContextState {
10
+ export interface FormComponentValidationContextStateBase {
11
11
  isValid: boolean;
12
12
  errors: ValidationError[];
13
+ }
14
+
15
+ export interface FormComponentValidationContextState
16
+ extends FormComponentValidationContextStateBase {
13
17
  name: JSX.Element | string;
14
18
  }
15
19
 
@@ -35,7 +39,7 @@ export interface FormContextState {
35
39
  isFormValid: boolean;
36
40
  updateCallback: (
37
41
  componentId: string,
38
- newComponentState: DeepPartial<FormComponentContextState>
42
+ newComponentState: FormComponentValidationContextStateBase
39
43
  ) => void;
40
44
  disableComponents: () => void;
41
45
  enableComponents: () => void;
@@ -729,7 +729,7 @@ interface TagsFinal {
729
729
  IdT extends number | string = number,
730
730
  T extends ResourceTConstraint<IdT> = Tag<IdT>
731
731
  >(
732
- item: TagsProps<IdT, T>
732
+ item: TagsProps<IdT, T> & { ref?: React.Ref<TagsRaw<IdT, T>> }
733
733
  ): React.ReactElement;
734
734
  defaultProps?: Partial<TagsProps<any, any>>;
735
735
  }
@@ -54,10 +54,8 @@ export class TextRaw extends BaseInput<TextProps, TextState, HTMLInputElement> {
54
54
  if (!this.props.ignoreContext) {
55
55
  this.props.formContext &&
56
56
  this.props.formContext.updateCallback(this.componentId, {
57
- validation: {
58
- isValid: res.isValid,
59
- errors: res.errors,
60
- },
57
+ isValid: res.isValid,
58
+ errors: res.errors,
61
59
  });
62
60
  }
63
61
  }