@infuro/cms-core 1.0.14 → 1.0.15
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/admin.cjs +232 -4
- package/dist/admin.cjs.map +1 -1
- package/dist/admin.js +232 -4
- package/dist/admin.js.map +1 -1
- package/dist/api.cjs +390 -58
- package/dist/api.cjs.map +1 -1
- package/dist/api.d.cts +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.js +390 -58
- package/dist/api.js.map +1 -1
- package/dist/{index-Be8NLxu-.d.cts → index-BQnqJ7EO.d.cts} +2 -0
- package/dist/{index-CjBf9dAb.d.ts → index-BiagwMjV.d.ts} +2 -0
- package/dist/index.cjs +498 -198
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +17 -3
- package/dist/index.d.ts +17 -3
- package/dist/index.js +498 -198
- package/dist/index.js.map +1 -1
- package/dist/migrations/1775000000000-ProductUomTypeOrderItemSnapshots.ts +29 -0
- package/package.json +1 -1
package/dist/admin.js
CHANGED
|
@@ -334,7 +334,7 @@ var AdminConfigContext = createContext(defaultValue);
|
|
|
334
334
|
var INFURO_FAVICON_BASE64 = "data:image/x-icon;base64,AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAKBEAAJ4EAAAwMAAAAQAgAGgmAADGFQAAKAAAABAAAAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8V////bv///7D////R////0f///7D///9u////FQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wL///9s0qun7q9qYv/DkYv/6tfV///+/v///////////////+7///9r////AgAAAAAAAAAAAAAAAP///wL///+Q/////sqcl/+WOzH/ljsx/5c9M//AiYP/+/j4/////////////////v///5D///8CAAAAAAAAAAD///9s/////v/////Oo5//lz00/5Y7Mf+WOzH/ljsx/7Z3cP/9+/v////////////////+////bAAAAAD///8V////7v///////////v39//Tq6f/QqKP/m0U8/5Y7Mf+WOzH/z6ah/////////////////////+7///8V////bv///////////////////////////////+XOy/+ZQTf/ljsx/59MQ//69fX/////////////////////bv///7D/////////////////////////////////////wYyG/5Y7Mf+WOzH/4MTC/////////////////////7D////R//////////////////7+//79/f/+/f3//v39/+DGw/+WOzH/ljsx/82inf/////////////////////R////0f///////////////9Svq/+mWVH/pllR/6ZZUf+iUUj/ljsx/5Y7Mf/KnJf/////////////////////0f///7D////////////////KnJf/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/062p/////////////////////7D///9u////////////////0amk/6FQSP+hUEj/oVBI/6JRSP+mWVH/plpS/+7g3v////////////////////9u////Ff///+7///////////7+/v/9/Pz/9u7t/8SSjP/Dj4r/9ezr//79/f/////////////////////u////FQAAAAD///9s/////v///////////////8OPif+WOzH/ljsx/7+Jgv/////////////////////+////bAAAAAAAAAAA////Av///5D////+//////////+9hH7/ljsx/5Y7Mf+8g3z////////////////+////kP///wIAAAAAAAAAAAAAAAD///8C////bP///+7/////8OTi/7R0bP+zcmr/8OLh///////////u////bP///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8V////bv///7D////R////0f///7D///9u////FQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8C////Hf///0n///95////mf///67///+u////mf///3n///9J////Hf///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8I////Tf///7D////p/////v////////////////////////////////////7////p////sP///03///8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8C////Pfjz8r7HlpH7wY2H/86lof/iysf/9e3s///+/v//////////////////////////////////////////+////77///89////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Cf///37////z9Ovq/6BORf+WOzH/ljsx/5Y8Mv+hUEf/v4iC/+rY1v/+/f3///////////////////////////////////////////H///99////CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wr///+d/////P/////06+r/oE5F/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/m0Q7/8WTjf/38PD///////////////////////////////////////////z///+d////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8J////nf////3///////////Tr6v+gTkX/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/61mX//w4+L///////////////////////////////////////////3///+d////CQAAAAAAAAAAAAAAAAAAAAAAAAAA////Av///37////8////////////////9Ovq/6BORf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/6daUv/v4uD///////////////////////////////////////////z///9+////AgAAAAAAAAAAAAAAAAAAAAD///89////8//////////////////////48fD/rGRc/5pCOf+YPjT/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/6xkXf/37+////////////////////////////////////////////P///89AAAAAAAAAAAAAAAA////CP///77////////////////////////////////7+Pf/8eXj/+DGw/++hn//m0U8/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/8GLhf/9/Pz//////////////////////////////////////////77///8IAAAAAAAAAAD///9N////+/////////////////////////////////////////////////7+/v/p1tP/rGRd/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/mkI4/+XPzf//////////////////////////////////////////+////00AAAAA////Av///7D////////////////////////////////////////////////////////////////06+r/r2pi/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/tndw//38+///////////////////////////////////////////sP///wL///8d////6f/////////////////////////////////////////////////////////////////////x5eP/olJJ/5Y7Mf+WOzH/ljsx/5Y7Mf+aQjn/7dza///////////////////////////////////////////p////Hf///0n////+///////////////////////////////////////////////////////////////////////////Ur6v/ljwy/5Y7Mf+WOzH/ljsx/5Y7Mf/Oo5////////////////////////////////////////////7///9J////ef////////////////////////////////////////////////////////////////////////////////fw7/+jVEv/ljsx/5Y7Mf+WOzH/ljsx/7Nxav///////////////////////////////////////////////3n///+Z/////////////////////////////////////////////////////////////////////////////////////7yCfP+WOzH/ljsx/5Y7Mf+WOzH/pllQ//r29f//////////////////////////////////////////mf///67///////////////////////////////////////////79/f/9/Pz//fz8//38/P/9/Pz//fz8//38/P/9/Pz/yZuW/5Y7Mf+WOzH/ljsx/5Y7Mf+gT0b/9evr//////////////////////////////////////////+u////rv/////////////////////////////////////69vb/wo2I/7Z3cf+2d3H/tndx/7Z3cf+2d3H/tndx/7Z3cf+lV0//ljsx/5Y7Mf+WOzH/ljsx/6BORf/06+r//////////////////////////////////////////67///+Z//////////////////////////////////////Tr6v+gTkX/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/oE5F//Tr6v//////////////////////////////////////////mf///3n/////////////////////////////////////9Ovq/6BORf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+lVk7/+fPz//////////////////////////////////////////95////Sf////7////////////////////////////////06+r/oE5F/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/7FuZ////v7//////////////////////////////////////v///0n///8d////6f////////////////////////////////Tr6v+gTkX/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/zKCb///////////////////////////////////////////p////Hf///wL///+w////////////////////////////////+PLx/7d4cf+tZl//rWZf/61mX/+tZl//rWZf/61mX/+tZl//rmdg/7Z3cP+2d3H/tndx/7h7df/w4uH//////////////////////////////////////////7D///8CAAAAAP///03////7/////////////////////////////////Pv6//z6+f/8+vn//Pr5//z6+f/z6un/48zJ/+LKx//y5+b//fz8//38/P/9/Pz//fz8///////////////////////////////////////////7////TQAAAAAAAAAA////CP///77/////////////////////////////////////////////////////4MXC/6VXTv+WPDL/ljwy/6JRSP/aubb///7+/////////////////////////////////////////////////////77///8IAAAAAAAAAAAAAAAA////Pf////P///////////////////////////////////////////Xs6/+jU0r/ljsx/5Y7Mf+WOzH/ljsx/59MQv/w5OL////////////////////////////////////////////////z////PQAAAAAAAAAAAAAAAAAAAAD///8C////fv////z/////////////////////////////////////3sK//5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/9m5tf///////////////////////////////////////////P///37///8CAAAAAAAAAAAAAAAAAAAAAAAAAAD///8J////nf////3////////////////////////////////ZuLX/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/17Sw//////////////////////////////////////3///+d////CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K////nf////z//////////////////////////+zc2v+aQzn/ljsx/5Y7Mf+WOzH/ljsx/5pDOf/r2tj////////////////////////////////8////nf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8J////fv////P//////////////////////v39/8eYkv+YPjT/ljsx/5Y7Mf+YPjT/xpSP//79/f//////////////////////////8////37///8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8C////Pf///77////7/////////////////fv6/+DEwf/Ekoz/wY2H/97Bvv/8+vr/////////////////////+////77///89////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CP///03///+w////6f////7////////////////////////////////////+////6f///7D///9N////CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wL///8d////Sf///3n///+Z////rv///67///+Z////ef///0n///8d////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAADAAAABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8E////DP///xr///80////Rv///1n///9q////gP///4D///9q////Wf///0b///80////Gv///wz///8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CP///y7///9g////lP///7v////V////6P////r////8/////P////z////8////+v///+j////V////u////5T///9g////Lv///wgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wf///81////k////8/////v////+v////////////////////////////////////////////////////////////////////r////v////z////5P///81////BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8G////Kv37+3zt3Nrd27y5/Nm6t//fxMH/59LQ//Dk4v/48vH//fv6//////////////////////////////////////////////////////////////////////z////d////fP///yr///8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xH///9g////wvz5+ffNop3+m0U8/5c+NP+cRz7/pFVN/65oYP+8gnv/0qun/+jU0v/59fT//v7+///////////////////////////////////////////////////////////+////9////8L///9f////EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GP///4n////m/////fv4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+XPTT/m0Q6/6ZaUf/BjIX/6NXT//z5+f////////////////////////////////////////////////////////////////3////k////if///xgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH///8i////pP////f///////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+XPjT/oVFI/8yhnP/x5OP//vz8////////////////////////////////////////////////////////////////9////6T///8i////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yL///+d////8/////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5tEOv+3eHL/48rH//37+/////////////////////////////////////////////////////////////////P///+d////IgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GP///6T////z//////////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+YPjT/qFxT/9y+uv/9+vr////////////////////////////////////////////////////////////////z////pP///xgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8R////if////f///////////////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsy/6NUS//Yt7P//Pn4////////////////////////////////////////////////////////////////9////4n///8RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wb///9g////5v////////////////////////////////v4+P/KnZj/mUI4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5c8Mv+pXlb/38PA//38/P///////////////////////////////////////////////////////////////+b///9g////BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yr////C/////f////////////////////////////////38+//dwLz/qF1V/51JP/+bRDv/mD40/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+XPTP/qWBY/+vZ2P///v7///////////////////////////////////////////////////////////3////C////KgAAAAAAAAAAAAAAAAAAAAAAAAAA////B////3z////3///////////////////////////////////////////9+/r/9/Dv/+zc2f/dwLz/x5iT/7BrY/+eS0H/lz0z/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/lzwy/7d6c//06un////////////////////////////////////////////////////////////////3////fP///wcAAAAAAAAAAAAAAAAAAAAA////Nf///93////+//////////////////////////////////////////////////////7+/v/+/v7//fz8//Hm5f/XtLH/s3Fq/5lCOP+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/51JP//Sq6b//Pn5///////////////////////////////////////////////////////////+////3f///zUAAAAAAAAAAAAAAAD///8I////k/////z////////////////////////////////////////////////////////////////////////////////9+/v/8eTj/8aVkP+dRz7/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5c8Mv+vamL/7uDf/////////////////////////////////////////////////////////////////P///5P///8IAAAAAAAAAAD///8u////z/////////////////////////////////////////////////////////////////////////////////////////////////fx8P/ImZP/nUg//5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+ZQTj/0qyo//38/P///////////////////////////////////////////////////////////////8////8uAAAAAP///wT///9g////7//////////////////////////////////////////////////////////////////////////////////////////////////////07Or/xJGL/5hAN/+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/rGRd//Tq6P///////////////////////////////////////////////////////////////+////9g////BP///wz///+U////+v////////////////////////////////////////////////////////////////////////////////////////////////////////7/8+jm/7Nya/+WPDP/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/mkQ7/9m3s////v7///////////////////////////////////////////////////////////r///+U////DP///xr///+7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/+HHxP+hUEf/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljwy/7yBe//69/f///////////////////////////////////////////////////////////////+7////Gv///zT////V//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////bu7f+7gHr/mD40/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/6xkXP/u4N/////////////////////////////////////////////////////////////////V////NP///0b////o//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////38/P/XtK//nEY9/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/6BNRP/iycb////////////////////////////////////////////////////////////////o////Rv///1n////6///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////o1NL/pVhQ/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5xGPP/Yt7L//v39///////////////////////////////////////////////////////////6////Wf///2r////8///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////06un/sW1m/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5pDOf/PpKD//Pr5///////////////////////////////////////////////////////////8////av///4D////8/////////////////////////////////////////////////////////////v7//fv7//37+v/9+/r//fv6//37+v/9+/r//fv6//37+v/9+/r//fv6//37+v/06un/snBp/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5lBOP/KnJj/+/j4///////////////////////////////////////////////////////////8////gP///4D////8//////////////////////////////////////////////////////79/f/s3Nr/z6ej/8uemv/Lnpr/y56a/8uemv/Lnpr/y56a/8uemv/Lnpr/y56a/8uemv/GlI//o1VM/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5lBOP/KnJf/+/j4///////////////////////////////////////////////////////////8////gP///2r////8//////////////////////////////////////////////////////z5+f/Nop3/m0Q7/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5lBOP/KnJf/+/j4///////////////////////////////////////////////////////////8////av///1n////6//////////////////////////////////////////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5lCOP/KnZj/+/j4///////////////////////////////////////////////////////////6////Wf///0b////o//////////////////////////////////////////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5pDOv/Qp6P//Pr6///////////////////////////////////////////////////////////o////Rv///zT////V//////////////////////////////////////////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/51IP//bvbr//v7+///////////////////////////////////////////////////////////V////NP///xr///+7//////////////////////////////////////////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/6RVTf/n0c////////////////////////////////////////////////////////////////+7////Gv///wz///+U////+v////////////////////////////////////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/7FuZ//z6ej///////////////////////////////////////////////////////////r///+U////DP///wT///9g////7/////////////////////////////////////////////////z4+P/LnZj/mkI5/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/mUE3/8mblf/9+/r//////////////////////////////////////////////////////////+////9g////BAAAAAD///8u////z/////////////////////////////////////////////////38/P/iycb/v4iC/7yCfP+8gnz/vIJ8/7yCfP+8gnz/vIJ8/7yCfP+8gnz/vIJ8/7yCfP+8gnz/voR+/8qcl//Lnpr/y56a/8uemv/Lnpr/zqOf//Hl5P///v7//////////////////////////////////////////////////////////8////8uAAAAAAAAAAD///8I////k/////z////////////////////////////////////////////////9/Pz/+vf2//r39v/69/b/+vf2//r39v/69/b/+vf2//j08//07Ov/7+Df/+7f3v/z6+n/+PPy//z6+v/9+/r//fv6//37+v/9+/r//fv7///+/v///////////////////////////////////////////////////////////P///5P///8IAAAAAAAAAAAAAAAA////Nf///93////+/////////////////////////////////////////////////////////////////////////////v7/9u7t/9i3s/++hn//sW1m/7BsZf+7gnv/066q//Ln5v/+/v7////////////////////////////////////////////////////////////////////////////////+////3f///zUAAAAAAAAAAAAAAAAAAAAA////B////3z////3///////////////////////////////////////////////////////////////////////////17Ov/wo6I/55KQf+XPjT/ljsx/5Y7Mf+XPTP/nEY9/7uBe//x5eP////////////////////////////////////////////////////////////////////////////////3////fP///wcAAAAAAAAAAAAAAAAAAAAAAAAAAP///yr////C/////f////////////////////////////////////////////////////////////////37+//UsKz/nUg//5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5tEO//No57/+/j4//////////////////////////////////////////////////////////////////////3////C////KgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wb///9g////5v////////////////////////////////////////////////////////////////bv7/+5fHb/lz0z/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y8Mv+ycGj/8ujm/////////////////////////////////////////////////////////////////////+b///9g////BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8R////if////f//////////////////////////////////////////////////////////+3e3P+qYlr/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+oXVT/6tnX////////////////////////////////////////////////////////////////9////4n///8RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GP///6T////z/////////////////////////////////////////////////////+vZ1/+oXVT/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+nWlL/6dbU///////////////////////////////////////////////////////////z////pP///xgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yL///+d////8/////////////////////////////////////////////////Hm5f+wa2T/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+uaGD/8OPh//////////////////////////////////////////////////////P///+d////IgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH///8i////pP////f///////////////////////////////////////////r19P/CjYf/mD81/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5g/Nf/BjIb/+fTz////////////////////////////////////////////////9////6T///8i////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GP///4n////m/////f////////////////////////////////7+/v/m0M7/qmFZ/5c9M/+WOzH/ljsx/5Y7Mf+WOzH/lz0z/6leV//lz8z//v7+//////////////////////////////////////3////m////if///xgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xH///9g////wv////f////+///////////////////////////8+vr/4snG/7d4cf+iUUj/mUA3/5c+NP+gTkT/tXVu/+DFw//8+fn////////////////////////////////+////9////8L///9g////EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8G////Kv///3z////d/////P///////////////////////////v38//Tr6v/kzcv/2726/9m6t//jysf/8uno//78/P////////////////////////////////z////d////fP///yr///8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wf///81////k////8/////v////+v////////////////////////////////////////////////////////////////////r////v////z////5P///81////BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CP///y7///9g////lP///7v////V////6P////r////8/////P////z////8////+v///+j////V////u////5T///9g////Lv///wgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8E////DP///xr///80////Rv///1n///9q////gP///4D///9q////Wf///0b///80////Gv///wz///8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==";
|
|
335
335
|
|
|
336
336
|
// src/lib/cms-version.ts
|
|
337
|
-
var CMS_VERSION = true ? "1.0.
|
|
337
|
+
var CMS_VERSION = true ? "1.0.15" : "0.0.0";
|
|
338
338
|
|
|
339
339
|
// src/components/Admin/Sidebar.tsx
|
|
340
340
|
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
@@ -5996,6 +5996,8 @@ function OrderDetailPage({ orderId }) {
|
|
|
5996
5996
|
const [order, setOrder] = useState23(null);
|
|
5997
5997
|
const [loading, setLoading] = useState23(true);
|
|
5998
5998
|
const [error, setError] = useState23(null);
|
|
5999
|
+
const [erpEnabled, setErpEnabled] = useState23(false);
|
|
6000
|
+
const [reposting, setReposting] = useState23(false);
|
|
5999
6001
|
useEffect21(() => {
|
|
6000
6002
|
async function load() {
|
|
6001
6003
|
try {
|
|
@@ -6019,6 +6021,39 @@ function OrderDetailPage({ orderId }) {
|
|
|
6019
6021
|
}
|
|
6020
6022
|
load();
|
|
6021
6023
|
}, [orderId]);
|
|
6024
|
+
useEffect21(() => {
|
|
6025
|
+
let cancelled = false;
|
|
6026
|
+
(async () => {
|
|
6027
|
+
try {
|
|
6028
|
+
const res = await fetch(`/api/orders/${orderId}/repost-erp`);
|
|
6029
|
+
if (!res.ok) return;
|
|
6030
|
+
const data = await res.json();
|
|
6031
|
+
if (!cancelled) setErpEnabled(data.enabled === true);
|
|
6032
|
+
} catch {
|
|
6033
|
+
}
|
|
6034
|
+
})();
|
|
6035
|
+
return () => {
|
|
6036
|
+
cancelled = true;
|
|
6037
|
+
};
|
|
6038
|
+
}, [orderId]);
|
|
6039
|
+
async function handleRepostToErp() {
|
|
6040
|
+
if (reposting) return;
|
|
6041
|
+
setReposting(true);
|
|
6042
|
+
setError(null);
|
|
6043
|
+
try {
|
|
6044
|
+
const res = await fetch(`/api/orders/${orderId}/repost-erp`, { method: "POST" });
|
|
6045
|
+
if (!res.ok) {
|
|
6046
|
+
const body = await res.json().catch(() => ({}));
|
|
6047
|
+
setError(body.error ?? "Failed to repost to ERP");
|
|
6048
|
+
return;
|
|
6049
|
+
}
|
|
6050
|
+
router.refresh();
|
|
6051
|
+
} catch {
|
|
6052
|
+
setError("Failed to repost to ERP");
|
|
6053
|
+
} finally {
|
|
6054
|
+
setReposting(false);
|
|
6055
|
+
}
|
|
6056
|
+
}
|
|
6022
6057
|
if (loading) {
|
|
6023
6058
|
return /* @__PURE__ */ jsx49("div", { className: "rounded-lg bg-white p-6 shadow-md", children: /* @__PURE__ */ jsx49("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ jsx49("span", { className: "text-gray-500", children: "Loading..." }) }) });
|
|
6024
6059
|
}
|
|
@@ -6041,7 +6076,8 @@ function OrderDetailPage({ orderId }) {
|
|
|
6041
6076
|
{
|
|
6042
6077
|
title: `Order ${order.orderNumber}`,
|
|
6043
6078
|
subtitle: /* @__PURE__ */ jsx49("span", { className: "text-sm text-gray-400", children: formatDateTime(order.createdAt) }),
|
|
6044
|
-
closeHref: "/admin/orders"
|
|
6079
|
+
closeHref: "/admin/orders",
|
|
6080
|
+
menuItems: erpEnabled ? [{ label: reposting ? "Reposting..." : "Repost to ERP", onClick: handleRepostToErp }] : void 0
|
|
6045
6081
|
}
|
|
6046
6082
|
),
|
|
6047
6083
|
/* @__PURE__ */ jsx49(
|
|
@@ -9650,6 +9686,8 @@ function ProductEditPage({ productId }) {
|
|
|
9650
9686
|
const [productSlug, setProductSlug] = useState32("");
|
|
9651
9687
|
const [sku, setSku] = useState32("");
|
|
9652
9688
|
const [hsn, setHsn] = useState32("");
|
|
9689
|
+
const [uom, setUom] = useState32("");
|
|
9690
|
+
const [productType, setProductType] = useState32("product");
|
|
9653
9691
|
const [collectionId, setCollectionId] = useState32(null);
|
|
9654
9692
|
const [brandId, setBrandId] = useState32(null);
|
|
9655
9693
|
const [categoryId, setCategoryId] = useState32(null);
|
|
@@ -9663,6 +9701,8 @@ function ProductEditPage({ productId }) {
|
|
|
9663
9701
|
const [specifications, setSpecifications] = useState32([{ key: "", value: "" }]);
|
|
9664
9702
|
const [otherMetadata, setOtherMetadata] = useState32({});
|
|
9665
9703
|
const [facetRows, setFacetRows] = useState32([{ name: "", value: "" }]);
|
|
9704
|
+
const [taxMasterList, setTaxMasterList] = useState32([]);
|
|
9705
|
+
const [taxRows, setTaxRows] = useState32([{ taxId: "", rate: "" }]);
|
|
9666
9706
|
const [seoId, setSeoId] = useState32(null);
|
|
9667
9707
|
const [seo, setSeo] = useState32({
|
|
9668
9708
|
seoTitle: "",
|
|
@@ -9676,11 +9716,12 @@ function ProductEditPage({ productId }) {
|
|
|
9676
9716
|
let cancelled = false;
|
|
9677
9717
|
(async () => {
|
|
9678
9718
|
try {
|
|
9679
|
-
const [colRes, brandRes, catRes, attrRes] = await Promise.all([
|
|
9719
|
+
const [colRes, brandRes, catRes, attrRes, taxesRes] = await Promise.all([
|
|
9680
9720
|
fetch("/api/collections?limit=500"),
|
|
9681
9721
|
fetch("/api/brands?limit=500"),
|
|
9682
9722
|
fetch("/api/product_categories?limit=500"),
|
|
9683
|
-
fetch("/api/attributes?limit=500")
|
|
9723
|
+
fetch("/api/attributes?limit=500"),
|
|
9724
|
+
fetch("/api/taxes?limit=200&sortField=name&sortOrder=asc")
|
|
9684
9725
|
]);
|
|
9685
9726
|
let attrList = [];
|
|
9686
9727
|
if (!cancelled && colRes.ok) {
|
|
@@ -9699,6 +9740,13 @@ function ProductEditPage({ productId }) {
|
|
|
9699
9740
|
const d = await attrRes.json();
|
|
9700
9741
|
if (Array.isArray(d.data)) attrList = d.data;
|
|
9701
9742
|
}
|
|
9743
|
+
if (!cancelled && taxesRes.ok) {
|
|
9744
|
+
const d = await taxesRes.json();
|
|
9745
|
+
const raw = Array.isArray(d.data) ? d.data : [];
|
|
9746
|
+
setTaxMasterList(
|
|
9747
|
+
raw.filter((t) => t.active !== false && t.deleted !== true)
|
|
9748
|
+
);
|
|
9749
|
+
}
|
|
9702
9750
|
if (create) {
|
|
9703
9751
|
if (!cancelled) {
|
|
9704
9752
|
setProductSlug("");
|
|
@@ -9714,6 +9762,8 @@ function ProductEditPage({ productId }) {
|
|
|
9714
9762
|
setProductSlug(typeof product.slug === "string" ? product.slug : "");
|
|
9715
9763
|
setSku(product.sku ?? "");
|
|
9716
9764
|
setHsn(product.hsn ?? "");
|
|
9765
|
+
setUom(product.uom != null ? String(product.uom) : "");
|
|
9766
|
+
setProductType(product.type === "service" ? "service" : "product");
|
|
9717
9767
|
setCollectionId(product.collectionId ?? null);
|
|
9718
9768
|
setBrandId(product.brandId ?? null);
|
|
9719
9769
|
setCategoryId(product.categoryId ?? null);
|
|
@@ -9744,6 +9794,19 @@ function ProductEditPage({ productId }) {
|
|
|
9744
9794
|
const seoData = await fetchSeo(product.seoId);
|
|
9745
9795
|
if (!cancelled) setSeo(seoData);
|
|
9746
9796
|
}
|
|
9797
|
+
const ptRes = await fetch(`/api/product_taxes?productId=${productId}&limit=100`);
|
|
9798
|
+
if (ptRes.ok && !cancelled) {
|
|
9799
|
+
const ptData = await ptRes.json();
|
|
9800
|
+
const pts = Array.isArray(ptData.data) ? ptData.data : [];
|
|
9801
|
+
if (pts.length > 0) {
|
|
9802
|
+
setTaxRows(
|
|
9803
|
+
pts.map((p) => ({
|
|
9804
|
+
taxId: p.taxId,
|
|
9805
|
+
rate: p.rate != null && p.rate !== "" ? String(p.rate) : ""
|
|
9806
|
+
}))
|
|
9807
|
+
);
|
|
9808
|
+
} else if (!cancelled) setTaxRows([{ taxId: "", rate: "" }]);
|
|
9809
|
+
}
|
|
9747
9810
|
const paRes = await fetch(`/api/product_attributes?productId=${productId}&limit=100`);
|
|
9748
9811
|
if (paRes.ok && !cancelled) {
|
|
9749
9812
|
const paData = await paRes.json();
|
|
@@ -9792,6 +9855,8 @@ function ProductEditPage({ productId }) {
|
|
|
9792
9855
|
name: name.trim(),
|
|
9793
9856
|
sku: sku.trim() || null,
|
|
9794
9857
|
hsn: hsn.trim() || null,
|
|
9858
|
+
uom: uom.trim() || null,
|
|
9859
|
+
type: productType,
|
|
9795
9860
|
collectionId: collectionId || null,
|
|
9796
9861
|
brandId: brandId || null,
|
|
9797
9862
|
categoryId: categoryId || null,
|
|
@@ -9888,6 +9953,55 @@ function ProductEditPage({ productId }) {
|
|
|
9888
9953
|
});
|
|
9889
9954
|
}
|
|
9890
9955
|
}
|
|
9956
|
+
const parseTaxRate = (s) => {
|
|
9957
|
+
const t = s.trim();
|
|
9958
|
+
if (!t) return null;
|
|
9959
|
+
const n = Number(t);
|
|
9960
|
+
return Number.isFinite(n) ? n : null;
|
|
9961
|
+
};
|
|
9962
|
+
const ratesDiffer = (a, b) => {
|
|
9963
|
+
if (a == null && b == null) return false;
|
|
9964
|
+
if (a == null || b == null) return true;
|
|
9965
|
+
return Math.abs(a - b) > 1e-6;
|
|
9966
|
+
};
|
|
9967
|
+
const wantedTax = /* @__PURE__ */ new Map();
|
|
9968
|
+
for (const row of taxRows) {
|
|
9969
|
+
if (row.taxId === "") continue;
|
|
9970
|
+
wantedTax.set(row.taxId, parseTaxRate(row.rate));
|
|
9971
|
+
}
|
|
9972
|
+
const ptListRes = await fetch(`/api/product_taxes?productId=${savedId}&limit=200`);
|
|
9973
|
+
const ptListData = ptListRes.ok ? await ptListRes.json() : { data: [] };
|
|
9974
|
+
const existingPt = Array.isArray(ptListData.data) ? ptListData.data : [];
|
|
9975
|
+
for (const ep of existingPt) {
|
|
9976
|
+
if (!wantedTax.has(ep.taxId)) {
|
|
9977
|
+
await fetch(`/api/product_taxes/${ep.id}`, { method: "DELETE" });
|
|
9978
|
+
}
|
|
9979
|
+
}
|
|
9980
|
+
const survivors = existingPt.filter((ep) => wantedTax.has(ep.taxId));
|
|
9981
|
+
for (const [taxId, rate] of wantedTax) {
|
|
9982
|
+
const ep = survivors.find((e) => e.taxId === taxId);
|
|
9983
|
+
if (!ep) {
|
|
9984
|
+
await fetch("/api/product_taxes", {
|
|
9985
|
+
method: "POST",
|
|
9986
|
+
headers: { "Content-Type": "application/json" },
|
|
9987
|
+
body: JSON.stringify({
|
|
9988
|
+
productId: Number(savedId),
|
|
9989
|
+
taxId,
|
|
9990
|
+
rate
|
|
9991
|
+
})
|
|
9992
|
+
});
|
|
9993
|
+
} else {
|
|
9994
|
+
const existingRate = ep.rate == null || String(ep.rate).trim() === "" ? null : Number(ep.rate);
|
|
9995
|
+
const er = Number.isFinite(existingRate) ? existingRate : null;
|
|
9996
|
+
if (ratesDiffer(er, rate)) {
|
|
9997
|
+
await fetch(`/api/product_taxes/${ep.id}`, {
|
|
9998
|
+
method: "PUT",
|
|
9999
|
+
headers: { "Content-Type": "application/json" },
|
|
10000
|
+
body: JSON.stringify({ rate })
|
|
10001
|
+
});
|
|
10002
|
+
}
|
|
10003
|
+
}
|
|
10004
|
+
}
|
|
9891
10005
|
router.push("/admin/products");
|
|
9892
10006
|
} catch {
|
|
9893
10007
|
setErrors(["Failed to save"]);
|
|
@@ -9905,6 +10019,18 @@ function ProductEditPage({ productId }) {
|
|
|
9905
10019
|
const addFacet = () => setFacetRows((prev) => [...prev, { name: "", value: "" }]);
|
|
9906
10020
|
const removeFacet = (i) => setFacetRows((prev) => prev.length <= 1 ? prev : prev.filter((_, j) => j !== i));
|
|
9907
10021
|
const setFacet = (i, field, value) => setFacetRows((prev) => prev.map((row, j) => j === i ? { ...row, [field]: value } : row));
|
|
10022
|
+
const addTaxRow = () => setTaxRows((prev) => [...prev, { taxId: "", rate: "" }]);
|
|
10023
|
+
const removeTaxRow = (i) => setTaxRows((prev) => prev.length <= 1 ? prev : prev.filter((_, j) => j !== i));
|
|
10024
|
+
const setTaxRow = (i, patch) => setTaxRows((prev) => prev.map((row, j) => j === i ? { ...row, ...patch } : row));
|
|
10025
|
+
const taxesForSelect = (rowIndex) => {
|
|
10026
|
+
const row = taxRows[rowIndex];
|
|
10027
|
+
const selectedElsewhere = new Set(
|
|
10028
|
+
taxRows.map((r, j) => j !== rowIndex && r.taxId !== "" ? r.taxId : null).filter((x) => x != null)
|
|
10029
|
+
);
|
|
10030
|
+
return taxMasterList.filter(
|
|
10031
|
+
(t) => !selectedElsewhere.has(t.id) || row && row.taxId !== "" && t.id === row.taxId
|
|
10032
|
+
);
|
|
10033
|
+
};
|
|
9908
10034
|
if (loading) {
|
|
9909
10035
|
return /* @__PURE__ */ jsx60("div", { className: "flex items-center justify-center py-12", children: /* @__PURE__ */ jsx60("span", { className: "text-gray-500", children: "Loading..." }) });
|
|
9910
10036
|
}
|
|
@@ -9949,6 +10075,36 @@ function ProductEditPage({ productId }) {
|
|
|
9949
10075
|
/* @__PURE__ */ jsx60("input", { type: "text", value: hsn, onChange: (e) => setHsn(e.target.value), className: inputCls })
|
|
9950
10076
|
] })
|
|
9951
10077
|
] }),
|
|
10078
|
+
/* @__PURE__ */ jsxs50("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
10079
|
+
/* @__PURE__ */ jsxs50("div", { children: [
|
|
10080
|
+
/* @__PURE__ */ jsx60("label", { className: labelCls, children: "UOM" }),
|
|
10081
|
+
/* @__PURE__ */ jsx60(
|
|
10082
|
+
"input",
|
|
10083
|
+
{
|
|
10084
|
+
type: "text",
|
|
10085
|
+
value: uom,
|
|
10086
|
+
onChange: (e) => setUom(e.target.value),
|
|
10087
|
+
className: inputCls,
|
|
10088
|
+
placeholder: "e.g. pcs, kg, hrs"
|
|
10089
|
+
}
|
|
10090
|
+
)
|
|
10091
|
+
] }),
|
|
10092
|
+
/* @__PURE__ */ jsxs50("div", { children: [
|
|
10093
|
+
/* @__PURE__ */ jsx60("label", { className: labelCls, children: "Product type" }),
|
|
10094
|
+
/* @__PURE__ */ jsxs50(
|
|
10095
|
+
"select",
|
|
10096
|
+
{
|
|
10097
|
+
value: productType,
|
|
10098
|
+
onChange: (e) => setProductType(e.target.value === "service" ? "service" : "product"),
|
|
10099
|
+
className: inputCls,
|
|
10100
|
+
children: [
|
|
10101
|
+
/* @__PURE__ */ jsx60("option", { value: "product", children: "Product" }),
|
|
10102
|
+
/* @__PURE__ */ jsx60("option", { value: "service", children: "Service" })
|
|
10103
|
+
]
|
|
10104
|
+
}
|
|
10105
|
+
)
|
|
10106
|
+
] })
|
|
10107
|
+
] }),
|
|
9952
10108
|
/* @__PURE__ */ jsxs50("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
9953
10109
|
/* @__PURE__ */ jsxs50("div", { children: [
|
|
9954
10110
|
/* @__PURE__ */ jsx60("label", { className: labelCls, children: "Brand" }),
|
|
@@ -9999,6 +10155,78 @@ function ProductEditPage({ productId }) {
|
|
|
9999
10155
|
] })
|
|
10000
10156
|
] })
|
|
10001
10157
|
] }),
|
|
10158
|
+
/* @__PURE__ */ jsxs50("section", { children: [
|
|
10159
|
+
/* @__PURE__ */ jsx60("h2", { className: "text-xs font-semibold text-gray-400 uppercase tracking-wider mb-2", children: "Taxes" }),
|
|
10160
|
+
/* @__PURE__ */ jsx60("p", { className: "text-xs text-gray-500 mb-2", children: "Link taxes for this product. Leave rate empty to use the tax's default rate; set a value to override." }),
|
|
10161
|
+
/* @__PURE__ */ jsxs50("div", { className: `${sectionCls} space-y-2`, children: [
|
|
10162
|
+
taxRows.map((row, i) => {
|
|
10163
|
+
const options = taxesForSelect(i);
|
|
10164
|
+
const master = row.taxId !== "" ? taxMasterList.find((t) => t.id === row.taxId) : void 0;
|
|
10165
|
+
const defaultRateHint = master != null ? `Default: ${String(master.rate)}%` : void 0;
|
|
10166
|
+
return /* @__PURE__ */ jsxs50("div", { className: "flex flex-wrap gap-2 items-end", children: [
|
|
10167
|
+
/* @__PURE__ */ jsxs50("div", { className: "min-w-[160px] flex-1", children: [
|
|
10168
|
+
/* @__PURE__ */ jsx60("label", { className: labelCls, children: "Tax" }),
|
|
10169
|
+
/* @__PURE__ */ jsxs50(
|
|
10170
|
+
"select",
|
|
10171
|
+
{
|
|
10172
|
+
value: row.taxId === "" ? "" : String(row.taxId),
|
|
10173
|
+
onChange: (e) => {
|
|
10174
|
+
const v = e.target.value;
|
|
10175
|
+
setTaxRow(i, { taxId: v === "" ? "" : Number(v) });
|
|
10176
|
+
},
|
|
10177
|
+
className: inputCls,
|
|
10178
|
+
children: [
|
|
10179
|
+
/* @__PURE__ */ jsx60("option", { value: "", children: "\u2014" }),
|
|
10180
|
+
options.map((t) => /* @__PURE__ */ jsxs50("option", { value: t.id, children: [
|
|
10181
|
+
t.name,
|
|
10182
|
+
" (",
|
|
10183
|
+
String(t.rate),
|
|
10184
|
+
"%)"
|
|
10185
|
+
] }, t.id))
|
|
10186
|
+
]
|
|
10187
|
+
}
|
|
10188
|
+
)
|
|
10189
|
+
] }),
|
|
10190
|
+
/* @__PURE__ */ jsxs50("div", { className: "w-28", children: [
|
|
10191
|
+
/* @__PURE__ */ jsx60("label", { className: labelCls, children: "Rate %" }),
|
|
10192
|
+
/* @__PURE__ */ jsx60(
|
|
10193
|
+
"input",
|
|
10194
|
+
{
|
|
10195
|
+
type: "text",
|
|
10196
|
+
inputMode: "decimal",
|
|
10197
|
+
value: row.rate,
|
|
10198
|
+
onChange: (e) => setTaxRow(i, { rate: e.target.value }),
|
|
10199
|
+
className: inputCls,
|
|
10200
|
+
placeholder: defaultRateHint ?? "optional",
|
|
10201
|
+
title: defaultRateHint
|
|
10202
|
+
}
|
|
10203
|
+
)
|
|
10204
|
+
] }),
|
|
10205
|
+
/* @__PURE__ */ jsx60(
|
|
10206
|
+
"button",
|
|
10207
|
+
{
|
|
10208
|
+
type: "button",
|
|
10209
|
+
onClick: () => removeTaxRow(i),
|
|
10210
|
+
className: "p-2 text-gray-400 hover:text-red-600 rounded shrink-0 mb-0.5",
|
|
10211
|
+
children: /* @__PURE__ */ jsx60(Trash25, { className: "h-4 w-4" })
|
|
10212
|
+
}
|
|
10213
|
+
)
|
|
10214
|
+
] }, i);
|
|
10215
|
+
}),
|
|
10216
|
+
/* @__PURE__ */ jsxs50(
|
|
10217
|
+
"button",
|
|
10218
|
+
{
|
|
10219
|
+
type: "button",
|
|
10220
|
+
onClick: addTaxRow,
|
|
10221
|
+
className: "inline-flex items-center gap-1 rounded border border-gray-300 bg-white px-2 py-1.5 text-xs font-medium text-gray-700 hover:bg-gray-50",
|
|
10222
|
+
children: [
|
|
10223
|
+
/* @__PURE__ */ jsx60(Plus9, { className: "h-3.5 w-3.5" }),
|
|
10224
|
+
" Add tax"
|
|
10225
|
+
]
|
|
10226
|
+
}
|
|
10227
|
+
)
|
|
10228
|
+
] })
|
|
10229
|
+
] }),
|
|
10002
10230
|
/* @__PURE__ */ jsxs50("section", { children: [
|
|
10003
10231
|
/* @__PURE__ */ jsx60("h2", { className: "text-xs font-semibold text-gray-400 uppercase tracking-wider mb-2", children: "Attributes (facets)" }),
|
|
10004
10232
|
/* @__PURE__ */ jsx60("p", { className: "text-xs text-gray-500 mb-2", children: "Search existing attributes or create new ones (like blog categories). Value on the right." }),
|