@corva/ui 3.76.0-8 → 3.76.0-rc.0

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 (67) hide show
  1. package/MCP_README.md +86 -36
  2. package/README.md +8 -5
  3. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
  4. package/cjs-bundle/componentsV2/AppCommonsProvider/AppCommonsContext.js.map +1 -1
  5. package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.constants.js +1 -1
  6. package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.constants.js.map +1 -1
  7. package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.js +1 -1
  8. package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.js.map +1 -1
  9. package/cjs-bundle/componentsV2/AppHeader/V3/AppHeaderV3.js +1 -1
  10. package/cjs-bundle/componentsV2/AppHeader/V3/AppHeaderV3.js.map +1 -1
  11. package/cjs-bundle/componentsV2/AppHeader/V3/AppHeaderV3.scss.js +1 -1
  12. package/cjs-bundle/componentsV2/AppHeader/V3/useResponsivity.js +1 -1
  13. package/cjs-bundle/componentsV2/AppHeader/V3/useResponsivity.js.map +1 -1
  14. package/cjs-bundle/componentsV2/AppPanel/AppPanelDisplay.js +1 -1
  15. package/cjs-bundle/componentsV2/AppPanel/AppPanelDisplay.js.map +1 -1
  16. package/cjs-bundle/componentsV2/DatePicker/TimePicker/TimePicker.js +1 -1
  17. package/cjs-bundle/componentsV2/DatePicker/TimePicker/TimePicker.js.map +1 -1
  18. package/cjs-bundle/componentsV2/DatePicker/utils.js +1 -1
  19. package/cjs-bundle/componentsV2/DatePicker/utils.js.map +1 -1
  20. package/cjs-bundle/componentsV2/Modal/Modal.js +1 -1
  21. package/cjs-bundle/componentsV2/Modal/Modal.js.map +1 -1
  22. package/cjs-bundle/componentsV2/TemplatesControl/Store/hooks/useInitialize.js +1 -1
  23. package/cjs-bundle/componentsV2/TemplatesControl/Store/hooks/useInitialize.js.map +1 -1
  24. package/cjs-bundle/effects/useDevCenterApp.js +1 -1
  25. package/cjs-bundle/effects/useDevCenterApp.js.map +1 -1
  26. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.d.ts +2 -9
  27. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.d.ts.map +1 -1
  28. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
  29. package/componentsV2/AppCommonsProvider/AppCommonsContext.d.ts +19 -6
  30. package/componentsV2/AppCommonsProvider/AppCommonsContext.d.ts.map +1 -1
  31. package/componentsV2/AppCommonsProvider/AppCommonsContext.js.map +1 -1
  32. package/componentsV2/AppHeader/V3/Actions/Actions.constants.d.ts +1 -0
  33. package/componentsV2/AppHeader/V3/Actions/Actions.constants.d.ts.map +1 -1
  34. package/componentsV2/AppHeader/V3/Actions/Actions.constants.js +1 -1
  35. package/componentsV2/AppHeader/V3/Actions/Actions.constants.js.map +1 -1
  36. package/componentsV2/AppHeader/V3/Actions/Actions.d.ts.map +1 -1
  37. package/componentsV2/AppHeader/V3/Actions/Actions.js +1 -1
  38. package/componentsV2/AppHeader/V3/Actions/Actions.js.map +1 -1
  39. package/componentsV2/AppHeader/V3/AppHeaderV3.d.ts.map +1 -1
  40. package/componentsV2/AppHeader/V3/AppHeaderV3.js +1 -1
  41. package/componentsV2/AppHeader/V3/AppHeaderV3.js.map +1 -1
  42. package/componentsV2/AppHeader/V3/AppHeaderV3.scss.js +1 -1
  43. package/componentsV2/AppHeader/V3/useResponsivity.js +1 -1
  44. package/componentsV2/AppHeader/V3/useResponsivity.js.map +1 -1
  45. package/componentsV2/AppHeader/__tests__/AppHeaderEmbedded.test.d.ts +2 -0
  46. package/componentsV2/AppHeader/__tests__/AppHeaderEmbedded.test.d.ts.map +1 -0
  47. package/componentsV2/AppPanel/AppPanelDisplay.d.ts.map +1 -1
  48. package/componentsV2/AppPanel/AppPanelDisplay.js +1 -1
  49. package/componentsV2/AppPanel/AppPanelDisplay.js.map +1 -1
  50. package/componentsV2/DatePicker/TimePicker/TimePicker.js +1 -1
  51. package/componentsV2/DatePicker/TimePicker/TimePicker.js.map +1 -1
  52. package/componentsV2/DatePicker/utils.js +1 -1
  53. package/componentsV2/DatePicker/utils.js.map +1 -1
  54. package/componentsV2/Modal/Modal.d.ts.map +1 -1
  55. package/componentsV2/Modal/Modal.js +1 -1
  56. package/componentsV2/Modal/Modal.js.map +1 -1
  57. package/componentsV2/TemplatesControl/Store/hooks/useInitialize.d.ts.map +1 -1
  58. package/componentsV2/TemplatesControl/Store/hooks/useInitialize.js +1 -1
  59. package/componentsV2/TemplatesControl/Store/hooks/useInitialize.js.map +1 -1
  60. package/effects/useDevCenterApp.d.ts.map +1 -1
  61. package/effects/useDevCenterApp.js +1 -1
  62. package/effects/useDevCenterApp.js.map +1 -1
  63. package/mcp-server/server.mjs +11 -11
  64. package/package.json +1 -1
  65. package/styles/common.scss +0 -14
  66. package/styles/mixins.scss +0 -14
  67. package/tsconfig.tsbuildinfo +1 -1
@@ -1,2 +1,2 @@
1
- var t={date:"DD MMM YYYY",dateTime:"DD MMM YYYY hh:mm A",month:"MMMM YYYY"},e={date:"DD/MM/YYYY",dateTime:"DD/MM/YYYY hh:mm A",month:"MMM YYYY"},l=function(l,n){return(n?e:t)[l]},n=["D","M","Y","h","m","s","S"],i=[].concat(n,["A"]),u=new RegExp("^([^".concat(i.join(""),"]+)"),"gi"),Y={month:"MM/YYYY",date:"DD/MM/YYYY",dateTime:"DD/MM/YYYY hh:mm A"},r={month:[Y.month,"MMMM YYYY","MMM YYYY"],date:[Y.date,"D/M/YYYY"],dateTime:[Y.dateTime,"D/M/YYYY hh:mm A"]},a=function(t){var e=t.value,l=t.type,i=t.range,r=t.prevValue,a=Y[l],o=i?"".concat(a," - ").concat(a):a,M=e.toLocaleLowerCase().replace(/([ap])m/gi,"$1");if(e.length<=r.length||!function(t,e){return e.length<=t.length&&e.split("").every((function(e,l){var i,u=t[l];if(n.includes(u))return null==(i=e)?void 0:i.match(/\d/);if("A"===u){var Y=e.toLocaleLowerCase();return"a"===Y||"p"===Y}return u===e}))}(o,M)||o.length<=M.length)return e;var c=function(t,e){var l;return(null===(l=t.substring(e).match(u))||void 0===l?void 0:l[0])||""}(o,M.length);return"".concat(e).concat(c)},o=function(t,e){return!!t&&!!e&&t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()},M=function(t,e){return o(t,e)&&(null==t?void 0:t.getDate())===(null==e?void 0:e.getDate())},c=function(t,e){return t&&e?t<e?t:e:t||e},d=function(t,e){return t&&e?t>e?t:e:t||e},h=[{id:1,title:"Jan",fullTitle:"January"},{id:2,title:"Feb",fullTitle:"February"},{id:3,title:"Mar",fullTitle:"March"},{id:4,title:"Apr",fullTitle:"April"},{id:5,title:"May",fullTitle:"May"},{id:6,title:"Jun",fullTitle:"June"},{id:7,title:"Jul",fullTitle:"July"},{id:8,title:"Aug",fullTitle:"August"},{id:9,title:"Sep",fullTitle:"September"},{id:10,title:"Oct",fullTitle:"October"},{id:11,title:"Nov",fullTitle:"November"},{id:12,title:"Dec",fullTitle:"December"}],g=function(t,e){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),(null==e?void 0:e.getHours())||0,(null==e?void 0:e.getMinutes())||0,(null==e?void 0:e.getSeconds())||0)};export{t as DefaultFormatByType,e as DefaultFormatByTypeRange,Y as InputAutocompleteFormats,r as InputParseFormats,h as MonthOptions,a as autocompleteValue,g as getDateWithSameTime,l as getDefaultFormat,d as getMaxDate,c as getMinDate,M as isSameDay,o as isSameMonth};
1
+ var t={date:"MMM DD YYYY",dateTime:"MMM DD YYYY hh:mm A",month:"MMMM YYYY"},e={date:"MM/DD/YYYY",dateTime:"MM/DD/YYYY hh:mm A",month:"MMM YYYY"},l=function(l,n){return(n?e:t)[l]},n=["D","M","Y","h","m","s","S"],i=[].concat(n,["A"]),u=new RegExp("^([^".concat(i.join(""),"]+)"),"gi"),Y={month:"MM/YYYY",date:"MM/DD/YYYY",dateTime:"MM/DD/YYYY hh:mm A"},r={month:[Y.month,"MMMM YYYY","MMM YYYY"],date:[Y.date,"M/D/YYYY"],dateTime:[Y.dateTime,"M/D/YYYY hh:mm A"]},a=function(t){var e=t.value,l=t.type,i=t.range,r=t.prevValue,a=Y[l],o=i?"".concat(a," - ").concat(a):a,M=e.toLocaleLowerCase().replace(/([ap])m/gi,"$1");if(e.length<=r.length||!function(t,e){return e.length<=t.length&&e.split("").every((function(e,l){var i,u=t[l];if(n.includes(u))return null==(i=e)?void 0:i.match(/\d/);if("A"===u){var Y=e.toLocaleLowerCase();return"a"===Y||"p"===Y}return u===e}))}(o,M)||o.length<=M.length)return e;var c=function(t,e){var l;return(null===(l=t.substring(e).match(u))||void 0===l?void 0:l[0])||""}(o,M.length);return"".concat(e).concat(c)},o=function(t,e){return!!t&&!!e&&t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()},M=function(t,e){return o(t,e)&&(null==t?void 0:t.getDate())===(null==e?void 0:e.getDate())},c=function(t,e){return t&&e?t<e?t:e:t||e},d=function(t,e){return t&&e?t>e?t:e:t||e},h=[{id:1,title:"Jan",fullTitle:"January"},{id:2,title:"Feb",fullTitle:"February"},{id:3,title:"Mar",fullTitle:"March"},{id:4,title:"Apr",fullTitle:"April"},{id:5,title:"May",fullTitle:"May"},{id:6,title:"Jun",fullTitle:"June"},{id:7,title:"Jul",fullTitle:"July"},{id:8,title:"Aug",fullTitle:"August"},{id:9,title:"Sep",fullTitle:"September"},{id:10,title:"Oct",fullTitle:"October"},{id:11,title:"Nov",fullTitle:"November"},{id:12,title:"Dec",fullTitle:"December"}],g=function(t,e){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),(null==e?void 0:e.getHours())||0,(null==e?void 0:e.getMinutes())||0,(null==e?void 0:e.getSeconds())||0)};export{t as DefaultFormatByType,e as DefaultFormatByTypeRange,Y as InputAutocompleteFormats,r as InputParseFormats,h as MonthOptions,a as autocompleteValue,g as getDateWithSameTime,l as getDefaultFormat,d as getMaxDate,c as getMinDate,M as isSameDay,o as isSameMonth};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/componentsV2/DatePicker/utils.tsx"],"sourcesContent":["export type DatePickerType = 'date' | 'dateTime' | 'month';\n\nexport type DatePickerValue<IsRange extends boolean | undefined = false> = IsRange extends\n | undefined\n | false\n ? Date | undefined\n : [Date, Date] | undefined;\n\nexport type DatePickerChangeHandler<IsRange extends boolean | undefined = false> = (\n value: DatePickerValue<IsRange>\n) => void;\n\n// startDate - initial state, no start date selected\n// endDate - start done, no end date selected\nexport type RangeSelectionStep = 'startDate' | 'endDate';\n\nexport const DefaultFormatByType: Record<DatePickerType, string> = {\n date: 'DD MMM YYYY',\n dateTime: 'DD MMM YYYY hh:mm A',\n month: 'MMMM YYYY',\n};\n\nexport const DefaultFormatByTypeRange: Record<DatePickerType, string> = {\n date: 'DD/MM/YYYY',\n dateTime: 'DD/MM/YYYY hh:mm A',\n month: 'MMM YYYY',\n};\n\nexport const getDefaultFormat = (type: DatePickerType, range?: boolean) => {\n const map = range ? DefaultFormatByTypeRange : DefaultFormatByType;\n return map[type];\n};\n\nconst NumericLetters = ['D', 'M', 'Y', 'h', 'm', 's', 'S'];\nconst AllLetters = [...NumericLetters, 'A'];\nconst GetSeparatorRegex = new RegExp(`^([^${AllLetters.join('')}]+)`, 'gi');\n\n// These formats should be composed only of `AllLetters` as placeholders only\nexport const InputAutocompleteFormats: Record<DatePickerType, string> = {\n month: 'MM/YYYY',\n date: 'DD/MM/YYYY',\n dateTime: 'DD/MM/YYYY hh:mm A',\n};\n\nexport const InputParseFormats: Record<DatePickerType, string[]> = {\n month: [InputAutocompleteFormats.month, 'MMMM YYYY', 'MMM YYYY'],\n date: [InputAutocompleteFormats.date, 'D/M/YYYY'],\n dateTime: [InputAutocompleteFormats.dateTime, 'D/M/YYYY hh:mm A'],\n};\n\nconst isDigit = (symbol?: string) => symbol?.match(/\\d/);\n\nconst isInFormatSoFar = (format: string, value: string) => {\n if (value.length <= format.length) {\n const valueArr = value.split('');\n\n return valueArr.every((valueChar, pos) => {\n const formatChar = format[pos];\n\n if (NumericLetters.includes(formatChar)) {\n return isDigit(valueChar);\n }\n\n if (formatChar === 'A') {\n const lcChar = valueChar.toLocaleLowerCase();\n return lcChar === 'a' || lcChar === 'p';\n }\n\n return formatChar === valueChar;\n });\n }\n\n return false;\n};\n\nconst getSeparator = (format: string, startIndex: number) => {\n return format.substring(startIndex).match(GetSeparatorRegex)?.[0] || '';\n};\n\nexport const autocompleteValue = ({\n value,\n type,\n range,\n prevValue,\n}: {\n type: DatePickerType;\n range?: boolean;\n value: string;\n prevValue: string;\n}) => {\n const formatPart = InputAutocompleteFormats[type];\n const format = range ? `${formatPart} - ${formatPart}` : formatPart;\n\n const preparedValue = value.toLocaleLowerCase().replace(/([ap])m/gi, '$1');\n\n if (\n value.length <= prevValue.length ||\n !isInFormatSoFar(format, preparedValue) ||\n format.length <= preparedValue.length\n ) {\n return value;\n }\n\n // Only autocomplete if user types something\n // Check if conforms to format so far\n // Adding separators if needed\n const separator = getSeparator(format, preparedValue.length);\n\n return `${value}${separator}`;\n};\n\nexport const isSameMonth = (a?: Date, b?: Date) =>\n !!a && !!b && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();\n\nexport const isSameDay = (a?: Date, b?: Date) => isSameMonth(a, b) && a?.getDate() === b?.getDate();\n\nexport const getMinDate = (a?: Date, b?: Date) => {\n if (a && b) {\n return a < b ? a : b;\n }\n\n return a || b;\n};\n\nexport const getMaxDate = (a?: Date, b?: Date) => {\n if (a && b) {\n return a > b ? a : b;\n }\n\n return a || b;\n};\n\nexport const MonthOptions = [\n { id: 1, title: 'Jan', fullTitle: 'January' },\n { id: 2, title: 'Feb', fullTitle: 'February' },\n { id: 3, title: 'Mar', fullTitle: 'March' },\n { id: 4, title: 'Apr', fullTitle: 'April' },\n { id: 5, title: 'May', fullTitle: 'May' },\n { id: 6, title: 'Jun', fullTitle: 'June' },\n { id: 7, title: 'Jul', fullTitle: 'July' },\n { id: 8, title: 'Aug', fullTitle: 'August' },\n { id: 9, title: 'Sep', fullTitle: 'September' },\n { id: 10, title: 'Oct', fullTitle: 'October' },\n { id: 11, title: 'Nov', fullTitle: 'November' },\n { id: 12, title: 'Dec', fullTitle: 'December' },\n];\n\nexport type DatePickerCalendarView = 'year' | 'month';\n\nexport const getDateWithSameTime = (date: Date, timeDate?: Date) =>\n new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n timeDate?.getHours() || 0,\n timeDate?.getMinutes() || 0,\n timeDate?.getSeconds() || 0\n );\n"],"names":["DefaultFormatByType","date","dateTime","month","DefaultFormatByTypeRange","getDefaultFormat","type","range","NumericLetters","AllLetters","concat","GetSeparatorRegex","RegExp","join","InputAutocompleteFormats","InputParseFormats","autocompleteValue","_ref","value","prevValue","formatPart","format","preparedValue","toLocaleLowerCase","replace","length","split","every","valueChar","pos","symbol","formatChar","includes","match","lcChar","isInFormatSoFar","separator","startIndex","_format$substring$mat","substring","getSeparator","isSameMonth","a","b","getFullYear","getMonth","isSameDay","getDate","getMinDate","getMaxDate","MonthOptions","id","title","fullTitle","getDateWithSameTime","timeDate","Date","getHours","getMinutes","getSeconds"],"mappings":"AAgBO,IAAMA,EAAsD,CACjEC,KAAM,cACNC,SAAU,sBACVC,MAAO,aAGIC,EAA2D,CACtEH,KAAM,aACNC,SAAU,qBACVC,MAAO,YAGIE,EAAmB,SAACC,EAAsBC,GAErD,OADYA,EAAQH,EAA2BJ,GACpCM,EACb,EAEME,EAAiB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChDC,EAAU,GAAAC,OAAOF,EAAc,CAAE,MACjCG,EAAoB,IAAIC,OAAcH,OAAAA,OAAAA,EAAWI,KAAK,IAAG,OAAO,MAGzDC,EAA2D,CACtEX,MAAO,UACPF,KAAM,aACNC,SAAU,sBAGCa,EAAsD,CACjEZ,MAAO,CAACW,EAAyBX,MAAO,YAAa,YACrDF,KAAM,CAACa,EAAyBb,KAAM,YACtCC,SAAU,CAACY,EAAyBZ,SAAU,qBAgCnCc,EAAoB,SAU3BC,GAAA,IATJC,IAAAA,MACAZ,IAAAA,KACAC,IAAAA,MACAY,IAAAA,UAOMC,EAAaN,EAAyBR,GACtCe,EAASd,EAAK,GAAAG,OAAMU,EAAgBA,OAAAA,OAAAA,GAAeA,EAEnDE,EAAgBJ,EAAMK,oBAAoBC,QAAQ,YAAa,MAErE,GACEN,EAAMO,QAAUN,EAAUM,SA5CN,SAACJ,EAAgBH,GACvC,OAAIA,EAAMO,QAAUJ,EAAOI,QACRP,EAAMQ,MAAM,IAEbC,OAAM,SAACC,EAAWC,GAChC,IAPWC,EAOLC,EAAaV,EAAOQ,GAE1B,GAAIrB,EAAewB,SAASD,GAC1B,OAV6BD,OAApBA,EAUMF,QAVoB,EAANE,EAAQG,MAAM,MAa7C,GAAmB,MAAfF,EAAoB,CACtB,IAAMG,EAASN,EAAUL,oBACzB,MAAkB,MAAXW,GAA6B,MAAXA,CAC3B,CAEA,OAAOH,IAAeH,CACxB,GAIJ,CAwBKO,CAAgBd,EAAQC,IACzBD,EAAOI,QAAUH,EAAcG,OAE/B,OAAOP,EAMT,IAAMkB,EA/Ba,SAACf,EAAgBgB,GAAuB,IAAAC,EAC3D,OAA4D,UAArDjB,EAAOkB,UAAUF,GAAYJ,MAAMtB,UAAkB,IAAA2B,OAAA,EAArDA,EAAwD,KAAM,EACvE,CA6BoBE,CAAanB,EAAQC,EAAcG,QAErD,MAAUP,GAAAA,OAAAA,UAAQkB,EACpB,EAEaK,EAAc,SAACC,EAAUC,GAAQ,QAC1CD,KAAOC,GAAKD,EAAEE,gBAAkBD,EAAEC,eAAiBF,EAAEG,aAAeF,EAAEE,UAAU,EAEvEC,EAAY,SAACJ,EAAUC,GAAQ,OAAKF,EAAYC,EAAGC,KAAMD,aAAC,EAADA,EAAGK,cAAcJ,aAAAA,EAAAA,EAAGI,UAAS,EAEtFC,EAAa,SAACN,EAAUC,GACnC,OAAID,GAAKC,EACAD,EAAIC,EAAID,EAAIC,EAGdD,GAAKC,CACd,EAEaM,EAAa,SAACP,EAAUC,GACnC,OAAID,GAAKC,EACAD,EAAIC,EAAID,EAAIC,EAGdD,GAAKC,CACd,EAEaO,EAAe,CAC1B,CAAEC,GAAI,EAAGC,MAAO,MAAOC,UAAW,WAClC,CAAEF,GAAI,EAAGC,MAAO,MAAOC,UAAW,YAClC,CAAEF,GAAI,EAAGC,MAAO,MAAOC,UAAW,SAClC,CAAEF,GAAI,EAAGC,MAAO,MAAOC,UAAW,SAClC,CAAEF,GAAI,EAAGC,MAAO,MAAOC,UAAW,OAClC,CAAEF,GAAI,EAAGC,MAAO,MAAOC,UAAW,QAClC,CAAEF,GAAI,EAAGC,MAAO,MAAOC,UAAW,QAClC,CAAEF,GAAI,EAAGC,MAAO,MAAOC,UAAW,UAClC,CAAEF,GAAI,EAAGC,MAAO,MAAOC,UAAW,aAClC,CAAEF,GAAI,GAAIC,MAAO,MAAOC,UAAW,WACnC,CAAEF,GAAI,GAAIC,MAAO,MAAOC,UAAW,YACnC,CAAEF,GAAI,GAAIC,MAAO,MAAOC,UAAW,aAKxBC,EAAsB,SAACrD,EAAYsD,GAAe,OAC7D,IAAIC,KACFvD,EAAK2C,cACL3C,EAAK4C,WACL5C,EAAK8C,WACLQ,aAAAA,EAAAA,EAAUE,aAAc,GACxBF,aAAAA,EAAAA,EAAUG,eAAgB,GAC1BH,aAAQ,EAARA,EAAUI,eAAgB,EAC3B"}
1
+ {"version":3,"file":"utils.js","sources":["../../../src/componentsV2/DatePicker/utils.tsx"],"sourcesContent":["export type DatePickerType = 'date' | 'dateTime' | 'month';\n\nexport type DatePickerValue<IsRange extends boolean | undefined = false> = IsRange extends\n | undefined\n | false\n ? Date | undefined\n : [Date, Date] | undefined;\n\nexport type DatePickerChangeHandler<IsRange extends boolean | undefined = false> = (\n value: DatePickerValue<IsRange>\n) => void;\n\n// startDate - initial state, no start date selected\n// endDate - start done, no end date selected\nexport type RangeSelectionStep = 'startDate' | 'endDate';\n\nexport const DefaultFormatByType: Record<DatePickerType, string> = {\n date: 'MMM DD YYYY',\n dateTime: 'MMM DD YYYY hh:mm A',\n month: 'MMMM YYYY',\n};\n\nexport const DefaultFormatByTypeRange: Record<DatePickerType, string> = {\n date: 'MM/DD/YYYY',\n dateTime: 'MM/DD/YYYY hh:mm A',\n month: 'MMM YYYY',\n};\n\nexport const getDefaultFormat = (type: DatePickerType, range?: boolean) => {\n const map = range ? DefaultFormatByTypeRange : DefaultFormatByType;\n return map[type];\n};\n\nconst NumericLetters = ['D', 'M', 'Y', 'h', 'm', 's', 'S'];\nconst AllLetters = [...NumericLetters, 'A'];\nconst GetSeparatorRegex = new RegExp(`^([^${AllLetters.join('')}]+)`, 'gi');\n\n// These formats should be composed only of `AllLetters` as placeholders only\nexport const InputAutocompleteFormats: Record<DatePickerType, string> = {\n month: 'MM/YYYY',\n date: 'MM/DD/YYYY',\n dateTime: 'MM/DD/YYYY hh:mm A',\n};\n\nexport const InputParseFormats: Record<DatePickerType, string[]> = {\n month: [InputAutocompleteFormats.month, 'MMMM YYYY', 'MMM YYYY'],\n date: [InputAutocompleteFormats.date, 'M/D/YYYY'],\n dateTime: [InputAutocompleteFormats.dateTime, 'M/D/YYYY hh:mm A'],\n};\n\nconst isDigit = (symbol?: string) => symbol?.match(/\\d/);\n\nconst isInFormatSoFar = (format: string, value: string) => {\n if (value.length <= format.length) {\n const valueArr = value.split('');\n\n return valueArr.every((valueChar, pos) => {\n const formatChar = format[pos];\n\n if (NumericLetters.includes(formatChar)) {\n return isDigit(valueChar);\n }\n\n if (formatChar === 'A') {\n const lcChar = valueChar.toLocaleLowerCase();\n return lcChar === 'a' || lcChar === 'p';\n }\n\n return formatChar === valueChar;\n });\n }\n\n return false;\n};\n\nconst getSeparator = (format: string, startIndex: number) => {\n return format.substring(startIndex).match(GetSeparatorRegex)?.[0] || '';\n};\n\nexport const autocompleteValue = ({\n value,\n type,\n range,\n prevValue,\n}: {\n type: DatePickerType;\n range?: boolean;\n value: string;\n prevValue: string;\n}) => {\n const formatPart = InputAutocompleteFormats[type];\n const format = range ? `${formatPart} - ${formatPart}` : formatPart;\n\n const preparedValue = value.toLocaleLowerCase().replace(/([ap])m/gi, '$1');\n\n if (\n value.length <= prevValue.length ||\n !isInFormatSoFar(format, preparedValue) ||\n format.length <= preparedValue.length\n ) {\n return value;\n }\n\n // Only autocomplete if user types something\n // Check if conforms to format so far\n // Adding separators if needed\n const separator = getSeparator(format, preparedValue.length);\n\n return `${value}${separator}`;\n};\n\nexport const isSameMonth = (a?: Date, b?: Date) =>\n !!a && !!b && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();\n\nexport const isSameDay = (a?: Date, b?: Date) => isSameMonth(a, b) && a?.getDate() === b?.getDate();\n\nexport const getMinDate = (a?: Date, b?: Date) => {\n if (a && b) {\n return a < b ? a : b;\n }\n\n return a || b;\n};\n\nexport const getMaxDate = (a?: Date, b?: Date) => {\n if (a && b) {\n return a > b ? a : b;\n }\n\n return a || b;\n};\n\nexport const MonthOptions = [\n { id: 1, title: 'Jan', fullTitle: 'January' },\n { id: 2, title: 'Feb', fullTitle: 'February' },\n { id: 3, title: 'Mar', fullTitle: 'March' },\n { id: 4, title: 'Apr', fullTitle: 'April' },\n { id: 5, title: 'May', fullTitle: 'May' },\n { id: 6, title: 'Jun', fullTitle: 'June' },\n { id: 7, title: 'Jul', fullTitle: 'July' },\n { id: 8, title: 'Aug', fullTitle: 'August' },\n { id: 9, title: 'Sep', fullTitle: 'September' },\n { id: 10, title: 'Oct', fullTitle: 'October' },\n { id: 11, title: 'Nov', fullTitle: 'November' },\n { id: 12, title: 'Dec', fullTitle: 'December' },\n];\n\nexport type DatePickerCalendarView = 'year' | 'month';\n\nexport const getDateWithSameTime = (date: Date, timeDate?: Date) =>\n new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n timeDate?.getHours() || 0,\n timeDate?.getMinutes() || 0,\n timeDate?.getSeconds() || 0\n );\n"],"names":["DefaultFormatByType","date","dateTime","month","DefaultFormatByTypeRange","getDefaultFormat","type","range","NumericLetters","AllLetters","concat","GetSeparatorRegex","RegExp","join","InputAutocompleteFormats","InputParseFormats","autocompleteValue","_ref","value","prevValue","formatPart","format","preparedValue","toLocaleLowerCase","replace","length","split","every","valueChar","pos","symbol","formatChar","includes","match","lcChar","isInFormatSoFar","separator","startIndex","_format$substring$mat","substring","getSeparator","isSameMonth","a","b","getFullYear","getMonth","isSameDay","getDate","getMinDate","getMaxDate","MonthOptions","id","title","fullTitle","getDateWithSameTime","timeDate","Date","getHours","getMinutes","getSeconds"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/Modal/Modal.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAe,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAM/D,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG;IAC3D,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,GAAG,kBAAkB,KAAK,IAAI,CAAC;IAC/E,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAuDF,eAAO,MAAM,KAAK,UAAW,UAAU,4CAOtC,CAAC"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/Modal/Modal.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAe,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAM/D,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG;IAC3D,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,GAAG,kBAAkB,KAAK,IAAI,CAAC;IAC/E,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAwDF,eAAO,MAAM,KAAK,UAAW,UAAU,4CAOtC,CAAC"}
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/defineProperty";import o from"@babel/runtime/helpers/objectWithoutProperties";import{Modal as r}from"@material-ui/core";import{useCallback as t}from"react";import n from"classnames";import{useDelayedDcFullscreenElemOpen as s}from"../../effects/useDelayedDcFullscreenElemOpen.js";import{useIsInsideDcFullscreenElem as c,IsInsideDcFullscreenElemProvider as i}from"../../components/DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js";import{useIsInsideIsolatedDcApp as p}from"../../components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider.js";import{ModalWindow as l}from"../ModalWindow/ModalWindow.js";import{MODAL_ROOT_CLASS as a}from"./constants.js";import m from"./Modal.scss.js";import{jsx as u}from"react/jsx-runtime";var f=["open","onClose","size","showCloseButton","closeOnBackdropClick","closeOnEscape"],d=["open"];function O(e,o){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);o&&(t=t.filter((function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable}))),r.push.apply(r,t)}return r}function b(o){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?O(Object(t),!0).forEach((function(r){e(o,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(t)):O(Object(t)).forEach((function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(t,e))}))}return o}var v=function(e){var s=e.open,c=e.onClose,i=e.size,p=void 0===i?"medium":i,d=e.showCloseButton,O=void 0===d||d,v=e.closeOnBackdropClick,j=void 0===v||v,C=e.closeOnEscape,y=void 0===C||C,D=o(e,f),P=t((function(e,o){c&&("backdropClick"===o&&j&&c("backdropClick"),"escapeKeyDown"===o&&y&&c("escapeKey"))}),[c,j,y]),h=t((function(){null==c||c("closeButtonClick")}),[c]);return u(r,{open:s,className:n(a,m.root),onClose:P,children:u(l,b(b({},D),{},{onClose:h,showCloseButton:O,size:p}))})},j=function(e){var r=e.open,t=o(e,d),n=s({isOpen:r},!0).delayedIsOpen;return u(i,{children:u(v,b({open:n},t))})},C=function(e){var o=p(),r=c();return u(o&&!r?j:v,b({},e))};export{C as Modal};
1
+ import e from"@babel/runtime/helpers/defineProperty";import o from"@babel/runtime/helpers/objectWithoutProperties";import{Modal as r}from"@material-ui/core";import{useCallback as t}from"react";import n from"classnames";import{useDelayedDcFullscreenElemOpen as s}from"../../effects/useDelayedDcFullscreenElemOpen.js";import{useIsInsideDcFullscreenElem as c,IsInsideDcFullscreenElemProvider as i}from"../../components/DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js";import{useIsInsideIsolatedDcApp as p}from"../../components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider.js";import{ModalWindow as l}from"../ModalWindow/ModalWindow.js";import{MODAL_ROOT_CLASS as a}from"./constants.js";import m from"./Modal.scss.js";import{jsx as u}from"react/jsx-runtime";var f=["open","onClose","size","showCloseButton","closeOnBackdropClick","closeOnEscape"],d=["open"];function O(e,o){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);o&&(t=t.filter((function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable}))),r.push.apply(r,t)}return r}function b(o){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?O(Object(t),!0).forEach((function(r){e(o,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(t)):O(Object(t)).forEach((function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(t,e))}))}return o}var v=function(e){var s=e.open,c=e.onClose,i=e.size,p=void 0===i?"medium":i,d=e.showCloseButton,O=void 0===d||d,v=e.closeOnBackdropClick,j=void 0===v||v,C=e.closeOnEscape,y=void 0===C||C,D=o(e,f),P=t((function(e,o){c&&("backdropClick"===o&&j&&c("backdropClick"),"escapeKeyDown"===o&&y&&c("escapeKey"))}),[c,j,y]),h=t((function(){null==c||c("closeButtonClick")}),[c]);return u(r,{open:s,className:n(a,m.root),onClose:P,disableEnforceFocus:!0,children:u(l,b(b({},D),{},{onClose:h,showCloseButton:O,size:p}))})},j=function(e){var r=e.open,t=o(e,d),n=s({isOpen:r},!0).delayedIsOpen;return u(i,{children:u(v,b({open:n},t))})},C=function(e){var o=p(),r=c();return u(o&&!r?j:v,b({},e))};export{C as Modal};
2
2
  //# sourceMappingURL=Modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../src/componentsV2/Modal/Modal.tsx"],"sourcesContent":["// TODO Move these hooks to better place so the imports won't be as hideous\nimport { Modal as MuiModal, ModalProps as MuiModalProps } from '@material-ui/core';\nimport { useCallback } from 'react';\nimport classNames from 'classnames';\n\nimport { useDelayedDcFullscreenElemOpen } from '../../effects/useDelayedDcFullscreenElemOpen';\nimport {\n IsInsideDcFullscreenElemProvider,\n useIsInsideDcFullscreenElem,\n} from '../../components/DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider';\nimport { useIsInsideIsolatedDcApp } from '../../components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport { ModalWindow, ModalWindowProps } from '../ModalWindow';\n\nimport { MODAL_ROOT_CLASS } from './constants';\n\nimport styles from './Modal.scss';\n\nexport type ModalProps = Omit<ModalWindowProps, 'onClose'> & {\n open: boolean;\n onClose?: (reason: 'backdropClick' | 'escapeKey' | 'closeButtonClick') => void;\n closeOnBackdropClick?: boolean;\n closeOnEscape?: boolean;\n};\n\nconst ActualModal = ({\n open,\n onClose,\n size = 'medium',\n showCloseButton = true,\n closeOnBackdropClick = true,\n closeOnEscape = true,\n ...restProps\n}: ModalProps) => {\n const modalCloseHandler = useCallback<Required<MuiModalProps>['onClose']>(\n (_event, reason) => {\n if (onClose) {\n if (reason === 'backdropClick' && closeOnBackdropClick) {\n onClose('backdropClick');\n }\n if (reason === 'escapeKeyDown' && closeOnEscape) {\n onClose('escapeKey');\n }\n }\n },\n [onClose, closeOnBackdropClick, closeOnEscape]\n );\n\n const closeButtonClickHandler = useCallback(() => {\n onClose?.('closeButtonClick');\n }, [onClose]);\n\n return (\n <MuiModal\n open={open}\n className={classNames(MODAL_ROOT_CLASS, styles.root)}\n onClose={modalCloseHandler}\n >\n <ModalWindow\n {...restProps}\n onClose={closeButtonClickHandler}\n showCloseButton={showCloseButton}\n size={size}\n />\n </MuiModal>\n );\n};\n\nconst DcModal = ({ open: openProp, ...otherProps }: ModalProps) => {\n const { delayedIsOpen } = useDelayedDcFullscreenElemOpen({ isOpen: openProp }, true);\n\n return (\n <IsInsideDcFullscreenElemProvider>\n <ActualModal open={delayedIsOpen} {...otherProps} />\n </IsInsideDcFullscreenElemProvider>\n );\n};\n\nexport const Modal = (props: ModalProps) => {\n const isInsideDcApp = useIsInsideIsolatedDcApp();\n const isInsideDcFullscreenElem = useIsInsideDcFullscreenElem();\n\n const ModalComponent = isInsideDcApp && !isInsideDcFullscreenElem ? DcModal : ActualModal;\n\n return <ModalComponent {...props} />;\n};\n"],"names":["ActualModal","_ref","open","onClose","_ref$size","size","_ref$showCloseButton","showCloseButton","_ref$closeOnBackdropC","closeOnBackdropClick","_ref$closeOnEscape","closeOnEscape","restProps","_objectWithoutProperties","_excluded","modalCloseHandler","useCallback","_event","reason","closeButtonClickHandler","_jsx","MuiModal","className","classNames","MODAL_ROOT_CLASS","styles","root","children","ModalWindow","_objectSpread","DcModal","_ref2","openProp","otherProps","_excluded2","delayedIsOpen","useDelayedDcFullscreenElemOpen","isOpen","IsInsideDcFullscreenElemProvider","Modal","props","isInsideDcApp","useIsInsideIsolatedDcApp","isInsideDcFullscreenElem","useIsInsideDcFullscreenElem"],"mappings":"q/CAwBA,IAAMA,EAAc,SAQFC,GAAA,IAPhBC,IAAAA,KACAC,IAAAA,QAAOC,EAAAH,EACPI,KAAAA,aAAO,SAAQD,EAAAE,EAAAL,EACfM,gBAAAA,cAAsBD,EAAAE,EAAAP,EACtBQ,qBAAAA,cAA2BD,EAAAE,EAAAT,EAC3BU,cAAAA,cAAoBD,EACjBE,EAASC,EAAAZ,EAAAa,GAENC,EAAoBC,GACxB,SAACC,EAAQC,GACHf,IACa,kBAAXe,GAA8BT,GAChCN,EAAQ,iBAEK,kBAAXe,GAA8BP,GAChCR,EAAQ,aAGb,GACD,CAACA,EAASM,EAAsBE,IAG5BQ,EAA0BH,GAAY,WAC1Cb,SAAAA,EAAU,mBACZ,GAAG,CAACA,IAEJ,OACEiB,EAACC,EAAQ,CACPnB,KAAMA,EACNoB,UAAWC,EAAWC,EAAkBC,EAAOC,MAC/CvB,QAASY,EAAkBY,SAE3BP,EAACQ,EAAWC,EAAAA,EAAA,GACNjB,GAAS,GAAA,CACbT,QAASgB,EACTZ,gBAAiBA,EACjBF,KAAMA,MAId,EAEMyB,EAAU,SAAmDC,GAAA,IAA1CC,IAAN9B,KAAmB+B,EAAUpB,EAAAkB,EAAAG,GACtCC,EAAkBC,EAA+B,CAAEC,OAAQL,IAAY,GAAvEG,cAER,OACEf,EAACkB,EAAgC,CAAAX,SAC/BP,EAACpB,EAAW6B,EAAA,CAAC3B,KAAMiC,GAAmBF,KAG5C,EAEaM,EAAQ,SAACC,GACpB,IAAMC,EAAgBC,IAChBC,EAA2BC,IAIjC,OAAOxB,EAFgBqB,IAAkBE,EAA2Bb,EAAU9B,EAEnDwC,EAAAA,CAAAA,EAAAA,GAC7B"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../src/componentsV2/Modal/Modal.tsx"],"sourcesContent":["// TODO Move these hooks to better place so the imports won't be as hideous\nimport { Modal as MuiModal, ModalProps as MuiModalProps } from '@material-ui/core';\nimport { useCallback } from 'react';\nimport classNames from 'classnames';\n\nimport { useDelayedDcFullscreenElemOpen } from '../../effects/useDelayedDcFullscreenElemOpen';\nimport {\n IsInsideDcFullscreenElemProvider,\n useIsInsideDcFullscreenElem,\n} from '../../components/DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider';\nimport { useIsInsideIsolatedDcApp } from '../../components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport { ModalWindow, ModalWindowProps } from '../ModalWindow';\n\nimport { MODAL_ROOT_CLASS } from './constants';\n\nimport styles from './Modal.scss';\n\nexport type ModalProps = Omit<ModalWindowProps, 'onClose'> & {\n open: boolean;\n onClose?: (reason: 'backdropClick' | 'escapeKey' | 'closeButtonClick') => void;\n closeOnBackdropClick?: boolean;\n closeOnEscape?: boolean;\n};\n\nconst ActualModal = ({\n open,\n onClose,\n size = 'medium',\n showCloseButton = true,\n closeOnBackdropClick = true,\n closeOnEscape = true,\n ...restProps\n}: ModalProps) => {\n const modalCloseHandler = useCallback<Required<MuiModalProps>['onClose']>(\n (_event, reason) => {\n if (onClose) {\n if (reason === 'backdropClick' && closeOnBackdropClick) {\n onClose('backdropClick');\n }\n if (reason === 'escapeKeyDown' && closeOnEscape) {\n onClose('escapeKey');\n }\n }\n },\n [onClose, closeOnBackdropClick, closeOnEscape]\n );\n\n const closeButtonClickHandler = useCallback(() => {\n onClose?.('closeButtonClick');\n }, [onClose]);\n\n return (\n <MuiModal\n open={open}\n className={classNames(MODAL_ROOT_CLASS, styles.root)}\n onClose={modalCloseHandler}\n disableEnforceFocus\n >\n <ModalWindow\n {...restProps}\n onClose={closeButtonClickHandler}\n showCloseButton={showCloseButton}\n size={size}\n />\n </MuiModal>\n );\n};\n\nconst DcModal = ({ open: openProp, ...otherProps }: ModalProps) => {\n const { delayedIsOpen } = useDelayedDcFullscreenElemOpen({ isOpen: openProp }, true);\n\n return (\n <IsInsideDcFullscreenElemProvider>\n <ActualModal open={delayedIsOpen} {...otherProps} />\n </IsInsideDcFullscreenElemProvider>\n );\n};\n\nexport const Modal = (props: ModalProps) => {\n const isInsideDcApp = useIsInsideIsolatedDcApp();\n const isInsideDcFullscreenElem = useIsInsideDcFullscreenElem();\n\n const ModalComponent = isInsideDcApp && !isInsideDcFullscreenElem ? DcModal : ActualModal;\n\n return <ModalComponent {...props} />;\n};\n"],"names":["ActualModal","_ref","open","onClose","_ref$size","size","_ref$showCloseButton","showCloseButton","_ref$closeOnBackdropC","closeOnBackdropClick","_ref$closeOnEscape","closeOnEscape","restProps","_objectWithoutProperties","_excluded","modalCloseHandler","useCallback","_event","reason","closeButtonClickHandler","_jsx","MuiModal","className","classNames","MODAL_ROOT_CLASS","styles","root","disableEnforceFocus","children","ModalWindow","_objectSpread","DcModal","_ref2","openProp","otherProps","_excluded2","delayedIsOpen","useDelayedDcFullscreenElemOpen","isOpen","IsInsideDcFullscreenElemProvider","Modal","props","isInsideDcApp","useIsInsideIsolatedDcApp","isInsideDcFullscreenElem","useIsInsideDcFullscreenElem"],"mappings":"q/CAwBA,IAAMA,EAAc,SAQFC,GAAA,IAPhBC,IAAAA,KACAC,IAAAA,QAAOC,EAAAH,EACPI,KAAAA,aAAO,SAAQD,EAAAE,EAAAL,EACfM,gBAAAA,cAAsBD,EAAAE,EAAAP,EACtBQ,qBAAAA,cAA2BD,EAAAE,EAAAT,EAC3BU,cAAAA,cAAoBD,EACjBE,EAASC,EAAAZ,EAAAa,GAENC,EAAoBC,GACxB,SAACC,EAAQC,GACHf,IACa,kBAAXe,GAA8BT,GAChCN,EAAQ,iBAEK,kBAAXe,GAA8BP,GAChCR,EAAQ,aAGb,GACD,CAACA,EAASM,EAAsBE,IAG5BQ,EAA0BH,GAAY,WAC1Cb,SAAAA,EAAU,mBACZ,GAAG,CAACA,IAEJ,OACEiB,EAACC,EAAQ,CACPnB,KAAMA,EACNoB,UAAWC,EAAWC,EAAkBC,EAAOC,MAC/CvB,QAASY,EACTY,qBAAmB,EAAAC,SAEnBR,EAACS,EAAWC,EAAAA,EAAA,GACNlB,GAAS,GAAA,CACbT,QAASgB,EACTZ,gBAAiBA,EACjBF,KAAMA,MAId,EAEM0B,EAAU,SAAmDC,GAAA,IAA1CC,IAAN/B,KAAmBgC,EAAUrB,EAAAmB,EAAAG,GACtCC,EAAkBC,EAA+B,CAAEC,OAAQL,IAAY,GAAvEG,cAER,OACEhB,EAACmB,EAAgC,CAAAX,SAC/BR,EAACpB,EAAW8B,EAAA,CAAC5B,KAAMkC,GAAmBF,KAG5C,EAEaM,EAAQ,SAACC,GACpB,IAAMC,EAAgBC,IAChBC,EAA2BC,IAIjC,OAAOzB,EAFgBsB,IAAkBE,EAA2Bb,EAAU/B,EAEnDyC,EAAAA,CAAAA,EAAAA,GAC7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"useInitialize.d.ts","sourceRoot":"","sources":["../../../../../src/componentsV2/TemplatesControl/Store/hooks/useInitialize.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,YAAY,EAAE,MAAM,aAAa,CAAC;AAgB5D,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,YAAY,WA4GnD,CAAC"}
1
+ {"version":3,"file":"useInitialize.d.ts","sourceRoot":"","sources":["../../../../../src/componentsV2/TemplatesControl/Store/hooks/useInitialize.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,YAAY,EAAE,MAAM,aAAa,CAAC;AAgB5D,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,YAAY,WAiHnD,CAAC"}
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/toConsumableArray";import r from"@babel/runtime/helpers/asyncToGenerator";import t from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import s from"@babel/runtime/regenerator";import{useState as i,useEffect as o}from"react";import{isEqual as a}from"lodash";import{dataFormatter as p,findTemplate as c,ensureTemplateSettings as m,processLoadedTemplates as l}from"../utils.js";import{perPage as u,baseFields as f}from"../Store.js";import{useGet as d}from"./sharedHooks.js";import{getAppSettingsTemplates as b}from"../../../../clients/jsonApi/index.js";import j from"../../../../permissions/usePermissions.js";import{PERMISSIONS as v}from"../../../../permissions/constants/index.js";import"../../../../permissions/withPermissionsHOC.js";import"../../../../permissions/ProvidePermissions.js";import"../../../../permissions/PermissionsContext.js";import"../../../../utils/index.js";import{showErrorNotification as g}from"../../../../utils/notificationToasts.js";function h(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function O(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?h(Object(n),!0).forEach((function(r){t(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}))}return e}var y=function(){var h=d("get"),y=d("set"),P=i(!1),x=n(P,2),w=x[0],k=x[1],T=i(),S=n(T,2),C=S[0],D=S[1],A={canPublish:v.userCreate},E=j(A);o((function(){var e=Object.entries(E).reduce((function(e,r){var s=n(r,2),i=s[0],o=s[1],a=o.loading,p=o.active;return{loaded:e.loaded&&!a,permissions:O(O({},e.permissions),{},t({},i,p))}}),{loaded:!0,permissions:{}}),r=e.loaded,s=e.permissions;r&&(y({permissions:s}),k(!0))}),[E,y]),o((function(){var e=function(){var e=r(s.mark((function e(){var r,t,n;return s.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,r=h(),t=r.appKey,e.t0=p,e.next=5,b(t,{per_page:u,fields:f});case 5:e.t1=e.sent,n=e.t0.deserialize.call(e.t0,e.t1),D(n),e.next=14;break;case 10:e.prev=10,e.t2=e.catch(0),g("Error loading app templates"),console.error(e.t2);case 14:case"end":return e.stop()}}),e,null,[[0,10]])})));return function(){return e.apply(this,arguments)}}();e()}),[h,y]),o((function(){var t=function(){var t=r(s.mark((function r(){var t,n,i,o,p,u,f,d,b,j,v;return s.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(w&&C){r.next=2;break}return r.abrupt("return");case 2:return t=h(),n=t.currentTemplateId,i=t.templateSettings,o=t.onChange,p=t.hooks.getDefaultTemplate,r.next=5,l(h,C);case 5:if(u=r.sent,y(u),f=c(h,n),!(d=(null==p?void 0:p([].concat(e(h().presetTemplates),e(h().loadedTemplates)),{currentTemplateId:n,templateSettings:i,event:"loadList"}))||f)){r.next=16;break}return r.next=12,m(h,y,d);case 12:b=r.sent,j=!f&&!!d,v=!a(b.settings,null==f?void 0:f.settings),(j||v)&&o&&(y({templateSettings:b.settings}),o(b,"initialLoad"));case 16:y({isInitialized:!0});case 17:case"end":return r.stop()}}),r)})));return function(){return t.apply(this,arguments)}}();t()}),[C,h,w,y])};export{y as useInitialize};
1
+ import e from"@babel/runtime/helpers/toConsumableArray";import r from"@babel/runtime/helpers/asyncToGenerator";import t from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import s from"@babel/runtime/regenerator";import{useState as i,useEffect as o}from"react";import{isEqual as a}from"lodash";import{dataFormatter as p,findTemplate as c,ensureTemplateSettings as m,processLoadedTemplates as l}from"../utils.js";import{perPage as u,baseFields as f}from"../Store.js";import{useGet as d}from"./sharedHooks.js";import{getAppSettingsTemplates as b}from"../../../../clients/jsonApi/index.js";import j from"../../../../permissions/usePermissions.js";import{PERMISSIONS as v}from"../../../../permissions/constants/index.js";import"../../../../permissions/withPermissionsHOC.js";import"../../../../permissions/ProvidePermissions.js";import"../../../../permissions/PermissionsContext.js";import"../../../../utils/index.js";import{showErrorNotification as g}from"../../../../utils/notificationToasts.js";function h(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function O(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?h(Object(n),!0).forEach((function(r){t(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}))}return e}var y=function(){var h=d("get"),y=d("set"),P=i(!1),x=n(P,2),w=x[0],k=x[1],T=i(),S=n(T,2),C=S[0],D=S[1],A={canPublish:v.userCreate},E=j(A);o((function(){var e=Object.entries(E).reduce((function(e,r){var s=n(r,2),i=s[0],o=s[1],a=o.loading,p=o.active;return{loaded:e.loaded&&!a,permissions:O(O({},e.permissions),{},t({},i,p))}}),{loaded:!0,permissions:{}}),r=e.loaded,s=e.permissions;r&&(a(h().permissions,s)||y({permissions:s}),k(!0))}),[E,h,y]),o((function(){var e=function(){var e=r(s.mark((function e(){var r,t,n;return s.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,r=h(),t=r.appKey,e.t0=p,e.next=5,b(t,{per_page:u,fields:f});case 5:e.t1=e.sent,n=e.t0.deserialize.call(e.t0,e.t1),D(n),e.next=14;break;case 10:e.prev=10,e.t2=e.catch(0),g("Error loading app templates"),console.error(e.t2);case 14:case"end":return e.stop()}}),e,null,[[0,10]])})));return function(){return e.apply(this,arguments)}}();e()}),[h,y]),o((function(){var t=function(){var t=r(s.mark((function r(){var t,n,i,o,p,u,f,d,b,j,v;return s.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(w&&C){r.next=2;break}return r.abrupt("return");case 2:return t=h(),n=t.currentTemplateId,i=t.templateSettings,o=t.onChange,p=t.hooks.getDefaultTemplate,r.next=5,l(h,C);case 5:if(u=r.sent,y(u),f=c(h,n),!(d=(null==p?void 0:p([].concat(e(h().presetTemplates),e(h().loadedTemplates)),{currentTemplateId:n,templateSettings:i,event:"loadList"}))||f)){r.next=16;break}return r.next=12,m(h,y,d);case 12:b=r.sent,j=!f&&!!d,v=!a(b.settings,null==f?void 0:f.settings),(j||v)&&o&&(y({templateSettings:b.settings}),o(b,"initialLoad"));case 16:y({isInitialized:!0});case 17:case"end":return r.stop()}}),r)})));return function(){return t.apply(this,arguments)}}();t()}),[C,h,w,y])};export{y as useInitialize};
2
2
  //# sourceMappingURL=useInitialize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInitialize.js","sources":["../../../../../src/componentsV2/TemplatesControl/Store/hooks/useInitialize.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { isEqual } from 'lodash';\n\nimport { Store, Template, TemplateData } from '../../types';\nimport {\n dataFormatter,\n ensureTemplateSettings,\n findTemplate,\n processLoadedTemplates,\n} from '../utils';\nimport { baseFields, perPage } from '../Store';\n\nimport { useGet } from './sharedHooks';\n\nimport { getAppSettingsTemplates } from '~/clients/jsonApi';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { StringifiedPermission } from '~/permissions/utils';\nimport { showErrorNotification } from '~/utils';\n\nexport const useInitialize = <T extends TemplateData>() => {\n const get = useGet<T, 'get'>('get');\n const set = useGet<T, 'set'>('set');\n\n const [permissionsLoaded, setPermissionsLoaded] = useState(false);\n const [baseLoadedTemplates, setBaseLoadedTemplates] = useState<Template<T>[]>();\n\n const permissionMap: Record<keyof Store['permissions'], StringifiedPermission> = {\n canPublish: PERMISSIONS.userCreate,\n };\n\n const permissionRecordsMap = usePermissions(permissionMap);\n\n // Permissions\n useEffect(() => {\n const { loaded, permissions } = Object.entries(permissionRecordsMap).reduce(\n (acc, [key, { loading, active }]) => ({\n loaded: acc.loaded && !loading,\n permissions: {\n ...acc.permissions,\n [key]: active,\n },\n }),\n {\n loaded: true,\n permissions: {},\n } as {\n loaded: boolean;\n permissions: Record<keyof Store['permissions'], boolean>;\n }\n );\n\n if (loaded) {\n set({ permissions });\n setPermissionsLoaded(true);\n }\n }, [permissionRecordsMap, set]);\n\n // Data load\n useEffect(() => {\n const loader = async () => {\n try {\n const { appKey } = get();\n\n const templates = dataFormatter.deserialize(\n await getAppSettingsTemplates(appKey, {\n per_page: perPage,\n fields: baseFields,\n })\n ) as Template<T>[];\n\n setBaseLoadedTemplates(templates);\n } catch (e) {\n showErrorNotification('Error loading app templates');\n console.error(e);\n }\n };\n\n loader();\n }, [get, set]);\n\n useEffect(() => {\n const onLoadedEverything = async () => {\n if (!permissionsLoaded || !baseLoadedTemplates) {\n return;\n }\n\n const {\n currentTemplateId,\n templateSettings,\n onChange,\n hooks: { getDefaultTemplate },\n } = get();\n\n const templatesData = await processLoadedTemplates(get, baseLoadedTemplates);\n set(templatesData);\n\n // Handling currently selected template\n const currentTemplate = findTemplate(get, currentTemplateId);\n\n const selectedTemplate =\n getDefaultTemplate?.([...get().presetTemplates, ...get().loadedTemplates], {\n currentTemplateId,\n templateSettings,\n event: 'loadList',\n }) || currentTemplate;\n\n // Case when data from app is outdated (other app instance)\n if (selectedTemplate) {\n const templateWithSettings = await ensureTemplateSettings(get, set, selectedTemplate);\n\n const noInitialSelectedTemplate = !currentTemplate && !!selectedTemplate;\n const isOwnOutdatedTemplate = !isEqual(\n templateWithSettings.settings,\n currentTemplate?.settings\n );\n\n if ((noInitialSelectedTemplate || isOwnOutdatedTemplate) && onChange) {\n set({ templateSettings: templateWithSettings.settings });\n onChange(templateWithSettings, 'initialLoad');\n }\n }\n\n set({ isInitialized: true });\n };\n\n onLoadedEverything();\n }, [baseLoadedTemplates, get, permissionsLoaded, set]);\n};\n"],"names":["useInitialize","get","useGet","set","useState","_useState2","_slicedToArray","_useState","permissionsLoaded","setPermissionsLoaded","_useState3","_useState4","baseLoadedTemplates","setBaseLoadedTemplates","permissionMap","canPublish","PERMISSIONS","userCreate","permissionRecordsMap","usePermissions","useEffect","Object","entries","reduce","acc","_ref","_ref2","key","_ref2$","loading","active","loaded","permissions","loader","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_get","appKey","templates","wrap","_context","prev","next","t0","dataFormatter","getAppSettingsTemplates","per_page","perPage","fields","baseFields","t1","sent","deserialize","call","t2","showErrorNotification","console","error","stop","apply","this","arguments","onLoadedEverything","_ref4","_callee2","_get2","currentTemplateId","templateSettings","onChange","getDefaultTemplate","templatesData","currentTemplate","selectedTemplate","templateWithSettings","noInitialSelectedTemplate","isOwnOutdatedTemplate","_context2","abrupt","hooks","processLoadedTemplates","findTemplate","concat","_toConsumableArray","presetTemplates","loadedTemplates","event","ensureTemplateSettings","isEqual","settings","isInitialized"],"mappings":"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"}
1
+ {"version":3,"file":"useInitialize.js","sources":["../../../../../src/componentsV2/TemplatesControl/Store/hooks/useInitialize.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { isEqual } from 'lodash';\n\nimport { Store, Template, TemplateData } from '../../types';\nimport {\n dataFormatter,\n ensureTemplateSettings,\n findTemplate,\n processLoadedTemplates,\n} from '../utils';\nimport { baseFields, perPage } from '../Store';\n\nimport { useGet } from './sharedHooks';\n\nimport { getAppSettingsTemplates } from '~/clients/jsonApi';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { StringifiedPermission } from '~/permissions/utils';\nimport { showErrorNotification } from '~/utils';\n\nexport const useInitialize = <T extends TemplateData>() => {\n const get = useGet<T, 'get'>('get');\n const set = useGet<T, 'set'>('set');\n\n const [permissionsLoaded, setPermissionsLoaded] = useState(false);\n const [baseLoadedTemplates, setBaseLoadedTemplates] = useState<Template<T>[]>();\n\n const permissionMap: Record<keyof Store['permissions'], StringifiedPermission> = {\n canPublish: PERMISSIONS.userCreate,\n };\n\n const permissionRecordsMap = usePermissions(permissionMap);\n\n // Permissions\n useEffect(() => {\n const { loaded, permissions } = Object.entries(permissionRecordsMap).reduce(\n (acc, [key, { loading, active }]) => ({\n loaded: acc.loaded && !loading,\n permissions: {\n ...acc.permissions,\n [key]: active,\n },\n }),\n {\n loaded: true,\n permissions: {},\n } as {\n loaded: boolean;\n permissions: Record<keyof Store['permissions'], boolean>;\n }\n );\n\n if (loaded) {\n // usePermissions returns a fresh object every render, so this effect re-runs on every\n // render; writing unconditionally notified the store's subscribers each time, which\n // re-rendered and re-ran the effect until React gave up.\n if (!isEqual(get().permissions, permissions)) {\n set({ permissions });\n }\n setPermissionsLoaded(true);\n }\n }, [permissionRecordsMap, get, set]);\n\n // Data load\n useEffect(() => {\n const loader = async () => {\n try {\n const { appKey } = get();\n\n const templates = dataFormatter.deserialize(\n await getAppSettingsTemplates(appKey, {\n per_page: perPage,\n fields: baseFields,\n })\n ) as Template<T>[];\n\n setBaseLoadedTemplates(templates);\n } catch (e) {\n showErrorNotification('Error loading app templates');\n console.error(e);\n }\n };\n\n loader();\n }, [get, set]);\n\n useEffect(() => {\n const onLoadedEverything = async () => {\n if (!permissionsLoaded || !baseLoadedTemplates) {\n return;\n }\n\n const {\n currentTemplateId,\n templateSettings,\n onChange,\n hooks: { getDefaultTemplate },\n } = get();\n\n const templatesData = await processLoadedTemplates(get, baseLoadedTemplates);\n set(templatesData);\n\n // Handling currently selected template\n const currentTemplate = findTemplate(get, currentTemplateId);\n\n const selectedTemplate =\n getDefaultTemplate?.([...get().presetTemplates, ...get().loadedTemplates], {\n currentTemplateId,\n templateSettings,\n event: 'loadList',\n }) || currentTemplate;\n\n // Case when data from app is outdated (other app instance)\n if (selectedTemplate) {\n const templateWithSettings = await ensureTemplateSettings(get, set, selectedTemplate);\n\n const noInitialSelectedTemplate = !currentTemplate && !!selectedTemplate;\n const isOwnOutdatedTemplate = !isEqual(\n templateWithSettings.settings,\n currentTemplate?.settings\n );\n\n if ((noInitialSelectedTemplate || isOwnOutdatedTemplate) && onChange) {\n set({ templateSettings: templateWithSettings.settings });\n onChange(templateWithSettings, 'initialLoad');\n }\n }\n\n set({ isInitialized: true });\n };\n\n onLoadedEverything();\n }, [baseLoadedTemplates, get, permissionsLoaded, set]);\n};\n"],"names":["useInitialize","get","useGet","set","useState","_useState2","_slicedToArray","_useState","permissionsLoaded","setPermissionsLoaded","_useState3","_useState4","baseLoadedTemplates","setBaseLoadedTemplates","permissionMap","canPublish","PERMISSIONS","userCreate","permissionRecordsMap","usePermissions","useEffect","Object","entries","reduce","acc","_ref","_ref2","key","_ref2$","loading","active","loaded","permissions","isEqual","loader","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_get","appKey","templates","wrap","_context","prev","next","t0","dataFormatter","getAppSettingsTemplates","per_page","perPage","fields","baseFields","t1","sent","deserialize","call","t2","showErrorNotification","console","error","stop","apply","this","arguments","onLoadedEverything","_ref4","_callee2","_get2","currentTemplateId","templateSettings","onChange","getDefaultTemplate","templatesData","currentTemplate","selectedTemplate","templateWithSettings","noInitialSelectedTemplate","isOwnOutdatedTemplate","_context2","abrupt","hooks","processLoadedTemplates","findTemplate","concat","_toConsumableArray","presetTemplates","loadedTemplates","event","ensureTemplateSettings","settings","isInitialized"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDevCenterApp.d.ts","sourceRoot":"","sources":["../../src/effects/useDevCenterApp.js"],"names":[],"mappings":"AASA,QAAA,MAAM,eAAe;;;;;;;;;CAiFpB,CAAC;eAEa,eAAe"}
1
+ {"version":3,"file":"useDevCenterApp.d.ts","sourceRoot":"","sources":["../../src/effects/useDevCenterApp.js"],"names":[],"mappings":"AASA,QAAA,MAAM,eAAe;;;;;;;;;CA0FpB,CAAC;eAEa,eAAe"}
@@ -1,2 +1,2 @@
1
- import n from"@babel/runtime/helpers/slicedToArray";import{useState as o,useEffect as t}from"react";import{getAppIdentifier as e}from"../utils/devcenter.js";var i={},r={},p=function(p){var u,l=p.CLIAppComponent,a=p.CLIAppSettings,c=p.app,s=p.version,d=c.app.app_key,f=process.env.REACT_APP_DEBUG_DC_APP_KEY===d,m=f?"http://127.0.0.1:3000/app.js":null==c||null===(u=c.package)||void 0===u?void 0:u.url,v=e({appKey:d,version:s,isLocalDebugMode:f}),A=o(!1),C=n(A,2),g=C[0],_=C[1],b=i[v],h=l||(null==b?void 0:b.component)||null,E=a||(null==b?void 0:b.settings)||null,w=function(){_(!1),(r[v]||[]).forEach((function(n){return n()})),delete r[v]};return t((function(){v in r&&(_(!0),r[v].push((function(){_(!1)})))}),[]),t((function(){if(!(!m||!v||h&&E||v in r)){if(!l&&!b||null!=b&&b.component){if(_(!0),!b||!b.script){var n=document.createElement("script");n.src=m,n.onload=function(){i[v]=window[v]&&window[v].default,w()},i[v]={component:null,script:n},setTimeout((function(){return document.body.appendChild(n)}))}var o=i[v].script;if(o.onload){var t=o.onload;o.onload=function(){t(),w()}}o.onabort=w,o.error=w}r[v]=[function(){return _(!1)}]}}),[m]),{isLoading:g,AppComponent:h,AppSettings:E}};export{p as default};
1
+ import n from"@babel/runtime/helpers/slicedToArray";import{useState as o,useEffect as r}from"react";import{getAppIdentifier as t}from"../utils/devcenter.js";var e={},i={},l=function(l){var p,u=l.CLIAppComponent,a=l.CLIAppSettings,c=l.app,s=l.version,d=c.app.app_key,f=process.env.REACT_APP_DEBUG_DC_APP_KEY===d,v=f?"http://127.0.0.1:3000/app.js":null==c||null===(p=c.package)||void 0===p?void 0:p.url,m=t({appKey:d,version:s,isLocalDebugMode:f}),A=o(null),C=n(A,2),g=C[0],_=C[1],b=e[m],h=u||(null==b?void 0:b.component)||null,E=a||(null==b?void 0:b.settings)||null,y=function(){_(null),(i[m]||[]).forEach((function(n){return n()})),delete i[m]};r((function(){m in i&&(_(m),i[m].push((function(){_(null)})))}),[m]),r((function(){if(!(!v||!m||h&&E||m in i)){if(!u&&!b||null!=b&&b.component){if(_(m),!b||!b.script){var n=document.createElement("script");n.src=v,n.onload=function(){var n;e[m]=(null===(n=window[m])||void 0===n?void 0:n.default)||{error:!0},y()},e[m]={component:null,script:n},setTimeout((function(){return document.body.appendChild(n)}))}var o=e[m].script;if(o.onload){var r=o.onload;o.onload=function(){r(),y()}}var t=function(){e[m]={error:!0},y()};o.onabort=t,o.onerror=t}i[m]=[function(){return _(null)}]}}),[m,v]);var L=g===m,P=!(!v||b&&!b.script);return{isLoading:!u&&(L||P),AppComponent:h,AppSettings:E}};export{l as default};
2
2
  //# sourceMappingURL=useDevCenterApp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDevCenterApp.js","sources":["../../src/effects/useDevCenterApp.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nimport { getAppIdentifier } from '~/utils/devcenter';\n\nconst COMPONENTS = {};\nconst FINISH_LOADING_HANLDERS_BY_APP_NAME = {};\n\nconst LOCAL_DEBUG_URL = 'http://127.0.0.1:3000/app.js';\n\nconst useDevCenterApp = ({ CLIAppComponent, CLIAppSettings, app, version }) => {\n const appKey = app.app.app_key;\n\n const isLocalDebugMode = process.env.REACT_APP_DEBUG_DC_APP_KEY === appKey;\n const url = isLocalDebugMode ? LOCAL_DEBUG_URL : app?.package?.url;\n\n const appName = getAppIdentifier({ appKey, version, isLocalDebugMode });\n const [isLoading, setIsLoading] = useState(false);\n\n const appSource = COMPONENTS[appName];\n const AppComponent = CLIAppComponent || appSource?.component || null;\n const AppSettings = CLIAppSettings || appSource?.settings || null;\n\n const finishLoading = () => {\n setIsLoading(false);\n (FINISH_LOADING_HANLDERS_BY_APP_NAME[appName] || []).forEach(handler => handler());\n delete FINISH_LOADING_HANLDERS_BY_APP_NAME[appName];\n };\n\n useEffect(() => {\n if (appName in FINISH_LOADING_HANLDERS_BY_APP_NAME) {\n setIsLoading(true);\n FINISH_LOADING_HANLDERS_BY_APP_NAME[appName].push(() => {\n setIsLoading(false);\n });\n }\n }, []);\n\n useEffect(() => {\n if (\n !url ||\n !appName ||\n (AppComponent && AppSettings) ||\n appName in FINISH_LOADING_HANLDERS_BY_APP_NAME\n )\n return;\n\n if ((!CLIAppComponent && !appSource) || appSource?.component) {\n setIsLoading(true);\n\n if (!appSource || !appSource.script) {\n const scriptFile = document.createElement('script');\n\n scriptFile.src = url;\n\n scriptFile.onload = () => {\n COMPONENTS[appName] = window[appName] && window[appName].default;\n finishLoading();\n };\n\n COMPONENTS[appName] = {\n component: null,\n script: scriptFile,\n };\n\n setTimeout(() => document.body.appendChild(scriptFile));\n }\n\n const { script } = COMPONENTS[appName];\n\n if (script.onload) {\n const loaderCallback = script.onload;\n script.onload = () => {\n loaderCallback();\n finishLoading();\n };\n }\n\n script.onabort = finishLoading;\n\n script.error = finishLoading;\n }\n\n FINISH_LOADING_HANLDERS_BY_APP_NAME[appName] = [() => setIsLoading(false)];\n }, [url]);\n\n return {\n isLoading,\n AppComponent,\n AppSettings,\n };\n};\n\nexport default useDevCenterApp;\n"],"names":["COMPONENTS","FINISH_LOADING_HANLDERS_BY_APP_NAME","useDevCenterApp","_ref","_app$package","CLIAppComponent","CLIAppSettings","app","version","appKey","app_key","isLocalDebugMode","process","env","REACT_APP_DEBUG_DC_APP_KEY","url","package","appName","getAppIdentifier","useState","_useState2","_slicedToArray","_useState","isLoading","setIsLoading","appSource","AppComponent","component","AppSettings","settings","finishLoading","forEach","handler","useEffect","push","script","scriptFile","document","createElement","src","onload","window","default","setTimeout","body","appendChild","loaderCallback","onabort","error"],"mappings":"6JAIA,IAAMA,EAAa,CAAA,EACbC,EAAsC,CAAA,EAItCC,EAAkB,SAAuDC,GAAA,IAAAC,EAApDC,IAAAA,gBAAiBC,IAAAA,eAAgBC,IAAAA,IAAKC,IAAAA,QACzDC,EAASF,EAAIA,IAAIG,QAEjBC,EAAmBC,QAAQC,IAAIC,6BAA+BL,EAC9DM,EAAMJ,EANU,+BAM2BJ,SAAY,UAAZA,EAAKS,eAAO,IAAAZ,SAAZA,EAAcW,IAEzDE,EAAUC,EAAiB,CAAET,OAAAA,EAAQD,QAAAA,EAASG,iBAAAA,IAClBQ,EAAAA,GAAS,GAAMC,EAAAC,EAAAC,EAAA,GAA1CC,EAASH,EAAA,GAAEI,EAAYJ,EAAA,GAExBK,EAAYzB,EAAWiB,GACvBS,EAAerB,IAAmBoB,aAAS,EAATA,EAAWE,YAAa,KAC1DC,EAActB,IAAkBmB,aAAS,EAATA,EAAWI,WAAY,KAEvDC,EAAgB,WACpBN,GAAa,IACZvB,EAAoCgB,IAAY,IAAIc,SAAQ,SAAAC,GAAO,OAAIA,cACjE/B,EAAoCgB,IA4D7C,OAzDAgB,GAAU,WACJhB,KAAWhB,IACbuB,GAAa,GACbvB,EAAoCgB,GAASiB,MAAK,WAChDV,GAAa,EACf,IAEH,GAAE,IAEHS,GAAU,WACR,MACGlB,IACAE,GACAS,GAAgBE,GACjBX,KAAWhB,GAJb,CAQA,IAAMI,IAAoBoB,GAAcA,SAAAA,EAAWE,UAAW,CAG5D,GAFAH,GAAa,IAERC,IAAcA,EAAUU,OAAQ,CACnC,IAAMC,EAAaC,SAASC,cAAc,UAE1CF,EAAWG,IAAMxB,EAEjBqB,EAAWI,OAAS,WAClBxC,EAAWiB,GAAWwB,OAAOxB,IAAYwB,OAAOxB,GAASyB,QACzDZ,KAGF9B,EAAWiB,GAAW,CACpBU,UAAW,KACXQ,OAAQC,GAGVO,YAAW,WAAA,OAAMN,SAASO,KAAKC,YAAYT,KAC7C,CAEA,IAAQD,EAAWnC,EAAWiB,GAAtBkB,OAER,GAAIA,EAAOK,OAAQ,CACjB,IAAMM,EAAiBX,EAAOK,OAC9BL,EAAOK,OAAS,WACdM,IACAhB,IAEJ,CAEAK,EAAOY,QAAUjB,EAEjBK,EAAOa,MAAQlB,CACjB,CAEA7B,EAAoCgB,GAAW,CAAC,WAAA,OAAMO,GAAa,IAtCjE,CAuCJ,GAAG,CAACT,IAEG,CACLQ,UAAAA,EACAG,aAAAA,EACAE,YAAAA,EAEJ"}
1
+ {"version":3,"file":"useDevCenterApp.js","sources":["../../src/effects/useDevCenterApp.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nimport { getAppIdentifier } from '~/utils/devcenter';\n\nconst COMPONENTS = {};\nconst FINISH_LOADING_HANLDERS_BY_APP_NAME = {};\n\nconst LOCAL_DEBUG_URL = 'http://127.0.0.1:3000/app.js';\n\nconst useDevCenterApp = ({ CLIAppComponent, CLIAppSettings, app, version }) => {\n const appKey = app.app.app_key;\n\n const isLocalDebugMode = process.env.REACT_APP_DEBUG_DC_APP_KEY === appKey;\n const url = isLocalDebugMode ? LOCAL_DEBUG_URL : app?.package?.url;\n\n const appName = getAppIdentifier({ appKey, version, isLocalDebugMode });\n const [loadingAppName, setLoadingAppName] = useState(null);\n\n const appSource = COMPONENTS[appName];\n const AppComponent = CLIAppComponent || appSource?.component || null;\n const AppSettings = CLIAppSettings || appSource?.settings || null;\n\n const finishLoading = () => {\n setLoadingAppName(null);\n (FINISH_LOADING_HANLDERS_BY_APP_NAME[appName] || []).forEach(handler => handler());\n delete FINISH_LOADING_HANLDERS_BY_APP_NAME[appName];\n };\n\n useEffect(() => {\n if (appName in FINISH_LOADING_HANLDERS_BY_APP_NAME) {\n setLoadingAppName(appName);\n FINISH_LOADING_HANLDERS_BY_APP_NAME[appName].push(() => {\n setLoadingAppName(null);\n });\n }\n }, [appName]);\n\n useEffect(() => {\n if (\n !url ||\n !appName ||\n (AppComponent && AppSettings) ||\n appName in FINISH_LOADING_HANLDERS_BY_APP_NAME\n )\n return;\n\n if ((!CLIAppComponent && !appSource) || appSource?.component) {\n setLoadingAppName(appName);\n\n if (!appSource || !appSource.script) {\n const scriptFile = document.createElement('script');\n\n scriptFile.src = url;\n\n scriptFile.onload = () => {\n COMPONENTS[appName] = window[appName]?.default || { error: true };\n finishLoading();\n };\n\n COMPONENTS[appName] = {\n component: null,\n script: scriptFile,\n };\n\n setTimeout(() => document.body.appendChild(scriptFile));\n }\n\n const { script } = COMPONENTS[appName];\n\n if (script.onload) {\n const loaderCallback = script.onload;\n script.onload = () => {\n loaderCallback();\n finishLoading();\n };\n }\n\n const failLoading = () => {\n COMPONENTS[appName] = { error: true };\n finishLoading();\n };\n\n script.onabort = failLoading;\n script.onerror = failLoading;\n }\n\n FINISH_LOADING_HANLDERS_BY_APP_NAME[appName] = [() => setLoadingAppName(null)];\n }, [appName, url]);\n\n const isCurrentAppLoading = loadingAppName === appName;\n // The bundle is pending before the loading effect runs and while its script is loading.\n const isAppBundlePending = !!url && (!appSource || !!appSource.script);\n const isLoading = !CLIAppComponent && (isCurrentAppLoading || isAppBundlePending);\n\n return {\n isLoading,\n AppComponent,\n AppSettings,\n };\n};\n\nexport default useDevCenterApp;\n"],"names":["COMPONENTS","FINISH_LOADING_HANLDERS_BY_APP_NAME","useDevCenterApp","_ref","_app$package","CLIAppComponent","CLIAppSettings","app","version","appKey","app_key","isLocalDebugMode","process","env","REACT_APP_DEBUG_DC_APP_KEY","url","package","appName","getAppIdentifier","useState","_useState2","_slicedToArray","_useState","loadingAppName","setLoadingAppName","appSource","AppComponent","component","AppSettings","settings","finishLoading","forEach","handler","useEffect","push","script","scriptFile","document","createElement","src","onload","_window$appName","window","default","error","setTimeout","body","appendChild","loaderCallback","failLoading","onabort","onerror","isCurrentAppLoading","isAppBundlePending","isLoading"],"mappings":"6JAIA,IAAMA,EAAa,CAAA,EACbC,EAAsC,CAAA,EAItCC,EAAkB,SAAuDC,GAAA,IAAAC,EAApDC,IAAAA,gBAAiBC,IAAAA,eAAgBC,IAAAA,IAAKC,IAAAA,QACzDC,EAASF,EAAIA,IAAIG,QAEjBC,EAAmBC,QAAQC,IAAIC,6BAA+BL,EAC9DM,EAAMJ,EANU,+BAM2BJ,SAAY,UAAZA,EAAKS,eAAO,IAAAZ,SAAZA,EAAcW,IAEzDE,EAAUC,EAAiB,CAAET,OAAAA,EAAQD,QAAAA,EAASG,iBAAAA,IACRQ,EAAAA,EAAS,MAAKC,EAAAC,EAAAC,EAAA,GAAnDC,EAAcH,EAAA,GAAEI,EAAiBJ,EAAA,GAElCK,EAAYzB,EAAWiB,GACvBS,EAAerB,IAAmBoB,aAAS,EAATA,EAAWE,YAAa,KAC1DC,EAActB,IAAkBmB,aAAS,EAATA,EAAWI,WAAY,KAEvDC,EAAgB,WACpBN,EAAkB,OACjBvB,EAAoCgB,IAAY,IAAIc,SAAQ,SAAAC,GAAO,OAAIA,cACjE/B,EAAoCgB,IAG7CgB,GAAU,WACJhB,KAAWhB,IACbuB,EAAkBP,GAClBhB,EAAoCgB,GAASiB,MAAK,WAChDV,EAAkB,KACpB,IAEJ,GAAG,CAACP,IAEJgB,GAAU,WACR,MACGlB,IACAE,GACAS,GAAgBE,GACjBX,KAAWhB,GAJb,CAQA,IAAMI,IAAoBoB,GAAcA,SAAAA,EAAWE,UAAW,CAG5D,GAFAH,EAAkBP,IAEbQ,IAAcA,EAAUU,OAAQ,CACnC,IAAMC,EAAaC,SAASC,cAAc,UAE1CF,EAAWG,IAAMxB,EAEjBqB,EAAWI,OAAS,WAAM,IAAAC,EACxBzC,EAAWiB,IAA0B,QAAfyB,EAAAA,OAAOzB,UAAQ,IAAAwB,OAAA,EAAfA,EAAiBE,UAAW,CAAEC,OAAO,GAC3Dd,KAGF9B,EAAWiB,GAAW,CACpBU,UAAW,KACXQ,OAAQC,GAGVS,YAAW,WAAA,OAAMR,SAASS,KAAKC,YAAYX,KAC7C,CAEA,IAAQD,EAAWnC,EAAWiB,GAAtBkB,OAER,GAAIA,EAAOK,OAAQ,CACjB,IAAMQ,EAAiBb,EAAOK,OAC9BL,EAAOK,OAAS,WACdQ,IACAlB,IAEJ,CAEA,IAAMmB,EAAc,WAClBjD,EAAWiB,GAAW,CAAE2B,OAAO,GAC/Bd,KAGFK,EAAOe,QAAUD,EACjBd,EAAOgB,QAAUF,CACnB,CAEAhD,EAAoCgB,GAAW,CAAC,WAAA,OAAMO,EAAkB,OA1CtE,CA2CJ,GAAG,CAACP,EAASF,IAEb,IAAMqC,EAAsB7B,IAAmBN,EAEzCoC,KAAuBtC,GAASU,IAAeA,EAAUU,QAG/D,MAAO,CACLmB,WAHiBjD,IAAoB+C,GAAuBC,GAI5D3B,aAAAA,EACAE,YAAAA,EAEJ"}