1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.state = undefined;
|
7 |
|
8 | var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of");
|
9 |
|
10 | var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
|
11 |
|
12 | var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
|
13 |
|
14 | var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
15 |
|
16 | var _createClass2 = require("babel-runtime/helpers/createClass");
|
17 |
|
18 | var _createClass3 = _interopRequireDefault(_createClass2);
|
19 |
|
20 | var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn");
|
21 |
|
22 | var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
|
23 |
|
24 | var _get3 = require("babel-runtime/helpers/get");
|
25 |
|
26 | var _get4 = _interopRequireDefault(_get3);
|
27 |
|
28 | var _inherits2 = require("babel-runtime/helpers/inherits");
|
29 |
|
30 | var _inherits3 = _interopRequireDefault(_inherits2);
|
31 |
|
32 | var _standardIo = require("standard-io");
|
33 |
|
34 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
35 |
|
36 | var state = exports.state = function state(Class) {
|
37 | return function (_Class) {
|
38 | (0, _inherits3.default)(_class, _Class);
|
39 |
|
40 | function _class() {
|
41 | var _Object$getPrototypeO;
|
42 |
|
43 | (0, _classCallCheck3.default)(this, _class);
|
44 |
|
45 | for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
46 | args[_key] = arguments[_key];
|
47 | }
|
48 |
|
49 | return (0, _possibleConstructorReturn3.default)(this, (_Object$getPrototypeO = (0, _getPrototypeOf2.default)(_class)).call.apply(_Object$getPrototypeO, [this].concat(args)));
|
50 | }
|
51 |
|
52 | (0, _createClass3.default)(_class, [{
|
53 | key: "beforeInit",
|
54 | value: function beforeInit() {
|
55 | var _this2 = this;
|
56 |
|
57 | var ignore = this.Class.industry().ignore.Class;
|
58 | for (var name in this.functions()) {
|
59 | if (ignore.indexOf(name) == -1) {
|
60 | (function () {
|
61 | var fn = _this2[name];
|
62 | _this2[name] = function () {
|
63 | for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
64 | args[_key2] = arguments[_key2];
|
65 | }
|
66 |
|
67 | return fn.bind(_this2).apply(undefined, args.concat([{ state: _this2.state() }]));
|
68 | };
|
69 | })();
|
70 | }
|
71 | }
|
72 | (0, _get4.default)((0, _getPrototypeOf2.default)(_class.prototype), "beforeInit", this).call(this);
|
73 | }
|
74 | }, {
|
75 | key: "state",
|
76 | value: function state() {
|
77 | for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
78 | args[_key3] = arguments[_key3];
|
79 | }
|
80 |
|
81 | this._state = (0, _standardIo.mergeObjects)((0, _standardIo.toObjects)(args), this._state);
|
82 |
|
83 | if (this.updated && args.length) {
|
84 | return this.updated();
|
85 | } else {
|
86 | return this._state;
|
87 | }
|
88 | }
|
89 | }], [{
|
90 | key: "beforeFactoryOnce",
|
91 | value: function beforeFactoryOnce() {
|
92 | this.industry({
|
93 | ignore: {
|
94 | args: ["state"],
|
95 | instance: ["state"]
|
96 | }
|
97 | });
|
98 | (0, _get4.default)((0, _getPrototypeOf2.default)(_class), "beforeFactoryOnce", this).call(this);
|
99 | }
|
100 | }, {
|
101 | key: "factory",
|
102 | value: function factory() {
|
103 | if ((0, _get4.default)((0, _getPrototypeOf2.default)(_class), "factory", this)) {
|
104 | var _get2;
|
105 |
|
106 | for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
107 | args[_key4] = arguments[_key4];
|
108 | }
|
109 |
|
110 | var instance = (_get2 = (0, _get4.default)((0, _getPrototypeOf2.default)(_class), "factory", this)).call.apply(_get2, [this].concat(args));
|
111 | instance.state.apply(instance, args);
|
112 | return instance;
|
113 | }
|
114 | }
|
115 | }]);
|
116 | return _class;
|
117 | }(Class);
|
118 | };
|
119 |
|
\ | No newline at end of file |