@ng-vagabond-lab/ng-dsv 0.0.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.
Files changed (50) hide show
  1. package/README.md +24 -0
  2. package/ds/accordion/component/accordion.component.d.ts +5 -0
  3. package/ds/accordion/index.d.ts +5 -0
  4. package/ds/accordion/public-api.d.ts +1 -0
  5. package/ds/avatar/component/avatar.component.d.ts +12 -0
  6. package/ds/avatar/index.d.ts +5 -0
  7. package/ds/avatar/public-api.d.ts +1 -0
  8. package/ds/button/component/button.component.d.ts +17 -0
  9. package/ds/button/index.d.ts +1 -0
  10. package/ds/button/public-api.d.ts +1 -0
  11. package/ds/card/component/card.component.d.ts +10 -0
  12. package/ds/card/index.d.ts +5 -0
  13. package/ds/card/public-api.d.ts +1 -0
  14. package/ds/theme/component/dsv.theme.component.d.ts +29 -0
  15. package/ds/theme/index.d.ts +5 -0
  16. package/ds/theme/public-api.d.ts +1 -0
  17. package/ds/toast/component/toast.component.d.ts +13 -0
  18. package/ds/toast/dto/toast.dto.d.ts +10 -0
  19. package/ds/toast/index.d.ts +5 -0
  20. package/ds/toast/public-api.d.ts +1 -0
  21. package/ds/toast/service/toast.service.d.ts +16 -0
  22. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-accordion.mjs +19 -0
  23. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-accordion.mjs.map +1 -0
  24. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-avatar.mjs +40 -0
  25. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-avatar.mjs.map +1 -0
  26. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs +47 -0
  27. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs.map +1 -0
  28. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs +36 -0
  29. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs.map +1 -0
  30. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs +73 -0
  31. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs.map +1 -0
  32. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs +88 -0
  33. package/fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs.map +1 -0
  34. package/fesm2022/ng-vagabond-lab-ng-dsv-i18n.mjs +25 -0
  35. package/fesm2022/ng-vagabond-lab-ng-dsv-i18n.mjs.map +1 -0
  36. package/fesm2022/ng-vagabond-lab-ng-dsv-type.mjs +4 -0
  37. package/fesm2022/ng-vagabond-lab-ng-dsv-type.mjs.map +1 -0
  38. package/fesm2022/ng-vagabond-lab-ng-dsv.mjs +42 -0
  39. package/fesm2022/ng-vagabond-lab-ng-dsv.mjs.map +1 -0
  40. package/i18n/index.d.ts +5 -0
  41. package/i18n/public-api.d.ts +1 -0
  42. package/i18n/src/translate.pipe.d.ts +7 -0
  43. package/index.d.ts +5 -0
  44. package/package.json +55 -0
  45. package/public-api.d.ts +2 -0
  46. package/src/ui-sdk.component.d.ts +5 -0
  47. package/src/ui-sdk.service.d.ts +6 -0
  48. package/type/index.d.ts +1 -0
  49. package/type/public-api.d.ts +1 -0
  50. package/type/type.d.ts +1 -0
package/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # UiSdk
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.1.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project ui-sdk` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ui-sdk`.
8
+ > Note: Don't forget to add `--project ui-sdk` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build ui-sdk` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build ui-sdk`, go to the dist folder `cd dist/ui-sdk` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test ui-sdk` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class DsvAccordionComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<DsvAccordionComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsvAccordionComponent, "dsv-accordion", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@ng-vagabond-lab/ng-dsv/ds/accordion" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './component/accordion.component';
@@ -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,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@ng-vagabond-lab/ng-dsv/ds/avatar" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './component/avatar.component';
@@ -0,0 +1,17 @@
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
+ static ɵfac: i0.ɵɵFactoryDeclaration<DsvButtonComponent, never>;
16
+ 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; }; }, {}, never, ["*"], true, never>;
17
+ }
@@ -0,0 +1 @@
1
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './component/button.component';
@@ -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,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@ng-vagabond-lab/ng-dsv/ds/card" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './component/card.component';
@@ -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,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@ng-vagabond-lab/ng-dsv/ds/theme" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './component/dsv.theme.component';
@@ -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,10 @@
1
+ export type ToastType = 'success' | 'error' | 'warning' | 'info';
2
+ export interface IToastDto {
3
+ uuid?: string;
4
+ text: string;
5
+ isClose?: boolean;
6
+ type?: ToastType;
7
+ filled?: boolean;
8
+ duration?: number;
9
+ durationLeft?: number;
10
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@ng-vagabond-lab/ng-dsv/ds/toast" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './component/toast.component';
@@ -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,19 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { Component } from '@angular/core';
4
+
5
+ class DsvAccordionComponent {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: DsvAccordionComponent, isStandalone: true, selector: "dsv-accordion", ngImport: i0, template: "TITLE\n\n<div class=\"dsv-accordion\"></div>\n", styles: [":host{display:flex;width:calc(100% - 20px);padding:10px!important;background-color:#121212;color:#fff;background-image:linear-gradient(#ffffff0d,#ffffff0d);position:relative;overflow-anchor:none;transition:margin .15s cubic-bezier(.4,0,.2,1);border-radius:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvAccordionComponent, decorators: [{
10
+ type: Component,
11
+ args: [{ selector: 'dsv-accordion', standalone: true, imports: [CommonModule], template: "TITLE\n\n<div class=\"dsv-accordion\"></div>\n", styles: [":host{display:flex;width:calc(100% - 20px);padding:10px!important;background-color:#121212;color:#fff;background-image:linear-gradient(#ffffff0d,#ffffff0d);position:relative;overflow-anchor:none;transition:margin .15s cubic-bezier(.4,0,.2,1);border-radius:0}\n"] }]
12
+ }] });
13
+
14
+ /**
15
+ * Generated bundle index. Do not edit.
16
+ */
17
+
18
+ export { DsvAccordionComponent };
19
+ //# 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 { Component } 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","TITLE\n\n<div class=\"dsv-accordion\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAUa,qBAAqB,CAAA;uGAArB,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,QAAA,EAAA,EAAA,EAAA,QAAA,ECVlC,gDAGA,EAAA,MAAA,EAAA,CAAA,sQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDGY,YAAY,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,gDAAA,EAAA,MAAA,EAAA,CAAA,sQAAA,CAAA,EAAA;;;AENzB;;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,47 @@
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 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
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
+ 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" }, ngImport: i0, template: "<button class=\"dsv-button\"\n [ngClass]=\"(icon ? 'icon' : '') + ' ' + color + ' ' + width + ' ' + variant + ' ' + (fullwidth ? 'fullwidth' : '')\"\n [disabled]=\"disabled\" *ngIf=\"show\">\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>", 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;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:hover{transform:scale(1);opacity:1.2}button.dsv-button:hover:not(.text){box-shadow:#0003 0 2px 4px -1px,#00000024 0 4px 5px,#0000001f 0 1px 10px}button.dsv-button:active{transform:scale(1);opacity:.8}::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"] }] });
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DsvButtonComponent, decorators: [{
20
+ type: Component,
21
+ args: [{ selector: 'dsv-button', standalone: true, imports: [CommonModule], template: "<button class=\"dsv-button\"\n [ngClass]=\"(icon ? 'icon' : '') + ' ' + color + ' ' + width + ' ' + variant + ' ' + (fullwidth ? 'fullwidth' : '')\"\n [disabled]=\"disabled\" *ngIf=\"show\">\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>", 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;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:hover{transform:scale(1);opacity:1.2}button.dsv-button:hover:not(.text){box-shadow:#0003 0 2px 4px -1px,#00000024 0 4px 5px,#0000001f 0 1px 10px}button.dsv-button:active{transform:scale(1);opacity:.8}::ng-deep .dark button.dsv-button{filter:hue-rotate(5deg)}\n"] }]
22
+ }], propDecorators: { libelle: [{
23
+ type: Input
24
+ }], color: [{
25
+ type: Input
26
+ }], icon: [{
27
+ type: Input
28
+ }], iconEnd: [{
29
+ type: Input
30
+ }], width: [{
31
+ type: Input
32
+ }], variant: [{
33
+ type: Input
34
+ }], fullwidth: [{
35
+ type: Input
36
+ }], show: [{
37
+ type: Input
38
+ }], disabled: [{
39
+ type: Input
40
+ }] } });
41
+
42
+ /**
43
+ * Generated bundle index. Do not edit.
44
+ */
45
+
46
+ export { DsvButtonComponent };
47
+ //# 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 } 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","<button class=\"dsv-button\"\n [ngClass]=\"(icon ? 'icon' : '') + ' ' + color + ' ' + width + ' ' + variant + ' ' + (fullwidth ? 'fullwidth' : '')\"\n [disabled]=\"disabled\" *ngIf=\"show\">\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 * 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;uGATvB,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,QAAA,EAAA,EAAA,EAAA,QAAA,ECd/B,gYASS,EAAA,MAAA,EAAA,CAAA,4+EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDCG,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,gYAAA,EAAA,MAAA,EAAA,CAAA,4+EAAA,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: `<div class="dsv-theme"><ng-content></ng-content></div>`, 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)}.dsv-theme{flex:1;font-size:1rem!important;height:100%;min-height:100px;padding-bottom:50px}::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: `<div class="dsv-theme"><ng-content></ng-content></div>`, 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)}.dsv-theme{flex:1;font-size:1rem!important;height:100%;min-height:100px;padding-bottom:50px}::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: `<div class=\"dsv-theme\"><ng-content></ng-content></div>`,\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,CAAwD,sDAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8jBAAA,CAAA,EAAA,CAAA;;2FAGvD,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,CAAwD,sDAAA,CAAA,EAAA,MAAA,EAAA,CAAA,8jBAAA,CAAA,EAAA;8BAKlE,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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"}
@@ -0,0 +1,25 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Pipe } from '@angular/core';
3
+
4
+ class TranslatePipe {
5
+ transform(value) {
6
+ // Here you would translate the key
7
+ return `${value} (translated)`;
8
+ }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: TranslatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
10
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.7", ngImport: i0, type: TranslatePipe, isStandalone: true, name: "translate" });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: TranslatePipe, decorators: [{
13
+ type: Pipe,
14
+ args: [{
15
+ name: 'translate',
16
+ standalone: true,
17
+ }]
18
+ }] });
19
+
20
+ /**
21
+ * Generated bundle index. Do not edit.
22
+ */
23
+
24
+ export { TranslatePipe };
25
+ //# sourceMappingURL=ng-vagabond-lab-ng-dsv-i18n.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv-i18n.mjs","sources":["../../../projects/ng-dsv/i18n/src/translate.pipe.ts","../../../projects/ng-dsv/i18n/ng-vagabond-lab-ng-dsv-i18n.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'translate',\n standalone: true,\n})\nexport class TranslatePipe implements PipeTransform {\n transform(value: string): unknown {\n // Here you would translate the key\n return `${value} (translated)`;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAMa,aAAa,CAAA;AACxB,IAAA,SAAS,CAAC,KAAa,EAAA;;QAErB,OAAO,CAAA,EAAG,KAAK,CAAA,aAAA,CAAe;;uGAHrB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;ACLD;;AAEG;;;;"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ //# sourceMappingURL=ng-vagabond-lab-ng-dsv-type.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv-type.mjs","sources":["../../../projects/ng-dsv/type/ng-vagabond-lab-ng-dsv-type.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;;AAEG"}
@@ -0,0 +1,42 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Component } from '@angular/core';
3
+
4
+ class UiSdkService {
5
+ constructor() { }
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: UiSdkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: UiSdkService, providedIn: 'root' });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: UiSdkService, decorators: [{
10
+ type: Injectable,
11
+ args: [{
12
+ providedIn: 'root'
13
+ }]
14
+ }], ctorParameters: () => [] });
15
+
16
+ class UiSdkComponent {
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: UiSdkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: UiSdkComponent, isStandalone: true, selector: "lib-ui-sdk", ngImport: i0, template: `
19
+ <p>
20
+ ui-sdk works!
21
+ </p>
22
+ `, isInline: true, styles: [""] });
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: UiSdkComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'lib-ui-sdk', standalone: true, imports: [], template: `
27
+ <p>
28
+ ui-sdk works!
29
+ </p>
30
+ ` }]
31
+ }] });
32
+
33
+ /*
34
+ * Public API Surface of ui-sdk
35
+ */
36
+
37
+ /**
38
+ * Generated bundle index. Do not edit.
39
+ */
40
+
41
+ export { UiSdkComponent, UiSdkService };
42
+ //# sourceMappingURL=ng-vagabond-lab-ng-dsv.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-vagabond-lab-ng-dsv.mjs","sources":["../../../projects/ng-dsv/src/ui-sdk.service.ts","../../../projects/ng-dsv/src/ui-sdk.component.ts","../../../projects/ng-dsv/public-api.ts","../../../projects/ng-dsv/ng-vagabond-lab-ng-dsv.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UiSdkService {\n\n constructor() { }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-ui-sdk',\n standalone: true,\n imports: [],\n template: `\n <p>\n ui-sdk works!\n </p>\n `,\n styles: ``\n})\nexport class UiSdkComponent {\n\n}\n","/*\n * Public API Surface of ui-sdk\n */\n\nexport * from './src/ui-sdk.service';\nexport * from './src/ui-sdk.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAKa,YAAY,CAAA;AAEvB,IAAA,WAAA,GAAA;uGAFW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCSY,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAPf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAGU,cAAc,EAAA,UAAA,EAAA,CAAA;kBAX1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACV,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,EAAE,EACD,QAAA,EAAA;;;;AAIT,EAAA,CAAA,EAAA;;;ACVH;;AAEG;;ACFH;;AAEG;;;;"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@ng-vagabond-lab/ng-dsv/i18n" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './src/translate.pipe';
@@ -0,0 +1,7 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class TranslatePipe implements PipeTransform {
4
+ transform(value: string): unknown;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<TranslatePipe, never>;
6
+ static ɵpipe: i0.ɵɵPipeDeclaration<TranslatePipe, "translate", true>;
7
+ }
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@ng-vagabond-lab/ng-dsv" />
5
+ export * from './public-api';
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@ng-vagabond-lab/ng-dsv",
3
+ "version": "0.0.1",
4
+ "peerDependencies": {
5
+ "@angular/common": "^19.1.7",
6
+ "@angular/core": "^19.1.7"
7
+ },
8
+ "dependencies": {
9
+ "tslib": "^2.8.1"
10
+ },
11
+ "sideEffects": false,
12
+ "module": "fesm2022/ng-vagabond-lab-ng-dsv.mjs",
13
+ "typings": "index.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./index.d.ts",
20
+ "default": "./fesm2022/ng-vagabond-lab-ng-dsv.mjs"
21
+ },
22
+ "./i18n": {
23
+ "types": "./i18n/index.d.ts",
24
+ "default": "./fesm2022/ng-vagabond-lab-ng-dsv-i18n.mjs"
25
+ },
26
+ "./type": {
27
+ "types": "./type/index.d.ts",
28
+ "default": "./fesm2022/ng-vagabond-lab-ng-dsv-type.mjs"
29
+ },
30
+ "./ds/accordion": {
31
+ "types": "./ds/accordion/index.d.ts",
32
+ "default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-accordion.mjs"
33
+ },
34
+ "./ds/avatar": {
35
+ "types": "./ds/avatar/index.d.ts",
36
+ "default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-avatar.mjs"
37
+ },
38
+ "./ds/card": {
39
+ "types": "./ds/card/index.d.ts",
40
+ "default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs"
41
+ },
42
+ "./ds/button": {
43
+ "types": "./ds/button/index.d.ts",
44
+ "default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-button.mjs"
45
+ },
46
+ "./ds/theme": {
47
+ "types": "./ds/theme/index.d.ts",
48
+ "default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-theme.mjs"
49
+ },
50
+ "./ds/toast": {
51
+ "types": "./ds/toast/index.d.ts",
52
+ "default": "./fesm2022/ng-vagabond-lab-ng-dsv-ds-toast.mjs"
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,2 @@
1
+ export * from './src/ui-sdk.service';
2
+ export * from './src/ui-sdk.component';
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class UiSdkComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiSdkComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiSdkComponent, "lib-ui-sdk", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class UiSdkService {
3
+ constructor();
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiSdkService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<UiSdkService>;
6
+ }
@@ -0,0 +1 @@
1
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './type';
package/type/type.d.ts ADDED
@@ -0,0 +1 @@
1
+ export type ColorType = 'default' | 'inherit' | 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'error';