@leanix/components 0.4.13 → 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';
@@ -1362,18 +1374,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
1362
1374
  }]
1363
1375
  }] });
1364
1376
 
1365
- const DATE_FORMATS = new InjectionToken('DATE_FORMATS', {
1366
- providedIn: 'root',
1367
- factory: () => ({
1368
- getDateFormat: () => 'YYYY-MM-DD',
1369
- getDateTimeFormat: () => 'YYYY-MM-DD HH:mm',
1370
- getDateTimeFormatWithSeconds: () => 'YYYY-MM-DD HH:mm:ss'
1371
- })
1372
- });
1373
- const DATE_FN_LOCALE = new InjectionToken('DATE_FN_LOCALE');
1374
- const LOCALE_FN = new InjectionToken('LOCALE_FN');
1375
- const GLOBAL_TRANSLATION_OPTIONS = new InjectionToken('GLOBAL_TRANSLATION_OPTIONS');
1376
-
1377
1377
  class CustomDatePipe {
1378
1378
  constructor(getDateFnLocale) {
1379
1379
  this.getDateFnLocale = getDateFnLocale;
@@ -6962,6 +6962,163 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
6962
6962
  type: Output
6963
6963
  }] } });
6964
6964
 
6965
+ // /**
6966
+ // * Converts HTML to text, preserving semantic newlines for block-level
6967
+ // * elements. (Taken from https://stackoverflow.com/a/20384452/6813271)
6968
+ // *
6969
+ // * @param node - The HTML node to perform text extraction.
6970
+ // */
6971
+ // export function getNodeTextWithNewlines(node: Element, _inner = false): string {
6972
+ // let result = '';
6973
+ // if (node.nodeType === document.TEXT_NODE) {
6974
+ // // Replace repeated spaces, newlines, and tabs with a single space.
6975
+ // result = node.nodeValue.replace( /\s+/g, ' ' );
6976
+ // } else {
6977
+ // for (let i = 0, j = node.childNodes.length; i < j; i++ ) {
6978
+ // result += this.getNodeTextWithNewlines(node.childNodes[i] as Element, true);
6979
+ // }
6980
+ // const d = node['currentStyle'] ?
6981
+ // node['currentStyle']['display'] :
6982
+ // document.defaultView.getComputedStyle(node, null).getPropertyValue('display');
6983
+ // if (d.match(/^block/)) {
6984
+ // result = '\n' + result + '\n';
6985
+ // } else if (d.match(/list/) || d.match(/row/) || node.tagName === 'BR' || node.tagName === 'HR' ) {
6986
+ // result += '\n';
6987
+ // }
6988
+ // }
6989
+ // return _inner ? result : _.trim(result, '\n');
6990
+ // }
6991
+ /** Trim whitespaces from html */
6992
+ function trimHtml(str) {
6993
+ return str
6994
+ .replace(/(<\/?(br *\/?|p)>|&nbsp;|\s)*$/i, '')
6995
+ .replace(/^(<\/?(br *\/?|p)>|&nbsp;|\s)*/i, '')
6996
+ .replace(/^<(div|p)>(<\/?(br *\/?|p)>|&nbsp;|\s)*<\/ *(div|p)>$/i, '');
6997
+ }
6998
+
6999
+ // First version based on https://stackoverflow.com/a/41253897/6813271
7000
+ class ContenteditableDirective {
7001
+ constructor(elRef, sanitizer) {
7002
+ this.elRef = elRef;
7003
+ this.sanitizer = sanitizer;
7004
+ this.lxContenteditableModelChange = new EventEmitter();
7005
+ /** Allow (sanitized) html */
7006
+ this.lxContenteditableHtml = false;
7007
+ this.lxContenteditableHtmlPaste = true;
7008
+ this.emittedValue = null;
7009
+ }
7010
+ ngOnChanges(changes) {
7011
+ if (changes['lxContenteditableModel']) {
7012
+ // On init: if lxContenteditableModel is empty, read from DOM in case the element has content
7013
+ if (changes['lxContenteditableModel'].isFirstChange() && !this.lxContenteditableModel) {
7014
+ // Prevent Exp.HasChanged: Don't read and emit value from DOM during change detection
7015
+ setTimeout(() => {
7016
+ this.onInput(true);
7017
+ });
7018
+ }
7019
+ this.refreshView();
7020
+ }
7021
+ }
7022
+ onInput(initialInlineData = false) {
7023
+ let value = this.elRef.nativeElement[this.getProperty()];
7024
+ value = this.cleanContent(value, initialInlineData);
7025
+ this.emittedValue = value;
7026
+ this.lxContenteditableModelChange.emit(value);
7027
+ }
7028
+ /**
7029
+ * @param event {ClipboardEvent}
7030
+ */
7031
+ onPaste(event) {
7032
+ const clipboardEvent = event;
7033
+ this.onInput();
7034
+ // For text-only contenteditable, remove pasted HTML.
7035
+ if (!this.lxContenteditableHtml || !this.lxContenteditableHtmlPaste) {
7036
+ let isHtml = true;
7037
+ // TODO: Use beforepaste event. See https://www.lucidchart.com/techblog/2014/12/02/definitive-guide-copying-pasting-javascript/.
7038
+ if (clipboardEvent.clipboardData && clipboardEvent.clipboardData.types) {
7039
+ const types = [].slice.apply(clipboardEvent.clipboardData.types);
7040
+ isHtml = intersection(types, ['text/html', 'com.apple.webarchive']).length > 0;
7041
+ }
7042
+ if (isHtml) {
7043
+ // 1 tick wait is required for DOM update
7044
+ setTimeout(() => {
7045
+ // Cursor will be lost
7046
+ // The lint disabling here should be clearified. See if and how this directive is needed.
7047
+ this.elRef.nativeElement.innerHTML = this.sanitizer.sanitize(SecurityContext.HTML, this.elRef.nativeElement.innerText.replace(/\n/g, '<br />'));
7048
+ });
7049
+ }
7050
+ }
7051
+ }
7052
+ onDrop(event) {
7053
+ this.onInput();
7054
+ // For text-only contenteditable, don't allow drop content.
7055
+ if (!this.lxContenteditableHtml || !this.lxContenteditableHtmlPaste) {
7056
+ event.preventDefault();
7057
+ event.stopPropagation();
7058
+ return false;
7059
+ }
7060
+ return;
7061
+ }
7062
+ cleanContent(value, initialInlineData = false) {
7063
+ if (this.lxContenteditableHtml === 'trim' || (this.lxContenteditableHtml && initialInlineData)) {
7064
+ value = trimHtml(value);
7065
+ }
7066
+ else if (initialInlineData && !this.lxContenteditableHtml && value) {
7067
+ value = value.replace(/^[\n\s]+/, '');
7068
+ value = value.replace(/[\n\s]+$/, '');
7069
+ }
7070
+ // Some browsers like Chrome insert nbsp; when using contentEditable attribute
7071
+ return new NbspPipe().transform(value);
7072
+ }
7073
+ refreshView() {
7074
+ if (!isNil(this.lxContenteditableModel)) {
7075
+ const newContent = this.cleanContent(this.lxContenteditableModel);
7076
+ // Only refresh if content changed to avoid cursor loss
7077
+ // (as ngOnChanges can be triggered an additional time by onInput())
7078
+ if (this.emittedValue === null || this.emittedValue !== newContent) {
7079
+ this.elRef.nativeElement[this.getProperty()] = this.sanitize(newContent);
7080
+ }
7081
+ }
7082
+ }
7083
+ getProperty() {
7084
+ return this.lxContenteditableHtml ? 'innerHTML' : 'innerText';
7085
+ }
7086
+ sanitize(content) {
7087
+ return this.lxContenteditableHtml ? this.sanitizer.sanitize(SecurityContext.HTML, content) : content;
7088
+ }
7089
+ }
7090
+ 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 });
7091
+ 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 });
7092
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ContenteditableDirective, decorators: [{
7093
+ type: Directive,
7094
+ args: [{
7095
+ selector: '[lxContenteditableModel]'
7096
+ }]
7097
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$3.DomSanitizer }]; }, propDecorators: { lxContenteditableModel: [{
7098
+ type: Input
7099
+ }], lxContenteditableModelChange: [{
7100
+ type: Output
7101
+ }], lxContenteditableHtml: [{
7102
+ type: Input
7103
+ }], lxContenteditableHtmlPaste: [{
7104
+ type: Input
7105
+ }], onInput: [{
7106
+ type: HostListener,
7107
+ args: ['input']
7108
+ }, {
7109
+ type: HostListener,
7110
+ args: ['blur']
7111
+ }, {
7112
+ type: HostListener,
7113
+ args: ['keyup']
7114
+ }], onPaste: [{
7115
+ type: HostListener,
7116
+ args: ['paste', ['$event']]
7117
+ }], onDrop: [{
7118
+ type: HostListener,
7119
+ args: ['drop', ['$event']]
7120
+ }] } });
7121
+
6965
7122
  class FormSubmitDirective {
6966
7123
  constructor(elementRef) {
6967
7124
  this.elementRef = elementRef;
@@ -7240,7 +7397,8 @@ LxFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
7240
7397
  FormatNumberPipe,
7241
7398
  FormErrorDirective,
7242
7399
  ErrorMessageComponent,
7243
- FormSubmitDirective], imports: [CommonModule,
7400
+ FormSubmitDirective,
7401
+ ContenteditableDirective], imports: [CommonModule,
7244
7402
  FormsModule,
7245
7403
  ReactiveFormsModule, i1$2.TranslateModule, DatepickerUiModule, InfiniteScrollModule,
7246
7404
  ClipboardModule,
@@ -7286,7 +7444,8 @@ LxFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
7286
7444
  FormErrorDirective,
7287
7445
  FormSubmitDirective,
7288
7446
  ErrorMessageComponent,
7289
- LxDragAndDropListModule] });
7447
+ LxDragAndDropListModule,
7448
+ ContenteditableDirective] });
7290
7449
  LxFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LxFormsModule, imports: [CommonModule,
7291
7450
  FormsModule,
7292
7451
  ReactiveFormsModule,
@@ -7341,7 +7500,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
7341
7500
  FormatNumberPipe,
7342
7501
  FormErrorDirective,
7343
7502
  ErrorMessageComponent,
7344
- FormSubmitDirective
7503
+ FormSubmitDirective,
7504
+ ContenteditableDirective
7345
7505
  ],
7346
7506
  imports: [
7347
7507
  CommonModule,
@@ -7396,7 +7556,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
7396
7556
  FormErrorDirective,
7397
7557
  FormSubmitDirective,
7398
7558
  ErrorMessageComponent,
7399
- LxDragAndDropListModule
7559
+ LxDragAndDropListModule,
7560
+ ContenteditableDirective
7400
7561
  ]
7401
7562
  }]
7402
7563
  }] });
@@ -7462,6 +7623,22 @@ function ValidateStringNotInArrayAsync(array$, valueMapFunction, validatorName =
7462
7623
  };
7463
7624
  }
7464
7625
 
7626
+ const MODAL_CLOSE = new InjectionToken('MODAL_CLOSE');
7627
+ /**
7628
+ * An enum to track how the modal was closed
7629
+ * Escape - Esc key press
7630
+ * CloseButton - top right close button (x)
7631
+ * OutsideClick - click outside the modal
7632
+ * Other - modal close with the trigger through closeModal$ subject
7633
+ */
7634
+ var ModalCloseClickLocation;
7635
+ (function (ModalCloseClickLocation) {
7636
+ ModalCloseClickLocation["Escape"] = "escape";
7637
+ ModalCloseClickLocation["CloseButton"] = "closeButton";
7638
+ ModalCloseClickLocation["OutsideClick"] = "outsideClick";
7639
+ ModalCloseClickLocation["Other"] = "other";
7640
+ })(ModalCloseClickLocation || (ModalCloseClickLocation = {}));
7641
+
7465
7642
  class ModalFooterComponent {
7466
7643
  constructor() {
7467
7644
  this.border = false;
@@ -7504,22 +7681,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
7504
7681
  }]
7505
7682
  }] });
7506
7683
 
7507
- const MODAL_CLOSE = new InjectionToken('MODAL_CLOSE');
7508
- /**
7509
- * An enum to track how the modal was closed
7510
- * Escape - Esc key press
7511
- * CloseButton - top right close button (x)
7512
- * OutsideClick - click outside the modal
7513
- * Other - modal close with the trigger through closeModal$ subject
7514
- */
7515
- var ModalCloseClickLocation;
7516
- (function (ModalCloseClickLocation) {
7517
- ModalCloseClickLocation["Escape"] = "escape";
7518
- ModalCloseClickLocation["CloseButton"] = "closeButton";
7519
- ModalCloseClickLocation["OutsideClick"] = "outsideClick";
7520
- ModalCloseClickLocation["Other"] = "other";
7521
- })(ModalCloseClickLocation || (ModalCloseClickLocation = {}));
7522
-
7523
7684
  /**
7524
7685
  *
7525
7686
  * ATTENTION - SCROLLABLE DIALOG:
@@ -8225,5 +8386,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
8225
8386
  * Generated bundle index. Do not edit.
8226
8387
  */
8227
8388
 
8228
- 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 };
8389
+ 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 };
8229
8390
  //# sourceMappingURL=leanix-components.mjs.map