@projectcaluma/ember-form 11.0.0-beta.37 → 11.0.0-beta.39
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.
|
@@ -158,7 +158,11 @@ export default class CfContentComponent extends Component {
|
|
|
158
158
|
|
|
159
159
|
const raw = parseDocument({ ...answerDocument, form });
|
|
160
160
|
|
|
161
|
-
const document = new Document({
|
|
161
|
+
const document = new Document({
|
|
162
|
+
raw,
|
|
163
|
+
owner,
|
|
164
|
+
dataSourceContext: this.args.context,
|
|
165
|
+
});
|
|
162
166
|
const navigation = new Navigation({ document, owner });
|
|
163
167
|
|
|
164
168
|
registerDestructor(this, () => {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
query DynamicOptions($question: String
|
|
1
|
+
query DynamicOptions($question: String!, $context: JSONString) {
|
|
2
2
|
allQuestions(filter: [{ slugs: [$question] }], first: 1) {
|
|
3
3
|
edges {
|
|
4
4
|
node {
|
|
5
5
|
id
|
|
6
6
|
slug
|
|
7
7
|
... on DynamicChoiceQuestion {
|
|
8
|
-
dynamicChoiceOptions: options {
|
|
8
|
+
dynamicChoiceOptions: options(context: $context) {
|
|
9
9
|
edges {
|
|
10
10
|
node {
|
|
11
11
|
slug
|
|
@@ -15,7 +15,7 @@ query DynamicOptions($question: String!) {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
... on DynamicMultipleChoiceQuestion {
|
|
18
|
-
dynamicMultipleChoiceOptions: options {
|
|
18
|
+
dynamicMultipleChoiceOptions: options(context: $context) {
|
|
19
19
|
edges {
|
|
20
20
|
node {
|
|
21
21
|
slug
|
package/addon/lib/document.js
CHANGED
|
@@ -18,7 +18,7 @@ const sum = (nums) => nums.reduce((num, base) => base + num, 0);
|
|
|
18
18
|
* @class Document
|
|
19
19
|
*/
|
|
20
20
|
export default class Document extends Base {
|
|
21
|
-
constructor({ raw, parentDocument, ...args }) {
|
|
21
|
+
constructor({ raw, parentDocument, dataSourceContext, ...args }) {
|
|
22
22
|
assert(
|
|
23
23
|
"A graphql document `raw` must be passed",
|
|
24
24
|
raw?.__typename === "Document"
|
|
@@ -27,6 +27,7 @@ export default class Document extends Base {
|
|
|
27
27
|
super({ raw, ...args });
|
|
28
28
|
|
|
29
29
|
this.parentDocument = parentDocument;
|
|
30
|
+
this.dataSourceContext = dataSourceContext;
|
|
30
31
|
|
|
31
32
|
this.pushIntoStore();
|
|
32
33
|
|
|
@@ -83,6 +84,13 @@ export default class Document extends Base {
|
|
|
83
84
|
*/
|
|
84
85
|
fieldsets = [];
|
|
85
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Context object for data sources
|
|
89
|
+
*
|
|
90
|
+
* @property {Object} dataSourceContext
|
|
91
|
+
*/
|
|
92
|
+
dataSourceContext = null;
|
|
93
|
+
|
|
86
94
|
/**
|
|
87
95
|
* The primary key of the document.
|
|
88
96
|
*
|
package/addon/lib/field.js
CHANGED
|
@@ -89,6 +89,8 @@ export default class Field extends Base {
|
|
|
89
89
|
raw: this.raw.question,
|
|
90
90
|
owner,
|
|
91
91
|
});
|
|
92
|
+
|
|
93
|
+
this.question.dataSourceContext = this.document.dataSourceContext;
|
|
92
94
|
}
|
|
93
95
|
|
|
94
96
|
_createAnswer() {
|
|
@@ -545,18 +547,24 @@ export default class Field extends Base {
|
|
|
545
547
|
|
|
546
548
|
const type = this.answer.raw.__typename;
|
|
547
549
|
|
|
550
|
+
const value = this.answer.serializedValue;
|
|
551
|
+
const input = {
|
|
552
|
+
question: this.question.slug,
|
|
553
|
+
document: this.document.uuid,
|
|
554
|
+
};
|
|
555
|
+
|
|
556
|
+
if (value !== null) {
|
|
557
|
+
input.value = value;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
if (this.document.dataSourceContext) {
|
|
561
|
+
input.dataSourceContext = JSON.stringify(this.document.dataSourceContext);
|
|
562
|
+
}
|
|
563
|
+
|
|
548
564
|
const response = yield this.apollo.mutate(
|
|
549
565
|
{
|
|
550
566
|
mutation: MUTATION_MAP[type],
|
|
551
|
-
variables: {
|
|
552
|
-
input: {
|
|
553
|
-
question: this.question.slug,
|
|
554
|
-
document: this.document.uuid,
|
|
555
|
-
...(this.answer.serializedValue !== null
|
|
556
|
-
? { value: this.answer.serializedValue }
|
|
557
|
-
: {}),
|
|
558
|
-
},
|
|
559
|
-
},
|
|
567
|
+
variables: { input },
|
|
560
568
|
},
|
|
561
569
|
`saveDocument${type}.answer`
|
|
562
570
|
);
|
package/addon/lib/question.js
CHANGED
|
@@ -66,7 +66,12 @@ export default class Question extends Base {
|
|
|
66
66
|
{
|
|
67
67
|
query: getDynamicOptions,
|
|
68
68
|
fetchPolicy: "network-only",
|
|
69
|
-
variables: {
|
|
69
|
+
variables: {
|
|
70
|
+
question: this.slug,
|
|
71
|
+
context: this.dataSourceContext
|
|
72
|
+
? JSON.stringify(this.dataSourceContext)
|
|
73
|
+
: null,
|
|
74
|
+
},
|
|
70
75
|
},
|
|
71
76
|
"allQuestions.edges"
|
|
72
77
|
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@projectcaluma/ember-form",
|
|
3
|
-
"version": "11.0.0-beta.
|
|
3
|
+
"version": "11.0.0-beta.39",
|
|
4
4
|
"description": "Ember addon for rendering Caluma forms.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-addon"
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@ember/string": "^3.0.0",
|
|
18
|
-
"@embroider/macros": "^1.
|
|
18
|
+
"@embroider/macros": "^1.10.0",
|
|
19
19
|
"@embroider/util": "^1.9.0",
|
|
20
20
|
"@glimmer/component": "^1.1.2",
|
|
21
21
|
"@glimmer/tracking": "^1.1.2",
|
|
22
|
-
"@projectcaluma/ember-core": "^11.0.0-beta.
|
|
22
|
+
"@projectcaluma/ember-core": "^11.0.0-beta.39",
|
|
23
23
|
"ember-apollo-client": "~4.0.2",
|
|
24
24
|
"ember-auto-import": "^2.4.3",
|
|
25
25
|
"ember-autoresize-modifier": "^0.6.0",
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@ember/optional-features": "2.0.0",
|
|
48
48
|
"@ember/test-helpers": "2.7.0",
|
|
49
|
-
"@embroider/test-setup": "
|
|
49
|
+
"@embroider/test-setup": "2.0.0",
|
|
50
50
|
"@faker-js/faker": "7.6.0",
|
|
51
|
-
"@projectcaluma/ember-testing": "11.0.0-beta.
|
|
52
|
-
"@projectcaluma/ember-workflow": "^11.0.0-beta.
|
|
51
|
+
"@projectcaluma/ember-testing": "11.0.0-beta.39",
|
|
52
|
+
"@projectcaluma/ember-workflow": "^11.0.0-beta.39",
|
|
53
53
|
"broccoli-asset-rev": "3.0.0",
|
|
54
54
|
"ember-cli": "4.8.0",
|
|
55
55
|
"ember-cli-code-coverage": "1.0.3",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"webpack": "5.75.0"
|
|
75
75
|
},
|
|
76
76
|
"peerDependencies": {
|
|
77
|
-
"@projectcaluma/ember-workflow": "^11.0.0-beta.
|
|
77
|
+
"@projectcaluma/ember-workflow": "^11.0.0-beta.39"
|
|
78
78
|
},
|
|
79
79
|
"peerDependenciesMeta": {
|
|
80
80
|
"@projectcaluma/ember-workflow": {
|