@erpsquad/common 1.8.36 → 1.8.37
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.
- package/dist/_virtual/ArrowBack/index.esm.js +5 -0
- package/dist/_virtual/ArrowBack/index.esm.js.map +1 -0
- package/dist/_virtual/ArrowBack/index.js +2 -0
- package/dist/_virtual/ArrowBack/index.js.map +1 -0
- package/dist/_virtual/ArrowForward/index.esm.js +5 -0
- package/dist/_virtual/ArrowForward/index.esm.js.map +1 -0
- package/dist/_virtual/ArrowForward/index.js +2 -0
- package/dist/_virtual/ArrowForward/index.js.map +1 -0
- package/dist/_virtual/IndeterminateCheckBox/index.esm.js +5 -0
- package/dist/_virtual/IndeterminateCheckBox/index.esm.js.map +1 -0
- package/dist/_virtual/IndeterminateCheckBox/index.js +2 -0
- package/dist/_virtual/IndeterminateCheckBox/index.js.map +1 -0
- package/dist/_virtual/NorthEast/index.esm.js +5 -0
- package/dist/_virtual/NorthEast/index.esm.js.map +1 -0
- package/dist/_virtual/NorthEast/index.js +2 -0
- package/dist/_virtual/NorthEast/index.js.map +1 -0
- package/dist/_virtual/Visibility/index.esm.js +5 -0
- package/dist/_virtual/Visibility/index.esm.js.map +1 -0
- package/dist/_virtual/Visibility/index.js +2 -0
- package/dist/_virtual/Visibility/index.js.map +1 -0
- package/dist/_virtual/extends/index.esm.js +2 -4
- package/dist/_virtual/extends/index.esm.js.map +1 -1
- package/dist/_virtual/extends/index.js +1 -1
- package/dist/components/action-bar/action-bar/index.esm.js +1 -1
- package/dist/components/action-bar/action-bar/index.esm.js.map +1 -1
- package/dist/components/action-bar/action-bar/index.js +1 -1
- package/dist/components/action-bar/action-bar/index.js.map +1 -1
- package/dist/components/charts/line-chart/area-line-chart/index.esm.js +40 -0
- package/dist/components/charts/line-chart/area-line-chart/index.esm.js.map +1 -0
- package/dist/components/charts/line-chart/area-line-chart/index.js +2 -0
- package/dist/components/charts/line-chart/area-line-chart/index.js.map +1 -0
- package/dist/components/filter/fields/index.esm.js +180 -0
- package/dist/components/filter/fields/index.esm.js.map +1 -0
- package/dist/components/filter/fields/index.js +2 -0
- package/dist/components/filter/fields/index.js.map +1 -0
- package/dist/components/filter/filter/index.esm.js +1 -1
- package/dist/components/filter/filter/index.esm.js.map +1 -1
- package/dist/components/filter/filter/index.js +1 -1
- package/dist/components/filter/filter/index.js.map +1 -1
- package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/header/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/header/redux/actionCreator/index.js +1 -1
- package/dist/components/header/redux/actionCreator/index.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.esm.js +439 -433
- package/dist/components/index.esm.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js.map +1 -1
- package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js +312 -0
- package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js.map +1 -0
- package/dist/components/material-editable-table/components/inline-edit-fields/index.js +4 -0
- package/dist/components/material-editable-table/components/inline-edit-fields/index.js.map +1 -0
- package/dist/components/material-editable-table/material-editable-table/index.esm.js +1164 -0
- package/dist/components/material-editable-table/material-editable-table/index.esm.js.map +1 -0
- package/dist/components/material-editable-table/material-editable-table/index.js +28 -0
- package/dist/components/material-editable-table/material-editable-table/index.js.map +1 -0
- package/dist/components/material-table/aggregation-fns/index/index.esm.js +10 -0
- package/dist/components/material-table/aggregation-fns/index/index.esm.js.map +1 -1
- package/dist/components/material-table/aggregation-fns/index/index.js +1 -1
- package/dist/components/material-table/aggregation-fns/index/index.js.map +1 -1
- package/dist/components/material-table/components/number-aggregation/index.esm.js +133 -0
- package/dist/components/material-table/components/number-aggregation/index.esm.js.map +1 -0
- package/dist/components/material-table/components/number-aggregation/index.js +5 -0
- package/dist/components/material-table/components/number-aggregation/index.js.map +1 -0
- package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.js +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.js.map +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.js +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.js.map +1 -1
- package/dist/components/upload/upload/index.esm.js +2 -2
- package/dist/components/upload/upload/index.esm.js.map +1 -1
- package/dist/components/upload/upload/index.js +2 -2
- package/dist/components/upload/upload/index.js.map +1 -1
- package/dist/contexts/AuthContext/index.esm.js +1 -1
- package/dist/contexts/AuthContext/index.esm.js.map +1 -1
- package/dist/contexts/AuthContext/index.js +1 -1
- package/dist/contexts/AuthContext/index.js.map +1 -1
- package/dist/contexts/languageContext/index.esm.js +1 -1
- package/dist/contexts/languageContext/index.esm.js.map +1 -1
- package/dist/contexts/languageContext/index.js +1 -1
- package/dist/contexts/languageContext/index.js.map +1 -1
- package/dist/index.esm.js +537 -525
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/node_modules/@babel/runtime/helpers/extends/index.esm.js +23 -0
- package/dist/node_modules/@babel/runtime/helpers/extends/index.esm.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/extends/index.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/extends/index.js.map +1 -0
- package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.esm.js +32 -0
- package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.esm.js.map +1 -1
- package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.js +36 -36
- package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.js.map +1 -1
- package/dist/node_modules/@mui/icons-material/ArrowBack/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/ArrowBack/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/ArrowBack/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/ArrowBack/index.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/ArrowForward/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/ArrowForward/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/ArrowForward/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/ArrowForward/index.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/NorthEast/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/NorthEast/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/NorthEast/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/NorthEast/index.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/Visibility/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/Visibility/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/Visibility/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/Visibility/index.js.map +1 -0
- package/dist/node_modules/@mui/system/createStyled/index.esm.js +4 -4
- package/dist/node_modules/@mui/system/createStyled/index.esm.js.map +1 -1
- package/dist/node_modules/@mui/system/createStyled/index.js +1 -1
- package/dist/node_modules/@mui/system/createStyled/index.js.map +1 -1
- package/dist/src/components/index.d.ts +2 -0
- package/dist/src/components/material-editable-table/aggregation-fns/index.d.ts +13 -0
- package/dist/src/components/material-editable-table/components/default-aggregation.d.ts +9 -0
- package/dist/src/components/material-editable-table/components/header-cell.d.ts +5 -0
- package/dist/src/components/material-editable-table/components/inline-edit-fields.d.ts +17 -0
- package/dist/src/components/material-editable-table/components/number-aggregation.d.ts +9 -0
- package/dist/src/components/material-editable-table/material-editable-table.d.ts +40 -0
- package/dist/src/utils/index.d.ts +2 -1
- package/dist/src/views/index.d.ts +1 -0
- package/dist/style.css +6 -4
- package/dist/utils/api/index.esm.js +4 -4
- package/dist/utils/api/index.esm.js.map +1 -1
- package/dist/utils/api/index.js +1 -1
- package/dist/utils/api/index.js.map +1 -1
- package/dist/utils/common/index.esm.js +6 -6
- package/dist/utils/common/index.esm.js.map +1 -1
- package/dist/utils/common/index.js +1 -1
- package/dist/utils/common/index.js.map +1 -1
- package/dist/utils/fileSize/index.esm.js +22 -0
- package/dist/utils/fileSize/index.esm.js.map +1 -0
- package/dist/utils/fileSize/index.js +2 -0
- package/dist/utils/fileSize/index.js.map +1 -0
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.esm.js +54 -50
- package/dist/utils/index.esm.js.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.esm.js +48 -0
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.js +2 -0
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.esm.js +50 -0
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.js +2 -0
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.esm.js +57 -0
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.js +2 -0
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.esm.js +41 -0
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.js +2 -0
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/index/index.esm.js +1144 -0
- package/dist/views/beforeAuth/components/index/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/index/index.js +206 -0
- package/dist/views/beforeAuth/components/index/index.js.map +1 -0
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.esm.js +72 -0
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.js +2 -0
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.js.map +1 -0
- package/dist/views/beforeAuth/components/list-content/column-raw/index.esm.js +54 -0
- package/dist/views/beforeAuth/components/list-content/column-raw/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/list-content/column-raw/index.js +2 -0
- package/dist/views/beforeAuth/components/list-content/column-raw/index.js.map +1 -0
- package/dist/views/beforeAuth/components/list-content/list-data/index.esm.js +61 -0
- package/dist/views/beforeAuth/components/list-content/list-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/list-content/list-data/index.js +2 -0
- package/dist/views/beforeAuth/components/list-content/list-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.esm.js +21 -0
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.js +2 -0
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.esm.js +21 -0
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.js +2 -0
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.esm.js +306 -0
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.js +2 -0
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.js.map +1 -0
- package/dist/views/form-builder/redux/actionCreator/index.esm.js +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.js +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.js.map +1 -1
- package/dist/views/index.esm.js +2 -0
- package/dist/views/index.esm.js.map +1 -1
- package/dist/views/index.js +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.esm.js +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.js +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.js.map +1 -1
- package/dist/views/template-editor/templates/index.esm.js +1 -1
- package/dist/views/template-editor/templates/index.esm.js.map +1 -1
- package/dist/views/template-editor/templates/index.js +1 -1
- package/dist/views/template-editor/templates/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.userData=[{id:1,name:"Aman Gupta",role:"Accountant & Finance",roleId:2},{id:2,name:"Deepak Sharma",role:"Sales",roleId:4},{id:3,name:"Avhinav Dhingra",role:"Operation",roleId:3},{id:4,name:"Rajiv Mehta",role:"Maintenance",roleId:1},{id:5,name:"Rajiv Mehta",role:"Stakes",roleId:6},{id:6,name:"Rajdeep Dutta",role:"Research & Development",roleId:5},{id:7,name:"Sonia Verma",role:"Accountant & Finance",roleId:2},{id:8,name:"Vikram Singh",role:"Sales",roleId:4},{id:9,name:"Neha Patel",role:"Operation",roleId:3},{id:10,name:"Ankit Kapoor",role:"Maintenance",roleId:1},{id:11,name:"Kavita Shah",role:"Stakes",roleId:6},{id:12,name:"Rohit Singh",role:"Research & Development",roleId:5},{id:13,name:"Priya Agarwal",role:"Human Resources",roleId:7},{id:14,name:"Amit Trivedi",role:"Marketing",roleId:8},{id:15,name:"Sara Khan",role:"Customer Support",roleId:9},{id:16,name:"Amit Gupta",role:"Accountant & Finance",roleId:2},{id:17,name:"Neha Sharma",role:"Sales",roleId:4},{id:18,name:"Rahul Verma",role:"Operation",roleId:3},{id:19,name:"Meera Kapoor",role:"Maintenance",roleId:1},{id:20,name:"Rajesh Khanna",role:"Stakes",roleId:6},{id:21,name:"Sonia Dutta",role:"Research & Development",roleId:5},{id:22,name:"Alok Gupta",role:"Human Resources",roleId:7},{id:23,name:"Preeti Singh",role:"Marketing",roleId:8},{id:24,name:"Anuj Kumar",role:"Customer Support",roleId:9},{id:25,name:"Deepa Patel",role:"IT Support",roleId:10},{id:26,name:"Vishal Kapoor",role:"Legal",roleId:11},{id:27,name:"Asha Singh",role:"Quality Assurance",roleId:12},{id:28,name:"Rajeev Sharma",role:"Logistics",roleId:13},{id:29,name:"Kavita Trivedi",role:"Public Relations",roleId:14},{id:30,name:"Alok Singh",role:"Training and Development",roleId:15},{id:31,name:"Pooja Kapoor",role:"Accountant & Finance",roleId:2},{id:32,name:"Rohit Verma",role:"Sales",roleId:4},{id:33,name:"Sanjay Mehta",role:"Operation",roleId:3},{id:34,name:"Nisha Khanna",role:"Maintenance",roleId:1},{id:35,name:"Varun Dutta",role:"Stakes",roleId:6},{id:36,name:"Sapna Gupta",role:"Research & Development",roleId:5},{id:37,name:"Vikas Sharma",role:"Human Resources",roleId:7},{id:38,name:"Ritu Verma",role:"Marketing",roleId:8},{id:39,name:"Manish Singh",role:"Customer Support",roleId:9},{id:40,name:"Neha Patel",role:"IT Support",roleId:10},{id:41,name:"Anil Kapoor",role:"Legal",roleId:11},{id:42,name:"Priya Dutta",role:"Quality Assurance",roleId:12},{id:43,name:"Rahul Sharma",role:"Logistics",roleId:13},{id:44,name:"Sneha Trivedi",role:"Public Relations",roleId:14},{id:45,name:"Anita Singh",role:"Training and Development",roleId:15},{id:46,name:"Amit Trivedi",role:"Accountant & Finance",roleId:2},{id:47,name:"Priyanka Sharma",role:"Sales",roleId:4},{id:48,name:"Rajat Verma",role:"Operation",roleId:3},{id:49,name:"Anu Khanna",role:"Maintenance",roleId:1},{id:50,name:"Sumit Dutta",role:"Stakes",roleId:6}];
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/views/beforeAuth/components/user-dropdown-data/user-dropdown-data.ts"],"sourcesContent":["export const userData = [\n {\n id: 1,\n name: \"Aman Gupta\",\n role: \"Accountant & Finance\",\n roleId: 2,\n },\n {\n id: 2,\n name: \"Deepak Sharma\",\n role: \"Sales\",\n roleId: 4,\n },\n {\n id: 3,\n name: \"Avhinav Dhingra\",\n role: \"Operation\",\n roleId: 3,\n },\n {\n id: 4,\n name: \"Rajiv Mehta\",\n role: \"Maintenance\",\n roleId: 1,\n },\n {\n id: 5,\n name: \"Rajiv Mehta\",\n role: \"Stakes\",\n roleId: 6,\n },\n {\n id: 6,\n name: \"Rajdeep Dutta\",\n role: \"Research & Development\",\n roleId: 5,\n },\n {\n id: 7,\n name: \"Sonia Verma\",\n role: \"Accountant & Finance\",\n roleId: 2,\n },\n {\n id: 8,\n name: \"Vikram Singh\",\n role: \"Sales\",\n roleId: 4,\n },\n {\n id: 9,\n name: \"Neha Patel\",\n role: \"Operation\",\n roleId: 3,\n },\n {\n id: 10,\n name: \"Ankit Kapoor\",\n role: \"Maintenance\",\n roleId: 1,\n },\n {\n id: 11,\n name: \"Kavita Shah\",\n role: \"Stakes\",\n roleId: 6,\n },\n {\n id: 12,\n name: \"Rohit Singh\",\n role: \"Research & Development\",\n roleId: 5,\n },\n {\n id: 13,\n name: \"Priya Agarwal\",\n role: \"Human Resources\",\n roleId: 7,\n },\n {\n id: 14,\n name: \"Amit Trivedi\",\n role: \"Marketing\",\n roleId: 8,\n },\n {\n id: 15,\n name: \"Sara Khan\",\n role: \"Customer Support\",\n roleId: 9,\n },\n {\n id: 16,\n name: \"Amit Gupta\",\n role: \"Accountant & Finance\",\n roleId: 2,\n },\n {\n id: 17,\n name: \"Neha Sharma\",\n role: \"Sales\",\n roleId: 4,\n },\n {\n id: 18,\n name: \"Rahul Verma\",\n role: \"Operation\",\n roleId: 3,\n },\n {\n id: 19,\n name: \"Meera Kapoor\",\n role: \"Maintenance\",\n roleId: 1,\n },\n {\n id: 20,\n name: \"Rajesh Khanna\",\n role: \"Stakes\",\n roleId: 6,\n },\n {\n id: 21,\n name: \"Sonia Dutta\",\n role: \"Research & Development\",\n roleId: 5,\n },\n {\n id: 22,\n name: \"Alok Gupta\",\n role: \"Human Resources\",\n roleId: 7,\n },\n {\n id: 23,\n name: \"Preeti Singh\",\n role: \"Marketing\",\n roleId: 8,\n },\n {\n id: 24,\n name: \"Anuj Kumar\",\n role: \"Customer Support\",\n roleId: 9,\n },\n {\n id: 25,\n name: \"Deepa Patel\",\n role: \"IT Support\",\n roleId: 10,\n },\n {\n id: 26,\n name: \"Vishal Kapoor\",\n role: \"Legal\",\n roleId: 11,\n },\n {\n id: 27,\n name: \"Asha Singh\",\n role: \"Quality Assurance\",\n roleId: 12,\n },\n {\n id: 28,\n name: \"Rajeev Sharma\",\n role: \"Logistics\",\n roleId: 13,\n },\n {\n id: 29,\n name: \"Kavita Trivedi\",\n role: \"Public Relations\",\n roleId: 14,\n },\n {\n id: 30,\n name: \"Alok Singh\",\n role: \"Training and Development\",\n roleId: 15,\n },\n {\n id: 31,\n name: \"Pooja Kapoor\",\n role: \"Accountant & Finance\",\n roleId: 2,\n },\n {\n id: 32,\n name: \"Rohit Verma\",\n role: \"Sales\",\n roleId: 4,\n },\n {\n id: 33,\n name: \"Sanjay Mehta\",\n role: \"Operation\",\n roleId: 3,\n },\n {\n id: 34,\n name: \"Nisha Khanna\",\n role: \"Maintenance\",\n roleId: 1,\n },\n {\n id: 35,\n name: \"Varun Dutta\",\n role: \"Stakes\",\n roleId: 6,\n },\n {\n id: 36,\n name: \"Sapna Gupta\",\n role: \"Research & Development\",\n roleId: 5,\n },\n {\n id: 37,\n name: \"Vikas Sharma\",\n role: \"Human Resources\",\n roleId: 7,\n },\n {\n id: 38,\n name: \"Ritu Verma\",\n role: \"Marketing\",\n roleId: 8,\n },\n {\n id: 39,\n name: \"Manish Singh\",\n role: \"Customer Support\",\n roleId: 9,\n },\n {\n id: 40,\n name: \"Neha Patel\",\n role: \"IT Support\",\n roleId: 10,\n },\n {\n id: 41,\n name: \"Anil Kapoor\",\n role: \"Legal\",\n roleId: 11,\n },\n {\n id: 42,\n name: \"Priya Dutta\",\n role: \"Quality Assurance\",\n roleId: 12,\n },\n {\n id: 43,\n name: \"Rahul Sharma\",\n role: \"Logistics\",\n roleId: 13,\n },\n {\n id: 44,\n name: \"Sneha Trivedi\",\n role: \"Public Relations\",\n roleId: 14,\n },\n {\n id: 45,\n name: \"Anita Singh\",\n role: \"Training and Development\",\n roleId: 15,\n },\n {\n id: 46,\n name: \"Amit Trivedi\",\n role: \"Accountant & Finance\",\n roleId: 2,\n },\n {\n id: 47,\n name: \"Priyanka Sharma\",\n role: \"Sales\",\n roleId: 4,\n },\n {\n id: 48,\n name: \"Rajat Verma\",\n role: \"Operation\",\n roleId: 3,\n },\n {\n id: 49,\n name: \"Anu Khanna\",\n role: \"Maintenance\",\n roleId: 1,\n },\n {\n id: 50,\n name: \"Sumit Dutta\",\n role: \"Stakes\",\n roleId: 6,\n },\n];\n"],"names":["id","name","role","roleId"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getV1FormBuilderId, patchV1FormBuilderId, getV1FormBuilderFieldsId, setBaseUrl } from "../../../../api-client/api.system-feature/api/index.esm.js";
|
|
2
2
|
import { createAsyncThunk } from "@reduxjs/toolkit";
|
|
3
3
|
import { getToken } from "../../../../utils/common/index.esm.js";
|
|
4
|
-
setBaseUrl(`${"
|
|
4
|
+
setBaseUrl(`${"https://apidev.erpforce.co"}/system-feature`);
|
|
5
5
|
const patchFormDataById = createAsyncThunk(
|
|
6
6
|
"formBuilder/put",
|
|
7
7
|
async ({ id, data }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../../src/views/form-builder/redux/actionCreator.ts"],"sourcesContent":["import { getV1FormBuilderFieldsId, getV1FormBuilderId, patchV1FormBuilderId, setBaseUrl } from \"@/api-client/api.system-feature/api\";\nimport { GetV1FormBuilderFieldsIdRequest } from \"@/api-client/api.system-feature/api-types\";\nimport { getToken } from \"@/utils\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/system-feature`);\n\nexport const patchFormDataById = createAsyncThunk(\n\n \"formBuilder/put\",\n async ({ id, data }: any) => {\n const response = await patchV1FormBuilderId({\n ...getToken(),\n id: id,\n ...data,\n });\n return response;\n },\n);\n\nexport const getFormDataById = createAsyncThunk(\n \"formBuilder/getById\",\n async (id: string) => {\n const response = await getV1FormBuilderId({\n ...getToken(),\n id: id,\n });\n return response;\n }\n);\n\n\n\nexport const getFieldsByFormId = createAsyncThunk(\n \"formBuilder/fields/get\",\n async ({ id }: GetV1FormBuilderFieldsIdRequest) => {\n // id = \"661537c19ac80d3d5d0a915a\";\n const response: any = await getV1FormBuilderFieldsId({\n ...getToken(),\n id: id,\n });\n return response?.data.fields;\n },\n);\n"],"names":[],"mappings":";;;AAKA,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../../src/views/form-builder/redux/actionCreator.ts"],"sourcesContent":["import { getV1FormBuilderFieldsId, getV1FormBuilderId, patchV1FormBuilderId, setBaseUrl } from \"@/api-client/api.system-feature/api\";\nimport { GetV1FormBuilderFieldsIdRequest } from \"@/api-client/api.system-feature/api-types\";\nimport { getToken } from \"@/utils\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/system-feature`);\n\nexport const patchFormDataById = createAsyncThunk(\n\n \"formBuilder/put\",\n async ({ id, data }: any) => {\n const response = await patchV1FormBuilderId({\n ...getToken(),\n id: id,\n ...data,\n });\n return response;\n },\n);\n\nexport const getFormDataById = createAsyncThunk(\n \"formBuilder/getById\",\n async (id: string) => {\n const response = await getV1FormBuilderId({\n ...getToken(),\n id: id,\n });\n return response;\n }\n);\n\n\n\nexport const getFieldsByFormId = createAsyncThunk(\n \"formBuilder/fields/get\",\n async ({ id }: GetV1FormBuilderFieldsIdRequest) => {\n // id = \"661537c19ac80d3d5d0a915a\";\n const response: any = await getV1FormBuilderFieldsId({\n ...getToken(),\n id: id,\n });\n return response?.data.fields;\n },\n);\n"],"names":[],"mappings":";;;AAKA,WAAW,GAAG,4BAAqC,iBAAiB;AAE7D,MAAM,oBAAoB;AAAA,EAE/B;AAAA,EACA,OAAO,EAAE,IAAI,WAAgB;AAC3B,UAAM,WAAW,MAAM,qBAAqB;AAAA,MAC1C,GAAG,SAAA;AAAA,MACH;AAAA,MACA,GAAG;AAAA,IAAA,CACJ;AACD,WAAO;AAAA,EACT;AACF;AAEO,MAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA,OAAO,OAAe;AACpB,UAAM,WAAW,MAAM,mBAAmB;AAAA,MACxC,GAAG,SAAA;AAAA,MACH;AAAA,IAAA,CACD;AACD,WAAO;AAAA,EACT;AACF;AAIO,MAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA,OAAO,EAAE,GAAA,MAA0C;AAEjD,UAAM,WAAgB,MAAM,yBAAyB;AAAA,MACnD,GAAG,SAAA;AAAA,MACH;AAAA,IAAA,CACD;AACD,WAAO,qCAAU,KAAK;AAAA,EACxB;AACF;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../api-client/api.system-feature/api/index.js"),t=require("@reduxjs/toolkit"),r=require("../../../../utils/common/index.js");e.setBaseUrl("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../api-client/api.system-feature/api/index.js"),t=require("@reduxjs/toolkit"),r=require("../../../../utils/common/index.js");e.setBaseUrl("https://apidev.erpforce.co/system-feature");const i=t.createAsyncThunk("formBuilder/put",async({id:t,data:i})=>await e.patchV1FormBuilderId({...r.getToken(),id:t,...i})),a=t.createAsyncThunk("formBuilder/getById",async t=>await e.getV1FormBuilderId({...r.getToken(),id:t})),d=t.createAsyncThunk("formBuilder/fields/get",async({id:t})=>{const i=await e.getV1FormBuilderFieldsId({...r.getToken(),id:t});return null==i?void 0:i.data.fields});exports.getFieldsByFormId=d,exports.getFormDataById=a,exports.patchFormDataById=i;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/form-builder/redux/actionCreator.ts"],"sourcesContent":["import { getV1FormBuilderFieldsId, getV1FormBuilderId, patchV1FormBuilderId, setBaseUrl } from \"@/api-client/api.system-feature/api\";\nimport { GetV1FormBuilderFieldsIdRequest } from \"@/api-client/api.system-feature/api-types\";\nimport { getToken } from \"@/utils\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/system-feature`);\n\nexport const patchFormDataById = createAsyncThunk(\n\n \"formBuilder/put\",\n async ({ id, data }: any) => {\n const response = await patchV1FormBuilderId({\n ...getToken(),\n id: id,\n ...data,\n });\n return response;\n },\n);\n\nexport const getFormDataById = createAsyncThunk(\n \"formBuilder/getById\",\n async (id: string) => {\n const response = await getV1FormBuilderId({\n ...getToken(),\n id: id,\n });\n return response;\n }\n);\n\n\n\nexport const getFieldsByFormId = createAsyncThunk(\n \"formBuilder/fields/get\",\n async ({ id }: GetV1FormBuilderFieldsIdRequest) => {\n // id = \"661537c19ac80d3d5d0a915a\";\n const response: any = await getV1FormBuilderFieldsId({\n ...getToken(),\n id: id,\n });\n return response?.data.fields;\n },\n);\n"],"names":["setBaseUrl","patchFormDataById","createAsyncThunk","async","id","data","patchV1FormBuilderId","getToken","getFormDataById","getV1FormBuilderId","getFieldsByFormId","response","getV1FormBuilderFieldsId","fields"],"mappings":"yNAKAA,EAAAA,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/form-builder/redux/actionCreator.ts"],"sourcesContent":["import { getV1FormBuilderFieldsId, getV1FormBuilderId, patchV1FormBuilderId, setBaseUrl } from \"@/api-client/api.system-feature/api\";\nimport { GetV1FormBuilderFieldsIdRequest } from \"@/api-client/api.system-feature/api-types\";\nimport { getToken } from \"@/utils\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/system-feature`);\n\nexport const patchFormDataById = createAsyncThunk(\n\n \"formBuilder/put\",\n async ({ id, data }: any) => {\n const response = await patchV1FormBuilderId({\n ...getToken(),\n id: id,\n ...data,\n });\n return response;\n },\n);\n\nexport const getFormDataById = createAsyncThunk(\n \"formBuilder/getById\",\n async (id: string) => {\n const response = await getV1FormBuilderId({\n ...getToken(),\n id: id,\n });\n return response;\n }\n);\n\n\n\nexport const getFieldsByFormId = createAsyncThunk(\n \"formBuilder/fields/get\",\n async ({ id }: GetV1FormBuilderFieldsIdRequest) => {\n // id = \"661537c19ac80d3d5d0a915a\";\n const response: any = await getV1FormBuilderFieldsId({\n ...getToken(),\n id: id,\n });\n return response?.data.fields;\n },\n);\n"],"names":["setBaseUrl","patchFormDataById","createAsyncThunk","async","id","data","patchV1FormBuilderId","getToken","getFormDataById","getV1FormBuilderId","getFieldsByFormId","response","getV1FormBuilderFieldsId","fields"],"mappings":"yNAKAA,EAAAA,WAAW,6CAEJ,MAAMC,EAAoBC,EAAAA,iBAE/B,kBACAC,OAASC,KAAIC,gBACYC,uBAAqB,IACvCC,aACHH,QACGC,KAMIG,EAAkBN,EAAAA,iBAC7B,sBACAC,MAAOC,SACkBK,qBAAmB,IACrCF,aACHH,QAQOM,EAAoBR,EAAAA,iBAC/B,yBACAC,OAASC,SAEP,MAAMO,QAAsBC,2BAAyB,IAChDL,aACHH,OAEF,aAAOO,WAAUN,KAAKQ"}
|
package/dist/views/index.esm.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DEFAULT_COLUMN_WIDTH, DEFAULT_GRID_COLUMNS, DEFAULT_TAB_TITLE, FIELD_TYPES } from "./form-builder/index/index.esm.js";
|
|
2
|
+
import { Components } from "./beforeAuth/components/index/index.esm.js";
|
|
2
3
|
import { default as default2 } from "./template-editor/templates/index.esm.js";
|
|
3
4
|
import { default as default3 } from "./template-editor/add-template/add-template/index.esm.js";
|
|
4
5
|
import { default as default4 } from "./template-editor/template-modal/template-modal/index.esm.js";
|
|
@@ -44,6 +45,7 @@ export {
|
|
|
44
45
|
default18 as CodeControls,
|
|
45
46
|
default24 as ColumnWidth,
|
|
46
47
|
default6 as CompanySelectionModal,
|
|
48
|
+
Components,
|
|
47
49
|
CustomForm,
|
|
48
50
|
DEFAULT_COLUMN_WIDTH,
|
|
49
51
|
DEFAULT_GRID_COLUMNS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/views/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./form-builder/index/index.js"),t=require("./template-editor/templates/index.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./form-builder/index/index.js"),t=require("./beforeAuth/components/index/index.js"),r=require("./template-editor/templates/index.js"),o=require("./template-editor/add-template/add-template/index.js"),i=require("./template-editor/template-modal/template-modal/index.js"),s=require("./template-editor/template-modal/html-thumbnail-preview/index.js"),l=require("./template-editor/company-selection-modal/company-selection-modal/index.js"),d=require("./template-editor/edit-section-modal/edit-section-modal/index.js"),n=require("./template-editor/template-name-modal/template-name-modal/index.js"),a=require("./template-editor/components/EditorCanvas/index.js"),m=require("./template-editor/components/EditorHeader/index.js"),p=require("./template-editor/components/EditorSection/index.js"),u=require("./template-editor/components/EditorSidebar/index.js"),x=require("./template-editor/components/SectionFlowEditor/index.js"),c=require("./template-editor/components/SectionFormatPanel/index.js"),f=require("./template-editor/components/controllers/AlignmentControl/index.js"),E=require("./template-editor/components/controllers/border-control/index.js"),T=require("./template-editor/components/controllers/ButtonControls/index.js"),j=require("./template-editor/components/controllers/CodeControls/index.js"),q=require("./template-editor/components/controllers/DividerControls/index.js"),C=require("./template-editor/components/controllers/ImageControls/index.js"),b=require("./template-editor/components/controllers/SignatureControls/index.js"),S=require("./template-editor/components/controllers/TableControls/index.js"),F=require("./form-builder/custom-form/index.js"),D=require("./form-builder/form-fields/index.js"),_=require("./form-builder/element-edit-forms/checkbox/index.js"),P=require("./form-builder/element-edit-forms/column-width/index.js"),g=require("./form-builder/element-edit-forms/field-select/index.js"),A=require("./form-builder/element-edit-forms/section/index.js"),I=require("./form-builder/element-edit-forms/select/index.js"),L=require("./form-builder/element-edit-forms/table-form/index.js"),M=require("./form-builder/element-edit-forms/text/index.js"),v=require("./template-editor/routes/index.js"),h=require("./template-editor/components/controllers/TextControls/index.js"),y=require("./template-editor/utils/constant/index.js"),U=require("./template-editor/utils/common/index.js"),w=require("./form-builder/field_properties/index.js"),H=require("./form-builder/utils/common/index.js");exports.DEFAULT_COLUMN_WIDTH=e.DEFAULT_COLUMN_WIDTH,exports.DEFAULT_GRID_COLUMNS=e.DEFAULT_GRID_COLUMNS,exports.DEFAULT_TAB_TITLE=e.DEFAULT_TAB_TITLE,exports.FIELD_TYPES=e.FIELD_TYPES,exports.Components=t.Components,exports.Templates=r.default,exports.AddTemplate=o.default,exports.TemplateModal=i.default,exports.HtmlThumbnailPreview=s.default,exports.CompanySelectionModal=l.default,exports.EditSectionModal=d.default,exports.TemplateNameModal=n.default,exports.EditorCanvas=a.default,exports.EditorHeader=m.default,exports.EditorSection=p.default,exports.EditorSidebar=u.default,exports.SectionFlowEditor=x.default,exports.SectionFormatPanel=c.default,exports.AlignmentControl=f.default,exports.BorderControl=E.default,exports.ButtonControls=T.default,exports.CodeControls=j.default,exports.DividerControls=q.default,exports.ImageControls=C.default,exports.SignatureControls=b.default,exports.TableControls=S.default,exports.CustomForm=F.CustomForm,exports.FormFields=D.default,exports.CheckboxEditForm=_.CheckboxEditForm,exports.ColumnWidth=P.default,exports.FieldSelect=g.default,exports.SectionEditForm=A.default,exports.SelectEditForm=I.SelectEditForm,exports.TableEditForm=L.default,exports.TextEditForm=M.TextEditForm,exports.templateEditorRoutes=v.templateEditorRoutes,exports.TextControls=h.default,exports.TEMPLATE_EDITOR_PATHS=y.TEMPLATE_EDITOR_PATHS,exports.initialStyles=y.initialStyles,exports.extractStyles=U.extractStyles,exports.generateEmailPreview=U.generateEmailPreview,exports.generateHeaderFooterPreview=U.generateHeaderFooterPreview,exports.generateInlineStyles=U.generateInlineStyles,exports.getInitialSectionData=U.getInitialSectionData,exports.templateRoutes=U.templateRoutes,exports.element=w.element,exports.createDefaultTableColumns=H.createDefaultTableColumns,exports.extractSections=H.extractSections,exports.formatText=H.formatText,exports.generateModulePath=H.generateModulePath,exports.processMembers=H.processMembers,exports.processTableColumns=H.processTableColumns,exports.useFormDataEffect=H.useFormDataEffect,exports.useFormDataProcessor=H.useFormDataProcessor;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -26,7 +26,7 @@ import AccordionDetails from "../../../../node_modules/@mui/material/AccordionDe
|
|
|
26
26
|
import ListItemIcon from "../../../../node_modules/@mui/material/ListItemIcon/ListItemIcon/index.esm.js";
|
|
27
27
|
import ListItemText from "../../../../node_modules/@mui/material/ListItemText/ListItemText/index.esm.js";
|
|
28
28
|
import ListItem from "../../../../node_modules/@mui/material/ListItem/ListItem/index.esm.js";
|
|
29
|
-
setBaseUrl(`${"
|
|
29
|
+
setBaseUrl(`${"https://apidev.erpforce.co"}/document`);
|
|
30
30
|
const StyledListItem = styled(ListItem)(({ theme }) => ({
|
|
31
31
|
padding: theme.spacing(1.5),
|
|
32
32
|
cursor: "grab",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../../src/views/template-editor/components/EditorSidebar.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useCallback, useEffect } from 'react';\nimport { useDraggable } from '@dnd-kit/core';\nimport { useDropzone } from 'react-dropzone';\nimport {\n Box,\n Divider,\n ListItem,\n ListItemIcon,\n ListItemText,\n Grid,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n Typography,\n CircularProgress,\n Alert,\n} from '@mui/material';\nimport {\n Heading,\n Text as TextIcon,\n Image as ImageIcon,\n Table as TableIcon,\n Blocks as SignatureIcon,\n QrCode as QrCodeIcon,\n Barcode as BarcodeIcon,\n} from 'lucide-react';\nimport { styled } from '@mui/material/styles';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport { getV1Drive, postV1Drive, setBaseUrl as setDriveUrl } from '../../../api-client/api.drive/api';\nimport SearchBar from '../../../components/search-bar/search-bar';\nimport { getToken, uploadFiles } from '../../../utils/common';\n\nsetDriveUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/document`);\n\nconst StyledListItem = styled(ListItem)(({ theme }) => ({\n padding: theme.spacing(1.5),\n cursor: 'grab',\n borderRadius: theme.shape.borderRadius,\n '&:hover': {\n backgroundColor: theme.palette.grey[100],\n },\n '&.dragging': {\n opacity: 0.5,\n },\n}));\n\nconst DropzoneBox = styled(Box)(({ theme }) => ({\n border: `2px dashed ${theme.palette.grey[400]}`,\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(2),\n textAlign: 'center',\n backgroundColor: theme.palette.grey[50],\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: theme.palette.grey[100],\n },\n}));\n\nconst SidebarItem = ({ id, icon, label, imageUrl }: { id: string; icon?: React.ReactElement; label: string; imageUrl?: string }) => {\n // Extract the element type from the sidebar item id\n const elementType = typeof id === 'string' ? id.replace('sidebar-', '') : id;\n \n const { attributes, listeners, setNodeRef, isDragging } = useDraggable({\n id,\n data: {\n // Pass the correct type based on the id\n type: imageUrl ? 'image' : elementType,\n imageUrl,\n label,\n },\n });\n \n return (\n <StyledListItem\n ref={setNodeRef}\n {...listeners}\n {...attributes}\n className={isDragging ? 'dragging' : ''}\n sx={{ border: '1px solid', borderColor: 'grey.200', p: 0.75 }}\n >\n {imageUrl ? (\n <img\n src={imageUrl}\n alt={label}\n style={{ width: '100%', height: 140, objectFit: 'cover', marginRight: 8 }}\n />\n ) : (\n <>\n <ListItemIcon sx={{ minWidth: 40 }}>{icon}</ListItemIcon>\n <ListItemText primary={label} primaryTypographyProps={{ variant: 'body2' }} />\n </>\n )}\n </StyledListItem>\n );\n};\n\nconst EditorSidebar = () => {\n const [expanded, setExpanded] = useState('text');\n const [uploadedImages, setUploadedImages] = useState([]);\n const [uploading, setUploading] = useState(false);\n const [error, setError] = useState(null);\n\n const handleChange = (panel) => (event, isExpanded) => {\n setExpanded(isExpanded ? panel : false);\n };\n\n const onDrop = useCallback(async (acceptedFiles) => {\n setUploading(true);\n setError(null);\n try {\n for (const file of acceptedFiles) {\n const uFiles = await uploadFiles([file], \"document\");\n const token = getToken();\n const payload = {\n ...token,\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\n \"title\": file?.name.split(\".\")[0],\n \"path\": \"/\",\n \"is_private\": true,\n \"is_directory\": false,\n \"file_size\": file.size,\n \"is_child\": false,\n \"file_extension\": file?.name.split(\".\")[1],\n \"type\": \"image\",\n \"mime_type\": file.type,\n \"url\": `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`\n }\n // Replace with your actual API endpoint\n await postV1Drive(payload);\n\n setUploadedImages((prev) => [\n ...prev,\n {\n id: `uploaded-image-${Date.now()}-${Math.random()}`,\n url: `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`, // Assume API returns imageUrl\n name: file.name,\n },\n ]);\n }\n } catch (err) {\n setError('Failed to upload image. Please try again.');\n } finally {\n setUploading(false);\n }\n }, []);\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop,\n accept: { 'image/*': ['.jpeg', '.png', '.jpg', '.gif'] },\n multiple: true,\n });\n\n const sections = [\n {\n id: 'text',\n icon: <TextIcon size={18} />,\n label: 'Text',\n content: (\n <Box sx={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: 1 }}>\n <SidebarItem id=\"sidebar-heading\" icon={<Heading size={20} />} label=\"Heading 1\" />\n <SidebarItem id=\"sidebar-heading-2\" icon={<Heading size={18} />} label=\"Heading 2\" />\n <SidebarItem id=\"sidebar-heading-3\" icon={<Heading size={16} />} label=\"Heading 3\" />\n <SidebarItem id=\"sidebar-heading-4\" icon={<Heading size={14} />} label=\"Heading 4\" />\n <SidebarItem id=\"sidebar-text\" icon={<TextIcon size={20} />} label=\"Body\" />\n <SidebarItem id=\"sidebar-text-block\" icon={<TextIcon size={20} />} label=\"Text Block\" />\n </Box>\n ),\n },\n {\n id: 'images',\n icon: <ImageIcon size={18} />,\n label: 'Images',\n content: (\n <Box sx={{ mt: 2 }}>\n <Box sx={{ mt: 2 }}>\n <DropzoneBox {...getRootProps()}>\n <input {...getInputProps()} />\n {isDragActive ? (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Drop the images here...\n </Typography>\n ) : (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Drag and drop images here, or click to select\n </Typography>\n )}\n {uploading && (\n <Box sx={{ mt: 1 }}>\n <CircularProgress size={20} />\n </Box>\n )}\n </DropzoneBox>\n {error && (\n <Alert severity=\"error\" sx={{ mt: 2 }}>\n {error}\n </Alert>\n )}\n {uploadedImages.length > 0 && (\n <Box sx={{ mt: 2 }}>\n <Typography variant=\"body2\" sx={{ mb: 1, color: 'grey.500' }}>\n Uploaded Images\n </Typography>\n <Grid container spacing={1}>\n {uploadedImages.map((image) => (\n <Grid item xs={6} key={image.id}>\n <SidebarItem\n id={image.id}\n label={image.name}\n imageUrl={image.url}\n />\n </Grid>\n ))}\n </Grid>\n </Box>\n )}\n </Box>\n </Box>\n ),\n },\n {\n id: 'buttons',\n icon: (\n <Box\n sx={{\n width: 16,\n height: 16,\n bgcolor: 'grey.400',\n borderRadius: 1,\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '8px',\n }}\n >\n BTN\n </Box>\n ),\n label: 'Buttons',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem\n id=\"sidebar-buttons\"\n icon={\n <Box\n sx={{\n width: 20,\n height: 20,\n bgcolor: 'success.main',\n borderRadius: 1,\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '10px',\n }}\n >\n BTN\n </Box>\n }\n label=\"Buttons\"\n />\n </Box>\n ),\n },\n {\n id: 'divider',\n icon: <Divider sx={{ width: 18 }} />,\n label: 'Divider',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-divider\" icon={<Divider sx={{ width: 20 }} />} label=\"Divider\" />\n </Box>\n ),\n },\n {\n id: 'table',\n icon: <TableIcon size={18} />,\n label: 'Table',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-table\" icon={<TableIcon size={20} />} label=\"Table\" />\n </Box>\n ),\n },\n {\n id: 'signature',\n icon: <SignatureIcon size={18} />,\n label: 'Signature',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-signature\" icon={<SignatureIcon size={20} />} label=\"Signature\" />\n </Box>\n ),\n },\n {\n id: 'qr-code',\n icon: <QrCodeIcon size={18} />,\n label: 'QR Code',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-qr-code\" icon={<QrCodeIcon size={20} />} label=\"QR Code\" />\n </Box>\n ),\n },\n {\n id: 'bar-code',\n icon: <BarcodeIcon size={18} />,\n label: 'Bar Code',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-bar-code\" icon={<BarcodeIcon size={20} />} label=\"Bar Code\" />\n </Box>\n ),\n },\n ];\n\n const getDriveFiles = async () => {\n try {\n const token = getToken();\n const response = await getV1Drive({\n ...token,\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\n skip: 0,\n limit: 10,\n filters: `(is_directory.eq=0)`\n });\n // Check if response is successful and has data\n if ('data' in response && response.data && typeof response.data === 'object' && 'drive' in response.data) {\n const files = (response.data as any).drive || [];\n setUploadedImages(files);\n }\n } catch (error) {\n console.log(error);\n }\n }\n\n useEffect(() => {\n getDriveFiles()\n }, [])\n\n return (\n <Box\n sx={{\n bgcolor: 'background.paper',\n borderRight: 1,\n borderColor: 'grey.200',\n width: 390,\n display: 'flex',\n flexDirection: 'column',\n height: 'calc(100vh - 104px)',\n boxShadow: '0 2px 8px rgba(0,0,0,0.05)',\n fontFamily: 'Inter, system-ui, Avenir, Helvetica, Arial, sans-serif',\n }}\n >\n <Box sx={{ p: 2, borderBottom: 1, borderColor: 'grey.200' }}>\n <SearchBar \n handleSearch={(key) => console.log('Search:', key)}\n sx={{ backgroundColor: \"#fff !important\", border: \"1px solid grey\" }}\n />\n </Box>\n <Box sx={{ flexGrow: 1, overflowY: 'auto', p: 1 }}>\n {sections.map((section) => (\n <Accordion\n key={section.id}\n expanded={expanded === section.id}\n onChange={handleChange(section.id)}\n sx={{\n border: 'none',\n boxShadow: 'none',\n backgroundColor: 'transparent',\n '&:before': { display: 'none' },\n marginBottom: 1,\n }}\n >\n <AccordionSummary\n expandIcon={<ExpandMoreIcon sx={{ color: 'grey.600' }} />}\n sx={{\n borderRadius: '8px',\n padding: '0 12px',\n backgroundColor: expanded === section.id ? 'grey.200' : 'grey.50',\n '&:hover': {\n backgroundColor: 'grey.50',\n },\n transition: 'background-color 0.2s ease',\n minHeight: 42,\n '& .MuiAccordionSummary-content': {\n alignItems: 'center',\n margin: '8px 0',\n },\n '&.Mui-expanded': {\n minHeight: 42,\n },\n }}\n >\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n {section.icon}\n <Typography\n variant=\"body2\"\n sx={{ fontWeight: 500, color: 'text.primary' }}\n >\n {section.label}\n </Typography>\n </Box>\n </AccordionSummary>\n <AccordionDetails sx={{ padding: '8px 16px' }}>\n {section.content}\n </AccordionDetails>\n </Accordion>\n ))}\n </Box>\n </Box>\n );\n};\n\nexport default EditorSidebar;"],"names":["setDriveUrl","TextIcon","ImageIcon","TableIcon","SignatureIcon","QrCodeIcon","BarcodeIcon","error","ExpandMoreIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../../src/views/template-editor/components/EditorSidebar.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useCallback, useEffect } from 'react';\nimport { useDraggable } from '@dnd-kit/core';\nimport { useDropzone } from 'react-dropzone';\nimport {\n Box,\n Divider,\n ListItem,\n ListItemIcon,\n ListItemText,\n Grid,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n Typography,\n CircularProgress,\n Alert,\n} from '@mui/material';\nimport {\n Heading,\n Text as TextIcon,\n Image as ImageIcon,\n Table as TableIcon,\n Blocks as SignatureIcon,\n QrCode as QrCodeIcon,\n Barcode as BarcodeIcon,\n} from 'lucide-react';\nimport { styled } from '@mui/material/styles';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport { getV1Drive, postV1Drive, setBaseUrl as setDriveUrl } from '../../../api-client/api.drive/api';\nimport SearchBar from '../../../components/search-bar/search-bar';\nimport { getToken, uploadFiles } from '../../../utils/common';\n\nsetDriveUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/document`);\n\nconst StyledListItem = styled(ListItem)(({ theme }) => ({\n padding: theme.spacing(1.5),\n cursor: 'grab',\n borderRadius: theme.shape.borderRadius,\n '&:hover': {\n backgroundColor: theme.palette.grey[100],\n },\n '&.dragging': {\n opacity: 0.5,\n },\n}));\n\nconst DropzoneBox = styled(Box)(({ theme }) => ({\n border: `2px dashed ${theme.palette.grey[400]}`,\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(2),\n textAlign: 'center',\n backgroundColor: theme.palette.grey[50],\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: theme.palette.grey[100],\n },\n}));\n\nconst SidebarItem = ({ id, icon, label, imageUrl }: { id: string; icon?: React.ReactElement; label: string; imageUrl?: string }) => {\n // Extract the element type from the sidebar item id\n const elementType = typeof id === 'string' ? id.replace('sidebar-', '') : id;\n \n const { attributes, listeners, setNodeRef, isDragging } = useDraggable({\n id,\n data: {\n // Pass the correct type based on the id\n type: imageUrl ? 'image' : elementType,\n imageUrl,\n label,\n },\n });\n \n return (\n <StyledListItem\n ref={setNodeRef}\n {...listeners}\n {...attributes}\n className={isDragging ? 'dragging' : ''}\n sx={{ border: '1px solid', borderColor: 'grey.200', p: 0.75 }}\n >\n {imageUrl ? (\n <img\n src={imageUrl}\n alt={label}\n style={{ width: '100%', height: 140, objectFit: 'cover', marginRight: 8 }}\n />\n ) : (\n <>\n <ListItemIcon sx={{ minWidth: 40 }}>{icon}</ListItemIcon>\n <ListItemText primary={label} primaryTypographyProps={{ variant: 'body2' }} />\n </>\n )}\n </StyledListItem>\n );\n};\n\nconst EditorSidebar = () => {\n const [expanded, setExpanded] = useState('text');\n const [uploadedImages, setUploadedImages] = useState([]);\n const [uploading, setUploading] = useState(false);\n const [error, setError] = useState(null);\n\n const handleChange = (panel) => (event, isExpanded) => {\n setExpanded(isExpanded ? panel : false);\n };\n\n const onDrop = useCallback(async (acceptedFiles) => {\n setUploading(true);\n setError(null);\n try {\n for (const file of acceptedFiles) {\n const uFiles = await uploadFiles([file], \"document\");\n const token = getToken();\n const payload = {\n ...token,\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\n \"title\": file?.name.split(\".\")[0],\n \"path\": \"/\",\n \"is_private\": true,\n \"is_directory\": false,\n \"file_size\": file.size,\n \"is_child\": false,\n \"file_extension\": file?.name.split(\".\")[1],\n \"type\": \"image\",\n \"mime_type\": file.type,\n \"url\": `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`\n }\n // Replace with your actual API endpoint\n await postV1Drive(payload);\n\n setUploadedImages((prev) => [\n ...prev,\n {\n id: `uploaded-image-${Date.now()}-${Math.random()}`,\n url: `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`, // Assume API returns imageUrl\n name: file.name,\n },\n ]);\n }\n } catch (err) {\n setError('Failed to upload image. Please try again.');\n } finally {\n setUploading(false);\n }\n }, []);\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop,\n accept: { 'image/*': ['.jpeg', '.png', '.jpg', '.gif'] },\n multiple: true,\n });\n\n const sections = [\n {\n id: 'text',\n icon: <TextIcon size={18} />,\n label: 'Text',\n content: (\n <Box sx={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: 1 }}>\n <SidebarItem id=\"sidebar-heading\" icon={<Heading size={20} />} label=\"Heading 1\" />\n <SidebarItem id=\"sidebar-heading-2\" icon={<Heading size={18} />} label=\"Heading 2\" />\n <SidebarItem id=\"sidebar-heading-3\" icon={<Heading size={16} />} label=\"Heading 3\" />\n <SidebarItem id=\"sidebar-heading-4\" icon={<Heading size={14} />} label=\"Heading 4\" />\n <SidebarItem id=\"sidebar-text\" icon={<TextIcon size={20} />} label=\"Body\" />\n <SidebarItem id=\"sidebar-text-block\" icon={<TextIcon size={20} />} label=\"Text Block\" />\n </Box>\n ),\n },\n {\n id: 'images',\n icon: <ImageIcon size={18} />,\n label: 'Images',\n content: (\n <Box sx={{ mt: 2 }}>\n <Box sx={{ mt: 2 }}>\n <DropzoneBox {...getRootProps()}>\n <input {...getInputProps()} />\n {isDragActive ? (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Drop the images here...\n </Typography>\n ) : (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Drag and drop images here, or click to select\n </Typography>\n )}\n {uploading && (\n <Box sx={{ mt: 1 }}>\n <CircularProgress size={20} />\n </Box>\n )}\n </DropzoneBox>\n {error && (\n <Alert severity=\"error\" sx={{ mt: 2 }}>\n {error}\n </Alert>\n )}\n {uploadedImages.length > 0 && (\n <Box sx={{ mt: 2 }}>\n <Typography variant=\"body2\" sx={{ mb: 1, color: 'grey.500' }}>\n Uploaded Images\n </Typography>\n <Grid container spacing={1}>\n {uploadedImages.map((image) => (\n <Grid item xs={6} key={image.id}>\n <SidebarItem\n id={image.id}\n label={image.name}\n imageUrl={image.url}\n />\n </Grid>\n ))}\n </Grid>\n </Box>\n )}\n </Box>\n </Box>\n ),\n },\n {\n id: 'buttons',\n icon: (\n <Box\n sx={{\n width: 16,\n height: 16,\n bgcolor: 'grey.400',\n borderRadius: 1,\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '8px',\n }}\n >\n BTN\n </Box>\n ),\n label: 'Buttons',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem\n id=\"sidebar-buttons\"\n icon={\n <Box\n sx={{\n width: 20,\n height: 20,\n bgcolor: 'success.main',\n borderRadius: 1,\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '10px',\n }}\n >\n BTN\n </Box>\n }\n label=\"Buttons\"\n />\n </Box>\n ),\n },\n {\n id: 'divider',\n icon: <Divider sx={{ width: 18 }} />,\n label: 'Divider',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-divider\" icon={<Divider sx={{ width: 20 }} />} label=\"Divider\" />\n </Box>\n ),\n },\n {\n id: 'table',\n icon: <TableIcon size={18} />,\n label: 'Table',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-table\" icon={<TableIcon size={20} />} label=\"Table\" />\n </Box>\n ),\n },\n {\n id: 'signature',\n icon: <SignatureIcon size={18} />,\n label: 'Signature',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-signature\" icon={<SignatureIcon size={20} />} label=\"Signature\" />\n </Box>\n ),\n },\n {\n id: 'qr-code',\n icon: <QrCodeIcon size={18} />,\n label: 'QR Code',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-qr-code\" icon={<QrCodeIcon size={20} />} label=\"QR Code\" />\n </Box>\n ),\n },\n {\n id: 'bar-code',\n icon: <BarcodeIcon size={18} />,\n label: 'Bar Code',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-bar-code\" icon={<BarcodeIcon size={20} />} label=\"Bar Code\" />\n </Box>\n ),\n },\n ];\n\n const getDriveFiles = async () => {\n try {\n const token = getToken();\n const response = await getV1Drive({\n ...token,\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\n skip: 0,\n limit: 10,\n filters: `(is_directory.eq=0)`\n });\n // Check if response is successful and has data\n if ('data' in response && response.data && typeof response.data === 'object' && 'drive' in response.data) {\n const files = (response.data as any).drive || [];\n setUploadedImages(files);\n }\n } catch (error) {\n console.log(error);\n }\n }\n\n useEffect(() => {\n getDriveFiles()\n }, [])\n\n return (\n <Box\n sx={{\n bgcolor: 'background.paper',\n borderRight: 1,\n borderColor: 'grey.200',\n width: 390,\n display: 'flex',\n flexDirection: 'column',\n height: 'calc(100vh - 104px)',\n boxShadow: '0 2px 8px rgba(0,0,0,0.05)',\n fontFamily: 'Inter, system-ui, Avenir, Helvetica, Arial, sans-serif',\n }}\n >\n <Box sx={{ p: 2, borderBottom: 1, borderColor: 'grey.200' }}>\n <SearchBar \n handleSearch={(key) => console.log('Search:', key)}\n sx={{ backgroundColor: \"#fff !important\", border: \"1px solid grey\" }}\n />\n </Box>\n <Box sx={{ flexGrow: 1, overflowY: 'auto', p: 1 }}>\n {sections.map((section) => (\n <Accordion\n key={section.id}\n expanded={expanded === section.id}\n onChange={handleChange(section.id)}\n sx={{\n border: 'none',\n boxShadow: 'none',\n backgroundColor: 'transparent',\n '&:before': { display: 'none' },\n marginBottom: 1,\n }}\n >\n <AccordionSummary\n expandIcon={<ExpandMoreIcon sx={{ color: 'grey.600' }} />}\n sx={{\n borderRadius: '8px',\n padding: '0 12px',\n backgroundColor: expanded === section.id ? 'grey.200' : 'grey.50',\n '&:hover': {\n backgroundColor: 'grey.50',\n },\n transition: 'background-color 0.2s ease',\n minHeight: 42,\n '& .MuiAccordionSummary-content': {\n alignItems: 'center',\n margin: '8px 0',\n },\n '&.Mui-expanded': {\n minHeight: 42,\n },\n }}\n >\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n {section.icon}\n <Typography\n variant=\"body2\"\n sx={{ fontWeight: 500, color: 'text.primary' }}\n >\n {section.label}\n </Typography>\n </Box>\n </AccordionSummary>\n <AccordionDetails sx={{ padding: '8px 16px' }}>\n {section.content}\n </AccordionDetails>\n </Accordion>\n ))}\n </Box>\n </Box>\n );\n};\n\nexport default EditorSidebar;"],"names":["setDriveUrl","TextIcon","ImageIcon","TableIcon","SignatureIcon","QrCodeIcon","BarcodeIcon","error","ExpandMoreIcon"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("react"),r=require("../../../../node_modules/@dnd-kit/core/dist/core.esm/index.js"),d=require("react-dropzone"),t=require("../../../../node_modules/@mui/icons-material/ExpandMore/index.js"),a=require("../../../../api-client/api.drive/api/index.js"),s=require("../../../../components/search-bar/search-bar/index.js"),o=require("../../../../utils/common/index.js"),l=require("../../../../node_modules/@mui/material/Box/Box/index.js"),n=require("../../../../node_modules/lucide-react/dist/esm/icons/heading/index.js"),c=require("../../../../node_modules/lucide-react/dist/esm/icons/text/index.js"),u=require("../../../../node_modules/@mui/material/styles/styled/index.js"),x=require("../../../../node_modules/@mui/material/Typography/Typography/index.js"),m=require("../../../../node_modules/@mui/material/CircularProgress/CircularProgress/index.js"),g=require("../../../../node_modules/@mui/material/Alert/Alert/index.js"),p=require("../../../../node_modules/@mui/material/Grid/Grid/index.js"),j=require("../../../../node_modules/lucide-react/dist/esm/icons/image/index.js"),b=require("../../../../node_modules/@mui/material/Divider/Divider/index.js"),f=require("../../../../node_modules/lucide-react/dist/esm/icons/table/index.js"),h=require("../../../../node_modules/lucide-react/dist/esm/icons/blocks/index.js"),y=require("../../../../node_modules/lucide-react/dist/esm/icons/qr-code/index.js"),v=require("../../../../node_modules/lucide-react/dist/esm/icons/barcode/index.js"),q=require("../../../../node_modules/@mui/material/Accordion/Accordion/index.js"),_=require("../../../../node_modules/@mui/material/AccordionSummary/AccordionSummary/index.js"),z=require("../../../../node_modules/@mui/material/AccordionDetails/AccordionDetails/index.js"),C=require("../../../../node_modules/@mui/material/ListItemIcon/ListItemIcon/index.js"),w=require("../../../../node_modules/@mui/material/ListItemText/ListItemText/index.js"),k=require("../../../../node_modules/@mui/material/ListItem/ListItem/index.js");a.setBaseUrl("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("react"),r=require("../../../../node_modules/@dnd-kit/core/dist/core.esm/index.js"),d=require("react-dropzone"),t=require("../../../../node_modules/@mui/icons-material/ExpandMore/index.js"),a=require("../../../../api-client/api.drive/api/index.js"),s=require("../../../../components/search-bar/search-bar/index.js"),o=require("../../../../utils/common/index.js"),l=require("../../../../node_modules/@mui/material/Box/Box/index.js"),n=require("../../../../node_modules/lucide-react/dist/esm/icons/heading/index.js"),c=require("../../../../node_modules/lucide-react/dist/esm/icons/text/index.js"),u=require("../../../../node_modules/@mui/material/styles/styled/index.js"),x=require("../../../../node_modules/@mui/material/Typography/Typography/index.js"),m=require("../../../../node_modules/@mui/material/CircularProgress/CircularProgress/index.js"),g=require("../../../../node_modules/@mui/material/Alert/Alert/index.js"),p=require("../../../../node_modules/@mui/material/Grid/Grid/index.js"),j=require("../../../../node_modules/lucide-react/dist/esm/icons/image/index.js"),b=require("../../../../node_modules/@mui/material/Divider/Divider/index.js"),f=require("../../../../node_modules/lucide-react/dist/esm/icons/table/index.js"),h=require("../../../../node_modules/lucide-react/dist/esm/icons/blocks/index.js"),y=require("../../../../node_modules/lucide-react/dist/esm/icons/qr-code/index.js"),v=require("../../../../node_modules/lucide-react/dist/esm/icons/barcode/index.js"),q=require("../../../../node_modules/@mui/material/Accordion/Accordion/index.js"),_=require("../../../../node_modules/@mui/material/AccordionSummary/AccordionSummary/index.js"),z=require("../../../../node_modules/@mui/material/AccordionDetails/AccordionDetails/index.js"),C=require("../../../../node_modules/@mui/material/ListItemIcon/ListItemIcon/index.js"),w=require("../../../../node_modules/@mui/material/ListItemText/ListItemText/index.js"),k=require("../../../../node_modules/@mui/material/ListItem/ListItem/index.js");a.setBaseUrl("https://apidev.erpforce.co/document");const D=u.default(k.default)(({theme:e})=>({padding:e.spacing(1.5),cursor:"grab",borderRadius:e.shape.borderRadius,"&:hover":{backgroundColor:e.palette.grey[100]},"&.dragging":{opacity:.5}})),I=u.default(l.default)(({theme:e})=>({border:`2px dashed ${e.palette.grey[400]}`,borderRadius:e.shape.borderRadius,padding:e.spacing(2),textAlign:"center",backgroundColor:e.palette.grey[50],cursor:"pointer","&:hover":{backgroundColor:e.palette.grey[100]}})),S=({id:i,icon:d,label:t,imageUrl:a})=>{const s="string"==typeof i?i.replace("sidebar-",""):i,{attributes:o,listeners:l,setNodeRef:n,isDragging:c}=r.useDraggable({id:i,data:{type:a?"image":s,imageUrl:a,label:t}});/* @__PURE__ */
|
|
2
2
|
return e.jsx(D,{ref:n,...l,...o,className:c?"dragging":"",sx:{border:"1px solid",borderColor:"grey.200",p:.75},children:a?/* @__PURE__ */e.jsx("img",{src:a,alt:t,style:{width:"100%",height:140,objectFit:"cover",marginRight:8}}):/* @__PURE__ */e.jsxs(e.Fragment,{children:[
|
|
3
3
|
/* @__PURE__ */e.jsx(C.default,{sx:{minWidth:40},children:d}),
|
|
4
4
|
/* @__PURE__ */e.jsx(w.default,{primary:t,primaryTypographyProps:{variant:"body2"}})]})})};exports.default=()=>{const[r,u]=i.useState("text"),[C,w]=i.useState([]),[k,D]=i.useState(!1),[T,A]=i.useState(null),B=i.useCallback(async e=>{D(!0),A(null);try{for(const i of e){const e=await o.uploadFiles([i],"document"),r=o.getToken(),d={...r,"x-timezone":String(r["x-timezone"]||""),title:null==i?void 0:i.name.split(".")[0],path:"/",is_private:!0,is_directory:!1,file_size:i.size,is_child:!1,file_extension:null==i?void 0:i.name.split(".")[1],type:"image",mime_type:i.type,url:`https://erpforce-dev.s3.eu-west-1.amazonaws.com/${e[0]}`};await a.postV1Drive(d),w(r=>[...r,{id:`uploaded-image-${Date.now()}-${Math.random()}`,url:`https://erpforce-dev.s3.eu-west-1.amazonaws.com/${e[0]}`,name:i.name}])}}catch(i){A("Failed to upload image. Please try again.")}finally{D(!1)}},[]),{getRootProps:R,getInputProps:H,isDragActive:P}=d.useDropzone({onDrop:B,accept:{"image/*":[".jpeg",".png",".jpg",".gif"]},multiple:!0}),L=[{id:"text",icon:/* @__PURE__ */e.jsx(c.default,{size:18}),label:"Text",content:/* @__PURE__ */e.jsxs(l.default,{sx:{display:"grid",gridTemplateColumns:"repeat(2, 1fr)",gap:1},children:[
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/template-editor/components/EditorSidebar.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useCallback, useEffect } from 'react';\nimport { useDraggable } from '@dnd-kit/core';\nimport { useDropzone } from 'react-dropzone';\nimport {\n Box,\n Divider,\n ListItem,\n ListItemIcon,\n ListItemText,\n Grid,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n Typography,\n CircularProgress,\n Alert,\n} from '@mui/material';\nimport {\n Heading,\n Text as TextIcon,\n Image as ImageIcon,\n Table as TableIcon,\n Blocks as SignatureIcon,\n QrCode as QrCodeIcon,\n Barcode as BarcodeIcon,\n} from 'lucide-react';\nimport { styled } from '@mui/material/styles';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport { getV1Drive, postV1Drive, setBaseUrl as setDriveUrl } from '../../../api-client/api.drive/api';\nimport SearchBar from '../../../components/search-bar/search-bar';\nimport { getToken, uploadFiles } from '../../../utils/common';\n\nsetDriveUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/document`);\n\nconst StyledListItem = styled(ListItem)(({ theme }) => ({\n padding: theme.spacing(1.5),\n cursor: 'grab',\n borderRadius: theme.shape.borderRadius,\n '&:hover': {\n backgroundColor: theme.palette.grey[100],\n },\n '&.dragging': {\n opacity: 0.5,\n },\n}));\n\nconst DropzoneBox = styled(Box)(({ theme }) => ({\n border: `2px dashed ${theme.palette.grey[400]}`,\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(2),\n textAlign: 'center',\n backgroundColor: theme.palette.grey[50],\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: theme.palette.grey[100],\n },\n}));\n\nconst SidebarItem = ({ id, icon, label, imageUrl }: { id: string; icon?: React.ReactElement; label: string; imageUrl?: string }) => {\n // Extract the element type from the sidebar item id\n const elementType = typeof id === 'string' ? id.replace('sidebar-', '') : id;\n \n const { attributes, listeners, setNodeRef, isDragging } = useDraggable({\n id,\n data: {\n // Pass the correct type based on the id\n type: imageUrl ? 'image' : elementType,\n imageUrl,\n label,\n },\n });\n \n return (\n <StyledListItem\n ref={setNodeRef}\n {...listeners}\n {...attributes}\n className={isDragging ? 'dragging' : ''}\n sx={{ border: '1px solid', borderColor: 'grey.200', p: 0.75 }}\n >\n {imageUrl ? (\n <img\n src={imageUrl}\n alt={label}\n style={{ width: '100%', height: 140, objectFit: 'cover', marginRight: 8 }}\n />\n ) : (\n <>\n <ListItemIcon sx={{ minWidth: 40 }}>{icon}</ListItemIcon>\n <ListItemText primary={label} primaryTypographyProps={{ variant: 'body2' }} />\n </>\n )}\n </StyledListItem>\n );\n};\n\nconst EditorSidebar = () => {\n const [expanded, setExpanded] = useState('text');\n const [uploadedImages, setUploadedImages] = useState([]);\n const [uploading, setUploading] = useState(false);\n const [error, setError] = useState(null);\n\n const handleChange = (panel) => (event, isExpanded) => {\n setExpanded(isExpanded ? panel : false);\n };\n\n const onDrop = useCallback(async (acceptedFiles) => {\n setUploading(true);\n setError(null);\n try {\n for (const file of acceptedFiles) {\n const uFiles = await uploadFiles([file], \"document\");\n const token = getToken();\n const payload = {\n ...token,\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\n \"title\": file?.name.split(\".\")[0],\n \"path\": \"/\",\n \"is_private\": true,\n \"is_directory\": false,\n \"file_size\": file.size,\n \"is_child\": false,\n \"file_extension\": file?.name.split(\".\")[1],\n \"type\": \"image\",\n \"mime_type\": file.type,\n \"url\": `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`\n }\n // Replace with your actual API endpoint\n await postV1Drive(payload);\n\n setUploadedImages((prev) => [\n ...prev,\n {\n id: `uploaded-image-${Date.now()}-${Math.random()}`,\n url: `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`, // Assume API returns imageUrl\n name: file.name,\n },\n ]);\n }\n } catch (err) {\n setError('Failed to upload image. Please try again.');\n } finally {\n setUploading(false);\n }\n }, []);\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop,\n accept: { 'image/*': ['.jpeg', '.png', '.jpg', '.gif'] },\n multiple: true,\n });\n\n const sections = [\n {\n id: 'text',\n icon: <TextIcon size={18} />,\n label: 'Text',\n content: (\n <Box sx={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: 1 }}>\n <SidebarItem id=\"sidebar-heading\" icon={<Heading size={20} />} label=\"Heading 1\" />\n <SidebarItem id=\"sidebar-heading-2\" icon={<Heading size={18} />} label=\"Heading 2\" />\n <SidebarItem id=\"sidebar-heading-3\" icon={<Heading size={16} />} label=\"Heading 3\" />\n <SidebarItem id=\"sidebar-heading-4\" icon={<Heading size={14} />} label=\"Heading 4\" />\n <SidebarItem id=\"sidebar-text\" icon={<TextIcon size={20} />} label=\"Body\" />\n <SidebarItem id=\"sidebar-text-block\" icon={<TextIcon size={20} />} label=\"Text Block\" />\n </Box>\n ),\n },\n {\n id: 'images',\n icon: <ImageIcon size={18} />,\n label: 'Images',\n content: (\n <Box sx={{ mt: 2 }}>\n <Box sx={{ mt: 2 }}>\n <DropzoneBox {...getRootProps()}>\n <input {...getInputProps()} />\n {isDragActive ? (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Drop the images here...\n </Typography>\n ) : (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Drag and drop images here, or click to select\n </Typography>\n )}\n {uploading && (\n <Box sx={{ mt: 1 }}>\n <CircularProgress size={20} />\n </Box>\n )}\n </DropzoneBox>\n {error && (\n <Alert severity=\"error\" sx={{ mt: 2 }}>\n {error}\n </Alert>\n )}\n {uploadedImages.length > 0 && (\n <Box sx={{ mt: 2 }}>\n <Typography variant=\"body2\" sx={{ mb: 1, color: 'grey.500' }}>\n Uploaded Images\n </Typography>\n <Grid container spacing={1}>\n {uploadedImages.map((image) => (\n <Grid item xs={6} key={image.id}>\n <SidebarItem\n id={image.id}\n label={image.name}\n imageUrl={image.url}\n />\n </Grid>\n ))}\n </Grid>\n </Box>\n )}\n </Box>\n </Box>\n ),\n },\n {\n id: 'buttons',\n icon: (\n <Box\n sx={{\n width: 16,\n height: 16,\n bgcolor: 'grey.400',\n borderRadius: 1,\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '8px',\n }}\n >\n BTN\n </Box>\n ),\n label: 'Buttons',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem\n id=\"sidebar-buttons\"\n icon={\n <Box\n sx={{\n width: 20,\n height: 20,\n bgcolor: 'success.main',\n borderRadius: 1,\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '10px',\n }}\n >\n BTN\n </Box>\n }\n label=\"Buttons\"\n />\n </Box>\n ),\n },\n {\n id: 'divider',\n icon: <Divider sx={{ width: 18 }} />,\n label: 'Divider',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-divider\" icon={<Divider sx={{ width: 20 }} />} label=\"Divider\" />\n </Box>\n ),\n },\n {\n id: 'table',\n icon: <TableIcon size={18} />,\n label: 'Table',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-table\" icon={<TableIcon size={20} />} label=\"Table\" />\n </Box>\n ),\n },\n {\n id: 'signature',\n icon: <SignatureIcon size={18} />,\n label: 'Signature',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-signature\" icon={<SignatureIcon size={20} />} label=\"Signature\" />\n </Box>\n ),\n },\n {\n id: 'qr-code',\n icon: <QrCodeIcon size={18} />,\n label: 'QR Code',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-qr-code\" icon={<QrCodeIcon size={20} />} label=\"QR Code\" />\n </Box>\n ),\n },\n {\n id: 'bar-code',\n icon: <BarcodeIcon size={18} />,\n label: 'Bar Code',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-bar-code\" icon={<BarcodeIcon size={20} />} label=\"Bar Code\" />\n </Box>\n ),\n },\n ];\n\n const getDriveFiles = async () => {\n try {\n const token = getToken();\n const response = await getV1Drive({\n ...token,\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\n skip: 0,\n limit: 10,\n filters: `(is_directory.eq=0)`\n });\n // Check if response is successful and has data\n if ('data' in response && response.data && typeof response.data === 'object' && 'drive' in response.data) {\n const files = (response.data as any).drive || [];\n setUploadedImages(files);\n }\n } catch (error) {\n console.log(error);\n }\n }\n\n useEffect(() => {\n getDriveFiles()\n }, [])\n\n return (\n <Box\n sx={{\n bgcolor: 'background.paper',\n borderRight: 1,\n borderColor: 'grey.200',\n width: 390,\n display: 'flex',\n flexDirection: 'column',\n height: 'calc(100vh - 104px)',\n boxShadow: '0 2px 8px rgba(0,0,0,0.05)',\n fontFamily: 'Inter, system-ui, Avenir, Helvetica, Arial, sans-serif',\n }}\n >\n <Box sx={{ p: 2, borderBottom: 1, borderColor: 'grey.200' }}>\n <SearchBar \n handleSearch={(key) => console.log('Search:', key)}\n sx={{ backgroundColor: \"#fff !important\", border: \"1px solid grey\" }}\n />\n </Box>\n <Box sx={{ flexGrow: 1, overflowY: 'auto', p: 1 }}>\n {sections.map((section) => (\n <Accordion\n key={section.id}\n expanded={expanded === section.id}\n onChange={handleChange(section.id)}\n sx={{\n border: 'none',\n boxShadow: 'none',\n backgroundColor: 'transparent',\n '&:before': { display: 'none' },\n marginBottom: 1,\n }}\n >\n <AccordionSummary\n expandIcon={<ExpandMoreIcon sx={{ color: 'grey.600' }} />}\n sx={{\n borderRadius: '8px',\n padding: '0 12px',\n backgroundColor: expanded === section.id ? 'grey.200' : 'grey.50',\n '&:hover': {\n backgroundColor: 'grey.50',\n },\n transition: 'background-color 0.2s ease',\n minHeight: 42,\n '& .MuiAccordionSummary-content': {\n alignItems: 'center',\n margin: '8px 0',\n },\n '&.Mui-expanded': {\n minHeight: 42,\n },\n }}\n >\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n {section.icon}\n <Typography\n variant=\"body2\"\n sx={{ fontWeight: 500, color: 'text.primary' }}\n >\n {section.label}\n </Typography>\n </Box>\n </AccordionSummary>\n <AccordionDetails sx={{ padding: '8px 16px' }}>\n {section.content}\n </AccordionDetails>\n </Accordion>\n ))}\n </Box>\n </Box>\n );\n};\n\nexport default EditorSidebar;"],"names":["setDriveUrl","StyledListItem","styled","ListItem","theme","padding","spacing","cursor","borderRadius","shape","backgroundColor","palette","grey","opacity","DropzoneBox","Box","border","textAlign","SidebarItem","id","icon","label","imageUrl","elementType","replace","attributes","listeners","setNodeRef","isDragging","useDraggable","data","type","jsx","ref","className","sx","borderColor","p","children","src","alt","style","width","height","objectFit","marginRight","jsxs","Fragment","ListItemIcon","minWidth","ListItemText","primary","primaryTypographyProps","variant","expanded","setExpanded","useState","uploadedImages","setUploadedImages","uploading","setUploading","error","setError","onDrop","useCallback","async","acceptedFiles","file","uFiles","uploadFiles","token","getToken","payload","String","title","name","split","path","is_private","is_directory","file_size","size","is_child","file_extension","mime_type","url","postV1Drive","prev","Date","now","Math","random","err","getRootProps","getInputProps","isDragActive","useDropzone","accept","multiple","sections","TextIcon","content","display","gridTemplateColumns","gap","Heading","ImageIcon","mt","Typography","color","CircularProgress","Alert","severity","length","mb","Grid","container","map","image","item","xs","bgcolor","alignItems","justifyContent","fontSize","Divider","TableIcon","SignatureIcon","QrCodeIcon","BarcodeIcon","useEffect","response","getV1Drive","skip","limit","filters","files","drive","getDriveFiles","borderRight","flexDirection","boxShadow","fontFamily","borderBottom","SearchBar","handleSearch","key","flexGrow","overflowY","section","Accordion","onChange","panel","event","isExpanded","marginBottom","AccordionSummary","expandIcon","ExpandMoreIcon","transition","minHeight","margin","fontWeight","AccordionDetails"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/template-editor/components/EditorSidebar.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useCallback, useEffect } from 'react';\nimport { useDraggable } from '@dnd-kit/core';\nimport { useDropzone } from 'react-dropzone';\nimport {\n Box,\n Divider,\n ListItem,\n ListItemIcon,\n ListItemText,\n Grid,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n Typography,\n CircularProgress,\n Alert,\n} from '@mui/material';\nimport {\n Heading,\n Text as TextIcon,\n Image as ImageIcon,\n Table as TableIcon,\n Blocks as SignatureIcon,\n QrCode as QrCodeIcon,\n Barcode as BarcodeIcon,\n} from 'lucide-react';\nimport { styled } from '@mui/material/styles';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport { getV1Drive, postV1Drive, setBaseUrl as setDriveUrl } from '../../../api-client/api.drive/api';\nimport SearchBar from '../../../components/search-bar/search-bar';\nimport { getToken, uploadFiles } from '../../../utils/common';\n\nsetDriveUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/document`);\n\nconst StyledListItem = styled(ListItem)(({ theme }) => ({\n padding: theme.spacing(1.5),\n cursor: 'grab',\n borderRadius: theme.shape.borderRadius,\n '&:hover': {\n backgroundColor: theme.palette.grey[100],\n },\n '&.dragging': {\n opacity: 0.5,\n },\n}));\n\nconst DropzoneBox = styled(Box)(({ theme }) => ({\n border: `2px dashed ${theme.palette.grey[400]}`,\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(2),\n textAlign: 'center',\n backgroundColor: theme.palette.grey[50],\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: theme.palette.grey[100],\n },\n}));\n\nconst SidebarItem = ({ id, icon, label, imageUrl }: { id: string; icon?: React.ReactElement; label: string; imageUrl?: string }) => {\n // Extract the element type from the sidebar item id\n const elementType = typeof id === 'string' ? id.replace('sidebar-', '') : id;\n \n const { attributes, listeners, setNodeRef, isDragging } = useDraggable({\n id,\n data: {\n // Pass the correct type based on the id\n type: imageUrl ? 'image' : elementType,\n imageUrl,\n label,\n },\n });\n \n return (\n <StyledListItem\n ref={setNodeRef}\n {...listeners}\n {...attributes}\n className={isDragging ? 'dragging' : ''}\n sx={{ border: '1px solid', borderColor: 'grey.200', p: 0.75 }}\n >\n {imageUrl ? (\n <img\n src={imageUrl}\n alt={label}\n style={{ width: '100%', height: 140, objectFit: 'cover', marginRight: 8 }}\n />\n ) : (\n <>\n <ListItemIcon sx={{ minWidth: 40 }}>{icon}</ListItemIcon>\n <ListItemText primary={label} primaryTypographyProps={{ variant: 'body2' }} />\n </>\n )}\n </StyledListItem>\n );\n};\n\nconst EditorSidebar = () => {\n const [expanded, setExpanded] = useState('text');\n const [uploadedImages, setUploadedImages] = useState([]);\n const [uploading, setUploading] = useState(false);\n const [error, setError] = useState(null);\n\n const handleChange = (panel) => (event, isExpanded) => {\n setExpanded(isExpanded ? panel : false);\n };\n\n const onDrop = useCallback(async (acceptedFiles) => {\n setUploading(true);\n setError(null);\n try {\n for (const file of acceptedFiles) {\n const uFiles = await uploadFiles([file], \"document\");\n const token = getToken();\n const payload = {\n ...token,\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\n \"title\": file?.name.split(\".\")[0],\n \"path\": \"/\",\n \"is_private\": true,\n \"is_directory\": false,\n \"file_size\": file.size,\n \"is_child\": false,\n \"file_extension\": file?.name.split(\".\")[1],\n \"type\": \"image\",\n \"mime_type\": file.type,\n \"url\": `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`\n }\n // Replace with your actual API endpoint\n await postV1Drive(payload);\n\n setUploadedImages((prev) => [\n ...prev,\n {\n id: `uploaded-image-${Date.now()}-${Math.random()}`,\n url: `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`, // Assume API returns imageUrl\n name: file.name,\n },\n ]);\n }\n } catch (err) {\n setError('Failed to upload image. Please try again.');\n } finally {\n setUploading(false);\n }\n }, []);\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop,\n accept: { 'image/*': ['.jpeg', '.png', '.jpg', '.gif'] },\n multiple: true,\n });\n\n const sections = [\n {\n id: 'text',\n icon: <TextIcon size={18} />,\n label: 'Text',\n content: (\n <Box sx={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: 1 }}>\n <SidebarItem id=\"sidebar-heading\" icon={<Heading size={20} />} label=\"Heading 1\" />\n <SidebarItem id=\"sidebar-heading-2\" icon={<Heading size={18} />} label=\"Heading 2\" />\n <SidebarItem id=\"sidebar-heading-3\" icon={<Heading size={16} />} label=\"Heading 3\" />\n <SidebarItem id=\"sidebar-heading-4\" icon={<Heading size={14} />} label=\"Heading 4\" />\n <SidebarItem id=\"sidebar-text\" icon={<TextIcon size={20} />} label=\"Body\" />\n <SidebarItem id=\"sidebar-text-block\" icon={<TextIcon size={20} />} label=\"Text Block\" />\n </Box>\n ),\n },\n {\n id: 'images',\n icon: <ImageIcon size={18} />,\n label: 'Images',\n content: (\n <Box sx={{ mt: 2 }}>\n <Box sx={{ mt: 2 }}>\n <DropzoneBox {...getRootProps()}>\n <input {...getInputProps()} />\n {isDragActive ? (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Drop the images here...\n </Typography>\n ) : (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Drag and drop images here, or click to select\n </Typography>\n )}\n {uploading && (\n <Box sx={{ mt: 1 }}>\n <CircularProgress size={20} />\n </Box>\n )}\n </DropzoneBox>\n {error && (\n <Alert severity=\"error\" sx={{ mt: 2 }}>\n {error}\n </Alert>\n )}\n {uploadedImages.length > 0 && (\n <Box sx={{ mt: 2 }}>\n <Typography variant=\"body2\" sx={{ mb: 1, color: 'grey.500' }}>\n Uploaded Images\n </Typography>\n <Grid container spacing={1}>\n {uploadedImages.map((image) => (\n <Grid item xs={6} key={image.id}>\n <SidebarItem\n id={image.id}\n label={image.name}\n imageUrl={image.url}\n />\n </Grid>\n ))}\n </Grid>\n </Box>\n )}\n </Box>\n </Box>\n ),\n },\n {\n id: 'buttons',\n icon: (\n <Box\n sx={{\n width: 16,\n height: 16,\n bgcolor: 'grey.400',\n borderRadius: 1,\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '8px',\n }}\n >\n BTN\n </Box>\n ),\n label: 'Buttons',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem\n id=\"sidebar-buttons\"\n icon={\n <Box\n sx={{\n width: 20,\n height: 20,\n bgcolor: 'success.main',\n borderRadius: 1,\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '10px',\n }}\n >\n BTN\n </Box>\n }\n label=\"Buttons\"\n />\n </Box>\n ),\n },\n {\n id: 'divider',\n icon: <Divider sx={{ width: 18 }} />,\n label: 'Divider',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-divider\" icon={<Divider sx={{ width: 20 }} />} label=\"Divider\" />\n </Box>\n ),\n },\n {\n id: 'table',\n icon: <TableIcon size={18} />,\n label: 'Table',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-table\" icon={<TableIcon size={20} />} label=\"Table\" />\n </Box>\n ),\n },\n {\n id: 'signature',\n icon: <SignatureIcon size={18} />,\n label: 'Signature',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-signature\" icon={<SignatureIcon size={20} />} label=\"Signature\" />\n </Box>\n ),\n },\n {\n id: 'qr-code',\n icon: <QrCodeIcon size={18} />,\n label: 'QR Code',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-qr-code\" icon={<QrCodeIcon size={20} />} label=\"QR Code\" />\n </Box>\n ),\n },\n {\n id: 'bar-code',\n icon: <BarcodeIcon size={18} />,\n label: 'Bar Code',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-bar-code\" icon={<BarcodeIcon size={20} />} label=\"Bar Code\" />\n </Box>\n ),\n },\n ];\n\n const getDriveFiles = async () => {\n try {\n const token = getToken();\n const response = await getV1Drive({\n ...token,\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\n skip: 0,\n limit: 10,\n filters: `(is_directory.eq=0)`\n });\n // Check if response is successful and has data\n if ('data' in response && response.data && typeof response.data === 'object' && 'drive' in response.data) {\n const files = (response.data as any).drive || [];\n setUploadedImages(files);\n }\n } catch (error) {\n console.log(error);\n }\n }\n\n useEffect(() => {\n getDriveFiles()\n }, [])\n\n return (\n <Box\n sx={{\n bgcolor: 'background.paper',\n borderRight: 1,\n borderColor: 'grey.200',\n width: 390,\n display: 'flex',\n flexDirection: 'column',\n height: 'calc(100vh - 104px)',\n boxShadow: '0 2px 8px rgba(0,0,0,0.05)',\n fontFamily: 'Inter, system-ui, Avenir, Helvetica, Arial, sans-serif',\n }}\n >\n <Box sx={{ p: 2, borderBottom: 1, borderColor: 'grey.200' }}>\n <SearchBar \n handleSearch={(key) => console.log('Search:', key)}\n sx={{ backgroundColor: \"#fff !important\", border: \"1px solid grey\" }}\n />\n </Box>\n <Box sx={{ flexGrow: 1, overflowY: 'auto', p: 1 }}>\n {sections.map((section) => (\n <Accordion\n key={section.id}\n expanded={expanded === section.id}\n onChange={handleChange(section.id)}\n sx={{\n border: 'none',\n boxShadow: 'none',\n backgroundColor: 'transparent',\n '&:before': { display: 'none' },\n marginBottom: 1,\n }}\n >\n <AccordionSummary\n expandIcon={<ExpandMoreIcon sx={{ color: 'grey.600' }} />}\n sx={{\n borderRadius: '8px',\n padding: '0 12px',\n backgroundColor: expanded === section.id ? 'grey.200' : 'grey.50',\n '&:hover': {\n backgroundColor: 'grey.50',\n },\n transition: 'background-color 0.2s ease',\n minHeight: 42,\n '& .MuiAccordionSummary-content': {\n alignItems: 'center',\n margin: '8px 0',\n },\n '&.Mui-expanded': {\n minHeight: 42,\n },\n }}\n >\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n {section.icon}\n <Typography\n variant=\"body2\"\n sx={{ fontWeight: 500, color: 'text.primary' }}\n >\n {section.label}\n </Typography>\n </Box>\n </AccordionSummary>\n <AccordionDetails sx={{ padding: '8px 16px' }}>\n {section.content}\n </AccordionDetails>\n </Accordion>\n ))}\n </Box>\n </Box>\n );\n};\n\nexport default EditorSidebar;"],"names":["setDriveUrl","StyledListItem","styled","ListItem","theme","padding","spacing","cursor","borderRadius","shape","backgroundColor","palette","grey","opacity","DropzoneBox","Box","border","textAlign","SidebarItem","id","icon","label","imageUrl","elementType","replace","attributes","listeners","setNodeRef","isDragging","useDraggable","data","type","jsx","ref","className","sx","borderColor","p","children","src","alt","style","width","height","objectFit","marginRight","jsxs","Fragment","ListItemIcon","minWidth","ListItemText","primary","primaryTypographyProps","variant","expanded","setExpanded","useState","uploadedImages","setUploadedImages","uploading","setUploading","error","setError","onDrop","useCallback","async","acceptedFiles","file","uFiles","uploadFiles","token","getToken","payload","String","title","name","split","path","is_private","is_directory","file_size","size","is_child","file_extension","mime_type","url","postV1Drive","prev","Date","now","Math","random","err","getRootProps","getInputProps","isDragActive","useDropzone","accept","multiple","sections","TextIcon","content","display","gridTemplateColumns","gap","Heading","ImageIcon","mt","Typography","color","CircularProgress","Alert","severity","length","mb","Grid","container","map","image","item","xs","bgcolor","alignItems","justifyContent","fontSize","Divider","TableIcon","SignatureIcon","QrCodeIcon","BarcodeIcon","useEffect","response","getV1Drive","skip","limit","filters","files","drive","getDriveFiles","borderRight","flexDirection","boxShadow","fontFamily","borderBottom","SearchBar","handleSearch","key","flexGrow","overflowY","section","Accordion","onChange","panel","event","isExpanded","marginBottom","AccordionSummary","expandIcon","ExpandMoreIcon","transition","minHeight","margin","fontWeight","AccordionDetails"],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ import CompanySelectionModal from "../company-selection-modal/company-selection-
|
|
|
24
24
|
import { setBaseUrl } from "../../../api-client/api.rbac/api/index.esm.js";
|
|
25
25
|
/* empty css */
|
|
26
26
|
import MenuItem from "../../../node_modules/@mui/material/MenuItem/MenuItem/index.esm.js";
|
|
27
|
-
setBaseUrl(`${"
|
|
27
|
+
setBaseUrl(`${"https://apidev.erpforce.co"}/rbac`);
|
|
28
28
|
const Templates = ({ type, module, modulePath }) => {
|
|
29
29
|
const { t } = useTranslation();
|
|
30
30
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../src/views/template-editor/templates.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport ActionBar from '../../components/action-bar/action-bar';\nimport viewTypes from '../../constants/action-bar';\nimport MaterialTable, { MaterialTableColumnProps } from '../../components/material-table/material-table';\nimport Typography from '../../components/typography/typography';\nimport Fallback from '../../components/fallback/fallback';\nimport Menu from '../../components/menu/menu';\nimport Footer from '../../components/footer/footer';\nimport useDeepMemo from '../../hooks/use-deep-memo';\nimport { PageState } from '../../contexts/page-context';\nimport { usePages } from '../../hooks/use-pages';\nimport { transformTableColumns } from '../../utils/common-utility';\nimport { appendConditionSafely, defaultCurrencySymbol, getToken } from '../../utils/common';\nimport logo from '../../assets/images';\nimport { IPaginationModel } from '../../@types/pagination-model';\nimport { fetchApi } from '../../utils/api';\n\nimport { MenuItem } from '@mui/material';\n\n// import GridCard from './grid-view/grid-view';\nimport { useTranslation } from 'react-i18next';\nimport { enqueueSnackbar } from 'notistack';\n\nimport { templateRoutes } from './utils/common';\nimport { IEmail, ITemplateProps, Pagination } from './utils/types';\nimport { useNavigate } from 'react-router-dom';\n\nimport { usePermissions } from '../../hooks/use-permissions';\nimport { getV1Subjects } from '../../api-client/api.system-feature/api';\nimport TemplateModal from './template-modal/template-modal';\nimport CompanySelectionModal from './company-selection-modal/company-selection-modal';\nimport { setBaseUrl } from '../../api-client/api.rbac/api';\n\nimport './templates.scss';\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\n\ninterface ActionData {\n\tlabel: string;\n\tposition: number;\n}\n\nconst Templates: React.FC<ITemplateProps> = ({ type, module, modulePath }) => {\n const { t } = useTranslation();\n\tconst {\n\t\tactivePage: aPage,\n\t\tupdatePageInfo,\n\t\tschemaFields,\n\t\tgeneratedColumns,\n\t\tupdateGeneratedColumns,\n\t\t// error: pageError\n\t} = usePages();\n\tconst activePage = useDeepMemo<PageState>(aPage);\n\t/* LOCAL STATES */\n\tconst [actionAnchorEl, setActionAnchorEl] = useState<null | HTMLElement>(null);\n const viewEmails = localStorage.getItem('email-subjects-view');\n const [actionBarData, setActionBarData] = useState<ActionData[]>(viewEmails ? JSON.parse(viewEmails) : [{ label: 'Table', position: 0 }]);\n\n const [actionBarActiveTab, setActionBarActiveTab] = useState<string>(viewTypes.TABLE);\n\tconst [paginationModel, setPaginationModel] = useState<Pagination>({ pageNo: 1, limit: 10, totalCount: 0, skip: 0 }); \n\tconst [rows, setRows] = useState<any[]>([]); \n\tconst [isFetching, setIsFetching] = useState<boolean>(false); \n\tconst [selectedRow, setSelectedRow] = useState([]);\n\tconst [showTemplateModal, setShowTemplateModal] = useState<IEmail | null>(null);\n\tconst [showCompanySelectionModal, setShowCompanySelectionModal] = useState<IEmail | null>(null);\n\tconst [companies, setCompanies] = useState<Record<string, any>[]>([]);\n\t/* VARS */\n\tconst navigate = useNavigate();\n\tconst { pageNo, limit: pLimit, totalCount } = paginationModel;\n\tconst limit = activePage.page_size || pLimit;\n\tconst total = limit ? Math.ceil(totalCount / limit) : 0;\n\tconst skip = limit * (pageNo - 1);\n\tconst permissions = usePermissions();\n\tconst ROUTES = templateRoutes(modulePath, type);\n\n\tconst SubjectPermissions = permissions?.Subjects || {};\n\tconst ConditionsImport = permissions?.RentalTerms?.ConditionsImport || {};\n\t\n\tconst {\n\t\tcanAdd = false,\n\t\tcanEdit = false,\n\t\tcanDelete = false,\n\t} = SubjectPermissions;\n\n\tconst { canAdd: canImport = false } = ConditionsImport;\n\n\tconst handleNewEmail = (email) => {\n\t\tif(!companies?.length) {\n\t\t\tenqueueSnackbar('Please add a company first', { variant: 'error' })\n\t\t\treturn\n\t\t}\n\n\t\tif(companies?.length > 1) {\n\t\t\tsetShowCompanySelectionModal(email)\n\t\t} else{\n\t\t\tnavigate(ROUTES.ADD_TEMPLATE(email._id), { state: { company_id: companies[0]?.id || companies[0]?.value }})\n\t\t}\n\t};\n \n\tconst rowActionMenu = [\n\t\t{\n\t\t\tlabel: 'New Template',\n\t\t\thandleAction: (email: IEmail) => handleNewEmail(email),\n\t\t\tdisabled: (row: any) => !canEdit\n\t\t},\n\t\t{\n\t\t\tlabel: 'Add From Template',\n\t\t\thandleAction: (email: IEmail) => setShowTemplateModal(email),\n\t\t\tdisabled: (row: any) => !canAdd\n\t\t}\n\t];\n\n\t/* LOCAL FUNCTIONS */\n\tconst getEmails = useCallback(\n\t\tasync () => {\n\t\t\tconst { sort, filterQueryString, search } = activePage;\n\t\t\tconst searchFiters = search ? `&subject.like=${search}` : '';\n\t\t\tconst types = [];\n\t\t\ttypes.push(type)\n\t\t\tif(type == \"email\"){\n\t\t\t\ttypes.push(\"approval_email\")\n\t\t\t}\n\t\t\tconst uFilters = appendConditionSafely(filterQueryString, `&type.in=[${types.join(\",\")}]&module.eq=${module}${searchFiters}`);\n\n\t\t\tconst response = await getV1Subjects({\n\t\t\t\t...getToken(),\n\t\t\t\tskip,\n\t\t\t\tlimit,\n\t\t\t\t// search,\n\t\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n\t\t\t\t...(uFilters && uFilters !== '()' && { filters: uFilters })\n\t\t\t});\n\n\t\t\tsetRows(response?.data || []);\n\t\t\tsetPaginationModel({...paginationModel, ...(response?.pagination ||{})});\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tlimit,\n\t\t\tskip,\n\t\t\tactivePage?.search,\n\t\t\tactivePage?.filterQueryString,\n\t\t\tactivePage?.sort\n\t\t]\n\t);\n\n\tconst getCopmanies = async () => {\n\t\t\tconst companiesArr = await fetchApi({apiKey: 'company', filters: { skip: 0, limit: 100, order: \"id:1\" }});\n\t\t\tsetCompanies(companiesArr?.data || []);\n\t\t}\n\n\tconst tableRows = useMemo(() => rows || [], [rows]);\n\n\tconst tableColumns = useMemo(\n\t\t() =>\n\t\t\ttransformTableColumns({\n\t\t\t\tcolumns: generatedColumns.columns,\n\t\t\t\tcurrencySymbol: (row) =>\n\t\t\t\t\trow.original?.currency_data?.symbol || defaultCurrencySymbol(),\n\t\t\t\ttranslationFn: t,\n\t\t\t\tenableFooter: true,\n\t\t\t\t// redirectionLink: ROUTES.VIEW,\n\t\t\t\t// redirectionLinkState: (row) => ({ termsAndCondition: row.original }),\n\t\t\t\trows: tableRows,\n\t\t\t\tstatusClasses: ``,\n\t\t\t}),\n\t\t[tableRows, t, generatedColumns.columns]\n\t);\n\n\tconst handlePaginationModel = (model: IPaginationModel) => {\n\t\tif (activePage.page_size != model?.limit) {\n\t\t\tupdatePageInfo({ page_size: model.limit });\n\t\t}\n\t\tsetPaginationModel(model);\n\t};\n\n\tconst cleanUp = () => {\n\t\tconst pModel = { pageNo: 1, limit: 10, totalCount: 0 };\n\t\tsetPaginationModel(pModel);\n\t};\n\n\t/* USE EFFECTS */\n\tuseEffect(() => {\n\t\tgetEmails();\n\t}, [getEmails]);\n\t\n\n\tuseEffect(() => {\n\t\tgetCopmanies();\n\t\treturn cleanUp;\n\t}, []);\n useEffect(() => {\n\t\tif (actionBarData?.length) {\n\t\t\tlocalStorage.setItem('email-subjects-view', JSON.stringify(actionBarData));\n\t\t}\n\t}, [actionBarData]);\n\n\t/* JSX STRUCTURE STARTED */\n\treturn (\n\t\t<section className='templates'>\n\t\t\t<ActionBar\n\t\t\t\ttitle={type === 'email' ? 'Emails' : 'PDFs'}\n\t\t\t\tdata={actionBarData}\n\t\t\t\tsetData={setActionBarData}\n\t\t\t\tactive={actionBarActiveTab}\n\t\t\t\tsetActive={setActionBarActiveTab}\n\t\t\t\thandleSearch={(search) => {\n\t\t\t\t\tupdatePageInfo({ search });\n\t\t\t\t\tsetPaginationModel({ ...paginationModel, pageNo: 1 });\n\t\t\t\t}}\n\t\t\t\tdisabledViews={['Kanban', 'Calendar', 'Gantt',viewTypes.GRID]}\n\t\t\t\tfields={schemaFields}\n\t\t\t\tselectedIds={selectedRow}\n\t\t\t\tbutton={false}\n\t\t\t/>\n\t\t\t\t\t{actionBarActiveTab === viewTypes.TABLE && (\n\t\t\t\t\t\t<MaterialTable\n\t\t\t\t\t\t\trows={tableRows || []}\n\t\t\t\t\t\t\tcolumns={tableColumns}\n\t\t\t\t\t\t\tpaginationModel={paginationModel}\n\t\t\t\t\t\t\ttotalPages={total}\n\t\t\t\t\t\t\tcolumnOrder={['mrt-row-select', ...generatedColumns.orderKeys]}\n\t\t\t\t\t\t\tstates={{ isLoading: isFetching }}\n\t\t\t\t\t\t\tonSortingChange={(sort) => updatePageInfo({ sort })}\n\t\t\t\t\t\t\tenableColumnDragging={false}\n\t\t\t\t\t\t\tenableEditing={false}\n\t\t\t\t\t\t\tonSelectRow={(r) =>\n\t\t\t\t\t\t\t\tsetSelectedRow(r.map((ele) => ele.original.id))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tenableAddCustomField={false}\n\t\t\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t\t\t\tisResetRow={false}\n\t\t\t\t\t\t\thandleColumnOrdering={(colOrder) =>\n\t\t\t\t\t\t\t\tupdateGeneratedColumns({ orderKeys: colOrder.slice(1) })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonColumnVisibility={(columns: MaterialTableColumnProps[]) =>\n\t\t\t\t\t\t\t\tupdateGeneratedColumns({ columns: columns })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{actionBarActiveTab === viewTypes.GRID && (\n\t\t\t\t\t\t<GridCard\n\t\t\t\t\t\t\tdata={tableRows}\n\t\t\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{!actionBarActiveTab && (\n\t\t\t\t\t\t<Fallback\n\t\t\t\t\t\t\theading={t('rental.settings.termsAndConditions.title')}\n\t\t\t\t\t\t\tsubHeading='No data available'\n\t\t\t\t\t\t\ticon={<img src={logo.invoiceFallback} />}>\n\t\t\t\t\t\t</Fallback>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<Footer\n\t\t\t\t\t\ttotal={total}\n\t\t\t\t\t\tpaginationModel={{\n\t\t\t\t\t\t\t...paginationModel,\n\t\t\t\t\t\t\tlimit: activePage.page_size\n\t\t\t\t\t\t}}\n\t\t\t\t\t\thandlePaginationModel={handlePaginationModel}\n\t\t\t\t\t\tresource=''\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* Action Menu */}\n\t\t\t\t\t<Menu\n\t\t\t\t\t\tanchorEl={actionAnchorEl}\n\t\t\t\t\t\topen={Boolean(actionAnchorEl)}\n\t\t\t\t\t\tonClose={() => setActionAnchorEl(null)}>\n\t\t\t\t\t\t<MenuItem>\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t\t\t{t('common.upload')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem>\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t\t\t{t('common.print')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</Menu>\n\t\t\t\t\t{showTemplateModal && (\n\t\t\t\t\t\t<TemplateModal \n\t\t\t\t\t\t\temail={showTemplateModal} \n\t\t\t\t\t\t\tonClose={() => setShowTemplateModal(null)} \n\t\t\t\t\t\t\topen={showTemplateModal !== null} \n\t\t\t\t\t\t\tcompanies={companies}\n\t\t\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{showCompanySelectionModal && (\n\t\t\t\t\t\t<CompanySelectionModal \n\t\t\t\t\t\t\tisOpen={showCompanySelectionModal !== null} \n\t\t\t\t\t\t\tsetIsOpen={setShowCompanySelectionModal} \n\t\t\t\t\t\t\tcompanies={companies} \n\t\t\t\t\t\t\temail={showCompanySelectionModal}\n\t\t\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t</section>\n\t);\n};\n\nexport default Templates;\n"],"names":["logo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../src/views/template-editor/templates.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport ActionBar from '../../components/action-bar/action-bar';\nimport viewTypes from '../../constants/action-bar';\nimport MaterialTable, { MaterialTableColumnProps } from '../../components/material-table/material-table';\nimport Typography from '../../components/typography/typography';\nimport Fallback from '../../components/fallback/fallback';\nimport Menu from '../../components/menu/menu';\nimport Footer from '../../components/footer/footer';\nimport useDeepMemo from '../../hooks/use-deep-memo';\nimport { PageState } from '../../contexts/page-context';\nimport { usePages } from '../../hooks/use-pages';\nimport { transformTableColumns } from '../../utils/common-utility';\nimport { appendConditionSafely, defaultCurrencySymbol, getToken } from '../../utils/common';\nimport logo from '../../assets/images';\nimport { IPaginationModel } from '../../@types/pagination-model';\nimport { fetchApi } from '../../utils/api';\n\nimport { MenuItem } from '@mui/material';\n\n// import GridCard from './grid-view/grid-view';\nimport { useTranslation } from 'react-i18next';\nimport { enqueueSnackbar } from 'notistack';\n\nimport { templateRoutes } from './utils/common';\nimport { IEmail, ITemplateProps, Pagination } from './utils/types';\nimport { useNavigate } from 'react-router-dom';\n\nimport { usePermissions } from '../../hooks/use-permissions';\nimport { getV1Subjects } from '../../api-client/api.system-feature/api';\nimport TemplateModal from './template-modal/template-modal';\nimport CompanySelectionModal from './company-selection-modal/company-selection-modal';\nimport { setBaseUrl } from '../../api-client/api.rbac/api';\n\nimport './templates.scss';\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\n\ninterface ActionData {\n\tlabel: string;\n\tposition: number;\n}\n\nconst Templates: React.FC<ITemplateProps> = ({ type, module, modulePath }) => {\n const { t } = useTranslation();\n\tconst {\n\t\tactivePage: aPage,\n\t\tupdatePageInfo,\n\t\tschemaFields,\n\t\tgeneratedColumns,\n\t\tupdateGeneratedColumns,\n\t\t// error: pageError\n\t} = usePages();\n\tconst activePage = useDeepMemo<PageState>(aPage);\n\t/* LOCAL STATES */\n\tconst [actionAnchorEl, setActionAnchorEl] = useState<null | HTMLElement>(null);\n const viewEmails = localStorage.getItem('email-subjects-view');\n const [actionBarData, setActionBarData] = useState<ActionData[]>(viewEmails ? JSON.parse(viewEmails) : [{ label: 'Table', position: 0 }]);\n\n const [actionBarActiveTab, setActionBarActiveTab] = useState<string>(viewTypes.TABLE);\n\tconst [paginationModel, setPaginationModel] = useState<Pagination>({ pageNo: 1, limit: 10, totalCount: 0, skip: 0 }); \n\tconst [rows, setRows] = useState<any[]>([]); \n\tconst [isFetching, setIsFetching] = useState<boolean>(false); \n\tconst [selectedRow, setSelectedRow] = useState([]);\n\tconst [showTemplateModal, setShowTemplateModal] = useState<IEmail | null>(null);\n\tconst [showCompanySelectionModal, setShowCompanySelectionModal] = useState<IEmail | null>(null);\n\tconst [companies, setCompanies] = useState<Record<string, any>[]>([]);\n\t/* VARS */\n\tconst navigate = useNavigate();\n\tconst { pageNo, limit: pLimit, totalCount } = paginationModel;\n\tconst limit = activePage.page_size || pLimit;\n\tconst total = limit ? Math.ceil(totalCount / limit) : 0;\n\tconst skip = limit * (pageNo - 1);\n\tconst permissions = usePermissions();\n\tconst ROUTES = templateRoutes(modulePath, type);\n\n\tconst SubjectPermissions = permissions?.Subjects || {};\n\tconst ConditionsImport = permissions?.RentalTerms?.ConditionsImport || {};\n\t\n\tconst {\n\t\tcanAdd = false,\n\t\tcanEdit = false,\n\t\tcanDelete = false,\n\t} = SubjectPermissions;\n\n\tconst { canAdd: canImport = false } = ConditionsImport;\n\n\tconst handleNewEmail = (email) => {\n\t\tif(!companies?.length) {\n\t\t\tenqueueSnackbar('Please add a company first', { variant: 'error' })\n\t\t\treturn\n\t\t}\n\n\t\tif(companies?.length > 1) {\n\t\t\tsetShowCompanySelectionModal(email)\n\t\t} else{\n\t\t\tnavigate(ROUTES.ADD_TEMPLATE(email._id), { state: { company_id: companies[0]?.id || companies[0]?.value }})\n\t\t}\n\t};\n \n\tconst rowActionMenu = [\n\t\t{\n\t\t\tlabel: 'New Template',\n\t\t\thandleAction: (email: IEmail) => handleNewEmail(email),\n\t\t\tdisabled: (row: any) => !canEdit\n\t\t},\n\t\t{\n\t\t\tlabel: 'Add From Template',\n\t\t\thandleAction: (email: IEmail) => setShowTemplateModal(email),\n\t\t\tdisabled: (row: any) => !canAdd\n\t\t}\n\t];\n\n\t/* LOCAL FUNCTIONS */\n\tconst getEmails = useCallback(\n\t\tasync () => {\n\t\t\tconst { sort, filterQueryString, search } = activePage;\n\t\t\tconst searchFiters = search ? `&subject.like=${search}` : '';\n\t\t\tconst types = [];\n\t\t\ttypes.push(type)\n\t\t\tif(type == \"email\"){\n\t\t\t\ttypes.push(\"approval_email\")\n\t\t\t}\n\t\t\tconst uFilters = appendConditionSafely(filterQueryString, `&type.in=[${types.join(\",\")}]&module.eq=${module}${searchFiters}`);\n\n\t\t\tconst response = await getV1Subjects({\n\t\t\t\t...getToken(),\n\t\t\t\tskip,\n\t\t\t\tlimit,\n\t\t\t\t// search,\n\t\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n\t\t\t\t...(uFilters && uFilters !== '()' && { filters: uFilters })\n\t\t\t});\n\n\t\t\tsetRows(response?.data || []);\n\t\t\tsetPaginationModel({...paginationModel, ...(response?.pagination ||{})});\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tlimit,\n\t\t\tskip,\n\t\t\tactivePage?.search,\n\t\t\tactivePage?.filterQueryString,\n\t\t\tactivePage?.sort\n\t\t]\n\t);\n\n\tconst getCopmanies = async () => {\n\t\t\tconst companiesArr = await fetchApi({apiKey: 'company', filters: { skip: 0, limit: 100, order: \"id:1\" }});\n\t\t\tsetCompanies(companiesArr?.data || []);\n\t\t}\n\n\tconst tableRows = useMemo(() => rows || [], [rows]);\n\n\tconst tableColumns = useMemo(\n\t\t() =>\n\t\t\ttransformTableColumns({\n\t\t\t\tcolumns: generatedColumns.columns,\n\t\t\t\tcurrencySymbol: (row) =>\n\t\t\t\t\trow.original?.currency_data?.symbol || defaultCurrencySymbol(),\n\t\t\t\ttranslationFn: t,\n\t\t\t\tenableFooter: true,\n\t\t\t\t// redirectionLink: ROUTES.VIEW,\n\t\t\t\t// redirectionLinkState: (row) => ({ termsAndCondition: row.original }),\n\t\t\t\trows: tableRows,\n\t\t\t\tstatusClasses: ``,\n\t\t\t}),\n\t\t[tableRows, t, generatedColumns.columns]\n\t);\n\n\tconst handlePaginationModel = (model: IPaginationModel) => {\n\t\tif (activePage.page_size != model?.limit) {\n\t\t\tupdatePageInfo({ page_size: model.limit });\n\t\t}\n\t\tsetPaginationModel(model);\n\t};\n\n\tconst cleanUp = () => {\n\t\tconst pModel = { pageNo: 1, limit: 10, totalCount: 0 };\n\t\tsetPaginationModel(pModel);\n\t};\n\n\t/* USE EFFECTS */\n\tuseEffect(() => {\n\t\tgetEmails();\n\t}, [getEmails]);\n\t\n\n\tuseEffect(() => {\n\t\tgetCopmanies();\n\t\treturn cleanUp;\n\t}, []);\n useEffect(() => {\n\t\tif (actionBarData?.length) {\n\t\t\tlocalStorage.setItem('email-subjects-view', JSON.stringify(actionBarData));\n\t\t}\n\t}, [actionBarData]);\n\n\t/* JSX STRUCTURE STARTED */\n\treturn (\n\t\t<section className='templates'>\n\t\t\t<ActionBar\n\t\t\t\ttitle={type === 'email' ? 'Emails' : 'PDFs'}\n\t\t\t\tdata={actionBarData}\n\t\t\t\tsetData={setActionBarData}\n\t\t\t\tactive={actionBarActiveTab}\n\t\t\t\tsetActive={setActionBarActiveTab}\n\t\t\t\thandleSearch={(search) => {\n\t\t\t\t\tupdatePageInfo({ search });\n\t\t\t\t\tsetPaginationModel({ ...paginationModel, pageNo: 1 });\n\t\t\t\t}}\n\t\t\t\tdisabledViews={['Kanban', 'Calendar', 'Gantt',viewTypes.GRID]}\n\t\t\t\tfields={schemaFields}\n\t\t\t\tselectedIds={selectedRow}\n\t\t\t\tbutton={false}\n\t\t\t/>\n\t\t\t\t\t{actionBarActiveTab === viewTypes.TABLE && (\n\t\t\t\t\t\t<MaterialTable\n\t\t\t\t\t\t\trows={tableRows || []}\n\t\t\t\t\t\t\tcolumns={tableColumns}\n\t\t\t\t\t\t\tpaginationModel={paginationModel}\n\t\t\t\t\t\t\ttotalPages={total}\n\t\t\t\t\t\t\tcolumnOrder={['mrt-row-select', ...generatedColumns.orderKeys]}\n\t\t\t\t\t\t\tstates={{ isLoading: isFetching }}\n\t\t\t\t\t\t\tonSortingChange={(sort) => updatePageInfo({ sort })}\n\t\t\t\t\t\t\tenableColumnDragging={false}\n\t\t\t\t\t\t\tenableEditing={false}\n\t\t\t\t\t\t\tonSelectRow={(r) =>\n\t\t\t\t\t\t\t\tsetSelectedRow(r.map((ele) => ele.original.id))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tenableAddCustomField={false}\n\t\t\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t\t\t\tisResetRow={false}\n\t\t\t\t\t\t\thandleColumnOrdering={(colOrder) =>\n\t\t\t\t\t\t\t\tupdateGeneratedColumns({ orderKeys: colOrder.slice(1) })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonColumnVisibility={(columns: MaterialTableColumnProps[]) =>\n\t\t\t\t\t\t\t\tupdateGeneratedColumns({ columns: columns })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{actionBarActiveTab === viewTypes.GRID && (\n\t\t\t\t\t\t<GridCard\n\t\t\t\t\t\t\tdata={tableRows}\n\t\t\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{!actionBarActiveTab && (\n\t\t\t\t\t\t<Fallback\n\t\t\t\t\t\t\theading={t('rental.settings.termsAndConditions.title')}\n\t\t\t\t\t\t\tsubHeading='No data available'\n\t\t\t\t\t\t\ticon={<img src={logo.invoiceFallback} />}>\n\t\t\t\t\t\t</Fallback>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<Footer\n\t\t\t\t\t\ttotal={total}\n\t\t\t\t\t\tpaginationModel={{\n\t\t\t\t\t\t\t...paginationModel,\n\t\t\t\t\t\t\tlimit: activePage.page_size\n\t\t\t\t\t\t}}\n\t\t\t\t\t\thandlePaginationModel={handlePaginationModel}\n\t\t\t\t\t\tresource=''\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* Action Menu */}\n\t\t\t\t\t<Menu\n\t\t\t\t\t\tanchorEl={actionAnchorEl}\n\t\t\t\t\t\topen={Boolean(actionAnchorEl)}\n\t\t\t\t\t\tonClose={() => setActionAnchorEl(null)}>\n\t\t\t\t\t\t<MenuItem>\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t\t\t{t('common.upload')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem>\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t\t\t{t('common.print')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</Menu>\n\t\t\t\t\t{showTemplateModal && (\n\t\t\t\t\t\t<TemplateModal \n\t\t\t\t\t\t\temail={showTemplateModal} \n\t\t\t\t\t\t\tonClose={() => setShowTemplateModal(null)} \n\t\t\t\t\t\t\topen={showTemplateModal !== null} \n\t\t\t\t\t\t\tcompanies={companies}\n\t\t\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{showCompanySelectionModal && (\n\t\t\t\t\t\t<CompanySelectionModal \n\t\t\t\t\t\t\tisOpen={showCompanySelectionModal !== null} \n\t\t\t\t\t\t\tsetIsOpen={setShowCompanySelectionModal} \n\t\t\t\t\t\t\tcompanies={companies} \n\t\t\t\t\t\t\temail={showCompanySelectionModal}\n\t\t\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t</section>\n\t);\n};\n\nexport default Templates;\n"],"names":["logo"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),a=,/* empty css */i=,/* empty css */s=,/* empty css */l=,/* empty css */n=,/* empty css */o=,/* empty css */r=,/* empty css */u=,/* empty css */d=,/* empty css */c=,/* empty css */m=,/* empty css */p=,/* empty css */g=,/* empty css */j=require("react-i18next"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),a=,/* empty css */i=,/* empty css */s=,/* empty css */l=,/* empty css */n=,/* empty css */o=,/* empty css */r=,/* empty css */u=,/* empty css */d=,/* empty css */c=,/* empty css */m=,/* empty css */p=,/* empty css */g=,/* empty css */j=require("react-i18next"),f=,/* empty css */x=,/* empty css */b=require("react-router-dom"),y=,/* empty css */h=,/* empty css */v=,/* empty css */q=,/* empty css */S=;/* empty css */;/* empty css */var C=;/* empty css */S.setBaseUrl("https://apidev.erpforce.co/rbac"),exports.default=({type:S,module:k,modulePath:A})=>{const{t:w}=j.useTranslation(),{activePage:_,updatePageInfo:M,schemaFields:T,generatedColumns:E,updateGeneratedColumns:P}=d.usePages(),N=u.default(_),[I,R]=t.useState(null),D=localStorage.getItem("email-subjects-view"),[F,O]=t.useState(D?JSON.parse(D):[{label:"Table",position:0}]),[$,G]=t.useState(i.default.TABLE),[z,B]=t.useState({pageNo:1,limit:10,totalCount:0,skip:0}),[K,L]=t.useState([]),[V]=t.useState(!1),[J,Q]=t.useState([]),[H,U]=t.useState(null),[W,X]=t.useState(null),[Y,Z]=t.useState([]),ee=b.useNavigate(),{pageNo:te,limit:ae,totalCount:ie}=z,se=N.page_size||ae,le=se?Math.ceil(ie/se):0,ne=se*(te-1),oe=y.usePermissions(),re=x.templateRoutes(A,S),ue=(null==oe?void 0:oe.Subjects)||{},{canAdd:de=!1,canEdit:ce=!1}=ue,me=[{label:"New Template",handleAction:e=>(e=>{var t,a;(null==Y?void 0:Y.length)?(null==Y?void 0:Y.length)>1?X(e):ee(re.ADD_TEMPLATE(e._id),{state:{company_id:(null==(t=Y[0])?void 0:t.id)||(null==(a=Y[0])?void 0:a.value)}}):f.enqueueSnackbar("Please add a company first",{variant:"error"})})(e),disabled:e=>!ce},{label:"Add From Template",handleAction:e=>U(e),disabled:e=>!de}],pe=t.useCallback(async()=>{const{sort:e,filterQueryString:t,search:a}=N,i=a?`&subject.like=${a}`:"",s=[];s.push(S),"email"==S&&s.push("approval_email");const l=m.appendConditionSafely(t,`&type.in=[${s.join(",")}]&module.eq=${k}${i}`),n=await h.getV1Subjects({...m.getToken(),skip:ne,limit:se,...e&&{order:`${e.id}:${e.desc?-1:1}`},...l&&"()"!==l&&{filters:l}});L((null==n?void 0:n.data)||[]),B({...z,...(null==n?void 0:n.pagination)||{}})},[se,ne,null==N?void 0:N.search,null==N?void 0:N.filterQueryString,null==N?void 0:N.sort]),ge=t.useMemo(()=>K||[],[K]),je=t.useMemo(()=>c.transformTableColumns({columns:E.columns,currencySymbol:e=>{var t,a;return(null==(a=null==(t=e.original)?void 0:t.currency_data)?void 0:a.symbol)||m.defaultCurrencySymbol()},translationFn:w,enableFooter:!0,rows:ge,statusClasses:""}),[ge,w,E.columns]),fe=()=>{B({pageNo:1,limit:10,totalCount:0})};return t.useEffect(()=>{pe()},[pe]),t.useEffect(()=>((async()=>{const e=await g.fetchApi({apiKey:"company",filters:{skip:0,limit:100,order:"id:1"}});Z((null==e?void 0:e.data)||[])})(),fe),[]),t.useEffect(()=>{(null==F?void 0:F.length)&&localStorage.setItem("email-subjects-view",JSON.stringify(F))},[F]),/* @__PURE__ */e.jsxs("section",{className:"templates",children:[
|
|
2
2
|
/* @__PURE__ */e.jsx(a.default,{title:"email"===S?"Emails":"PDFs",data:F,setData:O,active:$,setActive:G,handleSearch:e=>{M({search:e}),B({...z,pageNo:1})},disabledViews:["Kanban","Calendar","Gantt",i.default.GRID],fields:T,selectedIds:J,button:!1}),$===i.default.TABLE&&/* @__PURE__ */e.jsx(s.default,{rows:ge||[],columns:je,paginationModel:z,totalPages:le,columnOrder:["mrt-row-select",...E.orderKeys],states:{isLoading:V},onSortingChange:e=>M({sort:e}),enableColumnDragging:!1,enableEditing:!1,onSelectRow:e=>Q(e.map(e=>e.original.id)),enableAddCustomField:!1,rowActionMenu:me,isResetRow:!1,handleColumnOrdering:e=>P({orderKeys:e.slice(1)}),onColumnVisibility:e=>P({columns:e})}),$===i.default.GRID&&/* @__PURE__ */e.jsx(GridCard,{data:ge,rowActionMenu:me}),!$&&/* @__PURE__ */e.jsx(n.default,{heading:w("rental.settings.termsAndConditions.title"),subHeading:"No data available",icon:/* @__PURE__ */e.jsx("img",{src:p.images.invoiceFallback})}),
|
|
3
3
|
/* @__PURE__ */e.jsx(r.default,{total:le,paginationModel:{...z,limit:N.page_size},handlePaginationModel:e=>{N.page_size!=(null==e?void 0:e.limit)&&M({page_size:e.limit}),B(e)},resource:""}),
|
|
4
4
|
/* @__PURE__ */e.jsxs(o.default,{anchorEl:I,open:Boolean(I),onClose:()=>R(null),children:[
|