guestbell-forms 3.0.47 → 3.0.48
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/build/components/bookingCalendar/BookingCalendar.js +9 -2
- package/build/components/bookingCalendar/BookingCalendar.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.d.ts +1 -0
- package/build/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.js +3 -1
- package/build/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.js +7 -3
- package/build/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.d.ts +1 -0
- package/build/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.js +3 -1
- package/build/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.js.map +1 -1
- package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.d.ts +1 -0
- package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.js +2 -1
- package/build/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.js.map +1 -1
- package/build/components/bookingCalendar/utils.js +5 -2
- package/build/components/bookingCalendar/utils.js.map +1 -1
- package/build/dist/guestbell-forms.css +2 -5
- package/build/dist/guestbell-forms.css.map +1 -1
- package/build/dist/guestbell-forms.min.css +1 -1
- package/build/dist/report.html +2 -2
- package/build/scss/components/bookingCalendar/bookingCalendar.scss +0 -3
- package/package.json +1 -1
- package/src/lib/components/bookingCalendar/BookingCalendar.tsx +6 -1
- package/src/lib/components/bookingCalendar/bookingCalendarGrid/BookingCalendarGrid.tsx +4 -1
- package/src/lib/components/bookingCalendar/bookingCalendarLanesHeader/BookingCalendarLanesHeaderRenderItem.tsx +12 -2
- package/src/lib/components/bookingCalendar/bookingCalendarNowSection/BookingCalendarNowSection.tsx +4 -1
- package/src/lib/components/bookingCalendar/bookingCalendarSelection/BookingCalendarSelection.tsx +2 -0
- package/src/lib/components/bookingCalendar/utils.ts +5 -2
- package/src/lib/scss/components/bookingCalendar/bookingCalendar.scss +0 -3
- package/src/stories/OverlappingSchedule.tsx +4 -4
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","names":["_moment","_interopRequireDefault","require","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","groupBy","items","iterator","reduce","item","hasOwnProperty","splitBookingsToLanes","bookings","from","till","minLanesCount","lanesSource","unmatchedToFront","lanes","map","bookingsWithoutLaneKey","a","laneKey","bookingsWithLaneKey","grouped","booking","originalIndex","find","missingLanes","some","l","concat","remainingBookings","sort","b","valueOf","min","bookingIndex","laneIndex","lane","index","_lane$items","lastTill","distances","dist","diff","Math","abs","_min","indexOf","splice","data","shift","laneItems","normal","atEnd","Array","fill","_","findIndex","arr","unmatchedVal","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","sortArrayByLaneKeys","referenceArray","arrayToSort","indexA","indexB","itemsOverlap","isBefore","isAfter","getItemPositionStyle","marginStart","width","marginLeft","exports","calculateItemsDimensions","lastEnd","widthMs","startMs","endMs","startIsCut","realStart","realFrom","moment","start","endIsCut","realEnd","end","realTill","generateControlItems","step","startOfStep","steps","max","ceil","asMilliseconds","subtract","clone","add","id","generateGridItems","containerWidthPx","availableSteps","goalGridWidthPx","bestStep","stepMs","fromMs","tillMs","timeLengthMs","approximateStepsCount","approximateStepMs","availableStepsDistancesMs","smallestDistance","bestStepIndex","utcOffset","date","stepProportion","numberOfRoots","current","currentTop","tolerance","pow","left","opacity"],"sources":["../../../src/lib/components/bookingCalendar/utils.ts"],"sourcesContent":["import moment, { Moment, Duration } from 'moment';\r\nimport { BookingCalendarItemProps } from './bookingCalendarItem';\r\nimport { BookingCalendarLaneProps } from './bookingCalendarLane';\r\nimport { BookingCalendarLaneHeaderProps } from './bookingCalendarLaneHeader';\r\nimport { BookingCalendarRenderItemProps } from './bookingCalendarRenderItem';\r\nimport {\r\n BookingCalendarItemT,\r\n BookingCalendarItemWithOriginalIndexT,\r\n} from './common';\r\n\r\nexport function groupBy<T>(\r\n items: T[],\r\n iterator: (item: T) => number | string\r\n): { [key: string | number]: T[] } {\r\n return items.reduce((obj, item) => {\r\n const key = iterator(item);\r\n if (!obj.hasOwnProperty(key)) {\r\n obj[key] = [];\r\n }\r\n obj[key].push(item);\r\n return obj;\r\n }, {});\r\n}\r\n\r\nexport interface LaneSourceData<T extends BookingCalendarItemT, TLaneData> {\r\n laneKey: number;\r\n data?: TLaneData;\r\n rowClassName?: string;\r\n BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;\r\n BookingCalendarRenderItem?: React.ComponentType<\r\n BookingCalendarRenderItemProps<T>\r\n >;\r\n BookingCalendarLaneHeader?: React.ComponentType<\r\n BookingCalendarLaneHeaderProps<TLaneData>\r\n >;\r\n BookingCalendarLane?: React.ComponentType<BookingCalendarLaneProps<T>>;\r\n}\r\n\r\nexport interface LaneData<T extends BookingCalendarItemT, TLaneData>\r\n extends LaneSourceData<T, TLaneData> {\r\n items: T[];\r\n}\r\n\r\nexport function splitBookingsToLanes<T extends BookingCalendarItemT, TLaneData>(\r\n bookings: T[],\r\n from: Moment,\r\n till: Moment,\r\n minLanesCount: number,\r\n lanesSource: LaneSourceData<T, TLaneData>[] = [],\r\n unmatchedToFront = true\r\n) {\r\n if (!bookings) {\r\n return [];\r\n }\r\n let lanes: LaneData<T, TLaneData>[] = [];\r\n if (lanesSource?.length) {\r\n lanes = lanesSource.map((source) => ({\r\n ...source,\r\n items: [],\r\n }));\r\n }\r\n const bookingsWithoutLaneKey = bookings.filter(\r\n (a) => a.laneKey === undefined\r\n );\r\n const bookingsWithLaneKey = bookings.filter((a) => a.laneKey !== undefined);\r\n if (bookingsWithLaneKey.length) {\r\n const grouped = groupBy(\r\n bookingsWithLaneKey.map((booking, originalIndex) => ({\r\n ...booking,\r\n originalIndex,\r\n })),\r\n (a) => a.laneKey\r\n );\r\n lanes = Object.keys(grouped).map((key) => ({\r\n laneKey: Number(key),\r\n items: grouped[key],\r\n ...lanesSource?.find((a) => a.laneKey === Number(key)),\r\n }));\r\n const missingLanes = lanesSource?.filter(\r\n (a) => !lanes.some((l) => l.laneKey === a.laneKey)\r\n );\r\n lanes = lanes.concat(missingLanes.map((a) => ({ ...a, items: [] })));\r\n }\r\n if (bookingsWithoutLaneKey.length) {\r\n let remainingBookings: (T & BookingCalendarItemWithOriginalIndexT)[] =\r\n bookingsWithoutLaneKey\r\n .map((booking, originalIndex) => ({ ...booking, originalIndex }))\r\n .sort((a, b) => a.from.valueOf() - b.from.valueOf());\r\n while (remainingBookings.length > 0) {\r\n let min = 99999999999999;\r\n let bookingIndex = -1;\r\n let laneIndex = -1;\r\n lanes.forEach((lane, index) => {\r\n if (lanesSource?.some((l) => l.laneKey === lane.laneKey)) {\r\n return;\r\n }\r\n const lastTill = lane.items[lane.items.length - 1]?.till ?? from;\r\n const distances = remainingBookings.map((booking) => {\r\n const dist = booking.from.diff(lastTill);\r\n if (lane.items.length === 0) {\r\n return Math.abs(dist);\r\n }\r\n return dist;\r\n });\r\n const _min = Math.min(...distances.filter((a) => a >= 0));\r\n if (_min < min) {\r\n bookingIndex = distances.indexOf(_min);\r\n laneIndex = index;\r\n }\r\n });\r\n if (bookingIndex >= 0 && laneIndex >= 0) {\r\n lanes[laneIndex].items = lanes[laneIndex].items.concat({\r\n ...remainingBookings[bookingIndex],\r\n });\r\n remainingBookings.splice(bookingIndex, 1);\r\n } else {\r\n lanes = lanes.concat({\r\n items: [{ ...remainingBookings[0] }],\r\n laneKey: lanes.length,\r\n data: undefined,\r\n });\r\n remainingBookings.shift();\r\n }\r\n }\r\n // Naive solution that is much less computationally intensive but yields more lanes than necessary\r\n /*bookings.forEach((booking, originalIndex) => {\r\n let found = false;\r\n lanes.forEach((lane, index) => {\r\n if (!lane.some(i => itemsOverlap(booking, i))) {\r\n lanes[index] = lanes[index].concat({ ...booking, originalIndex });\r\n found = true;\r\n }\r\n });\r\n if (!found) {\r\n lanes = lanes.concat([[{ ...booking, originalIndex }]]);\r\n }\r\n });*/\r\n }\r\n for (let index = 0; index < lanes.length; index++) {\r\n const laneItems = lanes[index].items;\r\n const normal = laneItems.filter((a) => a.till.valueOf() < till.valueOf());\r\n normal.sort((a, b) => a.from.valueOf() - b.from.valueOf());\r\n const atEnd = laneItems.filter((a) => a.till.valueOf() >= till.valueOf());\r\n atEnd.sort((a, b) => a.from.valueOf() - b.from.valueOf());\r\n lanes[index].items = [...normal, ...atEnd];\r\n }\r\n if (lanes.length < minLanesCount) {\r\n lanes = lanes.concat(\r\n new Array<LaneData<T, TLaneData>>(minLanesCount - lanes.length)\r\n .fill(null)\r\n .map((_, index) => ({\r\n items: [],\r\n laneKey: index + lanes.length,\r\n data: null,\r\n }))\r\n );\r\n }\r\n const findIndex = (\r\n arr: (LaneData<T, TLaneData> | LaneSourceData<T, TLaneData>)[],\r\n laneKey: string | undefined | number\r\n ): number => {\r\n const unmatchedVal = unmatchedToFront\r\n ? Number.MIN_SAFE_INTEGER\r\n : Number.MAX_SAFE_INTEGER;\r\n if (laneKey === undefined || laneKey === null) {\r\n return unmatchedVal;\r\n }\r\n const index = arr.findIndex((item) => item.laneKey === laneKey);\r\n return index === -1 ? unmatchedVal : index;\r\n };\r\n\r\n const sortArrayByLaneKeys = (\r\n referenceArray: LaneSourceData<T, TLaneData>[],\r\n arrayToSort: LaneData<T, TLaneData>[]\r\n ): LaneData<T, TLaneData>[] => {\r\n return [...arrayToSort].sort((a, b) => {\r\n const indexA = findIndex(referenceArray, a.laneKey);\r\n const indexB = findIndex(referenceArray, b.laneKey);\r\n return indexA - indexB;\r\n });\r\n };\r\n lanes = sortArrayByLaneKeys(lanesSource, lanes);\r\n return lanes;\r\n}\r\n\r\ntype Picked = Pick<BookingCalendarItemT, 'from' | 'till'>;\r\nexport function itemsOverlap(a: Picked, b: Picked) {\r\n if (!a?.from || !a?.till || !b?.from || !b?.till) {\r\n return false;\r\n }\r\n if (b.till.isBefore(a.from)) {\r\n return false;\r\n }\r\n if (b.from.isAfter(a.till)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport const getItemPositionStyle = (marginStart: number, width: number) =>\r\n ({\r\n marginLeft: `${marginStart * 100}%`,\r\n width: `${width * 100}%`,\r\n } as React.CSSProperties);\r\n\r\nexport function calculateItemsDimensions<T extends BookingCalendarItemT>(\r\n items: T[],\r\n from: Moment,\r\n till: Moment\r\n) {\r\n let lastEnd = 0;\r\n const widthMs = till.valueOf() - from.valueOf();\r\n const startMs = from.valueOf();\r\n const endMs = till.valueOf();\r\n return widthMs > 0\r\n ? items?.map((item) => {\r\n const startIsCut = item.from.valueOf() < startMs;\r\n const realStart = (item.from.valueOf() - startMs) / widthMs;\r\n const realFrom = startIsCut ? moment(startMs) : moment(item.from);\r\n const start = startIsCut ? 0 : realStart;\r\n const endIsCut = item.till.valueOf() > endMs;\r\n const realEnd = (item.till.valueOf() - startMs) / widthMs;\r\n const end = endIsCut ? (endMs - startMs) / widthMs : realEnd;\r\n const realTill = endIsCut ? moment(endMs) : moment(item.till);\r\n const marginStart = start - lastEnd;\r\n lastEnd = Math.min((item.till.valueOf() - startMs) / widthMs, 1);\r\n return {\r\n item,\r\n start,\r\n realStart,\r\n realFrom,\r\n startIsCut,\r\n width: end - start,\r\n end,\r\n realEnd,\r\n realTill,\r\n endIsCut,\r\n marginStart,\r\n };\r\n })\r\n : [];\r\n}\r\n\r\nexport const generateControlItems = (\r\n from: Moment,\r\n till: Moment,\r\n step: Duration,\r\n startOfStep: Moment\r\n) => {\r\n if (!from || !till || !step) {\r\n return [];\r\n }\r\n let steps = Math.max(\r\n Math.ceil((till.valueOf() - from.valueOf()) / step.asMilliseconds()),\r\n 2\r\n );\r\n let subtract =\r\n (startOfStep.valueOf() - from.valueOf()) % step.asMilliseconds();\r\n if (subtract > 0) {\r\n subtract -= step.asMilliseconds();\r\n }\r\n if (till.valueOf() - from.valueOf() > step.asMilliseconds()) {\r\n steps += 1;\r\n }\r\n return new Array(steps).fill(0).map((_, index) => ({\r\n from: from\r\n .clone()\r\n .add(subtract)\r\n .add(step.asMilliseconds() * index),\r\n till: from\r\n .clone()\r\n .add(subtract)\r\n .add(step.asMilliseconds() * (index + 1)),\r\n id: index,\r\n }));\r\n};\r\n\r\nexport interface GridItem {\r\n left: number;\r\n date: Moment;\r\n stepProportion: number;\r\n opacity: number;\r\n}\r\n\r\nexport const generateGridItems = (\r\n from: Moment,\r\n till: Moment,\r\n step: Duration,\r\n containerWidthPx: number,\r\n availableSteps: Duration[],\r\n goalGridWidthPx: number,\r\n startOfStep: Moment\r\n): { items: GridItem[]; bestStep: Duration } => {\r\n if (\r\n !from ||\r\n !till ||\r\n !containerWidthPx ||\r\n !availableSteps?.length ||\r\n !goalGridWidthPx ||\r\n !step ||\r\n !startOfStep\r\n ) {\r\n return { bestStep: availableSteps?.[0], items: [] };\r\n }\r\n const stepMs = step.asMilliseconds();\r\n const fromMs = from.valueOf();\r\n const tillMs = till.valueOf();\r\n const timeLengthMs = tillMs - fromMs;\r\n const approximateStepsCount = containerWidthPx / goalGridWidthPx;\r\n const approximateStepMs = timeLengthMs / approximateStepsCount;\r\n const availableStepsDistancesMs = availableSteps.map((a) =>\r\n Math.abs(a.asMilliseconds() - approximateStepMs)\r\n );\r\n const smallestDistance = Math.min(...availableStepsDistancesMs);\r\n const bestStepIndex = availableStepsDistancesMs.findIndex(\r\n (a) => a === smallestDistance\r\n );\r\n const bestStep = availableSteps[bestStepIndex];\r\n const subtract =\r\n (fromMs + from.utcOffset() * 60 * 1000) % bestStep.asMilliseconds();\r\n let startMs = fromMs - subtract;\r\n let steps: Moment[] = [];\r\n while (startMs <= tillMs) {\r\n steps = steps.concat(from.clone().add(startMs - fromMs, 'ms'));\r\n startMs += bestStep.asMilliseconds();\r\n }\r\n return {\r\n items: steps\r\n .filter((a) => a.valueOf() > fromMs && a.valueOf() < tillMs)\r\n .map((date) => {\r\n const stepProportion =\r\n ((date.valueOf() + from.utcOffset() * 60 * 1000) % stepMs) / stepMs;\r\n let numberOfRoots = 0;\r\n let current = stepProportion;\r\n let currentTop = 1;\r\n let tolerance = 0.001;\r\n while (current > tolerance && current < currentTop - tolerance) {\r\n numberOfRoots += 1;\r\n currentTop = 1 / Math.pow(2, numberOfRoots);\r\n if (current > currentTop) {\r\n current -= currentTop;\r\n }\r\n }\r\n return {\r\n left: (date.valueOf() - fromMs) / timeLengthMs,\r\n date,\r\n stepProportion,\r\n opacity: 1 / (numberOfRoots || 1),\r\n };\r\n }),\r\n bestStep,\r\n };\r\n};\r\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAkD,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,IAAAC,eAAA,CAAAP,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAkB,yBAAA,GAAAlB,MAAA,CAAAmB,gBAAA,CAAAT,MAAA,EAAAV,MAAA,CAAAkB,yBAAA,CAAAJ,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAoB,cAAA,CAAAV,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAAA,SAAAO,gBAAAxB,GAAA,EAAAuB,GAAA,EAAAK,KAAA,IAAAL,GAAA,GAAAM,cAAA,CAAAN,GAAA,OAAAA,GAAA,IAAAvB,GAAA,IAAAO,MAAA,CAAAoB,cAAA,CAAA3B,GAAA,EAAAuB,GAAA,IAAAK,KAAA,EAAAA,KAAA,EAAAf,UAAA,QAAAiB,YAAA,QAAAC,QAAA,oBAAA/B,GAAA,CAAAuB,GAAA,IAAAK,KAAA,WAAA5B,GAAA;AAAA,SAAA6B,eAAAG,GAAA,QAAAT,GAAA,GAAAU,YAAA,CAAAD,GAAA,2BAAAT,GAAA,gBAAAA,GAAA,GAAAW,MAAA,CAAAX,GAAA;AAAA,SAAAU,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAU3C,SAASU,OAAOA,CACrBC,KAAU,EACVC,QAAsC,EACL;EACjC,OAAOD,KAAK,CAACE,MAAM,CAAC,CAAChD,GAAG,EAAEiD,IAAI,KAAK;IACjC,MAAM1B,GAAG,GAAGwB,QAAQ,CAACE,IAAI,CAAC;IAC1B,IAAI,CAACjD,GAAG,CAACkD,cAAc,CAAC3B,GAAG,CAAC,EAAE;MAC5BvB,GAAG,CAACuB,GAAG,CAAC,GAAG,EAAE;IACf;IACAvB,GAAG,CAACuB,GAAG,CAAC,CAACT,IAAI,CAACmC,IAAI,CAAC;IACnB,OAAOjD,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;AACR;AAqBO,SAASmD,oBAAoBA,CAClCC,QAAa,EACbC,IAAY,EACZC,IAAY,EACZC,aAAqB,EAGrB;EAAA,IAFAC,WAA2C,GAAArC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAqB,SAAA,GAAArB,SAAA,MAAG,EAAE;EAAA,IAChDsC,gBAAgB,GAAAtC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAqB,SAAA,GAAArB,SAAA,MAAG,IAAI;EAEvB,IAAI,CAACiC,QAAQ,EAAE;IACb,OAAO,EAAE;EACX;EACA,IAAIM,KAA+B,GAAG,EAAE;EACxC,IAAIF,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEpC,MAAM,EAAE;IACvBsC,KAAK,GAAGF,WAAW,CAACG,GAAG,CAAEtC,MAAM,IAAAL,aAAA,CAAAA,aAAA,KAC1BK,MAAM;MACTyB,KAAK,EAAE;IAAE,EACT,CAAC;EACL;EACA,MAAMc,sBAAsB,GAAGR,QAAQ,CAAC1C,MAAM,CAC3CmD,CAAC,IAAKA,CAAC,CAACC,OAAO,KAAKtB,SACvB,CAAC;EACD,MAAMuB,mBAAmB,GAAGX,QAAQ,CAAC1C,MAAM,CAAEmD,CAAC,IAAKA,CAAC,CAACC,OAAO,KAAKtB,SAAS,CAAC;EAC3E,IAAIuB,mBAAmB,CAAC3C,MAAM,EAAE;IAC9B,MAAM4C,OAAO,GAAGnB,OAAO,CACrBkB,mBAAmB,CAACJ,GAAG,CAAC,CAACM,OAAO,EAAEC,aAAa,KAAAlD,aAAA,CAAAA,aAAA,KAC1CiD,OAAO;MACVC;IAAa,EACb,CAAC,EACFL,CAAC,IAAKA,CAAC,CAACC,OACX,CAAC;IACDJ,KAAK,GAAGnD,MAAM,CAACD,IAAI,CAAC0D,OAAO,CAAC,CAACL,GAAG,CAAEpC,GAAG,IAAAP,aAAA;MACnC8C,OAAO,EAAElB,MAAM,CAACrB,GAAG,CAAC;MACpBuB,KAAK,EAAEkB,OAAO,CAACzC,GAAG;IAAC,GAChBiC,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEW,IAAI,CAAEN,CAAC,IAAKA,CAAC,CAACC,OAAO,KAAKlB,MAAM,CAACrB,GAAG,CAAC,CAAC,CACtD,CAAC;IACH,MAAM6C,YAAY,GAAGZ,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE9C,MAAM,CACrCmD,CAAC,IAAK,CAACH,KAAK,CAACW,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACR,OAAO,KAAKD,CAAC,CAACC,OAAO,CACnD,CAAC;IACDJ,KAAK,GAAGA,KAAK,CAACa,MAAM,CAACH,YAAY,CAACT,GAAG,CAAEE,CAAC,IAAA7C,aAAA,CAAAA,aAAA,KAAW6C,CAAC;MAAEf,KAAK,EAAE;IAAE,EAAG,CAAC,CAAC;EACtE;EACA,IAAIc,sBAAsB,CAACxC,MAAM,EAAE;IACjC,IAAIoD,iBAAgE,GAClEZ,sBAAsB,CACnBD,GAAG,CAAC,CAACM,OAAO,EAAEC,aAAa,KAAAlD,aAAA,CAAAA,aAAA,KAAWiD,OAAO;MAAEC;IAAa,EAAG,CAAC,CAChEO,IAAI,CAAC,CAACZ,CAAC,EAAEa,CAAC,KAAKb,CAAC,CAACR,IAAI,CAACsB,OAAO,CAAC,CAAC,GAAGD,CAAC,CAACrB,IAAI,CAACsB,OAAO,CAAC,CAAC,CAAC;IACxD,OAAOH,iBAAiB,CAACpD,MAAM,GAAG,CAAC,EAAE;MACnC,IAAIwD,GAAG,GAAG,cAAc;MACxB,IAAIC,YAAY,GAAG,CAAC,CAAC;MACrB,IAAIC,SAAS,GAAG,CAAC,CAAC;MAClBpB,KAAK,CAACpC,OAAO,CAAC,CAACyD,IAAI,EAAEC,KAAK,KAAK;QAAA,IAAAC,WAAA;QAC7B,IAAIzB,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEa,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACR,OAAO,KAAKiB,IAAI,CAACjB,OAAO,CAAC,EAAE;UACxD;QACF;QACA,MAAMoB,QAAQ,GAAG,EAAAD,WAAA,GAAAF,IAAI,CAACjC,KAAK,CAACiC,IAAI,CAACjC,KAAK,CAAC1B,MAAM,GAAG,CAAC,CAAC,cAAA6D,WAAA,uBAAjCA,WAAA,CAAmC3B,IAAI,KAAID,IAAI;QAChE,MAAM8B,SAAS,GAAGX,iBAAiB,CAACb,GAAG,CAAEM,OAAO,IAAK;UACnD,MAAMmB,IAAI,GAAGnB,OAAO,CAACZ,IAAI,CAACgC,IAAI,CAACH,QAAQ,CAAC;UACxC,IAAIH,IAAI,CAACjC,KAAK,CAAC1B,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAOkE,IAAI,CAACC,GAAG,CAACH,IAAI,CAAC;UACvB;UACA,OAAOA,IAAI;QACb,CAAC,CAAC;QACF,MAAMI,IAAI,GAAGF,IAAI,CAACV,GAAG,CAAC,GAAGO,SAAS,CAACzE,MAAM,CAAEmD,CAAC,IAAKA,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI2B,IAAI,GAAGZ,GAAG,EAAE;UACdC,YAAY,GAAGM,SAAS,CAACM,OAAO,CAACD,IAAI,CAAC;UACtCV,SAAS,GAAGE,KAAK;QACnB;MACF,CAAC,CAAC;MACF,IAAIH,YAAY,IAAI,CAAC,IAAIC,SAAS,IAAI,CAAC,EAAE;QACvCpB,KAAK,CAACoB,SAAS,CAAC,CAAChC,KAAK,GAAGY,KAAK,CAACoB,SAAS,CAAC,CAAChC,KAAK,CAACyB,MAAM,CAAAvD,aAAA,KACjDwD,iBAAiB,CAACK,YAAY,CAAC,CACnC,CAAC;QACFL,iBAAiB,CAACkB,MAAM,CAACb,YAAY,EAAE,CAAC,CAAC;MAC3C,CAAC,MAAM;QACLnB,KAAK,GAAGA,KAAK,CAACa,MAAM,CAAC;UACnBzB,KAAK,EAAE,CAAA9B,aAAA,KAAMwD,iBAAiB,CAAC,CAAC,CAAC,EAAG;UACpCV,OAAO,EAAEJ,KAAK,CAACtC,MAAM;UACrBuE,IAAI,EAAEnD;QACR,CAAC,CAAC;QACFgC,iBAAiB,CAACoB,KAAK,CAAC,CAAC;MAC3B;IACF;IACA;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE;;EACA,KAAK,IAAIZ,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGtB,KAAK,CAACtC,MAAM,EAAE4D,KAAK,EAAE,EAAE;IACjD,MAAMa,SAAS,GAAGnC,KAAK,CAACsB,KAAK,CAAC,CAAClC,KAAK;IACpC,MAAMgD,MAAM,GAAGD,SAAS,CAACnF,MAAM,CAAEmD,CAAC,IAAKA,CAAC,CAACP,IAAI,CAACqB,OAAO,CAAC,CAAC,GAAGrB,IAAI,CAACqB,OAAO,CAAC,CAAC,CAAC;IACzEmB,MAAM,CAACrB,IAAI,CAAC,CAACZ,CAAC,EAAEa,CAAC,KAAKb,CAAC,CAACR,IAAI,CAACsB,OAAO,CAAC,CAAC,GAAGD,CAAC,CAACrB,IAAI,CAACsB,OAAO,CAAC,CAAC,CAAC;IAC1D,MAAMoB,KAAK,GAAGF,SAAS,CAACnF,MAAM,CAAEmD,CAAC,IAAKA,CAAC,CAACP,IAAI,CAACqB,OAAO,CAAC,CAAC,IAAIrB,IAAI,CAACqB,OAAO,CAAC,CAAC,CAAC;IACzEoB,KAAK,CAACtB,IAAI,CAAC,CAACZ,CAAC,EAAEa,CAAC,KAAKb,CAAC,CAACR,IAAI,CAACsB,OAAO,CAAC,CAAC,GAAGD,CAAC,CAACrB,IAAI,CAACsB,OAAO,CAAC,CAAC,CAAC;IACzDjB,KAAK,CAACsB,KAAK,CAAC,CAAClC,KAAK,GAAG,CAAC,GAAGgD,MAAM,EAAE,GAAGC,KAAK,CAAC;EAC5C;EACA,IAAIrC,KAAK,CAACtC,MAAM,GAAGmC,aAAa,EAAE;IAChCG,KAAK,GAAGA,KAAK,CAACa,MAAM,CAClB,IAAIyB,KAAK,CAAyBzC,aAAa,GAAGG,KAAK,CAACtC,MAAM,CAAC,CAC5D6E,IAAI,CAAC,IAAI,CAAC,CACVtC,GAAG,CAAC,CAACuC,CAAC,EAAElB,KAAK,MAAM;MAClBlC,KAAK,EAAE,EAAE;MACTgB,OAAO,EAAEkB,KAAK,GAAGtB,KAAK,CAACtC,MAAM;MAC7BuE,IAAI,EAAE;IACR,CAAC,CAAC,CACN,CAAC;EACH;EACA,MAAMQ,SAAS,GAAGA,CAChBC,GAA8D,EAC9DtC,OAAoC,KACzB;IACX,MAAMuC,YAAY,GAAG5C,gBAAgB,GACjCb,MAAM,CAAC0D,gBAAgB,GACvB1D,MAAM,CAAC2D,gBAAgB;IAC3B,IAAIzC,OAAO,KAAKtB,SAAS,IAAIsB,OAAO,KAAK,IAAI,EAAE;MAC7C,OAAOuC,YAAY;IACrB;IACA,MAAMrB,KAAK,GAAGoB,GAAG,CAACD,SAAS,CAAElD,IAAI,IAAKA,IAAI,CAACa,OAAO,KAAKA,OAAO,CAAC;IAC/D,OAAOkB,KAAK,KAAK,CAAC,CAAC,GAAGqB,YAAY,GAAGrB,KAAK;EAC5C,CAAC;EAED,MAAMwB,mBAAmB,GAAGA,CAC1BC,cAA8C,EAC9CC,WAAqC,KACR;IAC7B,OAAO,CAAC,GAAGA,WAAW,CAAC,CAACjC,IAAI,CAAC,CAACZ,CAAC,EAAEa,CAAC,KAAK;MACrC,MAAMiC,MAAM,GAAGR,SAAS,CAACM,cAAc,EAAE5C,CAAC,CAACC,OAAO,CAAC;MACnD,MAAM8C,MAAM,GAAGT,SAAS,CAACM,cAAc,EAAE/B,CAAC,CAACZ,OAAO,CAAC;MACnD,OAAO6C,MAAM,GAAGC,MAAM;IACxB,CAAC,CAAC;EACJ,CAAC;EACDlD,KAAK,GAAG8C,mBAAmB,CAAChD,WAAW,EAAEE,KAAK,CAAC;EAC/C,OAAOA,KAAK;AACd;AAGO,SAASmD,YAAYA,CAAChD,CAAS,EAAEa,CAAS,EAAE;EACjD,IAAI,EAACb,CAAC,aAADA,CAAC,eAADA,CAAC,CAAER,IAAI,KAAI,EAACQ,CAAC,aAADA,CAAC,eAADA,CAAC,CAAEP,IAAI,KAAI,EAACoB,CAAC,aAADA,CAAC,eAADA,CAAC,CAAErB,IAAI,KAAI,EAACqB,CAAC,aAADA,CAAC,eAADA,CAAC,CAAEpB,IAAI,GAAE;IAChD,OAAO,KAAK;EACd;EACA,IAAIoB,CAAC,CAACpB,IAAI,CAACwD,QAAQ,CAACjD,CAAC,CAACR,IAAI,CAAC,EAAE;IAC3B,OAAO,KAAK;EACd;EACA,IAAIqB,CAAC,CAACrB,IAAI,CAAC0D,OAAO,CAAClD,CAAC,CAACP,IAAI,CAAC,EAAE;IAC1B,OAAO,KAAK;EACd;EACA,OAAO,IAAI;AACb;AAEO,MAAM0D,oBAAoB,GAAGA,CAACC,WAAmB,EAAEC,KAAa,MACpE;EACCC,UAAU,EAAG,GAAEF,WAAW,GAAG,GAAI,GAAE;EACnCC,KAAK,EAAG,GAAEA,KAAK,GAAG,GAAI;AACxB,CAAC,CAAwB;AAACE,OAAA,CAAAJ,oBAAA,GAAAA,oBAAA;AAErB,SAASK,wBAAwBA,CACtCvE,KAAU,EACVO,IAAY,EACZC,IAAY,EACZ;EACA,IAAIgE,OAAO,GAAG,CAAC;EACf,MAAMC,OAAO,GAAGjE,IAAI,CAACqB,OAAO,CAAC,CAAC,GAAGtB,IAAI,CAACsB,OAAO,CAAC,CAAC;EAC/C,MAAM6C,OAAO,GAAGnE,IAAI,CAACsB,OAAO,CAAC,CAAC;EAC9B,MAAM8C,KAAK,GAAGnE,IAAI,CAACqB,OAAO,CAAC,CAAC;EAC5B,OAAO4C,OAAO,GAAG,CAAC,GACdzE,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEa,GAAG,CAAEV,IAAI,IAAK;IACnB,MAAMyE,UAAU,GAAGzE,IAAI,CAACI,IAAI,CAACsB,OAAO,CAAC,CAAC,GAAG6C,OAAO;IAChD,MAAMG,SAAS,GAAG,CAAC1E,IAAI,CAACI,IAAI,CAACsB,OAAO,CAAC,CAAC,GAAG6C,OAAO,IAAID,OAAO;IAC3D,MAAMK,QAAQ,GAAGF,UAAU,GAAG,IAAAG,eAAM,EAACL,OAAO,CAAC,GAAG,IAAAK,eAAM,EAAC5E,IAAI,CAACI,IAAI,CAAC;IACjE,MAAMyE,KAAK,GAAGJ,UAAU,GAAG,CAAC,GAAGC,SAAS;IACxC,MAAMI,QAAQ,GAAG9E,IAAI,CAACK,IAAI,CAACqB,OAAO,CAAC,CAAC,GAAG8C,KAAK;IAC5C,MAAMO,OAAO,GAAG,CAAC/E,IAAI,CAACK,IAAI,CAACqB,OAAO,CAAC,CAAC,GAAG6C,OAAO,IAAID,OAAO;IACzD,MAAMU,GAAG,GAAGF,QAAQ,GAAG,CAACN,KAAK,GAAGD,OAAO,IAAID,OAAO,GAAGS,OAAO;IAC5D,MAAME,QAAQ,GAAGH,QAAQ,GAAG,IAAAF,eAAM,EAACJ,KAAK,CAAC,GAAG,IAAAI,eAAM,EAAC5E,IAAI,CAACK,IAAI,CAAC;IAC7D,MAAM2D,WAAW,GAAGa,KAAK,GAAGR,OAAO;IACnCA,OAAO,GAAGhC,IAAI,CAACV,GAAG,CAAC,CAAC3B,IAAI,CAACK,IAAI,CAACqB,OAAO,CAAC,CAAC,GAAG6C,OAAO,IAAID,OAAO,EAAE,CAAC,CAAC;IAChE,OAAO;MACLtE,IAAI;MACJ6E,KAAK;MACLH,SAAS;MACTC,QAAQ;MACRF,UAAU;MACVR,KAAK,EAAEe,GAAG,GAAGH,KAAK;MAClBG,GAAG;MACHD,OAAO;MACPE,QAAQ;MACRH,QAAQ;MACRd;IACF,CAAC;EACH,CAAC,CAAC,GACF,EAAE;AACR;AAEO,MAAMkB,oBAAoB,GAAGA,CAClC9E,IAAY,EACZC,IAAY,EACZ8E,IAAc,EACdC,WAAmB,KAChB;EACH,IAAI,CAAChF,IAAI,IAAI,CAACC,IAAI,IAAI,CAAC8E,IAAI,EAAE;IAC3B,OAAO,EAAE;EACX;EACA,IAAIE,KAAK,GAAGhD,IAAI,CAACiD,GAAG,CAClBjD,IAAI,CAACkD,IAAI,CAAC,CAAClF,IAAI,CAACqB,OAAO,CAAC,CAAC,GAAGtB,IAAI,CAACsB,OAAO,CAAC,CAAC,IAAIyD,IAAI,CAACK,cAAc,CAAC,CAAC,CAAC,EACpE,CACF,CAAC;EACD,IAAIC,QAAQ,GACV,CAACL,WAAW,CAAC1D,OAAO,CAAC,CAAC,GAAGtB,IAAI,CAACsB,OAAO,CAAC,CAAC,IAAIyD,IAAI,CAACK,cAAc,CAAC,CAAC;EAClE,IAAIC,QAAQ,GAAG,CAAC,EAAE;IAChBA,QAAQ,IAAIN,IAAI,CAACK,cAAc,CAAC,CAAC;EACnC;EACA,IAAInF,IAAI,CAACqB,OAAO,CAAC,CAAC,GAAGtB,IAAI,CAACsB,OAAO,CAAC,CAAC,GAAGyD,IAAI,CAACK,cAAc,CAAC,CAAC,EAAE;IAC3DH,KAAK,IAAI,CAAC;EACZ;EACA,OAAO,IAAItC,KAAK,CAACsC,KAAK,CAAC,CAACrC,IAAI,CAAC,CAAC,CAAC,CAACtC,GAAG,CAAC,CAACuC,CAAC,EAAElB,KAAK,MAAM;IACjD3B,IAAI,EAAEA,IAAI,CACPsF,KAAK,CAAC,CAAC,CACPC,GAAG,CAACF,QAAQ,CAAC,CACbE,GAAG,CAACR,IAAI,CAACK,cAAc,CAAC,CAAC,GAAGzD,KAAK,CAAC;IACrC1B,IAAI,EAAED,IAAI,CACPsF,KAAK,CAAC,CAAC,CACPC,GAAG,CAACF,QAAQ,CAAC,CACbE,GAAG,CAACR,IAAI,CAACK,cAAc,CAAC,CAAC,IAAIzD,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3C6D,EAAE,EAAE7D;EACN,CAAC,CAAC,CAAC;AACL,CAAC;AAACoC,OAAA,CAAAe,oBAAA,GAAAA,oBAAA;AASK,MAAMW,iBAAiB,GAAGA,CAC/BzF,IAAY,EACZC,IAAY,EACZ8E,IAAc,EACdW,gBAAwB,EACxBC,cAA0B,EAC1BC,eAAuB,EACvBZ,WAAmB,KAC2B;EAC9C,IACE,CAAChF,IAAI,IACL,CAACC,IAAI,IACL,CAACyF,gBAAgB,IACjB,EAACC,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAE5H,MAAM,KACvB,CAAC6H,eAAe,IAChB,CAACb,IAAI,IACL,CAACC,WAAW,EACZ;IACA,OAAO;MAAEa,QAAQ,EAAEF,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAG,CAAC,CAAC;MAAElG,KAAK,EAAE;IAAG,CAAC;EACrD;EACA,MAAMqG,MAAM,GAAGf,IAAI,CAACK,cAAc,CAAC,CAAC;EACpC,MAAMW,MAAM,GAAG/F,IAAI,CAACsB,OAAO,CAAC,CAAC;EAC7B,MAAM0E,MAAM,GAAG/F,IAAI,CAACqB,OAAO,CAAC,CAAC;EAC7B,MAAM2E,YAAY,GAAGD,MAAM,GAAGD,MAAM;EACpC,MAAMG,qBAAqB,GAAGR,gBAAgB,GAAGE,eAAe;EAChE,MAAMO,iBAAiB,GAAGF,YAAY,GAAGC,qBAAqB;EAC9D,MAAME,yBAAyB,GAAGT,cAAc,CAACrF,GAAG,CAAEE,CAAC,IACrDyB,IAAI,CAACC,GAAG,CAAC1B,CAAC,CAAC4E,cAAc,CAAC,CAAC,GAAGe,iBAAiB,CACjD,CAAC;EACD,MAAME,gBAAgB,GAAGpE,IAAI,CAACV,GAAG,CAAC,GAAG6E,yBAAyB,CAAC;EAC/D,MAAME,aAAa,GAAGF,yBAAyB,CAACtD,SAAS,CACtDtC,CAAC,IAAKA,CAAC,KAAK6F,gBACf,CAAC;EACD,MAAMR,QAAQ,GAAGF,cAAc,CAACW,aAAa,CAAC;EAC9C,MAAMjB,QAAQ,GACZ,CAACU,MAAM,GAAG/F,IAAI,CAACuG,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,IAAIV,QAAQ,CAACT,cAAc,CAAC,CAAC;EACrE,IAAIjB,OAAO,GAAG4B,MAAM,GAAGV,QAAQ;EAC/B,IAAIJ,KAAe,GAAG,EAAE;EACxB,OAAOd,OAAO,IAAI6B,MAAM,EAAE;IACxBf,KAAK,GAAGA,KAAK,CAAC/D,MAAM,CAAClB,IAAI,CAACsF,KAAK,CAAC,CAAC,CAACC,GAAG,CAACpB,OAAO,GAAG4B,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9D5B,OAAO,IAAI0B,QAAQ,CAACT,cAAc,CAAC,CAAC;EACtC;EACA,OAAO;IACL3F,KAAK,EAAEwF,KAAK,CACT5H,MAAM,CAAEmD,CAAC,IAAKA,CAAC,CAACc,OAAO,CAAC,CAAC,GAAGyE,MAAM,IAAIvF,CAAC,CAACc,OAAO,CAAC,CAAC,GAAG0E,MAAM,CAAC,CAC3D1F,GAAG,CAAEkG,IAAI,IAAK;MACb,MAAMC,cAAc,GACjB,CAACD,IAAI,CAAClF,OAAO,CAAC,CAAC,GAAGtB,IAAI,CAACuG,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,IAAIT,MAAM,GAAIA,MAAM;MACrE,IAAIY,aAAa,GAAG,CAAC;MACrB,IAAIC,OAAO,GAAGF,cAAc;MAC5B,IAAIG,UAAU,GAAG,CAAC;MAClB,IAAIC,SAAS,GAAG,KAAK;MACrB,OAAOF,OAAO,GAAGE,SAAS,IAAIF,OAAO,GAAGC,UAAU,GAAGC,SAAS,EAAE;QAC9DH,aAAa,IAAI,CAAC;QAClBE,UAAU,GAAG,CAAC,GAAG3E,IAAI,CAAC6E,GAAG,CAAC,CAAC,EAAEJ,aAAa,CAAC;QAC3C,IAAIC,OAAO,GAAGC,UAAU,EAAE;UACxBD,OAAO,IAAIC,UAAU;QACvB;MACF;MACA,OAAO;QACLG,IAAI,EAAE,CAACP,IAAI,CAAClF,OAAO,CAAC,CAAC,GAAGyE,MAAM,IAAIE,YAAY;QAC9CO,IAAI;QACJC,cAAc;QACdO,OAAO,EAAE,CAAC,IAAIN,aAAa,IAAI,CAAC;MAClC,CAAC;IACH,CAAC,CAAC;IACJb;EACF,CAAC;AACH,CAAC;AAAC9B,OAAA,CAAA0B,iBAAA,GAAAA,iBAAA"}
|
1
|
+
{"version":3,"file":"utils.js","names":["_moment","_interopRequireDefault","require","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","groupBy","items","iterator","reduce","item","hasOwnProperty","splitBookingsToLanes","bookings","from","till","minLanesCount","lanesSource","unmatchedToFront","lanes","map","bookingsWithoutLaneKey","a","laneKey","bookingsWithLaneKey","grouped","booking","originalIndex","find","missingLanes","some","l","concat","remainingBookings","sort","b","valueOf","min","bookingIndex","laneIndex","lane","index","_lane$items","lastTill","distances","dist","diff","Math","abs","_min","indexOf","splice","data","shift","laneItems","normal","atEnd","Array","fill","_","findIndex","arr","unmatchedVal","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","sortArrayByLaneKeys","referenceArray","arrayToSort","indexA","indexB","itemsOverlap","isBefore","isAfter","getItemPositionStyle","marginStart","width","marginLeft","exports","calculateItemsDimensions","lastEnd","widthMs","startMs","endMs","startIsCut","realStart","realFrom","moment","start","endIsCut","realEnd","end","realTill","max","generateControlItems","step","startOfStep","steps","ceil","asMilliseconds","subtract","clone","add","id","generateGridItems","containerWidthPx","availableSteps","goalGridWidthPx","bestStep","stepMs","fromMs","tillMs","timeLengthMs","approximateStepsCount","approximateStepMs","availableStepsDistancesMs","smallestDistance","bestStepIndex","utcOffset","date","stepProportion","numberOfRoots","current","currentTop","tolerance","pow","left","opacity"],"sources":["../../../src/lib/components/bookingCalendar/utils.ts"],"sourcesContent":["import moment, { Moment, Duration } from 'moment';\r\nimport { BookingCalendarItemProps } from './bookingCalendarItem';\r\nimport { BookingCalendarLaneProps } from './bookingCalendarLane';\r\nimport { BookingCalendarLaneHeaderProps } from './bookingCalendarLaneHeader';\r\nimport { BookingCalendarRenderItemProps } from './bookingCalendarRenderItem';\r\nimport {\r\n BookingCalendarItemT,\r\n BookingCalendarItemWithOriginalIndexT,\r\n} from './common';\r\n\r\nexport function groupBy<T>(\r\n items: T[],\r\n iterator: (item: T) => number | string\r\n): { [key: string | number]: T[] } {\r\n return items.reduce((obj, item) => {\r\n const key = iterator(item);\r\n if (!obj.hasOwnProperty(key)) {\r\n obj[key] = [];\r\n }\r\n obj[key].push(item);\r\n return obj;\r\n }, {});\r\n}\r\n\r\nexport interface LaneSourceData<T extends BookingCalendarItemT, TLaneData> {\r\n laneKey: number;\r\n data?: TLaneData;\r\n rowClassName?: string;\r\n BookingCalendarItem?: React.ComponentType<BookingCalendarItemProps<T>>;\r\n BookingCalendarRenderItem?: React.ComponentType<\r\n BookingCalendarRenderItemProps<T>\r\n >;\r\n BookingCalendarLaneHeader?: React.ComponentType<\r\n BookingCalendarLaneHeaderProps<TLaneData>\r\n >;\r\n BookingCalendarLane?: React.ComponentType<BookingCalendarLaneProps<T>>;\r\n}\r\n\r\nexport interface LaneData<T extends BookingCalendarItemT, TLaneData>\r\n extends LaneSourceData<T, TLaneData> {\r\n items: T[];\r\n}\r\n\r\nexport function splitBookingsToLanes<T extends BookingCalendarItemT, TLaneData>(\r\n bookings: T[],\r\n from: Moment,\r\n till: Moment,\r\n minLanesCount: number,\r\n lanesSource: LaneSourceData<T, TLaneData>[] = [],\r\n unmatchedToFront = true\r\n) {\r\n if (!bookings) {\r\n return [];\r\n }\r\n let lanes: LaneData<T, TLaneData>[] = [];\r\n if (lanesSource?.length) {\r\n lanes = lanesSource.map((source) => ({\r\n ...source,\r\n items: [],\r\n }));\r\n }\r\n const bookingsWithoutLaneKey = bookings.filter(\r\n (a) => a.laneKey === undefined\r\n );\r\n const bookingsWithLaneKey = bookings.filter((a) => a.laneKey !== undefined);\r\n if (bookingsWithLaneKey.length) {\r\n const grouped = groupBy(\r\n bookingsWithLaneKey.map((booking, originalIndex) => ({\r\n ...booking,\r\n originalIndex,\r\n })),\r\n (a) => a.laneKey\r\n );\r\n lanes = Object.keys(grouped).map((key) => ({\r\n laneKey: Number(key),\r\n items: grouped[key],\r\n ...lanesSource?.find((a) => a.laneKey === Number(key)),\r\n }));\r\n const missingLanes = lanesSource?.filter(\r\n (a) => !lanes.some((l) => l.laneKey === a.laneKey)\r\n );\r\n lanes = lanes.concat(missingLanes.map((a) => ({ ...a, items: [] })));\r\n }\r\n if (bookingsWithoutLaneKey.length) {\r\n let remainingBookings: (T & BookingCalendarItemWithOriginalIndexT)[] =\r\n bookingsWithoutLaneKey\r\n .map((booking, originalIndex) => ({ ...booking, originalIndex }))\r\n .sort((a, b) => a.from.valueOf() - b.from.valueOf());\r\n while (remainingBookings.length > 0) {\r\n let min = 99999999999999;\r\n let bookingIndex = -1;\r\n let laneIndex = -1;\r\n lanes.forEach((lane, index) => {\r\n if (lanesSource?.some((l) => l.laneKey === lane.laneKey)) {\r\n return;\r\n }\r\n const lastTill = lane.items[lane.items.length - 1]?.till ?? from;\r\n const distances = remainingBookings.map((booking) => {\r\n const dist = booking.from.diff(lastTill);\r\n if (lane.items.length === 0) {\r\n return Math.abs(dist);\r\n }\r\n return dist;\r\n });\r\n const _min = Math.min(...distances.filter((a) => a >= 0));\r\n if (_min < min) {\r\n bookingIndex = distances.indexOf(_min);\r\n laneIndex = index;\r\n }\r\n });\r\n if (bookingIndex >= 0 && laneIndex >= 0) {\r\n lanes[laneIndex].items = lanes[laneIndex].items.concat({\r\n ...remainingBookings[bookingIndex],\r\n });\r\n remainingBookings.splice(bookingIndex, 1);\r\n } else {\r\n lanes = lanes.concat({\r\n items: [{ ...remainingBookings[0] }],\r\n laneKey: lanes.length,\r\n data: undefined,\r\n });\r\n remainingBookings.shift();\r\n }\r\n }\r\n // Naive solution that is much less computationally intensive but yields more lanes than necessary\r\n /*bookings.forEach((booking, originalIndex) => {\r\n let found = false;\r\n lanes.forEach((lane, index) => {\r\n if (!lane.some(i => itemsOverlap(booking, i))) {\r\n lanes[index] = lanes[index].concat({ ...booking, originalIndex });\r\n found = true;\r\n }\r\n });\r\n if (!found) {\r\n lanes = lanes.concat([[{ ...booking, originalIndex }]]);\r\n }\r\n });*/\r\n }\r\n for (let index = 0; index < lanes.length; index++) {\r\n const laneItems = lanes[index].items;\r\n const normal = laneItems.filter((a) => a.till.valueOf() < till.valueOf());\r\n normal.sort((a, b) => a.from.valueOf() - b.from.valueOf());\r\n const atEnd = laneItems.filter((a) => a.till.valueOf() >= till.valueOf());\r\n atEnd.sort((a, b) => a.from.valueOf() - b.from.valueOf());\r\n lanes[index].items = [...normal, ...atEnd];\r\n }\r\n if (lanes.length < minLanesCount) {\r\n lanes = lanes.concat(\r\n new Array<LaneData<T, TLaneData>>(minLanesCount - lanes.length)\r\n .fill(null)\r\n .map((_, index) => ({\r\n items: [],\r\n laneKey: index + lanes.length,\r\n data: null,\r\n }))\r\n );\r\n }\r\n const findIndex = (\r\n arr: (LaneData<T, TLaneData> | LaneSourceData<T, TLaneData>)[],\r\n laneKey: string | undefined | number\r\n ): number => {\r\n const unmatchedVal = unmatchedToFront\r\n ? Number.MIN_SAFE_INTEGER\r\n : Number.MAX_SAFE_INTEGER;\r\n if (laneKey === undefined || laneKey === null) {\r\n return unmatchedVal;\r\n }\r\n const index = arr.findIndex((item) => item.laneKey === laneKey);\r\n return index === -1 ? unmatchedVal : index;\r\n };\r\n\r\n const sortArrayByLaneKeys = (\r\n referenceArray: LaneSourceData<T, TLaneData>[],\r\n arrayToSort: LaneData<T, TLaneData>[]\r\n ): LaneData<T, TLaneData>[] => {\r\n return [...arrayToSort].sort((a, b) => {\r\n const indexA = findIndex(referenceArray, a.laneKey);\r\n const indexB = findIndex(referenceArray, b.laneKey);\r\n return indexA - indexB;\r\n });\r\n };\r\n lanes = sortArrayByLaneKeys(lanesSource, lanes);\r\n return lanes;\r\n}\r\n\r\ntype Picked = Pick<BookingCalendarItemT, 'from' | 'till'>;\r\nexport function itemsOverlap(a: Picked, b: Picked) {\r\n if (!a?.from || !a?.till || !b?.from || !b?.till) {\r\n return false;\r\n }\r\n if (b.till.isBefore(a.from)) {\r\n return false;\r\n }\r\n if (b.from.isAfter(a.till)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport const getItemPositionStyle = (marginStart: number, width: number) =>\r\n ({\r\n marginLeft: `${marginStart * 100}%`,\r\n width: `${width * 100}%`,\r\n } as React.CSSProperties);\r\n\r\nexport function calculateItemsDimensions<T extends BookingCalendarItemT>(\r\n items: T[],\r\n from: Moment,\r\n till: Moment\r\n) {\r\n let lastEnd = 0;\r\n const widthMs = till.valueOf() - from.valueOf();\r\n const startMs = from.valueOf();\r\n const endMs = till.valueOf();\r\n return widthMs > 0\r\n ? items?.map((item) => {\r\n const startIsCut = item.from.valueOf() < startMs;\r\n const realStart = (item.from.valueOf() - startMs) / widthMs;\r\n const realFrom = startIsCut ? moment(startMs) : moment(item.from);\r\n const start = startIsCut ? 0 : realStart;\r\n const endIsCut = item.till.valueOf() > endMs;\r\n const realEnd = (item.till.valueOf() - startMs) / widthMs;\r\n const end = endIsCut ? (endMs - startMs) / widthMs : realEnd;\r\n const realTill = endIsCut ? moment(endMs) : moment(item.till);\r\n const marginStart = start - lastEnd;\r\n const width = end - start;\r\n if (end > 0 && start < 1) {\r\n lastEnd = Math.max(Math.min(realEnd, 1), 0);\r\n }\r\n return {\r\n item,\r\n start,\r\n realStart,\r\n realFrom,\r\n startIsCut,\r\n width,\r\n end,\r\n realEnd,\r\n realTill,\r\n endIsCut,\r\n marginStart,\r\n };\r\n })\r\n : [];\r\n}\r\n\r\nexport const generateControlItems = (\r\n from: Moment,\r\n till: Moment,\r\n step: Duration,\r\n startOfStep: Moment\r\n) => {\r\n if (!from || !till || !step) {\r\n return [];\r\n }\r\n let steps = Math.max(\r\n Math.ceil((till.valueOf() - from.valueOf()) / step.asMilliseconds()),\r\n 2\r\n );\r\n let subtract =\r\n (startOfStep.valueOf() - from.valueOf()) % step.asMilliseconds();\r\n if (subtract > 0) {\r\n subtract -= step.asMilliseconds();\r\n }\r\n if (till.valueOf() - from.valueOf() > step.asMilliseconds()) {\r\n steps += 1;\r\n }\r\n return new Array(steps).fill(0).map((_, index) => ({\r\n from: from\r\n .clone()\r\n .add(subtract)\r\n .add(step.asMilliseconds() * index),\r\n till: from\r\n .clone()\r\n .add(subtract)\r\n .add(step.asMilliseconds() * (index + 1)),\r\n id: index,\r\n }));\r\n};\r\n\r\nexport interface GridItem {\r\n left: number;\r\n date: Moment;\r\n stepProportion: number;\r\n opacity: number;\r\n}\r\n\r\nexport const generateGridItems = (\r\n from: Moment,\r\n till: Moment,\r\n step: Duration,\r\n containerWidthPx: number,\r\n availableSteps: Duration[],\r\n goalGridWidthPx: number,\r\n startOfStep: Moment\r\n): { items: GridItem[]; bestStep: Duration } => {\r\n if (\r\n !from ||\r\n !till ||\r\n !containerWidthPx ||\r\n !availableSteps?.length ||\r\n !goalGridWidthPx ||\r\n !step ||\r\n !startOfStep\r\n ) {\r\n return { bestStep: availableSteps?.[0], items: [] };\r\n }\r\n const stepMs = step.asMilliseconds();\r\n const fromMs = from.valueOf();\r\n const tillMs = till.valueOf();\r\n const timeLengthMs = tillMs - fromMs;\r\n const approximateStepsCount = containerWidthPx / goalGridWidthPx;\r\n const approximateStepMs = timeLengthMs / approximateStepsCount;\r\n const availableStepsDistancesMs = availableSteps.map((a) =>\r\n Math.abs(a.asMilliseconds() - approximateStepMs)\r\n );\r\n const smallestDistance = Math.min(...availableStepsDistancesMs);\r\n const bestStepIndex = availableStepsDistancesMs.findIndex(\r\n (a) => a === smallestDistance\r\n );\r\n const bestStep = availableSteps[bestStepIndex];\r\n const subtract =\r\n (fromMs + from.utcOffset() * 60 * 1000) % bestStep.asMilliseconds();\r\n let startMs = fromMs - subtract;\r\n let steps: Moment[] = [];\r\n while (startMs <= tillMs) {\r\n steps = steps.concat(from.clone().add(startMs - fromMs, 'ms'));\r\n startMs += bestStep.asMilliseconds();\r\n }\r\n return {\r\n items: steps\r\n .filter((a) => a.valueOf() > fromMs && a.valueOf() < tillMs)\r\n .map((date) => {\r\n const stepProportion =\r\n ((date.valueOf() + from.utcOffset() * 60 * 1000) % stepMs) / stepMs;\r\n let numberOfRoots = 0;\r\n let current = stepProportion;\r\n let currentTop = 1;\r\n let tolerance = 0.001;\r\n while (current > tolerance && current < currentTop - tolerance) {\r\n numberOfRoots += 1;\r\n currentTop = 1 / Math.pow(2, numberOfRoots);\r\n if (current > currentTop) {\r\n current -= currentTop;\r\n }\r\n }\r\n return {\r\n left: (date.valueOf() - fromMs) / timeLengthMs,\r\n date,\r\n stepProportion,\r\n opacity: 1 / (numberOfRoots || 1),\r\n };\r\n }),\r\n bestStep,\r\n };\r\n};\r\n"],"mappings":"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"}
|
@@ -2621,8 +2621,7 @@ a.guestbell__dropdown-toggle {
|
|
2621
2621
|
right: 0;
|
2622
2622
|
height: 100%;
|
2623
2623
|
pointer-events: none;
|
2624
|
-
grid-column: 2;
|
2625
|
-
grid-row-start: 2; }
|
2624
|
+
grid-column: 2; }
|
2626
2625
|
|
2627
2626
|
.bookingCalendar__grid__item {
|
2628
2627
|
height: 100%;
|
@@ -2719,8 +2718,7 @@ a.guestbell__dropdown-toggle {
|
|
2719
2718
|
left: 0;
|
2720
2719
|
right: 0;
|
2721
2720
|
height: 100%;
|
2722
|
-
grid-column: 2;
|
2723
|
-
grid-row-start: 2; }
|
2721
|
+
grid-column: 2; }
|
2724
2722
|
|
2725
2723
|
.bookingCalendar__selection {
|
2726
2724
|
background-color: rgba(0, 0, 0, 0.2);
|
@@ -2744,7 +2742,6 @@ a.guestbell__dropdown-toggle {
|
|
2744
2742
|
height: 100%;
|
2745
2743
|
pointer-events: none;
|
2746
2744
|
grid-column: 2;
|
2747
|
-
grid-row-start: 2;
|
2748
2745
|
display: flex; }
|
2749
2746
|
|
2750
2747
|
.bookingCalendar__nowSection__now {
|