1 | "use strict";
|
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7 | };
|
8 | var __metadata = (this && this.__metadata) || function (k, v) {
|
9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
10 | };
|
11 | var __param = (this && this.__param) || function (paramIndex, decorator) {
|
12 | return function (target, key) { decorator(target, key, paramIndex); }
|
13 | };
|
14 | var core_1 = require('angular2/core');
|
15 | exports.WEBPACK_HMR = new core_1.OpaqueToken('$$AppState');
|
16 | var WebpackStore = (function () {
|
17 | function WebpackStore(state) {
|
18 | if (state) {
|
19 | console.log('WebpackState initial data', state);
|
20 | }
|
21 | WebpackStore._state = state || WebpackStore._state;
|
22 | }
|
23 | WebpackStore.set = function (prop, value) {
|
24 | WebpackStore._state[prop] = value;
|
25 | return WebpackStore._state[prop];
|
26 | };
|
27 | WebpackStore.get = function (prop) {
|
28 | return WebpackStore._state[prop];
|
29 | };
|
30 | WebpackStore.select = function (name, getState) {
|
31 | WebpackStore._states.push({ name: name, getState: getState });
|
32 | var defaultData = getState();
|
33 | var currentData = WebpackStore.get(name);
|
34 | if (defaultData && !currentData) {
|
35 | return WebpackStore.set(name, defaultData);
|
36 | }
|
37 | else if (defaultData && currentData) {
|
38 | return WebpackStore.set(name, Object.assign({}, defaultData, currentData));
|
39 | }
|
40 | else {
|
41 | return WebpackStore.set(name, currentData || defaultData);
|
42 | }
|
43 | };
|
44 | WebpackStore.dispose = function () {
|
45 | WebpackStore._states = [];
|
46 | WebpackStore._state = {};
|
47 | };
|
48 | WebpackStore.prototype.get = function (prop) {
|
49 | return WebpackStore.get(prop);
|
50 | };
|
51 | WebpackStore.prototype.set = function (prop, value) {
|
52 | return WebpackStore.set(prop, value);
|
53 | };
|
54 | WebpackStore.prototype.select = function (name, getState) {
|
55 | return WebpackStore.select(name, getState);
|
56 | };
|
57 | WebpackStore.prototype.dispose = function () {
|
58 | return WebpackStore.dispose();
|
59 | };
|
60 | WebpackStore.prototype.getState = function () {
|
61 | var initialState = Object.assign({}, WebpackStore._state);
|
62 | return WebpackStore._states
|
63 | .reduce(function (memo, item) {
|
64 | memo[item.name] = item.getState();
|
65 | return memo;
|
66 | }, initialState);
|
67 | };
|
68 | WebpackStore.prototype.toJSON = function () {
|
69 | return this.getState();
|
70 | };
|
71 | WebpackStore._state = {};
|
72 | WebpackStore._states = [];
|
73 | WebpackStore = __decorate([
|
74 | core_1.Injectable(),
|
75 | __param(0, core_1.Optional()),
|
76 | __param(0, core_1.Inject(exports.WEBPACK_HMR)),
|
77 | __metadata('design:paramtypes', [Object])
|
78 | ], WebpackStore);
|
79 | return WebpackStore;
|
80 | }());
|
81 | exports.WebpackStore = WebpackStore;
|
82 |
|
\ | No newline at end of file |