Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🧱 Assessment brick #435

Merged
merged 11 commits into from
Apr 27, 2023
Prev Previous commit
Next Next commit
🔧 add jsPlumb decorator for the assessment brick
  • Loading branch information
njoroge-jane committed Apr 24, 2023
commit 86071419c79a3be9b0af164d9ff4d7c613201746
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { ComponentRef } from '@angular/core';
import { BrowserJsPlumbInstance } from '@jsplumb/browser-ui';

import { AssessmentBrick } from '@app/model/convs-mgr/stories/blocks/messaging';

import { BlockComponent } from '@app/features/convs-mgr/stories/blocks/library/main';

/**
* Decorates AssessmentBrick with JS plumb connectors.
*
* @param block - AssessmentBrick data structure.
* @param comp - Angular component within the viewport
* @param jsPlumb - Active jsPlumb instance
*
* @see {_JsPlumbComponentDecorator} - Should be the only one calling the component
*/
export function _AssessmentBrickDecoratePlumb(
block: AssessmentBrick,
comp: ComponentRef<BlockComponent>,
jsPlumb: BrowserJsPlumbInstance
): ComponentRef<BlockComponent> {
jsPlumb.addEndpoint(comp.location.nativeElement, {
// Whether the anchor is target (Other Block -> This Block)
target: true,
cssClass: 'block_endpoint',
endpoint: 'Dot',
anchor: 'Left',
maxConnections: -1,
});

return comp;
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ import { DocumentMessageBlock, EmailMessageBlock, ImageMessageBlock, LocationMes
JumpBlock, MultipleInputMessageBlock,FailBlock, ImageInputBlock, LocationInputBlock,
AudioInputBlock, VideoInputBlock, WebhookBlock, OpenEndedQuestionBlock, KeywordMessageBlock,
MultiContentInputBlock,
EventBlock
EventBlock,
AssessmentBrick
} from '@app/model/convs-mgr/stories/blocks/messaging';

import { _MessageBlockDecoratePlumb } from './message-block.jsplumb';
Expand Down Expand Up @@ -40,6 +41,7 @@ import { _OpenEndedQuestionBlockDecoratePlumb } from './open-ended-question-bloc
import { _MultiContentInputBlockDecoratePlumb } from './multi-content-input-block.jsplumb';
import { _KeywordJumpBlockDecoratePlumb } from './keyword-jump-block.jsplumb';
import { _EventBlockDecoratePlumb } from './event-block.jsplumb';
import { _AssessmentBrickDecoratePlumb } from './assessment-brick.jsplumb';

/**
* This function adds jsPlumb endpoints to rendered components.
Expand Down Expand Up @@ -125,6 +127,8 @@ export function _JsPlumbComponentDecorator(block: StoryBlock, comp: ComponentRef
break;
case StoryBlockTypes.Event:
return _EventBlockDecoratePlumb(block as EventBlock, comp, jsPlumb);
case StoryBlockTypes.Assessment:
return _AssessmentBrickDecoratePlumb(block as AssessmentBrick, comp, jsPlumb);
}

return comp;
Expand Down