From 3e060b80428943c6562250a6ff77eff10a0259b7 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 24 Oct 2022 10:46:14 +0200 Subject: [PATCH] repo: integrate packages from former merchant-backoffice.git --- packages/demobank-ui/.gitignore | 5 + packages/demobank-ui/.storybook/.babelrc | 25 + packages/demobank-ui/.storybook/main.js | 57 + packages/demobank-ui/.storybook/preview.js | 55 + packages/demobank-ui/README.md | 19 + packages/demobank-ui/TODO | 45 + .../demobank-ui/build-bank-translations.sh | 32 + packages/demobank-ui/contrib/po2ts | 42 + .../demobank-ui/mocks/json-server/db.json | 4 + packages/demobank-ui/mocks/window.js | 27 + packages/demobank-ui/package.json | 100 + packages/demobank-ui/preact.config.js | 70 + packages/demobank-ui/preact.mock.js | 55 + packages/demobank-ui/preact.single-config.js | 60 + .../demobank-ui/remove-link-stylesheet.sh | 8 + packages/demobank-ui/src/.babelrc | 3 + packages/demobank-ui/src/assets/empty.png | Bin 0 -> 2785 bytes .../demobank-ui/src/assets/example/id1.jpg | Bin 0 -> 103558 bytes packages/demobank-ui/src/assets/favicon.ico | Bin 0 -> 15086 bytes .../assets/icons/android-chrome-192x192.png | Bin 0 -> 14058 bytes .../assets/icons/android-chrome-512x512.png | Bin 0 -> 51484 bytes .../src/assets/icons/apple-touch-icon.png | Bin 0 -> 12746 bytes .../src/assets/icons/auth_method/email.svg | 1 + .../src/assets/icons/auth_method/postal.svg | 1 + .../src/assets/icons/auth_method/question.svg | 1 + .../src/assets/icons/auth_method/sms.svg | 1 + .../src/assets/icons/auth_method/video.svg | 1 + .../src/assets/icons/favicon-16x16.png | Bin 0 -> 626 bytes .../src/assets/icons/favicon-32x32.png | Bin 0 -> 1487 bytes .../src/assets/icons/languageicon.svg | 48 + .../src/assets/icons/mstile-150x150.png | Bin 0 -> 9050 bytes .../demobank-ui/src/assets/logo-white.svg | 45 + packages/demobank-ui/src/assets/logo.jpeg | Bin 0 -> 39336 bytes .../src/components/AsyncButton.tsx | 66 + .../demobank-ui/src/components/FileButton.tsx | 57 + .../src/components/Notifications.tsx | 74 + packages/demobank-ui/src/components/QR.tsx | 48 + packages/demobank-ui/src/components/app.tsx | 14 + .../src/components/fields/DateInput.tsx | 90 + .../src/components/fields/EmailInput.tsx | 57 + .../src/components/fields/FileInput.tsx | 104 + .../src/components/fields/ImageInput.tsx | 93 + .../src/components/fields/NumberInput.tsx | 56 + .../src/components/fields/TextInput.tsx | 68 + .../src/components/menu/LangSelector.tsx | 101 + .../src/components/menu/NavigationBar.tsx | 53 + .../src/components/menu/SideBar.tsx | 73 + .../demobank-ui/src/components/menu/index.tsx | 135 + .../src/components/picker/DatePicker.tsx | 356 + .../picker/DurationPicker.stories.tsx | 55 + .../src/components/picker/DurationPicker.tsx | 211 + .../demobank-ui/src/context/translation.ts | 73 + packages/demobank-ui/src/declaration.d.ts | 20 + packages/demobank-ui/src/hooks/async.ts | 80 + packages/demobank-ui/src/hooks/index.ts | 151 + packages/demobank-ui/src/i18n/bank.pot | 258 + packages/demobank-ui/src/i18n/de.po | 257 + packages/demobank-ui/src/i18n/en.po | 266 + packages/demobank-ui/src/i18n/index.tsx | 211 + packages/demobank-ui/src/i18n/it.po | 258 + packages/demobank-ui/src/i18n/poheader | 27 + packages/demobank-ui/src/i18n/strings-prelude | 19 + packages/demobank-ui/src/i18n/strings.ts | 472 + packages/demobank-ui/src/index.tsx | 3 + packages/demobank-ui/src/manifest.json | 21 + packages/demobank-ui/src/pages/home/index.tsx | 2018 ++ .../demobank-ui/src/pages/notfound/index.tsx | 16 + .../demobank-ui/src/pages/notfound/style.css | 0 .../src/pages/profile/index.stories.tsx | 38 + .../demobank-ui/src/pages/profile/index.tsx | 42 + .../demobank-ui/src/pages/profile/style.css | 0 .../demobank-ui/src/scss/DurationPicker.scss | 70 + packages/demobank-ui/src/scss/_aside.scss | 128 + packages/demobank-ui/src/scss/_card.scss | 69 + .../src/scss/_custom-calendar.scss | 263 + packages/demobank-ui/src/scss/_footer.scss | 35 + packages/demobank-ui/src/scss/_form.scss | 71 + packages/demobank-ui/src/scss/_hero-bar.scss | 55 + packages/demobank-ui/src/scss/_loading.scss | 51 + .../demobank-ui/src/scss/_main-section.scss | 24 + packages/demobank-ui/src/scss/_misc.scss | 50 + packages/demobank-ui/src/scss/_mixins.scss | 34 + packages/demobank-ui/src/scss/_modal.scss | 35 + packages/demobank-ui/src/scss/_nav-bar.scss | 144 + packages/demobank-ui/src/scss/_table.scss | 179 + .../demobank-ui/src/scss/_theme-default.scss | 136 + packages/demobank-ui/src/scss/_tiles.scss | 24 + packages/demobank-ui/src/scss/_title-bar.scss | 50 + packages/demobank-ui/src/scss/bank.scss | 264 + .../demobank-ui/src/scss/colors-bank.scss | 31 + packages/demobank-ui/src/scss/demo.scss | 157 + .../src/scss/fonts/XRXV3I6Li01BKofINeaE.ttf | Bin 0 -> 43752 bytes .../demobank-ui/src/scss/fonts/nunito.css | 22 + .../materialdesignicons-webfont-4.9.95.eot | Bin 0 -> 844600 bytes .../materialdesignicons-webfont-4.9.95.ttf | Bin 0 -> 844380 bytes .../materialdesignicons-webfont-4.9.95.woff | Bin 0 -> 404384 bytes .../materialdesignicons-webfont-4.9.95.woff2 | Bin 0 -> 283040 bytes .../icons/materialdesignicons-4.9.95.min.css | 3 + packages/demobank-ui/src/scss/libs/_all.scss | 29 + packages/demobank-ui/src/scss/main.scss | 4 + packages/demobank-ui/src/scss/pure.scss | 1328 ++ packages/demobank-ui/src/style/index.css | 0 packages/demobank-ui/src/template.html | 52 + .../tests/__mocks__/browserMocks.ts | 21 + .../demobank-ui/tests/__mocks__/fileMocks.ts | 3 + .../demobank-ui/tests/__mocks__/setupTests.ts | 6 + .../demobank-ui/tests/__tests__/homepage.js | 466 + packages/demobank-ui/tests/declarations.d.ts | 3 + packages/demobank-ui/tsconfig.json | 60 + packages/merchant-backend-ui/.gitignore | 9 + .../merchant-backend-ui/.storybook/.babelrc | 25 + .../merchant-backend-ui/.storybook/main.js | 82 + .../merchant-backend-ui/.storybook/preview.js | 73 + packages/merchant-backend-ui/README.md | 30 + packages/merchant-backend-ui/contrib/po2ts | 42 + .../merchant-backend-ui/copyleft-header.js | 15 + packages/merchant-backend-ui/package.json | 144 + .../merchant-backend-ui/render-examples.ts | 83 + packages/merchant-backend-ui/rollup.config.js | 112 + .../merchant-backend-ui/src/assets/empty.png | Bin 0 -> 2785 bytes .../assets/icons/android-chrome-192x192.png | Bin 0 -> 14058 bytes .../assets/icons/android-chrome-512x512.png | Bin 0 -> 51484 bytes .../src/assets/icons/apple-touch-icon.png | Bin 0 -> 12746 bytes .../src/assets/icons/favicon-16x16.png | Bin 0 -> 626 bytes .../src/assets/icons/favicon-32x32.png | Bin 0 -> 1487 bytes .../src/assets/icons/languageicon.svg | 48 + .../src/assets/icons/mstile-150x150.png | Bin 0 -> 9050 bytes .../src/components/Footer.tsx | 32 + .../merchant-backend-ui/src/components/QR.tsx | 41 + .../src/context/backend.ts | 82 + .../merchant-backend-ui/src/context/config.ts | 32 + .../merchant-backend-ui/src/context/fetch.ts | 40 + .../src/context/instance.ts | 35 + .../src/context/listener.ts | 35 + .../src/context/translation.ts | 59 + .../merchant-backend-ui/src/css/pure-min.css | 973 + .../merchant-backend-ui/src/css/style.css | 61 + packages/merchant-backend-ui/src/custom.d.ts | 40 + .../merchant-backend-ui/src/declaration.d.ts | 1384 ++ .../merchant-backend-ui/src/hooks/async.ts | 76 + .../merchant-backend-ui/src/hooks/backend.ts | 262 + .../merchant-backend-ui/src/hooks/index.ts | 110 + .../merchant-backend-ui/src/hooks/instance.ts | 187 + .../merchant-backend-ui/src/hooks/listener.ts | 68 + .../src/hooks/notification.ts | 43 + .../src/hooks/notifications.ts | 48 + .../merchant-backend-ui/src/hooks/order.ts | 217 + .../merchant-backend-ui/src/hooks/product.ts | 223 + .../merchant-backend-ui/src/hooks/tips.ts | 159 + .../merchant-backend-ui/src/hooks/transfer.ts | 150 + packages/merchant-backend-ui/src/i18n/de.po | 1057 ++ packages/merchant-backend-ui/src/i18n/en.po | 1057 ++ packages/merchant-backend-ui/src/i18n/es.po | 1065 ++ packages/merchant-backend-ui/src/i18n/fr.po | 1057 ++ .../merchant-backend-ui/src/i18n/index.tsx | 203 + packages/merchant-backend-ui/src/i18n/it.po | 1057 ++ .../merchant-backend-ui/src/i18n/poheader | 27 + .../src/i18n/strings-prelude | 19 + .../merchant-backend-ui/src/i18n/strings.ts | 3445 ++++ packages/merchant-backend-ui/src/i18n/sv.po | 1057 ++ .../src/i18n/taler-merchant-backoffice.pot | 1054 ++ packages/merchant-backend-ui/src/index.tsx | 61 + .../src/pages/DepletedTip.stories.tsx | 40 + .../src/pages/DepletedTip.tsx | 60 + .../src/pages/OfferRefund.stories.tsx | 45 + .../src/pages/OfferRefund.tsx | 154 + .../src/pages/OfferTip.stories.tsx | 45 + .../src/pages/OfferTip.tsx | 141 + .../src/pages/RequestPayment.stories.tsx | 45 + .../src/pages/RequestPayment.tsx | 196 + .../src/pages/ShowOrderDetails.examples.ts | 219 + .../src/pages/ShowOrderDetails.stories.tsx | 49 + .../src/pages/ShowOrderDetails.tsx | 551 + .../merchant-backend-ui/src/styled/index.tsx | 178 + .../merchant-backend-ui/src/utils/amount.ts | 69 + .../src/utils/constants.ts | 47 + .../merchant-backend-ui/src/utils/table.ts | 37 + .../merchant-backend-ui/src/utils/types.ts | 31 + .../tests/__mocks__/browserMocks.ts | 42 + .../tests/__mocks__/fileMocks.ts | 24 + .../tests/__mocks__/fileTransformer.js | 31 + .../tests/__mocks__/setupTests.ts | 28 + .../tests/funcitons/regex.test.ts | 87 + packages/merchant-backend-ui/tests/util.ts | 62 + .../merchant-backend-ui/tsconfig.back.json | 23 + packages/merchant-backend-ui/tsconfig.json | 61 + packages/merchant-backoffice-ui/.gitignore | 6 + .../.storybook/.babelrc | 25 + .../merchant-backoffice-ui/.storybook/main.js | 57 + .../.storybook/preview.js | 74 + packages/merchant-backoffice-ui/contrib/po2ts | 42 + .../merchant-backoffice-ui/copyleft-header.js | 15 + packages/merchant-backoffice-ui/package.json | 123 + .../merchant-backoffice-ui/preact.config.js | 70 + .../preact.single-config.js | 62 + .../remove-link-stylesheet.sh | 8 + packages/merchant-backoffice-ui/src/.babelrc | 26 + .../src/AdminRoutes.tsx | 58 + .../src/ApplicationReadyRoutes.tsx | 120 + .../src/InstanceRoutes.tsx | 528 + .../src/assets/empty.png | Bin 0 -> 2785 bytes .../assets/icons/android-chrome-192x192.png | Bin 0 -> 14058 bytes .../assets/icons/android-chrome-512x512.png | Bin 0 -> 51484 bytes .../src/assets/icons/apple-touch-icon.png | Bin 0 -> 12746 bytes .../src/assets/icons/favicon-16x16.png | Bin 0 -> 626 bytes .../src/assets/icons/favicon-32x32.png | Bin 0 -> 1487 bytes .../src/assets/icons/languageicon.svg | 48 + .../src/assets/icons/mstile-150x150.png | Bin 0 -> 9050 bytes .../src/assets/logo.jpeg | Bin 0 -> 39336 bytes .../src/components/exception/AsyncButton.tsx | 49 + .../src/components/exception/QR.tsx | 49 + .../src/components/exception/loading.tsx | 32 + .../src/components/exception/login.tsx | 143 + .../src/components/form/FormProvider.tsx | 81 + .../src/components/form/Input.tsx | 71 + .../src/components/form/InputArray.tsx | 97 + .../src/components/form/InputBoolean.tsx | 72 + .../src/components/form/InputCurrency.tsx | 47 + .../src/components/form/InputDate.tsx | 159 + .../src/components/form/InputDuration.tsx | 172 + .../src/components/form/InputGroup.tsx | 66 + .../src/components/form/InputImage.tsx | 95 + .../src/components/form/InputLocation.tsx | 43 + .../src/components/form/InputNumber.tsx | 42 + .../src/components/form/InputPayto.tsx | 39 + .../src/components/form/InputPaytoForm.tsx | 392 + .../components/form/InputSearchProduct.tsx | 139 + .../components/form/InputSecured.stories.tsx | 55 + .../src/components/form/InputSecured.tsx | 119 + .../src/components/form/InputSelector.tsx | 86 + .../components/form/InputStock.stories.tsx | 162 + .../src/components/form/InputStock.tsx | 171 + .../src/components/form/InputTaxes.tsx | 97 + .../src/components/form/InputWithAddon.tsx | 77 + .../src/components/form/TextField.tsx | 53 + .../src/components/form/useField.tsx | 86 + .../src/components/form/useGroupField.tsx | 40 + .../instance/DefaultInstanceFormFields.tsx | 135 + .../src/components/menu/LangSelector.tsx | 73 + .../src/components/menu/NavigationBar.tsx | 58 + .../src/components/menu/SideBar.tsx | 227 + .../src/components/menu/index.tsx | 210 + .../src/components/modal/index.tsx | 262 + .../notifications/CreatedSuccessfully.tsx | 49 + .../notifications/Notifications.stories.tsx | 57 + .../src/components/notifications/index.tsx | 52 + .../src/components/picker/DatePicker.tsx | 324 + .../picker/DurationPicker.stories.tsx | 50 + .../src/components/picker/DurationPicker.tsx | 211 + .../product/InventoryProductForm.stories.tsx | 58 + .../product/InventoryProductForm.tsx | 95 + .../product/NonInventoryProductForm.tsx | 146 + .../src/components/product/ProductForm.tsx | 176 + .../src/components/product/ProductList.tsx | 105 + .../src/context/backend.ts | 82 + .../src/context/config.ts | 32 + .../src/context/fetch.ts | 54 + .../src/context/instance.ts | 35 + .../src/context/listener.ts | 35 + .../src/context/translation.ts | 59 + .../merchant-backoffice-ui/src/custom.d.ts | 40 + .../src/declaration.d.ts | 1443 ++ .../merchant-backoffice-ui/src/hooks/async.ts | 76 + .../src/hooks/backend.ts | 319 + .../merchant-backoffice-ui/src/hooks/index.ts | 110 + .../src/hooks/instance.ts | 292 + .../src/hooks/listener.ts | 81 + .../src/hooks/notifications.ts | 48 + .../merchant-backoffice-ui/src/hooks/order.ts | 323 + .../src/hooks/product.ts | 187 + .../src/hooks/reserves.ts | 218 + .../src/hooks/transfer.ts | 217 + .../merchant-backoffice-ui/src/i18n/de.po | 1057 ++ .../merchant-backoffice-ui/src/i18n/en.po | 1057 ++ .../merchant-backoffice-ui/src/i18n/es.po | 1065 ++ .../merchant-backoffice-ui/src/i18n/fr.po | 1057 ++ .../merchant-backoffice-ui/src/i18n/index.tsx | 215 + .../merchant-backoffice-ui/src/i18n/it.po | 1057 ++ .../merchant-backoffice-ui/src/i18n/poheader | 27 + .../src/i18n/strings-prelude | 19 + .../src/i18n/strings.ts | 3445 ++++ .../merchant-backoffice-ui/src/i18n/sv.po | 1057 ++ .../src/i18n/taler-merchant-backoffice.pot | 1054 ++ packages/merchant-backoffice-ui/src/index.tsx | 111 + .../merchant-backoffice-ui/src/manifest.json | 21 + .../src/paths/admin/create/Create.stories.tsx | 46 + .../src/paths/admin/create/CreatePage.tsx | 234 + .../create/InstanceCreatedSuccessfully.tsx | 65 + .../src/paths/admin/create/index.tsx | 74 + .../src/paths/admin/list/TableActive.tsx | 184 + .../src/paths/admin/list/View.stories.tsx | 82 + .../src/paths/admin/list/View.tsx | 80 + .../src/paths/admin/list/index.tsx | 126 + .../src/paths/instance/details/DetailPage.tsx | 87 + .../instance/details/Details.stories.tsx | 61 + .../src/paths/instance/details/index.tsx | 65 + .../src/paths/instance/kyc/list/ListPage.tsx | 178 + .../src/paths/instance/kyc/list/index.tsx | 51 + .../instance/orders/create/Create.stories.tsx | 70 + .../instance/orders/create/CreatePage.tsx | 576 + .../create/OrderCreatedSuccessfully.tsx | 89 + .../paths/instance/orders/create/index.tsx | 82 + .../orders/details/Detail.stories.tsx | 137 + .../instance/orders/details/DetailPage.tsx | 776 + .../instance/orders/details/Timeline.tsx | 128 + .../paths/instance/orders/details/index.tsx | 67 + .../instance/orders/list/List.stories.tsx | 107 + .../paths/instance/orders/list/ListPage.tsx | 146 + .../src/paths/instance/orders/list/Table.tsx | 412 + .../src/paths/instance/orders/list/index.tsx | 171 + .../products/create/Create.stories.tsx | 42 + .../instance/products/create/CreatePage.tsx | 65 + .../products/create/CreatedSuccessfully.tsx | 67 + .../paths/instance/products/create/index.tsx | 55 + .../instance/products/list/List.stories.tsx | 58 + .../paths/instance/products/list/Table.tsx | 479 + .../paths/instance/products/list/index.tsx | 80 + .../products/update/Update.stories.tsx | 71 + .../instance/products/update/UpdatePage.tsx | 77 + .../paths/instance/products/update/index.tsx | 71 + .../reserves/create/Create.stories.tsx | 42 + .../instance/reserves/create/CreatePage.tsx | 168 + .../create/CreatedSuccessfully.stories.tsx | 53 + .../reserves/create/CreatedSuccessfully.tsx | 79 + .../paths/instance/reserves/create/index.tsx | 71 + .../instance/reserves/details/DetailPage.tsx | 278 + .../reserves/details/Details.stories.tsx | 105 + .../instance/reserves/details/TipInfo.tsx | 87 + .../paths/instance/reserves/details/index.tsx | 56 + .../reserves/list/AutorizeTipModal.tsx | 85 + .../reserves/list/CreatedSuccessfully.tsx | 100 + .../instance/reserves/list/List.stories.tsx | 102 + .../paths/instance/reserves/list/Table.tsx | 313 + .../paths/instance/reserves/list/index.tsx | 117 + .../transfers/create/Create.stories.tsx | 43 + .../instance/transfers/create/CreatePage.tsx | 104 + .../paths/instance/transfers/create/index.tsx | 60 + .../instance/transfers/list/List.stories.tsx | 93 + .../instance/transfers/list/ListPage.tsx | 89 + .../paths/instance/transfers/list/Table.tsx | 225 + .../paths/instance/transfers/list/index.tsx | 85 + .../paths/instance/transfers/update/index.tsx | 26 + .../paths/instance/update/Update.stories.tsx | 61 + .../src/paths/instance/update/UpdatePage.tsx | 259 + .../src/paths/instance/update/index.tsx | 113 + .../src/paths/login/index.tsx | 29 + .../src/paths/notfound/index.tsx | 36 + .../src/schemas/index.ts | 202 + .../src/scss/DurationPicker.scss | 71 + .../src/scss/_aside.scss | 179 + .../src/scss/_card.scss | 69 + .../src/scss/_custom-calendar.scss | 254 + .../src/scss/_footer.scss | 35 + .../src/scss/_form.scss | 64 + .../src/scss/_hero-bar.scss | 55 + .../src/scss/_loading.scss | 51 + .../src/scss/_main-section.scss | 24 + .../src/scss/_misc.scss | 50 + .../src/scss/_mixins.scss | 34 + .../src/scss/_modal.scss | 35 + .../src/scss/_nav-bar.scss | 144 + .../src/scss/_table.scss | 173 + .../src/scss/_theme-default.scss | 136 + .../src/scss/_tiles.scss | 25 + .../src/scss/_title-bar.scss | 50 + .../src/scss/fonts/XRXV3I6Li01BKofINeaE.ttf | Bin 0 -> 43752 bytes .../src/scss/fonts/nunito.css | 22 + .../materialdesignicons-webfont-4.9.95.eot | Bin 0 -> 844600 bytes .../materialdesignicons-webfont-4.9.95.ttf | Bin 0 -> 844380 bytes .../materialdesignicons-webfont-4.9.95.woff | Bin 0 -> 404384 bytes .../materialdesignicons-webfont-4.9.95.woff2 | Bin 0 -> 283040 bytes .../icons/materialdesignicons-4.9.95.min.css | 3 + .../src/scss/libs/_all.scss | 29 + .../merchant-backoffice-ui/src/scss/main.scss | 191 + packages/merchant-backoffice-ui/src/sw.js | 25 + .../merchant-backoffice-ui/src/template.html | 52 + .../src/utils/amount.ts | 70 + .../src/utils/constants.ts | 194 + .../src/utils/switchableAxios.ts | 66 + .../merchant-backoffice-ui/src/utils/table.ts | 37 + .../merchant-backoffice-ui/src/utils/types.ts | 31 + .../tests/__mocks__/browserMocks.ts | 42 + .../tests/__mocks__/fileMocks.ts | 24 + .../tests/__mocks__/fileTransformer.js | 31 + .../tests/__mocks__/setupTests.ts | 28 + .../merchant-backoffice-ui/tests/axiosMock.ts | 445 + .../tests/context/backend.test.tsx | 172 + .../tests/declarations.d.ts | 28 + .../tests/functions/regex.test.ts | 87 + .../tests/header.test.tsx | 63 + .../tests/hooks/async.test.ts | 158 + .../tests/hooks/listener.test.ts | 62 + .../tests/hooks/notification.test.ts | 51 + .../tests/hooks/swr/index.tsx | 45 + .../tests/hooks/swr/instance.test.ts | 636 + .../tests/hooks/swr/order.test.ts | 567 + .../tests/hooks/swr/product.test.ts | 338 + .../tests/hooks/swr/reserve.test.ts | 470 + .../tests/hooks/swr/transfer.test.ts | 268 + .../tests/stories.test.tsx | 89 + packages/merchant-backoffice-ui/tsconfig.json | 61 + pnpm-lock.yaml | 15155 +++++++++++++++- 402 files changed, 78581 insertions(+), 782 deletions(-) create mode 100644 packages/demobank-ui/.gitignore create mode 100644 packages/demobank-ui/.storybook/.babelrc create mode 100644 packages/demobank-ui/.storybook/main.js create mode 100644 packages/demobank-ui/.storybook/preview.js create mode 100644 packages/demobank-ui/README.md create mode 100644 packages/demobank-ui/TODO create mode 100755 packages/demobank-ui/build-bank-translations.sh create mode 100755 packages/demobank-ui/contrib/po2ts create mode 100644 packages/demobank-ui/mocks/json-server/db.json create mode 100644 packages/demobank-ui/mocks/window.js create mode 100644 packages/demobank-ui/package.json create mode 100644 packages/demobank-ui/preact.config.js create mode 100644 packages/demobank-ui/preact.mock.js create mode 100644 packages/demobank-ui/preact.single-config.js create mode 100755 packages/demobank-ui/remove-link-stylesheet.sh create mode 100644 packages/demobank-ui/src/.babelrc create mode 100644 packages/demobank-ui/src/assets/empty.png create mode 100644 packages/demobank-ui/src/assets/example/id1.jpg create mode 100644 packages/demobank-ui/src/assets/favicon.ico create mode 100644 packages/demobank-ui/src/assets/icons/android-chrome-192x192.png create mode 100644 packages/demobank-ui/src/assets/icons/android-chrome-512x512.png create mode 100644 packages/demobank-ui/src/assets/icons/apple-touch-icon.png create mode 100644 packages/demobank-ui/src/assets/icons/auth_method/email.svg create mode 100644 packages/demobank-ui/src/assets/icons/auth_method/postal.svg create mode 100644 packages/demobank-ui/src/assets/icons/auth_method/question.svg create mode 100644 packages/demobank-ui/src/assets/icons/auth_method/sms.svg create mode 100644 packages/demobank-ui/src/assets/icons/auth_method/video.svg create mode 100644 packages/demobank-ui/src/assets/icons/favicon-16x16.png create mode 100644 packages/demobank-ui/src/assets/icons/favicon-32x32.png create mode 100644 packages/demobank-ui/src/assets/icons/languageicon.svg create mode 100644 packages/demobank-ui/src/assets/icons/mstile-150x150.png create mode 100644 packages/demobank-ui/src/assets/logo-white.svg create mode 100644 packages/demobank-ui/src/assets/logo.jpeg create mode 100644 packages/demobank-ui/src/components/AsyncButton.tsx create mode 100644 packages/demobank-ui/src/components/FileButton.tsx create mode 100644 packages/demobank-ui/src/components/Notifications.tsx create mode 100644 packages/demobank-ui/src/components/QR.tsx create mode 100644 packages/demobank-ui/src/components/app.tsx create mode 100644 packages/demobank-ui/src/components/fields/DateInput.tsx create mode 100644 packages/demobank-ui/src/components/fields/EmailInput.tsx create mode 100644 packages/demobank-ui/src/components/fields/FileInput.tsx create mode 100644 packages/demobank-ui/src/components/fields/ImageInput.tsx create mode 100644 packages/demobank-ui/src/components/fields/NumberInput.tsx create mode 100644 packages/demobank-ui/src/components/fields/TextInput.tsx create mode 100644 packages/demobank-ui/src/components/menu/LangSelector.tsx create mode 100644 packages/demobank-ui/src/components/menu/NavigationBar.tsx create mode 100644 packages/demobank-ui/src/components/menu/SideBar.tsx create mode 100644 packages/demobank-ui/src/components/menu/index.tsx create mode 100644 packages/demobank-ui/src/components/picker/DatePicker.tsx create mode 100644 packages/demobank-ui/src/components/picker/DurationPicker.stories.tsx create mode 100644 packages/demobank-ui/src/components/picker/DurationPicker.tsx create mode 100644 packages/demobank-ui/src/context/translation.ts create mode 100644 packages/demobank-ui/src/declaration.d.ts create mode 100644 packages/demobank-ui/src/hooks/async.ts create mode 100644 packages/demobank-ui/src/hooks/index.ts create mode 100644 packages/demobank-ui/src/i18n/bank.pot create mode 100644 packages/demobank-ui/src/i18n/de.po create mode 100644 packages/demobank-ui/src/i18n/en.po create mode 100644 packages/demobank-ui/src/i18n/index.tsx create mode 100644 packages/demobank-ui/src/i18n/it.po create mode 100644 packages/demobank-ui/src/i18n/poheader create mode 100644 packages/demobank-ui/src/i18n/strings-prelude create mode 100644 packages/demobank-ui/src/i18n/strings.ts create mode 100644 packages/demobank-ui/src/index.tsx create mode 100644 packages/demobank-ui/src/manifest.json create mode 100644 packages/demobank-ui/src/pages/home/index.tsx create mode 100644 packages/demobank-ui/src/pages/notfound/index.tsx create mode 100644 packages/demobank-ui/src/pages/notfound/style.css create mode 100644 packages/demobank-ui/src/pages/profile/index.stories.tsx create mode 100644 packages/demobank-ui/src/pages/profile/index.tsx create mode 100644 packages/demobank-ui/src/pages/profile/style.css create mode 100644 packages/demobank-ui/src/scss/DurationPicker.scss create mode 100644 packages/demobank-ui/src/scss/_aside.scss create mode 100644 packages/demobank-ui/src/scss/_card.scss create mode 100644 packages/demobank-ui/src/scss/_custom-calendar.scss create mode 100644 packages/demobank-ui/src/scss/_footer.scss create mode 100644 packages/demobank-ui/src/scss/_form.scss create mode 100644 packages/demobank-ui/src/scss/_hero-bar.scss create mode 100644 packages/demobank-ui/src/scss/_loading.scss create mode 100644 packages/demobank-ui/src/scss/_main-section.scss create mode 100644 packages/demobank-ui/src/scss/_misc.scss create mode 100644 packages/demobank-ui/src/scss/_mixins.scss create mode 100644 packages/demobank-ui/src/scss/_modal.scss create mode 100644 packages/demobank-ui/src/scss/_nav-bar.scss create mode 100644 packages/demobank-ui/src/scss/_table.scss create mode 100644 packages/demobank-ui/src/scss/_theme-default.scss create mode 100644 packages/demobank-ui/src/scss/_tiles.scss create mode 100644 packages/demobank-ui/src/scss/_title-bar.scss create mode 100644 packages/demobank-ui/src/scss/bank.scss create mode 100644 packages/demobank-ui/src/scss/colors-bank.scss create mode 100644 packages/demobank-ui/src/scss/demo.scss create mode 100644 packages/demobank-ui/src/scss/fonts/XRXV3I6Li01BKofINeaE.ttf create mode 100644 packages/demobank-ui/src/scss/fonts/nunito.css create mode 100644 packages/demobank-ui/src/scss/icons/fonts/materialdesignicons-webfont-4.9.95.eot create mode 100644 packages/demobank-ui/src/scss/icons/fonts/materialdesignicons-webfont-4.9.95.ttf create mode 100644 packages/demobank-ui/src/scss/icons/fonts/materialdesignicons-webfont-4.9.95.woff create mode 100644 packages/demobank-ui/src/scss/icons/fonts/materialdesignicons-webfont-4.9.95.woff2 create mode 100644 packages/demobank-ui/src/scss/icons/materialdesignicons-4.9.95.min.css create mode 100644 packages/demobank-ui/src/scss/libs/_all.scss create mode 100644 packages/demobank-ui/src/scss/main.scss create mode 100644 packages/demobank-ui/src/scss/pure.scss create mode 100644 packages/demobank-ui/src/style/index.css create mode 100644 packages/demobank-ui/src/template.html create mode 100644 packages/demobank-ui/tests/__mocks__/browserMocks.ts create mode 100644 packages/demobank-ui/tests/__mocks__/fileMocks.ts create mode 100644 packages/demobank-ui/tests/__mocks__/setupTests.ts create mode 100644 packages/demobank-ui/tests/__tests__/homepage.js create mode 100644 packages/demobank-ui/tests/declarations.d.ts create mode 100644 packages/demobank-ui/tsconfig.json create mode 100644 packages/merchant-backend-ui/.gitignore create mode 100644 packages/merchant-backend-ui/.storybook/.babelrc create mode 100644 packages/merchant-backend-ui/.storybook/main.js create mode 100644 packages/merchant-backend-ui/.storybook/preview.js create mode 100644 packages/merchant-backend-ui/README.md create mode 100755 packages/merchant-backend-ui/contrib/po2ts create mode 100644 packages/merchant-backend-ui/copyleft-header.js create mode 100644 packages/merchant-backend-ui/package.json create mode 100644 packages/merchant-backend-ui/render-examples.ts create mode 100644 packages/merchant-backend-ui/rollup.config.js create mode 100644 packages/merchant-backend-ui/src/assets/empty.png create mode 100644 packages/merchant-backend-ui/src/assets/icons/android-chrome-192x192.png create mode 100644 packages/merchant-backend-ui/src/assets/icons/android-chrome-512x512.png create mode 100644 packages/merchant-backend-ui/src/assets/icons/apple-touch-icon.png create mode 100644 packages/merchant-backend-ui/src/assets/icons/favicon-16x16.png create mode 100644 packages/merchant-backend-ui/src/assets/icons/favicon-32x32.png create mode 100644 packages/merchant-backend-ui/src/assets/icons/languageicon.svg create mode 100644 packages/merchant-backend-ui/src/assets/icons/mstile-150x150.png create mode 100644 packages/merchant-backend-ui/src/components/Footer.tsx create mode 100644 packages/merchant-backend-ui/src/components/QR.tsx create mode 100644 packages/merchant-backend-ui/src/context/backend.ts create mode 100644 packages/merchant-backend-ui/src/context/config.ts create mode 100644 packages/merchant-backend-ui/src/context/fetch.ts create mode 100644 packages/merchant-backend-ui/src/context/instance.ts create mode 100644 packages/merchant-backend-ui/src/context/listener.ts create mode 100644 packages/merchant-backend-ui/src/context/translation.ts create mode 100644 packages/merchant-backend-ui/src/css/pure-min.css create mode 100644 packages/merchant-backend-ui/src/css/style.css create mode 100644 packages/merchant-backend-ui/src/custom.d.ts create mode 100644 packages/merchant-backend-ui/src/declaration.d.ts create mode 100644 packages/merchant-backend-ui/src/hooks/async.ts create mode 100644 packages/merchant-backend-ui/src/hooks/backend.ts create mode 100644 packages/merchant-backend-ui/src/hooks/index.ts create mode 100644 packages/merchant-backend-ui/src/hooks/instance.ts create mode 100644 packages/merchant-backend-ui/src/hooks/listener.ts create mode 100644 packages/merchant-backend-ui/src/hooks/notification.ts create mode 100644 packages/merchant-backend-ui/src/hooks/notifications.ts create mode 100644 packages/merchant-backend-ui/src/hooks/order.ts create mode 100644 packages/merchant-backend-ui/src/hooks/product.ts create mode 100644 packages/merchant-backend-ui/src/hooks/tips.ts create mode 100644 packages/merchant-backend-ui/src/hooks/transfer.ts create mode 100644 packages/merchant-backend-ui/src/i18n/de.po create mode 100644 packages/merchant-backend-ui/src/i18n/en.po create mode 100644 packages/merchant-backend-ui/src/i18n/es.po create mode 100644 packages/merchant-backend-ui/src/i18n/fr.po create mode 100644 packages/merchant-backend-ui/src/i18n/index.tsx create mode 100644 packages/merchant-backend-ui/src/i18n/it.po create mode 100644 packages/merchant-backend-ui/src/i18n/poheader create mode 100644 packages/merchant-backend-ui/src/i18n/strings-prelude create mode 100644 packages/merchant-backend-ui/src/i18n/strings.ts create mode 100644 packages/merchant-backend-ui/src/i18n/sv.po create mode 100644 packages/merchant-backend-ui/src/i18n/taler-merchant-backoffice.pot create mode 100644 packages/merchant-backend-ui/src/index.tsx create mode 100644 packages/merchant-backend-ui/src/pages/DepletedTip.stories.tsx create mode 100644 packages/merchant-backend-ui/src/pages/DepletedTip.tsx create mode 100644 packages/merchant-backend-ui/src/pages/OfferRefund.stories.tsx create mode 100644 packages/merchant-backend-ui/src/pages/OfferRefund.tsx create mode 100644 packages/merchant-backend-ui/src/pages/OfferTip.stories.tsx create mode 100644 packages/merchant-backend-ui/src/pages/OfferTip.tsx create mode 100644 packages/merchant-backend-ui/src/pages/RequestPayment.stories.tsx create mode 100644 packages/merchant-backend-ui/src/pages/RequestPayment.tsx create mode 100644 packages/merchant-backend-ui/src/pages/ShowOrderDetails.examples.ts create mode 100644 packages/merchant-backend-ui/src/pages/ShowOrderDetails.stories.tsx create mode 100644 packages/merchant-backend-ui/src/pages/ShowOrderDetails.tsx create mode 100644 packages/merchant-backend-ui/src/styled/index.tsx create mode 100644 packages/merchant-backend-ui/src/utils/amount.ts create mode 100644 packages/merchant-backend-ui/src/utils/constants.ts create mode 100644 packages/merchant-backend-ui/src/utils/table.ts create mode 100644 packages/merchant-backend-ui/src/utils/types.ts create mode 100644 packages/merchant-backend-ui/tests/__mocks__/browserMocks.ts create mode 100644 packages/merchant-backend-ui/tests/__mocks__/fileMocks.ts create mode 100644 packages/merchant-backend-ui/tests/__mocks__/fileTransformer.js create mode 100644 packages/merchant-backend-ui/tests/__mocks__/setupTests.ts create mode 100644 packages/merchant-backend-ui/tests/funcitons/regex.test.ts create mode 100644 packages/merchant-backend-ui/tests/util.ts create mode 100644 packages/merchant-backend-ui/tsconfig.back.json create mode 100644 packages/merchant-backend-ui/tsconfig.json create mode 100644 packages/merchant-backoffice-ui/.gitignore create mode 100644 packages/merchant-backoffice-ui/.storybook/.babelrc create mode 100644 packages/merchant-backoffice-ui/.storybook/main.js create mode 100644 packages/merchant-backoffice-ui/.storybook/preview.js create mode 100755 packages/merchant-backoffice-ui/contrib/po2ts create mode 100644 packages/merchant-backoffice-ui/copyleft-header.js create mode 100644 packages/merchant-backoffice-ui/package.json create mode 100644 packages/merchant-backoffice-ui/preact.config.js create mode 100644 packages/merchant-backoffice-ui/preact.single-config.js create mode 100644 packages/merchant-backoffice-ui/remove-link-stylesheet.sh create mode 100644 packages/merchant-backoffice-ui/src/.babelrc create mode 100644 packages/merchant-backoffice-ui/src/AdminRoutes.tsx create mode 100644 packages/merchant-backoffice-ui/src/ApplicationReadyRoutes.tsx create mode 100644 packages/merchant-backoffice-ui/src/InstanceRoutes.tsx create mode 100644 packages/merchant-backoffice-ui/src/assets/empty.png create mode 100644 packages/merchant-backoffice-ui/src/assets/icons/android-chrome-192x192.png create mode 100644 packages/merchant-backoffice-ui/src/assets/icons/android-chrome-512x512.png create mode 100644 packages/merchant-backoffice-ui/src/assets/icons/apple-touch-icon.png create mode 100644 packages/merchant-backoffice-ui/src/assets/icons/favicon-16x16.png create mode 100644 packages/merchant-backoffice-ui/src/assets/icons/favicon-32x32.png create mode 100644 packages/merchant-backoffice-ui/src/assets/icons/languageicon.svg create mode 100644 packages/merchant-backoffice-ui/src/assets/icons/mstile-150x150.png create mode 100644 packages/merchant-backoffice-ui/src/assets/logo.jpeg create mode 100644 packages/merchant-backoffice-ui/src/components/exception/AsyncButton.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/exception/QR.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/exception/loading.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/exception/login.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/FormProvider.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/Input.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputArray.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputBoolean.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputCurrency.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputDate.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputDuration.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputGroup.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputImage.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputLocation.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputNumber.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputPayto.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputPaytoForm.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputSearchProduct.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputSecured.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputSecured.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputSelector.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputStock.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputStock.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputTaxes.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/InputWithAddon.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/TextField.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/useField.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/form/useGroupField.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/instance/DefaultInstanceFormFields.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/menu/LangSelector.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/menu/NavigationBar.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/menu/SideBar.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/menu/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/modal/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/notifications/CreatedSuccessfully.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/notifications/Notifications.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/notifications/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/picker/DatePicker.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/picker/DurationPicker.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/picker/DurationPicker.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/product/InventoryProductForm.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/product/InventoryProductForm.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/product/NonInventoryProductForm.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/product/ProductForm.tsx create mode 100644 packages/merchant-backoffice-ui/src/components/product/ProductList.tsx create mode 100644 packages/merchant-backoffice-ui/src/context/backend.ts create mode 100644 packages/merchant-backoffice-ui/src/context/config.ts create mode 100644 packages/merchant-backoffice-ui/src/context/fetch.ts create mode 100644 packages/merchant-backoffice-ui/src/context/instance.ts create mode 100644 packages/merchant-backoffice-ui/src/context/listener.ts create mode 100644 packages/merchant-backoffice-ui/src/context/translation.ts create mode 100644 packages/merchant-backoffice-ui/src/custom.d.ts create mode 100644 packages/merchant-backoffice-ui/src/declaration.d.ts create mode 100644 packages/merchant-backoffice-ui/src/hooks/async.ts create mode 100644 packages/merchant-backoffice-ui/src/hooks/backend.ts create mode 100644 packages/merchant-backoffice-ui/src/hooks/index.ts create mode 100644 packages/merchant-backoffice-ui/src/hooks/instance.ts create mode 100644 packages/merchant-backoffice-ui/src/hooks/listener.ts create mode 100644 packages/merchant-backoffice-ui/src/hooks/notifications.ts create mode 100644 packages/merchant-backoffice-ui/src/hooks/order.ts create mode 100644 packages/merchant-backoffice-ui/src/hooks/product.ts create mode 100644 packages/merchant-backoffice-ui/src/hooks/reserves.ts create mode 100644 packages/merchant-backoffice-ui/src/hooks/transfer.ts create mode 100644 packages/merchant-backoffice-ui/src/i18n/de.po create mode 100644 packages/merchant-backoffice-ui/src/i18n/en.po create mode 100644 packages/merchant-backoffice-ui/src/i18n/es.po create mode 100644 packages/merchant-backoffice-ui/src/i18n/fr.po create mode 100644 packages/merchant-backoffice-ui/src/i18n/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/i18n/it.po create mode 100644 packages/merchant-backoffice-ui/src/i18n/poheader create mode 100644 packages/merchant-backoffice-ui/src/i18n/strings-prelude create mode 100644 packages/merchant-backoffice-ui/src/i18n/strings.ts create mode 100644 packages/merchant-backoffice-ui/src/i18n/sv.po create mode 100644 packages/merchant-backoffice-ui/src/i18n/taler-merchant-backoffice.pot create mode 100644 packages/merchant-backoffice-ui/src/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/manifest.json create mode 100644 packages/merchant-backoffice-ui/src/paths/admin/create/Create.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/admin/create/CreatePage.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/admin/create/InstanceCreatedSuccessfully.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/admin/list/TableActive.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/admin/list/View.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/admin/list/View.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/admin/list/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/details/DetailPage.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/details/Details.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/details/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/kyc/list/ListPage.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/kyc/list/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/orders/create/Create.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/orders/create/CreatePage.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/orders/create/OrderCreatedSuccessfully.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/orders/create/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/orders/details/Detail.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/orders/details/DetailPage.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/orders/details/Timeline.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/orders/details/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/orders/list/List.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/orders/list/ListPage.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/orders/list/Table.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/orders/list/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/products/create/Create.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/products/create/CreatePage.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/products/create/CreatedSuccessfully.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/products/create/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/products/list/List.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/products/list/Table.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/products/list/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/products/update/Update.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/products/update/UpdatePage.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/products/update/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/reserves/create/Create.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/reserves/create/CreatePage.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/reserves/create/CreatedSuccessfully.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/reserves/create/CreatedSuccessfully.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/reserves/create/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/reserves/details/DetailPage.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/reserves/details/Details.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/reserves/details/TipInfo.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/reserves/details/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/reserves/list/AutorizeTipModal.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/reserves/list/CreatedSuccessfully.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/reserves/list/List.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/reserves/list/Table.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/reserves/list/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/transfers/create/Create.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/transfers/create/CreatePage.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/transfers/create/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/transfers/list/List.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/transfers/list/ListPage.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/transfers/list/Table.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/transfers/list/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/transfers/update/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/update/Update.stories.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/update/UpdatePage.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/login/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/notfound/index.tsx create mode 100644 packages/merchant-backoffice-ui/src/schemas/index.ts create mode 100644 packages/merchant-backoffice-ui/src/scss/DurationPicker.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_aside.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_card.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_custom-calendar.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_footer.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_form.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_hero-bar.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_loading.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_main-section.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_misc.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_mixins.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_modal.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_nav-bar.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_table.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_theme-default.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_tiles.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/_title-bar.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/fonts/XRXV3I6Li01BKofINeaE.ttf create mode 100644 packages/merchant-backoffice-ui/src/scss/fonts/nunito.css create mode 100644 packages/merchant-backoffice-ui/src/scss/icons/fonts/materialdesignicons-webfont-4.9.95.eot create mode 100644 packages/merchant-backoffice-ui/src/scss/icons/fonts/materialdesignicons-webfont-4.9.95.ttf create mode 100644 packages/merchant-backoffice-ui/src/scss/icons/fonts/materialdesignicons-webfont-4.9.95.woff create mode 100644 packages/merchant-backoffice-ui/src/scss/icons/fonts/materialdesignicons-webfont-4.9.95.woff2 create mode 100644 packages/merchant-backoffice-ui/src/scss/icons/materialdesignicons-4.9.95.min.css create mode 100644 packages/merchant-backoffice-ui/src/scss/libs/_all.scss create mode 100644 packages/merchant-backoffice-ui/src/scss/main.scss create mode 100644 packages/merchant-backoffice-ui/src/sw.js create mode 100644 packages/merchant-backoffice-ui/src/template.html create mode 100644 packages/merchant-backoffice-ui/src/utils/amount.ts create mode 100644 packages/merchant-backoffice-ui/src/utils/constants.ts create mode 100644 packages/merchant-backoffice-ui/src/utils/switchableAxios.ts create mode 100644 packages/merchant-backoffice-ui/src/utils/table.ts create mode 100644 packages/merchant-backoffice-ui/src/utils/types.ts create mode 100644 packages/merchant-backoffice-ui/tests/__mocks__/browserMocks.ts create mode 100644 packages/merchant-backoffice-ui/tests/__mocks__/fileMocks.ts create mode 100644 packages/merchant-backoffice-ui/tests/__mocks__/fileTransformer.js create mode 100644 packages/merchant-backoffice-ui/tests/__mocks__/setupTests.ts create mode 100644 packages/merchant-backoffice-ui/tests/axiosMock.ts create mode 100644 packages/merchant-backoffice-ui/tests/context/backend.test.tsx create mode 100644 packages/merchant-backoffice-ui/tests/declarations.d.ts create mode 100644 packages/merchant-backoffice-ui/tests/functions/regex.test.ts create mode 100644 packages/merchant-backoffice-ui/tests/header.test.tsx create mode 100644 packages/merchant-backoffice-ui/tests/hooks/async.test.ts create mode 100644 packages/merchant-backoffice-ui/tests/hooks/listener.test.ts create mode 100644 packages/merchant-backoffice-ui/tests/hooks/notification.test.ts create mode 100644 packages/merchant-backoffice-ui/tests/hooks/swr/index.tsx create mode 100644 packages/merchant-backoffice-ui/tests/hooks/swr/instance.test.ts create mode 100644 packages/merchant-backoffice-ui/tests/hooks/swr/order.test.ts create mode 100644 packages/merchant-backoffice-ui/tests/hooks/swr/product.test.ts create mode 100644 packages/merchant-backoffice-ui/tests/hooks/swr/reserve.test.ts create mode 100644 packages/merchant-backoffice-ui/tests/hooks/swr/transfer.test.ts create mode 100644 packages/merchant-backoffice-ui/tests/stories.test.tsx create mode 100644 packages/merchant-backoffice-ui/tsconfig.json diff --git a/packages/demobank-ui/.gitignore b/packages/demobank-ui/.gitignore new file mode 100644 index 000000000..32d0a5057 --- /dev/null +++ b/packages/demobank-ui/.gitignore @@ -0,0 +1,5 @@ +node_modules +/build +/*.log +/size-plugin.json +/storybook-static/ diff --git a/packages/demobank-ui/.storybook/.babelrc b/packages/demobank-ui/.storybook/.babelrc new file mode 100644 index 000000000..610b6f339 --- /dev/null +++ b/packages/demobank-ui/.storybook/.babelrc @@ -0,0 +1,25 @@ +/* + This file is part of GNU Taler + (C) 2021 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see + */ + + /** + * + * @author Sebastian Javier Marchano (sebasjm) + */ +{ + "presets": [ + "preact-cli/babel" + ] +} \ No newline at end of file diff --git a/packages/demobank-ui/.storybook/main.js b/packages/demobank-ui/.storybook/main.js new file mode 100644 index 000000000..f8e4bbcc7 --- /dev/null +++ b/packages/demobank-ui/.storybook/main.js @@ -0,0 +1,57 @@ +/* + This file is part of GNU Taler + (C) 2021 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see + */ + +/** +* +* @author Sebastian Javier Marchano (sebasjm) +*/ + + +module.exports = { + "stories": [ + "../src/**/*.stories.mdx", + "../src/**/*.stories.@(js|jsx|ts|tsx)" + ], + "addons": [ + "@storybook/preset-scss", + "@storybook/addon-a11y", + "@storybook/addon-essentials" //docs, control, actions, viewpot, toolbar, background + ], + // sb does not yet support new jsx transform by default + // https://github.com/storybookjs/storybook/issues/12881 + // https://github.com/storybookjs/storybook/issues/12952 + babel: async (options) => ({ + ...options, + presets: [ + ...options.presets, + [ + '@babel/preset-react', { + runtime: 'automatic', + }, + 'preset-react-jsx-transform' + ], + ], + }), + webpackFinal: (config) => { + // should be removed after storybook 6.3 + // https://github.com/storybookjs/storybook/issues/12853#issuecomment-821576113 + config.resolve.alias = { + react: "preact/compat", + "react-dom": "preact/compat", + }; + return config; + }, +} \ No newline at end of file diff --git a/packages/demobank-ui/.storybook/preview.js b/packages/demobank-ui/.storybook/preview.js new file mode 100644 index 000000000..9ab4d9404 --- /dev/null +++ b/packages/demobank-ui/.storybook/preview.js @@ -0,0 +1,55 @@ +/* + This file is part of GNU Taler + (C) 2021 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see + */ + +import "../src/scss/main.scss" +import { TranslationProvider } from '../src/context/translation' +import { h } from 'preact'; + + +export const parameters = { + controls: { expanded: true }, + options: { + storySort: (a, b) => { + return (a[1].args.order ?? 0) - (b[1].args.order ?? 0) + // return a[1].kind === b[1].kind ? 0 : a[1].id.localeCompare(b[1].id, undefined, { numeric: true }) + } + }, +} + +export const globalTypes = { + locale: { + name: 'Locale', + description: 'Internationalization locale', + defaultValue: 'en', + toolbar: { + icon: 'globe', + items: [ + { value: 'en', right: 'πŸ‡ΊπŸ‡Έ', title: 'English' }, + { value: 'es', right: 'πŸ‡ͺπŸ‡Έ', title: 'Spanish' }, + ], + }, + }, +}; + +export const decorators = [ + (Story, { globals }) => { + document.body.parentElement.classList = "has-aside-left has-aside-mobile-transition has-navbar-fixed-top has-aside-expanded" + return + }, + (Story, { globals }) => + + , +]; diff --git a/packages/demobank-ui/README.md b/packages/demobank-ui/README.md new file mode 100644 index 000000000..c014929ce --- /dev/null +++ b/packages/demobank-ui/README.md @@ -0,0 +1,19 @@ +# bank web + +## CLI Commands + +- `npm install`: Installs dependencies + +- `npm run dev`: Run a development, HMR server + +- `npm run serve`: Run a production-like server + +- `npm run build`: Production-ready build + +- `npm run lint`: Pass TypeScript files using ESLint + +- `npm run test`: Run Jest and Enzyme with + [`enzyme-adapter-preact-pure`](https://github.com/preactjs/enzyme-adapter-preact-pure) for + your tests + +For detailed explanation on how things work, checkout the [CLI Readme](https://github.com/developit/preact-cli/blob/master/README.md). diff --git a/packages/demobank-ui/TODO b/packages/demobank-ui/TODO new file mode 100644 index 000000000..a399ada58 --- /dev/null +++ b/packages/demobank-ui/TODO @@ -0,0 +1,45 @@ +Urgent TODOs: + +- General: + * not only Nora dark-theme, but default light! (CSS) + * auto-focus on input fields is not working well + * buttons should be visibly insensitive + as long as required input fields are not + working + * next required invalid/missing input field is + not properly highlighted in red + * Logout button needs more padding to the right (CSS) + +- Error bar: + * shows JSON, should only show good error message + and numeric code, not JSON syntax + * should auto-hide after next action, no need for + "clear"! + * need variant "status bar" in green (or blue) + which shows status of last operation + +* H1-Titles: + * Center more (currently way on the left) (CSS) + +- Assets: + * Numeric amount needs to be shown MUCH bigger (CSS) + * Center more? (CSS) + +- Payments: + * Amount to withdraw currently shown in white-on-white (CSS) + * Big frame drawn around notebook-tabs is not nice (CSS) + * Center more? (CSS) + * "Wire to bank account" + - maybe split two types (payto and IBAN) into + two tabs? + - currently cannot switch back from payto to IBAN + +- Withdraw: + * Should use new 'status' bar at the end, instead + of extra dialog with "close" button + * ditto for bank-wire-transfer final stage + +- Footer: + * overlaps with transaction history or other + content, needs to consistently show at the + end! => change rendering logic!? (CSS?) diff --git a/packages/demobank-ui/build-bank-translations.sh b/packages/demobank-ui/build-bank-translations.sh new file mode 100755 index 000000000..85c8ad0c1 --- /dev/null +++ b/packages/demobank-ui/build-bank-translations.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +set -eu + +# NOTE: the node somehow didn't get +# the strings extracted. Only i18n`` did + +function build { + POTGEN=node_modules/@gnu-taler/pogen/bin/pogen + PACKAGE_NAME=$1 + + find src/ \( -type f -name "*.ts" -or -name "*.tsx" \) ! -name "*.d.ts" \ + | xargs node $POTGEN \ + | msguniq \ + | msgmerge src/i18n/poheader - \ + > src/i18n/$PACKAGE_NAME.pot + + # merge existing translations: fails when NO .po-files were found. + for pofile in $(ls src/i18n/*.po 2> /dev/null || true); do + echo merging $pofile; + msgmerge -o $pofile $pofile src/i18n/$PACKAGE_NAME.pot; + done; + + # generate .ts file containing all translations + cat src/i18n/strings-prelude > src/i18n/strings.ts + for pofile in $(ls src/i18n/*.po 2> /dev/null || true); do \ + echo appending $pofile; \ + ./contrib/po2ts $pofile >> src/i18n/strings.ts; \ + done; +} + +build bank diff --git a/packages/demobank-ui/contrib/po2ts b/packages/demobank-ui/contrib/po2ts new file mode 100755 index 000000000..a135da61b --- /dev/null +++ b/packages/demobank-ui/contrib/po2ts @@ -0,0 +1,42 @@ +#!/usr/bin/env node +/* + This file is part of GNU Taler + (C) 2020 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see + */ + +/** + * Convert a .po file into a JavaScript / TypeScript expression. + */ + +const po2json = require("po2json"); + +const filename = process.argv[2]; + +if (!filename) { + console.error("error: missing filename"); + process.exit(1); +} + +const m = filename.match(/([a-zA-Z0-9-_]+).po/); + +if (!m) { + console.error("error: unexpected filename (expected .po)"); + process.exit(1); +} + +const lang = m[1]; +const pojson = po2json.parseFileSync(filename, { format: "jed1.x", fuzzy: true }); +const s = + "strings['" + lang + "'] = " + JSON.stringify(pojson, null, " ") + ";\n"; +console.log(s); diff --git a/packages/demobank-ui/mocks/json-server/db.json b/packages/demobank-ui/mocks/json-server/db.json new file mode 100644 index 000000000..44d3ccab2 --- /dev/null +++ b/packages/demobank-ui/mocks/json-server/db.json @@ -0,0 +1,4 @@ +{ + "register": {}, + "transactions": {} +} diff --git a/packages/demobank-ui/mocks/window.js b/packages/demobank-ui/mocks/window.js new file mode 100644 index 000000000..f396ff9e3 --- /dev/null +++ b/packages/demobank-ui/mocks/window.js @@ -0,0 +1,27 @@ +Object.defineProperty(window, 'requestAnimationFrame', { + value: function(cb) {} // Silence the browser. +}) + +Object.defineProperty(window, 'localStorage', { + value: { + store: {}, + getItem: function(key) { + return this.store[key]; + }, + setItem: function(key, value) { + return this.store[key] = value; + }, + clear: function() { + this.store = {}; + } + } +}); +Object.defineProperty(window, 'location', { + value: { + origin: "http://localhost:8080", /* where taler-local rev proxy listens to */ + search: "", + pathname: "/sandbox/demobanks/default", + } +}) + +export default window; diff --git a/packages/demobank-ui/package.json b/packages/demobank-ui/package.json new file mode 100644 index 000000000..bd686365b --- /dev/null +++ b/packages/demobank-ui/package.json @@ -0,0 +1,100 @@ +{ + "private": true, + "name": "bank", + "version": "0.1.0", + "license": "AGPL-3.0-OR-LATER", + "scripts": { + "dev": "preact watch --port ${PORT:=9090} --no-sw --no-esm -c preact.mock.js", + "build": "preact build --no-sw --no-esm -c preact.single-config.js --dest build && sh remove-link-stylesheet.sh", + "serve": "sirv build --port ${PORT:=8080} --cors --single", + "lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'", + "test": "jest ./tests", + "build-storybook": "build-storybook", + "serve-single": "sirv single --port ${PORT:=8080} --cors --single", + "pretty": "prettier --write src", + "storybook": "start-storybook -p 6006" + }, + "eslintConfig": { + "parser": "@typescript-eslint/parser", + "extends": [ + "preact", + "plugin:@typescript-eslint/recommended" + ], + "ignorePatterns": [ + "build/" + ], + "rules": { + "@typescript-eslint/no-explicit-any": [0], + "@typescript-eslint/ban-ts-comment": [1], + "quotes": [2, "single", {"allowTemplateLiterals": true,"avoidEscape": false}], + "indent": [2,2], + "prefer-arrow-callback": [2, {"allowNamedFunctions": false, "allowUnboundThis": true}], + "curly": [2,"multi"], + "prefer-template": [1] + } + }, + "dependencies": { + "base64-inline-loader": "1.1.1", + "date-fns": "2.25.0", + "jed": "1.1.1", + "preact": "^10.5.15", + "preact-render-to-string": "^5.1.19", + "preact-router": "^3.2.1", + "qrcode-generator": "^1.4.4", + "swr": "1.1" + }, + "devDependencies": { + "@babel/core": "^7.13.16", + "@babel/plugin-transform-react-jsx": "^7.12.13", + "@babel/plugin-transform-react-jsx-source": "^7.12.13", + "@babel/preset-env": "^7.16.7", + "@creativebulma/bulma-tooltip": "^1.2.0", + "@gnu-taler/pogen": "^0.0.5", + "@storybook/addon-a11y": "6.2.9", + "@storybook/addon-actions": "6.2.9", + "@storybook/addon-essentials": "6.2.9", + "@storybook/addon-links": "6.2.9", + "@storybook/preact": "6.2.9", + "@storybook/preset-scss": "^1.0.3", + "@testing-library/jest-dom": "^5.16.1", + "@testing-library/preact": "^2.0.1", + "@testing-library/preact-hooks": "^1.1.0", + "@types/enzyme": "^3.10.10", + "@types/jest": "^27.0.2", + "@typescript-eslint/eslint-plugin": "^5.3.0", + "@typescript-eslint/parser": "^5.3.0", + "babel-loader": "^8.2.2", + "base64-inline-loader": "^1.1.1", + "bulma": "^0.9.3", + "bulma-checkbox": "^1.1.1", + "bulma-radio": "^1.1.1", + "enzyme": "^3.11.0", + "enzyme-adapter-preact-pure": "^3.2.0", + "eslint": "^8.1.0", + "eslint-config-preact": "^1.2.0", + "html-webpack-inline-chunk-plugin": "^1.1.1", + "html-webpack-inline-source-plugin": "0.0.10", + "html-webpack-skip-assets-plugin": "^1.0.1", + "inline-chunk-html-plugin": "^1.1.1", + "jest": "^27.3.1", + "jest-fetch-mock": "^3.0.3", + "jest-preset-preact": "^4.0.5", + "jest-watch-typeahead": "^1.0.0", + "jest-environment-jsdom": "^27.4.6", + "jssha": "^3.2.0", + "po2json": "^0.4.5", + "preact-cli": "3.0.5", + "sass": "1.32.13", + "sass-loader": "^10", + "script-ext-html-webpack-plugin": "^2.1.5", + "sirv-cli": "^1.0.14", + "typescript": "^4.4.4" + }, + "jest": { + "preset": "jest-preset-preact", + "setupFiles": [ + "/tests/__mocks__/browserMocks.ts", + "/tests/__mocks__/setupTests.ts" + ] + } +} diff --git a/packages/demobank-ui/preact.config.js b/packages/demobank-ui/preact.config.js new file mode 100644 index 000000000..8e640f3ff --- /dev/null +++ b/packages/demobank-ui/preact.config.js @@ -0,0 +1,70 @@ +/* + This file is part of GNU Taler + (C) 2021 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see + */ + +/** +* +* @author Sebastian Javier Marchano (sebasjm) +*/ + +import { DefinePlugin } from 'webpack'; + +import pack from './package.json'; +import * as cp from 'child_process'; + +const commitHash = cp.execSync('git rev-parse --short HEAD').toString(); + +export default { + webpack(config, env, helpers) { + // ensure that process.env will not be undefined on runtime + config.node.process = 'mock' + + // add __VERSION__ to be use in the html + config.plugins.push( + new DefinePlugin({ + 'process.env.__VERSION__': JSON.stringify(env.isProd ? pack.version : `dev-${commitHash}`) , + }), + ); + + // suddenly getting out of memory error from build process, error below [1] + // FIXME: remove preact-cli, use rollup + let { index } = helpers.getPluginsByName(config, 'WebpackFixStyleOnlyEntriesPlugin')[0] + config.plugins.splice(index, 1) + } +} + + + +/* [1] from this error decided to remove plugin 'webpack-fix-style-only-entries + leaving this error for future reference + + +<--- Last few GCs ---> + +[32479:0x2e01870] 19969 ms: Mark-sweep 1869.4 (1950.2) -> 1443.1 (1504.1) MB, 497.5 / 0.0 ms (average mu = 0.631, current mu = 0.455) allocation failure scavenge might not succeed +[32479:0x2e01870] 21907 ms: Mark-sweep 2016.9 (2077.9) -> 1628.6 (1681.4) MB, 1596.0 / 0.0 ms (average mu = 0.354, current mu = 0.176) allocation failure scavenge might not succeed + +<--- JS stacktrace ---> + +==== JS stack trace ========================================= + + 0: ExitFrame [pc: 0x13cf099] +Security context: 0x2f4ca66c08d1 + 1: /* anonymous * / [0x35d05555b4b9] [...path/merchant-backoffice/node_modules/.pnpm/webpack-fix-style-only-entries@0.5.2/node_modules/webpack-fix-style-only-entries/index.js:~80] [pc=0x2145e699d1a4](this=0x1149465410e9 ,0x047e52e36a49 ) + 2: arguments adaptor frame: 3... + +FATAL ERROR: invalid array length Allocation failed - JavaScript heap out of memory + +*/ \ No newline at end of file diff --git a/packages/demobank-ui/preact.mock.js b/packages/demobank-ui/preact.mock.js new file mode 100644 index 000000000..dc3ceb66d --- /dev/null +++ b/packages/demobank-ui/preact.mock.js @@ -0,0 +1,55 @@ +/* + This file is part of GNU Taler + (C) 2021 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see + */ + +/** +* +* @author Sebastian Javier Marchano (sebasjm) +*/ + +import { DefinePlugin, ProvidePlugin } from 'webpack'; + +import pack from './package.json'; +import * as cp from 'child_process'; + +const commitHash = cp.execSync('git rev-parse --short HEAD').toString(); +import path from 'path'; + +export default { + webpack(config, env, helpers) { + // Ensure that process.env will not be undefined at runtime. + config.node.process = 'mock' + let DEMO_SITES = { + "Blog": process.env.TALER_ENV_URL_MERCHANT_BLOG, + "Donations": process.env.TALER_ENV_URL_MERCHANT_DONATIONS, + "Survey": process.env.TALER_ENV_URL_MERCHANT_SURVEY, + "Landing": process.env.TALER_ENV_URL_INTRO, + "Bank": process.env.TALER_ENV_URL_BANK, + } + console.log("demo links found", DEMO_SITES); + // Add __VERSION__ to be use in the html. + config.plugins.push( + new DefinePlugin({ + 'process.env.__VERSION__': JSON.stringify(env.isProd ? pack.version : `dev-${commitHash}`) , + }), + // 'window' gets mocked to point at a running euFin instance. + new ProvidePlugin({window: path.resolve("mocks/window")}), + new DefinePlugin({"DEMO_SITES": JSON.stringify(DEMO_SITES)}) + ); + + let { index } = helpers.getPluginsByName(config, 'WebpackFixStyleOnlyEntriesPlugin')[0] + config.plugins.splice(index, 1) + } +} diff --git a/packages/demobank-ui/preact.single-config.js b/packages/demobank-ui/preact.single-config.js new file mode 100644 index 000000000..0fb6f1d0e --- /dev/null +++ b/packages/demobank-ui/preact.single-config.js @@ -0,0 +1,60 @@ +/* + This file is part of GNU Taler + (C) 2021 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see + */ + +/** +* +* @author Sebastian Javier Marchano (sebasjm) +*/ + +import defaultConfig from './preact.config' + +export default { + webpack(config, env, helpers, options) { + defaultConfig.webpack(config, env, helpers, options) + + //1. check no file is under /routers or /component/{routers,async} to prevent async components + // https://github.com/preactjs/preact-cli#route-based-code-splitting + + //2. remove devtools to prevent sourcemaps + config.devtool = false + + //3. change assetLoader to load assets inline + const loaders = helpers.getLoaders(config) + const assetsLoader = loaders.find(lo => lo.rule.test.test('something.woff')) + if (assetsLoader) { + assetsLoader.rule.use = 'base64-inline-loader' + assetsLoader.rule.loader = undefined + } + + //4. remove critters + //critters remove the css bundle from htmlWebpackPlugin.files.css + //for now, pushing all the content into the html is enough + const crittersWrapper = helpers.getPluginsByName(config, 'Critters') + if (crittersWrapper && crittersWrapper.length > 0) { + const [{ index }] = crittersWrapper + config.plugins.splice(index, 1) + } + + //5. remove favicon from src/assets + + //6. remove performance hints since we now that this is going to be big + if (config.performance) { + config.performance.hints = false + } + + //7. template.html should have a favicon and add js/css content + } +} diff --git a/packages/demobank-ui/remove-link-stylesheet.sh b/packages/demobank-ui/remove-link-stylesheet.sh new file mode 100755 index 000000000..d3376b8e6 --- /dev/null +++ b/packages/demobank-ui/remove-link-stylesheet.sh @@ -0,0 +1,8 @@ +# This script has been placed in the public domain. + +FILE=$(ls build/bundle.*.css) +BUNDLE=${FILE#build} +grep -q '' build/index.html || { echo bundle $BUNDLE not found in index.html; exit 1; } +echo -n Removing link from index.html ... +sed 's___' -i build/index.html +echo done diff --git a/packages/demobank-ui/src/.babelrc b/packages/demobank-ui/src/.babelrc new file mode 100644 index 000000000..05f4dcc81 --- /dev/null +++ b/packages/demobank-ui/src/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["preact-cli/babel"] +} diff --git a/packages/demobank-ui/src/assets/empty.png b/packages/demobank-ui/src/assets/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..5120d3138f63109a3433e6eec6059e5e8494d032 GIT binary patch literal 2785 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≪s@k}TW46IbXy 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 whgOdBTE2$oU71~M;RGT?lm(aGaY)746f(^u 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 L*@70@IO%@@@GF}s literal 0 HcmV?d00001 diff --git a/packages/demobank-ui/src/assets/icons/android-chrome-192x192.png b/packages/demobank-ui/src/assets/icons/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..93ebe2e2c41a9dbc51e5fa28dcff81a0763c8182 GIT binary patch literal 14058 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 literal 0 HcmV?d00001 diff --git a/packages/demobank-ui/src/assets/icons/android-chrome-512x512.png b/packages/demobank-ui/src/assets/icons/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..52d1623ea1055fc5a445f52e092a137eac991752 GIT binary patch literal 51484 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 z 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 literal 0 HcmV?d00001 diff --git a/packages/demobank-ui/src/assets/icons/apple-touch-icon.png b/packages/demobank-ui/src/assets/icons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..254e4bb4d1453913205848bb8665e8a4e657fda2 GIT binary patch literal 12746 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 QyZ`_I07*qoM6N<$f?hVVRsaA1 literal 0 HcmV?d00001 diff --git a/packages/demobank-ui/src/assets/icons/auth_method/email.svg b/packages/demobank-ui/src/assets/icons/auth_method/email.svg new file mode 100644 index 000000000..3e44b8779 --- /dev/null +++ b/packages/demobank-ui/src/assets/icons/auth_method/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/demobank-ui/src/assets/icons/auth_method/postal.svg b/packages/demobank-ui/src/assets/icons/auth_method/postal.svg new file mode 100644 index 000000000..3787b8350 --- /dev/null +++ b/packages/demobank-ui/src/assets/icons/auth_method/postal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/demobank-ui/src/assets/icons/auth_method/question.svg b/packages/demobank-ui/src/assets/icons/auth_method/question.svg new file mode 100644 index 000000000..a346556b2 --- /dev/null +++ b/packages/demobank-ui/src/assets/icons/auth_method/question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/demobank-ui/src/assets/icons/auth_method/sms.svg b/packages/demobank-ui/src/assets/icons/auth_method/sms.svg new file mode 100644 index 000000000..ed15679bf --- /dev/null +++ b/packages/demobank-ui/src/assets/icons/auth_method/sms.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/demobank-ui/src/assets/icons/auth_method/video.svg b/packages/demobank-ui/src/assets/icons/auth_method/video.svg new file mode 100644 index 000000000..69de5e0b4 --- /dev/null +++ b/packages/demobank-ui/src/assets/icons/auth_method/video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/demobank-ui/src/assets/icons/favicon-16x16.png b/packages/demobank-ui/src/assets/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..e81177dcb42bbb8647dfa014af2ab2c348fb922c GIT binary patch literal 626 zcmV-&0*(ENP)EE)ealpkDTL^A3a?K0^M4NQDR5C{#?R-L zy3>bO2~?0-OL^%v^!9lion7LNm=x(exZuwv0poJ4nTU|;FHZ!M*Y|A7h_9sTiY5*4 zJ-%kqvm-%tc%iKFU&QXYpR5HtiEfEJ7{yoG*8%P9$lzd8#ET>>Kp8^bdO+}@~TI5*NrlPj7LX<|(D#~HOwrEJ2c%>S}LQGq0(}rqO zSg;^bR-{B178I$aKwA|ntE=40p;nf=3J7l(rZbbRLVdd|LORKpef$1@X1hQ_U~FI=1=)BG$N4s>7>EXLBVb%$8|uJtAEk{|&ZFfjavq9` zdIU@m^wEB~p=)3J!p55DDe@L;3`hB@Axf^cl7zbD1Npf?i_UT59E5fhW9&5Mtqbt& zC)eQX*sJjIn*~-8!7OMae6r?BI**d8WVk8Wq5+eWgorXI%exCb4+r2;cR&1+(*$v$ zCFp>hSSEp4P^?>!D0?<~KlL))&?U{BqlP^}mqC?M3+*kvFf=p>Mx&82I5-IUyFHM7 ztO|Ap7V*(+^D~!)ysmI>rT+-$Tf8!CDSBxIHN?JM2x*6JLPKR2h@ugOV33^}3`T|# zpYa{9)!yuYqysl#hyO*=l_as%H%H;?8fp79{eCJpT&R;u`9VzW&END;uk8eNdL5|K z>fqONP0(1?4dQ@-(Nx_HC8}n~$Mp-RbWHSG(OhE@!Lq$mo*TTU~C9rRO zF+6B`1e($oNZeTt#W_tBJ?Rj6OBqm3nKa#AK(WQ$DLb+qAe;2!!aSSQs2fiUk(1^E_8B7L(Dm?1!ErReF5$r%?~|6>D`=H7*@ z#7Y8wmd)_EPvo^)O$QWZVG$C6c#YX2+_WeyPWV?gdu0UUOVJX6ydUv1{IeZ8Tl+wF zr;7QR#LEn2+#h}_ZCp$wY@Xl3xbW4Fh+4$G&6K*$inY4x5{(=Hl@;< zbn`Fi1f#C!jEzglmhhZnH`Q^b%hFjp)(0;NvxN zYzPw|_LJiRP>D9^yu>0yQ4j(2g+$L7u&=O pPcIq589`27V(>G+lkuK0$UkCMb2;4yo2>u<002ovPDHLkV1lQ+#m@i$ literal 0 HcmV?d00001 diff --git a/packages/demobank-ui/src/assets/icons/languageicon.svg b/packages/demobank-ui/src/assets/icons/languageicon.svg new file mode 100644 index 000000000..22d58da65 --- /dev/null +++ b/packages/demobank-ui/src/assets/icons/languageicon.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/demobank-ui/src/assets/icons/mstile-150x150.png b/packages/demobank-ui/src/assets/icons/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..9cfb889bec2fb13f29a7e1a8cb1c4281ad19a32a GIT binary patch literal 9050 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 literal 0 HcmV?d00001 diff --git a/packages/demobank-ui/src/assets/logo-white.svg b/packages/demobank-ui/src/assets/logo-white.svg new file mode 100644 index 000000000..cb1f023c5 --- /dev/null +++ b/packages/demobank-ui/src/assets/logo-white.svg @@ -0,0 +1,45 @@ + + + + diff --git a/packages/demobank-ui/src/assets/logo.jpeg b/packages/demobank-ui/src/assets/logo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..489832f7c0b0df0389a80bb2596705646c2af3c6 GIT binary patch literal 39336 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 + */ + +/** + * + * @author Sebastian Javier Marchano (sebasjm) + */ + +import { ComponentChildren, h, VNode } from 'preact'; +import { useLayoutEffect, useRef } from 'preact/hooks'; +// import { LoadingModal } from "../modal"; +import { useAsync } from '../hooks/async'; +// import { Translate } from "../../i18n"; + +type Props = { + children: ComponentChildren; + disabled?: boolean; + onClick?: () => Promise; + grabFocus?: boolean; + [rest: string]: any; +}; + +export function AsyncButton({ + onClick, + grabFocus, + disabled, + children, + ...rest +}: Props): VNode { + const { isLoading, request } = useAsync(onClick); + + const buttonRef = useRef(null); + useLayoutEffect(() => { + if (grabFocus) + buttonRef.current?.focus(); + + }, [grabFocus]); + + // if (isSlow) { + // return ; + // } + if (isLoading) + return ; + + + return ( + + + + ); +} diff --git a/packages/demobank-ui/src/components/FileButton.tsx b/packages/demobank-ui/src/components/FileButton.tsx new file mode 100644 index 000000000..dba86ccbf --- /dev/null +++ b/packages/demobank-ui/src/components/FileButton.tsx @@ -0,0 +1,57 @@ +import { h, VNode } from 'preact'; +import { useRef, useState } from 'preact/hooks'; + +const MAX_IMAGE_UPLOAD_SIZE = 1024 * 1024; + +export interface FileTypeContent { + content: string; + type: string; + name: string; +} + +interface Props { + label: string; + onChange: (v: FileTypeContent | undefined) => void; +} +export function FileButton(props: Props): VNode { + const fileInputRef = useRef(null); + const [sizeError, setSizeError] = useState(false); + return ( +

    + ); +} diff --git a/packages/demobank-ui/src/components/Notifications.tsx b/packages/demobank-ui/src/components/Notifications.tsx new file mode 100644 index 000000000..09329442a --- /dev/null +++ b/packages/demobank-ui/src/components/Notifications.tsx @@ -0,0 +1,74 @@ +/* + This file is part of GNU Taler + (C) 2021 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see + */ + +/** + * + * @author Sebastian Javier Marchano (sebasjm) + */ + +import { h, VNode } from 'preact'; + +export interface Notification { + message: string; + description?: string | VNode; + type: MessageType; +} + +export type MessageType = 'INFO' | 'WARN' | 'ERROR' | 'SUCCESS'; + +interface Props { + notifications: Notification[]; + removeNotification?: (n: Notification) => void; +} + +function messageStyle(type: MessageType): string { + switch (type) { + case 'INFO': + return 'message is-info'; + case 'WARN': + return 'message is-warning'; + case 'ERROR': + return 'message is-danger'; + case 'SUCCESS': + return 'message is-success'; + default: + return 'message'; + } +} + +export function Notifications({ + notifications, + removeNotification, +}: Props): VNode { + return ( +
    + {notifications.map((n, i) => ( +
    +
    +

    {n.message}

    + {removeNotification && ( +
    + {n.description &&
    {n.description}
    } +
    + ))} +
    + ); +} diff --git a/packages/demobank-ui/src/components/QR.tsx b/packages/demobank-ui/src/components/QR.tsx new file mode 100644 index 000000000..ee5b73c69 --- /dev/null +++ b/packages/demobank-ui/src/components/QR.tsx @@ -0,0 +1,48 @@ +/* + This file is part of GNU Taler + (C) 2021 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see + */ + +import { h, VNode } from 'preact'; +import { useEffect, useRef } from 'preact/hooks'; +import qrcode from 'qrcode-generator'; + +export function QR({ text }: { text: string }): VNode { + const divRef = useRef(null); + useEffect(() => { + const qr = qrcode(0, 'L'); + qr.addData(text); + qr.make(); + if (divRef.current) + divRef.current.innerHTML = qr.createSvgTag({ + scalable: true, + }); + }); + + return ( +
    +
    +
    + ); +} diff --git a/packages/demobank-ui/src/components/app.tsx b/packages/demobank-ui/src/components/app.tsx new file mode 100644 index 000000000..5338c548e --- /dev/null +++ b/packages/demobank-ui/src/components/app.tsx @@ -0,0 +1,14 @@ +import { FunctionalComponent, h } from 'preact'; +import { TranslationProvider } from '../context/translation'; +import { BankHome } from '../pages/home/index'; +import { Menu } from './menu'; + +const App: FunctionalComponent = () => { + return ( + + + + ); +}; + +export default App; diff --git a/packages/demobank-ui/src/components/fields/DateInput.tsx b/packages/demobank-ui/src/components/fields/DateInput.tsx new file mode 100644 index 000000000..06ec4b6a7 --- /dev/null +++ b/packages/demobank-ui/src/components/fields/DateInput.tsx @@ -0,0 +1,90 @@ +import { format, subYears } from 'date-fns'; +import { h, VNode } from 'preact'; +import { useLayoutEffect, useRef, useState } from 'preact/hooks'; +import { DatePicker } from '../picker/DatePicker'; + +export interface DateInputProps { + label: string; + grabFocus?: boolean; + tooltip?: string; + error?: string; + years?: Array; + onConfirm?: () => void; + bind: [string, (x: string) => void]; +} + +export function DateInput(props: DateInputProps): VNode { + const inputRef = useRef(null); + useLayoutEffect(() => { + if (props.grabFocus) + inputRef.current?.focus(); + + }, [props.grabFocus]); + const [opened, setOpened] = useState(false); + + const value = props.bind[0] || ''; + const [dirty, setDirty] = useState(false); + const showError = dirty && props.error; + + const calendar = subYears(new Date(), 30); + + return ( +
    + ); +} diff --git a/packages/demobank-ui/src/components/fields/EmailInput.tsx b/packages/demobank-ui/src/components/fields/EmailInput.tsx new file mode 100644 index 000000000..8b64264ed --- /dev/null +++ b/packages/demobank-ui/src/components/fields/EmailInput.tsx @@ -0,0 +1,57 @@ +import { h, VNode } from 'preact'; +import { useLayoutEffect, useRef, useState } from 'preact/hooks'; + +export interface TextInputProps { + label: string; + grabFocus?: boolean; + error?: string; + placeholder?: string; + tooltip?: string; + onConfirm?: () => void; + bind: [string, (x: string) => void]; +} + +export function EmailInput(props: TextInputProps): VNode { + const inputRef = useRef(null); + useLayoutEffect(() => { + if (props.grabFocus) + inputRef.current?.focus(); + + }, [props.grabFocus]); + const value = props.bind[0]; + const [dirty, setDirty] = useState(false); + const showError = dirty && props.error; + return ( +
    + +
    + { + if (e.key === 'Enter' && props.onConfirm) + props.onConfirm() + + }} + onInput={(e) => { + setDirty(true); + props.bind[1]((e.target as HTMLInputElement).value); + }} + ref={inputRef} + style={{ display: 'block' }} + /> +
    + {showError &&

    {props.error}

    } +
    + ); +} diff --git a/packages/demobank-ui/src/components/fields/FileInput.tsx b/packages/demobank-ui/src/components/fields/FileInput.tsx new file mode 100644 index 000000000..17413b907 --- /dev/null +++ b/packages/demobank-ui/src/components/fields/FileInput.tsx @@ -0,0 +1,104 @@ +/* + This file is part of GNU Taler + (C) 2021 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see + */ + +/** + * + * @author Sebastian Javier Marchano (sebasjm) + */ +import { h, VNode } from 'preact'; +import { useLayoutEffect, useRef, useState } from 'preact/hooks'; + +const MAX_IMAGE_UPLOAD_SIZE = 1024 * 1024; + +export interface FileTypeContent { + content: string; + type: string; + name: string; +} + +export interface FileInputProps { + label: string; + grabFocus?: boolean; + disabled?: boolean; + error?: string; + placeholder?: string; + tooltip?: string; + onChange: (v: FileTypeContent | undefined) => void; +} + +export function FileInput(props: FileInputProps): VNode { + const inputRef = useRef(null); + useLayoutEffect(() => { + if (props.grabFocus) + inputRef.current?.focus(); + + }, [props.grabFocus]); + + const fileInputRef = useRef(null); + const [sizeError, setSizeError] = useState(false); + return ( +
    + +
    + { + const f: FileList | null = e.currentTarget.files; + if (!f || f.length != 1) + return props.onChange(undefined); + + console.log(f) + if (f[0].size > MAX_IMAGE_UPLOAD_SIZE) { + setSizeError(true); + return props.onChange(undefined); + } + setSizeError(false); + return f[0].arrayBuffer().then((b) => { + const b64 = btoa( + new Uint8Array(b).reduce( + (data, byte) => data + String.fromCharCode(byte), + '', + ), + ); + return props.onChange({content: `data:${f[0].type};base64,${b64}`, name: f[0].name, type: f[0].type}); + }); + }} + /> + {props.error &&

    {props.error}

    } + {sizeError && ( +

    File should be smaller than 1 MB

    + )} +
    +
    + ); +} diff --git a/packages/demobank-ui/src/components/fields/ImageInput.tsx b/packages/demobank-ui/src/components/fields/ImageInput.tsx new file mode 100644 index 000000000..98457af21 --- /dev/null +++ b/packages/demobank-ui/src/components/fields/ImageInput.tsx @@ -0,0 +1,93 @@ +/* + This file is part of GNU Taler + (C) 2021 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see + */ + +/** + * + * @author Sebastian Javier Marchano (sebasjm) + */ +import { h, VNode } from 'preact'; +import { useLayoutEffect, useRef, useState } from 'preact/hooks'; +import emptyImage from '../../assets/empty.png'; +import { TextInputProps } from './TextInput'; + +const MAX_IMAGE_UPLOAD_SIZE = 1024 * 1024; + +export function ImageInput(props: TextInputProps): VNode { + const inputRef = useRef(null); + useLayoutEffect(() => { + if (props.grabFocus) + inputRef.current?.focus(); + + }, [props.grabFocus]); + + const value = props.bind[0]; + // const [dirty, setDirty] = useState(false) + const image = useRef(null); + const [sizeError, setSizeError] = useState(false); + function onChange(v: string): void { + // setDirty(true); + props.bind[1](v); + } + return ( +
    + +
    + image.current?.click()} + /> + { + const f: FileList | null = e.currentTarget.files; + if (!f || f.length != 1) + return onChange(emptyImage); + + if (f[0].size > MAX_IMAGE_UPLOAD_SIZE) { + setSizeError(true); + return onChange(emptyImage); + } + setSizeError(false); + return f[0].arrayBuffer().then((b) => { + const b64 = btoa( + new Uint8Array(b).reduce( + (data, byte) => data + String.fromCharCode(byte), + '', + ), + ); + return onChange(`data:${f[0].type};base64,${b64}` as any); + }); + }} + /> + {props.error &&

    {props.error}

    } + {sizeError && ( +

    Image should be smaller than 1 MB

    + )} +
    +
    + ); +} diff --git a/packages/demobank-ui/src/components/fields/NumberInput.tsx b/packages/demobank-ui/src/components/fields/NumberInput.tsx new file mode 100644 index 000000000..881c61c57 --- /dev/null +++ b/packages/demobank-ui/src/components/fields/NumberInput.tsx @@ -0,0 +1,56 @@ +import { h, VNode } from 'preact'; +import { useLayoutEffect, useRef, useState } from 'preact/hooks'; + +export interface TextInputProps { + label: string; + grabFocus?: boolean; + error?: string; + placeholder?: string; + tooltip?: string; + onConfirm?: () => void; + bind: [string, (x: string) => void]; +} + +export function PhoneNumberInput(props: TextInputProps): VNode { + const inputRef = useRef(null); + useLayoutEffect(() => { + if (props.grabFocus) + inputRef.current?.focus(); + + }, [props.grabFocus]); + const value = props.bind[0]; + const [dirty, setDirty] = useState(false); + const showError = dirty && props.error; + return ( +
    + +
    + { + if (e.key === 'Enter' && props.onConfirm) + props.onConfirm() + + }} + onInput={(e) => { + setDirty(true); + props.bind[1]((e.target as HTMLInputElement).value); + }} + ref={inputRef} + style={{ display: 'block' }} + /> +
    + {showError &&

    {props.error}

    } +
    + ); +} diff --git a/packages/demobank-ui/src/components/fields/TextInput.tsx b/packages/demobank-ui/src/components/fields/TextInput.tsx new file mode 100644 index 000000000..5cc9f32ad --- /dev/null +++ b/packages/demobank-ui/src/components/fields/TextInput.tsx @@ -0,0 +1,68 @@ +import { h, VNode } from 'preact'; +import { useLayoutEffect, useRef, useState } from 'preact/hooks'; + +export interface TextInputProps { + inputType?: 'text' | 'number' | 'multiline' | 'password'; + label: string; + grabFocus?: boolean; + disabled?: boolean; + error?: string; + placeholder?: string; + tooltip?: string; + onConfirm?: () => void; + bind: [string, (x: string) => void]; +} + +const TextInputType = function ({ inputType, grabFocus, ...rest }: any): VNode { + const inputRef = useRef(null); + useLayoutEffect(() => { + if (grabFocus) + inputRef.current?.focus(); + + }, [grabFocus]); + + return inputType === 'multiline' ? ( +