UNPKG

novo-elements

Version:

1 lines 27.9 kB
{"version":3,"file":"novo-elements-elements-expansion.mjs","sources":["../../../projects/novo-elements/src/elements/expansion/accordion.ts","../../../projects/novo-elements/src/elements/expansion/expansion-animations.ts","../../../projects/novo-elements/src/elements/expansion/expansion-panel-content.ts","../../../projects/novo-elements/src/elements/expansion/expansion-panel.ts","../../../projects/novo-elements/src/elements/expansion/expansion-panel.html","../../../projects/novo-elements/src/elements/expansion/expansion-panel-header.ts","../../../projects/novo-elements/src/elements/expansion/expansion-panel-header.html","../../../projects/novo-elements/src/elements/expansion/expansion.module.ts","../../../projects/novo-elements/src/elements/expansion/novo-elements-elements-expansion.ts"],"sourcesContent":["import { CdkAccordion } from '@angular/cdk/accordion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, Input } from '@angular/core';\n\n/** NovoAccordion's display modes. */\nexport type NovoAccordionDisplayMode = 'default' | 'flat';\n\n/**\n * Directive for a Material Design Accordion.\n */\n@Directive({\n selector: 'novo-accordion',\n exportAs: 'novoAccordion',\n host: {\n class: 'novo-accordion',\n },\n standalone: false,\n})\nexport class NovoAccordion extends CdkAccordion {\n /** Whether the expansion indicator should be hidden. */\n @Input()\n get hideToggle(): boolean {\n return this._hideToggle;\n }\n set hideToggle(show: boolean) {\n this._hideToggle = coerceBooleanProperty(show);\n }\n private _hideToggle: boolean = false;\n\n /**\n * The display mode used for all expansion panels in the accordion. Currently two display\n * modes exist:\n * default - a gutter-like spacing is placed around any expanded panel, placing the expanded\n * panel at a different elevation from the reset of the accordion.\n * flat - no spacing is placed around expanded panels, showing all panels at the same\n * elevation.\n */\n @Input()\n displayMode: NovoAccordionDisplayMode = 'default';\n}\n","import { animate, animateChild, AnimationTriggerMetadata, group, query, state, style, transition, trigger } from '@angular/animations';\n\n/** Time and timing curve for expansion panel animations. */\nexport const EXPANSION_PANEL_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';\n\n/** Animations used by the Material expansion panel. */\nexport const novoExpansionAnimations: {\n readonly indicatorRotate: AnimationTriggerMetadata;\n readonly expansionHeaderHeight: AnimationTriggerMetadata;\n readonly bodyExpansion: AnimationTriggerMetadata;\n} = {\n /** Animation that rotates the indicator arrow. */\n indicatorRotate: trigger('indicatorRotate', [\n state('collapsed', style({ transform: 'rotate(0deg)' })),\n state('expanded', style({ transform: 'rotate(90deg)' })),\n transition('expanded <=> collapsed', animate(EXPANSION_PANEL_ANIMATION_TIMING)),\n ]),\n\n /** Animation that expands and collapses the panel header height. */\n expansionHeaderHeight: trigger('expansionHeight', [\n state(\n 'collapsed',\n style({\n height: '{{collapsedHeight}}',\n }),\n {\n params: { collapsedHeight: '48px' },\n },\n ),\n state(\n 'expanded',\n style({\n height: '{{expandedHeight}}',\n }),\n {\n params: { expandedHeight: '56px' },\n },\n ),\n transition(\n 'expanded <=> collapsed',\n group([query('@indicatorRotate', animateChild(), { optional: true }), animate(EXPANSION_PANEL_ANIMATION_TIMING)]),\n ),\n ]),\n\n /** Animation that expands and collapses the panel content. */\n bodyExpansion: trigger('bodyExpansion', [\n state('collapsed', style({ height: '0px', visibility: 'hidden' })),\n state('expanded', style({ height: '*', visibility: 'visible' })),\n transition('expanded <=> collapsed', animate(EXPANSION_PANEL_ANIMATION_TIMING)),\n ]),\n};\n","import { Directive, TemplateRef } from '@angular/core';\n\n/**\n * Expansion panel content that will be rendered lazily\n * after the panel is opened for the first time.\n */\n@Directive({\n selector: 'ng-template[matExpansionPanelContent]',\n standalone: false,\n})\nexport class NovoExpansionPanelContent {\n constructor(public _template: TemplateRef<any>) {}\n}\n","import { AnimationEvent } from '@angular/animations';\nimport { CdkAccordionItem } from '@angular/cdk/accordion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n EventEmitter,\n Host,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { filter, startWith, take } from 'rxjs/operators';\nimport { NovoAccordion } from './accordion';\nimport { novoExpansionAnimations } from './expansion-animations';\nimport { NovoExpansionPanelContent } from './expansion-panel-content';\n\n/** NovoExpansionPanel's states. */\nexport type NovoExpansionPanelState = 'expanded' | 'collapsed';\n\n/** Counter for generating unique element ids. */\nlet uniqueId = 0;\n\n/**\n * `<novo-expansion-panel>`\n *\n * This component can be used as a single element to show expandable content, or as one of\n * multiple children of an element with the NovoAccordion directive attached.\n */\n@Component({\n styleUrls: ['./expansion-panel.scss'],\n selector: 'novo-expansion-panel',\n exportAs: 'novoExpansionPanel',\n templateUrl: './expansion-panel.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [novoExpansionAnimations.bodyExpansion],\n host: {\n class: 'novo-expansion-panel',\n '[class.novo-expanded]': 'expanded',\n '[class.novo-expansion-panel-spacing]': '_hasSpacing()',\n '[class.novo-expansion-panel-padding]': 'padding',\n },\n standalone: false,\n})\nexport class NovoExpansionPanel extends CdkAccordionItem implements AfterContentInit, OnChanges, OnDestroy {\n /** Whether the toggle indicator should be hidden. */\n @Input()\n get hideToggle(): boolean {\n return this._hideToggle;\n }\n set hideToggle(value: boolean) {\n this._hideToggle = coerceBooleanProperty(value);\n }\n private _hideToggle = false;\n\n @Input()\n get padding(): boolean {\n return this._padding;\n }\n set padding(value: boolean) {\n this._padding = coerceBooleanProperty(value);\n }\n private _padding = true;\n\n @Output()\n opened: EventEmitter<void> = new EventEmitter();\n @Output()\n closed: EventEmitter<void> = new EventEmitter();\n @Output()\n expandedChange: EventEmitter<boolean> = new EventEmitter();\n\n /** Stream that emits for changes in `@Input` properties. */\n readonly _inputChanges = new Subject<SimpleChanges>();\n\n /** Optionally defined accordion the expansion panel belongs to. */\n accordion: NovoAccordion;\n\n /** Content that will be rendered lazily. */\n @ContentChild(NovoExpansionPanelContent)\n _lazyContent: NovoExpansionPanelContent;\n\n /** Portal holding the user's content. */\n _portal: TemplatePortal;\n\n /** ID for the associated header element. Used for a11y labelling. */\n _headerId = `novo-expansion-panel-header-${uniqueId++}`;\n\n constructor(\n @Optional()\n @Host()\n accordion: NovoAccordion,\n _changeDetectorRef: ChangeDetectorRef,\n _uniqueSelectionDispatcher: UniqueSelectionDispatcher,\n private _viewContainerRef: ViewContainerRef,\n ) {\n super(accordion, _changeDetectorRef, _uniqueSelectionDispatcher);\n this.accordion = accordion;\n }\n\n /** Whether the expansion indicator should be hidden. */\n _getHideToggle(): boolean {\n if (this.accordion) {\n return this.accordion.hideToggle;\n }\n return this.hideToggle;\n }\n\n /** Determines whether the expansion panel should have spacing between it and its siblings. */\n _hasSpacing(): boolean {\n if (this.accordion) {\n return (this.expanded ? this.accordion.displayMode : this._getExpandedState()) === 'default';\n }\n return false;\n }\n\n /** Gets the expanded state string. */\n _getExpandedState(): NovoExpansionPanelState {\n return this.expanded ? 'expanded' : 'collapsed';\n }\n\n ngAfterContentInit() {\n if (this._lazyContent) {\n // Render the content as soon as the panel becomes open.\n this.opened\n .pipe(\n startWith(null),\n filter(() => this.expanded && !this._portal),\n take(1),\n )\n .subscribe(() => {\n this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef);\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this._inputChanges.next(changes);\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this._inputChanges.complete();\n }\n\n _bodyAnimation(event: AnimationEvent) {\n const classList = event.element.classList;\n const cssClass = 'novo-expanded';\n const { phaseName, toState } = event;\n\n // Toggle the body's `overflow: hidden` class when closing starts or when expansion ends in\n // order to prevent the cases where switching too early would cause the animation to jump.\n // Note that we do it directly on the DOM element to avoid the slight delay that comes\n // with doing it via change detection.\n if (phaseName === 'done' && toState === 'expanded') {\n classList.add(cssClass);\n } else if (phaseName === 'start' && toState === 'collapsed') {\n classList.remove(cssClass);\n }\n }\n}\n\n@Directive({\n selector: 'novo-action-row',\n host: {\n class: 'novo-action-row',\n },\n standalone: false,\n})\nexport class NovoExpansionPanelActionRow {}\n","<ng-content select=\"novo-expansion-panel-header\"></ng-content>\n<div class=\"novo-expansion-panel-content\"\n role=\"region\"\n [@bodyExpansion]=\"_getExpandedState()\"\n (@bodyExpansion.done)=\"_bodyAnimation($event)\"\n (@bodyExpansion.start)=\"_bodyAnimation($event)\"\n [attr.aria-labelledby]=\"_headerId\"\n [id]=\"id\"\n #body>\n <div class=\"novo-expansion-panel-body\">\n <ng-content></ng-content>\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n </div>\n <ng-content select=\"novo-action-row\"></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Host,\n Input,\n OnDestroy,\n ViewEncapsulation,\n} from '@angular/core';\nimport { merge, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { Key } from 'novo-elements/utils';\nimport { novoExpansionAnimations } from './expansion-animations';\nimport { NovoExpansionPanel } from './expansion-panel';\n\n/**\n * `<novo-expansion-panel-header>`\n *\n * This component corresponds to the header element of an `<novo-expansion-panel>`.\n */\n@Component({\n selector: 'novo-expansion-panel-header',\n styleUrls: ['./expansion-panel-header.scss'],\n templateUrl: './expansion-panel-header.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [novoExpansionAnimations.indicatorRotate, novoExpansionAnimations.expansionHeaderHeight],\n host: {\n class: 'novo-expansion-panel-header',\n role: 'button',\n '[attr.id]': 'panel._headerId',\n '[attr.tabindex]': 'panel.disabled ? -1 : 0',\n '[attr.aria-controls]': '_getPanelId()',\n '[attr.aria-expanded]': '_isExpanded()',\n '[attr.aria-disabled]': 'panel.disabled',\n '[class.novo-expanded]': '_isExpanded()',\n '(click)': '_toggle()',\n '(keydown)': '_keydown($event)',\n '[@expansionHeight]': `{\n value: _getExpandedState(),\n params: {\n collapsedHeight: collapsedHeight,\n expandedHeight: expandedHeight\n }\n }`,\n },\n standalone: false,\n})\nexport class NovoExpansionPanelHeader implements OnDestroy {\n private _parentChangeSubscription = Subscription.EMPTY;\n\n constructor(\n @Host() public panel: NovoExpansionPanel,\n private _element: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n ) {\n // Since the toggle state depends on an @Input on the panel, we\n // need to subscribe and trigger change detection manually.\n this._parentChangeSubscription = merge(\n panel.opened,\n panel.closed,\n panel._inputChanges.pipe(filter((changes) => !!(changes.hideToggle || changes.disabled))),\n ).subscribe(() => this._changeDetectorRef.markForCheck());\n }\n\n /** Height of the header while the panel is expanded. */\n @Input()\n expandedHeight: string = '56px';\n\n /** Height of the header while the panel is collapsed. */\n @Input()\n collapsedHeight: string = '48px';\n\n /** Toggles the expanded state of the panel. */\n _toggle(): void {\n this.panel.toggle();\n }\n\n /** Gets whether the panel is expanded. */\n _isExpanded(): boolean {\n return this.panel.expanded;\n }\n\n /** Gets the expanded state string of the panel. */\n _getExpandedState(): string {\n return this.panel._getExpandedState();\n }\n\n /** Gets the panel id. */\n _getPanelId(): string {\n return this.panel.id;\n }\n\n /** Gets whether the expand indicator should be shown. */\n _showToggle(): boolean {\n return !this.panel.hideToggle && !this.panel.disabled;\n }\n\n /** Handle keydown event calling to toggle() if appropriate. */\n _keydown(event: KeyboardEvent) {\n switch (event.key) {\n // Toggle for space and enter keys.\n case Key.Space:\n case Key.Enter:\n event.preventDefault();\n this._toggle();\n break;\n default:\n return;\n }\n }\n\n ngOnDestroy() {\n this._parentChangeSubscription.unsubscribe();\n }\n}\n\n/**\n * `<novo-panel-description>`\n *\n * This direction is to be used inside of the NovoExpansionPanelHeader component.\n */\n@Directive({\n selector: 'novo-panel-description',\n host: {\n class: 'novo-expansion-panel-header-description',\n },\n standalone: false,\n})\nexport class NovoExpansionPanelDescription {}\n\n/**\n * `<novo-panel-title>`\n *\n * This direction is to be used inside of the NovoExpansionPanelHeader component.\n */\n@Directive({\n selector: 'novo-panel-title',\n host: {\n class: 'novo-expansion-panel-header-title',\n },\n standalone: false,\n})\nexport class NovoExpansionPanelTitle {}\n","<span [@indicatorRotate]=\"_getExpandedState()\" *ngIf=\"_showToggle()\"\n class=\"novo-expansion-indicator\" size=\"lg\"></span>\n<span class=\"novo-content\">\n <ng-content select=\"novo-panel-title\"></ng-content>\n <ng-content select=\"novo-panel-description\"></ng-content>\n <ng-content></ng-content>\n</span>\n","import { CdkAccordionModule } from '@angular/cdk/accordion';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NovoAccordion } from './accordion';\nimport { NovoExpansionPanel, NovoExpansionPanelActionRow } from './expansion-panel';\nimport { NovoExpansionPanelContent } from './expansion-panel-content';\nimport { NovoExpansionPanelDescription, NovoExpansionPanelHeader, NovoExpansionPanelTitle } from './expansion-panel-header';\n\n@NgModule({\n imports: [CommonModule, CdkAccordionModule, PortalModule],\n exports: [\n NovoAccordion,\n NovoExpansionPanel,\n NovoExpansionPanelActionRow,\n NovoExpansionPanelHeader,\n NovoExpansionPanelTitle,\n NovoExpansionPanelDescription,\n NovoExpansionPanelContent,\n ],\n declarations: [\n NovoAccordion,\n NovoExpansionPanel,\n NovoExpansionPanelActionRow,\n NovoExpansionPanelHeader,\n NovoExpansionPanelTitle,\n NovoExpansionPanelDescription,\n NovoExpansionPanelContent,\n ],\n})\nexport class NovoExpansionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NovoAccordion","i1.NovoExpansionPanel","i2"],"mappings":"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"}