@leanix/components 0.3.43 → 0.3.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/core-ui/pipes/highlight-term.pipe.mjs +14 -25
- package/fesm2015/leanix-components.mjs +12 -23
- package/fesm2015/leanix-components.mjs.map +1 -1
- package/fesm2020/leanix-components.mjs +12 -23
- package/fesm2020/leanix-components.mjs.map +1 -1
- package/lib/core-ui/pipes/highlight-term.pipe.d.ts +1 -15
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Pipe } from '@angular/core';
|
|
2
|
-
import
|
|
2
|
+
import _ from 'lodash';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
5
5
|
* These characters are treated as seperators by
|
|
@@ -8,31 +8,20 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
*/
|
|
9
9
|
const STANDARD_TOKENIZER_SEPERATORS = /[^a-zA-Z\d\s]/g;
|
|
10
10
|
export class HighlightTermPipe {
|
|
11
|
-
|
|
12
|
-
* Transforms the input text with highlighted text according to the provided search term.
|
|
13
|
-
* @param text The input text.
|
|
14
|
-
* @param search The search term to highlight.
|
|
15
|
-
* @param options The highlight term search options.
|
|
16
|
-
* @returns The transformed text with highlighted search term.
|
|
17
|
-
*/
|
|
18
|
-
transform(text, search, options = { exactMatch: false }) {
|
|
11
|
+
transform(text, search) {
|
|
19
12
|
if (search && text) {
|
|
20
|
-
let pattern =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
.filter((t) => {
|
|
31
|
-
return t.length > 0;
|
|
32
|
-
})
|
|
33
|
-
.join('|');
|
|
13
|
+
let pattern = search
|
|
14
|
+
.replace(STANDARD_TOKENIZER_SEPERATORS, ' ')
|
|
15
|
+
// replace special chars for a backslash for RegExp
|
|
16
|
+
.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
|
|
17
|
+
pattern = pattern
|
|
18
|
+
.split(' ')
|
|
19
|
+
.filter((t) => {
|
|
20
|
+
return t.length > 0;
|
|
21
|
+
})
|
|
22
|
+
.join('|');
|
|
34
23
|
const regex = new RegExp(pattern, 'gi');
|
|
35
|
-
text = escape(text);
|
|
24
|
+
text = _.escape(text);
|
|
36
25
|
return text.replace(regex, (match) => `<span class="termHighlight">${match}</span>`); // add highlighting to matched regex pattern
|
|
37
26
|
}
|
|
38
27
|
else {
|
|
@@ -46,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
46
35
|
type: Pipe,
|
|
47
36
|
args: [{ name: 'lxHighlightTerm' }]
|
|
48
37
|
}] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LXRlcm0ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvcmUtdWkvcGlwZXMvaGlnaGxpZ2h0LXRlcm0ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7O0FBRXZCOzs7O0dBSUc7QUFDSCxNQUFNLDZCQUE2QixHQUFHLGdCQUFnQixDQUFDO0FBR3ZELE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsU0FBUyxDQUFDLElBQWEsRUFBRSxNQUFlO1FBQ3RDLElBQUksTUFBTSxJQUFJLElBQUksRUFBRTtZQUNsQixJQUFJLE9BQU8sR0FBRyxNQUFNO2lCQUNqQixPQUFPLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxDQUFDO2dCQUM1QyxtREFBbUQ7aUJBQ2xELE9BQU8sQ0FBQyxxQ0FBcUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUUxRCxPQUFPLEdBQUcsT0FBTztpQkFDZCxLQUFLLENBQUMsR0FBRyxDQUFDO2lCQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDO2lCQUNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUViLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4QyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQywrQkFBK0IsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLDRDQUE0QztTQUNuSTthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7OzhHQXJCVSxpQkFBaUI7NEdBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBUaGVzZSBjaGFyYWN0ZXJzIGFyZSB0cmVhdGVkIGFzIHNlcGVyYXRvcnMgYnlcbiAqIGVsYXN0aWNzZWFyY2ggYW5kIHNwbGl0IHRoZSBpbnB1dCBpbnRvIHNlYXJjaCB0b2tlbnNcbiAqIHdoaWNoIGFyZSB1c2VkIHRvIGZpbmQgbWF0Y2hlcy5cbiAqL1xuY29uc3QgU1RBTkRBUkRfVE9LRU5JWkVSX1NFUEVSQVRPUlMgPSAvW15hLXpBLVpcXGRcXHNdL2c7XG5cbkBQaXBlKHsgbmFtZTogJ2x4SGlnaGxpZ2h0VGVybScgfSlcbmV4cG9ydCBjbGFzcyBIaWdobGlnaHRUZXJtUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odGV4dD86IHN0cmluZywgc2VhcmNoPzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoc2VhcmNoICYmIHRleHQpIHtcbiAgICAgIGxldCBwYXR0ZXJuID0gc2VhcmNoXG4gICAgICAgIC5yZXBsYWNlKFNUQU5EQVJEX1RPS0VOSVpFUl9TRVBFUkFUT1JTLCAnICcpXG4gICAgICAgIC8vIHJlcGxhY2Ugc3BlY2lhbCBjaGFycyBmb3IgYSBiYWNrc2xhc2ggZm9yIFJlZ0V4cFxuICAgICAgICAucmVwbGFjZSgvW1xcLVxcW1xcXVxcL1xce1xcfVxcKFxcKVxcKlxcK1xcP1xcLlxcXFxcXF5cXCRcXHxdL2csICdcXFxcJCYnKTtcblxuICAgICAgcGF0dGVybiA9IHBhdHRlcm5cbiAgICAgICAgLnNwbGl0KCcgJylcbiAgICAgICAgLmZpbHRlcigodCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0Lmxlbmd0aCA+IDA7XG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCd8Jyk7XG5cbiAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChwYXR0ZXJuLCAnZ2knKTtcbiAgICAgIHRleHQgPSBfLmVzY2FwZSh0ZXh0KTtcbiAgICAgIHJldHVybiB0ZXh0LnJlcGxhY2UocmVnZXgsIChtYXRjaCkgPT4gYDxzcGFuIGNsYXNzPVwidGVybUhpZ2hsaWdodFwiPiR7bWF0Y2h9PC9zcGFuPmApOyAvLyBhZGQgaGlnaGxpZ2h0aW5nIHRvIG1hdGNoZWQgcmVnZXggcGF0dGVyblxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1377,31 +1377,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
1377
1377
|
*/
|
|
1378
1378
|
const STANDARD_TOKENIZER_SEPERATORS = /[^a-zA-Z\d\s]/g;
|
|
1379
1379
|
class HighlightTermPipe {
|
|
1380
|
-
|
|
1381
|
-
* Transforms the input text with highlighted text according to the provided search term.
|
|
1382
|
-
* @param text The input text.
|
|
1383
|
-
* @param search The search term to highlight.
|
|
1384
|
-
* @param options The highlight term search options.
|
|
1385
|
-
* @returns The transformed text with highlighted search term.
|
|
1386
|
-
*/
|
|
1387
|
-
transform(text, search, options = { exactMatch: false }) {
|
|
1380
|
+
transform(text, search) {
|
|
1388
1381
|
if (search && text) {
|
|
1389
|
-
let pattern =
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
.filter((t) => {
|
|
1400
|
-
return t.length > 0;
|
|
1401
|
-
})
|
|
1402
|
-
.join('|');
|
|
1382
|
+
let pattern = search
|
|
1383
|
+
.replace(STANDARD_TOKENIZER_SEPERATORS, ' ')
|
|
1384
|
+
// replace special chars for a backslash for RegExp
|
|
1385
|
+
.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
|
|
1386
|
+
pattern = pattern
|
|
1387
|
+
.split(' ')
|
|
1388
|
+
.filter((t) => {
|
|
1389
|
+
return t.length > 0;
|
|
1390
|
+
})
|
|
1391
|
+
.join('|');
|
|
1403
1392
|
const regex = new RegExp(pattern, 'gi');
|
|
1404
|
-
text = escape(text);
|
|
1393
|
+
text = _.escape(text);
|
|
1405
1394
|
return text.replace(regex, (match) => `<span class="termHighlight">${match}</span>`); // add highlighting to matched regex pattern
|
|
1406
1395
|
}
|
|
1407
1396
|
else {
|