guestbell-forms 3.0.2 → 3.0.3
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.d.ts +1 -1
- package/build/components/base/input/BaseInput.js.map +1 -1
- package/build/components/button/Button.d.ts +1 -1
- package/build/components/button/Button.js +8 -7
- package/build/components/button/Button.js.map +1 -1
- package/build/components/checkbox/Checkbox.js +3 -3
- package/build/components/checkbox/Checkbox.js.map +1 -1
- package/build/components/dynamicSubmit/DynamicSubmit.js +5 -3
- package/build/components/dynamicSubmit/DynamicSubmit.js.map +1 -1
- package/build/components/form/FormValidationSummary.js +5 -5
- package/build/components/form/FormValidationSummary.js.map +1 -1
- package/build/components/inputHeader/InputHeader.d.ts +1 -1
- package/build/components/inputHeader/InputHeader.js +4 -4
- package/build/components/inputHeader/InputHeader.js.map +1 -1
- package/build/components/numberInput/NumberInput.js +4 -4
- package/build/components/numberInput/NumberInput.js.map +1 -1
- package/build/components/openingHours/openingHoursDay/OpeningHoursDay.js +4 -4
- package/build/components/openingHours/openingHoursDay/OpeningHoursDay.js.map +1 -1
- package/build/components/text/Text.js +3 -3
- package/build/components/text/Text.js.map +1 -1
- package/build/components/timeSpan/TimeSpan.js +4 -4
- package/build/components/timeSpan/TimeSpan.js.map +1 -1
- package/build/dist/report.html +1 -1
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"InputHeader.js","names":["classNames","require","MoreIcon","PlusIcon","CollapseExpandButtonComponent","props","className","onClick","children","InputHeaderRaw","React","PureComponent","constructor","guid","toggle","e","stopsPropagation","stopPropagation","Object","keys","state","inputHeaderContext","components","forEach","key","component","componentApi","expand","collapse","collapsed","collapsedDefault","registerInputHeader","unregisterInputHeader","stateChanged","forceUpdate","bind","componentWillUnmount","ignoreContext","componentId","componentDidMount","collapsible","setState","onChange","onExpanded","onCollapsed","render","undefined","getTypeClass","showExpandAll","noBg","shouldToggleCollapseOnHeaderClick","headerClassName","toggleClick","icon","title","renderTitle","subTitle","mainButtonClick","mainButton","extraButtons","extraButtonsButtonProps","renderExtraButtons","collapseButtonsButtonProps","length","renderCollapseExpandAll","contentClassName","mountOnEnter","unmountOnExit","previousState","assign","type","arr","map","extraButton","index","allCollapsed","allExpanded","containerClick","expandAllClick","collapseAllClick","tooltip","renderTooltip","content","Tippy","default","document","body","tooltipProps","InputHeader","withThemeContext","withInputHeaderContext"],"sources":["../../../src/lib/components/inputHeader/InputHeader.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\nvar classNames = require('classnames');\r\n\r\n// Misc\r\nimport * as MoreIcon from 'material-design-icons/navigation/svg/production/ic_more_vert_24px.svg';\r\nimport * as PlusIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_down_24px.svg';\r\nimport { ButtonProps, Button, ButtonComponentProps } from '../button/Button';\r\nimport guid from '../utils/Guid';\r\nimport { Dropdown } from '../dropdown';\r\nimport Collapse from '@mui/material/Collapse';\r\nimport {\r\n OmitInputHeaderContext,\r\n InputHeaderContextProps,\r\n InputHeaderContextState,\r\n InputHeaderComponentContextState,\r\n} from '../inputHeader/InputHeaderContext';\r\nimport { withInputHeaderContext } from './withInputHeaderContext';\r\nimport { TippyProps } from '@tippy.js/react';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\nimport { ThemeContextProps } from '../themeProvider/ThemeContext';\r\n\r\nexport type InputHeaderRawProps = React.PropsWithChildren<\r\n {\r\n onExpanded?: () => void;\r\n onCollapsed?: () => void;\r\n onChange?: (collapsed: boolean) => void;\r\n className?: string;\r\n title?: string | JSX.Element;\r\n icon?: string | JSX.Element;\r\n subTitle?: string | JSX.Element;\r\n mainButton?: JSX.Element;\r\n extraButtons?: JSX.Element[];\r\n collapsible?: boolean;\r\n collapsed?: boolean;\r\n collapsedDefault?: boolean;\r\n ignoreContext?: boolean;\r\n showExpandAll?: boolean;\r\n type?: 'hero' | 'standard' | 'small';\r\n noBg?: boolean;\r\n headerClassName?: string;\r\n contentClassName?: string;\r\n extraButtonsButtonProps?: ButtonProps;\r\n collapseButtonsButtonProps?: ButtonProps;\r\n shouldToggleCollapseOnHeaderClick?: boolean;\r\n mountOnEnter?: boolean;\r\n unmountOnExit?: boolean;\r\n tooltip?: string | JSX.Element;\r\n tooltipProps?: TippyProps;\r\n stopsPropagation?: boolean;\r\n } & InputHeaderContextProps &\r\n ThemeContextProps\r\n>;\r\n\r\nexport type InputHeaderProps = OmitInputHeaderContext<InputHeaderRawProps>;\r\n\r\nexport interface InputHeaderApi {\r\n expand: () => void;\r\n collapse: () => void;\r\n toggle: () => void;\r\n}\r\n\r\nexport interface InputHeaderState {\r\n collapsed: boolean;\r\n inputHeaderContext: InputHeaderContextState;\r\n}\r\n\r\nconst CollapseExpandButtonComponent: React.SFC<ButtonComponentProps> = props => (\r\n <a className={props.className} onClick={props.onClick} href=\"#\">\r\n {props.children}\r\n </a>\r\n);\r\n\r\nexport class InputHeaderRaw\r\n extends React.PureComponent<InputHeaderRawProps, InputHeaderState>\r\n implements InputHeaderApi {\r\n public static defaultProps: InputHeaderProps = {\r\n ignoreContext: false,\r\n showExpandAll: false,\r\n collapsedDefault: true,\r\n type: 'standard',\r\n noBg: false,\r\n shouldToggleCollapseOnHeaderClick: false,\r\n stopsPropagation: true,\r\n };\r\n\r\n public componentId = guid();\r\n\r\n constructor(props: InputHeaderRawProps) {\r\n super(props);\r\n this.state = {\r\n collapsed: props.collapsedDefault,\r\n inputHeaderContext: {\r\n registerInputHeader: this.registerInputHeader,\r\n unregisterInputHeader: this.unregisterInputHeader,\r\n stateChanged: () => this.forceUpdate(),\r\n components: {},\r\n },\r\n };\r\n this.registerInputHeader = this.registerInputHeader.bind(this);\r\n this.unregisterInputHeader = this.unregisterInputHeader.bind(this);\r\n this.expand = this.expand.bind(this);\r\n this.collapse = this.collapse.bind(this);\r\n this.toggle = this.toggle.bind(this);\r\n }\r\n\r\n public componentWillUnmount() {\r\n if (!this.props.ignoreContext && this.props.inputHeaderContext) {\r\n this.props.inputHeaderContext.unregisterInputHeader(this.componentId);\r\n }\r\n }\r\n\r\n public componentDidMount() {\r\n if (!this.props.ignoreContext && this.props.inputHeaderContext) {\r\n this.props.inputHeaderContext.registerInputHeader(this.componentId, {\r\n componentId: this.componentId,\r\n componentApi: {\r\n expand: this.expand,\r\n collapse: this.collapse,\r\n toggle: this.toggle,\r\n },\r\n props: { ...{}, ...(this.props as InputHeaderProps) },\r\n state: { ...{}, ...this.state },\r\n });\r\n }\r\n }\r\n\r\n public expand() {\r\n this.props.collapsible &&\r\n this.setState({ collapsed: false }, () => {\r\n this.props.inputHeaderContext?.stateChanged?.();\r\n this.props.onChange?.(true);\r\n this.props.onExpanded?.();\r\n });\r\n }\r\n\r\n public collapse() {\r\n this.props.collapsible &&\r\n this.setState({ collapsed: true }, () => {\r\n this.props.inputHeaderContext?.stateChanged?.();\r\n this.props.onChange?.(false);\r\n this.props.onCollapsed?.();\r\n });\r\n }\r\n\r\n public toggle() {\r\n this.props.collapsible &&\r\n this.setState({ collapsed: !this.state.collapsed }, () => {\r\n this.props.inputHeaderContext?.stateChanged?.();\r\n this.props.onChange?.(this.state.collapsed);\r\n if (this.state.collapsed) {\r\n this.props.onCollapsed?.();\r\n }\r\n if (!this.state.collapsed) {\r\n this.props.onExpanded?.();\r\n }\r\n });\r\n }\r\n\r\n public render() {\r\n const collapsed =\r\n this.props.collapsed !== undefined\r\n ? !this.props.collapsed\r\n : !this.state.collapsed;\r\n return (\r\n <div\r\n className={\r\n `input__header ` +\r\n (this.props.className ? this.props.className : '') +\r\n ' ' +\r\n this.getTypeClass()\r\n }\r\n >\r\n <div\r\n className={classNames(\r\n 'input__header__top',\r\n { 'input__header__top--tall': this.props.showExpandAll },\r\n { 'input__header__top--no-bg': this.props.noBg },\r\n {\r\n 'input__header__top--clickable':\r\n this.props.collapsible &&\r\n this.props.shouldToggleCollapseOnHeaderClick,\r\n },\r\n this.props.headerClassName\r\n )}\r\n role={\r\n this.props.collapsible &&\r\n this.props.shouldToggleCollapseOnHeaderClick\r\n ? 'button'\r\n : undefined\r\n }\r\n onClick={\r\n this.props.collapsible &&\r\n this.props.shouldToggleCollapseOnHeaderClick\r\n ? this.toggleClick\r\n : undefined\r\n }\r\n >\r\n <div className={'input__header__top__header-container '}>\r\n {this.props.icon && (\r\n <div className=\"input__header__icon line-height--0\">\r\n {this.props.icon}\r\n </div>\r\n )}\r\n <div className=\"input__header__title__container\">\r\n {this.props.title && (\r\n <div className=\"input__header__title\">{this.renderTitle()}</div>\r\n )}\r\n {this.props.subTitle && (\r\n <div className=\"input__header__sub-title\">\r\n {this.props.subTitle}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n <div\r\n className=\"input__header__top__button-container\"\r\n onClick={this.mainButtonClick}\r\n >\r\n {this.props.mainButton && this.props.mainButton}\r\n {this.props.extraButtons ? (\r\n <Dropdown\r\n header={\r\n <Button\r\n blank={true}\r\n circular={true}\r\n {...this.props.extraButtonsButtonProps}\r\n >\r\n <MoreIcon />\r\n </Button>\r\n }\r\n showArrow={false}\r\n headerClassName={'line-height--0'}\r\n className={''}\r\n >\r\n {this.renderExtraButtons()}\r\n </Dropdown>\r\n ) : null}\r\n {this.props.collapsible && (\r\n <Button\r\n circular={true}\r\n blank={true}\r\n className={`input__header__collapse-button line-height--0 ${\r\n this.state.collapsed ? 'collapsed' : ''\r\n }`}\r\n {...this.props.collapseButtonsButtonProps}\r\n onClick={this.toggleClick}\r\n >\r\n <PlusIcon />\r\n </Button>\r\n )}\r\n </div>\r\n {this.props.showExpandAll &&\r\n Object.keys(this.state.inputHeaderContext.components).length > 0 &&\r\n this.renderCollapseExpandAll()}\r\n </div>\r\n <div\r\n className={\r\n 'input__header__bottom ' +\r\n (this.props.contentClassName ? this.props.contentClassName : '')\r\n }\r\n >\r\n {this.props.collapsible ? (\r\n <Collapse\r\n //this was here for some reason but it's messing with aria\r\n //collapsedHeight={'0.0001px'}\r\n in={collapsed}\r\n mountOnEnter={this.props.mountOnEnter}\r\n unmountOnExit={this.props.unmountOnExit}\r\n aria-expanded={collapsed ? 'false' : true}\r\n >\r\n {this.props.children}\r\n </Collapse>\r\n ) : (\r\n this.props.children\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n private toggleClick = () => this.toggle();\r\n\r\n private registerInputHeader(\r\n componentId: string,\r\n component: InputHeaderComponentContextState\r\n ) {\r\n this.setState(previousState => {\r\n let components = Object.assign(\r\n {},\r\n previousState.inputHeaderContext.components\r\n );\r\n components[componentId] = component;\r\n return {\r\n inputHeaderContext: { ...previousState.inputHeaderContext, components },\r\n };\r\n });\r\n }\r\n\r\n private unregisterInputHeader(componentId: string) {\r\n this.setState(previousState => {\r\n let components = Object.assign(\r\n {},\r\n previousState.inputHeaderContext.components\r\n );\r\n delete components[componentId];\r\n return {\r\n inputHeaderContext: { ...previousState.inputHeaderContext, components },\r\n };\r\n });\r\n }\r\n\r\n private getTypeClass() {\r\n switch (this.props.type) {\r\n case 'hero':\r\n return 'input__header--hero';\r\n case 'small':\r\n return 'input__header--small';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n private mainButtonClick = (e: React.MouseEvent<HTMLDivElement>) => {\r\n if (this.props.stopsPropagation) {\r\n e.stopPropagation();\r\n }\r\n };\r\n\r\n private renderExtraButtons() {\r\n let arr = [];\r\n if (typeof this.props.extraButtons === 'function') {\r\n arr = this.props.extraButtons;\r\n } else {\r\n arr = this.props.extraButtons;\r\n }\r\n\r\n return arr.map((extraButton, index) => <li key={index}>{extraButton}</li>);\r\n }\r\n\r\n private renderCollapseExpandAll() {\r\n let allCollapsed = true;\r\n let allExpanded = true;\r\n Object.keys(this.state.inputHeaderContext.components).forEach(key => {\r\n const component = this.state.inputHeaderContext.components[key];\r\n if (component && component.props.collapsible) {\r\n if (component.state.collapsed) {\r\n allExpanded = false;\r\n } else {\r\n allCollapsed = false;\r\n }\r\n }\r\n });\r\n return (\r\n <div\r\n className=\"input__header__expand-collapse--all\"\r\n onClick={this.containerClick}\r\n >\r\n {(allCollapsed || !allExpanded) && (\r\n <Button\r\n noRipples={true}\r\n small={true}\r\n className={allExpanded || !allCollapsed ? 'mr-2' : ''}\r\n onClick={this.expandAllClick}\r\n blank={true}\r\n Component={CollapseExpandButtonComponent}\r\n >\r\n Expand all\r\n </Button>\r\n )}\r\n {(allExpanded || !allCollapsed) && (\r\n <Button\r\n noRipples={true}\r\n small={true}\r\n onClick={this.collapseAllClick}\r\n blank={true}\r\n Component={CollapseExpandButtonComponent}\r\n >\r\n Collapse all\r\n </Button>\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n private containerClick = (e: React.MouseEvent<HTMLDivElement>) =>\r\n e.stopPropagation();\r\n\r\n private expandAllClick = () => {\r\n Object.keys(this.state.inputHeaderContext.components).forEach(key => {\r\n const component = this.state.inputHeaderContext.components[key];\r\n component.componentApi.expand();\r\n });\r\n };\r\n\r\n private collapseAllClick = () => {\r\n Object.keys(this.state.inputHeaderContext.components).forEach(key => {\r\n const component = this.state.inputHeaderContext.components[key];\r\n component.componentApi.collapse();\r\n });\r\n };\r\n\r\n private 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 private 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\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 <span tabIndex={0}>{content}</span>\r\n </Tippy>\r\n );\r\n }\r\n return content;\r\n }\r\n}\r\n\r\nexport const InputHeader = withThemeContext<\r\n InputHeaderRawProps,\r\n InstanceType<typeof InputHeaderRaw>\r\n>(withInputHeaderContext<InputHeaderRawProps>(InputHeaderRaw), 'inputHeader');\r\n\r\nexport default InputHeader;\r\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"InputHeader.js","names":["MoreIcon","PlusIcon","CollapseExpandButtonComponent","props","className","onClick","children","InputHeaderRaw","React","PureComponent","constructor","guid","toggle","e","stopsPropagation","stopPropagation","Object","keys","state","inputHeaderContext","components","forEach","key","component","componentApi","expand","collapse","collapsed","collapsedDefault","registerInputHeader","unregisterInputHeader","stateChanged","forceUpdate","bind","componentWillUnmount","ignoreContext","componentId","componentDidMount","collapsible","setState","onChange","onExpanded","onCollapsed","render","undefined","getTypeClass","classNames","showExpandAll","noBg","shouldToggleCollapseOnHeaderClick","headerClassName","toggleClick","icon","title","renderTitle","subTitle","mainButtonClick","mainButton","extraButtons","extraButtonsButtonProps","renderExtraButtons","collapseButtonsButtonProps","length","renderCollapseExpandAll","contentClassName","mountOnEnter","unmountOnExit","previousState","assign","type","arr","map","extraButton","index","allCollapsed","allExpanded","containerClick","expandAllClick","collapseAllClick","tooltip","renderTooltip","content","Tippy","require","default","document","body","tooltipProps","InputHeader","withThemeContext","withInputHeaderContext"],"sources":["../../../src/lib/components/inputHeader/InputHeader.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\nimport classNames from 'classnames';\r\n\r\n// Misc\r\nimport * as MoreIcon from 'material-design-icons/navigation/svg/production/ic_more_vert_24px.svg';\r\nimport * as PlusIcon from 'material-design-icons/hardware/svg/production/ic_keyboard_arrow_down_24px.svg';\r\nimport { ButtonProps, Button, ButtonComponentProps } from '../button/Button';\r\nimport guid from '../utils/Guid';\r\nimport { Dropdown } from '../dropdown';\r\nimport Collapse from '@mui/material/Collapse';\r\nimport {\r\n OmitInputHeaderContext,\r\n InputHeaderContextProps,\r\n InputHeaderContextState,\r\n InputHeaderComponentContextState,\r\n} from '../inputHeader/InputHeaderContext';\r\nimport { withInputHeaderContext } from './withInputHeaderContext';\r\nimport type { TippyProps } from '@tippy.js/react';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\nimport { ThemeContextProps } from '../themeProvider/ThemeContext';\r\n\r\nexport type InputHeaderRawProps = React.PropsWithChildren<\r\n {\r\n onExpanded?: () => void;\r\n onCollapsed?: () => void;\r\n onChange?: (collapsed: boolean) => void;\r\n className?: string;\r\n title?: string | JSX.Element;\r\n icon?: string | JSX.Element;\r\n subTitle?: string | JSX.Element;\r\n mainButton?: JSX.Element;\r\n extraButtons?: JSX.Element[];\r\n collapsible?: boolean;\r\n collapsed?: boolean;\r\n collapsedDefault?: boolean;\r\n ignoreContext?: boolean;\r\n showExpandAll?: boolean;\r\n type?: 'hero' | 'standard' | 'small';\r\n noBg?: boolean;\r\n headerClassName?: string;\r\n contentClassName?: string;\r\n extraButtonsButtonProps?: ButtonProps;\r\n collapseButtonsButtonProps?: ButtonProps;\r\n shouldToggleCollapseOnHeaderClick?: boolean;\r\n mountOnEnter?: boolean;\r\n unmountOnExit?: boolean;\r\n tooltip?: string | JSX.Element;\r\n tooltipProps?: TippyProps;\r\n stopsPropagation?: boolean;\r\n } & InputHeaderContextProps &\r\n ThemeContextProps\r\n>;\r\n\r\nexport type InputHeaderProps = OmitInputHeaderContext<InputHeaderRawProps>;\r\n\r\nexport interface InputHeaderApi {\r\n expand: () => void;\r\n collapse: () => void;\r\n toggle: () => void;\r\n}\r\n\r\nexport interface InputHeaderState {\r\n collapsed: boolean;\r\n inputHeaderContext: InputHeaderContextState;\r\n}\r\n\r\nconst CollapseExpandButtonComponent: React.SFC<ButtonComponentProps> = props => (\r\n <a className={props.className} onClick={props.onClick} href=\"#\">\r\n {props.children}\r\n </a>\r\n);\r\n\r\nexport class InputHeaderRaw\r\n extends React.PureComponent<InputHeaderRawProps, InputHeaderState>\r\n implements InputHeaderApi {\r\n public static defaultProps: InputHeaderProps = {\r\n ignoreContext: false,\r\n showExpandAll: false,\r\n collapsedDefault: true,\r\n type: 'standard',\r\n noBg: false,\r\n shouldToggleCollapseOnHeaderClick: false,\r\n stopsPropagation: true,\r\n };\r\n\r\n public componentId = guid();\r\n\r\n constructor(props: InputHeaderRawProps) {\r\n super(props);\r\n this.state = {\r\n collapsed: props.collapsedDefault,\r\n inputHeaderContext: {\r\n registerInputHeader: this.registerInputHeader,\r\n unregisterInputHeader: this.unregisterInputHeader,\r\n stateChanged: () => this.forceUpdate(),\r\n components: {},\r\n },\r\n };\r\n this.registerInputHeader = this.registerInputHeader.bind(this);\r\n this.unregisterInputHeader = this.unregisterInputHeader.bind(this);\r\n this.expand = this.expand.bind(this);\r\n this.collapse = this.collapse.bind(this);\r\n this.toggle = this.toggle.bind(this);\r\n }\r\n\r\n public componentWillUnmount() {\r\n if (!this.props.ignoreContext && this.props.inputHeaderContext) {\r\n this.props.inputHeaderContext.unregisterInputHeader(this.componentId);\r\n }\r\n }\r\n\r\n public componentDidMount() {\r\n if (!this.props.ignoreContext && this.props.inputHeaderContext) {\r\n this.props.inputHeaderContext.registerInputHeader(this.componentId, {\r\n componentId: this.componentId,\r\n componentApi: {\r\n expand: this.expand,\r\n collapse: this.collapse,\r\n toggle: this.toggle,\r\n },\r\n props: { ...{}, ...(this.props as InputHeaderProps) },\r\n state: { ...{}, ...this.state },\r\n });\r\n }\r\n }\r\n\r\n public expand() {\r\n this.props.collapsible &&\r\n this.setState({ collapsed: false }, () => {\r\n this.props.inputHeaderContext?.stateChanged?.();\r\n this.props.onChange?.(true);\r\n this.props.onExpanded?.();\r\n });\r\n }\r\n\r\n public collapse() {\r\n this.props.collapsible &&\r\n this.setState({ collapsed: true }, () => {\r\n this.props.inputHeaderContext?.stateChanged?.();\r\n this.props.onChange?.(false);\r\n this.props.onCollapsed?.();\r\n });\r\n }\r\n\r\n public toggle() {\r\n this.props.collapsible &&\r\n this.setState({ collapsed: !this.state.collapsed }, () => {\r\n this.props.inputHeaderContext?.stateChanged?.();\r\n this.props.onChange?.(this.state.collapsed);\r\n if (this.state.collapsed) {\r\n this.props.onCollapsed?.();\r\n }\r\n if (!this.state.collapsed) {\r\n this.props.onExpanded?.();\r\n }\r\n });\r\n }\r\n\r\n public render() {\r\n const collapsed =\r\n this.props.collapsed !== undefined\r\n ? !this.props.collapsed\r\n : !this.state.collapsed;\r\n return (\r\n <div\r\n className={\r\n `input__header ` +\r\n (this.props.className ? this.props.className : '') +\r\n ' ' +\r\n this.getTypeClass()\r\n }\r\n >\r\n <div\r\n className={classNames(\r\n 'input__header__top',\r\n { 'input__header__top--tall': this.props.showExpandAll },\r\n { 'input__header__top--no-bg': this.props.noBg },\r\n {\r\n 'input__header__top--clickable':\r\n this.props.collapsible &&\r\n this.props.shouldToggleCollapseOnHeaderClick,\r\n },\r\n this.props.headerClassName\r\n )}\r\n role={\r\n this.props.collapsible &&\r\n this.props.shouldToggleCollapseOnHeaderClick\r\n ? 'button'\r\n : undefined\r\n }\r\n onClick={\r\n this.props.collapsible &&\r\n this.props.shouldToggleCollapseOnHeaderClick\r\n ? this.toggleClick\r\n : undefined\r\n }\r\n >\r\n <div className={'input__header__top__header-container '}>\r\n {this.props.icon && (\r\n <div className=\"input__header__icon line-height--0\">\r\n {this.props.icon}\r\n </div>\r\n )}\r\n <div className=\"input__header__title__container\">\r\n {this.props.title && (\r\n <div className=\"input__header__title\">{this.renderTitle()}</div>\r\n )}\r\n {this.props.subTitle && (\r\n <div className=\"input__header__sub-title\">\r\n {this.props.subTitle}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n <div\r\n className=\"input__header__top__button-container\"\r\n onClick={this.mainButtonClick}\r\n >\r\n {this.props.mainButton && this.props.mainButton}\r\n {this.props.extraButtons ? (\r\n <Dropdown\r\n header={\r\n <Button\r\n blank={true}\r\n circular={true}\r\n {...this.props.extraButtonsButtonProps}\r\n >\r\n <MoreIcon />\r\n </Button>\r\n }\r\n showArrow={false}\r\n headerClassName={'line-height--0'}\r\n className={''}\r\n >\r\n {this.renderExtraButtons()}\r\n </Dropdown>\r\n ) : null}\r\n {this.props.collapsible && (\r\n <Button\r\n circular={true}\r\n blank={true}\r\n className={`input__header__collapse-button line-height--0 ${\r\n this.state.collapsed ? 'collapsed' : ''\r\n }`}\r\n {...this.props.collapseButtonsButtonProps}\r\n onClick={this.toggleClick}\r\n >\r\n <PlusIcon />\r\n </Button>\r\n )}\r\n </div>\r\n {this.props.showExpandAll &&\r\n Object.keys(this.state.inputHeaderContext.components).length > 0 &&\r\n this.renderCollapseExpandAll()}\r\n </div>\r\n <div\r\n className={\r\n 'input__header__bottom ' +\r\n (this.props.contentClassName ? this.props.contentClassName : '')\r\n }\r\n >\r\n {this.props.collapsible ? (\r\n <Collapse\r\n //this was here for some reason but it's messing with aria\r\n //collapsedHeight={'0.0001px'}\r\n in={collapsed}\r\n mountOnEnter={this.props.mountOnEnter}\r\n unmountOnExit={this.props.unmountOnExit}\r\n aria-expanded={collapsed ? 'false' : true}\r\n >\r\n {this.props.children}\r\n </Collapse>\r\n ) : (\r\n this.props.children\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n private toggleClick = () => this.toggle();\r\n\r\n private registerInputHeader(\r\n componentId: string,\r\n component: InputHeaderComponentContextState\r\n ) {\r\n this.setState(previousState => {\r\n let components = Object.assign(\r\n {},\r\n previousState.inputHeaderContext.components\r\n );\r\n components[componentId] = component;\r\n return {\r\n inputHeaderContext: { ...previousState.inputHeaderContext, components },\r\n };\r\n });\r\n }\r\n\r\n private unregisterInputHeader(componentId: string) {\r\n this.setState(previousState => {\r\n let components = Object.assign(\r\n {},\r\n previousState.inputHeaderContext.components\r\n );\r\n delete components[componentId];\r\n return {\r\n inputHeaderContext: { ...previousState.inputHeaderContext, components },\r\n };\r\n });\r\n }\r\n\r\n private getTypeClass() {\r\n switch (this.props.type) {\r\n case 'hero':\r\n return 'input__header--hero';\r\n case 'small':\r\n return 'input__header--small';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n private mainButtonClick = (e: React.MouseEvent<HTMLDivElement>) => {\r\n if (this.props.stopsPropagation) {\r\n e.stopPropagation();\r\n }\r\n };\r\n\r\n private renderExtraButtons() {\r\n let arr = [];\r\n if (typeof this.props.extraButtons === 'function') {\r\n arr = this.props.extraButtons;\r\n } else {\r\n arr = this.props.extraButtons;\r\n }\r\n\r\n return arr.map((extraButton, index) => <li key={index}>{extraButton}</li>);\r\n }\r\n\r\n private renderCollapseExpandAll() {\r\n let allCollapsed = true;\r\n let allExpanded = true;\r\n Object.keys(this.state.inputHeaderContext.components).forEach(key => {\r\n const component = this.state.inputHeaderContext.components[key];\r\n if (component && component.props.collapsible) {\r\n if (component.state.collapsed) {\r\n allExpanded = false;\r\n } else {\r\n allCollapsed = false;\r\n }\r\n }\r\n });\r\n return (\r\n <div\r\n className=\"input__header__expand-collapse--all\"\r\n onClick={this.containerClick}\r\n >\r\n {(allCollapsed || !allExpanded) && (\r\n <Button\r\n noRipples={true}\r\n small={true}\r\n className={allExpanded || !allCollapsed ? 'mr-2' : ''}\r\n onClick={this.expandAllClick}\r\n blank={true}\r\n Component={CollapseExpandButtonComponent}\r\n >\r\n Expand all\r\n </Button>\r\n )}\r\n {(allExpanded || !allCollapsed) && (\r\n <Button\r\n noRipples={true}\r\n small={true}\r\n onClick={this.collapseAllClick}\r\n blank={true}\r\n Component={CollapseExpandButtonComponent}\r\n >\r\n Collapse all\r\n </Button>\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n private containerClick = (e: React.MouseEvent<HTMLDivElement>) =>\r\n e.stopPropagation();\r\n\r\n private expandAllClick = () => {\r\n Object.keys(this.state.inputHeaderContext.components).forEach(key => {\r\n const component = this.state.inputHeaderContext.components[key];\r\n component.componentApi.expand();\r\n });\r\n };\r\n\r\n private collapseAllClick = () => {\r\n Object.keys(this.state.inputHeaderContext.components).forEach(key => {\r\n const component = this.state.inputHeaderContext.components[key];\r\n component.componentApi.collapse();\r\n });\r\n };\r\n\r\n private 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 private 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\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 <span tabIndex={0}>{content}</span>\r\n </Tippy>\r\n );\r\n }\r\n return content;\r\n }\r\n}\r\n\r\nexport const InputHeader = withThemeContext<\r\n InputHeaderRawProps,\r\n InstanceType<typeof InputHeaderRaw>\r\n>(withInputHeaderContext<InputHeaderRawProps>(InputHeaderRaw), 'inputHeader');\r\n\r\nexport default InputHeader;\r\n"],"mappings":"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"}
|
@@ -15,6 +15,8 @@ var _withFormContext = require("../form/withFormContext");
|
|
15
15
|
|
16
16
|
var _withThemeContext = require("../themeProvider/withThemeContext");
|
17
17
|
|
18
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
19
|
+
|
18
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
19
21
|
|
20
22
|
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); }
|
@@ -38,8 +40,6 @@ ArrowIcon.defaultProps = {
|
|
38
40
|
viewBox: "0 0 24 24"
|
39
41
|
}; // Libs
|
40
42
|
|
41
|
-
var classNames = require('classnames');
|
42
|
-
|
43
43
|
class NumberInputRaw extends _BaseInput.BaseInput {
|
44
44
|
constructor(props) {
|
45
45
|
super(props);
|
@@ -107,7 +107,7 @@ class NumberInputRaw extends _BaseInput.BaseInput {
|
|
107
107
|
}, {
|
108
108
|
disabled: this.getDisabled(),
|
109
109
|
required: this.props.required,
|
110
|
-
className:
|
110
|
+
className: (0, _classnames.default)('number-input__time', {
|
111
111
|
filled: this.props.number !== undefined
|
112
112
|
}),
|
113
113
|
onChange: this.onUnitChanged,
|
@@ -130,7 +130,7 @@ class NumberInputRaw extends _BaseInput.BaseInput {
|
|
130
130
|
}), /*#__PURE__*/React.createElement("span", {
|
131
131
|
className: 'bar ' + (this.state.focused ? 'focused' : '')
|
132
132
|
}), this.props.label && /*#__PURE__*/React.createElement("label", {
|
133
|
-
className:
|
133
|
+
className: (0, _classnames.default)('number-input__label label--focused')
|
134
134
|
}, this.renderLabel())));
|
135
135
|
}
|
136
136
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NumberInput.js","names":["ArrowIcon","classNames","require","NumberInputRaw","BaseInput","constructor","props","e","commitState","handleBlur","preventDefault","handleLimits","number","setState","currentText","target","value","key","removeUnitClick","bind","addUnitClick","onUnitChanged","render","unit","title","inputGroupClassName","tooltip","id","getValidationClass","className","containerRef","getDisabled","required","filled","undefined","state","onBlur","handleFocus","onKeyDown","renderDefaultValidation","focused","label","renderLabel","num","Number","isNaN","min","onNumberChange","max","Object","assign","defaultProps","type","placeholder","NumberInput","withThemeContext","withFormContext"],"sources":["../../../src/lib/components/numberInput/NumberInput.tsx"],"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\r\n title={this.props.title}\r\n className={this.props.inputGroupClassName}\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={\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"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"NumberInput.js","names":["ArrowIcon","NumberInputRaw","BaseInput","constructor","props","e","commitState","handleBlur","preventDefault","handleLimits","number","setState","currentText","target","value","key","removeUnitClick","bind","addUnitClick","onUnitChanged","render","unit","title","inputGroupClassName","tooltip","id","getValidationClass","className","containerRef","getDisabled","required","classNames","filled","undefined","state","onBlur","handleFocus","onKeyDown","renderDefaultValidation","focused","label","renderLabel","num","Number","isNaN","min","onNumberChange","max","Object","assign","defaultProps","type","placeholder","NumberInput","withThemeContext","withFormContext"],"sources":["../../../src/lib/components/numberInput/NumberInput.tsx"],"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\nimport classNames from '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\r\n title={this.props.title}\r\n className={this.props.inputGroupClassName}\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={\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"],"mappings":"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"}
|
@@ -21,6 +21,8 @@ var _Button = require("../../button/Button");
|
|
21
21
|
|
22
22
|
var _withFormContext = require("../../form/withFormContext");
|
23
23
|
|
24
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
25
|
+
|
24
26
|
var _moment = require("moment");
|
25
27
|
|
26
28
|
var _NumberInput = _interopRequireDefault(require("../../numberInput/NumberInput"));
|
@@ -54,8 +56,6 @@ PlusIcon.defaultProps = {
|
|
54
56
|
viewBox: "0 0 24 24"
|
55
57
|
}; // Libs
|
56
58
|
|
57
|
-
var classNames = require('classnames');
|
58
|
-
|
59
59
|
const defaultDayTranslations = _objectSpread({
|
60
60
|
opens: 'Opens',
|
61
61
|
closes: 'Closes',
|
@@ -116,14 +116,14 @@ class OpeningHoursDayRaw extends _BaseInput.BaseInput {
|
|
116
116
|
const translations = this.getTranslations(defaultDayTranslations);
|
117
117
|
return /*#__PURE__*/React.createElement(_InputGroup.default, {
|
118
118
|
title: this.props.title,
|
119
|
-
className:
|
119
|
+
className: (0, _classnames.default)('input__group__openingHoursDay', this.props.className, {
|
120
120
|
'input__group__openingHoursDay--closed': this.props.openingHours && this.props.openingHours.times && this.props.openingHours.times.length === 0
|
121
121
|
}),
|
122
122
|
tooltip: this.props.tooltip
|
123
123
|
}, /*#__PURE__*/React.createElement("div", _extends({}, this.props.id && {
|
124
124
|
id: this.props.id
|
125
125
|
}, {
|
126
|
-
className:
|
126
|
+
className: (0, _classnames.default)('input__base openingHoursDay-input', {
|
127
127
|
'openingHoursDay-input--closed': this.props.openingHours && this.props.openingHours.times && this.props.openingHours.times.length === 0
|
128
128
|
}, this.getValidationClass()),
|
129
129
|
ref: this.containerRef
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"OpeningHoursDay.js","names":["PlusIcon","classNames","require","defaultDayTranslations","opens","closes","capacity","add","midnight","defaultBaseTranslations","OpeningHoursDayRaw","BaseInput","constructor","props","newTime","openingHours","times","length","clone","getTime","hours","closeTime","onOpeningHoursChange","concat","useCapacity","undefined","index","filter","time","itemIndex","indexJ","newOpeningHours","slice","render","translations","getTranslations","title","className","tooltip","id","getValidationClass","containerRef","map","item","localIndex","previousTime","nextTime","duration","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","Object","assign","defaultProps","onChange","type","allowMultiple","OpeningHoursDay","withThemeContext","withFormContext"],"sources":["../../../../src/lib/components/openingHours/openingHoursDay/OpeningHoursDay.tsx"],"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"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"OpeningHoursDay.js","names":["PlusIcon","defaultDayTranslations","opens","closes","capacity","add","midnight","defaultBaseTranslations","OpeningHoursDayRaw","BaseInput","constructor","props","newTime","openingHours","times","length","clone","getTime","hours","closeTime","onOpeningHoursChange","concat","useCapacity","undefined","index","filter","time","itemIndex","indexJ","newOpeningHours","slice","render","translations","getTranslations","title","classNames","className","tooltip","id","getValidationClass","containerRef","map","item","localIndex","previousTime","nextTime","duration","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","Object","assign","defaultProps","onChange","type","allowMultiple","OpeningHoursDay","withThemeContext","withFormContext"],"sources":["../../../../src/lib/components/openingHours/openingHoursDay/OpeningHoursDay.tsx"],"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\nimport classNames from '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"],"mappings":"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"}
|
@@ -17,6 +17,8 @@ var _withThemeContext = require("../themeProvider/withThemeContext");
|
|
17
17
|
|
18
18
|
var _button = _interopRequireDefault(require("../button"));
|
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 (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
@@ -44,8 +46,6 @@ PlusIcon.defaultProps = {
|
|
44
46
|
viewBox: "0 0 24 24"
|
45
47
|
};
|
46
48
|
|
47
|
-
var classNames = require('classnames');
|
48
|
-
|
49
49
|
class TextRaw extends _BaseInput.BaseInput {
|
50
50
|
constructor(props) {
|
51
51
|
super(props);
|
@@ -152,7 +152,7 @@ class TextRaw extends _BaseInput.BaseInput {
|
|
152
152
|
unobtrusive: true,
|
153
153
|
noShadow: true,
|
154
154
|
onClick: this.clearClick,
|
155
|
-
className:
|
155
|
+
className: (0, _classnames.default)('text-input__clearButton line-height--0', {
|
156
156
|
'text-input__clearButton--hidden': clearButtonHidden
|
157
157
|
})
|
158
158
|
}), /*#__PURE__*/React.createElement(PlusIcon, {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Text.js","names":["PlusIcon","classNames","require","TextRaw","BaseInput","constructor","props","inputRef","current","nativeTextAreaValueSetter","Object","getOwnPropertyDescriptor","window","HTMLInputElement","prototype","set","call","event","Event","bubbles","dispatchEvent","e","stopClickPropagation","stopPropagation","onKeyDown","number","undefined","onNumberChange","value","toString","res","handleValueChange","state","isValid","errors","ignoreContext","formContext","updateCallback","componentId","validation","componentDidUpdate","prevProps","prevState","Number","num","isNaN","validators","customValidators","required","render","clearButtonHidden","length","disabled","title","tooltip","inputGroupClassName","getValidationClass","readOnly","className","containerClick","containerRef","before","id","placeholder","getDisabled","handleChange","handleBlur","handleFocus","type","onClick","maxLength","sizeFromValue","after","showClearButton","clearClick","renderDefaultValidation","label","renderLabel","assign","defaultProps","Text","withThemeContext","withFormContext"],"sources":["../../../src/lib/components/text/Text.tsx"],"sourcesContent":["// 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\nimport Button from '../button';\r\nimport * as PlusIcon from 'material-design-icons/content/svg/production/ic_add_24px.svg';\r\nvar classNames = require('classnames');\r\n\r\nexport interface TextProps extends BaseInputProps<HTMLInputElement> {\r\n mask?: string;\r\n reverse?: boolean;\r\n placeholder?: string;\r\n stopClickPropagation?: boolean;\r\n inputRef?: React.Ref<HTMLInputElement>;\r\n readOnly?: boolean;\r\n type?: 'number' | 'text';\r\n maxLength?: number;\r\n showClearButton?: boolean;\r\n after?: React.ReactNode;\r\n before?: React.ReactNode;\r\n sizeFromValue?: boolean;\r\n onNumberChange?: (number: number, isValid: boolean) => void;\r\n number?: number;\r\n}\r\n\r\nexport interface TextState extends BaseInputState {}\r\n\r\nexport class TextRaw extends BaseInput<TextProps, TextState, HTMLInputElement> {\r\n public static defaultProps = Object.assign({}, BaseInput.defaultProps, {\r\n type: 'text',\r\n stopClickPropagation: true,\r\n readOnly: false,\r\n }) as TextProps;\r\n\r\n constructor(props: TextProps) {\r\n super(props);\r\n if (props.number !== undefined || props.onNumberChange) {\r\n const value = props.number?.toString() ?? '';\r\n const res = this.handleValueChange(value, true, [], props, true);\r\n this.state = {\r\n ...this.state,\r\n isValid: res.isValid,\r\n errors: res.errors,\r\n value,\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: res.isValid,\r\n errors: res.errors,\r\n },\r\n });\r\n }\r\n }\r\n }\r\n\r\n public componentDidUpdate(prevProps: TextProps, prevState: TextState) {\r\n if (\r\n this.props.onNumberChange &&\r\n (this.state.isValid !== prevState.isValid ||\r\n this.state.value !== prevState.value) &&\r\n this.props.number !== Number(this.state.value)\r\n ) {\r\n const num = Number(this.state.value);\r\n if (this.state.value === '') {\r\n this.props.onNumberChange(undefined, this.state.isValid);\r\n } else if (!isNaN(num)) {\r\n this.props.onNumberChange(num, this.state.isValid);\r\n }\r\n }\r\n if (\r\n (prevProps.number !== undefined || this.props.number !== undefined) &&\r\n this.props.number !== prevProps.number\r\n ) {\r\n this.handleValueChange(this.props.number?.toString() ?? '');\r\n }\r\n if (\r\n !this.props.onNumberChange &&\r\n (prevProps.value !== this.props.value ||\r\n prevProps.validators !== this.props.validators ||\r\n prevProps.customValidators !== this.props.customValidators ||\r\n prevProps.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 render() {\r\n const clearButtonHidden = !this.state.value?.length || this.props.disabled;\r\n return (\r\n <InputGroup title={this.props.title} tooltip={this.props.tooltip} className={this.props.inputGroupClassName}>\r\n <div\r\n className={`input__base text-input ${this.getValidationClass()} \r\n ${this.props.readOnly ? 'text-input--readOnly' : ''} ${\r\n this.props.className ? this.props.className : ''\r\n }`}\r\n onClick={this.containerClick}\r\n ref={this.containerRef}\r\n >\r\n <div className=\"text-input__textWrapper\">\r\n {this.props.before}\r\n <input\r\n {...(this.props.id && {\r\n id: this.props.id,\r\n })}\r\n ref={this.inputRef}\r\n placeholder={this.props.placeholder}\r\n disabled={this.getDisabled()}\r\n required={this.props.required}\r\n className={this.state.value ? 'filled' : ''}\r\n onChange={this.handleChange}\r\n value={this.state.value ?? ''}\r\n onBlur={this.handleBlur}\r\n onFocus={this.handleFocus}\r\n readOnly={this.props.readOnly}\r\n onKeyDown={this.onKeyDown}\r\n type={this.props.type}\r\n onClick={this.props.onClick}\r\n maxLength={this.props.maxLength}\r\n size={\r\n this.props.sizeFromValue\r\n ? this.props.value?.length || 1\r\n : undefined\r\n }\r\n />\r\n {this.props.after}\r\n {!this.props.readOnly && this.props.showClearButton && (\r\n <Button\r\n {...(this.props.id && {\r\n id: this.props.id + '-clear-button',\r\n })}\r\n disabled={clearButtonHidden}\r\n unobtrusive={true}\r\n noShadow={true}\r\n onClick={this.clearClick}\r\n className={classNames(\r\n 'text-input__clearButton line-height--0',\r\n {\r\n 'text-input__clearButton--hidden': clearButtonHidden,\r\n }\r\n )}\r\n >\r\n <PlusIcon className=\"transform-rotate--45 line-height--0\" />\r\n </Button>\r\n )}\r\n <span className=\"highlight\" />\r\n <span className=\"bar\" />\r\n {this.renderDefaultValidation()}\r\n {this.props.label && (\r\n <label className={this.props.readOnly ? 'label--focused' : ''}>\r\n {this.renderLabel()}\r\n </label>\r\n )}\r\n </div>\r\n </div>\r\n </InputGroup>\r\n );\r\n }\r\n\r\n private clearClick = () => {\r\n if (this.inputRef.current) {\r\n var nativeTextAreaValueSetter = Object.getOwnPropertyDescriptor(\r\n window.HTMLInputElement.prototype,\r\n 'value'\r\n ).set;\r\n if (nativeTextAreaValueSetter) {\r\n nativeTextAreaValueSetter.call(this.inputRef.current, '');\r\n\r\n const event = new Event('input', { bubbles: true });\r\n this.inputRef.current.dispatchEvent(event);\r\n }\r\n }\r\n };\r\n\r\n private containerClick = (e: React.MouseEvent<HTMLDivElement>) =>\r\n this.props.stopClickPropagation && e.stopPropagation();\r\n\r\n private onKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) =>\r\n this.props.onKeyDown && this.props.onKeyDown(e);\r\n}\r\n\r\nexport const Text = withThemeContext<TextProps, InstanceType<typeof TextRaw>>(\r\n withFormContext<TextProps>(TextRaw),\r\n 'text'\r\n);\r\n\r\nexport default Text;\r\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Text.js","names":["PlusIcon","TextRaw","BaseInput","constructor","props","inputRef","current","nativeTextAreaValueSetter","Object","getOwnPropertyDescriptor","window","HTMLInputElement","prototype","set","call","event","Event","bubbles","dispatchEvent","e","stopClickPropagation","stopPropagation","onKeyDown","number","undefined","onNumberChange","value","toString","res","handleValueChange","state","isValid","errors","ignoreContext","formContext","updateCallback","componentId","validation","componentDidUpdate","prevProps","prevState","Number","num","isNaN","validators","customValidators","required","render","clearButtonHidden","length","disabled","title","tooltip","inputGroupClassName","getValidationClass","readOnly","className","containerClick","containerRef","before","id","placeholder","getDisabled","handleChange","handleBlur","handleFocus","type","onClick","maxLength","sizeFromValue","after","showClearButton","clearClick","classNames","renderDefaultValidation","label","renderLabel","assign","defaultProps","Text","withThemeContext","withFormContext"],"sources":["../../../src/lib/components/text/Text.tsx"],"sourcesContent":["// 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\nimport Button from '../button';\r\nimport * as PlusIcon from 'material-design-icons/content/svg/production/ic_add_24px.svg';\r\nimport classNames from 'classnames';\r\n\r\nexport interface TextProps extends BaseInputProps<HTMLInputElement> {\r\n mask?: string;\r\n reverse?: boolean;\r\n placeholder?: string;\r\n stopClickPropagation?: boolean;\r\n inputRef?: React.Ref<HTMLInputElement>;\r\n readOnly?: boolean;\r\n type?: 'number' | 'text';\r\n maxLength?: number;\r\n showClearButton?: boolean;\r\n after?: React.ReactNode;\r\n before?: React.ReactNode;\r\n sizeFromValue?: boolean;\r\n onNumberChange?: (number: number, isValid: boolean) => void;\r\n number?: number;\r\n}\r\n\r\nexport interface TextState extends BaseInputState {}\r\n\r\nexport class TextRaw extends BaseInput<TextProps, TextState, HTMLInputElement> {\r\n public static defaultProps = Object.assign({}, BaseInput.defaultProps, {\r\n type: 'text',\r\n stopClickPropagation: true,\r\n readOnly: false,\r\n }) as TextProps;\r\n\r\n constructor(props: TextProps) {\r\n super(props);\r\n if (props.number !== undefined || props.onNumberChange) {\r\n const value = props.number?.toString() ?? '';\r\n const res = this.handleValueChange(value, true, [], props, true);\r\n this.state = {\r\n ...this.state,\r\n isValid: res.isValid,\r\n errors: res.errors,\r\n value,\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: res.isValid,\r\n errors: res.errors,\r\n },\r\n });\r\n }\r\n }\r\n }\r\n\r\n public componentDidUpdate(prevProps: TextProps, prevState: TextState) {\r\n if (\r\n this.props.onNumberChange &&\r\n (this.state.isValid !== prevState.isValid ||\r\n this.state.value !== prevState.value) &&\r\n this.props.number !== Number(this.state.value)\r\n ) {\r\n const num = Number(this.state.value);\r\n if (this.state.value === '') {\r\n this.props.onNumberChange(undefined, this.state.isValid);\r\n } else if (!isNaN(num)) {\r\n this.props.onNumberChange(num, this.state.isValid);\r\n }\r\n }\r\n if (\r\n (prevProps.number !== undefined || this.props.number !== undefined) &&\r\n this.props.number !== prevProps.number\r\n ) {\r\n this.handleValueChange(this.props.number?.toString() ?? '');\r\n }\r\n if (\r\n !this.props.onNumberChange &&\r\n (prevProps.value !== this.props.value ||\r\n prevProps.validators !== this.props.validators ||\r\n prevProps.customValidators !== this.props.customValidators ||\r\n prevProps.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 render() {\r\n const clearButtonHidden = !this.state.value?.length || this.props.disabled;\r\n return (\r\n <InputGroup\r\n title={this.props.title}\r\n tooltip={this.props.tooltip}\r\n className={this.props.inputGroupClassName}\r\n >\r\n <div\r\n className={`input__base text-input ${this.getValidationClass()} \r\n ${this.props.readOnly ? 'text-input--readOnly' : ''} ${\r\n this.props.className ? this.props.className : ''\r\n }`}\r\n onClick={this.containerClick}\r\n ref={this.containerRef}\r\n >\r\n <div className=\"text-input__textWrapper\">\r\n {this.props.before}\r\n <input\r\n {...(this.props.id && {\r\n id: this.props.id,\r\n })}\r\n ref={this.inputRef}\r\n placeholder={this.props.placeholder}\r\n disabled={this.getDisabled()}\r\n required={this.props.required}\r\n className={this.state.value ? 'filled' : ''}\r\n onChange={this.handleChange}\r\n value={this.state.value ?? ''}\r\n onBlur={this.handleBlur}\r\n onFocus={this.handleFocus}\r\n readOnly={this.props.readOnly}\r\n onKeyDown={this.onKeyDown}\r\n type={this.props.type}\r\n onClick={this.props.onClick}\r\n maxLength={this.props.maxLength}\r\n size={\r\n this.props.sizeFromValue\r\n ? this.props.value?.length || 1\r\n : undefined\r\n }\r\n />\r\n {this.props.after}\r\n {!this.props.readOnly && this.props.showClearButton && (\r\n <Button\r\n {...(this.props.id && {\r\n id: this.props.id + '-clear-button',\r\n })}\r\n disabled={clearButtonHidden}\r\n unobtrusive={true}\r\n noShadow={true}\r\n onClick={this.clearClick}\r\n className={classNames(\r\n 'text-input__clearButton line-height--0',\r\n {\r\n 'text-input__clearButton--hidden': clearButtonHidden,\r\n }\r\n )}\r\n >\r\n <PlusIcon className=\"transform-rotate--45 line-height--0\" />\r\n </Button>\r\n )}\r\n <span className=\"highlight\" />\r\n <span className=\"bar\" />\r\n {this.renderDefaultValidation()}\r\n {this.props.label && (\r\n <label className={this.props.readOnly ? 'label--focused' : ''}>\r\n {this.renderLabel()}\r\n </label>\r\n )}\r\n </div>\r\n </div>\r\n </InputGroup>\r\n );\r\n }\r\n\r\n private clearClick = () => {\r\n if (this.inputRef.current) {\r\n var nativeTextAreaValueSetter = Object.getOwnPropertyDescriptor(\r\n window.HTMLInputElement.prototype,\r\n 'value'\r\n ).set;\r\n if (nativeTextAreaValueSetter) {\r\n nativeTextAreaValueSetter.call(this.inputRef.current, '');\r\n\r\n const event = new Event('input', { bubbles: true });\r\n this.inputRef.current.dispatchEvent(event);\r\n }\r\n }\r\n };\r\n\r\n private containerClick = (e: React.MouseEvent<HTMLDivElement>) =>\r\n this.props.stopClickPropagation && e.stopPropagation();\r\n\r\n private onKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) =>\r\n this.props.onKeyDown && this.props.onKeyDown(e);\r\n}\r\n\r\nexport const Text = withThemeContext<TextProps, InstanceType<typeof TextRaw>>(\r\n withFormContext<TextProps>(TextRaw),\r\n 'text'\r\n);\r\n\r\nexport default Text;\r\n"],"mappings":"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"}
|
@@ -17,6 +17,8 @@ var _moment = require("moment");
|
|
17
17
|
|
18
18
|
var _withThemeContext = require("../themeProvider/withThemeContext");
|
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 (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
@@ -40,8 +42,6 @@ ArrowIcon.defaultProps = {
|
|
40
42
|
viewBox: "0 0 24 24"
|
41
43
|
}; // Libs
|
42
44
|
|
43
|
-
var classNames = require('classnames');
|
44
|
-
|
45
45
|
let TimeSpanUnit;
|
46
46
|
exports.TimeSpanUnit = TimeSpanUnit;
|
47
47
|
|
@@ -161,7 +161,7 @@ class TimeSpanRaw extends _BaseInput.BaseInput {
|
|
161
161
|
}, {
|
162
162
|
disabled: this.getDisabled(),
|
163
163
|
required: this.props.required,
|
164
|
-
className:
|
164
|
+
className: (0, _classnames.default)('timeSpan-input__time', {
|
165
165
|
filled: this.state.value,
|
166
166
|
'timeSpan-input__time--ms': unit === TimeSpanUnit.Millisecond
|
167
167
|
}),
|
@@ -187,7 +187,7 @@ class TimeSpanRaw extends _BaseInput.BaseInput {
|
|
187
187
|
}), /*#__PURE__*/React.createElement("span", {
|
188
188
|
className: 'bar ' + (this.state.focused ? 'focused' : '')
|
189
189
|
}), this.props.label && /*#__PURE__*/React.createElement("label", {
|
190
|
-
className:
|
190
|
+
className: (0, _classnames.default)('timeSpan-input__label label--focused')
|
191
191
|
}, this.renderLabel())));
|
192
192
|
}
|
193
193
|
|