guestbell-forms 3.0.27 → 3.0.28
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.
@@ -119,7 +119,7 @@ function splitBookingsToLanes(bookings, from, minLanesCount) {
|
|
119
119
|
}
|
120
120
|
const findIndex = (arr, laneKey) => {
|
121
121
|
const unmatchedVal = unmatchedToFront ? Number.MIN_SAFE_INTEGER : Number.MAX_SAFE_INTEGER;
|
122
|
-
if (
|
122
|
+
if (laneKey === undefined || laneKey === null) {
|
123
123
|
return unmatchedVal;
|
124
124
|
}
|
125
125
|
const index = arr.findIndex(item => item.laneKey === laneKey);
|
@@ -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","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","till","distances","dist","diff","Math","abs","_min","indexOf","splice","data","shift","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","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>(items: T[], iterator: (item: T) => number | string) {\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 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 lane = lanes[index];\r\n lanes[index].items = lane.items.sort(\r\n (a, b) => a.from.valueOf() - b.from.valueOf()\r\n );\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) {\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\nexport function itemsOverlap<T extends BookingCalendarItemT>(a: T, b: T) {\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 = (item.till.valueOf() - startMs) / widthMs;\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 }));\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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"}
|
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","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","till","distances","dist","diff","Math","abs","_min","indexOf","splice","data","shift","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","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>(items: T[], iterator: (item: T) => number | string) {\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 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 lane = lanes[index];\r\n lanes[index].items = lane.items.sort(\r\n (a, b) => a.from.valueOf() - b.from.valueOf()\r\n );\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\nexport function itemsOverlap<T extends BookingCalendarItemT>(a: T, b: T) {\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 = (item.till.valueOf() - startMs) / widthMs;\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 }));\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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"}
|
package/build/dist/report.html
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
<head>
|
4
4
|
<meta charset="UTF-8"/>
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
6
|
-
<title>guestbell-forms [17 May 2023 at
|
6
|
+
<title>guestbell-forms [17 May 2023 at 11:14]</title>
|
7
7
|
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
|
8
8
|
|
9
9
|
<script>
|
package/package.json
CHANGED