@burdenoff/microfe-eventfullymanaged 2026.704.5 → 2026.704.7
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/_virtual/_rolldown/runtime.js +20 -0
- package/dist/eventfullymanaged/api/eventApi.js +140 -100
- package/dist/eventfullymanaged/api/eventApi.js.map +1 -1
- package/dist/eventfullymanaged/components/EventCharts.js +260 -0
- package/dist/eventfullymanaged/components/EventCharts.js.map +1 -0
- package/dist/eventfullymanaged/components/index.js +1 -0
- package/dist/eventfullymanaged/lib/format.js +27 -0
- package/dist/eventfullymanaged/lib/format.js.map +1 -0
- package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js +222 -78
- package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/events/EventDetailPage.js +689 -328
- package/dist/eventfullymanaged/pages/events/EventDetailPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/events/EventFormPage.js +14 -0
- package/dist/eventfullymanaged/pages/events/EventFormPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/exhibitors/ExhibitorsPage.js +240 -122
- package/dist/eventfullymanaged/pages/exhibitors/ExhibitorsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/leads/LeadCaptureDialog.js +60 -50
- package/dist/eventfullymanaged/pages/leads/LeadCaptureDialog.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js +318 -108
- package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/CommunicationPage.js +288 -204
- package/dist/eventfullymanaged/pages/modules/CommunicationPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/EventsPage.js +206 -96
- package/dist/eventfullymanaged/pages/modules/EventsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/KioskPage.js +597 -397
- package/dist/eventfullymanaged/pages/modules/KioskPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/NetworkingPage.js +349 -148
- package/dist/eventfullymanaged/pages/modules/NetworkingPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/RegistrationPage.js +343 -213
- package/dist/eventfullymanaged/pages/modules/RegistrationPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/modules/SponsorDetailsPage.js +147 -100
- package/dist/eventfullymanaged/pages/modules/SponsorDetailsPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/registration/AttendeeFormPage.js +25 -2
- package/dist/eventfullymanaged/pages/registration/AttendeeFormPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/registration/PromoCodeFormPage.js +134 -76
- package/dist/eventfullymanaged/pages/registration/PromoCodeFormPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/registration/RegisterAttendeePage.js +661 -305
- package/dist/eventfullymanaged/pages/registration/RegisterAttendeePage.js.map +1 -1
- package/dist/eventfullymanaged/pages/speakers/SpeakersPage.js +199 -69
- package/dist/eventfullymanaged/pages/speakers/SpeakersPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/sponsors/SponsorsListPage.js +254 -135
- package/dist/eventfullymanaged/pages/sponsors/SponsorsListPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/FloorPlansPage.js +345 -112
- package/dist/eventfullymanaged/pages/venues/FloorPlansPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/VenueDetailPage.js +73 -45
- package/dist/eventfullymanaged/pages/venues/VenueDetailPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/VenueFormPage.js +101 -100
- package/dist/eventfullymanaged/pages/venues/VenueFormPage.js.map +1 -1
- package/dist/eventfullymanaged/pages/venues/VenueListPage.js +147 -104
- package/dist/eventfullymanaged/pages/venues/VenueListPage.js.map +1 -1
- package/dist/node_modules/clsx/dist/clsx.js +18 -0
- package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
- package/dist/node_modules/d3-array/src/ascending.js +8 -0
- package/dist/node_modules/d3-array/src/ascending.js.map +1 -0
- package/dist/node_modules/d3-array/src/bisect.js +10 -0
- package/dist/node_modules/d3-array/src/bisect.js.map +1 -0
- package/dist/node_modules/d3-array/src/bisector.js +43 -0
- package/dist/node_modules/d3-array/src/bisector.js.map +1 -0
- package/dist/node_modules/d3-array/src/descending.js +8 -0
- package/dist/node_modules/d3-array/src/descending.js.map +1 -0
- package/dist/node_modules/d3-array/src/max.js +14 -0
- package/dist/node_modules/d3-array/src/max.js.map +1 -0
- package/dist/node_modules/d3-array/src/min.js +14 -0
- package/dist/node_modules/d3-array/src/min.js.map +1 -0
- package/dist/node_modules/d3-array/src/number.js +15 -0
- package/dist/node_modules/d3-array/src/number.js.map +1 -0
- package/dist/node_modules/d3-array/src/quantile.js +25 -0
- package/dist/node_modules/d3-array/src/quantile.js.map +1 -0
- package/dist/node_modules/d3-array/src/quickselect.js +26 -0
- package/dist/node_modules/d3-array/src/quickselect.js.map +1 -0
- package/dist/node_modules/d3-array/src/range.js +10 -0
- package/dist/node_modules/d3-array/src/range.js.map +1 -0
- package/dist/node_modules/d3-array/src/sort.js +17 -0
- package/dist/node_modules/d3-array/src/sort.js.map +1 -0
- package/dist/node_modules/d3-array/src/ticks.js +34 -0
- package/dist/node_modules/d3-array/src/ticks.js.map +1 -0
- package/dist/node_modules/d3-color/src/color.js +291 -0
- package/dist/node_modules/d3-color/src/color.js.map +1 -0
- package/dist/node_modules/d3-color/src/define.js +13 -0
- package/dist/node_modules/d3-color/src/define.js.map +1 -0
- package/dist/node_modules/d3-format/src/defaultLocale.js +15 -0
- package/dist/node_modules/d3-format/src/defaultLocale.js.map +1 -0
- package/dist/node_modules/d3-format/src/exponent.js +9 -0
- package/dist/node_modules/d3-format/src/exponent.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatDecimal.js +13 -0
- package/dist/node_modules/d3-format/src/formatDecimal.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatGroup.js +11 -0
- package/dist/node_modules/d3-format/src/formatGroup.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatNumerals.js +12 -0
- package/dist/node_modules/d3-format/src/formatNumerals.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatPrefixAuto.js +13 -0
- package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatRounded.js +12 -0
- package/dist/node_modules/d3-format/src/formatRounded.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatSpecifier.js +29 -0
- package/dist/node_modules/d3-format/src/formatSpecifier.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatTrim.js +20 -0
- package/dist/node_modules/d3-format/src/formatTrim.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatTypes.js +23 -0
- package/dist/node_modules/d3-format/src/formatTypes.js.map +1 -0
- package/dist/node_modules/d3-format/src/identity.js +8 -0
- package/dist/node_modules/d3-format/src/identity.js.map +1 -0
- package/dist/node_modules/d3-format/src/locale.js +86 -0
- package/dist/node_modules/d3-format/src/locale.js.map +1 -0
- package/dist/node_modules/d3-format/src/precisionFixed.js +9 -0
- package/dist/node_modules/d3-format/src/precisionFixed.js.map +1 -0
- package/dist/node_modules/d3-format/src/precisionPrefix.js +9 -0
- package/dist/node_modules/d3-format/src/precisionPrefix.js.map +1 -0
- package/dist/node_modules/d3-format/src/precisionRound.js +9 -0
- package/dist/node_modules/d3-format/src/precisionRound.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/array.js +15 -0
- package/dist/node_modules/d3-interpolate/src/array.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/basis.js +16 -0
- package/dist/node_modules/d3-interpolate/src/basis.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/basisClosed.js +13 -0
- package/dist/node_modules/d3-interpolate/src/basisClosed.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/color.js +25 -0
- package/dist/node_modules/d3-interpolate/src/color.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/constant.js +6 -0
- package/dist/node_modules/d3-interpolate/src/constant.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/date.js +11 -0
- package/dist/node_modules/d3-interpolate/src/date.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/number.js +10 -0
- package/dist/node_modules/d3-interpolate/src/number.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/numberArray.js +16 -0
- package/dist/node_modules/d3-interpolate/src/numberArray.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/object.js +14 -0
- package/dist/node_modules/d3-interpolate/src/object.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/piecewise.js +14 -0
- package/dist/node_modules/d3-interpolate/src/piecewise.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/rgb.js +19 -0
- package/dist/node_modules/d3-interpolate/src/rgb.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/round.js +10 -0
- package/dist/node_modules/d3-interpolate/src/round.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/string.js +28 -0
- package/dist/node_modules/d3-interpolate/src/string.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/value.js +18 -0
- package/dist/node_modules/d3-interpolate/src/value.js.map +1 -0
- package/dist/node_modules/d3-path/src/path.js +65 -0
- package/dist/node_modules/d3-path/src/path.js.map +1 -0
- package/dist/node_modules/d3-scale/src/band.js +52 -0
- package/dist/node_modules/d3-scale/src/band.js.map +1 -0
- package/dist/node_modules/d3-scale/src/constant.js +10 -0
- package/dist/node_modules/d3-scale/src/constant.js.map +1 -0
- package/dist/node_modules/d3-scale/src/continuous.js +73 -0
- package/dist/node_modules/d3-scale/src/continuous.js.map +1 -0
- package/dist/node_modules/d3-scale/src/diverging.js +82 -0
- package/dist/node_modules/d3-scale/src/diverging.js.map +1 -0
- package/dist/node_modules/d3-scale/src/identity.js +20 -0
- package/dist/node_modules/d3-scale/src/identity.js.map +1 -0
- package/dist/node_modules/d3-scale/src/init.js +29 -0
- package/dist/node_modules/d3-scale/src/init.js.map +1 -0
- package/dist/node_modules/d3-scale/src/linear.js +36 -0
- package/dist/node_modules/d3-scale/src/linear.js.map +1 -0
- package/dist/node_modules/d3-scale/src/log.js +77 -0
- package/dist/node_modules/d3-scale/src/log.js.map +1 -0
- package/dist/node_modules/d3-scale/src/nice.js +10 -0
- package/dist/node_modules/d3-scale/src/nice.js.map +1 -0
- package/dist/node_modules/d3-scale/src/number.js +8 -0
- package/dist/node_modules/d3-scale/src/number.js.map +1 -0
- package/dist/node_modules/d3-scale/src/ordinal.js +31 -0
- package/dist/node_modules/d3-scale/src/ordinal.js.map +1 -0
- package/dist/node_modules/d3-scale/src/pow.js +37 -0
- package/dist/node_modules/d3-scale/src/pow.js.map +1 -0
- package/dist/node_modules/d3-scale/src/quantile.js +37 -0
- package/dist/node_modules/d3-scale/src/quantile.js.map +1 -0
- package/dist/node_modules/d3-scale/src/quantize.js +33 -0
- package/dist/node_modules/d3-scale/src/quantize.js.map +1 -0
- package/dist/node_modules/d3-scale/src/radial.js +39 -0
- package/dist/node_modules/d3-scale/src/radial.js.map +1 -0
- package/dist/node_modules/d3-scale/src/sequential.js +67 -0
- package/dist/node_modules/d3-scale/src/sequential.js.map +1 -0
- package/dist/node_modules/d3-scale/src/sequentialQuantile.js +30 -0
- package/dist/node_modules/d3-scale/src/sequentialQuantile.js.map +1 -0
- package/dist/node_modules/d3-scale/src/symlog.js +30 -0
- package/dist/node_modules/d3-scale/src/symlog.js.map +1 -0
- package/dist/node_modules/d3-scale/src/threshold.js +25 -0
- package/dist/node_modules/d3-scale/src/threshold.js.map +1 -0
- package/dist/node_modules/d3-scale/src/tickFormat.js +31 -0
- package/dist/node_modules/d3-scale/src/tickFormat.js.map +1 -0
- package/dist/node_modules/d3-scale/src/time.js +47 -0
- package/dist/node_modules/d3-scale/src/time.js.map +1 -0
- package/dist/node_modules/d3-scale/src/utcTime.js +19 -0
- package/dist/node_modules/d3-scale/src/utcTime.js.map +1 -0
- package/dist/node_modules/d3-shape/src/area.js +55 -0
- package/dist/node_modules/d3-shape/src/area.js.map +1 -0
- package/dist/node_modules/d3-shape/src/array.js +8 -0
- package/dist/node_modules/d3-shape/src/array.js.map +1 -0
- package/dist/node_modules/d3-shape/src/constant.js +10 -0
- package/dist/node_modules/d3-shape/src/constant.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/basis.js +49 -0
- package/dist/node_modules/d3-shape/src/curve/basis.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/basisClosed.js +50 -0
- package/dist/node_modules/d3-shape/src/curve/basisClosed.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/basisOpen.js +46 -0
- package/dist/node_modules/d3-shape/src/curve/basisOpen.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/bump.js +40 -0
- package/dist/node_modules/d3-shape/src/curve/bump.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/linear.js +36 -0
- package/dist/node_modules/d3-shape/src/curve/linear.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/linearClosed.js +25 -0
- package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/monotone.js +94 -0
- package/dist/node_modules/d3-shape/src/curve/monotone.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/natural.js +39 -0
- package/dist/node_modules/d3-shape/src/curve/natural.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/step.js +47 -0
- package/dist/node_modules/d3-shape/src/curve/step.js.map +1 -0
- package/dist/node_modules/d3-shape/src/line.js +30 -0
- package/dist/node_modules/d3-shape/src/line.js.map +1 -0
- package/dist/node_modules/d3-shape/src/math.js +8 -0
- package/dist/node_modules/d3-shape/src/math.js.map +1 -0
- package/dist/node_modules/d3-shape/src/noop.js +6 -0
- package/dist/node_modules/d3-shape/src/noop.js.map +1 -0
- package/dist/node_modules/d3-shape/src/offset/expand.js +15 -0
- package/dist/node_modules/d3-shape/src/offset/expand.js.map +1 -0
- package/dist/node_modules/d3-shape/src/offset/none.js +8 -0
- package/dist/node_modules/d3-shape/src/offset/none.js.map +1 -0
- package/dist/node_modules/d3-shape/src/offset/silhouette.js +15 -0
- package/dist/node_modules/d3-shape/src/offset/silhouette.js.map +1 -0
- package/dist/node_modules/d3-shape/src/offset/wiggle.js +21 -0
- package/dist/node_modules/d3-shape/src/offset/wiggle.js.map +1 -0
- package/dist/node_modules/d3-shape/src/order/none.js +9 -0
- package/dist/node_modules/d3-shape/src/order/none.js.map +1 -0
- package/dist/node_modules/d3-shape/src/path.js +19 -0
- package/dist/node_modules/d3-shape/src/path.js.map +1 -0
- package/dist/node_modules/d3-shape/src/point.js +11 -0
- package/dist/node_modules/d3-shape/src/point.js.map +1 -0
- package/dist/node_modules/d3-shape/src/stack.js +34 -0
- package/dist/node_modules/d3-shape/src/stack.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/circle.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/circle.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/cross.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/cross.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/diamond.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/diamond.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/square.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/square.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/star.js +15 -0
- package/dist/node_modules/d3-shape/src/symbol/star.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/triangle.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/triangle.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/wye.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/wye.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol.js +23 -0
- package/dist/node_modules/d3-shape/src/symbol.js.map +1 -0
- package/dist/node_modules/d3-time/src/day.js +21 -0
- package/dist/node_modules/d3-time/src/day.js.map +1 -0
- package/dist/node_modules/d3-time/src/duration.js +6 -0
- package/dist/node_modules/d3-time/src/duration.js.map +1 -0
- package/dist/node_modules/d3-time/src/hour.js +19 -0
- package/dist/node_modules/d3-time/src/hour.js.map +1 -0
- package/dist/node_modules/d3-time/src/interval.js +28 -0
- package/dist/node_modules/d3-time/src/interval.js.map +1 -0
- package/dist/node_modules/d3-time/src/millisecond.js +14 -0
- package/dist/node_modules/d3-time/src/millisecond.js.map +1 -0
- package/dist/node_modules/d3-time/src/minute.js +19 -0
- package/dist/node_modules/d3-time/src/minute.js.map +1 -0
- package/dist/node_modules/d3-time/src/month.js +18 -0
- package/dist/node_modules/d3-time/src/month.js.map +1 -0
- package/dist/node_modules/d3-time/src/second.js +13 -0
- package/dist/node_modules/d3-time/src/second.js.map +1 -0
- package/dist/node_modules/d3-time/src/ticks.js +125 -0
- package/dist/node_modules/d3-time/src/ticks.js.map +1 -0
- package/dist/node_modules/d3-time/src/week.js +25 -0
- package/dist/node_modules/d3-time/src/week.js.map +1 -0
- package/dist/node_modules/d3-time/src/year.js +26 -0
- package/dist/node_modules/d3-time/src/year.js.map +1 -0
- package/dist/node_modules/d3-time-format/src/defaultLocale.js +62 -0
- package/dist/node_modules/d3-time-format/src/defaultLocale.js.map +1 -0
- package/dist/node_modules/d3-time-format/src/locale.js +490 -0
- package/dist/node_modules/d3-time-format/src/locale.js.map +1 -0
- package/dist/node_modules/decimal.js-light/decimal.js +378 -0
- package/dist/node_modules/decimal.js-light/decimal.js.map +1 -0
- package/dist/node_modules/eventemitter3/index.js +95 -0
- package/dist/node_modules/eventemitter3/index.js.map +1 -0
- package/dist/node_modules/fast-equals/dist/es/index.js +267 -0
- package/dist/node_modules/fast-equals/dist/es/index.js.map +1 -0
- package/dist/node_modules/internmap/src/index.js +40 -0
- package/dist/node_modules/internmap/src/index.js.map +1 -0
- package/dist/node_modules/lodash/_DataView.js +12 -0
- package/dist/node_modules/lodash/_DataView.js.map +1 -0
- package/dist/node_modules/lodash/_Hash.js +23 -0
- package/dist/node_modules/lodash/_Hash.js.map +1 -0
- package/dist/node_modules/lodash/_ListCache.js +23 -0
- package/dist/node_modules/lodash/_ListCache.js.map +1 -0
- package/dist/node_modules/lodash/_Map.js +12 -0
- package/dist/node_modules/lodash/_Map.js.map +1 -0
- package/dist/node_modules/lodash/_MapCache.js +23 -0
- package/dist/node_modules/lodash/_MapCache.js.map +1 -0
- package/dist/node_modules/lodash/_Promise.js +12 -0
- package/dist/node_modules/lodash/_Promise.js.map +1 -0
- package/dist/node_modules/lodash/_Set.js +12 -0
- package/dist/node_modules/lodash/_Set.js.map +1 -0
- package/dist/node_modules/lodash/_SetCache.js +18 -0
- package/dist/node_modules/lodash/_SetCache.js.map +1 -0
- package/dist/node_modules/lodash/_Stack.js +20 -0
- package/dist/node_modules/lodash/_Stack.js.map +1 -0
- package/dist/node_modules/lodash/_Symbol.js +11 -0
- package/dist/node_modules/lodash/_Symbol.js.map +1 -0
- package/dist/node_modules/lodash/_Uint8Array.js +11 -0
- package/dist/node_modules/lodash/_Uint8Array.js.map +1 -0
- package/dist/node_modules/lodash/_WeakMap.js +12 -0
- package/dist/node_modules/lodash/_WeakMap.js.map +1 -0
- package/dist/node_modules/lodash/_apply.js +19 -0
- package/dist/node_modules/lodash/_apply.js.map +1 -0
- package/dist/node_modules/lodash/_arrayEvery.js +14 -0
- package/dist/node_modules/lodash/_arrayEvery.js.map +1 -0
- package/dist/node_modules/lodash/_arrayFilter.js +17 -0
- package/dist/node_modules/lodash/_arrayFilter.js.map +1 -0
- package/dist/node_modules/lodash/_arrayIncludes.js +15 -0
- package/dist/node_modules/lodash/_arrayIncludes.js.map +1 -0
- package/dist/node_modules/lodash/_arrayIncludesWith.js +14 -0
- package/dist/node_modules/lodash/_arrayIncludesWith.js.map +1 -0
- package/dist/node_modules/lodash/_arrayLikeKeys.js +22 -0
- package/dist/node_modules/lodash/_arrayLikeKeys.js.map +1 -0
- package/dist/node_modules/lodash/_arrayMap.js +14 -0
- package/dist/node_modules/lodash/_arrayMap.js.map +1 -0
- package/dist/node_modules/lodash/_arrayPush.js +14 -0
- package/dist/node_modules/lodash/_arrayPush.js.map +1 -0
- package/dist/node_modules/lodash/_arraySome.js +14 -0
- package/dist/node_modules/lodash/_arraySome.js.map +1 -0
- package/dist/node_modules/lodash/_asciiToArray.js +13 -0
- package/dist/node_modules/lodash/_asciiToArray.js.map +1 -0
- package/dist/node_modules/lodash/_assocIndexOf.js +16 -0
- package/dist/node_modules/lodash/_assocIndexOf.js.map +1 -0
- package/dist/node_modules/lodash/_baseAssignValue.js +20 -0
- package/dist/node_modules/lodash/_baseAssignValue.js.map +1 -0
- package/dist/node_modules/lodash/_baseEach.js +13 -0
- package/dist/node_modules/lodash/_baseEach.js.map +1 -0
- package/dist/node_modules/lodash/_baseEvery.js +18 -0
- package/dist/node_modules/lodash/_baseEvery.js.map +1 -0
- package/dist/node_modules/lodash/_baseExtremum.js +19 -0
- package/dist/node_modules/lodash/_baseExtremum.js.map +1 -0
- package/dist/node_modules/lodash/_baseFindIndex.js +14 -0
- package/dist/node_modules/lodash/_baseFindIndex.js.map +1 -0
- package/dist/node_modules/lodash/_baseFlatten.js +21 -0
- package/dist/node_modules/lodash/_baseFlatten.js.map +1 -0
- package/dist/node_modules/lodash/_baseFor.js +11 -0
- package/dist/node_modules/lodash/_baseFor.js.map +1 -0
- package/dist/node_modules/lodash/_baseForOwn.js +16 -0
- package/dist/node_modules/lodash/_baseForOwn.js.map +1 -0
- package/dist/node_modules/lodash/_baseGet.js +18 -0
- package/dist/node_modules/lodash/_baseGet.js.map +1 -0
- package/dist/node_modules/lodash/_baseGetAllKeys.js +17 -0
- package/dist/node_modules/lodash/_baseGetAllKeys.js.map +1 -0
- package/dist/node_modules/lodash/_baseGetTag.js +17 -0
- package/dist/node_modules/lodash/_baseGetTag.js.map +1 -0
- package/dist/node_modules/lodash/_baseGt.js +13 -0
- package/dist/node_modules/lodash/_baseGt.js.map +1 -0
- package/dist/node_modules/lodash/_baseHasIn.js +13 -0
- package/dist/node_modules/lodash/_baseHasIn.js.map +1 -0
- package/dist/node_modules/lodash/_baseIndexOf.js +17 -0
- package/dist/node_modules/lodash/_baseIndexOf.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsArguments.js +16 -0
- package/dist/node_modules/lodash/_baseIsArguments.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsEqual.js +16 -0
- package/dist/node_modules/lodash/_baseIsEqual.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsEqualDeep.js +37 -0
- package/dist/node_modules/lodash/_baseIsEqualDeep.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsMatch.js +33 -0
- package/dist/node_modules/lodash/_baseIsMatch.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsNaN.js +13 -0
- package/dist/node_modules/lodash/_baseIsNaN.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsNative.js +18 -0
- package/dist/node_modules/lodash/_baseIsNative.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsTypedArray.js +18 -0
- package/dist/node_modules/lodash/_baseIsTypedArray.js.map +1 -0
- package/dist/node_modules/lodash/_baseIteratee.js +19 -0
- package/dist/node_modules/lodash/_baseIteratee.js.map +1 -0
- package/dist/node_modules/lodash/_baseKeys.js +19 -0
- package/dist/node_modules/lodash/_baseKeys.js.map +1 -0
- package/dist/node_modules/lodash/_baseLt.js +13 -0
- package/dist/node_modules/lodash/_baseLt.js.map +1 -0
- package/dist/node_modules/lodash/_baseMap.js +19 -0
- package/dist/node_modules/lodash/_baseMap.js.map +1 -0
- package/dist/node_modules/lodash/_baseMatches.js +20 -0
- package/dist/node_modules/lodash/_baseMatches.js.map +1 -0
- package/dist/node_modules/lodash/_baseMatchesProperty.js +24 -0
- package/dist/node_modules/lodash/_baseMatchesProperty.js.map +1 -0
- package/dist/node_modules/lodash/_baseOrderBy.js +39 -0
- package/dist/node_modules/lodash/_baseOrderBy.js.map +1 -0
- package/dist/node_modules/lodash/_baseProperty.js +15 -0
- package/dist/node_modules/lodash/_baseProperty.js.map +1 -0
- package/dist/node_modules/lodash/_basePropertyDeep.js +17 -0
- package/dist/node_modules/lodash/_basePropertyDeep.js.map +1 -0
- package/dist/node_modules/lodash/_baseRange.js +15 -0
- package/dist/node_modules/lodash/_baseRange.js.map +1 -0
- package/dist/node_modules/lodash/_baseRest.js +17 -0
- package/dist/node_modules/lodash/_baseRest.js.map +1 -0
- package/dist/node_modules/lodash/_baseSetToString.js +21 -0
- package/dist/node_modules/lodash/_baseSetToString.js.map +1 -0
- package/dist/node_modules/lodash/_baseSlice.js +16 -0
- package/dist/node_modules/lodash/_baseSlice.js.map +1 -0
- package/dist/node_modules/lodash/_baseSome.js +18 -0
- package/dist/node_modules/lodash/_baseSome.js.map +1 -0
- package/dist/node_modules/lodash/_baseSortBy.js +15 -0
- package/dist/node_modules/lodash/_baseSortBy.js.map +1 -0
- package/dist/node_modules/lodash/_baseTimes.js +14 -0
- package/dist/node_modules/lodash/_baseTimes.js.map +1 -0
- package/dist/node_modules/lodash/_baseToString.js +22 -0
- package/dist/node_modules/lodash/_baseToString.js.map +1 -0
- package/dist/node_modules/lodash/_baseTrim.js +15 -0
- package/dist/node_modules/lodash/_baseTrim.js.map +1 -0
- package/dist/node_modules/lodash/_baseUnary.js +15 -0
- package/dist/node_modules/lodash/_baseUnary.js.map +1 -0
- package/dist/node_modules/lodash/_baseUniq.js +34 -0
- package/dist/node_modules/lodash/_baseUniq.js.map +1 -0
- package/dist/node_modules/lodash/_cacheHas.js +13 -0
- package/dist/node_modules/lodash/_cacheHas.js.map +1 -0
- package/dist/node_modules/lodash/_castPath.js +18 -0
- package/dist/node_modules/lodash/_castPath.js.map +1 -0
- package/dist/node_modules/lodash/_castSlice.js +16 -0
- package/dist/node_modules/lodash/_castSlice.js.map +1 -0
- package/dist/node_modules/lodash/_compareAscending.js +20 -0
- package/dist/node_modules/lodash/_compareAscending.js.map +1 -0
- package/dist/node_modules/lodash/_compareMultiple.js +19 -0
- package/dist/node_modules/lodash/_compareMultiple.js.map +1 -0
- package/dist/node_modules/lodash/_coreJsData.js +11 -0
- package/dist/node_modules/lodash/_coreJsData.js.map +1 -0
- package/dist/node_modules/lodash/_createBaseEach.js +20 -0
- package/dist/node_modules/lodash/_createBaseEach.js.map +1 -0
- package/dist/node_modules/lodash/_createBaseFor.js +19 -0
- package/dist/node_modules/lodash/_createBaseFor.js.map +1 -0
- package/dist/node_modules/lodash/_createCaseFirst.js +22 -0
- package/dist/node_modules/lodash/_createCaseFirst.js.map +1 -0
- package/dist/node_modules/lodash/_createFind.js +27 -0
- package/dist/node_modules/lodash/_createFind.js.map +1 -0
- package/dist/node_modules/lodash/_createRange.js +19 -0
- package/dist/node_modules/lodash/_createRange.js.map +1 -0
- package/dist/node_modules/lodash/_createSet.js +16 -0
- package/dist/node_modules/lodash/_createSet.js.map +1 -0
- package/dist/node_modules/lodash/_defineProperty.js +17 -0
- package/dist/node_modules/lodash/_defineProperty.js.map +1 -0
- package/dist/node_modules/lodash/_equalArrays.js +42 -0
- package/dist/node_modules/lodash/_equalArrays.js.map +1 -0
- package/dist/node_modules/lodash/_equalByTag.js +42 -0
- package/dist/node_modules/lodash/_equalByTag.js.map +1 -0
- package/dist/node_modules/lodash/_equalObjects.js +39 -0
- package/dist/node_modules/lodash/_equalObjects.js.map +1 -0
- package/dist/node_modules/lodash/_freeGlobal.js +10 -0
- package/dist/node_modules/lodash/_freeGlobal.js.map +1 -0
- package/dist/node_modules/lodash/_getAllKeys.js +17 -0
- package/dist/node_modules/lodash/_getAllKeys.js.map +1 -0
- package/dist/node_modules/lodash/_getMapData.js +16 -0
- package/dist/node_modules/lodash/_getMapData.js.map +1 -0
- package/dist/node_modules/lodash/_getMatchData.js +24 -0
- package/dist/node_modules/lodash/_getMatchData.js.map +1 -0
- package/dist/node_modules/lodash/_getNative.js +17 -0
- package/dist/node_modules/lodash/_getNative.js.map +1 -0
- package/dist/node_modules/lodash/_getPrototype.js +11 -0
- package/dist/node_modules/lodash/_getPrototype.js.map +1 -0
- package/dist/node_modules/lodash/_getRawTag.js +21 -0
- package/dist/node_modules/lodash/_getRawTag.js.map +1 -0
- package/dist/node_modules/lodash/_getSymbols.js +17 -0
- package/dist/node_modules/lodash/_getSymbols.js.map +1 -0
- package/dist/node_modules/lodash/_getTag.js +28 -0
- package/dist/node_modules/lodash/_getTag.js.map +1 -0
- package/dist/node_modules/lodash/_getValue.js +13 -0
- package/dist/node_modules/lodash/_getValue.js.map +1 -0
- package/dist/node_modules/lodash/_hasPath.js +26 -0
- package/dist/node_modules/lodash/_hasPath.js.map +1 -0
- package/dist/node_modules/lodash/_hasUnicode.js +14 -0
- package/dist/node_modules/lodash/_hasUnicode.js.map +1 -0
- package/dist/node_modules/lodash/_hashClear.js +15 -0
- package/dist/node_modules/lodash/_hashClear.js.map +1 -0
- package/dist/node_modules/lodash/_hashDelete.js +14 -0
- package/dist/node_modules/lodash/_hashDelete.js.map +1 -0
- package/dist/node_modules/lodash/_hashGet.js +20 -0
- package/dist/node_modules/lodash/_hashGet.js.map +1 -0
- package/dist/node_modules/lodash/_hashHas.js +16 -0
- package/dist/node_modules/lodash/_hashHas.js.map +1 -0
- package/dist/node_modules/lodash/_hashSet.js +16 -0
- package/dist/node_modules/lodash/_hashSet.js.map +1 -0
- package/dist/node_modules/lodash/_isFlattenable.js +17 -0
- package/dist/node_modules/lodash/_isFlattenable.js.map +1 -0
- package/dist/node_modules/lodash/_isIndex.js +15 -0
- package/dist/node_modules/lodash/_isIndex.js.map +1 -0
- package/dist/node_modules/lodash/_isIterateeCall.js +20 -0
- package/dist/node_modules/lodash/_isIterateeCall.js.map +1 -0
- package/dist/node_modules/lodash/_isKey.js +18 -0
- package/dist/node_modules/lodash/_isKey.js.map +1 -0
- package/dist/node_modules/lodash/_isKeyable.js +14 -0
- package/dist/node_modules/lodash/_isKeyable.js.map +1 -0
- package/dist/node_modules/lodash/_isMasked.js +18 -0
- package/dist/node_modules/lodash/_isMasked.js.map +1 -0
- package/dist/node_modules/lodash/_isPrototype.js +15 -0
- package/dist/node_modules/lodash/_isPrototype.js.map +1 -0
- package/dist/node_modules/lodash/_isStrictComparable.js +15 -0
- package/dist/node_modules/lodash/_isStrictComparable.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheClear.js +13 -0
- package/dist/node_modules/lodash/_listCacheClear.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheDelete.js +16 -0
- package/dist/node_modules/lodash/_listCacheDelete.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheGet.js +16 -0
- package/dist/node_modules/lodash/_listCacheGet.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheHas.js +15 -0
- package/dist/node_modules/lodash/_listCacheHas.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheSet.js +16 -0
- package/dist/node_modules/lodash/_listCacheSet.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheClear.js +21 -0
- package/dist/node_modules/lodash/_mapCacheClear.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheDelete.js +16 -0
- package/dist/node_modules/lodash/_mapCacheDelete.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheGet.js +15 -0
- package/dist/node_modules/lodash/_mapCacheGet.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheHas.js +15 -0
- package/dist/node_modules/lodash/_mapCacheHas.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheSet.js +16 -0
- package/dist/node_modules/lodash/_mapCacheSet.js.map +1 -0
- package/dist/node_modules/lodash/_mapToArray.js +16 -0
- package/dist/node_modules/lodash/_mapToArray.js.map +1 -0
- package/dist/node_modules/lodash/_matchesStrictComparable.js +15 -0
- package/dist/node_modules/lodash/_matchesStrictComparable.js.map +1 -0
- package/dist/node_modules/lodash/_memoizeCapped.js +18 -0
- package/dist/node_modules/lodash/_memoizeCapped.js.map +1 -0
- package/dist/node_modules/lodash/_nativeCreate.js +11 -0
- package/dist/node_modules/lodash/_nativeCreate.js.map +1 -0
- package/dist/node_modules/lodash/_nativeKeys.js +11 -0
- package/dist/node_modules/lodash/_nativeKeys.js.map +1 -0
- package/dist/node_modules/lodash/_nodeUtil.js +16 -0
- package/dist/node_modules/lodash/_nodeUtil.js.map +1 -0
- package/dist/node_modules/lodash/_objectToString.js +14 -0
- package/dist/node_modules/lodash/_objectToString.js.map +1 -0
- package/dist/node_modules/lodash/_overArg.js +15 -0
- package/dist/node_modules/lodash/_overArg.js.map +1 -0
- package/dist/node_modules/lodash/_overRest.js +20 -0
- package/dist/node_modules/lodash/_overRest.js.map +1 -0
- package/dist/node_modules/lodash/_root.js +12 -0
- package/dist/node_modules/lodash/_root.js.map +1 -0
- package/dist/node_modules/lodash/_setCacheAdd.js +14 -0
- package/dist/node_modules/lodash/_setCacheAdd.js.map +1 -0
- package/dist/node_modules/lodash/_setCacheHas.js +13 -0
- package/dist/node_modules/lodash/_setCacheHas.js.map +1 -0
- package/dist/node_modules/lodash/_setToArray.js +16 -0
- package/dist/node_modules/lodash/_setToArray.js.map +1 -0
- package/dist/node_modules/lodash/_setToString.js +13 -0
- package/dist/node_modules/lodash/_setToString.js.map +1 -0
- package/dist/node_modules/lodash/_shortOut.js +21 -0
- package/dist/node_modules/lodash/_shortOut.js.map +1 -0
- package/dist/node_modules/lodash/_stackClear.js +15 -0
- package/dist/node_modules/lodash/_stackClear.js.map +1 -0
- package/dist/node_modules/lodash/_stackDelete.js +14 -0
- package/dist/node_modules/lodash/_stackDelete.js.map +1 -0
- package/dist/node_modules/lodash/_stackGet.js +13 -0
- package/dist/node_modules/lodash/_stackGet.js.map +1 -0
- package/dist/node_modules/lodash/_stackHas.js +13 -0
- package/dist/node_modules/lodash/_stackHas.js.map +1 -0
- package/dist/node_modules/lodash/_stackSet.js +23 -0
- package/dist/node_modules/lodash/_stackSet.js.map +1 -0
- package/dist/node_modules/lodash/_strictIndexOf.js +14 -0
- package/dist/node_modules/lodash/_strictIndexOf.js.map +1 -0
- package/dist/node_modules/lodash/_stringToArray.js +17 -0
- package/dist/node_modules/lodash/_stringToArray.js.map +1 -0
- package/dist/node_modules/lodash/_stringToPath.js +17 -0
- package/dist/node_modules/lodash/_stringToPath.js.map +1 -0
- package/dist/node_modules/lodash/_toKey.js +17 -0
- package/dist/node_modules/lodash/_toKey.js.map +1 -0
- package/dist/node_modules/lodash/_toSource.js +22 -0
- package/dist/node_modules/lodash/_toSource.js.map +1 -0
- package/dist/node_modules/lodash/_trimmedEndIndex.js +15 -0
- package/dist/node_modules/lodash/_trimmedEndIndex.js.map +1 -0
- package/dist/node_modules/lodash/_unicodeToArray.js +24 -0
- package/dist/node_modules/lodash/_unicodeToArray.js.map +1 -0
- package/dist/node_modules/lodash/constant.js +15 -0
- package/dist/node_modules/lodash/constant.js.map +1 -0
- package/dist/node_modules/lodash/debounce.js +57 -0
- package/dist/node_modules/lodash/debounce.js.map +1 -0
- package/dist/node_modules/lodash/eq.js +13 -0
- package/dist/node_modules/lodash/eq.js.map +1 -0
- package/dist/node_modules/lodash/every.js +20 -0
- package/dist/node_modules/lodash/every.js.map +1 -0
- package/dist/node_modules/lodash/find.js +12 -0
- package/dist/node_modules/lodash/find.js.map +1 -0
- package/dist/node_modules/lodash/findIndex.js +20 -0
- package/dist/node_modules/lodash/findIndex.js.map +1 -0
- package/dist/node_modules/lodash/flatMap.js +16 -0
- package/dist/node_modules/lodash/flatMap.js.map +1 -0
- package/dist/node_modules/lodash/get.js +16 -0
- package/dist/node_modules/lodash/get.js.map +1 -0
- package/dist/node_modules/lodash/hasIn.js +16 -0
- package/dist/node_modules/lodash/hasIn.js.map +1 -0
- package/dist/node_modules/lodash/identity.js +13 -0
- package/dist/node_modules/lodash/identity.js.map +1 -0
- package/dist/node_modules/lodash/isArguments.js +17 -0
- package/dist/node_modules/lodash/isArguments.js.map +1 -0
- package/dist/node_modules/lodash/isArray.js +10 -0
- package/dist/node_modules/lodash/isArray.js.map +1 -0
- package/dist/node_modules/lodash/isArrayLike.js +16 -0
- package/dist/node_modules/lodash/isArrayLike.js.map +1 -0
- package/dist/node_modules/lodash/isBoolean.js +16 -0
- package/dist/node_modules/lodash/isBoolean.js.map +1 -0
- package/dist/node_modules/lodash/isBuffer.js +13 -0
- package/dist/node_modules/lodash/isBuffer.js.map +1 -0
- package/dist/node_modules/lodash/isEqual.js +15 -0
- package/dist/node_modules/lodash/isEqual.js.map +1 -0
- package/dist/node_modules/lodash/isFunction.js +18 -0
- package/dist/node_modules/lodash/isFunction.js.map +1 -0
- package/dist/node_modules/lodash/isLength.js +14 -0
- package/dist/node_modules/lodash/isLength.js.map +1 -0
- package/dist/node_modules/lodash/isNaN.js +15 -0
- package/dist/node_modules/lodash/isNaN.js.map +1 -0
- package/dist/node_modules/lodash/isNil.js +13 -0
- package/dist/node_modules/lodash/isNil.js.map +1 -0
- package/dist/node_modules/lodash/isNumber.js +16 -0
- package/dist/node_modules/lodash/isNumber.js.map +1 -0
- package/dist/node_modules/lodash/isObject.js +14 -0
- package/dist/node_modules/lodash/isObject.js.map +1 -0
- package/dist/node_modules/lodash/isObjectLike.js +13 -0
- package/dist/node_modules/lodash/isObjectLike.js.map +1 -0
- package/dist/node_modules/lodash/isPlainObject.js +21 -0
- package/dist/node_modules/lodash/isPlainObject.js.map +1 -0
- package/dist/node_modules/lodash/isString.js +17 -0
- package/dist/node_modules/lodash/isString.js.map +1 -0
- package/dist/node_modules/lodash/isSymbol.js +16 -0
- package/dist/node_modules/lodash/isSymbol.js.map +1 -0
- package/dist/node_modules/lodash/isTypedArray.js +14 -0
- package/dist/node_modules/lodash/isTypedArray.js.map +1 -0
- package/dist/node_modules/lodash/keys.js +17 -0
- package/dist/node_modules/lodash/keys.js.map +1 -0
- package/dist/node_modules/lodash/last.js +14 -0
- package/dist/node_modules/lodash/last.js.map +1 -0
- package/dist/node_modules/lodash/map.js +18 -0
- package/dist/node_modules/lodash/map.js.map +1 -0
- package/dist/node_modules/lodash/mapValues.js +20 -0
- package/dist/node_modules/lodash/mapValues.js.map +1 -0
- package/dist/node_modules/lodash/max.js +17 -0
- package/dist/node_modules/lodash/max.js.map +1 -0
- package/dist/node_modules/lodash/maxBy.js +17 -0
- package/dist/node_modules/lodash/maxBy.js.map +1 -0
- package/dist/node_modules/lodash/memoize.js +22 -0
- package/dist/node_modules/lodash/memoize.js.map +1 -0
- package/dist/node_modules/lodash/min.js +17 -0
- package/dist/node_modules/lodash/min.js.map +1 -0
- package/dist/node_modules/lodash/minBy.js +17 -0
- package/dist/node_modules/lodash/minBy.js.map +1 -0
- package/dist/node_modules/lodash/noop.js +11 -0
- package/dist/node_modules/lodash/noop.js.map +1 -0
- package/dist/node_modules/lodash/now.js +14 -0
- package/dist/node_modules/lodash/now.js.map +1 -0
- package/dist/node_modules/lodash/property.js +18 -0
- package/dist/node_modules/lodash/property.js.map +1 -0
- package/dist/node_modules/lodash/range.js +11 -0
- package/dist/node_modules/lodash/range.js.map +1 -0
- package/dist/node_modules/lodash/some.js +20 -0
- package/dist/node_modules/lodash/some.js.map +1 -0
- package/dist/node_modules/lodash/sortBy.js +19 -0
- package/dist/node_modules/lodash/sortBy.js.map +1 -0
- package/dist/node_modules/lodash/stubArray.js +13 -0
- package/dist/node_modules/lodash/stubArray.js.map +1 -0
- package/dist/node_modules/lodash/stubFalse.js +13 -0
- package/dist/node_modules/lodash/stubFalse.js.map +1 -0
- package/dist/node_modules/lodash/throttle.js +22 -0
- package/dist/node_modules/lodash/throttle.js.map +1 -0
- package/dist/node_modules/lodash/toFinite.js +15 -0
- package/dist/node_modules/lodash/toFinite.js.map +1 -0
- package/dist/node_modules/lodash/toInteger.js +16 -0
- package/dist/node_modules/lodash/toInteger.js.map +1 -0
- package/dist/node_modules/lodash/toNumber.js +26 -0
- package/dist/node_modules/lodash/toNumber.js.map +1 -0
- package/dist/node_modules/lodash/toString.js +15 -0
- package/dist/node_modules/lodash/toString.js.map +1 -0
- package/dist/node_modules/lodash/uniqBy.js +16 -0
- package/dist/node_modules/lodash/uniqBy.js.map +1 -0
- package/dist/node_modules/lodash/upperFirst.js +11 -0
- package/dist/node_modules/lodash/upperFirst.js.map +1 -0
- package/dist/node_modules/object-assign/index.js +41 -0
- package/dist/node_modules/object-assign/index.js.map +1 -0
- package/dist/node_modules/prop-types/checkPropTypes.js +46 -0
- package/dist/node_modules/prop-types/checkPropTypes.js.map +1 -0
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js +49 -0
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -0
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +272 -0
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -0
- package/dist/node_modules/prop-types/index.js +16 -0
- package/dist/node_modules/prop-types/index.js.map +1 -0
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +10 -0
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -0
- package/dist/node_modules/prop-types/lib/has.js +10 -0
- package/dist/node_modules/prop-types/lib/has.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +84 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +64 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/index.js +12 -0
- package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/react-is/cjs/react-is.development.js +87 -0
- package/dist/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/react-is/cjs/react-is.production.min.js +65 -0
- package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/react-is/index.js +12 -0
- package/dist/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/Animate.js +374 -0
- package/dist/node_modules/react-smooth/es6/Animate.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/AnimateManager.js +73 -0
- package/dist/node_modules/react-smooth/es6/AnimateManager.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/configUpdate.js +173 -0
- package/dist/node_modules/react-smooth/es6/configUpdate.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/easing.js +152 -0
- package/dist/node_modules/react-smooth/es6/easing.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/index.js +9 -0
- package/dist/node_modules/react-smooth/es6/index.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/setRafTimeout.js +14 -0
- package/dist/node_modules/react-smooth/es6/setRafTimeout.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/util.js +92 -0
- package/dist/node_modules/react-smooth/es6/util.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/Area.js +435 -0
- package/dist/node_modules/recharts/es6/cartesian/Area.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/Bar.js +387 -0
- package/dist/node_modules/recharts/es6/cartesian/Bar.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/Brush.js +499 -0
- package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js +338 -0
- package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js +243 -0
- package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js +173 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js +178 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js +254 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/XAxis.js +144 -0
- package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/YAxis.js +143 -0
- package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js +18 -0
- package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/getTicks.js +121 -0
- package/dist/node_modules/recharts/es6/cartesian/getTicks.js.map +1 -0
- package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js +101 -0
- package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js.map +1 -0
- package/dist/node_modules/recharts/es6/chart/AreaChart.js +22 -0
- package/dist/node_modules/recharts/es6/chart/AreaChart.js.map +1 -0
- package/dist/node_modules/recharts/es6/chart/BarChart.js +24 -0
- package/dist/node_modules/recharts/es6/chart/BarChart.js.map +1 -0
- package/dist/node_modules/recharts/es6/chart/PieChart.js +34 -0
- package/dist/node_modules/recharts/es6/chart/PieChart.js.map +1 -0
- package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js +1245 -0
- package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Cell.js +9 -0
- package/dist/node_modules/recharts/es6/component/Cell.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Cursor.js +93 -0
- package/dist/node_modules/recharts/es6/component/Cursor.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js +237 -0
- package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js +171 -0
- package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Label.js +353 -0
- package/dist/node_modules/recharts/es6/component/Label.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/LabelList.js +166 -0
- package/dist/node_modules/recharts/es6/component/LabelList.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Legend.js +234 -0
- package/dist/node_modules/recharts/es6/component/Legend.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js +187 -0
- package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Text.js +225 -0
- package/dist/node_modules/recharts/es6/component/Text.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Tooltip.js +182 -0
- package/dist/node_modules/recharts/es6/component/Tooltip.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js +198 -0
- package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js.map +1 -0
- package/dist/node_modules/recharts/es6/container/Layer.js +40 -0
- package/dist/node_modules/recharts/es6/container/Layer.js.map +1 -0
- package/dist/node_modules/recharts/es6/container/Surface.js +60 -0
- package/dist/node_modules/recharts/es6/container/Surface.js.map +1 -0
- package/dist/node_modules/recharts/es6/context/chartLayoutContext.js +46 -0
- package/dist/node_modules/recharts/es6/context/chartLayoutContext.js.map +1 -0
- package/dist/node_modules/recharts/es6/polar/Pie.js +435 -0
- package/dist/node_modules/recharts/es6/polar/Pie.js.map +1 -0
- package/dist/node_modules/recharts/es6/polar/PolarAngleAxis.js +215 -0
- package/dist/node_modules/recharts/es6/polar/PolarAngleAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/polar/PolarRadiusAxis.js +268 -0
- package/dist/node_modules/recharts/es6/polar/PolarRadiusAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Cross.js +112 -0
- package/dist/node_modules/recharts/es6/shape/Cross.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Curve.js +136 -0
- package/dist/node_modules/recharts/es6/shape/Curve.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Dot.js +27 -0
- package/dist/node_modules/recharts/es6/shape/Dot.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Polygon.js +112 -0
- package/dist/node_modules/recharts/es6/shape/Polygon.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Rectangle.js +205 -0
- package/dist/node_modules/recharts/es6/shape/Rectangle.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Sector.js +192 -0
- package/dist/node_modules/recharts/es6/shape/Sector.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Symbols.js +143 -0
- package/dist/node_modules/recharts/es6/shape/Symbols.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Trapezoid.js +175 -0
- package/dist/node_modules/recharts/es6/shape/Trapezoid.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js +181 -0
- package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/BarUtils.js +112 -0
- package/dist/node_modules/recharts/es6/util/BarUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/CartesianUtils.js +234 -0
- package/dist/node_modules/recharts/es6/util/CartesianUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ChartUtils.js +554 -0
- package/dist/node_modules/recharts/es6/util/ChartUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js +70 -0
- package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/DOMUtils.js +108 -0
- package/dist/node_modules/recharts/es6/util/DOMUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/DataUtils.js +57 -0
- package/dist/node_modules/recharts/es6/util/DataUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js +58 -0
- package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/Events.js +7 -0
- package/dist/node_modules/recharts/es6/util/Events.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/Global.js +21 -0
- package/dist/node_modules/recharts/es6/util/Global.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js +9 -0
- package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/LogUtils.js +15 -0
- package/dist/node_modules/recharts/es6/util/LogUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/PolarUtils.js +198 -0
- package/dist/node_modules/recharts/es6/util/PolarUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ReactUtils.js +137 -0
- package/dist/node_modules/recharts/es6/util/ReactUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js +181 -0
- package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ShallowEqual.js +10 -0
- package/dist/node_modules/recharts/es6/util/ShallowEqual.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/TickUtils.js +31 -0
- package/dist/node_modules/recharts/es6/util/TickUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/calculateViewBox.js +25 -0
- package/dist/node_modules/recharts/es6/util/calculateViewBox.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js +23 -0
- package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js +16 -0
- package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js +17 -0
- package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js +12 -0
- package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/getLegendProps.js +88 -0
- package/dist/node_modules/recharts/es6/util/getLegendProps.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js +13 -0
- package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js +12 -0
- package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/tooltip/translate.js +87 -0
- package/dist/node_modules/recharts/es6/util/tooltip/translate.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/types.js +43 -0
- package/dist/node_modules/recharts/es6/util/types.js.map +1 -0
- package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js +132 -0
- package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js.map +1 -0
- package/dist/node_modules/recharts-scale/es6/index.js +1 -0
- package/dist/node_modules/recharts-scale/es6/util/arithmetic.js +32 -0
- package/dist/node_modules/recharts-scale/es6/util/arithmetic.js.map +1 -0
- package/dist/node_modules/recharts-scale/es6/util/utils.js +79 -0
- package/dist/node_modules/recharts-scale/es6/util/utils.js.map +1 -0
- package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +13 -0
- package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +1 -0
- package/dist/node_modules/victory-vendor/es/d3-scale.js +53 -0
- package/dist/node_modules/victory-vendor/es/d3-scale.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,33 +1,179 @@
|
|
|
1
1
|
import { useEventfullyManaged as e } from "../../context/EventfullyManagedContext.js";
|
|
2
2
|
import { notify as t } from "../../lib/toast.js";
|
|
3
|
-
import { useCreateFloorPlanMutation as n,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
3
|
+
import { useCreateFloorPlanMutation as n, useDeleteFloorPlanMutation as r, useUpdateFloorPlanMutation as i, useVenueQuery as a } from "../../api/eventApi.js";
|
|
4
|
+
import { ActionMenu as o } from "../../components/ActionMenu.js";
|
|
5
|
+
import { describeError as s, mutationSucceeded as c } from "../../lib/mutationResult.js";
|
|
6
|
+
import { ImageUploadField as l } from "../../components/ImageUploadField.js";
|
|
7
|
+
import { useMemo as u, useState as d } from "react";
|
|
8
|
+
import { useParams as f } from "react-router-dom";
|
|
9
|
+
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
10
|
+
import { ArrowLeft as h, LayoutGrid as g, Map as _, Plus as v, SquareStack as y } from "lucide-react";
|
|
11
|
+
import { Badge as b, Button as x, GlassCard as S, GradientText as C, IllustratedEmptyState as w, Input as T, Skeleton as E } from "@burdenoff/fe-libs/ui";
|
|
11
12
|
//#region src/eventfullymanaged/pages/venues/FloorPlansPage.tsx
|
|
12
|
-
var
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
var D = "/EventfullyManaged/FloorPlans";
|
|
14
|
+
function O(e) {
|
|
15
|
+
if (typeof e == "number" && Number.isFinite(e)) return e;
|
|
16
|
+
if (typeof e == "string" && e.trim() !== "" && Number.isFinite(Number(e))) return Number(e);
|
|
17
|
+
}
|
|
18
|
+
function k(e) {
|
|
19
|
+
return typeof e == "string" && e.trim() !== "" ? e : void 0;
|
|
20
|
+
}
|
|
21
|
+
function A(e) {
|
|
22
|
+
if (!e) return [];
|
|
23
|
+
let t = e;
|
|
24
|
+
if (!Array.isArray(t) && typeof t == "object") {
|
|
25
|
+
let e = t;
|
|
26
|
+
Array.isArray(e.zones) ? t = e.zones : Array.isArray(e.areas) ? t = e.areas : Array.isArray(e.booths) && (t = e.booths);
|
|
27
|
+
}
|
|
28
|
+
let n = Array.isArray(t) ? t.map((e, t) => [String(t), e]) : typeof t == "object" && t ? Object.entries(t) : [], r = [];
|
|
29
|
+
for (let [e, t] of n) {
|
|
30
|
+
if (typeof t != "object" || !t) continue;
|
|
31
|
+
let n = t, i = k(n.label) ?? k(n.name) ?? k(n.title) ?? k(n.id) ?? e, a = O(n.x), o = O(n.y), s = O(n.w) ?? O(n.width), c = O(n.h) ?? O(n.height), l;
|
|
32
|
+
if (a !== void 0 && o !== void 0 && s !== void 0 && c !== void 0) {
|
|
33
|
+
let e = a <= 1 && o <= 1 && s <= 1 && c <= 1 ? 100 : 1;
|
|
34
|
+
(e === 100 || a <= 100 && o <= 100 && s <= 100 && c <= 100) && (l = {
|
|
35
|
+
x: a * e,
|
|
36
|
+
y: o * e,
|
|
37
|
+
w: s * e,
|
|
38
|
+
h: c * e
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
r.push({
|
|
42
|
+
key: `${e}-${i}`,
|
|
43
|
+
label: i,
|
|
44
|
+
type: k(n.type) ?? k(n.kind),
|
|
45
|
+
capacity: O(n.capacity) ?? O(n.seats),
|
|
46
|
+
rect: l
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
return r;
|
|
50
|
+
}
|
|
51
|
+
function j(e, t) {
|
|
52
|
+
let n = [];
|
|
53
|
+
t.length > 0 && n.push({
|
|
54
|
+
label: "Zones",
|
|
55
|
+
value: t.length.toLocaleString()
|
|
56
|
+
});
|
|
57
|
+
let r = t.filter((e) => (e.type ?? "").toLowerCase().includes("booth")).length;
|
|
58
|
+
r > 0 && n.push({
|
|
59
|
+
label: "Booths",
|
|
60
|
+
value: r.toLocaleString()
|
|
61
|
+
});
|
|
62
|
+
let i = t.reduce((e, t) => e + (t.capacity ?? 0), 0), a = e.dimensions ?? {}, o = O(a.capacity) ?? O(a.totalCapacity), s = i > 0 ? i : o;
|
|
63
|
+
s !== void 0 && s > 0 && n.push({
|
|
64
|
+
label: "Total capacity",
|
|
65
|
+
value: s.toLocaleString()
|
|
66
|
+
});
|
|
67
|
+
let c = O(a.width), l = O(a.height);
|
|
68
|
+
if (c !== void 0 && l !== void 0) {
|
|
69
|
+
let e = k(a.unit) ?? "m";
|
|
70
|
+
n.push({
|
|
71
|
+
label: "Dimensions",
|
|
72
|
+
value: `${c} × ${l} ${e}`
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return n;
|
|
76
|
+
}
|
|
77
|
+
function M({ plan: e, zones: t, onAttachImage: n }) {
|
|
78
|
+
let r = t.filter((e) => e.rect);
|
|
79
|
+
return /* @__PURE__ */ m(S, {
|
|
80
|
+
treatment: "plain",
|
|
81
|
+
className: "overflow-hidden border-border-seam p-0",
|
|
82
|
+
children: [
|
|
83
|
+
/* @__PURE__ */ m("div", {
|
|
84
|
+
className: "flex items-center justify-between gap-2 border-b border-border-seam px-5 py-3",
|
|
85
|
+
children: [/* @__PURE__ */ m("div", {
|
|
86
|
+
className: "flex min-w-0 items-center gap-2 text-text-primary",
|
|
87
|
+
children: [/* @__PURE__ */ p(_, { className: "h-4 w-4 shrink-0 text-action-primary-bg" }), /* @__PURE__ */ p("h2", {
|
|
88
|
+
className: "truncate text-base font-semibold",
|
|
89
|
+
children: e.name
|
|
90
|
+
})]
|
|
91
|
+
}), t.length > 0 ? /* @__PURE__ */ m(b, {
|
|
92
|
+
variant: "secondary",
|
|
93
|
+
className: "shrink-0",
|
|
94
|
+
children: [
|
|
95
|
+
t.length,
|
|
96
|
+
" ",
|
|
97
|
+
t.length === 1 ? "zone" : "zones"
|
|
98
|
+
]
|
|
99
|
+
}) : null]
|
|
100
|
+
}),
|
|
101
|
+
e.imageUrl ? /* @__PURE__ */ m("div", {
|
|
102
|
+
className: "relative bg-bg-sunken",
|
|
103
|
+
children: [/* @__PURE__ */ p("img", {
|
|
104
|
+
src: e.imageUrl,
|
|
105
|
+
alt: `${e.name} floor plan`,
|
|
106
|
+
className: "mx-auto max-h-[32rem] w-full object-contain"
|
|
107
|
+
}), r.map((e) => /* @__PURE__ */ p("div", {
|
|
108
|
+
className: "absolute flex items-center justify-center rounded-md border border-accent-primary/70 bg-action-primary-bg/15 text-[10px] font-medium text-accent-primary",
|
|
109
|
+
style: {
|
|
110
|
+
left: `${e.rect?.x}%`,
|
|
111
|
+
top: `${e.rect?.y}%`,
|
|
112
|
+
width: `${e.rect?.w}%`,
|
|
113
|
+
height: `${e.rect?.h}%`
|
|
114
|
+
},
|
|
115
|
+
title: e.label,
|
|
116
|
+
children: /* @__PURE__ */ p("span", {
|
|
117
|
+
className: "truncate px-1",
|
|
118
|
+
children: e.label
|
|
119
|
+
})
|
|
120
|
+
}, e.key))]
|
|
121
|
+
}) : /* @__PURE__ */ p("div", {
|
|
122
|
+
className: "p-6",
|
|
123
|
+
children: /* @__PURE__ */ m("div", {
|
|
124
|
+
className: "rounded-card border border-dashed border-border-default bg-bg-sunken p-6",
|
|
125
|
+
children: [/* @__PURE__ */ p("p", {
|
|
126
|
+
className: "mb-3 text-center text-sm text-text-secondary",
|
|
127
|
+
children: "No image attached yet. Upload the hall map for this plan."
|
|
128
|
+
}), /* @__PURE__ */ p(l, {
|
|
129
|
+
label: "Upload floor plan image",
|
|
130
|
+
folderPath: D,
|
|
131
|
+
value: null,
|
|
132
|
+
onUploaded: (t) => n(e, t),
|
|
133
|
+
hint: "Stored securely in Files and shown here once attached."
|
|
134
|
+
})]
|
|
135
|
+
})
|
|
136
|
+
}),
|
|
137
|
+
t.length > 0 ? /* @__PURE__ */ m("div", {
|
|
138
|
+
className: "border-t border-border-seam px-5 py-4",
|
|
139
|
+
children: [/* @__PURE__ */ m("div", {
|
|
140
|
+
className: "mb-2 flex items-center gap-2 text-sm font-medium text-text-primary",
|
|
141
|
+
children: [/* @__PURE__ */ p(g, { className: "h-4 w-4 text-text-muted" }), "Labeled zones"]
|
|
142
|
+
}), /* @__PURE__ */ p("div", {
|
|
143
|
+
className: "flex flex-wrap gap-2",
|
|
144
|
+
children: t.map((e) => /* @__PURE__ */ m(b, {
|
|
145
|
+
variant: "outline",
|
|
146
|
+
className: "gap-1.5",
|
|
147
|
+
children: [e.label, e.capacity ? /* @__PURE__ */ m("span", {
|
|
148
|
+
className: "text-text-muted",
|
|
149
|
+
children: ["· ", e.capacity]
|
|
150
|
+
}) : null]
|
|
151
|
+
}, e.key))
|
|
152
|
+
})]
|
|
153
|
+
}) : null
|
|
154
|
+
]
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
function N() {
|
|
158
|
+
let { id: g = "" } = f(), { navigate: _ } = e(), { data: b, loading: O, refetch: k } = a(g), [N, { loading: P }] = n(), [F] = i(), [I] = r(), [L, R] = d(""), [z, B] = d(""), [V, H] = d(null), [U, W] = d(!1), G = b?.venue, K = u(() => b?.floorPlans?.items ?? [], [b]), q = u(() => K.find((e) => e.id === V) ?? K[0] ?? null, [K, V]), J = u(() => A(q?.interactiveAreas), [q]), Y = u(() => q ? j(q, J) : [], [q, J]), X = async () => {
|
|
159
|
+
if (!(!L.trim() || !g)) try {
|
|
160
|
+
let e = await N({ variables: { input: {
|
|
161
|
+
venueId: g,
|
|
162
|
+
name: L.trim(),
|
|
163
|
+
imageUrl: z,
|
|
20
164
|
dimensions: {},
|
|
21
165
|
interactiveAreas: {}
|
|
22
166
|
} } });
|
|
23
|
-
if (!
|
|
24
|
-
|
|
167
|
+
if (!c(e, e.data?.createFloorPlan?.id, "Could not create floor plan")) return;
|
|
168
|
+
R(""), B(""), W(!1);
|
|
169
|
+
let n = e.data?.createFloorPlan?.id;
|
|
170
|
+
n && H(n), t.success("Floor plan created"), await k();
|
|
25
171
|
} catch (e) {
|
|
26
|
-
t.error("Could not create floor plan",
|
|
172
|
+
t.error("Could not create floor plan", s(e));
|
|
27
173
|
}
|
|
28
|
-
},
|
|
174
|
+
}, Z = async (e, n) => {
|
|
29
175
|
try {
|
|
30
|
-
let t = await
|
|
176
|
+
let t = await F({ variables: {
|
|
31
177
|
id: e.id,
|
|
32
178
|
input: {
|
|
33
179
|
venueId: e.venueId,
|
|
@@ -37,107 +183,194 @@ function S() {
|
|
|
37
183
|
interactiveAreas: e.interactiveAreas ?? {}
|
|
38
184
|
}
|
|
39
185
|
} });
|
|
40
|
-
if (!
|
|
41
|
-
await
|
|
186
|
+
if (!c(t, t.data?.updateFloorPlan?.id, "Could not attach image")) return;
|
|
187
|
+
await k();
|
|
42
188
|
} catch (e) {
|
|
43
|
-
t.error("Could not attach image",
|
|
189
|
+
t.error("Could not attach image", s(e));
|
|
44
190
|
}
|
|
191
|
+
}, Q = async (e) => {
|
|
192
|
+
let n = await I({ variables: { id: e.id } });
|
|
193
|
+
if (n.error) throw t.error("Could not delete floor plan", n.error.message), n.error;
|
|
194
|
+
if (!n.data?.deleteFloorPlan) throw t.error("Could not delete floor plan", "The server did not confirm the change."), Error("delete-unconfirmed");
|
|
195
|
+
V === e.id && H(null), t.success("Floor plan deleted", e.name), await k();
|
|
45
196
|
};
|
|
46
|
-
return /* @__PURE__ */
|
|
197
|
+
return /* @__PURE__ */ m("div", {
|
|
47
198
|
className: "space-y-6 p-6",
|
|
48
|
-
children: [
|
|
49
|
-
|
|
199
|
+
children: [/* @__PURE__ */ m("div", {
|
|
200
|
+
className: "flex flex-col gap-4 sm:flex-row sm:items-end sm:justify-between",
|
|
201
|
+
children: [/* @__PURE__ */ m("div", {
|
|
50
202
|
className: "space-y-3",
|
|
51
|
-
children: [
|
|
52
|
-
|
|
53
|
-
variant: "ghost",
|
|
54
|
-
size: "sm",
|
|
55
|
-
onClick: () => C(`/venues/${S}`),
|
|
56
|
-
children: [/* @__PURE__ */ u(f, { className: "h-4 w-4" }), "Back to Venue"]
|
|
57
|
-
}), /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("h1", {
|
|
58
|
-
className: "text-2xl font-bold text-text-primary",
|
|
59
|
-
children: "Floor Plans"
|
|
60
|
-
}), /* @__PURE__ */ u("p", {
|
|
61
|
-
className: "mt-1 text-sm text-text-secondary",
|
|
62
|
-
children: P?.name ?? "Venue"
|
|
63
|
-
})] })]
|
|
64
|
-
}),
|
|
65
|
-
/* @__PURE__ */ u(b, { children: "Floor plans are the maps of your venue — the hall layout, booth positions, stage and entrances. Add one per space so you can lay out exhibitors, plan attendee flow, and give everyone a clear picture of the room on the day." }),
|
|
66
|
-
/* @__PURE__ */ d(g, { children: [/* @__PURE__ */ u("h2", {
|
|
67
|
-
className: "mb-3 text-sm font-semibold text-text-primary",
|
|
68
|
-
children: "Create floor plan"
|
|
69
|
-
}), /* @__PURE__ */ d("div", {
|
|
70
|
-
className: "space-y-4",
|
|
71
|
-
children: [/* @__PURE__ */ d("div", {
|
|
72
|
-
className: "flex flex-col gap-3 sm:flex-row",
|
|
73
|
-
children: [/* @__PURE__ */ u(y, {
|
|
74
|
-
type: "text",
|
|
75
|
-
value: A,
|
|
76
|
-
onChange: (e) => j(e.target.value),
|
|
77
|
-
placeholder: "Main Hall Layout",
|
|
78
|
-
"aria-label": "Floor plan name",
|
|
79
|
-
className: "flex-1"
|
|
80
|
-
}), /* @__PURE__ */ d(h, {
|
|
203
|
+
children: [
|
|
204
|
+
/* @__PURE__ */ m(x, {
|
|
81
205
|
type: "button",
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
className: "
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
206
|
+
variant: "ghost",
|
|
207
|
+
size: "sm",
|
|
208
|
+
onClick: () => _(`/venues/${g}`),
|
|
209
|
+
children: [/* @__PURE__ */ p(h, { className: "h-4 w-4" }), "Back to Venue"]
|
|
210
|
+
}),
|
|
211
|
+
/* @__PURE__ */ p(C, {
|
|
212
|
+
as: "h1",
|
|
213
|
+
className: "text-2xl font-bold",
|
|
214
|
+
children: G?.name ? `${G.name} — Floor Plans` : "Floor Plans"
|
|
215
|
+
}),
|
|
216
|
+
/* @__PURE__ */ p("p", {
|
|
217
|
+
className: "text-sm text-text-secondary",
|
|
218
|
+
children: "Map the hall layout, booth positions, stage and entrances so exhibitors and attendees can navigate on the day."
|
|
219
|
+
})
|
|
220
|
+
]
|
|
221
|
+
}), /* @__PURE__ */ m(x, {
|
|
222
|
+
type: "button",
|
|
223
|
+
onClick: () => W((e) => !e),
|
|
224
|
+
children: [/* @__PURE__ */ p(v, { className: "h-4 w-4" }), "Add floor plan"]
|
|
225
|
+
})]
|
|
226
|
+
}), O ? /* @__PURE__ */ m("div", {
|
|
227
|
+
className: "grid grid-cols-1 gap-6 lg:grid-cols-3",
|
|
228
|
+
children: [/* @__PURE__ */ p(E, { className: "h-96 rounded-card lg:col-span-2" }), /* @__PURE__ */ p(E, { className: "h-96 rounded-card" })]
|
|
229
|
+
}) : K.length === 0 && !U ? /* @__PURE__ */ p(S, {
|
|
230
|
+
treatment: "plain",
|
|
231
|
+
className: "border-border-seam",
|
|
232
|
+
children: /* @__PURE__ */ p(w, {
|
|
233
|
+
illustration: "empty-files",
|
|
234
|
+
title: "No floor plans yet.",
|
|
235
|
+
description: "Add one to start mapping this venue — upload the hall map and label its zones.",
|
|
236
|
+
action: /* @__PURE__ */ m(x, {
|
|
237
|
+
type: "button",
|
|
238
|
+
onClick: () => W(!0),
|
|
239
|
+
children: [/* @__PURE__ */ p(v, { className: "h-4 w-4" }), "Add floor plan"]
|
|
105
240
|
})
|
|
106
|
-
}) : /* @__PURE__ */ u("div", {
|
|
107
|
-
className: "grid grid-cols-1 gap-4 md:grid-cols-2",
|
|
108
|
-
children: F.map((e) => /* @__PURE__ */ d(_, {
|
|
109
|
-
treatment: "metric",
|
|
110
|
-
className: "space-y-3 p-4",
|
|
111
|
-
children: [
|
|
112
|
-
/* @__PURE__ */ d("div", {
|
|
113
|
-
className: "flex items-center gap-2 text-text-primary",
|
|
114
|
-
children: [/* @__PURE__ */ u(m, { className: "h-4 w-4 text-action-primary-bg" }), /* @__PURE__ */ u("h3", {
|
|
115
|
-
className: "font-semibold",
|
|
116
|
-
children: e.name
|
|
117
|
-
})]
|
|
118
|
-
}),
|
|
119
|
-
e.imageUrl ? /* @__PURE__ */ u("img", {
|
|
120
|
-
src: e.imageUrl,
|
|
121
|
-
alt: `${e.name} floor plan`,
|
|
122
|
-
className: "w-full rounded-card border border-border-seam object-cover"
|
|
123
|
-
}) : /* @__PURE__ */ u(s, {
|
|
124
|
-
label: "Upload image",
|
|
125
|
-
folderPath: x,
|
|
126
|
-
value: null,
|
|
127
|
-
onUploaded: (t) => L(e, t),
|
|
128
|
-
hint: "Add the hall map for this floor plan."
|
|
129
|
-
}),
|
|
130
|
-
/* @__PURE__ */ u("p", {
|
|
131
|
-
className: "text-sm text-text-secondary",
|
|
132
|
-
children: e.dimensions ? "Dimensions configured" : "No dimensions configured"
|
|
133
|
-
})
|
|
134
|
-
]
|
|
135
|
-
}, e.id))
|
|
136
241
|
})
|
|
137
|
-
|
|
242
|
+
}) : /* @__PURE__ */ m("div", {
|
|
243
|
+
className: "grid grid-cols-1 gap-6 lg:grid-cols-3",
|
|
244
|
+
children: [/* @__PURE__ */ p("div", {
|
|
245
|
+
className: "lg:col-span-2",
|
|
246
|
+
children: q ? /* @__PURE__ */ p(M, {
|
|
247
|
+
plan: q,
|
|
248
|
+
zones: J,
|
|
249
|
+
onAttachImage: Z
|
|
250
|
+
}) : /* @__PURE__ */ p(S, {
|
|
251
|
+
treatment: "plain",
|
|
252
|
+
className: "flex h-full items-center justify-center border-border-seam p-10",
|
|
253
|
+
children: /* @__PURE__ */ p("p", {
|
|
254
|
+
className: "text-sm text-text-secondary",
|
|
255
|
+
children: "Add a floor plan to preview it here."
|
|
256
|
+
})
|
|
257
|
+
})
|
|
258
|
+
}), /* @__PURE__ */ m("div", {
|
|
259
|
+
className: "space-y-6",
|
|
260
|
+
children: [
|
|
261
|
+
/* @__PURE__ */ m(S, {
|
|
262
|
+
treatment: "plain",
|
|
263
|
+
className: "border-border-seam p-5",
|
|
264
|
+
children: [/* @__PURE__ */ p("h2", {
|
|
265
|
+
className: "text-sm font-semibold text-text-primary",
|
|
266
|
+
children: "Available Floor Plans"
|
|
267
|
+
}), /* @__PURE__ */ p("ul", {
|
|
268
|
+
className: "mt-3 space-y-2",
|
|
269
|
+
role: "list",
|
|
270
|
+
children: K.length === 0 ? /* @__PURE__ */ p("li", {
|
|
271
|
+
className: "text-sm text-text-secondary",
|
|
272
|
+
children: "None yet — create one below."
|
|
273
|
+
}) : K.map((e) => {
|
|
274
|
+
let t = q?.id === e.id;
|
|
275
|
+
return /* @__PURE__ */ p("li", { children: /* @__PURE__ */ m("div", {
|
|
276
|
+
className: `flex items-center gap-3 rounded-card border p-3 transition-colors ${t ? "border-accent-primary bg-action-primary-bg/10" : "border-border-seam hover:border-border-strong"}`,
|
|
277
|
+
children: [/* @__PURE__ */ m("button", {
|
|
278
|
+
type: "button",
|
|
279
|
+
onClick: () => H(e.id),
|
|
280
|
+
className: "flex min-w-0 flex-1 items-center gap-3 text-left focus-visible:outline-none",
|
|
281
|
+
"aria-pressed": t,
|
|
282
|
+
children: [/* @__PURE__ */ p("span", {
|
|
283
|
+
className: `flex h-9 w-9 shrink-0 items-center justify-center rounded-md ${t ? "bg-action-primary-bg text-action-primary-text" : "bg-bg-sunken text-text-secondary"}`,
|
|
284
|
+
children: /* @__PURE__ */ p(y, { className: "h-4 w-4" })
|
|
285
|
+
}), /* @__PURE__ */ m("span", {
|
|
286
|
+
className: "min-w-0",
|
|
287
|
+
children: [/* @__PURE__ */ p("span", {
|
|
288
|
+
className: "block truncate text-sm font-medium text-text-primary",
|
|
289
|
+
children: e.name
|
|
290
|
+
}), /* @__PURE__ */ p("span", {
|
|
291
|
+
className: "block text-xs text-text-muted",
|
|
292
|
+
children: e.imageUrl ? "Map attached" : "No image yet"
|
|
293
|
+
})]
|
|
294
|
+
})]
|
|
295
|
+
}), /* @__PURE__ */ p(o, {
|
|
296
|
+
ariaLabel: `Floor plan actions for ${e.name}`,
|
|
297
|
+
entityName: e.name,
|
|
298
|
+
deleteLabel: "Delete floor plan",
|
|
299
|
+
onDelete: () => Q(e)
|
|
300
|
+
})]
|
|
301
|
+
}) }, e.id);
|
|
302
|
+
})
|
|
303
|
+
})]
|
|
304
|
+
}),
|
|
305
|
+
q ? /* @__PURE__ */ m(S, {
|
|
306
|
+
treatment: "metric",
|
|
307
|
+
className: "p-5",
|
|
308
|
+
children: [/* @__PURE__ */ p("h2", {
|
|
309
|
+
className: "text-sm font-semibold text-text-primary",
|
|
310
|
+
children: "Plan Details"
|
|
311
|
+
}), Y.length > 0 ? /* @__PURE__ */ p("dl", {
|
|
312
|
+
className: "mt-3 space-y-2",
|
|
313
|
+
children: Y.map((e) => /* @__PURE__ */ m("div", {
|
|
314
|
+
className: "flex items-center justify-between text-sm",
|
|
315
|
+
children: [/* @__PURE__ */ p("dt", {
|
|
316
|
+
className: "text-text-secondary",
|
|
317
|
+
children: e.label
|
|
318
|
+
}), /* @__PURE__ */ p("dd", {
|
|
319
|
+
className: "font-semibold tabular-nums text-text-primary",
|
|
320
|
+
children: e.value
|
|
321
|
+
})]
|
|
322
|
+
}, e.label))
|
|
323
|
+
}) : /* @__PURE__ */ p("p", {
|
|
324
|
+
className: "mt-3 text-sm text-text-secondary",
|
|
325
|
+
children: "No zones or dimensions captured for this plan yet."
|
|
326
|
+
})]
|
|
327
|
+
}) : null,
|
|
328
|
+
U || K.length === 0 ? /* @__PURE__ */ m(S, {
|
|
329
|
+
treatment: "plain",
|
|
330
|
+
className: "border-border-seam p-5",
|
|
331
|
+
children: [/* @__PURE__ */ p("h2", {
|
|
332
|
+
className: "mb-3 text-sm font-semibold text-text-primary",
|
|
333
|
+
children: "Add a floor plan"
|
|
334
|
+
}), /* @__PURE__ */ m("div", {
|
|
335
|
+
className: "space-y-4",
|
|
336
|
+
children: [
|
|
337
|
+
/* @__PURE__ */ p(T, {
|
|
338
|
+
type: "text",
|
|
339
|
+
value: L,
|
|
340
|
+
onChange: (e) => R(e.target.value),
|
|
341
|
+
placeholder: "Main Hall Layout",
|
|
342
|
+
"aria-label": "Floor plan name"
|
|
343
|
+
}),
|
|
344
|
+
/* @__PURE__ */ p(l, {
|
|
345
|
+
label: "Upload floor plan image",
|
|
346
|
+
folderPath: D,
|
|
347
|
+
value: z || null,
|
|
348
|
+
onUploaded: B,
|
|
349
|
+
hint: "Optional now — you can attach it later from the viewer."
|
|
350
|
+
}),
|
|
351
|
+
/* @__PURE__ */ m("div", {
|
|
352
|
+
className: "flex justify-end gap-2",
|
|
353
|
+
children: [K.length > 0 ? /* @__PURE__ */ p(x, {
|
|
354
|
+
type: "button",
|
|
355
|
+
variant: "ghost",
|
|
356
|
+
onClick: () => W(!1),
|
|
357
|
+
children: "Cancel"
|
|
358
|
+
}) : null, /* @__PURE__ */ m(x, {
|
|
359
|
+
type: "button",
|
|
360
|
+
onClick: X,
|
|
361
|
+
disabled: P || !L.trim(),
|
|
362
|
+
children: [/* @__PURE__ */ p(v, { className: "h-4 w-4" }), P ? "Creating…" : "Create"]
|
|
363
|
+
})]
|
|
364
|
+
})
|
|
365
|
+
]
|
|
366
|
+
})]
|
|
367
|
+
}) : null
|
|
368
|
+
]
|
|
369
|
+
})]
|
|
370
|
+
})]
|
|
138
371
|
});
|
|
139
372
|
}
|
|
140
373
|
//#endregion
|
|
141
|
-
export {
|
|
374
|
+
export { N as default };
|
|
142
375
|
|
|
143
376
|
//# sourceMappingURL=FloorPlansPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloorPlansPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/venues/FloorPlansPage.tsx"],"sourcesContent":["import { ArrowLeft, Plus, SquareStack } from 'lucide-react';\nimport { Button, EmphasisPanel, GlassCard, IllustratedEmptyState, Input, PagePurpose } from '@burdenoff/fe-libs/ui';\nimport { useState } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useCreateFloorPlanMutation, useUpdateFloorPlanMutation, useVenueQuery } from '../../api/eventApi';\nimport { ImageUploadField } from '../../components/ImageUploadField';\nimport { useEventfullyManaged } from '../../context/EventfullyManagedContext';\nimport { describeError, mutationSucceeded } from '../../lib/mutationResult';\nimport { notify } from '../../lib/toast';\n\ntype FloorPlan = {\n id: string;\n venueId: string;\n name: string;\n imageUrl?: string | null;\n dimensions?: Record<string, unknown> | null;\n interactiveAreas?: Record<string, unknown> | null;\n};\n\nconst FLOOR_PLAN_FOLDER = '/EventfullyManaged/FloorPlans';\n\nexport default function FloorPlansPage() {\n const { id = '' } = useParams<{ id: string }>();\n const { navigate } = useEventfullyManaged();\n const { data, loading, refetch } = useVenueQuery(id);\n const [createFloorPlan, { loading: creating }] = useCreateFloorPlanMutation();\n const [updateFloorPlan] = useUpdateFloorPlanMutation();\n const [name, setName] = useState('');\n const [imageUrl, setImageUrl] = useState('');\n\n const venue = data?.venue;\n const floorPlans = (data?.floorPlans?.items ?? []) as FloorPlan[];\n\n const handleCreate = async () => {\n if (!name.trim() || !id) {\n return;\n }\n try {\n const response = await createFloorPlan({\n variables: {\n input: {\n venueId: id,\n name: name.trim(),\n imageUrl,\n dimensions: {},\n interactiveAreas: {},\n },\n },\n });\n if (!mutationSucceeded(response, response.data?.createFloorPlan?.id, 'Could not create floor plan')) {\n return;\n }\n setName('');\n setImageUrl('');\n notify.success('Floor plan created');\n await refetch();\n } catch (error) {\n notify.error('Could not create floor plan', describeError(error));\n }\n };\n\n const handleAttachImage = async (plan: FloorPlan, url: string) => {\n try {\n const response = await updateFloorPlan({\n variables: {\n id: plan.id,\n input: {\n venueId: plan.venueId,\n name: plan.name,\n imageUrl: url,\n dimensions: plan.dimensions ?? {},\n interactiveAreas: plan.interactiveAreas ?? {},\n },\n },\n });\n if (!mutationSucceeded(response, response.data?.updateFloorPlan?.id, 'Could not attach image')) {\n return;\n }\n await refetch();\n } catch (error) {\n notify.error('Could not attach image', describeError(error));\n }\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"space-y-3\">\n <Button type=\"button\" variant=\"ghost\" size=\"sm\" onClick={() => navigate(`/venues/${id}`)}>\n <ArrowLeft className=\"h-4 w-4\" />\n Back to Venue\n </Button>\n <div>\n <h1 className=\"text-2xl font-bold text-text-primary\">Floor Plans</h1>\n <p className=\"mt-1 text-sm text-text-secondary\">{venue?.name ?? 'Venue'}</p>\n </div>\n </div>\n\n <PagePurpose>\n Floor plans are the maps of your venue — the hall layout, booth positions, stage and entrances. Add one per\n space so you can lay out exhibitors, plan attendee flow, and give everyone a clear picture of the room on the\n day.\n </PagePurpose>\n\n <EmphasisPanel>\n <h2 className=\"mb-3 text-sm font-semibold text-text-primary\">Create floor plan</h2>\n <div className=\"space-y-4\">\n <div className=\"flex flex-col gap-3 sm:flex-row\">\n <Input\n type=\"text\"\n value={name}\n onChange={(event) => setName(event.target.value)}\n placeholder=\"Main Hall Layout\"\n aria-label=\"Floor plan name\"\n className=\"flex-1\"\n />\n <Button type=\"button\" onClick={handleCreate} disabled={creating}>\n <Plus className=\"h-4 w-4\" />\n {creating ? 'Creating...' : 'Create'}\n </Button>\n </div>\n <ImageUploadField\n label=\"Upload floor plan image\"\n folderPath={FLOOR_PLAN_FOLDER}\n value={imageUrl || null}\n onUploaded={setImageUrl}\n hint=\"Optional. Attach the hall map now, or add it later from the list below.\"\n />\n </div>\n </EmphasisPanel>\n\n {loading ? (\n <GlassCard treatment=\"plain\" className=\"border-border-seam p-8 text-center text-sm text-text-secondary\">\n Loading floor plans...\n </GlassCard>\n ) : floorPlans.length === 0 ? (\n <GlassCard treatment=\"plain\" className=\"border-border-seam\">\n <IllustratedEmptyState\n illustration=\"empty-files\"\n title=\"No floor plans found.\"\n description=\"Create one to start mapping your venue.\"\n />\n </GlassCard>\n ) : (\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n {floorPlans.map((plan) => (\n <GlassCard key={plan.id} treatment=\"metric\" className=\"space-y-3 p-4\">\n <div className=\"flex items-center gap-2 text-text-primary\">\n <SquareStack className=\"h-4 w-4 text-action-primary-bg\" />\n <h3 className=\"font-semibold\">{plan.name}</h3>\n </div>\n {plan.imageUrl ? (\n <img\n src={plan.imageUrl}\n alt={`${plan.name} floor plan`}\n className=\"w-full rounded-card border border-border-seam object-cover\"\n />\n ) : (\n <ImageUploadField\n label=\"Upload image\"\n folderPath={FLOOR_PLAN_FOLDER}\n value={null}\n onUploaded={(url) => handleAttachImage(plan, url)}\n hint=\"Add the hall map for this floor plan.\"\n />\n )}\n <p className=\"text-sm text-text-secondary\">\n {plan.dimensions ? 'Dimensions configured' : 'No dimensions configured'}\n </p>\n </GlassCard>\n ))}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FloorPlansPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/venues/FloorPlansPage.tsx"],"sourcesContent":["import { ArrowLeft, LayoutGrid, Map as MapIcon, Plus, SquareStack } from 'lucide-react';\nimport {\n Badge,\n Button,\n GlassCard,\n GradientText,\n IllustratedEmptyState,\n Input,\n Skeleton,\n} from '@burdenoff/fe-libs/ui';\nimport { useMemo, useState } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport {\n useCreateFloorPlanMutation,\n useDeleteFloorPlanMutation,\n useUpdateFloorPlanMutation,\n useVenueQuery,\n} from '../../api/eventApi';\nimport { ActionMenu } from '../../components/ActionMenu';\nimport { ImageUploadField } from '../../components/ImageUploadField';\nimport { useEventfullyManaged } from '../../context/EventfullyManagedContext';\nimport { describeError, mutationSucceeded } from '../../lib/mutationResult';\nimport { notify } from '../../lib/toast';\n\ntype Json = Record<string, unknown> | null | undefined;\n\ntype FloorPlan = {\n id: string;\n venueId: string;\n name: string;\n imageUrl?: string | null;\n dimensions?: Json;\n interactiveAreas?: Json;\n};\n\ntype Zone = {\n key: string;\n label: string;\n type?: string;\n capacity?: number;\n rect?: { x: number; y: number; w: number; h: number };\n};\n\nconst FLOOR_PLAN_FOLDER = '/EventfullyManaged/FloorPlans';\n\nfunction asNumber(value: unknown): number | undefined {\n if (typeof value === 'number' && Number.isFinite(value)) {\n return value;\n }\n if (typeof value === 'string' && value.trim() !== '' && Number.isFinite(Number(value))) {\n return Number(value);\n }\n return undefined;\n}\n\nfunction asString(value: unknown): string | undefined {\n return typeof value === 'string' && value.trim() !== '' ? value : undefined;\n}\n\n// interactiveAreas is free-form JSON persisted verbatim by the backend. Parse it\n// defensively so the viewer renders whatever real shape a plan happens to hold —\n// an array of areas, a `{ zones: [...] }` / `{ areas: [...] }` wrapper, or a\n// keyed object — without ever fabricating booth data that isn't there.\nfunction extractZones(interactiveAreas: Json): Zone[] {\n if (!interactiveAreas) {\n return [];\n }\n let raw: unknown = interactiveAreas;\n if (!Array.isArray(raw) && typeof raw === 'object') {\n const obj = raw as Record<string, unknown>;\n if (Array.isArray(obj.zones)) {\n raw = obj.zones;\n } else if (Array.isArray(obj.areas)) {\n raw = obj.areas;\n } else if (Array.isArray(obj.booths)) {\n raw = obj.booths;\n }\n }\n\n const entries: Array<[string, unknown]> = Array.isArray(raw)\n ? raw.map((item, index) => [String(index), item])\n : typeof raw === 'object' && raw !== null\n ? Object.entries(raw as Record<string, unknown>)\n : [];\n\n const zones: Zone[] = [];\n for (const [key, value] of entries) {\n if (value === null || typeof value !== 'object') {\n continue;\n }\n const item = value as Record<string, unknown>;\n const label = asString(item.label) ?? asString(item.name) ?? asString(item.title) ?? asString(item.id) ?? key;\n const x = asNumber(item.x);\n const y = asNumber(item.y);\n const w = asNumber(item.w) ?? asNumber(item.width);\n const h = asNumber(item.h) ?? asNumber(item.height);\n let rect: Zone['rect'];\n if (x !== undefined && y !== undefined && w !== undefined && h !== undefined) {\n // Normalise fractional (0–1) or percentage (0–100) coordinates to percent.\n const scale = x <= 1 && y <= 1 && w <= 1 && h <= 1 ? 100 : 1;\n if (scale === 100 || (x <= 100 && y <= 100 && w <= 100 && h <= 100)) {\n rect = { x: x * scale, y: y * scale, w: w * scale, h: h * scale };\n }\n }\n zones.push({\n key: `${key}-${label}`,\n label,\n type: asString(item.type) ?? asString(item.kind),\n capacity: asNumber(item.capacity) ?? asNumber(item.seats),\n rect,\n });\n }\n return zones;\n}\n\ntype PlanMetric = { label: string; value: string };\n\nfunction buildMetrics(plan: FloorPlan, zones: Zone[]): PlanMetric[] {\n const metrics: PlanMetric[] = [];\n if (zones.length > 0) {\n metrics.push({ label: 'Zones', value: zones.length.toLocaleString() });\n }\n\n const boothCount = zones.filter((zone) => (zone.type ?? '').toLowerCase().includes('booth')).length;\n if (boothCount > 0) {\n metrics.push({ label: 'Booths', value: boothCount.toLocaleString() });\n }\n\n const zoneCapacity = zones.reduce((sum, zone) => sum + (zone.capacity ?? 0), 0);\n const dims = (plan.dimensions ?? {}) as Record<string, unknown>;\n const declaredCapacity = asNumber(dims.capacity) ?? asNumber(dims.totalCapacity);\n const capacity = zoneCapacity > 0 ? zoneCapacity : declaredCapacity;\n if (capacity !== undefined && capacity > 0) {\n metrics.push({ label: 'Total capacity', value: capacity.toLocaleString() });\n }\n\n const width = asNumber(dims.width);\n const height = asNumber(dims.height);\n if (width !== undefined && height !== undefined) {\n const unit = asString(dims.unit) ?? 'm';\n metrics.push({ label: 'Dimensions', value: `${width} × ${height} ${unit}` });\n }\n\n return metrics;\n}\n\nfunction FloorPlanViewer({\n plan,\n zones,\n onAttachImage,\n}: {\n plan: FloorPlan;\n zones: Zone[];\n onAttachImage: (plan: FloorPlan, url: string) => void;\n}) {\n const overlayZones = zones.filter((zone) => zone.rect);\n return (\n <GlassCard treatment=\"plain\" className=\"overflow-hidden border-border-seam p-0\">\n <div className=\"flex items-center justify-between gap-2 border-b border-border-seam px-5 py-3\">\n <div className=\"flex min-w-0 items-center gap-2 text-text-primary\">\n <MapIcon className=\"h-4 w-4 shrink-0 text-action-primary-bg\" />\n <h2 className=\"truncate text-base font-semibold\">{plan.name}</h2>\n </div>\n {zones.length > 0 ? (\n <Badge variant=\"secondary\" className=\"shrink-0\">\n {zones.length} {zones.length === 1 ? 'zone' : 'zones'}\n </Badge>\n ) : null}\n </div>\n\n {plan.imageUrl ? (\n <div className=\"relative bg-bg-sunken\">\n <img\n src={plan.imageUrl}\n alt={`${plan.name} floor plan`}\n className=\"mx-auto max-h-[32rem] w-full object-contain\"\n />\n {overlayZones.map((zone) => (\n <div\n key={zone.key}\n className=\"absolute flex items-center justify-center rounded-md border border-accent-primary/70 bg-action-primary-bg/15 text-[10px] font-medium text-accent-primary\"\n style={{\n left: `${zone.rect?.x}%`,\n top: `${zone.rect?.y}%`,\n width: `${zone.rect?.w}%`,\n height: `${zone.rect?.h}%`,\n }}\n title={zone.label}\n >\n <span className=\"truncate px-1\">{zone.label}</span>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"p-6\">\n <div className=\"rounded-card border border-dashed border-border-default bg-bg-sunken p-6\">\n <p className=\"mb-3 text-center text-sm text-text-secondary\">\n No image attached yet. Upload the hall map for this plan.\n </p>\n <ImageUploadField\n label=\"Upload floor plan image\"\n folderPath={FLOOR_PLAN_FOLDER}\n value={null}\n onUploaded={(url) => onAttachImage(plan, url)}\n hint=\"Stored securely in Files and shown here once attached.\"\n />\n </div>\n </div>\n )}\n\n {zones.length > 0 ? (\n <div className=\"border-t border-border-seam px-5 py-4\">\n <div className=\"mb-2 flex items-center gap-2 text-sm font-medium text-text-primary\">\n <LayoutGrid className=\"h-4 w-4 text-text-muted\" />\n Labeled zones\n </div>\n <div className=\"flex flex-wrap gap-2\">\n {zones.map((zone) => (\n <Badge key={zone.key} variant=\"outline\" className=\"gap-1.5\">\n {zone.label}\n {zone.capacity ? <span className=\"text-text-muted\">· {zone.capacity}</span> : null}\n </Badge>\n ))}\n </div>\n </div>\n ) : null}\n </GlassCard>\n );\n}\n\nexport default function FloorPlansPage() {\n const { id = '' } = useParams<{ id: string }>();\n const { navigate } = useEventfullyManaged();\n const { data, loading, refetch } = useVenueQuery(id);\n const [createFloorPlan, { loading: creating }] = useCreateFloorPlanMutation();\n const [updateFloorPlan] = useUpdateFloorPlanMutation();\n const [deleteFloorPlan] = useDeleteFloorPlanMutation();\n const [name, setName] = useState('');\n const [imageUrl, setImageUrl] = useState('');\n const [selectedId, setSelectedId] = useState<string | null>(null);\n const [showCreate, setShowCreate] = useState(false);\n\n const venue = data?.venue;\n const floorPlans = useMemo(() => (data?.floorPlans?.items ?? []) as FloorPlan[], [data]);\n\n const selectedPlan = useMemo(\n () => floorPlans.find((plan) => plan.id === selectedId) ?? floorPlans[0] ?? null,\n [floorPlans, selectedId]\n );\n const selectedZones = useMemo(() => extractZones(selectedPlan?.interactiveAreas), [selectedPlan]);\n const metrics = useMemo(() => (selectedPlan ? buildMetrics(selectedPlan, selectedZones) : []), [selectedPlan, selectedZones]);\n\n const handleCreate = async () => {\n if (!name.trim() || !id) {\n return;\n }\n try {\n const response = await createFloorPlan({\n variables: {\n input: { venueId: id, name: name.trim(), imageUrl, dimensions: {}, interactiveAreas: {} },\n },\n });\n if (!mutationSucceeded(response, response.data?.createFloorPlan?.id, 'Could not create floor plan')) {\n return;\n }\n setName('');\n setImageUrl('');\n setShowCreate(false);\n const createdId = response.data?.createFloorPlan?.id;\n if (createdId) {\n setSelectedId(createdId);\n }\n notify.success('Floor plan created');\n await refetch();\n } catch (error) {\n notify.error('Could not create floor plan', describeError(error));\n }\n };\n\n const handleAttachImage = async (plan: FloorPlan, url: string) => {\n try {\n const response = await updateFloorPlan({\n variables: {\n id: plan.id,\n input: {\n venueId: plan.venueId,\n name: plan.name,\n imageUrl: url,\n dimensions: plan.dimensions ?? {},\n interactiveAreas: plan.interactiveAreas ?? {},\n },\n },\n });\n if (!mutationSucceeded(response, response.data?.updateFloorPlan?.id, 'Could not attach image')) {\n return;\n }\n await refetch();\n } catch (error) {\n notify.error('Could not attach image', describeError(error));\n }\n };\n\n const handleDelete = async (plan: FloorPlan) => {\n const response = await deleteFloorPlan({ variables: { id: plan.id } });\n if (response.error) {\n notify.error('Could not delete floor plan', response.error.message);\n throw response.error;\n }\n if (!response.data?.deleteFloorPlan) {\n notify.error('Could not delete floor plan', 'The server did not confirm the change.');\n throw new Error('delete-unconfirmed');\n }\n if (selectedId === plan.id) {\n setSelectedId(null);\n }\n notify.success('Floor plan deleted', plan.name);\n await refetch();\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-end sm:justify-between\">\n <div className=\"space-y-3\">\n <Button type=\"button\" variant=\"ghost\" size=\"sm\" onClick={() => navigate(`/venues/${id}`)}>\n <ArrowLeft className=\"h-4 w-4\" />\n Back to Venue\n </Button>\n <GradientText as=\"h1\" className=\"text-2xl font-bold\">\n {venue?.name ? `${venue.name} — Floor Plans` : 'Floor Plans'}\n </GradientText>\n <p className=\"text-sm text-text-secondary\">\n Map the hall layout, booth positions, stage and entrances so exhibitors and attendees can navigate on the\n day.\n </p>\n </div>\n <Button type=\"button\" onClick={() => setShowCreate((value) => !value)}>\n <Plus className=\"h-4 w-4\" />\n Add floor plan\n </Button>\n </div>\n\n {loading ? (\n <div className=\"grid grid-cols-1 gap-6 lg:grid-cols-3\">\n <Skeleton className=\"h-96 rounded-card lg:col-span-2\" />\n <Skeleton className=\"h-96 rounded-card\" />\n </div>\n ) : floorPlans.length === 0 && !showCreate ? (\n <GlassCard treatment=\"plain\" className=\"border-border-seam\">\n <IllustratedEmptyState\n illustration=\"empty-files\"\n title=\"No floor plans yet.\"\n description=\"Add one to start mapping this venue — upload the hall map and label its zones.\"\n action={\n <Button type=\"button\" onClick={() => setShowCreate(true)}>\n <Plus className=\"h-4 w-4\" />\n Add floor plan\n </Button>\n }\n />\n </GlassCard>\n ) : (\n <div className=\"grid grid-cols-1 gap-6 lg:grid-cols-3\">\n <div className=\"lg:col-span-2\">\n {selectedPlan ? (\n <FloorPlanViewer plan={selectedPlan} zones={selectedZones} onAttachImage={handleAttachImage} />\n ) : (\n <GlassCard treatment=\"plain\" className=\"flex h-full items-center justify-center border-border-seam p-10\">\n <p className=\"text-sm text-text-secondary\">Add a floor plan to preview it here.</p>\n </GlassCard>\n )}\n </div>\n\n <div className=\"space-y-6\">\n <GlassCard treatment=\"plain\" className=\"border-border-seam p-5\">\n <h2 className=\"text-sm font-semibold text-text-primary\">Available Floor Plans</h2>\n <ul className=\"mt-3 space-y-2\" role=\"list\">\n {floorPlans.length === 0 ? (\n <li className=\"text-sm text-text-secondary\">None yet — create one below.</li>\n ) : (\n floorPlans.map((plan) => {\n const active = selectedPlan?.id === plan.id;\n return (\n <li key={plan.id}>\n <div\n className={`flex items-center gap-3 rounded-card border p-3 transition-colors ${\n active\n ? 'border-accent-primary bg-action-primary-bg/10'\n : 'border-border-seam hover:border-border-strong'\n }`}\n >\n <button\n type=\"button\"\n onClick={() => setSelectedId(plan.id)}\n className=\"flex min-w-0 flex-1 items-center gap-3 text-left focus-visible:outline-none\"\n aria-pressed={active}\n >\n <span\n className={`flex h-9 w-9 shrink-0 items-center justify-center rounded-md ${\n active ? 'bg-action-primary-bg text-action-primary-text' : 'bg-bg-sunken text-text-secondary'\n }`}\n >\n <SquareStack className=\"h-4 w-4\" />\n </span>\n <span className=\"min-w-0\">\n <span className=\"block truncate text-sm font-medium text-text-primary\">{plan.name}</span>\n <span className=\"block text-xs text-text-muted\">\n {plan.imageUrl ? 'Map attached' : 'No image yet'}\n </span>\n </span>\n </button>\n <ActionMenu\n ariaLabel={`Floor plan actions for ${plan.name}`}\n entityName={plan.name}\n deleteLabel=\"Delete floor plan\"\n onDelete={() => handleDelete(plan)}\n />\n </div>\n </li>\n );\n })\n )}\n </ul>\n </GlassCard>\n\n {selectedPlan ? (\n <GlassCard treatment=\"metric\" className=\"p-5\">\n <h2 className=\"text-sm font-semibold text-text-primary\">Plan Details</h2>\n {metrics.length > 0 ? (\n <dl className=\"mt-3 space-y-2\">\n {metrics.map((metric) => (\n <div key={metric.label} className=\"flex items-center justify-between text-sm\">\n <dt className=\"text-text-secondary\">{metric.label}</dt>\n <dd className=\"font-semibold tabular-nums text-text-primary\">{metric.value}</dd>\n </div>\n ))}\n </dl>\n ) : (\n <p className=\"mt-3 text-sm text-text-secondary\">\n No zones or dimensions captured for this plan yet.\n </p>\n )}\n </GlassCard>\n ) : null}\n\n {showCreate || floorPlans.length === 0 ? (\n <GlassCard treatment=\"plain\" className=\"border-border-seam p-5\">\n <h2 className=\"mb-3 text-sm font-semibold text-text-primary\">Add a floor plan</h2>\n <div className=\"space-y-4\">\n <Input\n type=\"text\"\n value={name}\n onChange={(event) => setName(event.target.value)}\n placeholder=\"Main Hall Layout\"\n aria-label=\"Floor plan name\"\n />\n <ImageUploadField\n label=\"Upload floor plan image\"\n folderPath={FLOOR_PLAN_FOLDER}\n value={imageUrl || null}\n onUploaded={setImageUrl}\n hint=\"Optional now — you can attach it later from the viewer.\"\n />\n <div className=\"flex justify-end gap-2\">\n {floorPlans.length > 0 ? (\n <Button type=\"button\" variant=\"ghost\" onClick={() => setShowCreate(false)}>\n Cancel\n </Button>\n ) : null}\n <Button type=\"button\" onClick={handleCreate} disabled={creating || !name.trim()}>\n <Plus className=\"h-4 w-4\" />\n {creating ? 'Creating…' : 'Create'}\n </Button>\n </div>\n </div>\n </GlassCard>\n ) : null}\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|