UNPKG

primeng

Version:

PrimeNG is an open source UI library for Angular featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeB

1 lines 19.3 kB
{"version":3,"file":"primeng-scrolltop.mjs","sources":["../../src/scrolltop/style/scrolltopstyle.ts","../../src/scrolltop/scrolltop.ts","../../src/scrolltop/primeng-scrolltop.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/scrolltop';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => ['p-scrolltop', { 'p-scrolltop-sticky': instance.target !== 'window' }],\n icon: 'p-scrolltop-icon'\n};\n\n@Injectable()\nexport class ScrollTopStyle extends BaseStyle {\n name = 'scrolltop';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * ScrollTop gets displayed after a certain scroll position and used to navigates to the top of the page quickly.\n *\n * [Live Demo](https://www.primeng.org/scrolltop/)\n *\n * @module scrolltopstyle\n *\n */\nexport enum ScrollTopClasses {\n /**\n * Class name of the root element\n */\n root = 'p-scrolltop',\n /**\n * Class name of the icon element\n */\n icon = 'p-scrolltop-icon'\n}\n\nexport interface ScrollTopStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, ContentChild, ContentChildren, inject, InjectionToken, input, Input, NgModule, numberAttribute, QueryList, signal, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { MotionEvent, MotionOptions } from '@primeuix/motion';\nimport { getWindowScrollTop } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Button, ButtonProps } from 'primeng/button';\nimport { ChevronUpIcon } from 'primeng/icons';\nimport { MotionDirective } from 'primeng/motion';\nimport { ScrollTopIconTemplateContext, ScrollTopPassThrough } from 'primeng/types/scrolltop';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { ScrollTopStyle } from './style/scrolltopstyle';\n\nconst SCROLLTOP_INSTANCE = new InjectionToken<ScrollTop>('SCROLLTOP_INSTANCE');\n\n/**\n * ScrollTop gets displayed after a certain scroll position and used to navigates to the top of the page quickly.\n * @group Components\n */\n@Component({\n selector: 'p-scrollTop, p-scrolltop, p-scroll-top',\n standalone: true,\n imports: [CommonModule, ChevronUpIcon, Button, SharedModule, MotionDirective],\n template: `\n @if (render()) {\n <p-button\n [pMotion]=\"visible()\"\n [pMotionAppear]=\"true\"\n [pMotionName]=\"'p-scrolltop'\"\n [pMotionOptions]=\"computedMotionOptions()\"\n (pMotionOnBeforeEnter)=\"onBeforeEnter($event)\"\n (pMotionOnBeforeLeave)=\"onBeforeLeave()\"\n (pMotionOnAfterLeave)=\"onAfterLeave()\"\n [attr.aria-label]=\"buttonAriaLabel\"\n (click)=\"onClick()\"\n [pt]=\"ptm('pcButton')\"\n [styleClass]=\"cn(cx('root'), styleClass)\"\n [ngStyle]=\"style\"\n type=\"button\"\n [buttonProps]=\"buttonProps\"\n [unstyled]=\"unstyled()\"\n >\n <ng-template #icon>\n <ng-container *ngIf=\"!iconTemplate && !_iconTemplate\">\n <span *ngIf=\"_icon\" [class]=\"cn(cx('icon'), _icon)\"></span>\n <svg data-p-icon=\"chevron-up\" *ngIf=\"!_icon\" [class]=\"cx('icon')\" />\n </ng-container>\n <ng-template [ngIf]=\"!icon\" *ngTemplateOutlet=\"iconTemplate || _iconTemplate; context: { styleClass: cx('icon') }\"></ng-template>\n </ng-template>\n </p-button>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [ScrollTopStyle, { provide: SCROLLTOP_INSTANCE, useExisting: ScrollTop }, { provide: PARENT_INSTANCE, useExisting: ScrollTop }],\n hostDirectives: [Bind]\n})\nexport class ScrollTop extends BaseComponent<ScrollTopPassThrough> {\n $pcScrollTop: ScrollTop | undefined = inject(SCROLLTOP_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n /**\n * Class of the element.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the element.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Target of the ScrollTop.\n * @group Props\n */\n @Input() target: 'window' | 'parent' | undefined = 'window';\n /**\n * Defines the threshold value of the vertical scroll position of the target to toggle the visibility.\n * @group Props\n */\n @Input({ transform: numberAttribute }) threshold: number = 400;\n /**\n * Name of the icon or JSX.Element for icon.\n * @group Props\n */\n @Input() get icon(): string | undefined {\n return this._icon;\n }\n /**\n * Defines the scrolling behavior, \"smooth\" adds an animation and \"auto\" scrolls with a jump.\n * @group Props\n */\n @Input() behavior: 'auto' | 'smooth' | undefined = 'smooth';\n /**\n * A string value used to determine the display transition options.\n * @group Props\n * @deprecated since v21.0.0. Use `motionOptions` instead.\n */\n @Input() showTransitionOptions: string = '.15s';\n /**\n * A string value used to determine the hiding transition options.\n * @group Props\n * @deprecated since v21.0.0. Use `motionOptions` instead.\n */\n @Input() hideTransitionOptions: string = '.15s';\n /**\n * The motion options.\n * @group Props\n */\n motionOptions = input<MotionOptions | undefined>(undefined);\n\n computedMotionOptions = computed<MotionOptions>(() => {\n return {\n ...this.ptm('motion'),\n ...this.motionOptions()\n };\n });\n /**\n * Establishes a string value that labels the scroll-top button.\n * @group Props\n */\n @Input() buttonAriaLabel: string | undefined;\n /**\n * Used to pass all properties of the ButtonProps to the Button component.\n * @group Props\n */\n @Input() buttonProps: ButtonProps = { rounded: true };\n /**\n * Custom icon template.\n * @param {ScrollTopIconTemplateContext} context - icon context.\n * @see {@link ScrollTopIconTemplateContext}\n * @group Templates\n */\n @ContentChild('icon', { descendants: false }) iconTemplate: TemplateRef<ScrollTopIconTemplateContext> | undefined;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n _iconTemplate: TemplateRef<ScrollTopIconTemplateContext> | undefined;\n\n _icon: string | undefined;\n\n set icon(value: string | undefined) {\n this._icon = value;\n }\n\n documentScrollListener: VoidFunction | null | undefined;\n\n parentScrollListener: VoidFunction | null | undefined;\n\n visible = signal<boolean>(false);\n\n render = signal<boolean>(false);\n\n overlay: any;\n\n _componentStyle = inject(ScrollTopStyle);\n\n onInit() {\n if (this.target === 'window') this.bindDocumentScrollListener();\n else if (this.target === 'parent') this.bindParentScrollListener();\n }\n\n onAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'icon':\n this._iconTemplate = item.template;\n break;\n }\n });\n }\n\n onClick() {\n let scrollElement = this.target === 'window' ? this.document.defaultView : this.el.nativeElement.parentElement;\n scrollElement.scroll({\n top: 0,\n behavior: this.behavior\n });\n }\n\n onBeforeEnter(event: MotionEvent) {\n this.overlay = event.element as HTMLElement;\n this.overlay.style.position = this.target === 'parent' ? 'sticky' : 'fixed';\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n }\n\n onBeforeLeave() {\n ZIndexUtils.clear(this.overlay);\n this.overlay = null;\n }\n\n onAfterLeave() {\n this.render.set(false);\n }\n\n checkVisibility(scrollY: number) {\n if (scrollY > this.threshold) {\n this.visible.set(true);\n if (!this.render()) {\n this.render.set(true);\n }\n } else {\n this.visible.set(false);\n }\n }\n\n bindParentScrollListener() {\n if (isPlatformBrowser(this.platformId)) {\n this.parentScrollListener = this.renderer.listen(this.el.nativeElement.parentElement, 'scroll', () => {\n this.checkVisibility(this.el.nativeElement.parentElement.scrollTop);\n });\n }\n }\n\n bindDocumentScrollListener() {\n if (isPlatformBrowser(this.platformId)) {\n this.documentScrollListener = this.renderer.listen(this.document.defaultView, 'scroll', () => {\n this.checkVisibility(getWindowScrollTop());\n });\n }\n }\n\n unbindParentScrollListener() {\n if (this.parentScrollListener) {\n this.parentScrollListener();\n this.parentScrollListener = null;\n }\n }\n\n unbindDocumentScrollListener() {\n if (this.documentScrollListener) {\n this.documentScrollListener();\n this.documentScrollListener = null;\n }\n }\n\n onDestroy() {\n if (this.target === 'window') this.unbindDocumentScrollListener();\n else if (this.target === 'parent') this.unbindParentScrollListener();\n\n if (this.overlay) {\n ZIndexUtils.clear(this.overlay);\n this.overlay = null;\n }\n }\n}\n\n@NgModule({\n imports: [ScrollTop, SharedModule],\n exports: [ScrollTop, SharedModule]\n})\nexport class ScrollTopModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}