@projectcaluma/ember-form-builder 11.0.0-beta.9 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +82 -0
- package/addon/components/cfb-code-editor.hbs +26 -10
- package/addon/components/cfb-code-editor.js +60 -11
- package/addon/components/cfb-form-editor/general.js +6 -7
- package/addon/components/cfb-form-editor/question/default.hbs +11 -9
- package/addon/components/cfb-form-editor/question/default.js +9 -4
- package/addon/components/cfb-form-editor/question/options.hbs +3 -3
- package/addon/components/cfb-form-editor/question/validation.hbs +15 -13
- package/addon/components/cfb-form-editor/question/validation.js +2 -2
- package/addon/components/cfb-form-editor/question-list/item.hbs +44 -38
- package/addon/components/cfb-form-editor/question-list.hbs +2 -2
- package/addon/components/cfb-form-editor/question-list.js +9 -7
- package/addon/components/cfb-form-editor/question.hbs +51 -90
- package/addon/components/cfb-form-editor/question.js +46 -34
- package/addon/components/cfb-form-list.hbs +7 -7
- package/addon/components/cfb-form-list.js +42 -15
- package/addon/controllers/index.js +6 -0
- package/addon/gql/mutations/add-form-question.graphql +1 -1
- package/addon/gql/mutations/remove-form-question.graphql +1 -1
- package/addon/gql/mutations/reorder-form-questions.graphql +1 -1
- package/addon/gql/mutations/save-calculated-float-question.graphql +1 -0
- package/addon/gql/mutations/save-choice-question.graphql +1 -0
- package/addon/gql/mutations/save-date-question.graphql +3 -0
- package/addon/gql/mutations/save-dynamic-choice-question.graphql +1 -0
- package/addon/gql/mutations/save-dynamic-multiple-choice-question.graphql +1 -0
- package/addon/gql/mutations/save-files-question.graphql +14 -0
- package/addon/gql/mutations/save-float-question.graphql +1 -0
- package/addon/gql/mutations/save-integer-question.graphql +1 -0
- package/addon/gql/mutations/save-multiple-choice-question.graphql +1 -0
- package/addon/gql/mutations/save-table-question.graphql +1 -0
- package/addon/gql/mutations/save-text-question.graphql +1 -0
- package/addon/gql/mutations/save-textarea-question.graphql +1 -0
- package/addon/gql/queries/check-form-slug.graphql +1 -1
- package/addon/gql/queries/check-question-slug.graphql +1 -1
- package/addon/gql/queries/form-editor-general.graphql +1 -1
- package/addon/gql/queries/form-editor-question.graphql +16 -2
- package/addon/gql/queries/search-form-question.graphql +3 -3
- package/addon/instance-initializers/form-builder-widget-overrides.js +15 -0
- package/addon/routes/edit/questions/edit.js +2 -1
- package/addon/routes/edit.js +1 -1
- package/addon/templates/index.hbs +8 -1
- package/addon/validations/question.js +13 -4
- package/addon/validators/gt-lt.js +17 -38
- package/addon/validators/jexl.js +49 -0
- package/app/instance-initializers/form-builder-widget-overrides.js +4 -0
- package/app/styles/@projectcaluma/ember-form-builder.scss +1 -1
- package/app/styles/_cfb-uikit-powerselect.scss +2 -0
- package/blueprints/@projectcaluma/ember-form-builder/index.js +1 -1
- package/config/environment.js +0 -7
- package/index.js +4 -2
- package/package.json +58 -48
- package/translations/de.yaml +5 -4
- package/translations/en.yaml +4 -3
- package/translations/fr.yaml +4 -4
- package/addon/components/cfb-float-input.hbs +0 -14
- package/addon/components/cfb-label.hbs +0 -12
- package/addon/gql/fragments/field.graphql +0 -247
- package/addon/gql/mutations/save-file-question.graphql +0 -11
- package/addon/modifiers/pikaday.js +0 -2
- package/app/components/cfb-float-input.js +0 -1
- package/app/components/cfb-label.js +0 -1
- package/app/styles/_cfb-powerselect.scss +0 -31
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#import QuestionInfo from '../fragments/question-info.graphql'
|
|
2
|
+
|
|
3
|
+
mutation SaveFilesQuestion($input: SaveFilesQuestionInput!) {
|
|
4
|
+
saveFilesQuestion(input: $input) {
|
|
5
|
+
question {
|
|
6
|
+
id
|
|
7
|
+
...QuestionInfo
|
|
8
|
+
... on FilesQuestion {
|
|
9
|
+
hintText
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
clientMutationId
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#import QuestionInfo from '../fragments/question-info.graphql'
|
|
2
|
-
#import FieldQuestion, FieldTableQuestion, SimpleAnswer, SimpleQuestion from '
|
|
2
|
+
#import FieldQuestion, FieldTableQuestion, SimpleAnswer, SimpleQuestion from '@projectcaluma/ember-form/gql/fragments/field.graphql'
|
|
3
3
|
|
|
4
4
|
query FormEditorQuestion($slug: String!) {
|
|
5
|
-
allQuestions(filter: [{
|
|
5
|
+
allQuestions(filter: [{ slugs: [$slug] }]) {
|
|
6
6
|
edges {
|
|
7
7
|
node {
|
|
8
8
|
id
|
|
@@ -11,6 +11,7 @@ query FormEditorQuestion($slug: String!) {
|
|
|
11
11
|
integerMaxValue: maxValue
|
|
12
12
|
integerMinValue: minValue
|
|
13
13
|
placeholder
|
|
14
|
+
hintText
|
|
14
15
|
defaultAnswer {
|
|
15
16
|
id
|
|
16
17
|
integerValue: value
|
|
@@ -20,6 +21,7 @@ query FormEditorQuestion($slug: String!) {
|
|
|
20
21
|
floatMaxValue: maxValue
|
|
21
22
|
floatMinValue: minValue
|
|
22
23
|
placeholder
|
|
24
|
+
hintText
|
|
23
25
|
defaultAnswer {
|
|
24
26
|
id
|
|
25
27
|
floatValue: value
|
|
@@ -29,6 +31,7 @@ query FormEditorQuestion($slug: String!) {
|
|
|
29
31
|
minLength
|
|
30
32
|
maxLength
|
|
31
33
|
placeholder
|
|
34
|
+
hintText
|
|
32
35
|
defaultAnswer {
|
|
33
36
|
id
|
|
34
37
|
stringValue: value
|
|
@@ -52,12 +55,14 @@ query FormEditorQuestion($slug: String!) {
|
|
|
52
55
|
}
|
|
53
56
|
}
|
|
54
57
|
}
|
|
58
|
+
hintText
|
|
55
59
|
defaultAnswer {
|
|
56
60
|
id
|
|
57
61
|
stringValue: value
|
|
58
62
|
}
|
|
59
63
|
}
|
|
60
64
|
... on DateQuestion {
|
|
65
|
+
hintText
|
|
61
66
|
defaultAnswer {
|
|
62
67
|
id
|
|
63
68
|
dateValue: value
|
|
@@ -74,6 +79,7 @@ query FormEditorQuestion($slug: String!) {
|
|
|
74
79
|
}
|
|
75
80
|
}
|
|
76
81
|
}
|
|
82
|
+
hintText
|
|
77
83
|
defaultAnswer {
|
|
78
84
|
id
|
|
79
85
|
listValue: value
|
|
@@ -90,6 +96,7 @@ query FormEditorQuestion($slug: String!) {
|
|
|
90
96
|
}
|
|
91
97
|
}
|
|
92
98
|
}
|
|
99
|
+
hintText
|
|
93
100
|
defaultAnswer {
|
|
94
101
|
id
|
|
95
102
|
stringValue: value
|
|
@@ -97,9 +104,11 @@ query FormEditorQuestion($slug: String!) {
|
|
|
97
104
|
}
|
|
98
105
|
... on DynamicMultipleChoiceQuestion {
|
|
99
106
|
dataSource
|
|
107
|
+
hintText
|
|
100
108
|
}
|
|
101
109
|
... on DynamicChoiceQuestion {
|
|
102
110
|
dataSource
|
|
111
|
+
hintText
|
|
103
112
|
}
|
|
104
113
|
... on TableQuestion {
|
|
105
114
|
rowForm {
|
|
@@ -115,6 +124,7 @@ query FormEditorQuestion($slug: String!) {
|
|
|
115
124
|
}
|
|
116
125
|
}
|
|
117
126
|
}
|
|
127
|
+
hintText
|
|
118
128
|
defaultAnswer {
|
|
119
129
|
id
|
|
120
130
|
tableValue: value {
|
|
@@ -151,6 +161,10 @@ query FormEditorQuestion($slug: String!) {
|
|
|
151
161
|
}
|
|
152
162
|
... on CalculatedFloatQuestion {
|
|
153
163
|
calcExpression
|
|
164
|
+
hintText
|
|
165
|
+
}
|
|
166
|
+
... on FilesQuestion {
|
|
167
|
+
hintText
|
|
154
168
|
}
|
|
155
169
|
... on ActionButtonQuestion {
|
|
156
170
|
action
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#import QuestionInfo from '../fragments/question-info.graphql'
|
|
2
2
|
|
|
3
|
-
query SearchFormQuestion($slug: String!, $search: String
|
|
4
|
-
allForms(filter: [{
|
|
3
|
+
query SearchFormQuestion($slug: String!, $search: String) {
|
|
4
|
+
allForms(filter: [{ slugs: [$slug] }]) {
|
|
5
5
|
edges {
|
|
6
6
|
node {
|
|
7
7
|
id
|
|
8
8
|
slug
|
|
9
|
-
questions(search: $search
|
|
9
|
+
questions(filter: [{ search: $search }]) {
|
|
10
10
|
edges {
|
|
11
11
|
node {
|
|
12
12
|
id
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import DefaultTableComponent from "@projectcaluma/ember-form-builder/components/cfb-form-editor/question/default/table";
|
|
2
|
+
|
|
3
|
+
export function initialize(appInstance) {
|
|
4
|
+
const options = appInstance.lookup("service:caluma-options");
|
|
5
|
+
|
|
6
|
+
options.registerComponentOverride({
|
|
7
|
+
component: "cfb-form-editor/question/default/table",
|
|
8
|
+
componentClass: DefaultTableComponent,
|
|
9
|
+
types: [],
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export default {
|
|
14
|
+
initialize,
|
|
15
|
+
};
|
package/addon/routes/edit.js
CHANGED
|
@@ -1 +1,8 @@
|
|
|
1
|
-
<CfbFormList
|
|
1
|
+
<CfbFormList
|
|
2
|
+
@search={{this.search}}
|
|
3
|
+
@category={{this.category}}
|
|
4
|
+
@onNewForm={{this.newForm}}
|
|
5
|
+
@onEditForm={{this.editForm}}
|
|
6
|
+
@onUpdateSearch={{fn (mut this.search)}}
|
|
7
|
+
@onUpdateCategory={{fn (mut this.category)}}
|
|
8
|
+
/>
|
|
@@ -9,6 +9,7 @@ import validateOptions from "../validators/options";
|
|
|
9
9
|
|
|
10
10
|
import and from "@projectcaluma/ember-form-builder/utils/and";
|
|
11
11
|
import or from "@projectcaluma/ember-form-builder/utils/or";
|
|
12
|
+
import validateJexl from "@projectcaluma/ember-form-builder/validators/jexl";
|
|
12
13
|
import validateSlug from "@projectcaluma/ember-form-builder/validators/slug";
|
|
13
14
|
import validateType from "@projectcaluma/ember-form-builder/validators/type";
|
|
14
15
|
|
|
@@ -16,18 +17,24 @@ export default {
|
|
|
16
17
|
label: and(validatePresence(true), validateLength({ max: 1024 })),
|
|
17
18
|
slug: validateSlug(),
|
|
18
19
|
|
|
20
|
+
hintText: or(
|
|
21
|
+
validateType("FormQuestion", true),
|
|
22
|
+
validateType("StaticQuestion", true),
|
|
23
|
+
validateType("FilesQuestion", true),
|
|
24
|
+
validateLength({ max: 1024, allowBlank: true })
|
|
25
|
+
),
|
|
19
26
|
integerMinValue: or(
|
|
20
27
|
validateType("IntegerQuestion", false),
|
|
21
28
|
and(
|
|
22
29
|
validateNumber({ allowBlank: true, integer: true }),
|
|
23
|
-
validateGtLt({ lt: "integerMaxValue" })
|
|
30
|
+
validateGtLt({ lt: "integerMaxValue", allowNone: true })
|
|
24
31
|
)
|
|
25
32
|
),
|
|
26
33
|
integerMaxValue: or(
|
|
27
34
|
validateType("IntegerQuestion", false),
|
|
28
35
|
and(
|
|
29
36
|
validateNumber({ allowBlank: true, integer: true }),
|
|
30
|
-
validateGtLt({ gt: "integerMinValue" })
|
|
37
|
+
validateGtLt({ gt: "integerMinValue", allowNone: true })
|
|
31
38
|
)
|
|
32
39
|
),
|
|
33
40
|
|
|
@@ -35,14 +42,14 @@ export default {
|
|
|
35
42
|
validateType("FloatQuestion", false),
|
|
36
43
|
and(
|
|
37
44
|
validateNumber({ allowBlank: true }),
|
|
38
|
-
validateGtLt({ lt: "floatMaxValue" })
|
|
45
|
+
validateGtLt({ lt: "floatMaxValue", allowNone: true })
|
|
39
46
|
)
|
|
40
47
|
),
|
|
41
48
|
floatMaxValue: or(
|
|
42
49
|
validateType("FloatQuestion", false),
|
|
43
50
|
and(
|
|
44
51
|
validateNumber({ allowBlank: true }),
|
|
45
|
-
validateGtLt({ gt: "floatMinValue" })
|
|
52
|
+
validateGtLt({ gt: "floatMinValue", allowNone: true })
|
|
46
53
|
)
|
|
47
54
|
),
|
|
48
55
|
|
|
@@ -76,4 +83,6 @@ export default {
|
|
|
76
83
|
validateType("FormQuestion", false),
|
|
77
84
|
validatePresence(true)
|
|
78
85
|
),
|
|
86
|
+
isHidden: validateJexl(),
|
|
87
|
+
isRequired: validateJexl(),
|
|
79
88
|
};
|
|
@@ -1,47 +1,26 @@
|
|
|
1
|
-
import
|
|
2
|
-
import buildMessage from "ember-changeset-validations/utils/validation-errors";
|
|
1
|
+
import { validateNumber } from "ember-changeset-validations/validators";
|
|
3
2
|
|
|
4
|
-
export default function validateGtLt(options = {
|
|
3
|
+
export default function validateGtLt(options = {}) {
|
|
5
4
|
return (key, newValue, oldValue, changes, content) => {
|
|
6
|
-
newValue = Number(newValue);
|
|
7
|
-
|
|
8
|
-
if (!newValue) {
|
|
9
|
-
return true;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const messages = getMessages();
|
|
13
5
|
const data = { ...content, ...changes };
|
|
14
6
|
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
return dependentValue
|
|
19
|
-
? Number(newValue) > Number(dependentValue) ||
|
|
20
|
-
buildMessage(key, {
|
|
21
|
-
type: "greaterThan",
|
|
22
|
-
value: newValue,
|
|
23
|
-
context: {
|
|
24
|
-
gt: messages.getDescriptionFor(options.gt),
|
|
25
|
-
},
|
|
26
|
-
})
|
|
27
|
-
: true;
|
|
28
|
-
}
|
|
7
|
+
const parsedOptions = Object.entries(options).reduce((parsed, [k, v]) => {
|
|
8
|
+
const value =
|
|
9
|
+
/^(g|l)t(e)?$/.test(k) && typeof v === "string" ? data[v] : v;
|
|
29
10
|
|
|
30
|
-
|
|
31
|
-
|
|
11
|
+
if (value) {
|
|
12
|
+
return { ...parsed, [k]: value };
|
|
13
|
+
}
|
|
32
14
|
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
buildMessage(key, {
|
|
36
|
-
type: "lessThan",
|
|
37
|
-
value: newValue,
|
|
38
|
-
context: {
|
|
39
|
-
lt: messages.getDescriptionFor(options.lt),
|
|
40
|
-
},
|
|
41
|
-
})
|
|
42
|
-
: true;
|
|
43
|
-
}
|
|
15
|
+
return parsed;
|
|
16
|
+
}, {});
|
|
44
17
|
|
|
45
|
-
return
|
|
18
|
+
return validateNumber(parsedOptions)(
|
|
19
|
+
key,
|
|
20
|
+
newValue,
|
|
21
|
+
oldValue,
|
|
22
|
+
changes,
|
|
23
|
+
content
|
|
24
|
+
);
|
|
46
25
|
};
|
|
47
26
|
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import jexl from "jexl";
|
|
2
|
+
|
|
3
|
+
const TRANSFORMS = [
|
|
4
|
+
"answer",
|
|
5
|
+
"mapby",
|
|
6
|
+
"debug",
|
|
7
|
+
"min",
|
|
8
|
+
"max",
|
|
9
|
+
"round",
|
|
10
|
+
"ceil",
|
|
11
|
+
"floor",
|
|
12
|
+
"sum",
|
|
13
|
+
"avg",
|
|
14
|
+
"stringify",
|
|
15
|
+
];
|
|
16
|
+
const BINARY_OPS = ["intersects"];
|
|
17
|
+
|
|
18
|
+
const documentJexl = new jexl.Jexl();
|
|
19
|
+
|
|
20
|
+
const noop = () => {};
|
|
21
|
+
|
|
22
|
+
TRANSFORMS.forEach((transform) => documentJexl.addTransform(transform, noop));
|
|
23
|
+
BINARY_OPS.forEach((binaryOp) => documentJexl.addBinaryOp(binaryOp, 0, noop));
|
|
24
|
+
|
|
25
|
+
function parseError(error) {
|
|
26
|
+
const str = String(error)
|
|
27
|
+
.replace(/^Error:/, "") // Remove "Error:" prefix
|
|
28
|
+
.replace(/(of expression):.*$/, (_, match) => match) // Remove everything after "of expression"
|
|
29
|
+
.replace(/in expression:.*$/, "") // Remove "in expression: [expression]"
|
|
30
|
+
.replace(/\.$/g, "") // Remove trailing dot
|
|
31
|
+
.replace(/\s\s+/g, " ") // Remove double whitespace chars
|
|
32
|
+
.trim();
|
|
33
|
+
|
|
34
|
+
return str;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export default function validateJexl() {
|
|
38
|
+
return (key, newValue) => {
|
|
39
|
+
try {
|
|
40
|
+
if (newValue) {
|
|
41
|
+
documentJexl.evalSync(newValue);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return true;
|
|
45
|
+
} catch (error) {
|
|
46
|
+
return parseError(error);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
package/config/environment.js
CHANGED
package/index.js
CHANGED
|
@@ -11,8 +11,10 @@ module.exports = buildEngine({
|
|
|
11
11
|
},
|
|
12
12
|
|
|
13
13
|
included(...args) {
|
|
14
|
-
this.
|
|
14
|
+
const app = this._findHost(this);
|
|
15
|
+
|
|
16
|
+
app.options["ember-validated-form"] = { theme: "uikit" };
|
|
15
17
|
|
|
16
|
-
this.
|
|
18
|
+
this._super.included.apply(this, args);
|
|
17
19
|
},
|
|
18
20
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@projectcaluma/ember-form-builder",
|
|
3
|
-
"version": "11.0.0
|
|
3
|
+
"version": "11.0.0",
|
|
4
4
|
"description": "Ember engine for building Caluma forms.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-addon",
|
|
@@ -10,84 +10,94 @@
|
|
|
10
10
|
"homepage": "https://docs.caluma.io/ember-caluma",
|
|
11
11
|
"repository": "github:projectcaluma/ember-caluma",
|
|
12
12
|
"scripts": {
|
|
13
|
-
"test": "npm
|
|
13
|
+
"test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"",
|
|
14
14
|
"test:ember": "ember test",
|
|
15
15
|
"test:ember-compatibility": "ember try:each"
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
|
-
"ember-engines": ">= 0.8"
|
|
18
|
+
"ember-engines": ">= 0.8",
|
|
19
|
+
"ember-source": "^3.28.0 || ^4.0.0"
|
|
19
20
|
},
|
|
20
21
|
"dependencies": {
|
|
21
|
-
"@ember/
|
|
22
|
-
"@
|
|
23
|
-
"@
|
|
24
|
-
"@
|
|
25
|
-
"@
|
|
26
|
-
"
|
|
27
|
-
"ember-
|
|
28
|
-
"ember-
|
|
29
|
-
"
|
|
30
|
-
"ember-
|
|
22
|
+
"@ember/legacy-built-in-components": "^0.4.1",
|
|
23
|
+
"@ember/render-modifiers": "^2.0.5",
|
|
24
|
+
"@ember/string": "^3.0.1",
|
|
25
|
+
"@embroider/macros": "^1.10.0",
|
|
26
|
+
"@glimmer/component": "^1.1.2",
|
|
27
|
+
"@glimmer/tracking": "^1.1.2",
|
|
28
|
+
"@projectcaluma/ember-core": "^11.0.0",
|
|
29
|
+
"@projectcaluma/ember-form": "^11.0.0",
|
|
30
|
+
"codejar": "^3.6.0",
|
|
31
|
+
"ember-apollo-client": "~4.0.2",
|
|
32
|
+
"ember-auto-import": "^2.6.0",
|
|
33
|
+
"ember-changeset": "^4.1.2",
|
|
34
|
+
"ember-changeset-validations": "^4.1.1",
|
|
31
35
|
"ember-cli-babel": "^7.26.11",
|
|
32
|
-
"ember-cli-htmlbars": "^6.0
|
|
36
|
+
"ember-cli-htmlbars": "^6.2.0",
|
|
33
37
|
"ember-composable-helpers": "^5.0.0",
|
|
34
|
-
"ember-concurrency": "^2.
|
|
38
|
+
"ember-concurrency": "^2.3.7",
|
|
35
39
|
"ember-engines-router-service": "^0.3.0",
|
|
36
|
-
"ember-fetch": "^8.1.
|
|
40
|
+
"ember-fetch": "^8.1.2",
|
|
41
|
+
"ember-flatpickr": "^3.2.3",
|
|
37
42
|
"ember-intl": "^5.7.2",
|
|
38
|
-
"ember-math-helpers": "^
|
|
39
|
-
"ember-
|
|
40
|
-
"ember-
|
|
41
|
-
"ember-resources": "^4.3.3",
|
|
43
|
+
"ember-math-helpers": "^3.0.0",
|
|
44
|
+
"ember-power-select": "^6.0.1",
|
|
45
|
+
"ember-resources": "^5.6.2",
|
|
42
46
|
"ember-test-selectors": "^6.0.0",
|
|
43
|
-
"ember-uikit": "^
|
|
44
|
-
"ember-validated-form": "^
|
|
47
|
+
"ember-uikit": "^6.1.1",
|
|
48
|
+
"ember-validated-form": "^6.1.2",
|
|
45
49
|
"graphql": "^15.8.0",
|
|
46
50
|
"graphql-tag": "^2.12.6",
|
|
47
|
-
"
|
|
48
|
-
"
|
|
51
|
+
"highlight.js": "^11.7.0",
|
|
52
|
+
"highlightjs-jexl": "^0.0.5",
|
|
53
|
+
"jexl": "^2.3.0"
|
|
49
54
|
},
|
|
50
|
-
"//":
|
|
55
|
+
"//": [
|
|
56
|
+
"TODO: remove obsolete dependency to `ember-data` which is only necessary",
|
|
57
|
+
"because @embroider/macros `dependencySatisfies` still resolves to `true`",
|
|
58
|
+
"even if the dependency is only present in the workspace (because of the",
|
|
59
|
+
"docs app) but not as direct dependency of the package."
|
|
60
|
+
],
|
|
51
61
|
"devDependencies": {
|
|
52
62
|
"@ember/optional-features": "2.0.0",
|
|
53
|
-
"@ember/test-helpers": "2.
|
|
54
|
-
"@embroider/test-setup": "1.
|
|
55
|
-
"@faker-js/faker": "6.0
|
|
56
|
-
"@projectcaluma/ember-testing": "11.0.0
|
|
63
|
+
"@ember/test-helpers": "2.7.0",
|
|
64
|
+
"@embroider/test-setup": "2.1.1",
|
|
65
|
+
"@faker-js/faker": "7.6.0",
|
|
66
|
+
"@projectcaluma/ember-testing": "11.0.0",
|
|
57
67
|
"broccoli-asset-rev": "3.0.0",
|
|
58
|
-
"
|
|
59
|
-
"ember-
|
|
60
|
-
"ember-cli
|
|
61
|
-
"ember-cli-
|
|
68
|
+
"concurrently": "7.6.0",
|
|
69
|
+
"ember-autoresize-modifier": "^0.7.0",
|
|
70
|
+
"ember-cli": "4.9.2",
|
|
71
|
+
"ember-cli-code-coverage": "2.0.0",
|
|
72
|
+
"ember-cli-dependency-checker": "3.3.1",
|
|
62
73
|
"ember-cli-inject-live-reload": "2.1.0",
|
|
63
|
-
"ember-cli-mirage": "
|
|
74
|
+
"ember-cli-mirage": "3.0.0-alpha.3",
|
|
64
75
|
"ember-cli-sri": "2.1.1",
|
|
65
76
|
"ember-cli-terser": "4.0.2",
|
|
66
|
-
"ember-data": "
|
|
67
|
-
"ember-
|
|
68
|
-
"ember-engines": "0.8.20",
|
|
69
|
-
"ember-export-application-global": "2.0.1",
|
|
77
|
+
"ember-data": "4.7.3",
|
|
78
|
+
"ember-engines": "0.8.23",
|
|
70
79
|
"ember-load-initializers": "2.1.2",
|
|
71
|
-
"ember-
|
|
72
|
-
"ember-
|
|
73
|
-
"ember-
|
|
74
|
-
"ember-source": "3.28.8",
|
|
80
|
+
"ember-qunit": "6.1.1",
|
|
81
|
+
"ember-resolver": "8.1.0",
|
|
82
|
+
"ember-source": "4.10.0",
|
|
75
83
|
"ember-source-channel-url": "3.0.0",
|
|
76
84
|
"ember-try": "2.0.0",
|
|
77
85
|
"loader.js": "4.7.0",
|
|
78
|
-
"miragejs": "0.1.
|
|
79
|
-
"
|
|
80
|
-
"qunit": "2.18.0",
|
|
86
|
+
"miragejs": "0.1.47",
|
|
87
|
+
"qunit": "2.19.4",
|
|
81
88
|
"qunit-dom": "2.0.0",
|
|
82
|
-
"webpack": "5.
|
|
89
|
+
"webpack": "5.75.0"
|
|
83
90
|
},
|
|
84
91
|
"engines": {
|
|
85
|
-
"node": "
|
|
92
|
+
"node": "14.* || 16.* || >= 18"
|
|
86
93
|
},
|
|
87
94
|
"ember": {
|
|
88
95
|
"edition": "octane"
|
|
89
96
|
},
|
|
90
97
|
"ember-addon": {
|
|
91
|
-
"configPath": "tests/dummy/config"
|
|
98
|
+
"configPath": "tests/dummy/config",
|
|
99
|
+
"before": [
|
|
100
|
+
"ember-validated-form"
|
|
101
|
+
]
|
|
92
102
|
}
|
|
93
103
|
}
|