@tilde-nlp/ngx-common 6.1.62 → 6.1.64
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/esm2022/lib/new-feature-dialog/new-feature-dialog-wrapper/new-feature-dialog-wrapper.component.mjs +28 -24
- package/esm2022/lib/pipes/domain-translate/domain-translate.pipe.mjs +30 -0
- package/esm2022/lib/pipes/domain-translate/index.mjs +2 -0
- package/esm2022/lib/pipes/index.mjs +3 -1
- package/esm2022/lib/pipes/sort-domains/index.mjs +2 -0
- package/esm2022/lib/pipes/sort-domains/sort-domains.pipe.mjs +51 -0
- package/fesm2022/tilde-nlp-ngx-common.mjs +100 -25
- package/fesm2022/tilde-nlp-ngx-common.mjs.map +1 -1
- package/lib/pipes/domain-translate/domain-translate.pipe.d.ts +10 -0
- package/lib/pipes/domain-translate/index.d.ts +1 -0
- package/lib/pipes/index.d.ts +2 -0
- package/lib/pipes/sort-domains/index.d.ts +1 -0
- package/lib/pipes/sort-domains/sort-domains.pipe.d.ts +15 -0
- package/package.json +1 -1
- package/styles/strapi/strapi-base.scss +11 -1
- package/web-components/main.js +12 -12
- package/web-components/styles.css +1 -1
|
@@ -2,6 +2,7 @@ import { Component, inject, Input, signal } from '@angular/core';
|
|
|
2
2
|
import { MatDialog, MatDialogModule, } from '@angular/material/dialog';
|
|
3
3
|
import { NewFeatureDialogComponent } from '../new-feature-dialog.component';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { ResolutionHelper } from '../../helpers';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export class NewFeatureDialogWrapperComponent {
|
|
7
8
|
constructor() {
|
|
@@ -24,29 +25,32 @@ export class NewFeatureDialogWrapperComponent {
|
|
|
24
25
|
this.isFeatureSeen = true;
|
|
25
26
|
}
|
|
26
27
|
showFeatureDialog() {
|
|
27
|
-
this.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (
|
|
32
|
-
|
|
33
|
-
data: {
|
|
34
|
-
title: this.titleLocalizationKey,
|
|
35
|
-
description: this.descriptionLocalizationKey,
|
|
36
|
-
close: this.closeLocalizationKey,
|
|
37
|
-
featureLocalStorageKey: this.featureLocalStorageKey,
|
|
38
|
-
},
|
|
39
|
-
position: {
|
|
40
|
-
left: `${rects.left - this.maxWidth}px`,
|
|
41
|
-
top: `${rects.top + 45}px`,
|
|
42
|
-
},
|
|
43
|
-
maxWidth: `${this.maxWidth}px`,
|
|
44
|
-
});
|
|
45
|
-
this.dialogRef.afterClosed().subscribe(() => {
|
|
46
|
-
this.featureActive.set(false);
|
|
47
|
-
});
|
|
48
|
-
this.setFeatureSeen();
|
|
28
|
+
const targetElement = document.querySelector(`.${this.featureClassName}`);
|
|
29
|
+
if (!targetElement) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (ResolutionHelper.isMobileRes()) {
|
|
33
|
+
targetElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
|
49
34
|
}
|
|
35
|
+
const updatedRects = targetElement.getBoundingClientRect();
|
|
36
|
+
this.featureActive.set(true);
|
|
37
|
+
this.dialogRef = this.#dialog.open(NewFeatureDialogComponent, {
|
|
38
|
+
data: {
|
|
39
|
+
title: this.titleLocalizationKey,
|
|
40
|
+
description: this.descriptionLocalizationKey,
|
|
41
|
+
close: this.closeLocalizationKey,
|
|
42
|
+
featureLocalStorageKey: this.featureLocalStorageKey,
|
|
43
|
+
},
|
|
44
|
+
position: {
|
|
45
|
+
left: `${updatedRects.left - this.maxWidth}px`,
|
|
46
|
+
top: `${updatedRects.top + 45}px`,
|
|
47
|
+
},
|
|
48
|
+
maxWidth: `${this.maxWidth}px`,
|
|
49
|
+
});
|
|
50
|
+
this.dialogRef.afterClosed().subscribe(() => {
|
|
51
|
+
this.featureActive.set(false);
|
|
52
|
+
});
|
|
53
|
+
this.setFeatureSeen();
|
|
50
54
|
}
|
|
51
55
|
setFeatureSeen() {
|
|
52
56
|
if (this.featureLocalStorageKey) {
|
|
@@ -79,5 +83,5 @@ export class NewFeatureDialogWrapperComponent {
|
|
|
79
83
|
}], maxWidth: [{
|
|
80
84
|
type: Input
|
|
81
85
|
}] }); })();
|
|
82
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NewFeatureDialogWrapperComponent, { className: "NewFeatureDialogWrapperComponent", filePath: "lib\\new-feature-dialog\\new-feature-dialog-wrapper\\new-feature-dialog-wrapper.component.ts", lineNumber:
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NewFeatureDialogWrapperComponent, { className: "NewFeatureDialogWrapperComponent", filePath: "lib\\new-feature-dialog\\new-feature-dialog-wrapper\\new-feature-dialog-wrapper.component.ts", lineNumber: 17 }); })();
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWZlYXR1cmUtZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL25ldy1mZWF0dXJlLWRpYWxvZy9uZXctZmVhdHVyZS1kaWFsb2ctd3JhcHBlci9uZXctZmVhdHVyZS1kaWFsb2ctd3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQ0wsU0FBUyxFQUNULGVBQWUsR0FFaEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVFqRCxNQUFNLE9BQU8sZ0NBQWdDO0lBTjdDO1FBWVcsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFFeEIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUc1QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixrQkFBYSxHQUFHLEtBQUssQ0FBQztLQXFEdkI7SUF6REMsT0FBTyxDQUFxQjtJQU01QixRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCO1lBQzlDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUM7WUFDckQsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVWLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBRTFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksZ0JBQWdCLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtZQUM1RCxJQUFJLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLElBQUksQ0FBQyxvQkFBb0I7Z0JBQ2hDLFdBQVcsRUFBRSxJQUFJLENBQUMsMEJBQTBCO2dCQUM1QyxLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtnQkFDaEMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQjthQUNwRDtZQUNELFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsR0FBRyxZQUFZLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUk7Z0JBQzlDLEdBQUcsRUFBRSxHQUFHLFlBQVksQ0FBQyxHQUFHLEdBQUcsRUFBRSxJQUFJO2FBQ2xDO1lBQ0QsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSTtTQUMvQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNoQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztpSUFqRVUsZ0NBQWdDO29FQUFoQyxnQ0FBZ0MsMGZBSGpDLFlBQVksRUFBRSxlQUFlOztpRkFHNUIsZ0NBQWdDO2NBTjVDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsZ0NBQWdDO2dCQUMxQyxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSx5QkFBeUIsQ0FBQztnQkFDbkUsUUFBUSxFQUFFLEVBQUU7YUFDYjtnQkFFVSxvQkFBb0I7a0JBQTVCLEtBQUs7WUFDRywwQkFBMEI7a0JBQWxDLEtBQUs7WUFDRyxvQkFBb0I7a0JBQTVCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxzQkFBc0I7a0JBQTlCLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLOztrRkFQSyxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTWF0RGlhbG9nLFxyXG4gIE1hdERpYWxvZ01vZHVsZSxcclxuICBNYXREaWFsb2dSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTmV3RmVhdHVyZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL25ldy1mZWF0dXJlLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSZXNvbHV0aW9uSGVscGVyIH0gZnJvbSAnLi4vLi4vaGVscGVycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1uZXctZmVhdHVyZS1kaWFsb2ctd3JhcHBlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIE5ld0ZlYXR1cmVEaWFsb2dDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlOiAnJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5ld0ZlYXR1cmVEaWFsb2dXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSB0aXRsZUxvY2FsaXphdGlvbktleSE6IHN0cmluZztcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbkxvY2FsaXphdGlvbktleSE6IHN0cmluZztcclxuICBASW5wdXQoKSBjbG9zZUxvY2FsaXphdGlvbktleSE6IHN0cmluZztcclxuICBASW5wdXQoKSBmZWF0dXJlQ2xhc3NOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZlYXR1cmVMb2NhbFN0b3JhZ2VLZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGltZW91dCA9IDA7XHJcbiAgQElucHV0KCkgbWF4V2lkdGggPSAzMjA7XHJcblxyXG4gICNkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcclxuICBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxOZXdGZWF0dXJlRGlhbG9nQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgZmVhdHVyZUFjdGl2ZSA9IHNpZ25hbChmYWxzZSk7XHJcbiAgaXNGZWF0dXJlU2VlbiA9IGZhbHNlO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNGZWF0dXJlU2VlbiA9IHRoaXMuZmVhdHVyZUxvY2FsU3RvcmFnZUtleVxyXG4gICAgICA/ICEhbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5mZWF0dXJlTG9jYWxTdG9yYWdlS2V5KVxyXG4gICAgICA6IGZhbHNlO1xyXG5cclxuICAgIGlmICghdGhpcy5mZWF0dXJlQWN0aXZlKCkgJiYgIXRoaXMuaXNGZWF0dXJlU2Vlbikge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnNob3dGZWF0dXJlRGlhbG9nKCk7XHJcbiAgICAgIH0sIHRoaXMudGltZW91dCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0ZlYXR1cmVTZWVuID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvd0ZlYXR1cmVEaWFsb2coKSB7XHJcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7dGhpcy5mZWF0dXJlQ2xhc3NOYW1lfWApO1xyXG5cclxuICAgIGlmICghdGFyZ2V0RWxlbWVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFJlc29sdXRpb25IZWxwZXIuaXNNb2JpbGVSZXMoKSkge1xyXG4gICAgICB0YXJnZXRFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ2NlbnRlcicgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdXBkYXRlZFJlY3RzID0gdGFyZ2V0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHRoaXMuZmVhdHVyZUFjdGl2ZS5zZXQodHJ1ZSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuI2RpYWxvZy5vcGVuKE5ld0ZlYXR1cmVEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlTG9jYWxpemF0aW9uS2V5LFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uTG9jYWxpemF0aW9uS2V5LFxyXG4gICAgICAgIGNsb3NlOiB0aGlzLmNsb3NlTG9jYWxpemF0aW9uS2V5LFxyXG4gICAgICAgIGZlYXR1cmVMb2NhbFN0b3JhZ2VLZXk6IHRoaXMuZmVhdHVyZUxvY2FsU3RvcmFnZUtleSxcclxuICAgICAgfSxcclxuICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICBsZWZ0OiBgJHt1cGRhdGVkUmVjdHMubGVmdCAtIHRoaXMubWF4V2lkdGh9cHhgLFxyXG4gICAgICAgIHRvcDogYCR7dXBkYXRlZFJlY3RzLnRvcCArIDQ1fXB4YCxcclxuICAgICAgfSxcclxuICAgICAgbWF4V2lkdGg6IGAke3RoaXMubWF4V2lkdGh9cHhgLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZmVhdHVyZUFjdGl2ZS5zZXQoZmFsc2UpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldEZlYXR1cmVTZWVuKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEZlYXR1cmVTZWVuKCkge1xyXG4gICAgaWYgKHRoaXMuZmVhdHVyZUxvY2FsU3RvcmFnZUtleSkge1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmZlYXR1cmVMb2NhbFN0b3JhZ2VLZXksICd0cnVlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { TitleCasePipe } from '@angular/common';
|
|
2
|
+
import { Pipe } from '@angular/core';
|
|
3
|
+
import { HtmlHelper } from '../../helpers';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@ngx-translate/core";
|
|
6
|
+
export class DomainTranslatePipe {
|
|
7
|
+
constructor(translate) {
|
|
8
|
+
this.translate = translate;
|
|
9
|
+
}
|
|
10
|
+
transform(value, isDomain) {
|
|
11
|
+
if (!isDomain) {
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
const titleCasePipe = new TitleCasePipe();
|
|
15
|
+
const domainLocalizationKey = HtmlHelper.getLocalizationKey(value);
|
|
16
|
+
const domains = this.translate.instant('DOMAINS');
|
|
17
|
+
return domains[domainLocalizationKey] ?? titleCasePipe.transform(value);
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = function DomainTranslatePipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DomainTranslatePipe)(i0.ɵɵdirectiveInject(i1.TranslateService, 16)); }; }
|
|
20
|
+
static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "domainTranslate", type: DomainTranslatePipe, pure: false, standalone: true }); }
|
|
21
|
+
}
|
|
22
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DomainTranslatePipe, [{
|
|
23
|
+
type: Pipe,
|
|
24
|
+
args: [{
|
|
25
|
+
name: 'domainTranslate',
|
|
26
|
+
standalone: true,
|
|
27
|
+
pure: false
|
|
28
|
+
}]
|
|
29
|
+
}], () => [{ type: i1.TranslateService }], null); })();
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLXRyYW5zbGF0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL3BpcGVzL2RvbWFpbi10cmFuc2xhdGUvZG9tYWluLXRyYW5zbGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFRM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUFxQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUFHLENBQUM7SUFFcEQsU0FBUyxDQUFDLEtBQWEsRUFBRSxRQUFpQjtRQUN4QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsT0FBTyxLQUFLLENBQUM7UUFDZCxDQUFDO1FBRUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxNQUFNLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVuRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVsRCxPQUFPLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUUsQ0FBQztvSEFkVSxtQkFBbUI7eUZBQW5CLG1CQUFtQjs7aUZBQW5CLG1CQUFtQjtjQUwvQixJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLElBQUksRUFBRSxLQUFLO2FBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdG1sSGVscGVyIH0gZnJvbSAnLi4vLi4vaGVscGVycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnZG9tYWluVHJhbnNsYXRlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHB1cmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEb21haW5UcmFuc2xhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgaXNEb21haW46IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgaWYgKCFpc0RvbWFpbikge1xyXG5cdFx0XHRyZXR1cm4gdmFsdWU7XHJcblx0XHR9XHJcblxyXG4gICAgY29uc3QgdGl0bGVDYXNlUGlwZSA9IG5ldyBUaXRsZUNhc2VQaXBlKCk7XHJcbiAgICBjb25zdCBkb21haW5Mb2NhbGl6YXRpb25LZXkgPSBIdG1sSGVscGVyLmdldExvY2FsaXphdGlvbktleSh2YWx1ZSk7XHJcblxyXG4gICAgY29uc3QgZG9tYWlucyA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0RPTUFJTlMnKTtcclxuXHJcbiAgICByZXR1cm4gZG9tYWluc1tkb21haW5Mb2NhbGl6YXRpb25LZXldID8/IHRpdGxlQ2FzZVBpcGUudHJhbnNmb3JtKHZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './domain-translate.pipe';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvcGlwZXMvZG9tYWluLXRyYW5zbGF0ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kb21haW4tdHJhbnNsYXRlLnBpcGUnOyJdfQ==
|
|
@@ -8,4 +8,6 @@ export * from './sort-by-number';
|
|
|
8
8
|
export * from './sort-alphabetically';
|
|
9
9
|
export * from './sort-language-list';
|
|
10
10
|
export * from './file-size-label';
|
|
11
|
-
|
|
11
|
+
export * from './domain-translate';
|
|
12
|
+
export * from './sort-domains';
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvcGlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9maWx0ZXItd2l0aC1oaWdobGlnaHQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NvcnQtdHJhbnNsYXRpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9zb3J0LXRyYW5zbGF0aW9ucy1ieS1wcm9wZXJ0eSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGFuZ3VhZ2UtdHJhbnNsYXRlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRlLWFnbyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb2JqZWN0LWxlbmd0aCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc29ydC1ieS1udW1iZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL3NvcnQtYWxwaGFiZXRpY2FsbHknO1xyXG5leHBvcnQgKiBmcm9tICcuL3NvcnQtbGFuZ3VhZ2UtbGlzdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS1zaXplLWxhYmVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9kb21haW4tdHJhbnNsYXRlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zb3J0LWRvbWFpbnMnO1xyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './sort-domains.pipe';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvcGlwZXMvc29ydC1kb21haW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NvcnQtZG9tYWlucy5waXBlJzsiXX0=
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { HtmlHelper } from '../../helpers';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ngx-translate/core";
|
|
5
|
+
/**
|
|
6
|
+
* This is a custom pipe for sorting domains.
|
|
7
|
+
* It prioritizes the most important entries using a specific order:
|
|
8
|
+
* "General" first, followed by LLM-related domains, and then the rest in alphabetical order.
|
|
9
|
+
*/
|
|
10
|
+
export class SortDomainsPipe {
|
|
11
|
+
constructor(translate) {
|
|
12
|
+
this.translate = translate;
|
|
13
|
+
}
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
|
+
transform(value, isDomainList, key) {
|
|
16
|
+
if (!isDomainList) {
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
const llmDomainKeys = ['GENERAL_AI', 'PROFESSIONAL_AI', 'ACADEMIC_AI'];
|
|
20
|
+
return value.slice().sort((a, b) => {
|
|
21
|
+
const nameA = HtmlHelper.getLocalizationKey(a[key] ?? a);
|
|
22
|
+
const nameB = HtmlHelper.getLocalizationKey(b[key] ?? b);
|
|
23
|
+
const getPriority = (name) => {
|
|
24
|
+
if (name === 'GENERAL')
|
|
25
|
+
return 0;
|
|
26
|
+
if (llmDomainKeys.includes(name))
|
|
27
|
+
return 1;
|
|
28
|
+
return 2;
|
|
29
|
+
};
|
|
30
|
+
const priorityA = getPriority(nameA);
|
|
31
|
+
const priorityB = getPriority(nameB);
|
|
32
|
+
// First sort by custom priority
|
|
33
|
+
if (priorityA !== priorityB) {
|
|
34
|
+
return priorityA - priorityB;
|
|
35
|
+
}
|
|
36
|
+
const domains = this.translate.instant('DOMAINS');
|
|
37
|
+
// If same priority, sort alphabetically
|
|
38
|
+
return (domains[nameA] ?? nameA).localeCompare(domains[nameB] ?? nameB);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
static { this.ɵfac = function SortDomainsPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SortDomainsPipe)(i0.ɵɵdirectiveInject(i1.TranslateService, 16)); }; }
|
|
42
|
+
static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "sortDomains", type: SortDomainsPipe, pure: true, standalone: true }); }
|
|
43
|
+
}
|
|
44
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SortDomainsPipe, [{
|
|
45
|
+
type: Pipe,
|
|
46
|
+
args: [{
|
|
47
|
+
name: 'sortDomains',
|
|
48
|
+
standalone: true,
|
|
49
|
+
}]
|
|
50
|
+
}], () => [{ type: i1.TranslateService }], null); })();
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1kb21haW5zLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvcGlwZXMvc29ydC1kb21haW5zL3NvcnQtZG9tYWlucy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUczQzs7OztHQUlHO0FBS0gsTUFBTSxPQUFPLGVBQWU7SUFDM0IsWUFBc0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBRXBELDhEQUE4RDtJQUMvRCxTQUFTLENBQUMsS0FBWSxFQUFFLFlBQXFCLEVBQUUsR0FBVztRQUN6RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbkIsT0FBTyxLQUFLLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFdkUsT0FBTyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xDLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDekQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUV6RCxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQVksRUFBVSxFQUFFO2dCQUM1QyxJQUFJLElBQUksS0FBSyxTQUFTO29CQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLENBQUMsQ0FBQztZQUNWLENBQUMsQ0FBQztZQUVGLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFckMsZ0NBQWdDO1lBQ2hDLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM3QixPQUFPLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDOUIsQ0FBQztZQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRWxELHdDQUF3QztZQUN4QyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO2dIQWxDVyxlQUFlO3FGQUFmLGVBQWU7O2lGQUFmLGVBQWU7Y0FKM0IsSUFBSTtlQUFDO2dCQUNMLElBQUksRUFBRSxhQUFhO2dCQUNuQixVQUFVLEVBQUUsSUFBSTthQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHRtbEhlbHBlciB9IGZyb20gJy4uLy4uL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG4vKipcclxuICogVGhpcyBpcyBhIGN1c3RvbSBwaXBlIGZvciBzb3J0aW5nIGRvbWFpbnMuXHJcbiAqIEl0IHByaW9yaXRpemVzIHRoZSBtb3N0IGltcG9ydGFudCBlbnRyaWVzIHVzaW5nIGEgc3BlY2lmaWMgb3JkZXI6XHJcbiAqIFwiR2VuZXJhbFwiIGZpcnN0LCBmb2xsb3dlZCBieSBMTE0tcmVsYXRlZCBkb21haW5zLCBhbmQgdGhlbiB0aGUgcmVzdCBpbiBhbHBoYWJldGljYWwgb3JkZXIuXHJcbiAqL1xyXG5AUGlwZSh7XHJcblx0bmFtZTogJ3NvcnREb21haW5zJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU29ydERvbWFpbnNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblx0Y29uc3RydWN0b3IgKHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge31cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuXHR0cmFuc2Zvcm0odmFsdWU6IGFueVtdLCBpc0RvbWFpbkxpc3Q6IGJvb2xlYW4sIGtleTogc3RyaW5nKTogYW55W10ge1xyXG5cdFx0aWYgKCFpc0RvbWFpbkxpc3QpIHtcclxuXHRcdFx0cmV0dXJuIHZhbHVlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGxsbURvbWFpbktleXMgPSBbJ0dFTkVSQUxfQUknLCAnUFJPRkVTU0lPTkFMX0FJJywgJ0FDQURFTUlDX0FJJ107XHJcblxyXG5cdFx0cmV0dXJuIHZhbHVlLnNsaWNlKCkuc29ydCgoYSwgYikgPT4ge1xyXG5cdFx0XHRjb25zdCBuYW1lQSA9IEh0bWxIZWxwZXIuZ2V0TG9jYWxpemF0aW9uS2V5KGFba2V5XSA/PyBhKTtcclxuXHRcdFx0Y29uc3QgbmFtZUIgPSBIdG1sSGVscGVyLmdldExvY2FsaXphdGlvbktleShiW2tleV0gPz8gYik7XHJcblxyXG5cdFx0XHRjb25zdCBnZXRQcmlvcml0eSA9IChuYW1lOiBzdHJpbmcpOiBudW1iZXIgPT4ge1xyXG5cdFx0XHRcdGlmIChuYW1lID09PSAnR0VORVJBTCcpIHJldHVybiAwO1xyXG5cdFx0XHRcdGlmIChsbG1Eb21haW5LZXlzLmluY2x1ZGVzKG5hbWUpKSByZXR1cm4gMTtcclxuXHRcdFx0XHRyZXR1cm4gMjtcclxuXHRcdFx0fTtcclxuXHJcblx0XHRcdGNvbnN0IHByaW9yaXR5QSA9IGdldFByaW9yaXR5KG5hbWVBKTtcclxuXHRcdFx0Y29uc3QgcHJpb3JpdHlCID0gZ2V0UHJpb3JpdHkobmFtZUIpO1xyXG5cclxuXHRcdFx0Ly8gRmlyc3Qgc29ydCBieSBjdXN0b20gcHJpb3JpdHlcclxuXHRcdFx0aWYgKHByaW9yaXR5QSAhPT0gcHJpb3JpdHlCKSB7XHJcblx0XHRcdFx0cmV0dXJuIHByaW9yaXR5QSAtIHByaW9yaXR5QjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3QgZG9tYWlucyA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0RPTUFJTlMnKTtcclxuXHJcblx0XHRcdC8vIElmIHNhbWUgcHJpb3JpdHksIHNvcnQgYWxwaGFiZXRpY2FsbHlcclxuXHRcdFx0cmV0dXJuIChkb21haW5zW25hbWVBXSA/PyBuYW1lQSkubG9jYWxlQ29tcGFyZShkb21haW5zW25hbWVCXSA/PyBuYW1lQik7XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIl19
|
|
@@ -6,7 +6,7 @@ import * as i2 from '@angular/platform-browser';
|
|
|
6
6
|
import { Title } from '@angular/platform-browser';
|
|
7
7
|
import { Subject, map, Observable, of, take, BehaviorSubject, tap, forkJoin, takeUntil, finalize, catchError, fromEvent, debounceTime } from 'rxjs';
|
|
8
8
|
import * as i1$2 from '@angular/common';
|
|
9
|
-
import { CommonModule, AsyncPipe, DatePipe } from '@angular/common';
|
|
9
|
+
import { CommonModule, TitleCasePipe, AsyncPipe, DatePipe } from '@angular/common';
|
|
10
10
|
import { FlexLayoutModule } from '@ngbracket/ngx-layout';
|
|
11
11
|
import * as i2$1 from '@angular/material/button';
|
|
12
12
|
import { MatButtonModule, MatButton, MatIconButton } from '@angular/material/button';
|
|
@@ -1730,6 +1730,78 @@ class SortLanguageListPipe {
|
|
|
1730
1730
|
}]
|
|
1731
1731
|
}], null, null); })();
|
|
1732
1732
|
|
|
1733
|
+
class DomainTranslatePipe {
|
|
1734
|
+
constructor(translate) {
|
|
1735
|
+
this.translate = translate;
|
|
1736
|
+
}
|
|
1737
|
+
transform(value, isDomain) {
|
|
1738
|
+
if (!isDomain) {
|
|
1739
|
+
return value;
|
|
1740
|
+
}
|
|
1741
|
+
const titleCasePipe = new TitleCasePipe();
|
|
1742
|
+
const domainLocalizationKey = HtmlHelper.getLocalizationKey(value);
|
|
1743
|
+
const domains = this.translate.instant('DOMAINS');
|
|
1744
|
+
return domains[domainLocalizationKey] ?? titleCasePipe.transform(value);
|
|
1745
|
+
}
|
|
1746
|
+
static { this.ɵfac = function DomainTranslatePipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DomainTranslatePipe)(i0.ɵɵdirectiveInject(i1$1.TranslateService, 16)); }; }
|
|
1747
|
+
static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "domainTranslate", type: DomainTranslatePipe, pure: false, standalone: true }); }
|
|
1748
|
+
}
|
|
1749
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DomainTranslatePipe, [{
|
|
1750
|
+
type: Pipe,
|
|
1751
|
+
args: [{
|
|
1752
|
+
name: 'domainTranslate',
|
|
1753
|
+
standalone: true,
|
|
1754
|
+
pure: false
|
|
1755
|
+
}]
|
|
1756
|
+
}], () => [{ type: i1$1.TranslateService }], null); })();
|
|
1757
|
+
|
|
1758
|
+
/**
|
|
1759
|
+
* This is a custom pipe for sorting domains.
|
|
1760
|
+
* It prioritizes the most important entries using a specific order:
|
|
1761
|
+
* "General" first, followed by LLM-related domains, and then the rest in alphabetical order.
|
|
1762
|
+
*/
|
|
1763
|
+
class SortDomainsPipe {
|
|
1764
|
+
constructor(translate) {
|
|
1765
|
+
this.translate = translate;
|
|
1766
|
+
}
|
|
1767
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1768
|
+
transform(value, isDomainList, key) {
|
|
1769
|
+
if (!isDomainList) {
|
|
1770
|
+
return value;
|
|
1771
|
+
}
|
|
1772
|
+
const llmDomainKeys = ['GENERAL_AI', 'PROFESSIONAL_AI', 'ACADEMIC_AI'];
|
|
1773
|
+
return value.slice().sort((a, b) => {
|
|
1774
|
+
const nameA = HtmlHelper.getLocalizationKey(a[key] ?? a);
|
|
1775
|
+
const nameB = HtmlHelper.getLocalizationKey(b[key] ?? b);
|
|
1776
|
+
const getPriority = (name) => {
|
|
1777
|
+
if (name === 'GENERAL')
|
|
1778
|
+
return 0;
|
|
1779
|
+
if (llmDomainKeys.includes(name))
|
|
1780
|
+
return 1;
|
|
1781
|
+
return 2;
|
|
1782
|
+
};
|
|
1783
|
+
const priorityA = getPriority(nameA);
|
|
1784
|
+
const priorityB = getPriority(nameB);
|
|
1785
|
+
// First sort by custom priority
|
|
1786
|
+
if (priorityA !== priorityB) {
|
|
1787
|
+
return priorityA - priorityB;
|
|
1788
|
+
}
|
|
1789
|
+
const domains = this.translate.instant('DOMAINS');
|
|
1790
|
+
// If same priority, sort alphabetically
|
|
1791
|
+
return (domains[nameA] ?? nameA).localeCompare(domains[nameB] ?? nameB);
|
|
1792
|
+
});
|
|
1793
|
+
}
|
|
1794
|
+
static { this.ɵfac = function SortDomainsPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SortDomainsPipe)(i0.ɵɵdirectiveInject(i1$1.TranslateService, 16)); }; }
|
|
1795
|
+
static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "sortDomains", type: SortDomainsPipe, pure: true, standalone: true }); }
|
|
1796
|
+
}
|
|
1797
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SortDomainsPipe, [{
|
|
1798
|
+
type: Pipe,
|
|
1799
|
+
args: [{
|
|
1800
|
+
name: 'sortDomains',
|
|
1801
|
+
standalone: true,
|
|
1802
|
+
}]
|
|
1803
|
+
}], () => [{ type: i1$1.TranslateService }], null); })();
|
|
1804
|
+
|
|
1733
1805
|
class LanguageTranslateService {
|
|
1734
1806
|
constructor(translateService) {
|
|
1735
1807
|
this.translateService = translateService;
|
|
@@ -8148,29 +8220,32 @@ class NewFeatureDialogWrapperComponent {
|
|
|
8148
8220
|
this.isFeatureSeen = true;
|
|
8149
8221
|
}
|
|
8150
8222
|
showFeatureDialog() {
|
|
8151
|
-
this.
|
|
8152
|
-
|
|
8153
|
-
|
|
8154
|
-
|
|
8155
|
-
if (
|
|
8156
|
-
|
|
8157
|
-
data: {
|
|
8158
|
-
title: this.titleLocalizationKey,
|
|
8159
|
-
description: this.descriptionLocalizationKey,
|
|
8160
|
-
close: this.closeLocalizationKey,
|
|
8161
|
-
featureLocalStorageKey: this.featureLocalStorageKey,
|
|
8162
|
-
},
|
|
8163
|
-
position: {
|
|
8164
|
-
left: `${rects.left - this.maxWidth}px`,
|
|
8165
|
-
top: `${rects.top + 45}px`,
|
|
8166
|
-
},
|
|
8167
|
-
maxWidth: `${this.maxWidth}px`,
|
|
8168
|
-
});
|
|
8169
|
-
this.dialogRef.afterClosed().subscribe(() => {
|
|
8170
|
-
this.featureActive.set(false);
|
|
8171
|
-
});
|
|
8172
|
-
this.setFeatureSeen();
|
|
8223
|
+
const targetElement = document.querySelector(`.${this.featureClassName}`);
|
|
8224
|
+
if (!targetElement) {
|
|
8225
|
+
return;
|
|
8226
|
+
}
|
|
8227
|
+
if (ResolutionHelper.isMobileRes()) {
|
|
8228
|
+
targetElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
|
8173
8229
|
}
|
|
8230
|
+
const updatedRects = targetElement.getBoundingClientRect();
|
|
8231
|
+
this.featureActive.set(true);
|
|
8232
|
+
this.dialogRef = this.#dialog.open(NewFeatureDialogComponent, {
|
|
8233
|
+
data: {
|
|
8234
|
+
title: this.titleLocalizationKey,
|
|
8235
|
+
description: this.descriptionLocalizationKey,
|
|
8236
|
+
close: this.closeLocalizationKey,
|
|
8237
|
+
featureLocalStorageKey: this.featureLocalStorageKey,
|
|
8238
|
+
},
|
|
8239
|
+
position: {
|
|
8240
|
+
left: `${updatedRects.left - this.maxWidth}px`,
|
|
8241
|
+
top: `${updatedRects.top + 45}px`,
|
|
8242
|
+
},
|
|
8243
|
+
maxWidth: `${this.maxWidth}px`,
|
|
8244
|
+
});
|
|
8245
|
+
this.dialogRef.afterClosed().subscribe(() => {
|
|
8246
|
+
this.featureActive.set(false);
|
|
8247
|
+
});
|
|
8248
|
+
this.setFeatureSeen();
|
|
8174
8249
|
}
|
|
8175
8250
|
setFeatureSeen() {
|
|
8176
8251
|
if (this.featureLocalStorageKey) {
|
|
@@ -8203,7 +8278,7 @@ class NewFeatureDialogWrapperComponent {
|
|
|
8203
8278
|
}], maxWidth: [{
|
|
8204
8279
|
type: Input
|
|
8205
8280
|
}] }); })();
|
|
8206
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NewFeatureDialogWrapperComponent, { className: "NewFeatureDialogWrapperComponent", filePath: "lib\\new-feature-dialog\\new-feature-dialog-wrapper\\new-feature-dialog-wrapper.component.ts", lineNumber:
|
|
8281
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NewFeatureDialogWrapperComponent, { className: "NewFeatureDialogWrapperComponent", filePath: "lib\\new-feature-dialog\\new-feature-dialog-wrapper\\new-feature-dialog-wrapper.component.ts", lineNumber: 17 }); })();
|
|
8207
8282
|
|
|
8208
8283
|
/*
|
|
8209
8284
|
* Public API Surface of ngx-common
|
|
@@ -8213,5 +8288,5 @@ class NewFeatureDialogWrapperComponent {
|
|
|
8213
8288
|
* Generated bundle index. Do not edit.
|
|
8214
8289
|
*/
|
|
8215
8290
|
|
|
8216
|
-
export { ALERT_CONFIGURATION_TOKEN, AlertService, AuthHeadersHelper, COLLECTIONS_MENU, ClickOutsideDirective, ClickOutsideModule, CloseButtonComponent, CloseButtonModule, CombinedCollection, CombinedCollectionTooltipKey, CompanyProductComponent, CompanyProductModule, Confirmation, ConfirmationModalComponent, ConfirmationModalModule, ConfirmationService, ConversionHelper, CustomPaginatorInernationalizationHelper, CustomTitleStrategyService, DISABLE_EXPORT_ATTRIBUTE_NAME, DOMService, DateAgoModule, DateAgoPipe, DragAndDropDirective, DragAndDropModule, ERROR_CODES, EngineTermApiService, EngineTermCollectionScope, EngineTermCollectionSource, EngineTermCollectionStatus, EngineTermCollectionSubStatus, ExportFormat, ExtensionDialogComponent, ExtensionDialogModule, ExtensionDialogService, FILE_SIZE_UNIT, FileCategories, FileExtensionHelper, FileExtensions, FileSizeLabelPipe, FileTypeIcons, FileTypes, FileUploadComponent, FileUploadErrorTypeEnum, FileUploadModule, FilterBarComponent, FilterBarModule, FilterWithHighlightModule, FilterWithHighlightPipe, FooterComponent, FooterModule, GlobalMessageComponent, HashHelper, HtmlElementParseHelper, HtmlHelper, IconService, InlineMessageComponent, InlineMessageIconPosition, InlineMessageModule, InlineMessageType, LAST_USED_SYSTEM_LOCAL_STORAGE_KEY, LLMComponent, LLMModule, LLM_CONFIGURATION_TOKEN, LanguageTranslateModule, LanguageTranslatePipe, LanguageTranslateService, MatButtonLoadingDirective, MatButtonLoadingModule, MissingTranslationHandlerService, MissingTranslationHelper, MtCollectionStatus, MultiFunctionalTableComponent, MultiFunctionalTableModule, NewFeatureDialogWrapperComponent, NotificationMessageComponent, NotificationMessageModule, NotificationMessageType, NotificationService, OPEN_CLOSE_BTN_ICONS_TOKEN, ObjectLengthModule, ObjectLengthPipe, OpenCloseButtonComponent, OpenCloseButtonModule, OpenExtensionDialogComponent, Operations, PlausibleEventDirective, PlausibleHelper, PlausibleModule, ResolutionHelper, SCREEN_SIZE, SaveFileHelper, SelectLanguageDialogComponent, SidebarComponent, SidebarService, SortAlphabeticallyModule, SortAlphabeticallyPipe, SortByNumberPipe, SortHelper, SortLanguageListPipe, SortTranslationsByPropertyModule, SortTranslationsByPropertyPipe, SortTranslationsModule, SortTranslationsPipe, StatusDisplayComponent, StatusDisplayModule, SubscriptionComponent, SubscriptionPlan, SystemService, TerminologyApiService, TerminologyCollectionService, TerminologyComponent, TerminologyConfigService, TerminologyCreateCollectionComponent, TerminologyModule, TerminologyService, TextToSpeechComponent, TldLoaderComponent, TldLoaderModule, ToastComponent, ToastService, getFileSizeLabel, provideCustomTitleStrategy };
|
|
8291
|
+
export { ALERT_CONFIGURATION_TOKEN, AlertService, AuthHeadersHelper, COLLECTIONS_MENU, ClickOutsideDirective, ClickOutsideModule, CloseButtonComponent, CloseButtonModule, CombinedCollection, CombinedCollectionTooltipKey, CompanyProductComponent, CompanyProductModule, Confirmation, ConfirmationModalComponent, ConfirmationModalModule, ConfirmationService, ConversionHelper, CustomPaginatorInernationalizationHelper, CustomTitleStrategyService, DISABLE_EXPORT_ATTRIBUTE_NAME, DOMService, DateAgoModule, DateAgoPipe, DomainTranslatePipe, DragAndDropDirective, DragAndDropModule, ERROR_CODES, EngineTermApiService, EngineTermCollectionScope, EngineTermCollectionSource, EngineTermCollectionStatus, EngineTermCollectionSubStatus, ExportFormat, ExtensionDialogComponent, ExtensionDialogModule, ExtensionDialogService, FILE_SIZE_UNIT, FileCategories, FileExtensionHelper, FileExtensions, FileSizeLabelPipe, FileTypeIcons, FileTypes, FileUploadComponent, FileUploadErrorTypeEnum, FileUploadModule, FilterBarComponent, FilterBarModule, FilterWithHighlightModule, FilterWithHighlightPipe, FooterComponent, FooterModule, GlobalMessageComponent, HashHelper, HtmlElementParseHelper, HtmlHelper, IconService, InlineMessageComponent, InlineMessageIconPosition, InlineMessageModule, InlineMessageType, LAST_USED_SYSTEM_LOCAL_STORAGE_KEY, LLMComponent, LLMModule, LLM_CONFIGURATION_TOKEN, LanguageTranslateModule, LanguageTranslatePipe, LanguageTranslateService, MatButtonLoadingDirective, MatButtonLoadingModule, MissingTranslationHandlerService, MissingTranslationHelper, MtCollectionStatus, MultiFunctionalTableComponent, MultiFunctionalTableModule, NewFeatureDialogWrapperComponent, NotificationMessageComponent, NotificationMessageModule, NotificationMessageType, NotificationService, OPEN_CLOSE_BTN_ICONS_TOKEN, ObjectLengthModule, ObjectLengthPipe, OpenCloseButtonComponent, OpenCloseButtonModule, OpenExtensionDialogComponent, Operations, PlausibleEventDirective, PlausibleHelper, PlausibleModule, ResolutionHelper, SCREEN_SIZE, SaveFileHelper, SelectLanguageDialogComponent, SidebarComponent, SidebarService, SortAlphabeticallyModule, SortAlphabeticallyPipe, SortByNumberPipe, SortDomainsPipe, SortHelper, SortLanguageListPipe, SortTranslationsByPropertyModule, SortTranslationsByPropertyPipe, SortTranslationsModule, SortTranslationsPipe, StatusDisplayComponent, StatusDisplayModule, SubscriptionComponent, SubscriptionPlan, SystemService, TerminologyApiService, TerminologyCollectionService, TerminologyComponent, TerminologyConfigService, TerminologyCreateCollectionComponent, TerminologyModule, TerminologyService, TextToSpeechComponent, TldLoaderComponent, TldLoaderModule, ToastComponent, ToastService, getFileSizeLabel, provideCustomTitleStrategy };
|
|
8217
8292
|
//# sourceMappingURL=tilde-nlp-ngx-common.mjs.map
|