mis-crystal-design-system 14.0.55-test-v4 → 14.0.55-test-v5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/datepicker/base/bs-datepicker-container.d.ts +44 -0
- package/datepicker/bs-datepicker-inline.component.d.ts +64 -0
- package/datepicker/bs-datepicker-inline.config.d.ts +6 -0
- package/datepicker/bs-datepicker-input.directive.d.ts +33 -0
- package/datepicker/bs-datepicker.component.d.ts +126 -0
- package/datepicker/bs-datepicker.config.d.ts +143 -0
- package/datepicker/bs-datepicker.module.d.ts +29 -0
- package/datepicker/bs-daterangepicker-inline.component.d.ts +64 -0
- package/datepicker/bs-daterangepicker-inline.config.d.ts +9 -0
- package/datepicker/bs-daterangepicker-input.directive.d.ts +33 -0
- package/datepicker/bs-daterangepicker.component.d.ts +118 -0
- package/datepicker/bs-daterangepicker.config.d.ts +7 -0
- package/datepicker/bs-locale.service.d.ts +13 -0
- package/datepicker/chronos/create/check-overflow.d.ts +2 -0
- package/datepicker/chronos/create/clone.d.ts +1 -0
- package/datepicker/chronos/create/date-from-array.d.ts +2 -0
- package/datepicker/chronos/create/from-anything.d.ts +4 -0
- package/datepicker/chronos/create/from-array.d.ts +2 -0
- package/datepicker/chronos/create/from-object.d.ts +2 -0
- package/datepicker/chronos/create/from-string-and-array.d.ts +2 -0
- package/datepicker/chronos/create/from-string-and-format.d.ts +4 -0
- package/datepicker/chronos/create/from-string.d.ts +4 -0
- package/datepicker/chronos/create/local.d.ts +3 -0
- package/datepicker/chronos/create/parsing-flags.d.ts +2 -0
- package/datepicker/chronos/create/parsing.types.d.ts +64 -0
- package/datepicker/chronos/create/valid.d.ts +6 -0
- package/datepicker/chronos/duration/bubble.d.ts +4 -0
- package/datepicker/chronos/duration/constructor.d.ts +21 -0
- package/datepicker/chronos/duration/create.d.ts +8 -0
- package/datepicker/chronos/duration/humanize.d.ts +5 -0
- package/datepicker/chronos/duration/valid.d.ts +2 -0
- package/datepicker/chronos/format/format.d.ts +11 -0
- package/datepicker/chronos/format.d.ts +5 -0
- package/datepicker/chronos/i18n/ar.d.ts +2 -0
- package/datepicker/chronos/i18n/bg.d.ts +2 -0
- package/datepicker/chronos/i18n/ca.d.ts +2 -0
- package/datepicker/chronos/i18n/cs.d.ts +2 -0
- package/datepicker/chronos/i18n/da.d.ts +2 -0
- package/datepicker/chronos/i18n/de.d.ts +2 -0
- package/datepicker/chronos/i18n/en-gb.d.ts +2 -0
- package/datepicker/chronos/i18n/es-do.d.ts +2 -0
- package/datepicker/chronos/i18n/es-us.d.ts +2 -0
- package/datepicker/chronos/i18n/es.d.ts +2 -0
- package/datepicker/chronos/i18n/et.d.ts +2 -0
- package/datepicker/chronos/i18n/fi.d.ts +2 -0
- package/datepicker/chronos/i18n/fr.d.ts +2 -0
- package/datepicker/chronos/i18n/gl.d.ts +2 -0
- package/datepicker/chronos/i18n/he.d.ts +2 -0
- package/datepicker/chronos/i18n/hi.d.ts +2 -0
- package/datepicker/chronos/i18n/hr.d.ts +2 -0
- package/datepicker/chronos/i18n/hu.d.ts +2 -0
- package/datepicker/chronos/i18n/id.d.ts +2 -0
- package/datepicker/chronos/i18n/it.d.ts +2 -0
- package/datepicker/chronos/i18n/ja.d.ts +2 -0
- package/datepicker/chronos/i18n/ka.d.ts +2 -0
- package/datepicker/chronos/i18n/kk.d.ts +2 -0
- package/datepicker/chronos/i18n/ko.d.ts +2 -0
- package/datepicker/chronos/i18n/lt.d.ts +2 -0
- package/datepicker/chronos/i18n/lv.d.ts +2 -0
- package/datepicker/chronos/i18n/mn.d.ts +2 -0
- package/datepicker/chronos/i18n/nb.d.ts +2 -0
- package/datepicker/chronos/i18n/nl-be.d.ts +2 -0
- package/datepicker/chronos/i18n/nl.d.ts +2 -0
- package/datepicker/chronos/i18n/pl.d.ts +2 -0
- package/datepicker/chronos/i18n/pt-br.d.ts +2 -0
- package/datepicker/chronos/i18n/ro.d.ts +2 -0
- package/datepicker/chronos/i18n/ru.d.ts +2 -0
- package/datepicker/chronos/i18n/sk.d.ts +2 -0
- package/datepicker/chronos/i18n/sl.d.ts +2 -0
- package/datepicker/chronos/i18n/sq.d.ts +2 -0
- package/datepicker/chronos/i18n/sv.d.ts +2 -0
- package/datepicker/chronos/i18n/th-be.d.ts +2 -0
- package/datepicker/chronos/i18n/th.d.ts +2 -0
- package/datepicker/chronos/i18n/tr.d.ts +2 -0
- package/datepicker/chronos/i18n/uk.d.ts +2 -0
- package/datepicker/chronos/i18n/vi.d.ts +2 -0
- package/datepicker/chronos/i18n/zh-cn.d.ts +2 -0
- package/datepicker/chronos/index.d.ts +1 -0
- package/datepicker/chronos/locale/calendar.d.ts +8 -0
- package/datepicker/chronos/locale/locale.class.d.ts +143 -0
- package/datepicker/chronos/locale/locale.defaults.d.ts +11 -0
- package/datepicker/chronos/locale/locales.d.ts +7 -0
- package/datepicker/chronos/moment/add-subtract.d.ts +5 -0
- package/datepicker/chronos/moment/calendar.d.ts +15 -0
- package/datepicker/chronos/moment/diff.d.ts +3 -0
- package/datepicker/chronos/moment/min-max.d.ts +2 -0
- package/datepicker/chronos/parse/regex.d.ts +22 -0
- package/datepicker/chronos/parse/token.d.ts +5 -0
- package/datepicker/chronos/public_api.d.ts +57 -0
- package/datepicker/chronos/test/chain.d.ts +214 -0
- package/datepicker/chronos/types.d.ts +36 -0
- package/datepicker/chronos/units/aliases.d.ts +7 -0
- package/datepicker/chronos/units/constants.d.ts +9 -0
- package/datepicker/chronos/units/day-of-month.d.ts +1 -0
- package/datepicker/chronos/units/day-of-week.d.ts +20 -0
- package/datepicker/chronos/units/day-of-year.d.ts +3 -0
- package/datepicker/chronos/units/hour.d.ts +1 -0
- package/datepicker/chronos/units/index.d.ts +18 -0
- package/datepicker/chronos/units/millisecond.d.ts +1 -0
- package/datepicker/chronos/units/minute.d.ts +1 -0
- package/datepicker/chronos/units/month.d.ts +2 -0
- package/datepicker/chronos/units/offset.d.ts +10 -0
- package/datepicker/chronos/units/priorities.d.ts +1 -0
- package/datepicker/chronos/units/quarter.d.ts +3 -0
- package/datepicker/chronos/units/second.d.ts +1 -0
- package/datepicker/chronos/units/timestamp.d.ts +1 -0
- package/datepicker/chronos/units/timezone.d.ts +3 -0
- package/datepicker/chronos/units/week-calendar-utils.d.ts +9 -0
- package/datepicker/chronos/units/week-year.d.ts +8 -0
- package/datepicker/chronos/units/week.d.ts +6 -0
- package/datepicker/chronos/units/year.d.ts +4 -0
- package/datepicker/chronos/utils/abs-ceil.d.ts +1 -0
- package/datepicker/chronos/utils/abs-round.d.ts +1 -0
- package/datepicker/chronos/utils/compare-arrays.d.ts +1 -0
- package/datepicker/chronos/utils/date-compare.d.ts +9 -0
- package/datepicker/chronos/utils/date-getters.d.ts +18 -0
- package/datepicker/chronos/utils/date-setters.d.ts +12 -0
- package/datepicker/chronos/utils/defaults.d.ts +1 -0
- package/datepicker/chronos/utils/start-end-of.d.ts +3 -0
- package/datepicker/chronos/utils/type-checks.d.ts +12 -0
- package/datepicker/chronos/utils/zero-fill.d.ts +1 -0
- package/datepicker/chronos/utils.d.ts +2 -0
- package/datepicker/component-loader/bs-component-ref.class.d.ts +5 -0
- package/datepicker/component-loader/component-loader.class.d.ts +75 -0
- package/datepicker/component-loader/component-loader.factory.d.ts +21 -0
- package/datepicker/component-loader/content-ref.class.d.ts +7 -0
- package/datepicker/component-loader/index.d.ts +1 -0
- package/datepicker/component-loader/listen-options.model.d.ts +11 -0
- package/datepicker/component-loader/public_api.d.ts +4 -0
- package/datepicker/date-formatter.d.ts +3 -0
- package/datepicker/datepicker-animations.d.ts +3 -0
- package/datepicker/datepicker-inner.component.d.ts +78 -0
- package/datepicker/datepicker.component.d.ts +81 -0
- package/datepicker/datepicker.config.d.ts +22 -0
- package/datepicker/datepicker.module.d.ts +15 -0
- package/datepicker/daypicker.component.d.ts +17 -0
- package/datepicker/engine/calc-days-calendar.d.ts +2 -0
- package/datepicker/engine/flag-days-calendar.d.ts +17 -0
- package/datepicker/engine/flag-months-calendar.d.ts +12 -0
- package/datepicker/engine/flag-years-calendar.d.ts +12 -0
- package/datepicker/engine/format-days-calendar.d.ts +4 -0
- package/datepicker/engine/format-months-calendar.d.ts +2 -0
- package/datepicker/engine/format-years-calendar.d.ts +4 -0
- package/datepicker/engine/view-mode.d.ts +2 -0
- package/datepicker/index.d.ts +1 -0
- package/datepicker/mini-ngrx/index.d.ts +1 -0
- package/datepicker/mini-ngrx/public_api.d.ts +7 -0
- package/datepicker/mini-ngrx/state.class.d.ts +8 -0
- package/datepicker/mini-ngrx/store.class.d.ts +16 -0
- package/datepicker/models/index.d.ts +102 -0
- package/datepicker/monthpicker.component.d.ts +14 -0
- package/datepicker/positioning/index.d.ts +1 -0
- package/datepicker/positioning/models/index.d.ts +41 -0
- package/datepicker/positioning/modifiers/arrow.d.ts +2 -0
- package/datepicker/positioning/modifiers/flip.d.ts +2 -0
- package/datepicker/positioning/modifiers/index.d.ts +5 -0
- package/datepicker/positioning/modifiers/initData.d.ts +2 -0
- package/datepicker/positioning/modifiers/preventOverflow.d.ts +2 -0
- package/datepicker/positioning/modifiers/shift.d.ts +2 -0
- package/datepicker/positioning/ng-positioning.d.ts +8 -0
- package/datepicker/positioning/positioning.service.d.ts +48 -0
- package/datepicker/positioning/public_api.d.ts +2 -0
- package/datepicker/positioning/utils/computeAutoPlacement.d.ts +2 -0
- package/datepicker/positioning/utils/findCommonOffsetParent.d.ts +1 -0
- package/datepicker/positioning/utils/getBordersSize.d.ts +4 -0
- package/datepicker/positioning/utils/getBoundaries.d.ts +1 -0
- package/datepicker/positioning/utils/getBoundingClientRect.d.ts +2 -0
- package/datepicker/positioning/utils/getClientRect.d.ts +5 -0
- package/datepicker/positioning/utils/getFixedPositionOffsetParent.d.ts +4 -0
- package/datepicker/positioning/utils/getOffsetParent.d.ts +1 -0
- package/datepicker/positioning/utils/getOffsetRectRelativeToArbitraryNode.d.ts +2 -0
- package/datepicker/positioning/utils/getOffsets.d.ts +2 -0
- package/datepicker/positioning/utils/getOppositePlacement.d.ts +4 -0
- package/datepicker/positioning/utils/getOppositeVariation.d.ts +4 -0
- package/datepicker/positioning/utils/getOuterSizes.d.ts +7 -0
- package/datepicker/positioning/utils/getParentNode.d.ts +4 -0
- package/datepicker/positioning/utils/getReferenceOffsets.d.ts +2 -0
- package/datepicker/positioning/utils/getRoot.d.ts +4 -0
- package/datepicker/positioning/utils/getScroll.d.ts +4 -0
- package/datepicker/positioning/utils/getScrollParent.d.ts +1 -0
- package/datepicker/positioning/utils/getStyleComputedProperty.d.ts +4 -0
- package/datepicker/positioning/utils/getTargetOffsets.d.ts +2 -0
- package/datepicker/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.d.ts +2 -0
- package/datepicker/positioning/utils/getWindowSizes.d.ts +4 -0
- package/datepicker/positioning/utils/includeScroll.d.ts +2 -0
- package/datepicker/positioning/utils/index.d.ts +23 -0
- package/datepicker/positioning/utils/isBrowser.d.ts +1 -0
- package/datepicker/positioning/utils/isFixed.d.ts +1 -0
- package/datepicker/positioning/utils/isIE.d.ts +1 -0
- package/datepicker/positioning/utils/isModifierEnabled.d.ts +4 -0
- package/datepicker/positioning/utils/isNumeric.d.ts +4 -0
- package/datepicker/positioning/utils/isOffsetContainer.d.ts +1 -0
- package/datepicker/positioning/utils/setStyles.d.ts +5 -0
- package/datepicker/positioning/utils/updateContainerClass.d.ts +6 -0
- package/datepicker/public_api.d.ts +25 -0
- package/datepicker/reducer/_defaults.d.ts +2 -0
- package/datepicker/reducer/bs-datepicker.actions.d.ts +46 -0
- package/datepicker/reducer/bs-datepicker.effects.d.ts +41 -0
- package/datepicker/reducer/bs-datepicker.reducer.d.ts +3 -0
- package/datepicker/reducer/bs-datepicker.state.d.ts +43 -0
- package/datepicker/reducer/bs-datepicker.store.d.ts +8 -0
- package/datepicker/themes/bs/bs-calendar-layout.component.d.ts +5 -0
- package/datepicker/themes/bs/bs-current-date-view.component.d.ts +6 -0
- package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +17 -0
- package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +36 -0
- package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +14 -0
- package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts +13 -0
- package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +12 -0
- package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +40 -0
- package/datepicker/themes/bs/bs-daterangepicker-inline-container.component.d.ts +13 -0
- package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +26 -0
- package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +16 -0
- package/datepicker/themes/bs/bs-timepicker-view.component.d.ts +8 -0
- package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +16 -0
- package/datepicker/utils/bs-calendar-utils.d.ts +10 -0
- package/datepicker/utils/matrix-utils.d.ts +9 -0
- package/datepicker/utils-v2/decorators.d.ts +1 -0
- package/datepicker/utils-v2/facade/browser.d.ts +23 -0
- package/datepicker/utils-v2/index.d.ts +1 -0
- package/datepicker/utils-v2/linked-list.class.d.ts +26 -0
- package/datepicker/utils-v2/public_api.d.ts +10 -0
- package/datepicker/utils-v2/theme-provider.d.ts +2 -0
- package/datepicker/utils-v2/trigger.class.d.ts +6 -0
- package/datepicker/utils-v2/triggers.d.ts +18 -0
- package/datepicker/utils-v2/utils.class.d.ts +4 -0
- package/datepicker/utils-v2/warn-once.d.ts +1 -0
- package/datepicker/yearpicker.component.d.ts +14 -0
- package/esm2020/datepicker/base/bs-datepicker-container.mjs +47 -0
- package/esm2020/datepicker/bs-datepicker-inline.component.mjs +137 -0
- package/esm2020/datepicker/bs-datepicker-inline.config.mjs +14 -0
- package/esm2020/datepicker/bs-datepicker-input.directive.mjs +160 -0
- package/esm2020/datepicker/bs-datepicker.component.mjs +254 -0
- package/esm2020/datepicker/bs-datepicker.config.mjs +87 -0
- package/esm2020/datepicker/bs-datepicker.module.mjs +126 -0
- package/esm2020/datepicker/bs-daterangepicker-inline.component.mjs +134 -0
- package/esm2020/datepicker/bs-daterangepicker-inline.config.mjs +21 -0
- package/esm2020/datepicker/bs-daterangepicker-input.directive.mjs +192 -0
- package/esm2020/datepicker/bs-daterangepicker.component.mjs +240 -0
- package/esm2020/datepicker/bs-daterangepicker.config.mjs +19 -0
- package/esm2020/datepicker/bs-locale.service.mjs +32 -0
- package/esm2020/datepicker/chronos/create/check-overflow.mjs +30 -0
- package/esm2020/datepicker/chronos/create/clone.mjs +6 -0
- package/esm2020/datepicker/chronos/create/date-from-array.mjs +17 -0
- package/esm2020/datepicker/chronos/create/from-anything.mjs +107 -0
- package/esm2020/datepicker/chronos/create/from-array.mjs +136 -0
- package/esm2020/datepicker/chronos/create/from-object.mjs +17 -0
- package/esm2020/datepicker/chronos/create/from-string-and-array.mjs +38 -0
- package/esm2020/datepicker/chronos/create/from-string-and-format.mjs +106 -0
- package/esm2020/datepicker/chronos/create/from-string.mjs +227 -0
- package/esm2020/datepicker/chronos/create/local.mjs +16 -0
- package/esm2020/datepicker/chronos/create/parsing-flags.mjs +26 -0
- package/esm2020/datepicker/chronos/create/parsing.types.mjs +2 -0
- package/esm2020/datepicker/chronos/create/valid.mjs +42 -0
- package/esm2020/datepicker/chronos/duration/bubble.mjs +47 -0
- package/esm2020/datepicker/chronos/duration/constructor.mjs +130 -0
- package/esm2020/datepicker/chronos/duration/create.mjs +113 -0
- package/esm2020/datepicker/chronos/duration/humanize.mjs +80 -0
- package/esm2020/datepicker/chronos/duration/valid.mjs +43 -0
- package/esm2020/datepicker/chronos/format/format.mjs +51 -0
- package/esm2020/datepicker/chronos/format.mjs +46 -0
- package/esm2020/datepicker/chronos/i18n/ar.mjs +128 -0
- package/esm2020/datepicker/chronos/i18n/bg.mjs +94 -0
- package/esm2020/datepicker/chronos/i18n/ca.mjs +91 -0
- package/esm2020/datepicker/chronos/i18n/cs.mjs +179 -0
- package/esm2020/datepicker/chronos/i18n/da.mjs +50 -0
- package/esm2020/datepicker/chronos/i18n/de.mjs +72 -0
- package/esm2020/datepicker/chronos/i18n/en-gb.mjs +61 -0
- package/esm2020/datepicker/chronos/i18n/es-do.mjs +85 -0
- package/esm2020/datepicker/chronos/i18n/es-us.mjs +79 -0
- package/esm2020/datepicker/chronos/i18n/es.mjs +84 -0
- package/esm2020/datepicker/chronos/i18n/et.mjs +73 -0
- package/esm2020/datepicker/chronos/i18n/fi.mjs +100 -0
- package/esm2020/datepicker/chronos/i18n/fr.mjs +76 -0
- package/esm2020/datepicker/chronos/i18n/gl.mjs +84 -0
- package/esm2020/datepicker/chronos/i18n/he.mjs +98 -0
- package/esm2020/datepicker/chronos/i18n/hi.mjs +124 -0
- package/esm2020/datepicker/chronos/i18n/hr.mjs +62 -0
- package/esm2020/datepicker/chronos/i18n/hu.mjs +104 -0
- package/esm2020/datepicker/chronos/i18n/id.mjs +83 -0
- package/esm2020/datepicker/chronos/i18n/it.mjs +65 -0
- package/esm2020/datepicker/chronos/i18n/ja.mjs +75 -0
- package/esm2020/datepicker/chronos/i18n/ka.mjs +87 -0
- package/esm2020/datepicker/chronos/i18n/kk.mjs +76 -0
- package/esm2020/datepicker/chronos/i18n/ko.mjs +77 -0
- package/esm2020/datepicker/chronos/i18n/lt.mjs +116 -0
- package/esm2020/datepicker/chronos/i18n/lv.mjs +56 -0
- package/esm2020/datepicker/chronos/i18n/mn.mjs +99 -0
- package/esm2020/datepicker/chronos/i18n/nb.mjs +53 -0
- package/esm2020/datepicker/chronos/i18n/nl-be.mjs +81 -0
- package/esm2020/datepicker/chronos/i18n/nl.mjs +80 -0
- package/esm2020/datepicker/chronos/i18n/pl.mjs +126 -0
- package/esm2020/datepicker/chronos/i18n/pt-br.mjs +56 -0
- package/esm2020/datepicker/chronos/i18n/ro.mjs +66 -0
- package/esm2020/datepicker/chronos/i18n/ru.mjs +181 -0
- package/esm2020/datepicker/chronos/i18n/sk.mjs +157 -0
- package/esm2020/datepicker/chronos/i18n/sl.mjs +184 -0
- package/esm2020/datepicker/chronos/i18n/sq.mjs +54 -0
- package/esm2020/datepicker/chronos/i18n/sv.mjs +63 -0
- package/esm2020/datepicker/chronos/i18n/th-be.mjs +74 -0
- package/esm2020/datepicker/chronos/i18n/th.mjs +59 -0
- package/esm2020/datepicker/chronos/i18n/tr.mjs +82 -0
- package/esm2020/datepicker/chronos/i18n/uk.mjs +147 -0
- package/esm2020/datepicker/chronos/i18n/vi.mjs +74 -0
- package/esm2020/datepicker/chronos/i18n/zh-cn.mjs +114 -0
- package/esm2020/datepicker/chronos/index.mjs +2 -0
- package/esm2020/datepicker/chronos/locale/calendar.mjs +9 -0
- package/esm2020/datepicker/chronos/locale/locale.class.mjs +532 -0
- package/esm2020/datepicker/chronos/locale/locale.defaults.mjs +40 -0
- package/esm2020/datepicker/chronos/locale/locales.mjs +229 -0
- package/esm2020/datepicker/chronos/moment/add-subtract.mjs +35 -0
- package/esm2020/datepicker/chronos/moment/calendar.mjs +41 -0
- package/esm2020/datepicker/chronos/moment/diff.mjs +70 -0
- package/esm2020/datepicker/chronos/moment/min-max.mjs +38 -0
- package/esm2020/datepicker/chronos/parse/regex.mjs +49 -0
- package/esm2020/datepicker/chronos/parse/token.mjs +32 -0
- package/esm2020/datepicker/chronos/public_api.mjs +56 -0
- package/esm2020/datepicker/chronos/test/chain.mjs +711 -0
- package/esm2020/datepicker/chronos/types.mjs +2 -0
- package/esm2020/datepicker/chronos/units/aliases.mjs +35 -0
- package/esm2020/datepicker/chronos/units/constants.mjs +11 -0
- package/esm2020/datepicker/chronos/units/day-of-month.mjs +31 -0
- package/esm2020/datepicker/chronos/units/day-of-week.mjs +129 -0
- package/esm2020/datepicker/chronos/units/day-of-year.mjs +37 -0
- package/esm2020/datepicker/chronos/units/hour.mjs +127 -0
- package/esm2020/datepicker/chronos/units/index.mjs +19 -0
- package/esm2020/datepicker/chronos/units/millisecond.mjs +60 -0
- package/esm2020/datepicker/chronos/units/minute.mjs +23 -0
- package/esm2020/datepicker/chronos/units/month.mjs +63 -0
- package/esm2020/datepicker/chronos/units/offset.mjs +210 -0
- package/esm2020/datepicker/chronos/units/priorities.mjs +21 -0
- package/esm2020/datepicker/chronos/units/quarter.mjs +39 -0
- package/esm2020/datepicker/chronos/units/second.mjs +23 -0
- package/esm2020/datepicker/chronos/units/timestamp.mjs +28 -0
- package/esm2020/datepicker/chronos/units/timezone.mjs +19 -0
- package/esm2020/datepicker/chronos/units/week-calendar-utils.mjs +70 -0
- package/esm2020/datepicker/chronos/units/week-year.mjs +101 -0
- package/esm2020/datepicker/chronos/units/week.mjs +58 -0
- package/esm2020/datepicker/chronos/units/year.mjs +60 -0
- package/esm2020/datepicker/chronos/utils/abs-ceil.mjs +4 -0
- package/esm2020/datepicker/chronos/utils/abs-round.mjs +4 -0
- package/esm2020/datepicker/chronos/utils/compare-arrays.mjs +16 -0
- package/esm2020/datepicker/chronos/utils/date-compare.mjs +55 -0
- package/esm2020/datepicker/chronos/utils/date-getters.mjs +67 -0
- package/esm2020/datepicker/chronos/utils/date-setters.mjs +75 -0
- package/esm2020/datepicker/chronos/utils/defaults.mjs +11 -0
- package/esm2020/datepicker/chronos/utils/start-end-of.mjs +57 -0
- package/esm2020/datepicker/chronos/utils/type-checks.mjs +56 -0
- package/esm2020/datepicker/chronos/utils/zero-fill.mjs +10 -0
- package/esm2020/datepicker/chronos/utils.mjs +7 -0
- package/esm2020/datepicker/component-loader/bs-component-ref.class.mjs +3 -0
- package/esm2020/datepicker/component-loader/component-loader.class.mjs +272 -0
- package/esm2020/datepicker/component-loader/component-loader.factory.mjs +29 -0
- package/esm2020/datepicker/component-loader/content-ref.class.mjs +12 -0
- package/esm2020/datepicker/component-loader/index.mjs +2 -0
- package/esm2020/datepicker/component-loader/listen-options.model.mjs +2 -0
- package/esm2020/datepicker/component-loader/public_api.mjs +5 -0
- package/esm2020/datepicker/date-formatter.mjs +7 -0
- package/esm2020/datepicker/datepicker-animations.mjs +16 -0
- package/esm2020/datepicker/datepicker-inner.component.mjs +323 -0
- package/esm2020/datepicker/datepicker.component.mjs +182 -0
- package/esm2020/datepicker/datepicker.config.mjs +32 -0
- package/esm2020/datepicker/datepicker.module.mjs +49 -0
- package/esm2020/datepicker/daypicker.component.mjs +314 -0
- package/esm2020/datepicker/engine/calc-days-calendar.mjs +19 -0
- package/esm2020/datepicker/engine/flag-days-calendar.mjs +91 -0
- package/esm2020/datepicker/engine/flag-months-calendar.mjs +41 -0
- package/esm2020/datepicker/engine/flag-years-calendar.mjs +39 -0
- package/esm2020/datepicker/engine/format-days-calendar.mjs +29 -0
- package/esm2020/datepicker/engine/format-months-calendar.mjs +19 -0
- package/esm2020/datepicker/engine/format-years-calendar.mjs +35 -0
- package/esm2020/datepicker/engine/view-mode.mjs +4 -0
- package/esm2020/datepicker/index.mjs +2 -0
- package/esm2020/datepicker/mini-ngrx/index.mjs +2 -0
- package/esm2020/datepicker/mini-ngrx/public_api.mjs +3 -0
- package/esm2020/datepicker/mini-ngrx/state.class.mjs +16 -0
- package/esm2020/datepicker/mini-ngrx/store.class.mjs +43 -0
- package/esm2020/datepicker/mis-crystal-design-system-datepicker.mjs +5 -0
- package/esm2020/datepicker/models/index.mjs +9 -0
- package/esm2020/datepicker/monthpicker.component.mjs +145 -0
- package/esm2020/datepicker/positioning/index.mjs +2 -0
- package/esm2020/datepicker/positioning/models/index.mjs +2 -0
- package/esm2020/datepicker/positioning/modifiers/arrow.mjs +56 -0
- package/esm2020/datepicker/positioning/modifiers/flip.mjs +66 -0
- package/esm2020/datepicker/positioning/modifiers/index.mjs +6 -0
- package/esm2020/datepicker/positioning/modifiers/initData.mjs +42 -0
- package/esm2020/datepicker/positioning/modifiers/preventOverflow.mjs +59 -0
- package/esm2020/datepicker/positioning/modifiers/shift.mjs +24 -0
- package/esm2020/datepicker/positioning/ng-positioning.mjs +30 -0
- package/esm2020/datepicker/positioning/positioning.service.mjs +75 -0
- package/esm2020/datepicker/positioning/public_api.mjs +3 -0
- package/esm2020/datepicker/positioning/utils/computeAutoPlacement.mjs +57 -0
- package/esm2020/datepicker/positioning/utils/findCommonOffsetParent.mjs +40 -0
- package/esm2020/datepicker/positioning/utils/getBordersSize.mjs +10 -0
- package/esm2020/datepicker/positioning/utils/getBoundaries.mjs +56 -0
- package/esm2020/datepicker/positioning/utils/getBoundingClientRect.mjs +55 -0
- package/esm2020/datepicker/positioning/utils/getClientRect.mjs +8 -0
- package/esm2020/datepicker/positioning/utils/getFixedPositionOffsetParent.mjs +17 -0
- package/esm2020/datepicker/positioning/utils/getOffsetParent.mjs +32 -0
- package/esm2020/datepicker/positioning/utils/getOffsetRectRelativeToArbitraryNode.mjs +51 -0
- package/esm2020/datepicker/positioning/utils/getOffsets.mjs +11 -0
- package/esm2020/datepicker/positioning/utils/getOppositePlacement.mjs +8 -0
- package/esm2020/datepicker/positioning/utils/getOppositeVariation.mjs +13 -0
- package/esm2020/datepicker/positioning/utils/getOuterSizes.mjs +14 -0
- package/esm2020/datepicker/positioning/utils/getParentNode.mjs +10 -0
- package/esm2020/datepicker/positioning/utils/getReferenceOffsets.mjs +13 -0
- package/esm2020/datepicker/positioning/utils/getRoot.mjs +10 -0
- package/esm2020/datepicker/positioning/utils/getScroll.mjs +14 -0
- package/esm2020/datepicker/positioning/utils/getScrollParent.mjs +26 -0
- package/esm2020/datepicker/positioning/utils/getStyleComputedProperty.mjs +13 -0
- package/esm2020/datepicker/positioning/utils/getTargetOffsets.mjs +30 -0
- package/esm2020/datepicker/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +19 -0
- package/esm2020/datepicker/positioning/utils/getWindowSizes.mjs +18 -0
- package/esm2020/datepicker/positioning/utils/includeScroll.mjs +15 -0
- package/esm2020/datepicker/positioning/utils/index.mjs +24 -0
- package/esm2020/datepicker/positioning/utils/isBrowser.mjs +2 -0
- package/esm2020/datepicker/positioning/utils/isFixed.mjs +16 -0
- package/esm2020/datepicker/positioning/utils/isIE.mjs +16 -0
- package/esm2020/datepicker/positioning/utils/isModifierEnabled.mjs +10 -0
- package/esm2020/datepicker/positioning/utils/isNumeric.mjs +7 -0
- package/esm2020/datepicker/positioning/utils/isOffsetContainer.mjs +9 -0
- package/esm2020/datepicker/positioning/utils/setStyles.mjs +17 -0
- package/esm2020/datepicker/positioning/utils/updateContainerClass.mjs +22 -0
- package/esm2020/datepicker/public_api.mjs +25 -0
- package/esm2020/datepicker/reducer/_defaults.mjs +5 -0
- package/esm2020/datepicker/reducer/bs-datepicker.actions.mjs +136 -0
- package/esm2020/datepicker/reducer/bs-datepicker.effects.mjs +169 -0
- package/esm2020/datepicker/reducer/bs-datepicker.reducer.mjs +302 -0
- package/esm2020/datepicker/reducer/bs-datepicker.state.mjs +12 -0
- package/esm2020/datepicker/reducer/bs-datepicker.store.mjs +21 -0
- package/esm2020/datepicker/themes/bs/bs-calendar-layout.component.mjs +54 -0
- package/esm2020/datepicker/themes/bs/bs-current-date-view.component.mjs +23 -0
- package/esm2020/datepicker/themes/bs/bs-custom-dates-view.component.mjs +78 -0
- package/esm2020/datepicker/themes/bs/bs-datepicker-container.component.mjs +319 -0
- package/esm2020/datepicker/themes/bs/bs-datepicker-day-decorator.directive.mjs +52 -0
- package/esm2020/datepicker/themes/bs/bs-datepicker-inline-container.component.mjs +203 -0
- package/esm2020/datepicker/themes/bs/bs-datepicker-navigation-view.component.mjs +111 -0
- package/esm2020/datepicker/themes/bs/bs-daterangepicker-container.component.mjs +362 -0
- package/esm2020/datepicker/themes/bs/bs-daterangepicker-inline-container.component.mjs +203 -0
- package/esm2020/datepicker/themes/bs/bs-days-calendar-view.component.mjs +308 -0
- package/esm2020/datepicker/themes/bs/bs-months-calendar-view.component.mjs +106 -0
- package/esm2020/datepicker/themes/bs/bs-timepicker-view.component.mjs +64 -0
- package/esm2020/datepicker/themes/bs/bs-years-calendar-view.component.mjs +107 -0
- package/esm2020/datepicker/utils/bs-calendar-utils.mjs +43 -0
- package/esm2020/datepicker/utils/matrix-utils.mjs +14 -0
- package/esm2020/datepicker/utils-v2/decorators.mjs +25 -0
- package/esm2020/datepicker/utils-v2/facade/browser.mjs +24 -0
- package/esm2020/datepicker/utils-v2/index.mjs +2 -0
- package/esm2020/datepicker/utils-v2/linked-list.class.mjs +240 -0
- package/esm2020/datepicker/utils-v2/public_api.mjs +11 -0
- package/esm2020/datepicker/utils-v2/theme-provider.mjs +35 -0
- package/esm2020/datepicker/utils-v2/trigger.class.mjs +10 -0
- package/esm2020/datepicker/utils-v2/triggers.mjs +110 -0
- package/esm2020/datepicker/utils-v2/utils.class.mjs +21 -0
- package/esm2020/datepicker/utils-v2/warn-once.mjs +12 -0
- package/esm2020/datepicker/yearpicker.component.mjs +147 -0
- package/fesm2015/mis-crystal-design-system-datepicker.mjs +14950 -0
- package/fesm2015/mis-crystal-design-system-datepicker.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-datepicker.mjs +14572 -0
- package/fesm2020/mis-crystal-design-system-datepicker.mjs.map +1 -0
- package/package.json +9 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { arrow } from './arrow';
|
|
2
|
+
export { flip } from './flip';
|
|
3
|
+
export { initData } from './initData';
|
|
4
|
+
export { preventOverflow } from './preventOverflow';
|
|
5
|
+
export { shift } from './shift';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3Bvc2l0aW9uaW5nL21vZGlmaWVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGFycm93IH0gZnJvbSAnLi9hcnJvdyc7XG5leHBvcnQgeyBmbGlwIH0gZnJvbSAnLi9mbGlwJztcbmV4cG9ydCB7IGluaXREYXRhIH0gZnJvbSAnLi9pbml0RGF0YSc7XG5leHBvcnQgeyBwcmV2ZW50T3ZlcmZsb3cgfSBmcm9tICcuL3ByZXZlbnRPdmVyZmxvdyc7XG5leHBvcnQgeyBzaGlmdCB9IGZyb20gJy4vc2hpZnQnO1xuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { computeAutoPlacement, getReferenceOffsets, getTargetOffsets } from '../utils';
|
|
2
|
+
export function initData(targetElement, hostElement, position, options) {
|
|
3
|
+
const hostElPosition = getReferenceOffsets(targetElement, hostElement);
|
|
4
|
+
if (!position.match(/^(auto)*\s*(left|right|top|bottom)*$/)
|
|
5
|
+
&& !position.match(/^(left|right|top|bottom)*(?: (left|right|top|bottom))?\s*(start|end)*$/)) {
|
|
6
|
+
/* tslint:disable-next-line: no-parameter-reassignment */
|
|
7
|
+
position = 'auto';
|
|
8
|
+
}
|
|
9
|
+
const placementAuto = !!position.match(/auto/g);
|
|
10
|
+
// support old placements 'auto left|right|top|bottom'
|
|
11
|
+
let placement = position.match(/auto\s(left|right|top|bottom)/)
|
|
12
|
+
? position.split(' ')[1] || 'auto'
|
|
13
|
+
: position;
|
|
14
|
+
// Normalize placements that have identical main placement and variation ("right right" => "right").
|
|
15
|
+
const matches = placement.match(/^(left|right|top|bottom)* ?(?!\1)(left|right|top|bottom)?/);
|
|
16
|
+
if (matches) {
|
|
17
|
+
placement = matches[1] + (matches[2] ? ` ${matches[2]}` : '');
|
|
18
|
+
}
|
|
19
|
+
// "left right", "top bottom" etc. placements also considered incorrect.
|
|
20
|
+
if (['left right', 'right left', 'top bottom', 'bottom top'].indexOf(placement) !== -1) {
|
|
21
|
+
placement = 'auto';
|
|
22
|
+
}
|
|
23
|
+
const targetOffset = getTargetOffsets(targetElement, hostElPosition, placement);
|
|
24
|
+
placement = computeAutoPlacement(placement, hostElPosition, targetElement, hostElement, options ? options.allowedPositions : undefined);
|
|
25
|
+
return {
|
|
26
|
+
options,
|
|
27
|
+
instance: {
|
|
28
|
+
target: targetElement,
|
|
29
|
+
host: hostElement,
|
|
30
|
+
arrow: null
|
|
31
|
+
},
|
|
32
|
+
offsets: {
|
|
33
|
+
target: targetOffset,
|
|
34
|
+
host: hostElPosition,
|
|
35
|
+
arrow: null
|
|
36
|
+
},
|
|
37
|
+
positionFixed: false,
|
|
38
|
+
placement,
|
|
39
|
+
placementAuto
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdERhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3Bvc2l0aW9uaW5nL21vZGlmaWVycy9pbml0RGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDakIsTUFBTSxVQUFVLENBQUM7QUFJbEIsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsYUFBMEIsRUFBRSxXQUF3QixFQUFFLFFBQWdCLEVBQUUsT0FBZ0I7SUFHeEYsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRXZFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDO1dBQ3RELENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyx3RUFBd0UsQ0FBQyxFQUFFO1FBQzVGLHlEQUF5RDtRQUN6RCxRQUFRLEdBQUcsTUFBTSxDQUFDO0tBQ25CO0lBRUgsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFaEQsc0RBQXNEO0lBQ3RELElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsK0JBQStCLENBQUM7UUFDN0QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTTtRQUNsQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBRWIsb0dBQW9HO0lBQ3BHLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztJQUM3RixJQUFJLE9BQU8sRUFBRTtRQUNYLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQy9EO0lBRUQsd0VBQXdFO0lBQ3hFLElBQUksQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDdEYsU0FBUyxHQUFHLE1BQU0sQ0FBQztLQUNwQjtJQUVELE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFaEYsU0FBUyxHQUFHLG9CQUFvQixDQUM5QixTQUFTLEVBQ1QsY0FBYyxFQUNkLGFBQWEsRUFDYixXQUFXLEVBQ1gsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDL0MsQ0FBQztJQUVGLE9BQU87UUFDTCxPQUFPO1FBQ1AsUUFBUSxFQUFFO1lBQ1IsTUFBTSxFQUFFLGFBQWE7WUFDckIsSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNELE9BQU8sRUFBRTtZQUNQLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLElBQUksRUFBRSxjQUFjO1lBQ3BCLEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRCxhQUFhLEVBQUUsS0FBSztRQUNwQixTQUFTO1FBQ1QsYUFBYTtLQUNkLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY29tcHV0ZUF1dG9QbGFjZW1lbnQsXG4gIGdldFJlZmVyZW5jZU9mZnNldHMsXG4gIGdldFRhcmdldE9mZnNldHNcbn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBEYXRhLCBPcHRpb25zIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXREYXRhKFxuICB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCwgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwb3NpdGlvbjogc3RyaW5nLCBvcHRpb25zOiBPcHRpb25zXG4pOiBEYXRhIHtcblxuICBjb25zdCBob3N0RWxQb3NpdGlvbiA9IGdldFJlZmVyZW5jZU9mZnNldHModGFyZ2V0RWxlbWVudCwgaG9zdEVsZW1lbnQpO1xuXG4gIGlmICghcG9zaXRpb24ubWF0Y2goL14oYXV0bykqXFxzKihsZWZ0fHJpZ2h0fHRvcHxib3R0b20pKiQvKVxuICAgICYmICFwb3NpdGlvbi5tYXRjaCgvXihsZWZ0fHJpZ2h0fHRvcHxib3R0b20pKig/OiAobGVmdHxyaWdodHx0b3B8Ym90dG9tKSk/XFxzKihzdGFydHxlbmQpKiQvKSkge1xuICAgICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1wYXJhbWV0ZXItcmVhc3NpZ25tZW50ICovXG4gICAgICBwb3NpdGlvbiA9ICdhdXRvJztcbiAgICB9XG5cbiAgY29uc3QgcGxhY2VtZW50QXV0byA9ICEhcG9zaXRpb24ubWF0Y2goL2F1dG8vZyk7XG5cbiAgLy8gc3VwcG9ydCBvbGQgcGxhY2VtZW50cyAnYXV0byBsZWZ0fHJpZ2h0fHRvcHxib3R0b20nXG4gIGxldCBwbGFjZW1lbnQgPSBwb3NpdGlvbi5tYXRjaCgvYXV0b1xccyhsZWZ0fHJpZ2h0fHRvcHxib3R0b20pLylcbiAgICA/IHBvc2l0aW9uLnNwbGl0KCcgJylbMV0gfHwgJ2F1dG8nXG4gICAgOiBwb3NpdGlvbjtcblxuICAvLyBOb3JtYWxpemUgcGxhY2VtZW50cyB0aGF0IGhhdmUgaWRlbnRpY2FsIG1haW4gcGxhY2VtZW50IGFuZCB2YXJpYXRpb24gKFwicmlnaHQgcmlnaHRcIiA9PiBcInJpZ2h0XCIpLlxuICBjb25zdCBtYXRjaGVzID0gcGxhY2VtZW50Lm1hdGNoKC9eKGxlZnR8cmlnaHR8dG9wfGJvdHRvbSkqID8oPyFcXDEpKGxlZnR8cmlnaHR8dG9wfGJvdHRvbSk/Lyk7XG4gIGlmIChtYXRjaGVzKSB7XG4gICAgcGxhY2VtZW50ID0gbWF0Y2hlc1sxXSArIChtYXRjaGVzWzJdID8gYCAke21hdGNoZXNbMl19YCA6ICcnKTtcbiAgfVxuXG4gIC8vIFwibGVmdCByaWdodFwiLCBcInRvcCBib3R0b21cIiBldGMuIHBsYWNlbWVudHMgYWxzbyBjb25zaWRlcmVkIGluY29ycmVjdC5cbiAgaWYgKFsnbGVmdCByaWdodCcsICdyaWdodCBsZWZ0JywgJ3RvcCBib3R0b20nLCAnYm90dG9tIHRvcCddLmluZGV4T2YocGxhY2VtZW50KSAhPT0gLTEpIHtcbiAgICBwbGFjZW1lbnQgPSAnYXV0byc7XG4gIH1cblxuICBjb25zdCB0YXJnZXRPZmZzZXQgPSBnZXRUYXJnZXRPZmZzZXRzKHRhcmdldEVsZW1lbnQsIGhvc3RFbFBvc2l0aW9uLCBwbGFjZW1lbnQpO1xuXG4gIHBsYWNlbWVudCA9IGNvbXB1dGVBdXRvUGxhY2VtZW50KFxuICAgIHBsYWNlbWVudCxcbiAgICBob3N0RWxQb3NpdGlvbixcbiAgICB0YXJnZXRFbGVtZW50LFxuICAgIGhvc3RFbGVtZW50LFxuICAgIG9wdGlvbnMgPyBvcHRpb25zLmFsbG93ZWRQb3NpdGlvbnMgOiB1bmRlZmluZWRcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIG9wdGlvbnMsXG4gICAgaW5zdGFuY2U6IHtcbiAgICAgIHRhcmdldDogdGFyZ2V0RWxlbWVudCxcbiAgICAgIGhvc3Q6IGhvc3RFbGVtZW50LFxuICAgICAgYXJyb3c6IG51bGxcbiAgICB9LFxuICAgIG9mZnNldHM6IHtcbiAgICAgIHRhcmdldDogdGFyZ2V0T2Zmc2V0LFxuICAgICAgaG9zdDogaG9zdEVsUG9zaXRpb24sXG4gICAgICBhcnJvdzogbnVsbFxuICAgIH0sXG4gICAgcG9zaXRpb25GaXhlZDogZmFsc2UsXG4gICAgcGxhY2VtZW50LFxuICAgIHBsYWNlbWVudEF1dG9cbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { getBoundaries, isModifierEnabled } from '../utils';
|
|
2
|
+
export function preventOverflow(data) {
|
|
3
|
+
if (!isModifierEnabled(data.options, 'preventOverflow')) {
|
|
4
|
+
return data;
|
|
5
|
+
}
|
|
6
|
+
// NOTE: DOM access here
|
|
7
|
+
// resets the targetOffsets's position so that the document size can be calculated excluding
|
|
8
|
+
// the size of the targetOffsets element itself
|
|
9
|
+
const transformProp = 'transform';
|
|
10
|
+
const targetStyles = data.instance.target.style; // assignment to help minification
|
|
11
|
+
const { top, left, [transformProp]: transform } = targetStyles;
|
|
12
|
+
targetStyles.top = '';
|
|
13
|
+
targetStyles.left = '';
|
|
14
|
+
targetStyles[transformProp] = '';
|
|
15
|
+
const boundaries = getBoundaries(data.instance.target, data.instance.host, 0, // padding
|
|
16
|
+
data.options.modifiers.preventOverflow.boundariesElement || 'scrollParent', false // positionFixed
|
|
17
|
+
);
|
|
18
|
+
// NOTE: DOM access here
|
|
19
|
+
// restores the original style properties after the offsets have been computed
|
|
20
|
+
targetStyles.top = top;
|
|
21
|
+
targetStyles.left = left;
|
|
22
|
+
targetStyles[transformProp] = transform;
|
|
23
|
+
const order = ['left', 'right', 'top', 'bottom'];
|
|
24
|
+
const check = {
|
|
25
|
+
primary(placement) {
|
|
26
|
+
let value = data.offsets.target[placement];
|
|
27
|
+
if (data.offsets.target[placement] < boundaries[placement] &&
|
|
28
|
+
!false // options.escapeWithReference
|
|
29
|
+
) {
|
|
30
|
+
value = Math.max(data.offsets.target[placement], boundaries[placement]);
|
|
31
|
+
}
|
|
32
|
+
return { [placement]: value };
|
|
33
|
+
},
|
|
34
|
+
secondary(placement) {
|
|
35
|
+
const mainSide = placement === 'right' ? 'left' : 'top';
|
|
36
|
+
let value = data.offsets.target[mainSide];
|
|
37
|
+
if (data.offsets.target[placement] > boundaries[placement] &&
|
|
38
|
+
!false // escapeWithReference
|
|
39
|
+
) {
|
|
40
|
+
value = Math.min(data.offsets.target[mainSide], boundaries[placement] -
|
|
41
|
+
(placement === 'right' ? data.offsets.target.width : data.offsets.target.height));
|
|
42
|
+
}
|
|
43
|
+
return { [mainSide]: value };
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
let side;
|
|
47
|
+
order.forEach(placement => {
|
|
48
|
+
side = ['left', 'top']
|
|
49
|
+
.indexOf(placement) !== -1
|
|
50
|
+
? 'primary'
|
|
51
|
+
: 'secondary';
|
|
52
|
+
data.offsets.target = {
|
|
53
|
+
...data.offsets.target,
|
|
54
|
+
...check[side](placement)
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
return data;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmVudE92ZXJmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9wb3NpdGlvbmluZy9tb2RpZmllcnMvcHJldmVudE92ZXJmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHNUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFVO0lBRXhDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLEVBQUU7UUFDdkQsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELHdCQUF3QjtJQUN4Qiw0RkFBNEY7SUFDNUYsK0NBQStDO0lBQy9DLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQztJQUNsQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxrQ0FBa0M7SUFDbkYsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxZQUFZLENBQUM7SUFDL0QsWUFBWSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDdEIsWUFBWSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7SUFDdkIsWUFBWSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUVqQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFDbEIsQ0FBQyxFQUFFLFVBQVU7SUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLElBQUksY0FBYyxFQUMxRSxLQUFLLENBQUMsZ0JBQWdCO0tBQ3ZCLENBQUM7SUFFRix3QkFBd0I7SUFDeEIsOEVBQThFO0lBQzlFLFlBQVksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ3ZCLFlBQVksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLFlBQVksQ0FBQyxhQUFhLENBQUMsR0FBRyxTQUFTLENBQUM7SUFFeEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVqRCxNQUFNLEtBQUssR0FBRztRQUNaLE9BQU8sQ0FBQyxTQUFpQjtZQUN2QixJQUFJLEtBQUssR0FBSSxJQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwRCxJQUNHLElBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7Z0JBQy9ELENBQUMsS0FBSyxDQUFDLDhCQUE4QjtjQUNyQztnQkFDQSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBRSxJQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUNsRjtZQUVELE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2hDLENBQUM7UUFDRCxTQUFTLENBQUMsU0FBaUI7WUFDekIsTUFBTSxRQUFRLEdBQUcsU0FBUyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDeEQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUMsSUFDRyxJQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDO2dCQUMvRCxDQUFDLEtBQUssQ0FBQyxzQkFBc0I7Y0FDN0I7Z0JBQ0EsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQzdCLFVBQVUsQ0FBQyxTQUFTLENBQUM7b0JBQ3JCLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FDakYsQ0FBQzthQUNIO1lBRUQsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDL0IsQ0FBQztLQUNGLENBQUM7SUFFRixJQUFJLElBQVksQ0FBQztJQUVqQixLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3hCLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7YUFDbkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFFaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUc7WUFDcEIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07WUFDdEIsR0FBSSxLQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO1NBQ25DLENBQUM7SUFFSixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEJvdW5kYXJpZXMsIGlzTW9kaWZpZXJFbmFibGVkIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgRGF0YSB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmV2ZW50T3ZlcmZsb3coZGF0YTogRGF0YSkge1xuXG4gIGlmICghaXNNb2RpZmllckVuYWJsZWQoZGF0YS5vcHRpb25zLCAncHJldmVudE92ZXJmbG93JykpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIC8vIE5PVEU6IERPTSBhY2Nlc3MgaGVyZVxuICAvLyByZXNldHMgdGhlIHRhcmdldE9mZnNldHMncyBwb3NpdGlvbiBzbyB0aGF0IHRoZSBkb2N1bWVudCBzaXplIGNhbiBiZSBjYWxjdWxhdGVkIGV4Y2x1ZGluZ1xuICAvLyB0aGUgc2l6ZSBvZiB0aGUgdGFyZ2V0T2Zmc2V0cyBlbGVtZW50IGl0c2VsZlxuICBjb25zdCB0cmFuc2Zvcm1Qcm9wID0gJ3RyYW5zZm9ybSc7XG4gIGNvbnN0IHRhcmdldFN0eWxlcyA9IGRhdGEuaW5zdGFuY2UudGFyZ2V0LnN0eWxlOyAvLyBhc3NpZ25tZW50IHRvIGhlbHAgbWluaWZpY2F0aW9uXG4gIGNvbnN0IHsgdG9wLCBsZWZ0LCBbdHJhbnNmb3JtUHJvcF06IHRyYW5zZm9ybSB9ID0gdGFyZ2V0U3R5bGVzO1xuICB0YXJnZXRTdHlsZXMudG9wID0gJyc7XG4gIHRhcmdldFN0eWxlcy5sZWZ0ID0gJyc7XG4gIHRhcmdldFN0eWxlc1t0cmFuc2Zvcm1Qcm9wXSA9ICcnO1xuXG4gIGNvbnN0IGJvdW5kYXJpZXMgPSBnZXRCb3VuZGFyaWVzKFxuICAgIGRhdGEuaW5zdGFuY2UudGFyZ2V0LFxuICAgIGRhdGEuaW5zdGFuY2UuaG9zdCxcbiAgICAwLCAvLyBwYWRkaW5nXG4gICAgZGF0YS5vcHRpb25zLm1vZGlmaWVycy5wcmV2ZW50T3ZlcmZsb3cuYm91bmRhcmllc0VsZW1lbnQgfHwgJ3Njcm9sbFBhcmVudCcsXG4gICAgZmFsc2UgLy8gcG9zaXRpb25GaXhlZFxuICApO1xuXG4gIC8vIE5PVEU6IERPTSBhY2Nlc3MgaGVyZVxuICAvLyByZXN0b3JlcyB0aGUgb3JpZ2luYWwgc3R5bGUgcHJvcGVydGllcyBhZnRlciB0aGUgb2Zmc2V0cyBoYXZlIGJlZW4gY29tcHV0ZWRcbiAgdGFyZ2V0U3R5bGVzLnRvcCA9IHRvcDtcbiAgdGFyZ2V0U3R5bGVzLmxlZnQgPSBsZWZ0O1xuICB0YXJnZXRTdHlsZXNbdHJhbnNmb3JtUHJvcF0gPSB0cmFuc2Zvcm07XG5cbiAgY29uc3Qgb3JkZXIgPSBbJ2xlZnQnLCAncmlnaHQnLCAndG9wJywgJ2JvdHRvbSddO1xuXG4gIGNvbnN0IGNoZWNrID0ge1xuICAgIHByaW1hcnkocGxhY2VtZW50OiBzdHJpbmcpIHtcbiAgICAgIGxldCB2YWx1ZSA9IChkYXRhIGFzIGFueSkub2Zmc2V0cy50YXJnZXRbcGxhY2VtZW50XTtcbiAgICAgIGlmIChcbiAgICAgICAgKGRhdGEgYXMgYW55KS5vZmZzZXRzLnRhcmdldFtwbGFjZW1lbnRdIDwgYm91bmRhcmllc1twbGFjZW1lbnRdICYmXG4gICAgICAgICFmYWxzZSAvLyBvcHRpb25zLmVzY2FwZVdpdGhSZWZlcmVuY2VcbiAgICAgICkge1xuICAgICAgICB2YWx1ZSA9IE1hdGgubWF4KChkYXRhIGFzIGFueSkub2Zmc2V0cy50YXJnZXRbcGxhY2VtZW50XSwgYm91bmRhcmllc1twbGFjZW1lbnRdKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgW3BsYWNlbWVudF06IHZhbHVlIH07XG4gICAgfSxcbiAgICBzZWNvbmRhcnkocGxhY2VtZW50OiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IG1haW5TaWRlID0gcGxhY2VtZW50ID09PSAncmlnaHQnID8gJ2xlZnQnIDogJ3RvcCc7XG4gICAgICBsZXQgdmFsdWUgPSBkYXRhLm9mZnNldHMudGFyZ2V0W21haW5TaWRlXTtcbiAgICAgIGlmIChcbiAgICAgICAgKGRhdGEgYXMgYW55KS5vZmZzZXRzLnRhcmdldFtwbGFjZW1lbnRdID4gYm91bmRhcmllc1twbGFjZW1lbnRdICYmXG4gICAgICAgICFmYWxzZSAvLyBlc2NhcGVXaXRoUmVmZXJlbmNlXG4gICAgICApIHtcbiAgICAgICAgdmFsdWUgPSBNYXRoLm1pbihcbiAgICAgICAgICBkYXRhLm9mZnNldHMudGFyZ2V0W21haW5TaWRlXSxcbiAgICAgICAgICBib3VuZGFyaWVzW3BsYWNlbWVudF0gLVxuICAgICAgICAgIChwbGFjZW1lbnQgPT09ICdyaWdodCcgPyBkYXRhLm9mZnNldHMudGFyZ2V0LndpZHRoIDogZGF0YS5vZmZzZXRzLnRhcmdldC5oZWlnaHQpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IFttYWluU2lkZV06IHZhbHVlIH07XG4gICAgfVxuICB9O1xuXG4gIGxldCBzaWRlOiBzdHJpbmc7XG5cbiAgb3JkZXIuZm9yRWFjaChwbGFjZW1lbnQgPT4ge1xuICAgIHNpZGUgPSBbJ2xlZnQnLCAndG9wJ11cbiAgICAgIC5pbmRleE9mKHBsYWNlbWVudCkgIT09IC0xXG4gICAgICA/ICdwcmltYXJ5J1xuICAgICAgOiAnc2Vjb25kYXJ5JztcblxuICAgIGRhdGEub2Zmc2V0cy50YXJnZXQgPSB7XG4gICAgICAuLi5kYXRhLm9mZnNldHMudGFyZ2V0LFxuICAgICAgLi4uKGNoZWNrIGFzIGFueSlbc2lkZV0ocGxhY2VtZW50KVxuICAgIH07XG5cbiAgfSk7XG5cbiAgcmV0dXJuIGRhdGE7XG59XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export function shift(data) {
|
|
2
|
+
const placement = data.placement;
|
|
3
|
+
const basePlacement = placement.split(' ')[0];
|
|
4
|
+
const shiftVariation = placement.split(' ')[1];
|
|
5
|
+
if (shiftVariation) {
|
|
6
|
+
const { host, target } = data.offsets;
|
|
7
|
+
const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
|
|
8
|
+
const side = isVertical ? 'left' : 'top';
|
|
9
|
+
const measurement = isVertical ? 'width' : 'height';
|
|
10
|
+
const shiftOffsets = {
|
|
11
|
+
start: { [side]: host[side] },
|
|
12
|
+
end: {
|
|
13
|
+
[side]: host[side] + host[measurement] - target[measurement]
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
data.offsets.target = {
|
|
17
|
+
...target, ...{
|
|
18
|
+
[side]: (side === shiftVariation ? shiftOffsets.start[side] : shiftOffsets.end[side])
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return data;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3Bvc2l0aW9uaW5nL21vZGlmaWVycy9zaGlmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsS0FBSyxDQUFDLElBQVU7SUFDOUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNqQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFL0MsSUFBSSxjQUFjLEVBQUU7UUFDbEIsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRSxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3pDLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFFcEQsTUFBTSxZQUFZLEdBQUc7WUFDbkIsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0IsR0FBRyxFQUFFO2dCQUNILENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO2FBQzdEO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHO1lBQ3BCLEdBQUcsTUFBTSxFQUFFLEdBQUc7Z0JBQ1osQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsQ0FBQyxDQUFFLFlBQW9CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBRSxZQUFvQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4RztTQUNGLENBQUM7S0FDSDtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGEgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2hpZnQoZGF0YTogRGF0YSk6IERhdGEge1xuICBjb25zdCBwbGFjZW1lbnQgPSBkYXRhLnBsYWNlbWVudDtcbiAgY29uc3QgYmFzZVBsYWNlbWVudCA9IHBsYWNlbWVudC5zcGxpdCgnICcpWzBdO1xuICBjb25zdCBzaGlmdFZhcmlhdGlvbiA9IHBsYWNlbWVudC5zcGxpdCgnICcpWzFdO1xuXG4gIGlmIChzaGlmdFZhcmlhdGlvbikge1xuICAgIGNvbnN0IHsgaG9zdCwgdGFyZ2V0IH0gPSBkYXRhLm9mZnNldHM7XG4gICAgY29uc3QgaXNWZXJ0aWNhbCA9IFsnYm90dG9tJywgJ3RvcCddLmluZGV4T2YoYmFzZVBsYWNlbWVudCkgIT09IC0xO1xuICAgIGNvbnN0IHNpZGUgPSBpc1ZlcnRpY2FsID8gJ2xlZnQnIDogJ3RvcCc7XG4gICAgY29uc3QgbWVhc3VyZW1lbnQgPSBpc1ZlcnRpY2FsID8gJ3dpZHRoJyA6ICdoZWlnaHQnO1xuXG4gICAgY29uc3Qgc2hpZnRPZmZzZXRzID0ge1xuICAgICAgc3RhcnQ6IHsgW3NpZGVdOiBob3N0W3NpZGVdIH0sXG4gICAgICBlbmQ6IHtcbiAgICAgICAgW3NpZGVdOiBob3N0W3NpZGVdICsgaG9zdFttZWFzdXJlbWVudF0gLSB0YXJnZXRbbWVhc3VyZW1lbnRdXG4gICAgICB9XG4gICAgfTtcblxuICAgIGRhdGEub2Zmc2V0cy50YXJnZXQgPSB7XG4gICAgICAuLi50YXJnZXQsIC4uLntcbiAgICAgICAgW3NpZGVdOiAoc2lkZSA9PT0gc2hpZnRWYXJpYXRpb24gPyAoc2hpZnRPZmZzZXRzIGFzIGFueSkuc3RhcnRbc2lkZV0gOiAoc2hpZnRPZmZzZXRzIGFzIGFueSkuZW5kW3NpZGVdKVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICByZXR1cm4gZGF0YTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { getOffsets, getReferenceOffsets, updateContainerClass, setStyles } from './utils';
|
|
2
|
+
import { arrow, flip, preventOverflow, shift, initData } from './modifiers';
|
|
3
|
+
export class Positioning {
|
|
4
|
+
position(hostElement, targetElement, round = true) {
|
|
5
|
+
return this.offset(hostElement, targetElement, false);
|
|
6
|
+
}
|
|
7
|
+
offset(hostElement, targetElement, round = true) {
|
|
8
|
+
return getReferenceOffsets(targetElement, hostElement);
|
|
9
|
+
}
|
|
10
|
+
positionElements(hostElement, targetElement, position, appendToBody, options) {
|
|
11
|
+
const chainOfModifiers = [flip, shift, preventOverflow, arrow];
|
|
12
|
+
return chainOfModifiers.reduce((modifiedData, modifier) => modifier(modifiedData), initData(targetElement, hostElement, position, options));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
const positionService = new Positioning();
|
|
16
|
+
export function positionElements(hostElement, targetElement, placement, appendToBody, options, renderer) {
|
|
17
|
+
const data = positionService.positionElements(hostElement, targetElement, placement, appendToBody, options);
|
|
18
|
+
const offsets = getOffsets(data);
|
|
19
|
+
setStyles(targetElement, {
|
|
20
|
+
'will-change': 'transform',
|
|
21
|
+
top: '0px',
|
|
22
|
+
left: '0px',
|
|
23
|
+
transform: `translate3d(${offsets.left}px, ${offsets.top}px, 0px)`
|
|
24
|
+
}, renderer);
|
|
25
|
+
if (data.instance.arrow) {
|
|
26
|
+
setStyles(data.instance.arrow, data.offsets.arrow, renderer);
|
|
27
|
+
}
|
|
28
|
+
updateContainerClass(data, renderer);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctcG9zaXRpb25pbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3Bvc2l0aW9uaW5nL25nLXBvc2l0aW9uaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTNGLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSTVFLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFFBQVEsQ0FBQyxXQUF3QixFQUFFLGFBQTBCLEVBQUUsS0FBSyxHQUFHLElBQUk7UUFDekUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUF3QixFQUFFLGFBQTBCLEVBQUUsS0FBSyxHQUFHLElBQUk7UUFDdkUsT0FBTyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELGdCQUFnQixDQUNkLFdBQXdCLEVBQ3hCLGFBQTBCLEVBQzFCLFFBQWdCLEVBQ2hCLFlBQXNCLEVBQ3RCLE9BQWlCO1FBRWpCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUUvRCxPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FDNUIsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQ2xELFFBQVEsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FDeEQsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELE1BQU0sZUFBZSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7QUFFMUMsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixXQUF3QixFQUN4QixhQUEwQixFQUMxQixTQUFpQixFQUNqQixZQUFzQixFQUN0QixPQUFpQixFQUNqQixRQUFvQjtJQUdwQixNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsZ0JBQWdCLENBQzNDLFdBQVcsRUFDWCxhQUFhLEVBQ2IsU0FBUyxFQUNULFlBQVksRUFDWixPQUFPLENBQ1IsQ0FBQztJQUVGLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqQyxTQUFTLENBQUMsYUFBYSxFQUFFO1FBQ3ZCLGFBQWEsRUFBRSxXQUFXO1FBQzFCLEdBQUcsRUFBRSxLQUFLO1FBQ1YsSUFBSSxFQUFFLEtBQUs7UUFDWCxTQUFTLEVBQUUsZUFBZSxPQUFPLENBQUMsSUFBSSxPQUFPLE9BQU8sQ0FBQyxHQUFHLFVBQVU7S0FDbkUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUViLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7UUFDdkIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0tBQzlEO0lBRUQsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZ2V0T2Zmc2V0cywgZ2V0UmVmZXJlbmNlT2Zmc2V0cywgdXBkYXRlQ29udGFpbmVyQ2xhc3MsIHNldFN0eWxlcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5pbXBvcnQgeyBhcnJvdywgZmxpcCwgcHJldmVudE92ZXJmbG93LCBzaGlmdCwgaW5pdERhdGEgfSBmcm9tICcuL21vZGlmaWVycyc7XG5pbXBvcnQgeyBEYXRhLCBPZmZzZXRzLCBPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5cbmV4cG9ydCBjbGFzcyBQb3NpdGlvbmluZyB7XG4gIHBvc2l0aW9uKGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudCwgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQsIHJvdW5kID0gdHJ1ZSk6IE9mZnNldHMge1xuICAgIHJldHVybiB0aGlzLm9mZnNldChob3N0RWxlbWVudCwgdGFyZ2V0RWxlbWVudCwgZmFsc2UpO1xuICB9XG5cbiAgb2Zmc2V0KGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudCwgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQsIHJvdW5kID0gdHJ1ZSk6IE9mZnNldHMge1xuICAgIHJldHVybiBnZXRSZWZlcmVuY2VPZmZzZXRzKHRhcmdldEVsZW1lbnQsIGhvc3RFbGVtZW50KTtcbiAgfVxuXG4gIHBvc2l0aW9uRWxlbWVudHMoXG4gICAgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIHBvc2l0aW9uOiBzdHJpbmcsXG4gICAgYXBwZW5kVG9Cb2R5PzogYm9vbGVhbixcbiAgICBvcHRpb25zPzogT3B0aW9uc1xuICApOiBEYXRhIHtcbiAgICBjb25zdCBjaGFpbk9mTW9kaWZpZXJzID0gW2ZsaXAsIHNoaWZ0LCBwcmV2ZW50T3ZlcmZsb3csIGFycm93XTtcblxuICAgIHJldHVybiBjaGFpbk9mTW9kaWZpZXJzLnJlZHVjZShcbiAgICAgIChtb2RpZmllZERhdGEsIG1vZGlmaWVyKSA9PiBtb2RpZmllcihtb2RpZmllZERhdGEpLFxuICAgICAgaW5pdERhdGEodGFyZ2V0RWxlbWVudCwgaG9zdEVsZW1lbnQsIHBvc2l0aW9uLCBvcHRpb25zKVxuICAgICk7XG4gIH1cbn1cblxuY29uc3QgcG9zaXRpb25TZXJ2aWNlID0gbmV3IFBvc2l0aW9uaW5nKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3NpdGlvbkVsZW1lbnRzKFxuICBob3N0RWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBwbGFjZW1lbnQ6IHN0cmluZyxcbiAgYXBwZW5kVG9Cb2R5PzogYm9vbGVhbixcbiAgb3B0aW9ucz86IE9wdGlvbnMsXG4gIHJlbmRlcmVyPzogUmVuZGVyZXIyXG4pOiB2b2lkIHtcblxuICBjb25zdCBkYXRhID0gcG9zaXRpb25TZXJ2aWNlLnBvc2l0aW9uRWxlbWVudHMoXG4gICAgaG9zdEVsZW1lbnQsXG4gICAgdGFyZ2V0RWxlbWVudCxcbiAgICBwbGFjZW1lbnQsXG4gICAgYXBwZW5kVG9Cb2R5LFxuICAgIG9wdGlvbnNcbiAgKTtcblxuICBjb25zdCBvZmZzZXRzID0gZ2V0T2Zmc2V0cyhkYXRhKTtcblxuICBzZXRTdHlsZXModGFyZ2V0RWxlbWVudCwge1xuICAgICd3aWxsLWNoYW5nZSc6ICd0cmFuc2Zvcm0nLFxuICAgIHRvcDogJzBweCcsXG4gICAgbGVmdDogJzBweCcsXG4gICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlM2QoJHtvZmZzZXRzLmxlZnR9cHgsICR7b2Zmc2V0cy50b3B9cHgsIDBweClgXG4gIH0sIHJlbmRlcmVyKTtcblxuICBpZiAoZGF0YS5pbnN0YW5jZS5hcnJvdykge1xuICAgIHNldFN0eWxlcyhkYXRhLmluc3RhbmNlLmFycm93LCBkYXRhLm9mZnNldHMuYXJyb3csIHJlbmRlcmVyKTtcbiAgfVxuXG4gIHVwZGF0ZUNvbnRhaW5lckNsYXNzKGRhdGEsIHJlbmRlcmVyKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Injectable, ElementRef, Inject, PLATFORM_ID } from '@angular/core';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import { positionElements } from './ng-positioning';
|
|
4
|
+
import { fromEvent, merge, of, animationFrameScheduler, Subject } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class PositioningService {
|
|
7
|
+
constructor(ngZone, rendererFactory, platformId) {
|
|
8
|
+
this.update$$ = new Subject();
|
|
9
|
+
this.positionElements = new Map();
|
|
10
|
+
this.isDisabled = false;
|
|
11
|
+
if (isPlatformBrowser(platformId)) {
|
|
12
|
+
ngZone.runOutsideAngular(() => {
|
|
13
|
+
this.triggerEvent$ = merge(fromEvent(window, 'scroll', { passive: true }), fromEvent(window, 'resize', { passive: true }),
|
|
14
|
+
/* tslint:disable-next-line: deprecation */
|
|
15
|
+
of(0, animationFrameScheduler), this.update$$);
|
|
16
|
+
this.triggerEvent$.subscribe(() => {
|
|
17
|
+
if (this.isDisabled) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
this.positionElements
|
|
21
|
+
/* tslint:disable-next-line: no-any */
|
|
22
|
+
.forEach((positionElement) => {
|
|
23
|
+
positionElements(_getHtmlElement(positionElement.target), _getHtmlElement(positionElement.element), positionElement.attachment, positionElement.appendToBody, this.options, rendererFactory.createRenderer(null, null));
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
position(options) {
|
|
30
|
+
this.addPositionElement(options);
|
|
31
|
+
}
|
|
32
|
+
get event$() {
|
|
33
|
+
return this.triggerEvent$;
|
|
34
|
+
}
|
|
35
|
+
disable() {
|
|
36
|
+
this.isDisabled = true;
|
|
37
|
+
}
|
|
38
|
+
enable() {
|
|
39
|
+
this.isDisabled = false;
|
|
40
|
+
}
|
|
41
|
+
addPositionElement(options) {
|
|
42
|
+
this.positionElements.set(_getHtmlElement(options.element), options);
|
|
43
|
+
}
|
|
44
|
+
calcPosition() {
|
|
45
|
+
this.update$$.next();
|
|
46
|
+
}
|
|
47
|
+
deletePositionElement(elRef) {
|
|
48
|
+
this.positionElements.delete(_getHtmlElement(elRef));
|
|
49
|
+
}
|
|
50
|
+
setOptions(options) {
|
|
51
|
+
this.options = options;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
PositioningService.ɵfac = function PositioningService_Factory(t) { return new (t || PositioningService)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(PLATFORM_ID)); };
|
|
55
|
+
PositioningService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PositioningService, factory: PositioningService.ɵfac, providedIn: 'root' });
|
|
56
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PositioningService, [{
|
|
57
|
+
type: Injectable,
|
|
58
|
+
args: [{
|
|
59
|
+
providedIn: 'root'
|
|
60
|
+
}]
|
|
61
|
+
}], function () { return [{ type: i0.NgZone }, { type: i0.RendererFactory2 }, { type: undefined, decorators: [{
|
|
62
|
+
type: Inject,
|
|
63
|
+
args: [PLATFORM_ID]
|
|
64
|
+
}] }]; }, null); })();
|
|
65
|
+
function _getHtmlElement(element) {
|
|
66
|
+
// it means that we got a selector
|
|
67
|
+
if (typeof element === 'string') {
|
|
68
|
+
return document.querySelector(element);
|
|
69
|
+
}
|
|
70
|
+
if (element instanceof ElementRef) {
|
|
71
|
+
return element.nativeElement;
|
|
72
|
+
}
|
|
73
|
+
return element;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb25pbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvcG9zaXRpb25pbmcvcG9zaXRpb25pbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBb0IsTUFBTSxFQUFFLFdBQVcsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsdUJBQXVCLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQXlDMUYsTUFBTSxPQUFPLGtCQUFrQjtJQU83QixZQUNFLE1BQWMsRUFDZCxlQUFpQyxFQUNaLFVBQWtCO1FBUmpDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQy9CLHFCQUFnQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFFN0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQVF6QixJQUFJLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUN4QixTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUM5QyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDOUMsMkNBQTJDO2dCQUMzQyxFQUFFLENBQUMsQ0FBQyxFQUFFLHVCQUF1QixDQUFDLEVBQzlCLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztnQkFFRixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2hDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTt3QkFDbkIsT0FBTztxQkFDUjtvQkFFRCxJQUFJLENBQUMsZ0JBQWdCO3dCQUNyQixzQ0FBc0M7eUJBQ25DLE9BQU8sQ0FBQyxDQUFDLGVBQW9CLEVBQUUsRUFBRTt3QkFDaEMsZ0JBQWdCLENBQ2QsZUFBZSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFDdkMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFDeEMsZUFBZSxDQUFDLFVBQVUsRUFDMUIsZUFBZSxDQUFDLFlBQVksRUFDNUIsSUFBSSxDQUFDLE9BQU8sRUFDWixlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FDM0MsQ0FBQztvQkFDSixDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQTJCO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBMkI7UUFDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBaUI7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWdCO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7O29GQTNFVSxrQkFBa0Isd0VBVW5CLFdBQVc7d0VBVlYsa0JBQWtCLFdBQWxCLGtCQUFrQixtQkFGakIsTUFBTTt1RkFFUCxrQkFBa0I7Y0FIOUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COztzQkFXSSxNQUFNO3VCQUFDLFdBQVc7O0FBb0V2QixTQUFTLGVBQWUsQ0FBQyxPQUEwQztJQUNqRSxrQ0FBa0M7SUFDbEMsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7UUFDL0IsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3hDO0lBRUQsSUFBSSxPQUFPLFlBQVksVUFBVSxFQUFFO1FBQ2pDLE9BQU8sT0FBTyxDQUFDLGFBQWEsQ0FBQztLQUM5QjtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBFbGVtZW50UmVmLCBSZW5kZXJlckZhY3RvcnkyLCBJbmplY3QsIFBMQVRGT1JNX0lELCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgcG9zaXRpb25FbGVtZW50cyB9IGZyb20gJy4vbmctcG9zaXRpb25pbmcnO1xuXG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBvZiwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsIFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICcuL21vZGVscyc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBQb3NpdGlvbmluZ09wdGlvbnMge1xuICAvKiogVGhlIERPTSBlbGVtZW50LCBFbGVtZW50UmVmLCBvciBhIHNlbGVjdG9yIHN0cmluZyBvZiBhbiBlbGVtZW50IHdoaWNoIHdpbGwgYmUgbW92ZWQgKi9cbiAgZWxlbWVudD86IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZiB8IHN0cmluZztcblxuICAvKiogVGhlIERPTSBlbGVtZW50LCBFbGVtZW50UmVmLCBvciBhIHNlbGVjdG9yIHN0cmluZyBvZiBhbiBlbGVtZW50IHdoaWNoIHRoZSBlbGVtZW50IHdpbGwgYmUgYXR0YWNoZWQgdG8gICovXG4gIHRhcmdldD86IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZiB8IHN0cmluZztcblxuICAvKipcbiAgICogQSBzdHJpbmcgb2YgdGhlIGZvcm0gJ3ZlcnQtYXR0YWNobWVudCBob3Jpei1hdHRhY2htZW50JyBvciAncGxhY2VtZW50J1xuICAgKiAtIHBsYWNlbWVudCBjYW4gYmUgXCJ0b3BcIiwgXCJib3R0b21cIiwgXCJsZWZ0XCIsIFwicmlnaHRcIlxuICAgKiBub3QgeWV0IHN1cHBvcnRlZDpcbiAgICogLSB2ZXJ0LWF0dGFjaG1lbnQgY2FuIGJlIGFueSBvZiAndG9wJywgJ21pZGRsZScsICdib3R0b20nXG4gICAqIC0gaG9yaXotYXR0YWNobWVudCBjYW4gYmUgYW55IG9mICdsZWZ0JywgJ2NlbnRlcicsICdyaWdodCdcbiAgICovXG4gIGF0dGFjaG1lbnQ/OiBzdHJpbmc7XG5cbiAgLyoqIEEgc3RyaW5nIHNpbWlsYXIgdG8gYGF0dGFjaG1lbnRgLiBUaGUgb25lIGRpZmZlcmVuY2UgaXMgdGhhdCwgaWYgaXQncyBub3QgcHJvdmlkZWQsXG4gICAqIGB0YXJnZXRBdHRhY2htZW50YCB3aWxsIGFzc3VtZSB0aGUgbWlycm9yIGltYWdlIG9mIGBhdHRhY2htZW50YC5cbiAgICovXG4gIHRhcmdldEF0dGFjaG1lbnQ/OiBzdHJpbmc7XG5cbiAgLyoqIEEgc3RyaW5nIG9mIHRoZSBmb3JtICd2ZXJ0LW9mZnNldCBob3Jpei1vZmZzZXQnXG4gICAqIC0gdmVydC1vZmZzZXQgYW5kIGhvcml6LW9mZnNldCBjYW4gYmUgb2YgdGhlIGZvcm0gXCIyMHB4XCIgb3IgXCI1NSVcIlxuICAgKi9cbiAgb2Zmc2V0Pzogc3RyaW5nO1xuXG4gIC8qKiBBIHN0cmluZyBzaW1pbGFyIHRvIGBvZmZzZXRgLCBidXQgcmVmZXJyaW5nIHRvIHRoZSBvZmZzZXQgb2YgdGhlIHRhcmdldCAqL1xuICB0YXJnZXRPZmZzZXQ/OiBzdHJpbmc7XG5cbiAgLyoqIElmIHRydWUgY29tcG9uZW50IHdpbGwgYmUgYXR0YWNoZWQgdG8gYm9keSAqL1xuICBhcHBlbmRUb0JvZHk/OiBib29sZWFuO1xufVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uaW5nU2VydmljZSB7XG4gIHByaXZhdGUgb3B0aW9uczogT3B0aW9ucztcbiAgcHJpdmF0ZSB1cGRhdGUkJCA9IG5ldyBTdWJqZWN0PG51bGw+KCk7XG4gIHByaXZhdGUgcG9zaXRpb25FbGVtZW50cyA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSB0cmlnZ2VyRXZlbnQkOiBPYnNlcnZhYmxlPG51bWJlcnxFdmVudD47XG4gIHByaXZhdGUgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG5nWm9uZTogTmdab25lLFxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBudW1iZXJcbiAgKSB7XG5cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCkpIHtcbiAgICAgIG5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50JCA9IG1lcmdlKFxuICAgICAgICAgIGZyb21FdmVudCh3aW5kb3csICdzY3JvbGwnLCB7IHBhc3NpdmU6IHRydWUgfSksXG4gICAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScsIHsgcGFzc2l2ZTogdHJ1ZSB9KSxcbiAgICAgICAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGRlcHJlY2F0aW9uICovXG4gICAgICAgICAgb2YoMCwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIpLFxuICAgICAgICAgIHRoaXMudXBkYXRlJCRcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnRyaWdnZXJFdmVudCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5wb3NpdGlvbkVsZW1lbnRzXG4gICAgICAgICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkgKi9cbiAgICAgICAgICAgIC5mb3JFYWNoKChwb3NpdGlvbkVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBwb3NpdGlvbkVsZW1lbnRzKFxuICAgICAgICAgICAgICAgIF9nZXRIdG1sRWxlbWVudChwb3NpdGlvbkVsZW1lbnQudGFyZ2V0KSxcbiAgICAgICAgICAgICAgICBfZ2V0SHRtbEVsZW1lbnQocG9zaXRpb25FbGVtZW50LmVsZW1lbnQpLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uRWxlbWVudC5hdHRhY2htZW50LFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uRWxlbWVudC5hcHBlbmRUb0JvZHksXG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgICAgIHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcG9zaXRpb24ob3B0aW9uczogUG9zaXRpb25pbmdPcHRpb25zKTogdm9pZCB7XG4gICAgdGhpcy5hZGRQb3NpdGlvbkVsZW1lbnQob3B0aW9ucyk7XG4gIH1cblxuICBnZXQgZXZlbnQkKCk6IE9ic2VydmFibGU8bnVtYmVyfEV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMudHJpZ2dlckV2ZW50JDtcbiAgfVxuXG4gIGRpc2FibGUoKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgfVxuXG4gIGVuYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgfVxuXG4gIGFkZFBvc2l0aW9uRWxlbWVudChvcHRpb25zOiBQb3NpdGlvbmluZ09wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLnBvc2l0aW9uRWxlbWVudHMuc2V0KF9nZXRIdG1sRWxlbWVudChvcHRpb25zLmVsZW1lbnQpLCBvcHRpb25zKTtcbiAgfVxuXG4gIGNhbGNQb3NpdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZSQkLm5leHQoKTtcbiAgfVxuXG4gIGRlbGV0ZVBvc2l0aW9uRWxlbWVudChlbFJlZjogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIHRoaXMucG9zaXRpb25FbGVtZW50cy5kZWxldGUoX2dldEh0bWxFbGVtZW50KGVsUmVmKSk7XG4gIH1cblxuICBzZXRPcHRpb25zKG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9nZXRIdG1sRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBzdHJpbmcpOiBIVE1MRWxlbWVudCB7XG4gIC8vIGl0IG1lYW5zIHRoYXQgd2UgZ290IGEgc2VsZWN0b3JcbiAgaWYgKHR5cGVvZiBlbGVtZW50ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGVsZW1lbnQpO1xuICB9XG5cbiAgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBFbGVtZW50UmVmKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50O1xufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { positionElements, Positioning } from './ng-positioning';
|
|
2
|
+
export { PositioningService } from './positioning.service';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvcG9zaXRpb25pbmcvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFzQixNQUFNLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgcG9zaXRpb25FbGVtZW50cywgUG9zaXRpb25pbmcgfSBmcm9tICcuL25nLXBvc2l0aW9uaW5nJztcbmV4cG9ydCB7IFBvc2l0aW9uaW5nU2VydmljZSwgUG9zaXRpb25pbmdPcHRpb25zIH0gZnJvbSAnLi9wb3NpdGlvbmluZy5zZXJ2aWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility used to transform the `auto` placement to the placement with more
|
|
3
|
+
* available space.
|
|
4
|
+
*/
|
|
5
|
+
import { getBoundaries } from './getBoundaries';
|
|
6
|
+
function getArea({ width, height }) {
|
|
7
|
+
return width * height;
|
|
8
|
+
}
|
|
9
|
+
export function computeAutoPlacement(placement, refRect, target, host, allowedPositions = ['top', 'bottom', 'right', 'left'], boundariesElement = 'viewport', padding = 0) {
|
|
10
|
+
if (placement.indexOf('auto') === -1) {
|
|
11
|
+
return placement;
|
|
12
|
+
}
|
|
13
|
+
const boundaries = getBoundaries(target, host, padding, boundariesElement);
|
|
14
|
+
const rects = {
|
|
15
|
+
top: {
|
|
16
|
+
width: boundaries.width,
|
|
17
|
+
height: refRect.top - boundaries.top
|
|
18
|
+
},
|
|
19
|
+
right: {
|
|
20
|
+
width: boundaries.right - refRect.right,
|
|
21
|
+
height: boundaries.height
|
|
22
|
+
},
|
|
23
|
+
bottom: {
|
|
24
|
+
width: boundaries.width,
|
|
25
|
+
height: boundaries.bottom - refRect.bottom
|
|
26
|
+
},
|
|
27
|
+
left: {
|
|
28
|
+
width: refRect.left - boundaries.left,
|
|
29
|
+
height: boundaries.height
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const sortedAreas = Object.keys(rects)
|
|
33
|
+
.map(key => ({
|
|
34
|
+
key,
|
|
35
|
+
...rects[key],
|
|
36
|
+
area: getArea(rects[key])
|
|
37
|
+
}))
|
|
38
|
+
.sort((a, b) => b.area - a.area);
|
|
39
|
+
let filteredAreas = sortedAreas.filter(({ width, height }) => {
|
|
40
|
+
return width >= target.clientWidth
|
|
41
|
+
&& height >= target.clientHeight;
|
|
42
|
+
});
|
|
43
|
+
filteredAreas = filteredAreas.filter((position) => {
|
|
44
|
+
return allowedPositions
|
|
45
|
+
.some((allowedPosition) => {
|
|
46
|
+
return allowedPosition === position.key;
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
const computedPlacement = filteredAreas.length > 0
|
|
50
|
+
? filteredAreas[0].key
|
|
51
|
+
: sortedAreas[0].key;
|
|
52
|
+
const variation = placement.split(' ')[1];
|
|
53
|
+
// for tooltip on auto position
|
|
54
|
+
target.className = target.className.replace(/bs-tooltip-auto/g, `bs-tooltip-${computedPlacement}`);
|
|
55
|
+
return computedPlacement + (variation ? `-${variation}` : '');
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZUF1dG9QbGFjZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3Bvc2l0aW9uaW5nL3V0aWxzL2NvbXB1dGVBdXRvUGxhY2VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdoRCxTQUFTLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTZCO0lBQzNELE9BQU8sS0FBSyxHQUFHLE1BQU0sQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxTQUFpQixFQUNqQixPQUFnQixFQUNoQixNQUFtQixFQUNuQixJQUFpQixFQUNqQixtQkFBMEIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFDNUQsaUJBQWlCLEdBQUcsVUFBVSxFQUM5QixPQUFPLEdBQUcsQ0FBQztJQUVYLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUNwQyxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBRTNFLE1BQU0sS0FBSyxHQUFRO1FBQ2pCLEdBQUcsRUFBRTtZQUNILEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztZQUN2QixNQUFNLEVBQUUsT0FBTyxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRztTQUNyQztRQUNELEtBQUssRUFBRTtZQUNMLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLO1lBQ3ZDLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTTtTQUMxQjtRQUNELE1BQU0sRUFBRTtZQUNOLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztZQUN2QixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTTtTQUMzQztRQUNELElBQUksRUFBRTtZQUNKLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJO1lBQ3JDLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTTtTQUMxQjtLQUNGLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNuQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ1gsR0FBRztRQUNILEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNiLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzFCLENBQUMsQ0FBQztTQUNGLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRW5DLElBQUksYUFBYSxHQUFVLFdBQVcsQ0FBQyxNQUFNLENBQzNDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtRQUNwQixPQUFPLEtBQUssSUFBSSxNQUFNLENBQUMsV0FBVztlQUM3QixNQUFNLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQztJQUNyQyxDQUFDLENBQ0YsQ0FBQztJQUVGLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7UUFDckQsT0FBTyxnQkFBZ0I7YUFDcEIsSUFBSSxDQUFDLENBQUMsZUFBdUIsRUFBRSxFQUFFO1lBQ2hDLE9BQU8sZUFBZSxLQUFLLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0saUJBQWlCLEdBQVcsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRztRQUN0QixDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUV2QixNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTFDLCtCQUErQjtJQUMvQixNQUFNLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLGNBQWMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBRW5HLE9BQU8saUJBQWlCLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFV0aWxpdHkgdXNlZCB0byB0cmFuc2Zvcm0gdGhlIGBhdXRvYCBwbGFjZW1lbnQgdG8gdGhlIHBsYWNlbWVudCB3aXRoIG1vcmVcbiAqIGF2YWlsYWJsZSBzcGFjZS5cbiAqL1xuaW1wb3J0IHsgZ2V0Qm91bmRhcmllcyB9IGZyb20gJy4vZ2V0Qm91bmRhcmllcyc7XG5pbXBvcnQgeyBPZmZzZXRzIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZnVuY3Rpb24gZ2V0QXJlYSh7IHdpZHRoLCBoZWlnaHQgfTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSkge1xuICByZXR1cm4gd2lkdGggKiBoZWlnaHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlQXV0b1BsYWNlbWVudChcbiAgcGxhY2VtZW50OiBzdHJpbmcsXG4gIHJlZlJlY3Q6IE9mZnNldHMsXG4gIHRhcmdldDogSFRNTEVsZW1lbnQsXG4gIGhvc3Q6IEhUTUxFbGVtZW50LFxuICBhbGxvd2VkUG9zaXRpb25zOiBhbnlbXSA9IFsndG9wJywgJ2JvdHRvbScsICdyaWdodCcsICdsZWZ0J10sXG4gIGJvdW5kYXJpZXNFbGVtZW50ID0gJ3ZpZXdwb3J0JyxcbiAgcGFkZGluZyA9IDBcbikge1xuICBpZiAocGxhY2VtZW50LmluZGV4T2YoJ2F1dG8nKSA9PT0gLTEpIHtcbiAgICByZXR1cm4gcGxhY2VtZW50O1xuICB9XG5cbiAgY29uc3QgYm91bmRhcmllcyA9IGdldEJvdW5kYXJpZXModGFyZ2V0LCBob3N0LCBwYWRkaW5nLCBib3VuZGFyaWVzRWxlbWVudCk7XG5cbiAgY29uc3QgcmVjdHM6IGFueSA9IHtcbiAgICB0b3A6IHtcbiAgICAgIHdpZHRoOiBib3VuZGFyaWVzLndpZHRoLFxuICAgICAgaGVpZ2h0OiByZWZSZWN0LnRvcCAtIGJvdW5kYXJpZXMudG9wXG4gICAgfSxcbiAgICByaWdodDoge1xuICAgICAgd2lkdGg6IGJvdW5kYXJpZXMucmlnaHQgLSByZWZSZWN0LnJpZ2h0LFxuICAgICAgaGVpZ2h0OiBib3VuZGFyaWVzLmhlaWdodFxuICAgIH0sXG4gICAgYm90dG9tOiB7XG4gICAgICB3aWR0aDogYm91bmRhcmllcy53aWR0aCxcbiAgICAgIGhlaWdodDogYm91bmRhcmllcy5ib3R0b20gLSByZWZSZWN0LmJvdHRvbVxuICAgIH0sXG4gICAgbGVmdDoge1xuICAgICAgd2lkdGg6IHJlZlJlY3QubGVmdCAtIGJvdW5kYXJpZXMubGVmdCxcbiAgICAgIGhlaWdodDogYm91bmRhcmllcy5oZWlnaHRcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc29ydGVkQXJlYXMgPSBPYmplY3Qua2V5cyhyZWN0cylcbiAgICAubWFwKGtleSA9PiAoe1xuICAgICAga2V5LFxuICAgICAgLi4ucmVjdHNba2V5XSxcbiAgICAgIGFyZWE6IGdldEFyZWEocmVjdHNba2V5XSlcbiAgICB9KSlcbiAgICAuc29ydCgoYSwgYikgPT4gYi5hcmVhIC0gYS5hcmVhKTtcblxuICBsZXQgZmlsdGVyZWRBcmVhczogYW55W10gPSBzb3J0ZWRBcmVhcy5maWx0ZXIoXG4gICAgKHsgd2lkdGgsIGhlaWdodCB9KSA9PiB7XG4gICAgICByZXR1cm4gd2lkdGggPj0gdGFyZ2V0LmNsaWVudFdpZHRoXG4gICAgICAgICYmIGhlaWdodCA+PSB0YXJnZXQuY2xpZW50SGVpZ2h0O1xuICAgIH1cbiAgKTtcblxuICBmaWx0ZXJlZEFyZWFzID0gZmlsdGVyZWRBcmVhcy5maWx0ZXIoKHBvc2l0aW9uOiBhbnkpID0+IHtcbiAgICByZXR1cm4gYWxsb3dlZFBvc2l0aW9uc1xuICAgICAgLnNvbWUoKGFsbG93ZWRQb3NpdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBhbGxvd2VkUG9zaXRpb24gPT09IHBvc2l0aW9uLmtleTtcbiAgICAgIH0pO1xuICB9KTtcblxuICBjb25zdCBjb21wdXRlZFBsYWNlbWVudDogc3RyaW5nID0gZmlsdGVyZWRBcmVhcy5sZW5ndGggPiAwXG4gICAgPyBmaWx0ZXJlZEFyZWFzWzBdLmtleVxuICAgIDogc29ydGVkQXJlYXNbMF0ua2V5O1xuXG4gIGNvbnN0IHZhcmlhdGlvbiA9IHBsYWNlbWVudC5zcGxpdCgnICcpWzFdO1xuXG4gIC8vIGZvciB0b29sdGlwIG9uIGF1dG8gcG9zaXRpb25cbiAgdGFyZ2V0LmNsYXNzTmFtZSA9IHRhcmdldC5jbGFzc05hbWUucmVwbGFjZSgvYnMtdG9vbHRpcC1hdXRvL2csIGBicy10b29sdGlwLSR7Y29tcHV0ZWRQbGFjZW1lbnR9YCk7XG5cbiAgcmV0dXJuIGNvbXB1dGVkUGxhY2VtZW50ICsgKHZhcmlhdGlvbiA/IGAtJHt2YXJpYXRpb259YCA6ICcnKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finds the offset parent common to the two provided nodes
|
|
3
|
+
*/
|
|
4
|
+
import { isOffsetContainer } from './isOffsetContainer';
|
|
5
|
+
import { getRoot } from './getRoot';
|
|
6
|
+
import { getOffsetParent } from './getOffsetParent';
|
|
7
|
+
export function findCommonOffsetParent(element1, element2) {
|
|
8
|
+
// This check is needed to avoid errors in case one of the elements isn't defined for any reason
|
|
9
|
+
if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
|
|
10
|
+
return document.documentElement;
|
|
11
|
+
}
|
|
12
|
+
// Here we make sure to give as "start" the element that comes first in the DOM
|
|
13
|
+
/* tslint:disable-next-line: no-bitwise */
|
|
14
|
+
const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
|
|
15
|
+
const start = order ? element1 : element2;
|
|
16
|
+
const end = order ? element2 : element1;
|
|
17
|
+
// Get common ancestor container
|
|
18
|
+
const range = document.createRange();
|
|
19
|
+
range.setStart(start, 0);
|
|
20
|
+
range.setEnd(end, 0);
|
|
21
|
+
const { commonAncestorContainer } = range;
|
|
22
|
+
// Both nodes are inside #document
|
|
23
|
+
if ((element1 !== commonAncestorContainer &&
|
|
24
|
+
element2 !== commonAncestorContainer) ||
|
|
25
|
+
start.contains(end)) {
|
|
26
|
+
if (isOffsetContainer(commonAncestorContainer)) {
|
|
27
|
+
return commonAncestorContainer;
|
|
28
|
+
}
|
|
29
|
+
return getOffsetParent(commonAncestorContainer);
|
|
30
|
+
}
|
|
31
|
+
// one of the nodes is inside shadowDOM, find which one
|
|
32
|
+
const element1root = getRoot(element1);
|
|
33
|
+
if (element1root.host) {
|
|
34
|
+
return findCommonOffsetParent(element1root.host, element2);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
return findCommonOffsetParent(element1, getRoot(element2).host);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZENvbW1vbk9mZnNldFBhcmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvcG9zaXRpb25pbmcvdXRpbHMvZmluZENvbW1vbk9mZnNldFBhcmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxRQUFxQixFQUFFLFFBQXFCO0lBQ2pGLGdHQUFnRztJQUNoRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7UUFDdEUsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDO0tBQ2pDO0lBRUQsK0VBQStFO0lBQy9FLDBDQUEwQztJQUMxQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDO0lBRTVGLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDMUMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUV4QyxnQ0FBZ0M7SUFDaEMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUUxQyxrQ0FBa0M7SUFDbEMsSUFDRSxDQUFDLFFBQVEsS0FBSyx1QkFBdUI7UUFDbkMsUUFBUSxLQUFLLHVCQUF1QixDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQ25CO1FBQ0EsSUFBSSxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO1lBQzlDLE9BQU8sdUJBQXVCLENBQUM7U0FDaEM7UUFFRCxPQUFPLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0tBQ2pEO0lBRUQsdURBQXVEO0lBQ3ZELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUU7UUFDckIsT0FBTyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0tBQzVEO1NBQU07UUFDTCxPQUFPLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakU7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGaW5kcyB0aGUgb2Zmc2V0IHBhcmVudCBjb21tb24gdG8gdGhlIHR3byBwcm92aWRlZCBub2Rlc1xuICovXG5pbXBvcnQgeyBpc09mZnNldENvbnRhaW5lciB9IGZyb20gJy4vaXNPZmZzZXRDb250YWluZXInO1xuaW1wb3J0IHsgZ2V0Um9vdCB9IGZyb20gJy4vZ2V0Um9vdCc7XG5pbXBvcnQgeyBnZXRPZmZzZXRQYXJlbnQgfSBmcm9tICcuL2dldE9mZnNldFBhcmVudCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ29tbW9uT2Zmc2V0UGFyZW50KGVsZW1lbnQxOiBIVE1MRWxlbWVudCwgZWxlbWVudDI6IEhUTUxFbGVtZW50KTogYW55IHtcbiAgLy8gVGhpcyBjaGVjayBpcyBuZWVkZWQgdG8gYXZvaWQgZXJyb3JzIGluIGNhc2Ugb25lIG9mIHRoZSBlbGVtZW50cyBpc24ndCBkZWZpbmVkIGZvciBhbnkgcmVhc29uXG4gIGlmICghZWxlbWVudDEgfHwgIWVsZW1lbnQxLm5vZGVUeXBlIHx8ICFlbGVtZW50MiB8fCAhZWxlbWVudDIubm9kZVR5cGUpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICB9XG5cbiAgLy8gSGVyZSB3ZSBtYWtlIHN1cmUgdG8gZ2l2ZSBhcyBcInN0YXJ0XCIgdGhlIGVsZW1lbnQgdGhhdCBjb21lcyBmaXJzdCBpbiB0aGUgRE9NXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYml0d2lzZSAqL1xuICBjb25zdCBvcmRlciA9IGVsZW1lbnQxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVsZW1lbnQyKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HO1xuXG4gIGNvbnN0IHN0YXJ0ID0gb3JkZXIgPyBlbGVtZW50MSA6IGVsZW1lbnQyO1xuICBjb25zdCBlbmQgPSBvcmRlciA/IGVsZW1lbnQyIDogZWxlbWVudDE7XG5cbiAgLy8gR2V0IGNvbW1vbiBhbmNlc3RvciBjb250YWluZXJcbiAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICByYW5nZS5zZXRTdGFydChzdGFydCwgMCk7XG4gIHJhbmdlLnNldEVuZChlbmQsIDApO1xuICBjb25zdCB7IGNvbW1vbkFuY2VzdG9yQ29udGFpbmVyIH0gPSByYW5nZTtcblxuICAvLyBCb3RoIG5vZGVzIGFyZSBpbnNpZGUgI2RvY3VtZW50XG4gIGlmIChcbiAgICAoZWxlbWVudDEgIT09IGNvbW1vbkFuY2VzdG9yQ29udGFpbmVyICYmXG4gICAgICBlbGVtZW50MiAhPT0gY29tbW9uQW5jZXN0b3JDb250YWluZXIpIHx8XG4gICAgc3RhcnQuY29udGFpbnMoZW5kKVxuICApIHtcbiAgICBpZiAoaXNPZmZzZXRDb250YWluZXIoY29tbW9uQW5jZXN0b3JDb250YWluZXIpKSB7XG4gICAgICByZXR1cm4gY29tbW9uQW5jZXN0b3JDb250YWluZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdldE9mZnNldFBhcmVudChjb21tb25BbmNlc3RvckNvbnRhaW5lcik7XG4gIH1cblxuICAvLyBvbmUgb2YgdGhlIG5vZGVzIGlzIGluc2lkZSBzaGFkb3dET00sIGZpbmQgd2hpY2ggb25lXG4gIGNvbnN0IGVsZW1lbnQxcm9vdCA9IGdldFJvb3QoZWxlbWVudDEpO1xuICBpZiAoZWxlbWVudDFyb290Lmhvc3QpIHtcbiAgICByZXR1cm4gZmluZENvbW1vbk9mZnNldFBhcmVudChlbGVtZW50MXJvb3QuaG9zdCwgZWxlbWVudDIpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmaW5kQ29tbW9uT2Zmc2V0UGFyZW50KGVsZW1lbnQxLCBnZXRSb290KGVsZW1lbnQyKS5ob3N0KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper to detect borders of a given element
|
|
3
|
+
*/
|
|
4
|
+
export function getBordersSize(styles, axis) {
|
|
5
|
+
const sideA = axis === 'x' ? 'Left' : 'Top';
|
|
6
|
+
const sideB = sideA === 'Left' ? 'Right' : 'Bottom';
|
|
7
|
+
return (parseFloat(styles[`border${sideA}Width`]) +
|
|
8
|
+
parseFloat(styles[`border${sideB}Width`]));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Qm9yZGVyc1NpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3Bvc2l0aW9uaW5nL3V0aWxzL2dldEJvcmRlcnNTaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUEyQixFQUFFLElBQVk7SUFDdEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDNUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFFcEQsT0FBTyxDQUNMLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLE9BQWMsQ0FBQyxDQUFDO1FBQ2hELFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLE9BQWMsQ0FBQyxDQUFDLENBQ2pELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBIZWxwZXIgdG8gZGV0ZWN0IGJvcmRlcnMgb2YgYSBnaXZlbiBlbGVtZW50XG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJvcmRlcnNTaXplKHN0eWxlczogQ1NTU3R5bGVEZWNsYXJhdGlvbiwgYXhpczogc3RyaW5nKSB7XG4gIGNvbnN0IHNpZGVBID0gYXhpcyA9PT0gJ3gnID8gJ0xlZnQnIDogJ1RvcCc7XG4gIGNvbnN0IHNpZGVCID0gc2lkZUEgPT09ICdMZWZ0JyA/ICdSaWdodCcgOiAnQm90dG9tJztcblxuICByZXR1cm4gKFxuICAgIHBhcnNlRmxvYXQoc3R5bGVzW2Bib3JkZXIke3NpZGVBfVdpZHRoYCBhcyBhbnldKSArXG4gICAgcGFyc2VGbG9hdChzdHlsZXNbYGJvcmRlciR7c2lkZUJ9V2lkdGhgIGFzIGFueV0pXG4gICk7XG59XG4iXX0=
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Computed the boundaries limits and return them
|
|
3
|
+
*/
|
|
4
|
+
import { getScrollParent } from './getScrollParent';
|
|
5
|
+
import { getParentNode } from './getParentNode';
|
|
6
|
+
import { findCommonOffsetParent } from './findCommonOffsetParent';
|
|
7
|
+
import { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';
|
|
8
|
+
import { getViewportOffsetRectRelativeToArtbitraryNode } from './getViewportOffsetRectRelativeToArtbitraryNode';
|
|
9
|
+
import { getWindowSizes } from './getWindowSizes';
|
|
10
|
+
import { isFixed } from './isFixed';
|
|
11
|
+
import { getFixedPositionOffsetParent } from './getFixedPositionOffsetParent';
|
|
12
|
+
export function getBoundaries(target, host, padding = 0, boundariesElement, fixedPosition = false) {
|
|
13
|
+
// NOTE: 1 DOM access here
|
|
14
|
+
let boundaries = { top: 0, left: 0 };
|
|
15
|
+
const offsetParent = fixedPosition ? getFixedPositionOffsetParent(target) : findCommonOffsetParent(target, host);
|
|
16
|
+
// Handle viewport case
|
|
17
|
+
if (boundariesElement === 'viewport') {
|
|
18
|
+
boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
// Handle other cases based on DOM element used as boundaries
|
|
22
|
+
let boundariesNode;
|
|
23
|
+
if (boundariesElement === 'scrollParent') {
|
|
24
|
+
boundariesNode = getScrollParent(getParentNode(host));
|
|
25
|
+
if (boundariesNode.nodeName === 'BODY') {
|
|
26
|
+
boundariesNode = target.ownerDocument.documentElement;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else if (boundariesElement === 'window') {
|
|
30
|
+
boundariesNode = target.ownerDocument.documentElement;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
boundariesNode = boundariesElement;
|
|
34
|
+
}
|
|
35
|
+
const offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
|
|
36
|
+
// In case of HTML, we need a different computation
|
|
37
|
+
if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
|
|
38
|
+
const { height, width } = getWindowSizes(target.ownerDocument);
|
|
39
|
+
boundaries.top += offsets.top - offsets.marginTop;
|
|
40
|
+
boundaries.bottom = Number(height) + Number(offsets.top);
|
|
41
|
+
boundaries.left += offsets.left - offsets.marginLeft;
|
|
42
|
+
boundaries.right = Number(width) + Number(offsets.left);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// for all the other DOM elements, this one is good
|
|
46
|
+
boundaries = offsets;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Add paddings
|
|
50
|
+
boundaries.left += padding;
|
|
51
|
+
boundaries.top += padding;
|
|
52
|
+
boundaries.right -= padding;
|
|
53
|
+
boundaries.bottom -= padding;
|
|
54
|
+
return boundaries;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Qm91bmRhcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvcG9zaXRpb25pbmcvdXRpbHMvZ2V0Qm91bmRhcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUYsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDaEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFOUUsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsTUFBbUIsRUFDbkIsSUFBaUIsRUFDakIsT0FBTyxHQUFHLENBQUMsRUFDWCxpQkFBeUIsRUFDekIsYUFBYSxHQUFHLEtBQUs7SUFFckIsMEJBQTBCO0lBRTFCLElBQUksVUFBVSxHQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDMUMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRWpILHVCQUF1QjtJQUN2QixJQUFJLGlCQUFpQixLQUFLLFVBQVUsRUFBRTtRQUNwQyxVQUFVLEdBQUcsNkNBQTZDLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQ3pGO1NBQU07UUFDTCw2REFBNkQ7UUFDN0QsSUFBSSxjQUFjLENBQUM7UUFDbkIsSUFBSSxpQkFBaUIsS0FBSyxjQUFjLEVBQUU7WUFDeEMsY0FBYyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN0RCxJQUFJLGNBQWMsQ0FBQyxRQUFRLEtBQUssTUFBTSxFQUFFO2dCQUN0QyxjQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUM7YUFDdkQ7U0FDRjthQUFNLElBQUksaUJBQWlCLEtBQUssUUFBUSxFQUFFO1lBQ3pDLGNBQWMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztTQUN2RDthQUFNO1lBQ0wsY0FBYyxHQUFHLGlCQUFpQixDQUFDO1NBQ3BDO1FBRUQsTUFBTSxPQUFPLEdBQUcsb0NBQW9DLENBQ2xELGNBQWMsRUFDZCxZQUFZLEVBQ1osYUFBYSxDQUNkLENBQUM7UUFFRixtREFBbUQ7UUFDbkQsSUFBSSxjQUFjLENBQUMsUUFBUSxLQUFLLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNoRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDL0QsVUFBVSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDbEQsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6RCxVQUFVLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUNyRCxVQUFVLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pEO2FBQU07WUFDTCxtREFBbUQ7WUFDbkQsVUFBVSxHQUFHLE9BQU8sQ0FBQztTQUN0QjtLQUNGO0lBRUQsZUFBZTtJQUNmLFVBQVUsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDO0lBQzNCLFVBQVUsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDO0lBQzFCLFVBQVUsQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDO0lBQzVCLFVBQVUsQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDO0lBRTdCLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXB1dGVkIHRoZSBib3VuZGFyaWVzIGxpbWl0cyBhbmQgcmV0dXJuIHRoZW1cbiAqL1xuaW1wb3J0IHsgZ2V0U2Nyb2xsUGFyZW50IH0gZnJvbSAnLi9nZXRTY3JvbGxQYXJlbnQnO1xuaW1wb3J0IHsgZ2V0UGFyZW50Tm9kZSB9IGZyb20gJy4vZ2V0UGFyZW50Tm9kZSc7XG5pbXBvcnQgeyBmaW5kQ29tbW9uT2Zmc2V0UGFyZW50IH0gZnJvbSAnLi9maW5kQ29tbW9uT2Zmc2V0UGFyZW50JztcbmltcG9ydCB7IGdldE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJiaXRyYXJ5Tm9kZSB9IGZyb20gJy4vZ2V0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcmJpdHJhcnlOb2RlJztcbmltcG9ydCB7IGdldFZpZXdwb3J0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcnRiaXRyYXJ5Tm9kZSB9IGZyb20gJy4vZ2V0Vmlld3BvcnRPZmZzZXRSZWN0UmVsYXRpdmVUb0FydGJpdHJhcnlOb2RlJztcbmltcG9ydCB7IGdldFdpbmRvd1NpemVzIH0gZnJvbSAnLi9nZXRXaW5kb3dTaXplcyc7XG5pbXBvcnQgeyBpc0ZpeGVkIH0gZnJvbSAnLi9pc0ZpeGVkJztcbmltcG9ydCB7IGdldEZpeGVkUG9zaXRpb25PZmZzZXRQYXJlbnQgfSBmcm9tICcuL2dldEZpeGVkUG9zaXRpb25PZmZzZXRQYXJlbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm91bmRhcmllcyhcbiAgdGFyZ2V0OiBIVE1MRWxlbWVudCxcbiAgaG9zdDogSFRNTEVsZW1lbnQsXG4gIHBhZGRpbmcgPSAwLFxuICBib3VuZGFyaWVzRWxlbWVudDogc3RyaW5nLFxuICBmaXhlZFBvc2l0aW9uID0gZmFsc2Vcbikge1xuICAvLyBOT1RFOiAxIERPTSBhY2Nlc3MgaGVyZVxuXG4gIGxldCBib3VuZGFyaWVzOiBhbnkgPSB7IHRvcDogMCwgbGVmdDogMCB9O1xuICBjb25zdCBvZmZzZXRQYXJlbnQgPSBmaXhlZFBvc2l0aW9uID8gZ2V0Rml4ZWRQb3NpdGlvbk9mZnNldFBhcmVudCh0YXJnZXQpIDogZmluZENvbW1vbk9mZnNldFBhcmVudCh0YXJnZXQsIGhvc3QpO1xuXG4gIC8vIEhhbmRsZSB2aWV3cG9ydCBjYXNlXG4gIGlmIChib3VuZGFyaWVzRWxlbWVudCA9PT0gJ3ZpZXdwb3J0Jykge1xuICAgIGJvdW5kYXJpZXMgPSBnZXRWaWV3cG9ydE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJ0Yml0cmFyeU5vZGUob2Zmc2V0UGFyZW50LCBmaXhlZFBvc2l0aW9uKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBIYW5kbGUgb3RoZXIgY2FzZXMgYmFzZWQgb24gRE9NIGVsZW1lbnQgdXNlZCBhcyBib3VuZGFyaWVzXG4gICAgbGV0IGJvdW5kYXJpZXNOb2RlO1xuICAgIGlmIChib3VuZGFyaWVzRWxlbWVudCA9PT0gJ3Njcm9sbFBhcmVudCcpIHtcbiAgICAgIGJvdW5kYXJpZXNOb2RlID0gZ2V0U2Nyb2xsUGFyZW50KGdldFBhcmVudE5vZGUoaG9zdCkpO1xuICAgICAgaWYgKGJvdW5kYXJpZXNOb2RlLm5vZGVOYW1lID09PSAnQk9EWScpIHtcbiAgICAgICAgYm91bmRhcmllc05vZGUgPSB0YXJnZXQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChib3VuZGFyaWVzRWxlbWVudCA9PT0gJ3dpbmRvdycpIHtcbiAgICAgIGJvdW5kYXJpZXNOb2RlID0gdGFyZ2V0Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBib3VuZGFyaWVzTm9kZSA9IGJvdW5kYXJpZXNFbGVtZW50O1xuICAgIH1cblxuICAgIGNvbnN0IG9mZnNldHMgPSBnZXRPZmZzZXRSZWN0UmVsYXRpdmVUb0FyYml0cmFyeU5vZGUoXG4gICAgICBib3VuZGFyaWVzTm9kZSxcbiAgICAgIG9mZnNldFBhcmVudCxcbiAgICAgIGZpeGVkUG9zaXRpb25cbiAgICApO1xuXG4gICAgLy8gSW4gY2FzZSBvZiBIVE1MLCB3ZSBuZWVkIGEgZGlmZmVyZW50IGNvbXB1dGF0aW9uXG4gICAgaWYgKGJvdW5kYXJpZXNOb2RlLm5vZGVOYW1lID09PSAnSFRNTCcgJiYgIWlzRml4ZWQob2Zmc2V0UGFyZW50KSkge1xuICAgICAgY29uc3QgeyBoZWlnaHQsIHdpZHRoIH0gPSBnZXRXaW5kb3dTaXplcyh0YXJnZXQub3duZXJEb2N1bWVudCk7XG4gICAgICBib3VuZGFyaWVzLnRvcCArPSBvZmZzZXRzLnRvcCAtIG9mZnNldHMubWFyZ2luVG9wO1xuICAgICAgYm91bmRhcmllcy5ib3R0b20gPSBOdW1iZXIoaGVpZ2h0KSArIE51bWJlcihvZmZzZXRzLnRvcCk7XG4gICAgICBib3VuZGFyaWVzLmxlZnQgKz0gb2Zmc2V0cy5sZWZ0IC0gb2Zmc2V0cy5tYXJnaW5MZWZ0O1xuICAgICAgYm91bmRhcmllcy5yaWdodCA9IE51bWJlcih3aWR0aCkgKyBOdW1iZXIob2Zmc2V0cy5sZWZ0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZm9yIGFsbCB0aGUgb3RoZXIgRE9NIGVsZW1lbnRzLCB0aGlzIG9uZSBpcyBnb29kXG4gICAgICBib3VuZGFyaWVzID0gb2Zmc2V0cztcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgcGFkZGluZ3NcbiAgYm91bmRhcmllcy5sZWZ0ICs9IHBhZGRpbmc7XG4gIGJvdW5kYXJpZXMudG9wICs9IHBhZGRpbmc7XG4gIGJvdW5kYXJpZXMucmlnaHQgLT0gcGFkZGluZztcbiAgYm91bmRhcmllcy5ib3R0b20gLT0gcGFkZGluZztcblxuICByZXR1cm4gYm91bmRhcmllcztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get bounding client rect of given element
|
|
3
|
+
*/
|
|
4
|
+
import { getStyleComputedProperty } from './getStyleComputedProperty';
|
|
5
|
+
import { getBordersSize } from './getBordersSize';
|
|
6
|
+
import { getWindowSizes } from './getWindowSizes';
|
|
7
|
+
import { getScroll } from './getScroll';
|
|
8
|
+
import { getClientRect } from './getClientRect';
|
|
9
|
+
import { isIE } from './isIE';
|
|
10
|
+
export function getBoundingClientRect(element) {
|
|
11
|
+
let rect = {};
|
|
12
|
+
// IE10 10 FIX: Please, don't ask, the element isn't
|
|
13
|
+
// considered in DOM in some circumstances...
|
|
14
|
+
// This isn't reproducible in IE10 compatibility mode of IE11
|
|
15
|
+
try {
|
|
16
|
+
if (isIE(10)) {
|
|
17
|
+
rect = element.getBoundingClientRect();
|
|
18
|
+
const scrollTop = getScroll(element, 'top');
|
|
19
|
+
const scrollLeft = getScroll(element, 'left');
|
|
20
|
+
rect.top += scrollTop;
|
|
21
|
+
rect.left += scrollLeft;
|
|
22
|
+
rect.bottom += scrollTop;
|
|
23
|
+
rect.right += scrollLeft;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
rect = element.getBoundingClientRect();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
const result = {
|
|
33
|
+
left: rect.left,
|
|
34
|
+
top: rect.top,
|
|
35
|
+
width: rect.right - rect.left,
|
|
36
|
+
height: rect.bottom - rect.top
|
|
37
|
+
};
|
|
38
|
+
// subtract scrollbar size from sizes
|
|
39
|
+
const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
|
|
40
|
+
const width = sizes.width || element.clientWidth || result.right - result.left;
|
|
41
|
+
const height = sizes.height || element.clientHeight || result.bottom - result.top;
|
|
42
|
+
let horizScrollbar = element.offsetWidth - width;
|
|
43
|
+
let vertScrollbar = element.offsetHeight - height;
|
|
44
|
+
// if an hypothetical scrollbar is detected, we must be sure it's not a `border`
|
|
45
|
+
// we make this check conditional for performance reasons
|
|
46
|
+
if (horizScrollbar || vertScrollbar) {
|
|
47
|
+
const styles = getStyleComputedProperty(element);
|
|
48
|
+
horizScrollbar -= getBordersSize(styles, 'x');
|
|
49
|
+
vertScrollbar -= getBordersSize(styles, 'y');
|
|
50
|
+
result.width -= horizScrollbar;
|
|
51
|
+
result.height -= vertScrollbar;
|
|
52
|
+
}
|
|
53
|
+
return getClientRect(result);
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9wb3NpdGlvbmluZy91dGlscy9nZXRCb3VuZGluZ0NsaWVudFJlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHOUIsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE9BQW9CO0lBQ3hELElBQUksSUFBSSxHQUFRLEVBQUUsQ0FBQztJQUVuQixvREFBb0Q7SUFDcEQsNkNBQTZDO0lBQzdDLDZEQUE2RDtJQUM3RCxJQUFJO1FBQ0YsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDWixJQUFJLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDdkMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM1QyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxHQUFHLElBQUksU0FBUyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxLQUFLLElBQUksVUFBVSxDQUFDO1NBQzFCO2FBQU07WUFDTCxJQUFJLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDeEM7S0FDRjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCxNQUFNLE1BQU0sR0FBUTtRQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7UUFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSTtRQUM3QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRztLQUMvQixDQUFDO0lBRUYscUNBQXFDO0lBQ3JDLE1BQU0sS0FBSyxHQUFRLE9BQU8sQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDNUYsTUFBTSxLQUFLLEdBQ1QsS0FBSyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNuRSxNQUFNLE1BQU0sR0FDVixLQUFLLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxZQUFZLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBRXJFLElBQUksY0FBYyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ2pELElBQUksYUFBYSxHQUFHLE9BQU8sQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO0lBRWxELGdGQUFnRjtJQUNoRix5REFBeUQ7SUFDekQsSUFBSSxjQUFjLElBQUksYUFBYSxFQUFFO1FBQ25DLE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELGNBQWMsSUFBSSxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLGFBQWEsSUFBSSxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRTdDLE1BQU0sQ0FBQyxLQUFLLElBQUksY0FBYyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDO0tBQ2hDO0lBRUQsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2V0IGJvdW5kaW5nIGNsaWVudCByZWN0IG9mIGdpdmVuIGVsZW1lbnRcbiAqL1xuaW1wb3J0IHsgZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5IH0gZnJvbSAnLi9nZXRTdHlsZUNvbXB1dGVkUHJvcGVydHknO1xuaW1wb3J0IHsgZ2V0Qm9yZGVyc1NpemUgfSBmcm9tICcuL2dldEJvcmRlcnNTaXplJztcbmltcG9ydCB7IGdldFdpbmRvd1NpemVzIH0gZnJvbSAnLi9nZXRXaW5kb3dTaXplcyc7XG5pbXBvcnQgeyBnZXRTY3JvbGwgfSBmcm9tICcuL2dldFNjcm9sbCc7XG5pbXBvcnQgeyBnZXRDbGllbnRSZWN0IH0gZnJvbSAnLi9nZXRDbGllbnRSZWN0JztcbmltcG9ydCB7IGlzSUUgfSBmcm9tICcuL2lzSUUnO1xuaW1wb3J0IHsgT2Zmc2V0cyB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBPZmZzZXRzIHtcbiAgbGV0IHJlY3Q6IGFueSA9IHt9O1xuXG4gIC8vIElFMTAgMTAgRklYOiBQbGVhc2UsIGRvbid0IGFzaywgdGhlIGVsZW1lbnQgaXNuJ3RcbiAgLy8gY29uc2lkZXJlZCBpbiBET00gaW4gc29tZSBjaXJjdW1zdGFuY2VzLi4uXG4gIC8vIFRoaXMgaXNuJ3QgcmVwcm9kdWNpYmxlIGluIElFMTAgY29tcGF0aWJpbGl0eSBtb2RlIG9mIElFMTFcbiAgdHJ5IHtcbiAgICBpZiAoaXNJRSgxMCkpIHtcbiAgICAgIHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gZ2V0U2Nyb2xsKGVsZW1lbnQsICd0b3AnKTtcbiAgICAgIGNvbnN0IHNjcm9sbExlZnQgPSBnZXRTY3JvbGwoZWxlbWVudCwgJ2xlZnQnKTtcbiAgICAgIHJlY3QudG9wICs9IHNjcm9sbFRvcDtcbiAgICAgIHJlY3QubGVmdCArPSBzY3JvbGxMZWZ0O1xuICAgICAgcmVjdC5ib3R0b20gKz0gc2Nyb2xsVG9wO1xuICAgICAgcmVjdC5yaWdodCArPSBzY3JvbGxMZWZ0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7XG4gICAgbGVmdDogcmVjdC5sZWZ0LFxuICAgIHRvcDogcmVjdC50b3AsXG4gICAgd2lkdGg6IHJlY3QucmlnaHQgLSByZWN0LmxlZnQsXG4gICAgaGVpZ2h0OiByZWN0LmJvdHRvbSAtIHJlY3QudG9wXG4gIH07XG5cbiAgLy8gc3VidHJhY3Qgc2Nyb2xsYmFyIHNpemUgZnJvbSBzaXplc1xuICBjb25zdCBzaXplczogYW55ID0gZWxlbWVudC5ub2RlTmFtZSA9PT0gJ0hUTUwnID8gZ2V0V2luZG93U2l6ZXMoZWxlbWVudC5vd25lckRvY3VtZW50KSA6IHt9O1xuICBjb25zdCB3aWR0aCA9XG4gICAgc2l6ZXMud2lkdGggfHwgZWxlbWVudC5jbGllbnRXaWR0aCB8fCByZXN1bHQucmlnaHQgLSByZXN1bHQubGVmdDtcbiAgY29uc3QgaGVpZ2h0ID1cbiAgICBzaXplcy5oZWlnaHQgfHwgZWxlbWVudC5jbGllbnRIZWlnaHQgfHwgcmVzdWx0LmJvdHRvbSAtIHJlc3VsdC50b3A7XG5cbiAgbGV0IGhvcml6U2Nyb2xsYmFyID0gZWxlbWVudC5vZmZzZXRXaWR0aCAtIHdpZHRoO1xuICBsZXQgdmVydFNjcm9sbGJhciA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gaGVpZ2h0O1xuXG4gIC8vIGlmIGFuIGh5cG90aGV0aWNhbCBzY3JvbGxiYXIgaXMgZGV0ZWN0ZWQsIHdlIG11c3QgYmUgc3VyZSBpdCdzIG5vdCBhIGBib3JkZXJgXG4gIC8vIHdlIG1ha2UgdGhpcyBjaGVjayBjb25kaXRpb25hbCBmb3IgcGVyZm9ybWFuY2UgcmVhc29uc1xuICBpZiAoaG9yaXpTY3JvbGxiYXIgfHwgdmVydFNjcm9sbGJhcikge1xuICAgIGNvbnN0IHN0eWxlcyA9IGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eShlbGVtZW50KTtcbiAgICBob3JpelNjcm9sbGJhciAtPSBnZXRCb3JkZXJzU2l6ZShzdHlsZXMsICd4Jyk7XG4gICAgdmVydFNjcm9sbGJhciAtPSBnZXRCb3JkZXJzU2l6ZShzdHlsZXMsICd5Jyk7XG5cbiAgICByZXN1bHQud2lkdGggLT0gaG9yaXpTY3JvbGxiYXI7XG4gICAgcmVzdWx0LmhlaWdodCAtPSB2ZXJ0U2Nyb2xsYmFyO1xuICB9XG5cbiAgcmV0dXJuIGdldENsaWVudFJlY3QocmVzdWx0KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export function getClientRect(offsets) {
|
|
2
|
+
return {
|
|
3
|
+
...offsets,
|
|
4
|
+
right: offsets.left + offsets.width,
|
|
5
|
+
bottom: offsets.top + offsets.height
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2xpZW50UmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvcG9zaXRpb25pbmcvdXRpbHMvZ2V0Q2xpZW50UmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQWdCO0lBQzVDLE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSztRQUNuQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTTtLQUNyQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2l2ZW4gZWxlbWVudCBvZmZzZXRzLCBnZW5lcmF0ZSBhbiBvdXRwdXQgc2ltaWxhciB0byBnZXRCb3VuZGluZ0NsaWVudFJlY3RcbiAqL1xuaW1wb3J0IHsgT2Zmc2V0cyB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnRSZWN0KG9mZnNldHM6IE9mZnNldHMpOiBPZmZzZXRzIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5vZmZzZXRzLFxuICAgIHJpZ2h0OiBvZmZzZXRzLmxlZnQgKyBvZmZzZXRzLndpZHRoLFxuICAgIGJvdHRvbTogb2Zmc2V0cy50b3AgKyBvZmZzZXRzLmhlaWdodFxuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finds the first parent of an element that has a transformed property defined
|
|
3
|
+
*/
|
|
4
|
+
import { getStyleComputedProperty } from './getStyleComputedProperty';
|
|
5
|
+
import { isIE } from './isIE';
|
|
6
|
+
export function getFixedPositionOffsetParent(element) {
|
|
7
|
+
// This check is needed to avoid errors in case one of the elements isn't defined for any reason
|
|
8
|
+
if (!element || !element.parentElement || isIE()) {
|
|
9
|
+
return document.documentElement;
|
|
10
|
+
}
|
|
11
|
+
let el = element.parentElement;
|
|
12
|
+
while (el && getStyleComputedProperty(el, 'transform') === 'none') {
|
|
13
|
+
el = el.parentElement;
|
|
14
|
+
}
|
|
15
|
+
return el || document.documentElement;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Rml4ZWRQb3NpdGlvbk9mZnNldFBhcmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvcG9zaXRpb25pbmcvdXRpbHMvZ2V0Rml4ZWRQb3NpdGlvbk9mZnNldFBhcmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFOUIsTUFBTSxVQUFVLDRCQUE0QixDQUFDLE9BQW9CO0lBQy9ELGdHQUFnRztJQUNoRyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBSSxJQUFJLEVBQUUsRUFBRTtRQUNqRCxPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUM7S0FDaEM7SUFFRCxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBRS9CLE9BQU8sRUFBRSxJQUFJLHdCQUF3QixDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsS0FBSyxNQUFNLEVBQUU7UUFDakUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7S0FDdkI7SUFFRCxPQUFPLEVBQUUsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZpbmRzIHRoZSBmaXJzdCBwYXJlbnQgb2YgYW4gZWxlbWVudCB0aGF0IGhhcyBhIHRyYW5zZm9ybWVkIHByb3BlcnR5IGRlZmluZWRcbiAqL1xuXG5pbXBvcnQgeyBnZXRTdHlsZUNvbXB1dGVkUHJvcGVydHkgfSBmcm9tICcuL2dldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eSc7XG5pbXBvcnQgeyBpc0lFIH0gZnJvbSAnLi9pc0lFJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpeGVkUG9zaXRpb25PZmZzZXRQYXJlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XG4gIC8vIFRoaXMgY2hlY2sgaXMgbmVlZGVkIHRvIGF2b2lkIGVycm9ycyBpbiBjYXNlIG9uZSBvZiB0aGUgZWxlbWVudHMgaXNuJ3QgZGVmaW5lZCBmb3IgYW55IHJlYXNvblxuICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQucGFyZW50RWxlbWVudCB8fCBpc0lFKCkpIHtcbiAgIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gIH1cblxuICBsZXQgZWwgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgd2hpbGUgKGVsICYmIGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eShlbCwgJ3RyYW5zZm9ybScpID09PSAnbm9uZScpIHtcbiAgICBlbCA9IGVsLnBhcmVudEVsZW1lbnQ7XG4gIH1cblxuICByZXR1cm4gZWwgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xufVxuIl19
|