piral-breadcrumbs 0.14.3 → 0.14.5-beta.3331

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/esm/create.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as actions from './actions';
2
- import { buildName } from 'piral-core';
2
+ import { buildName, withRootExtension, withAll } from 'piral-core';
3
3
  import { DefaultBreadbrumbItem, DefaultBreadcrumbsContainer } from './default';
4
+ import { Breadcrumbs } from './Breadcrumbs';
4
5
  // Unfortunately `require`d:
5
6
  // * exports are otherwise potentially converted by, e.g., Parcel (see #385)
6
7
  const ptr = require('path-to-regexp');
@@ -27,6 +28,9 @@ function getBreadcrumbs(items) {
27
28
  }
28
29
  return breadcrumbs;
29
30
  }
31
+ function withBreadcrumbs(breadcrumbs) {
32
+ return (state) => (Object.assign(Object.assign({}, state), { components: Object.assign({ BreadcrumbItem: DefaultBreadbrumbItem, BreadcrumbsContainer: DefaultBreadcrumbsContainer }, state.components), registry: Object.assign(Object.assign({}, state.registry), { breadcrumbs }) }));
33
+ }
30
34
  /**
31
35
  * Creates the Pilet API extension for activating breadcrumbs support.
32
36
  */
@@ -34,7 +38,7 @@ export function createBreadcrumbsApi(config = {}) {
34
38
  const { breadcrumbs = [] } = config;
35
39
  return (context) => {
36
40
  context.defineActions(actions);
37
- context.dispatch((state) => (Object.assign(Object.assign({}, state), { components: Object.assign({ BreadcrumbItem: DefaultBreadbrumbItem, BreadcrumbsContainer: DefaultBreadcrumbsContainer }, state.components), registry: Object.assign(Object.assign({}, state.registry), { breadcrumbs: getBreadcrumbs(breadcrumbs) }) })));
41
+ context.dispatch(withAll(withBreadcrumbs(getBreadcrumbs(breadcrumbs)), withRootExtension('piral-breadcrumbs', Breadcrumbs)));
38
42
  return (api, target) => {
39
43
  const pilet = target.name;
40
44
  let next = 0;
package/esm/create.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAG/E,4BAA4B;AAC5B,4EAA4E;AAC5E,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAatC,SAAS,UAAU,CAAC,QAA4B;IAC9C,IAAI,QAAQ,CAAC,OAAO,YAAY,MAAM,EAAE;QACtC,OAAO,QAAQ,CAAC,OAAO,CAAC;KACzB;SAAM,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE;QAC/C,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC9B;SAAM;QACL,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC3B;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAgC;IACtD,MAAM,WAAW,GAAiC,EAAE,CAAC;IACrD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;QAC5B,WAAW,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG;YAC7B,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC7B,QAAQ;SACT,CAAC;KACH;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA0B,EAAE;IAC/D,MAAM,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAEpC,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE/B,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iCACvB,KAAK,KACR,UAAU,kBACR,cAAc,EAAE,qBAAqB,EACrC,oBAAoB,EAAE,2BAA2B,IAC9C,KAAK,CAAC,UAAU,GAErB,QAAQ,kCACH,KAAK,CAAC,QAAQ,KACjB,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,OAE1C,CAAC,CAAC;QAEJ,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YAC1B,IAAI,IAAI,GAAG,CAAC,CAAC;YAEb,OAAO;gBACL,kBAAkB,CAAC,IAAI,EAAE,QAAS;oBAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;wBAC5B,QAAQ,GAAG,IAAI,CAAC;wBAChB,IAAI,GAAG,IAAI,EAAE,CAAC;qBACf;oBAED,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAClC,OAAO,CAAC,kBAAkB,CAAC,EAAE,EAAE;wBAC7B,KAAK;wBACL,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC;wBAC7B,QAAQ;qBACT,CAAC,CAAC;oBACH,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;gBACD,oBAAoB,CAAC,IAAI;oBACvB,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAClC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;gBACnC,CAAC;aACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
package/lib/create.js CHANGED
@@ -4,6 +4,7 @@ exports.createBreadcrumbsApi = void 0;
4
4
  const actions = require("./actions");
5
5
  const piral_core_1 = require("piral-core");
6
6
  const default_1 = require("./default");
7
+ const Breadcrumbs_1 = require("./Breadcrumbs");
7
8
  // Unfortunately `require`d:
8
9
  // * exports are otherwise potentially converted by, e.g., Parcel (see #385)
9
10
  const ptr = require('path-to-regexp');
@@ -30,6 +31,9 @@ function getBreadcrumbs(items) {
30
31
  }
31
32
  return breadcrumbs;
32
33
  }
34
+ function withBreadcrumbs(breadcrumbs) {
35
+ return (state) => (Object.assign(Object.assign({}, state), { components: Object.assign({ BreadcrumbItem: default_1.DefaultBreadbrumbItem, BreadcrumbsContainer: default_1.DefaultBreadcrumbsContainer }, state.components), registry: Object.assign(Object.assign({}, state.registry), { breadcrumbs }) }));
36
+ }
33
37
  /**
34
38
  * Creates the Pilet API extension for activating breadcrumbs support.
35
39
  */
@@ -37,7 +41,7 @@ function createBreadcrumbsApi(config = {}) {
37
41
  const { breadcrumbs = [] } = config;
38
42
  return (context) => {
39
43
  context.defineActions(actions);
40
- context.dispatch((state) => (Object.assign(Object.assign({}, state), { components: Object.assign({ BreadcrumbItem: default_1.DefaultBreadbrumbItem, BreadcrumbsContainer: default_1.DefaultBreadcrumbsContainer }, state.components), registry: Object.assign(Object.assign({}, state.registry), { breadcrumbs: getBreadcrumbs(breadcrumbs) }) })));
44
+ context.dispatch((0, piral_core_1.withAll)(withBreadcrumbs(getBreadcrumbs(breadcrumbs)), (0, piral_core_1.withRootExtension)('piral-breadcrumbs', Breadcrumbs_1.Breadcrumbs)));
41
45
  return (api, target) => {
42
46
  const pilet = target.name;
43
47
  let next = 0;
package/lib/create.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,2CAA0D;AAC1D,uCAA+E;AAG/E,4BAA4B;AAC5B,4EAA4E;AAC5E,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAatC,SAAS,UAAU,CAAC,QAA4B;IAC9C,IAAI,QAAQ,CAAC,OAAO,YAAY,MAAM,EAAE;QACtC,OAAO,QAAQ,CAAC,OAAO,CAAC;KACzB;SAAM,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE;QAC/C,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC9B;SAAM;QACL,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC3B;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAgC;IACtD,MAAM,WAAW,GAAiC,EAAE,CAAC;IACrD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;QAC5B,WAAW,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG;YAC7B,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC7B,QAAQ;SACT,CAAC;KACH;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,SAA0B,EAAE;IAC/D,MAAM,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAEpC,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE/B,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iCACvB,KAAK,KACR,UAAU,kBACR,cAAc,EAAE,+BAAqB,EACrC,oBAAoB,EAAE,qCAA2B,IAC9C,KAAK,CAAC,UAAU,GAErB,QAAQ,kCACH,KAAK,CAAC,QAAQ,KACjB,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,OAE1C,CAAC,CAAC;QAEJ,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YAC1B,IAAI,IAAI,GAAG,CAAC,CAAC;YAEb,OAAO;gBACL,kBAAkB,CAAC,IAAI,EAAE,QAAS;oBAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;wBAC5B,QAAQ,GAAG,IAAI,CAAC;wBAChB,IAAI,GAAG,IAAI,EAAE,CAAC;qBACf;oBAED,MAAM,EAAE,GAAG,IAAA,sBAAS,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAClC,OAAO,CAAC,kBAAkB,CAAC,EAAE,EAAE;wBAC7B,KAAK;wBACL,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC;wBAC7B,QAAQ;qBACT,CAAC,CAAC;oBACH,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;gBACD,oBAAoB,CAAC,IAAI;oBACvB,MAAM,EAAE,GAAG,IAAA,sBAAS,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAClC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;gBACnC,CAAC;aACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AA7CD,oDA6CC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,2CAAmG;AACnG,uCAA+E;AAC/E,+CAA4C;AAG5C,4BAA4B;AAC5B,4EAA4E;AAC5E,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAatC,SAAS,UAAU,CAAC,QAA4B;IAC9C,IAAI,QAAQ,CAAC,OAAO,YAAY,MAAM,EAAE;QACtC,OAAO,QAAQ,CAAC,OAAO,CAAC;KACzB;SAAM,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE;QAC/C,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC9B;SAAM;QACL,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC3B;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAgC;IACtD,MAAM,WAAW,GAAiC,EAAE,CAAC;IACrD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;QAC5B,WAAW,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG;YAC7B,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC7B,QAAQ;SACT,CAAC;KACH;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,eAAe,CAAC,WAAyC;IAChE,OAAO,CAAC,KAAkB,EAAe,EAAE,CAAC,iCACvC,KAAK,KACR,UAAU,kBACR,cAAc,EAAE,+BAAqB,EACrC,oBAAoB,EAAE,qCAA2B,IAC9C,KAAK,CAAC,UAAU,GAErB,QAAQ,kCACH,KAAK,CAAC,QAAQ,KACjB,WAAW,OAEb,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,SAA0B,EAAE;IAC/D,MAAM,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAEpC,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE/B,OAAO,CAAC,QAAQ,CACd,IAAA,oBAAO,EAAC,eAAe,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,IAAA,8BAAiB,EAAC,mBAAmB,EAAE,yBAAW,CAAC,CAAC,CAC3G,CAAC;QAEF,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YAC1B,IAAI,IAAI,GAAG,CAAC,CAAC;YAEb,OAAO;gBACL,kBAAkB,CAAC,IAAI,EAAE,QAAS;oBAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;wBAC5B,QAAQ,GAAG,IAAI,CAAC;wBAChB,IAAI,GAAG,IAAI,EAAE,CAAC;qBACf;oBAED,MAAM,EAAE,GAAG,IAAA,sBAAS,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAClC,OAAO,CAAC,kBAAkB,CAAC,EAAE,EAAE;wBAC7B,KAAK;wBACL,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC;wBAC7B,QAAQ;qBACT,CAAC,CAAC;oBACH,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;gBACD,oBAAoB,CAAC,IAAI;oBACvB,MAAM,EAAE,GAAG,IAAA,sBAAS,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAClC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;gBACnC,CAAC;aACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AApCD,oDAoCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "piral-breadcrumbs",
3
- "version": "0.14.3",
3
+ "version": "0.14.5-beta.3331",
4
4
  "description": "Plugin for creating a breadcrumb manager in Piral.",
5
5
  "keywords": [
6
6
  "piral",
@@ -41,7 +41,7 @@
41
41
  "test": "echo \"Error: run tests from root\" && exit 1"
42
42
  },
43
43
  "devDependencies": {
44
- "piral-core": "^0.14.3"
44
+ "piral-core": "0.14.5-beta.3331"
45
45
  },
46
46
  "dependencies": {
47
47
  "path-to-regexp": "^1.8.0"
@@ -49,5 +49,5 @@
49
49
  "peerDependencies": {
50
50
  "piral-core": "0.14.x"
51
51
  },
52
- "gitHead": "89d2889f717bcbbe5901392ac475d7003e620c02"
52
+ "gitHead": "3db5015a2dbe8d68b87244b4d5ea6c9f84633189"
53
53
  }
@@ -2,7 +2,11 @@ import { Atom, swap } from '@dbeining/react-atom';
2
2
  import { createBreadcrumbsApi } from './create';
3
3
 
4
4
  function createMockContainer() {
5
- const state = Atom.of({});
5
+ const state = Atom.of({
6
+ registry: {
7
+ extensions: {},
8
+ },
9
+ });
6
10
  return {
7
11
  context: {
8
12
  on: jest.fn(),
package/src/create.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as actions from './actions';
2
- import { buildName, PiralPlugin, Dict } from 'piral-core';
2
+ import { buildName, PiralPlugin, Dict, withRootExtension, withAll, GlobalState } from 'piral-core';
3
3
  import { DefaultBreadbrumbItem, DefaultBreadcrumbsContainer } from './default';
4
+ import { Breadcrumbs } from './Breadcrumbs';
4
5
  import { PiletBreadcrumbsApi, BreadcrumbSettings, BreadcrumbRegistration } from './types';
5
6
 
6
7
  // Unfortunately `require`d:
@@ -43,6 +44,21 @@ function getBreadcrumbs(items: Array<BreadcrumbSettings>) {
43
44
  return breadcrumbs;
44
45
  }
45
46
 
47
+ function withBreadcrumbs(breadcrumbs: Dict<BreadcrumbRegistration>) {
48
+ return (state: GlobalState): GlobalState => ({
49
+ ...state,
50
+ components: {
51
+ BreadcrumbItem: DefaultBreadbrumbItem,
52
+ BreadcrumbsContainer: DefaultBreadcrumbsContainer,
53
+ ...state.components,
54
+ },
55
+ registry: {
56
+ ...state.registry,
57
+ breadcrumbs,
58
+ },
59
+ });
60
+ }
61
+
46
62
  /**
47
63
  * Creates the Pilet API extension for activating breadcrumbs support.
48
64
  */
@@ -52,18 +68,9 @@ export function createBreadcrumbsApi(config: DashboardConfig = {}): PiralPlugin<
52
68
  return (context) => {
53
69
  context.defineActions(actions);
54
70
 
55
- context.dispatch((state) => ({
56
- ...state,
57
- components: {
58
- BreadcrumbItem: DefaultBreadbrumbItem,
59
- BreadcrumbsContainer: DefaultBreadcrumbsContainer,
60
- ...state.components,
61
- },
62
- registry: {
63
- ...state.registry,
64
- breadcrumbs: getBreadcrumbs(breadcrumbs),
65
- },
66
- }));
71
+ context.dispatch(
72
+ withAll(withBreadcrumbs(getBreadcrumbs(breadcrumbs)), withRootExtension('piral-breadcrumbs', Breadcrumbs)),
73
+ );
67
74
 
68
75
  return (api, target) => {
69
76
  const pilet = target.name;