swisspost / design-system

The Swiss Post Design System pattern library for a consistent and accessible user experience across the web platform.
https://design-system.post.ch
Apache License 2.0
121 stars 14 forks source link

[request]: Image viewer component #3501

Open gfellerph opened 2 months ago

gfellerph commented 2 months ago

Is your feature request related to a problem? Please describe it. In our application we provide a way to display mailpiece images. Pictures are taken from an external service and displayed in a new page.

We would like to rebuild those pages, thus we need a new image viewer. I do not see such a component in the DS, is there a plan to provide this component or is there an official one?

Describe the solution you'd like As functionalities there are: image rotation left/right, zoom in/out, save and print. I'm not sure that all are required, save and print could be removed and a user could use those from browser.

Describe alternatives you've considered Some kind of official library, is there a suggestion (for Angular)?

Additional context

image
syjer commented 2 months ago

hi @gfellerph , in MYSB we had the same issue, we used https://openseadragon.github.io/ with some custom codes.

You can check in our repository /projects/MYSB/repos/mysb-web/browse/src/app/tracking/search-detail/image-view-modal/image-view-modal.component.ts (on bitbucket).

To be noted, the save functionality is actually used by the customers, as often the user want to save the rotated and zoomed image, not the original one.

As the one that implemented the original html5 canvas based image viewer (true story), it's a good time to dump the old code ;D.

gfellerph commented 2 months ago

@syjer thanks for chiming in. Do you have additional requirements for the image viewer component from your side?

syjer commented 1 month ago

@gfellerph , additional requirements: not really. The only unconventional thing we are doing is loading the image through a blob: uri.

gfellerph commented 1 month ago

@syjer, this issue was just discussed in an internal Design System meeting. With the current resource situation on our side, we'll move this item to the backlog, but with a low priority. It would be nice to have such a component in the System, but since there are alternatives available, other topics take a higher priority.

If you need that component and want to share it with other projects, there's always the possibility to contribute to the Design System. If you would like to do that for this issue, please get in contact with one of the @swisspost/design-system-maintainers to plan the implementation.