diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 550844db9..b3984c1c7 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -4,7 +4,7 @@ Please include a summary of the change and which issue is fixed. Please provide Fixes # (issue) -## Depedencies +## Dependencies Does this PR depend on other PRs of the `ember-caluma` or `caluma` repository? diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 3c7426903..31c75a115 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -146,8 +146,10 @@ jobs: fail-fast: false matrix: scenario: - - ember-lts-5.4 - ember-lts-4.12 + - ember-lts-5.4 + - ember-lts-5.8 + - ember-lts-5.12 - ember-release - embroider-safe - embroider-optimized diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 000000000..8fdd079dc --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,20 @@ +"use strict"; + +module.exports = { + plugins: ["prettier-plugin-ember-template-tag"], + overrides: [ + { + files: "*.{js,gjs,ts,gts,mjs,mts,cjs,cts}", + options: { + singleQuote: false, + }, + }, + { + files: "*.{gjs,gts}", + options: { + singleQuote: false, + templateSingleQuote: false, + }, + }, + ], +}; diff --git a/config/ember-try.js b/config/ember-try.js index ffc665798..4f0c2a521 100644 --- a/config/ember-try.js +++ b/config/ember-try.js @@ -24,6 +24,22 @@ module.exports = async function () { }, }, }, + { + name: "ember-lts-5.8", + npm: { + devDependencies: { + "ember-source": "~5.8.0", + }, + }, + }, + { + name: "ember-lts-5.12", + npm: { + devDependencies: { + "ember-source": "~5.12.0", + }, + }, + }, { name: "ember-release", npm: { diff --git a/package.json b/package.json index 23b7a702a..4efa7f0a7 100644 --- a/package.json +++ b/package.json @@ -1,25 +1,25 @@ { "name": "root", - "version": "13.1.5", + "version": "14.1.1", "private": true, "homepage": "https://docs.caluma.io/ember-caluma", "repository": "github:projectcaluma/ember-caluma", "scripts": { "start": "pnpm --filter ember-caluma start", "start-proxy": "pnpm --filter ember-caluma start-proxy", - "lint": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\"", - "lint:fix": "concurrently \"npm:lint:*:fix\" --names \"fix:\"", + "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\" --prefixColors auto", + "lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\" --prefixColors auto", "lint:hbs": "ember-template-lint .", "lint:hbs:fix": "ember-template-lint . --fix", "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", "lint:css": "stylelint \"**/*.scss\"", - "lint:css:fix": "concurrently \"npm:lint:css -- --fix\"", + "lint:css:fix": "concurrently \"pnpm:lint:css -- --fix\" --prefixColors auto", "lint:prettier": "prettier -c \"**/*.{graphql,json,md,yaml}\"", "lint:prettier:fix": "prettier -wl \"**/*.{graphql,json,md,yaml}\"", "update-possible-types": "node bin/fetch-possible-types.mjs && prettier --write packages/core/addon/-private/possible-types.js", "update-schema": "get-graphql-schema http://localhost:8000/graphql > packages/testing/addon/mirage-graphql/schema.graphql && prettier --write packages/testing/addon/mirage-graphql/schema.graphql", - "update-caluma": "concurrently \"npm:update-possible-types\" \"npm:update-schema\"", + "update-caluma": "concurrently \"pnpm:update-possible-types\" \"pnpm:update-schema\" --prefixColors auto", "prepare": "husky", "preinstall": "npx only-allow pnpm", "bump-version": "node bin/bump-version.mjs" @@ -38,40 +38,43 @@ "devDependencies": { "@adfinis/eslint-config": "2.1.1", "@babel/core": "7.26.0", - "@babel/eslint-parser": "7.25.9", + "@babel/eslint-parser": "7.26.5", "@babel/plugin-proposal-decorators": "7.25.9", - "@commitlint/cli": "19.6.0", + "@commitlint/cli": "19.6.1", "@commitlint/config-conventional": "19.6.0", + "@eslint/js": "9.18.0", "@graphql-eslint/eslint-plugin": "3.20.1", - "@semantic-release/commit-analyzer": "13.0.0", + "@semantic-release/commit-analyzer": "13.0.1", "@semantic-release/exec": "6.0.3", "@semantic-release/git": "10.0.1", "@semantic-release/github": "11.0.1", - "@semantic-release/release-notes-generator": "14.0.1", - "concurrently": "9.1.0", + "@semantic-release/release-notes-generator": "14.0.3", + "concurrently": "9.1.2", "ember-template-lint": "6.0.0", "ember-template-lint-plugin-prettier": "5.0.0", "eslint": "8.57.1", - "eslint-config-prettier": "9.1.0", + "eslint-config-prettier": "10.0.1", "eslint-plugin-ember": "12.3.3", "eslint-plugin-import": "2.31.0", - "eslint-plugin-n": "17.14.0", - "eslint-plugin-prettier": "5.2.1", + "eslint-plugin-n": "17.15.1", + "eslint-plugin-prettier": "5.2.3", "eslint-plugin-qunit": "8.1.2", "get-graphql-schema": "2.1.2", - "glob": "11.0.0", - "graphql": "15.9.0", + "glob": "11.0.1", + "globals": "15.14.0", + "graphql": "15.10.1", "husky": "9.1.7", - "lint-staged": "15.2.10", + "lint-staged": "15.4.2", "node-fetch": "3.3.2", - "prettier": "3.3.3", - "semantic-release": "24.2.0", - "stylelint": "16.10.0", - "stylelint-config-standard-scss": "13.1.0", + "prettier": "3.4.2", + "prettier-plugin-ember-template-tag": "2.0.4", + "semantic-release": "24.2.1", + "stylelint": "16.13.2", + "stylelint-config-standard-scss": "14.0.0", "stylelint-prettier": "5.0.2", - "stylelint-scss": "6.10.0" + "stylelint-scss": "6.10.1" }, - "packageManager": "pnpm@9.14.2", + "packageManager": "pnpm@9.15.4", "pnpm": { "peerDependencyRules": { "ignoreMissing": [ @@ -79,7 +82,7 @@ ], "allowedVersions": { "graphql": "^15.9.0", - "ember-source": "^5.0.0", + "ember-source": "^6.0.0", "ember-resources>ember-concurrency": "^4.0.0" } } diff --git a/packages/-ember-caluma/config/ember-cli-update.json b/packages/-ember-caluma/config/ember-cli-update.json index caaf896fd..5b04dfc61 100644 --- a/packages/-ember-caluma/config/ember-cli-update.json +++ b/packages/-ember-caluma/config/ember-cli-update.json @@ -3,7 +3,7 @@ "packages": [ { "name": "ember-cli", - "version": "5.11.0", + "version": "6.1.0", "blueprints": [ { "name": "app", diff --git a/packages/-ember-caluma/mirage/scenarios/default.js b/packages/-ember-caluma/mirage/scenarios/default.js index 9df92ff37..ee8e31778 100644 --- a/packages/-ember-caluma/mirage/scenarios/default.js +++ b/packages/-ember-caluma/mirage/scenarios/default.js @@ -200,6 +200,7 @@ export default function (server) { workflowId: server.create("workflow").id, workItemIds: [ server.create("work-item", { + status: "READY", taskId: server.create("task", { type: "COMPLETE_WORKFLOW_FORM", }).id, diff --git a/packages/-ember-caluma/package.json b/packages/-ember-caluma/package.json index 386fd8480..b24ec8d6d 100644 --- a/packages/-ember-caluma/package.json +++ b/packages/-ember-caluma/package.json @@ -1,6 +1,6 @@ { "name": "ember-caluma", - "version": "13.1.5", + "version": "14.1.1", "private": true, "description": "Interactive documentation of ember-caluma", "license": "LGPL-3.0-or-later", @@ -17,9 +17,8 @@ "@ember/optional-features": "2.2.0", "@ember/string": "4.0.0", "@ember/test-helpers": "4.0.4", - "@ember/test-waiters": "3.1.0", - "@embroider/macros": "1.16.9", - "@faker-js/faker": "9.2.0", + "@embroider/macros": "1.16.10", + "@faker-js/faker": "9.4.0", "@glimmer/component": "1.1.2", "@glimmer/tracking": "1.1.2", "@projectcaluma/ember-analytics": "workspace:*", @@ -36,8 +35,8 @@ "ember-can": "7.0.0", "ember-changeset": "4.1.2", "ember-changeset-validations": "4.1.1", - "ember-cli": "5.11.0", - "ember-cli-addon-docs": "7.2.2", + "ember-cli": "6.1.0", + "ember-cli-addon-docs": "8.0.8", "ember-cli-babel": "8.2.0", "ember-cli-clean-css": "3.0.0", "ember-cli-dependency-checker": "3.3.3", @@ -59,25 +58,26 @@ "ember-engines-router-service": "0.6.0", "ember-fetch": "8.1.2", "ember-flatpickr": "8.0.1", - "ember-intl": "7.0.7", - "ember-load-initializers": "2.1.2", - "ember-math-helpers": "4.0.0", + "ember-intl": "7.1.1", + "ember-load-initializers": "3.0.1", + "ember-math-helpers": "4.2.1", "ember-modifier": "4.2.0", - "ember-power-select": "8.4.0", - "ember-resolver": "12.0.1", - "ember-sortable": "5.2.2", - "ember-source": "5.11.0", + "ember-power-select": "8.6.2", + "ember-resolver": "13.1.0", + "ember-sortable": "5.2.3", + "ember-source": "6.1.0", + "ember-template-imports": "4.2.0", "ember-truth-helpers": "4.0.3", "ember-uikit": "9.1.3", "ember-validated-form": "7.0.1", "flatpickr": "4.6.13", - "graphql": "15.9.0", + "graphql": "15.10.1", "loader.js": "4.7.0", "miragejs": "0.1.48", - "sass": "1.81.0", - "tracked-built-ins": "3.3.0", - "uikit": "3.21.16", - "webpack": "5.96.1" + "sass": "1.83.4", + "tracked-built-ins": "4.0.0", + "uikit": "3.22.0", + "webpack": "5.97.1" }, "ember": { "edition": "octane" diff --git a/packages/analytics/.npmignore b/packages/analytics/.npmignore index 8c9fd977f..8c51744de 100644 --- a/packages/analytics/.npmignore +++ b/packages/analytics/.npmignore @@ -7,8 +7,6 @@ /.ember-cli /.env* /.eslintcache -/.eslintignore -/.eslintrc.js /.git/ /.github/ /.gitignore @@ -21,6 +19,7 @@ /.watchmanconfig /CONTRIBUTING.md /ember-cli-build.js +/eslint.config.mjs /testem.js /tests/ /tsconfig.declarations.json diff --git a/packages/analytics/package.json b/packages/analytics/package.json index 217f3f90a..30decfba6 100644 --- a/packages/analytics/package.json +++ b/packages/analytics/package.json @@ -1,6 +1,6 @@ { "name": "@projectcaluma/ember-analytics", - "version": "13.1.5", + "version": "14.1.1", "description": "Ember addon for Caluma analytics.", "keywords": [ "ember-addon", @@ -16,7 +16,7 @@ "dependencies": { "@babel/core": "^7.26.0", "@ember/legacy-built-in-components": "^0.5.0", - "@embroider/macros": "^1.16.9", + "@embroider/macros": "^1.16.10", "@glimmer/component": "^1.1.2", "@glimmer/tracking": "^1.1.2", "@projectcaluma/ember-core": "workspace:^", @@ -31,12 +31,15 @@ "ember-concurrency": "^4.0.2", "ember-engines-router-service": "^0.6.0", "ember-fetch": "^8.1.2", - "ember-intl": "^7.0.7", - "ember-power-select": "^8.4.0", - "ember-sortable": "^5.2.2", + "ember-intl": "^7.1.1", + "ember-load-initializers": "^2.1.2 || ^3.0.1", + "ember-power-select": "^8.6.2", + "ember-resolver": "^12.0.1 || ^13.1.0", + "ember-sortable": "^5.2.3", + "ember-template-imports": "^4.2.0", "ember-uikit": "^9.1.3", "ember-validated-form": "^7.0.1", - "graphql": "^15.9.0", + "graphql": "^15.10.1", "reactiveweb": "^1.3.0", "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz" }, @@ -49,12 +52,11 @@ "devDependencies": { "@ember/optional-features": "2.2.0", "@ember/test-helpers": "4.0.4", - "@ember/test-waiters": "3.1.0", "@embroider/test-setup": "4.0.0", - "@faker-js/faker": "9.2.0", + "@faker-js/faker": "9.4.0", "@projectcaluma/ember-testing": "workspace:*", "broccoli-asset-rev": "3.0.0", - "ember-cli": "5.11.0", + "ember-cli": "6.1.0", "ember-cli-clean-css": "3.0.0", "ember-cli-code-coverage": "3.1.0", "ember-cli-dependency-checker": "3.3.3", @@ -65,19 +67,17 @@ "ember-cli-terser": "4.0.2", "ember-data": "5.3.9", "ember-engines": "0.11.0", - "ember-load-initializers": "2.1.2", "ember-modifier": "4.2.0", - "ember-qunit": "8.1.1", - "ember-resolver": "12.0.1", - "ember-source": "5.11.0", + "ember-qunit": "9.0.1", + "ember-source": "6.1.0", "ember-source-channel-url": "3.0.0", "ember-try": "3.0.0", "loader.js": "4.7.0", - "qunit": "2.22.0", - "qunit-dom": "3.3.0", - "sass": "1.81.0", - "uikit": "3.21.16", - "webpack": "5.96.1" + "qunit": "2.23.1", + "qunit-dom": "3.4.0", + "sass": "1.83.4", + "uikit": "3.22.0", + "webpack": "5.97.1" }, "peerDependency": { "ember-engines": "^0.11.0", diff --git a/packages/analytics/tests/dummy/config/ember-cli-update.json b/packages/analytics/tests/dummy/config/ember-cli-update.json index 00b89c0eb..88b067d37 100644 --- a/packages/analytics/tests/dummy/config/ember-cli-update.json +++ b/packages/analytics/tests/dummy/config/ember-cli-update.json @@ -3,7 +3,7 @@ "packages": [ { "name": "ember-cli", - "version": "5.11.0", + "version": "6.1.0", "blueprints": [ { "name": "addon", diff --git a/packages/analytics/tests/test-helper.js b/packages/analytics/tests/test-helper.js index 0c6e11524..6c19b385e 100644 --- a/packages/analytics/tests/test-helper.js +++ b/packages/analytics/tests/test-helper.js @@ -1,5 +1,6 @@ import { setApplication } from "@ember/test-helpers"; -import { start } from "ember-qunit"; +import { start, setupEmberOnerrorValidation } from "ember-qunit"; +import { loadTests } from "ember-qunit/test-loader"; import * as QUnit from "qunit"; import { setup } from "qunit-dom"; @@ -8,6 +9,8 @@ import config from "dummy/config/environment"; setApplication(Application.create(config.APP)); +setupEmberOnerrorValidation(); +loadTests(); setup(QUnit.assert); start(); diff --git a/packages/core/.npmignore b/packages/core/.npmignore index 8c9fd977f..8c51744de 100644 --- a/packages/core/.npmignore +++ b/packages/core/.npmignore @@ -7,8 +7,6 @@ /.ember-cli /.env* /.eslintcache -/.eslintignore -/.eslintrc.js /.git/ /.github/ /.gitignore @@ -21,6 +19,7 @@ /.watchmanconfig /CONTRIBUTING.md /ember-cli-build.js +/eslint.config.mjs /testem.js /tests/ /tsconfig.declarations.json diff --git a/packages/core/package.json b/packages/core/package.json index 84ba7f566..2d86522bc 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@projectcaluma/ember-core", - "version": "13.1.5", + "version": "14.1.1", "description": "Ember core addon for working with Caluma.", "keywords": [ "ember-addon" @@ -13,10 +13,10 @@ "test:ember-compatibility": "ember try:each" }, "dependencies": { - "@apollo/client": "^3.11.10", + "@apollo/client": "^3.12.5", "@babel/core": "^7.26.0", "@ember/string": "^3.1.1 || ^4.0.0", - "@embroider/macros": "^1.16.9", + "@embroider/macros": "^1.16.10", "@glimmer/tracking": "^1.1.2", "ember-apollo-client": "~4.0.2", "ember-auto-import": "^2.10.0", @@ -25,10 +25,11 @@ "ember-concurrency": "^4.0.2", "ember-fetch": "^8.1.2", "ember-inflector": "^4.0.3 || ^5.0.1", - "ember-intl": "^7.0.7", + "ember-intl": "^7.1.1", "ember-modify-based-class-resource": "^1.1.1", + "ember-template-imports": "^4.2.0", "ember-uikit": "^9.1.3", - "graphql": "^15.9.0", + "graphql": "^15.10.1", "graphql-tag": "^2.12.6", "jexl": "^2.3.0", "lodash.clonedeep": "^4.5.0", @@ -40,11 +41,11 @@ "@ember/test-helpers": "4.0.4", "@embroider/test-setup": "4.0.0", "@embroider/util": "1.13.2", - "@faker-js/faker": "9.2.0", + "@faker-js/faker": "9.4.0", "@glimmer/component": "1.1.2", "@projectcaluma/ember-testing": "workspace:*", "broccoli-asset-rev": "3.0.0", - "ember-cli": "5.11.0", + "ember-cli": "6.1.0", "ember-cli-clean-css": "3.0.0", "ember-cli-code-coverage": "3.1.0", "ember-cli-dependency-checker": "3.3.3", @@ -52,17 +53,17 @@ "ember-cli-mirage": "3.0.4", "ember-cli-sri": "2.1.1", "ember-cli-terser": "4.0.2", - "ember-load-initializers": "2.1.2", - "ember-qunit": "8.1.1", - "ember-resolver": "12.0.1", - "ember-source": "5.11.0", + "ember-load-initializers": "3.0.1", + "ember-qunit": "9.0.1", + "ember-resolver": "13.1.0", + "ember-source": "6.1.0", "ember-source-channel-url": "3.0.0", "ember-try": "3.0.0", "loader.js": "4.7.0", - "qunit": "2.22.0", - "qunit-dom": "3.3.0", - "uikit": "3.21.16", - "webpack": "5.96.1" + "qunit": "2.23.1", + "qunit-dom": "3.4.0", + "uikit": "3.22.0", + "webpack": "5.97.1" }, "peerDependencies": { "ember-data": "*", diff --git a/packages/core/tests/dummy/config/ember-cli-update.json b/packages/core/tests/dummy/config/ember-cli-update.json index 00b89c0eb..88b067d37 100644 --- a/packages/core/tests/dummy/config/ember-cli-update.json +++ b/packages/core/tests/dummy/config/ember-cli-update.json @@ -3,7 +3,7 @@ "packages": [ { "name": "ember-cli", - "version": "5.11.0", + "version": "6.1.0", "blueprints": [ { "name": "addon", diff --git a/packages/core/tests/test-helper.js b/packages/core/tests/test-helper.js index 0c6e11524..6c19b385e 100644 --- a/packages/core/tests/test-helper.js +++ b/packages/core/tests/test-helper.js @@ -1,5 +1,6 @@ import { setApplication } from "@ember/test-helpers"; -import { start } from "ember-qunit"; +import { start, setupEmberOnerrorValidation } from "ember-qunit"; +import { loadTests } from "ember-qunit/test-loader"; import * as QUnit from "qunit"; import { setup } from "qunit-dom"; @@ -8,6 +9,8 @@ import config from "dummy/config/environment"; setApplication(Application.create(config.APP)); +setupEmberOnerrorValidation(); +loadTests(); setup(QUnit.assert); start(); diff --git a/packages/distribution/.npmignore b/packages/distribution/.npmignore index 8c9fd977f..8c51744de 100644 --- a/packages/distribution/.npmignore +++ b/packages/distribution/.npmignore @@ -7,8 +7,6 @@ /.ember-cli /.env* /.eslintcache -/.eslintignore -/.eslintrc.js /.git/ /.github/ /.gitignore @@ -21,6 +19,7 @@ /.watchmanconfig /CONTRIBUTING.md /ember-cli-build.js +/eslint.config.mjs /testem.js /tests/ /tsconfig.declarations.json diff --git a/packages/distribution/addon/components/cd-inquiry-new-form/group-type.hbs b/packages/distribution/addon/components/cd-inquiry-new-form/group-type.hbs index 12cb2df72..aa7473f80 100644 --- a/packages/distribution/addon/components/cd-inquiry-new-form/group-type.hbs +++ b/packages/distribution/addon/components/cd-inquiry-new-form/group-type.hbs @@ -1,23 +1,25 @@ {{! template-lint-disable require-presentational-children }} - - -
- {{t @type.name}} - -
- - -{{#if this.isExpanded}} - {{#each @type.groups as |group|}} - - {{/each}} +{{#if @type.groups.length}} + + +
+ {{t @type.name}} + +
+ + + {{#if this.isExpanded}} + {{#each @type.groups as |group|}} + + {{/each}} + {{/if}} {{/if}} \ No newline at end of file diff --git a/packages/distribution/package.json b/packages/distribution/package.json index 7473019a8..1f2a192fd 100644 --- a/packages/distribution/package.json +++ b/packages/distribution/package.json @@ -1,6 +1,6 @@ { "name": "@projectcaluma/ember-distribution", - "version": "13.1.5", + "version": "14.1.1", "description": "Ember engine for the Caluma distribution module.", "keywords": [ "ember-addon", @@ -17,7 +17,7 @@ "@babel/core": "^7.26.0", "@ember/legacy-built-in-components": "^0.5.0", "@ember/string": "^3.1.1 || ^4.0.0", - "@embroider/macros": "^1.16.9", + "@embroider/macros": "^1.16.10", "@glimmer/component": "^1.1.2", "@glimmer/tracking": "^1.1.2", "@projectcaluma/ember-core": "workspace:^", @@ -32,12 +32,15 @@ "ember-engines-router-service": "^0.6.0", "ember-fetch": "^8.1.2", "ember-flatpickr": "^8.0.1", - "ember-intl": "^7.0.7", + "ember-intl": "^7.1.1", + "ember-load-initializers": "^2.1.2 || ^3.0.1", + "ember-resolver": "^12.0.1 || ^13.1.0", "ember-svg-jar": "^2.6.0", + "ember-template-imports": "^4.2.0", "ember-test-selectors": "^7.0.0", "ember-uikit": "^9.1.3", "flatpickr": "^4.6.13", - "graphql": "^15.9.0", + "graphql": "^15.10.1", "graphql-tag": "^2.12.6", "lodash.merge": "^4.6.2", "luxon": "^3.5.0", @@ -48,10 +51,10 @@ "@ember/optional-features": "2.2.0", "@ember/test-helpers": "4.0.4", "@embroider/test-setup": "4.0.0", - "@faker-js/faker": "9.2.0", + "@faker-js/faker": "9.4.0", "@projectcaluma/ember-testing": "workspace:*", "broccoli-asset-rev": "3.0.0", - "ember-cli": "5.11.0", + "ember-cli": "6.1.0", "ember-cli-clean-css": "3.0.0", "ember-cli-code-coverage": "3.1.0", "ember-cli-dependency-checker": "3.3.3", @@ -61,19 +64,17 @@ "ember-cli-sri": "2.1.1", "ember-cli-terser": "4.0.2", "ember-engines": "0.11.0", - "ember-load-initializers": "2.1.2", - "ember-qunit": "8.1.1", - "ember-resolver": "12.0.1", - "ember-source": "5.11.0", + "ember-qunit": "9.0.1", + "ember-source": "6.1.0", "ember-source-channel-url": "3.0.0", "ember-try": "3.0.0", "loader.js": "4.7.0", "miragejs": "0.1.48", - "qunit": "2.22.0", - "qunit-dom": "3.3.0", - "sass": "1.81.0", - "uikit": "3.21.16", - "webpack": "5.96.1" + "qunit": "2.23.1", + "qunit-dom": "3.4.0", + "sass": "1.83.4", + "uikit": "3.22.0", + "webpack": "5.97.1" }, "peerDependencies": { "ember-engines": "^0.11.0", diff --git a/packages/distribution/tests/dummy/config/ember-cli-update.json b/packages/distribution/tests/dummy/config/ember-cli-update.json index 00b89c0eb..88b067d37 100644 --- a/packages/distribution/tests/dummy/config/ember-cli-update.json +++ b/packages/distribution/tests/dummy/config/ember-cli-update.json @@ -3,7 +3,7 @@ "packages": [ { "name": "ember-cli", - "version": "5.11.0", + "version": "6.1.0", "blueprints": [ { "name": "addon", diff --git a/packages/distribution/tests/integration/components/cd-inquiry-new-form-test.js b/packages/distribution/tests/integration/components/cd-inquiry-new-form-test.js index 8dc5e316b..d90b81950 100644 --- a/packages/distribution/tests/integration/components/cd-inquiry-new-form-test.js +++ b/packages/distribution/tests/integration/components/cd-inquiry-new-form-test.js @@ -33,6 +33,7 @@ module("Integration | Component | cd-inquiry-new-form", function (hooks) { }, a: { label: "label-a" }, b: { label: "label-b" }, + c: { label: "label-c" }, }, }, }; @@ -51,6 +52,7 @@ module("Integration | Component | cd-inquiry-new-form", function (hooks) { { id: 4, name: "4" }, { id: 5, name: "5" }, ], + c: [], }; return Object.entries(records).reduce((retval, [type, recs]) => { @@ -79,7 +81,7 @@ module("Integration | Component | cd-inquiry-new-form", function (hooks) { { owner: this.engine }, ); - assert.dom("button[data-test-type]").exists({ count: 2 }); + assert.dom("button[data-test-type]").exists({ count: 3 }); assert.dom("tr[data-test-group]").exists({ count: 2 }); await click("button[data-test-type=b]"); @@ -232,10 +234,11 @@ module("Integration | Component | cd-inquiry-new-form", function (hooks) { assert.dom("[data-test-group-toggle-bar]").isNotVisible(); }); - test("it shows all the enabled groups", async function (assert) { + test("it shows all the enabled groups with content", async function (assert) { assert.dom('[data-test-group-type="suggestions"]').isNotVisible(); assert.dom('[data-test-group-type="label-a"]').isVisible(); assert.dom('[data-test-group-type="label-b"]').isVisible(); + assert.dom('[data-test-group-type="label-c"]').doesNotExist(); }); test("it allows the toggling of a group", async function (assert) { diff --git a/packages/distribution/tests/test-helper.js b/packages/distribution/tests/test-helper.js index b35ab7b26..606bf2022 100644 --- a/packages/distribution/tests/test-helper.js +++ b/packages/distribution/tests/test-helper.js @@ -1,5 +1,6 @@ import { setApplication } from "@ember/test-helpers"; -import { start } from "ember-qunit"; +import { start, setupEmberOnerrorValidation } from "ember-qunit"; +import { loadTests } from "ember-qunit/test-loader"; import * as QUnit from "qunit"; import { setup } from "qunit-dom"; @@ -9,6 +10,8 @@ import setupUIkitHelpers from "dummy/tests/helpers/uikit"; setApplication(Application.create(config.APP)); +setupEmberOnerrorValidation(); +loadTests(); setup(QUnit.assert); setupUIkitHelpers(QUnit.assert); diff --git a/packages/form-builder/.npmignore b/packages/form-builder/.npmignore index 8c9fd977f..8c51744de 100644 --- a/packages/form-builder/.npmignore +++ b/packages/form-builder/.npmignore @@ -7,8 +7,6 @@ /.ember-cli /.env* /.eslintcache -/.eslintignore -/.eslintrc.js /.git/ /.github/ /.gitignore @@ -21,6 +19,7 @@ /.watchmanconfig /CONTRIBUTING.md /ember-cli-build.js +/eslint.config.mjs /testem.js /tests/ /tsconfig.declarations.json diff --git a/packages/form-builder/addon/components/cfb-form-editor/question-option.hbs b/packages/form-builder/addon/components/cfb-form-editor/question-option.hbs new file mode 100644 index 000000000..c75299719 --- /dev/null +++ b/packages/form-builder/addon/components/cfb-form-editor/question-option.hbs @@ -0,0 +1,87 @@ +
  • + +
    +
    + {{#if @canReorder}} + + {{/if}} + {{#if (is-empty @row.id)}} + + {{else}} + + {{/if}} +
    +
    + +
    +
    + +
    +
    +
    + {{#if this.showJexl}} +
    + +
    + {{/if}} +
    +
    +
  • \ No newline at end of file diff --git a/packages/form-builder/addon/components/cfb-form-editor/question-option.js b/packages/form-builder/addon/components/cfb-form-editor/question-option.js new file mode 100644 index 000000000..6b4f30ae4 --- /dev/null +++ b/packages/form-builder/addon/components/cfb-form-editor/question-option.js @@ -0,0 +1,6 @@ +import Component from "@glimmer/component"; +import { tracked } from "@glimmer/tracking"; + +export default class CfbFormEditorQuestionOption extends Component { + @tracked showJexl = false; +} diff --git a/packages/form-builder/addon/components/cfb-form-editor/question.hbs b/packages/form-builder/addon/components/cfb-form-editor/question.hbs index 7f369c09d..00a83fe17 100644 --- a/packages/form-builder/addon/components/cfb-form-editor/question.hbs +++ b/packages/form-builder/addon/components/cfb-form-editor/question.hbs @@ -212,6 +212,14 @@ step="any" /> +
    + +
    {{/if}} diff --git a/packages/form-builder/addon/components/cfb-form-editor/question.js b/packages/form-builder/addon/components/cfb-form-editor/question.js index 2c1d3f0d2..7296da698 100644 --- a/packages/form-builder/addon/components/cfb-form-editor/question.js +++ b/packages/form-builder/addon/components/cfb-form-editor/question.js @@ -97,6 +97,7 @@ export default class CfbFormEditorQuestion extends Component { integerMaxValue: null, floatMinValue: null, floatMaxValue: null, + floatStep: null, minLength: null, maxLength: null, defaultAnswer: null, @@ -253,6 +254,7 @@ export default class CfbFormEditorQuestion extends Component { return { minValue: parseFloat(changeset.get("floatMinValue")), maxValue: parseFloat(changeset.get("floatMaxValue")), + step: parseFloat(changeset.get("floatStep")), placeholder: changeset.get("placeholder"), hintText: changeset.get("hintText"), }; @@ -363,11 +365,11 @@ export default class CfbFormEditorQuestion extends Component { (changeset.get("options") || []) .filter((option) => option.get("isDirty")) .map(async (option) => { - const { label, slug, isArchived } = option; + const { label, slug, isArchived, isHidden } = option; await this.apollo.mutate({ mutation: saveOptionMutation, - variables: { input: { label, slug, isArchived } }, + variables: { input: { label, slug, isArchived, isHidden } }, }); }), ); @@ -471,6 +473,7 @@ export default class CfbFormEditorQuestion extends Component { label: "", slug: "", isArchived: false, + isHidden: "false", slugUnlinked: false, question: this.model.slug, }, diff --git a/packages/form-builder/addon/components/cfb-form-editor/question/default.hbs b/packages/form-builder/addon/components/cfb-form-editor/question/default.hbs index 2e41fb60e..b6e73d588 100644 --- a/packages/form-builder/addon/components/cfb-form-editor/question/default.hbs +++ b/packages/form-builder/addon/components/cfb-form-editor/question/default.hbs @@ -1,6 +1,8 @@
    <@labelComponent /> + {{! Default values for ChoiceQuestions and MultipleChoiceQuestion options are not updated + when a new one is added because the object returned by `this.field` is too nested to track properly. }}
    {{component (get-widget this.field.question) diff --git a/packages/form-builder/addon/components/cfb-form-editor/question/default.js b/packages/form-builder/addon/components/cfb-form-editor/question/default.js index cb1bbcb6d..6b2f9d361 100644 --- a/packages/form-builder/addon/components/cfb-form-editor/question/default.js +++ b/packages/form-builder/addon/components/cfb-form-editor/question/default.js @@ -38,11 +38,25 @@ export default class CfbFormEditorQuestionDefault extends Component { raw.meta = { widgetOverride: "cf-field/input/powerselect" }; } - const key = this.args.model.__typename - .replace(/^./, (match) => match.toLowerCase()) - .replace("Question", "Options"); - - raw[key] = raw.options; + const key = camelize( + this.args.model.__typename.replace(/Question$/, "Options"), + ); + + // Format option changesets to match the raw format needed in lib. + raw[key] = { + edges: raw.options.map((node) => { + return { + node: { + ...node.get("data"), + ...node.get("change"), + // While we want the real value of the option, the option should never + // be hidden in the form-builder. We need to set a value here as no + // value will lead to a Jexl error. + isHidden: "false", + }, + }; + }), + }; delete raw.options; } diff --git a/packages/form-builder/addon/components/cfb-form-editor/question/options.hbs b/packages/form-builder/addon/components/cfb-form-editor/question/options.hbs index 4b540ab6b..eeaca4e65 100644 --- a/packages/form-builder/addon/components/cfb-form-editor/question/options.hbs +++ b/packages/form-builder/addon/components/cfb-form-editor/question/options.hbs @@ -8,80 +8,14 @@ class="uk-list uk-list-divider uk-form-controls uk-margin-small-top" > {{#each @value as |row i|}} -
  • - -
    -
    - {{#if this.canReorder}} - - {{/if}} - {{#if (is-empty row.id)}} - - {{else}} - - {{/if}} -
    -
    - -
    -
    - -
    -
    -
    -
  • + {{/each}}