@inventreedb/ui 1.4.0 → 1.4.2
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/CHANGELOG.md +18 -0
- package/dist/.vite/manifest.json +40 -1
- package/dist/_virtual/dynamic-import-helper.js +20 -0
- package/dist/_virtual/dynamic-import-helper.js.map +1 -0
- package/dist/components/Boundary.js +5 -4
- package/dist/components/Boundary.js.map +1 -1
- package/dist/components/TableColumnSelect.js +1 -1
- package/dist/components/TableColumnSelect.js.map +1 -1
- package/dist/components/TagsList.d.ts +3 -0
- package/dist/components/TagsList.js +21 -0
- package/dist/components/TagsList.js.map +1 -0
- package/dist/enums/ApiEndpoints.d.ts +15 -4
- package/dist/enums/ApiEndpoints.js +15 -4
- package/dist/enums/ApiEndpoints.js.map +1 -1
- package/dist/enums/ModelInformation.d.ts +1 -0
- package/dist/enums/ModelInformation.js +54 -2
- package/dist/enums/ModelInformation.js.map +1 -1
- package/dist/enums/ModelType.d.ts +4 -1
- package/dist/enums/ModelType.js +3 -0
- package/dist/enums/ModelType.js.map +1 -1
- package/dist/enums/Roles.d.ts +1 -0
- package/dist/enums/Roles.js +1 -0
- package/dist/enums/Roles.js.map +1 -1
- package/dist/functions/Navigation.js +1 -1
- package/dist/functions/Navigation.js.map +1 -1
- package/dist/hooks/UseFilterSet.js +38 -1
- package/dist/hooks/UseFilterSet.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +16 -10
- package/dist/index.js.map +1 -1
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTag.js +14 -0
- package/dist/node_modules/@tabler/icons-react/dist/esm/icons/IconTag.js.map +1 -0
- package/dist/plugin/InventreeHmrPlugin.d.ts +8 -0
- package/dist/plugin/InventreeHmrPlugin.js +21 -0
- package/dist/plugin/InventreeHmrPlugin.js.map +1 -0
- package/dist/plugin/LocalizedComponent.d.ts +11 -0
- package/dist/plugin/LocalizedComponent.js +57 -0
- package/dist/plugin/LocalizedComponent.js.map +1 -0
- package/dist/types/Filters.d.ts +11 -0
- package/dist/types/Forms.d.ts +4 -1
- package/dist/types/Plugins.js +1 -1
- package/dist/types/Rendering.d.ts +1 -0
- package/dist/types/Tables.d.ts +4 -2
- package/lib/components/Boundary.tsx +7 -3
- package/lib/components/TableColumnSelect.tsx +1 -1
- package/lib/components/TagsList.tsx +27 -0
- package/lib/enums/ApiEndpoints.tsx +18 -4
- package/lib/enums/ModelInformation.tsx +25 -2
- package/lib/enums/ModelType.tsx +4 -1
- package/lib/enums/Roles.tsx +3 -0
- package/lib/functions/Navigation.tsx +1 -1
- package/lib/hooks/UseFilterSet.tsx +54 -3
- package/lib/index.ts +5 -0
- package/lib/plugin/InventreeHmrPlugin.tsx +40 -0
- package/lib/plugin/LocalizedComponent.tsx +87 -0
- package/lib/types/Filters.tsx +19 -0
- package/lib/types/Forms.tsx +5 -1
- package/lib/types/Rendering.tsx +1 -0
- package/lib/types/Tables.tsx +5 -2
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelInformation.js","sources":["../../lib/enums/ModelInformation.tsx"],"sourcesContent":["import { t } from '@lingui/core/macro';\nimport type { InvenTreeIconType } from '../types/Icons';\nimport { ApiEndpoints } from './ApiEndpoints';\nimport type { ModelType } from './ModelType';\n\nexport interface ModelInformationInterface {\n label: string;\n label_multiple: string;\n url_overview?: string;\n url_detail?: string;\n api_endpoint: ApiEndpoints;\n admin_url?: string;\n supports_barcode?: boolean;\n icon: keyof InvenTreeIconType;\n}\n\nexport interface TranslatableModelInformationInterface\n extends Omit<ModelInformationInterface, 'label' | 'label_multiple'> {\n label: () => string;\n label_multiple: () => string;\n}\n\nexport type ModelDict = {\n [key in keyof typeof ModelType]: TranslatableModelInformationInterface;\n};\n\nexport const ModelInformationDict: ModelDict = {\n part: {\n label: () => t`Part`,\n label_multiple: () => t`Parts`,\n url_overview: '/part/category/index/parts',\n url_detail: '/part/:pk/',\n api_endpoint: ApiEndpoints.part_list,\n admin_url: '/part/part/',\n supports_barcode: true,\n icon: 'part'\n },\n parameter: {\n label: () => t`Parameter`,\n label_multiple: () => t`Parameters`,\n api_endpoint: ApiEndpoints.parameter_list,\n icon: 'list_details'\n },\n parametertemplate: {\n label: () => t`Parameter Template`,\n label_multiple: () => t`Parameter Templates`,\n api_endpoint: ApiEndpoints.parameter_template_list,\n admin_url: '/common/parametertemplate/',\n icon: 'list'\n },\n parttesttemplate: {\n label: () => t`Part Test Template`,\n label_multiple: () => t`Part Test Templates`,\n url_detail: '/parttesttemplate/:pk/',\n api_endpoint: ApiEndpoints.part_test_template_list,\n icon: 'test'\n },\n supplierpart: {\n label: () => t`Supplier Part`,\n label_multiple: () => t`Supplier Parts`,\n url_overview: '/purchasing/index/supplier-parts',\n url_detail: '/purchasing/supplier-part/:pk/',\n api_endpoint: ApiEndpoints.supplier_part_list,\n admin_url: '/company/supplierpart/',\n supports_barcode: true,\n icon: 'supplier_part'\n },\n manufacturerpart: {\n label: () => t`Manufacturer Part`,\n label_multiple: () => t`Manufacturer Parts`,\n url_overview: '/purchasing/index/manufacturer-parts',\n url_detail: '/purchasing/manufacturer-part/:pk/',\n api_endpoint: ApiEndpoints.manufacturer_part_list,\n admin_url: '/company/manufacturerpart/',\n supports_barcode: true,\n icon: 'manufacturers'\n },\n partcategory: {\n label: () => t`Part Category`,\n label_multiple: () => t`Part Categories`,\n url_overview: '/part/category/parts/subcategories',\n url_detail: '/part/category/:pk/',\n api_endpoint: ApiEndpoints.category_list,\n admin_url: '/part/partcategory/',\n icon: 'category'\n },\n stockitem: {\n label: () => t`Stock Item`,\n label_multiple: () => t`Stock Items`,\n url_overview: '/stock/location/index/stock-items',\n url_detail: '/stock/item/:pk/',\n api_endpoint: ApiEndpoints.stock_item_list,\n admin_url: '/stock/stockitem/',\n supports_barcode: true,\n icon: 'stock'\n },\n stocklocation: {\n label: () => t`Stock Location`,\n label_multiple: () => t`Stock Locations`,\n url_overview: '/stock/location',\n url_detail: '/stock/location/:pk/',\n api_endpoint: ApiEndpoints.stock_location_list,\n admin_url: '/stock/stocklocation/',\n supports_barcode: true,\n icon: 'location'\n },\n stocklocationtype: {\n label: () => t`Stock Location Type`,\n label_multiple: () => t`Stock Location Types`,\n api_endpoint: ApiEndpoints.stock_location_type_list,\n icon: 'location'\n },\n stockhistory: {\n label: () => t`Stock History`,\n label_multiple: () => t`Stock Histories`,\n api_endpoint: ApiEndpoints.stock_tracking_list,\n icon: 'history'\n },\n build: {\n label: () => t`Build`,\n label_multiple: () => t`Builds`,\n url_overview: '/manufacturing/index/buildorders/',\n url_detail: '/manufacturing/build-order/:pk/',\n api_endpoint: ApiEndpoints.build_order_list,\n admin_url: '/build/build/',\n supports_barcode: true,\n icon: 'build_order'\n },\n buildline: {\n label: () => t`Build Line`,\n label_multiple: () => t`Build Lines`,\n url_overview: '/build/line',\n url_detail: '/build/line/:pk/',\n api_endpoint: ApiEndpoints.build_line_list,\n icon: 'build_order'\n },\n builditem: {\n label: () => t`Build Item`,\n label_multiple: () => t`Build Items`,\n api_endpoint: ApiEndpoints.build_item_list,\n icon: 'build_order'\n },\n company: {\n label: () => t`Company`,\n label_multiple: () => t`Companies`,\n url_detail: '/company/:pk/',\n api_endpoint: ApiEndpoints.company_list,\n admin_url: '/company/company/',\n icon: 'building'\n },\n projectcode: {\n label: () => t`Project Code`,\n label_multiple: () => t`Project Codes`,\n url_detail: '/project-code/:pk/',\n api_endpoint: ApiEndpoints.project_code_list,\n icon: 'list_details'\n },\n purchaseorder: {\n label: () => t`Purchase Order`,\n label_multiple: () => t`Purchase Orders`,\n url_overview: '/purchasing/index/purchaseorders',\n url_detail: '/purchasing/purchase-order/:pk/',\n api_endpoint: ApiEndpoints.purchase_order_list,\n admin_url: '/order/purchaseorder/',\n supports_barcode: true,\n icon: 'purchase_orders'\n },\n purchaseorderlineitem: {\n label: () => t`Purchase Order Line`,\n label_multiple: () => t`Purchase Order Lines`,\n api_endpoint: ApiEndpoints.purchase_order_line_list,\n icon: 'purchase_orders'\n },\n salesorder: {\n label: () => t`Sales Order`,\n label_multiple: () => t`Sales Orders`,\n url_overview: '/sales/index/salesorders',\n url_detail: '/sales/sales-order/:pk/',\n api_endpoint: ApiEndpoints.sales_order_list,\n admin_url: '/order/salesorder/',\n supports_barcode: true,\n icon: 'sales_orders'\n },\n salesordershipment: {\n label: () => t`Sales Order Shipment`,\n label_multiple: () => t`Sales Order Shipments`,\n url_overview: '/sales/index/shipments',\n url_detail: '/sales/shipment/:pk/',\n admin_url: '/order/salesordershipment/',\n api_endpoint: ApiEndpoints.sales_order_shipment_list,\n supports_barcode: true,\n icon: 'shipment'\n },\n returnorder: {\n label: () => t`Return Order`,\n label_multiple: () => t`Return Orders`,\n url_overview: '/sales/index/returnorders',\n url_detail: '/sales/return-order/:pk/',\n api_endpoint: ApiEndpoints.return_order_list,\n admin_url: '/order/returnorder/',\n supports_barcode: true,\n icon: 'return_orders'\n },\n returnorderlineitem: {\n label: () => t`Return Order Line Item`,\n label_multiple: () => t`Return Order Line Items`,\n api_endpoint: ApiEndpoints.return_order_line_list,\n icon: 'return_orders'\n },\n address: {\n label: () => t`Address`,\n label_multiple: () => t`Addresses`,\n url_detail: '/address/:pk/',\n api_endpoint: ApiEndpoints.address_list,\n icon: 'address'\n },\n contact: {\n label: () => t`Contact`,\n label_multiple: () => t`Contacts`,\n url_detail: '/contact/:pk/',\n api_endpoint: ApiEndpoints.contact_list,\n icon: 'group'\n },\n owner: {\n label: () => t`Owner`,\n label_multiple: () => t`Owners`,\n url_detail: '/owner/:pk/',\n api_endpoint: ApiEndpoints.owner_list,\n icon: 'group'\n },\n user: {\n label: () => t`User`,\n label_multiple: () => t`Users`,\n url_detail: '/core/user/:pk/',\n api_endpoint: ApiEndpoints.user_list,\n icon: 'user'\n },\n group: {\n label: () => t`Group`,\n label_multiple: () => t`Groups`,\n url_detail: '/core/group/:pk/',\n api_endpoint: ApiEndpoints.group_list,\n admin_url: '/auth/group/',\n icon: 'group'\n },\n importsession: {\n label: () => t`Import Session`,\n label_multiple: () => t`Import Sessions`,\n url_overview: '/settings/admin/import',\n url_detail: '/import/:pk/',\n api_endpoint: ApiEndpoints.import_session_list,\n icon: 'import'\n },\n labeltemplate: {\n label: () => t`Label Template`,\n label_multiple: () => t`Label Templates`,\n url_overview: '/settings/admin/labels',\n url_detail: '/settings/admin/labels/:pk/',\n api_endpoint: ApiEndpoints.label_list,\n icon: 'labels'\n },\n reporttemplate: {\n label: () => t`Report Template`,\n label_multiple: () => t`Report Templates`,\n url_overview: '/settings/admin/reports',\n url_detail: '/settings/admin/reports/:pk/',\n api_endpoint: ApiEndpoints.report_list,\n icon: 'reports'\n },\n pluginconfig: {\n label: () => t`Plugin Configuration`,\n label_multiple: () => t`Plugin Configurations`,\n url_overview: '/settings/admin/plugin',\n url_detail: '/settings/admin/plugin/:pk/',\n api_endpoint: ApiEndpoints.plugin_list,\n icon: 'plugin'\n },\n contenttype: {\n label: () => t`Content Type`,\n label_multiple: () => t`Content Types`,\n api_endpoint: ApiEndpoints.content_type_list,\n icon: 'list_details'\n },\n selectionlist: {\n label: () => t`Selection List`,\n label_multiple: () => t`Selection Lists`,\n url_overview: '/settings/admin/part-parameters',\n api_endpoint: ApiEndpoints.selectionlist_list,\n icon: 'list_details'\n },\n selectionentry: {\n label: () => t`Selection Entry`,\n label_multiple: () => t`Selection Entries`,\n url_overview: '/settings/admin/part-parameters',\n api_endpoint: ApiEndpoints.selectionentry_list,\n icon: 'list_details'\n },\n error: {\n label: () => t`Error`,\n label_multiple: () => t`Errors`,\n api_endpoint: ApiEndpoints.error_report_list,\n url_overview: '/settings/admin/errors',\n url_detail: '/settings/admin/errors/:pk/',\n icon: 'exclamation'\n }\n};\n"],"names":["ModelInformationDict","part","label","_i18n","_","id","label_multiple","url_overview","url_detail","api_endpoint","ApiEndpoints","part_list","admin_url","supports_barcode","icon","parameter","parameter_list","parametertemplate","parameter_template_list","parttesttemplate","part_test_template_list","supplierpart","supplier_part_list","manufacturerpart","manufacturer_part_list","partcategory","category_list","stockitem","stock_item_list","stocklocation","stock_location_list","stocklocationtype","stock_location_type_list","stockhistory","stock_tracking_list","build","build_order_list","buildline","build_line_list","builditem","build_item_list","company","company_list","projectcode","project_code_list","purchaseorder","purchase_order_list","purchaseorderlineitem","purchase_order_line_list","salesorder","sales_order_list","salesordershipment","sales_order_shipment_list","returnorder","return_order_list","returnorderlineitem","return_order_line_list","address","address_list","contact","contact_list","owner","owner_list","user","user_list","group","group_list","importsession","import_session_list","labeltemplate","label_list","reporttemplate","report_list","pluginconfig","plugin_list","contenttype","content_type_list","selectionlist","selectionlist_list","selectionentry","selectionentry_list","error","error_report_list"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ModelInformation.js","sources":["../../lib/enums/ModelInformation.tsx"],"sourcesContent":["import { t } from '@lingui/core/macro';\nimport type { InvenTreeIconType } from '../types/Icons';\nimport { ApiEndpoints } from './ApiEndpoints';\nimport type { ModelType } from './ModelType';\n\nexport interface ModelInformationInterface {\n label: string;\n label_multiple: string;\n url_overview?: string;\n url_detail?: string;\n api_endpoint: ApiEndpoints;\n admin_url?: string;\n pk_field?: string;\n supports_barcode?: boolean;\n icon: keyof InvenTreeIconType;\n}\n\nexport interface TranslatableModelInformationInterface\n extends Omit<ModelInformationInterface, 'label' | 'label_multiple'> {\n label: () => string;\n label_multiple: () => string;\n}\n\nexport type ModelDict = {\n [key in keyof typeof ModelType]: TranslatableModelInformationInterface;\n};\n\nexport const ModelInformationDict: ModelDict = {\n part: {\n label: () => t`Part`,\n label_multiple: () => t`Parts`,\n url_overview: '/part/category/index/parts',\n url_detail: '/part/:pk/',\n api_endpoint: ApiEndpoints.part_list,\n admin_url: '/part/part/',\n supports_barcode: true,\n icon: 'part'\n },\n parameter: {\n label: () => t`Parameter`,\n label_multiple: () => t`Parameters`,\n api_endpoint: ApiEndpoints.parameter_list,\n icon: 'list_details'\n },\n parametertemplate: {\n label: () => t`Parameter Template`,\n label_multiple: () => t`Parameter Templates`,\n api_endpoint: ApiEndpoints.parameter_template_list,\n admin_url: '/common/parametertemplate/',\n icon: 'list'\n },\n parttesttemplate: {\n label: () => t`Part Test Template`,\n label_multiple: () => t`Part Test Templates`,\n url_detail: '/parttesttemplate/:pk/',\n api_endpoint: ApiEndpoints.part_test_template_list,\n icon: 'test'\n },\n supplierpart: {\n label: () => t`Supplier Part`,\n label_multiple: () => t`Supplier Parts`,\n url_overview: '/purchasing/index/supplier-parts',\n url_detail: '/purchasing/supplier-part/:pk/',\n api_endpoint: ApiEndpoints.supplier_part_list,\n admin_url: '/company/supplierpart/',\n supports_barcode: true,\n icon: 'supplier_part'\n },\n manufacturerpart: {\n label: () => t`Manufacturer Part`,\n label_multiple: () => t`Manufacturer Parts`,\n url_overview: '/purchasing/index/manufacturer-parts',\n url_detail: '/purchasing/manufacturer-part/:pk/',\n api_endpoint: ApiEndpoints.manufacturer_part_list,\n admin_url: '/company/manufacturerpart/',\n supports_barcode: true,\n icon: 'manufacturers'\n },\n partcategory: {\n label: () => t`Part Category`,\n label_multiple: () => t`Part Categories`,\n url_overview: '/part/category/parts/subcategories',\n url_detail: '/part/category/:pk/',\n api_endpoint: ApiEndpoints.category_list,\n admin_url: '/part/partcategory/',\n icon: 'category'\n },\n stockitem: {\n label: () => t`Stock Item`,\n label_multiple: () => t`Stock Items`,\n url_overview: '/stock/location/index/stock-items',\n url_detail: '/stock/item/:pk/',\n api_endpoint: ApiEndpoints.stock_item_list,\n admin_url: '/stock/stockitem/',\n supports_barcode: true,\n icon: 'stock'\n },\n stocklocation: {\n label: () => t`Stock Location`,\n label_multiple: () => t`Stock Locations`,\n url_overview: '/stock/location',\n url_detail: '/stock/location/:pk/',\n api_endpoint: ApiEndpoints.stock_location_list,\n admin_url: '/stock/stocklocation/',\n supports_barcode: true,\n icon: 'location'\n },\n stocklocationtype: {\n label: () => t`Stock Location Type`,\n label_multiple: () => t`Stock Location Types`,\n api_endpoint: ApiEndpoints.stock_location_type_list,\n icon: 'location'\n },\n stockhistory: {\n label: () => t`Stock History`,\n label_multiple: () => t`Stock Histories`,\n api_endpoint: ApiEndpoints.stock_tracking_list,\n icon: 'history'\n },\n build: {\n label: () => t`Build Order`,\n label_multiple: () => t`Build Orders`,\n url_overview: '/manufacturing/index/buildorders/',\n url_detail: '/manufacturing/build-order/:pk/',\n api_endpoint: ApiEndpoints.build_order_list,\n admin_url: '/build/build/',\n supports_barcode: true,\n icon: 'build_order'\n },\n buildline: {\n label: () => t`Build Line`,\n label_multiple: () => t`Build Lines`,\n url_overview: '/build/line',\n url_detail: '/build/line/:pk/',\n api_endpoint: ApiEndpoints.build_line_list,\n icon: 'build_order'\n },\n builditem: {\n label: () => t`Build Item`,\n label_multiple: () => t`Build Items`,\n api_endpoint: ApiEndpoints.build_item_list,\n icon: 'build_order'\n },\n company: {\n label: () => t`Company`,\n label_multiple: () => t`Companies`,\n url_detail: '/company/:pk/',\n api_endpoint: ApiEndpoints.company_list,\n admin_url: '/company/company/',\n icon: 'building'\n },\n projectcode: {\n label: () => t`Project Code`,\n label_multiple: () => t`Project Codes`,\n url_detail: '/project-code/:pk/',\n api_endpoint: ApiEndpoints.project_code_list,\n icon: 'list_details'\n },\n purchaseorder: {\n label: () => t`Purchase Order`,\n label_multiple: () => t`Purchase Orders`,\n url_overview: '/purchasing/index/purchaseorders',\n url_detail: '/purchasing/purchase-order/:pk/',\n api_endpoint: ApiEndpoints.purchase_order_list,\n admin_url: '/order/purchaseorder/',\n supports_barcode: true,\n icon: 'purchase_orders'\n },\n purchaseorderlineitem: {\n label: () => t`Purchase Order Line`,\n label_multiple: () => t`Purchase Order Lines`,\n api_endpoint: ApiEndpoints.purchase_order_line_list,\n icon: 'purchase_orders'\n },\n salesorder: {\n label: () => t`Sales Order`,\n label_multiple: () => t`Sales Orders`,\n url_overview: '/sales/index/salesorders',\n url_detail: '/sales/sales-order/:pk/',\n api_endpoint: ApiEndpoints.sales_order_list,\n admin_url: '/order/salesorder/',\n supports_barcode: true,\n icon: 'sales_orders'\n },\n salesordershipment: {\n label: () => t`Sales Order Shipment`,\n label_multiple: () => t`Sales Order Shipments`,\n url_overview: '/sales/index/shipments',\n url_detail: '/sales/shipment/:pk/',\n admin_url: '/order/salesordershipment/',\n api_endpoint: ApiEndpoints.sales_order_shipment_list,\n supports_barcode: true,\n icon: 'shipment'\n },\n returnorder: {\n label: () => t`Return Order`,\n label_multiple: () => t`Return Orders`,\n url_overview: '/sales/index/returnorders',\n url_detail: '/sales/return-order/:pk/',\n api_endpoint: ApiEndpoints.return_order_list,\n admin_url: '/order/returnorder/',\n supports_barcode: true,\n icon: 'return_orders'\n },\n returnorderlineitem: {\n label: () => t`Return Order Line Item`,\n label_multiple: () => t`Return Order Line Items`,\n api_endpoint: ApiEndpoints.return_order_line_list,\n icon: 'return_orders'\n },\n transferorder: {\n label: () => t`Transfer Order`,\n label_multiple: () => t`Transfer Orders`,\n url_overview: '/stock/location/index/transfer-orders',\n url_detail: '/stock/transfer-order/:pk/',\n api_endpoint: ApiEndpoints.transfer_order_list,\n admin_url: '/order/transferorder/',\n supports_barcode: true,\n icon: 'transfer_orders'\n },\n transferorderlineitem: {\n label: () => t`Transfer Order Line Item`,\n label_multiple: () => t`Transfer Order Line Items`,\n api_endpoint: ApiEndpoints.transfer_order_line_list,\n icon: 'transfer-orders'\n },\n address: {\n label: () => t`Address`,\n label_multiple: () => t`Addresses`,\n url_detail: '/address/:pk/',\n api_endpoint: ApiEndpoints.address_list,\n icon: 'address'\n },\n contact: {\n label: () => t`Contact`,\n label_multiple: () => t`Contacts`,\n url_detail: '/contact/:pk/',\n api_endpoint: ApiEndpoints.contact_list,\n icon: 'group'\n },\n owner: {\n label: () => t`Owner`,\n label_multiple: () => t`Owners`,\n url_detail: '/owner/:pk/',\n api_endpoint: ApiEndpoints.owner_list,\n icon: 'group'\n },\n user: {\n label: () => t`User`,\n label_multiple: () => t`Users`,\n url_detail: '/core/user/:pk/',\n api_endpoint: ApiEndpoints.user_list,\n icon: 'user'\n },\n group: {\n label: () => t`Group`,\n label_multiple: () => t`Groups`,\n url_detail: '/core/group/:pk/',\n api_endpoint: ApiEndpoints.group_list,\n admin_url: '/auth/group/',\n icon: 'group'\n },\n importsession: {\n label: () => t`Import Session`,\n label_multiple: () => t`Import Sessions`,\n url_overview: '/settings/admin/import',\n url_detail: '/import/:pk/',\n api_endpoint: ApiEndpoints.import_session_list,\n icon: 'import'\n },\n labeltemplate: {\n label: () => t`Label Template`,\n label_multiple: () => t`Label Templates`,\n url_overview: '/settings/admin/labels',\n url_detail: '/settings/admin/labels/:pk/',\n api_endpoint: ApiEndpoints.label_list,\n icon: 'labels'\n },\n reporttemplate: {\n label: () => t`Report Template`,\n label_multiple: () => t`Report Templates`,\n url_overview: '/settings/admin/reports',\n url_detail: '/settings/admin/reports/:pk/',\n api_endpoint: ApiEndpoints.report_list,\n icon: 'reports'\n },\n pluginconfig: {\n label: () => t`Plugin Configuration`,\n label_multiple: () => t`Plugin Configurations`,\n url_overview: '/settings/admin/plugin',\n url_detail: '/settings/admin/plugin/:pk/',\n api_endpoint: ApiEndpoints.plugin_list,\n icon: 'plugin'\n },\n contenttype: {\n label: () => t`Content Type`,\n label_multiple: () => t`Content Types`,\n api_endpoint: ApiEndpoints.content_type_list,\n icon: 'list_details'\n },\n selectionlist: {\n label: () => t`Selection List`,\n label_multiple: () => t`Selection Lists`,\n url_overview: '/settings/admin/part-parameters',\n api_endpoint: ApiEndpoints.selectionlist_list,\n icon: 'list_details'\n },\n selectionentry: {\n label: () => t`Selection Entry`,\n label_multiple: () => t`Selection Entries`,\n url_overview: '/settings/admin/part-parameters',\n api_endpoint: ApiEndpoints.selectionentry_list,\n icon: 'list_details'\n },\n error: {\n label: () => t`Error`,\n label_multiple: () => t`Errors`,\n api_endpoint: ApiEndpoints.error_report_list,\n url_overview: '/settings/admin/errors',\n url_detail: '/settings/admin/errors/:pk/',\n icon: 'exclamation'\n },\n tag: {\n label: () => t`Tag`,\n label_multiple: () => t`Tags`,\n api_endpoint: ApiEndpoints.tag_list,\n icon: 'tag'\n }\n};\n"],"names":["ModelInformationDict","part","label","_i18n","_","id","label_multiple","url_overview","url_detail","api_endpoint","ApiEndpoints","part_list","admin_url","supports_barcode","icon","parameter","parameter_list","parametertemplate","parameter_template_list","parttesttemplate","part_test_template_list","supplierpart","supplier_part_list","manufacturerpart","manufacturer_part_list","partcategory","category_list","stockitem","stock_item_list","stocklocation","stock_location_list","stocklocationtype","stock_location_type_list","stockhistory","stock_tracking_list","build","build_order_list","buildline","build_line_list","builditem","build_item_list","company","company_list","projectcode","project_code_list","purchaseorder","purchase_order_list","purchaseorderlineitem","purchase_order_line_list","salesorder","sales_order_list","salesordershipment","sales_order_shipment_list","returnorder","return_order_list","returnorderlineitem","return_order_line_list","transferorder","transfer_order_list","transferorderlineitem","transfer_order_line_list","address","address_list","contact","contact_list","owner","owner_list","user","user_list","group","group_list","importsession","import_session_list","labeltemplate","label_list","reporttemplate","report_list","pluginconfig","plugin_list","contenttype","content_type_list","selectionlist","selectionlist_list","selectionentry","selectionentry_list","error","error_report_list","tag","tag_list"],"mappings":"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"}
|
|
@@ -21,6 +21,8 @@ export declare enum ModelType {
|
|
|
21
21
|
salesordershipment = "salesordershipment",
|
|
22
22
|
returnorder = "returnorder",
|
|
23
23
|
returnorderlineitem = "returnorderlineitem",
|
|
24
|
+
transferorder = "transferorder",
|
|
25
|
+
transferorderlineitem = "transferorderlineitem",
|
|
24
26
|
importsession = "importsession",
|
|
25
27
|
address = "address",
|
|
26
28
|
contact = "contact",
|
|
@@ -33,7 +35,8 @@ export declare enum ModelType {
|
|
|
33
35
|
contenttype = "contenttype",
|
|
34
36
|
selectionlist = "selectionlist",
|
|
35
37
|
selectionentry = "selectionentry",
|
|
36
|
-
error = "error"
|
|
38
|
+
error = "error",
|
|
39
|
+
tag = "tag"
|
|
37
40
|
}
|
|
38
41
|
export declare enum PluginPanelKey {
|
|
39
42
|
admincenter = "admincenter",
|
package/dist/enums/ModelType.js
CHANGED
|
@@ -21,6 +21,8 @@ var ModelType = /* @__PURE__ */ ((ModelType2) => {
|
|
|
21
21
|
ModelType2["salesordershipment"] = "salesordershipment";
|
|
22
22
|
ModelType2["returnorder"] = "returnorder";
|
|
23
23
|
ModelType2["returnorderlineitem"] = "returnorderlineitem";
|
|
24
|
+
ModelType2["transferorder"] = "transferorder";
|
|
25
|
+
ModelType2["transferorderlineitem"] = "transferorderlineitem";
|
|
24
26
|
ModelType2["importsession"] = "importsession";
|
|
25
27
|
ModelType2["address"] = "address";
|
|
26
28
|
ModelType2["contact"] = "contact";
|
|
@@ -34,6 +36,7 @@ var ModelType = /* @__PURE__ */ ((ModelType2) => {
|
|
|
34
36
|
ModelType2["selectionlist"] = "selectionlist";
|
|
35
37
|
ModelType2["selectionentry"] = "selectionentry";
|
|
36
38
|
ModelType2["error"] = "error";
|
|
39
|
+
ModelType2["tag"] = "tag";
|
|
37
40
|
return ModelType2;
|
|
38
41
|
})(ModelType || {});
|
|
39
42
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelType.js","sources":["../../lib/enums/ModelType.tsx"],"sourcesContent":["/*\n * Enumeration of available API model types\n */\nexport enum ModelType {\n part = 'part',\n supplierpart = 'supplierpart',\n manufacturerpart = 'manufacturerpart',\n partcategory = 'partcategory',\n parttesttemplate = 'parttesttemplate',\n projectcode = 'projectcode',\n stockitem = 'stockitem',\n stocklocation = 'stocklocation',\n stocklocationtype = 'stocklocationtype',\n stockhistory = 'stockhistory',\n build = 'build',\n buildline = 'buildline',\n builditem = 'builditem',\n company = 'company',\n parameter = 'parameter',\n parametertemplate = 'parametertemplate',\n purchaseorder = 'purchaseorder',\n purchaseorderlineitem = 'purchaseorderlineitem',\n salesorder = 'salesorder',\n salesordershipment = 'salesordershipment',\n returnorder = 'returnorder',\n returnorderlineitem = 'returnorderlineitem',\n importsession = 'importsession',\n address = 'address',\n contact = 'contact',\n owner = 'owner',\n user = 'user',\n group = 'group',\n reporttemplate = 'reporttemplate',\n labeltemplate = 'labeltemplate',\n pluginconfig = 'pluginconfig',\n contenttype = 'contenttype',\n selectionlist = 'selectionlist',\n selectionentry = 'selectionentry',\n error = 'error'\n}\n\nexport enum PluginPanelKey {\n // settings / admin\n admincenter = 'admincenter',\n systemsettings = 'systemsettings',\n usersettings = 'usersettings',\n // generic\n core = 'core',\n // landing pages\n purchasing = 'purchasing',\n sales = 'sales',\n manufacturing = 'manufacturing'\n}\n"],"names":["ModelType","part","supplierpart","manufacturerpart","partcategory","parttesttemplate","projectcode","stockitem","stocklocation","stocklocationtype","stockhistory","build","buildline","builditem","company","parameter","parametertemplate","purchaseorder","purchaseorderlineitem","salesorder","salesordershipment","returnorder","returnorderlineitem","importsession","address","contact","owner","user","group","reporttemplate","labeltemplate","pluginconfig","contenttype","selectionlist","selectionentry","error"],"mappings":"AAGO,IAAKA,8BAAAA,eAAL;AACLC,aAAAA,MAAAA,IAAO;AACPC,aAAAA,cAAAA,IAAe;AACfC,aAAAA,kBAAAA,IAAmB;AACnBC,aAAAA,cAAAA,IAAe;AACfC,aAAAA,kBAAAA,IAAmB;AACnBC,aAAAA,aAAAA,IAAc;AACdC,aAAAA,WAAAA,IAAY;AACZC,aAAAA,eAAAA,IAAgB;AAChBC,aAAAA,mBAAAA,IAAoB;AACpBC,aAAAA,cAAAA,IAAe;AACfC,aAAAA,OAAAA,IAAQ;AACRC,aAAAA,WAAAA,IAAY;AACZC,aAAAA,WAAAA,IAAY;AACZC,aAAAA,SAAAA,IAAU;AACVC,aAAAA,WAAAA,IAAY;AACZC,aAAAA,mBAAAA,IAAoB;AACpBC,aAAAA,eAAAA,IAAgB;AAChBC,aAAAA,uBAAAA,IAAwB;AACxBC,aAAAA,YAAAA,IAAa;AACbC,aAAAA,oBAAAA,IAAqB;AACrBC,aAAAA,aAAAA,IAAc;AACdC,aAAAA,qBAAAA,IAAsB;AACtBC,aAAAA,eAAAA,IAAgB;AAChBC,aAAAA,SAAAA,IAAU;AACVC,aAAAA,SAAAA,IAAU;AACVC,aAAAA,OAAAA,IAAQ;AACRC,aAAAA,MAAAA,IAAO;AACPC,aAAAA,OAAAA,IAAQ;AACRC,aAAAA,gBAAAA,IAAiB;AACjBC,aAAAA,eAAAA,IAAgB;AAChBC,aAAAA,cAAAA,IAAe;AACfC,aAAAA,aAAAA,IAAc;AACdC,aAAAA,eAAAA,IAAgB;AAChBC,aAAAA,gBAAAA,IAAiB;AACjBC,aAAAA,OAAAA,IAAQ;
|
|
1
|
+
{"version":3,"file":"ModelType.js","sources":["../../lib/enums/ModelType.tsx"],"sourcesContent":["/*\n * Enumeration of available API model types\n */\nexport enum ModelType {\n part = 'part',\n supplierpart = 'supplierpart',\n manufacturerpart = 'manufacturerpart',\n partcategory = 'partcategory',\n parttesttemplate = 'parttesttemplate',\n projectcode = 'projectcode',\n stockitem = 'stockitem',\n stocklocation = 'stocklocation',\n stocklocationtype = 'stocklocationtype',\n stockhistory = 'stockhistory',\n build = 'build',\n buildline = 'buildline',\n builditem = 'builditem',\n company = 'company',\n parameter = 'parameter',\n parametertemplate = 'parametertemplate',\n purchaseorder = 'purchaseorder',\n purchaseorderlineitem = 'purchaseorderlineitem',\n salesorder = 'salesorder',\n salesordershipment = 'salesordershipment',\n returnorder = 'returnorder',\n returnorderlineitem = 'returnorderlineitem',\n transferorder = 'transferorder',\n transferorderlineitem = 'transferorderlineitem',\n importsession = 'importsession',\n address = 'address',\n contact = 'contact',\n owner = 'owner',\n user = 'user',\n group = 'group',\n reporttemplate = 'reporttemplate',\n labeltemplate = 'labeltemplate',\n pluginconfig = 'pluginconfig',\n contenttype = 'contenttype',\n selectionlist = 'selectionlist',\n selectionentry = 'selectionentry',\n error = 'error',\n tag = 'tag'\n}\n\nexport enum PluginPanelKey {\n // settings / admin\n admincenter = 'admincenter',\n systemsettings = 'systemsettings',\n usersettings = 'usersettings',\n // generic\n core = 'core',\n // landing pages\n purchasing = 'purchasing',\n sales = 'sales',\n manufacturing = 'manufacturing'\n}\n"],"names":["ModelType","part","supplierpart","manufacturerpart","partcategory","parttesttemplate","projectcode","stockitem","stocklocation","stocklocationtype","stockhistory","build","buildline","builditem","company","parameter","parametertemplate","purchaseorder","purchaseorderlineitem","salesorder","salesordershipment","returnorder","returnorderlineitem","transferorder","transferorderlineitem","importsession","address","contact","owner","user","group","reporttemplate","labeltemplate","pluginconfig","contenttype","selectionlist","selectionentry","error","tag"],"mappings":"AAGO,IAAKA,8BAAAA,eAAL;AACLC,aAAAA,MAAAA,IAAO;AACPC,aAAAA,cAAAA,IAAe;AACfC,aAAAA,kBAAAA,IAAmB;AACnBC,aAAAA,cAAAA,IAAe;AACfC,aAAAA,kBAAAA,IAAmB;AACnBC,aAAAA,aAAAA,IAAc;AACdC,aAAAA,WAAAA,IAAY;AACZC,aAAAA,eAAAA,IAAgB;AAChBC,aAAAA,mBAAAA,IAAoB;AACpBC,aAAAA,cAAAA,IAAe;AACfC,aAAAA,OAAAA,IAAQ;AACRC,aAAAA,WAAAA,IAAY;AACZC,aAAAA,WAAAA,IAAY;AACZC,aAAAA,SAAAA,IAAU;AACVC,aAAAA,WAAAA,IAAY;AACZC,aAAAA,mBAAAA,IAAoB;AACpBC,aAAAA,eAAAA,IAAgB;AAChBC,aAAAA,uBAAAA,IAAwB;AACxBC,aAAAA,YAAAA,IAAa;AACbC,aAAAA,oBAAAA,IAAqB;AACrBC,aAAAA,aAAAA,IAAc;AACdC,aAAAA,qBAAAA,IAAsB;AACtBC,aAAAA,eAAAA,IAAgB;AAChBC,aAAAA,uBAAAA,IAAwB;AACxBC,aAAAA,eAAAA,IAAgB;AAChBC,aAAAA,SAAAA,IAAU;AACVC,aAAAA,SAAAA,IAAU;AACVC,aAAAA,OAAAA,IAAQ;AACRC,aAAAA,MAAAA,IAAO;AACPC,aAAAA,OAAAA,IAAQ;AACRC,aAAAA,gBAAAA,IAAiB;AACjBC,aAAAA,eAAAA,IAAgB;AAChBC,aAAAA,cAAAA,IAAe;AACfC,aAAAA,aAAAA,IAAc;AACdC,aAAAA,eAAAA,IAAgB;AAChBC,aAAAA,gBAAAA,IAAiB;AACjBC,aAAAA,OAAAA,IAAQ;AACRC,aAAAA,KAAAA,IAAM;AAtCItC,SAAAA;AAAAA,GAAAA,aAAAA,CAAAA,CAAAA;"}
|
package/dist/enums/Roles.d.ts
CHANGED
package/dist/enums/Roles.js
CHANGED
|
@@ -7,6 +7,7 @@ var UserRoles = /* @__PURE__ */ ((UserRoles2) => {
|
|
|
7
7
|
UserRoles2["part_category"] = "part_category";
|
|
8
8
|
UserRoles2["purchase_order"] = "purchase_order";
|
|
9
9
|
UserRoles2["return_order"] = "return_order";
|
|
10
|
+
UserRoles2["transfer_order"] = "transfer_order";
|
|
10
11
|
UserRoles2["sales_order"] = "sales_order";
|
|
11
12
|
UserRoles2["stock"] = "stock";
|
|
12
13
|
UserRoles2["stock_location"] = "stock_location";
|
package/dist/enums/Roles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Roles.js","sources":["../../lib/enums/Roles.tsx"],"sourcesContent":["import { t } from '@lingui/core/macro';\n\n/*\n * Enumeration of available user role groups\n */\nexport enum UserRoles {\n admin = 'admin',\n bom = 'bom',\n build = 'build',\n part = 'part',\n part_category = 'part_category',\n purchase_order = 'purchase_order',\n return_order = 'return_order',\n sales_order = 'sales_order',\n stock = 'stock',\n stock_location = 'stock_location'\n}\n\n/*\n * Enumeration of available user permissions within each role group\n */\nexport enum UserPermissions {\n view = 'view',\n add = 'add',\n change = 'change',\n delete = 'delete'\n}\n\nexport function userRoleLabel(role: UserRoles): string {\n switch (role) {\n case UserRoles.admin:\n return t`Admin`;\n case UserRoles.build:\n return t`Build Orders`;\n case UserRoles.part:\n return t`Parts`;\n case UserRoles.part_category:\n return t`Part Categories`;\n case UserRoles.purchase_order:\n return t`Purchase Orders`;\n case UserRoles.return_order:\n return t`Return Orders`;\n case UserRoles.sales_order:\n return t`Sales Orders`;\n case UserRoles.stock:\n return t`Stock Items`;\n case UserRoles.stock_location:\n return t`Stock Location`;\n default:\n return role as string;\n }\n}\n"],"names":["UserRoles","admin","bom","build","part","part_category","purchase_order","return_order","sales_order","stock","stock_location","UserPermissions","view","add","change","delete"],"mappings":"AAAA,OAAA,YAAA,EAAA;AAKO,IAAKA,8BAAAA,eAAL;AACLC,aAAAA,OAAAA,IAAQ;AACRC,aAAAA,KAAAA,IAAM;AACNC,aAAAA,OAAAA,IAAQ;AACRC,aAAAA,MAAAA,IAAO;AACPC,aAAAA,eAAAA,IAAgB;AAChBC,aAAAA,gBAAAA,IAAiB;AACjBC,aAAAA,cAAAA,IAAe;AACfC,aAAAA,aAAAA,IAAc;AACdC,aAAAA,OAAAA,IAAQ;AACRC,aAAAA,gBAAAA,IAAiB;
|
|
1
|
+
{"version":3,"file":"Roles.js","sources":["../../lib/enums/Roles.tsx"],"sourcesContent":["import { t } from '@lingui/core/macro';\n\n/*\n * Enumeration of available user role groups\n */\nexport enum UserRoles {\n admin = 'admin',\n bom = 'bom',\n build = 'build',\n part = 'part',\n part_category = 'part_category',\n purchase_order = 'purchase_order',\n return_order = 'return_order',\n transfer_order = 'transfer_order',\n sales_order = 'sales_order',\n stock = 'stock',\n stock_location = 'stock_location'\n}\n\n/*\n * Enumeration of available user permissions within each role group\n */\nexport enum UserPermissions {\n view = 'view',\n add = 'add',\n change = 'change',\n delete = 'delete'\n}\n\nexport function userRoleLabel(role: UserRoles): string {\n switch (role) {\n case UserRoles.admin:\n return t`Admin`;\n case UserRoles.build:\n return t`Build Orders`;\n case UserRoles.part:\n return t`Parts`;\n case UserRoles.part_category:\n return t`Part Categories`;\n case UserRoles.purchase_order:\n return t`Purchase Orders`;\n case UserRoles.return_order:\n return t`Return Orders`;\n case UserRoles.transfer_order:\n return t`Transfer Orders`;\n case UserRoles.sales_order:\n return t`Sales Orders`;\n case UserRoles.stock:\n return t`Stock Items`;\n case UserRoles.stock_location:\n return t`Stock Location`;\n default:\n return role as string;\n }\n}\n"],"names":["UserRoles","admin","bom","build","part","part_category","purchase_order","return_order","transfer_order","sales_order","stock","stock_location","UserPermissions","view","add","change","delete"],"mappings":"AAAA,OAAA,YAAA,EAAA;AAKO,IAAKA,8BAAAA,eAAL;AACLC,aAAAA,OAAAA,IAAQ;AACRC,aAAAA,KAAAA,IAAM;AACNC,aAAAA,OAAAA,IAAQ;AACRC,aAAAA,MAAAA,IAAO;AACPC,aAAAA,eAAAA,IAAgB;AAChBC,aAAAA,gBAAAA,IAAiB;AACjBC,aAAAA,cAAAA,IAAe;AACfC,aAAAA,gBAAAA,IAAiB;AACjBC,aAAAA,aAAAA,IAAc;AACdC,aAAAA,OAAAA,IAAQ;AACRC,aAAAA,gBAAAA,IAAiB;AAXPX,SAAAA;AAAAA,GAAAA,aAAAA,CAAAA,CAAAA;AAiBL,IAAKY,oCAAAA,qBAAL;AACLC,mBAAAA,MAAAA,IAAO;AACPC,mBAAAA,KAAAA,IAAM;AACNC,mBAAAA,QAAAA,IAAS;AACTC,mBAAAA,QAAAA,IAAS;AAJCJ,SAAAA;AAAAA,GAAAA,mBAAAA,CAAAA,CAAAA;"}
|
|
@@ -18,7 +18,7 @@ function getDetailUrl(model, pk, absolute) {
|
|
|
18
18
|
return url;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
console.
|
|
21
|
+
console.warn(`No detail URL found for model ${model} <${pk}>`);
|
|
22
22
|
return "";
|
|
23
23
|
}
|
|
24
24
|
const navigateToLink = (link, navigate, event) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navigation.js","sources":["../../lib/functions/Navigation.tsx"],"sourcesContent":["import type { NavigateFunction } from 'react-router-dom';\nimport { ModelInformationDict } from '../enums/ModelInformation';\nimport type { ModelType } from '../enums/ModelType';\nimport { apiUrl } from './Api';\nimport { cancelEvent } from './Events';\n\nexport const getBaseUrl = (): string =>\n (window as any).INVENTREE_SETTINGS?.base_url || 'web';\n\n/**\n * Returns the overview URL for a given model type.\n * This is the UI URL, not the API URL.\n */\nexport function getOverviewUrl(model: ModelType, absolute?: boolean): string {\n const modelInfo = ModelInformationDict[model];\n\n if (modelInfo?.url_overview) {\n const url = modelInfo.url_overview;\n const base = getBaseUrl();\n\n if (absolute && base) {\n return `/${base}${url}`;\n } else {\n return url;\n }\n }\n\n console.error(`No overview URL found for model ${model}`);\n return '';\n}\n\n/**\n * Returns the detail view URL for a given model type.\n * This is the UI URL, not the API URL.\n */\nexport function getDetailUrl(\n model: ModelType,\n pk: number | string,\n absolute?: boolean\n): string {\n const modelInfo = ModelInformationDict[model];\n\n if (pk === undefined || pk === null) {\n return '';\n }\n\n if (!!pk && modelInfo && modelInfo.url_detail) {\n const url = modelInfo.url_detail.replace(':pk', pk.toString());\n const base = getBaseUrl();\n\n if (absolute && base) {\n return `/${base}${url}`;\n } else {\n return url;\n }\n }\n\n console.
|
|
1
|
+
{"version":3,"file":"Navigation.js","sources":["../../lib/functions/Navigation.tsx"],"sourcesContent":["import type { NavigateFunction } from 'react-router-dom';\nimport { ModelInformationDict } from '../enums/ModelInformation';\nimport type { ModelType } from '../enums/ModelType';\nimport { apiUrl } from './Api';\nimport { cancelEvent } from './Events';\n\nexport const getBaseUrl = (): string =>\n (window as any).INVENTREE_SETTINGS?.base_url || 'web';\n\n/**\n * Returns the overview URL for a given model type.\n * This is the UI URL, not the API URL.\n */\nexport function getOverviewUrl(model: ModelType, absolute?: boolean): string {\n const modelInfo = ModelInformationDict[model];\n\n if (modelInfo?.url_overview) {\n const url = modelInfo.url_overview;\n const base = getBaseUrl();\n\n if (absolute && base) {\n return `/${base}${url}`;\n } else {\n return url;\n }\n }\n\n console.error(`No overview URL found for model ${model}`);\n return '';\n}\n\n/**\n * Returns the detail view URL for a given model type.\n * This is the UI URL, not the API URL.\n */\nexport function getDetailUrl(\n model: ModelType,\n pk: number | string,\n absolute?: boolean\n): string {\n const modelInfo = ModelInformationDict[model];\n\n if (pk === undefined || pk === null) {\n return '';\n }\n\n if (!!pk && modelInfo && modelInfo.url_detail) {\n const url = modelInfo.url_detail.replace(':pk', pk.toString());\n const base = getBaseUrl();\n\n if (absolute && base) {\n return `/${base}${url}`;\n } else {\n return url;\n }\n }\n\n console.warn(`No detail URL found for model ${model} <${pk}>`);\n return '';\n}\n\n/**\n * Returns the API detail URL for a given model type.\n */\nexport function getApiUrl(\n model: ModelType,\n pk: number | string\n): string | undefined {\n const modelInfo = ModelInformationDict[model];\n\n if (pk === undefined || pk === null) {\n return '';\n }\n\n if (!!pk && modelInfo && modelInfo.api_endpoint) {\n return apiUrl(modelInfo.api_endpoint, pk);\n }\n\n console.error(`No API detail URL found for model ${model} <${pk}>`);\n return undefined;\n}\n\n/*\n * Navigate to a provided link.\n * - If the link is to be opened externally, open it in a new tab.\n * - Otherwise, navigate using the provided navigate function.\n */\nexport const navigateToLink = (\n link: string,\n navigate: NavigateFunction,\n event: any\n) => {\n cancelEvent(event);\n\n const base = `/${getBaseUrl()}`;\n\n if (eventModified(event)) {\n // Open the link in a new tab\n let url = link;\n if (link.startsWith('/') && !link.startsWith(base)) {\n url = `${base}${link}`;\n }\n window.open(url, '_blank');\n } else {\n // Navigate internally\n let url = link;\n\n if (link.startsWith(base)) {\n // Strip the base URL from the link\n url = link.replace(base, '');\n }\n\n navigate(url);\n }\n};\n\n/**\n * Check if the event is modified (e.g. ctrl, shift, or meta key pressed)\n * @param event - The event to check\n * @returns true if the event was modified\n */\nexport const eventModified = (\n event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n) => {\n return event?.ctrlKey || event?.shiftKey || event?.metaKey;\n};\n"],"names":["getBaseUrl","window","INVENTREE_SETTINGS","base_url","getDetailUrl","model","pk","absolute","modelInfo","ModelInformationDict","undefined","url_detail","url","replace","toString","base","console","warn","navigateToLink","link","navigate","event","cancelEvent","eventModified","startsWith","open","ctrlKey","shiftKey","metaKey"],"mappings":";;AAMO,MAAMA,aAAaA,MAAAA;;AACvBC,uBAAeC,uBAAfD,mBAAmCE,aAAY;AAAA;AA4B3C,SAASC,aACdC,OACAC,IACAC,UACQ;AACR,QAAMC,YAAYC,qBAAqBJ,KAAK;AAE5C,MAAIC,OAAOI,UAAaJ,OAAO,MAAM;AACnC,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,CAACA,MAAME,aAAaA,UAAUG,YAAY;AAC7C,UAAMC,MAAMJ,UAAUG,WAAWE,QAAQ,OAAOP,GAAGQ,UAAU;AAC7D,UAAMC,OAAOf,WAAAA;AAEb,QAAIO,YAAYQ,MAAM;AACpB,aAAO,IAAIA,IAAI,GAAGH,GAAG;AAAA,IACvB,OAAO;AACL,aAAOA;AAAAA,IACT;AAAA,EACF;AAEAI,UAAQC,KAAK,iCAAiCZ,KAAK,KAAKC,EAAE,GAAG;AAC7D,SAAO;AACT;AA4BO,MAAMY,iBAAiBA,CAC5BC,MACAC,UACAC,UACG;AACHC,cAAYD,KAAK;AAEjB,QAAMN,OAAO,IAAIf,WAAAA,CAAY;AAE7B,MAAIuB,cAAcF,KAAK,GAAG;AAExB,QAAIT,MAAMO;AACV,QAAIA,KAAKK,WAAW,GAAG,KAAK,CAACL,KAAKK,WAAWT,IAAI,GAAG;AAClDH,YAAM,GAAGG,IAAI,GAAGI,IAAI;AAAA,IACtB;AACAlB,WAAOwB,KAAKb,KAAK,QAAQ;AAAA,EAC3B,OAAO;AAEL,QAAIA,MAAMO;AAEV,QAAIA,KAAKK,WAAWT,IAAI,GAAG;AAEzBH,YAAMO,KAAKN,QAAQE,MAAM,EAAE;AAAA,IAC7B;AAEAK,aAASR,GAAG;AAAA,EACd;AACF;AAOO,MAAMW,gBAAgBA,CAC3BF,UACG;AACH,UAAOA,+BAAOK,aAAWL,+BAAOM,cAAYN,+BAAOO;AACrD;"}
|
|
@@ -9,6 +9,12 @@ function useFilterSet(filterKey, initialFilters) {
|
|
|
9
9
|
sync: false,
|
|
10
10
|
getInitialValueInEffect: false
|
|
11
11
|
});
|
|
12
|
+
const [storedNamedSets, setStoredNamedSets] = useLocalStorage({
|
|
13
|
+
key: `inventree-filtersets-${filterKey}`,
|
|
14
|
+
defaultValue: [],
|
|
15
|
+
sync: false,
|
|
16
|
+
getInitialValueInEffect: false
|
|
17
|
+
});
|
|
12
18
|
useEffect(() => {
|
|
13
19
|
if (storedFilters == null) {
|
|
14
20
|
setStoredFilters(initialFilters || []);
|
|
@@ -23,11 +29,42 @@ function useFilterSet(filterKey, initialFilters) {
|
|
|
23
29
|
const setActiveFilters = useCallback((filters) => {
|
|
24
30
|
setStoredFilters(filters);
|
|
25
31
|
}, [setStoredFilters]);
|
|
32
|
+
const saveFilterSet = useCallback((name) => {
|
|
33
|
+
const snapshot = activeFilters.map(({
|
|
34
|
+
name: n,
|
|
35
|
+
value,
|
|
36
|
+
displayValue
|
|
37
|
+
}) => ({
|
|
38
|
+
name: n,
|
|
39
|
+
value,
|
|
40
|
+
displayValue
|
|
41
|
+
}));
|
|
42
|
+
setStoredNamedSets((prev) => {
|
|
43
|
+
const without = (prev ?? []).filter((s) => s.name !== name);
|
|
44
|
+
return [...without, {
|
|
45
|
+
name,
|
|
46
|
+
filters: snapshot
|
|
47
|
+
}];
|
|
48
|
+
});
|
|
49
|
+
}, [activeFilters, setStoredNamedSets]);
|
|
50
|
+
const loadFilterSet = useCallback((name) => {
|
|
51
|
+
const saved = (storedNamedSets ?? []).find((s) => s.name === name);
|
|
52
|
+
if (saved) {
|
|
53
|
+
setStoredFilters(saved.filters);
|
|
54
|
+
}
|
|
55
|
+
}, [storedNamedSets, setStoredFilters]);
|
|
56
|
+
const deleteFilterSet = useCallback((name) => {
|
|
57
|
+
setStoredNamedSets((prev) => (prev ?? []).filter((s) => s.name !== name));
|
|
58
|
+
}, [setStoredNamedSets]);
|
|
26
59
|
return {
|
|
27
60
|
filterKey,
|
|
28
61
|
activeFilters,
|
|
29
62
|
setActiveFilters,
|
|
30
|
-
clearActiveFilters
|
|
63
|
+
clearActiveFilters,
|
|
64
|
+
savedFilterSets: storedNamedSets ?? [],
|
|
65
|
+
saveFilterSet,
|
|
66
|
+
loadFilterSet,
|
|
67
|
+
deleteFilterSet
|
|
31
68
|
};
|
|
32
69
|
}
|
|
33
70
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UseFilterSet.js","sources":["../../lib/hooks/UseFilterSet.tsx"],"sourcesContent":["import { useLocalStorage } from '@mantine/hooks';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport type {
|
|
1
|
+
{"version":3,"file":"UseFilterSet.js","sources":["../../lib/hooks/UseFilterSet.tsx"],"sourcesContent":["import { useLocalStorage } from '@mantine/hooks';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport type {\n FilterSetState,\n NamedFilterSet,\n TableFilter\n} from '../types/Filters';\n\nexport default function useFilterSet(\n filterKey: string,\n initialFilters?: TableFilter[]\n): FilterSetState {\n // Array of active filters (saved to local storage)\n const [storedFilters, setStoredFilters] = useLocalStorage<\n TableFilter[] | null\n >({\n key: `inventree-filterset-${filterKey}`,\n defaultValue: null,\n sync: false,\n getInitialValueInEffect: false\n });\n\n // Named filter set snapshots (saved to local storage, separate key)\n const [storedNamedSets, setStoredNamedSets] = useLocalStorage<\n NamedFilterSet[]\n >({\n key: `inventree-filtersets-${filterKey}`,\n defaultValue: [],\n sync: false,\n getInitialValueInEffect: false\n });\n\n useEffect(() => {\n if (storedFilters == null) {\n setStoredFilters(initialFilters || []);\n }\n }, [storedFilters, initialFilters, setStoredFilters]);\n\n const activeFilters: TableFilter[] = useMemo(() => {\n return storedFilters ?? initialFilters ?? [];\n }, [storedFilters, initialFilters]);\n\n const clearActiveFilters = useCallback(() => {\n setStoredFilters([]);\n }, []);\n\n const setActiveFilters = useCallback(\n (filters: TableFilter[]) => {\n setStoredFilters(filters);\n },\n [setStoredFilters]\n );\n\n const saveFilterSet = useCallback(\n (name: string) => {\n const snapshot = activeFilters.map(\n ({ name: n, value, displayValue }) => ({\n name: n,\n value,\n displayValue\n })\n );\n setStoredNamedSets((prev) => {\n const without = (prev ?? []).filter((s) => s.name !== name);\n return [...without, { name, filters: snapshot }];\n });\n },\n [activeFilters, setStoredNamedSets]\n );\n\n const loadFilterSet = useCallback(\n (name: string) => {\n const saved = (storedNamedSets ?? []).find((s) => s.name === name);\n if (saved) {\n setStoredFilters(saved.filters as TableFilter[]);\n }\n },\n [storedNamedSets, setStoredFilters]\n );\n\n const deleteFilterSet = useCallback(\n (name: string) => {\n setStoredNamedSets((prev) => (prev ?? []).filter((s) => s.name !== name));\n },\n [setStoredNamedSets]\n );\n\n return {\n filterKey,\n activeFilters,\n setActiveFilters,\n clearActiveFilters,\n savedFilterSets: storedNamedSets ?? [],\n saveFilterSet,\n loadFilterSet,\n deleteFilterSet\n };\n}\n"],"names":["useFilterSet","filterKey","initialFilters","storedFilters","setStoredFilters","useLocalStorage","key","defaultValue","sync","getInitialValueInEffect","storedNamedSets","setStoredNamedSets","useEffect","activeFilters","useMemo","clearActiveFilters","useCallback","setActiveFilters","filters","saveFilterSet","name","snapshot","map","n","value","displayValue","prev","without","filter","s","loadFilterSet","saved","find","deleteFilterSet","savedFilterSets"],"mappings":";AACA,MAAA,cAAA,OAAA,OAAA,EAAA;;;AAOA,SAAwBA,aACtBC,WACAC,gBACgB;AAEhB,QAAM,CAACC,eAAeC,gBAAgB,IAAIC,gBAExC;AAAA,IACAC,KAAK,uBAAuBL,SAAS;AAAA,IACrCM,cAAc;AAAA,IACdC,MAAM;AAAA,IACNC,yBAAyB;AAAA,EAAA,CAC1B;AAGD,QAAM,CAACC,iBAAiBC,kBAAkB,IAAIN,gBAE5C;AAAA,IACAC,KAAK,wBAAwBL,SAAS;AAAA,IACtCM,cAAc,CAAA;AAAA,IACdC,MAAM;AAAA,IACNC,yBAAyB;AAAA,EAAA,CAC1B;AAEDG,YAAU,MAAM;AACd,QAAIT,iBAAiB,MAAM;AACzBC,uBAAiBF,kBAAkB,EAAE;AAAA,IACvC;AAAA,EACF,GAAG,CAACC,eAAeD,gBAAgBE,gBAAgB,CAAC;AAEpD,QAAMS,gBAA+BC,QAAQ,MAAM;AACjD,WAAOX,iBAAiBD,kBAAkB,CAAA;AAAA,EAC5C,GAAG,CAACC,eAAeD,cAAc,CAAC;AAElC,QAAMa,qBAAqBC,YAAY,MAAM;AAC3CZ,qBAAiB,CAAA,CAAE;AAAA,EACrB,GAAG,CAAA,CAAE;AAEL,QAAMa,mBAAmBD,YACvB,CAACE,YAA2B;AAC1Bd,qBAAiBc,OAAO;AAAA,EAC1B,GACA,CAACd,gBAAgB,CACnB;AAEA,QAAMe,gBAAgBH,YACpB,CAACI,SAAiB;AAChB,UAAMC,WAAWR,cAAcS,IAC7B,CAAC;AAAA,MAAEF,MAAMG;AAAAA,MAAGC;AAAAA,MAAOC;AAAAA,IAAAA,OAAoB;AAAA,MACrCL,MAAMG;AAAAA,MACNC;AAAAA,MACAC;AAAAA,IAAAA,EAEJ;AACAd,uBAAoBe,CAAAA,SAAS;AAC3B,YAAMC,WAAWD,QAAQ,IAAIE,OAAQC,CAAAA,MAAMA,EAAET,SAASA,IAAI;AAC1D,aAAO,CAAC,GAAGO,SAAS;AAAA,QAAEP;AAAAA,QAAMF,SAASG;AAAAA,MAAAA,CAAU;AAAA,IACjD,CAAC;AAAA,EACH,GACA,CAACR,eAAeF,kBAAkB,CACpC;AAEA,QAAMmB,gBAAgBd,YACpB,CAACI,SAAiB;AAChB,UAAMW,SAASrB,mBAAmB,IAAIsB,KAAMH,CAAAA,MAAMA,EAAET,SAASA,IAAI;AACjE,QAAIW,OAAO;AACT3B,uBAAiB2B,MAAMb,OAAwB;AAAA,IACjD;AAAA,EACF,GACA,CAACR,iBAAiBN,gBAAgB,CACpC;AAEA,QAAM6B,kBAAkBjB,YACtB,CAACI,SAAiB;AAChBT,uBAAoBe,CAAAA,UAAUA,QAAQ,CAAA,GAAIE,OAAQC,CAAAA,MAAMA,EAAET,SAASA,IAAI,CAAC;AAAA,EAC1E,GACA,CAACT,kBAAkB,CACrB;AAEA,SAAO;AAAA,IACLV;AAAAA,IACAY;AAAAA,IACAI;AAAAA,IACAF;AAAAA,IACAmB,iBAAiBxB,mBAAmB,CAAA;AAAA,IACpCS;AAAAA,IACAW;AAAAA,IACAG;AAAAA,EAAAA;AAEJ;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export { ProgressBar } from './components/ProgressBar';
|
|
|
26
26
|
export { PassFailButton, YesNoButton } from './components/YesNoButton';
|
|
27
27
|
export { SearchInput } from './components/SearchInput';
|
|
28
28
|
export { TableColumnSelect } from './components/TableColumnSelect';
|
|
29
|
+
export { default as TagsList } from './components/TagsList';
|
|
29
30
|
export { default as InvenTreeTable } from './components/InvenTreeTable';
|
|
30
31
|
export { RowViewAction, RowDuplicateAction, RowEditAction, RowDeleteAction, RowCancelAction, RowActions } from './components/RowActions';
|
|
31
32
|
export { default as useMonitorDataOutput, type MonitorDataOutputProps } from './hooks/MonitorDataOutput';
|
|
@@ -36,3 +37,5 @@ export { type DrawerProps, DetailDrawer, DetailDrawerLink, DetailDrawerComponent
|
|
|
36
37
|
export { StylishText } from './components/StylishText';
|
|
37
38
|
export { type StoredTableStateProps, useStoredTableState } from './states/StoredTableState';
|
|
38
39
|
export { useLocalLibState } from './states/LocalLibState';
|
|
40
|
+
export { default as InventreeHmrPlugin } from './plugin/InventreeHmrPlugin';
|
|
41
|
+
export { default as LocalizedComponent } from './plugin/LocalizedComponent';
|
package/dist/index.js
CHANGED
|
@@ -19,16 +19,19 @@ import { ProgressBar } from "./components/ProgressBar.js";
|
|
|
19
19
|
import { PassFailButton, YesNoButton } from "./components/YesNoButton.js";
|
|
20
20
|
import { SearchInput } from "./components/SearchInput.js";
|
|
21
21
|
import { TableColumnSelect } from "./components/TableColumnSelect.js";
|
|
22
|
-
import { default as default2 } from "./components/
|
|
22
|
+
import { default as default2 } from "./components/TagsList.js";
|
|
23
|
+
import { default as default3 } from "./components/InvenTreeTable.js";
|
|
23
24
|
import { RowActions, RowCancelAction, RowDeleteAction, RowDuplicateAction, RowEditAction, RowViewAction } from "./components/RowActions.js";
|
|
24
|
-
import { default as
|
|
25
|
-
import { default as
|
|
26
|
-
import { default as
|
|
27
|
-
import { default as
|
|
25
|
+
import { default as default4 } from "./hooks/MonitorDataOutput.js";
|
|
26
|
+
import { default as default5 } from "./hooks/MonitorBackgroundTask.js";
|
|
27
|
+
import { default as default6 } from "./hooks/UseFilterSet.js";
|
|
28
|
+
import { default as default7 } from "./hooks/UseTable.js";
|
|
28
29
|
import { DetailDrawer, DetailDrawerComponent, DetailDrawerLink } from "./components/nav/DetailDrawer.js";
|
|
29
30
|
import { StylishText } from "./components/StylishText.js";
|
|
30
31
|
import { useStoredTableState } from "./states/StoredTableState.js";
|
|
31
32
|
import { useLocalLibState } from "./states/LocalLibState.js";
|
|
33
|
+
import { default as default8 } from "./plugin/InventreeHmrPlugin.js";
|
|
34
|
+
import { default as default9 } from "./plugin/LocalizedComponent.js";
|
|
32
35
|
export {
|
|
33
36
|
ActionButton,
|
|
34
37
|
AddItemButton,
|
|
@@ -45,7 +48,9 @@ export {
|
|
|
45
48
|
INVENTREE_PLUGIN_VERSION,
|
|
46
49
|
INVENTREE_REACT_DOM_VERSION,
|
|
47
50
|
INVENTREE_REACT_VERSION,
|
|
48
|
-
|
|
51
|
+
default3 as InvenTreeTable,
|
|
52
|
+
default8 as InventreeHmrPlugin,
|
|
53
|
+
default9 as LocalizedComponent,
|
|
49
54
|
ModelType,
|
|
50
55
|
PassFailButton,
|
|
51
56
|
ProgressBar,
|
|
@@ -58,6 +63,7 @@ export {
|
|
|
58
63
|
SearchInput,
|
|
59
64
|
StylishText,
|
|
60
65
|
TableColumnSelect,
|
|
66
|
+
default2 as TagsList,
|
|
61
67
|
UserPermissions,
|
|
62
68
|
UserRoles,
|
|
63
69
|
YesNoButton,
|
|
@@ -78,11 +84,11 @@ export {
|
|
|
78
84
|
permissionDenied,
|
|
79
85
|
shortenString,
|
|
80
86
|
showTimeoutNotification,
|
|
81
|
-
|
|
87
|
+
default6 as useFilterSet,
|
|
82
88
|
useLocalLibState,
|
|
83
|
-
|
|
84
|
-
|
|
89
|
+
default5 as useMonitorBackgroundTask,
|
|
90
|
+
default4 as useMonitorDataOutput,
|
|
85
91
|
useStoredTableState,
|
|
86
|
-
|
|
92
|
+
default7 as useTable
|
|
87
93
|
};
|
|
88
94
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import createReactComponent from "../createReactComponent.js";
|
|
2
|
+
/**
|
|
3
|
+
* @license @tabler/icons-react v3.40.0 - MIT
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license.
|
|
6
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
const __iconNode = [["path", { "d": "M6.5 7.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0", "key": "svg-0" }], ["path", { "d": "M3 6v5.172a2 2 0 0 0 .586 1.414l7.71 7.71a2.41 2.41 0 0 0 3.408 0l5.592 -5.592a2.41 2.41 0 0 0 0 -3.408l-7.71 -7.71a2 2 0 0 0 -1.414 -.586h-5.172a3 3 0 0 0 -3 3", "key": "svg-1" }]];
|
|
9
|
+
const IconTag = createReactComponent("outline", "tag", "Tag", __iconNode);
|
|
10
|
+
export {
|
|
11
|
+
__iconNode,
|
|
12
|
+
IconTag as default
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=IconTag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconTag.js","sources":["../../../../../../../node_modules/@tabler/icons-react/dist/esm/icons/IconTag.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.40.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M6.5 7.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M3 6v5.172a2 2 0 0 0 .586 1.414l7.71 7.71a2.41 2.41 0 0 0 3.408 0l5.592 -5.592a2.41 2.41 0 0 0 0 -3.408l-7.71 -7.71a2 2 0 0 0 -1.414 -.586h-5.172a3 3 0 0 0 -3 3\", \"key\": \"svg-1\" }]];\nconst IconTag = createReactComponent(\"outline\", \"tag\", \"Tag\", __iconNode);\n\nexport { __iconNode, IconTag as default };\n//# sourceMappingURL=IconTag.mjs.map\n"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,KAAK,yCAAyC,OAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,oKAAoK,OAAO,SAAS,CAAC;AAChS,MAAC,UAAU,qBAAqB,WAAW,OAAO,OAAO,UAAU;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Plugin } from 'vite';
|
|
2
|
+
/**
|
|
3
|
+
* Vite plugin which enables hot module replacement (HMR) for InvenTree plugin development.
|
|
4
|
+
*
|
|
5
|
+
* This is for use with the InvenTree plugin creator tool,
|
|
6
|
+
* allowing frontend plugin code to be "live reloaded" during development.
|
|
7
|
+
*/
|
|
8
|
+
export default function InventreeHmrPlugin(): Plugin;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
function InventreeHmrPlugin() {
|
|
2
|
+
const fileRegex = /\.(js|jsx|ts|tsx)(\?|$)/;
|
|
3
|
+
const hmrBlock = ["", "// __inventree_hmr_injected__", "if (import.meta.hot) {", " import.meta.hot.accept((newModule) => {", " const key = new URL(import.meta.url).origin + new URL(import.meta.url).pathname;", " window.__plugin_hmr_callbacks?.[key]?.forEach(callback => {", " callback(newModule);", " });", " })", "}"];
|
|
4
|
+
return {
|
|
5
|
+
name: "inventree-hmr-plugin",
|
|
6
|
+
enforce: "post",
|
|
7
|
+
transform(code, id) {
|
|
8
|
+
if (!fileRegex.test(id)) return;
|
|
9
|
+
if (id.includes("node_modules")) return;
|
|
10
|
+
if (code.includes("__inventree_hmr_injected__")) return;
|
|
11
|
+
return {
|
|
12
|
+
code: code + hmrBlock.join("\n"),
|
|
13
|
+
map: null
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
InventreeHmrPlugin as default
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=InventreeHmrPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InventreeHmrPlugin.js","sources":["../../lib/plugin/InventreeHmrPlugin.tsx"],"sourcesContent":["import type { Plugin } from 'vite';\n\n/**\n * Vite plugin which enables hot module replacement (HMR) for InvenTree plugin development.\n *\n * This is for use with the InvenTree plugin creator tool,\n * allowing frontend plugin code to be \"live reloaded\" during development.\n */\nexport default function InventreeHmrPlugin(): Plugin {\n const fileRegex = /\\.(js|jsx|ts|tsx)(\\?|$)/;\n\n const hmrBlock = [\n '',\n '// __inventree_hmr_injected__',\n 'if (import.meta.hot) {',\n ' import.meta.hot.accept((newModule) => {',\n ' const key = new URL(import.meta.url).origin + new URL(import.meta.url).pathname;',\n ' window.__plugin_hmr_callbacks?.[key]?.forEach(callback => {',\n ' callback(newModule);',\n ' });',\n ' })',\n '}'\n ];\n\n return {\n name: 'inventree-hmr-plugin',\n enforce: 'post',\n\n transform(code, id) {\n if (!fileRegex.test(id)) return;\n if (id.includes('node_modules')) return;\n if (code.includes('__inventree_hmr_injected__')) return;\n\n return {\n code: code + hmrBlock.join('\\n'),\n map: null\n };\n }\n };\n}\n"],"names":["InventreeHmrPlugin","fileRegex","hmrBlock","name","enforce","transform","code","id","test","includes","join","map"],"mappings":"AAQA,SAAwBA,qBAA6B;AACnD,QAAMC,YAAY;AAElB,QAAMC,WAAW,CACf,IACA,iCACA,0BACA,6CACA,wFACA,mEACA,8BACA,WACA,QACA,GAAG;AAGL,SAAO;AAAA,IACLC,MAAM;AAAA,IACNC,SAAS;AAAA,IAETC,UAAUC,MAAMC,IAAI;AAClB,UAAI,CAACN,UAAUO,KAAKD,EAAE,EAAG;AACzB,UAAIA,GAAGE,SAAS,cAAc,EAAG;AACjC,UAAIH,KAAKG,SAAS,4BAA4B,EAAG;AAEjD,aAAO;AAAA,QACLH,MAAMA,OAAOJ,SAASQ,KAAK,IAAI;AAAA,QAC/BC,KAAK;AAAA,MAAA;AAAA,IAET;AAAA,EAAA;AAEJ;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { I18n } from '@lingui/core';
|
|
2
|
+
/**
|
|
3
|
+
* Wrapper function for a plugin-defined component which needs to support dynamic locale loading.
|
|
4
|
+
*
|
|
5
|
+
* This is primarily designed for usage by the InvenTree plugin creator tool
|
|
6
|
+
*/
|
|
7
|
+
export default function LocalizedComponent({ i18n, locale, children }: {
|
|
8
|
+
i18n: I18n;
|
|
9
|
+
locale: string;
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import __variableDynamicImportRuntimeHelper from "../_virtual/dynamic-import-helper.js";
|
|
2
|
+
import { j as jsxRuntimeExports } from "../_virtual/jsx-runtime.js";
|
|
3
|
+
const I18nProvider = window["LinguiReact"].I18nProvider;
|
|
4
|
+
const Skeleton = window["MantineCore"].Skeleton;
|
|
5
|
+
const useEffect = window["React"].useEffect;
|
|
6
|
+
const useState = window["React"].useState;
|
|
7
|
+
async function tryLoadLocale(locale) {
|
|
8
|
+
try {
|
|
9
|
+
const messages = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({}), `./locales/${locale}/messages.ts`, 4);
|
|
10
|
+
return messages;
|
|
11
|
+
} catch (error) {
|
|
12
|
+
console.warn(`Failed to load locale ${locale}`);
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
async function loadPluginLocale(i18n, locale) {
|
|
17
|
+
let messages = null;
|
|
18
|
+
messages = await tryLoadLocale(locale);
|
|
19
|
+
if (!messages && locale.includes("-")) {
|
|
20
|
+
const fallbackLocale = locale.split("-")[0];
|
|
21
|
+
console.debug(`Locale ${locale} not found, trying fallback locale ${fallbackLocale}`);
|
|
22
|
+
messages = await tryLoadLocale(fallbackLocale);
|
|
23
|
+
}
|
|
24
|
+
if (!messages && locale.includes("_")) {
|
|
25
|
+
const fallbackLocale = locale.split("_")[0];
|
|
26
|
+
console.debug(`Locale ${locale} not found, trying fallback locale ${fallbackLocale}`);
|
|
27
|
+
messages = await tryLoadLocale(fallbackLocale);
|
|
28
|
+
}
|
|
29
|
+
if (!messages && locale !== "en") {
|
|
30
|
+
console.debug(`Locale ${locale} not found, trying fallback locale en`);
|
|
31
|
+
messages = await tryLoadLocale("en");
|
|
32
|
+
}
|
|
33
|
+
if (messages == null ? void 0 : messages.messages) {
|
|
34
|
+
i18n.load(locale, messages.messages);
|
|
35
|
+
i18n.activate(locale);
|
|
36
|
+
} else {
|
|
37
|
+
console.error(`Failed to load any locale for ${locale}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function LocalizedComponent({
|
|
41
|
+
i18n,
|
|
42
|
+
locale,
|
|
43
|
+
children
|
|
44
|
+
}) {
|
|
45
|
+
const [loaded, setLoaded] = useState(false);
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
setLoaded(false);
|
|
48
|
+
loadPluginLocale(i18n, locale).then(() => {
|
|
49
|
+
setLoaded(true);
|
|
50
|
+
});
|
|
51
|
+
}, [i18n, locale]);
|
|
52
|
+
return loaded ? /* @__PURE__ */ jsxRuntimeExports.jsx(I18nProvider, { i18n, children }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Skeleton, { w: "100%", animate: true });
|
|
53
|
+
}
|
|
54
|
+
export {
|
|
55
|
+
LocalizedComponent as default
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=LocalizedComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalizedComponent.js","sources":["../../lib/plugin/LocalizedComponent.tsx"],"sourcesContent":["import { I18n } from '@lingui/core';\nimport { I18nProvider } from '@lingui/react';\nimport { Skeleton } from '@mantine/core';\nimport { useEffect, useState } from 'react';\n\n/**\n * Attempt to load the locale file for the given locale, returning null if it fails\n */\nasync function tryLoadLocale(locale: string): Promise<any> {\n try {\n const messages = await import(`./locales/${locale}/messages.ts`);\n return messages;\n } catch (error) {\n console.warn(`Failed to load locale ${locale}`);\n return null;\n }\n}\n\n/**\n * Helper function to dynamically load frontend translations,\n * based on the provided locale.\n */\nasync function loadPluginLocale(i18n: I18n, locale: string) {\n let messages = null;\n\n // Find the most specific locale file possible, with fallbacks to less specific locales if necessary\n messages = await tryLoadLocale(locale);\n\n if (!messages && locale.includes('-')) {\n const fallbackLocale = locale.split('-')[0];\n console.debug(\n `Locale ${locale} not found, trying fallback locale ${fallbackLocale}`\n );\n messages = await tryLoadLocale(fallbackLocale);\n }\n\n if (!messages && locale.includes('_')) {\n const fallbackLocale = locale.split('_')[0];\n console.debug(\n `Locale ${locale} not found, trying fallback locale ${fallbackLocale}`\n );\n messages = await tryLoadLocale(fallbackLocale);\n }\n\n if (!messages && locale !== 'en') {\n console.debug(`Locale ${locale} not found, trying fallback locale en`);\n messages = await tryLoadLocale('en');\n }\n\n if (messages?.messages) {\n i18n.load(locale, messages.messages);\n i18n.activate(locale);\n } else {\n console.error(`Failed to load any locale for ${locale}`);\n }\n}\n\n/**\n * Wrapper function for a plugin-defined component which needs to support dynamic locale loading.\n *\n * This is primarily designed for usage by the InvenTree plugin creator tool\n */\nexport default function LocalizedComponent({\n i18n,\n locale,\n children\n}: {\n i18n: I18n;\n locale: string;\n children: React.ReactNode;\n}) {\n const [loaded, setLoaded] = useState(false);\n\n // Reload the component when the locale changes\n useEffect(() => {\n setLoaded(false);\n loadPluginLocale(i18n, locale).then(() => {\n setLoaded(true);\n });\n }, [i18n, locale]);\n\n return loaded ? (\n <I18nProvider i18n={i18n}>{children}</I18nProvider>\n ) : (\n <Skeleton w='100%' animate />\n );\n}\n"],"names":["tryLoadLocale","locale","messages","error","console","warn","loadPluginLocale","i18n","includes","fallbackLocale","split","debug","load","activate","LocalizedComponent","children","loaded","setLoaded","useState","useEffect","then","jsx"],"mappings":";;AACA,MAAA,eAAA,OAAA,aAAA,EAAA;AACA,MAAA,WAAA,OAAA,aAAA,EAAA;AACA,MAAA,YAAA,OAAA,OAAA,EAAA;;AAKA,eAAeA,cAAcC,QAA8B;AACzD,MAAI;AACF,UAAMC,WAAW,MAAM,wEAAA,aAAA,MAAA,gBAAA,CAAA;AACvB,WAAOA;AAAAA,EACT,SAASC,OAAO;AACdC,YAAQC,KAAK,yBAAyBJ,MAAM,EAAE;AAC9C,WAAO;AAAA,EACT;AACF;AAMA,eAAeK,iBAAiBC,MAAYN,QAAgB;AAC1D,MAAIC,WAAW;AAGfA,aAAW,MAAMF,cAAcC,MAAM;AAErC,MAAI,CAACC,YAAYD,OAAOO,SAAS,GAAG,GAAG;AACrC,UAAMC,iBAAiBR,OAAOS,MAAM,GAAG,EAAE,CAAC;AAC1CN,YAAQO,MACN,UAAUV,MAAM,sCAAsCQ,cAAc,EACtE;AACAP,eAAW,MAAMF,cAAcS,cAAc;AAAA,EAC/C;AAEA,MAAI,CAACP,YAAYD,OAAOO,SAAS,GAAG,GAAG;AACrC,UAAMC,iBAAiBR,OAAOS,MAAM,GAAG,EAAE,CAAC;AAC1CN,YAAQO,MACN,UAAUV,MAAM,sCAAsCQ,cAAc,EACtE;AACAP,eAAW,MAAMF,cAAcS,cAAc;AAAA,EAC/C;AAEA,MAAI,CAACP,YAAYD,WAAW,MAAM;AAChCG,YAAQO,MAAM,UAAUV,MAAM,uCAAuC;AACrEC,eAAW,MAAMF,cAAc,IAAI;AAAA,EACrC;AAEA,MAAIE,qCAAUA,UAAU;AACtBK,SAAKK,KAAKX,QAAQC,SAASA,QAAQ;AACnCK,SAAKM,SAASZ,MAAM;AAAA,EACtB,OAAO;AACLG,YAAQD,MAAM,iCAAiCF,MAAM,EAAE;AAAA,EACzD;AACF;AAOA,SAAwBa,mBAAmB;AAAA,EACzCP;AAAAA,EACAN;AAAAA,EACAc;AAKF,GAAG;AACD,QAAM,CAACC,QAAQC,SAAS,IAAIC,SAAS,KAAK;AAG1CC,YAAU,MAAM;AACdF,cAAU,KAAK;AACfX,qBAAiBC,MAAMN,MAAM,EAAEmB,KAAK,MAAM;AACxCH,gBAAU,IAAI;AAAA,IAChB,CAAC;AAAA,EACH,GAAG,CAACV,MAAMN,MAAM,CAAC;AAEjB,SAAOe,SACLK,kCAAAA,IAAC,cAAA,EAAa,MAAaN,SAAAA,CAAS,IAEpCM,kCAAAA,IAAC,UAAA,EAAS,GAAE,QAAO,SAAO,KAAA,CAAA;AAE9B;"}
|
package/dist/types/Filters.d.ts
CHANGED
|
@@ -38,6 +38,7 @@ export type TableFilter = {
|
|
|
38
38
|
name: string;
|
|
39
39
|
label?: string;
|
|
40
40
|
description?: string;
|
|
41
|
+
placeholder?: string;
|
|
41
42
|
type?: TableFilterType;
|
|
42
43
|
choices?: TableFilterChoice[];
|
|
43
44
|
choiceFunction?: () => TableFilterChoice[];
|
|
@@ -49,10 +50,20 @@ export type TableFilter = {
|
|
|
49
50
|
apiFilter?: Record<string, any>;
|
|
50
51
|
model?: ModelType;
|
|
51
52
|
modelRenderer?: (instance: any) => string;
|
|
53
|
+
transform?: (item: any) => TableFilterChoice;
|
|
54
|
+
multi?: boolean;
|
|
55
|
+
};
|
|
56
|
+
export type NamedFilterSet = {
|
|
57
|
+
name: string;
|
|
58
|
+
filters: Pick<TableFilter, 'name' | 'value' | 'displayValue'>[];
|
|
52
59
|
};
|
|
53
60
|
export type FilterSetState = {
|
|
54
61
|
filterKey: string;
|
|
55
62
|
activeFilters: TableFilter[];
|
|
56
63
|
setActiveFilters: (filters: TableFilter[]) => void;
|
|
57
64
|
clearActiveFilters: () => void;
|
|
65
|
+
savedFilterSets: NamedFilterSet[];
|
|
66
|
+
saveFilterSet: (name: string) => void;
|
|
67
|
+
loadFilterSet: (name: string) => void;
|
|
68
|
+
deleteFilterSet: (name: string) => void;
|
|
58
69
|
};
|
package/dist/types/Forms.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { DefaultMantineColor, MantineStyleProp } from '@mantine/core';
|
|
|
2
2
|
import { UseFormReturnType } from '@mantine/form';
|
|
3
3
|
import { JSX, ReactNode } from 'react';
|
|
4
4
|
import { FieldValues, UseFormReturn } from 'react-hook-form';
|
|
5
|
+
import { NavigateFunction } from 'react-router-dom';
|
|
5
6
|
import { ApiEndpoints } from '../enums/ApiEndpoints';
|
|
6
7
|
import { ModelType } from '../enums/ModelType';
|
|
7
8
|
import { PathParams, UiSizeType } from './Core';
|
|
@@ -73,7 +74,7 @@ export type ApiFormFieldType = {
|
|
|
73
74
|
value?: any;
|
|
74
75
|
default?: any;
|
|
75
76
|
icon?: ReactNode;
|
|
76
|
-
field_type?: 'related field' | 'email' | 'url' | 'string' | 'password' | 'icon' | 'boolean' | 'date' | 'datetime' | 'integer' | 'decimal' | 'float' | 'number' | 'choice' | 'file upload' | 'nested object' | 'dependent field' | 'table';
|
|
77
|
+
field_type?: 'related field' | 'email' | 'url' | 'string' | 'password' | 'icon' | 'boolean' | 'date' | 'datetime' | 'integer' | 'decimal' | 'float' | 'number' | 'choice' | 'file upload' | 'nested object' | 'dependent field' | 'table' | 'tags';
|
|
77
78
|
api_url?: string;
|
|
78
79
|
pk_field?: string;
|
|
79
80
|
model?: ModelType;
|
|
@@ -135,6 +136,7 @@ export type ApiFormFieldSet = Record<string, ApiFormFieldType>;
|
|
|
135
136
|
* @param modelType : Define a model type for this form
|
|
136
137
|
* @param follow : Boolean, follow the result of the form (if possible)
|
|
137
138
|
* @param table : Table to update on success (if provided)
|
|
139
|
+
* @param navigate : Optional navigate function to use for following results (if follow is true)
|
|
138
140
|
*/
|
|
139
141
|
export interface ApiFormProps {
|
|
140
142
|
url: ApiEndpoints | string;
|
|
@@ -164,6 +166,7 @@ export interface ApiFormProps {
|
|
|
164
166
|
follow?: boolean;
|
|
165
167
|
actions?: ApiFormAction[];
|
|
166
168
|
timeout?: number;
|
|
169
|
+
navigate?: NavigateFunction;
|
|
167
170
|
keepOpenOption?: boolean;
|
|
168
171
|
onKeepOpenChange?: (keepOpen: boolean) => void;
|
|
169
172
|
}
|
package/dist/types/Plugins.js
CHANGED