ngx-bootstrap 8.0.0-RC.2 → 8.0.0-RC.8

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.
Files changed (81) hide show
  1. package/accordion/package.json +5 -3
  2. package/alert/package.json +4 -2
  3. package/buttons/package.json +3 -1
  4. package/carousel/package.json +4 -2
  5. package/chronos/esm2020/i18n/es-pr.mjs +74 -0
  6. package/chronos/esm2020/public_api.mjs +2 -1
  7. package/chronos/fesm2015/ngx-bootstrap-chronos.mjs +90 -17
  8. package/chronos/fesm2015/ngx-bootstrap-chronos.mjs.map +1 -1
  9. package/chronos/fesm2020/ngx-bootstrap-chronos.mjs +90 -17
  10. package/chronos/fesm2020/ngx-bootstrap-chronos.mjs.map +1 -1
  11. package/chronos/i18n/es-pr.d.ts +2 -0
  12. package/chronos/package.json +3 -1
  13. package/chronos/public_api.d.ts +1 -0
  14. package/collapse/package.json +3 -1
  15. package/component-loader/esm2020/component-loader.class.mjs +4 -8
  16. package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs +5 -9
  17. package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs.map +1 -1
  18. package/component-loader/fesm2020/ngx-bootstrap-component-loader.mjs +3 -7
  19. package/component-loader/fesm2020/ngx-bootstrap-component-loader.mjs.map +1 -1
  20. package/component-loader/package.json +5 -3
  21. package/datepicker/esm2020/engine/flag-months-calendar.mjs +2 -2
  22. package/datepicker/esm2020/public_api.mjs +1 -9
  23. package/datepicker/esm2020/reducer/bs-datepicker.reducer.mjs +2 -2
  24. package/datepicker/esm2020/utils/bs-calendar-utils.mjs +3 -6
  25. package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs +6 -1114
  26. package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs.map +1 -1
  27. package/datepicker/fesm2020/ngx-bootstrap-datepicker.mjs +6 -1113
  28. package/datepicker/fesm2020/ngx-bootstrap-datepicker.mjs.map +1 -1
  29. package/datepicker/package.json +10 -8
  30. package/datepicker/public_api.d.ts +0 -8
  31. package/datepicker/utils/bs-calendar-utils.d.ts +2 -2
  32. package/dropdown/package.json +6 -4
  33. package/focus-trap/package.json +3 -1
  34. package/locale/esm2020/public_api.mjs +2 -1
  35. package/locale/fesm2015/ngx-bootstrap-locale.mjs +1 -1
  36. package/locale/fesm2020/ngx-bootstrap-locale.mjs +1 -1
  37. package/locale/package.json +4 -2
  38. package/locale/public_api.d.ts +1 -0
  39. package/mini-ngrx/package.json +3 -1
  40. package/modal/package.json +7 -5
  41. package/package.json +212 -19
  42. package/pagination/package.json +3 -1
  43. package/popover/esm2020/popover-container.component.mjs +3 -3
  44. package/popover/fesm2015/ngx-bootstrap-popover.mjs +2 -2
  45. package/popover/fesm2015/ngx-bootstrap-popover.mjs.map +1 -1
  46. package/popover/fesm2020/ngx-bootstrap-popover.mjs +2 -2
  47. package/popover/fesm2020/ngx-bootstrap-popover.mjs.map +1 -1
  48. package/popover/package.json +6 -4
  49. package/positioning/esm2020/modifiers/preventOverflow.mjs +6 -7
  50. package/positioning/esm2020/utils/computeAutoPlacement.mjs +15 -19
  51. package/positioning/fesm2015/ngx-bootstrap-positioning.mjs +21 -26
  52. package/positioning/fesm2015/ngx-bootstrap-positioning.mjs.map +1 -1
  53. package/positioning/fesm2020/ngx-bootstrap-positioning.mjs +19 -24
  54. package/positioning/fesm2020/ngx-bootstrap-positioning.mjs.map +1 -1
  55. package/positioning/package.json +4 -2
  56. package/progressbar/package.json +4 -2
  57. package/rating/package.json +3 -1
  58. package/schematics/package.json +3 -1
  59. package/schematics/utils/current_dependency_versions.json +2 -2
  60. package/sortable/package.json +3 -1
  61. package/tabs/package.json +3 -1
  62. package/timepicker/package.json +4 -2
  63. package/tooltip/package.json +6 -4
  64. package/typeahead/package.json +6 -4
  65. package/utils/package.json +3 -1
  66. package/datepicker/date-formatter.d.ts +0 -3
  67. package/datepicker/datepicker-inner.component.d.ts +0 -80
  68. package/datepicker/datepicker.component.d.ts +0 -81
  69. package/datepicker/datepicker.config.d.ts +0 -22
  70. package/datepicker/datepicker.module.d.ts +0 -15
  71. package/datepicker/daypicker.component.d.ts +0 -20
  72. package/datepicker/esm2020/date-formatter.mjs +0 -7
  73. package/datepicker/esm2020/datepicker-inner.component.mjs +0 -325
  74. package/datepicker/esm2020/datepicker.component.mjs +0 -204
  75. package/datepicker/esm2020/datepicker.config.mjs +0 -32
  76. package/datepicker/esm2020/datepicker.module.mjs +0 -48
  77. package/datepicker/esm2020/daypicker.component.mjs +0 -255
  78. package/datepicker/esm2020/monthpicker.component.mjs +0 -131
  79. package/datepicker/esm2020/yearpicker.component.mjs +0 -146
  80. package/datepicker/monthpicker.component.d.ts +0 -14
  81. package/datepicker/yearpicker.component.d.ts +0 -14
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-bootstrap-positioning.mjs","sources":["../../../../src/positioning/models/index.ts","../../../../src/positioning/utils/getStyleComputedProperty.ts","../../../../src/positioning/utils/getOffsetParent.ts","../../../../src/positioning/utils/isOffsetContainer.ts","../../../../src/positioning/utils/getRoot.ts","../../../../src/positioning/utils/findCommonOffsetParent.ts","../../../../src/positioning/utils/getFixedPositionOffsetParent.ts","../../../../src/positioning/utils/getBordersSize.ts","../../../../src/positioning/utils/getWindowSizes.ts","../../../../src/positioning/utils/getClientRect.ts","../../../../src/positioning/utils/isNumeric.ts","../../../../src/positioning/utils/getBoundingClientRect.ts","../../../../src/positioning/utils/getParentNode.ts","../../../../src/positioning/utils/getScrollParent.ts","../../../../src/positioning/utils/getOffsetRectRelativeToArbitraryNode.ts","../../../../src/positioning/utils/getScroll.ts","../../../../src/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.ts","../../../../src/positioning/utils/isFixed.ts","../../../../src/positioning/utils/getBoundaries.ts","../../../../src/positioning/utils/computeAutoPlacement.ts","../../../../src/positioning/utils/getOffsets.ts","../../../../src/positioning/utils/getOppositePlacement.ts","../../../../src/positioning/utils/getOppositeVariation.ts","../../../../src/positioning/utils/getOuterSizes.ts","../../../../src/positioning/utils/getReferenceOffsets.ts","../../../../src/positioning/utils/getTargetOffsets.ts","../../../../src/positioning/utils/isModifierEnabled.ts","../../../../src/positioning/utils/checkMargin.ts","../../../../src/positioning/utils/updateContainerClass.ts","../../../../src/positioning/utils/setStyles.ts","../../../../src/positioning/modifiers/arrow.ts","../../../../src/positioning/modifiers/flip.ts","../../../../src/positioning/modifiers/initData.ts","../../../../src/positioning/modifiers/preventOverflow.ts","../../../../src/positioning/modifiers/shift.ts","../../../../src/positioning/ng-positioning.ts","../../../../src/positioning/positioning.service.ts","../../../../src/positioning/ngx-bootstrap-positioning.ts"],"sourcesContent":["export interface Offsets {\n width: number;\n height: number;\n bottom?: number;\n left?: number;\n right?: number;\n top?: number;\n marginTop?: number;\n marginLeft?: number;\n}\n\nexport interface Data {\n options: Options;\n instance: {\n target: HTMLElement;\n host: HTMLElement;\n arrow?: HTMLElement;\n };\n offsets: {\n target: Offsets;\n host: Offsets;\n arrow?: Record<string, string | number | HTMLElement>;\n };\n positionFixed: boolean;\n placement: string;\n placementAuto: boolean;\n}\n\nexport interface Options {\n placement?: string;\n modifiers: {\n flip?: {\n enabled: boolean;\n };\n preventOverflow?: {\n enabled: boolean;\n boundariesElement?: string;\n };\n };\n allowedPositions?: string[];\n}\n\nexport enum MapPlacementInToRL {\n top = 'top',\n bottom = 'bottom',\n left = 'left',\n right = 'right',\n auto = 'auto',\n end = 'right',\n start = 'left',\n 'top left' = 'top left',\n 'top right' = 'top right',\n 'right top' = 'right top',\n 'right bottom' = 'right bottom',\n 'bottom right' = 'bottom right',\n 'bottom left' = 'bottom left',\n 'left bottom' = 'left bottom',\n 'left top' = 'left top',\n 'top start' = 'top left',\n 'top end' = 'top right',\n 'end top' = 'right top',\n 'end bottom' = 'right bottom',\n 'bottom end' = 'bottom right',\n 'bottom start' = 'bottom left',\n 'start bottom' = 'start bottom',\n 'start top' = 'left top',\n}\n\nexport enum PlacementForBs5 {\n top = 'top',\n bottom = 'bottom',\n left = 'start',\n right = 'end',\n auto = 'auto',\n end = 'end',\n start = 'start',\n 'top left' = 'top start',\n 'top right' = 'top end',\n 'right top' = 'end top',\n 'right bottom' = 'end bottom',\n 'bottom right' = 'bottom end',\n 'bottom left' = 'bottom start',\n 'left bottom' = 'start bottom',\n 'left top' = 'start top',\n 'top start' = 'top start',\n 'top end' = 'top end',\n 'end top' = 'end top',\n 'end bottom' = 'end bottom',\n 'bottom end' = 'bottom end',\n 'bottom start' = 'bottom start',\n 'start bottom' = 'start bottom',\n 'start top' = 'start top',\n}\n\nexport type AvailbleBSPositions = 'top' | 'bottom' | 'left' | 'right' | 'auto' | 'top left' | 'top right' | 'right top' | 'right bottom' | 'bottom right' | 'bottom left' | 'left bottom' | 'left top' | 'start' | 'end' | 'top start' | 'top end' | 'end top' | 'end bottom' | 'bottom end' | 'bottom start' | 'start bottom' | 'start top';\n\n","/**\n * Get CSS computed property of the given element\n */\nexport function getStyleComputedProperty(element: Element): CSSStyleDeclaration;\nexport function getStyleComputedProperty(element: Element, property?: string): string | string[];\nexport function getStyleComputedProperty(element: Element, property?: string): string | string[] | CSSStyleDeclaration {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window?.getComputedStyle(element, null);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return property ? css && css[property] : css;\n}\n","/**\n * Returns the offset parent of the given element\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\n\nexport function getOffsetParent(element: HTMLElement): HTMLElement {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element?.offsetParent;\n\n // Skip hidden elements which don't have an offsetParent\n let sibling: HTMLElement | undefined = void 0;\n\n while (offsetParent === noOffsetParent\n && element.nextElementSibling\n && sibling !== element.nextElementSibling) {\n\n // todo: valorkin fix\n sibling = element.nextElementSibling as HTMLElement;\n offsetParent = sibling.offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return sibling ? sibling.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n if (\n offsetParent &&\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent as HTMLElement);\n }\n\n return offsetParent as HTMLElement;\n}\n","import { getOffsetParent } from './getOffsetParent';\n\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isOffsetContainer(element: any) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n */\nexport function getRoot(node: Node|ShadowRoot): Node|ShadowRoot {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","/**\n * Finds the offset parent common to the two provided nodes\n */\nimport { isOffsetContainer } from './isOffsetContainer';\nimport { getRoot } from './getRoot';\nimport { getOffsetParent } from './getOffsetParent';\n\nexport function findCommonOffsetParent(element1: HTMLElement, element2: HTMLElement): HTMLElement {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n\n // todo: valorkin fix\n const commonAncestorContainer = range.commonAncestorContainer as unknown as HTMLElement;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1) as ShadowRoot;\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host as HTMLElement, element2);\n } else {\n return findCommonOffsetParent(element1, (getRoot(element2) as ShadowRoot).host as HTMLElement);\n }\n}\n","/**\n * Finds the first parent of an element that has a transformed property defined\n */\n\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\n\nexport function getFixedPositionOffsetParent(element: HTMLElement): HTMLElement {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement) {\n return document.documentElement;\n }\n\n let el = element.parentElement;\n\n while (el?.parentElement && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n\n return el || document.documentElement;\n}\n","/**\n * Helper to detect borders of a given element\n */\n\nexport function getBordersSize(styles: CSSStyleDeclaration, axis: string): number {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat((styles as never)[`border${sideA}Width`]) +\n parseFloat((styles as never)[`border${sideB}Width`])\n );\n}\n","function getSize(axis: string, body: HTMLElement, html: HTMLElement, computedStyle?: CSSStyleDeclaration) {\n const _body = body as unknown as Record<string, number>;\n const _html = html as never;\n const _computedStyle = computedStyle as unknown as Record<string, string>;\n\n return Math.max(\n _body[`offset${axis}`],\n _body[`scroll${axis}`],\n _html[`client${axis}`],\n _html[`offset${axis}`],\n _html[`scroll${axis}`],\n 0\n );\n}\n\nexport function getWindowSizes(document: Document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = void 0;\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n */\nimport { Offsets } from '../models';\n\nexport function getClientRect(offsets: Offsets): Offsets {\n return {\n ...offsets,\n right: (offsets.left || 0) + offsets.width,\n bottom: (offsets.top || 0) + offsets.height\n };\n}\n","/**\n * Tells if a given input is a number\n */\nexport function isNumeric(n: string): boolean {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(Number(n));\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isNumber(value?: any): value is number {\n return typeof value === 'number' || Object.prototype.toString.call(value) === '[object Number]';\n}\n","/**\n * Get bounding client rect of given element\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { getBordersSize } from './getBordersSize';\nimport { getWindowSizes } from './getWindowSizes';\nimport { getClientRect } from './getClientRect';\nimport { Offsets } from '../models';\nimport { isNumber } from './isNumeric';\n\nexport function getBoundingClientRect(element: HTMLElement): Offsets {\n const rect: Offsets = element.getBoundingClientRect();\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n // try {\n // if (isIE(10)) {\n // const scrollTop = getScroll(element, 'top');\n // const scrollLeft = getScroll(element, 'left');\n // if (rect && isNumber(rect.top) && isNumber(rect.left) && isNumber(rect.bottom) && isNumber(rect.right)) {\n // rect.top += scrollTop;\n // rect.left += scrollLeft;\n // rect.bottom += scrollTop;\n // rect.right += scrollLeft;\n // }\n // }\n // } catch (e) {\n // return rect;\n // }\n\n if (!(rect && isNumber(rect.top) && isNumber(rect.left) && isNumber(rect.bottom) && isNumber(rect.right))) {\n return rect;\n }\n\n const result: Offsets = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : undefined;\n const width = sizes?.width || element.clientWidth\n || isNumber(rect.right) && isNumber(result.left) && rect.right - result.left || 0;\n const height = sizes?.height || element.clientHeight\n || isNumber(rect.bottom) && isNumber(result.top) && rect.bottom - result.top || 0;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","/**\n * Returns the parentNode or the host of the element\n */\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getParentNode(element: any): any {\n if (element.nodeName === 'HTML') {\n return element;\n }\n\n return element.parentNode || element.host;\n}\n","/**\n * Returns the scrolling parent of the given element\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { getParentNode } from './getParentNode';\n\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getScrollParent(element: any): any {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n default:\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(String(overflow) + String(overflowY) + String(overflowX))) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","import { getBoundingClientRect } from './getBoundingClientRect';\nimport { getClientRect } from './getClientRect';\nimport { getScrollParent } from './getScrollParent';\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { includeScroll } from './includeScroll';\nimport { Offsets } from '../models';\nimport { isNumber } from './isNumeric';\n\nexport function getOffsetRectRelativeToArbitraryNode(\n children: HTMLElement,\n parent: HTMLElement,\n fixedPosition = false\n): Offsets {\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top ?? 0, 0);\n parentRect.left = Math.max(parentRect.left ?? 0, 0);\n }\n\n const offsets: Offsets = getClientRect({\n top: (childrenRect.top ?? 0) - (parentRect.top ?? 0) - borderTopWidth,\n left: (childrenRect.left ?? 0) - (parentRect.left ?? 0) - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n\n if (isNumber(offsets.top)) {\n offsets.top -= borderTopWidth - marginTop;\n }\n if (isNumber(offsets.bottom)) {\n offsets.bottom -= borderTopWidth - marginTop;\n }\n if (isNumber(offsets.left)) {\n offsets.left -= borderLeftWidth - marginLeft;\n }\n if (isNumber(offsets.right)) {\n offsets.right -= borderLeftWidth - marginLeft;\n }\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n return offsets;\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n */\nexport function getScroll(element: HTMLElement, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","import { getClientRect } from './getClientRect';\nimport { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';\nimport { getScroll } from './getScroll';\nimport { Offsets } from '../models';\n\nexport function getViewportOffsetRectRelativeToArtbitraryNode(element: HTMLElement, excludeScroll = false): Offsets {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - Number(relativeOffset?.top) + Number(relativeOffset?.marginTop),\n left: scrollLeft - Number(relativeOffset?.left) + Number(relativeOffset?.marginLeft),\n width,\n height\n };\n\n return getClientRect(offset);\n}\n","/**\n * Check if the given element is fixed or is inside a fixed parent\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { getParentNode } from './getParentNode';\n\nexport function isFixed(element: HTMLElement): boolean {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n\n return isFixed(getParentNode(element));\n}\n","/**\n * Computed the boundaries limits and return them\n */\nimport { Offsets } from '../models';\nimport { findCommonOffsetParent } from './findCommonOffsetParent';\nimport { getFixedPositionOffsetParent } from './getFixedPositionOffsetParent';\nimport { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';\nimport { getParentNode } from './getParentNode';\nimport { getScrollParent } from './getScrollParent';\nimport { getViewportOffsetRectRelativeToArtbitraryNode } from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport { getWindowSizes } from './getWindowSizes';\nimport { isFixed } from './isFixed';\nimport { isNumber } from './isNumeric';\n\nexport function getBoundaries(\n target: HTMLElement,\n host: HTMLElement,\n padding = 0,\n boundariesElement: string,\n fixedPosition = false\n): Partial<Offsets> {\n // NOTE: 1 DOM access here\n\n let boundaries: Partial<Offsets> = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(target) : findCommonOffsetParent(target, host);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(host));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = target.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = target.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (offsets && boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(target.ownerDocument);\n if (isNumber(boundaries.top) && isNumber(offsets.top) && isNumber(offsets.marginTop)) {\n boundaries.top += offsets.top - offsets.marginTop;\n }\n if (isNumber(boundaries.top)) {\n boundaries.bottom = Number(height) + Number(offsets.top);\n }\n if (isNumber(boundaries.left) && isNumber(offsets.left) && isNumber(offsets.marginLeft)) {\n boundaries.left += offsets.left - offsets.marginLeft;\n }\n if (isNumber(boundaries.top)) {\n boundaries.right = Number(width) + Number(offsets.left);\n }\n } else if (offsets) {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n if (isNumber(boundaries.left)) {\n boundaries.left += padding;\n }\n if (isNumber(boundaries.top)) {\n boundaries.top += padding;\n }\n if (isNumber(boundaries.right)) {\n boundaries.right -= padding;\n }\n if (isNumber(boundaries.bottom)) {\n boundaries.bottom -= padding;\n }\n\n return boundaries;\n}\n","/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n */\nimport { getBoundaries } from './getBoundaries';\nimport { Offsets, PlacementForBs5 } from '../models';\nimport { getBsVer } from 'ngx-bootstrap/utils';\n\nfunction getArea({ width, height }: { width: number, height: number }) {\n return width * height;\n}\n\nexport function computeAutoPlacement(\n placement: string,\n refRect: Offsets,\n target: HTMLElement,\n host: HTMLElement,\n allowedPositions = ['top', 'bottom', 'right', 'left'],\n boundariesElement = 'viewport',\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(target, host, padding, boundariesElement);\n\n type Rects = {top: Offsets, right: Offsets, bottom: Offsets, left: Offsets};\n const rects: Rects = {\n top: {\n width: boundaries.width ?? 0,\n height: refRect.top && boundaries.top ? refRect.top - boundaries.top : 0\n },\n right: {\n width: boundaries.right && refRect.right ? boundaries.right - refRect.right : 0,\n height: boundaries.height ?? 0\n },\n bottom: {\n width: boundaries.width ?? 0,\n height: boundaries.bottom && refRect.bottom ? boundaries.bottom - refRect.bottom: 0\n },\n left: {\n width: refRect.left && boundaries.left ? refRect.left - boundaries.left : 0,\n height: boundaries.height ?? 0\n }\n };\n\n const sortedAreas = Object.keys(rects)\n .map((key) => ({\n key,\n ...rects[key as keyof Rects],\n area: getArea(rects[key as keyof Rects] as {width: number, height: number})\n }))\n .sort((a, b) => b.area - a.area);\n\n let filteredAreas = sortedAreas.filter(\n ({ width, height }) => {\n return width >= target.clientWidth\n && height >= target.clientHeight;\n }\n );\n\n filteredAreas = filteredAreas.filter((position) => {\n return allowedPositions\n .some((allowedPosition: string) => {\n return allowedPosition === position.key;\n });\n });\n\n const computedPlacement: string = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split(' ')[1];\n // for tooltip on auto position\n target.className = target.className.replace(/bs-tooltip-auto/g, `bs-tooltip-${getBsVer().isBs5 ? PlacementForBs5[computedPlacement as keyof typeof PlacementForBs5] : computedPlacement}`);\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import { Data, Offsets } from '../models';\n\nexport function getOffsets(data: Data): Offsets {\n return {\n width: data.offsets.target.width,\n height: data.offsets.target.height,\n left: Math.floor(data.offsets.target.left ?? 0),\n top: Math.round(data.offsets.target.top ?? 0),\n bottom: Math.round(data.offsets.target.bottom ?? 0),\n right: Math.floor(data.offsets.target.right ?? 0)\n };\n}\n","/**\n * Get the opposite placement of the given one\n */\nexport function getOppositePlacement(placement: string): string {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched as keyof typeof hash]);\n}\n","/**\n * Get the opposite placement variation of the given one\n */\nexport function getOppositeVariation(variation: string) {\n if (variation === 'right') {\n return 'left';\n } else if (variation === 'left') {\n return 'right';\n }\n\n return variation;\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n */\nimport { Offsets } from '../models';\n\nconst parse = (value?: string, def = 0) => value ? parseFloat(value) : def;\nexport function getOuterSizes(element: HTMLElement): Offsets {\n const window = element.ownerDocument.defaultView;\n const styles = window?.getComputedStyle(element);\n const x = parse(styles?.marginTop) + parse(styles?.marginBottom);\n const y = parse(styles?.marginLeft) + parse(styles?.marginRight);\n\n return {\n width: Number(element.offsetWidth) + y,\n height: Number(element.offsetHeight) + x\n };\n}\n","/**\n * Get offsets to the reference element\n */\nimport { findCommonOffsetParent } from './findCommonOffsetParent';\nimport { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';\nimport { getFixedPositionOffsetParent } from './getFixedPositionOffsetParent';\nimport { Offsets } from '../models';\n\nexport function getReferenceOffsets(\n target: HTMLElement,\n host: HTMLElement,\n fixedPosition?: boolean\n): Offsets {\n const commonOffsetParent = fixedPosition\n ? getFixedPositionOffsetParent(target)\n : findCommonOffsetParent(target, host);\n\n return getOffsetRectRelativeToArbitraryNode(host, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get offsets to the target\n */\nimport { getOppositePlacement } from './getOppositePlacement';\nimport { getOuterSizes } from './getOuterSizes';\nimport { Offsets } from '../models';\n\n\nexport function getTargetOffsets(\n target: HTMLElement,\n hostOffsets: Offsets,\n position: string\n): Offsets {\n const placement = position.split(' ')[0];\n // Get target node sizes\n const targetRect = getOuterSizes(target);\n\n // Add position, width and height to our offsets object\n const targetOffsets = {\n width: targetRect.width,\n height: targetRect.height\n };\n\n // depending by the target placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n targetOffsets[mainSide as keyof typeof targetOffsets] =\n (hostOffsets[mainSide] ?? 0) +\n hostOffsets[measurement] / 2 -\n targetRect[measurement] / 2;\n\n targetOffsets[secondarySide as keyof typeof targetOffsets] = placement === secondarySide\n ? (hostOffsets[secondarySide] ?? 0)- targetRect[secondaryMeasurement]\n : hostOffsets[getOppositePlacement(secondarySide) as keyof typeof hostOffsets] ?? 0;\n\n return targetOffsets;\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n */\nimport { Options } from '../models';\n\nexport function isModifierEnabled(options: Options, modifierName: string): boolean {\n return !!options.modifiers[modifierName as keyof typeof options.modifiers]?.enabled;\n}\n","import { getBsVer } from 'ngx-bootstrap/utils';\nimport { AvailbleBSPositions } from '../models';\n\nconst availablePositions = {\n top: ['top', 'top start', 'top end'],\n bottom: ['bottom', 'bottom start', 'bottom end'],\n start: ['start', 'start top', 'start bottom'],\n end: ['end', 'end top', 'end bottom']\n};\n\nexport function checkPopoverMargin(placement: AvailbleBSPositions, checkPosition: 'top' | 'bottom' | 'start' | 'end'): boolean {\n if (!getBsVer().isBs5) {\n return false;\n }\n\n return availablePositions[checkPosition].includes(placement);\n}\n\nexport function checkMargins(placement: any): string {\n if (!getBsVer().isBs5) {\n return '';\n }\n\n if (checkPopoverMargin(placement, 'end')) {\n return 'ms-2';\n }\n\n if (checkPopoverMargin(placement, 'start')) {\n return 'me-2';\n }\n\n if (checkPopoverMargin(placement, 'top')) {\n return 'mb-2';\n }\n\n if (checkPopoverMargin(placement, 'bottom')) {\n return 'mt-2';\n }\n\n return '';\n}\n","/**\n * Update class for the given popper\n */\nimport { Renderer2 } from '@angular/core';\nimport { Data, PlacementForBs5 } from '../models';\nimport { checkMargins } from './checkMargin';\nimport { getBsVer } from 'ngx-bootstrap/utils';\n\nexport function updateContainerClass(data: Data, renderer?: Renderer2): void {\n const target = data.instance.target;\n\n let containerClass = target.className;\n\n const dataPlacement = getBsVer().isBs5 ? PlacementForBs5[data.placement as keyof typeof PlacementForBs5] : data.placement;\n if (data.placementAuto) {\n containerClass = containerClass.replace(/bs-popover-auto/g, `bs-popover-${dataPlacement}`);\n containerClass = containerClass.replace(/ms-2|me-2|mb-2|mt-2/g, '');\n containerClass = containerClass.replace(/bs-tooltip-auto/g, `bs-tooltip-${dataPlacement}`);\n containerClass = containerClass.replace(/\\sauto/g, ` ${dataPlacement}`);\n\n if (containerClass.indexOf('popover') !== -1) {\n containerClass = containerClass + ' ' + checkMargins(dataPlacement);\n }\n\n if (containerClass.indexOf('popover') !== -1 && containerClass.indexOf('popover-auto') === -1) {\n containerClass += ' popover-auto';\n }\n\n if (containerClass.indexOf('tooltip') !== -1 && containerClass.indexOf('tooltip-auto') === -1) {\n containerClass += ' tooltip-auto';\n }\n }\n containerClass = containerClass.replace(/left|right|top|bottom|end|start/g, `${dataPlacement.split(' ')[0]}`);\n\n if (renderer) {\n renderer.setAttribute(target, 'class', containerClass);\n\n return;\n }\n\n target.className = containerClass;\n}\n","/**\n * Set the style to the given popper\n */\nimport { Renderer2 } from '@angular/core';\n\nimport { isNumeric } from './isNumeric';\n\nexport function setStyles(element: HTMLElement | null, styles?: Record<string, string|number|HTMLElement>, renderer?: Renderer2) {\n if (!element || !styles) {\n return;\n }\n Object.keys(styles).forEach((prop) => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 &&\n isNumeric(styles[prop] as string)) {\n unit = 'px';\n }\n\n if (renderer) {\n renderer.setStyle(element, prop, `${String(styles[prop])}${unit}`);\n\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (element.style as any)[prop] = String(styles[prop]) + unit;\n });\n}\n","import { getClientRect, getOuterSizes, getStyleComputedProperty } from '../utils';\nimport { Data } from '../models';\n\nexport function arrow(data: Data) {\n let targetOffsets = data.offsets.target;\n // if arrowElement is a string, suppose it's a CSS selector\n const arrowElement: HTMLElement | null = data.instance.target.querySelector('.arrow');\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n\n const isVertical = ['left', 'right'].indexOf(data.placement.split(' ')[0]) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase() as keyof typeof targetOffsets;\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n const placementVariation = data.placement.split(' ')[1];\n\n // top/left side\n if ((data.offsets.host[opSide] ?? 0) - arrowElementSize < (targetOffsets[side] ?? 0)) {\n (targetOffsets)[side] -=\n (targetOffsets[side] ?? 0) - ((data.offsets.host[opSide] ?? 0) - arrowElementSize);\n }\n // bottom/right side\n if (Number((data).offsets.host[side]) + Number(arrowElementSize) > (targetOffsets[opSide] ?? 0)) {\n (targetOffsets)[side] +=\n Number((data).offsets.host[side]) + Number(arrowElementSize) - Number((targetOffsets)[opSide]);\n }\n targetOffsets = getClientRect(targetOffsets);\n\n // Compute the sideValue using the updated target offsets\n // take target margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.target) as unknown as Record<string, string>;\n const targetMarginSide = parseFloat(css[`margin${sideCapitalized}`]) || 0;\n const targetBorderSide = parseFloat(css[`border${sideCapitalized}Width`]) || 0;\n\n // compute center of the target\n let center: number;\n if (!placementVariation) {\n center = Number((data).offsets.host[side]) + Number(data.offsets.host[len] / 2 - arrowElementSize / 2);\n } else {\n const targetBorderRadius = parseFloat(css[\"borderRadius\"]) || 0;\n const targetSideArrowOffset = Number(targetMarginSide + targetBorderSide + targetBorderRadius);\n center = side === placementVariation ?\n Number((data).offsets.host[side]) + targetSideArrowOffset :\n Number((data).offsets.host[side]) + Number(data.offsets.host[len] - targetSideArrowOffset);\n }\n\n let sideValue =\n center - (targetOffsets[side] ?? 0) - targetMarginSide - targetBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its target\n sideValue = Math.max(Math.min(targetOffsets[len] - (arrowElementSize + 5), sideValue), 0);\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '' // make sure to unset any eventual altSide value from the DOM node\n };\n\n data.instance.arrow = arrowElement;\n\n return data;\n}\n","import { Data } from '../models';\nimport {\n computeAutoPlacement,\n getBoundaries,\n getClientRect,\n getOppositeVariation,\n getTargetOffsets,\n isModifierEnabled\n} from '../utils';\n\nexport function flip(data: Data): Data {\n data.offsets.target = getClientRect(data.offsets.target);\n\n if (!isModifierEnabled(data.options, 'flip')) {\n\n data.offsets.target = {\n ...data.offsets.target,\n ...getTargetOffsets(\n data.instance.target,\n data.offsets.host,\n data.placement\n )\n };\n\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.target,\n data.instance.host,\n 0, // padding\n 'viewport',\n false // positionFixed\n );\n\n let placement = data.placement.split(' ')[0];\n let variation = data.placement.split(' ')[1] || '';\n\n const offsetsHost = data.offsets.host;\n const target = data.instance.target;\n const host = data.instance.host;\n\n const adaptivePosition = computeAutoPlacement('auto', offsetsHost, target, host, data.options.allowedPositions);\n const flipOrder = [placement, adaptivePosition];\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return;\n }\n\n placement = data.placement.split(' ')[0];\n\n // using floor because the host offsets may contain decimals we are not going to consider here\n const overlapsRef =\n (placement === 'left' &&\n Math.floor(data.offsets.target.right ?? 0) > Math.floor(data.offsets.host.left ?? 0)) ||\n (placement === 'right' &&\n Math.floor(data.offsets.target.left ?? 0) < Math.floor(data.offsets.host.right ?? 0)) ||\n (placement === 'top' &&\n Math.floor(data.offsets.target.bottom ?? 0) > Math.floor(data.offsets.host.top ?? 0)) ||\n (placement === 'bottom' &&\n Math.floor(data.offsets.target.top ?? 0) < Math.floor(data.offsets.host.bottom ?? 0));\n\n const overflowsLeft = Math.floor(data.offsets.target.left ?? 0) < Math.floor(boundaries.left ?? 0);\n const overflowsRight = Math.floor(data.offsets.target.right ?? 0) > Math.floor(boundaries.right ?? 0);\n const overflowsTop = Math.floor(data.offsets.target.top ?? 0) < Math.floor(boundaries.top ?? 0);\n const overflowsBottom = Math.floor(data.offsets.target.bottom ?? 0) > Math.floor(boundaries.bottom ?? 0);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const flippedVariation =\n ((isVertical && variation === 'left' && overflowsLeft) ||\n (isVertical && variation === 'right' && overflowsRight) ||\n (!isVertical && variation === 'left' && overflowsTop) ||\n (!isVertical && variation === 'right' && overflowsBottom));\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? ` ${variation}` : '');\n\n data.offsets.target = {\n ...data.offsets.target,\n ...getTargetOffsets(\n data.instance.target,\n data.offsets.host,\n data.placement\n )\n };\n }\n });\n\n return data;\n}\n","import {\n computeAutoPlacement,\n getReferenceOffsets,\n getTargetOffsets\n} from '../utils';\n\nimport { Data, Options } from '../models';\n\nexport function initData(\n targetElement: HTMLElement|null, hostElement: HTMLElement|null, position: string, options?: Options\n): Data|undefined {\n\n if (!targetElement || !hostElement) {\n return ;\n }\n\n const hostElPosition = getReferenceOffsets(targetElement, hostElement);\n\n if (!position.match(/^(auto)*\\s*(left|right|top|bottom|start|end)*$/)\n && !position.match(/^(left|right|top|bottom|start|end)*(?: (left|right|top|bottom|start|end))*$/)) {\n position = 'auto';\n }\n\n const placementAuto = !!position.match(/auto/g);\n\n // support old placements 'auto left|right|top|bottom'\n let placement = position.match(/auto\\s(left|right|top|bottom|start|end)/)\n ? position.split(' ')[1] || 'auto'\n : position;\n\n // Normalize placements that have identical main placement and variation (\"right right\" => \"right\").\n const matches = placement.match(/^(left|right|top|bottom|start|end)* ?(?!\\1)(left|right|top|bottom|start|end)?/);\n if (matches) {\n placement = matches[1] + (matches[2] ? ` ${matches[2]}` : '');\n }\n\n // \"left right\", \"top bottom\" etc. placements also considered incorrect.\n if (['left right', 'right left', 'top bottom', 'bottom top'].indexOf(placement) !== -1) {\n placement = 'auto';\n }\n\n placement = computeAutoPlacement(\n placement,\n hostElPosition,\n targetElement,\n hostElement,\n options ? options.allowedPositions : undefined\n );\n\n const targetOffset = getTargetOffsets(targetElement, hostElPosition, placement);\n\n return {\n options: options || {modifiers: {}},\n instance: {\n target: targetElement,\n host: hostElement,\n arrow: void 0\n },\n offsets: {\n target: targetOffset,\n host: hostElPosition,\n arrow: void 0\n },\n positionFixed: false,\n placement,\n placementAuto\n };\n}\n","import { getBoundaries, isModifierEnabled } from '../utils';\nimport { Data, Offsets } from '../models';\n\nexport function preventOverflow(data: Data) {\n\n if (!isModifierEnabled(data.options, 'preventOverflow')) {\n return data;\n }\n\n // NOTE: DOM access here\n // resets the target Offsets's position so that the document size can be calculated excluding\n // the size of the targetOffsets element itself\n const transformProp = 'transform';\n const targetStyles = data.instance.target.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = targetStyles;\n targetStyles.top = '';\n targetStyles.left = '';\n targetStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.target,\n data.instance.host,\n 0, // padding\n data.options.modifiers.preventOverflow?.boundariesElement || 'scrollParent',\n false // positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n targetStyles.top = top;\n targetStyles.left = left;\n targetStyles[transformProp] = transform;\n\n const order = ['left', 'right', 'top', 'bottom'];\n\n const check = {\n primary(placement: keyof Offsets) {\n let value = data.offsets.target[placement];\n // options.escapeWithReference\n if ((data.offsets.target[placement] ?? 0) < (boundaries[placement] ?? 0)) {\n value = Math.max(data.offsets.target[placement] ?? 0, boundaries[placement] ?? 0);\n }\n\n return { [placement]: value };\n },\n secondary(placement: keyof Offsets) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = data.offsets.target[mainSide];\n\n // escapeWithReference\n if ((data.offsets.target[placement] ?? 0) < (boundaries[placement] ?? 0) && placement !== 'right') {\n value = Math.min(\n data.offsets.target[mainSide] ?? 0,\n (boundaries[placement] ?? 0) - data.offsets.target.height);\n }\n\n if ((data.offsets.target[placement] ?? 0) > (boundaries[placement] ?? 0) && placement === 'right') {\n value = Math.min(\n data.offsets.target[mainSide] ?? 0,\n (boundaries[placement] ?? 0) - data.offsets.target.width);\n }\n\n return { [mainSide]: value };\n }\n };\n\n\n order.forEach((placement ) => {\n const side = ['left', 'top', 'start'].indexOf(placement) !== -1 ? check['primary'] : check['secondary'];\n\n data.offsets.target = {\n ...data.offsets.target,\n ...side(placement as keyof Offsets)\n };\n\n });\n\n return data;\n}\n","import { Data } from '../models';\n\nexport function shift(data: Data): Data {\n const placement = data.placement;\n const basePlacement = placement.split(' ')[0];\n const shiftVariation = placement.split(' ')[1];\n\n if (shiftVariation) {\n const { host, target } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: host[side] },\n end: {\n [side]: (host[side] ?? 0) + host[measurement] - target[measurement]\n }\n };\n\n data.offsets.target = {\n ...target, ...{\n [side]: (side === shiftVariation ? shiftOffsets.start[side] : shiftOffsets.end[side])\n }\n };\n }\n\n return data;\n}\n","/**\n * @copyright Valor Software\n * @copyright Federico Zivolo and contributors\n */\nimport { Renderer2 } from '@angular/core';\nimport { Data, Offsets, Options, MapPlacementInToRL } from './models';\n\nimport { arrow, flip, initData, preventOverflow, shift } from './modifiers';\n\nimport { getOffsets, getReferenceOffsets, setStyles, updateContainerClass } from './utils';\n\n\nexport class Positioning {\n position(hostElement: HTMLElement, targetElement: HTMLElement/*, round = true*/): Offsets | undefined {\n return this.offset(hostElement, targetElement/*, false*/);\n }\n\n offset(hostElement: HTMLElement, targetElement: HTMLElement/*, round = true*/): Offsets | undefined {\n return getReferenceOffsets(targetElement, hostElement);\n }\n\n positionElements(\n hostElement: HTMLElement | null,\n targetElement: HTMLElement | null,\n position: string,\n appendToBody?: boolean,\n options?: Options\n ): Data | undefined {\n const chainOfModifiers = [flip, shift, preventOverflow, arrow];\n const _position = MapPlacementInToRL[position as keyof typeof MapPlacementInToRL];\n const data = initData(targetElement, hostElement, _position, options);\n if (!data) {\n return;\n }\n\n return chainOfModifiers.reduce(\n (modifiedData, modifier) => modifier(modifiedData),\n data\n );\n }\n}\n\nconst positionService = new Positioning();\n\nexport function positionElements(\n hostElement: HTMLElement | null,\n targetElement: HTMLElement | null,\n placement: string,\n appendToBody?: boolean,\n options?: Options,\n renderer?: Renderer2\n): void {\n\n const data = positionService.positionElements(\n hostElement,\n targetElement,\n placement,\n appendToBody,\n options\n );\n\n if (!data) {\n return;\n }\n\n const offsets = getOffsets(data);\n\n setStyles(targetElement, {\n 'will-change': 'transform',\n top: '0px',\n left: '0px',\n transform: `translate3d(${offsets.left}px, ${offsets.top}px, 0px)`\n }, renderer);\n\n if (data.instance.arrow) {\n setStyles(data.instance.arrow, data.offsets.arrow, renderer);\n }\n\n updateContainerClass(data, renderer);\n}\n","import { Injectable, ElementRef, RendererFactory2, Inject, PLATFORM_ID, NgZone } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nimport { positionElements } from './ng-positioning';\n\nimport { fromEvent, merge, of, animationFrameScheduler, Subject, Observable } from 'rxjs';\nimport { Options } from './models';\n\n\nexport interface PositioningOptions {\n /** The DOM element, ElementRef, or a selector string of an element which will be moved */\n element?: HTMLElement | ElementRef | string;\n\n /** The DOM element, ElementRef, or a selector string of an element which the element will be attached to */\n target?: HTMLElement | ElementRef | string;\n\n /**\n * A string of the form 'vert-attachment horiz-attachment' or 'placement'\n * - placement can be \"top\", \"bottom\", \"left\", \"right\"\n * not yet supported:\n * - vert-attachment can be any of 'top', 'middle', 'bottom'\n * - horiz-attachment can be any of 'left', 'center', 'right'\n */\n attachment?: string;\n\n /** A string similar to `attachment`. The one difference is that, if it's not provided,\n * `targetAttachment` will assume the mirror image of `attachment`.\n */\n targetAttachment?: string;\n\n /** A string of the form 'vert-offset horiz-offset'\n * - vert-offset and horiz-offset can be of the form \"20px\" or \"55%\"\n */\n offset?: string;\n\n /** A string similar to `offset`, but referring to the offset of the target */\n targetOffset?: string;\n\n /** If true component will be attached to body */\n appendToBody?: boolean;\n}\n\n\n@Injectable({providedIn: 'root'})\nexport class PositioningService {\n private options?: Options;\n private update$$ = new Subject<null>();\n private positionElements = new Map();\n private triggerEvent$?: Observable<number|Event|null>;\n private isDisabled = false;\n\n constructor(\n ngZone: NgZone,\n rendererFactory: RendererFactory2,\n @Inject(PLATFORM_ID) platformId: number\n ) {\n\n if (isPlatformBrowser(platformId)) {\n ngZone.runOutsideAngular(() => {\n this.triggerEvent$ = merge(\n fromEvent(window, 'scroll', { passive: true }),\n fromEvent(window, 'resize', { passive: true }),\n of(0, animationFrameScheduler),\n this.update$$\n );\n\n this.triggerEvent$.subscribe(() => {\n if (this.isDisabled) {\n return;\n }\n\n this.positionElements\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .forEach((positionElement: any) => {\n positionElements(\n _getHtmlElement(positionElement.target),\n _getHtmlElement(positionElement.element),\n positionElement.attachment,\n positionElement.appendToBody,\n this.options,\n rendererFactory.createRenderer(null, null)\n );\n });\n });\n });\n }\n }\n\n position(options: PositioningOptions): void {\n this.addPositionElement(options);\n }\n\n get event$(): Observable<number|Event|null>|undefined {\n return this.triggerEvent$;\n }\n\n disable(): void {\n this.isDisabled = true;\n }\n\n enable(): void {\n this.isDisabled = false;\n }\n\n addPositionElement(options: PositioningOptions): void {\n this.positionElements.set(_getHtmlElement(options.element), options);\n }\n\n calcPosition(): void {\n this.update$$.next(null);\n }\n\n deletePositionElement(elRef: ElementRef): void {\n this.positionElements.delete(_getHtmlElement(elRef));\n }\n\n setOptions(options: Options) {\n this.options = options;\n }\n}\n\nfunction _getHtmlElement(element?: HTMLElement | ElementRef | string): HTMLElement | null {\n // it means that we got a selector\n if (typeof element === 'string') {\n return document.querySelector(element);\n }\n\n if (element instanceof ElementRef) {\n return element.nativeElement;\n }\n\n return element ?? null;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-bootstrap-positioning.mjs","sources":["../../../../src/positioning/models/index.ts","../../../../src/positioning/utils/getStyleComputedProperty.ts","../../../../src/positioning/utils/getOffsetParent.ts","../../../../src/positioning/utils/isOffsetContainer.ts","../../../../src/positioning/utils/getRoot.ts","../../../../src/positioning/utils/findCommonOffsetParent.ts","../../../../src/positioning/utils/getFixedPositionOffsetParent.ts","../../../../src/positioning/utils/getBordersSize.ts","../../../../src/positioning/utils/getWindowSizes.ts","../../../../src/positioning/utils/getClientRect.ts","../../../../src/positioning/utils/isNumeric.ts","../../../../src/positioning/utils/getBoundingClientRect.ts","../../../../src/positioning/utils/getParentNode.ts","../../../../src/positioning/utils/getScrollParent.ts","../../../../src/positioning/utils/getOffsetRectRelativeToArbitraryNode.ts","../../../../src/positioning/utils/getScroll.ts","../../../../src/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.ts","../../../../src/positioning/utils/isFixed.ts","../../../../src/positioning/utils/getBoundaries.ts","../../../../src/positioning/utils/computeAutoPlacement.ts","../../../../src/positioning/utils/getOffsets.ts","../../../../src/positioning/utils/getOppositePlacement.ts","../../../../src/positioning/utils/getOppositeVariation.ts","../../../../src/positioning/utils/getOuterSizes.ts","../../../../src/positioning/utils/getReferenceOffsets.ts","../../../../src/positioning/utils/getTargetOffsets.ts","../../../../src/positioning/utils/isModifierEnabled.ts","../../../../src/positioning/utils/checkMargin.ts","../../../../src/positioning/utils/updateContainerClass.ts","../../../../src/positioning/utils/setStyles.ts","../../../../src/positioning/modifiers/arrow.ts","../../../../src/positioning/modifiers/flip.ts","../../../../src/positioning/modifiers/initData.ts","../../../../src/positioning/modifiers/preventOverflow.ts","../../../../src/positioning/modifiers/shift.ts","../../../../src/positioning/ng-positioning.ts","../../../../src/positioning/positioning.service.ts","../../../../src/positioning/ngx-bootstrap-positioning.ts"],"sourcesContent":["export interface Offsets {\n width: number;\n height: number;\n bottom?: number;\n left?: number;\n right?: number;\n top?: number;\n marginTop?: number;\n marginLeft?: number;\n}\n\nexport interface Data {\n options: Options;\n instance: {\n target: HTMLElement;\n host: HTMLElement;\n arrow?: HTMLElement;\n };\n offsets: {\n target: Offsets;\n host: Offsets;\n arrow?: Record<string, string | number | HTMLElement>;\n };\n positionFixed: boolean;\n placement: string;\n placementAuto: boolean;\n}\n\nexport interface Options {\n placement?: string;\n modifiers: {\n flip?: {\n enabled: boolean;\n };\n preventOverflow?: {\n enabled: boolean;\n boundariesElement?: string;\n };\n };\n allowedPositions?: string[];\n}\n\nexport enum MapPlacementInToRL {\n top = 'top',\n bottom = 'bottom',\n left = 'left',\n right = 'right',\n auto = 'auto',\n end = 'right',\n start = 'left',\n 'top left' = 'top left',\n 'top right' = 'top right',\n 'right top' = 'right top',\n 'right bottom' = 'right bottom',\n 'bottom right' = 'bottom right',\n 'bottom left' = 'bottom left',\n 'left bottom' = 'left bottom',\n 'left top' = 'left top',\n 'top start' = 'top left',\n 'top end' = 'top right',\n 'end top' = 'right top',\n 'end bottom' = 'right bottom',\n 'bottom end' = 'bottom right',\n 'bottom start' = 'bottom left',\n 'start bottom' = 'start bottom',\n 'start top' = 'left top',\n}\n\nexport enum PlacementForBs5 {\n top = 'top',\n bottom = 'bottom',\n left = 'start',\n right = 'end',\n auto = 'auto',\n end = 'end',\n start = 'start',\n 'top left' = 'top start',\n 'top right' = 'top end',\n 'right top' = 'end top',\n 'right bottom' = 'end bottom',\n 'bottom right' = 'bottom end',\n 'bottom left' = 'bottom start',\n 'left bottom' = 'start bottom',\n 'left top' = 'start top',\n 'top start' = 'top start',\n 'top end' = 'top end',\n 'end top' = 'end top',\n 'end bottom' = 'end bottom',\n 'bottom end' = 'bottom end',\n 'bottom start' = 'bottom start',\n 'start bottom' = 'start bottom',\n 'start top' = 'start top',\n}\n\nexport type AvailbleBSPositions = 'top' | 'bottom' | 'left' | 'right' | 'auto' | 'top left' | 'top right' | 'right top' | 'right bottom' | 'bottom right' | 'bottom left' | 'left bottom' | 'left top' | 'start' | 'end' | 'top start' | 'top end' | 'end top' | 'end bottom' | 'bottom end' | 'bottom start' | 'start bottom' | 'start top';\n\n","/**\n * Get CSS computed property of the given element\n */\nexport function getStyleComputedProperty(element: Element): CSSStyleDeclaration;\nexport function getStyleComputedProperty(element: Element, property?: string): string | string[];\nexport function getStyleComputedProperty(element: Element, property?: string): string | string[] | CSSStyleDeclaration {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window?.getComputedStyle(element, null);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return property ? css && css[property] : css;\n}\n","/**\n * Returns the offset parent of the given element\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\n\nexport function getOffsetParent(element: HTMLElement): HTMLElement {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element?.offsetParent;\n\n // Skip hidden elements which don't have an offsetParent\n let sibling: HTMLElement | undefined = void 0;\n\n while (offsetParent === noOffsetParent\n && element.nextElementSibling\n && sibling !== element.nextElementSibling) {\n\n // todo: valorkin fix\n sibling = element.nextElementSibling as HTMLElement;\n offsetParent = sibling.offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return sibling ? sibling.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n if (\n offsetParent &&\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent as HTMLElement);\n }\n\n return offsetParent as HTMLElement;\n}\n","import { getOffsetParent } from './getOffsetParent';\n\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isOffsetContainer(element: any) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n */\nexport function getRoot(node: Node|ShadowRoot): Node|ShadowRoot {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","/**\n * Finds the offset parent common to the two provided nodes\n */\nimport { isOffsetContainer } from './isOffsetContainer';\nimport { getRoot } from './getRoot';\nimport { getOffsetParent } from './getOffsetParent';\n\nexport function findCommonOffsetParent(element1: HTMLElement, element2: HTMLElement): HTMLElement {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n\n // todo: valorkin fix\n const commonAncestorContainer = range.commonAncestorContainer as unknown as HTMLElement;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1) as ShadowRoot;\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host as HTMLElement, element2);\n } else {\n return findCommonOffsetParent(element1, (getRoot(element2) as ShadowRoot).host as HTMLElement);\n }\n}\n","/**\n * Finds the first parent of an element that has a transformed property defined\n */\n\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\n\nexport function getFixedPositionOffsetParent(element: HTMLElement): HTMLElement {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement) {\n return document.documentElement;\n }\n\n let el = element.parentElement;\n\n while (el?.parentElement && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n\n return el || document.documentElement;\n}\n","/**\n * Helper to detect borders of a given element\n */\n\nexport function getBordersSize(styles: CSSStyleDeclaration, axis: string): number {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat((styles as never)[`border${sideA}Width`]) +\n parseFloat((styles as never)[`border${sideB}Width`])\n );\n}\n","function getSize(axis: string, body: HTMLElement, html: HTMLElement, computedStyle?: CSSStyleDeclaration) {\n const _body = body as unknown as Record<string, number>;\n const _html = html as never;\n const _computedStyle = computedStyle as unknown as Record<string, string>;\n\n return Math.max(\n _body[`offset${axis}`],\n _body[`scroll${axis}`],\n _html[`client${axis}`],\n _html[`offset${axis}`],\n _html[`scroll${axis}`],\n 0\n );\n}\n\nexport function getWindowSizes(document: Document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = void 0;\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n */\nimport { Offsets } from '../models';\n\nexport function getClientRect(offsets: Offsets): Offsets {\n return {\n ...offsets,\n right: (offsets.left || 0) + offsets.width,\n bottom: (offsets.top || 0) + offsets.height\n };\n}\n","/**\n * Tells if a given input is a number\n */\nexport function isNumeric(n: string): boolean {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(Number(n));\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isNumber(value?: any): value is number {\n return typeof value === 'number' || Object.prototype.toString.call(value) === '[object Number]';\n}\n","/**\n * Get bounding client rect of given element\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { getBordersSize } from './getBordersSize';\nimport { getWindowSizes } from './getWindowSizes';\nimport { getClientRect } from './getClientRect';\nimport { Offsets } from '../models';\nimport { isNumber } from './isNumeric';\n\nexport function getBoundingClientRect(element: HTMLElement): Offsets {\n const rect: Offsets = element.getBoundingClientRect();\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n // try {\n // if (isIE(10)) {\n // const scrollTop = getScroll(element, 'top');\n // const scrollLeft = getScroll(element, 'left');\n // if (rect && isNumber(rect.top) && isNumber(rect.left) && isNumber(rect.bottom) && isNumber(rect.right)) {\n // rect.top += scrollTop;\n // rect.left += scrollLeft;\n // rect.bottom += scrollTop;\n // rect.right += scrollLeft;\n // }\n // }\n // } catch (e) {\n // return rect;\n // }\n\n if (!(rect && isNumber(rect.top) && isNumber(rect.left) && isNumber(rect.bottom) && isNumber(rect.right))) {\n return rect;\n }\n\n const result: Offsets = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : undefined;\n const width = sizes?.width || element.clientWidth\n || isNumber(rect.right) && isNumber(result.left) && rect.right - result.left || 0;\n const height = sizes?.height || element.clientHeight\n || isNumber(rect.bottom) && isNumber(result.top) && rect.bottom - result.top || 0;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","/**\n * Returns the parentNode or the host of the element\n */\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getParentNode(element: any): any {\n if (element.nodeName === 'HTML') {\n return element;\n }\n\n return element.parentNode || element.host;\n}\n","/**\n * Returns the scrolling parent of the given element\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { getParentNode } from './getParentNode';\n\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getScrollParent(element: any): any {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n default:\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(String(overflow) + String(overflowY) + String(overflowX))) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","import { getBoundingClientRect } from './getBoundingClientRect';\nimport { getClientRect } from './getClientRect';\nimport { getScrollParent } from './getScrollParent';\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { includeScroll } from './includeScroll';\nimport { Offsets } from '../models';\nimport { isNumber } from './isNumeric';\n\nexport function getOffsetRectRelativeToArbitraryNode(\n children: HTMLElement,\n parent: HTMLElement,\n fixedPosition = false\n): Offsets {\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top ?? 0, 0);\n parentRect.left = Math.max(parentRect.left ?? 0, 0);\n }\n\n const offsets: Offsets = getClientRect({\n top: (childrenRect.top ?? 0) - (parentRect.top ?? 0) - borderTopWidth,\n left: (childrenRect.left ?? 0) - (parentRect.left ?? 0) - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n\n if (isNumber(offsets.top)) {\n offsets.top -= borderTopWidth - marginTop;\n }\n if (isNumber(offsets.bottom)) {\n offsets.bottom -= borderTopWidth - marginTop;\n }\n if (isNumber(offsets.left)) {\n offsets.left -= borderLeftWidth - marginLeft;\n }\n if (isNumber(offsets.right)) {\n offsets.right -= borderLeftWidth - marginLeft;\n }\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n return offsets;\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n */\nexport function getScroll(element: HTMLElement, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","import { getClientRect } from './getClientRect';\nimport { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';\nimport { getScroll } from './getScroll';\nimport { Offsets } from '../models';\n\nexport function getViewportOffsetRectRelativeToArtbitraryNode(element: HTMLElement, excludeScroll = false): Offsets {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - Number(relativeOffset?.top) + Number(relativeOffset?.marginTop),\n left: scrollLeft - Number(relativeOffset?.left) + Number(relativeOffset?.marginLeft),\n width,\n height\n };\n\n return getClientRect(offset);\n}\n","/**\n * Check if the given element is fixed or is inside a fixed parent\n */\nimport { getStyleComputedProperty } from './getStyleComputedProperty';\nimport { getParentNode } from './getParentNode';\n\nexport function isFixed(element: HTMLElement): boolean {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n\n return isFixed(getParentNode(element));\n}\n","/**\n * Computed the boundaries limits and return them\n */\nimport { Offsets } from '../models';\nimport { findCommonOffsetParent } from './findCommonOffsetParent';\nimport { getFixedPositionOffsetParent } from './getFixedPositionOffsetParent';\nimport { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';\nimport { getParentNode } from './getParentNode';\nimport { getScrollParent } from './getScrollParent';\nimport { getViewportOffsetRectRelativeToArtbitraryNode } from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport { getWindowSizes } from './getWindowSizes';\nimport { isFixed } from './isFixed';\nimport { isNumber } from './isNumeric';\n\nexport function getBoundaries(\n target: HTMLElement,\n host: HTMLElement,\n padding = 0,\n boundariesElement: string,\n fixedPosition = false\n): Partial<Offsets> {\n // NOTE: 1 DOM access here\n\n let boundaries: Partial<Offsets> = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(target) : findCommonOffsetParent(target, host);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(host));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = target.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = target.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (offsets && boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(target.ownerDocument);\n if (isNumber(boundaries.top) && isNumber(offsets.top) && isNumber(offsets.marginTop)) {\n boundaries.top += offsets.top - offsets.marginTop;\n }\n if (isNumber(boundaries.top)) {\n boundaries.bottom = Number(height) + Number(offsets.top);\n }\n if (isNumber(boundaries.left) && isNumber(offsets.left) && isNumber(offsets.marginLeft)) {\n boundaries.left += offsets.left - offsets.marginLeft;\n }\n if (isNumber(boundaries.top)) {\n boundaries.right = Number(width) + Number(offsets.left);\n }\n } else if (offsets) {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n if (isNumber(boundaries.left)) {\n boundaries.left += padding;\n }\n if (isNumber(boundaries.top)) {\n boundaries.top += padding;\n }\n if (isNumber(boundaries.right)) {\n boundaries.right -= padding;\n }\n if (isNumber(boundaries.bottom)) {\n boundaries.bottom -= padding;\n }\n\n return boundaries;\n}\n","/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n */\nimport { getBoundaries } from './getBoundaries';\nimport { Offsets, PlacementForBs5 } from '../models';\nimport { getBsVer } from 'ngx-bootstrap/utils';\n\nfunction getArea({ width, height }: { width: number; height: number }) {\n return width * height;\n}\n\nexport function computeAutoPlacement(\n placement: string,\n refRect: Offsets,\n target: HTMLElement,\n host: HTMLElement,\n allowedPositions = ['top', 'bottom', 'right', 'left'],\n boundariesElement = 'viewport',\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(target, host, padding, boundariesElement);\n\n type Rects = { top: Offsets; right: Offsets; bottom: Offsets; left: Offsets };\n const rects: Rects = {\n top: {\n width: boundaries?.width ?? 0,\n height: (refRect?.top ?? 0) - (boundaries?.top ?? 0)\n },\n right: {\n width: (boundaries?.right ?? 0) - (refRect?.right ?? 0),\n height: boundaries?.height ?? 0\n },\n bottom: {\n width: boundaries?.width ?? 0,\n height: (boundaries?.bottom ?? 0) - (refRect?.bottom ?? 0)\n },\n left: {\n width: (refRect.left ?? 0) - (boundaries?.left ?? 0),\n height: boundaries?.height ?? 0\n }\n };\n\n const sortedAreas = Object.keys(rects)\n .map((key) => ({\n position: key,\n ...rects[key as keyof Rects],\n area: getArea(rects[key as keyof Rects] as { width: number; height: number })\n }))\n .sort((a, b) => b.area - a.area);\n\n let filteredAreas = sortedAreas.filter(({ width, height }) => {\n return width >= target.clientWidth && height >= target.clientHeight;\n });\n\n filteredAreas = filteredAreas.filter(({ position }) => {\n return allowedPositions.some((allowedPosition: string) => {\n return allowedPosition === position;\n });\n });\n\n const computedPlacement: string = filteredAreas.length > 0 ? filteredAreas[0].position : sortedAreas[0].position;\n\n const variation = placement.split(' ')[1];\n // for tooltip on auto position\n target.className = target.className.replace(\n /bs-tooltip-auto/g,\n `bs-tooltip-${\n getBsVer().isBs5 ? PlacementForBs5[computedPlacement as keyof typeof PlacementForBs5] : computedPlacement\n }`\n );\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import { Data, Offsets } from '../models';\n\nexport function getOffsets(data: Data): Offsets {\n return {\n width: data.offsets.target.width,\n height: data.offsets.target.height,\n left: Math.floor(data.offsets.target.left ?? 0),\n top: Math.round(data.offsets.target.top ?? 0),\n bottom: Math.round(data.offsets.target.bottom ?? 0),\n right: Math.floor(data.offsets.target.right ?? 0)\n };\n}\n","/**\n * Get the opposite placement of the given one\n */\nexport function getOppositePlacement(placement: string): string {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched as keyof typeof hash]);\n}\n","/**\n * Get the opposite placement variation of the given one\n */\nexport function getOppositeVariation(variation: string) {\n if (variation === 'right') {\n return 'left';\n } else if (variation === 'left') {\n return 'right';\n }\n\n return variation;\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n */\nimport { Offsets } from '../models';\n\nconst parse = (value?: string, def = 0) => value ? parseFloat(value) : def;\nexport function getOuterSizes(element: HTMLElement): Offsets {\n const window = element.ownerDocument.defaultView;\n const styles = window?.getComputedStyle(element);\n const x = parse(styles?.marginTop) + parse(styles?.marginBottom);\n const y = parse(styles?.marginLeft) + parse(styles?.marginRight);\n\n return {\n width: Number(element.offsetWidth) + y,\n height: Number(element.offsetHeight) + x\n };\n}\n","/**\n * Get offsets to the reference element\n */\nimport { findCommonOffsetParent } from './findCommonOffsetParent';\nimport { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';\nimport { getFixedPositionOffsetParent } from './getFixedPositionOffsetParent';\nimport { Offsets } from '../models';\n\nexport function getReferenceOffsets(\n target: HTMLElement,\n host: HTMLElement,\n fixedPosition?: boolean\n): Offsets {\n const commonOffsetParent = fixedPosition\n ? getFixedPositionOffsetParent(target)\n : findCommonOffsetParent(target, host);\n\n return getOffsetRectRelativeToArbitraryNode(host, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get offsets to the target\n */\nimport { getOppositePlacement } from './getOppositePlacement';\nimport { getOuterSizes } from './getOuterSizes';\nimport { Offsets } from '../models';\n\n\nexport function getTargetOffsets(\n target: HTMLElement,\n hostOffsets: Offsets,\n position: string\n): Offsets {\n const placement = position.split(' ')[0];\n // Get target node sizes\n const targetRect = getOuterSizes(target);\n\n // Add position, width and height to our offsets object\n const targetOffsets = {\n width: targetRect.width,\n height: targetRect.height\n };\n\n // depending by the target placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n targetOffsets[mainSide as keyof typeof targetOffsets] =\n (hostOffsets[mainSide] ?? 0) +\n hostOffsets[measurement] / 2 -\n targetRect[measurement] / 2;\n\n targetOffsets[secondarySide as keyof typeof targetOffsets] = placement === secondarySide\n ? (hostOffsets[secondarySide] ?? 0)- targetRect[secondaryMeasurement]\n : hostOffsets[getOppositePlacement(secondarySide) as keyof typeof hostOffsets] ?? 0;\n\n return targetOffsets;\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n */\nimport { Options } from '../models';\n\nexport function isModifierEnabled(options: Options, modifierName: string): boolean {\n return !!options.modifiers[modifierName as keyof typeof options.modifiers]?.enabled;\n}\n","import { getBsVer } from 'ngx-bootstrap/utils';\nimport { AvailbleBSPositions } from '../models';\n\nconst availablePositions = {\n top: ['top', 'top start', 'top end'],\n bottom: ['bottom', 'bottom start', 'bottom end'],\n start: ['start', 'start top', 'start bottom'],\n end: ['end', 'end top', 'end bottom']\n};\n\nexport function checkPopoverMargin(placement: AvailbleBSPositions, checkPosition: 'top' | 'bottom' | 'start' | 'end'): boolean {\n if (!getBsVer().isBs5) {\n return false;\n }\n\n return availablePositions[checkPosition].includes(placement);\n}\n\nexport function checkMargins(placement: any): string {\n if (!getBsVer().isBs5) {\n return '';\n }\n\n if (checkPopoverMargin(placement, 'end')) {\n return 'ms-2';\n }\n\n if (checkPopoverMargin(placement, 'start')) {\n return 'me-2';\n }\n\n if (checkPopoverMargin(placement, 'top')) {\n return 'mb-2';\n }\n\n if (checkPopoverMargin(placement, 'bottom')) {\n return 'mt-2';\n }\n\n return '';\n}\n","/**\n * Update class for the given popper\n */\nimport { Renderer2 } from '@angular/core';\nimport { Data, PlacementForBs5 } from '../models';\nimport { checkMargins } from './checkMargin';\nimport { getBsVer } from 'ngx-bootstrap/utils';\n\nexport function updateContainerClass(data: Data, renderer?: Renderer2): void {\n const target = data.instance.target;\n\n let containerClass = target.className;\n\n const dataPlacement = getBsVer().isBs5 ? PlacementForBs5[data.placement as keyof typeof PlacementForBs5] : data.placement;\n if (data.placementAuto) {\n containerClass = containerClass.replace(/bs-popover-auto/g, `bs-popover-${dataPlacement}`);\n containerClass = containerClass.replace(/ms-2|me-2|mb-2|mt-2/g, '');\n containerClass = containerClass.replace(/bs-tooltip-auto/g, `bs-tooltip-${dataPlacement}`);\n containerClass = containerClass.replace(/\\sauto/g, ` ${dataPlacement}`);\n\n if (containerClass.indexOf('popover') !== -1) {\n containerClass = containerClass + ' ' + checkMargins(dataPlacement);\n }\n\n if (containerClass.indexOf('popover') !== -1 && containerClass.indexOf('popover-auto') === -1) {\n containerClass += ' popover-auto';\n }\n\n if (containerClass.indexOf('tooltip') !== -1 && containerClass.indexOf('tooltip-auto') === -1) {\n containerClass += ' tooltip-auto';\n }\n }\n containerClass = containerClass.replace(/left|right|top|bottom|end|start/g, `${dataPlacement.split(' ')[0]}`);\n\n if (renderer) {\n renderer.setAttribute(target, 'class', containerClass);\n\n return;\n }\n\n target.className = containerClass;\n}\n","/**\n * Set the style to the given popper\n */\nimport { Renderer2 } from '@angular/core';\n\nimport { isNumeric } from './isNumeric';\n\nexport function setStyles(element: HTMLElement | null, styles?: Record<string, string|number|HTMLElement>, renderer?: Renderer2) {\n if (!element || !styles) {\n return;\n }\n Object.keys(styles).forEach((prop) => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 &&\n isNumeric(styles[prop] as string)) {\n unit = 'px';\n }\n\n if (renderer) {\n renderer.setStyle(element, prop, `${String(styles[prop])}${unit}`);\n\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (element.style as any)[prop] = String(styles[prop]) + unit;\n });\n}\n","import { getClientRect, getOuterSizes, getStyleComputedProperty } from '../utils';\nimport { Data } from '../models';\n\nexport function arrow(data: Data) {\n let targetOffsets = data.offsets.target;\n // if arrowElement is a string, suppose it's a CSS selector\n const arrowElement: HTMLElement | null = data.instance.target.querySelector('.arrow');\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n\n const isVertical = ['left', 'right'].indexOf(data.placement.split(' ')[0]) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase() as keyof typeof targetOffsets;\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n const placementVariation = data.placement.split(' ')[1];\n\n // top/left side\n if ((data.offsets.host[opSide] ?? 0) - arrowElementSize < (targetOffsets[side] ?? 0)) {\n (targetOffsets)[side] -=\n (targetOffsets[side] ?? 0) - ((data.offsets.host[opSide] ?? 0) - arrowElementSize);\n }\n // bottom/right side\n if (Number((data).offsets.host[side]) + Number(arrowElementSize) > (targetOffsets[opSide] ?? 0)) {\n (targetOffsets)[side] +=\n Number((data).offsets.host[side]) + Number(arrowElementSize) - Number((targetOffsets)[opSide]);\n }\n targetOffsets = getClientRect(targetOffsets);\n\n // Compute the sideValue using the updated target offsets\n // take target margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.target) as unknown as Record<string, string>;\n const targetMarginSide = parseFloat(css[`margin${sideCapitalized}`]) || 0;\n const targetBorderSide = parseFloat(css[`border${sideCapitalized}Width`]) || 0;\n\n // compute center of the target\n let center: number;\n if (!placementVariation) {\n center = Number((data).offsets.host[side]) + Number(data.offsets.host[len] / 2 - arrowElementSize / 2);\n } else {\n const targetBorderRadius = parseFloat(css[\"borderRadius\"]) || 0;\n const targetSideArrowOffset = Number(targetMarginSide + targetBorderSide + targetBorderRadius);\n center = side === placementVariation ?\n Number((data).offsets.host[side]) + targetSideArrowOffset :\n Number((data).offsets.host[side]) + Number(data.offsets.host[len] - targetSideArrowOffset);\n }\n\n let sideValue =\n center - (targetOffsets[side] ?? 0) - targetMarginSide - targetBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its target\n sideValue = Math.max(Math.min(targetOffsets[len] - (arrowElementSize + 5), sideValue), 0);\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '' // make sure to unset any eventual altSide value from the DOM node\n };\n\n data.instance.arrow = arrowElement;\n\n return data;\n}\n","import { Data } from '../models';\nimport {\n computeAutoPlacement,\n getBoundaries,\n getClientRect,\n getOppositeVariation,\n getTargetOffsets,\n isModifierEnabled\n} from '../utils';\n\nexport function flip(data: Data): Data {\n data.offsets.target = getClientRect(data.offsets.target);\n\n if (!isModifierEnabled(data.options, 'flip')) {\n\n data.offsets.target = {\n ...data.offsets.target,\n ...getTargetOffsets(\n data.instance.target,\n data.offsets.host,\n data.placement\n )\n };\n\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.target,\n data.instance.host,\n 0, // padding\n 'viewport',\n false // positionFixed\n );\n\n let placement = data.placement.split(' ')[0];\n let variation = data.placement.split(' ')[1] || '';\n\n const offsetsHost = data.offsets.host;\n const target = data.instance.target;\n const host = data.instance.host;\n\n const adaptivePosition = computeAutoPlacement('auto', offsetsHost, target, host, data.options.allowedPositions);\n const flipOrder = [placement, adaptivePosition];\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return;\n }\n\n placement = data.placement.split(' ')[0];\n\n // using floor because the host offsets may contain decimals we are not going to consider here\n const overlapsRef =\n (placement === 'left' &&\n Math.floor(data.offsets.target.right ?? 0) > Math.floor(data.offsets.host.left ?? 0)) ||\n (placement === 'right' &&\n Math.floor(data.offsets.target.left ?? 0) < Math.floor(data.offsets.host.right ?? 0)) ||\n (placement === 'top' &&\n Math.floor(data.offsets.target.bottom ?? 0) > Math.floor(data.offsets.host.top ?? 0)) ||\n (placement === 'bottom' &&\n Math.floor(data.offsets.target.top ?? 0) < Math.floor(data.offsets.host.bottom ?? 0));\n\n const overflowsLeft = Math.floor(data.offsets.target.left ?? 0) < Math.floor(boundaries.left ?? 0);\n const overflowsRight = Math.floor(data.offsets.target.right ?? 0) > Math.floor(boundaries.right ?? 0);\n const overflowsTop = Math.floor(data.offsets.target.top ?? 0) < Math.floor(boundaries.top ?? 0);\n const overflowsBottom = Math.floor(data.offsets.target.bottom ?? 0) > Math.floor(boundaries.bottom ?? 0);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const flippedVariation =\n ((isVertical && variation === 'left' && overflowsLeft) ||\n (isVertical && variation === 'right' && overflowsRight) ||\n (!isVertical && variation === 'left' && overflowsTop) ||\n (!isVertical && variation === 'right' && overflowsBottom));\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? ` ${variation}` : '');\n\n data.offsets.target = {\n ...data.offsets.target,\n ...getTargetOffsets(\n data.instance.target,\n data.offsets.host,\n data.placement\n )\n };\n }\n });\n\n return data;\n}\n","import {\n computeAutoPlacement,\n getReferenceOffsets,\n getTargetOffsets\n} from '../utils';\n\nimport { Data, Options } from '../models';\n\nexport function initData(\n targetElement: HTMLElement|null, hostElement: HTMLElement|null, position: string, options?: Options\n): Data|undefined {\n\n if (!targetElement || !hostElement) {\n return ;\n }\n\n const hostElPosition = getReferenceOffsets(targetElement, hostElement);\n\n if (!position.match(/^(auto)*\\s*(left|right|top|bottom|start|end)*$/)\n && !position.match(/^(left|right|top|bottom|start|end)*(?: (left|right|top|bottom|start|end))*$/)) {\n position = 'auto';\n }\n\n const placementAuto = !!position.match(/auto/g);\n\n // support old placements 'auto left|right|top|bottom'\n let placement = position.match(/auto\\s(left|right|top|bottom|start|end)/)\n ? position.split(' ')[1] || 'auto'\n : position;\n\n // Normalize placements that have identical main placement and variation (\"right right\" => \"right\").\n const matches = placement.match(/^(left|right|top|bottom|start|end)* ?(?!\\1)(left|right|top|bottom|start|end)?/);\n if (matches) {\n placement = matches[1] + (matches[2] ? ` ${matches[2]}` : '');\n }\n\n // \"left right\", \"top bottom\" etc. placements also considered incorrect.\n if (['left right', 'right left', 'top bottom', 'bottom top'].indexOf(placement) !== -1) {\n placement = 'auto';\n }\n\n placement = computeAutoPlacement(\n placement,\n hostElPosition,\n targetElement,\n hostElement,\n options ? options.allowedPositions : undefined\n );\n\n const targetOffset = getTargetOffsets(targetElement, hostElPosition, placement);\n\n return {\n options: options || {modifiers: {}},\n instance: {\n target: targetElement,\n host: hostElement,\n arrow: void 0\n },\n offsets: {\n target: targetOffset,\n host: hostElPosition,\n arrow: void 0\n },\n positionFixed: false,\n placement,\n placementAuto\n };\n}\n","import { getBoundaries, isModifierEnabled } from '../utils';\nimport { Data, Offsets } from '../models';\n\nexport function preventOverflow(data: Data) {\n if (!isModifierEnabled(data.options, 'preventOverflow')) {\n return data;\n }\n\n // NOTE: DOM access here\n // resets the target Offsets's position so that the document size can be calculated excluding\n // the size of the targetOffsets element itself\n const transformProp = 'transform';\n const targetStyles = data.instance.target.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = targetStyles;\n targetStyles.top = '';\n targetStyles.left = '';\n targetStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.target,\n data.instance.host,\n 0, // padding\n data.options.modifiers.preventOverflow?.boundariesElement || 'scrollParent',\n false // positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n targetStyles.top = top;\n targetStyles.left = left;\n targetStyles[transformProp] = transform;\n\n const order = ['left', 'right', 'top', 'bottom'];\n\n const check = {\n primary(placement: keyof Offsets) {\n let value = data.offsets.target[placement];\n // options.escapeWithReference\n if ((data.offsets.target[placement] ?? 0) < (boundaries[placement] ?? 0)) {\n value = Math.max(data.offsets.target[placement] ?? 0, boundaries[placement] ?? 0);\n }\n\n return { [placement]: value };\n },\n secondary(placement: keyof Offsets) {\n const isPlacementHorizontal = placement === 'right';\n const mainSide = isPlacementHorizontal ? 'left' : 'top';\n const measurement = isPlacementHorizontal ? 'width' : 'height';\n let value = data.offsets.target[mainSide];\n\n // escapeWithReference\n if ((data.offsets.target[placement] ?? 0) > (boundaries[placement] ?? 0)) {\n value = Math.min(\n data.offsets.target[mainSide] ?? 0,\n (boundaries[placement] ?? 0) - data.offsets.target[measurement]\n );\n }\n\n return { [mainSide]: value };\n }\n };\n\n order.forEach((placement) => {\n const side = ['left', 'top', 'start'].indexOf(placement) !== -1 ? check['primary'] : check['secondary'];\n\n data.offsets.target = {\n ...data.offsets.target,\n ...side(placement as keyof Offsets)\n };\n });\n\n return data;\n}\n","import { Data } from '../models';\n\nexport function shift(data: Data): Data {\n const placement = data.placement;\n const basePlacement = placement.split(' ')[0];\n const shiftVariation = placement.split(' ')[1];\n\n if (shiftVariation) {\n const { host, target } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: host[side] },\n end: {\n [side]: (host[side] ?? 0) + host[measurement] - target[measurement]\n }\n };\n\n data.offsets.target = {\n ...target, ...{\n [side]: (side === shiftVariation ? shiftOffsets.start[side] : shiftOffsets.end[side])\n }\n };\n }\n\n return data;\n}\n","/**\n * @copyright Valor Software\n * @copyright Federico Zivolo and contributors\n */\nimport { Renderer2 } from '@angular/core';\nimport { Data, Offsets, Options, MapPlacementInToRL } from './models';\n\nimport { arrow, flip, initData, preventOverflow, shift } from './modifiers';\n\nimport { getOffsets, getReferenceOffsets, setStyles, updateContainerClass } from './utils';\n\n\nexport class Positioning {\n position(hostElement: HTMLElement, targetElement: HTMLElement/*, round = true*/): Offsets | undefined {\n return this.offset(hostElement, targetElement/*, false*/);\n }\n\n offset(hostElement: HTMLElement, targetElement: HTMLElement/*, round = true*/): Offsets | undefined {\n return getReferenceOffsets(targetElement, hostElement);\n }\n\n positionElements(\n hostElement: HTMLElement | null,\n targetElement: HTMLElement | null,\n position: string,\n appendToBody?: boolean,\n options?: Options\n ): Data | undefined {\n const chainOfModifiers = [flip, shift, preventOverflow, arrow];\n const _position = MapPlacementInToRL[position as keyof typeof MapPlacementInToRL];\n const data = initData(targetElement, hostElement, _position, options);\n if (!data) {\n return;\n }\n\n return chainOfModifiers.reduce(\n (modifiedData, modifier) => modifier(modifiedData),\n data\n );\n }\n}\n\nconst positionService = new Positioning();\n\nexport function positionElements(\n hostElement: HTMLElement | null,\n targetElement: HTMLElement | null,\n placement: string,\n appendToBody?: boolean,\n options?: Options,\n renderer?: Renderer2\n): void {\n\n const data = positionService.positionElements(\n hostElement,\n targetElement,\n placement,\n appendToBody,\n options\n );\n\n if (!data) {\n return;\n }\n\n const offsets = getOffsets(data);\n\n setStyles(targetElement, {\n 'will-change': 'transform',\n top: '0px',\n left: '0px',\n transform: `translate3d(${offsets.left}px, ${offsets.top}px, 0px)`\n }, renderer);\n\n if (data.instance.arrow) {\n setStyles(data.instance.arrow, data.offsets.arrow, renderer);\n }\n\n updateContainerClass(data, renderer);\n}\n","import { Injectable, ElementRef, RendererFactory2, Inject, PLATFORM_ID, NgZone } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nimport { positionElements } from './ng-positioning';\n\nimport { fromEvent, merge, of, animationFrameScheduler, Subject, Observable } from 'rxjs';\nimport { Options } from './models';\n\n\nexport interface PositioningOptions {\n /** The DOM element, ElementRef, or a selector string of an element which will be moved */\n element?: HTMLElement | ElementRef | string;\n\n /** The DOM element, ElementRef, or a selector string of an element which the element will be attached to */\n target?: HTMLElement | ElementRef | string;\n\n /**\n * A string of the form 'vert-attachment horiz-attachment' or 'placement'\n * - placement can be \"top\", \"bottom\", \"left\", \"right\"\n * not yet supported:\n * - vert-attachment can be any of 'top', 'middle', 'bottom'\n * - horiz-attachment can be any of 'left', 'center', 'right'\n */\n attachment?: string;\n\n /** A string similar to `attachment`. The one difference is that, if it's not provided,\n * `targetAttachment` will assume the mirror image of `attachment`.\n */\n targetAttachment?: string;\n\n /** A string of the form 'vert-offset horiz-offset'\n * - vert-offset and horiz-offset can be of the form \"20px\" or \"55%\"\n */\n offset?: string;\n\n /** A string similar to `offset`, but referring to the offset of the target */\n targetOffset?: string;\n\n /** If true component will be attached to body */\n appendToBody?: boolean;\n}\n\n\n@Injectable({providedIn: 'root'})\nexport class PositioningService {\n private options?: Options;\n private update$$ = new Subject<null>();\n private positionElements = new Map();\n private triggerEvent$?: Observable<number|Event|null>;\n private isDisabled = false;\n\n constructor(\n ngZone: NgZone,\n rendererFactory: RendererFactory2,\n @Inject(PLATFORM_ID) platformId: number\n ) {\n\n if (isPlatformBrowser(platformId)) {\n ngZone.runOutsideAngular(() => {\n this.triggerEvent$ = merge(\n fromEvent(window, 'scroll', { passive: true }),\n fromEvent(window, 'resize', { passive: true }),\n of(0, animationFrameScheduler),\n this.update$$\n );\n\n this.triggerEvent$.subscribe(() => {\n if (this.isDisabled) {\n return;\n }\n\n this.positionElements\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .forEach((positionElement: any) => {\n positionElements(\n _getHtmlElement(positionElement.target),\n _getHtmlElement(positionElement.element),\n positionElement.attachment,\n positionElement.appendToBody,\n this.options,\n rendererFactory.createRenderer(null, null)\n );\n });\n });\n });\n }\n }\n\n position(options: PositioningOptions): void {\n this.addPositionElement(options);\n }\n\n get event$(): Observable<number|Event|null>|undefined {\n return this.triggerEvent$;\n }\n\n disable(): void {\n this.isDisabled = true;\n }\n\n enable(): void {\n this.isDisabled = false;\n }\n\n addPositionElement(options: PositioningOptions): void {\n this.positionElements.set(_getHtmlElement(options.element), options);\n }\n\n calcPosition(): void {\n this.update$$.next(null);\n }\n\n deletePositionElement(elRef: ElementRef): void {\n this.positionElements.delete(_getHtmlElement(elRef));\n }\n\n setOptions(options: Options) {\n this.options = options;\n }\n}\n\nfunction _getHtmlElement(element?: HTMLElement | ElementRef | string): HTMLElement | null {\n // it means that we got a selector\n if (typeof element === 'string') {\n return document.querySelector(element);\n }\n\n if (element instanceof ElementRef) {\n return element.nativeElement;\n }\n\n return element ?? null;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AA0CA,IAAY,kBAwBX;AAxBD,WAAY,kBAAkB;IAC5B,iCAAW,CAAA;IACX,uCAAiB,CAAA;IACjB,mCAAa,CAAA;IACb,qCAAe,CAAA;IACf,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,oCAAc,CAAA;IACd,2CAAuB,CAAA;IACvB,6CAAyB,CAAA;IACzB,6CAAyB,CAAA;IACzB,mDAA+B,CAAA;IAC/B,mDAA+B,CAAA;IAC/B,iDAA6B,CAAA;IAC7B,iDAA6B,CAAA;IAC7B,2CAAuB,CAAA;IACvB,4CAAwB,CAAA;IACxB,2CAAuB,CAAA;IACvB,2CAAuB,CAAA;IACvB,iDAA6B,CAAA;IAC7B,iDAA6B,CAAA;IAC7B,kDAA8B,CAAA;IAC9B,mDAA+B,CAAA;IAC/B,4CAAwB,CAAA;AAC1B,CAAC,EAxBW,kBAAkB,KAAlB,kBAAkB,QAwB7B;IAEW;AAAZ,WAAY,eAAe;IACzB,8BAAW,CAAA;IACX,oCAAiB,CAAA;IACjB,iCAAc,CAAA;IACd,gCAAa,CAAA;IACb,gCAAa,CAAA;IACb,8BAAW,CAAA;IACX,kCAAe,CAAA;IACf,yCAAwB,CAAA;IACxB,wCAAuB,CAAA;IACvB,wCAAuB,CAAA;IACvB,8CAA6B,CAAA;IAC7B,8CAA6B,CAAA;IAC7B,+CAA8B,CAAA;IAC9B,+CAA8B,CAAA;IAC9B,yCAAwB,CAAA;IACxB,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,4CAA2B,CAAA;IAC3B,4CAA2B,CAAA;IAC3B,gDAA+B,CAAA;IAC/B,gDAA+B,CAAA;IAC/B,0CAAyB,CAAA;AAC3B,CAAC,EAxBW,eAAe,KAAf,eAAe;;SC/DX,wBAAwB,CAAC,OAAgB,EAAE,QAAiB;IAC1E,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;QAC1B,OAAO,EAAE,CAAC;KACX;;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC;IACjD,MAAM,GAAG,GAAG,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;;;IAIpD,OAAO,QAAQ,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;AAC/C;;AChBA;;;SAKgB,eAAe,CAAC,OAAoB;IAClD,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,QAAQ,CAAC,eAAe,CAAC;KACjC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC;;IAG5B,IAAI,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;;IAGzC,IAAI,OAAO,GAA4B,KAAK,CAAC,CAAC;IAE9C,OAAO,YAAY,KAAK,cAAc;WAC5B,OAAO,CAAC,kBAAkB;WAC1B,OAAO,KAAK,OAAO,CAAC,kBAAkB,EAAE;;QAG9C,OAAO,GAAG,OAAO,CAAC,kBAAiC,CAAC;QACpD,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;KACrC;IAEH,MAAM,QAAQ,GAAG,YAAY,IAAI,YAAY,CAAC,QAAQ,CAAC;IAEvD,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;QAC3D,OAAO,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;KACnF;;IAGD,IACE,YAAY;QACZ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3D,wBAAwB,CAAC,YAAY,EAAE,UAAU,CAAC,KAAK,QAAQ,EAC/D;QACA,OAAO,eAAe,CAAC,YAA2B,CAAC,CAAC;KACrD;IAED,OAAO,YAA2B,CAAC;AACrC;;ACzCA;AACA;SACgB,iBAAiB,CAAC,OAAY;IAC5C,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,IAAI,QAAQ,KAAK,MAAM,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IAED,QACE,QAAQ,KAAK,MAAM,IAAI,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,OAAO,EAC7E;AACJ;;ACbA;;;SAGgB,OAAO,CAAC,IAAqB;IAC3C,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;QAC5B,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACjC;IAED,OAAO,IAAI,CAAC;AACd;;ACTA;;;SAOgB,sBAAsB,CAAC,QAAqB,EAAE,QAAqB;;IAEjF,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACtE,OAAO,QAAQ,CAAC,eAAe,CAAC;KACjC;;IAGC,MAAM,KAAK,GAAG,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC;IAE9F,MAAM,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1C,MAAM,GAAG,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;;IAGxC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzB,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;;IAGrB,MAAM,uBAAuB,GAAG,KAAK,CAAC,uBAAiD,CAAC;;IAGxF,IACE,CAAC,QAAQ,KAAK,uBAAuB;QACnC,QAAQ,KAAK,uBAAuB;QACtC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EACnB;QACA,IAAI,iBAAiB,CAAC,uBAAuB,CAAC,EAAE;YAC9C,OAAO,uBAAuB,CAAC;SAChC;QAED,OAAO,eAAe,CAAC,uBAAuB,CAAC,CAAC;KACjD;;IAGD,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAe,CAAC;IACrD,IAAI,YAAY,CAAC,IAAI,EAAE;QACrB,OAAO,sBAAsB,CAAC,YAAY,CAAC,IAAmB,EAAE,QAAQ,CAAC,CAAC;KAC3E;SAAM;QACL,OAAO,sBAAsB,CAAC,QAAQ,EAAG,OAAO,CAAC,QAAQ,CAAgB,CAAC,IAAmB,CAAC,CAAC;KAChG;AACH;;AC/CA;;;SAMgB,4BAA4B,CAAC,OAAoB;;IAE/D,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QACvC,OAAO,QAAQ,CAAC,eAAe,CAAC;KAChC;IAED,IAAI,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAE/B,OAAO,EAAE,EAAE,aAAa,IAAI,wBAAwB,CAAC,EAAE,EAAE,WAAW,CAAC,KAAK,MAAM,EAAE;QAChF,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC;KACvB;IAED,OAAO,EAAE,IAAI,QAAQ,CAAC,eAAe,CAAC;AACxC;;ACnBA;;;SAIgB,cAAc,CAAC,MAA2B,EAAE,IAAY;IACtE,MAAM,KAAK,GAAG,IAAI,KAAK,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAK,KAAK,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAEpD,QACE,UAAU,CAAE,MAAgB,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC;QACpD,UAAU,CAAE,MAAgB,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,EACpD;AACJ;;ACZA,SAAS,OAAO,CAAC,IAAY,EAAE,IAAiB,EAAE,IAAiB,EAAE,aAAmC;IACtG,MAAM,KAAK,GAAG,IAAyC,CAAC;IACxD,MAAM,KAAK,GAAG,IAAa,CAAC;IAC5B,MAAM,cAAc,GAAG,aAAkD,CAAC;IAE1E,OAAO,IAAI,CAAC,GAAG,CACb,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EACtB,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EACtB,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EACtB,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EACtB,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EACtB,CAAC,CACF,CAAC;AACJ,CAAC;SAEe,cAAc,CAAC,QAAkB;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;IACtC,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC;IAE7B,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC;QACpD,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC;KACnD,CAAC;AACJ;;SCnBgB,aAAa,CAAC,OAAgB;IAC5C,OAAO;QACL,GAAG,OAAO;QACV,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK;QAC1C,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM;KAC5C,CAAC;AACJ;;ACXA;;;SAGgB,SAAS,CAAC,CAAS;IACjC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;SACgB,QAAQ,CAAC,KAAW;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAC;AAClG;;ACVA;;;SAUgB,qBAAqB,CAAC,OAAoB;IACxD,MAAM,IAAI,GAAY,OAAO,CAAC,qBAAqB,EAAE,CAAC;;;;;;;;;;;;;;;;;;IAoBtD,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;QACzG,OAAO,IAAI,CAAC;KACb;IAED,MAAM,MAAM,GAAY;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;KAC/B,CAAC;;IAGF,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IAC9F,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,OAAO,CAAC,WAAW;WAC5C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,OAAO,CAAC,YAAY;WAC/C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAEpF,IAAI,cAAc,GAAG,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;IACjD,IAAI,aAAa,GAAG,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC;;;IAIlD,IAAI,cAAc,IAAI,aAAa,EAAE;QACnC,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACjD,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9C,aAAa,IAAI,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAE7C,MAAM,CAAC,KAAK,IAAI,cAAc,CAAC;QAC/B,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC;KAChC;IAED,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B;;AChEA;;;AAGA;AACA;SACgB,aAAa,CAAC,OAAY;IACxC,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE;QAC/B,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;AAC5C;;ACXA;;;AAMA;AACA;SACgB,eAAe,CAAC,OAAY;;IAE1C,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,QAAQ,CAAC,IAAI,CAAC;KACtB;IAED,QAAQ,OAAO,CAAC,QAAQ;QACtB,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;QACpC,KAAK,WAAW;YACd,OAAO,OAAO,CAAC,IAAI,CAAC;QACtB,QAAQ;KACT;;IAGD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAC7E,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE;QAC1F,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AACjD;;SCtBgB,oCAAoC,CAClD,QAAqB,EACrB,MAAmB,EACnB,aAAa,GAAG,KAAK;IAErB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC;IAC1C,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;;IAG3D,IAAI,aAAa,IAAI,MAAM,EAAE;QAC3B,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KACrD;IAED,MAAM,OAAO,GAAY,aAAa,CAAC;QACrC,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,cAAc;QACrE,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,eAAe;QACzE,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,MAAM,EAAE,YAAY,CAAC,MAAM;KAC5B,CAAC,CAAC;IAEH,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;IACtB,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;;;;;IAMvB,IAAI,MAAM,EAAE;QACV,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEjD,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACzB,OAAO,CAAC,GAAG,IAAI,cAAc,GAAG,SAAS,CAAC;SAC3C;QACD,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5B,OAAO,CAAC,MAAM,IAAI,cAAc,GAAG,SAAS,CAAC;SAC9C;QACD,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC1B,OAAO,CAAC,IAAI,IAAI,eAAe,GAAG,UAAU,CAAC;SAC9C;QACD,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,CAAC,KAAK,IAAI,eAAe,GAAG,UAAU,CAAC;SAC/C;;QAGD,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;KACjC;IAED,OAAO,OAAO,CAAC;AACjB;;ACjEA;;;SAGgB,SAAS,CAAC,OAAoB,EAAE,IAAI,GAAG,KAAK;IAC1D,MAAM,SAAS,GAAG,IAAI,KAAK,KAAK,GAAG,WAAW,GAAG,YAAY,CAAC;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC;QACnD,MAAM,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,gBAAgB,IAAI,IAAI,CAAC;QAExE,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;KACpC;IAED,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5B;;SCVgB,6CAA6C,CAAC,OAAoB,EAAE,aAAa,GAAG,KAAK;IACvG,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC;IACnD,MAAM,cAAc,GAAG,oCAAoC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IAEpE,MAAM,SAAS,GAAG,CAAC,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,CAAC,aAAa,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG;QACb,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC;QAChF,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC;QACpF,KAAK;QACL,MAAM;KACP,CAAC;IAEF,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B;;ACtBA;;;SAMgB,OAAO,CAAC,OAAoB;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;QAC9C,OAAO,KAAK,CAAC;KACd;IACD,IAAI,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,OAAO,EAAE;QAC7D,OAAO,IAAI,CAAC;KACb;IAED,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AACzC;;SCFgB,aAAa,CAC3B,MAAmB,EACnB,IAAiB,EACjB,OAAO,GAAG,CAAC,EACX,iBAAyB,EACzB,aAAa,GAAG,KAAK;;IAIrB,IAAI,UAAU,GAAqB,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACvD,MAAM,YAAY,GAAG,aAAa,GAAG,4BAA4B,CAAC,MAAM,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;IAGjH,IAAI,iBAAiB,KAAK,UAAU,EAAE;QACpC,UAAU,GAAG,6CAA6C,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;KACzF;SAAM;;QAEL,IAAI,cAAc,CAAC;QACnB,IAAI,iBAAiB,KAAK,cAAc,EAAE;YACxC,cAAc,GAAG,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YACtD,IAAI,cAAc,CAAC,QAAQ,KAAK,MAAM,EAAE;gBACtC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC;aACvD;SACF;aAAM,IAAI,iBAAiB,KAAK,QAAQ,EAAE;YACzC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC;SACvD;aAAM;YACL,cAAc,GAAG,iBAAiB,CAAC;SACpC;QAED,MAAM,OAAO,GAAG,oCAAoC,CAClD,cAAc,EACd,YAAY,EACZ,aAAa,CACd,CAAC;;QAGF,IAAI,OAAO,IAAI,cAAc,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC3E,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC/D,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBACpF,UAAU,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;aACnD;YACD,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC5B,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC1D;YACD,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBACvF,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;aACtD;YACD,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC5B,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACzD;SACF;aAAM,IAAI,OAAO,EAAE;;YAElB,UAAU,GAAG,OAAO,CAAC;SACtB;KACF;;IAGD,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC7B,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC;KAC5B;IACD,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QAC5B,UAAU,CAAC,GAAG,IAAI,OAAO,CAAC;KAC3B;IACD,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QAC9B,UAAU,CAAC,KAAK,IAAI,OAAO,CAAC;KAC7B;IACD,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC/B,UAAU,CAAC,MAAM,IAAI,OAAO,CAAC;KAC9B;IAED,OAAO,UAAU,CAAC;AACpB;;ACrFA;;;;AAQA,SAAS,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAqC;IACnE,OAAO,KAAK,GAAG,MAAM,CAAC;AACxB,CAAC;SAEe,oBAAoB,CAClC,SAAiB,EACjB,OAAgB,EAChB,MAAmB,EACnB,IAAiB,EACjB,gBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,EACrD,iBAAiB,GAAG,UAAU,EAC9B,OAAO,GAAG,CAAC;IAEX,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;QACpC,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAG3E,MAAM,KAAK,GAAU;QACnB,GAAG,EAAE;YACH,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;YAC7B,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;SACrD;QACD,KAAK,EAAE;YACL,KAAK,EAAE,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,KAAK,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC;YACvD,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;SAChC;QACD,MAAM,EAAE;YACN,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;YAC7B,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,KAAK,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;SAC3D;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC;YACpD,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;SAChC;KACF,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACnC,GAAG,CAAC,CAAC,GAAG,MAAM;QACb,QAAQ,EAAE,GAAG;QACb,GAAG,KAAK,CAAC,GAAkB,CAAC;QAC5B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAkB,CAAsC,CAAC;KAC9E,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;QACvD,OAAO,KAAK,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC;KACrE,CAAC,CAAC;IAEH,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE;QAChD,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,eAAuB;YACnD,OAAO,eAAe,KAAK,QAAQ,CAAC;SACrC,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAW,aAAa,CAAC,MAAM,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEjH,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;IAE1C,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CACzC,kBAAkB,EAClB,cACE,QAAQ,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,iBAAiD,CAAC,GAAG,iBAC1F,EAAE,CACH,CAAC;IAEF,OAAO,iBAAiB,IAAI,SAAS,GAAG,IAAI,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;AAChE;;SC3EgB,UAAU,CAAC,IAAU;IACnC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAChC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM;QAClC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;QAC/C,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7C,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QACnD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;KAClD,CAAC;AACJ;;ACXA;;;SAGgB,oBAAoB,CAAC,SAAiB;IACpD,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAE5E,OAAO,SAAS,CAAC,OAAO,CAAC,wBAAwB,EAAE,OAAO,IAAI,IAAI,CAAC,OAA4B,CAAC,CAAC,CAAC;AACpG;;ACPA;;;SAGgB,oBAAoB,CAAC,SAAiB;IACpD,IAAI,SAAS,KAAK,OAAO,EAAE;QACzB,OAAO,MAAM,CAAC;KACf;SAAM,IAAI,SAAS,KAAK,MAAM,EAAE;QAC/B,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,SAAS,CAAC;AACnB;;ACNA,MAAM,KAAK,GAAG,CAAC,KAAc,EAAE,GAAG,GAAG,CAAC,KAAK,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;SAC3D,aAAa,CAAC,OAAoB;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjE,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAEjE,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC;QACtC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC;KACzC,CAAC;AACJ;;AChBA;;;SAQgB,mBAAmB,CACjC,MAAmB,EACnB,IAAiB,EACjB,aAAuB;IAEvB,MAAM,kBAAkB,GAAG,aAAa;UACpC,4BAA4B,CAAC,MAAM,CAAC;UACpC,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEzC,OAAO,oCAAoC,CAAC,IAAI,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC;AACvF;;AClBA;;;SAQgB,gBAAgB,CAC9B,MAAmB,EACnB,WAAoB,EACpB,QAAgB;IAEhB,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;IAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;;IAGzC,MAAM,aAAa,GAAG;QACpB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;;IAGF,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IAC1C,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IAC/C,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACjD,MAAM,oBAAoB,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAE3D,aAAa,CAAC,QAAsC,CAAC;QACnD,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC;YAC5B,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAE9B,aAAa,CAAC,aAA2C,CAAC,GAAG,SAAS,KAAK,aAAa;UACpF,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAG,UAAU,CAAC,oBAAoB,CAAC;UACnE,WAAW,CAAC,oBAAoB,CAAC,aAAa,CAA6B,CAAC,IAAI,CAAC,CAAC;IAEtF,OAAO,aAAa,CAAC;AACvB;;SCnCgB,iBAAiB,CAAC,OAAgB,EAAE,YAAoB;IACtE,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,YAA8C,CAAC,EAAE,OAAO,CAAC;AACtF;;ACJA,MAAM,kBAAkB,GAAG;IACzB,GAAG,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC;IACpC,MAAM,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,CAAC;IAChD,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC;IAC7C,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC;CACtC,CAAC;SAEc,kBAAkB,CAAC,SAA8B,EAAE,aAAiD;IAClH,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;QACrB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,kBAAkB,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC/D,CAAC;SAEe,YAAY,CAAC,SAAc;IACzC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;QACrB,OAAO,EAAE,CAAC;KACX;IAED,IAAI,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;QACxC,OAAO,MAAM,CAAC;KACf;IAED,IAAI,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;QAC1C,OAAO,MAAM,CAAC;KACf;IAED,IAAI,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;QACxC,OAAO,MAAM,CAAC;KACf;IAED,IAAI,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;QAC3C,OAAO,MAAM,CAAC;KACf;IAED,OAAO,EAAE,CAAC;AACZ;;SChCgB,oBAAoB,CAAC,IAAU,EAAE,QAAoB;IACnE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAEpC,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC;IAEtC,MAAM,aAAa,GAAG,QAAQ,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,SAAyC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IAC1H,IAAI,IAAI,CAAC,aAAa,EAAE;QACtB,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,EAAE,cAAc,aAAa,EAAE,CAAC,CAAC;QAC3F,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;QACpE,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,EAAE,cAAc,aAAa,EAAE,CAAC,CAAC;QAC3F,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC;QAExE,IAAI,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;YAC5C,cAAc,GAAG,cAAc,GAAG,GAAG,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;SACrE;QAED,IAAI,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE;YAC7F,cAAc,IAAI,eAAe,CAAC;SACnC;QAED,IAAI,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAK,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE;YAC9F,cAAc,IAAI,eAAe,CAAC;SACnC;KACF;IACD,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,kCAAkC,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE9G,IAAI,QAAQ,EAAE;QACZ,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAEvD,OAAO;KACR;IAED,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC;AACpC;;SClCgB,SAAS,CAAC,OAA2B,EAAE,MAAkD,EAAE,QAAoB;IAC7H,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE;QACvB,OAAO;KACR;IACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;QAC/B,IAAI,IAAI,GAAG,EAAE,CAAC;;QAEd,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5E,SAAS,CAAC,MAAM,CAAC,IAAI,CAAW,CAAC,EAAE;YACnC,IAAI,GAAG,IAAI,CAAC;SACb;QAED,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;YAEnE,OAAO;SACR;;QAGA,OAAO,CAAC,KAAa,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;KAC5D,CAAC,CAAC;AACL;;SCzBgB,KAAK,CAAC,IAAU;IAC9B,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;;IAExC,MAAM,YAAY,GAAuB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;;IAGtF,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAElF,MAAM,GAAG,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5C,MAAM,eAAe,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;IACpD,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,EAAgC,CAAC;IACzE,MAAM,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC/C,MAAM,gBAAgB,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;IAGxD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;QACpF,CAAC,aAAa,EAAE,IAAI,CAAC;YACnB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,CAAC;KACtF;;IAED,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;QAC/F,CAAC,aAAa,EAAE,IAAI,CAAC;YACnB,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;KAClG;IACD,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;;;IAI7C,MAAM,GAAG,GAAG,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAsC,CAAC;IAChG,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,eAAe,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;;IAG/E,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC,kBAAkB,EAAE;QACvB,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC;KACxG;SAAM;QACL,MAAM,kBAAkB,GAAG,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,qBAAqB,GAAG,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC,CAAC;QAC/F,MAAM,GAAG,IAAI,KAAK,kBAAkB;YAClC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,qBAAqB;YACzD,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,CAAC;KAC9F;IAED,IAAI,SAAS,GACX,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;;IAG5E,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1F,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG;QACnB,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAC7B,CAAC,OAAO,GAAG,EAAE;KACd,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,YAAY,CAAC;IAEnC,OAAO,IAAI,CAAC;AACd;;SCxDgB,IAAI,CAAC,IAAU;IAC7B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;QAE5C,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;YACpB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;YACtB,GAAG,gBAAgB,CACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB,IAAI,CAAC,OAAO,CAAC,IAAI,EACjB,IAAI,CAAC,SAAS,CACf;SACF,CAAC;QAEF,OAAO,IAAI,CAAC;KACb;IAED,MAAM,UAAU,GAAG,aAAa,CAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAClB,CAAC;IACD,UAAU,EACV,KAAK;KACN,CAAC;IAEF,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEnD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAEhC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChH,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAEhD,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK;QAC5B,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK,GAAG,CAAC,EAAE;YACxD,OAAO;SACR;QAED,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;QAGzC,MAAM,WAAW,GACf,CAAC,SAAS,KAAK,MAAM;YACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;aACrF,SAAS,KAAK,OAAO;gBACpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;aACtF,SAAS,KAAK,KAAK;gBAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;aACtF,SAAS,KAAK,QAAQ;gBACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QAE1F,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACnG,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QACtG,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAChG,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAEzG,MAAM,mBAAmB,GACvB,CAAC,SAAS,KAAK,MAAM,IAAI,aAAa;aACrC,SAAS,KAAK,OAAO,IAAI,cAAc,CAAC;aACxC,SAAS,KAAK,KAAK,IAAI,YAAY,CAAC;aACpC,SAAS,KAAK,QAAQ,IAAI,eAAe,CAAC,CAAC;;QAG9C,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,MAAM,gBAAgB,IACnB,CAAC,UAAU,IAAI,SAAS,KAAK,MAAM,IAAI,aAAa;aAClD,UAAU,IAAI,SAAS,KAAK,OAAO,IAAI,cAAc,CAAC;aACtD,CAAC,UAAU,IAAI,SAAS,KAAK,MAAM,IAAI,YAAY,CAAC;aACpD,CAAC,UAAU,IAAI,SAAS,KAAK,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC;QAE/D,IAAI,WAAW,IAAI,mBAAmB,IAAI,gBAAgB,EAAE;YAC1D,IAAI,WAAW,IAAI,mBAAmB,EAAE;gBACtC,SAAS,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;aAClC;YAED,IAAI,gBAAgB,EAAE;gBACpB,SAAS,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;aAC7C;YAED,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,SAAS,GAAG,IAAI,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YAEhE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;gBACpB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;gBACtB,GAAG,gBAAgB,CACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB,IAAI,CAAC,OAAO,CAAC,IAAI,EACjB,IAAI,CAAC,SAAS,CACf;aACF,CAAC;SACH;KACF,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd;;SCjGgB,QAAQ,CACtB,aAA+B,EAAE,WAA6B,EAAE,QAAgB,EAAE,OAAiB;IAGnG,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,EAAE;QAClC,OAAQ;KACT;IAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAEvE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,gDAAgD,CAAC;WAChE,CAAC,QAAQ,CAAC,KAAK,CAAC,6EAA6E,CAAC,EAAE;QAC3F,QAAQ,GAAG,MAAM,CAAC;KACzB;IAEH,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;;IAGhD,IAAI,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,yCAAyC,CAAC;UACrE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM;UAChC,QAAQ,CAAC;;IAGb,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,+EAA+E,CAAC,CAAC;IACjH,IAAI,OAAO,EAAE;QACX,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KAC/D;;IAGD,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;QACtF,SAAS,GAAG,MAAM,CAAC;KACpB;IAED,SAAS,GAAG,oBAAoB,CAC9B,SAAS,EACT,cAAc,EACd,aAAa,EACb,WAAW,EACX,OAAO,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAC/C,CAAC;IAEF,MAAM,YAAY,GAAG,gBAAgB,CAAC,aAAa,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;IAEhF,OAAO;QACL,OAAO,EAAE,OAAO,IAAI,EAAC,SAAS,EAAE,EAAE,EAAC;QACnC,QAAQ,EAAE;YACR,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,KAAK,CAAC;SACd;QACD,OAAO,EAAE;YACP,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,KAAK,CAAC;SACd;QACD,aAAa,EAAE,KAAK;QACpB,SAAS;QACT,aAAa;KACd,CAAC;AACJ;;SChEgB,eAAe,CAAC,IAAU;IACxC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE;QACvD,OAAO,IAAI,CAAC;KACb;;;;IAKD,MAAM,aAAa,GAAG,WAAW,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;IAChD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,aAAa,GAAG,SAAS,EAAE,GAAG,YAAY,CAAC;IAC/D,YAAY,CAAC,GAAG,GAAG,EAAE,CAAC;IACtB,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,YAAY,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;IAEjC,MAAM,UAAU,GAAG,aAAa,CAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAClB,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,iBAAiB,IAAI,cAAc,EAC3E,KAAK;KACN,CAAC;;;IAIF,YAAY,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IAExC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAEjD,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,SAAwB;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;;YAE3C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;gBACxE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;aACnF;YAED,OAAO,EAAE,CAAC,SAAS,GAAG,KAAK,EAAE,CAAC;SAC/B;QACD,SAAS,CAAC,SAAwB;YAChC,MAAM,qBAAqB,GAAG,SAAS,KAAK,OAAO,CAAC;YACpD,MAAM,QAAQ,GAAG,qBAAqB,GAAG,MAAM,GAAG,KAAK,CAAC;YACxD,MAAM,WAAW,GAAG,qBAAqB,GAAG,OAAO,GAAG,QAAQ,CAAC;YAC/D,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;;YAG1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;gBACxE,KAAK,GAAG,IAAI,CAAC,GAAG,CACd,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAClC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAChE,CAAC;aACH;YAED,OAAO,EAAE,CAAC,QAAQ,GAAG,KAAK,EAAE,CAAC;SAC9B;KACF,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS;QACtB,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QAExG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;YACpB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;YACtB,GAAG,IAAI,CAAC,SAA0B,CAAC;SACpC,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd;;SCtEgB,KAAK,CAAC,IAAU;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,cAAc,EAAE;QAClB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACtC,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC;QACzC,MAAM,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;QAEpD,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE;YAC7B,GAAG,EAAE;gBACH,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;aACpE;SACF,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;YACpB,GAAG,MAAM,EAAE,GAAG;gBACZ,CAAC,IAAI,IAAI,IAAI,KAAK,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACtF;SACF,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd;;MChBa,WAAW;IACtB,QAAQ,CAAC,WAAwB,EAAE,aAA0B;QAC3D,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,aAAY,CAAC;KAC3D;IAED,MAAM,CAAC,WAAwB,EAAE,aAA0B;QACzD,OAAO,mBAAmB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;KACxD;IAED,gBAAgB,CACd,WAA+B,EAC/B,aAAiC,EACjC,QAAgB,EAChB,YAAsB,EACtB,OAAiB;QAEjB,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAA2C,CAAC,CAAC;QAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QAED,OAAO,gBAAgB,CAAC,MAAM,CAC5B,CAAC,YAAY,EAAE,QAAQ,KAAK,QAAQ,CAAC,YAAY,CAAC,EAClD,IAAI,CACL,CAAC;KACH;CACF;AAED,MAAM,eAAe,GAAG,IAAI,WAAW,EAAE,CAAC;SAE1B,gBAAgB,CAC9B,WAA+B,EAC/B,aAAiC,EACjC,SAAiB,EACjB,YAAsB,EACtB,OAAiB,EACjB,QAAoB;IAGpB,MAAM,IAAI,GAAG,eAAe,CAAC,gBAAgB,CAC3C,WAAW,EACX,aAAa,EACb,SAAS,EACT,YAAY,EACZ,OAAO,CACR,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE;QACT,OAAO;KACR;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEjC,SAAS,CAAC,aAAa,EAAE;QACvB,aAAa,EAAE,WAAW;QAC1B,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,eAAe,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,GAAG,UAAU;KACnE,EAAE,QAAQ,CAAC,CAAC;IAEb,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;QACvB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KAC9D;IAED,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACvC;;MCnCa,kBAAkB;IAO7B,YACE,MAAc,EACd,eAAiC,EACZ,UAAkB;QARjC,aAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAC/B,qBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;QAE7B,eAAU,GAAG,KAAK,CAAC;QAQzB,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE;YACjC,MAAM,CAAC,iBAAiB,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CACxB,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAC9C,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EACpC,EAAE,CAAC,CAAC,EAAE,uBAAuB,CAAC,EACxC,IAAI,CAAC,QAAQ,CACd,CAAC;gBAEF,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;oBAC3B,IAAI,IAAI,CAAC,UAAU,EAAE;wBACnB,OAAO;qBACR;oBAED,IAAI,CAAC,gBAAgB;;yBAElB,OAAO,CAAC,CAAC,eAAoB;wBAC5B,gBAAgB,CACd,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,EACvC,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,EACxC,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,YAAY,EAC5B,IAAI,CAAC,OAAO,EACZ,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3C,CAAC;qBACH,CAAC,CAAC;iBACN,CAAC,CAAC;aACJ,CAAC,CAAC;SACJ;KACF;IAED,QAAQ,CAAC,OAA2B;QAClC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;KAClC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;IAED,OAAO;QACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IAED,MAAM;QACJ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;IAED,kBAAkB,CAAC,OAA2B;QAC5C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;KACtE;IAED,YAAY;QACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;IAED,qBAAqB,CAAC,KAAiB;QACrC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;KACtD;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACxB;;+GA1EU,kBAAkB,wEAUnB,WAAW;mHAVV,kBAAkB,cADN,MAAM;2FAClB,kBAAkB;kBAD9B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;0BAW3B,MAAM;2BAAC,WAAW;;AAmEvB,SAAS,eAAe,CAAC,OAA2C;;IAElE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KACxC;IAED,IAAI,OAAO,YAAY,UAAU,EAAE;QACjC,OAAO,OAAO,CAAC,aAAa,CAAC;KAC9B;IAED,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB;;ACpIA;;;;;;"}
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "ngx-bootstrap/positioning",
3
- "version": "8.0.0-RC.2",
3
+ "version": "8.0.0-RC.8",
4
+ "author": "Dmitriy Shekhovtsov <valorkin@gmail.com>",
5
+ "license": "MIT",
4
6
  "module": "fesm2015/ngx-bootstrap-positioning.mjs",
5
7
  "es2020": "fesm2020/ngx-bootstrap-positioning.mjs",
6
8
  "esm2020": "esm2020/ngx-bootstrap-positioning.mjs",
@@ -29,6 +31,6 @@
29
31
  "@angular/common": "13.1.1",
30
32
  "rxjs": "7.4.0",
31
33
  "@angular-devkit/core": "13.1.2",
32
- "ngx-bootstrap/utils": "8.0.0-RC.2"
34
+ "ngx-bootstrap/utils": "8.0.0-RC.8"
33
35
  }
34
36
  }
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "ngx-bootstrap/progressbar",
3
- "version": "8.0.0-RC.2",
3
+ "version": "8.0.0-RC.8",
4
+ "author": "Dmitriy Shekhovtsov <valorkin@gmail.com>",
5
+ "license": "MIT",
4
6
  "module": "fesm2015/ngx-bootstrap-progressbar.mjs",
5
7
  "es2020": "fesm2020/ngx-bootstrap-progressbar.mjs",
6
8
  "esm2020": "esm2020/ngx-bootstrap-progressbar.mjs",
@@ -26,7 +28,7 @@
26
28
  },
27
29
  "peerDependencies": {
28
30
  "@angular/core": "13.1.1",
29
- "ngx-bootstrap/utils": "8.0.0-RC.2",
31
+ "ngx-bootstrap/utils": "8.0.0-RC.8",
30
32
  "@angular/common": "13.1.1"
31
33
  }
32
34
  }
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "ngx-bootstrap/rating",
3
- "version": "8.0.0-RC.2",
3
+ "version": "8.0.0-RC.8",
4
+ "author": "Dmitriy Shekhovtsov <valorkin@gmail.com>",
5
+ "license": "MIT",
4
6
  "module": "fesm2015/ngx-bootstrap-rating.mjs",
5
7
  "es2020": "fesm2020/ngx-bootstrap-rating.mjs",
6
8
  "esm2020": "esm2020/ngx-bootstrap-rating.mjs",
@@ -1,7 +1,9 @@
1
1
  {
2
2
  "name": "schematics",
3
- "version": "8.0.0-RC.2",
3
+ "version": "8.0.0-RC.8",
4
4
  "schematics": "./collection.json",
5
+ "author": "Dmitriy Shekhovtsov <valorkin@gmail.com>",
6
+ "license": "MIT",
5
7
  "main": "./ng-add/index.js",
6
8
  "typings": "./ng-add/index.d.ts",
7
9
  "dependencies": {
@@ -1,4 +1,4 @@
1
1
  {
2
- "NGX_BOOTSTRAP_VERSION": "8.0.0-RC.2",
3
- "BOOTSTRAP_VERSION": "^4.5.3"
2
+ "NGX_BOOTSTRAP_VERSION": "8.0.0-RC.8",
3
+ "BOOTSTRAP_VERSION": "^5.1.3"
4
4
  }
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "ngx-bootstrap/sortable",
3
- "version": "8.0.0-RC.2",
3
+ "version": "8.0.0-RC.8",
4
+ "author": "Dmitriy Shekhovtsov <valorkin@gmail.com>",
5
+ "license": "MIT",
4
6
  "module": "fesm2015/ngx-bootstrap-sortable.mjs",
5
7
  "es2020": "fesm2020/ngx-bootstrap-sortable.mjs",
6
8
  "esm2020": "esm2020/ngx-bootstrap-sortable.mjs",
package/tabs/package.json CHANGED
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "ngx-bootstrap/tabs",
3
- "version": "8.0.0-RC.2",
3
+ "version": "8.0.0-RC.8",
4
+ "author": "Dmitriy Shekhovtsov <valorkin@gmail.com>",
5
+ "license": "MIT",
4
6
  "module": "fesm2015/ngx-bootstrap-tabs.mjs",
5
7
  "es2020": "fesm2020/ngx-bootstrap-tabs.mjs",
6
8
  "esm2020": "esm2020/ngx-bootstrap-tabs.mjs",
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "ngx-bootstrap/timepicker",
3
- "version": "8.0.0-RC.2",
3
+ "version": "8.0.0-RC.8",
4
+ "author": "Dmitriy Shekhovtsov <valorkin@gmail.com>",
5
+ "license": "MIT",
4
6
  "module": "fesm2015/ngx-bootstrap-timepicker.mjs",
5
7
  "es2020": "fesm2020/ngx-bootstrap-timepicker.mjs",
6
8
  "esm2020": "esm2020/ngx-bootstrap-timepicker.mjs",
@@ -27,7 +29,7 @@
27
29
  "peerDependencies": {
28
30
  "@angular/core": "13.1.1",
29
31
  "@angular/forms": "13.1.1",
30
- "ngx-bootstrap/mini-ngrx": "8.0.0-RC.2",
32
+ "ngx-bootstrap/mini-ngrx": "8.0.0-RC.8",
31
33
  "rxjs": "7.4.0",
32
34
  "@angular/platform-browser": "13.1.1",
33
35
  "@angular/common": "13.1.1"
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "ngx-bootstrap/tooltip",
3
- "version": "8.0.0-RC.2",
3
+ "version": "8.0.0-RC.8",
4
+ "author": "Dmitriy Shekhovtsov <valorkin@gmail.com>",
5
+ "license": "MIT",
4
6
  "module": "fesm2015/ngx-bootstrap-tooltip.mjs",
5
7
  "es2020": "fesm2020/ngx-bootstrap-tooltip.mjs",
6
8
  "esm2020": "esm2020/ngx-bootstrap-tooltip.mjs",
@@ -27,11 +29,11 @@
27
29
  "peerDependencies": {
28
30
  "@angular/core": "13.1.1",
29
31
  "@angular/forms": "13.1.1",
30
- "ngx-bootstrap/utils": "8.0.0-RC.2",
31
- "ngx-bootstrap/positioning": "8.0.0-RC.2",
32
+ "ngx-bootstrap/utils": "8.0.0-RC.8",
33
+ "ngx-bootstrap/positioning": "8.0.0-RC.8",
32
34
  "@angular/common": "13.1.1",
33
35
  "rxjs": "7.4.0",
34
36
  "@angular-devkit/core": "13.1.2",
35
- "ngx-bootstrap/component-loader": "8.0.0-RC.2"
37
+ "ngx-bootstrap/component-loader": "8.0.0-RC.8"
36
38
  }
37
39
  }
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "ngx-bootstrap/typeahead",
3
- "version": "8.0.0-RC.2",
3
+ "version": "8.0.0-RC.8",
4
+ "author": "Dmitriy Shekhovtsov <valorkin@gmail.com>",
5
+ "license": "MIT",
4
6
  "module": "fesm2015/ngx-bootstrap-typeahead.mjs",
5
7
  "es2020": "fesm2020/ngx-bootstrap-typeahead.mjs",
6
8
  "esm2020": "esm2020/ngx-bootstrap-typeahead.mjs",
@@ -28,12 +30,12 @@
28
30
  "@angular/core": "13.1.1",
29
31
  "@angular/platform-browser": "13.1.1",
30
32
  "rxjs": "7.4.0",
31
- "ngx-bootstrap/positioning": "8.0.0-RC.2",
33
+ "ngx-bootstrap/positioning": "8.0.0-RC.8",
32
34
  "@angular/common": "13.1.1",
33
35
  "@angular-devkit/core": "13.1.2",
34
- "ngx-bootstrap/utils": "8.0.0-RC.2",
36
+ "ngx-bootstrap/utils": "8.0.0-RC.8",
35
37
  "@angular/forms": "13.1.1",
36
38
  "@angular/animations": "13.1.1",
37
- "ngx-bootstrap/component-loader": "8.0.0-RC.2"
39
+ "ngx-bootstrap/component-loader": "8.0.0-RC.8"
38
40
  }
39
41
  }
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "ngx-bootstrap/utils",
3
- "version": "8.0.0-RC.2",
3
+ "version": "8.0.0-RC.8",
4
+ "author": "Dmitriy Shekhovtsov <valorkin@gmail.com>",
5
+ "license": "MIT",
4
6
  "module": "fesm2015/ngx-bootstrap-utils.mjs",
5
7
  "es2020": "fesm2020/ngx-bootstrap-utils.mjs",
6
8
  "esm2020": "esm2020/ngx-bootstrap-utils.mjs",