@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
44 lines • 5.35 kB
JavaScript
import { Directive, Input } from '@angular/core';
import { NgControl } from '@angular/forms';
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
export class RememberValueControlDirective {
ngControl;
formControlName;
set rememberValueControl(formGroupName) {
if (this.formControlName && formGroupName) {
this.initializeListeners(formGroupName, this.formControlName);
}
}
valueChangeSub;
constructor(ngControl) {
this.ngControl = ngControl;
}
ngOnDestroy() {
this.valueChangeSub?.unsubscribe();
}
initializeListeners(formGroupName, formControlName) {
this.valueChangeSub?.unsubscribe();
const keyName = `rembemberValueControl.${formGroupName}.${formControlName}`;
this.valueChangeSub = this.ngControl.valueChanges?.subscribe((newValue) => {
localStorage.setItem(keyName, newValue);
});
const lastValue = localStorage.getItem(keyName);
if (lastValue) {
this.ngControl.control?.setValue(lastValue);
}
}
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RememberValueControlDirective, deps: [{ token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: RememberValueControlDirective, selector: "[rememberValueControl]", inputs: { formControlName: "formControlName", rememberValueControl: "rememberValueControl" }, ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RememberValueControlDirective, decorators: [{
type: Directive,
args: [{
selector: '[rememberValueControl]',
}]
}], ctorParameters: () => [{ type: i1.NgControl }], propDecorators: { formControlName: [{
type: Input
}], rememberValueControl: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtZW1iZXItdmFsdWUtY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lvdGl6ZS1pb25pYy9zcmMvbGliL2xpYi1jb21tb24vcmVtZW1iZXItdmFsdWUtY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sNkJBQTZCO0lBV3BCO0lBVlgsZUFBZSxDQUFVO0lBRWxDLElBQWEsb0JBQW9CLENBQUMsYUFBaUM7UUFDakUsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFnQjtJQUV0QyxZQUFvQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQUcsQ0FBQztJQUU1QyxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU8sbUJBQW1CLENBQUMsYUFBcUIsRUFBRSxlQUF1QjtRQUN4RSxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ25DLE1BQU0sT0FBTyxHQUFHLHlCQUF5QixhQUFhLElBQUksZUFBZSxFQUFFLENBQUM7UUFDNUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN4RSxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQzsySEEzQlUsNkJBQTZCOytHQUE3Qiw2QkFBNkI7OzRGQUE3Qiw2QkFBNkI7a0JBSHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtpQkFDbkM7OEVBRVUsZUFBZTtzQkFBdkIsS0FBSztnQkFFTyxvQkFBb0I7c0JBQWhDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcmVtZW1iZXJWYWx1ZUNvbnRyb2xdJyxcbn0pXG5leHBvcnQgY2xhc3MgUmVtZW1iZXJWYWx1ZUNvbnRyb2xEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBmb3JtQ29udHJvbE5hbWU/OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc2V0IHJlbWVtYmVyVmFsdWVDb250cm9sKGZvcm1Hcm91cE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLmZvcm1Db250cm9sTmFtZSAmJiBmb3JtR3JvdXBOYW1lKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVMaXN0ZW5lcnMoZm9ybUdyb3VwTmFtZSwgdGhpcy5mb3JtQ29udHJvbE5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsdWVDaGFuZ2VTdWI/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbCkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlU3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplTGlzdGVuZXJzKGZvcm1Hcm91cE5hbWU6IHN0cmluZywgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIGNvbnN0IGtleU5hbWUgPSBgcmVtYmVtYmVyVmFsdWVDb250cm9sLiR7Zm9ybUdyb3VwTmFtZX0uJHtmb3JtQ29udHJvbE5hbWV9YDtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlU3ViID0gdGhpcy5uZ0NvbnRyb2wudmFsdWVDaGFuZ2VzPy5zdWJzY3JpYmUoKG5ld1ZhbHVlKSA9PiB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXlOYW1lLCBuZXdWYWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgbGFzdFZhbHVlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5TmFtZSk7XG4gICAgaWYgKGxhc3RWYWx1ZSkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8uc2V0VmFsdWUobGFzdFZhbHVlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==