mandarina-antd 1.3.2 → 1.3.5

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.
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ extendStatics(d, b);
11
+ function __() { this.constructor = d; }
12
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
+ };
14
+ })();
15
+ var __assign = (this && this.__assign) || function () {
16
+ __assign = Object.assign || function(t) {
17
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
18
+ s = arguments[i];
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20
+ t[p] = s[p];
21
+ }
22
+ return t;
23
+ };
24
+ return __assign.apply(this, arguments);
25
+ };
26
+ var __rest = (this && this.__rest) || function (s, e) {
27
+ var t = {};
28
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
29
+ t[p] = s[p];
30
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
31
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
32
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
33
+ t[p[i]] = s[p[i]];
34
+ }
35
+ return t;
36
+ };
37
+ var __read = (this && this.__read) || function (o, n) {
38
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
39
+ if (!m) return o;
40
+ var i = m.call(o), r, ar = [], e;
41
+ try {
42
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
43
+ }
44
+ catch (error) { e = { error: error }; }
45
+ finally {
46
+ try {
47
+ if (r && !r.done && (m = i["return"])) m.call(i);
48
+ }
49
+ finally { if (e) throw e.error; }
50
+ }
51
+ return ar;
52
+ };
53
+ var __spread = (this && this.__spread) || function () {
54
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
55
+ return ar;
56
+ };
57
+ var __importDefault = (this && this.__importDefault) || function (mod) {
58
+ return (mod && mod.__esModule) ? mod : { "default": mod };
59
+ };
60
+ var __importStar = (this && this.__importStar) || function (mod) {
61
+ if (mod && mod.__esModule) return mod;
62
+ var result = {};
63
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
64
+ result["default"] = mod;
65
+ return result;
66
+ };
67
+ Object.defineProperty(exports, "__esModule", { value: true });
68
+ var table_1 = __importDefault(require("antd/lib/table"));
69
+ var mandarina_1 = require("mandarina");
70
+ var React = __importStar(require("react"));
71
+ var lodash_1 = require("lodash");
72
+ var ListVirtualized_1 = require("./ListVirtualized");
73
+ var Mutate_1 = require("mandarina/build/Operations/Mutate");
74
+ var antd_1 = require("antd");
75
+ //
76
+ // const components = {
77
+ // header: {
78
+ // cell: ListHeader
79
+ // }
80
+ // };
81
+ var List = /** @class */ (function (_super) {
82
+ __extends(List, _super);
83
+ function List(props) {
84
+ var _this = _super.call(this, props) || this;
85
+ _this.hasNextPage = false;
86
+ _this.refetching = false;
87
+ _this.getColumnDefinition = function (field, index) {
88
+ var parentPath = ListVirtualized_1.getParentCellComponent(field, _this.props.schema);
89
+ if (parentPath) {
90
+ field = parentPath;
91
+ }
92
+ var overwrite = _this.props.overwrite && _this.props.overwrite[field];
93
+ var definition;
94
+ if (!_this.props.schema.hasPath(field) && field.indexOf('.') < 0 && overwrite) {
95
+ definition = lodash_1.merge({
96
+ list: {
97
+ noFilter: true,
98
+ noSort: true
99
+ }
100
+ }, Mutate_1.deepClone(_this.props.schema.applyDefinitionsDefaults({ type: String }, field)), overwrite);
101
+ }
102
+ else {
103
+ definition = _this.props.schema.getPathDefinition(field);
104
+ if (overwrite) {
105
+ definition = lodash_1.merge(Mutate_1.deepClone(definition), overwrite);
106
+ }
107
+ }
108
+ if (!definition.list)
109
+ throw new Error("You need to provide overwrite full definition for \"" + field + "\"");
110
+ if (definition.list.hidden)
111
+ return;
112
+ return {
113
+ // fixed: index===0 ? 'left' :undefined,
114
+ dataIndex: field,
115
+ key: field,
116
+ width: definition.list.width,
117
+ title: definition.label ? definition.label : "",
118
+ render: function (value, row, index) {
119
+ var CellComponent = definition.list.CellComponent || ListVirtualized_1.DefaultCellComponent;
120
+ return React.createElement(CellComponent, __assign({ columnIndex: 0, rowIndex: index, data: _this.data, field: field }, definition.list.props));
121
+ },
122
+ onHeaderCell: function (column) { return ({
123
+ field: field,
124
+ fieldDefinition: definition,
125
+ // onFilterChange: this.onFilterChange,
126
+ width: column.width,
127
+ onResize: _this.handleResize(index),
128
+ }); }
129
+ };
130
+ };
131
+ _this.buildFetchMore = function (fetchMore, endCursor) {
132
+ var name = _this.props.schema.names.query.connection;
133
+ _this.fetchMore = function () {
134
+ _this.refetching = true;
135
+ fetchMore({
136
+ variables: {
137
+ after: endCursor
138
+ },
139
+ updateQuery: function (previousResult, _a) {
140
+ var _b;
141
+ var fetchMoreResult = _a.fetchMoreResult;
142
+ _this.refetching = false;
143
+ var newEdges = fetchMoreResult[name].edges;
144
+ var pageInfo = fetchMoreResult[name].pageInfo;
145
+ var aggregate = fetchMoreResult[name].aggregate;
146
+ return newEdges.length
147
+ ? (_b = {},
148
+ // Put the new comments at the end of the list and update `pageInfo`
149
+ // so we have the new `endCursor` and `hasNextPage` values
150
+ _b[name] = {
151
+ __typename: previousResult[name].__typename,
152
+ edges: __spread(previousResult[name].edges, newEdges),
153
+ pageInfo: pageInfo,
154
+ aggregate: aggregate
155
+ },
156
+ _b) : previousResult;
157
+ }
158
+ }).catch((console.error)); //todo
159
+ };
160
+ };
161
+ _this.filters = {};
162
+ // onFilterChange: OnFilterChange = (field, where) => {
163
+ // if (where && !isEmpty(where)) {
164
+ // this.filters[field] = where
165
+ // } else {
166
+ // delete this.filters[field]
167
+ // }
168
+ // const allFilters = Object.values(this.filters)
169
+ // this.variables.where = this.variables.where || {}
170
+ // if (this.props.where) {
171
+ // this.variables.where = {AND: [this.props.where, ...allFilters]}
172
+ // } else {
173
+ // this.variables.where = {AND: allFilters}
174
+ // }
175
+ //
176
+ // this.refetch(this.variables)
177
+ // }
178
+ _this.handleResize = function (index) { return function (e, _a) {
179
+ var size = _a.size;
180
+ _this.setState(function (_a) {
181
+ var columns = _a.columns;
182
+ var nextColumns = __spread(columns);
183
+ nextColumns[index] = __assign(__assign({}, nextColumns[index]), { width: size.width });
184
+ "";
185
+ return { columns: nextColumns };
186
+ });
187
+ }; };
188
+ _this.firstLoad = true;
189
+ //const definitions: Partial<FieldDefinitions> = {}
190
+ var fields = _this.props.fields;
191
+ var columns = _this.getColumns(fields);
192
+ _this.state = { columns: columns };
193
+ _this.me = React.createRef();
194
+ _this.loading = true;
195
+ _this.data = [];
196
+ return _this;
197
+ //this.definitions=definitions
198
+ }
199
+ List.prototype.getColumns = function (fields, path) {
200
+ var _this = this;
201
+ if (path === void 0) { path = ""; }
202
+ var columns = [];
203
+ fields.forEach(function (field, index) {
204
+ var column = _this.getColumnDefinition(field, index);
205
+ if (column && !columns.some(function (c) { return !!(c && c.dataIndex === column.dataIndex); })) {
206
+ columns.push(column);
207
+ }
208
+ });
209
+ return columns;
210
+ };
211
+ List.prototype.render = function () {
212
+ var _this = this;
213
+ var _a = this.props, schema = _a.schema, first = _a.first, fields = _a.fields, header = _a.header, where = _a.where, Dimmer = _a.Dimmer, tableProps = _a.tableProps, findBaseProps = __rest(_a, ["schema", "first", "fields", "header", "where", "Dimmer", "tableProps"]);
214
+ var columns = this.state.columns;
215
+ return (React.createElement("div", { className: "list-wrapper", style: { width: '100%' }, ref: this.me },
216
+ React.createElement(mandarina_1.Find, __assign({ schema: schema, where: where, first: first, fields: fields }, findBaseProps), function (_a) {
217
+ var _b = _a.data, data = _b === void 0 ? [] : _b, variables = _a.variables, refetch = _a.refetch, loading = _a.loading, count = _a.count, pageInfo = _a.pageInfo, fetchMore = _a.fetchMore, error = _a.error;
218
+ _this.loading = loading;
219
+ if (error)
220
+ return React.createElement(antd_1.Result, { status: "500", subTitle: error.message });
221
+ _this.refetch = refetch;
222
+ _this.variables = variables;
223
+ _this.buildFetchMore(fetchMore, pageInfo && pageInfo.endCursor);
224
+ _this.hasNextPage = !!(pageInfo && pageInfo.hasNextPage);
225
+ var dataSource = loading && _this.hasNextPage ? __spread(data, new Array(first).fill({})) : data;
226
+ if (!loading)
227
+ _this.firstLoad = false;
228
+ //this.lastHeight = this.me && this.me.current && this.me.current.offsetHeight || 0// && this.me.current && this.me.current.clientHeight || document.body.clientHeight + scrollTop + 200
229
+ var headerNode = null;
230
+ if (typeof header === 'function') {
231
+ var Header = header;
232
+ headerNode = React.createElement(Header, { data: dataSource, count: count });
233
+ }
234
+ if (typeof header === 'object' || !header) {
235
+ headerNode = React.createElement(HeaderDefault, __assign({ data: dataSource, count: count }, header));
236
+ }
237
+ _this.data = dataSource;
238
+ return (React.createElement("div", null,
239
+ headerNode,
240
+ React.createElement("div", { style: { position: 'relative' } },
241
+ Dimmer && React.createElement(Dimmer, null),
242
+ React.createElement(table_1.default, __assign({ scroll: { x: 'auto' }, pagination: {
243
+ pageSize: 5000,
244
+ total: count,
245
+ simple: true,
246
+ hideOnSinglePage: true,
247
+ }, rowKey: function (record) { return record.id; }, bordered: true,
248
+ //components={components}
249
+ columns: columns, loading: _this.firstLoad, dataSource: dataSource }, tableProps)))));
250
+ })));
251
+ };
252
+ List.defaultProps = {
253
+ first: 10000,
254
+ pageSize: 10000,
255
+ };
256
+ return List;
257
+ }(React.Component));
258
+ exports.List = List;
259
+ var HeaderDefault = function (_a) {
260
+ var count = _a.count, _b = _a.title, title = _b === void 0 ? ' total' : _b;
261
+ return React.createElement("div", { style: { textAlign: "right" } },
262
+ count,
263
+ " ",
264
+ title);
265
+ };
266
+ //# sourceMappingURL=List.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["List.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __importStar = (this && this.__importStar) || function (mod) {
3
+ if (mod && mod.__esModule) return mod;
4
+ var result = {};
5
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6
+ result["default"] = mod;
7
+ return result;
8
+ };
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ var React = __importStar(require("react"));
14
+ var AutoForm_1 = __importDefault(require("uniforms-antd/AutoForm"));
15
+ var mandarina_1 = require("mandarina");
16
+ var Bridge_1 = require("../Bridge");
17
+ var ListFilters_1 = require("./ListFilters");
18
+ var Mutate_1 = require("mandarina/build/Operations/Mutate");
19
+ var HiddenField_1 = __importDefault(require("uniforms-antd/HiddenField"));
20
+ exports.uuid = function () { return 'i' + (Date.now() - 1540000000000 + Math.random()).toString(36); };
21
+ exports.ListFilter = React.memo(function (_a) {
22
+ var onFilterChange = _a.onFilterChange, field = _a.field, filter = _a.filter, schema = _a.schema;
23
+ var fieldDefinition = Mutate_1.deepClone(schema.getPathDefinition(field));
24
+ var FieldComponent;
25
+ if (fieldDefinition.isTable) {
26
+ if (fieldDefinition.list.filterComponent === undefined) {
27
+ throw new Error("Field: \"" + field + "\" you need to set \"list.noFilter\" to true, or pass your custom filterComponent \"");
28
+ }
29
+ else {
30
+ FieldComponent = fieldDefinition.list.filterComponent;
31
+ }
32
+ }
33
+ else {
34
+ FieldComponent = fieldDefinition.list.filterComponent === undefined ? ListFilters_1.getDefaultComponent(fieldDefinition) : fieldDefinition.list.filterComponent;
35
+ }
36
+ var name = "filter-" + field + "-" + exports.uuid(); //todo remove this dependeincy making schema get optional name
37
+ fieldDefinition.validators = fieldDefinition.validators.filter(function (_a) {
38
+ var validatorName = _a.validatorName, arrayValidator = _a.arrayValidator, tableValidator = _a.tableValidator;
39
+ return validatorName !== 'required' && !arrayValidator && !tableValidator;
40
+ });
41
+ var filterSchema = new mandarina_1.Schema({
42
+ // @ts-ignore
43
+ filter: fieldDefinition,
44
+ internal: { type: String }
45
+ }, {
46
+ name: name
47
+ });
48
+ var bridge = new Bridge_1.Bridge(filterSchema, filterSchema.getFields());
49
+ return FieldComponent && (React.createElement(AutoForm_1.default, { schema: bridge, autosave: true, autosaveDelay: 400, style: { width: 'calc(100% - 4px)' }, onSubmit: function (_a) {
50
+ var filter = _a.filter;
51
+ if (filter)
52
+ filter.internal = true; //this is for avoid rerender, if the filter does not have internal, is because is a external change as clear filters.
53
+ onFilterChange(field, filter);
54
+ }, onValidate: function (model, error, callback) {
55
+ return callback(null);
56
+ }, model: { filter: filter } },
57
+ React.createElement(HiddenField_1.default, { name: 'internal' }),
58
+ React.createElement(FieldComponent, { name: 'filter', label: false, col: false, defaultValue: '' })));
59
+ }, function (prevProps, nextProps) {
60
+ return ((!!prevProps && !!nextProps) || ((prevProps.filter && prevProps.filter.filter) === (nextProps.filter && nextProps.filter.filter))) &&
61
+ (nextProps.filter && nextProps.filter.internal && prevProps.field === nextProps.field && prevProps.onFilterChange === nextProps.onFilterChange && prevProps.schema === nextProps.schema);
62
+ });
63
+ exports.default = exports.ListFilter;
64
+ //# sourceMappingURL=ListFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListFilter.js","sourceRoot":"","sources":["ListFilter.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
25
+ result["default"] = mod;
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ var lodash_1 = require("lodash");
30
+ var connectField_1 = __importDefault(require("uniforms/connectField"));
31
+ var date_picker_1 = __importDefault(require("antd/lib/date-picker"));
32
+ var dropdown_1 = __importDefault(require("antd/lib/dropdown"));
33
+ var input_1 = __importDefault(require("antd/lib/input"));
34
+ var input_number_1 = __importDefault(require("antd/lib/input-number"));
35
+ var menu_1 = __importDefault(require("antd/lib/menu"));
36
+ var react_1 = __importStar(require("react"));
37
+ var mandarina_1 = require("mandarina");
38
+ var utils_1 = require("mandarina/build/Schema/utils");
39
+ var select_1 = __importDefault(require("antd/lib/select"));
40
+ var Option = select_1.default.Option;
41
+ exports.AllOperators = {
42
+ "": { description: "equals", symbol: "=" },
43
+ "_not": { description: "not equals", symbol: "!=" },
44
+ "_contains": { description: "contains substring", symbol: "~" },
45
+ "_not_contains": { description: "does not contain substring", symbol: "!~" },
46
+ "_starts_with": { description: "starts with", symbol: "^" },
47
+ "_not_starts_with": { description: "does not starts with", symbol: "!^" },
48
+ "_ends_with": { description: "ends with", symbol: "$" },
49
+ "_not_ends_with": { description: "does not ends with", symbol: "!$" },
50
+ "_lt": { description: "less than", symbol: "<" },
51
+ "_lte": { description: "less then or equals", symbol: "<=" },
52
+ "_gt": { description: "greater than", symbol: ">" },
53
+ "_gte": { description: "greater than or equals", symbol: ">=" },
54
+ "_contains_every": { description: "all contains", symbol: "[~]" },
55
+ "_contains_some": { description: "contains at least 1", symbol: "~" },
56
+ };
57
+ exports.getDefaultFilterMethod = function (field, schema) {
58
+ var fieldDefinition = schema.getPathDefinition(field);
59
+ var path = field.split('.');
60
+ var originalPath = field.split('.');
61
+ var len = path.length;
62
+ var last = len - 1;
63
+ //filling all parents fields. it must be a table (Relation field)
64
+ for (var i = 0; i < len; i++) {
65
+ var field_1 = originalPath.slice(0, i + 1).join('.');
66
+ var fieldDefinition_1 = schema.getPathDefinition(field_1);
67
+ if (fieldDefinition_1.isArray) {
68
+ if (fieldDefinition_1.isTable) {
69
+ path[i] += '_some';
70
+ }
71
+ else {
72
+ // if the past parent es array, must be a array of scalars
73
+ path[last] += '_contains_some';
74
+ path.push(path[last]);
75
+ last++;
76
+ }
77
+ }
78
+ }
79
+ return function (filter) {
80
+ //todo forzar el tipo de verdad para que si escriben un string donde va un numero no mande el query
81
+ var search = filter.filter;
82
+ var original = path[last];
83
+ if (search !== undefined) {
84
+ var where = {};
85
+ path[last] += filter.operator;
86
+ var value = utils_1.forceType(search, fieldDefinition.type);
87
+ if (filter.operator === "" && fieldDefinition.type === Date) {
88
+ path[last] += "_gte";
89
+ value.startOf('day');
90
+ lodash_1.set(where, path, value.toDate());
91
+ path[last] = original;
92
+ path[last] += "_lte";
93
+ value.endOf('day');
94
+ lodash_1.set(where, path, value.toDate());
95
+ }
96
+ else {
97
+ lodash_1.set(where, path, value);
98
+ }
99
+ path[last] = original;
100
+ return where;
101
+ }
102
+ else {
103
+ return;
104
+ }
105
+ };
106
+ };
107
+ var getAvailableOperator = function (type) {
108
+ switch (true) {
109
+ case (type === String):
110
+ return ["_contains", "", "_not", "_not_contains", "_starts_with", "_not_starts_with", "_ends_with", "_not_ends_with"];
111
+ case (type === mandarina_1.Integer || type === Date || type === Number):
112
+ return ["", "_not", "_lt", "_lte", "_gt", "_gte"];
113
+ default:
114
+ return [""];
115
+ }
116
+ };
117
+ exports.getDefaultComponent = function (fieldDefinition) {
118
+ var availableOperators = getAvailableOperator(fieldDefinition.type);
119
+ var Filter = function (_a) {
120
+ var _b = _a.value, value = _b === void 0 ? {
121
+ operator: availableOperators[0],
122
+ filter: undefined
123
+ } : _b, onChange = _a.onChange;
124
+ if (!value || (!value.operator && value.operator !== "")) {
125
+ value = { operator: availableOperators[0], filter: undefined };
126
+ }
127
+ var _c = __read(react_1.useState(value.operator), 2), selected = _c[0], setSelected = _c[1];
128
+ var options = (react_1.default.createElement(menu_1.default, { onClick: function (_a) {
129
+ var operator = _a.key;
130
+ if (operator === "_") {
131
+ operator = "";
132
+ }
133
+ setSelected(operator);
134
+ if (value.filter) {
135
+ onChange(value);
136
+ }
137
+ } }, availableOperators.map(function (operator) {
138
+ return react_1.default.createElement(menu_1.default.Item, { key: operator || "_" },
139
+ " ",
140
+ exports.AllOperators[operator].symbol,
141
+ " ",
142
+ ' ',
143
+ " ",
144
+ exports.AllOperators[operator].description);
145
+ })));
146
+ var operator = (availableOperators.length > 1) ? (react_1.default.createElement(dropdown_1.default, { overlay: options },
147
+ react_1.default.createElement("a", { className: "ant-dropdown-link" }, exports.AllOperators[selected].symbol))) : undefined;
148
+ var type = fieldDefinition.type;
149
+ switch (true) {
150
+ case (type === mandarina_1.Integer):
151
+ return (react_1.default.createElement("span", { className: "ant-input-wrapper ant-input-group" },
152
+ react_1.default.createElement("span", { className: "ant-input-group-addon" }, operator),
153
+ react_1.default.createElement(input_number_1.default, { value: value.filter, style: { width: '100%' }, onChange: function (value) { return (value === 0 || value) ? onChange({
154
+ operator: selected,
155
+ filter: value
156
+ }) : onChange(null); } })));
157
+ case (type === Number):
158
+ return (react_1.default.createElement("span", { className: "ant-input-wrapper ant-input-group" },
159
+ react_1.default.createElement("span", { className: "ant-input-group-addon" }, operator),
160
+ react_1.default.createElement(input_number_1.default, { value: value.filter, style: { width: '100%' }, onChange: function (value) { return (value === 0 || value) ? onChange({
161
+ operator: selected,
162
+ filter: value
163
+ }) : onChange(null); } })));
164
+ case (type === Date):
165
+ return (react_1.default.createElement("span", { className: "ant-input-wrapper ant-input-group date-picker" },
166
+ react_1.default.createElement("span", { className: "ant-input-group-addon" }, operator),
167
+ react_1.default.createElement(date_picker_1.default, { value: value.filter, placeholder: "", onChange: function (date) { return date ? onChange({
168
+ operator: selected,
169
+ filter: date
170
+ }) : onChange(null); } })));
171
+ case (type === Boolean):
172
+ var selectValue = value.filter === false ? 'false' : value.filter ? 'true' : undefined;
173
+ return (react_1.default.createElement(select_1.default, { value: selectValue, allowClear: true, style: { width: '100%' }, onChange: function (value) {
174
+ if (!value)
175
+ return onChange(null);
176
+ onChange({
177
+ operator: selected,
178
+ filter: value === 'true'
179
+ });
180
+ } },
181
+ react_1.default.createElement(Option, { value: 'true' }, "Yes"),
182
+ react_1.default.createElement(Option, { value: 'false' }, "No")));
183
+ default:
184
+ return react_1.default.createElement(input_1.default, { addonBefore: operator, value: value.filter, style: { width: '100%' }, onChange: function (_a) {
185
+ var value = _a.target.value;
186
+ return value ? onChange({
187
+ operator: selected,
188
+ filter: value
189
+ }) : onChange(null);
190
+ } });
191
+ }
192
+ };
193
+ return connectField_1.default(Filter, {
194
+ includeInChain: true,
195
+ ensureValue: true,
196
+ initialValue: true,
197
+ });
198
+ };
199
+ exports.unsetDeep = function (obj, path) {
200
+ lodash_1.unset(obj, path);
201
+ path.pop();
202
+ while (path.length) {
203
+ var value = lodash_1.get(obj, path);
204
+ if (value && lodash_1.isEmpty(value))
205
+ lodash_1.unset(obj, path);
206
+ path.pop();
207
+ }
208
+ };
209
+ //# sourceMappingURL=ListFilters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListFilters.js","sourceRoot":"","sources":["ListFilters.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,iCAAgD;AAChD,uEAAgD;AAChD,qEAA8C;AAC9C,+DAAyC;AACzC,yDAAmC;AACnC,uEAAgD;AAChD,uDAAiC;AACjC,6CAAsC;AACtC,uCAA0C;AAC1C,sDAAuD;AACvD,2DAAqC;AAC7B,IAAA,gCAAM,CAAY;AAEb,QAAA,YAAY,GAAkE;IACvF,EAAE,EAAE,EAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAC;IACxC,MAAM,EAAE,EAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAC;IACjD,WAAW,EAAE,EAAC,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAC;IAC7D,eAAe,EAAE,EAAC,WAAW,EAAE,4BAA4B,EAAE,MAAM,EAAE,IAAI,EAAC;IAC1E,cAAc,EAAE,EAAC,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAC;IACzD,kBAAkB,EAAE,EAAC,WAAW,EAAE,sBAAsB,EAAE,MAAM,EAAE,IAAI,EAAC;IACvE,YAAY,EAAE,EAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAC;IACrD,gBAAgB,EAAE,EAAC,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,EAAC;IACnE,KAAK,EAAE,EAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAC;IAC9C,MAAM,EAAE,EAAC,WAAW,EAAE,qBAAqB,EAAE,MAAM,EAAE,IAAI,EAAC;IAC1D,KAAK,EAAE,EAAC,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAC;IACjD,MAAM,EAAE,EAAC,WAAW,EAAE,wBAAwB,EAAE,MAAM,EAAE,IAAI,EAAC;IAC7D,iBAAiB,EAAE,EAAC,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAC;IAC/D,gBAAgB,EAAE,EAAC,WAAW,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,EAAC;CACtE,CAAA;AAEY,QAAA,sBAAsB,GAAG,UAAC,KAAa,EAAE,MAAc;IAChE,IAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACvD,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACrC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA;IACrB,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,CAAA;IAClB,iEAAiE;IACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAM,OAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACpD,IAAM,iBAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,OAAK,CAAC,CAAA;QACvD,IAAI,iBAAe,CAAC,OAAO,EAAE;YACzB,IAAI,iBAAe,CAAC,OAAO,EAAE;gBACzB,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAA;aACrB;iBAAM;gBACH,0DAA0D;gBAC1D,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAA;gBAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;gBACrB,IAAI,EAAE,CAAA;aACT;SAEJ;KAEJ;IAED,OAAO,UAAC,MAAyC;QAC7C,mGAAmG;QACnG,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC5B,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAI,SAAS,EAAG;YACtB,IAAM,KAAK,GAAG,EAAE,CAAA;YAChB,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAA;YAC7B,IAAM,KAAK,GAAG,iBAAS,CAAC,MAAM,EAAE,eAAe,CAAC,IAAc,CAAC,CAAA;YAE/D,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE,IAAI,eAAe,CAAC,IAAI,KAAK,IAAI,EAAE;gBACzD,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAA;gBACpB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBACpB,YAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;gBAChC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAA;gBACrB,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAA;gBACpB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAClB,YAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;aACnC;iBAAM;gBACH,YAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;aAC1B;YAED,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAA;YACrB,OAAO,KAAK,CAAA;SACf;aAAM;YACH,OAAM;SACT;IACL,CAAC,CAAA;AACL,CAAC,CAAA;AACD,IAAM,oBAAoB,GAAG,UAAC,IAAY;IACtC,QAAQ,IAAI,EAAE;QACV,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;YAClB,OAAO,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAA;QACzH,KAAM,CAAC,IAAI,KAAK,mBAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,CAAC;YACxD,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QACrD;YACI,OAAO,CAAC,EAAE,CAAC,CAAA;KAClB;AACL,CAAC,CAAA;AACY,QAAA,mBAAmB,GAAG,UAAE,eAAsC;IACvE,IAAM,kBAAkB,GAAG,oBAAoB,CAAC,eAAe,CAAC,IAAc,CAAC,CAAA;IAC/E,IAAM,MAAM,GAAG,UAAC,EAKa;YAJT,aAGC,EAHD;;;cAGC,EAAE,sBAAQ;QAE3B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,EAAE,CAAC,EAAE;YACtD,KAAK,GAAG,EAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAC,CAAA;SAC/D;QACK,IAAA,gDAAkD,EAAjD,gBAAQ,EAAE,mBAAuC,CAAA;QACxD,IAAM,OAAO,GAAG,CACZ,8BAAC,cAAI,IAAC,OAAO,EAAE,UAAC,EAAe;oBAAd,iBAAa;gBAC1B,IAAI,QAAQ,KAAK,GAAG,EAAE;oBAClB,QAAQ,GAAG,EAAE,CAAA;iBAChB;gBACD,WAAW,CAAC,QAAQ,CAAC,CAAA;gBACrB,IAAI,KAAK,CAAC,MAAM,EAAE;oBACd,QAAQ,CAAC,KAAK,CAAC,CAAA;iBAClB;YACL,CAAC,IACI,kBAAkB,CAAC,GAAG,CAAC,UAAA,QAAQ;YAC5B,OAAA,8BAAC,cAAI,CAAC,IAAI,IACN,GAAG,EAAE,QAAQ,IAAI,GAAG;;gBAAI,oBAAY,CAAC,QAAQ,CAAC,CAAC,MAAM;;gBAAG,GAAG;;gBAAG,oBAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAa;QADjH,CACiH,CAAC,CACnH,CACV,CAAC;QACF,IAAM,QAAQ,GAAG,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/C,8BAAC,kBAAQ,IACL,OAAO,EAAE,OAAO;YAEhB,qCAAG,SAAS,EAAC,mBAAmB,IAC3B,oBAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC9B,CACG,CACd,CAAC,CAAC,CAAC,SAAS,CAAA;QACb,IAAI,IAAI,GAAG,eAAe,CAAC,IAAI,CAAA;QAG/B,QAAQ,IAAI,EAAE;YAEV,KAAM,CAAC,IAAI,KAAK,mBAAO,CAAC;gBACpB,OAAO,CACH,wCAAM,SAAS,EAAC,mCAAmC;oBACvD,wCAAM,SAAS,EAAC,uBAAuB,IACpC,QAAQ,CACJ;oBACR,8BAAC,sBAAW,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,EACtB,QAAQ,EAAE,UAAC,KAAK,IAAK,OAAA,CAAC,KAAK,KAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;4BAClD,QAAQ,EAAE,QAAQ;4BAClB,MAAM,EAAE,KAAK;yBAChB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAHE,CAGF,GAAG,CAC/B,CACF,CAAA;YACL,KAAM,CAAC,IAAI,KAAK,MAAM,CAAC;gBACnB,OAAO,CACH,wCAAM,SAAS,EAAC,mCAAmC;oBACvD,wCAAM,SAAS,EAAC,uBAAuB,IACpC,QAAQ,CACJ;oBACR,8BAAC,sBAAW,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,EACtB,QAAQ,EAAE,UAAC,KAAK,IAAK,OAAA,CAAC,KAAK,KAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;4BAClD,QAAQ,EAAE,QAAQ;4BAClB,MAAM,EAAE,KAAK;yBAChB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAHE,CAGF,GAAG,CAC/B,CACF,CAAA;YACL,KAAM,CAAC,IAAI,KAAK,IAAI,CAAC;gBACjB,OAAO,CACH,wCAAM,SAAS,EAAC,+CAA+C;oBACnE,wCAAM,SAAS,EAAC,uBAAuB,IACpC,QAAQ,CACJ;oBACD,8BAAC,qBAAU,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,WAAW,EAAE,EAAE,EACf,QAAQ,EAAE,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;4BAChC,QAAQ,EAAE,QAAQ;4BAClB,MAAM,EAAE,IAAI;yBACf,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAHC,CAGD,GAAG,CACrC,CACF,CAAA;YACL,KAAM,CAAC,IAAI,KAAK,OAAO,CAAC;gBACpB,IAAM,WAAW,GAAC,KAAK,CAAC,MAAM,KAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;gBACpF,OAAO,CACH,8BAAC,gBAAM,IAAC,KAAK,EAAE,WAAW,EAAE,UAAU,QAAC,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,EAAE,QAAQ,EAAE,UAAC,KAAS;wBAC/E,IAAI,CAAC,KAAK;4BAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;wBACjC,QAAQ,CAAC;4BACL,QAAQ,EAAE,QAAQ;4BAClB,MAAM,EAAE,KAAK,KAAK,MAAM;yBAC3B,CAAC,CAAA;oBACN,CAAC;oBACG,8BAAC,MAAM,IAAC,KAAK,EAAE,MAAM,UAAc;oBACnC,8BAAC,MAAM,IAAC,KAAK,EAAE,OAAO,SAAa,CAEtC,CACJ,CAAA;YACL;gBACI,OAAO,8BAAC,eAAK,IAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,EAClE,QAAQ,EAAE,UAAC,EAAiB;4BAAP,uBAAK;wBAAO,OAAA,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;4BAC9C,QAAQ,EAAE,QAAQ;4BAClB,MAAM,EAAE,KAAK;yBAChB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAHc,CAGd,GAAG,CAAA;SAC3C;IACL,CAAC,CAAA;IACD,OAAO,sBAAY,CAAC,MAAM,EAAE;QACxB,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAA;AACN,CAAC,CAAA;AAGY,QAAA,SAAS,GAAG,UAAC,GAAW,EAAE,IAAc;IACjD,cAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAChB,IAAI,CAAC,GAAG,EAAE,CAAA;IACV,OAAO,IAAI,CAAC,MAAM,EAAE;QAChB,IAAM,KAAK,GAAG,YAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC5B,IAAI,KAAK,IAAI,gBAAO,CAAC,KAAK,CAAC;YAAE,cAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC7C,IAAI,CAAC,GAAG,EAAE,CAAA;KACb;AACL,CAAC,CAAA"}