guestbell-forms 3.0.99 → 3.0.100

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.
@@ -14,6 +14,8 @@ export interface SelectProps extends BaseInputProps<HTMLSelectElement> {
14
14
  inputRef?: (input: HTMLSelectElement) => void;
15
15
  readOnly?: boolean;
16
16
  readonlyEmptyPlaceholder?: string;
17
+ after?: React.ReactNode;
18
+ before?: React.ReactNode;
17
19
  }
18
20
  export interface SelectState extends BaseInputState {
19
21
  }
@@ -61,7 +61,7 @@ class SelectRaw extends _BaseInput.BaseInput {
61
61
  }, /*#__PURE__*/React.createElement("div", {
62
62
  className: 'input__base select-input ' + this.getValidationClass() + ' ' + (this.props.className ? this.props.className : '') + ' ' + (this.props.readOnly ? 'readonly' : '') + ' ' + (this.props.multiple ? 'multiple' : ''),
63
63
  ref: this.containerRef
64
- }, this.renderSelectedValues(), finalValues.length > 0 && (this.props.multiple && !this.props.readOnly || !this.props.multiple) && /*#__PURE__*/React.createElement("div", {
64
+ }, this.props.before, this.renderSelectedValues(), finalValues.length > 0 && (this.props.multiple && !this.props.readOnly || !this.props.multiple) && /*#__PURE__*/React.createElement("div", {
65
65
  className: "select-input__select__wrapper"
66
66
  }, !this.props.multiple && !this.props.readOnly || this.props.multiple ? /*#__PURE__*/React.createElement("select", _extends({}, this.props.id && {
67
67
  id: this.props.id
@@ -91,7 +91,7 @@ class SelectRaw extends _BaseInput.BaseInput {
91
91
  className: "highlight"
92
92
  }), /*#__PURE__*/React.createElement("span", {
93
93
  className: "bar"
94
- }), this.renderDefaultValidation(), this.props.label && finalValues.length > 0 && /*#__PURE__*/React.createElement("label", null, this.renderLabel()))));
94
+ }), this.renderDefaultValidation(), this.props.label && finalValues.length > 0 && /*#__PURE__*/React.createElement("label", null, this.renderLabel())), this.props.after));
95
95
  }
96
96
  handleValueChange(value) {
97
97
  let isValid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","names":["React","_interopRequireWildcard","require","_InputGroup","_interopRequireDefault","_BaseInput","_Button","_withFormContext","_withThemeContext","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","PlusIcon","props","createElement","d","defaultProps","xmlns","width","height","viewBox","SelectRaw","BaseInput","constructor","removeItemClick","item","newValues","selectedValues","filter","sv","value","handleValid","onSelectedValuesChange","val","defaultEmpty","values","state","handleChangeCustom","componentDidMount","multiple","componentDidUpdate","oldProps","validators","customValidators","required","handleValueChange","render","finalValues","findIndex","t","title","tooltip","className","inputGroupClassName","getValidationClass","readOnly","ref","containerRef","renderSelectedValues","id","inputRef","disabled","getDisabled","onChange","onBlur","handleBlur","onFocus","handleFocus","tabIndex","style","display","map","index","label","renderReadonly","renderDefaultValidation","renderLabel","isValid","undefined","errors","initializing","focused","touched","touchOn","setState","_this$props$onFocus","_this$props","event","isNaN","Number","valNumber","concat","handleChange","push","getTranslations","defaultBaseTranslations","forEach","customValidator","_this$state","validInner","Validate","error","setValid","setInvalid","toString","Button","forceSelected","circular","blank","onClick","readonlyEmptyPlaceholder","exports","Select","withThemeContext","withFormContext","_default"],"sources":["../../../src/lib/components/select/Select.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport InputGroup from '../inputGroup/InputGroup';\r\nimport * as PlusIcon from 'material-design-icons/content/svg/production/ic_add_circle_outline_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 } from '../button/Button';\r\nimport { withFormContext } from '../form/withFormContext';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\n\r\nexport interface SelectValue {\r\n value: number | string;\r\n label?: string;\r\n forceSelected?: boolean;\r\n}\r\n\r\nexport interface SelectProps extends BaseInputProps<HTMLSelectElement> {\r\n values?: SelectValue[];\r\n defaultEmpty?: boolean;\r\n multiple?: boolean;\r\n selectedValues?: SelectValue[];\r\n onSelectedValuesChange?: (newValues: SelectValue[]) => void;\r\n inputRef?: (input: HTMLSelectElement) => void;\r\n readOnly?: boolean;\r\n readonlyEmptyPlaceholder?: string;\r\n}\r\n\r\nexport interface SelectState extends BaseInputState {}\r\n\r\nexport class SelectRaw extends BaseInput<\r\n SelectProps,\r\n SelectState,\r\n HTMLSelectElement\r\n> {\r\n public static defaultProps = Object.assign({}, BaseInput.defaultProps, {\r\n defaultEmpty: true,\r\n multiple: false,\r\n readOnly: false,\r\n readonlyEmptyPlaceholder: 'N/A',\r\n });\r\n\r\n constructor(props: SelectProps) {\r\n super(props);\r\n const val = !props.value\r\n ? props.defaultEmpty\r\n ? ''\r\n : props.values && props.values.length > 0\r\n ? props.values[0]\r\n : ''\r\n : props.value;\r\n this.state = Object.assign(this.state, { value: val });\r\n this.handleChangeCustom = this.handleChangeCustom.bind(this);\r\n }\r\n\r\n public componentDidMount() {\r\n this.props.multiple && this.handleValid(this.props.selectedValues);\r\n }\r\n\r\n public componentDidUpdate(oldProps: SelectProps) {\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 oldProps.selectedValues !== this.props.selectedValues\r\n ) {\r\n if (this.props.multiple) {\r\n this.handleValid(this.props.selectedValues);\r\n } else {\r\n this.handleValueChange(this.props.value, true, [], this.props);\r\n }\r\n }\r\n }\r\n\r\n public render() {\r\n const finalValues = this.props.multiple\r\n ? this.props.values.filter(\r\n item =>\r\n this.props.selectedValues.findIndex(t => t.value === item.value) < 0\r\n )\r\n : this.props.values;\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={\r\n 'input__base select-input ' +\r\n this.getValidationClass() +\r\n ' ' +\r\n (this.props.className ? this.props.className : '') +\r\n ' ' +\r\n (this.props.readOnly ? 'readonly' : '') +\r\n ' ' +\r\n (this.props.multiple ? 'multiple' : '')\r\n }\r\n ref={this.containerRef}\r\n >\r\n {this.renderSelectedValues()}\r\n {finalValues.length > 0 &&\r\n ((this.props.multiple && !this.props.readOnly) ||\r\n !this.props.multiple) && (\r\n <div className=\"select-input__select__wrapper\">\r\n {(!this.props.multiple && !this.props.readOnly) ||\r\n this.props.multiple ? (\r\n <select\r\n {...(this.props.id && {\r\n id: this.props.id,\r\n })}\r\n ref={this.inputRef}\r\n disabled={this.getDisabled()}\r\n required={this.props.required}\r\n onChange={this.handleChangeCustom}\r\n value={this.state.value}\r\n className={\r\n 'select-input__select ' +\r\n (this.state.value !== '' ||\r\n (this.props.selectedValues &&\r\n this.props.selectedValues.length > 0)\r\n ? 'filled'\r\n : '')\r\n }\r\n onBlur={this.handleBlur}\r\n onFocus={this.handleFocus}\r\n tabIndex={0}\r\n >\r\n {this.props.defaultEmpty && (\r\n <option\r\n key={-1}\r\n disabled={true}\r\n value=\"\"\r\n style={{ display: 'none' }}\r\n />\r\n )}\r\n {finalValues.map((value, index) => (\r\n <option key={index} value={value.value}>\r\n {value.label ? value.label : value.value}\r\n </option>\r\n ))}\r\n </select>\r\n ) : (\r\n <span\r\n className={\r\n 'select-input__select ' +\r\n (this.state.value !== '' ||\r\n (this.props.selectedValues &&\r\n this.props.selectedValues.length > 0)\r\n ? 'filled'\r\n : '')\r\n }\r\n >\r\n {this.renderReadonly()}\r\n </span>\r\n )}\r\n <span className=\"highlight\" />\r\n <span className=\"bar\" />\r\n {this.renderDefaultValidation()}\r\n {this.props.label && finalValues.length > 0 && (\r\n <label>{this.renderLabel()}</label>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </InputGroup>\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: SelectProps = this.props,\r\n initializing: boolean = false\r\n ) {\r\n if (!this.props.multiple) {\r\n return super.handleValueChange(\r\n value,\r\n isValid,\r\n errors,\r\n props,\r\n initializing\r\n );\r\n } else if (!initializing) {\r\n this.handleValid(this.props.selectedValues);\r\n }\r\n return {\r\n isValid: true,\r\n errors: [],\r\n };\r\n }\r\n\r\n protected handleBlur() {\r\n this.props.onBlur && this.props.onBlur();\r\n let state = { focused: false };\r\n if (!this.state.touched && this.props.touchOn === 'blur') {\r\n state = Object.assign(state, { touched: true });\r\n if (!this.props.multiple) {\r\n this.handleValueChange(this.state.value);\r\n } else {\r\n this.handleValid(this.props.selectedValues);\r\n }\r\n }\r\n this.setState(state);\r\n }\r\n\r\n protected handleFocus() {\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 if (!this.props.multiple) {\r\n this.handleValueChange(this.state.value);\r\n } else {\r\n this.handleValid(this.props.selectedValues);\r\n }\r\n }\r\n this.setState(state);\r\n }\r\n\r\n private handleChangeCustom(event: React.ChangeEvent<HTMLSelectElement>) {\r\n if (this.props.multiple) {\r\n let value = event.target.value;\r\n let val = this.props.values.filter(item => item.value === value)[0];\r\n if (!val) {\r\n if (!isNaN(Number(value))) {\r\n let valNumber = Number(value);\r\n val = this.props.values.filter(item => item.value === valNumber)[0];\r\n }\r\n }\r\n let newValues = this.props.selectedValues.concat(val);\r\n if (val) {\r\n this.props.onSelectedValuesChange &&\r\n this.props.onSelectedValuesChange(newValues);\r\n this.handleValid(newValues);\r\n this.setState({ value: '' });\r\n }\r\n } else {\r\n this.handleChange(event);\r\n }\r\n }\r\n\r\n private handleValid(newValues: SelectValue[]) {\r\n let isValid = true;\r\n let errors: ValidationError[] = [];\r\n if (this.props.required) {\r\n if (newValues.length === 0) {\r\n isValid = false;\r\n errors.push(this.getTranslations(defaultBaseTranslations).required);\r\n }\r\n }\r\n if (this.props.customValidators) {\r\n this.props.customValidators.forEach(customValidator => {\r\n let validInner = false;\r\n validInner = customValidator.Validate(\r\n this.state?.value,\r\n this.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 if (isValid) {\r\n this.setValid();\r\n } else {\r\n this.setInvalid(errors);\r\n }\r\n }\r\n\r\n private renderReadonly() {\r\n const value = this.props.values.filter(\r\n item => item.value.toString() === this.state.value\r\n )[0];\r\n return value ? (value.label ? value.label : value.value) : '';\r\n }\r\n\r\n private renderSelectedValues() {\r\n return this.props.multiple ? (\r\n this.props.selectedValues.length > 0 ? (\r\n <div className=\"select-input__selectedValue__wrapper\">\r\n {this.props.selectedValues.map((item, index) => (\r\n <div className=\"select-input__selectedValue\" key={index}>\r\n {item.label ? item.label : item.value}\r\n {!this.props.readOnly && (\r\n <Button\r\n disabled={item.forceSelected}\r\n circular={true}\r\n blank={true}\r\n onClick={this.removeItemClick(item)}\r\n className=\"ml-1 transform-rotate--45 line-height--0 p-0\"\r\n >\r\n <PlusIcon />\r\n </Button>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ) : (\r\n this.props.readOnly && (\r\n <div className=\"select-input__selectedValue__wrapper\">\r\n <div className=\"select-input__selectedValue\">\r\n {this.props.readonlyEmptyPlaceholder}\r\n </div>\r\n </div>\r\n )\r\n )\r\n ) : null;\r\n }\r\n\r\n private removeItemClick = (item: SelectValue) => () => {\r\n const newValues = this.props.selectedValues.filter(\r\n sv => sv.value !== item.value\r\n );\r\n this.handleValid(newValues);\r\n this.props.onSelectedValuesChange &&\r\n this.props.onSelectedValuesChange(newValues);\r\n };\r\n}\r\n\r\nexport const Select = withThemeContext<\r\n SelectProps,\r\n InstanceType<typeof SelectRaw>\r\n>(withFormContext<SelectProps>(SelectRaw), 'select');\r\n\r\nexport default Select;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","names":["React","_interopRequireWildcard","require","_InputGroup","_interopRequireDefault","_BaseInput","_Button","_withFormContext","_withThemeContext","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","PlusIcon","props","createElement","d","defaultProps","xmlns","width","height","viewBox","SelectRaw","BaseInput","constructor","removeItemClick","item","newValues","selectedValues","filter","sv","value","handleValid","onSelectedValuesChange","val","defaultEmpty","values","state","handleChangeCustom","componentDidMount","multiple","componentDidUpdate","oldProps","validators","customValidators","required","handleValueChange","render","finalValues","findIndex","t","title","tooltip","className","inputGroupClassName","getValidationClass","readOnly","ref","containerRef","before","renderSelectedValues","id","inputRef","disabled","getDisabled","onChange","onBlur","handleBlur","onFocus","handleFocus","tabIndex","style","display","map","index","label","renderReadonly","renderDefaultValidation","renderLabel","after","isValid","undefined","errors","initializing","focused","touched","touchOn","setState","_this$props$onFocus","_this$props","event","isNaN","Number","valNumber","concat","handleChange","push","getTranslations","defaultBaseTranslations","forEach","customValidator","_this$state","validInner","Validate","error","setValid","setInvalid","toString","Button","forceSelected","circular","blank","onClick","readonlyEmptyPlaceholder","exports","Select","withThemeContext","withFormContext","_default"],"sources":["../../../src/lib/components/select/Select.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport InputGroup from '../inputGroup/InputGroup';\r\nimport * as PlusIcon from 'material-design-icons/content/svg/production/ic_add_circle_outline_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 } from '../button/Button';\r\nimport { withFormContext } from '../form/withFormContext';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\n\r\nexport interface SelectValue {\r\n value: number | string;\r\n label?: string;\r\n forceSelected?: boolean;\r\n}\r\n\r\nexport interface SelectProps extends BaseInputProps<HTMLSelectElement> {\r\n values?: SelectValue[];\r\n defaultEmpty?: boolean;\r\n multiple?: boolean;\r\n selectedValues?: SelectValue[];\r\n onSelectedValuesChange?: (newValues: SelectValue[]) => void;\r\n inputRef?: (input: HTMLSelectElement) => void;\r\n readOnly?: boolean;\r\n readonlyEmptyPlaceholder?: string;\r\n after?: React.ReactNode;\r\n before?: React.ReactNode;\r\n}\r\n\r\nexport interface SelectState extends BaseInputState {}\r\n\r\nexport class SelectRaw extends BaseInput<\r\n SelectProps,\r\n SelectState,\r\n HTMLSelectElement\r\n> {\r\n public static defaultProps = Object.assign({}, BaseInput.defaultProps, {\r\n defaultEmpty: true,\r\n multiple: false,\r\n readOnly: false,\r\n readonlyEmptyPlaceholder: 'N/A',\r\n });\r\n\r\n constructor(props: SelectProps) {\r\n super(props);\r\n const val = !props.value\r\n ? props.defaultEmpty\r\n ? ''\r\n : props.values && props.values.length > 0\r\n ? props.values[0]\r\n : ''\r\n : props.value;\r\n this.state = Object.assign(this.state, { value: val });\r\n this.handleChangeCustom = this.handleChangeCustom.bind(this);\r\n }\r\n\r\n public componentDidMount() {\r\n this.props.multiple && this.handleValid(this.props.selectedValues);\r\n }\r\n\r\n public componentDidUpdate(oldProps: SelectProps) {\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 oldProps.selectedValues !== this.props.selectedValues\r\n ) {\r\n if (this.props.multiple) {\r\n this.handleValid(this.props.selectedValues);\r\n } else {\r\n this.handleValueChange(this.props.value, true, [], this.props);\r\n }\r\n }\r\n }\r\n\r\n public render() {\r\n const finalValues = this.props.multiple\r\n ? this.props.values.filter(\r\n (item) =>\r\n this.props.selectedValues.findIndex((t) => t.value === item.value) <\r\n 0\r\n )\r\n : this.props.values;\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={\r\n 'input__base select-input ' +\r\n this.getValidationClass() +\r\n ' ' +\r\n (this.props.className ? this.props.className : '') +\r\n ' ' +\r\n (this.props.readOnly ? 'readonly' : '') +\r\n ' ' +\r\n (this.props.multiple ? 'multiple' : '')\r\n }\r\n ref={this.containerRef}\r\n >\r\n {this.props.before}\r\n {this.renderSelectedValues()}\r\n {finalValues.length > 0 &&\r\n ((this.props.multiple && !this.props.readOnly) ||\r\n !this.props.multiple) && (\r\n <div className=\"select-input__select__wrapper\">\r\n {(!this.props.multiple && !this.props.readOnly) ||\r\n this.props.multiple ? (\r\n <select\r\n {...(this.props.id && {\r\n id: this.props.id,\r\n })}\r\n ref={this.inputRef}\r\n disabled={this.getDisabled()}\r\n required={this.props.required}\r\n onChange={this.handleChangeCustom}\r\n value={this.state.value}\r\n className={\r\n 'select-input__select ' +\r\n (this.state.value !== '' ||\r\n (this.props.selectedValues &&\r\n this.props.selectedValues.length > 0)\r\n ? 'filled'\r\n : '')\r\n }\r\n onBlur={this.handleBlur}\r\n onFocus={this.handleFocus}\r\n tabIndex={0}\r\n >\r\n {this.props.defaultEmpty && (\r\n <option\r\n key={-1}\r\n disabled={true}\r\n value=\"\"\r\n style={{ display: 'none' }}\r\n />\r\n )}\r\n {finalValues.map((value, index) => (\r\n <option key={index} value={value.value}>\r\n {value.label ? value.label : value.value}\r\n </option>\r\n ))}\r\n </select>\r\n ) : (\r\n <span\r\n className={\r\n 'select-input__select ' +\r\n (this.state.value !== '' ||\r\n (this.props.selectedValues &&\r\n this.props.selectedValues.length > 0)\r\n ? 'filled'\r\n : '')\r\n }\r\n >\r\n {this.renderReadonly()}\r\n </span>\r\n )}\r\n <span className=\"highlight\" />\r\n <span className=\"bar\" />\r\n {this.renderDefaultValidation()}\r\n {this.props.label && finalValues.length > 0 && (\r\n <label>{this.renderLabel()}</label>\r\n )}\r\n </div>\r\n )}\r\n {this.props.after}\r\n </div>\r\n </InputGroup>\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: SelectProps = this.props,\r\n initializing: boolean = false\r\n ) {\r\n if (!this.props.multiple) {\r\n return super.handleValueChange(\r\n value,\r\n isValid,\r\n errors,\r\n props,\r\n initializing\r\n );\r\n } else if (!initializing) {\r\n this.handleValid(this.props.selectedValues);\r\n }\r\n return {\r\n isValid: true,\r\n errors: [],\r\n };\r\n }\r\n\r\n protected handleBlur() {\r\n this.props.onBlur && this.props.onBlur();\r\n let state = { focused: false };\r\n if (!this.state.touched && this.props.touchOn === 'blur') {\r\n state = Object.assign(state, { touched: true });\r\n if (!this.props.multiple) {\r\n this.handleValueChange(this.state.value);\r\n } else {\r\n this.handleValid(this.props.selectedValues);\r\n }\r\n }\r\n this.setState(state);\r\n }\r\n\r\n protected handleFocus() {\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 if (!this.props.multiple) {\r\n this.handleValueChange(this.state.value);\r\n } else {\r\n this.handleValid(this.props.selectedValues);\r\n }\r\n }\r\n this.setState(state);\r\n }\r\n\r\n private handleChangeCustom(event: React.ChangeEvent<HTMLSelectElement>) {\r\n if (this.props.multiple) {\r\n let value = event.target.value;\r\n let val = this.props.values.filter((item) => item.value === value)[0];\r\n if (!val) {\r\n if (!isNaN(Number(value))) {\r\n let valNumber = Number(value);\r\n val = this.props.values.filter((item) => item.value === valNumber)[0];\r\n }\r\n }\r\n let newValues = this.props.selectedValues.concat(val);\r\n if (val) {\r\n this.props.onSelectedValuesChange &&\r\n this.props.onSelectedValuesChange(newValues);\r\n this.handleValid(newValues);\r\n this.setState({ value: '' });\r\n }\r\n } else {\r\n this.handleChange(event);\r\n }\r\n }\r\n\r\n private handleValid(newValues: SelectValue[]) {\r\n let isValid = true;\r\n let errors: ValidationError[] = [];\r\n if (this.props.required) {\r\n if (newValues.length === 0) {\r\n isValid = false;\r\n errors.push(this.getTranslations(defaultBaseTranslations).required);\r\n }\r\n }\r\n if (this.props.customValidators) {\r\n this.props.customValidators.forEach((customValidator) => {\r\n let validInner = false;\r\n validInner = customValidator.Validate(\r\n this.state?.value,\r\n this.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 if (isValid) {\r\n this.setValid();\r\n } else {\r\n this.setInvalid(errors);\r\n }\r\n }\r\n\r\n private renderReadonly() {\r\n const value = this.props.values.filter(\r\n (item) => item.value.toString() === this.state.value\r\n )[0];\r\n return value ? (value.label ? value.label : value.value) : '';\r\n }\r\n\r\n private renderSelectedValues() {\r\n return this.props.multiple ? (\r\n this.props.selectedValues.length > 0 ? (\r\n <div className=\"select-input__selectedValue__wrapper\">\r\n {this.props.selectedValues.map((item, index) => (\r\n <div className=\"select-input__selectedValue\" key={index}>\r\n {item.label ? item.label : item.value}\r\n {!this.props.readOnly && (\r\n <Button\r\n disabled={item.forceSelected}\r\n circular={true}\r\n blank={true}\r\n onClick={this.removeItemClick(item)}\r\n className=\"ml-1 transform-rotate--45 line-height--0 p-0\"\r\n >\r\n <PlusIcon />\r\n </Button>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n ) : (\r\n this.props.readOnly && (\r\n <div className=\"select-input__selectedValue__wrapper\">\r\n <div className=\"select-input__selectedValue\">\r\n {this.props.readonlyEmptyPlaceholder}\r\n </div>\r\n </div>\r\n )\r\n )\r\n ) : null;\r\n }\r\n\r\n private removeItemClick = (item: SelectValue) => () => {\r\n const newValues = this.props.selectedValues.filter(\r\n (sv) => sv.value !== item.value\r\n );\r\n this.handleValid(newValues);\r\n this.props.onSelectedValuesChange &&\r\n this.props.onSelectedValuesChange(newValues);\r\n };\r\n}\r\n\r\nexport const Select = withThemeContext<\r\n SelectProps,\r\n InstanceType<typeof SelectRaw>\r\n>(withFormContext<SelectProps>(SelectRaw), 'select');\r\n\r\nexport default Select;\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 [1 Nov 2024 at 13:26]</title>
6
+ <title>guestbell-forms [2 Nov 2024 at 11:42]</title>
7
7
  <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
8
8
 
9
9
  <script>
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.99",
2
+ "version": "3.0.100",
3
3
  "description": "React forms with validation as used in GuestBell",
4
4
  "keywords": [
5
5
  "react",
@@ -30,6 +30,8 @@ export interface SelectProps extends BaseInputProps<HTMLSelectElement> {
30
30
  inputRef?: (input: HTMLSelectElement) => void;
31
31
  readOnly?: boolean;
32
32
  readonlyEmptyPlaceholder?: string;
33
+ after?: React.ReactNode;
34
+ before?: React.ReactNode;
33
35
  }
34
36
 
35
37
  export interface SelectState extends BaseInputState {}
@@ -82,8 +84,9 @@ export class SelectRaw extends BaseInput<
82
84
  public render() {
83
85
  const finalValues = this.props.multiple
84
86
  ? this.props.values.filter(
85
- item =>
86
- this.props.selectedValues.findIndex(t => t.value === item.value) < 0
87
+ (item) =>
88
+ this.props.selectedValues.findIndex((t) => t.value === item.value) <
89
+ 0
87
90
  )
88
91
  : this.props.values;
89
92
  return (
@@ -105,6 +108,7 @@ export class SelectRaw extends BaseInput<
105
108
  }
106
109
  ref={this.containerRef}
107
110
  >
111
+ {this.props.before}
108
112
  {this.renderSelectedValues()}
109
113
  {finalValues.length > 0 &&
110
114
  ((this.props.multiple && !this.props.readOnly) ||
@@ -169,6 +173,7 @@ export class SelectRaw extends BaseInput<
169
173
  )}
170
174
  </div>
171
175
  )}
176
+ {this.props.after}
172
177
  </div>
173
178
  </InputGroup>
174
179
  );
@@ -229,11 +234,11 @@ export class SelectRaw extends BaseInput<
229
234
  private handleChangeCustom(event: React.ChangeEvent<HTMLSelectElement>) {
230
235
  if (this.props.multiple) {
231
236
  let value = event.target.value;
232
- let val = this.props.values.filter(item => item.value === value)[0];
237
+ let val = this.props.values.filter((item) => item.value === value)[0];
233
238
  if (!val) {
234
239
  if (!isNaN(Number(value))) {
235
240
  let valNumber = Number(value);
236
- val = this.props.values.filter(item => item.value === valNumber)[0];
241
+ val = this.props.values.filter((item) => item.value === valNumber)[0];
237
242
  }
238
243
  }
239
244
  let newValues = this.props.selectedValues.concat(val);
@@ -258,12 +263,12 @@ export class SelectRaw extends BaseInput<
258
263
  }
259
264
  }
260
265
  if (this.props.customValidators) {
261
- this.props.customValidators.forEach(customValidator => {
266
+ this.props.customValidators.forEach((customValidator) => {
262
267
  let validInner = false;
263
268
  validInner = customValidator.Validate(
264
269
  this.state?.value,
265
270
  this.props.required,
266
- error => errors.push(error)
271
+ (error) => errors.push(error)
267
272
  );
268
273
  if (isValid && !validInner) {
269
274
  isValid = validInner;
@@ -279,7 +284,7 @@ export class SelectRaw extends BaseInput<
279
284
 
280
285
  private renderReadonly() {
281
286
  const value = this.props.values.filter(
282
- item => item.value.toString() === this.state.value
287
+ (item) => item.value.toString() === this.state.value
283
288
  )[0];
284
289
  return value ? (value.label ? value.label : value.value) : '';
285
290
  }
@@ -319,7 +324,7 @@ export class SelectRaw extends BaseInput<
319
324
 
320
325
  private removeItemClick = (item: SelectValue) => () => {
321
326
  const newValues = this.props.selectedValues.filter(
322
- sv => sv.value !== item.value
327
+ (sv) => sv.value !== item.value
323
328
  );
324
329
  this.handleValid(newValues);
325
330
  this.props.onSelectedValuesChange &&