Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(chore) export openmrsComponentDecorator #1193

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

(chore) export openmrsComponentDecorator #1193

wants to merge 1 commit into from

Conversation

chibongho
Copy link
Contributor

Requirements

  • This PR has a title that briefly describes the work done including the ticket number. Ensure your PR title includes a conventional commit label (such as feat, fix, or chore, among others). See existing PR titles for inspiration.

For changes to apps

If applicable

  • My work includes tests or is validated by existing tests.
  • I have updated the esm-framework mock to reflect any API changes I have made.

Summary

Screenshots

Related Issue

Other

Copy link
Member

@mogoodrich mogoodrich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Defer to others, but looks straightforward to expose this!

Copy link
Contributor

Size Change: -39.2 kB (-0.64%)

Total Size: 6.12 MB

Filename Size Change
packages/shell/esm-app-shell/dist/openmrs.46d0e2603de4d98a.js 0 B -21.7 kB (removed) 🏆
ℹ️ View Unchanged
Filename Size Change
packages/apps/esm-devtools-app/dist/593.js 149 kB 0 B
packages/apps/esm-devtools-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-devtools-app/dist/657.js 7.02 kB 0 B
packages/apps/esm-devtools-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-devtools-app/dist/762.js 4.1 kB 0 B
packages/apps/esm-devtools-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-devtools-app/dist/875.js 11.6 kB 0 B
packages/apps/esm-devtools-app/dist/889.js 372 kB 0 B
packages/apps/esm-devtools-app/dist/988.js 326 B 0 B
packages/apps/esm-devtools-app/dist/main.js 3.23 kB 0 B
packages/apps/esm-devtools-app/dist/openmrs-esm-devtools-app.js 3.28 kB 0 B
packages/apps/esm-help-menu-app/dist/167.js 1.07 kB 0 B
packages/apps/esm-help-menu-app/dist/248.js 9.89 kB 0 B
packages/apps/esm-help-menu-app/dist/611.js 2.45 kB 0 B
packages/apps/esm-help-menu-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-help-menu-app/dist/657.js 7.02 kB 0 B
packages/apps/esm-help-menu-app/dist/662.js 147 kB 0 B
packages/apps/esm-help-menu-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-help-menu-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-help-menu-app/dist/889.js 372 kB 0 B
packages/apps/esm-help-menu-app/dist/958.js 3.74 kB 0 B
packages/apps/esm-help-menu-app/dist/main.js 8.56 kB 0 B
packages/apps/esm-help-menu-app/dist/openmrs-esm-help-menu-app.js 3.23 kB 0 B
packages/apps/esm-implementer-tools-app/dist/152.js 585 B 0 B
packages/apps/esm-implementer-tools-app/dist/236.js 583 B 0 B
packages/apps/esm-implementer-tools-app/dist/240.js 584 B 0 B
packages/apps/esm-implementer-tools-app/dist/261.js 585 B 0 B
packages/apps/esm-implementer-tools-app/dist/271.js 744 B 0 B
packages/apps/esm-implementer-tools-app/dist/272.js 584 B 0 B
packages/apps/esm-implementer-tools-app/dist/289.js 14.2 kB 0 B
packages/apps/esm-implementer-tools-app/dist/319.js 675 B 0 B
packages/apps/esm-implementer-tools-app/dist/336.js 137 kB 0 B
packages/apps/esm-implementer-tools-app/dist/36.js 2.49 kB 0 B
packages/apps/esm-implementer-tools-app/dist/378.js 687 B 0 B
packages/apps/esm-implementer-tools-app/dist/426.js 27.8 kB 0 B
packages/apps/esm-implementer-tools-app/dist/441.js 4.38 kB 0 B
packages/apps/esm-implementer-tools-app/dist/448.js 4.66 kB 0 B
packages/apps/esm-implementer-tools-app/dist/460.js 775 B 0 B
packages/apps/esm-implementer-tools-app/dist/491.js 134 kB 0 B
packages/apps/esm-implementer-tools-app/dist/539.js 583 B 0 B
packages/apps/esm-implementer-tools-app/dist/574.js 584 B 0 B
packages/apps/esm-implementer-tools-app/dist/587.js 2.93 kB 0 B
packages/apps/esm-implementer-tools-app/dist/625.js 585 B 0 B
packages/apps/esm-implementer-tools-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-implementer-tools-app/dist/644.js 739 B 0 B
packages/apps/esm-implementer-tools-app/dist/657.js 7.03 kB 0 B
packages/apps/esm-implementer-tools-app/dist/667.js 121 kB 0 B
packages/apps/esm-implementer-tools-app/dist/673.js 584 B 0 B
packages/apps/esm-implementer-tools-app/dist/705.js 585 B 0 B
packages/apps/esm-implementer-tools-app/dist/711.js 584 B 0 B
packages/apps/esm-implementer-tools-app/dist/727.js 584 B 0 B
packages/apps/esm-implementer-tools-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-implementer-tools-app/dist/737.js 584 B 0 B
packages/apps/esm-implementer-tools-app/dist/744.js 710 B 0 B
packages/apps/esm-implementer-tools-app/dist/757.js 692 B 0 B
packages/apps/esm-implementer-tools-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-implementer-tools-app/dist/807.js 583 B 0 B
packages/apps/esm-implementer-tools-app/dist/833.js 714 B 0 B
packages/apps/esm-implementer-tools-app/dist/845.js 6.43 kB 0 B
packages/apps/esm-implementer-tools-app/dist/859.js 3.09 kB 0 B
packages/apps/esm-implementer-tools-app/dist/873.js 3.67 kB 0 B
packages/apps/esm-implementer-tools-app/dist/889.js 372 kB 0 B
packages/apps/esm-implementer-tools-app/dist/899.js 581 B 0 B
packages/apps/esm-implementer-tools-app/dist/main.js 21 kB 0 B
packages/apps/esm-implementer-tools-app/dist/openmrs-esm-implementer-tools-app.js 3.4 kB 0 B
packages/apps/esm-login-app/dist/202.js 2.57 kB 0 B
packages/apps/esm-login-app/dist/236.js 724 B 0 B
packages/apps/esm-login-app/dist/240.js 805 B 0 B
packages/apps/esm-login-app/dist/261.js 702 B 0 B
packages/apps/esm-login-app/dist/271.js 888 B 0 B
packages/apps/esm-login-app/dist/272.js 711 B 0 B
packages/apps/esm-login-app/dist/319.js 816 B 0 B
packages/apps/esm-login-app/dist/336.js 785 B 0 B
packages/apps/esm-login-app/dist/378.js 833 B 0 B
packages/apps/esm-login-app/dist/415.js 26.7 kB 0 B
packages/apps/esm-login-app/dist/460.js 883 B 0 B
packages/apps/esm-login-app/dist/539.js 732 B 0 B
packages/apps/esm-login-app/dist/574.js 701 B 0 B
packages/apps/esm-login-app/dist/593.js 149 kB 0 B
packages/apps/esm-login-app/dist/625.js 702 B 0 B
packages/apps/esm-login-app/dist/63.js 16.5 kB 0 B
packages/apps/esm-login-app/dist/638.js 31.2 kB 0 B
packages/apps/esm-login-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-login-app/dist/644.js 888 B 0 B
packages/apps/esm-login-app/dist/657.js 7.02 kB 0 B
packages/apps/esm-login-app/dist/673.js 741 B 0 B
packages/apps/esm-login-app/dist/676.js 2.23 kB 0 B
packages/apps/esm-login-app/dist/7.js 3.03 kB 0 B
packages/apps/esm-login-app/dist/705.js 702 B 0 B
packages/apps/esm-login-app/dist/711.js 701 B 0 B
packages/apps/esm-login-app/dist/727.js 701 B 0 B
packages/apps/esm-login-app/dist/735.js 2.62 kB 0 B
packages/apps/esm-login-app/dist/737.js 701 B 0 B
packages/apps/esm-login-app/dist/744.js 970 B 0 B
packages/apps/esm-login-app/dist/755.js 3.36 kB 0 B
packages/apps/esm-login-app/dist/757.js 861 B 0 B
packages/apps/esm-login-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-login-app/dist/807.js 1.01 kB 0 B
packages/apps/esm-login-app/dist/833.js 835 B 0 B
packages/apps/esm-login-app/dist/859.js 3.08 kB 0 B
packages/apps/esm-login-app/dist/889.js 372 kB 0 B
packages/apps/esm-login-app/dist/899.js 698 B 0 B
packages/apps/esm-login-app/dist/93.js 2.04 kB 0 B
packages/apps/esm-login-app/dist/main.js 59.4 kB 0 B
packages/apps/esm-login-app/dist/openmrs-esm-login-app.js 3.46 kB 0 B
packages/apps/esm-offline-tools-app/dist/236.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/240.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/261.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/271.js 1.19 kB 0 B
packages/apps/esm-offline-tools-app/dist/272.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/319.js 1.13 kB 0 B
packages/apps/esm-offline-tools-app/dist/336.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/378.js 1.17 kB 0 B
packages/apps/esm-offline-tools-app/dist/460.js 1.3 kB 0 B
packages/apps/esm-offline-tools-app/dist/539.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/574.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/601.js 142 kB 0 B
packages/apps/esm-offline-tools-app/dist/625.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/63.js 16.5 kB 0 B
packages/apps/esm-offline-tools-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-offline-tools-app/dist/644.js 1.19 kB 0 B
packages/apps/esm-offline-tools-app/dist/645.js 91.5 kB 0 B
packages/apps/esm-offline-tools-app/dist/657.js 7.02 kB 0 B
packages/apps/esm-offline-tools-app/dist/673.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/703.js 6.32 kB 0 B
packages/apps/esm-offline-tools-app/dist/705.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/711.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/727.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-offline-tools-app/dist/737.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/744.js 1.28 kB 0 B
packages/apps/esm-offline-tools-app/dist/757.js 1.19 kB 0 B
packages/apps/esm-offline-tools-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-offline-tools-app/dist/807.js 1.1 kB 0 B
packages/apps/esm-offline-tools-app/dist/833.js 1.21 kB 0 B
packages/apps/esm-offline-tools-app/dist/859.js 3.09 kB 0 B
packages/apps/esm-offline-tools-app/dist/889.js 372 kB 0 B
packages/apps/esm-offline-tools-app/dist/899.js 1.02 kB 0 B
packages/apps/esm-offline-tools-app/dist/947.js 8.66 kB 0 B
packages/apps/esm-offline-tools-app/dist/main.js 107 kB 0 B
packages/apps/esm-offline-tools-app/dist/openmrs-esm-offline-tools-app.js 3.39 kB 0 B
packages/apps/esm-primary-navigation-app/dist/236.js 230 B 0 B
packages/apps/esm-primary-navigation-app/dist/240.js 231 B 0 B
packages/apps/esm-primary-navigation-app/dist/261.js 231 B 0 B
packages/apps/esm-primary-navigation-app/dist/271.js 270 B 0 B
packages/apps/esm-primary-navigation-app/dist/272.js 231 B 0 B
packages/apps/esm-primary-navigation-app/dist/319.js 232 B 0 B
packages/apps/esm-primary-navigation-app/dist/336.js 231 B 0 B
packages/apps/esm-primary-navigation-app/dist/378.js 248 B 0 B
packages/apps/esm-primary-navigation-app/dist/460.js 266 B 0 B
packages/apps/esm-primary-navigation-app/dist/482.js 15.2 kB 0 B
packages/apps/esm-primary-navigation-app/dist/513.js 146 kB 0 B
packages/apps/esm-primary-navigation-app/dist/539.js 230 B 0 B
packages/apps/esm-primary-navigation-app/dist/574.js 231 B 0 B
packages/apps/esm-primary-navigation-app/dist/577.js 7.64 kB 0 B
packages/apps/esm-primary-navigation-app/dist/619.js 6.45 kB 0 B
packages/apps/esm-primary-navigation-app/dist/625.js 231 B 0 B
packages/apps/esm-primary-navigation-app/dist/63.js 16.5 kB 0 B
packages/apps/esm-primary-navigation-app/dist/644.js 270 B 0 B
packages/apps/esm-primary-navigation-app/dist/657.js 7.03 kB 0 B
packages/apps/esm-primary-navigation-app/dist/673.js 231 B 0 B
packages/apps/esm-primary-navigation-app/dist/705.js 231 B 0 B
packages/apps/esm-primary-navigation-app/dist/711.js 231 B 0 B
packages/apps/esm-primary-navigation-app/dist/727.js 231 B 0 B
packages/apps/esm-primary-navigation-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-primary-navigation-app/dist/737.js 230 B 0 B
packages/apps/esm-primary-navigation-app/dist/744.js 278 B 0 B
packages/apps/esm-primary-navigation-app/dist/757.js 237 B 0 B
packages/apps/esm-primary-navigation-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-primary-navigation-app/dist/807.js 291 B 0 B
packages/apps/esm-primary-navigation-app/dist/833.js 258 B 0 B
packages/apps/esm-primary-navigation-app/dist/888.js 24.6 kB 0 B
packages/apps/esm-primary-navigation-app/dist/889.js 372 kB 0 B
packages/apps/esm-primary-navigation-app/dist/899.js 228 B 0 B
packages/apps/esm-primary-navigation-app/dist/933.js 3.63 kB 0 B
packages/apps/esm-primary-navigation-app/dist/main.js 30.1 kB 0 B
packages/apps/esm-primary-navigation-app/dist/openmrs-esm-primary-navigation-app.js 3.38 kB 0 B
packages/framework/esm-api/dist/openmrs-esm-api.js 16.8 kB 0 B
packages/framework/esm-config/dist/openmrs-esm-module-config.js 8.41 kB 0 B
packages/framework/esm-context/dist/openmrs-esm-context.js 1.16 kB 0 B
packages/framework/esm-dynamic-loading/dist/openmrs-esm-dynamic-loading.js 2.89 kB 0 B
packages/framework/esm-error-handling/dist/openmrs-esm-error-handling.js 891 B 0 B
packages/framework/esm-expression-evaluator/dist/openmrs-esm-expression-evaluator.js 8.98 kB 0 B
packages/framework/esm-extensions/dist/openmrs-esm-extensions.js 25.3 kB 0 B
packages/framework/esm-feature-flags/dist/openmrs-esm-feature-flags.js 1.66 kB 0 B
packages/framework/esm-framework/dist/278.openmrs-esm-framework.js 14.5 kB 0 B
packages/framework/esm-framework/dist/530.openmrs-esm-framework.js 2.93 kB 0 B
packages/framework/esm-framework/dist/588.openmrs-esm-framework.js 2.15 kB 0 B
packages/framework/esm-framework/dist/619.openmrs-esm-framework.js 6.49 kB 0 B
packages/framework/esm-framework/dist/645.openmrs-esm-framework.js 9.3 kB 0 B
packages/framework/esm-framework/dist/735.openmrs-esm-framework.js 2.65 kB 0 B
packages/framework/esm-framework/dist/746.openmrs-esm-framework.js 6.14 kB 0 B
packages/framework/esm-framework/dist/788.openmrs-esm-framework.js 42.9 kB 0 B
packages/framework/esm-framework/dist/openmrs-esm-framework.js 456 kB +27 B (+0.01%)
packages/framework/esm-globals/dist/openmrs-esm-globals.js 791 B 0 B
packages/framework/esm-navigation/dist/openmrs-esm-navigation.js 9.34 kB 0 B
packages/framework/esm-offline/dist/openmrs-esm-offline.js 34.4 kB 0 B
packages/framework/esm-react-utils/dist/openmrs-esm-react-utils.js 21.9 kB 0 B
packages/framework/esm-routes/dist/openmrs-esm-utils.js 4.67 kB 0 B
packages/framework/esm-state/dist/openmrs-esm-state.js 1.59 kB 0 B
packages/framework/esm-styleguide/dist/openmrs-esm-styleguide.js 192 kB 0 B
packages/framework/esm-translations/dist/openmrs-esm-core-translations.js 1.88 kB 0 B
packages/framework/esm-utils/dist/openmrs-esm-utils.js 45.5 kB 0 B
packages/shell/esm-app-shell/dist/02af6181aebfc3a3.js 172 kB 0 B
packages/shell/esm-app-shell/dist/0a2998dc20d2f16e.js 1 kB 0 B
packages/shell/esm-app-shell/dist/1ddd13fb6bce4eec.js 999 B 0 B
packages/shell/esm-app-shell/dist/22f1ae6333aaf130.js 1 kB 0 B
packages/shell/esm-app-shell/dist/231649da4e7051df.js 0 B -3.77 kB (removed) 🏆
packages/shell/esm-app-shell/dist/2d603d974bbe1cd2.js 1 kB 0 B
packages/shell/esm-app-shell/dist/3139812feb62e1bc.js 0 B -6.97 kB (removed) 🏆
packages/shell/esm-app-shell/dist/38d4b8fb75f8850c.js 18.3 kB 0 B
packages/shell/esm-app-shell/dist/3a0a521ae2bc0aa2.js 7 kB 0 B
packages/shell/esm-app-shell/dist/3b01402cd7292844.js 2.85 kB 0 B
packages/shell/esm-app-shell/dist/4487ab6d4de230fb.js 1.02 kB 0 B
packages/shell/esm-app-shell/dist/4c87dd6c38beff17.js 1.29 kB 0 B
packages/shell/esm-app-shell/dist/53b3aae4515d0766.js 5.87 kB 0 B
packages/shell/esm-app-shell/dist/572e81f004cc10c5.js 15.1 kB 0 B
packages/shell/esm-app-shell/dist/591c7ae1d1802a08.js 1.29 kB 0 B
packages/shell/esm-app-shell/dist/62a41f41cd81ca3d.js 999 B 0 B
packages/shell/esm-app-shell/dist/6f47008d9c93c1cb.js 3.33 kB 0 B
packages/shell/esm-app-shell/dist/71ab27e0b8d1949e.js 2.58 kB 0 B
packages/shell/esm-app-shell/dist/73d8d02522816d9b.js 64 kB 0 B
packages/shell/esm-app-shell/dist/77f861964c303654.js 1 kB 0 B
packages/shell/esm-app-shell/dist/7b204450699b0daf.js 2.6 kB 0 B
packages/shell/esm-app-shell/dist/7e0f8ed3cf80f0c9.js 1 kB 0 B
packages/shell/esm-app-shell/dist/8401908d89dfddc9.js 999 B 0 B
packages/shell/esm-app-shell/dist/863caa19678eb01d.js 1.27 kB 0 B
packages/shell/esm-app-shell/dist/8e0d11f862dfbba6.js 626 B 0 B
packages/shell/esm-app-shell/dist/8edec91e406a4eaf.js 1.59 kB 0 B
packages/shell/esm-app-shell/dist/91b55dee51c34a39.js 1 kB 0 B
packages/shell/esm-app-shell/dist/932785417ef383b8.js 6.99 kB 0 B
packages/shell/esm-app-shell/dist/9ee9680edb91f5bc.js 1.18 kB 0 B
packages/shell/esm-app-shell/dist/a05840be5ec988e7.js 0 B -1 kB (removed) 🏆
packages/shell/esm-app-shell/dist/a32a622a7625e9ff.js 1 kB 0 B
packages/shell/esm-app-shell/dist/a6585adaa43c3fae.js 0 B -5.87 kB (removed) 🏆
packages/shell/esm-app-shell/dist/a7792d6252d85b20.js 43 kB 0 B
packages/shell/esm-app-shell/dist/a7efa2596cd2be4f.js 168 kB 0 B
packages/shell/esm-app-shell/dist/b407f548b6fadfa3.js 3.08 kB 0 B
packages/shell/esm-app-shell/dist/b586ec19d4d04d1d.js 999 B 0 B
packages/shell/esm-app-shell/dist/b6ecf8cbb6d23053.js 3.79 kB 0 B
packages/shell/esm-app-shell/dist/b87a5878f8961d1a.js 2.23 kB 0 B
packages/shell/esm-app-shell/dist/b88532bde74b513a.js 9.41 kB 0 B
packages/shell/esm-app-shell/dist/bb04bb60f8aa150f.js 3.04 kB 0 B
packages/shell/esm-app-shell/dist/be41a66f3474f39a.js 41.5 kB 0 B
packages/shell/esm-app-shell/dist/bf2915da457ede35.js 1.04 kB 0 B
packages/shell/esm-app-shell/dist/bfcb9bae63b830fd.js 999 B 0 B
packages/shell/esm-app-shell/dist/c9b8e8b4931f9d94.js 1.33 kB 0 B
packages/shell/esm-app-shell/dist/cc0d293bb9b870d9.js 3.38 kB 0 B
packages/shell/esm-app-shell/dist/d3a90e50edb54206.js 1 kB 0 B
packages/shell/esm-app-shell/dist/d80464c66e5d20d7.js 3.23 kB 0 B
packages/shell/esm-app-shell/dist/e09b68a48d3b87dd.js 1 kB 0 B
packages/shell/esm-app-shell/dist/e35b4911483ef256.js 1.18 kB 0 B
packages/shell/esm-app-shell/dist/e419a658f4742c3e.js 9.36 kB 0 B
packages/shell/esm-app-shell/dist/f5c65190072bb3f7.js 626 B 0 B
packages/shell/esm-app-shell/dist/f6d2b6a9a46387dd.js 999 B 0 B
packages/shell/esm-app-shell/dist/fcb385df17a82210.js 6.77 kB 0 B
packages/shell/esm-app-shell/dist/openmrs.7879844fc85b1de9.js 21.7 kB 0 B
packages/shell/esm-app-shell/dist/service-worker.js 46.6 kB +6 B (+0.01%)
packages/tooling/openmrs/dist/cli.js 2.96 kB 0 B
packages/tooling/openmrs/dist/commands/assemble.js 3.31 kB 0 B
packages/tooling/openmrs/dist/commands/build.js 1.34 kB 0 B
packages/tooling/openmrs/dist/commands/debug.js 543 B 0 B
packages/tooling/openmrs/dist/commands/develop.js 2.71 kB 0 B
packages/tooling/openmrs/dist/commands/index.js 437 B 0 B
packages/tooling/openmrs/dist/commands/start.js 850 B 0 B
packages/tooling/openmrs/dist/index.js 517 B 0 B
packages/tooling/openmrs/dist/runner.js 640 B 0 B
packages/tooling/openmrs/dist/utils/config.js 726 B 0 B
packages/tooling/openmrs/dist/utils/debugger.js 575 B 0 B
packages/tooling/openmrs/dist/utils/dependencies.js 643 B 0 B
packages/tooling/openmrs/dist/utils/helpers.js 397 B 0 B
packages/tooling/openmrs/dist/utils/importmap.js 3.07 kB 0 B
packages/tooling/openmrs/dist/utils/index.js 443 B 0 B
packages/tooling/openmrs/dist/utils/logger.js 368 B 0 B
packages/tooling/openmrs/dist/utils/npmConfig.js 831 B 0 B
packages/tooling/openmrs/dist/utils/untar.js 725 B 0 B
packages/tooling/openmrs/dist/utils/variables.js 192 B 0 B
packages/tooling/openmrs/dist/utils/webpack.js 278 B 0 B
packages/tooling/webpack-config/dist/index.js 3.61 kB 0 B

compressed-size-action

@ibacher
Copy link
Member

ibacher commented Nov 1, 2024

Can you say more about the motivation here? I'm not terribly keen on having the component decorator become part of the public API, as it limits our ability to make changes to what is mostly an internal implementation detail.

@chibongho
Copy link
Contributor Author

Yeah, this can be a somewhat dangerous change.

In this (PR), different sub-components of the patient banner is moved to in style guide. I think the idea is that we can mix and match these components into different looking patient cards in the search results workspace if desired, and eliminate the need of patient-banner-slot. We have been mostly using extensions for this kind of thing (and thus avoiding the need for openmrsComponnetDecorator), but I think there is limitation to that in scenarios where we only want a custom patient card for a specific app.

Not implemented in that PR, but I think the next step would be to have the patient search workspace accept a custom PatientCardComponent as a prop. So something like this:

launchWorkspace('patient-search', {
  PatientCardComponent={MyPatientCard} // optional prop
})

function MyPatientCard(prop: DefaultPatientCardProps) {
  return (
    <div>
      <PatientInfo />
      <PatientIdentifier />
      <PatientActions />
    </div>
  )
}

For this to work, any sub-components included in MyPatientCard needs to be wrapped in a openrmsComponentDecorator in order to have proper translations and configurations.

(This approach also avoids the pattern of rendering N extensions for N patient cards in a loop, something we had difficulty with in the ward app.)

Besides search results, I also have another use case of needing to show a patient header at the top of the clinical form workspace. In the patient chart, there is no ambiguity on which patient we opened the workspace for. But in the ward app (where we can click on any ward patient to open their workspace), we need to display a patient header. (The ward app also has its own app-specific patient header different from the regular one)

@chibongho
Copy link
Contributor Author

@ibacher and others, interested in your thoughts / concerns about this, especially on:

  • the proposed way to allow for custom patient cards in my previous comment's example
  • whether openrmsComponentDecorator is the right API to expose to enable this.

@ibacher
Copy link
Member

ibacher commented Nov 5, 2024

If we're just exporting components from the styleguide, there's no reason to make this a public export. We can just use the component decorator directly in the styleguide (things inside the framework are allowed to import from the framework internals / non-public APIs; other code can, but we don't support it long-term). That is, I think, my preferred solution here.

@chibongho
Copy link
Contributor Author

I think we also want to use components defined outside of styleguide though, and they require the decorator or something similar to wrap the elements. In the MyPatientCard example above, it can include components that are defined in an app outside of styleguide.

@ibacher
Copy link
Member

ibacher commented Nov 22, 2024

Sorry... I think I dropped the ball on this. Anyways, if we do need to export the openmrsComponentDecorator, then we need to add doc strings to it explaining how it is meant to be used. Nothing should exist in the public API with documentation like that.

@chibongho
Copy link
Contributor Author

Sure. I originally meant to use the function as a proof of concept. If there is no objection to the proposed use cases (to pass configurable / translatable components across different ESMs), I can improve on it.

TBH, while the openmrsComponentDecorator() function gets the job done, it doesn't feel intuitive to use. We really just need it to wrap a component in react contexts for SWR and translation. I think exposing the wrapper component would be simpler. So we can use it like this:

<OpenmrsReactComponent> {# this provides the context for SWRConfig and I18nextProvider #}
  {children}
</OpenmrsReactComponent>

@ibacher
Copy link
Member

ibacher commented Nov 25, 2024

TBH, while the openmrsComponentDecorator() function gets the job done, it doesn't feel intuitive to use.

While that's true, I like the idea of exposing the OpenmrsReactComponent (as it currently exists) even less. While that makes the React code more straight-forward than the component decorator, there's no way of doing that without exposing some unnecessary internal structures (_extensionContext). We could maybe come up with a "public" version and an "internal" version to alleviate that issue? We'd have to think about how that's structured though...

The other issue is that OpenmrsReactComponent is a higher-order component (that is, it's a component that wraps an arbitrary component, so I'm not sure there's a pattern that would get us the syntax you suggested, at least without doing some kind of nasty hack to continue support passing any props to the underlying component. (On my mind since I've just re-written that bit to be this:

let component: ReactElement<T>;
if (isValidElement<T>(Comp)) {
  Comp.props = { ...this.props };
  component = Comp;
} else {
  component = createElement<T>(Comp, { ...this.props });
}

and I'm trying to find a different way; with direct children, that becomes even messier).

@chibongho
Copy link
Contributor Author

Yeah... I was looking into it just now and realized the higher order component is harder to refactor that I thought. I'll let it be for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants