dinocollab-shared 1.2.16 → 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 e,classCallCheck as t,callSuper as n,defineProperty as o,objectSpread2 as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as l,jsx as a}from"react/jsx-runtime";import{Component as c,Fragment as s}from"react";import{ImageWithFallback as d}from"dinocollab-core/components";import{Badge as m,Typography as u,Divider as p,Button as h,Box as f,IconButton as v}from"@mui/material";import C from"@mui/icons-material/Remove";import g from"@mui/icons-material/ShoppingCartOutlined";import x from"@mui/icons-material/ShoppingCartCheckout";import{getTotalData as b}from"./helpers.js";import{IconButtonDark as y}from"../components/buttons.js";import{NoDataPanel as k}from"../components/no-data-panel.js";import{MenuStyled as P,CartContentStyled as T,cartContentClasses as S}from"./styled.js";var N=function(){function N(r){var e;return t(this,N),e=n(this,N,[r]),o(e,"render",function(){var r;return l(s,{children:[a(y,{onClick:function(r){return e.onOpen(r.currentTarget)},children:a(m,{badgeContent:e.state.hydrated&&null!==(r=e.carts.length)&&void 0!==r?r:0,color:"error",children:a(g,{fontSize:"small"})})}),a(P,{disableScrollLock:!0,anchorEl:e.state.anchorEl,open:Boolean(e.state.anchorEl),onClose:e.onClose,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{component:"div"},children:e.renderContent()})]})}),o(e,"renderContent",function(){var r,t=b(e.carts);return l(T,{children:[l("div",{className:S.header,children:[l(u,{variant:"h6",component:"span",sx:{flex:1},children:["Your Cart (",null!==(r=t.quantity)&&void 0!==r?r:0," items)"]}),l(u,{variant:"h6",component:"span",children:["Total: $ ",t.price.toFixed(2)]})]}),a(p,{}),l("div",{className:S.items,children:[e.carts.map(function(r,t){return a(s,{children:e.renderItem(r)},"key"+t)}),e.carts.length<1&&a(k,{title:"Your cart is empty",subTitle:"Try adding some products",sx:{height:"100%",m:1}})]}),a(p,{}),a("div",{className:S.footer,children:a(h,i(i(i({},e.props.hrefCart?{component:"a",href:e.props.hrefCart}:{}),{},{color:"inherit",endIcon:a(x,{}),onClick:function(r){e.onClose(),e.props.onMoveToCartClick&&e.props.onMoveToCartClick(r)},disabled:e.carts.length<1},e.props.buttonMoveToCartProps),{},{children:"Show in cart"}))})]})}),o(e,"renderTitle",function(r){var t,n=e.props,o=n.itemTitleProps,l=n.itemTitlePropsGetter,c=l?l(r,e.onClose):null!=o?o:{};return a(u,i(i({className:S.itemTitle,noWrap:!0,variant:"subtitle1"},c),{},{children:null!==(t=r.ProductName)&&void 0!==t?t:"Unknown Product"}))}),o(e,"renderItem",function(r){var t,n,o,i;return l("div",{className:S.item,children:[a(d,{className:S.itemImg,src:null==r?void 0:r.PictureUrl,title:null==r?void 0:r.PictureUrl,fallbackSrc:"images/default-video.webp",alt:"product-picture"}),l("div",{className:S.itemContent,children:[a(u,{className:S.itemTag,variant:"caption",sx:{color:null!==(t=r.PriceColor)&&void 0!==t?t:"#000"},children:null!==(n=r.PriceName)&&void 0!==n?n:"Unknown Price"}),e.renderTitle(r),l(f,{sx:{display:"flex",alignItems:"flex-end",gap:"2px",justifyContent:"flex-end"},children:[l(u,{variant:"subtitle1",children:["$ ",null!==(o=r.Price)&&void 0!==o?o:0]}),l(u,{variant:"body1",sx:{fontSize:"14px",mb:"3px",color:"#818181"},children:["x",null!==(i=r.Amount)&&void 0!==i?i:0," urls"]})]})]}),a(v,{size:"small",onClick:function(){var t,n;return null===(t=(n=e.props).onRemoveCart)||void 0===t?void 0:t.call(n,r)},sx:{color:"#818181"},children:a(C,{})})]})}),o(e,"onOpen",function(r){e.setState({anchorEl:r})}),o(e,"onClose",function(){e.setState({anchorEl:null})}),e.state={anchorEl:null,hydrated:!1},e}return r(N,c),e(N,[{key:"carts",get:function(){var r;return null!==(r=this.props.carts)&&void 0!==r?r:[]}},{key:"componentDidMount",value:function(){this.setState({hydrated:!0})}}])}(),j=function(r){var e=function(e){return a(N,i(i({},r),e))};return e.displayName="CartWidget",e};export{N as CartWidget,j as createCartWidget};
1
+ import{inherits as r,createClass as e,classCallCheck as t,callSuper as n,defineProperty as o,objectSpread2 as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as l,jsx as a}from"react/jsx-runtime";import{Component as c,Fragment as s}from"react";import{ImageWithFallback as d}from"dinocollab-core/components";import{Badge as m,Typography as u,Divider as p,Button as h,Box as f,IconButton as v}from"@mui/material";import C from"@mui/icons-material/Remove";import g from"@mui/icons-material/ShoppingCartOutlined";import x from"@mui/icons-material/ShoppingCartCheckout";import{getTotalData as b}from"./helpers.js";import{MenuStyled as y,CartContentStyled as k,cartContentClasses as P}from"./styled.js";import{IconButtonDark as T}from"../components/buttons.js";import{NoDataPanel as S}from"../components/no-data-panel.js";var N=function(){function N(r){var e;return t(this,N),e=n(this,N,[r]),o(e,"render",function(){var r;return l(s,{children:[a(T,{onClick:function(r){return e.onOpen(r.currentTarget)},children:a(m,{badgeContent:e.state.hydrated&&null!==(r=e.carts.length)&&void 0!==r?r:0,color:"error",children:a(g,{fontSize:"small"})})}),a(y,{disableScrollLock:!0,anchorEl:e.state.anchorEl,open:Boolean(e.state.anchorEl),onClose:e.onClose,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{component:"div"},children:e.renderContent()})]})}),o(e,"renderContent",function(){var r,t=b(e.carts);return l(k,{children:[l("div",{className:P.header,children:[l(u,{variant:"h6",component:"span",sx:{flex:1},children:["Your Cart (",null!==(r=t.quantity)&&void 0!==r?r:0," items)"]}),l(u,{variant:"h6",component:"span",children:["Total: $ ",t.price.toFixed(2)]})]}),a(p,{}),l("div",{className:P.items,children:[e.carts.map(function(r,t){return a(s,{children:e.renderItem(r)},"key"+t)}),e.carts.length<1&&a(S,{title:"Your cart is empty",subTitle:"Try adding some products",sx:{height:"100%",m:1}})]}),a(p,{}),a("div",{className:P.footer,children:a(h,i(i(i({},e.props.hrefCart?{component:"a",href:e.props.hrefCart}:{}),{},{color:"inherit",endIcon:a(x,{}),onClick:function(r){e.onClose(),e.props.onMoveToCartClick&&e.props.onMoveToCartClick(r)},disabled:e.carts.length<1},e.props.buttonMoveToCartProps),{},{children:"Show in cart"}))})]})}),o(e,"renderTitle",function(r){var t,n=e.props,o=n.itemTitleProps,l=n.itemTitlePropsGetter,c=l?l(r,e.onClose):null!=o?o:{};return a(u,i(i({className:P.itemTitle,noWrap:!0,variant:"subtitle1"},c),{},{children:null!==(t=r.ProductName)&&void 0!==t?t:"Unknown Product"}))}),o(e,"renderItem",function(r){var t,n,o,i;return l("div",{className:P.item,children:[a(d,{className:P.itemImg,src:null==r?void 0:r.PictureUrl,title:null==r?void 0:r.PictureUrl,fallbackSrc:"images/default-video.webp",alt:"product-picture"}),l("div",{className:P.itemContent,children:[a(u,{className:P.itemTag,variant:"caption",sx:{color:null!==(t=r.PriceColor)&&void 0!==t?t:"#000"},children:null!==(n=r.PriceName)&&void 0!==n?n:"Unknown Price"}),e.renderTitle(r),l(f,{sx:{display:"flex",alignItems:"flex-end",gap:"2px",justifyContent:"flex-end"},children:[l(u,{variant:"subtitle1",children:["$ ",null!==(o=r.Price)&&void 0!==o?o:0]}),l(u,{variant:"body1",sx:{fontSize:"14px",mb:"3px",color:"#818181"},children:["x",null!==(i=r.Amount)&&void 0!==i?i:0," urls"]})]})]}),a(v,{size:"small",onClick:function(){var t,n;return null===(t=(n=e.props).onRemoveCart)||void 0===t?void 0:t.call(n,r)},sx:{color:"#818181"},children:a(C,{})})]})}),o(e,"onOpen",function(r){e.setState({anchorEl:r})}),o(e,"onClose",function(){e.setState({anchorEl:null})}),e.state={anchorEl:null,hydrated:!1},e}return r(N,c),e(N,[{key:"carts",get:function(){var r;return null!==(r=this.props.carts)&&void 0!==r?r:[]}},{key:"componentDidMount",value:function(){this.setState({hydrated:!0})}}])}(),j=function(r){var e=function(e){return a(N,i(i({},r),e))};return e.displayName="CartWidget",e};export{N as CartWidget,j as createCartWidget};
2
2
  //# sourceMappingURL=widget.js.map
@@ -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.16",
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",