{"version":3,"file":"ngartifex-ngrx-action.mjs","sources":["../../../../projects/ngartifex/ngrx-action/src/lib/internals.ts","../../../../projects/ngartifex/ngrx-action/src/lib/action.ts","../../../../projects/ngartifex/ngrx-action/src/lib/of-action.ts","../../../../projects/ngartifex/ngrx-action/src/lib/store.ts","../../../../projects/ngartifex/ngrx-action/src/lib/select.ts","../../../../projects/ngartifex/ngrx-action/src/lib/factory.ts","../../../../projects/ngartifex/ngrx-action/src/lib/redux-tokens.ts","../../../../projects/ngartifex/ngrx-action/src/lib/redux-register-feature.module.ts","../../../../projects/ngartifex/ngrx-action/src/lib/redux-register-root.module.ts","../../../../projects/ngartifex/ngrx-action/src/lib/redux-register.module.ts","../../../../projects/ngartifex/ngrx-action/src/public-api.ts","../../../../projects/ngartifex/ngrx-action/src/ngartifex-ngrx-action.ts"],"sourcesContent":["import { ActionCreator } from '@ngrx/store';\r\n\r\nexport const NGRX_ACTIONS_META = '__ngrx__actions__';\r\n\r\nexport interface StoreMetadata {\r\n    initialState?: any;\r\n    actions: ActionsMeta;\r\n    effects: ActionsMeta;\r\n}\r\n\r\nexport interface ActionMeta {\r\n    action: ActionCreator;\r\n    fn: string;\r\n    type: string;\r\n}\r\n\r\nexport interface ActionsMeta {\r\n    [type: string]: ActionMeta;\r\n}\r\n\r\nexport function ensureStoreMetadata(target: any): StoreMetadata {\r\n    // see https://github.com/angular/angular/blob/master/packages/core/src/util/decorators.ts#L60\r\n    // eslint-disable-next-line no-prototype-builtins\r\n    if (!target.hasOwnProperty(NGRX_ACTIONS_META)) {\r\n        const defaultMetadata: StoreMetadata = { actions: {}, effects: {} };\r\n        Object.defineProperty(target, NGRX_ACTIONS_META, { value: defaultMetadata });\r\n    }\r\n    return target[NGRX_ACTIONS_META];\r\n}\r\n","import { ensureStoreMetadata } from './internals';\r\nimport { ActionCreator } from '@ngrx/store';\r\n\r\nexport function Action(...actionsKlasses: ActionCreator[]) {\r\n    return function(target: any, name: string) {\r\n        const meta = ensureStoreMetadata(target.constructor);\r\n\r\n        for (const klass of actionsKlasses) {\r\n            const type = klass.type;\r\n\r\n            if (meta.actions[type]) {\r\n                throw new Error(\r\n                    `@Action for '${type}' is defined multiple times in functions '${meta.actions[type].fn}' and '${name}'`\r\n                );\r\n            }\r\n\r\n            meta.actions[type] = {\r\n                action: klass,\r\n                fn: name,\r\n                type\r\n            };\r\n        }\r\n    };\r\n}\r\n","import { Action, ActionCreator } from '@ngrx/store';\r\nimport { filter } from 'rxjs/operators';\r\nimport { OperatorFunction } from 'rxjs';\r\n\r\nexport function ofAction<T extends Action>(allowedType: ActionCreator): OperatorFunction<Action, T>;\r\nexport function ofAction<T extends Action>(...allowedTypes: ActionCreator[]): OperatorFunction<Action, T>;\r\nexport function ofAction(...allowedTypes: ActionCreator[]): OperatorFunction<Action, Action> {\r\n    const allowedMap = {};\r\n    allowedTypes.forEach(klass => (allowedMap[klass.type] = true));\r\n    return filter((action: Action) => {\r\n        return allowedMap[action.type];\r\n    });\r\n}\r\n","import { ensureStoreMetadata } from './internals';\r\n\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nexport function Store<TState>(initialState?: TState): (target: Function) => void;\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nexport function Store(initialState?: any): (target: Function) => void;\r\nexport function Store(initialState: any = {}) {\r\n    // eslint-disable-next-line @typescript-eslint/ban-types\r\n    return function (target: Function) {\r\n        const meta = ensureStoreMetadata(target);\r\n        meta.initialState = initialState;\r\n    };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Store, Selector } from '@ngrx/store';\r\n\r\n@Injectable()\r\nexport class NgrxSelect {\r\n    static store: Store<any> | undefined = undefined;\r\n    connect(store: Store<any>) {\r\n        NgrxSelect.store = store;\r\n    }\r\n}\r\n\r\nexport function Select<TState = any, TValue = any>(\r\n    selector: Selector<TState, TValue>\r\n): (target: any, name: string) => void;\r\n\r\nexport function Select(\r\n    selectorOrFeature?: string,\r\n    ...paths: string[]\r\n): (target: any, name: string) => void;\r\n\r\n/**\r\n * Slice state from the store.\r\n */\r\nexport function Select<TState = any, TValue = any>(\r\n    selectorOrFeature?: string | Selector<TState, TValue>,\r\n    ...paths: string[]\r\n) {\r\n    return function (target: any, name: string): void {\r\n        const selectorFnName = '__' + name + '__selector';\r\n        let fn: Selector<TState, TValue>;\r\n        // Nothing here? Use propery name as selector\r\n        if (!selectorOrFeature) {\r\n            selectorOrFeature = name;\r\n        }\r\n        // Handle string vs Selector<TState, TValue>\r\n        if (typeof selectorOrFeature === 'string') {\r\n            const propsArray = paths.length ? [selectorOrFeature, ...paths] : selectorOrFeature.split('.');\r\n            fn = fastPropGetter(propsArray);\r\n        } else {\r\n            fn = selectorOrFeature;\r\n        }\r\n\r\n        const createSelect = () => {\r\n            const store = NgrxSelect.store;\r\n            if (!store) {\r\n                throw new Error('NgrxSelect not connected to store!');\r\n            }\r\n            return store.select(fn);\r\n        };\r\n\r\n        if (target[selectorFnName]) {\r\n            throw new Error('You cannot use @Select decorator and a ' + selectorFnName + ' property.');\r\n        }\r\n\r\n        // Redefine property\r\n        if (delete target[name]) {\r\n            Object.defineProperty(target, selectorFnName, {\r\n                writable: true,\r\n                enumerable: false,\r\n                configurable: true\r\n            });\r\n\r\n            Object.defineProperty(target, name, {\r\n                get: function () {\r\n                    return this[selectorFnName] || (this[selectorFnName] = createSelect.apply(this));\r\n                },\r\n                enumerable: true,\r\n                configurable: true\r\n            });\r\n        }\r\n    };\r\n}\r\n\r\n/**\r\n * The generated function is faster than:\r\n * - pluck (Observable operator)\r\n * - memoize (old ngrx-actions implementation)\r\n * - MemoizedSelector (ngrx)\r\n */\r\nexport function fastPropGetter(paths: string[]): (x: any) => any {\r\n    const segments = paths;\r\n    let seg = 'store.' + segments[0],\r\n        i = 0;\r\n    const l = segments.length;\r\n    let expr = seg;\r\n    while (++i < l) {\r\n        expr = expr + ' && ' + (seg = seg + '.' + segments[i]);\r\n    }\r\n    // eslint-disable-next-line @typescript-eslint/no-implied-eval\r\n    const fn = new Function('store', 'return ' + expr + ';');\r\n    return <(x: any) => any>fn;\r\n}\r\n","import { Action, ActionCreator } from '@ngrx/store';\r\nimport { NGRX_ACTIONS_META, StoreMetadata } from './internals';\r\n\r\nexport function createReducer<TState = any>(\r\n    store:\r\n        | {\r\n            // tslint:disable-next-line:callable-types\r\n            new(...args: any[]): any;\r\n        }\r\n        | any\r\n): (state: TState, action: Action | any) => TState {\r\n    const isInstance = !store.prototype;\r\n    const klass = isInstance ? store.constructor : store;\r\n\r\n    // eslint-disable-next-line no-prototype-builtins\r\n    if (!klass.hasOwnProperty(NGRX_ACTIONS_META)) {\r\n        throw new Error('A reducer can be created from a @Store decorated class only.');\r\n    }\r\n\r\n    const instance = isInstance ? store : new store();\r\n    const { initialState, actions } = klass[NGRX_ACTIONS_META] as StoreMetadata;\r\n\r\n    return (state: any = initialState, action: ActionCreator) => {\r\n        const actionMeta = actions[action.type];\r\n        if (actionMeta) {\r\n            const result = instance[actionMeta.fn](state, action);\r\n            if (result === undefined) {\r\n                if (Array.isArray(state)) {\r\n                    return [...state];\r\n                } else {\r\n                    return { ...state };\r\n                }\r\n            }\r\n            state = result;\r\n        }\r\n        return state;\r\n    };\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const STORE_TOKEN = new InjectionToken<any>('STORE_ADDAPPTABLE_TOKEN');\r\nexport const FEATURE_STORE_TOKEN = new InjectionToken<any>('FEATURE_ADDAPPTABLE_STORE_TOKEN');\r\n","import { NgModule, Optional, Inject, Injector } from \"@angular/core\";\r\nimport { ReducerManager, combineReducers } from \"@ngrx/store\";\r\nimport { FEATURE_STORE_TOKEN } from \"./redux-tokens\";\r\nimport { createReducer } from \"./factory\";\r\n\r\n@NgModule()\r\nexport class ReduxRegisterFeatureModule {\r\n  constructor(\r\n    @Optional() @Inject(FEATURE_STORE_TOKEN) featureReducers: any,\r\n    reducerFactory: ReducerManager,\r\n    parentInjector: Injector\r\n  ) {\r\n    if (featureReducers) {\r\n      featureReducers.forEach((featureReducer) => {\r\n        if (typeof featureReducer.key !== \"string\") {\r\n          featureReducer.reducers = featureReducer.key;\r\n          featureReducer.key = undefined;\r\n        }\r\n\r\n        const mapped = {};\r\n        // tslint:disable-next-line:forin\r\n        for (const key in featureReducer.reducers) {\r\n          const klass = featureReducer.reducers[key];\r\n          // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\r\n          const inst = parentInjector.get(klass, new klass());\r\n          mapped[key] = createReducer(inst);\r\n        }\r\n\r\n        if (featureReducer.key) {\r\n          reducerFactory.addFeature({\r\n            reducers: mapped,\r\n            reducerFactory: combineReducers as any,\r\n            key: featureReducer.key,\r\n          });\r\n        }\r\n      });\r\n    }\r\n  }\r\n}\r\n","import { NgModule, Injector, Inject, Optional, InjectFlags } from '@angular/core';\r\nimport { ReducerManager } from '@ngrx/store';\r\nimport { STORE_TOKEN } from './redux-tokens';\r\nimport { createReducer } from './factory';\r\n\r\n@NgModule()\r\nexport class ReduxRegisterRootModule {\r\n    constructor(@Optional() @Inject(STORE_TOKEN) reducers: any, reducerFactory: ReducerManager, parentInjector: Injector) {\r\n        if (reducers) {\r\n            // tslint:disable-next-line:forin\r\n            for (const key in reducers) {\r\n                const klass = reducers[key];\r\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\r\n                const inst = parentInjector.get(klass, new klass(), InjectFlags.Default);\r\n                reducerFactory.addReducer(key, createReducer(inst));\r\n            }\r\n        }\r\n    }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { ReduxRegisterRootModule } from './redux-register-root.module';\r\nimport { STORE_TOKEN, FEATURE_STORE_TOKEN } from './redux-tokens';\r\nimport { ReduxRegisterFeatureModule } from './redux-register-feature.module';\r\nimport { StoreModule } from '@ngrx/store';\r\n\r\n@NgModule({\r\n    imports: [StoreModule]\r\n})\r\nexport class ReduxRegisterModule {\r\n    static forRoot(reducers: any): ModuleWithProviders<ReduxRegisterRootModule> {\r\n        return {\r\n            ngModule: ReduxRegisterRootModule,\r\n            providers: [\r\n                {\r\n                    provide: STORE_TOKEN,\r\n                    useValue: reducers\r\n                }\r\n            ]\r\n        };\r\n    }\r\n\r\n    static forFeature(key: any, reducers?: any): ModuleWithProviders<ReduxRegisterFeatureModule> {\r\n        return {\r\n            ngModule: ReduxRegisterFeatureModule,\r\n            providers: [\r\n                {\r\n                    provide: FEATURE_STORE_TOKEN,\r\n                    useValue: { key, reducers },\r\n                    multi: true\r\n                }\r\n            ]\r\n        };\r\n    }\r\n}\r\n","/*\r\n * Public API Surface of ngrx-actions\r\n */\r\n\r\nexport * from './lib/action';\r\nexport * from './lib/of-action';\r\nexport * from './lib/store';\r\nexport * from './lib/select';\r\nexport * from './lib/factory';\r\nexport * from './lib/redux-register-feature.module';\r\nexport * from './lib/redux-register-root.module';\r\nexport * from './lib/redux-register.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}