@dso-design-system/ui 0.1.0 → 0.1.1
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/badge/badge.directive.mjs +68 -0
- package/esm2022/public-api.mjs +4 -2
- package/fesm2022/dso-design-system-ui.mjs +68 -71
- package/fesm2022/dso-design-system-ui.mjs.map +1 -1
- package/lib/badge/badge.directive.d.ts +15 -0
- package/package.json +1 -1
- package/public-api.d.ts +3 -1
- package/esm2022/lib/directives/truncate.directive.mjs +0 -71
- package/lib/directives/truncate.directive.d.ts +0 -23
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ElementRef, Renderer2, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class BadgeDirective implements OnChanges {
|
|
4
|
+
private el;
|
|
5
|
+
private renderer;
|
|
6
|
+
label: string | number | null;
|
|
7
|
+
badgeColor: 'info' | 'success' | 'warning' | 'danger';
|
|
8
|
+
private badgeEl;
|
|
9
|
+
constructor(el: ElementRef, // Reference to the host element (the one with [dsoDirectiveBadge])
|
|
10
|
+
renderer: Renderer2);
|
|
11
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
12
|
+
private updateBadge;
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BadgeDirective, never>;
|
|
14
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BadgeDirective, "[dsoDirectiveBadge]", never, { "label": { "alias": "dsoDirectiveBadge"; "required": false; }; "badgeColor": { "alias": "badgeColor"; "required": false; }; }, {}, never, never, true, never>;
|
|
15
|
+
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export * from './lib/alert/alert.component';
|
|
2
2
|
export * from './lib/badge/badge.component';
|
|
3
|
+
export * from './lib/badge/badge.directive';
|
|
3
4
|
export * from './lib/breadcrumb/breadcrumb.component';
|
|
4
5
|
export * from './lib/button/button.component';
|
|
5
6
|
export * from './lib/checkbox/checkbox.component';
|
|
6
7
|
export * from './lib/datepicker/datepicker.component';
|
|
7
8
|
export * from './lib/dialog/dialog.component';
|
|
8
|
-
export * from './lib/directives/truncate.directive';
|
|
9
9
|
export * from './lib/dropdown-list/dropdown-list.component';
|
|
10
10
|
export * from './lib/file-upload-items/file-upload-items.component';
|
|
11
11
|
export * from './lib/file-upload-multiple/file-upload-multiple.component';
|
|
@@ -20,8 +20,10 @@ export * from './lib/side-navigation-bar/side-navigation-bar.component';
|
|
|
20
20
|
export * from './lib/spinner/spinner.component';
|
|
21
21
|
export * from './lib/table/table.component';
|
|
22
22
|
export * from './lib/tabs/tabs.component';
|
|
23
|
+
export * from './lib/tabs/tab.component';
|
|
23
24
|
export * from './lib/tag/tag.component';
|
|
24
25
|
export * from './lib/text-area/text-area.component';
|
|
25
26
|
export * from './lib/toast/toast.component';
|
|
26
27
|
export * from './lib/tooltip/tooltip.component';
|
|
28
|
+
export * from './lib/tooltip/tooltip.directive';
|
|
27
29
|
export * from './lib/top-navigation-bar/top-navigation-bar.component';
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, HostListener } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class DsoTruncateDirective {
|
|
4
|
-
el;
|
|
5
|
-
/**
|
|
6
|
-
* Enable or disable truncation.
|
|
7
|
-
* Can be used as `<div dsoTruncate>` (enabled by default) or `[dsoTruncate]="false"`.
|
|
8
|
-
*/
|
|
9
|
-
enableTruncate = true;
|
|
10
|
-
/** Optional: override tooltip text when text is truncated */
|
|
11
|
-
truncateTooltipText;
|
|
12
|
-
constructor(el) {
|
|
13
|
-
this.el = el;
|
|
14
|
-
}
|
|
15
|
-
/** Initialize truncation after the view is loaded */
|
|
16
|
-
ngAfterViewInit() {
|
|
17
|
-
if (this.enableTruncate) {
|
|
18
|
-
this.applyTruncationStyles();
|
|
19
|
-
this.updateTooltip();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
/** Re-check overflow and update tooltip on window resize */
|
|
23
|
-
onResize() {
|
|
24
|
-
if (this.enableTruncate) {
|
|
25
|
-
this.updateTooltip();
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
// -------------------------
|
|
29
|
-
// PRIVATE METHODS
|
|
30
|
-
// -------------------------
|
|
31
|
-
/** Apply CSS styles necessary for truncation */
|
|
32
|
-
applyTruncationStyles() {
|
|
33
|
-
const element = this.el.nativeElement;
|
|
34
|
-
element.style.whiteSpace = 'nowrap';
|
|
35
|
-
element.style.overflow = 'hidden';
|
|
36
|
-
element.style.textOverflow = 'ellipsis';
|
|
37
|
-
element.style.display = 'inline-block';
|
|
38
|
-
element.style.maxWidth = '100%';
|
|
39
|
-
}
|
|
40
|
-
/** Update tooltip based on overflow state */
|
|
41
|
-
updateTooltip() {
|
|
42
|
-
const el = this.el.nativeElement;
|
|
43
|
-
const isOverflowing = el.scrollWidth > el.clientWidth;
|
|
44
|
-
if (isOverflowing) {
|
|
45
|
-
// Add or update tooltip with either the provided text or element content
|
|
46
|
-
el.setAttribute('dsoDirectiveTooltip', this.truncateTooltipText || el.textContent || '');
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
// Remove tooltip if content fits
|
|
50
|
-
el.removeAttribute('dsoDirectiveTooltip');
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DsoTruncateDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
54
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: DsoTruncateDirective, isStandalone: true, selector: "[dsoTruncate]", inputs: { enableTruncate: ["dsoTruncate", "enableTruncate"], truncateTooltipText: "truncateTooltipText" }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0 });
|
|
55
|
-
}
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DsoTruncateDirective, decorators: [{
|
|
57
|
-
type: Directive,
|
|
58
|
-
args: [{
|
|
59
|
-
selector: '[dsoTruncate]',
|
|
60
|
-
standalone: true
|
|
61
|
-
}]
|
|
62
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { enableTruncate: [{
|
|
63
|
-
type: Input,
|
|
64
|
-
args: ['dsoTruncate']
|
|
65
|
-
}], truncateTooltipText: [{
|
|
66
|
-
type: Input
|
|
67
|
-
}], onResize: [{
|
|
68
|
-
type: HostListener,
|
|
69
|
-
args: ['window:resize']
|
|
70
|
-
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9kaXJlY3RpdmVzL3RydW5jYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBaUIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0xRixNQUFNLE9BQU8sb0JBQW9CO0lBV1g7SUFUcEI7OztPQUdHO0lBQ21CLGNBQWMsR0FBaUIsSUFBSSxDQUFDO0lBRTFELDZEQUE2RDtJQUNwRCxtQkFBbUIsQ0FBVTtJQUV0QyxZQUFvQixFQUEyQjtRQUEzQixPQUFFLEdBQUYsRUFBRSxDQUF5QjtJQUFHLENBQUM7SUFFbkQscURBQXFEO0lBQ3JELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCw0REFBNEQ7SUFFNUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELDRCQUE0QjtJQUM1QixrQkFBa0I7SUFDbEIsNEJBQTRCO0lBRTVCLGdEQUFnRDtJQUN4QyxxQkFBcUI7UUFDM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNsQyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUM7UUFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQsNkNBQTZDO0lBQ3JDLGFBQWE7UUFDbkIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFFakMsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBRXRELElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIseUVBQXlFO1lBQ3pFLEVBQUUsQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0YsQ0FBQzthQUFNLENBQUM7WUFDTixpQ0FBaUM7WUFDakMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO3dHQXhEVSxvQkFBb0I7NEZBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOytFQU91QixjQUFjO3NCQUFuQyxLQUFLO3VCQUFDLGFBQWE7Z0JBR1gsbUJBQW1CO3NCQUEzQixLQUFLO2dCQWNOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tkc29UcnVuY2F0ZV0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIERzb1RydW5jYXRlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIC8qKiBcclxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSB0cnVuY2F0aW9uLiAgXHJcbiAgICogQ2FuIGJlIHVzZWQgYXMgYDxkaXYgZHNvVHJ1bmNhdGU+YCAoZW5hYmxlZCBieSBkZWZhdWx0KSBvciBgW2Rzb1RydW5jYXRlXT1cImZhbHNlXCJgLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgnZHNvVHJ1bmNhdGUnKSBlbmFibGVUcnVuY2F0ZTogYm9vbGVhbiB8ICcnID0gdHJ1ZTtcclxuXHJcbiAgLyoqIE9wdGlvbmFsOiBvdmVycmlkZSB0b29sdGlwIHRleHQgd2hlbiB0ZXh0IGlzIHRydW5jYXRlZCAqL1xyXG4gIEBJbnB1dCgpIHRydW5jYXRlVG9vbHRpcFRleHQ/OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxyXG5cclxuICAvKiogSW5pdGlhbGl6ZSB0cnVuY2F0aW9uIGFmdGVyIHRoZSB2aWV3IGlzIGxvYWRlZCAqL1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmVuYWJsZVRydW5jYXRlKSB7XHJcbiAgICAgIHRoaXMuYXBwbHlUcnVuY2F0aW9uU3R5bGVzKCk7XHJcbiAgICAgIHRoaXMudXBkYXRlVG9vbHRpcCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFJlLWNoZWNrIG92ZXJmbG93IGFuZCB1cGRhdGUgdG9vbHRpcCBvbiB3aW5kb3cgcmVzaXplICovXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXHJcbiAgb25SZXNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5lbmFibGVUcnVuY2F0ZSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVRvb2x0aXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBQUklWQVRFIE1FVEhPRFNcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIC8qKiBBcHBseSBDU1Mgc3R5bGVzIG5lY2Vzc2FyeSBmb3IgdHJ1bmNhdGlvbiAqL1xyXG4gIHByaXZhdGUgYXBwbHlUcnVuY2F0aW9uU3R5bGVzKCkge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcclxuICAgIGVsZW1lbnQuc3R5bGUud2hpdGVTcGFjZSA9ICdub3dyYXAnO1xyXG4gICAgZWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xyXG4gICAgZWxlbWVudC5zdHlsZS50ZXh0T3ZlcmZsb3cgPSAnZWxsaXBzaXMnO1xyXG4gICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZS1ibG9jayc7XHJcbiAgICBlbGVtZW50LnN0eWxlLm1heFdpZHRoID0gJzEwMCUnO1xyXG4gIH1cclxuXHJcbiAgLyoqIFVwZGF0ZSB0b29sdGlwIGJhc2VkIG9uIG92ZXJmbG93IHN0YXRlICovXHJcbiAgcHJpdmF0ZSB1cGRhdGVUb29sdGlwKCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgY29uc3QgaXNPdmVyZmxvd2luZyA9IGVsLnNjcm9sbFdpZHRoID4gZWwuY2xpZW50V2lkdGg7XHJcblxyXG4gICAgaWYgKGlzT3ZlcmZsb3dpbmcpIHtcclxuICAgICAgLy8gQWRkIG9yIHVwZGF0ZSB0b29sdGlwIHdpdGggZWl0aGVyIHRoZSBwcm92aWRlZCB0ZXh0IG9yIGVsZW1lbnQgY29udGVudFxyXG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2Rzb0RpcmVjdGl2ZVRvb2x0aXAnLCB0aGlzLnRydW5jYXRlVG9vbHRpcFRleHQgfHwgZWwudGV4dENvbnRlbnQgfHwgJycpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gUmVtb3ZlIHRvb2x0aXAgaWYgY29udGVudCBmaXRzXHJcbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZSgnZHNvRGlyZWN0aXZlVG9vbHRpcCcpO1xyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ElementRef, AfterViewInit } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class DsoTruncateDirective implements AfterViewInit {
|
|
4
|
-
private el;
|
|
5
|
-
/**
|
|
6
|
-
* Enable or disable truncation.
|
|
7
|
-
* Can be used as `<div dsoTruncate>` (enabled by default) or `[dsoTruncate]="false"`.
|
|
8
|
-
*/
|
|
9
|
-
enableTruncate: boolean | '';
|
|
10
|
-
/** Optional: override tooltip text when text is truncated */
|
|
11
|
-
truncateTooltipText?: string;
|
|
12
|
-
constructor(el: ElementRef<HTMLElement>);
|
|
13
|
-
/** Initialize truncation after the view is loaded */
|
|
14
|
-
ngAfterViewInit(): void;
|
|
15
|
-
/** Re-check overflow and update tooltip on window resize */
|
|
16
|
-
onResize(): void;
|
|
17
|
-
/** Apply CSS styles necessary for truncation */
|
|
18
|
-
private applyTruncationStyles;
|
|
19
|
-
/** Update tooltip based on overflow state */
|
|
20
|
-
private updateTooltip;
|
|
21
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DsoTruncateDirective, never>;
|
|
22
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<DsoTruncateDirective, "[dsoTruncate]", never, { "enableTruncate": { "alias": "dsoTruncate"; "required": false; }; "truncateTooltipText": { "alias": "truncateTooltipText"; "required": false; }; }, {}, never, never, true, never>;
|
|
23
|
-
}
|