dinocollab-shared 1.2.15 → 1.2.17

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.
@@ -0,0 +1,2 @@
1
+ var r=-1,a=10;export{r as MAX_ITEMS,a as MAX_LINKS};
2
+ //# sourceMappingURL=configs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configs.js","sources":["../../src/cart/configs.ts"],"sourcesContent":["/**\r\n * Maximum number of distinct items allowed in the cart.\r\n * A value of -1 indicates no limit.\r\n */\r\nexport const MAX_ITEMS: number = -1\r\n\r\n/**\r\n * Maximum number of links allowed per cart item.\r\n * A value of -1 indicates no limit.\r\n */\r\nexport const MAX_LINKS: number = 10\r\n"],"names":["MAX_ITEMS","MAX_LINKS"],"mappings":"AAIaA,IAAAA,GAAoB,EAMpBC,EAAoB"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as e,createClass as o,toConsumableArray as r,objectSpread2 as t,classCallCheck as a}from"../_virtual/_rollupPluginBabelHelpers.js";import{createObjectSingleton as l}from"dinocollab-core/utils";import{CartEventStore as i}from"./event-store.js";var n=o(function o(){a(this,o),e(this,"localStorageKey","__cart_default__"),e(this,"store",new i)}),s=function(){function e(){a(this,e)}return o(e,[{key:"initialize",value:function(){e.provider.store.emit("requestState",{})}},{key:"subscribe",value:function(o,r){return e.provider.store.subscribe(o,r)}},{key:"getCarts",value:function(){var e;return null!==(e=this.loadFromLocalStorage().items)&&void 0!==e?e:[]}},{key:"addToCart",value:function(e){var o,t=this.loadFromLocalStorage(),a=Array.isArray(e)?e:[e],l=[].concat(r(null!==(o=t.items)&&void 0!==o?o:[]),r(a));this.saveToLocalStorage(l)}},{key:"removeFromCart",value:function(e){var o,r=this.loadFromLocalStorage(),t=Array.isArray(e)?e:[e],a=(null!==(o=r.items)&&void 0!==o?o:[]).filter(function(e){return!t.some(function(o){return o.ProductId===e.ProductId})});this.saveToLocalStorage(a)}},{key:"updateCart",value:function(e,o){var r,a=(null!==(r=this.loadFromLocalStorage().items)&&void 0!==r?r:[]).map(function(r){return r.ProductId===e?t(t({},r),o):r});this.saveToLocalStorage(a)}},{key:"updateOrAddCart",value:function(e,o){var a,l=this.loadFromLocalStorage(),i=(null!==(a=l.items)&&void 0!==a?a:[]).findIndex(function(o){return o.ProductId===e});if(-1!==i){var n,s=r(null!==(n=l.items)&&void 0!==n?n:[]);s[i]=t(t({},s[i]),o),this.saveToLocalStorage(s)}else this.addToCart(t({ProductId:e},o))}},{key:"clearCart",value:function(){this.saveToLocalStorage([])}},{key:"loadFromLocalStorage",value:function(){var o={version:"1.0",items:[]};try{if("undefined"!=typeof globalThis&&globalThis.localStorage){var r,t=localStorage.getItem(e.provider.localStorageKey),a=t?JSON.parse(t):null;Boolean(null==a||null===(r=a.items)||void 0===r?void 0:r.length)&&(o=a)}}catch(e){console.error("Error loading carts from localStorage:",e)}return o}},{key:"saveToLocalStorage",value:function(o){if("undefined"!=typeof globalThis&&globalThis.localStorage)if(e.provider.localStorageKey){var r={version:"1.0",items:o};localStorage.setItem(e.provider.localStorageKey,JSON.stringify(r)),e.provider.store.emit("stateChange",{items:o})}else console.warn("No localStorageKey provided, skipping storage")}}],[{key:"provider",get:function(){var o;return null!==(o=l(e.key_provider).get())&&void 0!==o?o:new n}},{key:"setProvider",value:function(o){l(e.key_provider).set(null!=o?o:new n)}},{key:"setLocalStorageKey",value:function(o){var r=e.provider;r.localStorageKey=o,e.setProvider(r)}}])}();e(s,"key_provider","__cart_key_provider__");var u=new s;export{s as CartService,u as cartService};
1
+ import{defineProperty as e,createClass as o,toConsumableArray as r,objectSpread2 as t,classCallCheck as a}from"../_virtual/_rollupPluginBabelHelpers.js";import{ApiAlertContext as i}from"dinocollab-core/api-context";import{createObjectSingleton as l,tryParseArray as n}from"dinocollab-core/utils";import{CartEventStore as s}from"./event-store.js";import{MAX_LINKS as u,MAX_ITEMS as v}from"./configs.js";var c=o(function o(){a(this,o),e(this,"localStorageKey","__cart_default__"),e(this,"maxLinks",u),e(this,"maxItems",v),e(this,"store",new s)}),d=function(){function s(){a(this,s),e(this,"isValidCart",function(e){var o=s.provider.maxItems,r=s.provider.maxLinks,t=!0;o>-1&&(t=e.items.length<=o);var a=!0;return r>-1&&(a=e.items.every(function(e){return n(e.SocialUrl,[]).length<=r})),t&&a})}return o(s,[{key:"initialize",value:function(){var e;null===(e=s.provider.store)||void 0===e||e.emit("requestState",{})}},{key:"subscribe",value:function(e,o){var r;return null===(r=s.provider.store)||void 0===r?void 0:r.subscribe(e,o)}},{key:"getCarts",value:function(){var e;return null!==(e=this.loadFromLocalStorage().items)&&void 0!==e?e:[]}},{key:"addToCart",value:function(e){var o,t=this.loadFromLocalStorage(),a=Array.isArray(e)?e:[e],i=[].concat(r(null!==(o=t.items)&&void 0!==o?o:[]),r(a));this.saveToLocalStorage(i)}},{key:"removeFromCart",value:function(e){var o,r=this.loadFromLocalStorage(),t=Array.isArray(e)?e:[e],a=(null!==(o=r.items)&&void 0!==o?o:[]).filter(function(e){return!t.some(function(o){return o.ProductId===e.ProductId})});this.saveToLocalStorage(a)}},{key:"updateCart",value:function(e,o){var r,a=(null!==(r=this.loadFromLocalStorage().items)&&void 0!==r?r:[]).map(function(r){return r.ProductId===e?t(t({},r),o):r});this.saveToLocalStorage(a)}},{key:"updateOrAddCart",value:function(e,o){var a,i=this.loadFromLocalStorage(),l=(null!==(a=i.items)&&void 0!==a?a:[]).findIndex(function(o){return o.ProductId===e});if(-1!==l){var n,s=r(null!==(n=i.items)&&void 0!==n?n:[]);s[l]=t(t({},s[l]),o),this.saveToLocalStorage(s)}else this.addToCart(t({ProductId:e},o))}},{key:"clearCart",value:function(){this.saveToLocalStorage([])}},{key:"loadFromLocalStorage",value:function(){var e={version:"1.0",items:[]};try{if("undefined"!=typeof globalThis&&globalThis.localStorage){var o,r=localStorage.getItem(s.provider.localStorageKey),t=r?JSON.parse(r):null;Boolean(null==t||null===(o=t.items)||void 0===o?void 0:o.length)&&(e=t)}}catch(e){console.error("Error loading carts from localStorage:",e)}return e}},{key:"saveToLocalStorage",value:function(e){if(this.isValidCart({version:"1.0",items:e})){if("undefined"!=typeof globalThis&&globalThis.localStorage)if(s.provider.localStorageKey){var o,r={version:"1.0",items:e};localStorage.setItem(s.provider.localStorageKey,JSON.stringify(r)),null===(o=s.provider.store)||void 0===o||o.emit("stateChange",{items:e})}else console.warn("No localStorageKey provided, skipping storage")}else this.notifyValidationError()}},{key:"notifyValidationError",value:function(){var e,o=s.provider.maxItems,r=s.provider.maxLinks,t=["Max items: ".concat(o>-1?o:"unlimited"),"Max links per item: ".concat(r>-1?r:"unlimited")];null===(e=i.ApiAlert)||void 0===e||e.PushInfo("Cart limit exceeded. ".concat(t.join(", "),". Please review your cart."))}}],[{key:"provider",get:function(){var e;return null!==(e=l(s.key_provider).get())&&void 0!==e?e:new c}},{key:"setProvider",value:function(e){l(s.key_provider).set(null!=e?e:new c)}},{key:"setLocalStorageKey",value:function(e){var o=s.provider;o.localStorageKey=e,s.setProvider(o)}},{key:"setOptions",value:function(e){void 0!==e.maxItems&&(s.provider.maxItems=e.maxItems),void 0!==e.maxLinks&&(s.provider.maxLinks=e.maxLinks),s.setProvider(s.provider)}}])}();e(d,"key_provider","__cart_key_provider__");var m=new d;export{d as CartService,m as cartService};
2
2
  //# sourceMappingURL=service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sources":["../../src/cart/service.ts"],"sourcesContent":["import { createObjectSingleton } from 'dinocollab-core/utils'\r\nimport { ICartItem } from './types'\r\nimport { CartEventStore } from './event-store'\r\n\r\nexport interface ICartMetadata<T extends ICartItem = ICartItem> {\r\n version: string\r\n items: T[]\r\n}\r\n\r\nexport interface ICartProvider {\r\n localStorageKey: string\r\n store: CartEventStore\r\n}\r\n\r\nclass CartProviderDefault implements ICartProvider {\r\n localStorageKey = '__cart_default__'\r\n store = new CartEventStore()\r\n}\r\n\r\nexport class CartService<T extends ICartItem = ICartItem> {\r\n static key_provider = '__cart_key_provider__'\r\n static get provider(): ICartProvider {\r\n const ObjectProvider = createObjectSingleton<ICartProvider>(CartService.key_provider)\r\n return ObjectProvider.get() ?? new CartProviderDefault()\r\n }\r\n static setProvider(provider: ICartProvider) {\r\n const ObjectProvider = createObjectSingleton<ICartProvider>(CartService.key_provider)\r\n ObjectProvider.set(provider ?? new CartProviderDefault())\r\n }\r\n static setLocalStorageKey(key: string) {\r\n const provider = CartService.provider\r\n provider.localStorageKey = key\r\n CartService.setProvider(provider)\r\n }\r\n\r\n initialize() {\r\n CartService.provider.store.emit('requestState', {})\r\n }\r\n\r\n subscribe(event: string, callback: (...args: any[]) => void) {\r\n return CartService.provider.store.subscribe(event as any, callback as any)\r\n }\r\n\r\n getCarts(): T[] {\r\n const storedItems = this.loadFromLocalStorage()\r\n return storedItems.items ?? []\r\n }\r\n\r\n addToCart(cartItem: T | T[]): void {\r\n const storedItems = this.loadFromLocalStorage()\r\n const itemsToAdd = Array.isArray(cartItem) ? cartItem : [cartItem]\r\n const updatedItems = [...(storedItems.items ?? []), ...itemsToAdd]\r\n this.saveToLocalStorage(updatedItems)\r\n }\r\n\r\n removeFromCart(cartItem: T | T[]): void {\r\n const storedItems = this.loadFromLocalStorage()\r\n const itemsToRemove = Array.isArray(cartItem) ? cartItem : [cartItem]\r\n const updatedItems = (storedItems.items ?? []).filter((x) => !itemsToRemove.some((y) => y.ProductId === x.ProductId))\r\n this.saveToLocalStorage(updatedItems)\r\n }\r\n\r\n updateCart(productId: string, updates: Partial<T>): void {\r\n const storedItems = this.loadFromLocalStorage()\r\n const updatedItems = (storedItems.items ?? []).map((item) => (item.ProductId === productId ? { ...item, ...updates } : item))\r\n this.saveToLocalStorage(updatedItems)\r\n }\r\n\r\n updateOrAddCart(productId: string, updates: Partial<T>): void {\r\n const storedItems = this.loadFromLocalStorage()\r\n const existingIndex = (storedItems.items ?? []).findIndex((item) => item.ProductId === productId)\r\n\r\n if (existingIndex !== -1) {\r\n const updatedItems = [...(storedItems.items ?? [])]\r\n updatedItems[existingIndex] = { ...updatedItems[existingIndex], ...updates }\r\n this.saveToLocalStorage(updatedItems)\r\n } else {\r\n this.addToCart({ ProductId: productId, ...updates } as T)\r\n }\r\n }\r\n\r\n clearCart(): void {\r\n this.saveToLocalStorage([])\r\n }\r\n\r\n private loadFromLocalStorage(): ICartMetadata<T> {\r\n const defaultValue: ICartMetadata<T> = { version: '1.0', items: [] }\r\n let data = defaultValue\r\n try {\r\n // Check if running in client environment with localStorage available\r\n if (typeof globalThis !== 'undefined' && globalThis.localStorage) {\r\n const temp = localStorage.getItem(CartService.provider.localStorageKey)\r\n const tempParsed = temp ? JSON.parse(temp) : null\r\n if (Boolean(tempParsed?.items?.length)) data = tempParsed\r\n }\r\n } catch (error) {\r\n console.error('Error loading carts from localStorage:', error)\r\n }\r\n return data\r\n }\r\n\r\n private saveToLocalStorage(items: T[]) {\r\n // Check if running in client environment with localStorage available\r\n if (typeof globalThis !== 'undefined' && globalThis.localStorage) {\r\n if (CartService.provider.localStorageKey) {\r\n const value: ICartMetadata<T> = { version: '1.0', items }\r\n localStorage.setItem(CartService.provider.localStorageKey, JSON.stringify(value))\r\n CartService.provider.store.emit('stateChange', { items })\r\n } else {\r\n console.warn('No localStorageKey provided, skipping storage')\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport const cartService = new CartService<ICartItem>()\r\n"],"names":["CartProviderDefault","_createClass","_classCallCheck","_defineProperty","this","CartEventStore","CartService","key","value","provider","store","emit","event","callback","subscribe","_storedItems$items","loadFromLocalStorage","items","cartItem","_storedItems$items2","storedItems","itemsToAdd","Array","isArray","updatedItems","concat","_toConsumableArray","saveToLocalStorage","_storedItems$items3","itemsToRemove","filter","x","some","y","ProductId","productId","updates","_storedItems$items4","map","item","_objectSpread","_storedItems$items5","existingIndex","findIndex","_storedItems$items6","addToCart","data","version","globalThis","localStorage","_tempParsed$items","temp","getItem","localStorageKey","tempParsed","JSON","parse","Boolean","length","error","console","setItem","stringify","warn","get","_ObjectProvider$get","createObjectSingleton","key_provider","set","setProvider","cartService"],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sources":["../../src/cart/service.ts"],"sourcesContent":["import { ApiAlertContext } from 'dinocollab-core/api-context'\r\nimport { createObjectSingleton, tryParseArray } from 'dinocollab-core/utils'\r\nimport { ICartItem } from './types'\r\nimport { CartEventStore } from './event-store'\r\nimport { MAX_ITEMS, MAX_LINKS } from './configs'\r\n\r\nexport interface ICartMetadata<T extends ICartItem = ICartItem> {\r\n version: string\r\n items: T[]\r\n}\r\n\r\nexport interface ICartProvider {\r\n localStorageKey: string\r\n maxItems?: number\r\n maxLinks?: number\r\n store?: CartEventStore\r\n}\r\n\r\nclass CartProviderDefault implements ICartProvider {\r\n localStorageKey = '__cart_default__'\r\n maxLinks = MAX_LINKS\r\n maxItems = MAX_ITEMS\r\n store = new CartEventStore()\r\n}\r\n\r\nexport class CartService<T extends ICartItem = ICartItem> {\r\n static key_provider = '__cart_key_provider__'\r\n static get provider(): ICartProvider {\r\n const ObjectProvider = createObjectSingleton<ICartProvider>(CartService.key_provider)\r\n return ObjectProvider.get() ?? new CartProviderDefault()\r\n }\r\n static setProvider(provider: ICartProvider) {\r\n const ObjectProvider = createObjectSingleton<ICartProvider>(CartService.key_provider)\r\n ObjectProvider.set(provider ?? new CartProviderDefault())\r\n }\r\n static setLocalStorageKey(key: string) {\r\n const provider = CartService.provider\r\n provider.localStorageKey = key\r\n CartService.setProvider(provider)\r\n }\r\n static setOptions(options: { maxItems?: number; maxLinks?: number }) {\r\n if (options.maxItems !== undefined) CartService.provider.maxItems = options.maxItems\r\n if (options.maxLinks !== undefined) CartService.provider.maxLinks = options.maxLinks\r\n CartService.setProvider(CartService.provider)\r\n }\r\n\r\n initialize() {\r\n CartService.provider.store?.emit('requestState', {})\r\n }\r\n\r\n subscribe(event: string, callback: (...args: any[]) => void) {\r\n return CartService.provider.store?.subscribe(event as any, callback as any)\r\n }\r\n\r\n getCarts(): T[] {\r\n const storedItems = this.loadFromLocalStorage()\r\n return storedItems.items ?? []\r\n }\r\n\r\n addToCart(cartItem: T | T[]): void {\r\n const storedItems = this.loadFromLocalStorage()\r\n const itemsToAdd = Array.isArray(cartItem) ? cartItem : [cartItem]\r\n const updatedItems = [...(storedItems.items ?? []), ...itemsToAdd]\r\n this.saveToLocalStorage(updatedItems)\r\n }\r\n\r\n removeFromCart(cartItem: T | T[]): void {\r\n const storedItems = this.loadFromLocalStorage()\r\n const itemsToRemove = Array.isArray(cartItem) ? cartItem : [cartItem]\r\n const updatedItems = (storedItems.items ?? []).filter((x) => !itemsToRemove.some((y) => y.ProductId === x.ProductId))\r\n this.saveToLocalStorage(updatedItems)\r\n }\r\n\r\n updateCart(productId: string, updates: Partial<T>): void {\r\n const storedItems = this.loadFromLocalStorage()\r\n const updatedItems = (storedItems.items ?? []).map((item) => (item.ProductId === productId ? { ...item, ...updates } : item))\r\n this.saveToLocalStorage(updatedItems)\r\n }\r\n\r\n updateOrAddCart(productId: string, updates: Partial<T>): void {\r\n const storedItems = this.loadFromLocalStorage()\r\n const existingIndex = (storedItems.items ?? []).findIndex((item) => item.ProductId === productId)\r\n\r\n if (existingIndex !== -1) {\r\n const updatedItems = [...(storedItems.items ?? [])]\r\n updatedItems[existingIndex] = { ...updatedItems[existingIndex], ...updates }\r\n this.saveToLocalStorage(updatedItems)\r\n } else {\r\n this.addToCart({ ProductId: productId, ...updates } as T)\r\n }\r\n }\r\n\r\n clearCart(): void {\r\n this.saveToLocalStorage([])\r\n }\r\n\r\n private loadFromLocalStorage(): ICartMetadata<T> {\r\n const defaultValue: ICartMetadata<T> = { version: '1.0', items: [] }\r\n let data = defaultValue\r\n try {\r\n // Check if running in client environment with localStorage available\r\n if (typeof globalThis !== 'undefined' && globalThis.localStorage) {\r\n const temp = localStorage.getItem(CartService.provider.localStorageKey)\r\n const tempParsed = temp ? JSON.parse(temp) : null\r\n if (Boolean(tempParsed?.items?.length)) data = tempParsed\r\n }\r\n } catch (error) {\r\n console.error('Error loading carts from localStorage:', error)\r\n }\r\n return data\r\n }\r\n\r\n private saveToLocalStorage(items: T[]) {\r\n const isValid = this.isValidCart({ version: '1.0', items })\r\n if (!isValid) {\r\n this.notifyValidationError()\r\n return\r\n }\r\n // Check if running in client environment with localStorage available\r\n if (typeof globalThis !== 'undefined' && globalThis.localStorage) {\r\n if (CartService.provider.localStorageKey) {\r\n const value: ICartMetadata<T> = { version: '1.0', items }\r\n localStorage.setItem(CartService.provider.localStorageKey, JSON.stringify(value))\r\n CartService.provider.store?.emit('stateChange', { items })\r\n } else {\r\n console.warn('No localStorageKey provided, skipping storage')\r\n }\r\n }\r\n }\r\n\r\n private isValidCart = (data: ICartMetadata<T>): boolean => {\r\n const maxItems = CartService.provider.maxItems!\r\n const maxLinks = CartService.provider.maxLinks!\r\n\r\n let isMaxItemsValid = true\r\n if (maxItems > -1) isMaxItemsValid = data.items.length <= maxItems\r\n\r\n let isMaxLinksValid = true\r\n if (maxLinks > -1) {\r\n isMaxLinksValid = data.items.every((item) => {\r\n const links = tryParseArray(item.SocialUrl, [])\r\n return links.length <= maxLinks\r\n })\r\n }\r\n return isMaxItemsValid && isMaxLinksValid\r\n }\r\n\r\n private notifyValidationError() {\r\n const maxItems = CartService.provider.maxItems!\r\n const maxLinks = CartService.provider.maxLinks!\r\n const texts = [`Max items: ${maxItems > -1 ? maxItems : 'unlimited'}`, `Max links per item: ${maxLinks > -1 ? maxLinks : 'unlimited'}`]\r\n ApiAlertContext.ApiAlert?.PushInfo(`Cart limit exceeded. ${texts.join(', ')}. Please review your cart.`)\r\n }\r\n}\r\n\r\nexport const cartService = new CartService<ICartItem>()\r\n"],"names":["CartProviderDefault","_createClass","_classCallCheck","_defineProperty","MAX_LINKS","MAX_ITEMS","this","CartEventStore","CartService","data","maxItems","provider","maxLinks","isMaxItemsValid","items","length","isMaxLinksValid","every","item","tryParseArray","SocialUrl","key","value","_CartService$provider","store","emit","event","callback","_CartService$provider2","subscribe","_storedItems$items","loadFromLocalStorage","cartItem","_storedItems$items2","storedItems","itemsToAdd","Array","isArray","updatedItems","concat","_toConsumableArray","saveToLocalStorage","_storedItems$items3","itemsToRemove","filter","x","some","y","ProductId","productId","updates","_storedItems$items4","map","_objectSpread","_storedItems$items5","existingIndex","findIndex","_storedItems$items6","addToCart","version","globalThis","localStorage","_tempParsed$items","temp","getItem","localStorageKey","tempParsed","JSON","parse","Boolean","error","console","isValidCart","_CartService$provider3","setItem","stringify","warn","notifyValidationError","_ApiAlertContext$ApiA","texts","ApiAlertContext","ApiAlert","PushInfo","join","get","_ObjectProvider$get","createObjectSingleton","key_provider","set","setProvider","options","undefined","cartService"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{inherits as r,createClass as s,classCallCheck as e,callSuper as o,objectSpread2 as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as t,jsxs as a}from"react/jsx-runtime";import{Component as l}from"react";import{Container as n,Stack as p}from"@mui/material";import{AppLogo as m}from"./app-logo.js";import{appHeaderClasses as c,HeaderStyled as h}from"./app-header.styled.js";import{appLogoUrl as d,getHeaderMenuConfigs as f,getHeaderNavConfigs as u}from"./configs.js";import g from"./mobile-menu.js";import v from"./app-header.nav.js";var x=function(){function i(r){var s;return e(this,i),(s=o(this,i,[r])).configs={navs:u(r.baseUrl),menu:f(r.baseUrl)},s}return r(i,l),s(i,[{key:"render",value:function(){var r,s,e=this.props.isFixed,o=[c.root];return!1!==e&&o.push(c.fixed),t(h,{className:o.join(" "),children:t("div",{className:c.rootFixed,children:a(n,{maxWidth:!1,className:c.content,sx:{height:"100%"},children:[t(m,{src:null!==(r=this.props.logoUrl)&&void 0!==r?r:d,href:this.props.baseUrl.home,sx:{mb:"-12px"}}),a(p,{direction:"row",alignItems:"center",spacing:2,children:[t(v,{configs:this.configs,onNavItemClick:this.props.onNavItemClick,sx:{display:{xs:"none",lg:"flex"}},slots:null===(s=this.props.slots)||void 0===s?void 0:s.navItem}),a(p,{direction:"row",gap:1,sx:{justifyContent:"flex-end",alignItems:"center"},children:[this.props.actions,t(g,{baseUrl:this.props.baseUrl,logoUrl:this.props.logoUrl})]})]})]})})})}}])}(),j=function(r){var s=function(s){return t(x,i({},i(i(i({},r),s),{},{slots:i(i({},r.slots),s.slots)})))};return s.displayName="AppHeader",s};export{x as AppHeader,j as createAppHeader,x as default};
1
+ import{inherits as s,createClass as r,classCallCheck as e,callSuper as o,objectSpread2 as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as t,jsxs as a}from"react/jsx-runtime";import{Component as l}from"react";import{Container as n,Stack as p}from"@mui/material";import{AppLogo as m}from"./app-logo.js";import{appHeaderClasses as c,HeaderStyled as d}from"./app-header.styled.js";import{appLogoUrl as h,getHeaderMenuConfigs as f,getHeaderNavConfigs as u}from"./configs.js";import x from"./mobile-menu.js";import g from"./app-header.nav.js";var v=function(){function i(s){var r;return e(this,i),(r=o(this,i,[s])).configs={navs:u(s.baseUrl),menu:f(s.baseUrl)},r}return s(i,l),r(i,[{key:"render",value:function(){var s,r,e=this.props.isFixed,o=[c.root];return!1!==e&&o.push(c.fixed),t(d,{className:o.join(" "),children:t("div",{className:c.rootFixed,children:a(n,{maxWidth:!1,className:c.content,sx:{height:"100%"},children:[t(m,{src:null!==(s=this.props.logoUrl)&&void 0!==s?s:h,href:this.props.baseUrl.home,sx:{m:{xs:"-16px 0 -16px 0",md:"0 0 -12px 0"}}}),a(p,{direction:"row",alignItems:"center",spacing:2,children:[t(g,{configs:this.configs,onNavItemClick:this.props.onNavItemClick,sx:{display:{xs:"none",lg:"flex"}},slots:null===(r=this.props.slots)||void 0===r?void 0:r.navItem}),a(p,{direction:"row",gap:1,sx:{justifyContent:"flex-end",alignItems:"center"},children:[this.props.actions,t(x,{baseUrl:this.props.baseUrl,logoUrl:this.props.logoUrl})]})]})]})})})}}])}(),j=function(s){var r=function(r){return t(v,i({},i(i(i({},s),r),{},{slots:i(i({},s.slots),r.slots)})))};return r.displayName="AppHeader",r};export{v as AppHeader,j as createAppHeader,v as default};
2
2
  //# sourceMappingURL=app-header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-header.js","sources":["../../src/layout-global/app-header.tsx"],"sourcesContent":["import { Component } from 'react'\r\nimport { Container, Stack } from '@mui/material'\r\nimport type { ComponentType, FC, ReactNode } from 'react'\r\nimport { AppLogo } from './app-logo'\r\nimport { IAppNav, NavItemClickFunction } from './types'\r\nimport { IAppThemeProviderProps } from './app-theme-provider'\r\nimport { appHeaderClasses, HeaderStyled } from './app-header.styled'\r\nimport { appLogoUrl, getHeaderMenuConfigs, getHeaderNavConfigs } from './configs'\r\nimport type { IAppSiteBaseUrl } from '../types'\r\nimport type { IAppHeaderNavSlots } from './app-header.nav'\r\nimport MobileMenu from './mobile-menu'\r\nimport AppHeaderNav from './app-header.nav'\r\n\r\nexport interface IAppHeaderSlots {\r\n navItem?: IAppHeaderNavSlots\r\n themeProps?: Partial<IAppThemeProviderProps>\r\n}\r\n\r\nexport interface IAppHeaderProps {\r\n baseUrl: IAppSiteBaseUrl\r\n onNavItemClick?: NavItemClickFunction\r\n logoUrl?: string\r\n actions?: ReactNode\r\n isFixed?: boolean\r\n slots?: IAppHeaderSlots\r\n}\r\n\r\nexport class AppHeader extends Component<IAppHeaderProps> {\r\n private configs: Record<'navs' | 'menu', IAppNav[]>\r\n constructor(props: IAppHeaderProps) {\r\n super(props)\r\n this.configs = {\r\n navs: getHeaderNavConfigs(props.baseUrl),\r\n menu: getHeaderMenuConfigs(props.baseUrl)\r\n }\r\n }\r\n\r\n render() {\r\n const { isFixed } = this.props\r\n const rootClasses = [appHeaderClasses.root]\r\n if (isFixed !== false) rootClasses.push(appHeaderClasses.fixed)\r\n return (\r\n <HeaderStyled className={rootClasses.join(' ')}>\r\n <div className={appHeaderClasses.rootFixed}>\r\n <Container maxWidth={false} className={appHeaderClasses.content} sx={{ height: '100%' }}>\r\n {/* The AppLogo component displays the application logo */}\r\n <AppLogo src={this.props.logoUrl ?? appLogoUrl} href={this.props.baseUrl.home} sx={{ mb: '-12px' }} />\r\n <Stack direction='row' alignItems='center' spacing={2}>\r\n <AppHeaderNav\r\n configs={this.configs}\r\n onNavItemClick={this.props.onNavItemClick}\r\n sx={{ display: { xs: 'none', lg: 'flex' } }}\r\n slots={this.props.slots?.navItem}\r\n />\r\n <Stack direction='row' gap={1} sx={{ justifyContent: 'flex-end', alignItems: 'center' }}>\r\n {this.props.actions}\r\n {/* MobileMenu is a responsive menu for smaller screens */}\r\n {/* It provides a hamburger menu icon that toggles the navigation items */}\r\n <MobileMenu baseUrl={this.props.baseUrl} logoUrl={this.props.logoUrl} />\r\n </Stack>\r\n </Stack>\r\n </Container>\r\n </div>\r\n </HeaderStyled>\r\n )\r\n }\r\n}\r\nexport default AppHeader\r\n\r\nexport const createAppHeader = (params: IAppHeaderProps): ComponentType<Partial<IAppHeaderProps>> => {\r\n const _AppHeader: FC<Partial<IAppHeaderProps>> = (props) => {\r\n return <AppHeader {...{ ...params, ...props, slots: { ...params.slots, ...props.slots } }} />\r\n }\r\n _AppHeader.displayName = 'AppHeader'\r\n return _AppHeader\r\n}\r\n"],"names":["AppHeader","props","_this","_classCallCheck","_callSuper","configs","navs","getHeaderNavConfigs","baseUrl","menu","getHeaderMenuConfigs","_inherits","Component","_createClass","key","value","_this$props$logoUrl","_this$props$slots","isFixed","this","rootClasses","appHeaderClasses","root","push","fixed","_jsx","HeaderStyled","className","join","rootFixed","children","_jsxs","Container","maxWidth","content","sx","height","AppLogo","src","logoUrl","appLogoUrl","href","home","mb","Stack","direction","alignItems","spacing","AppHeaderNav","onNavItemClick","display","xs","lg","slots","navItem","gap","justifyContent","actions","MobileMenu","createAppHeader","params","_AppHeader","_objectSpread","displayName"],"mappings":"wiBA2BaA,IAAAA,aAEX,SAAAA,EAAYC,GAAsB,IAAAC,EAK/B,OAL+BC,OAAAH,IAChCE,EAAAE,EAAAJ,KAAAA,GAAMC,KACDI,QAAU,CACbC,KAAMC,EAAoBN,EAAMO,SAChCC,KAAMC,EAAqBT,EAAMO,UAClCN,CACH,CAAC,OAAAS,EAAAX,EAR4BY,GAQ5BC,EAAAb,EAAA,CAAA,CAAAc,IAAA,SAAAC,MAED,WAAM,IAAAC,EAAAC,EACIC,EAAYC,KAAKlB,MAAjBiB,QACFE,EAAc,CAACC,EAAiBC,MAEtC,OADgB,IAAZJ,GAAmBE,EAAYG,KAAKF,EAAiBG,OAEvDC,EAACC,GAAaC,UAAWP,EAAYQ,KAAK,cACxCH,EAAK,MAAA,CAAAE,UAAWN,EAAiBQ,UAC/BC,SAAAC,EAACC,EAAU,CAAAC,UAAU,EAAON,UAAWN,EAAiBa,QAASC,GAAI,CAAEC,OAAQ,QAE7EN,SAAA,CAAAL,EAACY,EAAQ,CAAAC,IAAuBtB,QAApBA,EAAEG,KAAKlB,MAAMsC,eAAOvB,IAAAA,EAAAA,EAAIwB,EAAYC,KAAMtB,KAAKlB,MAAMO,QAAQkC,KAAMP,GAAI,CAAEQ,GAAI,WACzFZ,EAACa,GAAMC,UAAU,MAAMC,WAAW,SAASC,QAAS,YAClDtB,EAACuB,GACC3C,QAASc,KAAKd,QACd4C,eAAgB9B,KAAKlB,MAAMgD,eAC3Bd,GAAI,CAAEe,QAAS,CAAEC,GAAI,OAAQC,GAAI,SACjCC,MAAuBpC,QAAlBA,EAAEE,KAAKlB,MAAMoD,aAAXpC,IAAgBA,OAAhBA,EAAAA,EAAkBqC,UAE3BvB,EAACa,GAAMC,UAAU,MAAMU,IAAK,EAAGpB,GAAI,CAAEqB,eAAgB,WAAYV,WAAY,UAAUhB,SAAA,CACpFX,KAAKlB,MAAMwD,QAGZhC,EAACiC,EAAU,CAAClD,QAASW,KAAKlB,MAAMO,QAAS+B,QAASpB,KAAKlB,MAAMsC,sBAO3E,IAAC,IAIUoB,EAAkB,SAACC,GAC9B,IAAMC,EAA2C,SAAC5D,GAChD,OAAOwB,EAACzB,EAAS8D,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,EAAUF,CAAAA,EAAAA,GAAW3D,GAAK,CAAA,EAAA,CAAEoD,MAAKS,EAAAA,EAAA,CAAA,EAAOF,EAAOP,OAAUpD,EAAMoD,UACjF,EAED,OADAQ,EAAWE,YAAc,YAClBF,CACT"}
1
+ {"version":3,"file":"app-header.js","sources":["../../src/layout-global/app-header.tsx"],"sourcesContent":["import { Component } from 'react'\r\nimport { Container, Stack } from '@mui/material'\r\nimport type { ComponentType, FC, ReactNode } from 'react'\r\nimport { AppLogo } from './app-logo'\r\nimport { IAppNav, NavItemClickFunction } from './types'\r\nimport { IAppThemeProviderProps } from './app-theme-provider'\r\nimport { appHeaderClasses, HeaderStyled } from './app-header.styled'\r\nimport { appLogoUrl, getHeaderMenuConfigs, getHeaderNavConfigs } from './configs'\r\nimport type { IAppSiteBaseUrl } from '../types'\r\nimport type { IAppHeaderNavSlots } from './app-header.nav'\r\nimport MobileMenu from './mobile-menu'\r\nimport AppHeaderNav from './app-header.nav'\r\n\r\nexport interface IAppHeaderSlots {\r\n navItem?: IAppHeaderNavSlots\r\n themeProps?: Partial<IAppThemeProviderProps>\r\n}\r\n\r\nexport interface IAppHeaderProps {\r\n baseUrl: IAppSiteBaseUrl\r\n onNavItemClick?: NavItemClickFunction\r\n logoUrl?: string\r\n actions?: ReactNode\r\n isFixed?: boolean\r\n slots?: IAppHeaderSlots\r\n}\r\n\r\nexport class AppHeader extends Component<IAppHeaderProps> {\r\n private configs: Record<'navs' | 'menu', IAppNav[]>\r\n constructor(props: IAppHeaderProps) {\r\n super(props)\r\n this.configs = {\r\n navs: getHeaderNavConfigs(props.baseUrl),\r\n menu: getHeaderMenuConfigs(props.baseUrl)\r\n }\r\n }\r\n\r\n render() {\r\n const { isFixed } = this.props\r\n const rootClasses = [appHeaderClasses.root]\r\n if (isFixed !== false) rootClasses.push(appHeaderClasses.fixed)\r\n return (\r\n <HeaderStyled className={rootClasses.join(' ')}>\r\n <div className={appHeaderClasses.rootFixed}>\r\n <Container maxWidth={false} className={appHeaderClasses.content} sx={{ height: '100%' }}>\r\n {/* The AppLogo component displays the application logo */}\r\n <AppLogo src={this.props.logoUrl ?? appLogoUrl} href={this.props.baseUrl.home} sx={{ m: { xs: '-16px 0 -16px 0', md: '0 0 -12px 0' } }} />\r\n <Stack direction='row' alignItems='center' spacing={2}>\r\n <AppHeaderNav\r\n configs={this.configs}\r\n onNavItemClick={this.props.onNavItemClick}\r\n sx={{ display: { xs: 'none', lg: 'flex' } }}\r\n slots={this.props.slots?.navItem}\r\n />\r\n <Stack direction='row' gap={1} sx={{ justifyContent: 'flex-end', alignItems: 'center' }}>\r\n {this.props.actions}\r\n {/* MobileMenu is a responsive menu for smaller screens */}\r\n {/* It provides a hamburger menu icon that toggles the navigation items */}\r\n <MobileMenu baseUrl={this.props.baseUrl} logoUrl={this.props.logoUrl} />\r\n </Stack>\r\n </Stack>\r\n </Container>\r\n </div>\r\n </HeaderStyled>\r\n )\r\n }\r\n}\r\nexport default AppHeader\r\n\r\nexport const createAppHeader = (params: IAppHeaderProps): ComponentType<Partial<IAppHeaderProps>> => {\r\n const _AppHeader: FC<Partial<IAppHeaderProps>> = (props) => {\r\n return <AppHeader {...{ ...params, ...props, slots: { ...params.slots, ...props.slots } }} />\r\n }\r\n _AppHeader.displayName = 'AppHeader'\r\n return _AppHeader\r\n}\r\n"],"names":["AppHeader","props","_this","_classCallCheck","_callSuper","configs","navs","getHeaderNavConfigs","baseUrl","menu","getHeaderMenuConfigs","_inherits","Component","_createClass","key","value","_this$props$logoUrl","_this$props$slots","isFixed","this","rootClasses","appHeaderClasses","root","push","fixed","_jsx","HeaderStyled","className","join","children","rootFixed","_jsxs","Container","maxWidth","content","sx","height","AppLogo","src","logoUrl","appLogoUrl","href","home","m","xs","md","Stack","direction","alignItems","spacing","AppHeaderNav","onNavItemClick","display","lg","slots","navItem","gap","justifyContent","actions","MobileMenu","createAppHeader","params","_AppHeader","_objectSpread","displayName"],"mappings":"wiBA2BaA,IAAAA,aAEX,SAAAA,EAAYC,GAAsB,IAAAC,EAK/B,OAL+BC,OAAAH,IAChCE,EAAAE,EAAAJ,KAAAA,GAAMC,KACDI,QAAU,CACbC,KAAMC,EAAoBN,EAAMO,SAChCC,KAAMC,EAAqBT,EAAMO,UAClCN,CACH,CAAC,OAAAS,EAAAX,EAR4BY,GAQ5BC,EAAAb,EAAA,CAAA,CAAAc,IAAA,SAAAC,MAED,WAAM,IAAAC,EAAAC,EACIC,EAAYC,KAAKlB,MAAjBiB,QACFE,EAAc,CAACC,EAAiBC,MAEtC,OADgB,IAAZJ,GAAmBE,EAAYG,KAAKF,EAAiBG,OAEvDC,EAACC,EAAY,CAACC,UAAWP,EAAYQ,KAAK,KAAIC,SAC5CJ,SAAKE,UAAWN,EAAiBS,mBAC/BC,EAACC,GAAUC,UAAU,EAAON,UAAWN,EAAiBa,QAASC,GAAI,CAAEC,OAAQ,kBAE7EX,EAACY,EAAQ,CAAAC,IAAuBtB,QAApBA,EAAEG,KAAKlB,MAAMsC,eAAOvB,IAAAA,EAAAA,EAAIwB,EAAYC,KAAMtB,KAAKlB,MAAMO,QAAQkC,KAAMP,GAAI,CAAEQ,EAAG,CAAEC,GAAI,kBAAmBC,GAAI,kBACrHd,EAACe,EAAK,CAACC,UAAU,MAAMC,WAAW,SAASC,QAAS,EAClDpB,SAAA,CAAAJ,EAACyB,EACC,CAAA7C,QAASc,KAAKd,QACd8C,eAAgBhC,KAAKlB,MAAMkD,eAC3BhB,GAAI,CAAEiB,QAAS,CAAER,GAAI,OAAQS,GAAI,SACjCC,MAAuBrC,QAAlBA,EAAEE,KAAKlB,MAAMqD,aAAXrC,IAAgBA,OAAhBA,EAAAA,EAAkBsC,UAE3BxB,EAACe,EAAM,CAAAC,UAAU,MAAMS,IAAK,EAAGrB,GAAI,CAAEsB,eAAgB,WAAYT,WAAY,UAC1EnB,SAAA,CAAAV,KAAKlB,MAAMyD,QAGZjC,EAACkC,GAAWnD,QAASW,KAAKlB,MAAMO,QAAS+B,QAASpB,KAAKlB,MAAMsC,sBAO3E,IAAC,IAIUqB,EAAkB,SAACC,GAC9B,IAAMC,EAA2C,SAAC7D,GAChD,OAAOwB,EAACzB,EAAS+D,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,EAAUF,CAAAA,EAAAA,GAAW5D,GAAK,CAAA,EAAA,CAAEqD,MAAKS,EAAAA,EAAA,CAAA,EAAOF,EAAOP,OAAUrD,EAAMqD,UACjF,EAED,OADAQ,EAAWE,YAAc,YAClBF,CACT"}
@@ -1,2 +1,2 @@
1
- import{objectWithoutProperties as r,objectSpread2 as e,defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as o}from"react/jsx-runtime";import{styled as i,Box as a}from"@mui/material";var n=["src","href"],p=["href"],s=function(t){var i=t.src,a=t.href,p=r(t,n);return o(c,e(e({href:a||"/",className:"AppLogo"},p),{},{children:o("img",{src:i,alt:"App Logo"})}))},c=i(function(t){var i=t.href,n=r(t,p);return o(a,e({component:"a",href:i},n))})(function(r){var e=r.theme;return t({cursor:"pointer",display:"flex",width:"160px",flex:"0 0 auto",aspectRatio:"16/9","& > img":{width:"100%",height:"100%",objectFit:"contain"}},e.breakpoints.down("xl"),{width:"120px"})});export{s as AppLogo,s as default};
1
+ import{objectWithoutProperties as r,objectSpread2 as e,defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as o}from"react/jsx-runtime";import{styled as i,Box as a}from"@mui/material";var n=["src","href"],p=["href"],s=function(t){var i=t.src,a=t.href,p=r(t,n);return o(c,e(e({href:a||"/",className:"AppLogo"},p),{},{children:o("img",{src:i,alt:"App Logo"})}))},c=i(function(t){var i=t.href,n=r(t,p);return o(a,e({component:"a",href:i},n))})(function(r){var e=r.theme;return t(t({cursor:"pointer",display:"flex",height:"90px",flex:"0 0 auto",aspectRatio:"16/9","& > img":{width:"100%",height:"100%",objectFit:"contain"}},e.breakpoints.down("xl"),{height:"78px"}),e.breakpoints.down("sm"),{aspectRatio:"unset"})});export{s as AppLogo,s as default};
2
2
  //# sourceMappingURL=app-logo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-logo.js","sources":["../../src/layout-global/app-logo.tsx"],"sourcesContent":["import { Box, styled } from '@mui/material'\r\nimport type { FC } from 'react'\r\nimport type { BoxProps, Theme } from '@mui/material'\r\n\r\nexport interface IAppLogoProps extends BoxProps {\r\n src: string\r\n href?: string // Optional href to make the logo clickable\r\n}\r\n\r\nexport const AppLogo: FC<IAppLogoProps> = (props) => {\r\n const { src, href, ...boxProps } = props\r\n return (\r\n <WrapLogo href={href || '/'} className='AppLogo' {...boxProps}>\r\n <img src={src} alt='App Logo' />\r\n </WrapLogo>\r\n )\r\n}\r\nexport default AppLogo\r\n\r\nconst WrapLogo = styled(({ href, ...props }: BoxProps & { href: string }) => {\r\n return <Box component='a' href={href} {...props} />\r\n})(({ theme }: { theme: Theme }) => ({\r\n cursor: 'pointer',\r\n display: 'flex',\r\n width: '160px',\r\n flex: '0 0 auto',\r\n aspectRatio: '16/9', // 480:270 ratio\r\n '& > img': {\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'contain'\r\n },\r\n [theme.breakpoints.down('xl')]: {\r\n width: '120px'\r\n }\r\n}))\r\n"],"names":["AppLogo","props","src","href","boxProps","_objectWithoutProperties","_excluded","_jsx","WrapLogo","_objectSpread","className","children","alt","styled","_ref","_excluded2","Box","component","_ref2","theme","_defineProperty","cursor","display","width","flex","aspectRatio","height","objectFit","breakpoints","down"],"mappings":"kPASaA,EAA6B,SAACC,GACzC,IAAQC,EAA2BD,EAA3BC,IAAKC,EAAsBF,EAAtBE,KAASC,EAAQC,EAAKJ,EAAKK,GACxC,OACEC,EAACC,EAAQC,EAAAA,EAAA,CAACN,KAAMA,GAAQ,IAAKO,UAAU,WAAcN,GAAQ,GAAA,CAC3DO,SAAAJ,EAAA,MAAA,CAAKL,IAAKA,EAAKU,IAAI,eAGzB,EAGMJ,EAAWK,EAAO,SAAAC,GAAoD,IAAjDX,EAAIW,EAAJX,KAASF,EAAKI,EAAAS,EAAAC,GACvC,OAAOR,EAACS,EAAGP,EAAA,CAACQ,UAAU,IAAId,KAAMA,GAAUF,GAC5C,EAFiBY,CAEd,SAAAK,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAC,EAAA,CACTC,OAAQ,UACRC,QAAS,OACTC,MAAO,QACPC,KAAM,WACNC,YAAa,OACb,UAAW,CACTF,MAAO,OACPG,OAAQ,OACRC,UAAW,YAEZR,EAAMS,YAAYC,KAAK,MAAQ,CAC9BN,MAAO,SACR"}
1
+ {"version":3,"file":"app-logo.js","sources":["../../src/layout-global/app-logo.tsx"],"sourcesContent":["import { Box, styled } from '@mui/material'\r\nimport type { FC } from 'react'\r\nimport type { BoxProps, Theme } from '@mui/material'\r\n\r\nexport interface IAppLogoProps extends BoxProps {\r\n src: string\r\n href?: string // Optional href to make the logo clickable\r\n}\r\n\r\nexport const AppLogo: FC<IAppLogoProps> = (props) => {\r\n const { src, href, ...boxProps } = props\r\n return (\r\n <WrapLogo href={href || '/'} className='AppLogo' {...boxProps}>\r\n <img src={src} alt='App Logo' />\r\n </WrapLogo>\r\n )\r\n}\r\nexport default AppLogo\r\n\r\nconst WrapLogo = styled(({ href, ...props }: BoxProps & { href: string }) => {\r\n return <Box component='a' href={href} {...props} />\r\n})(({ theme }: { theme: Theme }) => ({\r\n cursor: 'pointer',\r\n display: 'flex',\r\n height: '90px',\r\n flex: '0 0 auto',\r\n aspectRatio: '16/9', // 480:270 ratio\r\n '& > img': {\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'contain'\r\n },\r\n [theme.breakpoints.down('xl')]: {\r\n height: '78px'\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n aspectRatio: 'unset'\r\n }\r\n}))\r\n"],"names":["AppLogo","props","src","href","boxProps","_objectWithoutProperties","_excluded","_jsx","WrapLogo","_objectSpread","className","children","alt","styled","_ref","_excluded2","Box","component","_ref2","theme","_defineProperty","cursor","display","height","flex","aspectRatio","width","objectFit","breakpoints","down"],"mappings":"kPASaA,EAA6B,SAACC,GACzC,IAAQC,EAA2BD,EAA3BC,IAAKC,EAAsBF,EAAtBE,KAASC,EAAQC,EAAKJ,EAAKK,GACxC,OACEC,EAACC,EAAQC,EAAAA,EAAA,CAACN,KAAMA,GAAQ,IAAKO,UAAU,WAAcN,GAAQ,GAAA,CAC3DO,SAAAJ,EAAA,MAAA,CAAKL,IAAKA,EAAKU,IAAI,eAGzB,EAGMJ,EAAWK,EAAO,SAAAC,GAAoD,IAAjDX,EAAIW,EAAJX,KAASF,EAAKI,EAAAS,EAAAC,GACvC,OAAOR,EAACS,EAAGP,EAAA,CAACQ,UAAU,IAAId,KAAMA,GAAUF,GAC5C,EAFiBY,CAEd,SAAAK,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAC,EAAAA,EAAA,CACTC,OAAQ,UACRC,QAAS,OACTC,OAAQ,OACRC,KAAM,WACNC,YAAa,OACb,UAAW,CACTC,MAAO,OACPH,OAAQ,OACRI,UAAW,YAEZR,EAAMS,YAAYC,KAAK,MAAQ,CAC9BN,OAAQ,SAETJ,EAAMS,YAAYC,KAAK,MAAQ,CAC9BJ,YAAa,SACd"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Maximum number of distinct items allowed in the cart.
3
+ * A value of -1 indicates no limit.
4
+ */
5
+ export declare const MAX_ITEMS: number;
6
+ /**
7
+ * Maximum number of links allowed per cart item.
8
+ * A value of -1 indicates no limit.
9
+ */
10
+ export declare const MAX_LINKS: number;
11
+ //# sourceMappingURL=configs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../../src/cart/configs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,MAAW,CAAA;AAEnC;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,MAAW,CAAA"}
@@ -6,15 +6,21 @@ export interface ICartMetadata<T extends ICartItem = ICartItem> {
6
6
  }
7
7
  export interface ICartProvider {
8
8
  localStorageKey: string;
9
- store: CartEventStore;
9
+ maxItems?: number;
10
+ maxLinks?: number;
11
+ store?: CartEventStore;
10
12
  }
11
13
  export declare class CartService<T extends ICartItem = ICartItem> {
12
14
  static key_provider: string;
13
15
  static get provider(): ICartProvider;
14
16
  static setProvider(provider: ICartProvider): void;
15
17
  static setLocalStorageKey(key: string): void;
18
+ static setOptions(options: {
19
+ maxItems?: number;
20
+ maxLinks?: number;
21
+ }): void;
16
22
  initialize(): void;
17
- subscribe(event: string, callback: (...args: any[]) => void): () => void;
23
+ subscribe(event: string, callback: (...args: any[]) => void): (() => void) | undefined;
18
24
  getCarts(): T[];
19
25
  addToCart(cartItem: T | T[]): void;
20
26
  removeFromCart(cartItem: T | T[]): void;
@@ -23,6 +29,8 @@ export declare class CartService<T extends ICartItem = ICartItem> {
23
29
  clearCart(): void;
24
30
  private loadFromLocalStorage;
25
31
  private saveToLocalStorage;
32
+ private isValidCart;
33
+ private notifyValidationError;
26
34
  }
27
35
  export declare const cartService: CartService<ICartItem<any>>;
28
36
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/cart/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC5D,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,CAAC,EAAE,CAAA;CACX;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAA;IACvB,KAAK,EAAE,cAAc,CAAA;CACtB;AAOD,qBAAa,WAAW,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACtD,MAAM,CAAC,YAAY,SAA0B;IAC7C,MAAM,KAAK,QAAQ,IAAI,aAAa,CAGnC;IACD,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa;IAI1C,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM;IAMrC,UAAU;IAIV,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAI3D,QAAQ,IAAI,CAAC,EAAE;IAKf,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;IAOlC,cAAc,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;IAOvC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAMxD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAa7D,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,kBAAkB;CAY3B;AAED,eAAO,MAAM,WAAW,6BAA+B,CAAA"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/cart/service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9C,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC5D,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,CAAC,EAAE,CAAA;CACX;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,cAAc,CAAA;CACvB;AASD,qBAAa,WAAW,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACtD,MAAM,CAAC,YAAY,SAA0B;IAC7C,MAAM,KAAK,QAAQ,IAAI,aAAa,CAGnC;IACD,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa;IAI1C,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM;IAKrC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAMnE,UAAU;IAIV,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;IAI3D,QAAQ,IAAI,CAAC,EAAE;IAKf,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;IAOlC,cAAc,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;IAOvC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAMxD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAa7D,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,WAAW,CAelB;IAED,OAAO,CAAC,qBAAqB;CAM9B;AAED,eAAO,MAAM,WAAW,6BAA+B,CAAA"}
@@ -26,4 +26,8 @@ export interface ICartItem<O = any> {
26
26
  /** This will be the ID used to stream video or retrieve audio. */
27
27
  MediaId: string;
28
28
  }
29
+ export interface ICartOptions {
30
+ maxItems?: number;
31
+ maxLinks?: number;
32
+ }
29
33
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cart/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,GAAG;IAChC,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAA;IACtB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IAGpB,OAAO,CAAC,EAAE,CAAC,CAAA;IAGX,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAA;IAClB,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAA;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cart/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,GAAG;IAChC,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAA;IACtB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IAGpB,OAAO,CAAC,EAAE,CAAC,CAAA;IAGX,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAA;IAClB,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dinocollab-shared",
3
- "version": "1.2.15",
3
+ "version": "1.2.17",
4
4
  "description": "DinoCollab shared utilities and components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",