diff --git a/libs/features/convs-mgr/stories/blocks/library/jump-story-block/src/lib/components/jump-block/jump-block.component.html b/libs/features/convs-mgr/stories/blocks/library/jump-story-block/src/lib/components/jump-block/jump-block.component.html
index 91682bc495..2799a2ac17 100644
--- a/libs/features/convs-mgr/stories/blocks/library/jump-story-block/src/lib/components/jump-block/jump-block.component.html
+++ b/libs/features/convs-mgr/stories/blocks/library/jump-story-block/src/lib/components/jump-block/jump-block.component.html
@@ -4,7 +4,7 @@
-
+
diff --git a/libs/features/convs-mgr/stories/blocks/library/jump-story-block/src/lib/components/jump-block/jump-block.component.ts b/libs/features/convs-mgr/stories/blocks/library/jump-story-block/src/lib/components/jump-block/jump-block.component.ts
index d53e873abe..69eeecd898 100644
--- a/libs/features/convs-mgr/stories/blocks/library/jump-story-block/src/lib/components/jump-block/jump-block.component.ts
+++ b/libs/features/convs-mgr/stories/blocks/library/jump-story-block/src/lib/components/jump-block/jump-block.component.ts
@@ -1,5 +1,6 @@
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { FormArray, FormBuilder, FormGroup } from '@angular/forms';
+import { Clipboard } from '@angular/cdk/clipboard';
import { SubSink } from 'subsink';
@@ -49,7 +50,9 @@ export class JumpBlockComponent implements OnInit, OnDestroy
private _fb: FormBuilder,
private _storyBlockStore$$: StoryBlocksStore,
private _translate: TranslateService,
- private _logger: Logger)
+ private _logger: Logger,
+ private clipboard: Clipboard,
+ )
{ }
ngOnInit(): void
@@ -58,6 +61,9 @@ export class JumpBlockComponent implements OnInit, OnDestroy
this.getStories();
this.getBlocks();
+
+ const inputElement = document.getElementById('blockIdInput') as HTMLInputElement;
+ inputElement.addEventListener('paste', (event) => this.handlePaste(event));
}
get options(): FormArray
@@ -113,6 +119,14 @@ export class JumpBlockComponent implements OnInit, OnDestroy
});
}
+ handlePaste(event: ClipboardEvent){
+ const clipboardData = event.clipboardData || (window as any).clipboardData;
+ const pasteID = clipboardData.getData('text/plain')
+ const blockId = pasteID.trim()
+ this.jumpBlockForm.patchValue({ blockId: blockId})
+ event.preventDefault();
+ }
+
ngOnDestroy()
{
this._sBS.unsubscribe();
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 9eee753a57..772fe6d470 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
@@ -1,4 +1,4 @@
-
+
@@ -6,11 +6,15 @@
{{ blockTitle | transloco }}
-
-
-
-
+
+
+
+
+
+ Copy Reference
+
+
diff --git a/libs/features/convs-mgr/stories/blocks/library/main/src/lib/components/block/block.component.scss b/libs/features/convs-mgr/stories/blocks/library/main/src/lib/components/block/block.component.scss
index 09c5ebb444..5fa2eb49a2 100644
--- a/libs/features/convs-mgr/stories/blocks/library/main/src/lib/components/block/block.component.scss
+++ b/libs/features/convs-mgr/stories/blocks/library/main/src/lib/components/block/block.component.scss
@@ -63,6 +63,7 @@ mat-card {
}
}
}
+
}
.hide-block {
display: none;
@@ -70,4 +71,20 @@ mat-card {
::ng-deep .mat-mdc-card-content {
padding: 0;
-}
\ No newline at end of file
+}
+
+.copy-button-container {
+ display: flex;
+ align-items: center;
+ gap: 10px;
+ margin-left: auto;
+
+ #copy-span {
+ background-color: var(--convs-mgr-color-light-shade);
+ color: var(--convs-mgr-color-medium-shade);
+ padding: 5px 10px;
+ border-radius: 4px;
+ cursor: pointer;
+ }
+ }
+
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 d7b810c81d..3f56b6ee31 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
@@ -7,6 +7,7 @@ import { MatDialog } from '@angular/material/dialog';
import { BrowserJsPlumbInstance } from '@jsplumb/browser-ui';
import { Logger } from '@iote/bricks-angular';
+import { Clipboard } from '@angular/cdk/clipboard';
import { BlockPortalService } from '@app/features/convs-mgr/stories/editor';
import { StoryBlock, StoryBlockTypes } from '@app/model/convs-mgr/stories/blocks/main';
@@ -116,7 +117,8 @@ export class BlockComponent implements OnInit {
private _logger: Logger,
private sideMenu:SidemenuToggleService,
private sideScreen:SideScreenToggleService,
- private matdialog: MatDialog
+ private matdialog: MatDialog,
+ private clipboard: Clipboard
) { }
@@ -348,5 +350,24 @@ export class BlockComponent implements OnInit {
this.viewPort.remove(index);
this._cd.detectChanges();
}
+
+ copyBlockIdToClipboard(event: MouseEvent) {
+ event.preventDefault(); // Prevent the default context menu from showing up
+ const blockId = this.id;
+ navigator.clipboard.writeText(blockId)
+ }
+
+ showCopyBtn = false;
+
+ @HostListener('contextmenu', ['$event'])
+ onContextMenu(event: MouseEvent) {
+ event.preventDefault(); // Prevent the default context menu from showing up
+ this.showCopyBtn = true;
+ }
+
+ hideCopyBtn() {
+ this.showCopyBtn = false;
+ }
+
}