From 786e0cca299750c51cbebfbcc98701e66ee382e2 Mon Sep 17 00:00:00 2001 From: martin mithi Date: Wed, 19 Apr 2023 07:42:58 +0300 Subject: [PATCH 01/12] Create brick-block library --- .../blocks/library/brick-block/.eslintrc.json | 36 +++++++++++++++++++ .../blocks/library/brick-block/README.md | 7 ++++ .../blocks/library/brick-block/jest.config.ts | 23 ++++++++++++ .../blocks/library/brick-block/src/index.ts | 1 + .../brick-block/brick-block.component.html | 22 ++++++++++++ .../brick-block/brick-block.component.scss | 1 + .../brick-block/brick-block.component.spec.ts | 22 ++++++++++++ .../brick-block/brick-block.component.ts | 27 ++++++++++++++ .../src/lib/convs-mgr-brick-block.module.ts | 26 ++++++++++++++ .../library/brick-block/src/test-setup.ts | 1 + .../blocks/library/brick-block/tsconfig.json | 28 +++++++++++++++ .../library/brick-block/tsconfig.lib.json | 17 +++++++++ .../library/brick-block/tsconfig.spec.json | 10 ++++++ 13 files changed, 221 insertions(+) create mode 100644 libs/features/convs-mgr/stories/blocks/library/brick-block/.eslintrc.json create mode 100644 libs/features/convs-mgr/stories/blocks/library/brick-block/README.md create mode 100644 libs/features/convs-mgr/stories/blocks/library/brick-block/jest.config.ts create mode 100644 libs/features/convs-mgr/stories/blocks/library/brick-block/src/index.ts create mode 100644 libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.html create mode 100644 libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.scss create mode 100644 libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.spec.ts create mode 100644 libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.ts create mode 100644 libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/convs-mgr-brick-block.module.ts create mode 100644 libs/features/convs-mgr/stories/blocks/library/brick-block/src/test-setup.ts create mode 100644 libs/features/convs-mgr/stories/blocks/library/brick-block/tsconfig.json create mode 100644 libs/features/convs-mgr/stories/blocks/library/brick-block/tsconfig.lib.json create mode 100644 libs/features/convs-mgr/stories/blocks/library/brick-block/tsconfig.spec.json diff --git a/libs/features/convs-mgr/stories/blocks/library/brick-block/.eslintrc.json b/libs/features/convs-mgr/stories/blocks/library/brick-block/.eslintrc.json new file mode 100644 index 0000000000..237d77d854 --- /dev/null +++ b/libs/features/convs-mgr/stories/blocks/library/brick-block/.eslintrc.json @@ -0,0 +1,36 @@ +{ + "extends": ["../../../../../../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts"], + "extends": [ + "plugin:@nrwl/nx/angular", + "plugin:@angular-eslint/template/process-inline-templates" + ], + "rules": { + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "app", + "style": "camelCase" + } + ], + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "app", + "style": "kebab-case" + } + ] + } + }, + { + "files": ["*.html"], + "extends": ["plugin:@nrwl/nx/angular-template"], + "rules": {} + } + ] +} diff --git a/libs/features/convs-mgr/stories/blocks/library/brick-block/README.md b/libs/features/convs-mgr/stories/blocks/library/brick-block/README.md new file mode 100644 index 0000000000..9d4a0869ee --- /dev/null +++ b/libs/features/convs-mgr/stories/blocks/library/brick-block/README.md @@ -0,0 +1,7 @@ +# features-convs-mgr-stories-blocks-library-brick-block + +This library was generated with [Nx](https://nx.dev). + +## Running unit tests + +Run `nx test features-convs-mgr-stories-blocks-library-brick-block` to execute the unit tests. diff --git a/libs/features/convs-mgr/stories/blocks/library/brick-block/jest.config.ts b/libs/features/convs-mgr/stories/blocks/library/brick-block/jest.config.ts new file mode 100644 index 0000000000..a5d68e73bc --- /dev/null +++ b/libs/features/convs-mgr/stories/blocks/library/brick-block/jest.config.ts @@ -0,0 +1,23 @@ +/* eslint-disable */ +export default { + displayName: 'features-convs-mgr-stories-blocks-library-brick-block', + preset: '../../../../../../../jest.preset.js', + setupFilesAfterEnv: ['/src/test-setup.ts'], + globals: { + 'ts-jest': { + tsconfig: '/tsconfig.spec.json', + stringifyContentPathRegex: '\\.(html|svg)$', + }, + }, + coverageDirectory: + '../../../../../../../coverage/libs/features/convs-mgr/stories/blocks/library/brick-block', + transform: { + '^.+\\.(ts|mjs|js|html)$': 'jest-preset-angular', + }, + transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'], + snapshotSerializers: [ + 'jest-preset-angular/build/serializers/no-ng-attributes', + 'jest-preset-angular/build/serializers/ng-snapshot', + 'jest-preset-angular/build/serializers/html-comment', + ], +}; diff --git a/libs/features/convs-mgr/stories/blocks/library/brick-block/src/index.ts b/libs/features/convs-mgr/stories/blocks/library/brick-block/src/index.ts new file mode 100644 index 0000000000..6d141dcb4d --- /dev/null +++ b/libs/features/convs-mgr/stories/blocks/library/brick-block/src/index.ts @@ -0,0 +1 @@ +export * from './lib/convs-mgr-brick-block.module'; diff --git a/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.html b/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.html new file mode 100644 index 0000000000..ce1c568aeb --- /dev/null +++ b/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.html @@ -0,0 +1,22 @@ +
+
+ + + +
+
diff --git a/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.scss b/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.scss new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.scss @@ -0,0 +1 @@ + diff --git a/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.spec.ts b/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.spec.ts new file mode 100644 index 0000000000..ec96841f36 --- /dev/null +++ b/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.spec.ts @@ -0,0 +1,22 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BrickBlockComponent } from './brick-block.component'; + +describe('BrickBlockComponent', () => { + let component: BrickBlockComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [BrickBlockComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(BrickBlockComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.ts b/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.ts new file mode 100644 index 0000000000..a1daca4990 --- /dev/null +++ b/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/components/brick-block/brick-block.component.ts @@ -0,0 +1,27 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { StoryBlockTypes } from '@app/model/convs-mgr/stories/blocks/main'; +import { BrickBlock } from '@app/model/convs-mgr/stories/blocks/messaging'; +import { BrowserJsPlumbInstance } from '@jsplumb/browser-ui'; + +@Component({ + selector: 'app-brick-block', + templateUrl: './brick-block.component.html', + styleUrls: ['./brick-block.component.scss'], +}) +export class BrickBlockComponent implements OnInit { + @Input() id: string; + @Input() block: BrickBlock; + @Input() brickForm: FormGroup; + @Input() jsPlumb: BrowserJsPlumbInstance; + + @Input() blockFormGroup: FormGroup; + + messageInputId: string; + type: StoryBlockTypes; + messagetype = StoryBlockTypes.BrickBlock; + + ngOnInit(): void { + this.messageInputId = `brick-${this.id}`; + } +} diff --git a/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/convs-mgr-brick-block.module.ts b/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/convs-mgr-brick-block.module.ts new file mode 100644 index 0000000000..bcc4a7e2f1 --- /dev/null +++ b/libs/features/convs-mgr/stories/blocks/library/brick-block/src/lib/convs-mgr-brick-block.module.ts @@ -0,0 +1,26 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { + FlexLayoutModule, + MaterialBricksModule, + MaterialDesignModule, +} from '@iote/bricks-angular'; +import { ConvsMgrBlockOptionsModule } from '@app/features/convs-mgr/stories/blocks/library/block-options'; +import { BrickBlockComponent } from './components/brick-block/brick-block.component'; +@NgModule({ + imports: [ + CommonModule, + MaterialDesignModule, + FlexLayoutModule, + MaterialBricksModule, + + FormsModule, + ReactiveFormsModule, + + ConvsMgrBlockOptionsModule, + ], + declarations: [BrickBlockComponent], + exports: [BrickBlockComponent], +}) +export class ConvsMgrBrickBlockModule {} diff --git a/libs/features/convs-mgr/stories/blocks/library/brick-block/src/test-setup.ts b/libs/features/convs-mgr/stories/blocks/library/brick-block/src/test-setup.ts new file mode 100644 index 0000000000..1100b3e8a6 --- /dev/null +++ b/libs/features/convs-mgr/stories/blocks/library/brick-block/src/test-setup.ts @@ -0,0 +1 @@ +import 'jest-preset-angular/setup-jest'; diff --git a/libs/features/convs-mgr/stories/blocks/library/brick-block/tsconfig.json b/libs/features/convs-mgr/stories/blocks/library/brick-block/tsconfig.json new file mode 100644 index 0000000000..285b6f0e0b --- /dev/null +++ b/libs/features/convs-mgr/stories/blocks/library/brick-block/tsconfig.json @@ -0,0 +1,28 @@ +{ + "extends": "../../../../../../../tsconfig.base.json", + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ], + "compilerOptions": { + "target": "es2020", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/libs/features/convs-mgr/stories/blocks/library/brick-block/tsconfig.lib.json b/libs/features/convs-mgr/stories/blocks/library/brick-block/tsconfig.lib.json new file mode 100644 index 0000000000..73f332dbe0 --- /dev/null +++ b/libs/features/convs-mgr/stories/blocks/library/brick-block/tsconfig.lib.json @@ -0,0 +1,17 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../../../../../../dist/out-tsc", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [] + }, + "exclude": [ + "src/test-setup.ts", + "**/*.spec.ts", + "jest.config.ts", + "**/*.test.ts" + ], + "include": ["**/*.ts"] +} diff --git a/libs/features/convs-mgr/stories/blocks/library/brick-block/tsconfig.spec.json b/libs/features/convs-mgr/stories/blocks/library/brick-block/tsconfig.spec.json new file mode 100644 index 0000000000..2b9903ae90 --- /dev/null +++ b/libs/features/convs-mgr/stories/blocks/library/brick-block/tsconfig.spec.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../../../../../../dist/out-tsc", + "module": "commonjs", + "types": ["jest", "node"] + }, + "files": ["src/test-setup.ts"], + "include": ["jest.config.ts", "**/*.test.ts", "**/*.spec.ts", "**/*.d.ts"] +} From 23eade98521a2382ba8081e115be268f162f4a54 Mon Sep 17 00:00:00 2001 From: martin mithi Date: Wed, 19 Apr 2023 07:44:36 +0300 Subject: [PATCH 02/12] Update config files after brick-block lib creation --- angular.json | 28 ++++++++++++++++++++++++++++ tsconfig.base.json | 3 +++ 2 files changed, 31 insertions(+) diff --git a/angular.json b/angular.json index 7217192cf9..a817c33d70 100644 --- a/angular.json +++ b/angular.json @@ -262,6 +262,34 @@ "tags": [] }, "features-convs-mgr-stories-blocks-library-block-options": "libs/features/convs-mgr/stories/blocks/library/block-options", + "features-convs-mgr-stories-blocks-library-brick-block": { + "projectType": "library", + "root": "libs/features/convs-mgr/stories/blocks/library/brick-block", + "sourceRoot": "libs/features/convs-mgr/stories/blocks/library/brick-block/src", + "prefix": "app", + "targets": { + "test": { + "executor": "@nrwl/jest:jest", + "outputs": [ + "coverage/libs/features/convs-mgr/stories/blocks/library/brick-block" + ], + "options": { + "jestConfig": "libs/features/convs-mgr/stories/blocks/library/brick-block/jest.config.ts", + "passWithNoTests": true + } + }, + "lint": { + "executor": "@nrwl/linter:eslint", + "options": { + "lintFilePatterns": [ + "libs/features/convs-mgr/stories/blocks/library/brick-block/**/*.ts", + "libs/features/convs-mgr/stories/blocks/library/brick-block/**/*.html" + ] + } + } + }, + "tags": [] + }, "features-convs-mgr-stories-blocks-library-document-message-block": "libs/features/convs-mgr/stories/blocks/library/document-message-block", "features-convs-mgr-stories-blocks-library-email-message-block": "libs/features/convs-mgr/stories/blocks/library/email-message-block", "features-convs-mgr-stories-blocks-library-fail-block": { diff --git a/tsconfig.base.json b/tsconfig.base.json index fc2a12f1e3..9b172ec492 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -80,6 +80,9 @@ "@app/features/convs-mgr/stories/blocks/library/block-options": [ "libs/features/convs-mgr/stories/blocks/library/block-options/src/index.ts" ], + "@app/features/convs-mgr/stories/blocks/library/brick-block": [ + "libs/features/convs-mgr/stories/blocks/library/brick-block/src/index.ts" + ], "@app/features/convs-mgr/stories/blocks/library/document-message-block": [ "libs/features/convs-mgr/stories/blocks/library/document-message-block/src/index.ts" ], From 524cea2105c692e8c0b579d17e6487aa4f0709d9 Mon Sep 17 00:00:00 2001 From: martin mithi Date: Wed, 19 Apr 2023 07:45:49 +0300 Subject: [PATCH 03/12] Create brick-block interface --- .../blocks/messaging/src/lib/brick-block.interface.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 libs/model/convs-mgr/stories/blocks/messaging/src/lib/brick-block.interface.ts diff --git a/libs/model/convs-mgr/stories/blocks/messaging/src/lib/brick-block.interface.ts b/libs/model/convs-mgr/stories/blocks/messaging/src/lib/brick-block.interface.ts new file mode 100644 index 0000000000..c2358ccb69 --- /dev/null +++ b/libs/model/convs-mgr/stories/blocks/messaging/src/lib/brick-block.interface.ts @@ -0,0 +1,10 @@ +import { StoryBlock } from '@app/model/convs-mgr/stories/blocks/main'; + +/* Block that allows users to navigate to different routes in the conversation flow. */ + +export interface BrickBlock extends StoryBlock { + /**Text that is expected as input */ + message?: string; + + defaultTarget?: string; +} From 884c30d179d0df3798e4b46c0199c6fd7c385ef2 Mon Sep 17 00:00:00 2001 From: martin mithi Date: Wed, 19 Apr 2023 07:47:34 +0300 Subject: [PATCH 04/12] Update brick-block's interface export --- libs/model/convs-mgr/stories/blocks/messaging/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/libs/model/convs-mgr/stories/blocks/messaging/src/index.ts b/libs/model/convs-mgr/stories/blocks/messaging/src/index.ts index 139614a97a..c47708bc06 100644 --- a/libs/model/convs-mgr/stories/blocks/messaging/src/index.ts +++ b/libs/model/convs-mgr/stories/blocks/messaging/src/index.ts @@ -22,3 +22,4 @@ export * from './lib/end-story-anchor.interface'; export * from './lib/multi-content-input-block.interface' export * from './lib/keyword-message-block.interface'; export * from './lib/event-block.interface'; +export * from './lib/brick-block.interface' \ No newline at end of file From f4329718df67e072721605136de26aaac8cbe32f Mon Sep 17 00:00:00 2001 From: martin mithi Date: Wed, 19 Apr 2023 07:50:30 +0300 Subject: [PATCH 05/12] Add BrickBlock story block enum property --- .../main/src/lib/story-block-types.enum.ts | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/libs/model/convs-mgr/stories/blocks/main/src/lib/story-block-types.enum.ts b/libs/model/convs-mgr/stories/blocks/main/src/lib/story-block-types.enum.ts index 20219cc7e3..90e2547cd4 100644 --- a/libs/model/convs-mgr/stories/blocks/main/src/lib/story-block-types.enum.ts +++ b/libs/model/convs-mgr/stories/blocks/main/src/lib/story-block-types.enum.ts @@ -7,17 +7,17 @@ export enum StoryBlockTypes { * Automatically loaded on the editor when user creates a story */ AnchorBlock = 0, - /** - * Block only produces message output and will not wait for input. - * + /** + * Block only produces message output and will not wait for input. + * * Block examples: Sending messages * Usage : Operator sends a message, terminal chatflow, ... */ TextMessage = 1, - /** - * Block only waits for input and has no leading message. - * Block examples: get location, get audio, get message, ... + /** + * Block only waits for input and has no leading message. + * Block examples: get location, get audio, get message, ... * Usage : operator awaits feedback, ... */ Input = 2, @@ -31,7 +31,7 @@ export enum StoryBlockTypes { ListBlock = 16, /** - * Block that sends an audio as output to the user + * Block that sends an audio as output to the user */ Audio = 8, @@ -40,7 +40,7 @@ export enum StoryBlockTypes { */ Video = 13, - /** + /** * Block sends message then expects input. * Block examples: buttons question, ... * Usage : bot scenario-designs */ @@ -52,7 +52,7 @@ export enum StoryBlockTypes { Structural = 9, /** - * Block that sends an image and expects no input from the user + * Block that sends an image and expects no input from the user */ Image = 5, @@ -114,6 +114,9 @@ export enum StoryBlockTypes { /** Block that calls a specified URL endpoint when hit */ WebhookBlock = 25, + /** Block that allows users to navigate to different routes in the conversation flow. */ + BrickBlock = 26, + /** * Block that accepts any type of input */ @@ -129,9 +132,9 @@ export enum StoryBlockTypes { */ keyword = 29, - /** + /** * Block that tracks when a user reaches a certain action - */ + */ Event = 30, EndStoryAnchorBlock = 9999, @@ -177,6 +180,8 @@ export function isOperationBlock(blockType: StoryBlockTypes) return true; case StoryBlockTypes.Event: return true; + case StoryBlockTypes.BrickBlock: + return true; default: return false; } From f2f187a5936b2d986912118f8adf67df1e84b52f Mon Sep 17 00:00:00 2001 From: martin mithi Date: Wed, 19 Apr 2023 07:52:02 +0300 Subject: [PATCH 06/12] Create and initialize brick form model --- .../src/lib/model/brick-block-form.model.ts | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 libs/features/convs-mgr/stories/blocks/library/main/src/lib/model/brick-block-form.model.ts diff --git a/libs/features/convs-mgr/stories/blocks/library/main/src/lib/model/brick-block-form.model.ts b/libs/features/convs-mgr/stories/blocks/library/main/src/lib/model/brick-block-form.model.ts new file mode 100644 index 0000000000..90fcbd0ec4 --- /dev/null +++ b/libs/features/convs-mgr/stories/blocks/library/main/src/lib/model/brick-block-form.model.ts @@ -0,0 +1,23 @@ +import { FormGroup, FormBuilder } from '@angular/forms'; + +import { StoryBlockTypes } from '@app/model/convs-mgr/stories/blocks/main'; +import { BrickBlock } from '@app/model/convs-mgr/stories/blocks/messaging'; + +/** + * + * @param _fb instance of formbuilder that creates formgroups controls etc + * @param blockData the data being patched into the FormGroup + * @returns builds the formgroup with data if available and returns the Formgroup + */ +export function _CreateBrickBlockForm( + _fb: FormBuilder, + blockData: BrickBlock +): FormGroup { + return _fb.group({ + id: [blockData?.id! ?? ''], + defaultTarget: [blockData.defaultTarget ?? ''], + message: [blockData?.message! ?? ''], + type: [blockData.type ?? StoryBlockTypes.BrickBlock], + position: [blockData.position ?? { x: 200, y: 50 }], + }); +} From 2def968c0bf120ff15b8c8c7e7ce77b047436391 Mon Sep 17 00:00:00 2001 From: martin mithi Date: Wed, 19 Apr 2023 07:54:12 +0300 Subject: [PATCH 07/12] Add BrickBlock module to blocks library imports --- .../blocks/library/main/src/lib/blocks-library.module.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libs/features/convs-mgr/stories/blocks/library/main/src/lib/blocks-library.module.ts b/libs/features/convs-mgr/stories/blocks/library/main/src/lib/blocks-library.module.ts index 14667f05cb..de90dbcb83 100644 --- a/libs/features/convs-mgr/stories/blocks/library/main/src/lib/blocks-library.module.ts +++ b/libs/features/convs-mgr/stories/blocks/library/main/src/lib/blocks-library.module.ts @@ -32,6 +32,7 @@ import { ConvsMgrMultipleInputMessageBlockModule } from '@app/features/convs-mgr import { ConvsMgrImageInputBlockModule } from '@app/features/convs-mgr/stories/blocks/library/image-input-block'; import { ConvsMgrLocationInputBlockModule } from '@app/features/convs-mgr/stories/blocks/library/location-input-block'; import { ConvsMgrStoriesWebhookBlockModule } from '@app/features/convs-mgr/stories/blocks/library/webhook-block'; +import { ConvsMgrBrickBlockModule } from '@app/features/convs-mgr/stories/blocks/library/brick-block'; import { ConvsMgrAnchorBlockModule } from '@app/features/convs-mgr/stories/blocks/library/anchor-block'; import { ConvsMgrOpenEndedQuestionBlockModule } from '@app/features/convs-mgr/stories/blocks/library/open-ended-question-block'; @@ -40,7 +41,6 @@ import { ConvsMgrMultiContentInputBlockModule } from '@app/features/convs-mgr/st import { ConvsMgrVideoInputBlockModule } from '@app/features/convs-mgr/stories/blocks/library/video-input-block'; import { ConvsMgrKeywordJumpBlockModule } from '@app/features/convs-mgr/stories/blocks/library/keyword-jump-block'; import { ConvsMgrEventBlockModule } from '@app/features/convs-mgr/stories/blocks/library/event-block'; - import { FileStateModule, UploadFileService } from '@app/state/file'; import { BlockInjectorService } from './providers/block-injector.service'; @@ -80,6 +80,7 @@ import { BlockComponent } from './components/block/block.component'; ConvsMgrAudioInputBlockModule, ConvsMgrStoriesWebhookBlockModule, ConvsMgrMultiContentInputBlockModule, + ConvsMgrBrickBlockModule, ConvsMgrAnchorBlockModule, ConvsMgrVideoInputBlockModule, From 67bc43bb472084e9d53bbab5038247dd2cde09c3 Mon Sep 17 00:00:00 2001 From: martin mithi Date: Wed, 19 Apr 2023 07:55:40 +0300 Subject: [PATCH 08/12] Add brick block's icon and title properties --- .../blocks/library/main/src/lib/model/icons-and-titles.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libs/features/convs-mgr/stories/blocks/library/main/src/lib/model/icons-and-titles.ts b/libs/features/convs-mgr/stories/blocks/library/main/src/lib/model/icons-and-titles.ts index 6453fe50b7..7928aca38c 100644 --- a/libs/features/convs-mgr/stories/blocks/library/main/src/lib/model/icons-and-titles.ts +++ b/libs/features/convs-mgr/stories/blocks/library/main/src/lib/model/icons-and-titles.ts @@ -95,6 +95,10 @@ export const iconsAndTitles: any = { title: 'PAGE-CONTENT.BLOCK.TITLES.WEBHOOK', icon: 'fas fa-link', }, + 26: { + title: 'PAGE-CONTENT.BLOCK.TITLES.BRICK', + icon: 'fas fa-cubes' + }, 27: { title: 'PAGE-CONTENT.BLOCK.TITLES.OPEN-ENDED-QUESTION', icon: 'fas fa-question-circle', From 6aa65b83d7f1e65e6cd23293921426f059177344 Mon Sep 17 00:00:00 2001 From: martin mithi Date: Wed, 19 Apr 2023 07:57:17 +0300 Subject: [PATCH 09/12] Add Brick block titles translations --- apps/conv-learning-manager/src/assets/i18n/en.json | 1 + apps/conv-learning-manager/src/assets/i18n/fr.json | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/conv-learning-manager/src/assets/i18n/en.json b/apps/conv-learning-manager/src/assets/i18n/en.json index d0143ebeb7..aa0bcb7c7d 100644 --- a/apps/conv-learning-manager/src/assets/i18n/en.json +++ b/apps/conv-learning-manager/src/assets/i18n/en.json @@ -91,6 +91,7 @@ "FAILBLOCK": "Fail Block", "JUMP":"Jump", "EVENT": "Event", + "BRICK":"Brick", "END-BLOCK":"End Block" }, "PLACEHOLDER": { diff --git a/apps/conv-learning-manager/src/assets/i18n/fr.json b/apps/conv-learning-manager/src/assets/i18n/fr.json index 6f29296a83..7d631f126c 100644 --- a/apps/conv-learning-manager/src/assets/i18n/fr.json +++ b/apps/conv-learning-manager/src/assets/i18n/fr.json @@ -70,7 +70,8 @@ "LOCATION-INPUT":"saisie de position", "KEYWORD-JUMP": "saut de mots-clés", "EVENT": "Événement", - "JUMP":"saut" + "JUMP":"saut", + "BRICK":"Brique" }, "PLACEHOLDER": { "CAPTION": "Légende", From 9d3e2d0221d7dcd660653901111061ee9c4456bb Mon Sep 17 00:00:00 2001 From: martin mithi Date: Wed, 19 Apr 2023 07:59:54 +0300 Subject: [PATCH 10/12] Update blockTemplates array and addBlock switch cases to include brick block --- .../components/blocks-library/blocks-library.component.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libs/features/convs-mgr/stories/editor/src/lib/components/blocks-library/blocks-library.component.ts b/libs/features/convs-mgr/stories/editor/src/lib/components/blocks-library/blocks-library.component.ts index 0b34d15c6a..35088ff1dc 100644 --- a/libs/features/convs-mgr/stories/editor/src/lib/components/blocks-library/blocks-library.component.ts +++ b/libs/features/convs-mgr/stories/editor/src/lib/components/blocks-library/blocks-library.component.ts @@ -12,7 +12,7 @@ import { TextMessageBlock, EmailMessageBlock, PhoneMessageBlock, DocumentMessageBlock, StickerMessageBlock, VoiceMessageBlock, VideoMessageBlock, ListMessageBlock, JumpBlock, MultipleInputMessageBlock, FailBlock, ImageInputBlock, LocationInputBlock, AudioInputBlock, VideoInputBlock, WebhookBlock, OpenEndedQuestionBlock, - KeywordMessageBlock, MultiContentInputBlock, EndStoryAnchorBlock, EventBlock + KeywordMessageBlock, MultiContentInputBlock, EndStoryAnchorBlock, EventBlock, BrickBlock } from '@app/model/convs-mgr/stories/blocks/messaging'; import { StoryEditorFrame } from '../../model/story-editor-frame.model'; @@ -62,6 +62,7 @@ export class BlocksLibraryComponent implements OnInit, OnDestroy { { id: 'io-location-input-block' , type: StoryBlockTypes.LocationInputBlock, message: 'Location Input', blockIcon:this.getBlockIcon(StoryBlockTypes.LocationInputBlock), blockCategory: 'questions-block' } as LocationInputBlock, { id: 'io-video-input-block', type: StoryBlockTypes.VideoInput, message: 'Video Input', blockIcon:this.getBlockIcon(StoryBlockTypes.VideoInput), blockCategory: 'multimedia-block' } as VideoInputBlock, { id: 'webhook-block' , type: StoryBlockTypes.WebhookBlock, message: 'Webhook', blockIcon:this.getBlockIcon(StoryBlockTypes.WebhookBlock), blockCategory: 'questions-block' } as WebhookBlock, + { id: 'brick-block' , type: StoryBlockTypes.BrickBlock, message: 'Brick', blockIcon:this.getBlockIcon(StoryBlockTypes.BrickBlock), blockCategory: 'multimedia-block' } as BrickBlock, { id: 'open-ended-question-block', type:StoryBlockTypes.OpenEndedQuestion, message: 'Open Ended Question', blockIcon:this.getBlockIcon(StoryBlockTypes.OpenEndedQuestion), blockCategory: 'questions-block' } as OpenEndedQuestionBlock, { id: 'multi-content-input' , type:StoryBlockTypes.MultiContentInput, message:'Multi Content Input', blockIcon:this.getBlockIcon(StoryBlockTypes.MultiContentInput), blockCategory: 'multimedia-block' } as MultiContentInputBlock, { id: 'keyword-jump-block', type:StoryBlockTypes.keyword, message: 'Keyword Jump', blockIcon:this.getBlockIcon(StoryBlockTypes.keyword), blockCategory: 'questions-block' } as KeywordMessageBlock, @@ -167,6 +168,9 @@ export class BlocksLibraryComponent implements OnInit, OnDestroy { case StoryBlockTypes.Event: this.frame.newBlock(StoryBlockTypes.Event, coordinates); break; + case StoryBlockTypes.BrickBlock: + this.frame.newBlock(StoryBlockTypes.BrickBlock, coordinates); + break; } } From dbe675baa9af575aecedc74d59288bfbb9e85c04 Mon Sep 17 00:00:00 2001 From: martin mithi Date: Wed, 19 Apr 2023 08:02:11 +0300 Subject: [PATCH 11/12] Update block component to include brick form instantiation class --- .../main/src/lib/components/block/block.component.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libs/features/convs-mgr/stories/blocks/library/main/src/lib/components/block/block.component.ts b/libs/features/convs-mgr/stories/blocks/library/main/src/lib/components/block/block.component.ts index a991496063..777fc5100f 100644 --- a/libs/features/convs-mgr/stories/blocks/library/main/src/lib/components/block/block.component.ts +++ b/libs/features/convs-mgr/stories/blocks/library/main/src/lib/components/block/block.component.ts @@ -25,7 +25,7 @@ import { _CreateDocumentMessageBlockForm } from '../../model/document-block-form import { _CreateReplyBlockForm } from '../../model/reply-block-form.model'; import { _CreateMultipleInputMessageBlockForm } from '../../model/multiple-input-message-block-form.model'; import { _CreateImageInputBlockForm } from '../../model/image-input-block-form.model'; - +import { _CreateBrickBlockForm } from '../../model/brick-block-form.model'; import { iconsAndTitles } from '../../model/icons-and-titles'; import { _CreateJumpBlockForm } from '../../model/jump-block-form.model'; import { _CreateFailBlockForm } from '../../model/fail-block-form.model'; @@ -79,6 +79,7 @@ export class BlockComponent implements OnInit { audioInputType = StoryBlockTypes.AudioInput; videoInputType = StoryBlockTypes.VideoInput; webhookType = StoryBlockTypes.WebhookBlock; + brickType = StoryBlockTypes.BrickBlock; endStoryAnchor = StoryBlockTypes.EndStoryAnchorBlock; openQuestiontype = StoryBlockTypes.OpenEndedQuestion; multiContentInputType = StoryBlockTypes.MultiContentInput; @@ -206,6 +207,10 @@ export class BlockComponent implements OnInit { this.blockFormGroup = _CreateWebhookBlockForm(this._fb, this.block); this.blocksGroup.push(this.blockFormGroup); break; + case StoryBlockTypes.BrickBlock: + this.blockFormGroup = _CreateBrickBlockForm(this._fb, this.block); + this.blocksGroup.push(this.blockFormGroup); + break; case StoryBlockTypes.EndStoryAnchorBlock: this.blockFormGroup = _CreateEndStoryAnchorBlockForm(this._fb, this.block); this.blocksGroup.push(this.blockFormGroup); From b3d2c7a37cf373cf325689cc166f1f401eabc71e Mon Sep 17 00:00:00 2001 From: martin mithi Date: Wed, 19 Apr 2023 08:03:13 +0300 Subject: [PATCH 12/12] Update block component template to include brick block form --- .../main/src/lib/components/block/block.component.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libs/features/convs-mgr/stories/blocks/library/main/src/lib/components/block/block.component.html b/libs/features/convs-mgr/stories/blocks/library/main/src/lib/components/block/block.component.html index f51dac479b..9712b421b2 100644 --- a/libs/features/convs-mgr/stories/blocks/library/main/src/lib/components/block/block.component.html +++ b/libs/features/convs-mgr/stories/blocks/library/main/src/lib/components/block/block.component.html @@ -92,6 +92,10 @@

{{ blockTitle | transloco }}

+
+ + +