@galadrim/galadmin 0.0.74 → 0.0.78

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 (40) hide show
  1. package/dist/tsconfig.tsbuildinfo +1 -1
  2. package/dist/types/config.d.ts +3 -0
  3. package/package.json +1 -1
  4. package/src/front/build/asset-manifest.json +3 -3
  5. package/src/front/build/index.html +1 -1
  6. package/src/front/build/static/js/main.dcfa8eba.chunk.js +2 -0
  7. package/src/front/build/static/js/main.dcfa8eba.chunk.js.map +1 -0
  8. package/src/front/node_modules/.cache/.eslintcache +1 -1
  9. package/src/front/node_modules/.cache/babel-loader/88b26bbc9cf531475c494e9bc6aa1d43.json +1 -0
  10. package/src/front/node_modules/.cache/babel-loader/aa8b22e4a0727a957e357dffa4f4e310.json +1 -0
  11. package/src/front/node_modules/.cache/babel-loader/ea2c2ebc721648c438b40fb68ef65f04.json +1 -0
  12. package/src/front/node_modules/.cache/babel-loader/f4cb80e4316f8959fd9c2d589b91d8e5.json +1 -0
  13. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/04/36/44d9a15a091af35cefdab4826c5a5400e6d26fc819ed4cb47516dcfe1ea2b7a582ea3b3025b78095daabf7aa6997123e7078b81da14f7d3f24a2fd369463 +1 -0
  14. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/b4/70/5d5a681a15daa0f6bd282bf9588cec9426a194bf2f563282e6929c7e80137f0d3cfb3575c73a088055c2e87d7a449f34c1bff04125de36c20fc2d9cd3d2d +1 -0
  15. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/{7d/4a/f73f4ee84159809aa8ab73fc6eb14cf6b2df29433615f5fc66db39eaa8b7 → 0b/cd/2093db249c796a2c0240a6fa5ecd867338e2c6ee8f1590130373d205cc9e} +1 -1
  16. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/{85/32/ce21c9eaef2611fd4fb33689a361ba60bbae4c7f2eaf10a151709b9d4d08 → 52/1a/a70d5b65f7fc8d18db883c9b0a490d470f94b585e97a9989f8d764441b9f} +1 -1
  17. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/87/08/421190bfe6e50816e059da6c33526c9943732ef856ebd2752d0cbfb4a852 +1 -1
  18. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/93/40/1664ad7eaeaf568aa45393ab7f158f62d0407af4e89717f5a845397dd57f +1 -1
  19. package/src/front/node_modules/.package-lock.json +1 -1
  20. package/src/front/package-lock.json +1 -1
  21. package/src/front/src/components/panels/GalleryPanel.js +1 -1
  22. package/src/front/src/components/panels/TablePanel.js +1 -1
  23. package/src/front/src/pages/CreateRecord.js +1 -1
  24. package/src/front/src/pages/Records.js +1 -1
  25. package/src/types/config.ts +3 -0
  26. package/src/front/build/static/js/main.d0c40615.chunk.js +0 -2
  27. package/src/front/build/static/js/main.d0c40615.chunk.js.map +0 -1
  28. package/src/front/node_modules/.cache/babel-loader/1dcc78ab3af52e714586d619c8f1128f.json +0 -1
  29. package/src/front/node_modules/.cache/babel-loader/3fe8e136e2b1fd90b905cb6d33b5e699.json +0 -1
  30. package/src/front/node_modules/.cache/babel-loader/40f82d7c4495af82b6e682474a644bd6.json +0 -1
  31. package/src/front/node_modules/.cache/babel-loader/6d29194e9975f70d074bf162e23886ed.json +0 -1
  32. package/src/front/node_modules/.cache/babel-loader/7f01d0fdd2439a63a32759b5b6bac9dc.json +0 -1
  33. package/src/front/node_modules/.cache/babel-loader/8b2e3b7d832114bf8c399abc91f0bbc1.json +0 -1
  34. package/src/front/node_modules/.cache/babel-loader/97dd1359e23a17dccc8dff263bc8edba.json +0 -1
  35. package/src/front/node_modules/.cache/babel-loader/9d22770fb71fa58719881e4194d54dbf.json +0 -1
  36. package/src/front/node_modules/.cache/babel-loader/9e0702483ec7055257361ed86e1a9abb.json +0 -1
  37. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/76/89/e60c29e9d09fe2bfe4d64ee8814e0169d8a76a3fa08b32dee15d5ab454dfddd51c87de10c6b935c3b89ddd758a8b9105ba4ebd16a2e14cad9face454f5ce +0 -1
  38. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/82/fc/8df03373a80d4d89da5cdad8c280167829cff7b752ad71f51751f340f7fd0ae8ed0c60e608a41f7727e3e09de1ada900ebe5e213e4079167105c53293ed2 +0 -1
  39. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/9b/e3/9bf3e7b9b0100042d65d63130305494a8c49685e254d2405232da7938e1682459cbdf61b37be14e67b684e7b1f21499069eb0ba46a3c9c3717e216f1e04f +0 -1
  40. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/3b/6d/4bfed5b8d4522c713b88981d22cf3a01c8070de081205f08d72bde2b624d +0 -2
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import{useState,useEffect,useContext}from\"react\";import axios from\"axios\";import{useParams,Link}from\"react-router-dom\";import getFormattedValue from\"../utils/getFormattedValue\";import ActionsButton from\"../components/ActionsButton\";import BackButton from\"../components/BackButton\";import DownloadTablePanelButton from\"../components/DownloadTablePanelButton\";import TablePanel from\"../components/panels/TablePanel\";import GalleryPanel from\"../components/panels/GalleryPanel\";import MapPanel from\"../components/panels/MapPanel\";import{ConfigContext}from'../contexts/ConfigContext';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";export default(function(){var _view$columns;var config=useContext(ConfigContext);var _useParams=useParams(),viewIndex=_useParams.viewIndex,recordId=_useParams.recordId;var _useState=useState(null),_useState2=_slicedToArray(_useState,2),record=_useState2[0],setRecord=_useState2[1];var view=config.views[viewIndex];var filteredColumns=(_view$columns=view.columns)===null||_view$columns===void 0?void 0:_view$columns.filter(function(x){return!x.hideInTable&&!x.hidden;});useEffect(function(){axios.get(\"/record\",{params:{viewIndex:viewIndex,recordId:recordId}}).then(function(response){setRecord(response.data);});},[viewIndex,recordId]);return/*#__PURE__*/_jsxs(\"div\",{class:\"view backgroundBlue\",children:[/*#__PURE__*/_jsxs(\"div\",{class:\"viewHeader\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"viewTitle\",children:view.label}),/*#__PURE__*/_jsxs(\"div\",{class:\"viewHeaderActions\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"button adjacentButton prevButton\",children:\"\\u25C4\"}),/*#__PURE__*/_jsx(\"div\",{class:\"button adjacentButton nextButton\",children:\"\\u25BA\"}),/*#__PURE__*/_jsx(BackButton,{}),/*#__PURE__*/_jsx(ActionsButton,{viewIndex:viewIndex,record:record}),view.canEdit!==false?/*#__PURE__*/_jsx(Link,{to:\"/editRecord/\".concat(viewIndex,\"/\").concat(recordId),children:/*#__PURE__*/_jsx(\"div\",{class:\"button greenButton recordAction\",children:\"Modifier\"})}):null]})]}),/*#__PURE__*/_jsx(\"div\",{class:\"paddedView\",children:/*#__PURE__*/_jsxs(\"div\",{class:\"showContainer\",children:[/*#__PURE__*/_jsxs(\"div\",{class:\"panel detailsPanel\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"panelTitle\",children:\"D\\xE9tails\"}),record?filteredColumns.map(function(column,index){return/*#__PURE__*/_jsxs(\"div\",{class:\"showRecordField\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"formLabel\",children:column.label}),/*#__PURE__*/_jsx(\"div\",{class:\"formValue\",children:getFormattedValue(column,record,false)||\"-\"})]},index);}):null]}),view.recordViewPanels&&record?/*#__PURE__*/_jsx(\"div\",{class:\"recordViewPanels\",children:view.recordViewPanels.map(function(panel,index){return/*#__PURE__*/_jsxs(\"div\",{class:\"panel\",children:[/*#__PURE__*/_jsxs(\"div\",{class:\"panelHeader\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"viewTitle\",children:panel.label}),/*#__PURE__*/_jsxs(\"div\",{class:\"viewHeaderActions\",children:[panel.folded?/*#__PURE__*/_jsx(\"div\",{class:\"button smallButton unfoldPanel\",children:\"Afficher\"}):null,panel.canCreate?/*#__PURE__*/_jsx(Link,{to:\"/createRecord/\".concat(viewIndex,\"/\").concat(index,\"/\").concat(recordId),children:/*#__PURE__*/_jsx(\"div\",{class:\"plusButton\",children:/*#__PURE__*/_jsx(\"i\",{class:\"fa fa-plus\"})})}):null,panel.canDownload&&panel.type===\"table\"?/*#__PURE__*/_jsx(DownloadTablePanelButton,{record:record,panel:panel}):null]})]}),panel.type===\"table\"?/*#__PURE__*/_jsx(TablePanel,{record:record,panel:panel,view:view}):null,panel.type===\"gallery\"?/*#__PURE__*/_jsx(GalleryPanel,{record:record,panel:panel,view:view}):null,panel.type===\"map\"?/*#__PURE__*/_jsx(MapPanel,{record:record,panel:panel,view:view}):null]},index);})}):null]})})]});});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/pages/Record.js"],"names":["useState","useEffect","useContext","axios","useParams","Link","getFormattedValue","ActionsButton","BackButton","DownloadTablePanelButton","TablePanel","GalleryPanel","MapPanel","ConfigContext","config","viewIndex","recordId","record","setRecord","view","views","filteredColumns","columns","filter","x","hideInTable","hidden","get","params","then","response","data","label","canEdit","map","column","index","recordViewPanels","panel","folded","canCreate","canDownload","type"],"mappings":"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","sourcesContent":["import { useState, useEffect, useContext } from \"react\"\nimport axios from \"axios\";\nimport {\n useParams,\n Link,\n} from \"react-router-dom\";\nimport getFormattedValue from \"../utils/getFormattedValue\"\nimport ActionsButton from \"../components/ActionsButton\"\nimport BackButton from \"../components/BackButton\"\nimport DownloadTablePanelButton from \"../components/DownloadTablePanelButton\"\nimport TablePanel from \"../components/panels/TablePanel\"\nimport GalleryPanel from \"../components/panels/GalleryPanel\"\nimport MapPanel from \"../components/panels/MapPanel\"\nimport { ConfigContext } from '../contexts/ConfigContext'\n\nexport default () => {\n const config = useContext(ConfigContext)\n const { viewIndex, recordId } = useParams();\n const [record, setRecord] = useState(null);\n\n const view = config.views[viewIndex]\n const filteredColumns = view.columns?.filter(x => !x.hideInTable && !x.hidden)\n\n useEffect(() => {\n axios.get(\"/record\", {\n params: {\n viewIndex,\n recordId\n }\n }).then((response) => {\n setRecord(response.data);\n });\n }, [viewIndex, recordId]);\n\n return (\n <div class=\"view backgroundBlue\">\n <div class=\"viewHeader\">\n <div class=\"viewTitle\">{view.label}</div>\n <div class=\"viewHeaderActions\">\n <div class=\"button adjacentButton prevButton\">&#9668;</div>\n <div class=\"button adjacentButton nextButton\">&#9658;</div>\n <BackButton />\n <ActionsButton viewIndex={viewIndex} record={record} />\n {view.canEdit !== false ? (\n <Link to={`/editRecord/${viewIndex}/${recordId}`}>\n <div class=\"button greenButton recordAction\">Modifier</div>\n </Link>\n ) : null}\n </div>\n </div>\n <div class=\"paddedView\">\n <div class=\"showContainer\">\n <div class='panel detailsPanel'>\n <div class='panelTitle'>Détails</div>\n {record ?\n filteredColumns.map((column, index) => (\n <div class='showRecordField' key={index}>\n <div class='formLabel'>{column.label}</div>\n <div class='formValue'>{getFormattedValue(column, record, false) || \"-\"}</div>\n </div>\n ))\n : null}\n </div>\n {view.recordViewPanels && record ? (\n <div class='recordViewPanels'>\n {view.recordViewPanels.map((panel, index) => (\n <div class='panel' key={index}>\n <div class='panelHeader'>\n <div class='viewTitle'>{panel.label}</div>\n <div class='viewHeaderActions'>\n {panel.folded ? <div class='button smallButton unfoldPanel'>Afficher</div> : null}\n {panel.canCreate ? <Link to={`/createRecord/${viewIndex}/${index}/${recordId}`}><div class='plusButton'><i class='fa fa-plus'></i></div></Link> : null}\n {panel.canDownload && panel.type === \"table\" ? <DownloadTablePanelButton record={record} panel={panel} /> : null}\n </div>\n </div>\n {panel.type === \"table\" ? <TablePanel record={record} panel={panel} view={view} /> : null}\n {panel.type === \"gallery\" ? <GalleryPanel record={record} panel={panel} view={view} /> : null}\n {panel.type === \"map\" ? <MapPanel record={record} panel={panel} view={view} /> : null}\n </div>\n ))}\n </div>\n ) : null}\n </div>\n </div>\n </div>\n )\n}\n"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import evalExpression from\"./evalExpression\";import{jsx as _jsx}from\"react/jsx-runtime\";export default(function(column,record,onTable){if(column.showAsPicture){var imageUrl=column.baseUrl+record[column.pathField];return record[column.pathField]?/*#__PURE__*/_jsx(\"a\",{href:imageUrl,target:\"_blank\",children:/*#__PURE__*/_jsx(\"img\",{src:\"https://res.cloudinary.com/forest2/image/fetch/\".concat(onTable?\"w_60,h_30\":\"w_300,h_150\",\",c_fit/\").concat(imageUrl)})}):null;}else if(column.formatValue){return/*#__PURE__*/_jsx(\"div\",{dangerouslySetInnerHTML:{__html:record[\"__formatValue-\".concat(column.__id__,\"__\")]}});}else if(column.formattedValue){return/*#__PURE__*/_jsx(\"div\",{children:evalExpression(column.formattedValue,record)});}else if(column.action){if(column.actionDisplayCondition){var isDisplaying=evalExpression(column.actionDisplayCondition,record);if(!isDisplaying)return\"\";}var data=JSON.parse(JSON.stringify(column.data));for(var key in data){data[key]=evalExpression(data[key],record);}return/*#__PURE__*/_jsx(\"div\",{class:\"actionButton\",\"data-route\":\"\\\" + column.route + \\\"\",\"data-data\":\"\\\" + JSON.stringify(data) + \\\"\",children:column.action});}else if(column.dataType===\"tinyint\"){return/*#__PURE__*/_jsx(\"div\",{children:record[column.name]===1?\"Oui\":\"Non\"});}else if(column.dataType===\"color\"){return/*#__PURE__*/_jsx(\"div\",{class:\"colorPreview\",style:{backgroundColor:record[column.name]}});}else if(column.dataType===\"richText\"){return/*#__PURE__*/_jsx(\"div\",{dangerouslySetInnerHTML:{__html:record[column.htmlField]}});}else{return/*#__PURE__*/_jsx(\"div\",{children:record[column.name]});}});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/utils/getFormattedValue.js"],"names":["evalExpression","column","record","onTable","showAsPicture","imageUrl","baseUrl","pathField","formatValue","__html","__id__","formattedValue","action","actionDisplayCondition","isDisplaying","data","JSON","parse","stringify","key","dataType","name","backgroundColor","htmlField"],"mappings":"AAAA,MAAOA,CAAAA,cAAP,KAA2B,kBAA3B,C,2CAEA,eAAe,SAACC,MAAD,CAASC,MAAT,CAAiBC,OAAjB,CAA6B,CACxC,GAAIF,MAAM,CAACG,aAAX,CAA0B,CACtB,GAAMC,CAAAA,QAAQ,CAAGJ,MAAM,CAACK,OAAP,CAAiBJ,MAAM,CAACD,MAAM,CAACM,SAAR,CAAxC,CACA,MAAOL,CAAAA,MAAM,CAACD,MAAM,CAACM,SAAR,CAAN,cACH,UAAG,IAAI,CAAEF,QAAT,CAAmB,MAAM,CAAC,QAA1B,uBACI,YAAK,GAAG,0DAAoDF,OAAO,CAAG,WAAH,CAAiB,aAA5E,mBAAmGE,QAAnG,CAAR,EADJ,EADG,CAIH,IAJJ,CAKH,CAPD,IAOO,IAAIJ,MAAM,CAACO,WAAX,CAAwB,CAC3B,mBAAO,YAAK,uBAAuB,CAAE,CAAEC,MAAM,CAAEP,MAAM,yBAAkBD,MAAM,CAACS,MAAzB,OAAhB,CAA9B,EAAP,CACH,CAFM,IAEA,IAAIT,MAAM,CAACU,cAAX,CAA2B,CAC9B,mBAAO,qBAAMX,cAAc,CAACC,MAAM,CAACU,cAAR,CAAwBT,MAAxB,CAApB,EAAP,CACH,CAFM,IAEA,IAAID,MAAM,CAACW,MAAX,CAAmB,CACtB,GAAIX,MAAM,CAACY,sBAAX,CAAmC,CAC/B,GAAIC,CAAAA,YAAY,CAAGd,cAAc,CAACC,MAAM,CAACY,sBAAR,CAAgCX,MAAhC,CAAjC,CACA,GAAI,CAACY,YAAL,CACI,MAAO,EAAP,CACP,CACD,GAAIC,CAAAA,IAAI,CAAGC,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAejB,MAAM,CAACc,IAAtB,CAAX,CAAX,CACA,IAAK,GAAII,CAAAA,GAAT,GAAgBJ,CAAAA,IAAhB,CAAsB,CAClBA,IAAI,CAACI,GAAD,CAAJ,CAAYnB,cAAc,CAACe,IAAI,CAACI,GAAD,CAAL,CAAYjB,MAAZ,CAA1B,CACH,CACD,mBACI,YAAK,KAAK,CAAC,cAAX,CAA0B,aAAW,wBAArC,CAA4D,YAAU,gCAAtE,UAAsGD,MAAM,CAACW,MAA7G,EADJ,CAGH,CAbM,IAaA,IAAIX,MAAM,CAACmB,QAAP,GAAoB,SAAxB,CAAmC,CACtC,mBAAO,qBAAMlB,MAAM,CAACD,MAAM,CAACoB,IAAR,CAAN,GAAwB,CAAxB,CAA4B,KAA5B,CAAoC,KAA1C,EAAP,CACH,CAFM,IAEA,IAAIpB,MAAM,CAACmB,QAAP,GAAoB,OAAxB,CAAiC,CACpC,mBAAO,YAAK,KAAK,CAAC,cAAX,CAA0B,KAAK,CAAE,CAAEE,eAAe,CAAEpB,MAAM,CAACD,MAAM,CAACoB,IAAR,CAAzB,CAAjC,EAAP,CACH,CAFM,IAEA,IAAIpB,MAAM,CAACmB,QAAP,GAAoB,UAAxB,CAAoC,CACvC,mBAAO,YAAK,uBAAuB,CAAE,CAAEX,MAAM,CAAEP,MAAM,CAACD,MAAM,CAACsB,SAAR,CAAhB,CAA9B,EAAP,CACH,CAFM,IAEA,CACH,mBAAO,qBAAMrB,MAAM,CAACD,MAAM,CAACoB,IAAR,CAAZ,EAAP,CACH,CACJ,CAlCD","sourcesContent":["import evalExpression from \"./evalExpression\"\n\nexport default (column, record, onTable) => {\n if (column.showAsPicture) {\n const imageUrl = column.baseUrl + record[column.pathField];\n return record[column.pathField] ? (\n <a href={imageUrl} target='_blank'>\n <img src={`https://res.cloudinary.com/forest2/image/fetch/${onTable ? \"w_60,h_30\" : \"w_300,h_150\"},c_fit/${imageUrl}`} />\n </a>\n ) : null\n } else if (column.formatValue) {\n return <div dangerouslySetInnerHTML={{ __html: record[`__formatValue-${column.__id__}__`] }} />\n } else if (column.formattedValue) {\n return <div>{evalExpression(column.formattedValue, record)}</div>\n } else if (column.action) {\n if (column.actionDisplayCondition) {\n let isDisplaying = evalExpression(column.actionDisplayCondition, record)\n if (!isDisplaying)\n return \"\";\n }\n var data = JSON.parse(JSON.stringify(column.data));\n for (var key in data) {\n data[key] = evalExpression(data[key], record)\n }\n return (\n <div class='actionButton' data-route='\" + column.route + \"' data-data='\" + JSON.stringify(data) + \"'>{column.action}</div>\n )\n } else if (column.dataType === \"tinyint\") {\n return <div>{record[column.name] === 1 ? \"Oui\" : \"Non\"}</div>\n } else if (column.dataType === \"color\") {\n return <div class='colorPreview' style={{ backgroundColor: record[column.name] }}></div>\n } else if (column.dataType === \"richText\") {\n return <div dangerouslySetInnerHTML={{ __html: record[column.htmlField] }} />\n } else {\n return <div>{record[column.name]}</div>\n }\n}"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _objectSpread from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2\";import _regeneratorRuntime from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";import _asyncToGenerator from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import _createForOfIteratorHelper from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";import{useContext,useRef,useState}from\"react\";import{useParams,useHistory}from\"react-router-dom\";import axios from\"axios\";import Input from\"../components/Input\";import LabelTooltip from\"../components/LabelTooltip\";import{ConfigContext}from'../contexts/ConfigContext';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";export default(function(){var config=useContext(ConfigContext);var _useParams=useParams(),viewIndex=_useParams.viewIndex,panelIndex=_useParams.panelIndex,recordId=_useParams.recordId;var history=useHistory();var view=config.views[viewIndex];var panel=panelIndex?view.recordViewPanels[panelIndex]:null;var filteredColumns=panel?panel.createConfig.columns:view.columns.filter(function(column){return column.dataType&&(column.canEditOnCreation===true||column.canEdit!==false)&&!column.hidden;});var initialData={};var _iterator=_createForOfIteratorHelper(filteredColumns),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var column=_step.value;if(column.dataType===\"tinyint\"){initialData[column.name]=column.optional?\"NULL\":\"0\";}else if(column.dataType===\"select\"&&Array.isArray(column.options)){initialData[column.name]=column.options[0];}else if(column.dataType===\"select\"){initialData[column.name]=Object.keys(column.options)[0];}if(column.defaultValue){initialData[column.name]=column.defaultValue;}}}catch(err){_iterator.e(err);}finally{_iterator.f();}var data=useRef(initialData);var _useState=useState(false),_useState2=_slicedToArray(_useState,2),isCreating=_useState2[0],setIsCreating=_useState2[1];var createRecord=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var key,response;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:for(key in view.createFilters){data.current[key]=view.createFilters[key];}setIsCreating(true);_context.prev=2;_context.next=5;return axios.post(\"/createRecord\",{viewIndex:viewIndex,panelIndex:panelIndex,recordId:recordId,data:data.current});case 5:response=_context.sent;setIsCreating(false);if(recordId){// Create from panel view\nhistory.push(\"/record/\".concat(viewIndex,\"/\").concat(recordId));}else if(view.createConfig.redirectToCreatedItems){history.push(\"/record/\".concat(viewIndex,\"/\").concat(response.data.id));}else{history.push(\"/records/\".concat(viewIndex));}_context.next=14;break;case 10:_context.prev=10;_context.t0=_context[\"catch\"](2);if(_context.t0.response.responseText){window.swal({title:\"Erreur\",text:_context.t0.response.responseText,dangerMode:true});}setIsCreating(false);case 14:case\"end\":return _context.stop();}}},_callee,null,[[2,10]]);}));return function createRecord(){return _ref.apply(this,arguments);};}();return/*#__PURE__*/_jsxs(\"div\",{class:\"view\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"viewHeader\",children:/*#__PURE__*/_jsx(\"div\",{class:\"viewTitle\",children:panel?panel.createConfig.label:\"Cr\\xE9er \".concat(view.aNewSingular)})}),/*#__PURE__*/_jsxs(\"div\",{class:\"paddedView\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"form\",children:filteredColumns.map(function(column,index){return/*#__PURE__*/_jsxs(\"div\",{class:\"formElement\",children:[/*#__PURE__*/_jsxs(\"div\",{class:\"formLabel\",children:[column.label,column.labelTooltip?/*#__PURE__*/_jsx(LabelTooltip,{text:column.labelTooltip}):null]}),/*#__PURE__*/_jsx(\"div\",{class:\"formInput\",children:/*#__PURE__*/_jsx(Input,{column:column,onChange:function onChange(newValues){data.current=_objectSpread(_objectSpread({},data.current),newValues);}})})]},index);})}),/*#__PURE__*/_jsx(\"div\",{class:\"button greenButton \".concat(isCreating?\"loading\":\"\"),onClick:createRecord,children:isCreating?\"Sauvegarde en cours...\":\"Créer\"}),/*#__PURE__*/_jsx(\"div\",{class:\"button\",onClick:function onClick(){return history.goBack();},children:\"Annuler\"})]})]});});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/pages/CreateRecord.js"],"names":["useContext","useRef","useState","useParams","useHistory","axios","Input","LabelTooltip","ConfigContext","config","viewIndex","panelIndex","recordId","history","view","views","panel","recordViewPanels","filteredColumns","createConfig","columns","filter","column","dataType","canEditOnCreation","canEdit","hidden","initialData","name","optional","Array","isArray","options","Object","keys","defaultValue","data","isCreating","setIsCreating","createRecord","key","createFilters","current","post","response","push","redirectToCreatedItems","id","responseText","window","swal","title","text","dangerMode","label","aNewSingular","map","index","labelTooltip","newValues","goBack"],"mappings":"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","sourcesContent":["import { useContext, useRef, useState } from \"react\";\nimport {\n useParams,\n useHistory\n} from \"react-router-dom\";\nimport axios from \"axios\";\nimport Input from \"../components/Input\"\nimport LabelTooltip from \"../components/LabelTooltip\"\nimport { ConfigContext } from '../contexts/ConfigContext'\n\nexport default () => {\n const config = useContext(ConfigContext)\n const { viewIndex, panelIndex, recordId } = useParams();\n const history = useHistory();\n const view = config.views[viewIndex];\n const panel = panelIndex ? view.recordViewPanels[panelIndex] : null;\n const filteredColumns = panel ? panel.createConfig.columns : view.columns.filter(\n column => column.dataType &&\n (column.canEditOnCreation === true || column.canEdit !== false)\n && !column.hidden\n )\n\n const initialData = {}\n for (const column of filteredColumns) {\n if (column.dataType === \"tinyint\") {\n initialData[column.name] = column.optional ? \"NULL\" : \"0\"\n } else if (column.dataType === \"select\" && Array.isArray(column.options)) {\n initialData[column.name] = column.options[0]\n } else if (column.dataType === \"select\") {\n initialData[column.name] = Object.keys(column.options)[0]\n }\n if (column.defaultValue) {\n initialData[column.name] = column.defaultValue\n }\n }\n const data = useRef(initialData)\n const [isCreating, setIsCreating] = useState(false)\n\n const createRecord = async () => {\n for (const key in view.createFilters) {\n data.current[key] = view.createFilters[key]\n }\n setIsCreating(true)\n try {\n const response = await axios.post(\"/createRecord\", {\n viewIndex,\n panelIndex,\n recordId,\n data: data.current\n })\n setIsCreating(false)\n if (recordId) { // Create from panel view\n history.push(`/record/${viewIndex}/${recordId}`)\n } else if (view.createConfig.redirectToCreatedItems) {\n history.push(`/record/${viewIndex}/${response.data.id}`)\n } else {\n history.push(`/records/${viewIndex}`)\n }\n } catch (error) {\n if (error.response.responseText) {\n window.swal({\n title: \"Erreur\",\n text: error.response.responseText,\n dangerMode: true\n })\n }\n setIsCreating(false)\n }\n }\n\n return (\n <div class=\"view\">\n <div class=\"viewHeader\">\n <div class=\"viewTitle\">{panel ? panel.createConfig.label : `Créer ${view.aNewSingular}`}</div>\n </div>\n <div class=\"paddedView\">\n <div class=\"form\">\n {filteredColumns.map((column, index) => {\n return (\n <div class='formElement' key={index}>\n <div class='formLabel'>\n {column.label}\n {column.labelTooltip ? <LabelTooltip text={column.labelTooltip} /> : null}\n </div>\n <div class='formInput'>\n <Input\n column={column}\n onChange={(newValues) => { data.current = { ...data.current, ...newValues } }}\n />\n </div>\n </div>\n )\n })}\n </div>\n <div class={`button greenButton ${isCreating ? \"loading\" : \"\"}`} onClick={createRecord}>{isCreating ? \"Sauvegarde en cours...\" : \"Créer\"}</div>\n <div class=\"button\" onClick={() => history.goBack()}>Annuler</div>\n </div>\n </div>\n )\n}"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _regeneratorRuntime from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";import _asyncToGenerator from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import{useState,useEffect,useContext}from\"react\";import axios from\"axios\";import evalExpression from\"../../utils/evalExpression\";import{useHistory,useParams}from\"react-router-dom\";import{ConfigContext}from\"../../contexts/ConfigContext\";import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";export default(function(_ref){var panel=_ref.panel,record=_ref.record,view=_ref.view;var _useState=useState(null),_useState2=_slicedToArray(_useState,2),results=_useState2[0],setResults=_useState2[1];var history=useHistory();var _useParams=useParams(),viewIndex=_useParams.viewIndex;var config=useContext(ConfigContext);useEffect(function(){refreshData();},[]);var refreshData=function refreshData(){axios.get(\"/customQuery\",{params:{query:panel.query||evalExpression(panel.formattedQuery,record),primaryValue:record[view.primaryId]}}).then(function(response){setResults(response.data);});};var deleteRow=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(row){var willDelete;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.next=2;return window.swal({title:\"Êtes-vous sûr ?\",text:\"Une fois la suppression confirmée, il ne sera pas possible de revenir en arrière.\",buttons:[\"Annuler\",\"Oui\"],dangerMode:true});case 2:willDelete=_context.sent;if(!willDelete){_context.next=13;break;}_context.prev=4;_context.next=7;return axios.post(\"/deleteRecordFromPanel\",{viewIndex:viewIndex,panelId:panel.__id__,primaryValue:row[panel.primaryId]});case 7:refreshData();_context.next=13;break;case 10:_context.prev=10;_context.t0=_context[\"catch\"](4);window.swal({title:\"Erreur\",text:\"Suppression impossible\",dangerMode:true});case 13:case\"end\":return _context.stop();}}},_callee,null,[[4,10]]);}));return function deleteRow(_x){return _ref2.apply(this,arguments);};}();return/*#__PURE__*/_jsx(\"div\",{children:(results===null||results===void 0?void 0:results.length)>0?/*#__PURE__*/_jsxs(\"table\",{class:\"table panelTable \".concat(panel.folded?\"folded\":\"\"),children:[/*#__PURE__*/_jsx(\"thead\",{children:/*#__PURE__*/_jsxs(\"tr\",{children:[Object.keys(results[0]).filter(function(key){return key!==panel.primaryId;}).map(function(key){return/*#__PURE__*/_jsx(\"th\",{children:key},key);}),panel.canDelete?/*#__PURE__*/_jsx(\"th\",{}):null]})}),/*#__PURE__*/_jsx(\"tbody\",{children:results.map(function(result){return/*#__PURE__*/_jsxs(\"tr\",{class:\"record \".concat(panel.canShow?\"\":\"nonClickableRow\"),onClick:function onClick(){var viewIndex=config.views.findIndex(function(x){return x.type===\"table\"&&x.tableName===panel.tableName;});if(panel.canShow){history.push(\"/record/\".concat(viewIndex,\"/\").concat(result[panel.primaryId]));}},children:[Object.keys(result).filter(function(key){return key!==panel.primaryId;}).map(function(key){return/*#__PURE__*/_jsx(\"td\",{children:/*#__PURE__*/_jsx(\"div\",{dangerouslySetInnerHTML:{__html:panel.formattedValues&&key in panel.formattedValues?evalExpression(panel.formattedValues[key],result):result[key]}})},key);}),panel.canDelete?/*#__PURE__*/_jsx(\"td\",{class:\"deleteIconCell\",children:/*#__PURE__*/_jsx(\"div\",{class:\"deleteIcon\",onClick:function onClick(){return deleteRow(result);},children:/*#__PURE__*/_jsx(\"i\",{class:\"fa fa-minus\"})})}):null]});})})]}):(results===null||results===void 0?void 0:results.length)===0?/*#__PURE__*/_jsx(\"div\",{class:\"noData panelTable \".concat(panel.folded?\"folded\":\"\"),children:\"Aucune donn\\xE9e\"}):null});});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/components/panels/TablePanel.js"],"names":["useState","useEffect","useContext","axios","evalExpression","useHistory","useParams","ConfigContext","panel","record","view","results","setResults","history","viewIndex","config","refreshData","get","params","query","formattedQuery","primaryValue","primaryId","then","response","data","deleteRow","row","window","swal","title","text","buttons","dangerMode","willDelete","post","panelId","__id__","length","folded","Object","keys","filter","key","map","canDelete","result","canShow","views","findIndex","x","type","tableName","push","__html","formattedValues"],"mappings":"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","sourcesContent":["import { useState, useEffect, useContext } from \"react\"\nimport axios from \"axios\";\nimport evalExpression from \"../../utils/evalExpression\";\nimport {\n useHistory,\n useParams\n} from \"react-router-dom\";\nimport { ConfigContext } from \"../../contexts/ConfigContext\";\n\nexport default ({ panel, record, view }) => {\n const [results, setResults] = useState(null);\n const history = useHistory();\n const { viewIndex } = useParams();\n const config = useContext(ConfigContext)\n\n useEffect(() => {\n refreshData()\n }, [])\n\n const refreshData = () => {\n axios.get(\"/customQuery\", {\n params: {\n query: panel.query || evalExpression(panel.formattedQuery, record),\n primaryValue: record[view.primaryId]\n }\n }).then((response) => {\n setResults(response.data)\n })\n }\n\n const deleteRow = async (row) => {\n const willDelete = await window.swal({\n title: \"Êtes-vous sûr ?\",\n text: \"Une fois la suppression confirmée, il ne sera pas possible de revenir en arrière.\",\n buttons: [\"Annuler\", \"Oui\"],\n dangerMode: true\n })\n if (willDelete) {\n try {\n await axios.post(\"/deleteRecordFromPanel\", {\n viewIndex,\n panelId: panel.__id__,\n primaryValue: row[panel.primaryId]\n })\n refreshData();\n } catch (e) {\n window.swal({\n title: \"Erreur\",\n text: \"Suppression impossible\",\n dangerMode: true\n })\n }\n }\n }\n\n return (\n <div>\n {results?.length > 0 ? (\n <table class={`table panelTable ${panel.folded ? \"folded\" : \"\"}`}>\n <thead>\n <tr>\n {Object.keys(results[0]).filter(key => key !== panel.primaryId).map((key) =>\n <th key={key}>{key}</th>\n )}\n {panel.canDelete ? <th></th> : null}\n </tr>\n </thead>\n <tbody>\n {results.map((result) => (\n <tr\n class={`record ${panel.canShow ? \"\" : \"nonClickableRow\"}`}\n onClick={() => {\n const viewIndex = config.views.findIndex(x => x.type === \"table\" && x.tableName === panel.tableName)\n if (panel.canShow) {\n history.push(`/record/${viewIndex}/${result[panel.primaryId]}`)\n }\n }}\n >\n {Object.keys(result).filter(key => key !== panel.primaryId).map((key) =>\n <td key={key}>\n <div \n dangerouslySetInnerHTML={{ __html:\n (panel.formattedValues && (key in panel.formattedValues)) ?\n evalExpression(panel.formattedValues[key], result) :\n result[key]\n }}\n />\n </td>\n )}\n {panel.canDelete ? (\n <td class='deleteIconCell'>\n <div\n class='deleteIcon'\n onClick={() => deleteRow(result)}\n >\n <i class='fa fa-minus'></i>\n </div>\n </td>\n ) : null}\n </tr>\n ))}\n </tbody>\n </table>\n ) : results?.length === 0 ? (\n <div class={`noData panelTable ${panel.folded ? \"folded\" : \"\"}`}>Aucune donnée</div>\n ) : null}\n </div>\n )\n}\n"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _regeneratorRuntime from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";import _asyncToGenerator from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import{useContext,useState}from\"react\";import{useHistory}from\"react-router-dom\";import axios from\"axios\";import OutsideClickHandler from\"./OutsideClickHandler\";import{ConfigContext}from\"../contexts/ConfigContext\";import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";export default(function(_ref){var _view$customActions,_view$customActions2;var viewIndex=_ref.viewIndex,record=_ref.record;var config=useContext(ConfigContext);var view=config.views[viewIndex];var _useState=useState(false),_useState2=_slicedToArray(_useState,2),actionsOpened=_useState2[0],setActionsOpened=_useState2[1];var history=useHistory();var deleteRecord=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var willDelete;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.next=2;return window.swal({title:\"Êtes-vous sûr ?\",text:\"Une fois la suppression confirmée, il ne sera pas possible de revenir en arrière.\",buttons:[\"Annuler\",\"Oui\"],dangerMode:true});case 2:willDelete=_context.sent;if(!willDelete){_context.next=14;break;}if(view.deleteCallback){axios.post(view.deleteCallback,{id:record[view.primaryId],data:record});}_context.prev=5;_context.next=8;return axios.post(\"/deleteRecord\",{viewIndex:viewIndex,primaryValue:record[view.primaryId]});case 8:history.push(\"/records/\".concat(viewIndex));_context.next=14;break;case 11:_context.prev=11;_context.t0=_context[\"catch\"](5);window.swal({title:\"Erreur\",text:\"Suppression impossible\",dangerMode:true});case 14:case\"end\":return _context.stop();}}},_callee,null,[[5,11]]);}));return function deleteRecord(){return _ref2.apply(this,arguments);};}();var customAction=function customAction(actionIndex){return function(){setActionsOpened(false);axios.post(\"customAction\",{viewIndex:viewIndex,actionIndex:actionIndex,selectedRecordIds:[record[view.primaryId]]}).then(function(){history.push(\"/records/\".concat(viewIndex));}).catch(function(){window.swal({title:\"Erreur\",text:\"L'action a échoué\",dangerMode:true});});};};return view.canDuplicate===true||view.canDelete!==false||((_view$customActions=view.customActions)===null||_view$customActions===void 0?void 0:_view$customActions.length)>0?/*#__PURE__*/_jsx(OutsideClickHandler,{onOutsideClick:function onOutsideClick(){return setActionsOpened(false);},children:/*#__PURE__*/_jsxs(\"div\",{class:\"actionButtonsContainer\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"button openActionsButton\",onClick:function onClick(){return setActionsOpened(!actionsOpened);},children:\"Actions\"}),actionsOpened?/*#__PURE__*/_jsxs(\"div\",{class:\"actions\",children:[(_view$customActions2=view.customActions)===null||_view$customActions2===void 0?void 0:_view$customActions2.map(function(action,index){return/*#__PURE__*/_jsx(\"div\",{class:\"action recordAction\",onClick:customAction(index),children:action.label});}),view.canDuplicate===true?/*#__PURE__*/_jsx(\"div\",{class:\"action recordAction duplicateRecord\",children:\"Dupliquer\"}):null,view.canDelete!==false?/*#__PURE__*/_jsx(\"div\",{class:\"action recordAction red\",onClick:deleteRecord,children:\"Supprimer\"}):null]}):null]})}):null;});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/components/ActionsButton.js"],"names":["useContext","useState","useHistory","axios","OutsideClickHandler","ConfigContext","viewIndex","record","config","view","views","actionsOpened","setActionsOpened","history","deleteRecord","window","swal","title","text","buttons","dangerMode","willDelete","deleteCallback","post","id","primaryId","data","primaryValue","push","customAction","actionIndex","selectedRecordIds","then","catch","canDuplicate","canDelete","customActions","length","map","action","index","label"],"mappings":"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","sourcesContent":["\nimport { useContext, useState } from \"react\"\nimport {\n useHistory\n} from \"react-router-dom\";\nimport axios from \"axios\";\nimport OutsideClickHandler from \"./OutsideClickHandler\"\nimport { ConfigContext } from \"../contexts/ConfigContext\";\n\nexport default ({ viewIndex, record }) => {\n const config = useContext(ConfigContext)\n const view = config.views[viewIndex]\n const [actionsOpened, setActionsOpened] = useState(false)\n const history = useHistory()\n\n const deleteRecord = async () => {\n const willDelete = await window.swal({\n title: \"Êtes-vous sûr ?\",\n text: \"Une fois la suppression confirmée, il ne sera pas possible de revenir en arrière.\",\n buttons: [\"Annuler\", \"Oui\"],\n dangerMode: true\n })\n if (willDelete) {\n if (view.deleteCallback) {\n axios.post(view.deleteCallback, {\n id: record[view.primaryId],\n data: record\n })\n }\n try {\n await axios.post(\"/deleteRecord\", {\n viewIndex,\n primaryValue: record[view.primaryId]\n })\n history.push(`/records/${viewIndex}`)\n } catch (e) {\n window.swal({\n title: \"Erreur\",\n text: \"Suppression impossible\",\n dangerMode: true\n })\n }\n }\n }\n\n const customAction = (actionIndex) => () => {\n setActionsOpened(false)\n axios.post(\"customAction\", {\n viewIndex,\n actionIndex,\n selectedRecordIds: [record[view.primaryId]]\n }).then(function () {\n history.push(`/records/${viewIndex}`)\n }).catch(function () {\n window.swal({\n title: \"Erreur\",\n text: \"L'action a échoué\",\n dangerMode: true\n })\n });\n }\n\n return (\n (view.canDuplicate === true) || (view.canDelete !== false) || (view.customActions?.length > 0) ? (\n <OutsideClickHandler onOutsideClick={() => setActionsOpened(false)}>\n <div class=\"actionButtonsContainer\">\n <div class=\"button openActionsButton\" onClick={() => setActionsOpened(!actionsOpened)}>Actions</div>\n {actionsOpened ? (\n <div class=\"actions\">\n {view.customActions?.map((action, index) => (\n <div class=\"action recordAction\" onClick={customAction(index)}>{action.label}</div>\n ))}\n {view.canDuplicate === true ? <div class=\"action recordAction duplicateRecord\">Dupliquer</div> : null}\n {view.canDelete !== false ? <div class=\"action recordAction red\" onClick={deleteRecord}>Supprimer</div> : null}\n </div>\n ) : null}\n </div>\n </OutsideClickHandler>\n ) : null\n\n )\n}"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import{useState,useEffect}from\"react\";import axios from\"axios\";import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";export default(function(_ref){var panel=_ref.panel,record=_ref.record,view=_ref.view;var _useState=useState(null),_useState2=_slicedToArray(_useState,2),results=_useState2[0],setResults=_useState2[1];useEffect(function(){axios.get(\"/customQuery\",{params:{query:panel.query,primaryValue:record[view.primaryId]}}).then(function(response){setResults(response.data);});},[panel.query]);return/*#__PURE__*/_jsx(\"div\",{children:(results===null||results===void 0?void 0:results.length)>0?/*#__PURE__*/_jsx(\"div\",{class:\"gallery\",children:results.map(function(result){return/*#__PURE__*/_jsxs(\"div\",{class:\"galleryPicture\",children:[panel.canDelete?/*#__PURE__*/_jsx(\"div\",{class:\"deleteIcon\",children:/*#__PURE__*/_jsx(\"i\",{class:\"fa fa-minus\"})}):null,/*#__PURE__*/_jsx(\"a\",{href:panel.baseUrl+result.Path,target:\"_blank\",children:/*#__PURE__*/_jsx(\"img\",{src:\"https://res.cloudinary.com/forest2/image/fetch/w_150,h_150,c_fill/\"+panel.baseUrl+result[panel.pathField||\"Path\"],onerror:\"this.style.height = 0\"})})]},result.Path);})}):(results===null||results===void 0?void 0:results.length)===0?/*#__PURE__*/_jsx(\"div\",{class:\"noData panelTable \".concat(panel.folded?\"folded\":\"\"),children:\"Aucune donn\\xE9e\"}):null});});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/components/panels/GalleryPanel.js"],"names":["useState","useEffect","axios","panel","record","view","results","setResults","get","params","query","primaryValue","primaryId","then","response","data","length","map","result","canDelete","baseUrl","Path","pathField","folded"],"mappings":"oKAAA,OAASA,QAAT,CAAmBC,SAAnB,KAAoC,OAApC,CACA,MAAOC,CAAAA,KAAP,KAAkB,OAAlB,C,wFAEA,eAAe,cAA6B,IAA1BC,CAAAA,KAA0B,MAA1BA,KAA0B,CAAnBC,MAAmB,MAAnBA,MAAmB,CAAXC,IAAW,MAAXA,IAAW,CACxC,cAA8BL,QAAQ,CAAC,IAAD,CAAtC,wCAAOM,OAAP,eAAgBC,UAAhB,eAEAN,SAAS,CAAC,UAAM,CACZC,KAAK,CAACM,GAAN,CAAU,cAAV,CAA0B,CACtBC,MAAM,CAAE,CACJC,KAAK,CAAEP,KAAK,CAACO,KADT,CAEJC,YAAY,CAAEP,MAAM,CAACC,IAAI,CAACO,SAAN,CAFhB,CADc,CAA1B,EAKGC,IALH,CAKQ,SAACC,QAAD,CAAc,CAClBP,UAAU,CAACO,QAAQ,CAACC,IAAV,CAAV,CACH,CAPD,EAQH,CATQ,CASN,CAACZ,KAAK,CAACO,KAAP,CATM,CAAT,CAWA,mBACI,qBACK,CAAAJ,OAAO,OAAP,EAAAA,OAAO,SAAP,QAAAA,OAAO,CAAEU,MAAT,EAAkB,CAAlB,cACG,YAAK,KAAK,CAAC,SAAX,UACKV,OAAO,CAACW,GAAR,CAAY,SAACC,MAAD,qBACT,aAAK,KAAK,CAAC,gBAAX,WACKf,KAAK,CAACgB,SAAN,cAAkB,YAAK,KAAK,CAAC,YAAX,uBAAwB,UAAG,KAAK,CAAC,aAAT,EAAxB,EAAlB,CAA8E,IADnF,cAEI,UAAG,IAAI,CAAEhB,KAAK,CAACiB,OAAN,CAAgBF,MAAM,CAACG,IAAhC,CAAsC,MAAM,CAAC,QAA7C,uBACI,YACI,GAAG,CAAE,qEAAuElB,KAAK,CAACiB,OAA7E,CAAuFF,MAAM,CAACf,KAAK,CAACmB,SAAN,EAAmB,MAApB,CADtG,CAEI,OAAO,CAAC,uBAFZ,EADJ,EAFJ,GAAiCJ,MAAM,CAACG,IAAxC,CADS,EAAZ,CADL,EADH,CAcG,CAAAf,OAAO,OAAP,EAAAA,OAAO,SAAP,QAAAA,OAAO,CAAEU,MAAT,IAAoB,CAApB,cACA,YAAK,KAAK,6BAAuBb,KAAK,CAACoB,MAAN,CAAe,QAAf,CAA0B,EAAjD,CAAV,8BADA,CAEA,IAjBR,EADJ,CAqBH,CAnCD","sourcesContent":["import { useState, useEffect } from \"react\"\nimport axios from \"axios\";\n\nexport default ({ panel, record, view }) => {\n const [results, setResults] = useState(null);\n\n useEffect(() => {\n axios.get(\"/customQuery\", {\n params: {\n query: panel.query,\n primaryValue: record[view.primaryId]\n }\n }).then((response) => {\n setResults(response.data)\n })\n }, [panel.query])\n\n return (\n <div>\n {results?.length > 0 ? (\n <div class=\"gallery\">\n {results.map((result) => (\n <div class='galleryPicture' key={result.Path}>\n {panel.canDelete ? <div class='deleteIcon'><i class='fa fa-minus'></i></div> : null}\n <a href={panel.baseUrl + result.Path} target='_blank'>\n <img\n src={\"https://res.cloudinary.com/forest2/image/fetch/w_150,h_150,c_fill/\" + panel.baseUrl + result[panel.pathField || \"Path\"]}\n onerror='this.style.height = 0'\n />\n </a>\n </div>\n ))}\n </div>\n ) : results?.length === 0 ? (\n <div class={`noData panelTable ${panel.folded ? \"folded\" : \"\"}`}>Aucune donnée</div>\n ) : null}\n </div>\n )\n}\n"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _objectSpread from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2\";import _regeneratorRuntime from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";import _asyncToGenerator from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import _createForOfIteratorHelper from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";import{useContext,useRef,useState}from\"react\";import{useParams,useHistory}from\"react-router-dom\";import axios from\"axios\";import Input from\"../components/Input\";import LabelTooltip from\"../components/LabelTooltip\";import{ConfigContext}from'../contexts/ConfigContext';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";export default(function(){var config=useContext(ConfigContext);var _useParams=useParams(),viewIndex=_useParams.viewIndex,panelIndex=_useParams.panelIndex,recordId=_useParams.recordId;var history=useHistory();var view=config.views[viewIndex];var panel=panelIndex?view.recordViewPanels[panelIndex]:null;var filteredColumns=panel?panel.createConfig.columns:view.columns.filter(function(column){return column.dataType&&(column.canEditOnCreation===true||column.canEdit!==false)&&!column.hidden;});var initialData={};var _iterator=_createForOfIteratorHelper(filteredColumns),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var column=_step.value;if(column.dataType===\"tinyint\"){initialData[column.name]=column.optional?\"NULL\":\"0\";}else if(column.dataType===\"select\"&&Array.isArray(column.options)){initialData[column.name]=column.options[0];}else if(column.dataType===\"select\"){initialData[column.name]=Object.keys(column.options)[0];}if(column.defaultValue){initialData[column.name]=column.defaultValue;}}}catch(err){_iterator.e(err);}finally{_iterator.f();}var data=useRef(initialData);var _useState=useState(false),_useState2=_slicedToArray(_useState,2),isCreating=_useState2[0],setIsCreating=_useState2[1];var createRecord=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var key;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:for(key in view.createFilters){data.current[key]=view.createFilters[key];}setIsCreating(true);_context.prev=2;_context.next=5;return axios.post(\"/createRecord\",{viewIndex:viewIndex,panelIndex:panelIndex,recordId:recordId,data:data.current});case 5:setIsCreating(false);history.push(\"/records/\".concat(viewIndex));_context.next=13;break;case 9:_context.prev=9;_context.t0=_context[\"catch\"](2);if(_context.t0.response.responseText){window.swal({title:\"Erreur\",text:_context.t0.response.responseText,dangerMode:true});}setIsCreating(false);case 13:case\"end\":return _context.stop();}}},_callee,null,[[2,9]]);}));return function createRecord(){return _ref.apply(this,arguments);};}();return/*#__PURE__*/_jsxs(\"div\",{class:\"view\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"viewHeader\",children:/*#__PURE__*/_jsx(\"div\",{class:\"viewTitle\",children:panel?panel.createConfig.label:\"Cr\\xE9er \".concat(view.aNewSingular)})}),/*#__PURE__*/_jsxs(\"div\",{class:\"paddedView\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"form\",children:filteredColumns.map(function(column,index){return/*#__PURE__*/_jsxs(\"div\",{class:\"formElement\",children:[/*#__PURE__*/_jsxs(\"div\",{class:\"formLabel\",children:[column.label,column.labelTooltip?/*#__PURE__*/_jsx(LabelTooltip,{text:column.labelTooltip}):null]}),/*#__PURE__*/_jsx(\"div\",{class:\"formInput\",children:/*#__PURE__*/_jsx(Input,{column:column,onChange:function onChange(newValues){data.current=_objectSpread(_objectSpread({},data.current),newValues);}})})]},index);})}),/*#__PURE__*/_jsx(\"div\",{class:\"button greenButton \".concat(isCreating?\"loading\":\"\"),onClick:createRecord,children:isCreating?\"Sauvegarde en cours...\":\"Créer\"}),/*#__PURE__*/_jsx(\"div\",{class:\"button\",onClick:function onClick(){return history.goBack();},children:\"Annuler\"})]})]});});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/pages/CreateRecord.js"],"names":["useContext","useRef","useState","useParams","useHistory","axios","Input","LabelTooltip","ConfigContext","config","viewIndex","panelIndex","recordId","history","view","views","panel","recordViewPanels","filteredColumns","createConfig","columns","filter","column","dataType","canEditOnCreation","canEdit","hidden","initialData","name","optional","Array","isArray","options","Object","keys","defaultValue","data","isCreating","setIsCreating","createRecord","key","createFilters","current","post","push","response","responseText","window","swal","title","text","dangerMode","label","aNewSingular","map","index","labelTooltip","newValues","goBack"],"mappings":"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","sourcesContent":["import { useContext, useRef, useState } from \"react\";\nimport {\n useParams,\n useHistory\n} from \"react-router-dom\";\nimport axios from \"axios\";\nimport Input from \"../components/Input\"\nimport LabelTooltip from \"../components/LabelTooltip\"\nimport { ConfigContext } from '../contexts/ConfigContext'\n\nexport default () => {\n const config = useContext(ConfigContext)\n const { viewIndex, panelIndex, recordId } = useParams();\n const history = useHistory();\n const view = config.views[viewIndex];\n const panel = panelIndex ? view.recordViewPanels[panelIndex] : null;\n const filteredColumns = panel ? panel.createConfig.columns : view.columns.filter(\n column => column.dataType &&\n (column.canEditOnCreation === true || column.canEdit !== false)\n && !column.hidden\n )\n\n const initialData = {}\n for (const column of filteredColumns) {\n if (column.dataType === \"tinyint\") {\n initialData[column.name] = column.optional ? \"NULL\" : \"0\"\n } else if (column.dataType === \"select\" && Array.isArray(column.options)) {\n initialData[column.name] = column.options[0]\n } else if (column.dataType === \"select\") {\n initialData[column.name] = Object.keys(column.options)[0]\n }\n if (column.defaultValue) {\n initialData[column.name] = column.defaultValue\n }\n }\n const data = useRef(initialData)\n const [isCreating, setIsCreating] = useState(false)\n\n const createRecord = async () => {\n for (const key in view.createFilters) {\n data.current[key] = view.createFilters[key]\n }\n setIsCreating(true)\n try {\n await axios.post(\"/createRecord\", {\n viewIndex,\n panelIndex,\n recordId,\n data: data.current\n })\n setIsCreating(false)\n history.push(`/records/${viewIndex}`)\n } catch (error) {\n if (error.response.responseText) {\n window.swal({\n title: \"Erreur\",\n text: error.response.responseText,\n dangerMode: true\n })\n }\n setIsCreating(false)\n }\n }\n\n return (\n <div class=\"view\">\n <div class=\"viewHeader\">\n <div class=\"viewTitle\">{panel ? panel.createConfig.label : `Créer ${view.aNewSingular}`}</div>\n </div>\n <div class=\"paddedView\">\n <div class=\"form\">\n {filteredColumns.map((column, index) => {\n return (\n <div class='formElement' key={index}>\n <div class='formLabel'>\n {column.label}\n {column.labelTooltip ? <LabelTooltip text={column.labelTooltip} /> : null}\n </div>\n <div class='formInput'>\n <Input\n column={column}\n onChange={(newValues) => { data.current = { ...data.current, ...newValues } }}\n />\n </div>\n </div>\n )\n })}\n </div>\n <div class={`button greenButton ${isCreating ? \"loading\" : \"\"}`} onClick={createRecord}>{isCreating ? \"Sauvegarde en cours...\" : \"Créer\"}</div>\n <div class=\"button\" onClick={() => history.goBack()}>Annuler</div>\n </div>\n </div>\n )\n}"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import{useContext,useState}from\"react\";import axios from\"axios\";import OutsideClickHandler from\"./OutsideClickHandler\";import{ConfigContext}from'../contexts/ConfigContext';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";export default(function(_ref){var _view$customActions,_view$customActions2;var viewIndex=_ref.viewIndex,selectedRecordIds=_ref.selectedRecordIds,refreshData=_ref.refreshData;var config=useContext(ConfigContext);var view=config.views[viewIndex];var _useState=useState(false),_useState2=_slicedToArray(_useState,2),bulkActionsOpened=_useState2[0],setBulkActionsOpened=_useState2[1];var bulkDelete=function bulkDelete(){window.swal({title:\"Êtes-vous sûr ?\",text:\"Une fois la suppression confirmée, il ne sera pas possible de revenir en arrière.\",buttons:[\"Annuler\",\"Oui\"],dangerMode:true}).then(function(willDelete){if(willDelete){axios.post(\"deleteRecords\",{viewIndex:viewIndex,primaryValues:selectedRecordIds}).then(function(){refreshData();}).catch(function(){window.swal({title:\"Erreur\",text:\"Suppression impossible\",dangerMode:true});});}});};var bulkCustomAction=function bulkCustomAction(actionIndex){return function(){setBulkActionsOpened(false);axios.post(\"customAction\",{viewIndex:viewIndex,actionIndex:actionIndex,selectedRecordIds:selectedRecordIds}).then(function(){refreshData();}).catch(function(){window.swal({title:\"Erreur\",text:\"L'action a échoué\",dangerMode:true});});};};return!config.hideMultiselect&&(view.canDelete!==false||((_view$customActions=view.customActions)===null||_view$customActions===void 0?void 0:_view$customActions.length)>0)?/*#__PURE__*/_jsx(OutsideClickHandler,{onOutsideClick:function onOutsideClick(){return setBulkActionsOpened(false);},children:/*#__PURE__*/_jsxs(\"div\",{class:\"actionButtonsContainer\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"button openBulkActionsButton\",onClick:function onClick(){return setBulkActionsOpened(!bulkActionsOpened);},children:\"Actions\"}),bulkActionsOpened?/*#__PURE__*/_jsxs(\"div\",{class:\"bulkActions\",children:[(_view$customActions2=view.customActions)===null||_view$customActions2===void 0?void 0:_view$customActions2.map(function(action,index){return/*#__PURE__*/_jsx(\"div\",{class:\"action recordAction\",onClick:bulkCustomAction(index),children:action.label});}),view.canDelete!==false?/*#__PURE__*/_jsx(\"div\",{class:\"action recordAction red\",onClick:bulkDelete,children:\"Supprimer\"}):null]}):null]})}):null;});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/components/BulkActionsButton.js"],"names":["useContext","useState","axios","OutsideClickHandler","ConfigContext","viewIndex","selectedRecordIds","refreshData","config","view","views","bulkActionsOpened","setBulkActionsOpened","bulkDelete","window","swal","title","text","buttons","dangerMode","then","willDelete","post","primaryValues","catch","bulkCustomAction","actionIndex","hideMultiselect","canDelete","customActions","length","map","action","index","label"],"mappings":"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","sourcesContent":["import { useContext, useState } from \"react\"\nimport axios from \"axios\";\nimport OutsideClickHandler from \"./OutsideClickHandler\"\nimport { ConfigContext } from '../contexts/ConfigContext'\n\nexport default ({ viewIndex, selectedRecordIds, refreshData }) => {\n const config = useContext(ConfigContext)\n const view = config.views[viewIndex]\n const [bulkActionsOpened, setBulkActionsOpened] = useState(false)\n\n const bulkDelete = () => {\n window.swal({\n title: \"Êtes-vous sûr ?\",\n text: \"Une fois la suppression confirmée, il ne sera pas possible de revenir en arrière.\",\n buttons: [\"Annuler\", \"Oui\"],\n dangerMode: true\n }).then((willDelete) => {\n if (willDelete) {\n axios.post(\"deleteRecords\", {\n viewIndex,\n primaryValues: selectedRecordIds\n }).then(function () {\n refreshData()\n }).catch(function () {\n window.swal({\n title: \"Erreur\",\n text: \"Suppression impossible\",\n dangerMode: true\n })\n });\n }\n });\n }\n\n const bulkCustomAction = (actionIndex) => () => {\n setBulkActionsOpened(false)\n axios.post(\"customAction\", {\n viewIndex,\n actionIndex,\n selectedRecordIds\n }).then(function () {\n refreshData()\n }).catch(function () {\n window.swal({\n title: \"Erreur\",\n text: \"L'action a échoué\",\n dangerMode: true\n })\n });\n }\n\n return !config.hideMultiselect && (view.canDelete !== false || view.customActions?.length > 0) ? (\n <OutsideClickHandler onOutsideClick={() => setBulkActionsOpened(false)}>\n <div class=\"actionButtonsContainer\">\n <div class=\"button openBulkActionsButton\" onClick={() => setBulkActionsOpened(!bulkActionsOpened)}>Actions</div>\n {bulkActionsOpened ? <div class=\"bulkActions\">\n {view.customActions?.map((action, index) => (\n <div class=\"action recordAction\" onClick={bulkCustomAction(index)}>{action.label}</div>\n ))}\n {view.canDelete !== false ? <div class=\"action recordAction red\" onClick={bulkDelete}>Supprimer</div> : null}\n </div> : null}\n </div>\n </OutsideClickHandler>\n ) : null\n}"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import{BrowserRouter as Router,Switch,Route}from\"react-router-dom\";import{useEffect,useState}from\"react\";import'./App.css';import Sidebar from'./components/Sidebar';import CreateRecord from'./pages/CreateRecord';import EditRecord from'./pages/EditRecord';import Records from'./pages/Records';import Record from'./pages/Record';import Login from'./pages/Login';import Iframe from'./pages/Iframe';import CustomView from'./pages/CustomView';import{ConfigProvider}from'./contexts/ConfigContext';import axios from\"axios\";import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";axios.defaults.withCredentials=true;axios.defaults.baseURL=process.env.NODE_ENV===\"development\"?'http://localhost:6145/admin/api':'/_HOMEPAGE_/api';function App(){var _useState=useState(null),_useState2=_slicedToArray(_useState,2),isAuthenticated=_useState2[0],setIsAuthenticated=_useState2[1];useEffect(function(){axios.get(\"/isAuthenticated\").then(function(response){setIsAuthenticated(response.data.isAuthenticated);});},[]);return/*#__PURE__*/_jsx(\"div\",{id:\"body\",children:isAuthenticated===true?/*#__PURE__*/_jsx(ConfigProvider,{children:/*#__PURE__*/_jsxs(Router,{basename:process.env.NODE_ENV===\"development\"?'/admin':\"/_HOMEPAGE_\",children:[/*#__PURE__*/_jsx(Sidebar,{}),/*#__PURE__*/_jsxs(Switch,{children:[/*#__PURE__*/_jsx(Route,{path:\"/records/:viewIndex/:subviewIndex?\",children:/*#__PURE__*/_jsx(Records,{})}),/*#__PURE__*/_jsx(Route,{path:\"/record/:viewIndex/:recordId\",children:/*#__PURE__*/_jsx(Record,{})}),/*#__PURE__*/_jsx(Route,{path:\"/editRecord/:viewIndex/:recordId\",children:/*#__PURE__*/_jsx(EditRecord,{})}),/*#__PURE__*/_jsx(Route,{path:\"/createRecord/:viewIndex/:panelIndex?/:recordId?\",children:/*#__PURE__*/_jsx(CreateRecord,{})}),/*#__PURE__*/_jsx(Route,{path:\"/iframe/:viewIndex\",children:/*#__PURE__*/_jsx(Iframe,{})}),/*#__PURE__*/_jsx(Route,{path:\"/customView/:viewIndex\",children:/*#__PURE__*/_jsx(CustomView,{})})]})]})}):isAuthenticated===false?/*#__PURE__*/_jsx(Login,{setIsAuthenticated:setIsAuthenticated}):/*#__PURE__*/_jsx(\"div\",{class:\"appLoading\",children:/*#__PURE__*/_jsx(\"i\",{class:\"fa fa-circle-notch fa-spin\"})})});}export default App;","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/App.js"],"names":["BrowserRouter","Router","Switch","Route","useEffect","useState","Sidebar","CreateRecord","EditRecord","Records","Record","Login","Iframe","CustomView","ConfigProvider","axios","defaults","withCredentials","baseURL","process","env","NODE_ENV","App","isAuthenticated","setIsAuthenticated","get","then","response","data"],"mappings":"oKAAA,OACEA,aAAa,GAAIC,CAAAA,MADnB,CAEEC,MAFF,CAGEC,KAHF,KAIO,kBAJP,CAKA,OAASC,SAAT,CAAoBC,QAApB,KAAoC,OAApC,CACA,MAAO,WAAP,CACA,MAAOC,CAAAA,OAAP,KAAoB,sBAApB,CACA,MAAOC,CAAAA,YAAP,KAAyB,sBAAzB,CACA,MAAOC,CAAAA,UAAP,KAAuB,oBAAvB,CACA,MAAOC,CAAAA,OAAP,KAAoB,iBAApB,CACA,MAAOC,CAAAA,MAAP,KAAmB,gBAAnB,CACA,MAAOC,CAAAA,KAAP,KAAkB,eAAlB,CACA,MAAOC,CAAAA,MAAP,KAAmB,gBAAnB,CACA,MAAOC,CAAAA,UAAP,KAAuB,oBAAvB,CACA,OAASC,cAAT,KAA+B,0BAA/B,CACA,MAAOC,CAAAA,KAAP,KAAkB,OAAlB,C,wFAEAA,KAAK,CAACC,QAAN,CAAeC,eAAf,CAAiC,IAAjC,CACAF,KAAK,CAACC,QAAN,CAAeE,OAAf,CAAyBC,OAAO,CAACC,GAAR,CAAYC,QAAZ,GAAyB,aAAzB,CAAyC,iCAAzC,CAA6E,iBAAtG,CAEA,QAASC,CAAAA,GAAT,EAAe,CACb,cAA8CjB,QAAQ,CAAC,IAAD,CAAtD,wCAAOkB,eAAP,eAAwBC,kBAAxB,eAEApB,SAAS,CAAC,UAAM,CACdW,KAAK,CAACU,GAAN,CAAU,kBAAV,EAA8BC,IAA9B,CAAmC,SAACC,QAAD,CAAc,CAC/CH,kBAAkB,CAACG,QAAQ,CAACC,IAAT,CAAcL,eAAf,CAAlB,CACD,CAFD,EAGD,CAJQ,CAIN,EAJM,CAAT,CAMA,mBACE,YAAK,EAAE,CAAC,MAAR,UACGA,eAAe,GAAK,IAApB,cACC,KAAC,cAAD,wBACE,MAAC,MAAD,EAAQ,QAAQ,CAAEJ,OAAO,CAACC,GAAR,CAAYC,QAAZ,GAAyB,aAAzB,CAAyC,QAAzC,CAAoD,aAAtE,wBACE,KAAC,OAAD,IADF,cAEE,MAAC,MAAD,yBACE,KAAC,KAAD,EAAO,IAAI,CAAC,oCAAZ,uBACE,KAAC,OAAD,IADF,EADF,cAIE,KAAC,KAAD,EAAO,IAAI,CAAC,8BAAZ,uBACE,KAAC,MAAD,IADF,EAJF,cAOE,KAAC,KAAD,EAAO,IAAI,CAAC,kCAAZ,uBACE,KAAC,UAAD,IADF,EAPF,cAUE,KAAC,KAAD,EAAO,IAAI,CAAC,kDAAZ,uBACE,KAAC,YAAD,IADF,EAVF,cAaE,KAAC,KAAD,EAAO,IAAI,CAAC,oBAAZ,uBACE,KAAC,MAAD,IADF,EAbF,cAgBE,KAAC,KAAD,EAAO,IAAI,CAAC,wBAAZ,uBACE,KAAC,UAAD,IADF,EAhBF,GAFF,GADF,EADD,CA0BGE,eAAe,GAAK,KAApB,cACF,KAAC,KAAD,EAAO,kBAAkB,CAAEC,kBAA3B,EADE,cAGF,YAAK,KAAK,CAAC,YAAX,uBACE,UAAG,KAAK,CAAC,4BAAT,EADF,EA9BJ,EADF,CAsCD,CAED,cAAeF,CAAAA,GAAf","sourcesContent":["import {\n BrowserRouter as Router,\n Switch,\n Route\n} from \"react-router-dom\";\nimport { useEffect, useState } from \"react\";\nimport './App.css';\nimport Sidebar from './components/Sidebar'\nimport CreateRecord from './pages/CreateRecord'\nimport EditRecord from './pages/EditRecord'\nimport Records from './pages/Records'\nimport Record from './pages/Record'\nimport Login from './pages/Login'\nimport Iframe from './pages/Iframe'\nimport CustomView from './pages/CustomView'\nimport { ConfigProvider } from './contexts/ConfigContext'\nimport axios from \"axios\";\n\naxios.defaults.withCredentials = true;\naxios.defaults.baseURL = process.env.NODE_ENV === \"development\" ? 'http://localhost:6145/admin/api' : '/_HOMEPAGE_/api';\n\nfunction App() {\n const [isAuthenticated, setIsAuthenticated] = useState(null);\n\n useEffect(() => {\n axios.get(\"/isAuthenticated\").then((response) => {\n setIsAuthenticated(response.data.isAuthenticated)\n })\n }, []);\n\n return (\n <div id=\"body\">\n {isAuthenticated === true ? (\n <ConfigProvider>\n <Router basename={process.env.NODE_ENV === \"development\" ? '/admin' : \"/_HOMEPAGE_\"}>\n <Sidebar />\n <Switch>\n <Route path=\"/records/:viewIndex/:subviewIndex?\">\n <Records />\n </Route>\n <Route path=\"/record/:viewIndex/:recordId\">\n <Record />\n </Route>\n <Route path=\"/editRecord/:viewIndex/:recordId\">\n <EditRecord />\n </Route>\n <Route path=\"/createRecord/:viewIndex/:panelIndex?/:recordId?\">\n <CreateRecord />\n </Route>\n <Route path=\"/iframe/:viewIndex\">\n <Iframe />\n </Route>\n <Route path=\"/customView/:viewIndex\">\n <CustomView />\n </Route>\n </Switch>\n </Router>\n </ConfigProvider>\n ) : isAuthenticated === false ? (\n <Login setIsAuthenticated={setIsAuthenticated} />\n ) : (\n <div class=\"appLoading\">\n <i class='fa fa-circle-notch fa-spin'></i>\n </div>\n )}\n </div>\n\n );\n}\n\nexport default App;\n"]},"metadata":{},"sourceType":"module"}