@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.
Files changed (124) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/@types/core/AbstractConnection.d.ts +2 -0
  3. package/dist/@types/core/SchemaModelDefinition.d.ts +8 -2
  4. package/dist/@types/core/SchemaModelObject.d.ts +15 -8
  5. package/dist/@types/core/query/AbstractQuery.d.ts +5 -10
  6. package/dist/@types/core/query/AbstractSerializableQuery.d.ts +11 -0
  7. package/dist/@types/core/query/Page.d.ts +2 -5
  8. package/dist/@types/core/query/filters.d.ts +17 -0
  9. package/dist/@types/core/query/query-changed/ChangedModelQuery.d.ts +15 -0
  10. package/dist/@types/core/query/query-simple/SimplePage.d.ts +12 -0
  11. package/dist/@types/core/query/{SimpleQuery.d.ts → query-simple/SimpleQuery.d.ts} +10 -8
  12. package/dist/@types/core/query/widgets/BelongsToDisplayWidget.d.ts +5 -2
  13. package/dist/@types/core/query/widgets/CellDisplayWidget.d.ts +1 -2
  14. package/dist/@types/core/query/widgets/ColumnDisplayWidget.d.ts +6 -0
  15. package/dist/@types/core/query/widgets/SmartBelongsToDisplayWidget.d.ts +10 -0
  16. package/dist/@types/core/query/widgets/SmartCellDisplayWidget.d.ts +7 -0
  17. package/dist/@types/core/query/widgets/SmartColumnWidget.d.ts +10 -0
  18. package/dist/@types/core/query/widgets/SmartFilterWidget.d.ts +9 -0
  19. package/dist/@types/entities/QueryEntityDefinition.d.ts +3 -3
  20. package/dist/@types/forms/SchemaModelForm.d.ts +32 -1
  21. package/dist/@types/forms/TypeEngine.d.ts +20 -0
  22. package/dist/@types/forms/inputs/DirtyWrapperInput.d.ts +15 -0
  23. package/dist/@types/index.d.ts +1 -1
  24. package/dist/@types/panels/model/ModelPanelFactory.d.ts +2 -2
  25. package/dist/@types/panels/query/QueryPanelFactory.d.ts +2 -1
  26. package/dist/DataBrowserModule.js +3 -1
  27. package/dist/DataBrowserModule.js.map +1 -1
  28. package/dist/actions/schema-definitions/CreateModelAction.js +2 -1
  29. package/dist/actions/schema-definitions/CreateModelAction.js.map +1 -1
  30. package/dist/actions/schema-definitions/QuerySchemaModelAction.js +1 -1
  31. package/dist/actions/schema-definitions/QuerySchemaModelAction.js.map +1 -1
  32. package/dist/core/AbstractConnection.js +15 -0
  33. package/dist/core/AbstractConnection.js.map +1 -1
  34. package/dist/core/SchemaModelDefinition.js +67 -13
  35. package/dist/core/SchemaModelDefinition.js.map +1 -1
  36. package/dist/core/SchemaModelObject.js +90 -50
  37. package/dist/core/SchemaModelObject.js.map +1 -1
  38. package/dist/core/query/AbstractQuery.js +2 -8
  39. package/dist/core/query/AbstractQuery.js.map +1 -1
  40. package/dist/core/query/AbstractSerializableQuery.js +13 -0
  41. package/dist/core/query/AbstractSerializableQuery.js.map +1 -0
  42. package/dist/core/query/Page.js +6 -11
  43. package/dist/core/query/Page.js.map +1 -1
  44. package/dist/core/query/filters.js +17 -0
  45. package/dist/core/query/filters.js.map +1 -0
  46. package/dist/core/query/query-changed/ChangedModelQuery.js +31 -0
  47. package/dist/core/query/query-changed/ChangedModelQuery.js.map +1 -0
  48. package/dist/core/query/query-simple/SimplePage.js +18 -0
  49. package/dist/core/query/query-simple/SimplePage.js.map +1 -0
  50. package/dist/core/query/{SimpleQuery.js → query-simple/SimpleQuery.js} +51 -23
  51. package/dist/core/query/query-simple/SimpleQuery.js.map +1 -0
  52. package/dist/core/query/widgets/BelongsToDisplayWidget.js +39 -13
  53. package/dist/core/query/widgets/BelongsToDisplayWidget.js.map +1 -1
  54. package/dist/core/query/widgets/CellDisplayWidget.js +19 -5
  55. package/dist/core/query/widgets/CellDisplayWidget.js.map +1 -1
  56. package/dist/core/query/widgets/ColumnDisplayWidget.js +22 -0
  57. package/dist/core/query/widgets/ColumnDisplayWidget.js.map +1 -0
  58. package/dist/core/query/widgets/SmartBelongsToDisplayWidget.js +29 -0
  59. package/dist/core/query/widgets/SmartBelongsToDisplayWidget.js.map +1 -0
  60. package/dist/core/query/widgets/SmartCellDisplayWidget.js +20 -0
  61. package/dist/core/query/widgets/SmartCellDisplayWidget.js.map +1 -0
  62. package/dist/core/query/widgets/SmartColumnWidget.js +29 -0
  63. package/dist/core/query/widgets/SmartColumnWidget.js.map +1 -0
  64. package/dist/core/query/widgets/SmartFilterWidget.js +56 -0
  65. package/dist/core/query/widgets/SmartFilterWidget.js.map +1 -0
  66. package/dist/entities/QueryEntityDefinition.js +3 -3
  67. package/dist/entities/QueryEntityDefinition.js.map +1 -1
  68. package/dist/entities/SchemaModelObjectEntityDefinition.js +28 -8
  69. package/dist/entities/SchemaModelObjectEntityDefinition.js.map +1 -1
  70. package/dist/forms/SchemaModelForm.js +153 -74
  71. package/dist/forms/SchemaModelForm.js.map +1 -1
  72. package/dist/forms/TypeEngine.js +135 -0
  73. package/dist/forms/TypeEngine.js.map +1 -0
  74. package/dist/forms/inputs/DirtyWrapperInput.js +72 -0
  75. package/dist/forms/inputs/DirtyWrapperInput.js.map +1 -0
  76. package/dist/index.js +1 -1
  77. package/dist/index.js.map +1 -1
  78. package/dist/panels/model/ModelPanelFactory.js +11 -7
  79. package/dist/panels/model/ModelPanelFactory.js.map +1 -1
  80. package/dist/panels/model/ModelPanelWidget.js +21 -4
  81. package/dist/panels/model/ModelPanelWidget.js.map +1 -1
  82. package/dist/panels/query/QueryPanelFactory.js +4 -0
  83. package/dist/panels/query/QueryPanelFactory.js.map +1 -1
  84. package/dist/panels/query/QueryPanelWidget.js +6 -3
  85. package/dist/panels/query/QueryPanelWidget.js.map +1 -1
  86. package/dist/panels/query/TableControlsWidget.js +42 -9
  87. package/dist/panels/query/TableControlsWidget.js.map +1 -1
  88. package/dist/tsconfig.tsbuildinfo +1 -1
  89. package/dist-module/bundle.js +83 -27
  90. package/dist-module/bundle.js.map +1 -1
  91. package/package.json +8 -6
  92. package/src/DataBrowserModule.ts +3 -1
  93. package/src/actions/schema-definitions/CreateModelAction.ts +2 -1
  94. package/src/actions/schema-definitions/QuerySchemaModelAction.ts +1 -1
  95. package/src/core/AbstractConnection.ts +18 -1
  96. package/src/core/SchemaModelDefinition.ts +71 -14
  97. package/src/core/SchemaModelObject.ts +62 -46
  98. package/src/core/query/AbstractQuery.ts +10 -21
  99. package/src/core/query/AbstractSerializableQuery.ts +23 -0
  100. package/src/core/query/Page.ts +7 -14
  101. package/src/core/query/filters.ts +30 -0
  102. package/src/core/query/query-changed/ChangedModelQuery.ts +35 -0
  103. package/src/core/query/query-simple/SimplePage.ts +29 -0
  104. package/src/core/query/query-simple/SimpleQuery.tsx +163 -0
  105. package/src/core/query/widgets/BelongsToDisplayWidget.tsx +64 -18
  106. package/src/core/query/widgets/CellDisplayWidget.tsx +33 -14
  107. package/src/core/query/widgets/ColumnDisplayWidget.tsx +36 -0
  108. package/src/core/query/widgets/SmartBelongsToDisplayWidget.tsx +46 -0
  109. package/src/core/query/widgets/SmartCellDisplayWidget.tsx +29 -0
  110. package/src/core/query/widgets/SmartColumnWidget.tsx +46 -0
  111. package/src/core/query/widgets/SmartFilterWidget.tsx +80 -0
  112. package/src/entities/QueryEntityDefinition.ts +6 -6
  113. package/src/entities/SchemaModelObjectEntityDefinition.ts +34 -8
  114. package/src/forms/SchemaModelForm.tsx +145 -96
  115. package/src/forms/TypeEngine.ts +160 -0
  116. package/src/forms/inputs/DirtyWrapperInput.tsx +75 -0
  117. package/src/index.ts +1 -1
  118. package/src/panels/model/ModelPanelFactory.tsx +11 -9
  119. package/src/panels/model/ModelPanelWidget.tsx +45 -9
  120. package/src/panels/query/QueryPanelFactory.tsx +5 -0
  121. package/src/panels/query/QueryPanelWidget.tsx +6 -3
  122. package/src/panels/query/TableControlsWidget.tsx +85 -17
  123. package/dist/core/query/SimpleQuery.js.map +0 -1
  124. package/src/core/query/SimpleQuery.tsx +0 -120
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @journeyapps-labs/reactor-mod-data-browser
2
2
 
3
+ ## 2.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - bb7000e: Rewrite the data engine
8
+
9
+ ## 2.2.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 12e5f6a: - Add support for filters
14
+ - Fix relationship belongs_to loading
15
+ - Display column headings with width based on heurestics
16
+
17
+ ### Patch Changes
18
+
19
+ - 687468b: - Improve relationship loading
20
+ - Dont block kernel init with connection store
21
+
3
22
  ## 2.1.0
4
23
 
5
24
  ### Minor Changes
@@ -5,6 +5,7 @@ import { SchemaModelDefinition } from './SchemaModelDefinition';
5
5
  import { BaseObserver } from '@journeyapps-labs/common-utils';
6
6
  import { Collection, LifecycleCollection } from '@journeyapps-labs/lib-reactor-data-layer';
7
7
  import { EntityDescription } from '@journeyapps-labs/reactor-mod';
8
+ import { SchemaModelObject } from './SchemaModelObject';
8
9
  export interface AbstractConnectionSerialized {
9
10
  factory: string;
10
11
  id: string;
@@ -19,6 +20,7 @@ export declare abstract class AbstractConnection extends BaseObserver<AbstractCo
19
20
  schema_models_collection: Collection<ObjectType>;
20
21
  schema_models: LifecycleCollection<ObjectType, SchemaModelDefinition>;
21
22
  constructor(factory: AbstractConnectionFactory);
23
+ batchSave(models: SchemaModelObject[]): Promise<void>;
22
24
  getSchemaModelDefinitionByName(name: string): SchemaModelDefinition;
23
25
  waitForSchemaModelDefinitionByName(name: string): Promise<SchemaModelDefinition>;
24
26
  abstract getConnection(): Promise<Database>;
@@ -1,6 +1,6 @@
1
1
  import { AbstractConnection } from './AbstractConnection';
2
2
  import { ObjectType } from '@journeyapps/parser-schema';
3
- import { Collection } from '@journeyapps/db';
3
+ import { Collection, Query } from '@journeyapps/db';
4
4
  import { SchemaModelObject } from './SchemaModelObject';
5
5
  import { LifecycleModel } from '@journeyapps-labs/lib-reactor-data-layer';
6
6
  import { BaseObserver } from '@journeyapps-labs/common-utils';
@@ -9,6 +9,9 @@ export interface SchemaModelDefinitionListener {
9
9
  resolved: (event: {
10
10
  object: SchemaModelObject;
11
11
  }) => any;
12
+ failed: (event: {
13
+ object_id: string;
14
+ }) => any;
12
15
  }
13
16
  export interface SchemaModelDefinitionOptions {
14
17
  connection: AbstractConnection;
@@ -20,12 +23,15 @@ export declare class SchemaModelDefinition extends BaseObserver<SchemaModelDefin
20
23
  queue: QueueObject<string>;
21
24
  enqueued: Set<string>;
22
25
  constructor(options: SchemaModelDefinitionOptions);
23
- resolve(id: string): Promise<SchemaModelObject>;
26
+ search(text: string): Promise<SchemaModelObject[]>;
27
+ load(id: string): Promise<SchemaModelObject>;
28
+ resolve(id: string): Promise<SchemaModelObject | null>;
24
29
  get key(): string;
25
30
  dispose(): void;
26
31
  patch(data: ObjectType): void;
27
32
  get connection(): AbstractConnection;
28
33
  get definition(): ObjectType;
34
+ executeQuery(query: Query): Promise<SchemaModelObject[]>;
29
35
  getCollection(): Promise<Collection<import("@journeyapps/db").DatabaseObject>>;
30
36
  generateNewModelObject(): Promise<SchemaModelObject>;
31
37
  }
@@ -1,17 +1,24 @@
1
- import { DatabaseObject } from '@journeyapps/db';
1
+ import { ApiObjectData, DatabaseAdapter, DatabaseObject } from '@journeyapps/db';
2
2
  import { SchemaModelDefinition } from './SchemaModelDefinition';
3
- import { AbstractMedia, MediaEngine } from '@journeyapps-labs/reactor-mod';
4
3
  export interface SchemaModelObjectOptions {
5
4
  definition: SchemaModelDefinition;
6
- model?: DatabaseObject;
5
+ adapter: DatabaseAdapter;
6
+ model?: ApiObjectData;
7
7
  }
8
8
  export declare class SchemaModelObject {
9
9
  options: SchemaModelObjectOptions;
10
- accessor mediaEngine: MediaEngine;
11
- private _mediaCache;
10
+ accessor data: ApiObjectData;
11
+ accessor model: DatabaseObject;
12
+ accessor updated_at: Date;
13
+ accessor patch: Map<string, any>;
12
14
  constructor(options: SchemaModelObjectOptions);
15
+ applyPatches(): Promise<void>;
16
+ save(): Promise<void>;
17
+ clearEdits(): void;
18
+ revert(field: string): void;
19
+ set(field: string, value: any): void;
20
+ setData(data: ApiObjectData): void;
21
+ reload(): Promise<void>;
13
22
  get definition(): SchemaModelDefinition;
14
- get model(): DatabaseObject;
15
- displayValue(): Promise<string>;
16
- getMedia(field: string): Promise<AbstractMedia<import("@journeyapps-labs/reactor-mod").AbstractMediaOptions>>;
23
+ get id(): string;
17
24
  }
@@ -1,22 +1,17 @@
1
1
  import { Page } from './Page';
2
2
  import { AbstractConnection } from '../AbstractConnection';
3
- import { ConnectionStore } from '../../stores/ConnectionStore';
4
3
  import { TableColumn } from '@journeyapps-labs/reactor-mod';
5
- export interface AbstractQueryEncoded {
4
+ import { SchemaModelObject } from '../SchemaModelObject';
5
+ export declare abstract class AbstractQuery {
6
6
  type: string;
7
- connection_id: string;
8
- definition: string;
9
- }
10
- export declare abstract class AbstractQuery<T extends AbstractQueryEncoded = AbstractQueryEncoded> {
11
- protected type: string;
12
- protected connection: AbstractConnection;
7
+ connection: AbstractConnection;
13
8
  id: string;
14
9
  constructor(type: string, connection: AbstractConnection);
10
+ batchSave(): Promise<void>;
11
+ abstract getDirtyObjects(): SchemaModelObject[];
15
12
  abstract getSimpleName(): string;
16
13
  abstract load(): Promise<any>;
17
14
  abstract getColumns(): TableColumn[];
18
15
  abstract get totalPages(): number;
19
16
  abstract getPage(number: number): Page;
20
- serialize(): T;
21
- deserialize(connectionStore: ConnectionStore, data: T): Promise<void>;
22
17
  }
@@ -0,0 +1,11 @@
1
+ import { ConnectionStore } from '../../stores/ConnectionStore';
2
+ import { AbstractQuery } from './AbstractQuery';
3
+ export interface AbstractQueryEncoded {
4
+ type: string;
5
+ connection_id: string;
6
+ definition: string;
7
+ }
8
+ export declare abstract class AbstractSerializableQuery<T extends AbstractQueryEncoded = AbstractQueryEncoded> extends AbstractQuery {
9
+ serialize(): T;
10
+ deserialize(connectionStore: ConnectionStore, data: T): Promise<void>;
11
+ }
@@ -1,15 +1,11 @@
1
1
  import { SchemaModelObject } from '../SchemaModelObject';
2
2
  import { TableRow } from '@journeyapps-labs/reactor-mod';
3
- import { Collection, DatabaseObject } from '@journeyapps/db';
4
3
  import { SchemaModelDefinition } from '../SchemaModelDefinition';
5
4
  export interface PageRow extends TableRow {
6
5
  model: SchemaModelObject;
7
6
  definition: SchemaModelDefinition;
8
7
  }
9
8
  export interface PageOptions {
10
- collection: () => Promise<Collection<DatabaseObject>>;
11
- offset: number;
12
- limit: number;
13
9
  definition: SchemaModelDefinition;
14
10
  index: number;
15
11
  }
@@ -19,6 +15,7 @@ export declare class Page {
19
15
  accessor loading: boolean;
20
16
  constructor(options: PageOptions);
21
17
  get index(): number;
22
- load(): Promise<void>;
18
+ reset(): void;
19
+ getDirtyObjects(): SchemaModelObject[];
23
20
  asRows(): PageRow[];
24
21
  }
@@ -0,0 +1,17 @@
1
+ import { Query, Variable } from '@journeyapps/db';
2
+ export declare abstract class AbstractFilter {
3
+ abstract augment(query: Query): any;
4
+ }
5
+ export declare enum Condition {
6
+ EQUALS = "="
7
+ }
8
+ export interface Statement {
9
+ condition: Condition;
10
+ arg: any;
11
+ }
12
+ export declare class SimpleFilter extends AbstractFilter {
13
+ variable: Variable;
14
+ statements: Statement[];
15
+ constructor(variable: Variable, statements: Statement[]);
16
+ augment(query: Query): Query<import("@journeyapps/db").DatabaseObject>;
17
+ }
@@ -0,0 +1,15 @@
1
+ import { TableColumn } from '@journeyapps-labs/reactor-mod';
2
+ import { SchemaModelObject } from '../../SchemaModelObject';
3
+ import { AbstractQuery } from '../AbstractQuery';
4
+ import { Page } from '../Page';
5
+ import { SimpleQuery } from '../query-simple/SimpleQuery';
6
+ export declare class ChangedModelQuery extends AbstractQuery {
7
+ protected query: SimpleQuery;
8
+ constructor(query: SimpleQuery);
9
+ getDirtyObjects(): SchemaModelObject[];
10
+ getSimpleName(): string;
11
+ load(): Promise<any>;
12
+ getColumns(): TableColumn[];
13
+ get totalPages(): number;
14
+ getPage(number: number): Page;
15
+ }
@@ -0,0 +1,12 @@
1
+ import { Page, PageOptions } from '../Page';
2
+ import { AbstractFilter } from '../filters';
3
+ export interface SimplePageOptions extends PageOptions {
4
+ offset: number;
5
+ limit: number;
6
+ filters: AbstractFilter[];
7
+ }
8
+ export declare class SimplePage extends Page {
9
+ protected options2: SimplePageOptions;
10
+ constructor(options2: SimplePageOptions);
11
+ load(): Promise<void>;
12
+ }
@@ -1,10 +1,11 @@
1
- import { AbstractQuery, AbstractQueryEncoded } from './AbstractQuery';
2
1
  import { TableColumn } from '@journeyapps-labs/reactor-mod';
3
- import { ConnectionStore } from '../../stores/ConnectionStore';
4
- import * as db from '@journeyapps/db';
5
- import { Promise } from '@journeyapps/db';
6
- import { Page } from './Page';
7
- import { SchemaModelDefinition } from '../SchemaModelDefinition';
2
+ import { ConnectionStore } from '../../../stores/ConnectionStore';
3
+ import { Promise, Variable } from '@journeyapps/db';
4
+ import { Page } from '../Page';
5
+ import { SchemaModelDefinition } from '../../SchemaModelDefinition';
6
+ import { SimpleFilter } from '../filters';
7
+ import { SchemaModelObject } from '../../SchemaModelObject';
8
+ import { AbstractQueryEncoded, AbstractSerializableQuery } from '../AbstractSerializableQuery';
8
9
  export interface SimpleQueryOptions {
9
10
  definition?: SchemaModelDefinition;
10
11
  limit?: number;
@@ -13,13 +14,13 @@ export interface SimpleQueryEncoded extends AbstractQueryEncoded {
13
14
  limit: number;
14
15
  definition: string;
15
16
  }
16
- export declare class SimpleQuery extends AbstractQuery<SimpleQueryEncoded> {
17
+ export declare class SimpleQuery extends AbstractSerializableQuery<SimpleQueryEncoded> {
17
18
  options: SimpleQueryOptions;
18
19
  accessor connStore: ConnectionStore;
19
20
  accessor _totalPages: number;
20
21
  accessor _pages: Page[];
22
+ simple_filters: Map<Variable, SimpleFilter>;
21
23
  constructor(options?: SimpleQueryOptions);
22
- getCollection(): globalThis.Promise<db.database.Collection<db.database.DatabaseObject>>;
23
24
  load(): globalThis.Promise<void>;
24
25
  getPage(number: number): Page;
25
26
  get totalPages(): number;
@@ -27,4 +28,5 @@ export declare class SimpleQuery extends AbstractQuery<SimpleQueryEncoded> {
27
28
  deserialize(connectionStore: ConnectionStore, data: SimpleQueryEncoded): Promise<void>;
28
29
  getColumns(): TableColumn[];
29
30
  getSimpleName(): string;
31
+ getDirtyObjects(): SchemaModelObject[];
30
32
  }
@@ -1,9 +1,12 @@
1
1
  import * as React from 'react';
2
- import { Variable } from '@journeyapps/db';
2
+ import { SchemaModelObject } from '../../SchemaModelObject';
3
3
  import { AbstractConnection } from '../../AbstractConnection';
4
+ import { Relationship } from '@journeyapps/parser-schema';
4
5
  export interface BelongsToDisplayWidgetProps {
5
- variable: Variable;
6
+ relationship: Relationship;
6
7
  id: string;
7
8
  connection: AbstractConnection;
9
+ open: (object: SchemaModelObject) => any;
10
+ className?: any;
8
11
  }
9
12
  export declare const BelongsToDisplayWidget: React.FC<BelongsToDisplayWidgetProps>;
@@ -1,9 +1,8 @@
1
- import { Variable } from '@journeyapps/db';
2
1
  import * as React from 'react';
3
2
  import { PageRow } from '../Page';
4
3
  export interface CellDisplayWidgetProps {
5
4
  row: PageRow;
6
5
  cell: any;
7
- variable: Variable;
6
+ name: string;
8
7
  }
9
8
  export declare const CellDisplayWidget: React.FC<CellDisplayWidgetProps>;
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ export interface ColumnDisplayWidgetProps {
3
+ label: string;
4
+ className?: any;
5
+ }
6
+ export declare const ColumnDisplayWidget: React.FC<ColumnDisplayWidgetProps>;
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { PageRow } from '../Page';
3
+ import { AbstractConnection } from '../../AbstractConnection';
4
+ import { Variable } from '@journeyapps/db';
5
+ export interface SmartBelongsToDisplayWidgetProps {
6
+ row: PageRow;
7
+ connection: AbstractConnection;
8
+ variable_id: Variable;
9
+ }
10
+ export declare const SmartBelongsToDisplayWidget: React.FC<SmartBelongsToDisplayWidgetProps>;
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { PageRow } from '../Page';
3
+ export interface SmartCellDisplayWidgetProps {
4
+ row: PageRow;
5
+ name: string;
6
+ }
7
+ export declare const SmartCellDisplayWidget: React.FC<SmartCellDisplayWidgetProps>;
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { ObjectType, Variable } from '@journeyapps/db';
3
+ import { SimpleFilter } from '../filters';
4
+ export interface SmartColumnWidgetProps {
5
+ variable: Variable;
6
+ type?: ObjectType;
7
+ filter?: SimpleFilter;
8
+ filterChanged: (filter: SimpleFilter | null) => any;
9
+ }
10
+ export declare const SmartColumnWidget: React.FC<SmartColumnWidgetProps>;
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { Variable } from '@journeyapps/db';
3
+ import { SimpleFilter } from '../filters';
4
+ export interface SmartFilterWidgetProps {
5
+ variable: Variable;
6
+ filter?: SimpleFilter;
7
+ filterChanged: (filter: SimpleFilter | null) => any;
8
+ }
9
+ export declare const SmartFilterWidget: React.FC<SmartFilterWidgetProps>;
@@ -1,9 +1,9 @@
1
1
  import { EntityDefinition } from '@journeyapps-labs/reactor-mod';
2
2
  import { ConnectionStore } from '../stores/ConnectionStore';
3
- import { AbstractQuery } from '../core/query/AbstractQuery';
4
- export declare class QueryEntityDefinition extends EntityDefinition<AbstractQuery> {
3
+ import { AbstractSerializableQuery } from '../core/query/AbstractSerializableQuery';
4
+ export declare class QueryEntityDefinition extends EntityDefinition<AbstractSerializableQuery> {
5
5
  accessor connectionStore: ConnectionStore;
6
6
  constructor();
7
7
  matchEntity(t: any): boolean;
8
- getEntityUID(t: AbstractQuery): string;
8
+ getEntityUID(t: AbstractSerializableQuery): string;
9
9
  }
@@ -1,11 +1,42 @@
1
- import { FormModel } from '@journeyapps-labs/reactor-mod';
1
+ import { FormInput, FormModel } from '@journeyapps-labs/reactor-mod';
2
2
  import { SchemaModelDefinition } from '../core/SchemaModelDefinition';
3
3
  import { SchemaModelObject } from '../core/SchemaModelObject';
4
+ import { TypeEngine, TypeHandler } from './TypeEngine';
5
+ import { Variable } from '@journeyapps/db';
4
6
  export interface SchemaModelFormOptions {
5
7
  definition: SchemaModelDefinition;
6
8
  object?: SchemaModelObject;
7
9
  }
10
+ export interface BindingOption {
11
+ input: FormInput;
12
+ name: string;
13
+ model: SchemaModelObject;
14
+ resolve: () => Promise<any>;
15
+ }
16
+ export declare class Binding {
17
+ protected options: BindingOption;
18
+ accessor typeEngine: TypeEngine;
19
+ setting_value_via_autorun: boolean;
20
+ private listener1;
21
+ private listener2;
22
+ constructor(options: BindingOption);
23
+ encode(value: any): Promise<any>;
24
+ decode(value: any): Promise<any>;
25
+ get input(): FormInput<import("@journeyapps-labs/reactor-mod").FormInputGenerics>;
26
+ dispose(): void;
27
+ }
28
+ export declare class TypedBinding extends Binding {
29
+ handler: TypeHandler;
30
+ constructor(options: Omit<BindingOption & {
31
+ variable: Variable;
32
+ }, 'resolve'>);
33
+ encode(value: any): Promise<any>;
34
+ decode(value: any): Promise<any>;
35
+ }
8
36
  export declare class SchemaModelForm extends FormModel {
9
37
  protected options: SchemaModelFormOptions;
38
+ accessor typeEngine: TypeEngine;
39
+ bindings: Set<Binding>;
10
40
  constructor(options: SchemaModelFormOptions);
41
+ dispose(): void;
11
42
  }
@@ -0,0 +1,20 @@
1
+ import { Type } from '@journeyapps/db';
2
+ import { FormInput, MediaEngine } from '@journeyapps-labs/reactor-mod';
3
+ export interface TypeHandler<T extends Type = Type, ENCODED = any, DECODED = any> {
4
+ matches: (type: Type) => boolean;
5
+ generateField: (event: {
6
+ label: string;
7
+ name: string;
8
+ type: T;
9
+ }) => FormInput;
10
+ decode: (value: ENCODED) => Promise<DECODED>;
11
+ encode: (value: DECODED) => Promise<ENCODED>;
12
+ }
13
+ export declare class TypeEngine {
14
+ handlers: Set<TypeHandler>;
15
+ accessor mediaEngine: MediaEngine;
16
+ private _mediaCache;
17
+ constructor();
18
+ getHandler(type: Type): TypeHandler<Type, any, any>;
19
+ register(handler: TypeHandler): void;
20
+ }
@@ -0,0 +1,15 @@
1
+ import { FormInput, FormInputRenderOptions } from '@journeyapps-labs/reactor-mod';
2
+ import * as React from 'react';
3
+ import { SchemaModelObject } from '../../core/SchemaModelObject';
4
+ export declare class DirtyWrapperInput extends FormInput {
5
+ input: FormInput;
6
+ object?: SchemaModelObject;
7
+ constructor(input: FormInput, object?: SchemaModelObject);
8
+ revert(): void;
9
+ get dirty(): boolean;
10
+ renderControl(options: FormInputRenderOptions): React.JSX.Element;
11
+ }
12
+ export interface WrapperProps {
13
+ input: DirtyWrapperInput;
14
+ }
15
+ export declare const Wrapper: React.FC<React.PropsWithChildren<WrapperProps>>;
@@ -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';
@@ -6,7 +6,7 @@ import { SchemaModelDefinition } from '../../core/SchemaModelDefinition';
6
6
  import { SchemaModelObject } from '../../core/SchemaModelObject';
7
7
  export interface ModelPanelModelOptions {
8
8
  definition: SchemaModelDefinition;
9
- model?: SchemaModelObject;
9
+ model: SchemaModelObject;
10
10
  }
11
11
  export declare class ModelPanelModel extends ReactorPanelModel {
12
12
  accessor connStore: ConnectionStore;
@@ -17,7 +17,7 @@ export declare class ModelPanelModel extends ReactorPanelModel {
17
17
  definition: SchemaModelDefinition;
18
18
  model: SchemaModelObject;
19
19
  };
20
- decodeEntities(data: ReturnType<this['encodeEntities']>): void;
20
+ decodeEntities(data: ReturnType<this['encodeEntities']>): Promise<void>;
21
21
  }
22
22
  export declare class ModelPanelFactory extends ReactorPanelFactory<ModelPanelModel> {
23
23
  static TYPE: string;
@@ -8,6 +8,7 @@ export declare class QueryPanelModel extends ReactorPanelModel {
8
8
  accessor query: AbstractQuery;
9
9
  accessor current_page: number;
10
10
  constructor(query: AbstractQuery);
11
+ isSerializable(): boolean;
11
12
  toArray(): {
12
13
  current_page: number;
13
14
  _encoded: {};
@@ -20,7 +21,7 @@ export declare class QueryPanelModel extends ReactorPanelModel {
20
21
  };
21
22
  fromArray(data: ReturnType<this['toArray']>, engine: any): void;
22
23
  encodeEntities(): {
23
- query: AbstractQuery<import("../../core/query/AbstractQuery").AbstractQueryEncoded>;
24
+ query: AbstractQuery;
24
25
  };
25
26
  decodeEntities(data: ReturnType<this['encodeEntities']>): void;
26
27
  }
@@ -13,6 +13,7 @@ import { ModelPanelFactory } from './panels/model/ModelPanelFactory';
13
13
  import { CreateModelAction } from './actions/schema-definitions/CreateModelAction';
14
14
  import { SchemaModelObjectEntityDefinition } from './entities/SchemaModelObjectEntityDefinition';
15
15
  import { EditSchemaModelAction } from './actions/schema-model/EditSchemaModelAction';
16
+ import { TypeEngine } from './forms/TypeEngine';
16
17
  export class DataBrowserModule extends AbstractReactorModule {
17
18
  constructor() {
18
19
  super({
@@ -23,6 +24,7 @@ export class DataBrowserModule extends AbstractReactorModule {
23
24
  const system = ioc.get(System);
24
25
  const workspaceStore = ioc.get(WorkspaceStore);
25
26
  let connectionStore = new ConnectionStore();
27
+ ioc.bind(TypeEngine).toConstantValue(new TypeEngine());
26
28
  connectionStore.registerConnectionFactory(new ManualConnectionFactory());
27
29
  system.registerAction(new AddConnectionAction());
28
30
  system.registerAction(new RemoveConnectionAction());
@@ -39,7 +41,7 @@ export class DataBrowserModule extends AbstractReactorModule {
39
41
  workspaceStore.registerFactory(new ModelPanelFactory());
40
42
  }
41
43
  async init(ioc) {
42
- await ioc.get(ConnectionStore).init();
44
+ ioc.get(ConnectionStore).init();
43
45
  }
44
46
  }
45
47
  //# sourceMappingURL=DataBrowserModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataBrowserModule.js","sourceRoot":"","sources":["../src/DataBrowserModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE9F,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,iCAAiC,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,qCAAqC,EAAE,MAAM,kDAAkD,CAAC;AACzG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,iCAAiC,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAErF,MAAM,OAAO,iBAAkB,SAAQ,qBAAqB;IAC1D;QACE,KAAK,CAAC;YACJ,IAAI,EAAE,cAAc;SACrB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,GAAc;QACrB,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE/C,IAAI,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAE5C,eAAe,CAAC,yBAAyB,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAC;QAEzE,MAAM,CAAC,cAAc,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,cAAc,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,cAAc,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,cAAc,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,cAAc,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;QAEnD,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAElD,MAAM,CAAC,kBAAkB,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,kBAAkB,CAAC,IAAI,iCAAiC,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,kBAAkB,CAAC,IAAI,qCAAqC,EAAE,CAAC,CAAC;QACvE,MAAM,CAAC,kBAAkB,CAAC,IAAI,iCAAiC,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,kBAAkB,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;QAEvD,cAAc,CAAC,eAAe,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;QACxD,cAAc,CAAC,eAAe,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAc;QACvB,MAAM,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"DataBrowserModule.js","sourceRoot":"","sources":["../src/DataBrowserModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE9F,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,iCAAiC,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,qCAAqC,EAAE,MAAM,kDAAkD,CAAC;AACzG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,iCAAiC,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,OAAO,iBAAkB,SAAQ,qBAAqB;IAC1D;QACE,KAAK,CAAC;YACJ,IAAI,EAAE,cAAc;SACrB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,GAAc;QACrB,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE/C,IAAI,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;QAEvD,eAAe,CAAC,yBAAyB,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAC;QAEzE,MAAM,CAAC,cAAc,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,cAAc,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,cAAc,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,cAAc,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,cAAc,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;QAEnD,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAElD,MAAM,CAAC,kBAAkB,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,kBAAkB,CAAC,IAAI,iCAAiC,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,kBAAkB,CAAC,IAAI,qCAAqC,EAAE,CAAC,CAAC;QACvE,MAAM,CAAC,kBAAkB,CAAC,IAAI,iCAAiC,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,kBAAkB,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;QAEvD,cAAc,CAAC,eAAe,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;QACxD,cAAc,CAAC,eAAe,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAc;QACvB,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;CACF"}
@@ -23,7 +23,8 @@ let CreateModelAction = (() => {
23
23
  }
24
24
  async fireEvent(event) {
25
25
  this.workspaceStore.addModel(new ModelPanelModel({
26
- definition: event.targetEntity
26
+ definition: event.targetEntity,
27
+ model: await event.targetEntity.generateNewModelObject()
27
28
  }));
28
29
  }
29
30
  static get() {
@@ -1 +1 @@
1
- {"version":3,"file":"CreateModelAction.js","sourceRoot":"","sources":["../../../src/actions/schema-definitions/CreateModelAction.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACrH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;IAE1D,iBAAiB;;sBAAS,YAAY;;;;sBAAtC,iBAAkB,SAAQ,WAAmC;YAIxE,IAAS,cAAc,oGAAiB;YAAxC,IAAS,cAAc,yGAAiB;YAExC;gBACE,KAAK,CAAC;oBACJ,EAAE,EAAE,EAAiB,CAAC,EAAE;oBACxB,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,mBAAmB,CAAC,uBAAuB;iBACpD,CAAC,CAAC;gBARI,4HAA+B;;aASvC;YAED,KAAK,CAAC,SAAS,CAAC,KAA+C;gBAC7D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAC1B,IAAI,eAAe,CAAC;oBAClB,UAAU,EAAE,KAAK,CAAC,YAAY;iBAC/B,CAAC,CACH,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,GAAG;gBACR,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,CAAoB,EAAiB,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;;;;;;0CAtBA,MAAM,CAAC,cAAc,CAAC;YACvB,6LAAS,cAAc,6BAAd,cAAc,uGAAiB;;;QAHjC,KAAE,GAAG,qBAAsB;;;SADvB,iBAAiB"}
1
+ {"version":3,"file":"CreateModelAction.js","sourceRoot":"","sources":["../../../src/actions/schema-definitions/CreateModelAction.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACrH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;IAE1D,iBAAiB;;sBAAS,YAAY;;;;sBAAtC,iBAAkB,SAAQ,WAAmC;YAIxE,IAAS,cAAc,oGAAiB;YAAxC,IAAS,cAAc,yGAAiB;YAExC;gBACE,KAAK,CAAC;oBACJ,EAAE,EAAE,EAAiB,CAAC,EAAE;oBACxB,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,mBAAmB,CAAC,uBAAuB;iBACpD,CAAC,CAAC;gBARI,4HAA+B;;aASvC;YAED,KAAK,CAAC,SAAS,CAAC,KAA+C;gBAC7D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAC1B,IAAI,eAAe,CAAC;oBAClB,UAAU,EAAE,KAAK,CAAC,YAAY;oBAC9B,KAAK,EAAE,MAAM,KAAK,CAAC,YAAY,CAAC,sBAAsB,EAAE;iBACzD,CAAC,CACH,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,GAAG;gBACR,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,CAAoB,EAAiB,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;;;;;;0CAvBA,MAAM,CAAC,cAAc,CAAC;YACvB,6LAAS,cAAc,6BAAd,cAAc,uGAAiB;;;QAHjC,KAAE,GAAG,qBAAsB;;;SADvB,iBAAiB"}
@@ -2,7 +2,7 @@ import { __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate, __runInit
2
2
  import { EntityAction, inject, ioc, System, WorkspaceStore } from '@journeyapps-labs/reactor-mod';
3
3
  import { DataBrowserEntities } from '../../entities';
4
4
  import { QueryPanelModel } from '../../panels/query/QueryPanelFactory';
5
- import { SimpleQuery } from '../../core/query/SimpleQuery';
5
+ import { SimpleQuery } from '../../core/query/query-simple/SimpleQuery';
6
6
  let QuerySchemaModelAction = (() => {
7
7
  var _a, _QuerySchemaModelAction_workspaceStore_accessor_storage;
8
8
  let _classSuper = EntityAction;
@@ -1 +1 @@
1
- {"version":3,"file":"QuerySchemaModelAction.js","sourceRoot":"","sources":["../../../src/actions/schema-definitions/QuerySchemaModelAction.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACrH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;IAE9C,sBAAsB;;sBAAS,YAAY;;;;sBAA3C,sBAAuB,SAAQ,WAAmC;YAI7E,IAAS,cAAc,yGAAiB;YAAxC,IAAS,cAAc,8GAAiB;YAExC;gBACE,KAAK,CAAC;oBACJ,EAAE,EAAE,EAAsB,CAAC,EAAE;oBAC7B,IAAI,EAAE,oBAAoB;oBAC1B,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,mBAAmB,CAAC,uBAAuB;iBACpD,CAAC,CAAC;gBARI,iIAA+B;;aASvC;YAED,KAAK,CAAC,SAAS,CAAC,KAA+C;gBAC7D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAC1B,IAAI,eAAe,CACjB,IAAI,WAAW,CAAC;oBACd,UAAU,EAAE,KAAK,CAAC,YAAY;oBAC9B,KAAK,EAAE,EAAE;iBACV,CAAC,CACH,CACF,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,GAAG;gBACR,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,CAAyB,EAAsB,CAAC,EAAE,CAAC,CAAC;YAC1F,CAAC;;;;;;0CAzBA,MAAM,CAAC,cAAc,CAAC;YACvB,6LAAS,cAAc,6BAAd,cAAc,uGAAiB;;;QAHjC,KAAE,GAAG,oBAAqB;;;SADtB,sBAAsB"}
1
+ {"version":3,"file":"QuerySchemaModelAction.js","sourceRoot":"","sources":["../../../src/actions/schema-definitions/QuerySchemaModelAction.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACrH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;IAE3D,sBAAsB;;sBAAS,YAAY;;;;sBAA3C,sBAAuB,SAAQ,WAAmC;YAI7E,IAAS,cAAc,yGAAiB;YAAxC,IAAS,cAAc,8GAAiB;YAExC;gBACE,KAAK,CAAC;oBACJ,EAAE,EAAE,EAAsB,CAAC,EAAE;oBAC7B,IAAI,EAAE,oBAAoB;oBAC1B,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,mBAAmB,CAAC,uBAAuB;iBACpD,CAAC,CAAC;gBARI,iIAA+B;;aASvC;YAED,KAAK,CAAC,SAAS,CAAC,KAA+C;gBAC7D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAC1B,IAAI,eAAe,CACjB,IAAI,WAAW,CAAC;oBACd,UAAU,EAAE,KAAK,CAAC,YAAY;oBAC9B,KAAK,EAAE,EAAE;iBACV,CAAC,CACH,CACF,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,GAAG;gBACR,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,CAAyB,EAAsB,CAAC,EAAE,CAAC,CAAC;YAC1F,CAAC;;;;;;0CAzBA,MAAM,CAAC,cAAc,CAAC;YACvB,6LAAS,cAAc,6BAAd,cAAc,uGAAiB;;;QAHjC,KAAE,GAAG,oBAAqB;;;SADtB,sBAAsB"}
@@ -23,6 +23,21 @@ export class AbstractConnection extends BaseObserver {
23
23
  }
24
24
  });
25
25
  }
26
+ async batchSave(models) {
27
+ if (models.length === 0) {
28
+ return;
29
+ }
30
+ const database = await this.getConnection();
31
+ let batch = new database.Batch();
32
+ for (let model of models) {
33
+ await model.applyPatches();
34
+ batch.save(model.model);
35
+ }
36
+ await batch.execute();
37
+ for (let model of models) {
38
+ model.reload();
39
+ }
40
+ }
26
41
  getSchemaModelDefinitionByName(name) {
27
42
  return this.schema_models.items.find((i) => i.definition.name === name);
28
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractConnection.js","sourceRoot":"","sources":["../../src/core/AbstractConnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractConnection.js","sourceRoot":"","sources":["../../src/core/AbstractConnection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAc5B,MAAM,OAAgB,kBAAmB,SAAQ,YAAwC;IAMvF,YAAmB,OAAkC;QACnD,KAAK,EAAE,CAAC;QADS,YAAO,GAAP,OAAO,CAA2B;QAEnD,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;QACf,IAAI,CAAC,wBAAwB,GAAG,IAAI,UAAU,EAAE,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,IAAI,mBAAmB,CAAC;YAC3C,UAAU,EAAE,IAAI,CAAC,wBAAwB;YACzC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;gBACnB,OAAO,IAAI,qBAAqB,CAAC;oBAC/B,UAAU,EAAE,CAAC;oBACb,UAAU,EAAE,IAAI;iBACjB,CAAC,CAAC;YACL,CAAC;YACD,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE;gBACzB,OAAO,CAAC,CAAC,IAAI,CAAC;YAChB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAA2B;QACzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC5C,IAAI,KAAK,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjC,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,8BAA8B,CAAC,IAAY;QACzC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,kCAAkC,CAAC,IAAY;QACnD,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAIS,KAAK,CAAC,SAAS;QACvB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9C,OAAO,UAAU,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;IAES,KAAK,CAAC,yBAAyB;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACjC,OAAO,IAAI,qBAAqB,CAAC;gBAC/B,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,WAAC,OAAA,MAAA,EAAE,CAAC,OAAO,kDAAI,CAAA,EAAA,CAAC,CAAC;IAChD,CAAC;IAED,SAAS;QACP,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG;YACjC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;SAC3B,CAAC;IACJ,CAAC;IAED,IAAI,IAAI;QACN,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,EAAE;SACpB,CAAC;IACJ,CAAC;CAKF"}