@meshmakers/shared-ui-legacy 3.3.460 → 3.3.470
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/README.md
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# @meshmakers/shared-ui-legacy
|
|
2
|
+
|
|
3
|
+
Legacy Angular UI library based on **Angular Material** for backward compatibility with older OctoMesh applications.
|
|
4
|
+
|
|
5
|
+
**Note:** For new projects, use `@meshmakers/shared-ui` (Kendo UI based) instead.
|
|
6
|
+
|
|
7
|
+
Part of the [@meshmakers](https://www.npmjs.com/org/meshmakers) package ecosystem.
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
This library provides Material Design-based UI components for applications that have not yet migrated to the Kendo UI based `@meshmakers/shared-ui`. It contains dialog services, form utilities, and base classes that were part of the original shared UI layer.
|
|
12
|
+
|
|
13
|
+
## Build & Test
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Build
|
|
17
|
+
npm run build:shared-ui-legacy
|
|
18
|
+
|
|
19
|
+
# Lint
|
|
20
|
+
npm run lint:shared-ui-legacy
|
|
21
|
+
|
|
22
|
+
# Run tests
|
|
23
|
+
npm test -- --project=@meshmakers/shared-ui-legacy --watch=false
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Architecture
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
shared-ui-legacy/
|
|
30
|
+
├── src/
|
|
31
|
+
│ ├── public-api.ts
|
|
32
|
+
│ └── lib/
|
|
33
|
+
│ ├── shared-ui-module/
|
|
34
|
+
│ │ └── mm-shared-ui-module.ts # NgModule (backward compat)
|
|
35
|
+
│ ├── abstract-details/
|
|
36
|
+
│ │ └── abstract-details-component.ts # Base class for detail forms
|
|
37
|
+
│ ├── common-validators/
|
|
38
|
+
│ │ └── common-validators.ts # Custom form validators
|
|
39
|
+
│ ├── confirmation/
|
|
40
|
+
│ │ ├── confirmation.model.ts # Dialog types/enums
|
|
41
|
+
│ │ ├── confirmation.service.ts # Dialog service (Material)
|
|
42
|
+
│ │ └── confirmation-dialog.component.ts
|
|
43
|
+
│ ├── progress-window/
|
|
44
|
+
│ │ ├── progress-value.ts # Progress data model
|
|
45
|
+
│ │ ├── progress-window.component.ts # Progress dialog
|
|
46
|
+
│ │ └── progress-window.service.ts # Progress service
|
|
47
|
+
│ └── import-strategy/
|
|
48
|
+
│ └── import-strategy-dto.ts # ImportStrategyDto enum
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Components
|
|
52
|
+
|
|
53
|
+
| Component | Description |
|
|
54
|
+
|-----------|-------------|
|
|
55
|
+
| `ConfirmationDialogComponent` | Material Dialog with configurable buttons (Yes/No, Ok/Cancel) |
|
|
56
|
+
| `ProgressWindowComponent` | Determinate/indeterminate progress dialog with cancel |
|
|
57
|
+
|
|
58
|
+
## Services
|
|
59
|
+
|
|
60
|
+
| Service | Description |
|
|
61
|
+
|---------|-------------|
|
|
62
|
+
| `ConfirmationService` | Show confirmation dialogs (YesNo, YesNoCancel, OkCancel, Ok) |
|
|
63
|
+
| `ProgressWindowService` | Show progress dialogs (determinate/indeterminate) |
|
|
64
|
+
|
|
65
|
+
## Base Classes & Utilities
|
|
66
|
+
|
|
67
|
+
| Class | Description |
|
|
68
|
+
|-------|-------------|
|
|
69
|
+
| `AbstractDetailsComponent<T>` | Generic base for form-based detail components |
|
|
70
|
+
| `CommonValidators` | Form validators: `phoneNumber()`, `httpUri()`, `ensureSameValue()`, `conditionalRequired()`, `dependentControls()` |
|
|
71
|
+
| `MmSharedUiModule` | NgModule with `forRoot()` for legacy module-based apps |
|
|
72
|
+
|
|
73
|
+
## Models
|
|
74
|
+
|
|
75
|
+
| Model | Description |
|
|
76
|
+
|-------|-------------|
|
|
77
|
+
| `DialogType` | Enum: YesNo, YesNoCancel, OkCancel, Ok |
|
|
78
|
+
| `ButtonTypes` | Enum: Ok, Cancel, Yes, No |
|
|
79
|
+
| `ConfirmationWindowData` | Dialog configuration interface |
|
|
80
|
+
| `ConfirmationWindowResult` | Dialog result with button type |
|
|
81
|
+
| `ProgressValue` | Status text + progress percentage |
|
|
82
|
+
| `ImportStrategyDto` | Enum: InsertOnly, Upsert |
|
|
83
|
+
|
|
84
|
+
## Dependencies
|
|
85
|
+
|
|
86
|
+
- **Angular 21** with Angular Material and CDK
|
|
87
|
+
- **@meshmakers/shared-services** (sibling library)
|
|
88
|
+
|
|
89
|
+
## Migration to shared-ui
|
|
90
|
+
|
|
91
|
+
| Legacy (Material) | Modern (Kendo) |
|
|
92
|
+
|-------------------|----------------|
|
|
93
|
+
| `ConfirmationService` | `ConfirmationService` from `@meshmakers/shared-ui` |
|
|
94
|
+
| `ProgressWindowService` | `ProgressWindowService` from `@meshmakers/shared-ui` |
|
|
95
|
+
| `AbstractDetailsComponent` | `BaseFormComponent` from `@meshmakers/shared-ui` |
|
|
96
|
+
| `CommonValidators` | Angular built-in validators or custom |
|
|
97
|
+
| `MmSharedUiModule.forRoot()` | `provideMmSharedUi()` |
|
|
98
|
+
|
|
99
|
+
## Documentation and Testing Standards
|
|
100
|
+
|
|
101
|
+
- **All developer documentation must be written in English**
|
|
102
|
+
- **Every code change must include updated documentation** — update README.md, CLAUDE.md, or inline docs when adding, modifying, or removing features
|
|
103
|
+
- **Unit tests and integration tests must be executed** after every code change
|
|
104
|
+
- **Existing tests must be updated** when the behavior of tested code changes
|
|
105
|
+
- **New tests must be added** when new features, components, or services are implemented
|
|
106
|
+
- Never commit code with failing tests
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Component, Injectable, NgModule } from '@angular/core';
|
|
2
|
+
import { inject, Component, Injectable, NgModule, ChangeDetectorRef } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/material/dialog';
|
|
4
4
|
import { MatDialogRef, MAT_DIALOG_DATA, MatDialogModule, MatDialog } from '@angular/material/dialog';
|
|
5
5
|
import { firstValueFrom } from 'rxjs';
|
|
@@ -77,8 +77,8 @@ class ConfirmationDialogComponent {
|
|
|
77
77
|
onButton3() {
|
|
78
78
|
this.dialogRef.close(new ConfirmationWindowResult(this.button3Result));
|
|
79
79
|
}
|
|
80
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
81
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
80
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ConfirmationDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ConfirmationDialogComponent, isStandalone: true, selector: "mm-confirmation-dialog", ngImport: i0, template: `
|
|
82
82
|
<h2 mat-dialog-title>{{ data.title }}</h2>
|
|
83
83
|
<mat-dialog-content>{{ data.message }}</mat-dialog-content>
|
|
84
84
|
<mat-dialog-actions align="end">
|
|
@@ -92,7 +92,7 @@ class ConfirmationDialogComponent {
|
|
|
92
92
|
</mat-dialog-actions>
|
|
93
93
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.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"] }] });
|
|
94
94
|
}
|
|
95
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
|
|
96
96
|
type: Component,
|
|
97
97
|
args: [{
|
|
98
98
|
selector: 'mm-confirmation-dialog',
|
|
@@ -150,10 +150,10 @@ class ConfirmationService {
|
|
|
150
150
|
});
|
|
151
151
|
return firstValueFrom(dialogRef.afterClosed());
|
|
152
152
|
}
|
|
153
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
154
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
153
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ConfirmationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
154
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ConfirmationService });
|
|
155
155
|
}
|
|
156
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
156
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ConfirmationService, decorators: [{
|
|
157
157
|
type: Injectable
|
|
158
158
|
}] });
|
|
159
159
|
|
|
@@ -173,11 +173,11 @@ class MmSharedUiModule {
|
|
|
173
173
|
]
|
|
174
174
|
};
|
|
175
175
|
}
|
|
176
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
177
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.
|
|
178
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.
|
|
176
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MmSharedUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
177
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: MmSharedUiModule });
|
|
178
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MmSharedUiModule });
|
|
179
179
|
}
|
|
180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MmSharedUiModule, decorators: [{
|
|
181
181
|
type: NgModule,
|
|
182
182
|
args: [{
|
|
183
183
|
declarations: [],
|
|
@@ -286,6 +286,7 @@ class ProgressValue {
|
|
|
286
286
|
class ProgressWindowComponent {
|
|
287
287
|
dialogRef = inject(MatDialogRef);
|
|
288
288
|
data = inject(MAT_DIALOG_DATA);
|
|
289
|
+
cdr = inject(ChangeDetectorRef);
|
|
289
290
|
progressSubscription;
|
|
290
291
|
isDeterminate;
|
|
291
292
|
isCancelOperationAvailable;
|
|
@@ -300,6 +301,7 @@ class ProgressWindowComponent {
|
|
|
300
301
|
this.progressSubscription = this.data.progress.subscribe((value) => {
|
|
301
302
|
this.statusText = value.statusText;
|
|
302
303
|
this.progressPercent = value.progressValue;
|
|
304
|
+
this.cdr.detectChanges();
|
|
303
305
|
});
|
|
304
306
|
}
|
|
305
307
|
}
|
|
@@ -312,8 +314,8 @@ class ProgressWindowComponent {
|
|
|
312
314
|
}
|
|
313
315
|
this.dialogRef.close();
|
|
314
316
|
}
|
|
315
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
316
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
317
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ProgressWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
318
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ProgressWindowComponent, isStandalone: true, selector: "mm-progress-window", ngImport: i0, template: `
|
|
317
319
|
<mat-dialog-content>
|
|
318
320
|
<div class="progress-section">
|
|
319
321
|
@if (isDeterminate) {
|
|
@@ -333,7 +335,7 @@ class ProgressWindowComponent {
|
|
|
333
335
|
</mat-dialog-actions>
|
|
334
336
|
`, isInline: true, styles: [".progress-section{display:flex;flex-direction:column;gap:12px;min-width:350px}.status-text{margin:0;font-size:14px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.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: MatProgressBarModule }, { kind: "component", type: i3.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
|
|
335
337
|
}
|
|
336
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
338
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ProgressWindowComponent, decorators: [{
|
|
337
339
|
type: Component,
|
|
338
340
|
args: [{ selector: 'mm-progress-window', standalone: true, imports: [MatDialogModule, MatButtonModule, MatProgressBarModule], template: `
|
|
339
341
|
<mat-dialog-content>
|
|
@@ -403,10 +405,10 @@ class ProgressWindowService {
|
|
|
403
405
|
...options
|
|
404
406
|
});
|
|
405
407
|
}
|
|
406
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
407
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
408
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ProgressWindowService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
409
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ProgressWindowService });
|
|
408
410
|
}
|
|
409
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
411
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ProgressWindowService, decorators: [{
|
|
410
412
|
type: Injectable
|
|
411
413
|
}] });
|
|
412
414
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meshmakers-shared-ui-legacy.mjs","sources":["../../../../projects/meshmakers/shared-ui-legacy/src/lib/confirmation/confirmation.model.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/confirmation/confirmation-dialog.component.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/confirmation/confirmation.service.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/shared-ui-module/mm-shared-ui-module.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/abstract-details/abstract-details-component.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/common-validators/common-validators.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/progress-window/progress-value.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/progress-window/progress-window.component.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/progress-window/progress-window.service.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/import-strategy/import-strategy-dto.ts","../../../../projects/meshmakers/shared-ui-legacy/src/public-api.ts","../../../../projects/meshmakers/shared-ui-legacy/src/meshmakers-shared-ui-legacy.ts"],"sourcesContent":["export enum ButtonTypes {\n Ok,\n Cancel,\n Yes,\n No\n}\n\nexport enum DialogType {\n YesNo = 0,\n YesNoCancel = 1,\n OkCancel = 2,\n Ok = 3\n}\n\nexport interface ConfirmationWindowData {\n title: string;\n message: string;\n dialogType: DialogType;\n}\n\nexport class ConfirmationWindowResult {\n result: ButtonTypes;\n\n constructor(result: ButtonTypes) {\n this.result = result;\n }\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ButtonTypes, ConfirmationWindowData, ConfirmationWindowResult, DialogType } from './confirmation.model';\n\n@Component({\n selector: 'mm-confirmation-dialog',\n standalone: true,\n imports: [MatDialogModule, MatButtonModule],\n template: `\n <h2 mat-dialog-title>{{ data.title }}</h2>\n <mat-dialog-content>{{ data.message }}</mat-dialog-content>\n <mat-dialog-actions align=\"end\">\n <button mat-flat-button color=\"primary\" (click)=\"onButton1()\">{{ button1Text }}</button>\n @if (button2Text) {\n <button mat-stroked-button (click)=\"onButton2()\">{{ button2Text }}</button>\n }\n @if (button3Text) {\n <button mat-stroked-button (click)=\"onButton3()\">{{ button3Text }}</button>\n }\n </mat-dialog-actions>\n `\n})\nexport class ConfirmationDialogComponent implements OnInit {\n private readonly dialogRef = inject<MatDialogRef<ConfirmationDialogComponent>>(MatDialogRef);\n readonly data = inject<ConfirmationWindowData>(MAT_DIALOG_DATA);\n\n button1Text = 'OK';\n button2Text: string | null = null;\n button3Text: string | null = null;\n\n private button1Result: ButtonTypes = ButtonTypes.Ok;\n private button2Result: ButtonTypes | null = null;\n private button3Result: ButtonTypes | null = null;\n\n ngOnInit(): void {\n switch (this.data.dialogType) {\n case DialogType.OkCancel:\n this.button1Text = 'OK';\n this.button1Result = ButtonTypes.Ok;\n this.button2Text = 'Cancel';\n this.button2Result = ButtonTypes.Cancel;\n break;\n case DialogType.YesNoCancel:\n this.button1Text = 'Yes';\n this.button1Result = ButtonTypes.Yes;\n this.button2Text = 'No';\n this.button2Result = ButtonTypes.No;\n this.button3Text = 'Cancel';\n this.button3Result = ButtonTypes.Cancel;\n break;\n case DialogType.Ok:\n this.button1Text = 'OK';\n this.button1Result = ButtonTypes.Ok;\n break;\n default: // YesNo\n this.button1Text = 'Yes';\n this.button1Result = ButtonTypes.Yes;\n this.button2Text = 'No';\n this.button2Result = ButtonTypes.No;\n break;\n }\n }\n\n onButton1(): void {\n this.dialogRef.close(new ConfirmationWindowResult(this.button1Result));\n }\n\n onButton2(): void {\n this.dialogRef.close(new ConfirmationWindowResult(this.button2Result!));\n }\n\n onButton3(): void {\n this.dialogRef.close(new ConfirmationWindowResult(this.button3Result!));\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { firstValueFrom } from 'rxjs';\nimport { ConfirmationDialogComponent } from './confirmation-dialog.component';\nimport {\n ButtonTypes,\n ConfirmationWindowData,\n ConfirmationWindowResult,\n DialogType,\n} from './confirmation.model';\n\n@Injectable()\nexport class ConfirmationService {\n private readonly dialog = inject(MatDialog);\n\n public async showYesNoConfirmationDialog(title: string, message: string): Promise<boolean> {\n const result = await this.openDialog(title, message, DialogType.YesNo);\n if (result instanceof ConfirmationWindowResult) {\n return result.result === ButtonTypes.Yes;\n }\n return false;\n }\n\n public async showYesNoCancelConfirmationDialog(title: string, message: string): Promise<ConfirmationWindowResult | undefined> {\n const result = await this.openDialog(title, message, DialogType.YesNoCancel);\n if (result instanceof ConfirmationWindowResult) {\n return result;\n }\n return undefined;\n }\n\n public async showOkCancelConfirmationDialog(title: string, message: string): Promise<boolean> {\n const result = await this.openDialog(title, message, DialogType.OkCancel);\n if (result instanceof ConfirmationWindowResult) {\n return result.result === ButtonTypes.Ok;\n }\n return false;\n }\n\n public async showOkDialog(title: string, message: string): Promise<boolean> {\n const result = await this.openDialog(title, message, DialogType.Ok);\n if (result instanceof ConfirmationWindowResult) {\n return result.result === ButtonTypes.Ok;\n }\n return false;\n }\n\n private async openDialog(title: string, message: string, dialogType: DialogType): Promise<ConfirmationWindowResult | undefined> {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n data: { title, message, dialogType } as ConfirmationWindowData,\n });\n\n return firstValueFrom(dialogRef.afterClosed());\n }\n}\n","/**\n * Backward-compatible MmSharedUiModule for legacy apps that use\n * importProvidersFrom(MmSharedUiModule.forRoot()).\n *\n * Provides a Material-based ConfirmationService as a drop-in replacement\n * for the Kendo-based version from @meshmakers/shared-ui.\n */\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ConfirmationService } from '../confirmation/confirmation.service';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: []\n})\nexport class MmSharedUiModule {\n static forRoot(): ModuleWithProviders<MmSharedUiModule> {\n return {\n ngModule: MmSharedUiModule,\n providers: [\n ConfirmationService,\n ]\n };\n }\n}\n","/**\n * Backward-compatible AbstractDetailsComponent for legacy apps.\n */\nimport { FormGroup } from '@angular/forms';\nimport { IsoDateTime } from '@meshmakers/shared-services';\n\nexport abstract class AbstractDetailsComponent<TEntity> {\n private _loading: boolean;\n private readonly _ownerForm: FormGroup;\n private _entity: TEntity | null;\n\n protected constructor(formGroup: FormGroup) {\n this._loading = true;\n this._entity = null;\n this._ownerForm = formGroup;\n }\n\n public get loading(): boolean {\n return this._loading;\n }\n\n public set loading(value: boolean) {\n this._loading = value;\n }\n\n public get entity(): TEntity | null {\n return this._entity;\n }\n\n public set entity(value: TEntity | null) {\n this._entity = value;\n }\n\n public get ownerForm(): FormGroup {\n return this._ownerForm;\n }\n\n public get isLoaded(): boolean {\n return this._entity !== null;\n }\n\n public hasError = (controlName: string, errorName: string): boolean => {\n return this.ownerForm?.controls[controlName].hasError(errorName);\n };\n\n public hasFormError = (errorName: string): boolean => {\n return this.ownerForm?.hasError(errorName);\n };\n\n public updateDateTime(controlName: string): void {\n this.ownerForm?.get(controlName)?.setValue(IsoDateTime.utcToLocalDateTimeIso(IsoDateTime.currentUtcDateTimeIso()));\n }\n\n public copyInputMessage(inputElement: HTMLInputElement): void {\n inputElement.select();\n document.execCommand('copy');\n inputElement.setSelectionRange(0, 0);\n }\n\n protected onProgressStarting(): void {\n this._loading = true;\n this.ownerForm?.disable();\n this.ownerForm?.updateValueAndValidity();\n }\n\n protected onProgressCompleted(): void {\n this.ownerForm?.enable();\n this._loading = false;\n }\n}\n","/**\n * Backward-compatible CommonValidators for legacy apps.\n */\nimport { AbstractControl, ValidatorFn, Validators } from '@angular/forms';\n\nexport type CompareValueFn<TValue> = (value: TValue) => boolean;\n\nexport class CommonValidators {\n public static phoneNumber(): ValidatorFn {\n return Validators.pattern('^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\\\s\\\\./0-9]*$');\n }\n\n public static httpUri(): ValidatorFn {\n return Validators.pattern(\n '^(http:\\\\/\\\\/|https:\\\\/\\\\/)([a-zA-Z0-9-_]+\\\\.)*[a-zA-Z0-9][a-zA-Z0-9-_]+(\\\\.[a-zA-Z]{2,11}?)*(:[0-9]{2,5}){0,1}\\\\/{0,1}$'\n );\n }\n\n public static ensureSameValue(sourceControlName: string): ValidatorFn {\n return (control: AbstractControl) => {\n const value = control.value;\n return value === control.parent?.get(sourceControlName)?.value ? null : { notSame: true };\n };\n }\n\n public static conditionalRequired<TCompareValue>(\n sourceControlName: string,\n sourceValueCompareExpression: CompareValueFn<TCompareValue>\n ): ValidatorFn {\n return (control: AbstractControl) => {\n if (control.parent != null && sourceValueCompareExpression((control.parent.get(sourceControlName)?.value as TCompareValue))) {\n const val = control.value;\n const isEmpty = val == null || (typeof val === 'string' && val.length === 0) || (Array.isArray(val) && val.length === 0);\n return isEmpty ? { required: true } : null;\n }\n return null;\n };\n }\n\n public static dependentControls(controlNames: string[]): ValidatorFn {\n return (control: AbstractControl) => {\n controlNames.forEach((controlName) => {\n control.parent?.get(controlName)?.updateValueAndValidity();\n });\n return null;\n };\n }\n}\n","export class ProgressValue {\n statusText: string | null;\n progressValue: number;\n\n constructor() {\n this.statusText = null;\n this.progressValue = 0;\n }\n}\n","import { Component, inject, OnDestroy, AfterViewInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { Observable, Subscription } from 'rxjs';\nimport { ProgressValue } from './progress-value';\n\nexport interface ProgressWindowData {\n isDeterminate: boolean;\n progress: Observable<ProgressValue>;\n isCancelOperationAvailable: boolean;\n cancelOperation: () => void;\n}\n\n@Component({\n selector: 'mm-progress-window',\n standalone: true,\n imports: [MatDialogModule, MatButtonModule, MatProgressBarModule],\n template: `\n <mat-dialog-content>\n <div class=\"progress-section\">\n @if (isDeterminate) {\n <mat-progress-bar mode=\"determinate\" [value]=\"progressPercent\"></mat-progress-bar>\n } @else {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n }\n @if (statusText) {\n <p class=\"status-text\">{{ statusText }}</p>\n }\n </div>\n </mat-dialog-content>\n <mat-dialog-actions align=\"end\">\n @if (isCancelOperationAvailable) {\n <button mat-stroked-button (click)=\"onCancelClick()\">Cancel</button>\n }\n </mat-dialog-actions>\n `,\n styles: [`\n .progress-section {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-width: 350px;\n }\n .status-text {\n margin: 0;\n font-size: 14px;\n text-align: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n `]\n})\nexport class ProgressWindowComponent implements AfterViewInit, OnDestroy {\n private readonly dialogRef = inject<MatDialogRef<ProgressWindowComponent>>(MatDialogRef);\n private readonly data = inject<ProgressWindowData>(MAT_DIALOG_DATA);\n private progressSubscription?: Subscription;\n\n isDeterminate: boolean;\n isCancelOperationAvailable: boolean;\n statusText: string | null = null;\n progressPercent = 0;\n\n constructor() {\n this.isDeterminate = this.data.isDeterminate;\n this.isCancelOperationAvailable = this.data.isCancelOperationAvailable;\n }\n\n ngAfterViewInit(): void {\n if (this.data.progress) {\n this.progressSubscription = this.data.progress.subscribe((value: ProgressValue) => {\n this.statusText = value.statusText;\n this.progressPercent = value.progressValue;\n });\n }\n }\n\n ngOnDestroy(): void {\n this.progressSubscription?.unsubscribe();\n }\n\n onCancelClick(): void {\n if (this.data.cancelOperation) {\n this.data.cancelOperation();\n }\n this.dialogRef.close();\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Observable } from 'rxjs';\nimport { ProgressValue } from './progress-value';\nimport { ProgressWindowComponent, ProgressWindowData } from './progress-window.component';\n\n/**\n * Reference returned by showProgress methods.\n * Provides a close() method compatible with the Kendo DialogRef API.\n */\nexport class ProgressDialogRef {\n constructor(private readonly dialogRef: MatDialogRef<ProgressWindowComponent>) {}\n\n close(): void {\n this.dialogRef.close();\n }\n}\n\nexport interface ProgressWindowConfig {\n title: string;\n progress: Observable<ProgressValue>;\n isDeterminate?: boolean;\n isCancelOperationAvailable?: boolean;\n cancelOperation?: () => void;\n width?: number;\n height?: number | string;\n}\n\nexport interface ProgressWindowOptions {\n isCancelOperationAvailable?: boolean;\n cancelOperation?: () => void;\n width?: number;\n height?: number | string;\n}\n\n@Injectable()\nexport class ProgressWindowService {\n private readonly dialog = inject(MatDialog);\n\n showProgress(config: ProgressWindowConfig): ProgressDialogRef {\n const dialogRef = this.dialog.open(ProgressWindowComponent, {\n data: {\n isDeterminate: config.isDeterminate !== false,\n progress: config.progress,\n isCancelOperationAvailable: config.isCancelOperationAvailable || false,\n cancelOperation: config.cancelOperation || (() => { /* noop */ }),\n } as ProgressWindowData,\n width: config.width ? `${config.width}px` : '450px',\n disableClose: true,\n });\n\n if (config.title) {\n // MatDialog doesn't have a built-in title on the ref, but we set it via the component\n }\n\n return new ProgressDialogRef(dialogRef);\n }\n\n showDeterminateProgress(\n title: string,\n progress: Observable<ProgressValue>,\n options?: Partial<ProgressWindowOptions>\n ): ProgressDialogRef {\n return this.showProgress({\n title,\n isDeterminate: true,\n progress,\n ...options\n });\n }\n\n showIndeterminateProgress(\n title: string,\n progress: Observable<ProgressValue>,\n options?: Partial<ProgressWindowOptions>\n ): ProgressDialogRef {\n return this.showProgress({\n title,\n isDeterminate: false,\n progress,\n ...options\n });\n }\n}\n","export enum ImportStrategyDto {\n InsertOnly = 0,\n Upsert = 1\n}\n","/*\n * Public API Surface of shared-ui-legacy\n */\n\nexport * from './lib/shared-ui-module';\nexport * from './lib/abstract-details';\nexport * from './lib/common-validators';\nexport * from './lib/confirmation';\nexport * from './lib/progress-window';\nexport * from './lib/import-strategy';\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":"meshmakers-shared-ui-legacy.mjs","sources":["../../../../projects/meshmakers/shared-ui-legacy/src/lib/confirmation/confirmation.model.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/confirmation/confirmation-dialog.component.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/confirmation/confirmation.service.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/shared-ui-module/mm-shared-ui-module.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/abstract-details/abstract-details-component.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/common-validators/common-validators.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/progress-window/progress-value.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/progress-window/progress-window.component.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/progress-window/progress-window.service.ts","../../../../projects/meshmakers/shared-ui-legacy/src/lib/import-strategy/import-strategy-dto.ts","../../../../projects/meshmakers/shared-ui-legacy/src/public-api.ts","../../../../projects/meshmakers/shared-ui-legacy/src/meshmakers-shared-ui-legacy.ts"],"sourcesContent":["export enum ButtonTypes {\n Ok,\n Cancel,\n Yes,\n No\n}\n\nexport enum DialogType {\n YesNo = 0,\n YesNoCancel = 1,\n OkCancel = 2,\n Ok = 3\n}\n\nexport interface ConfirmationWindowData {\n title: string;\n message: string;\n dialogType: DialogType;\n}\n\nexport class ConfirmationWindowResult {\n result: ButtonTypes;\n\n constructor(result: ButtonTypes) {\n this.result = result;\n }\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ButtonTypes, ConfirmationWindowData, ConfirmationWindowResult, DialogType } from './confirmation.model';\n\n@Component({\n selector: 'mm-confirmation-dialog',\n standalone: true,\n imports: [MatDialogModule, MatButtonModule],\n template: `\n <h2 mat-dialog-title>{{ data.title }}</h2>\n <mat-dialog-content>{{ data.message }}</mat-dialog-content>\n <mat-dialog-actions align=\"end\">\n <button mat-flat-button color=\"primary\" (click)=\"onButton1()\">{{ button1Text }}</button>\n @if (button2Text) {\n <button mat-stroked-button (click)=\"onButton2()\">{{ button2Text }}</button>\n }\n @if (button3Text) {\n <button mat-stroked-button (click)=\"onButton3()\">{{ button3Text }}</button>\n }\n </mat-dialog-actions>\n `\n})\nexport class ConfirmationDialogComponent implements OnInit {\n private readonly dialogRef = inject<MatDialogRef<ConfirmationDialogComponent>>(MatDialogRef);\n readonly data = inject<ConfirmationWindowData>(MAT_DIALOG_DATA);\n\n button1Text = 'OK';\n button2Text: string | null = null;\n button3Text: string | null = null;\n\n private button1Result: ButtonTypes = ButtonTypes.Ok;\n private button2Result: ButtonTypes | null = null;\n private button3Result: ButtonTypes | null = null;\n\n ngOnInit(): void {\n switch (this.data.dialogType) {\n case DialogType.OkCancel:\n this.button1Text = 'OK';\n this.button1Result = ButtonTypes.Ok;\n this.button2Text = 'Cancel';\n this.button2Result = ButtonTypes.Cancel;\n break;\n case DialogType.YesNoCancel:\n this.button1Text = 'Yes';\n this.button1Result = ButtonTypes.Yes;\n this.button2Text = 'No';\n this.button2Result = ButtonTypes.No;\n this.button3Text = 'Cancel';\n this.button3Result = ButtonTypes.Cancel;\n break;\n case DialogType.Ok:\n this.button1Text = 'OK';\n this.button1Result = ButtonTypes.Ok;\n break;\n default: // YesNo\n this.button1Text = 'Yes';\n this.button1Result = ButtonTypes.Yes;\n this.button2Text = 'No';\n this.button2Result = ButtonTypes.No;\n break;\n }\n }\n\n onButton1(): void {\n this.dialogRef.close(new ConfirmationWindowResult(this.button1Result));\n }\n\n onButton2(): void {\n this.dialogRef.close(new ConfirmationWindowResult(this.button2Result!));\n }\n\n onButton3(): void {\n this.dialogRef.close(new ConfirmationWindowResult(this.button3Result!));\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { firstValueFrom } from 'rxjs';\nimport { ConfirmationDialogComponent } from './confirmation-dialog.component';\nimport {\n ButtonTypes,\n ConfirmationWindowData,\n ConfirmationWindowResult,\n DialogType,\n} from './confirmation.model';\n\n@Injectable()\nexport class ConfirmationService {\n private readonly dialog = inject(MatDialog);\n\n public async showYesNoConfirmationDialog(title: string, message: string): Promise<boolean> {\n const result = await this.openDialog(title, message, DialogType.YesNo);\n if (result instanceof ConfirmationWindowResult) {\n return result.result === ButtonTypes.Yes;\n }\n return false;\n }\n\n public async showYesNoCancelConfirmationDialog(title: string, message: string): Promise<ConfirmationWindowResult | undefined> {\n const result = await this.openDialog(title, message, DialogType.YesNoCancel);\n if (result instanceof ConfirmationWindowResult) {\n return result;\n }\n return undefined;\n }\n\n public async showOkCancelConfirmationDialog(title: string, message: string): Promise<boolean> {\n const result = await this.openDialog(title, message, DialogType.OkCancel);\n if (result instanceof ConfirmationWindowResult) {\n return result.result === ButtonTypes.Ok;\n }\n return false;\n }\n\n public async showOkDialog(title: string, message: string): Promise<boolean> {\n const result = await this.openDialog(title, message, DialogType.Ok);\n if (result instanceof ConfirmationWindowResult) {\n return result.result === ButtonTypes.Ok;\n }\n return false;\n }\n\n private async openDialog(title: string, message: string, dialogType: DialogType): Promise<ConfirmationWindowResult | undefined> {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n data: { title, message, dialogType } as ConfirmationWindowData,\n });\n\n return firstValueFrom(dialogRef.afterClosed());\n }\n}\n","/**\n * Backward-compatible MmSharedUiModule for legacy apps that use\n * importProvidersFrom(MmSharedUiModule.forRoot()).\n *\n * Provides a Material-based ConfirmationService as a drop-in replacement\n * for the Kendo-based version from @meshmakers/shared-ui.\n */\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ConfirmationService } from '../confirmation/confirmation.service';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: []\n})\nexport class MmSharedUiModule {\n static forRoot(): ModuleWithProviders<MmSharedUiModule> {\n return {\n ngModule: MmSharedUiModule,\n providers: [\n ConfirmationService,\n ]\n };\n }\n}\n","/**\n * Backward-compatible AbstractDetailsComponent for legacy apps.\n */\nimport { FormGroup } from '@angular/forms';\nimport { IsoDateTime } from '@meshmakers/shared-services';\n\nexport abstract class AbstractDetailsComponent<TEntity> {\n private _loading: boolean;\n private readonly _ownerForm: FormGroup;\n private _entity: TEntity | null;\n\n protected constructor(formGroup: FormGroup) {\n this._loading = true;\n this._entity = null;\n this._ownerForm = formGroup;\n }\n\n public get loading(): boolean {\n return this._loading;\n }\n\n public set loading(value: boolean) {\n this._loading = value;\n }\n\n public get entity(): TEntity | null {\n return this._entity;\n }\n\n public set entity(value: TEntity | null) {\n this._entity = value;\n }\n\n public get ownerForm(): FormGroup {\n return this._ownerForm;\n }\n\n public get isLoaded(): boolean {\n return this._entity !== null;\n }\n\n public hasError = (controlName: string, errorName: string): boolean => {\n return this.ownerForm?.controls[controlName].hasError(errorName);\n };\n\n public hasFormError = (errorName: string): boolean => {\n return this.ownerForm?.hasError(errorName);\n };\n\n public updateDateTime(controlName: string): void {\n this.ownerForm?.get(controlName)?.setValue(IsoDateTime.utcToLocalDateTimeIso(IsoDateTime.currentUtcDateTimeIso()));\n }\n\n public copyInputMessage(inputElement: HTMLInputElement): void {\n inputElement.select();\n document.execCommand('copy');\n inputElement.setSelectionRange(0, 0);\n }\n\n protected onProgressStarting(): void {\n this._loading = true;\n this.ownerForm?.disable();\n this.ownerForm?.updateValueAndValidity();\n }\n\n protected onProgressCompleted(): void {\n this.ownerForm?.enable();\n this._loading = false;\n }\n}\n","/**\n * Backward-compatible CommonValidators for legacy apps.\n */\nimport { AbstractControl, ValidatorFn, Validators } from '@angular/forms';\n\nexport type CompareValueFn<TValue> = (value: TValue) => boolean;\n\nexport class CommonValidators {\n public static phoneNumber(): ValidatorFn {\n return Validators.pattern('^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\\\s\\\\./0-9]*$');\n }\n\n public static httpUri(): ValidatorFn {\n return Validators.pattern(\n '^(http:\\\\/\\\\/|https:\\\\/\\\\/)([a-zA-Z0-9-_]+\\\\.)*[a-zA-Z0-9][a-zA-Z0-9-_]+(\\\\.[a-zA-Z]{2,11}?)*(:[0-9]{2,5}){0,1}\\\\/{0,1}$'\n );\n }\n\n public static ensureSameValue(sourceControlName: string): ValidatorFn {\n return (control: AbstractControl) => {\n const value = control.value;\n return value === control.parent?.get(sourceControlName)?.value ? null : { notSame: true };\n };\n }\n\n public static conditionalRequired<TCompareValue>(\n sourceControlName: string,\n sourceValueCompareExpression: CompareValueFn<TCompareValue>\n ): ValidatorFn {\n return (control: AbstractControl) => {\n if (control.parent != null && sourceValueCompareExpression((control.parent.get(sourceControlName)?.value as TCompareValue))) {\n const val = control.value;\n const isEmpty = val == null || (typeof val === 'string' && val.length === 0) || (Array.isArray(val) && val.length === 0);\n return isEmpty ? { required: true } : null;\n }\n return null;\n };\n }\n\n public static dependentControls(controlNames: string[]): ValidatorFn {\n return (control: AbstractControl) => {\n controlNames.forEach((controlName) => {\n control.parent?.get(controlName)?.updateValueAndValidity();\n });\n return null;\n };\n }\n}\n","export class ProgressValue {\n statusText: string | null;\n progressValue: number;\n\n constructor() {\n this.statusText = null;\n this.progressValue = 0;\n }\n}\n","import { ChangeDetectorRef, Component, inject, OnDestroy, AfterViewInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { Observable, Subscription } from 'rxjs';\nimport { ProgressValue } from './progress-value';\n\nexport interface ProgressWindowData {\n isDeterminate: boolean;\n progress: Observable<ProgressValue>;\n isCancelOperationAvailable: boolean;\n cancelOperation: () => void;\n}\n\n@Component({\n selector: 'mm-progress-window',\n standalone: true,\n imports: [MatDialogModule, MatButtonModule, MatProgressBarModule],\n template: `\n <mat-dialog-content>\n <div class=\"progress-section\">\n @if (isDeterminate) {\n <mat-progress-bar mode=\"determinate\" [value]=\"progressPercent\"></mat-progress-bar>\n } @else {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n }\n @if (statusText) {\n <p class=\"status-text\">{{ statusText }}</p>\n }\n </div>\n </mat-dialog-content>\n <mat-dialog-actions align=\"end\">\n @if (isCancelOperationAvailable) {\n <button mat-stroked-button (click)=\"onCancelClick()\">Cancel</button>\n }\n </mat-dialog-actions>\n `,\n styles: [`\n .progress-section {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-width: 350px;\n }\n .status-text {\n margin: 0;\n font-size: 14px;\n text-align: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n `]\n})\nexport class ProgressWindowComponent implements AfterViewInit, OnDestroy {\n private readonly dialogRef = inject<MatDialogRef<ProgressWindowComponent>>(MatDialogRef);\n private readonly data = inject<ProgressWindowData>(MAT_DIALOG_DATA);\n private readonly cdr = inject(ChangeDetectorRef);\n private progressSubscription?: Subscription;\n\n isDeterminate: boolean;\n isCancelOperationAvailable: boolean;\n statusText: string | null = null;\n progressPercent = 0;\n\n constructor() {\n this.isDeterminate = this.data.isDeterminate;\n this.isCancelOperationAvailable = this.data.isCancelOperationAvailable;\n }\n\n ngAfterViewInit(): void {\n if (this.data.progress) {\n this.progressSubscription = this.data.progress.subscribe((value: ProgressValue) => {\n this.statusText = value.statusText;\n this.progressPercent = value.progressValue;\n this.cdr.detectChanges();\n });\n }\n }\n\n ngOnDestroy(): void {\n this.progressSubscription?.unsubscribe();\n }\n\n onCancelClick(): void {\n if (this.data.cancelOperation) {\n this.data.cancelOperation();\n }\n this.dialogRef.close();\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Observable } from 'rxjs';\nimport { ProgressValue } from './progress-value';\nimport { ProgressWindowComponent, ProgressWindowData } from './progress-window.component';\n\n/**\n * Reference returned by showProgress methods.\n * Provides a close() method compatible with the Kendo DialogRef API.\n */\nexport class ProgressDialogRef {\n constructor(private readonly dialogRef: MatDialogRef<ProgressWindowComponent>) {}\n\n close(): void {\n this.dialogRef.close();\n }\n}\n\nexport interface ProgressWindowConfig {\n title: string;\n progress: Observable<ProgressValue>;\n isDeterminate?: boolean;\n isCancelOperationAvailable?: boolean;\n cancelOperation?: () => void;\n width?: number;\n height?: number | string;\n}\n\nexport interface ProgressWindowOptions {\n isCancelOperationAvailable?: boolean;\n cancelOperation?: () => void;\n width?: number;\n height?: number | string;\n}\n\n@Injectable()\nexport class ProgressWindowService {\n private readonly dialog = inject(MatDialog);\n\n showProgress(config: ProgressWindowConfig): ProgressDialogRef {\n const dialogRef = this.dialog.open(ProgressWindowComponent, {\n data: {\n isDeterminate: config.isDeterminate !== false,\n progress: config.progress,\n isCancelOperationAvailable: config.isCancelOperationAvailable || false,\n cancelOperation: config.cancelOperation || (() => { /* noop */ }),\n } as ProgressWindowData,\n width: config.width ? `${config.width}px` : '450px',\n disableClose: true,\n });\n\n if (config.title) {\n // MatDialog doesn't have a built-in title on the ref, but we set it via the component\n }\n\n return new ProgressDialogRef(dialogRef);\n }\n\n showDeterminateProgress(\n title: string,\n progress: Observable<ProgressValue>,\n options?: Partial<ProgressWindowOptions>\n ): ProgressDialogRef {\n return this.showProgress({\n title,\n isDeterminate: true,\n progress,\n ...options\n });\n }\n\n showIndeterminateProgress(\n title: string,\n progress: Observable<ProgressValue>,\n options?: Partial<ProgressWindowOptions>\n ): ProgressDialogRef {\n return this.showProgress({\n title,\n isDeterminate: false,\n progress,\n ...options\n });\n }\n}\n","export enum ImportStrategyDto {\n InsertOnly = 0,\n Upsert = 1\n}\n","/*\n * Public API Surface of shared-ui-legacy\n */\n\nexport * from './lib/shared-ui-module';\nexport * from './lib/abstract-details';\nexport * from './lib/common-validators';\nexport * from './lib/confirmation';\nexport * from './lib/progress-window';\nexport * from './lib/import-strategy';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meshmakers/shared-ui-legacy",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.470",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/cdk": "^21.
|
|
6
|
-
"@angular/common": "^21.0
|
|
7
|
-
"@angular/core": "^21.0
|
|
8
|
-
"@angular/forms": "^21.0
|
|
9
|
-
"@angular/material": "^21.
|
|
5
|
+
"@angular/cdk": "^21.2.0",
|
|
6
|
+
"@angular/common": "^21.2.0",
|
|
7
|
+
"@angular/core": "^21.2.0",
|
|
8
|
+
"@angular/forms": "^21.2.0",
|
|
9
|
+
"@angular/material": "^21.2.0",
|
|
10
10
|
"@meshmakers/shared-services": "*"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
@@ -120,6 +120,7 @@ interface ProgressWindowData {
|
|
|
120
120
|
declare class ProgressWindowComponent implements AfterViewInit, OnDestroy {
|
|
121
121
|
private readonly dialogRef;
|
|
122
122
|
private readonly data;
|
|
123
|
+
private readonly cdr;
|
|
123
124
|
private progressSubscription?;
|
|
124
125
|
isDeterminate: boolean;
|
|
125
126
|
isCancelOperationAvailable: boolean;
|