@journeyapps-labs/reactor-mod-data-browser 2.1.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/@types/core/AbstractConnection.d.ts +2 -0
- package/dist/@types/core/SchemaModelDefinition.d.ts +8 -2
- package/dist/@types/core/SchemaModelObject.d.ts +15 -8
- package/dist/@types/core/query/AbstractQuery.d.ts +5 -10
- package/dist/@types/core/query/AbstractSerializableQuery.d.ts +11 -0
- package/dist/@types/core/query/Page.d.ts +2 -5
- package/dist/@types/core/query/filters.d.ts +17 -0
- package/dist/@types/core/query/query-changed/ChangedModelQuery.d.ts +15 -0
- package/dist/@types/core/query/query-simple/SimplePage.d.ts +12 -0
- package/dist/@types/core/query/{SimpleQuery.d.ts → query-simple/SimpleQuery.d.ts} +10 -8
- package/dist/@types/core/query/widgets/BelongsToDisplayWidget.d.ts +5 -2
- package/dist/@types/core/query/widgets/CellDisplayWidget.d.ts +1 -2
- package/dist/@types/core/query/widgets/ColumnDisplayWidget.d.ts +6 -0
- package/dist/@types/core/query/widgets/SmartBelongsToDisplayWidget.d.ts +10 -0
- package/dist/@types/core/query/widgets/SmartCellDisplayWidget.d.ts +7 -0
- package/dist/@types/core/query/widgets/SmartColumnWidget.d.ts +10 -0
- package/dist/@types/core/query/widgets/SmartFilterWidget.d.ts +9 -0
- package/dist/@types/entities/QueryEntityDefinition.d.ts +3 -3
- package/dist/@types/forms/SchemaModelForm.d.ts +32 -1
- package/dist/@types/forms/TypeEngine.d.ts +20 -0
- package/dist/@types/forms/inputs/DirtyWrapperInput.d.ts +15 -0
- package/dist/@types/index.d.ts +1 -1
- package/dist/@types/panels/model/ModelPanelFactory.d.ts +2 -2
- package/dist/@types/panels/query/QueryPanelFactory.d.ts +2 -1
- package/dist/DataBrowserModule.js +3 -1
- package/dist/DataBrowserModule.js.map +1 -1
- package/dist/actions/schema-definitions/CreateModelAction.js +2 -1
- package/dist/actions/schema-definitions/CreateModelAction.js.map +1 -1
- package/dist/actions/schema-definitions/QuerySchemaModelAction.js +1 -1
- package/dist/actions/schema-definitions/QuerySchemaModelAction.js.map +1 -1
- package/dist/core/AbstractConnection.js +15 -0
- package/dist/core/AbstractConnection.js.map +1 -1
- package/dist/core/SchemaModelDefinition.js +67 -13
- package/dist/core/SchemaModelDefinition.js.map +1 -1
- package/dist/core/SchemaModelObject.js +90 -50
- package/dist/core/SchemaModelObject.js.map +1 -1
- package/dist/core/query/AbstractQuery.js +2 -8
- package/dist/core/query/AbstractQuery.js.map +1 -1
- package/dist/core/query/AbstractSerializableQuery.js +13 -0
- package/dist/core/query/AbstractSerializableQuery.js.map +1 -0
- package/dist/core/query/Page.js +6 -11
- package/dist/core/query/Page.js.map +1 -1
- package/dist/core/query/filters.js +17 -0
- package/dist/core/query/filters.js.map +1 -0
- package/dist/core/query/query-changed/ChangedModelQuery.js +31 -0
- package/dist/core/query/query-changed/ChangedModelQuery.js.map +1 -0
- package/dist/core/query/query-simple/SimplePage.js +18 -0
- package/dist/core/query/query-simple/SimplePage.js.map +1 -0
- package/dist/core/query/{SimpleQuery.js → query-simple/SimpleQuery.js} +51 -23
- package/dist/core/query/query-simple/SimpleQuery.js.map +1 -0
- package/dist/core/query/widgets/BelongsToDisplayWidget.js +39 -13
- package/dist/core/query/widgets/BelongsToDisplayWidget.js.map +1 -1
- package/dist/core/query/widgets/CellDisplayWidget.js +19 -5
- package/dist/core/query/widgets/CellDisplayWidget.js.map +1 -1
- package/dist/core/query/widgets/ColumnDisplayWidget.js +22 -0
- package/dist/core/query/widgets/ColumnDisplayWidget.js.map +1 -0
- package/dist/core/query/widgets/SmartBelongsToDisplayWidget.js +29 -0
- package/dist/core/query/widgets/SmartBelongsToDisplayWidget.js.map +1 -0
- package/dist/core/query/widgets/SmartCellDisplayWidget.js +20 -0
- package/dist/core/query/widgets/SmartCellDisplayWidget.js.map +1 -0
- package/dist/core/query/widgets/SmartColumnWidget.js +29 -0
- package/dist/core/query/widgets/SmartColumnWidget.js.map +1 -0
- package/dist/core/query/widgets/SmartFilterWidget.js +56 -0
- package/dist/core/query/widgets/SmartFilterWidget.js.map +1 -0
- package/dist/entities/QueryEntityDefinition.js +3 -3
- package/dist/entities/QueryEntityDefinition.js.map +1 -1
- package/dist/entities/SchemaModelObjectEntityDefinition.js +28 -8
- package/dist/entities/SchemaModelObjectEntityDefinition.js.map +1 -1
- package/dist/forms/SchemaModelForm.js +153 -74
- package/dist/forms/SchemaModelForm.js.map +1 -1
- package/dist/forms/TypeEngine.js +135 -0
- package/dist/forms/TypeEngine.js.map +1 -0
- package/dist/forms/inputs/DirtyWrapperInput.js +72 -0
- package/dist/forms/inputs/DirtyWrapperInput.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/panels/model/ModelPanelFactory.js +11 -7
- package/dist/panels/model/ModelPanelFactory.js.map +1 -1
- package/dist/panels/model/ModelPanelWidget.js +21 -4
- package/dist/panels/model/ModelPanelWidget.js.map +1 -1
- package/dist/panels/query/QueryPanelFactory.js +4 -0
- package/dist/panels/query/QueryPanelFactory.js.map +1 -1
- package/dist/panels/query/QueryPanelWidget.js +6 -3
- package/dist/panels/query/QueryPanelWidget.js.map +1 -1
- package/dist/panels/query/TableControlsWidget.js +42 -9
- package/dist/panels/query/TableControlsWidget.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist-module/bundle.js +83 -27
- package/dist-module/bundle.js.map +1 -1
- package/package.json +8 -6
- package/src/DataBrowserModule.ts +3 -1
- package/src/actions/schema-definitions/CreateModelAction.ts +2 -1
- package/src/actions/schema-definitions/QuerySchemaModelAction.ts +1 -1
- package/src/core/AbstractConnection.ts +18 -1
- package/src/core/SchemaModelDefinition.ts +71 -14
- package/src/core/SchemaModelObject.ts +62 -46
- package/src/core/query/AbstractQuery.ts +10 -21
- package/src/core/query/AbstractSerializableQuery.ts +23 -0
- package/src/core/query/Page.ts +7 -14
- package/src/core/query/filters.ts +30 -0
- package/src/core/query/query-changed/ChangedModelQuery.ts +35 -0
- package/src/core/query/query-simple/SimplePage.ts +29 -0
- package/src/core/query/query-simple/SimpleQuery.tsx +163 -0
- package/src/core/query/widgets/BelongsToDisplayWidget.tsx +64 -18
- package/src/core/query/widgets/CellDisplayWidget.tsx +33 -14
- package/src/core/query/widgets/ColumnDisplayWidget.tsx +36 -0
- package/src/core/query/widgets/SmartBelongsToDisplayWidget.tsx +46 -0
- package/src/core/query/widgets/SmartCellDisplayWidget.tsx +29 -0
- package/src/core/query/widgets/SmartColumnWidget.tsx +46 -0
- package/src/core/query/widgets/SmartFilterWidget.tsx +80 -0
- package/src/entities/QueryEntityDefinition.ts +6 -6
- package/src/entities/SchemaModelObjectEntityDefinition.ts +34 -8
- package/src/forms/SchemaModelForm.tsx +145 -96
- package/src/forms/TypeEngine.ts +160 -0
- package/src/forms/inputs/DirtyWrapperInput.tsx +75 -0
- package/src/index.ts +1 -1
- package/src/panels/model/ModelPanelFactory.tsx +11 -9
- package/src/panels/model/ModelPanelWidget.tsx +45 -9
- package/src/panels/query/QueryPanelFactory.tsx +5 -0
- package/src/panels/query/QueryPanelWidget.tsx +6 -3
- package/src/panels/query/TableControlsWidget.tsx +85 -17
- package/dist/core/query/SimpleQuery.js.map +0 -1
- package/src/core/query/SimpleQuery.tsx +0 -120
|
@@ -1,87 +1,166 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { EntityInput, FormModel, inject } from '@journeyapps-labs/reactor-mod';
|
|
2
3
|
import * as _ from 'lodash';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
4
|
+
import { DataBrowserEntities } from '../entities';
|
|
5
|
+
import { DirtyWrapperInput } from './inputs/DirtyWrapperInput';
|
|
6
|
+
import { TypeEngine } from './TypeEngine';
|
|
7
|
+
import { autorun } from 'mobx';
|
|
8
|
+
let Binding = (() => {
|
|
9
|
+
var _a, _Binding_typeEngine_accessor_storage;
|
|
10
|
+
let _typeEngine_decorators;
|
|
11
|
+
let _typeEngine_initializers = [];
|
|
12
|
+
let _typeEngine_extraInitializers = [];
|
|
13
|
+
return _a = class Binding {
|
|
14
|
+
get typeEngine() { return __classPrivateFieldGet(this, _Binding_typeEngine_accessor_storage, "f"); }
|
|
15
|
+
set typeEngine(value) { __classPrivateFieldSet(this, _Binding_typeEngine_accessor_storage, value, "f"); }
|
|
16
|
+
constructor(options) {
|
|
17
|
+
this.options = options;
|
|
18
|
+
_Binding_typeEngine_accessor_storage.set(this, __runInitializers(this, _typeEngine_initializers, void 0));
|
|
19
|
+
this.setting_value_via_autorun = __runInitializers(this, _typeEngine_extraInitializers);
|
|
20
|
+
const { input, model, name } = options;
|
|
21
|
+
this.setting_value_via_autorun = false;
|
|
22
|
+
this.listener2 = input.registerListener({
|
|
23
|
+
valueChanged: async () => {
|
|
24
|
+
if (this.setting_value_via_autorun) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
model.set(input.name, await this.encode(input.value));
|
|
28
|
+
}
|
|
17
29
|
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
30
|
+
this.listener1 = autorun(async () => {
|
|
31
|
+
let value = model.patch.get(name);
|
|
32
|
+
if (value == null) {
|
|
33
|
+
value = await options.resolve();
|
|
34
|
+
}
|
|
35
|
+
this.setting_value_via_autorun = true;
|
|
36
|
+
if (value == null) {
|
|
37
|
+
input.setValue(null);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
let decoded = await this.decode(value);
|
|
41
|
+
input.setValue(decoded);
|
|
42
|
+
}
|
|
43
|
+
this.setting_value_via_autorun = false;
|
|
25
44
|
});
|
|
26
45
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
name: attribute.name,
|
|
30
|
-
label: attribute.label
|
|
31
|
-
});
|
|
32
|
-
if (options.object) {
|
|
33
|
-
options.object.getMedia(attribute.name).then((m) => {
|
|
34
|
-
media.setValue(m);
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
return media;
|
|
46
|
+
async encode(value) {
|
|
47
|
+
return value;
|
|
38
48
|
}
|
|
39
|
-
|
|
40
|
-
return
|
|
41
|
-
name: attribute.name,
|
|
42
|
-
label: attribute.label,
|
|
43
|
-
value: ((_c = options.object) === null || _c === void 0 ? void 0 : _c.model[attribute.name]) || null
|
|
44
|
-
});
|
|
49
|
+
async decode(value) {
|
|
50
|
+
return value;
|
|
45
51
|
}
|
|
46
|
-
|
|
47
|
-
return
|
|
48
|
-
name: attribute.name,
|
|
49
|
-
label: attribute.label,
|
|
50
|
-
value: (_d = options.object) === null || _d === void 0 ? void 0 : _d.model[attribute.name]
|
|
51
|
-
});
|
|
52
|
+
get input() {
|
|
53
|
+
return this.options.input;
|
|
52
54
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
label: attribute.label,
|
|
57
|
-
value: (_e = options.object) === null || _e === void 0 ? void 0 : _e.model[attribute.name]
|
|
58
|
-
});
|
|
55
|
+
dispose() {
|
|
56
|
+
this.listener1();
|
|
57
|
+
this.listener2();
|
|
59
58
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
},
|
|
60
|
+
_Binding_typeEngine_accessor_storage = new WeakMap(),
|
|
61
|
+
(() => {
|
|
62
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
63
|
+
_typeEngine_decorators = [inject(TypeEngine)];
|
|
64
|
+
__esDecorate(_a, null, _typeEngine_decorators, { kind: "accessor", name: "typeEngine", static: false, private: false, access: { has: obj => "typeEngine" in obj, get: obj => obj.typeEngine, set: (obj, value) => { obj.typeEngine = value; } }, metadata: _metadata }, _typeEngine_initializers, _typeEngine_extraInitializers);
|
|
65
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
66
|
+
})(),
|
|
67
|
+
_a;
|
|
68
|
+
})();
|
|
69
|
+
export { Binding };
|
|
70
|
+
export class TypedBinding extends Binding {
|
|
71
|
+
constructor(options) {
|
|
72
|
+
super(Object.assign(Object.assign({}, options), { resolve: async () => {
|
|
73
|
+
var _a;
|
|
74
|
+
return (_a = options.model) === null || _a === void 0 ? void 0 : _a.model[options.name];
|
|
75
|
+
} }));
|
|
76
|
+
this.handler = this.typeEngine.getHandler(options.variable.type);
|
|
77
|
+
}
|
|
78
|
+
async encode(value) {
|
|
79
|
+
return await this.handler.encode(value);
|
|
80
|
+
}
|
|
81
|
+
async decode(value) {
|
|
82
|
+
return await this.handler.decode(value);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
let SchemaModelForm = (() => {
|
|
86
|
+
var _a, _SchemaModelForm_typeEngine_accessor_storage;
|
|
87
|
+
let _classSuper = FormModel;
|
|
88
|
+
let _typeEngine_decorators;
|
|
89
|
+
let _typeEngine_initializers = [];
|
|
90
|
+
let _typeEngine_extraInitializers = [];
|
|
91
|
+
return _a = class SchemaModelForm extends _classSuper {
|
|
92
|
+
get typeEngine() { return __classPrivateFieldGet(this, _SchemaModelForm_typeEngine_accessor_storage, "f"); }
|
|
93
|
+
set typeEngine(value) { __classPrivateFieldSet(this, _SchemaModelForm_typeEngine_accessor_storage, value, "f"); }
|
|
94
|
+
constructor(options) {
|
|
95
|
+
super();
|
|
96
|
+
this.options = options;
|
|
97
|
+
_SchemaModelForm_typeEngine_accessor_storage.set(this, __runInitializers(this, _typeEngine_initializers, void 0));
|
|
98
|
+
this.bindings = __runInitializers(this, _typeEngine_extraInitializers);
|
|
99
|
+
this.bindings = new Set();
|
|
100
|
+
_.map(options.definition.definition.belongsTo, (relationship) => {
|
|
101
|
+
const definition = options.definition.connection.getSchemaModelDefinitionByName(relationship.foreignType.name);
|
|
102
|
+
let entity = new EntityInput({
|
|
103
|
+
name: relationship.name,
|
|
104
|
+
entityType: DataBrowserEntities.SCHEMA_MODEL_OBJECT,
|
|
105
|
+
parent: definition,
|
|
106
|
+
label: relationship.name,
|
|
107
|
+
value: null
|
|
108
|
+
});
|
|
109
|
+
return new Binding({
|
|
110
|
+
name: relationship.name,
|
|
111
|
+
model: this.options.object,
|
|
112
|
+
input: entity,
|
|
113
|
+
resolve: () => {
|
|
114
|
+
if (!options.object.data.belongs_to[relationship.name]) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
return definition.resolve(options.object.data.belongs_to[relationship.name]);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
})
|
|
121
|
+
.filter((f) => !!f)
|
|
122
|
+
.forEach((binding) => {
|
|
123
|
+
this.bindings.add(binding);
|
|
124
|
+
this.addInput(new DirtyWrapperInput(binding.input, options.object));
|
|
125
|
+
});
|
|
126
|
+
_.map(options.definition.definition.attributes, (attribute) => {
|
|
127
|
+
var _b;
|
|
128
|
+
let field = (_b = this.typeEngine.getHandler(attribute.type)) === null || _b === void 0 ? void 0 : _b.generateField({
|
|
129
|
+
name: attribute.name,
|
|
130
|
+
label: attribute.label,
|
|
131
|
+
type: attribute.type
|
|
132
|
+
});
|
|
133
|
+
if (!field) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
return new TypedBinding({
|
|
137
|
+
variable: attribute,
|
|
138
|
+
model: this.options.object,
|
|
139
|
+
input: field,
|
|
140
|
+
name: attribute.name
|
|
141
|
+
});
|
|
142
|
+
})
|
|
143
|
+
.filter((binding) => !!binding)
|
|
144
|
+
.forEach((binding) => {
|
|
145
|
+
this.bindings.add(binding);
|
|
146
|
+
this.addInput(new DirtyWrapperInput(binding.input, options.object));
|
|
68
147
|
});
|
|
69
148
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
return new TextInput({
|
|
74
|
-
name: attribute.name,
|
|
75
|
-
label: attribute.label,
|
|
76
|
-
value: (_g = options.object) === null || _g === void 0 ? void 0 : _g.model[attribute.name]
|
|
149
|
+
dispose() {
|
|
150
|
+
this.bindings.forEach((b) => {
|
|
151
|
+
b.dispose();
|
|
77
152
|
});
|
|
78
153
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
154
|
+
},
|
|
155
|
+
_SchemaModelForm_typeEngine_accessor_storage = new WeakMap(),
|
|
156
|
+
(() => {
|
|
157
|
+
var _b;
|
|
158
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_b = _classSuper[Symbol.metadata]) !== null && _b !== void 0 ? _b : null) : void 0;
|
|
159
|
+
_typeEngine_decorators = [inject(TypeEngine)];
|
|
160
|
+
__esDecorate(_a, null, _typeEngine_decorators, { kind: "accessor", name: "typeEngine", static: false, private: false, access: { has: obj => "typeEngine" in obj, get: obj => obj.typeEngine, set: (obj, value) => { obj.typeEngine = value; } }, metadata: _metadata }, _typeEngine_initializers, _typeEngine_extraInitializers);
|
|
161
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
162
|
+
})(),
|
|
163
|
+
_a;
|
|
164
|
+
})();
|
|
165
|
+
export { SchemaModelForm };
|
|
87
166
|
//# sourceMappingURL=SchemaModelForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaModelForm.js","sourceRoot":"","sources":["../../src/forms/SchemaModelForm.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"SchemaModelForm.js","sourceRoot":"","sources":["../../src/forms/SchemaModelForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { Attachment, AttachmentType, BooleanType, DatetimeType, DateType, Day, LocationType, PhotoType, SignatureType, TextType } from '@journeyapps/db';
|
|
3
|
+
import { BooleanInput, DateInput, DateTimePickerType, FileInput, ImageInput, inject, MediaEngine, TextInput } from '@journeyapps-labs/reactor-mod';
|
|
4
|
+
import { LocationInput } from './inputs/LocationInput';
|
|
5
|
+
let TypeEngine = (() => {
|
|
6
|
+
var _a, _TypeEngine_mediaEngine_accessor_storage;
|
|
7
|
+
let _mediaEngine_decorators;
|
|
8
|
+
let _mediaEngine_initializers = [];
|
|
9
|
+
let _mediaEngine_extraInitializers = [];
|
|
10
|
+
return _a = class TypeEngine {
|
|
11
|
+
get mediaEngine() { return __classPrivateFieldGet(this, _TypeEngine_mediaEngine_accessor_storage, "f"); }
|
|
12
|
+
set mediaEngine(value) { __classPrivateFieldSet(this, _TypeEngine_mediaEngine_accessor_storage, value, "f"); }
|
|
13
|
+
constructor() {
|
|
14
|
+
_TypeEngine_mediaEngine_accessor_storage.set(this, __runInitializers(this, _mediaEngine_initializers, void 0));
|
|
15
|
+
this._mediaCache = __runInitializers(this, _mediaEngine_extraInitializers);
|
|
16
|
+
this.handlers = new Set();
|
|
17
|
+
this._mediaCache = new Map();
|
|
18
|
+
this.register({
|
|
19
|
+
matches: (type) => type instanceof DatetimeType || type instanceof DateType,
|
|
20
|
+
encode: async (value) => new Day(value),
|
|
21
|
+
decode: async (value) => {
|
|
22
|
+
if (value instanceof Day) {
|
|
23
|
+
return value.toDate();
|
|
24
|
+
}
|
|
25
|
+
return value;
|
|
26
|
+
},
|
|
27
|
+
generateField: ({ label, name, type }) => {
|
|
28
|
+
return new DateInput({
|
|
29
|
+
name,
|
|
30
|
+
label,
|
|
31
|
+
type: type instanceof DatetimeType ? DateTimePickerType.DATETIME : DateTimePickerType.DATE
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
this.register({
|
|
36
|
+
matches: (type) => type instanceof SignatureType || type instanceof PhotoType,
|
|
37
|
+
encode: async (value) => {
|
|
38
|
+
return Attachment.create({
|
|
39
|
+
data: await value.toArrayBuffer()
|
|
40
|
+
});
|
|
41
|
+
},
|
|
42
|
+
decode: async (value) => {
|
|
43
|
+
if (this._mediaCache.has(value.id)) {
|
|
44
|
+
return this._mediaCache.get(value.id);
|
|
45
|
+
}
|
|
46
|
+
let media = this.mediaEngine.getMediaTypeForPath('.jpg').generateMedia({
|
|
47
|
+
content: await value.toArrayBuffer(),
|
|
48
|
+
name: value.id,
|
|
49
|
+
uid: value.id
|
|
50
|
+
});
|
|
51
|
+
this._mediaCache.set(value.id, media);
|
|
52
|
+
return media;
|
|
53
|
+
},
|
|
54
|
+
generateField: ({ label, name }) => {
|
|
55
|
+
return new ImageInput({
|
|
56
|
+
name,
|
|
57
|
+
label
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
this.register({
|
|
62
|
+
matches: (type) => type instanceof AttachmentType,
|
|
63
|
+
encode: async (value) => {
|
|
64
|
+
return Attachment.create({
|
|
65
|
+
data: await value.arrayBuffer(),
|
|
66
|
+
filename: value.name
|
|
67
|
+
});
|
|
68
|
+
},
|
|
69
|
+
decode: async (value) => {
|
|
70
|
+
return new File([await value.toArrayBuffer()], value.id);
|
|
71
|
+
},
|
|
72
|
+
generateField: ({ label, name }) => {
|
|
73
|
+
return new FileInput({
|
|
74
|
+
name,
|
|
75
|
+
label
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
this.register({
|
|
80
|
+
matches: (type) => type instanceof BooleanType,
|
|
81
|
+
encode: async (value) => value,
|
|
82
|
+
decode: async (value) => value,
|
|
83
|
+
generateField: ({ label, name }) => {
|
|
84
|
+
return new BooleanInput({
|
|
85
|
+
name,
|
|
86
|
+
label
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
this.register({
|
|
91
|
+
matches: (type) => type instanceof TextType,
|
|
92
|
+
encode: async (value) => value,
|
|
93
|
+
decode: async (value) => value,
|
|
94
|
+
generateField: ({ label, name }) => {
|
|
95
|
+
return new TextInput({
|
|
96
|
+
name,
|
|
97
|
+
label
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
this.register({
|
|
102
|
+
matches: (type) => type instanceof LocationType,
|
|
103
|
+
encode: async (value) => value,
|
|
104
|
+
decode: async (value) => value,
|
|
105
|
+
generateField: ({ label, name }) => {
|
|
106
|
+
return new LocationInput({
|
|
107
|
+
name,
|
|
108
|
+
label
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
getHandler(type) {
|
|
114
|
+
for (let handler of this.handlers) {
|
|
115
|
+
if (handler.matches(type)) {
|
|
116
|
+
return handler;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
register(handler) {
|
|
122
|
+
this.handlers.add(handler);
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
_TypeEngine_mediaEngine_accessor_storage = new WeakMap(),
|
|
126
|
+
(() => {
|
|
127
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
128
|
+
_mediaEngine_decorators = [inject(MediaEngine)];
|
|
129
|
+
__esDecorate(_a, null, _mediaEngine_decorators, { kind: "accessor", name: "mediaEngine", static: false, private: false, access: { has: obj => "mediaEngine" in obj, get: obj => obj.mediaEngine, set: (obj, value) => { obj.mediaEngine = value; } }, metadata: _metadata }, _mediaEngine_initializers, _mediaEngine_extraInitializers);
|
|
130
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
131
|
+
})(),
|
|
132
|
+
_a;
|
|
133
|
+
})();
|
|
134
|
+
export { TypeEngine };
|
|
135
|
+
//# sourceMappingURL=TypeEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeEngine.js","sourceRoot":"","sources":["../../src/forms/TypeEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { FormInput, styled } from '@journeyapps-labs/reactor-mod';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { computed } from 'mobx';
|
|
5
|
+
import { observer } from 'mobx-react';
|
|
6
|
+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
7
|
+
let DirtyWrapperInput = (() => {
|
|
8
|
+
var _a;
|
|
9
|
+
let _classSuper = FormInput;
|
|
10
|
+
let _instanceExtraInitializers = [];
|
|
11
|
+
let _get_dirty_decorators;
|
|
12
|
+
return _a = class DirtyWrapperInput extends _classSuper {
|
|
13
|
+
constructor(input, object) {
|
|
14
|
+
super(Object.assign({}, input.options));
|
|
15
|
+
this.input = (__runInitializers(this, _instanceExtraInitializers), input);
|
|
16
|
+
this.object = object;
|
|
17
|
+
input.registerListener({
|
|
18
|
+
valueChanged: () => {
|
|
19
|
+
this.setValue(input.value);
|
|
20
|
+
},
|
|
21
|
+
errorChanged: () => {
|
|
22
|
+
this.setError(input.error);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
revert() {
|
|
27
|
+
if (this.object) {
|
|
28
|
+
this.object.revert(this.input.name);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
get dirty() {
|
|
32
|
+
var _b;
|
|
33
|
+
return (_b = this.object) === null || _b === void 0 ? void 0 : _b.patch.has(this.input.name);
|
|
34
|
+
}
|
|
35
|
+
renderControl(options) {
|
|
36
|
+
return React.createElement(Wrapper, { input: this }, this.input.renderControl(options));
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
(() => {
|
|
40
|
+
var _b;
|
|
41
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_b = _classSuper[Symbol.metadata]) !== null && _b !== void 0 ? _b : null) : void 0;
|
|
42
|
+
_get_dirty_decorators = [computed];
|
|
43
|
+
__esDecorate(_a, null, _get_dirty_decorators, { kind: "getter", name: "dirty", static: false, private: false, access: { has: obj => "dirty" in obj, get: obj => obj.dirty }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
44
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
45
|
+
})(),
|
|
46
|
+
_a;
|
|
47
|
+
})();
|
|
48
|
+
export { DirtyWrapperInput };
|
|
49
|
+
export const Wrapper = observer((props) => {
|
|
50
|
+
return (React.createElement(S.Container, { dirty: props.input.dirty },
|
|
51
|
+
props.children,
|
|
52
|
+
props.input.dirty ? (React.createElement(S.RevertButton, { icon: "arrow-rotate-back", onClick: () => {
|
|
53
|
+
props.input.revert();
|
|
54
|
+
} })) : null));
|
|
55
|
+
});
|
|
56
|
+
var S;
|
|
57
|
+
(function (S) {
|
|
58
|
+
S.Container = styled.div `
|
|
59
|
+
border-left: solid 4px ${(p) => (p.dirty ? p.theme.status.success : 'transparent')};
|
|
60
|
+
padding-left: 2px;
|
|
61
|
+
display: flex;
|
|
62
|
+
flex-direction: row;
|
|
63
|
+
align-items: center;
|
|
64
|
+
`;
|
|
65
|
+
S.RevertButton = styled(FontAwesomeIcon) `
|
|
66
|
+
color: ${(p) => p.theme.status.success};
|
|
67
|
+
font-size: 12px;
|
|
68
|
+
padding: 5px;
|
|
69
|
+
cursor: pointer;
|
|
70
|
+
`;
|
|
71
|
+
})(S || (S = {}));
|
|
72
|
+
//# sourceMappingURL=DirtyWrapperInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirtyWrapperInput.js","sourceRoot":"","sources":["../../../src/forms/inputs/DirtyWrapperInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAA0B,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC1F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;IAEpD,iBAAiB;;sBAAS,SAAS;;;sBAAnC,iBAAkB,SAAQ,WAAS;YAC9C,YACS,KAAgB,EAChB,MAA0B;gBAEjC,KAAK,mBACA,KAAK,CAAC,OAAO,EAChB,CAAC;gBALI,UAAK,IAFH,mDAAiB,EAEnB,KAAK,EAAW;gBAChB,WAAM,GAAN,MAAM,CAAoB;gBAKjC,KAAK,CAAC,gBAAgB,CAAC;oBACrB,YAAY,EAAE,GAAG,EAAE;wBACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;oBACD,YAAY,EAAE,GAAG,EAAE;wBACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;YAED,MAAM;gBACJ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAES,IAAI,KAAK;;gBACjB,OAAO,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC;YAED,aAAa,CAAC,OAA+B;gBAC3C,OAAO,oBAAC,OAAO,IAAC,KAAK,EAAE,IAAI,IAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAW,CAAC;YAC7E,CAAC;;;;;qCANA,QAAQ;YAAC,oKAAI,KAAK,6DAElB;;;;;SA1BU,iBAAiB;AAqC9B,MAAM,CAAC,MAAM,OAAO,GAAoD,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;IACzF,OAAO,CACL,oBAAC,CAAC,CAAC,SAAS,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;QAClC,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACnB,oBAAC,CAAC,CAAC,YAAY,IACb,IAAI,EAAC,mBAAmB,EACxB,OAAO,EAAE,GAAG,EAAE;gBACZ,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACvB,CAAC,GACD,CACH,CAAC,CAAC,CAAC,IAAI,CACI,CACf,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,IAAU,CAAC,CAeV;AAfD,WAAU,CAAC;IACI,WAAS,GAAG,MAAM,CAAC,GAAG,CAAoB;6BAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;;;;;GAKnF,CAAC;IAEW,cAAY,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;aACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;;;;GAIvC,CAAC;AACJ,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ export * from './core/SchemaModelDefinition';
|
|
|
4
4
|
export * from './core/SchemaModelObject';
|
|
5
5
|
export * from './core/AbstractConnection';
|
|
6
6
|
export * from './core/AbstractConnectionFactory';
|
|
7
|
-
export * from './core/query/SimpleQuery';
|
|
7
|
+
export * from './core/query/query-simple/SimpleQuery';
|
|
8
8
|
export * from './core/query/AbstractQuery';
|
|
9
9
|
export * from './core/query/Page';
|
|
10
10
|
export * from './core/types/ManualConnectionFactory';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,8CAA8C,CAAC;AAE7D,eAAe,iBAAiB,CAAC"}
|
|
@@ -34,14 +34,15 @@ let ModelPanelModel = (() => {
|
|
|
34
34
|
this.model = options === null || options === void 0 ? void 0 : options.model;
|
|
35
35
|
}
|
|
36
36
|
encodeEntities() {
|
|
37
|
+
var _b;
|
|
37
38
|
return {
|
|
38
39
|
definition: this.definition,
|
|
39
|
-
model: this.model
|
|
40
|
+
model: ((_b = this.model) === null || _b === void 0 ? void 0 : _b.model) ? this.model : null
|
|
40
41
|
};
|
|
41
42
|
}
|
|
42
|
-
decodeEntities(data) {
|
|
43
|
+
async decodeEntities(data) {
|
|
43
44
|
this.definition = data.definition;
|
|
44
|
-
this.model = data.model;
|
|
45
|
+
this.model = data.model || (await data.definition.generateNewModelObject());
|
|
45
46
|
}
|
|
46
47
|
},
|
|
47
48
|
_ModelPanelModel_connStore_accessor_storage = new WeakMap(),
|
|
@@ -75,13 +76,16 @@ export class ModelPanelFactory extends ReactorPanelFactory {
|
|
|
75
76
|
});
|
|
76
77
|
}
|
|
77
78
|
getSimpleName(model) {
|
|
78
|
-
|
|
79
|
+
var _a;
|
|
80
|
+
let _model = model.model;
|
|
81
|
+
let _definition = model.definition;
|
|
82
|
+
if (!_definition) {
|
|
79
83
|
return super.getSimpleName(model);
|
|
80
84
|
}
|
|
81
|
-
if (
|
|
82
|
-
return `${
|
|
85
|
+
if (_model) {
|
|
86
|
+
return `${_definition.definition.label}: ${((_a = _model.data) === null || _a === void 0 ? void 0 : _a.display) || '(new object)'}`;
|
|
83
87
|
}
|
|
84
|
-
return `${
|
|
88
|
+
return `${_definition.definition.label}`;
|
|
85
89
|
}
|
|
86
90
|
_generateModel() {
|
|
87
91
|
return new ModelPanelModel(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelPanelFactory.js","sourceRoot":"","sources":["../../../src/panels/model/ModelPanelFactory.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"ModelPanelFactory.js","sourceRoot":"","sources":["../../../src/panels/model/ModelPanelFactory.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { useEffect, useState } from 'react';
|
|
3
3
|
import { observer } from 'mobx-react';
|
|
4
4
|
import styled from '@emotion/styled';
|
|
5
|
-
import { BorderLayoutWidget, LoadingPanelWidget, PANEL_CONTENT_PADDING, PanelToolbarWidget, ScrollableDivCss } from '@journeyapps-labs/reactor-mod';
|
|
5
|
+
import { BorderLayoutWidget, ioc, LoadingPanelWidget, PANEL_CONTENT_PADDING, PanelButtonWidget, PanelToolbarWidget, ScrollableDivCss, theme, ThemeStore } from '@journeyapps-labs/reactor-mod';
|
|
6
6
|
import { SchemaModelForm } from '../../forms/SchemaModelForm';
|
|
7
7
|
var S;
|
|
8
8
|
(function (S) {
|
|
@@ -11,18 +11,29 @@ var S;
|
|
|
11
11
|
padding: ${PANEL_CONTENT_PADDING}px;
|
|
12
12
|
${ScrollableDivCss};
|
|
13
13
|
`;
|
|
14
|
+
S.Buttons = styled.div `
|
|
15
|
+
display: flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
column-gap: 5px;
|
|
18
|
+
padding: 5px;
|
|
19
|
+
`;
|
|
14
20
|
})(S || (S = {}));
|
|
15
21
|
export const ModelPanelWidget = observer((props) => {
|
|
16
22
|
var _a;
|
|
17
23
|
const [form, setForm] = useState(null);
|
|
24
|
+
const _theme = ioc.get(ThemeStore).getCurrentTheme(theme);
|
|
18
25
|
useEffect(() => {
|
|
19
26
|
if (!props.model.definition) {
|
|
20
27
|
return;
|
|
21
28
|
}
|
|
22
|
-
|
|
29
|
+
let _form = new SchemaModelForm({
|
|
23
30
|
object: props.model.model,
|
|
24
31
|
definition: props.model.definition
|
|
25
|
-
})
|
|
32
|
+
});
|
|
33
|
+
setForm(_form);
|
|
34
|
+
return () => {
|
|
35
|
+
_form.dispose();
|
|
36
|
+
};
|
|
26
37
|
}, [props.model.model, props.model.definition]);
|
|
27
38
|
let top = null;
|
|
28
39
|
if (props.model.model) {
|
|
@@ -39,7 +50,13 @@ export const ModelPanelWidget = observer((props) => {
|
|
|
39
50
|
] }));
|
|
40
51
|
}
|
|
41
52
|
return (React.createElement(LoadingPanelWidget, { loading: !form }, () => {
|
|
42
|
-
return (React.createElement(BorderLayoutWidget, { top: top
|
|
53
|
+
return (React.createElement(BorderLayoutWidget, { top: top, bottom: React.createElement(S.Buttons, null,
|
|
54
|
+
React.createElement(PanelButtonWidget, { disabled: props.model.model.patch.size === 0, label: "Save", icon: "save", iconColor: _theme.status.success, action: () => {
|
|
55
|
+
props.model.model.save();
|
|
56
|
+
} }),
|
|
57
|
+
React.createElement(PanelButtonWidget, { disabled: props.model.model.patch.size === 0, label: "Discard edits", icon: "arrow-rotate-back", action: () => {
|
|
58
|
+
props.model.model.clearEdits();
|
|
59
|
+
} })) },
|
|
43
60
|
React.createElement(S.Container, null, form.render())));
|
|
44
61
|
}));
|
|
45
62
|
});
|