ngx-semantic 2.0.7-beta.0 → 2.0.7-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/fesm2022/ngx-semantic-collections-breadcrumb.mjs +13 -10
  2. package/fesm2022/ngx-semantic-collections-breadcrumb.mjs.map +1 -1
  3. package/fesm2022/ngx-semantic-collections-form.mjs +987 -16
  4. package/fesm2022/ngx-semantic-collections-form.mjs.map +1 -1
  5. package/fesm2022/ngx-semantic-collections-grid.mjs +13 -10
  6. package/fesm2022/ngx-semantic-collections-grid.mjs.map +1 -1
  7. package/fesm2022/ngx-semantic-collections-menu.mjs +25 -13
  8. package/fesm2022/ngx-semantic-collections-menu.mjs.map +1 -1
  9. package/fesm2022/ngx-semantic-collections-message.mjs +20 -20
  10. package/fesm2022/ngx-semantic-collections-message.mjs.map +1 -1
  11. package/fesm2022/ngx-semantic-collections-table.mjs +17 -13
  12. package/fesm2022/ngx-semantic-collections-table.mjs.map +1 -1
  13. package/fesm2022/ngx-semantic-core-base.mjs +1 -0
  14. package/fesm2022/ngx-semantic-core-base.mjs.map +1 -1
  15. package/fesm2022/ngx-semantic-core-util.mjs.map +1 -1
  16. package/fesm2022/ngx-semantic-elements-button.mjs +9 -7
  17. package/fesm2022/ngx-semantic-elements-button.mjs.map +1 -1
  18. package/fesm2022/ngx-semantic-elements-container.mjs.map +1 -1
  19. package/fesm2022/ngx-semantic-elements-divider.mjs.map +1 -1
  20. package/fesm2022/ngx-semantic-elements-flag.mjs +5 -4
  21. package/fesm2022/ngx-semantic-elements-flag.mjs.map +1 -1
  22. package/fesm2022/ngx-semantic-elements-header.mjs.map +1 -1
  23. package/fesm2022/ngx-semantic-elements-icon.mjs +5 -4
  24. package/fesm2022/ngx-semantic-elements-icon.mjs.map +1 -1
  25. package/fesm2022/ngx-semantic-elements-image.mjs +5 -4
  26. package/fesm2022/ngx-semantic-elements-image.mjs.map +1 -1
  27. package/fesm2022/ngx-semantic-elements-input.mjs +5 -4
  28. package/fesm2022/ngx-semantic-elements-input.mjs.map +1 -1
  29. package/fesm2022/ngx-semantic-elements-label.mjs +5 -4
  30. package/fesm2022/ngx-semantic-elements-label.mjs.map +1 -1
  31. package/fesm2022/ngx-semantic-elements-list.mjs.map +1 -1
  32. package/fesm2022/ngx-semantic-elements-loader.mjs.map +1 -1
  33. package/fesm2022/ngx-semantic-elements-placeholder.mjs.map +1 -1
  34. package/fesm2022/ngx-semantic-elements-rail.mjs.map +1 -1
  35. package/fesm2022/ngx-semantic-elements-reveal.mjs.map +1 -1
  36. package/fesm2022/ngx-semantic-elements-segment.mjs +5 -4
  37. package/fesm2022/ngx-semantic-elements-segment.mjs.map +1 -1
  38. package/fesm2022/ngx-semantic-elements-steps.mjs +5 -4
  39. package/fesm2022/ngx-semantic-elements-steps.mjs.map +1 -1
  40. package/fesm2022/ngx-semantic-modules-accordion.mjs.map +1 -1
  41. package/fesm2022/ngx-semantic-modules-checkbox.mjs +19 -19
  42. package/fesm2022/ngx-semantic-modules-checkbox.mjs.map +1 -1
  43. package/fesm2022/ngx-semantic-modules-dimmer.mjs +42 -33
  44. package/fesm2022/ngx-semantic-modules-dimmer.mjs.map +1 -1
  45. package/fesm2022/ngx-semantic-modules-dropdown.mjs.map +1 -1
  46. package/fesm2022/ngx-semantic-modules-embed.mjs +22 -22
  47. package/fesm2022/ngx-semantic-modules-embed.mjs.map +1 -1
  48. package/fesm2022/ngx-semantic-modules-modal.mjs +31 -32
  49. package/fesm2022/ngx-semantic-modules-modal.mjs.map +1 -1
  50. package/fesm2022/ngx-semantic-modules-popup.mjs +22 -23
  51. package/fesm2022/ngx-semantic-modules-popup.mjs.map +1 -1
  52. package/fesm2022/ngx-semantic-modules-progress.mjs +6 -6
  53. package/fesm2022/ngx-semantic-modules-progress.mjs.map +1 -1
  54. package/fesm2022/ngx-semantic-modules-rating.mjs +15 -17
  55. package/fesm2022/ngx-semantic-modules-rating.mjs.map +1 -1
  56. package/fesm2022/ngx-semantic-modules-search.mjs +34 -34
  57. package/fesm2022/ngx-semantic-modules-search.mjs.map +1 -1
  58. package/fesm2022/ngx-semantic-modules-select.mjs +87 -88
  59. package/fesm2022/ngx-semantic-modules-select.mjs.map +1 -1
  60. package/fesm2022/ngx-semantic-modules-shape.mjs +6 -6
  61. package/fesm2022/ngx-semantic-modules-shape.mjs.map +1 -1
  62. package/fesm2022/ngx-semantic-modules-sidebar.mjs +13 -12
  63. package/fesm2022/ngx-semantic-modules-sidebar.mjs.map +1 -1
  64. package/fesm2022/ngx-semantic-modules-sticky.mjs +9 -12
  65. package/fesm2022/ngx-semantic-modules-sticky.mjs.map +1 -1
  66. package/fesm2022/ngx-semantic-modules-tabs.mjs +30 -30
  67. package/fesm2022/ngx-semantic-modules-tabs.mjs.map +1 -1
  68. package/fesm2022/ngx-semantic-modules-transition.mjs +721 -0
  69. package/fesm2022/ngx-semantic-modules-transition.mjs.map +1 -0
  70. package/fesm2022/ngx-semantic-views-advertisement.mjs +5 -4
  71. package/fesm2022/ngx-semantic-views-advertisement.mjs.map +1 -1
  72. package/fesm2022/ngx-semantic-views-card.mjs +6 -9
  73. package/fesm2022/ngx-semantic-views-card.mjs.map +1 -1
  74. package/fesm2022/ngx-semantic-views-comment.mjs.map +1 -1
  75. package/fesm2022/ngx-semantic-views-feed.mjs +26 -26
  76. package/fesm2022/ngx-semantic-views-feed.mjs.map +1 -1
  77. package/fesm2022/ngx-semantic-views-items.mjs +13 -10
  78. package/fesm2022/ngx-semantic-views-items.mjs.map +1 -1
  79. package/fesm2022/ngx-semantic-views-statistics.mjs +16 -16
  80. package/fesm2022/ngx-semantic-views-statistics.mjs.map +1 -1
  81. package/fesm2022/ngx-semantic.mjs +11 -5
  82. package/fesm2022/ngx-semantic.mjs.map +1 -1
  83. package/modules/transition/package.json +4 -0
  84. package/package.json +5 -1
  85. package/types/ngx-semantic-collections-breadcrumb.d.ts +4 -17
  86. package/types/ngx-semantic-collections-form.d.ts +150 -20
  87. package/types/ngx-semantic-collections-grid.d.ts +4 -17
  88. package/types/ngx-semantic-collections-menu.d.ts +4 -17
  89. package/types/ngx-semantic-collections-message.d.ts +1 -3
  90. package/types/ngx-semantic-collections-table.d.ts +5 -22
  91. package/types/ngx-semantic-core-base.d.ts +1 -1
  92. package/types/ngx-semantic-elements-button.d.ts +3 -8
  93. package/types/ngx-semantic-elements-flag.d.ts +2 -3
  94. package/types/ngx-semantic-elements-icon.d.ts +1 -2
  95. package/types/ngx-semantic-elements-image.d.ts +2 -7
  96. package/types/ngx-semantic-elements-input.d.ts +2 -7
  97. package/types/ngx-semantic-elements-label.d.ts +2 -7
  98. package/types/ngx-semantic-elements-segment.d.ts +1 -6
  99. package/types/ngx-semantic-elements-steps.d.ts +1 -6
  100. package/types/ngx-semantic-modules-checkbox.d.ts +3 -4
  101. package/types/ngx-semantic-modules-dimmer.d.ts +2 -3
  102. package/types/ngx-semantic-modules-embed.d.ts +2 -5
  103. package/types/ngx-semantic-modules-modal.d.ts +2 -2
  104. package/types/ngx-semantic-modules-popup.d.ts +2 -4
  105. package/types/ngx-semantic-modules-rating.d.ts +4 -4
  106. package/types/ngx-semantic-modules-select.d.ts +1 -2
  107. package/types/ngx-semantic-modules-shape.d.ts +1 -2
  108. package/types/ngx-semantic-modules-sidebar.d.ts +1 -15
  109. package/types/ngx-semantic-modules-sticky.d.ts +1 -2
  110. package/types/ngx-semantic-modules-transition.d.ts +107 -0
  111. package/types/ngx-semantic-views-advertisement.d.ts +2 -7
  112. package/types/ngx-semantic-views-card.d.ts +2 -2
  113. package/types/ngx-semantic-views-feed.d.ts +2 -11
  114. package/types/ngx-semantic-views-items.d.ts +4 -9
  115. package/types/ngx-semantic-views-statistics.d.ts +13 -26
  116. package/types/ngx-semantic.d.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-semantic-modules-shape.mjs","sources":["../../src/modules/shape/shape-side.component.ts","../../src/modules/shape/shape.component.ts","../../src/modules/shape/shape.module.ts","../../src/modules/shape/ngx-semantic-modules-shape.ts"],"sourcesContent":["/**\n * One face of a `sui-shape`. Renders the required Semantic UI `.side` markup.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {Component, ElementRef, ViewChild, ViewEncapsulation} from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'sui-shape-side',\n encapsulation: ViewEncapsulation.None,\n template: `\n <div\n #root\n class=\"side\"\n [class.active]=\"styleActive\"\n [class.hidden]=\"styleHidden\"\n [class.animating]=\"styleAnimating\"\n [ngStyle]=\"inlineStyles\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class SuiShapeSideComponent {\n @ViewChild('root', {static: true}) root!: ElementRef<HTMLElement>;\n\n /** Driven by {@link SuiShapeComponent}; mirrors Semantic UI `.active`. */\n public styleActive = false;\n /** Driven by {@link SuiShapeComponent}; mirrors Semantic UI `.hidden`. */\n public styleHidden = false;\n /** Driven by {@link SuiShapeComponent}; mirrors Semantic UI `.animating`. */\n public styleAnimating = false;\n /** Inline styles applied during 3D animation (transform, top, left). */\n public inlineStyles: Record<string, string | null> = {};\n\n public get nativeElement(): HTMLElement {\n return this.root.nativeElement;\n }\n\n public clearInlineStyles(): void {\n this.inlineStyles = {};\n }\n}\n","/**\n * Semantic UI [Shape](https://semantic-ui.com/modules/shape.html) module — Angular port of the\n * jQuery `$.fn.shape` behavior (3D CSS transforms). Include Semantic UI’s shape CSS in your app.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {InputBoolean} from 'ngx-semantic/core/util';\nimport {SuiShapeSideComponent} from './shape-side.component';\n\nexport type SuiShapeDimension = 'initial' | 'next' | number;\nexport type SuiShapeFlip =\n | 'flip up'\n | 'flip down'\n | 'flip left'\n | 'flip right'\n | 'flip over'\n | 'flip back';\n\nfunction outerHeightWithMargins(el: HTMLElement): number {\n const rect = el.getBoundingClientRect();\n const style = getComputedStyle(el);\n return rect.height + parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n}\n\nfunction outerWidthWithMargins(el: HTMLElement): number {\n const rect = el.getBoundingClientRect();\n const style = getComputedStyle(el);\n return rect.width + parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n}\n\nfunction getTransitionEventName(): string {\n const el = document.createElement('div');\n const transitions: Record<string, string> = {\n transition: 'transitionend',\n OTransition: 'oTransitionEnd',\n MozTransition: 'transitionend',\n WebkitTransition: 'webkitTransitionEnd'\n };\n for (const key of Object.keys(transitions)) {\n if ((el.style as unknown as Record<string, string>)[key] !== undefined) {\n return transitions[key];\n }\n }\n return 'transitionend';\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, SuiShapeSideComponent],\n selector: 'sui-shape',\n exportAs: 'suiShape',\n encapsulation: ViewEncapsulation.None,\n template: `\n <div\n #shapeEl\n class=\"ui shape\"\n [class.animating]=\"animating\"\n [class.cube]=\"suiCube\"\n [class.text]=\"suiText\"\n [ngStyle]=\"shapeInlineStyle\">\n <div #sidesEl class=\"sides\" [ngStyle]=\"sidesInlineStyle\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class SuiShapeComponent implements AfterContentInit, OnDestroy {\n @ContentChildren(SuiShapeSideComponent) private sideList!: QueryList<SuiShapeSideComponent>;\n @ViewChild('shapeEl', {static: true}) private shapeEl!: ElementRef<HTMLElement>;\n @ViewChild('sidesEl', {static: true}) private sidesEl!: ElementRef<HTMLElement>;\n\n /** Animation length in ms. `null` skips inline `transition-duration` (Semantic UI CSS defaults). */\n @Input() public suiDuration: number | null = null;\n /** Width during animation: initial size, next side’s size, or a fixed pixel width. */\n @Input() public suiWidth: SuiShapeDimension = 'initial';\n /** Height during animation: initial size, next side’s size, or a fixed pixel height. */\n @Input() public suiHeight: SuiShapeDimension = 'initial';\n /** Pixel fudge for 2D/3D rounding (matches Semantic UI `jitter`). */\n @Input() public suiJitter = 0;\n /** When false, flipping to the already-visible side is ignored. */\n @Input() @InputBoolean() public suiAllowRepeats = false;\n /** Adds the `cube` class (Semantic UI cube layout). */\n @Input() @InputBoolean() public suiCube = false;\n /** Adds the `text` class (Semantic UI text shape layout). */\n @Input() @InputBoolean() public suiText = false;\n\n @Output() public readonly suiBeforeChange = new EventEmitter<SuiShapeSideComponent>();\n @Output() public readonly suiOnChange = new EventEmitter<SuiShapeSideComponent>();\n\n public animating = false;\n public shapeInlineStyle: Record<string, string | null> = {};\n public sidesInlineStyle: Record<string, string | null> = {};\n\n private readonly transitionEnd = getTransitionEventName();\n private activeSide: SuiShapeSideComponent | null = null;\n private nextSide: SuiShapeSideComponent | null = null;\n private manualNextIndex: number | null = null;\n private readonly queue: SuiShapeFlip[] = [];\n private sidesChangeSub: { unsubscribe(): void } | null = null;\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n private readonly zone: NgZone\n ) {}\n\n public ngAfterContentInit(): void {\n this.ensureFirstSideActive();\n this.setDefaultSide();\n this.applyDurationToSides();\n this.sidesChangeSub = this.sideList.changes.subscribe(() => {\n this.ensureFirstSideActive();\n this.setDefaultSide();\n this.applyDurationToSides();\n this.cdr.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.sidesChangeSub?.unsubscribe();\n }\n\n /** Mirrors `shape('flip up')`. */\n public flipUp(): void {\n this.runFlip('flip up', () => {\n this.setStageSize();\n this.stageAbove();\n this.animate(this.getTransformUp());\n });\n }\n\n /** Mirrors `shape('flip down')`. */\n public flipDown(): void {\n this.runFlip('flip down', () => {\n this.setStageSize();\n this.stageBelow();\n this.animate(this.getTransformDown());\n });\n }\n\n /** Mirrors `shape('flip left')`. */\n public flipLeft(): void {\n this.runFlip('flip left', () => {\n this.setStageSize();\n this.stageLeft();\n this.animate(this.getTransformLeft());\n });\n }\n\n /** Mirrors `shape('flip right')`. */\n public flipRight(): void {\n this.runFlip('flip right', () => {\n this.setStageSize();\n this.stageRight();\n this.animate(this.getTransformRight());\n });\n }\n\n /** Mirrors `shape('flip over')`. */\n public flipOver(): void {\n this.runFlip('flip over', () => {\n this.setStageSize();\n this.stageBehind();\n this.animate(this.getTransformOver());\n });\n }\n\n /** Mirrors `shape('flip back')`. */\n public flipBack(): void {\n this.runFlip('flip back', () => {\n this.setStageSize();\n this.stageBehind();\n this.animate(this.getTransformBack());\n });\n }\n\n /**\n * Mirrors `shape('set next side', selector)` — `selector` is evaluated against the shape root\n * (each projected `.side` element).\n */\n public setNextSide(selector: string): void {\n const sides = this.sideList.toArray();\n const matched = sides.filter((s) => s.nativeElement.matches(selector));\n if (matched.length === 0) {\n this.setDefaultSide();\n return;\n }\n this.nextSide = matched[0];\n this.manualNextIndex = sides.indexOf(this.nextSide);\n }\n\n /** Mirrors `shape('is animating')`. */\n public isAnimating(): boolean {\n return this.animating;\n }\n\n /** Mirrors `shape('reset')` — clears inline animation styles. */\n public reset(): void {\n this.animating = false;\n this.shapeInlineStyle = {};\n this.sidesInlineStyle = {};\n for (const side of this.sideList.toArray()) {\n side.styleHidden = false;\n side.styleAnimating = false;\n side.clearInlineStyles();\n }\n this.cdr.markForCheck();\n }\n\n /** Mirrors `shape('repaint')` — forces layout. */\n public repaint(): void {\n const el = this.sidesEl?.nativeElement;\n if (el) {\n void el.offsetWidth;\n }\n }\n\n /** Mirrors `shape('refresh')` — re-syncs cached side references. */\n public refresh(): void {\n this.setDefaultSide();\n }\n\n /** Dispatches a named flip (useful when mirroring jQuery string APIs). */\n public flip(behavior: SuiShapeFlip): void {\n switch (behavior) {\n case 'flip up':\n this.flipUp();\n break;\n case 'flip down':\n this.flipDown();\n break;\n case 'flip left':\n this.flipLeft();\n break;\n case 'flip right':\n this.flipRight();\n break;\n case 'flip over':\n this.flipOver();\n break;\n case 'flip back':\n this.flipBack();\n break;\n }\n }\n\n private runFlip(name: SuiShapeFlip, run: () => void): void {\n if (this.sideList.length < 2) {\n return;\n }\n this.setDefaultSide();\n if (!this.activeSide || !this.nextSide) {\n return;\n }\n if (this.isComplete() && !this.animating && !this.suiAllowRepeats) {\n return;\n }\n if (!this.animating) {\n run();\n } else {\n this.queue.push(name);\n }\n }\n\n private isComplete(): boolean {\n return this.activeSide !== null && this.nextSide !== null && this.activeSide === this.nextSide;\n }\n\n private ensureFirstSideActive(): void {\n const sides = this.sideList.toArray();\n if (sides.length === 0) {\n return;\n }\n if (!sides.some((s) => s.styleActive)) {\n sides[0].styleActive = true;\n }\n }\n\n private setDefaultSide(): void {\n const sides = this.sideList.toArray();\n if (sides.length === 0) {\n this.activeSide = null;\n this.nextSide = null;\n return;\n }\n const activeIdx = sides.findIndex((s) => s.styleActive);\n this.activeSide = activeIdx >= 0 ? sides[activeIdx] : sides[0];\n if (this.manualNextIndex !== null && this.manualNextIndex >= 0 && this.manualNextIndex < sides.length) {\n this.nextSide = sides[this.manualNextIndex];\n } else {\n const idx = sides.indexOf(this.activeSide);\n this.nextSide = idx < sides.length - 1 ? sides[idx + 1] : sides[0];\n }\n }\n\n private applyDurationToSides(): void {\n if (this.suiDuration === null || this.suiDuration === undefined) {\n return;\n }\n const d = `${this.suiDuration}ms`;\n const style = {\n transitionDuration: d,\n WebkitTransitionDuration: d,\n MozTransitionDuration: d,\n OTransitionDuration: d\n };\n this.sidesInlineStyle = {...this.sidesInlineStyle, ...style};\n for (const side of this.sideList.toArray()) {\n side.inlineStyles = {...side.inlineStyles, ...style};\n }\n }\n\n private setStageSize(): void {\n if (!this.activeSide || !this.nextSide) {\n return;\n }\n const shape = this.shapeEl.nativeElement;\n const wMode = this.suiWidth;\n const hMode = this.suiHeight;\n let newWidth: number;\n let newHeight: number;\n if (wMode === 'next') {\n newWidth = outerWidthWithMargins(this.nextSide.nativeElement);\n } else if (wMode === 'initial') {\n newWidth = shape.offsetWidth;\n } else {\n newWidth = wMode;\n }\n if (hMode === 'next') {\n newHeight = outerHeightWithMargins(this.nextSide.nativeElement);\n } else if (hMode === 'initial') {\n newHeight = shape.offsetHeight;\n } else {\n newHeight = hMode;\n }\n this.shapeInlineStyle = {\n ...this.shapeInlineStyle,\n width: `${newWidth + this.suiJitter}px`,\n height: `${newHeight + this.suiJitter}px`\n };\n }\n\n private animate(finalSidesTransform: Record<string, string>): void {\n if (!this.activeSide || !this.nextSide) {\n return;\n }\n const $active = this.activeSide;\n const $next = this.nextSide;\n this.suiBeforeChange.emit($next);\n\n const sidesEl = this.sidesEl.nativeElement;\n const onEnd = () => {\n this.zone.run(() => {\n this.finishAnimation();\n });\n };\n\n // Defer DOM-facing state to the next task so callers do not hit NG0100 when flipping from tests or templates.\n setTimeout(() => {\n this.zone.run(() => {\n this.animating = true;\n sidesEl.addEventListener(this.transitionEnd, onEnd, {once: true});\n this.sidesInlineStyle = {...this.sidesInlineStyle, ...finalSidesTransform};\n $active.styleHidden = true;\n this.cdr.markForCheck();\n });\n });\n }\n\n private finishAnimation(): void {\n this.reset();\n this.setActive();\n this.processQueue();\n this.cdr.markForCheck();\n }\n\n private setActive(): void {\n const sides = this.sideList.toArray();\n if (!this.nextSide) {\n return;\n }\n for (const s of sides) {\n s.styleActive = false;\n }\n this.nextSide.styleActive = true;\n this.suiOnChange.emit(this.nextSide);\n this.manualNextIndex = null;\n this.setDefaultSide();\n }\n\n private processQueue(): void {\n const next = this.queue.shift();\n if (next) {\n this.flip(next);\n }\n }\n\n private getTransformUp(): Record<string, string> {\n const $a = this.activeSide!.nativeElement;\n const $n = this.nextSide!.nativeElement;\n const translateY = -(outerHeightWithMargins($a) - outerHeightWithMargins($n)) / 2;\n const translateZ = -outerHeightWithMargins($a) / 2;\n return {\n transform: `translateY(${translateY}px) translateZ(${translateZ}px) rotateX(-90deg)`\n };\n }\n\n private getTransformDown(): Record<string, string> {\n const $a = this.activeSide!.nativeElement;\n const $n = this.nextSide!.nativeElement;\n const translateY = -(outerHeightWithMargins($a) - outerHeightWithMargins($n)) / 2;\n const translateZ = -outerHeightWithMargins($a) / 2;\n return {\n transform: `translateY(${translateY}px) translateZ(${translateZ}px) rotateX(90deg)`\n };\n }\n\n private getTransformLeft(): Record<string, string> {\n const $a = this.activeSide!.nativeElement;\n const $n = this.nextSide!.nativeElement;\n const translateX = -(outerWidthWithMargins($a) - outerWidthWithMargins($n)) / 2;\n const translateZ = -outerWidthWithMargins($a) / 2;\n return {\n transform: `translateX(${translateX}px) translateZ(${translateZ}px) rotateY(90deg)`\n };\n }\n\n private getTransformRight(): Record<string, string> {\n const $a = this.activeSide!.nativeElement;\n const $n = this.nextSide!.nativeElement;\n const translateX = -(outerWidthWithMargins($a) - outerWidthWithMargins($n)) / 2;\n const translateZ = -outerWidthWithMargins($a) / 2;\n return {\n transform: `translateX(${translateX}px) translateZ(${translateZ}px) rotateY(-90deg)`\n };\n }\n\n private getTransformOver(): Record<string, string> {\n const $a = this.activeSide!.nativeElement;\n const $n = this.nextSide!.nativeElement;\n const translateX = -(outerWidthWithMargins($a) - outerWidthWithMargins($n)) / 2;\n return {\n transform: `translateX(${translateX}px) rotateY(180deg)`\n };\n }\n\n private getTransformBack(): Record<string, string> {\n const $a = this.activeSide!.nativeElement;\n const $n = this.nextSide!.nativeElement;\n const translateX = -(outerWidthWithMargins($a) - outerWidthWithMargins($n)) / 2;\n return {\n transform: `translateX(${translateX}px) rotateY(-180deg)`\n };\n }\n\n private stageAbove(): void {\n const $a = this.activeSide!;\n const $n = this.nextSide!;\n const ah = outerHeightWithMargins($a.nativeElement);\n const nh = outerHeightWithMargins($n.nativeElement);\n const origin = (ah - nh) / 2;\n const depthActive = nh / 2;\n const depthNext = ah / 2;\n\n this.sidesInlineStyle = {\n ...this.sidesInlineStyle,\n transform: `translateZ(-${depthActive}px)`\n };\n $a.inlineStyles = {\n ...$a.inlineStyles,\n transform: `rotateY(0deg) translateZ(${depthActive}px)`\n };\n $n.styleAnimating = true;\n $n.inlineStyles = {\n ...$n.inlineStyles,\n top: `${origin}px`,\n transform: `rotateX(90deg) translateZ(${depthNext}px)`\n };\n }\n\n private stageBelow(): void {\n const $a = this.activeSide!;\n const $n = this.nextSide!;\n const ah = outerHeightWithMargins($a.nativeElement);\n const nh = outerHeightWithMargins($n.nativeElement);\n const origin = (ah - nh) / 2;\n const depthActive = nh / 2;\n const depthNext = ah / 2;\n\n this.sidesInlineStyle = {\n ...this.sidesInlineStyle,\n transform: `translateZ(-${depthActive}px)`\n };\n $a.inlineStyles = {\n ...$a.inlineStyles,\n transform: `rotateY(0deg) translateZ(${depthActive}px)`\n };\n $n.styleAnimating = true;\n $n.inlineStyles = {\n ...$n.inlineStyles,\n top: `${origin}px`,\n transform: `rotateX(-90deg) translateZ(${depthNext}px)`\n };\n }\n\n private stageLeft(): void {\n const $a = this.activeSide!;\n const $n = this.nextSide!;\n const wa = outerWidthWithMargins($a.nativeElement);\n const wn = outerWidthWithMargins($n.nativeElement);\n const origin = (wa - wn) / 2;\n const depthActive = wn / 2;\n const depthNext = wa / 2;\n\n this.sidesInlineStyle = {\n ...this.sidesInlineStyle,\n transform: `translateZ(-${depthActive}px)`\n };\n $a.inlineStyles = {\n ...$a.inlineStyles,\n transform: `rotateY(0deg) translateZ(${depthActive}px)`\n };\n $n.styleAnimating = true;\n $n.inlineStyles = {\n ...$n.inlineStyles,\n left: `${origin}px`,\n transform: `rotateY(-90deg) translateZ(${depthNext}px)`\n };\n }\n\n private stageRight(): void {\n const $a = this.activeSide!;\n const $n = this.nextSide!;\n const wa = outerWidthWithMargins($a.nativeElement);\n const wn = outerWidthWithMargins($n.nativeElement);\n const origin = (wa - wn) / 2;\n const depthActive = wn / 2;\n const depthNext = wa / 2;\n\n this.sidesInlineStyle = {\n ...this.sidesInlineStyle,\n transform: `translateZ(-${depthActive}px)`\n };\n $a.inlineStyles = {\n ...$a.inlineStyles,\n transform: `rotateY(0deg) translateZ(${depthActive}px)`\n };\n $n.styleAnimating = true;\n $n.inlineStyles = {\n ...$n.inlineStyles,\n left: `${origin}px`,\n transform: `rotateY(90deg) translateZ(${depthNext}px)`\n };\n }\n\n private stageBehind(): void {\n const $a = this.activeSide!;\n const $n = this.nextSide!;\n const wa = outerWidthWithMargins($a.nativeElement);\n const wn = outerWidthWithMargins($n.nativeElement);\n const origin = (wa - wn) / 2;\n\n $a.inlineStyles = {\n ...$a.inlineStyles,\n transform: 'rotateY(0deg)'\n };\n $n.styleAnimating = true;\n $n.inlineStyles = {\n ...$n.inlineStyles,\n left: `${origin}px`,\n transform: 'rotateY(-180deg)'\n };\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SuiShapeComponent} from './shape.component';\nimport {SuiShapeSideComponent} from './shape-side.component';\n\n@NgModule({\n imports: [CommonModule, SuiShapeComponent, SuiShapeSideComponent],\n exports: [SuiShapeComponent, SuiShapeSideComponent]\n})\nexport class SuiShapeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-semantic-modules-shape.mjs","sources":["../../src/modules/shape/shape-side.component.ts","../../src/modules/shape/shape.component.ts","../../src/modules/shape/shape.module.ts","../../src/modules/shape/ngx-semantic-modules-shape.ts"],"sourcesContent":["/**\n * One face of a `sui-shape`. Renders the required Semantic UI `.side` markup.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { Component, ElementRef, ViewChild, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'sui-shape-side',\n encapsulation: ViewEncapsulation.None,\n template: `\n <div\n #root\n class=\"side\"\n [class.active]=\"styleActive\"\n [class.hidden]=\"styleHidden\"\n [class.animating]=\"styleAnimating\"\n [ngStyle]=\"inlineStyles\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class SuiShapeSideComponent {\n @ViewChild('root', { static: true }) root!: ElementRef<HTMLElement>;\n\n /** Driven by {@link SuiShapeComponent}; mirrors Semantic UI `.active`. */\n public styleActive = false;\n /** Driven by {@link SuiShapeComponent}; mirrors Semantic UI `.hidden`. */\n public styleHidden = false;\n /** Driven by {@link SuiShapeComponent}; mirrors Semantic UI `.animating`. */\n public styleAnimating = false;\n /** Inline styles applied during 3D animation (transform, top, left). */\n public inlineStyles: Record<string, string | null> = {};\n\n public get nativeElement(): HTMLElement {\n return this.root.nativeElement;\n }\n\n public clearInlineStyles(): void {\n this.inlineStyles = {};\n }\n}\n","/**\n * Semantic UI [Shape](https://semantic-ui.com/modules/shape.html) module — Angular port of the\n * jQuery `$.fn.shape` behavior (3D CSS transforms). Include Semantic UI’s shape CSS in your app.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { AfterContentInit, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Input, NgZone, OnDestroy, Output, QueryList, ViewChild, ViewEncapsulation, inject } from '@angular/core';\nimport { InputBoolean } from 'ngx-semantic/core/util';\nimport { SuiShapeSideComponent } from './shape-side.component';\n\nexport type SuiShapeDimension = 'initial' | 'next' | number;\nexport type SuiShapeFlip =\n | 'flip up'\n | 'flip down'\n | 'flip left'\n | 'flip right'\n | 'flip over'\n | 'flip back';\n\nfunction outerHeightWithMargins(el: HTMLElement): number {\n const rect = el.getBoundingClientRect();\n const style = getComputedStyle(el);\n return rect.height + parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n}\n\nfunction outerWidthWithMargins(el: HTMLElement): number {\n const rect = el.getBoundingClientRect();\n const style = getComputedStyle(el);\n return rect.width + parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n}\n\nfunction getTransitionEventName(): string {\n const el = document.createElement('div');\n const transitions: Record<string, string> = {\n transition: 'transitionend',\n OTransition: 'oTransitionEnd',\n MozTransition: 'transitionend',\n WebkitTransition: 'webkitTransitionEnd'\n };\n for (const key of Object.keys(transitions)) {\n if ((el.style as unknown as Record<string, string>)[key] !== undefined) {\n return transitions[key];\n }\n }\n return 'transitionend';\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, SuiShapeSideComponent],\n selector: 'sui-shape',\n exportAs: 'suiShape',\n encapsulation: ViewEncapsulation.None,\n template: `\n <div\n #shapeEl\n class=\"ui shape\"\n [class.animating]=\"animating\"\n [class.cube]=\"suiCube\"\n [class.text]=\"suiText\"\n [ngStyle]=\"shapeInlineStyle\">\n <div #sidesEl class=\"sides\" [ngStyle]=\"sidesInlineStyle\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class SuiShapeComponent implements AfterContentInit, OnDestroy {\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly zone = inject(NgZone);\n\n @ContentChildren(SuiShapeSideComponent) private sideList!: QueryList<SuiShapeSideComponent>;\n @ViewChild('shapeEl', { static: true }) private shapeEl!: ElementRef<HTMLElement>;\n @ViewChild('sidesEl', { static: true }) private sidesEl!: ElementRef<HTMLElement>;\n\n /** Animation length in ms. `null` skips inline `transition-duration` (Semantic UI CSS defaults). */\n @Input() public suiDuration: number | null = null;\n /** Width during animation: initial size, next side’s size, or a fixed pixel width. */\n @Input() public suiWidth: SuiShapeDimension = 'initial';\n /** Height during animation: initial size, next side’s size, or a fixed pixel height. */\n @Input() public suiHeight: SuiShapeDimension = 'initial';\n /** Pixel fudge for 2D/3D rounding (matches Semantic UI `jitter`). */\n @Input() public suiJitter = 0;\n /** When false, flipping to the already-visible side is ignored. */\n @Input() @InputBoolean() public suiAllowRepeats = false;\n /** Adds the `cube` class (Semantic UI cube layout). */\n @Input() @InputBoolean() public suiCube = false;\n /** Adds the `text` class (Semantic UI text shape layout). */\n @Input() @InputBoolean() public suiText = false;\n\n @Output() public readonly suiBeforeChange = new EventEmitter<SuiShapeSideComponent>();\n @Output() public readonly suiOnChange = new EventEmitter<SuiShapeSideComponent>();\n\n public animating = false;\n public shapeInlineStyle: Record<string, string | null> = {};\n public sidesInlineStyle: Record<string, string | null> = {};\n\n private readonly transitionEnd = getTransitionEventName();\n private activeSide: SuiShapeSideComponent | null = null;\n private nextSide: SuiShapeSideComponent | null = null;\n private manualNextIndex: number | null = null;\n private readonly queue: SuiShapeFlip[] = [];\n private sidesChangeSub: { unsubscribe(): void } | null = null;\n\n public ngAfterContentInit(): void {\n this.ensureFirstSideActive();\n this.setDefaultSide();\n this.applyDurationToSides();\n this.sidesChangeSub = this.sideList.changes.subscribe(() => {\n this.ensureFirstSideActive();\n this.setDefaultSide();\n this.applyDurationToSides();\n this.cdr.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.sidesChangeSub?.unsubscribe();\n }\n\n /** Mirrors `shape('flip up')`. */\n public flipUp(): void {\n this.runFlip('flip up', () => {\n this.setStageSize();\n this.stageAbove();\n this.animate(this.getTransformUp());\n });\n }\n\n /** Mirrors `shape('flip down')`. */\n public flipDown(): void {\n this.runFlip('flip down', () => {\n this.setStageSize();\n this.stageBelow();\n this.animate(this.getTransformDown());\n });\n }\n\n /** Mirrors `shape('flip left')`. */\n public flipLeft(): void {\n this.runFlip('flip left', () => {\n this.setStageSize();\n this.stageLeft();\n this.animate(this.getTransformLeft());\n });\n }\n\n /** Mirrors `shape('flip right')`. */\n public flipRight(): void {\n this.runFlip('flip right', () => {\n this.setStageSize();\n this.stageRight();\n this.animate(this.getTransformRight());\n });\n }\n\n /** Mirrors `shape('flip over')`. */\n public flipOver(): void {\n this.runFlip('flip over', () => {\n this.setStageSize();\n this.stageBehind();\n this.animate(this.getTransformOver());\n });\n }\n\n /** Mirrors `shape('flip back')`. */\n public flipBack(): void {\n this.runFlip('flip back', () => {\n this.setStageSize();\n this.stageBehind();\n this.animate(this.getTransformBack());\n });\n }\n\n /**\n * Mirrors `shape('set next side', selector)` — `selector` is evaluated against the shape root\n * (each projected `.side` element).\n */\n public setNextSide(selector: string): void {\n const sides = this.sideList.toArray();\n const matched = sides.filter((s) => s.nativeElement.matches(selector));\n if (matched.length === 0) {\n this.setDefaultSide();\n return;\n }\n this.nextSide = matched[0];\n this.manualNextIndex = sides.indexOf(this.nextSide);\n }\n\n /** Mirrors `shape('is animating')`. */\n public isAnimating(): boolean {\n return this.animating;\n }\n\n /** Mirrors `shape('reset')` — clears inline animation styles. */\n public reset(): void {\n this.animating = false;\n this.shapeInlineStyle = {};\n this.sidesInlineStyle = {};\n for (const side of this.sideList.toArray()) {\n side.styleHidden = false;\n side.styleAnimating = false;\n side.clearInlineStyles();\n }\n this.cdr.markForCheck();\n }\n\n /** Mirrors `shape('repaint')` — forces layout. */\n public repaint(): void {\n const el = this.sidesEl?.nativeElement;\n if (el) {\n void el.offsetWidth;\n }\n }\n\n /** Mirrors `shape('refresh')` — re-syncs cached side references. */\n public refresh(): void {\n this.setDefaultSide();\n }\n\n /** Dispatches a named flip (useful when mirroring jQuery string APIs). */\n public flip(behavior: SuiShapeFlip): void {\n switch (behavior) {\n case 'flip up':\n this.flipUp();\n break;\n case 'flip down':\n this.flipDown();\n break;\n case 'flip left':\n this.flipLeft();\n break;\n case 'flip right':\n this.flipRight();\n break;\n case 'flip over':\n this.flipOver();\n break;\n case 'flip back':\n this.flipBack();\n break;\n }\n }\n\n private runFlip(name: SuiShapeFlip, run: () => void): void {\n if (this.sideList.length < 2) {\n return;\n }\n this.setDefaultSide();\n if (!this.activeSide || !this.nextSide) {\n return;\n }\n if (this.isComplete() && !this.animating && !this.suiAllowRepeats) {\n return;\n }\n if (!this.animating) {\n run();\n } else {\n this.queue.push(name);\n }\n }\n\n private isComplete(): boolean {\n return this.activeSide !== null && this.nextSide !== null && this.activeSide === this.nextSide;\n }\n\n private ensureFirstSideActive(): void {\n const sides = this.sideList.toArray();\n if (sides.length === 0) {\n return;\n }\n if (!sides.some((s) => s.styleActive)) {\n sides[0].styleActive = true;\n }\n }\n\n private setDefaultSide(): void {\n const sides = this.sideList.toArray();\n if (sides.length === 0) {\n this.activeSide = null;\n this.nextSide = null;\n return;\n }\n const activeIdx = sides.findIndex((s) => s.styleActive);\n this.activeSide = activeIdx >= 0 ? sides[activeIdx] : sides[0];\n if (this.manualNextIndex !== null && this.manualNextIndex >= 0 && this.manualNextIndex < sides.length) {\n this.nextSide = sides[this.manualNextIndex];\n } else {\n const idx = sides.indexOf(this.activeSide);\n this.nextSide = idx < sides.length - 1 ? sides[idx + 1] : sides[0];\n }\n }\n\n private applyDurationToSides(): void {\n if (this.suiDuration === null || this.suiDuration === undefined) {\n return;\n }\n const d = `${this.suiDuration}ms`;\n const style = {\n transitionDuration: d,\n WebkitTransitionDuration: d,\n MozTransitionDuration: d,\n OTransitionDuration: d\n };\n this.sidesInlineStyle = { ...this.sidesInlineStyle, ...style };\n for (const side of this.sideList.toArray()) {\n side.inlineStyles = { ...side.inlineStyles, ...style };\n }\n }\n\n private setStageSize(): void {\n if (!this.activeSide || !this.nextSide) {\n return;\n }\n const shape = this.shapeEl.nativeElement;\n const wMode = this.suiWidth;\n const hMode = this.suiHeight;\n let newWidth: number;\n let newHeight: number;\n if (wMode === 'next') {\n newWidth = outerWidthWithMargins(this.nextSide.nativeElement);\n } else if (wMode === 'initial') {\n newWidth = shape.offsetWidth;\n } else {\n newWidth = wMode;\n }\n if (hMode === 'next') {\n newHeight = outerHeightWithMargins(this.nextSide.nativeElement);\n } else if (hMode === 'initial') {\n newHeight = shape.offsetHeight;\n } else {\n newHeight = hMode;\n }\n this.shapeInlineStyle = {\n ...this.shapeInlineStyle,\n width: `${newWidth + this.suiJitter}px`,\n height: `${newHeight + this.suiJitter}px`\n };\n }\n\n private animate(finalSidesTransform: Record<string, string>): void {\n if (!this.activeSide || !this.nextSide) {\n return;\n }\n const $active = this.activeSide;\n const $next = this.nextSide;\n this.suiBeforeChange.emit($next);\n\n const sidesEl = this.sidesEl.nativeElement;\n const onEnd = () => {\n this.zone.run(() => {\n this.finishAnimation();\n });\n };\n\n // Defer DOM-facing state to the next task so callers do not hit NG0100 when flipping from tests or templates.\n setTimeout(() => {\n this.zone.run(() => {\n this.animating = true;\n sidesEl.addEventListener(this.transitionEnd, onEnd, { once: true });\n this.sidesInlineStyle = { ...this.sidesInlineStyle, ...finalSidesTransform };\n $active.styleHidden = true;\n this.cdr.markForCheck();\n });\n });\n }\n\n private finishAnimation(): void {\n this.reset();\n this.setActive();\n this.processQueue();\n this.cdr.markForCheck();\n }\n\n private setActive(): void {\n const sides = this.sideList.toArray();\n if (!this.nextSide) {\n return;\n }\n for (const s of sides) {\n s.styleActive = false;\n }\n this.nextSide.styleActive = true;\n this.suiOnChange.emit(this.nextSide);\n this.manualNextIndex = null;\n this.setDefaultSide();\n }\n\n private processQueue(): void {\n const next = this.queue.shift();\n if (next) {\n this.flip(next);\n }\n }\n\n private getTransformUp(): Record<string, string> {\n const $a = this.activeSide!.nativeElement;\n const $n = this.nextSide!.nativeElement;\n const translateY = -(outerHeightWithMargins($a) - outerHeightWithMargins($n)) / 2;\n const translateZ = -outerHeightWithMargins($a) / 2;\n return {\n transform: `translateY(${translateY}px) translateZ(${translateZ}px) rotateX(-90deg)`\n };\n }\n\n private getTransformDown(): Record<string, string> {\n const $a = this.activeSide!.nativeElement;\n const $n = this.nextSide!.nativeElement;\n const translateY = -(outerHeightWithMargins($a) - outerHeightWithMargins($n)) / 2;\n const translateZ = -outerHeightWithMargins($a) / 2;\n return {\n transform: `translateY(${translateY}px) translateZ(${translateZ}px) rotateX(90deg)`\n };\n }\n\n private getTransformLeft(): Record<string, string> {\n const $a = this.activeSide!.nativeElement;\n const $n = this.nextSide!.nativeElement;\n const translateX = -(outerWidthWithMargins($a) - outerWidthWithMargins($n)) / 2;\n const translateZ = -outerWidthWithMargins($a) / 2;\n return {\n transform: `translateX(${translateX}px) translateZ(${translateZ}px) rotateY(90deg)`\n };\n }\n\n private getTransformRight(): Record<string, string> {\n const $a = this.activeSide!.nativeElement;\n const $n = this.nextSide!.nativeElement;\n const translateX = -(outerWidthWithMargins($a) - outerWidthWithMargins($n)) / 2;\n const translateZ = -outerWidthWithMargins($a) / 2;\n return {\n transform: `translateX(${translateX}px) translateZ(${translateZ}px) rotateY(-90deg)`\n };\n }\n\n private getTransformOver(): Record<string, string> {\n const $a = this.activeSide!.nativeElement;\n const $n = this.nextSide!.nativeElement;\n const translateX = -(outerWidthWithMargins($a) - outerWidthWithMargins($n)) / 2;\n return {\n transform: `translateX(${translateX}px) rotateY(180deg)`\n };\n }\n\n private getTransformBack(): Record<string, string> {\n const $a = this.activeSide!.nativeElement;\n const $n = this.nextSide!.nativeElement;\n const translateX = -(outerWidthWithMargins($a) - outerWidthWithMargins($n)) / 2;\n return {\n transform: `translateX(${translateX}px) rotateY(-180deg)`\n };\n }\n\n private stageAbove(): void {\n const $a = this.activeSide!;\n const $n = this.nextSide!;\n const ah = outerHeightWithMargins($a.nativeElement);\n const nh = outerHeightWithMargins($n.nativeElement);\n const origin = (ah - nh) / 2;\n const depthActive = nh / 2;\n const depthNext = ah / 2;\n\n this.sidesInlineStyle = {\n ...this.sidesInlineStyle,\n transform: `translateZ(-${depthActive}px)`\n };\n $a.inlineStyles = {\n ...$a.inlineStyles,\n transform: `rotateY(0deg) translateZ(${depthActive}px)`\n };\n $n.styleAnimating = true;\n $n.inlineStyles = {\n ...$n.inlineStyles,\n top: `${origin}px`,\n transform: `rotateX(90deg) translateZ(${depthNext}px)`\n };\n }\n\n private stageBelow(): void {\n const $a = this.activeSide!;\n const $n = this.nextSide!;\n const ah = outerHeightWithMargins($a.nativeElement);\n const nh = outerHeightWithMargins($n.nativeElement);\n const origin = (ah - nh) / 2;\n const depthActive = nh / 2;\n const depthNext = ah / 2;\n\n this.sidesInlineStyle = {\n ...this.sidesInlineStyle,\n transform: `translateZ(-${depthActive}px)`\n };\n $a.inlineStyles = {\n ...$a.inlineStyles,\n transform: `rotateY(0deg) translateZ(${depthActive}px)`\n };\n $n.styleAnimating = true;\n $n.inlineStyles = {\n ...$n.inlineStyles,\n top: `${origin}px`,\n transform: `rotateX(-90deg) translateZ(${depthNext}px)`\n };\n }\n\n private stageLeft(): void {\n const $a = this.activeSide!;\n const $n = this.nextSide!;\n const wa = outerWidthWithMargins($a.nativeElement);\n const wn = outerWidthWithMargins($n.nativeElement);\n const origin = (wa - wn) / 2;\n const depthActive = wn / 2;\n const depthNext = wa / 2;\n\n this.sidesInlineStyle = {\n ...this.sidesInlineStyle,\n transform: `translateZ(-${depthActive}px)`\n };\n $a.inlineStyles = {\n ...$a.inlineStyles,\n transform: `rotateY(0deg) translateZ(${depthActive}px)`\n };\n $n.styleAnimating = true;\n $n.inlineStyles = {\n ...$n.inlineStyles,\n left: `${origin}px`,\n transform: `rotateY(-90deg) translateZ(${depthNext}px)`\n };\n }\n\n private stageRight(): void {\n const $a = this.activeSide!;\n const $n = this.nextSide!;\n const wa = outerWidthWithMargins($a.nativeElement);\n const wn = outerWidthWithMargins($n.nativeElement);\n const origin = (wa - wn) / 2;\n const depthActive = wn / 2;\n const depthNext = wa / 2;\n\n this.sidesInlineStyle = {\n ...this.sidesInlineStyle,\n transform: `translateZ(-${depthActive}px)`\n };\n $a.inlineStyles = {\n ...$a.inlineStyles,\n transform: `rotateY(0deg) translateZ(${depthActive}px)`\n };\n $n.styleAnimating = true;\n $n.inlineStyles = {\n ...$n.inlineStyles,\n left: `${origin}px`,\n transform: `rotateY(90deg) translateZ(${depthNext}px)`\n };\n }\n\n private stageBehind(): void {\n const $a = this.activeSide!;\n const $n = this.nextSide!;\n const wa = outerWidthWithMargins($a.nativeElement);\n const wn = outerWidthWithMargins($n.nativeElement);\n const origin = (wa - wn) / 2;\n\n $a.inlineStyles = {\n ...$a.inlineStyles,\n transform: 'rotateY(0deg)'\n };\n $n.styleAnimating = true;\n $n.inlineStyles = {\n ...$n.inlineStyles,\n left: `${origin}px`,\n transform: 'rotateY(-180deg)'\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SuiShapeComponent } from './shape.component';\nimport { SuiShapeSideComponent } from './shape-side.component';\n\n@NgModule({\n imports: [CommonModule, SuiShapeComponent, SuiShapeSideComponent],\n exports: [SuiShapeComponent, SuiShapeSideComponent]\n})\nexport class SuiShapeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAAA;;AAEG;MAsBU,qBAAqB,CAAA;AAjBlC,IAAA,WAAA,GAAA;;QAqBS,IAAA,CAAA,WAAW,GAAG,KAAK;;QAEnB,IAAA,CAAA,WAAW,GAAG,KAAK;;QAEnB,IAAA,CAAA,cAAc,GAAG,KAAK;;QAEtB,IAAA,CAAA,YAAY,GAAkC,EAAE;AASxD,IAAA;AAPC,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa;IAChC;IAEO,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;IACxB;8GAlBW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAZtB;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAbS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAeX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAjBjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,QAAQ,EAAE;;;;;;;;;;AAUT,EAAA;AACF,iBAAA;;sBAEE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;ACNrC,SAAS,sBAAsB,CAAC,EAAe,EAAA;AAC7C,IAAA,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE;AACvC,IAAA,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC;AAClC,IAAA,OAAO,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC;AACnF;AAEA,SAAS,qBAAqB,CAAC,EAAe,EAAA;AAC5C,IAAA,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE;AACvC,IAAA,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC;AAClC,IAAA,OAAO,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;AAClF;AAEA,SAAS,sBAAsB,GAAA;IAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACxC,IAAA,MAAM,WAAW,GAA2B;AAC1C,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,WAAW,EAAE,gBAAgB;AAC7B,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,gBAAgB,EAAE;KACnB;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;QAC1C,IAAK,EAAE,CAAC,KAA2C,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;AACtE,YAAA,OAAO,WAAW,CAAC,GAAG,CAAC;QACzB;IACF;AACA,IAAA,OAAO,eAAe;AACxB;MAsBa,iBAAiB,CAAA;AApB9B,IAAA,WAAA,GAAA;AAqBmB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;;QAOtB,IAAA,CAAA,WAAW,GAAkB,IAAI;;QAEjC,IAAA,CAAA,QAAQ,GAAsB,SAAS;;QAEvC,IAAA,CAAA,SAAS,GAAsB,SAAS;;QAExC,IAAA,CAAA,SAAS,GAAG,CAAC;;QAEG,IAAA,CAAA,eAAe,GAAG,KAAK;;QAEvB,IAAA,CAAA,OAAO,GAAG,KAAK;;QAEf,IAAA,CAAA,OAAO,GAAG,KAAK;AAErB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAyB;AAC3D,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAyB;QAE1E,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,gBAAgB,GAAkC,EAAE;QACpD,IAAA,CAAA,gBAAgB,GAAkC,EAAE;QAE1C,IAAA,CAAA,aAAa,GAAG,sBAAsB,EAAE;QACjD,IAAA,CAAA,UAAU,GAAiC,IAAI;QAC/C,IAAA,CAAA,QAAQ,GAAiC,IAAI;QAC7C,IAAA,CAAA,eAAe,GAAkB,IAAI;QAC5B,IAAA,CAAA,KAAK,GAAmB,EAAE;QACnC,IAAA,CAAA,cAAc,GAAmC,IAAI;AAqd9D,IAAA;IAndQ,kBAAkB,GAAA;QACvB,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;YACzD,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzB,QAAA,CAAC,CAAC;IACJ;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE;IACpC;;IAGO,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAK;YAC3B,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;AACrC,QAAA,CAAC,CAAC;IACJ;;IAGO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAK;YAC7B,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACvC,QAAA,CAAC,CAAC;IACJ;;IAGO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAK;YAC7B,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACvC,QAAA,CAAC,CAAC;IACJ;;IAGO,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAK;YAC9B,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACxC,QAAA,CAAC,CAAC;IACJ;;IAGO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAK;YAC7B,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACvC,QAAA,CAAC,CAAC;IACJ;;IAGO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAK;YAC7B,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACvC,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;AACI,IAAA,WAAW,CAAC,QAAgB,EAAA;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACtE,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,cAAc,EAAE;YACrB;QACF;AACA,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;IACrD;;IAGO,WAAW,GAAA;QAChB,OAAO,IAAI,CAAC,SAAS;IACvB;;IAGO,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC1B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;QAC1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;YAC3B,IAAI,CAAC,iBAAiB,EAAE;QAC1B;AACA,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;;IAGO,OAAO,GAAA;AACZ,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa;QACtC,IAAI,EAAE,EAAE;YACN,KAAK,EAAE,CAAC,WAAW;QACrB;IACF;;IAGO,OAAO,GAAA;QACZ,IAAI,CAAC,cAAc,EAAE;IACvB;;AAGO,IAAA,IAAI,CAAC,QAAsB,EAAA;QAChC,QAAQ,QAAQ;AACd,YAAA,KAAK,SAAS;gBACZ,IAAI,CAAC,MAAM,EAAE;gBACb;AACF,YAAA,KAAK,WAAW;gBACd,IAAI,CAAC,QAAQ,EAAE;gBACf;AACF,YAAA,KAAK,WAAW;gBACd,IAAI,CAAC,QAAQ,EAAE;gBACf;AACF,YAAA,KAAK,YAAY;gBACf,IAAI,CAAC,SAAS,EAAE;gBAChB;AACF,YAAA,KAAK,WAAW;gBACd,IAAI,CAAC,QAAQ,EAAE;gBACf;AACF,YAAA,KAAK,WAAW;gBACd,IAAI,CAAC,QAAQ,EAAE;gBACf;;IAEN;IAEQ,OAAO,CAAC,IAAkB,EAAE,GAAe,EAAA;QACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B;QACF;QACA,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACtC;QACF;AACA,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACjE;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,GAAG,EAAE;QACP;aAAO;AACL,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB;IACF;IAEQ,UAAU,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,QAAQ;IAChG;IAEQ,qBAAqB,GAAA;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACrC,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB;QACF;AACA,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE;AACrC,YAAA,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI;QAC7B;IACF;IAEQ,cAAc,GAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACrC,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;YACpB;QACF;AACA,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,SAAS,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE;YACrG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;QAC7C;aAAO;YACL,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;YAC1C,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACpE;IACF;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;YAC/D;QACF;AACA,QAAA,MAAM,CAAC,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,IAAI;AACjC,QAAA,MAAM,KAAK,GAAG;AACZ,YAAA,kBAAkB,EAAE,CAAC;AACrB,YAAA,wBAAwB,EAAE,CAAC;AAC3B,YAAA,qBAAqB,EAAE,CAAC;AACxB,YAAA,mBAAmB,EAAE;SACtB;AACD,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,KAAK,EAAE;QAC9D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK,EAAE;QACxD;IACF;IAEQ,YAAY,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACtC;QACF;AACA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;AACxC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS;AAC5B,QAAA,IAAI,QAAgB;AACpB,QAAA,IAAI,SAAiB;AACrB,QAAA,IAAI,KAAK,KAAK,MAAM,EAAE;YACpB,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/D;AAAO,aAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAC9B,YAAA,QAAQ,GAAG,KAAK,CAAC,WAAW;QAC9B;aAAO;YACL,QAAQ,GAAG,KAAK;QAClB;AACA,QAAA,IAAI,KAAK,KAAK,MAAM,EAAE;YACpB,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QACjE;AAAO,aAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAC9B,YAAA,SAAS,GAAG,KAAK,CAAC,YAAY;QAChC;aAAO;YACL,SAAS,GAAG,KAAK;QACnB;QACA,IAAI,CAAC,gBAAgB,GAAG;YACtB,GAAG,IAAI,CAAC,gBAAgB;AACxB,YAAA,KAAK,EAAE,CAAA,EAAG,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAA,EAAA,CAAI;AACvC,YAAA,MAAM,EAAE,CAAA,EAAG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA,EAAA;SACtC;IACH;AAEQ,IAAA,OAAO,CAAC,mBAA2C,EAAA;QACzD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACtC;QACF;AACA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU;AAC/B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AAEhC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;QAC1C,MAAM,KAAK,GAAG,MAAK;AACjB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;gBACjB,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC;;QAGD,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AACjB,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,gBAAA,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACnE,gBAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,mBAAmB,EAAE;AAC5E,gBAAA,OAAO,CAAC,WAAW,GAAG,IAAI;AAC1B,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEQ,eAAe,GAAA;QACrB,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,CAAC,SAAS,EAAE;QAChB,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;IAEQ,SAAS,GAAA;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACrC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB;QACF;AACA,QAAA,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;AACrB,YAAA,CAAC,CAAC,WAAW,GAAG,KAAK;QACvB;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI;QAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AACpC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;QAC3B,IAAI,CAAC,cAAc,EAAE;IACvB;IAEQ,YAAY,GAAA;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;QAC/B,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACjB;IACF;IAEQ,cAAc,GAAA;AACpB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa;AACzC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAS,CAAC,aAAa;AACvC,QAAA,MAAM,UAAU,GAAG,EAAE,sBAAsB,CAAC,EAAE,CAAC,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACjF,MAAM,UAAU,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC,GAAG,CAAC;QAClD,OAAO;AACL,YAAA,SAAS,EAAE,CAAA,WAAA,EAAc,UAAU,CAAA,eAAA,EAAkB,UAAU,CAAA,mBAAA;SAChE;IACH;IAEQ,gBAAgB,GAAA;AACtB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa;AACzC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAS,CAAC,aAAa;AACvC,QAAA,MAAM,UAAU,GAAG,EAAE,sBAAsB,CAAC,EAAE,CAAC,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QACjF,MAAM,UAAU,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC,GAAG,CAAC;QAClD,OAAO;AACL,YAAA,SAAS,EAAE,CAAA,WAAA,EAAc,UAAU,CAAA,eAAA,EAAkB,UAAU,CAAA,kBAAA;SAChE;IACH;IAEQ,gBAAgB,GAAA;AACtB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa;AACzC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAS,CAAC,aAAa;AACvC,QAAA,MAAM,UAAU,GAAG,EAAE,qBAAqB,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAC/E,MAAM,UAAU,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC,GAAG,CAAC;QACjD,OAAO;AACL,YAAA,SAAS,EAAE,CAAA,WAAA,EAAc,UAAU,CAAA,eAAA,EAAkB,UAAU,CAAA,kBAAA;SAChE;IACH;IAEQ,iBAAiB,GAAA;AACvB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa;AACzC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAS,CAAC,aAAa;AACvC,QAAA,MAAM,UAAU,GAAG,EAAE,qBAAqB,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAC/E,MAAM,UAAU,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC,GAAG,CAAC;QACjD,OAAO;AACL,YAAA,SAAS,EAAE,CAAA,WAAA,EAAc,UAAU,CAAA,eAAA,EAAkB,UAAU,CAAA,mBAAA;SAChE;IACH;IAEQ,gBAAgB,GAAA;AACtB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa;AACzC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAS,CAAC,aAAa;AACvC,QAAA,MAAM,UAAU,GAAG,EAAE,qBAAqB,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAC/E,OAAO;YACL,SAAS,EAAE,CAAA,WAAA,EAAc,UAAU,CAAA,mBAAA;SACpC;IACH;IAEQ,gBAAgB,GAAA;AACtB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa;AACzC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAS,CAAC,aAAa;AACvC,QAAA,MAAM,UAAU,GAAG,EAAE,qBAAqB,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAC/E,OAAO;YACL,SAAS,EAAE,CAAA,WAAA,EAAc,UAAU,CAAA,oBAAA;SACpC;IACH;IAEQ,UAAU,GAAA;AAChB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAW;AAC3B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAS;QACzB,MAAM,EAAE,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC;QACnD,MAAM,EAAE,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC;QACnD,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC;AAC5B,QAAA,MAAM,WAAW,GAAG,EAAE,GAAG,CAAC;AAC1B,QAAA,MAAM,SAAS,GAAG,EAAE,GAAG,CAAC;QAExB,IAAI,CAAC,gBAAgB,GAAG;YACtB,GAAG,IAAI,CAAC,gBAAgB;YACxB,SAAS,EAAE,CAAA,YAAA,EAAe,WAAW,CAAA,GAAA;SACtC;QACD,EAAE,CAAC,YAAY,GAAG;YAChB,GAAG,EAAE,CAAC,YAAY;YAClB,SAAS,EAAE,CAAA,yBAAA,EAA4B,WAAW,CAAA,GAAA;SACnD;AACD,QAAA,EAAE,CAAC,cAAc,GAAG,IAAI;QACxB,EAAE,CAAC,YAAY,GAAG;YAChB,GAAG,EAAE,CAAC,YAAY;YAClB,GAAG,EAAE,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI;YAClB,SAAS,EAAE,CAAA,0BAAA,EAA6B,SAAS,CAAA,GAAA;SAClD;IACH;IAEQ,UAAU,GAAA;AAChB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAW;AAC3B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAS;QACzB,MAAM,EAAE,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC;QACnD,MAAM,EAAE,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC;QACnD,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC;AAC5B,QAAA,MAAM,WAAW,GAAG,EAAE,GAAG,CAAC;AAC1B,QAAA,MAAM,SAAS,GAAG,EAAE,GAAG,CAAC;QAExB,IAAI,CAAC,gBAAgB,GAAG;YACtB,GAAG,IAAI,CAAC,gBAAgB;YACxB,SAAS,EAAE,CAAA,YAAA,EAAe,WAAW,CAAA,GAAA;SACtC;QACD,EAAE,CAAC,YAAY,GAAG;YAChB,GAAG,EAAE,CAAC,YAAY;YAClB,SAAS,EAAE,CAAA,yBAAA,EAA4B,WAAW,CAAA,GAAA;SACnD;AACD,QAAA,EAAE,CAAC,cAAc,GAAG,IAAI;QACxB,EAAE,CAAC,YAAY,GAAG;YAChB,GAAG,EAAE,CAAC,YAAY;YAClB,GAAG,EAAE,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI;YAClB,SAAS,EAAE,CAAA,2BAAA,EAA8B,SAAS,CAAA,GAAA;SACnD;IACH;IAEQ,SAAS,GAAA;AACf,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAW;AAC3B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAS;QACzB,MAAM,EAAE,GAAG,qBAAqB,CAAC,EAAE,CAAC,aAAa,CAAC;QAClD,MAAM,EAAE,GAAG,qBAAqB,CAAC,EAAE,CAAC,aAAa,CAAC;QAClD,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC;AAC5B,QAAA,MAAM,WAAW,GAAG,EAAE,GAAG,CAAC;AAC1B,QAAA,MAAM,SAAS,GAAG,EAAE,GAAG,CAAC;QAExB,IAAI,CAAC,gBAAgB,GAAG;YACtB,GAAG,IAAI,CAAC,gBAAgB;YACxB,SAAS,EAAE,CAAA,YAAA,EAAe,WAAW,CAAA,GAAA;SACtC;QACD,EAAE,CAAC,YAAY,GAAG;YAChB,GAAG,EAAE,CAAC,YAAY;YAClB,SAAS,EAAE,CAAA,yBAAA,EAA4B,WAAW,CAAA,GAAA;SACnD;AACD,QAAA,EAAE,CAAC,cAAc,GAAG,IAAI;QACxB,EAAE,CAAC,YAAY,GAAG;YAChB,GAAG,EAAE,CAAC,YAAY;YAClB,IAAI,EAAE,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI;YACnB,SAAS,EAAE,CAAA,2BAAA,EAA8B,SAAS,CAAA,GAAA;SACnD;IACH;IAEQ,UAAU,GAAA;AAChB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAW;AAC3B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAS;QACzB,MAAM,EAAE,GAAG,qBAAqB,CAAC,EAAE,CAAC,aAAa,CAAC;QAClD,MAAM,EAAE,GAAG,qBAAqB,CAAC,EAAE,CAAC,aAAa,CAAC;QAClD,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC;AAC5B,QAAA,MAAM,WAAW,GAAG,EAAE,GAAG,CAAC;AAC1B,QAAA,MAAM,SAAS,GAAG,EAAE,GAAG,CAAC;QAExB,IAAI,CAAC,gBAAgB,GAAG;YACtB,GAAG,IAAI,CAAC,gBAAgB;YACxB,SAAS,EAAE,CAAA,YAAA,EAAe,WAAW,CAAA,GAAA;SACtC;QACD,EAAE,CAAC,YAAY,GAAG;YAChB,GAAG,EAAE,CAAC,YAAY;YAClB,SAAS,EAAE,CAAA,yBAAA,EAA4B,WAAW,CAAA,GAAA;SACnD;AACD,QAAA,EAAE,CAAC,cAAc,GAAG,IAAI;QACxB,EAAE,CAAC,YAAY,GAAG;YAChB,GAAG,EAAE,CAAC,YAAY;YAClB,IAAI,EAAE,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI;YACnB,SAAS,EAAE,CAAA,0BAAA,EAA6B,SAAS,CAAA,GAAA;SAClD;IACH;IAEQ,WAAW,GAAA;AACjB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAW;AAC3B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAS;QACzB,MAAM,EAAE,GAAG,qBAAqB,CAAC,EAAE,CAAC,aAAa,CAAC;QAClD,MAAM,EAAE,GAAG,qBAAqB,CAAC,EAAE,CAAC,aAAa,CAAC;QAClD,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC;QAE5B,EAAE,CAAC,YAAY,GAAG;YAChB,GAAG,EAAE,CAAC,YAAY;AAClB,YAAA,SAAS,EAAE;SACZ;AACD,QAAA,EAAE,CAAC,cAAc,GAAG,IAAI;QACxB,EAAE,CAAC,YAAY,GAAG;YAChB,GAAG,EAAE,CAAC,YAAY;YAClB,IAAI,EAAE,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI;AACnB,YAAA,SAAS,EAAE;SACZ;IACH;8GAvfW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAIX,qBAAqB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlB5B;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAhBS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;AAmCU,UAAA,CAAA;AAAtB,IAAA,YAAY;AAAkC,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AAExB,UAAA,CAAA;AAAtB,IAAA,YAAY;AAA0B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAEhB,UAAA,CAAA;AAAtB,IAAA,YAAY;AAA0B,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;2FArBrC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBApB7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,CAAC;AAC9C,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,QAAQ,EAAE,UAAU;oBACpB,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;AAYT,EAAA;AACF,iBAAA;;sBAKE,eAAe;uBAAC,qBAAqB;;sBACrC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBACrC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAGrC;;sBAEA;;sBAEA;;sBAEA;;sBAEA;;sBAEA;;sBAEA;;sBAEA;;sBACA;;;MClFU,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAd,cAAc,EAAA,OAAA,EAAA,CAHf,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,CAAA,EAAA,OAAA,EAAA,CACtD,iBAAiB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAEvC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAAA,OAAA,EAAA,CAHf,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;;2FAGrD,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;AACjE,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,qBAAqB;AACnD,iBAAA;;;ACRD;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Injectable, HostBinding, Input, Output, ViewEncapsulation, Component, HostListener, ContentChild, NgModule } from '@angular/core';
2
+ import { EventEmitter, Injectable, inject, HostBinding, Input, Output, ViewEncapsulation, Component, HostListener, ContentChild, NgModule } from '@angular/core';
3
3
  import { __decorate } from 'tslib';
4
4
  import { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';
5
5
  import { CommonModule } from '@angular/common';
@@ -45,14 +45,15 @@ class SuiSidebarComponent {
45
45
  ClassUtils.getPropClass(this.visible, 'visible')
46
46
  ].join(' ');
47
47
  }
48
- constructor(sidebarService) {
49
- this.sidebarService = sidebarService;
48
+ constructor() {
49
+ this.sidebarService = inject(SuiSidebarService);
50
50
  this.suiSidebarPosition = 'left';
51
51
  this.suiSidebarWidth = null;
52
52
  this.suiSidebarAnimation = null;
53
53
  this.suiInverted = false;
54
54
  this.visibleChange = new EventEmitter();
55
55
  this._visible = true;
56
+ const sidebarService = this.sidebarService;
56
57
  sidebarService.pusherClicked
57
58
  .subscribe(() => {
58
59
  // only close sidebar on pusher when the visibility is dynamic
@@ -61,7 +62,7 @@ class SuiSidebarComponent {
61
62
  }
62
63
  });
63
64
  }
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiSidebarComponent, deps: [{ token: SuiSidebarService }], target: i0.ɵɵFactoryTarget.Component }); }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
65
66
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", type: SuiSidebarComponent, isStandalone: true, selector: "sui-sidebar, [sui-sidebar]", inputs: { suiSidebarPosition: "suiSidebarPosition", suiSidebarWidth: "suiSidebarWidth", suiSidebarAnimation: "suiSidebarAnimation", suiInverted: "suiInverted", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: `
66
67
  <ng-content></ng-content>
67
68
  `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
@@ -79,7 +80,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImpor
79
80
  <ng-content></ng-content>
80
81
  `
81
82
  }]
82
- }], ctorParameters: () => [{ type: SuiSidebarService }], propDecorators: { suiSidebarPosition: [{
83
+ }], ctorParameters: () => [], propDecorators: { suiSidebarPosition: [{
83
84
  type: Input
84
85
  }], suiSidebarWidth: [{
85
86
  type: Input
@@ -97,17 +98,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImpor
97
98
  }] } });
98
99
 
99
100
  class SuiSidebarPusherComponent {
101
+ constructor() {
102
+ this.sidebarService = inject(SuiSidebarService);
103
+ this.suiDimmable = false;
104
+ this.isSidebarOpen = false;
105
+ }
100
106
  get classes() {
101
107
  return [
102
108
  ClassUtils.getPropClass(this.isSidebarOpen && this.suiDimmable, 'dimmed'),
103
109
  'pusher'
104
110
  ].join(' ');
105
111
  }
106
- constructor(sidebarService) {
107
- this.sidebarService = sidebarService;
108
- this.suiDimmable = false;
109
- this.isSidebarOpen = false;
110
- }
111
112
  ngOnInit() {
112
113
  this.sidebarService.visibilityChanged
113
114
  .subscribe((isVisible) => {
@@ -119,7 +120,7 @@ class SuiSidebarPusherComponent {
119
120
  this.sidebarService.notifyPusherClicked();
120
121
  }
121
122
  }
122
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiSidebarPusherComponent, deps: [{ token: SuiSidebarService }], target: i0.ɵɵFactoryTarget.Component }); }
123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiSidebarPusherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
123
124
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", type: SuiSidebarPusherComponent, isStandalone: true, selector: "sui-sidebar-pusher", inputs: { suiDimmable: "suiDimmable" }, host: { listeners: { "click": "onClick()" }, properties: { "class": "this.classes" } }, ngImport: i0, template: `
124
125
  <ng-content></ng-content>
125
126
  `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
@@ -137,7 +138,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImpor
137
138
  <ng-content></ng-content>
138
139
  `
139
140
  }]
140
- }], ctorParameters: () => [{ type: SuiSidebarService }], propDecorators: { suiDimmable: [{
141
+ }], propDecorators: { suiDimmable: [{
141
142
  type: Input
142
143
  }], classes: [{
143
144
  type: HostBinding,
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-semantic-modules-sidebar.mjs","sources":["../../src/modules/sidebar/sidebar.service.ts","../../src/modules/sidebar/sidebar.component.ts","../../src/modules/sidebar/sidebar-pusher.component.ts","../../src/modules/sidebar/sidebar-container.component.ts","../../src/modules/sidebar/sidebar.module.ts","../../src/modules/sidebar/public-api.ts","../../src/modules/sidebar/ngx-semantic-modules-sidebar.ts"],"sourcesContent":["/**\n * Created by bolorundurowb on 1/1/2021\n */\n\nimport {EventEmitter, Injectable} from '@angular/core';\n\n@Injectable()\nexport class SuiSidebarService {\n public pusherClicked = new EventEmitter<void>();\n public visibilityChanged = new EventEmitter<boolean>();\n\n public notifyPusherClicked(): void {\n this.pusherClicked.emit();\n }\n\n public changeVisibility(isVisible: boolean): void {\n this.visibilityChanged.emit(isVisible);\n }\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nimport {Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation} from '@angular/core';\nimport {ClassUtils, InputBoolean} from 'ngx-semantic/core/util';\nimport {SuiSidebarService} from './sidebar.service';\n\nexport type SuiSidebarPosition = 'top' | 'bottom' | 'left' | 'right';\nexport type SuiSidebarWidth = 'thin' | 'very thin' | 'wide' | 'very wide' | null;\nexport type SuiSidebarAnimation = 'overlay' | 'push' | 'scale down' | 'uncover' | 'slide along' | 'slide out' | null;\n\n@Component({\n standalone: true,\n selector: 'sui-sidebar, [sui-sidebar]',\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-content></ng-content>\n `\n})\nexport class SuiSidebarComponent {\n @Input() public suiSidebarPosition: SuiSidebarPosition = 'left';\n @Input() public suiSidebarWidth: SuiSidebarWidth = null;\n @Input() public suiSidebarAnimation: SuiSidebarAnimation = null;\n @Input() @InputBoolean() public suiInverted = false;\n @Output() public visibleChange = new EventEmitter<boolean>();\n\n private _visible = true;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(isVisible) {\n this._visible = isVisible;\n this.visibleChange.emit(this._visible);\n this.sidebarService.changeVisibility(this._visible);\n }\n\n @HostBinding('class')\n get classes(): string {\n return [\n 'ui',\n this.suiSidebarPosition,\n this.suiSidebarWidth,\n ClassUtils.getPropClass(this.suiInverted, 'inverted'),\n 'sidebar',\n this.suiSidebarAnimation,\n ClassUtils.getPropClass(this.visible, 'visible')\n ].join(' ');\n }\n\n constructor(private sidebarService: SuiSidebarService) {\n sidebarService.pusherClicked\n .subscribe(() => {\n // only close sidebar on pusher when the visibility is dynamic\n if (this.visibleChange.observers.length > 0) {\n this.visible = false;\n }\n });\n }\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nimport {Component, HostBinding, HostListener, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {ClassUtils, InputBoolean} from 'ngx-semantic/core/util';\nimport {SuiSidebarService} from './sidebar.service';\n\n@Component({\n standalone: true,\n selector: 'sui-sidebar-pusher',\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-content></ng-content>\n `\n})\nexport class SuiSidebarPusherComponent implements OnInit {\n @Input() @InputBoolean() public suiDimmable = false;\n public isSidebarOpen = false;\n\n @HostBinding('class')\n get classes(): string {\n return [\n ClassUtils.getPropClass(this.isSidebarOpen && this.suiDimmable, 'dimmed'),\n 'pusher'\n ].join(' ');\n }\n\n constructor(private sidebarService: SuiSidebarService) {\n }\n\n public ngOnInit(): void {\n this.sidebarService.visibilityChanged\n .subscribe((isVisible) => {\n this.isSidebarOpen = isVisible;\n });\n }\n\n @HostListener('click')\n public onClick(): void {\n if (this.isSidebarOpen) {\n this.sidebarService.notifyPusherClicked();\n }\n }\n}\n","/**\n * Created by bolorundurowb on 1/1/2021\n */\n\nimport {AfterContentInit, Component, ContentChild, ViewEncapsulation} from '@angular/core';\nimport {SuiSidebarComponent} from './sidebar.component';\nimport {SuiSidebarPusherComponent} from './sidebar-pusher.component';\n\n@Component({\n standalone: true,\n selector: 'sui-sidebar-container',\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-content></ng-content>\n `\n})\nexport class SuiSidebarContainerComponent implements AfterContentInit {\n @ContentChild(SuiSidebarComponent) public suiSidebar!: SuiSidebarComponent;\n @ContentChild(SuiSidebarPusherComponent) public suiPusher!: SuiSidebarPusherComponent;\n\n public ngAfterContentInit(): void {\n if (!this.suiSidebar) {\n throw new Error('You must include a <sui-sidebar> element within the container.');\n }\n\n if (!this.suiPusher) {\n throw new Error('You must include a <sui-sidebar-pusher> element within the container.');\n }\n\n this.suiSidebar.visibleChange\n .subscribe((isVisible) => {\n this.suiPusher.isSidebarOpen = isVisible;\n });\n }\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SuiSidebarContainerComponent} from './sidebar-container.component';\nimport {SuiSidebarPusherComponent} from './sidebar-pusher.component';\nimport {SuiSidebarComponent} from './sidebar.component';\nimport {SuiSidebarService} from './sidebar.service';\n\n@NgModule({\n imports: [\n CommonModule,\n SuiSidebarComponent,\n SuiSidebarPusherComponent,\n SuiSidebarContainerComponent\n ],\n exports: [\n SuiSidebarComponent,\n SuiSidebarPusherComponent,\n SuiSidebarContainerComponent\n ],\n providers: [\n SuiSidebarService\n ]\n})\nexport class SuiSidebarModule {\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nexport * from './sidebar-container.component';\nexport * from './sidebar-pusher.component';\nexport * from './sidebar.component';\nexport * from './sidebar.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SuiSidebarService"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-semantic-modules-sidebar.mjs","sources":["../../src/modules/sidebar/sidebar.service.ts","../../src/modules/sidebar/sidebar.component.ts","../../src/modules/sidebar/sidebar-pusher.component.ts","../../src/modules/sidebar/sidebar-container.component.ts","../../src/modules/sidebar/sidebar.module.ts","../../src/modules/sidebar/public-api.ts","../../src/modules/sidebar/ngx-semantic-modules-sidebar.ts"],"sourcesContent":["/**\n * Created by bolorundurowb on 1/1/2021\n */\n\nimport { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class SuiSidebarService {\n public pusherClicked = new EventEmitter<void>();\n public visibilityChanged = new EventEmitter<boolean>();\n\n public notifyPusherClicked(): void {\n this.pusherClicked.emit();\n }\n\n public changeVisibility(isVisible: boolean): void {\n this.visibilityChanged.emit(isVisible);\n }\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nimport { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation, inject } from '@angular/core';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { SuiSidebarService } from './sidebar.service';\n\nexport type SuiSidebarPosition = 'top' | 'bottom' | 'left' | 'right';\nexport type SuiSidebarWidth = 'thin' | 'very thin' | 'wide' | 'very wide' | null;\nexport type SuiSidebarAnimation = 'overlay' | 'push' | 'scale down' | 'uncover' | 'slide along' | 'slide out' | null;\n\n@Component({\n standalone: true,\n selector: 'sui-sidebar, [sui-sidebar]',\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-content></ng-content>\n `\n})\nexport class SuiSidebarComponent {\n private sidebarService = inject(SuiSidebarService);\n\n @Input() public suiSidebarPosition: SuiSidebarPosition = 'left';\n @Input() public suiSidebarWidth: SuiSidebarWidth = null;\n @Input() public suiSidebarAnimation: SuiSidebarAnimation = null;\n @Input() @InputBoolean() public suiInverted = false;\n @Output() public visibleChange = new EventEmitter<boolean>();\n\n private _visible = true;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(isVisible) {\n this._visible = isVisible;\n this.visibleChange.emit(this._visible);\n this.sidebarService.changeVisibility(this._visible);\n }\n\n @HostBinding('class')\n get classes(): string {\n return [\n 'ui',\n this.suiSidebarPosition,\n this.suiSidebarWidth,\n ClassUtils.getPropClass(this.suiInverted, 'inverted'),\n 'sidebar',\n this.suiSidebarAnimation,\n ClassUtils.getPropClass(this.visible, 'visible')\n ].join(' ');\n }\n\n constructor() {\n const sidebarService = this.sidebarService;\n\n sidebarService.pusherClicked\n .subscribe(() => {\n // only close sidebar on pusher when the visibility is dynamic\n if (this.visibleChange.observers.length > 0) {\n this.visible = false;\n }\n });\n }\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nimport { Component, HostBinding, HostListener, Input, OnInit, ViewEncapsulation, inject } from '@angular/core';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { SuiSidebarService } from './sidebar.service';\n\n@Component({\n standalone: true,\n selector: 'sui-sidebar-pusher',\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-content></ng-content>\n `\n})\nexport class SuiSidebarPusherComponent implements OnInit {\n private sidebarService = inject(SuiSidebarService);\n\n @Input() @InputBoolean() public suiDimmable = false;\n public isSidebarOpen = false;\n\n @HostBinding('class')\n get classes(): string {\n return [\n ClassUtils.getPropClass(this.isSidebarOpen && this.suiDimmable, 'dimmed'),\n 'pusher'\n ].join(' ');\n }\n\n public ngOnInit(): void {\n this.sidebarService.visibilityChanged\n .subscribe((isVisible) => {\n this.isSidebarOpen = isVisible;\n });\n }\n\n @HostListener('click')\n public onClick(): void {\n if (this.isSidebarOpen) {\n this.sidebarService.notifyPusherClicked();\n }\n }\n}\n","/**\n * Created by bolorundurowb on 1/1/2021\n */\n\nimport { AfterContentInit, Component, ContentChild, ViewEncapsulation } from '@angular/core';\nimport { SuiSidebarComponent } from './sidebar.component';\nimport { SuiSidebarPusherComponent } from './sidebar-pusher.component';\n\n@Component({\n standalone: true,\n selector: 'sui-sidebar-container',\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-content></ng-content>\n `\n})\nexport class SuiSidebarContainerComponent implements AfterContentInit {\n @ContentChild(SuiSidebarComponent) public suiSidebar!: SuiSidebarComponent;\n @ContentChild(SuiSidebarPusherComponent) public suiPusher!: SuiSidebarPusherComponent;\n\n public ngAfterContentInit(): void {\n if (!this.suiSidebar) {\n throw new Error('You must include a <sui-sidebar> element within the container.');\n }\n\n if (!this.suiPusher) {\n throw new Error('You must include a <sui-sidebar-pusher> element within the container.');\n }\n\n this.suiSidebar.visibleChange\n .subscribe((isVisible) => {\n this.suiPusher.isSidebarOpen = isVisible;\n });\n }\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SuiSidebarContainerComponent } from './sidebar-container.component';\nimport { SuiSidebarPusherComponent } from './sidebar-pusher.component';\nimport { SuiSidebarComponent } from './sidebar.component';\nimport { SuiSidebarService } from './sidebar.service';\n\n@NgModule({\n imports: [\n CommonModule,\n SuiSidebarComponent,\n SuiSidebarPusherComponent,\n SuiSidebarContainerComponent\n ],\n exports: [\n SuiSidebarComponent,\n SuiSidebarPusherComponent,\n SuiSidebarContainerComponent\n ],\n providers: [\n SuiSidebarService\n ]\n})\nexport class SuiSidebarModule {\n}\n","/**\n * Created by bolorundurowb on 12/30/2020\n */\n\nexport * from './sidebar-container.component';\nexport * from './sidebar-pusher.component';\nexport * from './sidebar.component';\nexport * from './sidebar.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,18 +1,18 @@
1
1
  import { __decorate } from 'tslib';
2
2
  import { DOCUMENT, CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { EventEmitter, HostBinding, Output, Input, Inject, Directive, NgModule } from '@angular/core';
4
+ import { inject, ElementRef, Renderer2, NgZone, ChangeDetectorRef, EventEmitter, HostBinding, Output, Input, Directive, NgModule } from '@angular/core';
5
5
  import { InputBoolean } from 'ngx-semantic/core/util';
6
6
  import { Subject, fromEvent } from 'rxjs';
7
7
  import { takeUntil } from 'rxjs/operators';
8
8
 
9
9
  class SuiStickyDirective {
10
- constructor(document, el, renderer, zone, cdr) {
11
- this.document = document;
12
- this.el = el;
13
- this.renderer = renderer;
14
- this.zone = zone;
15
- this.cdr = cdr;
10
+ constructor() {
11
+ this.document = inject(DOCUMENT);
12
+ this.el = inject(ElementRef);
13
+ this.renderer = inject(Renderer2);
14
+ this.zone = inject(NgZone);
15
+ this.cdr = inject(ChangeDetectorRef);
16
16
  this.suiContext = null;
17
17
  this.suiScrollContext = 'window';
18
18
  this.suiOffset = 0;
@@ -420,7 +420,7 @@ class SuiStickyDirective {
420
420
  this.resetLayout();
421
421
  this.cache = null;
422
422
  }
423
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiStickyDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
423
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiStickyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
424
424
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: SuiStickyDirective, isStandalone: true, selector: "[suiSticky]", inputs: { suiContext: "suiContext", suiScrollContext: "suiScrollContext", suiOffset: "suiOffset", suiBottomOffset: "suiBottomOffset", suiPushing: "suiPushing", suiSetSize: "suiSetSize", suiJitter: "suiJitter", suiObserveChanges: "suiObserveChanges" }, outputs: { suiOnReposition: "suiOnReposition", suiOnScroll: "suiOnScroll", suiOnStick: "suiOnStick", suiOnUnstick: "suiOnUnstick", suiOnTop: "suiOnTop", suiOnBottom: "suiOnBottom" }, host: { properties: { "class.ui": "this.classUi", "class.sticky": "this.classSticky", "class.fixed": "this.fixed", "class.bound": "this.bound", "class.top": "this.topState", "class.bottom": "this.bottomState" } }, exportAs: ["suiSticky"], ngImport: i0 }); }
425
425
  }
426
426
  __decorate([
@@ -439,10 +439,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImpor
439
439
  selector: '[suiSticky]',
440
440
  exportAs: 'suiSticky'
441
441
  }]
442
- }], ctorParameters: () => [{ type: Document, decorators: [{
443
- type: Inject,
444
- args: [DOCUMENT]
445
- }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { suiContext: [{
442
+ }], propDecorators: { suiContext: [{
446
443
  type: Input
447
444
  }], suiScrollContext: [{
448
445
  type: Input
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-semantic-modules-sticky.mjs","sources":["../../src/modules/sticky/sticky.directive.ts","../../src/modules/sticky/sticky.module.ts","../../src/modules/sticky/ngx-semantic-modules-sticky.ts"],"sourcesContent":["/**\n * Semantic UI [Sticky](https://semantic-ui.com/modules/sticky.html) — Angular port of `$.fn.sticky`.\n * Add `suiSticky` to the element that should stick; set `suiContext` to a selector or element for bounds.\n * Requires Semantic UI sticky CSS (and typically `position: relative` on the rail/column container).\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n Renderer2\n} from '@angular/core';\nimport {InputBoolean} from 'ngx-semantic/core/util';\nimport {Subject, fromEvent} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n/** Cached layout (see Semantic UI `save.positions`). */\nexport interface SuiStickyCache {\n fits: boolean;\n sameHeight: boolean;\n scrollContext: {height: number};\n element: {\n margin: {top: number; bottom: number};\n top: number;\n left: number;\n width: number;\n height: number;\n bottom: number;\n };\n context: {\n top: number;\n height: number;\n bottom: number;\n };\n}\n\n@Directive({\n standalone: true,\n selector: '[suiSticky]',\n exportAs: 'suiSticky'\n})\nexport class SuiStickyDirective implements OnInit, AfterViewInit, OnDestroy {\n @Input() public suiContext: string | HTMLElement | null = null;\n @Input() public suiScrollContext: 'window' | string = 'window';\n @Input() public suiOffset = 0;\n @Input() public suiBottomOffset = 0;\n @Input() @InputBoolean() public suiPushing = false;\n @Input() @InputBoolean() public suiSetSize = true;\n @Input() public suiJitter = 5;\n @Input() @InputBoolean() public suiObserveChanges = false;\n\n @Output() public readonly suiOnReposition = new EventEmitter<void>();\n @Output() public readonly suiOnScroll = new EventEmitter<void>();\n @Output() public readonly suiOnStick = new EventEmitter<void>();\n @Output() public readonly suiOnUnstick = new EventEmitter<void>();\n @Output() public readonly suiOnTop = new EventEmitter<void>();\n @Output() public readonly suiOnBottom = new EventEmitter<void>();\n\n public cache: SuiStickyCache | null = null;\n\n @HostBinding('class.ui') protected readonly classUi = true;\n @HostBinding('class.sticky') protected readonly classSticky = true;\n @HostBinding('class.fixed') fixed = false;\n @HostBinding('class.bound') bound = false;\n @HostBinding('class.top') topState = false;\n @HostBinding('class.bottom') bottomState = false;\n\n private readonly destroy$ = new Subject<void>();\n private lastScroll?: number;\n private elementScroll = 0;\n private scrollEl: Window | HTMLElement = window;\n private contextEl: HTMLElement | null = null;\n private containerEl: HTMLElement | null = null;\n private mutationObserver: MutationObserver | null = null;\n private refreshTimer: ReturnType<typeof setTimeout> | null = null;\n\n constructor(\n @Inject(DOCUMENT) private readonly document: Document,\n private readonly el: ElementRef<HTMLElement>,\n private readonly renderer: Renderer2,\n private readonly zone: NgZone,\n private readonly cdr: ChangeDetectorRef\n ) {}\n\n public ngOnInit(): void {\n this.scrollEl = this.resolveScrollElement();\n const win = this.document.defaultView!;\n this.zone.runOutsideAngular(() => {\n const scrollTarget = this.scrollEl === window ? win : this.scrollEl;\n fromEvent(scrollTarget, 'scroll', {passive: true})\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n requestAnimationFrame(() => {\n const top = this.readScrollTop();\n this.zone.run(() => {\n this.stick(top);\n this.suiOnScroll.emit();\n });\n });\n });\n fromEvent(win, 'resize', {passive: true})\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n requestAnimationFrame(() => this.zone.run(() => this.refresh(false)));\n });\n });\n }\n\n public ngAfterViewInit(): void {\n queueMicrotask(() => this.refresh(true));\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.mutationObserver?.disconnect();\n if (this.refreshTimer) {\n clearTimeout(this.refreshTimer);\n }\n this.reset();\n }\n\n /** Mirrors `sticky('refresh')`. */\n public refresh(hardRefresh = false): void {\n this.resetLayout();\n this.determineContainer();\n this.determineContext();\n if (!this.contextEl) {\n return;\n }\n if (hardRefresh) {\n this.determineContainer();\n }\n this.savePositions();\n this.suiOnReposition.emit();\n this.cdr.markForCheck();\n if (this.suiObserveChanges && typeof MutationObserver !== 'undefined' && !this.mutationObserver) {\n this.mutationObserver = new MutationObserver(() => this.scheduleRefresh());\n this.mutationObserver.observe(this.contextEl, {childList: true, subtree: true});\n this.mutationObserver.observe(this.el.nativeElement, {childList: true, subtree: true});\n }\n }\n\n private scheduleRefresh(): void {\n if (this.refreshTimer) {\n clearTimeout(this.refreshTimer);\n }\n this.refreshTimer = setTimeout(() => {\n this.refreshTimer = null;\n this.refresh(false);\n }, 100);\n }\n\n private resolveScrollElement(): Window | HTMLElement {\n if (this.suiScrollContext === 'window') {\n return window;\n }\n const found = this.document.querySelector(this.suiScrollContext);\n return (found as HTMLElement) || window;\n }\n\n private readScrollTop(): number {\n return this.scrollEl === window ? window.scrollY : (this.scrollEl as HTMLElement).scrollTop;\n }\n\n private determineContainer(): void {\n const host = this.el.nativeElement;\n this.containerEl = (host.offsetParent as HTMLElement) || host.parentElement;\n }\n\n private determineContext(): void {\n if (this.suiContext === null) {\n this.contextEl = this.containerEl;\n return;\n }\n if (typeof this.suiContext === 'string') {\n this.contextEl = this.document.querySelector(this.suiContext) as HTMLElement | null;\n return;\n }\n this.contextEl = this.suiContext;\n }\n\n private savePositions(): void {\n const mod = this.el.nativeElement;\n const ctx = this.contextEl!;\n const scrollH = window.innerHeight;\n\n const cs = getComputedStyle(mod);\n const marginTop = parseInt(cs.marginTop, 10) || 0;\n const marginBottom = parseInt(cs.marginBottom, 10) || 0;\n\n const sy = window.scrollY;\n const sx = window.scrollX;\n const er = mod.getBoundingClientRect();\n const cr = ctx.getBoundingClientRect();\n\n const elementOffsetTop = er.top + sy;\n const contextOffsetTop = cr.top + sy;\n const elementOffsetLeft = er.left + sx;\n\n const elementHeight = mod.offsetHeight;\n const contextHeight = ctx.offsetHeight;\n\n const elementTop = elementOffsetTop - marginTop;\n const contextBottom = contextOffsetTop + contextHeight;\n\n this.cache = {\n fits: elementHeight + this.suiOffset <= scrollH,\n sameHeight: elementHeight === contextHeight,\n scrollContext: {height: scrollH},\n element: {\n margin: {top: marginTop, bottom: marginBottom},\n top: elementTop,\n left: elementOffsetLeft,\n width: mod.offsetWidth,\n height: elementHeight,\n bottom: elementOffsetTop + elementHeight\n },\n context: {\n top: contextOffsetTop,\n height: contextHeight,\n bottom: contextBottom\n }\n };\n\n this.setContainerSize();\n if (!this.isCacheValid()) {\n this.cache = null;\n this.resetLayout();\n return;\n }\n this.stick(this.readScrollTop());\n }\n\n private isCacheValid(): boolean {\n if (!this.cache) {\n return false;\n }\n const style = getComputedStyle(this.el.nativeElement);\n if (style.display === 'none' || style.visibility === 'hidden') {\n return false;\n }\n return this.cache.element.height <= this.cache.context.height;\n }\n\n private setContainerSize(): void {\n if (!this.cache || !this.containerEl) {\n return;\n }\n const tag = this.containerEl.tagName;\n if (tag === 'HTML' || tag === 'BODY') {\n return;\n }\n const ch = this.containerEl.offsetHeight;\n const ctxH = this.cache.context.height;\n if (Math.abs(ch - ctxH) > this.suiJitter) {\n this.renderer.setStyle(this.containerEl, 'height', `${ctxH}px`);\n }\n }\n\n /**\n * Port of Semantic UI `module.stick` — initial / fixed-top / bound-bottom transitions\n * (simplified: no oversized inner scroll in this version).\n */\n private stick(cachedPosition: number): void {\n const cache = this.cache;\n if (!cache || cache.sameHeight) {\n return;\n }\n\n const offset = this.bottomState && this.suiPushing ? this.suiBottomOffset : this.suiOffset;\n const scroll = {\n top: cachedPosition + offset,\n bottom: cachedPosition + offset + cache.scrollContext.height\n };\n\n const element = cache.element;\n const context = cache.context;\n const elementScroll = cache.fits ? 0 : this.computeElementScroll(cachedPosition);\n\n if (this.isInitialPosition()) {\n if (scroll.top >= context.bottom) {\n this.bindBottom();\n } else if (scroll.top > element.top) {\n if (element.height + scroll.top - elementScroll >= context.bottom) {\n this.bindBottom();\n } else {\n this.fixTop();\n }\n }\n } else if (this.fixed) {\n if (this.topState) {\n if (scroll.top <= element.top) {\n this.setInitialPosition();\n } else if (element.height + scroll.top - elementScroll >= context.bottom) {\n this.bindBottom();\n } else if (!cache.fits) {\n this.applyElementScroll(elementScroll);\n this.lastScroll = scroll.top;\n }\n } else if (this.bottomState) {\n if (scroll.bottom - element.height <= element.top) {\n this.setInitialPosition();\n } else if (scroll.bottom >= context.bottom) {\n this.bindBottom();\n } else if (!cache.fits) {\n this.applyElementScroll(elementScroll);\n this.lastScroll = scroll.top;\n }\n }\n } else if (this.bound && this.bottomState) {\n if (scroll.top <= element.top) {\n this.setInitialPosition();\n } else if (this.suiPushing) {\n if (this.bound && scroll.bottom <= context.bottom) {\n this.fixBottom();\n }\n } else {\n if (this.bound && scroll.top <= context.bottom - element.height) {\n this.fixTop();\n }\n }\n }\n\n this.lastScroll = cachedPosition;\n this.cdr.markForCheck();\n }\n\n private isInitialPosition(): boolean {\n return !this.fixed && !this.bound;\n }\n\n private computeElementScroll(scroll: number): number {\n const cache = this.cache!;\n const delta = this.lastScroll === undefined ? 0 : scroll - this.lastScroll;\n const maxScroll = cache.element.height - cache.scrollContext.height + this.suiOffset;\n let es = this.elementScroll;\n if (this.topState) {\n es = Math.abs(parseInt(this.el.nativeElement.style.top || '0', 10)) || 0;\n } else if (this.bottomState) {\n es = Math.abs(parseInt(this.el.nativeElement.style.bottom || '0', 10)) || 0;\n }\n const possible = es + delta;\n if (cache.fits || possible < 0) {\n return 0;\n }\n if (possible > maxScroll) {\n return maxScroll;\n }\n return possible;\n }\n\n private applyElementScroll(scroll: number): void {\n this.elementScroll = scroll;\n if (this.topState) {\n this.renderer.setStyle(this.el.nativeElement, 'bottom', '');\n this.renderer.setStyle(this.el.nativeElement, 'top', `${-scroll}px`);\n }\n if (this.bottomState) {\n this.renderer.setStyle(this.el.nativeElement, 'top', '');\n this.renderer.setStyle(this.el.nativeElement, 'bottom', `${scroll}px`);\n }\n }\n\n private bindBottom(): void {\n this.unfix();\n this.unbind();\n this.clearPositionStyles();\n this.renderer.removeStyle(this.el.nativeElement, 'margin-top');\n this.fixed = false;\n this.bound = true;\n this.topState = false;\n this.bottomState = true;\n this.suiOnBottom.emit();\n this.suiOnUnstick.emit();\n }\n\n private fixTop(): void {\n this.unfix();\n this.unbind();\n const cache = this.cache!;\n if (this.suiSetSize) {\n this.renderer.setStyle(this.el.nativeElement, 'width', `${cache.element.width}px`, 2);\n this.renderer.setStyle(this.el.nativeElement, 'height', `${cache.element.height}px`, 2);\n }\n if (this.containerEl) {\n this.renderer.setStyle(this.containerEl, 'min-height', `${cache.element.height}px`);\n }\n this.renderer.setStyle(this.el.nativeElement, 'margin-top', `${this.suiOffset}px`);\n this.renderer.setStyle(this.el.nativeElement, 'left', `${cache.element.left}px`);\n this.renderer.setStyle(this.el.nativeElement, 'bottom', '');\n this.renderer.setStyle(this.el.nativeElement, 'margin-bottom', '');\n this.fixed = true;\n this.bound = false;\n this.topState = true;\n this.bottomState = false;\n this.suiOnStick.emit();\n }\n\n private fixBottom(): void {\n this.unfix();\n this.unbind();\n const cache = this.cache!;\n if (this.suiSetSize) {\n this.renderer.setStyle(this.el.nativeElement, 'width', `${cache.element.width}px`, 2);\n this.renderer.setStyle(this.el.nativeElement, 'height', `${cache.element.height}px`, 2);\n }\n if (this.containerEl) {\n this.renderer.setStyle(this.containerEl, 'min-height', `${cache.element.height}px`);\n }\n this.renderer.setStyle(this.el.nativeElement, 'margin-top', `${this.suiOffset}px`);\n this.renderer.setStyle(this.el.nativeElement, 'left', `${cache.element.left}px`);\n this.fixed = true;\n this.bound = false;\n this.topState = false;\n this.bottomState = true;\n this.suiOnStick.emit();\n }\n\n private setInitialPosition(): void {\n const wasStuck = this.fixed || this.bound;\n this.unfix();\n this.unbind();\n this.lastScroll = undefined;\n this.elementScroll = 0;\n if (wasStuck) {\n this.suiOnUnstick.emit();\n }\n }\n\n private unbind(): void {\n if (!this.bound) {\n return;\n }\n this.bound = false;\n this.topState = false;\n this.bottomState = false;\n }\n\n private unfix(): void {\n if (!this.fixed) {\n return;\n }\n if (this.containerEl) {\n this.renderer.removeStyle(this.containerEl, 'min-height');\n }\n this.renderer.removeStyle(this.el.nativeElement, 'margin-top');\n this.renderer.removeStyle(this.el.nativeElement, 'left');\n this.renderer.removeStyle(this.el.nativeElement, 'width');\n this.renderer.removeStyle(this.el.nativeElement, 'height');\n this.renderer.removeStyle(this.el.nativeElement, 'top');\n this.renderer.removeStyle(this.el.nativeElement, 'bottom');\n this.fixed = false;\n this.topState = false;\n this.bottomState = false;\n }\n\n private clearPositionStyles(): void {\n this.renderer.removeStyle(this.el.nativeElement, 'left');\n this.renderer.removeStyle(this.el.nativeElement, 'top');\n this.renderer.removeStyle(this.el.nativeElement, 'bottom');\n this.renderer.removeStyle(this.el.nativeElement, 'margin-bottom');\n }\n\n private resetLayout(): void {\n this.unfix();\n this.unbind();\n this.clearPositionStyles();\n this.renderer.removeStyle(this.el.nativeElement, 'margin-top');\n if (this.containerEl) {\n this.renderer.removeStyle(this.containerEl, 'height');\n this.renderer.removeStyle(this.containerEl, 'min-height');\n }\n this.renderer.removeStyle(this.el.nativeElement, 'width');\n this.renderer.removeStyle(this.el.nativeElement, 'height');\n this.fixed = false;\n this.bound = false;\n this.topState = false;\n this.bottomState = false;\n }\n\n private reset(): void {\n this.resetLayout();\n this.cache = null;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SuiStickyDirective} from './sticky.directive';\n\n@NgModule({\n imports: [CommonModule, SuiStickyDirective],\n exports: [SuiStickyDirective]\n})\nexport class SuiStickyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-semantic-modules-sticky.mjs","sources":["../../src/modules/sticky/sticky.directive.ts","../../src/modules/sticky/sticky.module.ts","../../src/modules/sticky/ngx-semantic-modules-sticky.ts"],"sourcesContent":["/**\n * Semantic UI [Sticky](https://semantic-ui.com/modules/sticky.html) — Angular port of `$.fn.sticky`.\n * Add `suiSticky` to the element that should stick; set `suiContext` to a selector or element for bounds.\n * Requires Semantic UI sticky CSS (and typically `position: relative` on the rail/column container).\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostBinding, Input, NgZone, OnDestroy, OnInit, Output, Renderer2, inject } from '@angular/core';\nimport { InputBoolean } from 'ngx-semantic/core/util';\nimport { Subject, fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/** Cached layout (see Semantic UI `save.positions`). */\nexport interface SuiStickyCache {\n fits: boolean;\n sameHeight: boolean;\n scrollContext: {height: number};\n element: {\n margin: {top: number; bottom: number};\n top: number;\n left: number;\n width: number;\n height: number;\n bottom: number;\n };\n context: {\n top: number;\n height: number;\n bottom: number;\n };\n}\n\n@Directive({\n standalone: true,\n selector: '[suiSticky]',\n exportAs: 'suiSticky'\n})\nexport class SuiStickyDirective implements OnInit, AfterViewInit, OnDestroy {\n private readonly document = inject<Document>(DOCUMENT);\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly zone = inject(NgZone);\n private readonly cdr = inject(ChangeDetectorRef);\n\n @Input() public suiContext: string | HTMLElement | null = null;\n @Input() public suiScrollContext: 'window' | string = 'window';\n @Input() public suiOffset = 0;\n @Input() public suiBottomOffset = 0;\n @Input() @InputBoolean() public suiPushing = false;\n @Input() @InputBoolean() public suiSetSize = true;\n @Input() public suiJitter = 5;\n @Input() @InputBoolean() public suiObserveChanges = false;\n\n @Output() public readonly suiOnReposition = new EventEmitter<void>();\n @Output() public readonly suiOnScroll = new EventEmitter<void>();\n @Output() public readonly suiOnStick = new EventEmitter<void>();\n @Output() public readonly suiOnUnstick = new EventEmitter<void>();\n @Output() public readonly suiOnTop = new EventEmitter<void>();\n @Output() public readonly suiOnBottom = new EventEmitter<void>();\n\n public cache: SuiStickyCache | null = null;\n\n @HostBinding('class.ui') protected readonly classUi = true;\n @HostBinding('class.sticky') protected readonly classSticky = true;\n @HostBinding('class.fixed') fixed = false;\n @HostBinding('class.bound') bound = false;\n @HostBinding('class.top') topState = false;\n @HostBinding('class.bottom') bottomState = false;\n\n private readonly destroy$ = new Subject<void>();\n private lastScroll?: number;\n private elementScroll = 0;\n private scrollEl: Window | HTMLElement = window;\n private contextEl: HTMLElement | null = null;\n private containerEl: HTMLElement | null = null;\n private mutationObserver: MutationObserver | null = null;\n private refreshTimer: ReturnType<typeof setTimeout> | null = null;\n\n public ngOnInit(): void {\n this.scrollEl = this.resolveScrollElement();\n const win = this.document.defaultView!;\n this.zone.runOutsideAngular(() => {\n const scrollTarget = this.scrollEl === window ? win : this.scrollEl;\n fromEvent(scrollTarget, 'scroll', { passive: true })\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n requestAnimationFrame(() => {\n const top = this.readScrollTop();\n this.zone.run(() => {\n this.stick(top);\n this.suiOnScroll.emit();\n });\n });\n });\n fromEvent(win, 'resize', { passive: true })\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n requestAnimationFrame(() => this.zone.run(() => this.refresh(false)));\n });\n });\n }\n\n public ngAfterViewInit(): void {\n queueMicrotask(() => this.refresh(true));\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.mutationObserver?.disconnect();\n if (this.refreshTimer) {\n clearTimeout(this.refreshTimer);\n }\n this.reset();\n }\n\n /** Mirrors `sticky('refresh')`. */\n public refresh(hardRefresh = false): void {\n this.resetLayout();\n this.determineContainer();\n this.determineContext();\n if (!this.contextEl) {\n return;\n }\n if (hardRefresh) {\n this.determineContainer();\n }\n this.savePositions();\n this.suiOnReposition.emit();\n this.cdr.markForCheck();\n if (this.suiObserveChanges && typeof MutationObserver !== 'undefined' && !this.mutationObserver) {\n this.mutationObserver = new MutationObserver(() => this.scheduleRefresh());\n this.mutationObserver.observe(this.contextEl, { childList: true, subtree: true });\n this.mutationObserver.observe(this.el.nativeElement, { childList: true, subtree: true });\n }\n }\n\n private scheduleRefresh(): void {\n if (this.refreshTimer) {\n clearTimeout(this.refreshTimer);\n }\n this.refreshTimer = setTimeout(() => {\n this.refreshTimer = null;\n this.refresh(false);\n }, 100);\n }\n\n private resolveScrollElement(): Window | HTMLElement {\n if (this.suiScrollContext === 'window') {\n return window;\n }\n const found = this.document.querySelector(this.suiScrollContext);\n return (found as HTMLElement) || window;\n }\n\n private readScrollTop(): number {\n return this.scrollEl === window ? window.scrollY : (this.scrollEl as HTMLElement).scrollTop;\n }\n\n private determineContainer(): void {\n const host = this.el.nativeElement;\n this.containerEl = (host.offsetParent as HTMLElement) || host.parentElement;\n }\n\n private determineContext(): void {\n if (this.suiContext === null) {\n this.contextEl = this.containerEl;\n return;\n }\n if (typeof this.suiContext === 'string') {\n this.contextEl = this.document.querySelector(this.suiContext) as HTMLElement | null;\n return;\n }\n this.contextEl = this.suiContext;\n }\n\n private savePositions(): void {\n const mod = this.el.nativeElement;\n const ctx = this.contextEl!;\n const scrollH = window.innerHeight;\n\n const cs = getComputedStyle(mod);\n const marginTop = parseInt(cs.marginTop, 10) || 0;\n const marginBottom = parseInt(cs.marginBottom, 10) || 0;\n\n const sy = window.scrollY;\n const sx = window.scrollX;\n const er = mod.getBoundingClientRect();\n const cr = ctx.getBoundingClientRect();\n\n const elementOffsetTop = er.top + sy;\n const contextOffsetTop = cr.top + sy;\n const elementOffsetLeft = er.left + sx;\n\n const elementHeight = mod.offsetHeight;\n const contextHeight = ctx.offsetHeight;\n\n const elementTop = elementOffsetTop - marginTop;\n const contextBottom = contextOffsetTop + contextHeight;\n\n this.cache = {\n fits: elementHeight + this.suiOffset <= scrollH,\n sameHeight: elementHeight === contextHeight,\n scrollContext: { height: scrollH },\n element: {\n margin: { top: marginTop, bottom: marginBottom },\n top: elementTop,\n left: elementOffsetLeft,\n width: mod.offsetWidth,\n height: elementHeight,\n bottom: elementOffsetTop + elementHeight\n },\n context: {\n top: contextOffsetTop,\n height: contextHeight,\n bottom: contextBottom\n }\n };\n\n this.setContainerSize();\n if (!this.isCacheValid()) {\n this.cache = null;\n this.resetLayout();\n return;\n }\n this.stick(this.readScrollTop());\n }\n\n private isCacheValid(): boolean {\n if (!this.cache) {\n return false;\n }\n const style = getComputedStyle(this.el.nativeElement);\n if (style.display === 'none' || style.visibility === 'hidden') {\n return false;\n }\n return this.cache.element.height <= this.cache.context.height;\n }\n\n private setContainerSize(): void {\n if (!this.cache || !this.containerEl) {\n return;\n }\n const tag = this.containerEl.tagName;\n if (tag === 'HTML' || tag === 'BODY') {\n return;\n }\n const ch = this.containerEl.offsetHeight;\n const ctxH = this.cache.context.height;\n if (Math.abs(ch - ctxH) > this.suiJitter) {\n this.renderer.setStyle(this.containerEl, 'height', `${ctxH}px`);\n }\n }\n\n /**\n * Port of Semantic UI `module.stick` — initial / fixed-top / bound-bottom transitions\n * (simplified: no oversized inner scroll in this version).\n */\n private stick(cachedPosition: number): void {\n const cache = this.cache;\n if (!cache || cache.sameHeight) {\n return;\n }\n\n const offset = this.bottomState && this.suiPushing ? this.suiBottomOffset : this.suiOffset;\n const scroll = {\n top: cachedPosition + offset,\n bottom: cachedPosition + offset + cache.scrollContext.height\n };\n\n const element = cache.element;\n const context = cache.context;\n const elementScroll = cache.fits ? 0 : this.computeElementScroll(cachedPosition);\n\n if (this.isInitialPosition()) {\n if (scroll.top >= context.bottom) {\n this.bindBottom();\n } else if (scroll.top > element.top) {\n if (element.height + scroll.top - elementScroll >= context.bottom) {\n this.bindBottom();\n } else {\n this.fixTop();\n }\n }\n } else if (this.fixed) {\n if (this.topState) {\n if (scroll.top <= element.top) {\n this.setInitialPosition();\n } else if (element.height + scroll.top - elementScroll >= context.bottom) {\n this.bindBottom();\n } else if (!cache.fits) {\n this.applyElementScroll(elementScroll);\n this.lastScroll = scroll.top;\n }\n } else if (this.bottomState) {\n if (scroll.bottom - element.height <= element.top) {\n this.setInitialPosition();\n } else if (scroll.bottom >= context.bottom) {\n this.bindBottom();\n } else if (!cache.fits) {\n this.applyElementScroll(elementScroll);\n this.lastScroll = scroll.top;\n }\n }\n } else if (this.bound && this.bottomState) {\n if (scroll.top <= element.top) {\n this.setInitialPosition();\n } else if (this.suiPushing) {\n if (this.bound && scroll.bottom <= context.bottom) {\n this.fixBottom();\n }\n } else {\n if (this.bound && scroll.top <= context.bottom - element.height) {\n this.fixTop();\n }\n }\n }\n\n this.lastScroll = cachedPosition;\n this.cdr.markForCheck();\n }\n\n private isInitialPosition(): boolean {\n return !this.fixed && !this.bound;\n }\n\n private computeElementScroll(scroll: number): number {\n const cache = this.cache!;\n const delta = this.lastScroll === undefined ? 0 : scroll - this.lastScroll;\n const maxScroll = cache.element.height - cache.scrollContext.height + this.suiOffset;\n let es = this.elementScroll;\n if (this.topState) {\n es = Math.abs(parseInt(this.el.nativeElement.style.top || '0', 10)) || 0;\n } else if (this.bottomState) {\n es = Math.abs(parseInt(this.el.nativeElement.style.bottom || '0', 10)) || 0;\n }\n const possible = es + delta;\n if (cache.fits || possible < 0) {\n return 0;\n }\n if (possible > maxScroll) {\n return maxScroll;\n }\n return possible;\n }\n\n private applyElementScroll(scroll: number): void {\n this.elementScroll = scroll;\n if (this.topState) {\n this.renderer.setStyle(this.el.nativeElement, 'bottom', '');\n this.renderer.setStyle(this.el.nativeElement, 'top', `${-scroll}px`);\n }\n if (this.bottomState) {\n this.renderer.setStyle(this.el.nativeElement, 'top', '');\n this.renderer.setStyle(this.el.nativeElement, 'bottom', `${scroll}px`);\n }\n }\n\n private bindBottom(): void {\n this.unfix();\n this.unbind();\n this.clearPositionStyles();\n this.renderer.removeStyle(this.el.nativeElement, 'margin-top');\n this.fixed = false;\n this.bound = true;\n this.topState = false;\n this.bottomState = true;\n this.suiOnBottom.emit();\n this.suiOnUnstick.emit();\n }\n\n private fixTop(): void {\n this.unfix();\n this.unbind();\n const cache = this.cache!;\n if (this.suiSetSize) {\n this.renderer.setStyle(this.el.nativeElement, 'width', `${cache.element.width}px`, 2);\n this.renderer.setStyle(this.el.nativeElement, 'height', `${cache.element.height}px`, 2);\n }\n if (this.containerEl) {\n this.renderer.setStyle(this.containerEl, 'min-height', `${cache.element.height}px`);\n }\n this.renderer.setStyle(this.el.nativeElement, 'margin-top', `${this.suiOffset}px`);\n this.renderer.setStyle(this.el.nativeElement, 'left', `${cache.element.left}px`);\n this.renderer.setStyle(this.el.nativeElement, 'bottom', '');\n this.renderer.setStyle(this.el.nativeElement, 'margin-bottom', '');\n this.fixed = true;\n this.bound = false;\n this.topState = true;\n this.bottomState = false;\n this.suiOnStick.emit();\n }\n\n private fixBottom(): void {\n this.unfix();\n this.unbind();\n const cache = this.cache!;\n if (this.suiSetSize) {\n this.renderer.setStyle(this.el.nativeElement, 'width', `${cache.element.width}px`, 2);\n this.renderer.setStyle(this.el.nativeElement, 'height', `${cache.element.height}px`, 2);\n }\n if (this.containerEl) {\n this.renderer.setStyle(this.containerEl, 'min-height', `${cache.element.height}px`);\n }\n this.renderer.setStyle(this.el.nativeElement, 'margin-top', `${this.suiOffset}px`);\n this.renderer.setStyle(this.el.nativeElement, 'left', `${cache.element.left}px`);\n this.fixed = true;\n this.bound = false;\n this.topState = false;\n this.bottomState = true;\n this.suiOnStick.emit();\n }\n\n private setInitialPosition(): void {\n const wasStuck = this.fixed || this.bound;\n this.unfix();\n this.unbind();\n this.lastScroll = undefined;\n this.elementScroll = 0;\n if (wasStuck) {\n this.suiOnUnstick.emit();\n }\n }\n\n private unbind(): void {\n if (!this.bound) {\n return;\n }\n this.bound = false;\n this.topState = false;\n this.bottomState = false;\n }\n\n private unfix(): void {\n if (!this.fixed) {\n return;\n }\n if (this.containerEl) {\n this.renderer.removeStyle(this.containerEl, 'min-height');\n }\n this.renderer.removeStyle(this.el.nativeElement, 'margin-top');\n this.renderer.removeStyle(this.el.nativeElement, 'left');\n this.renderer.removeStyle(this.el.nativeElement, 'width');\n this.renderer.removeStyle(this.el.nativeElement, 'height');\n this.renderer.removeStyle(this.el.nativeElement, 'top');\n this.renderer.removeStyle(this.el.nativeElement, 'bottom');\n this.fixed = false;\n this.topState = false;\n this.bottomState = false;\n }\n\n private clearPositionStyles(): void {\n this.renderer.removeStyle(this.el.nativeElement, 'left');\n this.renderer.removeStyle(this.el.nativeElement, 'top');\n this.renderer.removeStyle(this.el.nativeElement, 'bottom');\n this.renderer.removeStyle(this.el.nativeElement, 'margin-bottom');\n }\n\n private resetLayout(): void {\n this.unfix();\n this.unbind();\n this.clearPositionStyles();\n this.renderer.removeStyle(this.el.nativeElement, 'margin-top');\n if (this.containerEl) {\n this.renderer.removeStyle(this.containerEl, 'height');\n this.renderer.removeStyle(this.containerEl, 'min-height');\n }\n this.renderer.removeStyle(this.el.nativeElement, 'width');\n this.renderer.removeStyle(this.el.nativeElement, 'height');\n this.fixed = false;\n this.bound = false;\n this.topState = false;\n this.bottomState = false;\n }\n\n private reset(): void {\n this.resetLayout();\n this.cache = null;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SuiStickyDirective } from './sticky.directive';\n\n@NgModule({\n imports: [CommonModule, SuiStickyDirective],\n exports: [SuiStickyDirective]\n})\nexport class SuiStickyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}