dinocollab-shared 1.2.28 → 1.2.29

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 (38) hide show
  1. package/dist/notification/class.config.js +1 -1
  2. package/dist/notification/class.config.js.map +1 -1
  3. package/dist/notification/hook.js +1 -1
  4. package/dist/notification/hook.js.map +1 -1
  5. package/dist/notification/notify-detail.custom.js +1 -1
  6. package/dist/notification/notify-detail.custom.js.map +1 -1
  7. package/dist/notification/notify-detail.default.js +1 -1
  8. package/dist/notification/notify-detail.default.js.map +1 -1
  9. package/dist/notification/notify-detail.js +1 -1
  10. package/dist/notification/notify-detail.js.map +1 -1
  11. package/dist/notification/notify-list.js +1 -1
  12. package/dist/notification/notify-list.js.map +1 -1
  13. package/dist/notification/styled.js +1 -1
  14. package/dist/notification/styled.js.map +1 -1
  15. package/dist/notification/types.js.map +1 -1
  16. package/dist/notification/widget.js +1 -1
  17. package/dist/notification/widget.js.map +1 -1
  18. package/dist/types/notification/class.config.d.ts +1 -1
  19. package/dist/types/notification/class.config.d.ts.map +1 -1
  20. package/dist/types/notification/hook.d.ts +2 -2
  21. package/dist/types/notification/hook.d.ts.map +1 -1
  22. package/dist/types/notification/index.d.ts +1 -1
  23. package/dist/types/notification/index.d.ts.map +1 -1
  24. package/dist/types/notification/notify-detail.custom.d.ts +1 -3
  25. package/dist/types/notification/notify-detail.custom.d.ts.map +1 -1
  26. package/dist/types/notification/notify-detail.d.ts +11 -4
  27. package/dist/types/notification/notify-detail.d.ts.map +1 -1
  28. package/dist/types/notification/notify-detail.default.d.ts +1 -6
  29. package/dist/types/notification/notify-detail.default.d.ts.map +1 -1
  30. package/dist/types/notification/notify-list.d.ts +2 -0
  31. package/dist/types/notification/notify-list.d.ts.map +1 -1
  32. package/dist/types/notification/styled.d.ts +1 -0
  33. package/dist/types/notification/styled.d.ts.map +1 -1
  34. package/dist/types/notification/types.d.ts +1 -0
  35. package/dist/types/notification/types.d.ts.map +1 -1
  36. package/dist/types/notification/widget.d.ts +4 -3
  37. package/dist/types/notification/widget.d.ts.map +1 -1
  38. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{createClass as t,typeof as e,classCallCheck as n,defineProperty as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as o}from"react/jsx-runtime";import i from"./notify-detail.custom.js";import s from"./notify-detail.default.js";import{ETypeContent as a}from"./types.js";var l=function(){return t(function t(e){n(this,t),r(this,"firtVersion","htmlContent"),r(this,"defaultVersion","1.0.0"),this.rawContent=e,this.parsedObj=this.parseContent()},[{key:"parseContent",value:function(){var t,n,r,o,i,s=void 0;if(!this.rawContent||""===this.rawContent.trim())return{type:a.Template,version:this.defaultVersion,html:""};try{if(!(i=JSON.parse(this.rawContent))||"object"!==e(i)||!i.version)throw new Error("No version found");s=i.version}catch(t){if("string"==typeof this.rawContent&&/<[^>]+>/.test(this.rawContent))return{type:a.Template,version:this.firtVersion,html:this.rawContent};i=this.rawContent}return"1.0.0"===s?{type:null===(t=i)||void 0===t?void 0:t.type,version:s,html:null===(n=i)||void 0===n?void 0:n.html}:{type:null===(r=i)||void 0===r?void 0:r.type,version:s,html:null===(o=i)||void 0===o?void 0:o.html}}},{key:"getContentByVersion",value:function(){return this.parseContent()}},{key:"renderComponent",value:function(t,e,n){var r=this.parseContent();switch(r.type){case a.Custom:return o(i,{data:t,onRead:e,onClose:n,html:r.html||""});case a.Template:default:return o(s,{data:t,onRead:e,onClose:n,html:r.html||""})}}}])}();export{l as NotifyContentConverter};
1
+ import{createClass as t,typeof as e,classCallCheck as n,defineProperty as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as s}from"react/jsx-runtime";import o from"./notify-detail.custom.js";import i from"./notify-detail.default.js";import{ETypeContent as a}from"./types.js";var l=function(){return t(function t(e){n(this,t),r(this,"firtVersion","htmlContent"),r(this,"defaultVersion","1.0.0"),this.rawContent=e,this.parsedObj=this.parseContent()},[{key:"parseContent",value:function(){var t,n=void 0;if(!this.rawContent||""===this.rawContent.trim())return{type:a.Template,version:this.defaultVersion,html:""};try{if((t=JSON.parse(this.rawContent))&&"object"===e(t))return n=t.version||this.defaultVersion,{type:t.type||a.Template,version:n,html:t.html||""}}catch(t){if("string"==typeof this.rawContent&&/<[^>]+>/.test(this.rawContent))return{type:a.Template,version:this.firtVersion,html:this.rawContent}}return{type:a.Template,version:this.defaultVersion,html:this.rawContent}}},{key:"getContentByVersion",value:function(){return this.parseContent()}},{key:"renderComponent",value:function(t,e,n){var r=this.parseContent();switch(r.type){case a.Custom:return s(o,{data:t,onRead:e,onClose:n,html:r.html||""});case a.Template:default:return s(i,{data:t,onRead:e,onClose:n,html:r.html||""})}}}])}();export{l as NotifyContentConverter};
2
2
  //# sourceMappingURL=class.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"class.config.js","sources":["../../src/notification/class.config.tsx"],"sourcesContent":["import NotifyDetailCustom from './notify-detail.custom'\r\nimport NotifyDetailDefault from './notify-detail.default'\r\nimport { ETypeContent, INotification } from './types'\r\n\r\nexport interface ConfigType {\r\n type: ETypeContent\r\n version?: string\r\n html?: string\r\n}\r\n\r\nexport class NotifyContentConverter {\r\n private rawContent: string\r\n private parsedObj: any\r\n private firtVersion = 'htmlContent'\r\n private defaultVersion = '1.0.0'\r\n\r\n constructor(content: string) {\r\n this.rawContent = content\r\n this.parsedObj = this.parseContent()\r\n }\r\n\r\n private parseContent(): ConfigType {\r\n let parsed: any\r\n let detectedVersion: string | undefined = undefined\r\n if (!this.rawContent || this.rawContent.trim() === '') {\r\n return {\r\n type: ETypeContent.Template,\r\n version: this.defaultVersion,\r\n html: ''\r\n }\r\n }\r\n try {\r\n parsed = JSON.parse(this.rawContent)\r\n if (parsed && typeof parsed === 'object' && parsed.version) {\r\n detectedVersion = parsed.version\r\n } else throw new Error('No version found')\r\n } catch {\r\n if (typeof this.rawContent === 'string' && /<[^>]+>/.test(this.rawContent)) {\r\n //first version html content\r\n return {\r\n type: ETypeContent.Template,\r\n version: this.firtVersion,\r\n html: this.rawContent\r\n }\r\n }\r\n parsed = this.rawContent\r\n }\r\n switch (detectedVersion) {\r\n case '1.0.0':\r\n return {\r\n type: parsed?.type,\r\n version: detectedVersion,\r\n html: parsed?.html\r\n }\r\n default:\r\n return {\r\n type: parsed?.type,\r\n version: detectedVersion,\r\n html: parsed?.html\r\n }\r\n }\r\n }\r\n\r\n getContentByVersion() {\r\n const obj = this.parseContent()\r\n return obj\r\n }\r\n\r\n renderComponent(data: INotification[], onRead?: (value: INotification) => void, onClose?: () => void): React.ReactNode {\r\n const obj = this.parseContent()\r\n switch (obj.type) {\r\n case ETypeContent.Custom:\r\n return <NotifyDetailCustom data={data} onRead={onRead} onClose={onClose} html={obj.html || ''} />\r\n case ETypeContent.Template:\r\n default:\r\n return <NotifyDetailDefault data={data} onRead={onRead} onClose={onClose} html={obj.html || ''} />\r\n }\r\n }\r\n}\r\n"],"names":["NotifyContentConverter","_createClass","content","_classCallCheck","_defineProperty","this","rawContent","parsedObj","parseContent","key","value","_parsed","_parsed2","_parsed3","_parsed4","parsed","detectedVersion","undefined","trim","type","ETypeContent","Template","version","defaultVersion","html","JSON","parse","_typeof","Error","_unused","test","firtVersion","data","onRead","onClose","obj","Custom","_jsx","NotifyDetailCustom","NotifyDetailDefault"],"mappings":"gSAUA,IAAaA,EAAsB,WAShC,OAAAC,EAHD,SAAAD,EAAYE,GAAeC,OAAAH,GAAAI,qBAHL,eAAaA,wBACV,SAGvBC,KAAKC,WAAaJ,EAClBG,KAAKE,UAAYF,KAAKG,cACxB,EAAC,CAAA,CAAAC,IAAA,eAAAC,MAEO,WAAY,IAAAC,EAAAC,EAAAC,EAAAC,EACdC,EACAC,OAAsCC,EAC1C,IAAKZ,KAAKC,YAAyC,KAA3BD,KAAKC,WAAWY,OACtC,MAAO,CACLC,KAAMC,EAAaC,SACnBC,QAASjB,KAAKkB,eACdC,KAAM,IAGV,IAEE,KADAT,EAASU,KAAKC,MAAMrB,KAAKC,cACO,WAAlBqB,EAAOZ,KAAuBA,EAAOO,QAE5C,MAAM,IAAIM,MAAM,oBADrBZ,EAAkBD,EAAOO,OAE5B,CAAC,MAAAO,GACA,GAA+B,iBAApBxB,KAAKC,YAA2B,UAAUwB,KAAKzB,KAAKC,YAE7D,MAAO,CACLa,KAAMC,EAAaC,SACnBC,QAASjB,KAAK0B,YACdP,KAAMnB,KAAKC,YAGfS,EAASV,KAAKC,UACf,CACD,MACO,UADCU,EAEG,CACLG,aAAIR,EAAEI,SAAM,IAAAJ,OAAA,EAANA,EAAQQ,KACdG,QAASN,EACTQ,aAAIZ,EAAEG,SAAM,IAAAH,OAAA,EAANA,EAAQY,MAGT,CACLL,aAAIN,EAAEE,SAAM,IAAAF,OAAA,EAANA,EAAQM,KACdG,QAASN,EACTQ,aAAIV,EAAEC,SAAM,IAAAD,OAAA,EAANA,EAAQU,KAGtB,GAAC,CAAAf,IAAA,sBAAAC,MAED,WAEE,OADYL,KAAKG,cAEnB,GAAC,CAAAC,IAAA,kBAAAC,MAED,SAAgBsB,EAAuBC,EAAyCC,GAC9E,IAAMC,EAAM9B,KAAKG,eACjB,OAAQ2B,EAAIhB,MACV,KAAKC,EAAagB,OAChB,OAAOC,EAACC,EAAmB,CAAAN,KAAMA,EAAMC,OAAQA,EAAQC,QAASA,EAASV,KAAMW,EAAIX,MAAQ,KAC7F,KAAKJ,EAAaC,SAClB,QACE,OAAOgB,EAACE,EAAoB,CAAAP,KAAMA,EAAMC,OAAQA,EAAQC,QAASA,EAASV,KAAMW,EAAIX,MAAQ,KAElG,IAAC,CAnEgC"}
1
+ {"version":3,"file":"class.config.js","sources":["../../src/notification/class.config.tsx"],"sourcesContent":["import NotifyDetailCustom from './notify-detail.custom'\r\nimport NotifyDetailDefault from './notify-detail.default'\r\nimport { ETypeContent, INotification } from './types'\r\n\r\nexport interface ConfigType {\r\n type: ETypeContent\r\n version?: string\r\n html?: string\r\n}\r\n\r\nexport class NotifyContentConverter {\r\n private rawContent: string\r\n private parsedObj: any\r\n private firtVersion = 'htmlContent'\r\n private defaultVersion = '1.0.0'\r\n\r\n constructor(content: string) {\r\n this.rawContent = content\r\n this.parsedObj = this.parseContent()\r\n }\r\n\r\n private parseContent(): ConfigType {\r\n let parsed: any\r\n let detectedVersion: string | undefined = undefined\r\n\r\n // If content is empty\r\n if (!this.rawContent || this.rawContent.trim() === '') {\r\n return {\r\n type: ETypeContent.Template,\r\n version: this.defaultVersion,\r\n html: ''\r\n }\r\n }\r\n\r\n try {\r\n // Try to parse JSON\r\n parsed = JSON.parse(this.rawContent)\r\n\r\n // If parse successful and is object\r\n if (parsed && typeof parsed === 'object') {\r\n detectedVersion = parsed.version || this.defaultVersion\r\n return {\r\n type: parsed.type || ETypeContent.Template,\r\n version: detectedVersion,\r\n html: parsed.html || ''\r\n }\r\n }\r\n } catch {\r\n // If not JSON, check if it's HTML\r\n if (typeof this.rawContent === 'string' && /<[^>]+>/.test(this.rawContent)) {\r\n // First version html content\r\n return {\r\n type: ETypeContent.Template,\r\n version: this.firtVersion,\r\n html: this.rawContent\r\n }\r\n }\r\n }\r\n\r\n // Fallback: treat as plain text\r\n return {\r\n type: ETypeContent.Template,\r\n version: this.defaultVersion,\r\n html: this.rawContent\r\n }\r\n }\r\n\r\n getContentByVersion() {\r\n const obj = this.parseContent()\r\n return obj\r\n }\r\n\r\n renderComponent(data: INotification, onRead?: (value: INotification) => void, onClose?: () => void): React.ReactNode {\r\n const obj = this.parseContent()\r\n switch (obj.type) {\r\n case ETypeContent.Custom:\r\n return <NotifyDetailCustom data={data} onRead={onRead} onClose={onClose} html={obj.html || ''} />\r\n case ETypeContent.Template:\r\n default:\r\n return <NotifyDetailDefault data={data} onRead={onRead} onClose={onClose} html={obj.html || ''} />\r\n }\r\n }\r\n}\r\n"],"names":["NotifyContentConverter","_createClass","content","_classCallCheck","_defineProperty","this","rawContent","parsedObj","parseContent","key","value","parsed","detectedVersion","undefined","trim","type","ETypeContent","Template","version","defaultVersion","html","JSON","parse","_typeof","_unused","test","firtVersion","data","onRead","onClose","obj","Custom","_jsx","NotifyDetailCustom","NotifyDetailDefault"],"mappings":"gSAUA,IAAaA,EAAsB,WAShC,OAAAC,EAHD,SAAAD,EAAYE,GAAeC,OAAAH,GAAAI,qBAHL,eAAaA,wBACV,SAGvBC,KAAKC,WAAaJ,EAClBG,KAAKE,UAAYF,KAAKG,cACxB,EAAC,CAAA,CAAAC,IAAA,eAAAC,MAEO,WACN,IAAIC,EACAC,OAAsCC,EAG1C,IAAKR,KAAKC,YAAyC,KAA3BD,KAAKC,WAAWQ,OACtC,MAAO,CACLC,KAAMC,EAAaC,SACnBC,QAASb,KAAKc,eACdC,KAAM,IAIV,IAKE,IAHAT,EAASU,KAAKC,MAAMjB,KAAKC,cAGO,WAAlBiB,EAAOZ,GAEnB,OADAC,EAAkBD,EAAOO,SAAWb,KAAKc,eAClC,CACLJ,KAAMJ,EAAOI,MAAQC,EAAaC,SAClCC,QAASN,EACTQ,KAAMT,EAAOS,MAAQ,GAG1B,CAAC,MAAAI,GAEA,GAA+B,iBAApBnB,KAAKC,YAA2B,UAAUmB,KAAKpB,KAAKC,YAE7D,MAAO,CACLS,KAAMC,EAAaC,SACnBC,QAASb,KAAKqB,YACdN,KAAMf,KAAKC,WAGhB,CAGD,MAAO,CACLS,KAAMC,EAAaC,SACnBC,QAASb,KAAKc,eACdC,KAAMf,KAAKC,WAEf,GAAC,CAAAG,IAAA,sBAAAC,MAED,WAEE,OADYL,KAAKG,cAEnB,GAAC,CAAAC,IAAA,kBAAAC,MAED,SAAgBiB,EAAqBC,EAAyCC,GAC5E,IAAMC,EAAMzB,KAAKG,eACjB,OAAQsB,EAAIf,MACV,KAAKC,EAAae,OAChB,OAAOC,EAACC,EAAmB,CAAAN,KAAMA,EAAMC,OAAQA,EAAQC,QAASA,EAAST,KAAMU,EAAIV,MAAQ,KAC7F,KAAKJ,EAAaC,SAClB,QACE,OAAOe,EAACE,EAAoB,CAAAP,KAAMA,EAAMC,OAAQA,EAAQC,QAASA,EAAST,KAAMU,EAAIV,MAAQ,KAElG,IAAC,CAvEgC"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as r,asyncToGenerator as n,regenerator as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{useState as o,useRef as e,useCallback as a,useEffect as u}from"react";var c=function(r,n){var t=r instanceof Error&&("AbortError"===r.name||"CanceledError"===r.name);return t&&void 0===n||console.log("Error fetching data:",r),{isAbortError:t}};function i(i){var l=o(),s=r(l,2),f=s[0],v=s[1],p=o(!0),b=r(p,2),d=b[0],g=b[1],m=e(null),E=a(function(){var r=n(t().m(function r(n){var o,e,a;return t().w(function(r){for(;;)switch(r.p=r.n){case 0:return r.p=0,g(!0),r.n=1,i(n);case 1:o=r.v,v(o),g(!1),r.n=3;break;case 2:r.p=2,a=r.v,e=c(a),e.isAbortError||g(!1);case 3:return r.a(2)}},r,null,[[0,2]])}));return function(n){return r.apply(this,arguments)}}(),[i]);return u(function(){var r;m.current&&!m.current.signal.aborted&&(null===(r=m.current)||void 0===r||r.abort());return m.current=new AbortController,E(m.current.signal),function(){var r;null===(r=m.current)||void 0===r||r.abort()}},[]),{data:f,loading:d}}export{c as errorMessageHandler,i as useFetchData};
1
+ import{slicedToArray as r,asyncToGenerator as n,regenerator as o}from"../_virtual/_rollupPluginBabelHelpers.js";import{useState as t,useRef as e,useCallback as a,useEffect as l}from"react";var u=function(r,n){var o,t=r instanceof Error&&("AbortError"===r.name||"CanceledError"===r.name);return(!t||null!=n&&n.logAll)&&console.log(null!==(o=null==n?void 0:n.message)&&void 0!==o?o:"Error fetching data:",r),{isAbortError:t}};function c(c){var i=t(),s=r(i,2),v=s[0],f=s[1],d=t(!0),p=r(d,2),b=p[0],g=p[1],m=e(null),A=a(function(){var r=n(o().m(function r(n){var t,e,a;return o().w(function(r){for(;;)switch(r.p=r.n){case 0:return r.p=0,g(!0),r.n=1,c(n);case 1:t=r.v,f(t),g(!1),r.n=3;break;case 2:r.p=2,a=r.v,e=u(a),e.isAbortError||g(!1);case 3:return r.a(2)}},r,null,[[0,2]])}));return function(n){return r.apply(this,arguments)}}(),[c]);return l(function(){var r;m.current&&!m.current.signal.aborted&&(null===(r=m.current)||void 0===r||r.abort());return m.current=new AbortController,A(m.current.signal),function(){var r;null===(r=m.current)||void 0===r||r.abort()}},[]),{data:v,loading:b}}export{u as errorMessageHandler,c as useFetchData};
2
2
  //# sourceMappingURL=hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sources":["../../src/notification/hook.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any*/\r\nimport { useCallback, useEffect, useRef, useState } from 'react'\r\n\r\nexport const errorMessageHandler = (error: any, options?: { message?: string; logAll?: boolean }) => {\r\n const isAbortError = error instanceof Error && (error.name === 'AbortError' || error.name === 'CanceledError')\r\n if (!isAbortError || options?.logAll) console.log(options?.message ?? 'Error fetching data:', error)\r\n return { isAbortError }\r\n}\r\n\r\nexport type FetcherFunction<T> = (signal?: AbortSignal) => Promise<T>\r\n\r\nexport function useFetchData<T, F extends FetcherFunction<T> = FetcherFunction<T>>(fetcher: F) {\r\n type DataType = Awaited<ReturnType<F>>\r\n const [data, setData] = useState<DataType>()\r\n const [loading, setLoading] = useState<boolean>(true)\r\n const abortController = useRef<AbortController | null>(null)\r\n\r\n const fetchTableData = useCallback(\r\n async (signal?: AbortSignal) => {\r\n try {\r\n setLoading(true)\r\n const res = await fetcher(signal)\r\n setData(res as DataType)\r\n setLoading(false)\r\n } catch (error) {\r\n const { isAbortError } = errorMessageHandler(error)\r\n if (!isAbortError) setLoading(false)\r\n }\r\n },\r\n [fetcher]\r\n )\r\n\r\n useEffect(() => {\r\n if (abortController.current && !abortController.current.signal.aborted) {\r\n abortController.current?.abort()\r\n }\r\n\r\n abortController.current = new AbortController()\r\n fetchTableData(abortController.current.signal)\r\n return () => {\r\n abortController.current?.abort()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n return { data, loading }\r\n}\r\n"],"names":["errorMessageHandler","error","options","isAbortError","Error","name","console","log","useFetchData","fetcher","_useState","useState","_useState2","_slicedToArray","data","setData","_useState3","_useState4","loading","setLoading","abortController","useRef","fetchTableData","useCallback","_ref","_asyncToGenerator","_regenerator","m","_callee","signal","res","_errorMessageHandler","_t","w","_context","p","n","v","a","_x","apply","this","arguments","useEffect","_abortController$curr","current","aborted","abort","AbortController","_abortController$curr2"],"mappings":"6LAGO,IAAMA,EAAsB,SAACC,EAAYC,GAAoD,IAC5FC,EAAeF,aAAiBG,QAAyB,eAAfH,EAAMI,MAAwC,kBAAfJ,EAAMI,MAErF,OADKF,QAAuB,IAAPD,GAAiBI,QAAQC,IAAwB,uBAAwBN,GACvF,CAAEE,aAAAA,EACX,EAIM,SAAUK,EAAmEC,GAEjF,IAAAC,EAAwBC,IAAoBC,EAAAC,EAAAH,EAAA,GAArCI,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GACpBI,EAA8BL,GAAkB,GAAKM,EAAAJ,EAAAG,EAAA,GAA9CE,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GACpBG,EAAkBC,EAA+B,MAEjDC,EAAiBC,EAAW,WAAA,IAAAC,EAAAC,EAAAC,IAAAC,EAChC,SAAAC,EAAOC,GAAoB,IAAAC,EAAAC,EAAAC,EAAA,OAAAN,IAAAO,EAAA,SAAAC,GAAA,cAAAA,EAAAC,EAAAD,EAAAE,GAAA,KAAA,EAEP,OAFOF,EAAAC,EAAA,EAEvBhB,GAAW,GAAKe,EAAAE,EAAA,EACE3B,EAAQoB,GAAO,KAAA,EAA3BC,EAAGI,EAAAG,EACTtB,EAAQe,GACRX,GAAW,GAAMe,EAAAE,EAAA,EAAA,MAAA,KAAA,EAAAF,EAAAC,EAAA,EAAAH,EAAAE,EAAAG,EAAAN,EAEQ/B,EAAmBgC,GAAxBD,EAAZ5B,cACWgB,GAAW,GAAM,KAAA,EAAA,OAAAe,EAAAI,EAAA,GAAA,EAAAV,EAAA,KAAA,CAAA,CAAA,EAAA,QAEvC,OAAA,SAAAW,GAAA,OAAAf,EAAAgB,MAAAC,KAAAC,UAAA,EAX+B,GAYhC,CAACjC,IAgBH,OAbAkC,EAAU,WACgE,IAAAC,EAApExB,EAAgByB,UAAYzB,EAAgByB,QAAQhB,OAAOiB,UACtC,QAAvBF,EAAAxB,EAAgByB,eAAO,IAAAD,GAAvBA,EAAyBG,SAK3B,OAFA3B,EAAgByB,QAAU,IAAIG,gBAC9B1B,EAAeF,EAAgByB,QAAQhB,QAChC,WAAK,IAAAoB,EACa,QAAvBA,EAAA7B,EAAgByB,eAAO,IAAAI,GAAvBA,EAAyBF,OAC1B,CAEF,EAAE,IAEI,CAAEjC,KAAAA,EAAMI,QAAAA,EACjB"}
1
+ {"version":3,"file":"hook.js","sources":["../../src/notification/hook.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any*/\r\nimport { useCallback, useEffect, useRef, useState } from 'react'\r\n\r\nexport const errorMessageHandler = (error: any, options?: { message?: string; logAll?: boolean }) => {\r\n const isAbortError = error instanceof Error && (error.name === 'AbortError' || error.name === 'CanceledError')\r\n if (!isAbortError || options?.logAll) console.log(options?.message ?? 'Error fetching data:', error)\r\n return { isAbortError }\r\n}\r\n\r\nexport type FetchDataFunction<T> = (signal?: AbortSignal) => Promise<T>\r\n\r\nexport function useFetchData<T, F extends FetchDataFunction<T> = FetchDataFunction<T>>(fetcher: F) {\r\n type DataType = Awaited<ReturnType<F>>\r\n const [data, setData] = useState<DataType>()\r\n const [loading, setLoading] = useState<boolean>(true)\r\n const abortController = useRef<AbortController | null>(null)\r\n\r\n const fetchTableData = useCallback(\r\n async (signal?: AbortSignal) => {\r\n try {\r\n setLoading(true)\r\n const res = await fetcher(signal)\r\n setData(res as DataType)\r\n setLoading(false)\r\n } catch (error) {\r\n const { isAbortError } = errorMessageHandler(error)\r\n if (!isAbortError) setLoading(false)\r\n }\r\n },\r\n [fetcher]\r\n )\r\n\r\n useEffect(() => {\r\n if (abortController.current && !abortController.current.signal.aborted) {\r\n abortController.current?.abort()\r\n }\r\n\r\n abortController.current = new AbortController()\r\n fetchTableData(abortController.current.signal)\r\n return () => {\r\n abortController.current?.abort()\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n return { data, loading }\r\n}\r\n"],"names":["errorMessageHandler","error","options","_options$message","isAbortError","Error","name","logAll","console","log","message","useFetchData","fetcher","_useState","useState","_useState2","_slicedToArray","data","setData","_useState3","_useState4","loading","setLoading","abortController","useRef","fetchTableData","useCallback","_ref","_asyncToGenerator","_regenerator","m","_callee","signal","res","_errorMessageHandler","_t","w","_context","p","n","v","a","_x","apply","this","arguments","useEffect","_abortController$curr","current","aborted","abort","AbortController","_abortController$curr2"],"mappings":"6LAGO,IAAMA,EAAsB,SAACC,EAAYC,GAAoD,IAAAC,EAC5FC,EAAeH,aAAiBI,QAAyB,eAAfJ,EAAMK,MAAwC,kBAAfL,EAAMK,MAErF,QADKF,GAAgBF,SAAAA,EAASK,SAAQC,QAAQC,IAAoB,QAAjBN,EAACD,aAAAA,EAAAA,EAASQ,eAAO,IAAAP,EAAAA,EAAI,uBAAwBF,GACvF,CAAEG,aAAAA,EACX,EAIM,SAAUO,EAAuEC,GAErF,IAAAC,EAAwBC,IAAoBC,EAAAC,EAAAH,EAAA,GAArCI,EAAIF,EAAA,GAAEG,EAAOH,EAAA,GACpBI,EAA8BL,GAAkB,GAAKM,EAAAJ,EAAAG,EAAA,GAA9CE,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GACpBG,EAAkBC,EAA+B,MAEjDC,EAAiBC,EAAW,WAAA,IAAAC,EAAAC,EAAAC,IAAAC,EAChC,SAAAC,EAAOC,GAAoB,IAAAC,EAAAC,EAAAC,EAAA,OAAAN,IAAAO,EAAA,SAAAC,GAAA,cAAAA,EAAAC,EAAAD,EAAAE,GAAA,KAAA,EAEP,OAFOF,EAAAC,EAAA,EAEvBhB,GAAW,GAAKe,EAAAE,EAAA,EACE3B,EAAQoB,GAAO,KAAA,EAA3BC,EAAGI,EAAAG,EACTtB,EAAQe,GACRX,GAAW,GAAMe,EAAAE,EAAA,EAAA,MAAA,KAAA,EAAAF,EAAAC,EAAA,EAAAH,EAAAE,EAAAG,EAAAN,EAEQlC,EAAmBmC,GAAxBD,EAAZ9B,cACWkB,GAAW,GAAM,KAAA,EAAA,OAAAe,EAAAI,EAAA,GAAA,EAAAV,EAAA,KAAA,CAAA,CAAA,EAAA,QAEvC,OAAA,SAAAW,GAAA,OAAAf,EAAAgB,MAAAC,KAAAC,UAAA,EAX+B,GAYhC,CAACjC,IAgBH,OAbAkC,EAAU,WACgE,IAAAC,EAApExB,EAAgByB,UAAYzB,EAAgByB,QAAQhB,OAAOiB,UACtC,QAAvBF,EAAAxB,EAAgByB,eAAO,IAAAD,GAAvBA,EAAyBG,SAK3B,OAFA3B,EAAgByB,QAAU,IAAIG,gBAC9B1B,EAAeF,EAAgByB,QAAQhB,QAChC,WAAK,IAAAoB,EACa,QAAvBA,EAAA7B,EAAgByB,eAAO,IAAAI,GAAvBA,EAAyBF,OAC1B,CAEF,EAAE,IAEI,CAAEjC,KAAAA,EAAMI,QAAAA,EACjB"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as e,inherits as t,createClass as n,classCallCheck as r,callSuper as a}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as i,Fragment as o}from"react/jsx-runtime";import{styled as l,Box as s}from"@mui/material";import{Component as d,createRef as c}from"react";import{EBtnPopupId as u}from"./types.js";import"react-quill/dist/quill.snow.css";var p=function(){function l(t){var n;return r(this,l),n=a(this,l,[t]),e(n,"contentRef",c()),e(n,"handleContentClick",function(e){var t,r,a=e.target;if("BUTTON"===a.tagName&&a.id)switch(a.id){case u.Close:return null===(t=(r=n.props).onClose)||void 0===t?void 0:t.call(r);case u.Readed:return n.handleRead()}}),e(n,"handleRead",function(){var e,t,r,a,i=n.props.data[n.state.indexSelected];null===(e=(t=n.props).onRead)||void 0===e||e.call(t,i),n.state.indexSelected>=n.props.data.length-1&&(null===(r=(a=n.props).onClose)||void 0===r||r.call(a))}),e(n,"getData",function(){var e=n.props.data,t=n.state.indexSelected,r=e[t];return r||0===t?r:void n.setState({indexSelected:0})}),n.state={indexSelected:0},n}return t(l,d),n(l,[{key:"componentDidMount",value:function(){var e;null===(e=this.contentRef.current)||void 0===e||e.addEventListener("click",this.handleContentClick)}},{key:"componentWillUnmount",value:function(){var e;null===(e=this.contentRef.current)||void 0===e||e.removeEventListener("click",this.handleContentClick)}},{key:"render",value:function(){return this.getData()?i(h,{children:i(m,{children:i("div",{ref:this.contentRef,dangerouslySetInnerHTML:{__html:this.props.html}})})}):i(o,{})}}])}(),m=l(s)(function(e){var t=e.theme;return{width:"100%",minHeight:"350px",maxHeight:"calc(100vh - 128px)",overflow:"auto",margin:"0 4px",padding:"0 8px",color:t.palette.grey[900],fontFamily:"var(--font-primary, 'Roboto', 'Arial', sans-serif)","--color-body":t.palette.grey[900],img:{maxWidth:"100%"}}}),h=l(s)(function(t){var n=t.theme;return e({backgroundColor:"transparent",width:"auto !important",maxWidth:"calc(100vw - 48px)",margin:"0 auto",overflowX:"hidden",overflowY:"auto",minHeight:"200px",display:"flex",flexDirection:"column",alignItems:"center",borderRadius:n.shape.borderRadius},n.breakpoints.up("md"),{width:n.breakpoints.values.md})});export{h as NotifyDetailStyled,p as default};
1
+ import{inherits as e,createClass as t,classCallCheck as n,callSuper as r,defineProperty as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as o}from"react/jsx-runtime";import{styled as a,Box as l}from"@mui/material";import{Component as s,createRef as c}from"react";import{EBtnPopupId as u}from"./types.js";import"react-quill/dist/quill.snow.css";var d=function(){function a(e){var t;return n(this,a),t=r(this,a,[e]),i(t,"contentRef",c()),i(t,"handleContentClick",function(e){var n,r,i=e.target;if("BUTTON"===i.tagName&&i.id)switch(i.id){case u.Close:return null===(n=(r=t.props).onClose)||void 0===n?void 0:n.call(r);case u.Readed:return t.handleRead()}}),i(t,"handleRead",function(){var e,n,r,i;null===(e=(n=t.props).onRead)||void 0===e||e.call(n,t.props.data),null===(r=(i=t.props).onClose)||void 0===r||r.call(i)}),t.state={},t}return e(a,s),t(a,[{key:"componentDidMount",value:function(){var e;null===(e=this.contentRef.current)||void 0===e||e.addEventListener("click",this.handleContentClick)}},{key:"componentWillUnmount",value:function(){var e;null===(e=this.contentRef.current)||void 0===e||e.removeEventListener("click",this.handleContentClick)}},{key:"render",value:function(){return o(p,{children:o("div",{ref:this.contentRef,dangerouslySetInnerHTML:{__html:this.props.html}})})}}])}(),p=a(l)(function(e){return{backgroundColor:"transparent",width:"auto !important",maxWidth:"calc(100vw - 48px)",margin:"0 auto",overflow:"hidden",minHeight:"200px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",borderRadius:e.theme.shape.borderRadius}});export{p as NotifyDetailStyled,d as default};
2
2
  //# sourceMappingURL=notify-detail.custom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify-detail.custom.js","sources":["../../src/notification/notify-detail.custom.tsx"],"sourcesContent":["import { Box, BoxProps, styled } from '@mui/material'\r\nimport { Component, ComponentType, createRef } from 'react'\r\nimport { EBtnPopupId, INotification } from './types'\r\nimport 'react-quill/dist/quill.snow.css'\r\n\r\ninterface IProps {\r\n data: INotification[]\r\n html: string\r\n onRead?: (value: INotification) => void\r\n onClose?: () => void\r\n}\r\n\r\ninterface IState {\r\n indexSelected: number\r\n}\r\n\r\nclass NotifyDetailCustom extends Component<IProps, IState> {\r\n private contentRef = createRef<HTMLDivElement>()\r\n\r\n constructor(props: IProps) {\r\n super(props)\r\n this.state = { indexSelected: 0 }\r\n }\r\n\r\n componentDidMount() {\r\n // Add event listener for clicks inside dangerouslySetInnerHTML content\r\n this.contentRef.current?.addEventListener('click', this.handleContentClick)\r\n }\r\n\r\n componentWillUnmount() {\r\n // Clean up event listener\r\n this.contentRef.current?.removeEventListener('click', this.handleContentClick)\r\n }\r\n\r\n handleContentClick = (event: MouseEvent) => {\r\n const target = event.target as HTMLElement\r\n // Check if clicked element is a button with specific ID\r\n if (target.tagName === 'BUTTON' && target.id) {\r\n // console.log('Button clicked with ID:', target.id)\r\n // Handle specific button IDs\r\n switch (target.id) {\r\n case EBtnPopupId.Close:\r\n return this.props.onClose?.()\r\n case EBtnPopupId.Readed:\r\n return this.handleRead()\r\n default:\r\n // console.log('Other button clicked:', target.id)\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const data = this.getData()\r\n if (!data) return <></>\r\n return (\r\n <NotifyDetailStyled>\r\n <TextEditorWrapper>\r\n <div ref={this.contentRef} dangerouslySetInnerHTML={{ __html: this.props.html }} />\r\n </TextEditorWrapper>\r\n </NotifyDetailStyled>\r\n )\r\n }\r\n\r\n handleRead = () => {\r\n const data = this.props.data[this.state.indexSelected]\r\n this.props.onRead?.(data)\r\n if (this.state.indexSelected >= this.props.data.length - 1) this.props.onClose?.()\r\n }\r\n\r\n getData = () => {\r\n const { data } = this.props\r\n const { indexSelected } = this.state\r\n const item = data[indexSelected]\r\n if (!item && indexSelected !== 0) {\r\n this.setState({ indexSelected: 0 })\r\n return\r\n } else {\r\n return item\r\n }\r\n }\r\n}\r\n\r\nexport default NotifyDetailCustom\r\n\r\nconst TextEditorWrapper = styled(Box)(({ theme }) => ({\r\n width: '100%',\r\n minHeight: '350px',\r\n maxHeight: 'calc(100vh - 128px)',\r\n overflow: 'auto',\r\n margin: '0 4px',\r\n padding: '0 8px',\r\n color: theme.palette.grey[900],\r\n fontFamily: \"var(--font-primary, 'Roboto', 'Arial', sans-serif)\",\r\n '--color-body': theme.palette.grey[900],\r\n img: { maxWidth: '100%' }\r\n}))\r\n\r\nexport const NotifyDetailStyled: ComponentType<BoxProps> = styled(Box)(({ theme }) => ({\r\n backgroundColor: 'transparent',\r\n width: 'auto !important',\r\n maxWidth: 'calc(100vw - 48px)',\r\n margin: '0 auto',\r\n overflowX: 'hidden',\r\n overflowY: 'auto',\r\n minHeight: '200px',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n borderRadius: theme.shape.borderRadius,\r\n [theme.breakpoints.up('md')]: { width: theme.breakpoints.values.md }\r\n}))\r\n"],"names":["NotifyDetailCustom","props","_this","_classCallCheck","_callSuper","_defineProperty","createRef","event","_this$props$onClose","_this$props","target","tagName","id","EBtnPopupId","Close","onClose","call","Readed","handleRead","_this$props$onRead","_this$props2","_this$props$onClose2","_this$props3","data","state","indexSelected","onRead","length","item","setState","_inherits","Component","_createClass","key","value","_this$contentRef$curr","this","contentRef","current","addEventListener","handleContentClick","_this$contentRef$curr2","removeEventListener","getData","_jsx","NotifyDetailStyled","children","TextEditorWrapper","ref","dangerouslySetInnerHTML","__html","html","styled","Box","_ref","theme","width","minHeight","maxHeight","overflow","margin","padding","color","palette","grey","fontFamily","img","maxWidth","_ref2","backgroundColor","overflowX","overflowY","display","flexDirection","alignItems","borderRadius","shape","breakpoints","up","values","md"],"mappings":"oXAgBMA,IAAAA,aAGJ,SAAAA,EAAYC,GAAa,IAAAC,EAEU,OAFVC,OAAAH,GACvBE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EAHOI,aAAAA,KAA2BD,EAAAH,EAiB3B,qBAAA,SAACK,GAAqB,IAAAC,EAAAC,EACnCC,EAASH,EAAMG,OAErB,GAAuB,WAAnBA,EAAOC,SAAwBD,EAAOE,GAGxC,OAAQF,EAAOE,IACb,KAAKC,EAAYC,MACf,OAAyB,QAAzBN,GAAOC,EAAAP,EAAKD,OAAMc,eAAXP,IAAkBA,OAAlBA,EAAAA,EAAAQ,KAAAP,GACT,KAAKI,EAAYI,OACf,OAAOf,EAAKgB,gBAKnBb,EAAAH,EAAA,aAcY,WAAK,IAAAiB,EAAAC,EAAAC,EAAAC,EACVC,EAAOrB,EAAKD,MAAMsB,KAAKrB,EAAKsB,MAAMC,uBACxCN,GAAAC,EAAAlB,EAAKD,OAAMyB,cAAM,IAAAP,GAAjBA,EAAAH,KAAAI,EAAoBG,GAChBrB,EAAKsB,MAAMC,eAAiBvB,EAAKD,MAAMsB,KAAKI,OAAS,IAAqBN,QAAlBA,GAAAC,EAAApB,EAAKD,OAAMc,mBAAOM,GAAlBA,EAAAL,KAAAM,MAC7DjB,EAAAH,EAAA,UAES,WACR,IAAQqB,EAASrB,EAAKD,MAAdsB,KACAE,EAAkBvB,EAAKsB,MAAvBC,cACFG,EAAOL,EAAKE,GAClB,OAAKG,GAA0B,IAAlBH,EAIJG,OAHP1B,EAAK2B,SAAS,CAAEJ,cAAe,MArDjCvB,EAAKsB,MAAQ,CAAEC,cAAe,GAAGvB,CACnC,CAAC,OAAA4B,EAAA9B,EAN8B+B,GAM9BC,EAAAhC,EAAA,CAAA,CAAAiC,IAAA,oBAAAC,MAED,WAAiB,IAAAC,UAEfA,EAAIC,KAACC,WAAWC,eAAO,IAAAH,GAAvBA,EAAyBI,iBAAiB,QAASH,KAAKI,mBAC1D,GAAC,CAAAP,IAAA,uBAAAC,MAED,WAAoB,IAAAO,UAElBA,EAAIL,KAACC,WAAWC,eAAO,IAAAG,GAAvBA,EAAyBC,oBAAoB,QAASN,KAAKI,mBAC7D,GAAC,CAAAP,IAAA,SAAAC,MAmBD,WAEE,OADaE,KAAKO,UAGhBC,EAACC,EAAkB,CAAAC,SACjBF,EAACG,EACC,CAAAD,SAAAF,EAAA,MAAA,CAAKI,IAAKZ,KAAKC,WAAYY,wBAAyB,CAAEC,OAAQd,KAAKnC,MAAMkD,YAJ7DP,OAQpB,IAAC,IAuBGG,EAAoBK,EAAOC,EAAPD,CAAY,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAAQ,CACpDC,MAAO,OACPC,UAAW,QACXC,UAAW,sBACXC,SAAU,OACVC,OAAQ,QACRC,QAAS,QACTC,MAAOP,EAAMQ,QAAQC,KAAK,KAC1BC,WAAY,qDACZ,eAAgBV,EAAMQ,QAAQC,KAAK,KACnCE,IAAK,CAAEC,SAAU,QAClB,GAEYtB,EAA8CO,EAAOC,EAAPD,CAAY,SAAAgB,GAAA,IAAGb,EAAKa,EAALb,MAAK,OAAAlD,EAAA,CAC7EgE,gBAAiB,cACjBb,MAAO,kBACPW,SAAU,qBACVP,OAAQ,SACRU,UAAW,SACXC,UAAW,OACXd,UAAW,QACXe,QAAS,OACTC,cAAe,SACfC,WAAY,SACZC,aAAcpB,EAAMqB,MAAMD,cACzBpB,EAAMsB,YAAYC,GAAG,MAAQ,CAAEtB,MAAOD,EAAMsB,YAAYE,OAAOC,IAAI"}
1
+ {"version":3,"file":"notify-detail.custom.js","sources":["../../src/notification/notify-detail.custom.tsx"],"sourcesContent":["import { Box, BoxProps, styled } from '@mui/material'\r\nimport { Component, ComponentType, createRef } from 'react'\r\nimport { EBtnPopupId, INotification } from './types'\r\nimport 'react-quill/dist/quill.snow.css'\r\n\r\ninterface IProps {\r\n data: INotification\r\n html: string\r\n onRead?: (value: INotification) => void\r\n onClose?: () => void\r\n}\r\n\r\ninterface IState {}\r\n\r\nclass NotifyDetailCustom extends Component<IProps, IState> {\r\n private contentRef = createRef<HTMLDivElement>()\r\n\r\n constructor(props: IProps) {\r\n super(props)\r\n this.state = {}\r\n }\r\n\r\n componentDidMount() {\r\n // Add event listener for clicks inside dangerouslySetInnerHTML content\r\n this.contentRef.current?.addEventListener('click', this.handleContentClick)\r\n }\r\n\r\n componentWillUnmount() {\r\n // Clean up event listener\r\n this.contentRef.current?.removeEventListener('click', this.handleContentClick)\r\n }\r\n\r\n handleContentClick = (event: MouseEvent) => {\r\n const target = event.target as HTMLElement\r\n // Check if clicked element is a button with specific ID\r\n if (target.tagName === 'BUTTON' && target.id) {\r\n // console.log('Button clicked with ID:', target.id)\r\n // Handle specific button IDs\r\n switch (target.id) {\r\n case EBtnPopupId.Close:\r\n return this.props.onClose?.()\r\n case EBtnPopupId.Readed:\r\n return this.handleRead()\r\n default:\r\n // console.log('Other button clicked:', target.id)\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <NotifyDetailStyled>\r\n {/* <TextEditorWrapper></TextEditorWrapper> */}\r\n <div ref={this.contentRef} dangerouslySetInnerHTML={{ __html: this.props.html }} />\r\n </NotifyDetailStyled>\r\n )\r\n }\r\n\r\n handleRead = () => {\r\n this.props.onRead?.(this.props.data)\r\n this.props.onClose?.()\r\n }\r\n}\r\n\r\nexport default NotifyDetailCustom\r\n\r\nexport const NotifyDetailStyled: ComponentType<BoxProps> = styled(Box)(({ theme }) => ({\r\n backgroundColor: 'transparent',\r\n width: 'auto !important',\r\n maxWidth: 'calc(100vw - 48px)',\r\n margin: '0 auto',\r\n overflow: 'hidden',\r\n minHeight: '200px',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n borderRadius: theme.shape.borderRadius\r\n}))\r\n"],"names":["NotifyDetailCustom","props","_this","_classCallCheck","_callSuper","_defineProperty","createRef","event","_this$props$onClose","_this$props","target","tagName","id","EBtnPopupId","Close","onClose","call","Readed","handleRead","_this$props$onRead","_this$props2","_this$props$onClose2","_this$props3","onRead","data","state","_inherits","Component","_createClass","key","value","_this$contentRef$curr","this","contentRef","current","addEventListener","handleContentClick","_this$contentRef$curr2","removeEventListener","_jsx","NotifyDetailStyled","children","ref","dangerouslySetInnerHTML","__html","html","styled","Box","_ref","backgroundColor","width","maxWidth","margin","overflow","minHeight","display","flexDirection","alignItems","justifyContent","borderRadius","theme","shape"],"mappings":"sWAcMA,IAAAA,aAGJ,SAAAA,EAAYC,GAAa,IAAAC,EAER,OAFQC,OAAAH,GACvBE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EAHOI,aAAAA,KAA2BD,EAAAH,EAiB3B,qBAAA,SAACK,GAAqB,IAAAC,EAAAC,EACnCC,EAASH,EAAMG,OAErB,GAAuB,WAAnBA,EAAOC,SAAwBD,EAAOE,GAGxC,OAAQF,EAAOE,IACb,KAAKC,EAAYC,MACf,OAAyB,QAAzBN,GAAOC,EAAAP,EAAKD,OAAMc,eAAXP,IAAkBA,OAAlBA,EAAAA,EAAAQ,KAAAP,GACT,KAAKI,EAAYI,OACf,OAAOf,EAAKgB,gBAKnBb,EAAAH,EAAA,aAWY,WAAK,IAAAiB,EAAAC,EAAAC,EAAAC,EACCH,QAAjBA,GAAAC,EAAAlB,EAAKD,OAAMsB,kBAAMJ,GAAjBA,EAAAH,KAAAI,EAAoBlB,EAAKD,MAAMuB,MACb,QAAlBH,GAAAC,EAAApB,EAAKD,OAAMc,eAAXM,IAAkBA,GAAlBA,EAAAL,KAAAM,KAzCApB,EAAKuB,MAAQ,CAAE,EAAAvB,CACjB,CAAC,OAAAwB,EAAA1B,EAN8B2B,GAM9BC,EAAA5B,EAAA,CAAA,CAAA6B,IAAA,oBAAAC,MAED,WAAiB,IAAAC,UAEfA,EAAIC,KAACC,WAAWC,eAAO,IAAAH,GAAvBA,EAAyBI,iBAAiB,QAASH,KAAKI,mBAC1D,GAAC,CAAAP,IAAA,uBAAAC,MAED,WAAoB,IAAAO,UAElBA,EAAIL,KAACC,WAAWC,eAAO,IAAAG,GAAvBA,EAAyBC,oBAAoB,QAASN,KAAKI,mBAC7D,GAAC,CAAAP,IAAA,SAAAC,MAmBD,WACE,OACES,EAACC,EAEC,CAAAC,SAAAF,EAAA,MAAA,CAAKG,IAAKV,KAAKC,WAAYU,wBAAyB,CAAEC,OAAQZ,KAAK/B,MAAM4C,SAG/E,IAAC,IAUUL,EAA8CM,EAAOC,EAAPD,CAAY,SAAAE,GAAQ,MAAQ,CACrFC,gBAAiB,cACjBC,MAAO,kBACPC,SAAU,qBACVC,OAAQ,SACRC,SAAU,SACVC,UAAW,QACXC,QAAS,OACTC,cAAe,SACfC,WAAY,SACZC,eAAgB,SAChBC,aAX6EX,EAALY,MAWpDC,MAAMF,aAC3B"}
@@ -1,2 +1,2 @@
1
- import{inherits as e,createClass as t,classCallCheck as a,callSuper as i,defineProperty as r}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,Fragment as n,jsxs as o}from"react/jsx-runtime";import"react-quill/dist/quill.snow.css";import{Component as s}from"react";import{styled as d,Box as c,Typography as h,Tooltip as p,IconButton as m,Divider as u,Button as f}from"@mui/material";import x from"@mui/icons-material/Close";import g from"@mui/icons-material/KeyboardArrowLeft";import v from"@mui/icons-material/KeyboardArrowRight";import{NotifyDetailStyled as C,notifyDetailClasses as y}from"./styled.js";var S=function(){function d(e){var t;return a(this,d),t=i(this,d,[e]),r(t,"renderControl",function(){return t.props.data.length<2?l(c,{}):o(R,{children:[l(m,{disabled:t.state.indexSelected<=0,onClick:t.handleClickLeft,children:l(g,{})}),o(h,{children:[t.state.indexSelected+1," / ",t.props.data.length]}),l(m,{disabled:t.state.indexSelected>=t.props.data.length-1,onClick:t.handleClickRight,children:l(v,{})})]})}),r(t,"handleClickLeft",function(){var e=t.state.indexSelected-1;e<0||t.setState({indexSelected:e})}),r(t,"handleClickRight",function(){var e=t.state.indexSelected+1;e>=t.props.data.length||t.setState({indexSelected:e})}),r(t,"handleRead",function(){var e,a,i,r,l=t.props.data[t.state.indexSelected];null===(e=(a=t.props).onRead)||void 0===e||e.call(a,l),t.handleClickRight(),t.state.indexSelected>=t.props.data.length-1&&(null===(i=(r=t.props).onClose)||void 0===i||i.call(r))}),r(t,"getData",function(){var e=t.props.data,a=t.state.indexSelected,i=e[a];return i||0===a?i:void t.setState({indexSelected:0})}),t.state={indexSelected:0},t}return e(d,s),t(d,[{key:"render",value:function(){var e=this.getData();return e?o(C,{className:y.root,children:[o("div",{className:y.header,children:[l(h,{variant:"h6",className:y.title,children:e.Title}),l(p,{title:"Close",children:l(m,{onClick:this.props.onClose,className:y.closeButton,children:l(x,{})})})]}),l(u,{flexItem:!0,variant:"middle",sx:{opacity:.3}}),l(k,{children:l("div",{className:"ql-editor",dangerouslySetInnerHTML:{__html:this.props.html||""}})}),l(u,{flexItem:!0,variant:"middle",sx:{opacity:.3}}),o("div",{className:y.footer,children:[this.renderControl(),o("div",{className:y.footerActions,children:[!e.IsRead&&l(f,{color:"inherit",onClick:this.props.onClose,sx:{textTransform:"unset"},children:"Remind me later"}),!e.IsRead&&l(f,{color:"primary",onClick:this.handleRead,sx:{textTransform:"unset",fontWeight:600},children:"Mark as read"}),e.IsRead&&l(f,{color:"primary",onClick:this.props.onClose,sx:{textTransform:"unset"},children:"Close"})]})]})]}):l(n,{})}}])}(),k=d(c)(function(e){var t=e.theme;return{width:"100%",minHeight:"350px",maxHeight:"calc(100vh - 128px)",overflow:"auto",margin:"0 4px",padding:"0 8px",color:t.palette.grey[900],fontFamily:"var(--font-primary, 'Roboto', 'Arial', sans-serif)","--color-body":t.palette.grey[900],"& .ql-toolbar.ql-snow":{display:"none"},"& .ql-container.ql-snow":{border:"none"},"& .ql-editor":{paddingLeft:0,paddingRight:0,height:"unset"},img:{maxWidth:"90%",height:"auto",marginLeft:"auto",marginRight:"auto",display:"block"}}}),R=d(c)({display:"flex",alignItems:"center",gap:"8px"});export{S as default};
1
+ import{inherits as e,createClass as r,classCallCheck as t,callSuper as a,defineProperty as o}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as i,jsx as l}from"react/jsx-runtime";import"react-quill/dist/quill.snow.css";import{Component as s}from"react";import{styled as n,Box as d,Typography as c,Tooltip as m,IconButton as p,Divider as h,Button as u}from"@mui/material";import f from"@mui/icons-material/Close";import{NotifyDetailStyled as v,notifyDetailClasses as g}from"./styled.js";var x=function(){function n(e){var r;return t(this,n),r=a(this,n,[e]),o(r,"handleRead",function(){var e,t,a,o;null===(e=(t=r.props).onRead)||void 0===e||e.call(t,r.props.data),null===(a=(o=r.props).onClose)||void 0===a||a.call(o)}),r.state={},r}return e(n,s),r(n,[{key:"render",value:function(){var e=this.props,r=e.data,t=e.html;return i(v,{className:g.root,children:[i("div",{className:g.header,children:[l(c,{variant:"h6",className:g.title,children:r.Title}),l(m,{title:"Close",children:l(p,{onClick:this.props.onClose,className:g.closeButton,children:l(f,{})})})]}),l(h,{flexItem:!0,variant:"middle",sx:{opacity:.3}}),l(y,{children:l("div",{className:"ql-editor",dangerouslySetInnerHTML:{__html:t||""}})}),l(h,{flexItem:!0,variant:"middle",sx:{opacity:.3}}),i("div",{className:g.footer,children:[l(d,{}),i("div",{className:g.footerActions,children:[!r.IsRead&&l(u,{color:"inherit",onClick:this.props.onClose,sx:{textTransform:"unset"},children:"Remind me later"}),!r.IsRead&&l(u,{color:"primary",onClick:this.handleRead,sx:{textTransform:"unset",fontWeight:600},children:"Mark as read"}),r.IsRead&&l(u,{color:"primary",onClick:this.props.onClose,sx:{textTransform:"unset"},children:"Close"})]})]})]})}}])}(),y=n(d)(function(e){var r=e.theme;return{width:"100%",minHeight:"350px",maxHeight:"calc(100vh - 128px)",overflow:"auto",margin:"0 4px",padding:"0 8px",color:r.palette.grey[900],fontFamily:"var(--font-primary, 'Roboto', 'Arial', sans-serif)","--color-body":r.palette.grey[900],"& .ql-toolbar.ql-snow":{display:"none"},"& .ql-container.ql-snow":{border:"none"},"& .ql-editor":{paddingLeft:0,paddingRight:0,height:"unset"},img:{maxWidth:"90%",height:"auto",marginLeft:"auto",marginRight:"auto",display:"block"}}});export{x as default};
2
2
  //# sourceMappingURL=notify-detail.default.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify-detail.default.js","sources":["../../src/notification/notify-detail.default.tsx"],"sourcesContent":["import 'react-quill/dist/quill.snow.css'\r\nimport { Component } from 'react'\r\nimport { Box, Button, styled, Typography, Divider, IconButton, Tooltip } from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport KeyboardArrowLeftIcon from '@mui/icons-material/KeyboardArrowLeft'\r\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight'\r\nimport { INotification } from './types'\r\nimport { notifyDetailClasses, NotifyDetailStyled } from './styled'\r\n\r\ninterface IProps {\r\n data: INotification[]\r\n html: string\r\n onRead?: (value: INotification) => void\r\n onClose?: () => void\r\n}\r\n\r\ninterface IState {\r\n indexSelected: number\r\n}\r\n\r\nclass NotifyDetailDefault extends Component<IProps, IState> {\r\n constructor(props: IProps) {\r\n super(props)\r\n this.state = { indexSelected: 0 }\r\n }\r\n\r\n render() {\r\n const data = this.getData()\r\n if (!data) return <></>\r\n return (\r\n <NotifyDetailStyled className={notifyDetailClasses.root}>\r\n <div className={notifyDetailClasses.header}>\r\n <Typography variant='h6' className={notifyDetailClasses.title}>\r\n {data.Title}\r\n </Typography>\r\n <Tooltip title='Close'>\r\n <IconButton onClick={this.props.onClose} className={notifyDetailClasses.closeButton}>\r\n <CloseIcon />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n <Divider flexItem variant='middle' sx={{ opacity: 0.3 }} />\r\n <TextEditorWrapper>\r\n <div className='ql-editor' dangerouslySetInnerHTML={{ __html: this.props.html || '' }} />\r\n </TextEditorWrapper>\r\n <Divider flexItem variant='middle' sx={{ opacity: 0.3 }} />\r\n <div className={notifyDetailClasses.footer}>\r\n {this.renderControl()}\r\n <div className={notifyDetailClasses.footerActions}>\r\n {!data.IsRead && (\r\n <Button color='inherit' onClick={this.props.onClose} sx={{ textTransform: 'unset' }}>\r\n {'Remind me later'}\r\n </Button>\r\n )}\r\n {!data.IsRead && (\r\n <Button color='primary' onClick={this.handleRead} sx={{ textTransform: 'unset', fontWeight: 600 }}>\r\n Mark as read\r\n </Button>\r\n )}\r\n {data.IsRead && (\r\n <Button color='primary' onClick={this.props.onClose} sx={{ textTransform: 'unset' }}>\r\n Close\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </NotifyDetailStyled>\r\n )\r\n }\r\n\r\n renderControl = () => {\r\n if (this.props.data.length < 2) return <Box />\r\n return (\r\n <FlexCenter>\r\n <IconButton disabled={this.state.indexSelected <= 0} onClick={this.handleClickLeft}>\r\n <KeyboardArrowLeftIcon />\r\n </IconButton>\r\n <Typography>\r\n {this.state.indexSelected + 1} / {this.props.data.length}\r\n </Typography>\r\n <IconButton disabled={this.state.indexSelected >= this.props.data.length - 1} onClick={this.handleClickRight}>\r\n <KeyboardArrowRightIcon />\r\n </IconButton>\r\n </FlexCenter>\r\n )\r\n }\r\n\r\n handleClickLeft = () => {\r\n const index = this.state.indexSelected - 1\r\n if (index < 0) return\r\n this.setState({ indexSelected: index })\r\n }\r\n\r\n handleClickRight = () => {\r\n const index = this.state.indexSelected + 1\r\n if (index >= this.props.data.length) return\r\n this.setState({ indexSelected: index })\r\n }\r\n\r\n handleRead = () => {\r\n const data = this.props.data[this.state.indexSelected]\r\n this.props.onRead?.(data)\r\n this.handleClickRight()\r\n if (this.state.indexSelected >= this.props.data.length - 1) this.props.onClose?.()\r\n }\r\n\r\n getData = () => {\r\n const { data } = this.props\r\n const { indexSelected } = this.state\r\n const item = data[indexSelected]\r\n if (!item && indexSelected !== 0) {\r\n this.setState({ indexSelected: 0 })\r\n return\r\n } else {\r\n return item\r\n }\r\n }\r\n}\r\n\r\nexport default NotifyDetailDefault\r\n\r\nconst TextEditorWrapper = styled(Box)(({ theme }) => ({\r\n width: '100%',\r\n minHeight: '350px',\r\n maxHeight: 'calc(100vh - 128px)',\r\n overflow: 'auto',\r\n margin: '0 4px',\r\n padding: '0 8px',\r\n color: theme.palette.grey[900],\r\n fontFamily: \"var(--font-primary, 'Roboto', 'Arial', sans-serif)\",\r\n '--color-body': theme.palette.grey[900],\r\n '& .ql-toolbar.ql-snow': { display: 'none' },\r\n '& .ql-container.ql-snow': { border: 'none' },\r\n '& .ql-editor': { paddingLeft: 0, paddingRight: 0, height: 'unset' },\r\n img: { maxWidth: '90%', height: 'auto', marginLeft: 'auto', marginRight: 'auto', display: 'block' }\r\n}))\r\n\r\nconst FlexCenter = styled(Box)({ display: 'flex', alignItems: 'center', gap: '8px' })\r\n"],"names":["NotifyDetailDefault","props","_this","_classCallCheck","_callSuper","_defineProperty","data","length","_jsx","Box","_jsxs","FlexCenter","children","IconButton","disabled","state","indexSelected","onClick","handleClickLeft","KeyboardArrowLeftIcon","Typography","handleClickRight","KeyboardArrowRightIcon","index","setState","_this$props$onRead","_this$props","_this$props$onClose","_this$props2","onRead","call","onClose","item","_inherits","Component","_createClass","key","value","this","getData","NotifyDetailStyled","className","notifyDetailClasses","root","header","variant","title","Title","Tooltip","closeButton","CloseIcon","Divider","flexItem","sx","opacity","TextEditorWrapper","dangerouslySetInnerHTML","__html","html","footer","renderControl","footerActions","IsRead","Button","color","textTransform","handleRead","fontWeight","styled","_ref","theme","width","minHeight","maxHeight","overflow","margin","padding","palette","grey","fontFamily","display","border","paddingLeft","paddingRight","height","img","maxWidth","marginLeft","marginRight","alignItems","gap"],"mappings":"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"}
1
+ {"version":3,"file":"notify-detail.default.js","sources":["../../src/notification/notify-detail.default.tsx"],"sourcesContent":["import 'react-quill/dist/quill.snow.css'\r\nimport { Component } from 'react'\r\nimport { Box, Button, styled, Typography, Divider, IconButton, Tooltip } from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport { INotification } from './types'\r\nimport { notifyDetailClasses, NotifyDetailStyled } from './styled'\r\n\r\ninterface IProps {\r\n data: INotification\r\n html: string\r\n onRead?: (value: INotification) => void\r\n onClose?: () => void\r\n}\r\n\r\ninterface IState {}\r\n\r\nclass NotifyDetailDefault extends Component<IProps, IState> {\r\n constructor(props: IProps) {\r\n super(props)\r\n this.state = {}\r\n }\r\n\r\n render() {\r\n const { data, html } = this.props\r\n return (\r\n <NotifyDetailStyled className={notifyDetailClasses.root}>\r\n <div className={notifyDetailClasses.header}>\r\n <Typography variant='h6' className={notifyDetailClasses.title}>\r\n {data.Title}\r\n </Typography>\r\n <Tooltip title='Close'>\r\n <IconButton onClick={this.props.onClose} className={notifyDetailClasses.closeButton}>\r\n <CloseIcon />\r\n </IconButton>\r\n </Tooltip>\r\n </div>\r\n <Divider flexItem variant='middle' sx={{ opacity: 0.3 }} />\r\n <TextEditorWrapper>\r\n <div className='ql-editor' dangerouslySetInnerHTML={{ __html: html || '' }} />\r\n </TextEditorWrapper>\r\n <Divider flexItem variant='middle' sx={{ opacity: 0.3 }} />\r\n <div className={notifyDetailClasses.footer}>\r\n <Box />\r\n <div className={notifyDetailClasses.footerActions}>\r\n {!data.IsRead && (\r\n <Button color='inherit' onClick={this.props.onClose} sx={{ textTransform: 'unset' }}>\r\n {'Remind me later'}\r\n </Button>\r\n )}\r\n {!data.IsRead && (\r\n <Button color='primary' onClick={this.handleRead} sx={{ textTransform: 'unset', fontWeight: 600 }}>\r\n Mark as read\r\n </Button>\r\n )}\r\n {data.IsRead && (\r\n <Button color='primary' onClick={this.props.onClose} sx={{ textTransform: 'unset' }}>\r\n Close\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </NotifyDetailStyled>\r\n )\r\n }\r\n\r\n handleRead = () => {\r\n this.props.onRead?.(this.props.data)\r\n this.props.onClose?.()\r\n }\r\n}\r\n\r\nexport default NotifyDetailDefault\r\n\r\nconst TextEditorWrapper = styled(Box)(({ theme }) => ({\r\n width: '100%',\r\n minHeight: '350px',\r\n maxHeight: 'calc(100vh - 128px)',\r\n overflow: 'auto',\r\n margin: '0 4px',\r\n padding: '0 8px',\r\n color: theme.palette.grey[900],\r\n fontFamily: \"var(--font-primary, 'Roboto', 'Arial', sans-serif)\",\r\n '--color-body': theme.palette.grey[900],\r\n '& .ql-toolbar.ql-snow': { display: 'none' },\r\n '& .ql-container.ql-snow': { border: 'none' },\r\n '& .ql-editor': { paddingLeft: 0, paddingRight: 0, height: 'unset' },\r\n img: { maxWidth: '90%', height: 'auto', marginLeft: 'auto', marginRight: 'auto', display: 'block' }\r\n}))\r\n"],"names":["NotifyDetailDefault","props","_this","_classCallCheck","_callSuper","_defineProperty","_this$props$onRead","_this$props","_this$props$onClose","_this$props2","onRead","call","data","onClose","state","_inherits","Component","_createClass","key","value","_this$props3","this","html","_jsxs","NotifyDetailStyled","className","notifyDetailClasses","root","children","header","_jsx","Typography","variant","title","Title","Tooltip","IconButton","onClick","closeButton","CloseIcon","Divider","flexItem","sx","opacity","TextEditorWrapper","dangerouslySetInnerHTML","__html","footer","Box","footerActions","IsRead","Button","color","textTransform","handleRead","fontWeight","styled","_ref","theme","width","minHeight","maxHeight","overflow","margin","padding","palette","grey","fontFamily","display","border","paddingLeft","paddingRight","height","img","maxWidth","marginLeft","marginRight"],"mappings":"ifAgBMA,IAAAA,aACJ,SAAAA,EAAYC,GAAa,IAAAC,EAER,OAFQC,OAAAH,GACvBE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EAAA,aA+CD,WAAK,IAAAI,EAAAC,EAAAC,EAAAC,EACCH,QAAjBA,GAAAC,EAAAL,EAAKD,OAAMS,kBAAMJ,GAAjBA,EAAAK,KAAAJ,EAAoBL,EAAKD,MAAMW,MACb,QAAlBJ,GAAAC,EAAAP,EAAKD,OAAMY,eAAXL,IAAkBA,GAAlBA,EAAAG,KAAAF,KAhDAP,EAAKY,MAAQ,CAAE,EAAAZ,CACjB,CAAC,OAAAa,EAAAf,EAJ+BgB,GAI/BC,EAAAjB,EAAA,CAAA,CAAAkB,IAAA,SAAAC,MAED,WACE,IAAAC,EAAuBC,KAAKpB,MAApBW,EAAIQ,EAAJR,KAAMU,EAAIF,EAAJE,KACd,OACEC,EAACC,EAAmB,CAAAC,UAAWC,EAAoBC,KACjDC,SAAA,CAAAL,EAAA,MAAA,CAAKE,UAAWC,EAAoBG,OAClCD,SAAA,CAAAE,EAACC,EAAU,CAACC,QAAQ,KAAKP,UAAWC,EAAoBO,MACrDL,SAAAhB,EAAKsB,QAERJ,EAACK,EAAQ,CAAAF,MAAM,QACbL,SAAAE,EAACM,EAAW,CAAAC,QAAShB,KAAKpB,MAAMY,QAASY,UAAWC,EAAoBY,qBACtER,EAACS,EAAY,CAAA,UAInBT,EAACU,EAAO,CAACC,UAAQ,EAACT,QAAQ,SAASU,GAAI,CAAEC,QAAS,MAClDb,EAACc,EACC,CAAAhB,SAAAE,EAAA,MAAA,CAAKL,UAAU,YAAYoB,wBAAyB,CAAEC,OAAQxB,GAAQ,QAExEQ,EAACU,EAAO,CAACC,UAAQ,EAACT,QAAQ,SAASU,GAAI,CAAEC,QAAS,MAClDpB,EAAK,MAAA,CAAAE,UAAWC,EAAoBqB,OAClCnB,SAAA,CAAAE,EAACkB,EAAG,CAAA,GACJzB,EAAA,MAAA,CAAKE,UAAWC,EAAoBuB,cACjCrB,SAAA,EAAChB,EAAKsC,QACLpB,EAACqB,EAAM,CAACC,MAAM,UAAUf,QAAShB,KAAKpB,MAAMY,QAAS6B,GAAI,CAAEW,cAAe,SACvEzB,SAAA,qBAGHhB,EAAKsC,QACLpB,EAACqB,EAAO,CAAAC,MAAM,UAAUf,QAAShB,KAAKiC,WAAYZ,GAAI,CAAEW,cAAe,QAASE,WAAY,KAAK3B,SAAA,iBAIlGhB,EAAKsC,QACJpB,EAACqB,EAAO,CAAAC,MAAM,UAAUf,QAAShB,KAAKpB,MAAMY,QAAS6B,GAAI,CAAEW,cAAe,SAEjEzB,SAAA,kBAMrB,IAAC,IAUGgB,EAAoBY,EAAOR,EAAPQ,CAAY,SAAAC,GAAA,IAAGC,EAAKD,EAALC,MAAK,MAAQ,CACpDC,MAAO,OACPC,UAAW,QACXC,UAAW,sBACXC,SAAU,OACVC,OAAQ,QACRC,QAAS,QACTZ,MAAOM,EAAMO,QAAQC,KAAK,KAC1BC,WAAY,qDACZ,eAAgBT,EAAMO,QAAQC,KAAK,KACnC,wBAAyB,CAAEE,QAAS,QACpC,0BAA2B,CAAEC,OAAQ,QACrC,eAAgB,CAAEC,YAAa,EAAGC,aAAc,EAAGC,OAAQ,SAC3DC,IAAK,CAAEC,SAAU,MAAOF,OAAQ,OAAQG,WAAY,OAAQC,YAAa,OAAQR,QAAS,SAC3F"}
@@ -1,2 +1,2 @@
1
- import{inherits as e,createClass as t,classCallCheck as r,callSuper as a,defineProperty as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as n,Fragment as i}from"react/jsx-runtime";import"react-quill/dist/quill.snow.css";import{Component as o}from"react";import{NotifyContentConverter as l}from"./class.config.js";var p=function(){function p(e){var t;return r(this,p),t=a(this,p,[e]),s(t,"getData",function(){var e=t.props.data,r=t.state.indexSelected,a=e[r];return a||0===r?a:void t.setState({indexSelected:0})}),t.state={indexSelected:0},t}return e(p,o),t(p,[{key:"render",value:function(){var e=this.getData();return e?new l(e.Content).renderComponent(this.props.data,this.props.onRead,this.props.onClose):n(i,{})}}])}();export{p as default};
1
+ import{inherits as e,createClass as t,classCallCheck as r,callSuper as n,defineProperty as o,asyncToGenerator as a,regenerator as i}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,jsxs as s}from"react/jsx-runtime";import"react-quill/dist/quill.snow.css";import{Component as c}from"react";import{styled as p,Box as d,CircularProgress as u}from"@mui/material";import{errorMessageHandler as f}from"./hook.js";import{NotifyContentConverter as h}from"./class.config.js";var m=function(){function p(e){var t;return r(this,p),t=n(this,p,[e]),o(t,"abortController",null),o(t,"fetchDetailIfNeeded",a(i().m(function e(){var r,n,o,a,l;return i().w(function(e){for(;;)switch(e.p=e.n){case 0:if(r=t.props.data,t.props.fetchDetail){e.n=1;break}return e.a(2);case 1:if(!(t.state.detailData||t.state.loading||t.state.error)){e.n=2;break}return e.a(2);case 2:return t.setState({loading:!0}),e.p=3,e.n=4,t.props.fetchDetail(r.Id,null===(n=t.abortController)||void 0===n?void 0:n.signal);case 4:(o=e.v)?t.setState({detailData:o,loading:!1,error:!1}):t.setState({loading:!1,error:!0}),e.n=6;break;case 5:e.p=5,l=e.v,a=f(l,{message:"Error fetching notification detail"}),a.isAbortError||t.setState({loading:!1,error:!0});case 6:return e.a(2)}},e,null,[[3,5]])}))),o(t,"handleRetry",function(){t.setState({error:!1},function(){t.fetchDetailIfNeeded()})}),t.state={detailData:null,loading:!1,error:!1},t}return e(p,c),t(p,[{key:"componentDidMount",value:function(){this.abortController=new AbortController,this.fetchDetailIfNeeded()}},{key:"componentWillUnmount",value:function(){var e;null===(e=this.abortController)||void 0===e||e.abort()}},{key:"render",value:function(){var e=this.props.data,t=this.state,r=t.loading,n=t.error,o=t.detailData;if(r)return l(g,{children:l(u,{})});if(n&&!e.Content)return s(v,{children:[l(C,{children:"Unable to load notification content. Please try again later."}),this.props.onClose&&l(y,{onClick:this.handleRetry,children:"Close"})]});var a,i=o||e,c=new h(i.Content),p=c.getContentByVersion();"development"===process.env.NODE_ENV&&(console.log("[NotifyDetail] Content:",null===(a=i.Content)||void 0===a?void 0:a.substring(0,100)),console.log("[NotifyDetail] Parsed type:",p.type));return c.renderComponent(i,this.props.onRead,this.props.onClose)}}])}(),g=p(d)(function(e){return e.theme,{display:"flex",justifyContent:"center",alignItems:"center",minHeight:"350px",width:"100%"}}),v=p(d)(function(e){var t=e.theme;return{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",minHeight:"350px",width:"100%",padding:t.spacing(3),gap:t.spacing(2)}}),C=p(d)(function(e){return{color:e.theme.palette.error.main,textAlign:"center",fontSize:"14px"}}),y=p("button")(function(e){var t=e.theme;return{padding:"8px 16px",backgroundColor:t.palette.primary.main,color:t.palette.primary.contrastText,border:"none",borderRadius:t.shape.borderRadius,cursor:"pointer",fontSize:"14px","&:hover":{opacity:.9}}});export{m as default};
2
2
  //# sourceMappingURL=notify-detail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify-detail.js","sources":["../../src/notification/notify-detail.tsx"],"sourcesContent":["import 'react-quill/dist/quill.snow.css'\r\nimport { Component } from 'react'\r\nimport { INotification } from './types'\r\nimport { NotifyContentConverter } from './class.config'\r\n\r\ninterface IProps {\r\n data: INotification[]\r\n onRead?: (value: INotification) => void\r\n onClose?: () => void\r\n}\r\n\r\ninterface IState {\r\n indexSelected: number\r\n}\r\n\r\nclass NotifyDetail extends Component<IProps, IState> {\r\n constructor(props: IProps) {\r\n super(props)\r\n this.state = { indexSelected: 0 }\r\n }\r\n\r\n render() {\r\n const data = this.getData()\r\n if (!data) return <></>\r\n const notifyContent = new NotifyContentConverter(data.Content)\r\n return notifyContent.renderComponent(this.props.data, this.props.onRead, this.props.onClose)\r\n }\r\n\r\n getData = () => {\r\n const { data } = this.props\r\n const { indexSelected } = this.state\r\n const item = data[indexSelected]\r\n if (!item && indexSelected !== 0) {\r\n this.setState({ indexSelected: 0 })\r\n return\r\n } else {\r\n return item\r\n }\r\n }\r\n}\r\n\r\nexport default NotifyDetail\r\n"],"names":["NotifyDetail","props","_this","_classCallCheck","_callSuper","_defineProperty","data","indexSelected","state","item","setState","_inherits","Component","_createClass","key","value","this","getData","NotifyContentConverter","Content","renderComponent","onRead","onClose","_jsx"],"mappings":"uUAeMA,IAAAA,aACJ,SAAAA,EAAYC,GAAa,IAAAC,EAEU,OAFVC,OAAAH,GACvBE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EAAA,UAWJ,WACR,IAAQI,EAASJ,EAAKD,MAAdK,KACAC,EAAkBL,EAAKM,MAAvBD,cACFE,EAAOH,EAAKC,GAClB,OAAKE,GAA0B,IAAlBF,EAIJE,OAHPP,EAAKQ,SAAS,CAAEH,cAAe,MAfjCL,EAAKM,MAAQ,CAAED,cAAe,GAAGL,CACnC,CAAC,OAAAS,EAAAX,EAJwBY,GAIxBC,EAAAb,EAAA,CAAA,CAAAc,IAAA,SAAAC,MAED,WACE,IAAMT,EAAOU,KAAKC,UAClB,OAAKX,EACiB,IAAIY,EAAuBZ,EAAKa,SACjCC,gBAAgBJ,KAAKf,MAAMK,KAAMU,KAAKf,MAAMoB,OAAQL,KAAKf,MAAMqB,SAFlEC,OAGpB,IAAC"}
1
+ {"version":3,"file":"notify-detail.js","sources":["../../src/notification/notify-detail.tsx"],"sourcesContent":["import 'react-quill/dist/quill.snow.css'\r\nimport { Component } from 'react'\r\nimport { Box, CircularProgress, styled } from '@mui/material'\r\nimport { errorMessageHandler } from './hook'\r\nimport { NotifyContentConverter } from './class.config'\r\nimport { INotification, FetchDetailFunction } from './types'\r\n\r\ninterface IProps {\r\n data: INotification\r\n fetchDetail?: FetchDetailFunction\r\n onRead?: (value: INotification) => void\r\n onClose?: () => void\r\n}\r\n\r\ninterface IState {\r\n detailData: INotification | null\r\n loading: boolean\r\n error: boolean\r\n}\r\n\r\nclass NotifyDetail extends Component<IProps, IState> {\r\n private abortController: AbortController | null = null\r\n\r\n constructor(props: IProps) {\r\n super(props)\r\n this.state = { detailData: null, loading: false, error: false }\r\n }\r\n\r\n componentDidMount() {\r\n this.abortController = new AbortController()\r\n this.fetchDetailIfNeeded()\r\n }\r\n\r\n componentWillUnmount() {\r\n this.abortController?.abort()\r\n }\r\n\r\n fetchDetailIfNeeded = async () => {\r\n const item = this.props.data\r\n\r\n // Skip if no fetchDetail function\r\n if (!this.props.fetchDetail) {\r\n return\r\n }\r\n\r\n // Skip if already fetched, loading, or has error\r\n if (this.state.detailData || this.state.loading || this.state.error) {\r\n return\r\n }\r\n\r\n // Start loading\r\n this.setState({ loading: true })\r\n\r\n try {\r\n const detail = await this.props.fetchDetail(item.Id, this.abortController?.signal)\r\n\r\n if (detail) {\r\n // Fetch successful\r\n this.setState({ detailData: detail, loading: false, error: false })\r\n } else {\r\n // Fetch returned null\r\n this.setState({ loading: false, error: true })\r\n }\r\n } catch (error) {\r\n const { isAbortError } = errorMessageHandler(error, { message: 'Error fetching notification detail' })\r\n if (!isAbortError) {\r\n // Error while fetching\r\n this.setState({ loading: false, error: true })\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const { data } = this.props\r\n const { loading, error, detailData } = this.state\r\n\r\n if (loading) {\r\n return (\r\n <LoadingWrapper>\r\n <CircularProgress />\r\n </LoadingWrapper>\r\n )\r\n }\r\n\r\n // If error and no content from original data, show fallback\r\n if (error && !data.Content) {\r\n return (\r\n <ErrorWrapper>\r\n <ErrorMessage>Unable to load notification content. Please try again later.</ErrorMessage>\r\n {this.props.onClose && <RetryButton onClick={this.handleRetry}>Close</RetryButton>}\r\n </ErrorWrapper>\r\n )\r\n }\r\n\r\n // Use detail data if available, otherwise use original data\r\n const detailItem = detailData || data\r\n const notifyContent = new NotifyContentConverter(detailItem.Content)\r\n const parsedConfig = notifyContent.getContentByVersion()\r\n\r\n // Debug logging\r\n if (process.env.NODE_ENV === 'development') {\r\n console.log('[NotifyDetail] Content:', detailItem.Content?.substring(0, 100))\r\n console.log('[NotifyDetail] Parsed type:', parsedConfig.type)\r\n }\r\n\r\n return notifyContent.renderComponent(detailItem, this.props.onRead, this.props.onClose)\r\n }\r\n\r\n handleRetry = () => {\r\n // Clear error state and retry\r\n this.setState({ error: false }, () => {\r\n this.fetchDetailIfNeeded()\r\n })\r\n }\r\n}\r\n\r\nexport default NotifyDetail\r\n\r\nconst LoadingWrapper = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n minHeight: '350px',\r\n width: '100%'\r\n}))\r\n\r\nconst ErrorWrapper = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n minHeight: '350px',\r\n width: '100%',\r\n padding: theme.spacing(3),\r\n gap: theme.spacing(2)\r\n}))\r\n\r\nconst ErrorMessage = styled(Box)(({ theme }) => ({\r\n color: theme.palette.error.main,\r\n textAlign: 'center',\r\n fontSize: '14px'\r\n}))\r\n\r\nconst RetryButton = styled('button')(({ theme }) => ({\r\n padding: '8px 16px',\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n border: 'none',\r\n borderRadius: theme.shape.borderRadius,\r\n cursor: 'pointer',\r\n fontSize: '14px',\r\n '&:hover': {\r\n opacity: 0.9\r\n }\r\n}))\r\n"],"names":["NotifyDetail","props","_this","_classCallCheck","_callSuper","_defineProperty","_asyncToGenerator","_regenerator","m","_callee","item","_this$abortController","detail","_errorMessageHandler","_t","w","_context","p","n","data","fetchDetail","a","state","detailData","loading","error","setState","Id","abortController","signal","v","errorMessageHandler","message","isAbortError","fetchDetailIfNeeded","_inherits","Component","_createClass","key","value","this","AbortController","_this$abortController2","abort","_this$state","_jsx","LoadingWrapper","children","CircularProgress","Content","_jsxs","ErrorWrapper","ErrorMessage","onClose","RetryButton","onClick","handleRetry","_detailItem$Content","detailItem","notifyContent","NotifyContentConverter","parsedConfig","getContentByVersion","process","env","NODE_ENV","console","log","substring","type","renderComponent","onRead","styled","Box","_ref2","theme","display","justifyContent","alignItems","minHeight","width","_ref3","flexDirection","padding","spacing","gap","_ref4","color","palette","main","textAlign","fontSize","_ref5","backgroundColor","primary","contrastText","border","borderRadius","shape","cursor","opacity"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{inherits as e,createClass as r,classCallCheck as i,callSuper as o,defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,jsx as n}from"react/jsx-runtime";import{Component as l}from"react";import{Box as c,Typography as s,alpha as m,colors as d,Divider as h,Stack as u}from"@mui/material";import p from"@mui/icons-material/Facebook";import f from"@mui/icons-material/DraftsOutlined";import v from"@mui/icons-material/MarkEmailUnreadOutlined";import{formatTimeAgo as C}from"./helpers.js";import{NotifyListStyled as b,notifyListClasses as k}from"./styled.js";var w=function(){function w(){var e;i(this,w);for(var r=arguments.length,l=new Array(r),h=0;h<r;h++)l[h]=arguments[h];return e=o(this,w,[].concat(l)),t(e,"renderItem",function(r,i){return a(c,{className:k.item,onClick:function(){return e.onClickHandler(r)},children:[n(u,{px:1,children:r.IsRead?n(f,{color:"disabled"}):n(v,{color:"success"})}),a(c,{flex:1,children:[n(s,{variant:"subtitle1",component:"h6",className:k.itemTitle,children:r.Title}),n(s,{variant:"caption",className:k.itemSubTitle,children:r.SubTitle}),n(u,{direction:"row",spacing:1,justifyContent:"flex-end",children:n(s,{variant:"caption",color:m(d.common.white,.5),children:C(r.DateCreated)})})]})]},i.toString())}),t(e,"onClickHandler",function(r){e.props.onClick&&e.props.onClick(r)}),e}return e(w,l),r(w,[{key:"render",value:function(){return a(b,{className:k.root,children:[n("div",{className:k.header,children:a(c,{flex:1,children:[n(s,{variant:"h6",children:"Notifications"}),a(s,{variant:"body2",color:m(d.common.white,.6),children:["You have ",this.props.data.length," new notifications"]})]})}),n(h,{variant:"middle",sx:{borderColor:m(d.common.white,.1)}}),n(u,{className:k.items,children:this.props.data.map(this.renderItem)}),n(h,{variant:"middle",sx:{borderColor:m(d.common.white,.1)}}),a("div",{className:k.footer,children:[n(s,{variant:"body2",children:"Follow us on social media for updates and news!"}),n(p,{})]})]})}}])}();export{w as default};
1
+ import{inherits as e,createClass as r,classCallCheck as i,callSuper as t,defineProperty as n}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as a,jsx as o}from"react/jsx-runtime";import{Component as c}from"react";import{Box as l,Typography as s,alpha as d,colors as m,Stack as h,Divider as u,Button as p}from"@mui/material";import f from"@mui/icons-material/DraftsOutlined";import v from"@mui/icons-material/MarkEmailUnreadOutlined";import{formatTimeAgo as g}from"./helpers.js";import{NotifyListStyled as C,notifyListClasses as x}from"./styled.js";var N=function(){function N(){var e;i(this,N);for(var r=arguments.length,c=new Array(r),u=0;u<r;u++)c[u]=arguments[u];return e=t(this,N,[].concat(c)),n(e,"renderItem",function(r,i){return a(l,{className:x.item,onClick:function(){return e.onClickHandler(r)},children:[o(h,{px:1,children:r.IsRead?o(f,{color:"disabled"}):o(v,{color:"success"})}),a(l,{flex:1,children:[o(s,{variant:"subtitle1",component:"h6",className:x.itemTitle,children:r.Title}),o(s,{variant:"caption",className:x.itemSubTitle,children:r.SubTitle}),o(h,{direction:"row",spacing:1,justifyContent:"flex-end",children:o(s,{variant:"caption",color:d(m.common.white,.5),children:g(r.DateCreated)})})]})]},i.toString())}),n(e,"onClickHandler",function(r){e.props.onClick&&e.props.onClick(r)}),n(e,"getDescription",function(e){return 0===e?"No new notifications":1===e?"You have 1 unread notification":"You have ".concat(e," unread notifications")}),n(e,"getItems",function(r){return e.props.data.filter(function(e){return void 0===r||e.IsRead===r})}),e}return e(N,c),r(N,[{key:"render",value:function(){var e=this.getItems(!0),r=this.getItems(!1);return a(C,{className:x.root,children:[o("div",{className:x.header,children:a(l,{flex:1,children:[o(s,{variant:"h6",children:"Notifications"}),o(s,{variant:"body2",color:d(m.common.white,.6),children:this.getDescription(r.length)})]})}),a(h,{className:x.items,children:[r.length>0&&a("div",{className:x.groupTitle,children:[o(s,{variant:"caption",children:"Unsend"}),o(u,{sx:{borderColor:d(m.common.white,.1)}})]}),o("div",{children:r.map(this.renderItem)}),e.length>0&&a("div",{className:x.groupTitle,children:[o(s,{variant:"caption",children:"Readed"}),o(u,{sx:{borderColor:d(m.common.white,.1)}})]}),o("div",{children:e.map(this.renderItem)})]}),o("div",{className:x.footer,children:o(p,{variant:"text",children:o(s,{variant:"caption",sx:{textTransform:"uppercase",fontWeight:600},children:"Readmore"})})})]})}}])}();export{N as default};
2
2
  //# sourceMappingURL=notify-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify-list.js","sources":["../../src/notification/notify-list.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { alpha, Box, colors, Divider, Stack, Typography } from '@mui/material'\r\nimport FacebookIcon from '@mui/icons-material/Facebook'\r\nimport DraftsOutlinedIcon from '@mui/icons-material/DraftsOutlined'\r\nimport MarkEmailUnreadOutlinedIcon from '@mui/icons-material/MarkEmailUnreadOutlined'\r\nimport { INotification } from './types'\r\nimport { formatTimeAgo } from './helpers'\r\nimport { NotifyListStyled, notifyListClasses } from './styled'\r\n\r\ninterface INotifyListProps {\r\n data: INotification[]\r\n onClick?: (value: INotification) => void\r\n}\r\n\r\nclass NotifyList extends Component<INotifyListProps> {\r\n render() {\r\n return (\r\n <NotifyListStyled className={notifyListClasses.root}>\r\n {/* Render the menu header */}\r\n <div className={notifyListClasses.header}>\r\n <Box flex={1}>\r\n <Typography variant='h6'>Notifications</Typography>\r\n <Typography variant='body2' color={alpha(colors.common.white, 0.6)}>\r\n You have {this.props.data.length} new notifications\r\n </Typography>\r\n </Box>\r\n {/* TODO: Add action buttons or links */}\r\n </div>\r\n <Divider variant='middle' sx={{ borderColor: alpha(colors.common.white, 0.1) }} />\r\n {/* Render sub-menu items */}\r\n <Stack className={notifyListClasses.items}>{this.props.data.map(this.renderItem)}</Stack>\r\n <Divider variant='middle' sx={{ borderColor: alpha(colors.common.white, 0.1) }} />\r\n {/* Footer section with social media links or additional information */}\r\n <div className={notifyListClasses.footer}>\r\n <Typography variant='body2'>Follow us on social media for updates and news!</Typography>\r\n <FacebookIcon />\r\n </div>\r\n </NotifyListStyled>\r\n )\r\n }\r\n\r\n renderItem = (item: INotification, index: number) => {\r\n // Render each item in the menu\r\n return (\r\n <Box key={index.toString()} className={notifyListClasses.item} onClick={() => this.onClickHandler(item)}>\r\n <Stack px={1}>{item.IsRead ? <DraftsOutlinedIcon color='disabled' /> : <MarkEmailUnreadOutlinedIcon color='success' />}</Stack>\r\n <Box flex={1}>\r\n <Typography variant='subtitle1' component='h6' className={notifyListClasses.itemTitle}>\r\n {item.Title}\r\n </Typography>\r\n <Typography variant='caption' className={notifyListClasses.itemSubTitle}>\r\n {item.SubTitle}\r\n </Typography>\r\n <Stack direction='row' spacing={1} justifyContent='flex-end'>\r\n <Typography variant='caption' color={alpha(colors.common.white, 0.5)}>\r\n {formatTimeAgo(item.DateCreated)}\r\n </Typography>\r\n </Stack>\r\n </Box>\r\n </Box>\r\n )\r\n }\r\n\r\n onClickHandler = (notification: INotification) => {\r\n if (!this.props.onClick) return\r\n // Call the onClick handler if provided\r\n this.props.onClick(notification)\r\n }\r\n}\r\nexport default NotifyList\r\n"],"names":["NotifyList","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","item","index","_jsxs","Box","className","notifyListClasses","onClick","onClickHandler","children","_jsx","Stack","px","IsRead","DraftsOutlinedIcon","color","MarkEmailUnreadOutlinedIcon","flex","Typography","variant","component","itemTitle","Title","itemSubTitle","SubTitle","direction","spacing","justifyContent","alpha","colors","common","white","formatTimeAgo","DateCreated","toString","notification","props","_inherits","Component","_createClass","key","value","NotifyListStyled","root","header","data","Divider","sx","borderColor","items","map","renderItem","footer","FacebookIcon"],"mappings":"+kBAcMA,IAAAA,aAAW,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAqDd,OArDcP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,aA2BF,SAACY,EAAqBC,GAEjC,OACEC,EAACC,EAAG,CAAwBC,UAAWC,EAAkBL,KAAMM,QAAS,WAAF,OAAQlB,EAAKmB,eAAeP,EAAK,EAAAQ,SAAA,CACrGC,EAACC,GAAMC,GAAI,EAACH,SAAGR,EAAKY,OAASH,EAACI,EAAmB,CAAAC,MAAM,aAAgBL,EAACM,EAA2B,CAACD,MAAM,cAC1GZ,EAACC,EAAI,CAAAa,KAAM,EAACR,SAAA,CACVC,EAACQ,GAAWC,QAAQ,YAAYC,UAAU,KAAKf,UAAWC,EAAkBe,UAASZ,SAClFR,EAAKqB,QAERZ,EAACQ,EAAW,CAAAC,QAAQ,UAAUd,UAAWC,EAAkBiB,aACxDd,SAAAR,EAAKuB,WAERd,EAACC,EAAM,CAAAc,UAAU,MAAMC,QAAS,EAAGC,eAAe,WAChDlB,SAAAC,EAACQ,EAAU,CAACC,QAAQ,UAAUJ,MAAOa,EAAMC,EAAOC,OAAOC,MAAO,IAAItB,SACjEuB,EAAc/B,EAAKgC,sBAXlB/B,EAAMgC,cAiBnBlC,EAAAX,EAEgB,iBAAA,SAAC8C,GACX9C,EAAK+C,MAAM7B,SAEhBlB,EAAK+C,MAAM7B,QAAQ4B,KACpB9C,CAAA,CAAA,OAAAgD,EAAAjD,EArDsBkD,GAqDtBC,EAAAnD,EAAA,CAAA,CAAAoD,IAAA,SAAAC,MApDD,WACE,OACEtC,EAACuC,EAAiB,CAAArC,UAAWC,EAAkBqC,KAAIlC,SAAA,CAEjDC,SAAKL,UAAWC,EAAkBsC,OAChCnC,SAAAN,EAACC,EAAG,CAACa,KAAM,EACTR,SAAA,CAAAC,EAACQ,EAAW,CAAAC,QAAQ,gCACpBhB,EAACe,EAAU,CAACC,QAAQ,QAAQJ,MAAOa,EAAMC,EAAOC,OAAOC,MAAO,IAClDtB,SAAA,CAAA,YAAAX,KAAKsC,MAAMS,KAAKpD,OAAM,6BAKtCiB,EAACoC,GAAQ3B,QAAQ,SAAS4B,GAAI,CAAEC,YAAapB,EAAMC,EAAOC,OAAOC,MAAO,OAExErB,EAACC,GAAMN,UAAWC,EAAkB2C,MAAQxC,SAAAX,KAAKsC,MAAMS,KAAKK,IAAIpD,KAAKqD,cACrEzC,EAACoC,EAAQ,CAAA3B,QAAQ,SAAS4B,GAAI,CAAEC,YAAapB,EAAMC,EAAOC,OAAOC,MAAO,OAExE5B,EAAK,MAAA,CAAAE,UAAWC,EAAkB8C,OAAM3C,SAAA,CACtCC,EAACQ,GAAWC,QAAQ,QAAOV,SAAA,oDAC3BC,EAAC2C,WAIT,IAAC"}
1
+ {"version":3,"file":"notify-list.js","sources":["../../src/notification/notify-list.tsx"],"sourcesContent":["import { Component } from 'react'\r\nimport { alpha, Box, Button, colors, Divider, Stack, Typography } from '@mui/material'\r\nimport DraftsOutlinedIcon from '@mui/icons-material/DraftsOutlined'\r\nimport MarkEmailUnreadOutlinedIcon from '@mui/icons-material/MarkEmailUnreadOutlined'\r\nimport { INotification } from './types'\r\nimport { formatTimeAgo } from './helpers'\r\nimport { NotifyListStyled, notifyListClasses } from './styled'\r\nimport { NoDataPanel } from '../components'\r\n\r\ninterface INotifyListProps {\r\n data: INotification[]\r\n onClick?: (value: INotification) => void\r\n}\r\n\r\nclass NotifyList extends Component<INotifyListProps> {\r\n render() {\r\n const listReaded = this.getItems(true)\r\n const listUnReaded = this.getItems(false)\r\n return (\r\n <NotifyListStyled className={notifyListClasses.root}>\r\n {/* Render the menu header */}\r\n <div className={notifyListClasses.header}>\r\n <Box flex={1}>\r\n <Typography variant='h6'>Notifications</Typography>\r\n <Typography variant='body2' color={alpha(colors.common.white, 0.6)}>\r\n {this.getDescription(listUnReaded.length)}\r\n </Typography>\r\n </Box>\r\n </div>\r\n {/* <Divider variant='middle' sx={{ borderColor: alpha(colors.common.white, 0.1) }} /> */}\r\n {/* Render sub-menu items */}\r\n <Stack className={notifyListClasses.items}>\r\n {listUnReaded.length > 0 && (\r\n <div className={notifyListClasses.groupTitle}>\r\n <Typography variant='caption'>Unsend</Typography>\r\n <Divider sx={{ borderColor: alpha(colors.common.white, 0.1) }} />\r\n </div>\r\n )}\r\n <div>{listUnReaded.map(this.renderItem)}</div>\r\n {listReaded.length > 0 && (\r\n <div className={notifyListClasses.groupTitle}>\r\n <Typography variant='caption'>Readed</Typography>\r\n <Divider sx={{ borderColor: alpha(colors.common.white, 0.1) }} />\r\n </div>\r\n )}\r\n <div>{listReaded.map(this.renderItem)}</div>\r\n </Stack>\r\n {/* <Divider variant='middle' sx={{ borderColor: alpha(colors.common.white, 0.1) }} /> */}\r\n {/* Footer section with social media links or additional information */}\r\n <div className={notifyListClasses.footer}>\r\n {/* <Typography variant='body2'>Follow us on social media for updates and news!</Typography>\r\n <FacebookIcon /> */}\r\n <Button variant='text'>\r\n <Typography variant='caption' sx={{ textTransform: 'uppercase', fontWeight: 600 }}>\r\n Readmore\r\n </Typography>\r\n </Button>\r\n </div>\r\n </NotifyListStyled>\r\n )\r\n }\r\n\r\n renderItem = (item: INotification, index: number) => {\r\n // Render each item in the menu\r\n return (\r\n <Box key={index.toString()} className={notifyListClasses.item} onClick={() => this.onClickHandler(item)}>\r\n <Stack px={1}>{item.IsRead ? <DraftsOutlinedIcon color='disabled' /> : <MarkEmailUnreadOutlinedIcon color='success' />}</Stack>\r\n <Box flex={1}>\r\n <Typography variant='subtitle1' component='h6' className={notifyListClasses.itemTitle}>\r\n {item.Title}\r\n </Typography>\r\n <Typography variant='caption' className={notifyListClasses.itemSubTitle}>\r\n {item.SubTitle}\r\n </Typography>\r\n <Stack direction='row' spacing={1} justifyContent='flex-end'>\r\n <Typography variant='caption' color={alpha(colors.common.white, 0.5)}>\r\n {formatTimeAgo(item.DateCreated)}\r\n </Typography>\r\n </Stack>\r\n </Box>\r\n </Box>\r\n )\r\n }\r\n\r\n onClickHandler = (notification: INotification) => {\r\n if (!this.props.onClick) return\r\n // Call the onClick handler if provided\r\n this.props.onClick(notification)\r\n }\r\n\r\n getDescription = (count: number) => {\r\n if (count === 0) return 'No new notifications'\r\n if (count === 1) return 'You have 1 unread notification'\r\n return `You have ${count} unread notifications`\r\n }\r\n\r\n getItems = (isReaded?: boolean) => {\r\n return this.props.data.filter((item) => (isReaded !== undefined ? item.IsRead === isReaded : true))\r\n }\r\n}\r\nexport default NotifyList\r\n"],"names":["NotifyList","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","item","index","_jsxs","Box","className","notifyListClasses","onClick","onClickHandler","children","_jsx","Stack","px","IsRead","DraftsOutlinedIcon","color","MarkEmailUnreadOutlinedIcon","flex","Typography","variant","component","itemTitle","Title","itemSubTitle","SubTitle","direction","spacing","justifyContent","alpha","colors","common","white","formatTimeAgo","DateCreated","toString","notification","props","count","isReaded","data","filter","undefined","_inherits","Component","_createClass","key","value","listReaded","getItems","listUnReaded","NotifyListStyled","root","header","getDescription","items","groupTitle","Divider","sx","borderColor","map","renderItem","footer","Button","textTransform","fontWeight"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{styled as o,Menu as e,Box as r,alpha as i}from"@mui/material";var a=o(e)(function(t){var o=t.theme;return{"--color-bg":"#323234",marginTop:"45px",".MuiPaper-root":{overflow:"visible",backgroundColor:"var(--color-bg, #000000)",borderRadius:4,minWidth:"280px",maxWidth:"550px",boxShadow:"0 1px 1px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.2), 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.05)",animation:"dinoFadeInDown 0.3s ease-out",marginTop:"8px",color:o.palette.common.white,display:"flex","@keyframes dinoFadeInDown":{"0%":{opacity:0,transform:"translateY(-10px)"},"100%":{opacity:1,transform:"translateY(0)"}},"&::before":{content:'""',position:"absolute",backgroundColor:"var(--color-bg, #000000)",width:"10px",height:"10px",top:"-4px",right:o.spacing(1),transform:"translateX(-50%) rotate(45deg)",zIndex:0}},".MuiBackdrop-root":{backgroundColor:"transparent"},".MuiList-root":{padding:0,backgroundColor:"var(--color-bg, #000000)",borderRadius:o.shape.borderRadius}}}),n={root:"NotifyList-root",header:"NotifyList-header",footer:"NotifyList-footer",items:"NotifyList-items",item:"NotifyList-item",readed:"NotifyList-readed",itemIcon:"NotifyList-itemIcon",itemTitle:"NotifyList-itemText",itemSubTitle:"NotifyList-itemSubTitle"},l=function(t,o){return"".concat((null==o?void 0:o.prefix)||"",".").concat(n[t]).concat((null==o?void 0:o.suffix)||"")},s=o(r)(function(o){var e=o.theme;return t(t(t(t(t(t({display:"flex",flexDirection:"column",height:"100%"},l("header"),{display:"flex",alignItems:"center",padding:e.spacing(1.5),margin:e.spacing(0)}),l("footer"),{padding:e.spacing(1.5),display:"flex",justifyContent:"space-between",alignItems:"center"}),l("items"),{overflowY:"auto",padding:e.spacing(.5),"&::-webkit-scrollbar":{width:"6px"},"&::-webkit-scrollbar-track":{background:"transparent",borderRadius:"3px"},"&::-webkit-scrollbar-thumb":{background:i(e.palette.common.white,.2),borderRadius:"3px",transition:"background 0.2s ease"},"&::-webkit-scrollbar-thumb:hover":{background:i(e.palette.common.white,.3)},"&:hover::-webkit-scrollbar-track":{background:i(e.palette.common.white,.05)},scrollbarWidth:"thin",scrollbarColor:"".concat(i(e.palette.common.white,.2)," transparent")}),l("itemTitle"),{transition:"color 0.2s ease",lineHeight:"1.35",marginBottom:e.spacing(.5)}),l("itemSubTitle"),{color:"var(--text-color-secondary, ".concat(i(e.palette.common.white,.5),")"),transition:"color 0.2s ease",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",marginBottom:e.spacing(.5)}),l("item"),t(t({display:"flex",alignItems:"center",gap:e.spacing(1.5),padding:e.spacing(1,1.5),cursor:"pointer",borderRadius:e.shape.borderRadius,transition:"all 0.2s ease",border:"1px dashed transparent",borderBottomColor:i(e.palette.common.white,.1),"&:last-of-type":{borderBottomColor:"transparent"}},l("readed",{prefix:"&"}),{backgroundColor:"var(--bg-nav-item-readed, rgba(255, 255, 255, 0.05))",color:e.palette.text.secondary}),"&:hover",{"--text-color-secondary":i(e.palette.common.white,.8),borderColor:i(e.palette.common.white,.1),backgroundColor:"var(--bg-nav-item-hover, rgba(255, 255, 255, 0.1))"}))}),c={root:"NotifyList-root",header:"NotifyList-header",footer:"NotifyList-footer",title:"NotifyList-title",closeButton:"NotifyList-closeButton",footerActions:"NotifyList-footerActions"},d=function(t,o){return"".concat("",".").concat(c[t]).concat("")},p=o(r)(function(o){var e=o.theme;return t(t(t(t(t(t({backgroundColor:"#fff",width:"calc(100vw - 48px)",margin:"0 auto",overflowX:"hidden",overflowY:"auto",minHeight:"200px",display:"flex",flexDirection:"column",alignItems:"center",borderRadius:e.shape.borderRadius},e.breakpoints.up("md"),{width:e.breakpoints.values.md}),d("header"),{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",padding:e.spacing(.75,1.5),margin:e.spacing(0)}),d("footer"),{padding:e.spacing(.75,1.5),display:"flex",alignItems:"center",width:"100%"}),d("footerActions"),{display:"flex",gap:e.spacing(1),alignItems:"center",justifyContent:"flex-end",flex:1}),d("closeButton"),{color:e.palette.text.secondary,width:"auto","&:hover":{color:e.palette.error.main,backgroundColor:i(e.palette.error.main,.1)}}),".".concat(c.title),{fontWeight:500,color:e.palette.grey[900]})});export{a as MenuStyled,p as NotifyDetailStyled,s as NotifyListStyled,c as notifyDetailClasses,n as notifyListClasses};
1
+ import{defineProperty as t}from"../_virtual/_rollupPluginBabelHelpers.js";import{styled as o,Menu as e,Box as r,alpha as i}from"@mui/material";var a=o(e)(function(t){var o=t.theme;return{"--color-bg":"#323234",marginTop:"45px",".MuiPaper-root":{overflow:"visible",backgroundColor:"var(--color-bg, #000000)",borderRadius:4,minWidth:"280px",maxWidth:"550px",boxShadow:"0 1px 1px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.2), 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.05)",animation:"dinoFadeInDown 0.3s ease-out",marginTop:"8px",color:o.palette.common.white,display:"flex","@keyframes dinoFadeInDown":{"0%":{opacity:0,transform:"translateY(-10px)"},"100%":{opacity:1,transform:"translateY(0)"}},"&::before":{content:'""',position:"absolute",backgroundColor:"var(--color-bg, #000000)",width:"10px",height:"10px",top:"-4px",right:o.spacing(1),transform:"translateX(-50%) rotate(45deg)",zIndex:0}},".MuiBackdrop-root":{backgroundColor:"transparent"},".MuiList-root":{padding:0,backgroundColor:"var(--color-bg, #000000)",borderRadius:o.shape.borderRadius}}}),n={root:"NotifyList-root",header:"NotifyList-header",footer:"NotifyList-footer",items:"NotifyList-items",item:"NotifyList-item",readed:"NotifyList-readed",itemIcon:"NotifyList-itemIcon",itemTitle:"NotifyList-itemText",itemSubTitle:"NotifyList-itemSubTitle",groupTitle:"NotifyList-groupTitle"},l=function(t,o){return"".concat((null==o?void 0:o.prefix)||"",".").concat(n[t]).concat((null==o?void 0:o.suffix)||"")},s=o(r)(function(o){var e=o.theme;return t(t(t(t(t(t(t({display:"flex",flexDirection:"column",height:"100%"},l("header"),{display:"flex",alignItems:"flex-end",padding:e.spacing(1.5),margin:e.spacing(0),backgroundColor:i(e.palette.common.white,.05)}),l("footer"),{backgroundColor:i(e.palette.common.white,.05),padding:e.spacing(1.5),display:"flex",justifyContent:"flex-end",alignItems:"center"}),l("groupTitle"),{padding:e.spacing(.5,1),display:"flex",alignItems:"center",gap:e.spacing(1),".MuiTypography-root":{fontWeight:600},".MuiDivider-root":{flex:1}}),l("items"),{overflowY:"auto",padding:e.spacing(.5),"&::-webkit-scrollbar":{width:"6px"},"&::-webkit-scrollbar-track":{background:"transparent",borderRadius:"3px"},"&::-webkit-scrollbar-thumb":{background:i(e.palette.common.white,.2),borderRadius:"3px",transition:"background 0.2s ease"},"&::-webkit-scrollbar-thumb:hover":{background:i(e.palette.common.white,.3)},"&:hover::-webkit-scrollbar-track":{background:i(e.palette.common.white,.05)},scrollbarWidth:"thin",scrollbarColor:"".concat(i(e.palette.common.white,.2)," transparent")}),l("itemTitle"),{transition:"color 0.2s ease",lineHeight:"1.35",marginBottom:e.spacing(.5)}),l("itemSubTitle"),{color:"var(--text-color-secondary, ".concat(i(e.palette.common.white,.5),")"),transition:"color 0.2s ease",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",marginBottom:e.spacing(.5)}),l("item"),t(t({display:"flex",alignItems:"center",gap:e.spacing(1.5),padding:e.spacing(1,1.5),cursor:"pointer",borderRadius:e.shape.borderRadius,transition:"all 0.2s ease",border:"1px dashed transparent",borderBottomColor:i(e.palette.common.white,.1),"&:last-of-type":{borderBottomColor:"transparent"}},l("readed",{prefix:"&"}),{backgroundColor:"var(--bg-nav-item-readed, rgba(255, 255, 255, 0.05))",color:e.palette.text.secondary}),"&:hover",{"--text-color-secondary":i(e.palette.common.white,.8),borderColor:i(e.palette.common.white,.1),backgroundColor:"var(--bg-nav-item-hover, rgba(255, 255, 255, 0.1))"}))}),c={root:"NotifyList-root",header:"NotifyList-header",footer:"NotifyList-footer",title:"NotifyList-title",closeButton:"NotifyList-closeButton",footerActions:"NotifyList-footerActions"},d=function(t,o){return"".concat("",".").concat(c[t]).concat("")},p=o(r)(function(o){var e=o.theme;return t(t(t(t(t(t({backgroundColor:"#fff",width:"calc(100vw - 48px)",margin:"0 auto",overflowX:"hidden",overflowY:"auto",minHeight:"200px",display:"flex",flexDirection:"column",alignItems:"center",borderRadius:e.shape.borderRadius},e.breakpoints.up("md"),{width:e.breakpoints.values.md}),d("header"),{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",padding:e.spacing(.75,1.5),margin:e.spacing(0)}),d("footer"),{padding:e.spacing(.75,1.5),display:"flex",alignItems:"center",width:"100%"}),d("footerActions"),{display:"flex",gap:e.spacing(1),alignItems:"center",justifyContent:"flex-end",flex:1}),d("closeButton"),{color:e.palette.text.secondary,width:"auto","&:hover":{color:e.palette.error.main,backgroundColor:i(e.palette.error.main,.1)}}),".".concat(c.title),{fontWeight:500,color:e.palette.grey[900]})});export{a as MenuStyled,p as NotifyDetailStyled,s as NotifyListStyled,c as notifyDetailClasses,n as notifyListClasses};
2
2
  //# sourceMappingURL=styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","sources":["../../src/notification/styled.tsx"],"sourcesContent":["import { alpha, Box, Menu, styled } from '@mui/material'\r\nimport type { ComponentType } from 'react'\r\nimport type { BoxProps, MenuProps } from '@mui/material'\r\n\r\nexport const MenuStyled: ComponentType<MenuProps> = styled(Menu)(({ theme }) => ({\r\n '--color-bg': '#323234',\r\n marginTop: '45px',\r\n '.MuiPaper-root': {\r\n overflow: 'visible',\r\n backgroundColor: 'var(--color-bg, #000000)',\r\n borderRadius: 4,\r\n minWidth: '280px',\r\n maxWidth: '550px',\r\n boxShadow: `0 1px 1px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.2), 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.05)`,\r\n animation: 'dinoFadeInDown 0.3s ease-out',\r\n marginTop: '8px',\r\n color: theme.palette.common.white,\r\n display: 'flex',\r\n\r\n '@keyframes dinoFadeInDown': {\r\n '0%': { opacity: 0, transform: 'translateY(-10px)' },\r\n '100%': { opacity: 1, transform: 'translateY(0)' }\r\n },\r\n\r\n '&::before': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n backgroundColor: 'var(--color-bg, #000000)',\r\n width: '10px',\r\n height: '10px',\r\n top: '-4px',\r\n right: theme.spacing(1),\r\n transform: 'translateX(-50%) rotate(45deg)',\r\n zIndex: 0\r\n }\r\n },\r\n '.MuiBackdrop-root': { backgroundColor: 'transparent' },\r\n '.MuiList-root': { padding: 0, backgroundColor: 'var(--color-bg, #000000)', borderRadius: theme.shape.borderRadius }\r\n}))\r\n\r\nexport const notifyListClasses = {\r\n root: 'NotifyList-root',\r\n header: 'NotifyList-header',\r\n footer: 'NotifyList-footer',\r\n items: 'NotifyList-items',\r\n item: 'NotifyList-item',\r\n readed: 'NotifyList-readed',\r\n itemIcon: 'NotifyList-itemIcon',\r\n itemTitle: 'NotifyList-itemText',\r\n itemSubTitle: 'NotifyList-itemSubTitle'\r\n}\r\n\r\nconst getNotifyListClasses = (key: keyof typeof notifyListClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${notifyListClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nexport const NotifyListStyled: ComponentType<BoxProps> = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: '100%',\r\n [getNotifyListClasses('header')]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: theme.spacing(1.5),\r\n margin: theme.spacing(0)\r\n },\r\n [getNotifyListClasses('footer')]: {\r\n padding: theme.spacing(1.5),\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center'\r\n },\r\n [getNotifyListClasses('items')]: {\r\n overflowY: 'auto',\r\n padding: theme.spacing(0.5),\r\n '&::-webkit-scrollbar': {\r\n width: '6px'\r\n },\r\n '&::-webkit-scrollbar-track': {\r\n background: 'transparent',\r\n borderRadius: '3px'\r\n },\r\n '&::-webkit-scrollbar-thumb': {\r\n background: alpha(theme.palette.common.white, 0.2),\r\n borderRadius: '3px',\r\n transition: 'background 0.2s ease'\r\n },\r\n '&::-webkit-scrollbar-thumb:hover': {\r\n background: alpha(theme.palette.common.white, 0.3)\r\n },\r\n '&:hover::-webkit-scrollbar-track': {\r\n background: alpha(theme.palette.common.white, 0.05)\r\n },\r\n scrollbarWidth: 'thin',\r\n scrollbarColor: `${alpha(theme.palette.common.white, 0.2)} transparent`\r\n },\r\n [getNotifyListClasses('itemTitle')]: {\r\n transition: 'color 0.2s ease',\r\n lineHeight: '1.35',\r\n marginBottom: theme.spacing(0.5)\r\n },\r\n [getNotifyListClasses('itemSubTitle')]: {\r\n color: `var(--text-color-secondary, ${alpha(theme.palette.common.white, 0.5)})`,\r\n transition: 'color 0.2s ease',\r\n display: '-webkit-box',\r\n WebkitLineClamp: 2,\r\n WebkitBoxOrient: 'vertical',\r\n overflow: 'hidden',\r\n marginBottom: theme.spacing(0.5)\r\n },\r\n [getNotifyListClasses('item')]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing(1.5),\r\n padding: theme.spacing(1, 1.5),\r\n cursor: 'pointer',\r\n borderRadius: theme.shape.borderRadius,\r\n transition: 'all 0.2s ease',\r\n border: `1px dashed transparent`,\r\n borderBottomColor: alpha(theme.palette.common.white, 0.1),\r\n '&:last-of-type': {\r\n borderBottomColor: 'transparent'\r\n },\r\n [getNotifyListClasses('readed', { prefix: '&' })]: {\r\n backgroundColor: 'var(--bg-nav-item-readed, rgba(255, 255, 255, 0.05))',\r\n color: theme.palette.text.secondary\r\n },\r\n '&:hover': {\r\n '--text-color-secondary': alpha(theme.palette.common.white, 0.8),\r\n borderColor: alpha(theme.palette.common.white, 0.1),\r\n backgroundColor: 'var(--bg-nav-item-hover, rgba(255, 255, 255, 0.1))'\r\n }\r\n }\r\n}))\r\n\r\nexport const notifyDetailClasses = {\r\n root: 'NotifyList-root',\r\n header: 'NotifyList-header',\r\n footer: 'NotifyList-footer',\r\n title: 'NotifyList-title',\r\n closeButton: 'NotifyList-closeButton',\r\n footerActions: 'NotifyList-footerActions'\r\n}\r\n\r\nconst getNotifyDetailClasses = (key: keyof typeof notifyDetailClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${notifyDetailClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nexport const NotifyDetailStyled: ComponentType<BoxProps> = styled(Box)(({ theme }) => ({\r\n backgroundColor: '#fff',\r\n width: 'calc(100vw - 48px)',\r\n margin: '0 auto',\r\n overflowX: 'hidden',\r\n overflowY: 'auto',\r\n minHeight: '200px',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n borderRadius: theme.shape.borderRadius,\r\n [theme.breakpoints.up('md')]: { width: theme.breakpoints.values.md },\r\n\r\n [getNotifyDetailClasses('header')]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n padding: theme.spacing(0.75, 1.5),\r\n margin: theme.spacing(0)\r\n },\r\n [getNotifyDetailClasses('footer')]: {\r\n padding: theme.spacing(0.75, 1.5),\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%'\r\n },\r\n [getNotifyDetailClasses('footerActions')]: {\r\n display: 'flex',\r\n gap: theme.spacing(1),\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n flex: 1\r\n },\r\n [getNotifyDetailClasses('closeButton')]: {\r\n color: theme.palette.text.secondary,\r\n width: 'auto',\r\n '&:hover': {\r\n color: theme.palette.error.main,\r\n backgroundColor: alpha(theme.palette.error.main, 0.1)\r\n }\r\n },\r\n [`.${notifyDetailClasses.title}`]: {\r\n fontWeight: 500,\r\n color: theme.palette.grey[900]\r\n }\r\n}))\r\n"],"names":["MenuStyled","styled","Menu","_ref","theme","marginTop","overflow","backgroundColor","borderRadius","minWidth","maxWidth","boxShadow","animation","color","palette","common","white","display","opacity","transform","content","position","width","height","top","right","spacing","zIndex","padding","shape","notifyListClasses","root","header","footer","items","item","readed","itemIcon","itemTitle","itemSubTitle","getNotifyListClasses","key","options","concat","prefix","suffix","NotifyListStyled","Box","_ref2","_defineProperty","flexDirection","alignItems","margin","justifyContent","overflowY","background","alpha","transition","scrollbarWidth","scrollbarColor","lineHeight","marginBottom","WebkitLineClamp","WebkitBoxOrient","gap","cursor","border","borderBottomColor","text","secondary","borderColor","notifyDetailClasses","title","closeButton","footerActions","getNotifyDetailClasses","NotifyDetailStyled","_ref4","overflowX","minHeight","breakpoints","up","values","md","flex","error","main","fontWeight","grey"],"mappings":"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"}
1
+ {"version":3,"file":"styled.js","sources":["../../src/notification/styled.tsx"],"sourcesContent":["import { alpha, Box, Menu, styled } from '@mui/material'\r\nimport type { ComponentType } from 'react'\r\nimport type { BoxProps, MenuProps } from '@mui/material'\r\n\r\nexport const MenuStyled: ComponentType<MenuProps> = styled(Menu)(({ theme }) => ({\r\n '--color-bg': '#323234',\r\n marginTop: '45px',\r\n '.MuiPaper-root': {\r\n overflow: 'visible',\r\n backgroundColor: 'var(--color-bg, #000000)',\r\n borderRadius: 4,\r\n minWidth: '280px',\r\n maxWidth: '550px',\r\n boxShadow: `0 1px 1px rgba(0, 0, 0, 0.05), 0 2px 2px rgba(0, 0, 0, 0.2), 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.05)`,\r\n animation: 'dinoFadeInDown 0.3s ease-out',\r\n marginTop: '8px',\r\n color: theme.palette.common.white,\r\n display: 'flex',\r\n\r\n '@keyframes dinoFadeInDown': {\r\n '0%': { opacity: 0, transform: 'translateY(-10px)' },\r\n '100%': { opacity: 1, transform: 'translateY(0)' }\r\n },\r\n\r\n '&::before': {\r\n content: '\"\"',\r\n position: 'absolute',\r\n backgroundColor: 'var(--color-bg, #000000)',\r\n width: '10px',\r\n height: '10px',\r\n top: '-4px',\r\n right: theme.spacing(1),\r\n transform: 'translateX(-50%) rotate(45deg)',\r\n zIndex: 0\r\n }\r\n },\r\n '.MuiBackdrop-root': { backgroundColor: 'transparent' },\r\n '.MuiList-root': { padding: 0, backgroundColor: 'var(--color-bg, #000000)', borderRadius: theme.shape.borderRadius }\r\n}))\r\n\r\nexport const notifyListClasses = {\r\n root: 'NotifyList-root',\r\n header: 'NotifyList-header',\r\n footer: 'NotifyList-footer',\r\n items: 'NotifyList-items',\r\n item: 'NotifyList-item',\r\n readed: 'NotifyList-readed',\r\n itemIcon: 'NotifyList-itemIcon',\r\n itemTitle: 'NotifyList-itemText',\r\n itemSubTitle: 'NotifyList-itemSubTitle',\r\n groupTitle: 'NotifyList-groupTitle'\r\n}\r\n\r\nconst getNotifyListClasses = (key: keyof typeof notifyListClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${notifyListClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nexport const NotifyListStyled: ComponentType<BoxProps> = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: '100%',\r\n [getNotifyListClasses('header')]: {\r\n display: 'flex',\r\n alignItems: 'flex-end',\r\n padding: theme.spacing(1.5),\r\n margin: theme.spacing(0),\r\n backgroundColor: alpha(theme.palette.common.white, 0.05)\r\n },\r\n [getNotifyListClasses('footer')]: {\r\n backgroundColor: alpha(theme.palette.common.white, 0.05),\r\n padding: theme.spacing(1.5),\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n alignItems: 'center'\r\n },\r\n [getNotifyListClasses('groupTitle')]: {\r\n padding: theme.spacing(0.5, 1),\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing(1),\r\n '.MuiTypography-root': { fontWeight: 600 },\r\n '.MuiDivider-root': { flex: 1 }\r\n },\r\n [getNotifyListClasses('items')]: {\r\n overflowY: 'auto',\r\n padding: theme.spacing(0.5),\r\n '&::-webkit-scrollbar': {\r\n width: '6px'\r\n },\r\n '&::-webkit-scrollbar-track': {\r\n background: 'transparent',\r\n borderRadius: '3px'\r\n },\r\n '&::-webkit-scrollbar-thumb': {\r\n background: alpha(theme.palette.common.white, 0.2),\r\n borderRadius: '3px',\r\n transition: 'background 0.2s ease'\r\n },\r\n '&::-webkit-scrollbar-thumb:hover': {\r\n background: alpha(theme.palette.common.white, 0.3)\r\n },\r\n '&:hover::-webkit-scrollbar-track': {\r\n background: alpha(theme.palette.common.white, 0.05)\r\n },\r\n scrollbarWidth: 'thin',\r\n scrollbarColor: `${alpha(theme.palette.common.white, 0.2)} transparent`\r\n },\r\n [getNotifyListClasses('itemTitle')]: {\r\n transition: 'color 0.2s ease',\r\n lineHeight: '1.35',\r\n marginBottom: theme.spacing(0.5)\r\n },\r\n [getNotifyListClasses('itemSubTitle')]: {\r\n color: `var(--text-color-secondary, ${alpha(theme.palette.common.white, 0.5)})`,\r\n transition: 'color 0.2s ease',\r\n display: '-webkit-box',\r\n WebkitLineClamp: 2,\r\n WebkitBoxOrient: 'vertical',\r\n overflow: 'hidden',\r\n marginBottom: theme.spacing(0.5)\r\n },\r\n [getNotifyListClasses('item')]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing(1.5),\r\n padding: theme.spacing(1, 1.5),\r\n cursor: 'pointer',\r\n borderRadius: theme.shape.borderRadius,\r\n transition: 'all 0.2s ease',\r\n border: `1px dashed transparent`,\r\n borderBottomColor: alpha(theme.palette.common.white, 0.1),\r\n '&:last-of-type': {\r\n borderBottomColor: 'transparent'\r\n },\r\n [getNotifyListClasses('readed', { prefix: '&' })]: {\r\n backgroundColor: 'var(--bg-nav-item-readed, rgba(255, 255, 255, 0.05))',\r\n color: theme.palette.text.secondary\r\n },\r\n '&:hover': {\r\n '--text-color-secondary': alpha(theme.palette.common.white, 0.8),\r\n borderColor: alpha(theme.palette.common.white, 0.1),\r\n backgroundColor: 'var(--bg-nav-item-hover, rgba(255, 255, 255, 0.1))'\r\n }\r\n }\r\n}))\r\n\r\nexport const notifyDetailClasses = {\r\n root: 'NotifyList-root',\r\n header: 'NotifyList-header',\r\n footer: 'NotifyList-footer',\r\n title: 'NotifyList-title',\r\n closeButton: 'NotifyList-closeButton',\r\n footerActions: 'NotifyList-footerActions'\r\n}\r\n\r\nconst getNotifyDetailClasses = (key: keyof typeof notifyDetailClasses, options?: { prefix?: string; suffix?: string }) => {\r\n return `${options?.prefix || ''}.${notifyDetailClasses[key]}${options?.suffix || ''}`\r\n}\r\n\r\nexport const NotifyDetailStyled: ComponentType<BoxProps> = styled(Box)(({ theme }) => ({\r\n backgroundColor: '#fff',\r\n width: 'calc(100vw - 48px)',\r\n margin: '0 auto',\r\n overflowX: 'hidden',\r\n overflowY: 'auto',\r\n minHeight: '200px',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n borderRadius: theme.shape.borderRadius,\r\n [theme.breakpoints.up('md')]: { width: theme.breakpoints.values.md },\r\n\r\n [getNotifyDetailClasses('header')]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n padding: theme.spacing(0.75, 1.5),\r\n margin: theme.spacing(0)\r\n },\r\n [getNotifyDetailClasses('footer')]: {\r\n padding: theme.spacing(0.75, 1.5),\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%'\r\n },\r\n [getNotifyDetailClasses('footerActions')]: {\r\n display: 'flex',\r\n gap: theme.spacing(1),\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n flex: 1\r\n },\r\n [getNotifyDetailClasses('closeButton')]: {\r\n color: theme.palette.text.secondary,\r\n width: 'auto',\r\n '&:hover': {\r\n color: theme.palette.error.main,\r\n backgroundColor: alpha(theme.palette.error.main, 0.1)\r\n }\r\n },\r\n [`.${notifyDetailClasses.title}`]: {\r\n fontWeight: 500,\r\n color: theme.palette.grey[900]\r\n }\r\n}))\r\n"],"names":["MenuStyled","styled","Menu","_ref","theme","marginTop","overflow","backgroundColor","borderRadius","minWidth","maxWidth","boxShadow","animation","color","palette","common","white","display","opacity","transform","content","position","width","height","top","right","spacing","zIndex","padding","shape","notifyListClasses","root","header","footer","items","item","readed","itemIcon","itemTitle","itemSubTitle","groupTitle","getNotifyListClasses","key","options","concat","prefix","suffix","NotifyListStyled","Box","_ref2","_defineProperty","flexDirection","alignItems","margin","alpha","justifyContent","gap","fontWeight","flex","overflowY","background","transition","scrollbarWidth","scrollbarColor","lineHeight","marginBottom","WebkitLineClamp","WebkitBoxOrient","cursor","border","borderBottomColor","text","secondary","borderColor","notifyDetailClasses","title","closeButton","footerActions","getNotifyDetailClasses","NotifyDetailStyled","_ref4","overflowX","minHeight","breakpoints","up","values","md","error","main","grey"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../src/notification/types.ts"],"sourcesContent":["export enum ETypeContent {\r\n Template = 'template',\r\n Custom = 'custom'\r\n}\r\n\r\nexport enum EBtnPopupId {\r\n Close = 'button-popup-close',\r\n Readed = 'button-popup-readed'\r\n}\r\n\r\nexport type EAreaType = 'Header' | 'Popup'\r\n\r\nexport type ESendType = 'All' | 'User'\r\n\r\nexport interface INotificationUser {\r\n Id: string\r\n DisplayName: string\r\n}\r\n\r\nexport interface INotification {\r\n Id: string\r\n Title: string\r\n SubTitle: string\r\n Content: string\r\n DateExpired: string\r\n SendType: ESendType\r\n AreaType: EAreaType\r\n UserIds?: string[]\r\n Users?: INotificationUser[]\r\n IsRead?: boolean\r\n DateCreated: string\r\n}\r\n\r\nexport type ReadedFunction = (id: string, signal?: AbortSignal) => Promise<void>\r\n"],"names":["ETypeContent","EBtnPopupId"],"mappings":"IAAYA,EAKAC,GALZ,SAAYD,GACVA,EAAA,SAAA,WACAA,EAAA,OAAA,QACD,CAHD,CAAYA,IAAAA,EAGX,CAAA,IAED,SAAYC,GACVA,EAAA,MAAA,qBACAA,EAAA,OAAA,qBACD,CAHD,CAAYA,IAAAA,EAGX,CAAA"}
1
+ {"version":3,"file":"types.js","sources":["../../src/notification/types.ts"],"sourcesContent":["export enum ETypeContent {\r\n Template = 'template',\r\n Custom = 'custom'\r\n}\r\n\r\nexport enum EBtnPopupId {\r\n Close = 'button-popup-close',\r\n Readed = 'button-popup-readed'\r\n}\r\n\r\nexport type EAreaType = 'Header' | 'Popup'\r\n\r\nexport type ESendType = 'All' | 'User'\r\n\r\nexport interface INotificationUser {\r\n Id: string\r\n DisplayName: string\r\n}\r\n\r\nexport interface INotification {\r\n Id: string\r\n Title: string\r\n SubTitle: string\r\n Content: string\r\n DateExpired: string\r\n SendType: ESendType\r\n AreaType: EAreaType\r\n UserIds?: string[]\r\n Users?: INotificationUser[]\r\n IsRead?: boolean\r\n DateCreated: string\r\n}\r\n\r\nexport type ReadedFunction = (id: string, signal?: AbortSignal) => Promise<void>\r\n\r\nexport type FetchDetailFunction = (id: string, signal?: AbortSignal) => Promise<INotification | null>\r\n"],"names":["ETypeContent","EBtnPopupId"],"mappings":"IAAYA,EAKAC,GALZ,SAAYD,GACVA,EAAA,SAAA,WACAA,EAAA,OAAA,QACD,CAHD,CAAYA,IAAAA,EAGX,CAAA,IAED,SAAYC,GACVA,EAAA,MAAA,qBACAA,EAAA,OAAA,qBACD,CAHD,CAAYA,IAAAA,EAGX,CAAA"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as t,toConsumableArray as n,inherits as o,createClass as e,asyncToGenerator as r,objectSpread2 as a,classCallCheck as i,callSuper as l,defineProperty as c,regenerator as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as u,jsxs as d,Fragment as f}from"react/jsx-runtime";import{Badge as p}from"@mui/material";import{useState as h,useEffect as m,Component as v}from"react";import{GlobalModal as C,mapGlobalModalContext as g}from"dinocollab-core/api-context";import y from"@mui/icons-material/NotificationsNone";import{MenuStyled as k}from"./styled.js";import{IconButtonDark as b}from"../components/buttons.js";import{useFetchData as w}from"./hook.js";import D from"./notify-list.js";import R from"./notify-detail.js";var S=function(){function t(n){var o;return i(this,t),o=l(this,t,[n]),c(o,"onClickHandler",function(t){var n;o.onClose(),null===(n=o.globalModalContext)||void 0===n||n.show({backdropActivated:!0,renderContent:function(){var n;return u(R,{data:[t],onRead:o.onReadHandler,onClose:null===(n=o.globalModalContext)||void 0===n?void 0:n.close})}})}),c(o,"onOpen",function(t){o.setState({anchorEl:t})}),c(o,"onClose",function(){o.setState({anchorEl:null})}),c(o,"onReadHandler",function(t){var n;null===(n=o.globalModalContext)||void 0===n||n.close();try{var e,r;null===(e=(r=o.props).onReaded)||void 0===e||e.call(r,t.Id)}catch(t){console.error("Error updating read state:",t)}}),o.state={anchorEl:null,hydrated:!1},o}return o(t,v),e(t,[{key:"notifications",get:function(){var t;return null!==(t=this.props.data)&&void 0!==t?t:[]}},{key:"newFeatureCount",get:function(){return this.notifications.filter(function(t){return!t.IsRead}).length}},{key:"componentDidMount",value:function(){this.setState({hydrated:!0})}},{key:"componentDidUpdate",value:function(t){var n=this;if(t.data!==this.props.data&&this.props.data.length>0){var o=this.props.data.filter(function(t){return"Popup"===t.AreaType&&!t.IsRead});o.length>0&&setTimeout(function(){var t,e;null===(t=(e=n.props).onAutoShowPopup)||void 0===t||t.call(e,o[0])},1500)}}},{key:"render",value:function(){var t=this;return d(f,{children:[u(b,{onClick:function(n){return t.onOpen(n.currentTarget)},children:u(p,{badgeContent:this.state.hydrated?this.newFeatureCount:0,color:"error",children:u(y,{fontSize:"small"})})}),u(k,{disableScrollLock:!0,anchorEl:this.state.anchorEl,open:Boolean(this.state.anchorEl),onClose:this.onClose,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{component:"div"},children:g(function(n){return t.globalModalContext=n,u(D,{data:t.props.data,onClick:t.onClickHandler})})})]})}}])}(),T=function(o){var e=w(o.featData),i=h([]),l=t(i,2),c=l[0],d=l[1];m(function(){if(e.data){var t=n(e.data).sort(function(t,n){return new Date(n.DateCreated).getTime()-new Date(t.DateCreated).getTime()});d(t)}},[e.data]);var f=function(){var t=r(s().m(function t(n,e){var r;return s().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,null===(r=o.readed)||void 0===r?void 0:r.call(o,n,e);case 1:d(function(t){return t.map(function(t){return t.Id===n?a(a({},t),{},{IsRead:!0}):t}).sort(function(t,n){return new Date(n.DateCreated).getTime()-new Date(t.DateCreated).getTime()})});case 2:return t.a(2)}},t)}));return function(n,o){return t.apply(this,arguments)}}();return u(C,{children:g(function(t){return u(S,{data:c,loading:e.loading,onReaded:f,onAutoShowPopup:function(n){return function(t,n){n.show({backdropActivated:!0,renderContent:function(){return u(R,{data:[t],onRead:function(t){n.close(),f(t.Id)},onClose:n.close})}})}(n,t)}})})})},j=function(t){var n=function(n){return u(T,a(a({},t),n))};return n.displayName="NotificationWidget",n};export{T as NotificationWidget,j as createNotificationWidget,T as default};
1
+ import{slicedToArray as t,toConsumableArray as e,inherits as n,createClass as o,asyncToGenerator as r,objectSpread2 as a,classCallCheck as i,callSuper as l,defineProperty as c,regenerator as s}from"../_virtual/_rollupPluginBabelHelpers.js";import{jsx as u,jsxs as d,Fragment as f}from"react/jsx-runtime";import{Badge as p}from"@mui/material";import{useState as h,useEffect as m,Component as v}from"react";import{GlobalModal as C,mapGlobalModalContext as g}from"dinocollab-core/api-context";import y from"@mui/icons-material/NotificationsNone";import{MenuStyled as D}from"./styled.js";import{IconButtonDark as k}from"../components/buttons.js";import{useFetchData as b}from"./hook.js";import w from"./notify-list.js";import R from"./notify-detail.js";var S=function(){function t(e){var n;return i(this,t),n=l(this,t,[e]),c(n,"onClickHandler",function(t){var e;n.onClose(),null===(e=n.globalModalContext)||void 0===e||e.show({backdropActivated:!0,renderContent:function(){var e;return u(R,{data:t,fetchDetail:n.props.fetchDetail,onRead:n.onReadHandler,onClose:null===(e=n.globalModalContext)||void 0===e?void 0:e.close})}})}),c(n,"onOpen",function(t){n.setState({anchorEl:t})}),c(n,"onClose",function(){n.setState({anchorEl:null})}),c(n,"onReadHandler",function(t){var e;null===(e=n.globalModalContext)||void 0===e||e.close();try{var o,r;null===(o=(r=n.props).onReaded)||void 0===o||o.call(r,t.Id)}catch(t){console.error("Error updating read state:",t)}}),n.state={anchorEl:null,hydrated:!1},n}return n(t,v),o(t,[{key:"notifications",get:function(){var t;return null!==(t=this.props.data)&&void 0!==t?t:[]}},{key:"newFeatureCount",get:function(){return this.notifications.filter(function(t){return!t.IsRead}).length}},{key:"componentDidMount",value:function(){this.setState({hydrated:!0})}},{key:"componentDidUpdate",value:function(t){var e=this;if(t.data!==this.props.data&&this.props.data.length>0){var n=this.props.data.filter(function(t){return"Popup"===t.AreaType&&!t.IsRead});n.length>0&&setTimeout(function(){var t,o;null===(t=(o=e.props).onAutoShowPopup)||void 0===t||t.call(o,n[0])},1500)}}},{key:"render",value:function(){var t=this;return d(f,{children:[u(k,{onClick:function(e){return t.onOpen(e.currentTarget)},children:u(p,{badgeContent:this.state.hydrated?this.newFeatureCount:0,color:"error",children:u(y,{fontSize:"small"})})}),u(D,{disableScrollLock:!0,anchorEl:this.state.anchorEl,open:Boolean(this.state.anchorEl),onClose:this.onClose,anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{component:"div"},children:g(function(e){return t.globalModalContext=e,u(w,{data:t.props.data,onClick:t.onClickHandler})})})]})}}])}(),T=function(n){var o=b(n.featData),i=h([]),l=t(i,2),c=l[0],d=l[1];m(function(){if(o.data){var t=e(o.data).sort(function(t,e){return new Date(e.DateCreated).getTime()-new Date(t.DateCreated).getTime()});d(t)}},[o.data]);var f=function(){var t=r(s().m(function t(e,o){var r;return s().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,null===(r=n.readed)||void 0===r?void 0:r.call(n,e,o);case 1:d(function(t){return t.map(function(t){return t.Id===e?a(a({},t),{},{IsRead:!0}):t}).sort(function(t,e){return new Date(e.DateCreated).getTime()-new Date(t.DateCreated).getTime()})});case 2:return t.a(2)}},t)}));return function(e,n){return t.apply(this,arguments)}}();return u(C,{children:g(function(t){return u(S,{data:c,loading:o.loading,fetchDetail:n.fetchDetail,onReaded:f,onAutoShowPopup:function(e){return function(t,e){e.show({backdropActivated:!0,renderContent:function(){return u(R,{data:t,fetchDetail:n.fetchDetail,onRead:function(t){e.close(),f(t.Id)},onClose:e.close})}})}(e,t)}})})})},j=function(t){var e=function(e){return u(T,a(a({},t),e))};return e.displayName="NotificationWidget",e};export{T as NotificationWidget,j as createNotificationWidget,T as default};
2
2
  //# sourceMappingURL=widget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"widget.js","sources":["../../src/notification/widget.tsx"],"sourcesContent":["import { Badge } from '@mui/material'\r\nimport { Component, FC, useEffect, useState } from 'react'\r\nimport { GlobalModal, IGlobalModalContext, mapGlobalModalContext } from 'dinocollab-core/api-context'\r\nimport NotificationsNoneIcon from '@mui/icons-material/NotificationsNone'\r\nimport { MenuStyled } from './styled'\r\nimport { IconButtonDark } from '../components/buttons'\r\nimport { FetcherFunction, useFetchData } from './hook'\r\nimport { INotification, ReadedFunction } from './types'\r\nimport NotifyList from './notify-list'\r\nimport NotifyDetail from './notify-detail'\r\n\r\ninterface INotificationProps {\r\n loading?: boolean\r\n data: INotification[]\r\n onReaded?: ReadedFunction\r\n onAutoShowPopup?: (notification: INotification) => void\r\n}\r\n\r\ninterface INotificationState {\r\n anchorEl: HTMLElement | null\r\n hydrated: boolean\r\n}\r\nclass NotificationContent extends Component<INotificationProps, INotificationState> {\r\n globalModalContext?: IGlobalModalContext\r\n constructor(props: INotificationProps) {\r\n super(props)\r\n this.state = { anchorEl: null, hydrated: false }\r\n }\r\n\r\n get notifications() {\r\n return this.props.data ?? []\r\n }\r\n\r\n get newFeatureCount() {\r\n return this.notifications.filter((n) => !n.IsRead).length\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 componentDidUpdate(prevProps: INotificationProps) {\r\n // Auto show popup notifications\r\n if (prevProps.data !== this.props.data && this.props.data.length > 0) {\r\n const popupNotifications = this.props.data.filter((n) => n.AreaType === 'Popup' && !n.IsRead)\r\n if (popupNotifications.length > 0) {\r\n // Delay to improve UX\r\n setTimeout(() => {\r\n this.props.onAutoShowPopup?.(popupNotifications[0])\r\n }, 1500)\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n <IconButtonDark onClick={(e) => this.onOpen(e.currentTarget)}>\r\n <Badge badgeContent={this.state.hydrated ? this.newFeatureCount : 0} color='error'>\r\n <NotificationsNoneIcon fontSize='small' />\r\n </Badge>\r\n </IconButtonDark>\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 {mapGlobalModalContext((context: IGlobalModalContext) => {\r\n this.globalModalContext = context\r\n return <NotifyList data={this.props.data} onClick={this.onClickHandler} />\r\n })}\r\n </MenuStyled>\r\n </>\r\n )\r\n }\r\n\r\n onClickHandler = (value: INotification) => {\r\n this.onClose()\r\n this.globalModalContext?.show({\r\n backdropActivated: true,\r\n renderContent: () => <NotifyDetail data={[value]} onRead={this.onReadHandler} onClose={this.globalModalContext?.close} />\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 onReadHandler = (value: INotification) => {\r\n this.globalModalContext?.close()\r\n // NotifyLocalStorage.setSingle(value.Id)\r\n try {\r\n // Call the callback to update the read state in the parent component\r\n this.props.onReaded?.(value.Id)\r\n } catch (error) {\r\n console.error('Error updating read state:', error)\r\n }\r\n }\r\n}\r\n\r\nexport interface INotificationWidgetProps {\r\n featData: FetcherFunction<INotification[]>\r\n readed?: ReadedFunction\r\n}\r\n\r\nexport const NotificationWidget: FC<INotificationWidgetProps> = (props) => {\r\n const intitialData = useFetchData<INotification[]>(props.featData)\r\n const [data, setData] = useState<INotification[]>([])\r\n\r\n // When initialData changes, update the local state\r\n useEffect(() => {\r\n if (intitialData.data) {\r\n const sortedData = [...intitialData.data].sort((a, b) => new Date(b.DateCreated).getTime() - new Date(a.DateCreated).getTime())\r\n setData(sortedData)\r\n }\r\n }, [intitialData.data])\r\n\r\n // Function to update read notifications\r\n const handleRead: ReadedFunction = async (id: string, signal?: AbortSignal) => {\r\n await props.readed?.(id, signal)\r\n setData((prev) => {\r\n const l = prev.map((n) => (n.Id === id ? { ...n, IsRead: true } : n))\r\n return l.sort((a, b) => new Date(b.DateCreated).getTime() - new Date(a.DateCreated).getTime())\r\n })\r\n }\r\n\r\n // Auto show popup notification\r\n const handleAutoShowPopup = (notification: INotification, context: IGlobalModalContext) => {\r\n context.show({\r\n backdropActivated: true,\r\n renderContent: () => (\r\n <NotifyDetail\r\n data={[notification]}\r\n onRead={(value: INotification) => {\r\n context.close()\r\n handleRead(value.Id)\r\n }}\r\n onClose={context.close}\r\n />\r\n )\r\n })\r\n }\r\n\r\n return (\r\n <GlobalModal>\r\n {mapGlobalModalContext((context: IGlobalModalContext) => (\r\n <NotificationContent\r\n data={data}\r\n loading={intitialData.loading}\r\n onReaded={handleRead}\r\n onAutoShowPopup={(x) => handleAutoShowPopup(x, context)}\r\n />\r\n ))}\r\n </GlobalModal>\r\n )\r\n}\r\nexport default NotificationWidget\r\n\r\nexport const createNotificationWidget = (params: INotificationWidgetProps) => {\r\n const _NotificationWidget: FC<Partial<INotificationWidgetProps>> = (props) => <NotificationWidget {...params} {...props} />\r\n _NotificationWidget.displayName = 'NotificationWidget'\r\n return _NotificationWidget\r\n}\r\n"],"names":["NotificationContent","props","_this","_classCallCheck","_callSuper","_defineProperty","value","_this$globalModalCont","onClose","globalModalContext","show","backdropActivated","renderContent","_this$globalModalCont2","_jsx","NotifyDetail","data","onRead","onReadHandler","close","target","setState","anchorEl","_this$globalModalCont3","_this$props$onReaded","_this$props","onReaded","call","Id","error","console","state","hydrated","_inherits","Component","_createClass","key","get","_this$props$data","this","notifications","filter","n","IsRead","length","prevProps","_this2","popupNotifications","AreaType","setTimeout","_this2$props$onAutoSh","_this2$props","onAutoShowPopup","_this3","_jsxs","_Fragment","children","IconButtonDark","onClick","e","onOpen","currentTarget","Badge","badgeContent","newFeatureCount","color","NotificationsNoneIcon","fontSize","MenuStyled","disableScrollLock","open","Boolean","anchorOrigin","vertical","horizontal","transformOrigin","MenuListProps","component","mapGlobalModalContext","context","NotifyList","onClickHandler","NotificationWidget","intitialData","useFetchData","featData","_useState","useState","_useState2","_slicedToArray","setData","useEffect","sortedData","_toConsumableArray","sort","a","b","Date","DateCreated","getTime","handleRead","_ref","_asyncToGenerator","_regenerator","m","_callee","id","signal","_props$readed","w","_context","readed","prev","map","_objectSpread","_x","_x2","apply","arguments","GlobalModal","loading","x","notification","handleAutoShowPopup","createNotificationWidget","params","_NotificationWidget","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"widget.js","sources":["../../src/notification/widget.tsx"],"sourcesContent":["import { Badge } from '@mui/material'\r\nimport { Component, FC, useEffect, useState } from 'react'\r\nimport { GlobalModal, IGlobalModalContext, mapGlobalModalContext } from 'dinocollab-core/api-context'\r\nimport NotificationsNoneIcon from '@mui/icons-material/NotificationsNone'\r\nimport { MenuStyled } from './styled'\r\nimport { IconButtonDark } from '../components/buttons'\r\nimport { FetchDataFunction, useFetchData } from './hook'\r\nimport { INotification, ReadedFunction, FetchDetailFunction } from './types'\r\nimport NotifyList from './notify-list'\r\nimport NotifyDetail from './notify-detail'\r\n\r\ninterface INotificationProps {\r\n loading?: boolean\r\n data: INotification[]\r\n fetchDetail?: FetchDetailFunction\r\n onReaded?: ReadedFunction\r\n onAutoShowPopup?: (notification: INotification) => void\r\n}\r\n\r\ninterface INotificationState {\r\n anchorEl: HTMLElement | null\r\n hydrated: boolean\r\n}\r\nclass NotificationContent extends Component<INotificationProps, INotificationState> {\r\n globalModalContext?: IGlobalModalContext\r\n constructor(props: INotificationProps) {\r\n super(props)\r\n this.state = { anchorEl: null, hydrated: false }\r\n }\r\n\r\n get notifications() {\r\n return this.props.data ?? []\r\n }\r\n\r\n get newFeatureCount() {\r\n return this.notifications.filter((n) => !n.IsRead).length\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 componentDidUpdate(prevProps: INotificationProps) {\r\n // Auto show popup notifications\r\n if (prevProps.data !== this.props.data && this.props.data.length > 0) {\r\n const popupNotifications = this.props.data.filter((n) => n.AreaType === 'Popup' && !n.IsRead)\r\n if (popupNotifications.length > 0) {\r\n // Delay to improve UX\r\n setTimeout(() => {\r\n this.props.onAutoShowPopup?.(popupNotifications[0])\r\n }, 1500)\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n <IconButtonDark onClick={(e) => this.onOpen(e.currentTarget)}>\r\n <Badge badgeContent={this.state.hydrated ? this.newFeatureCount : 0} color='error'>\r\n <NotificationsNoneIcon fontSize='small' />\r\n </Badge>\r\n </IconButtonDark>\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 {mapGlobalModalContext((context: IGlobalModalContext) => {\r\n this.globalModalContext = context\r\n return <NotifyList data={this.props.data} onClick={this.onClickHandler} />\r\n })}\r\n </MenuStyled>\r\n </>\r\n )\r\n }\r\n\r\n onClickHandler = (value: INotification) => {\r\n this.onClose()\r\n this.globalModalContext?.show({\r\n backdropActivated: true,\r\n renderContent: () => (\r\n <NotifyDetail\r\n data={value}\r\n fetchDetail={this.props.fetchDetail}\r\n onRead={this.onReadHandler}\r\n onClose={this.globalModalContext?.close}\r\n />\r\n )\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 onReadHandler = (value: INotification) => {\r\n this.globalModalContext?.close()\r\n // NotifyLocalStorage.setSingle(value.Id)\r\n try {\r\n // Call the callback to update the read state in the parent component\r\n this.props.onReaded?.(value.Id)\r\n } catch (error) {\r\n console.error('Error updating read state:', error)\r\n }\r\n }\r\n}\r\n\r\nexport interface INotificationWidgetProps {\r\n featData: FetchDataFunction<INotification[]>\r\n fetchDetail?: FetchDetailFunction\r\n readed?: ReadedFunction\r\n}\r\n\r\nexport const NotificationWidget: FC<INotificationWidgetProps> = (props) => {\r\n const intitialData = useFetchData<INotification[]>(props.featData)\r\n const [data, setData] = useState<INotification[]>([])\r\n\r\n // When initialData changes, update the local state\r\n useEffect(() => {\r\n if (intitialData.data) {\r\n const sortedData = [...intitialData.data].sort((a, b) => new Date(b.DateCreated).getTime() - new Date(a.DateCreated).getTime())\r\n setData(sortedData)\r\n }\r\n }, [intitialData.data])\r\n\r\n // Function to update read notifications\r\n const handleRead: ReadedFunction = async (id: string, signal?: AbortSignal) => {\r\n await props.readed?.(id, signal)\r\n setData((prev) => {\r\n const l = prev.map((n) => (n.Id === id ? { ...n, IsRead: true } : n))\r\n return l.sort((a, b) => new Date(b.DateCreated).getTime() - new Date(a.DateCreated).getTime())\r\n })\r\n }\r\n\r\n // Auto show popup notification\r\n const handleAutoShowPopup = (notification: INotification, context: IGlobalModalContext) => {\r\n context.show({\r\n backdropActivated: true,\r\n renderContent: () => (\r\n <NotifyDetail\r\n data={notification}\r\n fetchDetail={props.fetchDetail}\r\n onRead={(value: INotification) => {\r\n context.close()\r\n handleRead(value.Id)\r\n }}\r\n onClose={context.close}\r\n />\r\n )\r\n })\r\n }\r\n\r\n return (\r\n <GlobalModal>\r\n {mapGlobalModalContext((context: IGlobalModalContext) => (\r\n <NotificationContent\r\n data={data}\r\n loading={intitialData.loading}\r\n fetchDetail={props.fetchDetail}\r\n onReaded={handleRead}\r\n onAutoShowPopup={(x) => handleAutoShowPopup(x, context)}\r\n />\r\n ))}\r\n </GlobalModal>\r\n )\r\n}\r\nexport default NotificationWidget\r\n\r\nexport const createNotificationWidget = (params: INotificationWidgetProps) => {\r\n const _NotificationWidget: FC<Partial<INotificationWidgetProps>> = (props) => <NotificationWidget {...params} {...props} />\r\n _NotificationWidget.displayName = 'NotificationWidget'\r\n return _NotificationWidget\r\n}\r\n"],"names":["NotificationContent","props","_this","_classCallCheck","_callSuper","_defineProperty","value","_this$globalModalCont","onClose","globalModalContext","show","backdropActivated","renderContent","_this$globalModalCont2","_jsx","NotifyDetail","data","fetchDetail","onRead","onReadHandler","close","target","setState","anchorEl","_this$globalModalCont3","_this$props$onReaded","_this$props","onReaded","call","Id","error","console","state","hydrated","_inherits","Component","_createClass","key","get","_this$props$data","this","notifications","filter","n","IsRead","length","prevProps","_this2","popupNotifications","AreaType","setTimeout","_this2$props$onAutoSh","_this2$props","onAutoShowPopup","_this3","_jsxs","_Fragment","children","IconButtonDark","onClick","e","onOpen","currentTarget","Badge","badgeContent","newFeatureCount","color","NotificationsNoneIcon","fontSize","MenuStyled","disableScrollLock","open","Boolean","anchorOrigin","vertical","horizontal","transformOrigin","MenuListProps","component","mapGlobalModalContext","context","NotifyList","onClickHandler","NotificationWidget","intitialData","useFetchData","featData","_useState","useState","_useState2","_slicedToArray","setData","useEffect","sortedData","_toConsumableArray","sort","a","b","Date","DateCreated","getTime","handleRead","_ref","_asyncToGenerator","_regenerator","m","_callee","id","signal","_props$readed","w","_context","readed","prev","map","_objectSpread","_x","_x2","apply","arguments","GlobalModal","loading","x","notification","handleAutoShowPopup","createNotificationWidget","params","_NotificationWidget","displayName"],"mappings":"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"}
@@ -13,6 +13,6 @@ export declare class NotifyContentConverter {
13
13
  constructor(content: string);
14
14
  private parseContent;
15
15
  getContentByVersion(): ConfigType;
16
- renderComponent(data: INotification[], onRead?: (value: INotification) => void, onClose?: () => void): React.ReactNode;
16
+ renderComponent(data: INotification, onRead?: (value: INotification) => void, onClose?: () => void): React.ReactNode;
17
17
  }
18
18
  //# sourceMappingURL=class.config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"class.config.d.ts","sourceRoot":"","sources":["../../../src/notification/class.config.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAErD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,cAAc,CAAU;gBAEpB,OAAO,EAAE,MAAM;IAK3B,OAAO,CAAC,YAAY;IA0CpB,mBAAmB;IAKnB,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS;CAUvH"}
1
+ {"version":3,"file":"class.config.d.ts","sourceRoot":"","sources":["../../../src/notification/class.config.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAErD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,cAAc,CAAU;gBAEpB,OAAO,EAAE,MAAM;IAK3B,OAAO,CAAC,YAAY;IA8CpB,mBAAmB;IAKnB,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS;CAUrH"}
@@ -4,8 +4,8 @@ export declare const errorMessageHandler: (error: any, options?: {
4
4
  }) => {
5
5
  isAbortError: boolean;
6
6
  };
7
- export type FetcherFunction<T> = (signal?: AbortSignal) => Promise<T>;
8
- export declare function useFetchData<T, F extends FetcherFunction<T> = FetcherFunction<T>>(fetcher: F): {
7
+ export type FetchDataFunction<T> = (signal?: AbortSignal) => Promise<T>;
8
+ export declare function useFetchData<T, F extends FetchDataFunction<T> = FetchDataFunction<T>>(fetcher: F): {
9
9
  data: Awaited<ReturnType<F>> | undefined;
10
10
  loading: boolean;
11
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/notification/hook.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,UAAW,GAAG,YAAY;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE;;CAI/F,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;AAErE,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;;;EAmC5F"}
1
+ {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/notification/hook.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,UAAW,GAAG,YAAY;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE;;CAI/F,CAAA;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;AAEvE,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;;;EAmChG"}
@@ -1,4 +1,4 @@
1
1
  export * from './widget';
2
2
  export * from './types';
3
- export type { FetcherFunction } from './hook';
3
+ export type { FetchDataFunction } from './hook';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/notification/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AAExB,cAAc,SAAS,CAAA;AAEvB,YAAY,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/notification/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AAExB,cAAc,SAAS,CAAA;AAEvB,YAAY,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA"}
@@ -3,13 +3,12 @@ import { Component, ComponentType } from 'react';
3
3
  import { INotification } from './types';
4
4
  import 'react-quill/dist/quill.snow.css';
5
5
  interface IProps {
6
- data: INotification[];
6
+ data: INotification;
7
7
  html: string;
8
8
  onRead?: (value: INotification) => void;
9
9
  onClose?: () => void;
10
10
  }
11
11
  interface IState {
12
- indexSelected: number;
13
12
  }
14
13
  declare class NotifyDetailCustom extends Component<IProps, IState> {
15
14
  private contentRef;
@@ -19,7 +18,6 @@ declare class NotifyDetailCustom extends Component<IProps, IState> {
19
18
  handleContentClick: (event: MouseEvent) => void;
20
19
  render(): import("react/jsx-runtime").JSX.Element;
21
20
  handleRead: () => void;
22
- getData: () => INotification | undefined;
23
21
  }
24
22
  export default NotifyDetailCustom;
25
23
  export declare const NotifyDetailStyled: ComponentType<BoxProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"notify-detail.custom.d.ts","sourceRoot":"","sources":["../../../src/notification/notify-detail.custom.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAU,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAa,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAe,aAAa,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,iCAAiC,CAAA;AAExC,UAAU,MAAM;IACd,IAAI,EAAE,aAAa,EAAE,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,UAAU,MAAM;IACd,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,cAAM,kBAAmB,SAAQ,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACxD,OAAO,CAAC,UAAU,CAA8B;gBAEpC,KAAK,EAAE,MAAM;IAKzB,iBAAiB;IAKjB,oBAAoB;IAKpB,kBAAkB,UAAW,UAAU,UAetC;IAED,MAAM;IAYN,UAAU,aAIT;IAED,OAAO,kCAUN;CACF;AAED,eAAe,kBAAkB,CAAA;AAejC,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,QAAQ,CAapD,CAAA"}
1
+ {"version":3,"file":"notify-detail.custom.d.ts","sourceRoot":"","sources":["../../../src/notification/notify-detail.custom.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAU,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAa,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAe,aAAa,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,iCAAiC,CAAA;AAExC,UAAU,MAAM;IACd,IAAI,EAAE,aAAa,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,UAAU,MAAM;CAAG;AAEnB,cAAM,kBAAmB,SAAQ,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACxD,OAAO,CAAC,UAAU,CAA8B;gBAEpC,KAAK,EAAE,MAAM;IAKzB,iBAAiB;IAKjB,oBAAoB;IAKpB,kBAAkB,UAAW,UAAU,UAetC;IAED,MAAM;IASN,UAAU,aAGT;CACF;AAED,eAAe,kBAAkB,CAAA;AAEjC,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,QAAQ,CAYpD,CAAA"}
@@ -1,18 +1,25 @@
1
1
  import 'react-quill/dist/quill.snow.css';
2
2
  import { Component } from 'react';
3
- import { INotification } from './types';
3
+ import { INotification, FetchDetailFunction } from './types';
4
4
  interface IProps {
5
- data: INotification[];
5
+ data: INotification;
6
+ fetchDetail?: FetchDetailFunction;
6
7
  onRead?: (value: INotification) => void;
7
8
  onClose?: () => void;
8
9
  }
9
10
  interface IState {
10
- indexSelected: number;
11
+ detailData: INotification | null;
12
+ loading: boolean;
13
+ error: boolean;
11
14
  }
12
15
  declare class NotifyDetail extends Component<IProps, IState> {
16
+ private abortController;
13
17
  constructor(props: IProps);
18
+ componentDidMount(): void;
19
+ componentWillUnmount(): void;
20
+ fetchDetailIfNeeded: () => Promise<void>;
14
21
  render(): string | number | boolean | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
15
- getData: () => INotification | undefined;
22
+ handleRetry: () => void;
16
23
  }
17
24
  export default NotifyDetail;
18
25
  //# sourceMappingURL=notify-detail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify-detail.d.ts","sourceRoot":"","sources":["../../../src/notification/notify-detail.tsx"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAGvC,UAAU,MAAM;IACd,IAAI,EAAE,aAAa,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,UAAU,MAAM;IACd,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,cAAM,YAAa,SAAQ,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBACtC,KAAK,EAAE,MAAM;IAKzB,MAAM;IAON,OAAO,kCAUN;CACF;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"notify-detail.d.ts","sourceRoot":"","sources":["../../../src/notification/notify-detail.tsx"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE5D,UAAU,MAAM;IACd,IAAI,EAAE,aAAa,CAAA;IACnB,WAAW,CAAC,EAAE,mBAAmB,CAAA;IACjC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,UAAU,MAAM;IACd,UAAU,EAAE,aAAa,GAAG,IAAI,CAAA;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;CACf;AAED,cAAM,YAAa,SAAQ,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAClD,OAAO,CAAC,eAAe,CAA+B;gBAE1C,KAAK,EAAE,MAAM;IAKzB,iBAAiB;IAKjB,oBAAoB;IAIpB,mBAAmB,sBAiClB;IAED,MAAM;IAoCN,WAAW,aAKV;CACF;AAED,eAAe,YAAY,CAAA"}
@@ -2,22 +2,17 @@ import 'react-quill/dist/quill.snow.css';
2
2
  import { Component } from 'react';
3
3
  import { INotification } from './types';
4
4
  interface IProps {
5
- data: INotification[];
5
+ data: INotification;
6
6
  html: string;
7
7
  onRead?: (value: INotification) => void;
8
8
  onClose?: () => void;
9
9
  }
10
10
  interface IState {
11
- indexSelected: number;
12
11
  }
13
12
  declare class NotifyDetailDefault extends Component<IProps, IState> {
14
13
  constructor(props: IProps);
15
14
  render(): import("react/jsx-runtime").JSX.Element;
16
- renderControl: () => import("react/jsx-runtime").JSX.Element;
17
- handleClickLeft: () => void;
18
- handleClickRight: () => void;
19
15
  handleRead: () => void;
20
- getData: () => INotification | undefined;
21
16
  }
22
17
  export default NotifyDetailDefault;
23
18
  //# sourceMappingURL=notify-detail.default.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify-detail.default.d.ts","sourceRoot":"","sources":["../../../src/notification/notify-detail.default.tsx"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKjC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAGvC,UAAU,MAAM;IACd,IAAI,EAAE,aAAa,EAAE,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,UAAU,MAAM;IACd,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,cAAM,mBAAoB,SAAQ,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,KAAK,EAAE,MAAM;IAKzB,MAAM;IA4CN,aAAa,gDAeZ;IAED,eAAe,aAId;IAED,gBAAgB,aAIf;IAED,UAAU,aAKT;IAED,OAAO,kCAUN;CACF;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"notify-detail.default.d.ts","sourceRoot":"","sources":["../../../src/notification/notify-detail.default.tsx"],"names":[],"mappings":"AAAA,OAAO,iCAAiC,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGjC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAGvC,UAAU,MAAM;IACd,IAAI,EAAE,aAAa,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,UAAU,MAAM;CAAG;AAEnB,cAAM,mBAAoB,SAAQ,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,KAAK,EAAE,MAAM;IAKzB,MAAM;IA2CN,UAAU,aAGT;CACF;AAED,eAAe,mBAAmB,CAAA"}
@@ -8,6 +8,8 @@ declare class NotifyList extends Component<INotifyListProps> {
8
8
  render(): import("react/jsx-runtime").JSX.Element;
9
9
  renderItem: (item: INotification, index: number) => import("react/jsx-runtime").JSX.Element;
10
10
  onClickHandler: (notification: INotification) => void;
11
+ getDescription: (count: number) => string;
12
+ getItems: (isReaded?: boolean) => INotification[];
11
13
  }
12
14
  export default NotifyList;
13
15
  //# sourceMappingURL=notify-list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify-list.d.ts","sourceRoot":"","sources":["../../../src/notification/notify-list.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKxC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAIvC,UAAU,gBAAgB;IACxB,IAAI,EAAE,aAAa,EAAE,CAAA;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;CACzC;AAED,cAAM,UAAW,SAAQ,SAAS,CAAC,gBAAgB,CAAC;IAClD,MAAM;IA0BN,UAAU,SAAU,aAAa,SAAS,MAAM,6CAoB/C;IAED,cAAc,iBAAkB,aAAa,UAI5C;CACF;AACD,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"notify-list.d.ts","sourceRoot":"","sources":["../../../src/notification/notify-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAKvC,UAAU,gBAAgB;IACxB,IAAI,EAAE,aAAa,EAAE,CAAA;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;CACzC;AAED,cAAM,UAAW,SAAQ,SAAS,CAAC,gBAAgB,CAAC;IAClD,MAAM;IA+CN,UAAU,SAAU,aAAa,SAAS,MAAM,6CAoB/C;IAED,cAAc,iBAAkB,aAAa,UAI5C;IAED,cAAc,UAAW,MAAM,YAI9B;IAED,QAAQ,cAAe,OAAO,qBAE7B;CACF;AACD,eAAe,UAAU,CAAA"}
@@ -11,6 +11,7 @@ export declare const notifyListClasses: {
11
11
  itemIcon: string;
12
12
  itemTitle: string;
13
13
  itemSubTitle: string;
14
+ groupTitle: string;
14
15
  };
15
16
  export declare const NotifyListStyled: ComponentType<BoxProps>;
16
17
  export declare const notifyDetailClasses: {
@@ -1 +1 @@
1
- {"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../src/notification/styled.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAExD,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,SAAS,CAkC7C,CAAA;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;CAU7B,CAAA;AAMD,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CA6ElD,CAAA;AAEH,eAAO,MAAM,mBAAmB;;;;;;;CAO/B,CAAA;AAMD,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,QAAQ,CA8CpD,CAAA"}
1
+ {"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../src/notification/styled.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAExD,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,SAAS,CAkC7C,CAAA;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAW7B,CAAA;AAMD,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAuFlD,CAAA;AAEH,eAAO,MAAM,mBAAmB;;;;;;;CAO/B,CAAA;AAMD,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,QAAQ,CA8CpD,CAAA"}
@@ -26,4 +26,5 @@ export interface INotification {
26
26
  DateCreated: string;
27
27
  }
28
28
  export type ReadedFunction = (id: string, signal?: AbortSignal) => Promise<void>;
29
+ export type FetchDetailFunction = (id: string, signal?: AbortSignal) => Promise<INotification | null>;
29
30
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/notification/types.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,oBAAY,WAAW;IACrB,KAAK,uBAAuB;IAC5B,MAAM,wBAAwB;CAC/B;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE1C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAA;AAEtC,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,SAAS,CAAA;IACnB,QAAQ,EAAE,SAAS,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/notification/types.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,oBAAY,WAAW;IACrB,KAAK,uBAAuB;IAC5B,MAAM,wBAAwB;CAC/B;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE1C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAA;AAEtC,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,SAAS,CAAA;IACnB,QAAQ,EAAE,SAAS,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEhF,MAAM,MAAM,mBAAmB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA"}
@@ -1,8 +1,9 @@
1
1
  import { FC } from 'react';
2
- import { FetcherFunction } from './hook';
3
- import { INotification, ReadedFunction } from './types';
2
+ import { FetchDataFunction } from './hook';
3
+ import { INotification, ReadedFunction, FetchDetailFunction } from './types';
4
4
  export interface INotificationWidgetProps {
5
- featData: FetcherFunction<INotification[]>;
5
+ featData: FetchDataFunction<INotification[]>;
6
+ fetchDetail?: FetchDetailFunction;
6
7
  readed?: ReadedFunction;
7
8
  }
8
9
  export declare const NotificationWidget: FC<INotificationWidgetProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../src/notification/widget.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,EAAE,EAAuB,MAAM,OAAO,CAAA;AAK1D,OAAO,EAAE,eAAe,EAAgB,MAAM,QAAQ,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAsGvD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,eAAe,CAAC,aAAa,EAAE,CAAC,CAAA;IAC1C,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,wBAAwB,CAkD3D,CAAA;AACD,eAAe,kBAAkB,CAAA;AAEjC,eAAO,MAAM,wBAAwB,WAAY,wBAAwB,0CAIxE,CAAA"}
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../src/notification/widget.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,EAAE,EAAuB,MAAM,OAAO,CAAA;AAK1D,OAAO,EAAE,iBAAiB,EAAgB,MAAM,QAAQ,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AA8G5E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAA;IAC5C,WAAW,CAAC,EAAE,mBAAmB,CAAA;IACjC,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,wBAAwB,CAoD3D,CAAA;AACD,eAAe,kBAAkB,CAAA;AAEjC,eAAO,MAAM,wBAAwB,WAAY,wBAAwB,0CAIxE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dinocollab-shared",
3
- "version": "1.2.28",
3
+ "version": "1.2.29",
4
4
  "description": "DinoCollab shared utilities and components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",