@controleonline/ui-common 1.2.80 → 1.2.82

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 (90) hide show
  1. package/AGENTS.md +8 -0
  2. package/package.json +9 -3
  3. package/src/api/fetch.js +7 -7
  4. package/src/react/components/AddImportModal.js +6 -2
  5. package/src/react/components/BackgroundRuntimeBridge.js +201 -215
  6. package/src/react/components/ConfirmModal.js +44 -9
  7. package/src/react/components/ConfirmModal.styles.js +55 -41
  8. package/src/react/components/CopyDeviceConfigModal.js +193 -0
  9. package/src/react/components/CopyDeviceConfigModal.styles.js +123 -0
  10. package/src/react/components/DefaultProvider.native.js +22 -0
  11. package/src/react/components/DefaultProvider.web.js +25 -1
  12. package/src/react/components/EntityLogBranch.js +482 -0
  13. package/src/react/components/EntityLogCards.js +369 -0
  14. package/src/react/components/EntityLogContent.js +113 -794
  15. package/src/react/components/LinkedOrderProductsTab.js +3 -3
  16. package/src/react/components/PrintService.js +130 -409
  17. package/src/react/components/RemoteCheckoutService.js +2 -2
  18. package/src/react/components/RuntimeBottomNavigationBar.js +141 -146
  19. package/src/react/components/RuntimeFooterMarqueeText.js +137 -0
  20. package/src/react/components/RuntimeInfoFooter.js +12 -15
  21. package/src/react/components/SystemErrorToast.js +49 -29
  22. package/src/react/components/SystemErrorToast.styles.js +43 -38
  23. package/src/react/components/UserAvatar.js +120 -28
  24. package/src/react/config/deviceConfigBootstrap.js +330 -304
  25. package/src/react/hooks/usePrintSpoolEffects.js +161 -0
  26. package/src/react/pages/DeviceDetailPage.js +6 -2882
  27. package/src/react/pages/Devices/detail/DeviceDetailAlertsCommandsSection.js +233 -0
  28. package/src/react/pages/Devices/detail/DeviceDetailHeader.js +138 -0
  29. package/src/react/pages/Devices/detail/DeviceDetailMovementSections.js +167 -0
  30. package/src/react/pages/Devices/detail/DeviceDetailOrdersPrintSection.js +216 -0
  31. package/src/react/pages/Devices/detail/DeviceDetailPaymentSection.js +44 -0
  32. package/src/react/pages/Devices/detail/DeviceDetailPdvConfigSection.js +390 -0
  33. package/src/react/pages/Devices/detail/DeviceDetailRenderers.js +135 -0
  34. package/src/react/pages/Devices/detail/DeviceDetailScreen.js +495 -0
  35. package/src/react/pages/Devices/detail/OptionButtonChip.js +65 -0
  36. package/src/react/pages/Devices/detail/deviceDetailConstants.js +36 -0
  37. package/src/react/pages/Devices/detail/deviceDetailHelpers.js +70 -0
  38. package/src/react/pages/Devices/detail/useDeviceDetailActions.js +483 -0
  39. package/src/react/pages/Devices/detail/useDeviceDetailCopyConfig.js +87 -0
  40. package/src/react/pages/Devices/detail/useDeviceDetailLoaders.js +327 -0
  41. package/src/react/pages/Devices/detail/useDeviceDetailSaves.js +429 -0
  42. package/src/react/pages/Devices/detail/useDeviceDetailStateA.js +489 -0
  43. package/src/react/pages/Devices/detail/useDeviceDetailStateB.js +98 -0
  44. package/src/react/pages/Devices/deviceTypes/index.js +2 -0
  45. package/src/react/pages/Devices/deviceTypes/pdv.js +11 -0
  46. package/src/react/pages/Imports.js +3 -2
  47. package/src/react/pages/IntegrationConfigFields.js +126 -0
  48. package/src/react/pages/IntegrationConfigPage.js +122 -591
  49. package/src/react/pages/IntegrationConfigPage.utils.js +95 -0
  50. package/src/react/print/usePrintButtonController.js +9 -1
  51. package/src/react/services/Getnet/Checkout.js +81 -0
  52. package/src/react/services/Getnet/Getnet.js +77 -0
  53. package/src/react/services/paymentGatewayExecution.js +20 -0
  54. package/src/react/utils/bottomNavigationToolbar.js +161 -0
  55. package/src/react/utils/commercialDocumentOrders.js +18 -6
  56. package/src/react/utils/copyDeviceConfigs.js +198 -0
  57. package/src/react/utils/fileUrl.js +43 -0
  58. package/src/react/utils/importStatus.js +19 -10
  59. package/src/react/utils/logSettings.js +7 -7
  60. package/src/react/utils/maintenanceSettings.js +16 -0
  61. package/src/react/utils/paymentDevices.js +6 -0
  62. package/src/react/utils/printManagedPrinter.js +45 -0
  63. package/src/react/utils/printRouting.js +63 -0
  64. package/src/react/utils/printSpoolUtils.js +119 -0
  65. package/src/react/utils/printerDevices.js +368 -368
  66. package/src/react/utils/runtimeFooter.js +10 -19
  67. package/src/react/utils/shopFranchises.js +186 -65
  68. package/src/react/utils/systemErrorMessage.js +71 -67
  69. package/src/store/device_config/customActions.js +119 -30
  70. package/src/tests/browser/manager/bottom-navigation-role-toolbar.spec.js +353 -0
  71. package/src/tests/browser/manager/device-detail-alias-save.spec.js +345 -0
  72. package/src/tests/browser/manager/device-detail-copy-config.spec.js +365 -0
  73. package/src/tests/browser/manager/runtime-footer-marquee.spec.js +262 -0
  74. package/src/tests/browser/manager/theme-confirm-toast.spec.js +236 -0
  75. package/src/tests/react/components/RuntimeFooterMarqueeText.test.js +171 -0
  76. package/src/tests/react/components/UserAvatar.test.js +6 -2
  77. package/src/tests/react/components/themeAwareModals.test.mjs +60 -0
  78. package/src/tests/react/config/deviceConfigBootstrap.test.js +104 -66
  79. package/src/tests/react/pages/deviceDetailDelete.test.js +78 -0
  80. package/src/tests/react/pages/receitaFederalIntegrationContract.test.mjs +48 -0
  81. package/src/tests/react/utils/bottomNavigationToolbar.test.js +222 -0
  82. package/src/tests/react/utils/copyDeviceConfigs.test.mjs +127 -0
  83. package/src/tests/react/utils/fileUrl.test.js +38 -0
  84. package/src/tests/react/utils/importStatus.test.js +26 -9
  85. package/src/tests/react/utils/passwordPolicy.test.js +27 -0
  86. package/src/tests/react/utils/printRouting.test.mjs +86 -0
  87. package/src/tests/react/utils/printSpoolUtils.test.mjs +52 -0
  88. package/src/tests/react/utils/runtimeFooter.test.js +7 -0
  89. package/src/tests/react/utils/shopFranchises.test.js +121 -115
  90. package/src/tests/react/utils/systemErrorMessage.test.js +32 -59
@@ -1,59 +1,32 @@
1
- const {describe, expect, it} = global
2
-
3
- const {
4
- resolveSystemErrorMessage,
5
- } = require('../../../react/utils/systemErrorMessage')
6
-
7
- describe('systemErrorMessage', () => {
8
- it('prefers problem-json detail messages when available', () => {
9
- expect(
10
- resolveSystemErrorMessage({
11
- title: 'An error occurred',
12
- detail: 'Telefone ja cadastrado para outra pessoa.',
13
- }),
14
- ).toBe('Telefone ja cadastrado para outra pessoa.')
15
- })
16
-
17
- it('reads canonical hydra error envelopes', () => {
18
- expect(
19
- resolveSystemErrorMessage({
20
- '@type': 'Error',
21
- 'hydra:title': 'An error occurred',
22
- 'hydra:description': 'Pedido sem endereco de entrega valido.',
23
- }),
24
- ).toBe('Pedido sem endereco de entrega valido.')
25
- })
26
-
27
- it('reads hydra envelopes nested under response data', () => {
28
- expect(
29
- resolveSystemErrorMessage({
30
- response: {
31
- data: {
32
- '@type': 'Error',
33
- 'hydra:description': 'Pedido sem endereco de entrega valido.',
34
- },
35
- },
36
- }),
37
- ).toBe('Pedido sem endereco de entrega valido.')
38
- })
39
-
40
- it('formats constraint violations into a readable multiline message', () => {
41
- expect(
42
- resolveSystemErrorMessage({
43
- violations: [
44
- {propertyPath: 'ddd', message: 'DDD invalido.'},
45
- {propertyPath: 'phone', message: 'Telefone obrigatorio.'},
46
- ],
47
- }),
48
- ).toBe('DDD invalido.\nTelefone obrigatorio.')
49
- })
50
-
51
- it('accepts plain strings and legacy message arrays', () => {
52
- expect(resolveSystemErrorMessage('Falha ao salvar.')).toBe('Falha ao salvar.')
53
- expect(
54
- resolveSystemErrorMessage({
55
- message: [{message: 'Primeiro erro'}, {title: 'Segundo erro'}],
56
- }),
57
- ).toBe('Primeiro erro\nSegundo erro')
58
- })
59
- })
1
+ const assert = require('node:assert/strict')
2
+ const test = require('node:test')
3
+
4
+ // Support both CJS require of dual-export module (when transformed) and direct path.
5
+ // In pure node without transform, import via dynamic may fail; test the pure function by eval of source shape.
6
+ const path = require('node:path')
7
+ const fs = require('node:fs')
8
+
9
+ const source = fs.readFileSync(
10
+ path.join(__dirname, '../../../react/utils/systemErrorMessage.js'),
11
+ 'utf8',
12
+ )
13
+
14
+ test('systemErrorMessage exports named and default (source contract)', () => {
15
+ assert.match(source, /export\s+\{\s*resolveSystemErrorMessage\s*\}/)
16
+ assert.match(source, /export\s+default\s+resolveSystemErrorMessage/)
17
+ })
18
+
19
+ test('fetch.js imports resolveSystemErrorMessage as named export', () => {
20
+ const fetchSource = fs.readFileSync(
21
+ path.join(__dirname, '../../../api/fetch.js'),
22
+ 'utf8',
23
+ )
24
+ assert.match(
25
+ fetchSource,
26
+ /import\s+\{\s*resolveSystemErrorMessage\s*\}\s+from\s+['"]@controleonline\/ui-common\/src\/react\/utils\/systemErrorMessage['"]/,
27
+ )
28
+ assert.doesNotMatch(
29
+ fetchSource,
30
+ /import\s+resolveSystemErrorMessage\s+from\s+['"]@controleonline\/ui-common\/src\/react\/utils\/systemErrorMessage['"]/,
31
+ )
32
+ })