summaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/shared/pipes/highlight
diff options
context:
space:
mode:
Diffstat (limited to 'vid-webpack-master/src/app/shared/pipes/highlight')
-rw-r--r--vid-webpack-master/src/app/shared/pipes/highlight/highlight-filter.pipe.spec.ts29
-rw-r--r--vid-webpack-master/src/app/shared/pipes/highlight/highlight-filter.pipe.ts12
2 files changed, 41 insertions, 0 deletions
diff --git a/vid-webpack-master/src/app/shared/pipes/highlight/highlight-filter.pipe.spec.ts b/vid-webpack-master/src/app/shared/pipes/highlight/highlight-filter.pipe.spec.ts
new file mode 100644
index 000000000..6c2fc42d7
--- /dev/null
+++ b/vid-webpack-master/src/app/shared/pipes/highlight/highlight-filter.pipe.spec.ts
@@ -0,0 +1,29 @@
+
+import {HighlightPipe} from "./highlight-filter.pipe";
+import {TestBed} from "@angular/core/testing";
+
+describe('Highlight Pipe', () => {
+ let highlightPipe: HighlightPipe;
+
+ beforeAll(done => (async () => {
+ TestBed.configureTestingModule({});
+ await TestBed.compileComponents();
+
+ highlightPipe = new HighlightPipe();
+
+ })().then(done).catch(done.fail));
+
+ test('Highlight Pipe should be defined', () => {
+ expect(highlightPipe).toBeDefined();
+ });
+
+ test('Highlight Pipe should return "HTML" with highlight class if match exist', () => {
+ let result : string = highlightPipe.transform('Hello World', 'Wor');
+ expect(result).toEqual('Hello <span class="highlight">Wor</span>ld');
+ });
+
+ test('Highlight Pipe should not return "HTML" with highlight class if no match exist', () => {
+ let result : string = highlightPipe.transform('Hello World', 'ABC');
+ expect(result).toEqual('Hello World');
+ });
+});
diff --git a/vid-webpack-master/src/app/shared/pipes/highlight/highlight-filter.pipe.ts b/vid-webpack-master/src/app/shared/pipes/highlight/highlight-filter.pipe.ts
new file mode 100644
index 000000000..b25458d6d
--- /dev/null
+++ b/vid-webpack-master/src/app/shared/pipes/highlight/highlight-filter.pipe.ts
@@ -0,0 +1,12 @@
+import {PipeTransform, Pipe} from '@angular/core';
+import * as _ from 'lodash';
+
+@Pipe({ name: 'highlight' })
+export class HighlightPipe implements PipeTransform {
+ transform(text: string, search: string): string {
+ if(_.isNil(text)) return text;
+ let pattern = search.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
+ let regex = new RegExp(pattern, 'gi');
+ return search ? text.replace(regex, (match) => `<span class="highlight">${match}</span>`) : text;
+ }
+}