@theseam/ui-common 0.4.10 → 0.4.12-beta.0
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/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +1 -1
- package/buttons/badge-button/badge-button.component.d.ts +7 -7
- package/buttons/button/button.component.d.ts +6 -6
- package/buttons/buttons.module.d.ts +1 -1
- package/buttons/progress-circle-button/progress-circle-button.component.d.ts +4 -4
- package/buttons/toggle-button/toggle-button.component.d.ts +4 -4
- package/datatable/datatable/datatable.component.d.ts +10 -1
- package/datatable/models/action-item-column-position.d.ts +13 -0
- package/datatable/services/columns-manager.service.d.ts +7 -0
- package/datatable/utils/create-action-menu-column.d.ts +1 -1
- package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +2 -2
- package/esm2020/buttons/badge-button/badge-button.component.mjs +10 -10
- package/esm2020/buttons/button/button.component.mjs +9 -9
- package/esm2020/buttons/buttons.module.mjs +29 -29
- package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +10 -10
- package/esm2020/buttons/toggle-button/toggle-button.component.mjs +8 -8
- package/esm2020/carousel/carousel.component.mjs +3 -2
- package/esm2020/datatable/datatable/datatable.component.mjs +20 -4
- package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +2 -2
- package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +1 -1
- package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +1 -1
- package/esm2020/datatable/models/action-item-column-position.mjs +5 -0
- package/esm2020/datatable/services/columns-manager.service.mjs +27 -2
- package/esm2020/datatable/utils/create-action-menu-column.mjs +4 -3
- package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +1 -1
- package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +1 -1
- package/esm2020/framework/base-layout/base-layout.component.mjs +14 -4
- package/esm2020/framework/base-layout/base-layout.module.mjs +6 -1
- package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +21 -5
- package/esm2020/framework/base-layout/directives/base-layout-side-bar-header.directive.mjs +16 -0
- package/esm2020/framework/base-layout/index.mjs +2 -1
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +1 -1
- package/esm2020/framework/nav/horizontal-nav/horizontal-nav.component.mjs +55 -0
- package/esm2020/framework/nav/index.mjs +6 -0
- package/esm2020/framework/nav/nav-item/nav-item.component.mjs +227 -0
- package/esm2020/framework/nav/nav-utils.mjs +107 -0
- package/esm2020/framework/nav/nav.models.mjs +2 -0
- package/esm2020/framework/nav/nav.module.mjs +67 -0
- package/esm2020/framework/nav/nav.service.mjs +204 -0
- package/esm2020/framework/public-api.mjs +2 -1
- package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +1 -1
- package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +36 -67
- package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +12 -5
- package/esm2020/framework/side-nav/side-nav.component.mjs +141 -38
- package/esm2020/framework/side-nav/side-nav.models.mjs +1 -1
- package/esm2020/framework/side-nav/side-nav.module.mjs +9 -39
- package/esm2020/framework/side-nav/side-nav.service.mjs +1 -1
- package/esm2020/framework/top-bar/index.mjs +3 -1
- package/esm2020/framework/top-bar/top-bar-compact-menu-btn-detail.directive.mjs +16 -0
- package/esm2020/framework/top-bar/top-bar-item.directive.mjs +10 -4
- package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +6 -4
- package/esm2020/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.mjs +16 -0
- package/esm2020/framework/top-bar/top-bar.component.mjs +55 -11
- package/esm2020/framework/top-bar/top-bar.module.mjs +15 -5
- package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +3 -3
- package/esm2020/layout/layout.service.mjs +12 -2
- package/esm2020/loading/loading/loading.component.mjs +5 -5
- package/esm2020/loading/loading-overlay.service.mjs +3 -3
- package/esm2020/loading/loading.module.mjs +6 -6
- package/esm2020/menu/menu-toggle.directive.mjs +7 -2
- package/esm2020/services/preferences/preferences-accessor.mjs +1 -1
- package/esm2020/services/preferences/preferences-manager.service.mjs +1 -1
- package/esm2020/services/preferences/preferences-record.mjs +1 -1
- package/esm2020/services/preferences/preferences.models.mjs +1 -1
- package/esm2020/story-helpers/arg-type-helpers.mjs +5 -9
- package/esm2020/story-helpers/story-preferences-accessor.service.mjs +1 -1
- package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +4 -2
- package/esm2020/testing/get-harness.mjs +8 -2
- package/esm2020/testing/story-expect.mjs +3 -2
- package/esm2020/toggle-edit/toggle-edit.component.mjs +1 -1
- package/esm2020/utils/geo-json/coerce-feature-collection.mjs +1 -1
- package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +1 -1
- package/esm2020/utils/geo-json/is-only-geometry-types.mjs +1 -1
- package/esm2020/utils/geo-json/merge-polygons.mjs +1 -1
- package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +1 -1
- package/esm2020/utils/geo-json/split-multi-polygons.mjs +1 -1
- package/esm2020/widget/preferences/widget-preferences.models.mjs +1 -1
- package/esm2020/widget/preferences/widget-preferences.service.mjs +1 -1
- package/esm2020/widget/preferences/widget-preferences.token.mjs +1 -1
- package/esm2020/widget/widget/widget.component.mjs +3 -3
- package/esm2020/widget/widget.models.mjs +1 -1
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs +2 -2
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-buttons.mjs +55 -55
- package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-carousel.mjs +2 -1
- package/fesm2015/theseam-ui-common-carousel.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +2 -2
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable.mjs +56 -10
- package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-framework.mjs +940 -158
- package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-google-maps.mjs +2 -2
- package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-layout.mjs +11 -2
- package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-loading.mjs +10 -10
- package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-menu.mjs +6 -1
- package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-services.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-story-helpers.mjs +4 -8
- package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table-cell-types.mjs +3 -1
- package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-testing.mjs +9 -2
- package/fesm2015/theseam-ui-common-testing.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-toggle-edit.mjs +1 -1
- package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-widget.mjs +2 -2
- package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs +2 -2
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-buttons.mjs +55 -55
- package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-carousel.mjs +2 -1
- package/fesm2020/theseam-ui-common-carousel.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +2 -2
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable.mjs +56 -10
- package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-framework.mjs +941 -157
- package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-google-maps.mjs +2 -2
- package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-layout.mjs +11 -2
- package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-loading.mjs +10 -10
- package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-menu.mjs +6 -1
- package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-services.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-story-helpers.mjs +4 -8
- package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table-cell-types.mjs +3 -1
- package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-testing.mjs +9 -2
- package/fesm2020/theseam-ui-common-testing.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-toggle-edit.mjs +1 -1
- package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-widget.mjs +2 -2
- package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
- package/framework/base-layout/base-layout.component.d.ts +4 -2
- package/framework/base-layout/base-layout.component.scss +18 -10
- package/framework/base-layout/base-layout.module.d.ts +11 -10
- package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +8 -3
- package/framework/base-layout/directives/base-layout-side-bar-header.directive.d.ts +9 -0
- package/framework/base-layout/index.d.ts +1 -0
- package/framework/base-layout/styles/_variables.scss +21 -0
- package/framework/nav/_nav-theme.scss +4 -0
- package/framework/nav/horizontal-nav/horizontal-nav.component.d.ts +25 -0
- package/framework/nav/horizontal-nav/horizontal-nav.component.scss +50 -0
- package/framework/nav/index.d.ts +5 -0
- package/framework/nav/nav-item/nav-item.component.d.ts +74 -0
- package/framework/nav/nav-item/nav-item.component.scss +203 -0
- package/framework/nav/nav-utils.d.ts +20 -0
- package/framework/nav/nav.models.d.ts +77 -0
- package/framework/nav/nav.module.d.ts +17 -0
- package/framework/nav/nav.service.d.ts +27 -0
- package/framework/nav/styles/_themes/light/_variables.scss +56 -0
- package/framework/nav/styles/_themes/primary/_variables.scss +56 -0
- package/framework/nav/styles/_utilities.scss +3 -0
- package/framework/nav/styles/_variables.scss +2 -0
- package/framework/public-api.d.ts +1 -0
- package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +10 -14
- package/framework/side-nav/side-nav-item/side-nav-item.component.scss +7 -5
- package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +5 -3
- package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +3 -6
- package/framework/side-nav/side-nav.component.d.ts +18 -2
- package/framework/side-nav/side-nav.component.scss +0 -1
- package/framework/side-nav/side-nav.models.d.ts +19 -1
- package/framework/side-nav/side-nav.module.d.ts +1 -9
- package/framework/side-nav/styles/_themes/light/_variables.scss +24 -14
- package/framework/side-nav/styles/_themes/primary/_variables.scss +8 -0
- package/framework/top-bar/index.d.ts +2 -0
- package/framework/top-bar/top-bar-compact-menu-btn-detail.directive.d.ts +8 -0
- package/framework/top-bar/top-bar-item.directive.d.ts +4 -1
- package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +5 -2
- package/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.d.ts +8 -0
- package/framework/top-bar/top-bar.component.d.ts +25 -3
- package/framework/top-bar/top-bar.component.scss +7 -2
- package/framework/top-bar/top-bar.module.d.ts +10 -8
- package/layout/layout.service.d.ts +9 -1
- package/loading/loading/loading.component.d.ts +3 -3
- package/loading/loading.module.d.ts +1 -1
- package/menu/menu-toggle.directive.d.ts +2 -1
- package/package.json +2 -2
- package/styles/vendor/ngx-datatable/_ngx-datatable.scss +57 -14
- package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +33 -5
- package/testing/get-harness.d.ts +2 -2
- package/testing/story-expect.d.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-carousel.mjs","sources":["../../../projects/ui-common/carousel/carousel-slide.directive.ts","../../../projects/ui-common/carousel/carousel.component.ts","../../../projects/ui-common/carousel/carousel.component.html","../../../projects/ui-common/carousel/carousel.module.ts","../../../projects/ui-common/carousel/theseam-ui-common-carousel.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamCarouselSlide]',\n})\nexport class TheSeamCarouselSlideDirective {\n\n constructor(public readonly template: TemplateRef<any>) { }\n\n}\n","import { animate, style, transition, trigger } from '@angular/animations'\nimport { Component, ContentChildren, Input, OnDestroy, OnInit, QueryList } from '@angular/core'\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion'\nimport { BehaviorSubject, combineLatest, interval, Observable, Subject } from 'rxjs'\nimport { filter, map, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators'\n\nimport { faAngleLeft, faAngleRight, faPause, faPlay } from '@fortawesome/free-solid-svg-icons'\nimport { InputBoolean, InputNumber } from '@theseam/ui-common/core'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { TheSeamCarouselSlideDirective } from './carousel-slide.directive'\n\n@Component({\n selector: 'seam-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n animations: [\n trigger('fadeInOut', [\n transition('* => *', [\n style({ opacity: '0', height: '*' }),\n animate(250, style({ opacity: '1', height: '*' })),\n ]),\n ])\n ],\n exportAs: 'seamCarousel',\n})\nexport class TheSeamCarouselComponent implements OnInit, OnDestroy {\n static ngAcceptInputType_slideInterval: NumberInput\n static ngAcceptInputType_autoPlay: BooleanInput\n static ngAcceptInputType_pauseOnHover: BooleanInput\n static ngAcceptInputType_pauseOnFocus: BooleanInput\n static ngAcceptInputType_showPager: BooleanInput\n static ngAcceptInputType_showNavButtons: BooleanInput\n static ngAcceptInputType_showPauseButton: BooleanInput\n\n readonly faAngleRight = faAngleRight\n readonly faAngleLeft = faAngleLeft\n readonly faPause = faPause\n readonly faPlay = faPlay\n\n /**\n * Duration in ms that slide is displayed before paging.\n * Only applicable when `autoPlay === true`.\n * Defaults to 10000ms.\n */\n @Input() @InputNumber(10000) slideInterval = 10000\n\n /**\n * When `true`, carousel will page automatically.\n * Defaults to `true`.\n */\n @Input() @InputBoolean() autoPlay = true\n\n /**\n * When `true`, will pause automatic paging when user mouses over carousel.\n * Timer will restart when user mouses out.\n * Only applicable when `autoPlay === true`.\n * Defaults to `true`.\n */\n @Input() @InputBoolean() pauseOnHover = true\n\n /**\n * When `true`, will pause automatic paging when user focuses in on item in carousel.\n * Timer will restart when user focuses out.\n * Only applicable when `autoPlay === true`.\n * Defaults to `true`.\n */\n @Input() @InputBoolean() pauseOnFocus = true\n\n /**\n * When `true`, will show pager row at the bottom of the carousel with clickable buttons to navigate directly to a page.\n * Defaults to `true`.\n */\n @Input() @InputBoolean() showPager = true\n\n /**\n * When `true`, will show left and right nav button on either side of the carousel to navigate through pages.\n * Defaults to `true`.\n */\n @Input() @InputBoolean() showNavButtons = true\n\n /**\n * When `true`, will show pause/play button to stop/restart automatic paging.\n * Defaults to `true`.\n */\n @Input() @InputBoolean() showPauseButton = true\n\n @ContentChildren(TheSeamCarouselSlideDirective)\n get slides(): QueryList<TheSeamCarouselSlideDirective> | undefined {\n return this._slides.value\n }\n set slides(value: QueryList<TheSeamCarouselSlideDirective> | undefined) {\n // Check if slides were added or removed that would make the active index not exist.\n const count = value?.length || 0\n const maxIdx = count >= 0 ? count - 1 : 0\n const activeIdx = this._pollActiveIndex.value\n if (activeIdx > maxIdx) {\n this._pollActiveIndex.next(maxIdx)\n } else if (count > 0 && activeIdx < 0) {\n this._pollActiveIndex.next(0)\n }\n\n this._slides.next(value)\n }\n private readonly _slides = new BehaviorSubject<QueryList<TheSeamCarouselSlideDirective> | undefined>(undefined)\n public readonly slides$ = this._slides.asObservable()\n\n public readonly activeSlide$: Observable<any | undefined>\n\n private readonly _pollActiveIndex = new BehaviorSubject<number>(0)\n public readonly activeIndex$ = this._pollActiveIndex.asObservable()\n\n private readonly _carouselPaused = new BehaviorSubject<boolean>(false)\n public readonly carouselPaused$ = this._carouselPaused.asObservable()\n\n private readonly _carouselStopped = new BehaviorSubject<boolean>(false)\n public readonly carouselStopped$ = this._carouselStopped.asObservable()\n\n private readonly _resetInterval = new Subject<void>()\n\n constructor() {\n this.activeSlide$ = this._pollActiveIndex.pipe(\n startWith(0),\n switchMap(i => this.slides$.pipe(\n map(slides => slides?.get(i)),\n ))\n )\n }\n\n ngOnInit(): void {\n combineLatest([this.carouselPaused$, this.carouselStopped$]).pipe(\n tap(([paused, stopped]) => {\n if (paused || stopped) {\n this._resetInterval.next(undefined)\n } else {\n this._startInterval()\n }\n })\n ).subscribe()\n }\n\n ngOnDestroy(): void {\n this._resetInterval.next(undefined)\n this._resetInterval.complete()\n }\n\n private _startInterval() {\n if (this.autoPlay) {\n interval(this.slideInterval).pipe(\n takeUntil(this._resetInterval),\n tap(() => {\n this.pageCarousel(1)\n })\n ).subscribe()\n }\n }\n\n focusIn() {\n if (this.pauseOnFocus) {\n this.pauseTimer()\n }\n }\n\n focusOut() {\n if (this.pauseOnFocus) {\n this.startTimer()\n }\n }\n\n mouseEnter() {\n if (this.pauseOnHover) {\n this.pauseTimer()\n }\n }\n\n mouseLeave() {\n if (this.pauseOnHover) {\n this.startTimer()\n }\n }\n\n pauseTimer() {\n this._carouselPaused.next(true)\n }\n\n startTimer() {\n if (!this._carouselStopped.value) {\n this._carouselPaused.next(false)\n }\n }\n\n setCarousel(i: number) {\n this._pollActiveIndex.next(i)\n }\n\n pageCarousel(step: number) {\n this.slides$.pipe(\n take(1),\n filter(slides => notNullOrUndefined(slides)),\n map(slides => {\n const slidesLen = slides?.length || 1\n let index = this._pollActiveIndex.value\n index = index + step\n index = index < 0 ? slidesLen + index : index % slidesLen\n this._pollActiveIndex.next(index)\n })\n ).subscribe()\n }\n\n toggleCarouselStop() {\n const carouselStopped = this._carouselStopped.value\n this._carouselStopped.next(!carouselStopped)\n }\n}\n","<ng-container *ngIf=\"slides$ | async as slides\">\n <div class=\"position-relative\"\n *ngIf=\"slides.length\"\n (focusin)=\"focusIn()\"\n (mouseenter)=\"mouseEnter()\"\n (focusout)=\"focusOut()\"\n (mouseleave)=\"mouseLeave()\">\n\n <div class=\"d-flex\" style=\"min-height: 150px;\">\n <button\n *ngIf=\"showNavButtons && slides.length > 1\"\n seamButton\n class=\"carousel-arrow px-2\"\n (click)=\"pageCarousel(-1)\"\n title=\"Go to previous slide\">\n <seam-icon [icon]=\"faAngleLeft\"></seam-icon>\n </button>\n\n <div *ngIf=\"activeSlide$ | async as slide\" [@fadeInOut]=\"slide.template\" class=\"flex-grow-1 d-flex align-items-center\">\n <div class=\"carousel-content w-100 py-1 px-2\" [attr.data-slide-index]=\"activeIndex$ | async\">\n <ng-template [ngTemplateOutlet]=\"$any(slide.template)\"></ng-template>\n </div>\n </div>\n\n <button\n *ngIf=\"showNavButtons && slides.length > 1\"\n seamButton\n class=\"carousel-arrow px-2\"\n (click)=\"pageCarousel(1)\"\n title=\"Go to next slide\">\n <seam-icon [icon]=\"faAngleRight\"></seam-icon>\n </button>\n </div>\n\n <div class=\"carousel-pages d-flex flex-wrap justify-content-center mt-3 mx-auto\" *ngIf=\"showPager && slides.length > 1\">\n <button\n *ngFor=\"let q of slides; let i = index\"\n seamButton\n theme=\"light\"\n class=\"carousel-page\"\n [class.active]=\"(activeIndex$ | async) == i\"\n (click)=\"setCarousel(i)\"\n [title]=\"'Go to slide ' + (i + 1)\"></button>\n </div>\n\n <div class=\"carousel-controls\" *ngIf=\"showPauseButton && autoPlay\">\n <button\n *ngIf=\"slides.length > 1\"\n seamButton\n (click)=\"toggleCarouselStop()\"\n [title]=\"(carouselStopped$ | async) ? 'Play' : 'Pause'\">\n <seam-icon [icon]=\"faPlay\" *ngIf=\"carouselStopped$ | async; else pauseButton\"></seam-icon>\n <ng-template #pauseButton>\n <seam-icon [icon]=\"faPause\"></seam-icon>\n </ng-template>\n </button>\n </div>\n\n </div>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\n\nimport { TheSeamCarouselSlideDirective } from './carousel-slide.directive'\nimport { TheSeamCarouselComponent } from './carousel.component'\n\n@NgModule({\n declarations: [\n TheSeamCarouselComponent,\n TheSeamCarouselSlideDirective\n ],\n imports: [\n CommonModule,\n TheSeamIconModule,\n TheSeamButtonsModule,\n ],\n exports: [\n TheSeamCarouselComponent,\n TheSeamCarouselSlideDirective\n ],\n providers: []\n})\nexport class TheSeamCarouselModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-carousel.mjs","sources":["../../../projects/ui-common/carousel/carousel-slide.directive.ts","../../../projects/ui-common/carousel/carousel.component.ts","../../../projects/ui-common/carousel/carousel.component.html","../../../projects/ui-common/carousel/carousel.module.ts","../../../projects/ui-common/carousel/theseam-ui-common-carousel.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamCarouselSlide]',\n})\nexport class TheSeamCarouselSlideDirective {\n\n constructor(public readonly template: TemplateRef<any>) { }\n\n}\n","import { animate, style, transition, trigger } from '@angular/animations'\nimport { Component, ContentChildren, Input, OnDestroy, OnInit, QueryList } from '@angular/core'\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion'\nimport { BehaviorSubject, combineLatest, interval, Observable, Subject } from 'rxjs'\nimport { filter, map, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators'\n\nimport { faAngleLeft, faAngleRight, faPause, faPlay } from '@fortawesome/free-solid-svg-icons'\nimport { InputBoolean, InputNumber } from '@theseam/ui-common/core'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { TheSeamCarouselSlideDirective } from './carousel-slide.directive'\n\n@Component({\n selector: 'seam-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n animations: [\n trigger('fadeInOut', [\n transition('* => *', [\n style({ opacity: '0', height: '*' }),\n animate(250, style({ opacity: '1', height: '*' })),\n ]),\n ])\n ],\n exportAs: 'seamCarousel',\n})\nexport class TheSeamCarouselComponent implements OnInit, OnDestroy {\n static ngAcceptInputType_slideInterval: NumberInput\n static ngAcceptInputType_autoPlay: BooleanInput\n static ngAcceptInputType_pauseOnHover: BooleanInput\n static ngAcceptInputType_pauseOnFocus: BooleanInput\n static ngAcceptInputType_showPager: BooleanInput\n static ngAcceptInputType_showNavButtons: BooleanInput\n static ngAcceptInputType_showPauseButton: BooleanInput\n\n readonly faAngleRight = faAngleRight\n readonly faAngleLeft = faAngleLeft\n readonly faPause = faPause\n readonly faPlay = faPlay\n\n /**\n * Duration in ms that slide is displayed before paging.\n * Only applicable when `autoPlay === true`.\n * Defaults to 10000ms.\n */\n @Input() @InputNumber(10000) slideInterval = 10000\n\n /**\n * When `true`, carousel will page automatically.\n * Defaults to `true`.\n */\n @Input() @InputBoolean() autoPlay = true\n\n /**\n * When `true`, will pause automatic paging when user mouses over carousel.\n * Timer will restart when user mouses out.\n * Only applicable when `autoPlay === true`.\n * Defaults to `true`.\n */\n @Input() @InputBoolean() pauseOnHover = true\n\n /**\n * When `true`, will pause automatic paging when user focuses in on item in carousel.\n * Timer will restart when user focuses out.\n * Only applicable when `autoPlay === true`.\n * Defaults to `true`.\n */\n @Input() @InputBoolean() pauseOnFocus = true\n\n /**\n * When `true`, will show pager row at the bottom of the carousel with clickable buttons to navigate directly to a page.\n * Defaults to `true`.\n */\n @Input() @InputBoolean() showPager = true\n\n /**\n * When `true`, will show left and right nav button on either side of the carousel to navigate through pages.\n * Defaults to `true`.\n */\n @Input() @InputBoolean() showNavButtons = true\n\n /**\n * When `true`, will show pause/play button to stop/restart automatic paging.\n * Defaults to `true`.\n */\n @Input() @InputBoolean() showPauseButton = true\n\n @ContentChildren(TheSeamCarouselSlideDirective)\n get slides(): QueryList<TheSeamCarouselSlideDirective> | undefined {\n return this._slides.value\n }\n set slides(value: QueryList<TheSeamCarouselSlideDirective> | undefined) {\n // Check if slides were added or removed that would make the active index not exist.\n const count = value?.length || 0\n const maxIdx = count >= 0 ? count - 1 : 0\n const activeIdx = this._pollActiveIndex.value\n if (activeIdx > maxIdx) {\n this._pollActiveIndex.next(maxIdx)\n } else if (count > 0 && activeIdx < 0) {\n this._pollActiveIndex.next(0)\n }\n\n this._slides.next(value)\n }\n private readonly _slides = new BehaviorSubject<QueryList<TheSeamCarouselSlideDirective> | undefined>(undefined)\n public readonly slides$ = this._slides.asObservable()\n\n public readonly activeSlide$: Observable<any | undefined>\n\n private readonly _pollActiveIndex = new BehaviorSubject<number>(0)\n public readonly activeIndex$ = this._pollActiveIndex.asObservable()\n\n private readonly _carouselPaused = new BehaviorSubject<boolean>(false)\n public readonly carouselPaused$ = this._carouselPaused.asObservable()\n\n private readonly _carouselStopped = new BehaviorSubject<boolean>(false)\n public readonly carouselStopped$ = this._carouselStopped.asObservable()\n\n private readonly _resetInterval = new Subject<void>()\n\n constructor() {\n this.activeSlide$ = this._pollActiveIndex.pipe(\n startWith(0),\n switchMap(i => this.slides$.pipe(\n map(slides => slides?.get(i)),\n ))\n )\n }\n\n ngOnInit(): void {\n combineLatest([this.carouselPaused$, this.carouselStopped$]).pipe(\n tap(([paused, stopped]) => {\n if (paused || stopped) {\n this._resetInterval.next(undefined)\n } else {\n this._startInterval()\n }\n })\n ).subscribe()\n }\n\n ngOnDestroy(): void {\n this._resetInterval.next(undefined)\n this._resetInterval.complete()\n }\n\n private _startInterval() {\n this._resetInterval.next(undefined)\n if (this.autoPlay) {\n interval(this.slideInterval).pipe(\n takeUntil(this._resetInterval),\n tap(() => {\n this.pageCarousel(1)\n })\n ).subscribe()\n }\n }\n\n focusIn() {\n if (this.pauseOnFocus) {\n this.pauseTimer()\n }\n }\n\n focusOut() {\n if (this.pauseOnFocus) {\n this.startTimer()\n }\n }\n\n mouseEnter() {\n if (this.pauseOnHover) {\n this.pauseTimer()\n }\n }\n\n mouseLeave() {\n if (this.pauseOnHover) {\n this.startTimer()\n }\n }\n\n pauseTimer() {\n this._carouselPaused.next(true)\n }\n\n startTimer() {\n if (!this._carouselStopped.value) {\n this._carouselPaused.next(false)\n }\n }\n\n setCarousel(i: number) {\n this._pollActiveIndex.next(i)\n }\n\n pageCarousel(step: number) {\n this.slides$.pipe(\n take(1),\n filter(slides => notNullOrUndefined(slides)),\n map(slides => {\n const slidesLen = slides?.length || 1\n let index = this._pollActiveIndex.value\n index = index + step\n index = index < 0 ? slidesLen + index : index % slidesLen\n this._pollActiveIndex.next(index)\n })\n ).subscribe()\n }\n\n toggleCarouselStop() {\n const carouselStopped = this._carouselStopped.value\n this._carouselStopped.next(!carouselStopped)\n }\n}\n","<ng-container *ngIf=\"slides$ | async as slides\">\n <div class=\"position-relative\"\n *ngIf=\"slides.length\"\n (focusin)=\"focusIn()\"\n (mouseenter)=\"mouseEnter()\"\n (focusout)=\"focusOut()\"\n (mouseleave)=\"mouseLeave()\">\n\n <div class=\"d-flex\" style=\"min-height: 150px;\">\n <button\n *ngIf=\"showNavButtons && slides.length > 1\"\n seamButton\n class=\"carousel-arrow px-2\"\n (click)=\"pageCarousel(-1)\"\n title=\"Go to previous slide\">\n <seam-icon [icon]=\"faAngleLeft\"></seam-icon>\n </button>\n\n <div *ngIf=\"activeSlide$ | async as slide\" [@fadeInOut]=\"slide.template\" class=\"flex-grow-1 d-flex align-items-center\">\n <div class=\"carousel-content w-100 py-1 px-2\" [attr.data-slide-index]=\"activeIndex$ | async\">\n <ng-template [ngTemplateOutlet]=\"$any(slide.template)\"></ng-template>\n </div>\n </div>\n\n <button\n *ngIf=\"showNavButtons && slides.length > 1\"\n seamButton\n class=\"carousel-arrow px-2\"\n (click)=\"pageCarousel(1)\"\n title=\"Go to next slide\">\n <seam-icon [icon]=\"faAngleRight\"></seam-icon>\n </button>\n </div>\n\n <div class=\"carousel-pages d-flex flex-wrap justify-content-center mt-3 mx-auto\" *ngIf=\"showPager && slides.length > 1\">\n <button\n *ngFor=\"let q of slides; let i = index\"\n seamButton\n theme=\"light\"\n class=\"carousel-page\"\n [class.active]=\"(activeIndex$ | async) == i\"\n (click)=\"setCarousel(i)\"\n [title]=\"'Go to slide ' + (i + 1)\"></button>\n </div>\n\n <div class=\"carousel-controls\" *ngIf=\"showPauseButton && autoPlay\">\n <button\n *ngIf=\"slides.length > 1\"\n seamButton\n (click)=\"toggleCarouselStop()\"\n [title]=\"(carouselStopped$ | async) ? 'Play' : 'Pause'\">\n <seam-icon [icon]=\"faPlay\" *ngIf=\"carouselStopped$ | async; else pauseButton\"></seam-icon>\n <ng-template #pauseButton>\n <seam-icon [icon]=\"faPause\"></seam-icon>\n </ng-template>\n </button>\n </div>\n\n </div>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\n\nimport { TheSeamCarouselSlideDirective } from './carousel-slide.directive'\nimport { TheSeamCarouselComponent } from './carousel.component'\n\n@NgModule({\n declarations: [\n TheSeamCarouselComponent,\n TheSeamCarouselSlideDirective\n ],\n imports: [\n CommonModule,\n TheSeamIconModule,\n TheSeamButtonsModule,\n ],\n exports: [\n TheSeamCarouselComponent,\n TheSeamCarouselSlideDirective\n ],\n providers: []\n})\nexport class TheSeamCarouselModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -658,7 +658,7 @@ class DatatableDynamicActionMenuComponent {
|
|
|
658
658
|
}
|
|
659
659
|
}
|
|
660
660
|
DatatableDynamicActionMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableDynamicActionMenuComponent, deps: [{ token: i1.DynamicValueHelperService }, { token: DynamicDatatableRowActionsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
661
|
-
DatatableDynamicActionMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableDynamicActionMenuComponent, selector: "seam-datatable-dynamic-action-menu", inputs: { row: "row", actionDefs: "actionDefs" }, ngImport: i0, template: "<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let record of _menuRecords$ | async\">\n\n <a *ngIf=\"record.elementType === 'a'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n class=\"list-group-item list-group-item-action py-1\">{{ record.rowAction.label }}</a>\n\n <button *ngIf=\"record.elementType === 'button'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\">{{ record.rowAction.label }}</button>\n\n </ng-container>\n\n <!-- <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"item.fragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"item.preserveFragment\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n [state]=\"item.state\"\n [routerLink]=\"item.routerLink\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-container> -->\n</seam-menu>\n\n<button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"$any(_actionMenuPositions)\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n</button>\n", styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "component", type: i5.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i5.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i5.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "directive", type: DatatableDynamicActionMenuItemDirective, selector: "[seamDatatableDynamicActionMenuItem]", inputs: ["seamDatatableDynamicActionMenuItem"], exportAs: ["seamDatatableDynamicActionMenuItem"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
661
|
+
DatatableDynamicActionMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableDynamicActionMenuComponent, selector: "seam-datatable-dynamic-action-menu", inputs: { row: "row", actionDefs: "actionDefs" }, ngImport: i0, template: "<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let record of _menuRecords$ | async\">\n\n <a *ngIf=\"record.elementType === 'a'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n class=\"list-group-item list-group-item-action py-1\">{{ record.rowAction.label }}</a>\n\n <button *ngIf=\"record.elementType === 'button'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\">{{ record.rowAction.label }}</button>\n\n </ng-container>\n\n <!-- <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"item.fragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"item.preserveFragment\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n [state]=\"item.state\"\n [routerLink]=\"item.routerLink\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-container> -->\n</seam-menu>\n\n<button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"$any(_actionMenuPositions)\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n</button>\n", styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "component", type: i5.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i5.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuToggle", "menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i5.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "directive", type: DatatableDynamicActionMenuItemDirective, selector: "[seamDatatableDynamicActionMenuItem]", inputs: ["seamDatatableDynamicActionMenuItem"], exportAs: ["seamDatatableDynamicActionMenuItem"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
662
662
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableDynamicActionMenuComponent, decorators: [{
|
|
663
663
|
type: Component,
|
|
664
664
|
args: [{ selector: 'seam-datatable-dynamic-action-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let record of _menuRecords$ | async\">\n\n <a *ngIf=\"record.elementType === 'a'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n class=\"list-group-item list-group-item-action py-1\">{{ record.rowAction.label }}</a>\n\n <button *ngIf=\"record.elementType === 'button'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\">{{ record.rowAction.label }}</button>\n\n </ng-container>\n\n <!-- <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"item.fragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"item.preserveFragment\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n [state]=\"item.state\"\n [routerLink]=\"item.routerLink\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-container> -->\n</seam-menu>\n\n<button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"$any(_actionMenuPositions)\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n</button>\n", styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"] }]
|
|
@@ -905,7 +905,7 @@ DatatableDynamicComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0"
|
|
|
905
905
|
DatatableDynamicComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableDynamicComponent, selector: "seam-datatable-dynamic", inputs: { def: "def" }, providers: [
|
|
906
906
|
DynamicDatatableDefService,
|
|
907
907
|
DynamicDatatableRowActionsService
|
|
908
|
-
], ngImport: i0, template: "<ng-container *ngIf=\"_hasDef$ | async\">\n <seam-datatable *ngIf=\"_options$ | async as opts\"\n class=\"w-100 h-100\"\n [columns]=\"_tmp_columns$ | async\"\n [rows]=\"_tmp_rows$ | async\"\n [virtualization]=\"opts.virtualization\">\n\n <seam-datatable-menu-bar *ngIf=\"menuBar$ | async as menuBar\">\n <seam-datatable-dynamic-menu-bar-content [def]=\"menuBar\"></seam-datatable-dynamic-menu-bar-content>\n </seam-datatable-menu-bar>\n <!-- <seam-datatable-menu-bar *ngIf=\"_hasFilterMenu$ | async\">\n <div class=\"d-flex flex-row pb-2\">\n <div class=\"d-flex flex-row justify-content-end flex-grow-1\">\n <seam-data-filter-search seamDatatableFilter *ngIf=\"_hasFullSearch$\"></seam-data-filter-search>\n </div>\n </div>\n <div class=\"d-flex flex-row\">\n <div class=\"d-flex justify-content-center flex-grow-1\">\n <ng-container *ngFor=\"let r of _commonFilterMenuItems$ | async; let isFirst = first\">\n <seam-datatable-dynamic-filter-container\n [class.ml-1]=\"!isFirst\"\n [filterComponent]=\"r.component\"\n [options]=\"r.options\">\n </seam-datatable-dynamic-filter-container>\n </ng-container>\n </div>\n <seam-datatable-export-button *ngIf=\"_exporters$ | async as exporters\"\n [exporters]=\"exporters\">\n </seam-datatable-export-button>\n </div>\n </seam-datatable-menu-bar> -->\n\n <ng-template seamDatatableRowActionItem let-row>\n <seam-datatable-dynamic-action-menu [row]=\"row\"></seam-datatable-dynamic-action-menu>\n </ng-template>\n\n </seam-datatable>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.DatatableComponent, selector: "seam-datatable", inputs: ["preferencesKey", "targetMarkerTemplate", "columns", "rows", "columnMode", "groupRowsBy", "groupedRows", "selected", "externalPaging", "externalSorting", "externalFiltering", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowIdentity", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "virtualization", "headerHeight", "rowHeight", "footerHeight", "scrollbarV", "scrollbarH", "dataSource"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction", "actionRefreshRequest", "hiddenColumnsChange"] }, { kind: "component", type: i4$1.DatatableMenuBarComponent, selector: "seam-datatable-menu-bar" }, { kind: "directive", type: i4$1.DatatableRowActionItemDirective, selector: "[seamDatatableRowActionItem]" }, { kind: "component", type: DatatableDynamicActionMenuComponent, selector: "seam-datatable-dynamic-action-menu", inputs: ["row", "actionDefs"] }, { kind: "component", type: DatatableDynamicMenuBarContentComponent, selector: "seam-datatable-dynamic-menu-bar-content", inputs: ["def"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
908
|
+
], ngImport: i0, template: "<ng-container *ngIf=\"_hasDef$ | async\">\n <seam-datatable *ngIf=\"_options$ | async as opts\"\n class=\"w-100 h-100\"\n [columns]=\"_tmp_columns$ | async\"\n [rows]=\"_tmp_rows$ | async\"\n [virtualization]=\"opts.virtualization\">\n\n <seam-datatable-menu-bar *ngIf=\"menuBar$ | async as menuBar\">\n <seam-datatable-dynamic-menu-bar-content [def]=\"menuBar\"></seam-datatable-dynamic-menu-bar-content>\n </seam-datatable-menu-bar>\n <!-- <seam-datatable-menu-bar *ngIf=\"_hasFilterMenu$ | async\">\n <div class=\"d-flex flex-row pb-2\">\n <div class=\"d-flex flex-row justify-content-end flex-grow-1\">\n <seam-data-filter-search seamDatatableFilter *ngIf=\"_hasFullSearch$\"></seam-data-filter-search>\n </div>\n </div>\n <div class=\"d-flex flex-row\">\n <div class=\"d-flex justify-content-center flex-grow-1\">\n <ng-container *ngFor=\"let r of _commonFilterMenuItems$ | async; let isFirst = first\">\n <seam-datatable-dynamic-filter-container\n [class.ml-1]=\"!isFirst\"\n [filterComponent]=\"r.component\"\n [options]=\"r.options\">\n </seam-datatable-dynamic-filter-container>\n </ng-container>\n </div>\n <seam-datatable-export-button *ngIf=\"_exporters$ | async as exporters\"\n [exporters]=\"exporters\">\n </seam-datatable-export-button>\n </div>\n </seam-datatable-menu-bar> -->\n\n <ng-template seamDatatableRowActionItem let-row>\n <seam-datatable-dynamic-action-menu [row]=\"row\"></seam-datatable-dynamic-action-menu>\n </ng-template>\n\n </seam-datatable>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.DatatableComponent, selector: "seam-datatable", inputs: ["preferencesKey", "targetMarkerTemplate", "columns", "rows", "columnMode", "groupRowsBy", "groupedRows", "selected", "externalPaging", "externalSorting", "externalFiltering", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowIdentity", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "virtualization", "headerHeight", "rowHeight", "footerHeight", "scrollbarV", "scrollbarH", "dataSource", "actionItemColumnPosition"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction", "actionRefreshRequest", "hiddenColumnsChange"] }, { kind: "component", type: i4$1.DatatableMenuBarComponent, selector: "seam-datatable-menu-bar" }, { kind: "directive", type: i4$1.DatatableRowActionItemDirective, selector: "[seamDatatableRowActionItem]" }, { kind: "component", type: DatatableDynamicActionMenuComponent, selector: "seam-datatable-dynamic-action-menu", inputs: ["row", "actionDefs"] }, { kind: "component", type: DatatableDynamicMenuBarContentComponent, selector: "seam-datatable-dynamic-menu-bar-content", inputs: ["def"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
909
909
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableDynamicComponent, decorators: [{
|
|
910
910
|
type: Component,
|
|
911
911
|
args: [{ selector: 'seam-datatable-dynamic', providers: [
|