@common-stack/client-react 0.1.18 → 0.1.19
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.
- package/lib/index.d.ts +1 -0
- package/lib/index.js +110 -28
- package/lib/index.js.map +1 -1
- package/lib/interfaces/router.d.ts +10 -1
- package/lib/inversify/InversifyContext.d.ts +14 -0
- package/lib/inversify/index.d.ts +1 -0
- package/package.json +4 -4
- package/CHANGELOG.md +0 -247
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -111,7 +111,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
111
111
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
112
112
|
if (mod && mod.__esModule) return mod;
|
|
113
113
|
var result = {};
|
|
114
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
114
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
115
115
|
__setModuleDefault(result, mod);
|
|
116
116
|
return result;
|
|
117
117
|
};
|
|
@@ -253,7 +253,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
253
253
|
o[k2] = m[k];
|
|
254
254
|
}));
|
|
255
255
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
256
|
-
for (var p in m) if (p !== "default" && !
|
|
256
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
257
257
|
};
|
|
258
258
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
259
259
|
__exportStar(__webpack_require__(/*! ./connector */ "./src/connector/connector.tsx"), exports);
|
|
@@ -278,9 +278,10 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
278
278
|
o[k2] = m[k];
|
|
279
279
|
}));
|
|
280
280
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
281
|
-
for (var p in m) if (p !== "default" && !
|
|
281
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
282
282
|
};
|
|
283
283
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
284
|
+
exports.ClientTypes = void 0;
|
|
284
285
|
var client_core_1 = __webpack_require__(/*! @common-stack/client-core */ "@common-stack/client-core");
|
|
285
286
|
Object.defineProperty(exports, "ClientTypes", { enumerable: true, get: function () { return client_core_1.ClientTypes; } });
|
|
286
287
|
__exportStar(__webpack_require__(/*! ./connector */ "./src/connector/index.ts"), exports);
|
|
@@ -291,6 +292,7 @@ __exportStar(__webpack_require__(/*! ./interfaces */ "./src/interfaces/index.ts"
|
|
|
291
292
|
__exportStar(__webpack_require__(/*! ./plugin-area */ "./src/plugin-area/index.ts"), exports);
|
|
292
293
|
__exportStar(__webpack_require__(/*! ./route-based-plugin-area */ "./src/route-based-plugin-area/index.ts"), exports);
|
|
293
294
|
__exportStar(__webpack_require__(/*! ./slot-fill */ "./src/slot-fill/index.ts"), exports);
|
|
295
|
+
__exportStar(__webpack_require__(/*! ./inversify */ "./src/inversify/index.ts"), exports);
|
|
294
296
|
|
|
295
297
|
|
|
296
298
|
/***/ }),
|
|
@@ -326,7 +328,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
326
328
|
o[k2] = m[k];
|
|
327
329
|
}));
|
|
328
330
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
329
|
-
for (var p in m) if (p !== "default" && !
|
|
331
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
330
332
|
};
|
|
331
333
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
332
334
|
__exportStar(__webpack_require__(/*! ./router */ "./src/interfaces/router.ts"), exports);
|
|
@@ -386,6 +388,79 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
386
388
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
387
389
|
|
|
388
390
|
|
|
391
|
+
/***/ }),
|
|
392
|
+
|
|
393
|
+
/***/ "./src/inversify/InversifyContext.tsx":
|
|
394
|
+
/*!********************************************!*\
|
|
395
|
+
!*** ./src/inversify/InversifyContext.tsx ***!
|
|
396
|
+
\********************************************/
|
|
397
|
+
/*! no static exports found */
|
|
398
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
399
|
+
|
|
400
|
+
"use strict";
|
|
401
|
+
|
|
402
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
403
|
+
if (k2 === undefined) k2 = k;
|
|
404
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
405
|
+
}) : (function(o, m, k, k2) {
|
|
406
|
+
if (k2 === undefined) k2 = k;
|
|
407
|
+
o[k2] = m[k];
|
|
408
|
+
}));
|
|
409
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
410
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
411
|
+
}) : function(o, v) {
|
|
412
|
+
o["default"] = v;
|
|
413
|
+
});
|
|
414
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
415
|
+
if (mod && mod.__esModule) return mod;
|
|
416
|
+
var result = {};
|
|
417
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
418
|
+
__setModuleDefault(result, mod);
|
|
419
|
+
return result;
|
|
420
|
+
};
|
|
421
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
422
|
+
exports.useInjection = exports.InversifyProvider = exports.InversifyContext = void 0;
|
|
423
|
+
const React = __importStar(__webpack_require__(/*! react */ "react"));
|
|
424
|
+
exports.InversifyContext = React.createContext({ container: null, modules: null });
|
|
425
|
+
const InversifyProvider = (props) => {
|
|
426
|
+
return (React.createElement(exports.InversifyContext.Provider, { value: { container: props.container, modules: props.modules } }, props.children));
|
|
427
|
+
};
|
|
428
|
+
exports.InversifyProvider = InversifyProvider;
|
|
429
|
+
function useInjection(identifier) {
|
|
430
|
+
const { container } = React.useContext(exports.InversifyContext);
|
|
431
|
+
if (!container) {
|
|
432
|
+
throw new Error('Container is null');
|
|
433
|
+
}
|
|
434
|
+
return container.get(identifier);
|
|
435
|
+
}
|
|
436
|
+
exports.useInjection = useInjection;
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
/***/ }),
|
|
440
|
+
|
|
441
|
+
/***/ "./src/inversify/index.ts":
|
|
442
|
+
/*!********************************!*\
|
|
443
|
+
!*** ./src/inversify/index.ts ***!
|
|
444
|
+
\********************************/
|
|
445
|
+
/*! no static exports found */
|
|
446
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
447
|
+
|
|
448
|
+
"use strict";
|
|
449
|
+
|
|
450
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
451
|
+
if (k2 === undefined) k2 = k;
|
|
452
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
453
|
+
}) : (function(o, m, k, k2) {
|
|
454
|
+
if (k2 === undefined) k2 = k;
|
|
455
|
+
o[k2] = m[k];
|
|
456
|
+
}));
|
|
457
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
458
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
459
|
+
};
|
|
460
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
461
|
+
__exportStar(__webpack_require__(/*! ./InversifyContext */ "./src/inversify/InversifyContext.tsx"), exports);
|
|
462
|
+
|
|
463
|
+
|
|
389
464
|
/***/ }),
|
|
390
465
|
|
|
391
466
|
/***/ "./src/plugin-area/browser-plugin-area.tsx":
|
|
@@ -412,7 +487,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
412
487
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
413
488
|
if (mod && mod.__esModule) return mod;
|
|
414
489
|
var result = {};
|
|
415
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
490
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
416
491
|
__setModuleDefault(result, mod);
|
|
417
492
|
return result;
|
|
418
493
|
};
|
|
@@ -420,10 +495,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
420
495
|
exports.BrowserPluginArea = void 0;
|
|
421
496
|
const React = __importStar(__webpack_require__(/*! react */ "react"));
|
|
422
497
|
const plugin_area_1 = __webpack_require__(/*! ./plugin-area */ "./src/plugin-area/plugin-area.tsx");
|
|
423
|
-
|
|
498
|
+
const BrowserPluginArea = () => {
|
|
424
499
|
return React.createElement("div", { style: { display: "none" } },
|
|
425
500
|
React.createElement(plugin_area_1.PluginArea, null));
|
|
426
501
|
};
|
|
502
|
+
exports.BrowserPluginArea = BrowserPluginArea;
|
|
427
503
|
|
|
428
504
|
|
|
429
505
|
/***/ }),
|
|
@@ -479,7 +555,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
479
555
|
o[k2] = m[k];
|
|
480
556
|
}));
|
|
481
557
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
482
|
-
for (var p in m) if (p !== "default" && !
|
|
558
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
483
559
|
};
|
|
484
560
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
485
561
|
__exportStar(__webpack_require__(/*! ./plugin-area */ "./src/plugin-area/plugin-area.tsx"), exports);
|
|
@@ -603,7 +679,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
603
679
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
604
680
|
if (mod && mod.__esModule) return mod;
|
|
605
681
|
var result = {};
|
|
606
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
682
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
607
683
|
__setModuleDefault(result, mod);
|
|
608
684
|
return result;
|
|
609
685
|
};
|
|
@@ -682,7 +758,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
682
758
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
683
759
|
if (mod && mod.__esModule) return mod;
|
|
684
760
|
var result = {};
|
|
685
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
761
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
686
762
|
__setModuleDefault(result, mod);
|
|
687
763
|
return result;
|
|
688
764
|
};
|
|
@@ -705,9 +781,10 @@ exports.PluginContextProvider = Provider;
|
|
|
705
781
|
*
|
|
706
782
|
* @return Enhanced component with injected context as props.
|
|
707
783
|
*/
|
|
708
|
-
|
|
784
|
+
const withPluginContext = (mapContextToProps) => higher_order_component_util_1.createHigherOrderComponent((OriginalComponent) => {
|
|
709
785
|
return (props) => (React.createElement(Consumer, null, (context) => (React.createElement(OriginalComponent, Object.assign({}, props, mapContextToProps(context, props))))));
|
|
710
786
|
}, 'withPluginContext');
|
|
787
|
+
exports.withPluginContext = withPluginContext;
|
|
711
788
|
|
|
712
789
|
|
|
713
790
|
/***/ }),
|
|
@@ -763,7 +840,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
763
840
|
o[k2] = m[k];
|
|
764
841
|
}));
|
|
765
842
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
766
|
-
for (var p in m) if (p !== "default" && !
|
|
843
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
767
844
|
};
|
|
768
845
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
769
846
|
__exportStar(__webpack_require__(/*! ./route-based-plugin-area */ "./src/route-based-plugin-area/route-based-plugin-area.tsx"), exports);
|
|
@@ -886,7 +963,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
886
963
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
887
964
|
if (mod && mod.__esModule) return mod;
|
|
888
965
|
var result = {};
|
|
889
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
966
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
890
967
|
__setModuleDefault(result, mod);
|
|
891
968
|
return result;
|
|
892
969
|
};
|
|
@@ -909,9 +986,10 @@ exports.PluginContextProvider = Provider;
|
|
|
909
986
|
*
|
|
910
987
|
* @return Enhanced component with injected context as props.
|
|
911
988
|
*/
|
|
912
|
-
|
|
989
|
+
const withPluginContext = (mapContextToProps) => higher_order_component_util_1.createHigherOrderComponent((OriginalComponent) => {
|
|
913
990
|
return (props) => (React.createElement(Consumer, null, (context) => (React.createElement(OriginalComponent, Object.assign({}, props, mapContextToProps(context, props))))));
|
|
914
991
|
}, 'withPluginContext');
|
|
992
|
+
exports.withPluginContext = withPluginContext;
|
|
915
993
|
|
|
916
994
|
|
|
917
995
|
/***/ }),
|
|
@@ -940,7 +1018,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
940
1018
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
941
1019
|
if (mod && mod.__esModule) return mod;
|
|
942
1020
|
var result = {};
|
|
943
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1021
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
944
1022
|
__setModuleDefault(result, mod);
|
|
945
1023
|
return result;
|
|
946
1024
|
};
|
|
@@ -1012,7 +1090,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
1012
1090
|
o[k2] = m[k];
|
|
1013
1091
|
}));
|
|
1014
1092
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
1015
|
-
for (var p in m) if (p !== "default" && !
|
|
1093
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
1016
1094
|
};
|
|
1017
1095
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1018
1096
|
__exportStar(__webpack_require__(/*! ./render-routes */ "./src/route/render-routes.tsx"), exports);
|
|
@@ -1044,7 +1122,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
1044
1122
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
1045
1123
|
if (mod && mod.__esModule) return mod;
|
|
1046
1124
|
var result = {};
|
|
1047
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1125
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1048
1126
|
__setModuleDefault(result, mod);
|
|
1049
1127
|
return result;
|
|
1050
1128
|
};
|
|
@@ -1203,7 +1281,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
1203
1281
|
o[k2] = m[k];
|
|
1204
1282
|
}));
|
|
1205
1283
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
1206
|
-
for (var p in m) if (p !== "default" && !
|
|
1284
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
1207
1285
|
};
|
|
1208
1286
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1209
1287
|
__exportStar(__webpack_require__(/*! ./router */ "./src/router/router.tsx"), exports);
|
|
@@ -1235,7 +1313,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
1235
1313
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
1236
1314
|
if (mod && mod.__esModule) return mod;
|
|
1237
1315
|
var result = {};
|
|
1238
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1316
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1239
1317
|
__setModuleDefault(result, mod);
|
|
1240
1318
|
return result;
|
|
1241
1319
|
};
|
|
@@ -1276,7 +1354,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
1276
1354
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
1277
1355
|
if (mod && mod.__esModule) return mod;
|
|
1278
1356
|
var result = {};
|
|
1279
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1357
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1280
1358
|
__setModuleDefault(result, mod);
|
|
1281
1359
|
return result;
|
|
1282
1360
|
};
|
|
@@ -1394,7 +1472,7 @@ class SlotFillProvider extends React.Component {
|
|
|
1394
1472
|
* @param {string} name Slot name.
|
|
1395
1473
|
* @return {Object} Slot object.
|
|
1396
1474
|
*/
|
|
1397
|
-
|
|
1475
|
+
const useSlot = (name) => {
|
|
1398
1476
|
const { getSlot, subscribe } = React.useContext(SlotFillContext);
|
|
1399
1477
|
const [slot, setSlot] = React.useState(getSlot(name));
|
|
1400
1478
|
React.useEffect(() => {
|
|
@@ -1406,6 +1484,7 @@ exports.useSlot = (name) => {
|
|
|
1406
1484
|
}, [name]);
|
|
1407
1485
|
return slot;
|
|
1408
1486
|
};
|
|
1487
|
+
exports.useSlot = useSlot;
|
|
1409
1488
|
exports.default = SlotFillProvider;
|
|
1410
1489
|
|
|
1411
1490
|
|
|
@@ -1435,7 +1514,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
1435
1514
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
1436
1515
|
if (mod && mod.__esModule) return mod;
|
|
1437
1516
|
var result = {};
|
|
1438
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1517
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1439
1518
|
__setModuleDefault(result, mod);
|
|
1440
1519
|
return result;
|
|
1441
1520
|
};
|
|
@@ -1540,7 +1619,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
1540
1619
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
1541
1620
|
if (mod && mod.__esModule) return mod;
|
|
1542
1621
|
var result = {};
|
|
1543
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1622
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1544
1623
|
__setModuleDefault(result, mod);
|
|
1545
1624
|
return result;
|
|
1546
1625
|
};
|
|
@@ -1624,7 +1703,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
1624
1703
|
o[k2] = m[k];
|
|
1625
1704
|
}));
|
|
1626
1705
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
1627
|
-
for (var p in m) if (p !== "default" && !
|
|
1706
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
1628
1707
|
};
|
|
1629
1708
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1630
1709
|
__exportStar(__webpack_require__(/*! ./isEmptyElement */ "./src/slot-fill/utils/isEmptyElement.tsx"), exports);
|
|
@@ -1650,7 +1729,7 @@ const lodash_1 = __webpack_require__(/*! lodash */ "lodash");
|
|
|
1650
1729
|
* @param element React Component to check.
|
|
1651
1730
|
* @returns True when an element is considered empty.
|
|
1652
1731
|
*/
|
|
1653
|
-
|
|
1732
|
+
const isEmptyElement = (element) => {
|
|
1654
1733
|
if (lodash_1.isNumber(element)) {
|
|
1655
1734
|
return false;
|
|
1656
1735
|
}
|
|
@@ -1659,6 +1738,7 @@ exports.isEmptyElement = (element) => {
|
|
|
1659
1738
|
}
|
|
1660
1739
|
return !element;
|
|
1661
1740
|
};
|
|
1741
|
+
exports.isEmptyElement = isEmptyElement;
|
|
1662
1742
|
|
|
1663
1743
|
|
|
1664
1744
|
/***/ }),
|
|
@@ -1680,7 +1760,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
1680
1760
|
o[k2] = m[k];
|
|
1681
1761
|
}));
|
|
1682
1762
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
1683
|
-
for (var p in m) if (p !== "default" && !
|
|
1763
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
1684
1764
|
};
|
|
1685
1765
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1686
1766
|
__exportStar(__webpack_require__(/*! ./route-utils */ "./src/utils/route-utils.tsx"), exports);
|
|
@@ -1712,7 +1792,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
1712
1792
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
1713
1793
|
if (mod && mod.__esModule) return mod;
|
|
1714
1794
|
var result = {};
|
|
1715
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1795
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
1716
1796
|
__setModuleDefault(result, mod);
|
|
1717
1797
|
return result;
|
|
1718
1798
|
};
|
|
@@ -1908,18 +1988,20 @@ function getMenus(path, menuData) {
|
|
|
1908
1988
|
return root.children;
|
|
1909
1989
|
}
|
|
1910
1990
|
exports.getMenus = getMenus;
|
|
1911
|
-
|
|
1991
|
+
const renderRoutes = (routes, solidRoutes, extraProps = {}, switchProps = {}) => routes ? (React.createElement(React.Fragment, null, [
|
|
1912
1992
|
...solidRoutes,
|
|
1913
1993
|
...routes.map((route, i) => (React.createElement(react_router_dom_1.Route, { key: route.key || i, path: route.path, exact: route.exact, strict: route.strict, render: props => route.render ? (route.render(Object.assign(Object.assign(Object.assign({}, props), extraProps), { route: route }))) : (React.createElement(route.component, Object.assign({}, props, extraProps, { route: route }))) }))),
|
|
1914
1994
|
])) : null;
|
|
1995
|
+
exports.renderRoutes = renderRoutes;
|
|
1915
1996
|
function sortKeys(routeData) {
|
|
1916
1997
|
return defaultSortKeys(routeData, { compare });
|
|
1917
1998
|
}
|
|
1918
1999
|
exports.sortKeys = sortKeys;
|
|
1919
|
-
|
|
2000
|
+
const getSortedRoutes = (path, routeData, authWrapper = null) => {
|
|
1920
2001
|
const sortedRoutes = sortKeys(routeData);
|
|
1921
2002
|
return getRoutes(path, sortedRoutes, authWrapper);
|
|
1922
2003
|
};
|
|
2004
|
+
exports.getSortedRoutes = getSortedRoutes;
|
|
1923
2005
|
const compare = ((a, b) => {
|
|
1924
2006
|
const aStr = String(a).toLowerCase();
|
|
1925
2007
|
const bStr = String(b).toLowerCase();
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://@common-stack/client-react/webpack/bootstrap","webpack://@common-stack/client-react/./src/connector/connector.tsx","webpack://@common-stack/client-react/./src/connector/index.ts","webpack://@common-stack/client-react/./src/index.ts","webpack://@common-stack/client-react/./src/interfaces/index.ts","webpack://@common-stack/client-react/./src/interfaces/menu.tsx","webpack://@common-stack/client-react/./src/plugin-area/browser-plugin-area.tsx","webpack://@common-stack/client-react/./src/plugin-area/higher-order-component-util.ts","webpack://@common-stack/client-react/./src/plugin-area/index.ts","webpack://@common-stack/client-react/./src/plugin-area/plugin-api.ts","webpack://@common-stack/client-react/./src/plugin-area/plugin-area.tsx","webpack://@common-stack/client-react/./src/plugin-area/plugin-context.tsx","webpack://@common-stack/client-react/./src/route-based-plugin-area/higher-order-component-util.ts","webpack://@common-stack/client-react/./src/route-based-plugin-area/index.ts","webpack://@common-stack/client-react/./src/route-based-plugin-area/plugin-api.ts","webpack://@common-stack/client-react/./src/route-based-plugin-area/plugin-context.tsx","webpack://@common-stack/client-react/./src/route-based-plugin-area/route-based-plugin-area.tsx","webpack://@common-stack/client-react/./src/route/index.ts","webpack://@common-stack/client-react/./src/route/render-routes.tsx","webpack://@common-stack/client-react/./src/router/index.ts","webpack://@common-stack/client-react/./src/router/router.tsx","webpack://@common-stack/client-react/./src/slot-fill/context.tsx","webpack://@common-stack/client-react/./src/slot-fill/fill.tsx","webpack://@common-stack/client-react/./src/slot-fill/index.ts","webpack://@common-stack/client-react/./src/slot-fill/slot.tsx","webpack://@common-stack/client-react/./src/slot-fill/utils/index.ts","webpack://@common-stack/client-react/./src/slot-fill/utils/isEmptyElement.tsx","webpack://@common-stack/client-react/./src/utils/index.ts","webpack://@common-stack/client-react/./src/utils/route-utils.tsx","webpack://@common-stack/client-react/external \"@common-stack/client-core\"","webpack://@common-stack/client-react/external \"@wordpress/hooks\"","webpack://@common-stack/client-react/external \"lodash\"","webpack://@common-stack/client-react/external \"react\"","webpack://@common-stack/client-react/external \"react-dom\"","webpack://@common-stack/client-react/external \"react-router\"","webpack://@common-stack/client-react/external \"react-router-dom\"","webpack://@common-stack/client-react/external \"sort-keys\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":[" \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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","import * as React from 'react';\nimport { AbstractFeature, IModuleShape } from '@common-stack/client-core';\n// import { makeLogger } from '@cdm-logger/client';\nimport { IReactFeature, IReactModuleShape } from '../interfaces';\nimport { getMenus, getSortedRoutes, renderRoutes } from '../utils';\nimport { castArray, map, union, without, sortBy, filter, find } from 'lodash';\nimport { registerPlugin, getPlugins, getPlugin } from '../plugin-area';\n\nconst combine = (features, extractor) => without(union(...map(features,\n res => castArray(extractor(res)))), undefined);\n\nconst getFirst = (features, extractor) => extractor(find(features, (res) => extractor(res)) || {});\n\ntype FeatureParam = IModuleShape & IReactModuleShape;\n\nexport class Feature extends AbstractFeature implements IReactFeature {\n // private logger;\n public componentFillPlugins;\n\n public routerFactory: any;\n public route: any;\n public routeConfig: any;\n public menuConfig: any;\n public authWrapper: (\n ele: React.ReactElement,\n props: Record<string, any>) => void;\n\n constructor(\n feature?: FeatureParam,\n // tslint:disable:trailing-comma\n ...features: FeatureParam[]\n ) {\n super(feature, ...features);\n // this.logger = makeLogger(Feature.name);\n\n\n // Navigation\n this.routerFactory = combine(arguments, (arg: FeatureParam) => arg.routerFactory)\n .slice(-1)\n .pop();\n this.route = combine(arguments, (arg: FeatureParam) => arg.route);\n this.routeConfig = combine(arguments, (arg: FeatureParam) => arg.routeConfig);\n\n this.menuConfig = combine(arguments, (arg: FeatureParam) => arg.menuConfig);\n\n this.componentFillPlugins = this.registerComponentFillPlugins(combine(arguments,\n (arg: FeatureParam) => arg.componentFillPlugins));\n\n this.authWrapper = getFirst(arguments, (arg: FeatureParam) => arg.authWrapper)\n }\n\n /* tslint:disable:jsx-no-lambda */\n private renderRoutes = renderRoutes;\n\n /**\n * Get the routes\n */\n public getRoutes(searchPath?: any) {\n const configuredRoutes = this.getConfiguredRoutes(searchPath);\n const solidRoutes = this.route.map((component: React.ReactElement<any>, idx: number) =>\n React.cloneElement(component, { key: component.props.path }));\n return this.renderRoutes(configuredRoutes, solidRoutes);\n }\n\n /**\n * Get menus\n */\n public getMenus(sortByPriority = true) {\n const menus = this.getConfiguredMenus();\n return this.sortMenus(sortByPriority, menus);\n }\n\n /**\n * get configured routes.\n * Note: It overwrites the any duplicate key with latest loaded key.\n * TODO: Find a way to warn when there are duplicate keys.\n */\n public getConfiguredRoutes(searchPath = '/') {\n return getSortedRoutes(searchPath, Object.assign({}, ...this.routeConfig), this.authWrapper);\n }\n\n\n /**\n * get configured menus.\n * Note: It overwrites the any duplicate key with latest loaded key.\n * TODO: Find a way to warn when there are duplicate keys.\n */\n public getConfiguredMenus(searchPath = '/') {\n const routes = Object.assign({}, ...this.menuConfig);\n return getMenus(searchPath, { ...routes });\n }\n\n get navItems() {\n return this.navItem.map((component: React.ReactElement<any>, idx: number) =>\n React.cloneElement(component, {\n key: component.key ? component.key : idx + this.navItem.length,\n }),\n );\n }\n\n get navItemsRight() {\n return this.navItemsRight.map((component: React.ReactElement<any>, idx: number) =>\n React.cloneElement(component, {\n key: component.key ? component.key : idx + this.navItems.length,\n }),\n );\n }\n\n public getWrappedRoot(root: React.ReactNode, req?: any): React.ReactNode {\n let nestedRoot = root;\n for (const componentFactory of this.rootComponentFactory) {\n nestedRoot = React.cloneElement(componentFactory(req), {}, nestedRoot);\n }\n return nestedRoot;\n }\n\n public getDataRoot(root) {\n let nestedRoot = root;\n for (const component of this.dataRootComponent) {\n nestedRoot = React.createElement(component, {}, nestedRoot);\n }\n return nestedRoot;\n }\n\n public registerLanguages(monaco) {\n for (const func of this.languagesFuncs) {\n func(monaco);\n }\n }\n\n private registerComponentFillPlugins(plugins): void {\n plugins.forEach((i) => {\n const { name } = i;\n const isFound = !!getPlugin(name);\n if (!isFound) {\n registerPlugin(name, i);\n }\n });\n return plugins;\n }\n\n public getComponentFillPlugins() {\n return getPlugins();\n }\n\n\n private sortMenusByPriority = (menus) => {\n return sortBy(menus, (obj) => parseInt(obj.priority, 10));\n }\n\n private sortMenus = (sortByPriority, menus) => {\n if (sortByPriority) {\n const menuData = this.sortMenusByPriority(menus);\n return menuData.map(menu => {\n return {\n ...menu,\n children: menu.children && this.sortMenus(sortByPriority, menu.children),\n };\n });\n } else {\n return menus;\n }\n }\n\n}\n","export * from './connector';\n","export { ClientTypes } from '@common-stack/client-core';\nexport * from './connector';\nexport * from './router';\nexport * from './route';\nexport * from './utils';\nexport * from './interfaces';\nexport * from './plugin-area';\nexport * from './route-based-plugin-area';\nexport * from './slot-fill';","export * from './router';\nexport * from './extended-feature';\nexport * from './menu';\nexport * from './new-router';\n","import * as React from 'react';\nimport { deprecate } from 'util';\n\n/**\n * @deprecated Will be removed, don't use it. It is replaced by \n */\nexport interface IMenuData {\n [key: string]: {\n name: any;\n position?: IMenuPosition;\n icon?: any;\n authority?: any;\n exact?: boolean;\n strict?: boolean;\n [key: string]: any;\n };\n}\n\n\n/**\n * @deprecated Will be removed, don't use it. Replaced by IMenuDataItem\n */\nexport interface IMenuItem {\n path?: string;\n name: any;\n icon?: any;\n position: IMenuPosition;\n authority?: any;\n loading?: any;\n exact?: boolean;\n strict?: boolean;\n children?: IMenuItem[];\n priority?: number\n}\n\nexport interface IMenuDataItem {\n /**\n * @name submenu\n */\n children?: IMenuDataItem[];\n /**\n * @name Hide child nodes in the menu\n */\n hideChildrenInMenu?: boolean;\n /**\n * @name hideSelf and children in menu\n */\n hideInMenu?: boolean;\n /**\n * @name Icon of the menu\n */\n icon?: React.ReactNode;\n /**\n * @name Internationalization key for custom menus\n */\n locale?: string | false;\n /**\n * @name The name of the menu\n */\n name?: string;\n /**\n * @name is used to calibrate the selected value, default is path\n */\n key?: string;\n /**\n * @name disable menu option\n */\n disabled?: boolean;\n /**\n * @name path\n */\n path?: string;\n /**\n * @name custom parent node\n * @description When this node is selected, the node of parentKeys is also selected\n */\n parentKeys?: string[];\n /**\n * @name hides itself and elevates child nodes to its level\n */\n flatMenu?: boolean;\n\n /**\n * @name position of the Menu\n */\n position?: IMenuPosition;\n\n\n /**\n * @name permissions to determine whether to render menu or not\n */\n authority?: string[];\n\n /**\n * @name priority of the menu to display in the order. Lower values shows first. \n */\n priority?: number;\n\n [key: string]: any;\n}\n\nexport enum IMenuPosition {\n LOGO = 'LOGO',\n UPPER = 'UPPER',\n MIDDLE = 'MIDDLE',\n LOWER = 'LOWER',\n BOTTOM = 'BOTTOM',\n}\n","import * as React from 'react';\nimport { PluginArea } from './plugin-area';\n\nexport const BrowserPluginArea = () => {\n return <div style={{ display: \"none\" }}>\n <PluginArea />\n </div>\n}","\nimport { camelCase, upperFirst } from 'lodash';\n\n/**\n * Given a function mapping a component to an enhanced component and modifier\n * name, returns the enhanced component augmented with a generated displayName.\n * \n * @param mapComponentToEnhancedComponent Function mapping component to enhanced component.\n * @param modifierName Seed name from which to generated display name.\n * \n * @return Component class with generated display name assigned.\n */\nexport function createHigherOrderComponent(\n mapComponentToEnhancedComponent,\n modifierName\n) {\n return ( OriginalComponent ) => {\n const EnhancedComponent = mapComponentToEnhancedComponent(\n OriginalComponent\n );\n const {\n displayName = OriginalComponent.name || 'Component',\n } = OriginalComponent;\n EnhancedComponent.displayName = `${ upperFirst(\n camelCase(modifierName)\n )}(${displayName})`;\n\n return EnhancedComponent;\n }\n}\n\n","export * from './plugin-area';\nexport * from './plugin-api';\nexport * from './browser-plugin-area'\n","import { ComponentElement } from 'react';\n\nimport { isFunction } from 'lodash';\nimport { applyFilters, doAction } from '@wordpress/hooks';\n\n/**\n * Defined behavior of a plugin type.\n *\n * @typedef ComponentExtension\n *\n *\n */\nexport interface WorbenchExtension {\n name: string;\n icon: string | ComponentElement<any, any> | Function;\n render: React.SFC | any;\n}\n\n/**\n * Plugin definitions keyed by plugin name.\n */\nconst plugins: { [key: string]: WorbenchExtension } = {};\n\n/**\n * Registeres a plugin to the App.\n *\n * @param name A string identifying the plugin. Must be unique across all registered plugins.\n * @param settings The settings for this plugin.\n */\nexport function registerPlugin(name, settings) {\n if (typeof settings !== 'object') {\n console.error('No settings object provided!');\n return null;\n }\n if (typeof name !== 'string') {\n console.error('Plugin names must be strings.');\n return null;\n }\n if (!/^[a-z][a-z0-9-]*$/.test(name)) {\n console.error(\n 'Plugin names must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-pluin\".',\n );\n return null;\n }\n if (plugins[name]) {\n console.error(`Plugin \"${name}\" is alread registered.`);\n }\n settings = applyFilters('plugins.registerPlugin', settings, name);\n\n if (!isFunction(settings.render)) {\n console.error(\n 'The \"render\" property must be specified and must be a valid function.',\n );\n return null;\n }\n plugins[name] = {\n name,\n icon: 'admin-plugins',\n ...settings,\n };\n\n doAction('plugins.pluginRegistered', settings, name);\n\n return settings;\n}\n\n/**\n * Unregisteres a plugin by name.\n * @param name Plugin name.\n *\n * @return The previous plugin settings object, if it has been successfully unregistered; otherwise `undefined`.\n */\nexport function unregisterPlugin(name) {\n if (!plugins[name]) {\n console.error('Plugin \"' + name + '\" is not registered.');\n return;\n }\n const oldPlugin = plugins[name];\n delete plugins[name];\n\n doAction('plugin.pluginUnregistered', oldPlugin, name);\n\n return oldPlugin;\n}\n\n/**\n * Returns a registered plugin settings.\n *\n * @param name Plugin name.\n *\n * @returns Plugin setting.\n */\nexport function getPlugin(name) {\n return plugins[name];\n}\n\n/**\n * Return all registered plugins.\n *\n * @return Plugin settings.\n */\nexport function getPlugins() {\n return Object.values(plugins);\n}\n","import { map } from 'lodash';\nimport * as React from 'react';\nimport { addAction, removeAction } from '@wordpress/hooks';\nimport { PluginContextProvider } from './plugin-context';\nimport { getPlugins } from './plugin-api';\n\n/**\n * A component that renders all plugin fills in a hidden div.\n */\n\nexport class PluginArea extends React.Component<{}, { plugins: { [key: string]: any } }> {\n\n constructor(args) {\n super(args);\n this.setPlugins = this.setPlugins.bind(this);\n this.state = { plugins: [] };\n }\n\n public getCurrentPluginsState() {\n return {\n plugins: map(getPlugins(), ({ icon, name, render }) => {\n return {\n Plugin: render,\n context: {\n name,\n icon,\n },\n };\n }),\n };\n }\n\n public componentDidMount() {\n addAction(\n 'plugins.pluginRegistered',\n 'core/plugins/plugin-area/plugins-registered',\n this.setPlugins,\n );\n addAction(\n 'plugins.pluginUnregistered',\n 'core/plugins/plugin-area/plugins-unregistered',\n this.setPlugins,\n );\n this.setPlugins();\n }\n\n public componentWillUnMount() {\n removeAction(\n 'plugins.pluginRegistered',\n 'core/plugins/plugin-area/plugins-registered',\n );\n removeAction(\n 'plugins.pluginUnregistered',\n 'core/plugins/plugin-area/plugins-unregistered',\n );\n }\n\n public setPlugins() {\n this.setState(this.getCurrentPluginsState);\n }\n\n public render() {\n return (\n <>\n {map(this.state.plugins, ({ context, Plugin }) => (\n <PluginContextProvider\n key={context.name}\n value={context}\n >\n <Plugin />\n </PluginContextProvider>\n ))}\n </>\n );\n }\n}\n","\nimport * as React from 'react';\nimport { createHigherOrderComponent } from './higher-order-component-util';\n\nconst { createContext } = React;\nconst { Consumer, Provider } = createContext({\n name: null,\n icon: null,\n});\n\nexport { Provider as PluginContextProvider };\n\n\n/**\n * A Higher Order Component used to inject Plugin context to the\n * wrapped component.\n *\n * @param mapContextToProps Function called on every context change, expected to return object of\n * props to merge with the component's own props.\n *\n * @return Enhanced component with injected context as props.\n */\nexport const withPluginContext = (mapContextToProps) =>\n createHigherOrderComponent((OriginalComponent) => {\n return (props) => (\n <Consumer>\n {(context) => (\n <OriginalComponent\n {...props}\n {...mapContextToProps(context, props)}\n />\n )}\n </Consumer>\n );\n }, 'withPluginContext');\n","\nimport { camelCase, upperFirst } from 'lodash';\n\n/**\n * Given a function mapping a component to an enhanced component and modifier\n * name, returns the enhanced component augmented with a generated displayName.\n * \n * @param mapComponentToEnhancedComponent Function mapping component to enhanced component.\n * @param modifierName Seed name from which to generated display name.\n * \n * @return Component class with generated display name assigned.\n */\nexport function createHigherOrderComponent(\n mapComponentToEnhancedComponent,\n modifierName\n) {\n return ( OriginalComponent ) => {\n const EnhancedComponent = mapComponentToEnhancedComponent(\n OriginalComponent\n );\n const {\n displayName = OriginalComponent.name || 'Component',\n } = OriginalComponent;\n EnhancedComponent.displayName = `${ upperFirst(\n camelCase(modifierName)\n )}(${displayName})`;\n\n return EnhancedComponent;\n }\n}\n\n","export * from './route-based-plugin-area';\nexport * from './plugin-api';\n","import { ComponentElement } from 'react';\n\nimport { isFunction } from 'lodash';\nimport { applyFilters, doAction } from '@wordpress/hooks';\n\n/**\n * Defined behavior of a plugin type.\n *\n * @typedef ComponentExtension\n *\n *\n */\n\ninterface WorbenchExtension {\n name: string;\n icon: string | ComponentElement<any, any> | Function;\n render: React.SFC | any;\n}\n\n/**\n * Plugin definitions keyed by plugin name.\n */\nconst plugins: { [key: string]: WorbenchExtension } = {};\n\n/**\n * Registeres a plugin to the App.\n *\n * @param name A string identifying the plugin. Must be unique across all registered plugins.\n * @param settings The settings for this plugin.\n */\nexport function registerRouteBasePlugin(name, settings) {\n if (typeof settings !== 'object') {\n console.error('No settings object provided!');\n return null;\n }\n if (typeof name !== 'string') {\n console.error('Plugin names must be strings.');\n return null;\n }\n if (!/^[a-z][a-z0-9-]*$/.test(name)) {\n console.error(\n 'Plugin names must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-pluin\".',\n );\n return null;\n }\n if (plugins[name]) {\n console.error(`Plugin \"${name}\" is alread registered.`);\n }\n settings = applyFilters('plugins.registerPlugin', settings, name);\n\n if (!isFunction(settings.render)) {\n console.error(\n 'The \"render\" property must be specified and must be a valid function.',\n );\n return null;\n }\n plugins[name] = {\n name,\n icon: 'admin-plugins',\n ...settings,\n };\n\n doAction('plugins.pluginRegistered', settings, name);\n\n return settings;\n}\n\n/**\n * Unregisteres a plugin by name.\n * @param name Plugin name.\n *\n * @return The previous plugin settings object, if it has been successfully unregistered; otherwise `undefined`.\n */\nexport function unregisterRouteBasePlugin(name) {\n if (!plugins[name]) {\n console.error('Plugin \"' + name + '\" is not registered.');\n return;\n }\n const oldPlugin = plugins[name];\n delete plugins[name];\n\n doAction('plugin.pluginUnregistered', oldPlugin, name);\n\n return oldPlugin;\n}\n\n/**\n * Returns a registered plugin settings.\n *\n * @param name Plugin name.\n *\n * @returns Plugin setting.\n */\nexport function getRouteBasePlugin(name) {\n return plugins[name];\n}\n\n/**\n * Return all registered plugins.\n *\n * @return Plugin settings.\n */\nexport function getRouteBasePlugins() {\n return Object.values(plugins);\n}\n","\nimport * as React from 'react';\nimport { createHigherOrderComponent } from './higher-order-component-util';\n\nconst { createContext } = React;\nconst { Consumer, Provider } = createContext({\n name: null,\n icon: null,\n});\n\nexport { Provider as PluginContextProvider };\n\n\n/**\n * A Higher Order Component used to inject Plugin context to the\n * wrapped component.\n *\n * @param mapContextToProps Function called on every context change, expected to return object of\n * props to merge with the component's own props.\n *\n * @return Enhanced component with injected context as props.\n */\nexport const withPluginContext = (mapContextToProps) =>\n createHigherOrderComponent((OriginalComponent) => {\n return (props) => (\n <Consumer>\n {(context) => (\n <OriginalComponent\n {...props}\n {...mapContextToProps(context, props)}\n />\n )}\n </Consumer>\n );\n }, 'withPluginContext');\n","import { map } from 'lodash';\nimport * as React from 'react';\nimport { addAction, removeAction } from '@wordpress/hooks';\nimport { PluginContextProvider } from './plugin-context';\nimport { getRouteBasePlugins } from './plugin-api';\n\n/**\n * A component that renders all plugin fills in a hidden div.\n */\n\nexport class RouteBasedPluginArea extends React.Component<{}, { plugins: { [key: string]: any}}> {\n\n constructor(args) {\n super(args);\n this.setPlugins = this.setPlugins.bind(this);\n this.state = {plugins: []};\n }\n\n public getCurrentPluginsState() {\n return {\n plugins: map(getRouteBasePlugins(), ({ icon, name, render }) => {\n return {\n Plugin: render,\n context: {\n name,\n icon,\n },\n };\n }),\n };\n }\n\n public componentDidMount() {\n addAction(\n 'plugins.pluginRegistered',\n 'core/plugins/plugin-area/plugins-registered',\n this.setPlugins,\n );\n addAction(\n 'plugins.pluginUnregistered',\n 'core/plugins/plugin-area/plugins-unregistered',\n this.setPlugins,\n );\n this.setPlugins();\n }\n\n public componentWillUnMount() {\n removeAction(\n 'plugins.pluginRegistered',\n 'core/plugins/plugin-area/plugins-registered',\n );\n removeAction(\n 'plugins.pluginUnregistered',\n 'core/plugins/plugin-area/plugins-unregistered',\n );\n }\n\n public setPlugins() {\n this.setState(this.getCurrentPluginsState);\n }\n\n public render() {\n return (\n <div style={{ display: 'none' }}>\n {map(this.state.plugins, ({ context, Plugin }) => (\n <PluginContextProvider\n key={context.name}\n value={context}\n >\n <Plugin />\n </PluginContextProvider>\n ))}\n </div>\n );\n }\n}\n","export * from './render-routes';\n","import * as React from 'react';\nimport { useEffect, useState, createElement } from 'react';\n// import { Plugin, ApplyPluginsType } from '@umijs/runtime';\nimport { IRoute, IComponent } from '../interfaces/new-router';\nimport { Switch, Route, Redirect } from 'react-router';\n\ninterface IOpts {\n routes: IRoute[];\n plugin?: Plugin;\n extraProps?: object;\n pageInitialProps?: object;\n getInitialPropsCtx?: object;\n isServer?: boolean;\n ssrProps?: object;\n rootRoutes?: IRoute[];\n auth?: boolean,\n authWrapper?: () => void;\n}\n\ninterface IGetRouteElementOpts {\n route: IRoute;\n index: number;\n opts: IOpts;\n}\n\nfunction wrapInitialPropsFetch(route: IRoute, opts: IOpts): IComponent {\n const { component, ...restRouteParams } = route;\n let Component: any = route!.component;\n function ComponentWithInitialPropsFetch(props: any) {\n const [initialProps, setInitialProps] = useState(\n () => (window as any).g_initialProps,\n );\n\n useEffect(() => {\n /**\n * 1. 首次渲染时,此时 window.g_initialProps 变量存在,不需要再走一次 getInitialProps,这样一次 SSR 就走了 2 次 getInitialProps\n * 2. 但是路由切换时,window.getInitialProps 会被赋为 null,这时候就走 getInitialProps 逻辑\n * 3. 如果任何时候都走 2 次,配置 forceInitial: true,这个场景用于静态站点的首屏加载希望走最新数据\n * 4. 开启动态加载后,会在执行 getInitialProps 前预加载下\n */\n const handleGetInitialProps = async () => {\n // preload when enalbe dynamicImport\n if (Component.preload) {\n const preloadComponent = await Component.preload();\n // for test case, really use .default\n Component = preloadComponent.default || preloadComponent;\n }\n\n //@sri not suppported\n // const defaultCtx = {\n // isServer: false,\n // match: props?.match,\n // route,\n // ...(opts.getInitialPropsCtx || {}),\n // ...restRouteParams,\n // };\n //@sri not suppported\n // if (Component?.getInitialProps) {\n // const ctx = await opts.plugin.applyPlugins({\n // key: 'ssr.modifyGetInitialPropsCtx',\n // type: ApplyPluginsType.modify,\n // initialValue: defaultCtx,\n // async: true,\n // });\n\n // const initialProps = await Component!.getInitialProps!(\n // ctx || defaultCtx,\n // );\n // setInitialProps(initialProps);\n // }\n };\n // null 时,一定会触发 getInitialProps 执行\n if (!(window as any).g_initialProps) {\n handleGetInitialProps();\n }\n }, [window.location.pathname, window.location.search]);\n return <Component {...props} {...initialProps} />;\n }\n // flag for having wrappered\n ComponentWithInitialPropsFetch.wrapInitialPropsLoaded = true;\n ComponentWithInitialPropsFetch.displayName = 'ComponentWithInitialPropsFetch';\n return ComponentWithInitialPropsFetch;\n}\n\nfunction render({\n route,\n opts,\n props,\n}: {\n route: IRoute;\n opts: IOpts;\n props: object;\n}) {\n const routes = renderRoutes({\n ...opts,\n routes: route.routes || [],\n rootRoutes: opts.rootRoutes,\n });\n let { component: Component, wrappers } = route;\n if (Component) {\n const defaultPageInitialProps = opts.isServer\n ? {}\n : (window as any).g_initialProps;\n const newProps = {\n ...props,\n ...opts.extraProps,\n ...(opts.pageInitialProps || defaultPageInitialProps),\n route,\n routes: opts.rootRoutes,\n };\n // @ts-ignore\n let ret = <Component {...newProps}>{routes}</Component>;\n\n // route.wrappers\n if (wrappers) {\n let len = wrappers.length - 1;\n while (len >= 0) {\n ret = createElement(wrappers[len], newProps, ret);\n len -= 1;\n }\n }\n\n return ret;\n } else {\n return routes;\n }\n}\n\nfunction getRouteElement({ route, index, opts }: IGetRouteElementOpts) {\n const routeProps = {\n key: route.key || index,\n exact: route.exact,\n strict: route.strict,\n sensitive: route.sensitive,\n path: route.path,\n };\n if (route.redirect) {\n return <Redirect {...routeProps} from={route.path} to={route.redirect} />;\n } else {\n // avoid mount and unmount with url hash change\n // @sri not supproted yet\n // if (\n // // only when SSR config enable\n // opts.ssrProps &&\n // !opts.isServer &&\n // // make sure loaded once\n // !(route.component as any)?.wrapInitialPropsLoaded &&\n // (route.component?.getInitialProps || route.component?.preload)\n // ) {\n // // client Render for enable ssr, but not sure SSR success\n // route.component = wrapInitialPropsFetch(route, opts);\n // }\n return (\n <Route\n {...routeProps}\n render={(props: object) => {\n return render({ route, opts, props });\n }}\n />\n );\n }\n}\n\nfunction renderRoutes(opts: IOpts) {\n return opts.routes ? (\n <Switch>\n {opts.routes.map((route, index) => {\n\n const renderedR = getRouteElement({\n route,\n index,\n opts: {\n ...opts,\n rootRoutes: opts.rootRoutes || opts.routes,\n },\n });\n return renderedR;\n }\n\n )}\n </Switch>\n ) : null;\n}\n\nexport { renderRoutes as renderRoutes2 }\n","export * from './router';\n","import * as React from 'react';\nimport { Switch } from 'react-router-dom';\nimport { Feature } from '../connector';\nimport {IReactFeature} from '../interfaces';\n\nconst routerFactory = (routes) => <Switch>{routes}</Switch>;\n\nexport const FeatureWithRouterFactory = new Feature({\n routerFactory,\n} as IReactFeature);\n","import * as React from 'react';\nimport { sortBy, forEach, without } from 'lodash';\n\nexport interface IFillProps {\n name: Name;\n [key: string]: any;\n}\nexport interface IFill extends React.Component<IFillProps> {\n occurrence: number;\n children: React.ReactNode;\n}\nexport type Name = string | Symbol;\n\nexport interface ISlotProps {\n /**\n * The name of the component. Use a symbol if you want to be 100% sure the Slot\n * will only be filled by a component you create\n */\n name: Name;\n /**\n * Props to be applied to the child Element of every fill which has the same name.\n *\n * If the value is a function, it must have the following signature:\n * (target: Fill, fills: Fill[]) => void;\n *\n * This allows you to access props on the fill which invoked the function\n * by using target.props.something()\n */\n fillProps?: { [key: string]: any };\n /**\n * A an optional function which gets all of the current fills for this slot\n * Allows sorting, or filtering before rendering. An example use-case could\n * be to only show a limited amount of fills.\n *\n * By default Slot injects an unstyled `<div>` element. If you want greater\n * control over presentation use this function.\n *\n * @example\n * <Slot name=\"My.Slot\">\n * {(items) => <Component>{items}</Component>}\n * </Slot>\n */\n children?: (fills: IFill[]) => JSX.Element;\n bubblesVirtually?: boolean;\n /**\n * `Slot` with `bubblesVirtually` set to true also accept an optional `className` to\n * add to the slot container.\n *\n * @type {string}\n * @memberof ISlotProps\n */\n className?: string;\n}\nexport interface ISlot extends React.Component<ISlotProps> {\n node: Element;\n}\n\nexport interface IContext extends IProviderState {}\nconst SlotFillContext = React.createContext<IContext | null>({ // need to add default value otherwise it will fail\n registerSlot: () => {},\n unregisterSlot: () => {},\n registerFill: () => {},\n unregisterFill: () => {},\n getSlot: () => ({}) as any,\n getFills: () => ([]),\n subscribe: () => {},\n});\nconst { Provider, Consumer } = SlotFillContext;\nexport interface IProviderState {\n registerFill: (a: Name, b: any) => void;\n unregisterFill: (a: Name, b: any) => void;\n unregisterSlot: (a: Name, b?: any) => void;\n registerSlot: (a: Name, b?: any) => void;\n getSlot: (a: Name) => ISlot;\n getFills: (a: Name, b?: any) => IFill[] | [];\n subscribe: (listener: any) => void;\n}\n\nclass SlotFillProvider extends React.Component<{}, {}> {\n private slots: { [key: string]: ISlot };\n private fills: { [key: string]: IFill[] };\n private listeners;\n private contextValue: IProviderState;\n constructor(props) {\n super(props);\n\n this.registerSlot = this.registerSlot.bind(this);\n this.registerFill = this.registerFill.bind(this);\n this.unregisterSlot = this.unregisterSlot.bind(this);\n this.unregisterFill = this.unregisterFill.bind(this);\n this.getSlot = this.getSlot.bind(this);\n this.getFills = this.getFills.bind(this);\n this.subscribe = this.subscribe.bind(this);\n\n this.slots = {};\n this.fills = {};\n this.listeners = [];\n this.contextValue = {\n registerSlot: this.registerSlot,\n unregisterSlot: this.unregisterSlot,\n registerFill: this.registerFill,\n unregisterFill: this.unregisterFill,\n getSlot: this.getSlot,\n getFills: this.getFills,\n subscribe: this.subscribe,\n };\n }\n\n public registerSlot(name, slot) {\n const previousSlot = this.slots[name];\n this.slots[name] = slot;\n this.triggerListeners();\n\n // Sometimes the fills are registered after the initial render of slot\n // But before the registerSlot call, we need to rerender the slot\n this.forceUpdateSlot(name);\n\n // If a new instance of a slot is being mounted while another with the\n // same name exists, force its update _after_ the new slot has been\n // assigned into the instance, suich that its own rendering of children\n // will be empty (the new Slot will subsume all fills for this name).\n if (previousSlot) {\n previousSlot.forceUpdate();\n }\n }\n\n public registerFill(name, instance) {\n this.fills[name] = [...(this.fills[name] || []), instance];\n this.forceUpdateSlot(name);\n }\n\n public unregisterSlot(name, instance) {\n // If a previous instance of a Slot by this name unmounts, do nothing,\n // as the slot and its fills should only be removed for the current\n // known instance.\n if (this.slots[name] !== instance) {\n return;\n }\n delete this.slots[name];\n this.triggerListeners();\n }\n\n public unregisterFill(name, instance: IFill) {\n this.fills[name] = without(this.fills[name], instance);\n this.resetFillOccurrence(name);\n this.forceUpdateSlot(name);\n }\n\n public getSlot(name) {\n return this.slots[name];\n }\n\n public getFills(name, slotInstance) {\n // Commented following as we need the Slot to render at multiple places\n // Fills should only be returned for the current instance of the slot\n // in which they occupy.\n // if (this.slots[name] !== slotInstance) {\n // return [];\n // }\n return sortBy(this.fills[name], 'occurrence');\n }\n\n private resetFillOccurrence(name) {\n forEach(this.fills[name], instance => {\n instance.occurrence = undefined;\n });\n }\n\n private forceUpdateSlot(name) {\n const slot = this.getSlot(name);\n\n if (slot) {\n slot.forceUpdate();\n }\n }\n\n private triggerListeners() {\n this.listeners.forEach((listener) => listener());\n }\n\n public subscribe(listener) {\n this.listeners.push(listener);\n\n return () => {\n this.listeners = without(this.listeners, listener);\n };\n }\n\n public render() {\n return <Provider value={this.contextValue}>{this.props.children}</Provider>;\n }\n}\n\n/**\n * React hook returning the active slot given a name.\n *\n * @param {string} name Slot name.\n * @return {Object} Slot object.\n */\nexport const useSlot = ( name ) => {\n const { getSlot, subscribe } = React.useContext(SlotFillContext);\n const [ slot, setSlot ] = React.useState(getSlot(name));\n\n React.useEffect(() => {\n setSlot(getSlot(name));\n const unsubscribe = subscribe(() => {\n setSlot(getSlot(name));\n });\n return unsubscribe;\n }, [name]);\n return slot;\n};\n\n\nexport default SlotFillProvider;\nexport { Consumer };\n","import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { Consumer, ISlot, IFillProps, Name, IContext, useSlot } from './context';\nimport { isFunction } from 'lodash';\nexport namespace IFillComponent {\n export interface Props extends IFillProps, Partial<IContext> {}\n}\n\nlet occurrences = 0;\n\nconst FillComponent: React.SFC<IFillComponent.Props> = ({\n name,\n children,\n registerFill,\n unregisterFill,\n}) => {\n const slot = useSlot(name);\n\n const ref = React.useRef({\n name,\n children,\n occurrence: 0,\n });\n\n if (!ref.current.occurrence) {\n ref.current.occurrence = ++occurrences;\n }\n\n React.useLayoutEffect(() => {\n registerFill(name, ref.current);\n return () => unregisterFill(name, ref.current);\n }, []);\n\n React.useLayoutEffect(() => {\n ref.current.children = children;\n if (slot && !slot.props.bubblesVirtually) {\n slot.forceUpdate();\n }\n }, [children]);\n\n React.useLayoutEffect(() => {\n if (name === ref.current.name) {\n // ignore initial effect\n return;\n }\n unregisterFill(ref.current.name, ref.current);\n ref.current.name = name;\n registerFill(name, ref.current);\n }, [name]);\n\n if (!slot || !slot.node || !slot.props.bubblesVirtually) {\n return null;\n }\n\n // If a function is passed as a child, provide it with the fillProps.\n if (isFunction(children)) {\n children = children(slot.props.fillProps);\n }\n\n return createPortal(children, slot.node);\n};\n\n\ntype IFillComponentProps<T = IFillProps> = T;\n\n// instead of inline with component assignment\ntype IFillComponent<T = IFillProps> = React.FC<IFillComponentProps<T>>;\n\n\nconst Fill: IFillComponent = props => {\n return (\n <Consumer>\n {({ registerFill, unregisterFill }) => (\n <FillComponent\n {...props}\n registerFill={registerFill}\n unregisterFill={unregisterFill}\n />\n )}\n </Consumer>\n );\n};\n\nexport { Fill };\n","import { Slot } from './slot';\nimport { Fill } from './fill';\nimport SlotFillProvider from './context';\n\nexport { Slot, Fill, SlotFillProvider };\n\n","import { isFunction, isString, map, negate } from 'lodash';\nimport * as React from 'react';\nimport { Consumer, ISlotProps, IContext } from './context';\nimport { isEmptyElement } from './utils';\n\nexport namespace ISlotComponent {\n export interface Props extends Partial<IContext>, ISlotProps { }\n}\n\nclass SlotComponent extends React.Component<ISlotComponent.Props, {}> {\n private node: Element;\n constructor(props: ISlotComponent.Props) {\n super(props);\n this.bindNode = this.bindNode.bind(this);\n }\n\n public componentDidMount() {\n const { registerSlot } = this.props;\n registerSlot(this.props.name, this);\n }\n\n public componentWillUnmount() {\n const { unregisterSlot } = this.props;\n unregisterSlot(this.props.name, this);\n }\n\n public componentDidUpdate(prevProps) {\n const { name, unregisterSlot, registerSlot } = this.props;\n\n // Commented following as we need the Slot to render at multiple places\n // if (prevProps.name !== name) {\n // unregisterSlot(prevProps.name);\n // registerSlot(name, this);\n // }\n }\n\n public bindNode(node: Element) {\n this.node = node;\n }\n\n public render() {\n const {\n children,\n name,\n bubblesVirtually = false,\n fillProps = {},\n getFills,\n className,\n } = this.props;\n\n if (bubblesVirtually) {\n return <div ref={this.bindNode} className={className} />;\n }\n\n const fills = map(getFills(name, this), fill => {\n const fillKey = fill.occurrence;\n const fillChildren: React.ReactElement = isFunction(fill.children)\n ? fill.children(fillProps)\n : fill.children;\n\n return React.Children.map(fillChildren, (child, childIndex) => {\n if (!child || isString(child)) {\n return child;\n }\n\n const childKey = `${fillKey}---${child.key || childIndex}`;\n return React.cloneElement(child, { key: childKey });\n });\n }).filter(\n // In some cases fills are rendered only when some conditions apply.\n // This ensures that we only use non-empty fills when rendering, i.e.,\n // it allows us to render wrappers only when the fills are actually present.\n negate(isEmptyElement),\n );\n\n return <>{isFunction(children) ? children(fills as any) : fills}</>;\n }\n}\n\nconst Slot: React.SFC<ISlotProps> = props => {\n return (\n <Consumer>\n {({ registerSlot, unregisterSlot, getFills }) => (\n <SlotComponent\n {...props}\n getFills={getFills}\n registerSlot={registerSlot}\n unregisterSlot={unregisterSlot}\n />\n )}\n </Consumer>\n );\n};\n\nexport { Slot };\n","export * from './isEmptyElement';","import * as React from 'react';\n\nimport { isArray, isNumber, isString } from 'lodash';\n\n/**\n * Checks if the provided element to check.\n *\n * @param element React Component to check.\n * @returns True when an element is considered empty.\n */\n\nexport const isEmptyElement = (element: React.ComponentElement<any, any> | any) => {\n if (isNumber(element)) {\n return false;\n }\n\n if (isString(element) || isArray(element)) {\n return !element.length;\n }\n\n return !element;\n};","export * from './route-utils';\n","import * as React from 'react';\nimport { IRouteData, IMappedData, IMenuData, IMenuItem, IMenuPosition } from '../interfaces';\nimport { RouteProps, Switch } from 'react-router';\nimport { Route } from 'react-router-dom';\nconst defaultSortKeys = require('sort-keys');\n\n\n/* eslint no-useless-escape:0 */\nconst reg = /(((^https?:(?:\\/\\/)?)(?:[-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\\+\\$,\\w]+@)[A-Za-z0-9.-]+)((?:\\/[\\+~%\\/.\\w-_]*)?\\??(?:[-\\+=&;%@.\\w_]*)#?(?:[\\w]*))?)$/g;\n\nexport function isUrl(path) {\n return reg.test(path);\n}\n/**\n * Generates Routes based on the key value, where key has the path of the route and value\n * has rest of the values for building a `<Router ../>` component.\n *\n * @param path: RegExp\n * @param routerData\n * @deprecated\n */\nexport function getRoutes2(path: RegExp, routerData: IRouteData) {\n const routes = Object.keys(routerData).filter(routePath => {\n return routePath.match(path);\n });\n const mappedRoutes: Array<IMappedData> = routes.map(paths => {\n return {\n route: paths,\n ...routerData[paths],\n };\n });\n const root: RouteProps & { routes?: any } = {\n };\n mappedRoutes.forEach(eachRoute => {\n const children = eachRoute.route.split('/');\n children.shift();\n\n // if the route is `/` then add this correction.\n if (eachRoute.route === '/') {\n children.shift();\n children.push('/');\n }\n const depth = children.length;\n let lastNode = root;\n for (let i = 0; i <= depth; i++) {\n const lastIndex = (lastNode.routes || []).findIndex(item => {\n if (eachRoute.route.startsWith(item.path)) {\n return eachRoute.route[item.path.length] === '/';\n }\n });\n if (lastIndex === -1) {\n break;\n }\n lastNode = lastNode.routes[lastIndex];\n // do not overwrite the route's exact value\n lastNode.exact = routerData[lastNode.path as string].hasOwnProperty('exact') ? routerData[lastNode.path as string].exact : false;\n }\n if (!lastNode.routes) {\n lastNode.routes = [];\n }\n const modfiedRoute = formatSlash(eachRoute.route);\n lastNode.routes.push({\n ...eachRoute,\n // route: modfiedRoute,\n path: modfiedRoute,\n exact: routerData[eachRoute.route].hasOwnProperty('exact') ? routerData[eachRoute.route].exact : true,\n component: eachRoute.component,\n });\n });\n\n return root.routes;\n}\n\nconst startWithMoreThanOneSlash = /^(\\/)\\1+/; // for exame `//abc, ///abc, ...`\nconst formatSlash = (route) => {\n // replaced `//` with `/` in the routes.\n return {\n path: route.replace(startWithMoreThanOneSlash, '/'),\n _pathPrefix: (route.match(/^\\/(\\/{1,})/) || ['', ''])[1],\n }\n}\n\nexport function getRoutes(path: string, routeData: IRouteData, authWrapper: (ele, props) => void = null) {\n if (!path.startsWith('/')) {\n throw new Error('Invalid path!');\n }\n let searchPath = path;\n if (path[path.length - 1] !== '/') {\n searchPath = path + '/';\n }\n const routes = Object.keys(routeData).filter(menuPath => {\n return menuPath.indexOf(searchPath) === 0 || menuPath === path;\n });\n\n const mappedMenuPaths: Array<IMappedData> = routes.map(mPath => {\n return {\n route: mPath,\n position: IMenuPosition.MIDDLE,\n ...routeData[mPath],\n };\n });\n const root: RouteProps & { routes?: any } = {\n // just to satisfy types added following\n // TOOD need to correct types so we don't have to enter them.\n name: 'root',\n position: IMenuPosition.LOGO,\n } as any;\n mappedMenuPaths.forEach(routeItem => {\n const children = routeItem.route.split('/');\n children.shift();\n\n // if the route is `/` then add this correction.\n if (routeItem.path === '/') {\n children.shift();\n children.push('/');\n }\n const depth = children.length;\n let lastNode = root;\n for (let i = 0; i < depth; i++) {\n const lastIndex = (lastNode.routes || []).findIndex(item => {\n const routePath = `${item._pathPrefix}${item.path}`;\n\n if (routeItem.route.startsWith(routePath)) {\n return routeItem.route[routePath.length] === '/';\n }\n });\n if (lastIndex === -1) {\n break;\n }\n lastNode = lastNode.routes[lastIndex];\n const lastNodePath = `${(lastNode as any)._pathPrefix}${lastNode.path}`;\n lastNode.exact = routeData[lastNodePath].hasOwnProperty('exact') ? routeData[lastNodePath].exact : false;\n }\n if (!lastNode.routes) {\n lastNode.routes = [];\n }\n const { route: ignore, auth, ...rest } = routeItem;\n const pathParams = formatSlash(routeItem.route);\n\n lastNode.routes.push({\n ...rest,\n // path: formatSlash(routeItem.route),\n // path: routeItem.route,\n ...pathParams,\n exact: routeData[routeItem.route].hasOwnProperty('exact') ? routeData[routeItem.route].exact : true,\n /**\n * Here we are checking whether auth property is being \n * set by this route and if authWrapper is declared\n * which is a high order component that can take a component\n * and its props as argument then perform some \n * computation and return a component\n */\n component: auth && authWrapper\n ? (props) => authWrapper(routeItem.component, props)\n : routeItem.component\n });\n });\n\n return root.routes;\n}\n\nexport function getMenus(path: string, menuData: IMenuData) {\n if (!path.startsWith('/')) {\n throw new Error('Invalid path!');\n }\n let searchPath = path;\n if (path[path.length - 1] !== '/') {\n searchPath = path + '/';\n }\n const routes = Object.keys(menuData).filter(menuPath => {\n return menuPath.indexOf(searchPath) === 0 || menuPath === path;\n });\n\n const mappedMenuPaths: Array<IMenuItem & { route?: string }> = routes.map(mPath => {\n return {\n route: mPath,\n position: IMenuPosition.MIDDLE,\n ...menuData[mPath],\n };\n });\n const root: IMenuItem & { route?: string } = {\n // just to satisfy types added following\n // TOOD need to correct types so we don't have to enter them.\n name: 'root',\n position: IMenuPosition.LOGO,\n };\n mappedMenuPaths.forEach(menutItem => {\n const children = menutItem.route.split('/');\n children.shift();\n const depth = children.length;\n let lastNode = root;\n for (let i = 0; i < depth; i++) {\n const lastIndex = (lastNode.children || []).findIndex(item => {\n if (menutItem.route.startsWith(item.path)) {\n return menutItem.route[item.path.length] === '/';\n }\n });\n if (lastIndex === -1) {\n break;\n }\n lastNode = lastNode.children[lastIndex];\n // do not overwrite the route's exact value\n lastNode.exact = menuData[lastNode.path].hasOwnProperty('exact') ? menuData[lastNode.path].exact : false;\n }\n if (!lastNode.children) {\n lastNode.children = [];\n }\n const { route: ignore, ...rest } = menutItem;\n lastNode.children.push({\n path: menutItem.route,\n ...rest,\n exact: menuData[menutItem.route].hasOwnProperty('exact') ? menuData[menutItem.route].exact : true,\n });\n });\n\n return root.children;\n}\n\n\nexport const renderRoutes = (routes, solidRoutes, extraProps = {}, switchProps = {}) =>\n routes ? (\n <>\n {[\n ...solidRoutes, ...routes.map((route, i) => (\n <Route\n key={route.key || i}\n path={route.path}\n exact={route.exact}\n strict={route.strict}\n render={props =>\n route.render ? (\n route.render({ ...props, ...extraProps, route: route })\n ) : (\n <route.component {...props} {...extraProps} route={route} />\n )\n }\n />\n )),\n ]}\n </>\n ) : null;\n\nexport function sortKeys(routeData) {\n return defaultSortKeys(routeData, { compare})\n}\n\nexport const getSortedRoutes = (path: string, routeData: IRouteData, authWrapper: (\n ele: React.ReactElement,\n props: Record<string, any>\n) => void = null) => {\n const sortedRoutes = sortKeys(routeData);\n return getRoutes(path, sortedRoutes, authWrapper);\n};\n\nconst compare = ((a, b) => {\n const aStr = String(a).toLowerCase();\n const bStr = String(b).toLowerCase();\n // Alphanumeric elements always come before non-alphanumeric elements\n const aIsAlphanumeric = notStartWithColon(aStr);\n const bIsAlphanumeric = notStartWithColon(bStr);\n if (aIsAlphanumeric + bIsAlphanumeric !== -2) {\n if (aIsAlphanumeric * bIsAlphanumeric > 0) {\n if (aIsAlphanumeric === bIsAlphanumeric) {\n return aStr.localeCompare(bStr);\n }\n return aIsAlphanumeric - bIsAlphanumeric;\n }\n if (aIsAlphanumeric > 0) {\n return -1;\n } else if (bIsAlphanumeric > 0) {\n return 1;\n }\n }\n\n // Numerical elements always come before alphabetic elements\n const aNum = Number(a);\n const bNum = Number(b);\n // If both are numerical, sort in the usual fashion (smaller goes first)\n if (aNum && bNum) {\n return aNum - bNum;\n // If a is numerical but b isn't, put a first.\n } else if (aNum) {\n return -1;\n // If b is numerical but a isn't, put b first.\n } else if (bNum) {\n return 1;\n }\n\n // In all other cases, default to usual sort order.\n return aStr.localeCompare(bStr);\n});\n\n\nfunction notStartWithColon(str) {\n const match = (str.match(/^[\\/, *, :]{1,}/) || [-1])[0];\n if (match === -1) {\n return -1;\n }\n var i = match.length;\n let count = 0;\n while (i--) {\n const char = match[i];\n if (char === '/') {\n if(str === '/') { // if it is root only we put at the last\n count = count + 6;\n } else {\n count = count + 3;\n }\n } else if (char === ':') {\n count = count + 1;\n } else if (char === '*') {\n count = count + 2;\n }\n }\n return count;\n}","module.exports = require(\"@common-stack/client-core\");","module.exports = require(\"@wordpress/hooks\");","module.exports = require(\"lodash\");","module.exports = require(\"react\");","module.exports = require(\"react-dom\");","module.exports = require(\"react-router\");","module.exports = require(\"react-router-dom\");","module.exports = require(\"sort-keys\");"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/connector/connector.tsx","webpack:///./src/connector/index.ts","webpack:///./src/index.ts","webpack:///./src/interfaces/index.ts","webpack:///./src/interfaces/menu.tsx","webpack:///./src/inversify/InversifyContext.tsx","webpack:///./src/inversify/index.ts","webpack:///./src/plugin-area/browser-plugin-area.tsx","webpack:///./src/plugin-area/higher-order-component-util.ts","webpack:///./src/plugin-area/index.ts","webpack:///./src/plugin-area/plugin-api.ts","webpack:///./src/plugin-area/plugin-area.tsx","webpack:///./src/plugin-area/plugin-context.tsx","webpack:///./src/route-based-plugin-area/higher-order-component-util.ts","webpack:///./src/route-based-plugin-area/index.ts","webpack:///./src/route-based-plugin-area/plugin-api.ts","webpack:///./src/route-based-plugin-area/plugin-context.tsx","webpack:///./src/route-based-plugin-area/route-based-plugin-area.tsx","webpack:///./src/route/index.ts","webpack:///./src/route/render-routes.tsx","webpack:///./src/router/index.ts","webpack:///./src/router/router.tsx","webpack:///./src/slot-fill/context.tsx","webpack:///./src/slot-fill/fill.tsx","webpack:///./src/slot-fill/index.ts","webpack:///./src/slot-fill/slot.tsx","webpack:///./src/slot-fill/utils/index.ts","webpack:///./src/slot-fill/utils/isEmptyElement.tsx","webpack:///./src/utils/index.ts","webpack:///./src/utils/route-utils.tsx","webpack:///external \"@common-stack/client-core\"","webpack:///external \"@wordpress/hooks\"","webpack:///external \"lodash\"","webpack:///external \"react\"","webpack:///external \"react-dom\"","webpack:///external \"react-router\"","webpack:///external \"react-router-dom\"","webpack:///external \"sort-keys\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":[" \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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","import * as React from 'react';\nimport { AbstractFeature, IModuleShape } from '@common-stack/client-core';\n// import { makeLogger } from '@cdm-logger/client';\nimport { IReactFeature, IReactModuleShape } from '../interfaces';\nimport { getMenus, getSortedRoutes, renderRoutes } from '../utils';\nimport { castArray, map, union, without, sortBy, filter, find } from 'lodash';\nimport { registerPlugin, getPlugins, getPlugin } from '../plugin-area';\n\nconst combine = (features, extractor) => without(union(...map(features,\n res => castArray(extractor(res)))), undefined);\n\nconst getFirst = (features, extractor) => extractor(find(features, (res) => extractor(res)) || {});\n\ntype FeatureParam = IModuleShape & IReactModuleShape;\n\nexport class Feature extends AbstractFeature implements IReactFeature {\n // private logger;\n public componentFillPlugins;\n\n public routerFactory: any;\n public route: any;\n public routeConfig: any;\n public menuConfig: any;\n public authWrapper: (\n ele: React.ReactElement,\n props: Record<string, any>) => void;\n\n constructor(\n feature?: FeatureParam,\n // tslint:disable:trailing-comma\n ...features: FeatureParam[]\n ) {\n super(feature, ...features);\n // this.logger = makeLogger(Feature.name);\n\n\n // Navigation\n this.routerFactory = combine(arguments, (arg: FeatureParam) => arg.routerFactory)\n .slice(-1)\n .pop();\n this.route = combine(arguments, (arg: FeatureParam) => arg.route);\n this.routeConfig = combine(arguments, (arg: FeatureParam) => arg.routeConfig);\n\n this.menuConfig = combine(arguments, (arg: FeatureParam) => arg.menuConfig);\n\n this.componentFillPlugins = this.registerComponentFillPlugins(combine(arguments,\n (arg: FeatureParam) => arg.componentFillPlugins));\n\n this.authWrapper = getFirst(arguments, (arg: FeatureParam) => arg.authWrapper)\n }\n\n /* tslint:disable:jsx-no-lambda */\n private renderRoutes = renderRoutes;\n\n /**\n * Get the routes\n */\n public getRoutes(searchPath?: any) {\n const configuredRoutes = this.getConfiguredRoutes(searchPath);\n const solidRoutes = this.route.map((component: React.ReactElement<any>, idx: number) =>\n React.cloneElement(component, { key: component.props.path }));\n return this.renderRoutes(configuredRoutes, solidRoutes);\n }\n\n /**\n * Get menus\n */\n public getMenus(sortByPriority = true) {\n const menus = this.getConfiguredMenus();\n return this.sortMenus(sortByPriority, menus);\n }\n\n /**\n * get configured routes.\n * Note: It overwrites the any duplicate key with latest loaded key.\n * TODO: Find a way to warn when there are duplicate keys.\n */\n public getConfiguredRoutes(searchPath = '/') {\n return getSortedRoutes(searchPath, Object.assign({}, ...this.routeConfig), this.authWrapper);\n }\n\n\n /**\n * get configured menus.\n * Note: It overwrites the any duplicate key with latest loaded key.\n * TODO: Find a way to warn when there are duplicate keys.\n */\n public getConfiguredMenus(searchPath = '/') {\n const routes = Object.assign({}, ...this.menuConfig);\n return getMenus(searchPath, { ...routes });\n }\n\n get navItems() {\n return this.navItem.map((component: React.ReactElement<any>, idx: number) =>\n React.cloneElement(component, {\n key: component.key ? component.key : idx + this.navItem.length,\n }),\n );\n }\n\n get navItemsRight() {\n return this.navItemsRight.map((component: React.ReactElement<any>, idx: number) =>\n React.cloneElement(component, {\n key: component.key ? component.key : idx + this.navItems.length,\n }),\n );\n }\n\n public getWrappedRoot(root: React.ReactNode, req?: any): React.ReactNode {\n let nestedRoot = root;\n for (const componentFactory of this.rootComponentFactory) {\n nestedRoot = React.cloneElement(componentFactory(req), {}, nestedRoot);\n }\n return nestedRoot;\n }\n\n public getDataRoot(root) {\n let nestedRoot = root;\n for (const component of this.dataRootComponent) {\n nestedRoot = React.createElement(component, {}, nestedRoot);\n }\n return nestedRoot;\n }\n\n public registerLanguages(monaco) {\n for (const func of this.languagesFuncs) {\n func(monaco);\n }\n }\n\n private registerComponentFillPlugins(plugins): void {\n plugins.forEach((i) => {\n const { name } = i;\n const isFound = !!getPlugin(name);\n if (!isFound) {\n registerPlugin(name, i);\n }\n });\n return plugins;\n }\n\n public getComponentFillPlugins() {\n return getPlugins();\n }\n\n\n private sortMenusByPriority = (menus) => {\n return sortBy(menus, (obj) => parseInt(obj.priority, 10));\n }\n\n private sortMenus = (sortByPriority, menus) => {\n if (sortByPriority) {\n const menuData = this.sortMenusByPriority(menus);\n return menuData.map(menu => {\n return {\n ...menu,\n children: menu.children && this.sortMenus(sortByPriority, menu.children),\n };\n });\n } else {\n return menus;\n }\n }\n\n}\n","export * from './connector';\n","export { ClientTypes } from '@common-stack/client-core';\nexport * from './connector';\nexport * from './router';\nexport * from './route';\nexport * from './utils';\nexport * from './interfaces';\nexport * from './plugin-area';\nexport * from './route-based-plugin-area';\nexport * from './slot-fill';\nexport * from './inversify';\n","export * from './router';\nexport * from './extended-feature';\nexport * from './menu';\nexport * from './new-router';\n","import * as React from 'react';\nimport { deprecate } from 'util';\n\n/**\n * @deprecated Will be removed, don't use it. It is replaced by \n */\nexport interface IMenuData {\n [key: string]: {\n name: any;\n position?: IMenuPosition;\n icon?: any;\n authority?: any;\n exact?: boolean;\n strict?: boolean;\n [key: string]: any;\n };\n}\n\n\n/**\n * @deprecated Will be removed, don't use it. Replaced by IMenuDataItem\n */\nexport interface IMenuItem {\n path?: string;\n name: any;\n icon?: any;\n position: IMenuPosition;\n authority?: any;\n loading?: any;\n exact?: boolean;\n strict?: boolean;\n children?: IMenuItem[];\n priority?: number\n}\n\nexport interface IMenuDataItem {\n /**\n * @name submenu\n */\n children?: IMenuDataItem[];\n /**\n * @name Hide child nodes in the menu\n */\n hideChildrenInMenu?: boolean;\n /**\n * @name hideSelf and children in menu\n */\n hideInMenu?: boolean;\n /**\n * @name Icon of the menu\n */\n icon?: React.ReactNode;\n /**\n * @name Internationalization key for custom menus\n */\n locale?: string | false;\n /**\n * @name The name of the menu\n */\n name?: string;\n /**\n * @name is used to calibrate the selected value, default is path\n */\n key?: string;\n /**\n * @name disable menu option\n */\n disabled?: boolean;\n /**\n * @name path\n */\n path?: string;\n /**\n * @name custom parent node\n * @description When this node is selected, the node of parentKeys is also selected\n */\n parentKeys?: string[];\n /**\n * @name hides itself and elevates child nodes to its level\n */\n flatMenu?: boolean;\n\n /**\n * @name position of the Menu\n */\n position?: IMenuPosition;\n\n\n /**\n * @name permissions to determine whether to render menu or not\n */\n authority?: string[];\n\n /**\n * @name priority of the menu to display in the order. Lower values shows first. \n */\n priority?: number;\n\n [key: string]: any;\n}\n\nexport enum IMenuPosition {\n LOGO = 'LOGO',\n UPPER = 'UPPER',\n MIDDLE = 'MIDDLE',\n LOWER = 'LOWER',\n BOTTOM = 'BOTTOM',\n}\n","import * as React from 'react';\nimport { interfaces } from 'inversify';\nimport { IFeature } from '@common-stack/client-core';\n\nexport const InversifyContext = React.createContext<{ container: interfaces.Container | null, modules: IFeature}>({ container: null, modules: null });\n\n\ntype Props = {\n container: interfaces.Container,\n modules: IFeature,\n};\n\nexport const InversifyProvider: React.FC<Props> = (props) => {\n return (\n <InversifyContext.Provider value={{container: props.container, modules: props.modules }}>\n {props.children}\n </InversifyContext.Provider>\n );\n};\n\nexport function useInjection<T>(identifier: interfaces.ServiceIdentifier<T>) {\n const { container } = React.useContext(InversifyContext);\n if (!container) {\n throw new Error('Container is null');\n }\n return container.get<T>(identifier);\n}\n\n","export * from './InversifyContext';\n","import * as React from 'react';\nimport { PluginArea } from './plugin-area';\n\nexport const BrowserPluginArea = () => {\n return <div style={{ display: \"none\" }}>\n <PluginArea />\n </div>\n}","\nimport { camelCase, upperFirst } from 'lodash';\n\n/**\n * Given a function mapping a component to an enhanced component and modifier\n * name, returns the enhanced component augmented with a generated displayName.\n * \n * @param mapComponentToEnhancedComponent Function mapping component to enhanced component.\n * @param modifierName Seed name from which to generated display name.\n * \n * @return Component class with generated display name assigned.\n */\nexport function createHigherOrderComponent(\n mapComponentToEnhancedComponent,\n modifierName\n) {\n return ( OriginalComponent ) => {\n const EnhancedComponent = mapComponentToEnhancedComponent(\n OriginalComponent\n );\n const {\n displayName = OriginalComponent.name || 'Component',\n } = OriginalComponent;\n EnhancedComponent.displayName = `${ upperFirst(\n camelCase(modifierName)\n )}(${displayName})`;\n\n return EnhancedComponent;\n }\n}\n\n","export * from './plugin-area';\nexport * from './plugin-api';\nexport * from './browser-plugin-area'\n","import { ComponentElement } from 'react';\n\nimport { isFunction } from 'lodash';\nimport { applyFilters, doAction } from '@wordpress/hooks';\n\n/**\n * Defined behavior of a plugin type.\n *\n * @typedef ComponentExtension\n *\n *\n */\nexport interface WorbenchExtension {\n name: string;\n icon: string | ComponentElement<any, any> | Function;\n render: React.SFC | any;\n}\n\n/**\n * Plugin definitions keyed by plugin name.\n */\nconst plugins: { [key: string]: WorbenchExtension } = {};\n\n/**\n * Registeres a plugin to the App.\n *\n * @param name A string identifying the plugin. Must be unique across all registered plugins.\n * @param settings The settings for this plugin.\n */\nexport function registerPlugin(name, settings) {\n if (typeof settings !== 'object') {\n console.error('No settings object provided!');\n return null;\n }\n if (typeof name !== 'string') {\n console.error('Plugin names must be strings.');\n return null;\n }\n if (!/^[a-z][a-z0-9-]*$/.test(name)) {\n console.error(\n 'Plugin names must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-pluin\".',\n );\n return null;\n }\n if (plugins[name]) {\n console.error(`Plugin \"${name}\" is alread registered.`);\n }\n settings = applyFilters('plugins.registerPlugin', settings, name);\n\n if (!isFunction(settings.render)) {\n console.error(\n 'The \"render\" property must be specified and must be a valid function.',\n );\n return null;\n }\n plugins[name] = {\n name,\n icon: 'admin-plugins',\n ...settings,\n };\n\n doAction('plugins.pluginRegistered', settings, name);\n\n return settings;\n}\n\n/**\n * Unregisteres a plugin by name.\n * @param name Plugin name.\n *\n * @return The previous plugin settings object, if it has been successfully unregistered; otherwise `undefined`.\n */\nexport function unregisterPlugin(name) {\n if (!plugins[name]) {\n console.error('Plugin \"' + name + '\" is not registered.');\n return;\n }\n const oldPlugin = plugins[name];\n delete plugins[name];\n\n doAction('plugin.pluginUnregistered', oldPlugin, name);\n\n return oldPlugin;\n}\n\n/**\n * Returns a registered plugin settings.\n *\n * @param name Plugin name.\n *\n * @returns Plugin setting.\n */\nexport function getPlugin(name) {\n return plugins[name];\n}\n\n/**\n * Return all registered plugins.\n *\n * @return Plugin settings.\n */\nexport function getPlugins() {\n return Object.values(plugins);\n}\n","import { map } from 'lodash';\nimport * as React from 'react';\nimport { addAction, removeAction } from '@wordpress/hooks';\nimport { PluginContextProvider } from './plugin-context';\nimport { getPlugins } from './plugin-api';\n\n/**\n * A component that renders all plugin fills in a hidden div.\n */\n\nexport class PluginArea extends React.Component<{}, { plugins: { [key: string]: any } }> {\n\n constructor(args) {\n super(args);\n this.setPlugins = this.setPlugins.bind(this);\n this.state = { plugins: [] };\n }\n\n public getCurrentPluginsState() {\n return {\n plugins: map(getPlugins(), ({ icon, name, render }) => {\n return {\n Plugin: render,\n context: {\n name,\n icon,\n },\n };\n }),\n };\n }\n\n public componentDidMount() {\n addAction(\n 'plugins.pluginRegistered',\n 'core/plugins/plugin-area/plugins-registered',\n this.setPlugins,\n );\n addAction(\n 'plugins.pluginUnregistered',\n 'core/plugins/plugin-area/plugins-unregistered',\n this.setPlugins,\n );\n this.setPlugins();\n }\n\n public componentWillUnMount() {\n removeAction(\n 'plugins.pluginRegistered',\n 'core/plugins/plugin-area/plugins-registered',\n );\n removeAction(\n 'plugins.pluginUnregistered',\n 'core/plugins/plugin-area/plugins-unregistered',\n );\n }\n\n public setPlugins() {\n this.setState(this.getCurrentPluginsState);\n }\n\n public render() {\n return (\n <>\n {map(this.state.plugins, ({ context, Plugin }) => (\n <PluginContextProvider\n key={context.name}\n value={context}\n >\n <Plugin />\n </PluginContextProvider>\n ))}\n </>\n );\n }\n}\n","\nimport * as React from 'react';\nimport { createHigherOrderComponent } from './higher-order-component-util';\n\nconst { createContext } = React;\nconst { Consumer, Provider } = createContext({\n name: null,\n icon: null,\n});\n\nexport { Provider as PluginContextProvider };\n\n\n/**\n * A Higher Order Component used to inject Plugin context to the\n * wrapped component.\n *\n * @param mapContextToProps Function called on every context change, expected to return object of\n * props to merge with the component's own props.\n *\n * @return Enhanced component with injected context as props.\n */\nexport const withPluginContext = (mapContextToProps) =>\n createHigherOrderComponent((OriginalComponent) => {\n return (props) => (\n <Consumer>\n {(context) => (\n <OriginalComponent\n {...props}\n {...mapContextToProps(context, props)}\n />\n )}\n </Consumer>\n );\n }, 'withPluginContext');\n","\nimport { camelCase, upperFirst } from 'lodash';\n\n/**\n * Given a function mapping a component to an enhanced component and modifier\n * name, returns the enhanced component augmented with a generated displayName.\n * \n * @param mapComponentToEnhancedComponent Function mapping component to enhanced component.\n * @param modifierName Seed name from which to generated display name.\n * \n * @return Component class with generated display name assigned.\n */\nexport function createHigherOrderComponent(\n mapComponentToEnhancedComponent,\n modifierName\n) {\n return ( OriginalComponent ) => {\n const EnhancedComponent = mapComponentToEnhancedComponent(\n OriginalComponent\n );\n const {\n displayName = OriginalComponent.name || 'Component',\n } = OriginalComponent;\n EnhancedComponent.displayName = `${ upperFirst(\n camelCase(modifierName)\n )}(${displayName})`;\n\n return EnhancedComponent;\n }\n}\n\n","export * from './route-based-plugin-area';\nexport * from './plugin-api';\n","import { ComponentElement } from 'react';\n\nimport { isFunction } from 'lodash';\nimport { applyFilters, doAction } from '@wordpress/hooks';\n\n/**\n * Defined behavior of a plugin type.\n *\n * @typedef ComponentExtension\n *\n *\n */\n\ninterface WorbenchExtension {\n name: string;\n icon: string | ComponentElement<any, any> | Function;\n render: React.SFC | any;\n}\n\n/**\n * Plugin definitions keyed by plugin name.\n */\nconst plugins: { [key: string]: WorbenchExtension } = {};\n\n/**\n * Registeres a plugin to the App.\n *\n * @param name A string identifying the plugin. Must be unique across all registered plugins.\n * @param settings The settings for this plugin.\n */\nexport function registerRouteBasePlugin(name, settings) {\n if (typeof settings !== 'object') {\n console.error('No settings object provided!');\n return null;\n }\n if (typeof name !== 'string') {\n console.error('Plugin names must be strings.');\n return null;\n }\n if (!/^[a-z][a-z0-9-]*$/.test(name)) {\n console.error(\n 'Plugin names must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-pluin\".',\n );\n return null;\n }\n if (plugins[name]) {\n console.error(`Plugin \"${name}\" is alread registered.`);\n }\n settings = applyFilters('plugins.registerPlugin', settings, name);\n\n if (!isFunction(settings.render)) {\n console.error(\n 'The \"render\" property must be specified and must be a valid function.',\n );\n return null;\n }\n plugins[name] = {\n name,\n icon: 'admin-plugins',\n ...settings,\n };\n\n doAction('plugins.pluginRegistered', settings, name);\n\n return settings;\n}\n\n/**\n * Unregisteres a plugin by name.\n * @param name Plugin name.\n *\n * @return The previous plugin settings object, if it has been successfully unregistered; otherwise `undefined`.\n */\nexport function unregisterRouteBasePlugin(name) {\n if (!plugins[name]) {\n console.error('Plugin \"' + name + '\" is not registered.');\n return;\n }\n const oldPlugin = plugins[name];\n delete plugins[name];\n\n doAction('plugin.pluginUnregistered', oldPlugin, name);\n\n return oldPlugin;\n}\n\n/**\n * Returns a registered plugin settings.\n *\n * @param name Plugin name.\n *\n * @returns Plugin setting.\n */\nexport function getRouteBasePlugin(name) {\n return plugins[name];\n}\n\n/**\n * Return all registered plugins.\n *\n * @return Plugin settings.\n */\nexport function getRouteBasePlugins() {\n return Object.values(plugins);\n}\n","\nimport * as React from 'react';\nimport { createHigherOrderComponent } from './higher-order-component-util';\n\nconst { createContext } = React;\nconst { Consumer, Provider } = createContext({\n name: null,\n icon: null,\n});\n\nexport { Provider as PluginContextProvider };\n\n\n/**\n * A Higher Order Component used to inject Plugin context to the\n * wrapped component.\n *\n * @param mapContextToProps Function called on every context change, expected to return object of\n * props to merge with the component's own props.\n *\n * @return Enhanced component with injected context as props.\n */\nexport const withPluginContext = (mapContextToProps) =>\n createHigherOrderComponent((OriginalComponent) => {\n return (props) => (\n <Consumer>\n {(context) => (\n <OriginalComponent\n {...props}\n {...mapContextToProps(context, props)}\n />\n )}\n </Consumer>\n );\n }, 'withPluginContext');\n","import { map } from 'lodash';\nimport * as React from 'react';\nimport { addAction, removeAction } from '@wordpress/hooks';\nimport { PluginContextProvider } from './plugin-context';\nimport { getRouteBasePlugins } from './plugin-api';\n\n/**\n * A component that renders all plugin fills in a hidden div.\n */\n\nexport class RouteBasedPluginArea extends React.Component<{}, { plugins: { [key: string]: any}}> {\n\n constructor(args) {\n super(args);\n this.setPlugins = this.setPlugins.bind(this);\n this.state = {plugins: []};\n }\n\n public getCurrentPluginsState() {\n return {\n plugins: map(getRouteBasePlugins(), ({ icon, name, render }) => {\n return {\n Plugin: render,\n context: {\n name,\n icon,\n },\n };\n }),\n };\n }\n\n public componentDidMount() {\n addAction(\n 'plugins.pluginRegistered',\n 'core/plugins/plugin-area/plugins-registered',\n this.setPlugins,\n );\n addAction(\n 'plugins.pluginUnregistered',\n 'core/plugins/plugin-area/plugins-unregistered',\n this.setPlugins,\n );\n this.setPlugins();\n }\n\n public componentWillUnMount() {\n removeAction(\n 'plugins.pluginRegistered',\n 'core/plugins/plugin-area/plugins-registered',\n );\n removeAction(\n 'plugins.pluginUnregistered',\n 'core/plugins/plugin-area/plugins-unregistered',\n );\n }\n\n public setPlugins() {\n this.setState(this.getCurrentPluginsState);\n }\n\n public render() {\n return (\n <div style={{ display: 'none' }}>\n {map(this.state.plugins, ({ context, Plugin }) => (\n <PluginContextProvider\n key={context.name}\n value={context}\n >\n <Plugin />\n </PluginContextProvider>\n ))}\n </div>\n );\n }\n}\n","export * from './render-routes';\n","import * as React from 'react';\nimport { useEffect, useState, createElement } from 'react';\n// import { Plugin, ApplyPluginsType } from '@umijs/runtime';\nimport { IRoute, IComponent } from '../interfaces/new-router';\nimport { Switch, Route, Redirect } from 'react-router';\n\ninterface IOpts {\n routes: IRoute[];\n plugin?: Plugin;\n extraProps?: object;\n pageInitialProps?: object;\n getInitialPropsCtx?: object;\n isServer?: boolean;\n ssrProps?: object;\n rootRoutes?: IRoute[];\n auth?: boolean,\n authWrapper?: () => void;\n}\n\ninterface IGetRouteElementOpts {\n route: IRoute;\n index: number;\n opts: IOpts;\n}\n\nfunction wrapInitialPropsFetch(route: IRoute, opts: IOpts): IComponent {\n const { component, ...restRouteParams } = route;\n let Component: any = route!.component;\n function ComponentWithInitialPropsFetch(props: any) {\n const [initialProps, setInitialProps] = useState(\n () => (window as any).g_initialProps,\n );\n\n useEffect(() => {\n /**\n * 1. 首次渲染时,此时 window.g_initialProps 变量存在,不需要再走一次 getInitialProps,这样一次 SSR 就走了 2 次 getInitialProps\n * 2. 但是路由切换时,window.getInitialProps 会被赋为 null,这时候就走 getInitialProps 逻辑\n * 3. 如果任何时候都走 2 次,配置 forceInitial: true,这个场景用于静态站点的首屏加载希望走最新数据\n * 4. 开启动态加载后,会在执行 getInitialProps 前预加载下\n */\n const handleGetInitialProps = async () => {\n // preload when enalbe dynamicImport\n if (Component.preload) {\n const preloadComponent = await Component.preload();\n // for test case, really use .default\n Component = preloadComponent.default || preloadComponent;\n }\n\n //@sri not suppported\n // const defaultCtx = {\n // isServer: false,\n // match: props?.match,\n // route,\n // ...(opts.getInitialPropsCtx || {}),\n // ...restRouteParams,\n // };\n //@sri not suppported\n // if (Component?.getInitialProps) {\n // const ctx = await opts.plugin.applyPlugins({\n // key: 'ssr.modifyGetInitialPropsCtx',\n // type: ApplyPluginsType.modify,\n // initialValue: defaultCtx,\n // async: true,\n // });\n\n // const initialProps = await Component!.getInitialProps!(\n // ctx || defaultCtx,\n // );\n // setInitialProps(initialProps);\n // }\n };\n // null 时,一定会触发 getInitialProps 执行\n if (!(window as any).g_initialProps) {\n handleGetInitialProps();\n }\n }, [window.location.pathname, window.location.search]);\n return <Component {...props} {...initialProps} />;\n }\n // flag for having wrappered\n ComponentWithInitialPropsFetch.wrapInitialPropsLoaded = true;\n ComponentWithInitialPropsFetch.displayName = 'ComponentWithInitialPropsFetch';\n return ComponentWithInitialPropsFetch;\n}\n\nfunction render({\n route,\n opts,\n props,\n}: {\n route: IRoute;\n opts: IOpts;\n props: object;\n}) {\n const routes = renderRoutes({\n ...opts,\n routes: route.routes || [],\n rootRoutes: opts.rootRoutes,\n });\n let { component: Component, wrappers } = route;\n if (Component) {\n const defaultPageInitialProps = opts.isServer\n ? {}\n : (window as any).g_initialProps;\n const newProps = {\n ...props,\n ...opts.extraProps,\n ...(opts.pageInitialProps || defaultPageInitialProps),\n route,\n routes: opts.rootRoutes,\n };\n // @ts-ignore\n let ret = <Component {...newProps}>{routes}</Component>;\n\n // route.wrappers\n if (wrappers) {\n let len = wrappers.length - 1;\n while (len >= 0) {\n ret = createElement(wrappers[len], newProps, ret);\n len -= 1;\n }\n }\n\n return ret;\n } else {\n return routes;\n }\n}\n\nfunction getRouteElement({ route, index, opts }: IGetRouteElementOpts) {\n const routeProps = {\n key: route.key || index,\n exact: route.exact,\n strict: route.strict,\n sensitive: route.sensitive,\n path: route.path,\n };\n if (route.redirect) {\n return <Redirect {...routeProps} from={route.path} to={route.redirect} />;\n } else {\n // avoid mount and unmount with url hash change\n // @sri not supproted yet\n // if (\n // // only when SSR config enable\n // opts.ssrProps &&\n // !opts.isServer &&\n // // make sure loaded once\n // !(route.component as any)?.wrapInitialPropsLoaded &&\n // (route.component?.getInitialProps || route.component?.preload)\n // ) {\n // // client Render for enable ssr, but not sure SSR success\n // route.component = wrapInitialPropsFetch(route, opts);\n // }\n return (\n <Route\n {...routeProps}\n render={(props: object) => {\n return render({ route, opts, props });\n }}\n />\n );\n }\n}\n\nfunction renderRoutes(opts: IOpts) {\n return opts.routes ? (\n <Switch>\n {opts.routes.map((route, index) => {\n\n const renderedR = getRouteElement({\n route,\n index,\n opts: {\n ...opts,\n rootRoutes: opts.rootRoutes || opts.routes,\n },\n });\n return renderedR;\n }\n\n )}\n </Switch>\n ) : null;\n}\n\nexport { renderRoutes as renderRoutes2 }\n","export * from './router';\n","import * as React from 'react';\nimport { Switch } from 'react-router-dom';\nimport { Feature } from '../connector';\nimport {IReactFeature} from '../interfaces';\n\nconst routerFactory = (routes) => <Switch>{routes}</Switch>;\n\nexport const FeatureWithRouterFactory = new Feature({\n routerFactory,\n} as IReactFeature);\n","import * as React from 'react';\nimport { sortBy, forEach, without } from 'lodash';\n\nexport interface IFillProps {\n name: Name;\n [key: string]: any;\n}\nexport interface IFill extends React.Component<IFillProps> {\n occurrence: number;\n children: React.ReactNode;\n}\nexport type Name = string | Symbol;\n\nexport interface ISlotProps {\n /**\n * The name of the component. Use a symbol if you want to be 100% sure the Slot\n * will only be filled by a component you create\n */\n name: Name;\n /**\n * Props to be applied to the child Element of every fill which has the same name.\n *\n * If the value is a function, it must have the following signature:\n * (target: Fill, fills: Fill[]) => void;\n *\n * This allows you to access props on the fill which invoked the function\n * by using target.props.something()\n */\n fillProps?: { [key: string]: any };\n /**\n * A an optional function which gets all of the current fills for this slot\n * Allows sorting, or filtering before rendering. An example use-case could\n * be to only show a limited amount of fills.\n *\n * By default Slot injects an unstyled `<div>` element. If you want greater\n * control over presentation use this function.\n *\n * @example\n * <Slot name=\"My.Slot\">\n * {(items) => <Component>{items}</Component>}\n * </Slot>\n */\n children?: (fills: IFill[]) => JSX.Element;\n bubblesVirtually?: boolean;\n /**\n * `Slot` with `bubblesVirtually` set to true also accept an optional `className` to\n * add to the slot container.\n *\n * @type {string}\n * @memberof ISlotProps\n */\n className?: string;\n}\nexport interface ISlot extends React.Component<ISlotProps> {\n node: Element;\n}\n\nexport interface IContext extends IProviderState {}\nconst SlotFillContext = React.createContext<IContext | null>({ // need to add default value otherwise it will fail\n registerSlot: () => {},\n unregisterSlot: () => {},\n registerFill: () => {},\n unregisterFill: () => {},\n getSlot: () => ({}) as any,\n getFills: () => ([]),\n subscribe: () => {},\n});\nconst { Provider, Consumer } = SlotFillContext;\nexport interface IProviderState {\n registerFill: (a: Name, b: any) => void;\n unregisterFill: (a: Name, b: any) => void;\n unregisterSlot: (a: Name, b?: any) => void;\n registerSlot: (a: Name, b?: any) => void;\n getSlot: (a: Name) => ISlot;\n getFills: (a: Name, b?: any) => IFill[] | [];\n subscribe: (listener: any) => void;\n}\n\nclass SlotFillProvider extends React.Component<{}, {}> {\n private slots: { [key: string]: ISlot };\n private fills: { [key: string]: IFill[] };\n private listeners;\n private contextValue: IProviderState;\n constructor(props) {\n super(props);\n\n this.registerSlot = this.registerSlot.bind(this);\n this.registerFill = this.registerFill.bind(this);\n this.unregisterSlot = this.unregisterSlot.bind(this);\n this.unregisterFill = this.unregisterFill.bind(this);\n this.getSlot = this.getSlot.bind(this);\n this.getFills = this.getFills.bind(this);\n this.subscribe = this.subscribe.bind(this);\n\n this.slots = {};\n this.fills = {};\n this.listeners = [];\n this.contextValue = {\n registerSlot: this.registerSlot,\n unregisterSlot: this.unregisterSlot,\n registerFill: this.registerFill,\n unregisterFill: this.unregisterFill,\n getSlot: this.getSlot,\n getFills: this.getFills,\n subscribe: this.subscribe,\n };\n }\n\n public registerSlot(name, slot) {\n const previousSlot = this.slots[name];\n this.slots[name] = slot;\n this.triggerListeners();\n\n // Sometimes the fills are registered after the initial render of slot\n // But before the registerSlot call, we need to rerender the slot\n this.forceUpdateSlot(name);\n\n // If a new instance of a slot is being mounted while another with the\n // same name exists, force its update _after_ the new slot has been\n // assigned into the instance, suich that its own rendering of children\n // will be empty (the new Slot will subsume all fills for this name).\n if (previousSlot) {\n previousSlot.forceUpdate();\n }\n }\n\n public registerFill(name, instance) {\n this.fills[name] = [...(this.fills[name] || []), instance];\n this.forceUpdateSlot(name);\n }\n\n public unregisterSlot(name, instance) {\n // If a previous instance of a Slot by this name unmounts, do nothing,\n // as the slot and its fills should only be removed for the current\n // known instance.\n if (this.slots[name] !== instance) {\n return;\n }\n delete this.slots[name];\n this.triggerListeners();\n }\n\n public unregisterFill(name, instance: IFill) {\n this.fills[name] = without(this.fills[name], instance);\n this.resetFillOccurrence(name);\n this.forceUpdateSlot(name);\n }\n\n public getSlot(name) {\n return this.slots[name];\n }\n\n public getFills(name, slotInstance) {\n // Commented following as we need the Slot to render at multiple places\n // Fills should only be returned for the current instance of the slot\n // in which they occupy.\n // if (this.slots[name] !== slotInstance) {\n // return [];\n // }\n return sortBy(this.fills[name], 'occurrence');\n }\n\n private resetFillOccurrence(name) {\n forEach(this.fills[name], instance => {\n instance.occurrence = undefined;\n });\n }\n\n private forceUpdateSlot(name) {\n const slot = this.getSlot(name);\n\n if (slot) {\n slot.forceUpdate();\n }\n }\n\n private triggerListeners() {\n this.listeners.forEach((listener) => listener());\n }\n\n public subscribe(listener) {\n this.listeners.push(listener);\n\n return () => {\n this.listeners = without(this.listeners, listener);\n };\n }\n\n public render() {\n return <Provider value={this.contextValue}>{this.props.children}</Provider>;\n }\n}\n\n/**\n * React hook returning the active slot given a name.\n *\n * @param {string} name Slot name.\n * @return {Object} Slot object.\n */\nexport const useSlot = ( name ) => {\n const { getSlot, subscribe } = React.useContext(SlotFillContext);\n const [ slot, setSlot ] = React.useState(getSlot(name));\n\n React.useEffect(() => {\n setSlot(getSlot(name));\n const unsubscribe = subscribe(() => {\n setSlot(getSlot(name));\n });\n return unsubscribe;\n }, [name]);\n return slot;\n};\n\n\nexport default SlotFillProvider;\nexport { Consumer };\n","import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { Consumer, ISlot, IFillProps, Name, IContext, useSlot } from './context';\nimport { isFunction } from 'lodash';\nexport namespace IFillComponent {\n export interface Props extends IFillProps, Partial<IContext> {}\n}\n\nlet occurrences = 0;\n\nconst FillComponent: React.SFC<IFillComponent.Props> = ({\n name,\n children,\n registerFill,\n unregisterFill,\n}) => {\n const slot = useSlot(name);\n\n const ref = React.useRef({\n name,\n children,\n occurrence: 0,\n });\n\n if (!ref.current.occurrence) {\n ref.current.occurrence = ++occurrences;\n }\n\n React.useLayoutEffect(() => {\n registerFill(name, ref.current);\n return () => unregisterFill(name, ref.current);\n }, []);\n\n React.useLayoutEffect(() => {\n ref.current.children = children;\n if (slot && !slot.props.bubblesVirtually) {\n slot.forceUpdate();\n }\n }, [children]);\n\n React.useLayoutEffect(() => {\n if (name === ref.current.name) {\n // ignore initial effect\n return;\n }\n unregisterFill(ref.current.name, ref.current);\n ref.current.name = name;\n registerFill(name, ref.current);\n }, [name]);\n\n if (!slot || !slot.node || !slot.props.bubblesVirtually) {\n return null;\n }\n\n // If a function is passed as a child, provide it with the fillProps.\n if (isFunction(children)) {\n children = children(slot.props.fillProps);\n }\n\n return createPortal(children, slot.node);\n};\n\n\ntype IFillComponentProps<T = IFillProps> = T;\n\n// instead of inline with component assignment\ntype IFillComponent<T = IFillProps> = React.FC<IFillComponentProps<T>>;\n\n\nconst Fill: IFillComponent = props => {\n return (\n <Consumer>\n {({ registerFill, unregisterFill }) => (\n <FillComponent\n {...props}\n registerFill={registerFill}\n unregisterFill={unregisterFill}\n />\n )}\n </Consumer>\n );\n};\n\nexport { Fill };\n","import { Slot } from './slot';\nimport { Fill } from './fill';\nimport SlotFillProvider from './context';\n\nexport { Slot, Fill, SlotFillProvider };\n\n","import { isFunction, isString, map, negate } from 'lodash';\nimport * as React from 'react';\nimport { Consumer, ISlotProps, IContext } from './context';\nimport { isEmptyElement } from './utils';\n\nexport namespace ISlotComponent {\n export interface Props extends Partial<IContext>, ISlotProps { }\n}\n\nclass SlotComponent extends React.Component<ISlotComponent.Props, {}> {\n private node: Element;\n constructor(props: ISlotComponent.Props) {\n super(props);\n this.bindNode = this.bindNode.bind(this);\n }\n\n public componentDidMount() {\n const { registerSlot } = this.props;\n registerSlot(this.props.name, this);\n }\n\n public componentWillUnmount() {\n const { unregisterSlot } = this.props;\n unregisterSlot(this.props.name, this);\n }\n\n public componentDidUpdate(prevProps) {\n const { name, unregisterSlot, registerSlot } = this.props;\n\n // Commented following as we need the Slot to render at multiple places\n // if (prevProps.name !== name) {\n // unregisterSlot(prevProps.name);\n // registerSlot(name, this);\n // }\n }\n\n public bindNode(node: Element) {\n this.node = node;\n }\n\n public render() {\n const {\n children,\n name,\n bubblesVirtually = false,\n fillProps = {},\n getFills,\n className,\n } = this.props;\n\n if (bubblesVirtually) {\n return <div ref={this.bindNode} className={className} />;\n }\n\n const fills = map(getFills(name, this), fill => {\n const fillKey = fill.occurrence;\n const fillChildren: React.ReactElement = isFunction(fill.children)\n ? fill.children(fillProps)\n : fill.children;\n\n return React.Children.map(fillChildren, (child, childIndex) => {\n if (!child || isString(child)) {\n return child;\n }\n\n const childKey = `${fillKey}---${child.key || childIndex}`;\n return React.cloneElement(child, { key: childKey });\n });\n }).filter(\n // In some cases fills are rendered only when some conditions apply.\n // This ensures that we only use non-empty fills when rendering, i.e.,\n // it allows us to render wrappers only when the fills are actually present.\n negate(isEmptyElement),\n );\n\n return <>{isFunction(children) ? children(fills as any) : fills}</>;\n }\n}\n\nconst Slot: React.SFC<ISlotProps> = props => {\n return (\n <Consumer>\n {({ registerSlot, unregisterSlot, getFills }) => (\n <SlotComponent\n {...props}\n getFills={getFills}\n registerSlot={registerSlot}\n unregisterSlot={unregisterSlot}\n />\n )}\n </Consumer>\n );\n};\n\nexport { Slot };\n","export * from './isEmptyElement';","import * as React from 'react';\n\nimport { isArray, isNumber, isString } from 'lodash';\n\n/**\n * Checks if the provided element to check.\n *\n * @param element React Component to check.\n * @returns True when an element is considered empty.\n */\n\nexport const isEmptyElement = (element: React.ComponentElement<any, any> | any) => {\n if (isNumber(element)) {\n return false;\n }\n\n if (isString(element) || isArray(element)) {\n return !element.length;\n }\n\n return !element;\n};","export * from './route-utils';\n","import * as React from 'react';\nimport { IRouteData, IMappedData, IMenuData, IMenuItem, IMenuPosition } from '../interfaces';\nimport { RouteProps, Switch } from 'react-router';\nimport { Route } from 'react-router-dom';\nconst defaultSortKeys = require('sort-keys');\n\n\n/* eslint no-useless-escape:0 */\nconst reg = /(((^https?:(?:\\/\\/)?)(?:[-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\\+\\$,\\w]+@)[A-Za-z0-9.-]+)((?:\\/[\\+~%\\/.\\w-_]*)?\\??(?:[-\\+=&;%@.\\w_]*)#?(?:[\\w]*))?)$/g;\n\nexport function isUrl(path) {\n return reg.test(path);\n}\n/**\n * Generates Routes based on the key value, where key has the path of the route and value\n * has rest of the values for building a `<Router ../>` component.\n *\n * @param path: RegExp\n * @param routerData\n * @deprecated\n */\nexport function getRoutes2(path: RegExp, routerData: IRouteData) {\n const routes = Object.keys(routerData).filter(routePath => {\n return routePath.match(path);\n });\n const mappedRoutes: Array<IMappedData> = routes.map(paths => {\n return {\n route: paths,\n ...routerData[paths],\n };\n });\n const root: RouteProps & { routes?: any } = {\n };\n mappedRoutes.forEach(eachRoute => {\n const children = eachRoute.route.split('/');\n children.shift();\n\n // if the route is `/` then add this correction.\n if (eachRoute.route === '/') {\n children.shift();\n children.push('/');\n }\n const depth = children.length;\n let lastNode = root;\n for (let i = 0; i <= depth; i++) {\n const lastIndex = (lastNode.routes || []).findIndex(item => {\n if (eachRoute.route.startsWith(item.path)) {\n return eachRoute.route[item.path.length] === '/';\n }\n });\n if (lastIndex === -1) {\n break;\n }\n lastNode = lastNode.routes[lastIndex];\n // do not overwrite the route's exact value\n lastNode.exact = routerData[lastNode.path as string].hasOwnProperty('exact') ? routerData[lastNode.path as string].exact : false;\n }\n if (!lastNode.routes) {\n lastNode.routes = [];\n }\n const modfiedRoute = formatSlash(eachRoute.route);\n lastNode.routes.push({\n ...eachRoute,\n // route: modfiedRoute,\n path: modfiedRoute,\n exact: routerData[eachRoute.route].hasOwnProperty('exact') ? routerData[eachRoute.route].exact : true,\n component: eachRoute.component,\n });\n });\n\n return root.routes;\n}\n\nconst startWithMoreThanOneSlash = /^(\\/)\\1+/; // for exame `//abc, ///abc, ...`\nconst formatSlash = (route) => {\n // replaced `//` with `/` in the routes.\n return {\n path: route.replace(startWithMoreThanOneSlash, '/'),\n _pathPrefix: (route.match(/^\\/(\\/{1,})/) || ['', ''])[1],\n }\n}\n\nexport function getRoutes(path: string, routeData: IRouteData, authWrapper: (ele, props) => void = null) {\n if (!path.startsWith('/')) {\n throw new Error('Invalid path!');\n }\n let searchPath = path;\n if (path[path.length - 1] !== '/') {\n searchPath = path + '/';\n }\n const routes = Object.keys(routeData).filter(menuPath => {\n return menuPath.indexOf(searchPath) === 0 || menuPath === path;\n });\n\n const mappedMenuPaths: Array<IMappedData> = routes.map(mPath => {\n return {\n route: mPath,\n position: IMenuPosition.MIDDLE,\n ...routeData[mPath],\n };\n });\n const root: RouteProps & { routes?: any } = {\n // just to satisfy types added following\n // TOOD need to correct types so we don't have to enter them.\n name: 'root',\n position: IMenuPosition.LOGO,\n } as any;\n mappedMenuPaths.forEach(routeItem => {\n const children = routeItem.route.split('/');\n children.shift();\n\n // if the route is `/` then add this correction.\n if (routeItem.path === '/') {\n children.shift();\n children.push('/');\n }\n const depth = children.length;\n let lastNode = root;\n for (let i = 0; i < depth; i++) {\n const lastIndex = (lastNode.routes || []).findIndex(item => {\n const routePath = `${item._pathPrefix}${item.path}`;\n\n if (routeItem.route.startsWith(routePath)) {\n return routeItem.route[routePath.length] === '/';\n }\n });\n if (lastIndex === -1) {\n break;\n }\n lastNode = lastNode.routes[lastIndex];\n const lastNodePath = `${(lastNode as any)._pathPrefix}${lastNode.path}`;\n lastNode.exact = routeData[lastNodePath].hasOwnProperty('exact') ? routeData[lastNodePath].exact : false;\n }\n if (!lastNode.routes) {\n lastNode.routes = [];\n }\n const { route: ignore, auth, ...rest } = routeItem;\n const pathParams = formatSlash(routeItem.route);\n\n lastNode.routes.push({\n ...rest,\n // path: formatSlash(routeItem.route),\n // path: routeItem.route,\n ...pathParams,\n exact: routeData[routeItem.route].hasOwnProperty('exact') ? routeData[routeItem.route].exact : true,\n /**\n * Here we are checking whether auth property is being \n * set by this route and if authWrapper is declared\n * which is a high order component that can take a component\n * and its props as argument then perform some \n * computation and return a component\n */\n component: auth && authWrapper\n ? (props) => authWrapper(routeItem.component, props)\n : routeItem.component\n });\n });\n\n return root.routes;\n}\n\nexport function getMenus(path: string, menuData: IMenuData) {\n if (!path.startsWith('/')) {\n throw new Error('Invalid path!');\n }\n let searchPath = path;\n if (path[path.length - 1] !== '/') {\n searchPath = path + '/';\n }\n const routes = Object.keys(menuData).filter(menuPath => {\n return menuPath.indexOf(searchPath) === 0 || menuPath === path;\n });\n\n const mappedMenuPaths: Array<IMenuItem & { route?: string }> = routes.map(mPath => {\n return {\n route: mPath,\n position: IMenuPosition.MIDDLE,\n ...menuData[mPath],\n };\n });\n const root: IMenuItem & { route?: string } = {\n // just to satisfy types added following\n // TOOD need to correct types so we don't have to enter them.\n name: 'root',\n position: IMenuPosition.LOGO,\n };\n mappedMenuPaths.forEach(menutItem => {\n const children = menutItem.route.split('/');\n children.shift();\n const depth = children.length;\n let lastNode = root;\n for (let i = 0; i < depth; i++) {\n const lastIndex = (lastNode.children || []).findIndex(item => {\n if (menutItem.route.startsWith(item.path)) {\n return menutItem.route[item.path.length] === '/';\n }\n });\n if (lastIndex === -1) {\n break;\n }\n lastNode = lastNode.children[lastIndex];\n // do not overwrite the route's exact value\n lastNode.exact = menuData[lastNode.path].hasOwnProperty('exact') ? menuData[lastNode.path].exact : false;\n }\n if (!lastNode.children) {\n lastNode.children = [];\n }\n const { route: ignore, ...rest } = menutItem;\n lastNode.children.push({\n path: menutItem.route,\n ...rest,\n exact: menuData[menutItem.route].hasOwnProperty('exact') ? menuData[menutItem.route].exact : true,\n });\n });\n\n return root.children;\n}\n\n\nexport const renderRoutes = (routes, solidRoutes, extraProps = {}, switchProps = {}) =>\n routes ? (\n <>\n {[\n ...solidRoutes, ...routes.map((route, i) => (\n <Route\n key={route.key || i}\n path={route.path}\n exact={route.exact}\n strict={route.strict}\n render={props =>\n route.render ? (\n route.render({ ...props, ...extraProps, route: route })\n ) : (\n <route.component {...props} {...extraProps} route={route} />\n )\n }\n />\n )),\n ]}\n </>\n ) : null;\n\nexport function sortKeys(routeData) {\n return defaultSortKeys(routeData, { compare})\n}\n\nexport const getSortedRoutes = (path: string, routeData: IRouteData, authWrapper: (\n ele: React.ReactElement,\n props: Record<string, any>\n) => void = null) => {\n const sortedRoutes = sortKeys(routeData);\n return getRoutes(path, sortedRoutes, authWrapper);\n};\n\nconst compare = ((a, b) => {\n const aStr = String(a).toLowerCase();\n const bStr = String(b).toLowerCase();\n // Alphanumeric elements always come before non-alphanumeric elements\n const aIsAlphanumeric = notStartWithColon(aStr);\n const bIsAlphanumeric = notStartWithColon(bStr);\n if (aIsAlphanumeric + bIsAlphanumeric !== -2) {\n if (aIsAlphanumeric * bIsAlphanumeric > 0) {\n if (aIsAlphanumeric === bIsAlphanumeric) {\n return aStr.localeCompare(bStr);\n }\n return aIsAlphanumeric - bIsAlphanumeric;\n }\n if (aIsAlphanumeric > 0) {\n return -1;\n } else if (bIsAlphanumeric > 0) {\n return 1;\n }\n }\n\n // Numerical elements always come before alphabetic elements\n const aNum = Number(a);\n const bNum = Number(b);\n // If both are numerical, sort in the usual fashion (smaller goes first)\n if (aNum && bNum) {\n return aNum - bNum;\n // If a is numerical but b isn't, put a first.\n } else if (aNum) {\n return -1;\n // If b is numerical but a isn't, put b first.\n } else if (bNum) {\n return 1;\n }\n\n // In all other cases, default to usual sort order.\n return aStr.localeCompare(bStr);\n});\n\n\nfunction notStartWithColon(str) {\n const match = (str.match(/^[\\/, *, :]{1,}/) || [-1])[0];\n if (match === -1) {\n return -1;\n }\n var i = match.length;\n let count = 0;\n while (i--) {\n const char = match[i];\n if (char === '/') {\n if(str === '/') { // if it is root only we put at the last\n count = count + 6;\n } else {\n count = count + 3;\n }\n } else if (char === ':') {\n count = count + 1;\n } else if (char === '*') {\n count = count + 2;\n }\n }\n return count;\n}","module.exports = require(\"@common-stack/client-core\");","module.exports = require(\"@wordpress/hooks\");","module.exports = require(\"lodash\");","module.exports = require(\"react\");","module.exports = require(\"react-dom\");","module.exports = require(\"react-router\");","module.exports = require(\"react-router-dom\");","module.exports = require(\"sort-keys\");"],"sourceRoot":""}
|
|
@@ -8,7 +8,15 @@ export interface ICoreRouteData<T> {
|
|
|
8
8
|
strict?: boolean;
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
interface CommonMenuData {
|
|
12
|
+
hideInMenu?: boolean;
|
|
13
|
+
hideChildrenInMenu?: boolean;
|
|
14
|
+
locale?: string | false;
|
|
15
|
+
name?: string;
|
|
16
|
+
key?: string;
|
|
17
|
+
icon?: any;
|
|
18
|
+
}
|
|
19
|
+
export interface IMappedData extends CommonMenuData {
|
|
12
20
|
path?: string;
|
|
13
21
|
component?: any;
|
|
14
22
|
route?: string;
|
|
@@ -18,3 +26,4 @@ export interface IMappedData {
|
|
|
18
26
|
}
|
|
19
27
|
export interface IRouteData extends ICoreRouteData<React.ComponentType<LoadingComponentProps> | (() => null)> {
|
|
20
28
|
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { interfaces } from 'inversify';
|
|
3
|
+
import { IFeature } from '@common-stack/client-core';
|
|
4
|
+
export declare const InversifyContext: React.Context<{
|
|
5
|
+
container: interfaces.Container | null;
|
|
6
|
+
modules: IFeature;
|
|
7
|
+
}>;
|
|
8
|
+
declare type Props = {
|
|
9
|
+
container: interfaces.Container;
|
|
10
|
+
modules: IFeature;
|
|
11
|
+
};
|
|
12
|
+
export declare const InversifyProvider: React.FC<Props>;
|
|
13
|
+
export declare function useInjection<T>(identifier: interfaces.ServiceIdentifier<T>): T;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './InversifyContext';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@common-stack/client-react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.19",
|
|
4
4
|
"description": "browser plugin for git",
|
|
5
5
|
"homepage": "https://github.com/cdmbase/fullstack-pro#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@common-stack/client-core": "^0.1.
|
|
50
|
-
"@common-stack/core": "^0.1.
|
|
49
|
+
"@common-stack/client-core": "^0.1.19",
|
|
50
|
+
"@common-stack/core": "^0.1.19",
|
|
51
51
|
"@wordpress/hooks": "^2.10.0",
|
|
52
52
|
"browser-bunyan": "^1.6.3",
|
|
53
53
|
"history-with-query": "^4.10.4",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"publishConfig": {
|
|
67
67
|
"access": "public"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "07b5a92c5d84b83b96389ee85c2e1174c0ef75c6",
|
|
70
70
|
"typescript": {
|
|
71
71
|
"definition": "lib/index.d.ts"
|
|
72
72
|
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
-
|
|
6
|
-
## [0.1.18](https://github.com/cdmbase/fullstack-pro/compare/v0.1.17...v0.1.18) (2022-01-08)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
### Features
|
|
10
|
-
|
|
11
|
-
* added browser plugin area support ([e4e54cb](https://github.com/cdmbase/fullstack-pro/commit/e4e54cb7e149b23829ceb01a7445cffdeac4be1e))
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## [0.1.17](https://github.com/cdmbase/fullstack-pro/compare/v0.1.16...v0.1.17) (2022-01-08)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
### Bug Fixes
|
|
21
|
-
|
|
22
|
-
* removed div from plugin area ([c4aff19](https://github.com/cdmbase/fullstack-pro/commit/c4aff191275be2c8e108b2e2ac331f06aea86100))
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
## [0.1.16](https://github.com/cdmbase/fullstack-pro/compare/v0.1.15...v0.1.16) (2022-01-05)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
### Features
|
|
32
|
-
|
|
33
|
-
* added slot fill support ([d576e16](https://github.com/cdmbase/fullstack-pro/commit/d576e16fc8630256e9b46d04960a0260bf5d8129))
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
## [0.1.15](https://github.com/cdmbase/fullstack-pro/compare/v0.1.14...v0.1.15) (2022-01-01)
|
|
40
|
-
|
|
41
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
## [0.1.14](https://github.com/cdmbase/fullstack-pro/compare/v0.1.13...v0.1.14) (2021-12-23)
|
|
48
|
-
|
|
49
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
## [0.1.12](https://github.com/cdmbase/fullstack-pro/compare/v0.1.11...v0.1.12) (2021-12-10)
|
|
56
|
-
|
|
57
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
## [0.1.11](https://github.com/cdmbase/fullstack-pro/compare/v0.1.10...v0.1.11) (2021-11-07)
|
|
64
|
-
|
|
65
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
## [0.1.10](https://github.com/cdmbase/fullstack-pro/compare/v0.1.9...v0.1.10) (2021-10-24)
|
|
72
|
-
|
|
73
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
## [0.1.9](https://github.com/cdmbase/fullstack-pro/compare/v0.1.8...v0.1.9) (2021-10-07)
|
|
80
|
-
|
|
81
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
## [0.1.7](https://github.com/cdmbase/fullstack-pro/compare/v0.1.6...v0.1.7) (2021-08-11)
|
|
88
|
-
|
|
89
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
## [0.1.6](https://github.com/cdmbase/fullstack-pro/compare/v0.1.5...v0.1.6) (2021-08-11)
|
|
96
|
-
|
|
97
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
## [0.1.5](https://github.com/cdmbase/fullstack-pro/compare/v0.1.4...v0.1.5) (2021-08-11)
|
|
104
|
-
|
|
105
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
## [0.1.4](https://github.com/cdmbase/fullstack-pro/compare/v0.1.3...v0.1.4) (2021-08-11)
|
|
112
|
-
|
|
113
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
## [0.1.3](https://github.com/cdmbase/fullstack-pro/compare/v0.1.2...v0.1.3) (2021-08-11)
|
|
120
|
-
|
|
121
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
## [0.1.2](https://github.com/cdmbase/fullstack-pro/compare/v0.1.1...v0.1.2) (2021-08-10)
|
|
128
|
-
|
|
129
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
## [0.1.1](https://github.com/cdmbase/fullstack-pro/compare/v0.0.264...v0.1.1) (2021-08-05)
|
|
136
|
-
|
|
137
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
## [0.0.264](https://github.com/cdmbase/fullstack-pro/compare/v0.0.263...v0.0.264) (2021-07-04)
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
### Bug Fixes
|
|
147
|
-
|
|
148
|
-
* props not being sent as argument to auth wrapper ([46efc87](https://github.com/cdmbase/fullstack-pro/commit/46efc874c5bf60050cb42a0418ed0739451ba370))
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
## [0.0.263](https://github.com/cdmbase/fullstack-pro/compare/v0.0.262...v0.0.263) (2021-07-03)
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
### Features
|
|
158
|
-
|
|
159
|
-
* added support for auth wrapper ([2749172](https://github.com/cdmbase/fullstack-pro/commit/2749172303f2b35d56fa4e79aabc88beae24d280)), closes [#1208](https://github.com/cdmbase/fullstack-pro/issues/1208)
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
## [0.0.262](https://github.com/cdmbase/fullstack-pro/compare/v0.0.261...v0.0.262) (2021-06-23)
|
|
166
|
-
|
|
167
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
## [0.0.261](https://github.com/cdmbase/fullstack-pro/compare/v0.0.260...v0.0.261) (2021-06-01)
|
|
174
|
-
|
|
175
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
## [0.0.260](https://github.com/cdmbase/fullstack-pro/compare/v0.0.259...v0.0.260) (2021-05-28)
|
|
182
|
-
|
|
183
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
## [0.0.259](https://github.com/cdmbase/fullstack-pro/compare/v0.0.258...v0.0.259) (2021-05-28)
|
|
190
|
-
|
|
191
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
## [0.0.258](https://github.com/cdmbase/fullstack-pro/compare/v0.0.257...v0.0.258) (2021-05-14)
|
|
198
|
-
|
|
199
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
## [0.0.257](https://github.com/cdmbase/fullstack-pro/compare/v0.0.256...v0.0.257) (2021-05-05)
|
|
206
|
-
|
|
207
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
## [0.0.256](https://github.com/cdmbase/fullstack-pro/compare/v0.0.255...v0.0.256) (2021-05-05)
|
|
214
|
-
|
|
215
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
## [0.0.255](https://github.com/cdmbase/fullstack-pro/compare/v0.0.254...v0.0.255) (2021-04-03)
|
|
222
|
-
|
|
223
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
## [0.0.254](https://github.com/cdmbase/fullstack-pro/compare/v0.0.253...v0.0.254) (2021-03-31)
|
|
230
|
-
|
|
231
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
## [0.0.253](https://github.com/cdmbase/fullstack-pro/compare/v0.0.252...v0.0.253) (2021-03-31)
|
|
238
|
-
|
|
239
|
-
**Note:** Version bump only for package @common-stack/client-react
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
## [0.0.252](https://github.com/cdmbase/fullstack-pro/compare/v0.0.251...v0.0.252) (2021-03-29)
|
|
246
|
-
|
|
247
|
-
**Note:** Version bump only for package @common-stack/client-react
|