@projectcaluma/ember-form-builder 11.0.0-beta.1 → 11.0.0-beta.12

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 (57) hide show
  1. package/CHANGELOG.md +1181 -0
  2. package/addon/components/cfb-code-editor.hbs +2 -1
  3. package/addon/components/cfb-code-editor.js +59 -11
  4. package/addon/components/cfb-form-editor/general.hbs +2 -4
  5. package/addon/components/cfb-form-editor/general.js +5 -7
  6. package/addon/components/cfb-form-editor/question/options.hbs +1 -1
  7. package/addon/components/cfb-form-editor/question/validation.hbs +3 -2
  8. package/addon/components/cfb-form-editor/question/validation.js +17 -13
  9. package/addon/components/cfb-form-editor/question-list/item.hbs +4 -4
  10. package/addon/components/cfb-form-editor/question-list/item.js +2 -2
  11. package/addon/components/cfb-form-editor/question-list.hbs +6 -6
  12. package/addon/components/cfb-form-editor/question-list.js +11 -6
  13. package/addon/components/cfb-form-editor/question.hbs +31 -15
  14. package/addon/components/cfb-form-editor/question.js +44 -20
  15. package/addon/components/cfb-form-editor.hbs +5 -5
  16. package/addon/components/cfb-form-list/item.hbs +1 -1
  17. package/addon/components/cfb-form-list.hbs +9 -9
  18. package/addon/components/cfb-form-list.js +44 -11
  19. package/addon/components/cfb-toggle-switch.hbs +1 -1
  20. package/addon/controllers/index.js +6 -0
  21. package/addon/engine.js +8 -11
  22. package/addon/gql/fragments/field.graphql +12 -0
  23. package/addon/gql/mutations/save-calculated-float-question.graphql +1 -0
  24. package/addon/gql/mutations/save-choice-question.graphql +1 -0
  25. package/addon/gql/mutations/save-date-question.graphql +3 -0
  26. package/addon/gql/mutations/save-dynamic-choice-question.graphql +1 -0
  27. package/addon/gql/mutations/save-dynamic-multiple-choice-question.graphql +1 -0
  28. package/addon/gql/mutations/save-file-question.graphql +3 -0
  29. package/addon/gql/mutations/save-float-question.graphql +1 -0
  30. package/addon/gql/mutations/save-integer-question.graphql +1 -0
  31. package/addon/gql/mutations/save-multiple-choice-question.graphql +1 -0
  32. package/addon/gql/mutations/save-table-question.graphql +1 -0
  33. package/addon/gql/mutations/save-text-question.graphql +1 -0
  34. package/addon/gql/mutations/save-textarea-question.graphql +1 -0
  35. package/addon/gql/queries/all-format-validators.graphql +10 -0
  36. package/addon/gql/queries/form-editor-question.graphql +28 -0
  37. package/addon/instance-initializers/form-builder-widget-overrides.js +15 -0
  38. package/addon/modifiers/pikaday.js +2 -0
  39. package/addon/templates/edit/questions/edit.hbs +1 -1
  40. package/addon/templates/edit/questions/new.hbs +1 -4
  41. package/addon/templates/edit.hbs +5 -5
  42. package/addon/templates/index.hbs +8 -1
  43. package/addon/templates/new.hbs +1 -1
  44. package/addon/utils/and.js +47 -0
  45. package/addon/utils/or.js +40 -0
  46. package/addon/validations/option.js +1 -1
  47. package/addon/validations/question.js +8 -2
  48. package/addon/validators/slug.js +1 -1
  49. package/app/instance-initializers/form-builder-widget-overrides.js +4 -0
  50. package/app/styles/@projectcaluma/ember-form-builder.scss +1 -1
  51. package/app/utils/and.js +1 -0
  52. package/app/utils/or.js +1 -0
  53. package/index.js +4 -8
  54. package/package.json +39 -30
  55. package/translations/de.yaml +6 -5
  56. package/translations/en.yaml +3 -2
  57. package/translations/fr.yaml +154 -1
@@ -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,21 +31,38 @@ 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
35
38
  }
39
+ formatValidators {
40
+ edges {
41
+ node {
42
+ slug
43
+ }
44
+ }
45
+ }
36
46
  }
37
47
  ... on TextareaQuestion {
38
48
  minLength
39
49
  maxLength
40
50
  placeholder
51
+ formatValidators {
52
+ edges {
53
+ node {
54
+ slug
55
+ }
56
+ }
57
+ }
58
+ hintText
41
59
  defaultAnswer {
42
60
  id
43
61
  stringValue: value
44
62
  }
45
63
  }
46
64
  ... on DateQuestion {
65
+ hintText
47
66
  defaultAnswer {
48
67
  id
49
68
  dateValue: value
@@ -60,6 +79,7 @@ query FormEditorQuestion($slug: String!) {
60
79
  }
61
80
  }
62
81
  }
82
+ hintText
63
83
  defaultAnswer {
64
84
  id
65
85
  listValue: value
@@ -76,6 +96,7 @@ query FormEditorQuestion($slug: String!) {
76
96
  }
77
97
  }
78
98
  }
99
+ hintText
79
100
  defaultAnswer {
80
101
  id
81
102
  stringValue: value
@@ -83,9 +104,11 @@ query FormEditorQuestion($slug: String!) {
83
104
  }
84
105
  ... on DynamicMultipleChoiceQuestion {
85
106
  dataSource
107
+ hintText
86
108
  }
87
109
  ... on DynamicChoiceQuestion {
88
110
  dataSource
111
+ hintText
89
112
  }
90
113
  ... on TableQuestion {
91
114
  rowForm {
@@ -101,6 +124,7 @@ query FormEditorQuestion($slug: String!) {
101
124
  }
102
125
  }
103
126
  }
127
+ hintText
104
128
  defaultAnswer {
105
129
  id
106
130
  tableValue: value {
@@ -137,6 +161,10 @@ query FormEditorQuestion($slug: String!) {
137
161
  }
138
162
  ... on CalculatedFloatQuestion {
139
163
  calcExpression
164
+ hintText
165
+ }
166
+ ... on FileQuestion {
167
+ hintText
140
168
  }
141
169
  ... on ActionButtonQuestion {
142
170
  action
@@ -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
+ };
@@ -0,0 +1,2 @@
1
+ import "ember-pikaday/pikaday.css";
2
+ export { default } from "ember-pikaday/modifiers/pikaday";
@@ -1,5 +1,5 @@
1
1
  <CfbFormEditor::Question
2
2
  @slug={{@model.questionSlug}}
3
3
  @form={{@model.formSlug}}
4
- @on-after-submit={{this.afterSubmit}}
4
+ @onAfterSubmit={{this.afterSubmit}}
5
5
  />
@@ -1,4 +1 @@
1
- <CfbFormEditor::Question
2
- @form={{@model}}
3
- @on-after-submit={{this.afterSubmit}}
4
- />
1
+ <CfbFormEditor::Question @form={{@model}} @onAfterSubmit={{this.afterSubmit}} />
@@ -1,10 +1,10 @@
1
1
  <CfbFormEditor
2
2
  @slug={{@model}}
3
- @on-edit-question={{this.editQuestion}}
4
- @on-create-question={{this.createQuestion}}
5
- @on-after-add-question={{this.editQuestion}}
6
- @on-after-remove-question={{this.afterRemoveQuestion}}
7
- @on-click-form={{this.clickForm}}
3
+ @onEditQuestion={{this.editQuestion}}
4
+ @onCreateQuestion={{this.createQuestion}}
5
+ @onAfterAddQuestion={{this.editQuestion}}
6
+ @onAfterRemoveQuestion={{this.afterRemoveQuestion}}
7
+ @onClickForm={{this.clickForm}}
8
8
  >
9
9
  {{outlet}}
10
10
  </CfbFormEditor>
@@ -1 +1,8 @@
1
- <CfbFormList @on-new-form={{this.newForm}} @on-edit-form={{this.editForm}} />
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
+ />
@@ -1,6 +1,6 @@
1
1
  <CfbFormEditor @slug={{@model}}>
2
2
  <CfbFormEditor::General
3
3
  @slug={{@model}}
4
- @on-after-submit={{this.afterSubmit}}
4
+ @onAfterSubmit={{this.afterSubmit}}
5
5
  />
6
6
  </CfbFormEditor>
@@ -0,0 +1,47 @@
1
+ import { typeOf } from "@ember/utils";
2
+ import { isPromise } from "validated-changeset";
3
+
4
+ function notTrue(value) {
5
+ return typeOf(value) !== "boolean" || !value;
6
+ }
7
+
8
+ function handleResult(result) {
9
+ if (notTrue(result)) throw result;
10
+ return true;
11
+ }
12
+
13
+ /**
14
+ * Accepts an array of ember-changeset-validations validation functions.
15
+ *
16
+ * Copied and updated from nucleartide/ember-changeset-hofs
17
+ * @module and
18
+ */
19
+ export default function and(...validators) {
20
+ return (key, newValue, oldValue, changes, object) => {
21
+ for (let i = 0; i < validators.length; i++) {
22
+ const validation = validators[i](
23
+ key,
24
+ newValue,
25
+ oldValue,
26
+ changes,
27
+ object
28
+ );
29
+
30
+ if (isPromise(validation)) {
31
+ let promise = validation.then(handleResult);
32
+
33
+ for (let j = i + 1; j < validators.length; j++) {
34
+ promise = promise
35
+ .then(() => validators[j](key, newValue, oldValue, changes, object))
36
+ .then(handleResult);
37
+ }
38
+
39
+ return promise.catch((err) => err);
40
+ }
41
+
42
+ if (notTrue(validation)) return validation;
43
+ }
44
+
45
+ return true;
46
+ };
47
+ }
@@ -0,0 +1,40 @@
1
+ import { isPromise } from "validated-changeset";
2
+
3
+ function isTrue(value) {
4
+ return value === true;
5
+ }
6
+
7
+ function handleResult(result) {
8
+ if (isTrue(result)) throw true;
9
+ return result;
10
+ }
11
+
12
+ /**
13
+ * Copied and updated from nucleartide/ember-changeset-hofs
14
+ * @module or
15
+ */
16
+ export default function or(...validators) {
17
+ return (key, newValue, oldValue, changes, object) => {
18
+ let validation;
19
+
20
+ for (let i = 0; i < validators.length; i++) {
21
+ validation = validators[i](key, newValue, oldValue, changes, object);
22
+
23
+ if (isPromise(validation)) {
24
+ let promise = validation.then(handleResult);
25
+
26
+ for (let j = i + 1; j < validators.length; j++) {
27
+ promise = promise
28
+ .then(() => validators[j](key, newValue, oldValue, changes, object))
29
+ .then(handleResult);
30
+ }
31
+
32
+ return promise.catch((err) => err);
33
+ }
34
+
35
+ if (isTrue(validation)) return true;
36
+ }
37
+
38
+ return validation;
39
+ };
40
+ }
@@ -3,7 +3,7 @@ import {
3
3
  validateLength,
4
4
  } from "ember-changeset-validations/validators";
5
5
 
6
- import and from "@projectcaluma/ember-core/utils/and";
6
+ import and from "@projectcaluma/ember-form-builder/utils/and";
7
7
  import validateSlug from "@projectcaluma/ember-form-builder/validators/slug";
8
8
 
9
9
  export default {
@@ -7,8 +7,8 @@ import {
7
7
  import validateGtLt from "../validators/gt-lt";
8
8
  import validateOptions from "../validators/options";
9
9
 
10
- import and from "@projectcaluma/ember-core/utils/and";
11
- import or from "@projectcaluma/ember-core/utils/or";
10
+ import and from "@projectcaluma/ember-form-builder/utils/and";
11
+ import or from "@projectcaluma/ember-form-builder/utils/or";
12
12
  import validateSlug from "@projectcaluma/ember-form-builder/validators/slug";
13
13
  import validateType from "@projectcaluma/ember-form-builder/validators/type";
14
14
 
@@ -16,6 +16,12 @@ export default {
16
16
  label: and(validatePresence(true), validateLength({ max: 1024 })),
17
17
  slug: validateSlug(),
18
18
 
19
+ hintText: or(
20
+ validateType("FormQuestion", true),
21
+ validateType("StaticQuestion", true),
22
+ validateType("FileQuestion", true),
23
+ validateLength({ max: 1024, allowBlank: true })
24
+ ),
19
25
  integerMinValue: or(
20
26
  validateType("IntegerQuestion", false),
21
27
  and(
@@ -4,7 +4,7 @@ import {
4
4
  validateFormat,
5
5
  } from "ember-changeset-validations/validators";
6
6
 
7
- import and from "@projectcaluma/ember-core/utils/and";
7
+ import and from "@projectcaluma/ember-form-builder/utils/and";
8
8
 
9
9
  const validateSlug = () =>
10
10
  and(
@@ -0,0 +1,4 @@
1
+ export {
2
+ default,
3
+ initialize,
4
+ } from "@projectcaluma/ember-form-builder/instance-initializers/form-builder-widget-overrides";
@@ -22,7 +22,7 @@
22
22
  .cfb-code-editor {
23
23
  font-family: $base-code-font-family;
24
24
  letter-spacing: normal;
25
- height: 70px;
25
+ min-height: 70px;
26
26
  line-height: 16px;
27
27
  tab-size: 4;
28
28
  }
@@ -0,0 +1 @@
1
+ export { default } from "@projectcaluma/ember-form-builder/utils/and";
@@ -0,0 +1 @@
1
+ export { default } from "@projectcaluma/ember-form-builder/utils/or";
package/index.js CHANGED
@@ -1,16 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  // eslint-disable-next-line node/no-unpublished-require
4
- const EngineAddon = require("ember-engines/lib/engine-addon");
4
+ const { buildEngine } = require("ember-engines/lib/engine-addon");
5
5
 
6
- /* eslint-disable ember/avoid-leaking-state-in-ember-objects */
7
- module.exports = EngineAddon.extend({
6
+ module.exports = buildEngine({
8
7
  name: require("./package.json").name,
9
- lazyLoading: false,
10
8
 
11
- included(...args) {
12
- this._super.included.apply(this, args);
13
-
14
- this.import("node_modules/prismjs/themes/prism.css");
9
+ lazyLoading: {
10
+ enabled: false,
15
11
  },
16
12
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectcaluma/ember-form-builder",
3
- "version": "11.0.0-beta.1",
3
+ "version": "11.0.0-beta.12",
4
4
  "description": "Ember engine for building Caluma forms.",
5
5
  "keywords": [
6
6
  "ember-addon",
@@ -14,50 +14,59 @@
14
14
  "test:ember": "ember test",
15
15
  "test:ember-compatibility": "ember try:each"
16
16
  },
17
+ "peerDependencies": {
18
+ "ember-engines": ">= 0.8"
19
+ },
17
20
  "dependencies": {
18
- "@ember/render-modifiers": "^2.0.2",
19
- "@glimmer/component": "^1.0.4",
20
- "@glimmer/tracking": "^1.0.4",
21
- "@projectcaluma/ember-core": "^11.0.0-beta.1",
22
- "@projectcaluma/ember-form": "^11.0.0-beta.1",
23
- "codejar": "^3.5.0",
24
- "ember-apollo-client": "^3.2.0",
25
- "ember-auto-import": "^2.2.3",
26
- "ember-changeset": "^3.15.0",
27
- "ember-changeset-validations": "^3.16.0",
21
+ "@ember/render-modifiers": "^2.0.4",
22
+ "@ember/string": "^3.0.0",
23
+ "@embroider/macros": "^1.5.0",
24
+ "@glimmer/component": "^1.1.1",
25
+ "@glimmer/tracking": "^1.1.1",
26
+ "@projectcaluma/ember-core": "^11.0.0-beta.6",
27
+ "@projectcaluma/ember-form": "^11.0.0-beta.17",
28
+ "codejar": "^3.6.0",
29
+ "ember-apollo-client": "^4.0.2",
30
+ "ember-auto-import": "^2.4.1",
31
+ "ember-changeset": "^4.0.0",
32
+ "ember-changeset-validations": "^4.0.0",
28
33
  "ember-cli-babel": "^7.26.11",
29
34
  "ember-cli-htmlbars": "^6.0.1",
30
35
  "ember-composable-helpers": "^5.0.0",
31
- "ember-concurrency": "^2.2.0",
36
+ "ember-concurrency": "^2.2.1",
32
37
  "ember-engines-router-service": "^0.3.0",
33
- "ember-fetch": "^8.0.4",
34
- "ember-math-helpers": "^2.18.0",
35
- "ember-pikaday": "^3.0.0",
36
- "ember-power-select": "^5.0.3",
37
- "ember-resources": "^4.1.3",
38
+ "ember-fetch": "^8.1.1",
39
+ "ember-intl": "^5.7.2",
40
+ "ember-math-helpers": "^2.18.1",
41
+ "ember-pikaday": "^4.0.0",
42
+ "ember-power-select": "^5.0.4",
43
+ "ember-resources": "^4.4.0",
38
44
  "ember-test-selectors": "^6.0.0",
39
- "ember-uikit": "^4.0.0",
40
- "ember-validated-form": "^5.1.1",
45
+ "ember-uikit": "^5.1.1",
46
+ "ember-validated-form": "^5.3.0",
41
47
  "graphql": "^15.8.0",
42
48
  "graphql-tag": "^2.12.6",
43
- "jexl": "^2.3.0",
44
- "moment": "^2.29.1",
45
- "prismjs": "^1.26.0"
49
+ "highlight.js": "^11.5.0",
50
+ "highlightjs-jexl": "^0.0.5",
51
+ "jexl": "^2.3.0"
46
52
  },
53
+ "//": "TODO: remove ember-data when https://github.com/ember-engines/ember-engines/pull/794 is released",
47
54
  "devDependencies": {
48
55
  "@ember/optional-features": "2.0.0",
49
- "@ember/test-helpers": "2.6.0",
50
- "@embroider/test-setup": "0.49.0",
51
- "@projectcaluma/ember-testing": "10.1.0",
56
+ "@ember/test-helpers": "2.7.0",
57
+ "@embroider/test-setup": "1.5.0",
58
+ "@faker-js/faker": "6.1.2",
59
+ "@projectcaluma/ember-testing": "11.0.0-beta.6",
52
60
  "broccoli-asset-rev": "3.0.0",
61
+ "ember-autoresize-modifier": "^0.5.0",
53
62
  "ember-cli": "3.28.5",
54
63
  "ember-cli-code-coverage": "1.0.3",
55
64
  "ember-cli-dependency-checker": "3.2.0",
56
65
  "ember-cli-inject-live-reload": "2.1.0",
57
- "ember-cli-mirage": "2.2.0",
66
+ "ember-cli-mirage": "3.0.0-alpha.2",
58
67
  "ember-cli-sri": "2.1.1",
59
68
  "ember-cli-terser": "4.0.2",
60
- "ember-data": "3.28.7",
69
+ "ember-data": "3.28.9",
61
70
  "ember-disable-prototype-extensions": "1.1.3",
62
71
  "ember-engines": "0.8.20",
63
72
  "ember-export-application-global": "2.0.1",
@@ -68,12 +77,12 @@
68
77
  "ember-source": "3.28.8",
69
78
  "ember-source-channel-url": "3.0.0",
70
79
  "ember-try": "2.0.0",
71
- "faker": "5.5.3",
72
80
  "loader.js": "4.7.0",
81
+ "miragejs": "0.1.43",
73
82
  "npm-run-all": "4.1.5",
74
- "qunit": "2.17.2",
83
+ "qunit": "2.18.1",
75
84
  "qunit-dom": "2.0.0",
76
- "webpack": "5.65.0"
85
+ "webpack": "5.71.0"
77
86
  },
78
87
  "engines": {
79
88
  "node": "12.* || 14.* || >= 16"
@@ -10,7 +10,7 @@ caluma:
10
10
  empty-search: "Keine Resultate gefunden. Passen Sie Ihre Suche an um bessere Resultate zu erhalten."
11
11
 
12
12
  not-found:
13
- title: "Du siehst verloren aus"
13
+ title: "Sie sehen verloren aus"
14
14
  subtitle: "Die angefrage Seite existiert nicht!"
15
15
  home: "Zurück zum Start"
16
16
 
@@ -21,14 +21,13 @@ caluma:
21
21
  isArchived: "Archiviert"
22
22
  widgetOverride: "Spezialelement"
23
23
  isPublished: "Publiziert"
24
- archived: "Archivierte"
25
24
  draft: "Entwurf"
26
- active: "Aktive"
25
+ active: "Aktiv"
27
26
  all: "Alle"
28
27
 
29
28
  allForms: "Alle Formulare"
30
29
  new: "Neues Formular"
31
- empty: "Wir haben keine Formulare gefunden. Klicken Sie den Knopf im der rechten oberen Ecke um ein Formular zu Erstellen!"
30
+ empty: "Wir haben keine Formulare gefunden. Klicken Sie den Knopf im der rechten oberen Ecke um ein Formular zu erstellen!"
32
31
  loadMore: "Mehr Formulare laden"
33
32
 
34
33
  not-found: "Kein Formular mit dem Slug '{slug}' gefunden"
@@ -52,6 +51,7 @@ caluma:
52
51
  isRequired: "Pflichtfeld"
53
52
  staticContent: "Statischer Inhalt"
54
53
  infoText: "Infotext"
54
+ hintText: "Hinweistext"
55
55
  confirmationText: "Bestätigungstext"
56
56
  placeholder: "Platzhalter"
57
57
  isHidden: "Versteckt (JEXL)"
@@ -63,6 +63,7 @@ caluma:
63
63
  dataSource: "Datenquelle"
64
64
  formatValidators: "Validierung"
65
65
  defaultValue: "Standardwert"
66
+ meta: "Metainformationen"
66
67
 
67
68
  general: "Allgemein"
68
69
  options: "Optionen"
@@ -73,7 +74,7 @@ caluma:
73
74
  max-length: "Maximale Länge"
74
75
  rowForm: "Formular für Tabelleneinträge"
75
76
  subForm: "Formular für Einträge"
76
- choose: "-- bitte wählen --"
77
+ no-selection: "Keine Auswahl"
77
78
  search-placeholder: "Hier tippen um zu suchen"
78
79
  search-empty: "Keine Formulare gefunden"
79
80
  columnsToDisplay: "Spalten zur Anzeige im Formular"
@@ -21,7 +21,6 @@ caluma:
21
21
  isArchived: "Archived"
22
22
  widgetOverride: "Custom widget"
23
23
  isPublished: "Published"
24
- archived: "Archived"
25
24
  draft: "Draft"
26
25
  active: "Active"
27
26
  all: "All"
@@ -52,6 +51,7 @@ caluma:
52
51
  isRequired: "Required"
53
52
  staticContent: "Static content"
54
53
  infoText: "Information text"
54
+ hintText: "Hint text"
55
55
  confirmationText: "Confirmation text"
56
56
  placeholder: "Placeholder"
57
57
  isHidden: "Hidden (JEXL)"
@@ -63,6 +63,7 @@ caluma:
63
63
  dataSource: "Data source"
64
64
  formatValidators: "Validation"
65
65
  defaultValue: "Default value"
66
+ meta: "Meta information"
66
67
 
67
68
  general: "General"
68
69
  options: "Options"
@@ -73,7 +74,7 @@ caluma:
73
74
  max-length: "Maximum length"
74
75
  rowForm: "Form to use for rows"
75
76
  subForm: "Form to use for entries"
76
- choose: "-- please choose --"
77
+ no-selection: "No selection"
77
78
  search-placeholder: "Type here to search forms"
78
79
  search-empty: "Search didn't match any forms"
79
80
  columnsToDisplay: "Columns to be shown in the form"