@indigina/ui-kit 1.1.508 → 1.1.510

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.
@@ -5454,9 +5454,9 @@ class KitBreadcrumbsService {
5454
5454
  collectBreadcrumbs(route) {
5455
5455
  const breadcrumbData = route.data['breadcrumb'] ?? [];
5456
5456
  const breadcrumbs = breadcrumbData.map(crumb => ({
5457
- text: this.isDynamicBreadcrumb(crumb.text)
5458
- && this.getDynamicBreadcrumbText(crumb.text, route.params)
5459
- || this.translateService.instant(crumb.text),
5457
+ text: this.isDynamicBreadcrumb(crumb.text) &&
5458
+ this.getDynamicBreadcrumbText(crumb.text, route.params) ||
5459
+ this.translateService.instant(crumb.text),
5460
5460
  url: this.replaceRouteParams(crumb.url, route.params),
5461
5461
  }));
5462
5462
  return route.firstChild && [
@@ -5849,8 +5849,8 @@ class KitGridComponent {
5849
5849
  const currentIndicator = this.dropIndicator();
5850
5850
  const dropTargetMidpoint = this.getDropTargetMidpoint(event);
5851
5851
  const distanceToMidpoint = Math.abs(event.dragEvent.clientY - dropTargetMidpoint);
5852
- if (currentIndicator?.targetRowIndex === event.dropTargetIndex
5853
- && distanceToMidpoint <= this.rowDropSwitchThresholdPx) {
5852
+ if (currentIndicator?.targetRowIndex === event.dropTargetIndex &&
5853
+ distanceToMidpoint <= this.rowDropSwitchThresholdPx) {
5854
5854
  return;
5855
5855
  }
5856
5856
  this.dropIndicator.set({
@@ -6352,9 +6352,9 @@ class KitCollapsedListComponent {
6352
6352
  requestAnimationFrame(() => this.initResizeObserver());
6353
6353
  }
6354
6354
  ngOnChanges({ itemList, gap, dropdownDefaultValueText }) {
6355
- if ((itemList && !itemList.isFirstChange())
6356
- || (gap && !gap.isFirstChange())
6357
- || (dropdownDefaultValueText && !dropdownDefaultValueText.isFirstChange())) {
6355
+ if ((itemList && !itemList.isFirstChange()) ||
6356
+ (gap && !gap.isFirstChange()) ||
6357
+ (dropdownDefaultValueText && !dropdownDefaultValueText.isFirstChange())) {
6358
6358
  requestAnimationFrame(() => this.resize());
6359
6359
  }
6360
6360
  }
@@ -7492,8 +7492,8 @@ class KitGlobalSearchComponent {
7492
7492
  if (!this.popup()?.isPopupOpen) {
7493
7493
  return;
7494
7494
  }
7495
- if (!this.textbox().hostElement.nativeElement.contains(event.target)
7496
- && !this.popup()?.popupHTMLElement?.contains(event.target)) {
7495
+ if (!this.textbox().hostElement.nativeElement.contains(event.target) &&
7496
+ !this.popup()?.popupHTMLElement?.contains(event.target)) {
7497
7497
  this.clearSearch();
7498
7498
  }
7499
7499
  }
@@ -7687,9 +7687,9 @@ const findMatches = (obj, translatePrefix, excludedKeys = [], search, translateV
7687
7687
  const handleObject = (obj, path) => {
7688
7688
  for (const [key, value,] of Object.entries(obj)) {
7689
7689
  const currentPath = path ? `${path}.${key}` : key;
7690
- const isMatch = typeof value === 'string'
7691
- && value.toLowerCase().includes(search.toLowerCase())
7692
- && !excludedKeys.includes(currentPath);
7690
+ const isMatch = typeof value === 'string' &&
7691
+ value.toLowerCase().includes(search.toLowerCase()) &&
7692
+ !excludedKeys.includes(currentPath);
7693
7693
  if (isMatch) {
7694
7694
  matches.push({
7695
7695
  path: currentPath,
@@ -9085,8 +9085,8 @@ class KitUsersSettingsEntitlementsFormComponent {
9085
9085
  effect(() => this.updateDisabledState());
9086
9086
  }
9087
9087
  get showPartnersControl() {
9088
- return this.form.get(KitUsersSettingsEntitlementsField.IDENTITY_TYPE)?.value === KitUsersSettingsEntitlementType.USER
9089
- && this.showIdentityType();
9088
+ return this.form.get(KitUsersSettingsEntitlementsField.IDENTITY_TYPE)?.value === KitUsersSettingsEntitlementType.USER &&
9089
+ this.showIdentityType();
9090
9090
  }
9091
9091
  submit() {
9092
9092
  const userId = this.userId();
@@ -9323,9 +9323,9 @@ class KitUsersSettingsPasswordDialogComponent {
9323
9323
  const control = this.form.get(field);
9324
9324
  const isTouchedAndDirty = !!control?.touched && !!control.dirty;
9325
9325
  const hasFieldError = isTouchedAndDirty && !!control?.invalid;
9326
- const hasMatchError = field === KitUsersSettingsPasswordDialogField.REPEAT_PASSWORD
9327
- && !!this.form.errors?.['passwordsMismatch']
9328
- && isTouchedAndDirty;
9326
+ const hasMatchError = field === KitUsersSettingsPasswordDialogField.REPEAT_PASSWORD &&
9327
+ !!this.form.errors?.['passwordsMismatch'] &&
9328
+ isTouchedAndDirty;
9329
9329
  return hasFieldError || hasMatchError ? KitTextboxState.ERROR : KitTextboxState.DEFAULT;
9330
9330
  }
9331
9331
  getTextboxMessageText(field) {
@@ -11331,8 +11331,8 @@ class KitFilterCheckboxComponent {
11331
11331
  this.selectedValues.set([]);
11332
11332
  return;
11333
11333
  }
11334
- const isNotNullOnly = filterValue.filters.length === 1
11335
- && filterValue.filters[0].operator === KitFilterOperator.IS_NOT_NULL;
11334
+ const isNotNullOnly = filterValue.filters.length === 1 &&
11335
+ filterValue.filters[0].operator === KitFilterOperator.IS_NOT_NULL;
11336
11336
  const hasNeq = filterValue.filters.some(f => f.operator === KitFilterOperator.NEQ);
11337
11337
  if (isNotNullOnly) {
11338
11338
  this.selectedValues.set(this.allItemsAsSelected());
@@ -11599,6 +11599,8 @@ class KitFilterInputComponent {
11599
11599
  this.filterRemoved = output();
11600
11600
  this.filterChanged = output();
11601
11601
  this.anchor = viewChild.required('toggleButton', { read: ElementRef });
11602
+ this.textboxComponents = viewChildren(KitTextboxComponent, ...(ngDevMode ? [{ debugName: "textboxComponents" }] : /* istanbul ignore next */ []));
11603
+ this.numericTextboxComponents = viewChildren(KitNumericTextboxComponent, ...(ngDevMode ? [{ debugName: "numericTextboxComponents" }] : /* istanbul ignore next */ []));
11602
11604
  this.popup = viewChild('popup', { ...(ngDevMode ? { debugName: "popup" } : /* istanbul ignore next */ {}), read: KitPopupComponent });
11603
11605
  this.kitDropdownSize = KitDropdownSize;
11604
11606
  this.kitTextboxSize = KitTextboxSize;
@@ -11616,20 +11618,19 @@ class KitFilterInputComponent {
11616
11618
  this.kitPillTheme = KitPillTheme;
11617
11619
  this.kitNumericTextboxSize = KitNumericTextboxSize;
11618
11620
  this.kitFilterType = KitFilterType;
11619
- this.rafId = null;
11621
+ this.popupToggleRafId = null;
11622
+ this.focusRafId = null;
11620
11623
  }
11621
11624
  ngOnInit() {
11622
11625
  this.initializeSelectedValues();
11623
11626
  this.showPopupOnInit();
11624
11627
  }
11625
11628
  ngOnDestroy() {
11626
- if (this.rafId) {
11627
- cancelAnimationFrame(this.rafId);
11628
- this.rafId = null;
11629
- }
11629
+ this.cancelPendingAnimationFrame('popupToggleRafId');
11630
+ this.cancelPendingAnimationFrame('focusRafId');
11630
11631
  }
11631
11632
  get applyButtonDisabled() {
11632
- return !this.hasActiveFilters();
11633
+ return !this.filterItems().filters.length;
11633
11634
  }
11634
11635
  onLogicChange(event) {
11635
11636
  this.filterItems.update(items => ({
@@ -11650,9 +11651,16 @@ class KitFilterInputComponent {
11650
11651
  onPopupToggle() {
11651
11652
  this.popup()?.toggle();
11652
11653
  }
11654
+ onPopupOpened() {
11655
+ this.scheduleFocusFirstInput();
11656
+ }
11653
11657
  close() {
11654
- if (!this.hasActiveFilters() || !this.selectedValues()) {
11655
- this.removeFilter();
11658
+ const selectedValues = this.selectedValues();
11659
+ if (selectedValues) {
11660
+ this.filterItems.set(selectedValues);
11661
+ }
11662
+ else {
11663
+ this.applyFilter();
11656
11664
  }
11657
11665
  }
11658
11666
  clearAllFilters() {
@@ -11687,8 +11695,8 @@ class KitFilterInputComponent {
11687
11695
  return null;
11688
11696
  }
11689
11697
  getFilterOperatorDropdownItems() {
11690
- return this.filterInputType() === KitFilterType.NUMERIC
11691
- && this.numericFilterOperatorDropdownItems || this.textFilterOperatorDropdownItems;
11698
+ return this.filterInputType() === KitFilterType.NUMERIC &&
11699
+ this.numericFilterOperatorDropdownItems || this.textFilterOperatorDropdownItems;
11692
11700
  }
11693
11701
  hasNoValueRequiredOperator(operator) {
11694
11702
  return noValueRequiredFilterOperators.includes(operator);
@@ -11714,12 +11722,20 @@ class KitFilterInputComponent {
11714
11722
  }));
11715
11723
  }
11716
11724
  showPopupOnInit() {
11717
- if (!this.hasActiveFilters()) {
11718
- this.rafId = requestAnimationFrame(() => {
11725
+ if (!this.selectedValues()) {
11726
+ this.popupToggleRafId = requestAnimationFrame(() => {
11727
+ this.popupToggleRafId = null;
11719
11728
  this.onPopupToggle();
11720
11729
  });
11721
11730
  }
11722
11731
  }
11732
+ scheduleFocusFirstInput() {
11733
+ this.cancelPendingAnimationFrame('focusRafId');
11734
+ this.focusRafId = requestAnimationFrame(() => {
11735
+ this.focusRafId = null;
11736
+ this.focusFirstInput();
11737
+ });
11738
+ }
11723
11739
  createFilterItem(field) {
11724
11740
  return {
11725
11741
  field,
@@ -11733,8 +11749,12 @@ class KitFilterInputComponent {
11733
11749
  filters: items.filters.map((item, i) => (i === index && { ...item, ...update } || item)),
11734
11750
  }));
11735
11751
  }
11736
- hasActiveFilters() {
11737
- return this.filterItems().filters.some(filter => this.hasSelectedFilter(filter));
11752
+ focusFirstInput() {
11753
+ if (this.filterInputType() === KitFilterType.NUMERIC) {
11754
+ this.numericTextboxComponents()[0]?.focus();
11755
+ return;
11756
+ }
11757
+ this.textboxComponents()[0]?.focus();
11738
11758
  }
11739
11759
  hasSelectedFilter(filter) {
11740
11760
  return this.hasNoValueRequiredOperator(filter.operator) || !!filter.value || filter.value === 0;
@@ -11745,8 +11765,22 @@ class KitFilterInputComponent {
11745
11765
  value: item,
11746
11766
  }));
11747
11767
  }
11768
+ cancelPendingAnimationFrame(idKey) {
11769
+ const id = idKey === 'popupToggleRafId'
11770
+ ? this.popupToggleRafId
11771
+ : this.focusRafId;
11772
+ if (id === null) {
11773
+ return;
11774
+ }
11775
+ cancelAnimationFrame(id);
11776
+ if (idKey === 'popupToggleRafId') {
11777
+ this.popupToggleRafId = null;
11778
+ return;
11779
+ }
11780
+ this.focusRafId = null;
11781
+ }
11748
11782
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitFilterInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11749
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: KitFilterInputComponent, isStandalone: true, selector: "kit-filter-input", inputs: { filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: true, transformFunction: null }, filterInputType: { classPropertyName: "filterInputType", publicName: "filterInputType", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { filterRemoved: "filterRemoved", filterChanged: "filterChanged" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["toggleButton"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "popup", first: true, predicate: ["popup"], descendants: true, read: KitPopupComponent, isSignal: true }], ngImport: i0, template: "<kit-pill #toggleButton\n [selectable]=\"!filter().readonly\"\n [selected]=\"popup.isPopupOpen\"\n [removable]=\"!filter().readonly && !!(filter().removable ?? true)\"\n [theme]=\"filter().readonly && kitPillTheme.BLUE || kitPillTheme.DEFAULT\"\n (removed)=\"removeFilter()\"\n (clicked)=\"onPopupToggle()\">\n {{ filter().title | translate }}:\n @if (selectedValues()?.filters; as selectedFilters) {\n @for (filter of selectedFilters; track $index) {\n {{ getSelectedFilterText(filter) }}\n\n @if ($index === 0) {\n {{ getSelectedLogicText(selectedValues()) }}\n }\n }\n }\n</kit-pill>\n\n<kit-popup #popup\n popupClass=\"kit-filter-input-popup\"\n [anchor]=\"anchor()\"\n [content]=\"content\"\n [showFooter]=\"true\"\n [applyButtonLabel]=\"'kit.filters.apply' | translate\"\n [cancelButtonLabel]=\"'kit.filters.clear' | translate\"\n [isApplyButtonDisabled]=\"applyButtonDisabled\"\n [closePopupOnCancel]=\"false\"\n [extraInsideSelectors]=\"['.kit-dropdown-popup']\"\n (applyAction)=\"applyFilter()\"\n (cancelAction)=\"clearAllFilters()\"\n (closed)=\"close()\">\n</kit-popup>\n\n<ng-template #content>\n <div class=\"popup-content\">\n @for (item of filterItems().filters; track $index) {\n <div class=\"filter-item\">\n <kit-dropdown [items]=\"getFilterOperatorDropdownItems()\"\n [size]=\"kitDropdownSize.SMALL\"\n [selectedItem]=\"$any(item.operator)\"\n (selected)=\"onOperatorSelect($event.value, $index)\"\n ></kit-dropdown>\n <div class=\"filter-controls\">\n @switch (filterInputType()) {\n @case (kitFilterType.TEXT) {\n <kit-textbox class=\"filter-item-value\"\n [size]=\"kitTextboxSize.SMALL\"\n [defaultValue]=\"item.value\"\n [disabled]=\"isFilterValueTextboxDisabled($index)\"\n (changed)=\"onValueChange($event, $index)\"\n (keydown.enter)=\"onEnterKey()\"\n ></kit-textbox>\n }\n @case (kitFilterType.NUMERIC) {\n <kit-numeric-textbox class=\"filter-item-value\"\n format=\"#.###\"\n [size]=\"kitNumericTextboxSize.SMALL\"\n [defaultValue]=\"item.value\"\n [min]=\"0\"\n [disabled]=\"isFilterValueTextboxDisabled($index)\"\n (changed)=\"onValueChange($event, $index)\"\n (keydown.enter)=\"onEnterKey()\"\n ></kit-numeric-textbox>\n }\n }\n @if ($index === 0) {\n <kit-dropdown class=\"logic-selector\"\n [selectedItem]=\"filterItems().logic\"\n [items]=\"filterLogicDropdownItems\"\n [size]=\"kitDropdownSize.SMALL\"\n (selected)=\"onLogicChange($event.value)\"\n ></kit-dropdown>\n }\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n", styles: ["::ng-deep .kit-filter-input-popup .popup-content{display:flex;flex-direction:column;gap:10px;width:296px;box-sizing:border-box}::ng-deep .kit-filter-input-popup .filter-item{display:flex;flex-direction:column;gap:10px}::ng-deep .kit-filter-input-popup .filter-item-value{flex:1}::ng-deep .kit-filter-input-popup .filter-controls{display:flex;gap:10px}::ng-deep .kit-filter-input-popup .logic-selector{flex-shrink:0;width:100px}\n"], dependencies: [{ kind: "component", type: KitDropdownComponent, selector: "kit-dropdown", inputs: ["items", "selectedItem", "label", "disabled", "messageIcon", "messageText", "invalid", "defaultItem", "listHeight", "hideDefaultItem", "toggleIcon", "popupSettings", "isValuePrimitive", "footerTemplate", "noDataTemplate", "readonly", "size"], outputs: ["selectedItemChange", "disabledChange", "selected"] }, { kind: "component", type: KitPillComponent, selector: "kit-pill", inputs: ["removable", "selectable", "selected", "type", "theme", "icon", "iconType"], outputs: ["clicked", "removed"] }, { kind: "component", type: KitPopupComponent, selector: "kit-popup", inputs: ["anchor", "content", "closeOnOutsideClick", "showFooter", "cancelButtonLabel", "applyButtonLabel", "isApplyButtonDisabled", "positionMode", "popupClass", "closePopupOnCancel", "extraInsideSelectors"], outputs: ["cancelAction", "applyAction", "opened", "closed"] }, { kind: "component", type: KitTextboxComponent, selector: "kit-textbox", inputs: ["placeholder", "label", "labelTooltip", "defaultValue", "messageIcon", "messageText", "messageTemplate", "disabled", "maxlength", "state", "size", "icon", "clearButton", "showStateIcon", "readonly", "customStateIcon", "type"], outputs: ["defaultValueChange", "disabledChange", "blured", "focused", "changed"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: KitNumericTextboxComponent, selector: "kit-numeric-textbox", inputs: ["placeholder", "label", "defaultValue", "decimals", "min", "max", "maxlength", "messageIcon", "messageText", "disabled", "format", "state", "icon", "size", "showStateIcon"], outputs: ["defaultValueChange", "disabledChange", "blured", "changed"] }, { kind: "pipe", type: i1$e.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11783
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: KitFilterInputComponent, isStandalone: true, selector: "kit-filter-input", inputs: { filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: true, transformFunction: null }, filterInputType: { classPropertyName: "filterInputType", publicName: "filterInputType", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { filterRemoved: "filterRemoved", filterChanged: "filterChanged" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["toggleButton"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "textboxComponents", predicate: KitTextboxComponent, descendants: true, isSignal: true }, { propertyName: "numericTextboxComponents", predicate: KitNumericTextboxComponent, descendants: true, isSignal: true }, { propertyName: "popup", first: true, predicate: ["popup"], descendants: true, read: KitPopupComponent, isSignal: true }], ngImport: i0, template: "<kit-pill #toggleButton\n [selectable]=\"!filter().readonly\"\n [selected]=\"popup.isPopupOpen\"\n [removable]=\"!filter().readonly && !!(filter().removable ?? true)\"\n [theme]=\"filter().readonly && kitPillTheme.BLUE || kitPillTheme.DEFAULT\"\n (removed)=\"removeFilter()\"\n (clicked)=\"onPopupToggle()\">\n {{ filter().title | translate }}:\n @if (selectedValues()?.filters; as selectedFilters) {\n @for (filter of selectedFilters; track $index) {\n {{ getSelectedFilterText(filter) }}\n\n @if ($index === 0) {\n {{ getSelectedLogicText(selectedValues()) }}\n }\n }\n }\n</kit-pill>\n\n<kit-popup #popup\n popupClass=\"kit-filter-input-popup\"\n [anchor]=\"anchor()\"\n [content]=\"content\"\n [showFooter]=\"true\"\n [applyButtonLabel]=\"'kit.filters.apply' | translate\"\n [cancelButtonLabel]=\"'kit.filters.clear' | translate\"\n [isApplyButtonDisabled]=\"applyButtonDisabled\"\n [closePopupOnCancel]=\"false\"\n [extraInsideSelectors]=\"['.kit-dropdown-popup']\"\n (opened)=\"onPopupOpened()\"\n (applyAction)=\"applyFilter()\"\n (cancelAction)=\"clearAllFilters()\"\n (closed)=\"close()\">\n</kit-popup>\n\n<ng-template #content>\n <div class=\"popup-content\">\n @for (item of filterItems().filters; track $index) {\n <div class=\"filter-item\">\n <kit-dropdown [items]=\"getFilterOperatorDropdownItems()\"\n [size]=\"kitDropdownSize.SMALL\"\n [selectedItem]=\"$any(item.operator)\"\n (selected)=\"onOperatorSelect($event.value, $index)\"\n ></kit-dropdown>\n <div class=\"filter-controls\">\n @switch (filterInputType()) {\n @case (kitFilterType.TEXT) {\n <kit-textbox class=\"filter-item-value\"\n [size]=\"kitTextboxSize.SMALL\"\n [defaultValue]=\"item.value\"\n [disabled]=\"isFilterValueTextboxDisabled($index)\"\n (changed)=\"onValueChange($event, $index)\"\n (keydown.enter)=\"onEnterKey()\"\n ></kit-textbox>\n }\n @case (kitFilterType.NUMERIC) {\n <kit-numeric-textbox class=\"filter-item-value\"\n format=\"#.###\"\n [size]=\"kitNumericTextboxSize.SMALL\"\n [defaultValue]=\"item.value\"\n [min]=\"0\"\n [disabled]=\"isFilterValueTextboxDisabled($index)\"\n (changed)=\"onValueChange($event, $index)\"\n (keydown.enter)=\"onEnterKey()\"\n ></kit-numeric-textbox>\n }\n }\n @if ($index === 0) {\n <kit-dropdown class=\"logic-selector\"\n [selectedItem]=\"filterItems().logic\"\n [items]=\"filterLogicDropdownItems\"\n [size]=\"kitDropdownSize.SMALL\"\n (selected)=\"onLogicChange($event.value)\"\n ></kit-dropdown>\n }\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n", styles: ["::ng-deep .kit-filter-input-popup .popup-content{display:flex;flex-direction:column;gap:10px;width:296px;box-sizing:border-box}::ng-deep .kit-filter-input-popup .filter-item{display:flex;flex-direction:column;gap:10px}::ng-deep .kit-filter-input-popup .filter-item-value{flex:1}::ng-deep .kit-filter-input-popup .filter-controls{display:flex;gap:10px}::ng-deep .kit-filter-input-popup .logic-selector{flex-shrink:0;width:100px}\n"], dependencies: [{ kind: "component", type: KitDropdownComponent, selector: "kit-dropdown", inputs: ["items", "selectedItem", "label", "disabled", "messageIcon", "messageText", "invalid", "defaultItem", "listHeight", "hideDefaultItem", "toggleIcon", "popupSettings", "isValuePrimitive", "footerTemplate", "noDataTemplate", "readonly", "size"], outputs: ["selectedItemChange", "disabledChange", "selected"] }, { kind: "component", type: KitPillComponent, selector: "kit-pill", inputs: ["removable", "selectable", "selected", "type", "theme", "icon", "iconType"], outputs: ["clicked", "removed"] }, { kind: "component", type: KitPopupComponent, selector: "kit-popup", inputs: ["anchor", "content", "closeOnOutsideClick", "showFooter", "cancelButtonLabel", "applyButtonLabel", "isApplyButtonDisabled", "positionMode", "popupClass", "closePopupOnCancel", "extraInsideSelectors"], outputs: ["cancelAction", "applyAction", "opened", "closed"] }, { kind: "component", type: KitTextboxComponent, selector: "kit-textbox", inputs: ["placeholder", "label", "labelTooltip", "defaultValue", "messageIcon", "messageText", "messageTemplate", "disabled", "maxlength", "state", "size", "icon", "clearButton", "showStateIcon", "readonly", "customStateIcon", "type"], outputs: ["defaultValueChange", "disabledChange", "blured", "focused", "changed"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: KitNumericTextboxComponent, selector: "kit-numeric-textbox", inputs: ["placeholder", "label", "defaultValue", "decimals", "min", "max", "maxlength", "messageIcon", "messageText", "disabled", "format", "state", "icon", "size", "showStateIcon"], outputs: ["defaultValueChange", "disabledChange", "blured", "changed"] }, { kind: "pipe", type: i1$e.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11750
11784
  }
11751
11785
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: KitFilterInputComponent, decorators: [{
11752
11786
  type: Component,
@@ -11757,8 +11791,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
11757
11791
  KitTextboxComponent,
11758
11792
  TranslateModule,
11759
11793
  KitNumericTextboxComponent,
11760
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<kit-pill #toggleButton\n [selectable]=\"!filter().readonly\"\n [selected]=\"popup.isPopupOpen\"\n [removable]=\"!filter().readonly && !!(filter().removable ?? true)\"\n [theme]=\"filter().readonly && kitPillTheme.BLUE || kitPillTheme.DEFAULT\"\n (removed)=\"removeFilter()\"\n (clicked)=\"onPopupToggle()\">\n {{ filter().title | translate }}:\n @if (selectedValues()?.filters; as selectedFilters) {\n @for (filter of selectedFilters; track $index) {\n {{ getSelectedFilterText(filter) }}\n\n @if ($index === 0) {\n {{ getSelectedLogicText(selectedValues()) }}\n }\n }\n }\n</kit-pill>\n\n<kit-popup #popup\n popupClass=\"kit-filter-input-popup\"\n [anchor]=\"anchor()\"\n [content]=\"content\"\n [showFooter]=\"true\"\n [applyButtonLabel]=\"'kit.filters.apply' | translate\"\n [cancelButtonLabel]=\"'kit.filters.clear' | translate\"\n [isApplyButtonDisabled]=\"applyButtonDisabled\"\n [closePopupOnCancel]=\"false\"\n [extraInsideSelectors]=\"['.kit-dropdown-popup']\"\n (applyAction)=\"applyFilter()\"\n (cancelAction)=\"clearAllFilters()\"\n (closed)=\"close()\">\n</kit-popup>\n\n<ng-template #content>\n <div class=\"popup-content\">\n @for (item of filterItems().filters; track $index) {\n <div class=\"filter-item\">\n <kit-dropdown [items]=\"getFilterOperatorDropdownItems()\"\n [size]=\"kitDropdownSize.SMALL\"\n [selectedItem]=\"$any(item.operator)\"\n (selected)=\"onOperatorSelect($event.value, $index)\"\n ></kit-dropdown>\n <div class=\"filter-controls\">\n @switch (filterInputType()) {\n @case (kitFilterType.TEXT) {\n <kit-textbox class=\"filter-item-value\"\n [size]=\"kitTextboxSize.SMALL\"\n [defaultValue]=\"item.value\"\n [disabled]=\"isFilterValueTextboxDisabled($index)\"\n (changed)=\"onValueChange($event, $index)\"\n (keydown.enter)=\"onEnterKey()\"\n ></kit-textbox>\n }\n @case (kitFilterType.NUMERIC) {\n <kit-numeric-textbox class=\"filter-item-value\"\n format=\"#.###\"\n [size]=\"kitNumericTextboxSize.SMALL\"\n [defaultValue]=\"item.value\"\n [min]=\"0\"\n [disabled]=\"isFilterValueTextboxDisabled($index)\"\n (changed)=\"onValueChange($event, $index)\"\n (keydown.enter)=\"onEnterKey()\"\n ></kit-numeric-textbox>\n }\n }\n @if ($index === 0) {\n <kit-dropdown class=\"logic-selector\"\n [selectedItem]=\"filterItems().logic\"\n [items]=\"filterLogicDropdownItems\"\n [size]=\"kitDropdownSize.SMALL\"\n (selected)=\"onLogicChange($event.value)\"\n ></kit-dropdown>\n }\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n", styles: ["::ng-deep .kit-filter-input-popup .popup-content{display:flex;flex-direction:column;gap:10px;width:296px;box-sizing:border-box}::ng-deep .kit-filter-input-popup .filter-item{display:flex;flex-direction:column;gap:10px}::ng-deep .kit-filter-input-popup .filter-item-value{flex:1}::ng-deep .kit-filter-input-popup .filter-controls{display:flex;gap:10px}::ng-deep .kit-filter-input-popup .logic-selector{flex-shrink:0;width:100px}\n"] }]
11761
- }], propDecorators: { filter: [{ type: i0.Input, args: [{ isSignal: true, alias: "filter", required: true }] }], filterInputType: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterInputType", required: true }] }], filterRemoved: [{ type: i0.Output, args: ["filterRemoved"] }], filterChanged: [{ type: i0.Output, args: ["filterChanged"] }], anchor: [{ type: i0.ViewChild, args: ['toggleButton', { ...{ read: ElementRef }, isSignal: true }] }], popup: [{ type: i0.ViewChild, args: ['popup', { ...{ read: KitPopupComponent }, isSignal: true }] }] } });
11794
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<kit-pill #toggleButton\n [selectable]=\"!filter().readonly\"\n [selected]=\"popup.isPopupOpen\"\n [removable]=\"!filter().readonly && !!(filter().removable ?? true)\"\n [theme]=\"filter().readonly && kitPillTheme.BLUE || kitPillTheme.DEFAULT\"\n (removed)=\"removeFilter()\"\n (clicked)=\"onPopupToggle()\">\n {{ filter().title | translate }}:\n @if (selectedValues()?.filters; as selectedFilters) {\n @for (filter of selectedFilters; track $index) {\n {{ getSelectedFilterText(filter) }}\n\n @if ($index === 0) {\n {{ getSelectedLogicText(selectedValues()) }}\n }\n }\n }\n</kit-pill>\n\n<kit-popup #popup\n popupClass=\"kit-filter-input-popup\"\n [anchor]=\"anchor()\"\n [content]=\"content\"\n [showFooter]=\"true\"\n [applyButtonLabel]=\"'kit.filters.apply' | translate\"\n [cancelButtonLabel]=\"'kit.filters.clear' | translate\"\n [isApplyButtonDisabled]=\"applyButtonDisabled\"\n [closePopupOnCancel]=\"false\"\n [extraInsideSelectors]=\"['.kit-dropdown-popup']\"\n (opened)=\"onPopupOpened()\"\n (applyAction)=\"applyFilter()\"\n (cancelAction)=\"clearAllFilters()\"\n (closed)=\"close()\">\n</kit-popup>\n\n<ng-template #content>\n <div class=\"popup-content\">\n @for (item of filterItems().filters; track $index) {\n <div class=\"filter-item\">\n <kit-dropdown [items]=\"getFilterOperatorDropdownItems()\"\n [size]=\"kitDropdownSize.SMALL\"\n [selectedItem]=\"$any(item.operator)\"\n (selected)=\"onOperatorSelect($event.value, $index)\"\n ></kit-dropdown>\n <div class=\"filter-controls\">\n @switch (filterInputType()) {\n @case (kitFilterType.TEXT) {\n <kit-textbox class=\"filter-item-value\"\n [size]=\"kitTextboxSize.SMALL\"\n [defaultValue]=\"item.value\"\n [disabled]=\"isFilterValueTextboxDisabled($index)\"\n (changed)=\"onValueChange($event, $index)\"\n (keydown.enter)=\"onEnterKey()\"\n ></kit-textbox>\n }\n @case (kitFilterType.NUMERIC) {\n <kit-numeric-textbox class=\"filter-item-value\"\n format=\"#.###\"\n [size]=\"kitNumericTextboxSize.SMALL\"\n [defaultValue]=\"item.value\"\n [min]=\"0\"\n [disabled]=\"isFilterValueTextboxDisabled($index)\"\n (changed)=\"onValueChange($event, $index)\"\n (keydown.enter)=\"onEnterKey()\"\n ></kit-numeric-textbox>\n }\n }\n @if ($index === 0) {\n <kit-dropdown class=\"logic-selector\"\n [selectedItem]=\"filterItems().logic\"\n [items]=\"filterLogicDropdownItems\"\n [size]=\"kitDropdownSize.SMALL\"\n (selected)=\"onLogicChange($event.value)\"\n ></kit-dropdown>\n }\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n", styles: ["::ng-deep .kit-filter-input-popup .popup-content{display:flex;flex-direction:column;gap:10px;width:296px;box-sizing:border-box}::ng-deep .kit-filter-input-popup .filter-item{display:flex;flex-direction:column;gap:10px}::ng-deep .kit-filter-input-popup .filter-item-value{flex:1}::ng-deep .kit-filter-input-popup .filter-controls{display:flex;gap:10px}::ng-deep .kit-filter-input-popup .logic-selector{flex-shrink:0;width:100px}\n"] }]
11795
+ }], propDecorators: { filter: [{ type: i0.Input, args: [{ isSignal: true, alias: "filter", required: true }] }], filterInputType: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterInputType", required: true }] }], filterRemoved: [{ type: i0.Output, args: ["filterRemoved"] }], filterChanged: [{ type: i0.Output, args: ["filterChanged"] }], anchor: [{ type: i0.ViewChild, args: ['toggleButton', { ...{ read: ElementRef }, isSignal: true }] }], textboxComponents: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => KitTextboxComponent), { isSignal: true }] }], numericTextboxComponents: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => KitNumericTextboxComponent), { isSignal: true }] }], popup: [{ type: i0.ViewChild, args: ['popup', { ...{ read: KitPopupComponent }, isSignal: true }] }] } });
11762
11796
 
11763
11797
  class KitFilterNullCheckComponent {
11764
11798
  constructor() {
@@ -14663,10 +14697,10 @@ const prettifyXml = (document) => {
14663
14697
  indentLevel = Math.max(indentLevel - 1, 0);
14664
14698
  }
14665
14699
  const line = `${' '.repeat(indentLevel)}${token}`;
14666
- const isOpeningTag = token.startsWith('<')
14667
- && !token.startsWith('</')
14668
- && !token.endsWith('/>')
14669
- && !token.includes('</');
14700
+ const isOpeningTag = token.startsWith('<') &&
14701
+ !token.startsWith('</') &&
14702
+ !token.endsWith('/>') &&
14703
+ !token.includes('</');
14670
14704
  if (isOpeningTag) {
14671
14705
  indentLevel += 1;
14672
14706
  }