guestbell-forms 3.0.117 → 3.0.119

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.
@@ -163,7 +163,8 @@ class MoneyRaw extends _BaseInput.BaseInput {
163
163
  className: 'money-input__text m-0',
164
164
  number: item.value,
165
165
  onNumberChange: this.onPriceChanged(index),
166
- customValidators: this.props.customValidators
166
+ customValidators: this.props.customValidators,
167
+ validationName: this.props.validationName ? `${this.props.validationName} (${currency === null || currency === void 0 ? void 0 : currency.label})` : currency === null || currency === void 0 ? void 0 : currency.label
167
168
  })), !this.props.disableDelete && this.props.prices.length > 0 && /*#__PURE__*/React.createElement(_Button.Button, _extends({}, this.props.id && {
168
169
  id: this.props.id + '-remove-button-' + index.toString()
169
170
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"Money.js","names":["React","_interopRequireWildcard","require","_Select","_Text","_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","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","defaultMoneyTranslations","defaultBaseTranslations","cannotRemoveDefaultCurrency","removePrice","addPrice","addNewCurrency","exports","MoneyRaw","BaseInput","constructor","onCurrencyChanged","index","currentCurrencies","e","newPrices","concat","prices","currency","cc","toString","onPricesChange","onTheFlightValidate","num","parts","split","isNaN","onPriceChanged","state","touched","touch","removePriceClick","price","itemIndex","required","setInvalid","getTranslations","addPriceClick","unusedCurrencies","setTimeout","_this$containerRef$cu","inputs","containerRef","current","querySelectorAll","focus","setValid","onFocus","setState","focused","onBlur","currencies","Error","isValid","errors","handleValueChangeEnabled","forcedCurrencies","c","forceSelected","missingForced","find","p","map","subscribeSelf","render","_Button$defaultProps2","translations","title","tooltip","className","inputGroupClassName","id","getValidationClass","ref","item","_currentCurrencies$","_Button$defaultProps","priceCurrency","priceIndex","retComponents","Select","values","onChange","label","Text","placeholder","number","onNumberChange","customValidators","disableDelete","Button","blank","type","onClick","buttonProps","circular","disabled","allowMultiple","renderDefaultValidation","renderLabel","Money","withThemeContext","withFormContext","_default"],"sources":["../../../src/lib/components/money/Money.tsx"],"sourcesContent":["import * as PlusIcon from 'material-design-icons/content/svg/production/ic_add_24px.svg';\r\n\r\n// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport { Select, SelectValue } from '../select/Select';\r\nimport { Text } from '../text/Text';\r\nimport InputGroup from '../inputGroup/InputGroup';\r\nimport {\r\n BaseInputProps,\r\n BaseInputState,\r\n BaseInput,\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 MoneyWithCurrency {\r\n value: number | undefined;\r\n currency: SelectValue;\r\n}\r\n\r\nexport const defaultMoneyTranslations = {\r\n ...defaultBaseTranslations,\r\n cannotRemoveDefaultCurrency: 'Cannot remove default currency',\r\n removePrice: 'Remove price',\r\n addPrice: 'Add price',\r\n addNewCurrency: 'Add new currency',\r\n};\r\n\r\nexport type MoneyTranslations = Partial<typeof defaultMoneyTranslations>;\r\n\r\nexport interface MoneyProps extends BaseInputProps<never, MoneyTranslations> {\r\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\r\n onPricesChange: (prices: MoneyWithCurrency[]) => void;\r\n allowMultiple?: boolean;\r\n currencies: SelectValue[];\r\n prices: MoneyWithCurrency[];\r\n disableDelete?: boolean;\r\n}\r\n\r\nexport interface MoneyState extends BaseInputState {}\r\n\r\nexport class MoneyRaw extends BaseInput<\r\n MoneyProps,\r\n MoneyState,\r\n never,\r\n MoneyTranslations\r\n> {\r\n public static defaultProps = Object.assign({}, BaseInput.defaultProps, {\r\n type: 'money',\r\n allowMultiple: false,\r\n onChange: undefined,\r\n });\r\n\r\n constructor(props: MoneyProps) {\r\n super(props, false);\r\n if (!props.currencies || !props.currencies.length) {\r\n throw Error('No currencies supplied to money input');\r\n }\r\n this.state = Object.assign(this.state, {\r\n isValid: props.required ? props.prices.length > 0 : true,\r\n errors:\r\n props.required && props.prices.length === 0\r\n ? [this.getTranslations(defaultMoneyTranslations).required]\r\n : [],\r\n handleValueChangeEnabled: false,\r\n });\r\n const forcedCurrencies = props.currencies.filter((c) => c.forceSelected);\r\n const missingForced = forcedCurrencies.filter(\r\n (c) => !props.prices.find((p) => p.currency.value === c.value)\r\n );\r\n if (missingForced.length > 0) {\r\n props.onPricesChange(\r\n props.prices.concat(\r\n missingForced.map((c) => ({ currency: c, value: undefined }))\r\n )\r\n );\r\n }\r\n this.subscribeSelf(props);\r\n }\r\n\r\n public render() {\r\n let unusedCurrencies = this.props.currencies;\r\n const translations = this.getTranslations(defaultMoneyTranslations);\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 {...(this.props.id && { id: this.props.id })}\r\n className={\r\n 'input__base money-input ' +\r\n this.getValidationClass() +\r\n (this.props.className ? ' ' + this.props.className : '')\r\n }\r\n ref={this.containerRef}\r\n >\r\n {this.props.prices &&\r\n this.props.prices.map((item, index) => {\r\n let currentCurrencies = this.props.currencies.filter(\r\n (c) =>\r\n this.props.prices.filter(\r\n (priceCurrency, priceIndex) =>\r\n priceIndex !== index &&\r\n priceCurrency.currency.value === c.value\r\n ).length === 0\r\n );\r\n const currency = this.props.currencies.find(\r\n (c) => c.value === item.currency.value\r\n );\r\n let retComponents = currentCurrencies.length ? (\r\n <div key={index}>\r\n {currentCurrencies.length > 1 ? (\r\n <Select\r\n {...(this.props.id && {\r\n id:\r\n this.props.id +\r\n '-currency-select-' +\r\n index.toString(),\r\n })}\r\n onFocus={this.onFocus}\r\n onBlur={this.onBlur}\r\n className={'money-input__select m-0'}\r\n values={currentCurrencies}\r\n onChange={this.onCurrencyChanged(\r\n index,\r\n currentCurrencies\r\n )}\r\n value={item.currency.value.toString()}\r\n />\r\n ) : (\r\n <span className=\"money-input__currencyLabel\">\r\n {currentCurrencies?.[0]?.label}\r\n </span>\r\n )}\r\n <Text\r\n {...(this.props.id && {\r\n id: this.props.id + '-amount-input-' + index.toString(),\r\n })}\r\n onFocus={this.onFocus}\r\n onBlur={this.onBlur}\r\n onTheFlightValidate={this.onTheFlightValidate}\r\n placeholder={'0.00'}\r\n className={'money-input__text m-0'}\r\n number={item.value}\r\n onNumberChange={this.onPriceChanged(index)}\r\n customValidators={this.props.customValidators}\r\n />\r\n {!this.props.disableDelete &&\r\n this.props.prices.length > 0 && (\r\n <Button\r\n {...(this.props.id && {\r\n id:\r\n this.props.id +\r\n '-remove-button-' +\r\n index.toString(),\r\n })}\r\n blank={true}\r\n type=\"error\"\r\n onClick={this.removePriceClick(index)}\r\n className=\"transform-rotate--45 line-height--0\"\r\n buttonProps={{\r\n ...Button.defaultProps?.buttonProps,\r\n title:\r\n currency && currency.forceSelected\r\n ? translations.cannotRemoveDefaultCurrency\r\n : translations.removePrice,\r\n }}\r\n circular={true}\r\n disabled={currency && currency.forceSelected}\r\n >\r\n <PlusIcon />\r\n </Button>\r\n )}\r\n </div>\r\n ) : null;\r\n unusedCurrencies = unusedCurrencies.filter(\r\n (c) => c.value !== item.currency.value\r\n );\r\n return retComponents;\r\n })}\r\n {(this.props.allowMultiple ||\r\n (this.props.prices && !this.props.prices.length)) &&\r\n unusedCurrencies.length ? (\r\n <Button\r\n blank={true}\r\n {...(this.props.id && {\r\n id: this.props.id + '-add-button',\r\n })}\r\n type=\"primary\"\r\n className=\"line-height--0 align-self-start\"\r\n onClick={this.addPriceClick(unusedCurrencies)}\r\n circular={true}\r\n buttonProps={{\r\n ...Button.defaultProps?.buttonProps,\r\n title:\r\n this.props.prices && this.props.prices.length === 0\r\n ? translations.addPrice\r\n : translations.addNewCurrency,\r\n }}\r\n >\r\n <PlusIcon />\r\n </Button>\r\n ) : null}\r\n <span className=\"highlight\" />\r\n <span className={'bar ' + (this.state.focused ? 'focused' : '')} />\r\n {this.renderDefaultValidation()}\r\n {this.props.label && (\r\n <label\r\n className={\r\n this.props.prices && this.props.prices ? 'label--focused' : ''\r\n }\r\n >\r\n {this.renderLabel()}\r\n </label>\r\n )}\r\n </div>\r\n </InputGroup>\r\n );\r\n }\r\n\r\n private onCurrencyChanged =\r\n (index: number, currentCurrencies: SelectValue[]) => (e) => {\r\n let newPrices: MoneyWithCurrency[] = [].concat(this.props.prices);\r\n newPrices[index].currency = currentCurrencies.filter(\r\n (cc) => cc.value.toString() === e.target.value\r\n )[0];\r\n this.props.onPricesChange(newPrices);\r\n };\r\n\r\n private onTheFlightValidate = (value: string) => {\r\n let num = Number(value);\r\n const parts = value.split('.');\r\n if (parts && parts.length > 1 && parts[parts.length - 1].length > 2) {\r\n return false;\r\n }\r\n if (!isNaN(num)) {\r\n return true;\r\n }\r\n if (num) {\r\n return false;\r\n }\r\n };\r\n\r\n private onPriceChanged = (index: number) => (value: number) => {\r\n let newPrices: MoneyWithCurrency[] = [].concat(this.props.prices);\r\n if (!isNaN(value)) {\r\n newPrices[index].value = value;\r\n }\r\n this.props.onPricesChange(newPrices);\r\n if (!this.state.touched) {\r\n this.touch();\r\n }\r\n };\r\n\r\n private removePriceClick = (index: number) => () => {\r\n const newPrices = this.props.prices.filter(\r\n (price, itemIndex) => itemIndex !== index\r\n );\r\n this.props.onPricesChange(newPrices);\r\n if (newPrices.length === 0 && this.props.required) {\r\n this.setInvalid([\r\n this.getTranslations(defaultMoneyTranslations).required,\r\n ]);\r\n }\r\n if (!this.state.touched) {\r\n this.touch();\r\n }\r\n };\r\n\r\n private addPriceClick = (unusedCurrencies: SelectValue[]) => () => {\r\n this.props.onPricesChange(\r\n this.props.prices.concat([\r\n { value: undefined, currency: unusedCurrencies[0] },\r\n ])\r\n );\r\n // we are going to focus the last input in the this.containerRef element after a timeout\r\n setTimeout(() => {\r\n const inputs = this.containerRef.current?.querySelectorAll('input');\r\n if (inputs?.length) {\r\n inputs[inputs.length - 1].focus();\r\n }\r\n }, 0);\r\n this.setValid();\r\n if (!this.state.touched) {\r\n this.touch();\r\n }\r\n };\r\n\r\n private onFocus = () => this.setState({ focused: true });\r\n\r\n private onBlur = () => this.setState({ focused: false });\r\n}\r\n\r\nexport const Money = withThemeContext<\r\n MoneyProps,\r\n InstanceType<typeof MoneyRaw>\r\n>(withFormContext<MoneyProps>(MoneyRaw), 'money');\r\n\r\nexport default Money;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"Money.js","names":["React","_interopRequireWildcard","require","_Select","_Text","_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","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","defaultMoneyTranslations","defaultBaseTranslations","cannotRemoveDefaultCurrency","removePrice","addPrice","addNewCurrency","exports","MoneyRaw","BaseInput","constructor","onCurrencyChanged","index","currentCurrencies","e","newPrices","concat","prices","currency","cc","toString","onPricesChange","onTheFlightValidate","num","parts","split","isNaN","onPriceChanged","state","touched","touch","removePriceClick","price","itemIndex","required","setInvalid","getTranslations","addPriceClick","unusedCurrencies","setTimeout","_this$containerRef$cu","inputs","containerRef","current","querySelectorAll","focus","setValid","onFocus","setState","focused","onBlur","currencies","Error","isValid","errors","handleValueChangeEnabled","forcedCurrencies","c","forceSelected","missingForced","find","p","map","subscribeSelf","render","_Button$defaultProps2","translations","title","tooltip","className","inputGroupClassName","id","getValidationClass","ref","item","_currentCurrencies$","_Button$defaultProps","priceCurrency","priceIndex","retComponents","Select","values","onChange","label","Text","placeholder","number","onNumberChange","customValidators","validationName","disableDelete","Button","blank","type","onClick","buttonProps","circular","disabled","allowMultiple","renderDefaultValidation","renderLabel","Money","withThemeContext","withFormContext","_default"],"sources":["../../../src/lib/components/money/Money.tsx"],"sourcesContent":["import * as PlusIcon from 'material-design-icons/content/svg/production/ic_add_24px.svg';\r\n\r\n// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport { Select, SelectValue } from '../select/Select';\r\nimport { Text } from '../text/Text';\r\nimport InputGroup from '../inputGroup/InputGroup';\r\nimport {\r\n BaseInputProps,\r\n BaseInputState,\r\n BaseInput,\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 MoneyWithCurrency {\r\n value: number | undefined;\r\n currency: SelectValue;\r\n}\r\n\r\nexport const defaultMoneyTranslations = {\r\n ...defaultBaseTranslations,\r\n cannotRemoveDefaultCurrency: 'Cannot remove default currency',\r\n removePrice: 'Remove price',\r\n addPrice: 'Add price',\r\n addNewCurrency: 'Add new currency',\r\n};\r\n\r\nexport type MoneyTranslations = Partial<typeof defaultMoneyTranslations>;\r\n\r\nexport interface MoneyProps extends BaseInputProps<never, MoneyTranslations> {\r\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\r\n onPricesChange: (prices: MoneyWithCurrency[]) => void;\r\n allowMultiple?: boolean;\r\n currencies: SelectValue[];\r\n prices: MoneyWithCurrency[];\r\n disableDelete?: boolean;\r\n}\r\n\r\nexport interface MoneyState extends BaseInputState {}\r\n\r\nexport class MoneyRaw extends BaseInput<\r\n MoneyProps,\r\n MoneyState,\r\n never,\r\n MoneyTranslations\r\n> {\r\n public static defaultProps = Object.assign({}, BaseInput.defaultProps, {\r\n type: 'money',\r\n allowMultiple: false,\r\n onChange: undefined,\r\n });\r\n\r\n constructor(props: MoneyProps) {\r\n super(props, false);\r\n if (!props.currencies || !props.currencies.length) {\r\n throw Error('No currencies supplied to money input');\r\n }\r\n this.state = Object.assign(this.state, {\r\n isValid: props.required ? props.prices.length > 0 : true,\r\n errors:\r\n props.required && props.prices.length === 0\r\n ? [this.getTranslations(defaultMoneyTranslations).required]\r\n : [],\r\n handleValueChangeEnabled: false,\r\n });\r\n const forcedCurrencies = props.currencies.filter((c) => c.forceSelected);\r\n const missingForced = forcedCurrencies.filter(\r\n (c) => !props.prices.find((p) => p.currency.value === c.value)\r\n );\r\n if (missingForced.length > 0) {\r\n props.onPricesChange(\r\n props.prices.concat(\r\n missingForced.map((c) => ({ currency: c, value: undefined }))\r\n )\r\n );\r\n }\r\n this.subscribeSelf(props);\r\n }\r\n\r\n public render() {\r\n let unusedCurrencies = this.props.currencies;\r\n const translations = this.getTranslations(defaultMoneyTranslations);\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 {...(this.props.id && { id: this.props.id })}\r\n className={\r\n 'input__base money-input ' +\r\n this.getValidationClass() +\r\n (this.props.className ? ' ' + this.props.className : '')\r\n }\r\n ref={this.containerRef}\r\n >\r\n {this.props.prices &&\r\n this.props.prices.map((item, index) => {\r\n let currentCurrencies = this.props.currencies.filter(\r\n (c) =>\r\n this.props.prices.filter(\r\n (priceCurrency, priceIndex) =>\r\n priceIndex !== index &&\r\n priceCurrency.currency.value === c.value\r\n ).length === 0\r\n );\r\n const currency = this.props.currencies.find(\r\n (c) => c.value === item.currency.value\r\n );\r\n let retComponents = currentCurrencies.length ? (\r\n <div key={index}>\r\n {currentCurrencies.length > 1 ? (\r\n <Select\r\n {...(this.props.id && {\r\n id:\r\n this.props.id +\r\n '-currency-select-' +\r\n index.toString(),\r\n })}\r\n onFocus={this.onFocus}\r\n onBlur={this.onBlur}\r\n className={'money-input__select m-0'}\r\n values={currentCurrencies}\r\n onChange={this.onCurrencyChanged(\r\n index,\r\n currentCurrencies\r\n )}\r\n value={item.currency.value.toString()}\r\n />\r\n ) : (\r\n <span className=\"money-input__currencyLabel\">\r\n {currentCurrencies?.[0]?.label}\r\n </span>\r\n )}\r\n <Text\r\n {...(this.props.id && {\r\n id: this.props.id + '-amount-input-' + index.toString(),\r\n })}\r\n onFocus={this.onFocus}\r\n onBlur={this.onBlur}\r\n onTheFlightValidate={this.onTheFlightValidate}\r\n placeholder={'0.00'}\r\n className={'money-input__text m-0'}\r\n number={item.value}\r\n onNumberChange={this.onPriceChanged(index)}\r\n customValidators={this.props.customValidators}\r\n validationName={\r\n this.props.validationName\r\n ? `${this.props.validationName} (${currency?.label})`\r\n : currency?.label\r\n }\r\n />\r\n {!this.props.disableDelete &&\r\n this.props.prices.length > 0 && (\r\n <Button\r\n {...(this.props.id && {\r\n id:\r\n this.props.id +\r\n '-remove-button-' +\r\n index.toString(),\r\n })}\r\n blank={true}\r\n type=\"error\"\r\n onClick={this.removePriceClick(index)}\r\n className=\"transform-rotate--45 line-height--0\"\r\n buttonProps={{\r\n ...Button.defaultProps?.buttonProps,\r\n title:\r\n currency && currency.forceSelected\r\n ? translations.cannotRemoveDefaultCurrency\r\n : translations.removePrice,\r\n }}\r\n circular={true}\r\n disabled={currency && currency.forceSelected}\r\n >\r\n <PlusIcon />\r\n </Button>\r\n )}\r\n </div>\r\n ) : null;\r\n unusedCurrencies = unusedCurrencies.filter(\r\n (c) => c.value !== item.currency.value\r\n );\r\n return retComponents;\r\n })}\r\n {(this.props.allowMultiple ||\r\n (this.props.prices && !this.props.prices.length)) &&\r\n unusedCurrencies.length ? (\r\n <Button\r\n blank={true}\r\n {...(this.props.id && {\r\n id: this.props.id + '-add-button',\r\n })}\r\n type=\"primary\"\r\n className=\"line-height--0 align-self-start\"\r\n onClick={this.addPriceClick(unusedCurrencies)}\r\n circular={true}\r\n buttonProps={{\r\n ...Button.defaultProps?.buttonProps,\r\n title:\r\n this.props.prices && this.props.prices.length === 0\r\n ? translations.addPrice\r\n : translations.addNewCurrency,\r\n }}\r\n >\r\n <PlusIcon />\r\n </Button>\r\n ) : null}\r\n <span className=\"highlight\" />\r\n <span className={'bar ' + (this.state.focused ? 'focused' : '')} />\r\n {this.renderDefaultValidation()}\r\n {this.props.label && (\r\n <label\r\n className={\r\n this.props.prices && this.props.prices ? 'label--focused' : ''\r\n }\r\n >\r\n {this.renderLabel()}\r\n </label>\r\n )}\r\n </div>\r\n </InputGroup>\r\n );\r\n }\r\n\r\n private onCurrencyChanged =\r\n (index: number, currentCurrencies: SelectValue[]) => (e) => {\r\n let newPrices: MoneyWithCurrency[] = [].concat(this.props.prices);\r\n newPrices[index].currency = currentCurrencies.filter(\r\n (cc) => cc.value.toString() === e.target.value\r\n )[0];\r\n this.props.onPricesChange(newPrices);\r\n };\r\n\r\n private onTheFlightValidate = (value: string) => {\r\n let num = Number(value);\r\n const parts = value.split('.');\r\n if (parts && parts.length > 1 && parts[parts.length - 1].length > 2) {\r\n return false;\r\n }\r\n if (!isNaN(num)) {\r\n return true;\r\n }\r\n if (num) {\r\n return false;\r\n }\r\n };\r\n\r\n private onPriceChanged = (index: number) => (value: number) => {\r\n let newPrices: MoneyWithCurrency[] = [].concat(this.props.prices);\r\n if (!isNaN(value)) {\r\n newPrices[index].value = value;\r\n }\r\n this.props.onPricesChange(newPrices);\r\n if (!this.state.touched) {\r\n this.touch();\r\n }\r\n };\r\n\r\n private removePriceClick = (index: number) => () => {\r\n const newPrices = this.props.prices.filter(\r\n (price, itemIndex) => itemIndex !== index\r\n );\r\n this.props.onPricesChange(newPrices);\r\n if (newPrices.length === 0 && this.props.required) {\r\n this.setInvalid([\r\n this.getTranslations(defaultMoneyTranslations).required,\r\n ]);\r\n }\r\n if (!this.state.touched) {\r\n this.touch();\r\n }\r\n };\r\n\r\n private addPriceClick = (unusedCurrencies: SelectValue[]) => () => {\r\n this.props.onPricesChange(\r\n this.props.prices.concat([\r\n { value: undefined, currency: unusedCurrencies[0] },\r\n ])\r\n );\r\n // we are going to focus the last input in the this.containerRef element after a timeout\r\n setTimeout(() => {\r\n const inputs = this.containerRef.current?.querySelectorAll('input');\r\n if (inputs?.length) {\r\n inputs[inputs.length - 1].focus();\r\n }\r\n }, 0);\r\n this.setValid();\r\n if (!this.state.touched) {\r\n this.touch();\r\n }\r\n };\r\n\r\n private onFocus = () => this.setState({ focused: true });\r\n\r\n private onBlur = () => this.setState({ focused: false });\r\n}\r\n\r\nexport const Money = withThemeContext<\r\n MoneyProps,\r\n InstanceType<typeof MoneyRaw>\r\n>(withFormContext<MoneyProps>(MoneyRaw), 'money');\r\n\r\nexport default Money;\r\n"],"mappings":"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"}
@@ -16,6 +16,7 @@ export interface SelectProps extends BaseInputProps<HTMLSelectElement> {
16
16
  readonlyEmptyPlaceholder?: string;
17
17
  after?: React.ReactNode;
18
18
  before?: React.ReactNode;
19
+ filterExisting?: (existing: SelectValue[], selected: SelectValue[]) => SelectValue[];
19
20
  }
20
21
  export interface SelectState extends BaseInputState {
21
22
  }
@@ -53,7 +53,7 @@ class SelectRaw extends _BaseInput.BaseInput {
53
53
  }
54
54
  }
55
55
  render() {
56
- const finalValues = this.props.multiple ? this.props.values.filter(item => this.props.selectedValues.findIndex(t => t.value === item.value) < 0) : this.props.values;
56
+ const finalValues = this.props.multiple ? this.props.filterExisting ? this.props.filterExisting(this.props.values, this.props.selectedValues) : this.props.values.filter(item => this.props.selectedValues.findIndex(t => t.value === item.value) < 0) : this.props.values;
57
57
  return /*#__PURE__*/React.createElement(_InputGroup.default, {
58
58
  title: this.props.title,
59
59
  tooltip: this.props.tooltip,
@@ -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","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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"}
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","filterExisting","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 filterExisting?: (\r\n existing: SelectValue[],\r\n selected: SelectValue[]\r\n ) => SelectValue[];\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.filterExisting\r\n ? this.props.filterExisting(\r\n this.props.values,\r\n this.props.selectedValues\r\n )\r\n : this.props.values.filter(\r\n (item) =>\r\n this.props.selectedValues.findIndex(\r\n (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 [30 Nov 2024 at 17:22]</title>
6
+ <title>guestbell-forms [8 Mar 2025 at 18:05]</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.117",
2
+ "version": "3.0.119",
3
3
  "description": "React forms with validation as used in GuestBell",
4
4
  "keywords": [
5
5
  "react",
@@ -150,6 +150,11 @@ export class MoneyRaw extends BaseInput<
150
150
  number={item.value}
151
151
  onNumberChange={this.onPriceChanged(index)}
152
152
  customValidators={this.props.customValidators}
153
+ validationName={
154
+ this.props.validationName
155
+ ? `${this.props.validationName} (${currency?.label})`
156
+ : currency?.label
157
+ }
153
158
  />
154
159
  {!this.props.disableDelete &&
155
160
  this.props.prices.length > 0 && (
@@ -32,6 +32,10 @@ export interface SelectProps extends BaseInputProps<HTMLSelectElement> {
32
32
  readonlyEmptyPlaceholder?: string;
33
33
  after?: React.ReactNode;
34
34
  before?: React.ReactNode;
35
+ filterExisting?: (
36
+ existing: SelectValue[],
37
+ selected: SelectValue[]
38
+ ) => SelectValue[];
35
39
  }
36
40
 
37
41
  export interface SelectState extends BaseInputState {}
@@ -83,11 +87,17 @@ export class SelectRaw extends BaseInput<
83
87
 
84
88
  public render() {
85
89
  const finalValues = this.props.multiple
86
- ? this.props.values.filter(
87
- (item) =>
88
- this.props.selectedValues.findIndex((t) => t.value === item.value) <
89
- 0
90
- )
90
+ ? this.props.filterExisting
91
+ ? this.props.filterExisting(
92
+ this.props.values,
93
+ this.props.selectedValues
94
+ )
95
+ : this.props.values.filter(
96
+ (item) =>
97
+ this.props.selectedValues.findIndex(
98
+ (t) => t.value === item.value
99
+ ) < 0
100
+ )
91
101
  : this.props.values;
92
102
  return (
93
103
  <InputGroup