@festo-ui/angular 8.2.0-dev.617 → 8.2.0-dev.620
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/bundle.css +1 -1
- package/css/popover.css +1 -1
- package/fesm2022/festo-ui-angular.mjs +514 -260
- package/fesm2022/festo-ui-angular.mjs.map +1 -1
- package/lib/components/components.module.d.ts +3 -1
- package/lib/components/overlay/overlay-content/overlay-content.component.d.ts +5 -0
- package/lib/components/overlay/overlay-outlet.directive.d.ts +64 -0
- package/lib/components/popovers/popover.defaults.d.ts +0 -18
- package/lib/components/popovers/popover.models.d.ts +2 -1
- package/lib/components/popovers/tooltip/tooltip.directive.d.ts +7 -0
- package/lib/forms/value-accessor-base.d.ts +1 -1
- package/package.json +9 -11
- package/public-api.d.ts +2 -0
- package/scss/base/icons-svg.scss +1 -1
- package/scss/base/image-gallery.scss +2 -2
- package/scss/base/popover.scss +2 -2
- package/scss/base/styles.scss +4 -4
- package/esm2022/festo-ui-angular.mjs +0 -5
- package/esm2022/lib/components/accordion/accordion-header/accordion-header.component.mjs +0 -11
- package/esm2022/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.mjs +0 -15
- package/esm2022/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.mjs +0 -28
- package/esm2022/lib/components/accordion/accordion-item/accordion-item.component.mjs +0 -148
- package/esm2022/lib/components/accordion/accordion.component.mjs +0 -59
- package/esm2022/lib/components/accordion/index.mjs +0 -6
- package/esm2022/lib/components/bottom-sheet/bottom-sheet.component.mjs +0 -97
- package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +0 -26
- package/esm2022/lib/components/buttons/button/button.component.mjs +0 -48
- package/esm2022/lib/components/buttons/link-button/link-button.component.mjs +0 -34
- package/esm2022/lib/components/chips/chip/chip.component.mjs +0 -38
- package/esm2022/lib/components/chips/chip-container/chip-container.component.mjs +0 -17
- package/esm2022/lib/components/components.module.mjs +0 -212
- package/esm2022/lib/components/loading-indicator/loading-indicator.component.mjs +0 -17
- package/esm2022/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.mjs +0 -39
- package/esm2022/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.mjs +0 -65
- package/esm2022/lib/components/mobile-flyout/mobile-flyout.component.mjs +0 -69
- package/esm2022/lib/components/pagination/pagination.component.mjs +0 -57
- package/esm2022/lib/components/popovers/legend/legend.component.mjs +0 -42
- package/esm2022/lib/components/popovers/legend/legend.directive.mjs +0 -31
- package/esm2022/lib/components/popovers/popover/popover.component.mjs +0 -31
- package/esm2022/lib/components/popovers/popover-content/popover-content.component.mjs +0 -80
- package/esm2022/lib/components/popovers/popover-content/popover-content.directive.mjs +0 -39
- package/esm2022/lib/components/popovers/popover-menu/popover-menu.component.mjs +0 -67
- package/esm2022/lib/components/popovers/popover-ref.mjs +0 -25
- package/esm2022/lib/components/popovers/popover.defaults.mjs +0 -59
- package/esm2022/lib/components/popovers/popover.models.mjs +0 -7
- package/esm2022/lib/components/popovers/popover.service.mjs +0 -140
- package/esm2022/lib/components/popovers/tooltip/tooltip.directive.mjs +0 -101
- package/esm2022/lib/components/progress/progress.component.mjs +0 -22
- package/esm2022/lib/components/scroll/index.mjs +0 -2
- package/esm2022/lib/components/scroll/scrollable.directive.mjs +0 -75
- package/esm2022/lib/components/search-input/search-input.component.mjs +0 -182
- package/esm2022/lib/components/sidebar-overlay/sidebar-overlay.component.mjs +0 -59
- package/esm2022/lib/components/snackbar/snackbar-container.component.mjs +0 -21
- package/esm2022/lib/components/snackbar/snackbar-container.directive.mjs +0 -80
- package/esm2022/lib/components/snackbar/snackbar.component.mjs +0 -81
- package/esm2022/lib/components/snackbar/snackbar.models.mjs +0 -2
- package/esm2022/lib/components/snackbar/snackbar.module.mjs +0 -24
- package/esm2022/lib/components/snackbar/snackbar.service.mjs +0 -23
- package/esm2022/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.mjs +0 -19
- package/esm2022/lib/components/stepper-horizontal/stepper-horizontal.component.mjs +0 -52
- package/esm2022/lib/components/stepper-vertical/step-vertical/step-vertical.component.mjs +0 -57
- package/esm2022/lib/components/stepper-vertical/stepper-vertical.component.mjs +0 -54
- package/esm2022/lib/components/table-header-cell/table-header-cell.directive.mjs +0 -60
- package/esm2022/lib/components/tabs/tab-pane/tab-pane.component.mjs +0 -34
- package/esm2022/lib/components/tabs/tabs.component.mjs +0 -459
- package/esm2022/lib/directives/click-outside.directive.mjs +0 -29
- package/esm2022/lib/festo-angular.module.mjs +0 -21
- package/esm2022/lib/forms/checkbox/checkbox.component.mjs +0 -154
- package/esm2022/lib/forms/color-indicator/color-indicator.component.mjs +0 -88
- package/esm2022/lib/forms/color-picker/color-helper.mjs +0 -129
- package/esm2022/lib/forms/color-picker/color-picker.component.mjs +0 -292
- package/esm2022/lib/forms/date-picker/date-picker.component.mjs +0 -205
- package/esm2022/lib/forms/date-range-picker/date-range-picker.component.mjs +0 -231
- package/esm2022/lib/forms/flatpickr/flatpickr.component.mjs +0 -55
- package/esm2022/lib/forms/forms.module.mjs +0 -132
- package/esm2022/lib/forms/radio/radio.component.mjs +0 -349
- package/esm2022/lib/forms/segment/segment-control/segment-control.component.mjs +0 -65
- package/esm2022/lib/forms/segment/segment.component.mjs +0 -139
- package/esm2022/lib/forms/select/chip-text.pipe.mjs +0 -39
- package/esm2022/lib/forms/select/select-option/select-option.component.mjs +0 -23
- package/esm2022/lib/forms/select/select.component.mjs +0 -273
- package/esm2022/lib/forms/slider/slider.component.mjs +0 -117
- package/esm2022/lib/forms/switch/switch.component.mjs +0 -121
- package/esm2022/lib/forms/text-area/text-area.component.mjs +0 -187
- package/esm2022/lib/forms/text-editor/text-editor.component.mjs +0 -307
- package/esm2022/lib/forms/text-input/text-input.component.mjs +0 -208
- package/esm2022/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.mjs +0 -107
- package/esm2022/lib/forms/time-picker/time-picker.component.mjs +0 -204
- package/esm2022/lib/forms/unique-selection-dispatcher.mjs +0 -41
- package/esm2022/lib/forms/value-accessor-base.mjs +0 -41
- package/esm2022/lib/modals/alert/alert.component.mjs +0 -55
- package/esm2022/lib/modals/confirm/confirm.component.mjs +0 -56
- package/esm2022/lib/modals/custom-modal/custom-modal.component.mjs +0 -88
- package/esm2022/lib/modals/image-gallery/image-gallery.component.mjs +0 -80
- package/esm2022/lib/modals/index.mjs +0 -2
- package/esm2022/lib/modals/modal.service.mjs +0 -118
- package/esm2022/lib/modals/modals.module.mjs +0 -27
- package/esm2022/lib/modals/prompt/prompt.component.mjs +0 -114
- package/esm2022/lib/pipes/safe-html.pipe.mjs +0 -21
- package/esm2022/public-api.mjs +0 -66
|
@@ -35,8 +35,10 @@ import * as i33 from "./popovers/tooltip/tooltip.directive";
|
|
|
35
35
|
import * as i34 from "./popovers/legend/legend.component";
|
|
36
36
|
import * as i35 from "./sidebar-overlay/sidebar-overlay.component";
|
|
37
37
|
import * as i36 from "./bottom-sheet/bottom-sheet.component";
|
|
38
|
+
import * as i37 from "./overlay/overlay-outlet.directive";
|
|
39
|
+
import * as i38 from "./overlay/overlay-content/overlay-content.component";
|
|
38
40
|
export declare class FestoAngularComponentsModule {
|
|
39
41
|
static ɵfac: i0.ɵɵFactoryDeclaration<FestoAngularComponentsModule, never>;
|
|
40
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<FestoAngularComponentsModule, never, [typeof i1.FngClickOutsideDirective, typeof i2.FngPaginationComponent, typeof i3.FngMobileFlyoutPageComponent, typeof i4.FngMobileFlyoutItemComponent, typeof i5.FngMobileFlyoutComponent, typeof i6.FngLoadingIndicatorComponent, typeof i7.FngChipComponent, typeof i8.FngChipContainerComponent, typeof i9.FngTabsComponent, typeof i10.FngTabPaneComponent, typeof i11.FngBreadcrumbComponent, typeof i12.FngAccordionComponent, typeof i13.FngAccordionHeaderComponent, typeof i14.FngAccordionItemComponent, typeof i15.FngAccordionItemBodyComponent, typeof i16.FngAccordionItemHeaderComponent, typeof i17.FngButtonComponent, typeof i18.FngLinkButtonComponent, typeof i19.FngSearchInputComponent, typeof i20.FngSnackbarContainerComponent, typeof i21.FngStepHorizontalComponent, typeof i22.FngStepperHorizontalComponent, typeof i23.FngStepperVerticalComponent, typeof i24.FngStepVerticalComponent, typeof i25.FngTableHeaderCellDirective, typeof i26.FngScrollableDirective, typeof i27.FngProgressComponent, typeof i28.FngLegendDirective, typeof i29.FngPopoverComponent, typeof i30.FngPopoverContentDirective, typeof i31.FngPopoverContentComponent, typeof i32.FngPopoverMenuComponent, typeof i33.FngTooltipDirective, typeof i28.FngLegendDirective, typeof i34.FngLegendComponent, typeof i35.FngSidebarOverlayComponent, typeof i36.FngBottomSheetComponent], [typeof i1.FngClickOutsideDirective, typeof i11.FngBreadcrumbComponent, typeof i12.FngAccordionComponent, typeof i13.FngAccordionHeaderComponent, typeof i14.FngAccordionItemComponent, typeof i15.FngAccordionItemBodyComponent, typeof i16.FngAccordionItemHeaderComponent, typeof i17.FngButtonComponent, typeof i18.FngLinkButtonComponent, typeof i8.FngChipContainerComponent, typeof i7.FngChipComponent, typeof i6.FngLoadingIndicatorComponent, typeof i5.FngMobileFlyoutComponent, typeof i4.FngMobileFlyoutItemComponent, typeof i3.FngMobileFlyoutPageComponent, typeof i2.FngPaginationComponent, typeof i19.FngSearchInputComponent, typeof i20.FngSnackbarContainerComponent, typeof i21.FngStepHorizontalComponent, typeof i22.FngStepperHorizontalComponent, typeof i23.FngStepperVerticalComponent, typeof i24.FngStepVerticalComponent, typeof i25.FngTableHeaderCellDirective, typeof i26.FngScrollableDirective, typeof i27.FngProgressComponent, typeof i9.FngTabsComponent, typeof i10.FngTabPaneComponent, typeof i28.FngLegendDirective, typeof i29.FngPopoverComponent, typeof i30.FngPopoverContentDirective, typeof i31.FngPopoverContentComponent, typeof i32.FngPopoverMenuComponent, typeof i33.FngTooltipDirective, typeof i28.FngLegendDirective, typeof i34.FngLegendComponent, typeof i35.FngSidebarOverlayComponent, typeof i36.FngBottomSheetComponent]>;
|
|
42
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<FestoAngularComponentsModule, never, [typeof i1.FngClickOutsideDirective, typeof i2.FngPaginationComponent, typeof i3.FngMobileFlyoutPageComponent, typeof i4.FngMobileFlyoutItemComponent, typeof i5.FngMobileFlyoutComponent, typeof i6.FngLoadingIndicatorComponent, typeof i7.FngChipComponent, typeof i8.FngChipContainerComponent, typeof i9.FngTabsComponent, typeof i10.FngTabPaneComponent, typeof i11.FngBreadcrumbComponent, typeof i12.FngAccordionComponent, typeof i13.FngAccordionHeaderComponent, typeof i14.FngAccordionItemComponent, typeof i15.FngAccordionItemBodyComponent, typeof i16.FngAccordionItemHeaderComponent, typeof i17.FngButtonComponent, typeof i18.FngLinkButtonComponent, typeof i19.FngSearchInputComponent, typeof i20.FngSnackbarContainerComponent, typeof i21.FngStepHorizontalComponent, typeof i22.FngStepperHorizontalComponent, typeof i23.FngStepperVerticalComponent, typeof i24.FngStepVerticalComponent, typeof i25.FngTableHeaderCellDirective, typeof i26.FngScrollableDirective, typeof i27.FngProgressComponent, typeof i28.FngLegendDirective, typeof i29.FngPopoverComponent, typeof i30.FngPopoverContentDirective, typeof i31.FngPopoverContentComponent, typeof i32.FngPopoverMenuComponent, typeof i33.FngTooltipDirective, typeof i28.FngLegendDirective, typeof i34.FngLegendComponent, typeof i35.FngSidebarOverlayComponent, typeof i36.FngBottomSheetComponent, typeof i37.FngOverlayOutletDirective, typeof i38.FngOverlayContentComponent], [typeof i1.FngClickOutsideDirective, typeof i11.FngBreadcrumbComponent, typeof i12.FngAccordionComponent, typeof i13.FngAccordionHeaderComponent, typeof i14.FngAccordionItemComponent, typeof i15.FngAccordionItemBodyComponent, typeof i16.FngAccordionItemHeaderComponent, typeof i17.FngButtonComponent, typeof i18.FngLinkButtonComponent, typeof i8.FngChipContainerComponent, typeof i7.FngChipComponent, typeof i6.FngLoadingIndicatorComponent, typeof i5.FngMobileFlyoutComponent, typeof i4.FngMobileFlyoutItemComponent, typeof i3.FngMobileFlyoutPageComponent, typeof i2.FngPaginationComponent, typeof i19.FngSearchInputComponent, typeof i20.FngSnackbarContainerComponent, typeof i21.FngStepHorizontalComponent, typeof i22.FngStepperHorizontalComponent, typeof i23.FngStepperVerticalComponent, typeof i24.FngStepVerticalComponent, typeof i25.FngTableHeaderCellDirective, typeof i26.FngScrollableDirective, typeof i27.FngProgressComponent, typeof i9.FngTabsComponent, typeof i10.FngTabPaneComponent, typeof i28.FngLegendDirective, typeof i29.FngPopoverComponent, typeof i30.FngPopoverContentDirective, typeof i31.FngPopoverContentComponent, typeof i32.FngPopoverMenuComponent, typeof i33.FngTooltipDirective, typeof i28.FngLegendDirective, typeof i34.FngLegendComponent, typeof i35.FngSidebarOverlayComponent, typeof i36.FngBottomSheetComponent, typeof i37.FngOverlayOutletDirective, typeof i38.FngOverlayContentComponent]>;
|
|
41
43
|
static ɵinj: i0.ɵɵInjectorDeclaration<FestoAngularComponentsModule>;
|
|
42
44
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class FngOverlayContentComponent {
|
|
3
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FngOverlayContentComponent, never>;
|
|
4
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FngOverlayContentComponent, "fng-overlay-content", never, {}, {}, never, ["*"], true, never>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { ElementRef, OnDestroy, TemplateRef, Type, EventEmitter } from '@angular/core';
|
|
2
|
+
import { ConnectedPosition } from '@angular/cdk/overlay';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export type ConnectedPositionName = 'topStart' | 'topCenter' | 'topEnd' | 'bottomStart' | 'bottomCenter' | 'bottomEnd' | 'startTop' | 'startCenter' | 'startBottom' | 'endTop' | 'endCenter' | 'endBottom';
|
|
5
|
+
export declare const POSITION_MAP: Record<ConnectedPositionName, ConnectedPosition>;
|
|
6
|
+
export declare const ALL_POSITIONS: ConnectedPosition[];
|
|
7
|
+
export declare class FngOverlayOutletDirective implements OnDestroy {
|
|
8
|
+
private readonly host;
|
|
9
|
+
private readonly overlay;
|
|
10
|
+
private readonly vcr;
|
|
11
|
+
private readonly injector;
|
|
12
|
+
private overlayRef?;
|
|
13
|
+
private portalInstance?;
|
|
14
|
+
private positionSubscription?;
|
|
15
|
+
/**
|
|
16
|
+
* content for the overlay. supply either a templateref (preferred for arbitrary html)
|
|
17
|
+
* or a component type (will be created via componentportal).
|
|
18
|
+
*
|
|
19
|
+
* example (templateref): [fngOverlayOutlet]="tplref"
|
|
20
|
+
* example (component): [fngOverlayOutlet]="youroverlaycomponent"
|
|
21
|
+
*/
|
|
22
|
+
content: TemplateRef<any> | Type<any>;
|
|
23
|
+
/** optional context when using templateref content. */
|
|
24
|
+
fngOverlayContext: Record<string, any> | null;
|
|
25
|
+
/** css class(es) to apply to the overlay panel. */
|
|
26
|
+
fngOverlayPanelClass: string | string[] | undefined;
|
|
27
|
+
/** whether the overlay should have a backdrop. defaults to true. */
|
|
28
|
+
fngOverlayHasBackdrop: boolean;
|
|
29
|
+
/** backdrop class; defaults to a transparent clickable backdrop. */
|
|
30
|
+
fngOverlayBackdropClass: string;
|
|
31
|
+
/** close the overlay when the backdrop is clicked (if there is one). */
|
|
32
|
+
fngOverlayCloseOnBackdropClick: boolean;
|
|
33
|
+
/** close the overlay when pressing escape. */
|
|
34
|
+
fngOverlayCloseOnEscape: boolean;
|
|
35
|
+
/** optional x/y offsets applied to every position. */
|
|
36
|
+
fngOverlayOffsetX: number;
|
|
37
|
+
fngOverlayOffsetY: number;
|
|
38
|
+
/**
|
|
39
|
+
* choose positions by name, or omit to use all_positions fallback order.
|
|
40
|
+
* example: [fngOverlayPositions]="['topEnd','topStart']"
|
|
41
|
+
*/
|
|
42
|
+
fngOverlayPositions?: ConnectedPositionName[];
|
|
43
|
+
/**
|
|
44
|
+
* if you want a different origin element than the host (rare), pass an htmlelement here.
|
|
45
|
+
*/
|
|
46
|
+
fngOverlayOrigin?: HTMLElement | ElementRef<HTMLElement> | null;
|
|
47
|
+
/** emits when the overlay is closed */
|
|
48
|
+
fngOverlayClosed: EventEmitter<void>;
|
|
49
|
+
_onHostClick(evt: MouseEvent): void;
|
|
50
|
+
readonly cssClass = true;
|
|
51
|
+
constructor(host: ElementRef<HTMLElement>);
|
|
52
|
+
ngOnDestroy(): void;
|
|
53
|
+
open(): void;
|
|
54
|
+
close(): void;
|
|
55
|
+
toggle(): void;
|
|
56
|
+
private getPositionClass;
|
|
57
|
+
private createOverlay;
|
|
58
|
+
private createPortalFromContent;
|
|
59
|
+
private bindOverlayLifecycle;
|
|
60
|
+
private resolveOriginElement;
|
|
61
|
+
private resolvePositions;
|
|
62
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FngOverlayOutletDirective, never>;
|
|
63
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<FngOverlayOutletDirective, "[fngOverlayOutlet]", never, { "content": { "alias": "fngOverlayOutlet"; "required": false; }; "fngOverlayContext": { "alias": "fngOverlayContext"; "required": false; }; "fngOverlayPanelClass": { "alias": "fngOverlayPanelClass"; "required": false; }; "fngOverlayHasBackdrop": { "alias": "fngOverlayHasBackdrop"; "required": false; }; "fngOverlayBackdropClass": { "alias": "fngOverlayBackdropClass"; "required": false; }; "fngOverlayCloseOnBackdropClick": { "alias": "fngOverlayCloseOnBackdropClick"; "required": false; }; "fngOverlayCloseOnEscape": { "alias": "fngOverlayCloseOnEscape"; "required": false; }; "fngOverlayOffsetX": { "alias": "fngOverlayOffsetX"; "required": false; }; "fngOverlayOffsetY": { "alias": "fngOverlayOffsetY"; "required": false; }; "fngOverlayPositions": { "alias": "fngOverlayPositions"; "required": false; }; "fngOverlayOrigin": { "alias": "fngOverlayOrigin"; "required": false; }; }, { "fngOverlayClosed": "fngOverlayClosed"; }, never, never, true, never>;
|
|
64
|
+
}
|
|
@@ -27,22 +27,6 @@ export declare const defaultPositions: {
|
|
|
27
27
|
overlayY: string;
|
|
28
28
|
offsetX: number;
|
|
29
29
|
};
|
|
30
|
-
leftTop: {
|
|
31
|
-
originX: string;
|
|
32
|
-
originY: string;
|
|
33
|
-
overlayX: string;
|
|
34
|
-
overlayY: string;
|
|
35
|
-
offsetX: number;
|
|
36
|
-
offsetY: number;
|
|
37
|
-
};
|
|
38
|
-
rightTop: {
|
|
39
|
-
originX: string;
|
|
40
|
-
originY: string;
|
|
41
|
-
overlayX: string;
|
|
42
|
-
overlayY: string;
|
|
43
|
-
offsetX: number;
|
|
44
|
-
offsetY: number;
|
|
45
|
-
};
|
|
46
30
|
};
|
|
47
31
|
export declare const defaultClasses: {
|
|
48
32
|
tooltip: string;
|
|
@@ -53,6 +37,4 @@ export declare const defaultClasses: {
|
|
|
53
37
|
top: string;
|
|
54
38
|
right: string;
|
|
55
39
|
left: string;
|
|
56
|
-
rightTop: string;
|
|
57
|
-
leftTop: string;
|
|
58
40
|
};
|
|
@@ -6,7 +6,7 @@ export interface FngPopoverParams<T> {
|
|
|
6
6
|
data: T;
|
|
7
7
|
}
|
|
8
8
|
export type FngPopoverTypes = 'tooltip' | 'menu' | 'legend' | 'content';
|
|
9
|
-
export type FngPopoverPosition = 'top' | 'bottom' | 'right' | '
|
|
9
|
+
export type FngPopoverPosition = 'top' | 'bottom' | 'right' | 'left';
|
|
10
10
|
export interface FngPopoverOptions {
|
|
11
11
|
type: FngPopoverTypes;
|
|
12
12
|
width?: string | number;
|
|
@@ -17,6 +17,7 @@ export interface FngPopoverOptions {
|
|
|
17
17
|
minHeight?: string | number;
|
|
18
18
|
hasBackdrop?: boolean;
|
|
19
19
|
backdropClass?: string;
|
|
20
|
+
panelClass?: string;
|
|
20
21
|
positions?: FngPopoverPosition[] | undefined;
|
|
21
22
|
scrollStrategy?: FngScrollStrategy;
|
|
22
23
|
}
|
|
@@ -3,8 +3,15 @@ import { FngPopoverPosition } from './../popover.models';
|
|
|
3
3
|
import { FngPopoverService } from '../popover.service';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export interface FngTooltipOptions {
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated
|
|
8
|
+
* Direct number input of maximum width of the tooltip is not supported anymore.
|
|
9
|
+
* Use the `customClass` option instead and style the tooltip with CSS.
|
|
10
|
+
* This option is kept for backward compatibility.
|
|
11
|
+
*/
|
|
6
12
|
maxWidth?: string | number;
|
|
7
13
|
delay?: number;
|
|
14
|
+
customClass?: string;
|
|
8
15
|
}
|
|
9
16
|
export declare class FngTooltipDirective implements OnChanges, OnDestroy {
|
|
10
17
|
private elmenetRef;
|
|
@@ -13,5 +13,5 @@ export declare class FngValueAccessorBaseDirective<T> implements ControlValueAcc
|
|
|
13
13
|
registerOnTouched(fn: () => void): void;
|
|
14
14
|
setDisabledState?(isDisabled: boolean): void;
|
|
15
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<FngValueAccessorBaseDirective<any>, never>;
|
|
16
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<FngValueAccessorBaseDirective<any>, never, never, { "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never,
|
|
16
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<FngValueAccessorBaseDirective<any>, never, never, { "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, true, never>;
|
|
17
17
|
}
|
package/package.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@festo-ui/angular",
|
|
3
|
-
"version": "8.2.0-dev.
|
|
3
|
+
"version": "8.2.0-dev.620",
|
|
4
4
|
"author": "Festo UI (styleguide@festo.com)",
|
|
5
5
|
"copyright": "Copyright (c) 2025 Festo SE & Co. KG. All rights reserved.",
|
|
6
6
|
"license": "apache-2.0",
|
|
7
7
|
"description": "CSS framework and utils to build FESTO web applications",
|
|
8
8
|
"peerDependencies": {
|
|
9
|
-
"@angular/common": "^
|
|
10
|
-
"@angular/core": "^
|
|
11
|
-
"@angular/animations": "^
|
|
12
|
-
"@angular/router": "^
|
|
13
|
-
"@angular/forms": "^
|
|
14
|
-
"@angular/platform-browser": "^
|
|
15
|
-
"@angular/platform-browser-dynamic": "^
|
|
16
|
-
"@angular/cdk": "^
|
|
9
|
+
"@angular/common": "^19.2.14",
|
|
10
|
+
"@angular/core": "^19.2.14",
|
|
11
|
+
"@angular/animations": "^19.2.14",
|
|
12
|
+
"@angular/router": "^19.2.14",
|
|
13
|
+
"@angular/forms": "^19.2.14",
|
|
14
|
+
"@angular/platform-browser": "^19.2.14",
|
|
15
|
+
"@angular/platform-browser-dynamic": "^19.2.14",
|
|
16
|
+
"@angular/cdk": "^19.2.14",
|
|
17
17
|
"rxjs": "~7.8.0",
|
|
18
18
|
"@festo-ui/web-essentials": "*"
|
|
19
19
|
},
|
|
@@ -35,8 +35,6 @@
|
|
|
35
35
|
},
|
|
36
36
|
".": {
|
|
37
37
|
"types": "./index.d.ts",
|
|
38
|
-
"esm2022": "./esm2022/festo-ui-angular.mjs",
|
|
39
|
-
"esm": "./esm2022/festo-ui-angular.mjs",
|
|
40
38
|
"default": "./fesm2022/festo-ui-angular.mjs"
|
|
41
39
|
}
|
|
42
40
|
},
|
package/public-api.d.ts
CHANGED
|
@@ -33,6 +33,8 @@ export * from './lib/components/stepper-vertical/stepper-vertical.component';
|
|
|
33
33
|
export * from './lib/components/table-header-cell/table-header-cell.directive';
|
|
34
34
|
export * from './lib/components/tabs/tab-pane/tab-pane.component';
|
|
35
35
|
export * from './lib/components/tabs/tabs.component';
|
|
36
|
+
export * from './lib/components/overlay/overlay-outlet.directive';
|
|
37
|
+
export * from './lib/components/overlay/overlay-content/overlay-content.component';
|
|
36
38
|
export * from './lib/modals/alert/alert.component';
|
|
37
39
|
export * from './lib/modals/index';
|
|
38
40
|
export * from './lib/modals/modal.service';
|
package/scss/base/icons-svg.scss
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
@
|
|
1
|
+
@use "@festo-ui/web-essentials/scss/variables" as *;
|
|
2
2
|
|
|
3
|
-
@
|
|
3
|
+
@use "../lib/modals/image-gallery/styles";
|
package/scss/base/popover.scss
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
@
|
|
1
|
+
@use "@festo-ui/web-essentials/scss/variables" as *;
|
|
2
2
|
|
|
3
|
-
@
|
|
3
|
+
@use "../lib/components/popovers/popover/styles";
|
|
4
4
|
|
|
5
5
|
.cdk-overlay-container,
|
|
6
6
|
.cdk-overlay-connected-position-bounding-box,
|
package/scss/base/styles.scss
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
@
|
|
1
|
+
@use "@festo-ui/web-essentials/scss/variables" as *;
|
|
2
2
|
|
|
3
3
|
/** Main global styles **/
|
|
4
|
-
@
|
|
5
|
-
@
|
|
6
|
-
@
|
|
4
|
+
@use "popover";
|
|
5
|
+
@use "image-gallery";
|
|
6
|
+
@use "icons-svg";
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVzdG8tdWktYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2Zlc3RvLXVpLWFuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class FngAccordionHeaderComponent {
|
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngAccordionHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: FngAccordionHeaderComponent, isStandalone: true, selector: "fng-accordion-header", ngImport: i0, template: "<div class=\"fng-accordion-header\">\n <ng-content></ng-content>\n</div>\n", styles: [".fng-accordion-header{display:flex;align-items:center;height:48px;padding:0 16px 0 24px;font-size:var(--fwe-font-size-md);font-weight:var(--fwe-font-weight-bold);color:var(--fwe-text);border-bottom:1px solid var(--fwe-gray-100)}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
6
|
-
}
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngAccordionHeaderComponent, decorators: [{
|
|
8
|
-
type: Component,
|
|
9
|
-
args: [{ standalone: true, selector: 'fng-accordion-header', encapsulation: ViewEncapsulation.None, template: "<div class=\"fng-accordion-header\">\n <ng-content></ng-content>\n</div>\n", styles: [".fng-accordion-header{display:flex;align-items:center;height:48px;padding:0 16px 0 24px;font-size:var(--fwe-font-size-md);font-weight:var(--fwe-font-weight-bold);color:var(--fwe-text);border-bottom:1px solid var(--fwe-gray-100)}\n"] }]
|
|
10
|
-
}] });
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLWhlYWRlci9hY2NvcmRpb24taGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24taGVhZGVyL2FjY29yZGlvbi1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTN0QsTUFBTSxPQUFPLDJCQUEyQjs4R0FBM0IsMkJBQTJCO2tHQUEzQiwyQkFBMkIsZ0ZDVHhDLDZFQUdBOzsyRkRNYSwyQkFBMkI7a0JBUHZDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLHNCQUFzQixpQkFHakIsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnZm5nLWFjY29yZGlvbi1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjY29yZGlvbi1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBGbmdBY2NvcmRpb25IZWFkZXJDb21wb25lbnQge31cbiIsIjxkaXYgY2xhc3M9XCJmbmctYWNjb3JkaW9uLWhlYWRlclwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class FngAccordionItemBodyComponent {
|
|
4
|
-
constructor() {
|
|
5
|
-
// parentId will be set by accordion item this body belongs to
|
|
6
|
-
this.id = '';
|
|
7
|
-
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngAccordionItemBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: FngAccordionItemBodyComponent, isStandalone: true, selector: "fng-accordion-item-body", ngImport: i0, template: "<div\n role=\"region\"\n [attr.id]=\"id + '-body'\"\n [attr.aria-labelledby]=\"id + '-header'\"\n class=\"fng-accordion-item-body\"\n>\n <ng-content></ng-content>\n <div class=\"fng-accordion-item-body-spacer-bottom\"></div>\n</div>\n", styles: [".fng-accordion-item-body{overflow:hidden;transition:height .3s cubic-bezier(.4,0,.2,1);height:0px}.fng-accordion-item-body>:first-child:not(.fng-accordion-item-body-spacer-bottom):not(.fng-accordion){margin-top:0!important;padding-top:0!important}.fng-accordion-item-body>:not(.fng-accordion){margin-right:0}.fng-accordion-item-body-content{margin-right:64px}.fng-accordion-item-body-spacer-bottom{margin-top:24px;height:0;width:0}.fng-accordion-item-body .fng-accordion{margin-top:64px;margin-bottom:24px}.fng-accordion-item-body .fng-accordion-item-link{display:block;top:8px}.fng-accordion-item-body .fng-accordion-item-header{padding-top:32px;padding-right:32px}.fng-accordion-item-body .fng-accordion-item:after{top:12px;right:4px;height:16px;width:16px;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxNnYxNkgweiIvPjxwYXRoIGZpbGw9IiMwMDkxREMiIGQ9Ik04IDEwLjcwNyAzLjY0NiA2LjM1NGwuNzA4LS43MDhMOCA5LjI5M2wzLjY0Ni0zLjY0Ny43MDguNzA4TDggMTAuNzA3eiIvPjwvc3ZnPg==)}.fng-accordion-item-body .fng-accordion-item--expanded:before{background-color:transparent}@media (min-width: 600px){.fng-accordion-item-body>:not(.fng-accordion){margin-right:64px}.fng-accordion-item-body .fng-accordion-item-header{padding-top:24px;padding-right:168px}.fng-accordion-item-body .fng-accordion-item-link{font-size:var(--fwe-font-size-base);top:24px;max-width:128px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fng-accordion-item-body .fng-accordion-item:after{top:30px}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
10
|
-
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngAccordionItemBodyComponent, decorators: [{
|
|
12
|
-
type: Component,
|
|
13
|
-
args: [{ standalone: true, selector: 'fng-accordion-item-body', encapsulation: ViewEncapsulation.None, template: "<div\n role=\"region\"\n [attr.id]=\"id + '-body'\"\n [attr.aria-labelledby]=\"id + '-header'\"\n class=\"fng-accordion-item-body\"\n>\n <ng-content></ng-content>\n <div class=\"fng-accordion-item-body-spacer-bottom\"></div>\n</div>\n", styles: [".fng-accordion-item-body{overflow:hidden;transition:height .3s cubic-bezier(.4,0,.2,1);height:0px}.fng-accordion-item-body>:first-child:not(.fng-accordion-item-body-spacer-bottom):not(.fng-accordion){margin-top:0!important;padding-top:0!important}.fng-accordion-item-body>:not(.fng-accordion){margin-right:0}.fng-accordion-item-body-content{margin-right:64px}.fng-accordion-item-body-spacer-bottom{margin-top:24px;height:0;width:0}.fng-accordion-item-body .fng-accordion{margin-top:64px;margin-bottom:24px}.fng-accordion-item-body .fng-accordion-item-link{display:block;top:8px}.fng-accordion-item-body .fng-accordion-item-header{padding-top:32px;padding-right:32px}.fng-accordion-item-body .fng-accordion-item:after{top:12px;right:4px;height:16px;width:16px;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxNnYxNkgweiIvPjxwYXRoIGZpbGw9IiMwMDkxREMiIGQ9Ik04IDEwLjcwNyAzLjY0NiA2LjM1NGwuNzA4LS43MDhMOCA5LjI5M2wzLjY0Ni0zLjY0Ny43MDguNzA4TDggMTAuNzA3eiIvPjwvc3ZnPg==)}.fng-accordion-item-body .fng-accordion-item--expanded:before{background-color:transparent}@media (min-width: 600px){.fng-accordion-item-body>:not(.fng-accordion){margin-right:64px}.fng-accordion-item-body .fng-accordion-item-header{padding-top:24px;padding-right:168px}.fng-accordion-item-body .fng-accordion-item-link{font-size:var(--fwe-font-size-base);top:24px;max-width:128px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fng-accordion-item-body .fng-accordion-item:after{top:30px}}\n"] }]
|
|
14
|
-
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0tYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLWl0ZW0vYWNjb3JkaW9uLWl0ZW0tYm9keS9hY2NvcmRpb24taXRlbS1ib2R5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS1ib2R5L2FjY29yZGlvbi1pdGVtLWJvZHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTN0QsTUFBTSxPQUFPLDZCQUE2QjtJQVAxQztRQVFFLDhEQUE4RDtRQUM5RCxPQUFFLEdBQVcsRUFBRSxDQUFDO0tBQ2pCOzhHQUhZLDZCQUE2QjtrR0FBN0IsNkJBQTZCLG1GQ1QxQyxtUEFTQTs7MkZEQWEsNkJBQTZCO2tCQVB6QyxTQUFTO2lDQUNJLElBQUksWUFDTix5QkFBeUIsaUJBR3BCLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2ZuZy1hY2NvcmRpb24taXRlbS1ib2R5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY29yZGlvbi1pdGVtLWJvZHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY2NvcmRpb24taXRlbS1ib2R5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRm5nQWNjb3JkaW9uSXRlbUJvZHlDb21wb25lbnQge1xuICAvLyBwYXJlbnRJZCB3aWxsIGJlIHNldCBieSBhY2NvcmRpb24gaXRlbSB0aGlzIGJvZHkgYmVsb25ncyB0b1xuICBpZDogc3RyaW5nID0gJyc7XG59XG4iLCI8ZGl2XG4gIHJvbGU9XCJyZWdpb25cIlxuICBbYXR0ci5pZF09XCJpZCArICAnLWJvZHknXCJcbiAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImlkICsgJy1oZWFkZXInXCJcbiAgY2xhc3M9XCJmbmctYWNjb3JkaW9uLWl0ZW0tYm9keVwiXG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPGRpdiBjbGFzcz1cImZuZy1hY2NvcmRpb24taXRlbS1ib2R5LXNwYWNlci1ib3R0b21cIj48L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export var FngAccordionHeaderActions;
|
|
5
|
-
(function (FngAccordionHeaderActions) {
|
|
6
|
-
FngAccordionHeaderActions["Toggle"] = "toggle";
|
|
7
|
-
})(FngAccordionHeaderActions || (FngAccordionHeaderActions = {}));
|
|
8
|
-
export class FngAccordionItemHeaderComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
// parentId will be set by accordion item this header belongs to
|
|
11
|
-
this.id = '';
|
|
12
|
-
this.actions = new Subject();
|
|
13
|
-
this.actions$ = this.actions.asObservable();
|
|
14
|
-
}
|
|
15
|
-
ngOnDestroy() {
|
|
16
|
-
this.actions.complete();
|
|
17
|
-
}
|
|
18
|
-
toggle() {
|
|
19
|
-
this.actions.next(FngAccordionHeaderActions.Toggle);
|
|
20
|
-
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngAccordionItemHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: FngAccordionItemHeaderComponent, isStandalone: true, selector: "fng-accordion-item-header", ngImport: i0, template: "<div\n class=\"fng-accordion-item-header\"\n role=\"button\"\n tabindex=\"0\"\n [attr.id]=\"id + '-header'\"\n [attr.aria-expanded]=\"\"\n [attr.aria-controls]=\"id + '-body'\"\n (click)=\"toggle()\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".fng-accordion-item-header{display:flex;align-items:center;padding:24px 64px 24px 0;min-height:48px;cursor:pointer}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
23
|
-
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngAccordionItemHeaderComponent, decorators: [{
|
|
25
|
-
type: Component,
|
|
26
|
-
args: [{ standalone: true, selector: 'fng-accordion-item-header', encapsulation: ViewEncapsulation.None, template: "<div\n class=\"fng-accordion-item-header\"\n role=\"button\"\n tabindex=\"0\"\n [attr.id]=\"id + '-header'\"\n [attr.aria-expanded]=\"\"\n [attr.aria-controls]=\"id + '-body'\"\n (click)=\"toggle()\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".fng-accordion-item-header{display:flex;align-items:center;padding:24px 64px 24px 0;min-height:48px;cursor:pointer}\n"] }]
|
|
27
|
-
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0taGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS1oZWFkZXIvYWNjb3JkaW9uLWl0ZW0taGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS1oZWFkZXIvYWNjb3JkaW9uLWl0ZW0taGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFM0MsTUFBTSxDQUFOLElBQVkseUJBRVg7QUFGRCxXQUFZLHlCQUF5QjtJQUNuQyw4Q0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBRlcseUJBQXlCLEtBQXpCLHlCQUF5QixRQUVwQztBQVNELE1BQU0sT0FBTywrQkFBK0I7SUFQNUM7UUFRRSxnRUFBZ0U7UUFDaEUsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUNSLFlBQU8sR0FBdUMsSUFBSSxPQUFPLEVBQTZCLENBQUM7UUFDL0YsYUFBUSxHQUEwQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0tBUy9FO0lBUEMsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RCxDQUFDOzhHQVpVLCtCQUErQjtrR0FBL0IsK0JBQStCLHFGQ2Q1QywwUEFXQTs7MkZER2EsK0JBQStCO2tCQVAzQyxTQUFTO2lDQUNJLElBQUksWUFDTiwyQkFBMkIsaUJBR3RCLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGVudW0gRm5nQWNjb3JkaW9uSGVhZGVyQWN0aW9ucyB7XG4gIFRvZ2dsZSA9ICd0b2dnbGUnXG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2ZuZy1hY2NvcmRpb24taXRlbS1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLWl0ZW0taGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWNjb3JkaW9uLWl0ZW0taGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRm5nQWNjb3JkaW9uSXRlbUhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8vIHBhcmVudElkIHdpbGwgYmUgc2V0IGJ5IGFjY29yZGlvbiBpdGVtIHRoaXMgaGVhZGVyIGJlbG9uZ3MgdG9cbiAgaWQ6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIGFjdGlvbnM6IFN1YmplY3Q8Rm5nQWNjb3JkaW9uSGVhZGVyQWN0aW9ucz4gPSBuZXcgU3ViamVjdDxGbmdBY2NvcmRpb25IZWFkZXJBY3Rpb25zPigpO1xuICBhY3Rpb25zJDogT2JzZXJ2YWJsZTxGbmdBY2NvcmRpb25IZWFkZXJBY3Rpb25zPiA9IHRoaXMuYWN0aW9ucy5hc09ic2VydmFibGUoKTtcblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmFjdGlvbnMuY29tcGxldGUoKTtcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLmFjdGlvbnMubmV4dChGbmdBY2NvcmRpb25IZWFkZXJBY3Rpb25zLlRvZ2dsZSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJmbmctYWNjb3JkaW9uLWl0ZW0taGVhZGVyXCJcbiAgcm9sZT1cImJ1dHRvblwiXG4gIHRhYmluZGV4PVwiMFwiXG4gIFthdHRyLmlkXT1cImlkICsgJy1oZWFkZXInXCJcbiAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJcIlxuICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImlkICsgJy1ib2R5J1wiXG4gIChjbGljayk9XCJ0b2dnbGUoKVwiXG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { FngAccordionActions } from './../accordion.component';
|
|
2
|
-
import { Component, ContentChild, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import { FngAccordionItemBodyComponent } from './accordion-item-body/accordion-item-body.component';
|
|
4
|
-
import { FngAccordionHeaderActions, FngAccordionItemHeaderComponent } from './accordion-item-header/accordion-item-header.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class FngAccordionItemComponent {
|
|
7
|
-
static { this.nextId = 0; }
|
|
8
|
-
get linkText() {
|
|
9
|
-
if (this.expanded === true) {
|
|
10
|
-
this._linkText = this?.accordion?.showLess || '';
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
this._linkText = this?.accordion?.showMore || '';
|
|
14
|
-
}
|
|
15
|
-
return this._linkText;
|
|
16
|
-
}
|
|
17
|
-
constructor(elementRef, renderer, cd) {
|
|
18
|
-
this.elementRef = elementRef;
|
|
19
|
-
this.renderer = renderer;
|
|
20
|
-
this.cd = cd;
|
|
21
|
-
this.componentId = `accordion-item-${++FngAccordionItemComponent.nextId}`;
|
|
22
|
-
this.expanded = false;
|
|
23
|
-
this._linkText = '';
|
|
24
|
-
// compound id of parent id and this component id to get a unique identifier in dom
|
|
25
|
-
this.id = '';
|
|
26
|
-
// parentId will be set by accordion this item belongs to
|
|
27
|
-
this.parentId = '';
|
|
28
|
-
this.element = null;
|
|
29
|
-
this.pristine = true;
|
|
30
|
-
}
|
|
31
|
-
ngAfterContentInit() {
|
|
32
|
-
this.id = `${this.parentId}-${this.componentId}`;
|
|
33
|
-
if (this.header && this.body) {
|
|
34
|
-
this.header.id = this.id;
|
|
35
|
-
this.body.id = this.id;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
ngAfterViewInit() {
|
|
39
|
-
const element = this.elementRef.nativeElement;
|
|
40
|
-
this.element = element.querySelector('.fng-accordion-item-body');
|
|
41
|
-
}
|
|
42
|
-
ngOnChanges(changes) {
|
|
43
|
-
if (changes?.['accordion']?.currentValue != null) {
|
|
44
|
-
const accordion = changes?.['accordion']?.currentValue;
|
|
45
|
-
this.accordion = accordion;
|
|
46
|
-
if (this.accordion) {
|
|
47
|
-
this.subscribeToAccordionActions();
|
|
48
|
-
this.subscribeToAccordionItemHeaderActions();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
this.cd.detectChanges();
|
|
52
|
-
}
|
|
53
|
-
toggle() {
|
|
54
|
-
// save the new expanded state in another var, because it may be overwritten when closeAll is called
|
|
55
|
-
const newExpandedState = !this.expanded;
|
|
56
|
-
const changeExpandedState = () => {
|
|
57
|
-
this.expanded = newExpandedState;
|
|
58
|
-
if (this.expanded === true) {
|
|
59
|
-
this.expandItem();
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
this.collapseItem();
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
// if the accordion allows only one expanded item at once we first have to close all items
|
|
66
|
-
if (this.accordion != null && this.accordion.multi === false) {
|
|
67
|
-
this.accordion.closeAll();
|
|
68
|
-
/// run in new macrotask to avoid render issues when transitioning to new expanded state
|
|
69
|
-
setTimeout(() => {
|
|
70
|
-
changeExpandedState();
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
changeExpandedState();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
collapseItem() {
|
|
78
|
-
// get the height of item body regardless of its actual size
|
|
79
|
-
const itemHeight = this.element?.scrollHeight;
|
|
80
|
-
// set the actual item height as style to avoid transition from height: auto
|
|
81
|
-
this.renderer.setStyle(this.element, 'height', itemHeight + 'px');
|
|
82
|
-
setTimeout(() => {
|
|
83
|
-
this.renderer.setStyle(this.element, 'height', 0 + 'px');
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
expandItem() {
|
|
87
|
-
// if the item was expanded once, we have to rerun change detection before expanding again
|
|
88
|
-
// because the content inside may have changed
|
|
89
|
-
if (this.pristine === false) {
|
|
90
|
-
this.cd.detectChanges();
|
|
91
|
-
}
|
|
92
|
-
// get the height of item body regardless of its actual size
|
|
93
|
-
const itemHeight = this.element?.scrollHeight;
|
|
94
|
-
this.renderer.setStyle(this.element, 'height', itemHeight + 'px');
|
|
95
|
-
setTimeout(() => {
|
|
96
|
-
this.renderer.setStyle(this.element, 'height', null);
|
|
97
|
-
this.pristine = false;
|
|
98
|
-
}, 300);
|
|
99
|
-
}
|
|
100
|
-
handleAction(action) {
|
|
101
|
-
switch (action) {
|
|
102
|
-
case FngAccordionActions.OpenAll:
|
|
103
|
-
this.expanded = true;
|
|
104
|
-
this.expandItem();
|
|
105
|
-
break;
|
|
106
|
-
case FngAccordionActions.CloseAll:
|
|
107
|
-
if (this.expanded === true) {
|
|
108
|
-
this.expanded = false;
|
|
109
|
-
this.collapseItem();
|
|
110
|
-
}
|
|
111
|
-
break;
|
|
112
|
-
case FngAccordionHeaderActions.Toggle:
|
|
113
|
-
this.toggle();
|
|
114
|
-
break;
|
|
115
|
-
default:
|
|
116
|
-
break;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
subscribeToAccordionActions() {
|
|
120
|
-
if (this.accordionSubscription != null) {
|
|
121
|
-
this.accordionSubscription.unsubscribe();
|
|
122
|
-
}
|
|
123
|
-
this.accordionSubscription = this.accordion?.actions$.subscribe(action => {
|
|
124
|
-
this.handleAction(action);
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
subscribeToAccordionItemHeaderActions() {
|
|
128
|
-
if (this.accordionItemHeaderSubscription != null) {
|
|
129
|
-
this.accordionItemHeaderSubscription.unsubscribe();
|
|
130
|
-
}
|
|
131
|
-
this.accordionItemHeaderSubscription = this.header?.actions$.subscribe(action => {
|
|
132
|
-
this.handleAction(action);
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngAccordionItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
136
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: FngAccordionItemComponent, isStandalone: true, selector: "fng-accordion-item", queries: [{ propertyName: "header", first: true, predicate: FngAccordionItemHeaderComponent, descendants: true }, { propertyName: "body", first: true, predicate: FngAccordionItemBodyComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"fng-accordion-item\" [class.fng-accordion-item--collapsed]=\"!expanded\" [class.fng-accordion-item--expanded]=\"expanded === true\">\n <ng-content></ng-content>\n <div class=\"fng-accordion-item-link\">{{ linkText }}</div>\n</div>\n", styles: [".fng-accordion-item{position:relative;padding:0 16px 0 24px;border-top:1px solid var(--fwe-gray-100);border-bottom:1px solid var(--fwe-gray-100)}.fng-accordion-item-link{position:absolute;top:24px;right:24px;color:var(--fwe-caerul);font-size:var(--fwe-font-size-md);pointer-events:none;display:none}.fng-accordion-item:before{position:absolute;top:0;left:0;display:block;content:\"\";width:4px;height:0px;background-color:var(--fwe-caerul)}.fng-accordion-item:after{position:absolute;top:21px;right:16px;pointer-events:none;content:\"\";height:32px;width:32px;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgzMnYzMkgweiIvPjxwYXRoIGZpbGw9IiMzMzMiIGQ9Im0xNiAyMi04LjcwNy04LjcwNyAxLjQxNC0xLjQxNEwxNiAxOS4xNzJsNy4yOTMtNy4yOTMgMS40MTQgMS40MTRMMTYgMjJ6IiAvPjwvc3ZnPg==);transition:transform .2s ease}.fng-accordion-item--expanded .fng-accordion-item-header{font-weight:var(--fwe-font-weight-bold)}.fng-accordion-item--expanded .fng-accordion-item-body{height:auto}.fng-accordion-item--expanded:after{transform:rotate(-180deg)}.fng-accordion-item--expanded:before{height:100%}.fng-accordion-item--collapsed .fng-accordion-item-body{height:0px}.fng-accordion-item--collapsed .fng-accordion-item-header{font-weight:var(--fwe-font-weight-normal)}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
137
|
-
}
|
|
138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngAccordionItemComponent, decorators: [{
|
|
139
|
-
type: Component,
|
|
140
|
-
args: [{ standalone: true, selector: 'fng-accordion-item', encapsulation: ViewEncapsulation.None, template: "<div class=\"fng-accordion-item\" [class.fng-accordion-item--collapsed]=\"!expanded\" [class.fng-accordion-item--expanded]=\"expanded === true\">\n <ng-content></ng-content>\n <div class=\"fng-accordion-item-link\">{{ linkText }}</div>\n</div>\n", styles: [".fng-accordion-item{position:relative;padding:0 16px 0 24px;border-top:1px solid var(--fwe-gray-100);border-bottom:1px solid var(--fwe-gray-100)}.fng-accordion-item-link{position:absolute;top:24px;right:24px;color:var(--fwe-caerul);font-size:var(--fwe-font-size-md);pointer-events:none;display:none}.fng-accordion-item:before{position:absolute;top:0;left:0;display:block;content:\"\";width:4px;height:0px;background-color:var(--fwe-caerul)}.fng-accordion-item:after{position:absolute;top:21px;right:16px;pointer-events:none;content:\"\";height:32px;width:32px;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgzMnYzMkgweiIvPjxwYXRoIGZpbGw9IiMzMzMiIGQ9Im0xNiAyMi04LjcwNy04LjcwNyAxLjQxNC0xLjQxNEwxNiAxOS4xNzJsNy4yOTMtNy4yOTMgMS40MTQgMS40MTRMMTYgMjJ6IiAvPjwvc3ZnPg==);transition:transform .2s ease}.fng-accordion-item--expanded .fng-accordion-item-header{font-weight:var(--fwe-font-weight-bold)}.fng-accordion-item--expanded .fng-accordion-item-body{height:auto}.fng-accordion-item--expanded:after{transform:rotate(-180deg)}.fng-accordion-item--expanded:before{height:100%}.fng-accordion-item--collapsed .fng-accordion-item-body{height:0px}.fng-accordion-item--collapsed .fng-accordion-item-header{font-weight:var(--fwe-font-weight-normal)}\n"] }]
|
|
141
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], propDecorators: { header: [{
|
|
142
|
-
type: ContentChild,
|
|
143
|
-
args: [FngAccordionItemHeaderComponent]
|
|
144
|
-
}], body: [{
|
|
145
|
-
type: ContentChild,
|
|
146
|
-
args: [FngAccordionItemBodyComponent]
|
|
147
|
-
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi1pdGVtL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQXlCLE1BQU0sMEJBQTBCLENBQUM7QUFDdEYsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBR1osaUJBQWlCLEVBTWxCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDOztBQVNySSxNQUFNLE9BQU8seUJBQXlCO2FBQzdCLFdBQU0sR0FBRyxDQUFDLEFBQUosQ0FBSztJQUlsQixJQUFJLFFBQVE7UUFDVixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDbkQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFnQkQsWUFBb0IsVUFBc0IsRUFBVSxRQUFtQixFQUFVLEVBQXFCO1FB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QUFZO3VCQUFDLCtCQUErQjtnQkFDQSxJQUFJO3NCQUFoRCxZQUFZO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm5nQWNjb3JkaW9uQWN0aW9ucywgRm5nQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi8uLi9hY2NvcmRpb24uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBFbGVtZW50UmVmLFxuICBSZW5kZXJlcjIsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBBZnRlckNvbnRlbnRJbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGbmdBY2NvcmRpb25JdGVtQm9keUNvbXBvbmVudCB9IGZyb20gJy4vYWNjb3JkaW9uLWl0ZW0tYm9keS9hY2NvcmRpb24taXRlbS1ib2R5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGbmdBY2NvcmRpb25IZWFkZXJBY3Rpb25zLCBGbmdBY2NvcmRpb25JdGVtSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24taXRlbS1oZWFkZXIvYWNjb3JkaW9uLWl0ZW0taGVhZGVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2ZuZy1hY2NvcmRpb24taXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRm5nQWNjb3JkaW9uSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xuICBjb21wb25lbnRJZCA9IGBhY2NvcmRpb24taXRlbS0keysrRm5nQWNjb3JkaW9uSXRlbUNvbXBvbmVudC5uZXh0SWR9YDtcbiAgZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgX2xpbmtUZXh0OiBzdHJpbmcgPSAnJztcbiAgZ2V0IGxpbmtUZXh0KCkge1xuICAgIGlmICh0aGlzLmV4cGFuZGVkID09PSB0cnVlKSB7XG4gICAgICB0aGlzLl9saW5rVGV4dCA9IHRoaXM/LmFjY29yZGlvbj8uc2hvd0xlc3MgfHwgJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2xpbmtUZXh0ID0gdGhpcz8uYWNjb3JkaW9uPy5zaG93TW9yZSB8fCAnJztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2xpbmtUZXh0O1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZChGbmdBY2NvcmRpb25JdGVtSGVhZGVyQ29tcG9uZW50KSBoZWFkZXI6IEZuZ0FjY29yZGlvbkl0ZW1IZWFkZXJDb21wb25lbnQgfCB1bmRlZmluZWQ7XG4gIEBDb250ZW50Q2hpbGQoRm5nQWNjb3JkaW9uSXRlbUJvZHlDb21wb25lbnQpIGJvZHk6IEZuZ0FjY29yZGlvbkl0ZW1Cb2R5Q29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIC8vIGNvbXBvdW5kIGlkIG9mIHBhcmVudCBpZCBhbmQgdGhpcyBjb21wb25lbnQgaWQgdG8gZ2V0IGEgdW5pcXVlIGlkZW50aWZpZXIgaW4gZG9tXG4gIGlkID0gJyc7XG5cbiAgLy8gcGFyZW50SWQgd2lsbCBiZSBzZXQgYnkgYWNjb3JkaW9uIHRoaXMgaXRlbSBiZWxvbmdzIHRvXG4gIHBhcmVudElkOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBhY2NvcmRpb246IEZuZ0FjY29yZGlvbkNvbXBvbmVudCB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBhY2NvcmRpb25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBhY2NvcmRpb25JdGVtSGVhZGVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBwcmlzdGluZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlkID0gYCR7dGhpcy5wYXJlbnRJZH0tJHt0aGlzLmNvbXBvbmVudElkfWA7XG4gICAgaWYgKHRoaXMuaGVhZGVyICYmIHRoaXMuYm9keSkge1xuICAgICAgdGhpcy5oZWFkZXIuaWQgPSB0aGlzLmlkO1xuICAgICAgdGhpcy5ib2R5LmlkID0gdGhpcy5pZDtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mbmctYWNjb3JkaW9uLWl0ZW0tYm9keScpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzPy5bJ2FjY29yZGlvbiddPy5jdXJyZW50VmFsdWUgIT0gbnVsbCkge1xuICAgICAgY29uc3QgYWNjb3JkaW9uID0gY2hhbmdlcz8uWydhY2NvcmRpb24nXT8uY3VycmVudFZhbHVlO1xuICAgICAgdGhpcy5hY2NvcmRpb24gPSBhY2NvcmRpb247XG4gICAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0FjY29yZGlvbkFjdGlvbnMoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0FjY29yZGlvbkl0ZW1IZWFkZXJBY3Rpb25zKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdG9nZ2xlKCk6IHZvaWQge1xuICAgIC8vIHNhdmUgdGhlIG5ldyBleHBhbmRlZCBzdGF0ZSBpbiBhbm90aGVyIHZhciwgYmVjYXVzZSBpdCBtYXkgYmUgb3ZlcndyaXR0ZW4gd2hlbiBjbG9zZUFsbCBpcyBjYWxsZWRcbiAgICBjb25zdCBuZXdFeHBhbmRlZFN0YXRlID0gIXRoaXMuZXhwYW5kZWQ7XG4gICAgY29uc3QgY2hhbmdlRXhwYW5kZWRTdGF0ZSA9ICgpID0+IHtcbiAgICAgIHRoaXMuZXhwYW5kZWQgPSBuZXdFeHBhbmRlZFN0YXRlO1xuICAgICAgaWYgKHRoaXMuZXhwYW5kZWQgPT09IHRydWUpIHtcbiAgICAgICAgdGhpcy5leHBhbmRJdGVtKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbGxhcHNlSXRlbSgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBpZiB0aGUgYWNjb3JkaW9uIGFsbG93cyBvbmx5IG9uZSBleHBhbmRlZCBpdGVtIGF0IG9uY2Ugd2UgZmlyc3QgaGF2ZSB0byBjbG9zZSBhbGwgaXRlbXNcbiAgICBpZiAodGhpcy5hY2NvcmRpb24gIT0gbnVsbCAmJiB0aGlzLmFjY29yZGlvbi5tdWx0aSA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuYWNjb3JkaW9uLmNsb3NlQWxsKCk7XG4gICAgICAvLy8gcnVuIGluIG5ldyBtYWNyb3Rhc2sgdG8gYXZvaWQgcmVuZGVyIGlzc3VlcyB3aGVuIHRyYW5zaXRpb25pbmcgdG8gbmV3IGV4cGFuZGVkIHN0YXRlXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY2hhbmdlRXhwYW5kZWRTdGF0ZSgpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoYW5nZUV4cGFuZGVkU3RhdGUoKTtcbiAgICB9XG4gIH1cblxuICBjb2xsYXBzZUl0ZW0oKSB7XG4gICAgLy8gZ2V0IHRoZSBoZWlnaHQgb2YgaXRlbSBib2R5IHJlZ2FyZGxlc3Mgb2YgaXRzIGFjdHVhbCBzaXplXG4gICAgY29uc3QgaXRlbUhlaWdodCA9IHRoaXMuZWxlbWVudD8uc2Nyb2xsSGVpZ2h0O1xuICAgIC8vIHNldCB0aGUgYWN0dWFsIGl0ZW0gaGVpZ2h0IGFzIHN0eWxlIHRvIGF2b2lkIHRyYW5zaXRpb24gZnJvbSBoZWlnaHQ6IGF1dG9cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudCwgJ2hlaWdodCcsIGl0ZW1IZWlnaHQgKyAncHgnKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50LCAnaGVpZ2h0JywgMCArICdweCcpO1xuICAgIH0pO1xuICB9XG5cbiAgZXhwYW5kSXRlbSgpIHtcbiAgICAvLyBpZiB0aGUgaXRlbSB3YXMgZXhwYW5kZWQgb25jZSwgd2UgaGF2ZSB0byByZXJ1biBjaGFuZ2UgZGV0ZWN0aW9uIGJlZm9yZSBleHBhbmRpbmcgYWdhaW5cbiAgICAvLyBiZWNhdXNlIHRoZSBjb250ZW50IGluc2lkZSBtYXkgaGF2ZSBjaGFuZ2VkXG4gICAgaWYgKHRoaXMucHJpc3RpbmUgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvLyBnZXQgdGhlIGhlaWdodCBvZiBpdGVtIGJvZHkgcmVnYXJkbGVzcyBvZiBpdHMgYWN0dWFsIHNpemVcbiAgICBjb25zdCBpdGVtSGVpZ2h0ID0gdGhpcy5lbGVtZW50Py5zY3JvbGxIZWlnaHQ7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQsICdoZWlnaHQnLCBpdGVtSGVpZ2h0ICsgJ3B4Jyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudCwgJ2hlaWdodCcsIG51bGwpO1xuICAgICAgdGhpcy5wcmlzdGluZSA9IGZhbHNlO1xuICAgIH0sIDMwMCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUFjdGlvbihhY3Rpb246IEZuZ0FjY29yZGlvbkFjdGlvbnMgfCBGbmdBY2NvcmRpb25IZWFkZXJBY3Rpb25zKSB7XG4gICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgIGNhc2UgRm5nQWNjb3JkaW9uQWN0aW9ucy5PcGVuQWxsOlxuICAgICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5leHBhbmRJdGVtKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGbmdBY2NvcmRpb25BY3Rpb25zLkNsb3NlQWxsOlxuICAgICAgICBpZiAodGhpcy5leHBhbmRlZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNvbGxhcHNlSXRlbSgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGbmdBY2NvcmRpb25IZWFkZXJBY3Rpb25zLlRvZ2dsZTpcbiAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvQWNjb3JkaW9uQWN0aW9ucygpIHtcbiAgICBpZiAodGhpcy5hY2NvcmRpb25TdWJzY3JpcHRpb24gIT0gbnVsbCkge1xuICAgICAgdGhpcy5hY2NvcmRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5hY2NvcmRpb25TdWJzY3JpcHRpb24gPSB0aGlzLmFjY29yZGlvbj8uYWN0aW9ucyQuc3Vic2NyaWJlKGFjdGlvbiA9PiB7XG4gICAgICB0aGlzLmhhbmRsZUFjdGlvbihhY3Rpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb0FjY29yZGlvbkl0ZW1IZWFkZXJBY3Rpb25zKCkge1xuICAgIGlmICh0aGlzLmFjY29yZGlvbkl0ZW1IZWFkZXJTdWJzY3JpcHRpb24gIT0gbnVsbCkge1xuICAgICAgdGhpcy5hY2NvcmRpb25JdGVtSGVhZGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuYWNjb3JkaW9uSXRlbUhlYWRlclN1YnNjcmlwdGlvbiA9IHRoaXMuaGVhZGVyPy5hY3Rpb25zJC5zdWJzY3JpYmUoYWN0aW9uID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlQWN0aW9uKGFjdGlvbik7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbmctYWNjb3JkaW9uLWl0ZW1cIiBbY2xhc3MuZm5nLWFjY29yZGlvbi1pdGVtLS1jb2xsYXBzZWRdPVwiIWV4cGFuZGVkXCIgW2NsYXNzLmZuZy1hY2NvcmRpb24taXRlbS0tZXhwYW5kZWRdPVwiZXhwYW5kZWQgPT09IHRydWVcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8ZGl2IGNsYXNzPVwiZm5nLWFjY29yZGlvbi1pdGVtLWxpbmtcIj57eyBsaW5rVGV4dCB9fTwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { Component, ContentChildren, SimpleChange, ViewEncapsulation, Input } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { FngAccordionItemComponent } from './accordion-item/accordion-item.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export var FngAccordionActions;
|
|
6
|
-
(function (FngAccordionActions) {
|
|
7
|
-
FngAccordionActions["OpenAll"] = "openAll";
|
|
8
|
-
FngAccordionActions["CloseAll"] = "closeAll";
|
|
9
|
-
})(FngAccordionActions || (FngAccordionActions = {}));
|
|
10
|
-
export class FngAccordionComponent {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.componentId = `accordion-${++FngAccordionComponent.nextId}`;
|
|
13
|
-
this.actions = new Subject();
|
|
14
|
-
this.actions$ = this.actions.asObservable();
|
|
15
|
-
// if the accordion should only allow one expanded item at once this property can be set to false
|
|
16
|
-
this.multi = true;
|
|
17
|
-
this.showMore = 'Show more';
|
|
18
|
-
this.showLess = 'Show less';
|
|
19
|
-
}
|
|
20
|
-
static { this.nextId = 0; }
|
|
21
|
-
ngAfterViewInit() {
|
|
22
|
-
this.items?.forEach(item => {
|
|
23
|
-
item.ngOnChanges({
|
|
24
|
-
parentId: new SimpleChange(null, this.componentId, false),
|
|
25
|
-
accordion: new SimpleChange(null, this, false)
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
ngOnDestroy() {
|
|
30
|
-
this.actions.complete();
|
|
31
|
-
}
|
|
32
|
-
openAll() {
|
|
33
|
-
if (this.multi) {
|
|
34
|
-
this.actions.next(FngAccordionActions.OpenAll);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
closeAll() {
|
|
38
|
-
this.actions.next(FngAccordionActions.CloseAll);
|
|
39
|
-
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
41
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: FngAccordionComponent, isStandalone: true, selector: "fng-accordion", inputs: { multi: ["fngAccordionKeepItemsOpen", "multi"], showMore: ["fngAccordionShowMoreText", "showMore"], showLess: ["fngAccordionShowLessText", "showLess"] }, queries: [{ propertyName: "items", predicate: FngAccordionItemComponent }], ngImport: i0, template: "<div class=\"fng-accordion\">\n <ng-content></ng-content>\n</div>\n", styles: [".fng-accordion{background-color:var(--fwe-white);border-bottom:1px solid var(--fwe-gray-100)}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
42
|
-
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FngAccordionComponent, decorators: [{
|
|
44
|
-
type: Component,
|
|
45
|
-
args: [{ standalone: true, selector: 'fng-accordion', encapsulation: ViewEncapsulation.None, template: "<div class=\"fng-accordion\">\n <ng-content></ng-content>\n</div>\n", styles: [".fng-accordion{background-color:var(--fwe-white);border-bottom:1px solid var(--fwe-gray-100)}\n"] }]
|
|
46
|
-
}], propDecorators: { multi: [{
|
|
47
|
-
type: Input,
|
|
48
|
-
args: ['fngAccordionKeepItemsOpen']
|
|
49
|
-
}], showMore: [{
|
|
50
|
-
type: Input,
|
|
51
|
-
args: ['fngAccordionShowMoreText']
|
|
52
|
-
}], showLess: [{
|
|
53
|
-
type: Input,
|
|
54
|
-
args: ['fngAccordionShowLessText']
|
|
55
|
-
}], items: [{
|
|
56
|
-
type: ContentChildren,
|
|
57
|
-
args: [FngAccordionItemComponent]
|
|
58
|
-
}] } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBYSxZQUFZLEVBQUUsaUJBQWlCLEVBQWlCLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQUV0RixNQUFNLENBQU4sSUFBWSxtQkFHWDtBQUhELFdBQVksbUJBQW1CO0lBQzdCLDBDQUFtQixDQUFBO0lBQ25CLDRDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBRzlCO0FBU0QsTUFBTSxPQUFPLHFCQUFxQjtJQVBsQztRQVNXLGdCQUFXLEdBQUcsYUFBYSxFQUFFLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRTdELFlBQU8sR0FBaUMsSUFBSSxPQUFPLEVBQXVCLENBQUM7UUFDbkYsYUFBUSxHQUFvQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXhFLGlHQUFpRztRQUM3RCxVQUFLLEdBQVksSUFBSSxDQUFDO1FBQ3ZCLGFBQVEsR0FBVyxXQUFXLENBQUM7UUFDL0IsYUFBUSxHQUFXLFdBQVcsQ0FBQztLQXlCbkU7YUFsQ1EsV0FBTSxHQUFHLENBQUMsQUFBSixDQUFLO0lBWWxCLGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUNmLFFBQVEsRUFBRSxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUM7Z0JBQ3pELFNBQVMsRUFBRSxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQzthQUMvQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0FsQ1UscUJBQXFCO2tHQUFyQixxQkFBcUIsa1FBV2YseUJBQXlCLDZCQzVCNUMsc0VBR0E7OzJGRGNhLHFCQUFxQjtrQkFQakMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sZUFBZSxpQkFHVixpQkFBaUIsQ0FBQyxJQUFJOzhCQVVELEtBQUs7c0JBQXhDLEtBQUs7dUJBQUMsMkJBQTJCO2dCQUNDLFFBQVE7c0JBQTFDLEtBQUs7dUJBQUMsMEJBQTBCO2dCQUNFLFFBQVE7c0JBQTFDLEtBQUs7dUJBQUMsMEJBQTBCO2dCQUNXLEtBQUs7c0JBQWhELGVBQWU7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlLCBWaWV3RW5jYXBzdWxhdGlvbiwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGbmdBY2NvcmRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS5jb21wb25lbnQnO1xuXG5leHBvcnQgZW51bSBGbmdBY2NvcmRpb25BY3Rpb25zIHtcbiAgT3BlbkFsbCA9ICdvcGVuQWxsJyxcbiAgQ2xvc2VBbGwgPSAnY2xvc2VBbGwnXG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2ZuZy1hY2NvcmRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRm5nQWNjb3JkaW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgc3RhdGljIG5leHRJZCA9IDA7XG4gIHJlYWRvbmx5IGNvbXBvbmVudElkID0gYGFjY29yZGlvbi0keysrRm5nQWNjb3JkaW9uQ29tcG9uZW50Lm5leHRJZH1gO1xuXG4gIHByaXZhdGUgYWN0aW9uczogU3ViamVjdDxGbmdBY2NvcmRpb25BY3Rpb25zPiA9IG5ldyBTdWJqZWN0PEZuZ0FjY29yZGlvbkFjdGlvbnM+KCk7XG4gIGFjdGlvbnMkOiBPYnNlcnZhYmxlPEZuZ0FjY29yZGlvbkFjdGlvbnM+ID0gdGhpcy5hY3Rpb25zLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIC8vIGlmIHRoZSBhY2NvcmRpb24gc2hvdWxkIG9ubHkgYWxsb3cgb25lIGV4cGFuZGVkIGl0ZW0gYXQgb25jZSB0aGlzIHByb3BlcnR5IGNhbiBiZSBzZXQgdG8gZmFsc2VcbiAgQElucHV0KCdmbmdBY2NvcmRpb25LZWVwSXRlbXNPcGVuJykgbXVsdGk6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoJ2ZuZ0FjY29yZGlvblNob3dNb3JlVGV4dCcpIHNob3dNb3JlOiBzdHJpbmcgPSAnU2hvdyBtb3JlJztcbiAgQElucHV0KCdmbmdBY2NvcmRpb25TaG93TGVzc1RleHQnKSBzaG93TGVzczogc3RyaW5nID0gJ1Nob3cgbGVzcyc7XG4gIEBDb250ZW50Q2hpbGRyZW4oRm5nQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkgaXRlbXM6IFF1ZXJ5TGlzdDxGbmdBY2NvcmRpb25JdGVtQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtcz8uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGl0ZW0ubmdPbkNoYW5nZXMoe1xuICAgICAgICBwYXJlbnRJZDogbmV3IFNpbXBsZUNoYW5nZShudWxsLCB0aGlzLmNvbXBvbmVudElkLCBmYWxzZSksXG4gICAgICAgIGFjY29yZGlvbjogbmV3IFNpbXBsZUNoYW5nZShudWxsLCB0aGlzLCBmYWxzZSlcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5hY3Rpb25zLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvcGVuQWxsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm11bHRpKSB7XG4gICAgICB0aGlzLmFjdGlvbnMubmV4dChGbmdBY2NvcmRpb25BY3Rpb25zLk9wZW5BbGwpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9ucy5uZXh0KEZuZ0FjY29yZGlvbkFjdGlvbnMuQ2xvc2VBbGwpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm5nLWFjY29yZGlvblwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * from './accordion.component';
|
|
2
|
-
export * from './accordion-header/accordion-header.component';
|
|
3
|
-
export * from './accordion-item/accordion-item.component';
|
|
4
|
-
export * from './accordion-item/accordion-item-header/accordion-item-header.component';
|
|
5
|
-
export * from './accordion-item/accordion-item-body/accordion-item-body.component';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hY2NvcmRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLG9FQUFvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY2NvcmRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYWNjb3JkaW9uLWhlYWRlci9hY2NvcmRpb24taGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FjY29yZGlvbi1pdGVtL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FjY29yZGlvbi1pdGVtL2FjY29yZGlvbi1pdGVtLWhlYWRlci9hY2NvcmRpb24taXRlbS1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYWNjb3JkaW9uLWl0ZW0vYWNjb3JkaW9uLWl0ZW0tYm9keS9hY2NvcmRpb24taXRlbS1ib2R5LmNvbXBvbmVudCc7XG4iXX0=
|