@ng-vagabond-lab/ng-dsv 0.0.4 → 0.0.5
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/ds/accordion/component/accordion.component.d.ts +12 -0
- package/ds/accordion/index.d.ts +5 -0
- package/ds/avatar/component/avatar.component.d.ts +12 -0
- package/ds/avatar/index.d.ts +5 -0
- package/ds/button/component/button.component.d.ts +19 -0
- package/ds/card/component/card.component.d.ts +10 -0
- package/ds/card/index.d.ts +5 -0
- package/ds/theme/component/dsv.theme.component.d.ts +29 -0
- package/ds/theme/index.d.ts +5 -0
- package/ds/toast/component/toast.component.d.ts +13 -0
- package/ds/toast/dto/toast.dto.d.ts +10 -0
- package/ds/toast/index.d.ts +5 -0
- package/ds/toast/service/toast.service.d.ts +16 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-accordion.mjs +38 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-accordion.mjs.map +1 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-avatar.mjs +40 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-avatar.mjs.map +1 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs +53 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs.map +1 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs +36 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs.map +1 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs +73 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs.map +1 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs +88 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs.map +1 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-i18n.mjs +25 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-i18n.mjs.map +1 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-type.mjs +4 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv-type.mjs.map +1 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv.mjs +34 -0
- package/fesm2022/ng-vagabond-lab-ng-dsv.mjs.map +1 -0
- package/i18n/index.d.ts +5 -0
- package/i18n/src/translate.pipe.d.ts +7 -0
- package/index.d.ts +5 -0
- package/package.json +46 -6
- package/{public-api.ts → public-api.d.ts} +0 -4
- package/src/ui-sdk.component.d.ts +5 -0
- package/src/ui-sdk.service.d.ts +6 -0
- package/type/type.d.ts +1 -0
- package/.storybook/main.ts +0 -18
- package/.storybook/preview.ts +0 -42
- package/.storybook/tsconfig.json +0 -21
- package/.storybook/typings.d.ts +0 -4
- package/assets/global.scss +0 -11
- package/documentation.json +0 -795
- package/ds/accordion/component/accordion.component.html +0 -8
- package/ds/accordion/component/accordion.component.scss +0 -46
- package/ds/accordion/component/accordion.component.stories.ts +0 -29
- package/ds/accordion/component/accordion.component.ts +0 -33
- package/ds/accordion/ng-package.json +0 -6
- package/ds/avatar/component/avatar.component.html +0 -4
- package/ds/avatar/component/avatar.component.scss +0 -46
- package/ds/avatar/component/avatar.component.stories.ts +0 -40
- package/ds/avatar/component/avatar.component.ts +0 -30
- package/ds/avatar/ng-package.json +0 -6
- package/ds/button/component/button.component.html +0 -24
- package/ds/button/component/button.component.scss +0 -56
- package/ds/button/component/button.component.ts +0 -33
- package/ds/button/index.ts +0 -1
- package/ds/button/ng-package.json +0 -6
- package/ds/card/component/card.component.html +0 -15
- package/ds/card/component/card.component.scss +0 -28
- package/ds/card/component/card.component.stories.ts +0 -32
- package/ds/card/component/card.component.ts +0 -18
- package/ds/card/ng-package.json +0 -6
- package/ds/theme/component/dsv.theme.component.scss +0 -44
- package/ds/theme/component/dsv.theme.component.ts +0 -69
- package/ds/theme/index.ts +0 -1
- package/ds/theme/ng-package.json +0 -6
- package/ds/theme/switch/component/dsv.theme.switch.component.html +0 -6
- package/ds/theme/switch/component/dsv.theme.switch.component.ts +0 -27
- package/ds/theme/switch/service/dsv.theme.switch.service.ts +0 -29
- package/ds/toast/component/toast.component.html +0 -17
- package/ds/toast/component/toast.component.scss +0 -64
- package/ds/toast/component/toast.component.ts +0 -38
- package/ds/toast/dto/toast.dto.ts +0 -11
- package/ds/toast/index.ts +0 -1
- package/ds/toast/ng-package.json +0 -6
- package/ds/toast/service/toast.service.ts +0 -53
- package/ds/toast/stories/toast.stories.ts +0 -78
- package/i18n/index.ts +0 -1
- package/i18n/ng-package.json +0 -6
- package/i18n/src/translate.pipe.spec.ts +0 -8
- package/i18n/src/translate.pipe.ts +0 -12
- package/index.ts +0 -1
- package/ng-package.json +0 -7
- package/src/ui-sdk.component.spec.ts +0 -22
- package/src/ui-sdk.component.ts +0 -10
- package/src/ui-sdk.service.spec.ts +0 -16
- package/src/ui-sdk.service.ts +0 -9
- package/tsconfig.lib.json +0 -15
- package/tsconfig.lib.prod.json +0 -11
- package/tsconfig.spec.json +0 -15
- package/type/index.ts +0 -1
- package/type/ng-package.json +0 -6
- package/type/type.ts +0 -9
- /package/ds/accordion/{public-api.ts → public-api.d.ts} +0 -0
- /package/ds/avatar/{public-api.ts → public-api.d.ts} +0 -0
- /package/ds/{accordion/index.ts → button/index.d.ts} +0 -0
- /package/ds/button/{public-api.ts → public-api.d.ts} +0 -0
- /package/ds/card/{public-api.ts → public-api.d.ts} +0 -0
- /package/ds/theme/{public-api.ts → public-api.d.ts} +0 -0
- /package/ds/toast/{public-api.ts → public-api.d.ts} +0 -0
- /package/i18n/{public-api.ts → public-api.d.ts} +0 -0
- /package/{ds/avatar/index.ts → type/index.d.ts} +0 -0
- /package/type/{public-api.ts → public-api.d.ts} +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SimpleChanges, WritableSignal } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class DsvAccordionComponent {
|
|
4
|
+
open: boolean;
|
|
5
|
+
title: string;
|
|
6
|
+
color: string;
|
|
7
|
+
isOpen: WritableSignal<boolean>;
|
|
8
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
9
|
+
doToogle(): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DsvAccordionComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DsvAccordionComponent, "dsv-accordion", never, { "open": { "alias": "open"; "required": false; }; "title": { "alias": "title"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ColorType } from '@ng-vagabond-lab/ng-dsv/type';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class DsvAvatarComponent {
|
|
4
|
+
avatar: string;
|
|
5
|
+
color: ColorType;
|
|
6
|
+
callback?: () => void;
|
|
7
|
+
isImage(): boolean;
|
|
8
|
+
showAvatar(): string;
|
|
9
|
+
triggerEvent(): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DsvAvatarComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DsvAvatarComponent, "dsv-avatar", never, { "avatar": { "alias": "avatar"; "required": false; }; "color": { "alias": "color"; "required": false; }; "callback": { "alias": "callback"; "required": false; }; }, {}, never, never, true, never>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ColorType } from '@ng-vagabond-lab/ng-dsv/type';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export type ButtonWidthType = 'small' | 'medium' | 'large';
|
|
4
|
+
export type ButtonVariantType = 'text' | 'outlined' | 'contained';
|
|
5
|
+
export declare class DsvButtonComponent {
|
|
6
|
+
libelle: string;
|
|
7
|
+
color: ColorType;
|
|
8
|
+
icon: string;
|
|
9
|
+
iconEnd: string;
|
|
10
|
+
width: ButtonWidthType;
|
|
11
|
+
variant: ButtonVariantType;
|
|
12
|
+
fullwidth: boolean;
|
|
13
|
+
show: boolean;
|
|
14
|
+
disabled: boolean;
|
|
15
|
+
callback: import("@angular/core").OutputEmitterRef<void>;
|
|
16
|
+
doClick(event: Event): void;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DsvButtonComponent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DsvButtonComponent, "dsv-button", never, { "libelle": { "alias": "libelle"; "required": false; }; "color": { "alias": "color"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconEnd": { "alias": "iconEnd"; "required": false; }; "width": { "alias": "width"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "fullwidth": { "alias": "fullwidth"; "required": false; }; "show": { "alias": "show"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "callback": "callback"; }, never, ["*"], true, never>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class DsvCardComponent {
|
|
3
|
+
avatar?: string;
|
|
4
|
+
title: string;
|
|
5
|
+
subtitle: string;
|
|
6
|
+
image: string;
|
|
7
|
+
alt: string;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DsvCardComponent, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DsvCardComponent, "dsv-card", never, { "avatar": { "alias": "avatar"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "image": { "alias": "image"; "required": false; }; "alt": { "alias": "alt"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export type ThemeType = {
|
|
3
|
+
background?: string;
|
|
4
|
+
backgroundDark?: string;
|
|
5
|
+
text?: string;
|
|
6
|
+
textDark?: string;
|
|
7
|
+
primary?: string;
|
|
8
|
+
secondary?: string;
|
|
9
|
+
success?: string;
|
|
10
|
+
info?: string;
|
|
11
|
+
warning?: string;
|
|
12
|
+
error?: string;
|
|
13
|
+
};
|
|
14
|
+
export declare class DsvThemeComponent {
|
|
15
|
+
theme: ThemeType;
|
|
16
|
+
background: string;
|
|
17
|
+
backgroundDark: string;
|
|
18
|
+
text: string;
|
|
19
|
+
textDark: string;
|
|
20
|
+
primary: string;
|
|
21
|
+
secondary: string;
|
|
22
|
+
success: string;
|
|
23
|
+
info: string;
|
|
24
|
+
warning: string;
|
|
25
|
+
error: string;
|
|
26
|
+
ngOnInit(): void;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DsvThemeComponent, never>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DsvThemeComponent, "dsv-theme", never, { "theme": { "alias": "theme"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
29
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ToastService } from '../service/toast.service';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export type Theme = {
|
|
4
|
+
primary: string;
|
|
5
|
+
text: string;
|
|
6
|
+
};
|
|
7
|
+
export declare class DsvToastComponent {
|
|
8
|
+
toastService: ToastService;
|
|
9
|
+
constructor();
|
|
10
|
+
ngOnInit(): void;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DsvToastComponent, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DsvToastComponent, "dsv-toast", never, {}, {}, never, never, true, never>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { WritableSignal } from '@angular/core';
|
|
2
|
+
import { IToastDto } from '../dto/toast.dto';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare const MAX_TOASTS = 10;
|
|
5
|
+
export declare const DURATION_DEFAULT = 5000;
|
|
6
|
+
export declare const DURATION_TIMEOUT = 10;
|
|
7
|
+
export declare class ToastService {
|
|
8
|
+
toastShows: WritableSignal<IToastDto[]>;
|
|
9
|
+
toasts: WritableSignal<IToastDto[]>;
|
|
10
|
+
showToast(toast: IToastDto): void;
|
|
11
|
+
consumeToast(toast: IToastDto): void;
|
|
12
|
+
closeToast(uuid: string): void;
|
|
13
|
+
removeToastFromQueue(uuid: string): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToastService, never>;
|
|
15
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ToastService>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as i1 from '@angular/common';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { signal, Component, Input } from '@angular/core';
|
|
5
|
+
|
|
6
|
+
class DsvAccordionComponent {
|
|
7
|
+
open = false;
|
|
8
|
+
title = '';
|
|
9
|
+
color = '';
|
|
10
|
+
isOpen = signal(this.open);
|
|
11
|
+
ngOnChanges(changes) {
|
|
12
|
+
if (changes['open']) {
|
|
13
|
+
this.isOpen.set(Boolean(changes['open'].currentValue === 'true'));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
doToogle() {
|
|
17
|
+
this.isOpen.update((tootle) => !tootle);
|
|
18
|
+
}
|
|
19
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: DsvAccordionComponent, isStandalone: true, selector: "dsv-accordion", inputs: { open: "open", title: "title", color: "color" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"dsv-accordion-header\" (click)=\"doToogle()\">\n {{ title }}\n <i class=\"ri-arrow-up-s-line\" *ngIf=\"isOpen()\"></i>\n <i class=\"ri-arrow-down-s-line\" *ngIf=\"!isOpen()\"></i>\n</div>\n<div class=\"dsv-accordion-text\" [class.open]=\"isOpen()\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;gap:7px;width:calc(100% - 20px);padding:10px!important;background-color:#fff;position:relative;border-radius:0}:host .dsv-accordion-header{display:flex;width:95%;font-weight:700;cursor:pointer;padding:5px 10px}:host .dsv-accordion-header i{position:absolute;right:10px}:host .dsv-accordion-text{display:flex;width:100%;overflow:hidden;padding:0 10px;transform:scaleY(0);transform-origin:top;opacity:0;height:0;transition:transform .3s ease-out,opacity .2s ease-out,height .2s ease-out}:host .dsv-accordion-text.open{padding:10px;transform:scaleY(1);opacity:1;height:auto}::ng-deep .dark dsv-accordion{background-color:#2c2c2c}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvAccordionComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: 'dsv-accordion', standalone: true, imports: [CommonModule], template: "<div class=\"dsv-accordion-header\" (click)=\"doToogle()\">\n {{ title }}\n <i class=\"ri-arrow-up-s-line\" *ngIf=\"isOpen()\"></i>\n <i class=\"ri-arrow-down-s-line\" *ngIf=\"!isOpen()\"></i>\n</div>\n<div class=\"dsv-accordion-text\" [class.open]=\"isOpen()\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;gap:7px;width:calc(100% - 20px);padding:10px!important;background-color:#fff;position:relative;border-radius:0}:host .dsv-accordion-header{display:flex;width:95%;font-weight:700;cursor:pointer;padding:5px 10px}:host .dsv-accordion-header i{position:absolute;right:10px}:host .dsv-accordion-text{display:flex;width:100%;overflow:hidden;padding:0 10px;transform:scaleY(0);transform-origin:top;opacity:0;height:0;transition:transform .3s ease-out,opacity .2s ease-out,height .2s ease-out}:host .dsv-accordion-text.open{padding:10px;transform:scaleY(1);opacity:1;height:auto}::ng-deep .dark dsv-accordion{background-color:#2c2c2c}\n"] }]
|
|
25
|
+
}], propDecorators: { open: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], title: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], color: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}] } });
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Generated bundle index. Do not edit.
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
export { DsvAccordionComponent };
|
|
38
|
+
//# sourceMappingURL=ng-vagabond-lab-ng-dsv-ds-accordion.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-accordion.mjs","sources":["../../../projects/ng-dsv/ds/accordion/component/accordion.component.ts","../../../projects/ng-dsv/ds/accordion/component/accordion.component.html","../../../projects/ng-dsv/ds/accordion/ng-vagabond-lab-ng-dsv-ds-accordion.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n signal,\n SimpleChanges,\n WritableSignal,\n} from '@angular/core';\n\n@Component({\n selector: 'dsv-accordion',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n})\nexport class DsvAccordionComponent {\n @Input() open: boolean = false;\n @Input() title: string = '';\n @Input() color: string = '';\n\n isOpen: WritableSignal<boolean> = signal(this.open);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['open']) {\n this.isOpen.set(Boolean(changes['open'].currentValue === 'true'));\n }\n }\n\n doToogle() {\n this.isOpen.update((tootle) => !tootle);\n }\n}\n","<div class=\"dsv-accordion-header\" (click)=\"doToogle()\">\n {{ title }}\n <i class=\"ri-arrow-up-s-line\" *ngIf=\"isOpen()\"></i>\n <i class=\"ri-arrow-down-s-line\" *ngIf=\"!isOpen()\"></i>\n</div>\n<div class=\"dsv-accordion-text\" [class.open]=\"isOpen()\">\n <ng-content></ng-content>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAgBa,qBAAqB,CAAA;IACvB,IAAI,GAAY,KAAK;IACrB,KAAK,GAAW,EAAE;IAClB,KAAK,GAAW,EAAE;AAE3B,IAAA,MAAM,GAA4B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAEnD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC;;;IAIrE,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC;;uGAd9B,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBlC,kTAQA,EAAA,MAAA,EAAA,CAAA,+pBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EACb,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,+pBAAA,CAAA,EAAA;8BAKd,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,KAAK,EAAA,CAAA;sBAAb;;;AEnBH;;AAEG;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as i1 from '@angular/common';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Component, Input } from '@angular/core';
|
|
5
|
+
|
|
6
|
+
class DsvAvatarComponent {
|
|
7
|
+
avatar = '';
|
|
8
|
+
color = 'primary';
|
|
9
|
+
callback;
|
|
10
|
+
isImage() {
|
|
11
|
+
return this.avatar.startsWith('http');
|
|
12
|
+
}
|
|
13
|
+
showAvatar() {
|
|
14
|
+
return this.avatar.substring(0, 1).toUpperCase();
|
|
15
|
+
}
|
|
16
|
+
triggerEvent() {
|
|
17
|
+
if (this.callback) {
|
|
18
|
+
this.callback();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: DsvAvatarComponent, isStandalone: true, selector: "dsv-avatar", inputs: { avatar: "avatar", color: "color", callback: "callback" }, ngImport: i0, template: "<div class=\"dsv-avatar\" [ngClass]=\"color + ' ' + (callback ? 'callback' : '')\" (click)=\"triggerEvent()\">\n <span *ngIf=\"!isImage()\">{{showAvatar()}}</span>\n <img src=\"{{avatar}}\" *ngIf=\"isImage()\" alt=\"avatar\" />\n</div>", styles: [".dsv-avatar{position:relative;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;flex-shrink:0;width:40px;height:40px;font-size:1.25rem;line-height:1;border-radius:50%;overflow:hidden;-webkit-user-select:none;user-select:none;color:#fff;background-color:#bdbdbd;border:4px solid #fff}::ng-deep .dark .dsv-avatar{border-color:var(--background-dark)}.dsv-avatar img{width:40px;height:40px}.dsv-avatar.callback:hover{border:4px solid #e0e0e0}::ng-deep .dark .dsv-avatar.callback:hover{border-color:#2b2b2b}.dsv-avatar.callback:active{opacity:.8}.dsv-avatar.primary{background-color:var(--primary)}.dsv-avatar.success{background-color:var(--success)}.dsv-avatar.info{background-color:var(--info)}.dsv-avatar.warning{background-color:var(--warning)}.dsv-avatar.error{background-color:var(--error)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvAvatarComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'dsv-avatar', standalone: true, imports: [CommonModule], template: "<div class=\"dsv-avatar\" [ngClass]=\"color + ' ' + (callback ? 'callback' : '')\" (click)=\"triggerEvent()\">\n <span *ngIf=\"!isImage()\">{{showAvatar()}}</span>\n <img src=\"{{avatar}}\" *ngIf=\"isImage()\" alt=\"avatar\" />\n</div>", styles: [".dsv-avatar{position:relative;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;flex-shrink:0;width:40px;height:40px;font-size:1.25rem;line-height:1;border-radius:50%;overflow:hidden;-webkit-user-select:none;user-select:none;color:#fff;background-color:#bdbdbd;border:4px solid #fff}::ng-deep .dark .dsv-avatar{border-color:var(--background-dark)}.dsv-avatar img{width:40px;height:40px}.dsv-avatar.callback:hover{border:4px solid #e0e0e0}::ng-deep .dark .dsv-avatar.callback:hover{border-color:#2b2b2b}.dsv-avatar.callback:active{opacity:.8}.dsv-avatar.primary{background-color:var(--primary)}.dsv-avatar.success{background-color:var(--success)}.dsv-avatar.info{background-color:var(--info)}.dsv-avatar.warning{background-color:var(--warning)}.dsv-avatar.error{background-color:var(--error)}\n"] }]
|
|
27
|
+
}], propDecorators: { avatar: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], color: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], callback: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}] } });
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Generated bundle index. Do not edit.
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
export { DsvAvatarComponent };
|
|
40
|
+
//# sourceMappingURL=ng-vagabond-lab-ng-dsv-ds-avatar.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-avatar.mjs","sources":["../../../projects/ng-dsv/ds/avatar/component/avatar.component.ts","../../../projects/ng-dsv/ds/avatar/component/avatar.component.html","../../../projects/ng-dsv/ds/avatar/ng-vagabond-lab-ng-dsv-ds-avatar.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { ColorType } from '@ng-vagabond-lab/ng-dsv/type';\n\n@Component({\n selector: 'dsv-avatar',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n})\nexport class DsvAvatarComponent {\n @Input() avatar: string = '';\n @Input() color: ColorType = 'primary';\n @Input() callback?: () => void;\n\n isImage() {\n return this.avatar.startsWith('http');\n }\n\n showAvatar() {\n return this.avatar.substring(0, 1).toUpperCase();\n }\n\n triggerEvent() {\n if (this.callback) {\n this.callback();\n }\n }\n}\n","<div class=\"dsv-avatar\" [ngClass]=\"color + ' ' + (callback ? 'callback' : '')\" (click)=\"triggerEvent()\">\n <span *ngIf=\"!isImage()\">{{showAvatar()}}</span>\n <img src=\"{{avatar}}\" *ngIf=\"isImage()\" alt=\"avatar\" />\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAWa,kBAAkB,CAAA;IACpB,MAAM,GAAW,EAAE;IACnB,KAAK,GAAc,SAAS;AAC5B,IAAA,QAAQ;IAEjB,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;;IAGvC,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;;IAGlD,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,EAAE;;;uGAfR,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECX/B,+OAGM,EAAA,MAAA,EAAA,CAAA,i1BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACV,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,+OAAA,EAAA,MAAA,EAAA,CAAA,i1BAAA,CAAA,EAAA;8BAKd,MAAM,EAAA,CAAA;sBAAd;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;;;AEdH;;AAEG;;;;"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as i1 from '@angular/common';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { output, Component, Input } from '@angular/core';
|
|
5
|
+
|
|
6
|
+
class DsvButtonComponent {
|
|
7
|
+
libelle = '';
|
|
8
|
+
color = 'primary';
|
|
9
|
+
icon = '';
|
|
10
|
+
iconEnd = '';
|
|
11
|
+
width = 'medium';
|
|
12
|
+
variant = 'contained';
|
|
13
|
+
fullwidth = false;
|
|
14
|
+
show = true;
|
|
15
|
+
disabled = false;
|
|
16
|
+
callback = output();
|
|
17
|
+
doClick(event) {
|
|
18
|
+
event.stopPropagation();
|
|
19
|
+
event.preventDefault();
|
|
20
|
+
!this.disabled && this.callback.emit();
|
|
21
|
+
}
|
|
22
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: DsvButtonComponent, isStandalone: true, selector: "dsv-button", inputs: { libelle: "libelle", color: "color", icon: "icon", iconEnd: "iconEnd", width: "width", variant: "variant", fullwidth: "fullwidth", show: "show", disabled: "disabled" }, outputs: { callback: "callback" }, ngImport: i0, template: "<button\n class=\"dsv-button\"\n (click)=\"doClick($event)\"\n [ngClass]=\"\n (icon ? 'icon' : '') +\n ' ' +\n color +\n ' ' +\n width +\n ' ' +\n variant +\n ' ' +\n (fullwidth ? 'fullwidth' : '')\n \"\n [disabled]=\"disabled\"\n *ngIf=\"show\"\n>\n <i [class]=\"icon\" *ngIf=\"icon\"></i>\n <span *ngIf=\"libelle\">\n {{ libelle }}\n </span>\n <ng-content></ng-content>\n <i [class]=\"iconEnd\" *ngIf=\"iconEnd\"></i>\n</button>\n", styles: ["button.dsv-button{display:inline-flex;flex-direction:row;gap:5px;align-items:center;justify-content:center;position:relative;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;font-weight:500;letter-spacing:.02857em;text-transform:uppercase;color:#fff!important;outline:0px;margin:0;text-decoration:none;border-width:0px;border-radius:4px;transition:background-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1);padding:6px;font-size:1rem;min-width:10px;line-height:1;color:var(--text)}button.dsv-button.small,button.dsv-button.small>i{font-size:.8rem!important}button.dsv-button.medium,button.dsv-button.medium>i{font-size:1rem!important}button.dsv-button.large,button.dsv-button.large>i{font-size:1.5rem!important}button.dsv-button.fullwidth{width:100%}button.dsv-button.text,button.dsv-button.outlined{background-color:transparent;box-shadow:none}button.dsv-button.text.primary,button.dsv-button.outlined.primary{color:var(--primary)}button.dsv-button.text.success,button.dsv-button.outlined.success{color:var(--success)}button.dsv-button.text.info,button.dsv-button.outlined.info{color:var(--info)}button.dsv-button.text.warning,button.dsv-button.outlined.warning{color:var(--warning)}button.dsv-button.text.error,button.dsv-button.outlined.error{color:var(--error)}button.dsv-button.text.outlined.primary,button.dsv-button.outlined.outlined.primary{border:1px solid var(--primary)}button.dsv-button.text.outlined.success,button.dsv-button.outlined.outlined.success{border:1px solid var(--success)}button.dsv-button.text.outlined.info,button.dsv-button.outlined.outlined.info{border:1px solid var(--info)}button.dsv-button.text.outlined.warning,button.dsv-button.outlined.outlined.warning{border:1px solid var(--warning)}button.dsv-button.text.outlined.error,button.dsv-button.outlined.outlined.error{border:1px solid var(--error)}button.dsv-button.contained.primary{background-color:var(--primary)}button.dsv-button.contained.success{background-color:var(--success)}button.dsv-button.contained.info{background-color:var(--info)}button.dsv-button.contained.warning{background-color:var(--warning)}button.dsv-button.contained.error{background-color:var(--error)}button.dsv-button:not(:disabled):hover{transform:scale(1);opacity:1.2}button.dsv-button:not(:disabled):hover:not(.text){box-shadow:#0003 0 2px 4px -1px,#00000024 0 4px 5px,#0000001f 0 1px 10px}button.dsv-button:not(:disabled):active{transform:scale(1);opacity:.8}button.dsv-button:disabled{background:#5b5b5b!important}::ng-deep .dark button.dsv-button{filter:hue-rotate(5deg)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvButtonComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{ selector: 'dsv-button', standalone: true, imports: [CommonModule], template: "<button\n class=\"dsv-button\"\n (click)=\"doClick($event)\"\n [ngClass]=\"\n (icon ? 'icon' : '') +\n ' ' +\n color +\n ' ' +\n width +\n ' ' +\n variant +\n ' ' +\n (fullwidth ? 'fullwidth' : '')\n \"\n [disabled]=\"disabled\"\n *ngIf=\"show\"\n>\n <i [class]=\"icon\" *ngIf=\"icon\"></i>\n <span *ngIf=\"libelle\">\n {{ libelle }}\n </span>\n <ng-content></ng-content>\n <i [class]=\"iconEnd\" *ngIf=\"iconEnd\"></i>\n</button>\n", styles: ["button.dsv-button{display:inline-flex;flex-direction:row;gap:5px;align-items:center;justify-content:center;position:relative;box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;font-weight:500;letter-spacing:.02857em;text-transform:uppercase;color:#fff!important;outline:0px;margin:0;text-decoration:none;border-width:0px;border-radius:4px;transition:background-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1);padding:6px;font-size:1rem;min-width:10px;line-height:1;color:var(--text)}button.dsv-button.small,button.dsv-button.small>i{font-size:.8rem!important}button.dsv-button.medium,button.dsv-button.medium>i{font-size:1rem!important}button.dsv-button.large,button.dsv-button.large>i{font-size:1.5rem!important}button.dsv-button.fullwidth{width:100%}button.dsv-button.text,button.dsv-button.outlined{background-color:transparent;box-shadow:none}button.dsv-button.text.primary,button.dsv-button.outlined.primary{color:var(--primary)}button.dsv-button.text.success,button.dsv-button.outlined.success{color:var(--success)}button.dsv-button.text.info,button.dsv-button.outlined.info{color:var(--info)}button.dsv-button.text.warning,button.dsv-button.outlined.warning{color:var(--warning)}button.dsv-button.text.error,button.dsv-button.outlined.error{color:var(--error)}button.dsv-button.text.outlined.primary,button.dsv-button.outlined.outlined.primary{border:1px solid var(--primary)}button.dsv-button.text.outlined.success,button.dsv-button.outlined.outlined.success{border:1px solid var(--success)}button.dsv-button.text.outlined.info,button.dsv-button.outlined.outlined.info{border:1px solid var(--info)}button.dsv-button.text.outlined.warning,button.dsv-button.outlined.outlined.warning{border:1px solid var(--warning)}button.dsv-button.text.outlined.error,button.dsv-button.outlined.outlined.error{border:1px solid var(--error)}button.dsv-button.contained.primary{background-color:var(--primary)}button.dsv-button.contained.success{background-color:var(--success)}button.dsv-button.contained.info{background-color:var(--info)}button.dsv-button.contained.warning{background-color:var(--warning)}button.dsv-button.contained.error{background-color:var(--error)}button.dsv-button:not(:disabled):hover{transform:scale(1);opacity:1.2}button.dsv-button:not(:disabled):hover:not(.text){box-shadow:#0003 0 2px 4px -1px,#00000024 0 4px 5px,#0000001f 0 1px 10px}button.dsv-button:not(:disabled):active{transform:scale(1);opacity:.8}button.dsv-button:disabled{background:#5b5b5b!important}::ng-deep .dark button.dsv-button{filter:hue-rotate(5deg)}\n"] }]
|
|
28
|
+
}], propDecorators: { libelle: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], color: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], icon: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], iconEnd: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], width: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], variant: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], fullwidth: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], show: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], disabled: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}] } });
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Generated bundle index. Do not edit.
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
export { DsvButtonComponent };
|
|
53
|
+
//# sourceMappingURL=ng-vagabond-lab-ng-dsv-ds-button.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-button.mjs","sources":["../../../projects/ng-dsv/ds/button/component/button.component.ts","../../../projects/ng-dsv/ds/button/component/button.component.html","../../../projects/ng-dsv/ds/button/ng-vagabond-lab-ng-dsv-ds-button.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input, output } from '@angular/core';\nimport { ColorType } from '@ng-vagabond-lab/ng-dsv/type';\n\nexport type ButtonWidthType = 'small' | 'medium' | 'large';\nexport type ButtonVariantType = 'text' | 'outlined' | 'contained';\n\n@Component({\n selector: 'dsv-button',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class DsvButtonComponent {\n @Input() libelle: string = '';\n @Input() color: ColorType = 'primary';\n @Input() icon: string = '';\n @Input() iconEnd: string = '';\n @Input() width: ButtonWidthType = 'medium';\n @Input() variant: ButtonVariantType = 'contained';\n @Input() fullwidth: boolean = false;\n @Input() show: boolean = true;\n @Input() disabled: boolean = false;\n\n callback = output<void>();\n\n doClick(event: Event) {\n event.stopPropagation();\n event.preventDefault();\n !this.disabled && this.callback.emit();\n }\n}\n","<button\n class=\"dsv-button\"\n (click)=\"doClick($event)\"\n [ngClass]=\"\n (icon ? 'icon' : '') +\n ' ' +\n color +\n ' ' +\n width +\n ' ' +\n variant +\n ' ' +\n (fullwidth ? 'fullwidth' : '')\n \"\n [disabled]=\"disabled\"\n *ngIf=\"show\"\n>\n <i [class]=\"icon\" *ngIf=\"icon\"></i>\n <span *ngIf=\"libelle\">\n {{ libelle }}\n </span>\n <ng-content></ng-content>\n <i [class]=\"iconEnd\" *ngIf=\"iconEnd\"></i>\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAca,kBAAkB,CAAA;IACpB,OAAO,GAAW,EAAE;IACpB,KAAK,GAAc,SAAS;IAC5B,IAAI,GAAW,EAAE;IACjB,OAAO,GAAW,EAAE;IACpB,KAAK,GAAoB,QAAQ;IACjC,OAAO,GAAsB,WAAW;IACxC,SAAS,GAAY,KAAK;IAC1B,IAAI,GAAY,IAAI;IACpB,QAAQ,GAAY,KAAK;IAElC,QAAQ,GAAG,MAAM,EAAQ;AAEzB,IAAA,OAAO,CAAC,KAAY,EAAA;QAClB,KAAK,CAAC,eAAe,EAAE;QACvB,KAAK,CAAC,cAAc,EAAE;QACtB,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;uGAhB7B,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd/B,2dAwBA,EAAA,MAAA,EAAA,CAAA,smFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDdY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACV,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,2dAAA,EAAA,MAAA,EAAA,CAAA,smFAAA,CAAA,EAAA;8BAKd,OAAO,EAAA,CAAA;sBAAf;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;;;AEvBH;;AAEG;;;;"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as i1 from '@angular/common';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Component, Input } from '@angular/core';
|
|
5
|
+
import { DsvAvatarComponent } from '@ng-vagabond-lab/ng-dsv/ds/avatar';
|
|
6
|
+
|
|
7
|
+
class DsvCardComponent {
|
|
8
|
+
avatar;
|
|
9
|
+
title = '';
|
|
10
|
+
subtitle = '';
|
|
11
|
+
image = '';
|
|
12
|
+
alt = '';
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: DsvCardComponent, isStandalone: true, selector: "dsv-card", inputs: { avatar: "avatar", title: "title", subtitle: "subtitle", image: "image", alt: "alt" }, ngImport: i0, template: "<div class='dsv-card'>\n <img src=\"{{image}}\" [alt]=\"alt\" *ngIf=\"image\" />\n <div class=\"dsv-card-header\">\n <dsv-avatar [avatar]=\"avatar\" *ngIf=\"avatar\"></dsv-avatar>\n <div>\n <h2>{{title}}</h2>\n <div class=\"dsv-card-subtitle\">{{subtitle}}</div>\n </div>\n <div class=\"dsv-actions\">\n </div>\n </div>\n <div class=\"dsv-card-content\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [".dsv-card{width:auto;border:1px solid rgb(211,211,211);border-radius:4px;font-size:1rem;margin:5px}.dsv-card img{width:100%;max-height:300px;border-top-left-radius:2px;border-top-right-radius:2px}::ng-deep .dark .dsv-card{color:#fff}.dsv-card .dsv-card-header{display:flex;flex-direction:row;gap:10px;align-items:center;padding:10px}::ng-deep .dark .dsv-card .dsv-card-header .dsv-card-subtitle{color:#ffffffb3}.dsv-card .dsv-card-content{padding:10px}h2{margin:0;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DsvAvatarComponent, selector: "dsv-avatar", inputs: ["avatar", "color", "callback"] }] });
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvCardComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: 'dsv-card', standalone: true, imports: [CommonModule, DsvAvatarComponent], template: "<div class='dsv-card'>\n <img src=\"{{image}}\" [alt]=\"alt\" *ngIf=\"image\" />\n <div class=\"dsv-card-header\">\n <dsv-avatar [avatar]=\"avatar\" *ngIf=\"avatar\"></dsv-avatar>\n <div>\n <h2>{{title}}</h2>\n <div class=\"dsv-card-subtitle\">{{subtitle}}</div>\n </div>\n <div class=\"dsv-actions\">\n </div>\n </div>\n <div class=\"dsv-card-content\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [".dsv-card{width:auto;border:1px solid rgb(211,211,211);border-radius:4px;font-size:1rem;margin:5px}.dsv-card img{width:100%;max-height:300px;border-top-left-radius:2px;border-top-right-radius:2px}::ng-deep .dark .dsv-card{color:#fff}.dsv-card .dsv-card-header{display:flex;flex-direction:row;gap:10px;align-items:center;padding:10px}::ng-deep .dark .dsv-card .dsv-card-header .dsv-card-subtitle{color:#ffffffb3}.dsv-card .dsv-card-content{padding:10px}h2{margin:0;padding:0}\n"] }]
|
|
19
|
+
}], propDecorators: { avatar: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}], title: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}], subtitle: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], image: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], alt: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}] } });
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Generated bundle index. Do not edit.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
export { DsvCardComponent };
|
|
36
|
+
//# sourceMappingURL=ng-vagabond-lab-ng-dsv-ds-card.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-card.mjs","sources":["../../../projects/ng-dsv/ds/card/component/card.component.ts","../../../projects/ng-dsv/ds/card/component/card.component.html","../../../projects/ng-dsv/ds/card/ng-vagabond-lab-ng-dsv-ds-card.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { DsvAvatarComponent } from '@ng-vagabond-lab/ng-dsv/ds/avatar';\n\n@Component({\n selector: 'dsv-card',\n standalone: true,\n imports: [CommonModule, DsvAvatarComponent],\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n})\nexport class DsvCardComponent {\n @Input() avatar?: string;\n @Input() title: string = '';\n @Input() subtitle: string = '';\n @Input() image: string = '';\n @Input() alt: string = '';\n}\n","<div class='dsv-card'>\n <img src=\"{{image}}\" [alt]=\"alt\" *ngIf=\"image\" />\n <div class=\"dsv-card-header\">\n <dsv-avatar [avatar]=\"avatar\" *ngIf=\"avatar\"></dsv-avatar>\n <div>\n <h2>{{title}}</h2>\n <div class=\"dsv-card-subtitle\">{{subtitle}}</div>\n </div>\n <div class=\"dsv-actions\">\n </div>\n </div>\n <div class=\"dsv-card-content\">\n <ng-content></ng-content>\n </div>\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAWa,gBAAgB,CAAA;AAClB,IAAA,MAAM;IACN,KAAK,GAAW,EAAE;IAClB,QAAQ,GAAW,EAAE;IACrB,KAAK,GAAW,EAAE;IAClB,GAAG,GAAW,EAAE;uGALd,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,ECX7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,geAcM,EDPM,MAAA,EAAA,CAAA,8dAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mIAAE,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAI/B,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,cACR,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,geAAA,EAAA,MAAA,EAAA,CAAA,8dAAA,CAAA,EAAA;8BAKlC,MAAM,EAAA,CAAA;sBAAd;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,GAAG,EAAA,CAAA;sBAAX;;;AEhBH;;AAEG;;;;"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, Input, HostBinding } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
class DsvThemeComponent {
|
|
5
|
+
theme;
|
|
6
|
+
background;
|
|
7
|
+
backgroundDark;
|
|
8
|
+
text;
|
|
9
|
+
textDark;
|
|
10
|
+
primary;
|
|
11
|
+
secondary;
|
|
12
|
+
success;
|
|
13
|
+
info;
|
|
14
|
+
warning;
|
|
15
|
+
error;
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
this.background = this.theme.background ?? '#fff';
|
|
18
|
+
this.backgroundDark = this.theme.backgroundDark ?? '#121212';
|
|
19
|
+
this.text = this.theme.text ?? '#000';
|
|
20
|
+
this.textDark = this.theme.textDark ?? '#fff';
|
|
21
|
+
this.primary = this.theme.primary ?? '#AAA';
|
|
22
|
+
this.secondary = this.theme.secondary ?? '#AAA';
|
|
23
|
+
this.success = this.theme.success ?? '#439746';
|
|
24
|
+
this.info = this.theme.info ?? '#1b78c4';
|
|
25
|
+
this.warning = this.theme.warning ?? '#dca603';
|
|
26
|
+
this.error = this.theme.error ?? '#da1709';
|
|
27
|
+
}
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvThemeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: DsvThemeComponent, isStandalone: true, selector: "dsv-theme", inputs: { theme: "theme" }, host: { properties: { "style.--background": "this.background", "style.--background-dark": "this.backgroundDark", "style.--text": "this.text", "style.--text-dark": "this.textDark", "style.--primary": "this.primary", "style.--secondary": "this.secondary", "style.--success": "this.success", "style.--info": "this.info", "style.--warning": "this.warning", "style.--error": "this.error" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{--background: var(--background);--background-dark: var(--background-dark);--text: var(--text);--text-dark: var(--text-dark);--primary: var(--primary);--primary: var(--secondary);--success: var(--success);--info: var(--info);--warning: var(--warning);--error: var(--error);display:flex;flex:1;font-size:1rem!important;flex-direction:column;overflow:hidden}::ng-deep .light :host div{background-color:var(--background);color:var(--text)}::ng-deep .dark :host div{background-color:var(--background-dark)}::ng-deep .dark :host div *{color:var(--text-dark)}::ng-deep .light dsv-theme{background-color:var(--background);color:var(--text)}::ng-deep .dark dsv-theme{background-color:var(--background-dark)}::ng-deep .dark dsv-theme *{color:var(--text-dark)}\n"] });
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvThemeComponent, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: 'dsv-theme', standalone: true, imports: [], template: `<ng-content></ng-content>`, styles: [":host{--background: var(--background);--background-dark: var(--background-dark);--text: var(--text);--text-dark: var(--text-dark);--primary: var(--primary);--primary: var(--secondary);--success: var(--success);--info: var(--info);--warning: var(--warning);--error: var(--error);display:flex;flex:1;font-size:1rem!important;flex-direction:column;overflow:hidden}::ng-deep .light :host div{background-color:var(--background);color:var(--text)}::ng-deep .dark :host div{background-color:var(--background-dark)}::ng-deep .dark :host div *{color:var(--text-dark)}::ng-deep .light dsv-theme{background-color:var(--background);color:var(--text)}::ng-deep .dark dsv-theme{background-color:var(--background-dark)}::ng-deep .dark dsv-theme *{color:var(--text-dark)}\n"] }]
|
|
34
|
+
}], propDecorators: { theme: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], background: [{
|
|
37
|
+
type: HostBinding,
|
|
38
|
+
args: ['style.--background']
|
|
39
|
+
}], backgroundDark: [{
|
|
40
|
+
type: HostBinding,
|
|
41
|
+
args: ['style.--background-dark']
|
|
42
|
+
}], text: [{
|
|
43
|
+
type: HostBinding,
|
|
44
|
+
args: ['style.--text']
|
|
45
|
+
}], textDark: [{
|
|
46
|
+
type: HostBinding,
|
|
47
|
+
args: ['style.--text-dark']
|
|
48
|
+
}], primary: [{
|
|
49
|
+
type: HostBinding,
|
|
50
|
+
args: ['style.--primary']
|
|
51
|
+
}], secondary: [{
|
|
52
|
+
type: HostBinding,
|
|
53
|
+
args: ['style.--secondary']
|
|
54
|
+
}], success: [{
|
|
55
|
+
type: HostBinding,
|
|
56
|
+
args: ['style.--success']
|
|
57
|
+
}], info: [{
|
|
58
|
+
type: HostBinding,
|
|
59
|
+
args: ['style.--info']
|
|
60
|
+
}], warning: [{
|
|
61
|
+
type: HostBinding,
|
|
62
|
+
args: ['style.--warning']
|
|
63
|
+
}], error: [{
|
|
64
|
+
type: HostBinding,
|
|
65
|
+
args: ['style.--error']
|
|
66
|
+
}] } });
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Generated bundle index. Do not edit.
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
export { DsvThemeComponent };
|
|
73
|
+
//# sourceMappingURL=ng-vagabond-lab-ng-dsv-ds-theme.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-theme.mjs","sources":["../../../projects/ng-dsv/ds/theme/component/dsv.theme.component.ts","../../../projects/ng-dsv/ds/theme/ng-vagabond-lab-ng-dsv-ds-theme.ts"],"sourcesContent":["import { Component, HostBinding, Input } from '@angular/core';\n\nexport type ThemeType = {\n background?: string;\n backgroundDark?: string;\n text?: string;\n textDark?: string;\n primary?: string;\n secondary?: string;\n success?: string;\n info?: string;\n warning?: string;\n error?: string;\n};\n\n@Component({\n selector: 'dsv-theme',\n standalone: true,\n imports: [],\n template: `<ng-content></ng-content>`,\n styleUrls: ['./dsv.theme.component.scss'],\n})\nexport class DsvThemeComponent {\n @Input()\n theme!: ThemeType;\n\n @HostBinding('style.--background')\n background!: string;\n\n @HostBinding('style.--background-dark')\n backgroundDark!: string;\n\n @HostBinding('style.--text')\n text!: string;\n\n @HostBinding('style.--text-dark')\n textDark!: string;\n\n @HostBinding('style.--primary')\n primary!: string;\n\n @HostBinding('style.--secondary')\n secondary!: string;\n\n @HostBinding('style.--success')\n success!: string;\n\n @HostBinding('style.--info')\n info!: string;\n\n @HostBinding('style.--warning')\n warning!: string;\n\n @HostBinding('style.--error')\n error!: string;\n\n ngOnInit() {\n this.background = this.theme.background ?? '#fff';\n this.backgroundDark = this.theme.backgroundDark ?? '#121212';\n this.text = this.theme.text ?? '#000';\n this.textDark = this.theme.textDark ?? '#fff';\n this.primary = this.theme.primary ?? '#AAA';\n this.secondary = this.theme.secondary ?? '#AAA';\n this.success = this.theme.success ?? '#439746';\n this.info = this.theme.info ?? '#1b78c4';\n this.warning = this.theme.warning ?? '#dca603';\n this.error = this.theme.error ?? '#da1709';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAsBa,iBAAiB,CAAA;AAE5B,IAAA,KAAK;AAGL,IAAA,UAAU;AAGV,IAAA,cAAc;AAGd,IAAA,IAAI;AAGJ,IAAA,QAAQ;AAGR,IAAA,OAAO;AAGP,IAAA,SAAS;AAGT,IAAA,OAAO;AAGP,IAAA,IAAI;AAGJ,IAAA,OAAO;AAGP,IAAA,KAAK;IAEL,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,MAAM;QACjD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,SAAS;QAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS;;uGA5CjC,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,qeAHlB,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uvBAAA,CAAA,EAAA,CAAA;;2FAG1B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EACT,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,EAAE,YACD,CAA2B,yBAAA,CAAA,EAAA,MAAA,EAAA,CAAA,uvBAAA,CAAA,EAAA;8BAKrC,KAAK,EAAA,CAAA;sBADJ;gBAID,UAAU,EAAA,CAAA;sBADT,WAAW;uBAAC,oBAAoB;gBAIjC,cAAc,EAAA,CAAA;sBADb,WAAW;uBAAC,yBAAyB;gBAItC,IAAI,EAAA,CAAA;sBADH,WAAW;uBAAC,cAAc;gBAI3B,QAAQ,EAAA,CAAA;sBADP,WAAW;uBAAC,mBAAmB;gBAIhC,OAAO,EAAA,CAAA;sBADN,WAAW;uBAAC,iBAAiB;gBAI9B,SAAS,EAAA,CAAA;sBADR,WAAW;uBAAC,mBAAmB;gBAIhC,OAAO,EAAA,CAAA;sBADN,WAAW;uBAAC,iBAAiB;gBAI9B,IAAI,EAAA,CAAA;sBADH,WAAW;uBAAC,cAAc;gBAI3B,OAAO,EAAA,CAAA;sBADN,WAAW;uBAAC,iBAAiB;gBAI9B,KAAK,EAAA,CAAA;sBADJ,WAAW;uBAAC,eAAe;;;ACrD9B;;AAEG;;;;"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import * as i1 from '@angular/common';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { signal, Injectable, inject, effect, Component } from '@angular/core';
|
|
5
|
+
|
|
6
|
+
const MAX_TOASTS = 10;
|
|
7
|
+
const DURATION_DEFAULT = 5000;
|
|
8
|
+
const DURATION_TIMEOUT = 10;
|
|
9
|
+
class ToastService {
|
|
10
|
+
toastShows = signal([]);
|
|
11
|
+
toasts = signal([]);
|
|
12
|
+
showToast(toast) {
|
|
13
|
+
toast.uuid = crypto.randomUUID();
|
|
14
|
+
toast.type = toast.type ?? 'success';
|
|
15
|
+
toast.duration = toast.duration ?? DURATION_DEFAULT;
|
|
16
|
+
toast.durationLeft = toast.duration;
|
|
17
|
+
toast.filled = toast.filled ?? false;
|
|
18
|
+
this.toasts.update((toasts) => [...toasts, toast]);
|
|
19
|
+
}
|
|
20
|
+
consumeToast(toast) {
|
|
21
|
+
this.toastShows.update((toasts) => [...toasts, toast]);
|
|
22
|
+
let duration = 0;
|
|
23
|
+
const interval = setInterval(() => {
|
|
24
|
+
duration += DURATION_TIMEOUT;
|
|
25
|
+
if (duration > toast.duration) {
|
|
26
|
+
clearInterval(interval);
|
|
27
|
+
this.closeToast(toast.uuid);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.toastShows.update((toasts) => toasts.map((oneToast) => {
|
|
31
|
+
if (oneToast.uuid === toast.uuid) {
|
|
32
|
+
oneToast.durationLeft = toast.duration - duration;
|
|
33
|
+
}
|
|
34
|
+
return oneToast;
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
}, DURATION_TIMEOUT);
|
|
38
|
+
this.removeToastFromQueue(toast.uuid);
|
|
39
|
+
}
|
|
40
|
+
closeToast(uuid) {
|
|
41
|
+
this.toastShows.update((toasts) => toasts.filter((t) => t.uuid !== uuid));
|
|
42
|
+
}
|
|
43
|
+
removeToastFromQueue(uuid) {
|
|
44
|
+
this.toasts.update((toasts) => toasts.filter((t) => t.uuid !== uuid));
|
|
45
|
+
}
|
|
46
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
47
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ToastService, providedIn: 'root' });
|
|
48
|
+
}
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ToastService, decorators: [{
|
|
50
|
+
type: Injectable,
|
|
51
|
+
args: [{
|
|
52
|
+
providedIn: 'root',
|
|
53
|
+
}]
|
|
54
|
+
}] });
|
|
55
|
+
|
|
56
|
+
class DsvToastComponent {
|
|
57
|
+
toastService = inject(ToastService);
|
|
58
|
+
constructor() {
|
|
59
|
+
effect(() => {
|
|
60
|
+
for (const toast of this.toastService.toasts()) {
|
|
61
|
+
if (this.toastService.toastShows().length < MAX_TOASTS) {
|
|
62
|
+
this.toastService.consumeToast(toast);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
ngOnInit() {
|
|
68
|
+
this.toastService.showToast({
|
|
69
|
+
text: 'test',
|
|
70
|
+
type: 'success',
|
|
71
|
+
filled: true,
|
|
72
|
+
duration: 10000,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
76
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: DsvToastComponent, isStandalone: true, selector: "dsv-toast", ngImport: i0, template: "<div class=\"dsv-toast-container\">\n <div class=\"dsv-toast\" *ngFor=\"let toast of toastService.toastShows()\"\n [ngClass]=\"toast.type + ' ' + (toast.filled ? 'filled' : '')\">\n <button class=\"close-button\" type=\"button\" (click)=\"toastService.closeToast(toast.uuid!)\">\n X\n </button>\n <i class=\"ri-check-fill\" *ngIf=\"toast.type === 'success'\"></i>\n <i class=\"ri-information-2-line\" *ngIf=\"toast.type === 'info'\"></i>\n <i class=\"ri-alert-line\" *ngIf=\"toast.type === 'warning'\"></i>\n <i class=\"ri-close-line\" *ngIf=\"toast.type === 'error'\"></i>\n\n {{ toast.text }}\n <div class=\"loader-container\">\n <div class=\"loader\" [style.width]=\"(toast.durationLeft! / toast.duration!) * 100 + '%'\"></div>\n </div>\n </div>\n</div>", styles: [".dsv-toast-container{position:fixed;bottom:0;right:0;display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:5px}.dsv-toast-container .dsv-toast{font-size:1.2rem;border-radius:2px;box-shadow:0 0 0 .5px #0006;min-width:300px;padding:10px 15px;pointer-events:all;position:relative;display:flex;align-items:center;flex-direction:row;gap:8px;opacity:0;transform:translate(100%);animation:slideInRight .5s ease-out forwards}@keyframes slideInRight{to{opacity:1;transform:translate(0)}}.dsv-toast-container .dsv-toast.success{border-left:4px solid var(--success)}.dsv-toast-container .dsv-toast.success i{color:var(--success);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.info{border-left:4px solid var(--info)}.dsv-toast-container .dsv-toast.info i{color:var(--info);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.warning{border-left:4px solid var(--warning)}.dsv-toast-container .dsv-toast.warning i{color:var(--warning);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.error{border-left:4px solid var(--error)}.dsv-toast-container .dsv-toast.error i{color:var(--error);font-size:1.2rem!important}.dsv-toast-container .dsv-toast .close-button{position:absolute;top:6px;right:10px;font-size:1rem;border:0;background-color:inherit;cursor:pointer}.dsv-toast-container .dsv-toast .close-button:hover{background-color:#f9f9f9;border-radius:5px}::ng-deep .dark .dsv-toast-container .dsv-toast .close-button{color:#fff}::ng-deep .dark .dsv-toast-container .dsv-toast .close-button:hover{background-color:#212121!important}.dsv-toast-container .dsv-toast .loader-container{position:absolute;bottom:0;left:0;width:100%}.dsv-toast-container .dsv-toast .loader-container .loader{border:1px solid #b8b8b8}::ng-deep .light .dsv-toast-container .dsv-toast{background-color:#fff;color:#000}::ng-deep .dark .dsv-toast-container .dsv-toast{background-color:#000;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
77
|
+
}
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvToastComponent, decorators: [{
|
|
79
|
+
type: Component,
|
|
80
|
+
args: [{ selector: 'dsv-toast', standalone: true, imports: [CommonModule], template: "<div class=\"dsv-toast-container\">\n <div class=\"dsv-toast\" *ngFor=\"let toast of toastService.toastShows()\"\n [ngClass]=\"toast.type + ' ' + (toast.filled ? 'filled' : '')\">\n <button class=\"close-button\" type=\"button\" (click)=\"toastService.closeToast(toast.uuid!)\">\n X\n </button>\n <i class=\"ri-check-fill\" *ngIf=\"toast.type === 'success'\"></i>\n <i class=\"ri-information-2-line\" *ngIf=\"toast.type === 'info'\"></i>\n <i class=\"ri-alert-line\" *ngIf=\"toast.type === 'warning'\"></i>\n <i class=\"ri-close-line\" *ngIf=\"toast.type === 'error'\"></i>\n\n {{ toast.text }}\n <div class=\"loader-container\">\n <div class=\"loader\" [style.width]=\"(toast.durationLeft! / toast.duration!) * 100 + '%'\"></div>\n </div>\n </div>\n</div>", styles: [".dsv-toast-container{position:fixed;bottom:0;right:0;display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:5px}.dsv-toast-container .dsv-toast{font-size:1.2rem;border-radius:2px;box-shadow:0 0 0 .5px #0006;min-width:300px;padding:10px 15px;pointer-events:all;position:relative;display:flex;align-items:center;flex-direction:row;gap:8px;opacity:0;transform:translate(100%);animation:slideInRight .5s ease-out forwards}@keyframes slideInRight{to{opacity:1;transform:translate(0)}}.dsv-toast-container .dsv-toast.success{border-left:4px solid var(--success)}.dsv-toast-container .dsv-toast.success i{color:var(--success);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.info{border-left:4px solid var(--info)}.dsv-toast-container .dsv-toast.info i{color:var(--info);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.warning{border-left:4px solid var(--warning)}.dsv-toast-container .dsv-toast.warning i{color:var(--warning);font-size:1.2rem!important}.dsv-toast-container .dsv-toast.error{border-left:4px solid var(--error)}.dsv-toast-container .dsv-toast.error i{color:var(--error);font-size:1.2rem!important}.dsv-toast-container .dsv-toast .close-button{position:absolute;top:6px;right:10px;font-size:1rem;border:0;background-color:inherit;cursor:pointer}.dsv-toast-container .dsv-toast .close-button:hover{background-color:#f9f9f9;border-radius:5px}::ng-deep .dark .dsv-toast-container .dsv-toast .close-button{color:#fff}::ng-deep .dark .dsv-toast-container .dsv-toast .close-button:hover{background-color:#212121!important}.dsv-toast-container .dsv-toast .loader-container{position:absolute;bottom:0;left:0;width:100%}.dsv-toast-container .dsv-toast .loader-container .loader{border:1px solid #b8b8b8}::ng-deep .light .dsv-toast-container .dsv-toast{background-color:#fff;color:#000}::ng-deep .dark .dsv-toast-container .dsv-toast{background-color:#000;color:#fff}\n"] }]
|
|
81
|
+
}], ctorParameters: () => [] });
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Generated bundle index. Do not edit.
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
export { DsvToastComponent };
|
|
88
|
+
//# sourceMappingURL=ng-vagabond-lab-ng-dsv-ds-toast.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-toast.mjs","sources":["../../../projects/ng-dsv/ds/toast/service/toast.service.ts","../../../projects/ng-dsv/ds/toast/component/toast.component.ts","../../../projects/ng-dsv/ds/toast/component/toast.component.html","../../../projects/ng-dsv/ds/toast/ng-vagabond-lab-ng-dsv-ds-toast.ts"],"sourcesContent":["import { Injectable, signal, WritableSignal } from '@angular/core';\nimport { IToastDto } from '../dto/toast.dto';\n\nexport const MAX_TOASTS = 10;\nexport const DURATION_DEFAULT = 5000;\nexport const DURATION_TIMEOUT = 10;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n toastShows: WritableSignal<IToastDto[]> = signal([]);\n toasts: WritableSignal<IToastDto[]> = signal([]);\n\n showToast(toast: IToastDto) {\n toast.uuid = crypto.randomUUID();\n toast.type = toast.type ?? 'success';\n toast.duration = toast.duration ?? DURATION_DEFAULT;\n toast.durationLeft = toast.duration;\n toast.filled = toast.filled ?? false;\n this.toasts.update((toasts) => [...toasts, toast]);\n }\n\n consumeToast(toast: IToastDto) {\n this.toastShows.update((toasts) => [...toasts, toast]);\n let duration = 0;\n const interval = setInterval(() => {\n duration += DURATION_TIMEOUT;\n if (duration > toast.duration!) {\n clearInterval(interval);\n this.closeToast(toast.uuid!);\n } else {\n this.toastShows.update((toasts) =>\n toasts.map((oneToast) => {\n if (oneToast.uuid === toast.uuid) {\n oneToast.durationLeft = toast.duration! - duration;\n }\n return oneToast;\n })\n );\n }\n }, DURATION_TIMEOUT);\n this.removeToastFromQueue(toast.uuid!);\n }\n\n closeToast(uuid: string) {\n this.toastShows.update((toasts) => toasts.filter((t) => t.uuid !== uuid));\n }\n\n removeToastFromQueue(uuid: string) {\n this.toasts.update((toasts) => toasts.filter((t) => t.uuid !== uuid));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, effect, inject } from '@angular/core';\nimport { MAX_TOASTS, ToastService } from '../service/toast.service';\n\nexport type Theme = {\n primary: string;\n text: string;\n};\n\n@Component({\n selector: 'dsv-toast',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n})\nexport class DsvToastComponent {\n toastService = inject(ToastService);\n\n constructor() {\n effect(() => {\n for (const toast of this.toastService.toasts()) {\n if (this.toastService.toastShows().length < MAX_TOASTS) {\n this.toastService.consumeToast(toast);\n }\n }\n });\n }\n\n ngOnInit() {\n this.toastService.showToast({\n text: 'test',\n type: 'success',\n filled: true,\n duration: 10000,\n });\n }\n}\n","<div class=\"dsv-toast-container\">\n <div class=\"dsv-toast\" *ngFor=\"let toast of toastService.toastShows()\"\n [ngClass]=\"toast.type + ' ' + (toast.filled ? 'filled' : '')\">\n <button class=\"close-button\" type=\"button\" (click)=\"toastService.closeToast(toast.uuid!)\">\n X\n </button>\n <i class=\"ri-check-fill\" *ngIf=\"toast.type === 'success'\"></i>\n <i class=\"ri-information-2-line\" *ngIf=\"toast.type === 'info'\"></i>\n <i class=\"ri-alert-line\" *ngIf=\"toast.type === 'warning'\"></i>\n <i class=\"ri-close-line\" *ngIf=\"toast.type === 'error'\"></i>\n\n {{ toast.text }}\n <div class=\"loader-container\">\n <div class=\"loader\" [style.width]=\"(toast.durationLeft! / toast.duration!) * 100 + '%'\"></div>\n </div>\n </div>\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|