UNPKG

99.2 kBSource Map (JSON)View Raw
1{"version":3,"sources":["webpack/universalModuleDefinition","webpack/bootstrap e0e4e09358e0a2fa5ace","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\symbols.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\info\\classInfo.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\info\\componentInfo.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\options.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\utils\\log.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\utils\\simpleCombineReducers.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\utils\\utils.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\utils\\index.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\info\\componentTemplateInfo.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\info\\index.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\decorators\\action.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\decorators\\ignoreState.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\decorators\\sequence.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\decorators\\withId.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\decorators\\index.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\reduxApp.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\components\\reducer.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\components\\component.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\components\\actions.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\components\\utils.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\components\\index.ts","C:\\Users\\Alon\\Documents\\devel\\redux-app\\src\\index.ts","external \"redux\"","external \"lodash.get\"","external \"lodash.snakecase\""],"names":[],"mappings":"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","file":"redux-app.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"redux-app\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"redux-app\"] = factory();\n\telse\n\t\troot[\"redux-app\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap e0e4e09358e0a2fa5ace","\r\nexport function isSymbol(obj: any): obj is symbol {\r\n return typeof obj === 'symbol' || obj instanceof Symbol;\r\n}\r\n\r\nexport function setSymbol<T>(obj: any, symbol: symbol, value: T): T {\r\n return obj[symbol] = value;\r\n}\r\n\r\nexport function getSymbol(obj: any, symbol: symbol): any {\r\n return obj[symbol];\r\n}\r\n\r\nexport function getOwnSymbol(obj: any, symbol: symbol): any {\r\n return Object.getOwnPropertySymbols(obj).includes(symbol) && getSymbol(obj, symbol);\r\n}\r\n\r\n/**\r\n * Stored on component instances.\r\n */\r\nexport const COMPONENT_INFO = Symbol('REDUX-APP.COMPONENT_INFO');\r\n/**\r\n * Stored on component templates constructors.\r\n */\r\nexport const COMPONENT_TEMPLATE_INFO = Symbol('REDUX-APP.COMPONENT_TEMPLATE_INFO');\r\n/**\r\n * Stored on any class constructor.\r\n */\r\nexport const CLASS_INFO = Symbol('REDUX-APP.CLASS_INFO');\r\nexport const AUTO_ID = Symbol('REDUX-APP.AUTO_ID');\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/symbols.ts","import { CLASS_INFO, getSymbol, setSymbol } from '../symbols';\r\nimport { IMap } from '../types';\r\n\r\n/**\r\n * Metadata stored on instances of regular and/or component classes.\r\n */\r\nexport class ClassInfo {\r\n\r\n public static getInfo(obj: object): ClassInfo {\r\n if (!obj)\r\n return undefined;\r\n\r\n return getSymbol(obj, CLASS_INFO);\r\n }\r\n\r\n public static getOrInitInfo(obj: object): ClassInfo {\r\n\r\n // get previous\r\n var info = ClassInfo.getInfo(obj);\r\n\r\n // create if no previous\r\n if (!info) {\r\n info = setSymbol(obj, CLASS_INFO, new ClassInfo());\r\n }\r\n\r\n return info;\r\n }\r\n\r\n public ignoreState: IMap<boolean> = {};\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/info/classInfo.ts","import { Dispatch } from 'redux';\r\nimport { Component, ReducerCreator } from '../components';\r\nimport { COMPONENT_INFO, getSymbol, setSymbol } from '../symbols';\r\n\r\n// tslint:disable:ban-types\r\n\r\n/**\r\n * Metadata stored on every component instance.\r\n */\r\nexport class ComponentInfo {\r\n\r\n public static getInfo(component: Component): ComponentInfo {\r\n if (!component)\r\n return undefined;\r\n\r\n return getSymbol(component, COMPONENT_INFO);\r\n }\r\n\r\n public static initInfo(component: Component, template: object, dispatch: Dispatch<any>, id: any): ComponentInfo {\r\n const info = new ComponentInfo(template, dispatch, id);\r\n return setSymbol(component, COMPONENT_INFO, info);\r\n }\r\n\r\n public readonly id: any;\r\n public readonly originalClass: Function;\r\n public readonly dispatch: Dispatch<any>;\r\n public reducerCreator: ReducerCreator;\r\n\r\n constructor(template: object, dispatch: Dispatch<any>, id: any) {\r\n this.originalClass = template.constructor;\r\n this.dispatch = dispatch;\r\n this.id = id;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/info/componentInfo.ts","\r\n// tslint:disable:whitespace\r\n\r\n//\r\n// action options\r\n//\r\n\r\nexport class ActionOptions {\r\n /**\r\n * Add the class name of the object that holds the action to the action name.\r\n * Format: <class name><separator><action name>\r\n * Default value: true.\r\n */\r\n public actionNamespace? = true;\r\n /**\r\n * Default value: . (dot)\r\n */\r\n public actionNamespaceSeparator? = '.';\r\n /**\r\n * Use redux style action names. For instance, if a component defines a\r\n * method called 'incrementCounter' the matching action name will be\r\n * 'INCREMENT_COUNTER'.\r\n * Default value: true.\r\n */\r\n public uppercaseActions? = false;\r\n}\r\n\r\n//\r\n// app options\r\n//\r\n\r\nexport class AppOptions {\r\n /**\r\n * Name of the newly created app. \r\n */\r\n public name?: string;\r\n /**\r\n * By default each component is assigned (with some optimizations) with it's\r\n * relevant sub state on each store change. Set this to false to disable\r\n * this updating process. The store's state will still be updated as usual\r\n * and can always be retrieved using store.getState().\r\n * Default value: true.\r\n */\r\n public updateState? = true; \r\n}\r\n\r\n//\r\n// global options\r\n//\r\n\r\nexport enum LogLevel {\r\n /**\r\n * Emit no logs\r\n */\r\n None = 0,\r\n Verbose = 1, \r\n Debug = 2,\r\n Warn = 5,\r\n /**\r\n * Emit no logs (same as None)\r\n */\r\n Silent = 10\r\n}\r\n\r\nexport class GlobalOptions {\r\n /**\r\n * Default value: LogLevel.Warn\r\n */\r\n public logLevel = LogLevel.Warn;\r\n /**\r\n * Customize actions naming.\r\n */\r\n public action = new ActionOptions();\r\n}\r\n\r\nexport const globalOptions = new GlobalOptions();\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/options.ts","import { globalOptions, LogLevel } from '../options';\r\n\r\n// tslint:disable:no-console\r\n\r\nclass Log {\r\n\r\n public verbose(message: string, ...optionalParams: any[]): void {\r\n if (!this.shouldLog(LogLevel.Verbose))\r\n return;\r\n console.debug('VERBOSE [redux-app] ' + message, ...optionalParams);\r\n }\r\n\r\n public debug(message: string, ...optionalParams: any[]): void {\r\n if (!this.shouldLog(LogLevel.Debug))\r\n return;\r\n console.log('DEBUG [redux-app] ' + message, ...optionalParams);\r\n }\r\n\r\n public warn(message: string, ...optionalParams: any[]): void {\r\n if (!this.shouldLog(LogLevel.Warn))\r\n return;\r\n console.warn('WARN [redux-app] ' + message, ...optionalParams);\r\n }\r\n\r\n private shouldLog(level: LogLevel): boolean {\r\n if (globalOptions.logLevel === LogLevel.None)\r\n return false;\r\n if (globalOptions.logLevel > level)\r\n return false;\r\n\r\n return true;\r\n }\r\n}\r\n\r\nexport const log = new Log();\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/utils/log.ts","import { AnyAction, ReducersMapObject } from 'redux';\r\n\r\n/**\r\n * A simple version of redux combineReducers with no assertions or warnings.\r\n * @see https://raw.githubusercontent.com/reactjs/redux/master/src/combineReducers.js\r\n */\r\nexport function simpleCombineReducers(reducers: ReducersMapObject): any {\r\n const reducerKeys = Object.keys(reducers);\r\n\r\n return function combination(state: any = {}, action: AnyAction) {\r\n let hasChanged = false;\r\n const nextState: any = {};\r\n for (let key of reducerKeys) {\r\n const reducer = reducers[key];\r\n const previousStateForKey = state[key];\r\n const nextStateForKey = reducer(previousStateForKey, action);\r\n nextState[key] = nextStateForKey;\r\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\r\n }\r\n return hasChanged ? nextState : state;\r\n };\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/utils/simpleCombineReducers.ts","import { isSymbol } from '../symbols';\r\nimport { IMap, Method } from '../types';\r\n\r\n// tslint:disable:ban-types\r\n\r\nexport function clearProperties(obj: any): void {\r\n const keys = Object.keys(obj);\r\n for (let key of keys) {\r\n delete obj[key];\r\n }\r\n}\r\n\r\nexport enum DescriptorType {\r\n None = \"None\",\r\n Field = \"Field\",\r\n /** \r\n * Properties with getter.\r\n */\r\n Property = \"Property\",\r\n Method = \"Method\"\r\n}\r\n\r\n/**\r\n * Define properties of 'source' in 'target'.\r\n * @param target \r\n * @param source \r\n * @param descriptorTypes By default all properties (fields, properties, methods) are defined. \r\n * If specified will define only the specified property types.\r\n */\r\nexport function defineProperties(target: object, source: object, descriptorTypes?: DescriptorType[]): object {\r\n const descriptors = getAllPropertyDescriptors(source, descriptorTypes);\r\n for (const key of Object.keys(descriptors)) {\r\n Object.defineProperty(target, key, descriptors[key]);\r\n }\r\n return target;\r\n}\r\n\r\n/**\r\n * Get own and inherited property descriptor (except those of Object).\r\n */\r\nexport function getAllPropertyDescriptors(obj: any, descriptorTypes?: DescriptorType[]): IMap<PropertyDescriptor> {\r\n let result: IMap<PropertyDescriptor> = {};\r\n\r\n while (obj.constructor !== Object) {\r\n\r\n // get descriptor of current type\r\n let descriptors: IMap<PropertyDescriptor> = Object.getOwnPropertyDescriptors(obj);\r\n\r\n // filter by descriptor type\r\n if (descriptorTypes && descriptorTypes.length) {\r\n const filteredDescriptors: IMap<PropertyDescriptor> = {};\r\n\r\n for (const key of Object.keys(descriptors)) {\r\n for (const flag of descriptorTypes) {\r\n let shouldAdd = false;\r\n switch (flag) {\r\n case DescriptorType.None:\r\n break;\r\n case DescriptorType.Field:\r\n shouldAdd = (typeof descriptors[key].value !== 'function' && typeof descriptors[key].get !== 'function');\r\n break;\r\n case DescriptorType.Property:\r\n shouldAdd = (typeof descriptors[key].get === 'function');\r\n break;\r\n case DescriptorType.Method:\r\n shouldAdd = (typeof descriptors[key].value === 'function' && typeof descriptors[key].get !== 'function');\r\n break;\r\n default:\r\n throw new Error(\"Property flag not supported: \" + flag);\r\n }\r\n\r\n if (shouldAdd)\r\n filteredDescriptors[key] = descriptors[key];\r\n }\r\n }\r\n\r\n descriptors = filteredDescriptors;\r\n }\r\n\r\n // store in result\r\n result = Object.assign(descriptors, result);\r\n\r\n // repeat with prototype\r\n obj = getPrototype(obj);\r\n }\r\n\r\n // a \"constructor\" property is always retrieved as part of the result\r\n if (result.constructor)\r\n delete result.constructor;\r\n\r\n return result;\r\n}\r\n\r\nexport function getConstructorProp(obj: object, key: symbol | string): any {\r\n if (!obj || !obj.constructor)\r\n return undefined;\r\n\r\n const ctor = (obj.constructor as any);\r\n return ctor[key];\r\n}\r\n\r\nexport function getConstructorOwnProp(obj: object, key: symbol | string): any {\r\n if (!obj || !obj.constructor)\r\n return undefined;\r\n\r\n const ctor = (obj.constructor as any);\r\n if (isSymbol(key) && Object.getOwnPropertySymbols(ctor).includes(key)) {\r\n return ctor[key];\r\n } else if (typeof key === 'string' && Object.getOwnPropertyNames(ctor).includes(key)) {\r\n return ctor[key];\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\n/**\r\n * @param obj \r\n * @param bind Whether or not to bind the returned methods to 'obj'. Default value: false.\r\n */\r\nexport function getMethods(obj: object | Function, bind = false): IMap<Method> {\r\n const methodDescriptors = getAllPropertyDescriptors(obj, [DescriptorType.Method]);\r\n const methods: IMap<Method> = {};\r\n for (const key of Object.keys(methodDescriptors)) {\r\n methods[key] = methodDescriptors[key].value;\r\n if (bind) {\r\n methods[key] = methods[key].bind(obj);\r\n }\r\n }\r\n return methods;\r\n}\r\n\r\nexport function getPrototype(obj: object | Function): object {\r\n if (typeof obj === 'object') {\r\n return Object.getPrototypeOf(obj);\r\n } else if (typeof obj === 'function') {\r\n return obj.prototype;\r\n } else {\r\n throw new Error(\"Expected an object or a function. Got: \" + obj);\r\n }\r\n}\r\n\r\n/**\r\n * Return true if 'val' is primitive. For the sake of this test 'null' and\r\n * 'undefined' are considered primitives.\r\n */\r\nexport function isPrimitive(val: any): boolean {\r\n if (!val)\r\n return true;\r\n\r\n const type = typeof val;\r\n return type !== 'object' && type !== 'function';\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/utils/utils.ts","export * from './log';\r\nexport * from './simpleCombineReducers';\r\nexport * from './utils';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/utils/index.ts","import { Component } from '../components';\r\nimport { COMPONENT_TEMPLATE_INFO, getOwnSymbol, getSymbol, setSymbol } from '../symbols';\r\nimport { IMap } from '../types';\r\nimport { getConstructorOwnProp, getConstructorProp } from '../utils';\r\n\r\n// tslint:disable:ban-types\r\n\r\n/**\r\n * Metadata information stored on \"component templates\" - classes that were\r\n * decorated with one of the component decorators (@action, @sequence, etc.).\r\n * Since it is common to all instances it is stored on the class constructor. It\r\n * is used for the most part in the component creation process.\r\n */\r\nexport class ComponentTemplateInfo {\r\n\r\n //\r\n // public static\r\n //\r\n\r\n public static getInfo(obj: object | Function): ComponentTemplateInfo {\r\n if (!obj)\r\n return undefined;\r\n\r\n let ownInfo = ComponentTemplateInfo.getOwnInfo(obj);\r\n if (ownInfo)\r\n return ownInfo;\r\n\r\n // if base class is a component template so should this class be\r\n const baseInfo = ComponentTemplateInfo.getBaseInfo(obj);\r\n if (baseInfo)\r\n return ComponentTemplateInfo.initInfo(obj);\r\n\r\n return undefined;\r\n }\r\n\r\n public static getOrInitInfo(obj: object | Function): ComponentTemplateInfo {\r\n\r\n // get previous\r\n const info = ComponentTemplateInfo.getInfo(obj);\r\n if (info)\r\n return info;\r\n\r\n // create if no previous\r\n return ComponentTemplateInfo.initInfo(obj);\r\n }\r\n\r\n //\r\n // private static\r\n //\r\n\r\n private static getOwnInfo(obj: object | Function): ComponentTemplateInfo {\r\n if (typeof obj === 'object') {\r\n return getConstructorOwnProp(obj, COMPONENT_TEMPLATE_INFO);\r\n } else {\r\n return getOwnSymbol(obj, COMPONENT_TEMPLATE_INFO);\r\n }\r\n }\r\n\r\n private static getBaseInfo(obj: object | Function): ComponentTemplateInfo {\r\n if (typeof obj === 'object') {\r\n return getConstructorProp(obj, COMPONENT_TEMPLATE_INFO);\r\n } else {\r\n return getSymbol(obj, COMPONENT_TEMPLATE_INFO);\r\n }\r\n }\r\n\r\n private static initInfo(obj: object | Function): ComponentTemplateInfo {\r\n // information is stored on the class constructor to \r\n // be available to all class instances\r\n const isConstructor = (typeof obj === 'function' ? true : false);\r\n const target = (isConstructor ? obj : obj.constructor);\r\n\r\n // derive initial info from base class, if any\r\n const baseInfo = getSymbol(target, COMPONENT_TEMPLATE_INFO);\r\n\r\n // set own info\r\n const selfInfo = Object.assign(new ComponentTemplateInfo(), baseInfo);\r\n return setSymbol(target, COMPONENT_TEMPLATE_INFO, selfInfo);\r\n }\r\n\r\n //\r\n // instance members\r\n //\r\n\r\n public componentClass: typeof Component;\r\n public actions: IMap<boolean> = {};\r\n public sequences: IMap<boolean> = {};\r\n public childIds: any = {};\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/info/componentTemplateInfo.ts","export * from './classInfo';\nexport * from './componentInfo';\nexport * from './componentTemplateInfo';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/info/index.ts","import { ComponentTemplateInfo } from '../info';\r\n\r\n/**\r\n * Method decorator.\r\n * \r\n * Mark this method as a Redux action.\r\n */\r\nexport function action(target: object, propertyKey: string | symbol): void {\r\n const info = ComponentTemplateInfo.getOrInitInfo(target);\r\n info.actions[propertyKey] = true;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/decorators/action.ts","import { ClassInfo } from '../info';\r\n\r\n/**\r\n * Property decorator.\r\n * Instruct redux-app to not store this property in the store.\r\n */\r\nexport function ignoreState(target: object, propertyKey: string | symbol): void {\r\n\r\n const info = ClassInfo.getOrInitInfo(target);\r\n info.ignoreState[propertyKey] = true;\r\n}\r\n\r\nexport class IgnoreState {\r\n\r\n public static isIgnoredProperty(propHolder: object, propKey: string | symbol): boolean {\r\n const info = ClassInfo.getInfo(propHolder);\r\n return info && info.ignoreState[propKey];\r\n }\r\n\r\n public static removeIgnoredProps(state: any, obj: any): any {\r\n\r\n const info = ClassInfo.getInfo(obj);\r\n if (!info)\r\n return state;\r\n\r\n // remove ignored props\r\n for (let propKey of Object.keys(info.ignoreState)) {\r\n delete state[propKey];\r\n }\r\n return state;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/decorators/ignoreState.ts","import { ComponentTemplateInfo } from '../info';\r\n\r\n/**\r\n * Method decorator. \r\n * \r\n * The method will dispatch an action with the corresponding name but the\r\n * dispatched action will **not** trigger a reducer reaction. Instead, after the\r\n * dispatch process is done the method will be invoked as a regular one\r\n * (similarly to `noDispatch` methods).\r\n */\r\nexport function sequence(target: object, propertyKey: string | symbol): void {\r\n const info = ComponentTemplateInfo.getOrInitInfo(target);\r\n info.sequences[propertyKey] = true;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/decorators/sequence.ts","import { ComponentTemplateInfo } from '../info';\r\nimport { AUTO_ID } from '../symbols';\r\nimport { log } from '../utils';\r\n\r\nexport function withId(id?: any): PropertyDecorator;\r\nexport function withId(target: object, propertyKey: string | symbol): void;\r\nexport function withId(targetOrId: any, propertyKeyOrNothing?: string | symbol): any {\r\n if (propertyKeyOrNothing) {\r\n withIdDecorator.call(undefined, targetOrId, propertyKeyOrNothing);\r\n } else {\r\n return (target: object, propertyKey: string | symbol) => withIdDecorator(target, propertyKey, targetOrId);\r\n }\r\n}\r\n\r\nfunction withIdDecorator(target: object, propertyKey: string | symbol, id?: any) {\r\n const info = ComponentTemplateInfo.getOrInitInfo(target);\r\n info.childIds[propertyKey] = id || AUTO_ID;\r\n}\r\n\r\nexport class ComponentId {\r\n\r\n private static autoComponentId = 0;\r\n\r\n public static nextAvailableId(): any {\r\n return --ComponentId.autoComponentId; // using negative ids to decrease chance of collision with user assigned ids\r\n }\r\n\r\n public static getComponentId(parentTemplate: object, path: string): any {\r\n\r\n //\r\n // Note: The component id is first stored on it's parent. It is only\r\n // assigned to it once the component itself has been constructed. The\r\n // differed assignment resolves situations where the component`s\r\n // template is created inside it's parent constructor or injected via\r\n // DI. This could have also been resolved with custom getter and setter\r\n // but decided to take this approach here.\r\n //\r\n\r\n // no parent\r\n const pathArray = path.split('.');\r\n if (!parentTemplate || !pathArray.length)\r\n return undefined;\r\n\r\n // parent is not a component template\r\n const info = ComponentTemplateInfo.getInfo(parentTemplate);\r\n if (!info)\r\n return;\r\n\r\n const selfKey = pathArray[pathArray.length - 1];\r\n const id = info.childIds[selfKey];\r\n\r\n // the specific component was not assigned an id\r\n if (!id)\r\n return undefined;\r\n\r\n // auto id\r\n if (id === AUTO_ID) {\r\n const generatedId = ComponentId.nextAvailableId();\r\n log.verbose('[getComponentId] new component id generated: ' + generatedId);\r\n info.childIds[selfKey] = generatedId;\r\n return generatedId;\r\n }\r\n\r\n // manual id\r\n return id;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/decorators/withId.ts","export * from './action';\r\nexport * from './ignoreState';\r\nexport * from './sequence';\r\nexport * from './withId';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/decorators/index.ts","import { createStore, Store, StoreEnhancer } from 'redux';\r\nimport { CombineReducersContext, Component, ComponentCreationContext, ComponentReducer } from './components';\r\nimport { ComponentId, IgnoreState } from './decorators';\r\nimport { ComponentInfo } from './info';\r\nimport { AppOptions, globalOptions, GlobalOptions } from './options';\r\nimport { Constructor, IMap, Listener } from './types';\r\nimport { isPrimitive, log } from './utils';\r\nconst getProp = require('lodash.get');\r\n\r\n// tslint:disable:ban-types\r\n\r\n//\r\n// internal\r\n//\r\n\r\nexport const ROOT_COMPONENT_PATH = 'root';\r\n\r\nexport const DEFAULT_APP_NAME = 'default';\r\n\r\nexport const appsRepository: IMap<ReduxApp<any>> = {};\r\n\r\nexport type AppWarehouse = Map<Function, Map<any, any>>;\r\n\r\nvar appsCount = 0;\r\n\r\nclass UpdateContext {\r\n\r\n public visited = new Set();\r\n public path = ROOT_COMPONENT_PATH;\r\n public forceRecursion = false;\r\n\r\n constructor(initial?: Partial<UpdateContext>) {\r\n Object.assign(this, initial);\r\n }\r\n}\r\n\r\n//\r\n// public\r\n//\r\n\r\nexport class ReduxApp<T extends object> {\r\n\r\n //\r\n // static\r\n //\r\n\r\n /**\r\n * Global redux-app options\r\n */\r\n public static options: GlobalOptions = globalOptions;\r\n\r\n public static createApp<T extends object>(appTemplate: T, enhancer?: StoreEnhancer<T>): ReduxApp<T>;\r\n public static createApp<T extends object>(appTemplate: T, options: AppOptions, enhancer?: StoreEnhancer<T>): ReduxApp<T>;\r\n public static createApp<T extends object>(appTemplate: T, options: AppOptions, preloadedState: any, enhancer?: StoreEnhancer<T>): ReduxApp<T>;\r\n public static createApp<T extends object>(appTemplate: T, ...params: any[]): ReduxApp<T> {\r\n return new ReduxApp(appTemplate, ...params);\r\n }\r\n\r\n /**\r\n * @param type The type of the component.\r\n * @param componentId The ID of the component (assuming the ID was assigned\r\n * to the component by the 'withId' decorator). If not specified will get to\r\n * the first available component of that type.\r\n * @param appId The name of the ReduxApp instance to search in. If not\r\n * specified will search in default app.\r\n * @throws If not found.\r\n */\r\n public static getComponent<T>(type: Constructor<T>, componentId?: string, appId?: string): T {\r\n const app = ReduxApp.getApp(appId);\r\n if (!app)\r\n throw new Error(`App not found (id: '${appId || DEFAULT_APP_NAME}')`);\r\n\r\n // get the component\r\n const warehouse = app.getTypeWarehouse(type);\r\n if (componentId) {\r\n\r\n // get by id\r\n const comp = warehouse.get(componentId);\r\n if (!comp)\r\n throw new Error(`Component not found. Type: ${type.name}. Id: '${componentId}'.`);\r\n return comp;\r\n } else {\r\n\r\n // get the first value\r\n const comp = warehouse.values().next().value;\r\n if (!comp)\r\n throw new Error(`Component not found. Type: ${type.name}.`);\r\n return comp;\r\n }\r\n }\r\n\r\n /**\r\n * Get an existing ReduxApp instance.\r\n * \r\n * @param appId The name of the ReduxApp instance to retrieve. If not\r\n * specified will return the default app.\r\n */\r\n private static getApp<T extends object = any>(appId?: string): ReduxApp<T> {\r\n const applicationId = appId || DEFAULT_APP_NAME;\r\n const app = appsRepository[applicationId];\r\n if (!app)\r\n log.debug(`[ReduxApp] Application '${applicationId}' does not exist.`);\r\n return app;\r\n }\r\n\r\n //\r\n // instance members\r\n //\r\n\r\n public readonly name: string;\r\n /**\r\n * The root component of the application.\r\n */\r\n public readonly root: T;\r\n /**\r\n * The underlying redux store.\r\n */\r\n public readonly store: Store<T>;\r\n\r\n private readonly warehouse: AppWarehouse = new Map<Function, Map<any, any>>();\r\n\r\n private initialStateUpdated = false;\r\n\r\n private subscriptionDisposer: () => void;\r\n\r\n //\r\n // constructor\r\n //\r\n\r\n constructor(appTemplate: T, enhancer?: StoreEnhancer<T>);\r\n constructor(appTemplate: T, options: AppOptions, enhancer?: StoreEnhancer<T>);\r\n constructor(appTemplate: T, options: AppOptions, preloadedState: any, enhancer?: StoreEnhancer<T>);\r\n constructor(appTemplate: T, ...params: any[]) {\r\n\r\n // handle different overloads\r\n var { options, preLoadedState, enhancer } = this.resolveParameters(appTemplate, params);\r\n\r\n // assign name and register self\r\n this.name = this.getAppName(options.name);\r\n if (appsRepository[this.name])\r\n throw new Error(`An app with name '${this.name}' already exists.`);\r\n appsRepository[this.name] = this;\r\n\r\n // create the store\r\n const initialReducer = (state: any) => state;\r\n this.store = createStore<T>(initialReducer as any, preLoadedState, enhancer);\r\n\r\n // create the app\r\n const creationContext = new ComponentCreationContext({ appName: this.name });\r\n const rootComponent = Component.create(this.store, appTemplate, creationContext);\r\n this.root = (rootComponent as any);\r\n this.registerComponents(creationContext.createdComponents);\r\n\r\n // create the root reducer\r\n const reducersContext = new CombineReducersContext({\r\n componentPaths: Object.keys(creationContext.createdComponents)\r\n });\r\n const rootReducer = ComponentReducer.combineReducersTree(this.root, reducersContext);\r\n\r\n // listen to state changes\r\n if (options.updateState) {\r\n const stateListener = this.updateState(reducersContext);\r\n this.subscriptionDisposer = this.store.subscribe(stateListener);\r\n }\r\n\r\n // update the store\r\n this.store.replaceReducer(rootReducer);\r\n }\r\n\r\n //\r\n // public methods\r\n //\r\n\r\n public dispose(): void {\r\n if (this.subscriptionDisposer) {\r\n this.subscriptionDisposer();\r\n this.subscriptionDisposer = null;\r\n }\r\n if (appsRepository[this.name]) {\r\n delete appsRepository[this.name];\r\n }\r\n }\r\n\r\n //\r\n // private utils\r\n // \r\n\r\n private resolveParameters(appTemplate: any, params: any[]) {\r\n var result: {\r\n options?: AppOptions,\r\n preLoadedState?: T,\r\n enhancer?: StoreEnhancer<T>\r\n } = {};\r\n\r\n if (params.length === 0) {\r\n\r\n // no parameters\r\n result.options = new AppOptions();\r\n result.preLoadedState = appTemplate;\r\n\r\n } else if (params.length === 1) {\r\n\r\n if (typeof params[0] === 'function') {\r\n\r\n // only enhancer\r\n result.options = new AppOptions();\r\n result.enhancer = params[0];\r\n result.preLoadedState = appTemplate;\r\n\r\n } else {\r\n\r\n // only options\r\n result.options = Object.assign(new AppOptions(), params[0]);\r\n result.preLoadedState = appTemplate;\r\n\r\n }\r\n } else if (params.length === 2) {\r\n\r\n // options and pre-loaded state\r\n result.options = Object.assign(new AppOptions(), params[0]);\r\n result.preLoadedState = params[1];\r\n\r\n } else {\r\n\r\n // options, pre-loaded state and enhancer\r\n result.options = Object.assign(new AppOptions(), params[0]);\r\n result.preLoadedState = params[1];\r\n result.enhancer = params[2];\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private getAppName(name: string): string {\r\n if (name)\r\n return name;\r\n\r\n if (!Object.keys(appsRepository).length) {\r\n return DEFAULT_APP_NAME;\r\n } else {\r\n return DEFAULT_APP_NAME + '_' + (++appsCount);\r\n }\r\n }\r\n\r\n private registerComponents(components: IMap<Component>): void {\r\n for (const comp of Object.values(components)) {\r\n const compInfo = ComponentInfo.getInfo(comp);\r\n const warehouse = this.getTypeWarehouse(compInfo.originalClass);\r\n const key = compInfo.id || ComponentId.nextAvailableId();\r\n warehouse.set(key, comp);\r\n }\r\n }\r\n\r\n private getTypeWarehouse(type: Function): Map<any, any> {\r\n if (!this.warehouse.has(type))\r\n this.warehouse.set(type, new Map());\r\n return this.warehouse.get(type);\r\n }\r\n\r\n //\r\n // update state\r\n //\r\n\r\n private updateState(reducersContext: CombineReducersContext): Listener {\r\n return () => {\r\n\r\n //\r\n // Reducers are invoked with regular objects, therefor we use this\r\n // method which copies the resulted values back to the components.\r\n //\r\n\r\n const start = Date.now();\r\n\r\n // update the application tree\r\n const newState = this.store.getState();\r\n if (!this.initialStateUpdated || !reducersContext.invoked) {\r\n\r\n // initial state, state rehydration, time-travel debugging, etc. - update the entire tree\r\n this.initialStateUpdated = true;\r\n this.updateStateRecursion(this.root, newState, new UpdateContext({ forceRecursion: true }));\r\n } else {\r\n\r\n // standard update - update only changed components\r\n this.updateChangedComponents({ [ROOT_COMPONENT_PATH]: newState }, reducersContext.changedComponents);\r\n }\r\n\r\n // reset reducers context\r\n reducersContext.reset();\r\n\r\n const end = Date.now();\r\n\r\n log.debug(`[updateState] Component tree updated in ${end - start}ms.`);\r\n };\r\n }\r\n\r\n private updateChangedComponents(newState: any, changedComponents: IMap<Component>): void {\r\n\r\n const changedPaths = Object.keys(changedComponents);\r\n const updateContext = new UpdateContext();\r\n\r\n for (let path of changedPaths) {\r\n\r\n const curComponent = changedComponents[path];\r\n var newSubState = getProp(newState, path);\r\n\r\n this.updateStateRecursion(curComponent, newSubState, {\r\n ...updateContext,\r\n path\r\n });\r\n }\r\n }\r\n\r\n private updateStateRecursion(obj: any, newState: any, context: UpdateContext): any {\r\n\r\n // same object\r\n if (obj === newState)\r\n return newState;\r\n\r\n // primitive properties are updated by their owner objects\r\n if (isPrimitive(obj) || isPrimitive(newState))\r\n return newState;\r\n\r\n // prevent endless loops on circular references\r\n if (context.visited.has(obj))\r\n return obj;\r\n context.visited.add(obj);\r\n\r\n if (context.forceRecursion || (obj instanceof Component)) {\r\n\r\n // update\r\n var changeMessage: string;\r\n if (Array.isArray(obj) && Array.isArray(newState)) {\r\n changeMessage = this.updateArray(obj, newState, context);\r\n } else {\r\n changeMessage = this.updateObject(obj, newState, context);\r\n }\r\n } else {\r\n\r\n // overwrite\r\n obj = newState;\r\n changeMessage = 'Object overwritten.';\r\n }\r\n\r\n // log changes\r\n if (changeMessage && changeMessage.length) {\r\n log.debug(`[updateState] Change in '${context.path}'. ${changeMessage}`);\r\n log.verbose(`[updateState] New state: `, obj);\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n private updateObject(obj: any, newState: any, context: UpdateContext): string {\r\n\r\n // delete anything not in the new state\r\n var propsDeleted: string[] = [];\r\n for (const key of Object.keys(obj)) {\r\n\r\n if (IgnoreState.isIgnoredProperty(obj, key))\r\n continue;\r\n\r\n if (!newState.hasOwnProperty(key)) {\r\n\r\n // don't remove getters\r\n const desc = Object.getOwnPropertyDescriptor(obj, key);\r\n if (desc && typeof desc.get === 'function')\r\n continue;\r\n\r\n // warn when removing function properties\r\n if (typeof obj[key] === 'function')\r\n log.warn(`[updateState] Function property removed in path: ${context.path}.${key}. Consider using a method instead.`);\r\n\r\n // remove\r\n delete obj[key];\r\n propsDeleted.push(key);\r\n }\r\n }\r\n\r\n // assign new state recursively\r\n var propsAssigned: string[] = [];\r\n for (const key of Object.keys(newState)) {\r\n\r\n if (IgnoreState.isIgnoredProperty(obj, key))\r\n continue;\r\n\r\n // don't attempt to assign get only properties\r\n const desc = Object.getOwnPropertyDescriptor(obj, key);\r\n if (desc && typeof desc.get === 'function' && typeof desc.set !== 'function')\r\n continue;\r\n\r\n var subState = newState[key];\r\n var subObj = obj[key];\r\n\r\n // must update recursively, otherwise we may lose children types (and methods...)\r\n const newSubObj = this.updateStateRecursion(subObj, subState, {\r\n ...context,\r\n path: context.path + '.' + key\r\n });\r\n\r\n // assign only if changed, in case anyone is monitoring assignments\r\n if (newSubObj !== subObj) {\r\n obj[key] = newSubObj;\r\n propsAssigned.push(key);\r\n }\r\n }\r\n\r\n // report changes\r\n if (propsAssigned.length || propsDeleted.length) {\r\n const propsAssignedMessage = propsAssigned.length ? `Props assigned: ${propsAssigned.join(', ')}.` : '';\r\n const propsDeleteMessage = propsDeleted.length ? `Props deleted: ${propsDeleted.join(', ')}.` : '';\r\n const space = (propsAssigned.length && propsDeleted.length) ? ' ' : '';\r\n return propsAssignedMessage + space + propsDeleteMessage;\r\n\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n private updateArray(arr: any[], newState: any[], context: UpdateContext): string {\r\n\r\n var changeMessage: string[] = [];\r\n\r\n const prevLength = arr.length;\r\n const newLength = newState.length;\r\n\r\n // assign existing\r\n var itemsAssigned: number[] = [];\r\n for (let i = 0; i < Math.min(prevLength, newLength); i++) {\r\n var subState = newState[i];\r\n var subObj = arr[i];\r\n const newSubObj = this.updateStateRecursion(subObj, subState, {\r\n ...context,\r\n path: context.path + '.' + i\r\n });\r\n if (newSubObj !== subObj) {\r\n arr[i] = newSubObj;\r\n itemsAssigned.push(i);\r\n }\r\n }\r\n if (itemsAssigned.length)\r\n changeMessage.push(`Assigned item(s) at indexes ${itemsAssigned.join(', ')}.`);\r\n\r\n // add / remove\r\n if (newLength > prevLength) {\r\n\r\n // add new items\r\n const newItems = newState.slice(prevLength);\r\n Array.prototype.push.apply(arr, newItems);\r\n changeMessage.push(`Added ${newLength - prevLength} item(s) at index ${prevLength}.`);\r\n\r\n } else if (prevLength > newLength) {\r\n\r\n // remove old items\r\n arr.splice(newLength);\r\n changeMessage.push(`Removed ${prevLength - newLength} item(s) at index ${newLength}.`);\r\n }\r\n\r\n // report changes\r\n return changeMessage.join(' ');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/reduxApp.ts","import { Reducer, ReducersMapObject } from 'redux';\r\nimport { IgnoreState } from '../decorators';\r\nimport { ComponentInfo, ComponentTemplateInfo } from '../info';\r\nimport { ROOT_COMPONENT_PATH } from '../reduxApp';\r\nimport { IMap, Listener } from '../types';\r\nimport { clearProperties, defineProperties, DescriptorType, getMethods, isPrimitive, log, simpleCombineReducers } from '../utils';\r\nimport { ComponentActions, ReduxAppAction } from './actions';\r\nimport { Component } from './component';\r\n\r\n// tslint:disable:member-ordering ban-types\r\n\r\nexport type ReducerCreator = (changeListener: Listener<Component>) => Reducer<object>;\r\n\r\nexport class CombineReducersContext {\r\n\r\n public visited = new Set();\r\n public path = ROOT_COMPONENT_PATH;\r\n public componentPaths: string[] = [];\r\n public changedComponents: IMap<Component> = {};\r\n public invoked = false;\r\n\r\n constructor(initial?: Partial<CombineReducersContext>) {\r\n Object.assign(this, initial);\r\n }\r\n\r\n public reset(): void {\r\n clearProperties(this.changedComponents);\r\n this.invoked = false;\r\n }\r\n}\r\n\r\nexport class ComponentReducer {\r\n\r\n private static readonly identityReducer = (state: any) => state;\r\n\r\n //\r\n // public methods\r\n //\r\n\r\n public static createReducer(component: Component, componentTemplate: object): ReducerCreator {\r\n\r\n const templateInfo = ComponentTemplateInfo.getInfo(componentTemplate);\r\n if (!templateInfo)\r\n throw new Error(`Inconsistent component '${componentTemplate.constructor.name}'. The 'component' class decorator is missing.`);\r\n\r\n const methods = ComponentReducer.createMethodsLookup(componentTemplate, templateInfo);\r\n const stateProto = ComponentReducer.createStateObjectPrototype(component, templateInfo);\r\n const componentId = ComponentInfo.getInfo(component).id;\r\n\r\n // reducer creator\r\n return (changeListener: Listener<Component>) =>\r\n\r\n // the reducer\r\n (state: object, action: ReduxAppAction) => {\r\n\r\n log.verbose(`[reducer] Reducer of: ${componentTemplate.constructor.name}, action: ${action.type}.`);\r\n\r\n // initial state\r\n if (state === undefined) {\r\n log.verbose('[reducer] State is undefined, returning initial value.');\r\n return ComponentReducer.finalizeStateObject(component, component);\r\n }\r\n\r\n // preloaded state\r\n if (state === componentTemplate) {\r\n log.verbose(\"[reducer] State equals to component's template, returning initial value.\");\r\n return ComponentReducer.finalizeStateObject(component, component);\r\n }\r\n\r\n // check component id\r\n if (componentId !== action.id) {\r\n log.verbose(`[reducer] Component id and action.id don't match (${componentId} !== ${action.id}).`);\r\n return state;\r\n }\r\n\r\n // check if should use this reducer\r\n const actionReducer = methods[action.type];\r\n if (!actionReducer) {\r\n log.verbose('[reducer] No matching action in this reducer, returning previous state.');\r\n return state;\r\n }\r\n\r\n // call the action-reducer with the new state as the 'this' argument\r\n const newState = ComponentReducer.createStateObject(state, stateProto);\r\n actionReducer.call(newState, ...action.payload);\r\n\r\n // notify changes\r\n changeListener(component);\r\n\r\n // return new state \r\n log.verbose('[reducer] Reducer invoked, returning new state.');\r\n return ComponentReducer.finalizeStateObject(newState, component);\r\n };\r\n }\r\n\r\n public static combineReducersTree(root: Component, context: CombineReducersContext): Reducer<any> {\r\n\r\n const reducer = ComponentReducer.combineReducersRecursion(root, context);\r\n\r\n return (state: any, action: ReduxAppAction) => {\r\n const start = Date.now();\r\n\r\n context.invoked = true;\r\n log.debug(`[rootReducer] Reducing action: ${action.type}.`);\r\n\r\n const newState = reducer(state, action);\r\n\r\n const end = Date.now();\r\n log.debug(`[rootReducer] Reducer tree processed in ${end - start}ms.`);\r\n\r\n return newState;\r\n };\r\n }\r\n\r\n //\r\n // private methods - state object\r\n //\r\n\r\n private static createMethodsLookup(componentTemplate: object, templateInfo: ComponentTemplateInfo): IMap<Function> {\r\n\r\n const allMethods = getMethods(componentTemplate);\r\n\r\n const actionMethods: IMap<Function> = {};\r\n Object.keys(templateInfo.actions).forEach(originalActionName => {\r\n const normalizedActionName = ComponentActions.getActionName(componentTemplate, originalActionName);\r\n actionMethods[normalizedActionName] = allMethods[originalActionName];\r\n });\r\n\r\n return actionMethods;\r\n }\r\n\r\n /**\r\n * See description of 'createStateObject'.\r\n */\r\n private static createStateObjectPrototype(component: Component, templateInfo: ComponentTemplateInfo): object {\r\n\r\n // assign properties\r\n const stateProto: any = defineProperties({}, component, [DescriptorType.Property]);\r\n\r\n // assign methods\r\n const componentMethods = getMethods(component);\r\n for (let key of Object.keys(componentMethods)) {\r\n if (!templateInfo.actions[key]) {\r\n // regular method\r\n stateProto[key] = componentMethods[key].bind(component);\r\n } else {\r\n // action (not allowed)\r\n stateProto[key] = ComponentReducer.actionInvokedError;\r\n }\r\n }\r\n return stateProto;\r\n }\r\n\r\n private static actionInvokedError() {\r\n throw new Error(\"Actions should not be invoked from within other actions.\");\r\n }\r\n\r\n /**\r\n * Create a \"state object\". The state object receives it's properties from\r\n * the current state and it's methods from the owning component. Methods\r\n * that represent actions are replace with a throw call, while regular\r\n * methods are kept in place.\r\n */\r\n private static createStateObject(state: any, stateProto: object): object {\r\n const stateObj = Object.create(stateProto);\r\n for (const key of Object.keys(state)) {\r\n\r\n // don't attempt to assign get only properties\r\n const desc = Object.getOwnPropertyDescriptor(stateProto, key);\r\n if (desc && typeof desc.get === 'function' && typeof desc.set !== 'function')\r\n continue;\r\n\r\n stateObj[key] = state[key];\r\n }\r\n return stateObj;\r\n }\r\n\r\n private static finalizeStateObject(state: object, component: Component): object {\r\n\r\n log.verbose('[finalizeStateObject] finalizing state.');\r\n let finalizedState = Object.assign({}, state);\r\n\r\n finalizedState = IgnoreState.removeIgnoredProps(finalizedState, component);\r\n\r\n log.verbose('[finalizeStateObject] state finalized.');\r\n return finalizedState;\r\n }\r\n\r\n //\r\n // private methods - combine reducers\r\n //\r\n\r\n private static combineReducersRecursion(obj: any, context: CombineReducersContext): Reducer<any> {\r\n\r\n // no need to search inside primitives\r\n if (isPrimitive(obj))\r\n return undefined;\r\n\r\n // prevent endless loops on circular references\r\n if (context.visited.has(obj))\r\n return undefined;\r\n context.visited.add(obj);\r\n\r\n // ignore branches with no descendant components\r\n if (!context.componentPaths.some(path => path.startsWith(context.path)))\r\n return ComponentReducer.identityReducer;\r\n\r\n // get the root reducer\r\n let rootReducer: Reducer<any>;\r\n const info = ComponentInfo.getInfo(obj as any);\r\n if (info) {\r\n rootReducer = info.reducerCreator(comp => {\r\n context.changedComponents[context.path] = comp;\r\n });\r\n } else {\r\n rootReducer = ComponentReducer.identityReducer;\r\n }\r\n\r\n // gather the sub-reducers\r\n const subReducers: ReducersMapObject = {};\r\n for (let key of Object.keys(obj)) {\r\n\r\n // other objects\r\n const newSubReducer = ComponentReducer.combineReducersRecursion((obj as any)[key], new CombineReducersContext({\r\n ...context,\r\n path: (context.path === '' ? key : context.path + '.' + key)\r\n }));\r\n if (typeof newSubReducer === 'function')\r\n subReducers[key] = newSubReducer;\r\n }\r\n\r\n let resultReducer = rootReducer;\r\n\r\n // combine reducers\r\n if (Object.keys(subReducers).length) {\r\n const combinedSubReducer = simpleCombineReducers(subReducers);\r\n\r\n resultReducer = (state: object, action: ReduxAppAction) => {\r\n\r\n const thisState = rootReducer(state, action);\r\n const subStates = combinedSubReducer(thisState, action);\r\n\r\n // merge self and sub states\r\n const combinedState = ComponentReducer.mergeState(thisState, subStates);\r\n\r\n return combinedState;\r\n };\r\n }\r\n\r\n return resultReducer;\r\n }\r\n\r\n private static mergeState(state: any, subStates: any): any {\r\n\r\n if (Array.isArray(state) && Array.isArray(subStates)) {\r\n\r\n // merge arrays\r\n for (let i = 0; i < subStates.length; i++)\r\n state[i] = subStates[i];\r\n return state;\r\n\r\n } else {\r\n\r\n // merge objects\r\n return {\r\n ...state,\r\n ...subStates\r\n };\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/components/reducer.ts","import { Store } from 'redux';\r\nimport { ComponentId } from '../decorators';\r\nimport { ClassInfo, ComponentInfo, ComponentTemplateInfo } from '../info';\r\nimport { ROOT_COMPONENT_PATH } from '../reduxApp';\r\nimport { IMap } from '../types';\r\nimport { defineProperties, DescriptorType, isPrimitive, log } from '../utils';\r\nimport { ComponentActions } from './actions';\r\nimport { ComponentReducer } from './reducer';\r\n\r\nexport class ComponentCreationContext {\r\n\r\n public visitedNodes = new Set();\r\n public visitedTemplates = new Map<object, Component>();\r\n public path = ROOT_COMPONENT_PATH;\r\n public appName: string;\r\n public parentTemplate: object;\r\n public createdComponents: IMap<Component> = {};\r\n\r\n constructor(initial?: Partial<ComponentCreationContext>) {\r\n Object.assign(this, initial);\r\n }\r\n}\r\n\r\nexport class Component {\r\n\r\n //\r\n // static methods\r\n //\r\n\r\n public static create(store: Store<any>, template: object, context?: ComponentCreationContext): Component {\r\n\r\n context = Object.assign(new ComponentCreationContext(), context);\r\n\r\n // create the component\r\n ComponentTemplateInfo.getOrInitInfo(template);\r\n const ComponentClass = Component.getComponentClass(template); // tslint:disable-line:variable-name\r\n const component = new ComponentClass(store, template, context as ComponentCreationContext);\r\n\r\n return component;\r\n }\r\n\r\n private static getComponentClass(template: object): typeof Component {\r\n const info = ComponentTemplateInfo.getInfo(template);\r\n if (!info.componentClass) {\r\n info.componentClass = Component.createComponentClass(template);\r\n }\r\n return info.componentClass;\r\n }\r\n\r\n private static createComponentClass(template: object): typeof Component {\r\n\r\n // create new component class\r\n const componentClassFactory = new Function(\r\n 'initCallback', \r\n `\"use strict\";return function ${template.constructor.name}_ReduxAppComponent() { initCallback(this, arguments); }`\r\n );\r\n const ComponentClass = componentClassFactory((self: any, args: any) => Component.apply(self, args)); // tslint:disable-line:variable-name\r\n ComponentClass.prototype = Object.create(Component.prototype);\r\n ComponentClass.prototype.constructor = ComponentClass;\r\n\r\n // patch it's prototype\r\n const actions = ComponentActions.createActions(template);\r\n Object.assign(ComponentClass.prototype, actions);\r\n\r\n return ComponentClass;\r\n }\r\n\r\n private static createSelf(component: Component, store: Store<object>, template: object, context: ComponentCreationContext): void {\r\n\r\n // regular js props (including getters and setters)\r\n defineProperties(component, template, [DescriptorType.Field, DescriptorType.Property]);\r\n\r\n // init component info \r\n const id = ComponentId.getComponentId(context.parentTemplate, context.path);\r\n const selfInfo = ComponentInfo.initInfo(component, template, store.dispatch, id);\r\n \r\n // copy info from template\r\n const selfClassInfo = ClassInfo.getOrInitInfo(component);\r\n const templateClassInfo = ClassInfo.getInfo(template) || new ClassInfo();\r\n selfClassInfo.ignoreState = templateClassInfo.ignoreState;\r\n\r\n // reducer\r\n selfInfo.reducerCreator = ComponentReducer.createReducer(component, template);\r\n }\r\n\r\n private static createSubComponents(treeNode: any, store: Store<object>, template: object, context: ComponentCreationContext): void {\r\n\r\n // no need to search inside primitives\r\n if (isPrimitive(treeNode))\r\n return;\r\n\r\n // prevent endless loops on circular references\r\n if (context.visitedNodes.has(treeNode))\r\n return;\r\n context.visitedNodes.add(treeNode);\r\n\r\n // traverse children\r\n const searchIn = template || treeNode;\r\n for (let key of Object.keys(searchIn)) {\r\n\r\n var subPath = context.path + '.' + key;\r\n\r\n var subTemplate = searchIn[key];\r\n if (ComponentTemplateInfo.getInfo(subTemplate)) {\r\n\r\n if (context.visitedTemplates.has(subTemplate)) {\r\n\r\n // child is an existing sub-component\r\n treeNode[key] = context.visitedTemplates.get(subTemplate);\r\n\r\n } else {\r\n\r\n // child is a new sub-component \r\n treeNode[key] = Component.create(store, subTemplate, {\r\n ...context,\r\n parentTemplate: template,\r\n path: subPath\r\n });\r\n }\r\n } else {\r\n\r\n // child is regular object, nothing special to do with it\r\n Component.createSubComponents(treeNode[key], store, null, {\r\n ...context,\r\n parentTemplate: null,\r\n path: subPath\r\n });\r\n }\r\n }\r\n }\r\n\r\n //\r\n // constructor\r\n //\r\n\r\n private constructor(store: Store<any>, template: object, context: ComponentCreationContext) {\r\n\r\n if (!ComponentTemplateInfo.getInfo(template))\r\n throw new Error(`Argument '${\"template\"}' is not a component template. Did you forget to use the decorator?`);\r\n\r\n Component.createSelf(this, store, template, context);\r\n context.createdComponents[context.path] = this;\r\n context.visitedTemplates.set(template, this);\r\n log.verbose(`[Component] New ${template.constructor.name} component created. Path: ${context.path}`);\r\n\r\n Component.createSubComponents(this, store, template, context);\r\n }\r\n\r\n // \r\n // Note: Component methods are static so that they will not be exposed unnecessarily through the prototype chain.\r\n //\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/components/component.ts","import { Action } from 'redux';\r\nimport { ComponentInfo, ComponentTemplateInfo } from '../info';\r\nimport { ActionOptions, globalOptions } from '../options';\r\nimport { IMap, Method } from '../types';\r\nimport { getMethods } from '../utils';\r\nimport { Component } from './component';\r\nvar snakecase = require('lodash.snakecase');\r\n\r\n// tslint:disable-next-line:interface-name\r\nexport interface ReduxAppAction extends Action {\r\n id: any;\r\n payload: any[];\r\n}\r\n\r\nexport class ComponentActions {\r\n\r\n public static createActions(template: object): IMap<Method> {\r\n const methods = getMethods(template);\r\n if (!methods)\r\n return undefined;\r\n\r\n const templateInfo = ComponentTemplateInfo.getInfo(template);\r\n const componentActions: any = {};\r\n Object.keys(methods).forEach(key => {\r\n componentActions[key] = function (this: Component, ...payload: any[]): void {\r\n\r\n // verify 'this' arg\r\n if (!(this instanceof Component))\r\n throw new Error(`Component method invoked with non-Component as 'this'. Bound 'this' argument is: ${this}`);\r\n\r\n const oldMethod = methods[key];\r\n\r\n // handle actions and sequences (use store dispatch)\r\n if (templateInfo.actions[key] || templateInfo.sequences[key]) {\r\n const compInfo = ComponentInfo.getInfo(this);\r\n const action: ReduxAppAction = {\r\n type: ComponentActions.getActionName(template, key),\r\n id: (compInfo ? compInfo.id : undefined),\r\n payload: payload\r\n };\r\n compInfo.dispatch(action);\r\n }\r\n\r\n // handle regular methods (just call the function)\r\n if (!templateInfo.actions[key]) {\r\n return oldMethod.call(this, ...payload);\r\n }\r\n };\r\n });\r\n\r\n return componentActions;\r\n }\r\n\r\n public static getActionName(template: object, methodName: string): string {\r\n const options = Object.assign(new ActionOptions(), globalOptions.action);\r\n\r\n var actionName = methodName;\r\n var actionNamespace = template.constructor.name;\r\n\r\n if (options.uppercaseActions) {\r\n actionName = snakecase(actionName).toUpperCase();\r\n actionNamespace = snakecase(actionNamespace).toUpperCase();\r\n }\r\n\r\n if (options.actionNamespace) {\r\n actionName = actionNamespace + options.actionNamespaceSeparator + actionName;\r\n }\r\n\r\n return actionName;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/components/actions.ts","import { ComponentInfo } from '../info';\r\n\r\n// tslint:disable-next-line:ban-types\r\nexport function isInstanceOf(obj: any, type: Function): boolean {\r\n if (obj instanceof type)\r\n return true;\r\n\r\n const info = ComponentInfo.getInfo(obj);\r\n return !!(info && info.originalClass === type);\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/components/utils.ts","export * from './actions';\nexport * from './component';\nexport * from './reducer';\nexport * from './utils';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/components/index.ts","export { isInstanceOf } from './components';\r\nexport { action, ignoreState, sequence, withId } from './decorators';\r\nexport { ActionOptions, AppOptions, GlobalOptions, LogLevel } from './options';\r\nexport { getMethods } from './utils';\r\nexport { ReduxApp } from './reduxApp';\n\n\n// WEBPACK FOOTER //\n// ./node_modules/ts-nameof-loader/main.js!./src/index.ts","module.exports = require(\"redux\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"redux\"\n// module id = 2\n// module chunks = 0","module.exports = require(\"lodash.get\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"lodash.get\"\n// module id = 3\n// module chunks = 0","module.exports = require(\"lodash.snakecase\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"lodash.snakecase\"\n// module id = 4\n// module chunks = 0"],"sourceRoot":""}
\No newline at end of file