d2coreui 21.0.31 → 21.0.32

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.
@@ -64,7 +64,8 @@ export default class SimpleStatusTextCellEditor extends React.Component {
64
64
  }, size: "small", virtual: false, className: "select-with-one-item", showSearch: true, dropdownMatchSelectWidth: false, style: { width: "100%", overflow: "auto", padding: 0, margin: 0 }, dropdownStyle: { maxHeight: 400, overflow: 'auto' }, allowClear: true, showAction: ['focus', 'click'], filterOption: (inputValue, option) => {
65
65
  var _a;
66
66
  const inputToSearch = inputValue.toLocaleLowerCase(LocaleHolder.formattingLocale);
67
- return ((option === null || option === void 0 ? void 0 : option.value) !== undefined && LocaleHolder.formatNumber(option === null || option === void 0 ? void 0 : option.value).indexOf(inputToSearch) >= 0) || (((_a = option === null || option === void 0 ? void 0 : option.title) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase(LocaleHolder.formattingLocale).indexOf(inputToSearch)) >= 0);
67
+ const value = option === null || option === void 0 ? void 0 : option.value;
68
+ return (value !== undefined && value !== null && typeof value === "number" && LocaleHolder.formatNumber(value).indexOf(inputToSearch) >= 0) || (((_a = option === null || option === void 0 ? void 0 : option.title) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase(LocaleHolder.formattingLocale).indexOf(inputToSearch)) >= 0);
68
69
  }, value: this.state.value !== null ? this.state.value : undefined, onChange: (value) => {
69
70
  this.setState({ value: value === undefined ? null : value });
70
71
  }, onSelect: (value) => {
@@ -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';\nimport {Select} from \"antd\";\nimport {ICellEditor, ICellEditorParams} from \"ag-grid-community\";\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\nimport ReactDOM from 'react-dom';\nimport {Key} from \"ts-key-enum\";\nimport debounce from \"lodash/debounce\";\nimport {RefSelectProps} from \"antd/es/select\";\n\nconst KEY_BACKSPACE = 8;\nconst KEY_DELETE = 46;\n\ninterface SimpleStatusTextCellEditorProperties extends ICellEditorParams {\n decimalSeparator?: string\n precision?: number\n statusTexts: { text: string, value: number }[];\n}\n\ninterface SimpleStatusTextCellEditorState {\n value: number | null\n cancelEdit: boolean\n opened: boolean\n}\n\nexport default class SimpleStatusTextCellEditor extends React.Component<SimpleStatusTextCellEditorProperties, SimpleStatusTextCellEditorState> implements ICellEditor {\n private selectComponent: RefSelectProps | null = null;\n private focusOpId: number | null = null;\n private wrappingComponent: HTMLDivElement | null = null;\n\n constructor(props: Readonly<SimpleStatusTextCellEditorProperties>) {\n super(props);\n this.state = this.getInitialState(props);\n this.updateValueFromPreselection = debounce(this.updateValueFromPreselection.bind(this), 200, {maxWait: 200});\n }\n\n getInitialState(props: Readonly<SimpleStatusTextCellEditorProperties>): SimpleStatusTextCellEditorState {\n let value: number | null;\n if (props.keyPress === KEY_BACKSPACE || props.keyPress === KEY_DELETE) {\n // if backspace or delete pressed, we clear the cell\n value = null;\n } else if (props.charPress) {\n // if a letter was pressed, we start with the letter\n const parsedValue = Number.parseInt(props.charPress);\n value = isNaN(parsedValue) ? props.value : parsedValue;\n } else {\n // otherwise we start with the current value\n value = props.value;\n }\n return {\n value: value,\n cancelEdit: false,\n opened: true,\n } as SimpleStatusTextCellEditorState;\n }\n\n componentWillUnmount() {\n if (this.focusOpId) {\n clearTimeout(this.focusOpId);\n }\n }\n\n afterGuiAttached() {\n this.focusOpId = window.setTimeout(() => {\n this.selectComponent?.focus();\n }, 200);\n }\n\n getValue() {\n return this.state.value;\n }\n\n isPopup(): boolean {\n return true;\n }\n\n isCancelBeforeStart(): boolean {\n return false;\n }\n\n isCancelAfterEnd() {\n return false;\n }\n\n render() {\n return (\n <div style={{width: \"100%\", minWidth: 150}}>\n <Select<number>\n ref={(component) => {\n this.selectComponent = component;\n }}\n size={\"small\"}\n virtual={false}\n className={\"select-with-one-item\"}\n showSearch\n dropdownMatchSelectWidth={false}\n style={{width: \"100%\", overflow: \"auto\", padding: 0, margin: 0}}\n dropdownStyle={{maxHeight: 400, overflow: 'auto'}}\n allowClear\n showAction={['focus', 'click']}\n filterOption={(inputValue, option) => {\n const inputToSearch = inputValue.toLocaleLowerCase(LocaleHolder.formattingLocale);\n return (option?.value !== undefined && LocaleHolder.formatNumber(option?.value).indexOf(inputToSearch) >= 0) || (option?.title?.toLocaleLowerCase(LocaleHolder.formattingLocale).indexOf(inputToSearch) >= 0);\n }}\n value={this.state.value !== null ? this.state.value : undefined}\n onChange={(value) => {\n this.setState({value: value === undefined ? null : value});\n }}\n onSelect={(value) => {\n this.setState({value: value === undefined ? null : value});\n }}\n onMouseDown={() => {\n this.updateValueImmediately();\n }}\n open={this.state.opened}\n onDropdownVisibleChange={(visible) => {\n this.setState({opened: visible});\n }}\n getPopupContainer={(_trigger) => {\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)\n return (ReactDOM.findDOMNode(this)?.parentNode ?? document.body) as HTMLElement;\n }}\n onInputKeyDown={(e) => {\n if (!e.altKey && (e.key === Key.ArrowUp || e.key === Key.ArrowDown)) {\n this.updateValueFromPreselection();\n }\n }}\n onSearch={() => {\n this.updateValueFromPreselection();\n }}\n dropdownRender={(menu) => {\n return (\n <div ref={(component) => {\n this.wrappingComponent = component;\n }}>\n {menu}\n </div>\n );\n }}\n >\n {this.props.statusTexts?.map((statusTextItem) => {\n return <Select.Option\n id={\"select-value-\" + statusTextItem.value}\n key={\"\" + statusTextItem.value}\n value={statusTextItem.value}\n title={statusTextItem.text}\n data-optionvalue={\"\" + statusTextItem.value}\n >\n <span\n onMouseDown={() => {\n this.setState({value: statusTextItem.value});\n }}\n style={{\n color: \"rgba(0, 0, 0, 0.85)\",\n whiteSpace: \"nowrap\"\n }}>\n {`${statusTextItem.text} (${statusTextItem.value})`}\n </span>\n </Select.Option>;\n })}\n </Select>\n </div>\n );\n }\n\n private updateValueFromPreselection() {\n setTimeout(() => {\n this.updateValueImmediately();\n }, 200)\n }\n\n private updateValueImmediately() {\n let selectables: HTMLElement[] = Array.from(this.wrappingComponent?.getElementsByClassName(\"ant-select-item-option-active\") ?? []) as HTMLElement[];\n if (selectables.length > 0) {\n const optionStringValue = selectables[0].dataset?.optionvalue;\n const optionValue = optionStringValue !== undefined ? Number.parseFloat(optionStringValue) : undefined\n if (optionValue) {\n this.setState({value: optionValue});\n }\n }\n }\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';\nimport {Select} from \"antd\";\nimport {ICellEditor, ICellEditorParams} from \"ag-grid-community\";\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\nimport ReactDOM from 'react-dom';\nimport {Key} from \"ts-key-enum\";\nimport debounce from \"lodash/debounce\";\nimport {RefSelectProps} from \"antd/es/select\";\n\nconst KEY_BACKSPACE = 8;\nconst KEY_DELETE = 46;\n\ninterface SimpleStatusTextCellEditorProperties extends ICellEditorParams {\n decimalSeparator?: string\n precision?: number\n statusTexts: { text: string, value: number }[];\n}\n\ninterface SimpleStatusTextCellEditorState {\n value: number | null\n cancelEdit: boolean\n opened: boolean\n}\n\nexport default class SimpleStatusTextCellEditor extends React.Component<SimpleStatusTextCellEditorProperties, SimpleStatusTextCellEditorState> implements ICellEditor {\n private selectComponent: RefSelectProps | null = null;\n private focusOpId: number | null = null;\n private wrappingComponent: HTMLDivElement | null = null;\n\n constructor(props: Readonly<SimpleStatusTextCellEditorProperties>) {\n super(props);\n this.state = this.getInitialState(props);\n this.updateValueFromPreselection = debounce(this.updateValueFromPreselection.bind(this), 200, {maxWait: 200});\n }\n\n getInitialState(props: Readonly<SimpleStatusTextCellEditorProperties>): SimpleStatusTextCellEditorState {\n let value: number | null;\n if (props.keyPress === KEY_BACKSPACE || props.keyPress === KEY_DELETE) {\n // if backspace or delete pressed, we clear the cell\n value = null;\n } else if (props.charPress) {\n // if a letter was pressed, we start with the letter\n const parsedValue = Number.parseInt(props.charPress);\n value = isNaN(parsedValue) ? props.value : parsedValue;\n } else {\n // otherwise we start with the current value\n value = props.value;\n }\n return {\n value: value,\n cancelEdit: false,\n opened: true,\n } as SimpleStatusTextCellEditorState;\n }\n\n componentWillUnmount() {\n if (this.focusOpId) {\n clearTimeout(this.focusOpId);\n }\n }\n\n afterGuiAttached() {\n this.focusOpId = window.setTimeout(() => {\n this.selectComponent?.focus();\n }, 200);\n }\n\n getValue() {\n return this.state.value;\n }\n\n isPopup(): boolean {\n return true;\n }\n\n isCancelBeforeStart(): boolean {\n return false;\n }\n\n isCancelAfterEnd() {\n return false;\n }\n\n render() {\n return (\n <div style={{width: \"100%\", minWidth: 150}}>\n <Select<number>\n ref={(component) => {\n this.selectComponent = component;\n }}\n size={\"small\"}\n virtual={false}\n className={\"select-with-one-item\"}\n showSearch\n dropdownMatchSelectWidth={false}\n style={{width: \"100%\", overflow: \"auto\", padding: 0, margin: 0}}\n dropdownStyle={{maxHeight: 400, overflow: 'auto'}}\n allowClear\n showAction={['focus', 'click']}\n filterOption={(inputValue, option) => {\n const inputToSearch = inputValue.toLocaleLowerCase(LocaleHolder.formattingLocale);\n const value = option?.value;\n return (value !== undefined && value !== null && typeof value === \"number\" && LocaleHolder.formatNumber(value).indexOf(inputToSearch) >= 0) || (option?.title?.toLocaleLowerCase(LocaleHolder.formattingLocale).indexOf(inputToSearch) >= 0);\n }}\n value={this.state.value !== null ? this.state.value : undefined}\n onChange={(value) => {\n this.setState({value: value === undefined ? null : value});\n }}\n onSelect={(value) => {\n this.setState({value: value === undefined ? null : value});\n }}\n onMouseDown={() => {\n this.updateValueImmediately();\n }}\n open={this.state.opened}\n onDropdownVisibleChange={(visible) => {\n this.setState({opened: visible});\n }}\n getPopupContainer={(_trigger) => {\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)\n return (ReactDOM.findDOMNode(this)?.parentNode ?? document.body) as HTMLElement;\n }}\n onInputKeyDown={(e) => {\n if (!e.altKey && (e.key === Key.ArrowUp || e.key === Key.ArrowDown)) {\n this.updateValueFromPreselection();\n }\n }}\n onSearch={() => {\n this.updateValueFromPreselection();\n }}\n dropdownRender={(menu) => {\n return (\n <div ref={(component) => {\n this.wrappingComponent = component;\n }}>\n {menu}\n </div>\n );\n }}\n >\n {this.props.statusTexts?.map((statusTextItem) => {\n return <Select.Option\n id={\"select-value-\" + statusTextItem.value}\n key={\"\" + statusTextItem.value}\n value={statusTextItem.value}\n title={statusTextItem.text}\n data-optionvalue={\"\" + statusTextItem.value}\n >\n <span\n onMouseDown={() => {\n this.setState({value: statusTextItem.value});\n }}\n style={{\n color: \"rgba(0, 0, 0, 0.85)\",\n whiteSpace: \"nowrap\"\n }}>\n {`${statusTextItem.text} (${statusTextItem.value})`}\n </span>\n </Select.Option>;\n })}\n </Select>\n </div>\n );\n }\n\n private updateValueFromPreselection() {\n setTimeout(() => {\n this.updateValueImmediately();\n }, 200)\n }\n\n private updateValueImmediately() {\n let selectables: HTMLElement[] = Array.from(this.wrappingComponent?.getElementsByClassName(\"ant-select-item-option-active\") ?? []) as HTMLElement[];\n if (selectables.length > 0) {\n const optionStringValue = selectables[0].dataset?.optionvalue;\n const optionValue = optionStringValue !== undefined ? Number.parseFloat(optionStringValue) : undefined\n if (optionValue) {\n this.setState({value: optionValue});\n }\n }\n }\n}"]}
@@ -109,7 +109,8 @@ export default class StatusTextCellEditor extends React.Component {
109
109
  React.createElement(Select, { size: "small", virtual: false, dropdownMatchSelectWidth: false, className: "select-with-one-item", style: { width: "100%", overflow: "auto", visibility: "hidden" }, dropdownStyle: { maxHeight: 400, overflow: 'auto' }, allowClear: true, dropdownAlign: { points: ["tl", "tr"], offset: [0, -100], overflow: { adjustX: true, adjustY: true } }, filterOption: (inputValue, option) => {
110
110
  var _a;
111
111
  const inputToSearch = inputValue.toLocaleLowerCase(LocaleHolder.formattingLocale);
112
- return ((option === null || option === void 0 ? void 0 : option.value.toLocaleLowerCase(LocaleHolder.formattingLocale).indexOf(inputToSearch)) >= 0) || (((_a = option === null || option === void 0 ? void 0 : option.title) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase(LocaleHolder.formattingLocale).indexOf(inputToSearch)) >= 0);
112
+ const value = option === null || option === void 0 ? void 0 : option.value;
113
+ return ((value === null || value === void 0 ? void 0 : value.toString().indexOf(inputToSearch)) >= 0) || (((_a = option === null || option === void 0 ? void 0 : option.title) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase(LocaleHolder.formattingLocale).indexOf(inputToSearch)) >= 0);
113
114
  }, value: this.state.value !== null ? this.state.value : undefined, onChange: (value) => {
114
115
  this.setState({ value: value });
115
116
  }, open: this.state.opened, onDropdownVisibleChange: (visible) => {
@@ -133,7 +134,7 @@ export default class StatusTextCellEditor extends React.Component {
133
134
  left: 0,
134
135
  right: 0,
135
136
  width: "100%"
136
- }, autoFocus: true, decimalSeparator: this.props.decimalSeparator, precision: this.props.precision, placeholder: this.state.value === null ? "NULL" : "", value: this.state.value !== undefined && this.state.value !== null ? this.state.value : undefined, onChange: (value) => {
137
+ }, autoFocus: true, decimalSeparator: this.props.decimalSeparator, precision: this.props.precision, placeholder: this.state.value === null ? "NULL" : "", value: this.state.value !== undefined && this.state.value !== null ? this.state.value : undefined, onChange: value => {
137
138
  if (KeyboardUtils.isKeyPressed(Key.Alt)) {
138
139
  return;
139
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"statusTextCellEditor.js","sourceRoot":"","sources":["../../../../../components/grid/cell/statusTextCellEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport {InputNumber, Select} from \"antd\";\nimport {ICellEditor, ICellEditorParams} from \"ag-grid-community\";\nimport {Key} from \"ts-key-enum\";\nimport KeyboardUtils from \"d2coreui/components/keyboard/keyboardUtils\";\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\nimport ReactDOM from 'react-dom';\nimport scrollIntoView from \"dom-scroll-into-view\";\n\nconst KEY_BACKSPACE = 8;\nconst KEY_DELETE = 46;\nconst KEY_F2 = 113;\n\ninterface StatusTextCellEditorProperties extends ICellEditorParams {\n decimalSeparator?: string\n precision?: number\n statusTexts: { text: string, value: number }[];\n}\n\ninterface StatusTextCellEditorState {\n value: number | null\n highlightAllOnFocus: boolean\n cancelEdit: boolean\n opened: boolean\n}\n\nexport default class StatusTextCellEditor extends React.Component<StatusTextCellEditorProperties, StatusTextCellEditorState> implements ICellEditor {\n private inputComponent: HTMLInputElement | null = null;\n private focusOpId: number | null = null;\n\n constructor(props: Readonly<StatusTextCellEditorProperties>) {\n super(props);\n this.state = this.getInitialState(props);\n }\n\n getInitialState(props: Readonly<StatusTextCellEditorProperties>): StatusTextCellEditorState {\n let value: number | null;\n let highlightAllOnFocus = true;\n\n if (props.keyPress === KEY_BACKSPACE || props.keyPress === KEY_DELETE) {\n // if backspace or delete pressed, we clear the cell\n value = null;\n } else if (props.charPress) {\n // if a letter was pressed, we start with the letter\n const parsedValue = Number.parseInt(props.charPress);\n value = isNaN(parsedValue) ? props.value : parsedValue;\n highlightAllOnFocus = false;\n } else {\n // otherwise we start with the current value\n value = props.value;\n if (props.keyPress === KEY_F2) {\n highlightAllOnFocus = false;\n }\n }\n return {\n value: value,\n highlightAllOnFocus,\n cancelEdit: false\n } as StatusTextCellEditorState;\n }\n\n componentWillUnmount() {\n if (this.focusOpId) {\n clearTimeout(this.focusOpId);\n }\n }\n\n afterGuiAttached() {\n this.focusOpId = window.setTimeout(() => {\n this.inputComponent?.focus();\n if (this.state.highlightAllOnFocus) {\n this.inputComponent?.select();\n this.setState({\n highlightAllOnFocus: false,\n });\n } else {\n // when we started editing, we want the carot at the end, not the start.\n // this comes into play in two scenarios: a) when user hits F2 and b)\n // when user hits a printable character, then on IE (and only IE) the carot\n // was placed after the first character, thus 'apply' would end up as 'pplea'\n const length = this.inputComponent?.value ? this.inputComponent?.value.length : 0;\n if (length > 0) {\n this.inputComponent?.setSelectionRange(length, length);\n }\n }\n }, 200);\n }\n\n getValue() {\n return this.state.value;\n }\n\n isPopup(): boolean {\n return true;\n }\n\n isCancelBeforeStart(): boolean {\n return !!this.props.charPress && '1234567890'.indexOf(this.props.charPress) < 0;\n }\n\n isCancelAfterEnd() {\n return false;\n }\n\n // noinspection DuplicatedCode\n getScrollParent(element: HTMLElement, includeHidden = false): HTMLElement {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === \"absolute\";\n var overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/;\n if (style.position === \"fixed\") return document.body;\n let parent: HTMLElement | null;\n for (parent = element; (parent = parent.parentElement);) {\n style = getComputedStyle(parent);\n if (excludeStaticParent && style.position === \"static\") {\n continue;\n }\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) return parent;\n }\n return document.body;\n }\n\n scrollTo(value: number) {\n const elementToScroll = document.getElementById(\"select-value-\" + value);\n if (elementToScroll) {\n const parent = this.getScrollParent(elementToScroll, true);\n scrollIntoView(elementToScroll, parent, {\n onlyScrollIfNeeded: true,\n allowHorizontalScroll: false,\n alignWithTop: true,\n offsetTop: 20,\n offsetBottom: 20,\n });\n }\n }\n\n render() {\n return (\n <div style={{width: \"100%\", minWidth: 150}}>\n <Select<number>\n size={\"small\"}\n virtual={false}\n dropdownMatchSelectWidth={false}\n className={\"select-with-one-item\"}\n style={{width: \"100%\", overflow: \"auto\", visibility: \"hidden\"}}\n dropdownStyle={{maxHeight: 400, overflow: 'auto'}}\n allowClear\n dropdownAlign={{points: [\"tl\", \"tr\"], offset: [0, -100], overflow: {adjustX: true, adjustY: true}}}\n filterOption={(inputValue, option) => {\n const inputToSearch = inputValue.toLocaleLowerCase(LocaleHolder.formattingLocale);\n return (option?.value.toLocaleLowerCase(LocaleHolder.formattingLocale).indexOf(inputToSearch) >= 0) || (option?.title?.toLocaleLowerCase(LocaleHolder.formattingLocale).indexOf(inputToSearch) >= 0);\n }}\n value={this.state.value !== null ? this.state.value : undefined}\n onChange={(value) => {\n this.setState({value: value});\n }}\n open={this.state.opened}\n onDropdownVisibleChange={(visible) => {\n this.setState({opened: visible});\n }}\n getPopupContainer={(_trigger) => {\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)\n return (ReactDOM.findDOMNode(this)?.parentNode ?? document.body) as HTMLElement;\n }}\n >\n {this.props.statusTexts?.map((statusTextItem) => {\n return <Select.Option\n id={\"select-value-\" + statusTextItem.value}\n key={\"\" + statusTextItem.value}\n value={statusTextItem.value}\n title={statusTextItem.text}\n >\n <span style={{\n color: \"rgba(0, 0, 0, 0.85)\",\n whiteSpace: \"nowrap\"\n }}>{`${statusTextItem.text} (${statusTextItem.value})`}</span>\n </Select.Option>;\n })}\n </Select>\n <InputNumber\n ref={(component) => {\n this.inputComponent = component;\n }}\n size=\"small\"\n style={{\n position: \"absolute\",\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: \"100%\"\n }}\n autoFocus\n decimalSeparator={this.props.decimalSeparator}\n precision={this.props.precision}\n placeholder={this.state.value === null ? \"NULL\" : \"\"}\n value={this.state.value !== undefined && this.state.value !== null ? this.state.value : undefined}\n onChange={(value: number | string | undefined) => {\n if (KeyboardUtils.isKeyPressed(Key.Alt)) {\n // ignore navigational keystrokes ALT+cursor arrow\n return;\n }\n if (typeof value === \"number\") {\n this.setState({value: value, opened: true});\n this.scrollTo(value);\n } else if (value === undefined || value === \"\") {\n this.setState({value: null, opened: true});\n }\n }}\n onKeyDown={(e) => {\n if (e.key === Key.ArrowUp || e.key === Key.ArrowDown) {\n this.props.onKeyDown(e.nativeEvent);\n e.preventDefault();\n }\n }}\n onFocus={() => {\n this.setState({opened: true});\n }}\n onClick={() => {\n this.setState({opened: true});\n }}\n />\n </div>\n );\n }\n}"]}
1
+ {"version":3,"file":"statusTextCellEditor.js","sourceRoot":"","sources":["../../../../../components/grid/cell/statusTextCellEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport {InputNumber, Select} from \"antd\";\nimport {ICellEditor, ICellEditorParams} from \"ag-grid-community\";\nimport {Key} from \"ts-key-enum\";\nimport KeyboardUtils from \"d2coreui/components/keyboard/keyboardUtils\";\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\nimport ReactDOM from 'react-dom';\nimport scrollIntoView from \"dom-scroll-into-view\";\n\nconst KEY_BACKSPACE = 8;\nconst KEY_DELETE = 46;\nconst KEY_F2 = 113;\n\ninterface StatusTextCellEditorProperties extends ICellEditorParams {\n decimalSeparator?: string\n precision?: number\n statusTexts: { text: string, value: number }[];\n}\n\ninterface StatusTextCellEditorState {\n value: number | null\n highlightAllOnFocus: boolean\n cancelEdit: boolean\n opened: boolean\n}\n\nexport default class StatusTextCellEditor extends React.Component<StatusTextCellEditorProperties, StatusTextCellEditorState> implements ICellEditor {\n private inputComponent: HTMLInputElement | null = null;\n private focusOpId: number | null = null;\n\n constructor(props: Readonly<StatusTextCellEditorProperties>) {\n super(props);\n this.state = this.getInitialState(props);\n }\n\n getInitialState(props: Readonly<StatusTextCellEditorProperties>): StatusTextCellEditorState {\n let value: number | null;\n let highlightAllOnFocus = true;\n\n if (props.keyPress === KEY_BACKSPACE || props.keyPress === KEY_DELETE) {\n // if backspace or delete pressed, we clear the cell\n value = null;\n } else if (props.charPress) {\n // if a letter was pressed, we start with the letter\n const parsedValue = Number.parseInt(props.charPress);\n value = isNaN(parsedValue) ? props.value : parsedValue;\n highlightAllOnFocus = false;\n } else {\n // otherwise we start with the current value\n value = props.value;\n if (props.keyPress === KEY_F2) {\n highlightAllOnFocus = false;\n }\n }\n return {\n value: value,\n highlightAllOnFocus,\n cancelEdit: false\n } as StatusTextCellEditorState;\n }\n\n componentWillUnmount() {\n if (this.focusOpId) {\n clearTimeout(this.focusOpId);\n }\n }\n\n afterGuiAttached() {\n this.focusOpId = window.setTimeout(() => {\n this.inputComponent?.focus();\n if (this.state.highlightAllOnFocus) {\n this.inputComponent?.select();\n this.setState({\n highlightAllOnFocus: false,\n });\n } else {\n // when we started editing, we want the carot at the end, not the start.\n // this comes into play in two scenarios: a) when user hits F2 and b)\n // when user hits a printable character, then on IE (and only IE) the carot\n // was placed after the first character, thus 'apply' would end up as 'pplea'\n const length = this.inputComponent?.value ? this.inputComponent?.value.length : 0;\n if (length > 0) {\n this.inputComponent?.setSelectionRange(length, length);\n }\n }\n }, 200);\n }\n\n getValue() {\n return this.state.value;\n }\n\n isPopup(): boolean {\n return true;\n }\n\n isCancelBeforeStart(): boolean {\n return !!this.props.charPress && '1234567890'.indexOf(this.props.charPress) < 0;\n }\n\n isCancelAfterEnd() {\n return false;\n }\n\n // noinspection DuplicatedCode\n getScrollParent(element: HTMLElement, includeHidden = false): HTMLElement {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === \"absolute\";\n var overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/;\n if (style.position === \"fixed\") return document.body;\n let parent: HTMLElement | null;\n for (parent = element; (parent = parent.parentElement);) {\n style = getComputedStyle(parent);\n if (excludeStaticParent && style.position === \"static\") {\n continue;\n }\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) return parent;\n }\n return document.body;\n }\n\n scrollTo(value: number) {\n const elementToScroll = document.getElementById(\"select-value-\" + value);\n if (elementToScroll) {\n const parent = this.getScrollParent(elementToScroll, true);\n scrollIntoView(elementToScroll, parent, {\n onlyScrollIfNeeded: true,\n allowHorizontalScroll: false,\n alignWithTop: true,\n offsetTop: 20,\n offsetBottom: 20,\n });\n }\n }\n\n render() {\n return (\n <div style={{width: \"100%\", minWidth: 150}}>\n <Select<number>\n size={\"small\"}\n virtual={false}\n dropdownMatchSelectWidth={false}\n className={\"select-with-one-item\"}\n style={{width: \"100%\", overflow: \"auto\", visibility: \"hidden\"}}\n dropdownStyle={{maxHeight: 400, overflow: 'auto'}}\n allowClear\n dropdownAlign={{points: [\"tl\", \"tr\"], offset: [0, -100], overflow: {adjustX: true, adjustY: true}}}\n filterOption={(inputValue, option) => {\n const inputToSearch = inputValue.toLocaleLowerCase(LocaleHolder.formattingLocale);\n const value: number = option?.value as number;\n return (value?.toString().indexOf(inputToSearch) >= 0) || (option?.title?.toLocaleLowerCase(LocaleHolder.formattingLocale).indexOf(inputToSearch) >= 0);\n }}\n value={this.state.value !== null ? this.state.value : undefined}\n onChange={(value) => {\n this.setState({value: value});\n }}\n open={this.state.opened}\n onDropdownVisibleChange={(visible) => {\n this.setState({opened: visible});\n }}\n getPopupContainer={(_trigger) => {\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)\n return (ReactDOM.findDOMNode(this)?.parentNode ?? document.body) as HTMLElement;\n }}\n >\n {this.props.statusTexts?.map((statusTextItem) => {\n return <Select.Option\n id={\"select-value-\" + statusTextItem.value}\n key={\"\" + statusTextItem.value}\n value={statusTextItem.value}\n title={statusTextItem.text}\n >\n <span style={{\n color: \"rgba(0, 0, 0, 0.85)\",\n whiteSpace: \"nowrap\"\n }}>{`${statusTextItem.text} (${statusTextItem.value})`}</span>\n </Select.Option>;\n })}\n </Select>\n <InputNumber\n ref={(component) => {\n this.inputComponent = component;\n }}\n size=\"small\"\n style={{\n position: \"absolute\",\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: \"100%\"\n }}\n autoFocus\n decimalSeparator={this.props.decimalSeparator}\n precision={this.props.precision}\n placeholder={this.state.value === null ? \"NULL\" : \"\"}\n value={this.state.value !== undefined && this.state.value !== null ? this.state.value : undefined}\n onChange={value => {\n if (KeyboardUtils.isKeyPressed(Key.Alt)) {\n // ignore navigational keystrokes ALT+cursor arrow\n return;\n }\n if (typeof value === \"number\") {\n this.setState({value: value, opened: true});\n this.scrollTo(value);\n } else if (value === undefined || value === \"\") {\n this.setState({value: null, opened: true});\n }\n }}\n onKeyDown={(e) => {\n if (e.key === Key.ArrowUp || e.key === Key.ArrowDown) {\n this.props.onKeyDown(e.nativeEvent);\n e.preventDefault();\n }\n }}\n onFocus={() => {\n this.setState({opened: true});\n }}\n onClick={() => {\n this.setState({opened: true});\n }}\n />\n </div>\n );\n }\n}"]}
@@ -41,18 +41,18 @@ export default class TextCellEditor extends React.Component {
41
41
  }
42
42
  afterGuiAttached() {
43
43
  this.focusOpId = window.setTimeout(() => {
44
- var _a, _b, _c, _d, _e;
44
+ var _a, _b, _c, _d, _e, _f, _g, _h;
45
45
  (_a = this.inputComponent) === null || _a === void 0 ? void 0 : _a.focus();
46
46
  if (this.state.highlightAllOnFocus) {
47
- (_b = this.inputComponent) === null || _b === void 0 ? void 0 : _b.input.select();
47
+ (_c = (_b = this.inputComponent) === null || _b === void 0 ? void 0 : _b.input) === null || _c === void 0 ? void 0 : _c.select();
48
48
  this.setState({
49
49
  highlightAllOnFocus: false,
50
50
  });
51
51
  }
52
52
  else {
53
- const length = ((_c = this.inputComponent) === null || _c === void 0 ? void 0 : _c.input.value) ? (_d = this.inputComponent) === null || _d === void 0 ? void 0 : _d.input.value.length : 0;
53
+ const length = ((_e = (_d = this.inputComponent) === null || _d === void 0 ? void 0 : _d.input) === null || _e === void 0 ? void 0 : _e.value) ? (_f = this.inputComponent) === null || _f === void 0 ? void 0 : _f.input.value.length : 0;
54
54
  if (length > 0) {
55
- (_e = this.inputComponent) === null || _e === void 0 ? void 0 : _e.input.setSelectionRange(length, length);
55
+ (_h = (_g = this.inputComponent) === null || _g === void 0 ? void 0 : _g.input) === null || _h === void 0 ? void 0 : _h.setSelectionRange(length, length);
56
56
  }
57
57
  }
58
58
  }, 200);
@@ -1 +1 @@
1
- {"version":3,"file":"textCellEditor.js","sourceRoot":"","sources":["../../../../../components/grid/cell/textCellEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport {Input} from \"antd\";\nimport {ICellEditor, ICellEditorParams} from \"ag-grid-community\";\nimport {Key} from \"ts-key-enum\";\nimport KeyboardUtils from \"d2coreui/components/keyboard/keyboardUtils\";\n\nconst KEY_BACKSPACE = 8;\nconst KEY_DELETE = 46;\nconst KEY_F2 = 113;\n\ninterface TextCellEditorProperties extends ICellEditorParams {\n}\n\ninterface TextCellEditorState {\n value: string | null\n highlightAllOnFocus: boolean\n cancelEdit: boolean\n}\n\nexport default class TextCellEditor extends React.Component<TextCellEditorProperties, TextCellEditorState> implements ICellEditor {\n private inputComponent: Input | null = null;\n private focusOpId: number | null = null;\n\n constructor(props: Readonly<TextCellEditorProperties>) {\n super(props);\n this.state = this.getInitialState(props);\n }\n\n getInitialState(props: Readonly<TextCellEditorProperties>): TextCellEditorState {\n let value: string | null;\n let highlightAllOnFocus = true;\n\n if (props.keyPress === KEY_BACKSPACE || props.keyPress === KEY_DELETE) {\n // if backspace or delete pressed, we clear the cell\n value = null;\n } else if (props.charPress) {\n // if a letter was pressed, we start with the letter\n value = props.charPress;\n highlightAllOnFocus = false;\n } else {\n // otherwise we start with the current value\n value = props.value;\n if (props.keyPress === KEY_F2) {\n highlightAllOnFocus = false;\n }\n }\n return {\n value: value,\n highlightAllOnFocus,\n cancelEdit: false\n } as TextCellEditorState;\n }\n\n componentWillUnmount() {\n if (this.focusOpId) {\n clearTimeout(this.focusOpId);\n }\n }\n\n afterGuiAttached() {\n this.focusOpId = window.setTimeout(() => {\n this.inputComponent?.focus();\n if (this.state.highlightAllOnFocus) {\n this.inputComponent?.input.select();\n this.setState({\n highlightAllOnFocus: false,\n });\n } else {\n // when we started editing, we want the carot at the end, not the start.\n // this comes into play in two scenarios: a) when user hits F2 and b)\n // when user hits a printable character, then on IE (and only IE) the carot\n // was placed after the first character, thus 'apply' would end up as 'pplea'\n const length = this.inputComponent?.input.value ? this.inputComponent?.input.value.length : 0;\n if (length > 0) {\n this.inputComponent?.input.setSelectionRange(length, length);\n }\n }\n }, 200);\n }\n\n getValue() {\n return this.state.value;\n }\n\n isPopup(): boolean {\n return true;\n }\n\n render() {\n const inputWidth = !!this.state.value && this.state.value.length > 40 ? this.state.value.length : 40;\n return (\n <Input\n ref={(component) => {\n this.inputComponent = component as Input | null;\n }}\n size=\"small\"\n autoFocus\n placeholder={this.state.value === null ? \"NULL\" : \"\"}\n value={this.state.value != undefined ? this.state.value : undefined}\n onChange={(event) => {\n if (KeyboardUtils.isKeyPressed(Key.Alt)) {\n // ignore navigational keystrokes ALT+cursor arrow\n return;\n }\n this.setState({value: event.target.value});\n }}\n onKeyDown={(e) => {\n if (e.key === Key.ArrowUp || e.key === Key.ArrowDown) {\n this.props.onKeyDown(e.nativeEvent);\n e.preventDefault();\n }\n // In watch panel Delete propagation cause remove of line\n if (e.key === Key.Delete) {\n e.stopPropagation();\n }\n }}\n style={{width: '100%', minWidth: `min( 85vw, ${inputWidth}ch)`}}\n />\n );\n }\n}"]}
1
+ {"version":3,"file":"textCellEditor.js","sourceRoot":"","sources":["../../../../../components/grid/cell/textCellEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport {Input, InputRef} from \"antd\";\nimport {ICellEditor, ICellEditorParams} from \"ag-grid-community\";\nimport {Key} from \"ts-key-enum\";\nimport KeyboardUtils from \"d2coreui/components/keyboard/keyboardUtils\";\n\nconst KEY_BACKSPACE = 8;\nconst KEY_DELETE = 46;\nconst KEY_F2 = 113;\n\ninterface TextCellEditorProperties extends ICellEditorParams {\n}\n\ninterface TextCellEditorState {\n value: string | null\n highlightAllOnFocus: boolean\n cancelEdit: boolean\n}\n\nexport default class TextCellEditor extends React.Component<TextCellEditorProperties, TextCellEditorState> implements ICellEditor {\n private inputComponent: InputRef | null = null;\n private focusOpId: number | null = null;\n\n constructor(props: Readonly<TextCellEditorProperties>) {\n super(props);\n this.state = this.getInitialState(props);\n }\n\n getInitialState(props: Readonly<TextCellEditorProperties>): TextCellEditorState {\n let value: string | null;\n let highlightAllOnFocus = true;\n\n if (props.keyPress === KEY_BACKSPACE || props.keyPress === KEY_DELETE) {\n // if backspace or delete pressed, we clear the cell\n value = null;\n } else if (props.charPress) {\n // if a letter was pressed, we start with the letter\n value = props.charPress;\n highlightAllOnFocus = false;\n } else {\n // otherwise we start with the current value\n value = props.value;\n if (props.keyPress === KEY_F2) {\n highlightAllOnFocus = false;\n }\n }\n return {\n value: value,\n highlightAllOnFocus,\n cancelEdit: false\n } as TextCellEditorState;\n }\n\n componentWillUnmount() {\n if (this.focusOpId) {\n clearTimeout(this.focusOpId);\n }\n }\n\n afterGuiAttached() {\n this.focusOpId = window.setTimeout(() => {\n this.inputComponent?.focus();\n if (this.state.highlightAllOnFocus) {\n this.inputComponent?.input?.select();\n this.setState({\n highlightAllOnFocus: false,\n });\n } else {\n // when we started editing, we want the carot at the end, not the start.\n // this comes into play in two scenarios: a) when user hits F2 and b)\n // when user hits a printable character, then on IE (and only IE) the carot\n // was placed after the first character, thus 'apply' would end up as 'pplea'\n const length = this.inputComponent?.input?.value ? this.inputComponent?.input.value.length : 0;\n if (length > 0) {\n this.inputComponent?.input?.setSelectionRange(length, length);\n }\n }\n }, 200);\n }\n\n getValue() {\n return this.state.value;\n }\n\n isPopup(): boolean {\n return true;\n }\n\n render() {\n const inputWidth = !!this.state.value && this.state.value.length > 40 ? this.state.value.length : 40;\n return (\n <Input\n ref={(component) => {\n this.inputComponent = component as InputRef | null;\n }}\n size=\"small\"\n autoFocus\n placeholder={this.state.value === null ? \"NULL\" : \"\"}\n value={this.state.value != undefined ? this.state.value : undefined}\n onChange={(event) => {\n if (KeyboardUtils.isKeyPressed(Key.Alt)) {\n // ignore navigational keystrokes ALT+cursor arrow\n return;\n }\n this.setState({value: event.target.value});\n }}\n onKeyDown={(e) => {\n if (e.key === Key.ArrowUp || e.key === Key.ArrowDown) {\n this.props.onKeyDown(e.nativeEvent);\n e.preventDefault();\n }\n // In watch panel Delete propagation cause remove of line\n if (e.key === Key.Delete) {\n e.stopPropagation();\n }\n }}\n style={{width: '100%', minWidth: `min( 85vw, ${inputWidth}ch)`}}\n />\n );\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"contextMenu.js","sourceRoot":"","sources":["../../../../../components/grid/export/contextMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {CopyOutlined, FileOutlined, FilePdfOutlined, FileTextOutlined} from \"@ant-design/icons\";\nimport {Menu, Switch} from \"antd\";\nimport React from \"react\";\nimport i18n from \"d2core/i18n/i18n\";\nimport {spawn, Thread, Worker} from \"threads\"\nimport moment from \"moment\";\nimport ProgressPopup from \"./progressPopup\";\nimport {MenuElement} from \"../dataGrid\";\nimport {ClipboardUtils} from \"d2coreui/components/clipboard/clipboardUtils\";\n// @ts-ignore\nimport txtExportUrl from 'threads-plugin/dist/loader?name=txtExport!d2coreui/components/grid/export/worker/txtExport.ts'\n// @ts-ignore\nimport csvExportUrl from \"threads-plugin/dist/loader?name=csvExport!d2coreui/components/grid/export/worker/csvExport.ts\"\n// @ts-ignore\nimport clipboardExportUrl from \"threads-plugin/dist/loader?name=clipboardExport!d2coreui/components/grid/export/worker/clipboardExport.ts\"\n// @ts-ignore\nimport pdfExportUrl from \"threads-plugin/dist/loader?name=pdfExport!d2coreui/components/grid/export/worker/pdfExport.ts\"\nimport PlatformSpecific from \"d2coreui/components/platformSpecific\";\n\n\nexport interface ContextMenuProps {\n onlySelectedNodes?: boolean\n showMilliseconds: boolean\n showYear: boolean\n hideNotificationOnClipboardCopy?: boolean\n\n getExportContent: (progressPopup: ProgressPopup | null, props: ContextMenuProps) => Promise<string[][]>\n\n // overrides context menu rendering\n renderer?(menuElements: MenuElement[]): MenuElement[]\n\n // handler for custom context menu items click\n onClick?(key: string): void\n}\n\ntype PageOrientation = \"PORTRAIT\" | \"LANDSCAPE\";\n\ninterface ContextMenuState {\n pageOrientation: PageOrientation\n exporting: boolean\n}\n\n\nexport default class ContextMenu extends React.Component<ContextMenuProps, ContextMenuState> {\n constructor(props: Readonly<ContextMenuProps>) {\n super(props);\n this.state = {\n pageOrientation: \"PORTRAIT\",\n exporting: false\n };\n }\n\n async onExportMenuClick(menuKey: string) {\n this.setState({exporting: true});\n switch (menuKey) {\n case \"txtExport\": {\n const progressPopup = new ProgressPopup(i18n(\"Export List to\") + \" TXT\");\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\n const txtExport = await spawn(new Worker(txtExportUrl));\n const textContent = await txtExport(tableContent);\n await Thread.terminate(txtExport);\n await progressPopup.update(100);\n PlatformSpecific.INSTANCE.saveContent(`export_${moment().format(\"YYYYMMDD_HHmm\")}.txt`, textContent, true);\n break;\n }\n case \"csvExport\": {\n const progressPopup = new ProgressPopup(i18n(\"Export List to\") + \" CSV\");\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\n const csvExport = await spawn(new Worker(csvExportUrl));\n const csvContent = await csvExport(tableContent);\n await Thread.terminate(csvExport);\n await progressPopup.update(100);\n PlatformSpecific.INSTANCE.saveContent(`export_${moment().format(\"YYYYMMDD_HHmm\")}.csv`, `\\ufeff${csvContent}`, true);\n break;\n }\n case \"clipboardCopy\": {\n const progressPopup = !this.props.hideNotificationOnClipboardCopy ? new ProgressPopup(i18n(\"Export List to\") + \" \" + i18n(\"Clipboard\")) : null;\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\n const clipboardExport = await spawn(new Worker(clipboardExportUrl));\n const clipboardContent = await clipboardExport(tableContent);\n const success = ClipboardUtils.copyToClipboard(clipboardContent);\n if (success) {\n await Thread.terminate(clipboardExport);\n await progressPopup?.update(100);\n } else {\n progressPopup?.error();\n }\n break;\n }\n case \"pdfExport\": {\n const progressPopup = new ProgressPopup(i18n(\"Export List to\") + \" PDF\");\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\n const pdfExport = await spawn(new Worker(pdfExportUrl));\n pdfExport.handler().subscribe(async (data: string) => {\n Thread.terminate(pdfExport);\n await progressPopup.update(100);\n PlatformSpecific.INSTANCE.saveContent(`export_${moment().format(\"YYYYMMDD_HHmm\")}.pdf`, data, false);\n });\n pdfExport.export(tableContent, {pageOrientation: this.state.pageOrientation});\n }\n }\n this.setState({exporting: false});\n }\n\n render() {\n const {onlySelectedNodes, showMilliseconds, showYear, hideNotificationOnClipboardCopy, getExportContent, renderer, ...rest} = this.props;\n let menuItems: MenuElement[] = this.renderExportMenuItems();\n if (renderer) {\n menuItems = renderer(menuItems);\n }\n return (\n <Menu {...rest}\n onClick={(item: any) => {\n this.onExportMenuClick(item.key);\n if (this.props.onClick) {\n this.props.onClick(item.key.toString());\n }\n }}>\n {menuItems}\n </Menu>);\n }\n\n renderExportMenuItems() {\n return [\n <Menu.Item icon={<FileOutlined/>} key=\"txtExport\" disabled={this.state.exporting}>{i18n(\"Export List to\") + \" TXT\"}\n </Menu.Item>,\n <Menu.Item icon={<FileTextOutlined/>} key=\"csvExport\"\n disabled={this.state.exporting}>{i18n(\"Export List to\") + \" CSV\"}\n </Menu.Item>,\n <Menu.Item icon={<FilePdfOutlined/>} key=\"pdfExport\"\n disabled={this.state.exporting}>{i18n(\"Export List to\") + \" PDF\"}\n <Switch\n style={{marginLeft: 8}}\n checkedChildren={i18n(\"Landscape\") + \" \"}\n unCheckedChildren={\"\" + i18n(\"Portrait\")}\n checked={this.state.pageOrientation !== \"PORTRAIT\"}\n onChange={(checked, e: MouseEvent) => {\n e.stopPropagation();\n (e as any).nativeEvent.stopImmediatePropagation();\n this.setState({pageOrientation: checked ? \"LANDSCAPE\" : \"PORTRAIT\"});\n }}\n /></Menu.Item>,\n <Menu.Divider key=\"divider1\"/>,\n <Menu.Item key=\"clipboardCopy\" icon={<CopyOutlined/>} disabled={this.state.exporting}>{i18n(\"Copy to Clipboard\")}\n </Menu.Item>\n ];\n }\n}"]}
1
+ {"version":3,"file":"contextMenu.js","sourceRoot":"","sources":["../../../../../components/grid/export/contextMenu.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,MAAM,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,MAAM,SAAS,CAAA;AAC7C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAC,cAAc,EAAC,MAAM,8CAA8C,CAAC;AAE5E,OAAO,YAAY,MAAM,+FAA+F,CAAA;AAExH,OAAO,YAAY,MAAM,+FAA+F,CAAA;AAExH,OAAO,kBAAkB,MAAM,2GAA2G,CAAA;AAE1I,OAAO,YAAY,MAAM,+FAA+F,CAAA;AACxH,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AA0BpE,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK,CAAC,SAA6C;IACxF,YAAY,KAAiC;QACzC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YACT,eAAe,EAAE,UAAU;YAC3B,SAAS,EAAE,KAAK;SACnB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAe;QACnC,IAAI,CAAC,QAAQ,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;QACjC,QAAQ,OAAO,EAAE;YACb,KAAK,WAAW,CAAC,CAAC;gBACd,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,CAAC;gBACzE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClF,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBACxD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,CAAC;gBAClD,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAClC,MAAM,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC3G,MAAM;aACT;YACD,KAAK,WAAW,CAAC,CAAC;gBACd,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,CAAC;gBACzE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClF,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBACxD,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,CAAC;gBACjD,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAClC,MAAM,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,CAAC,CAAC;gBACrH,MAAM;aACT;YACD,KAAK,eAAe,CAAC,CAAC;gBAClB,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC/I,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClF,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACpE,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;gBAC7D,MAAM,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;gBACjE,IAAI,OAAO,EAAE;oBACT,MAAM,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;oBACxC,MAAM,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAC,GAAG,CAAC,CAAA,CAAC;iBACpC;qBAAM;oBACH,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,EAAE,CAAC;iBAC1B;gBACD,MAAM;aACT;YACD,KAAK,WAAW,CAAC,CAAC;gBACd,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,CAAC;gBACzE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClF,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBACxD,SAAS,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;oBACjD,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBAC5B,MAAM,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAChC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACzG,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,EAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAC,CAAC,CAAC;aACjF;SACJ;QACD,IAAI,CAAC,QAAQ,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;IACtC,CAAC;IAED,MAAM;QACF,MAAM,KAAwH,IAAI,CAAC,KAAK,EAAlI,EAAC,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,+BAA+B,EAAE,gBAAgB,EAAE,QAAQ,OAAuB,EAAlB,IAAI,cAApH,wHAAqH,CAAa,CAAC;QACzI,IAAI,SAAS,GAAkB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC5D,IAAI,QAAQ,EAAE;YACV,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;SACnC;QACD,OAAO,CACH,oBAAC,IAAI,oBAAK,IAAI,IACR,OAAO,EAAE,CAAC,IAAS,EAAE,EAAE;gBACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;oBACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;iBAC3C;YACL,CAAC,KACF,SAAS,CACP,CAAC,CAAC;IACjB,CAAC;IAED,qBAAqB;QACjB,OAAO;YACH,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAE,oBAAC,YAAY,OAAE,EAAE,GAAG,EAAC,WAAW,EAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,MAAM,CACtG;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAE,oBAAC,gBAAgB,OAAE,EAAE,GAAG,EAAC,WAAW,EAC1C,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAC/D;YACZ,oBAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAE,oBAAC,eAAe,OAAE,EAAE,GAAG,EAAC,WAAW,EACzC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;gBAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,MAAM;gBACvE,oBAAC,MAAM,IACH,KAAK,EAAE,EAAC,UAAU,EAAE,CAAC,EAAC,EACtB,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,EACxC,iBAAiB,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,EACxC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,UAAU,EAClD,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;wBACrB,CAAC,CAAC,eAAe,EAAE,CAAC;wBACnB,CAAS,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC;wBAClD,IAAI,CAAC,QAAQ,CAAC,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAC,CAAC,CAAC;oBACzE,CAAC,GACH,CAAY;YAClB,oBAAC,IAAI,CAAC,OAAO,IAAC,GAAG,EAAC,UAAU,GAAE;YAC9B,oBAAC,IAAI,CAAC,IAAI,IAAC,GAAG,EAAC,eAAe,EAAC,IAAI,EAAE,oBAAC,YAAY,OAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAG,IAAI,CAAC,mBAAmB,CAAC,CACpG;SACf,CAAC;IACN,CAAC;CACJ","sourcesContent":["import {CopyOutlined, FileOutlined, FilePdfOutlined, FileTextOutlined} from \"@ant-design/icons\";\nimport {Menu, Switch} from \"antd\";\nimport React from \"react\";\nimport i18n from \"d2core/i18n/i18n\";\nimport {spawn, Thread, Worker} from \"threads\"\nimport moment from \"moment\";\nimport ProgressPopup from \"./progressPopup\";\nimport {MenuElement} from \"../dataGrid\";\nimport {ClipboardUtils} from \"d2coreui/components/clipboard/clipboardUtils\";\n// @ts-ignore\nimport txtExportUrl from 'threads-plugin/dist/loader?name=txtExport!d2coreui/components/grid/export/worker/txtExport.ts'\n// @ts-ignore\nimport csvExportUrl from \"threads-plugin/dist/loader?name=csvExport!d2coreui/components/grid/export/worker/csvExport.ts\"\n// @ts-ignore\nimport clipboardExportUrl from \"threads-plugin/dist/loader?name=clipboardExport!d2coreui/components/grid/export/worker/clipboardExport.ts\"\n// @ts-ignore\nimport pdfExportUrl from \"threads-plugin/dist/loader?name=pdfExport!d2coreui/components/grid/export/worker/pdfExport.ts\"\nimport PlatformSpecific from \"d2coreui/components/platformSpecific\";\n\n\nexport interface ContextMenuProps {\n onlySelectedNodes?: boolean\n showMilliseconds: boolean\n showYear: boolean\n hideNotificationOnClipboardCopy?: boolean\n\n getExportContent: (progressPopup: ProgressPopup | null, props: ContextMenuProps) => Promise<string[][]>\n\n // overrides context menu rendering\n renderer?(menuElements: MenuElement[]): MenuElement[]\n\n // handler for custom context menu items click\n onClick?(key: string): void\n}\n\ntype PageOrientation = \"PORTRAIT\" | \"LANDSCAPE\";\n\ninterface ContextMenuState {\n pageOrientation: PageOrientation\n exporting: boolean\n}\n\n\nexport default class ContextMenu extends React.Component<ContextMenuProps, ContextMenuState> {\n constructor(props: Readonly<ContextMenuProps>) {\n super(props);\n this.state = {\n pageOrientation: \"PORTRAIT\",\n exporting: false\n };\n }\n\n async onExportMenuClick(menuKey: string) {\n this.setState({exporting: true});\n switch (menuKey) {\n case \"txtExport\": {\n const progressPopup = new ProgressPopup(i18n(\"Export List to\") + \" TXT\");\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\n const txtExport = await spawn(new Worker(txtExportUrl));\n const textContent = await txtExport(tableContent);\n await Thread.terminate(txtExport);\n await progressPopup.update(100);\n PlatformSpecific.INSTANCE.saveContent(`export_${moment().format(\"YYYYMMDD_HHmm\")}.txt`, textContent, true);\n break;\n }\n case \"csvExport\": {\n const progressPopup = new ProgressPopup(i18n(\"Export List to\") + \" CSV\");\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\n const csvExport = await spawn(new Worker(csvExportUrl));\n const csvContent = await csvExport(tableContent);\n await Thread.terminate(csvExport);\n await progressPopup.update(100);\n PlatformSpecific.INSTANCE.saveContent(`export_${moment().format(\"YYYYMMDD_HHmm\")}.csv`, `\\ufeff${csvContent}`, true);\n break;\n }\n case \"clipboardCopy\": {\n const progressPopup = !this.props.hideNotificationOnClipboardCopy ? new ProgressPopup(i18n(\"Export List to\") + \" \" + i18n(\"Clipboard\")) : null;\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\n const clipboardExport = await spawn(new Worker(clipboardExportUrl));\n const clipboardContent = await clipboardExport(tableContent);\n const success = ClipboardUtils.copyToClipboard(clipboardContent);\n if (success) {\n await Thread.terminate(clipboardExport);\n await progressPopup?.update(100);\n } else {\n progressPopup?.error();\n }\n break;\n }\n case \"pdfExport\": {\n const progressPopup = new ProgressPopup(i18n(\"Export List to\") + \" PDF\");\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\n const pdfExport = await spawn(new Worker(pdfExportUrl));\n pdfExport.handler().subscribe(async (data: string) => {\n Thread.terminate(pdfExport);\n await progressPopup.update(100);\n PlatformSpecific.INSTANCE.saveContent(`export_${moment().format(\"YYYYMMDD_HHmm\")}.pdf`, data, false);\n });\n pdfExport.export(tableContent, {pageOrientation: this.state.pageOrientation});\n }\n }\n this.setState({exporting: false});\n }\n\n render() {\n const {onlySelectedNodes, showMilliseconds, showYear, hideNotificationOnClipboardCopy, getExportContent, renderer, ...rest} = this.props;\n let menuItems: MenuElement[] = this.renderExportMenuItems();\n if (renderer) {\n menuItems = renderer(menuItems);\n }\n return (\n <Menu {...rest}\n onClick={(item: any) => {\n this.onExportMenuClick(item.key);\n if (this.props.onClick) {\n this.props.onClick(item.key.toString());\n }\n }}>\n {menuItems}\n </Menu>);\n }\n\n renderExportMenuItems() {\n return [\n <Menu.Item icon={<FileOutlined/>} key=\"txtExport\" disabled={this.state.exporting}>{i18n(\"Export List to\") + \" TXT\"}\n </Menu.Item>,\n <Menu.Item icon={<FileTextOutlined/>} key=\"csvExport\"\n disabled={this.state.exporting}>{i18n(\"Export List to\") + \" CSV\"}\n </Menu.Item>,\n <Menu.Item icon={<FilePdfOutlined/>} key=\"pdfExport\"\n disabled={this.state.exporting}>{i18n(\"Export List to\") + \" PDF\"}\n <Switch\n style={{marginLeft: 8}}\n checkedChildren={i18n(\"Landscape\") + \" \"}\n unCheckedChildren={\"\" + i18n(\"Portrait\")}\n checked={this.state.pageOrientation !== \"PORTRAIT\"}\n onChange={(checked, e) => {\n e.stopPropagation();\n (e as any).nativeEvent.stopImmediatePropagation();\n this.setState({pageOrientation: checked ? \"LANDSCAPE\" : \"PORTRAIT\"});\n }}\n /></Menu.Item>,\n <Menu.Divider key=\"divider1\"/>,\n <Menu.Item key=\"clipboardCopy\" icon={<CopyOutlined/>} disabled={this.state.exporting}>{i18n(\"Copy to Clipboard\")}\n </Menu.Item>\n ];\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tablePagination.js","sourceRoot":"","sources":["../../../../../components/grid/panel/tablePagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport {CheckOutlined} from \"@ant-design/icons\";\nimport {Button, Input, InputNumber, Pagination, Popover} from \"antd\";\nimport i18n from \"d2core/i18n/i18n\";\nimport {PaginationProps} from \"antd/es/pagination\";\n\ninterface PaginationComponentState {\n gotoPageNumber?: number | null\n}\n\nexport default class PaginationComponent extends React.Component<PaginationProps, PaginationComponentState> {\n constructor(props: Readonly<PaginationProps>) {\n super(props);\n this.state = {\n gotoPageNumber: null\n }\n }\n\n render() {\n const pageCount = this.props.total && this.props.pageSize ? Math.ceil(this.props.total / this.props.pageSize) : 1;\n return (\n <div>\n <Pagination\n showSizeChanger={false}\n {...this.props}\n itemRender={(page, type, originalElement) => {\n if (page === this.props.current && type === \"page\") {\n return (\n <Popover\n title=\"\"\n placement=\"bottom\"\n content={\n <Input.Group compact>\n <InputNumber min={1} max={pageCount}\n value={this.state.gotoPageNumber ? this.state.gotoPageNumber : this.props.current}\n onChange={(newValue) => {\n if (typeof newValue === \"number\") {\n this.setState({gotoPageNumber: newValue});\n }\n }}\n onKeyDown={(e) => {\n if (e.keyCode === 3 /*MAC_ENTER*/ || e.keyCode === 13 /*ENTER*/) {\n if (this.state.gotoPageNumber && this.props.onChange) {\n this.props.onChange(this.state.gotoPageNumber, this.props.pageSize);\n }\n }\n }}\n />\n <Button title={i18n(\"Goto Page\")} type=\"primary\" onClick={() => {\n if (this.state.gotoPageNumber && this.props.onChange) {\n this.props.onChange(this.state.gotoPageNumber, this.props.pageSize);\n }\n }}>\n <CheckOutlined/>\n </Button>\n </Input.Group>\n }\n trigger=\"hover\"\n onVisibleChange={(visible) => {\n if (!visible) {\n this.setState({gotoPageNumber: null});\n }\n }}\n overlayClassName=\"control-panel-popover\"\n >\n {originalElement}\n </Popover>\n );\n } else {\n return originalElement;\n }\n }}\n />\n </div>\n );\n }\n}"]}
1
+ {"version":3,"file":"tablePagination.js","sourceRoot":"","sources":["../../../../../components/grid/panel/tablePagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport {CheckOutlined} from \"@ant-design/icons\";\nimport {Button, Input, InputNumber, Pagination, Popover} from \"antd\";\nimport i18n from \"d2core/i18n/i18n\";\nimport {PaginationProps} from \"antd/es/pagination\";\n\ninterface PaginationComponentState {\n gotoPageNumber?: number | null\n}\n\nexport default class PaginationComponent extends React.Component<PaginationProps, PaginationComponentState> {\n constructor(props: Readonly<PaginationProps>) {\n super(props);\n this.state = {\n gotoPageNumber: null\n }\n }\n\n render() {\n const pageCount = this.props.total && this.props.pageSize ? Math.ceil(this.props.total / this.props.pageSize) : 1;\n return (\n <div>\n <Pagination\n showSizeChanger={false}\n {...this.props}\n itemRender={(page, type, originalElement) => {\n if (page === this.props.current && type === \"page\") {\n return (\n <Popover\n title=\"\"\n placement=\"bottom\"\n content={\n <Input.Group compact>\n <InputNumber min={1} max={pageCount}\n value={this.state.gotoPageNumber ? this.state.gotoPageNumber : this.props.current}\n onChange={(newValue) => {\n if (typeof newValue === \"number\") {\n this.setState({gotoPageNumber: newValue});\n }\n }}\n onKeyDown={(e) => {\n if (e.keyCode === 3 /*MAC_ENTER*/ || e.keyCode === 13 /*ENTER*/) {\n if (this.state.gotoPageNumber && this.props.onChange) {\n this.props.onChange(this.state.gotoPageNumber, this.props.pageSize!);\n }\n }\n }}\n />\n <Button title={i18n(\"Goto Page\")} type=\"primary\" onClick={() => {\n if (this.state.gotoPageNumber && this.props.onChange) {\n this.props.onChange(this.state.gotoPageNumber, this.props.pageSize!);\n }\n }}>\n <CheckOutlined/>\n </Button>\n </Input.Group>\n }\n trigger=\"hover\"\n onVisibleChange={(visible) => {\n if (!visible) {\n this.setState({gotoPageNumber: null});\n }\n }}\n overlayClassName=\"control-panel-popover\"\n >\n {originalElement}\n </Popover>\n );\n } else {\n return originalElement;\n }\n }}\n />\n </div>\n );\n }\n}"]}
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
- import { AutoCompleteProps, DataSourceItemObject } from "antd/es/auto-complete";
2
+ import { AutoCompleteProps } from "antd/es/auto-complete";
3
+ import { DefaultOptionType } from "antd/es/select";
3
4
  interface InputSearchWithHistoryProps extends Omit<AutoCompleteProps, "onChange" | "onSearch" | "placeholder" | "options"> {
4
5
  value?: string;
5
6
  options?: string[];
@@ -26,7 +27,7 @@ export default class AutoCompleteInput extends React.Component<InputSearchWithHi
26
27
  focus(): void;
27
28
  static getDerivedStateFromProps(props: InputSearchWithHistoryProps, state: InputSearchWithHistoryState): Partial<InputSearchWithHistoryState>;
28
29
  setSearchString(searchString: string): void;
29
- getAutocompleteOptions(): DataSourceItemObject[];
30
+ getAutocompleteOptions(): DefaultOptionType[];
30
31
  onSearch(): void;
31
32
  onSelect(searchString: string): void;
32
33
  render(): JSX.Element;
@@ -71,10 +71,10 @@ export default class AutoCompleteInput extends React.Component {
71
71
  autocompleteData.push(...this.props.options);
72
72
  }
73
73
  return autocompleteData.filter((e) => !!e).map((e) => {
74
- return {
74
+ return ({
75
75
  value: "" + (this.props.stringFormatter ? this.props.stringFormatter(e) : e),
76
- text: "" + (this.props.stringFormatter ? this.props.stringFormatter(e) : e)
77
- };
76
+ label: "" + (this.props.stringFormatter ? this.props.stringFormatter(e) : e)
77
+ });
78
78
  });
79
79
  }
80
80
  onSearch() {
@@ -1 +1 @@
1
- {"version":3,"file":"autoCompleteInput.js","sourceRoot":"","sources":["../../../../components/input/autoCompleteInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\"\nimport {AutoComplete, Input} from \"antd\";\nimport {AutoCompleteProps, DataSourceItemObject} from \"antd/es/auto-complete\";\nimport {DownOutlined} from \"@ant-design/icons\";\nimport {RefSelectProps} from \"antd/es/select\";\n\ninterface InputSearchWithHistoryProps extends Omit<AutoCompleteProps, \"onChange\" | \"onSearch\" | \"placeholder\" | \"options\"> {\n value?: string\n\n options?: string[]\n\n placeholder?: string\n\n prefix?: React.ReactNode\n\n onChange(searchString: string): void\n\n onSearch(): void\n\n onPressEnter?(): void\n\n inputReadonly?: boolean\n\n stringFormatter?(rawString: string): string\n}\n\ninterface InputSearchWithHistoryState {\n opened: boolean\n loading: boolean\n searchString?: string\n}\n\nexport default class AutoCompleteInput extends React.Component<InputSearchWithHistoryProps, InputSearchWithHistoryState> {\n static get defaultProps() {\n return {\n onSearch: () => {\n },\n onChange: () => {\n }\n };\n }\n\n private autocomplete: React.RefObject<RefSelectProps>;\n\n constructor(props: Readonly<InputSearchWithHistoryProps>) {\n super(props);\n this.state = {\n opened: false,\n loading: false,\n };\n\n this.autocomplete = React.createRef();\n this.focus = this.focus.bind(this);\n }\n\n focus() {\n this.autocomplete.current?.focus();\n }\n\n /**\n * Handling setting search string from parent component\n */\n static getDerivedStateFromProps(props: InputSearchWithHistoryProps, state: InputSearchWithHistoryState): Partial<InputSearchWithHistoryState> {\n const newState: Partial<InputSearchWithHistoryState> = {};\n if (props.value !== state.searchString) {\n newState.searchString = props.value;\n }\n return newState;\n }\n\n setSearchString(searchString: string) {\n if(this.props.stringFormatter) {\n if (searchString.indexOf(\"ðð\") < 0 && this.props.options && this.props.options.length > 0) {\n for (let i = 0; i < this.props.options.length; i++) {\n if (searchString === this.props.stringFormatter(this.props.options[i])) {\n searchString = this.props.options[i];\n break;\n }\n }\n }\n if (this.state.searchString !== searchString) {\n this.setState({opened: false, searchString: searchString}, () => {\n this.props.onChange(searchString);\n });\n } else {\n this.setState({opened: false});\n }\n } else {\n this.setState({opened: false, searchString: searchString});\n this.props.onChange(searchString);\n }\n }\n\n getAutocompleteOptions(): DataSourceItemObject[] {\n const autocompleteData = [];\n if (this.props.options && this.props.options.length > 0) {\n autocompleteData.push(...this.props.options);\n }\n return autocompleteData.filter((e) => !!e).map((e) => {\n return ({\n value: \"\" + (this.props.stringFormatter ? this.props.stringFormatter(e) : e),\n text: \"\" + (this.props.stringFormatter ? this.props.stringFormatter(e) : e)\n } as DataSourceItemObject);\n });\n }\n\n /**\n * Handling search confirmation by pressing enter\n */\n onSearch() {\n this.props.onSearch();\n }\n\n onSelect(searchString: string) {\n this.setSearchString(searchString);\n }\n\n render() {\n let {disabled, inputReadonly, stringFormatter, onChange, onSearch, placeholder, onPressEnter, options, value, size, ...rest} = this.props;\n const searchHistoryPresent = this.props.options && this.props.options.length > 0;\n return (\n <AutoComplete\n className={(this.state.opened ? \"autocomplete-open\" : \"\") + (inputReadonly ? \" readonly\" : \"\")}\n options={this.state.opened ? this.getAutocompleteOptions() : []}\n style={{width: 200}}\n value={this.state.searchString && stringFormatter ? stringFormatter(this.state.searchString) : this.state.searchString}\n defaultOpen={false}\n defaultActiveFirstOption={false}\n onChange={(searchString) => {\n if (typeof searchString === \"string\") {\n this.setSearchString(searchString as string);\n }\n }}\n onSelect={(searchString) => {\n if (typeof searchString === \"string\") {\n this.onSelect(searchString as string);\n }\n }}\n onBlur={() => {\n this.setState({opened: false});\n }}\n {...rest}\n disabled={(disabled && !inputReadonly) || this.state.loading}\n >\n <Input\n size={size}\n allowClear={!disabled || inputReadonly}\n onKeyDown={(e) => {\n if (!this.state.opened && e.keyCode === 40 /*DOWN*/) {\n this.setState({opened: true});\n } else if (e.keyCode === 27 /*ESC*/) {\n this.setState({opened: false});\n } else if (this.state.opened && ((e.keyCode === 3 /*MAC_ENTER*/ || e.keyCode === 13) /*ENTER*/)) {\n this.setState({opened: false});\n this.onSearch();\n } else if (!this.state.opened && ((e.keyCode === 3 /*MAC_ENTER*/ || e.keyCode === 13) /*ENTER*/)) {\n this.onSearch();\n }\n }}\n placeholder={placeholder}\n prefix={this.props.prefix}\n suffix={\n searchHistoryPresent && <span className=\"dropdown-arrow\">\n <DownOutlined\n className=\"dropdown-arrow-icon ant-input-clear-icon\"\n role=\"button\" tabIndex={-1}\n onClick={() => {\n if ((!this.props.disabled || this.props.inputReadonly) && !this.state.loading) {\n this.setState({opened: !this.state.opened});\n }\n }}/>\n </span>\n }\n readOnly={inputReadonly}\n className={inputReadonly ? \"readonly\" : \"\"}\n disabled={(disabled && !inputReadonly) || this.state.loading}\n onPressEnter={this.state.opened ? undefined : onPressEnter}/>\n </AutoComplete>\n );\n }\n}"]}
1
+ {"version":3,"file":"autoCompleteInput.js","sourceRoot":"","sources":["../../../../components/input/autoCompleteInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\"\nimport {AutoComplete, Input} from \"antd\";\nimport {AutoCompleteProps} from \"antd/es/auto-complete\";\nimport {DownOutlined} from \"@ant-design/icons\";\nimport {DefaultOptionType, RefSelectProps} from \"antd/es/select\";\n\ninterface InputSearchWithHistoryProps extends Omit<AutoCompleteProps, \"onChange\" | \"onSearch\" | \"placeholder\" | \"options\"> {\n value?: string\n\n options?: string[]\n\n placeholder?: string\n\n prefix?: React.ReactNode\n\n onChange(searchString: string): void\n\n onSearch(): void\n\n onPressEnter?(): void\n\n inputReadonly?: boolean\n\n stringFormatter?(rawString: string): string\n}\n\ninterface InputSearchWithHistoryState {\n opened: boolean\n loading: boolean\n searchString?: string\n}\n\nexport default class AutoCompleteInput extends React.Component<InputSearchWithHistoryProps, InputSearchWithHistoryState> {\n static get defaultProps() {\n return {\n onSearch: () => {\n },\n onChange: () => {\n }\n };\n }\n\n private autocomplete: React.RefObject<RefSelectProps>;\n\n constructor(props: Readonly<InputSearchWithHistoryProps>) {\n super(props);\n this.state = {\n opened: false,\n loading: false,\n };\n\n this.autocomplete = React.createRef();\n this.focus = this.focus.bind(this);\n }\n\n focus() {\n this.autocomplete.current?.focus();\n }\n\n /**\n * Handling setting search string from parent component\n */\n static getDerivedStateFromProps(props: InputSearchWithHistoryProps, state: InputSearchWithHistoryState): Partial<InputSearchWithHistoryState> {\n const newState: Partial<InputSearchWithHistoryState> = {};\n if (props.value !== state.searchString) {\n newState.searchString = props.value;\n }\n return newState;\n }\n\n setSearchString(searchString: string) {\n if(this.props.stringFormatter) {\n if (searchString.indexOf(\"ðð\") < 0 && this.props.options && this.props.options.length > 0) {\n for (let i = 0; i < this.props.options.length; i++) {\n if (searchString === this.props.stringFormatter(this.props.options[i])) {\n searchString = this.props.options[i];\n break;\n }\n }\n }\n if (this.state.searchString !== searchString) {\n this.setState({opened: false, searchString: searchString}, () => {\n this.props.onChange(searchString);\n });\n } else {\n this.setState({opened: false});\n }\n } else {\n this.setState({opened: false, searchString: searchString});\n this.props.onChange(searchString);\n }\n }\n\n getAutocompleteOptions(): DefaultOptionType[] {\n const autocompleteData = [];\n if (this.props.options && this.props.options.length > 0) {\n autocompleteData.push(...this.props.options);\n }\n return autocompleteData.filter((e) => !!e).map((e) => {\n return ({\n value: \"\" + (this.props.stringFormatter ? this.props.stringFormatter(e) : e),\n label: \"\" + (this.props.stringFormatter ? this.props.stringFormatter(e) : e)\n });\n });\n }\n\n /**\n * Handling search confirmation by pressing enter\n */\n onSearch() {\n this.props.onSearch();\n }\n\n onSelect(searchString: string) {\n this.setSearchString(searchString);\n }\n\n render() {\n let {disabled, inputReadonly, stringFormatter, onChange, onSearch, placeholder, onPressEnter, options, value, size, ...rest} = this.props;\n const searchHistoryPresent = this.props.options && this.props.options.length > 0;\n return (\n <AutoComplete\n className={(this.state.opened ? \"autocomplete-open\" : \"\") + (inputReadonly ? \" readonly\" : \"\")}\n options={this.state.opened ? this.getAutocompleteOptions() : []}\n style={{width: 200}}\n value={this.state.searchString && stringFormatter ? stringFormatter(this.state.searchString) : this.state.searchString}\n defaultOpen={false}\n defaultActiveFirstOption={false}\n onChange={(searchString) => {\n if (typeof searchString === \"string\") {\n this.setSearchString(searchString as string);\n }\n }}\n onSelect={(searchString) => {\n if (typeof searchString === \"string\") {\n this.onSelect(searchString as string);\n }\n }}\n onBlur={() => {\n this.setState({opened: false});\n }}\n {...rest}\n disabled={(disabled && !inputReadonly) || this.state.loading}\n >\n <Input\n size={size}\n allowClear={!disabled || inputReadonly}\n onKeyDown={(e) => {\n if (!this.state.opened && e.keyCode === 40 /*DOWN*/) {\n this.setState({opened: true});\n } else if (e.keyCode === 27 /*ESC*/) {\n this.setState({opened: false});\n } else if (this.state.opened && ((e.keyCode === 3 /*MAC_ENTER*/ || e.keyCode === 13) /*ENTER*/)) {\n this.setState({opened: false});\n this.onSearch();\n } else if (!this.state.opened && ((e.keyCode === 3 /*MAC_ENTER*/ || e.keyCode === 13) /*ENTER*/)) {\n this.onSearch();\n }\n }}\n placeholder={placeholder}\n prefix={this.props.prefix}\n suffix={\n searchHistoryPresent && <span className=\"dropdown-arrow\">\n <DownOutlined\n className=\"dropdown-arrow-icon ant-input-clear-icon\"\n role=\"button\" tabIndex={-1}\n onClick={() => {\n if ((!this.props.disabled || this.props.inputReadonly) && !this.state.loading) {\n this.setState({opened: !this.state.opened});\n }\n }}/>\n </span>\n }\n readOnly={inputReadonly}\n className={inputReadonly ? \"readonly\" : \"\"}\n disabled={(disabled && !inputReadonly) || this.state.loading}\n onPressEnter={this.state.opened ? undefined : onPressEnter}/>\n </AutoComplete>\n );\n }\n}"]}
@@ -8,7 +8,7 @@ interface HexaFormattedInputProps extends Omit<InputProps, "value" | "onChange">
8
8
  export default class HexaFormattedInput extends React.Component<HexaFormattedInputProps, any> {
9
9
  private inputRef;
10
10
  constructor(props: Readonly<HexaFormattedInputProps>);
11
- get input(): HTMLInputElement | undefined;
11
+ get input(): HTMLInputElement | null | undefined;
12
12
  focus(): void;
13
13
  private getFormattedValue;
14
14
  render(): JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"hexaFormattedInput.js","sourceRoot":"","sources":["../../../../components/input/hexaFormattedInput.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,KAAK,EAAC,MAAM,MAAM,CAAC;AAU3B,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,KAAK,CAAC,SAAuC;IAGzF,YAAY,KAAwC;QAChD,KAAK,CAAC,KAAK,CAAC,CAAC;QAHT,aAAQ,GAAiB,IAAI,CAAC;IAItC,CAAC;IAED,IAAI,KAAK;;QACL,OAAO,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,CAAC;IAChC,CAAC;IAED,KAAK;;QACD,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAEO,iBAAiB,CAAC,KAAa;QACnC,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1D,aAAa,GAAG,GAAG,GAAG,aAAa,CAAC;SACvC;QACD,OAAO,aAAa,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC;IAED,MAAM;QACF,MAAM,KAAwC,IAAI,CAAC,KAAK,EAAlD,EAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,OAAuB,EAAlB,IAAI,cAApC,kCAAqC,CAAa,CAAC;QAEzD,OAAO,CACH,oBAAC,KAAK,oBACE,IAAI,IACR,GAAG,EAAE,SAAS,CAAC,EAAE;gBACb,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC9B,CAAC,EACD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,EACrC,QAAQ,EAAE,KAAK,CAAC,EAAE;gBACd,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;gBACjC,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,EAAE;oBAC9C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC9B;YACL,CAAC,EACD,MAAM,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/B,IAAI,CAAC,KAAK,EAAE;oBACR,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;iBAClC;qBAAM;oBACH,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBACrD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;iBACvC;YACL,CAAC,EACD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IACjC,CACL,CAAC;IACN,CAAC;CACJ","sourcesContent":["import React from \"react\";\nimport {Input} from \"antd\";\nimport {InputProps} from \"antd/es\";\n\ninterface HexaFormattedInputProps extends Omit<InputProps, \"value\" | \"onChange\"> {\n value: string\n maxLength: number\n\n onChange(value: string | undefined): void\n}\n\nexport default class HexaFormattedInput extends React.Component<HexaFormattedInputProps, any> {\n private inputRef: Input | null = null;\n\n constructor(props: Readonly<HexaFormattedInputProps>) {\n super(props);\n }\n\n get input() {\n return this.inputRef?.input;\n }\n\n focus() {\n this.inputRef?.focus();\n }\n\n private getFormattedValue(value: string): string {\n let valueToFormat = value;\n for (let i = 0; i < this.props.maxLength - value.length; i++) {\n valueToFormat = \"0\" + valueToFormat;\n }\n return valueToFormat.toUpperCase();\n }\n\n render() {\n const {value, maxLength, onChange, ...rest} = this.props;\n\n return (\n <Input\n {...rest}\n ref={component => {\n this.inputRef = component;\n }}\n value={this.props.value.toUpperCase()}\n onChange={event => {\n const value = event.target.value;\n if (/^[0-9A-Fa-f]+$/.test(value) || value === \"\") {\n this.props.onChange(value);\n }\n }}\n onBlur={event => {\n let value = event.target.value;\n if (!value) {\n this.props.onChange(undefined);\n } else {\n const formattedValue = this.getFormattedValue(value);\n this.props.onChange(formattedValue);\n }\n }}\n maxLength={this.props.maxLength}\n />\n );\n }\n}"]}
1
+ {"version":3,"file":"hexaFormattedInput.js","sourceRoot":"","sources":["../../../../components/input/hexaFormattedInput.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,KAAK,EAAW,MAAM,MAAM,CAAC;AAUrC,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,KAAK,CAAC,SAAuC;IAGzF,YAAY,KAAwC;QAChD,KAAK,CAAC,KAAK,CAAC,CAAC;QAHT,aAAQ,GAAoB,IAAI,CAAC;IAIzC,CAAC;IAED,IAAI,KAAK;;QACL,OAAO,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,CAAC;IAChC,CAAC;IAED,KAAK;;QACD,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAEO,iBAAiB,CAAC,KAAa;QACnC,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1D,aAAa,GAAG,GAAG,GAAG,aAAa,CAAC;SACvC;QACD,OAAO,aAAa,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC;IAED,MAAM;QACF,MAAM,KAAwC,IAAI,CAAC,KAAK,EAAlD,EAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,OAAuB,EAAlB,IAAI,cAApC,kCAAqC,CAAa,CAAC;QAEzD,OAAO,CACH,oBAAC,KAAK,oBACE,IAAI,IACR,GAAG,EAAE,SAAS,CAAC,EAAE;gBACb,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC9B,CAAC,EACD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,EACrC,QAAQ,EAAE,KAAK,CAAC,EAAE;gBACd,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;gBACjC,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,EAAE;oBAC9C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC9B;YACL,CAAC,EACD,MAAM,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/B,IAAI,CAAC,KAAK,EAAE;oBACR,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;iBAClC;qBAAM;oBACH,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBACrD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;iBACvC;YACL,CAAC,EACD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IACjC,CACL,CAAC;IACN,CAAC;CACJ","sourcesContent":["import React from \"react\";\nimport {Input, InputRef} from \"antd\";\nimport {InputProps} from \"antd/es\";\n\ninterface HexaFormattedInputProps extends Omit<InputProps, \"value\" | \"onChange\"> {\n value: string\n maxLength: number\n\n onChange(value: string | undefined): void\n}\n\nexport default class HexaFormattedInput extends React.Component<HexaFormattedInputProps, any> {\n private inputRef: InputRef | null = null;\n\n constructor(props: Readonly<HexaFormattedInputProps>) {\n super(props);\n }\n\n get input() {\n return this.inputRef?.input;\n }\n\n focus() {\n this.inputRef?.focus();\n }\n\n private getFormattedValue(value: string): string {\n let valueToFormat = value;\n for (let i = 0; i < this.props.maxLength - value.length; i++) {\n valueToFormat = \"0\" + valueToFormat;\n }\n return valueToFormat.toUpperCase();\n }\n\n render() {\n const {value, maxLength, onChange, ...rest} = this.props;\n\n return (\n <Input\n {...rest}\n ref={component => {\n this.inputRef = component;\n }}\n value={this.props.value.toUpperCase()}\n onChange={event => {\n const value = event.target.value;\n if (/^[0-9A-Fa-f]+$/.test(value) || value === \"\") {\n this.props.onChange(value);\n }\n }}\n onBlur={event => {\n let value = event.target.value;\n if (!value) {\n this.props.onChange(undefined);\n } else {\n const formattedValue = this.getFormattedValue(value);\n this.props.onChange(formattedValue);\n }\n }}\n maxLength={this.props.maxLength}\n />\n );\n }\n}"]}
@@ -1,5 +1,5 @@
1
1
  import React, { ChangeEvent, ClipboardEvent, Component, KeyboardEvent } from 'react';
2
- import { Input } from 'antd';
2
+ import { InputRef } from 'antd';
3
3
  import InputMask from 'd2coreui/components/input/mask/inputMaskCore';
4
4
  import { InputProps } from 'antd/lib/input';
5
5
  export declare type MaskedInputProps = InputProps & {
@@ -11,7 +11,9 @@ export declare type MaskedInputProps = InputProps & {
11
11
  declare type TChangeEvent = ChangeEvent<HTMLInputElement>;
12
12
  declare type TKeyboardEvent = KeyboardEvent<HTMLInputElement>;
13
13
  declare type TClipboardEvent = ClipboardEvent<any>;
14
- export default class MaskedInput extends Component<MaskedInputProps> {
14
+ export default class MaskedInput extends Component<MaskedInputProps, {
15
+ value?: string;
16
+ }> {
15
17
  mask: InputMask;
16
18
  input: HTMLInputElement;
17
19
  constructor(props: MaskedInputProps);
@@ -45,15 +47,9 @@ export default class MaskedInput extends Component<MaskedInputProps> {
45
47
  onPaste: (e: TClipboardEvent) => void;
46
48
  onBeforeInput?: React.FormEventHandler<HTMLInputElement> | undefined;
47
49
  onKeyPress?: React.KeyboardEventHandler<HTMLInputElement> | undefined;
48
- prefixCls?: string | undefined;
49
50
  size?: import("antd/lib/button").ButtonSize;
50
- type?: import("antd/lib/_util/type").LiteralUnion<"number" | "button" | "time" | "search" | "image" | "text" | "hidden" | "color" | "checkbox" | "radio" | "tel" | "url" | "email" | "date" | "datetime-local" | "file" | "month" | "password" | "range" | "reset" | "submit" | "week", string> | undefined;
51
- onPressEnter?: React.KeyboardEventHandler<HTMLInputElement> | undefined;
52
- addonBefore?: React.ReactNode;
53
- addonAfter?: React.ReactNode;
54
- prefix?: React.ReactNode;
55
- suffix?: React.ReactNode;
56
- allowClear?: boolean | undefined;
51
+ disabled?: boolean | undefined;
52
+ status?: "" | "warning" | "error" | undefined;
57
53
  bordered?: boolean | undefined;
58
54
  dir?: string | undefined;
59
55
  form?: string | undefined;
@@ -61,6 +57,7 @@ export default class MaskedInput extends Component<MaskedInputProps> {
61
57
  style?: React.CSSProperties | undefined;
62
58
  title?: string | undefined;
63
59
  className?: string | undefined;
60
+ prefix?: React.ReactNode;
64
61
  value?: ((string | number | readonly string[]) & string) | undefined;
65
62
  children?: React.ReactNode;
66
63
  pattern?: string | undefined;
@@ -71,7 +68,6 @@ export default class MaskedInput extends Component<MaskedInputProps> {
71
68
  capture?: boolean | "user" | "environment" | undefined;
72
69
  checked?: boolean | undefined;
73
70
  crossOrigin?: string | undefined;
74
- disabled?: boolean | undefined;
75
71
  formAction?: string | undefined;
76
72
  formEncType?: string | undefined;
77
73
  formMethod?: string | undefined;
@@ -88,6 +84,7 @@ export default class MaskedInput extends Component<MaskedInputProps> {
88
84
  required?: boolean | undefined;
89
85
  src?: string | undefined;
90
86
  step?: string | number | undefined;
87
+ type?: import("rc-input/lib/utils/types").LiteralUnion<"number" | "button" | "time" | "search" | "image" | "text" | "hidden" | "color" | "checkbox" | "radio" | "tel" | "url" | "email" | "date" | "submit" | "reset" | "datetime-local" | "file" | "month" | "password" | "range" | "week", string> | undefined;
91
88
  width?: string | number | undefined;
92
89
  defaultChecked?: boolean | undefined;
93
90
  defaultValue?: string | number | readonly string[] | undefined;
@@ -332,13 +329,23 @@ export default class MaskedInput extends Component<MaskedInputProps> {
332
329
  onAnimationIterationCapture?: React.AnimationEventHandler<HTMLInputElement> | undefined;
333
330
  onTransitionEnd?: React.TransitionEventHandler<HTMLInputElement> | undefined;
334
331
  onTransitionEndCapture?: React.TransitionEventHandler<HTMLInputElement> | undefined;
332
+ prefixCls?: string | undefined;
335
333
  enterKeyHint?: "search" | "enter" | "done" | "go" | "next" | "previous" | "send" | undefined;
334
+ onPressEnter?: React.KeyboardEventHandler<HTMLInputElement> | undefined;
335
+ showCount?: boolean | import("rc-input/lib/interface").ShowCountProps | undefined;
336
+ htmlSize?: number | undefined;
337
+ suffix?: React.ReactNode;
338
+ addonBefore?: React.ReactNode;
339
+ addonAfter?: React.ReactNode;
340
+ allowClear?: boolean | {
341
+ clearIcon?: React.ReactNode;
342
+ } | undefined;
336
343
  mask: string;
337
344
  };
338
345
  _lastValue: any;
339
346
  setInputValue: (value: string) => void;
340
- _Input: Input | null;
341
- handleInputRef: (ref: Input) => void;
347
+ _Input: InputRef | null;
348
+ handleInputRef: (ref: InputRef) => void;
342
349
  render(): JSX.Element;
343
350
  }
344
351
  export {};
@@ -110,13 +110,15 @@ export default class MaskedInput extends Component {
110
110
  return;
111
111
  if (value === this._lastValue)
112
112
  return;
113
+ this.setState({ value: value });
113
114
  this._lastValue = value;
114
- this._Input.setState({ value });
115
- this._Input.input.value = value;
115
+ if (this._Input.input) {
116
+ this._Input.input.value = value;
117
+ }
116
118
  };
117
119
  this._Input = null;
118
120
  this.handleInputRef = (ref) => {
119
- if (!ref)
121
+ if (!ref || !ref.input)
120
122
  return;
121
123
  this._Input = ref;
122
124
  this.input = ref.input;
@@ -126,6 +128,9 @@ export default class MaskedInput extends Component {
126
128
  this.setInputValue(this._getDisplayValue());
127
129
  }
128
130
  };
131
+ this.state = {
132
+ value: this.props.value,
133
+ };
129
134
  let options = {
130
135
  pattern: this.props.mask,
131
136
  value: this.props.value,
@@ -214,7 +219,7 @@ export default class MaskedInput extends Component {
214
219
  this.input.blur();
215
220
  }
216
221
  render() {
217
- return React.createElement(Input, Object.assign({}, this.getInputProps(), { ref: this.handleInputRef }));
222
+ return React.createElement(Input, Object.assign({ value: this.state.value }, this.getInputProps(), { ref: this.handleInputRef }));
218
223
  }
219
224
  }
220
225
  //# sourceMappingURL=maskedInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"maskedInput.js","sourceRoot":"","sources":["../../../../components/input/maskedInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {ChangeEvent, ClipboardEvent, Component, KeyboardEvent} from 'react';\nimport {Input} from 'antd';\nimport InputMask from 'd2coreui/components/input/mask/inputMaskCore';\nimport {getSelection, isRedo, isUndo, setSelection} from 'd2coreui/components/input/mask/helpers';\nimport {InputProps} from 'antd/lib/input';\n\nexport type MaskedInputProps = InputProps & {\n mask: string;\n formatCharacters?: object;\n placeholderChar?: string;\n value?: string;\n};\n\ntype TChangeEvent = ChangeEvent<HTMLInputElement>;\ntype TKeyboardEvent = KeyboardEvent<HTMLInputElement>;\ntype TClipboardEvent = ClipboardEvent<any>;\n\nexport default class MaskedInput extends Component<MaskedInputProps> {\n mask: InputMask;\n input!: HTMLInputElement;\n\n constructor(props: MaskedInputProps) {\n super(props);\n\n let options: any = {\n pattern: this.props.mask,\n value: this.props.value,\n formatCharacters: this.props.formatCharacters\n };\n\n if (this.props.placeholderChar) {\n options.placeholderChar = this.props.placeholderChar;\n }\n\n this.mask = new InputMask(options);\n }\n\n componentDidMount() {\n this.setInputValue(this._getDisplayValue());\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: MaskedInputProps) {\n if (\n this.props.mask !== nextProps.mask &&\n this.props.value !== nextProps.mask\n ) {\n // if we get a new value and a new mask at the same time\n // check if the mask.value is still the initial value\n // - if so use the nextProps value\n // - otherwise the `this.mask` has a value for us (most likely from paste action)\n if (this.mask.getValue() === this.mask.emptyValue) {\n this.mask.setPattern(nextProps.mask, {value: nextProps.value});\n } else {\n this.mask.setPattern(nextProps.mask, {\n value: this.mask.getRawValue()\n });\n }\n } else if (this.props.mask !== nextProps.mask) {\n this.mask.setPattern(nextProps.mask, {value: this.mask.getRawValue()});\n }\n\n if (this.props.value !== nextProps.value) {\n this.mask.setValue(nextProps.value);\n this.setInputValue(this._getDisplayValue());\n }\n }\n\n UNSAFE_componentWillUpdate(nextProps: MaskedInputProps) {\n if (!this.props.mask) return null;\n if (nextProps.mask !== this.props.mask) {\n this._updatePattern(nextProps);\n }\n return;\n }\n\n componentDidUpdate(prevProps: MaskedInputProps) {\n if (!this.props.mask) return null;\n if (prevProps.mask !== this.props.mask && this.mask.selection.start) {\n this._updateInputSelection();\n }\n return;\n }\n\n _updatePattern(props: MaskedInputProps) {\n this.mask.setPattern(props.mask, {\n value: this.mask.getRawValue(),\n selection: getSelection(this.input)\n });\n }\n\n _updateMaskSelection() {\n this.mask.selection = getSelection(this.input);\n }\n\n _updateInputSelection() {\n setSelection(this.input, this.mask.selection);\n }\n\n _onChange = (e: TChangeEvent) => {\n let maskValue = this.mask.getValue();\n let incomingValue = e.target.value;\n if (incomingValue !== maskValue) {\n // only modify mask if form contents actually changed\n this._updateMaskSelection();\n this.mask.setValue(incomingValue); // write the whole updated value into the mask\n this.setInputValue(this._getDisplayValue()); // update the form with pattern applied to the value\n this._updateInputSelection();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n };\n\n _onKeyDown = (e: TKeyboardEvent) => {\n setTimeout(() => {\n this.input.classList[this.input.value ? 'add' : 'remove']('has-value');\n }, 100);\n\n if (isUndo(e)) {\n e.preventDefault();\n if (this.mask.undo()) {\n this.setInputValue(this._getDisplayValue());\n this._updateInputSelection();\n if (this.props.onChange) {\n this.props.onChange(e as unknown as TChangeEvent);\n }\n }\n return;\n } else if (isRedo(e)) {\n e.preventDefault();\n if (this.mask.redo()) {\n this.setInputValue(this._getDisplayValue());\n this._updateInputSelection();\n if (this.props.onChange) {\n this.props.onChange(e as unknown as TChangeEvent);\n }\n }\n return;\n }\n\n if (e.key === 'Backspace') {\n e.preventDefault();\n this._updateMaskSelection();\n if (this.mask.backspace()) {\n let value = this._getDisplayValue();\n this.setInputValue(value);\n if (value) {\n this._updateInputSelection();\n }\n if (this.props.onChange) {\n this.props.onChange(e as unknown as TChangeEvent);\n }\n }\n }\n };\n\n _onKeyPress = (e: TKeyboardEvent) => {\n // Ignore modified key presses\n // Ignore enter key to allow form submission\n if (e.metaKey || e.altKey || e.ctrlKey || e.key === 'Enter') {\n return;\n }\n\n e.preventDefault();\n this._updateMaskSelection();\n if (this.mask.input(e.key /*|| e.data*/)) {\n this.setInputValue(this.mask.getValue());\n this._updateInputSelection();\n if (this.props.onChange) {\n this.props.onChange(e as unknown as TChangeEvent);\n }\n }\n };\n\n _onPaste = (e: TClipboardEvent) => {\n e.preventDefault();\n this._updateMaskSelection();\n // getData value needed for IE also works in FF & Chrome\n if (this.mask.paste(e.clipboardData.getData('Text'))) {\n // @ts-ignore\n this.setInputValue(this.mask.getValue());\n // Timeout needed for IE\n setTimeout(() => this._updateInputSelection(), 0);\n if (this.props.onChange) {\n // @ts-ignore\n this.props.onChange(e);\n }\n }\n };\n\n _getDisplayValue() {\n let value = this.mask.getValue();\n return value === this.mask.emptyValue ? '' : value;\n }\n\n _keyPressPropName() {\n if (typeof navigator !== 'undefined') {\n return navigator.userAgent.match(/Android/i)\n ? 'onBeforeInput'\n : 'onKeyPress';\n }\n return 'onKeyPress';\n }\n\n _getEventHandlers(): {\n onChange: (e: TChangeEvent) => void;\n onKeyDown: (e: TKeyboardEvent) => void;\n onPaste: (e: TClipboardEvent) => void;\n onBeforeInput?: (e: TChangeEvent) => void;\n onKeyPress?: (e: TKeyboardEvent) => void;\n } {\n return {\n onChange: this._onChange,\n onKeyDown: this._onKeyDown,\n onPaste: this._onPaste,\n [this._keyPressPropName()]: this._onKeyPress\n };\n }\n\n focus() {\n this.input.focus();\n }\n\n blur() {\n this.input.blur();\n }\n\n getInputProps = () => {\n let maxLength = this.mask.pattern.length;\n let eventHandlers = this._getEventHandlers();\n let {placeholder = this.mask.emptyValue} = this.props;\n\n let {placeholderChar, formatCharacters, ...cleanedProps} = this.props;\n const props = {...cleanedProps, ...eventHandlers, maxLength, placeholder};\n delete props.value;\n return props;\n };\n\n _lastValue = null as any;\n setInputValue = (value: string) => {\n if (!this._Input) return;\n if (value === this._lastValue) return;\n\n this._lastValue = value;\n this._Input.setState({value});\n this._Input.input.value = value;\n };\n\n _Input: Input | null = null;\n handleInputRef = (ref: Input) => {\n if (!ref) return;\n this._Input = ref;\n this.input = ref.input;\n\n if (\n this._lastValue === null &&\n typeof this.props.defaultValue === 'string'\n ) {\n this.mask.setValue(this.props.defaultValue); // write the whole updated value into the mask\n this.setInputValue(this._getDisplayValue()); // update the form with pattern applied to the value\n }\n };\n\n render() {\n return <Input {...this.getInputProps()} ref={this.handleInputRef}/>;\n }\n}"]}
1
+ {"version":3,"file":"maskedInput.js","sourceRoot":"","sources":["../../../../components/input/maskedInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {ChangeEvent, ClipboardEvent, Component, KeyboardEvent} from 'react';\nimport {Input, InputRef} from 'antd';\nimport InputMask from 'd2coreui/components/input/mask/inputMaskCore';\nimport {getSelection, isRedo, isUndo, setSelection} from 'd2coreui/components/input/mask/helpers';\nimport {InputProps} from 'antd/lib/input';\n\nexport type MaskedInputProps = InputProps & {\n mask: string;\n formatCharacters?: object;\n placeholderChar?: string;\n value?: string;\n};\n\ntype TChangeEvent = ChangeEvent<HTMLInputElement>;\ntype TKeyboardEvent = KeyboardEvent<HTMLInputElement>;\ntype TClipboardEvent = ClipboardEvent<any>;\n\nexport default class MaskedInput extends Component<MaskedInputProps, {value?: string}> {\n mask: InputMask;\n input!: HTMLInputElement;\n\n constructor(props: MaskedInputProps) {\n super(props);\n\n this.state = {\n value: this.props.value,\n }\n\n let options: any = {\n pattern: this.props.mask,\n value: this.props.value,\n formatCharacters: this.props.formatCharacters\n };\n\n if (this.props.placeholderChar) {\n options.placeholderChar = this.props.placeholderChar;\n }\n\n this.mask = new InputMask(options);\n }\n\n componentDidMount() {\n this.setInputValue(this._getDisplayValue());\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: MaskedInputProps) {\n if (\n this.props.mask !== nextProps.mask &&\n this.props.value !== nextProps.mask\n ) {\n // if we get a new value and a new mask at the same time\n // check if the mask.value is still the initial value\n // - if so use the nextProps value\n // - otherwise the `this.mask` has a value for us (most likely from paste action)\n if (this.mask.getValue() === this.mask.emptyValue) {\n this.mask.setPattern(nextProps.mask, {value: nextProps.value});\n } else {\n this.mask.setPattern(nextProps.mask, {\n value: this.mask.getRawValue()\n });\n }\n } else if (this.props.mask !== nextProps.mask) {\n this.mask.setPattern(nextProps.mask, {value: this.mask.getRawValue()});\n }\n\n if (this.props.value !== nextProps.value) {\n this.mask.setValue(nextProps.value);\n this.setInputValue(this._getDisplayValue());\n }\n }\n\n UNSAFE_componentWillUpdate(nextProps: MaskedInputProps) {\n if (!this.props.mask) return null;\n if (nextProps.mask !== this.props.mask) {\n this._updatePattern(nextProps);\n }\n return;\n }\n\n componentDidUpdate(prevProps: MaskedInputProps) {\n if (!this.props.mask) return null;\n if (prevProps.mask !== this.props.mask && this.mask.selection.start) {\n this._updateInputSelection();\n }\n return;\n }\n\n _updatePattern(props: MaskedInputProps) {\n this.mask.setPattern(props.mask, {\n value: this.mask.getRawValue(),\n selection: getSelection(this.input)\n });\n }\n\n _updateMaskSelection() {\n this.mask.selection = getSelection(this.input);\n }\n\n _updateInputSelection() {\n setSelection(this.input, this.mask.selection);\n }\n\n _onChange = (e: TChangeEvent) => {\n let maskValue = this.mask.getValue();\n let incomingValue = e.target.value;\n if (incomingValue !== maskValue) {\n // only modify mask if form contents actually changed\n this._updateMaskSelection();\n this.mask.setValue(incomingValue); // write the whole updated value into the mask\n this.setInputValue(this._getDisplayValue()); // update the form with pattern applied to the value\n this._updateInputSelection();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n };\n\n _onKeyDown = (e: TKeyboardEvent) => {\n setTimeout(() => {\n this.input.classList[this.input.value ? 'add' : 'remove']('has-value');\n }, 100);\n\n if (isUndo(e)) {\n e.preventDefault();\n if (this.mask.undo()) {\n this.setInputValue(this._getDisplayValue());\n this._updateInputSelection();\n if (this.props.onChange) {\n this.props.onChange(e as unknown as TChangeEvent);\n }\n }\n return;\n } else if (isRedo(e)) {\n e.preventDefault();\n if (this.mask.redo()) {\n this.setInputValue(this._getDisplayValue());\n this._updateInputSelection();\n if (this.props.onChange) {\n this.props.onChange(e as unknown as TChangeEvent);\n }\n }\n return;\n }\n\n if (e.key === 'Backspace') {\n e.preventDefault();\n this._updateMaskSelection();\n if (this.mask.backspace()) {\n let value = this._getDisplayValue();\n this.setInputValue(value);\n if (value) {\n this._updateInputSelection();\n }\n if (this.props.onChange) {\n this.props.onChange(e as unknown as TChangeEvent);\n }\n }\n }\n };\n\n _onKeyPress = (e: TKeyboardEvent) => {\n // Ignore modified key presses\n // Ignore enter key to allow form submission\n if (e.metaKey || e.altKey || e.ctrlKey || e.key === 'Enter') {\n return;\n }\n\n e.preventDefault();\n this._updateMaskSelection();\n if (this.mask.input(e.key /*|| e.data*/)) {\n this.setInputValue(this.mask.getValue());\n this._updateInputSelection();\n if (this.props.onChange) {\n this.props.onChange(e as unknown as TChangeEvent);\n }\n }\n };\n\n _onPaste = (e: TClipboardEvent) => {\n e.preventDefault();\n this._updateMaskSelection();\n // getData value needed for IE also works in FF & Chrome\n if (this.mask.paste(e.clipboardData.getData('Text'))) {\n // @ts-ignore\n this.setInputValue(this.mask.getValue());\n // Timeout needed for IE\n setTimeout(() => this._updateInputSelection(), 0);\n if (this.props.onChange) {\n // @ts-ignore\n this.props.onChange(e);\n }\n }\n };\n\n _getDisplayValue() {\n let value = this.mask.getValue();\n return value === this.mask.emptyValue ? '' : value;\n }\n\n _keyPressPropName() {\n if (typeof navigator !== 'undefined') {\n return navigator.userAgent.match(/Android/i)\n ? 'onBeforeInput'\n : 'onKeyPress';\n }\n return 'onKeyPress';\n }\n\n _getEventHandlers(): {\n onChange: (e: TChangeEvent) => void;\n onKeyDown: (e: TKeyboardEvent) => void;\n onPaste: (e: TClipboardEvent) => void;\n onBeforeInput?: (e: TChangeEvent) => void;\n onKeyPress?: (e: TKeyboardEvent) => void;\n } {\n return {\n onChange: this._onChange,\n onKeyDown: this._onKeyDown,\n onPaste: this._onPaste,\n [this._keyPressPropName()]: this._onKeyPress\n };\n }\n\n focus() {\n this.input.focus();\n }\n\n blur() {\n this.input.blur();\n }\n\n getInputProps = () => {\n let maxLength = this.mask.pattern.length;\n let eventHandlers = this._getEventHandlers();\n let {placeholder = this.mask.emptyValue} = this.props;\n\n let {placeholderChar, formatCharacters, ...cleanedProps} = this.props;\n const props = {...cleanedProps, ...eventHandlers, maxLength, placeholder};\n delete props.value;\n return props;\n };\n\n _lastValue = null as any;\n setInputValue = (value: string) => {\n if (!this._Input) return;\n if (value === this._lastValue) return;\n\n this.setState({value: value});\n\n this._lastValue = value;\n if (this._Input.input) {\n this._Input.input.value = value;\n }\n };\n\n _Input: InputRef | null = null;\n handleInputRef = (ref: InputRef) => {\n if (!ref || !ref.input) return;\n this._Input = ref;\n this.input = ref.input;\n\n if (\n this._lastValue === null &&\n typeof this.props.defaultValue === 'string'\n ) {\n this.mask.setValue(this.props.defaultValue); // write the whole updated value into the mask\n this.setInputValue(this._getDisplayValue()); // update the form with pattern applied to the value\n }\n };\n\n render() {\n return <Input value={this.state.value} {...this.getInputProps()} ref={this.handleInputRef}/>;\n }\n}"]}
@@ -16,7 +16,7 @@ export default class EnumValuePicker extends React.Component {
16
16
  render() {
17
17
  const _a = this.props, { value, allowedValueTypes, onChange, translationPrefix, values, translateValue } = _a, others = __rest(_a, ["value", "allowedValueTypes", "onChange", "translationPrefix", "values", "translateValue"]);
18
18
  let selectValue = value;
19
- if (selectValue !== undefined && allowedValueTypes) {
19
+ if (selectValue !== undefined && selectValue !== null && allowedValueTypes) {
20
20
  if (!allowedValueTypes.includes(selectValue)) {
21
21
  selectValue = undefined;
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"enumValuePicker.js","sourceRoot":"","sources":["../../../../components/picker/enumValuePicker.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAc,MAAM,MAAM,CAAC;AACzC,OAAO,IAAI,MAAM,kBAAkB,CAAC;AAapC,MAAM,CAAC,OAAO,OAAO,eAAkC,SAAQ,KAAK,CAAC,SAAuC;IACxG,MAAM;QACF,MAAM,KAA6F,IAAI,CAAC,KAAK,EAAvG,EAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,OAAyB,EAApB,MAAM,cAAzF,2FAA0F,CAAa,CAAC;QAC9G,IAAI,WAAW,GAAkB,KAAK,CAAC;QAEvC,IAAI,WAAW,KAAK,SAAS,IAAI,iBAAiB,EAAE;YAChD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBAC1C,WAAW,GAAG,SAAS,CAAC;aAC3B;SACJ;QAED,OAAO,CACH,oBAAC,MAAM,kBAAI,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC/C,CAAC,IACG,MAAM,GAChB,CAAC,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7D,IAAI,IAAI,GAAW,GAAG,CAAC;YACvB,IAAI,cAAc,EAAE;gBAChB,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACpE;YAED,OAAO,CACH,oBAAC,MAAM,CAAC,MAAM,IAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAC9B,IAAI,CACO,CACnB,CAAC;QACN,CAAC,CAAC,CACG,CACZ,CAAC;IACN,CAAC;CACJ","sourcesContent":["import React from \"react\";\nimport {Select, SelectProps} from \"antd\";\nimport i18n from \"d2core/i18n/i18n\";\n\ntype EnumRepresentation<T extends string> = {[key in string]: T};\n\nexport interface EnumValuePickerProps<T extends string> extends Omit<SelectProps<T>, \"onChange\"> {\n allowedValueTypes?: T[]\n values: EnumRepresentation<T>\n translateValue?: boolean\n translationPrefix?: string\n\n onChange(value?: T): void\n}\n\nexport default class EnumValuePicker<T extends string> extends React.Component<EnumValuePickerProps<T>, any> {\n render() {\n const {value, allowedValueTypes, onChange, translationPrefix, values, translateValue, ...others} = this.props;\n let selectValue: T | undefined = value;\n\n if (selectValue !== undefined && allowedValueTypes) {\n if (!allowedValueTypes.includes(selectValue)) {\n selectValue = undefined;\n }\n }\n\n return (\n <Select<T> value={selectValue}\n onChange={(value) => {\n onChange(value !== \"\" ? value : undefined);\n }}\n {...others}>\n {(allowedValueTypes ?? Object.values(values) as T[]).map((val) => {\n let text: string = val;\n if (translateValue) {\n text = i18n(translationPrefix ? translationPrefix + text : text);\n }\n\n return (\n <Select.Option value={val} key={val}>\n {text}\n </Select.Option>\n );\n })}\n </Select>\n );\n }\n}"]}
1
+ {"version":3,"file":"enumValuePicker.js","sourceRoot":"","sources":["../../../../components/picker/enumValuePicker.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAc,MAAM,MAAM,CAAC;AACzC,OAAO,IAAI,MAAM,kBAAkB,CAAC;AAapC,MAAM,CAAC,OAAO,OAAO,eAAkC,SAAQ,KAAK,CAAC,SAAuC;IACxG,MAAM;QACF,MAAM,KAA6F,IAAI,CAAC,KAAK,EAAvG,EAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,OAAyB,EAApB,MAAM,cAAzF,2FAA0F,CAAa,CAAC;QAC9G,IAAI,WAAW,GAAyB,KAAK,CAAC;QAE9C,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,IAAI,iBAAiB,EAAE;YACxE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBAC1C,WAAW,GAAG,SAAS,CAAC;aAC3B;SACJ;QAED,OAAO,CACH,oBAAC,MAAM,kBAAI,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC/C,CAAC,IACG,MAAM,GAChB,CAAC,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7D,IAAI,IAAI,GAAW,GAAG,CAAC;YACvB,IAAI,cAAc,EAAE;gBAChB,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACpE;YAED,OAAO,CACH,oBAAC,MAAM,CAAC,MAAM,IAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAC9B,IAAI,CACO,CACnB,CAAC;QACN,CAAC,CAAC,CACG,CACZ,CAAC;IACN,CAAC;CACJ","sourcesContent":["import React from \"react\";\nimport {Select, SelectProps} from \"antd\";\nimport i18n from \"d2core/i18n/i18n\";\n\ntype EnumRepresentation<T extends string> = {[key in string]: T};\n\nexport interface EnumValuePickerProps<T extends string> extends Omit<SelectProps<T>, \"onChange\"> {\n allowedValueTypes?: T[]\n values: EnumRepresentation<T>\n translateValue?: boolean\n translationPrefix?: string\n\n onChange(value?: T): void\n}\n\nexport default class EnumValuePicker<T extends string> extends React.Component<EnumValuePickerProps<T>, any> {\n render() {\n const {value, allowedValueTypes, onChange, translationPrefix, values, translateValue, ...others} = this.props;\n let selectValue: T | null | undefined = value;\n\n if (selectValue !== undefined && selectValue !== null && allowedValueTypes) {\n if (!allowedValueTypes.includes(selectValue)) {\n selectValue = undefined;\n }\n }\n\n return (\n <Select<T> value={selectValue}\n onChange={(value) => {\n onChange(value !== \"\" ? value : undefined);\n }}\n {...others}>\n {(allowedValueTypes ?? Object.values(values) as T[]).map((val) => {\n let text: string = val;\n if (translateValue) {\n text = i18n(translationPrefix ? translationPrefix + text : text);\n }\n\n return (\n <Select.Option value={val} key={val}>\n {text}\n </Select.Option>\n );\n })}\n </Select>\n );\n }\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "d2coreui",
3
- "version": "21.0.31",
3
+ "version": "21.0.32",
4
4
  "description": "Core UI components and utilities library.",
5
5
  "author": "Ipesoft s.r.o.",
6
6
  "license": "MIT",
@@ -24,7 +24,7 @@
24
24
  "@types/react-resizable": "1.7.4",
25
25
  "ag-grid-community": "26.1.0",
26
26
  "ag-grid-react": "26.1.0",
27
- "antd": "4.16.13",
27
+ "antd": "4.24.13",
28
28
  "codemirror": "5.59.2",
29
29
  "dom-scroll-into-view": "2.0.1",
30
30
  "draft-convert": "2.1.12",