guestbell-forms 2.0.232 → 2.0.236
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/base/input/BaseInput.js +5 -1
- package/build/components/base/input/BaseInput.js.map +1 -1
- package/build/components/numberInput/NumberInput.js +9 -7
- package/build/components/numberInput/NumberInput.js.map +1 -1
- package/build/components/openingHours/openingHoursDay/OpeningHoursDay.js +1 -1
- package/build/components/openingHours/openingHoursDay/OpeningHoursDay.js.map +1 -1
- package/build/dist/guestbell-forms.css +32 -18
- package/build/dist/guestbell-forms.css.map +1 -1
- package/build/dist/guestbell-forms.min.css +1 -1
- package/build/dist/report.html +1 -1
- package/build/scss/components/numberInput/numberInput.scss +1 -1
- package/build/scss/components/openingHours/openingHoursDay/openingHoursDay.scss +18 -4
- package/build/scss/components/time/time.scss +3 -2
- package/build/scss/components/timeSpan/timeSpan.scss +3 -2
- package/package.json +1 -1
@@ -17,6 +17,8 @@ var _Guid = _interopRequireDefault(require("../../utils/Guid"));
|
|
17
17
|
|
18
18
|
var _ShallowEqual = require("../../utils/ShallowEqual");
|
19
19
|
|
20
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
21
|
+
|
20
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
21
23
|
|
22
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
@@ -356,7 +358,9 @@ var BaseInput = /*#__PURE__*/function (_React$Component) {
|
|
356
358
|
|
357
359
|
if (!this.props.tooltip || this.props.tooltip && this.props.title) {
|
358
360
|
return /*#__PURE__*/React.createElement("span", {
|
359
|
-
className: 'w-100'
|
361
|
+
className: (0, _classnames.default)('w-100', {
|
362
|
+
'label--no-touch': !touchable
|
363
|
+
})
|
360
364
|
}, this.props.label);
|
361
365
|
}
|
362
366
|
|
@@ -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\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 className={'w-100' + (touchable ? '' : 'label--no-touch')}>\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,"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"}
|
@@ -113,9 +113,7 @@ var NumberInputRaw = /*#__PURE__*/function (_BaseInput) {
|
|
113
113
|
_createClass(NumberInputRaw, [{
|
114
114
|
key: "render",
|
115
115
|
value: function render() {
|
116
|
-
var
|
117
|
-
label = _this$props.label,
|
118
|
-
unit = _this$props.unit;
|
116
|
+
var unit = this.props.unit;
|
119
117
|
return /*#__PURE__*/React.createElement(_InputGroup.default, {
|
120
118
|
title: this.props.title
|
121
119
|
}, /*#__PURE__*/React.createElement("div", _extends({}, this.props.id && {
|
@@ -123,9 +121,7 @@ var NumberInputRaw = /*#__PURE__*/function (_BaseInput) {
|
|
123
121
|
}, {
|
124
122
|
className: 'input__base number-input ' + this.getValidationClass() + ' ' + (this.props.className ? this.props.className : ''),
|
125
123
|
ref: this.containerRef
|
126
|
-
}),
|
127
|
-
className: "number-input__label"
|
128
|
-
}, label), /*#__PURE__*/React.createElement("div", {
|
124
|
+
}), /*#__PURE__*/React.createElement("div", {
|
129
125
|
className: ""
|
130
126
|
}, /*#__PURE__*/React.createElement("div", {
|
131
127
|
className: "number-input__arrows__container"
|
@@ -161,7 +157,13 @@ var NumberInputRaw = /*#__PURE__*/function (_BaseInput) {
|
|
161
157
|
id: this.props.id + '-subtract-hours-button'
|
162
158
|
}, {
|
163
159
|
tabIndex: 0
|
164
|
-
}), /*#__PURE__*/React.createElement(ArrowIcon, null))), unit), this.renderDefaultValidation()
|
160
|
+
}), /*#__PURE__*/React.createElement(ArrowIcon, null))), unit), this.renderDefaultValidation(), /*#__PURE__*/React.createElement("span", {
|
161
|
+
className: "highlight"
|
162
|
+
}), /*#__PURE__*/React.createElement("span", {
|
163
|
+
className: 'bar ' + (this.state.focused ? 'focused' : '')
|
164
|
+
}), this.props.label && /*#__PURE__*/React.createElement("label", {
|
165
|
+
className: classNames('number-input__label label--focused')
|
166
|
+
}, this.renderLabel())));
|
165
167
|
}
|
166
168
|
}, {
|
167
169
|
key: "commitState",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/components/numberInput/NumberInput.tsx"],"names":["ArrowIcon","classNames","require","NumberInputRaw","props","e","commitState","handleBlur","preventDefault","handleLimits","number","setState","currentText","target","value","key","removeUnitClick","bind","addUnitClick","onUnitChanged","label","unit","title","id","getValidationClass","className","containerRef","getDisabled","required","filled","undefined","state","onBlur","handleFocus","onKeyDown","renderDefaultValidation","num","Number","isNaN","min","onNumberChange","max","BaseInput","Object","assign","defaultProps","type","placeholder","NumberInput"],"mappings":"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","sourcesContent":["import * as ArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_down_24px.svg';\r\n\r\n// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport InputGroup from '../inputGroup/InputGroup';\r\nimport {\r\n BaseInputProps,\r\n BaseInputState,\r\n BaseInput,\r\n} from '../base/input/BaseInput';\r\nimport { withFormContext } from '../form/withFormContext';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\nvar classNames = require('classnames');\r\n\r\nexport interface NumberInputProps extends BaseInputProps<HTMLInputElement> {\r\n value?: never;\r\n onChange?: never;\r\n onNumberChange: (num: number) => void;\r\n number: number;\r\n min?: number;\r\n max?: number;\r\n unit?: string;\r\n}\r\n\r\nexport interface NumberInputState extends BaseInputState {\r\n currentText: string;\r\n}\r\n\r\nexport class NumberInputRaw extends BaseInput<\r\n NumberInputProps,\r\n NumberInputState,\r\n HTMLInputElement\r\n> {\r\n public static defaultProps = (Object.assign({}, BaseInput.defaultProps, {\r\n type: 'time',\r\n placeholder: '',\r\n }) as unknown) as Partial<NumberInputProps>;\r\n\r\n constructor(props: NumberInputProps) {\r\n super(props);\r\n this.removeUnitClick = this.removeUnitClick.bind(this);\r\n this.addUnitClick = this.addUnitClick.bind(this);\r\n this.onUnitChanged = this.onUnitChanged.bind(this);\r\n }\r\n\r\n public render() {\r\n const { label, unit } = this.props;\r\n return (\r\n <InputGroup title={this.props.title}>\r\n <div\r\n {...(this.props.id && {\r\n id: this.props.id,\r\n })}\r\n className={\r\n 'input__base number-input ' +\r\n this.getValidationClass() +\r\n ' ' +\r\n (this.props.className ? this.props.className : '')\r\n }\r\n ref={this.containerRef}\r\n >\r\n {label && <div className=\"number-input__label\">{label}</div>}\r\n <div className=\"\">\r\n <div className=\"number-input__arrows__container\">\r\n <button\r\n className=\"plus\"\r\n onClick={this.addUnitClick}\r\n {...(this.props.id && {\r\n id: this.props.id + '-add-hours-button',\r\n })}\r\n tabIndex={0}\r\n >\r\n <ArrowIcon />\r\n </button>\r\n <div className=\"input-padding\">\r\n <input\r\n {...(this.props.id && {\r\n id: this.props.id + '-input',\r\n })}\r\n disabled={this.getDisabled()}\r\n required={this.props.required}\r\n className={classNames('number-input__time', {\r\n filled: this.props.number !== undefined,\r\n })}\r\n onChange={this.onUnitChanged}\r\n value={\r\n this.state.currentText !== undefined\r\n ? this.state.currentText\r\n : this.props.number\r\n }\r\n onBlur={this.onBlur}\r\n onFocus={this.handleFocus}\r\n type=\"number\"\r\n onKeyDown={this.onKeyDown}\r\n />\r\n <span className=\"highlight\" />\r\n </div>\r\n <button\r\n className=\"minus\"\r\n onClick={this.removeUnitClick}\r\n {...(this.props.id && {\r\n id: this.props.id + '-subtract-hours-button',\r\n })}\r\n tabIndex={0}\r\n >\r\n <ArrowIcon />\r\n </button>\r\n </div>\r\n {unit}\r\n </div>\r\n {this.renderDefaultValidation()}\r\n </div>\r\n </InputGroup>\r\n );\r\n }\r\n\r\n private commitState() {\r\n if (this.state.currentText) {\r\n var num = Number(this.state.currentText);\r\n if (!isNaN(num)) {\r\n this.handleLimits(num);\r\n }\r\n this.setState({ currentText: undefined });\r\n }\r\n }\r\n\r\n private onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\r\n this.commitState();\r\n this.handleBlur(e);\r\n };\r\n\r\n private removeUnitClick = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n e.preventDefault();\r\n this.handleLimits((this.props.number || 0) - 1);\r\n };\r\n\r\n private onUnitChanged = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n this.setState({ currentText: e.target.value });\r\n };\r\n\r\n private onKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Enter') {\r\n this.commitState();\r\n }\r\n };\r\n\r\n private addUnitClick = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n e.preventDefault();\r\n this.handleLimits((this.props.number || 0) + 1);\r\n };\r\n\r\n private handleLimits(num: number) {\r\n if (this.props.min !== undefined) {\r\n if (num - this.props.min <= 0) {\r\n this.props.onNumberChange(this.props.min);\r\n return;\r\n }\r\n }\r\n if (this.props.max !== undefined) {\r\n if (this.props.max - num <= 0) {\r\n this.props.onNumberChange(this.props.max);\r\n return;\r\n }\r\n }\r\n this.props.onNumberChange(num);\r\n }\r\n}\r\n\r\nexport const NumberInput = withThemeContext<\r\n NumberInputProps,\r\n InstanceType<typeof NumberInputRaw>\r\n>(withFormContext<NumberInputProps>(NumberInputRaw), 'numberInput');\r\n\r\nexport default NumberInput;\r\n"],"file":"NumberInput.js"}
|
1
|
+
{"version":3,"sources":["../../../src/lib/components/numberInput/NumberInput.tsx"],"names":["ArrowIcon","classNames","require","NumberInputRaw","props","e","commitState","handleBlur","preventDefault","handleLimits","number","setState","currentText","target","value","key","removeUnitClick","bind","addUnitClick","onUnitChanged","unit","title","id","getValidationClass","className","containerRef","getDisabled","required","filled","undefined","state","onBlur","handleFocus","onKeyDown","renderDefaultValidation","focused","label","renderLabel","num","Number","isNaN","min","onNumberChange","max","BaseInput","Object","assign","defaultProps","type","placeholder","NumberInput"],"mappings":"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","sourcesContent":["import * as ArrowIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_down_24px.svg';\r\n\r\n// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport InputGroup from '../inputGroup/InputGroup';\r\nimport {\r\n BaseInputProps,\r\n BaseInputState,\r\n BaseInput,\r\n} from '../base/input/BaseInput';\r\nimport { withFormContext } from '../form/withFormContext';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\nvar classNames = require('classnames');\r\n\r\nexport interface NumberInputProps extends BaseInputProps<HTMLInputElement> {\r\n value?: never;\r\n onChange?: never;\r\n onNumberChange: (num: number) => void;\r\n number: number;\r\n min?: number;\r\n max?: number;\r\n unit?: string;\r\n}\r\n\r\nexport interface NumberInputState extends BaseInputState {\r\n currentText: string;\r\n}\r\n\r\nexport class NumberInputRaw extends BaseInput<\r\n NumberInputProps,\r\n NumberInputState,\r\n HTMLInputElement\r\n> {\r\n public static defaultProps = (Object.assign({}, BaseInput.defaultProps, {\r\n type: 'time',\r\n placeholder: '',\r\n }) as unknown) as Partial<NumberInputProps>;\r\n\r\n constructor(props: NumberInputProps) {\r\n super(props);\r\n this.removeUnitClick = this.removeUnitClick.bind(this);\r\n this.addUnitClick = this.addUnitClick.bind(this);\r\n this.onUnitChanged = this.onUnitChanged.bind(this);\r\n }\r\n\r\n public render() {\r\n const { unit } = this.props;\r\n return (\r\n <InputGroup title={this.props.title}>\r\n <div\r\n {...(this.props.id && {\r\n id: this.props.id,\r\n })}\r\n className={\r\n 'input__base number-input ' +\r\n this.getValidationClass() +\r\n ' ' +\r\n (this.props.className ? this.props.className : '')\r\n }\r\n ref={this.containerRef}\r\n >\r\n <div className=\"\">\r\n <div className=\"number-input__arrows__container\">\r\n <button\r\n className=\"plus\"\r\n onClick={this.addUnitClick}\r\n {...(this.props.id && {\r\n id: this.props.id + '-add-hours-button',\r\n })}\r\n tabIndex={0}\r\n >\r\n <ArrowIcon />\r\n </button>\r\n <div className=\"input-padding\">\r\n <input\r\n {...(this.props.id && {\r\n id: this.props.id + '-input',\r\n })}\r\n disabled={this.getDisabled()}\r\n required={this.props.required}\r\n className={classNames('number-input__time', {\r\n filled: this.props.number !== undefined,\r\n })}\r\n onChange={this.onUnitChanged}\r\n value={\r\n this.state.currentText !== undefined\r\n ? this.state.currentText\r\n : this.props.number\r\n }\r\n onBlur={this.onBlur}\r\n onFocus={this.handleFocus}\r\n type=\"number\"\r\n onKeyDown={this.onKeyDown}\r\n />\r\n <span className=\"highlight\" />\r\n </div>\r\n <button\r\n className=\"minus\"\r\n onClick={this.removeUnitClick}\r\n {...(this.props.id && {\r\n id: this.props.id + '-subtract-hours-button',\r\n })}\r\n tabIndex={0}\r\n >\r\n <ArrowIcon />\r\n </button>\r\n </div>\r\n {unit}\r\n </div>\r\n {this.renderDefaultValidation()}\r\n <span className=\"highlight\" />\r\n <span className={'bar ' + (this.state.focused ? 'focused' : '')} />\r\n {this.props.label && (\r\n <label className={classNames('number-input__label label--focused')}>\r\n {this.renderLabel()}\r\n </label>\r\n )}\r\n </div>\r\n </InputGroup>\r\n );\r\n }\r\n\r\n private commitState() {\r\n if (this.state.currentText) {\r\n var num = Number(this.state.currentText);\r\n if (!isNaN(num)) {\r\n this.handleLimits(num);\r\n }\r\n this.setState({ currentText: undefined });\r\n }\r\n }\r\n\r\n private onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\r\n this.commitState();\r\n this.handleBlur(e);\r\n };\r\n\r\n private removeUnitClick = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n e.preventDefault();\r\n this.handleLimits((this.props.number || 0) - 1);\r\n };\r\n\r\n private onUnitChanged = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n this.setState({ currentText: e.target.value });\r\n };\r\n\r\n private onKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Enter') {\r\n this.commitState();\r\n }\r\n };\r\n\r\n private addUnitClick = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n e.preventDefault();\r\n this.handleLimits((this.props.number || 0) + 1);\r\n };\r\n\r\n private handleLimits(num: number) {\r\n if (this.props.min !== undefined) {\r\n if (num - this.props.min <= 0) {\r\n this.props.onNumberChange(this.props.min);\r\n return;\r\n }\r\n }\r\n if (this.props.max !== undefined) {\r\n if (this.props.max - num <= 0) {\r\n this.props.onNumberChange(this.props.max);\r\n return;\r\n }\r\n }\r\n this.props.onNumberChange(num);\r\n }\r\n}\r\n\r\nexport const NumberInput = withThemeContext<\r\n NumberInputProps,\r\n InstanceType<typeof NumberInputRaw>\r\n>(withFormContext<NumberInputProps>(NumberInputRaw), 'numberInput');\r\n\r\nexport default NumberInput;\r\n"],"file":"NumberInput.js"}
|
@@ -218,7 +218,7 @@ var OpeningHoursDayRaw = /*#__PURE__*/function (_BaseInput) {
|
|
218
218
|
id: _this2.props.id + '-remove-button-' + ((index - 1) / 2).toString()
|
219
219
|
}, {
|
220
220
|
onClick: _this2.removeTimeClick(index),
|
221
|
-
className: "openingHoursDay-input__button--remove mr-
|
221
|
+
className: "openingHoursDay-input__button--remove mr-3 line-height--0",
|
222
222
|
circular: true,
|
223
223
|
blank: true,
|
224
224
|
type: "error"
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/components/openingHours/openingHoursDay/OpeningHoursDay.tsx"],"names":["PlusIcon","classNames","require","defaultDayTranslations","opens","closes","capacity","add","midnight","defaultBaseTranslations","OpeningHoursDayRaw","props","newTime","openingHours","times","length","clone","getTime","hours","closeTime","onOpeningHoursChange","concat","useCapacity","undefined","index","filter","time","itemIndex","indexJ","newOpeningHours","slice","translations","getTranslations","title","className","tooltip","id","getValidationClass","containerRef","map","item","localIndex","previousTime","nextTime","Math","min","apply","asMilliseconds","toString","timeChanged","num","t","i","removeTimeClick","maxOpenCloseTimes","addTimeClick","isAddTimeClickDisabled","renderDefaultValidation","label","renderLabel","getBottomBorder","dayDiff","TimeUtil","reduce","a","b","parts","totalTime","fullDayMilliseconds","max","OpeningHoursUtil","getTimeFromMidnight","start","end","diff","part","width","toFixed","left","minutes","nextDay","BaseInput","Object","assign","defaultProps","onChange","type","allowMultiple","OpeningHoursDay"],"mappings":";;;;;;;;;AAGA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IArBYA,Q,YAAAA,Q;;;;;;AAAAA,Q;;;;;GAEZ;;AAgBA,IAAIC,UAAU,GAAGC,OAAO,CAAC,YAAD,CAAxB;;AAeO,IAAMC,sBAAsB;AACjCC,EAAAA,KAAK,EAAE,OAD0B;AAEjCC,EAAAA,MAAM,EAAE,QAFyB;AAGjCC,EAAAA,QAAQ,EAAE,UAHuB;AAIjCC,EAAAA,GAAG,EAAE,oBAJ4B;AAKjCC,EAAAA,QAAQ,EAAE;AALuB,GAM9BC,mCAN8B,CAA5B;;;;IAyBMC,kB;;;;;AAcX,8BAAYC,KAAZ,EAAyC;AAAA;;AAAA;;AACvC,8BAAMA,KAAN;;AADuC,0EAFH,KAAK,EAAL,GAAU,EAAV,GAAe,IAEZ;;AAAA,mEAwLlB,YAAM;AAC3B,UAAIC,OAAO,GACT,MAAKD,KAAL,CAAWE,YAAX,IACA,MAAKF,KAAL,CAAWE,YAAX,CAAwBC,KADxB,IAEA,MAAKH,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8BC,MAF9B,GAGI,MAAKJ,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CACE,MAAKH,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8BC,MAA9B,GAAuC,CADzC,EAEEV,MAFF,CAESW,KAFT,EAHJ,GAMI,MAAKC,OAAL,CAAa,CAAb,EAAgB,CAAhB,CAPN;;AAQA,UAAIL,OAAO,CAACM,KAAR,KAAkB,EAAtB,EAA0B;AACxBN,QAAAA,OAAO,GAAGA,OAAO,CAACL,GAAR,CAAY,CAAZ,EAAe,MAAf,CAAV;AACD;;AACD,UAAIY,SAAS,GAAGP,OAAO,CAACI,KAAR,GAAgBT,GAAhB,CAAoB,CAApB,EAAuB,MAAvB,CAAhB;;AACA,YAAKI,KAAL,CAAWS,oBAAX,iCACK,MAAKT,KAAL,CAAWE,YADhB;AAEEC,QAAAA,KAAK,EAAE,MAAKH,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8BO,MAA9B,CAAqC;AAC1CjB,UAAAA,KAAK,EAAEQ,OADmC;AAE1CP,UAAAA,MAAM,EAAEc,SAFkC;AAG1Cb,UAAAA,QAAQ,EAAE,MAAKK,KAAL,CAAWW,WAAX,GAAyB,CAAzB,GAA6BC;AAHG,SAArC;AAFT;AAQD,KA7MwC;;AAAA,sEA+Mf,UAACC,KAAD;AAAA,aAAmB;AAAA,eAC3C,MAAKb,KAAL,CAAWS,oBAAX,iCACK,MAAKT,KAAL,CAAWE,YADhB;AAEEC,UAAAA,KAAK,EAAE,MAAKH,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8BW,MAA9B,CACL,UAACC,IAAD,EAAOC,SAAP;AAAA,mBAAqBA,SAAS,GAAGH,KAAZ,IAAqBG,SAAS,GAAGH,KAAK,GAAG,CAA9D;AAAA,WADK;AAFT,WAD2C;AAAA,OAAnB;AAAA,KA/Me;;AAAA,kEAuNnB,UAACA,KAAD,EAAgBI,MAAhB;AAAA,aAAmC,UAACF,IAAD,EAAoB;AAC3E,YAAIG,eAAmC,mCAClC,MAAKlB,KAAL,CAAWE,YADuB;AAErCC,UAAAA,KAAK,EAAE,MAAKH,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8BgB,KAA9B,CAAoC,CAApC;AAF8B,UAAvC;;AAIA,YAAIF,MAAM,KAAK,CAAf,EAAkB;AAChBC,UAAAA,eAAe,CAACf,KAAhB,CAAsBU,KAAtB,oCACKK,eAAe,CAACf,KAAhB,CAAsBU,KAAtB,CADL;AAEEpB,YAAAA,KAAK,EAAEsB;AAFT;AAID,SALD,MAKO;AACLG,UAAAA,eAAe,CAACf,KAAhB,CAAsBU,KAAtB,oCACKK,eAAe,CAACf,KAAhB,CAAsBU,KAAtB,CADL;AAEEnB,YAAAA,MAAM,EAAEqB;AAFV;AAID;;AACD,cAAKf,KAAL,CAAWS,oBAAX,CAAgCS,eAAhC;AACD,OAjBqB;AAAA,KAvNmB;;AAAA;AAExC;;;;WAED,kBAAgB;AAAA;;AACd,UAAME,YAAY,GAAG,KAAKC,eAAL,CAAqB7B,sBAArB,CAArB;AACA,0BACE,oBAAC,mBAAD;AACE,QAAA,KAAK,EAAE,KAAKQ,KAAL,CAAWsB,KADpB;AAEE,QAAA,SAAS,EAAEhC,UAAU,CACnB,+BADmB,EAEnB,KAAKU,KAAL,CAAWuB,SAFQ,EAGnB;AACE,mDACE,KAAKvB,KAAL,CAAWE,YAAX,IACA,KAAKF,KAAL,CAAWE,YAAX,CAAwBC,KADxB,IAEA,KAAKH,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8BC,MAA9B,KAAyC;AAJ7C,SAHmB,CAFvB;AAYE,QAAA,OAAO,EAAE,KAAKJ,KAAL,CAAWwB;AAZtB,sBAcE,wCACO,KAAKxB,KAAL,CAAWyB,EAAX,IAAiB;AACpBA,QAAAA,EAAE,EAAE,KAAKzB,KAAL,CAAWyB;AADK,OADxB;AAIE,QAAA,SAAS,EAAEnC,UAAU,CACnB,mCADmB,EAEnB;AACE,2CACE,KAAKU,KAAL,CAAWE,YAAX,IACA,KAAKF,KAAL,CAAWE,YAAX,CAAwBC,KADxB,IAEA,KAAKH,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8BC,MAA9B,KAAyC;AAJ7C,SAFmB,EAQnB,KAAKsB,kBAAL,EARmB,CAJvB;AAcE,QAAA,GAAG,EAAE,KAAKC;AAdZ,uBAgBE;AAAK,QAAA,SAAS,EAAC;AAAf,SACG,KAAK3B,KAAL,CAAWE,YAAX,IACC,KAAKF,KAAL,CAAWE,YAAX,CAAwBC,KADzB,IAEC,KAAKH,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8ByB,GAA9B,CAAkC,UAACC,IAAD,EAAOhB,KAAP,EAAiB;AACjD,YAAMV,KAAK,GAAG,CAAC0B,IAAI,CAACpC,KAAN,EAAaoC,IAAI,CAACnC,MAAlB,CAAd;AACA,4BACE;AACE,UAAA,SAAS,EAAC,wCADZ;AAEE,UAAA,GAAG,EAAEmB;AAFP,WAIGV,KAAK,CAACyB,GAAN,CAAU,UAACb,IAAD,EAAOE,MAAP,EAAkB;AAC3B,cAAMa,UAAU,GAAGjB,KAAK,GAAG,CAAR,GAAYI,MAA/B;AACA,cAAMc,YAAY,GAChBd,MAAM,GAAG,CAAT,GACId,KAAK,CAACc,MAAM,GAAG,CAAV,CAAL,CAAkBZ,KAAlB,EADJ,GAEIQ,KAAK,KAAK,CAAV,GACA,MAAI,CAACP,OAAL,CAAa,CAAb,EAAgB,CAAhB,CADA,GAEA,MAAI,CAACN,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CACEU,KAAK,GAAG,CADV,EAEEnB,MAFF,CAESW,KAFT,EALN;AAQA,cAAI2B,QAAQ,GACVf,MAAM,KAAK,CAAX,GACId,KAAK,CAAC,CAAD,CADT,GAEI,MAAI,CAACH,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8BC,MAA9B,GAAuC,CAAvC,GAA2CS,KAA3C,GACA,MAAI,CAACb,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CACEU,KAAK,GAAG,CADV,EAEEpB,KAFF,CAEQY,KAFR,EADA,GAIA,MAAI,CAACC,OAAL,CAAa,EAAb,EAAiB,EAAjB,EAAqB,IAArB,CAPN;;AAQA,cAAIwB,UAAU,GAAG,CAAb,KAAmB,CAAvB,EAA0B;AACxBE,YAAAA,QAAQ,GAAG,sBACTC,IAAI,CAACC,GAAL,CAASC,KAAT,CAAe,IAAf,EAAqB,CACnB,MAAI,CAAC7B,OAAL,CAAa,EAAb,EAAiB,EAAjB,EAAqB,KAArB,EAA4B8B,cAA5B,EADmB,EAEnBJ,QAAQ,CAACI,cAAT,EAFmB,CAArB,CADS,EAKT,aALS,CAAX;AAOD;;AACD,8BACE,oBAAC,UAAD;AACE,YAAA,GAAG,YAAKvB,KAAL,cAAcI,MAAd;AADL,aAEO,MAAI,CAACjB,KAAL,CAAWyB,EAAX,IAAiB;AACpBA,YAAAA,EAAE,YACA,MAAI,CAACzB,KAAL,CAAWyB,EADX,mBAEOZ,KAAK,CAACwB,QAAN,EAFP,cAE2BpB,MAAM,CAACoB,QAAP,EAF3B;AADkB,WAFxB;AAOE,YAAA,SAAS,EAAE,6BAPb;AAQE,YAAA,UAAU,EAAE,MAAI,CAACC,WAAL,CAAiBzB,KAAjB,EAAwBI,MAAxB,CARd;AASE,YAAA,IAAI,EAAEF,IATR;AAUE,YAAA,GAAG,EAAEgB,YAVP;AAWE,YAAA,GAAG,EAAEC,QAXP;AAYE,YAAA,YAAY,EAAE,IAZhB;AAaE,YAAA,KAAK,EACHf,MAAM,GAAG,CAAT,KAAe,CAAf,GACIG,YAAY,CAAC3B,KADjB,GAEI2B,YAAY,CAAC1B;AAhBrB,aADF;AAqBD,SAhDA,CAJH,EAqDG,MAAI,CAACM,KAAL,CAAWW,WAAX,iBACC,oBAAC,oBAAD;AACE,UAAA,KAAK,EAAES,YAAY,CAACzB,QADtB;AAEE,UAAA,GAAG,EAAE,CAFP;AAGE,UAAA,MAAM,EAAEkC,IAAI,CAAClC,QAHf;AAIE,UAAA,cAAc,EAAE,wBAAA4C,GAAG;AAAA,mBACjB,MAAI,CAACvC,KAAL,CAAWS,oBAAX,iCACK,MAAI,CAACT,KAAL,CAAWE,YADhB;AAEEC,cAAAA,KAAK,EAAE,MAAI,CAACH,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8ByB,GAA9B,CAAkC,UAACY,CAAD,EAAIC,CAAJ;AAAA,uBACvCA,CAAC,KAAK5B,KAAN,mCAAmB2B,CAAnB;AAAsB7C,kBAAAA,QAAQ,EAAE4C;AAAhC,qBAAwCC,CADD;AAAA,eAAlC;AAFT,eADiB;AAAA;AAJrB,UAtDJ,eAoEE,oBAAC,cAAD,eACO,MAAI,CAACxC,KAAL,CAAWyB,EAAX,IAAiB;AACpBA,UAAAA,EAAE,EACA,MAAI,CAACzB,KAAL,CAAWyB,EAAX,GACA,iBADA,GAEA,CAAC,CAACZ,KAAK,GAAG,CAAT,IAAc,CAAf,EAAkBwB,QAAlB;AAJkB,SADxB;AAOE,UAAA,OAAO,EAAE,MAAI,CAACK,eAAL,CAAqB7B,KAArB,CAPX;AAQE,UAAA,SAAS,EAAC,2DARZ;AASE,UAAA,QAAQ,EAAE,IATZ;AAUE,UAAA,KAAK,EAAE,IAVT;AAWE,UAAA,IAAI,EAAC;AAXP,yBAaE,oBAAC,QAAD,OAbF,CApEF,CADF;AAsFD,OAxFD,CAHJ,EA4FG,KAAKb,KAAL,CAAW2C,iBAAX,GACC,KAAK3C,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8BC,MAD/B,iBAEC,oBAAC,cAAD,eACO,KAAKJ,KAAL,CAAWyB,EAAX,IAAiB;AACpBA,QAAAA,EAAE,EAAE,KAAKzB,KAAL,CAAWyB,EAAX,GAAgB;AADA,OADxB;AAIE,QAAA,SAAS,EAAC,0CAJZ;AAKE,QAAA,OAAO,EAAE,KAAKmB,YALhB;AAME,QAAA,QAAQ,EAAE,KAAKC,sBAAL,EANZ;AAOE,QAAA,IAAI,EAAE,SAPR;AAQE,QAAA,IAAI,EAAE;AARR,UAUGzB,YAAY,CAACxB,GAVhB,CA9FJ,CAhBF,EA4HG,KAAKkD,uBAAL,EA5HH,EA6HG,KAAK9C,KAAL,CAAWE,YAAX,IAA2B,KAAKF,KAAL,CAAW+C,KAAtC,iBACC;AACE,QAAA,SAAS,EACP,sBACC,KAAK/C,KAAL,CAAWE,YAAX,IACD,KAAKF,KAAL,CAAWE,YAAX,CAAwBC,KADvB,IAED,KAAKH,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8BC,MAF7B,GAGG,gBAHH,GAIG,8BALJ;AAFJ,SAUG,KAAK4C,WAAL,CAAiB,IAAjB,CAVH,CA9HJ,CAdF,EA0JG,KAAKC,eAAL,CAAqB7B,YAArB,CA1JH,CADF;AA8JD;;;WAED,kCAAiC;AAC/B,UACE,KAAKpB,KAAL,CAAWE,YAAX,IACA,KAAKF,KAAL,CAAWE,YAAX,CAAwBC,KADxB,IAEA,KAAKH,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8BC,MAHhC,EAIE;AACA,YAAM8C,OAAO,GAAGC,kBAASD,OAAT,CACd,KAAKlD,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8B,CAA9B,EAAiCV,KADnB,EAEd,KAAKO,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8B,KAAKH,KAAL,CAAWE,YAAX,CAAwBC,KAAxB,CAA8BC,MAA9B,GAAuC,CAArE,EACGV,MAHW,CAAhB;;AAKA,YAAIwD,OAAO,GAAG,CAAd,EAAiB;AACf,iBAAO,IAAP;AACD;AACF;;AACD,aAAO,KAAP;AACD;;;WAoDD,yBAAwB9B,YAAxB,EAAmE;AACjE,UAAMjB,KAAK,GAAG,CACX,KAAKH,KAAL,CAAWE,YAAX,IAA2B,KAAKF,KAAL,CAAWE,YAAX,CAAwBC,KAApD,IACA,EAFY,EAGZiD,MAHY,CAGO,UAACC,CAAD,EAAIC,CAAJ;AAAA,eAAUD,CAAC,CAAC3C,MAAF,CAAS,CAAC4C,CAAC,CAAC7D,KAAH,EAAU6D,CAAC,CAAC5D,MAAZ,CAAT,CAAV;AAAA,OAHP,EAGgD,EAHhD,CAAd;AAIA,UAAI6D,KAAK,GAAG,EAAZ;AACA,UAAIC,SAAS,GAAG,KAAKC,mBAArB;;AACA,UAAI,CAACtD,KAAK,CAACC,MAAX,EAAmB;AACjBmD,QAAAA,KAAK,GAAGA,KAAK,CAAC7C,MAAN,CAAa,CAAC,CAAD,CAAb,CAAR;AACD,OAFD,MAEO;AACL8C,QAAAA,SAAS,GAAGvB,IAAI,CAACyB,GAAL,CACV,KAAKD,mBADK,EAEVE,0BAAiBC,mBAAjB,CAAqCzD,KAAK,CAACA,KAAK,CAACC,MAAN,GAAe,CAAhB,CAA1C,EAA8DD,KAAK,CAAC,CAAD,CAAnE,CAFU,CAAZ;AAIAoD,QAAAA,KAAK,GAAGA,KAAK,CAAC7C,MAAN,CAAa,CACnBiD,0BAAiBC,mBAAjB,CAAqCzD,KAAK,CAAC,CAAD,CAA1C,IAAiDqD,SAD9B,CAAb,CAAR;;AAGA,aAAK,IAAI3C,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGV,KAAK,CAACC,MAAN,GAAe,CAA3C,EAA8CS,KAAK,EAAnD,EAAuD;AACrD,cAAIgD,KAAK,GAAGF,0BAAiBC,mBAAjB,CACVzD,KAAK,CAACU,KAAD,CADK,EAEVV,KAAK,CAAC,CAAD,CAFK,CAAZ;;AAIA,cAAI2D,GAAG,GAAGH,0BAAiBC,mBAAjB,CACRzD,KAAK,CAACU,KAAK,GAAG,CAAT,CADG,EAERV,KAAK,CAAC,CAAD,CAFG,CAAV;;AAIA,cAAI4D,IAAI,GAAG,CAACD,GAAG,GAAGD,KAAP,IAAgBL,SAA3B;AACAD,UAAAA,KAAK,GAAGA,KAAK,CAAC7C,MAAN,CAAa,CAACqD,IAAD,CAAb,CAAR;AACD;;AACDR,QAAAA,KAAK,GAAGA,KAAK,CAAC7C,MAAN,CAAa,CACnB,CAAC8C,SAAS,GACRG,0BAAiBC,mBAAjB,CACEzD,KAAK,CAACA,KAAK,CAACC,MAAN,GAAe,CAAhB,CADP,EAEED,KAAK,CAAC,CAAD,CAFP,CADF,IAKEqD,SANiB,CAAb,CAAR;AAQD;;AACD,0BACE;AAAK,QAAA,SAAS,EAAC;AAAf,SACGD,KAAK,CAAC3B,GAAN,CAAU,UAACoC,IAAD,EAAOvB,CAAP;AAAA,4BACT;AACE,UAAA,GAAG,EAAEA,CADP;AAEE,UAAA,SAAS,EACP,2CACCA,CAAC,GAAG,CAAJ,KAAU,CAAV,GACG,8CADH,GAEG,4CAHJ,CAHJ;AAQE,UAAA,KAAK,EAAE;AAAEwB,YAAAA,KAAK,EAAED,IAAI,GAAG,CAACA,IAAI,GAAG,GAAR,EAAaE,OAAb,CAAqB,CAArB,IAA0B,GAA7B,GAAmC;AAAhD;AART,UADS;AAAA,OAAV,CADH,EAaGV,SAAS,GAAG,KAAKC,mBAAjB,iBACC;AACE,QAAA,SAAS,EAAC,gDADZ;AAEE,QAAA,KAAK,EAAE;AACLU,UAAAA,IAAI,EACF,CAAE,KAAKV,mBAAL,GAA2B,GAA5B,GAAmCD,SAApC,EAA+CnB,QAA/C,KAA4D;AAFzD,SAFT;AAME,QAAA,KAAK,EAAEjB,YAAY,CAACvB;AANtB,QAdJ,CADF;AA0BD;;;WAED,iBACEU,KADF,EAEE6D,OAFF,EAIY;AAAA,UADVC,OACU,uEADS,KACT;AACV,UAAItD,IAAI,GAAG,sBAAS,CAAT,EAAY,aAAZ,EACRnB,GADQ,CACJW,KADI,EACG,OADH,EAERX,GAFQ,CAEJwE,OAFI,EAEK,SAFL,CAAX;;AAGA,UAAIC,OAAJ,EAAa;AACXtD,QAAAA,IAAI,GAAGA,IAAI,CAACnB,GAAL,CAAS,CAAT,EAAY,KAAZ,CAAP;AACD;;AACD,aAAOmB,IAAP;AACD;;;;EAtUqCuD,qB;;;;gBAA3BvE,kB,kBAMkBwE,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBF,sBAAUG,YAA5B,EAA0C;AACrEC,EAAAA,QAAQ,EAAE9D,SAD2D;AAErE+D,EAAAA,IAAI,EAAE,cAF+D;AAGrEC,EAAAA,aAAa,EAAE,KAHsD;AAIrEjC,EAAAA,iBAAiB,EAAE;AAJkD,CAA1C,C;;AAmUxB,IAAMkC,eAAe,GAAG,wCAG7B,sCAAsC9E,kBAAtC,CAH6B,EAG8B,iBAH9B,CAAxB;;eAKQ8E,e","sourcesContent":["import * as PlusIcon from 'material-design-icons/content/svg/production/ic_add_circle_outline_24px.svg';\r\n\r\n// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport { Time } from '../../time/Time';\r\nimport OpeningHoursUtil from '../utils/OpeningHoursUtil';\r\nimport TimeUtil from '../../utils/TimeUtil';\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\nvar classNames = require('classnames');\r\nimport { Duration, duration } from 'moment';\r\nimport NumberInput from '../../numberInput/NumberInput';\r\nimport { withThemeContext } from '../../themeProvider/withThemeContext';\r\n\r\nexport interface OpeningHoursPeriodObj {\r\n opens: Duration;\r\n closes: Duration;\r\n capacity?: number;\r\n}\r\n\r\nexport interface OpeningHoursDayObj {\r\n times: OpeningHoursPeriodObj[];\r\n}\r\n\r\nexport const defaultDayTranslations = {\r\n opens: 'Opens',\r\n closes: 'Closes',\r\n capacity: 'Capacity',\r\n add: 'Add new time range',\r\n midnight: 'Midnight',\r\n ...defaultBaseTranslations,\r\n};\r\n\r\nexport type OpeningHoursDayTranslations = Partial<\r\n typeof defaultDayTranslations\r\n>;\r\n\r\nexport interface OpeningHoursDayProps\r\n extends BaseInputProps<never, OpeningHoursDayTranslations> {\r\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\r\n onOpeningHoursChange: (openingHours: OpeningHoursDayObj) => void;\r\n openingHours: OpeningHoursDayObj;\r\n label?: JSX.Element | string;\r\n maxOpenCloseTimes?: number;\r\n useCapacity?: boolean;\r\n}\r\n\r\nexport interface OpeningHoursState extends BaseInputState {}\r\n\r\nexport class OpeningHoursDayRaw extends BaseInput<\r\n OpeningHoursDayProps,\r\n OpeningHoursState,\r\n never,\r\n OpeningHoursDayTranslations\r\n> {\r\n public static defaultProps = Object.assign({}, BaseInput.defaultProps, {\r\n onChange: undefined,\r\n type: 'openingHours',\r\n allowMultiple: false,\r\n maxOpenCloseTimes: 10,\r\n });\r\n private fullDayMilliseconds: number = 24 * 60 * 60 * 1000;\r\n\r\n constructor(props: OpeningHoursDayProps) {\r\n super(props);\r\n }\r\n\r\n public render() {\r\n const translations = this.getTranslations(defaultDayTranslations);\r\n return (\r\n <InputGroup\r\n title={this.props.title}\r\n className={classNames(\r\n 'input__group__openingHoursDay',\r\n this.props.className,\r\n {\r\n 'input__group__openingHoursDay--closed':\r\n this.props.openingHours &&\r\n this.props.openingHours.times &&\r\n this.props.openingHours.times.length === 0,\r\n }\r\n )}\r\n tooltip={this.props.tooltip}\r\n >\r\n <div\r\n {...(this.props.id && {\r\n id: this.props.id,\r\n })}\r\n className={classNames(\r\n 'input__base openingHoursDay-input',\r\n {\r\n 'openingHoursDay-input--closed':\r\n this.props.openingHours &&\r\n this.props.openingHours.times &&\r\n this.props.openingHours.times.length === 0,\r\n },\r\n this.getValidationClass()\r\n )}\r\n ref={this.containerRef}\r\n >\r\n <div className=\"openingHoursDay-input__container\">\r\n {this.props.openingHours &&\r\n this.props.openingHours.times &&\r\n this.props.openingHours.times.map((item, index) => {\r\n const times = [item.opens, item.closes];\r\n return (\r\n <div\r\n className=\"openingHoursDay-input__time__container\"\r\n key={index}\r\n >\r\n {times.map((time, indexJ) => {\r\n const localIndex = index * 2 + indexJ;\r\n const previousTime =\r\n indexJ > 0\r\n ? times[indexJ - 1].clone()\r\n : index === 0\r\n ? this.getTime(0, 0)\r\n : this.props.openingHours.times[\r\n index - 1\r\n ].closes.clone();\r\n let nextTime =\r\n indexJ === 0\r\n ? times[1]\r\n : this.props.openingHours.times.length - 1 > index\r\n ? this.props.openingHours.times[\r\n index + 1\r\n ].opens.clone()\r\n : this.getTime(23, 59, true);\r\n if (localIndex % 2 === 0) {\r\n nextTime = duration(\r\n Math.min.apply(null, [\r\n this.getTime(23, 59, false).asMilliseconds(),\r\n nextTime.asMilliseconds(),\r\n ]),\r\n 'millisecond'\r\n );\r\n }\r\n return (\r\n <Time\r\n key={`${index}-${indexJ}`}\r\n {...(this.props.id && {\r\n id: `${\r\n this.props.id\r\n }-time-${index.toString()}-${indexJ.toString()}`,\r\n })}\r\n className={'openingHoursDay-input__time'}\r\n timeChange={this.timeChanged(index, indexJ)}\r\n time={time}\r\n min={previousTime}\r\n max={nextTime}\r\n showDateDiff={true}\r\n label={\r\n indexJ % 2 === 0\r\n ? translations.opens\r\n : translations.closes\r\n }\r\n />\r\n );\r\n })}\r\n {this.props.useCapacity && (\r\n <NumberInput\r\n label={translations.capacity}\r\n min={0}\r\n number={item.capacity}\r\n onNumberChange={num =>\r\n this.props.onOpeningHoursChange({\r\n ...this.props.openingHours,\r\n times: this.props.openingHours.times.map((t, i) =>\r\n i === index ? { ...t, capacity: num } : t\r\n ),\r\n })\r\n }\r\n />\r\n )}\r\n <Button\r\n {...(this.props.id && {\r\n id:\r\n this.props.id +\r\n '-remove-button-' +\r\n ((index - 1) / 2).toString(),\r\n })}\r\n onClick={this.removeTimeClick(index)}\r\n className=\"openingHoursDay-input__button--remove mr-5 line-height--0\"\r\n circular={true}\r\n blank={true}\r\n type=\"error\"\r\n >\r\n <PlusIcon />\r\n </Button>\r\n </div>\r\n );\r\n })}\r\n {this.props.maxOpenCloseTimes >\r\n this.props.openingHours.times.length && (\r\n <Button\r\n {...(this.props.id && {\r\n id: this.props.id + '-add-button',\r\n })}\r\n className=\"openingHoursDay-input__button-open-close\"\r\n onClick={this.addTimeClick}\r\n disabled={this.isAddTimeClickDisabled()}\r\n type={'primary'}\r\n hero={true}\r\n >\r\n {translations.add}\r\n </Button>\r\n )}\r\n </div>\r\n {this.renderDefaultValidation()}\r\n {this.props.openingHours && this.props.label && (\r\n <span\r\n className={\r\n 'label-classname ' +\r\n (this.props.openingHours &&\r\n this.props.openingHours.times &&\r\n this.props.openingHours.times.length\r\n ? 'label--focused'\r\n : 'label--focused label--closed')\r\n }\r\n >\r\n {this.renderLabel(true)}\r\n </span>\r\n )}\r\n </div>\r\n {this.getBottomBorder(translations)}\r\n </InputGroup>\r\n );\r\n }\r\n\r\n private isAddTimeClickDisabled() {\r\n if (\r\n this.props.openingHours &&\r\n this.props.openingHours.times &&\r\n this.props.openingHours.times.length\r\n ) {\r\n const dayDiff = TimeUtil.dayDiff(\r\n this.props.openingHours.times[0].opens,\r\n this.props.openingHours.times[this.props.openingHours.times.length - 1]\r\n .closes\r\n );\r\n if (dayDiff > 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private addTimeClick = () => {\r\n let newTime =\r\n this.props.openingHours &&\r\n this.props.openingHours.times &&\r\n this.props.openingHours.times.length\r\n ? this.props.openingHours.times[\r\n this.props.openingHours.times.length - 1\r\n ].closes.clone()\r\n : this.getTime(8, 0);\r\n if (newTime.hours() < 23) {\r\n newTime = newTime.add(1, 'hour');\r\n }\r\n let closeTime = newTime.clone().add(1, 'hour');\r\n this.props.onOpeningHoursChange({\r\n ...this.props.openingHours,\r\n times: this.props.openingHours.times.concat({\r\n opens: newTime,\r\n closes: closeTime,\r\n capacity: this.props.useCapacity ? 1 : undefined,\r\n }),\r\n });\r\n };\r\n\r\n private removeTimeClick = (index: number) => () =>\r\n this.props.onOpeningHoursChange({\r\n ...this.props.openingHours,\r\n times: this.props.openingHours.times.filter(\r\n (time, itemIndex) => itemIndex < index || itemIndex > index + 1\r\n ),\r\n });\r\n\r\n private timeChanged = (index: number, indexJ: number) => (time: Duration) => {\r\n let newOpeningHours: OpeningHoursDayObj = {\r\n ...this.props.openingHours,\r\n times: this.props.openingHours.times.slice(0),\r\n };\r\n if (indexJ === 0) {\r\n newOpeningHours.times[index] = {\r\n ...newOpeningHours.times[index],\r\n opens: time,\r\n };\r\n } else {\r\n newOpeningHours.times[index] = {\r\n ...newOpeningHours.times[index],\r\n closes: time,\r\n };\r\n }\r\n this.props.onOpeningHoursChange(newOpeningHours);\r\n };\r\n\r\n private getBottomBorder(translations: OpeningHoursDayTranslations) {\r\n const times = (\r\n (this.props.openingHours && this.props.openingHours.times) ||\r\n []\r\n ).reduce<Duration[]>((a, b) => a.concat([b.opens, b.closes]), []);\r\n let parts = [];\r\n let totalTime = this.fullDayMilliseconds;\r\n if (!times.length) {\r\n parts = parts.concat([1]);\r\n } else {\r\n totalTime = Math.max(\r\n this.fullDayMilliseconds,\r\n OpeningHoursUtil.getTimeFromMidnight(times[times.length - 1], times[0])\r\n );\r\n parts = parts.concat([\r\n OpeningHoursUtil.getTimeFromMidnight(times[0]) / totalTime,\r\n ]);\r\n for (var index = 0; index < times.length - 1; index++) {\r\n let start = OpeningHoursUtil.getTimeFromMidnight(\r\n times[index],\r\n times[0]\r\n );\r\n let end = OpeningHoursUtil.getTimeFromMidnight(\r\n times[index + 1],\r\n times[0]\r\n );\r\n let diff = (end - start) / totalTime;\r\n parts = parts.concat([diff]);\r\n }\r\n parts = parts.concat([\r\n (totalTime -\r\n OpeningHoursUtil.getTimeFromMidnight(\r\n times[times.length - 1],\r\n times[0]\r\n )) /\r\n totalTime,\r\n ]);\r\n }\r\n return (\r\n <div className=\"openingHoursDay-input__bottom-border__container\">\r\n {parts.map((part, i) => (\r\n <div\r\n key={i}\r\n className={\r\n 'openingHoursDay-input__bottom-border ' +\r\n (i % 2 === 0\r\n ? 'openingHoursDay-input__bottom-border--closed'\r\n : 'openingHoursDay-input__bottom-border--open')\r\n }\r\n style={{ width: part ? (part * 100).toFixed(2) + '%' : '0' }}\r\n />\r\n ))}\r\n {totalTime > this.fullDayMilliseconds && (\r\n <div\r\n className=\"openingHoursDay-input__bottom-border--midnight\"\r\n style={{\r\n left:\r\n ((this.fullDayMilliseconds * 100) / totalTime).toString() + '%',\r\n }}\r\n title={translations.midnight}\r\n />\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n private getTime(\r\n hours: number,\r\n minutes: number,\r\n nextDay: boolean = false\r\n ): Duration {\r\n let time = duration(0, 'millisecond')\r\n .add(hours, 'hours')\r\n .add(minutes, 'minutes');\r\n if (nextDay) {\r\n time = time.add(1, 'day');\r\n }\r\n return time;\r\n }\r\n}\r\n\r\nexport const OpeningHoursDay = withThemeContext<\r\n OpeningHoursDayProps,\r\n InstanceType<typeof OpeningHoursDayRaw>\r\n>(withFormContext<OpeningHoursDayProps>(OpeningHoursDayRaw), 'openingHoursDay');\r\n\r\nexport default OpeningHoursDay;\r\n"],"file":"OpeningHoursDay.js"}
|
1
|
+
{"version":3,"sources":["../../../../src/lib/components/openingHours/openingHoursDay/OpeningHoursDay.tsx"],"names":["PlusIcon","classNames","require","defaultDayTranslations","opens","closes","capacity","add","midnight","defaultBaseTranslations","OpeningHoursDayRaw","props","newTime","openingHours","times","length","clone","getTime","hours","closeTime","onOpeningHoursChange","concat","useCapacity","undefined","index","filter","time","itemIndex","indexJ","newOpeningHours","slice","translations","getTranslations","title","className","tooltip","id","getValidationClass","containerRef","map","item","localIndex","previousTime","nextTime","Math","min","apply","asMilliseconds","toString","timeChanged","num","t","i","removeTimeClick","maxOpenCloseTimes","addTimeClick","isAddTimeClickDisabled","renderDefaultValidation","label","renderLabel","getBottomBorder","dayDiff","TimeUtil","reduce","a","b","parts","totalTime","fullDayMilliseconds","max","OpeningHoursUtil","getTimeFromMidnight","start","end","diff","part","width","toFixed","left","minutes","nextDay","BaseInput","Object","assign","defaultProps","onChange","type","allowMultiple","OpeningHoursDay"],"mappings":"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","sourcesContent":["import * as PlusIcon from 'material-design-icons/content/svg/production/ic_add_circle_outline_24px.svg';\r\n\r\n// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport { Time } from '../../time/Time';\r\nimport OpeningHoursUtil from '../utils/OpeningHoursUtil';\r\nimport TimeUtil from '../../utils/TimeUtil';\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\nvar classNames = require('classnames');\r\nimport { Duration, duration } from 'moment';\r\nimport NumberInput from '../../numberInput/NumberInput';\r\nimport { withThemeContext } from '../../themeProvider/withThemeContext';\r\n\r\nexport interface OpeningHoursPeriodObj {\r\n opens: Duration;\r\n closes: Duration;\r\n capacity?: number;\r\n}\r\n\r\nexport interface OpeningHoursDayObj {\r\n times: OpeningHoursPeriodObj[];\r\n}\r\n\r\nexport const defaultDayTranslations = {\r\n opens: 'Opens',\r\n closes: 'Closes',\r\n capacity: 'Capacity',\r\n add: 'Add new time range',\r\n midnight: 'Midnight',\r\n ...defaultBaseTranslations,\r\n};\r\n\r\nexport type OpeningHoursDayTranslations = Partial<\r\n typeof defaultDayTranslations\r\n>;\r\n\r\nexport interface OpeningHoursDayProps\r\n extends BaseInputProps<never, OpeningHoursDayTranslations> {\r\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\r\n onOpeningHoursChange: (openingHours: OpeningHoursDayObj) => void;\r\n openingHours: OpeningHoursDayObj;\r\n label?: JSX.Element | string;\r\n maxOpenCloseTimes?: number;\r\n useCapacity?: boolean;\r\n}\r\n\r\nexport interface OpeningHoursState extends BaseInputState {}\r\n\r\nexport class OpeningHoursDayRaw extends BaseInput<\r\n OpeningHoursDayProps,\r\n OpeningHoursState,\r\n never,\r\n OpeningHoursDayTranslations\r\n> {\r\n public static defaultProps = Object.assign({}, BaseInput.defaultProps, {\r\n onChange: undefined,\r\n type: 'openingHours',\r\n allowMultiple: false,\r\n maxOpenCloseTimes: 10,\r\n });\r\n private fullDayMilliseconds: number = 24 * 60 * 60 * 1000;\r\n\r\n constructor(props: OpeningHoursDayProps) {\r\n super(props);\r\n }\r\n\r\n public render() {\r\n const translations = this.getTranslations(defaultDayTranslations);\r\n return (\r\n <InputGroup\r\n title={this.props.title}\r\n className={classNames(\r\n 'input__group__openingHoursDay',\r\n this.props.className,\r\n {\r\n 'input__group__openingHoursDay--closed':\r\n this.props.openingHours &&\r\n this.props.openingHours.times &&\r\n this.props.openingHours.times.length === 0,\r\n }\r\n )}\r\n tooltip={this.props.tooltip}\r\n >\r\n <div\r\n {...(this.props.id && {\r\n id: this.props.id,\r\n })}\r\n className={classNames(\r\n 'input__base openingHoursDay-input',\r\n {\r\n 'openingHoursDay-input--closed':\r\n this.props.openingHours &&\r\n this.props.openingHours.times &&\r\n this.props.openingHours.times.length === 0,\r\n },\r\n this.getValidationClass()\r\n )}\r\n ref={this.containerRef}\r\n >\r\n <div className=\"openingHoursDay-input__container\">\r\n {this.props.openingHours &&\r\n this.props.openingHours.times &&\r\n this.props.openingHours.times.map((item, index) => {\r\n const times = [item.opens, item.closes];\r\n return (\r\n <div\r\n className=\"openingHoursDay-input__time__container\"\r\n key={index}\r\n >\r\n {times.map((time, indexJ) => {\r\n const localIndex = index * 2 + indexJ;\r\n const previousTime =\r\n indexJ > 0\r\n ? times[indexJ - 1].clone()\r\n : index === 0\r\n ? this.getTime(0, 0)\r\n : this.props.openingHours.times[\r\n index - 1\r\n ].closes.clone();\r\n let nextTime =\r\n indexJ === 0\r\n ? times[1]\r\n : this.props.openingHours.times.length - 1 > index\r\n ? this.props.openingHours.times[\r\n index + 1\r\n ].opens.clone()\r\n : this.getTime(23, 59, true);\r\n if (localIndex % 2 === 0) {\r\n nextTime = duration(\r\n Math.min.apply(null, [\r\n this.getTime(23, 59, false).asMilliseconds(),\r\n nextTime.asMilliseconds(),\r\n ]),\r\n 'millisecond'\r\n );\r\n }\r\n return (\r\n <Time\r\n key={`${index}-${indexJ}`}\r\n {...(this.props.id && {\r\n id: `${\r\n this.props.id\r\n }-time-${index.toString()}-${indexJ.toString()}`,\r\n })}\r\n className={'openingHoursDay-input__time'}\r\n timeChange={this.timeChanged(index, indexJ)}\r\n time={time}\r\n min={previousTime}\r\n max={nextTime}\r\n showDateDiff={true}\r\n label={\r\n indexJ % 2 === 0\r\n ? translations.opens\r\n : translations.closes\r\n }\r\n />\r\n );\r\n })}\r\n {this.props.useCapacity && (\r\n <NumberInput\r\n label={translations.capacity}\r\n min={0}\r\n number={item.capacity}\r\n onNumberChange={num =>\r\n this.props.onOpeningHoursChange({\r\n ...this.props.openingHours,\r\n times: this.props.openingHours.times.map((t, i) =>\r\n i === index ? { ...t, capacity: num } : t\r\n ),\r\n })\r\n }\r\n />\r\n )}\r\n <Button\r\n {...(this.props.id && {\r\n id:\r\n this.props.id +\r\n '-remove-button-' +\r\n ((index - 1) / 2).toString(),\r\n })}\r\n onClick={this.removeTimeClick(index)}\r\n className=\"openingHoursDay-input__button--remove mr-3 line-height--0\"\r\n circular={true}\r\n blank={true}\r\n type=\"error\"\r\n >\r\n <PlusIcon />\r\n </Button>\r\n </div>\r\n );\r\n })}\r\n {this.props.maxOpenCloseTimes >\r\n this.props.openingHours.times.length && (\r\n <Button\r\n {...(this.props.id && {\r\n id: this.props.id + '-add-button',\r\n })}\r\n className=\"openingHoursDay-input__button-open-close\"\r\n onClick={this.addTimeClick}\r\n disabled={this.isAddTimeClickDisabled()}\r\n type={'primary'}\r\n hero={true}\r\n >\r\n {translations.add}\r\n </Button>\r\n )}\r\n </div>\r\n {this.renderDefaultValidation()}\r\n {this.props.openingHours && this.props.label && (\r\n <span\r\n className={\r\n 'label-classname ' +\r\n (this.props.openingHours &&\r\n this.props.openingHours.times &&\r\n this.props.openingHours.times.length\r\n ? 'label--focused'\r\n : 'label--focused label--closed')\r\n }\r\n >\r\n {this.renderLabel(true)}\r\n </span>\r\n )}\r\n </div>\r\n {this.getBottomBorder(translations)}\r\n </InputGroup>\r\n );\r\n }\r\n\r\n private isAddTimeClickDisabled() {\r\n if (\r\n this.props.openingHours &&\r\n this.props.openingHours.times &&\r\n this.props.openingHours.times.length\r\n ) {\r\n const dayDiff = TimeUtil.dayDiff(\r\n this.props.openingHours.times[0].opens,\r\n this.props.openingHours.times[this.props.openingHours.times.length - 1]\r\n .closes\r\n );\r\n if (dayDiff > 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private addTimeClick = () => {\r\n let newTime =\r\n this.props.openingHours &&\r\n this.props.openingHours.times &&\r\n this.props.openingHours.times.length\r\n ? this.props.openingHours.times[\r\n this.props.openingHours.times.length - 1\r\n ].closes.clone()\r\n : this.getTime(8, 0);\r\n if (newTime.hours() < 23) {\r\n newTime = newTime.add(1, 'hour');\r\n }\r\n let closeTime = newTime.clone().add(1, 'hour');\r\n this.props.onOpeningHoursChange({\r\n ...this.props.openingHours,\r\n times: this.props.openingHours.times.concat({\r\n opens: newTime,\r\n closes: closeTime,\r\n capacity: this.props.useCapacity ? 1 : undefined,\r\n }),\r\n });\r\n };\r\n\r\n private removeTimeClick = (index: number) => () =>\r\n this.props.onOpeningHoursChange({\r\n ...this.props.openingHours,\r\n times: this.props.openingHours.times.filter(\r\n (time, itemIndex) => itemIndex < index || itemIndex > index + 1\r\n ),\r\n });\r\n\r\n private timeChanged = (index: number, indexJ: number) => (time: Duration) => {\r\n let newOpeningHours: OpeningHoursDayObj = {\r\n ...this.props.openingHours,\r\n times: this.props.openingHours.times.slice(0),\r\n };\r\n if (indexJ === 0) {\r\n newOpeningHours.times[index] = {\r\n ...newOpeningHours.times[index],\r\n opens: time,\r\n };\r\n } else {\r\n newOpeningHours.times[index] = {\r\n ...newOpeningHours.times[index],\r\n closes: time,\r\n };\r\n }\r\n this.props.onOpeningHoursChange(newOpeningHours);\r\n };\r\n\r\n private getBottomBorder(translations: OpeningHoursDayTranslations) {\r\n const times = (\r\n (this.props.openingHours && this.props.openingHours.times) ||\r\n []\r\n ).reduce<Duration[]>((a, b) => a.concat([b.opens, b.closes]), []);\r\n let parts = [];\r\n let totalTime = this.fullDayMilliseconds;\r\n if (!times.length) {\r\n parts = parts.concat([1]);\r\n } else {\r\n totalTime = Math.max(\r\n this.fullDayMilliseconds,\r\n OpeningHoursUtil.getTimeFromMidnight(times[times.length - 1], times[0])\r\n );\r\n parts = parts.concat([\r\n OpeningHoursUtil.getTimeFromMidnight(times[0]) / totalTime,\r\n ]);\r\n for (var index = 0; index < times.length - 1; index++) {\r\n let start = OpeningHoursUtil.getTimeFromMidnight(\r\n times[index],\r\n times[0]\r\n );\r\n let end = OpeningHoursUtil.getTimeFromMidnight(\r\n times[index + 1],\r\n times[0]\r\n );\r\n let diff = (end - start) / totalTime;\r\n parts = parts.concat([diff]);\r\n }\r\n parts = parts.concat([\r\n (totalTime -\r\n OpeningHoursUtil.getTimeFromMidnight(\r\n times[times.length - 1],\r\n times[0]\r\n )) /\r\n totalTime,\r\n ]);\r\n }\r\n return (\r\n <div className=\"openingHoursDay-input__bottom-border__container\">\r\n {parts.map((part, i) => (\r\n <div\r\n key={i}\r\n className={\r\n 'openingHoursDay-input__bottom-border ' +\r\n (i % 2 === 0\r\n ? 'openingHoursDay-input__bottom-border--closed'\r\n : 'openingHoursDay-input__bottom-border--open')\r\n }\r\n style={{ width: part ? (part * 100).toFixed(2) + '%' : '0' }}\r\n />\r\n ))}\r\n {totalTime > this.fullDayMilliseconds && (\r\n <div\r\n className=\"openingHoursDay-input__bottom-border--midnight\"\r\n style={{\r\n left:\r\n ((this.fullDayMilliseconds * 100) / totalTime).toString() + '%',\r\n }}\r\n title={translations.midnight}\r\n />\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n private getTime(\r\n hours: number,\r\n minutes: number,\r\n nextDay: boolean = false\r\n ): Duration {\r\n let time = duration(0, 'millisecond')\r\n .add(hours, 'hours')\r\n .add(minutes, 'minutes');\r\n if (nextDay) {\r\n time = time.add(1, 'day');\r\n }\r\n return time;\r\n }\r\n}\r\n\r\nexport const OpeningHoursDay = withThemeContext<\r\n OpeningHoursDayProps,\r\n InstanceType<typeof OpeningHoursDayRaw>\r\n>(withFormContext<OpeningHoursDayProps>(OpeningHoursDayRaw), 'openingHoursDay');\r\n\r\nexport default OpeningHoursDay;\r\n"],"file":"OpeningHoursDay.js"}
|
@@ -1687,7 +1687,15 @@ a.guestbell__dropdown-toggle {
|
|
1687
1687
|
position: relative;
|
1688
1688
|
min-height: 77px;
|
1689
1689
|
border-bottom: none !important;
|
1690
|
-
width: 100%;
|
1690
|
+
width: 100%;
|
1691
|
+
/*&.input__base input:focus ~ label,
|
1692
|
+
&.input__base .filled ~ label,
|
1693
|
+
&.input__base select:focus ~ label,
|
1694
|
+
&.input__base textarea:focus ~ label,
|
1695
|
+
&.input__base label.label--focused,
|
1696
|
+
&.input__base span.label-classname.label--focused {
|
1697
|
+
left: 0;
|
1698
|
+
}*/ }
|
1691
1699
|
.openingHoursDay-input .openingHoursDay-input__container {
|
1692
1700
|
flex-direction: column;
|
1693
1701
|
display: flex;
|
@@ -1697,31 +1705,37 @@ a.guestbell__dropdown-toggle {
|
|
1697
1705
|
display: inline-block;
|
1698
1706
|
position: relative;
|
1699
1707
|
border: none;
|
1700
|
-
border-width: 0px;
|
1708
|
+
border-width: 0px;
|
1709
|
+
width: auto; }
|
1701
1710
|
.openingHoursDay-input .time-input .bar {
|
1702
1711
|
display: none; }
|
1703
1712
|
.openingHoursDay-input .openingHoursDay-input__time__container {
|
1704
1713
|
display: flex;
|
1705
1714
|
align-items: center;
|
1706
|
-
margin-bottom:
|
1715
|
+
margin-bottom: 1rem;
|
1716
|
+
margin-top: 0.5rem; }
|
1717
|
+
.openingHoursDay-input .openingHoursDay-input__time__container > * {
|
1718
|
+
margin-right: 1rem; }
|
1707
1719
|
.openingHoursDay-input input:focus ~ label,
|
1708
1720
|
.openingHoursDay-input input.filled ~ label,
|
1709
1721
|
.openingHoursDay-input select:focus ~ label,
|
1710
1722
|
.openingHoursDay-input span.filled ~ label,
|
1711
1723
|
.openingHoursDay-input span.label-classname.label--focused {
|
1712
1724
|
top: 0; }
|
1713
|
-
.openingHoursDay-input .openingHoursDay-input__button--remove
|
1714
|
-
|
1725
|
+
.openingHoursDay-input .openingHoursDay-input__button--remove {
|
1726
|
+
flex-shrink: 0; }
|
1727
|
+
.openingHoursDay-input .openingHoursDay-input__button--remove svg {
|
1728
|
+
transform: rotate(45deg); }
|
1715
1729
|
.openingHoursDay-input .label-classname.label--focused.label--closed {
|
1716
1730
|
color: #999999; }
|
1717
1731
|
.openingHoursDay-input .openingHoursDay-input__label {
|
1718
1732
|
color: #999999; }
|
1719
|
-
.openingHoursDay-input.input__base input:focus ~ label,
|
1720
|
-
.openingHoursDay-input.input__base .filled ~ label,
|
1721
|
-
.openingHoursDay-input.input__base select:focus ~ label,
|
1722
|
-
.openingHoursDay-input.input__base textarea:focus ~ label,
|
1723
|
-
.openingHoursDay-input.input__base label.label--focused,
|
1724
|
-
.openingHoursDay-input.input__base span.label-classname.label--focused {
|
1733
|
+
.openingHoursDay-input.input__base > input:focus ~ label,
|
1734
|
+
.openingHoursDay-input.input__base > .filled ~ label,
|
1735
|
+
.openingHoursDay-input.input__base > select:focus ~ label,
|
1736
|
+
.openingHoursDay-input.input__base > textarea:focus ~ label,
|
1737
|
+
.openingHoursDay-input.input__base > label.label--focused,
|
1738
|
+
.openingHoursDay-input.input__base > span.label-classname.label--focused {
|
1725
1739
|
font-size: 18px;
|
1726
1740
|
left: 0; }
|
1727
1741
|
.openingHoursDay-input.openingHoursDay-input--closed.input__base input:focus ~ label,
|
@@ -2179,9 +2193,9 @@ a.guestbell__dropdown-toggle {
|
|
2179
2193
|
.time-input {
|
2180
2194
|
padding-top: 0.5rem;
|
2181
2195
|
padding-bottom: 0.5rem;
|
2182
|
-
|
2183
|
-
|
2184
|
-
|
2196
|
+
max-width: 37.5rem;
|
2197
|
+
display: inline-flex !important;
|
2198
|
+
align-items: center; }
|
2185
2199
|
.time-input > div,
|
2186
2200
|
.time-input > span {
|
2187
2201
|
display: inline-block;
|
@@ -2265,9 +2279,9 @@ a.guestbell__dropdown-toggle {
|
|
2265
2279
|
.timeSpan-input {
|
2266
2280
|
padding-top: 0.5rem;
|
2267
2281
|
padding-bottom: 0.5rem;
|
2268
|
-
|
2269
|
-
|
2270
|
-
|
2282
|
+
max-width: 37.5rem;
|
2283
|
+
display: inline-flex !important;
|
2284
|
+
align-items: center; }
|
2271
2285
|
.timeSpan-input > div,
|
2272
2286
|
.timeSpan-input > span {
|
2273
2287
|
display: inline-block;
|
@@ -2405,7 +2419,7 @@ a.guestbell__dropdown-toggle {
|
|
2405
2419
|
.number-input select:focus ~ label,
|
2406
2420
|
.number-input select.filled ~ label,
|
2407
2421
|
.number-input label.label--focused {
|
2408
|
-
top: -
|
2422
|
+
top: -17px;
|
2409
2423
|
font-size: 14px;
|
2410
2424
|
color: #10bdc7; }
|
2411
2425
|
.number-input button {
|