UNPKG

6.67 kBJavaScriptView Raw
1module.exports =
2/******/ (function(modules) { // webpackBootstrap
3/******/ // The module cache
4/******/ var installedModules = {};
5
6/******/ // The require function
7/******/ function __webpack_require__(moduleId) {
8
9/******/ // Check if module is in cache
10/******/ if(installedModules[moduleId])
11/******/ return installedModules[moduleId].exports;
12
13/******/ // Create a new module (and put it into the cache)
14/******/ var module = installedModules[moduleId] = {
15/******/ exports: {},
16/******/ id: moduleId,
17/******/ loaded: false
18/******/ };
19
20/******/ // Execute the module function
21/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
22
23/******/ // Flag the module as loaded
24/******/ module.loaded = true;
25
26/******/ // Return the exports of the module
27/******/ return module.exports;
28/******/ }
29
30
31/******/ // expose the modules object (__webpack_modules__)
32/******/ __webpack_require__.m = modules;
33
34/******/ // expose the module cache
35/******/ __webpack_require__.c = installedModules;
36
37/******/ // __webpack_public_path__
38/******/ __webpack_require__.p = "";
39
40/******/ // Load entry module and return exports
41/******/ return __webpack_require__(0);
42/******/ })
43/************************************************************************/
44/******/ ([
45/* 0 */
46/***/ function(module, exports, __webpack_require__) {
47
48 module.exports = __webpack_require__(1);
49
50
51/***/ },
52/* 1 */
53/***/ function(module, exports, __webpack_require__) {
54
55 'use strict';
56
57 var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; })();
58
59 Object.defineProperty(exports, "__esModule", {
60 value: true
61 });
62
63 exports.default = function (Vue) {
64 var _ref = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
65
66 var _ref$store = _ref.store;
67 var store = _ref$store === undefined ? null : _ref$store;
68 var _ref$actions = _ref.actions;
69 var actions = _ref$actions === undefined ? null : _ref$actions;
70
71 if (false) {
72 throw new TypeError('[Revue] Expected store to be an object');
73 }
74 var re = /^([a-zA-Z0-9\._-]+)\s{1,2}as\s{1,2}([a-zA-Z0-9\._-]+)$/i;
75 // bring redux to revue
76 if (actions) {
77 Object.defineProperty(Vue.prototype, '$actions', {
78 value: actions
79 });
80 }
81 Object.defineProperties(Vue.prototype, {
82 '$store': {
83 value: {
84 get state() {
85 return store.getState();
86 },
87 dispatch: store.dispatch
88 }
89 },
90 '$subscribe': {
91 value: function value() {
92 var _this = this;
93
94 if (this._calledOnce) {
95 if (true) {
96 return false;
97 }
98 throw new Error('[Revue] You can only subscribe once, pass multi args to subscribe more than one state.');
99 }
100 this._calledOnce = true;
101 this._unsubscribers = [];
102
103 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
104 args[_key] = arguments[_key];
105 }
106
107 args.forEach(function (prop) {
108 // realProp: property name/path in your instance
109 // storeProp: property name/path in Redux store
110 var realProp = prop,
111 storeProp = prop;
112 if (re.test(prop)) {
113 var _prop$match = prop.match(re);
114
115 var _prop$match2 = _slicedToArray(_prop$match, 3);
116
117 storeProp = _prop$match2[1];
118 realProp = _prop$match2[2];
119 }
120 var currentValue = (0, _objectPath.get)(store.getState(), storeProp);
121 var handleChange = function handleChange() {
122 var previousValue = currentValue;
123 currentValue = (0, _objectPath.get)(store.getState(), storeProp);
124 if (!(0, _shallowEqual2.default)(previousValue, currentValue)) {
125 (0, _objectPath.set)(_this._data, realProp, currentValue);
126 }
127 };
128 _this._unsubscribers.push(store.subscribe(handleChange));
129 });
130 }
131 },
132 '$unsubscribe': {
133 value: function value() {
134 if (this._unsubscribers && this._unsubscribers.length > 0) {
135 this._calledOnce = false;
136 this._unsubscribers.forEach(function (un) {
137 return un();
138 });
139 }
140 }
141 }
142 });
143 // global mixin
144 Vue.mixin({
145 beforeDestroy: function beforeDestroy() {
146 this.$unsubscribe();
147 }
148 });
149 };
150
151 var _objectPath = __webpack_require__(3);
152
153 var _shallowEqual = __webpack_require__(2);
154
155 var _shallowEqual2 = _interopRequireDefault(_shallowEqual);
156
157 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
158
159 function _typeof(obj) { return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; }
160
161/***/ },
162/* 2 */
163/***/ function(module, exports) {
164
165 'use strict';
166
167 Object.defineProperty(exports, "__esModule", {
168 value: true
169 });
170 exports.default = shallowEqual;
171
172 function _typeof(obj) { return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; }
173
174 // credit: @gaearon
175 // borrowed from https://github.com/rackt/react-redux/blob/master/src%2Futils%2FshallowEqual.js
176 // with some modifications.
177
178 function shallowEqual(objA, objB) {
179 // objA and objB is the same type
180 if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) === 'object') {
181 if (objA === objB) {
182 return true;
183 }
184
185 var keysA = Object.keys(objA);
186 var keysB = Object.keys(objB);
187
188 if (keysA.length !== keysB.length) {
189 return false;
190 }
191
192 // Test for A's keys different from B.
193 var hasOwn = Object.prototype.hasOwnProperty;
194 for (var i = 0; i < keysA.length; i++) {
195 if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {
196 return false;
197 }
198 }
199
200 return true;
201 } else {
202 return objA === objB;
203 }
204 }
205
206/***/ },
207/* 3 */
208/***/ function(module, exports) {
209
210 module.exports = require("object-path");
211
212/***/ }
213/******/ ]);
\No newline at end of file