@researchdatabox/sails-ng-common 0.0.1-beta.9873 → 0.0.1-beta.9950

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.
@@ -9,6 +9,8 @@ export declare class CancelButtonFieldComponentConfig extends FieldComponentConf
9
9
  cancelButtonMessage?: string;
10
10
  confirmButtonMessage?: string;
11
11
  buttonCssClasses?: string;
12
+ redirectLocation?: string;
13
+ redirectDelaySeconds?: number;
12
14
  constructor();
13
15
  }
14
16
  export declare class CancelButtonFieldComponentDefinition extends FieldComponentDefinition implements CancelButtonFieldComponentDefinitionOutline {
@@ -12,6 +12,8 @@ class CancelButtonFieldComponentConfig extends field_component_model_1.FieldComp
12
12
  cancelButtonMessage;
13
13
  confirmButtonMessage;
14
14
  buttonCssClasses;
15
+ redirectLocation;
16
+ redirectDelaySeconds;
15
17
  constructor() {
16
18
  super();
17
19
  }
@@ -53,4 +55,4 @@ exports.CancelButtonDefaults = {
53
55
  },
54
56
  },
55
57
  };
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsLWJ1dHRvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb25maWcvY29tcG9uZW50L2NhbmNlbC1idXR0b24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0VBQTBGO0FBRTFGLGtFQUFrRTtBQUVsRSxzREFBd0g7QUFDeEgsbUVBS2lDO0FBRWpDLDZCQUE2QjtBQUU3QixNQUFhLGdDQUNYLFNBQVEsNENBQW9CO0lBRzVCLG1CQUFtQixDQUFVO0lBQzdCLGlCQUFpQixDQUFVO0lBQzNCLG1CQUFtQixDQUFVO0lBQzdCLG9CQUFvQixDQUFVO0lBQzlCLGdCQUFnQixDQUFVO0lBRTFCO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0NBQ0Y7QUFiRCw0RUFhQztBQUVELE1BQWEsb0NBQ1gsU0FBUSxnREFBd0I7SUFHaEMsS0FBSyxHQUFHLGlEQUF5QixDQUFDO0lBQ2xDLE1BQU0sQ0FBMkM7SUFFakQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWlDO1FBQzVDLE1BQU0sT0FBTyxDQUFDLHlDQUF5QyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDRjtBQWRELG9GQWNDO0FBRUQsa0NBQWtDO0FBRWxDLE1BQWEsbUNBQ1gsU0FBUSw4Q0FBdUI7SUFHL0IsU0FBUyxDQUErQztJQUN4RCxLQUFLLENBQVM7SUFDZCxNQUFNLENBQTBDO0lBRWhEO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFpQztRQUM1QyxNQUFNLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUFmRCxrRkFlQztBQUVZLFFBQUEsZUFBZSxHQUFHO0lBQzdCLEVBQUUsSUFBSSxFQUFFLHlDQUF3QixFQUFFLEdBQUcsRUFBRSxnQ0FBZ0MsRUFBRTtJQUN6RSxFQUFFLElBQUksRUFBRSw2Q0FBNEIsRUFBRSxHQUFHLEVBQUUsb0NBQW9DLEVBQUUsS0FBSyxFQUFFLGlEQUF5QixFQUFFO0lBQ25ILEVBQUUsSUFBSSxFQUFFLDRDQUEyQixFQUFFLEdBQUcsRUFBRSxtQ0FBbUMsRUFBRSxLQUFLLEVBQUUsaURBQXlCLEVBQUU7Q0FDbEgsQ0FBQztBQUNXLFFBQUEsb0JBQW9CLEdBQUc7SUFDbEMsQ0FBQyw0Q0FBMkIsQ0FBQyxFQUFFO1FBQzdCLENBQUMsaURBQXlCLENBQUMsRUFBRTtZQUMzQixDQUFDLDZDQUE0QixDQUFDLEVBQUUsaURBQXlCO1NBQzFEO0tBQ0Y7Q0FDRixDQUFDIn0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsLWJ1dHRvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb25maWcvY29tcG9uZW50L2NhbmNlbC1idXR0b24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0VBQTBGO0FBRTFGLGtFQUFrRTtBQUVsRSxzREFBd0g7QUFDeEgsbUVBS2lDO0FBRWpDLDZCQUE2QjtBQUU3QixNQUFhLGdDQUNYLFNBQVEsNENBQW9CO0lBRTVCLG1CQUFtQixDQUFVO0lBQzdCLGlCQUFpQixDQUFVO0lBQzNCLG1CQUFtQixDQUFVO0lBQzdCLG9CQUFvQixDQUFVO0lBQzlCLGdCQUFnQixDQUFVO0lBQzFCLGdCQUFnQixDQUFVO0lBQzFCLG9CQUFvQixDQUFVO0lBRTlCO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0NBQ0Y7QUFkRCw0RUFjQztBQUVELE1BQWEsb0NBQ1gsU0FBUSxnREFBd0I7SUFHaEMsS0FBSyxHQUFHLGlEQUF5QixDQUFDO0lBQ2xDLE1BQU0sQ0FBMkM7SUFFakQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWlDO1FBQzVDLE1BQU0sT0FBTyxDQUFDLHlDQUF5QyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDRjtBQWRELG9GQWNDO0FBRUQsa0NBQWtDO0FBRWxDLE1BQWEsbUNBQ1gsU0FBUSw4Q0FBdUI7SUFHL0IsU0FBUyxDQUErQztJQUN4RCxLQUFLLENBQVM7SUFDZCxNQUFNLENBQTBDO0lBRWhEO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFpQztRQUM1QyxNQUFNLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUFmRCxrRkFlQztBQUVZLFFBQUEsZUFBZSxHQUFHO0lBQzdCLEVBQUUsSUFBSSxFQUFFLHlDQUF3QixFQUFFLEdBQUcsRUFBRSxnQ0FBZ0MsRUFBRTtJQUN6RSxFQUFFLElBQUksRUFBRSw2Q0FBNEIsRUFBRSxHQUFHLEVBQUUsb0NBQW9DLEVBQUUsS0FBSyxFQUFFLGlEQUF5QixFQUFFO0lBQ25ILEVBQUUsSUFBSSxFQUFFLDRDQUEyQixFQUFFLEdBQUcsRUFBRSxtQ0FBbUMsRUFBRSxLQUFLLEVBQUUsaURBQXlCLEVBQUU7Q0FDbEgsQ0FBQztBQUNXLFFBQUEsb0JBQW9CLEdBQUc7SUFDbEMsQ0FBQyw0Q0FBMkIsQ0FBQyxFQUFFO1FBQzdCLENBQUMsaURBQXlCLENBQUMsRUFBRTtZQUMzQixDQUFDLDZDQUE0QixDQUFDLEVBQUUsaURBQXlCO1NBQzFEO0tBQ0Y7Q0FDRixDQUFDIn0=
@@ -27,6 +27,16 @@ export interface CancelButtonFieldComponentConfigFrame extends FieldComponentCon
27
27
  * Example: 'btn-warning' or 'btn btn-warning'.
28
28
  */
29
29
  buttonCssClasses?: string;
30
+ /**
31
+ * The relative url to redirect to.
32
+ * Leave empty to use the browser's location.back.
33
+ */
34
+ redirectLocation?: string;
35
+ /**
36
+ * The delay before redirecting.
37
+ * Default is 3 seconds delay.
38
+ */
39
+ redirectDelaySeconds?: number;
30
40
  }
31
41
  export interface CancelButtonFieldComponentConfigOutline extends CancelButtonFieldComponentConfigFrame, FieldComponentConfigOutline {
32
42
  }
@@ -4,14 +4,14 @@ import { FormComponentDefinition } from '../form-component.model';
4
4
  import { FormConfigVisitorOutline } from '../visitor/base.outline';
5
5
  import { DeleteButtonFieldComponentConfigOutline, DeleteButtonFieldComponentDefinitionOutline, DeleteButtonFormComponentDefinitionOutline } from './delete-button.outline';
6
6
  export declare class DeleteButtonFieldComponentConfig extends FieldComponentConfig implements DeleteButtonFieldComponentConfigOutline {
7
- buttonCssClasses?: string;
8
- closeOnDelete?: boolean;
9
- redirectLocation?: string;
10
- redirectDelaySeconds?: number;
11
7
  confirmationMessage?: string;
12
8
  confirmationTitle?: string;
13
9
  cancelButtonMessage?: string;
14
10
  confirmButtonMessage?: string;
11
+ buttonCssClasses?: string;
12
+ closeOnDelete?: boolean;
13
+ redirectLocation?: string;
14
+ redirectDelaySeconds?: number;
15
15
  }
16
16
  export declare class DeleteButtonFieldComponentDefinition extends FieldComponentDefinition implements DeleteButtonFieldComponentDefinitionOutline {
17
17
  class: "DeleteButtonComponent";
@@ -6,14 +6,14 @@ const form_component_model_1 = require("../form-component.model");
6
6
  const shared_outline_1 = require("../shared.outline");
7
7
  const delete_button_outline_1 = require("./delete-button.outline");
8
8
  class DeleteButtonFieldComponentConfig extends field_component_model_1.FieldComponentConfig {
9
- buttonCssClasses;
10
- closeOnDelete;
11
- redirectLocation;
12
- redirectDelaySeconds;
13
9
  confirmationMessage;
14
10
  confirmationTitle;
15
11
  cancelButtonMessage;
16
12
  confirmButtonMessage;
13
+ buttonCssClasses;
14
+ closeOnDelete;
15
+ redirectLocation;
16
+ redirectDelaySeconds;
17
17
  }
18
18
  exports.DeleteButtonFieldComponentConfig = DeleteButtonFieldComponentConfig;
19
19
  class DeleteButtonFieldComponentDefinition extends field_component_model_1.FieldComponentDefinition {
@@ -45,4 +45,4 @@ exports.DeleteButtonDefaults = {
45
45
  },
46
46
  },
47
47
  };
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWJ1dHRvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb25maWcvY29tcG9uZW50L2RlbGV0ZS1idXR0b24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0VBQTBGO0FBRTFGLGtFQUFrRTtBQUVsRSxzREFBd0g7QUFDeEgsbUVBS2lDO0FBRWpDLE1BQWEsZ0NBQWlDLFNBQVEsNENBQW9CO0lBQ3hFLGdCQUFnQixDQUFVO0lBQzFCLGFBQWEsQ0FBVztJQUN4QixnQkFBZ0IsQ0FBVTtJQUMxQixvQkFBb0IsQ0FBVTtJQUM5QixtQkFBbUIsQ0FBVTtJQUM3QixpQkFBaUIsQ0FBVTtJQUMzQixtQkFBbUIsQ0FBVTtJQUM3QixvQkFBb0IsQ0FBVTtDQUMvQjtBQVRELDRFQVNDO0FBRUQsTUFBYSxvQ0FDWCxTQUFRLGdEQUF3QjtJQUdoQyxLQUFLLEdBQUcsaURBQXlCLENBQUM7SUFDbEMsTUFBTSxDQUEyQztJQUVqRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWlDO1FBQzVDLE1BQU0sT0FBTyxDQUFDLHlDQUF5QyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDRjtBQVZELG9GQVVDO0FBRUQsTUFBYSxtQ0FDWCxTQUFRLDhDQUF1QjtJQUcvQixTQUFTLENBQStDO0lBQ3hELEtBQUssQ0FBUztJQUNkLE1BQU0sQ0FBMEM7SUFFaEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFpQztRQUM1QyxNQUFNLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUFYRCxrRkFXQztBQUVZLFFBQUEsZUFBZSxHQUFHO0lBQzdCLEVBQUUsSUFBSSxFQUFFLHlDQUF3QixFQUFFLEdBQUcsRUFBRSxnQ0FBZ0MsRUFBRTtJQUN6RSxFQUFFLElBQUksRUFBRSw2Q0FBNEIsRUFBRSxHQUFHLEVBQUUsb0NBQW9DLEVBQUUsS0FBSyxFQUFFLGlEQUF5QixFQUFFO0lBQ25ILEVBQUUsSUFBSSxFQUFFLDRDQUEyQixFQUFFLEdBQUcsRUFBRSxtQ0FBbUMsRUFBRSxLQUFLLEVBQUUsaURBQXlCLEVBQUU7Q0FDbEgsQ0FBQztBQUVXLFFBQUEsb0JBQW9CLEdBQUc7SUFDbEMsQ0FBQyw0Q0FBMkIsQ0FBQyxFQUFFO1FBQzdCLENBQUMsaURBQXlCLENBQUMsRUFBRTtZQUMzQixDQUFDLDZDQUE0QixDQUFDLEVBQUUsaURBQXlCO1NBQzFEO0tBQ0Y7Q0FDRixDQUFDIn0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWJ1dHRvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb25maWcvY29tcG9uZW50L2RlbGV0ZS1idXR0b24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0VBQTBGO0FBRTFGLGtFQUFrRTtBQUVsRSxzREFBd0g7QUFDeEgsbUVBS2lDO0FBRWpDLE1BQWEsZ0NBQWlDLFNBQVEsNENBQW9CO0lBQ3hFLG1CQUFtQixDQUFVO0lBQzdCLGlCQUFpQixDQUFVO0lBQzNCLG1CQUFtQixDQUFVO0lBQzdCLG9CQUFvQixDQUFVO0lBQzlCLGdCQUFnQixDQUFVO0lBQzFCLGFBQWEsQ0FBVztJQUN4QixnQkFBZ0IsQ0FBVTtJQUMxQixvQkFBb0IsQ0FBVTtDQUMvQjtBQVRELDRFQVNDO0FBRUQsTUFBYSxvQ0FDWCxTQUFRLGdEQUF3QjtJQUdoQyxLQUFLLEdBQUcsaURBQXlCLENBQUM7SUFDbEMsTUFBTSxDQUEyQztJQUVqRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWlDO1FBQzVDLE1BQU0sT0FBTyxDQUFDLHlDQUF5QyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDRjtBQVZELG9GQVVDO0FBRUQsTUFBYSxtQ0FDWCxTQUFRLDhDQUF1QjtJQUcvQixTQUFTLENBQStDO0lBQ3hELEtBQUssQ0FBUztJQUNkLE1BQU0sQ0FBMEM7SUFFaEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFpQztRQUM1QyxNQUFNLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUFYRCxrRkFXQztBQUVZLFFBQUEsZUFBZSxHQUFHO0lBQzdCLEVBQUUsSUFBSSxFQUFFLHlDQUF3QixFQUFFLEdBQUcsRUFBRSxnQ0FBZ0MsRUFBRTtJQUN6RSxFQUFFLElBQUksRUFBRSw2Q0FBNEIsRUFBRSxHQUFHLEVBQUUsb0NBQW9DLEVBQUUsS0FBSyxFQUFFLGlEQUF5QixFQUFFO0lBQ25ILEVBQUUsSUFBSSxFQUFFLDRDQUEyQixFQUFFLEdBQUcsRUFBRSxtQ0FBbUMsRUFBRSxLQUFLLEVBQUUsaURBQXlCLEVBQUU7Q0FDbEgsQ0FBQztBQUVXLFFBQUEsb0JBQW9CLEdBQUc7SUFDbEMsQ0FBQyw0Q0FBMkIsQ0FBQyxFQUFFO1FBQzdCLENBQUMsaURBQXlCLENBQUMsRUFBRTtZQUMzQixDQUFDLDZDQUE0QixDQUFDLEVBQUUsaURBQXlCO1NBQzFEO0tBQ0Y7Q0FDRixDQUFDIn0=
@@ -5,14 +5,42 @@ import { FieldComponentConfigFrameKindType, FieldComponentConfigKindType, FieldC
5
5
  export declare const DeleteButtonComponentName: "DeleteButtonComponent";
6
6
  export type DeleteButtonComponentNameType = typeof DeleteButtonComponentName;
7
7
  export interface DeleteButtonFieldComponentConfigFrame extends FieldComponentConfigFrame {
8
- buttonCssClasses?: string;
9
- closeOnDelete?: boolean;
10
- redirectLocation?: string;
11
- redirectDelaySeconds?: number;
8
+ /**
9
+ * An optional confirmation message shown to the user before cancelling.
10
+ * If not set, the cancel action proceeds without confirmation.
11
+ */
12
12
  confirmationMessage?: string;
13
+ /**
14
+ * The title of the confirmation dialog.
15
+ */
13
16
  confirmationTitle?: string;
17
+ /**
18
+ * The label for the cancel button in the confirmation dialog.
19
+ */
14
20
  cancelButtonMessage?: string;
21
+ /**
22
+ * The label for the confirm button in the confirmation dialog.
23
+ */
15
24
  confirmButtonMessage?: string;
25
+ /**
26
+ * CSS classes to apply to the main cancel button element.
27
+ * Example: 'btn-warning' or 'btn btn-warning'.
28
+ */
29
+ buttonCssClasses?: string;
30
+ /**
31
+ * Whether to 'close' the form by redirecting on a successful delete. Default false.
32
+ */
33
+ closeOnDelete?: boolean;
34
+ /**
35
+ * The relative url to redirect to on a successful delete if closeOnDelete is true.
36
+ * Leave empty to use the browser's location.back.
37
+ */
38
+ redirectLocation?: string;
39
+ /**
40
+ * The delay before redirecting on a successful delete if closeOnDelete is true.
41
+ * Default is 3 seconds delay.
42
+ */
43
+ redirectDelaySeconds?: number;
16
44
  }
17
45
  export interface DeleteButtonFieldComponentConfigOutline extends DeleteButtonFieldComponentConfigFrame, FieldComponentConfigOutline {
18
46
  }
@@ -1,16 +1,17 @@
1
- import { FieldComponentConfig, FieldComponentDefinition } from "../field-component.model";
2
- import { FieldModelConfig, FieldModelDefinition } from "../field-model.model";
3
- import { FormComponentDefinition } from "../form-component.model";
4
- import { FieldLayoutDefinition } from "../field-layout.model";
5
- import { ActionRowFieldLayoutConfig } from "./action-row-layout.model";
6
- import { FormConfigVisitorOutline } from "../visitor/base.outline";
7
- import { RepeatableElementFieldLayoutConfigOutline, RepeatableElementFieldLayoutDefinitionOutline, RepeatableFieldComponentConfigOutline, RepeatableFieldComponentDefinitionOutline, RepeatableFieldModelConfigOutline, RepeatableFieldModelDefinitionOutline, RepeatableFormComponentDefinitionOutline, RepeatableModelValueType } from "./repeatable.outline";
8
- import { AvailableFieldLayoutDefinitionOutlines, AvailableFormComponentDefinitionOutlines } from "../dictionary.outline";
1
+ import { FieldComponentConfig, FieldComponentDefinition } from '../field-component.model';
2
+ import { FieldModelConfig, FieldModelDefinition } from '../field-model.model';
3
+ import { FormComponentDefinition } from '../form-component.model';
4
+ import { FieldLayoutDefinition } from '../field-layout.model';
5
+ import { ActionRowFieldLayoutConfig } from './action-row-layout.model';
6
+ import { FormConfigVisitorOutline } from '../visitor/base.outline';
7
+ import { RepeatableElementFieldLayoutConfigOutline, RepeatableElementFieldLayoutDefinitionOutline, RepeatableFieldComponentConfigOutline, RepeatableFieldComponentDefinitionOutline, RepeatableFieldModelConfigOutline, RepeatableFieldModelDefinitionOutline, RepeatableFormComponentDefinitionOutline, RepeatableModelValueType } from './repeatable.outline';
8
+ import { AvailableFieldLayoutDefinitionOutlines, AvailableFormComponentDefinitionOutlines } from '../dictionary.outline';
9
9
  export declare class RepeatableFieldComponentConfig extends FieldComponentConfig implements RepeatableFieldComponentConfigOutline {
10
10
  elementTemplate: AvailableFormComponentDefinitionOutlines;
11
11
  addButtonShow: boolean;
12
12
  allowZeroRows: boolean;
13
13
  hideWhenZeroRows: boolean;
14
+ canSort?: boolean;
14
15
  constructor();
15
16
  /**
16
17
  * Create a unique ID using the current timestamp and a random number.
@@ -14,6 +14,7 @@ class RepeatableFieldComponentConfig extends field_component_model_1.FieldCompon
14
14
  addButtonShow = true;
15
15
  allowZeroRows = false;
16
16
  hideWhenZeroRows = false;
17
+ canSort;
17
18
  constructor() {
18
19
  super();
19
20
  }
@@ -24,7 +25,9 @@ class RepeatableFieldComponentConfig extends field_component_model_1.FieldCompon
24
25
  * It is for distinguishing the repeatable element entries.
25
26
  */
26
27
  static getLocalUID() {
27
- const randomNumber = Math.floor(Math.random() * 10000).toString().padStart(5, '0');
28
+ const randomNumber = Math.floor(Math.random() * 10000)
29
+ .toString()
30
+ .padStart(5, '0');
28
31
  return `${Date.now()}-${randomNumber}`;
29
32
  }
30
33
  }
@@ -106,4 +109,4 @@ exports.RepeatableDefaults = {
106
109
  },
107
110
  },
108
111
  };
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0YWJsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb25maWcvY29tcG9uZW50L3JlcGVhdGFibGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0VBR2tDO0FBQ2xDLDREQUc4QjtBQUM5QixrRUFBZ0U7QUFDaEUsOERBRytCO0FBQy9CLHVFQUF1RTtBQUV2RSxzREFNMkI7QUFDM0IsNkRBUzhCO0FBTTlCLDBCQUEwQjtBQUMxQixNQUFhLDhCQUErQixTQUFRLDRDQUFvQjtJQUNwRSxlQUFlLENBQTRDO0lBQzNELGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDckIsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0QixnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFFekI7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxXQUFXO1FBQ3JCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkYsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0NBQ0o7QUFwQkQsd0VBb0JDO0FBR0QsTUFBYSxrQ0FBbUMsU0FBUSxnREFBd0I7SUFDNUUsS0FBSyxHQUFHLDRDQUF1QixDQUFDO0lBQ2hDLE1BQU0sQ0FBeUM7SUFFL0M7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWlDO1FBQzFDLE1BQU0sT0FBTyxDQUFDLHVDQUF1QyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDSjtBQVhELGdGQVdDO0FBR0Qsc0JBQXNCO0FBQ3RC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
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0YWJsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb25maWcvY29tcG9uZW50L3JlcGVhdGFibGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0VBQTBGO0FBQzFGLDREQUE4RTtBQUM5RSxrRUFBa0U7QUFDbEUsOERBQWlGO0FBQ2pGLHVFQUF1RTtBQUV2RSxzREFRMkI7QUFDM0IsNkRBWThCO0FBTTlCLDBCQUEwQjtBQUMxQixNQUFhLDhCQUNYLFNBQVEsNENBQW9CO0lBRzVCLGVBQWUsQ0FBNEM7SUFDM0QsYUFBYSxHQUFHLElBQUksQ0FBQztJQUNyQixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUN6QixPQUFPLENBQVc7SUFFbEI7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxXQUFXO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQzthQUNuRCxRQUFRLEVBQUU7YUFDVixRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztDQUNGO0FBMUJELHdFQTBCQztBQUVELE1BQWEsa0NBQ1gsU0FBUSxnREFBd0I7SUFHaEMsS0FBSyxHQUFHLDRDQUF1QixDQUFDO0lBQ2hDLE1BQU0sQ0FBeUM7SUFFL0M7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWlDO1FBQzVDLE1BQU0sT0FBTyxDQUFDLHVDQUF1QyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRjtBQWRELGdGQWNDO0FB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
@@ -1,10 +1,10 @@
1
- import { FieldLayoutConfigFrame, FieldLayoutConfigOutline, FieldLayoutDefinitionFrame, FieldLayoutDefinitionOutline } from "../field-layout.outline";
2
- import { ActionRowFieldLayoutConfigFrame, ActionRowFieldLayoutConfigOutline } from "./action-row-layout.outline";
3
- import { AvailableFieldLayoutDefinitionFrames, AvailableFieldLayoutDefinitionOutlines, AvailableFormComponentDefinitionFrames, AvailableFormComponentDefinitionOutlines } from "../dictionary.outline";
4
- import { FormComponentDefinitionFrame, FormComponentDefinitionOutline } from "../form-component.outline";
5
- import { FieldModelConfigFrame, FieldModelConfigOutline, FieldModelDefinitionFrame, FieldModelDefinitionOutline } from "../field-model.outline";
6
- import { FieldComponentConfigFrame, FieldComponentConfigOutline, FieldComponentDefinitionFrame, FieldComponentDefinitionOutline } from "../field-component.outline";
7
- import { FieldComponentConfigFrameKindType, FieldComponentConfigKindType, FieldComponentDefinitionFrameKindType, FieldComponentDefinitionKindType, FieldLayoutConfigFrameKindType, FieldLayoutConfigKindType, FieldLayoutDefinitionFrameKindType, FieldLayoutDefinitionKindType, FieldModelConfigFrameKindType, FieldModelConfigKindType, FieldModelDefinitionFrameKindType, FieldModelDefinitionKindType, FormComponentDefinitionFrameKindType, FormComponentDefinitionKindType } from "../shared.outline";
1
+ import { FieldLayoutConfigFrame, FieldLayoutConfigOutline, FieldLayoutDefinitionFrame, FieldLayoutDefinitionOutline } from '../field-layout.outline';
2
+ import { ActionRowFieldLayoutConfigFrame, ActionRowFieldLayoutConfigOutline } from './action-row-layout.outline';
3
+ import { AvailableFieldLayoutDefinitionFrames, AvailableFieldLayoutDefinitionOutlines, AvailableFormComponentDefinitionFrames, AvailableFormComponentDefinitionOutlines } from '../dictionary.outline';
4
+ import { FormComponentDefinitionFrame, FormComponentDefinitionOutline } from '../form-component.outline';
5
+ import { FieldModelConfigFrame, FieldModelConfigOutline, FieldModelDefinitionFrame, FieldModelDefinitionOutline } from '../field-model.outline';
6
+ import { FieldComponentConfigFrame, FieldComponentConfigOutline, FieldComponentDefinitionFrame, FieldComponentDefinitionOutline } from '../field-component.outline';
7
+ import { FieldComponentConfigFrameKindType, FieldComponentConfigKindType, FieldComponentDefinitionFrameKindType, FieldComponentDefinitionKindType, FieldLayoutConfigFrameKindType, FieldLayoutConfigKindType, FieldLayoutDefinitionFrameKindType, FieldLayoutDefinitionKindType, FieldModelConfigFrameKindType, FieldModelConfigKindType, FieldModelDefinitionFrameKindType, FieldModelDefinitionKindType, FormComponentDefinitionFrameKindType, FormComponentDefinitionKindType } from '../shared.outline';
8
8
  export declare const RepeatableComponentName: "RepeatableComponent";
9
9
  export type RepeatableComponentNameType = typeof RepeatableComponentName;
10
10
  export interface RepeatableFieldComponentConfigFrame extends FieldComponentConfigFrame {
@@ -12,6 +12,7 @@ export interface RepeatableFieldComponentConfigFrame extends FieldComponentConfi
12
12
  addButtonShow?: boolean;
13
13
  allowZeroRows?: boolean;
14
14
  hideWhenZeroRows?: boolean;
15
+ canSort?: boolean;
15
16
  }
16
17
  export interface RepeatableFieldComponentConfigOutline extends RepeatableFieldComponentConfigFrame, FieldComponentConfigOutline {
17
18
  elementTemplate: AvailableFormComponentDefinitionOutlines;
@@ -7,4 +7,4 @@ exports.RepeatableComponentName = `RepeatableComponent`;
7
7
  exports.RepeatableModelName = `RepeatableModel`;
8
8
  /* Repeatable Element Layout */
9
9
  exports.RepeatableElementLayoutName = `RepeatableElementLayout`;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0YWJsZS5vdXRsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbmZpZy9jb21wb25lbnQvcmVwZWF0YWJsZS5vdXRsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVDQSwwQkFBMEI7QUFFYixRQUFBLHVCQUF1QixHQUFHLHFCQUE4QixDQUFDO0FBeUJ0RSxzQkFBc0I7QUFFVCxRQUFBLG1CQUFtQixHQUFHLGlCQUEwQixDQUFDO0FBd0I5RCwrQkFBK0I7QUFDbEIsUUFBQSwyQkFBMkIsR0FBRyx5QkFBa0MsQ0FBQyJ9
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0YWJsZS5vdXRsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbmZpZy9jb21wb25lbnQvcmVwZWF0YWJsZS5vdXRsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTJDQSwwQkFBMEI7QUFFYixRQUFBLHVCQUF1QixHQUFHLHFCQUE4QixDQUFDO0FBMkJ0RSxzQkFBc0I7QUFFVCxRQUFBLG1CQUFtQixHQUFHLGlCQUEwQixDQUFDO0FBdUI5RCwrQkFBK0I7QUFDbEIsUUFBQSwyQkFBMkIsR0FBRyx5QkFBa0MsQ0FBQyJ9
@@ -34,10 +34,12 @@ export interface SaveButtonFieldComponentConfigFrame extends FieldComponentConfi
34
34
  closeOnSave?: boolean;
35
35
  /**
36
36
  * The relative url to redirect to on a successful save if closeOnSave is true.
37
+ * Leave empty to use the browser's location.back.
37
38
  */
38
39
  redirectLocation?: string;
39
40
  /**
40
41
  * The delay before redirecting on a successful save if closeOnSave is true.
42
+ * Default is 3 seconds delay.
41
43
  */
42
44
  redirectDelaySeconds?: number;
43
45
  }
@@ -1,4 +1,4 @@
1
- import jsonata from "jsonata";
1
+ import jsonata from 'jsonata';
2
2
  /**
3
3
  * A function that accepts a context and evaluates a previously compiled expression.
4
4
  */
@@ -7,8 +7,9 @@ export type JSONataEvaluate = (context: unknown) => Promise<unknown>;
7
7
  * A function that registers a custom JSONata function.
8
8
  */
9
9
  export type JSONataRegisterFunction = (name: string, implementation: (this: jsonata.Focus, ...args: unknown[]) => unknown, signature?: string) => void;
10
+ export declare function luxonFormatDate(value: unknown, format: unknown, sourceFormat?: unknown): string;
10
11
  export declare const jsonataLibrary: {
11
- jsonata: typeof jsonata;
12
+ luxonFormatDate: typeof luxonFormatDate;
12
13
  };
13
14
  /**
14
15
  * Provide a JSONata expression string and return a compiled JSONata expression object.
@@ -4,12 +4,45 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.jsonataLibrary = void 0;
7
+ exports.luxonFormatDate = luxonFormatDate;
7
8
  exports.jsonataCompile = jsonataCompile;
8
9
  exports.jsonataEvaluate = jsonataEvaluate;
9
10
  exports.jsonataCompileAndEvaluate = jsonataCompileAndEvaluate;
10
11
  exports.jsonataEvaluateFunc = jsonataEvaluateFunc;
11
12
  const jsonata_1 = __importDefault(require("jsonata"));
12
- exports.jsonataLibrary = { jsonata: jsonata_1.default };
13
+ const luxon_1 = require("luxon");
14
+ function luxonFormatDate(value, format, sourceFormat) {
15
+ if (value === undefined || value === null || value === '') {
16
+ return '';
17
+ }
18
+ const outputFormat = typeof format === 'string' && format ? format : 'yyyy-LL-dd';
19
+ const inputFormat = typeof sourceFormat === 'string' && sourceFormat ? sourceFormat : undefined;
20
+ const valueAsString = typeof value === 'string' ? value.trim() : String(value);
21
+ let dateTime;
22
+ if (value instanceof Date) {
23
+ dateTime = luxon_1.DateTime.fromJSDate(value);
24
+ }
25
+ else if (typeof value === 'number') {
26
+ dateTime = luxon_1.DateTime.fromMillis(value);
27
+ }
28
+ else if (inputFormat) {
29
+ dateTime = luxon_1.DateTime.fromFormat(valueAsString, inputFormat);
30
+ }
31
+ else {
32
+ const candidates = [
33
+ luxon_1.DateTime.fromISO(valueAsString),
34
+ luxon_1.DateTime.fromFormat(valueAsString, 'yyyy/MM/dd'),
35
+ luxon_1.DateTime.fromFormat(valueAsString, 'yyyy-MM-dd'),
36
+ luxon_1.DateTime.fromRFC2822(valueAsString),
37
+ luxon_1.DateTime.fromHTTP(valueAsString),
38
+ ];
39
+ dateTime = candidates.find(candidate => candidate.isValid) ?? luxon_1.DateTime.invalid('Unparsable date');
40
+ }
41
+ return dateTime.isValid ? dateTime.toFormat(outputFormat) : '';
42
+ }
43
+ exports.jsonataLibrary = {
44
+ luxonFormatDate,
45
+ };
13
46
  /**
14
47
  * Provide a JSONata expression string and return a compiled JSONata expression object.
15
48
  *
@@ -22,8 +55,8 @@ exports.jsonataLibrary = { jsonata: jsonata_1.default };
22
55
  function jsonataCompile(expression, options) {
23
56
  const compiled = (0, jsonata_1.default)(expression, options);
24
57
  // Disable JSONata's dynamic eval function so browser/server validators only run the configured expression.
25
- compiled.registerFunction("eval", () => undefined);
26
- // TODO: register helper functions
58
+ compiled.registerFunction('eval', () => undefined);
59
+ compiled.registerFunction('luxonFormatDate', luxonFormatDate, '<(snd)(sn)s?:s>');
27
60
  // TODO: register a function for obtaining translations
28
61
  // TODO: register a function for formatting date time values
29
62
  // TODO: register a function / context state holder that provides model data
@@ -43,4 +76,4 @@ function jsonataEvaluateFunc(expression, bindings) {
43
76
  return await jsonataEvaluate(compiled, value, bindings);
44
77
  };
45
78
  }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmF0YS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2pzb25hdGEtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUF1QkEsd0NBZUM7QUFFRCwwQ0FFQztBQUVELDhEQUdDO0FBRUQsa0RBS0M7QUF0REQsc0RBQThCO0FBWWpCLFFBQUEsY0FBYyxHQUFHLEVBQUMsT0FBTyxFQUFFLGlCQUFPLEVBQUMsQ0FBQztBQUVqRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxVQUFrQixFQUFFLE9BQWdDO0lBQ2pGLE1BQU0sUUFBUSxHQUFHLElBQUEsaUJBQU8sRUFBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFOUMsMkdBQTJHO0lBQzNHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFbkQsa0NBQWtDO0lBR2xDLHVEQUF1RDtJQUN2RCw0REFBNEQ7SUFDNUQsNEVBQTRFO0lBQzVFLHlDQUF5QztJQUV6QyxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRU0sS0FBSyxVQUFVLGVBQWUsQ0FBQyxRQUE0QixFQUFFLE9BQWdCLEVBQUUsUUFBa0M7SUFDdEgsT0FBTyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFTSxLQUFLLFVBQVUseUJBQXlCLENBQUMsVUFBa0IsRUFBRSxPQUFnQixFQUFFLFFBQWtDO0lBQ3RILE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxPQUFPLE1BQU0sZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLFVBQWtCLEVBQUUsUUFBa0M7SUFDeEYsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLE9BQU8sS0FBSyxXQUFXLEtBQWM7UUFDbkMsT0FBTyxNQUFNLGVBQWUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBQTtBQUNILENBQUMifQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmF0YS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2pzb25hdGEtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFpQkEsMENBNEJDO0FBZUQsd0NBY0M7QUFFRCwwQ0FNQztBQUVELDhEQU9DO0FBRUQsa0RBS0M7QUFsR0Qsc0RBQThCO0FBQzlCLGlDQUFpQztBQWdCakMsU0FBZ0IsZUFBZSxDQUFDLEtBQWMsRUFBRSxNQUFlLEVBQUUsWUFBc0I7SUFDckYsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQzFELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ2xGLE1BQU0sV0FBVyxHQUFHLE9BQU8sWUFBWSxLQUFLLFFBQVEsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hHLE1BQU0sYUFBYSxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0UsSUFBSSxRQUFrQixDQUFDO0lBRXZCLElBQUksS0FBSyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQzFCLFFBQVEsR0FBRyxnQkFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO1NBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxRQUFRLEdBQUcsZ0JBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztTQUFNLElBQUksV0FBVyxFQUFFLENBQUM7UUFDdkIsUUFBUSxHQUFHLGdCQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLGdCQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUMvQixnQkFBUSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDO1lBQ2hELGdCQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUM7WUFDaEQsZ0JBQVEsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQ25DLGdCQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztTQUNqQyxDQUFDO1FBQ0YsUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksZ0JBQVEsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDakUsQ0FBQztBQUVZLFFBQUEsY0FBYyxHQUFHO0lBQzVCLGVBQWU7Q0FDaEIsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLFVBQWtCLEVBQUUsT0FBZ0M7SUFDakYsTUFBTSxRQUFRLEdBQUcsSUFBQSxpQkFBTyxFQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUU5QywyR0FBMkc7SUFDM0csUUFBUSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVuRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFFakYsdURBQXVEO0lBQ3ZELDREQUE0RDtJQUM1RCw0RUFBNEU7SUFDNUUseUNBQXlDO0lBRXpDLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUNuQyxRQUE0QixFQUM1QixPQUFnQixFQUNoQixRQUFrQztJQUVsQyxPQUFPLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUVNLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0MsVUFBa0IsRUFDbEIsT0FBZ0IsRUFDaEIsUUFBa0M7SUFFbEMsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLE9BQU8sTUFBTSxlQUFlLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsVUFBa0IsRUFBRSxRQUFrQztJQUN4RixNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsT0FBTyxLQUFLLFdBQVcsS0FBYztRQUNuQyxPQUFPLE1BQU0sZUFBZSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -36,6 +36,7 @@ export declare function buildKeyString(key: TemplateCompileKey): TemplateCompile
36
36
  export type DynamicScriptResponseEvaluateKey = TemplateCompileKey;
37
37
  export type DynamicScriptResponseEvaluateContext = unknown;
38
38
  export type DynamicScriptResponseEvaluateExtra = {
39
+ jsonata?: unknown;
39
40
  libraries?: Record<string, unknown>;
40
41
  [key: string]: unknown;
41
42
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@researchdatabox/sails-ng-common",
3
- "version": "0.0.1-beta.9873",
3
+ "version": "0.0.1-beta.9950",
4
4
  "description": "Common models shared between Sails API endpoints and client-side Angular code",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",