geoiq-frontend-ui-kit 2.0.4 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/atoms/accordion/accordion.d.ts +2 -1
- package/dist/components/atoms/accordion/accordion.d.ts.map +1 -1
- package/dist/components/atoms/avatar/avatar.d.ts +2 -1
- package/dist/components/atoms/avatar/avatar.d.ts.map +1 -1
- package/dist/components/atoms/badge/badge.d.ts +2 -2
- package/dist/components/atoms/badge/badge.d.ts.map +1 -1
- package/dist/components/atoms/skeleton/skeleton.d.ts +1 -1
- package/dist/components/atoms/skeleton/skeleton.d.ts.map +1 -1
- package/dist/components/atoms/tooltip/tooltip.d.ts +2 -2
- package/dist/components/atoms/tooltip/tooltip.d.ts.map +1 -1
- package/dist/components/molecules/announcement-bar/announcement-bar.d.ts +5 -0
- package/dist/components/molecules/announcement-bar/announcement-bar.d.ts.map +1 -0
- package/dist/components/molecules/announcement-bar/announcement-bar.styles.d.ts +8 -0
- package/dist/components/molecules/announcement-bar/announcement-bar.styles.d.ts.map +1 -0
- package/dist/components/molecules/announcement-bar/announcement-bar.types.d.ts +15 -0
- package/dist/components/molecules/announcement-bar/announcement-bar.types.d.ts.map +1 -0
- package/dist/components/molecules/announcement-bar/index.d.ts +3 -0
- package/dist/components/molecules/announcement-bar/index.d.ts.map +1 -0
- package/dist/components/molecules/breadcrumb/breadcrumb-components.d.ts +2 -2
- package/dist/components/molecules/breadcrumb/breadcrumb.d.ts +2 -1
- package/dist/components/molecules/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/dist/components/molecules/creatable-multi-combobox/creatable-multi-combobox.d.ts +2 -1
- package/dist/components/molecules/creatable-multi-combobox/creatable-multi-combobox.d.ts.map +1 -1
- package/dist/components/molecules/dropdown-menu/dropdown-menu-components.d.ts +1 -1
- package/dist/components/molecules/dropdown-menu/dropdown-menu.d.ts +2 -1
- package/dist/components/molecules/dropdown-menu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/molecules/multi-combobox/index.d.ts +2 -2
- package/dist/components/molecules/multi-combobox/index.d.ts.map +1 -1
- package/dist/components/molecules/multi-select/index.d.ts +2 -2
- package/dist/components/molecules/multi-select/index.d.ts.map +1 -1
- package/dist/components/molecules/pagination/pagination-components.d.ts +4 -4
- package/dist/components/molecules/single-combobox/single-combobox.d.ts +2 -2
- package/dist/components/molecules/single-combobox/single-combobox.d.ts.map +1 -1
- package/dist/components/molecules/stepper/stepper-components.d.ts +1 -1
- package/dist/components/molecules/stepper/stepper-components.d.ts.map +1 -1
- package/dist/components/molecules/stepper/stepper.d.ts +2 -1
- package/dist/components/molecules/stepper/stepper.d.ts.map +1 -1
- package/dist/components/molecules/stepper/stepper.mock.d.ts +2 -2
- package/dist/components/molecules/stepper/stepper.mock.d.ts.map +1 -1
- package/dist/components/molecules/swatch-grid/swatch-grid.d.ts +2 -1
- package/dist/components/molecules/swatch-grid/swatch-grid.d.ts.map +1 -1
- package/dist/components/molecules/toast/assets/svgs/danger-icon.d.ts +3 -1
- package/dist/components/molecules/toast/assets/svgs/danger-icon.d.ts.map +1 -1
- package/dist/components/molecules/toast/assets/svgs/info-icon.d.ts +3 -1
- package/dist/components/molecules/toast/assets/svgs/info-icon.d.ts.map +1 -1
- package/dist/components/molecules/toast/assets/svgs/success-icon.d.ts +3 -1
- package/dist/components/molecules/toast/assets/svgs/success-icon.d.ts.map +1 -1
- package/dist/components/molecules/toast/assets/svgs/warning-icon.d.ts +3 -1
- package/dist/components/molecules/toast/assets/svgs/warning-icon.d.ts.map +1 -1
- package/dist/components/molecules/toast/toast-components.d.ts +1 -1
- package/dist/components/molecules/toast/toast.d.ts +2 -1
- package/dist/components/molecules/toast/toast.d.ts.map +1 -1
- package/dist/components/molecules/toggle-multi-select/index.d.ts +2 -2
- package/dist/components/molecules/toggle-multi-select/index.d.ts.map +1 -1
- package/dist/components/organisms/alert-dialog/alert-dialog-components.d.ts +2 -2
- package/dist/components/organisms/alert-dialog/alert-dialog.d.ts +2 -1
- package/dist/components/organisms/alert-dialog/alert-dialog.d.ts.map +1 -1
- package/dist/components/organisms/dialog/dialog-components.d.ts +2 -2
- package/dist/components/organisms/dialog/dialog-components.d.ts.map +1 -1
- package/dist/components/organisms/dialog/dialog.d.ts +2 -1
- package/dist/components/organisms/dialog/dialog.d.ts.map +1 -1
- package/dist/components/organisms/feature-dialog/feature-dialog.d.ts +5 -0
- package/dist/components/organisms/feature-dialog/feature-dialog.d.ts.map +1 -0
- package/dist/components/organisms/feature-dialog/feature-dialog.styles.d.ts +5 -0
- package/dist/components/organisms/feature-dialog/feature-dialog.styles.d.ts.map +1 -0
- package/dist/components/organisms/feature-dialog/feature-dialog.types.d.ts +25 -0
- package/dist/components/organisms/feature-dialog/feature-dialog.types.d.ts.map +1 -0
- package/dist/components/organisms/feature-dialog/index.d.ts +3 -0
- package/dist/components/organisms/feature-dialog/index.d.ts.map +1 -0
- package/dist/components/organisms/image-editor/components/color-picker.d.ts +3 -1
- package/dist/components/organisms/image-editor/components/color-picker.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/layers-list.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/layers-list.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/line-session-bar.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/line-session-bar.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/panel-adjust.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/panel-adjust.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/panel-crop.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/panel-crop.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/panel-insert.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/panel-insert.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/panel-selected.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/panel-selected.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/panel.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/panel.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/ribbon.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/ribbon.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/saved-layers-list.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/saved-layers-list.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/status-bar.d.ts +2 -1
- package/dist/components/organisms/image-editor/components/status-bar.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/image-editor-modal.d.ts +2 -1
- package/dist/components/organisms/image-editor/image-editor-modal.d.ts.map +1 -1
- package/dist/components/organisms/sheet/sheet-components.d.ts +2 -2
- package/dist/components/organisms/sheet/sheet.d.ts +2 -1
- package/dist/components/organisms/sheet/sheet.d.ts.map +1 -1
- package/dist/components/organisms/sidebar/sidebar.d.ts +2 -1
- package/dist/components/organisms/sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/ui/agent-snippet-view/agent-snippet-view.d.ts +1 -1
- package/dist/components/ui/agent-snippet-view/agent-snippet-view.d.ts.map +1 -1
- package/dist/components/ui/map-marker-hover-card/components/map-cluster-hover-card.d.ts +2 -1
- package/dist/components/ui/map-marker-hover-card/components/map-cluster-hover-card.d.ts.map +1 -1
- package/dist/components/ui/map-marker-hover-card/components/map-point-hover-card.d.ts +2 -1
- package/dist/components/ui/map-marker-hover-card/components/map-point-hover-card.d.ts.map +1 -1
- package/dist/components/ui/map-marker-hover-card/map-marker-hover-card.d.ts +2 -1
- package/dist/components/ui/map-marker-hover-card/map-marker-hover-card.d.ts.map +1 -1
- package/dist/components/ui/star-score/star-score.d.ts +2 -1
- package/dist/components/ui/star-score/star-score.d.ts.map +1 -1
- package/dist/components/unstyled/calendar/calendar.d.ts +1 -1
- package/dist/components/unstyled/calendar/calendar.d.ts.map +1 -1
- package/dist/components/unstyled/command/index.d.ts +2 -2
- package/dist/components/unstyled/command/index.d.ts.map +1 -1
- package/dist/components/unstyled/date-picker/date-picker.d.ts +2 -2
- package/dist/components/unstyled/date-picker/date-picker.d.ts.map +1 -1
- package/dist/components/unstyled/hover-card/hover-card.d.ts +2 -1
- package/dist/components/unstyled/hover-card/hover-card.d.ts.map +1 -1
- package/dist/components/unstyled/popover/popover.d.ts +2 -1
- package/dist/components/unstyled/popover/popover.d.ts.map +1 -1
- package/dist/components/unstyled/table/table.d.ts +2 -2
- package/dist/components/unstyled/table/table.d.ts.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +199 -195
- package/dist/index.es.js.map +1 -1
- package/dist/{index.es10.js → index10.es.js} +3 -3
- package/dist/{index.es10.js.map → index10.es.js.map} +1 -1
- package/dist/{index.es107.js → index100.es.js} +5 -5
- package/dist/{index.es107.js.map → index100.es.js.map} +1 -1
- package/dist/{index.es133.js → index101.es.js} +1 -1
- package/dist/{index.es133.js.map → index101.es.js.map} +1 -1
- package/dist/{index.es113.js → index102.es.js} +1 -1
- package/dist/{index.es113.js.map → index102.es.js.map} +1 -1
- package/dist/{index.es134.js → index103.es.js} +2 -2
- package/dist/{index.es134.js.map → index103.es.js.map} +1 -1
- package/dist/{index.es135.js → index104.es.js} +1 -1
- package/dist/{index.es135.js.map → index104.es.js.map} +1 -1
- package/dist/{index.es118.js → index105.es.js} +1 -1
- package/dist/{index.es118.js.map → index105.es.js.map} +1 -1
- package/dist/{index.es101.js → index106.es.js} +1 -1
- package/dist/{index.es101.js.map → index106.es.js.map} +1 -1
- package/dist/{index.es112.js → index107.es.js} +1 -1
- package/dist/{index.es112.js.map → index107.es.js.map} +1 -1
- package/dist/{index.es119.js → index108.es.js} +1 -1
- package/dist/{index.es119.js.map → index108.es.js.map} +1 -1
- package/dist/{index.es127.js → index109.es.js} +4 -4
- package/dist/{index.es127.js.map → index109.es.js.map} +1 -1
- package/dist/{index.es11.js → index11.es.js} +4 -4
- package/dist/{index.es11.js.map → index11.es.js.map} +1 -1
- package/dist/{index.es128.js → index110.es.js} +4 -4
- package/dist/{index.es128.js.map → index110.es.js.map} +1 -1
- package/dist/{index.es129.js → index111.es.js} +5 -5
- package/dist/{index.es129.js.map → index111.es.js.map} +1 -1
- package/dist/{index.es130.js → index112.es.js} +2 -2
- package/dist/{index.es130.js.map → index112.es.js.map} +1 -1
- package/dist/{index.es131.js → index113.es.js} +3 -3
- package/dist/{index.es131.js.map → index113.es.js.map} +1 -1
- package/dist/{index.es116.js → index114.es.js} +1 -1
- package/dist/{index.es116.js.map → index114.es.js.map} +1 -1
- package/dist/{index.es117.js → index115.es.js} +5 -5
- package/dist/{index.es117.js.map → index115.es.js.map} +1 -1
- package/dist/index116.es.js +34 -0
- package/dist/index116.es.js.map +1 -0
- package/dist/{index.es103.js → index117.es.js} +1 -1
- package/dist/{index.es103.js.map → index117.es.js.map} +1 -1
- package/dist/{index.es115.js → index118.es.js} +3 -3
- package/dist/{index.es115.js.map → index118.es.js.map} +1 -1
- package/dist/{index.es105.js → index119.es.js} +3 -3
- package/dist/{index.es105.js.map → index119.es.js.map} +1 -1
- package/dist/{index.es12.js → index12.es.js} +3 -3
- package/dist/{index.es12.js.map → index12.es.js.map} +1 -1
- package/dist/{index.es120.js → index120.es.js} +4 -4
- package/dist/{index.es120.js.map → index120.es.js.map} +1 -1
- package/dist/{index.es121.js → index121.es.js} +3 -3
- package/dist/{index.es121.js.map → index121.es.js.map} +1 -1
- package/dist/{index.es122.js → index122.es.js} +3 -3
- package/dist/{index.es122.js.map → index122.es.js.map} +1 -1
- package/dist/{index.es123.js → index123.es.js} +3 -3
- package/dist/{index.es123.js.map → index123.es.js.map} +1 -1
- package/dist/{index.es124.js → index124.es.js} +10 -10
- package/dist/{index.es124.js.map → index124.es.js.map} +1 -1
- package/dist/{index.es125.js → index125.es.js} +10 -10
- package/dist/{index.es125.js.map → index125.es.js.map} +1 -1
- package/dist/{index.es126.js → index126.es.js} +5 -5
- package/dist/{index.es126.js.map → index126.es.js.map} +1 -1
- package/dist/{index.es97.js → index127.es.js} +1 -1
- package/dist/index127.es.js.map +1 -0
- package/dist/{index.es98.js → index128.es.js} +8 -8
- package/dist/index128.es.js.map +1 -0
- package/dist/{index.es99.js → index129.es.js} +1 -1
- package/dist/index129.es.js.map +1 -0
- package/dist/{index.es13.js → index13.es.js} +3 -3
- package/dist/{index.es13.js.map → index13.es.js.map} +1 -1
- package/dist/{index.es100.js → index130.es.js} +15 -15
- package/dist/{index.es100.js.map → index130.es.js.map} +1 -1
- package/dist/{index.es104.js → index131.es.js} +1 -1
- package/dist/{index.es104.js.map → index131.es.js.map} +1 -1
- package/dist/{index.es106.js → index132.es.js} +1 -1
- package/dist/{index.es106.js.map → index132.es.js.map} +1 -1
- package/dist/{index.es114.js → index133.es.js} +3 -3
- package/dist/{index.es114.js.map → index133.es.js.map} +1 -1
- package/dist/{index.es132.js → index134.es.js} +1 -1
- package/dist/{index.es132.js.map → index134.es.js.map} +1 -1
- package/dist/{index.es108.js → index135.es.js} +1 -1
- package/dist/{index.es108.js.map → index135.es.js.map} +1 -1
- package/dist/{index.es102.js → index136.es.js} +1 -1
- package/dist/{index.es102.js.map → index136.es.js.map} +1 -1
- package/dist/{index.es110.js → index137.es.js} +2 -2
- package/dist/{index.es110.js.map → index137.es.js.map} +1 -1
- package/dist/{index.es111.js → index138.es.js} +6 -6
- package/dist/{index.es111.js.map → index138.es.js.map} +1 -1
- package/dist/{index.es136.js → index139.es.js} +5 -5
- package/dist/{index.es136.js.map → index139.es.js.map} +1 -1
- package/dist/{index.es14.js → index14.es.js} +2 -2
- package/dist/{index.es14.js.map → index14.es.js.map} +1 -1
- package/dist/index140.es.js +17 -0
- package/dist/index140.es.js.map +1 -0
- package/dist/{index.es156.js → index141.es.js} +2 -2
- package/dist/{index.es156.js.map → index141.es.js.map} +1 -1
- package/dist/{index.es159.js → index142.es.js} +3 -3
- package/dist/{index.es159.js.map → index142.es.js.map} +1 -1
- package/dist/{index.es160.js → index143.es.js} +1 -1
- package/dist/{index.es160.js.map → index143.es.js.map} +1 -1
- package/dist/{index.es161.js → index144.es.js} +1 -1
- package/dist/{index.es161.js.map → index144.es.js.map} +1 -1
- package/dist/{index.es162.js → index145.es.js} +1 -1
- package/dist/{index.es162.js.map → index145.es.js.map} +1 -1
- package/dist/{index.es137.js → index146.es.js} +1 -1
- package/dist/{index.es137.js.map → index146.es.js.map} +1 -1
- package/dist/{index.es138.js → index147.es.js} +7 -7
- package/dist/{index.es138.js.map → index147.es.js.map} +1 -1
- package/dist/{index.es139.js → index148.es.js} +3 -3
- package/dist/{index.es139.js.map → index148.es.js.map} +1 -1
- package/dist/{index.es140.js → index149.es.js} +2 -2
- package/dist/{index.es140.js.map → index149.es.js.map} +1 -1
- package/dist/{index.es15.js → index15.es.js} +3 -3
- package/dist/{index.es15.js.map → index15.es.js.map} +1 -1
- package/dist/{index.es141.js → index150.es.js} +1 -1
- package/dist/{index.es141.js.map → index150.es.js.map} +1 -1
- package/dist/{index.es142.js → index151.es.js} +1 -1
- package/dist/{index.es142.js.map → index151.es.js.map} +1 -1
- package/dist/{index.es143.js → index152.es.js} +1 -1
- package/dist/{index.es143.js.map → index152.es.js.map} +1 -1
- package/dist/{index.es144.js → index153.es.js} +2 -2
- package/dist/{index.es144.js.map → index153.es.js.map} +1 -1
- package/dist/{index.es145.js → index154.es.js} +3 -3
- package/dist/{index.es145.js.map → index154.es.js.map} +1 -1
- package/dist/{index.es146.js → index155.es.js} +3 -3
- package/dist/{index.es146.js.map → index155.es.js.map} +1 -1
- package/dist/{index.es147.js → index156.es.js} +5 -5
- package/dist/{index.es147.js.map → index156.es.js.map} +1 -1
- package/dist/{index.es148.js → index157.es.js} +4 -4
- package/dist/{index.es148.js.map → index157.es.js.map} +1 -1
- package/dist/{index.es149.js → index158.es.js} +2 -2
- package/dist/{index.es149.js.map → index158.es.js.map} +1 -1
- package/dist/{index.es150.js → index159.es.js} +4 -4
- package/dist/{index.es150.js.map → index159.es.js.map} +1 -1
- package/dist/{index.es16.js → index16.es.js} +8 -8
- package/dist/{index.es16.js.map → index16.es.js.map} +1 -1
- package/dist/{index.es151.js → index160.es.js} +6 -6
- package/dist/{index.es151.js.map → index160.es.js.map} +1 -1
- package/dist/{index.es152.js → index161.es.js} +5 -5
- package/dist/{index.es152.js.map → index161.es.js.map} +1 -1
- package/dist/{index.es153.js → index162.es.js} +4 -4
- package/dist/{index.es153.js.map → index162.es.js.map} +1 -1
- package/dist/{index.es154.js → index163.es.js} +9 -9
- package/dist/{index.es154.js.map → index163.es.js.map} +1 -1
- package/dist/{index.es155.js → index164.es.js} +6 -6
- package/dist/{index.es155.js.map → index164.es.js.map} +1 -1
- package/dist/{index.es158.js → index165.es.js} +1 -1
- package/dist/{index.es158.js.map → index165.es.js.map} +1 -1
- package/dist/{index.es157.js → index166.es.js} +1 -1
- package/dist/{index.es157.js.map → index166.es.js.map} +1 -1
- package/dist/{index.es163.js → index167.es.js} +1 -1
- package/dist/{index.es163.js.map → index167.es.js.map} +1 -1
- package/dist/{index.es164.js → index168.es.js} +1 -1
- package/dist/{index.es164.js.map → index168.es.js.map} +1 -1
- package/dist/{index.es165.js → index169.es.js} +1 -1
- package/dist/{index.es165.js.map → index169.es.js.map} +1 -1
- package/dist/{index.es17.js → index17.es.js} +3 -3
- package/dist/{index.es17.js.map → index17.es.js.map} +1 -1
- package/dist/{index.es166.js → index170.es.js} +2 -2
- package/dist/{index.es166.js.map → index170.es.js.map} +1 -1
- package/dist/{index.es173.js → index171.es.js} +19 -19
- package/dist/{index.es173.js.map → index171.es.js.map} +1 -1
- package/dist/{index.es167.js → index172.es.js} +2 -2
- package/dist/{index.es167.js.map → index172.es.js.map} +1 -1
- package/dist/{index.es168.js → index173.es.js} +4 -4
- package/dist/{index.es168.js.map → index173.es.js.map} +1 -1
- package/dist/{index.es169.js → index174.es.js} +4 -4
- package/dist/{index.es169.js.map → index174.es.js.map} +1 -1
- package/dist/{index.es170.js → index175.es.js} +9 -9
- package/dist/{index.es170.js.map → index175.es.js.map} +1 -1
- package/dist/{index.es171.js → index176.es.js} +10 -10
- package/dist/{index.es171.js.map → index176.es.js.map} +1 -1
- package/dist/{index.es172.js → index177.es.js} +2 -2
- package/dist/{index.es172.js.map → index177.es.js.map} +1 -1
- package/dist/{index.es174.js → index178.es.js} +4 -4
- package/dist/{index.es174.js.map → index178.es.js.map} +1 -1
- package/dist/{index.es175.js → index179.es.js} +2 -2
- package/dist/{index.es175.js.map → index179.es.js.map} +1 -1
- package/dist/{index.es18.js → index18.es.js} +2 -2
- package/dist/{index.es18.js.map → index18.es.js.map} +1 -1
- package/dist/{index.es178.js → index180.es.js} +6 -6
- package/dist/{index.es178.js.map → index180.es.js.map} +1 -1
- package/dist/{index.es179.js → index181.es.js} +17 -16
- package/dist/{index.es179.js.map → index181.es.js.map} +1 -1
- package/dist/{index.es180.js → index182.es.js} +27 -26
- package/dist/{index.es180.js.map → index182.es.js.map} +1 -1
- package/dist/{index.es181.js → index183.es.js} +13 -12
- package/dist/{index.es181.js.map → index183.es.js.map} +1 -1
- package/dist/{index.es182.js → index184.es.js} +5 -5
- package/dist/{index.es182.js.map → index184.es.js.map} +1 -1
- package/dist/{index.es183.js → index185.es.js} +27 -26
- package/dist/{index.es183.js.map → index185.es.js.map} +1 -1
- package/dist/{index.es184.js → index186.es.js} +30 -29
- package/dist/{index.es184.js.map → index186.es.js.map} +1 -1
- package/dist/{index.es176.js → index187.es.js} +1 -1
- package/dist/{index.es176.js.map → index187.es.js.map} +1 -1
- package/dist/{index.es177.js → index188.es.js} +2 -2
- package/dist/{index.es177.js.map → index188.es.js.map} +1 -1
- package/dist/{index.es185.js → index189.es.js} +1 -1
- package/dist/{index.es185.js.map → index189.es.js.map} +1 -1
- package/dist/{index.es19.js → index19.es.js} +4 -4
- package/dist/{index.es19.js.map → index19.es.js.map} +1 -1
- package/dist/{index.es2.js → index2.es.js} +5 -5
- package/dist/{index.es2.js.map → index2.es.js.map} +1 -1
- package/dist/{index.es20.js → index20.es.js} +5 -5
- package/dist/{index.es20.js.map → index20.es.js.map} +1 -1
- package/dist/index21.es.js +57 -0
- package/dist/index21.es.js.map +1 -0
- package/dist/index22.es.js +79 -0
- package/dist/index22.es.js.map +1 -0
- package/dist/{index.es21.js → index23.es.js} +6 -6
- package/dist/{index.es21.js.map → index23.es.js.map} +1 -1
- package/dist/{index.es22.js → index24.es.js} +2 -2
- package/dist/{index.es22.js.map → index24.es.js.map} +1 -1
- package/dist/{index.es23.js → index25.es.js} +7 -7
- package/dist/{index.es23.js.map → index25.es.js.map} +1 -1
- package/dist/{index.es24.js → index26.es.js} +7 -7
- package/dist/{index.es24.js.map → index26.es.js.map} +1 -1
- package/dist/{index.es25.js → index27.es.js} +3 -3
- package/dist/{index.es25.js.map → index27.es.js.map} +1 -1
- package/dist/{index.es26.js → index28.es.js} +2 -2
- package/dist/{index.es26.js.map → index28.es.js.map} +1 -1
- package/dist/{index.es27.js → index29.es.js} +7 -7
- package/dist/{index.es27.js.map → index29.es.js.map} +1 -1
- package/dist/{index.es3.js → index3.es.js} +3 -3
- package/dist/{index.es3.js.map → index3.es.js.map} +1 -1
- package/dist/{index.es28.js → index30.es.js} +9 -9
- package/dist/{index.es28.js.map → index30.es.js.map} +1 -1
- package/dist/{index.es29.js → index31.es.js} +5 -5
- package/dist/{index.es29.js.map → index31.es.js.map} +1 -1
- package/dist/{index.es30.js → index32.es.js} +3 -3
- package/dist/{index.es30.js.map → index32.es.js.map} +1 -1
- package/dist/{index.es31.js → index33.es.js} +1 -1
- package/dist/{index.es31.js.map → index33.es.js.map} +1 -1
- package/dist/{index.es32.js → index34.es.js} +2 -2
- package/dist/{index.es32.js.map → index34.es.js.map} +1 -1
- package/dist/{index.es33.js → index35.es.js} +3 -3
- package/dist/{index.es33.js.map → index35.es.js.map} +1 -1
- package/dist/index36.es.js +39 -0
- package/dist/index36.es.js.map +1 -0
- package/dist/{index.es35.js → index37.es.js} +6 -6
- package/dist/{index.es35.js.map → index37.es.js.map} +1 -1
- package/dist/{index.es36.js → index38.es.js} +5 -5
- package/dist/{index.es36.js.map → index38.es.js.map} +1 -1
- package/dist/{index.es37.js → index39.es.js} +6 -6
- package/dist/{index.es37.js.map → index39.es.js.map} +1 -1
- package/dist/{index.es4.js → index4.es.js} +2 -2
- package/dist/{index.es4.js.map → index4.es.js.map} +1 -1
- package/dist/{index.es38.js → index40.es.js} +2 -2
- package/dist/{index.es38.js.map → index40.es.js.map} +1 -1
- package/dist/{index.es39.js → index41.es.js} +3 -3
- package/dist/{index.es39.js.map → index41.es.js.map} +1 -1
- package/dist/index42.es.js +91 -0
- package/dist/index42.es.js.map +1 -0
- package/dist/{index.es41.js → index43.es.js} +5 -5
- package/dist/{index.es41.js.map → index43.es.js.map} +1 -1
- package/dist/{index.es42.js → index44.es.js} +4 -4
- package/dist/{index.es42.js.map → index44.es.js.map} +1 -1
- package/dist/{index.es43.js → index45.es.js} +2 -2
- package/dist/{index.es43.js.map → index45.es.js.map} +1 -1
- package/dist/{index.es44.js → index46.es.js} +2 -2
- package/dist/{index.es44.js.map → index46.es.js.map} +1 -1
- package/dist/{index.es45.js → index47.es.js} +5 -5
- package/dist/{index.es45.js.map → index47.es.js.map} +1 -1
- package/dist/{index.es46.js → index48.es.js} +9 -9
- package/dist/{index.es46.js.map → index48.es.js.map} +1 -1
- package/dist/{index.es47.js → index49.es.js} +7 -7
- package/dist/{index.es47.js.map → index49.es.js.map} +1 -1
- package/dist/{index.es5.js → index5.es.js} +2 -2
- package/dist/{index.es5.js.map → index5.es.js.map} +1 -1
- package/dist/{index.es48.js → index50.es.js} +10 -10
- package/dist/{index.es48.js.map → index50.es.js.map} +1 -1
- package/dist/{index.es49.js → index51.es.js} +2 -2
- package/dist/{index.es49.js.map → index51.es.js.map} +1 -1
- package/dist/{index.es50.js → index52.es.js} +1 -1
- package/dist/{index.es50.js.map → index52.es.js.map} +1 -1
- package/dist/{index.es51.js → index53.es.js} +2 -2
- package/dist/{index.es51.js.map → index53.es.js.map} +1 -1
- package/dist/{index.es52.js → index54.es.js} +3 -3
- package/dist/{index.es52.js.map → index54.es.js.map} +1 -1
- package/dist/{index.es53.js → index55.es.js} +7 -7
- package/dist/{index.es53.js.map → index55.es.js.map} +1 -1
- package/dist/{index.es54.js → index56.es.js} +4 -4
- package/dist/{index.es54.js.map → index56.es.js.map} +1 -1
- package/dist/{index.es55.js → index57.es.js} +5 -5
- package/dist/{index.es55.js.map → index57.es.js.map} +1 -1
- package/dist/{index.es56.js → index58.es.js} +3 -3
- package/dist/{index.es56.js.map → index58.es.js.map} +1 -1
- package/dist/{index.es57.js → index59.es.js} +9 -9
- package/dist/{index.es57.js.map → index59.es.js.map} +1 -1
- package/dist/{index.es6.js → index6.es.js} +2 -2
- package/dist/{index.es6.js.map → index6.es.js.map} +1 -1
- package/dist/{index.es58.js → index60.es.js} +4 -3
- package/dist/{index.es58.js.map → index60.es.js.map} +1 -1
- package/dist/{index.es59.js → index61.es.js} +2 -2
- package/dist/{index.es59.js.map → index61.es.js.map} +1 -1
- package/dist/{index.es60.js → index62.es.js} +3 -3
- package/dist/{index.es60.js.map → index62.es.js.map} +1 -1
- package/dist/{index.es61.js → index63.es.js} +2 -2
- package/dist/{index.es61.js.map → index63.es.js.map} +1 -1
- package/dist/{index.es62.js → index64.es.js} +2 -2
- package/dist/{index.es62.js.map → index64.es.js.map} +1 -1
- package/dist/{index.es63.js → index65.es.js} +2 -2
- package/dist/{index.es63.js.map → index65.es.js.map} +1 -1
- package/dist/{index.es64.js → index66.es.js} +3 -3
- package/dist/{index.es64.js.map → index66.es.js.map} +1 -1
- package/dist/{index.es65.js → index67.es.js} +3 -3
- package/dist/{index.es65.js.map → index67.es.js.map} +1 -1
- package/dist/{index.es66.js → index68.es.js} +2 -2
- package/dist/{index.es66.js.map → index68.es.js.map} +1 -1
- package/dist/{index.es67.js → index69.es.js} +3 -3
- package/dist/{index.es67.js.map → index69.es.js.map} +1 -1
- package/dist/{index.es7.js → index7.es.js} +2 -2
- package/dist/{index.es7.js.map → index7.es.js.map} +1 -1
- package/dist/{index.es68.js → index70.es.js} +3 -3
- package/dist/{index.es68.js.map → index70.es.js.map} +1 -1
- package/dist/{index.es69.js → index71.es.js} +6 -6
- package/dist/{index.es69.js.map → index71.es.js.map} +1 -1
- package/dist/{index.es70.js → index72.es.js} +6 -6
- package/dist/{index.es70.js.map → index72.es.js.map} +1 -1
- package/dist/{index.es71.js → index73.es.js} +4 -4
- package/dist/{index.es71.js.map → index73.es.js.map} +1 -1
- package/dist/{index.es72.js → index74.es.js} +8 -8
- package/dist/{index.es72.js.map → index74.es.js.map} +1 -1
- package/dist/{index.es73.js → index75.es.js} +5 -5
- package/dist/{index.es73.js.map → index75.es.js.map} +1 -1
- package/dist/{index.es74.js → index76.es.js} +1 -1
- package/dist/{index.es74.js.map → index76.es.js.map} +1 -1
- package/dist/{index.es75.js → index77.es.js} +1 -1
- package/dist/{index.es75.js.map → index77.es.js.map} +1 -1
- package/dist/{index.es76.js → index78.es.js} +1 -1
- package/dist/{index.es76.js.map → index78.es.js.map} +1 -1
- package/dist/{index.es77.js → index79.es.js} +1 -1
- package/dist/{index.es77.js.map → index79.es.js.map} +1 -1
- package/dist/{index.es8.js → index8.es.js} +3 -3
- package/dist/{index.es8.js.map → index8.es.js.map} +1 -1
- package/dist/index80.es.js +90 -0
- package/dist/index80.es.js.map +1 -0
- package/dist/{index.es79.js → index81.es.js} +1 -1
- package/dist/{index.es79.js.map → index81.es.js.map} +1 -1
- package/dist/{index.es80.js → index82.es.js} +3 -3
- package/dist/{index.es80.js.map → index82.es.js.map} +1 -1
- package/dist/{index.es81.js → index83.es.js} +4 -4
- package/dist/{index.es81.js.map → index83.es.js.map} +1 -1
- package/dist/{index.es82.js → index84.es.js} +1 -1
- package/dist/{index.es82.js.map → index84.es.js.map} +1 -1
- package/dist/{index.es83.js → index85.es.js} +1 -1
- package/dist/{index.es83.js.map → index85.es.js.map} +1 -1
- package/dist/{index.es84.js → index86.es.js} +1 -1
- package/dist/{index.es84.js.map → index86.es.js.map} +1 -1
- package/dist/{index.es85.js → index87.es.js} +2 -2
- package/dist/{index.es85.js.map → index87.es.js.map} +1 -1
- package/dist/{index.es86.js → index88.es.js} +2 -2
- package/dist/{index.es86.js.map → index88.es.js.map} +1 -1
- package/dist/{index.es87.js → index89.es.js} +1 -1
- package/dist/{index.es87.js.map → index89.es.js.map} +1 -1
- package/dist/{index.es9.js → index9.es.js} +4 -4
- package/dist/{index.es9.js.map → index9.es.js.map} +1 -1
- package/dist/index90.es.js +5 -0
- package/dist/index90.es.js.map +1 -0
- package/dist/{index.es89.js → index91.es.js} +1 -1
- package/dist/{index.es89.js.map → index91.es.js.map} +1 -1
- package/dist/{index.es90.js → index92.es.js} +2 -2
- package/dist/{index.es90.js.map → index92.es.js.map} +1 -1
- package/dist/{index.es91.js → index93.es.js} +3 -3
- package/dist/{index.es91.js.map → index93.es.js.map} +1 -1
- package/dist/{index.es92.js → index94.es.js} +1 -1
- package/dist/{index.es92.js.map → index94.es.js.map} +1 -1
- package/dist/{index.es93.js → index95.es.js} +1 -1
- package/dist/{index.es93.js.map → index95.es.js.map} +1 -1
- package/dist/{index.es94.js → index96.es.js} +1 -1
- package/dist/{index.es94.js.map → index96.es.js.map} +1 -1
- package/dist/{index.es95.js → index97.es.js} +1 -1
- package/dist/{index.es95.js.map → index97.es.js.map} +1 -1
- package/dist/{index.es96.js → index98.es.js} +1 -1
- package/dist/{index.es96.js.map → index98.es.js.map} +1 -1
- package/dist/{index.es109.js → index99.es.js} +2 -2
- package/dist/index99.es.js.map +1 -0
- package/dist/styles.css +428 -29
- package/package.json +1 -1
- package/dist/index.es109.js.map +0 -1
- package/dist/index.es34.js +0 -31
- package/dist/index.es34.js.map +0 -1
- package/dist/index.es40.js +0 -91
- package/dist/index.es40.js.map +0 -1
- package/dist/index.es78.js +0 -88
- package/dist/index.es78.js.map +0 -1
- package/dist/index.es88.js +0 -5
- package/dist/index.es88.js.map +0 -1
- package/dist/index.es97.js.map +0 -1
- package/dist/index.es98.js.map +0 -1
- package/dist/index.es99.js.map +0 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { VERSION as L } from "./
|
|
2
|
-
import { CROP_RATIOS as st, FILTERS as ot, FONTS as rt, SHAPES as it, SWATCHES as dt } from "./
|
|
3
|
-
import { createState as b, getState as C, emit as i, emptySourceCanvas as g, resetAdjValues as v, getSel as x } from "./
|
|
4
|
-
import { zoomIn as T, zoomOut as z, zoomToFit as F, ZOOM_MIN as O, ZOOM_MAX as k, syncCanvasSize as w, render as p, fitStage as I } from "./
|
|
5
|
-
import { undo as P, redo as E } from "./
|
|
6
|
-
import { rotate as u, flip as y, resetToOriginal as R, applyCrop as M, cancelCrop as A, setCropRatio as W } from "./
|
|
7
|
-
import { setMode as B, selectLayer as D } from "./
|
|
8
|
-
import { commitTextEdit as m } from "./
|
|
9
|
-
import { addSticker as _ } from "./
|
|
10
|
-
import { deleteLayer as j, deleteSelected as H, duplicateSelected as U, bringSelectedToFront as N, sendSelectedToBack as Z, setAdjustment as $, setFilter as q, selectShapeType as V, setShapeFill as X, setShapeWidth as G, setBrushSize as J, setBrushStyle as K, setTextFont as Q, setTextSize as Y, setTextColor as ee, setShapeColor as te, setDrawColor as ae, setSelectedColor as le, setSelectedText as se, setSelectedFont as oe, setSelectedTextSize as re, setSelectedBoxWidth as ie, setSelectedShapeFill as de, setSelectedWidth as ne, setSelectedLabel as ce, setSelectedLabelSize as Se, setSelectedLabelColor as pe, setSelectedLabelFont as ue, setSelectedClosed as ye, setSelectedLabelSide as me, setSelectedLabelOffset as he, setSelectedLabelPos as fe, setSelectedLabelRotate as Le, setSelectedLabelDx as be, setSelectedLabelDy as Ce, setMultiPointMode as ge, layerName as ve, rotateSelected as xe, flipSelected as Te } from "./
|
|
11
|
-
import { doSave as ze, produce as Fe, normalizeSource as d, loadState as h, doLoadImage as n } from "./
|
|
12
|
-
import { loadSavedLayers as Oe, saveSelectedLayer as ke, insertSavedLayer as we, deleteSavedLayer as Ie, renameSavedLayer as Pe, setSavedLayers as Ee, insertSavedLayerEntry as Re, searchSavedLayers as Me, canSearch as Ae } from "./
|
|
13
|
-
import { mount as We } from "./
|
|
14
|
-
import { resumePoly as Be, finishPoly as f, undoPolyPoint as De, cancelPoly as _e, polyStatus as je } from "./
|
|
1
|
+
import { VERSION as L } from "./index152.es.js";
|
|
2
|
+
import { CROP_RATIOS as st, FILTERS as ot, FONTS as rt, SHAPES as it, SWATCHES as dt } from "./index152.es.js";
|
|
3
|
+
import { createState as b, getState as C, emit as i, emptySourceCanvas as g, resetAdjValues as v, getSel as x } from "./index153.es.js";
|
|
4
|
+
import { zoomIn as T, zoomOut as z, zoomToFit as F, ZOOM_MIN as O, ZOOM_MAX as k, syncCanvasSize as w, render as p, fitStage as I } from "./index154.es.js";
|
|
5
|
+
import { undo as P, redo as E } from "./index155.es.js";
|
|
6
|
+
import { rotate as u, flip as y, resetToOriginal as R, applyCrop as M, cancelCrop as A, setCropRatio as W } from "./index156.es.js";
|
|
7
|
+
import { setMode as B, selectLayer as D } from "./index157.es.js";
|
|
8
|
+
import { commitTextEdit as m } from "./index158.es.js";
|
|
9
|
+
import { addSticker as _ } from "./index159.es.js";
|
|
10
|
+
import { deleteLayer as j, deleteSelected as H, duplicateSelected as U, bringSelectedToFront as N, sendSelectedToBack as Z, setAdjustment as $, setFilter as q, selectShapeType as V, setShapeFill as X, setShapeWidth as G, setBrushSize as J, setBrushStyle as K, setTextFont as Q, setTextSize as Y, setTextColor as ee, setShapeColor as te, setDrawColor as ae, setSelectedColor as le, setSelectedText as se, setSelectedFont as oe, setSelectedTextSize as re, setSelectedBoxWidth as ie, setSelectedShapeFill as de, setSelectedWidth as ne, setSelectedLabel as ce, setSelectedLabelSize as Se, setSelectedLabelColor as pe, setSelectedLabelFont as ue, setSelectedClosed as ye, setSelectedLabelSide as me, setSelectedLabelOffset as he, setSelectedLabelPos as fe, setSelectedLabelRotate as Le, setSelectedLabelDx as be, setSelectedLabelDy as Ce, setMultiPointMode as ge, layerName as ve, rotateSelected as xe, flipSelected as Te } from "./index160.es.js";
|
|
11
|
+
import { doSave as ze, produce as Fe, normalizeSource as d, loadState as h, doLoadImage as n } from "./index161.es.js";
|
|
12
|
+
import { loadSavedLayers as Oe, saveSelectedLayer as ke, insertSavedLayer as we, deleteSavedLayer as Ie, renameSavedLayer as Pe, setSavedLayers as Ee, insertSavedLayerEntry as Re, searchSavedLayers as Me, canSearch as Ae } from "./index162.es.js";
|
|
13
|
+
import { mount as We } from "./index163.es.js";
|
|
14
|
+
import { resumePoly as Be, finishPoly as f, undoPolyPoint as De, cancelPoly as _e, polyStatus as je } from "./index164.es.js";
|
|
15
15
|
function c(s, a) {
|
|
16
16
|
queueMicrotask(() => {
|
|
17
17
|
throw new Error(`[image-editor] ${s}`, { cause: a });
|
|
@@ -149,4 +149,4 @@ export {
|
|
|
149
149
|
dt as SWATCHES,
|
|
150
150
|
tt as default
|
|
151
151
|
};
|
|
152
|
-
//# sourceMappingURL=
|
|
152
|
+
//# sourceMappingURL=index130.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es100.js","sources":["../src/components/organisms/image-editor/picture-studio-engine.js"],"sourcesContent":["import {\n FILTERS,\n SWATCHES,\n SHAPES,\n FONTS,\n CROP_RATIOS,\n VERSION,\n} from './engine/constants.js'\nimport {\n createState,\n emit,\n emptySourceCanvas,\n getSel,\n getState as readState,\n resetAdjValues,\n} from './engine/state.js'\nimport {\n fitStage,\n render,\n syncCanvasSize,\n zoomIn,\n zoomOut,\n zoomToFit,\n ZOOM_MIN,\n ZOOM_MAX,\n} from './engine/rendering.js'\nimport * as history from './engine/history.js'\nimport * as geometry from './engine/geometry.js'\nimport * as mode from './engine/mode.js'\nimport * as textEditor from './engine/text-editor.js'\nimport * as stickers from './engine/stickers.js'\nimport * as layerActions from './engine/layer-actions.js'\nimport * as saveExport from './engine/save-export.js'\nimport * as savedLayers from './engine/saved-layers.js'\nimport { mount as mountEngine } from './engine/mount.js'\nimport {\n resumePoly,\n polyStatus,\n finishPoly,\n cancelPoly,\n undoPolyPoint,\n} from './engine/pointer.js'\n\nexport { FILTERS, SWATCHES, SHAPES, FONTS, CROP_RATIOS }\n\nfunction reportError(context, error) {\n // Surfaces in DevTools via window.onerror with the stack intact, without\n // aborting the caller and without a console call the lint config forbids.\n queueMicrotask(() => {\n throw new Error(`[image-editor] ${context}`, { cause: error })\n })\n}\n\nfunction createEngine(config) {\n config = config || {}\n const self = {}\n const state = createState(config)\n savedLayers.loadSavedLayers(state)\n\n function notify() {\n // onUiChange is host code (a React setState, usually). A throw here used to\n // abort open() before its 'open' event fired, leaving isOpenFlag true while\n // the UI stayed closed -- after which every open() silently no-opped and the\n // editor could never be reopened.\n try {\n if (typeof config.onUiChange === 'function') {\n config.onUiChange(getUiState())\n }\n } catch (e) {\n reportError('onUiChange threw', e)\n }\n }\n state.notify = notify\n\n self.on = (ev, fn) => {\n if (state.listeners[ev]) state.listeners[ev].push(fn)\n return self\n }\n self.off = (ev, fn) => {\n if (state.listeners[ev])\n state.listeners[ev] = state.listeners[ev].filter((f) => f !== fn)\n return self\n }\n\n function getUiState() {\n const sel = getSel(state)\n return {\n hasImage: !!state.sourceCanvas.width,\n mode: state.mode,\n canUndo: state.undoStack.length > 0,\n canRedo: state.redoStack.length > 0,\n canReset: !!state.originalCanvas,\n zoomPercent: Math.round(state.zoom * 100),\n canZoomIn: state.zoom < ZOOM_MAX - 1e-6,\n canZoomOut: state.zoom > ZOOM_MIN + 1e-6,\n closeOnBackdrop: config.closeOnBackdrop !== false,\n canOpenImage: config.allowOpenImage !== false,\n isEditingText: !!state.editingLayer,\n editingSelectAll: state.editingSelectAll,\n dims: state.sourceCanvas.width\n ? `${state.sourceCanvas.width} × ${state.sourceCanvas.height} px`\n : 'No image',\n statusText: state.statusText,\n isSaving: state.isSaving,\n isLoadingImage: state.isLoadingImage,\n adjustments: { ...state.adj },\n selectedShapeType: state.selectedShapeType,\n multiPointMode: !!state.multiPointMode,\n canSearchSavedLayers: savedLayers.canSearch(state),\n savedLayers: (state.savedLayers || []).map((e) => ({\n id: e.id,\n name: e.name,\n type: e.layer?.type,\n createdAt: e.createdAt,\n })),\n poly: polyStatus(state),\n textColor: state.textColor,\n shapeColor: state.shapeColor,\n drawColor: state.drawColor,\n shapeFill: state.shapeFill,\n shapeWidth: state.shapeWidth,\n brushSize: state.brushSize,\n brushStyle: state.brushStyle,\n textFont: state.textFont,\n textSize: state.textSize,\n cropRatio: state.cropRatio,\n stickers: state.stickers,\n selected: sel\n ? {\n id: sel.id,\n type: sel.type,\n color: sel.color,\n text: sel.type === 'text' ? sel.text : undefined,\n font: sel.type === 'text' ? sel.font : undefined,\n size: sel.type === 'text' ? sel.size : undefined,\n boxWidth: sel.type === 'text' ? sel.boxWidth : undefined,\n fill: sel.type === 'shape' ? sel.fill : undefined,\n width:\n sel.type === 'shape' || sel.type === 'stroke'\n ? sel.width\n : undefined,\n shape: sel.type === 'shape' ? sel.shape : undefined,\n label: sel.type === 'shape' ? (sel.label ?? '') : undefined,\n labelSize: sel.type === 'shape' ? sel.labelSize : undefined,\n labelColor: sel.type === 'shape' ? sel.labelColor : undefined,\n labelFont: sel.type === 'shape' ? sel.labelFont : undefined,\n pointCount:\n sel.type === 'shape' && sel.points\n ? sel.points.length\n : undefined,\n closed: sel.type === 'shape' ? !!sel.closed : undefined,\n labelSide:\n sel.type === 'shape' ? (sel.labelSide ?? 'above') : undefined,\n labelOffset: sel.type === 'shape' ? sel.labelOffset : undefined,\n labelPos: sel.type === 'shape' ? (sel.labelPos ?? 0.5) : undefined,\n labelRotate:\n sel.type === 'shape' ? sel.labelRotate !== false : undefined,\n labelDx: sel.type === 'shape' ? (sel.labelDx ?? 0) : undefined,\n labelDy: sel.type === 'shape' ? (sel.labelDy ?? 0) : undefined,\n }\n : null,\n layers: state.layers.map((l) => ({\n id: l.id,\n type: l.type,\n name: layerActions.layerName(l),\n })),\n }\n }\n self.getUiState = getUiState\n\n self.refitStage = () => {\n if (!state.mounted || !state.sourceCanvas.width) return\n fitStage(state)\n render(state)\n }\n self.zoomIn = () => zoomIn(state)\n self.zoomOut = () => zoomOut(state)\n self.zoomToFit = () => zoomToFit(state)\n self.setMode = (m) => mode.setMode(state, m)\n self.selectLayer = (id) => mode.selectLayer(state, id)\n self.undo = () => history.undo(state)\n self.redo = () => history.redo(state)\n // With a layer selected these act on that layer; otherwise on the image.\n self.rotate = (deg) =>\n state.selectedId != null\n ? layerActions.rotateSelected(state, deg)\n : geometry.rotate(state, deg)\n self.flip = (hz) =>\n state.selectedId != null\n ? layerActions.flipSelected(state, hz)\n : geometry.flip(state, hz)\n // Explicit escape hatches, so the image can still be transformed directly.\n self.rotateImage = (deg) => geometry.rotate(state, deg)\n self.flipImage = (hz) => geometry.flip(state, hz)\n self.resetToOriginal = () => geometry.resetToOriginal(state)\n self.applyCrop = () => geometry.applyCrop(state)\n self.cancelCrop = () => geometry.cancelCrop(state)\n self.setCropRatio = (v) => geometry.setCropRatio(state, v)\n self.commitTextEdit = () => textEditor.commitTextEdit(state)\n self.addSticker = (src) => stickers.addSticker(state, src)\n self.setStickers = (list) => {\n state.stickers = list || []\n notify()\n }\n self.deleteLayer = (id) => layerActions.deleteLayer(state, id)\n self.deleteSelected = () => layerActions.deleteSelected(state)\n self.duplicateSelected = () => layerActions.duplicateSelected(state)\n self.bringSelectedToFront = () => layerActions.bringSelectedToFront(state)\n self.sendSelectedToBack = () => layerActions.sendSelectedToBack(state)\n self.setAdjustment = (key, value) =>\n layerActions.setAdjustment(state, key, value)\n self.setFilter = (id) => layerActions.setFilter(state, id)\n self.selectShapeType = (id) => layerActions.selectShapeType(state, id)\n self.setShapeFill = (v) => layerActions.setShapeFill(state, v)\n self.setShapeWidth = (v) => layerActions.setShapeWidth(state, v)\n self.setBrushSize = (v) => layerActions.setBrushSize(state, v)\n self.setBrushStyle = (v) => layerActions.setBrushStyle(state, v)\n self.setTextFont = (v) => layerActions.setTextFont(state, v)\n self.setTextSize = (v) => layerActions.setTextSize(state, v)\n self.setTextColor = (v) => layerActions.setTextColor(state, v)\n self.setShapeColor = (v) => layerActions.setShapeColor(state, v)\n self.setDrawColor = (v) => layerActions.setDrawColor(state, v)\n self.setSelectedColor = (v) => layerActions.setSelectedColor(state, v)\n self.setSelectedText = (v) => layerActions.setSelectedText(state, v)\n self.setSelectedFont = (v) => layerActions.setSelectedFont(state, v)\n self.setSelectedTextSize = (v) => layerActions.setSelectedTextSize(state, v)\n self.setSelectedBoxWidth = (v) => layerActions.setSelectedBoxWidth(state, v)\n self.setSelectedShapeFill = (v) => layerActions.setSelectedShapeFill(state, v)\n self.setSelectedWidth = (v) => layerActions.setSelectedWidth(state, v)\n self.setSelectedLabel = (v) => layerActions.setSelectedLabel(state, v)\n self.setSelectedLabelSize = (v) => layerActions.setSelectedLabelSize(state, v)\n self.setSelectedLabelColor = (v) =>\n layerActions.setSelectedLabelColor(state, v)\n self.setSelectedLabelFont = (v) => layerActions.setSelectedLabelFont(state, v)\n self.setSelectedClosed = (v) => layerActions.setSelectedClosed(state, v)\n self.setSelectedLabelSide = (v) => layerActions.setSelectedLabelSide(state, v)\n self.setSelectedLabelOffset = (v) =>\n layerActions.setSelectedLabelOffset(state, v)\n self.setSelectedLabelPos = (v) => layerActions.setSelectedLabelPos(state, v)\n self.setSelectedLabelRotate = (v) =>\n layerActions.setSelectedLabelRotate(state, v)\n self.setSelectedLabelDx = (v) => layerActions.setSelectedLabelDx(state, v)\n self.setSelectedLabelDy = (v) => layerActions.setSelectedLabelDy(state, v)\n self.setMultiPointMode = (v) => layerActions.setMultiPointMode(state, v)\n self.continueSelectedLine = () => resumePoly(state)\n // Touch has no Enter/Esc/Backspace, so every session action needs a button.\n self.finishLine = () => finishPoly(state, false)\n self.closeLine = () => finishPoly(state, true)\n self.undoLinePoint = () => undoPolyPoint(state)\n self.cancelLine = () => cancelPoly(state)\n self.saveSelectedLayer = (name) => savedLayers.saveSelectedLayer(state, name)\n self.insertSavedLayer = (id) => savedLayers.insertSavedLayer(state, id)\n self.deleteSavedLayer = (id) => savedLayers.deleteSavedLayer(state, id)\n self.renameSavedLayer = (id, name) =>\n savedLayers.renameSavedLayer(state, id, name)\n self.getSavedLayers = () => (state.savedLayers || []).slice()\n self.setSavedLayers = (list) => savedLayers.setSavedLayers(state, list)\n self.insertSavedLayerEntry = (entry) =>\n savedLayers.insertSavedLayerEntry(state, entry)\n self.searchSavedLayers = (q) => savedLayers.searchSavedLayers(state, q)\n self.save = () => saveExport.doSave(state, self)\n self.export = (opts) => {\n opts = opts || {}\n if (!state.sourceCanvas.width) return Promise.resolve(null)\n return saveExport.produce(state, opts.type, opts.quality)\n }\n self.getState = () => readState(state)\n self.mount = (refs) => mountEngine(state, self, refs)\n self.openFile = (file) =>\n saveExport.normalizeSource(state, file, (d) =>\n saveExport.doLoadImage(state, d)\n )\n\n self.open = (opts) => {\n opts = opts || {}\n if (state.isOpenFlag) {\n // Already flagged open. Re-emit rather than only notifying: if the host\n // never saw the last 'open' -- a throw mid-open, or a wrapper that hid\n // itself without calling close -- the flag and the UI have drifted apart,\n // and every later open() would no-op, leaving a permanently dead button.\n notify()\n emit(state, 'open', {})\n return self\n }\n state.isOpenFlag = true\n const finish = () => {\n try {\n if (state.mounted && state.sourceCanvas.width) {\n syncCanvasSize(state)\n render(state)\n }\n } catch (e) {\n // A render failure must not strand isOpenFlag: the event below is what\n // the host listens on, and without it the editor can never reopen.\n reportError('render on open failed', e)\n }\n notify()\n emit(state, 'open', {})\n }\n if (opts.state) {\n saveExport.loadState(state, opts.state)\n setTimeout(finish, 0)\n } else if (opts.image) {\n saveExport.normalizeSource(state, opts.image, (d) => {\n saveExport.doLoadImage(state, d)\n setTimeout(finish, 0)\n })\n } else {\n setTimeout(finish, 0)\n }\n return self\n }\n self.close = () => {\n state.isOpenFlag = false\n try {\n textEditor.commitTextEdit(state)\n } catch (e) {\n reportError('commit on close failed', e)\n }\n notify()\n emit(state, 'close', {})\n return self\n }\n self.loadImage = (src) => {\n saveExport.normalizeSource(state, src, (d) =>\n saveExport.doLoadImage(state, d)\n )\n return self\n }\n self.loadState = (s) => {\n saveExport.loadState(state, s)\n return self\n }\n self.reset = () => {\n state.sourceCanvas = emptySourceCanvas()\n state.originalCanvas = null\n state.layers = []\n state.selectedId = null\n state.undoStack = []\n state.redoStack = []\n state.zoom = 1\n resetAdjValues(state)\n state.statusText = 'Ready'\n notify()\n return self\n }\n self.isOpen = () => state.isOpenFlag\n self.destroy = () => {\n if (self._keyHandler)\n document.removeEventListener('keydown', self._keyHandler)\n if (self._resizeHandler)\n window.removeEventListener('resize', self._resizeHandler)\n Object.keys(state.listeners).forEach((k) => (state.listeners[k] = []))\n }\n\n if (config.autoOpen) self.open({ image: config.image, state: config.state })\n\n return self\n}\n\nconst PictureStudioEngine = { version: VERSION, create: createEngine }\nexport default PictureStudioEngine\n"],"names":["reportError","context","error","createEngine","config","self","state","createState","savedLayers.loadSavedLayers","notify","getUiState","ev","fn","f","sel","getSel","ZOOM_MAX","ZOOM_MIN","savedLayers.canSearch","e","polyStatus","layerActions.layerName","fitStage","render","zoomIn","zoomOut","zoomToFit","m","mode.setMode","id","mode.selectLayer","history.undo","history.redo","deg","layerActions.rotateSelected","geometry.rotate","hz","layerActions.flipSelected","geometry.flip","geometry.resetToOriginal","geometry.applyCrop","geometry.cancelCrop","v","geometry.setCropRatio","textEditor.commitTextEdit","src","stickers.addSticker","list","layerActions.deleteLayer","layerActions.deleteSelected","layerActions.duplicateSelected","layerActions.bringSelectedToFront","layerActions.sendSelectedToBack","key","value","layerActions.setAdjustment","layerActions.setFilter","layerActions.selectShapeType","layerActions.setShapeFill","layerActions.setShapeWidth","layerActions.setBrushSize","layerActions.setBrushStyle","layerActions.setTextFont","layerActions.setTextSize","layerActions.setTextColor","layerActions.setShapeColor","layerActions.setDrawColor","layerActions.setSelectedColor","layerActions.setSelectedText","layerActions.setSelectedFont","layerActions.setSelectedTextSize","layerActions.setSelectedBoxWidth","layerActions.setSelectedShapeFill","layerActions.setSelectedWidth","layerActions.setSelectedLabel","layerActions.setSelectedLabelSize","layerActions.setSelectedLabelColor","layerActions.setSelectedLabelFont","layerActions.setSelectedClosed","layerActions.setSelectedLabelSide","layerActions.setSelectedLabelOffset","layerActions.setSelectedLabelPos","layerActions.setSelectedLabelRotate","layerActions.setSelectedLabelDx","layerActions.setSelectedLabelDy","layerActions.setMultiPointMode","resumePoly","finishPoly","undoPolyPoint","cancelPoly","name","savedLayers.saveSelectedLayer","savedLayers.insertSavedLayer","savedLayers.deleteSavedLayer","savedLayers.renameSavedLayer","savedLayers.setSavedLayers","entry","savedLayers.insertSavedLayerEntry","q","savedLayers.searchSavedLayers","saveExport.doSave","opts","saveExport.produce","readState","refs","mountEngine","file","saveExport.normalizeSource","d","saveExport.doLoadImage","emit","finish","syncCanvasSize","saveExport.loadState","s","emptySourceCanvas","resetAdjValues","k","PictureStudioEngine","VERSION"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index130.es.js","sources":["../src/components/organisms/image-editor/picture-studio-engine.js"],"sourcesContent":["import {\n FILTERS,\n SWATCHES,\n SHAPES,\n FONTS,\n CROP_RATIOS,\n VERSION,\n} from './engine/constants.js'\nimport {\n createState,\n emit,\n emptySourceCanvas,\n getSel,\n getState as readState,\n resetAdjValues,\n} from './engine/state.js'\nimport {\n fitStage,\n render,\n syncCanvasSize,\n zoomIn,\n zoomOut,\n zoomToFit,\n ZOOM_MIN,\n ZOOM_MAX,\n} from './engine/rendering.js'\nimport * as history from './engine/history.js'\nimport * as geometry from './engine/geometry.js'\nimport * as mode from './engine/mode.js'\nimport * as textEditor from './engine/text-editor.js'\nimport * as stickers from './engine/stickers.js'\nimport * as layerActions from './engine/layer-actions.js'\nimport * as saveExport from './engine/save-export.js'\nimport * as savedLayers from './engine/saved-layers.js'\nimport { mount as mountEngine } from './engine/mount.js'\nimport {\n resumePoly,\n polyStatus,\n finishPoly,\n cancelPoly,\n undoPolyPoint,\n} from './engine/pointer.js'\n\nexport { FILTERS, SWATCHES, SHAPES, FONTS, CROP_RATIOS }\n\nfunction reportError(context, error) {\n // Surfaces in DevTools via window.onerror with the stack intact, without\n // aborting the caller and without a console call the lint config forbids.\n queueMicrotask(() => {\n throw new Error(`[image-editor] ${context}`, { cause: error })\n })\n}\n\nfunction createEngine(config) {\n config = config || {}\n const self = {}\n const state = createState(config)\n savedLayers.loadSavedLayers(state)\n\n function notify() {\n // onUiChange is host code (a React setState, usually). A throw here used to\n // abort open() before its 'open' event fired, leaving isOpenFlag true while\n // the UI stayed closed -- after which every open() silently no-opped and the\n // editor could never be reopened.\n try {\n if (typeof config.onUiChange === 'function') {\n config.onUiChange(getUiState())\n }\n } catch (e) {\n reportError('onUiChange threw', e)\n }\n }\n state.notify = notify\n\n self.on = (ev, fn) => {\n if (state.listeners[ev]) state.listeners[ev].push(fn)\n return self\n }\n self.off = (ev, fn) => {\n if (state.listeners[ev])\n state.listeners[ev] = state.listeners[ev].filter((f) => f !== fn)\n return self\n }\n\n function getUiState() {\n const sel = getSel(state)\n return {\n hasImage: !!state.sourceCanvas.width,\n mode: state.mode,\n canUndo: state.undoStack.length > 0,\n canRedo: state.redoStack.length > 0,\n canReset: !!state.originalCanvas,\n zoomPercent: Math.round(state.zoom * 100),\n canZoomIn: state.zoom < ZOOM_MAX - 1e-6,\n canZoomOut: state.zoom > ZOOM_MIN + 1e-6,\n closeOnBackdrop: config.closeOnBackdrop !== false,\n canOpenImage: config.allowOpenImage !== false,\n isEditingText: !!state.editingLayer,\n editingSelectAll: state.editingSelectAll,\n dims: state.sourceCanvas.width\n ? `${state.sourceCanvas.width} × ${state.sourceCanvas.height} px`\n : 'No image',\n statusText: state.statusText,\n isSaving: state.isSaving,\n isLoadingImage: state.isLoadingImage,\n adjustments: { ...state.adj },\n selectedShapeType: state.selectedShapeType,\n multiPointMode: !!state.multiPointMode,\n canSearchSavedLayers: savedLayers.canSearch(state),\n savedLayers: (state.savedLayers || []).map((e) => ({\n id: e.id,\n name: e.name,\n type: e.layer?.type,\n createdAt: e.createdAt,\n })),\n poly: polyStatus(state),\n textColor: state.textColor,\n shapeColor: state.shapeColor,\n drawColor: state.drawColor,\n shapeFill: state.shapeFill,\n shapeWidth: state.shapeWidth,\n brushSize: state.brushSize,\n brushStyle: state.brushStyle,\n textFont: state.textFont,\n textSize: state.textSize,\n cropRatio: state.cropRatio,\n stickers: state.stickers,\n selected: sel\n ? {\n id: sel.id,\n type: sel.type,\n color: sel.color,\n text: sel.type === 'text' ? sel.text : undefined,\n font: sel.type === 'text' ? sel.font : undefined,\n size: sel.type === 'text' ? sel.size : undefined,\n boxWidth: sel.type === 'text' ? sel.boxWidth : undefined,\n fill: sel.type === 'shape' ? sel.fill : undefined,\n width:\n sel.type === 'shape' || sel.type === 'stroke'\n ? sel.width\n : undefined,\n shape: sel.type === 'shape' ? sel.shape : undefined,\n label: sel.type === 'shape' ? (sel.label ?? '') : undefined,\n labelSize: sel.type === 'shape' ? sel.labelSize : undefined,\n labelColor: sel.type === 'shape' ? sel.labelColor : undefined,\n labelFont: sel.type === 'shape' ? sel.labelFont : undefined,\n pointCount:\n sel.type === 'shape' && sel.points\n ? sel.points.length\n : undefined,\n closed: sel.type === 'shape' ? !!sel.closed : undefined,\n labelSide:\n sel.type === 'shape' ? (sel.labelSide ?? 'above') : undefined,\n labelOffset: sel.type === 'shape' ? sel.labelOffset : undefined,\n labelPos: sel.type === 'shape' ? (sel.labelPos ?? 0.5) : undefined,\n labelRotate:\n sel.type === 'shape' ? sel.labelRotate !== false : undefined,\n labelDx: sel.type === 'shape' ? (sel.labelDx ?? 0) : undefined,\n labelDy: sel.type === 'shape' ? (sel.labelDy ?? 0) : undefined,\n }\n : null,\n layers: state.layers.map((l) => ({\n id: l.id,\n type: l.type,\n name: layerActions.layerName(l),\n })),\n }\n }\n self.getUiState = getUiState\n\n self.refitStage = () => {\n if (!state.mounted || !state.sourceCanvas.width) return\n fitStage(state)\n render(state)\n }\n self.zoomIn = () => zoomIn(state)\n self.zoomOut = () => zoomOut(state)\n self.zoomToFit = () => zoomToFit(state)\n self.setMode = (m) => mode.setMode(state, m)\n self.selectLayer = (id) => mode.selectLayer(state, id)\n self.undo = () => history.undo(state)\n self.redo = () => history.redo(state)\n // With a layer selected these act on that layer; otherwise on the image.\n self.rotate = (deg) =>\n state.selectedId != null\n ? layerActions.rotateSelected(state, deg)\n : geometry.rotate(state, deg)\n self.flip = (hz) =>\n state.selectedId != null\n ? layerActions.flipSelected(state, hz)\n : geometry.flip(state, hz)\n // Explicit escape hatches, so the image can still be transformed directly.\n self.rotateImage = (deg) => geometry.rotate(state, deg)\n self.flipImage = (hz) => geometry.flip(state, hz)\n self.resetToOriginal = () => geometry.resetToOriginal(state)\n self.applyCrop = () => geometry.applyCrop(state)\n self.cancelCrop = () => geometry.cancelCrop(state)\n self.setCropRatio = (v) => geometry.setCropRatio(state, v)\n self.commitTextEdit = () => textEditor.commitTextEdit(state)\n self.addSticker = (src) => stickers.addSticker(state, src)\n self.setStickers = (list) => {\n state.stickers = list || []\n notify()\n }\n self.deleteLayer = (id) => layerActions.deleteLayer(state, id)\n self.deleteSelected = () => layerActions.deleteSelected(state)\n self.duplicateSelected = () => layerActions.duplicateSelected(state)\n self.bringSelectedToFront = () => layerActions.bringSelectedToFront(state)\n self.sendSelectedToBack = () => layerActions.sendSelectedToBack(state)\n self.setAdjustment = (key, value) =>\n layerActions.setAdjustment(state, key, value)\n self.setFilter = (id) => layerActions.setFilter(state, id)\n self.selectShapeType = (id) => layerActions.selectShapeType(state, id)\n self.setShapeFill = (v) => layerActions.setShapeFill(state, v)\n self.setShapeWidth = (v) => layerActions.setShapeWidth(state, v)\n self.setBrushSize = (v) => layerActions.setBrushSize(state, v)\n self.setBrushStyle = (v) => layerActions.setBrushStyle(state, v)\n self.setTextFont = (v) => layerActions.setTextFont(state, v)\n self.setTextSize = (v) => layerActions.setTextSize(state, v)\n self.setTextColor = (v) => layerActions.setTextColor(state, v)\n self.setShapeColor = (v) => layerActions.setShapeColor(state, v)\n self.setDrawColor = (v) => layerActions.setDrawColor(state, v)\n self.setSelectedColor = (v) => layerActions.setSelectedColor(state, v)\n self.setSelectedText = (v) => layerActions.setSelectedText(state, v)\n self.setSelectedFont = (v) => layerActions.setSelectedFont(state, v)\n self.setSelectedTextSize = (v) => layerActions.setSelectedTextSize(state, v)\n self.setSelectedBoxWidth = (v) => layerActions.setSelectedBoxWidth(state, v)\n self.setSelectedShapeFill = (v) => layerActions.setSelectedShapeFill(state, v)\n self.setSelectedWidth = (v) => layerActions.setSelectedWidth(state, v)\n self.setSelectedLabel = (v) => layerActions.setSelectedLabel(state, v)\n self.setSelectedLabelSize = (v) => layerActions.setSelectedLabelSize(state, v)\n self.setSelectedLabelColor = (v) =>\n layerActions.setSelectedLabelColor(state, v)\n self.setSelectedLabelFont = (v) => layerActions.setSelectedLabelFont(state, v)\n self.setSelectedClosed = (v) => layerActions.setSelectedClosed(state, v)\n self.setSelectedLabelSide = (v) => layerActions.setSelectedLabelSide(state, v)\n self.setSelectedLabelOffset = (v) =>\n layerActions.setSelectedLabelOffset(state, v)\n self.setSelectedLabelPos = (v) => layerActions.setSelectedLabelPos(state, v)\n self.setSelectedLabelRotate = (v) =>\n layerActions.setSelectedLabelRotate(state, v)\n self.setSelectedLabelDx = (v) => layerActions.setSelectedLabelDx(state, v)\n self.setSelectedLabelDy = (v) => layerActions.setSelectedLabelDy(state, v)\n self.setMultiPointMode = (v) => layerActions.setMultiPointMode(state, v)\n self.continueSelectedLine = () => resumePoly(state)\n // Touch has no Enter/Esc/Backspace, so every session action needs a button.\n self.finishLine = () => finishPoly(state, false)\n self.closeLine = () => finishPoly(state, true)\n self.undoLinePoint = () => undoPolyPoint(state)\n self.cancelLine = () => cancelPoly(state)\n self.saveSelectedLayer = (name) => savedLayers.saveSelectedLayer(state, name)\n self.insertSavedLayer = (id) => savedLayers.insertSavedLayer(state, id)\n self.deleteSavedLayer = (id) => savedLayers.deleteSavedLayer(state, id)\n self.renameSavedLayer = (id, name) =>\n savedLayers.renameSavedLayer(state, id, name)\n self.getSavedLayers = () => (state.savedLayers || []).slice()\n self.setSavedLayers = (list) => savedLayers.setSavedLayers(state, list)\n self.insertSavedLayerEntry = (entry) =>\n savedLayers.insertSavedLayerEntry(state, entry)\n self.searchSavedLayers = (q) => savedLayers.searchSavedLayers(state, q)\n self.save = () => saveExport.doSave(state, self)\n self.export = (opts) => {\n opts = opts || {}\n if (!state.sourceCanvas.width) return Promise.resolve(null)\n return saveExport.produce(state, opts.type, opts.quality)\n }\n self.getState = () => readState(state)\n self.mount = (refs) => mountEngine(state, self, refs)\n self.openFile = (file) =>\n saveExport.normalizeSource(state, file, (d) =>\n saveExport.doLoadImage(state, d)\n )\n\n self.open = (opts) => {\n opts = opts || {}\n if (state.isOpenFlag) {\n // Already flagged open. Re-emit rather than only notifying: if the host\n // never saw the last 'open' -- a throw mid-open, or a wrapper that hid\n // itself without calling close -- the flag and the UI have drifted apart,\n // and every later open() would no-op, leaving a permanently dead button.\n notify()\n emit(state, 'open', {})\n return self\n }\n state.isOpenFlag = true\n const finish = () => {\n try {\n if (state.mounted && state.sourceCanvas.width) {\n syncCanvasSize(state)\n render(state)\n }\n } catch (e) {\n // A render failure must not strand isOpenFlag: the event below is what\n // the host listens on, and without it the editor can never reopen.\n reportError('render on open failed', e)\n }\n notify()\n emit(state, 'open', {})\n }\n if (opts.state) {\n saveExport.loadState(state, opts.state)\n setTimeout(finish, 0)\n } else if (opts.image) {\n saveExport.normalizeSource(state, opts.image, (d) => {\n saveExport.doLoadImage(state, d)\n setTimeout(finish, 0)\n })\n } else {\n setTimeout(finish, 0)\n }\n return self\n }\n self.close = () => {\n state.isOpenFlag = false\n try {\n textEditor.commitTextEdit(state)\n } catch (e) {\n reportError('commit on close failed', e)\n }\n notify()\n emit(state, 'close', {})\n return self\n }\n self.loadImage = (src) => {\n saveExport.normalizeSource(state, src, (d) =>\n saveExport.doLoadImage(state, d)\n )\n return self\n }\n self.loadState = (s) => {\n saveExport.loadState(state, s)\n return self\n }\n self.reset = () => {\n state.sourceCanvas = emptySourceCanvas()\n state.originalCanvas = null\n state.layers = []\n state.selectedId = null\n state.undoStack = []\n state.redoStack = []\n state.zoom = 1\n resetAdjValues(state)\n state.statusText = 'Ready'\n notify()\n return self\n }\n self.isOpen = () => state.isOpenFlag\n self.destroy = () => {\n if (self._keyHandler)\n document.removeEventListener('keydown', self._keyHandler)\n if (self._resizeHandler)\n window.removeEventListener('resize', self._resizeHandler)\n Object.keys(state.listeners).forEach((k) => (state.listeners[k] = []))\n }\n\n if (config.autoOpen) self.open({ image: config.image, state: config.state })\n\n return self\n}\n\nconst PictureStudioEngine = { version: VERSION, create: createEngine }\nexport default PictureStudioEngine\n"],"names":["reportError","context","error","createEngine","config","self","state","createState","savedLayers.loadSavedLayers","notify","getUiState","ev","fn","f","sel","getSel","ZOOM_MAX","ZOOM_MIN","savedLayers.canSearch","e","polyStatus","layerActions.layerName","fitStage","render","zoomIn","zoomOut","zoomToFit","m","mode.setMode","id","mode.selectLayer","history.undo","history.redo","deg","layerActions.rotateSelected","geometry.rotate","hz","layerActions.flipSelected","geometry.flip","geometry.resetToOriginal","geometry.applyCrop","geometry.cancelCrop","v","geometry.setCropRatio","textEditor.commitTextEdit","src","stickers.addSticker","list","layerActions.deleteLayer","layerActions.deleteSelected","layerActions.duplicateSelected","layerActions.bringSelectedToFront","layerActions.sendSelectedToBack","key","value","layerActions.setAdjustment","layerActions.setFilter","layerActions.selectShapeType","layerActions.setShapeFill","layerActions.setShapeWidth","layerActions.setBrushSize","layerActions.setBrushStyle","layerActions.setTextFont","layerActions.setTextSize","layerActions.setTextColor","layerActions.setShapeColor","layerActions.setDrawColor","layerActions.setSelectedColor","layerActions.setSelectedText","layerActions.setSelectedFont","layerActions.setSelectedTextSize","layerActions.setSelectedBoxWidth","layerActions.setSelectedShapeFill","layerActions.setSelectedWidth","layerActions.setSelectedLabel","layerActions.setSelectedLabelSize","layerActions.setSelectedLabelColor","layerActions.setSelectedLabelFont","layerActions.setSelectedClosed","layerActions.setSelectedLabelSide","layerActions.setSelectedLabelOffset","layerActions.setSelectedLabelPos","layerActions.setSelectedLabelRotate","layerActions.setSelectedLabelDx","layerActions.setSelectedLabelDy","layerActions.setMultiPointMode","resumePoly","finishPoly","undoPolyPoint","cancelPoly","name","savedLayers.saveSelectedLayer","savedLayers.insertSavedLayer","savedLayers.deleteSavedLayer","savedLayers.renameSavedLayer","savedLayers.setSavedLayers","entry","savedLayers.insertSavedLayerEntry","q","savedLayers.searchSavedLayers","saveExport.doSave","opts","saveExport.produce","readState","refs","mountEngine","file","saveExport.normalizeSource","d","saveExport.doLoadImage","emit","finish","syncCanvasSize","saveExport.loadState","s","emptySourceCanvas","resetAdjValues","k","PictureStudioEngine","VERSION"],"mappings":";;;;;;;;;;;;;;AA6CA,SAASA,EAAYC,GAASC,GAAO;AAGnC,iBAAe,MAAM;AACnB,UAAM,IAAI,MAAM,kBAAkBD,CAAO,IAAI,EAAE,OAAOC,EAAK,CAAE;AAAA,EAC/D,CAAC;AACH;AAEA,SAASC,GAAaC,GAAQ;AAC5B,EAAAA,IAASA,KAAU,CAAA;AACnB,QAAMC,IAAO,CAAA,GACPC,IAAQC,EAAYH,CAAM;AAChCI,EAAAA,GAA4BF,CAAK;AAEjC,WAASG,IAAS;AAKhB,QAAI;AACF,MAAI,OAAOL,EAAO,cAAe,cAC/BA,EAAO,WAAWM,EAAU,CAAE;AAAA,IAElC,SAAS,GAAG;AACV,MAAAV,EAAY,oBAAoB,CAAC;AAAA,IACnC;AAAA,EACF;AACA,EAAAM,EAAM,SAASG,GAEfJ,EAAK,KAAK,CAACM,GAAIC,OACTN,EAAM,UAAUK,CAAE,KAAGL,EAAM,UAAUK,CAAE,EAAE,KAAKC,CAAE,GAC7CP,IAETA,EAAK,MAAM,CAACM,GAAIC,OACVN,EAAM,UAAUK,CAAE,MACpBL,EAAM,UAAUK,CAAE,IAAIL,EAAM,UAAUK,CAAE,EAAE,OAAO,CAACE,MAAMA,MAAMD,CAAE,IAC3DP;AAGT,WAASK,IAAa;AACpB,UAAMI,IAAMC,EAAOT,CAAK;AACxB,WAAO;AAAA,MACL,UAAU,CAAC,CAACA,EAAM,aAAa;AAAA,MAC/B,MAAMA,EAAM;AAAA,MACZ,SAASA,EAAM,UAAU,SAAS;AAAA,MAClC,SAASA,EAAM,UAAU,SAAS;AAAA,MAClC,UAAU,CAAC,CAACA,EAAM;AAAA,MAClB,aAAa,KAAK,MAAMA,EAAM,OAAO,GAAG;AAAA,MACxC,WAAWA,EAAM,OAAOU,IAAW;AAAA,MACnC,YAAYV,EAAM,OAAOW,IAAW;AAAA,MACpC,iBAAiBb,EAAO,oBAAoB;AAAA,MAC5C,cAAcA,EAAO,mBAAmB;AAAA,MACxC,eAAe,CAAC,CAACE,EAAM;AAAA,MACvB,kBAAkBA,EAAM;AAAA,MACxB,MAAMA,EAAM,aAAa,QACrB,GAAGA,EAAM,aAAa,KAAK,MAAMA,EAAM,aAAa,MAAM,QAC1D;AAAA,MACJ,YAAYA,EAAM;AAAA,MAClB,UAAUA,EAAM;AAAA,MAChB,gBAAgBA,EAAM;AAAA,MACtB,aAAa,EAAE,GAAGA,EAAM,IAAG;AAAA,MAC3B,mBAAmBA,EAAM;AAAA,MACzB,gBAAgB,CAAC,CAACA,EAAM;AAAA,MACxB,sBAAsBY,GAAsBZ,CAAK;AAAA,MACjD,cAAcA,EAAM,eAAe,CAAA,GAAI,IAAI,CAACa,OAAO;AAAA,QACjD,IAAIA,EAAE;AAAA,QACN,MAAMA,EAAE;AAAA,QACR,MAAMA,EAAE,OAAO;AAAA,QACf,WAAWA,EAAE;AAAA,MACrB,EAAQ;AAAA,MACF,MAAMC,GAAWd,CAAK;AAAA,MACtB,WAAWA,EAAM;AAAA,MACjB,YAAYA,EAAM;AAAA,MAClB,WAAWA,EAAM;AAAA,MACjB,WAAWA,EAAM;AAAA,MACjB,YAAYA,EAAM;AAAA,MAClB,WAAWA,EAAM;AAAA,MACjB,YAAYA,EAAM;AAAA,MAClB,UAAUA,EAAM;AAAA,MAChB,UAAUA,EAAM;AAAA,MAChB,WAAWA,EAAM;AAAA,MACjB,UAAUA,EAAM;AAAA,MAChB,UAAUQ,IACN;AAAA,QACE,IAAIA,EAAI;AAAA,QACR,MAAMA,EAAI;AAAA,QACV,OAAOA,EAAI;AAAA,QACX,MAAMA,EAAI,SAAS,SAASA,EAAI,OAAO;AAAA,QACvC,MAAMA,EAAI,SAAS,SAASA,EAAI,OAAO;AAAA,QACvC,MAAMA,EAAI,SAAS,SAASA,EAAI,OAAO;AAAA,QACvC,UAAUA,EAAI,SAAS,SAASA,EAAI,WAAW;AAAA,QAC/C,MAAMA,EAAI,SAAS,UAAUA,EAAI,OAAO;AAAA,QACxC,OACEA,EAAI,SAAS,WAAWA,EAAI,SAAS,WACjCA,EAAI,QACJ;AAAA,QACN,OAAOA,EAAI,SAAS,UAAUA,EAAI,QAAQ;AAAA,QAC1C,OAAOA,EAAI,SAAS,UAAWA,EAAI,SAAS,KAAM;AAAA,QAClD,WAAWA,EAAI,SAAS,UAAUA,EAAI,YAAY;AAAA,QAClD,YAAYA,EAAI,SAAS,UAAUA,EAAI,aAAa;AAAA,QACpD,WAAWA,EAAI,SAAS,UAAUA,EAAI,YAAY;AAAA,QAClD,YACEA,EAAI,SAAS,WAAWA,EAAI,SACxBA,EAAI,OAAO,SACX;AAAA,QACN,QAAQA,EAAI,SAAS,UAAU,CAAC,CAACA,EAAI,SAAS;AAAA,QAC9C,WACEA,EAAI,SAAS,UAAWA,EAAI,aAAa,UAAW;AAAA,QACtD,aAAaA,EAAI,SAAS,UAAUA,EAAI,cAAc;AAAA,QACtD,UAAUA,EAAI,SAAS,UAAWA,EAAI,YAAY,MAAO;AAAA,QACzD,aACEA,EAAI,SAAS,UAAUA,EAAI,gBAAgB,KAAQ;AAAA,QACrD,SAASA,EAAI,SAAS,UAAWA,EAAI,WAAW,IAAK;AAAA,QACrD,SAASA,EAAI,SAAS,UAAWA,EAAI,WAAW,IAAK;AAAA,MACjE,IACU;AAAA,MACJ,QAAQR,EAAM,OAAO,IAAI,CAAC,OAAO;AAAA,QAC/B,IAAI,EAAE;AAAA,QACN,MAAM,EAAE;AAAA,QACR,MAAMe,GAAuB,CAAC;AAAA,MACtC,EAAQ;AAAA,IACR;AAAA,EACE;AACA,SAAAhB,EAAK,aAAaK,GAElBL,EAAK,aAAa,MAAM;AACtB,IAAI,CAACC,EAAM,WAAW,CAACA,EAAM,aAAa,UAC1CgB,EAAShB,CAAK,GACdiB,EAAOjB,CAAK;AAAA,EACd,GACAD,EAAK,SAAS,MAAMmB,EAAOlB,CAAK,GAChCD,EAAK,UAAU,MAAMoB,EAAQnB,CAAK,GAClCD,EAAK,YAAY,MAAMqB,EAAUpB,CAAK,GACtCD,EAAK,UAAU,CAACsB,MAAMC,EAAatB,GAAOqB,CAAC,GAC3CtB,EAAK,cAAc,CAACwB,MAAOC,EAAiBxB,GAAOuB,CAAE,GACrDxB,EAAK,OAAO,MAAM0B,EAAazB,CAAK,GACpCD,EAAK,OAAO,MAAM2B,EAAa1B,CAAK,GAEpCD,EAAK,SAAS,CAAC4B,MACb3B,EAAM,cAAc,OAChB4B,GAA4B5B,GAAO2B,CAAG,IACtCE,EAAgB7B,GAAO2B,CAAG,GAChC5B,EAAK,OAAO,CAAC+B,MACX9B,EAAM,cAAc,OAChB+B,GAA0B/B,GAAO8B,CAAE,IACnCE,EAAchC,GAAO8B,CAAE,GAE7B/B,EAAK,cAAc,CAAC4B,MAAQE,EAAgB7B,GAAO2B,CAAG,GACtD5B,EAAK,YAAY,CAAC+B,MAAOE,EAAchC,GAAO8B,CAAE,GAChD/B,EAAK,kBAAkB,MAAMkC,EAAyBjC,CAAK,GAC3DD,EAAK,YAAY,MAAMmC,EAAmBlC,CAAK,GAC/CD,EAAK,aAAa,MAAMoC,EAAoBnC,CAAK,GACjDD,EAAK,eAAe,CAACqC,MAAMC,EAAsBrC,GAAOoC,CAAC,GACzDrC,EAAK,iBAAiB,MAAMuC,EAA0BtC,CAAK,GAC3DD,EAAK,aAAa,CAACwC,MAAQC,EAAoBxC,GAAOuC,CAAG,GACzDxC,EAAK,cAAc,CAAC0C,MAAS;AAC3B,IAAAzC,EAAM,WAAWyC,KAAQ,CAAA,GACzBtC,EAAM;AAAA,EACR,GACAJ,EAAK,cAAc,CAACwB,MAAOmB,EAAyB1C,GAAOuB,CAAE,GAC7DxB,EAAK,iBAAiB,MAAM4C,EAA4B3C,CAAK,GAC7DD,EAAK,oBAAoB,MAAM6C,EAA+B5C,CAAK,GACnED,EAAK,uBAAuB,MAAM8C,EAAkC7C,CAAK,GACzED,EAAK,qBAAqB,MAAM+C,EAAgC9C,CAAK,GACrED,EAAK,gBAAgB,CAACgD,GAAKC,MACzBC,EAA2BjD,GAAO+C,GAAKC,CAAK,GAC9CjD,EAAK,YAAY,CAACwB,MAAO2B,EAAuBlD,GAAOuB,CAAE,GACzDxB,EAAK,kBAAkB,CAACwB,MAAO4B,EAA6BnD,GAAOuB,CAAE,GACrExB,EAAK,eAAe,CAACqC,MAAMgB,EAA0BpD,GAAOoC,CAAC,GAC7DrC,EAAK,gBAAgB,CAACqC,MAAMiB,EAA2BrD,GAAOoC,CAAC,GAC/DrC,EAAK,eAAe,CAACqC,MAAMkB,EAA0BtD,GAAOoC,CAAC,GAC7DrC,EAAK,gBAAgB,CAACqC,MAAMmB,EAA2BvD,GAAOoC,CAAC,GAC/DrC,EAAK,cAAc,CAACqC,MAAMoB,EAAyBxD,GAAOoC,CAAC,GAC3DrC,EAAK,cAAc,CAACqC,MAAMqB,EAAyBzD,GAAOoC,CAAC,GAC3DrC,EAAK,eAAe,CAACqC,MAAMsB,GAA0B1D,GAAOoC,CAAC,GAC7DrC,EAAK,gBAAgB,CAACqC,MAAMuB,GAA2B3D,GAAOoC,CAAC,GAC/DrC,EAAK,eAAe,CAACqC,MAAMwB,GAA0B5D,GAAOoC,CAAC,GAC7DrC,EAAK,mBAAmB,CAACqC,MAAMyB,GAA8B7D,GAAOoC,CAAC,GACrErC,EAAK,kBAAkB,CAACqC,MAAM0B,GAA6B9D,GAAOoC,CAAC,GACnErC,EAAK,kBAAkB,CAACqC,MAAM2B,GAA6B/D,GAAOoC,CAAC,GACnErC,EAAK,sBAAsB,CAACqC,MAAM4B,GAAiChE,GAAOoC,CAAC,GAC3ErC,EAAK,sBAAsB,CAACqC,MAAM6B,GAAiCjE,GAAOoC,CAAC,GAC3ErC,EAAK,uBAAuB,CAACqC,MAAM8B,GAAkClE,GAAOoC,CAAC,GAC7ErC,EAAK,mBAAmB,CAACqC,MAAM+B,GAA8BnE,GAAOoC,CAAC,GACrErC,EAAK,mBAAmB,CAACqC,MAAMgC,GAA8BpE,GAAOoC,CAAC,GACrErC,EAAK,uBAAuB,CAACqC,MAAMiC,GAAkCrE,GAAOoC,CAAC,GAC7ErC,EAAK,wBAAwB,CAACqC,MAC5BkC,GAAmCtE,GAAOoC,CAAC,GAC7CrC,EAAK,uBAAuB,CAACqC,MAAMmC,GAAkCvE,GAAOoC,CAAC,GAC7ErC,EAAK,oBAAoB,CAACqC,MAAMoC,GAA+BxE,GAAOoC,CAAC,GACvErC,EAAK,uBAAuB,CAACqC,MAAMqC,GAAkCzE,GAAOoC,CAAC,GAC7ErC,EAAK,yBAAyB,CAACqC,MAC7BsC,GAAoC1E,GAAOoC,CAAC,GAC9CrC,EAAK,sBAAsB,CAACqC,MAAMuC,GAAiC3E,GAAOoC,CAAC,GAC3ErC,EAAK,yBAAyB,CAACqC,MAC7BwC,GAAoC5E,GAAOoC,CAAC,GAC9CrC,EAAK,qBAAqB,CAACqC,MAAMyC,GAAgC7E,GAAOoC,CAAC,GACzErC,EAAK,qBAAqB,CAACqC,MAAM0C,GAAgC9E,GAAOoC,CAAC,GACzErC,EAAK,oBAAoB,CAACqC,MAAM2C,GAA+B/E,GAAOoC,CAAC,GACvErC,EAAK,uBAAuB,MAAMiF,GAAWhF,CAAK,GAElDD,EAAK,aAAa,MAAMkF,EAAWjF,GAAO,EAAK,GAC/CD,EAAK,YAAY,MAAMkF,EAAWjF,GAAO,EAAI,GAC7CD,EAAK,gBAAgB,MAAMmF,GAAclF,CAAK,GAC9CD,EAAK,aAAa,MAAMoF,GAAWnF,CAAK,GACxCD,EAAK,oBAAoB,CAACqF,MAASC,GAA8BrF,GAAOoF,CAAI,GAC5ErF,EAAK,mBAAmB,CAACwB,MAAO+D,GAA6BtF,GAAOuB,CAAE,GACtExB,EAAK,mBAAmB,CAACwB,MAAOgE,GAA6BvF,GAAOuB,CAAE,GACtExB,EAAK,mBAAmB,CAACwB,GAAI6D,MAC3BI,GAA6BxF,GAAOuB,GAAI6D,CAAI,GAC9CrF,EAAK,iBAAiB,OAAOC,EAAM,eAAe,CAAA,GAAI,MAAK,GAC3DD,EAAK,iBAAiB,CAAC0C,MAASgD,GAA2BzF,GAAOyC,CAAI,GACtE1C,EAAK,wBAAwB,CAAC2F,MAC5BC,GAAkC3F,GAAO0F,CAAK,GAChD3F,EAAK,oBAAoB,CAAC6F,MAAMC,GAA8B7F,GAAO4F,CAAC,GACtE7F,EAAK,OAAO,MAAM+F,GAAkB9F,GAAOD,CAAI,GAC/CA,EAAK,SAAS,CAACgG,OACbA,IAAOA,KAAQ,CAAA,GACV/F,EAAM,aAAa,QACjBgG,GAAmBhG,GAAO+F,EAAK,MAAMA,EAAK,OAAO,IADlB,QAAQ,QAAQ,IAAI,IAG5DhG,EAAK,WAAW,MAAMkG,EAAUjG,CAAK,GACrCD,EAAK,QAAQ,CAACmG,MAASC,GAAYnG,GAAOD,GAAMmG,CAAI,GACpDnG,EAAK,WAAW,CAACqG,MACfC;AAAAA,IAA2BrG;AAAA,IAAOoG;AAAA,IAAM,CAACE,MACvCC,EAAuBvG,GAAOsG,CAAC;AAAA,EACrC,GAEEvG,EAAK,OAAO,CAACgG,MAAS;AAEpB,QADAA,IAAOA,KAAQ,CAAA,GACX/F,EAAM;AAKR,aAAAG,EAAM,GACNqG,EAAKxG,GAAO,QAAQ,CAAA,CAAE,GACfD;AAET,IAAAC,EAAM,aAAa;AACnB,UAAMyG,IAAS,MAAM;AACnB,UAAI;AACF,QAAIzG,EAAM,WAAWA,EAAM,aAAa,UACtC0G,EAAe1G,CAAK,GACpBiB,EAAOjB,CAAK;AAAA,MAEhB,SAASa,GAAG;AAGV,QAAAnB,EAAY,yBAAyBmB,CAAC;AAAA,MACxC;AACA,MAAAV,EAAM,GACNqG,EAAKxG,GAAO,QAAQ,CAAA,CAAE;AAAA,IACxB;AACA,WAAI+F,EAAK,SACPY,EAAqB3G,GAAO+F,EAAK,KAAK,GACtC,WAAWU,GAAQ,CAAC,KACXV,EAAK,QACdM,EAA2BrG,GAAO+F,EAAK,OAAO,CAACO,MAAM;AACnDC,MAAAA,EAAuBvG,GAAOsG,CAAC,GAC/B,WAAWG,GAAQ,CAAC;AAAA,IACtB,CAAC,IAED,WAAWA,GAAQ,CAAC,GAEf1G;AAAA,EACT,GACAA,EAAK,QAAQ,MAAM;AACjB,IAAAC,EAAM,aAAa;AACnB,QAAI;AACFsC,MAAAA,EAA0BtC,CAAK;AAAA,IACjC,SAAS,GAAG;AACV,MAAAN,EAAY,0BAA0B,CAAC;AAAA,IACzC;AACA,WAAAS,EAAM,GACNqG,EAAKxG,GAAO,SAAS,CAAA,CAAE,GAChBD;AAAA,EACT,GACAA,EAAK,YAAY,CAACwC,OAChB8D;AAAAA,IAA2BrG;AAAA,IAAOuC;AAAA,IAAK,CAAC+D,MACtCC,EAAuBvG,GAAOsG,CAAC;AAAA,EACrC,GACWvG,IAETA,EAAK,YAAY,CAAC6G,OAChBD,EAAqB3G,GAAO4G,CAAC,GACtB7G,IAETA,EAAK,QAAQ,OACXC,EAAM,eAAe6G,EAAiB,GACtC7G,EAAM,iBAAiB,MACvBA,EAAM,SAAS,CAAA,GACfA,EAAM,aAAa,MACnBA,EAAM,YAAY,CAAA,GAClBA,EAAM,YAAY,CAAA,GAClBA,EAAM,OAAO,GACb8G,EAAe9G,CAAK,GACpBA,EAAM,aAAa,SACnBG,EAAM,GACCJ,IAETA,EAAK,SAAS,MAAMC,EAAM,YAC1BD,EAAK,UAAU,MAAM;AACnB,IAAIA,EAAK,eACP,SAAS,oBAAoB,WAAWA,EAAK,WAAW,GACtDA,EAAK,kBACP,OAAO,oBAAoB,UAAUA,EAAK,cAAc,GAC1D,OAAO,KAAKC,EAAM,SAAS,EAAE,QAAQ,CAAC+G,MAAO/G,EAAM,UAAU+G,CAAC,IAAI,CAAA,CAAG;AAAA,EACvE,GAEIjH,EAAO,YAAUC,EAAK,KAAK,EAAE,OAAOD,EAAO,OAAO,OAAOA,EAAO,MAAK,CAAE,GAEpEC;AACT;AAEK,MAACiH,KAAsB,EAAE,SAASC,GAAS,QAAQpH,GAAY;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index131.es.js","sources":["../src/components/molecules/creatable-multi-combobox/creatable-multi-combobox.types.ts"],"sourcesContent":["import { PopoverContent } from '@/components/unstyled/popover/popover-components'\nimport React from 'react'\n\nexport type CreatableOption = {\n id: string\n name: string\n disabled?: boolean\n icon?: React.ReactElement\n}\n\nexport type PopoverContentProps = React.ComponentPropsWithoutRef<\n typeof PopoverContent\n>\n\n/** Replaces {{fieldId}} in URL with urlTemplateData[fieldId] */\nexport function interpolateUrl(\n url: string,\n data: Record<string, unknown>\n): string {\n return url.replace(/\\{\\{(\\w+)\\}\\}/g, (_, key) => {\n const val = data[key]\n return val != null ? String(val) : ''\n })\n}\n\nexport type CreatableMultiComboboxPropsType = {\n /** API URL to fetch options (POST). Supports {{fieldId}} for form value interpolation. Ignored if fetchOptions provided */\n optionsUrl?: string\n /** API URL to create new option (POST). Supports {{fieldId}} for form value interpolation. Ignored if createOption provided */\n createOptionUrl?: string\n /** Override: custom fetch for options. When provided, optionsUrl is ignored */\n fetchOptions?: () => Promise<CreatableOption[]>\n /** Override: custom create handler. When provided, createOptionUrl is ignored */\n createOption?: (value: string) => Promise<CreatableOption>\n /** Headers to include in API requests (e.g. Authorization from cookie). Can be sync or async */\n requestHeaders?:\n | Record<string, string>\n | (() => Record<string, string> | Promise<Record<string, string>>)\n /** Request body for fetch options API. When provided, overrides default { ...urlTemplateData, fieldId } */\n optionsRequestBody?: Record<string, unknown>\n /** Request body for create/upsert option API. Merged with { [createOptionValueKey]: value }. E.g. { type: \"zone\" } */\n createOptionRequestBody?: Record<string, unknown>\n /** Key for the typed value in create body. Default \"value\". Use \"email\" if API expects that key */\n createOptionValueKey?: string\n /** Extra body fields for create (e.g. { email: userEmail } from cookie). Merged last */\n createOptionExtraBody?:\n | Record<string, unknown>\n | (() => Record<string, unknown> | Promise<Record<string, unknown>>)\n /** When true, createOptionExtraBody is not merged (use when value key is \"email\" and extra would conflict) */\n skipCreateOptionExtraBody?: boolean\n /** Form values for URL interpolation (e.g. {{country}} -> values.country) */\n urlTemplateData?: Record<string, unknown>\n value: string[]\n fieldId: string\n placeholder?: string\n searchPlaceholder?: string\n emptyMessage?: string\n addCustomMessage?: (typedValue: string) => string\n /** Minimum number of values that must be selected */\n minSelected?: number\n /** Maximum number of values that can be selected */\n maxSelected?: number\n onChange: (value: string[]) => void\n container?: Element | null | undefined\n}\n"],"names":["interpolateUrl","url","data","_","key","val"],"mappings":"AAeO,SAASA,EACdC,GACAC,GACQ;AACR,SAAOD,EAAI,QAAQ,kBAAkB,CAACE,GAAGC,MAAQ;AAC/C,UAAMC,IAAMH,EAAKE,CAAG;AACpB,WAAOC,KAAO,OAAO,OAAOA,CAAG,IAAI;AAAA,EACrC,CAAC;AACH;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index132.es.js","sources":["../src/components/atoms/input/input.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const InputVariants = cva(\n ` h-[38px] w-full border flex items-center justify-between gap-1.5 relative mt-1.5 rounded-lg \n text-light-2 px-3 py-2\n file:border-0 file:bg-transparent\n placeholder:font-normal placeholder:text-light-4`,\n {\n variants: {\n isError: {\n true: '',\n false: '',\n },\n isFocused: {\n true: '',\n false: '',\n },\n disabled: {\n true: 'bg-light-3 border-neutral-2 cursor-not-allowed',\n false: '',\n },\n },\n defaultVariants: {\n isError: false,\n },\n compoundVariants: [\n {\n isError: true,\n isFocused: true,\n className: 'border-danger-2 ring-4 ring-danger-1',\n },\n {\n isError: false,\n isFocused: true,\n className: 'border-primary-2 ring-4 ring-primary-1',\n },\n {\n isError: true,\n isFocused: false,\n className: 'border-danger-2',\n },\n {\n isError: false,\n isFocused: false,\n className: 'border-light-2',\n },\n ],\n }\n)\n"],"names":["InputVariants","cva"],"mappings":";AAEO,MAAMA,IAAgBC;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAIA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,WAAW;AAAA,QACT,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,UAAU;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,IAEX,kBAAkB;AAAA,MAChB;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,EACF;AAEJ;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as e from "react";
|
|
2
2
|
import { OTPInput as l, OTPInputContext as u } from "input-otp";
|
|
3
3
|
import { Dot as f } from "lucide-react";
|
|
4
|
-
import { cn as n } from "./
|
|
5
|
-
import { OTPInputVariants as d } from "./
|
|
4
|
+
import { cn as n } from "./index91.es.js";
|
|
5
|
+
import { OTPInputVariants as d } from "./index165.es.js";
|
|
6
6
|
const O = e.forwardRef(({ className: t, containerClassName: a, ...r }, o) => /* @__PURE__ */ e.createElement(
|
|
7
7
|
l,
|
|
8
8
|
{
|
|
@@ -43,4 +43,4 @@ export {
|
|
|
43
43
|
I as InputOTPSeparator,
|
|
44
44
|
T as InputOTPSlot
|
|
45
45
|
};
|
|
46
|
-
//# sourceMappingURL=
|
|
46
|
+
//# sourceMappingURL=index133.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index133.es.js","sources":["../src/components/unstyled/otp-input/otp-input-component.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { OTPInput, OTPInputContext } from 'input-otp'\nimport { Dot } from 'lucide-react'\nimport { cn } from '@/lib/utils'\nimport { InputOTPSlotProps } from './otp-input.types'\nimport { OTPInputVariants } from './otp-input.styles'\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput> & { isError?: boolean }\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn('flex items-center gap-3', containerClassName)}\n className={cn(className)}\n {...props}\n inputMode=\"text\"\n />\n))\nInputOTP.displayName = 'InputOTP'\n\nconst InputOTPGroup = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center', className)} {...props} />\n))\nInputOTPGroup.displayName = 'InputOTPGroup'\n\nconst InputOTPSlot = React.forwardRef<HTMLDivElement, InputOTPSlotProps>(\n ({ index, className, isError, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index]\n return (\n <div\n ref={ref}\n className={cn(\n OTPInputVariants({ isError, isFocused: isActive }),\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-black duration-1000\" />\n </div>\n )}\n </div>\n )\n }\n)\n\nInputOTPSlot.displayName = 'InputOTPSlot'\n\nconst InputOTPSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Dot />\n </div>\n))\nInputOTPSeparator.displayName = 'InputOTPSeparator'\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n"],"names":["InputOTP","React","className","containerClassName","props","ref","OTPInput","cn","InputOTPGroup","InputOTPSlot","index","isError","inputOTPContext","OTPInputContext","char","hasFakeCaret","isActive","OTPInputVariants","InputOTPSeparator","Dot"],"mappings":";;;;;AASA,MAAMA,IAAWC,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,oBAAAC,GAAoB,GAAGC,EAAA,GAASC,MAC9C,gBAAAJ,EAAA;AAAA,EAACK;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,oBAAoBE,EAAG,2BAA2BJ,CAAkB;AAAA,IACpE,WAAWI,EAAGL,CAAS;AAAA,IACtB,GAAGE;AAAA,IACJ,WAAU;AAAA,EAAA;AACZ,CACD;AACDJ,EAAS,cAAc;AAEvB,MAAMQ,IAAgBP,EAAM,WAG1B,CAAC,EAAE,WAAAC,GAAW,GAAGE,KAASC,sCACzB,OAAA,EAAI,KAAAA,GAAU,WAAWE,EAAG,qBAAqBL,CAAS,GAAI,GAAGE,GAAO,CAC1E;AACDI,EAAc,cAAc;AAE5B,MAAMC,IAAeR,EAAM;AAAA,EACzB,CAAC,EAAE,OAAAS,GAAO,WAAAR,GAAW,SAAAS,GAAS,GAAGP,EAAA,GAASC,MAAQ;AAChD,UAAMO,IAAkBX,EAAM,WAAWY,CAAe,GAClD,EAAE,MAAAC,GAAM,cAAAC,GAAc,UAAAC,MAAaJ,EAAgB,MAAMF,CAAK;AACpE,WACE,gBAAAT,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAI;AAAA,QACA,WAAWE;AAAA,UACTU,EAAiB,EAAE,SAAAN,GAAS,WAAWK,GAAU;AAAA,UACjDd;AAAA,QAAA;AAAA,QAED,GAAGE;AAAA,MAAA;AAAA,MAEHU;AAAA,MACAC,qCACE,OAAA,EAAI,WAAU,2EACb,gBAAAd,EAAA,cAAC,OAAA,EAAI,WAAU,sDAAA,CAAsD,CACvE;AAAA,IAAA;AAAA,EAIR;AACF;AAEAQ,EAAa,cAAc;AAE3B,MAAMS,IAAoBjB,EAAM,WAG9B,CAAC,EAAE,GAAGG,KAASC,sCACd,OAAA,EAAI,KAAAA,GAAU,MAAK,aAAa,GAAGD,KAClC,gBAAAH,EAAA,cAACkB,GAAA,IAAI,CACP,CACD;AACDD,EAAkB,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index134.es.js","sources":["../src/components/molecules/tabs/tabs.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const TabsVariants = cva(\n 'inline-flex items-center justify-evenly p-1 text-muted-foreground',\n {\n variants: {\n variant: {\n primary: 'bg-light-3 border rounded-xl border-neutral-1',\n secondary: 'bg-background ',\n },\n size: {\n sm: 'h-10 rounded-xl ',\n md: 'h-12 rounded-xl ',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n)\n\nexport const TabTriggerVariants = cva(\n 'inline-flex w-full items-center justify-center whitespace-nowrap text-sm text-light-2 font-medium disabled:pointer-events-none disabled:opacity-50 ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ',\n {\n variants: {\n size: {\n sm: 'h-8 text-[14px] p-1.5 ',\n md: 'h-10 text-[16px] p-2 ',\n },\n variant: {\n primary:\n 'rounded-lg data-[state=active]:bg-rest-s1 data-[state=active]:text-primary-1 data-[state=active]:border data-[state=active]:border-neutral-1 data-[state=active]:font-semibold data-[state=active]:shadow-sm ',\n secondary:\n 'data-[state=active]:bg-background data-[state=active]:text-primary-1 data-[state=active]:font-semibold data-[state=active]:border-b-2 data-[state=active]:border-primary-2 ',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n)\n"],"names":["TabsVariants","cva","TabTriggerVariants"],"mappings":";AAEO,MAAMA,IAAeC;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WAAW;AAAA,MAAA;AAAA,MAEb,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,IACN;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ,GAEaC,IAAqBD;AAAA,EAChC;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,MAEN,SAAS;AAAA,QACP,SACE;AAAA,QACF,WACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index135.es.js","sources":["../src/components/atoms/typography/typography.config.ts"],"sourcesContent":["export const variantElementMap = {\n display1: 'p',\n display2: 'p',\n display3: 'p',\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n body1: 'p',\n body2: 'p',\n body3: 'p',\n body4: 'p',\n body5: 'p',\n body6: 'p',\n // overline1: 'p',\n // overline2: 'p',\n // overline3: 'p',\n // 'cta-large': 'p',\n // 'cta-normal': 'p',\n // 'cta-small': 'p',\n}\n\nexport const defaultTypographyVariant = 'body1'\n"],"names":["variantElementMap","defaultTypographyVariant"],"mappings":"AAAO,MAAMA,IAAoB;AAAA,EAC/B,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOT,GAEaC,IAA2B;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index136.es.js","sources":["../src/components/molecules/slider/slider.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const SliderVariants = cva(\n 'relative flex w-60 touch-none select-none items-center',\n {\n variants: {\n variant: {},\n },\n defaultVariants: {},\n }\n)\n"],"names":["SliderVariants","cva"],"mappings":";AAEO,MAAMA,IAAiBC;AAAA,EAC5B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS,CAAA;AAAA,IAAC;AAAA,IAEZ,iBAAiB,CAAA;AAAA,EAAC;AAEtB;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import e from "react";
|
|
2
|
-
import { Typography as n } from "./
|
|
2
|
+
import { Typography as n } from "./index19.es.js";
|
|
3
3
|
import { ResponsiveContainer as o, PieChart as i, Pie as m, Cell as s } from "recharts";
|
|
4
4
|
function p({
|
|
5
5
|
list: l,
|
|
@@ -35,4 +35,4 @@ function p({
|
|
|
35
35
|
export {
|
|
36
36
|
p as ClusterHoverCard
|
|
37
37
|
};
|
|
38
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=index137.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index137.es.js","sources":["../src/components/ui/map-marker-hover-card/components/map-cluster-hover-card.tsx"],"sourcesContent":["import React from 'react'\nimport { Typography } from '@/components/atoms/typography'\nimport { PieChart, Pie, Cell, ResponsiveContainer } from 'recharts'\nimport { MapMarkerHoverCardNS } from '../map-marker-hover-card.types'\n\nexport function ClusterHoverCard({\n list,\n total,\n}: MapMarkerHoverCardNS.ClusterHoverCardProps) {\n const totalCount =\n list?.reduce(\n (sum: number, item: MapMarkerHoverCardNS.ClusterDataItem) =>\n sum + item.count,\n 0\n ) || 1\n\n return (\n <div className=\"flex gap-2 p-4 border rounded-lg border-neutral-1 bg-light-1\">\n <div className=\"relative w-[180px] h-[164px] flex items-center justify-center\">\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <PieChart>\n <Pie\n data={list}\n labelLine={false}\n outerRadius=\"100%\"\n innerRadius={total != null ? '40%' : undefined}\n dataKey=\"count\"\n >\n {list?.map(\n (\n entry: MapMarkerHoverCardNS.ClusterDataItem,\n index: number\n ) => (\n <Cell\n key={`cell-${index}`}\n fill={entry.color}\n stroke=\"none\"\n />\n )\n )}\n </Pie>\n </PieChart>\n </ResponsiveContainer>\n {total != null && (\n <div className=\"absolute inset-0 flex flex-col items-center justify-center pointer-events-none\">\n <Typography variant=\"body4\" className=\"text-light-1\">\n Total\n </Typography>\n <Typography variant=\"body2\" className=\"text-light-1 font-semibold\">\n {total}\n </Typography>\n </div>\n )}\n </div>\n <div className=\"flex flex-col gap-4\">\n {list?.map(\n (item: MapMarkerHoverCardNS.ClusterDataItem, index: number) => (\n <div key={index} className=\"flex flex-col gap-1\">\n <div className=\"flex items-center gap-1\">\n <img src={item.icon_url} alt={item.name || 'Brand icon'} />\n <Typography variant=\"body4\" className=\"text-light-3\">\n {item.name}\n </Typography>\n </div>\n <Typography variant=\"body4\" className=\"text-light-2\">\n {((item.count / totalCount) * 100).toFixed(2)}% ({item.count})\n </Typography>\n </div>\n )\n )}\n </div>\n </div>\n )\n}\n"],"names":["ClusterHoverCard","list","total","totalCount","sum","item","React","ResponsiveContainer","PieChart","Pie","entry","index","Cell","Typography"],"mappings":";;;AAKO,SAASA,EAAiB;AAAA,EAC/B,MAAAC;AAAA,EACA,OAAAC;AACF,GAA+C;AAC7C,QAAMC,IACJF,GAAM;AAAA,IACJ,CAACG,GAAaC,MACZD,IAAMC,EAAK;AAAA,IACb;AAAA,EAAA,KACG;AAEP,SACEC,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,kGACZ,OAAA,EAAI,WAAU,gEAAA,GACbA,gBAAAA,EAAA,cAACC,KAAoB,OAAM,QAAO,QAAO,0CACtCC,GAAA,MACCF,gBAAAA,EAAA;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,MAAMR;AAAA,MACN,WAAW;AAAA,MACX,aAAY;AAAA,MACZ,aAAaC,KAAS,OAAO,QAAQ;AAAA,MACrC,SAAQ;AAAA,IAAA;AAAA,IAEPD,GAAM;AAAA,MACL,CACES,GACAC,MAEAL,gBAAAA,EAAA;AAAA,QAACM;AAAA,QAAA;AAAA,UACC,KAAK,QAAQD,CAAK;AAAA,UAClB,MAAMD,EAAM;AAAA,UACZ,QAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IACT;AAAA,EAEJ,CAEJ,CACF,GACCR,KAAS,QACRI,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,iFAAA,GACbA,gBAAAA,EAAA,cAACO,GAAA,EAAW,SAAQ,SAAQ,WAAU,kBAAe,OAErD,GACAP,gBAAAA,EAAA,cAACO,GAAA,EAAW,SAAQ,SAAQ,WAAU,gCACnCX,CACH,CACF,CAEJ,GACAI,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,yBACZL,GAAM;AAAA,IACL,CAACI,GAA4CM,MAC3CL,gBAAAA,EAAA,cAAC,SAAI,KAAKK,GAAO,WAAU,sBAAA,GACzBL,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,0BAAA,GACbA,gBAAAA,EAAA,cAAC,OAAA,EAAI,KAAKD,EAAK,UAAU,KAAKA,EAAK,QAAQ,aAAA,CAAc,GACzDC,gBAAAA,EAAA,cAACO,GAAA,EAAW,SAAQ,SAAQ,WAAU,kBACnCR,EAAK,IACR,CACF,GACAC,gBAAAA,EAAA,cAACO,GAAA,EAAW,SAAQ,SAAQ,WAAU,mBACjCR,EAAK,QAAQF,IAAc,KAAK,QAAQ,CAAC,GAAE,OAAIE,EAAK,OAAM,GAC/D,CACF;AAAA,EAAA,CAGN,CACF;AAEJ;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import e from "react";
|
|
2
|
-
import { StarScore as h } from "./
|
|
3
|
-
import { Badge as c } from "./
|
|
4
|
-
import { Typography as i } from "./
|
|
5
|
-
import { Skeleton as t } from "./
|
|
6
|
-
import { hoverDetailCardStyles as g } from "./
|
|
2
|
+
import { StarScore as h } from "./index54.es.js";
|
|
3
|
+
import { Badge as c } from "./index8.es.js";
|
|
4
|
+
import { Typography as i } from "./index19.es.js";
|
|
5
|
+
import { Skeleton as t } from "./index14.es.js";
|
|
6
|
+
import { hoverDetailCardStyles as g } from "./index166.es.js";
|
|
7
7
|
function b({
|
|
8
8
|
title: o,
|
|
9
9
|
icon: n,
|
|
@@ -63,4 +63,4 @@ function b({
|
|
|
63
63
|
export {
|
|
64
64
|
b as PointHoverCard
|
|
65
65
|
};
|
|
66
|
-
//# sourceMappingURL=
|
|
66
|
+
//# sourceMappingURL=index138.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index138.es.js","sources":["../src/components/ui/map-marker-hover-card/components/map-point-hover-card.tsx"],"sourcesContent":["import React from 'react'\nimport { StarScore } from '../../star-score'\nimport { Badge } from '@/components/atoms/badge'\nimport { Typography } from '@/components/atoms/typography'\nimport { Skeleton } from '@/components/atoms/skeleton'\nimport { hoverDetailCardStyles } from '../map-marker-hover-card.styles'\nimport { MapMarkerHoverCardNS } from '../map-marker-hover-card.types'\n\nexport function PointHoverCard({\n title,\n icon,\n isLoading = false,\n tags = [],\n description,\n score,\n badge,\n actions,\n}: MapMarkerHoverCardNS.PointHoverCardProps) {\n return (\n <div className=\"w-[396px] border border-neutral-1 rounded-xl overflow-hidden bg-light-1\">\n <div className=\"flex items-center gap-3 p-4\">\n <div className=\"flex items-center justify-center w-12 h-12 overflow-hidden rounded-full bg-light-3\">\n {isLoading ? (\n <Skeleton className=\"w-12 h-12 rounded-full bg-light-4\" />\n ) : (\n <img\n src={\n icon ||\n 'https://frontend-static-files.geoiq.io/strapi/map_pin_ed26828f00.svg'\n }\n alt=\"title\"\n className={hoverDetailCardStyles.img({ hasIcon: !!icon })}\n />\n )}\n </div>\n <div className=\"truncate max-w-[300px]\">\n {isLoading ? (\n <Skeleton className=\"h-5 mb-2 w-[280px] bg-light-4 rounded-full\" />\n ) : (\n <Typography variant=\"h3\" className=\"truncate text-light-2\">\n {title}\n </Typography>\n )}\n <div className=\"flex flex-wrap gap-2\">\n {isLoading ? (\n <Skeleton\n key={'header-badge'}\n className=\"w-20 h-6 mb-1 rounded-full bg-light-4\"\n />\n ) : (\n tags\n .filter((tag) => tag.icon_url && tag.name)\n .map((badge, index) => (\n <Badge\n key={index}\n variant=\"default\"\n showBorder\n size=\"sm\"\n className=\"rounded-full pl-1.5 pr-3\"\n >\n <img\n src={badge.icon_url}\n alt=\"icon\"\n className=\"w-3 rounded-full\"\n />\n {badge.name}\n </Badge>\n ))\n )}\n </div>\n </div>\n </div>\n <div className=\"px-4\">\n <div className=\"mb-2\">\n {isLoading ? (\n <Skeleton className=\"w-full h-10 bg-light-4 rounded-xl\" />\n ) : (\n <Typography\n variant=\"body4\"\n className=\"text-light-3 text-overflow: ellipsis\"\n >\n {description}\n </Typography>\n )}\n </div>\n {(score || badge) && (\n <div className=\"flex justify-between mb-4\">\n {isLoading ? (\n <>\n <Skeleton className=\"w-24 h-5 rounded bg-light-4\" />\n <Skeleton className=\"w-24 h-5 rounded bg-light-4\" />\n </>\n ) : (\n <>\n {score && (\n <StarScore\n score={score?.value}\n isLoading={score?.isLoading}\n />\n )}\n {badge && (\n <Badge variant=\"select\" size=\"sm\" showBorder>\n {badge}\n </Badge>\n )}\n </>\n )}\n </div>\n )}\n </div>\n {actions && (\n <div className=\"flex items-center justify-center bg-light-3\">\n {actions}\n </div>\n )}\n </div>\n )\n}\n"],"names":["PointHoverCard","title","icon","isLoading","tags","description","score","badge","actions","React","Skeleton","hoverDetailCardStyles","Typography","tag","index","Badge","StarScore"],"mappings":";;;;;;AAQO,SAASA,EAAe;AAAA,EAC7B,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO,CAAA;AAAA,EACP,aAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AACF,GAA6C;AAC3C,yCACG,OAAA,EAAI,WAAU,0EAAA,GACbC,gBAAAA,EAAA,cAAC,SAAI,WAAU,8BAAA,GACbA,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,qFAAA,GACZN,oCACEO,GAAA,EAAS,WAAU,qCAAoC,IAExDD,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KACEP,KACA;AAAA,MAEF,KAAI;AAAA,MACJ,WAAWS,EAAsB,IAAI,EAAE,SAAS,CAAC,CAACT,GAAM;AAAA,IAAA;AAAA,EAAA,CAG9D,GACAO,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,4BACZN,IACCM,gBAAAA,EAAA,cAACC,GAAA,EAAS,WAAU,6CAAA,CAA6C,oCAEhEE,GAAA,EAAW,SAAQ,MAAK,WAAU,wBAAA,GAChCX,CACH,GAEFQ,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,uBAAA,GACZN,IACCM,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAU;AAAA,IAAA;AAAA,EAAA,IAGZN,EACG,OAAO,CAACS,MAAQA,EAAI,YAAYA,EAAI,IAAI,EACxC,IAAI,CAACN,GAAOO,MACXL,gBAAAA,EAAA;AAAA,IAACM;AAAA,IAAA;AAAA,MACC,KAAKD;AAAA,MACL,SAAQ;AAAA,MACR,YAAU;AAAA,MACV,MAAK;AAAA,MACL,WAAU;AAAA,IAAA;AAAA,IAEVL,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAKF,EAAM;AAAA,QACX,KAAI;AAAA,QACJ,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAEXA,EAAM;AAAA,EAAA,CAEV,CAEP,CACF,CACF,GACAE,gBAAAA,EAAA,cAAC,SAAI,WAAU,OAAA,GACbA,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,OAAA,GACZN,oCACEO,GAAA,EAAS,WAAU,qCAAoC,IAExDD,gBAAAA,EAAA;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,WAAU;AAAA,IAAA;AAAA,IAETP;AAAA,EAAA,CAGP,IACEC,KAASC,sCACR,OAAA,EAAI,WAAU,4BAAA,GACZJ,IACCM,gBAAAA,EAAA,cAAAA,EAAA,UAAA,MACEA,gBAAAA,EAAA,cAACC,KAAS,WAAU,8BAAA,CAA8B,GAClDD,gBAAAA,EAAA,cAACC,GAAA,EAAS,WAAU,8BAAA,CAA8B,CACpD,IAEAD,gBAAAA,EAAA,cAAAA,EAAA,UAAA,MACGH,KACCG,gBAAAA,EAAA;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,OAAOV,GAAO;AAAA,MACd,WAAWA,GAAO;AAAA,IAAA;AAAA,EAAA,GAGrBC,KACCE,gBAAAA,EAAA,cAACM,GAAA,EAAM,SAAQ,UAAS,MAAK,MAAK,YAAU,GAAA,GACzCR,CACH,CAEJ,CAEJ,CAEJ,GACCC,qCACE,OAAA,EAAI,WAAU,8CAAA,GACZA,CACH,CAEJ;AAEJ;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import e from "react";
|
|
2
|
-
import { FONT_FAMILY as v } from "./
|
|
3
|
-
import { _Dialog as N } from "./
|
|
2
|
+
import { FONT_FAMILY as v } from "./index167.es.js";
|
|
3
|
+
import { _Dialog as N } from "./index43.es.js";
|
|
4
4
|
import { X as w, ChevronLeft as S, ChevronRight as C } from "lucide-react";
|
|
5
|
-
import { Typography as i } from "./
|
|
5
|
+
import { Typography as i } from "./index19.es.js";
|
|
6
6
|
import { ResponsiveContainer as d, BarChart as u, CartesianGrid as f, XAxis as g, YAxis as h, Tooltip as p, Bar as E } from "recharts";
|
|
7
|
-
import { trendBoxStyles as k, trendValueStyles as F } from "./
|
|
7
|
+
import { trendBoxStyles as k, trendValueStyles as F } from "./index168.es.js";
|
|
8
8
|
const I = ({
|
|
9
9
|
data: r,
|
|
10
10
|
onToggle: t,
|
|
@@ -274,4 +274,4 @@ export {
|
|
|
274
274
|
K as StoreInsightsSection,
|
|
275
275
|
R as StoreOverviewSection
|
|
276
276
|
};
|
|
277
|
-
//# sourceMappingURL=
|
|
277
|
+
//# sourceMappingURL=index139.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es136.js","sources":["../src/components/ui/report-snippet-view/report-snippet-view-components.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { ReportSnippetViewNS } from './report-snippet-view.types'\n\nimport { FONT_FAMILY } from '@/lib/constants'\n\nimport { Dialog } from '@/components/organisms/dialog'\nimport { ChevronLeft, ChevronRight, X } from 'lucide-react'\nimport { Typography } from '@/components/atoms/typography'\nimport {\n BarChart,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n ResponsiveContainer,\n} from 'recharts'\nimport { trendBoxStyles, trendValueStyles } from './report-snippet-view-style'\n\nconst ReportSnippetGalleryView: FC<{\n onToggle: () => void\n isOpen: boolean\n data?: ReportSnippetViewNS.StreetViewData\n galleryActiveIndex: number\n setgalleryActiveIndex: React.Dispatch<React.SetStateAction<number>>\n}> = ({\n data,\n onToggle,\n isOpen,\n galleryActiveIndex,\n setgalleryActiveIndex,\n}) => {\n // Current active item\n\n const isDataAvailable = data && data.length\n\n // Handle next click\n const handleNext = () => {\n if (!data) return\n setgalleryActiveIndex((prevIndex) => (prevIndex + 1) % data?.length)\n }\n\n // Handle previous click\n const handlePrev = () => {\n if (!data) return\n setgalleryActiveIndex(\n (prevIndex) => (prevIndex - 1 + data.length) % data.length\n )\n }\n\n const handleThumbnailClick = (index: number) => {\n setgalleryActiveIndex(index)\n }\n\n const toggleGallery = () => {\n onToggle()\n }\n\n return (\n <Dialog\n open={isOpen}\n trigger={null}\n contentClassName=\"bg-transparent w-fit border-0\"\n onInteractOutside={toggleGallery}\n body={\n <div className=\"flex flex-col items-center justify-center w-full h-full max-w-3xl mx-auto\">\n <X\n size={24}\n color=\"white\"\n className=\"absolute z-50 cursor-pointer -right-10 -top-10\"\n onClick={toggleGallery}\n />\n\n {/* Main Carousel */}\n <div className=\"relative\">\n <div className=\"relative \">\n {isDataAvailable && (\n <img\n key={data[galleryActiveIndex].image_url}\n src={data[galleryActiveIndex].image_url}\n alt={`Street ${galleryActiveIndex + 1}`}\n className=\"w-[500px] max-h-[80vh] object-contain flex-shrink-0\"\n />\n )}\n </div>\n\n {/* Navigation Buttons */}\n <div className=\"relative top-[-50%] left-[-10%] flex row w-[120%] justify-between\">\n <div role=\"button\" tabIndex={0} onClick={handlePrev}>\n <ChevronLeft size={30} color=\"white\" />\n </div>\n <div role=\"button\" tabIndex={0} onClick={handleNext}>\n <ChevronRight size={30} color=\"white\" />\n </div>\n </div>\n </div>\n\n {/* Thumbnails */}\n <div className=\"flex justify-center p-2 mt-4 space-x-2 rounded-lg\">\n {isDataAvailable &&\n data.map((item, index) => (\n <img\n key={index}\n src={item.image_url}\n alt={`Thumbnail ${index + 1}`}\n onClick={() => handleThumbnailClick(index)}\n className={`w-20 h-auto rounded-lg cursor-pointer ${\n index === galleryActiveIndex\n ? 'ring-2 ring-primary-1'\n : 'ring-2 ring-transparent'\n } hover:ring-gray-300`}\n />\n ))}\n </div>\n </div>\n }\n />\n )\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars\nconst CustomTooltipFootfall = ({ active, payload, label, year }: any) => {\n if (active && payload && payload.length) {\n const year = payload[0]?.payload?.year\n const footfall = payload[0]?.value\n return (\n <div className=\"flex flex-col bg-light-1 p-4 rounded-lg shadow-md min-w-[200px] gap-1\">\n {/* Month Information */}\n <Typography variant={'body6'} className=\"text-primary\">\n {`${label}'${year}`}\n </Typography>\n\n {/* Separator */}\n <div className=\"my-2 w-full h-px border border-stroke-1\" />\n\n {/* Footfall/Visits Information */}\n <div className=\"flex\">\n <div\n className=\"h-4 w-1 rounded-lg\"\n style={{ backgroundColor: '#6D48EF' }}\n />\n <Typography variant={'body6'} className=\"text-secondary mx-1\">\n Visits\n </Typography>\n <Typography variant={'body4'} className=\"text-secondary ml-auto\">\n {` ${footfall}`}\n </Typography>\n </div>\n </div>\n )\n }\n return null\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst CustomTooltipCannibalisation = ({ active, payload, label }: any) => {\n if (active && payload && payload.length) {\n const distance = payload[0]?.payload?.distance\n const cannibalisation = payload[0]?.value\n return (\n <div className=\"flex bg-light-1 items-center justify-between rounded-lg shadow-md min-w-45 max-w-80 gap-2 p-2\">\n {/* Month Information */}\n <Typography variant={'body6'} className=\"text-primary\">\n {\n <div className=\"flex h-full justify-between items-center p-2 gap-4\">\n <div>{label}</div>\n <div> {distance + 'km'}</div>\n </div>\n }\n </Typography>\n {/* Footfall/Visits Information */}\n <Typography\n variant={'body4'}\n className=\"text-normal text-danger-1 ml-auto p-2\"\n >\n {`${cannibalisation}%`}\n </Typography>\n </div>\n )\n }\n return null\n}\n\n{\n /*--------- Store insights ----------*/\n}\ninterface StoreInsightsSectionProps {\n insights: ReportSnippetViewNS.CatchmentInsights[]\n // customButton?: React.ReactNode\n}\n\nconst StoreInsightsSection: FC<StoreInsightsSectionProps> = ({ insights }) => {\n return (\n <div>\n <div className=\"flex flex-row mb-4 justify-between\">\n <Typography variant=\"body4\" className=\"text-light-2\">\n Store Insight:\n </Typography>\n </div>\n\n <div className=\"bg-light-2 p-3 border border-neutral-1 rounded-lg\">\n <Typography variant=\"body4\" className=\"text-light-2 mb-2\">\n Presence of other brands in catchment:\n </Typography>\n\n {/* Render store insights data */}\n <div className=\"flex gap-1 flex-wrap\">\n {insights.map((item) => (\n <div\n key={item.type}\n className=\"flex items-center gap-1 bg-light-1 px-2 py-1 rounded-full border border-neutral-1\"\n >\n {/* Icon */}\n <img\n src={item.iconUrl}\n alt={`${item.type} Icon`}\n className=\"w-4 h-4\"\n />\n\n {/* Name and Count */}\n <Typography variant=\"body6\" className=\"text-light-2\">\n {item.count}\n </Typography>\n <div className=\"flex items-center gap-1\">\n <Typography variant=\"body6\" className=\"text-light-2\">\n {item.type === 'competitor' ? 'Competitors' : 'Complementary'}\n </Typography>\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\n{\n /*--------- Store Overview ----------*/\n}\ninterface StoreOverviewSectionProps {\n highlights: ReportSnippetViewNS.StoreHighlights[]\n}\n\nconst StoreOverviewSection: FC<StoreOverviewSectionProps> = ({\n highlights,\n}) => {\n return (\n <div>\n <Typography variant={'body4'} className=\"text-light-2 mb-2\">\n Store Overview:\n </Typography>\n <div className=\"bg-light-2 p-1 border border-neutral-1 rounded-lg\">\n <div className=\"flex justify-evenly items-center\">\n {highlights.map((item, index) => (\n <React.Fragment key={index}>\n <div className=\"flex flex-col items-center justify-center text-center gap-1 p-\">\n {/* Trend Box */}\n <div\n className={trendBoxStyles({\n trend: item.trend?.toString() as '1' | '-1' | '0' | null,\n })}\n >\n {item.trend === 1 && (\n <img\n src=\"https://frontend-static-files.geoiq.io/strapi/trending_up_9d73d6fac5.svg\"\n alt=\"High Trend\"\n className={'w-3 h-3'}\n />\n )}\n {item.trend === -1 && (\n <img\n src=\"https://frontend-static-files.geoiq.io/strapi/trending_down_87adc7f3a6.svg\"\n alt=\"Low Trend\"\n className={'w-3 h-3'}\n />\n )}\n {item.value && item.trend ? (\n <Typography\n variant=\"body5\"\n className={trendValueStyles({\n trend: item.trend?.toString() as\n | '1'\n | '-1'\n | '0'\n | null,\n })}\n >\n {`${item.value}%`}\n </Typography>\n ) : (\n <Typography variant=\"body5\" className=\"text-sm\">\n -\n </Typography>\n )}\n </div>\n\n {/* Name */}\n {item.name && (\n <Typography variant={'body6'} className=\"text-light-2\">\n {item.name}\n </Typography>\n )}\n </div>\n\n {/* Separator */}\n {index < highlights.length - 1 && (\n <div className=\"border-l border-stroke-light-1 h-20 mx-1\" />\n )}\n </React.Fragment>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\n{\n /*----------------- Footfall Trends ------------------*/\n}\ninterface FootfallChartSectionProps {\n data: ReportSnippetViewNS.FootfallChartData[]\n}\n\nconst FootfallChartSection: FC<FootfallChartSectionProps> = ({ data }) => {\n if (!data || data.every((item) => item.footfall === null)) {\n return null\n }\n return (\n <div className=\"w-full h-full bg-light-2 border border-neutral-1 p-3 rounded-lg\">\n {/* Section heading */}\n <Typography variant={'body4'} className=\"text-light-2 mb-4\">\n Footfall trends\n </Typography>\n\n {/* Bar Chart */}\n <ResponsiveContainer width=\"100%\" height={300}>\n <BarChart\n data={data}\n margin={{\n top: 3,\n right: 3,\n bottom: -10,\n left: 3,\n }}\n barSize={24}\n >\n <CartesianGrid strokeDasharray=\"10 10\" />\n <XAxis\n dataKey=\"month\"\n style={{\n font: FONT_FAMILY,\n fontSize: '12px',\n fontWeight: '500',\n color: '#4A4A4A',\n }}\n />\n <YAxis\n className=\"text-4-grey\"\n style={{ fontSize: '12px', fontWeight: '500' }}\n tickFormatter={(val) => {\n if (val > 1000000) {\n return `${val / 1000000}M`\n }\n if (val > 1000) {\n return `${val / 1000}K`\n }\n return val\n }}\n label={{\n value: 'AVG FOOTFALL FOR A 3-MONTH PERIOD',\n angle: -90,\n position: 'insideLeft',\n dy: -5,\n style: {\n textAnchor: 'middle',\n fontSize: '12px',\n fontWeight: '500',\n },\n }}\n />\n <Tooltip content={<CustomTooltipFootfall />} />\n <Bar\n dataKey=\"footfall\"\n fill=\"#6D48EF\"\n radius={[4, 4, 4, 4]}\n style={{ cursor: 'pointer' }}\n />\n </BarChart>\n </ResponsiveContainer>\n </div>\n )\n}\n\n{\n /* -----------------Cannibalisation Effect------------------ */\n}\ninterface CannibalisationChartSectionProps {\n data: ReportSnippetViewNS.CannibalisationChartData[]\n}\n\nconst CannibalisationChartSection: FC<CannibalisationChartSectionProps> = ({\n data,\n}) => {\n if (!data || data.every((item) => item.cannibalisation === null)) {\n return null\n }\n const formatXAxisLabel = (label: string) => {\n const barCount = data.length\n let maxLength\n\n if (barCount <= 1) {\n maxLength = 50\n } else if (barCount <= 6) {\n maxLength = 22 - (barCount - 1) * 4\n } else {\n maxLength = 6\n }\n\n return label.length > maxLength ? `${label.slice(0, maxLength)}...` : label\n }\n return (\n <div className=\"w-full h-full bg-light-2 border border-neutral-1 p-3 rounded-lg\">\n {/* Section heading */}\n <Typography variant={'body4'} className=\"text-light-2 mb-4\">\n Cannibalisation effects\n </Typography>\n\n {/* Bar Chart */}\n <ResponsiveContainer width=\"100%\" height={300}>\n <BarChart\n data={data}\n margin={{\n top: 3,\n right: 3,\n bottom: 5,\n left: 3,\n }}\n barSize={24}\n >\n <CartesianGrid strokeDasharray=\"10 10\" />\n <XAxis\n dataKey=\"store_name\"\n tickFormatter={formatXAxisLabel}\n tickMargin={10}\n tick={(props) => {\n const { x, y, payload } = props\n return (\n <text x={x} y={y} textAnchor={'end'} fill=\"#666\">\n <tspan x={x} style={{ fontSize: 12 }}>\n {formatXAxisLabel(payload.value)}\n </tspan>\n <tspan\n x={x}\n dy=\"1.5em\"\n style={{\n fontSize: 10,\n whiteSpace: 'nowrap',\n paddingTop: '2px',\n }}\n >\n {data[payload.index].distance + ' kms'}\n </tspan>\n </text>\n )\n }}\n />\n <YAxis\n className=\"text-4-grey\"\n style={{ fontSize: '12px', fontWeight: '500' }}\n tickFormatter={(val) => {\n if (val > 1000000) {\n return `${val / 1000000}M`\n }\n if (val > 1000) {\n return `${val / 1000}K`\n }\n return val\n }}\n label={{\n value: 'CANNIBALISATION IN %',\n angle: -90,\n position: 'insideLeft',\n dy: -5,\n style: {\n textAnchor: 'middle',\n fontSize: '12px',\n fontWeight: '500',\n },\n }}\n domain={[0, 100]}\n />\n <Tooltip content={<CustomTooltipCannibalisation />} />\n <Bar\n dataKey=\"cannibalisation\"\n fill=\"#F93232\"\n radius={[4, 4, 4, 4]}\n style={{ cursor: 'pointer' }}\n />\n </BarChart>\n </ResponsiveContainer>\n </div>\n )\n}\n\nexport {\n ReportSnippetGalleryView,\n StoreInsightsSection,\n StoreOverviewSection,\n FootfallChartSection,\n CannibalisationChartSection,\n}\n"],"names":["ReportSnippetGalleryView","data","onToggle","isOpen","galleryActiveIndex","setgalleryActiveIndex","isDataAvailable","handleNext","prevIndex","handlePrev","handleThumbnailClick","index","toggleGallery","React","Dialog","X","ChevronLeft","ChevronRight","item","CustomTooltipFootfall","active","payload","label","year","footfall","Typography","CustomTooltipCannibalisation","distance","cannibalisation","StoreInsightsSection","insights","StoreOverviewSection","highlights","trendBoxStyles","trendValueStyles","FootfallChartSection","ResponsiveContainer","BarChart","CartesianGrid","XAxis","FONT_FAMILY","YAxis","val","Tooltip","Bar","CannibalisationChartSection","formatXAxisLabel","barCount","maxLength","props","x","y"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index139.es.js","sources":["../src/components/ui/report-snippet-view/report-snippet-view-components.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { ReportSnippetViewNS } from './report-snippet-view.types'\n\nimport { FONT_FAMILY } from '@/lib/constants'\n\nimport { Dialog } from '@/components/organisms/dialog'\nimport { ChevronLeft, ChevronRight, X } from 'lucide-react'\nimport { Typography } from '@/components/atoms/typography'\nimport {\n BarChart,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n ResponsiveContainer,\n} from 'recharts'\nimport { trendBoxStyles, trendValueStyles } from './report-snippet-view-style'\n\nconst ReportSnippetGalleryView: FC<{\n onToggle: () => void\n isOpen: boolean\n data?: ReportSnippetViewNS.StreetViewData\n galleryActiveIndex: number\n setgalleryActiveIndex: React.Dispatch<React.SetStateAction<number>>\n}> = ({\n data,\n onToggle,\n isOpen,\n galleryActiveIndex,\n setgalleryActiveIndex,\n}) => {\n // Current active item\n\n const isDataAvailable = data && data.length\n\n // Handle next click\n const handleNext = () => {\n if (!data) return\n setgalleryActiveIndex((prevIndex) => (prevIndex + 1) % data?.length)\n }\n\n // Handle previous click\n const handlePrev = () => {\n if (!data) return\n setgalleryActiveIndex(\n (prevIndex) => (prevIndex - 1 + data.length) % data.length\n )\n }\n\n const handleThumbnailClick = (index: number) => {\n setgalleryActiveIndex(index)\n }\n\n const toggleGallery = () => {\n onToggle()\n }\n\n return (\n <Dialog\n open={isOpen}\n trigger={null}\n contentClassName=\"bg-transparent w-fit border-0\"\n onInteractOutside={toggleGallery}\n body={\n <div className=\"flex flex-col items-center justify-center w-full h-full max-w-3xl mx-auto\">\n <X\n size={24}\n color=\"white\"\n className=\"absolute z-50 cursor-pointer -right-10 -top-10\"\n onClick={toggleGallery}\n />\n\n {/* Main Carousel */}\n <div className=\"relative\">\n <div className=\"relative \">\n {isDataAvailable && (\n <img\n key={data[galleryActiveIndex].image_url}\n src={data[galleryActiveIndex].image_url}\n alt={`Street ${galleryActiveIndex + 1}`}\n className=\"w-[500px] max-h-[80vh] object-contain flex-shrink-0\"\n />\n )}\n </div>\n\n {/* Navigation Buttons */}\n <div className=\"relative top-[-50%] left-[-10%] flex row w-[120%] justify-between\">\n <div role=\"button\" tabIndex={0} onClick={handlePrev}>\n <ChevronLeft size={30} color=\"white\" />\n </div>\n <div role=\"button\" tabIndex={0} onClick={handleNext}>\n <ChevronRight size={30} color=\"white\" />\n </div>\n </div>\n </div>\n\n {/* Thumbnails */}\n <div className=\"flex justify-center p-2 mt-4 space-x-2 rounded-lg\">\n {isDataAvailable &&\n data.map((item, index) => (\n <img\n key={index}\n src={item.image_url}\n alt={`Thumbnail ${index + 1}`}\n onClick={() => handleThumbnailClick(index)}\n className={`w-20 h-auto rounded-lg cursor-pointer ${\n index === galleryActiveIndex\n ? 'ring-2 ring-primary-1'\n : 'ring-2 ring-transparent'\n } hover:ring-gray-300`}\n />\n ))}\n </div>\n </div>\n }\n />\n )\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars\nconst CustomTooltipFootfall = ({ active, payload, label, year }: any) => {\n if (active && payload && payload.length) {\n const year = payload[0]?.payload?.year\n const footfall = payload[0]?.value\n return (\n <div className=\"flex flex-col bg-light-1 p-4 rounded-lg shadow-md min-w-[200px] gap-1\">\n {/* Month Information */}\n <Typography variant={'body6'} className=\"text-primary\">\n {`${label}'${year}`}\n </Typography>\n\n {/* Separator */}\n <div className=\"my-2 w-full h-px border border-stroke-1\" />\n\n {/* Footfall/Visits Information */}\n <div className=\"flex\">\n <div\n className=\"h-4 w-1 rounded-lg\"\n style={{ backgroundColor: '#6D48EF' }}\n />\n <Typography variant={'body6'} className=\"text-secondary mx-1\">\n Visits\n </Typography>\n <Typography variant={'body4'} className=\"text-secondary ml-auto\">\n {` ${footfall}`}\n </Typography>\n </div>\n </div>\n )\n }\n return null\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst CustomTooltipCannibalisation = ({ active, payload, label }: any) => {\n if (active && payload && payload.length) {\n const distance = payload[0]?.payload?.distance\n const cannibalisation = payload[0]?.value\n return (\n <div className=\"flex bg-light-1 items-center justify-between rounded-lg shadow-md min-w-45 max-w-80 gap-2 p-2\">\n {/* Month Information */}\n <Typography variant={'body6'} className=\"text-primary\">\n {\n <div className=\"flex h-full justify-between items-center p-2 gap-4\">\n <div>{label}</div>\n <div> {distance + 'km'}</div>\n </div>\n }\n </Typography>\n {/* Footfall/Visits Information */}\n <Typography\n variant={'body4'}\n className=\"text-normal text-danger-1 ml-auto p-2\"\n >\n {`${cannibalisation}%`}\n </Typography>\n </div>\n )\n }\n return null\n}\n\n{\n /*--------- Store insights ----------*/\n}\ninterface StoreInsightsSectionProps {\n insights: ReportSnippetViewNS.CatchmentInsights[]\n // customButton?: React.ReactNode\n}\n\nconst StoreInsightsSection: FC<StoreInsightsSectionProps> = ({ insights }) => {\n return (\n <div>\n <div className=\"flex flex-row mb-4 justify-between\">\n <Typography variant=\"body4\" className=\"text-light-2\">\n Store Insight:\n </Typography>\n </div>\n\n <div className=\"bg-light-2 p-3 border border-neutral-1 rounded-lg\">\n <Typography variant=\"body4\" className=\"text-light-2 mb-2\">\n Presence of other brands in catchment:\n </Typography>\n\n {/* Render store insights data */}\n <div className=\"flex gap-1 flex-wrap\">\n {insights.map((item) => (\n <div\n key={item.type}\n className=\"flex items-center gap-1 bg-light-1 px-2 py-1 rounded-full border border-neutral-1\"\n >\n {/* Icon */}\n <img\n src={item.iconUrl}\n alt={`${item.type} Icon`}\n className=\"w-4 h-4\"\n />\n\n {/* Name and Count */}\n <Typography variant=\"body6\" className=\"text-light-2\">\n {item.count}\n </Typography>\n <div className=\"flex items-center gap-1\">\n <Typography variant=\"body6\" className=\"text-light-2\">\n {item.type === 'competitor' ? 'Competitors' : 'Complementary'}\n </Typography>\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\n{\n /*--------- Store Overview ----------*/\n}\ninterface StoreOverviewSectionProps {\n highlights: ReportSnippetViewNS.StoreHighlights[]\n}\n\nconst StoreOverviewSection: FC<StoreOverviewSectionProps> = ({\n highlights,\n}) => {\n return (\n <div>\n <Typography variant={'body4'} className=\"text-light-2 mb-2\">\n Store Overview:\n </Typography>\n <div className=\"bg-light-2 p-1 border border-neutral-1 rounded-lg\">\n <div className=\"flex justify-evenly items-center\">\n {highlights.map((item, index) => (\n <React.Fragment key={index}>\n <div className=\"flex flex-col items-center justify-center text-center gap-1 p-\">\n {/* Trend Box */}\n <div\n className={trendBoxStyles({\n trend: item.trend?.toString() as '1' | '-1' | '0' | null,\n })}\n >\n {item.trend === 1 && (\n <img\n src=\"https://frontend-static-files.geoiq.io/strapi/trending_up_9d73d6fac5.svg\"\n alt=\"High Trend\"\n className={'w-3 h-3'}\n />\n )}\n {item.trend === -1 && (\n <img\n src=\"https://frontend-static-files.geoiq.io/strapi/trending_down_87adc7f3a6.svg\"\n alt=\"Low Trend\"\n className={'w-3 h-3'}\n />\n )}\n {item.value && item.trend ? (\n <Typography\n variant=\"body5\"\n className={trendValueStyles({\n trend: item.trend?.toString() as\n | '1'\n | '-1'\n | '0'\n | null,\n })}\n >\n {`${item.value}%`}\n </Typography>\n ) : (\n <Typography variant=\"body5\" className=\"text-sm\">\n -\n </Typography>\n )}\n </div>\n\n {/* Name */}\n {item.name && (\n <Typography variant={'body6'} className=\"text-light-2\">\n {item.name}\n </Typography>\n )}\n </div>\n\n {/* Separator */}\n {index < highlights.length - 1 && (\n <div className=\"border-l border-stroke-light-1 h-20 mx-1\" />\n )}\n </React.Fragment>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\n{\n /*----------------- Footfall Trends ------------------*/\n}\ninterface FootfallChartSectionProps {\n data: ReportSnippetViewNS.FootfallChartData[]\n}\n\nconst FootfallChartSection: FC<FootfallChartSectionProps> = ({ data }) => {\n if (!data || data.every((item) => item.footfall === null)) {\n return null\n }\n return (\n <div className=\"w-full h-full bg-light-2 border border-neutral-1 p-3 rounded-lg\">\n {/* Section heading */}\n <Typography variant={'body4'} className=\"text-light-2 mb-4\">\n Footfall trends\n </Typography>\n\n {/* Bar Chart */}\n <ResponsiveContainer width=\"100%\" height={300}>\n <BarChart\n data={data}\n margin={{\n top: 3,\n right: 3,\n bottom: -10,\n left: 3,\n }}\n barSize={24}\n >\n <CartesianGrid strokeDasharray=\"10 10\" />\n <XAxis\n dataKey=\"month\"\n style={{\n font: FONT_FAMILY,\n fontSize: '12px',\n fontWeight: '500',\n color: '#4A4A4A',\n }}\n />\n <YAxis\n className=\"text-4-grey\"\n style={{ fontSize: '12px', fontWeight: '500' }}\n tickFormatter={(val) => {\n if (val > 1000000) {\n return `${val / 1000000}M`\n }\n if (val > 1000) {\n return `${val / 1000}K`\n }\n return val\n }}\n label={{\n value: 'AVG FOOTFALL FOR A 3-MONTH PERIOD',\n angle: -90,\n position: 'insideLeft',\n dy: -5,\n style: {\n textAnchor: 'middle',\n fontSize: '12px',\n fontWeight: '500',\n },\n }}\n />\n <Tooltip content={<CustomTooltipFootfall />} />\n <Bar\n dataKey=\"footfall\"\n fill=\"#6D48EF\"\n radius={[4, 4, 4, 4]}\n style={{ cursor: 'pointer' }}\n />\n </BarChart>\n </ResponsiveContainer>\n </div>\n )\n}\n\n{\n /* -----------------Cannibalisation Effect------------------ */\n}\ninterface CannibalisationChartSectionProps {\n data: ReportSnippetViewNS.CannibalisationChartData[]\n}\n\nconst CannibalisationChartSection: FC<CannibalisationChartSectionProps> = ({\n data,\n}) => {\n if (!data || data.every((item) => item.cannibalisation === null)) {\n return null\n }\n const formatXAxisLabel = (label: string) => {\n const barCount = data.length\n let maxLength\n\n if (barCount <= 1) {\n maxLength = 50\n } else if (barCount <= 6) {\n maxLength = 22 - (barCount - 1) * 4\n } else {\n maxLength = 6\n }\n\n return label.length > maxLength ? `${label.slice(0, maxLength)}...` : label\n }\n return (\n <div className=\"w-full h-full bg-light-2 border border-neutral-1 p-3 rounded-lg\">\n {/* Section heading */}\n <Typography variant={'body4'} className=\"text-light-2 mb-4\">\n Cannibalisation effects\n </Typography>\n\n {/* Bar Chart */}\n <ResponsiveContainer width=\"100%\" height={300}>\n <BarChart\n data={data}\n margin={{\n top: 3,\n right: 3,\n bottom: 5,\n left: 3,\n }}\n barSize={24}\n >\n <CartesianGrid strokeDasharray=\"10 10\" />\n <XAxis\n dataKey=\"store_name\"\n tickFormatter={formatXAxisLabel}\n tickMargin={10}\n tick={(props) => {\n const { x, y, payload } = props\n return (\n <text x={x} y={y} textAnchor={'end'} fill=\"#666\">\n <tspan x={x} style={{ fontSize: 12 }}>\n {formatXAxisLabel(payload.value)}\n </tspan>\n <tspan\n x={x}\n dy=\"1.5em\"\n style={{\n fontSize: 10,\n whiteSpace: 'nowrap',\n paddingTop: '2px',\n }}\n >\n {data[payload.index].distance + ' kms'}\n </tspan>\n </text>\n )\n }}\n />\n <YAxis\n className=\"text-4-grey\"\n style={{ fontSize: '12px', fontWeight: '500' }}\n tickFormatter={(val) => {\n if (val > 1000000) {\n return `${val / 1000000}M`\n }\n if (val > 1000) {\n return `${val / 1000}K`\n }\n return val\n }}\n label={{\n value: 'CANNIBALISATION IN %',\n angle: -90,\n position: 'insideLeft',\n dy: -5,\n style: {\n textAnchor: 'middle',\n fontSize: '12px',\n fontWeight: '500',\n },\n }}\n domain={[0, 100]}\n />\n <Tooltip content={<CustomTooltipCannibalisation />} />\n <Bar\n dataKey=\"cannibalisation\"\n fill=\"#F93232\"\n radius={[4, 4, 4, 4]}\n style={{ cursor: 'pointer' }}\n />\n </BarChart>\n </ResponsiveContainer>\n </div>\n )\n}\n\nexport {\n ReportSnippetGalleryView,\n StoreInsightsSection,\n StoreOverviewSection,\n FootfallChartSection,\n CannibalisationChartSection,\n}\n"],"names":["ReportSnippetGalleryView","data","onToggle","isOpen","galleryActiveIndex","setgalleryActiveIndex","isDataAvailable","handleNext","prevIndex","handlePrev","handleThumbnailClick","index","toggleGallery","React","Dialog","X","ChevronLeft","ChevronRight","item","CustomTooltipFootfall","active","payload","label","year","footfall","Typography","CustomTooltipCannibalisation","distance","cannibalisation","StoreInsightsSection","insights","StoreOverviewSection","highlights","trendBoxStyles","trendValueStyles","FootfallChartSection","ResponsiveContainer","BarChart","CartesianGrid","XAxis","FONT_FAMILY","YAxis","val","Tooltip","Bar","CannibalisationChartSection","formatXAxisLabel","barCount","maxLength","props","x","y"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cn as i } from "./
|
|
1
|
+
import { cn as i } from "./index91.es.js";
|
|
2
2
|
import m from "react";
|
|
3
3
|
function a({
|
|
4
4
|
className: t,
|
|
@@ -16,4 +16,4 @@ function a({
|
|
|
16
16
|
export {
|
|
17
17
|
a as Skeleton
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=index14.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index14.es.js","sources":["../src/components/atoms/skeleton/skeleton.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport React from 'react'\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn('animate-pulse rounded-md bg-light-4', className)}\n id={props.id}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n"],"names":["Skeleton","className","props","React","cn"],"mappings":";;AAGA,SAASA,EAAS;AAAA,EAChB,WAAAC;AAAA,EACA,GAAGC;AACL,GAAyC;AACvC,SACEC,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG,uCAAuCH,CAAS;AAAA,MAC9D,IAAIC,EAAM;AAAA,MACT,GAAGA;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|