guestbell-forms 3.0.12 → 3.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.eslintrc.json ADDED
@@ -0,0 +1,14 @@
1
+ {
2
+ "extends": "next/core-web-vitals",
3
+ "rules": {
4
+ "import/no-anonymous-default-export": "off"
5
+ },
6
+ "overrides": [
7
+ {
8
+ "files": ["src/**/*.stories.tsx"],
9
+ "rules": {
10
+ "import/no-anonymous-default-export": "off"
11
+ }
12
+ }
13
+ ]
14
+ }
@@ -49,6 +49,7 @@ export declare type BaseInputProps<HTMLType extends AllowedHtmlElements, Transla
49
49
  defaultTouched?: boolean;
50
50
  translations?: TranslationsT;
51
51
  inputGroupClassName?: string;
52
+ infoText?: string | JSX.Element;
52
53
  } & FormContextProps;
53
54
  export interface BaseInputState {
54
55
  isValid: boolean;
@@ -66,6 +67,7 @@ export declare class BaseInput<P extends BaseInputProps<HTMLType, TranslationsT>
66
67
  inputRef: React.RefObject<HTMLType>;
67
68
  protected containerRef: React.RefObject<HTMLDivElement>;
68
69
  private lastValidation;
70
+ private lastInfoText;
69
71
  constructor(props: P, subscribe?: boolean);
70
72
  componentWillUnmount(): void;
71
73
  componentDidUpdate(oldProps: P, oldState: S): void;
@@ -49,6 +49,8 @@ class BaseInput extends React.Component {
49
49
 
50
50
  _defineProperty(this, "lastValidation", void 0);
51
51
 
52
+ _defineProperty(this, "lastInfoText", void 0);
53
+
52
54
  const res = this.handleValueChange(this.props.value, true, [], props, true);
53
55
  this.state = {
54
56
  isValid: res.isValid,
@@ -156,21 +158,7 @@ class BaseInput extends React.Component {
156
158
  return null;
157
159
  }
158
160
 
159
- let finalErrors = this.state.errors;
160
-
161
- if (!finalErrors) {
162
- finalErrors = [];
163
- }
164
-
165
- if (extraErrors) {
166
- finalErrors = finalErrors.concat(extraErrors);
167
- }
168
-
169
- if (this.props.errors) {
170
- finalErrors = finalErrors.concat(this.props.errors);
171
- }
172
-
173
- finalErrors = finalErrors.filter(i => i);
161
+ let finalErrors = (this.state.errors ?? []).concat(extraErrors ?? []).concat(this.props.errors ?? []).filter(i => i);
174
162
 
175
163
  if (finalErrors.length > 0) {
176
164
  this.lastValidation = finalErrors.map((item, index) => /*#__PURE__*/React.createElement("li", {
@@ -179,11 +167,24 @@ class BaseInput extends React.Component {
179
167
  }, item));
180
168
  }
181
169
 
182
- return /*#__PURE__*/React.createElement("div", {
170
+ if (this.props.infoText && this.state.isValid) {
171
+ this.lastInfoText = [/*#__PURE__*/React.createElement("li", {
172
+ key: 1,
173
+ className: "info-text__item"
174
+ }, /*#__PURE__*/React.createElement("span", {
175
+ className: "info-icon"
176
+ }, "i"), this.props.infoText)];
177
+ }
178
+
179
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
183
180
  className: "validation__container"
184
181
  }, /*#__PURE__*/React.createElement("ul", {
185
182
  className: "validation__ul"
186
- }, this.lastValidation));
183
+ }, this.lastValidation)), /*#__PURE__*/React.createElement("div", {
184
+ className: "info-text__container"
185
+ }, /*#__PURE__*/React.createElement("ul", {
186
+ className: "info-text__ul"
187
+ }, this.lastInfoText)));
187
188
  }
188
189
 
189
190
  handleChange(event, isValid) {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseInput.js","names":["defaultBaseTranslations","required","BaseInput","React","Component","constructor","props","subscribe","guid","res","handleValueChange","value","state","isValid","errors","touched","defaultTouched","disabled","focused","handleValueChangeEnabled","containerRef","createRef","inputRef","handleChange","bind","handleBlur","handleFocus","setValid","focus","scrollTo","setInvalid","disableComponent","enableComponent","touch","unTouch","subscribeSelf","componentWillUnmount","ignoreContext","formContext","unSubscribe","componentId","componentDidUpdate","oldProps","oldState","validators","customValidators","domNode","ReactDOM","findDOMNode","current","scrollIntoView","behavior","setState","onFocus","shouldComponentUpdate","nextProps","nextState","shouldUpdate","shallowEqual","reRendersWhenContextChanges","undefined","getValidationClass","extraErrors","showValidation","length","renderDefaultValidation","finalErrors","concat","filter","i","lastValidation","map","item","index","event","target","onTheFlightValidate","onChange","componentApi","validation","name","validationName","title","label","onBlur","touchOn","Object","assign","getDisabled","updateCallback","renderLabel","touchable","tooltip","classNames","renderTooltip","renderTitle","initializing","translations","getTranslations","push","forEach","validator","validInner","Validators","EmailValidator","Validate","error","NumberValidator","LatitudeValidator","LongitudeValidator","UrlValidator","Error","customValidator","onErrorsChanged","content","Tippy","require","default","document","body","tooltipProps","_defaultTranslations","className"],"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} & FormContextProps;\r\n\r\nexport interface BaseInputState {\r\n isValid: boolean;\r\n value: string;\r\n errors: ValidationError[];\r\n validator: undefined;\r\n touched: boolean;\r\n disabled: boolean;\r\n focused: boolean;\r\n handleValueChangeEnabled: boolean;\r\n}\r\n\r\nexport class BaseInput<\r\n P extends BaseInputProps<HTMLType, TranslationsT>,\r\n S extends BaseInputState,\r\n HTMLType extends AllowedHtmlElements,\r\n TranslationsT extends BaseTranslations = BaseTranslations\r\n> extends React.Component<P, S> implements ComponentApi {\r\n public static defaultProps: BaseInputProps<never> = {\r\n className: undefined,\r\n required: false,\r\n label: undefined,\r\n disabled: false,\r\n touchOn: 'focus',\r\n ignoreContext: false,\r\n showValidation: true,\r\n formContext: undefined,\r\n reRendersWhenContextChanges: false,\r\n };\r\n\r\n public componentId = guid();\r\n\r\n public inputRef: React.RefObject<HTMLType>;\r\n\r\n protected containerRef: React.RefObject<HTMLDivElement>;\r\n\r\n private lastValidation: JSX.Element[];\r\n\r\n constructor(props: P, subscribe: boolean = true) {\r\n super(props);\r\n const res = this.handleValueChange(this.props.value, true, [], props, true);\r\n this.state = {\r\n isValid: res.isValid,\r\n errors: res.errors,\r\n value: props.value ? props.value : '',\r\n touched: props.defaultTouched,\r\n disabled: false,\r\n focused: false,\r\n handleValueChangeEnabled: true,\r\n } as S;\r\n this.containerRef = React.createRef<HTMLDivElement>();\r\n this.inputRef = React.createRef<HTMLType>();\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.handleFocus = this.handleFocus.bind(this);\r\n this.setValid = this.setValid.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.scrollTo = this.scrollTo.bind(this);\r\n this.setInvalid = this.setInvalid.bind(this);\r\n this.disableComponent = this.disableComponent.bind(this);\r\n this.enableComponent = this.enableComponent.bind(this);\r\n this.touch = this.touch.bind(this);\r\n this.unTouch = this.unTouch.bind(this);\r\n if (subscribe) {\r\n this.subscribeSelf(props);\r\n }\r\n }\r\n\r\n public componentWillUnmount() {\r\n if (!this.props.ignoreContext) {\r\n this.props.formContext &&\r\n this.props.formContext.unSubscribe(this.componentId);\r\n }\r\n }\r\n\r\n public componentDidUpdate(oldProps: P, oldState: S) {\r\n if (\r\n oldProps.value !== this.props.value ||\r\n oldProps.validators !== this.props.validators ||\r\n oldProps.customValidators !== this.props.customValidators ||\r\n oldProps.required !== this.props.required\r\n ) {\r\n this.handleValueChange(this.props.value, true, [], this.props);\r\n }\r\n }\r\n\r\n public scrollTo() {\r\n const domNode: HTMLDivElement = ReactDOM.findDOMNode(\r\n (this.containerRef as React.RefObject<HTMLDivElement>).current\r\n ) as HTMLDivElement;\r\n domNode && domNode.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n\r\n public touch() {\r\n this.setState({ touched: true });\r\n this.handleValueChange(this.state.value || '');\r\n }\r\n\r\n public unTouch() {\r\n this.setState({ touched: false });\r\n }\r\n\r\n public disableComponent() {\r\n this.setState({ disabled: true });\r\n }\r\n\r\n public enableComponent() {\r\n this.setState({ disabled: false });\r\n }\r\n\r\n public focus() {\r\n if (this.inputRef) {\r\n const domNode: HTMLElement = ReactDOM.findDOMNode(\r\n (this.inputRef as React.RefObject<HTMLElement>).current\r\n ) as HTMLElement;\r\n domNode && domNode.focus();\r\n }\r\n this.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 if (!finalErrors) {\r\n finalErrors = [];\r\n }\r\n if (extraErrors) {\r\n finalErrors = finalErrors.concat(extraErrors);\r\n }\r\n if (this.props.errors) {\r\n finalErrors = finalErrors.concat(this.props.errors);\r\n }\r\n finalErrors = finalErrors.filter(i => i);\r\n if (finalErrors.length > 0) {\r\n this.lastValidation = finalErrors.map((item, index) => (\r\n <li key={index} className=\"validation__item\">\r\n {item}\r\n </li>\r\n ));\r\n }\r\n return (\r\n <div className=\"validation__container\">\r\n <ul className=\"validation__ul\">{this.lastValidation}</ul>\r\n </div>\r\n );\r\n }\r\n\r\n protected handleChange(\r\n event: React.ChangeEvent<HTMLType>,\r\n isValid?: boolean,\r\n errors: ValidationError[] = []\r\n ) {\r\n let value = event.target.value;\r\n if (\r\n !this.props.onTheFlightValidate ||\r\n (this.props.onTheFlightValidate && this.props.onTheFlightValidate(value))\r\n ) {\r\n const res = this.handleValueChange(value, isValid, errors);\r\n if (this.props.onChange) {\r\n this.props.onChange(event, res.isValid);\r\n }\r\n }\r\n }\r\n\r\n protected subscribeSelf(props: P) {\r\n if (!props.ignoreContext && props.formContext) {\r\n props.formContext.subscribe(this.componentId, {\r\n componentApi: {\r\n disableComponent: this.disableComponent,\r\n enableComponent: this.enableComponent,\r\n touch: this.touch,\r\n unTouch: this.unTouch,\r\n scrollTo: this.scrollTo,\r\n focus: this.focus,\r\n },\r\n validation: {\r\n isValid: this.state.isValid,\r\n errors: this.state.errors,\r\n name: this.props.validationName\r\n ? this.props.validationName\r\n : this.props.title\r\n ? this.props.title\r\n : this.props.label,\r\n },\r\n });\r\n }\r\n }\r\n\r\n protected handleBlur() {\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":["defaultBaseTranslations","required","BaseInput","React","Component","constructor","props","subscribe","guid","res","handleValueChange","value","state","isValid","errors","touched","defaultTouched","disabled","focused","handleValueChangeEnabled","containerRef","createRef","inputRef","handleChange","bind","handleBlur","handleFocus","setValid","focus","scrollTo","setInvalid","disableComponent","enableComponent","touch","unTouch","subscribeSelf","componentWillUnmount","ignoreContext","formContext","unSubscribe","componentId","componentDidUpdate","oldProps","oldState","validators","customValidators","domNode","ReactDOM","findDOMNode","current","scrollIntoView","behavior","setState","onFocus","shouldComponentUpdate","nextProps","nextState","shouldUpdate","shallowEqual","reRendersWhenContextChanges","undefined","getValidationClass","extraErrors","showValidation","length","renderDefaultValidation","finalErrors","concat","filter","i","lastValidation","map","item","index","infoText","lastInfoText","event","target","onTheFlightValidate","onChange","componentApi","validation","name","validationName","title","label","onBlur","touchOn","Object","assign","getDisabled","updateCallback","renderLabel","touchable","tooltip","classNames","renderTooltip","renderTitle","initializing","translations","getTranslations","push","forEach","validator","validInner","Validators","EmailValidator","Validate","error","NumberValidator","LatitudeValidator","LongitudeValidator","UrlValidator","Error","customValidator","onErrorsChanged","content","Tippy","require","default","document","body","tooltipProps","_defaultTranslations","className"],"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 <span className=\"info-icon\">i</span>\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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"}
@@ -58,6 +58,7 @@ export declare class MoneyRaw extends BaseInput<MoneyProps, MoneyState, never, M
58
58
  required: string;
59
59
  }>;
60
60
  inputGroupClassName?: string;
61
+ infoText?: string | JSX.Element;
61
62
  } & import("../form").FormContextProps & {
62
63
  type: string;
63
64
  allowMultiple: boolean;
@@ -63,6 +63,7 @@ export declare class OpeningHoursDayRaw extends BaseInput<OpeningHoursDayProps,
63
63
  required: string;
64
64
  }>;
65
65
  inputGroupClassName?: string;
66
+ infoText?: string | JSX.Element;
66
67
  } & import("../../form").FormContextProps & {
67
68
  onChange: any;
68
69
  type: string;
@@ -71,6 +71,7 @@ export declare class OpeningHoursSpecialRaw extends BaseInput<OpeningHoursSpecia
71
71
  required: string;
72
72
  }>;
73
73
  inputGroupClassName?: string;
74
+ infoText?: string | JSX.Element;
74
75
  } & import("../../form").FormContextProps & {
75
76
  type: string;
76
77
  placeholder: string;
@@ -86,6 +86,7 @@ export declare class OpeningHoursWeekRaw extends BaseInput<OpeningHoursWeekProps
86
86
  required: string;
87
87
  }>;
88
88
  inputGroupClassName?: string;
89
+ infoText?: string | JSX.Element;
89
90
  } & import("../../form").FormContextProps & {
90
91
  onChange: any;
91
92
  type: string;
@@ -52,6 +52,7 @@ export declare class SelectRaw extends BaseInput<SelectProps, SelectState, HTMLS
52
52
  required: string;
53
53
  }>;
54
54
  inputGroupClassName?: string;
55
+ infoText?: string | JSX.Element;
55
56
  } & import("../form").FormContextProps & {
56
57
  defaultEmpty: boolean;
57
58
  multiple: boolean;
@@ -50,6 +50,7 @@ export declare class SubmitRaw extends BaseInput<SubmitProps, SubmitState, never
50
50
  required: string;
51
51
  }>;
52
52
  inputGroupClassName?: string;
53
+ infoText?: string | JSX.Element;
53
54
  } & import("../form").FormContextProps & {
54
55
  validateForm: boolean;
55
56
  ignoreContext: boolean;
@@ -98,6 +99,7 @@ export declare const Submit: React.ForwardRefExoticComponent<{
98
99
  required: string;
99
100
  }>;
100
101
  inputGroupClassName?: string;
102
+ infoText?: string | JSX.Element;
101
103
  } & import("../form").FormContextProps & {
102
104
  id?: string;
103
105
  onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
@@ -772,9 +772,10 @@
772
772
  border-bottom: 1px solid #eeeeee;
773
773
  width: 100%;
774
774
  transition: 0.5s ease border-color;
775
- margin-bottom: 1rem;
775
+ margin-bottom: 1.25rem;
776
776
  margin-top: 1.25rem;
777
777
  /* VALIDATION ======================================= */
778
+ /* INFO TEXT ======================================= */
778
779
  /* LABEL ======================================= */
779
780
  /* active state */
780
781
  /* BOTTOM BARS ================================= */
@@ -797,8 +798,8 @@
797
798
  padding: 0;
798
799
  margin: 0;
799
800
  position: relative;
800
- margin-top: -20px;
801
- transition: 0.5s; }
801
+ transform: translateY(-20px);
802
+ transition: 0.5s transform ease-in-out; }
802
803
  .input__base .validation__ul .validation__item {
803
804
  white-space: nowrap;
804
805
  margin-left: 10px;
@@ -806,10 +807,46 @@
806
807
  .input__base.validation__error {
807
808
  border-bottom: 1px solid #ffbbbb !important; }
808
809
  .input__base.validation__error .validation__ul {
809
- margin-top: 0; }
810
+ transform: translateY(0); }
810
811
  .input__base.validation__error .bar:before,
811
812
  .input__base.validation__error .bar:after {
812
813
  background-color: #ff5d5d; }
814
+ .input__base .info-text__container {
815
+ position: absolute;
816
+ top: 100%;
817
+ right: 0;
818
+ overflow: hidden;
819
+ font-size: 12px; }
820
+ .input__base .info-text__ul {
821
+ display: flex;
822
+ flex-wrap: wrap;
823
+ padding: 0;
824
+ margin: 0;
825
+ position: relative;
826
+ transform: translateY(0);
827
+ transition: 0.5s transform ease-in-out; }
828
+ .input__base .info-text__ul .info-text__item {
829
+ white-space: nowrap;
830
+ list-style: none;
831
+ line-height: 2; }
832
+ .input__base.validation__error .info-text__ul {
833
+ transform: translateY(-20px); }
834
+ .input__base .info-icon {
835
+ pointer-events: auto;
836
+ bottom: 0.35rem;
837
+ margin-left: 0.25rem;
838
+ background-color: #999999;
839
+ border-radius: 50%;
840
+ color: white;
841
+ text-align: center;
842
+ height: 1rem;
843
+ width: 1rem;
844
+ min-width: 1rem;
845
+ line-height: 1rem;
846
+ font-size: 0.75rem;
847
+ display: inline-block;
848
+ transition: 0.2s ease all;
849
+ margin-right: 0.25rem; }
813
850
  .input__base label,
814
851
  .input__base span.label-classname {
815
852
  color: #999999;