@primershop/strapi-plugin-status-manager 0.0.13 → 0.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/admin/components/Initializer.js +17 -0
  2. package/dist/admin/components/Initializer.js.map +1 -0
  3. package/dist/admin/components/Initializer.mjs +15 -0
  4. package/dist/admin/components/Initializer.mjs.map +1 -0
  5. package/dist/admin/components/PluginIcon.js +9 -0
  6. package/dist/admin/components/PluginIcon.js.map +1 -0
  7. package/dist/admin/components/PluginIcon.mjs +7 -0
  8. package/dist/admin/components/PluginIcon.mjs.map +1 -0
  9. package/dist/admin/components/ProductStatusField.js +104 -0
  10. package/dist/admin/components/ProductStatusField.js.map +1 -0
  11. package/dist/admin/components/ProductStatusField.mjs +102 -0
  12. package/dist/admin/components/ProductStatusField.mjs.map +1 -0
  13. package/dist/admin/{HomePage-Bez9ZXv-.js → components/StatusManager.js} +4 -50
  14. package/dist/admin/components/StatusManager.js.map +1 -0
  15. package/dist/admin/{HomePage-Dx9N0awm.mjs → components/StatusManager.mjs} +4 -50
  16. package/dist/admin/components/StatusManager.mjs.map +1 -0
  17. package/dist/admin/index.js +44 -8
  18. package/dist/admin/index.js.map +1 -1
  19. package/dist/admin/index.mjs +46 -6
  20. package/dist/admin/index.mjs.map +1 -1
  21. package/dist/admin/listView/StatusFilter.js +76 -0
  22. package/dist/admin/listView/StatusFilter.js.map +1 -0
  23. package/dist/admin/listView/StatusFilter.mjs +74 -0
  24. package/dist/admin/listView/StatusFilter.mjs.map +1 -0
  25. package/dist/admin/listView/add-status-column-hook.js +34 -0
  26. package/dist/admin/listView/add-status-column-hook.js.map +1 -0
  27. package/dist/admin/listView/add-status-column-hook.mjs +32 -0
  28. package/dist/admin/listView/add-status-column-hook.mjs.map +1 -0
  29. package/dist/admin/listView/status-cell.js +28 -0
  30. package/dist/admin/listView/status-cell.js.map +1 -0
  31. package/dist/admin/listView/status-cell.mjs +26 -0
  32. package/dist/admin/listView/status-cell.mjs.map +1 -0
  33. package/dist/admin/pages/HomePage.js +55 -0
  34. package/dist/admin/pages/HomePage.js.map +1 -0
  35. package/dist/admin/pages/HomePage.mjs +53 -0
  36. package/dist/admin/pages/HomePage.mjs.map +1 -0
  37. package/dist/admin/permissions.js +16 -0
  38. package/dist/admin/permissions.js.map +1 -0
  39. package/dist/admin/permissions.mjs +14 -0
  40. package/dist/admin/permissions.mjs.map +1 -0
  41. package/dist/admin/pluginId.js +6 -0
  42. package/dist/admin/pluginId.js.map +1 -0
  43. package/dist/admin/pluginId.mjs +4 -0
  44. package/dist/admin/pluginId.mjs.map +1 -0
  45. package/package.json +3 -3
  46. package/dist/admin/HomePage-Bez9ZXv-.js.map +0 -1
  47. package/dist/admin/HomePage-Dx9N0awm.mjs.map +0 -1
  48. package/dist/admin/index-BVybZ6IA.mjs +0 -281
  49. package/dist/admin/index-BVybZ6IA.mjs.map +0 -1
  50. package/dist/admin/index-mATo7IeG.js +0 -284
  51. package/dist/admin/index-mATo7IeG.js.map +0 -1
@@ -1,13 +1,49 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-mATo7IeG.js');
4
- require('react');
5
- require('react/jsx-runtime');
6
- require('@strapi/icons');
7
- require('@strapi/design-system');
8
- require('@strapi/strapi/admin');
3
+ var Initializer = require('./components/Initializer.js');
4
+ var PluginIcon = require('./components/PluginIcon.js');
5
+ var ProductStatusField = require('./components/ProductStatusField.js');
6
+ var pluginId = require('./pluginId.js');
7
+ var addStatusColumnHook = require('./listView/add-status-column-hook.js');
8
+ var permissions = require('./permissions.js');
9
+ var StatusFilter = require('./listView/StatusFilter.js');
9
10
 
11
+ const plugin = {
12
+ register (app) {
13
+ app.registerPlugin({
14
+ id: pluginId.PLUGIN_ID,
15
+ initializer: Initializer.Initializer,
16
+ isReady: true,
17
+ name: pluginId.PLUGIN_ID
18
+ });
19
+ app.addMenuLink({
20
+ to: `plugins/${pluginId.PLUGIN_ID}`,
21
+ icon: PluginIcon.PluginIcon,
22
+ intlLabel: {
23
+ id: `${pluginId.PLUGIN_ID}.plugin.name`,
24
+ defaultMessage: "Status manager"
25
+ },
26
+ permissions: [
27
+ permissions.accessStatusManager[0]
28
+ ],
29
+ Component: ()=>Promise.resolve().then(function () { return require('./pages/HomePage.js'); }).then((module)=>({
30
+ default: module.HomePage
31
+ }))
32
+ });
33
+ },
34
+ bootstrap (app) {
35
+ app.getPlugin("content-manager").injectComponent("editView", "right-links", {
36
+ name: "Status",
37
+ Component: ProductStatusField.ProductStatusField
38
+ });
39
+ app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addStatusColumnHook.addStatusColumnHook);
40
+ const contentManager = app.getPlugin('content-manager');
41
+ contentManager.injectComponent('listView', 'actions', {
42
+ name: 'status-filter',
43
+ Component: StatusFilter.StatusFilter
44
+ });
45
+ }
46
+ };
10
47
 
11
-
12
- module.exports = index.plugin;
48
+ module.exports = plugin;
13
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import { Initializer } from \"./components/Initializer\";\r\nimport { PluginIcon } from \"./components/PluginIcon\";\r\nimport { ProductStatusField } from \"./components/ProductStatusField\";\r\nimport { PLUGIN_ID } from \"./pluginId\";\r\nimport { addStatusColumnHook } from \"./listView/add-status-column-hook\";\r\nimport pluginPermissions from \"./permissions\";\r\n\r\nimport type { StrapiApp } from \"@strapi/admin/strapi-admin\";\r\nimport { StatusFilter } from \"./listView/StatusFilter\";\r\n\r\nconst plugin = {\r\n register(app: StrapiApp) {\r\n app.registerPlugin({\r\n id: PLUGIN_ID,\r\n initializer: Initializer,\r\n isReady: true,\r\n name: PLUGIN_ID,\r\n });\r\n\r\n app.addMenuLink({\r\n to: `plugins/${PLUGIN_ID}`,\r\n icon: PluginIcon,\r\n intlLabel: {\r\n id: `${PLUGIN_ID}.plugin.name`,\r\n defaultMessage: \"Status manager\",\r\n },\r\n permissions: [pluginPermissions.accessStatusManager[0]],\r\n Component: () =>\r\n import(\"./pages/HomePage\").then((module) => ({\r\n default: module.HomePage,\r\n })),\r\n });\r\n },\r\n bootstrap(app: StrapiApp) {\r\n app\r\n .getPlugin(\"content-manager\")\r\n .injectComponent(\"editView\", \"right-links\", {\r\n name: \"Status\",\r\n Component: ProductStatusField,\r\n });\r\n\r\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addStatusColumnHook);\r\n\r\n const contentManager = app.getPlugin('content-manager');\r\n contentManager.injectComponent('listView', 'actions', {\r\n name: 'status-filter',\r\n Component: StatusFilter,\r\n });\r\n },\r\n};\r\n\r\nexport default plugin;\r\n"],"names":["plugin","register","app","registerPlugin","id","PLUGIN_ID","initializer","Initializer","isReady","name","addMenuLink","to","icon","PluginIcon","intlLabel","defaultMessage","permissions","pluginPermissions","accessStatusManager","Component","then","module","default","HomePage","bootstrap","getPlugin","injectComponent","ProductStatusField","registerHook","addStatusColumnHook","contentManager","StatusFilter"],"mappings":";;;;;;;;;;AAUA,MAAMA,MAAAA,GAAS;AACbC,IAAAA,QAAAA,CAAAA,CAASC,GAAc,EAAA;AACrBA,QAAAA,GAAAA,CAAIC,cAAc,CAAC;YACjBC,EAAAA,EAAIC,kBAAAA;YACJC,WAAAA,EAAaC,uBAAAA;YACbC,OAAAA,EAAS,IAAA;YACTC,IAAAA,EAAMJ;AACR,SAAA,CAAA;AAEAH,QAAAA,GAAAA,CAAIQ,WAAW,CAAC;YACdC,EAAAA,EAAI,CAAC,QAAQ,EAAEN,kBAAAA,CAAAA,CAAW;YAC1BO,IAAAA,EAAMC,qBAAAA;YACNC,SAAAA,EAAW;gBACTV,EAAAA,EAAI,CAAA,EAAGC,kBAAAA,CAAU,YAAY,CAAC;gBAC9BU,cAAAA,EAAgB;AAClB,aAAA;YACAC,WAAAA,EAAa;gBAACC,WAAAA,CAAkBC,mBAAmB,CAAC,CAAA;AAAG,aAAA;YACvDC,SAAAA,EAAW,IACT,oDAAO,qBAAA,KAAA,CAAoBC,IAAI,CAAC,CAACC,UAAY;AAC3CC,wBAAAA,OAAAA,EAASD,OAAOE;qBAClB,CAAA;AACJ,SAAA,CAAA;AACF,IAAA,CAAA;AACAC,IAAAA,SAAAA,CAAAA,CAAUtB,GAAc,EAAA;AACtBA,QAAAA,GAAAA,CACGuB,SAAS,CAAC,iBAAA,CAAA,CACVC,eAAe,CAAC,YAAY,aAAA,EAAe;YAC1CjB,IAAAA,EAAM,QAAA;YACNU,SAAAA,EAAWQ;AACb,SAAA,CAAA;QAEFzB,GAAAA,CAAI0B,YAAY,CAAC,gDAAA,EAAkDC,uCAAAA,CAAAA;QAEnE,MAAMC,cAAAA,GAAiB5B,GAAAA,CAAIuB,SAAS,CAAC,iBAAA,CAAA;QACrCK,cAAAA,CAAeJ,eAAe,CAAC,UAAA,EAAY,SAAA,EAAW;YACpDjB,IAAAA,EAAM,eAAA;YACNU,SAAAA,EAAWY;AACb,SAAA,CAAA;AACF,IAAA;AACF;;;;"}
@@ -1,7 +1,47 @@
1
- export { a as default } from './index-BVybZ6IA.mjs';
2
- import 'react';
3
- import 'react/jsx-runtime';
4
- import '@strapi/icons';
5
- import '@strapi/design-system';
6
- import '@strapi/strapi/admin';
1
+ import { Initializer } from './components/Initializer.mjs';
2
+ import { PluginIcon } from './components/PluginIcon.mjs';
3
+ import { ProductStatusField } from './components/ProductStatusField.mjs';
4
+ import { PLUGIN_ID } from './pluginId.mjs';
5
+ import { addStatusColumnHook } from './listView/add-status-column-hook.mjs';
6
+ import pluginPermissions from './permissions.mjs';
7
+ import { StatusFilter } from './listView/StatusFilter.mjs';
8
+
9
+ const plugin = {
10
+ register (app) {
11
+ app.registerPlugin({
12
+ id: PLUGIN_ID,
13
+ initializer: Initializer,
14
+ isReady: true,
15
+ name: PLUGIN_ID
16
+ });
17
+ app.addMenuLink({
18
+ to: `plugins/${PLUGIN_ID}`,
19
+ icon: PluginIcon,
20
+ intlLabel: {
21
+ id: `${PLUGIN_ID}.plugin.name`,
22
+ defaultMessage: "Status manager"
23
+ },
24
+ permissions: [
25
+ pluginPermissions.accessStatusManager[0]
26
+ ],
27
+ Component: ()=>import('./pages/HomePage.mjs').then((module)=>({
28
+ default: module.HomePage
29
+ }))
30
+ });
31
+ },
32
+ bootstrap (app) {
33
+ app.getPlugin("content-manager").injectComponent("editView", "right-links", {
34
+ name: "Status",
35
+ Component: ProductStatusField
36
+ });
37
+ app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addStatusColumnHook);
38
+ const contentManager = app.getPlugin('content-manager');
39
+ contentManager.injectComponent('listView', 'actions', {
40
+ name: 'status-filter',
41
+ Component: StatusFilter
42
+ });
43
+ }
44
+ };
45
+
46
+ export { plugin as default };
7
47
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import { Initializer } from \"./components/Initializer\";\r\nimport { PluginIcon } from \"./components/PluginIcon\";\r\nimport { ProductStatusField } from \"./components/ProductStatusField\";\r\nimport { PLUGIN_ID } from \"./pluginId\";\r\nimport { addStatusColumnHook } from \"./listView/add-status-column-hook\";\r\nimport pluginPermissions from \"./permissions\";\r\n\r\nimport type { StrapiApp } from \"@strapi/admin/strapi-admin\";\r\nimport { StatusFilter } from \"./listView/StatusFilter\";\r\n\r\nconst plugin = {\r\n register(app: StrapiApp) {\r\n app.registerPlugin({\r\n id: PLUGIN_ID,\r\n initializer: Initializer,\r\n isReady: true,\r\n name: PLUGIN_ID,\r\n });\r\n\r\n app.addMenuLink({\r\n to: `plugins/${PLUGIN_ID}`,\r\n icon: PluginIcon,\r\n intlLabel: {\r\n id: `${PLUGIN_ID}.plugin.name`,\r\n defaultMessage: \"Status manager\",\r\n },\r\n permissions: [pluginPermissions.accessStatusManager[0]],\r\n Component: () =>\r\n import(\"./pages/HomePage\").then((module) => ({\r\n default: module.HomePage,\r\n })),\r\n });\r\n },\r\n bootstrap(app: StrapiApp) {\r\n app\r\n .getPlugin(\"content-manager\")\r\n .injectComponent(\"editView\", \"right-links\", {\r\n name: \"Status\",\r\n Component: ProductStatusField,\r\n });\r\n\r\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addStatusColumnHook);\r\n\r\n const contentManager = app.getPlugin('content-manager');\r\n contentManager.injectComponent('listView', 'actions', {\r\n name: 'status-filter',\r\n Component: StatusFilter,\r\n });\r\n },\r\n};\r\n\r\nexport default plugin;\r\n"],"names":["plugin","register","app","registerPlugin","id","PLUGIN_ID","initializer","Initializer","isReady","name","addMenuLink","to","icon","PluginIcon","intlLabel","defaultMessage","permissions","pluginPermissions","accessStatusManager","Component","then","module","default","HomePage","bootstrap","getPlugin","injectComponent","ProductStatusField","registerHook","addStatusColumnHook","contentManager","StatusFilter"],"mappings":";;;;;;;;AAUA,MAAMA,MAAAA,GAAS;AACbC,IAAAA,QAAAA,CAAAA,CAASC,GAAc,EAAA;AACrBA,QAAAA,GAAAA,CAAIC,cAAc,CAAC;YACjBC,EAAAA,EAAIC,SAAAA;YACJC,WAAAA,EAAaC,WAAAA;YACbC,OAAAA,EAAS,IAAA;YACTC,IAAAA,EAAMJ;AACR,SAAA,CAAA;AAEAH,QAAAA,GAAAA,CAAIQ,WAAW,CAAC;YACdC,EAAAA,EAAI,CAAC,QAAQ,EAAEN,SAAAA,CAAAA,CAAW;YAC1BO,IAAAA,EAAMC,UAAAA;YACNC,SAAAA,EAAW;gBACTV,EAAAA,EAAI,CAAA,EAAGC,SAAAA,CAAU,YAAY,CAAC;gBAC9BU,cAAAA,EAAgB;AAClB,aAAA;YACAC,WAAAA,EAAa;gBAACC,iBAAAA,CAAkBC,mBAAmB,CAAC,CAAA;AAAG,aAAA;YACvDC,SAAAA,EAAW,IACT,OAAO,sBAAA,CAAA,CAAoBC,IAAI,CAAC,CAACC,UAAY;AAC3CC,wBAAAA,OAAAA,EAASD,OAAOE;qBAClB,CAAA;AACJ,SAAA,CAAA;AACF,IAAA,CAAA;AACAC,IAAAA,SAAAA,CAAAA,CAAUtB,GAAc,EAAA;AACtBA,QAAAA,GAAAA,CACGuB,SAAS,CAAC,iBAAA,CAAA,CACVC,eAAe,CAAC,YAAY,aAAA,EAAe;YAC1CjB,IAAAA,EAAM,QAAA;YACNU,SAAAA,EAAWQ;AACb,SAAA,CAAA;QAEFzB,GAAAA,CAAI0B,YAAY,CAAC,gDAAA,EAAkDC,mBAAAA,CAAAA;QAEnE,MAAMC,cAAAA,GAAiB5B,GAAAA,CAAIuB,SAAS,CAAC,iBAAA,CAAA;QACrCK,cAAAA,CAAeJ,eAAe,CAAC,UAAA,EAAY,SAAA,EAAW;YACpDjB,IAAAA,EAAM,eAAA;YACNU,SAAAA,EAAWY;AACb,SAAA,CAAA;AACF,IAAA;AACF;;;;"}
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var designSystem = require('@strapi/design-system');
6
+ var admin = require('@strapi/strapi/admin');
7
+
8
+ const StatusFilter = ()=>{
9
+ const { contentType } = admin.unstable_useContentManagerContext();
10
+ const [statuses, setStatuses] = React.useState([]);
11
+ const [selected, setSelected] = React.useState("");
12
+ const { get } = admin.useFetchClient();
13
+ const [{ query }, setQuery] = admin.useQueryParams();
14
+ const handleStatusChange = React.useCallback((name)=>{
15
+ setQuery({
16
+ page: 1,
17
+ plugins: {
18
+ ...query.plugins,
19
+ "primershop-status-manager": {
20
+ statusName: name.toLowerCase()
21
+ }
22
+ }
23
+ }, "push", true);
24
+ }, [
25
+ query.plugins,
26
+ setQuery
27
+ ]);
28
+ React.useEffect(()=>{
29
+ const selectedStatusName = query.plugins?.["primershop-status-manager"]?.statusName;
30
+ if (!selectedStatusName) return;
31
+ const status = statuses.find((status)=>status.name.toLowerCase() === selectedStatusName);
32
+ if (status) {
33
+ setSelected(status.name);
34
+ }
35
+ }, [
36
+ query,
37
+ statuses
38
+ ]);
39
+ React.useEffect(()=>{
40
+ async function fetchStatuses() {
41
+ try {
42
+ const { data } = await get("primershop-status-manager/statuses");
43
+ const allStatusesObject = {
44
+ documentId: "all",
45
+ name: "All"
46
+ };
47
+ setStatuses([
48
+ allStatusesObject,
49
+ ...data
50
+ ]);
51
+ } catch (error) {
52
+ console.error("Error fetching statuses:", error);
53
+ }
54
+ }
55
+ fetchStatuses();
56
+ }, [
57
+ get
58
+ ]);
59
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
60
+ direction: "column",
61
+ justifyContent: "center",
62
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.SingleSelect, {
63
+ size: "S",
64
+ placeholder: `${contentType?.info.displayName} status`,
65
+ value: selected,
66
+ onChange: handleStatusChange,
67
+ children: statuses.map((status)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.SingleSelectOption, {
68
+ value: status.name,
69
+ children: status.name
70
+ }, status.documentId))
71
+ })
72
+ });
73
+ };
74
+
75
+ exports.StatusFilter = StatusFilter;
76
+ //# sourceMappingURL=StatusFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusFilter.js","sources":["../../../admin/src/listView/StatusFilter.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\r\n\r\nimport { SingleSelect, SingleSelectOption, Flex } from \"@strapi/design-system\";\r\nimport {\r\n useFetchClient,\r\n unstable_useContentManagerContext as useContentManagerContext,\r\n useQueryParams,\r\n} from \"@strapi/strapi/admin\";\r\ninterface Status {\r\n documentId: string;\r\n name: string;\r\n}\r\n\r\nconst StatusFilter = () => {\r\n const { contentType } = useContentManagerContext();\r\n const [statuses, setStatuses] = useState<Status[]>([]);\r\n const [selected, setSelected] = useState<string | undefined>(\"\");\r\n const { get } = useFetchClient();\r\n const [{ query }, setQuery] = useQueryParams<{\r\n page: number;\r\n plugins: { \"primershop-status-manager\": { statusName: string } };\r\n }>();\r\n\r\n const handleStatusChange = useCallback(\r\n (name: string) => {\r\n setQuery(\r\n {\r\n page: 1,\r\n plugins: {\r\n ...query.plugins,\r\n \"primershop-status-manager\": { statusName: name.toLowerCase() },\r\n },\r\n },\r\n \"push\",\r\n true\r\n );\r\n },\r\n\r\n [query.plugins, setQuery]\r\n );\r\n\r\n useEffect(() => {\r\n const selectedStatusName =\r\n query.plugins?.[\"primershop-status-manager\"]?.statusName;\r\n if (!selectedStatusName) return;\r\n const status = statuses.find(\r\n (status) => status.name.toLowerCase() === selectedStatusName\r\n );\r\n if (status) {\r\n setSelected(status.name);\r\n }\r\n }, [query, statuses]);\r\n\r\n useEffect(() => {\r\n async function fetchStatuses() {\r\n try {\r\n const { data } = await get(\"primershop-status-manager/statuses\");\r\n const allStatusesObject = {\r\n documentId: \"all\",\r\n name: \"All\",\r\n };\r\n setStatuses([allStatusesObject, ...data]);\r\n } catch (error) {\r\n console.error(\"Error fetching statuses:\", error);\r\n }\r\n }\r\n fetchStatuses();\r\n }, [get]);\r\n\r\n return (\r\n <Flex direction=\"column\" justifyContent=\"center\">\r\n <SingleSelect\r\n size=\"S\"\r\n placeholder={`${contentType?.info.displayName} status`}\r\n value={selected}\r\n onChange={handleStatusChange}\r\n >\r\n {statuses.map((status) => (\r\n <SingleSelectOption key={status.documentId} value={status.name}>\r\n {status.name}\r\n </SingleSelectOption>\r\n ))}\r\n </SingleSelect>\r\n </Flex>\r\n );\r\n};\r\n\r\nexport { StatusFilter };\r\n"],"names":["StatusFilter","contentType","useContentManagerContext","statuses","setStatuses","useState","selected","setSelected","get","useFetchClient","query","setQuery","useQueryParams","handleStatusChange","useCallback","name","page","plugins","statusName","toLowerCase","useEffect","selectedStatusName","status","find","fetchStatuses","data","allStatusesObject","documentId","error","console","_jsx","Flex","direction","justifyContent","SingleSelect","size","placeholder","info","displayName","value","onChange","map","SingleSelectOption"],"mappings":";;;;;;;AAaA,MAAMA,YAAAA,GAAe,IAAA;IACnB,MAAM,EAAEC,WAAW,EAAE,GAAGC,uCAAAA,EAAAA;AACxB,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGC,eAAmB,EAAE,CAAA;AACrD,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGF,cAAAA,CAA6B,EAAA,CAAA;IAC7D,MAAM,EAAEG,GAAG,EAAE,GAAGC,oBAAAA,EAAAA;AAChB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,EAAEC,SAAS,GAAGC,oBAAAA,EAAAA;IAK9B,MAAMC,kBAAAA,GAAqBC,kBACzB,CAACC,IAAAA,GAAAA;QACCJ,QAAAA,CACE;YACEK,IAAAA,EAAM,CAAA;YACNC,OAAAA,EAAS;AACP,gBAAA,GAAGP,MAAMO,OAAO;gBAChB,2BAAA,EAA6B;AAAEC,oBAAAA,UAAAA,EAAYH,KAAKI,WAAW;AAAG;AAChE;AACF,SAAA,EACA,MAAA,EACA,IAAA,CAAA;IAEJ,CAAA,EAEA;AAACT,QAAAA,KAAAA,CAAMO,OAAO;AAAEN,QAAAA;AAAS,KAAA,CAAA;IAG3BS,eAAAA,CAAU,IAAA;AACR,QAAA,MAAMC,qBACJX,KAAAA,CAAMO,OAAO,GAAG,4BAA4B,EAAEC,UAAAA;AAChD,QAAA,IAAI,CAACG,kBAAAA,EAAoB;QACzB,MAAMC,MAAAA,GAASnB,QAAAA,CAASoB,IAAI,CAC1B,CAACD,SAAWA,MAAAA,CAAOP,IAAI,CAACI,WAAW,EAAA,KAAOE,kBAAAA,CAAAA;AAE5C,QAAA,IAAIC,MAAAA,EAAQ;AACVf,YAAAA,WAAAA,CAAYe,OAAOP,IAAI,CAAA;AACzB,QAAA;IACF,CAAA,EAAG;AAACL,QAAAA,KAAAA;AAAOP,QAAAA;AAAS,KAAA,CAAA;IAEpBiB,eAAAA,CAAU,IAAA;QACR,eAAeI,aAAAA,GAAAA;YACb,IAAI;AACF,gBAAA,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMjB,GAAAA,CAAI,oCAAA,CAAA;AAC3B,gBAAA,MAAMkB,iBAAAA,GAAoB;oBACxBC,UAAAA,EAAY,KAAA;oBACZZ,IAAAA,EAAM;AACR,iBAAA;gBACAX,WAAAA,CAAY;AAACsB,oBAAAA,iBAAAA;AAAsBD,oBAAAA,GAAAA;AAAK,iBAAA,CAAA;AAC1C,YAAA,CAAA,CAAE,OAAOG,KAAAA,EAAO;gBACdC,OAAAA,CAAQD,KAAK,CAAC,0BAAA,EAA4BA,KAAAA,CAAAA;AAC5C,YAAA;AACF,QAAA;AACAJ,QAAAA,aAAAA,EAAAA;IACF,CAAA,EAAG;AAAChB,QAAAA;AAAI,KAAA,CAAA;AAER,IAAA,qBACEsB,cAAA,CAACC,iBAAAA,EAAAA;QAAKC,SAAAA,EAAU,QAAA;QAASC,cAAAA,EAAe,QAAA;AACtC,QAAA,QAAA,gBAAAH,cAAA,CAACI,yBAAAA,EAAAA;YACCC,IAAAA,EAAK,GAAA;AACLC,YAAAA,WAAAA,EAAa,CAAA,EAAGnC,WAAAA,EAAaoC,IAAAA,CAAKC,WAAAA,CAAY,OAAO,CAAC;YACtDC,KAAAA,EAAOjC,QAAAA;YACPkC,QAAAA,EAAU3B,kBAAAA;AAETV,YAAAA,QAAAA,EAAAA,QAAAA,CAASsC,GAAG,CAAC,CAACnB,MAAAA,iBACbQ,cAAA,CAACY,+BAAAA,EAAAA;AAA2CH,oBAAAA,KAAAA,EAAOjB,OAAOP,IAAI;AAC3DO,oBAAAA,QAAAA,EAAAA,MAAAA,CAAOP;AADeO,iBAAAA,EAAAA,MAAAA,CAAOK,UAAU,CAAA;;;AAOpD;;;;"}
@@ -0,0 +1,74 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useState, useCallback, useEffect } from 'react';
3
+ import { Flex, SingleSelect, SingleSelectOption } from '@strapi/design-system';
4
+ import { unstable_useContentManagerContext, useFetchClient, useQueryParams } from '@strapi/strapi/admin';
5
+
6
+ const StatusFilter = ()=>{
7
+ const { contentType } = unstable_useContentManagerContext();
8
+ const [statuses, setStatuses] = useState([]);
9
+ const [selected, setSelected] = useState("");
10
+ const { get } = useFetchClient();
11
+ const [{ query }, setQuery] = useQueryParams();
12
+ const handleStatusChange = useCallback((name)=>{
13
+ setQuery({
14
+ page: 1,
15
+ plugins: {
16
+ ...query.plugins,
17
+ "primershop-status-manager": {
18
+ statusName: name.toLowerCase()
19
+ }
20
+ }
21
+ }, "push", true);
22
+ }, [
23
+ query.plugins,
24
+ setQuery
25
+ ]);
26
+ useEffect(()=>{
27
+ const selectedStatusName = query.plugins?.["primershop-status-manager"]?.statusName;
28
+ if (!selectedStatusName) return;
29
+ const status = statuses.find((status)=>status.name.toLowerCase() === selectedStatusName);
30
+ if (status) {
31
+ setSelected(status.name);
32
+ }
33
+ }, [
34
+ query,
35
+ statuses
36
+ ]);
37
+ useEffect(()=>{
38
+ async function fetchStatuses() {
39
+ try {
40
+ const { data } = await get("primershop-status-manager/statuses");
41
+ const allStatusesObject = {
42
+ documentId: "all",
43
+ name: "All"
44
+ };
45
+ setStatuses([
46
+ allStatusesObject,
47
+ ...data
48
+ ]);
49
+ } catch (error) {
50
+ console.error("Error fetching statuses:", error);
51
+ }
52
+ }
53
+ fetchStatuses();
54
+ }, [
55
+ get
56
+ ]);
57
+ return /*#__PURE__*/ jsx(Flex, {
58
+ direction: "column",
59
+ justifyContent: "center",
60
+ children: /*#__PURE__*/ jsx(SingleSelect, {
61
+ size: "S",
62
+ placeholder: `${contentType?.info.displayName} status`,
63
+ value: selected,
64
+ onChange: handleStatusChange,
65
+ children: statuses.map((status)=>/*#__PURE__*/ jsx(SingleSelectOption, {
66
+ value: status.name,
67
+ children: status.name
68
+ }, status.documentId))
69
+ })
70
+ });
71
+ };
72
+
73
+ export { StatusFilter };
74
+ //# sourceMappingURL=StatusFilter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusFilter.mjs","sources":["../../../admin/src/listView/StatusFilter.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\r\n\r\nimport { SingleSelect, SingleSelectOption, Flex } from \"@strapi/design-system\";\r\nimport {\r\n useFetchClient,\r\n unstable_useContentManagerContext as useContentManagerContext,\r\n useQueryParams,\r\n} from \"@strapi/strapi/admin\";\r\ninterface Status {\r\n documentId: string;\r\n name: string;\r\n}\r\n\r\nconst StatusFilter = () => {\r\n const { contentType } = useContentManagerContext();\r\n const [statuses, setStatuses] = useState<Status[]>([]);\r\n const [selected, setSelected] = useState<string | undefined>(\"\");\r\n const { get } = useFetchClient();\r\n const [{ query }, setQuery] = useQueryParams<{\r\n page: number;\r\n plugins: { \"primershop-status-manager\": { statusName: string } };\r\n }>();\r\n\r\n const handleStatusChange = useCallback(\r\n (name: string) => {\r\n setQuery(\r\n {\r\n page: 1,\r\n plugins: {\r\n ...query.plugins,\r\n \"primershop-status-manager\": { statusName: name.toLowerCase() },\r\n },\r\n },\r\n \"push\",\r\n true\r\n );\r\n },\r\n\r\n [query.plugins, setQuery]\r\n );\r\n\r\n useEffect(() => {\r\n const selectedStatusName =\r\n query.plugins?.[\"primershop-status-manager\"]?.statusName;\r\n if (!selectedStatusName) return;\r\n const status = statuses.find(\r\n (status) => status.name.toLowerCase() === selectedStatusName\r\n );\r\n if (status) {\r\n setSelected(status.name);\r\n }\r\n }, [query, statuses]);\r\n\r\n useEffect(() => {\r\n async function fetchStatuses() {\r\n try {\r\n const { data } = await get(\"primershop-status-manager/statuses\");\r\n const allStatusesObject = {\r\n documentId: \"all\",\r\n name: \"All\",\r\n };\r\n setStatuses([allStatusesObject, ...data]);\r\n } catch (error) {\r\n console.error(\"Error fetching statuses:\", error);\r\n }\r\n }\r\n fetchStatuses();\r\n }, [get]);\r\n\r\n return (\r\n <Flex direction=\"column\" justifyContent=\"center\">\r\n <SingleSelect\r\n size=\"S\"\r\n placeholder={`${contentType?.info.displayName} status`}\r\n value={selected}\r\n onChange={handleStatusChange}\r\n >\r\n {statuses.map((status) => (\r\n <SingleSelectOption key={status.documentId} value={status.name}>\r\n {status.name}\r\n </SingleSelectOption>\r\n ))}\r\n </SingleSelect>\r\n </Flex>\r\n );\r\n};\r\n\r\nexport { StatusFilter };\r\n"],"names":["StatusFilter","contentType","useContentManagerContext","statuses","setStatuses","useState","selected","setSelected","get","useFetchClient","query","setQuery","useQueryParams","handleStatusChange","useCallback","name","page","plugins","statusName","toLowerCase","useEffect","selectedStatusName","status","find","fetchStatuses","data","allStatusesObject","documentId","error","console","_jsx","Flex","direction","justifyContent","SingleSelect","size","placeholder","info","displayName","value","onChange","map","SingleSelectOption"],"mappings":";;;;;AAaA,MAAMA,YAAAA,GAAe,IAAA;IACnB,MAAM,EAAEC,WAAW,EAAE,GAAGC,iCAAAA,EAAAA;AACxB,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGC,SAAmB,EAAE,CAAA;AACrD,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGF,QAAAA,CAA6B,EAAA,CAAA;IAC7D,MAAM,EAAEG,GAAG,EAAE,GAAGC,cAAAA,EAAAA;AAChB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,EAAEC,SAAS,GAAGC,cAAAA,EAAAA;IAK9B,MAAMC,kBAAAA,GAAqBC,YACzB,CAACC,IAAAA,GAAAA;QACCJ,QAAAA,CACE;YACEK,IAAAA,EAAM,CAAA;YACNC,OAAAA,EAAS;AACP,gBAAA,GAAGP,MAAMO,OAAO;gBAChB,2BAAA,EAA6B;AAAEC,oBAAAA,UAAAA,EAAYH,KAAKI,WAAW;AAAG;AAChE;AACF,SAAA,EACA,MAAA,EACA,IAAA,CAAA;IAEJ,CAAA,EAEA;AAACT,QAAAA,KAAAA,CAAMO,OAAO;AAAEN,QAAAA;AAAS,KAAA,CAAA;IAG3BS,SAAAA,CAAU,IAAA;AACR,QAAA,MAAMC,qBACJX,KAAAA,CAAMO,OAAO,GAAG,4BAA4B,EAAEC,UAAAA;AAChD,QAAA,IAAI,CAACG,kBAAAA,EAAoB;QACzB,MAAMC,MAAAA,GAASnB,QAAAA,CAASoB,IAAI,CAC1B,CAACD,SAAWA,MAAAA,CAAOP,IAAI,CAACI,WAAW,EAAA,KAAOE,kBAAAA,CAAAA;AAE5C,QAAA,IAAIC,MAAAA,EAAQ;AACVf,YAAAA,WAAAA,CAAYe,OAAOP,IAAI,CAAA;AACzB,QAAA;IACF,CAAA,EAAG;AAACL,QAAAA,KAAAA;AAAOP,QAAAA;AAAS,KAAA,CAAA;IAEpBiB,SAAAA,CAAU,IAAA;QACR,eAAeI,aAAAA,GAAAA;YACb,IAAI;AACF,gBAAA,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMjB,GAAAA,CAAI,oCAAA,CAAA;AAC3B,gBAAA,MAAMkB,iBAAAA,GAAoB;oBACxBC,UAAAA,EAAY,KAAA;oBACZZ,IAAAA,EAAM;AACR,iBAAA;gBACAX,WAAAA,CAAY;AAACsB,oBAAAA,iBAAAA;AAAsBD,oBAAAA,GAAAA;AAAK,iBAAA,CAAA;AAC1C,YAAA,CAAA,CAAE,OAAOG,KAAAA,EAAO;gBACdC,OAAAA,CAAQD,KAAK,CAAC,0BAAA,EAA4BA,KAAAA,CAAAA;AAC5C,YAAA;AACF,QAAA;AACAJ,QAAAA,aAAAA,EAAAA;IACF,CAAA,EAAG;AAAChB,QAAAA;AAAI,KAAA,CAAA;AAER,IAAA,qBACEsB,GAAA,CAACC,IAAAA,EAAAA;QAAKC,SAAAA,EAAU,QAAA;QAASC,cAAAA,EAAe,QAAA;AACtC,QAAA,QAAA,gBAAAH,GAAA,CAACI,YAAAA,EAAAA;YACCC,IAAAA,EAAK,GAAA;AACLC,YAAAA,WAAAA,EAAa,CAAA,EAAGnC,WAAAA,EAAaoC,IAAAA,CAAKC,WAAAA,CAAY,OAAO,CAAC;YACtDC,KAAAA,EAAOjC,QAAAA;YACPkC,QAAAA,EAAU3B,kBAAAA;AAETV,YAAAA,QAAAA,EAAAA,QAAAA,CAASsC,GAAG,CAAC,CAACnB,MAAAA,iBACbQ,GAAA,CAACY,kBAAAA,EAAAA;AAA2CH,oBAAAA,KAAAA,EAAOjB,OAAOP,IAAI;AAC3DO,oBAAAA,QAAAA,EAAAA,MAAAA,CAAOP;AADeO,iBAAAA,EAAAA,MAAAA,CAAOK,UAAU,CAAA;;;AAOpD;;;;"}
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var statusCell = require('./status-cell.js');
4
+ var React = require('react');
5
+
6
+ const addStatusColumnHook = ({ displayedHeaders, layout })=>{
7
+ const statusHeader = {
8
+ attribute: {
9
+ type: "custom"
10
+ },
11
+ name: "statusLabel",
12
+ label: {
13
+ id: "primershop-status-manager.status",
14
+ defaultMessage: "Status"
15
+ },
16
+ searchable: false,
17
+ sortable: false,
18
+ cellFormatter: (row)=>{
19
+ return React.createElement(statusCell.StatusCell, {
20
+ row
21
+ });
22
+ }
23
+ };
24
+ return {
25
+ displayedHeaders: [
26
+ ...displayedHeaders,
27
+ statusHeader
28
+ ],
29
+ layout
30
+ };
31
+ };
32
+
33
+ exports.addStatusColumnHook = addStatusColumnHook;
34
+ //# sourceMappingURL=add-status-column-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-status-column-hook.js","sources":["../../../admin/src/listView/add-status-column-hook.ts"],"sourcesContent":["import { StatusCell } from \"./status-cell\";\r\nimport {\r\n ListFieldLayout,\r\n ListLayout,\r\n} from \"@strapi/content-manager/strapi-admin\";\r\nimport React from \"react\";\r\nimport { AnyDocument } from \"@strapi/types/dist/modules/documents\";\r\n\r\ninterface AddColumnToTableHookArgs {\r\n layout: ListLayout;\r\n displayedHeaders: ListFieldLayout[];\r\n}\r\nexport const addStatusColumnHook = ({\r\n displayedHeaders,\r\n layout,\r\n}: AddColumnToTableHookArgs) => {\r\n const statusHeader = {\r\n attribute: { type: \"custom\" },\r\n name: \"statusLabel\",\r\n label: { id: \"primershop-status-manager.status\", defaultMessage: \"Status\" },\r\n searchable: false,\r\n sortable: false,\r\n cellFormatter: (row: AnyDocument) => {\r\n return React.createElement(StatusCell, { row });\r\n },\r\n };\r\n\r\n return {\r\n displayedHeaders: [...displayedHeaders, statusHeader],\r\n layout,\r\n };\r\n};\r\n"],"names":["addStatusColumnHook","displayedHeaders","layout","statusHeader","attribute","type","name","label","id","defaultMessage","searchable","sortable","cellFormatter","row","React","createElement","StatusCell"],"mappings":";;;;;MAYaA,mBAAAA,GAAsB,CAAC,EAClCC,gBAAgB,EAChBC,MAAM,EACmB,GAAA;AACzB,IAAA,MAAMC,YAAAA,GAAe;QACnBC,SAAAA,EAAW;YAAEC,IAAAA,EAAM;AAAS,SAAA;QAC5BC,IAAAA,EAAM,aAAA;QACNC,KAAAA,EAAO;YAAEC,EAAAA,EAAI,kCAAA;YAAoCC,cAAAA,EAAgB;AAAS,SAAA;QAC1EC,UAAAA,EAAY,KAAA;QACZC,QAAAA,EAAU,KAAA;AACVC,QAAAA,aAAAA,EAAe,CAACC,GAAAA,GAAAA;YACd,OAAOC,KAAAA,CAAMC,aAAa,CAACC,qBAAAA,EAAY;AAAEH,gBAAAA;AAAI,aAAA,CAAA;AAC/C,QAAA;AACF,KAAA;IAEA,OAAO;QACLZ,gBAAAA,EAAkB;AAAIA,YAAAA,GAAAA,gBAAAA;AAAkBE,YAAAA;AAAa,SAAA;AACrDD,QAAAA;AACF,KAAA;AACF;;;;"}
@@ -0,0 +1,32 @@
1
+ import { StatusCell } from './status-cell.mjs';
2
+ import React from 'react';
3
+
4
+ const addStatusColumnHook = ({ displayedHeaders, layout })=>{
5
+ const statusHeader = {
6
+ attribute: {
7
+ type: "custom"
8
+ },
9
+ name: "statusLabel",
10
+ label: {
11
+ id: "primershop-status-manager.status",
12
+ defaultMessage: "Status"
13
+ },
14
+ searchable: false,
15
+ sortable: false,
16
+ cellFormatter: (row)=>{
17
+ return React.createElement(StatusCell, {
18
+ row
19
+ });
20
+ }
21
+ };
22
+ return {
23
+ displayedHeaders: [
24
+ ...displayedHeaders,
25
+ statusHeader
26
+ ],
27
+ layout
28
+ };
29
+ };
30
+
31
+ export { addStatusColumnHook };
32
+ //# sourceMappingURL=add-status-column-hook.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-status-column-hook.mjs","sources":["../../../admin/src/listView/add-status-column-hook.ts"],"sourcesContent":["import { StatusCell } from \"./status-cell\";\r\nimport {\r\n ListFieldLayout,\r\n ListLayout,\r\n} from \"@strapi/content-manager/strapi-admin\";\r\nimport React from \"react\";\r\nimport { AnyDocument } from \"@strapi/types/dist/modules/documents\";\r\n\r\ninterface AddColumnToTableHookArgs {\r\n layout: ListLayout;\r\n displayedHeaders: ListFieldLayout[];\r\n}\r\nexport const addStatusColumnHook = ({\r\n displayedHeaders,\r\n layout,\r\n}: AddColumnToTableHookArgs) => {\r\n const statusHeader = {\r\n attribute: { type: \"custom\" },\r\n name: \"statusLabel\",\r\n label: { id: \"primershop-status-manager.status\", defaultMessage: \"Status\" },\r\n searchable: false,\r\n sortable: false,\r\n cellFormatter: (row: AnyDocument) => {\r\n return React.createElement(StatusCell, { row });\r\n },\r\n };\r\n\r\n return {\r\n displayedHeaders: [...displayedHeaders, statusHeader],\r\n layout,\r\n };\r\n};\r\n"],"names":["addStatusColumnHook","displayedHeaders","layout","statusHeader","attribute","type","name","label","id","defaultMessage","searchable","sortable","cellFormatter","row","React","createElement","StatusCell"],"mappings":";;;MAYaA,mBAAAA,GAAsB,CAAC,EAClCC,gBAAgB,EAChBC,MAAM,EACmB,GAAA;AACzB,IAAA,MAAMC,YAAAA,GAAe;QACnBC,SAAAA,EAAW;YAAEC,IAAAA,EAAM;AAAS,SAAA;QAC5BC,IAAAA,EAAM,aAAA;QACNC,KAAAA,EAAO;YAAEC,EAAAA,EAAI,kCAAA;YAAoCC,cAAAA,EAAgB;AAAS,SAAA;QAC1EC,UAAAA,EAAY,KAAA;QACZC,QAAAA,EAAU,KAAA;AACVC,QAAAA,aAAAA,EAAe,CAACC,GAAAA,GAAAA;YACd,OAAOC,KAAAA,CAAMC,aAAa,CAACC,UAAAA,EAAY;AAAEH,gBAAAA;AAAI,aAAA,CAAA;AAC/C,QAAA;AACF,KAAA;IAEA,OAAO;QACLZ,gBAAAA,EAAkB;AAAIA,YAAAA,GAAAA,gBAAAA;AAAkBE,YAAAA;AAAa,SAAA;AACrDD,QAAAA;AACF,KAAA;AACF;;;;"}
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+
6
+ const StatusCell = ({ row })=>{
7
+ const [status, setStatus] = React.useState(null);
8
+ React.useEffect(()=>{
9
+ setStatus(row.statusField);
10
+ }, [
11
+ row
12
+ ]);
13
+ if (!status) return null;
14
+ return /*#__PURE__*/ jsxRuntime.jsx("span", {
15
+ style: {
16
+ padding: "4px 8px",
17
+ borderRadius: 4,
18
+ background: status.published ? "#eafbe7" : "#f0f0ff",
19
+ color: status.published ? "#2f6846" : "#271fe0",
20
+ border: `1px solid ${status.published ? "#2f6846" : "#271fe0"}`,
21
+ fontSize: 14
22
+ },
23
+ children: status.name
24
+ });
25
+ };
26
+
27
+ exports.StatusCell = StatusCell;
28
+ //# sourceMappingURL=status-cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-cell.js","sources":["../../../admin/src/listView/status-cell.tsx"],"sourcesContent":["import { useState, useEffect } from \"react\";\r\n\r\n\r\ntype Status = {\r\n id: number;\r\n name: string;\r\n published: boolean;\r\n order: number;\r\n}\r\n\r\n\r\nexport const StatusCell = ({ row }: { row: any;}) => {\r\n const [status, setStatus] = useState<Status | null>(null);\r\n\r\n useEffect(() => {\r\n setStatus(row.statusField);\r\n }, [row]);\r\n\r\n if (!status) return null;\r\n return (\r\n <span style={{\r\n padding: \"4px 8px\",\r\n borderRadius: 4,\r\n background: status.published ? \"#eafbe7\" : \"#f0f0ff\",\r\n color: status.published ? \"#2f6846\" : \"#271fe0\",\r\n border: `1px solid ${status.published ? \"#2f6846\" : \"#271fe0\"}`,\r\n fontSize: 14,\r\n }}>\r\n {status.name}\r\n </span>\r\n );\r\n};\r\n\r\n\r\n"],"names":["StatusCell","row","status","setStatus","useState","useEffect","statusField","_jsx","span","style","padding","borderRadius","background","published","color","border","fontSize","name"],"mappings":";;;;;AAWO,MAAMA,UAAAA,GAAa,CAAC,EAAEC,GAAG,EAAgB,GAAA;AAC/C,IAAA,MAAM,CAACC,MAAAA,EAAQC,SAAAA,CAAU,GAAGC,cAAAA,CAAwB,IAAA,CAAA;IAEnDC,eAAAA,CAAU,IAAA;AACRF,QAAAA,SAAAA,CAAUF,IAAIK,WAAW,CAAA;IAC3B,CAAA,EAAG;AAACL,QAAAA;AAAI,KAAA,CAAA;IAER,IAAI,CAACC,QAAQ,OAAO,IAAA;AACpB,IAAA,qBACEK,cAAA,CAACC,MAAAA,EAAAA;QAAKC,KAAAA,EAAO;YACXC,OAAAA,EAAS,SAAA;YACTC,YAAAA,EAAc,CAAA;YACdC,UAAAA,EAAYV,MAAAA,CAAOW,SAAS,GAAG,SAAA,GAAY,SAAA;YAC3CC,KAAAA,EAAOZ,MAAAA,CAAOW,SAAS,GAAG,SAAA,GAAY,SAAA;AACtCE,YAAAA,MAAAA,EAAQ,CAAC,UAAU,EAAEb,OAAOW,SAAS,GAAG,YAAY,SAAA,CAAA,CAAW;YAC/DG,QAAAA,EAAU;AACZ,SAAA;AACGd,QAAAA,QAAAA,EAAAA,MAAAA,CAAOe;;AAGd;;;;"}
@@ -0,0 +1,26 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useState, useEffect } from 'react';
3
+
4
+ const StatusCell = ({ row })=>{
5
+ const [status, setStatus] = useState(null);
6
+ useEffect(()=>{
7
+ setStatus(row.statusField);
8
+ }, [
9
+ row
10
+ ]);
11
+ if (!status) return null;
12
+ return /*#__PURE__*/ jsx("span", {
13
+ style: {
14
+ padding: "4px 8px",
15
+ borderRadius: 4,
16
+ background: status.published ? "#eafbe7" : "#f0f0ff",
17
+ color: status.published ? "#2f6846" : "#271fe0",
18
+ border: `1px solid ${status.published ? "#2f6846" : "#271fe0"}`,
19
+ fontSize: 14
20
+ },
21
+ children: status.name
22
+ });
23
+ };
24
+
25
+ export { StatusCell };
26
+ //# sourceMappingURL=status-cell.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-cell.mjs","sources":["../../../admin/src/listView/status-cell.tsx"],"sourcesContent":["import { useState, useEffect } from \"react\";\r\n\r\n\r\ntype Status = {\r\n id: number;\r\n name: string;\r\n published: boolean;\r\n order: number;\r\n}\r\n\r\n\r\nexport const StatusCell = ({ row }: { row: any;}) => {\r\n const [status, setStatus] = useState<Status | null>(null);\r\n\r\n useEffect(() => {\r\n setStatus(row.statusField);\r\n }, [row]);\r\n\r\n if (!status) return null;\r\n return (\r\n <span style={{\r\n padding: \"4px 8px\",\r\n borderRadius: 4,\r\n background: status.published ? \"#eafbe7\" : \"#f0f0ff\",\r\n color: status.published ? \"#2f6846\" : \"#271fe0\",\r\n border: `1px solid ${status.published ? \"#2f6846\" : \"#271fe0\"}`,\r\n fontSize: 14,\r\n }}>\r\n {status.name}\r\n </span>\r\n );\r\n};\r\n\r\n\r\n"],"names":["StatusCell","row","status","setStatus","useState","useEffect","statusField","_jsx","span","style","padding","borderRadius","background","published","color","border","fontSize","name"],"mappings":";;;AAWO,MAAMA,UAAAA,GAAa,CAAC,EAAEC,GAAG,EAAgB,GAAA;AAC/C,IAAA,MAAM,CAACC,MAAAA,EAAQC,SAAAA,CAAU,GAAGC,QAAAA,CAAwB,IAAA,CAAA;IAEnDC,SAAAA,CAAU,IAAA;AACRF,QAAAA,SAAAA,CAAUF,IAAIK,WAAW,CAAA;IAC3B,CAAA,EAAG;AAACL,QAAAA;AAAI,KAAA,CAAA;IAER,IAAI,CAACC,QAAQ,OAAO,IAAA;AACpB,IAAA,qBACEK,GAAA,CAACC,MAAAA,EAAAA;QAAKC,KAAAA,EAAO;YACXC,OAAAA,EAAS,SAAA;YACTC,YAAAA,EAAc,CAAA;YACdC,UAAAA,EAAYV,MAAAA,CAAOW,SAAS,GAAG,SAAA,GAAY,SAAA;YAC3CC,KAAAA,EAAOZ,MAAAA,CAAOW,SAAS,GAAG,SAAA,GAAY,SAAA;AACtCE,YAAAA,MAAAA,EAAQ,CAAC,UAAU,EAAEb,OAAOW,SAAS,GAAG,YAAY,SAAA,CAAA,CAAW;YAC/DG,QAAAA,EAAU;AACZ,SAAA;AACGd,QAAAA,QAAAA,EAAAA,MAAAA,CAAOe;;AAGd;;;;"}
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var designSystem = require('@strapi/design-system');
5
+ var admin = require('@strapi/strapi/admin');
6
+ var StatusManager = require('../components/StatusManager.js');
7
+ var permissions = require('../permissions.js');
8
+
9
+ const HomePage = ()=>{
10
+ return /*#__PURE__*/ jsxRuntime.jsxs(admin.Layouts.Root, {
11
+ children: [
12
+ /*#__PURE__*/ jsxRuntime.jsx(admin.Page.Title, {
13
+ children: "Status Manager"
14
+ }),
15
+ /*#__PURE__*/ jsxRuntime.jsx(admin.Page.Main, {
16
+ children: /*#__PURE__*/ jsxRuntime.jsx(admin.Page.Protect, {
17
+ permissions: permissions.accessStatusManager,
18
+ children: /*#__PURE__*/ jsxRuntime.jsx(admin.Layouts.Content, {
19
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
20
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
21
+ padding: 10,
22
+ gap: {
23
+ initial: 1,
24
+ medium: 4,
25
+ large: 8
26
+ },
27
+ direction: {
28
+ initial: "column",
29
+ medium: "row"
30
+ },
31
+ alignItems: {
32
+ initial: "center",
33
+ medium: "flex-start"
34
+ },
35
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Box, {
36
+ padding: 1,
37
+ children: [
38
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
39
+ variant: "alpha",
40
+ children: "Status manager"
41
+ }),
42
+ /*#__PURE__*/ jsxRuntime.jsx(StatusManager.StatusManager, {})
43
+ ]
44
+ })
45
+ })
46
+ })
47
+ })
48
+ })
49
+ })
50
+ ]
51
+ });
52
+ };
53
+
54
+ exports.HomePage = HomePage;
55
+ //# sourceMappingURL=HomePage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HomePage.js","sources":["../../../admin/src/pages/HomePage.tsx"],"sourcesContent":["import { Flex, Typography, Box } from \"@strapi/design-system\";\r\nimport { Layouts, Page } from \"@strapi/strapi/admin\";\r\n\r\nimport { StatusManager } from \"../components/StatusManager\";\r\nimport pluginPermissions from \"../permissions\";\r\n\r\nconst HomePage = () => {\r\n return (\r\n <Layouts.Root>\r\n <Page.Title>Status Manager</Page.Title>\r\n <Page.Main>\r\n <Page.Protect permissions={pluginPermissions.accessStatusManager}>\r\n <Layouts.Content>\r\n <Box>\r\n <Flex\r\n padding={10}\r\n gap={{\r\n initial: 1,\r\n medium: 4,\r\n large: 8,\r\n }}\r\n direction={{\r\n initial: \"column\",\r\n medium: \"row\",\r\n }}\r\n alignItems={{\r\n initial: \"center\",\r\n medium: \"flex-start\",\r\n }}\r\n >\r\n <Box padding={1}>\r\n <Typography variant=\"alpha\">Status manager</Typography>\r\n <StatusManager />\r\n </Box>\r\n </Flex>\r\n </Box>\r\n </Layouts.Content>\r\n </Page.Protect>\r\n </Page.Main>\r\n </Layouts.Root>\r\n );\r\n};\r\n\r\nexport { HomePage };\r\n"],"names":["HomePage","_jsxs","Layouts","Root","_jsx","Page","Title","Main","Protect","permissions","pluginPermissions","accessStatusManager","Content","Box","Flex","padding","gap","initial","medium","large","direction","alignItems","Typography","variant","StatusManager"],"mappings":";;;;;;;;AAMA,MAAMA,QAAAA,GAAW,IAAA;IACf,qBACEC,eAAA,CAACC,cAAQC,IAAI,EAAA;;AACX,0BAAAC,cAAA,CAACC,WAAKC,KAAK,EAAA;AAAC,gBAAA,QAAA,EAAA;;AACZ,0BAAAF,cAAA,CAACC,WAAKE,IAAI,EAAA;wCACRH,cAAA,CAACC,WAAKG,OAAO,EAAA;AAACC,oBAAAA,WAAAA,EAAaC,YAAkBC,mBAAmB;4CAChEP,cAAA,CAACF,cAAQU,OAAO,EAAA;AACd,wBAAA,QAAA,gBAAAR,cAAA,CAACS,gBAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAAT,cAAA,CAACU,iBAAAA,EAAAA;gCACCC,OAAAA,EAAS,EAAA;gCACTC,GAAAA,EAAK;oCACHC,OAAAA,EAAS,CAAA;oCACTC,MAAAA,EAAQ,CAAA;oCACRC,KAAAA,EAAO;AACT,iCAAA;gCACAC,SAAAA,EAAW;oCACTH,OAAAA,EAAS,QAAA;oCACTC,MAAAA,EAAQ;AACV,iCAAA;gCACAG,UAAAA,EAAY;oCACVJ,OAAAA,EAAS,QAAA;oCACTC,MAAAA,EAAQ;AACV,iCAAA;AAEA,gCAAA,QAAA,gBAAAjB,eAAA,CAACY,gBAAAA,EAAAA;oCAAIE,OAAAA,EAAS,CAAA;;sDACZX,cAAA,CAACkB,uBAAAA,EAAAA;4CAAWC,OAAAA,EAAQ,OAAA;AAAQ,4CAAA,QAAA,EAAA;;sDAC5BnB,cAAA,CAACoB,2BAAAA,EAAAA,EAAAA;;;;;;;;;;AASjB;;;;"}
@@ -0,0 +1,53 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { Box, Flex, Typography } from '@strapi/design-system';
3
+ import { Layouts, Page } from '@strapi/strapi/admin';
4
+ import { StatusManager } from '../components/StatusManager.mjs';
5
+ import pluginPermissions from '../permissions.mjs';
6
+
7
+ const HomePage = ()=>{
8
+ return /*#__PURE__*/ jsxs(Layouts.Root, {
9
+ children: [
10
+ /*#__PURE__*/ jsx(Page.Title, {
11
+ children: "Status Manager"
12
+ }),
13
+ /*#__PURE__*/ jsx(Page.Main, {
14
+ children: /*#__PURE__*/ jsx(Page.Protect, {
15
+ permissions: pluginPermissions.accessStatusManager,
16
+ children: /*#__PURE__*/ jsx(Layouts.Content, {
17
+ children: /*#__PURE__*/ jsx(Box, {
18
+ children: /*#__PURE__*/ jsx(Flex, {
19
+ padding: 10,
20
+ gap: {
21
+ initial: 1,
22
+ medium: 4,
23
+ large: 8
24
+ },
25
+ direction: {
26
+ initial: "column",
27
+ medium: "row"
28
+ },
29
+ alignItems: {
30
+ initial: "center",
31
+ medium: "flex-start"
32
+ },
33
+ children: /*#__PURE__*/ jsxs(Box, {
34
+ padding: 1,
35
+ children: [
36
+ /*#__PURE__*/ jsx(Typography, {
37
+ variant: "alpha",
38
+ children: "Status manager"
39
+ }),
40
+ /*#__PURE__*/ jsx(StatusManager, {})
41
+ ]
42
+ })
43
+ })
44
+ })
45
+ })
46
+ })
47
+ })
48
+ ]
49
+ });
50
+ };
51
+
52
+ export { HomePage };
53
+ //# sourceMappingURL=HomePage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HomePage.mjs","sources":["../../../admin/src/pages/HomePage.tsx"],"sourcesContent":["import { Flex, Typography, Box } from \"@strapi/design-system\";\r\nimport { Layouts, Page } from \"@strapi/strapi/admin\";\r\n\r\nimport { StatusManager } from \"../components/StatusManager\";\r\nimport pluginPermissions from \"../permissions\";\r\n\r\nconst HomePage = () => {\r\n return (\r\n <Layouts.Root>\r\n <Page.Title>Status Manager</Page.Title>\r\n <Page.Main>\r\n <Page.Protect permissions={pluginPermissions.accessStatusManager}>\r\n <Layouts.Content>\r\n <Box>\r\n <Flex\r\n padding={10}\r\n gap={{\r\n initial: 1,\r\n medium: 4,\r\n large: 8,\r\n }}\r\n direction={{\r\n initial: \"column\",\r\n medium: \"row\",\r\n }}\r\n alignItems={{\r\n initial: \"center\",\r\n medium: \"flex-start\",\r\n }}\r\n >\r\n <Box padding={1}>\r\n <Typography variant=\"alpha\">Status manager</Typography>\r\n <StatusManager />\r\n </Box>\r\n </Flex>\r\n </Box>\r\n </Layouts.Content>\r\n </Page.Protect>\r\n </Page.Main>\r\n </Layouts.Root>\r\n );\r\n};\r\n\r\nexport { HomePage };\r\n"],"names":["HomePage","_jsxs","Layouts","Root","_jsx","Page","Title","Main","Protect","permissions","pluginPermissions","accessStatusManager","Content","Box","Flex","padding","gap","initial","medium","large","direction","alignItems","Typography","variant","StatusManager"],"mappings":";;;;;;AAMA,MAAMA,QAAAA,GAAW,IAAA;IACf,qBACEC,IAAA,CAACC,QAAQC,IAAI,EAAA;;AACX,0BAAAC,GAAA,CAACC,KAAKC,KAAK,EAAA;AAAC,gBAAA,QAAA,EAAA;;AACZ,0BAAAF,GAAA,CAACC,KAAKE,IAAI,EAAA;wCACRH,GAAA,CAACC,KAAKG,OAAO,EAAA;AAACC,oBAAAA,WAAAA,EAAaC,kBAAkBC,mBAAmB;4CAChEP,GAAA,CAACF,QAAQU,OAAO,EAAA;AACd,wBAAA,QAAA,gBAAAR,GAAA,CAACS,GAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAAT,GAAA,CAACU,IAAAA,EAAAA;gCACCC,OAAAA,EAAS,EAAA;gCACTC,GAAAA,EAAK;oCACHC,OAAAA,EAAS,CAAA;oCACTC,MAAAA,EAAQ,CAAA;oCACRC,KAAAA,EAAO;AACT,iCAAA;gCACAC,SAAAA,EAAW;oCACTH,OAAAA,EAAS,QAAA;oCACTC,MAAAA,EAAQ;AACV,iCAAA;gCACAG,UAAAA,EAAY;oCACVJ,OAAAA,EAAS,QAAA;oCACTC,MAAAA,EAAQ;AACV,iCAAA;AAEA,gCAAA,QAAA,gBAAAjB,IAAA,CAACY,GAAAA,EAAAA;oCAAIE,OAAAA,EAAS,CAAA;;sDACZX,GAAA,CAACkB,UAAAA,EAAAA;4CAAWC,OAAAA,EAAQ,OAAA;AAAQ,4CAAA,QAAA,EAAA;;sDAC5BnB,GAAA,CAACoB,aAAAA,EAAAA,EAAAA;;;;;;;;;;AASjB;;;;"}
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Admin permission actions for use in addMenuLink, Page.Protect, and useRBAC.
5
+ * Action IDs must match uids registered in server bootstrap (registerMany).
6
+ */ const pluginPermissions = {
7
+ accessStatusManager: [
8
+ {
9
+ action: "plugin::primershop-status-manager.main",
10
+ subject: null
11
+ }
12
+ ]
13
+ };
14
+
15
+ module.exports = pluginPermissions;
16
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sources":["../../admin/src/permissions.ts"],"sourcesContent":["/**\r\n * Admin permission actions for use in addMenuLink, Page.Protect, and useRBAC.\r\n * Action IDs must match uids registered in server bootstrap (registerMany).\r\n */\r\nconst pluginPermissions = {\r\n accessStatusManager: [\r\n {\r\n action: \"plugin::primershop-status-manager.main\",\r\n subject: null,\r\n },\r\n ],\r\n};\r\n\r\nexport default pluginPermissions;\r\n"],"names":["pluginPermissions","accessStatusManager","action","subject"],"mappings":";;AAAA;;;AAGC,UACKA,iBAAAA,GAAoB;IACxBC,mBAAAA,EAAqB;AACnB,QAAA;YACEC,MAAAA,EAAQ,wCAAA;YACRC,OAAAA,EAAS;AACX;AACD;AACH;;;;"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Admin permission actions for use in addMenuLink, Page.Protect, and useRBAC.
3
+ * Action IDs must match uids registered in server bootstrap (registerMany).
4
+ */ const pluginPermissions = {
5
+ accessStatusManager: [
6
+ {
7
+ action: "plugin::primershop-status-manager.main",
8
+ subject: null
9
+ }
10
+ ]
11
+ };
12
+
13
+ export { pluginPermissions as default };
14
+ //# sourceMappingURL=permissions.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.mjs","sources":["../../admin/src/permissions.ts"],"sourcesContent":["/**\r\n * Admin permission actions for use in addMenuLink, Page.Protect, and useRBAC.\r\n * Action IDs must match uids registered in server bootstrap (registerMany).\r\n */\r\nconst pluginPermissions = {\r\n accessStatusManager: [\r\n {\r\n action: \"plugin::primershop-status-manager.main\",\r\n subject: null,\r\n },\r\n ],\r\n};\r\n\r\nexport default pluginPermissions;\r\n"],"names":["pluginPermissions","accessStatusManager","action","subject"],"mappings":"AAAA;;;AAGC,UACKA,iBAAAA,GAAoB;IACxBC,mBAAAA,EAAqB;AACnB,QAAA;YACEC,MAAAA,EAAQ,wCAAA;YACRC,OAAAA,EAAS;AACX;AACD;AACH;;;;"}