@gingkoo/pandora-metabase 1.0.144 → 1.0.145

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.
@@ -1,9 +1,11 @@
1
1
  import './index.less';
2
- import { MetaData_ColumnsType } from '../../../store/types';
2
+ import { MetaData_ColumnsType, MetaData_TableType } from '../../../store/types';
3
3
  interface PropsType {
4
4
  data: MetaData_ColumnsType[];
5
+ table?: Partial<MetaData_TableType>;
6
+ metaIndex?: number;
5
7
  groupIndex: number;
6
8
  onChange: (record: MetaData_ColumnsType[], newMetaList?: any[]) => void;
7
9
  }
8
- declare const SelectColumn: ({ data, groupIndex, onChange }: PropsType) => import("react/jsx-runtime").JSX.Element;
10
+ declare const SelectColumn: ({ data, table, metaIndex, groupIndex, onChange }: PropsType) => import("react/jsx-runtime").JSX.Element;
9
11
  export default SelectColumn;
@@ -16,6 +16,7 @@ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
16
16
  var _classnames = _interopRequireDefault(require("classnames"));
17
17
  var _pandora = require("@gingkoo/pandora");
18
18
  var _types = require("../../../store/types");
19
+ var _enum = require("../../../store/enum");
19
20
  var _locale = require("../../../locale");
20
21
  var _icons = require("../../icons");
21
22
  var _useProvider = require("../../../hooks/use-provider");
@@ -24,6 +25,8 @@ var _utils = require("../../../utils");
24
25
  var SelectColumn = function SelectColumn(_ref) {
25
26
  var _ref$data = _ref.data,
26
27
  data = _ref$data === void 0 ? [] : _ref$data,
28
+ table = _ref.table,
29
+ metaIndex = _ref.metaIndex,
27
30
  groupIndex = _ref.groupIndex,
28
31
  onChange = _ref.onChange;
29
32
  var _useState = (0, _react.useState)([]),
@@ -104,6 +107,7 @@ var SelectColumn = function SelectColumn(_ref) {
104
107
  }
105
108
  var onChangeFieldAlias = function onChangeFieldAlias(val, i) {
106
109
  var fieldAlias = val || '';
110
+ var currentColumn = columns[i];
107
111
  _pandora.Modal.confirm({
108
112
  title: (0, _locale.__)('SqlQueryBuilder.alias'),
109
113
  content: (0, _jsxRuntime.jsx)(_pandora.Input, {
@@ -114,7 +118,7 @@ var SelectColumn = function SelectColumn(_ref) {
114
118
  }),
115
119
  onOk: function () {
116
120
  var _onOk = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() {
117
- var newColumns, newMetaList;
121
+ var newColumns, newMetaList, changedColumn, targetMetaIndex, targetMeta;
118
122
  return _regenerator["default"].wrap(function (_context) {
119
123
  while (1) switch (_context.prev = _context.next) {
120
124
  case 0:
@@ -129,9 +133,29 @@ var SelectColumn = function SelectColumn(_ref) {
129
133
  newMetaList = store.metaList[groupIndex].list.slice();
130
134
  newColumns[i].fieldAlias = fieldAlias;
131
135
  newColumns[i].fieldUuid = newColumns[i].fieldUuid || (0, _helper.uuidv4)('field');
132
- newMetaList = (0, _utils.changeFieldAlias)(newMetaList, newColumns[i]);
136
+ changedColumn = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, newColumns[i]), {}, {
137
+ datasourceId: newColumns[i].datasourceId || (table === null || table === void 0 ? void 0 : table.datasourceId) || '',
138
+ datasourceName: newColumns[i].datasourceName || (table === null || table === void 0 ? void 0 : table.datasourceName) || '',
139
+ tableId: newColumns[i].tableId || (table === null || table === void 0 ? void 0 : table.id) || '',
140
+ tableUuid: newColumns[i].tableUuid || (table === null || table === void 0 ? void 0 : table.tableUuid) || '',
141
+ table: (table === null || table === void 0 ? void 0 : table.name) || ''
142
+ });
143
+ newColumns = originList.map(function (item) {
144
+ return (0, _helper.isSameColumnByIdFirst)(item, currentColumn) ? changedColumn : item;
145
+ });
146
+ newMetaList = (0, _utils.changeFieldAlias)(newMetaList, changedColumn);
147
+ targetMetaIndex = typeof metaIndex === 'number' ? metaIndex : newMetaList.findIndex(function (item) {
148
+ return item.type === _enum.TypeEnum.data;
149
+ });
150
+ targetMeta = newMetaList[targetMetaIndex];
151
+ if ((targetMeta === null || targetMeta === void 0 ? void 0 : targetMeta.type) === _enum.TypeEnum.data) {
152
+ targetMeta.columns = newColumns;
153
+ }
154
+ if ((targetMeta === null || targetMeta === void 0 ? void 0 : targetMeta.type) === _enum.TypeEnum.joinData) {
155
+ targetMeta.columns = newColumns;
156
+ }
133
157
  store.setMeta(newMetaList, groupIndex, {
134
- obj: newColumns[i],
158
+ obj: changedColumn,
135
159
  type: _types.ChangeType.fieldAlias
136
160
  });
137
161
  onSelect(newColumns, newMetaList, true);
@@ -374,6 +374,8 @@ var JoinData = function JoinData(props) {
374
374
  node: e.currentTarget,
375
375
  content: (0, _jsxRuntime.jsx)(_dialog.SelectColumn, {
376
376
  data: columns,
377
+ table: meta.table2,
378
+ metaIndex: index,
377
379
  groupIndex: groupIndex,
378
380
  onChange: function onChange(data, newMetaList) {
379
381
  var _newMetaList = newMetaList || store.metaList[groupIndex].list.slice();
@@ -125,6 +125,8 @@ var TableData = function TableData(props) {
125
125
  node: e.currentTarget || e.target,
126
126
  content: (0, _jsxRuntime.jsx)(_dialog.SelectColumn, {
127
127
  groupIndex: groupIndex,
128
+ table: meta.table,
129
+ metaIndex: 0,
128
130
  data: columns,
129
131
  onChange: function onChange(data, newMetaList) {
130
132
  var _newMetaList = newMetaList || store.metaList[groupIndex].list.slice();
@@ -1,9 +1,11 @@
1
1
  import './index.less';
2
- import { MetaData_ColumnsType } from '../../../store/types';
2
+ import { MetaData_ColumnsType, MetaData_TableType } from '../../../store/types';
3
3
  interface PropsType {
4
4
  data: MetaData_ColumnsType[];
5
+ table?: Partial<MetaData_TableType>;
6
+ metaIndex?: number;
5
7
  groupIndex: number;
6
8
  onChange: (record: MetaData_ColumnsType[], newMetaList?: any[]) => void;
7
9
  }
8
- declare const SelectColumn: ({ data, groupIndex, onChange }: PropsType) => import("react/jsx-runtime").JSX.Element;
10
+ declare const SelectColumn: ({ data, table, metaIndex, groupIndex, onChange }: PropsType) => import("react/jsx-runtime").JSX.Element;
9
11
  export default SelectColumn;
@@ -9,6 +9,7 @@ import cloneDeep from 'lodash/cloneDeep';
9
9
  import cx from 'classnames';
10
10
  import { Button, Modal, Input, Tooltip, Toast } from '@gingkoo/pandora';
11
11
  import { ChangeType } from '../../../store/types';
12
+ import { TypeEnum } from '../../../store/enum';
12
13
  import { __ } from '../../../locale';
13
14
  import { NotSelectIcon, SelectIcon } from '../../icons';
14
15
  import { useStore } from '../../../hooks/use-provider';
@@ -18,6 +19,8 @@ import { SearchIcon } from '../../icons';
18
19
  var SelectColumn = function SelectColumn(_ref) {
19
20
  var _ref$data = _ref.data,
20
21
  data = _ref$data === void 0 ? [] : _ref$data,
22
+ table = _ref.table,
23
+ metaIndex = _ref.metaIndex,
21
24
  groupIndex = _ref.groupIndex,
22
25
  onChange = _ref.onChange;
23
26
  var _useState = useState([]),
@@ -98,6 +101,7 @@ var SelectColumn = function SelectColumn(_ref) {
98
101
  }
99
102
  var onChangeFieldAlias = function onChangeFieldAlias(val, i) {
100
103
  var fieldAlias = val || '';
104
+ var currentColumn = columns[i];
101
105
  Modal.confirm({
102
106
  title: __('SqlQueryBuilder.alias'),
103
107
  content: _jsx(Input, {
@@ -108,7 +112,7 @@ var SelectColumn = function SelectColumn(_ref) {
108
112
  }),
109
113
  onOk: function () {
110
114
  var _onOk = _asyncToGenerator(_regeneratorRuntime.mark(function _callee() {
111
- var newColumns, newMetaList;
115
+ var newColumns, newMetaList, changedColumn, targetMetaIndex, targetMeta;
112
116
  return _regeneratorRuntime.wrap(function (_context) {
113
117
  while (1) switch (_context.prev = _context.next) {
114
118
  case 0:
@@ -123,9 +127,29 @@ var SelectColumn = function SelectColumn(_ref) {
123
127
  newMetaList = store.metaList[groupIndex].list.slice();
124
128
  newColumns[i].fieldAlias = fieldAlias;
125
129
  newColumns[i].fieldUuid = newColumns[i].fieldUuid || uuidv4('field');
126
- newMetaList = changeFieldAlias(newMetaList, newColumns[i]);
130
+ changedColumn = _objectSpread(_objectSpread({}, newColumns[i]), {}, {
131
+ datasourceId: newColumns[i].datasourceId || (table === null || table === void 0 ? void 0 : table.datasourceId) || '',
132
+ datasourceName: newColumns[i].datasourceName || (table === null || table === void 0 ? void 0 : table.datasourceName) || '',
133
+ tableId: newColumns[i].tableId || (table === null || table === void 0 ? void 0 : table.id) || '',
134
+ tableUuid: newColumns[i].tableUuid || (table === null || table === void 0 ? void 0 : table.tableUuid) || '',
135
+ table: (table === null || table === void 0 ? void 0 : table.name) || ''
136
+ });
137
+ newColumns = originList.map(function (item) {
138
+ return isSameColumnByIdFirst(item, currentColumn) ? changedColumn : item;
139
+ });
140
+ newMetaList = changeFieldAlias(newMetaList, changedColumn);
141
+ targetMetaIndex = typeof metaIndex === 'number' ? metaIndex : newMetaList.findIndex(function (item) {
142
+ return item.type === TypeEnum.data;
143
+ });
144
+ targetMeta = newMetaList[targetMetaIndex];
145
+ if ((targetMeta === null || targetMeta === void 0 ? void 0 : targetMeta.type) === TypeEnum.data) {
146
+ targetMeta.columns = newColumns;
147
+ }
148
+ if ((targetMeta === null || targetMeta === void 0 ? void 0 : targetMeta.type) === TypeEnum.joinData) {
149
+ targetMeta.columns = newColumns;
150
+ }
127
151
  store.setMeta(newMetaList, groupIndex, {
128
- obj: newColumns[i],
152
+ obj: changedColumn,
129
153
  type: ChangeType.fieldAlias
130
154
  });
131
155
  onSelect(newColumns, newMetaList, true);
@@ -369,6 +369,8 @@ var JoinData = function JoinData(props) {
369
369
  node: e.currentTarget,
370
370
  content: _jsx(SelectColumn, {
371
371
  data: columns,
372
+ table: meta.table2,
373
+ metaIndex: index,
372
374
  groupIndex: groupIndex,
373
375
  onChange: function onChange(data, newMetaList) {
374
376
  var _newMetaList = newMetaList || store.metaList[groupIndex].list.slice();
@@ -119,6 +119,8 @@ var TableData = function TableData(props) {
119
119
  node: e.currentTarget || e.target,
120
120
  content: _jsx(SelectColumn, {
121
121
  groupIndex: groupIndex,
122
+ table: meta.table,
123
+ metaIndex: 0,
122
124
  data: columns,
123
125
  onChange: function onChange(data, newMetaList) {
124
126
  var _newMetaList = newMetaList || store.metaList[groupIndex].list.slice();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gingkoo/pandora-metabase",
3
- "version": "1.0.144",
3
+ "version": "1.0.145",
4
4
  "description": "",
5
5
  "main": "lib/es/index.js",
6
6
  "module": "lib/es/index.js",