d2coreui 21.0.10 → 21.0.13
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/components/color/colorPicker.d.ts +20 -0
- package/components/color/colorPicker.js +54 -0
- package/components/color/colorPicker.js.map +1 -0
- package/components/color/colorUtils.d.ts +2 -0
- package/components/color/colorUtils.js +29 -0
- package/components/color/colorUtils.js.map +1 -1
- package/components/date/dateRangeInput.d.ts +13 -1
- package/components/date/dateRangeInput.js +100 -9
- package/components/date/dateRangeInput.js.map +1 -1
- package/components/date/dateRangeInputAdvancedPanel.d.ts +26 -0
- package/components/date/dateRangeInputAdvancedPanel.js +116 -0
- package/components/date/dateRangeInputAdvancedPanel.js.map +1 -0
- package/components/date/dateRangeInputConfirm.d.ts +11 -1
- package/components/date/dateRangeInputConfirm.js +67 -27
- package/components/date/dateRangeInputConfirm.js.map +1 -1
- package/components/date/dateTimeInput.d.ts +3 -0
- package/components/date/dateTimeInput.js +8 -5
- package/components/date/dateTimeInput.js.map +1 -1
- package/components/grid/cell/simpleStatusTextCellEditor.d.ts +1 -0
- package/components/grid/cell/simpleStatusTextCellEditor.js +17 -10
- package/components/grid/cell/simpleStatusTextCellEditor.js.map +1 -1
- package/components/grid/config/rowStylePicker.d.ts +1 -5
- package/components/grid/config/rowStylePicker.js +14 -70
- package/components/grid/config/rowStylePicker.js.map +1 -1
- package/components/grid/dataGrid.d.ts +1 -1
- package/components/grid/dataGrid.js +101 -122
- package/components/grid/dataGrid.js.map +1 -1
- package/components/grid/extendedDataGrid.d.ts +3 -1
- package/components/grid/extendedDataGrid.js +37 -6
- package/components/grid/extendedDataGrid.js.map +1 -1
- package/components/input/maskedInput.d.ts +3 -3
- package/components/scrollTo/scrollTo.d.ts +1 -0
- package/components/scrollTo/scrollTo.js +13 -0
- package/components/scrollTo/scrollTo.js.map +1 -1
- package/i18n/components.sk.json +17 -0
- package/package.json +2 -2
- package/style/flexLayout/flexLayout.scss +95 -1
- package/style/flexLayout/flexLayoutBase.scss +152 -151
- package/style/flexLayout/new/_base.scss +616 -0
- package/style/flexLayout/new/flexLayoutBase.scss +622 -0
- package/style/flexLayout/new/light.scss +107 -0
- package/style/flexLayout/old/_base.scss +551 -0
- package/style/flexLayout/old/light.scss +16 -0
- package/style/index.less +5 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateTimeInput.js","sourceRoot":"","sources":["../../../../components/date/dateTimeInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {HTMLAttributes, RefObject} from \"react\";\r\nimport MaskedInput from \"../input/maskedInput\";\r\nimport padStart from 'lodash/padStart';\r\nimport isEqual from 'lodash/isEqual';\r\nimport debounce from 'lodash/debounce';\r\nimport moment, {Moment} from \"moment\";\r\nimport {CalendarOutlined} from \"@ant-design/icons\";\r\nimport {Button, Calendar, Select, Tooltip} from \"antd\";\r\nimport {Key} from \"ts-key-enum\";\r\n\r\n\r\ninterface DateTimeInputProps extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\r\n mask: string\r\n value: Moment | null\r\n onChange?: (time: Moment | null) => void\r\n onInvalidValue?: (inputString: string) => void\r\n // allows to set no (null) date by datepicker\r\n allowClear?: boolean\r\n disabled?: boolean\r\n minDateTime?: Moment\r\n maxDateTime?: Moment\r\n\r\n bordered?: boolean\r\n hidePopup?: boolean\r\n renderAsCalendar?: boolean\r\n\r\n // special methods for rendering date range\r\n defaultSelectedDate?: Moment\r\n markedDateInterval?: [Moment, Moment]\r\n onDateItemMouseDown?: (date: Moment) => void\r\n onDateItemMouseUp?: (date: Moment) => void\r\n onDateItemMouseOver?: (date: Moment) => void\r\n\r\n inputStyle?: React.CSSProperties\r\n getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;\r\n}\r\n\r\ninterface DateTimeInputState {\r\n valid: boolean\r\n currentPos: number | null\r\n currentInfo: MaskResult\r\n\r\n calendarSelectedDate: Moment\r\n}\r\n\r\ninterface MaskResult {\r\n time: Moment | undefined\r\n info: InfoEntry | undefined\r\n length: number\r\n}\r\n\r\ninterface InfoEntry {\r\n key: string | string[]\r\n min: number\r\n max: number\r\n unit: moment.unitOfTime.Base\r\n}\r\n\r\nconst DATE_TIME_DATA_MAP: InfoEntry[] = [\r\n {key: \"SSS\", min: 0, max: 999, unit: \"ms\"},\r\n {key: \"ss\", min: 0, max: 59, unit: \"s\"},\r\n {key: \"mm\", min: 0, max: 59, unit: \"m\"},\r\n {key: \"HH\", min: 0, max: 23, unit: \"h\"},\r\n {key: [\"YYYY\", \"YY\"], min: 1970, max: 9999, unit: \"y\"},\r\n {key: \"MM\", min: 1, max: 12, unit: \"M\"},\r\n {key: \"DD\", min: 1, max: 31, unit: \"d\"},\r\n];\r\n\r\nconst MIN_TIME = moment.unix(0);\r\nconst MAX_TIME = moment().add(1000, \"year\");\r\n\r\nexport default class DateTimeInput extends React.Component<DateTimeInputProps, DateTimeInputState> {\r\n private inputRef: RefObject<MaskedInput> = React.createRef();\r\n private today: Moment = moment();\r\n\r\n constructor(props: Readonly<DateTimeInputProps>) {\r\n super(props);\r\n this.state = {\r\n valid: (!!props.value && props.value.isValid()) || (!!props.allowClear && props.value === null),\r\n currentPos: null,\r\n currentInfo: {\r\n info: undefined,\r\n time: undefined,\r\n length: 0\r\n },\r\n calendarSelectedDate: props.defaultSelectedDate?.clone() ?? props.value?.clone() ?? moment().startOf('day')\r\n };\r\n\r\n this.recalc = this.recalc.bind(this);\r\n this.increment = this.increment.bind(this);\r\n this.decrement = this.decrement.bind(this);\r\n this.onItemMouseOver = debounce(this.onItemMouseOver.bind(this), 100, {maxWait: 100});\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<DateTimeInputProps>, _prevState: Readonly<DateTimeInputState>, _snapshot?: any): void {\r\n if (!isEqual(prevProps, this.props) && this.inputRef.current !== null) {\r\n this.inputRef.current.input.selectionStart = this.state.currentPos;\r\n this.inputRef.current.input.selectionEnd = this.state.currentPos;\r\n if (prevProps.value !== this.props.value) {\r\n this.setState({valid: (!!this.props.value && this.props.value.isValid()) || (!!this.props.allowClear && this.props.value === null)});\r\n }\r\n }\r\n }\r\n\r\n get input() {\r\n return this.inputRef.current?.input;\r\n }\r\n\r\n focus() {\r\n this.inputRef.current?.focus();\r\n }\r\n\r\n recalc(): void {\r\n if (this.inputRef.current !== null) {\r\n this.setState({\r\n currentInfo: DateTimeInput.parseDateTimeFormat(this.inputRef.current.input.value, this.props.mask, this.inputRef.current.input.selectionStart),\r\n currentPos: this.inputRef.current.input.selectionStart,\r\n });\r\n }\r\n }\r\n\r\n private increment(): void {\r\n if (this.state.currentInfo.info !== undefined && !!this.props.value && DateTimeInput.isValid(this.state.currentInfo, this.props.value, 1)) {\r\n const unit = this.state.currentInfo.info.unit;\r\n this.incrementDate(unit);\r\n }\r\n\r\n this.inputRef.current?.focus();\r\n }\r\n\r\n private incrementDate(unit: moment.unitOfTime.Base) {\r\n if (!!this.props.value) {\r\n this.props.value.add(1, unit);\r\n if (!!this.props.maxDateTime && this.props.value.isAfter(this.props.maxDateTime)) {\r\n this.props.onChange?.(this.props.maxDateTime?.clone());\r\n } else {\r\n this.props.onChange?.(this.props.value.clone());\r\n }\r\n }\r\n }\r\n\r\n private decrement(): void {\r\n if (this.state.currentInfo.info !== undefined && !!this.props.value && DateTimeInput.isValid(this.state.currentInfo, this.props.value, -1)) {\r\n const unit = this.state.currentInfo.info.unit;\r\n this.decrementDate(unit);\r\n }\r\n\r\n this.inputRef.current?.focus();\r\n }\r\n\r\n private decrementDate(unit: moment.unitOfTime.Base) {\r\n if (!!this.props.value) {\r\n this.props.value.subtract(1, unit);\r\n if (!!this.props.minDateTime && this.props.value.isBefore(this.props.minDateTime)) {\r\n this.props.onChange?.(this.props.minDateTime?.clone());\r\n } else {\r\n this.props.onChange?.(this.props.value.clone());\r\n }\r\n }\r\n }\r\n\r\n onItemMouseOver(itemDate: Moment) {\r\n this.props.onDateItemMouseOver?.(itemDate);\r\n }\r\n\r\n private renderCalendarNavigation(value: Moment) {\r\n const start = 0;\r\n const end = 12;\r\n const monthOptions = [];\r\n\r\n const current = value.clone();\r\n const localeData = value.localeData();\r\n const months = [];\r\n for (let i = 0; i < 12; i++) {\r\n current.month(i);\r\n months.push(localeData.months(current));\r\n }\r\n\r\n for (let index = start; index < end; index++) {\r\n monthOptions.push(\r\n <Select.Option className=\"month-item\" key={`${index}`} value={`${index}`}>\r\n {months[index]}\r\n </Select.Option>,\r\n );\r\n }\r\n const month = value.month();\r\n\r\n const year = value.year();\r\n const options = [];\r\n for (let i = year - 4; i <= year + 2; i += 1) {\r\n options.push(\r\n <Select.Option key={i} value={i} className=\"year-item\">\r\n {i}\r\n </Select.Option>,\r\n );\r\n }\r\n return (\r\n <div style={{paddingBottom: 8}}>\r\n <div style={{float: \"left\", paddingBottom: 8, width: 140, display: \"flex\"}}>\r\n <Button style={{width: 10, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\r\n disabled={!DateTimeInput.checkDateValueValidity(this.state.calendarSelectedDate, -1, \"month\")}\r\n onClick={() => {\r\n this.state.calendarSelectedDate.subtract(1, \"month\");\r\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\r\n }}\r\n className=\"ant-picker-header-prev-btn\"><span\r\n className=\"ant-picker-prev-icon\"/></Button>\r\n <Select\r\n style={{flex: \"1 1 auto\"}}\r\n size=\"small\"\r\n dropdownMatchSelectWidth={false}\r\n dropdownStyle={{zIndex: 2070}}\r\n getPopupContainer={this.props.getPopupContainer}\r\n value={String(month)}\r\n onChange={selectedMonth => {\r\n const newValue = this.state.calendarSelectedDate.clone();\r\n newValue.month(parseInt(selectedMonth, 10));\r\n this.setState({calendarSelectedDate: newValue});\r\n }}\r\n >\r\n {monthOptions}\r\n </Select>\r\n <Button style={{width: 10, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\r\n className=\"ant-picker-header-next-btn\"\r\n onClick={() => {\r\n this.state.calendarSelectedDate.add(1, \"month\");\r\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\r\n }}>\r\n <span className=\"ant-picker-next-icon\"/>\r\n </Button>\r\n </div>\r\n <div style={{float: \"right\", paddingBottom: 8, width: 110}}>\r\n <Button style={{width: 12, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\r\n className=\"ant-picker-header-prev-btn\"\r\n onClick={() => {\r\n this.state.calendarSelectedDate.subtract(1, \"year\");\r\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\r\n }}>\r\n <span className=\"ant-picker-prev-icon\"/>\r\n </Button>\r\n <Select\r\n size=\"small\"\r\n style={{width: 84}}\r\n dropdownMatchSelectWidth={false}\r\n dropdownStyle={{zIndex: 2070}}\r\n getPopupContainer={this.props.getPopupContainer}\r\n onChange={newYear => {\r\n const newValue = this.state.calendarSelectedDate.clone().year(parseInt(newYear, 10));\r\n this.setState({calendarSelectedDate: newValue});\r\n }}\r\n value={String(year)}\r\n >\r\n {options}\r\n </Select>\r\n <Button style={{width: 12, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\r\n className=\"ant-picker-header-next-btn\"\r\n onClick={() => {\r\n this.state.calendarSelectedDate.add(1, \"year\");\r\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\r\n }}>\r\n <span className=\"ant-picker-next-icon\"/>\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n renderCalendar(): React.ReactElement {\r\n return (<div\r\n onKeyDown={(e) => {\r\n if (e.key === Key.Enter) {\r\n var tagName = (e.target as any)?.tagName?.toLowerCase();\r\n if (tagName !== \"input\") {\r\n this.props.onChange?.(this.state.calendarSelectedDate);\r\n }\r\n }\r\n }}\r\n onMouseOver={(e) => {\r\n if (e.target instanceof HTMLTableCellElement) {\r\n const date = moment(e.target.title, \"YYYY-MM-DD\");\r\n this.onItemMouseOver(date);\r\n }\r\n }}>\r\n <Calendar\r\n fullscreen={false}\r\n style={this.props.renderAsCalendar ? this.props.style : undefined}\r\n dateFullCellRender={((date: Moment) => {\r\n let className = date.isSame(this.today, \"date\") ? 'ant-picker-cell-inner ant-picker-calendar-date ant-picker-calendar-date-today' : 'ant-picker-cell-inner ant-picker-calendar-date';\r\n const markedDateInterval = this.props.markedDateInterval;\r\n if (markedDateInterval && (markedDateInterval[0].isBefore(date) || markedDateInterval[0].isSame(date, \"millisecond\")) &&\r\n (markedDateInterval[1].isAfter(date) || markedDateInterval[1].isSame(date, \"millisecond\"))) {\r\n className += \" date-picker-item-marked\";\r\n } else if (date.isSame(this.props.value, \"date\")) {\r\n className += \" date-picker-item-marked\";\r\n }\r\n return (\r\n <div className={className} style={{userSelect: \"none\"}}\r\n onKeyDown={(e) => {\r\n if (e.key === Key.Enter) {\r\n let newValue = this.props.value?.clone() ?? moment().startOf(\"day\");\r\n newValue = newValue.year(date.year()).month(date.month()).date(date.date());\r\n this.props.onChange?.(date);\r\n }\r\n }}\r\n onMouseDown={() => {\r\n let newValue = this.props.value?.clone() ?? moment().startOf(\"day\");\r\n newValue = newValue.year(date.year()).month(date.month()).date(date.date());\r\n this.props.onDateItemMouseDown?.(newValue);\r\n }}\r\n onMouseUp={() => {\r\n let newValue = this.props.value?.clone() ?? moment().startOf(\"day\");\r\n newValue = newValue.year(date.year()).month(date.month()).date(date.date());\r\n this.props.onDateItemMouseUp?.(newValue);\r\n }}\r\n >\r\n <div className={`ant-picker-calendar-date-value`}>\r\n {padStart(\"\" + date.date(), 2, '0')}\r\n </div>\r\n <div className={`ant-picker-calendar-date-content`}>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n headerRender={({value}) => {\r\n return this.renderCalendarNavigation(value);\r\n }}\r\n value={this.state.calendarSelectedDate}\r\n validRange={[this.props.minDateTime ?? MIN_TIME, this.props.maxDateTime ?? MAX_TIME]}\r\n onSelect={(value) => {\r\n if (window.event instanceof MouseEvent) {\r\n let newValue = this.props.value?.clone() ?? moment().startOf(\"day\");\r\n newValue = newValue.year(value.year()).month(value.month()).date(value.date());\r\n this.props.onChange?.(newValue);\r\n }\r\n this.setState({calendarSelectedDate: value});\r\n }}\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n renderInput() {\r\n const {\r\n mask,\r\n value,\r\n onChange,\r\n onInvalidValue,\r\n style,\r\n disabled,\r\n bordered,\r\n hidePopup,\r\n renderAsCalendar,\r\n allowClear,\r\n minDateTime,\r\n maxDateTime,\r\n onDateItemMouseDown,\r\n onDateItemMouseOver,\r\n onDateItemMouseUp,\r\n markedDateInterval,\r\n inputStyle,\r\n getPopupContainer,\r\n ...props\r\n } = this.props;\r\n\r\n const isUpDisabled = disabled || this.state.currentInfo.info === undefined || !DateTimeInput.isValid(this.state.currentInfo, this.props.value, 1);\r\n const isDownDisabled = disabled || this.state.currentInfo.info === undefined || !DateTimeInput.isValid(this.state.currentInfo, this.props.value, -1);\r\n let className = \"custom-date-time-picker\";\r\n if (disabled) {\r\n className += \" ant-input-number disabled ant-input-disabled readonly\";\r\n } else {\r\n className += \" ant-input-number\";\r\n }\r\n if (bordered === false) {\r\n className += \" ant-input-borderless\";\r\n }\r\n\r\n const maskedInputStyle = {color: this.state.valid ? \"inherit\" : \"red\", border: \"none\"};\r\n if (inputStyle) {\r\n Object.assign(maskedInputStyle, inputStyle);\r\n }\r\n\r\n return (\r\n <div style={bordered === false ? {...style, border: 0} : style} {...props} className={className}>\r\n <div className=\"ant-input-number-input-wrap\"\r\n onKeyDown={(event) => {\r\n if (event.keyCode === 38) { // up\r\n this.increment();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n } else if (event.keyCode === 40) { // down\r\n this.decrement();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }}>\r\n <MaskedInput mask={this.props.mask.replace(/[a-zA-Z]/g, '1')}\r\n bordered={bordered}\r\n ref={this.inputRef}\r\n style={maskedInputStyle}\r\n value={value?.locale(\"locale.d2000\").format(this.props.mask) ?? \"\"}\r\n onFocus={(event => {\r\n event.target.selectionStart = event.target.selectionEnd = this.state.currentPos;\r\n })}\r\n disabled={disabled}\r\n onWheel={(event) => {\r\n if (event.deltaY > 0) {\r\n if (!isDownDisabled) {\r\n this.decrement();\r\n }\r\n }\r\n if (event.deltaY < 0) {\r\n if (!isUpDisabled) {\r\n this.increment();\r\n }\r\n }\r\n }}\r\n onMouseUp={this.recalc}\r\n onKeyUp={this.recalc}\r\n onChange={(event) => {\r\n const inputString = event.target.value;\r\n const value: MaskResult = DateTimeInput.parseDateTimeFormat(inputString, this.props.mask, event.target.selectionStart);\r\n if (value.time !== undefined) {\r\n if (this.props.minDateTime !== undefined && value.time.isBefore(this.props.minDateTime)) {\r\n value.time = this.props.minDateTime.clone();\r\n }\r\n\r\n if (this.props.maxDateTime !== undefined && value.time.isAfter(this.props.maxDateTime)) {\r\n value.time = this.props.maxDateTime.clone();\r\n }\r\n onChange?.(value.time.clone());\r\n } else if (!!this.props.allowClear && !inputString) {\r\n onChange?.(null);\r\n } else {\r\n onInvalidValue?.(inputString);\r\n }\r\n this.setState({\r\n valid: (value.time !== undefined && value.time.isValid()) || (!!this.props.allowClear && !inputString),\r\n currentInfo: value\r\n })\r\n }}/>\r\n </div>\r\n {!hidePopup && !renderAsCalendar && <div className={\"ant-input-number-handler-wrap\"}\r\n style={{\r\n width: 28,\r\n opacity: 1,\r\n height: \"100%\",\r\n textAlign: \"center\",\r\n cursor: \"pointer\",\r\n background: \"transparent\",\r\n border: bordered === false ? 0 : undefined\r\n }}\r\n onClick={(event) => {\r\n if (document.createEvent) {\r\n var ev = document.createEvent('HTMLEvents');\r\n ev.initEvent('contextmenu', true, false);\r\n event.target.dispatchEvent(ev);\r\n }\r\n }}\r\n >\r\n <CalendarOutlined style={{color: \"rgba(0,0,0,0.65)\", verticalAlign: \"middle\", marginTop: 2}}/>\r\n </div>}\r\n </div>\r\n );\r\n }\r\n\r\n render(): any {\r\n if (this.props.renderAsCalendar) {\r\n return this.renderCalendar();\r\n } else if (this.props.hidePopup) {\r\n return this.renderInput();\r\n } else {\r\n return (\r\n <Tooltip color={\"white\"} trigger={this.props.disabled ? [] : [\"contextMenu\"]}\r\n getPopupContainer={this.props.getPopupContainer}\r\n overlayInnerStyle={{maxHeight: \"100vh\", overflowY: \"auto\", overflowX: \"hidden\", width: 266}}\r\n onVisibleChange={(visible) => {\r\n if (visible) {\r\n this.setState({calendarSelectedDate: this.props.defaultSelectedDate?.clone() ?? this.props.value?.clone() ?? moment().startOf(\"day\")})\r\n }\r\n }}\r\n title={this.renderCalendar()}>\r\n {this.renderInput()}\r\n </Tooltip>\r\n );\r\n }\r\n }\r\n\r\n private static isValid(info: MaskResult, value: Moment | null, offset: number): boolean {\r\n const unit = info.info?.unit;\r\n return this.checkDateValueValidity(value, offset, unit);\r\n }\r\n\r\n private static checkDateValueValidity(value: moment.Moment | null, offset: number, unit: moment.unitOfTime.Base | undefined) {\r\n if (value === null) {\r\n return false;\r\n }\r\n let v = value.clone().add(offset, unit);\r\n return v.isValid() && v.isSameOrAfter(moment(0));\r\n }\r\n\r\n private static parseDateTimeFormat(value: string, mask: string, cursorPos: number | null): MaskResult {\r\n let result: MaskResult = {\r\n time: moment(0),\r\n info: undefined,\r\n length: 0,\r\n };\r\n\r\n for (let v of DATE_TIME_DATA_MAP) {\r\n let index: number = -1;\r\n let length: number = 0;\r\n\r\n if (Array.isArray(v.key)) {\r\n for (let x of v.key) {\r\n index = mask.indexOf(x);\r\n\r\n if (index !== -1) {\r\n length = x.length;\r\n break;\r\n }\r\n }\r\n } else {\r\n index = mask.indexOf(v.key);\r\n length = v.key.length;\r\n }\r\n\r\n if (index !== -1) {\r\n let val: number = Number(value.substring(index, index + length));\r\n\r\n if (!isNaN(val) && val >= v.min && val <= v.max) {\r\n if (v.unit === \"M\") {\r\n val--; // 0-11\r\n }\r\n\r\n if (v.unit === \"d\") {\r\n result.time?.set('D', val);\r\n } else {\r\n result.time?.set(v.unit, val);\r\n }\r\n } else {\r\n result.time = undefined;\r\n result.info = undefined;\r\n result.length = 0;\r\n break;\r\n }\r\n\r\n if (cursorPos !== null && cursorPos >= index && cursorPos <= index + length) {\r\n result.info = v;\r\n result.length = length;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"dateTimeInput.js","sourceRoot":"","sources":["../../../../components/date/dateTimeInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {HTMLAttributes, RefObject} from \"react\";\r\nimport MaskedInput from \"../input/maskedInput\";\r\nimport padStart from 'lodash/padStart';\r\nimport isEqual from 'lodash/isEqual';\r\nimport debounce from 'lodash/debounce';\r\nimport moment, {Moment} from \"moment\";\r\nimport {CalendarOutlined} from \"@ant-design/icons\";\r\nimport {Button, Calendar, Select, Tooltip} from \"antd\";\r\nimport {Key} from \"ts-key-enum\";\r\n\r\n\r\ninterface DateTimeInputProps extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\r\n mask: string\r\n value: Moment | null\r\n onChange?: (time: Moment | null) => void\r\n onInvalidValue?: (inputString: string) => void\r\n // allows to set no (null) date by datepicker\r\n allowClear?: boolean\r\n disabled?: boolean\r\n // disable only input component - useful when calendar popup is opened\r\n inputDisabled?: boolean\r\n minDateTime?: Moment\r\n maxDateTime?: Moment\r\n\r\n bordered?: boolean\r\n hidePopup?: boolean\r\n renderAsCalendar?: boolean\r\n\r\n // special methods for rendering date range\r\n defaultSelectedDate?: Moment\r\n markedDateInterval?: [Moment, Moment]\r\n onDateItemMouseDown?: (date: Moment) => void\r\n onDateItemMouseUp?: (date: Moment) => void\r\n onDateItemMouseOver?: (date: Moment) => void\r\n\r\n inputStyle?: React.CSSProperties\r\n getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;\r\n\r\n ignoreKeyStrokes?: boolean\r\n}\r\n\r\ninterface DateTimeInputState {\r\n valid: boolean\r\n currentPos: number | null\r\n currentInfo: MaskResult\r\n\r\n calendarSelectedDate: Moment\r\n}\r\n\r\ninterface MaskResult {\r\n time: Moment | undefined\r\n info: InfoEntry | undefined\r\n length: number\r\n}\r\n\r\ninterface InfoEntry {\r\n key: string | string[]\r\n min: number\r\n max: number\r\n unit: moment.unitOfTime.Base\r\n}\r\n\r\nconst DATE_TIME_DATA_MAP: InfoEntry[] = [\r\n {key: \"SSS\", min: 0, max: 999, unit: \"ms\"},\r\n {key: \"ss\", min: 0, max: 59, unit: \"s\"},\r\n {key: \"mm\", min: 0, max: 59, unit: \"m\"},\r\n {key: \"HH\", min: 0, max: 23, unit: \"h\"},\r\n {key: [\"YYYY\", \"YY\"], min: 1970, max: 9999, unit: \"y\"},\r\n {key: \"MM\", min: 1, max: 12, unit: \"M\"},\r\n {key: \"DD\", min: 1, max: 31, unit: \"d\"},\r\n];\r\n\r\nconst MIN_TIME = moment.unix(0);\r\nconst MAX_TIME = moment().add(1000, \"year\");\r\n\r\nexport default class DateTimeInput extends React.Component<DateTimeInputProps, DateTimeInputState> {\r\n private inputRef: RefObject<MaskedInput> = React.createRef();\r\n private today: Moment = moment();\r\n\r\n static allowTimesBeforeEpoch() {\r\n DATE_TIME_DATA_MAP[4].min = 1902;\r\n }\r\n\r\n constructor(props: Readonly<DateTimeInputProps>) {\r\n super(props);\r\n this.state = {\r\n valid: (!!props.value && props.value.isValid()) || (!!props.allowClear && props.value === null),\r\n currentPos: null,\r\n currentInfo: {\r\n info: undefined,\r\n time: undefined,\r\n length: 0\r\n },\r\n calendarSelectedDate: props.defaultSelectedDate?.clone() ?? props.value?.clone() ?? moment().startOf('day')\r\n };\r\n\r\n this.recalc = this.recalc.bind(this);\r\n this.increment = this.increment.bind(this);\r\n this.decrement = this.decrement.bind(this);\r\n this.onItemMouseOver = debounce(this.onItemMouseOver.bind(this), 100, {maxWait: 100});\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<DateTimeInputProps>, _prevState: Readonly<DateTimeInputState>, _snapshot?: any): void {\r\n if (!isEqual(prevProps, this.props) && this.inputRef.current !== null) {\r\n this.inputRef.current.input.selectionStart = this.state.currentPos;\r\n this.inputRef.current.input.selectionEnd = this.state.currentPos;\r\n if (prevProps.value !== this.props.value) {\r\n this.setState({valid: (!!this.props.value && this.props.value.isValid()) || (!!this.props.allowClear && this.props.value === null)});\r\n }\r\n }\r\n }\r\n\r\n get input() {\r\n return this.inputRef.current?.input;\r\n }\r\n\r\n focus() {\r\n this.inputRef.current?.focus();\r\n }\r\n\r\n recalc(): void {\r\n if (this.inputRef.current !== null) {\r\n this.setState({\r\n currentInfo: DateTimeInput.parseDateTimeFormat(this.inputRef.current.input.value, this.props.mask, this.inputRef.current.input.selectionStart),\r\n currentPos: this.inputRef.current.input.selectionStart,\r\n });\r\n }\r\n }\r\n\r\n private increment(): void {\r\n if (this.state.currentInfo.info !== undefined && !!this.props.value && DateTimeInput.isValid(this.state.currentInfo, this.props.value, 1)) {\r\n const unit = this.state.currentInfo.info.unit;\r\n this.incrementDate(unit);\r\n }\r\n\r\n this.inputRef.current?.focus();\r\n }\r\n\r\n private incrementDate(unit: moment.unitOfTime.Base) {\r\n if (!!this.props.value) {\r\n this.props.value.add(1, unit);\r\n if (!!this.props.maxDateTime && this.props.value.isAfter(this.props.maxDateTime)) {\r\n this.props.onChange?.(this.props.maxDateTime?.clone());\r\n } else {\r\n this.props.onChange?.(this.props.value.clone());\r\n }\r\n }\r\n }\r\n\r\n private decrement(): void {\r\n if (this.state.currentInfo.info !== undefined && !!this.props.value && DateTimeInput.isValid(this.state.currentInfo, this.props.value, -1)) {\r\n const unit = this.state.currentInfo.info.unit;\r\n this.decrementDate(unit);\r\n }\r\n\r\n this.inputRef.current?.focus();\r\n }\r\n\r\n private decrementDate(unit: moment.unitOfTime.Base) {\r\n if (!!this.props.value) {\r\n this.props.value.subtract(1, unit);\r\n if (!!this.props.minDateTime && this.props.value.isBefore(this.props.minDateTime)) {\r\n this.props.onChange?.(this.props.minDateTime?.clone());\r\n } else {\r\n this.props.onChange?.(this.props.value.clone());\r\n }\r\n }\r\n }\r\n\r\n onItemMouseOver(itemDate: Moment) {\r\n this.props.onDateItemMouseOver?.(itemDate);\r\n }\r\n\r\n private renderCalendarNavigation(value: Moment) {\r\n const start = 0;\r\n const end = 12;\r\n const monthOptions = [];\r\n\r\n const current = value.clone();\r\n const localeData = value.localeData();\r\n const months = [];\r\n for (let i = 0; i < 12; i++) {\r\n current.month(i);\r\n months.push(localeData.months(current));\r\n }\r\n\r\n for (let index = start; index < end; index++) {\r\n monthOptions.push(\r\n <Select.Option className=\"month-item\" key={`${index}`} value={`${index}`}>\r\n {months[index]}\r\n </Select.Option>,\r\n );\r\n }\r\n const month = value.month();\r\n\r\n const year = value.year();\r\n const options = [];\r\n for (let i = year - 4; i <= year + 2; i += 1) {\r\n options.push(\r\n <Select.Option key={i} value={i} className=\"year-item\">\r\n {i}\r\n </Select.Option>,\r\n );\r\n }\r\n return (\r\n <div style={{paddingBottom: 8}}>\r\n <div style={{float: \"left\", paddingBottom: 8, width: 140, display: \"flex\"}}>\r\n <Button style={{width: 10, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\r\n disabled={!DateTimeInput.checkDateValueValidity(this.state.calendarSelectedDate, -1, \"month\")}\r\n onClick={() => {\r\n this.state.calendarSelectedDate.subtract(1, \"month\");\r\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\r\n }}\r\n className=\"ant-picker-header-prev-btn\"><span\r\n className=\"ant-picker-prev-icon\"/></Button>\r\n <Select\r\n style={{flex: \"1 1 auto\"}}\r\n size=\"small\"\r\n dropdownMatchSelectWidth={false}\r\n dropdownStyle={{zIndex: 2070}}\r\n getPopupContainer={this.props.getPopupContainer}\r\n value={String(month)}\r\n onChange={selectedMonth => {\r\n const newValue = this.state.calendarSelectedDate.clone();\r\n newValue.month(parseInt(selectedMonth, 10));\r\n this.setState({calendarSelectedDate: newValue});\r\n }}\r\n >\r\n {monthOptions}\r\n </Select>\r\n <Button style={{width: 10, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\r\n className=\"ant-picker-header-next-btn\"\r\n onClick={() => {\r\n this.state.calendarSelectedDate.add(1, \"month\");\r\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\r\n }}>\r\n <span className=\"ant-picker-next-icon\"/>\r\n </Button>\r\n </div>\r\n <div style={{float: \"right\", paddingBottom: 8, width: 110}}>\r\n <Button style={{width: 12, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\r\n className=\"ant-picker-header-prev-btn\"\r\n onClick={() => {\r\n this.state.calendarSelectedDate.subtract(1, \"year\");\r\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\r\n }}>\r\n <span className=\"ant-picker-prev-icon\"/>\r\n </Button>\r\n <Select\r\n size=\"small\"\r\n style={{width: 84}}\r\n dropdownMatchSelectWidth={false}\r\n dropdownStyle={{zIndex: 2070}}\r\n getPopupContainer={this.props.getPopupContainer}\r\n onChange={newYear => {\r\n const newValue = this.state.calendarSelectedDate.clone().year(parseInt(newYear, 10));\r\n this.setState({calendarSelectedDate: newValue});\r\n }}\r\n value={String(year)}\r\n >\r\n {options}\r\n </Select>\r\n <Button style={{width: 12, padding: 0}} size=\"small\" type=\"text\" tabIndex={-1}\r\n className=\"ant-picker-header-next-btn\"\r\n onClick={() => {\r\n this.state.calendarSelectedDate.add(1, \"year\");\r\n this.setState({calendarSelectedDate: this.state.calendarSelectedDate});\r\n }}>\r\n <span className=\"ant-picker-next-icon\"/>\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n renderCalendar(): React.ReactElement {\r\n return (<div\r\n onKeyDown={!this.props.ignoreKeyStrokes ? (e) => {\r\n if (e.key === Key.Enter) {\r\n var tagName = (e.target as any)?.tagName?.toLowerCase();\r\n if (tagName !== \"input\") {\r\n this.props.onChange?.(this.state.calendarSelectedDate);\r\n }\r\n }\r\n } : undefined}\r\n onMouseOver={(e) => {\r\n if (e.target instanceof HTMLTableCellElement) {\r\n const date = moment(e.target.title, \"YYYY-MM-DD\");\r\n this.onItemMouseOver(date);\r\n }\r\n }}>\r\n <Calendar\r\n fullscreen={false}\r\n style={this.props.renderAsCalendar ? this.props.style : undefined}\r\n dateFullCellRender={((date: Moment) => {\r\n let className = date.isSame(this.today, \"date\") ? 'ant-picker-cell-inner ant-picker-calendar-date ant-picker-calendar-date-today' : 'ant-picker-cell-inner ant-picker-calendar-date';\r\n const markedDateInterval = this.props.markedDateInterval;\r\n if (markedDateInterval && (markedDateInterval[0].isBefore(date) || markedDateInterval[0].isSame(date, \"millisecond\")) &&\r\n (markedDateInterval[1].isAfter(date) || markedDateInterval[1].isSame(date, \"millisecond\"))) {\r\n className += \" date-picker-item-marked\";\r\n } else if (date.isSame(this.props.value, \"date\")) {\r\n className += \" date-picker-item-marked\";\r\n }\r\n return (\r\n <div className={className} style={{userSelect: \"none\"}}\r\n onKeyDown={(e) => {\r\n if (e.key === Key.Enter) {\r\n let newValue = this.props.value?.clone() ?? moment().startOf(\"day\");\r\n newValue = newValue.year(date.year()).month(date.month()).date(date.date());\r\n this.props.onChange?.(date);\r\n }\r\n }}\r\n onMouseDown={() => {\r\n let newValue = this.props.value?.clone() ?? moment().startOf(\"day\");\r\n newValue = newValue.year(date.year()).month(date.month()).date(date.date());\r\n this.props.onDateItemMouseDown?.(newValue);\r\n }}\r\n onMouseUp={() => {\r\n let newValue = this.props.value?.clone() ?? moment().startOf(\"day\");\r\n newValue = newValue.year(date.year()).month(date.month()).date(date.date());\r\n this.props.onDateItemMouseUp?.(newValue);\r\n }}\r\n >\r\n <div className={`ant-picker-calendar-date-value`}>\r\n {padStart(\"\" + date.date(), 2, '0')}\r\n </div>\r\n <div className={`ant-picker-calendar-date-content`}>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n headerRender={({value}) => {\r\n return this.renderCalendarNavigation(value);\r\n }}\r\n value={this.state.calendarSelectedDate}\r\n validRange={[this.props.minDateTime ?? MIN_TIME, this.props.maxDateTime ?? MAX_TIME]}\r\n onSelect={(value) => {\r\n if (window.event instanceof MouseEvent) {\r\n let newValue = this.props.value?.clone() ?? moment().startOf(\"day\");\r\n newValue = newValue.year(value.year()).month(value.month()).date(value.date());\r\n this.props.onChange?.(newValue);\r\n }\r\n this.setState({calendarSelectedDate: value});\r\n }}\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n renderInput() {\r\n const {\r\n mask,\r\n value,\r\n onChange,\r\n onInvalidValue,\r\n style,\r\n disabled,\r\n inputDisabled,\r\n bordered,\r\n hidePopup,\r\n renderAsCalendar,\r\n allowClear,\r\n minDateTime,\r\n maxDateTime,\r\n onDateItemMouseDown,\r\n onDateItemMouseOver,\r\n onDateItemMouseUp,\r\n markedDateInterval,\r\n inputStyle,\r\n getPopupContainer,\r\n ...props\r\n } = this.props;\r\n\r\n const isUpDisabled = disabled || this.state.currentInfo.info === undefined || !DateTimeInput.isValid(this.state.currentInfo, this.props.value, 1);\r\n const isDownDisabled = disabled || this.state.currentInfo.info === undefined || !DateTimeInput.isValid(this.state.currentInfo, this.props.value, -1);\r\n let className = \"custom-date-time-picker\";\r\n if (disabled || inputDisabled) {\r\n className += \" ant-input-number disabled ant-input-disabled readonly\";\r\n } else {\r\n className += \" ant-input-number\";\r\n }\r\n if (bordered === false) {\r\n className += \" ant-input-borderless\";\r\n }\r\n\r\n const maskedInputStyle = {color: this.state.valid ? \"inherit\" : \"red\", border: \"none\"};\r\n if (inputStyle) {\r\n Object.assign(maskedInputStyle, inputStyle);\r\n }\r\n\r\n return (\r\n <div style={bordered === false ? {...style, border: 0} : style} {...props} className={className}>\r\n <div className=\"ant-input-number-input-wrap\"\r\n onKeyDown={(event) => {\r\n if (event.keyCode === 38) { // up\r\n this.increment();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n } else if (event.keyCode === 40) { // down\r\n this.decrement();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }}>\r\n <MaskedInput mask={this.props.mask.replace(/[a-zA-Z]/g, '1')}\r\n bordered={bordered}\r\n ref={this.inputRef}\r\n style={maskedInputStyle}\r\n value={value?.locale(\"locale.d2000\").format(this.props.mask) ?? \"\"}\r\n onFocus={(event => {\r\n event.target.selectionStart = event.target.selectionEnd = this.state.currentPos;\r\n })}\r\n disabled={disabled || inputDisabled}\r\n onWheel={(event) => {\r\n if (event.deltaY > 0) {\r\n if (!isDownDisabled) {\r\n this.decrement();\r\n }\r\n }\r\n if (event.deltaY < 0) {\r\n if (!isUpDisabled) {\r\n this.increment();\r\n }\r\n }\r\n }}\r\n onMouseUp={this.recalc}\r\n onKeyUp={this.recalc}\r\n onChange={(event) => {\r\n const inputString = event.target.value;\r\n const value: MaskResult = DateTimeInput.parseDateTimeFormat(inputString, this.props.mask, event.target.selectionStart);\r\n if (value.time !== undefined) {\r\n if (this.props.minDateTime !== undefined && value.time.isBefore(this.props.minDateTime)) {\r\n value.time = this.props.minDateTime.clone();\r\n }\r\n\r\n if (this.props.maxDateTime !== undefined && value.time.isAfter(this.props.maxDateTime)) {\r\n value.time = this.props.maxDateTime.clone();\r\n }\r\n onChange?.(value.time.clone());\r\n } else if (!!this.props.allowClear && !inputString) {\r\n onChange?.(null);\r\n } else {\r\n onInvalidValue?.(inputString);\r\n }\r\n this.setState({\r\n valid: (value.time !== undefined && value.time.isValid()) || (!!this.props.allowClear && !inputString),\r\n currentInfo: value\r\n })\r\n }}/>\r\n </div>\r\n {!hidePopup && !renderAsCalendar && <div className={\"ant-input-number-handler-wrap\"}\r\n style={{\r\n width: 28,\r\n opacity: 1,\r\n height: \"100%\",\r\n textAlign: \"center\",\r\n cursor: \"pointer\",\r\n background: \"transparent\",\r\n border: bordered === false ? 0 : undefined\r\n }}\r\n onClick={(event) => {\r\n if (document.createEvent) {\r\n var ev = document.createEvent('HTMLEvents');\r\n ev.initEvent('contextmenu', true, false);\r\n event.target.dispatchEvent(ev);\r\n }\r\n }}\r\n >\r\n <CalendarOutlined style={{color: \"rgba(0,0,0,0.65)\", verticalAlign: \"middle\", marginTop: 2}}/>\r\n </div>}\r\n </div>\r\n );\r\n }\r\n\r\n render(): any {\r\n if (this.props.renderAsCalendar) {\r\n return this.renderCalendar();\r\n } else if (this.props.hidePopup) {\r\n return this.renderInput();\r\n } else {\r\n return (\r\n <Tooltip color={\"white\"} trigger={this.props.disabled ? [] : [\"contextMenu\"]}\r\n getPopupContainer={this.props.getPopupContainer}\r\n overlayInnerStyle={{maxHeight: \"100vh\", overflowY: \"auto\", overflowX: \"hidden\", width: 266}}\r\n onVisibleChange={(visible) => {\r\n if (visible) {\r\n this.setState({calendarSelectedDate: this.props.defaultSelectedDate?.clone() ?? this.props.value?.clone() ?? moment().startOf(\"day\")})\r\n }\r\n }}\r\n title={this.renderCalendar()}>\r\n {this.renderInput()}\r\n </Tooltip>\r\n );\r\n }\r\n }\r\n\r\n private static isValid(info: MaskResult, value: Moment | null, offset: number): boolean {\r\n const unit = info.info?.unit;\r\n return this.checkDateValueValidity(value, offset, unit);\r\n }\r\n\r\n private static checkDateValueValidity(value: moment.Moment | null, offset: number, unit: moment.unitOfTime.Base | undefined) {\r\n if (value === null) {\r\n return false;\r\n }\r\n let v = value.clone().add(offset, unit);\r\n return v.isValid() && v.isSameOrAfter(moment(0));\r\n }\r\n\r\n private static parseDateTimeFormat(value: string, mask: string, cursorPos: number | null): MaskResult {\r\n let result: MaskResult = {\r\n time: moment(0),\r\n info: undefined,\r\n length: 0,\r\n };\r\n\r\n for (let v of DATE_TIME_DATA_MAP) {\r\n let index: number = -1;\r\n let length: number = 0;\r\n\r\n if (Array.isArray(v.key)) {\r\n for (let x of v.key) {\r\n index = mask.indexOf(x);\r\n\r\n if (index !== -1) {\r\n length = x.length;\r\n break;\r\n }\r\n }\r\n } else {\r\n index = mask.indexOf(v.key);\r\n length = v.key.length;\r\n }\r\n\r\n if (index !== -1) {\r\n let val: number = Number(value.substring(index, index + length));\r\n\r\n if (!isNaN(val) && val >= v.min && val <= v.max) {\r\n if (v.unit === \"M\") {\r\n val--; // 0-11\r\n }\r\n\r\n if (v.unit === \"d\") {\r\n result.time?.set('D', val);\r\n } else {\r\n result.time?.set(v.unit, val);\r\n }\r\n } else {\r\n result.time = undefined;\r\n result.info = undefined;\r\n result.length = 0;\r\n break;\r\n }\r\n\r\n if (cursorPos !== null && cursorPos >= index && cursorPos <= index + length) {\r\n result.info = v;\r\n result.length = length;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}"]}
|
|
@@ -69,6 +69,8 @@ export default class SimpleStatusTextCellEditor extends React.Component {
|
|
|
69
69
|
this.setState({ value: value === undefined ? null : value });
|
|
70
70
|
}, onSelect: (value) => {
|
|
71
71
|
this.setState({ value: value === undefined ? null : value });
|
|
72
|
+
}, onMouseDown: () => {
|
|
73
|
+
this.updateValueImmediately();
|
|
72
74
|
}, open: this.state.opened, onDropdownVisibleChange: (visible) => {
|
|
73
75
|
this.setState({ opened: visible });
|
|
74
76
|
}, getPopupContainer: (_trigger) => {
|
|
@@ -86,7 +88,9 @@ export default class SimpleStatusTextCellEditor extends React.Component {
|
|
|
86
88
|
} }, menu));
|
|
87
89
|
} }, (_a = this.props.statusTexts) === null || _a === void 0 ? void 0 : _a.map((statusTextItem) => {
|
|
88
90
|
return React.createElement(Select.Option, { id: "select-value-" + statusTextItem.value, key: "" + statusTextItem.value, value: statusTextItem.value, title: statusTextItem.text, "data-optionvalue": "" + statusTextItem.value },
|
|
89
|
-
React.createElement("span", {
|
|
91
|
+
React.createElement("span", { onMouseDown: () => {
|
|
92
|
+
this.setState({ value: statusTextItem.value });
|
|
93
|
+
}, style: {
|
|
90
94
|
color: "rgba(0, 0, 0, 0.85)",
|
|
91
95
|
whiteSpace: "nowrap"
|
|
92
96
|
} }, `${statusTextItem.text} (${statusTextItem.value})`));
|
|
@@ -94,16 +98,19 @@ export default class SimpleStatusTextCellEditor extends React.Component {
|
|
|
94
98
|
}
|
|
95
99
|
updateValueFromPreselection() {
|
|
96
100
|
setTimeout(() => {
|
|
97
|
-
|
|
98
|
-
let selectables = Array.from((_b = (_a = this.wrappingComponent) === null || _a === void 0 ? void 0 : _a.getElementsByClassName("ant-select-item-option-active")) !== null && _b !== void 0 ? _b : []);
|
|
99
|
-
if (selectables.length > 0) {
|
|
100
|
-
const optionStringValue = (_c = selectables[0].dataset) === null || _c === void 0 ? void 0 : _c.optionvalue;
|
|
101
|
-
const optionValue = optionStringValue !== undefined ? Number.parseFloat(optionStringValue) : undefined;
|
|
102
|
-
if (optionValue) {
|
|
103
|
-
this.setState({ value: optionValue });
|
|
104
|
-
}
|
|
105
|
-
}
|
|
101
|
+
this.updateValueImmediately();
|
|
106
102
|
}, 200);
|
|
107
103
|
}
|
|
104
|
+
updateValueImmediately() {
|
|
105
|
+
var _a, _b, _c;
|
|
106
|
+
let selectables = Array.from((_b = (_a = this.wrappingComponent) === null || _a === void 0 ? void 0 : _a.getElementsByClassName("ant-select-item-option-active")) !== null && _b !== void 0 ? _b : []);
|
|
107
|
+
if (selectables.length > 0) {
|
|
108
|
+
const optionStringValue = (_c = selectables[0].dataset) === null || _c === void 0 ? void 0 : _c.optionvalue;
|
|
109
|
+
const optionValue = optionStringValue !== undefined ? Number.parseFloat(optionStringValue) : undefined;
|
|
110
|
+
if (optionValue) {
|
|
111
|
+
this.setState({ value: optionValue });
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
108
115
|
}
|
|
109
116
|
//# sourceMappingURL=simpleStatusTextCellEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpleStatusTextCellEditor.js","sourceRoot":"","sources":["../../../../../components/grid/cell/simpleStatusTextCellEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\r\nimport {Select} from \"antd\";\r\nimport {ICellEditor, ICellEditorParams} from \"ag-grid-community\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport ReactDOM from 'react-dom';\r\nimport {Key} from \"ts-key-enum\";\r\nimport debounce from \"lodash/debounce\";\r\nimport {RefSelectProps} from \"antd/es/select\";\r\n\r\nconst KEY_BACKSPACE = 8;\r\nconst KEY_DELETE = 46;\r\n\r\ninterface SimpleStatusTextCellEditorProperties extends ICellEditorParams {\r\n decimalSeparator?: string\r\n precision?: number\r\n statusTexts: { text: string, value: number }[];\r\n}\r\n\r\ninterface SimpleStatusTextCellEditorState {\r\n value: number | null\r\n cancelEdit: boolean\r\n opened: boolean\r\n}\r\n\r\nexport default class SimpleStatusTextCellEditor extends React.Component<SimpleStatusTextCellEditorProperties, SimpleStatusTextCellEditorState> implements ICellEditor {\r\n private selectComponent: RefSelectProps | null = null;\r\n private focusOpId: number | null = null;\r\n private wrappingComponent: HTMLDivElement | null = null;\r\n\r\n constructor(props: Readonly<SimpleStatusTextCellEditorProperties>) {\r\n super(props);\r\n this.state = this.getInitialState(props);\r\n this.updateValueFromPreselection = debounce(this.updateValueFromPreselection.bind(this), 200, {maxWait: 200});\r\n }\r\n\r\n getInitialState(props: Readonly<SimpleStatusTextCellEditorProperties>): SimpleStatusTextCellEditorState {\r\n let value: number | null;\r\n if (props.keyPress === KEY_BACKSPACE || props.keyPress === KEY_DELETE) {\r\n // if backspace or delete pressed, we clear the cell\r\n value = null;\r\n } else if (props.charPress) {\r\n // if a letter was pressed, we start with the letter\r\n const parsedValue = Number.parseInt(props.charPress);\r\n value = isNaN(parsedValue) ? props.value : parsedValue;\r\n } else {\r\n // otherwise we start with the current value\r\n value = props.value;\r\n }\r\n return {\r\n value: value,\r\n cancelEdit: false,\r\n opened: true,\r\n } as SimpleStatusTextCellEditorState;\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.focusOpId) {\r\n clearTimeout(this.focusOpId);\r\n }\r\n }\r\n\r\n afterGuiAttached() {\r\n this.focusOpId = window.setTimeout(() => {\r\n this.selectComponent?.focus();\r\n }, 200);\r\n }\r\n\r\n getValue() {\r\n return this.state.value;\r\n }\r\n\r\n isPopup(): boolean {\r\n return true;\r\n }\r\n\r\n isCancelBeforeStart(): boolean {\r\n return false;\r\n }\r\n\r\n isCancelAfterEnd() {\r\n return false;\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{width: \"100%\", minWidth: 150}}>\r\n <Select<number>\r\n ref={(component) => {\r\n this.selectComponent = component;\r\n }}\r\n size={\"small\"}\r\n virtual={false}\r\n className={\"select-with-one-item\"}\r\n showSearch\r\n dropdownMatchSelectWidth={false}\r\n style={{width: \"100%\", overflow: \"auto\", padding: 0, margin: 0}}\r\n dropdownStyle={{maxHeight: 400, overflow: 'auto'}}\r\n allowClear\r\n showAction={['focus', 'click']}\r\n filterOption={(inputValue, option) => {\r\n const inputToSearch = inputValue.toLocaleLowerCase(LocaleHolder.formattingLocale);\r\n return (option?.value !== undefined && LocaleHolder.formatNumber(option?.value).indexOf(inputToSearch) >= 0) || (option?.title?.toLocaleLowerCase(LocaleHolder.formattingLocale).indexOf(inputToSearch) >= 0);\r\n }}\r\n value={this.state.value !== null ? this.state.value : undefined}\r\n onChange={(value) => {\r\n this.setState({value: value === undefined ? null : value});\r\n }}\r\n onSelect={(value) => {\r\n this.setState({value: value === undefined ? null : value});\r\n }}\r\n open={this.state.opened}\r\n onDropdownVisibleChange={(visible) => {\r\n this.setState({opened: visible});\r\n }}\r\n getPopupContainer={(_trigger) => {\r\n // very nasty trick how to keep select's popup within focusable area of ag-grid cell editor popup (prevent closing cell editor when we click in select's dropdown area)\r\n return (ReactDOM.findDOMNode(this)?.parentNode ?? document.body) as HTMLElement;\r\n }}\r\n onInputKeyDown={(e) => {\r\n if (!e.altKey && (e.key === Key.ArrowUp || e.key === Key.ArrowDown)) {\r\n this.updateValueFromPreselection();\r\n }\r\n }}\r\n onSearch={() => {\r\n this.updateValueFromPreselection();\r\n }}\r\n dropdownRender={(menu) => {\r\n return (\r\n <div ref={(component) => {\r\n this.wrappingComponent = component;\r\n }}>\r\n {menu}\r\n </div>\r\n );\r\n }}\r\n >\r\n {this.props.statusTexts?.map((statusTextItem) => {\r\n return <Select.Option\r\n id={\"select-value-\" + statusTextItem.value}\r\n key={\"\" + statusTextItem.value}\r\n value={statusTextItem.value}\r\n title={statusTextItem.text}\r\n data-optionvalue={\"\" + statusTextItem.value}\r\n >\r\n <span style={{\r\n color: \"rgba(0, 0, 0, 0.85)\",\r\n whiteSpace: \"nowrap\"\r\n }}>{`${statusTextItem.text} (${statusTextItem.value})`}</span>\r\n </Select.Option>;\r\n })}\r\n </Select>\r\n </div>\r\n );\r\n }\r\n\r\n private updateValueFromPreselection() {\r\n setTimeout(() => {\r\n let selectables: HTMLElement[] = Array.from(this.wrappingComponent?.getElementsByClassName(\"ant-select-item-option-active\") ?? []) as HTMLElement[];\r\n if (selectables.length > 0) {\r\n const optionStringValue = selectables[0].dataset?.optionvalue;\r\n const optionValue = optionStringValue !== undefined ? Number.parseFloat(optionStringValue) : undefined\r\n if (optionValue) {\r\n this.setState({value: optionValue});\r\n }\r\n }\r\n }, 200)\r\n }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"simpleStatusTextCellEditor.js","sourceRoot":"","sources":["../../../../../components/grid/cell/simpleStatusTextCellEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\r\nimport {Select} from \"antd\";\r\nimport {ICellEditor, ICellEditorParams} from \"ag-grid-community\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport ReactDOM from 'react-dom';\r\nimport {Key} from \"ts-key-enum\";\r\nimport debounce from \"lodash/debounce\";\r\nimport {RefSelectProps} from \"antd/es/select\";\r\n\r\nconst KEY_BACKSPACE = 8;\r\nconst KEY_DELETE = 46;\r\n\r\ninterface SimpleStatusTextCellEditorProperties extends ICellEditorParams {\r\n decimalSeparator?: string\r\n precision?: number\r\n statusTexts: { text: string, value: number }[];\r\n}\r\n\r\ninterface SimpleStatusTextCellEditorState {\r\n value: number | null\r\n cancelEdit: boolean\r\n opened: boolean\r\n}\r\n\r\nexport default class SimpleStatusTextCellEditor extends React.Component<SimpleStatusTextCellEditorProperties, SimpleStatusTextCellEditorState> implements ICellEditor {\r\n private selectComponent: RefSelectProps | null = null;\r\n private focusOpId: number | null = null;\r\n private wrappingComponent: HTMLDivElement | null = null;\r\n\r\n constructor(props: Readonly<SimpleStatusTextCellEditorProperties>) {\r\n super(props);\r\n this.state = this.getInitialState(props);\r\n this.updateValueFromPreselection = debounce(this.updateValueFromPreselection.bind(this), 200, {maxWait: 200});\r\n }\r\n\r\n getInitialState(props: Readonly<SimpleStatusTextCellEditorProperties>): SimpleStatusTextCellEditorState {\r\n let value: number | null;\r\n if (props.keyPress === KEY_BACKSPACE || props.keyPress === KEY_DELETE) {\r\n // if backspace or delete pressed, we clear the cell\r\n value = null;\r\n } else if (props.charPress) {\r\n // if a letter was pressed, we start with the letter\r\n const parsedValue = Number.parseInt(props.charPress);\r\n value = isNaN(parsedValue) ? props.value : parsedValue;\r\n } else {\r\n // otherwise we start with the current value\r\n value = props.value;\r\n }\r\n return {\r\n value: value,\r\n cancelEdit: false,\r\n opened: true,\r\n } as SimpleStatusTextCellEditorState;\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.focusOpId) {\r\n clearTimeout(this.focusOpId);\r\n }\r\n }\r\n\r\n afterGuiAttached() {\r\n this.focusOpId = window.setTimeout(() => {\r\n this.selectComponent?.focus();\r\n }, 200);\r\n }\r\n\r\n getValue() {\r\n return this.state.value;\r\n }\r\n\r\n isPopup(): boolean {\r\n return true;\r\n }\r\n\r\n isCancelBeforeStart(): boolean {\r\n return false;\r\n }\r\n\r\n isCancelAfterEnd() {\r\n return false;\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{width: \"100%\", minWidth: 150}}>\r\n <Select<number>\r\n ref={(component) => {\r\n this.selectComponent = component;\r\n }}\r\n size={\"small\"}\r\n virtual={false}\r\n className={\"select-with-one-item\"}\r\n showSearch\r\n dropdownMatchSelectWidth={false}\r\n style={{width: \"100%\", overflow: \"auto\", padding: 0, margin: 0}}\r\n dropdownStyle={{maxHeight: 400, overflow: 'auto'}}\r\n allowClear\r\n showAction={['focus', 'click']}\r\n filterOption={(inputValue, option) => {\r\n const inputToSearch = inputValue.toLocaleLowerCase(LocaleHolder.formattingLocale);\r\n return (option?.value !== undefined && LocaleHolder.formatNumber(option?.value).indexOf(inputToSearch) >= 0) || (option?.title?.toLocaleLowerCase(LocaleHolder.formattingLocale).indexOf(inputToSearch) >= 0);\r\n }}\r\n value={this.state.value !== null ? this.state.value : undefined}\r\n onChange={(value) => {\r\n this.setState({value: value === undefined ? null : value});\r\n }}\r\n onSelect={(value) => {\r\n this.setState({value: value === undefined ? null : value});\r\n }}\r\n onMouseDown={() => {\r\n this.updateValueImmediately();\r\n }}\r\n open={this.state.opened}\r\n onDropdownVisibleChange={(visible) => {\r\n this.setState({opened: visible});\r\n }}\r\n getPopupContainer={(_trigger) => {\r\n // very nasty trick how to keep select's popup within focusable area of ag-grid cell editor popup (prevent closing cell editor when we click in select's dropdown area)\r\n return (ReactDOM.findDOMNode(this)?.parentNode ?? document.body) as HTMLElement;\r\n }}\r\n onInputKeyDown={(e) => {\r\n if (!e.altKey && (e.key === Key.ArrowUp || e.key === Key.ArrowDown)) {\r\n this.updateValueFromPreselection();\r\n }\r\n }}\r\n onSearch={() => {\r\n this.updateValueFromPreselection();\r\n }}\r\n dropdownRender={(menu) => {\r\n return (\r\n <div ref={(component) => {\r\n this.wrappingComponent = component;\r\n }}>\r\n {menu}\r\n </div>\r\n );\r\n }}\r\n >\r\n {this.props.statusTexts?.map((statusTextItem) => {\r\n return <Select.Option\r\n id={\"select-value-\" + statusTextItem.value}\r\n key={\"\" + statusTextItem.value}\r\n value={statusTextItem.value}\r\n title={statusTextItem.text}\r\n data-optionvalue={\"\" + statusTextItem.value}\r\n >\r\n <span\r\n onMouseDown={() => {\r\n this.setState({value: statusTextItem.value});\r\n }}\r\n style={{\r\n color: \"rgba(0, 0, 0, 0.85)\",\r\n whiteSpace: \"nowrap\"\r\n }}>\r\n {`${statusTextItem.text} (${statusTextItem.value})`}\r\n </span>\r\n </Select.Option>;\r\n })}\r\n </Select>\r\n </div>\r\n );\r\n }\r\n\r\n private updateValueFromPreselection() {\r\n setTimeout(() => {\r\n this.updateValueImmediately();\r\n }, 200)\r\n }\r\n\r\n private updateValueImmediately() {\r\n let selectables: HTMLElement[] = Array.from(this.wrappingComponent?.getElementsByClassName(\"ant-select-item-option-active\") ?? []) as HTMLElement[];\r\n if (selectables.length > 0) {\r\n const optionStringValue = selectables[0].dataset?.optionvalue;\r\n const optionValue = optionStringValue !== undefined ? Number.parseFloat(optionStringValue) : undefined\r\n if (optionValue) {\r\n this.setState({value: optionValue});\r\n }\r\n }\r\n }\r\n}"]}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { ColorResult
|
|
2
|
+
import { ColorResult } from "react-color";
|
|
3
3
|
import { RowStyleRule } from "d2coreui/components/grid/cell/tableDefaultRowStyleRules";
|
|
4
4
|
interface RowStylePickerProps {
|
|
5
5
|
rowStyleRule: RowStyleRule;
|
|
6
6
|
onChange: (rowStyleRule: RowStyleRule) => void;
|
|
7
7
|
}
|
|
8
8
|
interface RowStylePickerState {
|
|
9
|
-
visibleTextColorPopup: boolean;
|
|
10
|
-
visibleBgColorPopup: boolean;
|
|
11
9
|
disableColorEdit: boolean;
|
|
12
10
|
}
|
|
13
11
|
interface StyleChange {
|
|
@@ -17,10 +15,8 @@ interface StyleChange {
|
|
|
17
15
|
fontSize?: number | null;
|
|
18
16
|
}
|
|
19
17
|
export default class RowStylePicker extends React.Component<RowStylePickerProps, RowStylePickerState> {
|
|
20
|
-
onChangeDebounced: (style: StyleChange) => void;
|
|
21
18
|
constructor(props: Readonly<RowStylePickerProps>);
|
|
22
19
|
onChange(style: StyleChange): void;
|
|
23
|
-
getColorString(color: RGBColor | string | undefined): string | undefined;
|
|
24
20
|
render(): JSX.Element;
|
|
25
21
|
private getColor;
|
|
26
22
|
private getBackgroundColor;
|
|
@@ -1,33 +1,16 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { BgColorsOutlined, BoldOutlined,
|
|
3
|
-
import {
|
|
2
|
+
import { BgColorsOutlined, BoldOutlined, FontColorsOutlined } from "@ant-design/icons";
|
|
3
|
+
import { Button, Divider, InputNumber } from "antd";
|
|
4
4
|
import i18n from "d2core/i18n/i18n";
|
|
5
|
-
import { SketchPicker } from "react-color";
|
|
6
|
-
import debounce from "lodash/debounce";
|
|
7
5
|
import PlatformSpecific from "../../platformSpecific";
|
|
8
|
-
|
|
9
|
-
const presetColors = [
|
|
10
|
-
"#fff1f0", "#ffccc7", "#ffa39e", "#ff7875", "#ff4d4f", "#f5222d", "#cf1322", "#a8071a", "#820014", "#5c0011",
|
|
11
|
-
"#fff2e8", "#ffd8bf", "#ffbb96", "#ff9c6e", "#ff7a45", "#fa541c", "#d4380d", "#ad2102", "#871400", "#610b00",
|
|
12
|
-
"#fff7e6", "#ffe7ba", "#ffd591", "#ffc069", "#ffa940", "#fa8c16", "#d46b08", "#ad4e00", "#873800", "#612500",
|
|
13
|
-
"#feffe6", "#ffffb8", "#fffb8f", "#fff566", "#ffec3d", "#fadb14", "#d4b106", "#ad8b00", "#876800", "#614700",
|
|
14
|
-
"#f6ffed", "#d9f7be", "#b7eb8f", "#95de64", "#73d13d", "#52c41a", "#389e0d", "#237804", "#135200", "#092b00",
|
|
15
|
-
"#e6fffb", "#b5f5ec", "#87e8de", "#5cdbd3", "#36cfc9", "#13c2c2", "#08979c", "#006d75", "#00474f", "#002329",
|
|
16
|
-
"#e6f7ff", "#bae7ff", "#91d5ff", "#69c0ff", "#40a9ff", "#1890ff", "#096dd9", "#0050b3", "#003a8c", "#002766",
|
|
17
|
-
"#ffffff", "#fafafa", "#f5f5f5", "#e8e8e8", "#d9d9d9", "#bfbfbf", "#8c8c8c", "#595959", "#262626", "#000000",
|
|
18
|
-
"transparent",
|
|
19
|
-
];
|
|
6
|
+
import ColorPicker from "../../color/colorPicker";
|
|
20
7
|
export default class RowStylePicker extends React.Component {
|
|
21
8
|
constructor(props) {
|
|
22
9
|
super(props);
|
|
23
|
-
const disableColorEdit = PlatformSpecific.INSTANCE.configurationChangesDisabled();
|
|
24
10
|
this.state = {
|
|
25
|
-
|
|
26
|
-
visibleBgColorPopup: false,
|
|
27
|
-
disableColorEdit: disableColorEdit
|
|
11
|
+
disableColorEdit: PlatformSpecific.INSTANCE.configurationChangesDisabled(),
|
|
28
12
|
};
|
|
29
13
|
this.onChange = this.onChange.bind(this);
|
|
30
|
-
this.onChangeDebounced = debounce(this.onChange, 500, { maxWait: 500 });
|
|
31
14
|
}
|
|
32
15
|
onChange(style) {
|
|
33
16
|
const textColor = style.color;
|
|
@@ -81,14 +64,6 @@ export default class RowStylePicker extends React.Component {
|
|
|
81
64
|
}
|
|
82
65
|
this.props.onChange(rowStyleRule);
|
|
83
66
|
}
|
|
84
|
-
getColorString(color) {
|
|
85
|
-
if (typeof color === "object") {
|
|
86
|
-
return `rgba(${color.r},${color.g},${color.b},${color.a})`;
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
return color;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
67
|
render() {
|
|
93
68
|
return React.createElement(React.Fragment, null,
|
|
94
69
|
this.props.rowStyleRule.divider &&
|
|
@@ -97,49 +72,18 @@ export default class RowStylePicker extends React.Component {
|
|
|
97
72
|
React.createElement("div", { style: { flexGrow: 1 } }, i18n(this.props.rowStyleRule.name)),
|
|
98
73
|
this.props.rowStyleRule.styleEditor && this.props.rowStyleRule.styleEditor.color &&
|
|
99
74
|
React.createElement("div", { style: { marginBottom: 8, marginLeft: 16 } },
|
|
100
|
-
React.createElement(
|
|
101
|
-
this.
|
|
102
|
-
},
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
this.setState({ visibleTextColorPopup: false });
|
|
106
|
-
} },
|
|
107
|
-
React.createElement(CloseOutlined, null)),
|
|
108
|
-
React.createElement(Button, { size: "small", title: i18n("Set No Color"), style: { background: transparentBackgroundStyle, float: "right" }, onClick: () => {
|
|
109
|
-
this.onChange({ color: null });
|
|
110
|
-
this.setState({ visibleTextColorPopup: false });
|
|
111
|
-
} },
|
|
112
|
-
React.createElement(StopOutlined, { style: { color: "rgba(0,0,0,0.85)" } }))), content: React.createElement(SketchPicker, { color: this.getColor() ?
|
|
113
|
-
this.getColor() : { r: 0, g: 0, b: 0, a: 0 }, width: "250px", presetColors: presetColors, onChange: (color) => {
|
|
114
|
-
this.onChangeDebounced({ color: color });
|
|
115
|
-
} }) },
|
|
116
|
-
React.createElement(Badge, { count: React.createElement("span", { className: "ant-badge-count", style: { color: "#1890ff", background: "#e6f7ff", borderColor: "#91d5ff" } },
|
|
117
|
-
React.createElement(FontColorsOutlined, null)) },
|
|
118
|
-
React.createElement("div", { style: { background: transparentBackgroundStyle } },
|
|
119
|
-
React.createElement(Button, { title: i18n("Text Color"), disabled: this.state.disableColorEdit, style: { background: this.getColor() ? this.getColorString(this.getColor()) : "rgba(0,0,0,0)" } },
|
|
120
|
-
React.createElement("span", { role: "img", className: "anticon" })))))),
|
|
75
|
+
React.createElement(ColorPicker, { title: i18n("Background Color"), disabled: this.state.disableColorEdit, placement: "left", color: this.getColor(), onChangeComplete: color => {
|
|
76
|
+
this.onChange({ color: color });
|
|
77
|
+
}, onResetColor: () => {
|
|
78
|
+
this.onChange({ color: null });
|
|
79
|
+
}, badgeIcon: React.createElement(FontColorsOutlined, null), transparentColorAllowed: true })),
|
|
121
80
|
this.props.rowStyleRule.styleEditor && this.props.rowStyleRule.styleEditor.backgroundColor &&
|
|
122
81
|
React.createElement("div", { style: { marginBottom: 8, marginLeft: 16 } },
|
|
123
|
-
React.createElement(
|
|
124
|
-
this.
|
|
125
|
-
},
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
this.setState({ visibleBgColorPopup: false });
|
|
129
|
-
} },
|
|
130
|
-
React.createElement(CloseOutlined, null)),
|
|
131
|
-
React.createElement(Button, { size: "small", title: i18n("Set No Color"), style: { background: transparentBackgroundStyle, float: "right" }, onClick: () => {
|
|
132
|
-
this.onChange({ backgroundColor: null });
|
|
133
|
-
this.setState({ visibleBgColorPopup: false });
|
|
134
|
-
} },
|
|
135
|
-
React.createElement(StopOutlined, { style: { color: "rgba(0,0,0,0.85)" } }))), content: React.createElement(SketchPicker, { color: this.getBackgroundColor() ?
|
|
136
|
-
this.getBackgroundColor() : { r: 0, g: 0, b: 0, a: 0 }, width: "250px", presetColors: presetColors, onChange: (color) => {
|
|
137
|
-
this.onChangeDebounced({ backgroundColor: color });
|
|
138
|
-
} }) },
|
|
139
|
-
React.createElement(Badge, { count: React.createElement("span", { className: "ant-badge-count", style: { color: "#1890ff", background: "#e6f7ff", borderColor: "#91d5ff" } },
|
|
140
|
-
React.createElement(BgColorsOutlined, null)) },
|
|
141
|
-
React.createElement(Button, { title: i18n("Background Color"), disabled: this.state.disableColorEdit, style: { background: this.getBackgroundColor() ? this.getColorString(this.getBackgroundColor()) : transparentBackgroundStyle } },
|
|
142
|
-
React.createElement("span", { role: "img", className: "anticon" }))))),
|
|
82
|
+
React.createElement(ColorPicker, { title: i18n("Background Color"), disabled: this.state.disableColorEdit, placement: "left", color: this.getBackgroundColor(), onChangeComplete: color => {
|
|
83
|
+
this.onChange({ backgroundColor: color });
|
|
84
|
+
}, onResetColor: () => {
|
|
85
|
+
this.onChange({ backgroundColor: null });
|
|
86
|
+
}, badgeIcon: React.createElement(BgColorsOutlined, null), transparentColorAllowed: true })),
|
|
143
87
|
this.props.rowStyleRule.styleEditor && this.props.rowStyleRule.styleEditor.fontWeight &&
|
|
144
88
|
React.createElement("div", { style: { marginBottom: 8, marginLeft: 16 } },
|
|
145
89
|
React.createElement(Button, { icon: React.createElement(BoldOutlined, null), disabled: this.state.disableColorEdit, type: this.props.rowStyleRule.style.fontWeight === "bold" ? "primary" : "default", onClick: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rowStylePicker.js","sourceRoot":"","sources":["../../../../../components/grid/config/rowStylePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {BgColorsOutlined, BoldOutlined, CloseOutlined, FontColorsOutlined, StopOutlined} from \"@ant-design/icons\";\r\nimport {Badge, Button, Divider, InputNumber, Popover} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {ColorResult, RGBColor, SketchPicker} from \"react-color\";\r\nimport debounce from \"lodash/debounce\";\r\nimport {RowStyleRule} from \"d2coreui/components/grid/cell/tableDefaultRowStyleRules\";\r\nimport PlatformSpecific from \"../../platformSpecific\";\r\n\r\nconst transparentBackgroundStyle = \"url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==\\\") left center\"\r\nconst presetColors = [\r\n \"#fff1f0\", \"#ffccc7\", \"#ffa39e\", \"#ff7875\", \"#ff4d4f\", \"#f5222d\", \"#cf1322\", \"#a8071a\", \"#820014\", \"#5c0011\",\r\n \"#fff2e8\", \"#ffd8bf\", \"#ffbb96\", \"#ff9c6e\", \"#ff7a45\", \"#fa541c\", \"#d4380d\", \"#ad2102\", \"#871400\", \"#610b00\",\r\n \"#fff7e6\", \"#ffe7ba\", \"#ffd591\", \"#ffc069\", \"#ffa940\", \"#fa8c16\", \"#d46b08\", \"#ad4e00\", \"#873800\", \"#612500\",\r\n \"#feffe6\", \"#ffffb8\", \"#fffb8f\", \"#fff566\", \"#ffec3d\", \"#fadb14\", \"#d4b106\", \"#ad8b00\", \"#876800\", \"#614700\",\r\n \"#f6ffed\", \"#d9f7be\", \"#b7eb8f\", \"#95de64\", \"#73d13d\", \"#52c41a\", \"#389e0d\", \"#237804\", \"#135200\", \"#092b00\",\r\n \"#e6fffb\", \"#b5f5ec\", \"#87e8de\", \"#5cdbd3\", \"#36cfc9\", \"#13c2c2\", \"#08979c\", \"#006d75\", \"#00474f\", \"#002329\",\r\n \"#e6f7ff\", \"#bae7ff\", \"#91d5ff\", \"#69c0ff\", \"#40a9ff\", \"#1890ff\", \"#096dd9\", \"#0050b3\", \"#003a8c\", \"#002766\",\r\n \"#ffffff\", \"#fafafa\", \"#f5f5f5\", \"#e8e8e8\", \"#d9d9d9\", \"#bfbfbf\", \"#8c8c8c\", \"#595959\", \"#262626\", \"#000000\",\r\n \"transparent\",\r\n];\r\n\r\ninterface RowStylePickerProps {\r\n rowStyleRule: RowStyleRule\r\n onChange: (rowStyleRule: RowStyleRule) => void\r\n}\r\n\r\ninterface RowStylePickerState {\r\n visibleTextColorPopup: boolean\r\n visibleBgColorPopup: boolean\r\n disableColorEdit: boolean\r\n}\r\n\r\ninterface StyleChange {\r\n color?: ColorResult | null\r\n backgroundColor?: ColorResult | null\r\n fontWeight?: string | null\r\n fontSize?: number | null\r\n}\r\n\r\nexport default class RowStylePicker extends React.Component<RowStylePickerProps, RowStylePickerState> {\r\n onChangeDebounced: (style: StyleChange) => void;\r\n\r\n constructor(props: Readonly<RowStylePickerProps>) {\r\n super(props);\r\n const disableColorEdit = PlatformSpecific.INSTANCE.configurationChangesDisabled();\r\n this.state = {\r\n visibleTextColorPopup: false,\r\n visibleBgColorPopup: false,\r\n disableColorEdit: disableColorEdit\r\n };\r\n this.onChange = this.onChange.bind(this);\r\n this.onChangeDebounced = debounce(this.onChange, 500, {maxWait: 500});\r\n }\r\n\r\n onChange(style: StyleChange): void {\r\n const textColor = style.color;\r\n const rowStyleRule = this.props.rowStyleRule;\r\n if (textColor === null) {\r\n delete rowStyleRule.style.color;\r\n } else if (typeof textColor === 'object') {\r\n if (textColor.rgb.r === 0 && textColor.rgb.g === 0 && textColor.rgb.b === 0 && textColor.rgb.a === 0) {\r\n delete rowStyleRule.style.color;\r\n } else if (textColor.rgb.a === 0 || textColor.rgb.a === 1) {\r\n rowStyleRule.style.color = textColor.hex;\r\n } else {\r\n rowStyleRule.style.color = textColor.rgb;\r\n }\r\n } else if (textColor !== undefined) {\r\n rowStyleRule.style.color = textColor;\r\n }\r\n\r\n const backgroundColor = style.backgroundColor;\r\n if (backgroundColor === null) {\r\n delete rowStyleRule.style.backgroundColor;\r\n } else if (typeof backgroundColor === 'object') {\r\n if (backgroundColor.rgb.r === 0 && backgroundColor.rgb.g === 0 && backgroundColor.rgb.b === 0 && backgroundColor.rgb.a === 0) {\r\n delete rowStyleRule.style.backgroundColor;\r\n } else if (backgroundColor.rgb.a === 0 || backgroundColor.rgb.a === 1) {\r\n rowStyleRule.style.backgroundColor = backgroundColor.hex;\r\n } else {\r\n rowStyleRule.style.backgroundColor = backgroundColor.rgb;\r\n }\r\n } else if (backgroundColor !== undefined) {\r\n rowStyleRule.style.backgroundColor = backgroundColor;\r\n }\r\n\r\n\r\n if (style.fontWeight === null) {\r\n delete rowStyleRule.style.fontWeight;\r\n } else if (style.fontWeight !== undefined) {\r\n rowStyleRule.style.fontWeight = style.fontWeight;\r\n }\r\n if (style.fontSize === null) {\r\n delete rowStyleRule.style.fontSize;\r\n } else if (style.fontSize !== undefined) {\r\n rowStyleRule.style.fontSize = style.fontSize;\r\n }\r\n this.props.onChange(rowStyleRule);\r\n }\r\n\r\n getColorString(color: RGBColor | string | undefined): string | undefined {\r\n if (typeof color === \"object\") {\r\n return `rgba(${color.r},${color.g},${color.b},${color.a})`;\r\n } else {\r\n return color;\r\n }\r\n }\r\n\r\n render() {\r\n return <>\r\n {this.props.rowStyleRule.divider &&\r\n <Divider style={{fontSize: 12}}>{i18n(this.props.rowStyleRule.divider)}</Divider>}\r\n <div style={{display: \"flex\"}}>\r\n <div style={{flexGrow: 1}}>\r\n {i18n(this.props.rowStyleRule.name)}\r\n </div>\r\n {this.props.rowStyleRule.styleEditor && this.props.rowStyleRule.styleEditor.color &&\r\n <div style={{marginBottom: 8, marginLeft: 16}}>\r\n <Popover placement=\"left\"\r\n trigger={this.state.disableColorEdit ? \"\" : \"click\"}\r\n visible={this.state.visibleTextColorPopup}\r\n onVisibleChange={(visible) => {\r\n this.setState({visibleTextColorPopup: visible});\r\n }}\r\n title={\r\n <div>{i18n(\"Text Color\")}\r\n <Button size=\"small\" title={i18n(\"Close\")}\r\n style={{float: \"right\", paddingLeft: 8, border: \"none\"}}\r\n key=\"close\" onClick={() => {\r\n this.setState({visibleTextColorPopup: false});\r\n }}>\r\n <CloseOutlined/>\r\n </Button>\r\n <Button size=\"small\" title={i18n(\"Set No Color\")}\r\n style={{background: transparentBackgroundStyle, float: \"right\"}}\r\n onClick={() => {\r\n this.onChange({color: null});\r\n this.setState({visibleTextColorPopup: false});\r\n }}\r\n >\r\n <StopOutlined style={{color: \"rgba(0,0,0,0.85)\"}}/>\r\n </Button>\r\n </div>}\r\n content={\r\n <SketchPicker\r\n color={this.getColor() ?\r\n this.getColor() : {r: 0, g: 0, b: 0, a: 0}}\r\n width={\"250px\"}\r\n presetColors={presetColors}\r\n onChange={(color) => {\r\n this.onChangeDebounced({color: color})\r\n }}\r\n />}\r\n >\r\n <Badge\r\n count={<span className=\"ant-badge-count\"\r\n style={{color: \"#1890ff\", background: \"#e6f7ff\", borderColor: \"#91d5ff\"}}>\r\n <FontColorsOutlined/>\r\n </span>}>\r\n <div style={{background: transparentBackgroundStyle}}>\r\n <Button title={i18n(\"Text Color\")}\r\n disabled={this.state.disableColorEdit}\r\n style={{background: this.getColor() ? this.getColorString(this.getColor()) : \"rgba(0,0,0,0)\"}}>\r\n <span role=\"img\" className=\"anticon\"/>\r\n </Button>\r\n </div>\r\n </Badge>\r\n </Popover>\r\n </div>}\r\n {this.props.rowStyleRule.styleEditor && this.props.rowStyleRule.styleEditor.backgroundColor &&\r\n <div style={{marginBottom: 8, marginLeft: 16}}>\r\n <Popover placement=\"left\"\r\n trigger={this.state.disableColorEdit ? \"\" : \"click\"}\r\n visible={this.state.visibleBgColorPopup}\r\n onVisibleChange={(visible) => {\r\n this.setState({visibleBgColorPopup: visible});\r\n }}\r\n title={\r\n <div>{i18n(\"Background Color\")}\r\n <Button size=\"small\" title={i18n(\"Close\")}\r\n style={{float: \"right\", paddingLeft: 8, border: \"none\"}}\r\n key=\"close\" onClick={() => {\r\n this.setState({visibleBgColorPopup: false});\r\n }}>\r\n <CloseOutlined/>\r\n </Button>\r\n <Button size=\"small\" title={i18n(\"Set No Color\")}\r\n style={{background: transparentBackgroundStyle, float: \"right\"}}\r\n onClick={() => {\r\n this.onChange({backgroundColor: null});\r\n this.setState({visibleBgColorPopup: false});\r\n }}\r\n >\r\n <StopOutlined style={{color: \"rgba(0,0,0,0.85)\"}}/>\r\n </Button>\r\n </div>} content={\r\n <SketchPicker color={this.getBackgroundColor() ?\r\n this.getBackgroundColor() : {r: 0, g: 0, b: 0, a: 0}}\r\n width={\"250px\"}\r\n presetColors={presetColors}\r\n onChange={(color) => {\r\n this.onChangeDebounced({backgroundColor: color})\r\n }}/>\r\n }>\r\n <Badge count={\r\n <span className=\"ant-badge-count\"\r\n style={{color: \"#1890ff\", background: \"#e6f7ff\", borderColor: \"#91d5ff\"}}>\r\n <BgColorsOutlined/>\r\n </span>\r\n }>\r\n <Button title={i18n(\"Background Color\")}\r\n disabled={this.state.disableColorEdit}\r\n style={{background: this.getBackgroundColor() ? this.getColorString(this.getBackgroundColor()) : transparentBackgroundStyle}}>\r\n <span role=\"img\" className=\"anticon\"/>\r\n </Button>\r\n </Badge>\r\n </Popover>\r\n </div>}\r\n {this.props.rowStyleRule.styleEditor && this.props.rowStyleRule.styleEditor.fontWeight &&\r\n <div style={{marginBottom: 8, marginLeft: 16}}>\r\n <Button icon={<BoldOutlined/>}\r\n disabled={this.state.disableColorEdit}\r\n type={this.props.rowStyleRule.style.fontWeight === \"bold\" ? \"primary\" : \"default\"}\r\n onClick={() => {\r\n this.onChange({fontWeight: this.props.rowStyleRule.style.fontWeight === \"bold\" ? null : \"bold\"})\r\n }}\r\n />\r\n </div>}\r\n {this.props.rowStyleRule.styleEditor && this.props.rowStyleRule.styleEditor.fontSize &&\r\n <div style={{marginBottom: 8, marginLeft: 16}}>\r\n <InputNumber\r\n style={{width: 70}}\r\n className=\"custom\"\r\n min={10}\r\n max={50}\r\n value={this.getFontSize()}\r\n onChange={(fontSize) => {\r\n if (fontSize && typeof fontSize === \"number\") {\r\n this.onChange({fontSize: fontSize});\r\n }\r\n }}\r\n />\r\n </div>}\r\n </div>\r\n </>;\r\n }\r\n\r\n private getColor(): string | RGBColor | undefined {\r\n // @ts-ignore\r\n return this.props.rowStyleRule.style.color;\r\n }\r\n\r\n private getBackgroundColor(): string | RGBColor | undefined {\r\n // @ts-ignore\r\n return this.props.rowStyleRule.style.backgroundColor;\r\n }\r\n\r\n private getFontSize() : number {\r\n return this.props.rowStyleRule.style.fontSize as number;\r\n }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"rowStylePicker.js","sourceRoot":"","sources":["../../../../../components/grid/config/rowStylePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {BgColorsOutlined, BoldOutlined, FontColorsOutlined} from \"@ant-design/icons\";\r\nimport {Button, Divider, InputNumber} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {ColorResult, RGBColor} from \"react-color\";\r\nimport {RowStyleRule} from \"d2coreui/components/grid/cell/tableDefaultRowStyleRules\";\r\nimport PlatformSpecific from \"../../platformSpecific\";\r\nimport ColorPicker from \"../../color/colorPicker\";\r\n\r\ninterface RowStylePickerProps {\r\n rowStyleRule: RowStyleRule\r\n onChange: (rowStyleRule: RowStyleRule) => void\r\n}\r\n\r\ninterface RowStylePickerState {\r\n disableColorEdit: boolean\r\n}\r\n\r\ninterface StyleChange {\r\n color?: ColorResult | null\r\n backgroundColor?: ColorResult | null\r\n fontWeight?: string | null\r\n fontSize?: number | null\r\n}\r\n\r\nexport default class RowStylePicker extends React.Component<RowStylePickerProps, RowStylePickerState> {\r\n\r\n constructor(props: Readonly<RowStylePickerProps>) {\r\n super(props);\r\n\r\n this.state = {\r\n disableColorEdit: PlatformSpecific.INSTANCE.configurationChangesDisabled(),\r\n }\r\n\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n\r\n onChange(style: StyleChange): void {\r\n const textColor = style.color;\r\n const rowStyleRule = this.props.rowStyleRule;\r\n if (textColor === null) {\r\n delete rowStyleRule.style.color;\r\n } else if (typeof textColor === 'object') {\r\n if (textColor.rgb.r === 0 && textColor.rgb.g === 0 && textColor.rgb.b === 0 && textColor.rgb.a === 0) {\r\n delete rowStyleRule.style.color;\r\n } else if (textColor.rgb.a === 0 || textColor.rgb.a === 1) {\r\n rowStyleRule.style.color = textColor.hex;\r\n } else {\r\n rowStyleRule.style.color = textColor.rgb;\r\n }\r\n } else if (textColor !== undefined) {\r\n rowStyleRule.style.color = textColor;\r\n }\r\n\r\n const backgroundColor = style.backgroundColor;\r\n if (backgroundColor === null) {\r\n delete rowStyleRule.style.backgroundColor;\r\n } else if (typeof backgroundColor === 'object') {\r\n if (backgroundColor.rgb.r === 0 && backgroundColor.rgb.g === 0 && backgroundColor.rgb.b === 0 && backgroundColor.rgb.a === 0) {\r\n delete rowStyleRule.style.backgroundColor;\r\n } else if (backgroundColor.rgb.a === 0 || backgroundColor.rgb.a === 1) {\r\n rowStyleRule.style.backgroundColor = backgroundColor.hex;\r\n } else {\r\n rowStyleRule.style.backgroundColor = backgroundColor.rgb;\r\n }\r\n } else if (backgroundColor !== undefined) {\r\n rowStyleRule.style.backgroundColor = backgroundColor;\r\n }\r\n\r\n\r\n if (style.fontWeight === null) {\r\n delete rowStyleRule.style.fontWeight;\r\n } else if (style.fontWeight !== undefined) {\r\n rowStyleRule.style.fontWeight = style.fontWeight;\r\n }\r\n if (style.fontSize === null) {\r\n delete rowStyleRule.style.fontSize;\r\n } else if (style.fontSize !== undefined) {\r\n rowStyleRule.style.fontSize = style.fontSize;\r\n }\r\n this.props.onChange(rowStyleRule);\r\n }\r\n\r\n render() {\r\n return <>\r\n {this.props.rowStyleRule.divider &&\r\n <Divider style={{fontSize: 12}}>{i18n(this.props.rowStyleRule.divider)}</Divider>}\r\n <div style={{display: \"flex\"}}>\r\n <div style={{flexGrow: 1}}>\r\n {i18n(this.props.rowStyleRule.name)}\r\n </div>\r\n {this.props.rowStyleRule.styleEditor && this.props.rowStyleRule.styleEditor.color &&\r\n <div style={{marginBottom: 8, marginLeft: 16}}>\r\n <ColorPicker\r\n title={i18n(\"Background Color\")}\r\n disabled={this.state.disableColorEdit}\r\n placement=\"left\"\r\n color={this.getColor()}\r\n onChangeComplete={color => {\r\n this.onChange({color: color})\r\n }}\r\n onResetColor={() => {\r\n this.onChange({color: null})\r\n }}\r\n badgeIcon={<FontColorsOutlined/>}\r\n transparentColorAllowed\r\n />\r\n </div>\r\n }\r\n {this.props.rowStyleRule.styleEditor && this.props.rowStyleRule.styleEditor.backgroundColor &&\r\n <div style={{marginBottom: 8, marginLeft: 16}}>\r\n <ColorPicker\r\n title={i18n(\"Background Color\")}\r\n disabled={this.state.disableColorEdit}\r\n placement=\"left\"\r\n color={this.getBackgroundColor()}\r\n onChangeComplete={color => {\r\n this.onChange({backgroundColor: color})\r\n }}\r\n onResetColor={() => {\r\n this.onChange({backgroundColor: null})\r\n }}\r\n badgeIcon={<BgColorsOutlined/>}\r\n transparentColorAllowed\r\n />\r\n </div>\r\n }\r\n {this.props.rowStyleRule.styleEditor && this.props.rowStyleRule.styleEditor.fontWeight &&\r\n <div style={{marginBottom: 8, marginLeft: 16}}>\r\n <Button icon={<BoldOutlined/>}\r\n disabled={this.state.disableColorEdit}\r\n type={this.props.rowStyleRule.style.fontWeight === \"bold\" ? \"primary\" : \"default\"}\r\n onClick={() => {\r\n this.onChange({fontWeight: this.props.rowStyleRule.style.fontWeight === \"bold\" ? null : \"bold\"})\r\n }}\r\n />\r\n </div>}\r\n {this.props.rowStyleRule.styleEditor && this.props.rowStyleRule.styleEditor.fontSize &&\r\n <div style={{marginBottom: 8, marginLeft: 16}}>\r\n <InputNumber\r\n style={{width: 70}}\r\n className=\"custom\"\r\n min={10}\r\n max={50}\r\n value={this.getFontSize()}\r\n onChange={(fontSize) => {\r\n if (fontSize && typeof fontSize === \"number\") {\r\n this.onChange({fontSize: fontSize});\r\n }\r\n }}\r\n />\r\n </div>}\r\n </div>\r\n </>;\r\n }\r\n\r\n private getColor(): string | RGBColor | undefined {\r\n // @ts-ignore\r\n return this.props.rowStyleRule.style.color;\r\n }\r\n\r\n private getBackgroundColor(): string | RGBColor | undefined {\r\n // @ts-ignore\r\n return this.props.rowStyleRule.style.backgroundColor;\r\n }\r\n\r\n private getFontSize() : number {\r\n return this.props.rowStyleRule.style.fontSize as number;\r\n }\r\n}"]}
|
|
@@ -147,7 +147,7 @@ export default class DataGrid extends React.Component<DataGridProps, DataGridSta
|
|
|
147
147
|
table_context: any;
|
|
148
148
|
private wrappingDiv;
|
|
149
149
|
constructor(props: Readonly<DataGridProps>);
|
|
150
|
-
private static
|
|
150
|
+
private static getCellValue;
|
|
151
151
|
textCustomComparator(filter: string, value: any, filterText: string): boolean;
|
|
152
152
|
componentDidUpdate(prevProps: DataGridProps): void;
|
|
153
153
|
setColumnState(columnModel: ColumnState[]): void;
|