@projectcaluma/ember-core 11.0.0-beta.4 → 11.0.0-beta.7
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 +28 -0
- package/addon/-private/possible-types.js +26 -23
- package/addon/caluma-query/index.js +1 -5
- package/addon/caluma-query/models/index.js +3 -2
- package/addon/caluma-query/resource.js +30 -29
- package/addon/services/-scheduler.js +27 -5
- package/addon/services/caluma-options.js +0 -27
- package/addon/utils/slugify.js +1 -1
- package/package.json +19 -17
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
# [@projectcaluma/ember-core-v11.0.0-beta.7](https://github.com/projectcaluma/ember-caluma/compare/@projectcaluma/ember-core-v11.0.0-beta.6...@projectcaluma/ember-core-v11.0.0-beta.7) (2022-05-09)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **resources:** fix deprecations of ember-resources ([7a84c5c](https://github.com/projectcaluma/ember-caluma/commit/7a84c5c78d5b28f7b5393c64722907728dd5f42b))
|
|
7
|
+
|
|
8
|
+
# [@projectcaluma/ember-core-v11.0.0-beta.6](https://github.com/projectcaluma/ember-caluma/compare/@projectcaluma/ember-core-v11.0.0-beta.5...@projectcaluma/ember-core-v11.0.0-beta.6) (2022-03-23)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **embroider:** add missing dependency on @ember/string ([3a6e6bb](https://github.com/projectcaluma/ember-caluma/commit/3a6e6bb39a8c1a40a2ae00b3d4ea00606a755e25))
|
|
14
|
+
|
|
15
|
+
# [@projectcaluma/ember-core-v11.0.0-beta.5](https://github.com/projectcaluma/ember-caluma/compare/@projectcaluma/ember-core-v11.0.0-beta.4...@projectcaluma/ember-core-v11.0.0-beta.5) (2022-03-11)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* **core:** ensure only language code of the locale is passed to slugify ([02e4506](https://github.com/projectcaluma/ember-caluma/commit/02e45064b9171de85af5b9e1a890d5207a6ec252))
|
|
21
|
+
* **core:** handle null values in raw dates ([9c73d0b](https://github.com/projectcaluma/ember-caluma/commit/9c73d0b3853b154b5edc84bcf2c1227ffb825116)), closes [#1826](https://github.com/projectcaluma/ember-caluma/issues/1826)
|
|
22
|
+
* **distribution:** fix sorting after group names in navigation ([2299d3b](https://github.com/projectcaluma/ember-caluma/commit/2299d3b0e265204ab6747dbdc6a8b64fc22f247f))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* **form:** support passing component override classes ([9409c7c](https://github.com/projectcaluma/ember-caluma/commit/9409c7cb5901dcdffec1c0294046da64b74b9922))
|
|
28
|
+
|
|
1
29
|
# [@projectcaluma/ember-core-v11.0.0-beta.4](https://github.com/projectcaluma/ember-caluma/compare/@projectcaluma/ember-core-v11.0.0-beta.3...@projectcaluma/ember-core-v11.0.0-beta.4) (2022-02-07)
|
|
2
30
|
|
|
3
31
|
|
|
@@ -1,44 +1,31 @@
|
|
|
1
1
|
export default {
|
|
2
|
-
|
|
3
|
-
"Workflow",
|
|
4
|
-
"Form",
|
|
5
|
-
"Document",
|
|
6
|
-
"Case",
|
|
7
|
-
"WorkItem",
|
|
8
|
-
"Flow",
|
|
9
|
-
"DynamicOption",
|
|
10
|
-
"Option",
|
|
2
|
+
Question: [
|
|
11
3
|
"TextQuestion",
|
|
12
|
-
"StringAnswer",
|
|
13
4
|
"ChoiceQuestion",
|
|
14
5
|
"MultipleChoiceQuestion",
|
|
15
|
-
"ListAnswer",
|
|
16
6
|
"DynamicChoiceQuestion",
|
|
17
7
|
"DynamicMultipleChoiceQuestion",
|
|
18
8
|
"TextareaQuestion",
|
|
19
9
|
"FloatQuestion",
|
|
20
|
-
"FloatAnswer",
|
|
21
10
|
"IntegerQuestion",
|
|
22
|
-
"IntegerAnswer",
|
|
23
11
|
"DateQuestion",
|
|
24
|
-
"DateAnswer",
|
|
25
12
|
"TableQuestion",
|
|
26
|
-
"TableAnswer",
|
|
27
13
|
"FormQuestion",
|
|
28
14
|
"FileQuestion",
|
|
29
15
|
"StaticQuestion",
|
|
30
|
-
"FileAnswer",
|
|
31
|
-
"File",
|
|
32
16
|
"CalculatedFloatQuestion",
|
|
33
17
|
"ActionButtonQuestion",
|
|
34
|
-
"SimpleTask",
|
|
35
|
-
"CompleteWorkflowFormTask",
|
|
36
|
-
"CompleteTaskFormTask",
|
|
37
18
|
],
|
|
38
|
-
|
|
39
|
-
Question: [
|
|
19
|
+
Node: [
|
|
40
20
|
"TextQuestion",
|
|
21
|
+
"Form",
|
|
22
|
+
"Document",
|
|
23
|
+
"Case",
|
|
24
|
+
"Workflow",
|
|
25
|
+
"Flow",
|
|
26
|
+
"WorkItem",
|
|
41
27
|
"ChoiceQuestion",
|
|
28
|
+
"Option",
|
|
42
29
|
"MultipleChoiceQuestion",
|
|
43
30
|
"DynamicChoiceQuestion",
|
|
44
31
|
"DynamicMultipleChoiceQuestion",
|
|
@@ -50,17 +37,33 @@ export default {
|
|
|
50
37
|
"FormQuestion",
|
|
51
38
|
"FileQuestion",
|
|
52
39
|
"StaticQuestion",
|
|
40
|
+
"StringAnswer",
|
|
41
|
+
"ListAnswer",
|
|
42
|
+
"IntegerAnswer",
|
|
43
|
+
"FloatAnswer",
|
|
44
|
+
"DateAnswer",
|
|
45
|
+
"TableAnswer",
|
|
46
|
+
"FileAnswer",
|
|
47
|
+
"File",
|
|
53
48
|
"CalculatedFloatQuestion",
|
|
54
49
|
"ActionButtonQuestion",
|
|
50
|
+
"SimpleTask",
|
|
51
|
+
"CompleteWorkflowFormTask",
|
|
52
|
+
"CompleteTaskFormTask",
|
|
53
|
+
"AnalyticsTable",
|
|
54
|
+
"AvailableField",
|
|
55
|
+
"AnalyticsField",
|
|
56
|
+
"DynamicOption",
|
|
55
57
|
],
|
|
56
58
|
Answer: [
|
|
57
59
|
"StringAnswer",
|
|
58
60
|
"ListAnswer",
|
|
59
|
-
"FloatAnswer",
|
|
60
61
|
"IntegerAnswer",
|
|
62
|
+
"FloatAnswer",
|
|
61
63
|
"DateAnswer",
|
|
62
64
|
"TableAnswer",
|
|
63
65
|
"FileAnswer",
|
|
64
66
|
],
|
|
67
|
+
Task: ["SimpleTask", "CompleteWorkflowFormTask", "CompleteTaskFormTask"],
|
|
65
68
|
DynamicQuestion: ["DynamicChoiceQuestion", "DynamicMultipleChoiceQuestion"],
|
|
66
69
|
};
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { getOwner, setOwner } from "@ember/application";
|
|
2
|
-
import { useResource } from "ember-resources";
|
|
3
2
|
|
|
4
3
|
import CalumaQueryResource from "@projectcaluma/ember-core/caluma-query/resource";
|
|
5
4
|
|
|
6
5
|
export function useCalumaQuery(destroyable, query, thunk) {
|
|
7
|
-
return
|
|
8
|
-
query,
|
|
9
|
-
...thunk(),
|
|
10
|
-
}));
|
|
6
|
+
return CalumaQueryResource.from(destroyable, () => ({ query, ...thunk() }));
|
|
11
7
|
}
|
|
12
8
|
|
|
13
9
|
export default function calumaQuery({ query, options = {} }) {
|
|
@@ -13,9 +13,10 @@ export function uuidAttr(target, name) {
|
|
|
13
13
|
export function dateAttr(target, name) {
|
|
14
14
|
return {
|
|
15
15
|
get() {
|
|
16
|
-
const
|
|
16
|
+
const raw = this.raw[name];
|
|
17
|
+
const date = raw ? new Date(raw) : null;
|
|
17
18
|
|
|
18
|
-
return !isNaN(date) ? date : null;
|
|
19
|
+
return raw && !isNaN(date) ? date : null;
|
|
19
20
|
},
|
|
20
21
|
set(value) {
|
|
21
22
|
if (!isNaN(value)) {
|
|
@@ -1,47 +1,48 @@
|
|
|
1
1
|
import { getOwner, setOwner } from "@ember/application";
|
|
2
|
-
import { destroy } from "@ember/destroyable";
|
|
2
|
+
import { destroy, registerDestructor } from "@ember/destroyable";
|
|
3
3
|
import { action } from "@ember/object";
|
|
4
4
|
import { tracked } from "@glimmer/tracking";
|
|
5
|
-
import {
|
|
5
|
+
import { Resource } from "ember-resources/core";
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.query = query(options);
|
|
14
|
-
setOwner(this.query, getOwner(this));
|
|
7
|
+
const MUTABLE_OPTIONS = [
|
|
8
|
+
"pageSize",
|
|
9
|
+
"processAll",
|
|
10
|
+
"processNew",
|
|
11
|
+
"queryOptions",
|
|
12
|
+
];
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
export default class CalumaQueryResource extends Resource {
|
|
15
|
+
@tracked query;
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
this._updateOptions();
|
|
17
|
+
didSetup = false;
|
|
21
18
|
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
constructor(owner, args) {
|
|
20
|
+
super(owner, args);
|
|
24
21
|
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
registerDestructor(this, () => {
|
|
23
|
+
destroy(this.query);
|
|
24
|
+
});
|
|
27
25
|
}
|
|
28
26
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
modify(_, { options = {}, query, ...args }) {
|
|
28
|
+
if (!this.didSetup) {
|
|
29
|
+
// initialize the caluma query with the given options
|
|
30
|
+
this.query = query(options);
|
|
31
|
+
setOwner(this.query, getOwner(this));
|
|
34
32
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
this.didSetup = true;
|
|
34
|
+
} else {
|
|
35
|
+
// update changed options on the caluma query
|
|
36
|
+
MUTABLE_OPTIONS.forEach((optionKey) => {
|
|
37
|
+
const option = options[optionKey];
|
|
39
38
|
|
|
40
39
|
if (option !== undefined && option !== this.query[optionKey]) {
|
|
41
40
|
this.query[optionKey] = option;
|
|
42
41
|
}
|
|
43
|
-
}
|
|
44
|
-
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
this.query.fetch(args);
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
@action
|
|
@@ -2,6 +2,7 @@ import { assert } from "@ember/debug";
|
|
|
2
2
|
import { once } from "@ember/runloop";
|
|
3
3
|
import Service, { inject as service } from "@ember/service";
|
|
4
4
|
import { camelize } from "@ember/string";
|
|
5
|
+
import { tracked } from "@glimmer/tracking";
|
|
5
6
|
import { task } from "ember-concurrency";
|
|
6
7
|
import { pluralize } from "ember-inflector";
|
|
7
8
|
|
|
@@ -14,25 +15,46 @@ import { pluralize } from "ember-inflector";
|
|
|
14
15
|
*/
|
|
15
16
|
function typeResolver(type) {
|
|
16
17
|
return task(function* () {
|
|
17
|
-
const identifiers = [...this[type]
|
|
18
|
-
const callbacks = [...this[type]
|
|
18
|
+
const identifiers = [...(this[type]?.identifiers ?? [])];
|
|
19
|
+
const callbacks = [...(this[type]?.callbacks ?? [])];
|
|
19
20
|
|
|
20
21
|
this[type] = undefined;
|
|
21
22
|
|
|
22
23
|
if (!identifiers.length) return;
|
|
23
24
|
|
|
25
|
+
const cached = this[`${type}Cache`];
|
|
26
|
+
const uncachedIdentifiers = identifiers.filter(
|
|
27
|
+
(identifier) =>
|
|
28
|
+
!cached
|
|
29
|
+
.map((resolved) =>
|
|
30
|
+
String(resolved[this.calumaOptions[`${type}IdentifierProperty`]])
|
|
31
|
+
)
|
|
32
|
+
.includes(String(identifier))
|
|
33
|
+
);
|
|
34
|
+
|
|
24
35
|
const methodName = camelize(`resolve-${pluralize(type)}`);
|
|
25
|
-
const result =
|
|
36
|
+
const result = uncachedIdentifiers.length
|
|
37
|
+
? yield this.calumaOptions[methodName]?.(uncachedIdentifiers)
|
|
38
|
+
: [];
|
|
39
|
+
|
|
40
|
+
const allResults = [...cached, ...(result?.toArray?.() ?? result ?? [])];
|
|
26
41
|
|
|
27
|
-
|
|
42
|
+
if (result?.length) {
|
|
43
|
+
this[`${type}Cache`] = allResults;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
yield Promise.all(callbacks.map((callback) => callback(allResults)));
|
|
28
47
|
|
|
29
|
-
return
|
|
48
|
+
return allResults;
|
|
30
49
|
}).enqueue();
|
|
31
50
|
}
|
|
32
51
|
|
|
33
52
|
export default class PrivateSchedulerService extends Service {
|
|
34
53
|
@service calumaOptions;
|
|
35
54
|
|
|
55
|
+
@tracked groupCache = [];
|
|
56
|
+
@tracked userCache = [];
|
|
57
|
+
|
|
36
58
|
@typeResolver("group") resolveGroup;
|
|
37
59
|
@typeResolver("user") resolveUser;
|
|
38
60
|
|
|
@@ -18,33 +18,6 @@ export default class CalumaOptionsService extends Service {
|
|
|
18
18
|
|
|
19
19
|
@tracked currentGroupId;
|
|
20
20
|
|
|
21
|
-
constructor(...args) {
|
|
22
|
-
super(...args);
|
|
23
|
-
|
|
24
|
-
this.registerComponentOverride({
|
|
25
|
-
label: this.intl.t(
|
|
26
|
-
"caluma.form-builder.question.widgetOverrides.powerselect"
|
|
27
|
-
),
|
|
28
|
-
component: "cf-field/input/powerselect",
|
|
29
|
-
types: [
|
|
30
|
-
"ChoiceQuestion",
|
|
31
|
-
"MultipleChoiceQuestion",
|
|
32
|
-
"DynamicChoiceQuestion",
|
|
33
|
-
"DynamicMultipleChoiceQuestion",
|
|
34
|
-
],
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
this.registerComponentOverride({
|
|
38
|
-
label: this.intl.t("caluma.form-builder.question.widgetOverrides.hidden"),
|
|
39
|
-
component: "cf-field/input/hidden",
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
this.registerComponentOverride({
|
|
43
|
-
component: "cfb-form-editor/question/default/table",
|
|
44
|
-
types: [],
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
|
|
48
21
|
_namespace = null;
|
|
49
22
|
_overrides = {};
|
|
50
23
|
|
package/addon/utils/slugify.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@projectcaluma/ember-core",
|
|
3
|
-
"version": "11.0.0-beta.
|
|
3
|
+
"version": "11.0.0-beta.7",
|
|
4
4
|
"description": "Ember core addon for working with Caluma.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-addon"
|
|
@@ -14,17 +14,18 @@
|
|
|
14
14
|
"test:ember-compatibility": "ember try:each"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@apollo/client": "^3.
|
|
18
|
-
"@
|
|
19
|
-
"
|
|
20
|
-
"ember-
|
|
17
|
+
"@apollo/client": "^3.6.2",
|
|
18
|
+
"@ember/string": "^3.0.0",
|
|
19
|
+
"@glimmer/tracking": "^1.1.2",
|
|
20
|
+
"ember-apollo-client": "^4.0.2",
|
|
21
|
+
"ember-auto-import": "^2.4.1",
|
|
21
22
|
"ember-cli-babel": "^7.26.11",
|
|
22
23
|
"ember-cli-htmlbars": "^6.0.1",
|
|
23
|
-
"ember-concurrency": "^2.2.
|
|
24
|
+
"ember-concurrency": "^2.2.1",
|
|
24
25
|
"ember-fetch": "^8.1.1",
|
|
25
26
|
"ember-inflector": "^4.0.2",
|
|
26
27
|
"ember-intl": "^5.7.2",
|
|
27
|
-
"ember-resources": "^4.
|
|
28
|
+
"ember-resources": "^4.7.1",
|
|
28
29
|
"graphql": "^15.8.0",
|
|
29
30
|
"graphql-tag": "^2.12.6",
|
|
30
31
|
"jexl": "^2.3.0",
|
|
@@ -34,17 +35,18 @@
|
|
|
34
35
|
"devDependencies": {
|
|
35
36
|
"@ember/optional-features": "2.0.0",
|
|
36
37
|
"@ember/render-modifiers": "2.0.4",
|
|
37
|
-
"@ember/test-helpers": "2.
|
|
38
|
-
"@embroider/test-setup": "1.
|
|
39
|
-
"@
|
|
40
|
-
"@
|
|
41
|
-
"@
|
|
38
|
+
"@ember/test-helpers": "2.7.0",
|
|
39
|
+
"@embroider/test-setup": "1.6.0",
|
|
40
|
+
"@embroider/util": "^1.6.0",
|
|
41
|
+
"@faker-js/faker": "6.3.1",
|
|
42
|
+
"@glimmer/component": "1.1.2",
|
|
43
|
+
"@projectcaluma/ember-testing": "11.0.0-beta.7",
|
|
42
44
|
"broccoli-asset-rev": "3.0.0",
|
|
43
45
|
"ember-cli": "3.28.5",
|
|
44
46
|
"ember-cli-code-coverage": "1.0.3",
|
|
45
|
-
"ember-cli-dependency-checker": "3.
|
|
47
|
+
"ember-cli-dependency-checker": "3.3.1",
|
|
46
48
|
"ember-cli-inject-live-reload": "2.1.0",
|
|
47
|
-
"ember-cli-mirage": "
|
|
49
|
+
"ember-cli-mirage": "3.0.0-alpha.3",
|
|
48
50
|
"ember-cli-sri": "2.1.1",
|
|
49
51
|
"ember-cli-terser": "4.0.2",
|
|
50
52
|
"ember-disable-prototype-extensions": "1.1.3",
|
|
@@ -53,14 +55,14 @@
|
|
|
53
55
|
"ember-maybe-import-regenerator": "1.0.0",
|
|
54
56
|
"ember-qunit": "5.1.5",
|
|
55
57
|
"ember-resolver": "8.0.3",
|
|
56
|
-
"ember-source": "3.28.
|
|
58
|
+
"ember-source": "3.28.9",
|
|
57
59
|
"ember-source-channel-url": "3.0.0",
|
|
58
60
|
"ember-try": "2.0.0",
|
|
59
61
|
"loader.js": "4.7.0",
|
|
60
62
|
"npm-run-all": "4.1.5",
|
|
61
|
-
"qunit": "2.
|
|
63
|
+
"qunit": "2.19.1",
|
|
62
64
|
"qunit-dom": "2.0.0",
|
|
63
|
-
"webpack": "5.
|
|
65
|
+
"webpack": "5.72.0"
|
|
64
66
|
},
|
|
65
67
|
"engines": {
|
|
66
68
|
"node": "12.* || 14.* || >= 16"
|