@ng-vagabond-lab/ng-dsv 0.1.134 → 0.1.136
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/assets/global.scss +5 -6
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs +2 -2
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-card.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-chip.mjs +4 -2
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-chip.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-file.mjs +8 -8
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-file.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tooltip.mjs +5 -8
- package/fesm2022/ng-vagabond-lab-ng-dsv-ds-tooltip.mjs.map +1 -1
- package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs +7 -12
- package/fesm2022/ng-vagabond-lab-ng-dsv-template.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ng-vagabond-lab-ng-dsv-ds-file.d.ts +1 -1
- package/types/ng-vagabond-lab-ng-dsv-ds-tooltip.d.ts +1 -1
- package/types/ng-vagabond-lab-ng-dsv-template.d.ts +3 -4
package/assets/global.scss
CHANGED
|
@@ -95,7 +95,12 @@ h1 {
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
h2 {
|
|
98
|
+
font-size: 1.3rem;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
h3 {
|
|
98
102
|
font-size: 1.2rem;
|
|
103
|
+
margin: 8px 0px !important;
|
|
99
104
|
}
|
|
100
105
|
|
|
101
106
|
bold {
|
|
@@ -114,12 +119,6 @@ hr {
|
|
|
114
119
|
color: var(--subtitle) !important;
|
|
115
120
|
}
|
|
116
121
|
|
|
117
|
-
// @media screen and (max-width: 800px) {
|
|
118
|
-
// i[class^="ri-"] {
|
|
119
|
-
// font-size: 1.3rem !important;
|
|
120
|
-
// }
|
|
121
|
-
// }
|
|
122
|
-
|
|
123
122
|
@keyframes ripple {
|
|
124
123
|
to {
|
|
125
124
|
transform: scale(4);
|
|
@@ -35,11 +35,11 @@ class DsvCardImgComponent {
|
|
|
35
35
|
src = input('', ...(ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []));
|
|
36
36
|
alt = input('description', ...(ngDevMode ? [{ debugName: "alt" }] : /* istanbul ignore next */ []));
|
|
37
37
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DsvCardImgComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.12", type: DsvCardImgComponent, isStandalone: true, selector: "dsv-card-img", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<img [src]=\"src()\" [alt]=\"alt()\" />\n", styles: [":host{display:flex;margin:-10px -10px
|
|
38
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.12", type: DsvCardImgComponent, isStandalone: true, selector: "dsv-card-img", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<img [src]=\"src()\" [alt]=\"alt()\" />\n", styles: [":host{display:flex;margin:-10px -10px 10px;width:calc(100% + 20px);height:300px}:host img{width:100%;height:100%}\n"] });
|
|
39
39
|
}
|
|
40
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DsvCardImgComponent, decorators: [{
|
|
41
41
|
type: Component,
|
|
42
|
-
args: [{ selector: 'dsv-card-img', imports: [], template: "<img [src]=\"src()\" [alt]=\"alt()\" />\n", styles: [":host{display:flex;margin:-10px -10px
|
|
42
|
+
args: [{ selector: 'dsv-card-img', imports: [], template: "<img [src]=\"src()\" [alt]=\"alt()\" />\n", styles: [":host{display:flex;margin:-10px -10px 10px;width:calc(100% + 20px);height:300px}:host img{width:100%;height:100%}\n"] }]
|
|
43
43
|
}], propDecorators: { src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: false }] }], alt: [{ type: i0.Input, args: [{ isSignal: true, alias: "alt", required: false }] }] } });
|
|
44
44
|
|
|
45
45
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-card.mjs","sources":["../../../projects/ng-dsv/ds/card/component/action/card-action.component.ts","../../../projects/ng-dsv/ds/card/component/action/card-action.component.html","../../../projects/ng-dsv/ds/card/component/card.component.ts","../../../projects/ng-dsv/ds/card/component/card.component.html","../../../projects/ng-dsv/ds/card/component/header/card-header.component.ts","../../../projects/ng-dsv/ds/card/component/header/card-header.component.html","../../../projects/ng-dsv/ds/card/component/img/card-img.component.ts","../../../projects/ng-dsv/ds/card/component/img/card-img.component.html","../../../projects/ng-dsv/ds/card/ng-vagabond-lab-ng-dsv-ds-card.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'dsv-card-action',\n imports: [],\n templateUrl: './card-action.component.html',\n styleUrl: './card-action.component.scss',\n})\nexport class DsvCardActionComponent {}\n","<ng-content />\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'dsv-card',\n imports: [CommonModule],\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n host: {\n class: 'dsv-card',\n },\n})\nexport class DsvCardComponent {}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dsv-card-header',\n imports: [],\n templateUrl: './card-header.component.html',\n styleUrl: './card-header.component.scss',\n})\nexport class DsvCardHeaderComponent {}\n","<ng-content></ng-content>\n<div class=\"subtitle\">\n <ng-content select=\".card-subtitle\"></ng-content>\n</div>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'dsv-card-img',\n imports: [],\n templateUrl: './card-img.component.html',\n styleUrl: './card-img.component.scss',\n})\nexport class DsvCardImgComponent {\n readonly src = input<string>('');\n readonly alt = input<string>('description');\n}\n","<img [src]=\"src()\" [alt]=\"alt()\" />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAQa,sBAAsB,CAAA;wGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,2ECRnC,kBACA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,CAAA;;4FDOa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,WAClB,EAAE,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA;;;MEQF,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ7B,6BACA,EAAA,MAAA,EAAA,CAAA,uNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIc,YAAY,EAAA,CAAA,EAAA,CAAA;;4FAOb,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAT5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,OAAA,EACX,CAAC,YAAY,CAAC,EAAA,IAAA,EAGjB;AACF,wBAAA,KAAK,EAAE,UAAU;AACpB,qBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,uNAAA,CAAA,EAAA;;;MEFQ,sBAAsB,CAAA;wGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,2ECRnC,wHAIA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,CAAA;;4FDIa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,WAClB,EAAE,EAAA,QAAA,EAAA,wHAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA;;;MEIF,mBAAmB,CAAA;AACnB,IAAA,GAAG,GAAG,KAAK,CAAS,EAAE,0EAAC;AACvB,IAAA,GAAG,GAAG,KAAK,CAAS,aAAa,0EAAC;wGAFlC,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,wTCRhC,2CACA,EAAA,MAAA,EAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-card.mjs","sources":["../../../projects/ng-dsv/ds/card/component/action/card-action.component.ts","../../../projects/ng-dsv/ds/card/component/action/card-action.component.html","../../../projects/ng-dsv/ds/card/component/card.component.ts","../../../projects/ng-dsv/ds/card/component/card.component.html","../../../projects/ng-dsv/ds/card/component/header/card-header.component.ts","../../../projects/ng-dsv/ds/card/component/header/card-header.component.html","../../../projects/ng-dsv/ds/card/component/img/card-img.component.ts","../../../projects/ng-dsv/ds/card/component/img/card-img.component.html","../../../projects/ng-dsv/ds/card/ng-vagabond-lab-ng-dsv-ds-card.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'dsv-card-action',\n imports: [],\n templateUrl: './card-action.component.html',\n styleUrl: './card-action.component.scss',\n})\nexport class DsvCardActionComponent {}\n","<ng-content />\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'dsv-card',\n imports: [CommonModule],\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n host: {\n class: 'dsv-card',\n },\n})\nexport class DsvCardComponent {}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dsv-card-header',\n imports: [],\n templateUrl: './card-header.component.html',\n styleUrl: './card-header.component.scss',\n})\nexport class DsvCardHeaderComponent {}\n","<ng-content></ng-content>\n<div class=\"subtitle\">\n <ng-content select=\".card-subtitle\"></ng-content>\n</div>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'dsv-card-img',\n imports: [],\n templateUrl: './card-img.component.html',\n styleUrl: './card-img.component.scss',\n})\nexport class DsvCardImgComponent {\n readonly src = input<string>('');\n readonly alt = input<string>('description');\n}\n","<img [src]=\"src()\" [alt]=\"alt()\" />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAQa,sBAAsB,CAAA;wGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,2ECRnC,kBACA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA,CAAA;;4FDOa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,WAClB,EAAE,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,4FAAA,CAAA,EAAA;;;MEQF,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ7B,6BACA,EAAA,MAAA,EAAA,CAAA,uNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIc,YAAY,EAAA,CAAA,EAAA,CAAA;;4FAOb,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAT5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,OAAA,EACX,CAAC,YAAY,CAAC,EAAA,IAAA,EAGjB;AACF,wBAAA,KAAK,EAAE,UAAU;AACpB,qBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,uNAAA,CAAA,EAAA;;;MEFQ,sBAAsB,CAAA;wGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,2ECRnC,wHAIA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,CAAA;;4FDIa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,WAClB,EAAE,EAAA,QAAA,EAAA,wHAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA;;;MEIF,mBAAmB,CAAA;AACnB,IAAA,GAAG,GAAG,KAAK,CAAS,EAAE,0EAAC;AACvB,IAAA,GAAG,GAAG,KAAK,CAAS,aAAa,0EAAC;wGAFlC,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,wTCRhC,2CACA,EAAA,MAAA,EAAA,CAAA,qHAAA,CAAA,EAAA,CAAA;;4FDOa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,WACf,EAAE,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,qHAAA,CAAA,EAAA;;;AEJf;;AAEG;;;;"}
|
|
@@ -22,11 +22,13 @@ class DsvChipComponent extends DsvBaseColorComponent {
|
|
|
22
22
|
this.delete.emit();
|
|
23
23
|
}
|
|
24
24
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DsvChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: DsvChipComponent, isStandalone: true, selector: "dsv-chip", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { delete: "delete" }, usesInheritance: true, ngImport: i0, template: "<
|
|
25
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: DsvChipComponent, isStandalone: true, selector: "dsv-chip", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { delete: "delete" }, host: { properties: { "class": "classes()" } }, usesInheritance: true, ngImport: i0, template: "<span>\n {{ text() | translate }}\n <ng-content />\n</span>\n@if (isDelete()) {\n <dsv-button icon=\"ri-delete-bin-line\" variant=\"text\" color=\"inherit\" (callback)=\"doDelete()\" />\n}\n", styles: [":host{-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;padding:6px 15px;border-radius:15px;font-size:1rem;font-weight:300}:host.with-delete{padding:0 5px 0 20px}:host:empty{display:none}\n"], dependencies: [{ kind: "component", type: DsvButtonComponent, selector: "dsv-button", inputs: ["libelle", "icon", "iconEnd", "disabled", "noHover", "type", "prevent"], outputs: ["callback"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
26
26
|
}
|
|
27
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DsvChipComponent, decorators: [{
|
|
28
28
|
type: Component,
|
|
29
|
-
args: [{ selector: 'dsv-chip', imports: [DsvButtonComponent, TranslatePipe],
|
|
29
|
+
args: [{ selector: 'dsv-chip', imports: [DsvButtonComponent, TranslatePipe], host: {
|
|
30
|
+
'[class]': 'classes()',
|
|
31
|
+
}, template: "<span>\n {{ text() | translate }}\n <ng-content />\n</span>\n@if (isDelete()) {\n <dsv-button icon=\"ri-delete-bin-line\" variant=\"text\" color=\"inherit\" (callback)=\"doDelete()\" />\n}\n", styles: [":host{-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;padding:6px 15px;border-radius:15px;font-size:1rem;font-weight:300}:host.with-delete{padding:0 5px 0 20px}:host:empty{display:none}\n"] }]
|
|
30
32
|
}], ctorParameters: () => [], propDecorators: { text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], delete: [{ type: i0.Output, args: ["delete"] }] } });
|
|
31
33
|
|
|
32
34
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-chip.mjs","sources":["../../../projects/ng-dsv/ds/chip/component/chip.component.ts","../../../projects/ng-dsv/ds/chip/component/chip.component.html","../../../projects/ng-dsv/ds/chip/ng-vagabond-lab-ng-dsv-ds-chip.ts"],"sourcesContent":["import { Component, effect, input, output, signal } from '@angular/core';\nimport { isCallback } from '@ng-vagabond-lab/ng-dsv/base';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { DsvBaseColorComponent } from '@ng-vagabond-lab/ng-dsv/ds/color';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'dsv-chip',\n imports: [DsvButtonComponent, TranslatePipe],\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n})\nexport class DsvChipComponent extends DsvBaseColorComponent {\n readonly text = input<string>('');\n\n readonly delete = output<void>();\n\n readonly isDelete = signal<boolean>(false);\n\n constructor() {\n super();\n effect(() => {\n this.isDelete.set(isCallback(this.delete));\n\n this.text();\n const classes: string[] = [this.isDelete() ? 'with-delete' : ''];\n this.setClasses('dsv-chip', classes);\n });\n }\n\n doDelete(): void {\n this.delete.emit();\n }\n}\n","<
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-chip.mjs","sources":["../../../projects/ng-dsv/ds/chip/component/chip.component.ts","../../../projects/ng-dsv/ds/chip/component/chip.component.html","../../../projects/ng-dsv/ds/chip/ng-vagabond-lab-ng-dsv-ds-chip.ts"],"sourcesContent":["import { Component, effect, input, output, signal } from '@angular/core';\nimport { isCallback } from '@ng-vagabond-lab/ng-dsv/base';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { DsvBaseColorComponent } from '@ng-vagabond-lab/ng-dsv/ds/color';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'dsv-chip',\n imports: [DsvButtonComponent, TranslatePipe],\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n host: {\n '[class]': 'classes()',\n },\n})\nexport class DsvChipComponent extends DsvBaseColorComponent {\n readonly text = input<string>('');\n\n readonly delete = output<void>();\n\n readonly isDelete = signal<boolean>(false);\n\n constructor() {\n super();\n effect(() => {\n this.isDelete.set(isCallback(this.delete));\n\n this.text();\n const classes: string[] = [this.isDelete() ? 'with-delete' : ''];\n this.setClasses('dsv-chip', classes);\n });\n }\n\n doDelete(): void {\n this.delete.emit();\n }\n}\n","<span>\n {{ text() | translate }}\n <ng-content />\n</span>\n@if (isDelete()) {\n <dsv-button icon=\"ri-delete-bin-line\" variant=\"text\" color=\"inherit\" (callback)=\"doDelete()\" />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAeM,MAAO,gBAAiB,SAAQ,qBAAqB,CAAA;AAC9C,IAAA,IAAI,GAAG,KAAK,CAAS,EAAE,2EAAC;IAExB,MAAM,GAAG,MAAM,EAAQ;AAEvB,IAAA,QAAQ,GAAG,MAAM,CAAU,KAAK,+EAAC;AAE1C,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE1C,IAAI,CAAC,IAAI,EAAE;AACX,YAAA,MAAM,OAAO,GAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,aAAa,GAAG,EAAE,CAAC;AAChE,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC;AACxC,QAAA,CAAC,CAAC;IACN;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACtB;wGApBS,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,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf7B,yMAOA,EAAA,MAAA,EAAA,CAAA,8OAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDCc,kBAAkB,2JAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;4FAOlC,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAT5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,WACX,CAAC,kBAAkB,EAAE,aAAa,CAAC,EAAA,IAAA,EAGtC;AACF,wBAAA,SAAS,EAAE,WAAW;AACzB,qBAAA,EAAA,QAAA,EAAA,yMAAA,EAAA,MAAA,EAAA,CAAA,8OAAA,CAAA,EAAA;;;AEbL;;AAEG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, computed, Component, output, signal, Directive,
|
|
2
|
+
import { input, computed, Component, output, signal, Directive, viewChild } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
class DsvFileShowComponent {
|
|
5
5
|
url = input('', ...(ngDevMode ? [{ debugName: "url" }] : /* istanbul ignore next */ []));
|
|
@@ -67,8 +67,8 @@ class DsvFileUploadComponent {
|
|
|
67
67
|
imgAlt = input("Apperçu de l'image", ...(ngDevMode ? [{ debugName: "imgAlt" }] : /* istanbul ignore next */ []));
|
|
68
68
|
dragDropEnabled = input(true, ...(ngDevMode ? [{ debugName: "dragDropEnabled" }] : /* istanbul ignore next */ []));
|
|
69
69
|
filesChanged = output();
|
|
70
|
+
inputRef = viewChild('fileInput', ...(ngDevMode ? [{ debugName: "inputRef" }] : /* istanbul ignore next */ []));
|
|
70
71
|
file = signal(undefined, ...(ngDevMode ? [{ debugName: "file" }] : /* istanbul ignore next */ []));
|
|
71
|
-
inputRef;
|
|
72
72
|
addFiles(files) {
|
|
73
73
|
const reader = new FileReader();
|
|
74
74
|
reader.onload = () => {
|
|
@@ -80,20 +80,20 @@ class DsvFileUploadComponent {
|
|
|
80
80
|
handleFileDrop(event) {
|
|
81
81
|
if (event?.dataTransfer?.files?.length) {
|
|
82
82
|
const files = event.dataTransfer.files;
|
|
83
|
-
this.inputRef
|
|
83
|
+
const input = this.inputRef()?.nativeElement;
|
|
84
|
+
if (input) {
|
|
85
|
+
input.files = files;
|
|
86
|
+
}
|
|
84
87
|
this.addFiles(files);
|
|
85
88
|
}
|
|
86
89
|
}
|
|
87
90
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DsvFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
88
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: DsvFileUploadComponent, isStandalone: true, selector: "dsv-file-upload", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, fileType: { classPropertyName: "fileType", publicName: "fileType", isSignal: true, isRequired: false, transformFunction: null }, imgAlt: { classPropertyName: "imgAlt", publicName: "imgAlt", isSignal: true, isRequired: false, transformFunction: null }, dragDropEnabled: { classPropertyName: "dragDropEnabled", publicName: "dragDropEnabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filesChanged: "filesChanged" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<label class=\"drag-zone\" [appDragDrop]=\"dragDropEnabled()\" (dropped)=\"handleFileDrop($event)\">\n <input\n type=\"file\"\n [accept]=\"fileType()\"\n [multiple]=\"multiple()\"\n (change)=\"addFiles(fileInput.files!)\"\n #fileInput\n class=\"visually-hidden\"\n />\n @if (!file()) {\n <ng-content></ng-content>\n } @else {\n <img [src]=\"file()\" [alt]=\"imgAlt()\" width=\"100%\" />\n }\n</label>\n", styles: [":host{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--background)}:host label{padding:5px}:host .drag-zone{width:80%;min-height:200px;border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:space-around;cursor:pointer}:host .drag-zone.dragging{background-color:#cdcdff;border:3px dashed #999999}:host .drag-zone:focus-within{border:1px solid #999999}:host .visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}\n"], dependencies: [{ kind: "directive", type: FileUploadDirective, selector: "[appDragDrop]", inputs: ["appDragDrop"], outputs: ["dropped"] }] });
|
|
91
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: DsvFileUploadComponent, isStandalone: true, selector: "dsv-file-upload", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, fileType: { classPropertyName: "fileType", publicName: "fileType", isSignal: true, isRequired: false, transformFunction: null }, imgAlt: { classPropertyName: "imgAlt", publicName: "imgAlt", isSignal: true, isRequired: false, transformFunction: null }, dragDropEnabled: { classPropertyName: "dragDropEnabled", publicName: "dragDropEnabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filesChanged: "filesChanged" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["fileInput"], descendants: true, isSignal: true }], ngImport: i0, template: "<label class=\"drag-zone\" [appDragDrop]=\"dragDropEnabled()\" (dropped)=\"handleFileDrop($event)\">\n <input\n type=\"file\"\n [accept]=\"fileType()\"\n [multiple]=\"multiple()\"\n (change)=\"addFiles(fileInput.files!)\"\n #fileInput\n class=\"visually-hidden\"\n />\n @if (!file()) {\n <ng-content></ng-content>\n } @else {\n <img [src]=\"file()\" [alt]=\"imgAlt()\" width=\"100%\" />\n }\n</label>\n", styles: [":host{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--background)}:host label{padding:5px}:host .drag-zone{width:80%;min-height:200px;border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:space-around;cursor:pointer}:host .drag-zone.dragging{background-color:#cdcdff;border:3px dashed #999999}:host .drag-zone:focus-within{border:1px solid #999999}:host .visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}\n"], dependencies: [{ kind: "directive", type: FileUploadDirective, selector: "[appDragDrop]", inputs: ["appDragDrop"], outputs: ["dropped"] }] });
|
|
89
92
|
}
|
|
90
93
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DsvFileUploadComponent, decorators: [{
|
|
91
94
|
type: Component,
|
|
92
95
|
args: [{ selector: 'dsv-file-upload', imports: [FileUploadDirective], template: "<label class=\"drag-zone\" [appDragDrop]=\"dragDropEnabled()\" (dropped)=\"handleFileDrop($event)\">\n <input\n type=\"file\"\n [accept]=\"fileType()\"\n [multiple]=\"multiple()\"\n (change)=\"addFiles(fileInput.files!)\"\n #fileInput\n class=\"visually-hidden\"\n />\n @if (!file()) {\n <ng-content></ng-content>\n } @else {\n <img [src]=\"file()\" [alt]=\"imgAlt()\" width=\"100%\" />\n }\n</label>\n", styles: [":host{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--background)}:host label{padding:5px}:host .drag-zone{width:80%;min-height:200px;border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:space-around;cursor:pointer}:host .drag-zone.dragging{background-color:#cdcdff;border:3px dashed #999999}:host .drag-zone:focus-within{border:1px solid #999999}:host .visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}\n"] }]
|
|
93
|
-
}], propDecorators: { multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], fileType: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileType", required: false }] }], imgAlt: [{ type: i0.Input, args: [{ isSignal: true, alias: "imgAlt", required: false }] }], dragDropEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragDropEnabled", required: false }] }], filesChanged: [{ type: i0.Output, args: ["filesChanged"] }], inputRef: [{
|
|
94
|
-
type: ViewChild,
|
|
95
|
-
args: ['fileInput']
|
|
96
|
-
}] } });
|
|
96
|
+
}], propDecorators: { multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], fileType: [{ type: i0.Input, args: [{ isSignal: true, alias: "fileType", required: false }] }], imgAlt: [{ type: i0.Input, args: [{ isSignal: true, alias: "imgAlt", required: false }] }], dragDropEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragDropEnabled", required: false }] }], filesChanged: [{ type: i0.Output, args: ["filesChanged"] }], inputRef: [{ type: i0.ViewChild, args: ['fileInput', { isSignal: true }] }] } });
|
|
97
97
|
|
|
98
98
|
/**
|
|
99
99
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-file.mjs","sources":["../../../projects/ng-dsv/ds/file/show/component/file-show.component.ts","../../../projects/ng-dsv/ds/file/show/component/file-show.component.html","../../../projects/ng-dsv/ds/file/upload/directive/file-upload-directives.ts","../../../projects/ng-dsv/ds/file/upload/component/file-upload.component.ts","../../../projects/ng-dsv/ds/file/upload/component/file-upload.component.html","../../../projects/ng-dsv/ds/file/ng-vagabond-lab-ng-dsv-ds-file.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\n\n@Component({\n selector: 'dsv-file-show',\n templateUrl: './file-show.component.html',\n})\nexport class DsvFileShowComponent {\n readonly url = input<string>('');\n readonly src = input.required<string>();\n readonly alt = input<string>('Exemple du dsv file show');\n\n readonly fileUrl = computed<string>(() => this.url() + '/file/download?fileName=' + this.src());\n}\n","<img\n [src]=\"fileUrl()\"\n [alt]=\"alt()\"\n width=\"100%\"\n/>\n","import { computed, Directive, input, output, signal } from '@angular/core';\n\n@Directive({\n selector: '[appDragDrop]',\n host: {\n '[class.dragging]': 'dragInProgress()',\n '(dragenter)': 'onDragOver($event)',\n '(dragover)': 'onDragOver($event)',\n '(dragleave)': 'onDragEnd($event)',\n '(dragend)': 'onDragEnd($event)',\n '(drop)': 'onDrop($event)',\n },\n})\nexport class FileUploadDirective {\n readonly appDragDrop = input<any>();\n\n readonly dropped = output<DragEvent>();\n\n readonly dragInProgress = signal(false);\n\n private readonly enabled = computed<boolean>(() => {\n const value = this.appDragDrop();\n return value === '' ? true : !!value;\n });\n\n onDragOver(event: DragEvent): void {\n if (!this.enabled()) return;\n this.stopAndPreventDefault(event);\n this.dragInProgress.set(true);\n }\n\n onDragEnd(event: DragEvent): void {\n if (!this.enabled()) return;\n this.stopAndPreventDefault(event);\n this.dragInProgress.set(false);\n }\n\n onDrop(event: DragEvent): void {\n this.stopAndPreventDefault(event);\n this.dragInProgress.set(false);\n this.dropped.emit(event);\n }\n\n private stopAndPreventDefault(e: UIEvent): void {\n e.stopPropagation();\n e.preventDefault();\n }\n}\n","import { Component, ElementRef, input, output, signal,
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-file.mjs","sources":["../../../projects/ng-dsv/ds/file/show/component/file-show.component.ts","../../../projects/ng-dsv/ds/file/show/component/file-show.component.html","../../../projects/ng-dsv/ds/file/upload/directive/file-upload-directives.ts","../../../projects/ng-dsv/ds/file/upload/component/file-upload.component.ts","../../../projects/ng-dsv/ds/file/upload/component/file-upload.component.html","../../../projects/ng-dsv/ds/file/ng-vagabond-lab-ng-dsv-ds-file.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\n\n@Component({\n selector: 'dsv-file-show',\n templateUrl: './file-show.component.html',\n})\nexport class DsvFileShowComponent {\n readonly url = input<string>('');\n readonly src = input.required<string>();\n readonly alt = input<string>('Exemple du dsv file show');\n\n readonly fileUrl = computed<string>(() => this.url() + '/file/download?fileName=' + this.src());\n}\n","<img\n [src]=\"fileUrl()\"\n [alt]=\"alt()\"\n width=\"100%\"\n/>\n","import { computed, Directive, input, output, signal } from '@angular/core';\n\n@Directive({\n selector: '[appDragDrop]',\n host: {\n '[class.dragging]': 'dragInProgress()',\n '(dragenter)': 'onDragOver($event)',\n '(dragover)': 'onDragOver($event)',\n '(dragleave)': 'onDragEnd($event)',\n '(dragend)': 'onDragEnd($event)',\n '(drop)': 'onDrop($event)',\n },\n})\nexport class FileUploadDirective {\n readonly appDragDrop = input<any>();\n\n readonly dropped = output<DragEvent>();\n\n readonly dragInProgress = signal(false);\n\n private readonly enabled = computed<boolean>(() => {\n const value = this.appDragDrop();\n return value === '' ? true : !!value;\n });\n\n onDragOver(event: DragEvent): void {\n if (!this.enabled()) return;\n this.stopAndPreventDefault(event);\n this.dragInProgress.set(true);\n }\n\n onDragEnd(event: DragEvent): void {\n if (!this.enabled()) return;\n this.stopAndPreventDefault(event);\n this.dragInProgress.set(false);\n }\n\n onDrop(event: DragEvent): void {\n this.stopAndPreventDefault(event);\n this.dragInProgress.set(false);\n this.dropped.emit(event);\n }\n\n private stopAndPreventDefault(e: UIEvent): void {\n e.stopPropagation();\n e.preventDefault();\n }\n}\n","import { Component, ElementRef, input, output, signal, viewChild } from '@angular/core';\nimport { FileUploadDirective } from '../directive/file-upload-directives';\n\n@Component({\n selector: 'dsv-file-upload',\n imports: [FileUploadDirective],\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n})\nexport class DsvFileUploadComponent {\n readonly multiple = input<boolean>(false);\n readonly fileType = input<string>('image/*');\n readonly imgAlt = input<string>(\"Apperçu de l'image\");\n readonly dragDropEnabled = input<boolean>(true);\n\n readonly filesChanged = output<FileList>();\n\n readonly inputRef = viewChild<ElementRef>('fileInput');\n\n readonly file = signal<string | undefined>(undefined);\n\n addFiles(files: FileList): void {\n const reader = new FileReader();\n reader.onload = () => {\n this.file.set(reader.result as string);\n };\n reader.readAsDataURL(files.item(0) as Blob);\n this.filesChanged.emit(files);\n }\n\n handleFileDrop(event: DragEvent): void {\n if (event?.dataTransfer?.files?.length) {\n const files = event.dataTransfer.files;\n const input = this.inputRef()?.nativeElement;\n if (input) {\n input.files = files;\n }\n this.addFiles(files);\n }\n }\n}\n","<label class=\"drag-zone\" [appDragDrop]=\"dragDropEnabled()\" (dropped)=\"handleFileDrop($event)\">\n <input\n type=\"file\"\n [accept]=\"fileType()\"\n [multiple]=\"multiple()\"\n (change)=\"addFiles(fileInput.files!)\"\n #fileInput\n class=\"visually-hidden\"\n />\n @if (!file()) {\n <ng-content></ng-content>\n } @else {\n <img [src]=\"file()\" [alt]=\"imgAlt()\" width=\"100%\" />\n }\n</label>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAMa,oBAAoB,CAAA;AACpB,IAAA,GAAG,GAAG,KAAK,CAAS,EAAE,0EAAC;AACvB,IAAA,GAAG,GAAG,KAAK,CAAC,QAAQ,yEAAU;AAC9B,IAAA,GAAG,GAAG,KAAK,CAAS,0BAA0B,0EAAC;AAE/C,IAAA,OAAO,GAAG,QAAQ,CAAS,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,0BAA0B,GAAG,IAAI,CAAC,GAAG,EAAE,8EAAC;wGALtF,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,0aCNjC,8EAKA,EAAA,CAAA;;4FDCa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;+BACI,eAAe,EAAA,QAAA,EAAA,8EAAA,EAAA;;;MEUhB,mBAAmB,CAAA;IACnB,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAO;IAE1B,OAAO,GAAG,MAAM,EAAa;AAE7B,IAAA,cAAc,GAAG,MAAM,CAAC,KAAK,qFAAC;AAEtB,IAAA,OAAO,GAAG,QAAQ,CAAU,MAAK;AAC9C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAChC,QAAA,OAAO,KAAK,KAAK,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK;AACxC,IAAA,CAAC,8EAAC;AAEF,IAAA,UAAU,CAAC,KAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAAE;AACrB,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;IACjC;AAEA,IAAA,SAAS,CAAC,KAAgB,EAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAAE;AACrB,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;IAClC;AAEA,IAAA,MAAM,CAAC,KAAgB,EAAA;AACnB,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IAC5B;AAEQ,IAAA,qBAAqB,CAAC,CAAU,EAAA;QACpC,CAAC,CAAC,eAAe,EAAE;QACnB,CAAC,CAAC,cAAc,EAAE;IACtB;wGAjCS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAX/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,IAAI,EAAE;AACF,wBAAA,kBAAkB,EAAE,kBAAkB;AACtC,wBAAA,aAAa,EAAE,oBAAoB;AACnC,wBAAA,YAAY,EAAE,oBAAoB;AAClC,wBAAA,aAAa,EAAE,mBAAmB;AAClC,wBAAA,WAAW,EAAE,mBAAmB;AAChC,wBAAA,QAAQ,EAAE,gBAAgB;AAC7B,qBAAA;AACJ,iBAAA;;;MCHY,sBAAsB,CAAA;AACtB,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,+EAAC;AAChC,IAAA,QAAQ,GAAG,KAAK,CAAS,SAAS,+EAAC;AACnC,IAAA,MAAM,GAAG,KAAK,CAAS,oBAAoB,6EAAC;AAC5C,IAAA,eAAe,GAAG,KAAK,CAAU,IAAI,sFAAC;IAEtC,YAAY,GAAG,MAAM,EAAY;AAEjC,IAAA,QAAQ,GAAG,SAAS,CAAa,WAAW,+EAAC;AAE7C,IAAA,IAAI,GAAG,MAAM,CAAqB,SAAS,2EAAC;AAErD,IAAA,QAAQ,CAAC,KAAe,EAAA;AACpB,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC/B,QAAA,MAAM,CAAC,MAAM,GAAG,MAAK;YACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAgB,CAAC;AAC1C,QAAA,CAAC;QACD,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAS,CAAC;AAC3C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;IACjC;AAEA,IAAA,cAAc,CAAC,KAAgB,EAAA;QAC3B,IAAI,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;AACpC,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa;YAC5C,IAAI,KAAK,EAAE;AACP,gBAAA,KAAK,CAAC,KAAK,GAAG,KAAK;YACvB;AACA,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACxB;IACJ;wGA9BS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECTnC,2dAeA,EAAA,MAAA,EAAA,CAAA,ijBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDVc,mBAAmB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAIpB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACI,iBAAiB,EAAA,OAAA,EAClB,CAAC,mBAAmB,CAAC,EAAA,QAAA,EAAA,2dAAA,EAAA,MAAA,EAAA,CAAA,ijBAAA,CAAA,EAAA;6gBAYY,WAAW,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEjBzD;;AAEG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input,
|
|
2
|
+
import { input, viewChild, signal, Component } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
var TooltipPositionEnum;
|
|
5
5
|
(function (TooltipPositionEnum) {
|
|
@@ -34,10 +34,10 @@ const getTooltipPosition = (position, rect) => {
|
|
|
34
34
|
class DsvTooltipComponent {
|
|
35
35
|
text = input('', ...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
|
|
36
36
|
position = input(TooltipPositionEnum.TOP, ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
|
|
37
|
+
tooltipBox = viewChild('tooltipBox', ...(ngDevMode ? [{ debugName: "tooltipBox" }] : /* istanbul ignore next */ []));
|
|
37
38
|
visible = signal(false, ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
|
|
38
39
|
opacity = signal(0, ...(ngDevMode ? [{ debugName: "opacity" }] : /* istanbul ignore next */ []));
|
|
39
40
|
positionClass = signal(TooltipPositionEnum.TOP, ...(ngDevMode ? [{ debugName: "positionClass" }] : /* istanbul ignore next */ []));
|
|
40
|
-
tooltipBox;
|
|
41
41
|
onResize() {
|
|
42
42
|
this.adjustPosition();
|
|
43
43
|
}
|
|
@@ -51,7 +51,7 @@ class DsvTooltipComponent {
|
|
|
51
51
|
}
|
|
52
52
|
adjustPosition() {
|
|
53
53
|
setTimeout(() => {
|
|
54
|
-
const tooltipEl = this.tooltipBox?.nativeElement;
|
|
54
|
+
const tooltipEl = this.tooltipBox()?.nativeElement;
|
|
55
55
|
if (!tooltipEl)
|
|
56
56
|
return;
|
|
57
57
|
const rect = tooltipEl.getBoundingClientRect();
|
|
@@ -60,7 +60,7 @@ class DsvTooltipComponent {
|
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
62
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DsvTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: DsvTooltipComponent, isStandalone: true, selector: "dsv-tooltip", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, viewQueries: [{ propertyName: "tooltipBox", first: true, predicate: ["tooltipBox"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n@if (visible()) {\n <div #tooltipBox [class]=\"'dsv-tooltip ' + positionClass()\" [style.opacity]=\"opacity()\">\n {{ text() }}\n </div>\n}\n", styles: [":host{position:relative;display:flex;flex-direction:column}.dsv-tooltip{position:absolute;background-color:#333;color:#fff;padding:6px 10px;border-radius:4px;font-size:.85rem;z-index:10;opacity:.9;min-width:150px;width:100%;max-width:200px;white-space:normal;text-align:center;word-wrap:break-word}.dsv-tooltip.top{bottom:100%;left:50%;transform:translate(-50%);margin-bottom:5px}.dsv-tooltip.top:after{content:\"\";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#333 transparent transparent transparent}.dsv-tooltip.bottom{top:100%;left:50%;transform:translate(-50%);margin-top:5px}.dsv-tooltip.bottom:after{content:\" \";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent black transparent}.dsv-tooltip.left{right:100%;top:50%;transform:translateY(-50%);margin-right:5px}.dsv-tooltip.left:after{content:\" \";position:absolute;top:50%;left:100%;margin-top:-5px;border-width:5px;border-style:solid;border-color:transparent transparent transparent black}.dsv-tooltip.right{left:100%;top:50%;transform:translateY(-50%);margin-left:5px}.dsv-tooltip.right:after{content:\" \";position:absolute;top:50%;right:100%;margin-top:-5px;border-width:5px;border-style:solid;border-color:transparent black transparent transparent}\n"] });
|
|
63
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: DsvTooltipComponent, isStandalone: true, selector: "dsv-tooltip", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, viewQueries: [{ propertyName: "tooltipBox", first: true, predicate: ["tooltipBox"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content></ng-content>\n@if (visible()) {\n <div #tooltipBox [class]=\"'dsv-tooltip ' + positionClass()\" [style.opacity]=\"opacity()\">\n {{ text() }}\n </div>\n}\n", styles: [":host{position:relative;display:flex;flex-direction:column}.dsv-tooltip{position:absolute;background-color:#333;color:#fff;padding:6px 10px;border-radius:4px;font-size:.85rem;z-index:10;opacity:.9;min-width:150px;width:100%;max-width:200px;white-space:normal;text-align:center;word-wrap:break-word}.dsv-tooltip.top{bottom:100%;left:50%;transform:translate(-50%);margin-bottom:5px}.dsv-tooltip.top:after{content:\"\";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#333 transparent transparent transparent}.dsv-tooltip.bottom{top:100%;left:50%;transform:translate(-50%);margin-top:5px}.dsv-tooltip.bottom:after{content:\" \";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent black transparent}.dsv-tooltip.left{right:100%;top:50%;transform:translateY(-50%);margin-right:5px}.dsv-tooltip.left:after{content:\" \";position:absolute;top:50%;left:100%;margin-top:-5px;border-width:5px;border-style:solid;border-color:transparent transparent transparent black}.dsv-tooltip.right{left:100%;top:50%;transform:translateY(-50%);margin-left:5px}.dsv-tooltip.right:after{content:\" \";position:absolute;top:50%;right:100%;margin-top:-5px;border-width:5px;border-style:solid;border-color:transparent black transparent transparent}\n"] });
|
|
64
64
|
}
|
|
65
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: DsvTooltipComponent, decorators: [{
|
|
66
66
|
type: Component,
|
|
@@ -69,10 +69,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
|
|
|
69
69
|
'(mouseenter)': 'onMouseEnter()',
|
|
70
70
|
'(mouseleave)': 'onMouseLeave()',
|
|
71
71
|
}, template: "<ng-content></ng-content>\n@if (visible()) {\n <div #tooltipBox [class]=\"'dsv-tooltip ' + positionClass()\" [style.opacity]=\"opacity()\">\n {{ text() }}\n </div>\n}\n", styles: [":host{position:relative;display:flex;flex-direction:column}.dsv-tooltip{position:absolute;background-color:#333;color:#fff;padding:6px 10px;border-radius:4px;font-size:.85rem;z-index:10;opacity:.9;min-width:150px;width:100%;max-width:200px;white-space:normal;text-align:center;word-wrap:break-word}.dsv-tooltip.top{bottom:100%;left:50%;transform:translate(-50%);margin-bottom:5px}.dsv-tooltip.top:after{content:\"\";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#333 transparent transparent transparent}.dsv-tooltip.bottom{top:100%;left:50%;transform:translate(-50%);margin-top:5px}.dsv-tooltip.bottom:after{content:\" \";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent black transparent}.dsv-tooltip.left{right:100%;top:50%;transform:translateY(-50%);margin-right:5px}.dsv-tooltip.left:after{content:\" \";position:absolute;top:50%;left:100%;margin-top:-5px;border-width:5px;border-style:solid;border-color:transparent transparent transparent black}.dsv-tooltip.right{left:100%;top:50%;transform:translateY(-50%);margin-left:5px}.dsv-tooltip.right:after{content:\" \";position:absolute;top:50%;right:100%;margin-top:-5px;border-width:5px;border-style:solid;border-color:transparent black transparent transparent}\n"] }]
|
|
72
|
-
}], propDecorators: { text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], tooltipBox: [{
|
|
73
|
-
type: ViewChild,
|
|
74
|
-
args: ['tooltipBox']
|
|
75
|
-
}] } });
|
|
72
|
+
}], propDecorators: { text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], tooltipBox: [{ type: i0.ViewChild, args: ['tooltipBox', { isSignal: true }] }] } });
|
|
76
73
|
|
|
77
74
|
/**
|
|
78
75
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-tooltip.mjs","sources":["../../../projects/ng-dsv/ds/tooltip/dto/tooltip.dto.ts","../../../projects/ng-dsv/ds/tooltip/utils/tooltip.utils.ts","../../../projects/ng-dsv/ds/tooltip/component/tooltip.component.ts","../../../projects/ng-dsv/ds/tooltip/component/tooltip.component.html","../../../projects/ng-dsv/ds/tooltip/ng-vagabond-lab-ng-dsv-ds-tooltip.ts"],"sourcesContent":["export type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n\nexport enum TooltipPositionEnum {\n TOP = 'top',\n BOTTOM = 'bottom',\n LEFT = 'left',\n RIGHT = 'right',\n}\n","import { TooltipPosition, TooltipPositionEnum } from '../dto/tooltip.dto';\n\nexport const POSITION_MAX_TOP = 50;\nexport const POSITION_MAX_BOTTOM = 50;\nexport const POSITION_MAX_LEFT = 50;\nexport const POSITION_MAX_RIGHT = 50;\n\nexport const getTooltipPosition = (\n position: TooltipPosition,\n rect: DOMRect,\n): TooltipPositionEnum | TooltipPosition => {\n if (position === TooltipPositionEnum.TOP && rect.top < POSITION_MAX_TOP) {\n return TooltipPositionEnum.BOTTOM;\n } else if (\n position === TooltipPositionEnum.BOTTOM &&\n rect.bottom > window.innerHeight - POSITION_MAX_BOTTOM\n ) {\n return TooltipPositionEnum.TOP;\n } else if (position === TooltipPositionEnum.LEFT && rect.left < POSITION_MAX_LEFT) {\n return TooltipPositionEnum.RIGHT;\n } else if (\n position === TooltipPositionEnum.RIGHT &&\n rect.right > window.innerWidth - POSITION_MAX_RIGHT\n ) {\n return TooltipPositionEnum.LEFT;\n }\n return position;\n};\n","import { Component, ElementRef, input, signal,
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-tooltip.mjs","sources":["../../../projects/ng-dsv/ds/tooltip/dto/tooltip.dto.ts","../../../projects/ng-dsv/ds/tooltip/utils/tooltip.utils.ts","../../../projects/ng-dsv/ds/tooltip/component/tooltip.component.ts","../../../projects/ng-dsv/ds/tooltip/component/tooltip.component.html","../../../projects/ng-dsv/ds/tooltip/ng-vagabond-lab-ng-dsv-ds-tooltip.ts"],"sourcesContent":["export type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n\nexport enum TooltipPositionEnum {\n TOP = 'top',\n BOTTOM = 'bottom',\n LEFT = 'left',\n RIGHT = 'right',\n}\n","import { TooltipPosition, TooltipPositionEnum } from '../dto/tooltip.dto';\n\nexport const POSITION_MAX_TOP = 50;\nexport const POSITION_MAX_BOTTOM = 50;\nexport const POSITION_MAX_LEFT = 50;\nexport const POSITION_MAX_RIGHT = 50;\n\nexport const getTooltipPosition = (\n position: TooltipPosition,\n rect: DOMRect,\n): TooltipPositionEnum | TooltipPosition => {\n if (position === TooltipPositionEnum.TOP && rect.top < POSITION_MAX_TOP) {\n return TooltipPositionEnum.BOTTOM;\n } else if (\n position === TooltipPositionEnum.BOTTOM &&\n rect.bottom > window.innerHeight - POSITION_MAX_BOTTOM\n ) {\n return TooltipPositionEnum.TOP;\n } else if (position === TooltipPositionEnum.LEFT && rect.left < POSITION_MAX_LEFT) {\n return TooltipPositionEnum.RIGHT;\n } else if (\n position === TooltipPositionEnum.RIGHT &&\n rect.right > window.innerWidth - POSITION_MAX_RIGHT\n ) {\n return TooltipPositionEnum.LEFT;\n }\n return position;\n};\n","import { Component, ElementRef, input, signal, viewChild } from '@angular/core';\nimport { TooltipPosition, TooltipPositionEnum } from '../dto/tooltip.dto';\nimport { getTooltipPosition } from '../utils/tooltip.utils';\n@Component({\n selector: 'dsv-tooltip',\n imports: [],\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n host: {\n '(window:resize)': 'onResize()',\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()',\n },\n})\nexport class DsvTooltipComponent {\n readonly text = input<string>('');\n readonly position = input<TooltipPosition>(TooltipPositionEnum.TOP);\n\n readonly tooltipBox = viewChild<ElementRef>('tooltipBox');\n\n readonly visible = signal<boolean>(false);\n readonly opacity = signal<number>(0);\n\n readonly positionClass = signal<TooltipPosition>(TooltipPositionEnum.TOP);\n\n onResize(): void {\n this.adjustPosition();\n }\n\n onMouseEnter(): void {\n this.visible.set(true);\n this.adjustPosition();\n }\n\n onMouseLeave(): void {\n this.opacity.set(0);\n this.visible.set(false);\n }\n\n private adjustPosition(): void {\n setTimeout(() => {\n const tooltipEl = this.tooltipBox()?.nativeElement;\n if (!tooltipEl) return;\n const rect = tooltipEl.getBoundingClientRect();\n\n this.positionClass.set(getTooltipPosition(this.position(), rect));\n this.opacity.set(0.9);\n });\n }\n}\n","<ng-content></ng-content>\n@if (visible()) {\n <div #tooltipBox [class]=\"'dsv-tooltip ' + positionClass()\" [style.opacity]=\"opacity()\">\n {{ text() }}\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NgTemplateOutlet } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { inject, TemplateRef, input, Directive, contentChildren, Component } from '@angular/core';
|
|
4
4
|
import { DsvItemComponent } from '@ng-vagabond-lab/ng-dsv/ds/item';
|
|
5
5
|
import { MenuService, DsvMenuComponent } from '@ng-vagabond-lab/ng-dsv/ds/menu';
|
|
6
6
|
import { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';
|
|
@@ -10,20 +10,15 @@ import { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';
|
|
|
10
10
|
import { DsvCardComponent } from '@ng-vagabond-lab/ng-dsv/ds/card';
|
|
11
11
|
|
|
12
12
|
class MenuSlotDirective {
|
|
13
|
-
|
|
14
|
-
menuSlot;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: MenuSlotDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
19
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.12", type: MenuSlotDirective, isStandalone: true, selector: "[menuSlot]", inputs: { menuSlot: "menuSlot" }, ngImport: i0 });
|
|
13
|
+
template = inject(TemplateRef);
|
|
14
|
+
menuSlot = input.required(...(ngDevMode ? [{ debugName: "menuSlot" }] : /* istanbul ignore next */ []));
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: MenuSlotDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
16
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.12", type: MenuSlotDirective, isStandalone: true, selector: "[menuSlot]", inputs: { menuSlot: { classPropertyName: "menuSlot", publicName: "menuSlot", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });
|
|
20
17
|
}
|
|
21
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: MenuSlotDirective, decorators: [{
|
|
22
19
|
type: Directive,
|
|
23
20
|
args: [{ selector: '[menuSlot]', standalone: true }]
|
|
24
|
-
}],
|
|
25
|
-
type: Input
|
|
26
|
-
}] } });
|
|
21
|
+
}], propDecorators: { menuSlot: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuSlot", required: true }] }] } });
|
|
27
22
|
|
|
28
23
|
class MenuContainer {
|
|
29
24
|
authService = inject(AuthService);
|
|
@@ -32,7 +27,7 @@ class MenuContainer {
|
|
|
32
27
|
slots = contentChildren(MenuSlotDirective, ...(ngDevMode ? [{ debugName: "slots" }] : /* istanbul ignore next */ []));
|
|
33
28
|
menu = input(...(ngDevMode ? [undefined, { debugName: "menu" }] : /* istanbul ignore next */ []));
|
|
34
29
|
getSlot(id) {
|
|
35
|
-
return this.slots()?.find((s) => s.menuSlot === id)?.
|
|
30
|
+
return this.slots()?.find((s) => s.menuSlot() === id)?.template ?? null;
|
|
36
31
|
}
|
|
37
32
|
isActive(url) {
|
|
38
33
|
return this.routerService.currentUrl().includes(url);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-vagabond-lab-ng-dsv-template.mjs","sources":["../../../projects/ng-dsv/template/menu/slot/menu.slot.ts","../../../projects/ng-dsv/template/menu/container/menu.container.ts","../../../projects/ng-dsv/template/menu/container/menu.container.html","../../../projects/ng-dsv/template/footer/component/footer.component.ts","../../../projects/ng-dsv/template/footer/component/footer.component.html","../../../projects/ng-dsv/template/not-found/component/not-found.component.ts","../../../projects/ng-dsv/template/not-found/component/not-found.component.html","../../../projects/ng-dsv/template/ng-vagabond-lab-ng-dsv-template.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[menuSlot]', standalone: true })\nexport class MenuSlotDirective {\n @Input() menuSlot!: string;\n\n constructor(public tpl: TemplateRef<any>) {}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, contentChildren, inject, input, TemplateRef } from '@angular/core';\nimport { DsvItemComponent } from '@ng-vagabond-lab/ng-dsv/ds/item';\nimport { DsvMenuComponent, MenuService } from '@ng-vagabond-lab/ng-dsv/ds/menu';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';\nimport { RouterService } from '@ng-vagabond-lab/ng-dsv/router';\nimport { MenuDto } from '../dto/menu.dto';\nimport { MenuSlotDirective } from '../slot/menu.slot';\n\n@Component({\n selector: 'app-menu-container',\n imports: [DsvMenuComponent, DsvItemComponent, NgTemplateOutlet],\n templateUrl: './menu.container.html',\n styleUrls: ['./menu.container.scss'],\n})\nexport class MenuContainer {\n readonly authService = inject(AuthService);\n readonly routerService = inject(RouterService);\n readonly menuService = inject(MenuService);\n\n readonly slots = contentChildren(MenuSlotDirective);\n\n readonly menu = input<MenuDto>();\n\n getSlot(id: string): TemplateRef<any> | null {\n return this.slots()?.find((s) => s.menuSlot === id)?.tpl ?? null;\n }\n\n isActive(url: string): boolean {\n return this.routerService.currentUrl().includes(url);\n }\n}\n","<dsv-menu>\n @for (item of menu()?.content; track item.url) {\n @if (!item.role || authService.hasRole(item.role)) {\n <dsv-item\n [icon]=\"item.icon\"\n [text]=\"item.text\"\n [url]=\"item.url\"\n [class.active]=\"isActive(item.url)\"\n (callback)=\"menuService.closeMenu()\"\n />\n <ng-container *ngTemplateOutlet=\"getSlot(item.id)\"></ng-container>\n }\n }\n</dsv-menu>\n","import { Component, input } from '@angular/core';\nimport { RouterExternalPipe, RouterInternalPipe } from '@ng-vagabond-lab/ng-dsv/router';\n\n@Component({\n selector: 'app-footer',\n imports: [RouterInternalPipe, RouterExternalPipe],\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n})\nexport class FooterComponent {\n readonly copyright = input<string>();\n readonly withMentions = input<boolean>(true);\n readonly withX = input<boolean>(true);\n}\n","<footer>\n <hr />\n <ng-content />\n <div class=\"footer-content\">\n <div>\n <div>\n <a href=\"/contact\" dsvLink>Contact</a>\n </div>\n <div>\n <strong>Mail :</strong>\n <a href=\"mailto:vagabond.git@gmail.com\" dsvLinkExternal>vagabond.git@gmail.com</a>\n </div>\n @if (withMentions()) {\n <div>\n <a href=\"/mentions-legales\" dsvLink>Mentions-legales</a>\n </div>\n }\n </div>\n <div>\n <div class=\"created-by\">\n <a href=\"/contact\" dsvLink\n ><img class=\"vagabond\" title=\"vagabond\" alt=\"vagabond\" src=\"images/vagabond.png\"\n /></a>\n <div>\n <a href=\"/contact\" dsvLink>Créé par Vagabond</a>\n <div class=\"flex-row gap5\">\n <a href=\"https://github.com/vagabon\" title=\"Github de Vagabond\" dsvLinkExternal>\n <img title=\"logo Github\" alt=\"logo Github\" src=\"/images/icons/github.png\" />\n </a>\n @if (withX()) {\n <a href=\"https://twitter.com/VagabondDev\" title=\"X de Vagabond\" dsvLinkExternal>\n <img title=\"logo X\" alt=\"logo X\" src=\"/images/icons/x.png\" />\n </a>\n }\n <a href=\"https://discord.gg/TUy5MtVRt7\" title=\"Discord de Vagabond\" dsvLinkExternal>\n <img title=\"logo discord\" alt=\"logo discord\" src=\"/images/icons/discord.png\"\n /></a>\n <a href=\"https://blog.vagabond.synology.me\" title=\"Blog de Vagabond\" dsvLinkExternal>\n <img\n title=\"logo blog vagabond\"\n alt=\"Me suivre sur mon blog\"\n src=\"/images/icons/blog.png\"\n /></a>\n </div>\n </div>\n </div>\n </div>\n </div>\n <p class=\"copyright\">Copyright © 2026 {{ copyright() }}</p>\n</footer>\n","import { Component } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { DsvCardComponent } from '@ng-vagabond-lab/ng-dsv/ds/card';\nimport { RouterExternalPipe } from '@ng-vagabond-lab/ng-dsv/router';\n\n@Component({\n selector: 'app-not-found',\n imports: [DsvCardComponent, RouterExternalPipe, DsvButtonComponent, RouterLink],\n templateUrl: './not-found.component.html',\n styleUrls: ['./not-found.component.scss'],\n})\nexport class NotFoundComponent {}\n","<dsv-card>\n <div class=\"dsv-card-header\">\n <h2>Page 404</h2>\n </div>\n <div class=\"dsv-card-content\">\n <div class=\"flex error text gap10\">\n <i class=\"ri-information-line\"></i>\n La page n'a pas été trouvée, elle est en construction ou absente du site.\n </div>\n <div class=\"contact\">\n Pour me contacter, veuillez écrire à l'adresse mail suivante :\n <a href=\"mailto:vagabond.git@gmail.com\" dsvLinkExternal>vagabond.git@gmail.com</a>\n </div>\n <dsv-button routerLink=\"/\" color=\"primary\" [prevent]=\"false\">page d'accueil</dsv-button>\n </div>\n</dsv-card>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-vagabond-lab-ng-dsv-template.mjs","sources":["../../../projects/ng-dsv/template/menu/slot/menu.slot.ts","../../../projects/ng-dsv/template/menu/container/menu.container.ts","../../../projects/ng-dsv/template/menu/container/menu.container.html","../../../projects/ng-dsv/template/footer/component/footer.component.ts","../../../projects/ng-dsv/template/footer/component/footer.component.html","../../../projects/ng-dsv/template/not-found/component/not-found.component.ts","../../../projects/ng-dsv/template/not-found/component/not-found.component.html","../../../projects/ng-dsv/template/ng-vagabond-lab-ng-dsv-template.ts"],"sourcesContent":["import { Directive, inject, input, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[menuSlot]', standalone: true })\nexport class MenuSlotDirective {\n readonly template = inject(TemplateRef);\n\n readonly menuSlot = input.required<string>();\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, contentChildren, inject, input, TemplateRef } from '@angular/core';\nimport { DsvItemComponent } from '@ng-vagabond-lab/ng-dsv/ds/item';\nimport { DsvMenuComponent, MenuService } from '@ng-vagabond-lab/ng-dsv/ds/menu';\nimport { AuthService } from '@ng-vagabond-lab/ng-dsv/module/auth';\nimport { RouterService } from '@ng-vagabond-lab/ng-dsv/router';\nimport { MenuDto } from '../dto/menu.dto';\nimport { MenuSlotDirective } from '../slot/menu.slot';\n\n@Component({\n selector: 'app-menu-container',\n imports: [DsvMenuComponent, DsvItemComponent, NgTemplateOutlet],\n templateUrl: './menu.container.html',\n styleUrls: ['./menu.container.scss'],\n})\nexport class MenuContainer {\n readonly authService = inject(AuthService);\n readonly routerService = inject(RouterService);\n readonly menuService = inject(MenuService);\n\n readonly slots = contentChildren(MenuSlotDirective);\n\n readonly menu = input<MenuDto>();\n\n getSlot(id: string): TemplateRef<any> | null {\n return this.slots()?.find((s) => s.menuSlot() === id)?.template ?? null;\n }\n\n isActive(url: string): boolean {\n return this.routerService.currentUrl().includes(url);\n }\n}\n","<dsv-menu>\n @for (item of menu()?.content; track item.url) {\n @if (!item.role || authService.hasRole(item.role)) {\n <dsv-item\n [icon]=\"item.icon\"\n [text]=\"item.text\"\n [url]=\"item.url\"\n [class.active]=\"isActive(item.url)\"\n (callback)=\"menuService.closeMenu()\"\n />\n <ng-container *ngTemplateOutlet=\"getSlot(item.id)\"></ng-container>\n }\n }\n</dsv-menu>\n","import { Component, input } from '@angular/core';\nimport { RouterExternalPipe, RouterInternalPipe } from '@ng-vagabond-lab/ng-dsv/router';\n\n@Component({\n selector: 'app-footer',\n imports: [RouterInternalPipe, RouterExternalPipe],\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n})\nexport class FooterComponent {\n readonly copyright = input<string>();\n readonly withMentions = input<boolean>(true);\n readonly withX = input<boolean>(true);\n}\n","<footer>\n <hr />\n <ng-content />\n <div class=\"footer-content\">\n <div>\n <div>\n <a href=\"/contact\" dsvLink>Contact</a>\n </div>\n <div>\n <strong>Mail :</strong>\n <a href=\"mailto:vagabond.git@gmail.com\" dsvLinkExternal>vagabond.git@gmail.com</a>\n </div>\n @if (withMentions()) {\n <div>\n <a href=\"/mentions-legales\" dsvLink>Mentions-legales</a>\n </div>\n }\n </div>\n <div>\n <div class=\"created-by\">\n <a href=\"/contact\" dsvLink\n ><img class=\"vagabond\" title=\"vagabond\" alt=\"vagabond\" src=\"images/vagabond.png\"\n /></a>\n <div>\n <a href=\"/contact\" dsvLink>Créé par Vagabond</a>\n <div class=\"flex-row gap5\">\n <a href=\"https://github.com/vagabon\" title=\"Github de Vagabond\" dsvLinkExternal>\n <img title=\"logo Github\" alt=\"logo Github\" src=\"/images/icons/github.png\" />\n </a>\n @if (withX()) {\n <a href=\"https://twitter.com/VagabondDev\" title=\"X de Vagabond\" dsvLinkExternal>\n <img title=\"logo X\" alt=\"logo X\" src=\"/images/icons/x.png\" />\n </a>\n }\n <a href=\"https://discord.gg/TUy5MtVRt7\" title=\"Discord de Vagabond\" dsvLinkExternal>\n <img title=\"logo discord\" alt=\"logo discord\" src=\"/images/icons/discord.png\"\n /></a>\n <a href=\"https://blog.vagabond.synology.me\" title=\"Blog de Vagabond\" dsvLinkExternal>\n <img\n title=\"logo blog vagabond\"\n alt=\"Me suivre sur mon blog\"\n src=\"/images/icons/blog.png\"\n /></a>\n </div>\n </div>\n </div>\n </div>\n </div>\n <p class=\"copyright\">Copyright © 2026 {{ copyright() }}</p>\n</footer>\n","import { Component } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { DsvButtonComponent } from '@ng-vagabond-lab/ng-dsv/ds/button';\nimport { DsvCardComponent } from '@ng-vagabond-lab/ng-dsv/ds/card';\nimport { RouterExternalPipe } from '@ng-vagabond-lab/ng-dsv/router';\n\n@Component({\n selector: 'app-not-found',\n imports: [DsvCardComponent, RouterExternalPipe, DsvButtonComponent, RouterLink],\n templateUrl: './not-found.component.html',\n styleUrls: ['./not-found.component.scss'],\n})\nexport class NotFoundComponent {}\n","<dsv-card>\n <div class=\"dsv-card-header\">\n <h2>Page 404</h2>\n </div>\n <div class=\"dsv-card-content\">\n <div class=\"flex error text gap10\">\n <i class=\"ri-information-line\"></i>\n La page n'a pas été trouvée, elle est en construction ou absente du site.\n </div>\n <div class=\"contact\">\n Pour me contacter, veuillez écrire à l'adresse mail suivante :\n <a href=\"mailto:vagabond.git@gmail.com\" dsvLinkExternal>vagabond.git@gmail.com</a>\n </div>\n <dsv-button routerLink=\"/\" color=\"primary\" [prevent]=\"false\">page d'accueil</dsv-button>\n </div>\n</dsv-card>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -16,8 +16,8 @@ declare class DsvFileUploadComponent {
|
|
|
16
16
|
readonly imgAlt: _angular_core.InputSignal<string>;
|
|
17
17
|
readonly dragDropEnabled: _angular_core.InputSignal<boolean>;
|
|
18
18
|
readonly filesChanged: _angular_core.OutputEmitterRef<FileList>;
|
|
19
|
+
readonly inputRef: _angular_core.Signal<ElementRef<any> | undefined>;
|
|
19
20
|
readonly file: _angular_core.WritableSignal<string | undefined>;
|
|
20
|
-
inputRef: ElementRef<HTMLInputElement>;
|
|
21
21
|
addFiles(files: FileList): void;
|
|
22
22
|
handleFileDrop(event: DragEvent): void;
|
|
23
23
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsvFileUploadComponent, never>;
|
|
@@ -12,10 +12,10 @@ declare enum TooltipPositionEnum {
|
|
|
12
12
|
declare class DsvTooltipComponent {
|
|
13
13
|
readonly text: _angular_core.InputSignal<string>;
|
|
14
14
|
readonly position: _angular_core.InputSignal<TooltipPosition>;
|
|
15
|
+
readonly tooltipBox: _angular_core.Signal<ElementRef<any> | undefined>;
|
|
15
16
|
readonly visible: _angular_core.WritableSignal<boolean>;
|
|
16
17
|
readonly opacity: _angular_core.WritableSignal<number>;
|
|
17
18
|
readonly positionClass: _angular_core.WritableSignal<TooltipPosition>;
|
|
18
|
-
readonly tooltipBox: ElementRef<HTMLElement>;
|
|
19
19
|
onResize(): void;
|
|
20
20
|
onMouseEnter(): void;
|
|
21
21
|
onMouseLeave(): void;
|
|
@@ -15,11 +15,10 @@ interface MenuDto {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
declare class MenuSlotDirective {
|
|
18
|
-
|
|
19
|
-
menuSlot: string
|
|
20
|
-
constructor(tpl: TemplateRef<any>);
|
|
18
|
+
readonly template: TemplateRef<any>;
|
|
19
|
+
readonly menuSlot: i0.InputSignal<string>;
|
|
21
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<MenuSlotDirective, never>;
|
|
22
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<MenuSlotDirective, "[menuSlot]", never, { "menuSlot": { "alias": "menuSlot"; "required":
|
|
21
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<MenuSlotDirective, "[menuSlot]", never, { "menuSlot": { "alias": "menuSlot"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
23
22
|
}
|
|
24
23
|
|
|
25
24
|
declare class MenuContainer {
|