@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventCharts.js","names":[],"sources":["../../../src/eventfullymanaged/components/EventCharts.tsx"],"sourcesContent":["import { useId } from 'react';\nimport {\n Area,\n AreaChart,\n Bar,\n BarChart,\n Cell,\n Pie,\n PieChart,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\n\n/**\n * Token-driven chart primitives for EventfullyManaged analytics surfaces.\n *\n * All fills/strokes resolve to `--color-chart-*` / `--color-action-*` CSS\n * variables so the charts theme with the rest of the platform (light + dark)\n * and never hard-code a hex. Every chart renders its own empty state so callers\n * can hand it real (possibly empty) query data without branching.\n */\n\nconst CHART_TOOLTIP_STYLE = {\n background: 'var(--color-bg-surface)',\n border: '1px solid var(--color-border-default)',\n borderRadius: '10px',\n fontSize: '12px',\n color: 'var(--color-text-primary)',\n boxShadow: 'var(--shadow-elevation-2)',\n} as const;\n\n/** The categorical palette, in draw order. Backed by semantic chart tokens. */\nexport const CHART_SERIES_COLORS = [\n 'var(--color-chart-1)',\n 'var(--color-chart-2)',\n 'var(--color-chart-3)',\n 'var(--color-chart-4)',\n 'var(--color-chart-5)',\n] as const;\n\n/** Alias — same categorical palette (kept for call sites that import CHART_COLORS). */\nexport const CHART_COLORS = CHART_SERIES_COLORS;\n\nfunction ChartEmpty({ label, height }: { label: string; height: number }) {\n return (\n <div\n className=\"flex items-center justify-center rounded-card border border-dashed border-border-subtle text-sm text-text-muted\"\n style={{ height }}\n >\n {label}\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Area chart — a single smooth series (e.g. registrations over time).\n// ---------------------------------------------------------------------------\n\nexport interface AreaPoint {\n label: string;\n value: number;\n}\n\nexport function EventAreaChart({\n data,\n height = 260,\n emptyLabel = 'Not enough data yet',\n}: {\n data: AreaPoint[];\n height?: number;\n emptyLabel?: string;\n}) {\n const gradientId = useId().replace(/:/g, '');\n if (data.length === 0) {\n return <ChartEmpty label={emptyLabel} height={height} />;\n }\n\n return (\n <ResponsiveContainer width=\"100%\" height={height}>\n <AreaChart data={data} margin={{ top: 8, right: 12, left: 4, bottom: 4 }}>\n <defs>\n <linearGradient id={`efm-area-${gradientId}`} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor=\"var(--color-chart-2)\" stopOpacity={0.45} />\n <stop offset=\"100%\" stopColor=\"var(--color-chart-1)\" stopOpacity={0.04} />\n </linearGradient>\n <linearGradient id={`efm-stroke-${gradientId}`} x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\">\n <stop offset=\"0%\" stopColor=\"var(--color-chart-1)\" />\n <stop offset=\"100%\" stopColor=\"var(--color-chart-2)\" />\n </linearGradient>\n </defs>\n <XAxis\n dataKey=\"label\"\n tick={{ fill: 'var(--color-text-muted)', fontSize: 11 }}\n tickLine={false}\n axisLine={{ stroke: 'var(--color-border-subtle)' }}\n minTickGap={24}\n />\n <YAxis\n tick={{ fill: 'var(--color-text-muted)', fontSize: 11 }}\n tickLine={false}\n axisLine={false}\n width={44}\n allowDecimals={false}\n />\n <Tooltip contentStyle={CHART_TOOLTIP_STYLE} cursor={{ stroke: 'var(--color-border-strong)' }} />\n <Area\n type=\"monotone\"\n dataKey=\"value\"\n name=\"Value\"\n stroke={`url(#efm-stroke-${gradientId})`}\n strokeWidth={2.5}\n fill={`url(#efm-area-${gradientId})`}\n dot={false}\n activeDot={{ r: 4, fill: 'var(--color-chart-2)', stroke: 'var(--color-bg-surface)', strokeWidth: 2 }}\n />\n </AreaChart>\n </ResponsiveContainer>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Donut chart — a categorical breakdown (e.g. registrations by status).\n// ---------------------------------------------------------------------------\n\nexport interface DonutSlice {\n name: string;\n value: number;\n color?: string;\n}\n\nexport function EventDonutChart({\n data,\n height = 240,\n centerLabel,\n centerValue,\n emptyLabel = 'No data yet',\n}: {\n data: DonutSlice[];\n height?: number;\n centerLabel?: string;\n centerValue?: string;\n emptyLabel?: string;\n}) {\n const total = data.reduce((sum, slice) => sum + slice.value, 0);\n if (total === 0) {\n return <ChartEmpty label={emptyLabel} height={height} />;\n }\n\n return (\n <div className=\"relative\" style={{ height }}>\n <ResponsiveContainer width=\"100%\" height={height}>\n <PieChart>\n <Pie\n data={data}\n cx=\"50%\"\n cy=\"50%\"\n innerRadius=\"62%\"\n outerRadius=\"88%\"\n paddingAngle={2}\n dataKey=\"value\"\n nameKey=\"name\"\n stroke=\"var(--color-bg-surface)\"\n strokeWidth={2}\n >\n {data.map((slice, index) => (\n <Cell key={slice.name} fill={slice.color ?? CHART_SERIES_COLORS[index % CHART_SERIES_COLORS.length]} />\n ))}\n </Pie>\n <Tooltip contentStyle={CHART_TOOLTIP_STYLE} />\n </PieChart>\n </ResponsiveContainer>\n {centerValue ? (\n <div className=\"pointer-events-none absolute inset-0 flex flex-col items-center justify-center text-center\">\n <span className=\"text-2xl font-bold tabular-nums text-text-primary\">{centerValue}</span>\n {centerLabel ? <span className=\"text-xs text-text-muted\">{centerLabel}</span> : null}\n </div>\n ) : null}\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Bar chart — discrete category counts (e.g. entity totals).\n// ---------------------------------------------------------------------------\n\nexport interface BarDatum {\n name: string;\n value: number;\n}\n\nexport function EventBarChart({\n data,\n height = 260,\n emptyLabel = 'No data yet',\n}: {\n data: BarDatum[];\n height?: number;\n emptyLabel?: string;\n}) {\n const gradientId = useId().replace(/:/g, '');\n if (data.length === 0 || data.every((datum) => datum.value === 0)) {\n return <ChartEmpty label={emptyLabel} height={height} />;\n }\n\n return (\n <ResponsiveContainer width=\"100%\" height={height}>\n <BarChart data={data} margin={{ top: 8, right: 12, left: 4, bottom: 4 }}>\n <defs>\n <linearGradient id={`efm-bar-${gradientId}`} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor=\"var(--color-chart-2)\" />\n <stop offset=\"100%\" stopColor=\"var(--color-chart-1)\" />\n </linearGradient>\n </defs>\n <XAxis\n dataKey=\"name\"\n tick={{ fill: 'var(--color-text-muted)', fontSize: 11 }}\n tickLine={false}\n axisLine={{ stroke: 'var(--color-border-subtle)' }}\n interval={0}\n />\n <YAxis\n tick={{ fill: 'var(--color-text-muted)', fontSize: 11 }}\n tickLine={false}\n axisLine={false}\n width={44}\n allowDecimals={false}\n />\n <Tooltip contentStyle={CHART_TOOLTIP_STYLE} cursor={{ fill: 'var(--color-bg-sunken)', opacity: 0.6 }} />\n <Bar dataKey=\"value\" name=\"Count\" fill={`url(#efm-bar-${gradientId})`} radius={[6, 6, 0, 0]} maxBarSize={56} />\n </BarChart>\n </ResponsiveContainer>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Legend — a shared, accessible legend for the charts above.\n// ---------------------------------------------------------------------------\n\nexport interface ChartLegendItem {\n label: string;\n color: string;\n value?: string | number;\n}\n\nexport function ChartLegend({ items, className = '' }: { items: ChartLegendItem[]; className?: string }) {\n return (\n <ul className={`flex flex-col gap-2 ${className}`}>\n {items.map((item) => (\n <li key={item.label} className=\"flex items-center gap-2 text-sm\">\n <span\n aria-hidden\n className=\"h-3 w-3 shrink-0 rounded-full\"\n style={{ backgroundColor: item.color }}\n />\n <span className=\"text-text-secondary\">{item.label}</span>\n {item.value !== undefined ? (\n <span className=\"ml-auto font-semibold tabular-nums text-text-primary\">{item.value}</span>\n ) : null}\n </li>\n ))}\n </ul>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//#region src/eventfullymanaged/lib/format.ts
|
|
2
|
+
function e(e, t) {
|
|
3
|
+
if (!Number.isFinite(e)) return `0 ${t}`.trim();
|
|
4
|
+
let n = (t || "USD").toUpperCase();
|
|
5
|
+
try {
|
|
6
|
+
return new Intl.NumberFormat(void 0, {
|
|
7
|
+
style: "currency",
|
|
8
|
+
currency: n,
|
|
9
|
+
maximumFractionDigits: Number.isInteger(e) ? 0 : 2
|
|
10
|
+
}).format(e);
|
|
11
|
+
} catch {
|
|
12
|
+
return `${e.toLocaleString()} ${n}`.trim();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function t(e, t, n) {
|
|
16
|
+
if (!Number.isFinite(e) || e <= 0 || !Number.isFinite(n) || n <= 0) return 0;
|
|
17
|
+
let r = t === "PERCENT" ? e * n / 100 : n;
|
|
18
|
+
return Math.min(Math.max(r, 0), e);
|
|
19
|
+
}
|
|
20
|
+
function n(t, n, r) {
|
|
21
|
+
let i = typeof n == "number" ? n : Number(n);
|
|
22
|
+
return t === "PERCENT" ? `${Number.isFinite(i) ? i : n}% off` : `${Number.isFinite(i) ? e(i, r) : n} off`;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { t as computeDiscount, n as describeDiscount, e as formatMoney };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","names":[],"sources":["../../../src/eventfullymanaged/lib/format.ts"],"sourcesContent":["/**\n * Presentation helpers shared across the registration & ticketing screens.\n *\n * Pricing is authored by the billing service — these helpers only format the\n * real numbers we already hold (ticket price, promo discount, quantity) for a\n * live order-summary preview. They never invent amounts.\n */\n\n/** Format a decimal amount with its ISO currency code, degrading gracefully. */\nexport function formatMoney(amount: number, currency: string): string {\n if (!Number.isFinite(amount)) {\n return `0 ${currency}`.trim();\n }\n const code = (currency || 'USD').toUpperCase();\n try {\n return new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: code,\n maximumFractionDigits: Number.isInteger(amount) ? 0 : 2,\n }).format(amount);\n } catch {\n // Unknown/invalid currency code — fall back to a plain, readable amount.\n return `${amount.toLocaleString()} ${code}`.trim();\n }\n}\n\nexport type DiscountType = 'PERCENT' | 'FIXED' | string;\n\n/**\n * Compute the discount an active promo would take off a subtotal, clamped so it\n * never exceeds the subtotal. Returns 0 for unknown types or non-positive input.\n */\nexport function computeDiscount(subtotal: number, discountType: DiscountType, discountValue: number): number {\n if (!Number.isFinite(subtotal) || subtotal <= 0 || !Number.isFinite(discountValue) || discountValue <= 0) {\n return 0;\n }\n const raw = discountType === 'PERCENT' ? (subtotal * discountValue) / 100 : discountValue;\n return Math.min(Math.max(raw, 0), subtotal);\n}\n\n/** Short human label for a promo discount, e.g. \"10% off\" or \"₹1,000 off\". */\nexport function describeDiscount(discountType: DiscountType, discountValue: string | number, currency: string): string {\n const value = typeof discountValue === 'number' ? discountValue : Number(discountValue);\n if (discountType === 'PERCENT') {\n return `${Number.isFinite(value) ? value : discountValue}% off`;\n }\n return `${Number.isFinite(value) ? formatMoney(value, currency) : discountValue} off`;\n}\n"],"mappings":";AASA,SAAgB,EAAY,GAAgB,GAA0B;AACpE,KAAI,CAAC,OAAO,SAAS,EAAO,CAC1B,QAAO,KAAK,IAAW,MAAM;CAE/B,IAAM,KAAQ,KAAY,OAAO,aAAa;AAC9C,KAAI;AACF,SAAO,IAAI,KAAK,aAAa,KAAA,GAAW;GACtC,OAAO;GACP,UAAU;GACV,uBAAuB,OAAO,UAAU,EAAO,GAAG,IAAI;GACvD,CAAC,CAAC,OAAO,EAAO;SACX;AAEN,SAAO,GAAG,EAAO,gBAAgB,CAAC,GAAG,IAAO,MAAM;;;AAUtD,SAAgB,EAAgB,GAAkB,GAA4B,GAA+B;AAC3G,KAAI,CAAC,OAAO,SAAS,EAAS,IAAI,KAAY,KAAK,CAAC,OAAO,SAAS,EAAc,IAAI,KAAiB,EACrG,QAAO;CAET,IAAM,IAAM,MAAiB,YAAa,IAAW,IAAiB,MAAM;AAC5E,QAAO,KAAK,IAAI,KAAK,IAAI,GAAK,EAAE,EAAE,EAAS;;AAI7C,SAAgB,EAAiB,GAA4B,GAAgC,GAA0B;CACrH,IAAM,IAAQ,OAAO,KAAkB,WAAW,IAAgB,OAAO,EAAc;AAIvF,QAHI,MAAiB,YACZ,GAAG,OAAO,SAAS,EAAM,GAAG,IAAQ,EAAc,SAEpD,GAAG,OAAO,SAAS,EAAM,GAAG,EAAY,GAAO,EAAS,GAAG,EAAc"}
|
|
@@ -1,125 +1,269 @@
|
|
|
1
1
|
import { useEventfullyManaged as e } from "../../context/EventfullyManagedContext.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
2
|
+
import { gql as t } from "../../../node_modules/graphql-tag/lib/index.js";
|
|
3
|
+
import { useQuery as n } from "../../../node_modules/@apollo/client/react/hooks/useQuery.js";
|
|
4
|
+
import { useDashboardSummaryQuery as r } from "../../api/eventApi.js";
|
|
5
|
+
import { EventAreaChart as i } from "../../components/EventCharts.js";
|
|
6
|
+
import { PageLayout as a } from "../../components/PageLayout.js";
|
|
7
|
+
import { formatDateTime as o } from "../events/eventFormUtils.js";
|
|
8
|
+
import { useMemo as s, useState as c } from "react";
|
|
9
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
10
|
+
import { Building2 as d, CalendarClock as f, CalendarDays as p, ChevronRight as m, Handshake as h, PlayCircle as g, Ticket as _, UserPlus as v, Users as y } from "lucide-react";
|
|
11
|
+
import { useI18n as b } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
12
|
+
import { GlassCard as x, GradientText as S, IllustratedEmptyState as C, NextSteps as w, PagePurpose as T, Skeleton as E } from "@burdenoff/fe-libs/ui";
|
|
8
13
|
//#region src/eventfullymanaged/pages/dashboard/DashboardPage.tsx
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
var D = t`
|
|
15
|
+
query EventfullymanagedDashboardRegistrations($limit: Int) {
|
|
16
|
+
registrations: eventfullyManagedRegistrations(limit: $limit, offset: 0) {
|
|
17
|
+
total
|
|
18
|
+
items {
|
|
19
|
+
id
|
|
20
|
+
status
|
|
21
|
+
registeredAt
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
`, O = t`
|
|
26
|
+
query EventfullymanagedDashboardUpcomingSessions($limit: Int) {
|
|
27
|
+
eventSessions: eventfullyManagedEventSessions(limit: $limit, offset: 0) {
|
|
28
|
+
total
|
|
29
|
+
items {
|
|
30
|
+
id
|
|
31
|
+
eventId
|
|
32
|
+
title
|
|
33
|
+
sessionType
|
|
34
|
+
track
|
|
35
|
+
startsAt
|
|
36
|
+
endsAt
|
|
37
|
+
status
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
`, k = 1440 * 60 * 1e3, A = 30;
|
|
42
|
+
function j(e, t) {
|
|
43
|
+
let n = new Date(t), r = new Date(n.getFullYear(), n.getMonth(), n.getDate());
|
|
44
|
+
r.setTime(r.getTime() - (A - 1) * k);
|
|
45
|
+
let i = Array(A).fill(0), a = 0;
|
|
46
|
+
for (let t of e) {
|
|
47
|
+
let e = new Date(t.registeredAt);
|
|
48
|
+
if (Number.isNaN(e.getTime())) continue;
|
|
49
|
+
let n = Math.floor((e.getTime() - r.getTime()) / k);
|
|
50
|
+
n < 0 ? a += 1 : n < A && (i[n] += 1);
|
|
51
|
+
}
|
|
52
|
+
let o = a;
|
|
53
|
+
return i.map((e, t) => (o += e, {
|
|
54
|
+
label: new Date(r.getTime() + t * k).toLocaleDateString(void 0, {
|
|
55
|
+
month: "short",
|
|
56
|
+
day: "numeric"
|
|
57
|
+
}),
|
|
58
|
+
value: o
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
function M() {
|
|
62
|
+
let { t } = b(), k = (e, n) => {
|
|
63
|
+
let r = t(e);
|
|
64
|
+
return r === e ? n : r;
|
|
65
|
+
}, { navigate: A } = e(), { data: M, loading: N } = r(), { data: P, loading: F } = n(D, { variables: { limit: 500 } }), { data: I, loading: L } = n(O, { variables: { limit: 100 } }), R = M?.dashboardSummary, [z] = c(() => Date.now()), B = s(() => j(P?.registrations?.items ?? [], z), [P, z]), V = s(() => (I?.eventSessions?.items ?? []).filter((e) => {
|
|
66
|
+
let t = new Date(e.startsAt).getTime();
|
|
67
|
+
return !Number.isNaN(t) && t >= z;
|
|
68
|
+
}).sort((e, t) => new Date(e.startsAt).getTime() - new Date(t.startsAt).getTime()).slice(0, 4), [I, z]), H = [
|
|
14
69
|
{
|
|
15
|
-
label:
|
|
16
|
-
value:
|
|
17
|
-
|
|
18
|
-
|
|
70
|
+
label: k("eventfullymanaged.dashboard.cards.totalEvents", "Total Events"),
|
|
71
|
+
value: R?.totalEvents ?? 0,
|
|
72
|
+
sublabel: k("eventfullymanaged.dashboard.cards.totalEventsSub", "across your workspace"),
|
|
73
|
+
icon: p,
|
|
74
|
+
path: "/events",
|
|
75
|
+
featured: !0
|
|
19
76
|
},
|
|
20
77
|
{
|
|
21
|
-
label:
|
|
22
|
-
value:
|
|
23
|
-
|
|
24
|
-
|
|
78
|
+
label: k("eventfullymanaged.dashboard.cards.activeEvents", "Active Events"),
|
|
79
|
+
value: R?.activeEvents ?? 0,
|
|
80
|
+
sublabel: k("eventfullymanaged.dashboard.cards.activeEventsSub", "live or published now"),
|
|
81
|
+
icon: g,
|
|
82
|
+
path: "/events"
|
|
25
83
|
},
|
|
26
84
|
{
|
|
27
|
-
label:
|
|
28
|
-
value:
|
|
29
|
-
|
|
85
|
+
label: k("eventfullymanaged.dashboard.cards.registrations", "Registrations"),
|
|
86
|
+
value: R?.totalRegistrations ?? 0,
|
|
87
|
+
sublabel: k("eventfullymanaged.dashboard.cards.registrationsSub", "sign-ups received"),
|
|
88
|
+
icon: v,
|
|
30
89
|
path: "/registration"
|
|
31
90
|
},
|
|
32
91
|
{
|
|
33
|
-
label:
|
|
34
|
-
value:
|
|
35
|
-
|
|
36
|
-
|
|
92
|
+
label: k("eventfullymanaged.dashboard.cards.attendees", "Attendees"),
|
|
93
|
+
value: R?.totalAttendees ?? 0,
|
|
94
|
+
sublabel: k("eventfullymanaged.dashboard.cards.attendeesSub", "people in your audience"),
|
|
95
|
+
icon: y,
|
|
96
|
+
path: "/registration"
|
|
37
97
|
},
|
|
38
98
|
{
|
|
39
|
-
label:
|
|
40
|
-
value:
|
|
41
|
-
|
|
42
|
-
|
|
99
|
+
label: k("eventfullymanaged.dashboard.cards.venues", "Venues"),
|
|
100
|
+
value: R?.totalVenues ?? 0,
|
|
101
|
+
sublabel: k("eventfullymanaged.dashboard.cards.venuesSub", "spaces mapped"),
|
|
102
|
+
icon: d,
|
|
103
|
+
path: "/venues"
|
|
43
104
|
},
|
|
44
105
|
{
|
|
45
|
-
label:
|
|
46
|
-
value:
|
|
47
|
-
|
|
48
|
-
|
|
106
|
+
label: k("eventfullymanaged.dashboard.cards.sponsors", "Sponsors"),
|
|
107
|
+
value: R?.totalSponsors ?? 0,
|
|
108
|
+
sublabel: k("eventfullymanaged.dashboard.cards.sponsorsSub", "partners onboarded"),
|
|
109
|
+
icon: h,
|
|
110
|
+
path: "/sponsors"
|
|
49
111
|
}
|
|
50
112
|
];
|
|
51
|
-
return /* @__PURE__ */
|
|
113
|
+
return /* @__PURE__ */ u(a, {
|
|
52
114
|
hero: !0,
|
|
53
|
-
title: /* @__PURE__ */
|
|
115
|
+
title: /* @__PURE__ */ l(S, {
|
|
54
116
|
as: "span",
|
|
55
|
-
children:
|
|
117
|
+
children: k("eventfullymanaged.dashboard.title", "Dashboard")
|
|
56
118
|
}),
|
|
57
|
-
description:
|
|
119
|
+
description: N ? k("eventfullymanaged.dashboard.description.loading", "Loading real-time event operations summary…") : k("eventfullymanaged.dashboard.description.ready", "Your live event operations, at a glance."),
|
|
58
120
|
children: [
|
|
59
|
-
/* @__PURE__ */
|
|
121
|
+
/* @__PURE__ */ l(T, {
|
|
60
122
|
className: "mb-6",
|
|
61
|
-
children:
|
|
123
|
+
children: k("eventfullymanaged.dashboard.purpose", "Your event control center. Each tile below is a live count from a different part of your event operations. Open any tile to manage that area, watch registrations climb in the trend chart, and jump straight to the sessions coming up next.")
|
|
62
124
|
}),
|
|
63
|
-
/* @__PURE__ */
|
|
64
|
-
className: "grid grid-cols-
|
|
65
|
-
children:
|
|
66
|
-
let
|
|
67
|
-
return /* @__PURE__ */
|
|
68
|
-
treatment:
|
|
69
|
-
glow:
|
|
125
|
+
/* @__PURE__ */ l("div", {
|
|
126
|
+
className: "grid grid-cols-2 gap-4 sm:grid-cols-3 xl:grid-cols-6",
|
|
127
|
+
children: H.map((e) => {
|
|
128
|
+
let t = e.icon;
|
|
129
|
+
return /* @__PURE__ */ u(x, {
|
|
130
|
+
treatment: e.featured ? "glass" : "metric",
|
|
131
|
+
glow: e.featured,
|
|
70
132
|
role: "button",
|
|
71
133
|
tabIndex: 0,
|
|
72
134
|
"aria-label": `${e.label}: ${e.value.toLocaleString()}`,
|
|
73
|
-
onClick: () =>
|
|
135
|
+
onClick: () => A(e.path),
|
|
74
136
|
onKeyDown: (t) => {
|
|
75
|
-
(t.key === "Enter" || t.key === " ") && (t.preventDefault(),
|
|
137
|
+
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), A(e.path));
|
|
76
138
|
},
|
|
77
|
-
className: "cursor-pointer p-
|
|
78
|
-
children: [
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
className: "
|
|
139
|
+
className: "group cursor-pointer p-4 outline-none transition-[transform,box-shadow] duration-200 hover:shadow-elevation-1 focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]",
|
|
140
|
+
children: [
|
|
141
|
+
/* @__PURE__ */ l("span", {
|
|
142
|
+
className: "flex h-9 w-9 items-center justify-center rounded-button bg-accent-wash text-action-primary-bg",
|
|
143
|
+
children: /* @__PURE__ */ l(t, { className: "h-5 w-5" })
|
|
144
|
+
}),
|
|
145
|
+
/* @__PURE__ */ l("div", {
|
|
146
|
+
className: "mt-3 text-2xl font-semibold tabular-nums text-text-primary",
|
|
147
|
+
children: N ? /* @__PURE__ */ l(E, { className: "h-7 w-14" }) : e.value.toLocaleString()
|
|
148
|
+
}),
|
|
149
|
+
/* @__PURE__ */ l("div", {
|
|
150
|
+
className: "mt-1 text-sm font-medium text-text-primary",
|
|
82
151
|
children: e.label
|
|
83
|
-
}),
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
152
|
+
}),
|
|
153
|
+
/* @__PURE__ */ l("div", {
|
|
154
|
+
className: "mt-0.5 truncate text-xs text-text-muted",
|
|
155
|
+
children: e.sublabel
|
|
156
|
+
})
|
|
157
|
+
]
|
|
88
158
|
}, e.label);
|
|
89
159
|
})
|
|
90
160
|
}),
|
|
91
|
-
/* @__PURE__ */
|
|
161
|
+
/* @__PURE__ */ u("div", {
|
|
162
|
+
className: "mt-6 grid grid-cols-1 gap-4 lg:grid-cols-5",
|
|
163
|
+
children: [/* @__PURE__ */ u(x, {
|
|
164
|
+
treatment: "glass",
|
|
165
|
+
className: "p-5 lg:col-span-3",
|
|
166
|
+
children: [/* @__PURE__ */ u("div", {
|
|
167
|
+
className: "flex items-start justify-between gap-4",
|
|
168
|
+
children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("h2", {
|
|
169
|
+
className: "text-lg font-semibold text-text-primary",
|
|
170
|
+
children: k("eventfullymanaged.dashboard.trend.title", "Registrations over time")
|
|
171
|
+
}), /* @__PURE__ */ l("p", {
|
|
172
|
+
className: "mt-0.5 text-xs text-text-muted",
|
|
173
|
+
children: k("eventfullymanaged.dashboard.trend.subtitle", "Cumulative sign-ups, last 30 days")
|
|
174
|
+
})] }), /* @__PURE__ */ l("div", {
|
|
175
|
+
className: "text-2xl font-semibold tabular-nums text-text-primary",
|
|
176
|
+
children: (R?.totalRegistrations ?? 0).toLocaleString()
|
|
177
|
+
})]
|
|
178
|
+
}), /* @__PURE__ */ l("div", {
|
|
179
|
+
className: "mt-4",
|
|
180
|
+
children: F ? /* @__PURE__ */ l(E, { className: "h-[260px] w-full rounded-card" }) : B.some((e) => e.value > 0) ? /* @__PURE__ */ l(i, { data: B }) : /* @__PURE__ */ l(C, {
|
|
181
|
+
illustration: "empty-data",
|
|
182
|
+
title: k("eventfullymanaged.dashboard.trend.empty", "No registrations yet."),
|
|
183
|
+
description: k("eventfullymanaged.dashboard.trend.emptyHint", "Once attendees start signing up, their momentum shows here."),
|
|
184
|
+
className: "py-10"
|
|
185
|
+
})
|
|
186
|
+
})]
|
|
187
|
+
}), /* @__PURE__ */ u(x, {
|
|
188
|
+
treatment: "plain",
|
|
189
|
+
className: "border-border-seam p-5 lg:col-span-2",
|
|
190
|
+
children: [/* @__PURE__ */ l("h2", {
|
|
191
|
+
className: "text-lg font-semibold text-text-primary",
|
|
192
|
+
children: k("eventfullymanaged.dashboard.upcoming.title", "Upcoming sessions")
|
|
193
|
+
}), /* @__PURE__ */ l("div", {
|
|
194
|
+
className: "mt-3",
|
|
195
|
+
children: L ? /* @__PURE__ */ u("div", {
|
|
196
|
+
className: "space-y-3",
|
|
197
|
+
children: [
|
|
198
|
+
/* @__PURE__ */ l(E, { className: "h-14 w-full rounded-card" }),
|
|
199
|
+
/* @__PURE__ */ l(E, { className: "h-14 w-full rounded-card" }),
|
|
200
|
+
/* @__PURE__ */ l(E, { className: "h-14 w-full rounded-card" })
|
|
201
|
+
]
|
|
202
|
+
}) : V.length === 0 ? /* @__PURE__ */ l(C, {
|
|
203
|
+
illustration: "empty-data",
|
|
204
|
+
title: k("eventfullymanaged.dashboard.upcoming.empty", "Nothing scheduled yet."),
|
|
205
|
+
description: k("eventfullymanaged.dashboard.upcoming.emptyHint", "Sessions you schedule will surface here as they approach."),
|
|
206
|
+
className: "py-8"
|
|
207
|
+
}) : /* @__PURE__ */ l("ul", {
|
|
208
|
+
className: "divide-y divide-border-subtle",
|
|
209
|
+
children: V.map((e) => /* @__PURE__ */ l("li", { children: /* @__PURE__ */ u("button", {
|
|
210
|
+
type: "button",
|
|
211
|
+
onClick: () => A(`/events/${e.eventId}`),
|
|
212
|
+
className: "group flex w-full items-center gap-3 py-3 text-left outline-none focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]",
|
|
213
|
+
children: [
|
|
214
|
+
/* @__PURE__ */ l("span", {
|
|
215
|
+
className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-button bg-accent-wash text-action-primary-bg",
|
|
216
|
+
children: /* @__PURE__ */ l(f, { className: "h-4 w-4" })
|
|
217
|
+
}),
|
|
218
|
+
/* @__PURE__ */ u("span", {
|
|
219
|
+
className: "min-w-0 flex-1",
|
|
220
|
+
children: [/* @__PURE__ */ l("span", {
|
|
221
|
+
className: "block truncate text-sm font-medium text-text-primary",
|
|
222
|
+
children: e.title
|
|
223
|
+
}), /* @__PURE__ */ l("span", {
|
|
224
|
+
className: "mt-0.5 block truncate text-xs text-text-muted",
|
|
225
|
+
children: [o(e.startsAt), e.track].filter(Boolean).join(" • ")
|
|
226
|
+
})]
|
|
227
|
+
}),
|
|
228
|
+
/* @__PURE__ */ l(m, { className: "h-4 w-4 shrink-0 text-text-muted transition-transform group-hover:translate-x-0.5" })
|
|
229
|
+
]
|
|
230
|
+
}) }, e.id))
|
|
231
|
+
})
|
|
232
|
+
})]
|
|
233
|
+
})]
|
|
234
|
+
}),
|
|
235
|
+
/* @__PURE__ */ l(w, {
|
|
92
236
|
className: "mt-6",
|
|
93
237
|
storageKey: "eventfullymanaged-dashboard",
|
|
94
|
-
title:
|
|
238
|
+
title: k("eventfullymanaged.dashboard.nextSteps.title", "Get your first event running"),
|
|
95
239
|
steps: [
|
|
96
240
|
{
|
|
97
241
|
id: "create-event",
|
|
98
|
-
label:
|
|
99
|
-
description:
|
|
100
|
-
icon: /* @__PURE__ */
|
|
101
|
-
onClick: () =>
|
|
242
|
+
label: k("eventfullymanaged.dashboard.nextSteps.createEvent", "Create an event"),
|
|
243
|
+
description: k("eventfullymanaged.dashboard.nextSteps.createEventDesc", "Start with the basics — name, dates and capacity."),
|
|
244
|
+
icon: /* @__PURE__ */ l(p, { className: "h-4 w-4" }),
|
|
245
|
+
onClick: () => A("/events/create")
|
|
102
246
|
},
|
|
103
247
|
{
|
|
104
248
|
id: "add-venue",
|
|
105
|
-
label:
|
|
106
|
-
description:
|
|
107
|
-
icon: /* @__PURE__ */
|
|
108
|
-
onClick: () =>
|
|
249
|
+
label: k("eventfullymanaged.dashboard.nextSteps.addVenue", "Add a venue"),
|
|
250
|
+
description: k("eventfullymanaged.dashboard.nextSteps.addVenueDesc", "Map your event to a space with capacity and floor plans."),
|
|
251
|
+
icon: /* @__PURE__ */ l(d, { className: "h-4 w-4" }),
|
|
252
|
+
onClick: () => A("/venues/create")
|
|
109
253
|
},
|
|
110
254
|
{
|
|
111
255
|
id: "open-registration",
|
|
112
|
-
label:
|
|
113
|
-
description:
|
|
114
|
-
icon: /* @__PURE__ */
|
|
115
|
-
onClick: () =>
|
|
256
|
+
label: k("eventfullymanaged.dashboard.nextSteps.openRegistration", "Open registration"),
|
|
257
|
+
description: k("eventfullymanaged.dashboard.nextSteps.openRegistrationDesc", "Set up ticket types and track attendee sign-ups."),
|
|
258
|
+
icon: /* @__PURE__ */ l(_, { className: "h-4 w-4" }),
|
|
259
|
+
onClick: () => A("/registration")
|
|
116
260
|
},
|
|
117
261
|
{
|
|
118
262
|
id: "invite-sponsors",
|
|
119
|
-
label:
|
|
120
|
-
description:
|
|
121
|
-
icon: /* @__PURE__ */
|
|
122
|
-
onClick: () =>
|
|
263
|
+
label: k("eventfullymanaged.dashboard.nextSteps.inviteSponsors", "Onboard sponsors"),
|
|
264
|
+
description: k("eventfullymanaged.dashboard.nextSteps.inviteSponsorsDesc", "Add sponsors and start tracking value and leads."),
|
|
265
|
+
icon: /* @__PURE__ */ l(h, { className: "h-4 w-4" }),
|
|
266
|
+
onClick: () => A("/sponsors")
|
|
123
267
|
}
|
|
124
268
|
]
|
|
125
269
|
})
|
|
@@ -127,6 +271,6 @@ function g() {
|
|
|
127
271
|
});
|
|
128
272
|
}
|
|
129
273
|
//#endregion
|
|
130
|
-
export {
|
|
274
|
+
export { M as default };
|
|
131
275
|
|
|
132
276
|
//# sourceMappingURL=DashboardPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/dashboard/DashboardPage.tsx"],"sourcesContent":["import { BarChart3, Building2, CalendarDays, Megaphone, Ticket, Users } from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { GlassCard, GradientText, NextSteps, PagePurpose } from '@burdenoff/fe-libs/ui';\n\nimport { useDashboardSummaryQuery } from '../../api/eventApi';\nimport { PageLayout } from '../../components/PageLayout';\nimport { useEventfullyManaged } from '../../context/EventfullyManagedContext';\n\ntype StatCard = {\n label: string;\n value: number;\n icon: React.ComponentType<{ className?: string }>;\n path: string;\n};\n\nexport default function DashboardPage() {\n const { t: translate } = useI18n();\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n const { navigate } = useEventfullyManaged();\n const { data, loading } = useDashboardSummaryQuery();\n\n const summary = data?.dashboardSummary;\n const cards: StatCard[] = [\n {\n label: t('eventfullymanaged.dashboard.cards.activeEvents', 'Active Events'),\n value: summary?.activeEvents ?? 0,\n icon: CalendarDays,\n path: '/events',\n },\n {\n label: t('eventfullymanaged.dashboard.cards.venues', 'Venues'),\n value: summary?.totalVenues ?? 0,\n icon: Building2,\n path: '/venues',\n },\n {\n label: t('eventfullymanaged.dashboard.cards.registrations', 'Registrations'),\n value: summary?.totalRegistrations ?? 0,\n icon: Ticket,\n path: '/registration',\n },\n {\n label: t('eventfullymanaged.dashboard.cards.campaigns', 'Campaigns'),\n value: summary?.totalSponsors ?? 0,\n icon: Megaphone,\n path: '/communication',\n },\n {\n label: t('eventfullymanaged.dashboard.cards.analyticsReports', 'Analytics Reports'),\n value: summary?.totalEvents ?? 0,\n icon: BarChart3,\n path: '/analytics',\n },\n {\n label: t('eventfullymanaged.dashboard.cards.networkMatches', 'Network Matches'),\n value: summary?.upcomingSessions ?? 0,\n icon: Users,\n path: '/networking',\n },\n ];\n\n return (\n <PageLayout\n hero\n title={<GradientText as=\"span\">{t('eventfullymanaged.dashboard.title', 'EventfullyManaged')}</GradientText>}\n description={\n loading\n ? t('eventfullymanaged.dashboard.description.loading', 'Loading real-time event operations summary...')\n : t('eventfullymanaged.dashboard.description.ready', 'Unified event operations dashboard.')\n }\n >\n <PagePurpose className=\"mb-6\">\n {t(\n 'eventfullymanaged.dashboard.purpose',\n 'Your event control center. Each tile below is a live count from a different part of your event operations — events, venues, registrations, campaigns, analytics and networking. Open any tile to manage that area, or follow the suggested next steps to set up a new event end to end.'\n )}\n </PagePurpose>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3\">\n {cards.map((card, index) => {\n const Icon = card.icon;\n const featured = index === 0;\n return (\n <GlassCard\n key={card.label}\n treatment={featured ? 'glass' : 'metric'}\n glow={featured}\n role=\"button\"\n tabIndex={0}\n aria-label={`${card.label}: ${card.value.toLocaleString()}`}\n onClick={() => navigate(card.path)}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n navigate(card.path);\n }\n }}\n className=\"cursor-pointer p-5 outline-none focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]\"\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-text-secondary\">{card.label}</span>\n <Icon className=\"h-5 w-5 text-action-primary-bg\" />\n </div>\n <div className=\"mt-3 text-3xl font-semibold tabular-nums text-text-primary\">\n {card.value.toLocaleString()}\n </div>\n </GlassCard>\n );\n })}\n </div>\n\n <NextSteps\n className=\"mt-6\"\n storageKey=\"eventfullymanaged-dashboard\"\n title={t('eventfullymanaged.dashboard.nextSteps.title', 'Get your first event running')}\n steps={[\n {\n id: 'create-event',\n label: t('eventfullymanaged.dashboard.nextSteps.createEvent', 'Create an event'),\n description: t(\n 'eventfullymanaged.dashboard.nextSteps.createEventDesc',\n 'Start with the basics — name, dates and capacity.'\n ),\n icon: <CalendarDays className=\"h-4 w-4\" />,\n onClick: () => navigate('/events'),\n },\n {\n id: 'add-venue',\n label: t('eventfullymanaged.dashboard.nextSteps.addVenue', 'Add a venue'),\n description: t(\n 'eventfullymanaged.dashboard.nextSteps.addVenueDesc',\n 'Map your event to a space with capacity and floor plans.'\n ),\n icon: <Building2 className=\"h-4 w-4\" />,\n onClick: () => navigate('/venues/create'),\n },\n {\n id: 'open-registration',\n label: t('eventfullymanaged.dashboard.nextSteps.openRegistration', 'Open registration'),\n description: t(\n 'eventfullymanaged.dashboard.nextSteps.openRegistrationDesc',\n 'Set up ticket types and track attendee sign-ups.'\n ),\n icon: <Ticket className=\"h-4 w-4\" />,\n onClick: () => navigate('/registration'),\n },\n {\n id: 'invite-sponsors',\n label: t('eventfullymanaged.dashboard.nextSteps.inviteSponsors', 'Onboard sponsors'),\n description: t(\n 'eventfullymanaged.dashboard.nextSteps.inviteSponsorsDesc',\n 'Add sponsors and start tracking value and leads.'\n ),\n icon: <Megaphone className=\"h-4 w-4\" />,\n onClick: () => navigate('/communication'),\n },\n ]}\n />\n </PageLayout>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DashboardPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/dashboard/DashboardPage.tsx"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\nimport {\n Building2,\n CalendarClock,\n CalendarDays,\n ChevronRight,\n Handshake,\n PlayCircle,\n Ticket,\n UserPlus,\n Users,\n} from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { GlassCard, GradientText, IllustratedEmptyState, NextSteps, PagePurpose, Skeleton } from '@burdenoff/fe-libs/ui';\nimport { useMemo, useState } from 'react';\n\nimport { useDashboardSummaryQuery } from '../../api/eventApi';\nimport { EventAreaChart, type AreaPoint } from '../../components/EventCharts';\nimport { PageLayout } from '../../components/PageLayout';\nimport { useEventfullyManaged } from '../../context/EventfullyManagedContext';\nimport { formatDateTime } from '../events/eventFormUtils';\n\n// ---------------------------------------------------------------------------\n// Real supporting data for the trend chart + upcoming-sessions panel. Both are\n// dedicated operations (distinct names) so they can select the exact fields the\n// dashboard needs without touching the shared list hooks.\n// ---------------------------------------------------------------------------\n\nconst DASHBOARD_REGISTRATIONS_QUERY = gql`\n query EventfullymanagedDashboardRegistrations($limit: Int) {\n registrations: eventfullyManagedRegistrations(limit: $limit, offset: 0) {\n total\n items {\n id\n status\n registeredAt\n }\n }\n }\n`;\n\nconst DASHBOARD_UPCOMING_SESSIONS_QUERY = gql`\n query EventfullymanagedDashboardUpcomingSessions($limit: Int) {\n eventSessions: eventfullyManagedEventSessions(limit: $limit, offset: 0) {\n total\n items {\n id\n eventId\n title\n sessionType\n track\n startsAt\n endsAt\n status\n }\n }\n }\n`;\n\ntype DashboardRegistration = { id: string; status: string; registeredAt: string };\ntype DashboardRegistrationsResponse = { registrations: { total: number; items: DashboardRegistration[] } };\n\ntype DashboardSession = {\n id: string;\n eventId: string;\n title: string;\n sessionType: string;\n track?: string | null;\n startsAt: string;\n endsAt: string;\n status: string;\n};\ntype DashboardSessionsResponse = { eventSessions: { total: number; items: DashboardSession[] } };\n\nconst DAY_MS = 24 * 60 * 60 * 1000;\nconst TREND_DAYS = 30;\n\n/** Build a cumulative registrations-over-time series from real `registeredAt` timestamps. */\nfunction buildTrendSeries(registrations: DashboardRegistration[], nowMs: number): AreaPoint[] {\n const now = new Date(nowMs);\n const start = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n start.setTime(start.getTime() - (TREND_DAYS - 1) * DAY_MS);\n\n const perDay = new Array<number>(TREND_DAYS).fill(0);\n let baseline = 0; // registrations older than the window still count toward the cumulative total.\n\n for (const registration of registrations) {\n const when = new Date(registration.registeredAt);\n if (Number.isNaN(when.getTime())) {\n continue;\n }\n const dayIndex = Math.floor((when.getTime() - start.getTime()) / DAY_MS);\n if (dayIndex < 0) {\n baseline += 1;\n } else if (dayIndex < TREND_DAYS) {\n perDay[dayIndex] += 1;\n }\n }\n\n let running = baseline;\n return perDay.map((count, index) => {\n running += count;\n const day = new Date(start.getTime() + index * DAY_MS);\n return {\n label: day.toLocaleDateString(undefined, { month: 'short', day: 'numeric' }),\n value: running,\n };\n });\n}\n\ntype StatCard = {\n label: string;\n value: number;\n sublabel: string;\n icon: React.ComponentType<{ className?: string }>;\n path: string;\n featured?: boolean;\n};\n\nexport default function DashboardPage() {\n const { t: translate } = useI18n();\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n const { navigate } = useEventfullyManaged();\n const { data, loading } = useDashboardSummaryQuery();\n const { data: registrationsData, loading: registrationsLoading } = useQuery<\n DashboardRegistrationsResponse,\n { limit: number }\n >(DASHBOARD_REGISTRATIONS_QUERY, { variables: { limit: 500 } });\n const { data: sessionsData, loading: sessionsLoading } = useQuery<DashboardSessionsResponse, { limit: number }>(\n DASHBOARD_UPCOMING_SESSIONS_QUERY,\n { variables: { limit: 100 } }\n );\n\n const summary = data?.dashboardSummary;\n // Capture \"now\" once (state initialisers may run impure code) so the memoised\n // trend + upcoming filters stay pure across re-renders.\n const [nowMs] = useState(() => Date.now());\n\n const trend = useMemo(\n () => buildTrendSeries(registrationsData?.registrations?.items ?? [], nowMs),\n [registrationsData, nowMs]\n );\n\n const upcomingSessions = useMemo(() => {\n return (sessionsData?.eventSessions?.items ?? [])\n .filter((session) => {\n const startMs = new Date(session.startsAt).getTime();\n return !Number.isNaN(startMs) && startMs >= nowMs;\n })\n .sort((a, b) => new Date(a.startsAt).getTime() - new Date(b.startsAt).getTime())\n .slice(0, 4);\n }, [sessionsData, nowMs]);\n\n const cards: StatCard[] = [\n {\n label: t('eventfullymanaged.dashboard.cards.totalEvents', 'Total Events'),\n value: summary?.totalEvents ?? 0,\n sublabel: t('eventfullymanaged.dashboard.cards.totalEventsSub', 'across your workspace'),\n icon: CalendarDays,\n path: '/events',\n featured: true,\n },\n {\n label: t('eventfullymanaged.dashboard.cards.activeEvents', 'Active Events'),\n value: summary?.activeEvents ?? 0,\n sublabel: t('eventfullymanaged.dashboard.cards.activeEventsSub', 'live or published now'),\n icon: PlayCircle,\n path: '/events',\n },\n {\n label: t('eventfullymanaged.dashboard.cards.registrations', 'Registrations'),\n value: summary?.totalRegistrations ?? 0,\n sublabel: t('eventfullymanaged.dashboard.cards.registrationsSub', 'sign-ups received'),\n icon: UserPlus,\n path: '/registration',\n },\n {\n label: t('eventfullymanaged.dashboard.cards.attendees', 'Attendees'),\n value: summary?.totalAttendees ?? 0,\n sublabel: t('eventfullymanaged.dashboard.cards.attendeesSub', 'people in your audience'),\n icon: Users,\n path: '/registration',\n },\n {\n label: t('eventfullymanaged.dashboard.cards.venues', 'Venues'),\n value: summary?.totalVenues ?? 0,\n sublabel: t('eventfullymanaged.dashboard.cards.venuesSub', 'spaces mapped'),\n icon: Building2,\n path: '/venues',\n },\n {\n label: t('eventfullymanaged.dashboard.cards.sponsors', 'Sponsors'),\n value: summary?.totalSponsors ?? 0,\n sublabel: t('eventfullymanaged.dashboard.cards.sponsorsSub', 'partners onboarded'),\n icon: Handshake,\n path: '/sponsors',\n },\n ];\n\n return (\n <PageLayout\n hero\n title={<GradientText as=\"span\">{t('eventfullymanaged.dashboard.title', 'Dashboard')}</GradientText>}\n description={\n loading\n ? t('eventfullymanaged.dashboard.description.loading', 'Loading real-time event operations summary…')\n : t('eventfullymanaged.dashboard.description.ready', 'Your live event operations, at a glance.')\n }\n >\n <PagePurpose className=\"mb-6\">\n {t(\n 'eventfullymanaged.dashboard.purpose',\n 'Your event control center. Each tile below is a live count from a different part of your event operations. Open any tile to manage that area, watch registrations climb in the trend chart, and jump straight to the sessions coming up next.'\n )}\n </PagePurpose>\n\n <div className=\"grid grid-cols-2 gap-4 sm:grid-cols-3 xl:grid-cols-6\">\n {cards.map((card) => {\n const Icon = card.icon;\n return (\n <GlassCard\n key={card.label}\n treatment={card.featured ? 'glass' : 'metric'}\n glow={card.featured}\n role=\"button\"\n tabIndex={0}\n aria-label={`${card.label}: ${card.value.toLocaleString()}`}\n onClick={() => navigate(card.path)}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n navigate(card.path);\n }\n }}\n className=\"group cursor-pointer p-4 outline-none transition-[transform,box-shadow] duration-200 hover:shadow-elevation-1 focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]\"\n >\n <span className=\"flex h-9 w-9 items-center justify-center rounded-button bg-accent-wash text-action-primary-bg\">\n <Icon className=\"h-5 w-5\" />\n </span>\n <div className=\"mt-3 text-2xl font-semibold tabular-nums text-text-primary\">\n {loading ? <Skeleton className=\"h-7 w-14\" /> : card.value.toLocaleString()}\n </div>\n <div className=\"mt-1 text-sm font-medium text-text-primary\">{card.label}</div>\n <div className=\"mt-0.5 truncate text-xs text-text-muted\">{card.sublabel}</div>\n </GlassCard>\n );\n })}\n </div>\n\n <div className=\"mt-6 grid grid-cols-1 gap-4 lg:grid-cols-5\">\n <GlassCard treatment=\"glass\" className=\"p-5 lg:col-span-3\">\n <div className=\"flex items-start justify-between gap-4\">\n <div>\n <h2 className=\"text-lg font-semibold text-text-primary\">\n {t('eventfullymanaged.dashboard.trend.title', 'Registrations over time')}\n </h2>\n <p className=\"mt-0.5 text-xs text-text-muted\">\n {t('eventfullymanaged.dashboard.trend.subtitle', 'Cumulative sign-ups, last 30 days')}\n </p>\n </div>\n <div className=\"text-2xl font-semibold tabular-nums text-text-primary\">\n {(summary?.totalRegistrations ?? 0).toLocaleString()}\n </div>\n </div>\n <div className=\"mt-4\">\n {registrationsLoading ? (\n <Skeleton className=\"h-[260px] w-full rounded-card\" />\n ) : trend.some((point) => point.value > 0) ? (\n <EventAreaChart data={trend} />\n ) : (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title={t('eventfullymanaged.dashboard.trend.empty', 'No registrations yet.')}\n description={t(\n 'eventfullymanaged.dashboard.trend.emptyHint',\n 'Once attendees start signing up, their momentum shows here.'\n )}\n className=\"py-10\"\n />\n )}\n </div>\n </GlassCard>\n\n <GlassCard treatment=\"plain\" className=\"border-border-seam p-5 lg:col-span-2\">\n <h2 className=\"text-lg font-semibold text-text-primary\">\n {t('eventfullymanaged.dashboard.upcoming.title', 'Upcoming sessions')}\n </h2>\n <div className=\"mt-3\">\n {sessionsLoading ? (\n <div className=\"space-y-3\">\n <Skeleton className=\"h-14 w-full rounded-card\" />\n <Skeleton className=\"h-14 w-full rounded-card\" />\n <Skeleton className=\"h-14 w-full rounded-card\" />\n </div>\n ) : upcomingSessions.length === 0 ? (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title={t('eventfullymanaged.dashboard.upcoming.empty', 'Nothing scheduled yet.')}\n description={t(\n 'eventfullymanaged.dashboard.upcoming.emptyHint',\n 'Sessions you schedule will surface here as they approach.'\n )}\n className=\"py-8\"\n />\n ) : (\n <ul className=\"divide-y divide-border-subtle\">\n {upcomingSessions.map((session) => (\n <li key={session.id}>\n <button\n type=\"button\"\n onClick={() => navigate(`/events/${session.eventId}`)}\n className=\"group flex w-full items-center gap-3 py-3 text-left outline-none focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]\"\n >\n <span className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-button bg-accent-wash text-action-primary-bg\">\n <CalendarClock className=\"h-4 w-4\" />\n </span>\n <span className=\"min-w-0 flex-1\">\n <span className=\"block truncate text-sm font-medium text-text-primary\">{session.title}</span>\n <span className=\"mt-0.5 block truncate text-xs text-text-muted\">\n {[formatDateTime(session.startsAt), session.track].filter(Boolean).join(' • ')}\n </span>\n </span>\n <ChevronRight className=\"h-4 w-4 shrink-0 text-text-muted transition-transform group-hover:translate-x-0.5\" />\n </button>\n </li>\n ))}\n </ul>\n )}\n </div>\n </GlassCard>\n </div>\n\n <NextSteps\n className=\"mt-6\"\n storageKey=\"eventfullymanaged-dashboard\"\n title={t('eventfullymanaged.dashboard.nextSteps.title', 'Get your first event running')}\n steps={[\n {\n id: 'create-event',\n label: t('eventfullymanaged.dashboard.nextSteps.createEvent', 'Create an event'),\n description: t(\n 'eventfullymanaged.dashboard.nextSteps.createEventDesc',\n 'Start with the basics — name, dates and capacity.'\n ),\n icon: <CalendarDays className=\"h-4 w-4\" />,\n onClick: () => navigate('/events/create'),\n },\n {\n id: 'add-venue',\n label: t('eventfullymanaged.dashboard.nextSteps.addVenue', 'Add a venue'),\n description: t(\n 'eventfullymanaged.dashboard.nextSteps.addVenueDesc',\n 'Map your event to a space with capacity and floor plans.'\n ),\n icon: <Building2 className=\"h-4 w-4\" />,\n onClick: () => navigate('/venues/create'),\n },\n {\n id: 'open-registration',\n label: t('eventfullymanaged.dashboard.nextSteps.openRegistration', 'Open registration'),\n description: t(\n 'eventfullymanaged.dashboard.nextSteps.openRegistrationDesc',\n 'Set up ticket types and track attendee sign-ups.'\n ),\n icon: <Ticket className=\"h-4 w-4\" />,\n onClick: () => navigate('/registration'),\n },\n {\n id: 'invite-sponsors',\n label: t('eventfullymanaged.dashboard.nextSteps.inviteSponsors', 'Onboard sponsors'),\n description: t(\n 'eventfullymanaged.dashboard.nextSteps.inviteSponsorsDesc',\n 'Add sponsors and start tracking value and leads.'\n ),\n icon: <Handshake className=\"h-4 w-4\" />,\n onClick: () => navigate('/sponsors'),\n },\n ]}\n />\n </PageLayout>\n );\n}\n"],"mappings":"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"}
|