dinocollab-shared 1.0.4 → 1.1.1

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.
Files changed (70) hide show
  1. package/dist/_virtual/_rollupPluginBabelHelpers.js +2 -2
  2. package/dist/auth/profile.js +1 -1
  3. package/dist/auth/profile.js.map +1 -1
  4. package/dist/auth/widget.js +1 -1
  5. package/dist/auth/widget.js.map +1 -1
  6. package/dist/cart/cart-store.js +1 -1
  7. package/dist/cart/cart-store.js.map +1 -1
  8. package/dist/cart/helpers.js +1 -1
  9. package/dist/cart/helpers.js.map +1 -1
  10. package/dist/cart/hook.js +1 -1
  11. package/dist/cart/hook.js.map +1 -1
  12. package/dist/cart/index.js +1 -1
  13. package/dist/cart/widget.js +1 -1
  14. package/dist/cart/widget.js.map +1 -1
  15. package/dist/layout-global/animated-tabs.units.js +1 -1
  16. package/dist/layout-global/animated-tabs.units.js.map +1 -1
  17. package/dist/layout-global/app-footer.js +1 -1
  18. package/dist/layout-global/app-footer.js.map +1 -1
  19. package/dist/layout-global/app-header.js +1 -1
  20. package/dist/layout-global/app-header.js.map +1 -1
  21. package/dist/layout-global/app-header.nav.js +1 -1
  22. package/dist/layout-global/app-header.nav.js.map +1 -1
  23. package/dist/layout-global/configs.js +1 -1
  24. package/dist/layout-global/configs.js.map +1 -1
  25. package/dist/layout-global/mobile-menu.js +1 -1
  26. package/dist/layout-global/mobile-menu.js.map +1 -1
  27. package/dist/layout-global/sub-menu.js +1 -1
  28. package/dist/layout-global/sub-menu.js.map +1 -1
  29. package/dist/layout-global/sub-menu.styled.js +1 -1
  30. package/dist/layout-global/sub-menu.styled.js.map +1 -1
  31. package/dist/layout-global/types.js.map +1 -1
  32. package/dist/types/auth/hook.d.ts +2 -0
  33. package/dist/types/auth/hook.d.ts.map +1 -0
  34. package/dist/types/auth/index.d.ts +1 -0
  35. package/dist/types/auth/index.d.ts.map +1 -1
  36. package/dist/types/auth/profile.d.ts +10 -17
  37. package/dist/types/auth/profile.d.ts.map +1 -1
  38. package/dist/types/auth/store.d.ts +2 -0
  39. package/dist/types/auth/store.d.ts.map +1 -0
  40. package/dist/types/auth/types.d.ts +18 -0
  41. package/dist/types/auth/types.d.ts.map +1 -0
  42. package/dist/types/auth/widget.d.ts +13 -3
  43. package/dist/types/auth/widget.d.ts.map +1 -1
  44. package/dist/types/cart/cart-store.d.ts +3 -15
  45. package/dist/types/cart/cart-store.d.ts.map +1 -1
  46. package/dist/types/cart/helpers.d.ts +10 -2
  47. package/dist/types/cart/helpers.d.ts.map +1 -1
  48. package/dist/types/cart/hook.d.ts +5 -2
  49. package/dist/types/cart/hook.d.ts.map +1 -1
  50. package/dist/types/cart/index.d.ts +1 -0
  51. package/dist/types/cart/index.d.ts.map +1 -1
  52. package/dist/types/cart/types.d.ts +5 -7
  53. package/dist/types/cart/types.d.ts.map +1 -1
  54. package/dist/types/cart/widget.d.ts +23 -5
  55. package/dist/types/cart/widget.d.ts.map +1 -1
  56. package/dist/types/layout-global/app-footer.d.ts +9 -4
  57. package/dist/types/layout-global/app-footer.d.ts.map +1 -1
  58. package/dist/types/layout-global/app-header.d.ts +11 -4
  59. package/dist/types/layout-global/app-header.d.ts.map +1 -1
  60. package/dist/types/layout-global/app-header.nav.d.ts +4 -14
  61. package/dist/types/layout-global/app-header.nav.d.ts.map +1 -1
  62. package/dist/types/layout-global/sub-menu.d.ts +6 -16
  63. package/dist/types/layout-global/sub-menu.d.ts.map +1 -1
  64. package/dist/types/layout-global/sub-menu.styled.d.ts +1 -0
  65. package/dist/types/layout-global/sub-menu.styled.d.ts.map +1 -1
  66. package/dist/types/layout-global/types.d.ts +13 -10
  67. package/dist/types/layout-global/types.d.ts.map +1 -1
  68. package/dist/types/types.d.ts +0 -3
  69. package/dist/types/types.d.ts.map +1 -1
  70. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- function t(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function r(t){if(Array.isArray(t))return t}function e(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function n(t,r,e,n,o,i,a){try{var u=t[i](a),c=u.value}catch(t){return void e(t)}u.done?r(c):Promise.resolve(c).then(n,o)}function o(t){return function(){var r=this,e=arguments;return new Promise(function(o,i){var a=t.apply(r,e);function u(t){n(a,o,i,u,c,"next",t)}function c(t){n(a,o,i,u,c,"throw",t)}u(void 0)})}}function i(t,r,e){return r=l(r),g(t,p()?Reflect.construct(r,e||[],l(t).constructor):r.apply(t,e))}function a(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function u(t,r,e){return r&&function(t,r){for(var e=0;e<r.length;e++){var n=r[e];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,E(n.key),n)}}(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function c(t,r,e){return(r=E(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function f(){return f="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,r,e){var n=S(t,r);if(n){var o=Object.getOwnPropertyDescriptor(n,r);return o.get?o.get.call(arguments.length<3?t:e):o.value}},f.apply(null,arguments)}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function s(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),r&&m(t,r)}function p(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(p=function(){return!!t})()}function y(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,u=[],c=!0,f=!1;try{if(i=(e=e.call(t)).next,0===r);else for(;!(c=(n=i.call(e)).done)&&(u.push(n.value),u.length!==r);c=!0);}catch(t){f=!0,o=t}finally{try{if(!c&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(f)throw o}}return u}}function b(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function v(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function O(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?v(Object(e),!0).forEach(function(r){c(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):v(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function h(t,r){if(null==t)return{};var e,n,o=d(t,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)e=i[n],-1===r.indexOf(e)&&{}.propertyIsEnumerable.call(t,e)&&(o[e]=t[e])}return o}function d(t,r){if(null==t)return{};var e={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==r.indexOf(n))continue;e[n]=t[n]}return e}function g(t,r){if(r&&("object"==typeof r||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return e(t)}function j(){
1
+ function t(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function r(t){if(Array.isArray(t))return t}function e(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function n(t,r,e,n,o,i,u){try{var a=t[i](u),c=a.value}catch(t){return void e(t)}a.done?r(c):Promise.resolve(c).then(n,o)}function o(t){return function(){var r=this,e=arguments;return new Promise(function(o,i){var u=t.apply(r,e);function a(t){n(u,o,i,a,c,"next",t)}function c(t){n(u,o,i,a,c,"throw",t)}a(void 0)})}}function i(t,r,e){return r=l(r),m(t,p()?Reflect.construct(r,e||[],l(t).constructor):r.apply(t,e))}function u(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function a(t,r,e){return r&&function(t,r){for(var e=0;e<r.length;e++){var n=r[e];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,E(n.key),n)}}(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function c(t,r,e){return(r=E(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function f(){return f="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,r,e){var n=S(t,r);if(n){var o=Object.getOwnPropertyDescriptor(n,r);return o.get?o.get.call(arguments.length<3?t:e):o.value}},f.apply(null,arguments)}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function s(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),r&&P(t,r)}function p(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(p=function(){return!!t})()}function y(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,u,a=[],c=!0,f=!1;try{if(i=(e=e.call(t)).next,0===r);else for(;!(c=(n=i.call(e)).done)&&(a.push(n.value),a.length!==r);c=!0);}catch(t){f=!0,o=t}finally{try{if(!c&&null!=e.return&&(u=e.return(),Object(u)!==u))return}finally{if(f)throw o}}return a}}function b(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function v(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),e.push.apply(e,n)}return e}function O(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?v(Object(e),!0).forEach(function(r){c(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):v(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function h(t,r){if(null==t)return{};var e,n,o=d(t,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)e=i[n],-1===r.indexOf(e)&&{}.propertyIsEnumerable.call(t,e)&&(o[e]=t[e])}return o}function d(t,r){if(null==t)return{};var e={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==r.indexOf(n))continue;e[n]=t[n]}return e}function m(t,r){if(r&&("object"==typeof r||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return e(t)}function g(){
2
2
  /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
3
- var t,r,e="function"==typeof Symbol?Symbol:{},n=e.iterator||"@@iterator",o=e.toStringTag||"@@toStringTag";function i(e,n,o,i){var c=n&&n.prototype instanceof u?n:u,f=Object.create(c.prototype);return P(f,"_invoke",function(e,n,o){var i,u,c,f=0,l=o||[],s=!1,p={p:0,n:0,v:t,a:y,f:y.bind(t,4),d:function(r,e){return i=r,u=0,c=t,p.n=e,a}};function y(e,n){for(u=e,c=n,r=0;!s&&f&&!o&&r<l.length;r++){var o,i=l[r],y=p.p,b=i[2];e>3?(o=b===n)&&(c=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=t):i[0]<=y&&((o=e<2&&y<i[1])?(u=0,p.v=n,p.n=i[1]):y<b&&(o=e<3||i[0]>n||n>b)&&(i[4]=e,i[5]=n,p.n=b,u=0))}if(o||e>1)return a;throw s=!0,n}return function(o,l,b){if(f>1)throw TypeError("Generator is already running");for(s&&1===l&&y(l,b),u=l,c=b;(r=u<2?t:c)||!s;){i||(u?u<3?(u>1&&(p.n=-1),y(u,c)):p.n=c:p.v=c);try{if(f=2,i){if(u||(o="next"),r=i[o]){if(!(r=r.call(i,c)))throw TypeError("iterator result is not an object");if(!r.done)return r;c=r.value,u<2&&(u=0)}else 1===u&&(r=i.return)&&r.call(i),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=t}else if((r=(s=p.n<0)?c:e.call(n,p))!==a)break}catch(r){i=t,u=1,c=r}finally{f=1}}return{value:r,done:s}}}(e,o,i),!0),f}var a={};function u(){}function c(){}function f(){}r=Object.getPrototypeOf;var l=[][n]?r(r([][n]())):(P(r={},n,function(){return this}),r),s=f.prototype=u.prototype=Object.create(l);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,f):(t.__proto__=f,P(t,o,"GeneratorFunction")),t.prototype=Object.create(s),t}return c.prototype=f,P(s,"constructor",f),P(f,"constructor",c),c.displayName="GeneratorFunction",P(f,o,"GeneratorFunction"),P(s),P(s,o,"Generator"),P(s,n,function(){return this}),P(s,"toString",function(){return"[object Generator]"}),(j=function(){return{w:i,m:p}})()}function P(t,r,e,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}P=function(t,r,e,n){function i(r,e){P(t,r,function(t){return this._invoke(r,e,t)})}r?o?o(t,r,{value:e,enumerable:!n,configurable:!n,writable:!n}):t[r]=e:(i("next",0),i("throw",1),i("return",2))},P(t,r,e,n)}function m(t,r){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,r){return t.__proto__=r,t},m(t,r)}function w(t,e){return r(t)||y(t,e)||A(t,e)||b()}function S(t,r){for(;!{}.hasOwnProperty.call(t,r)&&null!==(t=l(t)););return t}function T(t,r,e,n){var o=f(l(t.prototype),r,e);return"function"==typeof o?function(t){return o.apply(e,t)}:o}function _(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,r);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}function E(t){var r=_(t,"string");return"symbol"==typeof r?r:r+""}function A(r,e){if(r){if("string"==typeof r)return t(r,e);var n={}.toString.call(r).slice(8,-1);return"Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n?Array.from(r):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(r,e):void 0}}export{t as arrayLikeToArray,r as arrayWithHoles,e as assertThisInitialized,o as asyncToGenerator,i as callSuper,a as classCallCheck,u as createClass,c as defineProperty,f as get,l as getPrototypeOf,s as inherits,p as isNativeReflectConstruct,y as iterableToArrayLimit,b as nonIterableRest,O as objectSpread2,h as objectWithoutProperties,d as objectWithoutPropertiesLoose,g as possibleConstructorReturn,j as regenerator,P as regeneratorDefine,m as setPrototypeOf,w as slicedToArray,S as superPropBase,T as superPropGet,_ as toPrimitive,E as toPropertyKey,A as unsupportedIterableToArray};
3
+ var t,r,e="function"==typeof Symbol?Symbol:{},n=e.iterator||"@@iterator",o=e.toStringTag||"@@toStringTag";function i(e,n,o,i){var c=n&&n.prototype instanceof a?n:a,f=Object.create(c.prototype);return j(f,"_invoke",function(e,n,o){var i,a,c,f=0,l=o||[],s=!1,p={p:0,n:0,v:t,a:y,f:y.bind(t,4),d:function(r,e){return i=r,a=0,c=t,p.n=e,u}};function y(e,n){for(a=e,c=n,r=0;!s&&f&&!o&&r<l.length;r++){var o,i=l[r],y=p.p,b=i[2];e>3?(o=b===n)&&(c=i[(a=i[4])?5:(a=3,3)],i[4]=i[5]=t):i[0]<=y&&((o=e<2&&y<i[1])?(a=0,p.v=n,p.n=i[1]):y<b&&(o=e<3||i[0]>n||n>b)&&(i[4]=e,i[5]=n,p.n=b,a=0))}if(o||e>1)return u;throw s=!0,n}return function(o,l,b){if(f>1)throw TypeError("Generator is already running");for(s&&1===l&&y(l,b),a=l,c=b;(r=a<2?t:c)||!s;){i||(a?a<3?(a>1&&(p.n=-1),y(a,c)):p.n=c:p.v=c);try{if(f=2,i){if(a||(o="next"),r=i[o]){if(!(r=r.call(i,c)))throw TypeError("iterator result is not an object");if(!r.done)return r;c=r.value,a<2&&(a=0)}else 1===a&&(r=i.return)&&r.call(i),a<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),a=1);i=t}else if((r=(s=p.n<0)?c:e.call(n,p))!==u)break}catch(r){i=t,a=1,c=r}finally{f=1}}return{value:r,done:s}}}(e,o,i),!0),f}var u={};function a(){}function c(){}function f(){}r=Object.getPrototypeOf;var l=[][n]?r(r([][n]())):(j(r={},n,function(){return this}),r),s=f.prototype=a.prototype=Object.create(l);function p(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,f):(t.__proto__=f,j(t,o,"GeneratorFunction")),t.prototype=Object.create(s),t}return c.prototype=f,j(s,"constructor",f),j(f,"constructor",c),c.displayName="GeneratorFunction",j(f,o,"GeneratorFunction"),j(s),j(s,o,"Generator"),j(s,n,function(){return this}),j(s,"toString",function(){return"[object Generator]"}),(g=function(){return{w:i,m:p}})()}function j(t,r,e,n){var o=Object.defineProperty;try{o({},"",{})}catch(t){o=0}j=function(t,r,e,n){function i(r,e){j(t,r,function(t){return this._invoke(r,e,t)})}r?o?o(t,r,{value:e,enumerable:!n,configurable:!n,writable:!n}):t[r]=e:(i("next",0),i("throw",1),i("return",2))},j(t,r,e,n)}function P(t,r){return P=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,r){return t.__proto__=r,t},P(t,r)}function w(t,e){return r(t)||y(t,e)||R(t,e)||b()}function S(t,r){for(;!{}.hasOwnProperty.call(t,r)&&null!==(t=l(t)););return t}function T(t,r,e,n){var o=f(l(t.prototype),r,e);return"function"==typeof o?function(t){return o.apply(e,t)}:o}function _(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,r);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}function E(t){var r=_(t,"string");return"symbol"==typeof r?r:r+""}function A(t){return A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},A(t)}function R(r,e){if(r){if("string"==typeof r)return t(r,e);var n={}.toString.call(r).slice(8,-1);return"Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n?Array.from(r):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(r,e):void 0}}export{t as arrayLikeToArray,r as arrayWithHoles,e as assertThisInitialized,o as asyncToGenerator,i as callSuper,u as classCallCheck,a as createClass,c as defineProperty,f as get,l as getPrototypeOf,s as inherits,p as isNativeReflectConstruct,y as iterableToArrayLimit,b as nonIterableRest,O as objectSpread2,h as objectWithoutProperties,d as objectWithoutPropertiesLoose,m as possibleConstructorReturn,g as regenerator,j as regeneratorDefine,P as setPrototypeOf,w as slicedToArray,S as superPropBase,T as superPropGet,_ as toPrimitive,E as toPropertyKey,A as typeof,R as unsupportedIterableToArray};
4
4
  //# sourceMappingURL=_rollupPluginBabelHelpers.js.map
@@ -1,2 +1,2 @@
1
- import{inherits as o,createClass as r,objectSpread2 as t,defineProperty as e,classCallCheck as l,callSuper as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,jsx as n}from"react/jsx-runtime";import{Fragment as s,Component as c}from"react";import{MfeLink as d}from"dinocollab-core/mfe-shared";import{Fade as p,Tooltip as u,IconButton as m,Avatar as h,Menu as v,Box as f,Typography as g,Divider as x,MenuItem as b,ListItemIcon as y,colors as C}from"@mui/material";import k from"@mui/icons-material/Logout";import M from"@mui/icons-material/ManageAccounts";import{getAvatarProps as S}from"../layout-global/helpers.js";var H={title:"AvatarButton-title"},I=function(){function C(o){var r;return l(this,C),r=i(this,C,[o]),e(r,"toggle",function(){return r.setState({isOpen:!r.state.isOpen})}),e(r,"handleClick",function(o){r.setState({element:o.currentTarget})}),e(r,"handleClose",function(){r.setState({element:null})}),r.state={isOpen:!1,element:null},r}return o(C,c),r(C,[{key:"render",value:function(){var o,r,e,l,i,c=this.props,C=c.logoutHref,I=c.profileHref,L=this.props.userName||"Guest";return a(s,{children:[n(p,{in:!0,children:n(u,{title:"Account settings",children:n(m,{onClick:this.handleClick,size:"small","aria-controls":this.state.element?"account-menu":void 0,"aria-haspopup":"true","aria-expanded":this.state.element?"true":void 0,children:n(h,t({src:this.props.urlAvatar},S(L)))})})}),a(v,{anchorEl:this.state.element,id:"account-menu",disableScrollLock:!0,open:!!this.state.element,onClose:this.handleClose,onClick:this.handleClose,MenuListProps:{component:"div"},slotProps:{paper:z(this.props.theme)},transformOrigin:{horizontal:"right",vertical:"top"},anchorOrigin:{horizontal:"right",vertical:"bottom"},children:[n(f,{sx:{px:2,pt:1,pb:.5,display:"flex",alignItems:"center",gap:1},component:"div",onClick:function(o){return o.stopPropagation()},children:a(g,{variant:"subtitle1",noWrap:!0,className:H.title,children:["Hello, ",L]})}),n(x,{variant:"middle",sx:{my:1}}),n(b,{children:a(d,{internal:"client"===(null===(o=this.props)||void 0===o?void 0:o.site),primaryHref:null!==(r=null==I?void 0:I.primary)&&void 0!==r?r:"/profile",secondaryHref:null!==(e=null==I?void 0:I.secondary)&&void 0!==e?e:"profile",children:[n(y,{children:n(M,{fontSize:"small"})}),"Manage Profile"]})}),n(b,{children:a(d,{primaryHref:null!==(l=null==C?void 0:C.primary)&&void 0!==l?l:"/authentication/logout",secondaryHref:null!==(i=null==C?void 0:C.secondary)&&void 0!==i?i:"logout",onClick:this.props.onLogout,children:[n(y,{children:n(k,{fontSize:"small"})}),"Logout"]})})]})]})}}])}(),z=function(){var o="light"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"dark"),r=o?"#fff":"#323234",t=o?"#000":"#fff",l=o?C.blue[600]:"#e78a3f",i=o?C.grey[200]:C.grey[700];return{elevation:0,sx:e(e(e(e(e(e({"--color-background":r,"--color-text":t,"--color-text-secondary":l,"--color-divider":i,minWidth:"200px",overflow:"visible",filter:"drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",mt:1.5,bgcolor:"var(--color-background)",color:"var(--color-text)"},"& .".concat(H.title),{fontWeight:"600",color:"var(--color-text)"}),"& .MuiAvatar-root",{width:32,height:32,ml:-.5,mr:1,bgcolor:"var(--color-avatar-bg)",color:"var(--color-avatar-text)"}),"& .MuiMenuItem-root",{a:{padding:"6px 16px",textDecoration:"none",color:"currentColor",display:"flex",alignItems:"center",gap:"8px"},padding:0,transition:"all 0.3s",color:"var(--color-text)",".MuiSvgIcon-root":{transition:"all 0.2s",transform:"translateX(0px) scale(1)"},"&:hover":{color:"var(--color-text-secondary)",backgroundColor:"var(--color-divider)",".MuiSvgIcon-root":{color:"var(--color-text-secondary)",transform:"translateX(4px) scale(1.2)"}}}),"& .MuiListItemIcon-root",{color:"var(--color-text)"}),"& .MuiDivider-root",{borderColor:"var(--color-divider)"}),"&:before",{content:'""',display:"block",position:"absolute",top:0,right:20,width:10,height:10,bgcolor:"var(--color-background)",transform:"translateY(-50%) rotate(45deg)",zIndex:0})}};export{I as Profile,H as avatarButtonClasses,I as default};
1
+ import{inherits as t,createClass as o,objectSpread2 as e,defineProperty as r,classCallCheck as n,callSuper as a}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as l,jsx as i}from"react/jsx-runtime";import{Fragment as c,Component as s}from"react";import{Fade as d,Tooltip as u,IconButton as p,Avatar as h,Menu as m,Typography as v,Divider as f,MenuItem as g,Box as x,ListItemIcon as b,colors as C}from"@mui/material";import{getAvatarProps as k}from"../layout-global/helpers.js";var y={root:"AvatarButton-root",title:"AvatarButton-title",content:"AvatarButton-content",item:"AvatarButton-item"},I=function(t,o){return"".concat("",".").concat(y[t]).concat("")},M=function(){function C(t){var o;return n(this,C),o=a(this,C,[t]),r(o,"toggle",function(){return o.setState({isOpen:!o.state.isOpen})}),r(o,"handleClick",function(t){o.setState({element:t.currentTarget})}),r(o,"handleClose",function(){o.setState({element:null})}),o.state={isOpen:!1,element:null},o}return t(C,s),o(C,[{key:"render",value:function(){var t,o=this.props.profile,r=(null==o?void 0:o.UserName)||"Guest";return l(c,{children:[i(d,{in:!0,children:i(u,{title:"Account settings",children:i(p,{onClick:this.handleClick,size:"small","aria-controls":this.state.element?"account-menu":void 0,"aria-haspopup":"true","aria-expanded":this.state.element?"true":void 0,children:i(h,e({src:null!==(t=null==o?void 0:o.AvatarUrl)&&void 0!==t?t:""},k(r)))})})}),l(m,{anchorEl:this.state.element,id:"account-menu",disableScrollLock:!0,open:!!this.state.element,onClose:this.handleClose,onClick:this.handleClose,MenuListProps:{component:"div"},slotProps:{paper:S(this.props.theme)},transformOrigin:{horizontal:"right",vertical:"top"},anchorOrigin:{horizontal:"right",vertical:"bottom"},children:[i("div",{className:y.content,onClick:function(t){return t.stopPropagation()},children:l(v,{variant:"subtitle1",noWrap:!0,className:y.title,children:["Hello, ",r]})}),i(f,{variant:"middle",sx:{my:1}}),this.props.menuConfigs.map(function(t,o){return i(g,{children:l(x,e(e({className:y.item},t.href?{component:"a",href:t.href}:{}),{},{onClick:t.onClick,children:[i(b,{children:t.icon}),t.title]}))},o)})]})]})}}])}(),S=function(){var t="light"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"dark"),o=t?"#fff":"#323234",e=t?"#000":"#fff",n=t?C.blue[600]:"#e78a3f",a=t?C.grey[200]:C.grey[700];return{elevation:0,sx:r(r(r(r(r(r(r(r({"--color-background":o,"--color-text":e,"--color-text-secondary":n,"--color-divider":a,minWidth:"200px",overflow:"visible",filter:"drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",mt:1.5,bgcolor:"var(--color-background)",color:"var(--color-text)"},I("content"),{padding:"16px 24px 8px",display:"flex",alignItems:"center",gap:1}),I("title"),{fontWeight:"600",color:"var(--color-text)"}),I("item"),{padding:"6px 16px",textDecoration:"none",color:"currentColor",display:"flex",alignItems:"center",gap:"8px"}),"& .MuiAvatar-root",{width:32,height:32,ml:-.5,mr:1,bgcolor:"var(--color-avatar-bg)",color:"var(--color-avatar-text)"}),"& .MuiMenuItem-root",{padding:0,transition:"all 0.3s",color:"var(--color-text)",".MuiSvgIcon-root":{transition:"all 0.2s",transform:"translateX(0px) scale(1)"},"&:hover":{color:"var(--color-text-secondary)",backgroundColor:"var(--color-divider)",".MuiSvgIcon-root":{color:"var(--color-text-secondary)",transform:"translateX(4px) scale(1.2)"}}}),"& .MuiListItemIcon-root",{color:"var(--color-text)"}),"& .MuiDivider-root",{borderColor:"var(--color-divider)"}),"&:before",{content:'""',display:"block",position:"absolute",top:0,right:20,width:10,height:10,bgcolor:"var(--color-background)",transform:"translateY(-50%) rotate(45deg)",zIndex:0})}};export{M as Profile,M as default,y as profileClasses};
2
2
  //# sourceMappingURL=profile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sources":["../../src/auth/profile.tsx"],"sourcesContent":["import { Component, Fragment } from 'react'\r\nimport type { PropsWithChildren, MouseEvent as RMouseEvent } from 'react'\r\nimport { MfeLink } from 'dinocollab-core/mfe-shared'\r\nimport { Box, MenuItem, Divider, IconButton, Tooltip, colors } from '@mui/material'\r\nimport { Avatar, Fade, ListItemIcon, Menu, PaperProps, Typography } from '@mui/material'\r\nimport Logout from '@mui/icons-material/Logout'\r\nimport ManageAccountsIcon from '@mui/icons-material/ManageAccounts'\r\nimport { getAvatarProps } from '../layout-global/helpers'\r\nimport type { IAppSiteProps } from '../types'\r\n\r\nexport const avatarButtonClasses = {\r\n root: 'AvatarButton-root',\r\n title: 'AvatarButton-title'\r\n}\r\n\r\ninterface IAvatarButtonProps extends PropsWithChildren, IAppSiteProps {\r\n userName?: string\r\n // logoutPath?: any\r\n // profilePath?: string\r\n urlAvatar?: string\r\n /* Optional: theme prop to switch between light and dark themes\r\n * If not provided, defaults to 'dark'.\r\n * This can be used to apply different styles based on the theme.\r\n */\r\n theme?: 'dark' | 'light'\r\n onLogout?: (event: RMouseEvent<HTMLAnchorElement, MouseEvent>) => void\r\n profileHref?: { primary: string; secondary?: string }\r\n logoutHref?: { primary: string; secondary?: string }\r\n}\r\n\r\ninterface IAvatarButtonState {\r\n isOpen: boolean\r\n element: HTMLElement | null\r\n}\r\n\r\nexport class Profile extends Component<IAvatarButtonProps, IAvatarButtonState> {\r\n constructor(props: IAvatarButtonProps) {\r\n super(props)\r\n this.state = {\r\n isOpen: false,\r\n element: null\r\n }\r\n }\r\n\r\n toggle = () => this.setState({ isOpen: !this.state.isOpen })\r\n\r\n handleClick = (event: RMouseEvent<HTMLElement>) => {\r\n this.setState({ element: event.currentTarget })\r\n }\r\n\r\n handleClose = () => {\r\n this.setState({ element: null })\r\n }\r\n\r\n render() {\r\n const { logoutHref, profileHref } = this.props\r\n const usename = this.props.userName || 'Guest'\r\n return (\r\n <Fragment>\r\n <Fade in>\r\n <Tooltip title='Account settings'>\r\n <IconButton\r\n onClick={this.handleClick}\r\n size='small'\r\n aria-controls={this.state.element ? 'account-menu' : undefined}\r\n aria-haspopup='true'\r\n aria-expanded={this.state.element ? 'true' : undefined}\r\n >\r\n <Avatar src={this.props.urlAvatar} {...getAvatarProps(usename)} />\r\n </IconButton>\r\n </Tooltip>\r\n </Fade>\r\n <Menu\r\n anchorEl={this.state.element}\r\n id='account-menu'\r\n disableScrollLock\r\n open={!!this.state.element}\r\n onClose={this.handleClose}\r\n onClick={this.handleClose}\r\n MenuListProps={{ component: 'div' }}\r\n slotProps={{ paper: getStylePaper(this.props.theme) }}\r\n transformOrigin={{ horizontal: 'right', vertical: 'top' }}\r\n anchorOrigin={{ horizontal: 'right', vertical: 'bottom' }}\r\n >\r\n <Box\r\n sx={{ px: 2, pt: 1, pb: 0.5, display: 'flex', alignItems: 'center', gap: 1 }}\r\n component='div'\r\n onClick={(e: RMouseEvent<HTMLDivElement, MouseEvent>) => e.stopPropagation()}\r\n >\r\n <Typography variant='subtitle1' noWrap className={avatarButtonClasses.title}>\r\n Hello, {usename}\r\n </Typography>\r\n </Box>\r\n <Divider variant='middle' sx={{ my: 1 }} />\r\n <MenuItem>\r\n <MfeLink\r\n internal={this.props?.site === 'client'}\r\n primaryHref={profileHref?.primary ?? '/profile'}\r\n secondaryHref={profileHref?.secondary ?? 'profile'}\r\n >\r\n <ListItemIcon>\r\n <ManageAccountsIcon fontSize='small' />\r\n </ListItemIcon>\r\n Manage Profile\r\n </MfeLink>\r\n </MenuItem>\r\n <MenuItem>\r\n <MfeLink\r\n primaryHref={logoutHref?.primary ?? '/authentication/logout'}\r\n secondaryHref={logoutHref?.secondary ?? 'logout'}\r\n onClick={this.props.onLogout}\r\n >\r\n <ListItemIcon>\r\n <Logout fontSize='small' />\r\n </ListItemIcon>\r\n Logout\r\n </MfeLink>\r\n </MenuItem>\r\n </Menu>\r\n </Fragment>\r\n )\r\n }\r\n}\r\nexport default Profile\r\n\r\nconst getStylePaper = (theme: 'dark' | 'light' = 'dark'): Partial<PaperProps<'div', {}>> => {\r\n const isLightTheme = theme === 'light'\r\n const backgroundColor = isLightTheme ? '#fff' : '#323234'\r\n const textColor = isLightTheme ? '#000' : '#fff'\r\n const textSecondaryColor = isLightTheme ? colors.blue[600] : '#e78a3f'\r\n const dividerColor = isLightTheme ? colors.grey[200] : colors.grey[700]\r\n return {\r\n elevation: 0,\r\n sx: {\r\n '--color-background': backgroundColor,\r\n '--color-text': textColor,\r\n '--color-text-secondary': textSecondaryColor,\r\n '--color-divider': dividerColor,\r\n\r\n minWidth: '200px',\r\n overflow: 'visible',\r\n filter: 'drop-shadow(0px 2px 8px rgba(0,0,0,0.32))',\r\n mt: 1.5,\r\n bgcolor: 'var(--color-background)', // dark background\r\n color: 'var(--color-text)', // white text,\r\n [`& .${avatarButtonClasses.title}`]: {\r\n fontWeight: '600',\r\n color: 'var(--color-text)'\r\n },\r\n '& .MuiAvatar-root': {\r\n width: 32,\r\n height: 32,\r\n ml: -0.5,\r\n mr: 1,\r\n bgcolor: 'var(--color-avatar-bg)',\r\n color: 'var(--color-avatar-text)'\r\n },\r\n '& .MuiMenuItem-root': {\r\n a: {\r\n padding: '6px 16px',\r\n textDecoration: 'none',\r\n color: 'currentColor',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px'\r\n },\r\n padding: 0,\r\n transition: 'all 0.3s',\r\n color: 'var(--color-text)',\r\n '.MuiSvgIcon-root': {\r\n transition: 'all 0.2s',\r\n transform: 'translateX(0px) scale(1)'\r\n },\r\n '&:hover': {\r\n color: 'var(--color-text-secondary)',\r\n backgroundColor: 'var(--color-divider)',\r\n '.MuiSvgIcon-root': {\r\n color: 'var(--color-text-secondary)',\r\n transform: 'translateX(4px) scale(1.2)'\r\n }\r\n }\r\n },\r\n '& .MuiListItemIcon-root': {\r\n color: 'var(--color-text)'\r\n },\r\n '& .MuiDivider-root': {\r\n borderColor: 'var(--color-divider)'\r\n },\r\n '&:before': {\r\n content: '\"\"',\r\n display: 'block',\r\n position: 'absolute',\r\n top: 0,\r\n right: 20,\r\n width: 10,\r\n height: 10,\r\n bgcolor: 'var(--color-background)',\r\n transform: 'translateY(-50%) rotate(45deg)',\r\n zIndex: 0\r\n }\r\n }\r\n }\r\n}\r\n"],"names":["avatarButtonClasses","title","Profile","props","_this","_classCallCheck","_callSuper","_defineProperty","setState","isOpen","state","event","element","currentTarget","_inherits","Component","_createClass","key","value","_this$props2","_profileHref$primary","_profileHref$secondar","_logoutHref$primary","_logoutHref$secondary","_this$props","this","logoutHref","profileHref","usename","userName","_jsxs","Fragment","children","_jsx","Fade","in","Tooltip","IconButton","onClick","handleClick","size","undefined","Avatar","_objectSpread","src","urlAvatar","getAvatarProps","Menu","anchorEl","id","disableScrollLock","open","onClose","handleClose","MenuListProps","component","slotProps","paper","getStylePaper","theme","transformOrigin","horizontal","vertical","anchorOrigin","Box","sx","px","pt","pb","display","alignItems","gap","e","stopPropagation","Typography","variant","noWrap","className","Divider","my","MenuItem","MfeLink","internal","site","primaryHref","primary","secondaryHref","secondary","ListItemIcon","ManageAccountsIcon","fontSize","onLogout","Logout","isLightTheme","arguments","length","backgroundColor","textColor","textSecondaryColor","colors","blue","dividerColor","grey","elevation","minWidth","overflow","filter","mt","bgcolor","color","concat","fontWeight","width","height","ml","mr","a","padding","textDecoration","transition","transform","borderColor","content","position","top","right","zIndex"],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sources":["../../src/auth/profile.tsx"],"sourcesContent":["import { Component, Fragment } from 'react'\r\nimport type { PropsWithChildren } from 'react'\r\nimport { Box, MenuItem, Divider, IconButton, Tooltip, colors } from '@mui/material'\r\nimport { Avatar, Fade, ListItemIcon, Menu, PaperProps, Typography } from '@mui/material'\r\nimport { getAvatarProps } from '../layout-global/helpers'\r\nimport type { IIMenuConfigs, IProfile } from './types'\r\n\r\nexport const profileClasses = {\r\n root: 'AvatarButton-root',\r\n title: 'AvatarButton-title',\r\n content: 'AvatarButton-content',\r\n item: 'AvatarButton-item'\r\n}\r\n\r\nconst getClasses = (key: keyof typeof profileClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${profileClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nexport interface IAvatarButtonProps extends PropsWithChildren {\r\n profile: IProfile | null\r\n menuConfigs: IIMenuConfigs\r\n theme?: 'dark' | 'light'\r\n}\r\n\r\nexport interface IAvatarButtonState {\r\n isOpen: boolean\r\n element: HTMLElement | null\r\n}\r\n\r\nexport class Profile extends Component<IAvatarButtonProps, IAvatarButtonState> {\r\n constructor(props: IAvatarButtonProps) {\r\n super(props)\r\n this.state = {\r\n isOpen: false,\r\n element: null\r\n }\r\n }\r\n\r\n toggle = () => this.setState({ isOpen: !this.state.isOpen })\r\n\r\n handleClick = (event: React.MouseEvent<HTMLElement>) => {\r\n this.setState({ element: event.currentTarget })\r\n }\r\n\r\n handleClose = () => {\r\n this.setState({ element: null })\r\n }\r\n\r\n render() {\r\n const { profile } = this.props\r\n const userName = profile?.UserName || 'Guest'\r\n return (\r\n <Fragment>\r\n <Fade in>\r\n <Tooltip title='Account settings'>\r\n <IconButton\r\n onClick={this.handleClick}\r\n size='small'\r\n aria-controls={this.state.element ? 'account-menu' : undefined}\r\n aria-haspopup='true'\r\n aria-expanded={this.state.element ? 'true' : undefined}\r\n >\r\n <Avatar src={profile?.AvatarUrl ?? ''} {...getAvatarProps(userName)} />\r\n </IconButton>\r\n </Tooltip>\r\n </Fade>\r\n <Menu\r\n anchorEl={this.state.element}\r\n id='account-menu'\r\n disableScrollLock\r\n open={!!this.state.element}\r\n onClose={this.handleClose}\r\n onClick={this.handleClose}\r\n MenuListProps={{ component: 'div' }}\r\n slotProps={{ paper: getStylePaper(this.props.theme) }}\r\n transformOrigin={{ horizontal: 'right', vertical: 'top' }}\r\n anchorOrigin={{ horizontal: 'right', vertical: 'bottom' }}\r\n >\r\n <div className={profileClasses.content} onClick={(e: React.MouseEvent<HTMLDivElement, MouseEvent>) => e.stopPropagation()}>\r\n <Typography variant='subtitle1' noWrap className={profileClasses.title}>\r\n Hello, {userName}\r\n </Typography>\r\n </div>\r\n <Divider variant='middle' sx={{ my: 1 }} />\r\n {this.props.menuConfigs.map((menuConfig, index) => (\r\n <MenuItem key={index}>\r\n <Box\r\n className={profileClasses.item}\r\n {...(menuConfig.href ? { component: 'a', href: menuConfig.href } : {})}\r\n onClick={menuConfig.onClick}\r\n >\r\n <ListItemIcon>{menuConfig.icon}</ListItemIcon>\r\n {menuConfig.title}\r\n </Box>\r\n </MenuItem>\r\n ))}\r\n </Menu>\r\n </Fragment>\r\n )\r\n }\r\n}\r\nexport default Profile\r\n\r\nconst getStylePaper = (theme: 'dark' | 'light' = 'dark'): Partial<PaperProps<'div', {}>> => {\r\n const isLightTheme = theme === 'light'\r\n const backgroundColor = isLightTheme ? '#fff' : '#323234'\r\n const textColor = isLightTheme ? '#000' : '#fff'\r\n const textSecondaryColor = isLightTheme ? colors.blue[600] : '#e78a3f'\r\n const dividerColor = isLightTheme ? colors.grey[200] : colors.grey[700]\r\n return {\r\n elevation: 0,\r\n sx: {\r\n '--color-background': backgroundColor,\r\n '--color-text': textColor,\r\n '--color-text-secondary': textSecondaryColor,\r\n '--color-divider': dividerColor,\r\n\r\n minWidth: '200px',\r\n overflow: 'visible',\r\n filter: 'drop-shadow(0px 2px 8px rgba(0,0,0,0.32))',\r\n mt: 1.5,\r\n bgcolor: 'var(--color-background)', // dark background\r\n color: 'var(--color-text)', // white text,\r\n [getClasses('content')]: {\r\n padding: '16px 24px 8px', //theme.spacing(1, 2, 0.5),\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: 1\r\n },\r\n [getClasses('title')]: {\r\n fontWeight: '600',\r\n color: 'var(--color-text)'\r\n },\r\n\r\n [getClasses('item')]: {\r\n padding: '6px 16px',\r\n textDecoration: 'none',\r\n color: 'currentColor',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px'\r\n },\r\n '& .MuiAvatar-root': {\r\n width: 32,\r\n height: 32,\r\n ml: -0.5,\r\n mr: 1,\r\n bgcolor: 'var(--color-avatar-bg)',\r\n color: 'var(--color-avatar-text)'\r\n },\r\n '& .MuiMenuItem-root': {\r\n padding: 0,\r\n transition: 'all 0.3s',\r\n color: 'var(--color-text)',\r\n '.MuiSvgIcon-root': {\r\n transition: 'all 0.2s',\r\n transform: 'translateX(0px) scale(1)'\r\n },\r\n '&:hover': {\r\n color: 'var(--color-text-secondary)',\r\n backgroundColor: 'var(--color-divider)',\r\n '.MuiSvgIcon-root': {\r\n color: 'var(--color-text-secondary)',\r\n transform: 'translateX(4px) scale(1.2)'\r\n }\r\n }\r\n },\r\n '& .MuiListItemIcon-root': {\r\n color: 'var(--color-text)'\r\n },\r\n '& .MuiDivider-root': {\r\n borderColor: 'var(--color-divider)'\r\n },\r\n '&:before': {\r\n content: '\"\"',\r\n display: 'block',\r\n position: 'absolute',\r\n top: 0,\r\n right: 20,\r\n width: 10,\r\n height: 10,\r\n bgcolor: 'var(--color-background)',\r\n transform: 'translateY(-50%) rotate(45deg)',\r\n zIndex: 0\r\n }\r\n }\r\n }\r\n}\r\n"],"names":["profileClasses","root","title","content","item","getClasses","key","options","concat","Profile","props","_this","_classCallCheck","_callSuper","_defineProperty","setState","isOpen","state","event","element","currentTarget","_inherits","Component","_createClass","value","_profile$AvatarUrl","profile","this","userName","UserName","_jsxs","Fragment","children","_jsx","Fade","in","Tooltip","IconButton","onClick","handleClick","size","undefined","Avatar","_objectSpread","src","AvatarUrl","getAvatarProps","Menu","anchorEl","id","disableScrollLock","open","onClose","handleClose","MenuListProps","component","slotProps","paper","getStylePaper","theme","transformOrigin","horizontal","vertical","anchorOrigin","className","e","stopPropagation","Typography","variant","noWrap","Divider","sx","my","menuConfigs","map","menuConfig","index","MenuItem","Box","href","ListItemIcon","icon","isLightTheme","arguments","length","backgroundColor","textColor","textSecondaryColor","colors","blue","dividerColor","grey","elevation","minWidth","overflow","filter","mt","bgcolor","color","padding","display","alignItems","gap","fontWeight","textDecoration","width","height","ml","mr","transition","transform","borderColor","position","top","right","zIndex"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{objectSpread2 as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as i}from"react/jsx-runtime";import{Typography as e}from"@mui/material";import{useMfeAuth as o}from"dinocollab-core/mfe-shared";import t from"@mui/icons-material/Login";import{AppButtonOrange as a,AppIconButtonOrange as n}from"../layout-global/ui.units.js";import{Profile as l}from"./profile.js";import m from"../components/responsive-display.js";var s=function(s){var u=o(),f=u.isAuthenticated,p=u.user;if(u.isLoading)return null;if(!f){var c="/login";return i(m,{xs:i(n,r(r({},{component:"a",href:c}),{},{children:i(t,{fontSize:"small"})})),md:i(a,r(r({className:"animate-bounce",startIcon:i(t,{fontSize:"small"})},{component:"a",href:c}),{},{children:i(e,{variant:"h6",children:"Login"})}))})}return i(l,{site:s.site,userName:(null==p?void 0:p.displayName)||"Guest User",urlAvatar:null==p?void 0:p.avatar})},u=function(e){var o=function(o){return i(s,r(r({},e),o))};return o.displayName="AuthWidget",o};export{s as AuthWidget,u as createAuthWidget,s as default};
1
+ import{objectSpread2 as o}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as i}from"react/jsx-runtime";import{Typography as n}from"@mui/material";import r from"@mui/icons-material/Logout";import e from"@mui/icons-material/Login";import t from"@mui/icons-material/ManageAccounts";import{AppButtonOrange as l,AppIconButtonOrange as a}from"../layout-global/ui.units.js";import{Profile as m}from"./profile.js";import f from"../components/responsive-display.js";var c=function(c){var u,s,p=c.isAuthenticated,g=c.profile;return c.isLoading?null:p?i(m,{profile:g,menuConfigs:[{title:"Manage Profile",icon:i(t,{fontSize:"small"}),href:c.hrefProfile,onClick:c.onProfileClick},{title:"Logout",icon:i(r,{fontSize:"small"}),href:c.hrefLogout,onClick:c.onLogoutClick}]}):i(f,{xs:i(a,o(o({},{component:"a",href:null!==(u=c.hrefLogin)&&void 0!==u?u:"/"}),{},{onClick:c.onLoginClick,children:i(e,{fontSize:"small"})})),md:i(l,o(o({className:"animate-bounce",startIcon:i(e,{fontSize:"small"})},{component:"a",href:null!==(s=c.hrefLogin)&&void 0!==s?s:"/"}),{},{onClick:c.onLoginClick,children:i(n,{variant:"h6",children:"Login"})}))})},u=function(n){var r=function(r){return i(c,o(o({},n),r))};return r.displayName="AuthWidget",r};export{c as AuthWidget,u as createAuthWidget,c as default};
2
2
  //# sourceMappingURL=widget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"widget.js","sources":["../../src/auth/widget.tsx"],"sourcesContent":["import { FC } from 'react'\r\nimport { Typography } from '@mui/material'\r\nimport { useMfeAuth } from 'dinocollab-core/mfe-shared'\r\nimport LoginIcon from '@mui/icons-material/Login'\r\nimport { AppButtonOrange, AppIconButtonOrange } from '../layout-global/ui.units'\r\nimport type { IAppSiteProps } from '../types'\r\nimport Profile from './profile'\r\nimport ResponsiveDisplay from '../components/responsive-display'\r\n\r\nexport interface IAuthWidgetProps extends IAppSiteProps {}\r\n\r\nexport const AuthWidget: FC<IAuthWidgetProps> = (props) => {\r\n const { isAuthenticated, user, isLoading } = useMfeAuth()\r\n\r\n if (isLoading) return null\r\n\r\n if (!isAuthenticated) {\r\n const loginPath = '/login'\r\n return (\r\n <ResponsiveDisplay\r\n xs={\r\n <AppIconButtonOrange {...{ component: 'a', href: loginPath }}>\r\n <LoginIcon fontSize='small' />\r\n </AppIconButtonOrange>\r\n }\r\n md={\r\n <AppButtonOrange className='animate-bounce' startIcon={<LoginIcon fontSize='small' />} {...{ component: 'a', href: loginPath }}>\r\n <Typography variant='h6'>Login</Typography>\r\n </AppButtonOrange>\r\n }\r\n />\r\n )\r\n }\r\n\r\n // If the user is authenticated, display the AuthWidget with user details\r\n return <Profile site={props.site} userName={user?.displayName || 'Guest User'} urlAvatar={user?.avatar} />\r\n}\r\nexport default AuthWidget\r\n\r\nexport const createAuthWidget = (params: IAuthWidgetProps) => {\r\n const _AuthWidget: FC<Partial<IAuthWidgetProps>> = (props) => <AuthWidget {...params} {...props} />\r\n _AuthWidget.displayName = 'AuthWidget'\r\n return _AuthWidget\r\n}\r\n"],"names":["AuthWidget","props","_useMfeAuth","useMfeAuth","isAuthenticated","user","isLoading","loginPath","_jsx","ResponsiveDisplay","xs","AppIconButtonOrange","_objectSpread","component","href","children","LoginIcon","fontSize","md","AppButtonOrange","className","startIcon","Typography","variant","Profile","site","userName","displayName","urlAvatar","avatar","createAuthWidget","params","_AuthWidget"],"mappings":"mbAWaA,EAAmC,SAACC,GAC/C,IAAAC,EAA6CC,IAArCC,EAAeF,EAAfE,gBAAiBC,EAAIH,EAAJG,KAEzB,GAFwCH,EAATI,UAEhB,OAAO,KAEtB,IAAKF,EAAiB,CACpB,IAAMG,EAAY,SAClB,OACEC,EAACC,EAAiB,CAChBC,GACEF,EAACG,EAAmBC,EAAAA,EAAK,CAAA,EAAA,CAAEC,UAAW,IAAKC,KAAMP,IAAW,CAAA,EAAA,CAAAQ,SAC1DP,EAACQ,GAAUC,SAAS,aAGxBC,GACEV,EAACW,EAAeP,EAAAA,EAAA,CAACQ,UAAU,iBAAiBC,UAAWb,EAACQ,EAAS,CAACC,SAAS,WAAgB,CAAEJ,UAAW,IAAKC,KAAMP,IAAW,CAAA,EAAA,CAAAQ,SAC5HP,EAACc,EAAU,CAACC,QAAQ,KAAIR,SAAA,cAKjC,CAGD,OAAOP,EAACgB,EAAQ,CAAAC,KAAMxB,EAAMwB,KAAMC,UAAUrB,eAAAA,EAAMsB,cAAe,aAAcC,UAAWvB,aAAI,EAAJA,EAAMwB,QAClG,EAGaC,EAAmB,SAACC,GAC/B,IAAMC,EAA6C,SAAC/B,GAAK,OAAKO,EAACR,EAAUY,EAAAA,EAAA,CAAA,EAAKmB,GAAY9B,GAAS,EAEnG,OADA+B,EAAYL,YAAc,aACnBK,CACT"}
1
+ {"version":3,"file":"widget.js","sources":["../../src/auth/widget.tsx"],"sourcesContent":["import { FC } from 'react'\r\nimport { Typography } from '@mui/material'\r\nimport Logout from '@mui/icons-material/Logout'\r\nimport LoginIcon from '@mui/icons-material/Login'\r\nimport ManageAccountsIcon from '@mui/icons-material/ManageAccounts'\r\nimport { AppButtonOrange, AppIconButtonOrange } from '../layout-global/ui.units'\r\nimport type { IAuthState } from './types'\r\nimport type { IAppSiteBaseUrl } from '../types'\r\nimport Profile from './profile'\r\nimport ResponsiveDisplay from '../components/responsive-display'\r\n\r\nexport interface ICreateAuthBase {\r\n baseUrl: IAppSiteBaseUrl\r\n hrefProfile?: string\r\n onProfileClick?: (e: React.MouseEvent<HTMLAnchorElement | HTMLDivElement, MouseEvent>) => void\r\n hrefLogin?: string\r\n onLoginClick?: (e: React.MouseEvent<HTMLAnchorElement | HTMLDivElement, MouseEvent>) => void\r\n hrefLogout?: string\r\n onLogoutClick?: (e: React.MouseEvent<HTMLAnchorElement | HTMLDivElement, MouseEvent>) => void\r\n}\r\n\r\nexport interface IAuthWidgetProps extends IAuthState, ICreateAuthBase {}\r\n\r\n// interface IAuthWidgetBaseProps extends IAuthWidgetProps {}\r\n\r\nexport const AuthWidget: FC<IAuthWidgetProps> = (props) => {\r\n const { isAuthenticated, profile, isLoading } = props\r\n if (isLoading) return null\r\n\r\n if (!isAuthenticated) {\r\n return (\r\n <ResponsiveDisplay\r\n xs={\r\n <AppIconButtonOrange {...{ component: 'a', href: props.hrefLogin ?? '/' }} onClick={props.onLoginClick as any}>\r\n <LoginIcon fontSize='small' />\r\n </AppIconButtonOrange>\r\n }\r\n md={\r\n <AppButtonOrange\r\n className='animate-bounce'\r\n startIcon={<LoginIcon fontSize='small' />}\r\n {...{ component: 'a', href: props.hrefLogin ?? '/' }}\r\n onClick={props.onLoginClick as any}\r\n >\r\n <Typography variant='h6'>Login</Typography>\r\n </AppButtonOrange>\r\n }\r\n />\r\n )\r\n }\r\n\r\n // If the user is authenticated, display the AuthWidget with user details\r\n return (\r\n <Profile\r\n profile={profile}\r\n menuConfigs={[\r\n {\r\n title: 'Manage Profile',\r\n icon: <ManageAccountsIcon fontSize='small' />,\r\n href: props.hrefProfile,\r\n onClick: props.onProfileClick\r\n },\r\n { title: 'Logout', icon: <Logout fontSize='small' />, href: props.hrefLogout, onClick: props.onLogoutClick }\r\n ]}\r\n />\r\n )\r\n}\r\n\r\n// const AuthWidget: FC<IAuthWidgetProps> = (props) => {\r\n// const { profile, isAuthenticated, isLoading, ...otherProps } = props\r\n// const authState: IAuthState = { profile, isAuthenticated, isLoading }\r\n// const currentAuth = useAuth()\r\n// const { setState } = useAuthActions()\r\n\r\n// useEffect(() => {\r\n// setState(authState)\r\n// return () => {}\r\n// }, [JSON.stringify(authState)])\r\n\r\n// return <AuthWidgetBase profile={currentAuth.profile} {...otherProps} />\r\n// }\r\n\r\nexport default AuthWidget\r\n\r\nexport const createAuthWidget = (params: ICreateAuthBase) => {\r\n const _AuthWidget: FC<Omit<IAuthWidgetProps, 'baseUrl'>> = (props) => <AuthWidget {...params} {...props} />\r\n _AuthWidget.displayName = 'AuthWidget'\r\n return _AuthWidget\r\n}\r\n"],"names":["AuthWidget","props","_props$hrefLogin","_props$hrefLogin2","isAuthenticated","profile","isLoading","_jsx","Profile","menuConfigs","title","icon","ManageAccountsIcon","fontSize","href","hrefProfile","onClick","onProfileClick","Logout","hrefLogout","onLogoutClick","ResponsiveDisplay","xs","AppIconButtonOrange","_objectSpread","component","hrefLogin","onLoginClick","LoginIcon","md","AppButtonOrange","className","startIcon","children","Typography","variant","createAuthWidget","params","_AuthWidget","displayName"],"mappings":"udAyBaA,EAAmC,SAACC,GAC/C,IAGsBC,EAAAC,EAHdC,EAAwCH,EAAxCG,gBAAiBC,EAAuBJ,EAAvBI,QACzB,OADgDJ,EAAdK,UACZ,KAEjBF,EAwBHG,EAACC,EAAO,CACNH,QAASA,EACTI,YAAa,CACX,CACEC,MAAO,iBACPC,KAAMJ,EAACK,GAAmBC,SAAS,UACnCC,KAAMb,EAAMc,YACZC,QAASf,EAAMgB,gBAEjB,CAAEP,MAAO,SAAUC,KAAMJ,EAACW,EAAO,CAAAL,SAAS,UAAYC,KAAMb,EAAMkB,WAAYH,QAASf,EAAMmB,kBA/B/Fb,EAACc,GACCC,GACEf,EAACgB,EAAmBC,EAAAA,EAAK,CAAA,EAAA,CAAEC,UAAW,IAAKX,KAAqBZ,QAAjBA,EAAED,EAAMyB,iBAASxB,IAAAA,EAAAA,EAAI,MAAK,CAAA,EAAA,CAAEc,QAASf,EAAM0B,sBACxFpB,EAACqB,GAAUf,SAAS,aAGxBgB,GACEtB,EAACuB,EAAeN,EAAAA,EAAA,CACdO,UAAU,iBACVC,UAAWzB,EAACqB,GAAUf,SAAS,WAC3B,CAAEY,UAAW,IAAKX,KAAqBX,QAAjBA,EAAEF,EAAMyB,iBAASvB,IAAAA,EAAAA,EAAI,MAAK,CAAA,EAAA,CACpDa,QAASf,EAAM0B,aAAmBM,SAElC1B,EAAC2B,EAAU,CAACC,QAAQ,4BAsBhC,EAkBaC,EAAmB,SAACC,GAC/B,IAAMC,EAAqD,SAACrC,GAAK,OAAKM,EAACP,EAAUwB,EAAAA,EAAA,CAAA,EAAKa,GAAYpC,GAAS,EAE3G,OADAqC,EAAYC,YAAc,aACnBD,CACT"}
@@ -1,2 +1,2 @@
1
- import{createClass as t,objectSpread2 as e,classCallCheck as a,inherits as r,superPropGet as i,callSuper as n,defineProperty as o}from"../_virtual/_rollupPluginBabelHelpers.js";import s from"events";var l=function(){function e(){var t;return a(this,e),t=n(this,e),o(t,"_createWrapListener",function(t){return function(){try{t.apply(void 0,arguments)}catch(t){console.error("Error in MfeBridge listener:",t)}}}),t}return r(e,s),t(e,[{key:"subscribe",value:function(t,a){var r=this,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?this._createWrapListener(a):a;return i(e,"addListener",this)([t,n]),function(){i(e,"removeListener",r)([t,n])}}}])}();function c(){return void 0===globalThis.CartEventStore&&(globalThis.CartEventStore=new l),globalThis.CartEventStore}var u=function(){return t(function t(e){a(this,t),this.configs=e,this.configs.localStorageKey||(this.configs.localStorageKey="cartItems"),this.loadFromLocalStorage()},[{key:"emitStateChange",value:function(t){var e=c();this.saveToLocalStorage(t),e.emit("stateChange",{items:t,options:{message:"Cart items updated"}})}},{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=this.getState();return!e&&this.configs.idGetter(t)in a||(a[this.configs.idGetter(t)]=t),this.emitStateChange(a),this}},{key:"addMany",value:function(t){var e=this,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.getState();return t.forEach(function(t){!a&&e.configs.idGetter(t)in r||(r[e.configs.idGetter(t)]=t)}),this.emitStateChange(r),this}},{key:"updateOrAdd",value:function(t,a){var r=this.getState(),i=r[t];return r[t]=i?e(e({},i),a):a,this.emitStateChange(r),this}},{key:"remove",value:function(t){var e=this.getState();return t in e&&(delete e[t],this.emitStateChange(e)),this}},{key:"clear",value:function(){return this.emitStateChange({}),this}},{key:"getState",value:function(){return this.loadFromLocalStorage()||{}}},{key:"getItems",value:function(){var t=this.getState();return Array.isArray(t)?t:Object.values(t)}},{key:"loadFromLocalStorage",value:function(){var t=localStorage.getItem(this.configs.localStorageKey||"cartItems");if(t)return JSON.parse(t)}},{key:"saveToLocalStorage",value:function(t){this.configs.localStorageKey?localStorage.setItem(this.configs.localStorageKey,JSON.stringify(t)):console.warn("No localStorageKey provided, skipping storage")}}])}();export{l as CartEventStore,u as MfeCartStore,c as getCartEventStore};
1
+ import{createClass as e,objectSpread2 as t,typeof as i,classCallCheck as a,defineProperty as r,inherits as n,superPropGet as o,callSuper as s}from"../_virtual/_rollupPluginBabelHelpers.js";import l from"events";var u=function(){function t(){var e;return a(this,t),e=s(this,t),r(e,"_createWrapListener",function(e){return function(){try{e.apply(void 0,arguments)}catch(e){console.error("Error in MfeBridge listener:",e)}}}),e}return n(t,l),e(t,[{key:"subscribe",value:function(e,i){var a=this,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?this._createWrapListener(i):i;return o(t,"addListener",this)([e,r]),function(){o(t,"removeListener",a)([e,r])}}}])}();function c(){return void 0===("undefined"==typeof globalThis?"undefined":i(globalThis))?null:(void 0===globalThis.CartEventStore&&(globalThis.CartEventStore=new u),globalThis.CartEventStore)}var h=function(){return e(function e(t){var i=this;a(this,e),r(this,"initialize",function(){var e=c();null==e||e.subscribe("requestState",function(){null==e||e.emit("stateChange",{items:i.getState()})})}),r(this,"destroy",function(){var e=c();null==e||e.removeAllListeners("requestState")}),this.configs=t,this.configs.localStorageKey||(this.configs.localStorageKey="cartItems"),this.initialize()},[{key:"emitStateChange",value:function(e){var t=c();this.saveToLocalStorage(e),null==t||t.emit("stateChange",{items:e,options:{message:"Cart items updated"}})}},{key:"add",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.getState();return!t&&this.configs.idGetter(e)in i||(i[this.configs.idGetter(e)]=e),this.emitStateChange(i),this}},{key:"addMany",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=this.getState();return e.forEach(function(e){!i&&t.configs.idGetter(e)in a||(a[t.configs.idGetter(e)]=e)}),this.emitStateChange(a),this}},{key:"updateOrAdd",value:function(e,i){var a=this.getState(),r=a[e];return a[e]=r?t(t({},r),i):i,this.emitStateChange(a),this}},{key:"remove",value:function(e){var t=this.getState();return e in t&&(delete t[e],this.emitStateChange(t)),this}},{key:"clear",value:function(){return this.emitStateChange({}),this}},{key:"getState",value:function(){return this.loadFromLocalStorage()||{}}},{key:"getItems",value:function(){var e=this.getState();return Array.isArray(e)?e:Object.values(e)}},{key:"loadFromLocalStorage",value:function(){if("undefined"!=typeof globalThis&&globalThis.localStorage){var e=localStorage.getItem(this.configs.localStorageKey||"cartItems");if(e)return JSON.parse(e)}}},{key:"saveToLocalStorage",value:function(e){"undefined"!=typeof globalThis&&globalThis.localStorage&&(this.configs.localStorageKey?localStorage.setItem(this.configs.localStorageKey,JSON.stringify(e)):console.warn("No localStorageKey provided, skipping storage"))}}])}();export{u as CartEventStore,h as MfeCartStore,c as getCartEventStore};
2
2
  //# sourceMappingURL=cart-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cart-store.js","sources":["../../src/cart/cart-store.ts"],"sourcesContent":["import EventEmitter from 'events'\r\n\r\nexport type IIdGetter<T = any> = (item: T) => string\r\n\r\ntype IItem = Record<string, any>\r\n\r\ninterface IEventOptions {\r\n message?: string\r\n}\r\n\r\nexport interface ICartEventConfigs {\r\n stateChange: [{ items: IItem; options?: IEventOptions }]\r\n requestState: [{ options?: IEventOptions }]\r\n add: [{ item: IItem }]\r\n update: [{ id: string; updates: Partial<IItem> }]\r\n remove: [{ id: string }]\r\n clear: []\r\n setState: [{ items: IItem }]\r\n}\r\n\r\nexport class CartEventStore extends EventEmitter<ICartEventConfigs> {\r\n constructor() {\r\n super()\r\n }\r\n /**\r\n * Subscribe to a specific channel\r\n * @param channel The channel to subscribe to\r\n * @param callback Function to call when an event occurs on this channel\r\n * @returns Unsubscribe function to remove the event listener\r\n */\r\n _createWrapListener = (callback: (...payload: any[]) => void) => {\r\n return (...payload: any[]) => {\r\n try {\r\n callback(...payload)\r\n } catch (error) {\r\n console.error('Error in MfeBridge listener:', error)\r\n }\r\n }\r\n }\r\n subscribe<K extends keyof ICartEventConfigs>(\r\n eventName: K,\r\n listener: K extends keyof ICartEventConfigs ? (ICartEventConfigs[K] extends unknown[] ? (...args: ICartEventConfigs[K]) => void : never) : never,\r\n isTry: boolean = true\r\n ) {\r\n const action = isTry ? this._createWrapListener(listener) : listener\r\n super.addListener(eventName, action as any)\r\n return () => {\r\n super.removeListener(eventName, action as any)\r\n }\r\n }\r\n}\r\n\r\nexport function getCartEventStore() {\r\n if (typeof (globalThis as any).CartEventStore === 'undefined') {\r\n // If CartEventStore is not defined globally, define it\r\n // This allows it to be used in other parts of the application\r\n // without needing to import it explicitly\r\n ;(globalThis as any).CartEventStore = new CartEventStore()\r\n }\r\n return (globalThis as any).CartEventStore as CartEventStore\r\n}\r\n\r\nexport interface ICartStoreConfigs {\r\n idGetter: IIdGetter\r\n localStorageKey?: string\r\n}\r\n\r\nexport class MfeCartStore {\r\n private configs: ICartStoreConfigs\r\n constructor(config: ICartStoreConfigs) {\r\n this.configs = config\r\n if (!this.configs.localStorageKey) {\r\n this.configs.localStorageKey = 'cartItems'\r\n }\r\n this.loadFromLocalStorage()\r\n }\r\n\r\n emitStateChange(items: IItem) {\r\n const eventStore = getCartEventStore()\r\n this.saveToLocalStorage(items)\r\n eventStore.emit('stateChange', { items, options: { message: 'Cart items updated' } })\r\n }\r\n\r\n add(item: any, overwrite: boolean = false) {\r\n const items = this.getState()\r\n if (overwrite || !(this.configs.idGetter(item) in items)) {\r\n items[this.configs.idGetter(item)] = item\r\n }\r\n this.emitStateChange(items)\r\n return this\r\n }\r\n\r\n addMany(items: any[], overwrite: boolean = false) {\r\n const currentItems = this.getState()\r\n items.forEach((item) => {\r\n if (overwrite || !(this.configs.idGetter(item) in currentItems)) {\r\n currentItems[this.configs.idGetter(item)] = item\r\n }\r\n })\r\n this.emitStateChange(currentItems)\r\n return this\r\n }\r\n\r\n updateOrAdd(id: string, updates: Partial<any>) {\r\n const items = this.getState()\r\n const item = items[id]\r\n if (item) {\r\n items[id] = { ...item, ...updates }\r\n } else {\r\n items[id] = updates\r\n }\r\n this.emitStateChange(items)\r\n return this\r\n }\r\n\r\n remove(id: string) {\r\n const items = this.getState()\r\n if (id in items) {\r\n delete items[id]\r\n this.emitStateChange(items)\r\n }\r\n return this\r\n }\r\n\r\n clear() {\r\n this.emitStateChange({})\r\n return this\r\n }\r\n\r\n getState(): IItem {\r\n return this.loadFromLocalStorage() || {}\r\n }\r\n getItems(): any[] {\r\n const items = this.getState()\r\n const item = Array.isArray(items) ? items : Object.values(items)\r\n return item\r\n }\r\n\r\n private loadFromLocalStorage() {\r\n const storedItems = localStorage.getItem(this.configs.localStorageKey || 'cartItems')\r\n if (storedItems) {\r\n return JSON.parse(storedItems)\r\n }\r\n }\r\n\r\n private saveToLocalStorage(items: IItem) {\r\n if (this.configs.localStorageKey) {\r\n localStorage.setItem(this.configs.localStorageKey, JSON.stringify(items))\r\n } else {\r\n console.warn('No localStorageKey provided, skipping storage')\r\n }\r\n }\r\n}\r\n"],"names":["CartEventStore","_this","_classCallCheck","_callSuper","this","_defineProperty","callback","apply","arguments","error","console","_inherits","EventEmitter","_createClass","key","value","eventName","listener","_this2","action","_createWrapListener","_superPropGet","getCartEventStore","globalThis","MfeCartStore","config","configs","localStorageKey","loadFromLocalStorage","items","eventStore","saveToLocalStorage","emit","options","message","item","overwrite","length","undefined","getState","idGetter","emitStateChange","_this3","currentItems","forEach","id","updates","_objectSpread","Array","isArray","Object","values","storedItems","localStorage","getItem","JSON","parse","setItem","stringify","warn"],"mappings":"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"}
1
+ {"version":3,"file":"cart-store.js","sources":["../../src/cart/cart-store.ts"],"sourcesContent":["import EventEmitter from 'events'\r\n\r\nexport type IIdGetter<T = any> = (item: T) => string\r\n\r\ntype IItem = Record<string, any>\r\n\r\ninterface IEventOptions {\r\n message?: string\r\n}\r\n\r\nexport interface ICartEventConfigs {\r\n stateChange: [{ items: IItem; options?: IEventOptions }]\r\n requestState: [{ options?: IEventOptions }]\r\n}\r\n\r\nexport class CartEventStore extends EventEmitter<ICartEventConfigs> {\r\n constructor() {\r\n super()\r\n }\r\n /**\r\n * Subscribe to a specific channel\r\n * @param channel The channel to subscribe to\r\n * @param callback Function to call when an event occurs on this channel\r\n * @returns Unsubscribe function to remove the event listener\r\n */\r\n _createWrapListener = (callback: (...payload: any[]) => void) => {\r\n return (...payload: any[]) => {\r\n try {\r\n callback(...payload)\r\n } catch (error) {\r\n console.error('Error in MfeBridge listener:', error)\r\n }\r\n }\r\n }\r\n subscribe<K extends keyof ICartEventConfigs>(\r\n eventName: K,\r\n listener: K extends keyof ICartEventConfigs ? (ICartEventConfigs[K] extends unknown[] ? (...args: ICartEventConfigs[K]) => void : never) : never,\r\n isTry: boolean = true\r\n ) {\r\n const action = isTry ? this._createWrapListener(listener) : listener\r\n super.addListener(eventName, action as any)\r\n return () => {\r\n super.removeListener(eventName, action as any)\r\n }\r\n }\r\n}\r\n\r\nexport function getCartEventStore() {\r\n if (typeof globalThis === undefined) return null\r\n\r\n if (typeof (globalThis as any).CartEventStore === 'undefined') {\r\n // If CartEventStore is not defined globally, define it\r\n // This allows it to be used in other parts of the application\r\n // without needing to import it explicitly\r\n ;(globalThis as any).CartEventStore = new CartEventStore()\r\n }\r\n return (globalThis as any).CartEventStore as CartEventStore\r\n}\r\n\r\nexport interface ICartStoreConfigs {\r\n idGetter: IIdGetter\r\n localStorageKey?: string\r\n}\r\n\r\nexport class MfeCartStore {\r\n private configs: ICartStoreConfigs\r\n constructor(config: ICartStoreConfigs) {\r\n this.configs = config\r\n if (!this.configs.localStorageKey) {\r\n this.configs.localStorageKey = 'cartItems'\r\n }\r\n this.initialize()\r\n }\r\n\r\n initialize = () => {\r\n const eventStore = getCartEventStore()\r\n eventStore?.subscribe('requestState', () => {\r\n eventStore?.emit('stateChange', { items: this.getState() })\r\n })\r\n }\r\n\r\n destroy = () => {\r\n const eventStore = getCartEventStore()\r\n eventStore?.removeAllListeners('requestState')\r\n }\r\n\r\n emitStateChange(items: IItem) {\r\n const eventStore = getCartEventStore()\r\n this.saveToLocalStorage(items)\r\n eventStore?.emit('stateChange', { items, options: { message: 'Cart items updated' } })\r\n }\r\n\r\n add(item: any, overwrite: boolean = false) {\r\n const items = this.getState()\r\n if (overwrite || !(this.configs.idGetter(item) in items)) {\r\n items[this.configs.idGetter(item)] = item\r\n }\r\n this.emitStateChange(items)\r\n return this\r\n }\r\n\r\n addMany(items: any[], overwrite: boolean = false) {\r\n const currentItems = this.getState()\r\n items.forEach((item) => {\r\n if (overwrite || !(this.configs.idGetter(item) in currentItems)) {\r\n currentItems[this.configs.idGetter(item)] = item\r\n }\r\n })\r\n this.emitStateChange(currentItems)\r\n return this\r\n }\r\n\r\n updateOrAdd(id: string, updates: Partial<any>) {\r\n const items = this.getState()\r\n const item = items[id]\r\n if (item) {\r\n items[id] = { ...item, ...updates }\r\n } else {\r\n items[id] = updates\r\n }\r\n this.emitStateChange(items)\r\n return this\r\n }\r\n\r\n remove(id: string) {\r\n const items = this.getState()\r\n if (id in items) {\r\n delete items[id]\r\n this.emitStateChange(items)\r\n }\r\n return this\r\n }\r\n\r\n clear() {\r\n this.emitStateChange({})\r\n return this\r\n }\r\n\r\n getState(): IItem {\r\n return this.loadFromLocalStorage() || {}\r\n }\r\n\r\n getItems(): any[] {\r\n const items = this.getState()\r\n const item = Array.isArray(items) ? items : Object.values(items)\r\n return item\r\n }\r\n\r\n private loadFromLocalStorage() {\r\n // Check if running in client environment with localStorage available\r\n if (typeof globalThis !== 'undefined' && globalThis.localStorage) {\r\n const storedItems = localStorage.getItem(this.configs.localStorageKey || 'cartItems')\r\n if (storedItems) {\r\n return JSON.parse(storedItems)\r\n }\r\n }\r\n }\r\n\r\n private saveToLocalStorage(items: IItem) {\r\n // Check if running in client environment with localStorage available\r\n if (typeof globalThis !== 'undefined' && globalThis.localStorage) {\r\n if (this.configs.localStorageKey) {\r\n localStorage.setItem(this.configs.localStorageKey, JSON.stringify(items))\r\n } else {\r\n console.warn('No localStorageKey provided, skipping storage')\r\n }\r\n }\r\n }\r\n}\r\n"],"names":["CartEventStore","_this","_classCallCheck","_callSuper","this","_defineProperty","callback","apply","arguments","error","console","_inherits","EventEmitter","_createClass","key","value","eventName","listener","_this2","action","_createWrapListener","_superPropGet","getCartEventStore","undefined","globalThis","_typeof","MfeCartStore","config","_this3","eventStore","subscribe","emit","items","getState","removeAllListeners","configs","localStorageKey","initialize","saveToLocalStorage","options","message","item","overwrite","length","idGetter","emitStateChange","_this4","currentItems","forEach","id","updates","_objectSpread","loadFromLocalStorage","Array","isArray","Object","values","localStorage","storedItems","getItem","JSON","parse","setItem","stringify","warn"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var n=function(n){return n.reduce(function(n,r){return{amount:n.amount+(r.Amount||0),price:n.price+(r.Price||0)*(r.Amount||0)}},{amount:0,price:0})};export{n as getTotalData};
1
+ var t=function(){var t,n;return null!==(n=(null!==(t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").split("http").join(" http").match(/[hH][tT][tT][pP][sS]?:\/\/[^\s]+/g))&&void 0!==t?t:[]).filter(function(t){return t}).map(function(t){return t.trim()}))&&void 0!==n?n:[]},n=function(){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=new Set(t(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"")),r=n.trim();return i.has(r)},i=function(t){return t.reduce(function(t,n){return{quantity:t.quantity+1,quantityLinks:t.quantityLinks+(n.Amount||0),price:t.price+(n.Price||0)*(n.Amount||0)}},{quantity:0,quantityLinks:0,price:0})};export{n as areDuplicatedLink,t as convertStringToLinks,i as getTotalData};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../src/cart/helpers.ts"],"sourcesContent":["import { ICartItem } from './types'\r\n\r\n/**\r\n * Convert a string to an array of URLs using improved regex\r\n * @param text Input string\r\n * @returns Array of matched URLs\r\n */\r\nexport const convertStringToLinks = (text: string): string[] => {\r\n // Improved regex to match URLs more accurately\r\n const urlRegex = /https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)/g\r\n return text.match(urlRegex) || []\r\n}\r\n\r\n/**\r\n * Calculate total amount and price from an array of cart items\r\n * Note: If item.Amount is undefined, it will be treated as 0\r\n * @param data Array of ICartItem\r\n * @returns Object with total amount and total price\r\n */\r\nexport const getTotalData = (data: ICartItem[]) => {\r\n return data.reduce(\r\n (acc, item) => ({\r\n amount: acc.amount + (item.Amount || 0),\r\n price: acc.price + (item.Price || 0) * (item.Amount || 0)\r\n }),\r\n { amount: 0, price: 0 }\r\n )\r\n}\r\n"],"names":["getTotalData","data","reduce","acc","item","amount","Amount","price","Price"],"mappings":"IAmBaA,EAAe,SAACC,GAC3B,OAAOA,EAAKC,OACV,SAACC,EAAKC,GAAI,MAAM,CACdC,OAAQF,EAAIE,QAAUD,EAAKE,QAAU,GACrCC,MAAOJ,EAAII,OAASH,EAAKI,OAAS,IAAMJ,EAAKE,QAAU,GACxD,EACD,CAAED,OAAQ,EAAGE,MAAO,GAExB"}
1
+ {"version":3,"file":"helpers.js","sources":["../../src/cart/helpers.ts"],"sourcesContent":["import { ICartItem } from './types'\r\n\r\n/**\r\n * Convert a string to an array of URLs using improved regex\r\n * @param text Input string\r\n * @returns Array of matched URLs\r\n */\r\nexport const convertStringToLinks = (text: string = ''): string[] => {\r\n const updatedText = text.split('http').join(' http')\r\n const list = updatedText.match(/[hH][tT][tT][pP][sS]?:\\/\\/[^\\s]+/g) ?? []\r\n return list.filter((x) => x).map((x) => x.trim()) ?? []\r\n}\r\n\r\n/**\r\n * Check if a link is duplicated in a string\r\n * @param linkString Input string containing links\r\n * @param value Link to check\r\n * @returns True if the link is duplicated, false otherwise\r\n */\r\nexport const areDuplicatedLink = (linkString: string = '', value: string = '') => {\r\n const linkSet = new Set(convertStringToLinks(linkString))\r\n const formatString = value.trim()\r\n return linkSet.has(formatString)\r\n}\r\n\r\n/**\r\n * Calculate total amount and price from an array of cart items\r\n * Note: If item.Amount is undefined, it will be treated as 0\r\n * @param data Array of ICartItem\r\n * @returns Object with total amount and total price\r\n */\r\nexport const getTotalData = (data: ICartItem[]) => {\r\n return data.reduce(\r\n (acc, item) => ({\r\n quantity: acc.quantity + 1,\r\n quantityLinks: acc.quantityLinks + (item.Amount || 0),\r\n price: acc.price + (item.Price || 0) * (item.Amount || 0)\r\n }),\r\n { quantity: 0, quantityLinks: 0, price: 0 }\r\n )\r\n}\r\n"],"names":["convertStringToLinks","_updatedText$match","_list$filter$map","arguments","length","undefined","split","join","match","filter","x","map","trim","areDuplicatedLink","value","linkSet","Set","formatString","has","getTotalData","data","reduce","acc","item","quantity","quantityLinks","Amount","price","Price"],"mappings":"IAOaA,EAAuB,WAAgC,IAAAC,EAAAC,EAGlE,OAAiDA,QAAjDA,GADmED,QAAzDA,GAFwCE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAA,IACzBG,MAAM,QAAQC,KAAK,SACnBC,MAAM,4CAAoCP,IAAAA,EAAAA,EAAI,IAC3DQ,OAAO,SAACC,GAAC,OAAKA,CAAC,GAAEC,IAAI,SAACD,GAAC,OAAKA,EAAEE,MAAM,UAACV,IAAAA,EAAAA,EAAI,EACvD,EAQaW,EAAoB,WAAgD,IAAtBC,EAAAX,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAgB,GACnEY,EAAU,IAAIC,IAAIhB,EAD6BG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAA,KAE/Cc,EAAeH,EAAMF,OAC3B,OAAOG,EAAQG,IAAID,EACrB,EAQaE,EAAe,SAACC,GAC3B,OAAOA,EAAKC,OACV,SAACC,EAAKC,GAAI,MAAM,CACdC,SAAUF,EAAIE,SAAW,EACzBC,cAAeH,EAAIG,eAAiBF,EAAKG,QAAU,GACnDC,MAAOL,EAAIK,OAASJ,EAAKK,OAAS,IAAML,EAAKG,QAAU,GACxD,EACD,CAAEF,SAAU,EAAGC,cAAe,EAAGE,MAAO,GAE5C"}
package/dist/cart/hook.js CHANGED
@@ -1,2 +1,2 @@
1
- import{slicedToArray as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{useState as t,useEffect as e}from"react";import{MfeCartStore as n,getCartEventStore as i}from"./cart-store.js";function a(){var a=new n({idGetter:function(r){return r.ProductId}}),o=t(a.getItems()),u=r(o,2),d=u[0],c=u[1];return e(function(){var r=i();r.emit("requestState",{});var t=r.subscribe("stateChange",function(r){var t=r.items,e=Array.isArray(t)?t:Object.values(t);c(e)});return function(){t()}},[]),{items:d}}function o(){var r=function(r){return r.ProductId};return{addToCart:function(t){new n({idGetter:r}).add(t)},updateOrAddCart:function(t,e){new n({idGetter:r}).updateOrAdd(t,e)},removeFromCart:function(t){new n({idGetter:r}).remove(t)},clearCart:function(){new n({idGetter:r}).clear()},idGetter:r}}export{o as useCartActions,a as useCartStore};
1
+ import{slicedToArray as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{useRef as t,useState as e,useEffect as n}from"react";import{MfeCartStore as o,getCartEventStore as a}from"./cart-store.js";function u(u){var c=t();c.current||(c.current=new o({localStorageKey:null==u?void 0:u.localStorageKey,idGetter:function(r){return r.ProductId}}));var i=c.current,l=e(i.getItems()),d=r(l,2),s=d[0],f=d[1];return n(function(){var r=a();(!s||s.length<1)&&(null==r||r.emit("requestState",{}));var t=null==r?void 0:r.subscribe("stateChange",function(r){var t=r.items,e=Array.isArray(t)?t:Object.values(t);f(e)});return function(){t&&t(),i.destroy()}},[]),{items:s}}function c(r){var e=function(r){return r.ProductId},n=t();n.current||(n.current=new o({localStorageKey:null==r?void 0:r.localStorageKey,idGetter:e}));var a=n.current;return{addToCart:function(r){a.add(r)},updateOrAddCart:function(r,t){a.updateOrAdd(r,t)},removeFromCart:function(r){a.remove(r)},clearCart:function(){a.clear()},idGetter:e}}export{c as useCartActions,u as useCartStore};
2
2
  //# sourceMappingURL=hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sources":["../../src/cart/hook.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\r\nimport { getCartEventStore, MfeCartStore } from './cart-store'\r\nimport { ICartItem } from './types'\r\n\r\nexport function useCartStore<T extends ICartItem = ICartItem>() {\r\n const store = new MfeCartStore({ idGetter: (item: T) => item.ProductId })\r\n const [items, setItems] = useState<T[]>(store.getItems() as T[])\r\n\r\n useEffect(() => {\r\n const event = getCartEventStore()\r\n event.emit('requestState', {})\r\n\r\n const unsubscribe = event.subscribe('stateChange', ({ items }) => {\r\n const item = Array.isArray(items) ? items : Object.values(items)\r\n setItems(item as T[])\r\n })\r\n return () => {\r\n unsubscribe()\r\n }\r\n }, [])\r\n\r\n return { items }\r\n}\r\nexport function useCartActions<T extends ICartItem = ICartItem>() {\r\n const idGetter = (item: T) => item.ProductId\r\n\r\n const addToCart = (item: T) => {\r\n const store = new MfeCartStore({ idGetter })\r\n store.add(item)\r\n }\r\n\r\n const updateOrAddCart = (id: string, updates: Partial<T>) => {\r\n const store = new MfeCartStore({ idGetter })\r\n store.updateOrAdd(id, updates)\r\n }\r\n\r\n const removeFromCart = (id: string) => {\r\n const store = new MfeCartStore({ idGetter })\r\n store.remove(id)\r\n }\r\n\r\n const clearCart = () => {\r\n const store = new MfeCartStore({ idGetter })\r\n store.clear()\r\n }\r\n\r\n return {\r\n addToCart,\r\n updateOrAddCart,\r\n removeFromCart,\r\n clearCart,\r\n idGetter\r\n }\r\n}\r\n"],"names":["useCartStore","store","MfeCartStore","idGetter","item","ProductId","_useState","useState","getItems","_useState2","_slicedToArray","items","setItems","useEffect","event","getCartEventStore","emit","unsubscribe","subscribe","_ref","Array","isArray","Object","values","useCartActions","addToCart","add","updateOrAddCart","id","updates","updateOrAdd","removeFromCart","remove","clearCart","clear"],"mappings":"wMAIgBA,IACd,IAAMC,EAAQ,IAAIC,EAAa,CAAEC,SAAU,SAACC,GAAO,OAAKA,EAAKC,SAAS,IACtEC,EAA0BC,EAAcN,EAAMO,YAAkBC,EAAAC,EAAAJ,EAAA,GAAzDK,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAetB,OAbAI,EAAU,WACR,IAAMC,EAAQC,IACdD,EAAME,KAAK,eAAgB,IAE3B,IAAMC,EAAcH,EAAMI,UAAU,cAAe,SAAAC,GAAc,IAAXR,EAAKQ,EAALR,MAC9CP,EAAOgB,MAAMC,QAAQV,GAASA,EAAQW,OAAOC,OAAOZ,GAC1DC,EAASR,EACX,GACA,OAAO,WACLa,GACD,CACF,EAAE,IAEI,CAAEN,MAAAA,EACX,UACgBa,IACd,IAAMrB,EAAW,SAACC,GAAO,OAAKA,EAAKC,SAAS,EAsB5C,MAAO,CACLoB,UArBgB,SAACrB,GACH,IAAIF,EAAa,CAAEC,SAAAA,IAC3BuB,IAAItB,EACX,EAmBCuB,gBAjBsB,SAACC,EAAYC,GACrB,IAAI3B,EAAa,CAAEC,SAAAA,IAC3B2B,YAAYF,EAAIC,EACvB,EAeCE,eAbqB,SAACH,GACR,IAAI1B,EAAa,CAAEC,SAAAA,IAC3B6B,OAAOJ,EACd,EAWCK,UATgB,WACF,IAAI/B,EAAa,CAAEC,SAAAA,IAC3B+B,OACP,EAOC/B,SAAAA,EAEJ"}
1
+ {"version":3,"file":"hook.js","sources":["../../src/cart/hook.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\r\nimport { getCartEventStore, MfeCartStore } from './cart-store'\r\nimport { ICartItem } from './types'\r\n\r\nexport interface ICartStoreOptions {\r\n localStorageKey?: string\r\n}\r\n\r\nexport function useCartStore<T extends ICartItem = ICartItem>(params?: ICartStoreOptions) {\r\n const storeRef = useRef<MfeCartStore>()\r\n if (!storeRef.current) {\r\n storeRef.current = new MfeCartStore({ localStorageKey: params?.localStorageKey, idGetter: (item: T) => item.ProductId })\r\n }\r\n const store = storeRef.current\r\n const [items, setItems] = useState<T[]>(store.getItems() as T[])\r\n\r\n useEffect(() => {\r\n const event = getCartEventStore()\r\n if (!items || items.length < 1) event?.emit('requestState', {})\r\n\r\n const unsubscribe = event?.subscribe('stateChange', ({ items }) => {\r\n const item = Array.isArray(items) ? items : Object.values(items)\r\n setItems(item as T[])\r\n })\r\n return () => {\r\n if (unsubscribe) unsubscribe()\r\n store.destroy()\r\n }\r\n }, [])\r\n\r\n return { items }\r\n}\r\n\r\nexport function useCartActions<T extends ICartItem = ICartItem>(params?: ICartStoreOptions) {\r\n const idGetter = (item: T) => item.ProductId\r\n\r\n const storeRef = useRef<MfeCartStore>()\r\n if (!storeRef.current) {\r\n storeRef.current = new MfeCartStore({ localStorageKey: params?.localStorageKey, idGetter })\r\n }\r\n const store = storeRef.current\r\n\r\n const addToCart = (item: T) => {\r\n store.add(item)\r\n }\r\n\r\n const updateOrAddCart = (id: string, updates: Partial<T>) => {\r\n store.updateOrAdd(id, updates)\r\n }\r\n\r\n const removeFromCart = (id: string) => {\r\n store.remove(id)\r\n }\r\n\r\n const clearCart = () => {\r\n store.clear()\r\n }\r\n\r\n return {\r\n addToCart,\r\n updateOrAddCart,\r\n removeFromCart,\r\n clearCart,\r\n idGetter\r\n }\r\n}\r\n"],"names":["useCartStore","params","storeRef","useRef","current","MfeCartStore","localStorageKey","idGetter","item","ProductId","store","_useState","useState","getItems","_useState2","_slicedToArray","items","setItems","useEffect","event","getCartEventStore","length","emit","unsubscribe","subscribe","_ref","Array","isArray","Object","values","destroy","useCartActions","addToCart","add","updateOrAddCart","id","updates","updateOrAdd","removeFromCart","remove","clearCart","clear"],"mappings":"2MAQM,SAAUA,EAA8CC,GAC5D,IAAMC,EAAWC,IACZD,EAASE,UACZF,EAASE,QAAU,IAAIC,EAAa,CAAEC,gBAAiBL,aAAAA,EAAAA,EAAQK,gBAAiBC,SAAU,SAACC,GAAO,OAAKA,EAAKC,SAAS,KAEvH,IAAMC,EAAQR,EAASE,QACvBO,EAA0BC,EAAcF,EAAMG,YAAkBC,EAAAC,EAAAJ,EAAA,GAAzDK,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAgBtB,OAdAI,EAAU,WACR,IAAMC,EAAQC,MACTJ,GAASA,EAAMK,OAAS,KAAGF,SAAAA,EAAOG,KAAK,eAAgB,CAAA,IAE5D,IAAMC,EAAcJ,aAAAA,EAAAA,EAAOK,UAAU,cAAe,SAAAC,GAAc,IAAXT,EAAKS,EAALT,MAC/CR,EAAOkB,MAAMC,QAAQX,GAASA,EAAQY,OAAOC,OAAOb,GAC1DC,EAAST,EACX,GACA,OAAO,WACDe,GAAaA,IACjBb,EAAMoB,SACP,CACF,EAAE,IAEI,CAAEd,MAAAA,EACX,CAEM,SAAUe,EAAgD9B,GAC9D,IAAMM,EAAW,SAACC,GAAO,OAAKA,EAAKC,SAAS,EAEtCP,EAAWC,IACZD,EAASE,UACZF,EAASE,QAAU,IAAIC,EAAa,CAAEC,gBAAiBL,aAAAA,EAAAA,EAAQK,gBAAiBC,SAAAA,KAElF,IAAMG,EAAQR,EAASE,QAkBvB,MAAO,CACL4B,UAjBgB,SAACxB,GACjBE,EAAMuB,IAAIzB,EACX,EAgBC0B,gBAdsB,SAACC,EAAYC,GACnC1B,EAAM2B,YAAYF,EAAIC,EACvB,EAaCE,eAXqB,SAACH,GACtBzB,EAAM6B,OAAOJ,EACd,EAUCK,UARgB,WAChB9B,EAAM+B,OACP,EAOClC,SAAAA,EAEJ"}
@@ -1,2 +1,2 @@
1
- export{CartWidget,createCartWidget}from"./widget.js";export{useCartActions,useCartStore}from"./hook.js";
1
+ export{CartWidget,createCartWidget}from"./widget.js";export{useCartActions,useCartStore}from"./hook.js";export{areDuplicatedLink,convertStringToLinks,getTotalData}from"./helpers.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import{objectSpread2 as r,inherits as e,createClass as n,classCallCheck as o,callSuper as t,defineProperty as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,jsxs as l}from"react/jsx-runtime";import{Fragment as c,Component as s}from"react";import{ImageWithFallback as m}from"dinocollab-core/components";import{Badge as d,Typography as p,Divider as u,Button as h,Box as f,IconButton as v}from"@mui/material";import{MfeLink as C}from"dinocollab-core/mfe-shared";import g from"@mui/icons-material/Remove";import b from"@mui/icons-material/ShoppingCartOutlined";import x from"@mui/icons-material/ShoppingCartCheckout";import{MenuStyled as y,CartContentStyled as k,cartContentClasses as N}from"./styled.js";import{getTotalData as P}from"./helpers.js";import{useCartStore as S,useCartActions as j}from"./hook.js";import{DarkIconButton as E}from"../components/buttons.js";import{NoDataPanel as I}from"../components/no-data-panel.js";var T=function(){function r(e){var n;return o(this,r),n=t(this,r,[e]),i(n,"render",function(){return l(c,{children:[a(E,{onClick:function(r){return n.onOpen(r.currentTarget)},children:a(d,{badgeContent:n.props.data.length,color:"primary",children:a(b,{})})}),a(y,{disableScrollLock:!0,anchorEl:n.state.anchorEl,open:Boolean(n.state.anchorEl),onClose:n.onClose,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{component:"div"},children:n.renderContent()})]})}),i(n,"renderContent",function(){var r=P(n.props.data);return l(k,{children:[l("div",{className:N.header,children:[l(p,{variant:"h6",component:"span",sx:{flex:1},children:["Your Cart (",r.amount," items)"]}),l(p,{variant:"h6",component:"span",children:["Total: $ ",r.price.toFixed(2)]})]}),a(u,{}),l("div",{className:N.items,children:[n.props.data.map(function(r,e){return a(c,{children:n.renderItem(r)},"key"+e)}),n.props.data.length<1&&a(I,{title:"Your cart is empty",subTitle:"Try adding some products",sx:{height:"100%"}})]}),a(u,{}),a("div",{className:N.footer,children:a(h,{component:C,primaryHref:n.props.baseUrl.client+"/cart",secondaryHref:"cart",internal:"client"===n.props.site,color:"inherit",endIcon:a(x,{}),onClick:n.onClose,disabled:n.props.data.length<1,children:"Show in cart"})})]})}),i(n,"renderItem",function(r){var e,o,t,i,c,s=n.props.baseUrl.api+(null==r?void 0:r.PictureUrl);return l("div",{className:N.item,children:[a(m,{className:N.itemImg,src:s,title:s,fallbackSrc:"images/default-video.webp",alt:"product-picture"}),l("div",{className:N.itemContent,children:[a(p,{className:N.itemTag,variant:"caption",sx:{color:null!==(e=r.PriceColor)&&void 0!==e?e:"#000"},children:null!==(o=r.PriceName)&&void 0!==o?o:"Unknown Price"}),a(p,{className:N.itemTitle,noWrap:!0,variant:"subtitle1",children:null!==(t=r.ProductName)&&void 0!==t?t:"Unknown Product"}),l(f,{sx:{display:"flex",alignItems:"flex-end",gap:"2px",justifyContent:"flex-end"},children:[l(p,{variant:"subtitle1",children:["$ ",null!==(i=r.Price)&&void 0!==i?i:0]}),l(p,{variant:"body1",sx:{fontSize:"14px",mb:"3px",color:"#818181"},children:["x",null!==(c=r.Amount)&&void 0!==c?c:0," urls"]})]})]}),a(v,{size:"small",onClick:function(){var e,o;return null===(e=(o=n.props).onRemove)||void 0===e?void 0:e.call(o,r)},sx:{color:"#818181"},children:a(g,{})})]})}),i(n,"onOpen",function(r){n.setState({anchorEl:r})}),i(n,"onClose",function(){n.setState({anchorEl:null})}),n.state={anchorEl:null},n}return e(r,s),n(r)}(),O=function(e){var n=S().items,o=j().removeFromCart;return a(T,r({data:n,onRemove:function(r){o(r.ProductId)}},e))},U=function(e){var n=function(n){return a(O,r(r({},e),n))};return n.displayName="CartWidget",n};export{O as CartWidget,U 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 a,jsx as l}from"react/jsx-runtime";import{Fragment as c,Component 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{MenuStyled as y,CartContentStyled as b,cartContentClasses as k}from"./styled.js";import{getTotalData as N}from"./helpers.js";import{DarkIconButton as P}from"../components/buttons.js";import{NoDataPanel as S}from"../components/no-data-panel.js";var j=function(){function j(r){var e;return t(this,j),e=n(this,j,[r]),o(e,"render",function(){var r;return a(c,{children:[l(P,{onClick:function(r){return e.onOpen(r.currentTarget)},children:l(m,{badgeContent:e.state.hydrated&&null!==(r=e.carts.length)&&void 0!==r?r:0,color:"error",children:l(g,{})})}),l(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=N(e.carts);return a(b,{children:[a("div",{className:k.header,children:[a(u,{variant:"h6",component:"span",sx:{flex:1},children:["Your Cart (",null!==(r=t.quantity)&&void 0!==r?r:0," items)"]}),a(u,{variant:"h6",component:"span",children:["Total: $ ",t.price.toFixed(2)]})]}),l(p,{}),a("div",{className:k.items,children:[e.carts.map(function(r,t){return l(c,{children:e.renderItem(r)},"key"+t)}),e.carts.length<1&&l(S,{title:"Your cart is empty",subTitle:"Try adding some products",sx:{height:"100%"}})]}),l(p,{}),l("div",{className:k.footer,children:l(h,i(i({},e.props.hrefCart?{component:"a",href:e.props.hrefCart}:{}),{},{color:"inherit",endIcon:l(x,{}),onClick:function(r){e.onClose(),e.props.onCartClick&&e.props.onCartClick(r)},disabled:e.carts.length<1,children:"Show in cart"}))})]})}),o(e,"renderItem",function(r){var t,n,o,i,c;return a("div",{className:k.item,children:[l(d,{className:k.itemImg,src:null==r?void 0:r.PictureUrl,title:null==r?void 0:r.PictureUrl,fallbackSrc:"images/default-video.webp",alt:"product-picture"}),a("div",{className:k.itemContent,children:[l(u,{className:k.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"}),l(u,{className:k.itemTitle,noWrap:!0,variant:"subtitle1",children:null!==(o=r.ProductName)&&void 0!==o?o:"Unknown Product"}),a(f,{sx:{display:"flex",alignItems:"flex-end",gap:"2px",justifyContent:"flex-end"},children:[a(u,{variant:"subtitle1",children:["$ ",null!==(i=r.Price)&&void 0!==i?i:0]}),a(u,{variant:"body1",sx:{fontSize:"14px",mb:"3px",color:"#818181"},children:["x",null!==(c=r.Amount)&&void 0!==c?c:0," urls"]})]})]}),l(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:l(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(j,s),e(j,[{key:"carts",get:function(){var r;return null!==(r=this.props.carts)&&void 0!==r?r:[]}},{key:"componentDidMount",value:function(){this.setState({hydrated:!0})}}])}(),E=function(r){var e=function(e){return l(j,i(i({},r),e))};return e.displayName="CartWidget",e};export{j as CartWidget,E as createCartWidget};
2
2
  //# sourceMappingURL=widget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"widget.js","sources":["../../src/cart/widget.tsx"],"sourcesContent":["import { Component, Fragment, useCallback } from 'react'\r\nimport { ImageWithFallback } from 'dinocollab-core/components'\r\nimport { Badge, Box, Button, Divider, IconButton, Typography } from '@mui/material'\r\nimport { MfeLink } from 'dinocollab-core/mfe-shared'\r\nimport type { FC } from 'react'\r\nimport RemoveIcon from '@mui/icons-material/Remove'\r\nimport ShoppingCartOutlinedIcon from '@mui/icons-material/ShoppingCartOutlined'\r\nimport ShoppingCartCheckoutIcon from '@mui/icons-material/ShoppingCartCheckout'\r\nimport { ICartItem } from './types'\r\nimport { cartContentClasses, CartContentStyled, MenuStyled } from './styled'\r\nimport { getTotalData } from './helpers'\r\nimport { useCartActions, useCartStore } from './hook'\r\nimport { IAppSiteBaseUrl, IAppSiteProps } from '../types'\r\nimport { DarkIconButton, NoDataPanel } from '../components'\r\n\r\ninterface ICartWidgetBaseProps extends IAppSiteProps {\r\n baseUrl: IAppSiteBaseUrl\r\n /** Optional storage key to differentiate between different cart instances */\r\n storageKey?: string\r\n}\r\n\r\ninterface ICartWidgetProps extends ICartWidgetBaseProps {\r\n data: ICartItem[]\r\n onRemove?: (item: ICartItem) => void\r\n}\r\n\r\ninterface ICartWidgetState {\r\n anchorEl: HTMLElement | null\r\n}\r\n\r\nclass CartWidgetBase extends Component<ICartWidgetProps, ICartWidgetState> {\r\n constructor(props: ICartWidgetProps) {\r\n super(props)\r\n this.state = { anchorEl: null }\r\n }\r\n\r\n render = () => (\r\n <Fragment>\r\n <DarkIconButton onClick={(e) => this.onOpen(e.currentTarget)}>\r\n <Badge badgeContent={this.props.data.length} color='primary'>\r\n <ShoppingCartOutlinedIcon />\r\n </Badge>\r\n </DarkIconButton>\r\n <MenuStyled\r\n disableScrollLock\r\n anchorEl={this.state.anchorEl}\r\n open={Boolean(this.state.anchorEl)}\r\n onClose={this.onClose}\r\n anchorOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n MenuListProps={{ component: 'div' }}\r\n >\r\n {this.renderContent()}\r\n </MenuStyled>\r\n </Fragment>\r\n )\r\n\r\n renderContent = () => {\r\n const totalData = getTotalData(this.props.data)\r\n return (\r\n <CartContentStyled>\r\n <div className={cartContentClasses.header}>\r\n <Typography variant='h6' component='span' sx={{ flex: 1 }}>\r\n Your Cart ({totalData.amount} items)\r\n </Typography>\r\n <Typography variant='h6' component='span'>\r\n Total: $ {totalData.price.toFixed(2)}\r\n </Typography>\r\n </div>\r\n <Divider />\r\n <div className={cartContentClasses.items}>\r\n {this.props.data.map((x, i) => (\r\n <Fragment key={'key' + i}>{this.renderItem(x)}</Fragment>\r\n ))}\r\n {this.props.data.length < 1 && <NoDataPanel title='Your cart is empty' subTitle='Try adding some products' sx={{ height: '100%' }} />}\r\n </div>\r\n <Divider />\r\n <div className={cartContentClasses.footer}>\r\n <Button\r\n component={MfeLink}\r\n primaryHref={this.props.baseUrl.client + '/cart'}\r\n secondaryHref='cart'\r\n internal={this.props.site === 'client'}\r\n color='inherit'\r\n endIcon={<ShoppingCartCheckoutIcon />}\r\n onClick={this.onClose}\r\n disabled={this.props.data.length < 1}\r\n >\r\n Show in cart\r\n </Button>\r\n </div>\r\n </CartContentStyled>\r\n )\r\n }\r\n\r\n renderItem = (item: ICartItem) => {\r\n const src = this.props.baseUrl.api + item?.PictureUrl\r\n return (\r\n <div className={cartContentClasses.item}>\r\n <ImageWithFallback\r\n className={cartContentClasses.itemImg}\r\n src={src}\r\n title={src}\r\n fallbackSrc='images/default-video.webp'\r\n alt='product-picture'\r\n />\r\n <div className={cartContentClasses.itemContent}>\r\n <Typography className={cartContentClasses.itemTag} variant='caption' sx={{ color: item.PriceColor ?? '#000' }}>\r\n {item.PriceName ?? 'Unknown Price'}\r\n </Typography>\r\n <Typography className={cartContentClasses.itemTitle} noWrap variant='subtitle1'>\r\n {item.ProductName ?? 'Unknown Product'}\r\n </Typography>\r\n <Box sx={{ display: 'flex', alignItems: 'flex-end', gap: '2px', justifyContent: 'flex-end' }}>\r\n <Typography variant='subtitle1'>$ {item.Price ?? 0}</Typography>\r\n <Typography variant='body1' sx={{ fontSize: '14px', mb: '3px', color: '#818181' }}>\r\n x{item.Amount ?? 0} urls\r\n </Typography>\r\n </Box>\r\n </div>\r\n <IconButton size='small' onClick={() => this.props.onRemove?.(item)} sx={{ color: '#818181' }}>\r\n <RemoveIcon />\r\n </IconButton>\r\n </div>\r\n )\r\n }\r\n\r\n onOpen = (target: HTMLElement) => {\r\n this.setState({ anchorEl: target })\r\n }\r\n\r\n onClose = () => {\r\n this.setState({ anchorEl: null })\r\n }\r\n}\r\n\r\nexport const CartWidget: FC<ICartWidgetBaseProps> = (props) => {\r\n const { items } = useCartStore()\r\n const { removeFromCart } = useCartActions<ICartItem>()\r\n\r\n return (\r\n <CartWidgetBase\r\n data={items}\r\n onRemove={(x) => {\r\n removeFromCart(x.ProductId)\r\n }}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport const createCartWidget = (params: ICartWidgetBaseProps) => {\r\n const _CartWidget: FC<Partial<ICartWidgetBaseProps>> = (props) => <CartWidget {...params} {...props} />\r\n _CartWidget.displayName = 'CartWidget'\r\n return _CartWidget\r\n}\r\n"],"names":["CartWidgetBase","props","_this","_classCallCheck","_callSuper","_defineProperty","_jsxs","Fragment","children","_jsx","DarkIconButton","onClick","e","onOpen","currentTarget","Badge","badgeContent","data","length","color","ShoppingCartOutlinedIcon","MenuStyled","disableScrollLock","anchorEl","state","open","Boolean","onClose","anchorOrigin","vertical","horizontal","transformOrigin","MenuListProps","component","renderContent","totalData","getTotalData","CartContentStyled","className","cartContentClasses","header","Typography","variant","sx","flex","amount","price","toFixed","Divider","items","map","x","i","renderItem","NoDataPanel","title","subTitle","height","footer","Button","MfeLink","primaryHref","baseUrl","client","secondaryHref","internal","site","endIcon","ShoppingCartCheckoutIcon","disabled","item","_item$PriceColor","_item$PriceName","_item$ProductName","_item$Price","_item$Amount","src","api","PictureUrl","ImageWithFallback","itemImg","fallbackSrc","alt","itemContent","itemTag","PriceColor","PriceName","itemTitle","noWrap","ProductName","Box","display","alignItems","gap","justifyContent","Price","fontSize","mb","Amount","IconButton","size","_this$props$onRemove","_this$props","onRemove","call","RemoveIcon","target","setState","_inherits","Component","_createClass","CartWidget","useCartStore","removeFromCart","useCartActions","_objectSpread","ProductId","createCartWidget","params","_CartWidget","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"widget.js","sources":["../../src/cart/widget.tsx"],"sourcesContent":["import { Component, Fragment } from 'react'\r\nimport { ImageWithFallback } from 'dinocollab-core/components'\r\nimport { Badge, Box, Button, Divider, IconButton, Typography } from '@mui/material'\r\nimport type { FC } from 'react'\r\nimport RemoveIcon from '@mui/icons-material/Remove'\r\nimport ShoppingCartOutlinedIcon from '@mui/icons-material/ShoppingCartOutlined'\r\nimport ShoppingCartCheckoutIcon from '@mui/icons-material/ShoppingCartCheckout'\r\nimport { ICartItem } from './types'\r\nimport { cartContentClasses, CartContentStyled, MenuStyled } from './styled'\r\nimport { getTotalData } from './helpers'\r\nimport { IAppSiteBaseUrl } from '../types'\r\nimport { DarkIconButton, NoDataPanel } from '../components'\r\n\r\ninterface ICartWidgetProps {\r\n baseUrl: IAppSiteBaseUrl\r\n carts?: ICartItem[]\r\n hrefCart?: string\r\n storageKey?: string\r\n onRemoveCart?: (item: ICartItem) => void\r\n onCartClick?: (e: React.MouseEvent<HTMLAnchorElement | HTMLButtonElement, MouseEvent>) => void\r\n}\r\n\r\ninterface ICartWidgetState {\r\n anchorEl: HTMLElement | null\r\n hydrated: boolean\r\n}\r\n\r\nexport class CartWidget extends Component<ICartWidgetProps, ICartWidgetState> {\r\n constructor(props: ICartWidgetProps) {\r\n super(props)\r\n this.state = { anchorEl: null, hydrated: false }\r\n }\r\n\r\n get carts() {\r\n return this.props.carts ?? []\r\n }\r\n\r\n componentDidMount() {\r\n // When mounted on the client, set hydrated = true\r\n this.setState({ hydrated: true })\r\n }\r\n\r\n render = () => (\r\n <Fragment>\r\n <DarkIconButton onClick={(e) => this.onOpen(e.currentTarget)}>\r\n <Badge badgeContent={this.state.hydrated ? this.carts.length ?? 0 : 0} color='error'>\r\n <ShoppingCartOutlinedIcon />\r\n </Badge>\r\n </DarkIconButton>\r\n <MenuStyled\r\n disableScrollLock\r\n anchorEl={this.state.anchorEl}\r\n open={Boolean(this.state.anchorEl)}\r\n onClose={this.onClose}\r\n anchorOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n MenuListProps={{ component: 'div' }}\r\n >\r\n {this.renderContent()}\r\n </MenuStyled>\r\n </Fragment>\r\n )\r\n\r\n renderContent = () => {\r\n const totalData = getTotalData(this.carts)\r\n return (\r\n <CartContentStyled>\r\n <div className={cartContentClasses.header}>\r\n <Typography variant='h6' component='span' sx={{ flex: 1 }}>\r\n Your Cart ({totalData.quantity ?? 0} items)\r\n </Typography>\r\n <Typography variant='h6' component='span'>\r\n Total: $ {totalData.price.toFixed(2)}\r\n </Typography>\r\n </div>\r\n <Divider />\r\n <div className={cartContentClasses.items}>\r\n {this.carts.map((x, i) => (\r\n <Fragment key={'key' + i}>{this.renderItem(x)}</Fragment>\r\n ))}\r\n {this.carts.length < 1 && <NoDataPanel title='Your cart is empty' subTitle='Try adding some products' sx={{ height: '100%' }} />}\r\n </div>\r\n <Divider />\r\n <div className={cartContentClasses.footer}>\r\n <Button\r\n {...(this.props.hrefCart ? { component: 'a', href: this.props.hrefCart } : {})}\r\n color='inherit'\r\n endIcon={<ShoppingCartCheckoutIcon />}\r\n onClick={(event) => {\r\n this.onClose()\r\n if (this.props.onCartClick) {\r\n this.props.onCartClick(event as React.MouseEvent<HTMLAnchorElement | HTMLButtonElement, MouseEvent>)\r\n }\r\n }}\r\n disabled={this.carts.length < 1}\r\n >\r\n Show in cart\r\n </Button>\r\n </div>\r\n </CartContentStyled>\r\n )\r\n }\r\n\r\n renderItem = (item: ICartItem) => (\r\n <div className={cartContentClasses.item}>\r\n <ImageWithFallback\r\n className={cartContentClasses.itemImg}\r\n src={item?.PictureUrl}\r\n title={item?.PictureUrl}\r\n fallbackSrc='images/default-video.webp'\r\n alt='product-picture'\r\n />\r\n <div className={cartContentClasses.itemContent}>\r\n <Typography className={cartContentClasses.itemTag} variant='caption' sx={{ color: item.PriceColor ?? '#000' }}>\r\n {item.PriceName ?? 'Unknown Price'}\r\n </Typography>\r\n <Typography className={cartContentClasses.itemTitle} noWrap variant='subtitle1'>\r\n {item.ProductName ?? 'Unknown Product'}\r\n </Typography>\r\n <Box sx={{ display: 'flex', alignItems: 'flex-end', gap: '2px', justifyContent: 'flex-end' }}>\r\n <Typography variant='subtitle1'>$ {item.Price ?? 0}</Typography>\r\n <Typography variant='body1' sx={{ fontSize: '14px', mb: '3px', color: '#818181' }}>\r\n x{item.Amount ?? 0} urls\r\n </Typography>\r\n </Box>\r\n </div>\r\n <IconButton size='small' onClick={() => this.props.onRemoveCart?.(item)} sx={{ color: '#818181' }}>\r\n <RemoveIcon />\r\n </IconButton>\r\n </div>\r\n )\r\n\r\n onOpen = (target: HTMLElement) => {\r\n this.setState({ anchorEl: target })\r\n }\r\n\r\n onClose = () => {\r\n this.setState({ anchorEl: null })\r\n }\r\n}\r\n\r\nexport const createCartWidget = (params: ICartWidgetProps) => {\r\n const _CartWidget: FC<Partial<ICartWidgetProps>> = (props) => <CartWidget {...params} {...props} />\r\n _CartWidget.displayName = 'CartWidget'\r\n return _CartWidget\r\n}\r\n"],"names":["CartWidget","props","_this","_classCallCheck","_callSuper","_defineProperty","_this$carts$length","_jsxs","Fragment","children","_jsx","DarkIconButton","onClick","e","onOpen","currentTarget","Badge","badgeContent","state","hydrated","carts","length","color","ShoppingCartOutlinedIcon","MenuStyled","disableScrollLock","anchorEl","open","Boolean","onClose","anchorOrigin","vertical","horizontal","transformOrigin","MenuListProps","component","renderContent","_totalData$quantity","totalData","getTotalData","CartContentStyled","className","cartContentClasses","header","Typography","variant","sx","flex","quantity","price","toFixed","Divider","items","map","x","i","renderItem","NoDataPanel","title","subTitle","height","footer","Button","_objectSpread","hrefCart","href","endIcon","ShoppingCartCheckoutIcon","event","onCartClick","disabled","item","_item$PriceColor","_item$PriceName","_item$ProductName","_item$Price","_item$Amount","ImageWithFallback","itemImg","src","PictureUrl","fallbackSrc","alt","itemContent","itemTag","PriceColor","PriceName","itemTitle","noWrap","ProductName","Box","display","alignItems","gap","justifyContent","Price","fontSize","mb","Amount","IconButton","size","_this$props$onRemoveC","_this$props","onRemoveCart","call","RemoveIcon","target","setState","_inherits","Component","_createClass","key","get","_this$props$carts","this","value","createCartWidget","params","_CartWidget","displayName"],"mappings":"6zBA2BaA,IAAAA,aACX,SAAAA,EAAYC,GAAuB,IAAAC,EAEe,OAFfC,OAAAH,GACjCE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EAaL,SAAA,WAAA,IAAAI,EAAA,OACPC,EAACC,EAAQ,CAAAC,SAAA,CACPC,EAACC,EAAe,CAAAC,QAAS,SAACC,GAAC,OAAKX,EAAKY,OAAOD,EAAEE,cAAc,EAC1DN,SAAAC,EAACM,EAAM,CAAAC,aAAcf,EAAKgB,MAAMC,UAA4Bb,QAApBA,EAAGJ,EAAKkB,MAAMC,kBAAMf,EAAAA,EAAQ,EAAGgB,MAAM,QAAOb,SAClFC,EAACa,EAA2B,CAAA,OAGhCb,EAACc,EAAU,CACTC,mBAAiB,EACjBC,SAAUxB,EAAKgB,MAAMQ,SACrBC,KAAMC,QAAQ1B,EAAKgB,MAAMQ,UACzBG,QAAS3B,EAAK2B,QACdC,aAAc,CAAEC,SAAU,MAAOC,WAAY,SAC7CC,gBAAiB,CAAEF,SAAU,MAAOC,WAAY,SAChDE,cAAe,CAAEC,UAAW,OAAO1B,SAElCP,EAAKkC,uBAGX/B,EAAAH,EAAA,gBAEe,WAAK,IAAAmC,EACbC,EAAYC,EAAarC,EAAKkB,OACpC,OACEb,EAACiC,aACCjC,EAAK,MAAA,CAAAkC,UAAWC,EAAmBC,OACjClC,SAAA,CAAAF,EAACqC,EAAW,CAAAC,QAAQ,KAAKV,UAAU,OAAOW,GAAI,CAAEC,KAAM,GAAGtC,SAAA,CAAA,cACzB,QADyB4B,EAC3CC,EAAUU,gBAAQX,IAAAA,EAAAA,EAAI,EAAC,aAErC9B,EAACqC,GAAWC,QAAQ,KAAKV,UAAU,OAAM1B,SAAA,CAAA,YAC7B6B,EAAUW,MAAMC,QAAQ,SAGtCxC,EAACyC,EAAU,CAAA,GACX5C,SAAKkC,UAAWC,EAAmBU,gBAChClD,EAAKkB,MAAMiC,IAAI,SAACC,EAAGC,GAAC,OACnB7C,EAACF,EAAQ,CAAAC,SAAkBP,EAAKsD,WAAWF,IAA5B,MAAQC,EAAkC,GAE1DrD,EAAKkB,MAAMC,OAAS,GAAKX,EAAC+C,GAAYC,MAAM,qBAAqBC,SAAS,2BAA2Bb,GAAI,CAAEc,OAAQ,aAEtHlD,EAACyC,MACDzC,EAAA,MAAA,CAAK+B,UAAWC,EAAmBmB,OAAMpD,SACvCC,EAACoD,EAAMC,EAAAA,EAAA,GACA7D,EAAKD,MAAM+D,SAAW,CAAE7B,UAAW,IAAK8B,KAAM/D,EAAKD,MAAM+D,UAAa,CAAA,GAAE,GAAA,CAC7E1C,MAAM,UACN4C,QAASxD,EAACyD,MACVvD,QAAS,SAACwD,GACRlE,EAAK2B,UACD3B,EAAKD,MAAMoE,aACbnE,EAAKD,MAAMoE,YAAYD,EAE1B,EACDE,SAAUpE,EAAKkB,MAAMC,OAAS,EAACZ,SAAA,yBAOxCJ,EAAAH,EAEY,aAAA,SAACqE,GAAe,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAC3BrE,EAAK,MAAA,CAAAkC,UAAWC,EAAmB6B,KAAI9D,SAAA,CACrCC,EAACmE,EAAiB,CAChBpC,UAAWC,EAAmBoC,QAC9BC,IAAKR,aAAAA,EAAAA,EAAMS,WACXtB,MAAOa,aAAAA,EAAAA,EAAMS,WACbC,YAAY,4BACZC,IAAI,oBAEN3E,SAAKkC,UAAWC,EAAmByC,YAAW1E,SAAA,CAC5CC,EAACkC,EAAU,CAACH,UAAWC,EAAmB0C,QAASvC,QAAQ,UAAUC,GAAI,CAAExB,MAAsBkD,QAAjBA,EAAED,EAAKc,kBAAUb,IAAAA,EAAAA,EAAI,QAAQ/D,SAC5FgE,QAD4FA,EAC1GF,EAAKe,iBAASb,IAAAA,EAAAA,EAAI,kBAErB/D,EAACkC,EAAW,CAAAH,UAAWC,EAAmB6C,UAAWC,QAAM,EAAC3C,QAAQ,YAAWpC,SAC5DiE,QAD4DA,EAC5EH,EAAKkB,mBAAWf,IAAAA,EAAAA,EAAI,oBAEvBnE,EAACmF,EAAG,CAAC5C,GAAI,CAAE6C,QAAS,OAAQC,WAAY,WAAYC,IAAK,MAAOC,eAAgB,YAC9ErF,SAAA,CAAAF,EAACqC,EAAU,CAACC,QAAQ,2BAAyB8B,UAAVJ,EAAKwB,aAAKpB,IAAAA,EAAAA,EAAI,KACjDpE,EAACqC,GAAWC,QAAQ,QAAQC,GAAI,CAAEkD,SAAU,OAAQC,GAAI,MAAO3E,MAAO,yBACvD,UAAXiD,EAAK2B,cAAMtB,IAAAA,EAAAA,EAAI,EAAC,iBAIxBlE,EAACyF,EAAW,CAAAC,KAAK,QAAQxF,QAAS,WAAF,IAAAyF,EAAAC,EAAA,eAAAD,GAAQC,EAAApG,EAAKD,OAAMsG,oBAAY,IAAAF,OAAA,EAAvBA,EAAAG,KAAAF,EAA0B/B,EAAK,EAAEzB,GAAI,CAAExB,MAAO,WACpFb,SAAAC,EAAC+F,EAAa,CAAA,UAGnBpG,EAAAH,EAEQ,SAAA,SAACwG,GACRxG,EAAKyG,SAAS,CAAEjF,SAAUgF,MAC3BrG,EAAAH,EAAA,UAES,WACRA,EAAKyG,SAAS,CAAEjF,SAAU,SA3G1BxB,EAAKgB,MAAQ,CAAEQ,SAAU,KAAMP,UAAU,GAAOjB,CAClD,CAAC,OAAA0G,EAAA5G,EAJ6B6G,GAI7BC,EAAA9G,EAAA,CAAA,CAAA+G,IAAA,QAAAC,IAED,WAAS,IAAAC,EACP,OAAuB,QAAvBA,EAAOC,KAAKjH,MAAMmB,aAAK,IAAA6F,EAAAA,EAAI,EAC7B,GAAC,CAAAF,IAAA,oBAAAI,MAED,WAEED,KAAKP,SAAS,CAAExF,UAAU,GAC5B,IAAC,IAqGUiG,EAAmB,SAACC,GAC/B,IAAMC,EAA6C,SAACrH,GAAK,OAAKS,EAACV,EAAU+D,EAAAA,EAAA,CAAA,EAAKsD,GAAYpH,GAAS,EAEnG,OADAqH,EAAYC,YAAc,aACnBD,CACT"}
@@ -1,2 +1,2 @@
1
- import{objectWithoutProperties as e,objectSpread2 as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as i,jsxs as r}from"react/jsx-runtime";import{useCallback as a,useMemo as o}from"react";import{styled as n,Button as s,Box as c,Typography as l}from"@mui/material";var A=["children","startIcon","className","forceTheme"],g="data:image/webp;base64,UklGRkwEAABXRUJQVlA4WAoAAAAQAAAAdwAAdwAAQUxQSM4DAAABoEXb2iFJ+jKzjLZt27Zt27Zt27Zt27Zt24jM+5BfZPzxR/yrn2ZWREwA/Xdy+ctuYHMU9QRp8D4eQTnZwJ8JUU1aHZwMV0waPZwKUhUORFYVjioLJ8JVhT1hqsJhp2o0HewPU8zkAzo44FLLqJA9OtgeppQJFHZMB3sUQ3REB3uDFBNpvw42+AkqtXBFc1ui4BM6aCmmPQBssiUKOaZzSkis914oY0sUeoI7IaT8H6aPPVHocaa2kBoaM9imKMoaQBvtElL1LzPArogylE9NYu1P/D9f9Lp1Yyip7BvgXUWHgj4CwNsg9WQGm1k9NbmqNpavfGwxFbhythX3GPCjiUNEebvbBu/M6gkAO1Y9ibhVEjiiR7KXeNwS8xId+vFxRbjlAoo2TOfg4soS5Q0A7Lda0DkA0ySrq3n9yWGxA/BuI1dXeLvrWivea2a3S6rOXD0uxoQz++tYIPk75liwVJ24OkzgVQBaU/mScYcDrdMM3mfkS2q9xcwnBS1hvitoIfPVUEDqah0GDu3bonQCh0qCKy554gGvXR6V1WlPi5lvvoR0uA+DniMlnXa0nPniQ7kHELkncTJDybmjQdbpyVzXcczTIPbrMEOJ3jIHA6xQl4ny3qs3F+UkzPbB9ZCZRlJ14xoylHrXh2dDgpgYFyAP5XIDuBMgV3O3l1aGIwoNIP489D1XprSsVKpK1yXPxFHGqesHRCa50v/0ekGGXaug+3d5NifxQZVOCPNZGmr2B3ifw1hpt86VXA7y1dX0h3kJuZXmUZIGtSKR8Z/g1wWR0RSPTYvCzZFA7EDw2wLJePJ7ZtFbppI1wl5wN0hoetOKfgM86wOt0RSsllUMdTCLMoyd19ifrLGBm06CI9/kRgrz2UBVrooZr7nsomg0t1C6ElwRM8B+J+EJuHsO2fy4MBNKcWPF0W8G0tF4AJ4pThOGcllMOM8lls5RY/Wa2mTmEi7AhC1cHunM32jeaq6Q7cw1bzmX03b6c8VN2MHFsZ2c3FITfnAO2yEO4rKBvWhDd7iiwhZzo8l+5nFrXIJivmT+VpShhsYMkabSXwblBC0A+zamDGV+Mz2lcdziPocLqQl+BckY8TVTSBqqz+F6dAHFP+s4paDKXlNI4pscricxVPUn+EEkaZpBI0uQzBm/cfjQ0ulTzLka+PORZJF/kA5wuXlsnUzD30E/A9n2cj3gx5HZg3oPXXYFPrork30HrvLoCfS0cdoYuWaJ02qSzbf4KOhmJrL9pFvdAr6OdZECnfk3/jbwdmoCUmXC9pufcH+uL60Vkf6XMVZQOCBYAAAAEAcAnQEqeAB4AD6RSJ9LpaQioaSIALASCWlu4XEgAqWZ93Pu1keUUni2PHdLNfliQEgJASAkBICQEgJASAkBGAAA/v6knwxv//8VGk/xH3//+MPIwAAAAA==",m="data:image/webp;base64,UklGRngCAABXRUJQVlA4WAoAAAAQAAAAdwAAdwAAQUxQSAgCAAABkAXZtmk769nvxbbt5M+2bdvOp23btm3btm0nBzM8r9a5a8WpiogJoP8XB5eZceCMsMfXdkzuxVf4HkS2p4Vz9Tch9e3UPK0APJ/cuVFDURs0H3AEwOUwjtQGcCUTSTzUAKZyDAbexyOZRwMmx1mgLUkNWBwAkok1D+B5GFesLv8AyFyuZHIvheLMBYDpqfTZgW8+ba5NUXx/bXpdtjiA2TlMkztOgItVFbnuDJgeXY1rkcH1elrB2pRKKeBd/yClgGu5tMKH6b5KATfr+SgF7ErlpRTMDr5KASczagVkU+uUWq9zaPWhuFavMmm1h5R6nUSpDclJpRdViFWwWTFJpRuFiVuolz2CSKXD8cmFEj1u5kMaGcvCyZ3i3CxKbvW465GwegaTFrcc2ftykIs9bpOT+x3I1R6X28H0RKQKLfzWtdLkds8L7wngXZ+YpA5R2qoVEpEHSuCpf7nZQGqxVsPmOAH0lCoIsDj6Akgjk9d04CNHHAN4UkyisEU20J+DygOwlg/pLWzfyQ8A7PdnoVbvIfWxuMScb69MrwYGErtv9u5zVsu6ZunI8rHoD8LYBeLpFH4YJ4JUSvwEVoRW0CnRIxjhetRZuvz7Gz8Aa5aLunI8B4TneCabzZGhSdPvd38Nu11TUZvV4HCc6BE+hpPGSZ4CESolfICP4Sr5jn01yVel/+8CVlA4IEoAAACQBgCdASp4AHgAPpFIoUylpCMiIIgAsBIJaW7hdJAAT22IvEgubeI386q8sEbEFRz2xF4gqOe2IvEFRzvAAP7/Uk9vLwAAAAAAAA==",d=function(n){var s=n.children,g=n.startIcon,m=n.className,d=n.forceTheme,b=e(n,A),v=a(function(){if(!g)return null;var e=g;return"string"==typeof g&&(e=i(c,{component:"span",className:"icon-img",sx:{"--mask-url":"url(".concat(g,")")}})),i("span",{className:"icon-static",children:e})},[g]),u=o(function(){var e=["tab-button"];return e.push(m||""),e.join(" ")},[m]);return r(p,t(t({},b),{},{className:u,forceTheme:d,children:[v(),r("div",{className:"text-container",children:[i(l,{variant:"h6",className:"text text-visible",children:s}),i(l,{variant:"h6",className:"text text-hidden",children:s})]})]}))},p=n(s,{shouldForwardProp:function(e){return"forceTheme"!==e}})(function(e){var t=e.theme,i=e.forceTheme,r={dark:{primary:t.palette.common.white,secondary:"rgb(249, 169, 37)",iconActive:"rgb(249, 169, 37)",bgGradient:"linear-gradient(45deg, rgb(211, 47, 47) 0%, rgb(249, 169, 37) 70%, rgb(211, 47, 47) 100%) 0% 0% / 200%",iconImageFilter:"invert(1) brightness(2)"},light:{primary:t.palette.common.black,secondary:"rgb(156, 39, 176)",iconActive:"rgb(156, 39, 176)",bgGradient:"linear-gradient(45deg, rgb(25, 118, 210) 0%, rgb(156, 39, 176) 70%, rgb(25, 118, 210) 100%) 0% 0% / 200%",iconImageFilter:"invert(0) brightness(0.2)"}}[i||t.palette.mode];return{"--color-primary":r.primary,"--color-secondary":r.secondary,"--bg-underline":r.bgGradient,"--bg-icon":r.bgGradient,"--icon-color-active":r.iconActive,"--size-icon":"24px","--spacing-x-size":"12px","--timing-fast":"0.25s","--timing-medium":"0.3s","--easing-smooth":"cubic-bezier(0.25, 0.46, 0.45, 0.94)","--easing-bounce":"cubic-bezier(0.34, 1.56, 0.64, 1)",height:"var(--height-button, 40px)",position:"relative",overflow:"hidden",transition:"transform 0.2s, box-shadow 0.2s",display:"flex",alignItems:"center",gap:"8px",padding:"6px var(--spacing-x-size)",color:"var(--color-primary)",backgroundColor:"transparent !important","&::after":{content:'""',position:"absolute",bottom:"2px",left:"var(--spacing-x-size)",width:"0",height:"2px",background:"var(--bg-underline)",transition:"width var(--timing-fast) var(--easing-smooth)"},"& .icon-static":{display:"flex",alignItems:"center",flexShrink:0,transition:"transform var(--timing-medium) var(--easing-bounce)",transformOrigin:"left bottom",position:"relative","img, svg, .icon-img":{width:"var(--size-icon)",height:"var(--size-icon)"},".icon-img":{backgroundImage:"var(--mask-url)",backgroundSize:"cover",backgroundPosition:"center",display:"block",borderRadius:4,transition:"filter 0.3s",position:"relative",zIndex:1,filter:r.iconImageFilter}},"& .text-container":{position:"relative",overflow:"hidden",flex:1},".text":{textTransform:"none",fontWeight:600,fontSize:"1.125rem",lineHeight:1.6,transformOrigin:"left bottom"},"& .text-visible, & .text-hidden":{transition:"transform var(--timing-medium) var(--easing-smooth)",display:"block",width:"100%",textAlign:"left",margin:0},"& .text-visible":{transform:"translateY(0) skewY(0)",opacity:1},"& .text-hidden":{position:"absolute",top:"50%",left:"0",transform:"translateY(50%) skewY(15deg)",opacity:1},"&.active-tab":{"& .icon-static":{color:"var(--icon-color-active)",".icon-img":{background:"var(--bg-icon)",WebkitMaskImage:"var(--mask-url)",maskImage:"var(--mask-url)",WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"cover",maskSize:"cover",filter:"none"}},"&::after":{width:"var(--size-icon)"}},"&.inactive-tab":{"&::after":{width:"0"}},"&:hover":{"&::after":{width:"calc(100% - (var(--spacing-x-size) * 2))"},"& .icon-static":{transform:"rotate(-10deg)"},"& .text-visible":{transform:"translateY(-100%) skewY(-15deg)",opacity:1},"& .text-hidden":{transform:"translateY(-50%) skewY(0)",opacity:1}}}});export{d as ButtonAnimation,g as IconAudioBase64,m as IconVideoBase64};
1
+ import{objectWithoutProperties as e,objectSpread2 as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as i,jsxs as a}from"react/jsx-runtime";import{useCallback as r,useMemo as n}from"react";import{styled as o,Button as s,Box as c,Typography as l}from"@mui/material";var A=["children","startIcon","className","forceTheme"],g="data:image/webp;base64,UklGRkwEAABXRUJQVlA4WAoAAAAQAAAAdwAAdwAAQUxQSM4DAAABoEXb2iFJ+jKzjLZt27Zt27Zt27Zt27Zt24jM+5BfZPzxR/yrn2ZWREwA/Xdy+ctuYHMU9QRp8D4eQTnZwJ8JUU1aHZwMV0waPZwKUhUORFYVjioLJ8JVhT1hqsJhp2o0HewPU8zkAzo44FLLqJA9OtgeppQJFHZMB3sUQ3REB3uDFBNpvw42+AkqtXBFc1ui4BM6aCmmPQBssiUKOaZzSkis914oY0sUeoI7IaT8H6aPPVHocaa2kBoaM9imKMoaQBvtElL1LzPArogylE9NYu1P/D9f9Lp1Yyip7BvgXUWHgj4CwNsg9WQGm1k9NbmqNpavfGwxFbhythX3GPCjiUNEebvbBu/M6gkAO1Y9ibhVEjiiR7KXeNwS8xId+vFxRbjlAoo2TOfg4soS5Q0A7Lda0DkA0ySrq3n9yWGxA/BuI1dXeLvrWivea2a3S6rOXD0uxoQz++tYIPk75liwVJ24OkzgVQBaU/mScYcDrdMM3mfkS2q9xcwnBS1hvitoIfPVUEDqah0GDu3bonQCh0qCKy554gGvXR6V1WlPi5lvvoR0uA+DniMlnXa0nPniQ7kHELkncTJDybmjQdbpyVzXcczTIPbrMEOJ3jIHA6xQl4ny3qs3F+UkzPbB9ZCZRlJ14xoylHrXh2dDgpgYFyAP5XIDuBMgV3O3l1aGIwoNIP489D1XprSsVKpK1yXPxFHGqesHRCa50v/0ekGGXaug+3d5NifxQZVOCPNZGmr2B3ifw1hpt86VXA7y1dX0h3kJuZXmUZIGtSKR8Z/g1wWR0RSPTYvCzZFA7EDw2wLJePJ7ZtFbppI1wl5wN0hoetOKfgM86wOt0RSsllUMdTCLMoyd19ifrLGBm06CI9/kRgrz2UBVrooZr7nsomg0t1C6ElwRM8B+J+EJuHsO2fy4MBNKcWPF0W8G0tF4AJ4pThOGcllMOM8lls5RY/Wa2mTmEi7AhC1cHunM32jeaq6Q7cw1bzmX03b6c8VN2MHFsZ2c3FITfnAO2yEO4rKBvWhDd7iiwhZzo8l+5nFrXIJivmT+VpShhsYMkabSXwblBC0A+zamDGV+Mz2lcdziPocLqQl+BckY8TVTSBqqz+F6dAHFP+s4paDKXlNI4pscricxVPUn+EEkaZpBI0uQzBm/cfjQ0ulTzLka+PORZJF/kA5wuXlsnUzD30E/A9n2cj3gx5HZg3oPXXYFPrork30HrvLoCfS0cdoYuWaJ02qSzbf4KOhmJrL9pFvdAr6OdZECnfk3/jbwdmoCUmXC9pufcH+uL60Vkf6XMVZQOCBYAAAAEAcAnQEqeAB4AD6RSJ9LpaQioaSIALASCWlu4XEgAqWZ93Pu1keUUni2PHdLNfliQEgJASAkBICQEgJASAkBGAAA/v6knwxv//8VGk/xH3//+MPIwAAAAA==",m="data:image/webp;base64,UklGRngCAABXRUJQVlA4WAoAAAAQAAAAdwAAdwAAQUxQSAgCAAABkAXZtmk769nvxbbt5M+2bdvOp23btm3btm0nBzM8r9a5a8WpiogJoP8XB5eZceCMsMfXdkzuxVf4HkS2p4Vz9Tch9e3UPK0APJ/cuVFDURs0H3AEwOUwjtQGcCUTSTzUAKZyDAbexyOZRwMmx1mgLUkNWBwAkok1D+B5GFesLv8AyFyuZHIvheLMBYDpqfTZgW8+ba5NUXx/bXpdtjiA2TlMkztOgItVFbnuDJgeXY1rkcH1elrB2pRKKeBd/yClgGu5tMKH6b5KATfr+SgF7ErlpRTMDr5KASczagVkU+uUWq9zaPWhuFavMmm1h5R6nUSpDclJpRdViFWwWTFJpRuFiVuolz2CSKXD8cmFEj1u5kMaGcvCyZ3i3CxKbvW465GwegaTFrcc2ftykIs9bpOT+x3I1R6X28H0RKQKLfzWtdLkds8L7wngXZ+YpA5R2qoVEpEHSuCpf7nZQGqxVsPmOAH0lCoIsDj6Akgjk9d04CNHHAN4UkyisEU20J+DygOwlg/pLWzfyQ8A7PdnoVbvIfWxuMScb69MrwYGErtv9u5zVsu6ZunI8rHoD8LYBeLpFH4YJ4JUSvwEVoRW0CnRIxjhetRZuvz7Gz8Aa5aLunI8B4TneCabzZGhSdPvd38Nu11TUZvV4HCc6BE+hpPGSZ4CESolfICP4Sr5jn01yVel/+8CVlA4IEoAAACQBgCdASp4AHgAPpFIoUylpCMiIIgAsBIJaW7hdJAAT22IvEgubeI386q8sEbEFRz2xF4gqOe2IvEFRzvAAP7/Uk9vLwAAAAAAAA==",d=function(o){var s=o.children,g=o.startIcon,m=o.className,d=o.forceTheme,b=e(o,A),v=r(function(){if(!g)return null;var e=g;return"string"==typeof g&&(e=i(c,{component:"span",className:"icon-img",sx:{"--mask-url":"url(".concat(g,")")}})),i("span",{className:"icon-static",children:e})},[g]),u=n(function(){var e=["tab-button"];return e.push(m||""),e.join(" ")},[m]);return a(p,t(t({},b),{},{className:u,forceTheme:d,children:[v(),a("div",{className:"text-container",children:[i(l,{variant:"h6",className:"text text-visible",children:s}),i(l,{variant:"h6",className:"text text-hidden",children:s})]})]}))},p=o(s,{shouldForwardProp:function(e){return"forceTheme"!==e}})(function(e){var t=e.theme,i=e.forceTheme,a={dark:{primary:t.palette.common.white,secondary:"rgb(249, 169, 37)",iconActive:"rgb(249, 169, 37)",bgGradient:"linear-gradient(45deg, rgb(211, 47, 47) 0%, rgb(249, 169, 37) 70%, rgb(211, 47, 47) 100%) 0% 0% / 200%",iconImageFilter:"invert(1) brightness(2)"},light:{primary:t.palette.common.black,secondary:"rgb(156, 39, 176)",iconActive:"rgb(156, 39, 176)",bgGradient:"linear-gradient(45deg, rgb(25, 118, 210) 0%, rgb(156, 39, 176) 70%, rgb(25, 118, 210) 100%) 0% 0% / 200%",iconImageFilter:"invert(0) brightness(0.2)"}}[i||t.palette.mode];return{"--color-primary":a.primary,"--color-secondary":a.secondary,"--bg-underline":a.bgGradient,"--bg-icon":a.bgGradient,"--icon-color-active":a.iconActive,"--size-icon":"24px","--spacing-x-size":"12px","--timing-fast":"0.25s","--timing-medium":"0.3s","--easing-smooth":"cubic-bezier(0.25, 0.46, 0.45, 0.94)","--easing-bounce":"cubic-bezier(0.34, 1.56, 0.64, 1)",height:"var(--height-button, 40px)",position:"relative",overflow:"hidden",transition:"transform 0.2s, box-shadow 0.2s",display:"flex",alignItems:"center",gap:"8px",padding:"6px var(--spacing-x-size)",color:"var(--color-primary)",backgroundColor:"transparent !important",a:{display:"flex",alignItems:"center"},"&::after":{content:'""',position:"absolute",bottom:"2px",left:"var(--spacing-x-size)",width:"0",height:"2px",background:"var(--bg-underline)",transition:"width var(--timing-fast) var(--easing-smooth)"},"& .icon-static":{display:"flex",alignItems:"center",flexShrink:0,transition:"transform var(--timing-medium) var(--easing-bounce)",transformOrigin:"left bottom",position:"relative","img, svg, .icon-img":{width:"var(--size-icon)",height:"var(--size-icon)"},".icon-img":{backgroundImage:"var(--mask-url)",backgroundSize:"cover",backgroundPosition:"center",display:"block",borderRadius:4,transition:"filter 0.3s",position:"relative",zIndex:1,filter:a.iconImageFilter}},"& .text-container":{position:"relative",overflow:"hidden",flex:1},".text":{textTransform:"none",fontWeight:600,fontSize:"1.125rem",lineHeight:1.6,transformOrigin:"left bottom"},"& .text-visible, & .text-hidden":{transition:"transform var(--timing-medium) var(--easing-smooth)",display:"block",width:"100%",textAlign:"left",margin:0},"& .text-visible":{transform:"translateY(0) skewY(0)",opacity:1},"& .text-hidden":{position:"absolute",top:"50%",left:"0",transform:"translateY(50%) skewY(15deg)",opacity:1},"&.active-tab":{"& .icon-static":{color:"var(--icon-color-active)",".icon-img":{background:"var(--bg-icon)",WebkitMaskImage:"var(--mask-url)",maskImage:"var(--mask-url)",WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"cover",maskSize:"cover",filter:"none"}},"&::after":{width:"var(--size-icon)"}},"&.inactive-tab":{"&::after":{width:"0"}},"&:hover":{"&::after":{width:"calc(100% - (var(--spacing-x-size) * 2))"},"& .icon-static":{transform:"rotate(-10deg)"},"& .text-visible":{transform:"translateY(-100%) skewY(-15deg)",opacity:1},"& .text-hidden":{transform:"translateY(-50%) skewY(0)",opacity:1}}}});export{d as ButtonAnimation,g as IconAudioBase64,m as IconVideoBase64};
2
2
  //# sourceMappingURL=animated-tabs.units.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animated-tabs.units.js","sources":["../../src/layout-global/animated-tabs.units.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react'\r\nimport { Box, Button, styled, Typography } from '@mui/material'\r\nimport type { FC, ReactNode } from 'react'\r\nimport type { ButtonProps, Theme } from '@mui/material'\r\n\r\nexport const IconAudioBase64 = `data:image/webp;base64,UklGRkwEAABXRUJQVlA4WAoAAAAQAAAAdwAAdwAAQUxQSM4DAAABoEXb2iFJ+jKzjLZt27Zt27Zt27Zt27Zt24jM+5BfZPzxR/yrn2ZWREwA/Xdy+ctuYHMU9QRp8D4eQTnZwJ8JUU1aHZwMV0waPZwKUhUORFYVjioLJ8JVhT1hqsJhp2o0HewPU8zkAzo44FLLqJA9OtgeppQJFHZMB3sUQ3REB3uDFBNpvw42+AkqtXBFc1ui4BM6aCmmPQBssiUKOaZzSkis914oY0sUeoI7IaT8H6aPPVHocaa2kBoaM9imKMoaQBvtElL1LzPArogylE9NYu1P/D9f9Lp1Yyip7BvgXUWHgj4CwNsg9WQGm1k9NbmqNpavfGwxFbhythX3GPCjiUNEebvbBu/M6gkAO1Y9ibhVEjiiR7KXeNwS8xId+vFxRbjlAoo2TOfg4soS5Q0A7Lda0DkA0ySrq3n9yWGxA/BuI1dXeLvrWivea2a3S6rOXD0uxoQz++tYIPk75liwVJ24OkzgVQBaU/mScYcDrdMM3mfkS2q9xcwnBS1hvitoIfPVUEDqah0GDu3bonQCh0qCKy554gGvXR6V1WlPi5lvvoR0uA+DniMlnXa0nPniQ7kHELkncTJDybmjQdbpyVzXcczTIPbrMEOJ3jIHA6xQl4ny3qs3F+UkzPbB9ZCZRlJ14xoylHrXh2dDgpgYFyAP5XIDuBMgV3O3l1aGIwoNIP489D1XprSsVKpK1yXPxFHGqesHRCa50v/0ekGGXaug+3d5NifxQZVOCPNZGmr2B3ifw1hpt86VXA7y1dX0h3kJuZXmUZIGtSKR8Z/g1wWR0RSPTYvCzZFA7EDw2wLJePJ7ZtFbppI1wl5wN0hoetOKfgM86wOt0RSsllUMdTCLMoyd19ifrLGBm06CI9/kRgrz2UBVrooZr7nsomg0t1C6ElwRM8B+J+EJuHsO2fy4MBNKcWPF0W8G0tF4AJ4pThOGcllMOM8lls5RY/Wa2mTmEi7AhC1cHunM32jeaq6Q7cw1bzmX03b6c8VN2MHFsZ2c3FITfnAO2yEO4rKBvWhDd7iiwhZzo8l+5nFrXIJivmT+VpShhsYMkabSXwblBC0A+zamDGV+Mz2lcdziPocLqQl+BckY8TVTSBqqz+F6dAHFP+s4paDKXlNI4pscricxVPUn+EEkaZpBI0uQzBm/cfjQ0ulTzLka+PORZJF/kA5wuXlsnUzD30E/A9n2cj3gx5HZg3oPXXYFPrork30HrvLoCfS0cdoYuWaJ02qSzbf4KOhmJrL9pFvdAr6OdZECnfk3/jbwdmoCUmXC9pufcH+uL60Vkf6XMVZQOCBYAAAAEAcAnQEqeAB4AD6RSJ9LpaQioaSIALASCWlu4XEgAqWZ93Pu1keUUni2PHdLNfliQEgJASAkBICQEgJASAkBGAAA/v6knwxv//8VGk/xH3//+MPIwAAAAA==`\r\n\r\nexport const IconVideoBase64 = `data:image/webp;base64,UklGRngCAABXRUJQVlA4WAoAAAAQAAAAdwAAdwAAQUxQSAgCAAABkAXZtmk769nvxbbt5M+2bdvOp23btm3btm0nBzM8r9a5a8WpiogJoP8XB5eZceCMsMfXdkzuxVf4HkS2p4Vz9Tch9e3UPK0APJ/cuVFDURs0H3AEwOUwjtQGcCUTSTzUAKZyDAbexyOZRwMmx1mgLUkNWBwAkok1D+B5GFesLv8AyFyuZHIvheLMBYDpqfTZgW8+ba5NUXx/bXpdtjiA2TlMkztOgItVFbnuDJgeXY1rkcH1elrB2pRKKeBd/yClgGu5tMKH6b5KATfr+SgF7ErlpRTMDr5KASczagVkU+uUWq9zaPWhuFavMmm1h5R6nUSpDclJpRdViFWwWTFJpRuFiVuolz2CSKXD8cmFEj1u5kMaGcvCyZ3i3CxKbvW465GwegaTFrcc2ftykIs9bpOT+x3I1R6X28H0RKQKLfzWtdLkds8L7wngXZ+YpA5R2qoVEpEHSuCpf7nZQGqxVsPmOAH0lCoIsDj6Akgjk9d04CNHHAN4UkyisEU20J+DygOwlg/pLWzfyQ8A7PdnoVbvIfWxuMScb69MrwYGErtv9u5zVsu6ZunI8rHoD8LYBeLpFH4YJ4JUSvwEVoRW0CnRIxjhetRZuvz7Gz8Aa5aLunI8B4TneCabzZGhSdPvd38Nu11TUZvV4HCc6BE+hpPGSZ4CESolfICP4Sr5jn01yVel/+8CVlA4IEoAAACQBgCdASp4AHgAPpFIoUylpCMiIIgAsBIJaW7hdJAAT22IvEgubeI386q8sEbEFRz2xF4gqOe2IvEFRzvAAP7/Uk9vLwAAAAAAAA==`\r\n\r\nexport interface IButtonThemeProps {\r\n forceTheme?: 'dark' | 'light'\r\n}\r\n\r\nexport interface IButtonAnimationProps extends ButtonProps, IButtonThemeProps {\r\n children: ReactNode\r\n startIcon?: ReactNode\r\n [key: string]: any // Allow additional props\r\n}\r\n\r\nexport const ButtonAnimation: FC<IButtonAnimationProps> = (props) => {\r\n const { children, startIcon, className, forceTheme, ...otherProps } = props\r\n\r\n const renderIcon = useCallback(() => {\r\n if (!startIcon) return null\r\n let finalIcon = startIcon\r\n if (typeof startIcon === 'string') {\r\n finalIcon = <Box component='span' className='icon-img' sx={{ '--mask-url': `url(${startIcon})` }} />\r\n }\r\n return <span className='icon-static'>{finalIcon}</span>\r\n }, [startIcon])\r\n\r\n const rootClasses = useMemo(() => {\r\n const classes = ['tab-button']\r\n classes.push(className || '')\r\n return classes.join(' ')\r\n }, [className])\r\n\r\n return (\r\n <ButtonAnimationStyled {...otherProps} className={rootClasses} forceTheme={forceTheme}>\r\n {renderIcon()}\r\n <div className='text-container'>\r\n <Typography variant='h6' className='text text-visible'>\r\n {children}\r\n </Typography>\r\n <Typography variant='h6' className='text text-hidden'>\r\n {children}\r\n </Typography>\r\n </div>\r\n </ButtonAnimationStyled>\r\n )\r\n}\r\n\r\nconst ButtonAnimationStyled = styled(Button, {\r\n shouldForwardProp: (prop: PropertyKey) => prop !== 'forceTheme'\r\n})<IButtonThemeProps>(({ theme, forceTheme }: { theme: Theme; forceTheme?: 'dark' | 'light' }) => {\r\n const sxMap = {\r\n dark: {\r\n primary: theme.palette.common.white,\r\n secondary: 'rgb(249, 169, 37)',\r\n iconActive: 'rgb(249, 169, 37)',\r\n bgGradient: 'linear-gradient(45deg, rgb(211, 47, 47) 0%, rgb(249, 169, 37) 70%, rgb(211, 47, 47) 100%) 0% 0% / 200%',\r\n iconImageFilter: 'invert(1) brightness(2)'\r\n },\r\n light: {\r\n primary: theme.palette.common.black,\r\n secondary: 'rgb(156, 39, 176)',\r\n iconActive: 'rgb(156, 39, 176)',\r\n bgGradient: 'linear-gradient(45deg, rgb(25, 118, 210) 0%, rgb(156, 39, 176) 70%, rgb(25, 118, 210) 100%) 0% 0% / 200%',\r\n iconImageFilter: 'invert(0) brightness(0.2)'\r\n }\r\n }\r\n\r\n const mode = forceTheme || theme.palette.mode\r\n const currentSx = sxMap[mode as keyof typeof sxMap]\r\n\r\n return {\r\n '--color-primary': currentSx.primary,\r\n '--color-secondary': currentSx.secondary,\r\n '--bg-underline': currentSx.bgGradient,\r\n '--bg-icon': currentSx.bgGradient,\r\n '--icon-color-active': currentSx.iconActive,\r\n '--size-icon': '24px',\r\n '--spacing-x-size': '12px',\r\n '--timing-fast': '0.25s',\r\n '--timing-medium': '0.3s',\r\n '--easing-smooth': 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\r\n '--easing-bounce': 'cubic-bezier(0.34, 1.56, 0.64, 1)',\r\n height: 'var(--height-button, 40px)',\r\n position: 'relative',\r\n overflow: 'hidden',\r\n transition: 'transform 0.2s, box-shadow 0.2s',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n padding: '6px var(--spacing-x-size)',\r\n color: 'var(--color-primary)',\r\n backgroundColor: 'transparent !important',\r\n\r\n '&::after': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n bottom: '2px',\r\n left: 'var(--spacing-x-size)',\r\n width: '0',\r\n height: '2px',\r\n background: 'var(--bg-underline)',\r\n transition: 'width var(--timing-fast) var(--easing-smooth)'\r\n },\r\n\r\n '& .icon-static': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexShrink: 0,\r\n transition: 'transform var(--timing-medium) var(--easing-bounce)',\r\n transformOrigin: 'left bottom',\r\n position: 'relative',\r\n 'img, svg, .icon-img': { width: 'var(--size-icon)', height: 'var(--size-icon)' },\r\n '.icon-img': {\r\n backgroundImage: `var(--mask-url)`,\r\n backgroundSize: 'cover',\r\n backgroundPosition: 'center',\r\n display: 'block',\r\n borderRadius: 4,\r\n transition: 'filter 0.3s',\r\n position: 'relative',\r\n zIndex: 1,\r\n filter: currentSx.iconImageFilter\r\n }\r\n },\r\n\r\n '& .text-container': { position: 'relative', overflow: 'hidden', flex: 1 },\r\n\r\n '.text': {\r\n textTransform: 'none',\r\n fontWeight: 600,\r\n fontSize: '1.125rem',\r\n lineHeight: 1.6,\r\n transformOrigin: 'left bottom'\r\n },\r\n\r\n '& .text-visible, & .text-hidden': {\r\n transition: 'transform var(--timing-medium) var(--easing-smooth)',\r\n display: 'block',\r\n width: '100%',\r\n textAlign: 'left',\r\n margin: 0\r\n },\r\n\r\n '& .text-visible': { transform: 'translateY(0) skewY(0)', opacity: 1 },\r\n\r\n '& .text-hidden': {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '0',\r\n transform: 'translateY(50%) skewY(15deg)',\r\n opacity: 1\r\n },\r\n\r\n '&.active-tab': {\r\n '& .icon-static': {\r\n color: 'var(--icon-color-active)',\r\n '.icon-img': {\r\n background: 'var(--bg-icon)',\r\n WebkitMaskImage: 'var(--mask-url)',\r\n maskImage: 'var(--mask-url)',\r\n WebkitMaskRepeat: 'no-repeat',\r\n maskRepeat: 'no-repeat',\r\n WebkitMaskSize: 'cover',\r\n maskSize: 'cover',\r\n filter: 'none'\r\n }\r\n },\r\n '&::after': { width: 'var(--size-icon)' }\r\n },\r\n '&.inactive-tab': { '&::after': { width: '0' } },\r\n\r\n '&:hover': {\r\n // transform: 'scale(1.02)',\r\n '&::after': { width: 'calc(100% - (var(--spacing-x-size) * 2))' },\r\n '& .icon-static': { transform: 'rotate(-10deg)' },\r\n '& .text-visible': { transform: 'translateY(-100%) skewY(-15deg)', opacity: 1 },\r\n '& .text-hidden': { transform: 'translateY(-50%) skewY(0)', opacity: 1 }\r\n }\r\n }\r\n})\r\n"],"names":["IconAudioBase64","IconVideoBase64","ButtonAnimation","props","children","startIcon","className","forceTheme","otherProps","_objectWithoutProperties","_excluded","renderIcon","useCallback","finalIcon","_jsx","Box","component","sx","concat","rootClasses","useMemo","classes","push","join","_jsxs","ButtonAnimationStyled","_objectSpread","Typography","variant","styled","Button","shouldForwardProp","prop","_ref","theme","currentSx","dark","primary","palette","common","white","secondary","iconActive","bgGradient","iconImageFilter","light","black","mode","height","position","overflow","transition","display","alignItems","gap","padding","color","backgroundColor","content","bottom","left","width","background","flexShrink","transformOrigin","backgroundImage","backgroundSize","backgroundPosition","borderRadius","zIndex","filter","flex","textTransform","fontWeight","fontSize","lineHeight","textAlign","margin","transform","opacity","top","WebkitMaskImage","maskImage","WebkitMaskRepeat","maskRepeat","WebkitMaskSize","maskSize"],"mappings":"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"}
1
+ {"version":3,"file":"animated-tabs.units.js","sources":["../../src/layout-global/animated-tabs.units.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react'\r\nimport { Box, Button, styled, Typography } from '@mui/material'\r\nimport type { FC, ReactNode } from 'react'\r\nimport type { ButtonProps, Theme } from '@mui/material'\r\n\r\nexport const IconAudioBase64 = `data:image/webp;base64,UklGRkwEAABXRUJQVlA4WAoAAAAQAAAAdwAAdwAAQUxQSM4DAAABoEXb2iFJ+jKzjLZt27Zt27Zt27Zt27Zt24jM+5BfZPzxR/yrn2ZWREwA/Xdy+ctuYHMU9QRp8D4eQTnZwJ8JUU1aHZwMV0waPZwKUhUORFYVjioLJ8JVhT1hqsJhp2o0HewPU8zkAzo44FLLqJA9OtgeppQJFHZMB3sUQ3REB3uDFBNpvw42+AkqtXBFc1ui4BM6aCmmPQBssiUKOaZzSkis914oY0sUeoI7IaT8H6aPPVHocaa2kBoaM9imKMoaQBvtElL1LzPArogylE9NYu1P/D9f9Lp1Yyip7BvgXUWHgj4CwNsg9WQGm1k9NbmqNpavfGwxFbhythX3GPCjiUNEebvbBu/M6gkAO1Y9ibhVEjiiR7KXeNwS8xId+vFxRbjlAoo2TOfg4soS5Q0A7Lda0DkA0ySrq3n9yWGxA/BuI1dXeLvrWivea2a3S6rOXD0uxoQz++tYIPk75liwVJ24OkzgVQBaU/mScYcDrdMM3mfkS2q9xcwnBS1hvitoIfPVUEDqah0GDu3bonQCh0qCKy554gGvXR6V1WlPi5lvvoR0uA+DniMlnXa0nPniQ7kHELkncTJDybmjQdbpyVzXcczTIPbrMEOJ3jIHA6xQl4ny3qs3F+UkzPbB9ZCZRlJ14xoylHrXh2dDgpgYFyAP5XIDuBMgV3O3l1aGIwoNIP489D1XprSsVKpK1yXPxFHGqesHRCa50v/0ekGGXaug+3d5NifxQZVOCPNZGmr2B3ifw1hpt86VXA7y1dX0h3kJuZXmUZIGtSKR8Z/g1wWR0RSPTYvCzZFA7EDw2wLJePJ7ZtFbppI1wl5wN0hoetOKfgM86wOt0RSsllUMdTCLMoyd19ifrLGBm06CI9/kRgrz2UBVrooZr7nsomg0t1C6ElwRM8B+J+EJuHsO2fy4MBNKcWPF0W8G0tF4AJ4pThOGcllMOM8lls5RY/Wa2mTmEi7AhC1cHunM32jeaq6Q7cw1bzmX03b6c8VN2MHFsZ2c3FITfnAO2yEO4rKBvWhDd7iiwhZzo8l+5nFrXIJivmT+VpShhsYMkabSXwblBC0A+zamDGV+Mz2lcdziPocLqQl+BckY8TVTSBqqz+F6dAHFP+s4paDKXlNI4pscricxVPUn+EEkaZpBI0uQzBm/cfjQ0ulTzLka+PORZJF/kA5wuXlsnUzD30E/A9n2cj3gx5HZg3oPXXYFPrork30HrvLoCfS0cdoYuWaJ02qSzbf4KOhmJrL9pFvdAr6OdZECnfk3/jbwdmoCUmXC9pufcH+uL60Vkf6XMVZQOCBYAAAAEAcAnQEqeAB4AD6RSJ9LpaQioaSIALASCWlu4XEgAqWZ93Pu1keUUni2PHdLNfliQEgJASAkBICQEgJASAkBGAAA/v6knwxv//8VGk/xH3//+MPIwAAAAA==`\r\n\r\nexport const IconVideoBase64 = `data:image/webp;base64,UklGRngCAABXRUJQVlA4WAoAAAAQAAAAdwAAdwAAQUxQSAgCAAABkAXZtmk769nvxbbt5M+2bdvOp23btm3btm0nBzM8r9a5a8WpiogJoP8XB5eZceCMsMfXdkzuxVf4HkS2p4Vz9Tch9e3UPK0APJ/cuVFDURs0H3AEwOUwjtQGcCUTSTzUAKZyDAbexyOZRwMmx1mgLUkNWBwAkok1D+B5GFesLv8AyFyuZHIvheLMBYDpqfTZgW8+ba5NUXx/bXpdtjiA2TlMkztOgItVFbnuDJgeXY1rkcH1elrB2pRKKeBd/yClgGu5tMKH6b5KATfr+SgF7ErlpRTMDr5KASczagVkU+uUWq9zaPWhuFavMmm1h5R6nUSpDclJpRdViFWwWTFJpRuFiVuolz2CSKXD8cmFEj1u5kMaGcvCyZ3i3CxKbvW465GwegaTFrcc2ftykIs9bpOT+x3I1R6X28H0RKQKLfzWtdLkds8L7wngXZ+YpA5R2qoVEpEHSuCpf7nZQGqxVsPmOAH0lCoIsDj6Akgjk9d04CNHHAN4UkyisEU20J+DygOwlg/pLWzfyQ8A7PdnoVbvIfWxuMScb69MrwYGErtv9u5zVsu6ZunI8rHoD8LYBeLpFH4YJ4JUSvwEVoRW0CnRIxjhetRZuvz7Gz8Aa5aLunI8B4TneCabzZGhSdPvd38Nu11TUZvV4HCc6BE+hpPGSZ4CESolfICP4Sr5jn01yVel/+8CVlA4IEoAAACQBgCdASp4AHgAPpFIoUylpCMiIIgAsBIJaW7hdJAAT22IvEgubeI386q8sEbEFRz2xF4gqOe2IvEFRzvAAP7/Uk9vLwAAAAAAAA==`\r\n\r\nexport interface IButtonThemeProps {\r\n forceTheme?: 'dark' | 'light'\r\n}\r\n\r\nexport interface IButtonAnimationProps extends ButtonProps, IButtonThemeProps {\r\n children: ReactNode\r\n startIcon?: ReactNode\r\n [key: string]: any // Allow additional props\r\n}\r\n\r\nexport const ButtonAnimation: FC<IButtonAnimationProps> = (props) => {\r\n const { children, startIcon, className, forceTheme, ...otherProps } = props\r\n\r\n const renderIcon = useCallback(() => {\r\n if (!startIcon) return null\r\n let finalIcon = startIcon\r\n if (typeof startIcon === 'string') {\r\n finalIcon = <Box component='span' className='icon-img' sx={{ '--mask-url': `url(${startIcon})` }} />\r\n }\r\n return <span className='icon-static'>{finalIcon}</span>\r\n }, [startIcon])\r\n\r\n const rootClasses = useMemo(() => {\r\n const classes = ['tab-button']\r\n classes.push(className || '')\r\n return classes.join(' ')\r\n }, [className])\r\n\r\n return (\r\n <ButtonAnimationStyled {...otherProps} className={rootClasses} forceTheme={forceTheme}>\r\n {renderIcon()}\r\n <div className='text-container'>\r\n <Typography variant='h6' className='text text-visible'>\r\n {children}\r\n </Typography>\r\n <Typography variant='h6' className='text text-hidden'>\r\n {children}\r\n </Typography>\r\n </div>\r\n </ButtonAnimationStyled>\r\n )\r\n}\r\n\r\nconst ButtonAnimationStyled = styled(Button, {\r\n shouldForwardProp: (prop: PropertyKey) => prop !== 'forceTheme'\r\n})<IButtonThemeProps>(({ theme, forceTheme }: { theme: Theme; forceTheme?: 'dark' | 'light' }) => {\r\n const sxMap = {\r\n dark: {\r\n primary: theme.palette.common.white,\r\n secondary: 'rgb(249, 169, 37)',\r\n iconActive: 'rgb(249, 169, 37)',\r\n bgGradient: 'linear-gradient(45deg, rgb(211, 47, 47) 0%, rgb(249, 169, 37) 70%, rgb(211, 47, 47) 100%) 0% 0% / 200%',\r\n iconImageFilter: 'invert(1) brightness(2)'\r\n },\r\n light: {\r\n primary: theme.palette.common.black,\r\n secondary: 'rgb(156, 39, 176)',\r\n iconActive: 'rgb(156, 39, 176)',\r\n bgGradient: 'linear-gradient(45deg, rgb(25, 118, 210) 0%, rgb(156, 39, 176) 70%, rgb(25, 118, 210) 100%) 0% 0% / 200%',\r\n iconImageFilter: 'invert(0) brightness(0.2)'\r\n }\r\n }\r\n\r\n const mode = forceTheme || theme.palette.mode\r\n const currentSx = sxMap[mode as keyof typeof sxMap]\r\n\r\n return {\r\n '--color-primary': currentSx.primary,\r\n '--color-secondary': currentSx.secondary,\r\n '--bg-underline': currentSx.bgGradient,\r\n '--bg-icon': currentSx.bgGradient,\r\n '--icon-color-active': currentSx.iconActive,\r\n '--size-icon': '24px',\r\n '--spacing-x-size': '12px',\r\n '--timing-fast': '0.25s',\r\n '--timing-medium': '0.3s',\r\n '--easing-smooth': 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\r\n '--easing-bounce': 'cubic-bezier(0.34, 1.56, 0.64, 1)',\r\n height: 'var(--height-button, 40px)',\r\n position: 'relative',\r\n overflow: 'hidden',\r\n transition: 'transform 0.2s, box-shadow 0.2s',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n padding: '6px var(--spacing-x-size)',\r\n color: 'var(--color-primary)',\r\n backgroundColor: 'transparent !important',\r\n\r\n a: {\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n\r\n '&::after': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n bottom: '2px',\r\n left: 'var(--spacing-x-size)',\r\n width: '0',\r\n height: '2px',\r\n background: 'var(--bg-underline)',\r\n transition: 'width var(--timing-fast) var(--easing-smooth)'\r\n },\r\n\r\n '& .icon-static': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexShrink: 0,\r\n transition: 'transform var(--timing-medium) var(--easing-bounce)',\r\n transformOrigin: 'left bottom',\r\n position: 'relative',\r\n 'img, svg, .icon-img': { width: 'var(--size-icon)', height: 'var(--size-icon)' },\r\n '.icon-img': {\r\n backgroundImage: `var(--mask-url)`,\r\n backgroundSize: 'cover',\r\n backgroundPosition: 'center',\r\n display: 'block',\r\n borderRadius: 4,\r\n transition: 'filter 0.3s',\r\n position: 'relative',\r\n zIndex: 1,\r\n filter: currentSx.iconImageFilter\r\n }\r\n },\r\n\r\n '& .text-container': { position: 'relative', overflow: 'hidden', flex: 1 },\r\n\r\n '.text': {\r\n textTransform: 'none',\r\n fontWeight: 600,\r\n fontSize: '1.125rem',\r\n lineHeight: 1.6,\r\n transformOrigin: 'left bottom'\r\n },\r\n\r\n '& .text-visible, & .text-hidden': {\r\n transition: 'transform var(--timing-medium) var(--easing-smooth)',\r\n display: 'block',\r\n width: '100%',\r\n textAlign: 'left',\r\n margin: 0\r\n },\r\n\r\n '& .text-visible': { transform: 'translateY(0) skewY(0)', opacity: 1 },\r\n\r\n '& .text-hidden': {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '0',\r\n transform: 'translateY(50%) skewY(15deg)',\r\n opacity: 1\r\n },\r\n\r\n '&.active-tab': {\r\n '& .icon-static': {\r\n color: 'var(--icon-color-active)',\r\n '.icon-img': {\r\n background: 'var(--bg-icon)',\r\n WebkitMaskImage: 'var(--mask-url)',\r\n maskImage: 'var(--mask-url)',\r\n WebkitMaskRepeat: 'no-repeat',\r\n maskRepeat: 'no-repeat',\r\n WebkitMaskSize: 'cover',\r\n maskSize: 'cover',\r\n filter: 'none'\r\n }\r\n },\r\n '&::after': { width: 'var(--size-icon)' }\r\n },\r\n '&.inactive-tab': { '&::after': { width: '0' } },\r\n\r\n '&:hover': {\r\n // transform: 'scale(1.02)',\r\n '&::after': { width: 'calc(100% - (var(--spacing-x-size) * 2))' },\r\n '& .icon-static': { transform: 'rotate(-10deg)' },\r\n '& .text-visible': { transform: 'translateY(-100%) skewY(-15deg)', opacity: 1 },\r\n '& .text-hidden': { transform: 'translateY(-50%) skewY(0)', opacity: 1 }\r\n }\r\n }\r\n})\r\n"],"names":["IconAudioBase64","IconVideoBase64","ButtonAnimation","props","children","startIcon","className","forceTheme","otherProps","_objectWithoutProperties","_excluded","renderIcon","useCallback","finalIcon","_jsx","Box","component","sx","concat","rootClasses","useMemo","classes","push","join","_jsxs","ButtonAnimationStyled","_objectSpread","Typography","variant","styled","Button","shouldForwardProp","prop","_ref","theme","currentSx","dark","primary","palette","common","white","secondary","iconActive","bgGradient","iconImageFilter","light","black","mode","height","position","overflow","transition","display","alignItems","gap","padding","color","backgroundColor","a","content","bottom","left","width","background","flexShrink","transformOrigin","backgroundImage","backgroundSize","backgroundPosition","borderRadius","zIndex","filter","flex","textTransform","fontWeight","fontSize","lineHeight","textAlign","margin","transform","opacity","top","WebkitMaskImage","maskImage","WebkitMaskRepeat","maskRepeat","WebkitMaskSize","maskSize"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{objectSpread2 as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as e,jsx as n}from"react/jsx-runtime";import{useMemo as i,useCallback as o}from"react";import{MfeLink as a}from"dinocollab-core/mfe-shared";import{CssBaseline as t,Container as l,Grid as c,Typography as s,Divider as m,Box as d,IconButton as p}from"@mui/material";import{AppLogo as h}from"./app-logo.js";import{TextLineBreak as u}from"./ui.units.js";import{AppThemeProvider as f}from"./app-theme-provider.js";import{FooterStyled as v,appFooterClasses as g,AppFooterNav as x}from"./app-footer.styled.js";import{getFooterNavConfigs as b,bgFooterUrl as N,appLogoUrl as y,footerDescription as j,appSocialConfigs as F,copyrightText as k}from"./configs.js";var H=function(H){var L=i(function(){return b(H.baseUrl)},[H.baseUrl]),_=o(function(r){var e,n,i={},o=null!==(e=r.navLink)&&void 0!==e?e:{},t=o.site,l=o.primaryHref,c=o.secondaryHref;return l?(c||(i.component="a"),i.component=a,i.primaryHref=l,i.secondaryHref=c,i.internal=t===H.site,i.target=(null===(n=r.navLink)||void 0===n?void 0:n.target)||"_self",i):i},[H.site]);return e(f,{children:[n(t,{}),e(v,{className:g.root,children:[n("img",{src:N,alt:"Footer Background",className:g.background,loading:"lazy"}),e(l,{maxWidth:!1,className:g.content,children:[e(c,{container:!0,children:[e(c,{item:!0,xs:12,lg:7,children:[n(h,{src:y,href:H.baseUrl.home,className:g.appLogo}),n(s,{variant:"body2",className:g.description,children:n(u,{children:j})})]}),n(c,{item:!0,xs:12,lg:5,children:n(x,{children:n(c,{container:!0,children:L.map(function(e,i){return n(c,{item:!0,xs:12,md:6,children:n("ul",{children:e.map(function(e,i){return n("li",{className:g.navItem,children:n(s,r(r({variant:"h6",className:g.navItemText},_(e)),{},{children:n("span",{children:e.title})}))},i)})})},i)})})})})]}),e("div",{className:g.copyright,children:[n(m,{sx:{borderColor:"#1E1E1E",mt:{xs:"20px",md:"80px"}}}),n("ul",{className:g.socialList,children:F.map(function(e,i){var o=r({"--social-color-hover":e.color||"#FFFFFF"},e.sx);return n(d,{component:"li",sx:o,children:n(p,{component:"a",href:e.link,target:"_blank",rel:"noopener noreferrer",children:e.icon})},i)})}),n("div",{className:g.copyrightText,children:n(s,{variant:"subtitle1",noWrap:!0,children:k})})]})]})]})]})},L=function(e){var i=function(i){return n(H,r(r({},e),i))};return i.displayName="AppFooter",i};export{H as AppFooter,L as createAppFooter,H as default};
1
+ import{inherits as r,createClass as e,objectSpread2 as n,classCallCheck as i,callSuper as a,defineProperty as o}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as t,jsx as l}from"react/jsx-runtime";import{Component as c}from"react";import{CssBaseline as s,Container as m,Grid as p,Typography as d,Divider as h,Box as u,IconButton as v}from"@mui/material";import{AppLogo as f}from"./app-logo.js";import{TextLineBreak as g}from"./ui.units.js";import{AppThemeProvider as N}from"./app-theme-provider.js";import{FooterStyled as k,appFooterClasses as x,AppFooterNav as b}from"./app-footer.styled.js";import{getFooterNavConfigs as y,bgFooterUrl as C,appLogoUrl as j,footerDescription as F,appSocialConfigs as I,copyrightText as L}from"./configs.js";var E=function(){function E(){var r;i(this,E);for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return r=a(this,E,[].concat(n)),o(r,"handleNavItemClick",function(e,n){r.props.onNavItemClick&&n&&r.props.onNavItemClick(e,n)}),r}return r(E,c),e(E,[{key:"render",value:function(){var r=this,e=y(this.props.baseUrl);return t(N,{children:[l(s,{}),t(k,{className:x.root,children:[l("img",{src:C,alt:"Footer Background",className:x.background,loading:"lazy"}),t(m,{maxWidth:!1,className:x.content,children:[t(p,{container:!0,children:[t(p,{item:!0,xs:12,lg:7,children:[l(f,{src:j,href:this.props.baseUrl.home,className:x.appLogo}),l(d,{variant:"body2",className:x.description,children:l(g,{children:F})})]}),l(p,{item:!0,xs:12,lg:5,children:l(b,{children:l(p,{container:!0,children:e.map(function(e,n){return l(p,{item:!0,xs:12,md:6,children:l("ul",{children:e.map(function(e,n){var i,a,o;return l("li",{className:x.navItem,children:l(d,{variant:"h6",className:x.navItemText,component:"a",href:null!==(i=null===(a=e.navLink)||void 0===a?void 0:a.href)&&void 0!==i?i:"/",target:null===(o=e.navLink)||void 0===o?void 0:o.target,onClick:function(n){return r.handleNavItemClick(n,e.navLink)},children:l("span",{children:e.title})})},n)})})},n)})})})})]}),t("div",{className:x.copyright,children:[l(h,{sx:{borderColor:"#1E1E1E",mt:{xs:"20px",md:"80px"}}}),l("ul",{className:x.socialList,children:I.map(function(r,e){var i=n({"--social-color-hover":r.color||"#FFFFFF"},r.sx);return l(u,{component:"li",sx:i,children:l(v,{component:"a",href:r.link,target:"_blank",rel:"noopener noreferrer",children:r.icon})},e)})}),l("div",{className:x.copyrightText,children:l(d,{variant:"subtitle1",noWrap:!0,children:L})})]})]})]})]})}}])}(),_=function(r){var e=function(e){return l(E,n(n({},r),e))};return e.displayName="AppFooter",e};export{E as AppFooter,_ as createAppFooter,E as default};
2
2
  //# sourceMappingURL=app-footer.js.map