@igo2/common 20.1.0-next.2 → 20.1.0-next.21
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/badge/index.d.ts +1 -1
- package/drag-drop/index.d.ts +48 -35
- package/entity/index.d.ts +90 -24
- package/fesm2022/igo2-common-action.mjs +26 -34
- package/fesm2022/igo2-common-action.mjs.map +1 -1
- package/fesm2022/igo2-common-backdrop.mjs +7 -7
- package/fesm2022/igo2-common-backdrop.mjs.map +1 -1
- package/fesm2022/igo2-common-badge.mjs +7 -7
- package/fesm2022/igo2-common-badge.mjs.map +1 -1
- package/fesm2022/igo2-common-clickout.mjs +7 -7
- package/fesm2022/igo2-common-clickout.mjs.map +1 -1
- package/fesm2022/igo2-common-clone.mjs +7 -7
- package/fesm2022/igo2-common-clone.mjs.map +1 -1
- package/fesm2022/igo2-common-collapsible.mjs +10 -10
- package/fesm2022/igo2-common-collapsible.mjs.map +1 -1
- package/fesm2022/igo2-common-color.mjs +7 -7
- package/fesm2022/igo2-common-color.mjs.map +1 -1
- package/fesm2022/igo2-common-confirm-dialog.mjs +10 -10
- package/fesm2022/igo2-common-confirm-dialog.mjs.map +1 -1
- package/fesm2022/igo2-common-context-menu.mjs +10 -10
- package/fesm2022/igo2-common-context-menu.mjs.map +1 -1
- package/fesm2022/igo2-common-custom-html.mjs +10 -10
- package/fesm2022/igo2-common-custom-html.mjs.map +1 -1
- package/fesm2022/igo2-common-datepicker.mjs +3 -3
- package/fesm2022/igo2-common-datepicker.mjs.map +1 -1
- package/fesm2022/igo2-common-dom.mjs +7 -7
- package/fesm2022/igo2-common-dom.mjs.map +1 -1
- package/fesm2022/igo2-common-drag-drop.mjs +242 -126
- package/fesm2022/igo2-common-drag-drop.mjs.map +1 -1
- package/fesm2022/igo2-common-dynamic-component.mjs +14 -14
- package/fesm2022/igo2-common-dynamic-component.mjs.map +1 -1
- package/fesm2022/igo2-common-entity.mjs +159 -43
- package/fesm2022/igo2-common-entity.mjs.map +1 -1
- package/fesm2022/igo2-common-flexible.mjs +7 -7
- package/fesm2022/igo2-common-flexible.mjs.map +1 -1
- package/fesm2022/igo2-common-form.mjs +50 -50
- package/fesm2022/igo2-common-form.mjs.map +1 -1
- package/fesm2022/igo2-common-home-button.mjs +7 -7
- package/fesm2022/igo2-common-home-button.mjs.map +1 -1
- package/fesm2022/igo2-common-icon.mjs +7 -19
- package/fesm2022/igo2-common-icon.mjs.map +1 -1
- package/fesm2022/igo2-common-image.mjs +11 -11
- package/fesm2022/igo2-common-image.mjs.map +1 -1
- package/fesm2022/igo2-common-interactive-tour.mjs +13 -13
- package/fesm2022/igo2-common-interactive-tour.mjs.map +1 -1
- package/fesm2022/igo2-common-json-dialog.mjs +10 -10
- package/fesm2022/igo2-common-json-dialog.mjs.map +1 -1
- package/fesm2022/igo2-common-keyvalue.mjs +7 -7
- package/fesm2022/igo2-common-keyvalue.mjs.map +1 -1
- package/fesm2022/igo2-common-list.mjs +11 -11
- package/fesm2022/igo2-common-list.mjs.map +1 -1
- package/fesm2022/igo2-common-panel.mjs +8 -8
- package/fesm2022/igo2-common-panel.mjs.map +1 -1
- package/fesm2022/igo2-common-resizable-bar.mjs +6 -6
- package/fesm2022/igo2-common-resizable-bar.mjs.map +1 -1
- package/fesm2022/igo2-common-select-value-dialog.mjs +10 -10
- package/fesm2022/igo2-common-select-value-dialog.mjs.map +1 -1
- package/fesm2022/igo2-common-sidenav.mjs +7 -7
- package/fesm2022/igo2-common-sidenav.mjs.map +1 -1
- package/fesm2022/igo2-common-spinner.mjs +10 -10
- package/fesm2022/igo2-common-spinner.mjs.map +1 -1
- package/fesm2022/igo2-common-stop-propagation.mjs +10 -10
- package/fesm2022/igo2-common-stop-propagation.mjs.map +1 -1
- package/fesm2022/igo2-common-table.mjs +7 -7
- package/fesm2022/igo2-common-table.mjs.map +1 -1
- package/fesm2022/igo2-common-timepicker.mjs +3 -3
- package/fesm2022/igo2-common-timepicker.mjs.map +1 -1
- package/fesm2022/igo2-common-tool.mjs +15 -15
- package/fesm2022/igo2-common-tool.mjs.map +1 -1
- package/fesm2022/igo2-common-widget.mjs +14 -14
- package/fesm2022/igo2-common-widget.mjs.map +1 -1
- package/fesm2022/igo2-common-workspace.mjs +18 -18
- package/fesm2022/igo2-common-workspace.mjs.map +1 -1
- package/icon/index.d.ts +1 -3
- package/package.json +5 -4
- package/src/style/partial/common.variables.scss +0 -1
|
@@ -12,10 +12,10 @@ class ConfirmDialogComponent {
|
|
|
12
12
|
titleKey = 'igo.common.confirmDialog.title';
|
|
13
13
|
proccessKey = 'igo.common.confirmDialog.confirmBtn';
|
|
14
14
|
cancelKey = 'igo.common.confirmDialog.cancelBtn';
|
|
15
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
16
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ConfirmDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: ConfirmDialogComponent, isStandalone: true, selector: "igo-confirm-dialog", ngImport: i0, template: "<h2 mat-dialog-title>\n {{ titleKey | translate }}\n</h2>\n<div mat-dialog-content>\n {{ confirmMessage | translate }}\n</div>\n<div mat-dialog-actions>\n <button matButton=\"elevated\" color=\"primary\" (click)=\"dialogRef.close(true)\">\n {{ proccessKey | translate }}\n </button>\n <button matButton=\"filled\" (click)=\"dialogRef.close(false)\">\n {{ cancelKey | translate }}\n </button>\n</div>\n", styles: ["h2{margin:5px 0 10px}div[mat-dialog-content]{max-width:200px}div[mat-dialog-actions]{margin:10px 0 0}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
17
17
|
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
|
|
19
19
|
type: Component,
|
|
20
20
|
args: [{ selector: 'igo-confirm-dialog', imports: [
|
|
21
21
|
MatDialogTitle,
|
|
@@ -45,10 +45,10 @@ class ConfirmDialogService {
|
|
|
45
45
|
}
|
|
46
46
|
return dialogRef.afterClosed();
|
|
47
47
|
}
|
|
48
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
49
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
48
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ConfirmDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
49
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ConfirmDialogService, providedIn: 'root' });
|
|
50
50
|
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ConfirmDialogService, decorators: [{
|
|
52
52
|
type: Injectable,
|
|
53
53
|
args: [{ providedIn: 'root' }]
|
|
54
54
|
}] });
|
|
@@ -63,11 +63,11 @@ class IgoConfirmDialogModule {
|
|
|
63
63
|
providers: []
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
67
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
68
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
66
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IgoConfirmDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
67
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: IgoConfirmDialogModule, imports: [ConfirmDialogComponent], exports: [ConfirmDialogComponent] });
|
|
68
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IgoConfirmDialogModule, providers: [ConfirmDialogService], imports: [ConfirmDialogComponent] });
|
|
69
69
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IgoConfirmDialogModule, decorators: [{
|
|
71
71
|
type: NgModule,
|
|
72
72
|
args: [{
|
|
73
73
|
imports: [ConfirmDialogComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-common-confirm-dialog.mjs","sources":["../../../packages/common/confirm-dialog/src/confirm-dialog.component.ts","../../../packages/common/confirm-dialog/src/confirm-dialog.component.html","../../../packages/common/confirm-dialog/src/confirm-dialog.service.ts","../../../packages/common/confirm-dialog/src/confirm-dialog.module.ts","../../../packages/common/confirm-dialog/src/igo2-common-confirm-dialog.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MatDialogActions,\n MatDialogContent,\n MatDialogRef,\n MatDialogTitle\n} from '@angular/material/dialog';\n\nimport { IgoLanguageModule } from '@igo2/core/language';\n\n@Component({\n selector: 'igo-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n imports: [\n MatDialogTitle,\n MatDialogContent,\n MatDialogActions,\n MatButtonModule,\n IgoLanguageModule\n ]\n})\nexport class ConfirmDialogComponent {\n dialogRef = inject<MatDialogRef<ConfirmDialogComponent>>(MatDialogRef);\n\n public confirmMessage: string;\n public titleKey = 'igo.common.confirmDialog.title';\n public proccessKey = 'igo.common.confirmDialog.confirmBtn';\n public cancelKey = 'igo.common.confirmDialog.cancelBtn';\n}\n","<h2 mat-dialog-title>\n {{ titleKey | translate }}\n</h2>\n<div mat-dialog-content>\n {{ confirmMessage | translate }}\n</div>\n<div mat-dialog-actions>\n <button matButton=\"elevated\" color=\"primary\" (click)=\"dialogRef.close(true)\">\n {{ proccessKey | translate }}\n </button>\n <button matButton=\"filled\" (click)=\"dialogRef.close(false)\">\n {{ cancelKey | translate }}\n </button>\n</div>\n","import { Injectable, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Observable } from 'rxjs';\n\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\nimport { ConfirmDialogOptions } from './confirm-dialog.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfirmDialogService {\n private dialog = inject(MatDialog);\n\n public open(\n message: string,\n options?: ConfirmDialogOptions\n ): Observable<boolean> {\n const _options: ConfirmDialogOptions = {\n title: 'igo.common.confirmDialog.title',\n modeYesNo: false,\n ...options\n };\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n disableClose: false\n });\n dialogRef.componentInstance.confirmMessage = message;\n dialogRef.componentInstance.titleKey = _options.title;\n if (_options.modeYesNo) {\n dialogRef.componentInstance.proccessKey = 'igo.common.confirmDialog.yes';\n dialogRef.componentInstance.cancelKey = 'igo.common.confirmDialog.no';\n }\n return dialogRef.afterClosed();\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\nimport { ConfirmDialogService } from './confirm-dialog.service';\n\n@NgModule({\n imports: [ConfirmDialogComponent],\n exports: [ConfirmDialogComponent],\n providers: [ConfirmDialogService]\n})\nexport class IgoConfirmDialogModule {\n /**\n * @deprecated this has no effect\n */\n static forRoot(): ModuleWithProviders<IgoConfirmDialogModule> {\n return {\n ngModule: IgoConfirmDialogModule,\n providers: []\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;MAuBa,sBAAsB,CAAA;AACjC,IAAA,SAAS,GAAG,MAAM,CAAuC,YAAY,CAAC;AAE/D,IAAA,cAAc;IACd,QAAQ,GAAG,gCAAgC;IAC3C,WAAW,GAAG,qCAAqC;IACnD,SAAS,GAAG,oCAAoC;
|
|
1
|
+
{"version":3,"file":"igo2-common-confirm-dialog.mjs","sources":["../../../packages/common/confirm-dialog/src/confirm-dialog.component.ts","../../../packages/common/confirm-dialog/src/confirm-dialog.component.html","../../../packages/common/confirm-dialog/src/confirm-dialog.service.ts","../../../packages/common/confirm-dialog/src/confirm-dialog.module.ts","../../../packages/common/confirm-dialog/src/igo2-common-confirm-dialog.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MatDialogActions,\n MatDialogContent,\n MatDialogRef,\n MatDialogTitle\n} from '@angular/material/dialog';\n\nimport { IgoLanguageModule } from '@igo2/core/language';\n\n@Component({\n selector: 'igo-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n imports: [\n MatDialogTitle,\n MatDialogContent,\n MatDialogActions,\n MatButtonModule,\n IgoLanguageModule\n ]\n})\nexport class ConfirmDialogComponent {\n dialogRef = inject<MatDialogRef<ConfirmDialogComponent>>(MatDialogRef);\n\n public confirmMessage: string;\n public titleKey = 'igo.common.confirmDialog.title';\n public proccessKey = 'igo.common.confirmDialog.confirmBtn';\n public cancelKey = 'igo.common.confirmDialog.cancelBtn';\n}\n","<h2 mat-dialog-title>\n {{ titleKey | translate }}\n</h2>\n<div mat-dialog-content>\n {{ confirmMessage | translate }}\n</div>\n<div mat-dialog-actions>\n <button matButton=\"elevated\" color=\"primary\" (click)=\"dialogRef.close(true)\">\n {{ proccessKey | translate }}\n </button>\n <button matButton=\"filled\" (click)=\"dialogRef.close(false)\">\n {{ cancelKey | translate }}\n </button>\n</div>\n","import { Injectable, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Observable } from 'rxjs';\n\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\nimport { ConfirmDialogOptions } from './confirm-dialog.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfirmDialogService {\n private dialog = inject(MatDialog);\n\n public open(\n message: string,\n options?: ConfirmDialogOptions\n ): Observable<boolean> {\n const _options: ConfirmDialogOptions = {\n title: 'igo.common.confirmDialog.title',\n modeYesNo: false,\n ...options\n };\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n disableClose: false\n });\n dialogRef.componentInstance.confirmMessage = message;\n dialogRef.componentInstance.titleKey = _options.title;\n if (_options.modeYesNo) {\n dialogRef.componentInstance.proccessKey = 'igo.common.confirmDialog.yes';\n dialogRef.componentInstance.cancelKey = 'igo.common.confirmDialog.no';\n }\n return dialogRef.afterClosed();\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\nimport { ConfirmDialogService } from './confirm-dialog.service';\n\n@NgModule({\n imports: [ConfirmDialogComponent],\n exports: [ConfirmDialogComponent],\n providers: [ConfirmDialogService]\n})\nexport class IgoConfirmDialogModule {\n /**\n * @deprecated this has no effect\n */\n static forRoot(): ModuleWithProviders<IgoConfirmDialogModule> {\n return {\n ngModule: IgoConfirmDialogModule,\n providers: []\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -82,10 +82,10 @@ class ContextMenuDirective {
|
|
|
82
82
|
this.sub.unsubscribe();
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
86
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
85
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ContextMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
86
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.18", type: ContextMenuDirective, isStandalone: true, selector: "[igoContextMenu]", inputs: { menuContext: { classPropertyName: "menuContext", publicName: "igoContextMenu", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuPosition: "menuPosition" }, host: { listeners: { "longpress": "onContextMenu($event)", "contextmenu": "onContextMenu($event)" } }, ngImport: i0 });
|
|
87
87
|
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ContextMenuDirective, decorators: [{
|
|
89
89
|
type: Directive,
|
|
90
90
|
args: [{
|
|
91
91
|
selector: '[igoContextMenu]',
|
|
@@ -125,10 +125,10 @@ class LongPressDirective {
|
|
|
125
125
|
touchEnd() {
|
|
126
126
|
clearTimeout(this.touchTimeout);
|
|
127
127
|
}
|
|
128
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
129
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
128
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: LongPressDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
129
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.18", type: LongPressDirective, isStandalone: true, selector: "[igoLongPress]", inputs: { touchDuration: { classPropertyName: "touchDuration", publicName: "touchDuration", isSignal: true, isRequired: false, transformFunction: null }, onlyIOS: { classPropertyName: "onlyIOS", publicName: "onlyIOS", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { longpress: "longpress" }, host: { listeners: { "touchstart": "touchstart($event)", "touchmove": "touchend()", "touchcancel": "touchend()", "touchend": "touchend()" } }, ngImport: i0 });
|
|
130
130
|
}
|
|
131
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: LongPressDirective, decorators: [{
|
|
132
132
|
type: Directive,
|
|
133
133
|
args: [{
|
|
134
134
|
selector: '[igoLongPress]',
|
|
@@ -158,11 +158,11 @@ class IgoContextMenuModule {
|
|
|
158
158
|
providers: []
|
|
159
159
|
};
|
|
160
160
|
}
|
|
161
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
162
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
163
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
161
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IgoContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
162
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: IgoContextMenuModule, imports: [ContextMenuDirective, LongPressDirective], exports: [ContextMenuDirective, LongPressDirective] });
|
|
163
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IgoContextMenuModule });
|
|
164
164
|
}
|
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
165
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IgoContextMenuModule, decorators: [{
|
|
166
166
|
type: NgModule,
|
|
167
167
|
args: [{
|
|
168
168
|
imports: [ContextMenuDirective, LongPressDirective],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-common-context-menu.mjs","sources":["../../../packages/common/context-menu/src/context-menu.directive.ts","../../../packages/common/context-menu/src/long-press.directive.ts","../../../packages/common/context-menu/src/context-menu.module.ts","../../../packages/common/context-menu/src/public_api.ts","../../../packages/common/context-menu/src/igo2-common-context-menu.ts"],"sourcesContent":["import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Directive,\n ElementRef,\n HostListener,\n ViewContainerRef,\n inject,\n input,\n output\n} from '@angular/core';\nimport type { TemplateRef } from '@angular/core';\n\nimport { Subscription, fromEvent } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\n\n@Directive({\n selector: '[igoContextMenu]',\n standalone: true\n})\nexport class ContextMenuDirective {\n overlay = inject(Overlay);\n viewContainerRef = inject(ViewContainerRef);\n private elementRef = inject(ElementRef);\n\n private overlayRef: OverlayRef | null;\n private sub: Subscription;\n\n readonly menuContext = input<TemplateRef<any>>(undefined, {\n alias: 'igoContextMenu'\n });\n readonly menuPosition = output<{\n x: number;\n y: number;\n }>();\n\n @HostListener('longpress', ['$event'])\n @HostListener('contextmenu', ['$event'])\n public onContextMenu(e: MouseEvent | TouchEvent): void {\n let x;\n let y;\n if (e instanceof MouseEvent) {\n x = e.x;\n y = e.y;\n } else if (e instanceof TouchEvent) {\n x = e.touches[0].pageX;\n y = e.touches[0].pageY;\n }\n if (!x || !y) {\n return;\n }\n\n this.close();\n e.preventDefault();\n this.menuPosition.emit({ x, y });\n this.overlayRef = null;\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo({ x, y })\n .withPositions([\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n }\n ]);\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.close()\n });\n this.overlayRef.attach(\n new TemplatePortal(this.menuContext(), this.viewContainerRef, {\n $implicit: undefined\n })\n );\n\n this.sub = fromEvent<MouseEvent>(document, 'click')\n .pipe(\n filter((event) => {\n const clickTarget = event.target as HTMLElement;\n this.close();\n return (\n !!this.overlayRef &&\n !this.overlayRef.overlayElement.contains(clickTarget)\n );\n }),\n take(1)\n )\n .subscribe(() => this.close());\n\n this.sub = fromEvent<MouseEvent>(document, 'contextmenu')\n .pipe(\n filter((event) => {\n const clickTarget = event.target as HTMLElement;\n if (\n clickTarget &&\n !this.elementRef.nativeElement.contains(clickTarget) &&\n !this.overlayRef.overlayElement.contains(clickTarget)\n ) {\n return true;\n } else {\n event.preventDefault();\n }\n }),\n take(1)\n )\n .subscribe(() => this.close());\n }\n\n close() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n if (this.sub) {\n this.sub.unsubscribe();\n }\n }\n}\n","import { Directive, HostListener, input, output } from '@angular/core';\n\n/**\n * IgoLongPress trigger longpress event after a define duration.\n * This directive exist to patch the unavailable contextmenu event on iOS.\n * @param touchDuration touch duration in ms, default value is 400ms\n * @param iOSOnly define if longpress is triggered only for iOS, default value = true\n */\n@Directive({\n selector: '[igoLongPress]',\n standalone: true\n})\nexport class LongPressDirective {\n private touchTimeout: any;\n readonly touchDuration = input(400);\n readonly onlyIOS = input(true);\n readonly longpress = output<TouchEvent>();\n\n @HostListener('touchstart', ['$event'])\n public touchstart(e: TouchEvent) {\n if (e.touches.length > 1) {\n this.touchEnd();\n return;\n }\n this.touchTimeout = setTimeout(() => {\n this.longpress.emit(e);\n }, this.touchDuration());\n }\n @HostListener('touchmove')\n @HostListener('touchcancel')\n @HostListener('touchend')\n public touchend() {\n this.touchEnd();\n }\n\n private touchEnd() {\n clearTimeout(this.touchTimeout);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ContextMenuDirective } from './context-menu.directive';\nimport { LongPressDirective } from './long-press.directive';\n\n/**\n * @deprecated import the components/directives directly or CONTEXT_MENU_DIRECTIVES for the set\n */\n@NgModule({\n imports: [ContextMenuDirective, LongPressDirective],\n exports: [ContextMenuDirective, LongPressDirective]\n})\nexport class IgoContextMenuModule {\n static forRoot(): ModuleWithProviders<IgoContextMenuModule> {\n return {\n ngModule: IgoContextMenuModule,\n providers: []\n };\n }\n}\n","import { ContextMenuDirective } from './context-menu.directive';\nimport { LongPressDirective } from './long-press.directive';\n\nexport * from './context-menu.module';\nexport * from './context-menu.directive';\nexport * from './long-press.directive';\n\nexport const CONTEXT_MENU_DIRECTIVES = [\n ContextMenuDirective,\n LongPressDirective\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"igo2-common-context-menu.mjs","sources":["../../../packages/common/context-menu/src/context-menu.directive.ts","../../../packages/common/context-menu/src/long-press.directive.ts","../../../packages/common/context-menu/src/context-menu.module.ts","../../../packages/common/context-menu/src/public_api.ts","../../../packages/common/context-menu/src/igo2-common-context-menu.ts"],"sourcesContent":["import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Directive,\n ElementRef,\n HostListener,\n ViewContainerRef,\n inject,\n input,\n output\n} from '@angular/core';\nimport type { TemplateRef } from '@angular/core';\n\nimport { Subscription, fromEvent } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\n\n@Directive({\n selector: '[igoContextMenu]',\n standalone: true\n})\nexport class ContextMenuDirective {\n overlay = inject(Overlay);\n viewContainerRef = inject(ViewContainerRef);\n private elementRef = inject(ElementRef);\n\n private overlayRef: OverlayRef | null;\n private sub: Subscription;\n\n readonly menuContext = input<TemplateRef<any>>(undefined, {\n alias: 'igoContextMenu'\n });\n readonly menuPosition = output<{\n x: number;\n y: number;\n }>();\n\n @HostListener('longpress', ['$event'])\n @HostListener('contextmenu', ['$event'])\n public onContextMenu(e: MouseEvent | TouchEvent): void {\n let x;\n let y;\n if (e instanceof MouseEvent) {\n x = e.x;\n y = e.y;\n } else if (e instanceof TouchEvent) {\n x = e.touches[0].pageX;\n y = e.touches[0].pageY;\n }\n if (!x || !y) {\n return;\n }\n\n this.close();\n e.preventDefault();\n this.menuPosition.emit({ x, y });\n this.overlayRef = null;\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo({ x, y })\n .withPositions([\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n }\n ]);\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.close()\n });\n this.overlayRef.attach(\n new TemplatePortal(this.menuContext(), this.viewContainerRef, {\n $implicit: undefined\n })\n );\n\n this.sub = fromEvent<MouseEvent>(document, 'click')\n .pipe(\n filter((event) => {\n const clickTarget = event.target as HTMLElement;\n this.close();\n return (\n !!this.overlayRef &&\n !this.overlayRef.overlayElement.contains(clickTarget)\n );\n }),\n take(1)\n )\n .subscribe(() => this.close());\n\n this.sub = fromEvent<MouseEvent>(document, 'contextmenu')\n .pipe(\n filter((event) => {\n const clickTarget = event.target as HTMLElement;\n if (\n clickTarget &&\n !this.elementRef.nativeElement.contains(clickTarget) &&\n !this.overlayRef.overlayElement.contains(clickTarget)\n ) {\n return true;\n } else {\n event.preventDefault();\n }\n }),\n take(1)\n )\n .subscribe(() => this.close());\n }\n\n close() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n if (this.sub) {\n this.sub.unsubscribe();\n }\n }\n}\n","import { Directive, HostListener, input, output } from '@angular/core';\n\n/**\n * IgoLongPress trigger longpress event after a define duration.\n * This directive exist to patch the unavailable contextmenu event on iOS.\n * @param touchDuration touch duration in ms, default value is 400ms\n * @param iOSOnly define if longpress is triggered only for iOS, default value = true\n */\n@Directive({\n selector: '[igoLongPress]',\n standalone: true\n})\nexport class LongPressDirective {\n private touchTimeout: any;\n readonly touchDuration = input(400);\n readonly onlyIOS = input(true);\n readonly longpress = output<TouchEvent>();\n\n @HostListener('touchstart', ['$event'])\n public touchstart(e: TouchEvent) {\n if (e.touches.length > 1) {\n this.touchEnd();\n return;\n }\n this.touchTimeout = setTimeout(() => {\n this.longpress.emit(e);\n }, this.touchDuration());\n }\n @HostListener('touchmove')\n @HostListener('touchcancel')\n @HostListener('touchend')\n public touchend() {\n this.touchEnd();\n }\n\n private touchEnd() {\n clearTimeout(this.touchTimeout);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ContextMenuDirective } from './context-menu.directive';\nimport { LongPressDirective } from './long-press.directive';\n\n/**\n * @deprecated import the components/directives directly or CONTEXT_MENU_DIRECTIVES for the set\n */\n@NgModule({\n imports: [ContextMenuDirective, LongPressDirective],\n exports: [ContextMenuDirective, LongPressDirective]\n})\nexport class IgoContextMenuModule {\n static forRoot(): ModuleWithProviders<IgoContextMenuModule> {\n return {\n ngModule: IgoContextMenuModule,\n providers: []\n };\n }\n}\n","import { ContextMenuDirective } from './context-menu.directive';\nimport { LongPressDirective } from './long-press.directive';\n\nexport * from './context-menu.module';\nexport * from './context-menu.directive';\nexport * from './long-press.directive';\n\nexport const CONTEXT_MENU_DIRECTIVES = [\n ContextMenuDirective,\n LongPressDirective\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,10 @@ class SanitizeHtmlPipe {
|
|
|
7
7
|
transform(v) {
|
|
8
8
|
return this._sanitizer.bypassSecurityTrustHtml(v);
|
|
9
9
|
}
|
|
10
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
11
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.
|
|
10
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SanitizeHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
11
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: SanitizeHtmlPipe, isStandalone: true, name: "sanitizeHtml" });
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SanitizeHtmlPipe, decorators: [{
|
|
14
14
|
type: Pipe,
|
|
15
15
|
args: [{
|
|
16
16
|
name: 'sanitizeHtml',
|
|
@@ -26,10 +26,10 @@ class CustomHtmlComponent {
|
|
|
26
26
|
this._html = value;
|
|
27
27
|
}
|
|
28
28
|
_html = '';
|
|
29
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
30
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
29
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CustomHtmlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: CustomHtmlComponent, isStandalone: true, selector: "igo-custom-html", inputs: { html: "html" }, ngImport: i0, template: "<div class=\"custom-html\" [innerHTML]=\"html | sanitizeHtml\"></div>\n", styles: [":host .custom-html{padding:16px}\n"], dependencies: [{ kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] });
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CustomHtmlComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
34
|
args: [{ selector: 'igo-custom-html', imports: [SanitizeHtmlPipe], template: "<div class=\"custom-html\" [innerHTML]=\"html | sanitizeHtml\"></div>\n", styles: [":host .custom-html{padding:16px}\n"] }]
|
|
35
35
|
}], propDecorators: { html: [{
|
|
@@ -45,11 +45,11 @@ class IgoCustomHtmlModule {
|
|
|
45
45
|
ngModule: IgoCustomHtmlModule
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
49
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
50
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
48
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IgoCustomHtmlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
49
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: IgoCustomHtmlModule, imports: [SanitizeHtmlPipe, CustomHtmlComponent], exports: [SanitizeHtmlPipe, CustomHtmlComponent] });
|
|
50
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IgoCustomHtmlModule });
|
|
51
51
|
}
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IgoCustomHtmlModule, decorators: [{
|
|
53
53
|
type: NgModule,
|
|
54
54
|
args: [{
|
|
55
55
|
imports: [SanitizeHtmlPipe, CustomHtmlComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-common-custom-html.mjs","sources":["../../../packages/common/custom-html/src/custom-html.pipe.ts","../../../packages/common/custom-html/src/custom-html.component.ts","../../../packages/common/custom-html/src/custom-html.component.html","../../../packages/common/custom-html/src/custom-html.module.ts","../../../packages/common/custom-html/src/public_api.ts","../../../packages/common/custom-html/src/igo2-common-custom-html.ts"],"sourcesContent":["import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'sanitizeHtml',\n standalone: true\n})\nexport class SanitizeHtmlPipe implements PipeTransform {\n private _sanitizer = inject(DomSanitizer);\n\n transform(v: string): SafeHtml {\n return this._sanitizer.bypassSecurityTrustHtml(v);\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { SanitizeHtmlPipe } from './custom-html.pipe';\n\n@Component({\n selector: 'igo-custom-html',\n templateUrl: './custom-html.component.html',\n styleUrls: ['./custom-html.component.scss'],\n imports: [SanitizeHtmlPipe]\n})\nexport class CustomHtmlComponent {\n @Input()\n get html(): string {\n return this._html;\n }\n set html(value: string) {\n this._html = value;\n }\n private _html = '';\n}\n","<div class=\"custom-html\" [innerHTML]=\"html | sanitizeHtml\"></div>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { CustomHtmlComponent } from './custom-html.component';\nimport { SanitizeHtmlPipe } from './custom-html.pipe';\n\n/**\n * @deprecated import the components/directives directly or CUSTOM_HTML_DIRECTIVES for the set\n */\n@NgModule({\n imports: [SanitizeHtmlPipe, CustomHtmlComponent],\n exports: [SanitizeHtmlPipe, CustomHtmlComponent]\n})\nexport class IgoCustomHtmlModule {\n static forRoot(): ModuleWithProviders<IgoCustomHtmlModule> {\n return {\n ngModule: IgoCustomHtmlModule\n };\n }\n}\n","import { CustomHtmlComponent } from './custom-html.component';\nimport { SanitizeHtmlPipe } from './custom-html.pipe';\n\nexport * from './custom-html.module';\nexport * from './custom-html.component';\nexport * from './custom-html.pipe';\n\nexport const CUSTOM_HTML_DIRECTIVES = [\n SanitizeHtmlPipe,\n CustomHtmlComponent\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;MAOa,gBAAgB,CAAA;AACnB,IAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;AAEzC,IAAA,SAAS,CAAC,CAAS,EAAA;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACnD;
|
|
1
|
+
{"version":3,"file":"igo2-common-custom-html.mjs","sources":["../../../packages/common/custom-html/src/custom-html.pipe.ts","../../../packages/common/custom-html/src/custom-html.component.ts","../../../packages/common/custom-html/src/custom-html.component.html","../../../packages/common/custom-html/src/custom-html.module.ts","../../../packages/common/custom-html/src/public_api.ts","../../../packages/common/custom-html/src/igo2-common-custom-html.ts"],"sourcesContent":["import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'sanitizeHtml',\n standalone: true\n})\nexport class SanitizeHtmlPipe implements PipeTransform {\n private _sanitizer = inject(DomSanitizer);\n\n transform(v: string): SafeHtml {\n return this._sanitizer.bypassSecurityTrustHtml(v);\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { SanitizeHtmlPipe } from './custom-html.pipe';\n\n@Component({\n selector: 'igo-custom-html',\n templateUrl: './custom-html.component.html',\n styleUrls: ['./custom-html.component.scss'],\n imports: [SanitizeHtmlPipe]\n})\nexport class CustomHtmlComponent {\n @Input()\n get html(): string {\n return this._html;\n }\n set html(value: string) {\n this._html = value;\n }\n private _html = '';\n}\n","<div class=\"custom-html\" [innerHTML]=\"html | sanitizeHtml\"></div>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { CustomHtmlComponent } from './custom-html.component';\nimport { SanitizeHtmlPipe } from './custom-html.pipe';\n\n/**\n * @deprecated import the components/directives directly or CUSTOM_HTML_DIRECTIVES for the set\n */\n@NgModule({\n imports: [SanitizeHtmlPipe, CustomHtmlComponent],\n exports: [SanitizeHtmlPipe, CustomHtmlComponent]\n})\nexport class IgoCustomHtmlModule {\n static forRoot(): ModuleWithProviders<IgoCustomHtmlModule> {\n return {\n ngModule: IgoCustomHtmlModule\n };\n }\n}\n","import { CustomHtmlComponent } from './custom-html.component';\nimport { SanitizeHtmlPipe } from './custom-html.pipe';\n\nexport * from './custom-html.module';\nexport * from './custom-html.component';\nexport * from './custom-html.pipe';\n\nexport const CUSTOM_HTML_DIRECTIVES = [\n SanitizeHtmlPipe,\n CustomHtmlComponent\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;MAOa,gBAAgB,CAAA;AACnB,IAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;AAEzC,IAAA,SAAS,CAAC,CAAS,EAAA;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACnD;wGALW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;sGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,cAAc;AACpB,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCIY,mBAAmB,CAAA;AAC9B,IAAA,IACI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;IACnB;IACA,IAAI,IAAI,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACpB;IACQ,KAAK,GAAG,EAAE;wGARP,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVhC,yEACA,EAAA,MAAA,EAAA,CAAA,oCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDOY,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,CAAA;;4FAEf,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACE,iBAAiB,EAAA,OAAA,EAGlB,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,yEAAA,EAAA,MAAA,EAAA,CAAA,oCAAA,CAAA,EAAA;;sBAG1B;;;AENH;;AAEG;MAKU,mBAAmB,CAAA;AAC9B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE;SACX;IACH;wGALW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHpB,gBAAgB,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CACrC,gBAAgB,EAAE,mBAAmB,CAAA,EAAA,CAAA;yGAEpC,mBAAmB,EAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;AAChD,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,mBAAmB;AAChD,iBAAA;;;ACJM,MAAM,sBAAsB,GAAG;IACpC,gBAAgB;IAChB;;;ACTF;;AAEG;;;;"}
|
|
@@ -291,10 +291,10 @@ class DatepickerComponent {
|
|
|
291
291
|
});
|
|
292
292
|
return expectedOrder;
|
|
293
293
|
}
|
|
294
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
295
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
294
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
295
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: DatepickerComponent, isStandalone: true, selector: "igo-datepicker", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, calendarType: { classPropertyName: "calendarType", publicName: "calendarType", isSignal: true, isRequired: false, transformFunction: null }, startView: { classPropertyName: "startView", publicName: "startView", isSignal: true, isRequired: false, transformFunction: null }, startAt: { classPropertyName: "startAt", publicName: "startAt", isSignal: true, isRequired: false, transformFunction: null }, datepickerFilter: { classPropertyName: "datepickerFilter", publicName: "datepickerFilter", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, todayButtonLabel: { classPropertyName: "todayButtonLabel", publicName: "todayButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, clearButtonLabel: { classPropertyName: "clearButtonLabel", publicName: "clearButtonLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { startView: "startViewChange", valueChange: "valueChange" }, providers: [DatePipe, provideNativeDateAdapter()], viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true, isSignal: true }], ngImport: i0, template: "<mat-form-field subscriptSizing=\"dynamic\">\n @if (startView() === 'multi-year' && calendarType() === 'year') {\n <mat-label>\n {{ placeholder() }}\n </mat-label>\n }\n\n <!-- Text input for displaying the selected date -->\n <input\n matInput\n type=\"text\"\n name=\"dateLabel\"\n [formControl]=\"dateLabelFormControl\"\n [placeholder]=\"placeholder()\"\n (blur)=\"handleDateLabelBlur()\"\n [readonly]=\"todaySelected\"\n />\n <!-- Hidden input for the actual datepicker -->\n <input\n [matDatepicker]=\"picker\"\n hidden=\"true\"\n name=\"date\"\n [formControl]=\"dateFormControl\"\n [min]=\"resolveDate(minDate())\"\n [max]=\"resolveDate(maxDate())\"\n [matDatepickerFilter]=\"datepickerFilter()\"\n />\n\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\" [disabled]=\"disabled\" />\n <mat-datepicker\n #picker\n [startView]=\"startView()\"\n [startAt]=\"resolveDate(startAt())\"\n [panelClass]=\"panelClassName\"\n >\n @if (showActions) {\n <mat-datepicker-actions>\n <button mat-button (click)=\"clearDate()\">\n {{ clearButtonLabel() }}\n </button>\n <button mat-raised-button color=\"primary\" (click)=\"setToday()\">\n {{ todayButtonLabel() }}\n </button>\n </mat-datepicker-actions>\n }\n </mat-datepicker>\n</mat-form-field>\n", styles: [":host mat-form-field{width:150px}::ng-deep .igo-datepicker-month-year-picker .mat-calendar-period-button{pointer-events:none;cursor:default;color:#00000061}.igo-datepicker-custom-footer{display:flex;justify-content:flex-end;align-items:center;padding:0 8px 8px;gap:5px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i5.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i5.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }] });
|
|
296
296
|
}
|
|
297
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
297
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DatepickerComponent, decorators: [{
|
|
298
298
|
type: Component,
|
|
299
299
|
args: [{ selector: 'igo-datepicker', imports: [
|
|
300
300
|
MatButtonModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-common-datepicker.mjs","sources":["../../../packages/common/datepicker/src/datepicker.component.ts","../../../packages/common/datepicker/src/datepicker.component.html","../../../packages/common/datepicker/src/igo2-common-datepicker.ts"],"sourcesContent":["import { DatePipe } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n Input,\n LOCALE_ID,\n OnDestroy,\n OnInit,\n inject,\n input,\n model,\n output,\n viewChild\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { provideNativeDateAdapter } from '@angular/material/core';\nimport {\n MatCalendar,\n MatDatepicker,\n MatDatepickerModule\n} from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { TimeFrame, isTimeFrame, resolveDate } from '@igo2/utils';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'igo-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\n imports: [\n MatButtonModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n MatDatepickerModule\n ],\n providers: [DatePipe, provideNativeDateAdapter()]\n})\nexport class DatepickerComponent implements OnInit, AfterViewInit, OnDestroy {\n private datePipe = inject(DatePipe);\n private _locale = inject(LOCALE_ID);\n\n readonly picker = viewChild.required<MatDatepicker<Date>>('picker');\n\n @Input()\n set disabled(value: boolean) {\n this._disabled = value;\n this.setDisabledState();\n }\n get disabled(): boolean {\n return this._disabled;\n }\n private _disabled = false;\n\n readonly placeholder = input<string>(undefined);\n readonly minDate = input<Date | TimeFrame>(undefined);\n readonly maxDate = input<Date | TimeFrame>(undefined);\n readonly calendarType = input<'year' | 'month' | 'date' | 'datetime'>('date');\n readonly startView = model<'multi-year' | 'year' | 'month'>(undefined);\n readonly startAt = input<Date | TimeFrame>(undefined);\n readonly datepickerFilter = input<(date: Date | null) => boolean>(undefined);\n readonly value = input<Date | TimeFrame>(undefined);\n readonly todayButtonLabel = input<string>('Today');\n readonly clearButtonLabel = input<string>('Clear');\n\n readonly valueChange = output<Date | TimeFrame>();\n\n get panelClassName(): string {\n return ['year', 'month'].includes(this.calendarType())\n ? 'igo-datepicker-month-year-picker'\n : '';\n }\n\n resolveDate = resolveDate;\n dateFormControl!: FormControl<Date>;\n dateLabelFormControl!: FormControl<string>;\n showActions = false;\n todaySelected = false;\n previousTodaySelected: boolean;\n previousValue: Date | TimeFrame;\n\n private destroy$ = new Subject<void>();\n\n ngOnInit(): void {\n this.initStartView();\n this.initFormControls();\n\n this.todaySelected = isTimeFrame(this.value());\n\n this.dateFormControl.valueChanges.subscribe((value) => {\n this.picker().startAt = value;\n if (!this.todaySelected) {\n this.dateLabelFormControl.setValue(this.getFormattedLabel(value));\n }\n\n const emittedValue = this.todaySelected\n ? this.calendarType() === 'datetime'\n ? TimeFrame[0]\n : TimeFrame[1]\n : value;\n this.valueChange.emit(emittedValue);\n });\n }\n\n ngAfterViewInit(): void {\n this.attachCalendarTypeListeners();\n this.picker()\n .openedStream.pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.previousValue = this.dateFormControl.value;\n this.previousTodaySelected = this.todaySelected;\n this.todaySelected = false;\n this.registerAutoCloseEvents();\n });\n\n this.picker()\n .closedStream.pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.previousValue === this.dateFormControl.value) {\n this.todaySelected = this.previousTodaySelected;\n } else if (isTimeFrame(this.value())) {\n this.todaySelected = true;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n setToday(): void {\n const keyword =\n this.calendarType() === 'datetime' ? TimeFrame[0] : TimeFrame[1];\n const picker = this.picker();\n const date = (picker.startAt = resolveDate(keyword));\n this.dateLabelFormControl.setValue(this.getFormattedLabel(keyword));\n this.todaySelected = true;\n this.updateDateControl(date);\n\n picker.close();\n }\n\n clearDate(): void {\n this.dateFormControl.reset();\n this.dateLabelFormControl.reset();\n this.picker().close();\n }\n\n private registerAutoCloseEvents(): void {\n const resolvedMaxDate = resolveDate(this.maxDate());\n\n this.showActions =\n (!resolvedMaxDate || resolvedMaxDate >= new Date()) &&\n ['date', 'datetime'].includes(this.calendarType());\n\n if (this.showActions) {\n // Workaround, we need the next event queue to get the calendar\n setTimeout(() => {\n const calendar: MatCalendar<Date> =\n this.picker()['_componentRef'].instance._calendar;\n calendar?._userSelection.subscribe((event) => {\n this.dateFormControl.setValue(event.value);\n this.picker().close();\n });\n }, 0);\n }\n }\n\n /** Public API methods */\n reset(date: Date | TimeFrame) {\n this.todaySelected = isTimeFrame(date);\n this.dateLabelFormControl.setValue(this.getFormattedLabel(date));\n this.dateFormControl.setValue(resolveDate(date));\n }\n\n handleDateLabelBlur(): void {\n const value = this.dateLabelFormControl.value;\n const parsedDate = this.parseInput(value);\n if (!parsedDate) return;\n this.dateFormControl.setValue(parsedDate);\n }\n\n private parseInput(value: string): Date | undefined {\n if (!value) return undefined;\n switch (this.calendarType()) {\n case 'year':\n return this.parseYearInput(value);\n case 'month':\n return this.parseMonthInput(value);\n default:\n return this.parseDateInput(value);\n }\n }\n\n private parseYearInput(value: string): Date | undefined {\n // Accept \"yyyy\"\n const match = value.match(/^\\s*(\\d{4})\\s*$/);\n if (!match) return undefined;\n const year = +match[1];\n const date = new Date(year, 0, 1);\n return date.getFullYear() === year ? date : undefined;\n }\n\n private parseMonthInput(value: string): Date | undefined {\n return this.parseFromLocalizedInput(value, {\n year: 'numeric',\n month: '2-digit'\n });\n }\n\n private parseDateInput(value: string): Date | undefined {\n return this.parseFromLocalizedInput(value, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n });\n }\n\n private initStartView(): void {\n if (this.startView()) return;\n switch (this.calendarType()) {\n case 'year':\n this.startView.set('multi-year');\n break;\n case 'month':\n this.startView.set('year');\n break;\n case 'date':\n case 'datetime':\n default:\n this.startView.set('month');\n break;\n }\n }\n\n private initFormControls() {\n const date = this.value() ?? new Date();\n this.dateFormControl = new FormControl({\n value: resolveDate(date),\n disabled: this.disabled\n });\n\n this.dateLabelFormControl = new FormControl({\n value: this.getFormattedLabel(date),\n disabled: this.disabled\n });\n }\n\n private setDisabledState(): void {\n const method = this.disabled ? 'disable' : 'enable';\n this.dateFormControl?.[method]({ emitEvent: false });\n this.dateLabelFormControl?.[method]({ emitEvent: false });\n }\n\n private attachCalendarTypeListeners(): void {\n const calendarType = this.calendarType();\n if (calendarType === 'year') {\n this.picker().yearSelected.subscribe((date) => {\n this.updateDateControl(date);\n this.picker().close();\n });\n } else if (calendarType === 'month') {\n this.picker().monthSelected.subscribe((date) => {\n this.updateDateControl(date);\n this.picker().close();\n });\n }\n }\n\n private updateDateControl(date: Date) {\n this.dateFormControl.setValue(date);\n }\n\n private getFormattedLabel(date: Date | TimeFrame): string {\n if (isTimeFrame(date)) return this.todayButtonLabel();\n const calendarType = this.calendarType();\n if (calendarType === 'year') {\n return this.format(date as Date, 'yyyy');\n } else if (calendarType === 'month') {\n return this.formatYearMonth(date as Date);\n }\n return this.format(date as Date, 'shortDate');\n }\n\n private format(date: Date, formatStr: string): string {\n return (\n this.datePipe.transform(date, formatStr, undefined, this._locale) ?? ''\n );\n }\n\n private formatYearMonth(date: Date): string {\n return new Intl.DateTimeFormat(this._locale, {\n year: 'numeric',\n month: '2-digit'\n }).format(date);\n }\n\n private parseFromLocalizedInput(\n value: string,\n formatOptions: Intl.DateTimeFormatOptions\n ): Date | undefined {\n const expectedOrder = this.getExpectedDateOrder(formatOptions);\n const inputParts = value.trim().match(/\\d+/g);\n if (!inputParts || inputParts.length !== expectedOrder.length)\n return undefined;\n\n let year: number | undefined;\n let month: number | undefined;\n let day: number | undefined;\n\n expectedOrder.forEach((type, i) => {\n const num = Number(inputParts[i]);\n if (type === 'year') year = num;\n else if (type === 'month') month = num;\n else if (type === 'day') day = num;\n });\n\n // Basic range checks\n if (!year || !month || month < 1 || month > 12) return undefined;\n const date = new Date(year, month - 1, day !== undefined ? day : 1);\n const isValid =\n date.getFullYear() === year &&\n date.getMonth() === month - 1 &&\n day !== undefined\n ? date.getDate() === day\n : true;\n return isValid ? date : undefined;\n }\n\n /**\n * Returns the expected order of date parts (year, month, day) as used by\n * Intl.DateTimeFormat.formatToParts for the provided options and current locale.\n */\n private getExpectedDateOrder(\n formatOptions: Intl.DateTimeFormatOptions\n ): ('year' | 'month' | 'day')[] {\n const sampleDate = new Date(2001, 1, 3);\n const formatter = new Intl.DateTimeFormat(this._locale, formatOptions);\n const formatParts = formatter.formatToParts(sampleDate);\n // Extract expected order from locale formatting\n const expectedOrder: ('year' | 'month' | 'day')[] = [];\n formatParts.forEach((part) => {\n if (\n part.type === 'year' ||\n part.type === 'month' ||\n part.type === 'day'\n ) {\n expectedOrder.push(part.type);\n }\n });\n return expectedOrder;\n }\n}\n","<mat-form-field subscriptSizing=\"dynamic\">\n @if (startView() === 'multi-year' && calendarType() === 'year') {\n <mat-label>\n {{ placeholder() }}\n </mat-label>\n }\n\n <!-- Text input for displaying the selected date -->\n <input\n matInput\n type=\"text\"\n name=\"dateLabel\"\n [formControl]=\"dateLabelFormControl\"\n [placeholder]=\"placeholder()\"\n (blur)=\"handleDateLabelBlur()\"\n [readonly]=\"todaySelected\"\n />\n <!-- Hidden input for the actual datepicker -->\n <input\n [matDatepicker]=\"picker\"\n hidden=\"true\"\n name=\"date\"\n [formControl]=\"dateFormControl\"\n [min]=\"resolveDate(minDate())\"\n [max]=\"resolveDate(maxDate())\"\n [matDatepickerFilter]=\"datepickerFilter()\"\n />\n\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\" [disabled]=\"disabled\" />\n <mat-datepicker\n #picker\n [startView]=\"startView()\"\n [startAt]=\"resolveDate(startAt())\"\n [panelClass]=\"panelClassName\"\n >\n @if (showActions) {\n <mat-datepicker-actions>\n <button mat-button (click)=\"clearDate()\">\n {{ clearButtonLabel() }}\n </button>\n <button mat-raised-button color=\"primary\" (click)=\"setToday()\">\n {{ todayButtonLabel() }}\n </button>\n </mat-datepicker-actions>\n }\n </mat-datepicker>\n</mat-form-field>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"igo2-common-datepicker.mjs","sources":["../../../packages/common/datepicker/src/datepicker.component.ts","../../../packages/common/datepicker/src/datepicker.component.html","../../../packages/common/datepicker/src/igo2-common-datepicker.ts"],"sourcesContent":["import { DatePipe } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n Input,\n LOCALE_ID,\n OnDestroy,\n OnInit,\n inject,\n input,\n model,\n output,\n viewChild\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { provideNativeDateAdapter } from '@angular/material/core';\nimport {\n MatCalendar,\n MatDatepicker,\n MatDatepickerModule\n} from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { TimeFrame, isTimeFrame, resolveDate } from '@igo2/utils';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'igo-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\n imports: [\n MatButtonModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n MatDatepickerModule\n ],\n providers: [DatePipe, provideNativeDateAdapter()]\n})\nexport class DatepickerComponent implements OnInit, AfterViewInit, OnDestroy {\n private datePipe = inject(DatePipe);\n private _locale = inject(LOCALE_ID);\n\n readonly picker = viewChild.required<MatDatepicker<Date>>('picker');\n\n @Input()\n set disabled(value: boolean) {\n this._disabled = value;\n this.setDisabledState();\n }\n get disabled(): boolean {\n return this._disabled;\n }\n private _disabled = false;\n\n readonly placeholder = input<string>(undefined);\n readonly minDate = input<Date | TimeFrame>(undefined);\n readonly maxDate = input<Date | TimeFrame>(undefined);\n readonly calendarType = input<'year' | 'month' | 'date' | 'datetime'>('date');\n readonly startView = model<'multi-year' | 'year' | 'month'>(undefined);\n readonly startAt = input<Date | TimeFrame>(undefined);\n readonly datepickerFilter = input<(date: Date | null) => boolean>(undefined);\n readonly value = input<Date | TimeFrame>(undefined);\n readonly todayButtonLabel = input<string>('Today');\n readonly clearButtonLabel = input<string>('Clear');\n\n readonly valueChange = output<Date | TimeFrame>();\n\n get panelClassName(): string {\n return ['year', 'month'].includes(this.calendarType())\n ? 'igo-datepicker-month-year-picker'\n : '';\n }\n\n resolveDate = resolveDate;\n dateFormControl!: FormControl<Date>;\n dateLabelFormControl!: FormControl<string>;\n showActions = false;\n todaySelected = false;\n previousTodaySelected: boolean;\n previousValue: Date | TimeFrame;\n\n private destroy$ = new Subject<void>();\n\n ngOnInit(): void {\n this.initStartView();\n this.initFormControls();\n\n this.todaySelected = isTimeFrame(this.value());\n\n this.dateFormControl.valueChanges.subscribe((value) => {\n this.picker().startAt = value;\n if (!this.todaySelected) {\n this.dateLabelFormControl.setValue(this.getFormattedLabel(value));\n }\n\n const emittedValue = this.todaySelected\n ? this.calendarType() === 'datetime'\n ? TimeFrame[0]\n : TimeFrame[1]\n : value;\n this.valueChange.emit(emittedValue);\n });\n }\n\n ngAfterViewInit(): void {\n this.attachCalendarTypeListeners();\n this.picker()\n .openedStream.pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.previousValue = this.dateFormControl.value;\n this.previousTodaySelected = this.todaySelected;\n this.todaySelected = false;\n this.registerAutoCloseEvents();\n });\n\n this.picker()\n .closedStream.pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.previousValue === this.dateFormControl.value) {\n this.todaySelected = this.previousTodaySelected;\n } else if (isTimeFrame(this.value())) {\n this.todaySelected = true;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n setToday(): void {\n const keyword =\n this.calendarType() === 'datetime' ? TimeFrame[0] : TimeFrame[1];\n const picker = this.picker();\n const date = (picker.startAt = resolveDate(keyword));\n this.dateLabelFormControl.setValue(this.getFormattedLabel(keyword));\n this.todaySelected = true;\n this.updateDateControl(date);\n\n picker.close();\n }\n\n clearDate(): void {\n this.dateFormControl.reset();\n this.dateLabelFormControl.reset();\n this.picker().close();\n }\n\n private registerAutoCloseEvents(): void {\n const resolvedMaxDate = resolveDate(this.maxDate());\n\n this.showActions =\n (!resolvedMaxDate || resolvedMaxDate >= new Date()) &&\n ['date', 'datetime'].includes(this.calendarType());\n\n if (this.showActions) {\n // Workaround, we need the next event queue to get the calendar\n setTimeout(() => {\n const calendar: MatCalendar<Date> =\n this.picker()['_componentRef'].instance._calendar;\n calendar?._userSelection.subscribe((event) => {\n this.dateFormControl.setValue(event.value);\n this.picker().close();\n });\n }, 0);\n }\n }\n\n /** Public API methods */\n reset(date: Date | TimeFrame) {\n this.todaySelected = isTimeFrame(date);\n this.dateLabelFormControl.setValue(this.getFormattedLabel(date));\n this.dateFormControl.setValue(resolveDate(date));\n }\n\n handleDateLabelBlur(): void {\n const value = this.dateLabelFormControl.value;\n const parsedDate = this.parseInput(value);\n if (!parsedDate) return;\n this.dateFormControl.setValue(parsedDate);\n }\n\n private parseInput(value: string): Date | undefined {\n if (!value) return undefined;\n switch (this.calendarType()) {\n case 'year':\n return this.parseYearInput(value);\n case 'month':\n return this.parseMonthInput(value);\n default:\n return this.parseDateInput(value);\n }\n }\n\n private parseYearInput(value: string): Date | undefined {\n // Accept \"yyyy\"\n const match = value.match(/^\\s*(\\d{4})\\s*$/);\n if (!match) return undefined;\n const year = +match[1];\n const date = new Date(year, 0, 1);\n return date.getFullYear() === year ? date : undefined;\n }\n\n private parseMonthInput(value: string): Date | undefined {\n return this.parseFromLocalizedInput(value, {\n year: 'numeric',\n month: '2-digit'\n });\n }\n\n private parseDateInput(value: string): Date | undefined {\n return this.parseFromLocalizedInput(value, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n });\n }\n\n private initStartView(): void {\n if (this.startView()) return;\n switch (this.calendarType()) {\n case 'year':\n this.startView.set('multi-year');\n break;\n case 'month':\n this.startView.set('year');\n break;\n case 'date':\n case 'datetime':\n default:\n this.startView.set('month');\n break;\n }\n }\n\n private initFormControls() {\n const date = this.value() ?? new Date();\n this.dateFormControl = new FormControl({\n value: resolveDate(date),\n disabled: this.disabled\n });\n\n this.dateLabelFormControl = new FormControl({\n value: this.getFormattedLabel(date),\n disabled: this.disabled\n });\n }\n\n private setDisabledState(): void {\n const method = this.disabled ? 'disable' : 'enable';\n this.dateFormControl?.[method]({ emitEvent: false });\n this.dateLabelFormControl?.[method]({ emitEvent: false });\n }\n\n private attachCalendarTypeListeners(): void {\n const calendarType = this.calendarType();\n if (calendarType === 'year') {\n this.picker().yearSelected.subscribe((date) => {\n this.updateDateControl(date);\n this.picker().close();\n });\n } else if (calendarType === 'month') {\n this.picker().monthSelected.subscribe((date) => {\n this.updateDateControl(date);\n this.picker().close();\n });\n }\n }\n\n private updateDateControl(date: Date) {\n this.dateFormControl.setValue(date);\n }\n\n private getFormattedLabel(date: Date | TimeFrame): string {\n if (isTimeFrame(date)) return this.todayButtonLabel();\n const calendarType = this.calendarType();\n if (calendarType === 'year') {\n return this.format(date as Date, 'yyyy');\n } else if (calendarType === 'month') {\n return this.formatYearMonth(date as Date);\n }\n return this.format(date as Date, 'shortDate');\n }\n\n private format(date: Date, formatStr: string): string {\n return (\n this.datePipe.transform(date, formatStr, undefined, this._locale) ?? ''\n );\n }\n\n private formatYearMonth(date: Date): string {\n return new Intl.DateTimeFormat(this._locale, {\n year: 'numeric',\n month: '2-digit'\n }).format(date);\n }\n\n private parseFromLocalizedInput(\n value: string,\n formatOptions: Intl.DateTimeFormatOptions\n ): Date | undefined {\n const expectedOrder = this.getExpectedDateOrder(formatOptions);\n const inputParts = value.trim().match(/\\d+/g);\n if (!inputParts || inputParts.length !== expectedOrder.length)\n return undefined;\n\n let year: number | undefined;\n let month: number | undefined;\n let day: number | undefined;\n\n expectedOrder.forEach((type, i) => {\n const num = Number(inputParts[i]);\n if (type === 'year') year = num;\n else if (type === 'month') month = num;\n else if (type === 'day') day = num;\n });\n\n // Basic range checks\n if (!year || !month || month < 1 || month > 12) return undefined;\n const date = new Date(year, month - 1, day !== undefined ? day : 1);\n const isValid =\n date.getFullYear() === year &&\n date.getMonth() === month - 1 &&\n day !== undefined\n ? date.getDate() === day\n : true;\n return isValid ? date : undefined;\n }\n\n /**\n * Returns the expected order of date parts (year, month, day) as used by\n * Intl.DateTimeFormat.formatToParts for the provided options and current locale.\n */\n private getExpectedDateOrder(\n formatOptions: Intl.DateTimeFormatOptions\n ): ('year' | 'month' | 'day')[] {\n const sampleDate = new Date(2001, 1, 3);\n const formatter = new Intl.DateTimeFormat(this._locale, formatOptions);\n const formatParts = formatter.formatToParts(sampleDate);\n // Extract expected order from locale formatting\n const expectedOrder: ('year' | 'month' | 'day')[] = [];\n formatParts.forEach((part) => {\n if (\n part.type === 'year' ||\n part.type === 'month' ||\n part.type === 'day'\n ) {\n expectedOrder.push(part.type);\n }\n });\n return expectedOrder;\n }\n}\n","<mat-form-field subscriptSizing=\"dynamic\">\n @if (startView() === 'multi-year' && calendarType() === 'year') {\n <mat-label>\n {{ placeholder() }}\n </mat-label>\n }\n\n <!-- Text input for displaying the selected date -->\n <input\n matInput\n type=\"text\"\n name=\"dateLabel\"\n [formControl]=\"dateLabelFormControl\"\n [placeholder]=\"placeholder()\"\n (blur)=\"handleDateLabelBlur()\"\n [readonly]=\"todaySelected\"\n />\n <!-- Hidden input for the actual datepicker -->\n <input\n [matDatepicker]=\"picker\"\n hidden=\"true\"\n name=\"date\"\n [formControl]=\"dateFormControl\"\n [min]=\"resolveDate(minDate())\"\n [max]=\"resolveDate(maxDate())\"\n [matDatepickerFilter]=\"datepickerFilter()\"\n />\n\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\" [disabled]=\"disabled\" />\n <mat-datepicker\n #picker\n [startView]=\"startView()\"\n [startAt]=\"resolveDate(startAt())\"\n [panelClass]=\"panelClassName\"\n >\n @if (showActions) {\n <mat-datepicker-actions>\n <button mat-button (click)=\"clearDate()\">\n {{ clearButtonLabel() }}\n </button>\n <button mat-raised-button color=\"primary\" (click)=\"setToday()\">\n {{ todayButtonLabel() }}\n </button>\n </mat-datepicker-actions>\n }\n </mat-datepicker>\n</mat-form-field>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -20,10 +20,10 @@ class DOMService {
|
|
|
20
20
|
.toPromise();
|
|
21
21
|
return result;
|
|
22
22
|
}
|
|
23
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
24
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
23
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DOMService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
24
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DOMService, providedIn: 'root' });
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DOMService, decorators: [{
|
|
27
27
|
type: Injectable,
|
|
28
28
|
args: [{
|
|
29
29
|
providedIn: 'root'
|
|
@@ -43,11 +43,11 @@ class IgoDOMModule {
|
|
|
43
43
|
providers: [DOMService]
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
47
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
48
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
46
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IgoDOMModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
47
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: IgoDOMModule });
|
|
48
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IgoDOMModule, providers: [DOMService] });
|
|
49
49
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IgoDOMModule, decorators: [{
|
|
51
51
|
type: NgModule,
|
|
52
52
|
args: [{
|
|
53
53
|
providers: [DOMService]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-common-dom.mjs","sources":["../../../packages/common/dom/src/dom.service.ts","../../../packages/common/dom/src/dom.module.ts","../../../packages/common/dom/src/igo2-common-dom.ts"],"sourcesContent":["import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\nimport { throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { DOMOptions, DOMValue } from './dom.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DOMService {\n private http = inject(HttpClient);\n\n async getDomValuesFromURL(domOptions: DOMOptions): Promise<DOMValue[]> {\n const url = domOptions.url;\n let result: DOMValue[];\n\n await this.http\n .get<any>(url)\n .pipe(\n map((response) => {\n result = response;\n return response;\n }),\n catchError((err: HttpErrorResponse) => {\n return throwError(err);\n })\n )\n .toPromise();\n\n return result;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { DOMService } from './dom.service';\n\n/**\n * @deprecated it has no effect\n */\n\n@NgModule({\n providers: [DOMService]\n})\nexport class IgoDOMModule {\n /**\n * @deprecated it has no effect\n */\n static forRoot(): ModuleWithProviders<IgoDOMModule> {\n return {\n ngModule: IgoDOMModule,\n providers: [DOMService]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;MAWa,UAAU,CAAA;AACb,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;IAEjC,MAAM,mBAAmB,CAAC,UAAsB,EAAA;AAC9C,QAAA,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG;AAC1B,QAAA,IAAI,MAAkB;QAEtB,MAAM,IAAI,CAAC;aACR,GAAG,CAAM,GAAG;AACZ,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAQ,KAAI;YACf,MAAM,GAAG,QAAQ;AACjB,YAAA,OAAO,QAAQ;AACjB,QAAA,CAAC,CAAC,EACF,UAAU,CAAC,CAAC,GAAsB,KAAI;AACpC,YAAA,OAAO,UAAU,CAAC,GAAG,CAAC;AACxB,QAAA,CAAC,CAAC;AAEH,aAAA,SAAS,EAAE;AAEd,QAAA,OAAO,MAAM;IACf;
|
|
1
|
+
{"version":3,"file":"igo2-common-dom.mjs","sources":["../../../packages/common/dom/src/dom.service.ts","../../../packages/common/dom/src/dom.module.ts","../../../packages/common/dom/src/igo2-common-dom.ts"],"sourcesContent":["import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\nimport { throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { DOMOptions, DOMValue } from './dom.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DOMService {\n private http = inject(HttpClient);\n\n async getDomValuesFromURL(domOptions: DOMOptions): Promise<DOMValue[]> {\n const url = domOptions.url;\n let result: DOMValue[];\n\n await this.http\n .get<any>(url)\n .pipe(\n map((response) => {\n result = response;\n return response;\n }),\n catchError((err: HttpErrorResponse) => {\n return throwError(err);\n })\n )\n .toPromise();\n\n return result;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { DOMService } from './dom.service';\n\n/**\n * @deprecated it has no effect\n */\n\n@NgModule({\n providers: [DOMService]\n})\nexport class IgoDOMModule {\n /**\n * @deprecated it has no effect\n */\n static forRoot(): ModuleWithProviders<IgoDOMModule> {\n return {\n ngModule: IgoDOMModule,\n providers: [DOMService]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;MAWa,UAAU,CAAA;AACb,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;IAEjC,MAAM,mBAAmB,CAAC,UAAsB,EAAA;AAC9C,QAAA,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG;AAC1B,QAAA,IAAI,MAAkB;QAEtB,MAAM,IAAI,CAAC;aACR,GAAG,CAAM,GAAG;AACZ,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAQ,KAAI;YACf,MAAM,GAAG,QAAQ;AACjB,YAAA,OAAO,QAAQ;AACjB,QAAA,CAAC,CAAC,EACF,UAAU,CAAC,CAAC,GAAsB,KAAI;AACpC,YAAA,OAAO,UAAU,CAAC,GAAG,CAAC;AACxB,QAAA,CAAC,CAAC;AAEH,aAAA,SAAS,EAAE;AAEd,QAAA,OAAO,MAAM;IACf;wGArBW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAV,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA;;4FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACND;;AAEG;MAKU,YAAY,CAAA;AACvB;;AAEG;AACH,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,CAAC,UAAU;SACvB;IACH;wGATW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAZ,YAAY,EAAA,CAAA;yGAAZ,YAAY,EAAA,SAAA,EAFZ,CAAC,UAAU,CAAC,EAAA,CAAA;;4FAEZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,SAAS,EAAE,CAAC,UAAU;AACvB,iBAAA;;;ACVD;;AAEG;;;;"}
|