@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
41 lines • 5.31 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 {
set rememberValueControl(formGroupName) {
if (this.formControlName && formGroupName) {
this.initializeListeners(formGroupName, this.formControlName);
}
}
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 */ RememberValueControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RememberValueControlDirective, deps: [{ token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
/** @nocollapse */ RememberValueControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: RememberValueControlDirective, selector: "[rememberValueControl]", inputs: { formControlName: "formControlName", rememberValueControl: "rememberValueControl" }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RememberValueControlDirective, decorators: [{
type: Directive,
args: [{
selector: '[rememberValueControl]',
}]
}], ctorParameters: function () { return [{ type: i1.NgControl }]; }, propDecorators: { formControlName: [{
type: Input
}], rememberValueControl: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtZW1iZXItdmFsdWUtY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lvdGl6ZS1pb25pYy9zcmMvbGliL2xpYi1jb21tb24vcmVtZW1iZXItdmFsdWUtY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sNkJBQTZCO0lBR3hDLElBQWEsb0JBQW9CLENBQUMsYUFBaUM7UUFDakUsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLGFBQWEsRUFBRTtZQUN6QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7SUFJRCxZQUFvQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQUcsQ0FBQztJQUU1QyxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU8sbUJBQW1CLENBQUMsYUFBcUIsRUFBRSxlQUF1QjtRQUN4RSxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ25DLE1BQU0sT0FBTyxHQUFHLHlCQUF5QixhQUFhLElBQUksZUFBZSxFQUFFLENBQUM7UUFDNUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN4RSxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDOzs4SUEzQlUsNkJBQTZCO2tJQUE3Qiw2QkFBNkI7NEZBQTdCLDZCQUE2QjtrQkFIekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2lCQUNuQztnR0FFVSxlQUFlO3NCQUF2QixLQUFLO2dCQUVPLG9CQUFvQjtzQkFBaEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyZW1lbWJlclZhbHVlQ29udHJvbF0nLFxufSlcbmV4cG9ydCBjbGFzcyBSZW1lbWJlclZhbHVlQ29udHJvbERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZT86IHN0cmluZztcblxuICBASW5wdXQoKSBzZXQgcmVtZW1iZXJWYWx1ZUNvbnRyb2woZm9ybUdyb3VwTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2xOYW1lICYmIGZvcm1Hcm91cE5hbWUpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUxpc3RlbmVycyhmb3JtR3JvdXBOYW1lLCB0aGlzLmZvcm1Db250cm9sTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWx1ZUNoYW5nZVN1Yj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVDaGFuZ2VTdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVMaXN0ZW5lcnMoZm9ybUdyb3VwTmFtZTogc3RyaW5nLCBmb3JtQ29udHJvbE5hbWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWVDaGFuZ2VTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgY29uc3Qga2V5TmFtZSA9IGByZW1iZW1iZXJWYWx1ZUNvbnRyb2wuJHtmb3JtR3JvdXBOYW1lfS4ke2Zvcm1Db250cm9sTmFtZX1gO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VTdWIgPSB0aGlzLm5nQ29udHJvbC52YWx1ZUNoYW5nZXM/LnN1YnNjcmliZSgobmV3VmFsdWUpID0+IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleU5hbWUsIG5ld1ZhbHVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBsYXN0VmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXlOYW1lKTtcbiAgICBpZiAobGFzdFZhbHVlKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sPy5zZXRWYWx1ZShsYXN0VmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIl19