piral-breadcrumbs 1.6.2-beta.7457 → 1.6.2

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/create.js CHANGED
@@ -47,34 +47,38 @@ export function createBreadcrumbsApi(config = {}) {
47
47
  return (context) => {
48
48
  context.defineActions(actions);
49
49
  context.dispatch(withAll(withBreadcrumbs(getBreadcrumbs(breadcrumbs)), withRootExtension('piral-breadcrumbs', Breadcrumbs)));
50
+ const registerBcs = (bcs) => {
51
+ context.registerBreadcrumbs(bcs);
52
+ return () => context.unregisterBreadcrumbs(Object.keys(bcs));
53
+ };
50
54
  return (_, target) => {
51
55
  const pilet = target.name;
52
56
  let next = 0;
57
+ const appendBc = (bcs, name, settings) => {
58
+ const id = buildName(pilet, name);
59
+ bcs[id] = {
60
+ pilet,
61
+ matcher: getMatcher(settings),
62
+ settings,
63
+ };
64
+ return bcs;
65
+ };
53
66
  return {
54
67
  registerBreadcrumbs(values) {
55
- const bc = {};
68
+ const bcs = {};
56
69
  for (const value of values) {
57
70
  const { name = next++, ...settings } = value;
58
- const id = buildName(pilet, name);
59
- bc[id] = settings;
71
+ appendBc(bcs, name, settings);
60
72
  }
61
- context.registerBreadcrumbs(bc);
62
- return () => context.unregisterBreadcrumbs(Object.keys(bc));
73
+ return registerBcs(bcs);
63
74
  },
64
75
  registerBreadcrumb(name, settings) {
65
76
  if (typeof name !== 'string') {
66
77
  settings = name;
67
78
  name = next++;
68
79
  }
69
- const id = buildName(pilet, name);
70
- context.registerBreadcrumbs({
71
- [id]: {
72
- pilet,
73
- matcher: getMatcher(settings),
74
- settings,
75
- },
76
- });
77
- return () => context.unregisterBreadcrumbs([id]);
80
+ const bcs = appendBc({}, name, settings);
81
+ return registerBcs(bcs);
78
82
  },
79
83
  unregisterBreadcrumb(name) {
80
84
  const id = buildName(pilet, name);
package/lib/create.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "piral-breadcrumbs",
3
- "version": "1.6.2-beta.7457",
3
+ "version": "1.6.2",
4
4
  "description": "Plugin for creating a breadcrumb manager in Piral.",
5
5
  "keywords": [
6
6
  "piral",
@@ -51,8 +51,8 @@
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/react": "^18.0.0",
54
- "piral-core": "1.6.2-beta.7457",
54
+ "piral-core": "^1.6.2",
55
55
  "react": "^18.0.0"
56
56
  },
57
- "gitHead": "e55d0f15d0dd1a34ac513ba190843e5eb89745b0"
57
+ "gitHead": "aedfcc53cd8a3559e04674672dcdbc665762e200"
58
58
  }
@@ -1 +1 @@
1
- (()=>{var F=Object.create;var f=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var S=r=>f(r,"__esModule",{value:!0});var d=(r=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(r,{get:(e,t)=>(typeof require!="undefined"?require:e)[t]}):r)(function(r){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var z=(r,e)=>{S(r);for(var t in e)f(r,t,{get:e[t],enumerable:!0})},Z=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of $(e))!O.call(r,n)&&n!=="default"&&f(r,n,{get:()=>e[n],enumerable:!(t=M(e,n))||t.enumerable});return r},b=r=>Z(S(f(r!=null?F(K(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var m=b(d("react")),G=b(d("piral-core"));var R=b(d("piral-core")),A=(0,R.getPiralComponent)("BreadcrumbsContainer"),D=(0,R.getPiralComponent)("BreadcrumbItem");var I=b(d("piral-core"));function q(r,e){let[t]=r.filter(n=>n.matcher.test(e));return t}function H(r,e){let t=e.split("/");for(;t.length>1;){t.pop();let n=t.join("/"),s=B(r,n);if(s)return s}}function B(r,e){if(e)return q(r,e)||H(r,e)}function E(r){let e=(0,I.useGlobalState)(n=>n.registry.breadcrumbs),t=Object.keys(e).map(n=>e[n]);if(t.length>0){let n=B(t,r);if(n){let s=[n],a=B(t,n.settings.parent);for(;a!==void 0;)s.push(a),a=B(t,a.settings.parent);return s.reverse()}}return[]}var k=/:(([A-Za-z0-9_]+)\*?)/g;function J(r,e,t){return typeof r=="function"?r({path:e,params:t}):r}function L(){let{navigation:r}=(0,G.useGlobalStateContext)(),[e,t]=m.useState(r.path);return m.useEffect(()=>r.listen(()=>{t(r.path)}),[]),e}function Q(r){let e=[],t;for(;t=k.exec(r);)e.push(t[2]);return e}function T(r,e){let t={};if(r){let s=r.matcher.exec(e);if(s){let a=Q(r.settings.path);for(let o=0;o<a.length;o++)t[a[o]]=s[o+1]}}return t}function U(r,e){return m.useMemo(()=>T(r,e),[r,e])}var x=()=>{let r=L(),e=E(r),t=e.length-1,n=U(e[t],r),s=e.map(({settings:a},o)=>{let{title:u,path:i,...p}=a,h=`bc_${o}_${a.path}`,y=o===t,l=i.replace(k,(j,rr,C)=>C in n?n[C]||"":j);return m.createElement(D,{key:h,current:y,path:l,...p},J(u,l,n))});return m.createElement(A,{children:s})};x.displayName="Breadcrumbs";var P={};z(P,{registerBreadcrumbs:()=>V,unregisterBreadcrumbs:()=>W});function V(r,e){r.dispatch(t=>({...t,registry:{...t.registry,breadcrumbs:{...t.registry.breadcrumbs,...e}}}))}function W(r,e){r.dispatch(t=>({...t,registry:{...t.registry,breadcrumbs:e.reduce((n,s)=>{let{[s]:a,...o}=n;return o},t.registry.breadcrumbs)}}))}var c=b(d("piral-core"));var w=b(d("react")),g=b(d("piral-core")),_=r=>w.createElement(g.ExtensionSlot,{name:"breadcrumbs",params:r,empty:()=>(0,g.defaultRender)(r.children,"default_breadcrumbs")}),v=r=>(0,g.defaultRender)(r.children);function N(r){return r.matcher instanceof RegExp?r.matcher:typeof r.matcher=="string"?(0,c.createRouteMatcher)(r.matcher):(0,c.createRouteMatcher)(r.path)}function X(r){let e={},t=0;for(let n of r)e[`global-${t++}`]={pilet:void 0,matcher:N(n),settings:n};return e}function Y(r){return e=>({...e,components:{BreadcrumbItem:v,BreadcrumbsContainer:_,...e.components},registry:{...e.registry,breadcrumbs:r}})}function pr(r={}){let{breadcrumbs:e=[]}=r;return t=>(t.defineActions(P),t.dispatch((0,c.withAll)(Y(X(e)),(0,c.withRootExtension)("piral-breadcrumbs",x))),(n,s)=>{let a=s.name,o=0;return{registerBreadcrumbs(u){let i={};for(let p of u){let{name:h=o++,...y}=p,l=(0,c.buildName)(a,h);i[l]=y}return t.registerBreadcrumbs(i),()=>t.unregisterBreadcrumbs(Object.keys(i))},registerBreadcrumb(u,i){typeof u!="string"&&(i=u,u=o++);let p=(0,c.buildName)(a,u);return t.registerBreadcrumbs({[p]:{pilet:a,matcher:N(i),settings:i}}),()=>t.unregisterBreadcrumbs([p])},unregisterBreadcrumb(u){let i=(0,c.buildName)(a,u);t.unregisterBreadcrumbs([i])}}})}})();
1
+ (()=>{var F=Object.create;var h=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var A=r=>h(r,"__esModule",{value:!0});var b=(r=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(r,{get:(e,t)=>(typeof require!="undefined"?require:e)[t]}):r)(function(r){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var z=(r,e)=>{A(r);for(var t in e)h(r,t,{get:e[t],enumerable:!0})},Z=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of $(e))!O.call(r,n)&&n!=="default"&&h(r,n,{get:()=>e[n],enumerable:!(t=M(e,n))||t.enumerable});return r},p=r=>Z(A(h(r!=null?F(K(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var m=p(b("react")),k=p(b("piral-core"));var x=p(b("piral-core")),D=(0,x.getPiralComponent)("BreadcrumbsContainer"),I=(0,x.getPiralComponent)("BreadcrumbItem");var E=p(b("piral-core"));function q(r,e){let[t]=r.filter(n=>n.matcher.test(e));return t}function H(r,e){let t=e.split("/");for(;t.length>1;){t.pop();let n=t.join("/"),a=y(r,n);if(a)return a}}function y(r,e){if(e)return q(r,e)||H(r,e)}function G(r){let e=(0,E.useGlobalState)(n=>n.registry.breadcrumbs),t=Object.keys(e).map(n=>e[n]);if(t.length>0){let n=y(t,r);if(n){let a=[n],i=y(t,n.settings.parent);for(;i!==void 0;)a.push(i),i=y(t,i.settings.parent);return a.reverse()}}return[]}var w=/:(([A-Za-z0-9_]+)\*?)/g;function J(r,e,t){return typeof r=="function"?r({path:e,params:t}):r}function L(){let{navigation:r}=(0,k.useGlobalStateContext)(),[e,t]=m.useState(r.path);return m.useEffect(()=>r.listen(()=>{t(r.path)}),[]),e}function Q(r){let e=[],t;for(;t=w.exec(r);)e.push(t[2]);return e}function T(r,e){let t={};if(r){let a=r.matcher.exec(e);if(a){let i=Q(r.settings.path);for(let o=0;o<i.length;o++)t[i[o]]=a[o+1]}}return t}function U(r,e){return m.useMemo(()=>T(r,e),[r,e])}var P=()=>{let r=L(),e=G(r),t=e.length-1,n=U(e[t],r),a=e.map(({settings:i},o)=>{let{title:f,path:B,...s}=i,c=`bc_${o}_${i.path}`,d=o===t,g=B.replace(w,(R,rr,S)=>S in n?n[S]||"":R);return m.createElement(I,{key:c,current:d,path:g,...s},J(f,g,n))});return m.createElement(D,{children:a})};P.displayName="Breadcrumbs";var C={};z(C,{registerBreadcrumbs:()=>V,unregisterBreadcrumbs:()=>W});function V(r,e){r.dispatch(t=>({...t,registry:{...t.registry,breadcrumbs:{...t.registry.breadcrumbs,...e}}}))}function W(r,e){r.dispatch(t=>({...t,registry:{...t.registry,breadcrumbs:e.reduce((n,a)=>{let{[a]:i,...o}=n;return o},t.registry.breadcrumbs)}}))}var u=p(b("piral-core"));var _=p(b("react")),l=p(b("piral-core")),v=r=>_.createElement(l.ExtensionSlot,{name:"breadcrumbs",params:r,empty:()=>(0,l.defaultRender)(r.children,"default_breadcrumbs")}),N=r=>(0,l.defaultRender)(r.children);function j(r){return r.matcher instanceof RegExp?r.matcher:typeof r.matcher=="string"?(0,u.createRouteMatcher)(r.matcher):(0,u.createRouteMatcher)(r.path)}function X(r){let e={},t=0;for(let n of r)e[`global-${t++}`]={pilet:void 0,matcher:j(n),settings:n};return e}function Y(r){return e=>({...e,components:{BreadcrumbItem:N,BreadcrumbsContainer:v,...e.components},registry:{...e.registry,breadcrumbs:r}})}function pr(r={}){let{breadcrumbs:e=[]}=r;return t=>{t.defineActions(C),t.dispatch((0,u.withAll)(Y(X(e)),(0,u.withRootExtension)("piral-breadcrumbs",P)));let n=a=>(t.registerBreadcrumbs(a),()=>t.unregisterBreadcrumbs(Object.keys(a)));return(a,i)=>{let o=i.name,f=0,B=(s,c,d)=>{let g=(0,u.buildName)(o,c);return s[g]={pilet:o,matcher:j(d),settings:d},s};return{registerBreadcrumbs(s){let c={};for(let d of s){let{name:g=f++,...R}=d;B(c,g,R)}return n(c)},registerBreadcrumb(s,c){typeof s!="string"&&(c=s,s=f++);let d=B({},s,c);return n(d)},unregisterBreadcrumb(s){let c=(0,u.buildName)(o,s);t.unregisterBreadcrumbs([c])}}}}}})();
package/src/create.ts CHANGED
@@ -68,22 +68,35 @@ export function createBreadcrumbsApi(config: DashboardConfig = {}): PiralPlugin<
68
68
  withAll(withBreadcrumbs(getBreadcrumbs(breadcrumbs)), withRootExtension('piral-breadcrumbs', Breadcrumbs)),
69
69
  );
70
70
 
71
+ const registerBcs = (bcs: Dict<BreadcrumbRegistration>) => {
72
+ context.registerBreadcrumbs(bcs);
73
+ return () => context.unregisterBreadcrumbs(Object.keys(bcs));
74
+ };
75
+
71
76
  return (_, target) => {
72
77
  const pilet = target.name;
73
78
  let next = 0;
74
79
 
80
+ const appendBc = (bcs: Dict<BreadcrumbRegistration>, name: string | number, settings: BreadcrumbSettings) => {
81
+ const id = buildName(pilet, name);
82
+ bcs[id] = {
83
+ pilet,
84
+ matcher: getMatcher(settings),
85
+ settings,
86
+ };
87
+ return bcs;
88
+ };
89
+
75
90
  return {
76
91
  registerBreadcrumbs(values) {
77
- const bc = {};
92
+ const bcs: Dict<BreadcrumbRegistration> = {};
78
93
 
79
94
  for (const value of values) {
80
95
  const { name = next++, ...settings } = value;
81
- const id = buildName(pilet, name);
82
- bc[id] = settings;
96
+ appendBc(bcs, name, settings);
83
97
  }
84
98
 
85
- context.registerBreadcrumbs(bc);
86
- return () => context.unregisterBreadcrumbs(Object.keys(bc));
99
+ return registerBcs(bcs);
87
100
  },
88
101
  registerBreadcrumb(name, settings?) {
89
102
  if (typeof name !== 'string') {
@@ -91,15 +104,8 @@ export function createBreadcrumbsApi(config: DashboardConfig = {}): PiralPlugin<
91
104
  name = next++;
92
105
  }
93
106
 
94
- const id = buildName(pilet, name);
95
- context.registerBreadcrumbs({
96
- [id]: {
97
- pilet,
98
- matcher: getMatcher(settings),
99
- settings,
100
- },
101
- });
102
- return () => context.unregisterBreadcrumbs([id]);
107
+ const bcs = appendBc({}, name, settings);
108
+ return registerBcs(bcs);
103
109
  },
104
110
  unregisterBreadcrumb(name) {
105
111
  const id = buildName(pilet, name);