@isartech/chat
Version:
A reusable native webcomponent that can be initiated with parameters such as an endpoint url and styles in any environment based on web technologies.
27 lines (26 loc) • 11.2 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const J=require("react"),h=require("./isartech-chat.js");function fe(o){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const a in o)if(a!=="default"){const t=Object.getOwnPropertyDescriptor(o,a);Object.defineProperty(c,a,t.get?t:{enumerable:!0,get:()=>o[a]})}}return c.default=o,Object.freeze(c)}const v=fe(J);var w={exports:{}},N={};/**
* @license React
* react-jsx-runtime.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var $;function de(){if($)return N;$=1;var o=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function a(t,s,f){var l=null;if(f!==void 0&&(l=""+f),s.key!==void 0&&(l=""+s.key),"key"in s){f={};for(var d in s)d!=="key"&&(f[d]=s[d])}else f=s;return s=f.ref,{$$typeof:o,type:t,key:l,ref:s!==void 0?s:null,props:f}}return N.Fragment=c,N.jsx=a,N.jsxs=a,N}var O={};/**
* @license React
* react-jsx-runtime.development.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Q;function me(){return Q||(Q=1,process.env.NODE_ENV!=="production"&&function(){function o(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===ue?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case P:return"Fragment";case ee:return"Profiler";case Z:return"StrictMode";case ae:return"Suspense";case oe:return"SuspenseList";case se:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case u:return"Portal";case re:return(e.displayName||"Context")+".Provider";case te:return(e._context.displayName||"Context")+".Consumer";case ne:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ce:return n=e.displayName||null,n!==null?n:o(e.type)||"Memo";case W:n=e._payload,e=e._init;try{return o(e(n))}catch{}}return null}function c(e){return""+e}function a(e){try{c(e);var n=!1}catch{n=!0}if(n){n=console;var i=n.error,R=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return i.call(n,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",R),c(e)}}function t(e){if(e===P)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===W)return"<...>";try{var n=o(e);return n?"<"+n+">":"<...>"}catch{return"<...>"}}function s(){var e=A.A;return e===null?null:e.getOwner()}function f(){return Error("react-stack-top-frame")}function l(e){if(L.call(e,"key")){var n=Object.getOwnPropertyDescriptor(e,"key").get;if(n&&n.isReactWarning)return!1}return e.key!==void 0}function d(e,n){function i(){Y||(Y=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",n))}i.isReactWarning=!0,Object.defineProperty(e,"key",{get:i,configurable:!0})}function m(){var e=o(this.type);return H[e]||(H[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function y(e,n,i,R,k,_,x,j){return i=_.ref,e={$$typeof:r,type:e,key:n,props:_,_owner:k},(i!==void 0?i:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:m}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:x}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:j}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function E(e,n,i,R,k,_,x,j){var T=n.children;if(T!==void 0)if(R)if(ie(T)){for(R=0;R<T.length;R++)p(T[R]);Object.freeze&&Object.freeze(T)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else p(T);if(L.call(n,"key")){T=o(e);var C=Object.keys(n).filter(function(le){return le!=="key"});R=0<C.length?"{key: someKey, "+C.join(": ..., ")+": ...}":"{key: someKey}",F[T+R]||(C=0<C.length?"{"+C.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
let props = %s;
<%s {...props} />
React keys must be passed directly to JSX without using spread:
let props = %s;
<%s key={someKey} {...props} />`,R,T,C,T),F[T+R]=!0)}if(T=null,i!==void 0&&(a(i),T=""+i),l(n)&&(a(n.key),T=""+n.key),"key"in n){i={};for(var S in n)S!=="key"&&(i[S]=n[S])}else i=n;return T&&d(i,typeof e=="function"?e.displayName||e.name||"Unknown":e),y(e,T,_,k,s(),i,x,j)}function p(e){typeof e=="object"&&e!==null&&e.$$typeof===r&&e._store&&(e._store.validated=1)}var b=J,r=Symbol.for("react.transitional.element"),u=Symbol.for("react.portal"),P=Symbol.for("react.fragment"),Z=Symbol.for("react.strict_mode"),ee=Symbol.for("react.profiler"),te=Symbol.for("react.consumer"),re=Symbol.for("react.context"),ne=Symbol.for("react.forward_ref"),ae=Symbol.for("react.suspense"),oe=Symbol.for("react.suspense_list"),ce=Symbol.for("react.memo"),W=Symbol.for("react.lazy"),se=Symbol.for("react.activity"),ue=Symbol.for("react.client.reference"),A=b.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,L=Object.prototype.hasOwnProperty,ie=Array.isArray,I=console.createTask?console.createTask:function(){return null};b={"react-stack-bottom-frame":function(e){return e()}};var Y,H={},q=b["react-stack-bottom-frame"].bind(b,f)(),B=I(t(f)),F={};O.Fragment=P,O.jsx=function(e,n,i,R,k){var _=1e4>A.recentlyCreatedOwnerStacks++;return E(e,n,i,!1,R,k,_?Error("react-stack-top-frame"):q,_?I(t(e)):B)},O.jsxs=function(e,n,i,R,k){var _=1e4>A.recentlyCreatedOwnerStacks++;return E(e,n,i,!0,R,k,_?Error("react-stack-top-frame"):q,_?I(t(e)):B)}}()),O}var V;function Ee(){return V||(V=1,process.env.NODE_ENV==="production"?w.exports=de():w.exports=me()),w.exports}var M=Ee();/**
* @license
* Copyright 2018 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/const Re=new Set(["children","localName","ref","style","className"]),z=new WeakMap,G=(o,c,a,t,s)=>{const f=s==null?void 0:s[c];f===void 0?(o[c]=a,a==null&&c in HTMLElement.prototype&&o.removeAttribute(c)):a!==t&&((l,d,m)=>{let y=z.get(l);y===void 0&&z.set(l,y=new Map);let E=y.get(d);m!==void 0?E===void 0?(y.set(d,E={handleEvent:m}),l.addEventListener(d,E)):E.handleEvent=m:E!==void 0&&(y.delete(d),l.removeEventListener(d,E))})(o,f,a)},Te=({react:o,tagName:c,elementClass:a,events:t,displayName:s})=>{const f=new Set(Object.keys(t??{})),l=o.forwardRef((d,m)=>{const y=o.useRef(new Map),E=o.useRef(null),p={},b={};for(const[r,u]of Object.entries(d))Re.has(r)?p[r==="className"?"class":r]=u:f.has(r)||r in a.prototype?b[r]=u:p[r]=u;return o.useLayoutEffect(()=>{if(E.current===null)return;const r=new Map;for(const u in b)G(E.current,u,d[u],y.current.get(u),t),y.current.delete(u),r.set(u,d[u]);for(const[u,P]of y.current)G(E.current,u,void 0,P,t);y.current=r}),o.useLayoutEffect(()=>{var r;(r=E.current)==null||r.removeAttribute("defer-hydration")},[]),p.suppressHydrationWarning=!0,o.createElement(c,{...p,ref:o.useCallback(r=>{E.current=r,typeof m=="function"?m(r):m!==null&&(m.current=r)},[m])})});return l.displayName=s??a.name,l},K=(o,c)=>{const a=new Map(o.cart);switch(c.type){case"PRODUCT_INCREMENT":{const t=o.cart.get(c.payload.itemId);return t?a.set(t.itemId,{...t,quantity:t.quantity+1}):a.set(c.payload.itemId,{...c.payload,quantity:1}),{cart:a}}case"PRODUCT_DECREMENT":{const t=a.get(c.payload.itemId);return t&&t.quantity&&t.quantity>0&&a.set(t.itemId,{...t,quantity:t.quantity-1}),!(t!=null&&t.quantity)&&!(t!=null&&t.bulkQuantity)&&a.delete(c.payload.itemId),{cart:a}}case"PRODUCT_INCREMENT_BULK":{const t=o.cart.get(c.payload.itemId);return t?a.set(t.itemId,{...t,bulkQuantity:t.bulkQuantity+1}):a.set(c.payload.itemId,{...c.payload,bulkQuantity:1}),{cart:a}}case"PRODUCT_DECREMENT_BULK":{const t=a.get(c.payload.itemId);return t&&t.bulkQuantity&&t.bulkQuantity>0&&a.set(t.itemId,{...t,bulkQuantity:t.bulkQuantity-1}),{cart:a}}default:return o}},D=v.createContext({cart:new Map}),U=v.createContext(o=>{}),ye=Te({tagName:"isartech-chat",elementClass:h.IsarTechChat,react:v,events:{changeQuantity:h.IsarTechProduct.EVENT_CHANGE_QUANTITY,changeBulkQuantity:h.IsarTechProduct.EVENT_CHANGE_QUANTITY_BULK,onProductIncrement:h.IsarTechProduct.EVENT_INCREMENT,onProductDecrement:h.IsarTechProduct.EVENT_DECREMENT,onProductIncrementBulk:h.IsarTechProduct.EVENT_INCREMENT_BULK,onProductDecrementBulk:h.IsarTechProduct.EVENT_DECREMENT_BULK}}),X=ye,g=v.createContext({incrementWithHook:async()=>!0,decrementWithHook:async()=>!0,incrementBulkWithHook:async()=>!0,decrementBulkWithHook:async()=>!0}),_e=()=>({cart:new Map}),pe=({children:o,initialState:c,onBeforeIncrement:a,onBeforeDecrement:t,onBeforeIncrementBulk:s,onBeforeDecrementBulk:f,onError:l})=>{const[d,m]=v.useReducer(K,c||_e()),y=async r=>{try{return a&&(r=await a(r)),m({type:"PRODUCT_INCREMENT",payload:r}),!0}catch(u){return console.error("error incrementing",u),l&&l(u,"increment",r),!1}},E=async r=>{try{return t&&(r=await t(r)),m({type:"PRODUCT_DECREMENT",payload:r}),!0}catch(u){return console.error("error decrementing product",u),l&&l(u,"decrement",r),!1}},p=async r=>{try{return s&&(r=await s(r)),m({type:"PRODUCT_INCREMENT_BULK",payload:r}),!0}catch(u){return console.error("error incrementing bulk product",u),l&&l(u,"incrementBulk",r),!1}},b=async r=>{try{return f&&(r=await f(r)),m({type:"PRODUCT_DECREMENT_BULK",payload:r}),!0}catch(u){return console.error("error decrementing bulk product",u),l&&l(u,"decrementBulk",r),!1}};return M.jsx(D.Provider,{value:d,children:M.jsx(U.Provider,{value:m,children:M.jsx(g.Provider,{value:{incrementWithHook:y,decrementWithHook:E,incrementBulkWithHook:p,decrementBulkWithHook:b},children:o})})})},be=()=>v.useContext(D),ve=()=>v.useContext(U),ke=()=>v.useContext(g),he=()=>{const{incrementWithHook:o,decrementWithHook:c,incrementBulkWithHook:a,decrementBulkWithHook:t}=v.useContext(g);return{onProductIncrement:async s=>{await o(s.detail)},onProductDecrement:async s=>{await c(s.detail)},onProductIncrementBulk:async s=>{await a(s.detail)},onProductDecrementBulk:async s=>{await t(s.detail)}}};exports.CartApiContext=g;exports.CartContext=D;exports.CartDispatch=U;exports.IsartechChatReact=X;exports.IsartechProvider=pe;exports.cartReducer=K;exports.default=X;exports.setCart=ve;exports.useCart=be;exports.useCartApi=ke;exports.useCartEventHandlers=he;