valtech-components 2.0.735 → 2.0.738
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/esm2022/lib/components/organisms/form/form.component.mjs +196 -162
- package/esm2022/lib/services/preferences/preferences.service.mjs +6 -2
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +201 -162
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/form/form.component.d.ts +2 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -53,12 +53,16 @@ export class PreferencesService {
|
|
|
53
53
|
}
|
|
54
54
|
}, { allowSignalWrites: true });
|
|
55
55
|
// Side-effect: aplicar theme local cuando llega snapshot real.
|
|
56
|
+
// OJO: usar `toggleUserPreference()` y NO el setter `Theme =`. El setter
|
|
57
|
+
// solo persiste localStorage + emite el BehaviorSubject; no aplica las
|
|
58
|
+
// clases `body.dark`/`body.light` que el palette `dark.class.css` de
|
|
59
|
+
// Ionic necesita para conmutar el tema visible.
|
|
56
60
|
effect(() => {
|
|
57
61
|
if (!this._synced())
|
|
58
62
|
return;
|
|
59
63
|
const t = this._theme();
|
|
60
64
|
if (this.themeService) {
|
|
61
|
-
this.themeService.
|
|
65
|
+
this.themeService.toggleUserPreference(t);
|
|
62
66
|
}
|
|
63
67
|
});
|
|
64
68
|
// Side-effect: aplicar language local cuando llega snapshot real.
|
|
@@ -163,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
163
167
|
}] }, { type: i5.I18nService, decorators: [{
|
|
164
168
|
type: Optional
|
|
165
169
|
}] }] });
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBZ0IsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBY3JEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBZTdCLFlBQ3VDLE1BQXlCLEVBQ3RELFNBQTJCLEVBQzNCLElBQWlCLEVBQ2pCLElBQWdCLEVBQ0osWUFBaUMsRUFDakMsSUFBd0I7UUFMUCxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN0RCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDSixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsU0FBSSxHQUFKLElBQUksQ0FBb0I7UUFwQjdCLFdBQU0sR0FBRyxNQUFNLENBQW1CLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLGNBQVMsR0FBRyxNQUFNLENBQXNCLElBQUksQ0FBQyxDQUFDO1FBQzlDLHlCQUFvQixHQUFHLE1BQU0sQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUM5RCxzRkFBc0Y7UUFDckUsWUFBTyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUV6QyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNqQyxhQUFRLEdBQUcsSUFBSSxDQUFD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QUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7K0dBeklVLGtCQUFrQixrQkFnQm5CLG1CQUFtQjttSEFoQmxCLGtCQUFrQixjQURMLE1BQU07OzRGQUNuQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFpQjdCLE1BQU07MkJBQUMsbUJBQW1COzswQkFJMUIsUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVkFMVEVDSF9BVVRIX0NPTkZJRyB9IGZyb20gJy4uL2F1dGgvY29uZmlnJztcbmltcG9ydCB7IFZhbHRlY2hBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC90eXBlcyc7XG5pbXBvcnQgeyBGaXJlc3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vZmlyZWJhc2UvZmlyZXN0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4bkxhbmcgfSBmcm9tICcuLi9pMThuL3R5cGVzJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vaTE4bi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGhlbWVPcHRpb24sIFRoZW1lU2VydmljZSB9IGZyb20gJy4uL3RoZW1lLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgUHJlZmVyZW5jZXNEb2N1bWVudCxcbiAgUHJlZmVyZW5jZXNMYW5ndWFnZSxcbiAgUHJlZmVyZW5jZXNUaGVtZSxcbiAgUHJlZmVyZW5jZXNVcGRhdGUsXG4gIFByZWZlcmVuY2VzVXBkYXRlUmVzcG9uc2UsXG59IGZyb20gJy4vcHJlZmVyZW5jZXMudHlwZXMnO1xuXG4vKipcbiAqIFByZWZlcmVuY2VzU2VydmljZSDigJQgcHJlZmVyZW5jaWFzIGRlbCB1c2VyIGVuIGVsIGRvYyBjYW7Ds25pY28gRmlyZXN0b3JlXG4gKiBgL2FwcHMve2FwcElkfS91c2Vycy97dWlkfS9wcmVmZXJlbmNlcy9tYWluYC5cbiAqXG4gKiBSZWFkIHJlYWN0aXZvIChzaWduYWxzKSB2aWEgbGlzdGVuZXIgRmlyZXN0b3JlLlxuICogV3JpdGUgdmlhIGBQVVQgL3YyL2F1dGgvcHJlZmVyZW5jZXNgIChjbGllbnRlIE5VTkNBIGVzY3JpYmUgRmlyZXN0b3JlIGRpcmVjdG8g4oCUXG4gKiB2ZXIgbWVtb3JpYSBgZmVlZGJhY2tfbm9fZGlyZWN0X2ZpcmVzdG9yZV93cml0ZXNgKS5cbiAqXG4gKiBTaWRlLWVmZmVjdHMgYXV0b23DoXRpY29zOlxuICogLSBDdWFuZG8gYHRoZW1lKClgIGNhbWJpYSDihpIgYFRoZW1lU2VydmljZS5UaGVtZSA9IC4uLmBcbiAqIC0gQ3VhbmRvIGBsYW5ndWFnZSgpYCBjYW1iaWEg4oaSIGBJMThuU2VydmljZS5zZXRMYW5ndWFnZSguLi4pYFxuICpcbiAqIEF1dG8tYmluZCBhbCB1c2VyIGFjdHVhbCB2aWEgYEF1dGhTZXJ2aWNlLnVzZXIoKWAuIFNpbiB1c2VyIChsb2dvdXQpIOKGkiB1bmJpbmQuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUHJlZmVyZW5jZXNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfdGhlbWUgPSBzaWduYWw8UHJlZmVyZW5jZXNUaGVtZT4oJ2F1dG8nKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbGFuZ3VhZ2UgPSBzaWduYWw8UHJlZmVyZW5jZXNMYW5ndWFnZT4oJ2VzJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX25vdGlmaWNhdGlvbnNNYXN0ZXIgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG4gIC8qKiBgdHJ1ZWAgZGVzcHXDqXMgZGVsIHByaW1lciBzbmFwc2hvdCBGaXJlc3RvcmUuIEFudGVzLCBkZWZhdWx0cyBzaW4gc2lkZS1lZmZlY3RzLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9zeW5jZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHRoZW1lID0gdGhpcy5fdGhlbWUuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBsYW5ndWFnZSA9IHRoaXMuX2xhbmd1YWdlLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uc01hc3RlciA9IHRoaXMuX25vdGlmaWNhdGlvbnNNYXN0ZXIuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBzeW5jZWQgPSB0aGlzLl9zeW5jZWQuYXNSZWFkb25seSgpO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGN1cnJlbnRVc2VySWQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChWQUxURUNIX0FVVEhfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogVmFsdGVjaEF1dGhDb25maWcsXG4gICAgcHJpdmF0ZSBmaXJlc3RvcmU6IEZpcmVzdG9yZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB0aGVtZVNlcnZpY2U6IFRoZW1lU2VydmljZSB8IG51bGwsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBpMThuOiBJMThuU2VydmljZSB8IG51bGxcbiAgKSB7XG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB0aGlzLnVuYmluZCgpKTtcblxuICAgIC8vIEF1dG8tYmluZCBhbCB1c2VyIGFjdHVhbC4gZWZmZWN0KCkgY29ycmUgZW4gaW5qZWN0aW9uIGNvbnRleHQgKGNvbnN0cnVjdG9yIE9LKS5cbiAgICAvLyBhbGxvd1NpZ25hbFdyaXRlczogYmluZFRvVXNlci91bmJpbmQgZXNjcmliZW4gYF9zeW5jZWRgIChzZcOxYWwgaW50ZXJuYSBzaW5cbiAgICAvLyBkZXBlbmRlbmNpYXMgZGVsIHByb3BpbyBlZmZlY3QpIOKGkiBzZWd1cm8geSBuZWNlc2FyaW8uXG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5hdXRoLnVzZXIoKTtcbiAgICAgICAgaWYgKHVzZXI/LnVzZXJJZCkge1xuICAgICAgICAgIHRoaXMuYmluZFRvVXNlcih1c2VyLnVzZXJJZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy51bmJpbmQoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG5cbiAgICAvLyBTaWRlLWVmZmVjdDogYXBsaWNhciB0aGVtZSBsb2NhbCBjdWFuZG8gbGxlZ2Egc25hcHNob3QgcmVhbC5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9zeW5jZWQoKSkgcmV0dXJuO1xuICAgICAgY29uc3QgdCA9IHRoaXMuX3RoZW1lKCk7XG4gICAgICBpZiAodGhpcy50aGVtZVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy50aGVtZVNlcnZpY2UuVGhlbWUgPSB0IGFzIFRoZW1lT3B0aW9uO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gU2lkZS1lZmZlY3Q6IGFwbGljYXIgbGFuZ3VhZ2UgbG9jYWwgY3VhbmRvIGxsZWdhIHNuYXBzaG90IHJlYWwuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5fc3luY2VkKCkpIHJldHVybjtcbiAgICAgIGNvbnN0IGwgPSB0aGlzLl9sYW5ndWFnZSgpO1xuICAgICAgaWYgKHRoaXMuaTE4biAmJiB0aGlzLmkxOG4ubGFuZygpICE9PSBsKSB7XG4gICAgICAgIHRoaXMuaTE4bi5zZXRMYW5ndWFnZShsIGFzIEkxOG5MYW5nKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBBY3R1YWxpemEgcHJlZmVyZW5jaWFzIHZpYSBiYWNrZW5kLiBPcHRpbWlzdGljIFVJOiBhcGxpY2EgbG9jYWwsIHJldmllcnRlIHNpIGZhbGxhLiAqL1xuICBhc3luYyB1cGRhdGUocGFydGlhbDogUHJlZmVyZW5jZXNVcGRhdGUpOiBQcm9taXNlPFByZWZlcmVuY2VzVXBkYXRlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L3YyL2F1dGgvcHJlZmVyZW5jZXNgO1xuXG4gICAgY29uc3QgcHJldiA9IHtcbiAgICAgIHRoZW1lOiB0aGlzLl90aGVtZSgpLFxuICAgICAgbGFuZ3VhZ2U6IHRoaXMuX2xhbmd1YWdlKCksXG4gICAgICBtYXN0ZXI6IHRoaXMuX25vdGlmaWNhdGlvbnNNYXN0ZXIoKSxcbiAgICB9O1xuXG4gICAgaWYgKHBhcnRpYWwudGhlbWUpIHRoaXMuX3RoZW1lLnNldChwYXJ0aWFsLnRoZW1lKTtcbiAgICBpZiAocGFydGlhbC5sYW5ndWFnZSkgdGhpcy5fbGFuZ3VhZ2Uuc2V0KHBhcnRpYWwubGFuZ3VhZ2UpO1xuICAgIGlmIChwYXJ0aWFsLm5vdGlmaWNhdGlvbnMgJiYgdHlwZW9mIHBhcnRpYWwubm90aWZpY2F0aW9ucy5tYXN0ZXIgPT09ICdib29sZWFuJykge1xuICAgICAgdGhpcy5fbm90aWZpY2F0aW9uc01hc3Rlci5zZXQocGFydGlhbC5ub3RpZmljYXRpb25zLm1hc3Rlcik7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wdXQ8UHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZT4odXJsLCBwYXJ0aWFsKSk7XG4gICAgICAvLyBFbCBsaXN0ZW5lciBGaXJlc3RvcmUgZXMgbGEgZnVlbnRlIGZpbmFsLCBwZXJvIGFsaW5lYXIgeWEgY29uIGxhXG4gICAgICAvLyByZXNwdWVzdGEgZGVsIGJhY2tlbmQgYWNlbGVyYSBVWCAoZXNwZWNpYWxtZW50ZSBzaSBlbCBsaXN0ZW5lclxuICAgICAgLy8gdGFyZGEgZW4gcHJvcGFnYXIpLlxuICAgICAgaWYgKHJlcy50aGVtZSkgdGhpcy5fdGhlbWUuc2V0KHJlcy50aGVtZSBhcyBQcmVmZXJlbmNlc1RoZW1lKTtcbiAgICAgIGlmIChyZXMubGFuZ3VhZ2UpIHRoaXMuX2xhbmd1YWdlLnNldChyZXMubGFuZ3VhZ2UgYXMgUHJlZmVyZW5jZXNMYW5ndWFnZSk7XG4gICAgICBpZiAodHlwZW9mIHJlcy5ub3RpZmljYXRpb25zPy5tYXN0ZXIgPT09ICdib29sZWFuJykge1xuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zTWFzdGVyLnNldChyZXMubm90aWZpY2F0aW9ucy5tYXN0ZXIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIFJldmVydCBvcHRpbWlzdGljLlxuICAgICAgdGhpcy5fdGhlbWUuc2V0KHByZXYudGhlbWUpO1xuICAgICAgdGhpcy5fbGFuZ3VhZ2Uuc2V0KHByZXYubGFuZ3VhZ2UpO1xuICAgICAgdGhpcy5fbm90aWZpY2F0aW9uc01hc3Rlci5zZXQocHJldi5tYXN0ZXIpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIHNldFRoZW1lKHRoZW1lOiBQcmVmZXJlbmNlc1RoZW1lKTogUHJvbWlzZTxQcmVmZXJlbmNlc1VwZGF0ZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlKHsgdGhlbWUgfSk7XG4gIH1cblxuICBzZXRMYW5ndWFnZShsYW5ndWFnZTogUHJlZmVyZW5jZXNMYW5ndWFnZSk6IFByb21pc2U8UHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZSh7IGxhbmd1YWdlIH0pO1xuICB9XG5cbiAgc2V0Tm90aWZpY2F0aW9uc01hc3RlcihlbmFibGVkOiBib29sZWFuKTogUHJvbWlzZTxQcmVmZXJlbmNlc1VwZGF0ZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlKHsgbm90aWZpY2F0aW9uczogeyBtYXN0ZXI6IGVuYWJsZWQgfSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYmluZFRvVXNlcih1c2VySWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRVc2VySWQgPT09IHVzZXJJZCAmJiB0aGlzLnN1YnNjcmlwdGlvbikgcmV0dXJuO1xuICAgIHRoaXMudW5iaW5kKCk7XG4gICAgdGhpcy5jdXJyZW50VXNlcklkID0gdXNlcklkO1xuICAgIC8vIEZpcmVzdG9yZVNlcnZpY2UuZG9jQ2hhbmdlcyBwcmVmaWphIGF1dG9tw6F0aWNhbWVudGUgYGFwcHMve2FwcElkfS9gXG4gICAgLy8gY3VhbmRvIGBjb25maWcuYXBwSWRgIGVzdMOhIHNldGVhZG8gZW4gVmFsdGVjaEF1dGhDb25maWcuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmZpcmVzdG9yZVxuICAgICAgLmRvY0NoYW5nZXM8UHJlZmVyZW5jZXNEb2N1bWVudCAmIHsgaWQ/OiBzdHJpbmcgfT4oYHVzZXJzLyR7dXNlcklkfS9wcmVmZXJlbmNlc2AsICdtYWluJylcbiAgICAgIC5zdWJzY3JpYmUoZG9jID0+IHtcbiAgICAgICAgaWYgKCFkb2MpIHtcbiAgICAgICAgICAvLyBEb2Mgbm8gZXhpc3RlIGHDum4gKHVzZXIgbnVldm8sIHNpbiBwcmltZXIgc3luYykuIE1hbnRlbmVtb3NcbiAgICAgICAgICAvLyBkZWZhdWx0cyBsb2NhbGVzIHBlcm8gTk8gbWFyY2Ftb3Mgc3luY2VkIOKAlCBsb3Mgc2lkZS1lZmZlY3RzIG5vXG4gICAgICAgICAgLy8gcGlzYW4gZWwgdGhlbWUvbGFuZyBsb2NhbGVzIGNvbiB2YWxvcmVzIGFyYml0cmFyaW9zLlxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZG9jLnRoZW1lKSB0aGlzLl90aGVtZS5zZXQoZG9jLnRoZW1lKTtcbiAgICAgICAgaWYgKGRvYy5sYW5ndWFnZSkgdGhpcy5fbGFuZ3VhZ2Uuc2V0KGRvYy5sYW5ndWFnZSk7XG4gICAgICAgIGlmIChkb2Mubm90aWZpY2F0aW9ucyAmJiB0eXBlb2YgZG9jLm5vdGlmaWNhdGlvbnMubWFzdGVyID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zTWFzdGVyLnNldChkb2Mubm90aWZpY2F0aW9ucy5tYXN0ZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N5bmNlZC5zZXQodHJ1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5iaW5kKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY3VycmVudFVzZXJJZCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9zeW5jZWQuc2V0KGZhbHNlKTtcbiAgfVxufVxuIl19
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBZ0IsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBY3JEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBZTdCLFlBQ3VDLE1BQXlCLEVBQ3RELFNBQTJCLEVBQzNCLElBQWlCLEVBQ2pCLElBQWdCLEVBQ0osWUFBaUMsRUFDakMsSUFBd0I7UUFMUCxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN0RCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDSixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsU0FBSSxHQUFKLElBQUksQ0FBb0I7UUFwQjdCLFdBQU0sR0FBRyxNQUFNLENBQW1CLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLGNBQVMsR0FBRyxNQUFNLENBQXNCLElBQUksQ0FBQyxDQUFDO1FBQzlDLHlCQUFvQixHQUFHLE1BQU0sQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUM5RCxzRkFBc0Y7UUFDckUsWUFBTyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUV6QyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNqQyxhQUFRLEdBQUcsSUFBSSxDQUFD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LENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sTUFBTTtRQUNaLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzsrR0E3SVUsa0JBQWtCLGtCQWdCbkIsbUJBQW1CO21IQWhCbEIsa0JBQWtCLGNBREwsTUFBTTs7NEZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQWlCN0IsTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUkxQixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBWQUxURUNIX0FVVEhfQ09ORklHIH0gZnJvbSAnLi4vYXV0aC9jb25maWcnO1xuaW1wb3J0IHsgVmFsdGVjaEF1dGhDb25maWcgfSBmcm9tICcuLi9hdXRoL3R5cGVzJztcbmltcG9ydCB7IEZpcmVzdG9yZVNlcnZpY2UgfSBmcm9tICcuLi9maXJlYmFzZS9maXJlc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBJMThuTGFuZyB9IGZyb20gJy4uL2kxOG4vdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi9pMThuL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBUaGVtZU9wdGlvbiwgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vdGhlbWUuc2VydmljZSc7XG5pbXBvcnQge1xuICBQcmVmZXJlbmNlc0RvY3VtZW50LFxuICBQcmVmZXJlbmNlc0xhbmd1YWdlLFxuICBQcmVmZXJlbmNlc1RoZW1lLFxuICBQcmVmZXJlbmNlc1VwZGF0ZSxcbiAgUHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZSxcbn0gZnJvbSAnLi9wcmVmZXJlbmNlcy50eXBlcyc7XG5cbi8qKlxuICogUHJlZmVyZW5jZXNTZXJ2aWNlIOKAlCBwcmVmZXJlbmNpYXMgZGVsIHVzZXIgZW4gZWwgZG9jIGNhbsOzbmljbyBGaXJlc3RvcmVcbiAqIGAvYXBwcy97YXBwSWR9L3VzZXJzL3t1aWR9L3ByZWZlcmVuY2VzL21haW5gLlxuICpcbiAqIFJlYWQgcmVhY3Rpdm8gKHNpZ25hbHMpIHZpYSBsaXN0ZW5lciBGaXJlc3RvcmUuXG4gKiBXcml0ZSB2aWEgYFBVVCAvdjIvYXV0aC9wcmVmZXJlbmNlc2AgKGNsaWVudGUgTlVOQ0EgZXNjcmliZSBGaXJlc3RvcmUgZGlyZWN0byDigJRcbiAqIHZlciBtZW1vcmlhIGBmZWVkYmFja19ub19kaXJlY3RfZmlyZXN0b3JlX3dyaXRlc2ApLlxuICpcbiAqIFNpZGUtZWZmZWN0cyBhdXRvbcOhdGljb3M6XG4gKiAtIEN1YW5kbyBgdGhlbWUoKWAgY2FtYmlhIOKGkiBgVGhlbWVTZXJ2aWNlLlRoZW1lID0gLi4uYFxuICogLSBDdWFuZG8gYGxhbmd1YWdlKClgIGNhbWJpYSDihpIgYEkxOG5TZXJ2aWNlLnNldExhbmd1YWdlKC4uLilgXG4gKlxuICogQXV0by1iaW5kIGFsIHVzZXIgYWN0dWFsIHZpYSBgQXV0aFNlcnZpY2UudXNlcigpYC4gU2luIHVzZXIgKGxvZ291dCkg4oaSIHVuYmluZC5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQcmVmZXJlbmNlc1NlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF90aGVtZSA9IHNpZ25hbDxQcmVmZXJlbmNlc1RoZW1lPignYXV0bycpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9sYW5ndWFnZSA9IHNpZ25hbDxQcmVmZXJlbmNlc0xhbmd1YWdlPignZXMnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbm90aWZpY2F0aW9uc01hc3RlciA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcbiAgLyoqIGB0cnVlYCBkZXNwdcOpcyBkZWwgcHJpbWVyIHNuYXBzaG90IEZpcmVzdG9yZS4gQW50ZXMsIGRlZmF1bHRzIHNpbiBzaWRlLWVmZmVjdHMuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N5bmNlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgdGhlbWUgPSB0aGlzLl90aGVtZS5hc1JlYWRvbmx5KCk7XG4gIHJlYWRvbmx5IGxhbmd1YWdlID0gdGhpcy5fbGFuZ3VhZ2UuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBub3RpZmljYXRpb25zTWFzdGVyID0gdGhpcy5fbm90aWZpY2F0aW9uc01hc3Rlci5hc1JlYWRvbmx5KCk7XG4gIHJlYWRvbmx5IHN5bmNlZCA9IHRoaXMuX3N5bmNlZC5hc1JlYWRvbmx5KCk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgY3VycmVudFVzZXJJZD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFZBTFRFQ0hfQVVUSF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBWYWx0ZWNoQXV0aENvbmZpZyxcbiAgICBwcml2YXRlIGZpcmVzdG9yZTogRmlyZXN0b3JlU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHRoZW1lU2VydmljZTogVGhlbWVTZXJ2aWNlIHwgbnVsbCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGkxOG46IEkxOG5TZXJ2aWNlIHwgbnVsbFxuICApIHtcbiAgICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIGRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHRoaXMudW5iaW5kKCkpO1xuXG4gICAgLy8gQXV0by1iaW5kIGFsIHVzZXIgYWN0dWFsLiBlZmZlY3QoKSBjb3JyZSBlbiBpbmplY3Rpb24gY29udGV4dCAoY29uc3RydWN0b3IgT0spLlxuICAgIC8vIGFsbG93U2lnbmFsV3JpdGVzOiBiaW5kVG9Vc2VyL3VuYmluZCBlc2NyaWJlbiBgX3N5bmNlZGAgKHNlw7FhbCBpbnRlcm5hIHNpblxuICAgIC8vIGRlcGVuZGVuY2lhcyBkZWwgcHJvcGlvIGVmZmVjdCkg4oaSIHNlZ3VybyB5IG5lY2VzYXJpby5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLmF1dGgudXNlcigpO1xuICAgICAgICBpZiAodXNlcj8udXNlcklkKSB7XG4gICAgICAgICAgdGhpcy5iaW5kVG9Vc2VyKHVzZXIudXNlcklkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnVuYmluZCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcblxuICAgIC8vIFNpZGUtZWZmZWN0OiBhcGxpY2FyIHRoZW1lIGxvY2FsIGN1YW5kbyBsbGVnYSBzbmFwc2hvdCByZWFsLlxuICAgIC8vIE9KTzogdXNhciBgdG9nZ2xlVXNlclByZWZlcmVuY2UoKWAgeSBOTyBlbCBzZXR0ZXIgYFRoZW1lID1gLiBFbCBzZXR0ZXJcbiAgICAvLyBzb2xvIHBlcnNpc3RlIGxvY2FsU3RvcmFnZSArIGVtaXRlIGVsIEJlaGF2aW9yU3ViamVjdDsgbm8gYXBsaWNhIGxhc1xuICAgIC8vIGNsYXNlcyBgYm9keS5kYXJrYC9gYm9keS5saWdodGAgcXVlIGVsIHBhbGV0dGUgYGRhcmsuY2xhc3MuY3NzYCBkZVxuICAgIC8vIElvbmljIG5lY2VzaXRhIHBhcmEgY29ubXV0YXIgZWwgdGVtYSB2aXNpYmxlLlxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX3N5bmNlZCgpKSByZXR1cm47XG4gICAgICBjb25zdCB0ID0gdGhpcy5fdGhlbWUoKTtcbiAgICAgIGlmICh0aGlzLnRoZW1lU2VydmljZSkge1xuICAgICAgICB0aGlzLnRoZW1lU2VydmljZS50b2dnbGVVc2VyUHJlZmVyZW5jZSh0IGFzIFRoZW1lT3B0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFNpZGUtZWZmZWN0OiBhcGxpY2FyIGxhbmd1YWdlIGxvY2FsIGN1YW5kbyBsbGVnYSBzbmFwc2hvdCByZWFsLlxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX3N5bmNlZCgpKSByZXR1cm47XG4gICAgICBjb25zdCBsID0gdGhpcy5fbGFuZ3VhZ2UoKTtcbiAgICAgIGlmICh0aGlzLmkxOG4gJiYgdGhpcy5pMThuLmxhbmcoKSAhPT0gbCkge1xuICAgICAgICB0aGlzLmkxOG4uc2V0TGFuZ3VhZ2UobCBhcyBJMThuTGFuZyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiogQWN0dWFsaXphIHByZWZlcmVuY2lhcyB2aWEgYmFja2VuZC4gT3B0aW1pc3RpYyBVSTogYXBsaWNhIGxvY2FsLCByZXZpZXJ0ZSBzaSBmYWxsYS4gKi9cbiAgYXN5bmMgdXBkYXRlKHBhcnRpYWw6IFByZWZlcmVuY2VzVXBkYXRlKTogUHJvbWlzZTxQcmVmZXJlbmNlc1VwZGF0ZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5jb25maWcuYXBpVXJsfS92Mi9hdXRoL3ByZWZlcmVuY2VzYDtcblxuICAgIGNvbnN0IHByZXYgPSB7XG4gICAgICB0aGVtZTogdGhpcy5fdGhlbWUoKSxcbiAgICAgIGxhbmd1YWdlOiB0aGlzLl9sYW5ndWFnZSgpLFxuICAgICAgbWFzdGVyOiB0aGlzLl9ub3RpZmljYXRpb25zTWFzdGVyKCksXG4gICAgfTtcblxuICAgIGlmIChwYXJ0aWFsLnRoZW1lKSB0aGlzLl90aGVtZS5zZXQocGFydGlhbC50aGVtZSk7XG4gICAgaWYgKHBhcnRpYWwubGFuZ3VhZ2UpIHRoaXMuX2xhbmd1YWdlLnNldChwYXJ0aWFsLmxhbmd1YWdlKTtcbiAgICBpZiAocGFydGlhbC5ub3RpZmljYXRpb25zICYmIHR5cGVvZiBwYXJ0aWFsLm5vdGlmaWNhdGlvbnMubWFzdGVyID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnNNYXN0ZXIuc2V0KHBhcnRpYWwubm90aWZpY2F0aW9ucy5tYXN0ZXIpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAucHV0PFByZWZlcmVuY2VzVXBkYXRlUmVzcG9uc2U+KHVybCwgcGFydGlhbCkpO1xuICAgICAgLy8gRWwgbGlzdGVuZXIgRmlyZXN0b3JlIGVzIGxhIGZ1ZW50ZSBmaW5hbCwgcGVybyBhbGluZWFyIHlhIGNvbiBsYVxuICAgICAgLy8gcmVzcHVlc3RhIGRlbCBiYWNrZW5kIGFjZWxlcmEgVVggKGVzcGVjaWFsbWVudGUgc2kgZWwgbGlzdGVuZXJcbiAgICAgIC8vIHRhcmRhIGVuIHByb3BhZ2FyKS5cbiAgICAgIGlmIChyZXMudGhlbWUpIHRoaXMuX3RoZW1lLnNldChyZXMudGhlbWUgYXMgUHJlZmVyZW5jZXNUaGVtZSk7XG4gICAgICBpZiAocmVzLmxhbmd1YWdlKSB0aGlzLl9sYW5ndWFnZS5zZXQocmVzLmxhbmd1YWdlIGFzIFByZWZlcmVuY2VzTGFuZ3VhZ2UpO1xuICAgICAgaWYgKHR5cGVvZiByZXMubm90aWZpY2F0aW9ucz8ubWFzdGVyID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uc01hc3Rlci5zZXQocmVzLm5vdGlmaWNhdGlvbnMubWFzdGVyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXM7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBSZXZlcnQgb3B0aW1pc3RpYy5cbiAgICAgIHRoaXMuX3RoZW1lLnNldChwcmV2LnRoZW1lKTtcbiAgICAgIHRoaXMuX2xhbmd1YWdlLnNldChwcmV2Lmxhbmd1YWdlKTtcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnNNYXN0ZXIuc2V0KHByZXYubWFzdGVyKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBzZXRUaGVtZSh0aGVtZTogUHJlZmVyZW5jZXNUaGVtZSk6IFByb21pc2U8UHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZSh7IHRoZW1lIH0pO1xuICB9XG5cbiAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IFByZWZlcmVuY2VzTGFuZ3VhZ2UpOiBQcm9taXNlPFByZWZlcmVuY2VzVXBkYXRlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGUoeyBsYW5ndWFnZSB9KTtcbiAgfVxuXG4gIHNldE5vdGlmaWNhdGlvbnNNYXN0ZXIoZW5hYmxlZDogYm9vbGVhbik6IFByb21pc2U8UHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZSh7IG5vdGlmaWNhdGlvbnM6IHsgbWFzdGVyOiBlbmFibGVkIH0gfSk7XG4gIH1cblxuICBwcml2YXRlIGJpbmRUb1VzZXIodXNlcklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jdXJyZW50VXNlcklkID09PSB1c2VySWQgJiYgdGhpcy5zdWJzY3JpcHRpb24pIHJldHVybjtcbiAgICB0aGlzLnVuYmluZCgpO1xuICAgIHRoaXMuY3VycmVudFVzZXJJZCA9IHVzZXJJZDtcbiAgICAvLyBGaXJlc3RvcmVTZXJ2aWNlLmRvY0NoYW5nZXMgcHJlZmlqYSBhdXRvbcOhdGljYW1lbnRlIGBhcHBzL3thcHBJZH0vYFxuICAgIC8vIGN1YW5kbyBgY29uZmlnLmFwcElkYCBlc3TDoSBzZXRlYWRvIGVuIFZhbHRlY2hBdXRoQ29uZmlnLlxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5maXJlc3RvcmVcbiAgICAgIC5kb2NDaGFuZ2VzPFByZWZlcmVuY2VzRG9jdW1lbnQgJiB7IGlkPzogc3RyaW5nIH0+KGB1c2Vycy8ke3VzZXJJZH0vcHJlZmVyZW5jZXNgLCAnbWFpbicpXG4gICAgICAuc3Vic2NyaWJlKGRvYyA9PiB7XG4gICAgICAgIGlmICghZG9jKSB7XG4gICAgICAgICAgLy8gRG9jIG5vIGV4aXN0ZSBhw7puICh1c2VyIG51ZXZvLCBzaW4gcHJpbWVyIHN5bmMpLiBNYW50ZW5lbW9zXG4gICAgICAgICAgLy8gZGVmYXVsdHMgbG9jYWxlcyBwZXJvIE5PIG1hcmNhbW9zIHN5bmNlZCDigJQgbG9zIHNpZGUtZWZmZWN0cyBub1xuICAgICAgICAgIC8vIHBpc2FuIGVsIHRoZW1lL2xhbmcgbG9jYWxlcyBjb24gdmFsb3JlcyBhcmJpdHJhcmlvcy5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvYy50aGVtZSkgdGhpcy5fdGhlbWUuc2V0KGRvYy50aGVtZSk7XG4gICAgICAgIGlmIChkb2MubGFuZ3VhZ2UpIHRoaXMuX2xhbmd1YWdlLnNldChkb2MubGFuZ3VhZ2UpO1xuICAgICAgICBpZiAoZG9jLm5vdGlmaWNhdGlvbnMgJiYgdHlwZW9mIGRvYy5ub3RpZmljYXRpb25zLm1hc3RlciA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uc01hc3Rlci5zZXQoZG9jLm5vdGlmaWNhdGlvbnMubWFzdGVyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zeW5jZWQuc2V0KHRydWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVuYmluZCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmN1cnJlbnRVc2VySWQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5fc3luY2VkLnNldChmYWxzZSk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '2.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '2.0.738';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC43MzgnO1xuIl19
|
|
@@ -50,7 +50,7 @@ import 'prismjs/components/prism-json';
|
|
|
50
50
|
* Current version of valtech-components.
|
|
51
51
|
* This is automatically updated during the publish process.
|
|
52
52
|
*/
|
|
53
|
-
const VERSION = '2.0.
|
|
53
|
+
const VERSION = '2.0.738';
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
56
|
* Servicio para gestionar presets de componentes.
|
|
@@ -26027,6 +26027,12 @@ class FormComponent {
|
|
|
26027
26027
|
this.types = InputType;
|
|
26028
26028
|
this.subscriptions = [];
|
|
26029
26029
|
this.actionsCache = [];
|
|
26030
|
+
// Memo de getFieldProp/getUsernameProp por referencia de field — evita
|
|
26031
|
+
// crear un nuevo objeto props por keystroke (cada CD cycle invocaría el
|
|
26032
|
+
// template binding, multiplicando re-renders en cascada por # fields).
|
|
26033
|
+
// WeakMap: si la referencia del field cambia, el cache se libera.
|
|
26034
|
+
this.fieldPropMemo = new WeakMap();
|
|
26035
|
+
this.usernamePropMemo = new WeakMap();
|
|
26030
26036
|
}
|
|
26031
26037
|
ngOnInit() {
|
|
26032
26038
|
const formControls = {};
|
|
@@ -26136,16 +26142,24 @@ class FormComponent {
|
|
|
26136
26142
|
return this.Form.get(field);
|
|
26137
26143
|
}
|
|
26138
26144
|
getFieldProp(field) {
|
|
26145
|
+
const cached = this.fieldPropMemo.get(field);
|
|
26146
|
+
if (cached)
|
|
26147
|
+
return cached;
|
|
26139
26148
|
if (!field.token) {
|
|
26140
26149
|
field.token = `input-${field.type}-${field.name}`;
|
|
26141
26150
|
}
|
|
26151
|
+
let result;
|
|
26142
26152
|
if (field.type === this.types.NUMBER_FROM_TO) {
|
|
26143
26153
|
const fromControl = this.getControl(`${field.name}_from`);
|
|
26144
26154
|
const toControl = this.getControl(`${field.name}_to`);
|
|
26145
|
-
|
|
26155
|
+
result = { ...field, fromControl, toControl, control: undefined };
|
|
26146
26156
|
}
|
|
26147
|
-
|
|
26148
|
-
|
|
26157
|
+
else {
|
|
26158
|
+
const control = this.getControl(field.name);
|
|
26159
|
+
result = { ...field, control };
|
|
26160
|
+
}
|
|
26161
|
+
this.fieldPropMemo.set(field, result);
|
|
26162
|
+
return result;
|
|
26149
26163
|
}
|
|
26150
26164
|
/**
|
|
26151
26165
|
* Adapter — convierte un `InputMetadata` (con type=HANDLE) a `UsernameInputMetadata`.
|
|
@@ -26154,8 +26168,11 @@ class FormComponent {
|
|
|
26154
26168
|
* custom usando type=TEXT si necesita otra fuente de truth.
|
|
26155
26169
|
*/
|
|
26156
26170
|
getUsernameProp(field) {
|
|
26171
|
+
const cached = this.usernamePropMemo.get(field);
|
|
26172
|
+
if (cached)
|
|
26173
|
+
return cached;
|
|
26157
26174
|
const control = this.getControl(field.name);
|
|
26158
|
-
|
|
26175
|
+
const result = {
|
|
26159
26176
|
control: control,
|
|
26160
26177
|
label: field.label,
|
|
26161
26178
|
placeholder: field.placeholder,
|
|
@@ -26164,6 +26181,8 @@ class FormComponent {
|
|
|
26164
26181
|
errors: field.errors,
|
|
26165
26182
|
state: field.state,
|
|
26166
26183
|
};
|
|
26184
|
+
this.usernamePropMemo.set(field, result);
|
|
26185
|
+
return result;
|
|
26167
26186
|
}
|
|
26168
26187
|
get isAtEndOfForm() {
|
|
26169
26188
|
return isAtEnd(this.elementRef);
|
|
@@ -26182,94 +26201,102 @@ class FormComponent {
|
|
|
26182
26201
|
return this.actionsCache;
|
|
26183
26202
|
}
|
|
26184
26203
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormComponent, deps: [{ token: i1$3.FormBuilder }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26185
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
26204
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FormComponent, isStandalone: true, selector: "val-form", inputs: { props: "props" }, outputs: { onSubmit: "onSubmit", onInvalid: "onInvalid", onSelectChange: "onSelectChange" }, usesOnChanges: true, ngImport: i0, template: `
|
|
26186
26205
|
<div class="container">
|
|
26187
26206
|
<form [formGroup]="form">
|
|
26188
|
-
|
|
26189
|
-
|
|
26190
|
-
|
|
26191
|
-
|
|
26192
|
-
|
|
26193
|
-
|
|
26194
|
-
|
|
26195
|
-
|
|
26196
|
-
|
|
26197
|
-
|
|
26198
|
-
<div class="
|
|
26199
|
-
<val-title
|
|
26200
|
-
|
|
26201
|
-
|
|
26202
|
-
|
|
26203
|
-
|
|
26204
|
-
|
|
26205
|
-
|
|
26206
|
-
|
|
26207
|
-
|
|
26208
|
-
|
|
26209
|
-
|
|
26210
|
-
|
|
26211
|
-
|
|
26212
|
-
|
|
26213
|
-
|
|
26214
|
-
|
|
26215
|
-
|
|
26216
|
-
|
|
26217
|
-
|
|
26218
|
-
|
|
26219
|
-
|
|
26220
|
-
|
|
26221
|
-
|
|
26222
|
-
|
|
26223
|
-
|
|
26224
|
-
|
|
26225
|
-
|
|
26226
|
-
|
|
26227
|
-
|
|
26228
|
-
|
|
26229
|
-
|
|
26230
|
-
|
|
26231
|
-
|
|
26232
|
-
|
|
26233
|
-
|
|
26234
|
-
|
|
26235
|
-
|
|
26236
|
-
|
|
26237
|
-
|
|
26238
|
-
|
|
26239
|
-
|
|
26240
|
-
|
|
26241
|
-
|
|
26242
|
-
|
|
26243
|
-
|
|
26244
|
-
|
|
26245
|
-
|
|
26246
|
-
|
|
26247
|
-
|
|
26248
|
-
|
|
26249
|
-
|
|
26250
|
-
|
|
26251
|
-
|
|
26252
|
-
|
|
26253
|
-
|
|
26254
|
-
|
|
26255
|
-
|
|
26256
|
-
|
|
26257
|
-
|
|
26258
|
-
|
|
26259
|
-
|
|
26260
|
-
|
|
26261
|
-
|
|
26207
|
+
@if (props.name) {
|
|
26208
|
+
<val-display
|
|
26209
|
+
[props]="{
|
|
26210
|
+
content: props.name,
|
|
26211
|
+
color: 'dark',
|
|
26212
|
+
size: 'small',
|
|
26213
|
+
}"
|
|
26214
|
+
></val-display>
|
|
26215
|
+
}
|
|
26216
|
+
@for (s of props.sections; track s.name) {
|
|
26217
|
+
<div class="section">
|
|
26218
|
+
<val-title [props]="{ content: s.name, size: 'large', color: '', bold: false }"></val-title>
|
|
26219
|
+
@for (f of s.fields; track f.name) {
|
|
26220
|
+
<div class="input">
|
|
26221
|
+
@if (f.type !== types.PHONE && f.type !== types.HANDLE) {
|
|
26222
|
+
<val-title [props]="{ content: f.label, size: 'small', color: 'dark', bold: false }"></val-title>
|
|
26223
|
+
}
|
|
26224
|
+
@if (f.description) {
|
|
26225
|
+
<span class="field-description">{{ f.description }}</span>
|
|
26226
|
+
}
|
|
26227
|
+
@switch (f.type) {
|
|
26228
|
+
@case (types.TEXT) {
|
|
26229
|
+
<val-text-input [props]="getFieldProp(f)"></val-text-input>
|
|
26230
|
+
}
|
|
26231
|
+
@case (types.CHECK) {
|
|
26232
|
+
<val-check-input></val-check-input>
|
|
26233
|
+
}
|
|
26234
|
+
@case (types.COMMENT) {
|
|
26235
|
+
<val-comment-input [props]="getFieldProp(f)"></val-comment-input>
|
|
26236
|
+
}
|
|
26237
|
+
@case (types.DATE) {
|
|
26238
|
+
<val-date-input [props]="getFieldProp(f)"></val-date-input>
|
|
26239
|
+
}
|
|
26240
|
+
@case (types.EMAIL) {
|
|
26241
|
+
<val-email-input [props]="getFieldProp(f)"></val-email-input>
|
|
26242
|
+
}
|
|
26243
|
+
@case (types.FILE) {
|
|
26244
|
+
<val-file-input [props]="getFieldProp(f)"></val-file-input>
|
|
26245
|
+
}
|
|
26246
|
+
@case (types.HOUR) {
|
|
26247
|
+
<val-hour-input [props]="getFieldProp(f)"></val-hour-input>
|
|
26248
|
+
}
|
|
26249
|
+
@case (types.NUMBER) {
|
|
26250
|
+
<val-number-input [props]="getFieldProp(f)"></val-number-input>
|
|
26251
|
+
}
|
|
26252
|
+
@case (types.NUMBER_FROM_TO) {
|
|
26253
|
+
<val-number-from-to [props]="getFieldProp(f)"></val-number-from-to>
|
|
26254
|
+
}
|
|
26255
|
+
@case (types.PASSWORD) {
|
|
26256
|
+
<val-password-input [props]="getFieldProp(f)"></val-password-input>
|
|
26257
|
+
}
|
|
26258
|
+
@case (types.PIN_CODE) {
|
|
26259
|
+
<val-pin-input [props]="getFieldProp(f)"></val-pin-input>
|
|
26260
|
+
}
|
|
26261
|
+
@case (types.RADIO) {
|
|
26262
|
+
<val-radio-input [props]="getFieldProp(f)"></val-radio-input>
|
|
26263
|
+
}
|
|
26264
|
+
@case (types.SELECT) {
|
|
26265
|
+
<val-select-input [props]="getFieldProp(f)"></val-select-input>
|
|
26266
|
+
}
|
|
26267
|
+
@case (types.SEARCH_SELECT) {
|
|
26268
|
+
<val-select-search [props]="getFieldProp(f)"></val-select-search>
|
|
26269
|
+
}
|
|
26270
|
+
@case (types.MULTI_SELECT) {
|
|
26271
|
+
<val-multi-select-search [props]="getFieldProp(f)"></val-multi-select-search>
|
|
26272
|
+
}
|
|
26273
|
+
@case (types.PHONE) {
|
|
26274
|
+
<val-phone-input [props]="getFieldProp(f)"></val-phone-input>
|
|
26275
|
+
}
|
|
26276
|
+
@case (types.HANDLE) {
|
|
26277
|
+
<val-username-input [props]="getUsernameProp(f)"></val-username-input>
|
|
26278
|
+
}
|
|
26279
|
+
@case (types.TOGGLE) {
|
|
26280
|
+
<val-toggle-input [props]="getFieldProp(f)"></val-toggle-input>
|
|
26281
|
+
}
|
|
26282
|
+
@case (types.CHECKBOX_RADIO) {
|
|
26283
|
+
<val-checkbox-radio-input [props]="getFieldProp(f)"></val-checkbox-radio-input>
|
|
26284
|
+
}
|
|
26285
|
+
}
|
|
26286
|
+
<val-hint [props]="getFieldProp(f)"></val-hint>
|
|
26287
|
+
</div>
|
|
26288
|
+
}
|
|
26289
|
+
<val-divider [props]="{ fill: 'solid', size: 'medium', color: 'medium' }"></val-divider>
|
|
26290
|
+
<ng-content></ng-content>
|
|
26262
26291
|
</div>
|
|
26263
|
-
|
|
26264
|
-
<ng-content></ng-content>
|
|
26265
|
-
</div>
|
|
26292
|
+
}
|
|
26266
26293
|
<val-button-group
|
|
26267
26294
|
[props]="{ buttons: actions, position: 'center', columned: false }"
|
|
26268
26295
|
(onClick)="submitHandler($event)"
|
|
26269
26296
|
></val-button-group>
|
|
26270
26297
|
</form>
|
|
26271
26298
|
</div>
|
|
26272
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.field-description{display:block;font-size:.75rem;color:var(--ion-color-medium);margin-bottom:.25rem;line-height:1.4}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "
|
|
26299
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.field-description{display:block;font-size:.75rem;color:var(--ion-color-medium);margin-bottom:.25rem;line-height:1.4}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["preset", "props"] }, { kind: "component", type: CheckInputComponent, selector: "val-check-input", inputs: ["preset", "props"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: DividerComponent, selector: "val-divider", inputs: ["props"] }, { kind: "component", type: HintComponent, selector: "val-hint", inputs: ["props"] }, { kind: "component", type: CommentInputComponent, selector: "val-comment-input", inputs: ["props"] }, { kind: "component", type: DateInputComponent, selector: "val-date-input", inputs: ["preset", "props"] }, { kind: "component", type: FileInputComponent, selector: "val-file-input", inputs: ["props"] }, { kind: "component", type: HourInputComponent, selector: "val-hour-input", inputs: ["props"] }, { kind: "component", type: EmailInputComponent, selector: "val-email-input", inputs: ["preset", "props"] }, { kind: "component", type: NumberInputComponent, selector: "val-number-input", inputs: ["props"] }, { kind: "component", type: NumberFromToComponent, selector: "val-number-from-to", inputs: ["props"] }, { kind: "component", type: RadioInputComponent, selector: "val-radio-input", inputs: ["props"] }, { kind: "component", type: PasswordInputComponent, selector: "val-password-input", inputs: ["preset", "props"] }, { kind: "component", type: PinInputComponent, selector: "val-pin-input", inputs: ["props"] }, { kind: "component", type: SelectSearchComponent, selector: "val-select-search", inputs: ["label", "labelProperty", "valueProperty", "multiple", "placeholder", "props"] }, { kind: "component", type: MultiSelectSearchComponent, selector: "val-multi-select-search", inputs: ["label", "labelProperty", "valueProperty", "placeholder", "props"] }, { kind: "component", type: SearchSelectorComponent, selector: "val-select-input", inputs: ["preset", "props"] }, { kind: "component", type: PhoneInputComponent, selector: "val-phone-input", inputs: ["preset", "props"], outputs: ["phoneChange"] }, { kind: "component", type: ToggleInputComponent, selector: "val-toggle-input", inputs: ["preset", "props"] }, { kind: "component", type: CheckboxRadioInputComponent, selector: "val-checkbox-radio-input", inputs: ["props"] }, { kind: "component", type: UsernameInputComponent, selector: "val-username-input", inputs: ["props"] }] }); }
|
|
26273
26300
|
}
|
|
26274
26301
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormComponent, decorators: [{
|
|
26275
26302
|
type: Component,
|
|
@@ -26303,84 +26330,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
26303
26330
|
], template: `
|
|
26304
26331
|
<div class="container">
|
|
26305
26332
|
<form [formGroup]="form">
|
|
26306
|
-
|
|
26307
|
-
|
|
26308
|
-
|
|
26309
|
-
|
|
26310
|
-
|
|
26311
|
-
|
|
26312
|
-
|
|
26313
|
-
|
|
26314
|
-
|
|
26315
|
-
|
|
26316
|
-
<div class="
|
|
26317
|
-
<val-title
|
|
26318
|
-
|
|
26319
|
-
|
|
26320
|
-
|
|
26321
|
-
|
|
26322
|
-
|
|
26323
|
-
|
|
26324
|
-
|
|
26325
|
-
|
|
26326
|
-
|
|
26327
|
-
|
|
26328
|
-
|
|
26329
|
-
|
|
26330
|
-
|
|
26331
|
-
|
|
26332
|
-
|
|
26333
|
-
|
|
26334
|
-
|
|
26335
|
-
|
|
26336
|
-
|
|
26337
|
-
|
|
26338
|
-
|
|
26339
|
-
|
|
26340
|
-
|
|
26341
|
-
|
|
26342
|
-
|
|
26343
|
-
|
|
26344
|
-
|
|
26345
|
-
|
|
26346
|
-
|
|
26347
|
-
|
|
26348
|
-
|
|
26349
|
-
|
|
26350
|
-
|
|
26351
|
-
|
|
26352
|
-
|
|
26353
|
-
|
|
26354
|
-
|
|
26355
|
-
|
|
26356
|
-
|
|
26357
|
-
|
|
26358
|
-
|
|
26359
|
-
|
|
26360
|
-
|
|
26361
|
-
|
|
26362
|
-
|
|
26363
|
-
|
|
26364
|
-
|
|
26365
|
-
|
|
26366
|
-
|
|
26367
|
-
|
|
26368
|
-
|
|
26369
|
-
|
|
26370
|
-
|
|
26371
|
-
|
|
26372
|
-
|
|
26373
|
-
|
|
26374
|
-
|
|
26375
|
-
|
|
26376
|
-
|
|
26377
|
-
|
|
26378
|
-
|
|
26379
|
-
|
|
26333
|
+
@if (props.name) {
|
|
26334
|
+
<val-display
|
|
26335
|
+
[props]="{
|
|
26336
|
+
content: props.name,
|
|
26337
|
+
color: 'dark',
|
|
26338
|
+
size: 'small',
|
|
26339
|
+
}"
|
|
26340
|
+
></val-display>
|
|
26341
|
+
}
|
|
26342
|
+
@for (s of props.sections; track s.name) {
|
|
26343
|
+
<div class="section">
|
|
26344
|
+
<val-title [props]="{ content: s.name, size: 'large', color: '', bold: false }"></val-title>
|
|
26345
|
+
@for (f of s.fields; track f.name) {
|
|
26346
|
+
<div class="input">
|
|
26347
|
+
@if (f.type !== types.PHONE && f.type !== types.HANDLE) {
|
|
26348
|
+
<val-title [props]="{ content: f.label, size: 'small', color: 'dark', bold: false }"></val-title>
|
|
26349
|
+
}
|
|
26350
|
+
@if (f.description) {
|
|
26351
|
+
<span class="field-description">{{ f.description }}</span>
|
|
26352
|
+
}
|
|
26353
|
+
@switch (f.type) {
|
|
26354
|
+
@case (types.TEXT) {
|
|
26355
|
+
<val-text-input [props]="getFieldProp(f)"></val-text-input>
|
|
26356
|
+
}
|
|
26357
|
+
@case (types.CHECK) {
|
|
26358
|
+
<val-check-input></val-check-input>
|
|
26359
|
+
}
|
|
26360
|
+
@case (types.COMMENT) {
|
|
26361
|
+
<val-comment-input [props]="getFieldProp(f)"></val-comment-input>
|
|
26362
|
+
}
|
|
26363
|
+
@case (types.DATE) {
|
|
26364
|
+
<val-date-input [props]="getFieldProp(f)"></val-date-input>
|
|
26365
|
+
}
|
|
26366
|
+
@case (types.EMAIL) {
|
|
26367
|
+
<val-email-input [props]="getFieldProp(f)"></val-email-input>
|
|
26368
|
+
}
|
|
26369
|
+
@case (types.FILE) {
|
|
26370
|
+
<val-file-input [props]="getFieldProp(f)"></val-file-input>
|
|
26371
|
+
}
|
|
26372
|
+
@case (types.HOUR) {
|
|
26373
|
+
<val-hour-input [props]="getFieldProp(f)"></val-hour-input>
|
|
26374
|
+
}
|
|
26375
|
+
@case (types.NUMBER) {
|
|
26376
|
+
<val-number-input [props]="getFieldProp(f)"></val-number-input>
|
|
26377
|
+
}
|
|
26378
|
+
@case (types.NUMBER_FROM_TO) {
|
|
26379
|
+
<val-number-from-to [props]="getFieldProp(f)"></val-number-from-to>
|
|
26380
|
+
}
|
|
26381
|
+
@case (types.PASSWORD) {
|
|
26382
|
+
<val-password-input [props]="getFieldProp(f)"></val-password-input>
|
|
26383
|
+
}
|
|
26384
|
+
@case (types.PIN_CODE) {
|
|
26385
|
+
<val-pin-input [props]="getFieldProp(f)"></val-pin-input>
|
|
26386
|
+
}
|
|
26387
|
+
@case (types.RADIO) {
|
|
26388
|
+
<val-radio-input [props]="getFieldProp(f)"></val-radio-input>
|
|
26389
|
+
}
|
|
26390
|
+
@case (types.SELECT) {
|
|
26391
|
+
<val-select-input [props]="getFieldProp(f)"></val-select-input>
|
|
26392
|
+
}
|
|
26393
|
+
@case (types.SEARCH_SELECT) {
|
|
26394
|
+
<val-select-search [props]="getFieldProp(f)"></val-select-search>
|
|
26395
|
+
}
|
|
26396
|
+
@case (types.MULTI_SELECT) {
|
|
26397
|
+
<val-multi-select-search [props]="getFieldProp(f)"></val-multi-select-search>
|
|
26398
|
+
}
|
|
26399
|
+
@case (types.PHONE) {
|
|
26400
|
+
<val-phone-input [props]="getFieldProp(f)"></val-phone-input>
|
|
26401
|
+
}
|
|
26402
|
+
@case (types.HANDLE) {
|
|
26403
|
+
<val-username-input [props]="getUsernameProp(f)"></val-username-input>
|
|
26404
|
+
}
|
|
26405
|
+
@case (types.TOGGLE) {
|
|
26406
|
+
<val-toggle-input [props]="getFieldProp(f)"></val-toggle-input>
|
|
26407
|
+
}
|
|
26408
|
+
@case (types.CHECKBOX_RADIO) {
|
|
26409
|
+
<val-checkbox-radio-input [props]="getFieldProp(f)"></val-checkbox-radio-input>
|
|
26410
|
+
}
|
|
26411
|
+
}
|
|
26412
|
+
<val-hint [props]="getFieldProp(f)"></val-hint>
|
|
26413
|
+
</div>
|
|
26414
|
+
}
|
|
26415
|
+
<val-divider [props]="{ fill: 'solid', size: 'medium', color: 'medium' }"></val-divider>
|
|
26416
|
+
<ng-content></ng-content>
|
|
26380
26417
|
</div>
|
|
26381
|
-
|
|
26382
|
-
<ng-content></ng-content>
|
|
26383
|
-
</div>
|
|
26418
|
+
}
|
|
26384
26419
|
<val-button-group
|
|
26385
26420
|
[props]="{ buttons: actions, position: 'center', columned: false }"
|
|
26386
26421
|
(onClick)="submitHandler($event)"
|
|
@@ -35611,12 +35646,16 @@ class PreferencesService {
|
|
|
35611
35646
|
}
|
|
35612
35647
|
}, { allowSignalWrites: true });
|
|
35613
35648
|
// Side-effect: aplicar theme local cuando llega snapshot real.
|
|
35649
|
+
// OJO: usar `toggleUserPreference()` y NO el setter `Theme =`. El setter
|
|
35650
|
+
// solo persiste localStorage + emite el BehaviorSubject; no aplica las
|
|
35651
|
+
// clases `body.dark`/`body.light` que el palette `dark.class.css` de
|
|
35652
|
+
// Ionic necesita para conmutar el tema visible.
|
|
35614
35653
|
effect(() => {
|
|
35615
35654
|
if (!this._synced())
|
|
35616
35655
|
return;
|
|
35617
35656
|
const t = this._theme();
|
|
35618
35657
|
if (this.themeService) {
|
|
35619
|
-
this.themeService.
|
|
35658
|
+
this.themeService.toggleUserPreference(t);
|
|
35620
35659
|
}
|
|
35621
35660
|
});
|
|
35622
35661
|
// Side-effect: aplicar language local cuando llega snapshot real.
|