UNPKG

@angular-redux/form

Version:
90 lines 5.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import { NgRedux } from '@angular-redux/store'; /** * @record * @template RootState */ export function AbstractStore() { } if (false) { /** * @param {?} action * @return {?} */ AbstractStore.prototype.dispatch = function (action) { }; /** * @return {?} */ AbstractStore.prototype.getState = function () { }; /** * @param {?} fn * @return {?} */ AbstractStore.prototype.subscribe = function (fn) { }; } /** @type {?} */ export const FORM_CHANGED = '@@angular-redux/form/FORM_CHANGED'; export class FormStore { /// NOTE(cbond): The declaration of store is misleading. This class is /// actually capable of taking a plain Redux store or an NgRedux instance. /// But in order to make the ng dependency injector work properly, we /// declare it as an NgRedux type, since the @angular-redux/store use case involves /// calling the constructor of this class manually (from configure.ts), /// where a plain store can be cast to an NgRedux. (For our purposes, they /// have almost identical shapes.) /** * @param {?} store */ constructor(store) { this.store = store; } /** * @return {?} */ getState() { return this.store.getState(); } /** * @param {?} fn * @return {?} */ subscribe(fn) { return this.store.subscribe(() => fn(this.getState())); } /** * @template T * @param {?} path * @param {?} form * @param {?} value * @return {?} */ valueChanged(path, form, value) { this.store.dispatch({ type: FORM_CHANGED, payload: { path, form, valid: form.valid === true, value, }, }); } } FormStore.decorators = [ { type: Injectable } ]; /** @nocollapse */ FormStore.ctorParameters = () => [ { type: NgRedux } ]; if (false) { /** * @type {?} * @private */ FormStore.prototype.store; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLXJlZHV4L2Zvcm0vIiwic291cmNlcyI6WyJmb3JtLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFJL0MsbUNBU0M7Ozs7OztJQVBDLHlEQUFrRDs7OztJQUdsRCxtREFBc0I7Ozs7O0lBR3RCLHNEQUF1RDs7O0FBR3pELE1BQU0sT0FBTyxZQUFZLEdBQUcsbUNBQW1DO0FBRy9ELE1BQU0sT0FBTyxTQUFTOzs7Ozs7Ozs7OztJQVFwQixZQUFvQixLQUFtQjtRQUFuQixVQUFLLEdBQUwsS0FBSyxDQUFjO0lBQUcsQ0FBQzs7OztJQUUzQyxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7Ozs7O0lBRUQsU0FBUyxDQUFDLEVBQXdCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQzs7Ozs7Ozs7SUFFRCxZQUFZLENBQUksSUFBYyxFQUFFLElBQVksRUFBRSxLQUFRO1FBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ2xCLElBQUksRUFBRSxZQUFZO1lBQ2xCLE9BQU8sRUFBRTtnQkFDUCxJQUFJO2dCQUNKLElBQUk7Z0JBQ0osS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSTtnQkFDMUIsS0FBSzthQUNOO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBN0JGLFVBQVU7Ozs7WUFqQkYsT0FBTzs7Ozs7OztJQTBCRiwwQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTmdSZWR1eCB9IGZyb20gJ0Bhbmd1bGFyLXJlZHV4L3N0b3JlJztcblxuaW1wb3J0IHsgQWN0aW9uLCBVbnN1YnNjcmliZSB9IGZyb20gJ3JlZHV4JztcblxuZXhwb3J0IGludGVyZmFjZSBBYnN0cmFjdFN0b3JlPFJvb3RTdGF0ZT4ge1xuICAvLy8gRGlzcGF0Y2ggYW4gYWN0aW9uXG4gIGRpc3BhdGNoKGFjdGlvbjogQWN0aW9uICYgeyBwYXlsb2FkOiBhbnkgfSk6IHZvaWQ7XG5cbiAgLy8vIFJldHJpZXZlIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIHN0YXRlXG4gIGdldFN0YXRlKCk6IFJvb3RTdGF0ZTtcblxuICAvLy8gU3Vic2NyaWJlIHRvIGNoYW5nZXMgaW4gdGhlIHN0b3JlXG4gIHN1YnNjcmliZShmbjogKHN0YXRlOiBSb290U3RhdGUpID0+IHZvaWQpOiBVbnN1YnNjcmliZTtcbn1cblxuZXhwb3J0IGNvbnN0IEZPUk1fQ0hBTkdFRCA9ICdAQGFuZ3VsYXItcmVkdXgvZm9ybS9GT1JNX0NIQU5HRUQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9ybVN0b3JlIHtcbiAgLy8vIE5PVEUoY2JvbmQpOiBUaGUgZGVjbGFyYXRpb24gb2Ygc3RvcmUgaXMgbWlzbGVhZGluZy4gVGhpcyBjbGFzcyBpc1xuICAvLy8gYWN0dWFsbHkgY2FwYWJsZSBvZiB0YWtpbmcgYSBwbGFpbiBSZWR1eCBzdG9yZSBvciBhbiBOZ1JlZHV4IGluc3RhbmNlLlxuICAvLy8gQnV0IGluIG9yZGVyIHRvIG1ha2UgdGhlIG5nIGRlcGVuZGVuY3kgaW5qZWN0b3Igd29yayBwcm9wZXJseSwgd2VcbiAgLy8vIGRlY2xhcmUgaXQgYXMgYW4gTmdSZWR1eCB0eXBlLCBzaW5jZSB0aGUgQGFuZ3VsYXItcmVkdXgvc3RvcmUgdXNlIGNhc2UgaW52b2x2ZXNcbiAgLy8vIGNhbGxpbmcgdGhlIGNvbnN0cnVjdG9yIG9mIHRoaXMgY2xhc3MgbWFudWFsbHkgKGZyb20gY29uZmlndXJlLnRzKSxcbiAgLy8vIHdoZXJlIGEgcGxhaW4gc3RvcmUgY2FuIGJlIGNhc3QgdG8gYW4gTmdSZWR1eC4gKEZvciBvdXIgcHVycG9zZXMsIHRoZXlcbiAgLy8vIGhhdmUgYWxtb3N0IGlkZW50aWNhbCBzaGFwZXMuKVxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBOZ1JlZHV4PGFueT4pIHt9XG5cbiAgZ2V0U3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuZ2V0U3RhdGUoKTtcbiAgfVxuXG4gIHN1YnNjcmliZShmbjogKHN0YXRlOiBhbnkpID0+IHZvaWQpOiBVbnN1YnNjcmliZSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3Vic2NyaWJlKCgpID0+IGZuKHRoaXMuZ2V0U3RhdGUoKSkpO1xuICB9XG5cbiAgdmFsdWVDaGFuZ2VkPFQ+KHBhdGg6IHN0cmluZ1tdLCBmb3JtOiBOZ0Zvcm0sIHZhbHVlOiBUKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiBGT1JNX0NIQU5HRUQsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIGZvcm0sXG4gICAgICAgIHZhbGlkOiBmb3JtLnZhbGlkID09PSB0cnVlLFxuICAgICAgICB2YWx1ZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==