@leanix/components 0.2.239 → 0.2.242
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/index.mjs +3 -1
- package/esm2020/lib/core-ui/core-ui.module.mjs +11 -1
- package/esm2020/lib/core-ui/pipes/linkify/linkify.pipe.mjs +130 -0
- package/esm2020/lib/core-ui/pipes/linkify/unlinkify.pipe.mjs +48 -0
- package/esm2020/lib/core-ui/services/resize-observer.service.mjs +51 -2
- package/fesm2015/leanix-components.mjs +229 -3
- package/fesm2015/leanix-components.mjs.map +1 -1
- package/fesm2020/leanix-components.mjs +232 -3
- package/fesm2020/leanix-components.mjs.map +1 -1
- package/index.d.ts +2 -0
- package/lib/core-ui/core-ui.module.d.ts +20 -18
- package/lib/core-ui/pipes/linkify/linkify.pipe.d.ts +48 -0
- package/lib/core-ui/pipes/linkify/unlinkify.pipe.d.ts +20 -0
- package/lib/core-ui/services/resize-observer.service.d.ts +8 -0
- package/package.json +1 -1
@@ -8,7 +8,7 @@ import * as i1 from '@angular/cdk/overlay';
|
|
8
8
|
import { OverlayModule, CdkConnectedOverlay } from '@angular/cdk/overlay';
|
9
9
|
import { __decorate, __awaiter } from 'tslib';
|
10
10
|
import * as i6 from 'rxjs';
|
11
|
-
import { BehaviorSubject, Subject, combineLatest, merge, concat, fromEvent, Observable, ReplaySubject, of
|
11
|
+
import { BehaviorSubject, timer, Subject, combineLatest, merge, concat, fromEvent, Observable, ReplaySubject, of } from 'rxjs';
|
12
12
|
import { skipWhile, map, switchMap, startWith, pairwise, filter, take, debounceTime, skip, withLatestFrom, distinctUntilChanged, takeUntil, first, delay, mapTo, tap } from 'rxjs/operators';
|
13
13
|
import * as i1$1 from '@ngx-translate/core';
|
14
14
|
import { TranslatePipe, TranslateModule } from '@ngx-translate/core';
|
@@ -518,7 +518,16 @@ function isResizeableElement(element) {
|
|
518
518
|
class ResizeObserverService {
|
519
519
|
observe(element, callback, options) {
|
520
520
|
if (!this.resizeObserver) {
|
521
|
-
|
521
|
+
try {
|
522
|
+
this.resizeObserver = new ResizeObserver(this.resizeObserverCallback.bind(this));
|
523
|
+
}
|
524
|
+
catch (_a) {
|
525
|
+
// All the browsers we support implement the ResizeObserver API.
|
526
|
+
// For unsupported browsers, there's this "one time artifical resize event".
|
527
|
+
// They will not get the functionality tied to later resize events.
|
528
|
+
timer(500).subscribe(() => callback(this.getMockOneTimeResizeEventForUnsupportedBrowsers(element)));
|
529
|
+
return;
|
530
|
+
}
|
522
531
|
}
|
523
532
|
element.handleResize = callback;
|
524
533
|
this.resizeObserver.observe(element, options);
|
@@ -536,6 +545,42 @@ class ResizeObserverService {
|
|
536
545
|
}
|
537
546
|
});
|
538
547
|
}
|
548
|
+
/**
|
549
|
+
* All browsers we officially support implement the ResizeObserver API.
|
550
|
+
* Still as a curtesy do customers who for some reason have older browsers
|
551
|
+
* we call the callback once with the initial dimensions of the element
|
552
|
+
* and then do not react on resize events afterwards.
|
553
|
+
* This should still make them happier than a "browser not supported" warning.
|
554
|
+
*/
|
555
|
+
getMockOneTimeResizeEventForUnsupportedBrowsers(element) {
|
556
|
+
const contentRect = {
|
557
|
+
bottom: element.clientHeight,
|
558
|
+
height: element.clientHeight,
|
559
|
+
left: 0,
|
560
|
+
right: element.clientWidth,
|
561
|
+
top: 0,
|
562
|
+
width: element.clientWidth,
|
563
|
+
x: 0,
|
564
|
+
y: 0
|
565
|
+
};
|
566
|
+
return {
|
567
|
+
borderBoxSize: [{ blockSize: element.clientHeight, inlineSize: element.clientWidth }],
|
568
|
+
contentBoxSize: [
|
569
|
+
{
|
570
|
+
blockSize: element.clientHeight,
|
571
|
+
inlineSize: element.clientWidth
|
572
|
+
}
|
573
|
+
],
|
574
|
+
contentRect: Object.assign(Object.assign({}, contentRect), { toJSON: () => JSON.stringify(contentRect) }),
|
575
|
+
devicePixelContentBoxSize: [
|
576
|
+
{
|
577
|
+
blockSize: element.clientWidth,
|
578
|
+
inlineSize: element.clientWidth
|
579
|
+
}
|
580
|
+
],
|
581
|
+
target: element
|
582
|
+
};
|
583
|
+
}
|
539
584
|
}
|
540
585
|
ResizeObserverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ResizeObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
541
586
|
ResizeObserverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ResizeObserverService, providedIn: 'root' });
|
@@ -1154,6 +1199,179 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
|
|
1154
1199
|
args: [{ name: 'lxHighlightTerm' }]
|
1155
1200
|
}] });
|
1156
1201
|
|
1202
|
+
/**
|
1203
|
+
* This pipe transforms...
|
1204
|
+
* - "raw" http(s) links
|
1205
|
+
* - markdown link syntax
|
1206
|
+
* ... into clickable anchor elements.
|
1207
|
+
*
|
1208
|
+
* You have an user interface where you don't want clickable links but also
|
1209
|
+
* don't want users to see the "ugly" markdown link syntax?
|
1210
|
+
* -> Use the 'lxUnlikify' pipe to replace markdown link syntax with just the link name
|
1211
|
+
*/
|
1212
|
+
class LxLinkifyPipe {
|
1213
|
+
transform(text) {
|
1214
|
+
if (text && typeof text === 'string') {
|
1215
|
+
const textWithRawLinks = this.wrapRawHttpLinksWithAnchorTags(text);
|
1216
|
+
const textWithRawAndNamedLinks = this.turnMarkdownStyleLinksIntoAnchorTags(textWithRawLinks);
|
1217
|
+
return textWithRawAndNamedLinks;
|
1218
|
+
}
|
1219
|
+
else {
|
1220
|
+
return text;
|
1221
|
+
}
|
1222
|
+
}
|
1223
|
+
turnMarkdownStyleLinksIntoAnchorTags(text) {
|
1224
|
+
let textWithRawAndNamedLinks = text;
|
1225
|
+
const namedLinkMatches = this.getAllRegexMatches(LxLinkifyPipe.NAMED_LINK_REGEX, text);
|
1226
|
+
namedLinkMatches.forEach((namedLinkMatch) => {
|
1227
|
+
const [source, name, url] = namedLinkMatch;
|
1228
|
+
const urlIsValid = url && !/javascript\:/i.test(url);
|
1229
|
+
if (source && name && urlIsValid) {
|
1230
|
+
textWithRawAndNamedLinks = textWithRawAndNamedLinks.replace(source, `<a href="${url}" target="_blank" rel="noopener noreferrer">${name}</a>`);
|
1231
|
+
}
|
1232
|
+
});
|
1233
|
+
return textWithRawAndNamedLinks;
|
1234
|
+
}
|
1235
|
+
wrapRawHttpLinksWithAnchorTags(text) {
|
1236
|
+
let textWithRawLinks = text;
|
1237
|
+
/**
|
1238
|
+
* Keeping track of this index prevents infinite loops
|
1239
|
+
* where a previously processed link starts with the same characters
|
1240
|
+
* as a second link.
|
1241
|
+
* e.g. https://angular.io/docs followed by https://angular.io
|
1242
|
+
*/
|
1243
|
+
let nextIndexToStartReplacingFrom = 0;
|
1244
|
+
const rawLinkMatches = this.getAllRegexMatches(LxLinkifyPipe.HTTP_LINK_REGEX, text);
|
1245
|
+
rawLinkMatches.forEach((rawLinkMatch) => {
|
1246
|
+
const [url] = rawLinkMatch;
|
1247
|
+
const wrapUrlInAnchor = (sanitizedUrlMatch) => {
|
1248
|
+
const firstPart = textWithRawLinks.substring(0, nextIndexToStartReplacingFrom);
|
1249
|
+
const anchorTagHtml = `<a href="${sanitizedUrlMatch}" target="_blank" rel="noopener noreferrer">${sanitizedUrlMatch}</a>`;
|
1250
|
+
const secondPart = textWithRawLinks.substring(nextIndexToStartReplacingFrom).replace(sanitizedUrlMatch, anchorTagHtml);
|
1251
|
+
textWithRawLinks = firstPart + secondPart;
|
1252
|
+
nextIndexToStartReplacingFrom = rawLinkMatch.index + anchorTagHtml.length;
|
1253
|
+
};
|
1254
|
+
if (url) {
|
1255
|
+
/*
|
1256
|
+
* TODO: get rid of all this code once Safari supports negative lookbehinds in regular expressions
|
1257
|
+
* The following is RegExp that handles the same stuff as the JS code below:
|
1258
|
+
*
|
1259
|
+
* /(?:(?:(?<!\]\())(?:https|http):\/\/)(?:[^\s/$.?#][^\s]*(?<![\.)]))/gi;
|
1260
|
+
*
|
1261
|
+
* Demo on regex101: https://regex101.com/r/7Vl9bg/1
|
1262
|
+
*
|
1263
|
+
* Check lookbehind support here: https://caniuse.com/?search=lookbehind
|
1264
|
+
*/
|
1265
|
+
const lastUrlCharacterIndex = rawLinkMatch.index + url.length - 1;
|
1266
|
+
const textUsedToPerformMatching = rawLinkMatch.input;
|
1267
|
+
const lastCharacterInUrl = textUsedToPerformMatching[lastUrlCharacterIndex];
|
1268
|
+
const twoCharactersInFrontOfTheLink = rawLinkMatch.index > 3
|
1269
|
+
? `${textUsedToPerformMatching[rawLinkMatch.index - 2]}${textUsedToPerformMatching[rawLinkMatch.index - 1]}`
|
1270
|
+
: '';
|
1271
|
+
const isMarkdownSyntaxLink = twoCharactersInFrontOfTheLink === '](';
|
1272
|
+
if (!isMarkdownSyntaxLink && lastCharacterInUrl === '.') {
|
1273
|
+
const characterAfterUrl = textUsedToPerformMatching[lastUrlCharacterIndex + 1];
|
1274
|
+
if (!characterAfterUrl || characterAfterUrl === ' ' || characterAfterUrl === '\n') {
|
1275
|
+
const urlWithoutDotAtTheEnd = url.slice(0, -1);
|
1276
|
+
wrapUrlInAnchor(urlWithoutDotAtTheEnd);
|
1277
|
+
}
|
1278
|
+
}
|
1279
|
+
else if (!isMarkdownSyntaxLink) {
|
1280
|
+
wrapUrlInAnchor(url);
|
1281
|
+
}
|
1282
|
+
}
|
1283
|
+
});
|
1284
|
+
return textWithRawLinks;
|
1285
|
+
}
|
1286
|
+
getAllRegexMatches(regex, input) {
|
1287
|
+
let match;
|
1288
|
+
const matches = [];
|
1289
|
+
while ((match = regex.exec(input)) !== null) {
|
1290
|
+
matches.push(match);
|
1291
|
+
}
|
1292
|
+
return matches;
|
1293
|
+
}
|
1294
|
+
}
|
1295
|
+
/**
|
1296
|
+
* This is not the "one URL regex to rule them all", but a more realistic one which should work
|
1297
|
+
* for any URLs that our customers include in text fields on a Fact Sheet.
|
1298
|
+
*
|
1299
|
+
* Regex rules explained in plain text:
|
1300
|
+
*
|
1301
|
+
* (?:(?:https?):\/\/) -> Links must start with "https://" or "http://"
|
1302
|
+
*
|
1303
|
+
* (?:[^\s/$.?#][^\s]*(?<![\.)])) LET'S SPLIT THIS ONE UP
|
1304
|
+
*
|
1305
|
+
* [^\s/$.?#][^\s]* -> Match any legal URL character until the next whitespace
|
1306
|
+
* (?<![\.)] -> A negative lookahead to prevent matching a dot or parenthesis following a URL
|
1307
|
+
*
|
1308
|
+
* Link to regex101: https://regex101.com/r/d3KtfH/1 (NOTE: please update this link when changing the regex)
|
1309
|
+
*/
|
1310
|
+
LxLinkifyPipe.HTTP_LINK_REGEX = /(?:(?:https?):\/\/)(?:[^\s/$.?#][^\s]*)/gi;
|
1311
|
+
/**
|
1312
|
+
* This will match the markdown link syntax: [link name](url)
|
1313
|
+
* Regex rules explained in plain text:
|
1314
|
+
*
|
1315
|
+
* (?:\[([^\]]*)\]) -> Match any characters inside square brackets
|
1316
|
+
* \(([^\s\/$.?#][^\s]*)\) -> Notice that this is the same regex as the HTTP_LINK_REGEX above,
|
1317
|
+
* but without the requirement for the http protocol.
|
1318
|
+
* This allows for links without including the protocol or also "mailto:hello@world.de" links
|
1319
|
+
*
|
1320
|
+
* Link to regex101: https://regex101.com/r/5UMUH8/1
|
1321
|
+
*/
|
1322
|
+
LxLinkifyPipe.NAMED_LINK_REGEX = /(?:\[([^\]]*)\])\(([^\s\/$.?#][^\s]*)\)/gi;
|
1323
|
+
LxLinkifyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxLinkifyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
1324
|
+
LxLinkifyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxLinkifyPipe, name: "lxLinkify" });
|
1325
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxLinkifyPipe, decorators: [{
|
1326
|
+
type: Pipe,
|
1327
|
+
args: [{ name: 'lxLinkify' }]
|
1328
|
+
}] });
|
1329
|
+
|
1330
|
+
/**
|
1331
|
+
* This pipe replaces markdown link syntax with just the link name (omits the link altogether).
|
1332
|
+
* Example: [Angular documentation](http://angular.io/docs) -> Angular documentation
|
1333
|
+
*
|
1334
|
+
* It can also be used for "bridging the gap" until your view is ready to use "lxLinkify"
|
1335
|
+
* and you just want to get rid of the "useless" markdown syntax fast.
|
1336
|
+
*
|
1337
|
+
* While there are views where we want markdown style links to be clickable anchor tags,
|
1338
|
+
* there are other views where this can degrade the UX.
|
1339
|
+
* Example: in the Fact Sheet list on the inventory list view, having an arbitrary number
|
1340
|
+
* of links on the page can slow down the keyboard navigation while navigating through the list.
|
1341
|
+
*/
|
1342
|
+
class LxUnlinkifyPipe {
|
1343
|
+
transform(text) {
|
1344
|
+
if (text && typeof text === 'string') {
|
1345
|
+
let textWhereMarkdownLinkSyntaxIsReplacedWithJustTheLinkName = text;
|
1346
|
+
const markdownLinkSyntaxMatches = this.getAllRegexMatches(LxLinkifyPipe.NAMED_LINK_REGEX, text);
|
1347
|
+
markdownLinkSyntaxMatches.forEach((markdownLinkSyntaxMatch) => {
|
1348
|
+
const [source, name] = markdownLinkSyntaxMatch;
|
1349
|
+
if (source && name) {
|
1350
|
+
textWhereMarkdownLinkSyntaxIsReplacedWithJustTheLinkName = textWhereMarkdownLinkSyntaxIsReplacedWithJustTheLinkName.replace(source, name);
|
1351
|
+
}
|
1352
|
+
});
|
1353
|
+
return textWhereMarkdownLinkSyntaxIsReplacedWithJustTheLinkName;
|
1354
|
+
}
|
1355
|
+
else {
|
1356
|
+
return text;
|
1357
|
+
}
|
1358
|
+
}
|
1359
|
+
getAllRegexMatches(regex, input) {
|
1360
|
+
let match;
|
1361
|
+
const matches = [];
|
1362
|
+
while ((match = regex.exec(input)) !== null) {
|
1363
|
+
matches.push(match);
|
1364
|
+
}
|
1365
|
+
return matches;
|
1366
|
+
}
|
1367
|
+
}
|
1368
|
+
LxUnlinkifyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxUnlinkifyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
1369
|
+
LxUnlinkifyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxUnlinkifyPipe, name: "lxUnlinkify" });
|
1370
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxUnlinkifyPipe, decorators: [{
|
1371
|
+
type: Pipe,
|
1372
|
+
args: [{ name: 'lxUnlinkify' }]
|
1373
|
+
}] });
|
1374
|
+
|
1157
1375
|
function isUuid(s) {
|
1158
1376
|
const uuidRegEx = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
1159
1377
|
return uuidRegEx.test(s);
|
@@ -1508,6 +1726,8 @@ LxCoreUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
1508
1726
|
HighlightTermPipe,
|
1509
1727
|
HtmlDirective,
|
1510
1728
|
IconScaleComponent,
|
1729
|
+
LxLinkifyPipe,
|
1730
|
+
LxUnlinkifyPipe,
|
1511
1731
|
LxTimeAgo,
|
1512
1732
|
LxTranslatePipe,
|
1513
1733
|
MarkdownPipe,
|
@@ -1538,6 +1758,8 @@ LxCoreUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
1538
1758
|
HighlightTermPipe,
|
1539
1759
|
HtmlDirective,
|
1540
1760
|
IconScaleComponent,
|
1761
|
+
LxLinkifyPipe,
|
1762
|
+
LxUnlinkifyPipe,
|
1541
1763
|
LxTimeAgo,
|
1542
1764
|
LxTranslatePipe,
|
1543
1765
|
MarkdownPipe,
|
@@ -1575,6 +1797,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
|
|
1575
1797
|
HighlightTermPipe,
|
1576
1798
|
HtmlDirective,
|
1577
1799
|
IconScaleComponent,
|
1800
|
+
LxLinkifyPipe,
|
1801
|
+
LxUnlinkifyPipe,
|
1578
1802
|
LxTimeAgo,
|
1579
1803
|
LxTranslatePipe,
|
1580
1804
|
MarkdownPipe,
|
@@ -1609,6 +1833,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
|
|
1609
1833
|
HighlightTermPipe,
|
1610
1834
|
HtmlDirective,
|
1611
1835
|
IconScaleComponent,
|
1836
|
+
LxLinkifyPipe,
|
1837
|
+
LxUnlinkifyPipe,
|
1612
1838
|
LxTimeAgo,
|
1613
1839
|
LxTranslatePipe,
|
1614
1840
|
MarkdownPipe,
|
@@ -6350,5 +6576,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
|
|
6350
6576
|
* Generated bundle index. Do not edit.
|
6351
6577
|
*/
|
6352
6578
|
|
6353
|
-
export { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, AfterViewInitDirective, AutocloseDirective, AutofocusDirective, BACKSPACE, BadgeComponent, BaseSelectDirective, BasicDropdownComponent, BasicDropdownItemComponent, BrPipe, ButtonComponent, ButtonGroupComponent, CURRENCY_SYMBOL_MAP, CardComponent, CdkOptionsDropdownComponent, CdkOptionsSubDropdownComponent, CollapsibleComponent, ColoredLabelComponent, ContrastColorPipe, CurrencyInputComponent, CurrencySymbolComponent, CustomDatePipe, DATE_FN_LOCALE, DATE_FORMATS, DateInputComponent, DragAndDropListComponent, DragAndDropListItemComponent, ENTER, ESCAPE, EllipsisComponent, ErrorMessageComponent, FORM_CONTROL_ERROR_DISPLAY_STRATEGY, FORM_CONTROL_ERROR_NAMESPACE, 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, LxModalModule, LxPopoverUiModule, LxTabUiModule, LxTimeAgo, LxTooltipModule, LxTranslatePipe, MODAL_CLOSE, MarkInvalidDirective, MarkdownPipe, ModalComponent, ModalContentDirective, ModalFooterComponent, ModalHeaderComponent, MultiSelectComponent, NbspPipe, OptionComponent, OptionGroupComponent, OptionGroupDropdownComponent, OptionsDropdownComponent, OptionsSubDropdownComponent, PickerComponent, PickerOptionComponent, PickerTriggerDirective, PillItemComponent, PillListComponent, PopoverClickDirective, PopoverComponent, PopoverContentDirective, PopoverHoverDirective, Required, ResizeObserverService, ResponsiveInputComponent, SPACE, SelectDropdownDirective, SelectableItemDirective, SelectedOptionDirective, SingleSelectComponent, SliderToggleComponent, SortPipe, Sorting, SortingDropdownComponent, SortingDropdownTriggerComponent, SpinnerComponent, TAB, TabComponent, TabGroupComponent, TableComponent, TableHeaderComponent, TinySpinnerComponent, TooltipComponent, TooltipDirective, TranslationAfterPipe, TranslationBeforePipe, TranslationBetweenPipe, UnescapeCurlyBracesPipe, ValidateDateInForeseeableFuture, getContrastColor, getTranslationParts, isValidHexColor, isValidX, isValidY, provideFormControlErrorDisplayStrategy, provideFormControlErrorNamespace, shorthandHexHandle };
|
6579
|
+
export { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, AfterViewInitDirective, AutocloseDirective, AutofocusDirective, BACKSPACE, BadgeComponent, BaseSelectDirective, BasicDropdownComponent, BasicDropdownItemComponent, BrPipe, ButtonComponent, ButtonGroupComponent, CURRENCY_SYMBOL_MAP, CardComponent, CdkOptionsDropdownComponent, CdkOptionsSubDropdownComponent, CollapsibleComponent, ColoredLabelComponent, ContrastColorPipe, CurrencyInputComponent, CurrencySymbolComponent, CustomDatePipe, DATE_FN_LOCALE, DATE_FORMATS, DateInputComponent, DragAndDropListComponent, DragAndDropListItemComponent, ENTER, ESCAPE, EllipsisComponent, ErrorMessageComponent, FORM_CONTROL_ERROR_DISPLAY_STRATEGY, FORM_CONTROL_ERROR_NAMESPACE, 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, ModalComponent, ModalContentDirective, ModalFooterComponent, ModalHeaderComponent, MultiSelectComponent, NbspPipe, OptionComponent, OptionGroupComponent, OptionGroupDropdownComponent, OptionsDropdownComponent, OptionsSubDropdownComponent, PickerComponent, PickerOptionComponent, PickerTriggerDirective, PillItemComponent, PillListComponent, PopoverClickDirective, PopoverComponent, PopoverContentDirective, PopoverHoverDirective, Required, ResizeObserverService, ResponsiveInputComponent, SPACE, SelectDropdownDirective, SelectableItemDirective, SelectedOptionDirective, SingleSelectComponent, SliderToggleComponent, SortPipe, Sorting, SortingDropdownComponent, SortingDropdownTriggerComponent, SpinnerComponent, TAB, TabComponent, TabGroupComponent, TableComponent, TableHeaderComponent, TinySpinnerComponent, TooltipComponent, TooltipDirective, TranslationAfterPipe, TranslationBeforePipe, TranslationBetweenPipe, UnescapeCurlyBracesPipe, ValidateDateInForeseeableFuture, getContrastColor, getTranslationParts, isValidHexColor, isValidX, isValidY, provideFormControlErrorDisplayStrategy, provideFormControlErrorNamespace, shorthandHexHandle };
|
6354
6580
|
//# sourceMappingURL=leanix-components.mjs.map
|