guestbell-forms 2.0.297 → 2.0.299
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/build/components/InputHeader/InputHeader.js +258 -323
- package/build/components/InputHeader/InputHeader.js.map +1 -1
- package/build/components/InputHeader/InputHeaderContext.js +6 -8
- package/build/components/InputHeader/InputHeaderContext.js.map +1 -1
- package/build/components/InputHeader/index.js +4 -6
- package/build/components/InputHeader/index.js.map +1 -1
- package/build/components/InputHeader/withInputHeaderContext.js +9 -13
- package/build/components/InputHeader/withInputHeaderContext.js.map +1 -1
- package/build/components/base/input/BaseInput.js +334 -418
- package/build/components/base/input/BaseInput.js.map +1 -1
- package/build/components/base/input/index.js +1 -1
- package/build/components/base/input/index.js.map +1 -1
- package/build/components/bookingCalendar/BookingCalendar.js +68 -85
- package/build/components/bookingCalendar/BookingCalendar.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.js +40 -71
- package/build/components/bookingCalendar/bookingCalendarControls/BookingCalendarControls.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarControls/classes.js +1 -1
- package/build/components/bookingCalendar/bookingCalendarControls/classes.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarControls/index.js +2 -2
- package/build/components/bookingCalendar/bookingCalendarControls/index.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarDatePicker/BookingCalendarDatePicker.js +22 -41
- package/build/components/bookingCalendar/bookingCalendarDatePicker/BookingCalendarDatePicker.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarDatePicker/classes.js +1 -1
- package/build/components/bookingCalendar/bookingCalendarDatePicker/classes.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarDatePicker/index.js +2 -2
- package/build/components/bookingCalendar/bookingCalendarDatePicker/index.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.js +20 -24
- package/build/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarGrid/classes.js +1 -1
- package/build/components/bookingCalendar/bookingCalendarGrid/classes.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarItem/BookingCalendarItem.js +9 -12
- package/build/components/bookingCalendar/bookingCalendarItem/BookingCalendarItem.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarItem/classes.js +1 -1
- package/build/components/bookingCalendar/bookingCalendarItem/classes.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarItem/index.js +2 -2
- package/build/components/bookingCalendar/bookingCalendarItem/index.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarLane/BookingCalendarLane.js +23 -28
- package/build/components/bookingCalendar/bookingCalendarLane/BookingCalendarLane.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarLane/classes.js +1 -1
- package/build/components/bookingCalendar/bookingCalendarLane/classes.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarLane/index.js +2 -2
- package/build/components/bookingCalendar/bookingCalendarLane/index.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarLaneHeader/BookingCalendarLaneHeader.js +6 -6
- package/build/components/bookingCalendar/bookingCalendarLaneHeader/BookingCalendarLaneHeader.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarLaneHeader/classes.js +1 -1
- package/build/components/bookingCalendar/bookingCalendarLaneHeader/classes.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarLaneHeader/index.js +1 -1
- package/build/components/bookingCalendar/bookingCalendarLaneHeader/index.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeader.js +12 -16
- package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeader.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.js +27 -31
- package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarLanesHeader/classes.js +1 -1
- package/build/components/bookingCalendar/bookingCalendarLanesHeader/classes.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarLanesHeader/index.js +2 -2
- package/build/components/bookingCalendar/bookingCalendarLanesHeader/index.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarRenderItem/BookingCalendarRenderItem.js +19 -19
- package/build/components/bookingCalendar/bookingCalendarRenderItem/BookingCalendarRenderItem.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarRenderItem/classes.js +1 -1
- package/build/components/bookingCalendar/bookingCalendarRenderItem/classes.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarRenderItem/index.js +1 -1
- package/build/components/bookingCalendar/bookingCalendarRenderItem/index.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.js +135 -177
- package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarTimeAxis/BookingCalendarTimeAxis.js +17 -19
- package/build/components/bookingCalendar/bookingCalendarTimeAxis/BookingCalendarTimeAxis.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarTimeAxis/classes.js +1 -1
- package/build/components/bookingCalendar/bookingCalendarTimeAxis/classes.js.map +1 -1
- package/build/components/bookingCalendar/classes.js +1 -1
- package/build/components/bookingCalendar/classes.js.map +1 -1
- package/build/components/bookingCalendar/common.js +5 -7
- package/build/components/bookingCalendar/common.js.map +1 -1
- package/build/components/bookingCalendar/index.js +3 -3
- package/build/components/bookingCalendar/index.js.map +1 -1
- package/build/components/bookingCalendar/utils.js +143 -205
- package/build/components/bookingCalendar/utils.js.map +1 -1
- package/build/components/button/Button.js +101 -123
- package/build/components/button/Button.js.map +1 -1
- package/build/components/button/index.js +4 -6
- package/build/components/button/index.js.map +1 -1
- package/build/components/checkbox/Checkbox.js +102 -145
- package/build/components/checkbox/Checkbox.js.map +1 -1
- package/build/components/checkbox/index.js +4 -6
- package/build/components/checkbox/index.js.map +1 -1
- package/build/components/dropdown/Dropdown.js +41 -57
- package/build/components/dropdown/Dropdown.js.map +1 -1
- package/build/components/dropdown/index.js +4 -6
- package/build/components/dropdown/index.js.map +1 -1
- package/build/components/dynamicSubmit/DynamicSubmit.js +81 -123
- package/build/components/dynamicSubmit/DynamicSubmit.js.map +1 -1
- package/build/components/dynamicSubmit/index.js +4 -6
- package/build/components/dynamicSubmit/index.js.map +1 -1
- package/build/components/form/Form.js +139 -193
- package/build/components/form/Form.js.map +1 -1
- package/build/components/form/FormContext.js +6 -8
- package/build/components/form/FormContext.js.map +1 -1
- package/build/components/form/FormValidationSummary.js +57 -105
- package/build/components/form/FormValidationSummary.js.map +1 -1
- package/build/components/form/index.js +5 -7
- package/build/components/form/index.js.map +1 -1
- package/build/components/form/withFormContext.js +9 -13
- package/build/components/form/withFormContext.js.map +1 -1
- package/build/components/inputGroup/InputGroup.js +16 -48
- package/build/components/inputGroup/InputGroup.js.map +1 -1
- package/build/components/inputGroup/index.js +4 -6
- package/build/components/inputGroup/index.js.map +1 -1
- package/build/components/money/Money.js +137 -211
- package/build/components/money/Money.js.map +1 -1
- package/build/components/money/index.js +4 -6
- package/build/components/money/index.js.map +1 -1
- package/build/components/numberInput/NumberInput.js +106 -144
- package/build/components/numberInput/NumberInput.js.map +1 -1
- package/build/components/numberInput/index.js +4 -6
- package/build/components/numberInput/index.js.map +1 -1
- package/build/components/openingHours/openingHoursDay/OpeningHoursDay.js +162 -220
- package/build/components/openingHours/openingHoursDay/OpeningHoursDay.js.map +1 -1
- package/build/components/openingHours/openingHoursDay/index.js +4 -6
- package/build/components/openingHours/openingHoursDay/index.js.map +1 -1
- package/build/components/openingHours/openingHoursSpecial/OpeningHoursSpecial.js +114 -191
- package/build/components/openingHours/openingHoursSpecial/OpeningHoursSpecial.js.map +1 -1
- package/build/components/openingHours/openingHoursSpecial/index.js +4 -6
- package/build/components/openingHours/openingHoursSpecial/index.js.map +1 -1
- package/build/components/openingHours/openingHoursWeek/OpeningHoursWeek.js +150 -209
- package/build/components/openingHours/openingHoursWeek/OpeningHoursWeek.js.map +1 -1
- package/build/components/openingHours/openingHoursWeek/index.js +4 -6
- package/build/components/openingHours/openingHoursWeek/index.js.map +1 -1
- package/build/components/openingHours/utils/OpeningHoursUtil.js +51 -76
- package/build/components/openingHours/utils/OpeningHoursUtil.js.map +1 -1
- package/build/components/radio/Radio.js +38 -75
- package/build/components/radio/Radio.js.map +1 -1
- package/build/components/radio/index.js +4 -6
- package/build/components/radio/index.js.map +1 -1
- package/build/components/radioContainer/RadioContainer.js +19 -49
- package/build/components/radioContainer/RadioContainer.js.map +1 -1
- package/build/components/radioContainer/index.js +4 -6
- package/build/components/radioContainer/index.js.map +1 -1
- package/build/components/select/Select.js +186 -264
- package/build/components/select/Select.js.map +1 -1
- package/build/components/select/index.js +4 -6
- package/build/components/select/index.js.map +1 -1
- package/build/components/submit/Submit.js +50 -87
- package/build/components/submit/Submit.js.map +1 -1
- package/build/components/submit/index.js +4 -6
- package/build/components/submit/index.js.map +1 -1
- package/build/components/submit/subComponents/SubmitValidationSummary.js +5 -7
- package/build/components/submit/subComponents/SubmitValidationSummary.js.map +1 -1
- package/build/components/tags/Tags.js +365 -565
- package/build/components/tags/Tags.js.map +1 -1
- package/build/components/tags/index.js +4 -6
- package/build/components/tags/index.js.map +1 -1
- package/build/components/tags/subComponents/TagsSuggestions.js +29 -30
- package/build/components/tags/subComponents/TagsSuggestions.js.map +1 -1
- package/build/components/text/Text.js +95 -138
- package/build/components/text/Text.js.map +1 -1
- package/build/components/text/index.js +4 -6
- package/build/components/text/index.js.map +1 -1
- package/build/components/textArea/TextArea.js +52 -91
- package/build/components/textArea/TextArea.js.map +1 -1
- package/build/components/textArea/index.js +4 -6
- package/build/components/textArea/index.js.map +1 -1
- package/build/components/themeProvider/ThemeContext.js +6 -8
- package/build/components/themeProvider/ThemeContext.js.map +1 -1
- package/build/components/themeProvider/ThemeProvider.js +3 -5
- package/build/components/themeProvider/ThemeProvider.js.map +1 -1
- package/build/components/themeProvider/index.js +4 -6
- package/build/components/themeProvider/index.js.map +1 -1
- package/build/components/themeProvider/withThemeContext.js +10 -14
- package/build/components/themeProvider/withThemeContext.js.map +1 -1
- package/build/components/time/Time.js +190 -216
- package/build/components/time/Time.js.map +1 -1
- package/build/components/time/index.js +4 -6
- package/build/components/time/index.js.map +1 -1
- package/build/components/timeSpan/TimeSpan.js +226 -280
- package/build/components/timeSpan/TimeSpan.js.map +1 -1
- package/build/components/timeSpan/index.js +4 -6
- package/build/components/timeSpan/index.js.map +1 -1
- package/build/components/utils/Guid.js +3 -5
- package/build/components/utils/Guid.js.map +1 -1
- package/build/components/utils/ShallowEqual.js +5 -11
- package/build/components/utils/ShallowEqual.js.map +1 -1
- package/build/components/utils/TimeUtil.js +8 -22
- package/build/components/utils/TimeUtil.js.map +1 -1
- package/build/components/utils/Typescript.js.map +1 -1
- package/build/dist/guestbell-forms.css +0 -6
- package/build/dist/guestbell-forms.css.map +1 -1
- package/build/dist/guestbell-forms.min.css +1 -1
- package/build/dist/guestbell-forms.min.js +1 -1
- package/build/dist/guestbell-forms.min.js.map +1 -1
- package/build/dist/report.html +2 -2
- package/build/index.js +23 -23
- package/build/index.js.map +1 -1
- package/build/types/ElementOverrideProp.js.map +1 -1
- package/build/types/Theme.js.map +1 -1
- package/build/types/ThemeOverrides.js.map +1 -1
- package/build/validators/EmailValidator.js +8 -22
- package/build/validators/EmailValidator.js.map +1 -1
- package/build/validators/LatitudeValidator.js +13 -27
- package/build/validators/LatitudeValidator.js.map +1 -1
- package/build/validators/LongitudeValidator.js +13 -27
- package/build/validators/LongitudeValidator.js.map +1 -1
- package/build/validators/NumberValidator.js +27 -39
- package/build/validators/NumberValidator.js.map +1 -1
- package/build/validators/UrlValidator.js +9 -23
- package/build/validators/UrlValidator.js.map +1 -1
- package/build/validators/base.js.map +1 -1
- package/build/validators/index.js +6 -6
- package/build/validators/index.js.map +1 -1
- package/package.json +8 -5
- package/tsconfig.json +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/components/base/input/BaseInput.tsx"],"names":["defaultBaseTranslations","required","BaseInput","props","subscribe","res","handleValueChange","value","state","isValid","errors","touched","defaultTouched","disabled","focused","handleValueChangeEnabled","containerRef","React","createRef","inputRef","handleChange","bind","handleBlur","handleFocus","setValid","focus","scrollTo","setInvalid","disableComponent","enableComponent","touch","unTouch","subscribeSelf","ignoreContext","formContext","unSubscribe","componentId","oldProps","oldState","validators","customValidators","domNode","ReactDOM","findDOMNode","current","scrollIntoView","behavior","setState","nextProps","nextState","shouldUpdate","reRendersWhenContextChanges","undefined","extraErrors","showValidation","length","finalErrors","concat","filter","i","lastValidation","map","item","index","event","target","onTheFlightValidate","onChange","componentApi","validation","name","validationName","title","label","e","onBlur","touchOn","Object","assign","onFocus","updateCallback","touchable","tooltip","renderTooltip","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","Component","className"],"mappings":"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","sourcesContent":["// Libs\r\nimport * as React from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport { 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?: (e: React.SyntheticEvent<{}>) => 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} & 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.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(e: React.FocusEvent<HTMLType>) {\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 this.handleValueChange(this.state.value);\r\n }\r\n this.setState(state);\r\n }\r\n\r\n protected handleFocus(e: React.FocusEvent<HTMLType>) {\r\n if (!this.props.disabled) {\r\n this.props.onFocus && this.props.onFocus(e);\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"],"file":"BaseInput.js"}
|
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","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","e","onBlur","touchOn","Object","assign","onFocus","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 { 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?: (e: React.SyntheticEvent<{}>) => 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} & 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.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(e: React.FocusEvent<HTMLType>) {\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 this.handleValueChange(this.state.value);\r\n }\r\n this.setState(state);\r\n }\r\n\r\n protected handleFocus(e: React.FocusEvent<HTMLType>) {\r\n if (!this.props.disabled) {\r\n this.props.onFocus && this.props.onFocus(e);\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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"}
|
@@ -11,7 +11,7 @@ Object.keys(_BaseInput).forEach(function (key) {
|
|
11
11
|
if (key in exports && exports[key] === _BaseInput[key]) return;
|
12
12
|
Object.defineProperty(exports, key, {
|
13
13
|
enumerable: true,
|
14
|
-
get: function
|
14
|
+
get: function () {
|
15
15
|
return _BaseInput[key];
|
16
16
|
}
|
17
17
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/components/base/input/index.tsx"],"
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/lib/components/base/input/index.tsx"],"sourcesContent":["export * from './BaseInput';\r\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
@@ -1,7 +1,5 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
4
|
-
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
6
4
|
value: true
|
7
5
|
});
|
@@ -41,93 +39,74 @@ var _BookingCalendarSelection = _interopRequireDefault(require("./bookingCalenda
|
|
41
39
|
|
42
40
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
43
41
|
|
44
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function
|
45
|
-
|
46
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
42
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
47
43
|
|
48
|
-
function
|
44
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
49
45
|
|
50
|
-
function _extends() { _extends = Object.assign
|
46
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
51
47
|
|
52
|
-
|
48
|
+
const defaultStep = (0, _moment.duration)(1, 'day');
|
53
49
|
|
54
50
|
function BookingCalendar(props) {
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
BookingCalendarLanesHeader = _props$BookingCalenda5 === void 0 ? _bookingCalendarLanesHeader.BookingCalendarLanesHeader : _props$BookingCalenda5,
|
98
|
-
_props$BookingCalenda6 = props.BookingCalendarDatePicker,
|
99
|
-
BookingCalendarDatePicker = _props$BookingCalenda6 === void 0 ? _bookingCalendarDatePicker.BookingCalendarDatePicker : _props$BookingCalenda6;
|
100
|
-
var lanes = React.useMemo(function () {
|
101
|
-
return (0, _utils.splitBookingsToLanes)(bookings, from, minLanesCount, lanesSource);
|
102
|
-
}, [bookings, from, minLanesCount, lanesSource]);
|
103
|
-
|
104
|
-
var _useDimensions = (0, _reactCoolDimensions.default)(),
|
105
|
-
observe = _useDimensions.observe,
|
106
|
-
width = _useDimensions.width;
|
107
|
-
|
108
|
-
var _React$useMemo = React.useMemo(function () {
|
51
|
+
const {
|
52
|
+
bookings,
|
53
|
+
className,
|
54
|
+
laneContainerClassName,
|
55
|
+
laneHeaderContainerClassName,
|
56
|
+
lanesHeaderContainerClassName,
|
57
|
+
lanesHeaderHeaderContainerClassName,
|
58
|
+
controlsClasses,
|
59
|
+
tableClassName,
|
60
|
+
from,
|
61
|
+
till,
|
62
|
+
onRangeChange,
|
63
|
+
step = defaultStep,
|
64
|
+
showGrid = true,
|
65
|
+
showSelection = true,
|
66
|
+
gridAvailableSteps = _.defaultGridAvailableSteps,
|
67
|
+
getMomentFormatFunction = _common.defaultGetMomentFormatFunction,
|
68
|
+
getNewMomentFunction = _.defaultGetNewMomentFunction,
|
69
|
+
goalGridWidthPx = 60,
|
70
|
+
minSelectionSize = 10,
|
71
|
+
minLanesCount,
|
72
|
+
lanesSource,
|
73
|
+
filterBookingsToZoom,
|
74
|
+
zoomLevels,
|
75
|
+
BookingCalendarControls = _BookingCalendarControls.BookingCalendarControls,
|
76
|
+
BookingCalendarItem,
|
77
|
+
BookingCalendarLane = _BookingCalendarLane.BookingCalendarLane,
|
78
|
+
BookingCalendarRenderItem,
|
79
|
+
BookingCalendarGrid = _BookingCalendarGrid.BookingCalendarGrid,
|
80
|
+
BookingCalendarLaneHeader = _bookingCalendarLaneHeader.BookingCalendarLaneHeader,
|
81
|
+
BookingCalendarLanesHeader = _bookingCalendarLanesHeader.BookingCalendarLanesHeader,
|
82
|
+
BookingCalendarDatePicker = _bookingCalendarDatePicker.BookingCalendarDatePicker
|
83
|
+
} = props;
|
84
|
+
const lanes = React.useMemo(() => (0, _utils.splitBookingsToLanes)(bookings, from, minLanesCount, lanesSource), [bookings, from, minLanesCount, lanesSource]);
|
85
|
+
const {
|
86
|
+
observe,
|
87
|
+
width
|
88
|
+
} = (0, _reactCoolDimensions.default)();
|
89
|
+
const {
|
90
|
+
items: gridItems,
|
91
|
+
bestStep
|
92
|
+
} = React.useMemo(() => {
|
109
93
|
var _from$clone;
|
110
94
|
|
111
95
|
return (0, _utils.generateGridItems)(from, till, step, width, gridAvailableSteps, goalGridWidthPx, from === null || from === void 0 ? void 0 : (_from$clone = from.clone()) === null || _from$clone === void 0 ? void 0 : _from$clone.startOf('day'));
|
112
|
-
}, [from, till, step, width, gridAvailableSteps, goalGridWidthPx])
|
113
|
-
|
114
|
-
bestStep = _React$useMemo.bestStep;
|
115
|
-
|
116
|
-
var onSelected = React.useCallback(function (data) {
|
96
|
+
}, [from, till, step, width, gridAvailableSteps, goalGridWidthPx]);
|
97
|
+
const onSelected = React.useCallback(data => {
|
117
98
|
if (!from || !till || !width || !onRangeChange) {
|
118
99
|
return;
|
119
100
|
}
|
120
101
|
|
121
|
-
|
122
|
-
|
123
|
-
|
102
|
+
const screenSpaceStartX = Math.min(data.origin[0], data.target[0]);
|
103
|
+
const screenSpaceEndX = Math.max(data.origin[0], data.target[0]);
|
104
|
+
const durationMs = till.valueOf() - from.valueOf();
|
124
105
|
|
125
|
-
|
126
|
-
return num / (width || 1) * durationMs;
|
127
|
-
};
|
106
|
+
const toTimeSpace = num => num / (width || 1) * durationMs;
|
128
107
|
|
129
|
-
|
130
|
-
|
108
|
+
const timeSpaceStart = from.clone().add(toTimeSpace(screenSpaceStartX), 'ms');
|
109
|
+
const timeSpaceEnd = from.clone().add(toTimeSpace(screenSpaceEndX), 'ms');
|
131
110
|
onRangeChange({
|
132
111
|
from: timeSpaceStart,
|
133
112
|
till: timeSpaceEnd
|
@@ -167,27 +146,31 @@ function BookingCalendar(props) {
|
|
167
146
|
till: till,
|
168
147
|
onRangeChange: onRangeChange,
|
169
148
|
step: step
|
170
|
-
}))), lanes.map(
|
171
|
-
|
172
|
-
|
173
|
-
var LaneBookingCalendarLaneHeader = (_lane$BookingCalendar = lane.BookingCalendarLaneHeader) !== null && _lane$BookingCalendar !== void 0 ? _lane$BookingCalendar : BookingCalendarLaneHeader;
|
174
|
-
var LaneBookingCalendarLane = (_lane$BookingCalendar2 = lane.BookingCalendarLane) !== null && _lane$BookingCalendar2 !== void 0 ? _lane$BookingCalendar2 : BookingCalendarLane;
|
149
|
+
}))), lanes.map((lane, laneIndex) => {
|
150
|
+
const LaneBookingCalendarLaneHeader = lane.BookingCalendarLaneHeader ?? BookingCalendarLaneHeader;
|
151
|
+
const LaneBookingCalendarLane = lane.BookingCalendarLane ?? BookingCalendarLane;
|
175
152
|
return /*#__PURE__*/React.createElement(React.Fragment, {
|
176
153
|
key: laneIndex
|
177
154
|
}, /*#__PURE__*/React.createElement("div", {
|
178
|
-
className: (0, _classnames.default)(_classes.bookingCalendarDefaultClasses.laneHeaderContainerClassName, laneHeaderContainerClassName, lane.rowClassName,
|
155
|
+
className: (0, _classnames.default)(_classes.bookingCalendarDefaultClasses.laneHeaderContainerClassName, laneHeaderContainerClassName, lane.rowClassName, {
|
156
|
+
[`${_classes.bookingCalendarDefaultClasses.laneHeaderContainerClassName}--last`]: laneIndex === lanes.length - 1,
|
157
|
+
[`${_classes.bookingCalendarDefaultClasses.laneHeaderContainerClassName}--first`]: laneIndex === 0
|
158
|
+
})
|
179
159
|
}, /*#__PURE__*/React.createElement(LaneBookingCalendarLaneHeader, {
|
180
|
-
laneKey:
|
160
|
+
laneKey: lane.laneKey ?? laneIndex,
|
181
161
|
data: lane.data
|
182
162
|
})), /*#__PURE__*/React.createElement("div", {
|
183
|
-
className: (0, _classnames.default)(_classes.bookingCalendarDefaultClasses.laneContainerClassName, laneContainerClassName, lane.rowClassName,
|
163
|
+
className: (0, _classnames.default)(_classes.bookingCalendarDefaultClasses.laneContainerClassName, laneContainerClassName, lane.rowClassName, {
|
164
|
+
[`${_classes.bookingCalendarDefaultClasses.laneContainerClassName}--last`]: laneIndex === lanes.length - 1,
|
165
|
+
[`${_classes.bookingCalendarDefaultClasses.laneContainerClassName}--first`]: laneIndex === 0
|
166
|
+
})
|
184
167
|
}, /*#__PURE__*/React.createElement(LaneBookingCalendarLane, {
|
185
168
|
laneIndex: laneIndex,
|
186
169
|
items: lane.items,
|
187
170
|
from: from,
|
188
171
|
till: till,
|
189
|
-
BookingCalendarItem:
|
190
|
-
BookingCalendarRenderItem:
|
172
|
+
BookingCalendarItem: lane.BookingCalendarItem ?? BookingCalendarItem,
|
173
|
+
BookingCalendarRenderItem: lane.BookingCalendarRenderItem ?? BookingCalendarRenderItem,
|
191
174
|
step: step
|
192
175
|
})));
|
193
176
|
}), /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_BookingCalendarTimeAxis.BookingCalendarTimeAxis, {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/components/bookingCalendar/BookingCalendar.tsx"],"names":["defaultStep","BookingCalendar","props","bookings","className","laneContainerClassName","laneHeaderContainerClassName","lanesHeaderContainerClassName","lanesHeaderHeaderContainerClassName","controlsClasses","tableClassName","from","till","onRangeChange","step","showGrid","showSelection","gridAvailableSteps","defaultGridAvailableSteps","getMomentFormatFunction","defaultGetMomentFormatFunction","getNewMomentFunction","defaultGetNewMomentFunction","goalGridWidthPx","minSelectionSize","minLanesCount","lanesSource","filterBookingsToZoom","zoomLevels","BookingCalendarControls","DefaultBookingCalendarControls","BookingCalendarItem","BookingCalendarLane","DefaultBookingCalendarLane","BookingCalendarRenderItem","BookingCalendarGrid","DefaultBookingCalendarGrid","BookingCalendarLaneHeader","DefaultBookingCalendarLaneHeader","BookingCalendarLanesHeader","DefaultBookingCalendarLanesHeader","BookingCalendarDatePicker","DefaultBookingCalendarDatePicker","lanes","React","useMemo","observe","width","clone","startOf","gridItems","items","bestStep","onSelected","useCallback","data","screenSpaceStartX","Math","min","origin","target","screenSpaceEndX","max","durationMs","valueOf","toTimeSpace","num","timeSpaceStart","add","timeSpaceEnd","bookingCalendarDefaultClasses","length","map","lane","laneIndex","LaneBookingCalendarLaneHeader","LaneBookingCalendarLane","rowClassName","laneKey"],"mappings":"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","sourcesContent":["import * as React from 'react';\r\nimport {\r\n BookingCalendarClasses,\r\n bookingCalendarDefaultClasses,\r\n} from './classes';\r\nimport classNames from 'classnames';\r\nimport {\r\n BookingCalendarDateRange,\r\n BookingCalendarItemT,\r\n defaultGetMomentFormatFunction,\r\n GetNewMomentFunctionType,\r\n} from './common';\r\nimport {\r\n BookingCalendarControls as DefaultBookingCalendarControls,\r\n BookingCalendarControlsProps,\r\n} from './bookingCalendarControls/BookingCalendarControls';\r\nimport {\r\n generateGridItems,\r\n LaneSourceData,\r\n splitBookingsToLanes,\r\n} from './utils';\r\nimport {\r\n BookingCalendarLane as DefaultBookingCalendarLane,\r\n BookingCalendarLaneProps,\r\n} from './bookingCalendarLane/BookingCalendarLane';\r\nimport { Moment, Duration, duration } from 'moment';\r\nimport { BookingCalendarItemProps } from './bookingCalendarItem';\r\nimport { BookingCalendarRenderItemProps } from './bookingCalendarRenderItem';\r\nimport {\r\n BookingCalendarGrid as DefaultBookingCalendarGrid,\r\n BookingCalendarGridProps,\r\n} from './bookingCalendarGrid/BookingCalendarGrid';\r\nimport {\r\n BookingCalendarLaneHeader as DefaultBookingCalendarLaneHeader,\r\n BookingCalendarLaneHeaderProps,\r\n} from './bookingCalendarLaneHeader';\r\nimport {\r\n BookingCalendarLanesHeader as DefaultBookingCalendarLanesHeader,\r\n BookingCalendarLanesHeaderProps,\r\n} from './bookingCalendarLanesHeader';\r\nimport {\r\n BookingCalendarDatePicker as DefaultBookingCalendarDatePicker,\r\n BookingCalendarDatePickerProps,\r\n} from './bookingCalendarDatePicker';\r\nimport {\r\n defaultGetNewMomentFunction,\r\n defaultGridAvailableSteps,\r\n GetMomentFormatFunctionType,\r\n ZoomLevel,\r\n} from '.';\r\nimport { BookingCalendarTimeAxis } from './bookingCalendarTimeAxis/BookingCalendarTimeAxis';\r\nimport useDimensions from 'react-cool-dimensions';\r\nimport BookingCalendarSelection, {\r\n BookingCalendarSelectionData,\r\n} from './bookingCalendarSelection/BookingCalendarSelection';\r\n\r\nexport interface BookingCalendarProps<\r\n T extends BookingCalendarItemT,\r\n TLaneData\r\n> extends BookingCalendarClasses {\r\n bookings: T[];\r\n from: Moment;\r\n till: Moment;\r\n getMomentFormatFunction?: GetMomentFormatFunctionType;\r\n getNewMomentFunction?: GetNewMomentFunctionType;\r\n onRangeChange?: (range: BookingCalendarDateRange) => void;\r\n step?: Duration;\r\n showGrid?: boolean;\r\n showSelection?: boolean;\r\n minSelectionSize?: number;\r\n gridAvailableSteps?: Duration[];\r\n goalGridWidthPx?: number;\r\n minLanesCount?: number;\r\n lanesSource?: LaneSourceData<T, TLaneData>[];\r\n\r\n zoomLevels?: ZoomLevel[];\r\n filterBookingsToZoom?: (booking: T) => boolean;\r\n\r\n BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;\r\n BookingCalendarRenderItem?: React.ComponentType<\r\n BookingCalendarRenderItemProps<T>\r\n >;\r\n BookingCalendarLane?: React.ComponentType<BookingCalendarLaneProps<T>>;\r\n BookingCalendarControls?: React.ComponentType<\r\n BookingCalendarControlsProps<T>\r\n >;\r\n BookingCalendarGrid?: React.ComponentType<BookingCalendarGridProps>;\r\n BookingCalendarLaneHeader?: React.ComponentType<\r\n BookingCalendarLaneHeaderProps<TLaneData>\r\n >;\r\n BookingCalendarLanesHeader?: React.ComponentType<\r\n BookingCalendarLanesHeaderProps<T>\r\n >;\r\n BookingCalendarDatePicker?:\r\n | React.ComponentType<BookingCalendarDatePickerProps<T>>\r\n | React.ReactNode;\r\n}\r\n\r\nconst defaultStep = duration(1, 'day');\r\n\r\nexport function BookingCalendar<T extends BookingCalendarItemT, TLaneData>(\r\n props: BookingCalendarProps<T, TLaneData>\r\n) {\r\n const {\r\n bookings,\r\n className,\r\n laneContainerClassName,\r\n laneHeaderContainerClassName,\r\n lanesHeaderContainerClassName,\r\n lanesHeaderHeaderContainerClassName,\r\n controlsClasses,\r\n tableClassName,\r\n from,\r\n till,\r\n onRangeChange,\r\n step = defaultStep,\r\n showGrid = true,\r\n showSelection = true,\r\n gridAvailableSteps = defaultGridAvailableSteps,\r\n getMomentFormatFunction = defaultGetMomentFormatFunction,\r\n getNewMomentFunction = defaultGetNewMomentFunction,\r\n goalGridWidthPx = 60,\r\n minSelectionSize = 10,\r\n minLanesCount,\r\n lanesSource,\r\n filterBookingsToZoom,\r\n zoomLevels,\r\n BookingCalendarControls = DefaultBookingCalendarControls,\r\n BookingCalendarItem,\r\n BookingCalendarLane = DefaultBookingCalendarLane,\r\n BookingCalendarRenderItem,\r\n BookingCalendarGrid = DefaultBookingCalendarGrid,\r\n BookingCalendarLaneHeader = DefaultBookingCalendarLaneHeader,\r\n BookingCalendarLanesHeader = DefaultBookingCalendarLanesHeader,\r\n BookingCalendarDatePicker = DefaultBookingCalendarDatePicker,\r\n } = props;\r\n const lanes = React.useMemo(\r\n () =>\r\n splitBookingsToLanes<T, TLaneData>(\r\n bookings,\r\n from,\r\n minLanesCount,\r\n lanesSource\r\n ),\r\n [bookings, from, minLanesCount, lanesSource]\r\n );\r\n const { observe, width } = useDimensions();\r\n const { items: gridItems, bestStep } = React.useMemo(\r\n () =>\r\n generateGridItems(\r\n from,\r\n till,\r\n step,\r\n width,\r\n gridAvailableSteps,\r\n goalGridWidthPx,\r\n from?.clone()?.startOf('day')\r\n ),\r\n [from, till, step, width, gridAvailableSteps, goalGridWidthPx]\r\n );\r\n const onSelected = React.useCallback(\r\n (data: BookingCalendarSelectionData) => {\r\n if (!from || !till || !width || !onRangeChange) {\r\n return;\r\n }\r\n const screenSpaceStartX = Math.min(data.origin[0], data.target[0]);\r\n const screenSpaceEndX = Math.max(data.origin[0], data.target[0]);\r\n const durationMs = till.valueOf() - from.valueOf();\r\n const toTimeSpace = (num: number) => (num / (width || 1)) * durationMs;\r\n const timeSpaceStart = from\r\n .clone()\r\n .add(toTimeSpace(screenSpaceStartX), 'ms');\r\n const timeSpaceEnd = from.clone().add(toTimeSpace(screenSpaceEndX), 'ms');\r\n onRangeChange({ from: timeSpaceStart, till: timeSpaceEnd });\r\n },\r\n [from, till, width, onRangeChange]\r\n );\r\n return (\r\n <div\r\n className={classNames(bookingCalendarDefaultClasses.className, className)}\r\n >\r\n <BookingCalendarControls<T>\r\n {...controlsClasses}\r\n items={bookings}\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n step={step}\r\n filterBookingsToZoom={filterBookingsToZoom}\r\n zoomLevels={zoomLevels}\r\n />\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.tableClassName,\r\n tableClassName\r\n )}\r\n >\r\n {showGrid && (\r\n <BookingCalendarGrid\r\n containerRef={observe}\r\n items={gridItems}\r\n dataRowsCount={lanes.length}\r\n />\r\n )}\r\n {showSelection && (\r\n <BookingCalendarSelection\r\n dataRowsCount={lanes.length}\r\n onSelected={onSelected}\r\n minSelectionSize={minSelectionSize}\r\n />\r\n )}\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.lanesHeaderHeaderContainerClassName,\r\n lanesHeaderHeaderContainerClassName\r\n )}\r\n >\r\n {typeof BookingCalendarDatePicker === 'function' ? (\r\n <BookingCalendarDatePicker\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n getNewMomentFunction={getNewMomentFunction}\r\n />\r\n ) : (\r\n BookingCalendarDatePicker\r\n )}\r\n </div>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.lanesHeaderContainerClassName,\r\n lanesHeaderContainerClassName\r\n )}\r\n >\r\n <BookingCalendarLanesHeader<T>\r\n {...controlsClasses}\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n step={step}\r\n />\r\n </div>\r\n\r\n {lanes.map((lane, laneIndex) => {\r\n const LaneBookingCalendarLaneHeader =\r\n lane.BookingCalendarLaneHeader ?? BookingCalendarLaneHeader;\r\n const LaneBookingCalendarLane =\r\n lane.BookingCalendarLane ?? BookingCalendarLane;\r\n return (\r\n <React.Fragment key={laneIndex}>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.laneHeaderContainerClassName,\r\n laneHeaderContainerClassName,\r\n lane.rowClassName,\r\n {\r\n [`${bookingCalendarDefaultClasses.laneHeaderContainerClassName}--last`]:\r\n laneIndex === lanes.length - 1,\r\n [`${bookingCalendarDefaultClasses.laneHeaderContainerClassName}--first`]:\r\n laneIndex === 0,\r\n }\r\n )}\r\n >\r\n <LaneBookingCalendarLaneHeader<TLaneData>\r\n laneKey={lane.laneKey ?? laneIndex}\r\n data={lane.data}\r\n />\r\n </div>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.laneContainerClassName,\r\n laneContainerClassName,\r\n lane.rowClassName,\r\n {\r\n [`${bookingCalendarDefaultClasses.laneContainerClassName}--last`]:\r\n laneIndex === lanes.length - 1,\r\n [`${bookingCalendarDefaultClasses.laneContainerClassName}--first`]:\r\n laneIndex === 0,\r\n }\r\n )}\r\n >\r\n <LaneBookingCalendarLane\r\n laneIndex={laneIndex}\r\n items={lane.items}\r\n from={from}\r\n till={till}\r\n BookingCalendarItem={\r\n lane.BookingCalendarItem ?? BookingCalendarItem\r\n }\r\n BookingCalendarRenderItem={\r\n lane.BookingCalendarRenderItem ?? BookingCalendarRenderItem\r\n }\r\n step={step}\r\n />\r\n </div>\r\n </React.Fragment>\r\n );\r\n })}\r\n <div />\r\n <div>\r\n <BookingCalendarTimeAxis\r\n items={gridItems}\r\n bestStep={bestStep}\r\n getMomentFormatFunction={getMomentFormatFunction}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"file":"BookingCalendar.js"}
|
1
|
+
{"version":3,"file":"BookingCalendar.js","names":["defaultStep","duration","BookingCalendar","props","bookings","className","laneContainerClassName","laneHeaderContainerClassName","lanesHeaderContainerClassName","lanesHeaderHeaderContainerClassName","controlsClasses","tableClassName","from","till","onRangeChange","step","showGrid","showSelection","gridAvailableSteps","defaultGridAvailableSteps","getMomentFormatFunction","defaultGetMomentFormatFunction","getNewMomentFunction","defaultGetNewMomentFunction","goalGridWidthPx","minSelectionSize","minLanesCount","lanesSource","filterBookingsToZoom","zoomLevels","BookingCalendarControls","DefaultBookingCalendarControls","BookingCalendarItem","BookingCalendarLane","DefaultBookingCalendarLane","BookingCalendarRenderItem","BookingCalendarGrid","DefaultBookingCalendarGrid","BookingCalendarLaneHeader","DefaultBookingCalendarLaneHeader","BookingCalendarLanesHeader","DefaultBookingCalendarLanesHeader","BookingCalendarDatePicker","DefaultBookingCalendarDatePicker","lanes","React","useMemo","splitBookingsToLanes","observe","width","useDimensions","items","gridItems","bestStep","generateGridItems","clone","startOf","onSelected","useCallback","data","screenSpaceStartX","Math","min","origin","target","screenSpaceEndX","max","durationMs","valueOf","toTimeSpace","num","timeSpaceStart","add","timeSpaceEnd","classNames","bookingCalendarDefaultClasses","length","map","lane","laneIndex","LaneBookingCalendarLaneHeader","LaneBookingCalendarLane","rowClassName","laneKey"],"sources":["../../../src/lib/components/bookingCalendar/BookingCalendar.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport {\r\n BookingCalendarClasses,\r\n bookingCalendarDefaultClasses,\r\n} from './classes';\r\nimport classNames from 'classnames';\r\nimport {\r\n BookingCalendarDateRange,\r\n BookingCalendarItemT,\r\n defaultGetMomentFormatFunction,\r\n GetNewMomentFunctionType,\r\n} from './common';\r\nimport {\r\n BookingCalendarControls as DefaultBookingCalendarControls,\r\n BookingCalendarControlsProps,\r\n} from './bookingCalendarControls/BookingCalendarControls';\r\nimport {\r\n generateGridItems,\r\n LaneSourceData,\r\n splitBookingsToLanes,\r\n} from './utils';\r\nimport {\r\n BookingCalendarLane as DefaultBookingCalendarLane,\r\n BookingCalendarLaneProps,\r\n} from './bookingCalendarLane/BookingCalendarLane';\r\nimport { Moment, Duration, duration } from 'moment';\r\nimport { BookingCalendarItemProps } from './bookingCalendarItem';\r\nimport { BookingCalendarRenderItemProps } from './bookingCalendarRenderItem';\r\nimport {\r\n BookingCalendarGrid as DefaultBookingCalendarGrid,\r\n BookingCalendarGridProps,\r\n} from './bookingCalendarGrid/BookingCalendarGrid';\r\nimport {\r\n BookingCalendarLaneHeader as DefaultBookingCalendarLaneHeader,\r\n BookingCalendarLaneHeaderProps,\r\n} from './bookingCalendarLaneHeader';\r\nimport {\r\n BookingCalendarLanesHeader as DefaultBookingCalendarLanesHeader,\r\n BookingCalendarLanesHeaderProps,\r\n} from './bookingCalendarLanesHeader';\r\nimport {\r\n BookingCalendarDatePicker as DefaultBookingCalendarDatePicker,\r\n BookingCalendarDatePickerProps,\r\n} from './bookingCalendarDatePicker';\r\nimport {\r\n defaultGetNewMomentFunction,\r\n defaultGridAvailableSteps,\r\n GetMomentFormatFunctionType,\r\n ZoomLevel,\r\n} from '.';\r\nimport { BookingCalendarTimeAxis } from './bookingCalendarTimeAxis/BookingCalendarTimeAxis';\r\nimport useDimensions from 'react-cool-dimensions';\r\nimport BookingCalendarSelection, {\r\n BookingCalendarSelectionData,\r\n} from './bookingCalendarSelection/BookingCalendarSelection';\r\n\r\nexport interface BookingCalendarProps<\r\n T extends BookingCalendarItemT,\r\n TLaneData\r\n> extends BookingCalendarClasses {\r\n bookings: T[];\r\n from: Moment;\r\n till: Moment;\r\n getMomentFormatFunction?: GetMomentFormatFunctionType;\r\n getNewMomentFunction?: GetNewMomentFunctionType;\r\n onRangeChange?: (range: BookingCalendarDateRange) => void;\r\n step?: Duration;\r\n showGrid?: boolean;\r\n showSelection?: boolean;\r\n minSelectionSize?: number;\r\n gridAvailableSteps?: Duration[];\r\n goalGridWidthPx?: number;\r\n minLanesCount?: number;\r\n lanesSource?: LaneSourceData<T, TLaneData>[];\r\n\r\n zoomLevels?: ZoomLevel[];\r\n filterBookingsToZoom?: (booking: T) => boolean;\r\n\r\n BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;\r\n BookingCalendarRenderItem?: React.ComponentType<\r\n BookingCalendarRenderItemProps<T>\r\n >;\r\n BookingCalendarLane?: React.ComponentType<BookingCalendarLaneProps<T>>;\r\n BookingCalendarControls?: React.ComponentType<\r\n BookingCalendarControlsProps<T>\r\n >;\r\n BookingCalendarGrid?: React.ComponentType<BookingCalendarGridProps>;\r\n BookingCalendarLaneHeader?: React.ComponentType<\r\n BookingCalendarLaneHeaderProps<TLaneData>\r\n >;\r\n BookingCalendarLanesHeader?: React.ComponentType<\r\n BookingCalendarLanesHeaderProps<T>\r\n >;\r\n BookingCalendarDatePicker?:\r\n | React.ComponentType<BookingCalendarDatePickerProps<T>>\r\n | React.ReactNode;\r\n}\r\n\r\nconst defaultStep = duration(1, 'day');\r\n\r\nexport function BookingCalendar<T extends BookingCalendarItemT, TLaneData>(\r\n props: BookingCalendarProps<T, TLaneData>\r\n) {\r\n const {\r\n bookings,\r\n className,\r\n laneContainerClassName,\r\n laneHeaderContainerClassName,\r\n lanesHeaderContainerClassName,\r\n lanesHeaderHeaderContainerClassName,\r\n controlsClasses,\r\n tableClassName,\r\n from,\r\n till,\r\n onRangeChange,\r\n step = defaultStep,\r\n showGrid = true,\r\n showSelection = true,\r\n gridAvailableSteps = defaultGridAvailableSteps,\r\n getMomentFormatFunction = defaultGetMomentFormatFunction,\r\n getNewMomentFunction = defaultGetNewMomentFunction,\r\n goalGridWidthPx = 60,\r\n minSelectionSize = 10,\r\n minLanesCount,\r\n lanesSource,\r\n filterBookingsToZoom,\r\n zoomLevels,\r\n BookingCalendarControls = DefaultBookingCalendarControls,\r\n BookingCalendarItem,\r\n BookingCalendarLane = DefaultBookingCalendarLane,\r\n BookingCalendarRenderItem,\r\n BookingCalendarGrid = DefaultBookingCalendarGrid,\r\n BookingCalendarLaneHeader = DefaultBookingCalendarLaneHeader,\r\n BookingCalendarLanesHeader = DefaultBookingCalendarLanesHeader,\r\n BookingCalendarDatePicker = DefaultBookingCalendarDatePicker,\r\n } = props;\r\n const lanes = React.useMemo(\r\n () =>\r\n splitBookingsToLanes<T, TLaneData>(\r\n bookings,\r\n from,\r\n minLanesCount,\r\n lanesSource\r\n ),\r\n [bookings, from, minLanesCount, lanesSource]\r\n );\r\n const { observe, width } = useDimensions();\r\n const { items: gridItems, bestStep } = React.useMemo(\r\n () =>\r\n generateGridItems(\r\n from,\r\n till,\r\n step,\r\n width,\r\n gridAvailableSteps,\r\n goalGridWidthPx,\r\n from?.clone()?.startOf('day')\r\n ),\r\n [from, till, step, width, gridAvailableSteps, goalGridWidthPx]\r\n );\r\n const onSelected = React.useCallback(\r\n (data: BookingCalendarSelectionData) => {\r\n if (!from || !till || !width || !onRangeChange) {\r\n return;\r\n }\r\n const screenSpaceStartX = Math.min(data.origin[0], data.target[0]);\r\n const screenSpaceEndX = Math.max(data.origin[0], data.target[0]);\r\n const durationMs = till.valueOf() - from.valueOf();\r\n const toTimeSpace = (num: number) => (num / (width || 1)) * durationMs;\r\n const timeSpaceStart = from\r\n .clone()\r\n .add(toTimeSpace(screenSpaceStartX), 'ms');\r\n const timeSpaceEnd = from.clone().add(toTimeSpace(screenSpaceEndX), 'ms');\r\n onRangeChange({ from: timeSpaceStart, till: timeSpaceEnd });\r\n },\r\n [from, till, width, onRangeChange]\r\n );\r\n return (\r\n <div\r\n className={classNames(bookingCalendarDefaultClasses.className, className)}\r\n >\r\n <BookingCalendarControls<T>\r\n {...controlsClasses}\r\n items={bookings}\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n step={step}\r\n filterBookingsToZoom={filterBookingsToZoom}\r\n zoomLevels={zoomLevels}\r\n />\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.tableClassName,\r\n tableClassName\r\n )}\r\n >\r\n {showGrid && (\r\n <BookingCalendarGrid\r\n containerRef={observe}\r\n items={gridItems}\r\n dataRowsCount={lanes.length}\r\n />\r\n )}\r\n {showSelection && (\r\n <BookingCalendarSelection\r\n dataRowsCount={lanes.length}\r\n onSelected={onSelected}\r\n minSelectionSize={minSelectionSize}\r\n />\r\n )}\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.lanesHeaderHeaderContainerClassName,\r\n lanesHeaderHeaderContainerClassName\r\n )}\r\n >\r\n {typeof BookingCalendarDatePicker === 'function' ? (\r\n <BookingCalendarDatePicker\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n getNewMomentFunction={getNewMomentFunction}\r\n />\r\n ) : (\r\n BookingCalendarDatePicker\r\n )}\r\n </div>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.lanesHeaderContainerClassName,\r\n lanesHeaderContainerClassName\r\n )}\r\n >\r\n <BookingCalendarLanesHeader<T>\r\n {...controlsClasses}\r\n from={from}\r\n till={till}\r\n onRangeChange={onRangeChange}\r\n step={step}\r\n />\r\n </div>\r\n\r\n {lanes.map((lane, laneIndex) => {\r\n const LaneBookingCalendarLaneHeader =\r\n lane.BookingCalendarLaneHeader ?? BookingCalendarLaneHeader;\r\n const LaneBookingCalendarLane =\r\n lane.BookingCalendarLane ?? BookingCalendarLane;\r\n return (\r\n <React.Fragment key={laneIndex}>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.laneHeaderContainerClassName,\r\n laneHeaderContainerClassName,\r\n lane.rowClassName,\r\n {\r\n [`${bookingCalendarDefaultClasses.laneHeaderContainerClassName}--last`]:\r\n laneIndex === lanes.length - 1,\r\n [`${bookingCalendarDefaultClasses.laneHeaderContainerClassName}--first`]:\r\n laneIndex === 0,\r\n }\r\n )}\r\n >\r\n <LaneBookingCalendarLaneHeader<TLaneData>\r\n laneKey={lane.laneKey ?? laneIndex}\r\n data={lane.data}\r\n />\r\n </div>\r\n <div\r\n className={classNames(\r\n bookingCalendarDefaultClasses.laneContainerClassName,\r\n laneContainerClassName,\r\n lane.rowClassName,\r\n {\r\n [`${bookingCalendarDefaultClasses.laneContainerClassName}--last`]:\r\n laneIndex === lanes.length - 1,\r\n [`${bookingCalendarDefaultClasses.laneContainerClassName}--first`]:\r\n laneIndex === 0,\r\n }\r\n )}\r\n >\r\n <LaneBookingCalendarLane\r\n laneIndex={laneIndex}\r\n items={lane.items}\r\n from={from}\r\n till={till}\r\n BookingCalendarItem={\r\n lane.BookingCalendarItem ?? BookingCalendarItem\r\n }\r\n BookingCalendarRenderItem={\r\n lane.BookingCalendarRenderItem ?? BookingCalendarRenderItem\r\n }\r\n step={step}\r\n />\r\n </div>\r\n </React.Fragment>\r\n );\r\n })}\r\n <div />\r\n <div>\r\n <BookingCalendarTimeAxis\r\n items={gridItems}\r\n bestStep={bestStep}\r\n getMomentFormatFunction={getMomentFormatFunction}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"mappings":"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"}
|