@corto-ai/gds-angular 2.1.3-dev.1 → 2.1.3-dev.3
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/README.md +5 -5
- package/assets/css/acctivity.css +5 -5
- package/assets/css/all.css +5 -5
- package/assets/css/corto.css +5 -5
- package/assets/css/lawy.css +5 -5
- package/assets/css/leap.css +5 -5
- package/assets/scss/fonts/_inter.scss +1 -1
- package/assets/scss/fonts/_satoshi-black.scss +6 -6
- package/assets/scss/fonts/_satoshi-bold.scss +6 -6
- package/assets/scss/fonts/_satoshi-light.scss +6 -6
- package/assets/scss/fonts/_satoshi-medium.scss +6 -6
- package/assets/scss/fonts/_satoshi-regular.scss +6 -6
- package/assets/scss/fonts/_satoshi-variable.scss +6 -6
- package/assets/svg/filled/filled-document-multiple.svg +3 -1
- package/fesm2022/corto-ai-gds-angular.mjs +398 -126
- package/fesm2022/corto-ai-gds-angular.mjs.map +1 -1
- package/package.json +22 -12
- package/types/corto-ai-gds-angular.d.ts +85 -41
|
@@ -1,25 +1,23 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, inject, signal, Injector, input, viewChild, effect, afterNextRender, ChangeDetectionStrategy, Component, model, booleanAttribute, computed, ElementRef, output, Directive, contentChild, DestroyRef, Renderer2, Input, ChangeDetectorRef, EventEmitter, NgZone, Output, DOCUMENT, HostBinding,
|
|
2
|
+
import { Injectable, inject, signal, Injector, input, viewChild, effect, afterNextRender, ChangeDetectionStrategy, Component, model, booleanAttribute, computed, ElementRef, output, Directive, contentChild, DestroyRef, Renderer2, InjectionToken, Input, ChangeDetectorRef, EventEmitter, NgZone, Output, DOCUMENT, HostBinding, EnvironmentInjector, ApplicationRef, createComponent, Pipe, contentChildren, ViewEncapsulation, untracked, ViewContainerRef, runInInjectionContext, TemplateRef, numberAttribute, HostListener, provideAppInitializer, NgModule } from '@angular/core';
|
|
3
3
|
import { injectRegisterIcons, SvgIconRegistry, SvgIconComponent, provideSvgIconsConfig } from '@ngneat/svg-icon';
|
|
4
4
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
5
5
|
import * as i1 from '@ngneat/helipopper';
|
|
6
6
|
import { TippyDirective } from '@ngneat/helipopper';
|
|
7
7
|
import { NgClass, NgTemplateOutlet, TitleCasePipe, DOCUMENT as DOCUMENT$1, CommonModule } from '@angular/common';
|
|
8
8
|
import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
|
|
9
|
-
import { Subject, tap, debounceTime, fromEvent, take } from 'rxjs';
|
|
10
|
-
import {
|
|
11
|
-
import { BrandEnum, GdsContextMenuItemVariantEnum } from '@corto/utils/types';
|
|
9
|
+
import { Subject, tap, debounceTime, fromEvent, take, map } from 'rxjs';
|
|
10
|
+
import { format, intervalToDuration } from 'date-fns';
|
|
12
11
|
import * as i1$2 from '@angular/cdk/a11y';
|
|
13
12
|
import { FocusKeyManager, CdkTrapFocus, A11yModule } from '@angular/cdk/a11y';
|
|
14
13
|
import * as i1$1 from '@angular/cdk/menu';
|
|
15
14
|
import { CdkMenuItem, CdkMenuTrigger, CdkMenuItemCheckbox, MENU_TRIGGER, CdkMenu, CdkTargetMenuAim } from '@angular/cdk/menu';
|
|
16
15
|
import { FormField } from '@angular/forms/signals';
|
|
17
16
|
import { v4 } from 'uuid';
|
|
18
|
-
import { format, intervalToDuration } from 'date-fns';
|
|
19
17
|
import { OverlayModule } from '@angular/cdk/overlay';
|
|
20
18
|
import * as i1$3 from '@ngx-translate/core';
|
|
21
19
|
import { TranslatePipe, TranslateModule } from '@ngx-translate/core';
|
|
22
|
-
import {
|
|
20
|
+
import { DeviceDetectorService } from 'ngx-device-detector';
|
|
23
21
|
import { MAT_DATE_LOCALE, provideNativeDateAdapter } from '@angular/material/core';
|
|
24
22
|
import * as i1$4 from '@angular/material/datepicker';
|
|
25
23
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
@@ -27,8 +25,7 @@ import * as i1$5 from '@angular/forms';
|
|
|
27
25
|
import { FormsModule } from '@angular/forms';
|
|
28
26
|
import * as i2 from '@ng-select/ng-select';
|
|
29
27
|
import { NgSelectComponent, NgLabelTemplateDirective, NgMultiLabelTemplateDirective, NgFooterTemplateDirective, NgClearButtonTemplateDirective, NgOptionTemplateDirective, NgPlaceholderTemplateDirective, NgSelectModule } from '@ng-select/ng-select';
|
|
30
|
-
import {
|
|
31
|
-
import { computedPrevious } from '@corto/utils/signals';
|
|
28
|
+
import { BreakpointObserver } from '@angular/cdk/layout';
|
|
32
29
|
import * as i1$6 from 'ngx-toastr';
|
|
33
30
|
import { ToastNoAnimation, provideToastr } from 'ngx-toastr';
|
|
34
31
|
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
|
@@ -855,7 +852,7 @@ const gdsFilledDetailsIcon = {
|
|
|
855
852
|
name: 'filled-details'
|
|
856
853
|
};
|
|
857
854
|
const gdsFilledDocumentMultipleIcon = {
|
|
858
|
-
data: `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 4.25C4 3.00736 5.00736 2 6.25 2H10.5039V6.74753C10.5039 7.99017 11.5113 8.99753 12.7539 8.99753H17.5V17.25C17.5 18.4926 16.4926 19.5 15.25 19.5H6.25C5.00736 19.5 4 18.4926 4 17.25V4.
|
|
855
|
+
data: `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 4.25C4 3.00736 5.00736 2 6.25 2H10.5039V6.74753C10.5039 7.99017 11.5113 8.99753 12.7539 8.99753H17.5V17.25C17.5 18.4926 16.4926 19.5 15.25 19.5H6.25C5.00736 19.5 4 18.4926 4 17.25V4.25Z" fill="currentColor"/><path d="M12.0039 6.74753V2.46728C12.0803 2.52611 12.1532 2.59009 12.2221 2.65901L16.841 7.27786C16.9103 7.34721 16.9747 7.42062 17.0338 7.49753H12.7539C12.3397 7.49753 12.0039 7.16174 12.0039 6.74753Z" fill="currentColor"/><path d="M8.75088 22C7.77121 22 6.93778 21.3739 6.62891 20.5H15.2509C17.0458 20.5 18.5009 19.0449 18.5009 17.25V8.93689L19.3419 9.77788C19.7638 10.1998 20.0009 10.7721 20.0009 11.3689V17.25C20.0009 19.8734 17.8742 22 15.2509 22H8.75088Z" fill="currentColor"/></svg>`,
|
|
859
856
|
name: 'filled-document-multiple'
|
|
860
857
|
};
|
|
861
858
|
const gdsFilledDocumentTableIcon = {
|
|
@@ -3809,6 +3806,9 @@ class ButtonBaseDirective {
|
|
|
3809
3806
|
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
3810
3807
|
size = input('default', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
3811
3808
|
variant = input('default', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
3809
|
+
// Safari does not set buttons as tabbable by default.
|
|
3810
|
+
// To keep same behavior as chrome, set the tabIndex to 0 by default.
|
|
3811
|
+
tabIndex = input(0, ...(ngDevMode ? [{ debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
3812
3812
|
clicked = output();
|
|
3813
3813
|
isDisabled = computed(() => this.disabled() || this.busy(), ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
3814
3814
|
nativeElement = this.#elementRef.nativeElement;
|
|
@@ -3818,7 +3818,7 @@ class ButtonBaseDirective {
|
|
|
3818
3818
|
this.clicked.emit(event);
|
|
3819
3819
|
}
|
|
3820
3820
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ButtonBaseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3821
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.17", type: ButtonBaseDirective, isStandalone: true, inputs: { busy: { classPropertyName: "busy", publicName: "busy", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { attributes: { "type": "button" }, listeners: { "click": "handleClick($event)" }, properties: { "attr.disabled": "isDisabled() ? \"\" : undefined", "attr.data-size": "size()", "attr.data-variant": "variant()", "attr.data-busy": "busy() ? \"\" : undefined" } }, ngImport: i0 });
|
|
3821
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.17", type: ButtonBaseDirective, isStandalone: true, inputs: { busy: { classPropertyName: "busy", publicName: "busy", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { attributes: { "type": "button" }, listeners: { "click": "handleClick($event)" }, properties: { "attr.disabled": "isDisabled() ? \"\" : undefined", "attr.tabindex": "tabIndex()", "attr.data-size": "size()", "attr.data-variant": "variant()", "attr.data-busy": "busy() ? \"\" : undefined" } }, ngImport: i0 });
|
|
3822
3822
|
}
|
|
3823
3823
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ButtonBaseDirective, decorators: [{
|
|
3824
3824
|
type: Directive,
|
|
@@ -3829,6 +3829,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
3829
3829
|
// https://www.a11yproject.com/checklist/#use-the-button-element-for-buttons
|
|
3830
3830
|
type: 'button',
|
|
3831
3831
|
'[attr.disabled]': 'isDisabled() ? "" : undefined',
|
|
3832
|
+
'[attr.tabindex]': 'tabIndex()',
|
|
3832
3833
|
// Custom attributes for CSS
|
|
3833
3834
|
'[attr.data-size]': 'size()',
|
|
3834
3835
|
'[attr.data-variant]': 'variant()',
|
|
@@ -3837,7 +3838,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
3837
3838
|
'(click)': 'handleClick($event)'
|
|
3838
3839
|
}
|
|
3839
3840
|
}]
|
|
3840
|
-
}], propDecorators: { busy: [{ type: i0.Input, args: [{ isSignal: true, alias: "busy", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], clicked: [{ type: i0.Output, args: ["clicked"] }] } });
|
|
3841
|
+
}], propDecorators: { busy: [{ type: i0.Input, args: [{ isSignal: true, alias: "busy", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], clicked: [{ type: i0.Output, args: ["clicked"] }] } });
|
|
3841
3842
|
|
|
3842
3843
|
class GdsButtonComponent extends ButtonBaseDirective {
|
|
3843
3844
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GdsButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -3877,6 +3878,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
3877
3878
|
}, template: "<div\n class=\"\n gds-display-flex\n gds-flex-column\n gds-gap-xs\n \"\n [ngClass]=\"{ 'gds-gap-xs': state() === 'expanded' }\"\n>\n <div class=\"\n gds-align-items-center\n gds-display-flex\n gds-gap-2xs\n \">\n <gds-icon\n [key]=\"iconKey()\"\n class=\"\n gds-icon-size-xs\n gds-text-primary-primary\n \"\n />\n <span class=\"\n gds-text-body-strong\n gds-text-primary-primary\n label\n \"> {{ label() }} </span>\n @if (btnLabel()) {\n <button\n gds-button\n variant=\"primary\"\n (clicked)=\"actionBtnClick.emit()\"\n >\n {{ btnLabel() }}\n </button>\n }\n <button\n gds-icon-button\n size=\"small\"\n class=\"gds-background-none\"\n aria-label=\"Close\"\n (clicked)=\"state.set('hidden')\"\n >\n <gds-icon\n class=\"\n gds-icon-size-3xs\n icon\n \"\n key=\"line-dismiss\"\n />\n </button>\n </div>\n @if (contentExpanded()) {\n <div\n class=\"content\"\n animate.enter=\"gds-expand-vertical\"\n >\n <ng-content />\n </div>\n }\n</div>\n", styles: ["@layer design-system{:host{--banner-radius: var(--gds-borderRadius-sm)}:host[expanded]{--banner-radius: var(--gds-borderRadius-md)}:host{padding:var(--gds-spacing-2xs);width:100%;background:var(--gds-palette-background-chat);border-radius:var(--banner-radius);display:block}:host[hidden]{display:none}:host .label{margin-right:auto}:host .content{overflow:hidden}}\n"] }]
|
|
3878
3879
|
}], propDecorators: { iconKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconKey", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], btnLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "btnLabel", required: false }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }, { type: i0.Output, args: ["stateChange"] }], actionBtnClick: [{ type: i0.Output, args: ["actionBtnClick"] }] } });
|
|
3879
3880
|
|
|
3881
|
+
const DEBOUNCE_DURATION = {
|
|
3882
|
+
instant: 0, // prevent duplicate events that arrive at the exact same time
|
|
3883
|
+
userInput: 300, // user interactions (keyboard input, clicking, etc.)
|
|
3884
|
+
userInputLong: 1000, // longer duration for user interactions that may take more time
|
|
3885
|
+
browserEvent: 300, // browser dispatched events (ResizeObserver, OnScroll, etc.)
|
|
3886
|
+
loadingTimeout: 1000, // invoke an action if loading takes longer than this duration
|
|
3887
|
+
pubsubEvent: 300,
|
|
3888
|
+
pubsubEventLong: 1000
|
|
3889
|
+
};
|
|
3890
|
+
|
|
3880
3891
|
class GdsBreadcrumbsComponent {
|
|
3881
3892
|
ellipsisTmpl = contentChild('ellipsisTmpl', ...(ngDevMode ? [{ debugName: "ellipsisTmpl" }] : /* istanbul ignore next */ []));
|
|
3882
3893
|
path = viewChild('path', ...(ngDevMode ? [{ debugName: "path" }] : /* istanbul ignore next */ []));
|
|
@@ -3957,6 +3968,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
3957
3968
|
args: [{ selector: 'gds-breadcrumbs', imports: [NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #ellipsis\n class=\"gds-breadcrumbs_ellipsis-container\"\n>\n <ng-container *ngTemplateOutlet=\"ellipsisTmpl() ?? defaultEllipsisTmpl\" />\n</div>\n<div\n #path\n class=\"gds-breadcrumbs_container\"\n>\n <ng-content />\n</div>\n\n<ng-template #defaultEllipsisTmpl> ... </ng-template>\n", styles: ["@layer design-system{:host{width:100%;display:flex}:host .gds-breadcrumbs_container{display:flex;align-items:center;flex:1;min-width:0}:host .gds-breadcrumbs_ellipsis-container{display:flex;align-items:center;max-width:fit-content;max-height:fit-content}}\n"] }]
|
|
3958
3969
|
}], ctorParameters: () => [], propDecorators: { ellipsisTmpl: [{ type: i0.ContentChild, args: ['ellipsisTmpl', { isSignal: true }] }], path: [{ type: i0.ViewChild, args: ['path', { isSignal: true }] }], ellipsis: [{ type: i0.ViewChild, args: ['ellipsis', { isSignal: true }] }] } });
|
|
3959
3970
|
|
|
3971
|
+
const gdsButtonVariants = ['default', 'primary', 'invisible'];
|
|
3972
|
+
const gdsButtonSizes = ['small', 'default', 'medium', 'large'];
|
|
3973
|
+
|
|
3974
|
+
const ngSelectDropdownPositions = ['auto', 'bottom', 'top', 'left', 'right'];
|
|
3975
|
+
|
|
3976
|
+
const gdsDropdownPositionsX = ['auto', 'left', 'right'];
|
|
3977
|
+
const gdsDropdownPositionsY = ['auto', 'top', 'bottom'];
|
|
3978
|
+
|
|
3979
|
+
const CDN_URL = new InjectionToken('CDN_URL', {
|
|
3980
|
+
factory: () => 'https://cdn.cortoaws.com'
|
|
3981
|
+
});
|
|
3982
|
+
|
|
3983
|
+
const gdsUserPromptSecondaryTextVariants = ['default', 'error'];
|
|
3984
|
+
|
|
3985
|
+
// NOTE: Duplicated from libs/utils/src/types/brand.ts — keep in sync.
|
|
3986
|
+
const GDS_BRANDS = {
|
|
3987
|
+
Corto: 'corto',
|
|
3988
|
+
CortoDark: 'corto dark',
|
|
3989
|
+
LawY: 'lawy',
|
|
3990
|
+
Acctivity: 'acctivity',
|
|
3991
|
+
Leap: 'leap',
|
|
3992
|
+
StandardIntegration: 'standardIntegration'
|
|
3993
|
+
};
|
|
3994
|
+
// Back-compat alias: keeps `import { BrandEnum } from '@corto/gds'` working (see GettingStarted.mdx)
|
|
3995
|
+
// without it being a second nominal `enum`. Exported in both the value and type namespace so both
|
|
3996
|
+
// `BrandEnum.Leap` (value) and `brand: BrandEnum` (type) keep working.
|
|
3997
|
+
const BrandEnum = GDS_BRANDS;
|
|
3998
|
+
|
|
3999
|
+
var GdsContextMenuItemVariantEnum;
|
|
4000
|
+
(function (GdsContextMenuItemVariantEnum) {
|
|
4001
|
+
GdsContextMenuItemVariantEnum["Default"] = "default";
|
|
4002
|
+
GdsContextMenuItemVariantEnum["Radio"] = "radio";
|
|
4003
|
+
GdsContextMenuItemVariantEnum["Check"] = "check";
|
|
4004
|
+
GdsContextMenuItemVariantEnum["Indent"] = "indent";
|
|
4005
|
+
GdsContextMenuItemVariantEnum["DoubleIndent"] = "double-indent";
|
|
4006
|
+
GdsContextMenuItemVariantEnum["Heading"] = "heading";
|
|
4007
|
+
GdsContextMenuItemVariantEnum["Switch"] = "switch";
|
|
4008
|
+
})(GdsContextMenuItemVariantEnum || (GdsContextMenuItemVariantEnum = {}));
|
|
4009
|
+
|
|
3960
4010
|
const chipTypes = [
|
|
3961
4011
|
'current',
|
|
3962
4012
|
'in progress',
|
|
@@ -4046,20 +4096,99 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
4046
4096
|
type: Input
|
|
4047
4097
|
}] } });
|
|
4048
4098
|
|
|
4099
|
+
const formatDate = (value, option) => {
|
|
4100
|
+
if (!value) {
|
|
4101
|
+
return undefined;
|
|
4102
|
+
}
|
|
4103
|
+
const isString = typeof value === 'string';
|
|
4104
|
+
if (isString && isNaN(Date.parse(value))) {
|
|
4105
|
+
return undefined;
|
|
4106
|
+
}
|
|
4107
|
+
const dateValue = isString ? new Date(value) : value;
|
|
4108
|
+
return format(dateValue, option);
|
|
4109
|
+
};
|
|
4110
|
+
const shortDate = (value) => formatDate(value, 'P');
|
|
4111
|
+
const shortDateTime = (value) => formatDate(value, 'Pp');
|
|
4112
|
+
const transformDateFormat = (value) => {
|
|
4113
|
+
let dateFormat = value;
|
|
4114
|
+
if (value.includes('yyyy')) {
|
|
4115
|
+
dateFormat = dateFormat.replace('yyyy', 'yy');
|
|
4116
|
+
}
|
|
4117
|
+
else if (value.includes('yy')) {
|
|
4118
|
+
dateFormat = dateFormat.replace('yy', 'y');
|
|
4119
|
+
}
|
|
4120
|
+
if (value.includes('MMMM')) {
|
|
4121
|
+
dateFormat = dateFormat.replace('MMMM', 'MM');
|
|
4122
|
+
}
|
|
4123
|
+
else if (value.includes('MMM')) {
|
|
4124
|
+
dateFormat = dateFormat.replace('MMM', 'M');
|
|
4125
|
+
}
|
|
4126
|
+
else if (value.includes('MM')) {
|
|
4127
|
+
dateFormat = dateFormat.replace('MM', 'mm');
|
|
4128
|
+
}
|
|
4129
|
+
else if (value.includes('M')) {
|
|
4130
|
+
dateFormat = dateFormat.replace('M', 'm');
|
|
4131
|
+
}
|
|
4132
|
+
return dateFormat;
|
|
4133
|
+
};
|
|
4134
|
+
const transformSecondsToDuration = (seconds) => {
|
|
4135
|
+
const duration = intervalToDuration({ start: 0, end: seconds * 1000 });
|
|
4136
|
+
const zeroPad = (val) => String(val).padStart(2, '0');
|
|
4137
|
+
const hours = (duration.days ?? 0) * 24 + (duration.hours ?? 0);
|
|
4138
|
+
const minutes = duration.minutes ?? 0;
|
|
4139
|
+
const secs = duration.seconds ?? 0;
|
|
4140
|
+
return [hours, minutes, secs].map(zeroPad).join(':');
|
|
4141
|
+
};
|
|
4142
|
+
const transformDurationToSeconds = (duration) => {
|
|
4143
|
+
const [hour, minute, second] = duration.split(':');
|
|
4144
|
+
return +hour * 3600 + +minute * 60 + +second;
|
|
4145
|
+
};
|
|
4146
|
+
// can't just use Date.toISOString() as that takes into account
|
|
4147
|
+
// the time zone, so it was using the incorrect date
|
|
4148
|
+
const formatToISO = (date) => {
|
|
4149
|
+
if (!date) {
|
|
4150
|
+
return undefined;
|
|
4151
|
+
}
|
|
4152
|
+
return format(date, "yyyy-MM-dd'T'HH:mm:ss.sss'Z'");
|
|
4153
|
+
};
|
|
4154
|
+
const parseLocalizedDate = (dateString) => {
|
|
4155
|
+
if (navigator.language === 'en-US') {
|
|
4156
|
+
return new Date(dateString);
|
|
4157
|
+
}
|
|
4158
|
+
// parse dd/MM/yyyy date strings for use with Date
|
|
4159
|
+
const split = dateString.split('/');
|
|
4160
|
+
if (split.length !== 3) {
|
|
4161
|
+
throw new Error(`Invalid date ${dateString}`);
|
|
4162
|
+
}
|
|
4163
|
+
const [day, month, year] = split;
|
|
4164
|
+
return new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
|
|
4165
|
+
};
|
|
4166
|
+
|
|
4167
|
+
const getIconsByPrefix = (prefix) => Object.values(icons).reduce((acc, curr) => {
|
|
4168
|
+
if (curr.name.startsWith(prefix)) {
|
|
4169
|
+
acc.push(curr.name);
|
|
4170
|
+
return acc;
|
|
4171
|
+
}
|
|
4172
|
+
return acc;
|
|
4173
|
+
}, []);
|
|
4174
|
+
|
|
4175
|
+
const GDS_BRAND_VALUES = Object.values(GDS_BRANDS);
|
|
4176
|
+
const isGdsBrand = (value) => value !== null && value !== undefined && GDS_BRAND_VALUES.includes(value);
|
|
4177
|
+
|
|
4049
4178
|
class OnBrandChanged {
|
|
4050
4179
|
#observer;
|
|
4051
4180
|
#cdr = inject(ChangeDetectorRef);
|
|
4052
|
-
brand = signal(
|
|
4053
|
-
brandIsExternal = computed(() => [
|
|
4181
|
+
brand = signal(GDS_BRANDS.Corto, ...(ngDevMode ? [{ debugName: "brand" }] : /* istanbul ignore next */ []));
|
|
4182
|
+
brandIsExternal = computed(() => [GDS_BRANDS.StandardIntegration, GDS_BRANDS.Leap].includes(this.brand()), ...(ngDevMode ? [{ debugName: "brandIsExternal" }] : /* istanbul ignore next */ []));
|
|
4054
4183
|
constructor() {
|
|
4055
|
-
this
|
|
4184
|
+
this.#setBrandFromDocument();
|
|
4056
4185
|
this.onBrandChanged?.();
|
|
4057
4186
|
}
|
|
4058
4187
|
ngOnInit() {
|
|
4059
4188
|
this.#observer = new MutationObserver((mutations) => {
|
|
4060
4189
|
mutations.forEach((mutation) => {
|
|
4061
4190
|
if (mutation.type === 'attributes' && mutation.attributeName === 'brand') {
|
|
4062
|
-
this
|
|
4191
|
+
this.#setBrandFromDocument();
|
|
4063
4192
|
this.onBrandChanged?.();
|
|
4064
4193
|
this.#cdr.markForCheck();
|
|
4065
4194
|
}
|
|
@@ -4067,6 +4196,10 @@ class OnBrandChanged {
|
|
|
4067
4196
|
});
|
|
4068
4197
|
this.#observer.observe(document.body, { attributes: true, attributeFilter: ['brand'] });
|
|
4069
4198
|
}
|
|
4199
|
+
#setBrandFromDocument() {
|
|
4200
|
+
const documentBrand = document.body.getAttribute('brand');
|
|
4201
|
+
this.brand.set(isGdsBrand(documentBrand) ? documentBrand : GDS_BRANDS.Corto);
|
|
4202
|
+
}
|
|
4070
4203
|
ngOnDestroy() {
|
|
4071
4204
|
if (this.#observer) {
|
|
4072
4205
|
this.#observer.disconnect();
|
|
@@ -4386,7 +4519,7 @@ class GdsTooltipComponent extends OnBrandChanged {
|
|
|
4386
4519
|
open = input(false, { ...(ngDevMode ? { debugName: "open" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
4387
4520
|
maxWidth = input('100vw', ...(ngDevMode ? [{ debugName: "maxWidth" }] : /* istanbul ignore next */ []));
|
|
4388
4521
|
appendTo = input(this.#document.body, ...(ngDevMode ? [{ debugName: "appendTo" }] : /* istanbul ignore next */ []));
|
|
4389
|
-
tooltipVariation = computed(() => (this.brand() ===
|
|
4522
|
+
tooltipVariation = computed(() => (this.brand() === GDS_BRANDS.CortoDark ? 'dark' : 'light'), ...(ngDevMode ? [{ debugName: "tooltipVariation" }] : /* istanbul ignore next */ []));
|
|
4390
4523
|
tippyDirective = viewChild.required(TippyDirective);
|
|
4391
4524
|
span = viewChild.required('span');
|
|
4392
4525
|
get isOverflowing() {
|
|
@@ -4425,8 +4558,8 @@ class GdsChipComponent extends OnBrandChanged {
|
|
|
4425
4558
|
color = input(...(ngDevMode ? [undefined, { debugName: "color" }] : /* istanbul ignore next */ []));
|
|
4426
4559
|
rounded = input(false, { ...(ngDevMode ? { debugName: "rounded" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
4427
4560
|
dismissed = new EventEmitter();
|
|
4428
|
-
#backgroundKey = computed(() => (this.brand() ===
|
|
4429
|
-
#textKey = computed(() => (this.brand() ===
|
|
4561
|
+
#backgroundKey = computed(() => (this.brand() === GDS_BRANDS.CortoDark ? 'dark' : 'light'), ...(ngDevMode ? [{ debugName: "#backgroundKey" }] : /* istanbul ignore next */ []));
|
|
4562
|
+
#textKey = computed(() => (this.brand() === GDS_BRANDS.CortoDark ? 'light' : 'dark'), ...(ngDevMode ? [{ debugName: "#textKey" }] : /* istanbul ignore next */ []));
|
|
4430
4563
|
#chipColor = computed(() => this.#getColor(this.color() ?? this.text()), ...(ngDevMode ? [{ debugName: "#chipColor" }] : /* istanbul ignore next */ []));
|
|
4431
4564
|
background = computed(() => GdsChipColorsMap[this.#chipColor()][this.#backgroundKey()], ...(ngDevMode ? [{ debugName: "background" }] : /* istanbul ignore next */ []));
|
|
4432
4565
|
textColor = computed(() => GdsChipColorsMap[this.#chipColor()][this.#textKey()], ...(ngDevMode ? [{ debugName: "textColor" }] : /* istanbul ignore next */ []));
|
|
@@ -4631,7 +4764,7 @@ class GdsContextMenuBaseDirective extends OnBrandChanged {
|
|
|
4631
4764
|
size = input('default', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
4632
4765
|
selected = signal(false).asReadonly();
|
|
4633
4766
|
hasChildren = signal(false).asReadonly();
|
|
4634
|
-
tooltipVariation = computed(() => (this.brand() ===
|
|
4767
|
+
tooltipVariation = computed(() => (this.brand() === GDS_BRANDS.CortoDark ? 'dark' : 'light'), ...(ngDevMode ? [{ debugName: "tooltipVariation" }] : /* istanbul ignore next */ []));
|
|
4635
4768
|
variantIcon = computed(() => {
|
|
4636
4769
|
switch (this.variant()) {
|
|
4637
4770
|
case 'check':
|
|
@@ -4908,82 +5041,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
4908
5041
|
type: Output
|
|
4909
5042
|
}] } });
|
|
4910
5043
|
|
|
4911
|
-
const formatDate = (value, option) => {
|
|
4912
|
-
if (!value) {
|
|
4913
|
-
return undefined;
|
|
4914
|
-
}
|
|
4915
|
-
const isString = typeof value === 'string';
|
|
4916
|
-
if (isString && isNaN(Date.parse(value))) {
|
|
4917
|
-
return undefined;
|
|
4918
|
-
}
|
|
4919
|
-
const dateValue = isString ? new Date(value) : value;
|
|
4920
|
-
return format(dateValue, option);
|
|
4921
|
-
};
|
|
4922
|
-
const shortDate = (value) => formatDate(value, 'P');
|
|
4923
|
-
const shortDateTime = (value) => formatDate(value, 'Pp');
|
|
4924
|
-
const transformDateFormat = (value) => {
|
|
4925
|
-
let dateFormat = value;
|
|
4926
|
-
if (value.includes('yyyy')) {
|
|
4927
|
-
dateFormat = dateFormat.replace('yyyy', 'yy');
|
|
4928
|
-
}
|
|
4929
|
-
else if (value.includes('yy')) {
|
|
4930
|
-
dateFormat = dateFormat.replace('yy', 'y');
|
|
4931
|
-
}
|
|
4932
|
-
if (value.includes('MMMM')) {
|
|
4933
|
-
dateFormat = dateFormat.replace('MMMM', 'MM');
|
|
4934
|
-
}
|
|
4935
|
-
else if (value.includes('MMM')) {
|
|
4936
|
-
dateFormat = dateFormat.replace('MMM', 'M');
|
|
4937
|
-
}
|
|
4938
|
-
else if (value.includes('MM')) {
|
|
4939
|
-
dateFormat = dateFormat.replace('MM', 'mm');
|
|
4940
|
-
}
|
|
4941
|
-
else if (value.includes('M')) {
|
|
4942
|
-
dateFormat = dateFormat.replace('M', 'm');
|
|
4943
|
-
}
|
|
4944
|
-
return dateFormat;
|
|
4945
|
-
};
|
|
4946
|
-
const transformSecondsToDuration = (seconds) => {
|
|
4947
|
-
const duration = intervalToDuration({ start: 0, end: seconds * 1000 });
|
|
4948
|
-
const zeroPad = (val) => String(val).padStart(2, '0');
|
|
4949
|
-
const hours = (duration.days ?? 0) * 24 + (duration.hours ?? 0);
|
|
4950
|
-
const minutes = duration.minutes ?? 0;
|
|
4951
|
-
const secs = duration.seconds ?? 0;
|
|
4952
|
-
return [hours, minutes, secs].map(zeroPad).join(':');
|
|
4953
|
-
};
|
|
4954
|
-
const transformDurationToSeconds = (duration) => {
|
|
4955
|
-
const [hour, minute, second] = duration.split(':');
|
|
4956
|
-
return +hour * 3600 + +minute * 60 + +second;
|
|
4957
|
-
};
|
|
4958
|
-
// can't just use Date.toISOString() as that takes into account
|
|
4959
|
-
// the time zone, so it was using the incorrect date
|
|
4960
|
-
const formatToISO = (date) => {
|
|
4961
|
-
if (!date) {
|
|
4962
|
-
return undefined;
|
|
4963
|
-
}
|
|
4964
|
-
return format(date, "yyyy-MM-dd'T'HH:mm:ss.sss'Z'");
|
|
4965
|
-
};
|
|
4966
|
-
const parseLocalizedDate = (dateString) => {
|
|
4967
|
-
if (navigator.language === 'en-US') {
|
|
4968
|
-
return new Date(dateString);
|
|
4969
|
-
}
|
|
4970
|
-
// parse dd/MM/yyyy date strings for use with Date
|
|
4971
|
-
const split = dateString.split('/');
|
|
4972
|
-
if (split.length !== 3) {
|
|
4973
|
-
throw new Error(`Invalid date ${dateString}`);
|
|
4974
|
-
}
|
|
4975
|
-
const [day, month, year] = split;
|
|
4976
|
-
return new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
|
|
4977
|
-
};
|
|
4978
|
-
|
|
4979
|
-
const getIconsByPrefix = (prefix) => Object.values(icons).reduce((acc, curr) => {
|
|
4980
|
-
if (curr.name.startsWith(prefix)) {
|
|
4981
|
-
acc.push(curr.name);
|
|
4982
|
-
return acc;
|
|
4983
|
-
}
|
|
4984
|
-
return acc;
|
|
4985
|
-
}, []);
|
|
4986
|
-
|
|
4987
5044
|
class GdsDatePipe {
|
|
4988
5045
|
transform(value, option) {
|
|
4989
5046
|
if (option === 'short+time') {
|
|
@@ -5143,6 +5200,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
5143
5200
|
type: Output
|
|
5144
5201
|
}] } });
|
|
5145
5202
|
|
|
5203
|
+
// NOTE: Duplicated from libs/utils/src/services/device-detector-signal-service.ts — keep in sync.
|
|
5204
|
+
class DeviceDetectorSignalService extends DeviceDetectorService {
|
|
5205
|
+
resizeObservable$ = fromEvent(window, 'resize');
|
|
5206
|
+
resizeSubscription$;
|
|
5207
|
+
userAgentSignal = signal(navigator.userAgent, ...(ngDevMode ? [{ debugName: "userAgentSignal" }] : /* istanbul ignore next */ []));
|
|
5208
|
+
constructor() {
|
|
5209
|
+
super();
|
|
5210
|
+
this.resizeSubscription$ = this.resizeObservable$
|
|
5211
|
+
.pipe(takeUntilDestroyed())
|
|
5212
|
+
.pipe(debounceTime(DEBOUNCE_DURATION.browserEvent))
|
|
5213
|
+
.subscribe(() => {
|
|
5214
|
+
this.userAgentSignal.set(navigator.userAgent);
|
|
5215
|
+
});
|
|
5216
|
+
}
|
|
5217
|
+
isMobile = computed(() => super.isMobile(this.userAgentSignal()), ...(ngDevMode ? [{ debugName: "isMobile" }] : /* istanbul ignore next */ []));
|
|
5218
|
+
isTablet = computed(() => super.isTablet(this.userAgentSignal()), ...(ngDevMode ? [{ debugName: "isTablet" }] : /* istanbul ignore next */ []));
|
|
5219
|
+
isDesktop = computed(() => super.isDesktop(this.userAgentSignal()), ...(ngDevMode ? [{ debugName: "isDesktop" }] : /* istanbul ignore next */ []));
|
|
5220
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DeviceDetectorSignalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5221
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DeviceDetectorSignalService, providedIn: 'root' });
|
|
5222
|
+
}
|
|
5223
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DeviceDetectorSignalService, decorators: [{
|
|
5224
|
+
type: Injectable,
|
|
5225
|
+
args: [{ providedIn: 'root' }]
|
|
5226
|
+
}], ctorParameters: () => [] });
|
|
5227
|
+
|
|
5146
5228
|
class GdsDropdownComponent {
|
|
5147
5229
|
#deviceDetectorSvc = inject(DeviceDetectorSignalService);
|
|
5148
5230
|
#elementRef = inject(ElementRef);
|
|
@@ -5238,20 +5320,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
5238
5320
|
}, encapsulation: ViewEncapsulation.None, template: "<div class=\"\n content\n gds-background-white\n gds-display-flex\n gds-gap-2xs\n gds-padding-block-3xs\n\">\n <ng-content />\n</div>\n<div\n class=\"\n cancel\n gds-align-items-center\n gds-background-white\n gds-height-xl\n gds-justify-content-center\n gds-padding-block-3xs\n gds-padding-inline-sm\n gds-text-body-strong\n gds-text-primary\n gds-width-100-parent\n \"\n cdkMenuItem\n>\n <span>{{ 'Core.Button.Cancel' | translate }}</span>\n</div>\n", styles: ["@layer design-system{gds-dropdown .content{overflow:hidden;border-radius:var(--gds-borderRadius-sm);box-shadow:var(--gds-shadow-default);flex-direction:column}gds-dropdown .content[horizontal]{flex-direction:row}gds-dropdown .content{padding-inline:5px}gds-dropdown .cancel{display:none;border-radius:var(--gds-borderRadius-sm);border-bottom-left-radius:var(--gds-borderRadius-2xl);border-bottom-right-radius:var(--gds-borderRadius-2xl);box-shadow:var(--gds-shadow-default)}gds-dropdown[isMobile]{width:100%;margin-block-end:var(--gds-spacing-md);margin-inline:var(--gds-spacing-2xs);display:flex;flex-direction:column;gap:var(--gds-spacing-3xs)}gds-dropdown[isMobile] .content{width:100%;border-top-left-radius:var(--gds-borderRadius-2xl);border-top-right-radius:var(--gds-borderRadius-2xl)}gds-dropdown[isMobile] .cancel{display:flex}.cdk-overlay-container:has(gds-dropdown[isMobile]){display:grid;pointer-events:none;inset:0}.cdk-overlay-container:has(gds-dropdown[isMobile]):before{background-color:var(--gds-pattern-overlay-background-default);inset:0;content:\"\";position:absolute;pointer-events:auto}.cdk-overlay-container:has(gds-dropdown[isMobile]) .cdk-overlay-connected-position-bounding-box{grid-area:1/-1}.cdk-overlay-container:has(gds-dropdown[isMobile]) .cdk-overlay-connected-position-bounding-box:not(:last-of-type){display:none}.cdk-overlay-container:has(gds-dropdown[isMobile]) .cdk-overlay-pane{position:unset!important;transform:unset!important;align-items:center!important}.cdk-overlay-container:has(gds-dropdown[isMobile]):has(gds-dropdown) .cdk-overlay-connected-position-bounding-box{flex-direction:column-reverse!important}}\n"] }]
|
|
5239
5321
|
}], ctorParameters: () => [], propDecorators: { triggerElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggerElement", required: false }] }], horizontal: [{ type: i0.Input, args: [{ isSignal: true, alias: "horizontal", required: false }] }], preventMobileStyling: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventMobileStyling", required: false }] }], allowDefaultTabBehavior: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowDefaultTabBehavior", required: false }] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => CdkMenuItem), { ...{ descendants: true }, isSignal: true }] }] } });
|
|
5240
5322
|
|
|
5241
|
-
const gdsButtonVariants = ['default', 'primary', 'invisible'];
|
|
5242
|
-
const gdsButtonSizes = ['small', 'default', 'medium', 'large'];
|
|
5243
|
-
|
|
5244
|
-
const ngSelectDropdownPositions = ['auto', 'bottom', 'top', 'left', 'right'];
|
|
5245
|
-
|
|
5246
|
-
const gdsDropdownPositionsX = ['auto', 'left', 'right'];
|
|
5247
|
-
const gdsDropdownPositionsY = ['auto', 'top', 'bottom'];
|
|
5248
|
-
|
|
5249
|
-
const CDN_URL = new InjectionToken('CDN_URL', {
|
|
5250
|
-
factory: () => 'https://cdn.cortoaws.com'
|
|
5251
|
-
});
|
|
5252
|
-
|
|
5253
|
-
const gdsUserPromptSecondaryTextVariants = ['default', 'error'];
|
|
5254
|
-
|
|
5255
5323
|
class GdsEmptyStateComponent extends OnBrandChanged {
|
|
5256
5324
|
#cdnUrl = inject(CDN_URL);
|
|
5257
5325
|
variant = input('info-circle', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
@@ -5259,9 +5327,9 @@ class GdsEmptyStateComponent extends OnBrandChanged {
|
|
|
5259
5327
|
compact = input(false, { ...(ngDevMode ? { debugName: "compact" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
5260
5328
|
#supportedBrand = computed(() => {
|
|
5261
5329
|
switch (this.brand()) {
|
|
5262
|
-
case
|
|
5263
|
-
case
|
|
5264
|
-
return
|
|
5330
|
+
case GDS_BRANDS.StandardIntegration:
|
|
5331
|
+
case GDS_BRANDS.CortoDark:
|
|
5332
|
+
return GDS_BRANDS.Corto;
|
|
5265
5333
|
default:
|
|
5266
5334
|
return this.brand();
|
|
5267
5335
|
}
|
|
@@ -5771,7 +5839,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
5771
5839
|
|
|
5772
5840
|
class GdsButtonRadioOptionComponent extends GdsRadioOptionDirective {
|
|
5773
5841
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GdsButtonRadioOptionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
5774
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: GdsButtonRadioOptionComponent, isStandalone: true, selector: "input[gds-button-radio-option]", host: { attributes: { "type": "radio" }, listeners: { "change": "onChange()" }, properties: { "checked": "selected()", "id": "id()", "name": "name()", "disabled": "disabled()", "attr.invalid": "invalid()", "attr.data-label": "label()", "attr.aria-label": "label()" }, classAttribute: "gds-text-caption-strong gds-radius-sm" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: ["@layer design-system{:host{border:var(--gds-borderWidth-md) solid;border-color:var(--gds-palette-border-primary);color:var(--gds-palette-text-primary-primary)}:host:hover,:host:checked{border-color:var(--gds-palette-border-selected);background-color:var(--gds-palette-background-hover)}:host[invalid=true],:host:disabled{border-color:inherit;color:inherit;background-color:inherit}:host[invalid=true]:hover,:host[invalid=true]:checked{background-color:var(--gds-palette-helper-error-default)}:host:focus-visible{outline:var(--gds-borderWidth-lg) solid var(--gds-palette-border-dark);outline-offset:2px}:host:before{display:block;content:attr(data-label);padding:var(--gds-spacing-2xs)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5842
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: GdsButtonRadioOptionComponent, isStandalone: true, selector: "input[gds-button-radio-option]", host: { attributes: { "type": "radio" }, listeners: { "change": "onChange()" }, properties: { "checked": "selected()", "id": "id()", "name": "name()", "disabled": "disabled()", "attr.invalid": "invalid()", "attr.data-label": "label()", "attr.tabindex": "selected() ? 0 : -1", "attr.aria-label": "label()" }, classAttribute: "gds-text-caption-strong gds-radius-sm" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: ["@layer design-system{:host{border:var(--gds-borderWidth-md) solid;border-color:var(--gds-palette-border-primary);color:var(--gds-palette-text-primary-primary)}:host:hover,:host:checked{border-color:var(--gds-palette-border-selected);background-color:var(--gds-palette-background-hover)}:host[invalid=true],:host:disabled{border-color:inherit;color:inherit;background-color:inherit}:host[invalid=true]:hover,:host[invalid=true]:checked{background-color:var(--gds-palette-helper-error-default)}:host:focus-visible{outline:var(--gds-borderWidth-lg) solid var(--gds-palette-border-dark);outline-offset:2px}:host:before{display:block;content:attr(data-label);padding:var(--gds-spacing-2xs)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5775
5843
|
}
|
|
5776
5844
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GdsButtonRadioOptionComponent, decorators: [{
|
|
5777
5845
|
type: Component,
|
|
@@ -5788,6 +5856,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
5788
5856
|
'[attr.invalid]': 'invalid()',
|
|
5789
5857
|
'[attr.data-label]': 'label()',
|
|
5790
5858
|
// a11y
|
|
5859
|
+
'[attr.tabindex]': 'selected() ? 0 : -1',
|
|
5791
5860
|
'[attr.aria-label]': 'label()'
|
|
5792
5861
|
}, styles: ["@layer design-system{:host{border:var(--gds-borderWidth-md) solid;border-color:var(--gds-palette-border-primary);color:var(--gds-palette-text-primary-primary)}:host:hover,:host:checked{border-color:var(--gds-palette-border-selected);background-color:var(--gds-palette-background-hover)}:host[invalid=true],:host:disabled{border-color:inherit;color:inherit;background-color:inherit}:host[invalid=true]:hover,:host[invalid=true]:checked{background-color:var(--gds-palette-helper-error-default)}:host:focus-visible{outline:var(--gds-borderWidth-lg) solid var(--gds-palette-border-dark);outline-offset:2px}:host:before{display:block;content:attr(data-label);padding:var(--gds-spacing-2xs)}}\n"] }]
|
|
5793
5862
|
}] });
|
|
@@ -6205,6 +6274,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
6205
6274
|
}, template: "<gds-dialog-overlay />\n<dialog\n gds-dialog\n class=\"dialog\"\n type=\"slide-left\"\n>\n <ng-template #layoutTmpl>\n <ng-template #container />\n </ng-template>\n</dialog>\n", styles: ["@layer design-system{:host{position:fixed;inset:0}:host .overlay{opacity:.25}:host .dialog{max-width:unset;width:unset;display:flex;flex-direction:column}}\n"] }]
|
|
6206
6275
|
}], propDecorators: { container: [{ type: i0.ViewChild, args: ['container', { ...{ read: ViewContainerRef }, isSignal: true }] }] } });
|
|
6207
6276
|
|
|
6277
|
+
const computedPrevious = (s) => {
|
|
6278
|
+
let current = null;
|
|
6279
|
+
let previous = untracked(() => s()); // initial value is the current value
|
|
6280
|
+
return computed(() => {
|
|
6281
|
+
current = s();
|
|
6282
|
+
const result = previous;
|
|
6283
|
+
previous = current;
|
|
6284
|
+
return result;
|
|
6285
|
+
});
|
|
6286
|
+
};
|
|
6287
|
+
|
|
6288
|
+
// NOTE: Duplicated from libs/utils/src/types/app.constants.ts (SCREEN_SIZE_BREAKPOINTS only) — keep in sync.
|
|
6289
|
+
// sizes from libs/gds/public/assets/scss/_mixins.scss:65-72
|
|
6290
|
+
const SCREEN_SIZE_BREAKPOINTS = {
|
|
6291
|
+
XS: 0,
|
|
6292
|
+
SM: 600,
|
|
6293
|
+
MD: 900,
|
|
6294
|
+
LG: 1200,
|
|
6295
|
+
XL: 1440
|
|
6296
|
+
};
|
|
6297
|
+
|
|
6298
|
+
// NOTE: Duplicated from libs/utils/src/functions/screen-breakpoints.ts — keep in sync.
|
|
6299
|
+
const getScreenSize$ = (breakpoint) => inject(BreakpointObserver)
|
|
6300
|
+
.observe(`(max-width: ${SCREEN_SIZE_BREAKPOINTS[breakpoint]}px)`)
|
|
6301
|
+
.pipe(map((result) => result.matches));
|
|
6302
|
+
const getScreenSizeSignal = (breakpoint) => toSignal(getScreenSize$(breakpoint), { initialValue: false });
|
|
6303
|
+
|
|
6208
6304
|
class GdsCollapsibleAsideLayoutComponent {
|
|
6209
6305
|
#dialogSvc = inject(GdsDialogService);
|
|
6210
6306
|
collapsed = input(undefined, { ...(ngDevMode ? { debugName: "collapsed" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
@@ -6334,6 +6430,105 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
6334
6430
|
}, template: "<ul class=\"\n gds-display-flex\n gds-flex-column\n gds-gap-2xs\n gds-margin-0\n gds-padding-0\n\">\n <ng-content />\n</ul>\n<ul class=\"\n gds-display-flex\n gds-flex-column\n gds-gap-2xs\n gds-margin-0\n gds-margin-block-start-auto\n gds-padding-0\n\">\n <ng-content select=\"[menu-bottom]\" />\n</ul>\n", styles: ["@layer design-system{:host{box-shadow:-3px 0 4px #00000012 inset;border-right:.5px solid var(--gds-palette-border-default)}}\n"] }]
|
|
6335
6431
|
}] });
|
|
6336
6432
|
|
|
6433
|
+
const CDK_MENU_CONNECTED_POSITIONS = [
|
|
6434
|
+
{
|
|
6435
|
+
originX: 'center',
|
|
6436
|
+
originY: 'bottom',
|
|
6437
|
+
overlayX: 'center',
|
|
6438
|
+
overlayY: 'top',
|
|
6439
|
+
offsetY: 4
|
|
6440
|
+
},
|
|
6441
|
+
{
|
|
6442
|
+
originX: 'center',
|
|
6443
|
+
originY: 'top',
|
|
6444
|
+
overlayX: 'center',
|
|
6445
|
+
overlayY: 'bottom',
|
|
6446
|
+
offsetY: -4
|
|
6447
|
+
},
|
|
6448
|
+
{
|
|
6449
|
+
originX: 'end',
|
|
6450
|
+
originY: 'bottom',
|
|
6451
|
+
overlayX: 'end',
|
|
6452
|
+
overlayY: 'top',
|
|
6453
|
+
offsetY: 4
|
|
6454
|
+
},
|
|
6455
|
+
{
|
|
6456
|
+
originX: 'end',
|
|
6457
|
+
originY: 'top',
|
|
6458
|
+
overlayX: 'end',
|
|
6459
|
+
overlayY: 'bottom',
|
|
6460
|
+
offsetY: -4
|
|
6461
|
+
}
|
|
6462
|
+
];
|
|
6463
|
+
const CDK_MENU_CONNECTED_POSITIONS_TOP = [
|
|
6464
|
+
{
|
|
6465
|
+
originX: 'center',
|
|
6466
|
+
originY: 'top',
|
|
6467
|
+
overlayX: 'center',
|
|
6468
|
+
overlayY: 'bottom',
|
|
6469
|
+
offsetY: -4
|
|
6470
|
+
},
|
|
6471
|
+
{
|
|
6472
|
+
originX: 'center',
|
|
6473
|
+
originY: 'bottom',
|
|
6474
|
+
overlayX: 'center',
|
|
6475
|
+
overlayY: 'top',
|
|
6476
|
+
offsetY: 4
|
|
6477
|
+
},
|
|
6478
|
+
{
|
|
6479
|
+
originX: 'end',
|
|
6480
|
+
originY: 'bottom',
|
|
6481
|
+
overlayX: 'end',
|
|
6482
|
+
overlayY: 'top',
|
|
6483
|
+
offsetY: 4
|
|
6484
|
+
},
|
|
6485
|
+
{
|
|
6486
|
+
originX: 'end',
|
|
6487
|
+
originY: 'top',
|
|
6488
|
+
overlayX: 'end',
|
|
6489
|
+
overlayY: 'bottom',
|
|
6490
|
+
offsetY: -4
|
|
6491
|
+
}
|
|
6492
|
+
];
|
|
6493
|
+
/** for use when the context menu is close to the right side of the container
|
|
6494
|
+
* so that it doesn't go over the edge, per UX
|
|
6495
|
+
*/
|
|
6496
|
+
const CDK_MENU_CONNECTED_POSITIONS_CONTAINER_RIGHT = [
|
|
6497
|
+
{
|
|
6498
|
+
originX: 'end',
|
|
6499
|
+
originY: 'bottom',
|
|
6500
|
+
overlayX: 'end',
|
|
6501
|
+
overlayY: 'top',
|
|
6502
|
+
offsetY: 4
|
|
6503
|
+
},
|
|
6504
|
+
{
|
|
6505
|
+
originX: 'end',
|
|
6506
|
+
originY: 'top',
|
|
6507
|
+
overlayX: 'end',
|
|
6508
|
+
overlayY: 'bottom',
|
|
6509
|
+
offsetY: -4
|
|
6510
|
+
}
|
|
6511
|
+
];
|
|
6512
|
+
/** for use when the context menu is close to the left side of the container
|
|
6513
|
+
* so that it doesn't go over the edge, per UX
|
|
6514
|
+
*/
|
|
6515
|
+
const CDK_MENU_CONNECTED_POSITIONS_CONTAINER_LEFT = [
|
|
6516
|
+
{
|
|
6517
|
+
originX: 'start',
|
|
6518
|
+
originY: 'bottom',
|
|
6519
|
+
overlayX: 'start',
|
|
6520
|
+
overlayY: 'top',
|
|
6521
|
+
offsetY: 4
|
|
6522
|
+
},
|
|
6523
|
+
{
|
|
6524
|
+
originX: 'start',
|
|
6525
|
+
originY: 'top',
|
|
6526
|
+
overlayX: 'start',
|
|
6527
|
+
overlayY: 'bottom',
|
|
6528
|
+
offsetY: -4
|
|
6529
|
+
}
|
|
6530
|
+
];
|
|
6531
|
+
|
|
6337
6532
|
class GdsNestedSelectComponent extends GdsSignalFormContainer {
|
|
6338
6533
|
#injector = inject(Injector);
|
|
6339
6534
|
#directive = inject(CdkMenuTrigger);
|
|
@@ -6712,13 +6907,18 @@ class GdsSearchBarComponent {
|
|
|
6712
6907
|
#setDropdownStyling = () => {
|
|
6713
6908
|
if (!this.dropdownPanelScroll)
|
|
6714
6909
|
return;
|
|
6715
|
-
this
|
|
6716
|
-
this
|
|
6910
|
+
const dropdownPanel = this.dropdownPanelScroll.nativeElement;
|
|
6911
|
+
const dropdownPanelParent = this.dropdownPanelScroll.nativeElement.parentElement;
|
|
6912
|
+
if (!dropdownPanelParent)
|
|
6913
|
+
return;
|
|
6914
|
+
this.#renderer.setStyle(dropdownPanel, 'maxHeight', this.maxHeight());
|
|
6915
|
+
this.#renderer.setStyle(dropdownPanel, 'minHeight', this.minHeight());
|
|
6916
|
+
this.#renderer.setStyle(dropdownPanelParent, 'marginTop', '4px');
|
|
6717
6917
|
// this needs to be last to prevent the dropdown from flashing
|
|
6718
|
-
this.#renderer.setStyle(
|
|
6918
|
+
this.#renderer.setStyle(dropdownPanelParent, 'visibility', 'visible');
|
|
6719
6919
|
};
|
|
6720
6920
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GdsSearchBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6721
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.17", type: GdsSearchBarComponent, isStandalone: true, selector: "gds-search-bar", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: true, transformFunction: null }, leadingIcon: { classPropertyName: "leadingIcon", publicName: "leadingIcon", isSignal: true, isRequired: false, transformFunction: null }, bindValue: { classPropertyName: "bindValue", publicName: "bindValue", isSignal: true, isRequired: false, transformFunction: null }, bindLabel: { classPropertyName: "bindLabel", publicName: "bindLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, suppressClearOnClose: { classPropertyName: "suppressClearOnClose", publicName: "suppressClearOnClose", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, isOpenOverride: { classPropertyName: "isOpenOverride", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, groupBy: { classPropertyName: "groupBy", publicName: "groupBy", isSignal: true, isRequired: false, transformFunction: null }, searchFunction: { classPropertyName: "searchFunction", publicName: "searchFunction", isSignal: true, isRequired: false, transformFunction: null }, showAllItems: { classPropertyName: "showAllItems", publicName: "showAllItems", isSignal: true, isRequired: false, transformFunction: null }, dropdownPosition: { classPropertyName: "dropdownPosition", publicName: "dropdownPosition", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isDisabled: "isDisabledChange", focused: "focused", blurred: "blurred", dropdownStateChanged: "dropdownStateChanged", searched: "searched", changed: "changed", value: "valueChange" }, host: { listeners: { "keydown": "setMarkedItemIndex()", "window:resize": "close()" }, properties: { "attr.disabled": "isDisabled() ? \"\" : undefined" } }, queries: [{ propertyName: "groupItemTmpl", first: true, predicate: ["groupItemTmpl"], descendants: true, isSignal: true }, { propertyName: "dropdownItemTmpl", first: true, predicate: ["itemTmpl"], descendants: true, isSignal: true }, { propertyName: "emptyTmpl", first: true, predicate: ["emptyTmpl"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-select\n #select\n class=\"\n gds-radius-sm\n gds-search-bar_input\n \"\n [placeholder]=\"!value() ? placeholder() : ''\"\n [isOpen]=\"isOpen()\"\n [disabled]=\"isDisabled()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n [items]=\"items()\"\n [bindValue]=\"bindValue()\"\n [bindLabel]=\"bindLabel()\"\n [loading]=\"loading()\"\n [markFirst]=\"false\"\n [groupBy]=\"groupBy()\"\n [dropdownPosition]=\"dropdownPosition()\"\n [searchFn]=\"showAllItems() ? showAllItemsSearchFunction : searchFunction()\"\n [ariaLabel]=\"ariaLabel() ?? 'Core.Accessibility.Searchbar' | translate\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"\n (click)=\"handleClick($event)\"\n (search)=\"handleSearch($event.term)\"\n (open)=\"handleOpened()\"\n (close)=\"handleClosed()\"\n (change)=\"handleChange($event)\"\n (clear)=\"handleClear()\"\n>\n <ng-template\n ng-optgroup-tmp\n let-item=\"item\"\n let-index=\"index\"\n >\n <div class=\"\n gds-display-flex\n gds-padding-block-3xs\n gds-padding-inline-0\n gds-text-body\n gds-text-primary\n \">\n <ng-container *ngTemplateOutlet=\"groupItemTmpl(); context: { item, marked: markedIndex() === index }\" />\n </div>\n </ng-template>\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-index=\"index\"\n >\n <div class=\"\n gds-display-flex\n gds-padding-block-3xs\n gds-padding-inline-0\n gds-text-body\n gds-text-primary\n \">\n <ng-container *ngTemplateOutlet=\"dropdownItemTmpl(); context: { item, marked: markedIndex() === index }\" />\n </div>\n </ng-template>\n <ng-template\n ng-notfound-tmp\n let-searchTerm=\"searchTerm\"\n >\n <ng-container *ngTemplateOutlet=\"emptyTmpl(); context: { searchTerm }\" />\n </ng-template>\n <ng-template ng-loadingtext-tmp>\n <div class=\"\n gds-display-flex\n gds-justify-content-center\n gds-padding-sm\n gds-text-body\n gds-text-primary\n \">\n <gds-spinner />\n </div>\n </ng-template>\n <ng-template ng-loadingspinner-tmp />\n <ng-template ng-clearbutton-tmp>\n <button\n gds-icon-button\n class=\"\n gds-background-none\n gds-min-height-0\n ng-clear-wrapper\n \"\n (click)=\"select.handleClearClick()\"\n (mousedown)=\"onClearMouseDown($event)\"\n (keydown.enter)=\"onKeydownClear($event)\"\n >\n <gds-icon\n class=\"\n gds-icon-primary\n gds-icon-size-3xs\n gds-mobile-icon-size-2xs\n \"\n key=\"line-dismiss\"\n />\n </button>\n </ng-template>\n</ng-select>\n", styles: ["@layer design-system{gds-search-bar{display:flex;max-width:var(--search-bar-max-width, 560px);min-width:230px;width:100%;position:relative;--background-color: var(--gds-palette-background-white);--text-color: var(--gds-palette-text-default-primary);--icon-color: var(--gds-palette-icon-primary);--cursor: text}gds-search-bar[disabled]{--background-color: var(--gds-palette-background-disabled);--text-color: var(--gds-palette-text-default-disabled);--icon-color: var(--gds-palette-icon-disabled);--cursor: not-allowed}gds-search-bar .gds-search-bar_icon{min-width:var(--gds-spacing-sm);color:var(--icon-color)}gds-search-bar .gds-search-bar_input{background-color:var(--background-color);border:.5px solid var(--gds-palette-border-default);color:var(--text-color);box-sizing:border-box;text-overflow:ellipsis;width:100%;font:var(--gds-text-body-shorthand)}:is(body[isMobile=true]) gds-search-bar .gds-search-bar_input{font:var(--gds-text-inputMobile-shorthand)}gds-search-bar .gds-search-bar_input::placeholder{color:var(--gds-palette-text-default-secondary);width:100%}gds-search-bar .gds-search-bar_input:focus-visible{outline:none}gds-search-bar .gds-search-bar_end-content{display:flex;align-items:center;gap:var(--gds-spacing-2xs)}gds-search-bar .gds-search-bar_clear-button{cursor:pointer}gds-search-bar ng-select.ng-select .leading-icon{height:var(--gds-iconSize-2xs);width:var(--gds-iconSize-2xs);color:var(--icon-color);margin-right:var(--gds-size-3xs-rem)}gds-search-bar ng-select.ng-select .ng-select-container{padding:6px var(--gds-spacing-xs);cursor:var(--cursor)}:is(body[isMobile=true]) gds-search-bar ng-select.ng-select .ng-select-container{padding-block:11px}gds-search-bar ng-select.ng-select .ng-select-container .ng-value-container{display:flex;justify-content:var(--search-bar-placeholder-justify, \"center\");align-items:center}gds-search-bar ng-select.ng-select .ng-select-container .ng-value-container:focus-within{justify-content:unset}gds-search-bar ng-select.ng-select .ng-select-container .ng-value-container .ng-input{padding:0 calc(12px + var(--gds-iconSize-xs))}gds-search-bar ng-select.ng-select .ng-select-container .ng-value-container .ng-input>input{vertical-align:baseline;cursor:var(--cursor)}gds-search-bar ng-select.ng-select .ng-select-container .ng-clear-wrapper[gds-icon-button]{--gds-mobile-button-size: var(--gds-iconSize-2xs)}gds-search-bar ng-select.ng-select .ng-dropdown-panel{padding:var(--gds-spacing-3xs) 2px;visibility:hidden}gds-search-bar ng-select.ng-select .ng-dropdown-panel .ng-option{overflow:unset!important}gds-search-bar ng-select.ng-select .ng-dropdown-panel .scroll-host{padding:0 2px}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i2.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "dropdownPosition", "appendTo", "outsideClickEvent", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "tabFocusOnClearButton", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "deselectOnClick", "clearSearchOnAdd", "compareWith", "keyDownFn", "bindLabel", "bindValue", "appearance", "isOpen", "items"], outputs: ["bindLabelChange", "bindValueChange", "appearanceChange", "isOpenChange", "itemsChange", "blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"], exportAs: ["ngSelect"] }, { kind: "directive", type: i2.NgOptgroupTemplateDirective, selector: "[ng-optgroup-tmp]" }, { kind: "directive", type: i2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i2.NgNotFoundTemplateDirective, selector: "[ng-notfound-tmp]" }, { kind: "directive", type: i2.NgLoadingTextTemplateDirective, selector: "[ng-loadingtext-tmp]" }, { kind: "directive", type: i2.NgLoadingSpinnerTemplateDirective, selector: "[ng-loadingspinner-tmp]" }, { kind: "directive", type: i2.NgClearButtonTemplateDirective, selector: "[ng-clearbutton-tmp]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: GdsSpinnerComponent, selector: "gds-spinner", inputs: ["trackWidth", "size"] }, { kind: "component", type: GdsIconButtonComponent, selector: "button[gds-icon-button]", inputs: ["tooltipLabel"] }, { kind: "component", type: GdsIconComponent, selector: "gds-icon", inputs: ["key", "width", "height", "color"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6921
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.17", type: GdsSearchBarComponent, isStandalone: true, selector: "gds-search-bar", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: true, transformFunction: null }, leadingIcon: { classPropertyName: "leadingIcon", publicName: "leadingIcon", isSignal: true, isRequired: false, transformFunction: null }, bindValue: { classPropertyName: "bindValue", publicName: "bindValue", isSignal: true, isRequired: false, transformFunction: null }, bindLabel: { classPropertyName: "bindLabel", publicName: "bindLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, suppressClearOnClose: { classPropertyName: "suppressClearOnClose", publicName: "suppressClearOnClose", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, isOpenOverride: { classPropertyName: "isOpenOverride", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, groupBy: { classPropertyName: "groupBy", publicName: "groupBy", isSignal: true, isRequired: false, transformFunction: null }, searchFunction: { classPropertyName: "searchFunction", publicName: "searchFunction", isSignal: true, isRequired: false, transformFunction: null }, showAllItems: { classPropertyName: "showAllItems", publicName: "showAllItems", isSignal: true, isRequired: false, transformFunction: null }, dropdownPosition: { classPropertyName: "dropdownPosition", publicName: "dropdownPosition", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isDisabled: "isDisabledChange", focused: "focused", blurred: "blurred", dropdownStateChanged: "dropdownStateChanged", searched: "searched", changed: "changed", value: "valueChange" }, host: { listeners: { "keydown": "setMarkedItemIndex()", "window:resize": "close()" }, properties: { "attr.disabled": "isDisabled() ? \"\" : undefined" } }, queries: [{ propertyName: "groupItemTmpl", first: true, predicate: ["groupItemTmpl"], descendants: true, isSignal: true }, { propertyName: "dropdownItemTmpl", first: true, predicate: ["itemTmpl"], descendants: true, isSignal: true }, { propertyName: "emptyTmpl", first: true, predicate: ["emptyTmpl"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-select\n #select\n class=\"\n gds-radius-sm\n gds-search-bar_input\n \"\n [placeholder]=\"!value() ? placeholder() : ''\"\n [isOpen]=\"isOpen()\"\n [disabled]=\"isDisabled()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n [items]=\"items()\"\n [bindValue]=\"bindValue()\"\n [bindLabel]=\"bindLabel()\"\n [loading]=\"loading()\"\n [markFirst]=\"false\"\n [groupBy]=\"groupBy()\"\n [dropdownPosition]=\"dropdownPosition()\"\n [searchFn]=\"showAllItems() ? showAllItemsSearchFunction : searchFunction()\"\n [ariaLabel]=\"ariaLabel() ?? 'Core.Accessibility.Searchbar' | translate\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"\n (click)=\"handleClick($event)\"\n (search)=\"handleSearch($event.term)\"\n (open)=\"handleOpened()\"\n (close)=\"handleClosed()\"\n (change)=\"handleChange($event)\"\n (clear)=\"handleClear()\"\n>\n <ng-template\n ng-optgroup-tmp\n let-item=\"item\"\n let-index=\"index\"\n >\n <div class=\"\n gds-display-flex\n gds-padding-block-3xs\n gds-padding-inline-0\n gds-text-body\n gds-text-primary\n \">\n <ng-container *ngTemplateOutlet=\"groupItemTmpl(); context: { item, marked: markedIndex() === index }\" />\n </div>\n </ng-template>\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-index=\"index\"\n >\n <div class=\"\n gds-display-flex\n gds-padding-block-3xs\n gds-padding-inline-0\n gds-text-body\n gds-text-primary\n \">\n <ng-container *ngTemplateOutlet=\"dropdownItemTmpl(); context: { item, marked: markedIndex() === index }\" />\n </div>\n </ng-template>\n <ng-template\n ng-notfound-tmp\n let-searchTerm=\"searchTerm\"\n >\n <ng-container *ngTemplateOutlet=\"emptyTmpl(); context: { searchTerm }\" />\n </ng-template>\n <ng-template ng-loadingtext-tmp>\n <div class=\"\n gds-display-flex\n gds-justify-content-center\n gds-padding-sm\n gds-text-body\n gds-text-primary\n \">\n <gds-spinner />\n </div>\n </ng-template>\n <ng-template ng-loadingspinner-tmp />\n <ng-template ng-clearbutton-tmp>\n <button\n gds-icon-button\n class=\"\n gds-background-none\n gds-min-height-0\n ng-clear-wrapper\n \"\n (click)=\"select.handleClearClick()\"\n (mousedown)=\"onClearMouseDown($event)\"\n (keydown.enter)=\"onKeydownClear($event)\"\n >\n <gds-icon\n class=\"\n gds-icon-primary\n gds-icon-size-3xs\n gds-mobile-icon-size-2xs\n \"\n key=\"line-dismiss\"\n />\n </button>\n </ng-template>\n</ng-select>\n", styles: ["@layer design-system{gds-search-bar{display:flex;max-width:var(--search-bar-max-width, 560px);min-width:230px;width:100%;position:relative;--background-color: var(--gds-palette-background-white);--text-color: var(--gds-palette-text-default-primary);--icon-color: var(--gds-palette-icon-primary);--cursor: text;--border: .5px solid var(--gds-palette-border-default);--border-radius: var(--gds-borderRadius-sm);--padding: 0px}gds-search-bar[disabled]{--background-color: var(--gds-palette-background-disabled);--text-color: var(--gds-palette-text-default-disabled);--icon-color: var(--gds-palette-icon-disabled);--cursor: not-allowed}gds-search-bar .gds-search-bar_icon{min-width:var(--gds-spacing-sm);color:var(--icon-color)}gds-search-bar .gds-search-bar_input{background-color:var(--background-color);border:var(--border);color:var(--text-color);box-sizing:border-box;text-overflow:ellipsis;width:100%;border-radius:var(--border-radius)!important;font:var(--gds-text-body-shorthand)}:is(body[isMobile=true]) gds-search-bar .gds-search-bar_input{font:var(--gds-text-inputMobile-shorthand)}gds-search-bar .gds-search-bar_input::placeholder{color:var(--gds-palette-text-default-secondary);width:100%}gds-search-bar .gds-search-bar_input:focus-visible{outline:none}gds-search-bar .gds-search-bar_end-content{display:flex;align-items:center;gap:var(--gds-spacing-2xs)}gds-search-bar .gds-search-bar_clear-button{cursor:pointer}gds-search-bar ng-select.ng-select .leading-icon{height:var(--gds-iconSize-2xs);width:var(--gds-iconSize-2xs);color:var(--icon-color);margin-right:var(--gds-size-3xs-rem)}gds-search-bar ng-select.ng-select .ng-select-container{padding:6px var(--gds-spacing-xs);cursor:var(--cursor);border-radius:var(--border-radius)}:is(body[isMobile=true]) gds-search-bar ng-select.ng-select .ng-select-container{padding-block:11px}gds-search-bar ng-select.ng-select .ng-select-container .ng-value-container{display:flex;justify-content:var(--search-bar-placeholder-justify, \"center\");align-items:center;padding:var(--padding)}gds-search-bar ng-select.ng-select .ng-select-container .ng-value-container:focus-within{justify-content:unset}gds-search-bar ng-select.ng-select .ng-select-container .ng-value-container .ng-input{padding:0 calc(12px + var(--gds-iconSize-xs))}gds-search-bar ng-select.ng-select .ng-select-container .ng-value-container .ng-input>input{vertical-align:baseline;cursor:var(--cursor)}gds-search-bar ng-select.ng-select .ng-select-container .ng-clear-wrapper[gds-icon-button]{--gds-mobile-button-size: var(--gds-iconSize-2xs)}gds-search-bar ng-select.ng-select .ng-dropdown-panel{padding:var(--gds-spacing-3xs) 2px;visibility:hidden}gds-search-bar ng-select.ng-select .ng-dropdown-panel .ng-option{overflow:unset!important}gds-search-bar ng-select.ng-select .ng-dropdown-panel .scroll-host{padding:0 2px}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i2.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "dropdownPosition", "appendTo", "outsideClickEvent", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "tabFocusOnClearButton", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "deselectOnClick", "clearSearchOnAdd", "compareWith", "keyDownFn", "bindLabel", "bindValue", "appearance", "isOpen", "items"], outputs: ["bindLabelChange", "bindValueChange", "appearanceChange", "isOpenChange", "itemsChange", "blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"], exportAs: ["ngSelect"] }, { kind: "directive", type: i2.NgOptgroupTemplateDirective, selector: "[ng-optgroup-tmp]" }, { kind: "directive", type: i2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i2.NgNotFoundTemplateDirective, selector: "[ng-notfound-tmp]" }, { kind: "directive", type: i2.NgLoadingTextTemplateDirective, selector: "[ng-loadingtext-tmp]" }, { kind: "directive", type: i2.NgLoadingSpinnerTemplateDirective, selector: "[ng-loadingspinner-tmp]" }, { kind: "directive", type: i2.NgClearButtonTemplateDirective, selector: "[ng-clearbutton-tmp]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: GdsSpinnerComponent, selector: "gds-spinner", inputs: ["trackWidth", "size"] }, { kind: "component", type: GdsIconButtonComponent, selector: "button[gds-icon-button]", inputs: ["tooltipLabel"] }, { kind: "component", type: GdsIconComponent, selector: "gds-icon", inputs: ["key", "width", "height", "color"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
6722
6922
|
}
|
|
6723
6923
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GdsSearchBarComponent, decorators: [{
|
|
6724
6924
|
type: Component,
|
|
@@ -6734,7 +6934,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
6734
6934
|
'[attr.disabled]': 'isDisabled() ? "" : undefined',
|
|
6735
6935
|
'(keydown)': 'setMarkedItemIndex()',
|
|
6736
6936
|
'(window:resize)': 'close()'
|
|
6737
|
-
}, template: "<ng-select\n #select\n class=\"\n gds-radius-sm\n gds-search-bar_input\n \"\n [placeholder]=\"!value() ? placeholder() : ''\"\n [isOpen]=\"isOpen()\"\n [disabled]=\"isDisabled()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n [items]=\"items()\"\n [bindValue]=\"bindValue()\"\n [bindLabel]=\"bindLabel()\"\n [loading]=\"loading()\"\n [markFirst]=\"false\"\n [groupBy]=\"groupBy()\"\n [dropdownPosition]=\"dropdownPosition()\"\n [searchFn]=\"showAllItems() ? showAllItemsSearchFunction : searchFunction()\"\n [ariaLabel]=\"ariaLabel() ?? 'Core.Accessibility.Searchbar' | translate\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"\n (click)=\"handleClick($event)\"\n (search)=\"handleSearch($event.term)\"\n (open)=\"handleOpened()\"\n (close)=\"handleClosed()\"\n (change)=\"handleChange($event)\"\n (clear)=\"handleClear()\"\n>\n <ng-template\n ng-optgroup-tmp\n let-item=\"item\"\n let-index=\"index\"\n >\n <div class=\"\n gds-display-flex\n gds-padding-block-3xs\n gds-padding-inline-0\n gds-text-body\n gds-text-primary\n \">\n <ng-container *ngTemplateOutlet=\"groupItemTmpl(); context: { item, marked: markedIndex() === index }\" />\n </div>\n </ng-template>\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-index=\"index\"\n >\n <div class=\"\n gds-display-flex\n gds-padding-block-3xs\n gds-padding-inline-0\n gds-text-body\n gds-text-primary\n \">\n <ng-container *ngTemplateOutlet=\"dropdownItemTmpl(); context: { item, marked: markedIndex() === index }\" />\n </div>\n </ng-template>\n <ng-template\n ng-notfound-tmp\n let-searchTerm=\"searchTerm\"\n >\n <ng-container *ngTemplateOutlet=\"emptyTmpl(); context: { searchTerm }\" />\n </ng-template>\n <ng-template ng-loadingtext-tmp>\n <div class=\"\n gds-display-flex\n gds-justify-content-center\n gds-padding-sm\n gds-text-body\n gds-text-primary\n \">\n <gds-spinner />\n </div>\n </ng-template>\n <ng-template ng-loadingspinner-tmp />\n <ng-template ng-clearbutton-tmp>\n <button\n gds-icon-button\n class=\"\n gds-background-none\n gds-min-height-0\n ng-clear-wrapper\n \"\n (click)=\"select.handleClearClick()\"\n (mousedown)=\"onClearMouseDown($event)\"\n (keydown.enter)=\"onKeydownClear($event)\"\n >\n <gds-icon\n class=\"\n gds-icon-primary\n gds-icon-size-3xs\n gds-mobile-icon-size-2xs\n \"\n key=\"line-dismiss\"\n />\n </button>\n </ng-template>\n</ng-select>\n", styles: ["@layer design-system{gds-search-bar{display:flex;max-width:var(--search-bar-max-width, 560px);min-width:230px;width:100%;position:relative;--background-color: var(--gds-palette-background-white);--text-color: var(--gds-palette-text-default-primary);--icon-color: var(--gds-palette-icon-primary);--cursor: text}gds-search-bar[disabled]{--background-color: var(--gds-palette-background-disabled);--text-color: var(--gds-palette-text-default-disabled);--icon-color: var(--gds-palette-icon-disabled);--cursor: not-allowed}gds-search-bar .gds-search-bar_icon{min-width:var(--gds-spacing-sm);color:var(--icon-color)}gds-search-bar .gds-search-bar_input{background-color:var(--background-color);border
|
|
6937
|
+
}, template: "<ng-select\n #select\n class=\"\n gds-radius-sm\n gds-search-bar_input\n \"\n [placeholder]=\"!value() ? placeholder() : ''\"\n [isOpen]=\"isOpen()\"\n [disabled]=\"isDisabled()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"setValue($event)\"\n [items]=\"items()\"\n [bindValue]=\"bindValue()\"\n [bindLabel]=\"bindLabel()\"\n [loading]=\"loading()\"\n [markFirst]=\"false\"\n [groupBy]=\"groupBy()\"\n [dropdownPosition]=\"dropdownPosition()\"\n [searchFn]=\"showAllItems() ? showAllItemsSearchFunction : searchFunction()\"\n [ariaLabel]=\"ariaLabel() ?? 'Core.Accessibility.Searchbar' | translate\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"\n (click)=\"handleClick($event)\"\n (search)=\"handleSearch($event.term)\"\n (open)=\"handleOpened()\"\n (close)=\"handleClosed()\"\n (change)=\"handleChange($event)\"\n (clear)=\"handleClear()\"\n>\n <ng-template\n ng-optgroup-tmp\n let-item=\"item\"\n let-index=\"index\"\n >\n <div class=\"\n gds-display-flex\n gds-padding-block-3xs\n gds-padding-inline-0\n gds-text-body\n gds-text-primary\n \">\n <ng-container *ngTemplateOutlet=\"groupItemTmpl(); context: { item, marked: markedIndex() === index }\" />\n </div>\n </ng-template>\n <ng-template\n ng-option-tmp\n let-item=\"item\"\n let-index=\"index\"\n >\n <div class=\"\n gds-display-flex\n gds-padding-block-3xs\n gds-padding-inline-0\n gds-text-body\n gds-text-primary\n \">\n <ng-container *ngTemplateOutlet=\"dropdownItemTmpl(); context: { item, marked: markedIndex() === index }\" />\n </div>\n </ng-template>\n <ng-template\n ng-notfound-tmp\n let-searchTerm=\"searchTerm\"\n >\n <ng-container *ngTemplateOutlet=\"emptyTmpl(); context: { searchTerm }\" />\n </ng-template>\n <ng-template ng-loadingtext-tmp>\n <div class=\"\n gds-display-flex\n gds-justify-content-center\n gds-padding-sm\n gds-text-body\n gds-text-primary\n \">\n <gds-spinner />\n </div>\n </ng-template>\n <ng-template ng-loadingspinner-tmp />\n <ng-template ng-clearbutton-tmp>\n <button\n gds-icon-button\n class=\"\n gds-background-none\n gds-min-height-0\n ng-clear-wrapper\n \"\n (click)=\"select.handleClearClick()\"\n (mousedown)=\"onClearMouseDown($event)\"\n (keydown.enter)=\"onKeydownClear($event)\"\n >\n <gds-icon\n class=\"\n gds-icon-primary\n gds-icon-size-3xs\n gds-mobile-icon-size-2xs\n \"\n key=\"line-dismiss\"\n />\n </button>\n </ng-template>\n</ng-select>\n", styles: ["@layer design-system{gds-search-bar{display:flex;max-width:var(--search-bar-max-width, 560px);min-width:230px;width:100%;position:relative;--background-color: var(--gds-palette-background-white);--text-color: var(--gds-palette-text-default-primary);--icon-color: var(--gds-palette-icon-primary);--cursor: text;--border: .5px solid var(--gds-palette-border-default);--border-radius: var(--gds-borderRadius-sm);--padding: 0px}gds-search-bar[disabled]{--background-color: var(--gds-palette-background-disabled);--text-color: var(--gds-palette-text-default-disabled);--icon-color: var(--gds-palette-icon-disabled);--cursor: not-allowed}gds-search-bar .gds-search-bar_icon{min-width:var(--gds-spacing-sm);color:var(--icon-color)}gds-search-bar .gds-search-bar_input{background-color:var(--background-color);border:var(--border);color:var(--text-color);box-sizing:border-box;text-overflow:ellipsis;width:100%;border-radius:var(--border-radius)!important;font:var(--gds-text-body-shorthand)}:is(body[isMobile=true]) gds-search-bar .gds-search-bar_input{font:var(--gds-text-inputMobile-shorthand)}gds-search-bar .gds-search-bar_input::placeholder{color:var(--gds-palette-text-default-secondary);width:100%}gds-search-bar .gds-search-bar_input:focus-visible{outline:none}gds-search-bar .gds-search-bar_end-content{display:flex;align-items:center;gap:var(--gds-spacing-2xs)}gds-search-bar .gds-search-bar_clear-button{cursor:pointer}gds-search-bar ng-select.ng-select .leading-icon{height:var(--gds-iconSize-2xs);width:var(--gds-iconSize-2xs);color:var(--icon-color);margin-right:var(--gds-size-3xs-rem)}gds-search-bar ng-select.ng-select .ng-select-container{padding:6px var(--gds-spacing-xs);cursor:var(--cursor);border-radius:var(--border-radius)}:is(body[isMobile=true]) gds-search-bar ng-select.ng-select .ng-select-container{padding-block:11px}gds-search-bar ng-select.ng-select .ng-select-container .ng-value-container{display:flex;justify-content:var(--search-bar-placeholder-justify, \"center\");align-items:center;padding:var(--padding)}gds-search-bar ng-select.ng-select .ng-select-container .ng-value-container:focus-within{justify-content:unset}gds-search-bar ng-select.ng-select .ng-select-container .ng-value-container .ng-input{padding:0 calc(12px + var(--gds-iconSize-xs))}gds-search-bar ng-select.ng-select .ng-select-container .ng-value-container .ng-input>input{vertical-align:baseline;cursor:var(--cursor)}gds-search-bar ng-select.ng-select .ng-select-container .ng-clear-wrapper[gds-icon-button]{--gds-mobile-button-size: var(--gds-iconSize-2xs)}gds-search-bar ng-select.ng-select .ng-dropdown-panel{padding:var(--gds-spacing-3xs) 2px;visibility:hidden}gds-search-bar ng-select.ng-select .ng-dropdown-panel .ng-option{overflow:unset!important}gds-search-bar ng-select.ng-select .ng-dropdown-panel .scroll-host{padding:0 2px}}\n"] }]
|
|
6738
6938
|
}], propDecorators: { placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: true }] }], leadingIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "leadingIcon", required: false }] }], bindValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "bindValue", required: false }] }], bindLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "bindLabel", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], isDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDisabled", required: false }] }, { type: i0.Output, args: ["isDisabledChange"] }], suppressClearOnClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "suppressClearOnClose", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], isOpenOverride: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }], groupBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupBy", required: false }] }], searchFunction: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchFunction", required: false }] }], showAllItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAllItems", required: false }] }], dropdownPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownPosition", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], minHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "minHeight", required: false }] }], groupItemTmpl: [{ type: i0.ContentChild, args: ['groupItemTmpl', { isSignal: true }] }], dropdownItemTmpl: [{ type: i0.ContentChild, args: ['itemTmpl', { isSignal: true }] }], emptyTmpl: [{ type: i0.ContentChild, args: ['emptyTmpl', { isSignal: true }] }], focused: [{ type: i0.Output, args: ["focused"] }], blurred: [{ type: i0.Output, args: ["blurred"] }], dropdownStateChanged: [{ type: i0.Output, args: ["dropdownStateChanged"] }], searched: [{ type: i0.Output, args: ["searched"] }], changed: [{ type: i0.Output, args: ["changed"] }], select: [{ type: i0.ViewChild, args: ['select', { isSignal: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
|
|
6739
6939
|
|
|
6740
6940
|
class GdsSidebarItemComponent {
|
|
@@ -6809,7 +7009,7 @@ class GdsSplitButtonComponent extends ButtonBaseDirective {
|
|
|
6809
7009
|
});
|
|
6810
7010
|
}
|
|
6811
7011
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GdsSplitButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
6812
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.17", type: GdsSplitButtonComponent, isStandalone: true, selector: "gds-split-button", inputs: { trailingDropdown: { classPropertyName: "trailingDropdown", publicName: "trailingDropdown", isSignal: true, isRequired: true, transformFunction: null }, trailingIcon: { classPropertyName: "trailingIcon", publicName: "trailingIcon", isSignal: true, isRequired: false, transformFunction: null }, leadingAriaLabel: { classPropertyName: "leadingAriaLabel", publicName: "leadingAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, trailingAriaLabel: { classPropertyName: "trailingAriaLabel", publicName: "trailingAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, menuPosition: { classPropertyName: "menuPosition", publicName: "menuPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tabindex": "0" }, listeners: { "keydown.enter": "onEnter()", "keydown.arrowDown": "onArrowDown()" }, classAttribute: "gds-display-flex gds-radius-sm" }, viewQueries: [{ propertyName: "leadingBtn", first: true, predicate: ["leadingBtn"], descendants: true, isSignal: true }, { propertyName: "trailingBtn", first: true, predicate: ["trailingBtn"], descendants: true, isSignal: true }, { propertyName: "menuTrigger", first: true, predicate: CdkMenuTrigger, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<button\n #leadingBtn\n gds-button\n class=\"\n gds-radius-bottom-right-0\n gds-radius-top-right-0\n gds-split-button_button\n gds-split-button_leading\n \"\n
|
|
7012
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.17", type: GdsSplitButtonComponent, isStandalone: true, selector: "gds-split-button", inputs: { trailingDropdown: { classPropertyName: "trailingDropdown", publicName: "trailingDropdown", isSignal: true, isRequired: true, transformFunction: null }, trailingIcon: { classPropertyName: "trailingIcon", publicName: "trailingIcon", isSignal: true, isRequired: false, transformFunction: null }, leadingAriaLabel: { classPropertyName: "leadingAriaLabel", publicName: "leadingAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, trailingAriaLabel: { classPropertyName: "trailingAriaLabel", publicName: "trailingAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, menuPosition: { classPropertyName: "menuPosition", publicName: "menuPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tabindex": "0" }, listeners: { "keydown.enter": "onEnter()", "keydown.arrowDown": "onArrowDown()" }, classAttribute: "gds-display-flex gds-radius-sm" }, viewQueries: [{ propertyName: "leadingBtn", first: true, predicate: ["leadingBtn"], descendants: true, isSignal: true }, { propertyName: "trailingBtn", first: true, predicate: ["trailingBtn"], descendants: true, isSignal: true }, { propertyName: "menuTrigger", first: true, predicate: CdkMenuTrigger, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<button\n #leadingBtn\n gds-button\n class=\"\n gds-radius-bottom-right-0\n gds-radius-top-right-0\n gds-split-button_button\n gds-split-button_leading\n \"\n [tabIndex]=\"-1\"\n [size]=\"size()\"\n [busy]=\"busy()\"\n [variant]=\"variant()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-label]=\"leadingAriaLabel()\"\n (click)=\"clicked.emit($event)\"\n>\n <ng-content />\n</button>\n\n<button\n #trailingBtn\n gds-button\n class=\"\n gds-radius-bottom-left-0\n gds-radius-top-left-0\n gds-split-button_button\n gds-split-button_trailing\n \"\n [tabIndex]=\"-1\"\n [size]=\"size()\"\n [variant]=\"variant()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-label]=\"trailingAriaLabel()\"\n [cdkMenuTriggerFor]=\"!disabled() ? trailingDropdown() : undefined\"\n [cdkMenuPosition]=\"menuPosition()\"\n (cdkMenuClosed)=\"onMenuClosed()\"\n>\n <gds-icon\n [key]=\"trailingIcon()\"\n class=\"gds-icon-size-2xs\"\n />\n</button>\n", styles: ["@layer design-system{:host{--border-separator-width: .5px;--border-separator: var(--border-separator-width) solid var(--gds-palette-border-default)}:host:focus-visible{outline-width:2px;outline-style:solid;outline-color:var(--gds-button-outlineColor, var(--gds-neutral-700));outline-offset:1px}:is(body[isMobile=true]) :host{--border-separator-width: 1px}:host .gds-split-button_leading{border-right:none;padding-inline:var(--gds-spacing-xs)}:host .gds-split-button_trailing,:host .gds-split-button_trailing:not(:disabled):hover{border-left:var(--border-separator);padding-inline:var(--gds-spacing-3xs)}:is(body[isMobile=true]) :host .gds-split-button_trailing,:is(body[isMobile=true]) :host .gds-split-button_trailing:not(:disabled):hover{padding-inline:10px}}\n"], dependencies: [{ kind: "component", type: GdsIconComponent, selector: "gds-icon", inputs: ["key", "width", "height", "color"] }, { kind: "component", type: GdsButtonComponent, selector: "button[gds-button]" }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData", "cdkMenuTriggerTransformOriginOn"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6813
7013
|
}
|
|
6814
7014
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GdsSplitButtonComponent, decorators: [{
|
|
6815
7015
|
type: Component,
|
|
@@ -6818,7 +7018,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
6818
7018
|
tabindex: '0',
|
|
6819
7019
|
'(keydown.enter)': 'onEnter()',
|
|
6820
7020
|
'(keydown.arrowDown)': 'onArrowDown()'
|
|
6821
|
-
}, template: "<button\n #leadingBtn\n gds-button\n class=\"\n gds-radius-bottom-right-0\n gds-radius-top-right-0\n gds-split-button_button\n gds-split-button_leading\n \"\n
|
|
7021
|
+
}, template: "<button\n #leadingBtn\n gds-button\n class=\"\n gds-radius-bottom-right-0\n gds-radius-top-right-0\n gds-split-button_button\n gds-split-button_leading\n \"\n [tabIndex]=\"-1\"\n [size]=\"size()\"\n [busy]=\"busy()\"\n [variant]=\"variant()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-label]=\"leadingAriaLabel()\"\n (click)=\"clicked.emit($event)\"\n>\n <ng-content />\n</button>\n\n<button\n #trailingBtn\n gds-button\n class=\"\n gds-radius-bottom-left-0\n gds-radius-top-left-0\n gds-split-button_button\n gds-split-button_trailing\n \"\n [tabIndex]=\"-1\"\n [size]=\"size()\"\n [variant]=\"variant()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-label]=\"trailingAriaLabel()\"\n [cdkMenuTriggerFor]=\"!disabled() ? trailingDropdown() : undefined\"\n [cdkMenuPosition]=\"menuPosition()\"\n (cdkMenuClosed)=\"onMenuClosed()\"\n>\n <gds-icon\n [key]=\"trailingIcon()\"\n class=\"gds-icon-size-2xs\"\n />\n</button>\n", styles: ["@layer design-system{:host{--border-separator-width: .5px;--border-separator: var(--border-separator-width) solid var(--gds-palette-border-default)}:host:focus-visible{outline-width:2px;outline-style:solid;outline-color:var(--gds-button-outlineColor, var(--gds-neutral-700));outline-offset:1px}:is(body[isMobile=true]) :host{--border-separator-width: 1px}:host .gds-split-button_leading{border-right:none;padding-inline:var(--gds-spacing-xs)}:host .gds-split-button_trailing,:host .gds-split-button_trailing:not(:disabled):hover{border-left:var(--border-separator);padding-inline:var(--gds-spacing-3xs)}:is(body[isMobile=true]) :host .gds-split-button_trailing,:is(body[isMobile=true]) :host .gds-split-button_trailing:not(:disabled):hover{padding-inline:10px}}\n"] }]
|
|
6822
7022
|
}], propDecorators: { trailingDropdown: [{ type: i0.Input, args: [{ isSignal: true, alias: "trailingDropdown", required: true }] }], trailingIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "trailingIcon", required: false }] }], leadingAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "leadingAriaLabel", required: false }] }], trailingAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "trailingAriaLabel", required: false }] }], menuPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuPosition", required: false }] }], leadingBtn: [{ type: i0.ViewChild, args: ['leadingBtn', { isSignal: true }] }], trailingBtn: [{ type: i0.ViewChild, args: ['trailingBtn', { isSignal: true }] }], menuTrigger: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkMenuTrigger), { isSignal: true }] }] } });
|
|
6823
7023
|
|
|
6824
7024
|
class GdsTimelineItemComponent {
|
|
@@ -6889,6 +7089,7 @@ class GdsListboxBaseDirective {
|
|
|
6889
7089
|
items = signal([], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
6890
7090
|
_keyManager;
|
|
6891
7091
|
_activeId = signal(null, ...(ngDevMode ? [{ debugName: "_activeId" }] : /* istanbul ignore next */ []));
|
|
7092
|
+
#pointerInteraction = false;
|
|
6892
7093
|
// Maintain a single key manager instance in case of dynamic item changes.
|
|
6893
7094
|
#setupKeyManager = effect(() => {
|
|
6894
7095
|
const items = this.items();
|
|
@@ -6915,7 +7116,20 @@ class GdsListboxBaseDirective {
|
|
|
6915
7116
|
ngOnDestroy() {
|
|
6916
7117
|
this._keyManager?.destroy();
|
|
6917
7118
|
}
|
|
7119
|
+
onPointerDown() {
|
|
7120
|
+
this.#pointerInteraction = true;
|
|
7121
|
+
}
|
|
7122
|
+
onPointerUp() {
|
|
7123
|
+
// Reset after focus handlers from the same gesture have run.
|
|
7124
|
+
queueMicrotask(() => {
|
|
7125
|
+
this.#pointerInteraction = false;
|
|
7126
|
+
});
|
|
7127
|
+
}
|
|
6918
7128
|
onFocus() {
|
|
7129
|
+
if (this.#pointerInteraction) {
|
|
7130
|
+
// When event comes from pointer interaction, don't focus the first item
|
|
7131
|
+
return;
|
|
7132
|
+
}
|
|
6919
7133
|
this.tabindex.set(-1);
|
|
6920
7134
|
this._keyManager?.setFirstItemActive();
|
|
6921
7135
|
}
|
|
@@ -6960,7 +7174,7 @@ class GdsListboxDirective extends GdsListboxBaseDirective {
|
|
|
6960
7174
|
super.onKeydown(event);
|
|
6961
7175
|
};
|
|
6962
7176
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GdsListboxDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
6963
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.17", type: GdsListboxDirective, isStandalone: true, selector: "[gdsListbox]", inputs: { onNavigatePastLastOption: { classPropertyName: "onNavigatePastLastOption", publicName: "onNavigatePastLastOption", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listbox" }, listeners: { "keydown": "onKeydown($event)", "focus": "onFocus()" }, properties: { "attr.tabindex": "tabindex()" } }, queries: [{ propertyName: "options", predicate: GdsListboxOption, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 });
|
|
7177
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.17", type: GdsListboxDirective, isStandalone: true, selector: "[gdsListbox]", inputs: { onNavigatePastLastOption: { classPropertyName: "onNavigatePastLastOption", publicName: "onNavigatePastLastOption", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listbox" }, listeners: { "keydown": "onKeydown($event)", "focus": "onFocus()", "pointerdown": "onPointerDown()", "pointerup": "onPointerUp()", "pointercancel": "onPointerUp()" }, properties: { "attr.tabindex": "tabindex()" } }, queries: [{ propertyName: "options", predicate: GdsListboxOption, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 });
|
|
6964
7178
|
}
|
|
6965
7179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GdsListboxDirective, decorators: [{
|
|
6966
7180
|
type: Directive,
|
|
@@ -6970,7 +7184,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
6970
7184
|
role: 'listbox',
|
|
6971
7185
|
'[attr.tabindex]': 'tabindex()',
|
|
6972
7186
|
'(keydown)': 'onKeydown($event)',
|
|
6973
|
-
'(focus)': 'onFocus()'
|
|
7187
|
+
'(focus)': 'onFocus()',
|
|
7188
|
+
'(pointerdown)': 'onPointerDown()',
|
|
7189
|
+
'(pointerup)': 'onPointerUp()',
|
|
7190
|
+
'(pointercancel)': 'onPointerUp()'
|
|
6974
7191
|
}
|
|
6975
7192
|
}]
|
|
6976
7193
|
}], propDecorators: { onNavigatePastLastOption: [{ type: i0.Input, args: [{ isSignal: true, alias: "onNavigatePastLastOption", required: false }] }], options: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => GdsListboxOption), { ...{ descendants: true }, isSignal: true }] }] } });
|
|
@@ -7196,7 +7413,7 @@ class GdsVirtualScrollListboxDirective extends GdsListboxBaseDirective {
|
|
|
7196
7413
|
return Number.isFinite(index) ? index : null;
|
|
7197
7414
|
};
|
|
7198
7415
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GdsVirtualScrollListboxDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
7199
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.17", type: GdsVirtualScrollListboxDirective, isStandalone: true, selector: "[gdsListboxVirtualScroll]", inputs: { total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null }, optionIndexAttribute: { classPropertyName: "optionIndexAttribute", publicName: "optionIndexAttribute", isSignal: true, isRequired: false, transformFunction: null }, scrollBehavior: { classPropertyName: "scrollBehavior", publicName: "scrollBehavior", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { currentFocusedIndex: "currentFocusedIndex" }, host: { attributes: { "role": "listbox" }, listeners: { "keydown": "onKeydown($event)", "focus": "onFocus()", "focusin": "onFocusIn($event)" }, properties: { "attr.tabindex": "tabindex()" } }, queries: [{ propertyName: "options", predicate: GdsListboxOption, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 });
|
|
7416
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.17", type: GdsVirtualScrollListboxDirective, isStandalone: true, selector: "[gdsListboxVirtualScroll]", inputs: { total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null }, optionIndexAttribute: { classPropertyName: "optionIndexAttribute", publicName: "optionIndexAttribute", isSignal: true, isRequired: false, transformFunction: null }, scrollBehavior: { classPropertyName: "scrollBehavior", publicName: "scrollBehavior", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { currentFocusedIndex: "currentFocusedIndex" }, host: { attributes: { "role": "listbox" }, listeners: { "keydown": "onKeydown($event)", "focus": "onFocus()", "focusin": "onFocusIn($event)", "pointerdown": "onPointerDown()", "pointerup": "onPointerUp()", "pointercancel": "onPointerUp()" }, properties: { "attr.tabindex": "tabindex()" } }, queries: [{ propertyName: "options", predicate: GdsListboxOption, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 });
|
|
7200
7417
|
}
|
|
7201
7418
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GdsVirtualScrollListboxDirective, decorators: [{
|
|
7202
7419
|
type: Directive,
|
|
@@ -7207,7 +7424,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
7207
7424
|
'[attr.tabindex]': 'tabindex()',
|
|
7208
7425
|
'(keydown)': 'onKeydown($event)',
|
|
7209
7426
|
'(focus)': 'onFocus()',
|
|
7210
|
-
'(focusin)': 'onFocusIn($event)'
|
|
7427
|
+
'(focusin)': 'onFocusIn($event)',
|
|
7428
|
+
'(pointerdown)': 'onPointerDown()',
|
|
7429
|
+
'(pointerup)': 'onPointerUp()',
|
|
7430
|
+
'(pointercancel)': 'onPointerUp()'
|
|
7211
7431
|
}
|
|
7212
7432
|
}]
|
|
7213
7433
|
}], propDecorators: { options: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => GdsListboxOption), { ...{ descendants: true }, isSignal: true }] }], total: [{ type: i0.Input, args: [{ isSignal: true, alias: "total", required: true }] }], optionIndexAttribute: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionIndexAttribute", required: false }] }], scrollBehavior: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollBehavior", required: false }] }], currentFocusedIndex: [{ type: i0.Output, args: ["currentFocusedIndex"] }] } });
|
|
@@ -7846,9 +8066,61 @@ const provideToaster = (customOptions = {}) => {
|
|
|
7846
8066
|
return provideToastr({ ...defaultOptions, ...customOptions });
|
|
7847
8067
|
};
|
|
7848
8068
|
|
|
8069
|
+
const OPERATING_SYSTEM = {
|
|
8070
|
+
windows: 'windows',
|
|
8071
|
+
mac: 'mac',
|
|
8072
|
+
other: 'other'
|
|
8073
|
+
};
|
|
8074
|
+
const BROWSER = {
|
|
8075
|
+
chrome: 'chrome',
|
|
8076
|
+
firefox: 'firefox',
|
|
8077
|
+
safari: 'safari',
|
|
8078
|
+
edge: 'edge',
|
|
8079
|
+
opera: 'opera',
|
|
8080
|
+
// applewebkit is utilized by Mac Word add-ins
|
|
8081
|
+
applewebkit: 'applewebkit',
|
|
8082
|
+
other: 'other'
|
|
8083
|
+
};
|
|
8084
|
+
|
|
8085
|
+
// NOTE: Duplicated from libs/utils/src/functions/navigator-detection.functions.ts — keep in sync.
|
|
8086
|
+
const getOperatingSystem = () => {
|
|
8087
|
+
const userAgent = navigator.userAgent;
|
|
8088
|
+
if (userAgent.includes('Win')) {
|
|
8089
|
+
return OPERATING_SYSTEM.windows;
|
|
8090
|
+
}
|
|
8091
|
+
else if (userAgent.includes('Mac')) {
|
|
8092
|
+
return OPERATING_SYSTEM.mac;
|
|
8093
|
+
}
|
|
8094
|
+
return OPERATING_SYSTEM.other;
|
|
8095
|
+
};
|
|
8096
|
+
const getBrowser = () => {
|
|
8097
|
+
const userAgent = navigator.userAgent;
|
|
8098
|
+
// The order of these are essential because certain browsers such as Edge use the
|
|
8099
|
+
// chrome browser engine and include both "Chrome" and "Edg/" in the userAgent.
|
|
8100
|
+
if (userAgent.includes('Edg/')) {
|
|
8101
|
+
return BROWSER.edge;
|
|
8102
|
+
}
|
|
8103
|
+
else if (userAgent.includes('Opera') || userAgent.includes('OPR')) {
|
|
8104
|
+
return BROWSER.opera;
|
|
8105
|
+
}
|
|
8106
|
+
else if (userAgent.includes('Chrome')) {
|
|
8107
|
+
return BROWSER.chrome;
|
|
8108
|
+
}
|
|
8109
|
+
else if (userAgent.includes('Firefox')) {
|
|
8110
|
+
return BROWSER.firefox;
|
|
8111
|
+
}
|
|
8112
|
+
else if (userAgent.includes('Safari')) {
|
|
8113
|
+
return BROWSER.safari;
|
|
8114
|
+
}
|
|
8115
|
+
else if (userAgent.includes('AppleWebKit')) {
|
|
8116
|
+
return BROWSER.applewebkit;
|
|
8117
|
+
}
|
|
8118
|
+
return BROWSER.other;
|
|
8119
|
+
};
|
|
8120
|
+
|
|
7849
8121
|
class GdsModule {
|
|
7850
8122
|
static forRoot({ brand, env }) {
|
|
7851
|
-
document.body.setAttribute('brand',
|
|
8123
|
+
document.body.setAttribute('brand', brand ?? GDS_BRANDS.Corto);
|
|
7852
8124
|
document.body.setAttribute('operating-system', getOperatingSystem());
|
|
7853
8125
|
document.body.setAttribute('browser', getBrowser());
|
|
7854
8126
|
let cdnUrl = 'https://cdn.cortoaws.com';
|
|
@@ -7952,5 +8224,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
7952
8224
|
* Generated bundle index. Do not edit.
|
|
7953
8225
|
*/
|
|
7954
8226
|
|
|
7955
|
-
export { CDN_URL, CONTACT_INITIALS_REGEX, GDS_EMPTY_STATE_VARIANTS, GdsAccountingService, GdsAutoRoundCurrencyDirective, GdsAutofocusDirective, GdsAvatarComponent, GdsBadgeColorType, GdsBadgeComponent, GdsBadgeVariantType, GdsBannerComponent, GdsBreadcrumbsComponent, GdsBuildOptionConfigPipe, GdsButtonComponent, GdsButtonRadioOptionComponent, GdsChatExpandableListComponent, GdsChatPromptComponent, GdsChatSuggestionComponent, GdsCheckboxComponent, GdsChipColorsMap, GdsChipComponent, GdsCollapsibleAsideLayoutComponent, GdsCompositeOptionPrimaryDirective, GdsCompositeOptionSecondaryDirective, GdsContextMenuHeadingComponent, GdsContextMenuItemComponent, GdsContextMenuSwitchComponent, GdsDateInputComponent, GdsDatePipe, GdsDialogBaseDirective, GdsDialogComponent, GdsDialogOverlayComponent, GdsDialogService, GdsDoctypeService, GdsDoctypeToIconPipe, GdsDocumentItemComponent, GdsDropdownComponent, GdsEmptyStateComponent, GdsFeatureBlockComponent, GdsFeedbackButtonComponent, GdsFileUploadComponent, GdsFilenameToIconPipe, GdsFilterChipComponent, GdsFocusOnInitDirective, GdsFormControlComponent, GdsHistoryComponent, GdsIconButtonComponent, GdsIconComponent, GdsIconDoctypeComponent, GdsIconService, GdsInputAutocompleteDirective, GdsItemDisplayComponent, GdsKeyboardNavigationHost, GdsKeyboardNavigationItem, GdsListboxCompositeOptionDirective, GdsListboxDirective, GdsListboxOptionDirective, GdsLoadingCarouselComponent, GdsMapArrayToRadioOptionsPipe, GdsMathFloorPipe, GdsMathMaxPipe, GdsMathMinPipe, GdsMessageInputComponent, GdsModule, GdsNativeInputDirective, GdsNativeTextareaDirective, GdsNavAsideComponent, GdsNavAsideItemComponent, GdsNestedSelectComponent, GdsProgressBarComponent, GdsRadioComponent, GdsRadioOptionDirective, GdsReferenceComponent, GdsReferenceLinkComponent, GdsRegexFilterDirective, GdsResizedDirective, GdsResizedEvent, GdsResponseComponent, GdsScrollOutOfViewDirective, GdsScrollOutOfViewScrollStatus, GdsScrollOutOfViewService, GdsScrollToBottomDirective, GdsScrollToFirstInvalidDirective, GdsSearchBarComponent, GdsSelectComponent, GdsSelectOnFocusDirective, GdsSidebarItemBodyComponent, GdsSidebarItemComponent, GdsSkeletonLoadingComponent, GdsSliderComponent, GdsSpinnerComponent, GdsSplitButtonComponent, GdsSvgIconPipe, GdsSwitchComponent, GdsTextInputComponent, GdsTextareaComponent, GdsTimelineItemComponent, GdsToastComponent, GdsTooltipComponent, GdsTreeViewListItemComponent, GdsUserPromptService, GdsVirtualScrollListboxDirective, MapperPipe, OnBrandChanged, RoundMode, TreeViewListItemDirective, chipColor, chipSize, chipTypes, chipWidth, formatToISO, gdsButtonSizes, gdsButtonVariants, gdsDropdownPositionsX, gdsDropdownPositionsY, gdsSelectWidths, gdsServices, gdsUserPromptSecondaryTextVariants, getIconsByPrefix, ngSelectDropdownPositions, parseLocalizedDate, provideToaster, shortDate, shortDateTime, transformDateFormat, transformDurationToSeconds, transformSecondsToDuration };
|
|
8227
|
+
export { BrandEnum, CDN_URL, CONTACT_INITIALS_REGEX, GDS_BRANDS, GDS_EMPTY_STATE_VARIANTS, GdsAccountingService, GdsAutoRoundCurrencyDirective, GdsAutofocusDirective, GdsAvatarComponent, GdsBadgeColorType, GdsBadgeComponent, GdsBadgeVariantType, GdsBannerComponent, GdsBreadcrumbsComponent, GdsBuildOptionConfigPipe, GdsButtonComponent, GdsButtonRadioOptionComponent, GdsChatExpandableListComponent, GdsChatPromptComponent, GdsChatSuggestionComponent, GdsCheckboxComponent, GdsChipColorsMap, GdsChipComponent, GdsCollapsibleAsideLayoutComponent, GdsCompositeOptionPrimaryDirective, GdsCompositeOptionSecondaryDirective, GdsContextMenuHeadingComponent, GdsContextMenuItemComponent, GdsContextMenuItemVariantEnum, GdsContextMenuSwitchComponent, GdsDateInputComponent, GdsDatePipe, GdsDialogBaseDirective, GdsDialogComponent, GdsDialogOverlayComponent, GdsDialogService, GdsDoctypeService, GdsDoctypeToIconPipe, GdsDocumentItemComponent, GdsDropdownComponent, GdsEmptyStateComponent, GdsFeatureBlockComponent, GdsFeedbackButtonComponent, GdsFileUploadComponent, GdsFilenameToIconPipe, GdsFilterChipComponent, GdsFocusOnInitDirective, GdsFormControlComponent, GdsHistoryComponent, GdsIconButtonComponent, GdsIconComponent, GdsIconDoctypeComponent, GdsIconService, GdsInputAutocompleteDirective, GdsItemDisplayComponent, GdsKeyboardNavigationHost, GdsKeyboardNavigationItem, GdsListboxCompositeOptionDirective, GdsListboxDirective, GdsListboxOptionDirective, GdsLoadingCarouselComponent, GdsMapArrayToRadioOptionsPipe, GdsMathFloorPipe, GdsMathMaxPipe, GdsMathMinPipe, GdsMessageInputComponent, GdsModule, GdsNativeInputDirective, GdsNativeTextareaDirective, GdsNavAsideComponent, GdsNavAsideItemComponent, GdsNestedSelectComponent, GdsProgressBarComponent, GdsRadioComponent, GdsRadioOptionDirective, GdsReferenceComponent, GdsReferenceLinkComponent, GdsRegexFilterDirective, GdsResizedDirective, GdsResizedEvent, GdsResponseComponent, GdsScrollOutOfViewDirective, GdsScrollOutOfViewScrollStatus, GdsScrollOutOfViewService, GdsScrollToBottomDirective, GdsScrollToFirstInvalidDirective, GdsSearchBarComponent, GdsSelectComponent, GdsSelectOnFocusDirective, GdsSidebarItemBodyComponent, GdsSidebarItemComponent, GdsSkeletonLoadingComponent, GdsSliderComponent, GdsSpinnerComponent, GdsSplitButtonComponent, GdsSvgIconPipe, GdsSwitchComponent, GdsTextInputComponent, GdsTextareaComponent, GdsTimelineItemComponent, GdsToastComponent, GdsTooltipComponent, GdsTreeViewListItemComponent, GdsUserPromptService, GdsVirtualScrollListboxDirective, MapperPipe, OnBrandChanged, RoundMode, TreeViewListItemDirective, chipColor, chipSize, chipTypes, chipWidth, formatToISO, gdsButtonSizes, gdsButtonVariants, gdsDropdownPositionsX, gdsDropdownPositionsY, gdsSelectWidths, gdsServices, gdsUserPromptSecondaryTextVariants, getIconsByPrefix, isGdsBrand, ngSelectDropdownPositions, parseLocalizedDate, provideToaster, shortDate, shortDateTime, transformDateFormat, transformDurationToSeconds, transformSecondsToDuration };
|
|
7956
8228
|
//# sourceMappingURL=corto-ai-gds-angular.mjs.map
|