@journeyapps-labs/reactor-mod-data-browser 2.0.1 → 2.1.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 +18 -0
- package/dist/@types/core/SchemaModelDefinition.d.ts +12 -1
- package/dist/@types/core/SchemaModelObject.d.ts +5 -0
- package/dist/@types/core/query/SimpleQuery.d.ts +1 -7
- package/dist/@types/core/query/widgets/BelongsToDisplayWidget.d.ts +9 -0
- package/dist/@types/core/query/widgets/CellDisplayWidget.d.ts +9 -0
- package/dist/@types/forms/inputs/LocationInput.d.ts +13 -0
- package/dist/core/SchemaModelDefinition.js +41 -2
- package/dist/core/SchemaModelDefinition.js.map +1 -1
- package/dist/core/SchemaModelObject.js +72 -11
- package/dist/core/SchemaModelObject.js.map +1 -1
- package/dist/core/query/SimpleQuery.js +15 -68
- package/dist/core/query/SimpleQuery.js.map +1 -1
- package/dist/core/query/widgets/BelongsToDisplayWidget.js +33 -0
- package/dist/core/query/widgets/BelongsToDisplayWidget.js.map +1 -0
- package/dist/core/query/widgets/CellDisplayWidget.js +85 -0
- package/dist/core/query/widgets/CellDisplayWidget.js.map +1 -0
- package/dist/forms/SchemaModelForm.js +26 -11
- package/dist/forms/SchemaModelForm.js.map +1 -1
- package/dist/forms/inputs/LocationInput.js +74 -0
- package/dist/forms/inputs/LocationInput.js.map +1 -0
- package/dist/panels/model/ModelPanelFactory.js +1 -1
- package/dist/panels/model/ModelPanelFactory.js.map +1 -1
- package/dist/panels/model/ModelPanelWidget.js +21 -3
- package/dist/panels/model/ModelPanelWidget.js.map +1 -1
- package/dist/panels/query/TableControlsWidget.js +3 -3
- package/dist/panels/query/TableControlsWidget.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist-module/bundle.js +18 -7
- package/dist-module/bundle.js.map +1 -1
- package/package.json +7 -5
- package/src/core/SchemaModelDefinition.ts +56 -3
- package/src/core/SchemaModelObject.ts +52 -2
- package/src/core/query/SimpleQuery.tsx +16 -94
- package/src/core/query/widgets/BelongsToDisplayWidget.tsx +48 -0
- package/src/core/query/widgets/CellDisplayWidget.tsx +114 -0
- package/src/forms/SchemaModelForm.tsx +28 -9
- package/src/forms/inputs/LocationInput.tsx +104 -0
- package/src/panels/model/ModelPanelFactory.tsx +1 -1
- package/src/panels/model/ModelPanelWidget.tsx +37 -3
- package/src/panels/query/TableControlsWidget.tsx +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @journeyapps-labs/reactor-mod-data-browser
|
|
2
2
|
|
|
3
|
+
## 2.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8cc96ec: - displays media directly inside Sector
|
|
8
|
+
- add media input fields to form editing
|
|
9
|
+
- status bar for schema model editing
|
|
10
|
+
- make query reload button show load status
|
|
11
|
+
- Add support for Locations
|
|
12
|
+
- Pull in Reactor changes: Version Packages reactor#36
|
|
13
|
+
- bf70874: Add support for loading relationships with smart paralell limits
|
|
14
|
+
|
|
15
|
+
## 2.0.2
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- 375d338: Add support for Day and number type
|
|
20
|
+
|
|
3
21
|
## 2.0.1
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
|
@@ -3,13 +3,24 @@ import { ObjectType } from '@journeyapps/parser-schema';
|
|
|
3
3
|
import { Collection } from '@journeyapps/db';
|
|
4
4
|
import { SchemaModelObject } from './SchemaModelObject';
|
|
5
5
|
import { LifecycleModel } from '@journeyapps-labs/lib-reactor-data-layer';
|
|
6
|
+
import { BaseObserver } from '@journeyapps-labs/common-utils';
|
|
7
|
+
import { QueueObject } from 'async';
|
|
8
|
+
export interface SchemaModelDefinitionListener {
|
|
9
|
+
resolved: (event: {
|
|
10
|
+
object: SchemaModelObject;
|
|
11
|
+
}) => any;
|
|
12
|
+
}
|
|
6
13
|
export interface SchemaModelDefinitionOptions {
|
|
7
14
|
connection: AbstractConnection;
|
|
8
15
|
definition: ObjectType;
|
|
9
16
|
}
|
|
10
|
-
export declare class SchemaModelDefinition implements LifecycleModel<ObjectType> {
|
|
17
|
+
export declare class SchemaModelDefinition extends BaseObserver<SchemaModelDefinitionListener> implements LifecycleModel<ObjectType> {
|
|
11
18
|
protected options: SchemaModelDefinitionOptions;
|
|
19
|
+
cache: Map<string, SchemaModelObject>;
|
|
20
|
+
queue: QueueObject<string>;
|
|
21
|
+
enqueued: Set<string>;
|
|
12
22
|
constructor(options: SchemaModelDefinitionOptions);
|
|
23
|
+
resolve(id: string): Promise<SchemaModelObject>;
|
|
13
24
|
get key(): string;
|
|
14
25
|
dispose(): void;
|
|
15
26
|
patch(data: ObjectType): void;
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import { DatabaseObject } from '@journeyapps/db';
|
|
2
2
|
import { SchemaModelDefinition } from './SchemaModelDefinition';
|
|
3
|
+
import { AbstractMedia, MediaEngine } from '@journeyapps-labs/reactor-mod';
|
|
3
4
|
export interface SchemaModelObjectOptions {
|
|
4
5
|
definition: SchemaModelDefinition;
|
|
5
6
|
model?: DatabaseObject;
|
|
6
7
|
}
|
|
7
8
|
export declare class SchemaModelObject {
|
|
8
9
|
options: SchemaModelObjectOptions;
|
|
10
|
+
accessor mediaEngine: MediaEngine;
|
|
11
|
+
private _mediaCache;
|
|
9
12
|
constructor(options: SchemaModelObjectOptions);
|
|
10
13
|
get definition(): SchemaModelDefinition;
|
|
11
14
|
get model(): DatabaseObject;
|
|
15
|
+
displayValue(): Promise<string>;
|
|
16
|
+
getMedia(field: string): Promise<AbstractMedia<import("@journeyapps-labs/reactor-mod").AbstractMediaOptions>>;
|
|
12
17
|
}
|
|
@@ -3,9 +3,8 @@ import { TableColumn } from '@journeyapps-labs/reactor-mod';
|
|
|
3
3
|
import { ConnectionStore } from '../../stores/ConnectionStore';
|
|
4
4
|
import * as db from '@journeyapps/db';
|
|
5
5
|
import { Promise } from '@journeyapps/db';
|
|
6
|
-
import { Page
|
|
6
|
+
import { Page } from './Page';
|
|
7
7
|
import { SchemaModelDefinition } from '../SchemaModelDefinition';
|
|
8
|
-
import * as React from 'react';
|
|
9
8
|
export interface SimpleQueryOptions {
|
|
10
9
|
definition?: SchemaModelDefinition;
|
|
11
10
|
limit?: number;
|
|
@@ -29,8 +28,3 @@ export declare class SimpleQuery extends AbstractQuery<SimpleQueryEncoded> {
|
|
|
29
28
|
getColumns(): TableColumn[];
|
|
30
29
|
getSimpleName(): string;
|
|
31
30
|
}
|
|
32
|
-
export interface CellDisplayWidgetProps {
|
|
33
|
-
row: PageRow;
|
|
34
|
-
cell: any;
|
|
35
|
-
}
|
|
36
|
-
export declare const CellDisplayWidget: React.FC<CellDisplayWidgetProps>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Variable } from '@journeyapps/db';
|
|
3
|
+
import { AbstractConnection } from '../../AbstractConnection';
|
|
4
|
+
export interface BelongsToDisplayWidgetProps {
|
|
5
|
+
variable: Variable;
|
|
6
|
+
id: string;
|
|
7
|
+
connection: AbstractConnection;
|
|
8
|
+
}
|
|
9
|
+
export declare const BelongsToDisplayWidget: React.FC<BelongsToDisplayWidgetProps>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Variable } from '@journeyapps/db';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { PageRow } from '../Page';
|
|
4
|
+
export interface CellDisplayWidgetProps {
|
|
5
|
+
row: PageRow;
|
|
6
|
+
cell: any;
|
|
7
|
+
variable: Variable;
|
|
8
|
+
}
|
|
9
|
+
export declare const CellDisplayWidget: React.FC<CellDisplayWidgetProps>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FormInput, FormInputGenerics, FormInputOptions, FormInputRenderOptions, NumberInput } from '@journeyapps-labs/reactor-mod';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Location } from '@journeyapps/db';
|
|
4
|
+
export declare class LocationInput extends FormInput<FormInputGenerics & {
|
|
5
|
+
VALUE: Location;
|
|
6
|
+
}> {
|
|
7
|
+
latitude: NumberInput;
|
|
8
|
+
longitude: NumberInput;
|
|
9
|
+
constructor(options: FormInputOptions<Location>);
|
|
10
|
+
setValue(value: Location): void;
|
|
11
|
+
update(): void;
|
|
12
|
+
renderControl(options: FormInputRenderOptions): React.JSX.Element;
|
|
13
|
+
}
|
|
@@ -1,12 +1,51 @@
|
|
|
1
1
|
import { SchemaModelObject } from './SchemaModelObject';
|
|
2
|
-
|
|
2
|
+
import { BaseObserver } from '@journeyapps-labs/common-utils';
|
|
3
|
+
import { queue } from 'async';
|
|
4
|
+
export class SchemaModelDefinition extends BaseObserver {
|
|
3
5
|
constructor(options) {
|
|
6
|
+
super();
|
|
4
7
|
this.options = options;
|
|
8
|
+
this.cache = new Map();
|
|
9
|
+
this.enqueued = new Set();
|
|
10
|
+
this.queue = queue(async (id) => {
|
|
11
|
+
let collection = await this.getCollection();
|
|
12
|
+
let model = await collection.first(id);
|
|
13
|
+
if (model) {
|
|
14
|
+
let object = new SchemaModelObject({
|
|
15
|
+
model,
|
|
16
|
+
definition: this
|
|
17
|
+
});
|
|
18
|
+
this.cache.set(id, object);
|
|
19
|
+
this.enqueued.delete(id);
|
|
20
|
+
this.iterateListeners((cb) => { var _a; return (_a = cb.resolved) === null || _a === void 0 ? void 0 : _a.call(cb, { object }); });
|
|
21
|
+
}
|
|
22
|
+
}, 6);
|
|
23
|
+
}
|
|
24
|
+
async resolve(id) {
|
|
25
|
+
if (this.cache.has(id)) {
|
|
26
|
+
return this.cache.get(id);
|
|
27
|
+
}
|
|
28
|
+
if (!this.enqueued.has(id)) {
|
|
29
|
+
this.enqueued.add(id);
|
|
30
|
+
this.queue.push(id);
|
|
31
|
+
}
|
|
32
|
+
return await new Promise((resolve) => {
|
|
33
|
+
let l1 = this.registerListener({
|
|
34
|
+
resolved: ({ object }) => {
|
|
35
|
+
if (object.model.id === id) {
|
|
36
|
+
l1();
|
|
37
|
+
resolve(object);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
5
42
|
}
|
|
6
43
|
get key() {
|
|
7
44
|
return this.definition.name;
|
|
8
45
|
}
|
|
9
|
-
dispose() {
|
|
46
|
+
dispose() {
|
|
47
|
+
this.queue.kill();
|
|
48
|
+
}
|
|
10
49
|
patch(data) {
|
|
11
50
|
this.options.definition = data;
|
|
12
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaModelDefinition.js","sourceRoot":"","sources":["../../src/core/SchemaModelDefinition.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"SchemaModelDefinition.js","sourceRoot":"","sources":["../../src/core/SchemaModelDefinition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,73 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { inject, MediaEngine } from '@journeyapps-labs/reactor-mod';
|
|
3
|
+
let SchemaModelObject = (() => {
|
|
4
|
+
var _a, _SchemaModelObject_mediaEngine_accessor_storage;
|
|
5
|
+
let _mediaEngine_decorators;
|
|
6
|
+
let _mediaEngine_initializers = [];
|
|
7
|
+
let _mediaEngine_extraInitializers = [];
|
|
8
|
+
return _a = class SchemaModelObject {
|
|
9
|
+
get mediaEngine() { return __classPrivateFieldGet(this, _SchemaModelObject_mediaEngine_accessor_storage, "f"); }
|
|
10
|
+
set mediaEngine(value) { __classPrivateFieldSet(this, _SchemaModelObject_mediaEngine_accessor_storage, value, "f"); }
|
|
11
|
+
constructor(options) {
|
|
12
|
+
this.options = options;
|
|
13
|
+
_SchemaModelObject_mediaEngine_accessor_storage.set(this, __runInitializers(this, _mediaEngine_initializers, void 0));
|
|
14
|
+
this._mediaCache = __runInitializers(this, _mediaEngine_extraInitializers);
|
|
15
|
+
this._mediaCache = new Map();
|
|
16
|
+
}
|
|
17
|
+
get definition() {
|
|
18
|
+
return this.options.definition;
|
|
19
|
+
}
|
|
20
|
+
get model() {
|
|
21
|
+
return this.options.model;
|
|
22
|
+
}
|
|
23
|
+
async displayValue() {
|
|
24
|
+
if (!this.model) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
let val = this.model.toString();
|
|
28
|
+
if (val) {
|
|
29
|
+
return val;
|
|
30
|
+
}
|
|
31
|
+
/*
|
|
32
|
+
there are scenarios where the FormatStringScope has not yet completed setting up its state +
|
|
33
|
+
parsing the format string directive. We therefore poll for a bit until we get the value. Ideally
|
|
34
|
+
we need a better way to determine when the scope is ready, but could not find one yet.
|
|
35
|
+
*/
|
|
36
|
+
for (let i = 0; i < 10; i++) {
|
|
37
|
+
await new Promise((resolve) => setTimeout(resolve, 40));
|
|
38
|
+
let val = this.model.toString();
|
|
39
|
+
if (val) {
|
|
40
|
+
return val;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
async getMedia(field) {
|
|
46
|
+
if (this._mediaCache.has(field)) {
|
|
47
|
+
return this._mediaCache.get(field);
|
|
48
|
+
}
|
|
49
|
+
let media = this.model[field];
|
|
50
|
+
if (!(media === null || media === void 0 ? void 0 : media.uploaded())) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
let url = new URL(media.url());
|
|
54
|
+
let mediaObject = this.mediaEngine.getMediaTypeForPath(url.pathname).generateMedia({
|
|
55
|
+
content: await media.toArrayBuffer(),
|
|
56
|
+
name: media.id,
|
|
57
|
+
uid: media.id
|
|
58
|
+
});
|
|
59
|
+
this._mediaCache.set(field, mediaObject);
|
|
60
|
+
return mediaObject;
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
_SchemaModelObject_mediaEngine_accessor_storage = new WeakMap(),
|
|
64
|
+
(() => {
|
|
65
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
66
|
+
_mediaEngine_decorators = [inject(MediaEngine)];
|
|
67
|
+
__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);
|
|
68
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
69
|
+
})(),
|
|
70
|
+
_a;
|
|
71
|
+
})();
|
|
72
|
+
export { SchemaModelObject };
|
|
12
73
|
//# sourceMappingURL=SchemaModelObject.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaModelObject.js","sourceRoot":"","sources":["../../src/core/SchemaModelObject.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SchemaModelObject.js","sourceRoot":"","sources":["../../src/core/SchemaModelObject.ts"],"names":[],"mappings":";AAEA,OAAO,EAAiB,MAAM,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;IAOtE,iBAAiB;;;;;sBAAjB,iBAAiB;YAE5B,IAAS,WAAW,iGAAc;YAAlC,IAAS,WAAW,sGAAc;YAIlC,YAAmB,OAAiC;gBAAjC,YAAO,GAAP,OAAO,CAA0B;gBAJ3C,sHAAyB;gBAE1B,gBAAW,2DAA6B;gBAG9C,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;YAC/B,CAAC;YAED,IAAI,UAAU;gBACZ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YACjC,CAAC;YAED,IAAI,KAAK;gBACP,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5B,CAAC;YAED,KAAK,CAAC,YAAY;gBAChB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,GAAG,EAAE,CAAC;oBACR,OAAO,GAAG,CAAC;gBACb,CAAC;gBACD;;;;mBAIG;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;oBACxD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAChC,IAAI,GAAG,EAAE,CAAC;wBACR,OAAO,GAAG,CAAC;oBACb,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,KAAK,CAAC,QAAQ,CAAC,KAAa;gBAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;gBACD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAgB,CAAC;gBAC7C,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,CAAA,EAAE,CAAC;oBACvB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC/B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;oBACjF,OAAO,EAAE,MAAM,KAAK,CAAC,aAAa,EAAE;oBACpC,IAAI,EAAE,KAAK,CAAC,EAAE;oBACd,GAAG,EAAE,KAAK,CAAC,EAAE;iBACd,CAAC,CAAC;gBAEH,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACzC,OAAO,WAAW,CAAC;YACrB,CAAC;;;;;uCAzDA,MAAM,CAAC,WAAW,CAAC;YACpB,oLAAS,WAAW,6BAAX,WAAW,iGAAc;;;;;SAFvB,iBAAiB"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate, __runInitializers } from "tslib";
|
|
2
2
|
import { AbstractQuery } from './AbstractQuery';
|
|
3
|
-
import {
|
|
3
|
+
import { inject } from '@journeyapps-labs/reactor-mod';
|
|
4
4
|
import { ConnectionStore } from '../../stores/ConnectionStore';
|
|
5
|
-
import { Attachment, Location } from '@journeyapps/db';
|
|
6
5
|
import { Page } from './Page';
|
|
7
6
|
import * as _ from 'lodash';
|
|
8
7
|
import * as React from 'react';
|
|
9
8
|
import { observable } from 'mobx';
|
|
9
|
+
import { CellDisplayWidget } from './widgets/CellDisplayWidget';
|
|
10
|
+
import { BelongsToDisplayWidget } from './widgets/BelongsToDisplayWidget';
|
|
10
11
|
let SimpleQuery = (() => {
|
|
11
12
|
var _a, _SimpleQuery_connStore_accessor_storage, _SimpleQuery__totalPages_accessor_storage, _SimpleQuery__pages_accessor_storage;
|
|
12
13
|
let _classSuper = AbstractQuery;
|
|
@@ -80,6 +81,17 @@ let SimpleQuery = (() => {
|
|
|
80
81
|
noWrap: true,
|
|
81
82
|
shrink: true
|
|
82
83
|
},
|
|
84
|
+
..._.map(this.options.definition.definition.belongsToIdVars, (a) => {
|
|
85
|
+
return {
|
|
86
|
+
key: a.name,
|
|
87
|
+
display: a.name,
|
|
88
|
+
noWrap: true,
|
|
89
|
+
shrink: true,
|
|
90
|
+
accessor: (cell, row) => {
|
|
91
|
+
return React.createElement(BelongsToDisplayWidget, { variable: a, connection: this.connection, id: row.model.model[a.name] });
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
}),
|
|
83
95
|
..._.map(this.options.definition.definition.attributes, (a) => {
|
|
84
96
|
return {
|
|
85
97
|
key: a.name,
|
|
@@ -87,7 +99,7 @@ let SimpleQuery = (() => {
|
|
|
87
99
|
noWrap: true,
|
|
88
100
|
shrink: true,
|
|
89
101
|
accessor: (cell, row) => {
|
|
90
|
-
return React.createElement(CellDisplayWidget, { cell: cell, row: row });
|
|
102
|
+
return React.createElement(CellDisplayWidget, { variable: a, cell: cell, row: row });
|
|
91
103
|
}
|
|
92
104
|
};
|
|
93
105
|
})
|
|
@@ -114,69 +126,4 @@ let SimpleQuery = (() => {
|
|
|
114
126
|
_a;
|
|
115
127
|
})();
|
|
116
128
|
export { SimpleQuery };
|
|
117
|
-
var S;
|
|
118
|
-
(function (S) {
|
|
119
|
-
S.Empty = styled.div `
|
|
120
|
-
opacity: 0.2;
|
|
121
|
-
`;
|
|
122
|
-
S.Preview = styled.img `
|
|
123
|
-
max-height: 40px;
|
|
124
|
-
max-width: 40px;
|
|
125
|
-
`;
|
|
126
|
-
S.pill = styled.div `
|
|
127
|
-
padding: 2px 4px;
|
|
128
|
-
background: ${(p) => p.theme.table.pills};
|
|
129
|
-
border-radius: 3px;
|
|
130
|
-
font-size: 12px;
|
|
131
|
-
`;
|
|
132
|
-
S.Pills = styled.div `
|
|
133
|
-
display: flex;
|
|
134
|
-
column-gap: 2px;
|
|
135
|
-
row-gap: 2px;
|
|
136
|
-
`;
|
|
137
|
-
})(S || (S = {}));
|
|
138
|
-
const MAX_NUMBER_OF_ARR_ITEMS_TO_DISPLAY = 3;
|
|
139
|
-
export const CellDisplayWidget = (props) => {
|
|
140
|
-
const { row, cell } = props;
|
|
141
|
-
if (cell == null) {
|
|
142
|
-
return React.createElement(S.Empty, null, "null");
|
|
143
|
-
}
|
|
144
|
-
if (_.isString(cell)) {
|
|
145
|
-
if (cell.trim() === '') {
|
|
146
|
-
return React.createElement(S.Empty, null, "empty");
|
|
147
|
-
}
|
|
148
|
-
return cell;
|
|
149
|
-
}
|
|
150
|
-
if (_.isArray(cell)) {
|
|
151
|
-
if (cell.length === 0) {
|
|
152
|
-
return React.createElement(S.Empty, null, "empty array");
|
|
153
|
-
}
|
|
154
|
-
let items = _.slice(cell, 0, MAX_NUMBER_OF_ARR_ITEMS_TO_DISPLAY);
|
|
155
|
-
return (React.createElement(S.Pills, null,
|
|
156
|
-
items.map((c) => {
|
|
157
|
-
return React.createElement(S.pill, { key: c }, c);
|
|
158
|
-
}),
|
|
159
|
-
items.length !== cell.length ? '...' : null));
|
|
160
|
-
}
|
|
161
|
-
if (cell instanceof Date) {
|
|
162
|
-
return React.createElement(SmartDateDisplayWidget, { date: cell });
|
|
163
|
-
}
|
|
164
|
-
if (_.isBoolean(cell)) {
|
|
165
|
-
return React.createElement(CheckboxWidget, { checked: cell, onChange: () => { } });
|
|
166
|
-
}
|
|
167
|
-
if (cell instanceof Location) {
|
|
168
|
-
return (React.createElement(React.Fragment, null,
|
|
169
|
-
React.createElement(MetadataWidget, { label: 'Lat', value: `${cell.latitude}` }),
|
|
170
|
-
React.createElement(MetadataWidget, { label: 'Long', value: `${cell.longitude}` })));
|
|
171
|
-
return JSON.stringify(cell.toJSON());
|
|
172
|
-
}
|
|
173
|
-
if (cell instanceof Attachment) {
|
|
174
|
-
if (cell.uploaded()) {
|
|
175
|
-
return React.createElement(S.Preview, { src: cell.urls['thumbnail'] });
|
|
176
|
-
}
|
|
177
|
-
return React.createElement(S.Empty, null, "Not uploaded");
|
|
178
|
-
}
|
|
179
|
-
console.log('unknown type', cell);
|
|
180
|
-
return null;
|
|
181
|
-
};
|
|
182
129
|
//# sourceMappingURL=SimpleQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleQuery.js","sourceRoot":"","sources":["../../../src/core/query/SimpleQuery.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AACtE,OAAO,
|
|
1
|
+
{"version":3,"file":"SimpleQuery.js","sourceRoot":"","sources":["../../../src/core/query/SimpleQuery.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import styled from '@emotion/styled';
|
|
4
|
+
export const BelongsToDisplayWidget = (props) => {
|
|
5
|
+
const [object, setObject] = useState(null);
|
|
6
|
+
const [display, setDisplay] = useState();
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
if (!props.id) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
props.connection.waitForSchemaModelDefinitionByName(props.variable.relationship).then((conn) => conn
|
|
12
|
+
.resolve(props.id)
|
|
13
|
+
.then((obj) => {
|
|
14
|
+
setObject(obj);
|
|
15
|
+
return obj.displayValue();
|
|
16
|
+
})
|
|
17
|
+
.then((value) => {
|
|
18
|
+
setDisplay(value);
|
|
19
|
+
}));
|
|
20
|
+
}, [props.id]);
|
|
21
|
+
if (!props.id) {
|
|
22
|
+
return React.createElement(S.Empty, null, "Not set");
|
|
23
|
+
}
|
|
24
|
+
return display;
|
|
25
|
+
};
|
|
26
|
+
var S;
|
|
27
|
+
(function (S) {
|
|
28
|
+
S.Empty = styled.div `
|
|
29
|
+
opacity: 0.2;
|
|
30
|
+
`;
|
|
31
|
+
S.Container = styled.div ``;
|
|
32
|
+
})(S || (S = {}));
|
|
33
|
+
//# sourceMappingURL=BelongsToDisplayWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BelongsToDisplayWidget.js","sourceRoot":"","sources":["../../../../src/core/query/widgets/BelongsToDisplayWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAWrC,MAAM,CAAC,MAAM,sBAAsB,GAA0C,CAAC,KAAK,EAAE,EAAE;IACrF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAoB,IAAI,CAAC,CAAC;IAC9D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAU,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,kCAAkC,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7F,IAAI;aACD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;aACjB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,SAAS,CAAC,GAAG,CAAC,CAAC;YACf,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CACL,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAEf,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,oBAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC;IACpC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AACF,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IACI,OAAK,GAAG,MAAM,CAAC,GAAG,CAAA;;GAE9B,CAAC;IAEW,WAAS,GAAG,MAAM,CAAC,GAAG,CAAA,EAAE,CAAC;AACxC,CAAC,EANS,CAAC,KAAD,CAAC,QAMV"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { CheckboxWidget, ImageMedia, MetadataWidget, SmartDateDisplayWidget, styled } from '@journeyapps-labs/reactor-mod';
|
|
2
|
+
import { Attachment, Day, Location } from '@journeyapps/db';
|
|
3
|
+
import * as _ from 'lodash';
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
var S;
|
|
6
|
+
(function (S) {
|
|
7
|
+
S.Empty = styled.div `
|
|
8
|
+
opacity: 0.2;
|
|
9
|
+
`;
|
|
10
|
+
S.Preview = styled.img `
|
|
11
|
+
max-height: 40px;
|
|
12
|
+
max-width: 40px;
|
|
13
|
+
cursor: pointer;
|
|
14
|
+
`;
|
|
15
|
+
S.pill = styled.div `
|
|
16
|
+
padding: 2px 4px;
|
|
17
|
+
background: ${(p) => p.theme.table.pills};
|
|
18
|
+
border-radius: 3px;
|
|
19
|
+
font-size: 12px;
|
|
20
|
+
`;
|
|
21
|
+
S.Pills = styled.div `
|
|
22
|
+
display: flex;
|
|
23
|
+
column-gap: 2px;
|
|
24
|
+
row-gap: 2px;
|
|
25
|
+
`;
|
|
26
|
+
})(S || (S = {}));
|
|
27
|
+
const MAX_NUMBER_OF_ARR_ITEMS_TO_DISPLAY = 3;
|
|
28
|
+
export const CellDisplayWidget = (props) => {
|
|
29
|
+
const { row, cell, variable } = props;
|
|
30
|
+
if (cell == null) {
|
|
31
|
+
return React.createElement(S.Empty, null, "null");
|
|
32
|
+
}
|
|
33
|
+
if (_.isString(cell)) {
|
|
34
|
+
if (cell.trim() === '') {
|
|
35
|
+
return React.createElement(S.Empty, null, "empty");
|
|
36
|
+
}
|
|
37
|
+
return cell;
|
|
38
|
+
}
|
|
39
|
+
if (_.isNumber(cell)) {
|
|
40
|
+
return cell;
|
|
41
|
+
}
|
|
42
|
+
if (_.isArray(cell)) {
|
|
43
|
+
if (cell.length === 0) {
|
|
44
|
+
return React.createElement(S.Empty, null, "empty array");
|
|
45
|
+
}
|
|
46
|
+
let items = _.slice(cell, 0, MAX_NUMBER_OF_ARR_ITEMS_TO_DISPLAY);
|
|
47
|
+
return (React.createElement(S.Pills, null,
|
|
48
|
+
items.map((c) => {
|
|
49
|
+
return React.createElement(S.pill, { key: c }, c);
|
|
50
|
+
}),
|
|
51
|
+
items.length !== cell.length ? '...' : null));
|
|
52
|
+
}
|
|
53
|
+
if (cell instanceof Date) {
|
|
54
|
+
return React.createElement(SmartDateDisplayWidget, { date: cell });
|
|
55
|
+
}
|
|
56
|
+
if (cell instanceof Day) {
|
|
57
|
+
return React.createElement(SmartDateDisplayWidget, { date: cell.toDate() });
|
|
58
|
+
}
|
|
59
|
+
if (_.isBoolean(cell)) {
|
|
60
|
+
return React.createElement(CheckboxWidget, { checked: cell, onChange: () => { } });
|
|
61
|
+
}
|
|
62
|
+
if (cell instanceof Location) {
|
|
63
|
+
return (React.createElement(React.Fragment, null,
|
|
64
|
+
React.createElement(MetadataWidget, { label: 'Lat', value: `${cell.latitude}` }),
|
|
65
|
+
React.createElement(MetadataWidget, { label: 'Long', value: `${cell.longitude}` })));
|
|
66
|
+
}
|
|
67
|
+
if (cell instanceof Attachment) {
|
|
68
|
+
if (cell.uploaded()) {
|
|
69
|
+
return (React.createElement(S.Preview, { onClick: () => {
|
|
70
|
+
row.model.getMedia(variable.name).then((media) => {
|
|
71
|
+
if (media instanceof ImageMedia) {
|
|
72
|
+
media.open();
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
window.open(cell.url(), '_blank');
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}, src: cell.urls['thumbnail'] }));
|
|
79
|
+
}
|
|
80
|
+
return React.createElement(S.Empty, null, "Not uploaded");
|
|
81
|
+
}
|
|
82
|
+
console.log('unknown type', cell);
|
|
83
|
+
return null;
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=CellDisplayWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellDisplayWidget.js","sourceRoot":"","sources":["../../../../src/core/query/widgets/CellDisplayWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { BooleanInput, DateInput, DateTimePickerType, FormModel, SelectInput, TextInput } from '@journeyapps-labs/reactor-mod';
|
|
1
|
+
import { BooleanInput, DateInput, DateTimePickerType, FileInput, FormModel, ImageInput, SelectInput, TextInput } from '@journeyapps-labs/reactor-mod';
|
|
2
2
|
import * as _ from 'lodash';
|
|
3
3
|
import { AttachmentType, BooleanType, DatetimeType, DateType, LocationType, MultipleChoiceType, PhotoType, SignatureType, SingleChoiceIntegerType, SingleChoiceType, TextType } from '@journeyapps/db';
|
|
4
|
+
import { LocationInput } from './inputs/LocationInput';
|
|
4
5
|
export class SchemaModelForm extends FormModel {
|
|
5
6
|
constructor(options) {
|
|
6
7
|
super();
|
|
@@ -23,26 +24,40 @@ export class SchemaModelForm extends FormModel {
|
|
|
23
24
|
type: DateTimePickerType.DATE
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
|
-
if (attribute.type instanceof
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
if (attribute.type instanceof SignatureType || attribute.type instanceof PhotoType) {
|
|
28
|
+
let media = new ImageInput({
|
|
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;
|
|
30
38
|
}
|
|
31
|
-
if (attribute.type instanceof
|
|
32
|
-
|
|
39
|
+
if (attribute.type instanceof AttachmentType) {
|
|
40
|
+
return new FileInput({
|
|
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
|
+
});
|
|
33
45
|
}
|
|
34
46
|
if (attribute.type instanceof BooleanType) {
|
|
35
47
|
return new BooleanInput({
|
|
36
48
|
name: attribute.name,
|
|
37
49
|
label: attribute.label,
|
|
38
|
-
value: (
|
|
50
|
+
value: (_d = options.object) === null || _d === void 0 ? void 0 : _d.model[attribute.name]
|
|
39
51
|
});
|
|
40
52
|
}
|
|
41
53
|
if (attribute.type instanceof LocationType) {
|
|
54
|
+
return new LocationInput({
|
|
55
|
+
name: attribute.name,
|
|
56
|
+
label: attribute.label,
|
|
57
|
+
value: (_e = options.object) === null || _e === void 0 ? void 0 : _e.model[attribute.name]
|
|
58
|
+
});
|
|
42
59
|
}
|
|
43
|
-
if (attribute.type instanceof SingleChoiceIntegerType) {
|
|
44
|
-
}
|
|
45
|
-
if (attribute.type instanceof SingleChoiceType) {
|
|
60
|
+
if (attribute.type instanceof SingleChoiceIntegerType || attribute.type instanceof SingleChoiceType) {
|
|
46
61
|
return new SelectInput({
|
|
47
62
|
name: attribute.name,
|
|
48
63
|
label: attribute.label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaModelForm.js","sourceRoot":"","sources":["../../src/forms/SchemaModelForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,SAAS,EACV,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,QAAQ,EACT,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"SchemaModelForm.js","sourceRoot":"","sources":["../../src/forms/SchemaModelForm.tsx"],"names":[],"mappings":"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"}
|