@leanix/components 0.4.12 → 0.4.14

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.
@@ -1,7 +1,7 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, Component, Input, HostBinding, ChangeDetectionStrategy, EventEmitter, Output, HostListener, Directive, Injectable, ElementRef, Inject, ViewChild, ContentChildren, SecurityContext, Pipe, Optional, NgModule, ViewChildren, forwardRef, ContentChild, TemplateRef, Self, Host } from '@angular/core';
1
3
  import * as i1 from '@angular/common';
2
4
  import { CommonModule, formatDate } from '@angular/common';
3
- import * as i0 from '@angular/core';
4
- import { Component, Input, HostBinding, ChangeDetectionStrategy, EventEmitter, Output, HostListener, Directive, Injectable, InjectionToken, ElementRef, Inject, ViewChild, ContentChildren, SecurityContext, Pipe, Optional, NgModule, ViewChildren, forwardRef, ContentChild, TemplateRef, Self, Host } from '@angular/core';
5
5
  import * as i1$2 from '@ngx-translate/core';
6
6
  import { TranslatePipe, TranslateModule } from '@ngx-translate/core';
7
7
  import * as i1$7 from '@angular/cdk/portal';
@@ -17,7 +17,7 @@ import * as i1$3 from '@angular/platform-browser';
17
17
  import Color from 'color';
18
18
  import { format, distanceInWords, startOfDay } from 'date-fns';
19
19
  import { sanitize } from 'dompurify';
20
- import { isArray, isEqual, split, isString, curry } from 'lodash-es';
20
+ import { isArray, isEqual, split, isString, intersection, isNil, curry } from 'lodash-es';
21
21
  import { Renderer, marked } from 'marked';
22
22
  import * as i1$4 from '@angular/cdk/clipboard';
23
23
  import { ClipboardModule } from '@angular/cdk/clipboard';
@@ -37,6 +37,18 @@ import { coerceNumberProperty } from '@angular/cdk/coercion';
37
37
  import * as i4 from '@angular/router';
38
38
  import { RouterLinkActive, RouterModule } from '@angular/router';
39
39
 
40
+ const DATE_FORMATS = new InjectionToken('DATE_FORMATS', {
41
+ providedIn: 'root',
42
+ factory: () => ({
43
+ getDateFormat: () => 'YYYY-MM-DD',
44
+ getDateTimeFormat: () => 'YYYY-MM-DD HH:mm',
45
+ getDateTimeFormatWithSeconds: () => 'YYYY-MM-DD HH:mm:ss'
46
+ })
47
+ });
48
+ const DATE_FN_LOCALE = new InjectionToken('DATE_FN_LOCALE');
49
+ const LOCALE_FN = new InjectionToken('LOCALE_FN');
50
+ const GLOBAL_TRANSLATION_OPTIONS = new InjectionToken('GLOBAL_TRANSLATION_OPTIONS');
51
+
40
52
  class BadgeComponent {
41
53
  constructor() {
42
54
  this.size = 'default';
@@ -1369,18 +1381,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
1369
1381
  }]
1370
1382
  }] });
1371
1383
 
1372
- const DATE_FORMATS = new InjectionToken('DATE_FORMATS', {
1373
- providedIn: 'root',
1374
- factory: () => ({
1375
- getDateFormat: () => 'YYYY-MM-DD',
1376
- getDateTimeFormat: () => 'YYYY-MM-DD HH:mm',
1377
- getDateTimeFormatWithSeconds: () => 'YYYY-MM-DD HH:mm:ss'
1378
- })
1379
- });
1380
- const DATE_FN_LOCALE = new InjectionToken('DATE_FN_LOCALE');
1381
- const LOCALE_FN = new InjectionToken('LOCALE_FN');
1382
- const GLOBAL_TRANSLATION_OPTIONS = new InjectionToken('GLOBAL_TRANSLATION_OPTIONS');
1383
-
1384
1384
  class CustomDatePipe {
1385
1385
  constructor(getDateFnLocale) {
1386
1386
  this.getDateFnLocale = getDateFnLocale;
@@ -7000,6 +7000,163 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
7000
7000
  type: Output
7001
7001
  }] } });
7002
7002
 
7003
+ // /**
7004
+ // * Converts HTML to text, preserving semantic newlines for block-level
7005
+ // * elements. (Taken from https://stackoverflow.com/a/20384452/6813271)
7006
+ // *
7007
+ // * @param node - The HTML node to perform text extraction.
7008
+ // */
7009
+ // export function getNodeTextWithNewlines(node: Element, _inner = false): string {
7010
+ // let result = '';
7011
+ // if (node.nodeType === document.TEXT_NODE) {
7012
+ // // Replace repeated spaces, newlines, and tabs with a single space.
7013
+ // result = node.nodeValue.replace( /\s+/g, ' ' );
7014
+ // } else {
7015
+ // for (let i = 0, j = node.childNodes.length; i < j; i++ ) {
7016
+ // result += this.getNodeTextWithNewlines(node.childNodes[i] as Element, true);
7017
+ // }
7018
+ // const d = node['currentStyle'] ?
7019
+ // node['currentStyle']['display'] :
7020
+ // document.defaultView.getComputedStyle(node, null).getPropertyValue('display');
7021
+ // if (d.match(/^block/)) {
7022
+ // result = '\n' + result + '\n';
7023
+ // } else if (d.match(/list/) || d.match(/row/) || node.tagName === 'BR' || node.tagName === 'HR' ) {
7024
+ // result += '\n';
7025
+ // }
7026
+ // }
7027
+ // return _inner ? result : _.trim(result, '\n');
7028
+ // }
7029
+ /** Trim whitespaces from html */
7030
+ function trimHtml(str) {
7031
+ return str
7032
+ .replace(/(<\/?(br *\/?|p)>|&nbsp;|\s)*$/i, '')
7033
+ .replace(/^(<\/?(br *\/?|p)>|&nbsp;|\s)*/i, '')
7034
+ .replace(/^<(div|p)>(<\/?(br *\/?|p)>|&nbsp;|\s)*<\/ *(div|p)>$/i, '');
7035
+ }
7036
+
7037
+ // First version based on https://stackoverflow.com/a/41253897/6813271
7038
+ class ContenteditableDirective {
7039
+ constructor(elRef, sanitizer) {
7040
+ this.elRef = elRef;
7041
+ this.sanitizer = sanitizer;
7042
+ this.lxContenteditableModelChange = new EventEmitter();
7043
+ /** Allow (sanitized) html */
7044
+ this.lxContenteditableHtml = false;
7045
+ this.lxContenteditableHtmlPaste = true;
7046
+ this.emittedValue = null;
7047
+ }
7048
+ ngOnChanges(changes) {
7049
+ if (changes['lxContenteditableModel']) {
7050
+ // On init: if lxContenteditableModel is empty, read from DOM in case the element has content
7051
+ if (changes['lxContenteditableModel'].isFirstChange() && !this.lxContenteditableModel) {
7052
+ // Prevent Exp.HasChanged: Don't read and emit value from DOM during change detection
7053
+ setTimeout(() => {
7054
+ this.onInput(true);
7055
+ });
7056
+ }
7057
+ this.refreshView();
7058
+ }
7059
+ }
7060
+ onInput(initialInlineData = false) {
7061
+ let value = this.elRef.nativeElement[this.getProperty()];
7062
+ value = this.cleanContent(value, initialInlineData);
7063
+ this.emittedValue = value;
7064
+ this.lxContenteditableModelChange.emit(value);
7065
+ }
7066
+ /**
7067
+ * @param event {ClipboardEvent}
7068
+ */
7069
+ onPaste(event) {
7070
+ const clipboardEvent = event;
7071
+ this.onInput();
7072
+ // For text-only contenteditable, remove pasted HTML.
7073
+ if (!this.lxContenteditableHtml || !this.lxContenteditableHtmlPaste) {
7074
+ let isHtml = true;
7075
+ // TODO: Use beforepaste event. See https://www.lucidchart.com/techblog/2014/12/02/definitive-guide-copying-pasting-javascript/.
7076
+ if (clipboardEvent.clipboardData && clipboardEvent.clipboardData.types) {
7077
+ const types = [].slice.apply(clipboardEvent.clipboardData.types);
7078
+ isHtml = intersection(types, ['text/html', 'com.apple.webarchive']).length > 0;
7079
+ }
7080
+ if (isHtml) {
7081
+ // 1 tick wait is required for DOM update
7082
+ setTimeout(() => {
7083
+ // Cursor will be lost
7084
+ // The lint disabling here should be clearified. See if and how this directive is needed.
7085
+ this.elRef.nativeElement.innerHTML = this.sanitizer.sanitize(SecurityContext.HTML, this.elRef.nativeElement.innerText.replace(/\n/g, '<br />'));
7086
+ });
7087
+ }
7088
+ }
7089
+ }
7090
+ onDrop(event) {
7091
+ this.onInput();
7092
+ // For text-only contenteditable, don't allow drop content.
7093
+ if (!this.lxContenteditableHtml || !this.lxContenteditableHtmlPaste) {
7094
+ event.preventDefault();
7095
+ event.stopPropagation();
7096
+ return false;
7097
+ }
7098
+ return;
7099
+ }
7100
+ cleanContent(value, initialInlineData = false) {
7101
+ if (this.lxContenteditableHtml === 'trim' || (this.lxContenteditableHtml && initialInlineData)) {
7102
+ value = trimHtml(value);
7103
+ }
7104
+ else if (initialInlineData && !this.lxContenteditableHtml && value) {
7105
+ value = value.replace(/^[\n\s]+/, '');
7106
+ value = value.replace(/[\n\s]+$/, '');
7107
+ }
7108
+ // Some browsers like Chrome insert nbsp; when using contentEditable attribute
7109
+ return new NbspPipe().transform(value);
7110
+ }
7111
+ refreshView() {
7112
+ if (!isNil(this.lxContenteditableModel)) {
7113
+ const newContent = this.cleanContent(this.lxContenteditableModel);
7114
+ // Only refresh if content changed to avoid cursor loss
7115
+ // (as ngOnChanges can be triggered an additional time by onInput())
7116
+ if (this.emittedValue === null || this.emittedValue !== newContent) {
7117
+ this.elRef.nativeElement[this.getProperty()] = this.sanitize(newContent);
7118
+ }
7119
+ }
7120
+ }
7121
+ getProperty() {
7122
+ return this.lxContenteditableHtml ? 'innerHTML' : 'innerText';
7123
+ }
7124
+ sanitize(content) {
7125
+ return this.lxContenteditableHtml ? this.sanitizer.sanitize(SecurityContext.HTML, content) : content;
7126
+ }
7127
+ }
7128
+ ContenteditableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ContenteditableDirective, deps: [{ token: i0.ElementRef }, { token: i1$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Directive });
7129
+ ContenteditableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: ContenteditableDirective, selector: "[lxContenteditableModel]", inputs: { lxContenteditableModel: "lxContenteditableModel", lxContenteditableHtml: "lxContenteditableHtml", lxContenteditableHtmlPaste: "lxContenteditableHtmlPaste" }, outputs: { lxContenteditableModelChange: "lxContenteditableModelChange" }, host: { listeners: { "input": "onInput()", "blur": "onInput()", "keyup": "onInput()", "paste": "onPaste($event)", "drop": "onDrop($event)" } }, usesOnChanges: true, ngImport: i0 });
7130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ContenteditableDirective, decorators: [{
7131
+ type: Directive,
7132
+ args: [{
7133
+ selector: '[lxContenteditableModel]'
7134
+ }]
7135
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$3.DomSanitizer }]; }, propDecorators: { lxContenteditableModel: [{
7136
+ type: Input
7137
+ }], lxContenteditableModelChange: [{
7138
+ type: Output
7139
+ }], lxContenteditableHtml: [{
7140
+ type: Input
7141
+ }], lxContenteditableHtmlPaste: [{
7142
+ type: Input
7143
+ }], onInput: [{
7144
+ type: HostListener,
7145
+ args: ['input']
7146
+ }, {
7147
+ type: HostListener,
7148
+ args: ['blur']
7149
+ }, {
7150
+ type: HostListener,
7151
+ args: ['keyup']
7152
+ }], onPaste: [{
7153
+ type: HostListener,
7154
+ args: ['paste', ['$event']]
7155
+ }], onDrop: [{
7156
+ type: HostListener,
7157
+ args: ['drop', ['$event']]
7158
+ }] } });
7159
+
7003
7160
  class FormSubmitDirective {
7004
7161
  constructor(elementRef) {
7005
7162
  this.elementRef = elementRef;
@@ -7284,7 +7441,8 @@ LxFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
7284
7441
  FormatNumberPipe,
7285
7442
  FormErrorDirective,
7286
7443
  ErrorMessageComponent,
7287
- FormSubmitDirective], imports: [CommonModule,
7444
+ FormSubmitDirective,
7445
+ ContenteditableDirective], imports: [CommonModule,
7288
7446
  FormsModule,
7289
7447
  ReactiveFormsModule, i1$2.TranslateModule, DatepickerUiModule, InfiniteScrollModule,
7290
7448
  ClipboardModule,
@@ -7330,7 +7488,8 @@ LxFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
7330
7488
  FormErrorDirective,
7331
7489
  FormSubmitDirective,
7332
7490
  ErrorMessageComponent,
7333
- LxDragAndDropListModule] });
7491
+ LxDragAndDropListModule,
7492
+ ContenteditableDirective] });
7334
7493
  LxFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LxFormsModule, imports: [CommonModule,
7335
7494
  FormsModule,
7336
7495
  ReactiveFormsModule,
@@ -7385,7 +7544,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
7385
7544
  FormatNumberPipe,
7386
7545
  FormErrorDirective,
7387
7546
  ErrorMessageComponent,
7388
- FormSubmitDirective
7547
+ FormSubmitDirective,
7548
+ ContenteditableDirective
7389
7549
  ],
7390
7550
  imports: [
7391
7551
  CommonModule,
@@ -7440,7 +7600,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
7440
7600
  FormErrorDirective,
7441
7601
  FormSubmitDirective,
7442
7602
  ErrorMessageComponent,
7443
- LxDragAndDropListModule
7603
+ LxDragAndDropListModule,
7604
+ ContenteditableDirective
7444
7605
  ]
7445
7606
  }]
7446
7607
  }] });
@@ -7506,6 +7667,22 @@ function ValidateStringNotInArrayAsync(array$, valueMapFunction, validatorName =
7506
7667
  };
7507
7668
  }
7508
7669
 
7670
+ const MODAL_CLOSE = new InjectionToken('MODAL_CLOSE');
7671
+ /**
7672
+ * An enum to track how the modal was closed
7673
+ * Escape - Esc key press
7674
+ * CloseButton - top right close button (x)
7675
+ * OutsideClick - click outside the modal
7676
+ * Other - modal close with the trigger through closeModal$ subject
7677
+ */
7678
+ var ModalCloseClickLocation;
7679
+ (function (ModalCloseClickLocation) {
7680
+ ModalCloseClickLocation["Escape"] = "escape";
7681
+ ModalCloseClickLocation["CloseButton"] = "closeButton";
7682
+ ModalCloseClickLocation["OutsideClick"] = "outsideClick";
7683
+ ModalCloseClickLocation["Other"] = "other";
7684
+ })(ModalCloseClickLocation || (ModalCloseClickLocation = {}));
7685
+
7509
7686
  class ModalFooterComponent {
7510
7687
  constructor() {
7511
7688
  this.border = false;
@@ -7548,22 +7725,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
7548
7725
  }]
7549
7726
  }] });
7550
7727
 
7551
- const MODAL_CLOSE = new InjectionToken('MODAL_CLOSE');
7552
- /**
7553
- * An enum to track how the modal was closed
7554
- * Escape - Esc key press
7555
- * CloseButton - top right close button (x)
7556
- * OutsideClick - click outside the modal
7557
- * Other - modal close with the trigger through closeModal$ subject
7558
- */
7559
- var ModalCloseClickLocation;
7560
- (function (ModalCloseClickLocation) {
7561
- ModalCloseClickLocation["Escape"] = "escape";
7562
- ModalCloseClickLocation["CloseButton"] = "closeButton";
7563
- ModalCloseClickLocation["OutsideClick"] = "outsideClick";
7564
- ModalCloseClickLocation["Other"] = "other";
7565
- })(ModalCloseClickLocation || (ModalCloseClickLocation = {}));
7566
-
7567
7728
  /**
7568
7729
  *
7569
7730
  * ATTENTION - SCROLLABLE DIALOG:
@@ -8276,5 +8437,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
8276
8437
  * Generated bundle index. Do not edit.
8277
8438
  */
8278
8439
 
8279
- export { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, AfterViewInitDirective, AutocloseDirective, AutofocusDirective, BACKSPACE, BadgeComponent, BaseSelectDirective, BasicDropdownComponent, BasicDropdownItemComponent, BrPipe, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CURRENCY_SYMBOL_MAP, CardComponent, CdkOptionsDropdownComponent, CdkOptionsSubDropdownComponent, CollapsibleComponent, ColoredLabelComponent, ContrastColorPipe, CopyButtonComponent, CurrencyInputComponent, CurrencySymbolComponent, CustomDatePipe, DATE_FN_LOCALE, DATE_FORMATS, DateInputComponent, DragAndDropListComponent, DragAndDropListItemComponent, ENTER, ESCAPE, EllipsisComponent, ErrorMessageComponent, ExpandedDropdownComponent, FORM_CONTROL_ERROR_DISPLAY_STRATEGY, FORM_CONTROL_ERROR_NAMESPACE, FileDownloadButtonComponent, FilterSelectionPipe, FilterTermPipe, FormErrorComponent, FormErrorDirective, FormSubmitDirective, FormatNumberPipe, GLOBAL_TRANSLATION_OPTIONS, HighlightRangePipe, HighlightTermPipe, HtmlDirective, IconComponent, IconScaleComponent, KeyboardActionSourceDirective, KeyboardSelectAction, KeyboardSelectDirective, LOCALE_FN, LX_ELLIPSIS_DEBOUNCE_ON_RESIZE, LxCoreUiModule, LxDragAndDropListModule, LxFormsModule, LxIsUuidPipe, LxLinkifyPipe, LxModalModule, LxPopoverUiModule, LxTabUiModule, LxTimeAgo, LxTooltipModule, LxTranslatePipe, LxUnlinkifyPipe, MODAL_CLOSE, MarkInvalidDirective, MarkdownPipe, ModalCloseClickLocation, ModalComponent, ModalContentDirective, ModalFooterComponent, ModalHeaderComponent, MultiSelectComponent, NbspPipe, OptionComponent, OptionGroupComponent, OptionGroupDropdownComponent, OptionsDropdownComponent, OptionsSubDropdownComponent, PickerComponent, PickerOptionComponent, PickerTriggerDirective, PillItemComponent, PillListComponent, PopoverClickDirective, PopoverComponent, PopoverContentDirective, PopoverHoverDirective, RELEVANCE_SORTING_KEY, Required, ResizeObserverService, ResponsiveInputComponent, SPACE, SelectDropdownDirective, SelectListComponent, SelectableItemDirective, SelectedOptionDirective, SingleSelectComponent, SliderToggleComponent, SortPipe, Sorting, SortingDropdownComponent, SortingDropdownTriggerComponent, SpinnerComponent, TAB, TabComponent, TabGroupComponent, TableComponent, TableHeaderComponent, TinySpinnerComponent, TooltipComponent, TooltipDirective, TranslationAfterPipe, TranslationBeforePipe, TranslationBetweenPipe, UnescapeCurlyBracesPipe, ValidateDateInForeseeableFuture, ValidateStringNotInArray, ValidateStringNotInArrayAsync, getContrastColor, getTranslationParts, isValidHexColor, isValidX, isValidY, provideFormControlErrorDisplayStrategy, provideFormControlErrorNamespace, shorthandHexHandle };
8440
+ export { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, AfterViewInitDirective, AutocloseDirective, AutofocusDirective, BACKSPACE, BadgeComponent, BaseSelectDirective, BasicDropdownComponent, BasicDropdownItemComponent, BrPipe, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CURRENCY_SYMBOL_MAP, CardComponent, CdkOptionsDropdownComponent, CdkOptionsSubDropdownComponent, CollapsibleComponent, ColoredLabelComponent, ContenteditableDirective, ContrastColorPipe, CopyButtonComponent, CurrencyInputComponent, CurrencySymbolComponent, CustomDatePipe, DATE_FN_LOCALE, DATE_FORMATS, DateInputComponent, DragAndDropListComponent, DragAndDropListItemComponent, ENTER, ESCAPE, EllipsisComponent, ErrorMessageComponent, ExpandedDropdownComponent, FORM_CONTROL_ERROR_DISPLAY_STRATEGY, FORM_CONTROL_ERROR_NAMESPACE, FileDownloadButtonComponent, FilterSelectionPipe, FilterTermPipe, FormErrorComponent, FormErrorDirective, FormSubmitDirective, FormatNumberPipe, GLOBAL_TRANSLATION_OPTIONS, HighlightRangePipe, HighlightTermPipe, HtmlDirective, IconComponent, IconScaleComponent, KeyboardActionSourceDirective, KeyboardSelectAction, KeyboardSelectDirective, LOCALE_FN, LX_ELLIPSIS_DEBOUNCE_ON_RESIZE, LxCoreUiModule, LxDragAndDropListModule, LxFormsModule, LxIsUuidPipe, LxLinkifyPipe, LxModalModule, LxPopoverUiModule, LxTabUiModule, LxTimeAgo, LxTooltipModule, LxTranslatePipe, LxUnlinkifyPipe, MODAL_CLOSE, MarkInvalidDirective, MarkdownPipe, ModalCloseClickLocation, ModalComponent, ModalContentDirective, ModalFooterComponent, ModalHeaderComponent, MultiSelectComponent, NbspPipe, OptionComponent, OptionGroupComponent, OptionGroupDropdownComponent, OptionsDropdownComponent, OptionsSubDropdownComponent, PickerComponent, PickerOptionComponent, PickerTriggerDirective, PillItemComponent, PillListComponent, PopoverClickDirective, PopoverComponent, PopoverContentDirective, PopoverHoverDirective, RELEVANCE_SORTING_KEY, Required, ResizeObserverService, ResponsiveInputComponent, SPACE, SelectDropdownDirective, SelectListComponent, SelectableItemDirective, SelectedOptionDirective, SingleSelectComponent, SliderToggleComponent, SortPipe, Sorting, SortingDropdownComponent, SortingDropdownTriggerComponent, SpinnerComponent, TAB, TabComponent, TabGroupComponent, TableComponent, TableHeaderComponent, TinySpinnerComponent, TooltipComponent, TooltipDirective, TranslationAfterPipe, TranslationBeforePipe, TranslationBetweenPipe, UnescapeCurlyBracesPipe, ValidateDateInForeseeableFuture, ValidateStringNotInArray, ValidateStringNotInArrayAsync, getContrastColor, getTranslationParts, isValidHexColor, isValidX, isValidY, provideFormControlErrorDisplayStrategy, provideFormControlErrorNamespace, shorthandHexHandle };
8280
8441
  //# sourceMappingURL=leanix-components.mjs.map