@qoollo/ngx-form-url-saver
Version:
Angular directive for syncing form's data with URL query
27 lines • 4.27 kB
JavaScript
export class SeparatedQueryGenerationStrategy {
constructor(formHandlingStrategy) {
this.formHandlingStrategy = formHandlingStrategy;
}
inferFormValueFromQuery(queryParams, formValue) {
const queryObject = {};
for (const key of Object.keys(formValue)) {
queryObject[key] = this.formHandlingStrategy.parse(queryParams[key], key);
}
return queryObject;
}
convertFormValueToQueryObject(formValue) {
const queryObject = {};
for (const key of Object.keys(formValue)) {
queryObject[key] = this.formHandlingStrategy.stringify(formValue[key], key);
}
return queryObject;
}
createClearingObject(formValue) {
const filtersObject = {};
for (const key of Object.keys(formValue)) {
filtersObject[key] = null;
}
return filtersObject;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwYXJhdGVkLXF1ZXJ5LWdlbmVyYXRpb24tc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXVybC1zYXZlci1saWIvc3JjL2xpYi9xdWVyeS1nZW5lcmF0aW9uLXN0cmF0ZWdpZXMvc2VwYXJhdGVkLXF1ZXJ5LWdlbmVyYXRpb24tc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLGdDQUFnQztJQUV6QyxZQUNxQixvQkFBMkM7UUFBM0MseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF1QjtJQUM3RCxDQUFDO0lBRUcsdUJBQXVCLENBQUMsV0FBbUIsRUFBRSxTQUFrQztRQUNsRixNQUFNLFdBQVcsR0FBNEIsRUFBRSxDQUFDO1FBRWhELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztJQUdNLDZCQUE2QixDQUFDLFNBQWtDO1FBQ25FLE1BQU0sV0FBVyxHQUE0QixFQUFFLENBQUM7UUFFaEQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDdkMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRU0sb0JBQW9CLENBQUMsU0FBaUI7UUFDekMsTUFBTSxhQUFhLEdBQXlCLEVBQUUsQ0FBQztRQUUvQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzlCLENBQUM7UUFFRCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUXVlcnlHZW5lcmF0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL3F1ZXJ5LWdlbmVyYXRpb24tc3RyYXRlZ3kuaW50ZXJmYWNlJztcbmltcG9ydCB7IFZhbHVlSGFuZGxpbmdTdHJhdGVneSB9IGZyb20gJy4uL2Zvcm0tdmFsdWUtaGFuZGxpbmctc3RyYXRlZ2llcy92YWx1ZS1oYW5kbGluZy1zdHJhdGVneS5pbnRlcmZhY2UnO1xuXG5cbmV4cG9ydCBjbGFzcyBTZXBhcmF0ZWRRdWVyeUdlbmVyYXRpb25TdHJhdGVneSBpbXBsZW1lbnRzIFF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5IHtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmb3JtSGFuZGxpbmdTdHJhdGVneTogVmFsdWVIYW5kbGluZ1N0cmF0ZWd5LFxuICAgICkge31cblxuICAgIHB1YmxpYyBpbmZlckZvcm1WYWx1ZUZyb21RdWVyeShxdWVyeVBhcmFtczogUGFyYW1zLCBmb3JtVmFsdWU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgcXVlcnlPYmplY3Q6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZm9ybVZhbHVlKSkge1xuICAgICAgICAgICAgcXVlcnlPYmplY3Rba2V5XSA9IHRoaXMuZm9ybUhhbmRsaW5nU3RyYXRlZ3kucGFyc2UocXVlcnlQYXJhbXNba2V5XSwga2V5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBxdWVyeU9iamVjdDtcbiAgICB9XG5cblxuICAgIHB1YmxpYyBjb252ZXJ0Rm9ybVZhbHVlVG9RdWVyeU9iamVjdChmb3JtVmFsdWU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgcXVlcnlPYmplY3Q6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZm9ybVZhbHVlKSkge1xuICAgICAgICAgICAgcXVlcnlPYmplY3Rba2V5XSA9IHRoaXMuZm9ybUhhbmRsaW5nU3RyYXRlZ3kuc3RyaW5naWZ5KGZvcm1WYWx1ZVtrZXldLCBrZXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHF1ZXJ5T2JqZWN0O1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVDbGVhcmluZ09iamVjdChmb3JtVmFsdWU6IG9iamVjdCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IGZpbHRlcnNPYmplY3Q6IFJlY29yZDxzdHJpbmcsIG51bGw+ID0ge307XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZm9ybVZhbHVlKSkge1xuICAgICAgICAgICAgZmlsdGVyc09iamVjdFtrZXldID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWx0ZXJzT2JqZWN0O1xuICAgIH1cblxufVxuIl19