From bdc66b4668c4ef2c7e664dd16982e82c99045e72 Mon Sep 17 00:00:00 2001 From: Asher Date: Wed, 22 Jul 2026 09:52:14 -0700 Subject: [PATCH 01/17] Add Header, Context (wysiwyg), and background color to Open Response component --- package-lock.json | 173 ------------------ .../openResponse/OpenResponseContent.ts | 3 + .../open-response-authoring.component.html | 38 +++- .../open-response-authoring.component.ts | 16 +- .../open-response-student.component.html | 14 +- .../open-response-student.component.scss | 50 ++++- .../open-response-student.component.ts | 9 +- 7 files changed, 111 insertions(+), 192 deletions(-) diff --git a/package-lock.json b/package-lock.json index 229bb639888..433156aa4ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3873,34 +3873,6 @@ "node": ">=22.12.0" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, "node_modules/@discoveryjs/json-ext": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", @@ -8658,42 +8630,6 @@ } } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz", - "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", @@ -9431,36 +9367,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", - "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk/node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/adjust-sourcemap-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", @@ -12291,15 +12197,6 @@ "jiti": "lib/jiti-cli.mjs" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -16167,21 +16064,6 @@ "postcss": "^8.0.0" } }, - "node_modules/gulp-postcss/node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/gulp-postcss/node_modules/postcss-load-config": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", @@ -16212,52 +16094,6 @@ } } }, - "node_modules/gulp-postcss/node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, "node_modules/gulp-postcss/node_modules/yaml": { "version": "1.10.3", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", @@ -30494,15 +30330,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/v8flags": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", diff --git a/src/assets/wise5/components/openResponse/OpenResponseContent.ts b/src/assets/wise5/components/openResponse/OpenResponseContent.ts index 7289b913dcb..4b0d859191d 100644 --- a/src/assets/wise5/components/openResponse/OpenResponseContent.ts +++ b/src/assets/wise5/components/openResponse/OpenResponseContent.ts @@ -1,10 +1,13 @@ import { ComponentContent } from '../../common/ComponentContent'; export interface OpenResponseContent extends ComponentContent { + backgroundColor?: string; completionCriteria: any; cRater: any; + context?: string; enableCRater: boolean; enableNotifications: boolean; + header?: string; isStudentAudioRecordingEnabled: boolean; maxSubmitCount?: number; notificationSettings: any; diff --git a/src/assets/wise5/components/openResponse/open-response-authoring/open-response-authoring.component.html b/src/assets/wise5/components/openResponse/open-response-authoring/open-response-authoring.component.html index 4c0667e6fc7..cb5848ce2d2 100644 --- a/src/assets/wise5/components/openResponse/open-response-authoring/open-response-authoring.component.html +++ b/src/assets/wise5/components/openResponse/open-response-authoring/open-response-authoring.component.html @@ -1,16 +1,34 @@
@if (!componentContent.showPreviousWork) {
- announcement - +
+ + Background color + + +
+
+ + Header + + +
+ + +
+
}
diff --git a/src/assets/wise5/components/openResponse/open-response-authoring/open-response-authoring.component.ts b/src/assets/wise5/components/openResponse/open-response-authoring/open-response-authoring.component.ts index 046c8e76560..363075e6442 100644 --- a/src/assets/wise5/components/openResponse/open-response-authoring/open-response-authoring.component.ts +++ b/src/assets/wise5/components/openResponse/open-response-authoring/open-response-authoring.component.ts @@ -1,11 +1,17 @@ import { Component } from '@angular/core'; import { AbstractComponentAuthoring } from '../../../authoringTool/components/AbstractComponentAuthoring'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { MatIconModule } from '@angular/material/icon'; -import { EditComponentPrompt } from '../../../../../app/authoring-tool/edit-component-prompt/edit-component-prompt.component'; +import { WiseAuthoringTinymceEditorComponent } from '../../../directives/wise-tinymce-editor/wise-authoring-tinymce-editor.component'; +import { FormsModule } from '@angular/forms'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatInputModule } from '@angular/material/input'; @Component({ - imports: [EditComponentPrompt, MatIconModule, MatTooltipModule], + imports: [FormsModule, MatFormFieldModule, MatInputModule, WiseAuthoringTinymceEditorComponent], templateUrl: 'open-response-authoring.component.html' }) -export class OpenResponseAuthoringComponent extends AbstractComponentAuthoring {} +export class OpenResponseAuthoringComponent extends AbstractComponentAuthoring { + componentChanged(): void { + this.projectService.nodeChanged(); + this.projectService.saveProject(); + } +} diff --git a/src/assets/wise5/components/openResponse/open-response-student/open-response-student.component.html b/src/assets/wise5/components/openResponse/open-response-student/open-response-student.component.html index 31c3b172867..eafd279a57c 100644 --- a/src/assets/wise5/components/openResponse/open-response-student/open-response-student.component.html +++ b/src/assets/wise5/components/openResponse/open-response-student/open-response-student.component.html @@ -1,4 +1,13 @@ - +
+@if (componentContent.header) { +

{{ componentContent.header }}

+} +@if (componentContent.context) { +
+}
@if (isAddToNotebookEnabled()) {
-
+