@panneau/app 1.0.1-alpha.0 → 1.0.3-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/assets/css/styles.css +7 -0
  2. package/es/index.js +1812 -5
  3. package/lib/index.js +1842 -15
  4. package/package.json +66 -54
  5. package/scss/styles.scss +3 -0
  6. package/es/Panneau.js +0 -318
  7. package/es/actions/AuthActions.js +0 -16
  8. package/es/actions/LayoutActions.js +0 -14
  9. package/es/components/App.js +0 -129
  10. package/es/components/Layout.js +0 -68
  11. package/es/components/Panneau.js +0 -79
  12. package/es/components/index.js +0 -3
  13. package/es/components/pages/Account.js +0 -38
  14. package/es/components/pages/Home.js +0 -12
  15. package/es/components/pages/ResourceCreate.js +0 -44
  16. package/es/components/pages/ResourceDelete.js +0 -11
  17. package/es/components/pages/ResourceEdit.js +0 -28
  18. package/es/components/pages/ResourceForm.js +0 -343
  19. package/es/components/pages/ResourceIndex.js +0 -261
  20. package/es/components/pages/ResourceShow.js +0 -15
  21. package/es/components/partials/ResourceFormHeader.js +0 -111
  22. package/es/components/partials/ResourceIndexHeader.js +0 -71
  23. package/es/defaults/routes.json +0 -10
  24. package/es/lib/createStore.js +0 -30
  25. package/es/reducers/AuthReducer.js +0 -32
  26. package/es/reducers/index.js +0 -4
  27. package/lib/Panneau.js +0 -340
  28. package/lib/actions/AuthActions.js +0 -25
  29. package/lib/actions/LayoutActions.js +0 -25
  30. package/lib/components/App.js +0 -159
  31. package/lib/components/Layout.js +0 -87
  32. package/lib/components/Panneau.js +0 -103
  33. package/lib/components/index.js +0 -23
  34. package/lib/components/pages/Account.js +0 -54
  35. package/lib/components/pages/Home.js +0 -23
  36. package/lib/components/pages/ResourceCreate.js +0 -65
  37. package/lib/components/pages/ResourceDelete.js +0 -22
  38. package/lib/components/pages/ResourceEdit.js +0 -44
  39. package/lib/components/pages/ResourceForm.js +0 -376
  40. package/lib/components/pages/ResourceIndex.js +0 -289
  41. package/lib/components/pages/ResourceShow.js +0 -28
  42. package/lib/components/partials/ResourceFormHeader.js +0 -137
  43. package/lib/components/partials/ResourceIndexHeader.js +0 -87
  44. package/lib/defaults/routes.json +0 -10
  45. package/lib/lib/createStore.js +0 -46
  46. package/lib/reducers/AuthReducer.js +0 -43
  47. package/lib/reducers/index.js +0 -15
  48. package/src/Panneau.js +0 -274
  49. package/src/actions/AuthActions.js +0 -17
  50. package/src/actions/LayoutActions.js +0 -12
  51. package/src/components/App.jsx +0 -121
  52. package/src/components/Layout.jsx +0 -51
  53. package/src/components/Panneau.jsx +0 -95
  54. package/src/components/index.js +0 -7
  55. package/src/components/pages/Account.jsx +0 -34
  56. package/src/components/pages/Home.jsx +0 -19
  57. package/src/components/pages/ResourceCreate.jsx +0 -50
  58. package/src/components/pages/ResourceDelete.jsx +0 -18
  59. package/src/components/pages/ResourceEdit.jsx +0 -39
  60. package/src/components/pages/ResourceForm.jsx +0 -361
  61. package/src/components/pages/ResourceIndex.jsx +0 -256
  62. package/src/components/pages/ResourceShow.jsx +0 -23
  63. package/src/components/partials/ResourceFormHeader.jsx +0 -137
  64. package/src/components/partials/ResourceIndexHeader.jsx +0 -84
  65. package/src/defaults/routes.json +0 -10
  66. package/src/index.js +0 -9
  67. package/src/lib/createStore.js +0 -21
  68. package/src/reducers/AuthReducer.js +0 -23
  69. package/src/reducers/index.js +0 -5
  70. package/src/styles/layout.scss +0 -5
  71. package/src/styles/pages/resource-form.scss +0 -42
  72. package/src/styles/pages/resource-index.scss +0 -43
  73. package/src/styles/partials/resource-form-header.scss +0 -7
  74. package/src/styles/partials/resource-index-header.scss +0 -13
  75. package/src/styles/vendor.global.scss +0 -5
package/lib/Panneau.js DELETED
@@ -1,340 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
21
-
22
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
23
-
24
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
-
26
- var _react = _interopRequireDefault(require("react"));
27
-
28
- var _reactDom = require("react-dom");
29
-
30
- var _wolfy87Eventemitter = _interopRequireDefault(require("wolfy87-eventemitter"));
31
-
32
- var _isObject = _interopRequireDefault(require("lodash/isObject"));
33
-
34
- var _moment = _interopRequireDefault(require("moment"));
35
-
36
- var _core = require("@panneau/core");
37
-
38
- var _Panneau = _interopRequireDefault(require("./components/Panneau"));
39
-
40
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
41
-
42
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
43
-
44
- /**
45
- * Panneau Application
46
- */
47
- var Panneau =
48
- /*#__PURE__*/
49
- function (_EventEmitter) {
50
- (0, _inherits2["default"])(Panneau, _EventEmitter);
51
- (0, _createClass2["default"])(Panneau, null, [{
52
- key: "setDefaultComponentsCollection",
53
- value: function setDefaultComponentsCollection(componentsCollection, namespace) {
54
- if (typeof namespace !== 'undefined') {
55
- Panneau.defaultComponentsCollection.setComponents(componentsCollection, namespace);
56
- } else {
57
- Panneau.defaultComponentsCollection = componentsCollection;
58
- }
59
- }
60
- }, {
61
- key: "setDefaultLocaleMessages",
62
- value: function setDefaultLocaleMessages(locale, messages) {
63
- if ((0, _isObject["default"])(locale)) {
64
- Panneau.defaultLocaleMessages = _objectSpread({}, locale);
65
- } else {
66
- Panneau.defaultLocaleMessages = _objectSpread({}, Panneau.defaultLocaleMessages, (0, _defineProperty2["default"])({}, locale, _objectSpread({}, messages)));
67
- }
68
- }
69
- /**
70
- * Create a new panneau environment
71
- * @param {object} definition The definition of the Panneau instance
72
- * @param {object} options Options for the new Panneau instance
73
- */
74
-
75
- }]);
76
-
77
- function Panneau(definition, options) {
78
- var _this;
79
-
80
- (0, _classCallCheck2["default"])(this, Panneau);
81
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Panneau).call(this));
82
- _this.options = {};
83
- _this.onRendered = _this.onRendered.bind((0, _assertThisInitialized2["default"])(_this));
84
- _this.onHydrated = _this.onHydrated.bind((0, _assertThisInitialized2["default"])(_this));
85
- _this.element = null;
86
- _this.rendered = false;
87
- _this.definition = definition;
88
- _this.user = null;
89
- _this.locale = 'en';
90
- _this.messages = {};
91
- _this.componentsCollection = Panneau.defaultComponentsCollection;
92
-
93
- _this.setOptions(options);
94
-
95
- return _this;
96
- }
97
-
98
- (0, _createClass2["default"])(Panneau, [{
99
- key: "onRendered",
100
- value: function onRendered() {
101
- this.emit('rendered', this.element);
102
- }
103
- }, {
104
- key: "onHydrated",
105
- value: function onHydrated() {
106
- this.emit('hydrated', this.element);
107
- }
108
- }, {
109
- key: "render",
110
- value: function render(element) {
111
- this.rendered = true;
112
- this.element = element || this.element;
113
- var root = this.getRootElement();
114
- (0, _reactDom.render)(root, this.element, this.onRendered);
115
- this.emit('render', this.element);
116
- }
117
- }, {
118
- key: "hydrate",
119
- value: function hydrate(element) {
120
- this.rendered = false;
121
- this.element = element || this.element;
122
- var root = this.getRootElement();
123
- (0, _reactDom.hydrate)(root, this.element, this.onHydrated);
124
- this.emit('hydrate', this.element);
125
- }
126
- }, {
127
- key: "getRootProps",
128
- value: function getRootProps() {
129
- return {
130
- componentsCollection: this.componentsCollection,
131
- definition: this.definition,
132
- user: this.user,
133
- locale: this.locale,
134
- messages: _objectSpread({}, this.messages)
135
- };
136
- }
137
- }, {
138
- key: "getRootElement",
139
- value: function getRootElement() {
140
- var rootProps = this.getRootProps();
141
-
142
- var rootElement = _react["default"].createElement(_Panneau["default"], rootProps);
143
-
144
- return rootElement;
145
- }
146
- /**
147
- * Set the options
148
- * @param {object} options The new options
149
- * @return {this}
150
- */
151
-
152
- }, {
153
- key: "setOptions",
154
- value: function setOptions() {
155
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
156
- var user = options.user,
157
- locale = options.locale,
158
- messages = options.messages,
159
- componentsCollection = options.componentsCollection,
160
- otherOptions = (0, _objectWithoutProperties2["default"])(options, ["user", "locale", "messages", "componentsCollection"]);
161
- this.options = _objectSpread({}, this.options, {}, otherOptions);
162
-
163
- if (typeof locale !== 'undefined') {
164
- this.setLocale(locale);
165
- }
166
-
167
- if (typeof componentsCollection !== 'undefined') {
168
- this.setComponentsCollection(componentsCollection);
169
- }
170
-
171
- if (typeof messages !== 'undefined') {
172
- this.setMessages(messages);
173
- }
174
-
175
- if (typeof user !== 'undefined') {
176
- this.setUser(user);
177
- }
178
-
179
- if (this.rendered) {
180
- this.render();
181
- }
182
-
183
- return this;
184
- }
185
- /**
186
- * Get the options
187
- * @return {object} The options
188
- */
189
-
190
- }, {
191
- key: "getOptions",
192
- value: function getOptions() {
193
- return this.options;
194
- }
195
- /**
196
- * Set the definition
197
- * @param {object} definition The new definition
198
- * @return {this}
199
- */
200
-
201
- }, {
202
- key: "setDefinition",
203
- value: function setDefinition(definition) {
204
- this.definition = definition;
205
- return this;
206
- }
207
- /**
208
- * Get the definition
209
- * @return {object} The definition
210
- */
211
-
212
- }, {
213
- key: "getDefinition",
214
- value: function getDefinition() {
215
- return this.definition;
216
- }
217
- /**
218
- * Set the user
219
- * @param {object} user The new user
220
- * @return {this}
221
- */
222
-
223
- }, {
224
- key: "setUser",
225
- value: function setUser(user) {
226
- this.user = user;
227
- return this;
228
- }
229
- /**
230
- * Get the user
231
- * @return {object} The user
232
- */
233
-
234
- }, {
235
- key: "getUser",
236
- value: function getUser() {
237
- return this.user;
238
- }
239
- /**
240
- * Set the locale
241
- * @param {string} locale The new locale
242
- * @return {this}
243
- */
244
-
245
- }, {
246
- key: "setLocale",
247
- value: function setLocale(locale) {
248
- this.locale = locale;
249
-
250
- _moment["default"].locale(locale);
251
-
252
- return this;
253
- }
254
- /**
255
- * Get the locale
256
- * @return {string} The locale
257
- */
258
-
259
- }, {
260
- key: "getLocale",
261
- value: function getLocale() {
262
- return this.locale;
263
- }
264
- /**
265
- * Set the messages
266
- * @param {object} messages The new messages
267
- * @return {this}
268
- */
269
-
270
- }, {
271
- key: "setMessages",
272
- value: function setMessages(messages) {
273
- this.messages = Object.keys(messages || {}).reduce(function (allMessages, key) {
274
- return _objectSpread({}, allMessages, (0, _defineProperty2["default"])({}, key, (0, _isObject["default"])(messages[key]) ? _objectSpread({}, (0, _isObject["default"])(allMessages[key] || null) ? allMessages[key] : null, {}, messages[key]) : messages[key]));
275
- }, _objectSpread({}, Panneau.defaultLocaleMessages));
276
- return this;
277
- }
278
- /**
279
- * Get the messages
280
- * @return {object} The messages
281
- */
282
-
283
- }, {
284
- key: "getMessages",
285
- value: function getMessages() {
286
- return this.messages;
287
- }
288
- /**
289
- * Alias to work with components collection
290
- * @return {ComponentsCollection} The components collection
291
- */
292
-
293
- }, {
294
- key: "components",
295
- value: function components(key, value) {
296
- if (typeof value !== 'undefined') {
297
- this.componentsCollection.addComponent(key, value);
298
- return this;
299
- }
300
-
301
- if (typeof key !== 'undefined') {
302
- return this.componentsCollection.getComponent(key);
303
- }
304
-
305
- return this.componentsCollection;
306
- }
307
- /**
308
- * Set the components collection
309
- * @param {ComponentsCollection} fieldsCollection The new fields collection
310
- */
311
-
312
- }, {
313
- key: "setComponentsCollection",
314
- value: function setComponentsCollection(componentsCollection, namespace) {
315
- if (typeof namespace !== 'undefined') {
316
- this.componentsCollection.setComponents(componentsCollection, namespace);
317
- } else {
318
- this.componentsCollection = componentsCollection;
319
- }
320
-
321
- return this;
322
- }
323
- /**
324
- * Get the components collection
325
- * @return {ComponentsCollection} The fields collection used by this instance
326
- */
327
-
328
- }, {
329
- key: "getComponentsCollection",
330
- value: function getComponentsCollection(namespace) {
331
- return typeof namespace !== 'undefined' ? this.componentsCollection.getCollection(namespace) : this.componentsCollection;
332
- }
333
- }]);
334
- return Panneau;
335
- }(_wolfy87Eventemitter["default"]);
336
-
337
- Panneau.defaultComponentsCollection = new _core.ComponentsCollection();
338
- Panneau.defaultLocaleMessages = {};
339
- var _default = Panneau;
340
- exports["default"] = _default;
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.setUser = exports.SET_USER = void 0;
7
-
8
- /**
9
- * Constants
10
- */
11
- var SET_USER = 'auth@SET_USER';
12
- /**
13
- * Actions creator
14
- */
15
-
16
- exports.SET_USER = SET_USER;
17
-
18
- var setUser = function setUser(user) {
19
- return {
20
- type: SET_USER,
21
- payload: user
22
- };
23
- };
24
-
25
- exports.setUser = setUser;
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.updateLayout = exports.UPDATE_LAYOUT = void 0;
7
-
8
- /**
9
- * Constants
10
- */
11
- var UPDATE_LAYOUT = 'layout@UPDATE_LAYOUT';
12
- /**
13
- * Actions creator
14
- */
15
-
16
- exports.UPDATE_LAYOUT = UPDATE_LAYOUT;
17
-
18
- var updateLayout = function updateLayout(layout) {
19
- return {
20
- type: UPDATE_LAYOUT,
21
- payload: layout
22
- };
23
- };
24
-
25
- exports.updateLayout = updateLayout;
@@ -1,159 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports["default"] = void 0;
11
-
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
- var _react = _interopRequireWildcard(require("react"));
15
-
16
- var _reactRouter = require("react-router");
17
-
18
- var _reactRedux = require("react-redux");
19
-
20
- var _queryString = _interopRequireDefault(require("query-string"));
21
-
22
- var _core = require("@panneau/core");
23
-
24
- var _contexts = require("@panneau/core/contexts");
25
-
26
- require("bootstrap");
27
-
28
- var _Layout = _interopRequireDefault(require("./Layout"));
29
-
30
- var _Home = _interopRequireDefault(require("./pages/Home"));
31
-
32
- var _Account = _interopRequireDefault(require("./pages/Account"));
33
-
34
- var _ResourceIndex = _interopRequireDefault(require("./pages/ResourceIndex"));
35
-
36
- var _ResourceCreate = _interopRequireDefault(require("./pages/ResourceCreate"));
37
-
38
- var _ResourceShow = _interopRequireDefault(require("./pages/ResourceShow"));
39
-
40
- var _ResourceEdit = _interopRequireDefault(require("./pages/ResourceEdit"));
41
-
42
- var _ResourceDelete = _interopRequireDefault(require("./pages/ResourceDelete"));
43
-
44
- // import PropTypes from 'prop-types';
45
- var ResourcePages = {
46
- index: _ResourceIndex["default"],
47
- create: _ResourceCreate["default"],
48
- show: _ResourceShow["default"],
49
- edit: _ResourceEdit["default"],
50
- "delete": _ResourceDelete["default"]
51
- };
52
- var propTypes = {
53
- history: _core.PropTypes.history.isRequired,
54
- user: _core.PropTypes.user
55
- };
56
- var defaultProps = {
57
- user: null
58
- };
59
-
60
- var App = function App(_ref) {
61
- var history = _ref.history,
62
- user = _ref.user;
63
- var urlGenerator = (0, _contexts.useUrlGenerator)();
64
- var definition = (0, _contexts.useDefinition)();
65
- var resources = definition.resources();
66
-
67
- var _getResourceActionUrl = (0, _react.useCallback)(function (resource, action, id) {
68
- return urlGenerator.resource(resource, action, id);
69
- }, [urlGenerator]);
70
-
71
- var _gotoResourceAction = function gotoResourceAction() {
72
- return history.push(_getResourceActionUrl.apply(void 0, arguments));
73
- };
74
-
75
- var renderResourceRoutes = function renderResourceRoutes() {
76
- var resource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
77
- var id = resource !== null ? resource.id() : 'default';
78
- return Object.keys(ResourcePages).map(function (action) {
79
- return _react["default"].createElement(_reactRouter.Route, {
80
- key: "resource-".concat(id, "-").concat(action),
81
- exact: true,
82
- path: urlGenerator.resource(resource, action),
83
- render: function render(_ref2) {
84
- var _ref2$match$params = _ref2.match.params,
85
- _ref2$match$params$re = _ref2$match$params.resource,
86
- resourceId = _ref2$match$params$re === void 0 ? null : _ref2$match$params$re,
87
- _ref2$match$params$id = _ref2$match$params.id,
88
- itemId = _ref2$match$params$id === void 0 ? null : _ref2$match$params$id,
89
- search = _ref2.location.search;
90
-
91
- var query = _queryString["default"].parse(search);
92
-
93
- var matchedResource = resource || resources.find(function (it) {
94
- return resourceId !== null && it.id() === resourceId;
95
- }) || null;
96
- var PageComponent = ResourcePages[action];
97
- return _react["default"].createElement(PageComponent, {
98
- action: action,
99
- query: query,
100
- itemId: itemId,
101
- resource: matchedResource,
102
- getResourceActionUrl: function getResourceActionUrl() {
103
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
104
- args[_key] = arguments[_key];
105
- }
106
-
107
- return _getResourceActionUrl.apply(void 0, [matchedResource].concat(args));
108
- },
109
- gotoResourceAction: function gotoResourceAction() {
110
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
111
- args[_key2] = arguments[_key2];
112
- }
113
-
114
- return _gotoResourceAction.apply(void 0, [matchedResource].concat(args));
115
- }
116
- });
117
- }
118
- });
119
- });
120
- };
121
-
122
- return _react["default"].createElement(_Layout["default"], null, _react["default"].createElement(_reactRouter.Switch, null, user !== null ? _react["default"].createElement(_reactRouter.Route, {
123
- exact: true,
124
- path: urlGenerator.route('account'),
125
- render: function render() {
126
- return _react["default"].createElement(_Account["default"], {
127
- resource: definition.resource('users')
128
- });
129
- }
130
- }) : _react["default"].createElement(_reactRouter.Route, {
131
- exact: true,
132
- path: urlGenerator.route('account'),
133
- render: function render() {
134
- return _react["default"].createElement(_reactRouter.Redirect, {
135
- to: urlGenerator.route('home')
136
- });
137
- }
138
- }), resources.filter(function (resource) {
139
- return resource.hasRoutes();
140
- }).reduce(function (routes, resource) {
141
- return [].concat((0, _toConsumableArray2["default"])(routes), (0, _toConsumableArray2["default"])(renderResourceRoutes(resource)));
142
- }, []), renderResourceRoutes(), _react["default"].createElement(_reactRouter.Route, {
143
- exact: true,
144
- path: urlGenerator.route('home'),
145
- component: _Home["default"]
146
- })));
147
- };
148
-
149
- App.propTypes = propTypes;
150
- App.defaultProps = defaultProps;
151
- var WithStateContainer = (0, _reactRedux.connect)(function (_ref3) {
152
- var auth = _ref3.auth;
153
- return {
154
- user: auth.user || null
155
- };
156
- })(App);
157
- var WithRouter = (0, _reactRouter.withRouter)(WithStateContainer);
158
- var _default = WithRouter;
159
- exports["default"] = _default;
@@ -1,87 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports["default"] = void 0;
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
-
16
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
-
18
- var _react = _interopRequireWildcard(require("react"));
19
-
20
- var _propTypes = _interopRequireDefault(require("prop-types"));
21
-
22
- var _reactRedux = require("react-redux");
23
-
24
- var _reactRouter = require("react-router");
25
-
26
- var _core = require("@panneau/core");
27
-
28
- var _contexts = require("@panneau/core/contexts");
29
-
30
- var _LayoutActions = require("../actions/LayoutActions");
31
-
32
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
33
-
34
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
35
-
36
- var propTypes = {
37
- history: _core.PropTypes.history.isRequired,
38
- updateLayout: _propTypes["default"].func.isRequired
39
- };
40
- var defaultProps = {};
41
-
42
- var Layout = function Layout(_ref) {
43
- var updateLayout = _ref.updateLayout,
44
- history = _ref.history,
45
- props = (0, _objectWithoutProperties2["default"])(_ref, ["updateLayout", "history"]);
46
- var urlGenerator = (0, _contexts.useUrlGenerator)();
47
- var definition = (0, _contexts.useDefinition)();
48
- var layoutsCollection = (0, _contexts.useComponents)('layouts');
49
- var gotoHome = (0, _react.useCallback)(function () {
50
- return history(urlGenerator.route('home'));
51
- }, [urlGenerator]);
52
- var gotoLink = (0, _react.useCallback)(function (path) {
53
- return history(path);
54
- }, []);
55
- var gotoRoute = (0, _react.useCallback)(function (name) {
56
- return history(urlGenerator.route(name));
57
- }, [urlGenerator]);
58
-
59
- var _definition$layout = definition.layout(),
60
- _definition$layout$ty = _definition$layout.type,
61
- componentName = _definition$layout$ty === void 0 ? 'normal' : _definition$layout$ty,
62
- layoutProps = (0, _objectWithoutProperties2["default"])(_definition$layout, ["type"]);
63
-
64
- var LayoutComponent = layoutsCollection.getComponent(componentName);
65
- return LayoutComponent !== null ? _react["default"].createElement(LayoutComponent, (0, _extends2["default"])({
66
- gotoHome: gotoHome,
67
- gotoLink: gotoLink,
68
- gotoRoute: gotoRoute,
69
- updateLayout: updateLayout
70
- }, layoutProps, props)) : null;
71
- };
72
-
73
- Layout.propTypes = propTypes;
74
- Layout.defaultProps = defaultProps;
75
- var WithStateContainer = (0, _reactRedux.connect)(function (_ref2) {
76
- var layout = _ref2.layout;
77
- return _objectSpread({}, layout);
78
- }, function (dispatch) {
79
- return {
80
- updateLayout: function updateLayout(layout) {
81
- return dispatch((0, _LayoutActions.updateLayout)(layout));
82
- }
83
- };
84
- })(Layout);
85
- var WithRouterContainer = (0, _reactRouter.withRouter)(WithStateContainer);
86
- var _default = WithRouterContainer;
87
- exports["default"] = _default;