UNPKG

@qoollo/ngx-form-url-saver

Version:

Angular directive for syncing form's data with URL query

26 lines 3.51 kB
export class UnitedQueryGenerationStrategy { constructor(formHandlingStrategy, queryKey) { this.formHandlingStrategy = formHandlingStrategy; this.queryKey = queryKey; } inferFormValueFromQuery(queryParams) { const query = queryParams[this.queryKey]; if (!query) { return {}; } const formValue = this.formHandlingStrategy.parse(query); return formValue; } convertFormValueToQueryObject(formValue) { const serializedObject = this.formHandlingStrategy.stringify(formValue); return { [this.queryKey]: serializedObject, }; } createClearingObject() { return { [this.queryKey]: null, }; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdGVkLXF1ZXJ5LWdlbmVyYXRpb24tc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXVybC1zYXZlci1saWIvc3JjL2xpYi9xdWVyeS1nZW5lcmF0aW9uLXN0cmF0ZWdpZXMvdW5pdGVkLXF1ZXJ5LWdlbmVyYXRpb24tc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLDZCQUE2QjtJQUd0QyxZQUNxQixvQkFBMkMsRUFDM0MsUUFBZ0I7UUFEaEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF1QjtRQUMzQyxhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQ2xDLENBQUM7SUFFRyx1QkFBdUIsQ0FBQyxXQUFtQjtRQUM5QyxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBVyxDQUFDO1FBRW5ELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNULE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekQsT0FBTyxTQUFtQixDQUFDO0lBQy9CLENBQUM7SUFHTSw2QkFBNkIsQ0FBQyxTQUFrQztRQUNuRSxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFeEUsT0FBTztZQUNILENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLGdCQUFnQjtTQUNwQyxDQUFDO0lBQ04sQ0FBQztJQUVNLG9CQUFvQjtRQUN2QixPQUFPO1lBQ0gsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSTtTQUN4QixDQUFDO0lBQ04sQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9xdWVyeS1nZW5lcmF0aW9uLXN0cmF0ZWd5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBWYWx1ZUhhbmRsaW5nU3RyYXRlZ3kgfSBmcm9tICcuLi9mb3JtLXZhbHVlLWhhbmRsaW5nLXN0cmF0ZWdpZXMvdmFsdWUtaGFuZGxpbmctc3RyYXRlZ3kuaW50ZXJmYWNlJztcblxuXG5leHBvcnQgY2xhc3MgVW5pdGVkUXVlcnlHZW5lcmF0aW9uU3RyYXRlZ3kgaW1wbGVtZW50cyBRdWVyeUdlbmVyYXRpb25TdHJhdGVneSB7XG5cblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmb3JtSGFuZGxpbmdTdHJhdGVneTogVmFsdWVIYW5kbGluZ1N0cmF0ZWd5LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHF1ZXJ5S2V5OiBzdHJpbmcsXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGluZmVyRm9ybVZhbHVlRnJvbVF1ZXJ5KHF1ZXJ5UGFyYW1zOiBQYXJhbXMpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCBxdWVyeSA9IHF1ZXJ5UGFyYW1zW3RoaXMucXVlcnlLZXldIGFzIHN0cmluZztcblxuICAgICAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm1IYW5kbGluZ1N0cmF0ZWd5LnBhcnNlKHF1ZXJ5KTtcblxuICAgICAgICByZXR1cm4gZm9ybVZhbHVlIGFzIG9iamVjdDtcbiAgICB9XG5cblxuICAgIHB1YmxpYyBjb252ZXJ0Rm9ybVZhbHVlVG9RdWVyeU9iamVjdChmb3JtVmFsdWU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogb2JqZWN0IHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplZE9iamVjdCA9IHRoaXMuZm9ybUhhbmRsaW5nU3RyYXRlZ3kuc3RyaW5naWZ5KGZvcm1WYWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFt0aGlzLnF1ZXJ5S2V5XTogc2VyaWFsaXplZE9iamVjdCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlQ2xlYXJpbmdPYmplY3QoKTogb2JqZWN0IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFt0aGlzLnF1ZXJ5S2V5XTogbnVsbCxcbiAgICAgICAgfTtcbiAgICB9XG5cbn1cbiJdfQ==