@sebgroup/green-angular 2.0.4 → 2.1.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/esm2020/lib/context-menu/context-menu.component.mjs +32 -80
- package/esm2020/lib/context-menu/context-menu.module.mjs +7 -5
- package/esm2020/lib/dropdown/dropdown.component.mjs +3 -3
- package/fesm2015/sebgroup-green-angular.mjs +120 -176
- package/fesm2015/sebgroup-green-angular.mjs.map +1 -1
- package/fesm2020/sebgroup-green-angular.mjs +119 -169
- package/fesm2020/sebgroup-green-angular.mjs.map +1 -1
- package/lib/context-menu/context-menu.component.d.ts +25 -17
- package/lib/context-menu/context-menu.module.d.ts +2 -1
- package/package.json +4 -4
- package/esm2020/lib/context-menu/context-menu.constants.mjs +0 -3
- package/lib/context-menu/context-menu.constants.d.ts +0 -2
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import * as i1 from '@angular/common';
|
|
2
2
|
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { EventEmitter, Component, Input, Output, ContentChildren, NgModule, ChangeDetectionStrategy, HostBinding,
|
|
4
|
+
import { EventEmitter, Component, Input, Output, ContentChildren, NgModule, ChangeDetectionStrategy, HostBinding, inject, Renderer2, ViewContainerRef, ChangeDetectorRef, TemplateRef, Directive, ViewChild, CUSTOM_ELEMENTS_SCHEMA, Injector, Inject, ContentChild, InjectionToken } from '@angular/core';
|
|
5
5
|
import { randomId, months, years, createDatepicker, calculateDegrees, sliderColors, getSliderTrackBackground, PaginationI18n } from '@sebgroup/extract';
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
9
|
-
import * as i2$1 from '@angular/forms';
|
|
6
|
+
import { getScopedTagName } from '@sebgroup/green-core';
|
|
7
|
+
import { registerTransitionalStyles } from '@sebgroup/green-core/transitional-styles';
|
|
8
|
+
import * as i2 from '@angular/forms';
|
|
10
9
|
import { NgControl, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
|
11
10
|
import { startOfDay, endOfDay } from 'date-fns';
|
|
12
|
-
import { registerTransitionalStyles } from '@sebgroup/green-core/transitional-styles';
|
|
13
|
-
import { getScopedTagName } from '@sebgroup/green-core';
|
|
14
11
|
import { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';
|
|
15
12
|
import * as i1$1 from '@angular/cdk/a11y';
|
|
16
13
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
17
14
|
import * as i1$2 from '@angular/router';
|
|
18
15
|
import { RouterModule } from '@angular/router';
|
|
16
|
+
import { Subject, fromEvent, interval } from 'rxjs';
|
|
17
|
+
import { takeUntil, throttle } from 'rxjs/operators';
|
|
19
18
|
|
|
20
19
|
class NggAccordionListItemComponent {
|
|
21
20
|
constructor() {
|
|
@@ -274,158 +273,90 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
274
273
|
}]
|
|
275
274
|
}] });
|
|
276
275
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
this.
|
|
281
|
-
this.
|
|
282
|
-
this.
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
var _a;
|
|
286
|
-
if (this.elementRef) {
|
|
287
|
-
fromEvent((_a = this.elementRef) === null || _a === void 0 ? void 0 : _a.nativeElement, 'scroll')
|
|
288
|
-
.pipe(takeUntil(this.destroy$), throttle(() => interval(30)))
|
|
289
|
-
.subscribe(() => {
|
|
290
|
-
this.onScroll$.next();
|
|
291
|
-
});
|
|
292
|
-
}
|
|
276
|
+
class NggCoreElementDirective {
|
|
277
|
+
constructor() {
|
|
278
|
+
this.viewRef = null;
|
|
279
|
+
this.document = inject(DOCUMENT);
|
|
280
|
+
this.renderer = inject(Renderer2);
|
|
281
|
+
this.vcr = inject(ViewContainerRef);
|
|
282
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
283
|
+
this.template = inject((TemplateRef));
|
|
293
284
|
}
|
|
294
|
-
|
|
295
|
-
this.
|
|
296
|
-
this.
|
|
285
|
+
ngOnInit() {
|
|
286
|
+
this.vcr.clear();
|
|
287
|
+
const originalCreateElement = this.renderer.createElement;
|
|
288
|
+
this.renderer.createElement = (name, _namespace) => {
|
|
289
|
+
return this.document.createElement(getScopedTagName(name));
|
|
290
|
+
};
|
|
291
|
+
this.viewRef = this.vcr.createEmbeddedView(this.template);
|
|
292
|
+
this.renderer.createElement = originalCreateElement;
|
|
293
|
+
this.cdr.markForCheck();
|
|
297
294
|
}
|
|
298
295
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
provide: ON_SCROLL_TOKEN,
|
|
303
|
-
useFactory: (component) => component === null || component === void 0 ? void 0 : component.onScroll$,
|
|
304
|
-
deps: [NggOnScrollDirective],
|
|
305
|
-
},
|
|
306
|
-
], ngImport: i0 });
|
|
307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggOnScrollDirective, decorators: [{
|
|
296
|
+
NggCoreElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
297
|
+
NggCoreElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NggCoreElementDirective, selector: "[nggCoreElement]", ngImport: i0 });
|
|
298
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreElementDirective, decorators: [{
|
|
308
299
|
type: Directive,
|
|
309
300
|
args: [{
|
|
310
|
-
selector: '[
|
|
311
|
-
providers: [
|
|
312
|
-
{
|
|
313
|
-
provide: ON_SCROLL_TOKEN,
|
|
314
|
-
useFactory: (component) => component === null || component === void 0 ? void 0 : component.onScroll$,
|
|
315
|
-
deps: [NggOnScrollDirective],
|
|
316
|
-
},
|
|
317
|
-
],
|
|
301
|
+
selector: '[nggCoreElement]',
|
|
318
302
|
}]
|
|
319
|
-
}]
|
|
320
|
-
|
|
321
|
-
const CONTEXT_MENU_TOP = '0px';
|
|
322
|
-
const CONTEXT_MENU_LEFT = '0px';
|
|
303
|
+
}] });
|
|
323
304
|
|
|
324
305
|
class NggContextMenuComponent {
|
|
325
|
-
constructor(
|
|
326
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
306
|
+
constructor(elementRef) {
|
|
327
307
|
this.elementRef = elementRef;
|
|
328
|
-
|
|
308
|
+
/**
|
|
309
|
+
* Placement of the popover relative to the anchor element.
|
|
310
|
+
*/
|
|
329
311
|
this.direction = 'ltr';
|
|
312
|
+
/**
|
|
313
|
+
* List of items to be displayed in the context menu.
|
|
314
|
+
*/
|
|
330
315
|
this.menuItems = [];
|
|
316
|
+
/**
|
|
317
|
+
* Custom menu item template.
|
|
318
|
+
*/
|
|
331
319
|
this.menuItemTemplate = null;
|
|
320
|
+
/**
|
|
321
|
+
* Custom menu trigger template.
|
|
322
|
+
*/
|
|
332
323
|
this.menuAnchorTemplate = null;
|
|
324
|
+
/**
|
|
325
|
+
* @deprecated
|
|
326
|
+
* This property no longer has any effect and will be removed in a future version.
|
|
327
|
+
*/
|
|
333
328
|
this.closeOnScroll = false;
|
|
329
|
+
/**
|
|
330
|
+
* Emits when a menu item is clicked.
|
|
331
|
+
*/
|
|
334
332
|
this.contextMenuItemClicked = new EventEmitter();
|
|
335
333
|
this.isActive = false;
|
|
336
|
-
|
|
337
|
-
this.left = CONTEXT_MENU_LEFT;
|
|
338
|
-
}
|
|
339
|
-
onDocumentClick(target) {
|
|
340
|
-
if (!this.isActive) {
|
|
341
|
-
return;
|
|
342
|
-
}
|
|
343
|
-
if (!this.elementRef.nativeElement.contains(target)) {
|
|
344
|
-
this.close();
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
ngOnInit() {
|
|
348
|
-
this.resizeObserver = new ResizeObserver(() => {
|
|
349
|
-
this.close();
|
|
350
|
-
});
|
|
351
|
-
this.resizeObserver.observe(document.body);
|
|
352
|
-
}
|
|
353
|
-
ngAfterViewInit() {
|
|
354
|
-
var _a;
|
|
355
|
-
if (this.closeOnScroll) {
|
|
356
|
-
this.menuCloseSubscription = (_a = this.closeContextMenu) === null || _a === void 0 ? void 0 : _a.subscribe(() => this.close());
|
|
357
|
-
}
|
|
334
|
+
registerTransitionalStyles();
|
|
358
335
|
}
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
(_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.unobserve(document.body);
|
|
362
|
-
(_b = this.menuCloseSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();
|
|
336
|
+
get placement() {
|
|
337
|
+
return this.direction === 'ltr' ? 'bottom-start' : 'bottom-end';
|
|
363
338
|
}
|
|
364
339
|
open() {
|
|
365
|
-
var _a;
|
|
366
340
|
if (this.isActive) {
|
|
367
341
|
this.close();
|
|
368
342
|
return;
|
|
369
343
|
}
|
|
370
|
-
const buttonRect = (_a = this.anchor) === null || _a === void 0 ? void 0 : _a.nativeElement.getBoundingClientRect();
|
|
371
|
-
const gapBetweenButtonAndPopover = 3;
|
|
372
|
-
const left = this.calculateLeft(this.direction, buttonRect);
|
|
373
|
-
const top = buttonRect.bottom + gapBetweenButtonAndPopover;
|
|
374
|
-
this.left = `${left}px`;
|
|
375
|
-
this.top = `${top}px`;
|
|
376
344
|
this.isActive = true;
|
|
377
345
|
}
|
|
378
346
|
close() {
|
|
379
347
|
this.isActive = false;
|
|
380
|
-
this.top = CONTEXT_MENU_TOP;
|
|
381
|
-
this.left = CONTEXT_MENU_LEFT;
|
|
382
|
-
this.changeDetectorRef.markForCheck();
|
|
383
348
|
}
|
|
384
349
|
onItemClick(item) {
|
|
385
350
|
this.contextMenuItemClicked.emit(item);
|
|
386
351
|
this.close();
|
|
387
352
|
}
|
|
388
|
-
onMenuItemKeyDown(event, menuItem) {
|
|
389
|
-
switch (event.key) {
|
|
390
|
-
case 'Enter':
|
|
391
|
-
case ' ':
|
|
392
|
-
event.preventDefault();
|
|
393
|
-
this.onItemClick(menuItem);
|
|
394
|
-
break;
|
|
395
|
-
default:
|
|
396
|
-
break;
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
calculateLeft(direction, buttonRect) {
|
|
400
|
-
var _a;
|
|
401
|
-
const popover = (_a = this.popover) === null || _a === void 0 ? void 0 : _a.nativeElement;
|
|
402
|
-
const popoverWidth = (popover === null || popover === void 0 ? void 0 : popover.offsetWidth) || 0;
|
|
403
|
-
switch (direction) {
|
|
404
|
-
case 'rtl':
|
|
405
|
-
return popoverWidth <= buttonRect.left
|
|
406
|
-
? buttonRect.right - popoverWidth
|
|
407
|
-
: buttonRect.left;
|
|
408
|
-
case 'ltr':
|
|
409
|
-
default:
|
|
410
|
-
return buttonRect.right + popoverWidth <= window.innerWidth
|
|
411
|
-
? buttonRect.left
|
|
412
|
-
: buttonRect.right - popoverWidth;
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
353
|
}
|
|
416
|
-
NggContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuComponent, deps: [{ token: i0.
|
|
417
|
-
NggContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggContextMenuComponent, selector: "ngg-context-menu", inputs: { direction: "direction", menuItems: "menuItems", menuItemTemplate: "menuItemTemplate", menuAnchorTemplate: "menuAnchorTemplate", closeOnScroll: "closeOnScroll" }, outputs: { contextMenuItemClicked: "contextMenuItemClicked" },
|
|
354
|
+
NggContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
355
|
+
NggContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggContextMenuComponent, selector: "ngg-context-menu", inputs: { direction: "direction", menuItems: "menuItems", menuItemTemplate: "menuItemTemplate", menuAnchorTemplate: "menuAnchorTemplate", closeOnScroll: "closeOnScroll" }, outputs: { contextMenuItemClicked: "contextMenuItemClicked" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["contextMenuPopover"], descendants: true }, { propertyName: "anchor", first: true, predicate: ["contextMenuAnchor"], descendants: true }], ngImport: i0, template: "<gds-context-menu\n *nggCoreElement\n data-testid=\"context-menu\"\n [placement]=\"placement\"\n [open]=\"isActive\"\n>\n <span slot=\"trigger\">\n <ng-container\n [ngTemplateOutlet]=\"menuAnchorTemplate ?? defaultButtonTemplate\"\n >\n </ng-container>\n </span>\n <ng-container *ngFor=\"let menuItem of menuItems\">\n <gds-menu-item *nggCoreElement (click)=\"onItemClick(menuItem)\">\n <ng-container\n [ngTemplateOutlet]=\"menuItemTemplate ?? defaultMenuItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"\n >\n </ng-container>\n </gds-menu-item>\n </ng-container>\n</gds-context-menu>\n\n<ng-template #defaultMenuItemTemplate let-menuItem>\n <span>{{ menuItem.label }}</span>\n</ng-template>\n\n<ng-template #defaultButtonTemplate>\n <i class=\"sg-icon sg-icon-ellipsis\">Open context menu</i>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NggCoreElementDirective, selector: "[nggCoreElement]" }] });
|
|
418
356
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuComponent, decorators: [{
|
|
419
357
|
type: Component,
|
|
420
|
-
args: [{ selector: 'ngg-context-menu', template: "<
|
|
421
|
-
}], ctorParameters: function () {
|
|
422
|
-
return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i2.Subject, decorators: [{
|
|
423
|
-
type: Optional
|
|
424
|
-
}, {
|
|
425
|
-
type: Inject,
|
|
426
|
-
args: [ON_SCROLL_TOKEN]
|
|
427
|
-
}] }];
|
|
428
|
-
}, propDecorators: { direction: [{
|
|
358
|
+
args: [{ selector: 'ngg-context-menu', template: "<gds-context-menu\n *nggCoreElement\n data-testid=\"context-menu\"\n [placement]=\"placement\"\n [open]=\"isActive\"\n>\n <span slot=\"trigger\">\n <ng-container\n [ngTemplateOutlet]=\"menuAnchorTemplate ?? defaultButtonTemplate\"\n >\n </ng-container>\n </span>\n <ng-container *ngFor=\"let menuItem of menuItems\">\n <gds-menu-item *nggCoreElement (click)=\"onItemClick(menuItem)\">\n <ng-container\n [ngTemplateOutlet]=\"menuItemTemplate ?? defaultMenuItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"\n >\n </ng-container>\n </gds-menu-item>\n </ng-container>\n</gds-context-menu>\n\n<ng-template #defaultMenuItemTemplate let-menuItem>\n <span>{{ menuItem.label }}</span>\n</ng-template>\n\n<ng-template #defaultButtonTemplate>\n <i class=\"sg-icon sg-icon-ellipsis\">Open context menu</i>\n</ng-template>\n" }]
|
|
359
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { direction: [{
|
|
429
360
|
type: Input
|
|
430
361
|
}], menuItems: [{
|
|
431
362
|
type: Input
|
|
@@ -443,22 +374,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
443
374
|
}], anchor: [{
|
|
444
375
|
type: ViewChild,
|
|
445
376
|
args: ['contextMenuAnchor']
|
|
446
|
-
}], onDocumentClick: [{
|
|
447
|
-
type: HostListener,
|
|
448
|
-
args: ['document:click', ['$event.target']]
|
|
449
377
|
}] } });
|
|
450
378
|
|
|
379
|
+
class NggCoreWrapperModule {
|
|
380
|
+
}
|
|
381
|
+
NggCoreWrapperModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreWrapperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
382
|
+
NggCoreWrapperModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggCoreWrapperModule, declarations: [NggCoreElementDirective], imports: [CommonModule], exports: [NggCoreElementDirective] });
|
|
383
|
+
NggCoreWrapperModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreWrapperModule, imports: [CommonModule] });
|
|
384
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreWrapperModule, decorators: [{
|
|
385
|
+
type: NgModule,
|
|
386
|
+
args: [{
|
|
387
|
+
declarations: [NggCoreElementDirective],
|
|
388
|
+
imports: [CommonModule],
|
|
389
|
+
exports: [NggCoreElementDirective],
|
|
390
|
+
}]
|
|
391
|
+
}] });
|
|
392
|
+
|
|
451
393
|
class NggContextMenuModule {
|
|
452
394
|
}
|
|
453
395
|
NggContextMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
454
|
-
NggContextMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuModule, declarations: [NggContextMenuComponent], imports: [CommonModule], exports: [NggContextMenuComponent] });
|
|
455
|
-
NggContextMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuModule, imports: [CommonModule] });
|
|
396
|
+
NggContextMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuModule, declarations: [NggContextMenuComponent], imports: [CommonModule, NggCoreWrapperModule], exports: [NggContextMenuComponent] });
|
|
397
|
+
NggContextMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuModule, imports: [CommonModule, NggCoreWrapperModule] });
|
|
456
398
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggContextMenuModule, decorators: [{
|
|
457
399
|
type: NgModule,
|
|
458
400
|
args: [{
|
|
459
401
|
declarations: [NggContextMenuComponent],
|
|
460
|
-
imports: [CommonModule],
|
|
402
|
+
imports: [CommonModule, NggCoreWrapperModule],
|
|
461
403
|
exports: [NggContextMenuComponent],
|
|
404
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
462
405
|
}]
|
|
463
406
|
}] });
|
|
464
407
|
|
|
@@ -490,35 +433,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
490
433
|
}]
|
|
491
434
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
492
435
|
|
|
493
|
-
class NggCoreElementDirective {
|
|
494
|
-
constructor() {
|
|
495
|
-
this.viewRef = null;
|
|
496
|
-
this.document = inject(DOCUMENT);
|
|
497
|
-
this.renderer = inject(Renderer2);
|
|
498
|
-
this.vcr = inject(ViewContainerRef);
|
|
499
|
-
this.cdr = inject(ChangeDetectorRef);
|
|
500
|
-
this.template = inject((TemplateRef));
|
|
501
|
-
}
|
|
502
|
-
ngOnInit() {
|
|
503
|
-
this.vcr.clear();
|
|
504
|
-
const originalCreateElement = this.renderer.createElement;
|
|
505
|
-
this.renderer.createElement = (name, _namespace) => {
|
|
506
|
-
return this.document.createElement(getScopedTagName(name));
|
|
507
|
-
};
|
|
508
|
-
this.viewRef = this.vcr.createEmbeddedView(this.template);
|
|
509
|
-
this.renderer.createElement = originalCreateElement;
|
|
510
|
-
this.cdr.markForCheck();
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
NggCoreElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
514
|
-
NggCoreElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NggCoreElementDirective, selector: "[nggCoreElement]", ngImport: i0 });
|
|
515
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreElementDirective, decorators: [{
|
|
516
|
-
type: Directive,
|
|
517
|
-
args: [{
|
|
518
|
-
selector: '[nggCoreElement]',
|
|
519
|
-
}]
|
|
520
|
-
}] });
|
|
521
|
-
|
|
522
436
|
class NggDropdownComponent {
|
|
523
437
|
constructor(injector, _cdr) {
|
|
524
438
|
this.injector = injector;
|
|
@@ -638,7 +552,7 @@ NggDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
638
552
|
useExisting: NggDropdownComponent,
|
|
639
553
|
multi: true,
|
|
640
554
|
},
|
|
641
|
-
], queries: [{ propertyName: "customOption", first: true, predicate: NggDropdownOptionDirective, descendants: true }, { propertyName: "customButton", first: true, predicate: NggDropdownButtonDirective, descendants: true }], viewQueries: [{ propertyName: "gdsDropdown", first: true, predicate: ["gdsDropdown"], descendants: true }], ngImport: i0, template: "<div class=\"form-group\">\n <gds-dropdown\n *nggCoreElement\n #gdsDropdown\n [value]=\"value\"\n [searchable]=\"searchable\"\n [label]=\"label\"\n (change)=\"onValueChange($event)\"\n [multiple]=\"multiSelect\"\n [invalid]=\"invalid\"\n [compareWith]=\"compareWithAdapter\"\n [searchFilter]=\"searchFilterAdapter\"\n >\n <span slot=\"message\" #formInfo\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n\n <span slot=\"trigger\"\n ><ng-container\n *ngTemplateOutlet=\"\n customButton?.templateRef && selectedOption\n ? customButton!.templateRef\n : defaultButton;\n context: { option: selectedOption }\n \"\n ></ng-container\n ></span>\n\n <ng-container *ngFor=\"let option of options; let index = index\">\n <gds-option *nggCoreElement [value]=\"option[useValue]\"\n ><ng-container\n *ngTemplateOutlet=\"\n customOption?.templateRef\n ? customOption!.templateRef\n : defaultOption;\n context: { option: option, index: index }\n \"\n ></ng-container\n ></gds-option>\n </ng-container>\n </gds-dropdown>\n</div>\n\n<ng-template #defaultButton let-selected=\"option\">\n <span>{{ texts?.select }}</span>\n</ng-template>\n\n<ng-template #defaultOption let-option=\"option\">\n {{ display ? option[display] : option.name }}\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NggCoreElementDirective, selector: "[nggCoreElement]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
555
|
+
], queries: [{ propertyName: "customOption", first: true, predicate: NggDropdownOptionDirective, descendants: true }, { propertyName: "customButton", first: true, predicate: NggDropdownButtonDirective, descendants: true }], viewQueries: [{ propertyName: "gdsDropdown", first: true, predicate: ["gdsDropdown"], descendants: true }], ngImport: i0, template: "<div class=\"form-group\">\n <gds-dropdown\n *nggCoreElement\n #gdsDropdown\n [value]=\"value\"\n [searchable]=\"searchable\"\n [label]=\"label\"\n (change)=\"onValueChange($event)\"\n [multiple]=\"multiSelect\"\n [invalid]=\"invalid\"\n [compareWith]=\"compareWithAdapter\"\n [searchFilter]=\"searchFilterAdapter\"\n >\n <span slot=\"message\" #formInfo\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n\n <span slot=\"trigger\"\n ><ng-container\n *ngTemplateOutlet=\"\n customButton?.templateRef && selectedOption\n ? customButton!.templateRef\n : defaultButton;\n context: { option: selectedOption }\n \"\n ></ng-container\n ></span>\n\n <ng-container *ngFor=\"let option of options; let index = index\">\n <gds-option *nggCoreElement [value]=\"option[useValue]\"\n ><ng-container\n *ngTemplateOutlet=\"\n customOption?.templateRef\n ? customOption!.templateRef\n : defaultOption;\n context: { option: option, index: index }\n \"\n ></ng-container\n ></gds-option>\n </ng-container>\n </gds-dropdown>\n</div>\n\n<ng-template #defaultButton let-selected=\"option\">\n <span class=\"trigger\">{{ texts?.select }}</span>\n</ng-template>\n\n<ng-template #defaultOption let-option=\"option\">\n {{ display ? option[display] : option.name }}\n</ng-template>\n", styles: [".trigger{display:block;overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NggCoreElementDirective, selector: "[nggCoreElement]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
642
556
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggDropdownComponent, decorators: [{
|
|
643
557
|
type: Component,
|
|
644
558
|
args: [{ selector: 'ngg-dropdown', providers: [
|
|
@@ -647,7 +561,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
647
561
|
useExisting: NggDropdownComponent,
|
|
648
562
|
multi: true,
|
|
649
563
|
},
|
|
650
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n <gds-dropdown\n *nggCoreElement\n #gdsDropdown\n [value]=\"value\"\n [searchable]=\"searchable\"\n [label]=\"label\"\n (change)=\"onValueChange($event)\"\n [multiple]=\"multiSelect\"\n [invalid]=\"invalid\"\n [compareWith]=\"compareWithAdapter\"\n [searchFilter]=\"searchFilterAdapter\"\n >\n <span slot=\"message\" #formInfo\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n\n <span slot=\"trigger\"\n ><ng-container\n *ngTemplateOutlet=\"\n customButton?.templateRef && selectedOption\n ? customButton!.templateRef\n : defaultButton;\n context: { option: selectedOption }\n \"\n ></ng-container\n ></span>\n\n <ng-container *ngFor=\"let option of options; let index = index\">\n <gds-option *nggCoreElement [value]=\"option[useValue]\"\n ><ng-container\n *ngTemplateOutlet=\"\n customOption?.templateRef\n ? customOption!.templateRef\n : defaultOption;\n context: { option: option, index: index }\n \"\n ></ng-container\n ></gds-option>\n </ng-container>\n </gds-dropdown>\n</div>\n\n<ng-template #defaultButton let-selected=\"option\">\n <span>{{ texts?.select }}</span>\n</ng-template>\n\n<ng-template #defaultOption let-option=\"option\">\n {{ display ? option[display] : option.name }}\n</ng-template>\n" }]
|
|
564
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\">\n <gds-dropdown\n *nggCoreElement\n #gdsDropdown\n [value]=\"value\"\n [searchable]=\"searchable\"\n [label]=\"label\"\n (change)=\"onValueChange($event)\"\n [multiple]=\"multiSelect\"\n [invalid]=\"invalid\"\n [compareWith]=\"compareWithAdapter\"\n [searchFilter]=\"searchFilterAdapter\"\n >\n <span slot=\"message\" #formInfo\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n\n <span slot=\"trigger\"\n ><ng-container\n *ngTemplateOutlet=\"\n customButton?.templateRef && selectedOption\n ? customButton!.templateRef\n : defaultButton;\n context: { option: selectedOption }\n \"\n ></ng-container\n ></span>\n\n <ng-container *ngFor=\"let option of options; let index = index\">\n <gds-option *nggCoreElement [value]=\"option[useValue]\"\n ><ng-container\n *ngTemplateOutlet=\"\n customOption?.templateRef\n ? customOption!.templateRef\n : defaultOption;\n context: { option: option, index: index }\n \"\n ></ng-container\n ></gds-option>\n </ng-container>\n </gds-dropdown>\n</div>\n\n<ng-template #defaultButton let-selected=\"option\">\n <span class=\"trigger\">{{ texts?.select }}</span>\n</ng-template>\n\n<ng-template #defaultOption let-option=\"option\">\n {{ display ? option[display] : option.name }}\n</ng-template>\n", styles: [".trigger{display:block;overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}\n"] }]
|
|
651
565
|
}], ctorParameters: function () {
|
|
652
566
|
return [{ type: i0.Injector, decorators: [{
|
|
653
567
|
type: Inject,
|
|
@@ -890,20 +804,6 @@ function dateValidator(dates) {
|
|
|
890
804
|
};
|
|
891
805
|
}
|
|
892
806
|
|
|
893
|
-
class NggCoreWrapperModule {
|
|
894
|
-
}
|
|
895
|
-
NggCoreWrapperModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreWrapperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
896
|
-
NggCoreWrapperModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggCoreWrapperModule, declarations: [NggCoreElementDirective], imports: [CommonModule], exports: [NggCoreElementDirective] });
|
|
897
|
-
NggCoreWrapperModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreWrapperModule, imports: [CommonModule] });
|
|
898
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggCoreWrapperModule, decorators: [{
|
|
899
|
-
type: NgModule,
|
|
900
|
-
args: [{
|
|
901
|
-
declarations: [NggCoreElementDirective],
|
|
902
|
-
imports: [CommonModule],
|
|
903
|
-
exports: [NggCoreElementDirective],
|
|
904
|
-
}]
|
|
905
|
-
}] });
|
|
906
|
-
|
|
907
807
|
class NggDropdownModule {
|
|
908
808
|
}
|
|
909
809
|
NggDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -1371,6 +1271,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
1371
1271
|
}]
|
|
1372
1272
|
}] });
|
|
1373
1273
|
|
|
1274
|
+
const ON_SCROLL_TOKEN = new InjectionToken('ON_SCROLL_TOKEN');
|
|
1275
|
+
class NggOnScrollDirective {
|
|
1276
|
+
constructor(elementRef) {
|
|
1277
|
+
this.elementRef = elementRef;
|
|
1278
|
+
this.onScroll$ = new Subject();
|
|
1279
|
+
this.destroy$ = new Subject();
|
|
1280
|
+
}
|
|
1281
|
+
ngAfterViewInit() {
|
|
1282
|
+
var _a;
|
|
1283
|
+
if (this.elementRef) {
|
|
1284
|
+
fromEvent((_a = this.elementRef) === null || _a === void 0 ? void 0 : _a.nativeElement, 'scroll')
|
|
1285
|
+
.pipe(takeUntil(this.destroy$), throttle(() => interval(30)))
|
|
1286
|
+
.subscribe(() => {
|
|
1287
|
+
this.onScroll$.next();
|
|
1288
|
+
});
|
|
1289
|
+
}
|
|
1290
|
+
}
|
|
1291
|
+
ngOnDestroy() {
|
|
1292
|
+
this.destroy$.next(null);
|
|
1293
|
+
this.destroy$.complete();
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
NggOnScrollDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggOnScrollDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1297
|
+
NggOnScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NggOnScrollDirective, selector: "[nggOnScroll]", providers: [
|
|
1298
|
+
{
|
|
1299
|
+
provide: ON_SCROLL_TOKEN,
|
|
1300
|
+
useFactory: (component) => component === null || component === void 0 ? void 0 : component.onScroll$,
|
|
1301
|
+
deps: [NggOnScrollDirective],
|
|
1302
|
+
},
|
|
1303
|
+
], ngImport: i0 });
|
|
1304
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggOnScrollDirective, decorators: [{
|
|
1305
|
+
type: Directive,
|
|
1306
|
+
args: [{
|
|
1307
|
+
selector: '[nggOnScroll]',
|
|
1308
|
+
providers: [
|
|
1309
|
+
{
|
|
1310
|
+
provide: ON_SCROLL_TOKEN,
|
|
1311
|
+
useFactory: (component) => component === null || component === void 0 ? void 0 : component.onScroll$,
|
|
1312
|
+
deps: [NggOnScrollDirective],
|
|
1313
|
+
},
|
|
1314
|
+
],
|
|
1315
|
+
}]
|
|
1316
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
|
|
1317
|
+
|
|
1374
1318
|
class NggSharedModule {
|
|
1375
1319
|
}
|
|
1376
1320
|
NggSharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -1451,7 +1395,7 @@ NggSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
1451
1395
|
useExisting: NggSliderComponent,
|
|
1452
1396
|
multi: true,
|
|
1453
1397
|
},
|
|
1454
|
-
], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!!label\" class=\"gds-slider-label-container\">\n <div>\n <label [attr.for]=\"name\" [attr.id]=\"name + '-label'\">{{ label }}</label>\n <p *ngIf=\"!!instruction\">{{ instruction }}</p>\n </div>\n <ng-container *ngIf=\"hasTextbox\">\n <ng-container *ngIf=\"!!unitLabel\">\n <div class=\"group group-border group-focus\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n <span class=\"form-text\">{{ unitLabel }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!unitLabel\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<input\n type=\"range\"\n [attr.id]=\"name\"\n [attr.name]=\"name\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"style\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n/>\n\n<p *ngIf=\"!!errorMessage\" class=\"gds-slider-error-info\">\n {{ errorMessage }}\n</p>\n\n<ng-template #inputField>\n <input\n type=\"text\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n [(ngModel)]=\"value\"\n [class.is-invalid]=\"!!errorMessage\"\n [attr.name]=\"name\"\n [attr.id]=\"name + '-textbox'\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-labelledby]=\"name + '-label'\"\n [attr.enterkeyhint]=\"enterkeyhint\"\n [disabled]=\"disabled\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n />\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2
|
|
1398
|
+
], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!!label\" class=\"gds-slider-label-container\">\n <div>\n <label [attr.for]=\"name\" [attr.id]=\"name + '-label'\">{{ label }}</label>\n <p *ngIf=\"!!instruction\">{{ instruction }}</p>\n </div>\n <ng-container *ngIf=\"hasTextbox\">\n <ng-container *ngIf=\"!!unitLabel\">\n <div class=\"group group-border group-focus\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n <span class=\"form-text\">{{ unitLabel }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!unitLabel\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<input\n type=\"range\"\n [attr.id]=\"name\"\n [attr.name]=\"name\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"style\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n/>\n\n<p *ngIf=\"!!errorMessage\" class=\"gds-slider-error-info\">\n {{ errorMessage }}\n</p>\n\n<ng-template #inputField>\n <input\n type=\"text\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n [(ngModel)]=\"value\"\n [class.is-invalid]=\"!!errorMessage\"\n [attr.name]=\"name\"\n [attr.id]=\"name + '-textbox'\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-labelledby]=\"name + '-label'\"\n [attr.enterkeyhint]=\"enterkeyhint\"\n [disabled]=\"disabled\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n />\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1455
1399
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSliderComponent, decorators: [{
|
|
1456
1400
|
type: Component,
|
|
1457
1401
|
args: [{ selector: 'ngg-slider', providers: [
|