@fagon/ngx-intellitoolx 16.0.4 → 16.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +277 -7
- package/esm2022/lib/form-changes/can-component-deactivate.interface.mjs +2 -0
- package/esm2022/lib/form-changes/confirm-handler.type.mjs +2 -0
- package/esm2022/lib/form-changes/form-changes-tracker.service.mjs +47 -0
- package/esm2022/lib/form-changes/form-update-message-config.interface.mjs +2 -0
- package/esm2022/lib/form-changes/form-update-message.component.mjs +53 -0
- package/esm2022/lib/form-changes/unsaved-changes.guard.mjs +29 -0
- package/esm2022/lib/helpers/intellitoolx.helper.mjs +2 -3
- package/esm2022/public-api.mjs +15 -14
- package/fesm2022/fagon-ngx-intellitoolx.mjs +186 -134
- package/fesm2022/fagon-ngx-intellitoolx.mjs.map +1 -1
- package/lib/form-changes/can-component-deactivate.interface.d.ts +5 -0
- package/lib/form-changes/form-changes-tracker.service.d.ts +12 -0
- package/lib/{form-update → form-changes}/unsaved-changes.guard.d.ts +5 -5
- package/lib/helpers/intellitoolx.helper.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +11 -9
- package/esm2022/lib/form-update/confirm-handler.type.mjs +0 -2
- package/esm2022/lib/form-update/form-update-message-config.interface.mjs +0 -2
- package/esm2022/lib/form-update/form-update-message.component.mjs +0 -53
- package/esm2022/lib/form-update/unsaved-changes.guard.mjs +0 -19
- /package/lib/{form-update → form-changes}/confirm-handler.type.d.ts +0 -0
- /package/lib/{form-update → form-changes}/form-update-message-config.interface.d.ts +0 -0
- /package/lib/{form-update → form-changes}/form-update-message.component.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
# IntelliToolx
|
|
2
2
|
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
3
6
|

|
|
4
|
-

|
|
8
|
+

|
|
6
9
|

|
|
7
10
|

|
|
11
|
+

|
|
12
|
+

|
|
8
13
|
|
|
9
14
|
## Overview
|
|
10
15
|
|
|
@@ -17,7 +22,7 @@ Built with scalability, accessibility, and maintainability in mind, IntelliToolx
|
|
|
17
22
|
### Installation
|
|
18
23
|
|
|
19
24
|
```bash
|
|
20
|
-
npm
|
|
25
|
+
npm intall @fagon/ngx-intellitoolx
|
|
21
26
|
```
|
|
22
27
|
|
|
23
28
|
# IntelliToolxHelper
|
|
@@ -562,7 +567,7 @@ The component includes built-in messages for common validators:
|
|
|
562
567
|
| maxMonthYear | Date is later than allowed |
|
|
563
568
|
| minMonthYear | Date is earlier than allowed |
|
|
564
569
|
| exceededAllowedDateDifference | Date difference can only be one month |
|
|
565
|
-
|
|
|
570
|
+
| startDateAfterEndDate | Start date cannot be greater than end date |
|
|
566
571
|
|
|
567
572
|
### Adding Control Labels (User-Friendly Messages)
|
|
568
573
|
|
|
@@ -1124,7 +1129,7 @@ These validators return error keys compatible with the error component:
|
|
|
1124
1129
|
| passwordMismatchValidator | passwordMismatch |
|
|
1125
1130
|
| uniqueEmailsValidator | duplicateEmail |
|
|
1126
1131
|
|
|
1127
|
-
Best Practices
|
|
1132
|
+
** Best Practices **
|
|
1128
1133
|
|
|
1129
1134
|
- Use with Reactive Forms only
|
|
1130
1135
|
- Combine with required validators when necessary
|
|
@@ -1141,5 +1146,270 @@ this.form = new FormGroup({
|
|
|
1141
1146
|
});
|
|
1142
1147
|
```
|
|
1143
1148
|
|
|
1144
|
-
|
|
1145
|
-
|
|
1149
|
+
# Unsaved Changes Protection
|
|
1150
|
+
|
|
1151
|
+
Protect Angular routes and modals from accidental navigation or closing when there are unsaved changes.
|
|
1152
|
+
|
|
1153
|
+
Supports:
|
|
1154
|
+
|
|
1155
|
+
- Angular route navigation
|
|
1156
|
+
- Browser back button
|
|
1157
|
+
- Browser refresh / tab close
|
|
1158
|
+
- Modal close (NG Bootstrap / Material / custom)
|
|
1159
|
+
- Parent + child component setups
|
|
1160
|
+
- Nested forms
|
|
1161
|
+
|
|
1162
|
+
** The system is built around three core pieces: **
|
|
1163
|
+
|
|
1164
|
+
- UnsavedChangesTrackerService
|
|
1165
|
+
- UnsavedChangesGuard
|
|
1166
|
+
- CanComponentDeactivate interface (for route protection)
|
|
1167
|
+
|
|
1168
|
+
** Architecture: **
|
|
1169
|
+
|
|
1170
|
+
```
|
|
1171
|
+
Form → TrackerService → Guard → Confirmation → Continue / Block
|
|
1172
|
+
```
|
|
1173
|
+
|
|
1174
|
+
The library does NOT depend on your UI layer.
|
|
1175
|
+
Your app controls the confirmation modal.
|
|
1176
|
+
|
|
1177
|
+
### Core Exports
|
|
1178
|
+
|
|
1179
|
+
```ts
|
|
1180
|
+
import { UnsavedChangesTrackerService, UnsavedChangesGuard, CanComponentDeactivate } from "ngx-intellitoolx";
|
|
1181
|
+
```
|
|
1182
|
+
|
|
1183
|
+
### Protecting Angular Routes
|
|
1184
|
+
|
|
1185
|
+
Add Guard to Route
|
|
1186
|
+
|
|
1187
|
+
```ts
|
|
1188
|
+
{
|
|
1189
|
+
path: 'add-item',
|
|
1190
|
+
component: AddItemPageComponent,
|
|
1191
|
+
canDeactivate: [UnsavedChangesGuard]
|
|
1192
|
+
}
|
|
1193
|
+
```
|
|
1194
|
+
|
|
1195
|
+
### Implement Route Component
|
|
1196
|
+
|
|
1197
|
+
Your routed component must implement CanComponentDeactivate.
|
|
1198
|
+
|
|
1199
|
+
```ts
|
|
1200
|
+
import { UnsavedChangesTrackerService } from "ngx-intellitoolx";
|
|
1201
|
+
import { UtilityService } from "../services/utility.service";
|
|
1202
|
+
|
|
1203
|
+
@Component({
|
|
1204
|
+
selector: "app-add-item-page",
|
|
1205
|
+
template: `<app-item-form></app-item-form>`,
|
|
1206
|
+
})
|
|
1207
|
+
export class AddItemPageComponent implements CanComponentDeactivate {
|
|
1208
|
+
constructor(
|
|
1209
|
+
private tracker: UnsavedChangesTrackerService,
|
|
1210
|
+
private utils: UtilityService,
|
|
1211
|
+
) {}
|
|
1212
|
+
|
|
1213
|
+
confirmUnsavedChanges(): Promise<boolean> {
|
|
1214
|
+
return this.utils.confirmUnsavedChanges();
|
|
1215
|
+
}
|
|
1216
|
+
}
|
|
1217
|
+
```
|
|
1218
|
+
|
|
1219
|
+
### Track Form Changes (Child Component)
|
|
1220
|
+
|
|
1221
|
+
```ts
|
|
1222
|
+
@Component({
|
|
1223
|
+
selector: "app-item-form",
|
|
1224
|
+
templateUrl: "./item-form.component.html",
|
|
1225
|
+
})
|
|
1226
|
+
export class ItemFormComponent implements OnInit {
|
|
1227
|
+
form!: FormGroup;
|
|
1228
|
+
|
|
1229
|
+
constructor(
|
|
1230
|
+
private fb: FormBuilder,
|
|
1231
|
+
private tracker: UnsavedChangesTrackerService,
|
|
1232
|
+
) {}
|
|
1233
|
+
|
|
1234
|
+
ngOnInit(): void {
|
|
1235
|
+
this.form = this.fb.group({
|
|
1236
|
+
name: [""],
|
|
1237
|
+
description: [""],
|
|
1238
|
+
});
|
|
1239
|
+
|
|
1240
|
+
this.tracker.register(this.form);
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1243
|
+
save(): void {
|
|
1244
|
+
// API call
|
|
1245
|
+
this.tracker.markAsPristine();
|
|
1246
|
+
this.form.markAsPristine();
|
|
1247
|
+
}
|
|
1248
|
+
}
|
|
1249
|
+
```
|
|
1250
|
+
|
|
1251
|
+
### Protecting Browser Refresh / Tab Close
|
|
1252
|
+
|
|
1253
|
+
Add this inside the routed component:
|
|
1254
|
+
|
|
1255
|
+
```ts
|
|
1256
|
+
private unregister?: () => void;
|
|
1257
|
+
|
|
1258
|
+
constructor(
|
|
1259
|
+
private tracker: FormChangesTrackerService,
|
|
1260
|
+
public utilservice: UtilityService
|
|
1261
|
+
) {
|
|
1262
|
+
super();
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
ngOnInit() {
|
|
1266
|
+
this.unregister = IntelliToolxHelper.registerBeforeUnload(() =>
|
|
1267
|
+
this.tracker.hasChanges(),
|
|
1268
|
+
);
|
|
1269
|
+
}
|
|
1270
|
+
|
|
1271
|
+
confirmUnsavedChanges(): Promise<boolean> {
|
|
1272
|
+
return this.utilservice.confirmUnsavedChanges();
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
ngOnDestroy() {
|
|
1276
|
+
this.unregister?.();
|
|
1277
|
+
}
|
|
1278
|
+
```
|
|
1279
|
+
|
|
1280
|
+
### Protecting Modals (NG Bootstrap Example)
|
|
1281
|
+
|
|
1282
|
+
Route guards do NOT protect modals.
|
|
1283
|
+
You must intercept modal close manually.
|
|
1284
|
+
|
|
1285
|
+
Modal Form Component
|
|
1286
|
+
|
|
1287
|
+
```ts
|
|
1288
|
+
import { NgbActiveModal } from "@ng-bootstrap/ng-bootstrap";
|
|
1289
|
+
import { UnsavedChangesTrackerService } from "ngx-intellitoolx";
|
|
1290
|
+
import { UtilityService } from "../utility.service";
|
|
1291
|
+
|
|
1292
|
+
@Component({
|
|
1293
|
+
selector: "app-item-modal",
|
|
1294
|
+
templateUrl: "./item-modal.component.html",
|
|
1295
|
+
})
|
|
1296
|
+
export class ItemModalComponent implements OnInit {
|
|
1297
|
+
form!: FormGroup;
|
|
1298
|
+
|
|
1299
|
+
constructor(
|
|
1300
|
+
private fb: FormBuilder,
|
|
1301
|
+
private tracker: UnsavedChangesTrackerService,
|
|
1302
|
+
private utils: UtilityService,
|
|
1303
|
+
public activeModal: NgbActiveModal,
|
|
1304
|
+
) {}
|
|
1305
|
+
|
|
1306
|
+
ngOnInit(): void {
|
|
1307
|
+
this.form = this.fb.group({
|
|
1308
|
+
name: [""],
|
|
1309
|
+
description: [""],
|
|
1310
|
+
});
|
|
1311
|
+
|
|
1312
|
+
this.form.valueChanges.subscribe(() => {
|
|
1313
|
+
if (this.form.dirty) {
|
|
1314
|
+
this.tracker.markAsDirty();
|
|
1315
|
+
}
|
|
1316
|
+
});
|
|
1317
|
+
}
|
|
1318
|
+
|
|
1319
|
+
async closeModal() {
|
|
1320
|
+
if (this.tracker.hasChanges()) {
|
|
1321
|
+
const confirmed = await this.utils.confirmUnsavedChanges();
|
|
1322
|
+
|
|
1323
|
+
if (!confirmed) {
|
|
1324
|
+
return; // cancel close
|
|
1325
|
+
}
|
|
1326
|
+
}
|
|
1327
|
+
|
|
1328
|
+
this.activeModal.dismiss();
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1331
|
+
save(): void {
|
|
1332
|
+
this.tracker.markAsPristine();
|
|
1333
|
+
this.form.markAsPristine();
|
|
1334
|
+
this.activeModal.close("saved");
|
|
1335
|
+
}
|
|
1336
|
+
}
|
|
1337
|
+
```
|
|
1338
|
+
|
|
1339
|
+
### Modal Template
|
|
1340
|
+
|
|
1341
|
+
```html
|
|
1342
|
+
<div class="modal-header">
|
|
1343
|
+
<h5 class="modal-title">Add Item</h5>
|
|
1344
|
+
<button type="button" class="btn-close" (click)="closeModal()"></button>
|
|
1345
|
+
</div>
|
|
1346
|
+
|
|
1347
|
+
<div class="modal-body">
|
|
1348
|
+
<form [formGroup]="form">
|
|
1349
|
+
<input formControlName="name" />
|
|
1350
|
+
<textarea formControlName="description"></textarea>
|
|
1351
|
+
</form>
|
|
1352
|
+
</div>
|
|
1353
|
+
|
|
1354
|
+
<div class="modal-footer">
|
|
1355
|
+
<button class="btn btn-secondary" (click)="closeModal()">Cancel</button>
|
|
1356
|
+
|
|
1357
|
+
<button class="btn btn-primary" (click)="save()">Save</button>
|
|
1358
|
+
</div>
|
|
1359
|
+
```
|
|
1360
|
+
|
|
1361
|
+
** How It Works **
|
|
1362
|
+
|
|
1363
|
+
| Action | What Happens |
|
|
1364
|
+
| -------------------- | --------------------- |
|
|
1365
|
+
| User edits form | Tracker marks dirty |
|
|
1366
|
+
| User navigates route | Guard checks tracker |
|
|
1367
|
+
| User refreshes page | beforeunload triggers |
|
|
1368
|
+
| User closes modal | Manual interception |
|
|
1369
|
+
| User saves form | Tracker resets |
|
|
1370
|
+
|
|
1371
|
+
** Parent + Child Structure **
|
|
1372
|
+
|
|
1373
|
+
If your form is nested:
|
|
1374
|
+
|
|
1375
|
+
```
|
|
1376
|
+
RouteComponent
|
|
1377
|
+
└── Modal
|
|
1378
|
+
└── Form
|
|
1379
|
+
|
|
1380
|
+
Child form → marks tracker dirty
|
|
1381
|
+
|
|
1382
|
+
Route component → implements guard interface
|
|
1383
|
+
|
|
1384
|
+
Modal → manually checks tracker before close
|
|
1385
|
+
```
|
|
1386
|
+
|
|
1387
|
+
** Best Practices **
|
|
1388
|
+
|
|
1389
|
+
- Always call markAsPristine() after successful save
|
|
1390
|
+
- Always intercept modal close
|
|
1391
|
+
- Keep confirmation UI inside the consuming app
|
|
1392
|
+
- Do not couple library to UI services
|
|
1393
|
+
|
|
1394
|
+
** Confirmation Modal Example (App Layer) **
|
|
1395
|
+
|
|
1396
|
+
```ts
|
|
1397
|
+
@Injectable({ providedIn: "root" })
|
|
1398
|
+
export class UtilityService {
|
|
1399
|
+
constructor(private modal: NgbModal) {}
|
|
1400
|
+
|
|
1401
|
+
confirmUnsavedChanges(): Promise<boolean> {
|
|
1402
|
+
const modalRef = this.modal.open(UnsavedConfirmComponent, {
|
|
1403
|
+
backdrop: "static",
|
|
1404
|
+
});
|
|
1405
|
+
|
|
1406
|
+
return modalRef.result.then(() => true).catch(() => false);
|
|
1407
|
+
}
|
|
1408
|
+
}
|
|
1409
|
+
```
|
|
1410
|
+
|
|
1411
|
+
📄 License
|
|
1412
|
+
|
|
1413
|
+
```
|
|
1414
|
+
MIT © Fagon Technologies
|
|
1415
|
+
```
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuLWNvbXBvbmVudC1kZWFjdGl2YXRlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZm9ybS1jaGFuZ2VzL2Nhbi1jb21wb25lbnQtZGVhY3RpdmF0ZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2FuQ29tcG9uZW50RGVhY3RpdmF0ZSB7XG4gIGhhc1Vuc2F2ZWRDaGFuZ2VzOiAoKSA9PiBib29sZWFuO1xuICBjb25maXJtVW5zYXZlZENoYW5nZXM/OiAoKSA9PiBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbjtcbiAgZ2V0VW5zYXZlZE1lc3NhZ2U/OiAoKSA9PiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1oYW5kbGVyLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2Zvcm0tY2hhbmdlcy9jb25maXJtLWhhbmRsZXIudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ29uZmlybUhhbmRsZXIgPSAoKSA9PiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPjtcbiJdfQ==
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { IntelliToolxHelper } from '../helpers/intellitoolx.helper';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class FormChangesTrackerService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.trackedForms = new Map();
|
|
7
|
+
}
|
|
8
|
+
register(form) {
|
|
9
|
+
const currentRawValue = form.getRawValue?.() ?? form.value;
|
|
10
|
+
this.trackedForms.set(form, {
|
|
11
|
+
initialValue: IntelliToolxHelper.clone(currentRawValue),
|
|
12
|
+
});
|
|
13
|
+
form.markAsPristine();
|
|
14
|
+
}
|
|
15
|
+
hasChanges() {
|
|
16
|
+
// We iterate over entries [form, metadata]
|
|
17
|
+
for (const [form, { initialValue }] of this.trackedForms.entries()) {
|
|
18
|
+
if (IntelliToolxHelper.formHasChanges(initialValue, form)) {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
unregister(form) {
|
|
25
|
+
this.trackedForms.delete(form);
|
|
26
|
+
}
|
|
27
|
+
reset(form) {
|
|
28
|
+
const entry = this.trackedForms.get(form);
|
|
29
|
+
if (!entry)
|
|
30
|
+
return;
|
|
31
|
+
const currentRawValue = form.getRawValue?.() ?? form.value;
|
|
32
|
+
entry.initialValue = IntelliToolxHelper.clone(currentRawValue);
|
|
33
|
+
form.markAsPristine();
|
|
34
|
+
}
|
|
35
|
+
clearAll() {
|
|
36
|
+
this.trackedForms.clear();
|
|
37
|
+
}
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormChangesTrackerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
39
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormChangesTrackerService, providedIn: 'root' }); }
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormChangesTrackerService, decorators: [{
|
|
42
|
+
type: Injectable,
|
|
43
|
+
args: [{
|
|
44
|
+
providedIn: 'root',
|
|
45
|
+
}]
|
|
46
|
+
}] });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jaGFuZ2VzLXRyYWNrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZm9ybS1jaGFuZ2VzL2Zvcm0tY2hhbmdlcy10cmFja2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFNcEUsTUFBTSxPQUFPLHlCQUF5QjtJQUh0QztRQUlVLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBSzNCLENBQUM7S0F1Q0w7SUFyQ0MsUUFBUSxDQUFDLElBQXFCO1FBQzVCLE1BQU0sZUFBZSxHQUFJLElBQVksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFcEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFO1lBQzFCLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO1NBQ3hELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsVUFBVTtRQUNSLDJDQUEyQztRQUMzQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbEUsSUFBSSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUN6RCxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBcUI7UUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFxQjtRQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFFbkIsTUFBTSxlQUFlLEdBQUksSUFBWSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwRSxLQUFLLENBQUMsWUFBWSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVCLENBQUM7K0dBNUNVLHlCQUF5QjttSEFBekIseUJBQXlCLGNBRnhCLE1BQU07OzRGQUVQLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnRlbGxpVG9vbHhIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL2ludGVsbGl0b29seC5oZWxwZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNoYW5nZXNUcmFja2VyU2VydmljZSB7XG4gIHByaXZhdGUgdHJhY2tlZEZvcm1zID0gbmV3IE1hcDxcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAge1xuICAgICAgaW5pdGlhbFZhbHVlOiBhbnk7XG4gICAgfVxuICA+KCk7XG5cbiAgcmVnaXN0ZXIoZm9ybTogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgY29uc3QgY3VycmVudFJhd1ZhbHVlID0gKGZvcm0gYXMgYW55KS5nZXRSYXdWYWx1ZT8uKCkgPz8gZm9ybS52YWx1ZTtcblxuICAgIHRoaXMudHJhY2tlZEZvcm1zLnNldChmb3JtLCB7XG4gICAgICBpbml0aWFsVmFsdWU6IEludGVsbGlUb29seEhlbHBlci5jbG9uZShjdXJyZW50UmF3VmFsdWUpLFxuICAgIH0pO1xuXG4gICAgZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuICB9XG5cbiAgaGFzQ2hhbmdlcygpOiBib29sZWFuIHtcbiAgICAvLyBXZSBpdGVyYXRlIG92ZXIgZW50cmllcyBbZm9ybSwgbWV0YWRhdGFdXG4gICAgZm9yIChjb25zdCBbZm9ybSwgeyBpbml0aWFsVmFsdWUgfV0gb2YgdGhpcy50cmFja2VkRm9ybXMuZW50cmllcygpKSB7XG4gICAgICBpZiAoSW50ZWxsaVRvb2x4SGVscGVyLmZvcm1IYXNDaGFuZ2VzKGluaXRpYWxWYWx1ZSwgZm9ybSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHVucmVnaXN0ZXIoZm9ybTogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgdGhpcy50cmFja2VkRm9ybXMuZGVsZXRlKGZvcm0pO1xuICB9XG5cbiAgcmVzZXQoZm9ybTogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgY29uc3QgZW50cnkgPSB0aGlzLnRyYWNrZWRGb3Jtcy5nZXQoZm9ybSk7XG4gICAgaWYgKCFlbnRyeSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY3VycmVudFJhd1ZhbHVlID0gKGZvcm0gYXMgYW55KS5nZXRSYXdWYWx1ZT8uKCkgPz8gZm9ybS52YWx1ZTtcbiAgICBlbnRyeS5pbml0aWFsVmFsdWUgPSBJbnRlbGxpVG9vbHhIZWxwZXIuY2xvbmUoY3VycmVudFJhd1ZhbHVlKTtcblxuICAgIGZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgfVxuXG4gIGNsZWFyQWxsKCkge1xuICAgIHRoaXMudHJhY2tlZEZvcm1zLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS11cGRhdGUtbWVzc2FnZS1jb25maWcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9mb3JtLWNoYW5nZXMvZm9ybS11cGRhdGUtbWVzc2FnZS1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEludGVsbGl0b29seEZvcm1VcGRhdGVNZXNzYWdlQ29uZmlnIHtcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gIGJvcmRlckNvbG9yPzogc3RyaW5nO1xuICBmb250V2VpZ2h0PzogbnVtYmVyO1xuICBib3JkZXJSYWRpdXM/OiBzdHJpbmc7XG4gIHBhZGRpbmc/OiBzdHJpbmc7XG4gIGljb25BbmRNZXNzYWdlR2FwPzogc3RyaW5nO1xuICBpY29uU2l6ZT86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class IntellitoolxFormUpdateMessage {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.defaultMessage = 'There are no changes to save. Please modify a field to continue.';
|
|
8
|
+
}
|
|
9
|
+
get containerStyles() {
|
|
10
|
+
return {
|
|
11
|
+
padding: this.itxFormUpdateMessageConfig?.padding || '1rem',
|
|
12
|
+
gap: this.itxFormUpdateMessageConfig?.iconAndMessageGap || '0.5rem',
|
|
13
|
+
color: this.itxFormUpdateMessageConfig?.textColor || '#963C00',
|
|
14
|
+
border: '1px solid ' +
|
|
15
|
+
(this.itxFormUpdateMessageConfig?.borderColor || '#f3cd5a'),
|
|
16
|
+
'background-color': this.itxFormUpdateMessageConfig?.backgroundColor || '#fff3cd',
|
|
17
|
+
'font-weight': String(this.itxFormUpdateMessageConfig?.fontWeight || 400),
|
|
18
|
+
'border-radius': this.itxFormUpdateMessageConfig?.borderRadius || '0.5rem',
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
get iconStyles() {
|
|
22
|
+
return {
|
|
23
|
+
'font-size': this.itxFormUpdateMessageConfig?.iconSize || '1rem',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IntellitoolxFormUpdateMessage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: IntellitoolxFormUpdateMessage, isStandalone: true, selector: "itx-form-update-message", inputs: { itxFormUpdateMessageConfig: "itxFormUpdateMessageConfig" }, ngImport: i0, template: `
|
|
28
|
+
<div class="form-update-message" role="alert" [ngStyle]="containerStyles">
|
|
29
|
+
<span class="form-update-icon" aria-hidden="true" [ngStyle]="iconStyles"
|
|
30
|
+
>⚠</span
|
|
31
|
+
>
|
|
32
|
+
<span>
|
|
33
|
+
{{ itxFormUpdateMessageConfig?.message || defaultMessage }}
|
|
34
|
+
</span>
|
|
35
|
+
</div>
|
|
36
|
+
`, isInline: true, styles: [".form-update-message{display:flex;margin-top:.5rem}.form-update-icon{flex-shrink:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IntellitoolxFormUpdateMessage, decorators: [{
|
|
39
|
+
type: Component,
|
|
40
|
+
args: [{ selector: 'itx-form-update-message', standalone: true, imports: [CommonModule], template: `
|
|
41
|
+
<div class="form-update-message" role="alert" [ngStyle]="containerStyles">
|
|
42
|
+
<span class="form-update-icon" aria-hidden="true" [ngStyle]="iconStyles"
|
|
43
|
+
>⚠</span
|
|
44
|
+
>
|
|
45
|
+
<span>
|
|
46
|
+
{{ itxFormUpdateMessageConfig?.message || defaultMessage }}
|
|
47
|
+
</span>
|
|
48
|
+
</div>
|
|
49
|
+
`, styles: [".form-update-message{display:flex;margin-top:.5rem}.form-update-icon{flex-shrink:0}\n"] }]
|
|
50
|
+
}], propDecorators: { itxFormUpdateMessageConfig: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}] } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS11cGRhdGUtbWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2Zvcm0tY2hhbmdlcy9mb3JtLXVwZGF0ZS1tZXNzYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQWtCL0MsTUFBTSxPQUFPLDZCQUE2QjtJQWhCMUM7UUFrQkUsbUJBQWMsR0FDWixrRUFBa0UsQ0FBQztLQXVCdEU7SUFyQkMsSUFBSSxlQUFlO1FBQ2pCLE9BQU87WUFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixFQUFFLE9BQU8sSUFBSSxNQUFNO1lBQzNELEdBQUcsRUFBRSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsaUJBQWlCLElBQUksUUFBUTtZQUNuRSxLQUFLLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixFQUFFLFNBQVMsSUFBSSxTQUFTO1lBQzlELE1BQU0sRUFDSixZQUFZO2dCQUNaLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLFdBQVcsSUFBSSxTQUFTLENBQUM7WUFDN0Qsa0JBQWtCLEVBQ2hCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxlQUFlLElBQUksU0FBUztZQUMvRCxhQUFhLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxVQUFVLElBQUksR0FBRyxDQUFDO1lBQ3pFLGVBQWUsRUFDYixJQUFJLENBQUMsMEJBQTBCLEVBQUUsWUFBWSxJQUFJLFFBQVE7U0FDNUQsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPO1lBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQywwQkFBMEIsRUFBRSxRQUFRLElBQUksTUFBTTtTQUNqRSxDQUFDO0lBQ0osQ0FBQzsrR0F6QlUsNkJBQTZCO21HQUE3Qiw2QkFBNkIseUpBWDlCOzs7Ozs7Ozs7R0FTVCw4SkFYUyxZQUFZOzs0RkFhWCw2QkFBNkI7a0JBaEJ6QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFFYjs7Ozs7Ozs7O0dBU1Q7OEJBR1EsMEJBQTBCO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW50ZWxsaXRvb2x4Rm9ybVVwZGF0ZU1lc3NhZ2VDb25maWcgfSBmcm9tICcuL2Zvcm0tdXBkYXRlLW1lc3NhZ2UtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpdHgtZm9ybS11cGRhdGUtbWVzc2FnZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLXVwZGF0ZS1tZXNzYWdlLmNvbXBvbmVudC5jc3MnXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS11cGRhdGUtbWVzc2FnZVwiIHJvbGU9XCJhbGVydFwiIFtuZ1N0eWxlXT1cImNvbnRhaW5lclN0eWxlc1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLXVwZGF0ZS1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25nU3R5bGVdPVwiaWNvblN0eWxlc1wiXG4gICAgICAgID7imqA8L3NwYW5cbiAgICAgID5cbiAgICAgIDxzcGFuPlxuICAgICAgICB7eyBpdHhGb3JtVXBkYXRlTWVzc2FnZUNvbmZpZz8ubWVzc2FnZSB8fCBkZWZhdWx0TWVzc2FnZSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBJbnRlbGxpdG9vbHhGb3JtVXBkYXRlTWVzc2FnZSB7XG4gIEBJbnB1dCgpIGl0eEZvcm1VcGRhdGVNZXNzYWdlQ29uZmlnPzogSW50ZWxsaXRvb2x4Rm9ybVVwZGF0ZU1lc3NhZ2VDb25maWc7XG4gIGRlZmF1bHRNZXNzYWdlID1cbiAgICAnVGhlcmUgYXJlIG5vIGNoYW5nZXMgdG8gc2F2ZS4gUGxlYXNlIG1vZGlmeSBhIGZpZWxkIHRvIGNvbnRpbnVlLic7XG5cbiAgZ2V0IGNvbnRhaW5lclN0eWxlcygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFkZGluZzogdGhpcy5pdHhGb3JtVXBkYXRlTWVzc2FnZUNvbmZpZz8ucGFkZGluZyB8fCAnMXJlbScsXG4gICAgICBnYXA6IHRoaXMuaXR4Rm9ybVVwZGF0ZU1lc3NhZ2VDb25maWc/Lmljb25BbmRNZXNzYWdlR2FwIHx8ICcwLjVyZW0nLFxuICAgICAgY29sb3I6IHRoaXMuaXR4Rm9ybVVwZGF0ZU1lc3NhZ2VDb25maWc/LnRleHRDb2xvciB8fCAnIzk2M0MwMCcsXG4gICAgICBib3JkZXI6XG4gICAgICAgICcxcHggc29saWQgJyArXG4gICAgICAgICh0aGlzLml0eEZvcm1VcGRhdGVNZXNzYWdlQ29uZmlnPy5ib3JkZXJDb2xvciB8fCAnI2YzY2Q1YScpLFxuICAgICAgJ2JhY2tncm91bmQtY29sb3InOlxuICAgICAgICB0aGlzLml0eEZvcm1VcGRhdGVNZXNzYWdlQ29uZmlnPy5iYWNrZ3JvdW5kQ29sb3IgfHwgJyNmZmYzY2QnLFxuICAgICAgJ2ZvbnQtd2VpZ2h0JzogU3RyaW5nKHRoaXMuaXR4Rm9ybVVwZGF0ZU1lc3NhZ2VDb25maWc/LmZvbnRXZWlnaHQgfHwgNDAwKSxcbiAgICAgICdib3JkZXItcmFkaXVzJzpcbiAgICAgICAgdGhpcy5pdHhGb3JtVXBkYXRlTWVzc2FnZUNvbmZpZz8uYm9yZGVyUmFkaXVzIHx8ICcwLjVyZW0nLFxuICAgIH07XG4gIH1cblxuICBnZXQgaWNvblN0eWxlcygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2ZvbnQtc2l6ZSc6IHRoaXMuaXR4Rm9ybVVwZGF0ZU1lc3NhZ2VDb25maWc/Lmljb25TaXplIHx8ICcxcmVtJyxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./form-changes-tracker.service";
|
|
4
|
+
export class UnsavedChangesGuard {
|
|
5
|
+
constructor(tracker) {
|
|
6
|
+
this.tracker = tracker;
|
|
7
|
+
}
|
|
8
|
+
async canDeactivate(component) {
|
|
9
|
+
if (!this.tracker.hasChanges()) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
// Component provides its own confirmation (modal)
|
|
13
|
+
if (component.confirmUnsavedChanges) {
|
|
14
|
+
const result = component.confirmUnsavedChanges();
|
|
15
|
+
return typeof result === 'boolean' ? result : await result;
|
|
16
|
+
}
|
|
17
|
+
const message = component.getUnsavedMessage?.() ||
|
|
18
|
+
'You have unsaved changes. Leave without saving?';
|
|
19
|
+
// Fallback browser confirm
|
|
20
|
+
return confirm(message);
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UnsavedChangesGuard, deps: [{ token: i1.FormChangesTrackerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
23
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UnsavedChangesGuard, providedIn: 'root' }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UnsavedChangesGuard, decorators: [{
|
|
26
|
+
type: Injectable,
|
|
27
|
+
args: [{ providedIn: 'root' }]
|
|
28
|
+
}], ctorParameters: function () { return [{ type: i1.FormChangesTrackerService }]; } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zYXZlZC1jaGFuZ2VzLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9mb3JtLWNoYW5nZXMvdW5zYXZlZC1jaGFuZ2VzLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW9CLE9BQWtDO1FBQWxDLFlBQU8sR0FBUCxPQUFPLENBQTJCO0lBQUcsQ0FBQztJQUUxRCxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQWlDO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxrREFBa0Q7UUFDbEQsSUFBSSxTQUFTLENBQUMscUJBQXFCLEVBQUU7WUFDbkMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDakQsT0FBTyxPQUFPLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxNQUFNLENBQUM7U0FDNUQ7UUFFRCxNQUFNLE9BQU8sR0FDWCxTQUFTLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUMvQixpREFBaUQsQ0FBQztRQUNwRCwyQkFBMkI7UUFDM0IsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsQ0FBQzsrR0FsQlUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FETixNQUFNOzs0RkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkRlYWN0aXZhdGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2FuQ29tcG9uZW50RGVhY3RpdmF0ZSB9IGZyb20gJy4vY2FuLWNvbXBvbmVudC1kZWFjdGl2YXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGb3JtQ2hhbmdlc1RyYWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi9mb3JtLWNoYW5nZXMtdHJhY2tlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBVbnNhdmVkQ2hhbmdlc0d1YXJkIGltcGxlbWVudHMgQ2FuRGVhY3RpdmF0ZTxDYW5Db21wb25lbnREZWFjdGl2YXRlPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhY2tlcjogRm9ybUNoYW5nZXNUcmFja2VyU2VydmljZSkge31cblxuICBhc3luYyBjYW5EZWFjdGl2YXRlKGNvbXBvbmVudDogQ2FuQ29tcG9uZW50RGVhY3RpdmF0ZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghdGhpcy50cmFja2VyLmhhc0NoYW5nZXMoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIENvbXBvbmVudCBwcm92aWRlcyBpdHMgb3duIGNvbmZpcm1hdGlvbiAobW9kYWwpXG4gICAgaWYgKGNvbXBvbmVudC5jb25maXJtVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGNvbXBvbmVudC5jb25maXJtVW5zYXZlZENoYW5nZXMoKTtcbiAgICAgIHJldHVybiB0eXBlb2YgcmVzdWx0ID09PSAnYm9vbGVhbicgPyByZXN1bHQgOiBhd2FpdCByZXN1bHQ7XG4gICAgfVxuXG4gICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICBjb21wb25lbnQuZ2V0VW5zYXZlZE1lc3NhZ2U/LigpIHx8XG4gICAgICAnWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBMZWF2ZSB3aXRob3V0IHNhdmluZz8nO1xuICAgIC8vIEZhbGxiYWNrIGJyb3dzZXIgY29uZmlybVxuICAgIHJldHVybiBjb25maXJtKG1lc3NhZ2UpO1xuICB9XG59XG4iXX0=
|
|
@@ -86,7 +86,6 @@ export class IntelliToolxHelper {
|
|
|
86
86
|
const result = confirmHandler();
|
|
87
87
|
return typeof result === 'boolean' ? result : await result;
|
|
88
88
|
}
|
|
89
|
-
// fallback (only if handler not provided)
|
|
90
89
|
return confirm('You have unsaved changes. Continue?');
|
|
91
90
|
}
|
|
92
91
|
static registerBeforeUnload(shouldBlock, message) {
|
|
@@ -94,7 +93,7 @@ export class IntelliToolxHelper {
|
|
|
94
93
|
if (!shouldBlock())
|
|
95
94
|
return;
|
|
96
95
|
event.preventDefault();
|
|
97
|
-
event.returnValue = message
|
|
96
|
+
event.returnValue = message ?? '';
|
|
98
97
|
};
|
|
99
98
|
window.addEventListener('beforeunload', handler);
|
|
100
99
|
return () => window.removeEventListener('beforeunload', handler);
|
|
@@ -153,4 +152,4 @@ export class IntelliToolxHelper {
|
|
|
153
152
|
return value;
|
|
154
153
|
}
|
|
155
154
|
}
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWxsaXRvb2x4LmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvaGVscGVycy9pbnRlbGxpdG9vbHguaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBR3hCLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsTUFBTSxDQUFDLHVCQUF1QixDQUFDLElBQXFCO1FBQ2xELE1BQU0sWUFBWSxHQUFJLElBQVksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDakUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUF3QjtRQUMzQyxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUU7WUFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzFDLENBQUM7WUFDRixPQUFPO1NBQ1I7UUFFRCxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUU7WUFDaEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM3RCxPQUFPO1NBQ1I7UUFFRCxJQUFJLE9BQU8sWUFBWSxXQUFXLEVBQUU7WUFDbEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUM1QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtnQkFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUN0RDtTQUNGO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBUyxFQUFFLElBQVM7UUFDbkMsbURBQW1EO1FBQ25ELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzVDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCwyQkFBMkI7UUFDM0IsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ3hELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0QztRQUVELDJCQUEyQjtRQUMzQixJQUFJLElBQUksS0FBSyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFL0Isa0JBQWtCO1FBQ2xCLElBQUksSUFBSSxZQUFZLElBQUksSUFBSSxJQUFJLFlBQVksSUFBSSxFQUFFO1lBQ2hELE9BQU8sQ0FDTCxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJO2dCQUN2QixJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJO2dCQUN2QixJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJO2dCQUN2QixJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQ3hDLENBQUM7U0FDSDtRQUVELDZCQUE2QjtRQUM3QixJQUNFLE9BQU8sSUFBSSxLQUFLLFFBQVE7WUFDeEIsT0FBTyxJQUFJLEtBQUssUUFBUTtZQUN4QixJQUFJLEtBQUssSUFBSTtZQUNiLElBQUksS0FBSyxJQUFJLEVBQ2I7WUFDQSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsU0FBUztRQUNULElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzlDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUM5QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pEO1FBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRWhELEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1NBQ3pEO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFVO1FBQ3ZCLE9BQU8sQ0FDTCxLQUFLLEtBQUssSUFBSTtZQUNkLEtBQUssS0FBSyxTQUFTO1lBQ25CLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FDbkQsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQVU7UUFDckIsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxtQkFBbUI7SUFDcEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBaUIsRUFBRSxJQUFxQjtRQUM1RCxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRXhCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQzNCLFVBQW1CLEVBQ25CLGNBQStCO1FBRS9CLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFN0IsSUFBSSxjQUFjLEVBQUU7WUFDbEIsTUFBTSxNQUFNLEdBQUcsY0FBYyxFQUFFLENBQUM7WUFDaEMsT0FBTyxPQUFPLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxNQUFNLENBQUM7U0FDNUQ7UUFFRCwwQ0FBMEM7UUFDMUMsT0FBTyxPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFdBQTBCLEVBQUUsT0FBZ0I7UUFDdEUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUF3QixFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFBRSxPQUFPO1lBRTNCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsV0FBVyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDO1FBRUYsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVqRCxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQ25CLElBQXFCLEVBQ3JCLElBQVk7UUFFWixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRWhDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFBSSxPQUFPLEdBQTJCLElBQUksQ0FBQztRQUUzQyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRTtZQUM5QixJQUFJLENBQUMsT0FBTztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUUxQiwyQ0FBMkM7WUFDM0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxZQUFZLFNBQVMsRUFBRTtnQkFDakQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDN0I7aUJBQU0sSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFO2dCQUN2QyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNoQztpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sWUFBWSxXQUFXLENBQUMsQ0FBQyxDQUFFLE9BQTBCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM3RSxDQUFDO0lBRUQsTUFBTSxDQUFDLG9CQUFvQixDQUFDLElBQVU7UUFDcEMsT0FBTyxJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBRWhDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFM0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ25CLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFnQixDQUFDO2dCQUM3QyxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQztZQUVGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDekIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hCLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDckIsSUFBUyxFQUNULFdBQW1CLEVBQ25CLGVBQXVCO1FBRXZCLE9BQU8sSUFBSSxFQUFFLFVBQVUsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFRCxNQUFNLENBQUMsdUJBQXVCLENBQzVCLEtBQW9DO1FBRXBDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsSUFBSTtnQkFDRixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFNLENBQUM7YUFDL0I7WUFBQyxNQUFNO2dCQUNOLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUVELE9BQU8sS0FBVSxDQUFDO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUFycmF5LFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb25maXJtSGFuZGxlciB9IGZyb20gJy4uL2Zvcm0tdXBkYXRlL2NvbmZpcm0taGFuZGxlci50eXBlJztcblxuZXhwb3J0IGNsYXNzIEludGVsbGlUb29seEhlbHBlciB7XG4gIHN0YXRpYyBjYXB0dXJlSW5pdGlhbEZvcm1WYWx1ZShmb3JtOiBBYnN0cmFjdENvbnRyb2wpOiBhbnkge1xuICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IChmb3JtIGFzIGFueSkuZ2V0UmF3VmFsdWU/LigpID8/IGZvcm0udmFsdWU7XG4gICAgZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuICAgIHJldHVybiB0aGlzLmNsb25lKGluaXRpYWxWYWx1ZSk7XG4gIH1cblxuICBzdGF0aWMgdHJpbUZvcm1Hcm91cChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgT2JqZWN0LmtleXMoY29udHJvbC5jb250cm9scykuZm9yRWFjaCgoa2V5KSA9PlxuICAgICAgICB0aGlzLnRyaW1Gb3JtR3JvdXAoY29udHJvbC5jb250cm9sc1trZXldKSxcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgIGNvbnRyb2wuY29udHJvbHMuZm9yRWFjaCgoY3RybCkgPT4gdGhpcy50cmltRm9ybUdyb3VwKGN0cmwpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb250cm9sLnNldFZhbHVlKHZhbHVlLnRyaW0oKSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBkZWVwRXF1YWwob2JqMTogYW55LCBvYmoyOiBhbnkpOiBib29sZWFuIHtcbiAgICAvLyB0cmVhdCBudWxsLCB1bmRlZmluZWQsIGFuZCBlbXB0eSBzdHJpbmcgYXMgZXF1YWxcbiAgICBpZiAodGhpcy5pc0VtcHR5KG9iajEpICYmIHRoaXMuaXNFbXB0eShvYmoyKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gbm9ybWFsaXplIG51bWVyaWMgdmFsdWVzXG4gICAgaWYgKHR5cGVvZiBvYmoxID09PSAnbnVtYmVyJyAmJiB0eXBlb2Ygb2JqMiA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBOdW1iZXIob2JqMSkgPT09IE51bWJlcihvYmoyKTtcbiAgICB9XG5cbiAgICAvLyBzdHJpY3QgZXF1YWxpdHkgc2hvcnRjdXRcbiAgICBpZiAob2JqMSA9PT0gb2JqMikgcmV0dXJuIHRydWU7XG5cbiAgICAvLyBGaWxlIGNvbXBhcmlzb25cbiAgICBpZiAob2JqMSBpbnN0YW5jZW9mIEZpbGUgJiYgb2JqMiBpbnN0YW5jZW9mIEZpbGUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG9iajEubmFtZSA9PT0gb2JqMi5uYW1lICYmXG4gICAgICAgIG9iajEuc2l6ZSA9PT0gb2JqMi5zaXplICYmXG4gICAgICAgIG9iajEudHlwZSA9PT0gb2JqMi50eXBlICYmXG4gICAgICAgIG9iajEubGFzdE1vZGlmaWVkID09PSBvYmoyLmxhc3RNb2RpZmllZFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBpZiBub3Qgb2JqZWN0cyDihpIgbm90IGVxdWFsXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIG9iajEgIT09ICdvYmplY3QnIHx8XG4gICAgICB0eXBlb2Ygb2JqMiAhPT0gJ29iamVjdCcgfHxcbiAgICAgIG9iajEgPT09IG51bGwgfHxcbiAgICAgIG9iajIgPT09IG51bGxcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBhcnJheXNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmoxKSAmJiBBcnJheS5pc0FycmF5KG9iajIpKSB7XG4gICAgICBpZiAob2JqMS5sZW5ndGggIT09IG9iajIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gb2JqMS5ldmVyeSgodiwgaSkgPT4gdGhpcy5kZWVwRXF1YWwodiwgb2JqMltpXSkpO1xuICAgIH1cblxuICAgIGNvbnN0IGtleXMxID0gT2JqZWN0LmtleXMob2JqMSk7XG4gICAgY29uc3Qga2V5czIgPSBPYmplY3Qua2V5cyhvYmoyKTtcblxuICAgIGlmIChrZXlzMS5sZW5ndGggIT09IGtleXMyLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5czEpIHtcbiAgICAgIGlmICgha2V5czIuaW5jbHVkZXMoa2V5KSkgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKCF0aGlzLmRlZXBFcXVhbChvYmoxW2tleV0sIG9iajJba2V5XSkpIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN0YXRpYyBpc0VtcHR5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdmFsdWUgPT09IG51bGwgfHxcbiAgICAgIHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSA9PT0gJycpXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBjbG9uZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTsgLy8gQW5ndWxhciAxNCsgc2FmZVxuICB9XG5cbiAgc3RhdGljIGZvcm1IYXNDaGFuZ2VzKGluaXRpYWxWYWx1ZTogYW55LCBmb3JtOiBBYnN0cmFjdENvbnRyb2wpOiBib29sZWFuIHtcbiAgICBpZiAoIWZvcm0pIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGN1cnJlbnQgPSBmb3JtLmdldFJhd1ZhbHVlKCk7XG4gICAgcmV0dXJuICF0aGlzLmRlZXBFcXVhbChpbml0aWFsVmFsdWUsIGN1cnJlbnQpO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGNvbmZpcm1JZkNoYW5nZWQoXG4gICAgaGFzQ2hhbmdlczogYm9vbGVhbixcbiAgICBjb25maXJtSGFuZGxlcj86IENvbmZpcm1IYW5kbGVyLFxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoIWhhc0NoYW5nZXMpIHJldHVybiB0cnVlO1xuXG4gICAgaWYgKGNvbmZpcm1IYW5kbGVyKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBjb25maXJtSGFuZGxlcigpO1xuICAgICAgcmV0dXJuIHR5cGVvZiByZXN1bHQgPT09ICdib29sZWFuJyA/IHJlc3VsdCA6IGF3YWl0IHJlc3VsdDtcbiAgICB9XG5cbiAgICAvLyBmYWxsYmFjayAob25seSBpZiBoYW5kbGVyIG5vdCBwcm92aWRlZClcbiAgICByZXR1cm4gY29uZmlybSgnWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBDb250aW51ZT8nKTtcbiAgfVxuXG4gIHN0YXRpYyByZWdpc3RlckJlZm9yZVVubG9hZChzaG91bGRCbG9jazogKCkgPT4gYm9vbGVhbiwgbWVzc2FnZT86IHN0cmluZykge1xuICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQ6IEJlZm9yZVVubG9hZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEJsb2NrKCkpIHJldHVybjtcblxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnJldHVyblZhbHVlID0gbWVzc2FnZSB8fCAnJztcbiAgICB9O1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9yZXVubG9hZCcsIGhhbmRsZXIpO1xuXG4gICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCBoYW5kbGVyKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRGb3JtQ29udHJvbDxUID0gYW55PihcbiAgICBmb3JtOiBBYnN0cmFjdENvbnRyb2wsXG4gICAgcGF0aDogc3RyaW5nLFxuICApOiBGb3JtQ29udHJvbDxUPiB8IG51bGwge1xuICAgIGlmICghZm9ybSB8fCAhcGF0aCkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBzZWdtZW50cyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICBsZXQgY3VycmVudDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IGZvcm07XG5cbiAgICBmb3IgKGNvbnN0IHNlZ21lbnQgb2Ygc2VnbWVudHMpIHtcbiAgICAgIGlmICghY3VycmVudCkgcmV0dXJuIG51bGw7XG5cbiAgICAgIC8vIFRyZWF0IG51bWVyaWMgc2VnbWVudCBhcyBGb3JtQXJyYXkgaW5kZXhcbiAgICAgIGNvbnN0IGluZGV4ID0gTnVtYmVyKHNlZ21lbnQpO1xuICAgICAgaWYgKCFpc05hTihpbmRleCkgJiYgY3VycmVudCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgICBjdXJyZW50ID0gY3VycmVudC5hdChpbmRleCk7XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnQgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuZ2V0KHNlZ21lbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnQgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCA/IChjdXJyZW50IGFzIEZvcm1Db250cm9sPFQ+KSA6IG51bGw7XG4gIH1cblxuICBzdGF0aWMgY29udmVydEltYWdlVG9CYXNlNjQoZmlsZTogRmlsZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcblxuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG5cbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2U2NFN0cmluZyA9IHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nO1xuICAgICAgICBjb25zdCBiYXNlNjRTdHJpbmdBcnJheSA9IGJhc2U2NFN0cmluZy5zcGxpdCgnLCcpO1xuICAgICAgICByZXNvbHZlKGJhc2U2NFN0cmluZ0FycmF5WzFdKTtcbiAgICAgIH07XG5cbiAgICAgIHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiB7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIHJlcGxhY2VDaGFyYWN0ZXIoXG4gICAgdGV4dDogYW55LFxuICAgIHJlcGxhY2VDaGFyOiBzdHJpbmcsXG4gICAgcmVwbGFjZVdpdGhDaGFyOiBzdHJpbmcsXG4gICk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRleHQ/LnJlcGxhY2VBbGwocmVwbGFjZUNoYXIsIHJlcGxhY2VXaXRoQ2hhcikgfHwgJyc7XG4gIH1cblxuICBzdGF0aWMgY29udmVydEpzb25TdHJpbmdUb0pzb248VCA9IGFueT4oXG4gICAgdmFsdWU6IFQgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICApOiBUIHwgbnVsbCB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKSBhcyBUO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZSBhcyBUO1xuICB9XG59XG4iXX0=
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWxsaXRvb2x4LmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvaGVscGVycy9pbnRlbGxpdG9vbHguaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBR3hCLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsTUFBTSxDQUFDLHVCQUF1QixDQUFDLElBQXFCO1FBQ2xELE1BQU0sWUFBWSxHQUFJLElBQVksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDakUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUF3QjtRQUMzQyxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUU7WUFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzFDLENBQUM7WUFDRixPQUFPO1NBQ1I7UUFFRCxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUU7WUFDaEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM3RCxPQUFPO1NBQ1I7UUFFRCxJQUFJLE9BQU8sWUFBWSxXQUFXLEVBQUU7WUFDbEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUM1QixJQUFJLE9BQU8sS0FBSyxLQUFL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LE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEQsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDO1lBRUYsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN6QixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUNyQixJQUFTLEVBQ1QsV0FBbUIsRUFDbkIsZUFBdUI7UUFFdkIsT0FBTyxJQUFJLEVBQUUsVUFBVSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUQsQ0FBQztJQUVELE1BQU0sQ0FBQyx1QkFBdUIsQ0FDNUIsS0FBb0M7UUFFcEMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixJQUFJO2dCQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQU0sQ0FBQzthQUMvQjtZQUFDLE1BQU07Z0JBQ04sT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBRUQsT0FBTyxLQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQXJyYXksXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbmZpcm1IYW5kbGVyIH0gZnJvbSAnLi4vZm9ybS1jaGFuZ2VzL2NvbmZpcm0taGFuZGxlci50eXBlJztcblxuZXhwb3J0IGNsYXNzIEludGVsbGlUb29seEhlbHBlciB7XG4gIHN0YXRpYyBjYXB0dXJlSW5pdGlhbEZvcm1WYWx1ZShmb3JtOiBBYnN0cmFjdENvbnRyb2wpOiBhbnkge1xuICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IChmb3JtIGFzIGFueSkuZ2V0UmF3VmFsdWU/LigpID8/IGZvcm0udmFsdWU7XG4gICAgZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuICAgIHJldHVybiB0aGlzLmNsb25lKGluaXRpYWxWYWx1ZSk7XG4gIH1cblxuICBzdGF0aWMgdHJpbUZvcm1Hcm91cChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgT2JqZWN0LmtleXMoY29udHJvbC5jb250cm9scykuZm9yRWFjaCgoa2V5KSA9PlxuICAgICAgICB0aGlzLnRyaW1Gb3JtR3JvdXAoY29udHJvbC5jb250cm9sc1trZXldKSxcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgIGNvbnRyb2wuY29udHJvbHMuZm9yRWFjaCgoY3RybCkgPT4gdGhpcy50cmltRm9ybUdyb3VwKGN0cmwpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb250cm9sLnNldFZhbHVlKHZhbHVlLnRyaW0oKSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBkZWVwRXF1YWwob2JqMTogYW55LCBvYmoyOiBhbnkpOiBib29sZWFuIHtcbiAgICAvLyB0cmVhdCBudWxsLCB1bmRlZmluZWQsIGFuZCBlbXB0eSBzdHJpbmcgYXMgZXF1YWxcbiAgICBpZiAodGhpcy5pc0VtcHR5KG9iajEpICYmIHRoaXMuaXNFbXB0eShvYmoyKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gbm9ybWFsaXplIG51bWVyaWMgdmFsdWVzXG4gICAgaWYgKHR5cGVvZiBvYmoxID09PSAnbnVtYmVyJyAmJiB0eXBlb2Ygb2JqMiA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBOdW1iZXIob2JqMSkgPT09IE51bWJlcihvYmoyKTtcbiAgICB9XG5cbiAgICAvLyBzdHJpY3QgZXF1YWxpdHkgc2hvcnRjdXRcbiAgICBpZiAob2JqMSA9PT0gb2JqMikgcmV0dXJuIHRydWU7XG5cbiAgICAvLyBGaWxlIGNvbXBhcmlzb25cbiAgICBpZiAob2JqMSBpbnN0YW5jZW9mIEZpbGUgJiYgb2JqMiBpbnN0YW5jZW9mIEZpbGUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG9iajEubmFtZSA9PT0gb2JqMi5uYW1lICYmXG4gICAgICAgIG9iajEuc2l6ZSA9PT0gb2JqMi5zaXplICYmXG4gICAgICAgIG9iajEudHlwZSA9PT0gb2JqMi50eXBlICYmXG4gICAgICAgIG9iajEubGFzdE1vZGlmaWVkID09PSBvYmoyLmxhc3RNb2RpZmllZFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBpZiBub3Qgb2JqZWN0cyDihpIgbm90IGVxdWFsXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIG9iajEgIT09ICdvYmplY3QnIHx8XG4gICAgICB0eXBlb2Ygb2JqMiAhPT0gJ29iamVjdCcgfHxcbiAgICAgIG9iajEgPT09IG51bGwgfHxcbiAgICAgIG9iajIgPT09IG51bGxcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBhcnJheXNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmoxKSAmJiBBcnJheS5pc0FycmF5KG9iajIpKSB7XG4gICAgICBpZiAob2JqMS5sZW5ndGggIT09IG9iajIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gb2JqMS5ldmVyeSgodiwgaSkgPT4gdGhpcy5kZWVwRXF1YWwodiwgb2JqMltpXSkpO1xuICAgIH1cblxuICAgIGNvbnN0IGtleXMxID0gT2JqZWN0LmtleXMob2JqMSk7XG4gICAgY29uc3Qga2V5czIgPSBPYmplY3Qua2V5cyhvYmoyKTtcblxuICAgIGlmIChrZXlzMS5sZW5ndGggIT09IGtleXMyLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5czEpIHtcbiAgICAgIGlmICgha2V5czIuaW5jbHVkZXMoa2V5KSkgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKCF0aGlzLmRlZXBFcXVhbChvYmoxW2tleV0sIG9iajJba2V5XSkpIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN0YXRpYyBpc0VtcHR5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdmFsdWUgPT09IG51bGwgfHxcbiAgICAgIHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSA9PT0gJycpXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBjbG9uZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHZhbHVlKTsgLy8gQW5ndWxhciAxNCsgc2FmZVxuICB9XG5cbiAgc3RhdGljIGZvcm1IYXNDaGFuZ2VzKGluaXRpYWxWYWx1ZTogYW55LCBmb3JtOiBBYnN0cmFjdENvbnRyb2wpOiBib29sZWFuIHtcbiAgICBpZiAoIWZvcm0pIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGN1cnJlbnQgPSBmb3JtLmdldFJhd1ZhbHVlKCk7XG4gICAgcmV0dXJuICF0aGlzLmRlZXBFcXVhbChpbml0aWFsVmFsdWUsIGN1cnJlbnQpO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGNvbmZpcm1JZkNoYW5nZWQoXG4gICAgaGFzQ2hhbmdlczogYm9vbGVhbixcbiAgICBjb25maXJtSGFuZGxlcj86IENvbmZpcm1IYW5kbGVyLFxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoIWhhc0NoYW5nZXMpIHJldHVybiB0cnVlO1xuXG4gICAgaWYgKGNvbmZpcm1IYW5kbGVyKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBjb25maXJtSGFuZGxlcigpO1xuICAgICAgcmV0dXJuIHR5cGVvZiByZXN1bHQgPT09ICdib29sZWFuJyA/IHJlc3VsdCA6IGF3YWl0IHJlc3VsdDtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZmlybSgnWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBDb250aW51ZT8nKTtcbiAgfVxuXG4gIHN0YXRpYyByZWdpc3RlckJlZm9yZVVubG9hZChzaG91bGRCbG9jazogKCkgPT4gYm9vbGVhbiwgbWVzc2FnZT86IHN0cmluZykge1xuICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQ6IEJlZm9yZVVubG9hZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoIXNob3VsZEJsb2NrKCkpIHJldHVybjtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5yZXR1cm5WYWx1ZSA9IG1lc3NhZ2UgPz8gJyc7XG4gICAgfTtcblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCBoYW5kbGVyKTtcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JlZm9yZXVubG9hZCcsIGhhbmRsZXIpO1xuICB9XG5cbiAgc3RhdGljIGdldEZvcm1Db250cm9sPFQgPSBhbnk+KFxuICAgIGZvcm06IEFic3RyYWN0Q29udHJvbCxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICk6IEZvcm1Db250cm9sPFQ+IHwgbnVsbCB7XG4gICAgaWYgKCFmb3JtIHx8ICFwYXRoKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IHNlZ21lbnRzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgIGxldCBjdXJyZW50OiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gZm9ybTtcblxuICAgIGZvciAoY29uc3Qgc2VnbWVudCBvZiBzZWdtZW50cykge1xuICAgICAgaWYgKCFjdXJyZW50KSByZXR1cm4gbnVsbDtcblxuICAgICAgLy8gVHJlYXQgbnVtZXJpYyBzZWdtZW50IGFzIEZvcm1BcnJheSBpbmRleFxuICAgICAgY29uc3QgaW5kZXggPSBOdW1iZXIoc2VnbWVudCk7XG4gICAgICBpZiAoIWlzTmFOKGluZGV4KSAmJiBjdXJyZW50IGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LmF0KGluZGV4KTtcbiAgICAgIH0gZWxzZSBpZiAoY3VycmVudCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICBjdXJyZW50ID0gY3VycmVudC5nZXQoc2VnbWVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudCBpbnN0YW5jZW9mIEZvcm1Db250cm9sID8gKGN1cnJlbnQgYXMgRm9ybUNvbnRyb2w8VD4pIDogbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBjb252ZXJ0SW1hZ2VUb0Jhc2U2NChmaWxlOiBGaWxlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcblxuICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZTY0U3RyaW5nID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmc7XG4gICAgICAgIGNvbnN0IGJhc2U2NFN0cmluZ0FycmF5ID0gYmFzZTY0U3RyaW5nLnNwbGl0KCcsJyk7XG4gICAgICAgIHJlc29sdmUoYmFzZTY0U3RyaW5nQXJyYXlbMV0pO1xuICAgICAgfTtcblxuICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHtcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcmVwbGFjZUNoYXJhY3RlcihcbiAgICB0ZXh0OiBhbnksXG4gICAgcmVwbGFjZUNoYXI6IHN0cmluZyxcbiAgICByZXBsYWNlV2l0aENoYXI6IHN0cmluZyxcbiAgKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGV4dD8ucmVwbGFjZUFsbChyZXBsYWNlQ2hhciwgcmVwbGFjZVdpdGhDaGFyKSB8fCAnJztcbiAgfVxuXG4gIHN0YXRpYyBjb252ZXJ0SnNvblN0cmluZ1RvSnNvbjxUID0gYW55PihcbiAgICB2YWx1ZTogVCB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXG4gICk6IFQgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWUpIGFzIFQ7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlIGFzIFQ7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Public API Surface of ngx-intellitoolx
|
|
3
3
|
*/
|
|
4
|
-
//
|
|
5
|
-
export * from './lib/
|
|
4
|
+
// Form Changes
|
|
5
|
+
export * from './lib/form-changes/form-changes-tracker.service';
|
|
6
|
+
export * from './lib/form-changes/form-update-message.component';
|
|
7
|
+
export * from './lib/form-changes/unsaved-changes.guard';
|
|
8
|
+
export * from './lib/form-changes/can-component-deactivate.interface';
|
|
9
|
+
export * from './lib/form-changes/form-update-message-config.interface';
|
|
10
|
+
// Form validation
|
|
11
|
+
export * from './lib/form-errors/form-errors.component';
|
|
12
|
+
export * from './lib/directives/required-marker/required-marker.directive';
|
|
13
|
+
export * from './lib/directives/required-marker/required-marker.config';
|
|
14
|
+
export * from './lib/directives/required-marker/required-marker.token';
|
|
15
|
+
export * from './lib/directives/required-marker/required-marker.defaults';
|
|
6
16
|
// Helpers
|
|
7
17
|
export * from './lib/helpers/intellitoolx.helper';
|
|
8
18
|
// Pipes
|
|
9
19
|
export * from './lib/pipes/json-parse.pipe';
|
|
10
20
|
// Components
|
|
11
21
|
export * from './lib/ngx-intellitoolx.component';
|
|
12
|
-
export * from './lib/form-update/form-update-message.component';
|
|
13
|
-
export * from './lib/form-errors/form-errors.component';
|
|
14
22
|
// Validators
|
|
15
23
|
export * from './lib/form-validators';
|
|
16
24
|
// Regular expressions
|
|
17
25
|
export * from './lib/regex/regex.utils';
|
|
18
|
-
//
|
|
19
|
-
export * from './lib/
|
|
20
|
-
|
|
21
|
-
export * from './lib/directives/required-marker/required-marker.directive';
|
|
22
|
-
export * from './lib/directives/required-marker/required-marker.config';
|
|
23
|
-
export * from './lib/directives/required-marker/required-marker.token';
|
|
24
|
-
export * from './lib/directives/required-marker/required-marker.defaults';
|
|
25
|
-
// Guards
|
|
26
|
-
export * from './lib/form-update/unsaved-changes.guard';
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsV0FBVztBQUNYLGNBQWMsK0JBQStCLENBQUM7QUFFOUMsVUFBVTtBQUNWLGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsUUFBUTtBQUNSLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsYUFBYTtBQUNiLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHlDQUF5QyxDQUFDO0FBRXhELGFBQWE7QUFDYixjQUFjLHVCQUF1QixDQUFDO0FBRXRDLHNCQUFzQjtBQUN0QixjQUFjLHlCQUF5QixDQUFDO0FBRXhDLG9CQUFvQjtBQUNwQixjQUFjLHdEQUF3RCxDQUFDO0FBRXZFLDZCQUE2QjtBQUM3QixjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLDJEQUEyRCxDQUFDO0FBRTFFLFNBQVM7QUFDVCxjQUFjLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtaW50ZWxsaXRvb2x4XG4gKi9cblxuLy8gTW9kZHVsZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1pbnRlbGxpdG9vbHgubW9kdWxlJztcblxuLy8gSGVscGVyc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVscGVycy9pbnRlbGxpdG9vbHguaGVscGVyJztcblxuLy8gUGlwZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2pzb24tcGFyc2UucGlwZSc7XG5cbi8vIENvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1pbnRlbGxpdG9vbHguY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0tdXBkYXRlL2Zvcm0tdXBkYXRlLW1lc3NhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0tZXJyb3JzL2Zvcm0tZXJyb3JzLmNvbXBvbmVudCc7XG5cbi8vIFZhbGlkYXRvcnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0tdmFsaWRhdG9ycyc7XG5cbi8vIFJlZ3VsYXIgZXhwcmVzc2lvbnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlZ2V4L3JlZ2V4LnV0aWxzJztcblxuLy8gTW9kZWxzL0ludGVyZmFjZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0tdXBkYXRlL2Zvcm0tdXBkYXRlLW1lc3NhZ2UtY29uZmlnLmludGVyZmFjZSc7XG5cbi8vICBSZXF1aXJlZCBtYXJrZXIgZGlyZWN0aXZlXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3JlcXVpcmVkLW1hcmtlci9yZXF1aXJlZC1tYXJrZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvcmVxdWlyZWQtbWFya2VyL3JlcXVpcmVkLW1hcmtlci5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9yZXF1aXJlZC1tYXJrZXIvcmVxdWlyZWQtbWFya2VyLnRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvcmVxdWlyZWQtbWFya2VyL3JlcXVpcmVkLW1hcmtlci5kZWZhdWx0cyc7XG5cbi8vIEd1YXJkc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybS11cGRhdGUvdW5zYXZlZC1jaGFuZ2VzLmd1YXJkJztcbiJdfQ==
|
|
26
|
+
// Moddules
|
|
27
|
+
export * from './lib/ngx-intellitoolx.module';
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsZUFBZTtBQUNmLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyx5REFBeUQsQ0FBQztBQUV4RSxrQkFBa0I7QUFDbEIsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLDJEQUEyRCxDQUFDO0FBRTFFLFVBQVU7QUFDVixjQUFjLG1DQUFtQyxDQUFDO0FBRWxELFFBQVE7QUFDUixjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGFBQWE7QUFDYixjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGFBQWE7QUFDYixjQUFjLHVCQUF1QixDQUFDO0FBRXRDLHNCQUFzQjtBQUN0QixjQUFjLHlCQUF5QixDQUFDO0FBRXhDLFdBQVc7QUFDWCxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtaW50ZWxsaXRvb2x4XG4gKi9cblxuLy8gRm9ybSBDaGFuZ2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtLWNoYW5nZXMvZm9ybS1jaGFuZ2VzLXRyYWNrZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtLWNoYW5nZXMvZm9ybS11cGRhdGUtbWVzc2FnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybS1jaGFuZ2VzL3Vuc2F2ZWQtY2hhbmdlcy5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtLWNoYW5nZXMvY2FuLWNvbXBvbmVudC1kZWFjdGl2YXRlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtLWNoYW5nZXMvZm9ybS11cGRhdGUtbWVzc2FnZS1jb25maWcuaW50ZXJmYWNlJztcblxuLy8gRm9ybSB2YWxpZGF0aW9uXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtLWVycm9ycy9mb3JtLWVycm9ycy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9yZXF1aXJlZC1tYXJrZXIvcmVxdWlyZWQtbWFya2VyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3JlcXVpcmVkLW1hcmtlci9yZXF1aXJlZC1tYXJrZXIuY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvcmVxdWlyZWQtbWFya2VyL3JlcXVpcmVkLW1hcmtlci50b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3JlcXVpcmVkLW1hcmtlci9yZXF1aXJlZC1tYXJrZXIuZGVmYXVsdHMnO1xuXG4vLyBIZWxwZXJzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9oZWxwZXJzL2ludGVsbGl0b29seC5oZWxwZXInO1xuXG4vLyBQaXBlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvanNvbi1wYXJzZS5waXBlJztcblxuLy8gQ29tcG9uZW50c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWludGVsbGl0b29seC5jb21wb25lbnQnO1xuXG4vLyBWYWxpZGF0b3JzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtLXZhbGlkYXRvcnMnO1xuXG4vLyBSZWd1bGFyIGV4cHJlc3Npb25zXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWdleC9yZWdleC51dGlscyc7XG5cbi8vIE1vZGR1bGVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtaW50ZWxsaXRvb2x4Lm1vZHVsZSc7XG4iXX0=
|