@sumaris-net/ngx-components 1.23.50 → 1.23.52
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/bundles/sumaris-net.ngx-components.umd.js +173 -35
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/doc/changelog.md +6 -0
- package/esm2015/src/app/core/form/form.utils.js +2 -2
- package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +3 -5
- package/esm2015/src/app/shared/material/chips/material.chips.js +2 -3
- package/esm2015/src/app/shared/material/material.testing.module.js +14 -4
- package/esm2015/src/app/shared/observables.js +29 -22
- package/esm2015/src/app/shared/testing/observable.test.js +97 -0
- package/esm2015/sumaris-net.ngx-components.js +7 -6
- package/fesm2015/sumaris-net.ngx-components.js +133 -31
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/core/form/form.utils.d.ts +1 -1
- package/src/app/shared/observables.d.ts +1 -1
- package/src/app/shared/testing/observable.test.d.ts +22 -0
- package/sumaris-net.ngx-components.d.ts +6 -5
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Component, ViewChild } from '@angular/core';
|
|
3
|
+
import { firstNotNilPromise, waitForTrue } from '../observables';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import { isNotNil } from '../functions';
|
|
6
|
+
import { tap } from 'rxjs/operators';
|
|
7
|
+
import { toDateISOString } from '../dates';
|
|
8
|
+
import { moment } from '../../vendor';
|
|
9
|
+
export class ObservableTestPage {
|
|
10
|
+
constructor() {
|
|
11
|
+
this._stopSubject = new Subject();
|
|
12
|
+
this.$value = new Subject();
|
|
13
|
+
this.runningTaskCount = 0;
|
|
14
|
+
this.taskId = 0;
|
|
15
|
+
this.options = {
|
|
16
|
+
stop: this._stopSubject
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
ngOnDestroy() {
|
|
20
|
+
this._stopSubject.next();
|
|
21
|
+
}
|
|
22
|
+
setOptions(opts) {
|
|
23
|
+
var _a;
|
|
24
|
+
this.options = Object.assign(Object.assign({}, this.options), opts);
|
|
25
|
+
this.log('Options changes to: ', Object.assign(Object.assign({}, this.options), { stop: ((_a = this.options) === null || _a === void 0 ? void 0 : _a.stop) ? '$stop' : 'null' }));
|
|
26
|
+
}
|
|
27
|
+
setOptionsError(errorMessage) {
|
|
28
|
+
this.setOptions({ stopError: new Error(errorMessage) });
|
|
29
|
+
}
|
|
30
|
+
firstNotNilPromise(opts) {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
const logPrefix = `[firstNotNilPromise() #${++this.taskId}] `;
|
|
33
|
+
yield this.execute(firstNotNilPromise, opts, logPrefix);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
waitForTrue(opts) {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
const logPrefix = `[waitForTrue() #${++this.taskId}] `;
|
|
39
|
+
yield this.execute(waitForTrue, opts, logPrefix);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
execute(fn, opts, logPrefix) {
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
opts = Object.assign(Object.assign(Object.assign({}, this.options), { stop: this._stopSubject }), opts);
|
|
45
|
+
logPrefix = logPrefix || `[#${++this.taskId}] `;
|
|
46
|
+
const value$ = this.$value.pipe(tap(value => this.log(logPrefix + `Received value: ${value}`)));
|
|
47
|
+
try {
|
|
48
|
+
this.runningTaskCount++;
|
|
49
|
+
this.log(logPrefix + 'Waiting...');
|
|
50
|
+
// Execute the async function
|
|
51
|
+
const result = yield fn(value$, opts);
|
|
52
|
+
// Dump result
|
|
53
|
+
if (isNotNil(result))
|
|
54
|
+
this.log(logPrefix + '[OK] with result:', result);
|
|
55
|
+
else
|
|
56
|
+
this.log(logPrefix + '[OK]');
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
const errorMsg = logPrefix + 'Error: ' + ((err === null || err === void 0 ? void 0 : err.message) || '');
|
|
60
|
+
console.error(errorMsg, err);
|
|
61
|
+
this.log(errorMsg
|
|
62
|
+
+ ((err === null || err === void 0 ? void 0 : err.originalStack) ? `<pre>${err.originalStack}</pre>` : ''));
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
this.runningTaskCount--;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
emit(value) {
|
|
70
|
+
this.$value.next(value);
|
|
71
|
+
}
|
|
72
|
+
stop() {
|
|
73
|
+
this._stopSubject.next();
|
|
74
|
+
}
|
|
75
|
+
log(message, ...args) {
|
|
76
|
+
let fullMessage = `${toDateISOString(moment())} - ${message}`;
|
|
77
|
+
if (args === null || args === void 0 ? void 0 : args.length) {
|
|
78
|
+
fullMessage += ' - <small>' + args.map(JSON.stringify).join(', ') + '</small>';
|
|
79
|
+
}
|
|
80
|
+
this.appendLog(fullMessage);
|
|
81
|
+
}
|
|
82
|
+
appendLog(message) {
|
|
83
|
+
this.resultDiv.nativeElement.innerHTML += message + '<br/>';
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
ObservableTestPage.decorators = [
|
|
87
|
+
{ type: Component, args: [{
|
|
88
|
+
selector: 'app-observable-test',
|
|
89
|
+
template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Observables test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <ion-card>\n <ion-card-header>\n <ion-card-title>waitFor, waitForTrue, waitForFalse</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <div style=\"display: inline-block\">\n <p>Set options: </p>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: false})\">stopError: false</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: true})\">stopError: true</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: 'my error'})\">stopError: 'my error'</ion-button>\n\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: 2000})\">timeout: 2000</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: null})\">timeout: null</ion-button>\n <br/>\n <p>Call await function: </p>\n <ion-button (click)=\"waitForTrue()\">waitForTrue</ion-button>\n <ion-button (click)=\"firstNotNilPromise()\">firstNotNilPromise</ion-button>\n <br/>\n <p>Send event to source: </p>\n <ion-button (click)=\"emit(true)\">Emit 'true'</ion-button>\n <ion-button (click)=\"emit(false)\">Emit 'false'</ion-button>\n <br/>\n <p>Stop: </p>\n <ion-button color=\"danger\" (click)=\"stop()\">Stop</ion-button>\n </div>\n </ion-card-content>\n </ion-card>\n\n <ion-card>\n <ion-toolbar>\n <ion-title>Running job count: {{runningTaskCount}}</ion-title>\n <ion-button fill=\"outline\" slot=\"end\" (click)=\"result.innerHTML=''\">Clear log</ion-button>\n </ion-toolbar>\n <ion-card-content>\n <div #result style=\"color: var(--ion-color-medium)\">\n </div>\n </ion-card-content>\n </ion-card>\n</ion-content>\n",
|
|
90
|
+
styles: ["ion-button{text-transform:none!important}"]
|
|
91
|
+
},] }
|
|
92
|
+
];
|
|
93
|
+
ObservableTestPage.ctorParameters = () => [];
|
|
94
|
+
ObservableTestPage.propDecorators = {
|
|
95
|
+
resultDiv: [{ type: ViewChild, args: ['result',] }]
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdGVzdGluZy9vYnNlcnZhYmxlLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQTJELFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUc1RyxPQUFPLEVBQUMsa0JBQWtCLEVBQXlDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBYSxPQUFPLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFDLFFBQVEsRUFBa0IsTUFBTSxjQUFjLENBQUM7QUFDdkQsT0FBTyxFQUEyQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFRcEMsTUFBTSxPQUFPLGtCQUFrQjtJQWE3QjtRQVhBLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVuQyxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUM1QixxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDckIsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUNYLFlBQU8sR0FBMEI7WUFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ3hCLENBQUM7SUFNRixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTOztRQUNsQixJQUFJLENBQUMsT0FBTyxtQ0FDUCxJQUFJLENBQUMsT0FBTyxHQUNaLElBQUksQ0FDUixDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0Isa0NBQU0sSUFBSSxDQUFDLE9BQU8sS0FBRSxJQUFJ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QUksV0FBVyxHQUFHLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sT0FBTyxFQUFFLENBQUM7UUFDOUQsSUFBSSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsTUFBTSxFQUFFO1lBQ2hCLFdBQVcsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQztTQUNoRjtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFlO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFNBQVMsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzlELENBQUM7OztZQTFHRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0Isc2tFQUFxQzs7YUFFdEM7Ozs7d0JBWUUsU0FBUyxTQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgT25EZXN0cm95LCBPcHRpb25hbCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge2ZpcnN0Tm90TmlsUHJvbWlzZSwgRmlyc3RPcHRpb25zLCB3YWl0Rm9yLCBXYWl0Rm9yT3B0aW9ucywgd2FpdEZvclRydWV9IGZyb20gJy4uL29ic2VydmFibGVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7aXNOb3ROaWwsIGlzTm90TmlsT3JCbGFua30gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7ZmlsdGVyLCBmaXJzdCwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge3RvRGF0ZUlTT1N0cmluZ30gZnJvbSAnLi4vZGF0ZXMnO1xuaW1wb3J0IHttb21lbnR9IGZyb20gJy4uLy4uL3ZlbmRvcic7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW9ic2VydmFibGUtdGVzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYnNlcnZhYmxlLnRlc3QuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29ic2VydmFibGUudGVzdC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJsZVRlc3RQYWdlIGltcGxlbWVudHMgT25EZXN0cm95e1xuXG4gIF9zdG9wU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgJHZhbHVlID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBydW5uaW5nVGFza0NvdW50ID0gMDtcbiAgdGFza0lkID0gMDtcbiAgb3B0aW9uczogUGFydGlhbDxGaXJzdE9wdGlvbnM+ID0ge1xuICAgIHN0b3A6IHRoaXMuX3N0b3BTdWJqZWN0XG4gIH07XG5cbiAgQFZpZXdDaGlsZCgncmVzdWx0JykgcmVzdWx0RGl2ITogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICApIHtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N0b3BTdWJqZWN0Lm5leHQoKTtcbiAgfVxuXG4gIHNldE9wdGlvbnMob3B0czogYW55KSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgLi4ub3B0c1xuICAgIH07XG4gICAgdGhpcy5sb2coJ09wdGlvbnMgY2hhbmdlcyB0bzogJywgey4uLnRoaXMub3B0aW9ucywgc3RvcDogdGhpcy5vcHRpb25zPy5zdG9wID8gJyRzdG9wJyA6ICdudWxsJ30pO1xuICB9XG5cbiAgc2V0T3B0aW9uc0Vycm9yKGVycm9yTWVzc2FnZSkge1xuICAgIHRoaXMuc2V0T3B0aW9ucyh7c3RvcEVycm9yOiBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKX0pO1xuICB9XG5cbiAgYXN5bmMgZmlyc3ROb3ROaWxQcm9taXNlKG9wdHM/OiBGaXJzdE9wdGlvbnMpIHtcbiAgICBjb25zdCBsb2dQcmVmaXggPSBgW2ZpcnN0Tm90TmlsUHJvbWlzZSgpICMkeysrdGhpcy50YXNrSWR9XSBgO1xuICAgIGF3YWl0IHRoaXMuZXhlY3V0ZShmaXJzdE5vdE5pbFByb21pc2UsIG9wdHMsIGxvZ1ByZWZpeCk7XG4gIH1cblxuICBhc3luYyB3YWl0Rm9yVHJ1ZShvcHRzPzogV2FpdEZvck9wdGlvbnMpIHtcbiAgICBjb25zdCBsb2dQcmVmaXggPSBgW3dhaXRGb3JUcnVlKCkgIyR7Kyt0aGlzLnRhc2tJZH1dIGA7XG4gICAgYXdhaXQgdGhpcy5leGVjdXRlKHdhaXRGb3JUcnVlLCBvcHRzLCBsb2dQcmVmaXgpO1xuICB9XG5cblxuICBhc3luYyBleGVjdXRlPFQsIE8gZXh0ZW5kcyBXYWl0Rm9yT3B0aW9ucyA9IFdhaXRGb3JPcHRpb25zPihcbiAgICBmbjogKG86IE9ic2VydmFibGU8YW55Piwgb3B0czogTykgPT4gUHJvbWlzZTxUPixcbiAgICBvcHRzPzogTyxcbiAgICBsb2dQcmVmaXg/OiBzdHJpbmcpIHtcblxuICAgIG9wdHMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBzdG9wOiB0aGlzLl9zdG9wU3ViamVjdCxcbiAgICAgIC4uLm9wdHNcbiAgICB9O1xuICAgIGxvZ1ByZWZpeCA9IGxvZ1ByZWZpeCB8fCBgWyMkeysrdGhpcy50YXNrSWR9XSBgO1xuXG4gICAgY29uc3QgdmFsdWUkID0gdGhpcy4kdmFsdWUucGlwZShcbiAgICAgIHRhcCh2YWx1ZSA9PiB0aGlzLmxvZyhsb2dQcmVmaXggKyBgUmVjZWl2ZWQgdmFsdWU6ICR7dmFsdWV9YCkpXG4gICAgKVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucnVubmluZ1Rhc2tDb3VudCsrO1xuICAgICAgdGhpcy5sb2cobG9nUHJlZml4ICsgJ1dhaXRpbmcuLi4nKTtcblxuICAgICAgLy8gRXhlY3V0ZSB0aGUgYXN5bmMgZnVuY3Rpb25cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZuKHZhbHVlJCwgb3B0cyk7XG5cbiAgICAgIC8vIER1bXAgcmVzdWx0XG4gICAgICBpZiAoaXNOb3ROaWwocmVzdWx0KSkgdGhpcy5sb2cobG9nUHJlZml4ICsgJ1tPS10gd2l0aCByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIGVsc2UgIHRoaXMubG9nKGxvZ1ByZWZpeCArICdbT0tdJyk7XG4gICAgfVxuICAgIGNhdGNoKGVycikge1xuICAgICAgY29uc3QgZXJyb3JNc2cgPSBsb2dQcmVmaXggKyAnRXJyb3I6ICcgKyAoZXJyPy5tZXNzYWdlIHx8ICcnKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3JNc2csIGVycik7XG4gICAgICB0aGlzLmxvZyhlcnJvck1zZ1xuICAgICAgICArIChlcnI/Lm9yaWdpbmFsU3RhY2sgPyBgPHByZT4ke2Vyci5vcmlnaW5hbFN0YWNrfTwvcHJlPmAgOiAnJylcbiAgICAgICk7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgdGhpcy5ydW5uaW5nVGFza0NvdW50LS07XG4gICAgfVxuICB9XG5cbiAgZW1pdCh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy4kdmFsdWUubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBzdG9wKCkge1xuICAgIHRoaXMuX3N0b3BTdWJqZWN0Lm5leHQoKTtcbiAgfVxuXG4gIGxvZyhtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IGFueSkge1xuICAgIGxldCBmdWxsTWVzc2FnZSA9IGAke3RvRGF0ZUlTT1N0cmluZyhtb21lbnQoKSl9IC0gJHttZXNzYWdlfWA7XG4gICAgaWYgKGFyZ3M/Lmxlbmd0aCkge1xuICAgICAgZnVsbE1lc3NhZ2UgKz0gJyAtIDxzbWFsbD4nICsgYXJncy5tYXAoSlNPTi5zdHJpbmdpZnkpLmpvaW4oJywgJykgKyAnPC9zbWFsbD4nO1xuICAgIH1cbiAgICB0aGlzLmFwcGVuZExvZyhmdWxsTWVzc2FnZSk7XG4gIH1cblxuICBhcHBlbmRMb2cobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZXN1bHREaXYubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgKz0gbWVzc2FnZSArICc8YnIvPic7XG4gIH1cbn1cblxuIl19
|
|
@@ -9,13 +9,14 @@ export { AccountValidatorService as ɵf } from './src/app/core/services/validato
|
|
|
9
9
|
export { LocalSettingsValidatorService as ɵi } from './src/app/core/services/validator/local-settings.validator';
|
|
10
10
|
export { UserSettingsValidatorService as ɵh } from './src/app/core/services/validator/user-settings.validator';
|
|
11
11
|
export { isFocusableElement as ɵd } from './src/app/shared/focusable';
|
|
12
|
-
export { MatBadgeIconTestPage as
|
|
13
|
-
export { DateTestPage as
|
|
12
|
+
export { MatBadgeIconTestPage as ɵo } from './src/app/shared/material/badge/badge-icon.test';
|
|
13
|
+
export { DateTestPage as ɵm } from './src/app/shared/material/datetime/testing/mat-date.test';
|
|
14
14
|
export { MatNumpadDomService as ɵb } from './src/app/shared/material/numpad/numpad.dom-service';
|
|
15
|
-
export { NumpadTestPage as
|
|
15
|
+
export { NumpadTestPage as ɵn } from './src/app/shared/material/numpad/testing/numpad.test';
|
|
16
16
|
export { StartableObservableService as ɵc } from './src/app/shared/services/startable-observable-service.class';
|
|
17
17
|
export { CustomReuseStrategy as ɵa } from './src/app/shared/shared-routing.module';
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
18
|
+
export { ObservableTestPage as ɵl } from './src/app/shared/testing/observable.test';
|
|
19
|
+
export { ToastTestingPage as ɵq } from './src/app/shared/toast/toast.testing';
|
|
20
|
+
export { ToastTestingModule as ɵp } from './src/app/shared/toast/toast.testing.module';
|
|
20
21
|
export { UserEventNotificationList as ɵk } from './src/app/social/user-event/notification/user-event-notification.list';
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtYXJpcy1uZXQubmd4LWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zdW1hcmlzLW5ldC5uZ3gtY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUN6RyxPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDakYsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUMvRyxPQUFPLEVBQUMsNEJBQTRCLElBQUksRUFBRSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDN0csT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUMzRixPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUM5RixPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzFGLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUM5RyxPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLHVFQUF1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0FwcFVwZGF0ZU9mZmxpbmVNb2RlQ2FyZCBhcyDJtWp9IGZyb20gJy4vc3JjL2FwcC9jb3JlL29mZmxpbmUvdXBkYXRlLW9mZmxpbmUtbW9kZS1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQge1JlZ2lzdGVyRm9ybSBhcyDJtWV9IGZyb20gJy4vc3JjL2FwcC9jb3JlL3JlZ2lzdGVyL2Zvcm0vZm9ybS1yZWdpc3Rlcic7XG5leHBvcnQge1JlZ2lzdGVyTW9kYWwgYXMgybVnfSBmcm9tICcuL3NyYy9hcHAvY29yZS9yZWdpc3Rlci9tb2RhbC9tb2RhbC1yZWdpc3Rlcic7XG5leHBvcnQge0FjY291bnRWYWxpZGF0b3JTZXJ2aWNlIGFzIMm1Zn0gZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvdmFsaWRhdG9yL2FjY291bnQudmFsaWRhdG9yJztcbmV4cG9ydCB7TG9jYWxTZXR0aW5nc1ZhbGlkYXRvclNlcnZpY2UgYXMgybVpfSBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy92YWxpZGF0b3IvbG9jYWwtc2V0dGluZ3MudmFsaWRhdG9yJztcbmV4cG9ydCB7VXNlclNldHRpbmdzVmFsaWRhdG9yU2VydmljZSBhcyDJtWh9IGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL3ZhbGlkYXRvci91c2VyLXNldHRpbmdzLnZhbGlkYXRvcic7XG5leHBvcnQge2lzRm9jdXNhYmxlRWxlbWVudCBhcyDJtWR9IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZm9jdXNhYmxlJztcbmV4cG9ydCB7TWF0QmFkZ2VJY29uVGVzdFBhZ2UgYXMgybVvfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2JhZGdlL2JhZGdlLWljb24udGVzdCc7XG5leHBvcnQge0RhdGVUZXN0UGFnZSBhcyDJtW19IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvZGF0ZXRpbWUvdGVzdGluZy9tYXQtZGF0ZS50ZXN0JztcbmV4cG9ydCB7TWF0TnVtcGFkRG9tU2VydmljZSBhcyDJtWJ9IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvbnVtcGFkL251bXBhZC5kb20tc2VydmljZSc7XG5leHBvcnQge051bXBhZFRlc3RQYWdlIGFzIMm1bn0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9udW1wYWQvdGVzdGluZy9udW1wYWQudGVzdCc7XG5leHBvcnQge1N0YXJ0YWJsZU9ic2VydmFibGVTZXJ2aWNlIGFzIMm1Y30gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9zdGFydGFibGUtb2JzZXJ2YWJsZS1zZXJ2aWNlLmNsYXNzJztcbmV4cG9ydCB7Q3VzdG9tUmV1c2VTdHJhdGVneSBhcyDJtWF9IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCB7T2JzZXJ2YWJsZVRlc3RQYWdlIGFzIMm1bH0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC90ZXN0aW5nL29ic2VydmFibGUudGVzdCc7XG5leHBvcnQge1RvYXN0VGVzdGluZ1BhZ2UgYXMgybVxfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3RvYXN0L3RvYXN0LnRlc3RpbmcnO1xuZXhwb3J0IHtUb2FzdFRlc3RpbmdNb2R1bGUgYXMgybVwfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3RvYXN0L3RvYXN0LnRlc3RpbmcubW9kdWxlJztcbmV4cG9ydCB7VXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdCBhcyDJtWt9IGZyb20gJy4vc3JjL2FwcC9zb2NpYWwvdXNlci1ldmVudC9ub3RpZmljYXRpb24vdXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdCc7Il19
|
|
@@ -32,7 +32,7 @@ import { MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteModule, MAT_AUT
|
|
|
32
32
|
import { __awaiter, __decorate } from 'tslib';
|
|
33
33
|
import { Validators, NG_VALUE_ACCESSOR, FormGroupDirective, AbstractControl, FormGroup, FormArray, FormControl, ReactiveFormsModule, FormBuilder } from '@angular/forms';
|
|
34
34
|
import { timer, merge, fromEvent, BehaviorSubject, Subscription, Subject, isObservable, from, of, noop as noop$9, Observable, defer, forkJoin, interval, combineLatest, EMPTY } from 'rxjs';
|
|
35
|
-
import { filter,
|
|
35
|
+
import { filter, map, takeUntil, first, switchMap, tap, debounceTime, startWith, distinctUntilChanged, mergeMap, catchError, throttleTime, skip, bufferWhen, take } from 'rxjs/operators';
|
|
36
36
|
import { trigger, transition, style, animate, state } from '@angular/animations';
|
|
37
37
|
import { TranslateService, TranslateModule } from '@ngx-translate/core';
|
|
38
38
|
import { IonicModule, Platform, IonRouterOutlet, ModalController, PopoverController, IonicSafeString, createAnimation, ToastController, AlertController, IonicRouteStrategy, NavParams, MenuController, IonContent, IonItem, IonInfiniteScroll } from '@ionic/angular';
|
|
@@ -781,32 +781,40 @@ function filterTrue(obs) {
|
|
|
781
781
|
function filterFalse(obs, opts) {
|
|
782
782
|
return obs.pipe(filter((v) => v === false));
|
|
783
783
|
}
|
|
784
|
-
function
|
|
784
|
+
function decorateWithTakeUntil(obs, opts) {
|
|
785
785
|
// Set take until notifier
|
|
786
|
-
|
|
787
|
-
if (takeUntil$)
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
})
|
|
786
|
+
let takeUntil$ = (opts === null || opts === void 0 ? void 0 : opts.stop) || ((opts === null || opts === void 0 ? void 0 : opts.timeout) && timer(opts.timeout));
|
|
787
|
+
if (!takeUntil$)
|
|
788
|
+
return obs; // Skip
|
|
789
|
+
// When stop, throw an error (useful when used with a toPromise())
|
|
790
|
+
if (opts.stopError) {
|
|
791
|
+
let error;
|
|
792
|
+
if (opts.stopError === true) {
|
|
793
|
+
error = new Error(opts.timeout ? `Timeout ${opts.timeout}ms` : `stop`);
|
|
794
|
+
}
|
|
795
|
+
else if (typeof opts.stopError === 'string') {
|
|
796
|
+
error = new Error(opts.stopError);
|
|
797
|
+
}
|
|
798
|
+
else {
|
|
799
|
+
error = opts.stopError;
|
|
794
800
|
}
|
|
795
|
-
|
|
796
|
-
|
|
801
|
+
takeUntil$ = takeUntil$.pipe(map(() => {
|
|
802
|
+
throw error;
|
|
803
|
+
}));
|
|
797
804
|
}
|
|
798
|
-
return obs
|
|
805
|
+
return obs
|
|
806
|
+
.pipe(takeUntil(takeUntil$));
|
|
799
807
|
}
|
|
800
808
|
function firstNotNil(obs, opts) {
|
|
801
|
-
return
|
|
809
|
+
return decorateWithTakeUntil(obs.pipe(first(isNotNil)), opts);
|
|
802
810
|
}
|
|
803
811
|
function firstTrue(obs, opts) {
|
|
804
|
-
return
|
|
805
|
-
);
|
|
812
|
+
return decorateWithTakeUntil(obs.pipe(first((v) => v === true), map(_ => { }) // Convert to void
|
|
813
|
+
), opts);
|
|
806
814
|
}
|
|
807
815
|
function firstFalse(obs, opts) {
|
|
808
|
-
return
|
|
809
|
-
);
|
|
816
|
+
return decorateWithTakeUntil(obs.pipe(first((v) => v === false), map(_ => { }) // Convert to void
|
|
817
|
+
), opts);
|
|
810
818
|
}
|
|
811
819
|
function firstTruePromise(obs, opts) {
|
|
812
820
|
return firstTrue(obs, Object.assign({ stopError: true }, opts)).toPromise();
|
|
@@ -855,9 +863,8 @@ function waitForTrue(observable, opts) {
|
|
|
855
863
|
opts = Object.assign({ stopError: true }, opts);
|
|
856
864
|
// dueTime (without timeout)
|
|
857
865
|
if (opts && opts.dueTime > 0) {
|
|
858
|
-
|
|
859
|
-
.pipe(switchMap(() =>
|
|
860
|
-
.toPromise();
|
|
866
|
+
observable = timer(opts.dueTime)
|
|
867
|
+
.pipe(switchMap(() => observable));
|
|
861
868
|
}
|
|
862
869
|
return firstTrue(observable, opts).toPromise();
|
|
863
870
|
}
|
|
@@ -1732,8 +1739,7 @@ class MatAutocompleteField {
|
|
|
1732
1739
|
? timer(0)
|
|
1733
1740
|
: this.autocomplete.opened.pipe(debounceTime(200));
|
|
1734
1741
|
const scrollEnd$ = opened$
|
|
1735
|
-
.pipe(map((_) => this.getAutocompletePanel()), filter(isNotNil), switchMap((panel) => fromScrollEndEvent(panel, threshold)
|
|
1736
|
-
.pipe(takeUntil(this.autocomplete.closed))));
|
|
1742
|
+
.pipe(map((_) => this.getAutocompletePanel()), filter(isNotNil), switchMap((panel) => fromScrollEndEvent(panel, threshold)), takeUntil(this.autocomplete.closed));
|
|
1737
1743
|
// Trigger fetch more, end end scroll reached
|
|
1738
1744
|
this._openedSubscription = scrollEnd$
|
|
1739
1745
|
.subscribe(() => this._fetchMore$.emit());
|
|
@@ -1753,8 +1759,7 @@ class MatAutocompleteField {
|
|
|
1753
1759
|
? timer(0)
|
|
1754
1760
|
: this.matSelect._openedStream.pipe(debounceTime(200));
|
|
1755
1761
|
const scrollEnd$ = opened$
|
|
1756
|
-
.pipe(map((_) => this.getMatSelectPanel()), filter(isNotNil), switchMap((panel) => fromScrollEndEvent(panel, threshold)
|
|
1757
|
-
.pipe(takeUntil(this.matSelect._closedStream))));
|
|
1762
|
+
.pipe(map((_) => this.getMatSelectPanel()), filter(isNotNil), switchMap((panel) => fromScrollEndEvent(panel, threshold)), takeUntil(this.matSelect._closedStream));
|
|
1758
1763
|
// Trigger fetch more, end end scroll reached
|
|
1759
1764
|
this._openedSubscription = scrollEnd$
|
|
1760
1765
|
.pipe(filter(_ => this._moreItemsCount > 0))
|
|
@@ -8143,8 +8148,7 @@ class MatChipsField {
|
|
|
8143
8148
|
? timer(0)
|
|
8144
8149
|
: this.autocomplete.opened.pipe(debounceTime(200));
|
|
8145
8150
|
const scrollEnd$ = opened$
|
|
8146
|
-
.pipe(map((_) => this.getAutocompletePanel()), filter(isNotNil), switchMap((panel) => fromScrollEndEvent(panel, threshold)
|
|
8147
|
-
.pipe(takeUntil(this.autocomplete.closed))));
|
|
8151
|
+
.pipe(map((_) => this.getAutocompletePanel()), filter(isNotNil), switchMap((panel) => fromScrollEndEvent(panel, threshold)), takeUntil(this.autocomplete.closed));
|
|
8148
8152
|
// Trigger fetch more, end end scroll reached
|
|
8149
8153
|
this._openedSubscription = scrollEnd$
|
|
8150
8154
|
.subscribe(() => this._fetchMore$.emit());
|
|
@@ -29080,6 +29084,95 @@ DateTestPage.ctorParameters = () => [
|
|
|
29080
29084
|
{ type: ChangeDetectorRef }
|
|
29081
29085
|
];
|
|
29082
29086
|
|
|
29087
|
+
class ObservableTestPage {
|
|
29088
|
+
constructor() {
|
|
29089
|
+
this._stopSubject = new Subject();
|
|
29090
|
+
this.$value = new Subject();
|
|
29091
|
+
this.runningTaskCount = 0;
|
|
29092
|
+
this.taskId = 0;
|
|
29093
|
+
this.options = {
|
|
29094
|
+
stop: this._stopSubject
|
|
29095
|
+
};
|
|
29096
|
+
}
|
|
29097
|
+
ngOnDestroy() {
|
|
29098
|
+
this._stopSubject.next();
|
|
29099
|
+
}
|
|
29100
|
+
setOptions(opts) {
|
|
29101
|
+
var _a;
|
|
29102
|
+
this.options = Object.assign(Object.assign({}, this.options), opts);
|
|
29103
|
+
this.log('Options changes to: ', Object.assign(Object.assign({}, this.options), { stop: ((_a = this.options) === null || _a === void 0 ? void 0 : _a.stop) ? '$stop' : 'null' }));
|
|
29104
|
+
}
|
|
29105
|
+
setOptionsError(errorMessage) {
|
|
29106
|
+
this.setOptions({ stopError: new Error(errorMessage) });
|
|
29107
|
+
}
|
|
29108
|
+
firstNotNilPromise(opts) {
|
|
29109
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29110
|
+
const logPrefix = `[firstNotNilPromise() #${++this.taskId}] `;
|
|
29111
|
+
yield this.execute(firstNotNilPromise, opts, logPrefix);
|
|
29112
|
+
});
|
|
29113
|
+
}
|
|
29114
|
+
waitForTrue(opts) {
|
|
29115
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29116
|
+
const logPrefix = `[waitForTrue() #${++this.taskId}] `;
|
|
29117
|
+
yield this.execute(waitForTrue, opts, logPrefix);
|
|
29118
|
+
});
|
|
29119
|
+
}
|
|
29120
|
+
execute(fn, opts, logPrefix) {
|
|
29121
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29122
|
+
opts = Object.assign(Object.assign(Object.assign({}, this.options), { stop: this._stopSubject }), opts);
|
|
29123
|
+
logPrefix = logPrefix || `[#${++this.taskId}] `;
|
|
29124
|
+
const value$ = this.$value.pipe(tap(value => this.log(logPrefix + `Received value: ${value}`)));
|
|
29125
|
+
try {
|
|
29126
|
+
this.runningTaskCount++;
|
|
29127
|
+
this.log(logPrefix + 'Waiting...');
|
|
29128
|
+
// Execute the async function
|
|
29129
|
+
const result = yield fn(value$, opts);
|
|
29130
|
+
// Dump result
|
|
29131
|
+
if (isNotNil(result))
|
|
29132
|
+
this.log(logPrefix + '[OK] with result:', result);
|
|
29133
|
+
else
|
|
29134
|
+
this.log(logPrefix + '[OK]');
|
|
29135
|
+
}
|
|
29136
|
+
catch (err) {
|
|
29137
|
+
const errorMsg = logPrefix + 'Error: ' + ((err === null || err === void 0 ? void 0 : err.message) || '');
|
|
29138
|
+
console.error(errorMsg, err);
|
|
29139
|
+
this.log(errorMsg
|
|
29140
|
+
+ ((err === null || err === void 0 ? void 0 : err.originalStack) ? `<pre>${err.originalStack}</pre>` : ''));
|
|
29141
|
+
}
|
|
29142
|
+
finally {
|
|
29143
|
+
this.runningTaskCount--;
|
|
29144
|
+
}
|
|
29145
|
+
});
|
|
29146
|
+
}
|
|
29147
|
+
emit(value) {
|
|
29148
|
+
this.$value.next(value);
|
|
29149
|
+
}
|
|
29150
|
+
stop() {
|
|
29151
|
+
this._stopSubject.next();
|
|
29152
|
+
}
|
|
29153
|
+
log(message, ...args) {
|
|
29154
|
+
let fullMessage = `${toDateISOString(moment$3())} - ${message}`;
|
|
29155
|
+
if (args === null || args === void 0 ? void 0 : args.length) {
|
|
29156
|
+
fullMessage += ' - <small>' + args.map(JSON.stringify).join(', ') + '</small>';
|
|
29157
|
+
}
|
|
29158
|
+
this.appendLog(fullMessage);
|
|
29159
|
+
}
|
|
29160
|
+
appendLog(message) {
|
|
29161
|
+
this.resultDiv.nativeElement.innerHTML += message + '<br/>';
|
|
29162
|
+
}
|
|
29163
|
+
}
|
|
29164
|
+
ObservableTestPage.decorators = [
|
|
29165
|
+
{ type: Component, args: [{
|
|
29166
|
+
selector: 'app-observable-test',
|
|
29167
|
+
template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Observables test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <ion-card>\n <ion-card-header>\n <ion-card-title>waitFor, waitForTrue, waitForFalse</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <div style=\"display: inline-block\">\n <p>Set options: </p>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: false})\">stopError: false</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: true})\">stopError: true</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({stopError: 'my error'})\">stopError: 'my error'</ion-button>\n\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: 2000})\">timeout: 2000</ion-button>\n <ion-button color=\"medium\" fill=\"outline\" (click)=\"setOptions({timeout: null})\">timeout: null</ion-button>\n <br/>\n <p>Call await function: </p>\n <ion-button (click)=\"waitForTrue()\">waitForTrue</ion-button>\n <ion-button (click)=\"firstNotNilPromise()\">firstNotNilPromise</ion-button>\n <br/>\n <p>Send event to source: </p>\n <ion-button (click)=\"emit(true)\">Emit 'true'</ion-button>\n <ion-button (click)=\"emit(false)\">Emit 'false'</ion-button>\n <br/>\n <p>Stop: </p>\n <ion-button color=\"danger\" (click)=\"stop()\">Stop</ion-button>\n </div>\n </ion-card-content>\n </ion-card>\n\n <ion-card>\n <ion-toolbar>\n <ion-title>Running job count: {{runningTaskCount}}</ion-title>\n <ion-button fill=\"outline\" slot=\"end\" (click)=\"result.innerHTML=''\">Clear log</ion-button>\n </ion-toolbar>\n <ion-card-content>\n <div #result style=\"color: var(--ion-color-medium)\">\n </div>\n </ion-card-content>\n </ion-card>\n</ion-content>\n",
|
|
29168
|
+
styles: ["ion-button{text-transform:none!important}"]
|
|
29169
|
+
},] }
|
|
29170
|
+
];
|
|
29171
|
+
ObservableTestPage.ctorParameters = () => [];
|
|
29172
|
+
ObservableTestPage.propDecorators = {
|
|
29173
|
+
resultDiv: [{ type: ViewChild, args: ['result',] }]
|
|
29174
|
+
};
|
|
29175
|
+
|
|
29083
29176
|
const SHARED_MATERIAL_TESTING_PAGES = [
|
|
29084
29177
|
{ label: 'Shared Material components', divider: true },
|
|
29085
29178
|
{ label: 'Date/Time field', page: '/testing/shared/datetime' },
|
|
@@ -29090,7 +29183,9 @@ const SHARED_MATERIAL_TESTING_PAGES = [
|
|
|
29090
29183
|
{ label: 'Swipe component', page: '/testing/shared/swipe' },
|
|
29091
29184
|
{ label: 'Chips component', page: '/testing/shared/chips' },
|
|
29092
29185
|
{ label: 'Shared directives', divider: true },
|
|
29093
|
-
{ label: 'Badge icon directive', page: '/testing/shared/badge-icon' }
|
|
29186
|
+
{ label: 'Badge icon directive', page: '/testing/shared/badge-icon' },
|
|
29187
|
+
{ label: 'Shared utils', divider: true },
|
|
29188
|
+
{ label: 'Observable', page: '/testing/shared/observable' }
|
|
29094
29189
|
];
|
|
29095
29190
|
const routes$1 = [
|
|
29096
29191
|
{
|
|
@@ -29098,6 +29193,11 @@ const routes$1 = [
|
|
|
29098
29193
|
pathMatch: 'full',
|
|
29099
29194
|
component: SharedTestsPage
|
|
29100
29195
|
},
|
|
29196
|
+
{
|
|
29197
|
+
path: 'observable',
|
|
29198
|
+
pathMatch: 'full',
|
|
29199
|
+
component: ObservableTestPage
|
|
29200
|
+
},
|
|
29101
29201
|
{
|
|
29102
29202
|
path: 'autocomplete',
|
|
29103
29203
|
pathMatch: 'full',
|
|
@@ -29159,7 +29259,8 @@ MaterialTestingModule.decorators = [
|
|
|
29159
29259
|
NumpadTestPage,
|
|
29160
29260
|
SwipeTestPage,
|
|
29161
29261
|
ChipsTestPage,
|
|
29162
|
-
MatBadgeIconTestPage
|
|
29262
|
+
MatBadgeIconTestPage,
|
|
29263
|
+
ObservableTestPage
|
|
29163
29264
|
],
|
|
29164
29265
|
exports: [
|
|
29165
29266
|
SharedMaterialModule,
|
|
@@ -29170,7 +29271,8 @@ MaterialTestingModule.decorators = [
|
|
|
29170
29271
|
LatLongTestPage,
|
|
29171
29272
|
NumpadTestPage,
|
|
29172
29273
|
SwipeTestPage,
|
|
29173
|
-
ChipsTestPage
|
|
29274
|
+
ChipsTestPage,
|
|
29275
|
+
ObservableTestPage
|
|
29174
29276
|
]
|
|
29175
29277
|
},] }
|
|
29176
29278
|
];
|
|
@@ -30338,5 +30440,5 @@ JobProgressionTestService.decorators = [
|
|
|
30338
30440
|
* Generated bundle index. Do not edit.
|
|
30339
30441
|
*/
|
|
30340
30442
|
|
|
30341
|
-
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_JOB_PROGRESSION_SERVICE, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_MENU_OPTIONS, APP_TESTING_PAGES, APP_USER_EVENT_SERVICE, AboutModal, AbstractUserEventService, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AndroidOsEnvironment, AnimationState, AppEditor, AppEditorOptions, AppEntityEditor, AppEntityEditorModal, AppEntityEditorModalOptions, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppIconComponent, AppIconModule, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayJoinPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutoTitleDirective, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, CsvUtils, DATE_ISO_PATTERN, DATE_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_MENU_SHOW_WHEN, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, FormGetValuePipe, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, IMAGE_DEFAULTS, ImagesUtils, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, Job, JobModule, JobProgression, JobProgressionIcon, JobProgressionList, JobProgressionService, JobProgressionTestService, JobProgressionTestingPage, JobTestingModule, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MOMENT_NO_TIME_PROPERTY, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuOptions, MenuService, Message, MessageFilter, MessageForm, MessageModal, MessageModule, MessageService, MessageTypeList, MessageTypes, MimeTypes, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyFormatPipe, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, ResizableComponent, ResizableDirective, ResizableModule, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SOCIAL_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, ServerErrorCodes, SettingsPage, SharedAsyncValidators, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialErrorCodes, SocialModule, SocialModuleOptionsToken, SocialTestingModule, Software, StartableService, StatusById, StatusIds, StatusList, StrIncludesPipe, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UriUtils, UserEventModule, UserEventNotificationIcon, UserEventTestService, UserEventTestingModule, UserEventTestingPage, UserSettings, UsersPage, accountToString, adaptValueToControl, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, escapeRegExp, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isBlankString, isControlHasInput, isCordova, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilBoolean, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isProgressEvent, isResponseEvent, isTouchUi, isWindows, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moment$3 as moment, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, patchValueInArray, propertiesPathComparator, propertyComparator, propertyPathComparator, pushValueInArray, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, tz, uncapitalizeFirstLetter, updateValueAndValidity, uuidv4, waitFor, waitForFalse, waitForTrue, waitIdle, waitWhilePending, ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, StartableObservableService as ɵc, isFocusableElement as ɵd, RegisterForm as ɵe, AccountValidatorService as ɵf, RegisterModal as ɵg, UserSettingsValidatorService as ɵh, LocalSettingsValidatorService as ɵi, AppUpdateOfflineModeCard as ɵj, UserEventNotificationList as ɵk,
|
|
30443
|
+
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_JOB_PROGRESSION_SERVICE, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_MENU_OPTIONS, APP_TESTING_PAGES, APP_USER_EVENT_SERVICE, AboutModal, AbstractUserEventService, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AndroidOsEnvironment, AnimationState, AppEditor, AppEditorOptions, AppEntityEditor, AppEntityEditorModal, AppEntityEditorModalOptions, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppIconComponent, AppIconModule, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayJoinPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutoTitleDirective, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, CsvUtils, DATE_ISO_PATTERN, DATE_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_MENU_SHOW_WHEN, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, FormGetValuePipe, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, IMAGE_DEFAULTS, ImagesUtils, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, Job, JobModule, JobProgression, JobProgressionIcon, JobProgressionList, JobProgressionService, JobProgressionTestService, JobProgressionTestingPage, JobTestingModule, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MOMENT_NO_TIME_PROPERTY, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuOptions, MenuService, Message, MessageFilter, MessageForm, MessageModal, MessageModule, MessageService, MessageTypeList, MessageTypes, MimeTypes, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyFormatPipe, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, ResizableComponent, ResizableDirective, ResizableModule, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SOCIAL_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, ServerErrorCodes, SettingsPage, SharedAsyncValidators, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialErrorCodes, SocialModule, SocialModuleOptionsToken, SocialTestingModule, Software, StartableService, StatusById, StatusIds, StatusList, StrIncludesPipe, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UriUtils, UserEventModule, UserEventNotificationIcon, UserEventTestService, UserEventTestingModule, UserEventTestingPage, UserSettings, UsersPage, accountToString, adaptValueToControl, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, escapeRegExp, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isBlankString, isControlHasInput, isCordova, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilBoolean, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isProgressEvent, isResponseEvent, isTouchUi, isWindows, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moment$3 as moment, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, patchValueInArray, propertiesPathComparator, propertyComparator, propertyPathComparator, pushValueInArray, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, tz, uncapitalizeFirstLetter, updateValueAndValidity, uuidv4, waitFor, waitForFalse, waitForTrue, waitIdle, waitWhilePending, ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, StartableObservableService as ɵc, isFocusableElement as ɵd, RegisterForm as ɵe, AccountValidatorService as ɵf, RegisterModal as ɵg, UserSettingsValidatorService as ɵh, LocalSettingsValidatorService as ɵi, AppUpdateOfflineModeCard as ɵj, UserEventNotificationList as ɵk, ObservableTestPage as ɵl, DateTestPage as ɵm, NumpadTestPage as ɵn, MatBadgeIconTestPage as ɵo, ToastTestingModule as ɵp, ToastTestingPage as ɵq };
|
|
30342
30444
|
//# sourceMappingURL=sumaris-net.ngx-components.js.map
|