@koobiq/components 19.1.0 → 19.3.0

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.
Files changed (128) hide show
  1. package/app-switcher/app-switcher.d.ts +7 -1
  2. package/core/locales/en-US.d.ts +0 -4
  3. package/core/locales/es-LA.d.ts +0 -4
  4. package/core/locales/locale-service.d.ts +0 -20
  5. package/core/locales/pt-BR.d.ts +0 -4
  6. package/core/locales/ru-RU.d.ts +0 -4
  7. package/core/locales/tk-TM.d.ts +0 -4
  8. package/core/locales/types.d.ts +0 -4
  9. package/core/styles/common/_animation.scss +2 -1
  10. package/core/utils/utils.d.ts +4 -0
  11. package/datepicker/datepicker-input.directive.d.ts +6 -1
  12. package/dropdown/dropdown.scss +3 -1
  13. package/fesm2022/koobiq-components-accordion.mjs +34 -34
  14. package/fesm2022/koobiq-components-actions-panel.mjs +10 -10
  15. package/fesm2022/koobiq-components-alert.mjs +16 -16
  16. package/fesm2022/koobiq-components-app-switcher.mjs +60 -33
  17. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  18. package/fesm2022/koobiq-components-autocomplete.mjs +13 -13
  19. package/fesm2022/koobiq-components-badge.mjs +13 -13
  20. package/fesm2022/koobiq-components-breadcrumbs.mjs +25 -25
  21. package/fesm2022/koobiq-components-button-toggle.mjs +10 -10
  22. package/fesm2022/koobiq-components-button.mjs +15 -15
  23. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  24. package/fesm2022/koobiq-components-checkbox.mjs +10 -10
  25. package/fesm2022/koobiq-components-clamped-text.mjs +7 -7
  26. package/fesm2022/koobiq-components-code-block.mjs +10 -10
  27. package/fesm2022/koobiq-components-content-panel.mjs +28 -28
  28. package/fesm2022/koobiq-components-core.mjs +237 -251
  29. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  30. package/fesm2022/koobiq-components-datepicker.mjs +49 -42
  31. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  32. package/fesm2022/koobiq-components-divider.mjs +7 -7
  33. package/fesm2022/koobiq-components-dl.mjs +13 -13
  34. package/fesm2022/koobiq-components-dropdown.mjs +23 -22
  35. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  36. package/fesm2022/koobiq-components-dynamic-translation.mjs +13 -13
  37. package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -7
  38. package/fesm2022/koobiq-components-empty-state.mjs +19 -19
  39. package/fesm2022/koobiq-components-file-upload.mjs +501 -74
  40. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  41. package/fesm2022/koobiq-components-filter-bar.mjs +155 -95
  42. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  43. package/fesm2022/koobiq-components-form-field.mjs +56 -56
  44. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  45. package/fesm2022/koobiq-components-icon.mjs +13 -13
  46. package/fesm2022/koobiq-components-inline-edit.mjs +18 -18
  47. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  48. package/fesm2022/koobiq-components-input.mjs +22 -22
  49. package/fesm2022/koobiq-components-link.mjs +7 -7
  50. package/fesm2022/koobiq-components-list.mjs +19 -19
  51. package/fesm2022/koobiq-components-loader-overlay.mjs +16 -16
  52. package/fesm2022/koobiq-components-markdown.mjs +10 -10
  53. package/fesm2022/koobiq-components-modal.mjs +28 -28
  54. package/fesm2022/koobiq-components-navbar-ic.mjs +34 -34
  55. package/fesm2022/koobiq-components-navbar.mjs +49 -49
  56. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  57. package/fesm2022/koobiq-components-notification-center.mjs +16 -16
  58. package/fesm2022/koobiq-components-overflow-items.mjs +16 -16
  59. package/fesm2022/koobiq-components-popover.mjs +22 -18
  60. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  61. package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
  62. package/fesm2022/koobiq-components-progress-spinner.mjs +13 -13
  63. package/fesm2022/koobiq-components-radio.mjs +10 -10
  64. package/fesm2022/koobiq-components-resizer.mjs +10 -10
  65. package/fesm2022/koobiq-components-risk-level.mjs +7 -7
  66. package/fesm2022/koobiq-components-scrollbar.mjs +10 -10
  67. package/fesm2022/koobiq-components-search-expandable.mjs +7 -7
  68. package/fesm2022/koobiq-components-select.mjs +15 -14
  69. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-sidebar.mjs +13 -13
  71. package/fesm2022/koobiq-components-sidepanel.mjs +26 -26
  72. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  73. package/fesm2022/koobiq-components-skeleton.mjs +37 -0
  74. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -0
  75. package/fesm2022/koobiq-components-split-button.mjs +7 -7
  76. package/fesm2022/koobiq-components-splitter.mjs +16 -16
  77. package/fesm2022/koobiq-components-table.mjs +10 -10
  78. package/fesm2022/koobiq-components-tabs.mjs +52 -52
  79. package/fesm2022/koobiq-components-tags.mjs +29 -28
  80. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  81. package/fesm2022/koobiq-components-textarea.mjs +7 -7
  82. package/fesm2022/koobiq-components-time-range.mjs +22 -22
  83. package/fesm2022/koobiq-components-timepicker.mjs +10 -10
  84. package/fesm2022/koobiq-components-timezone.mjs +22 -22
  85. package/fesm2022/koobiq-components-title.mjs +9 -9
  86. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  87. package/fesm2022/koobiq-components-toast.mjs +16 -16
  88. package/fesm2022/koobiq-components-toggle.mjs +9 -9
  89. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-tooltip.mjs +16 -16
  91. package/fesm2022/koobiq-components-top-bar.mjs +13 -13
  92. package/fesm2022/koobiq-components-tree-select.mjs +11 -26
  93. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-tree.mjs +61 -51
  95. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-username.mjs +28 -28
  97. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  98. package/file-upload/_file-upload-theme.scss +0 -256
  99. package/file-upload/dropzone.d.ts +147 -0
  100. package/file-upload/dropzone.scss +57 -0
  101. package/file-upload/file-upload-tokens.scss +25 -18
  102. package/file-upload/file-upload.d.ts +3 -0
  103. package/file-upload/file-upload.scss +8 -4
  104. package/file-upload/multiple-file-upload.component.d.ts +13 -7
  105. package/file-upload/multiple-file-upload.component.scss +209 -91
  106. package/file-upload/primitives/file-drop.d.ts +24 -6
  107. package/file-upload/public-api.d.ts +1 -0
  108. package/file-upload/single-file-upload.component.d.ts +11 -2
  109. package/file-upload/single-file-upload.component.scss +117 -36
  110. package/filter-bar/filter-bar-button.d.ts +5 -0
  111. package/filter-bar/filters.d.ts +38 -6
  112. package/inline-edit/inline-edit.d.ts +2 -2
  113. package/inline-edit/inline-edit.scss +1 -1
  114. package/navbar/_navbar-item_vertical.scss +8 -0
  115. package/navbar/navbar-brand.scss +2 -2
  116. package/package.json +9 -4
  117. package/popover/_popover-theme.scss +1 -1
  118. package/popover/popover.component.d.ts +3 -1
  119. package/schematics/ng-add/index.js +2 -2
  120. package/select/select.component.d.ts +2 -1
  121. package/skeleton/index.d.ts +2 -0
  122. package/skeleton/module.d.ts +7 -0
  123. package/skeleton/skeleton.d.ts +8 -0
  124. package/skeleton/skeleton.scss +41 -0
  125. package/tree/_tree-theme.scss +11 -5
  126. package/tree/tree-option.scss +1 -0
  127. package/tree/tree-selection.component.d.ts +2 -1
  128. package/tree-select/tree-select.component.d.ts +2 -1
@@ -62,10 +62,10 @@ class KbqTooltipComponent extends KbqPopUp {
62
62
  };
63
63
  super.updateClassMap(placement, customClass, classMap);
64
64
  }
65
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTooltipComponent, deps: [{ token: KBQ_TOOLTIP_OPEN_TIME }], target: i0.ɵɵFactoryTarget.Component }); }
66
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: KbqTooltipComponent, isStandalone: true, selector: "kbq-tooltip-component", providers: [KBQ_TOOLTIP_OPEN_TIME_PROVIDER], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["tooltip"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n #tooltip\n class=\"kbq-tooltip\"\n [class.kbq-tooltip_arrowless]=\"!arrow\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.done)=\"animationDone($event)\"\n (@state.start)=\"animationStart()\"\n>\n <div class=\"kbq-tooltip__inner\">\n @if (arrow) {\n <div class=\"kbq-tooltip__arrow\"></div>\n }\n\n @if (header) {\n <div class=\"kbq-tooltip__header\">\n @if (isTemplateRef(header)) {\n <ng-container [ngTemplateOutlet]=\"$any(header)\" [ngTemplateOutletContext]=\"context\" />\n }\n @if (!isTemplateRef(header)) {\n <div>{{ header }}</div>\n }\n </div>\n }\n <div class=\"kbq-tooltip__content\">\n @if (isTemplateRef(content)) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\" [ngTemplateOutletContext]=\"context\" />\n }\n @if (!isTemplateRef(content)) {\n <div>{{ content }}</div>\n }\n </div>\n </div>\n</div>\n", styles: [".kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-top),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-top-left),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-top-right){margin-bottom:9px}.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-right),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-right-top),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-right-bottom){margin-left:9px}.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-bottom),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-bottom-left),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-bottom-right){margin-top:9px}.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-left),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-left-top),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-left-bottom){margin-right:9px}.kbq-tooltip__inner{border-radius:var(--kbq-tooltip-size-border-radius);word-break:break-word}.kbq-tooltip{box-sizing:border-box;border-radius:var(--kbq-tooltip-size-border-radius);white-space:pre-line}.kbq-tooltip.kbq-tooltip_placement-top,.kbq-tooltip.kbq-tooltip_placement-top-left,.kbq-tooltip.kbq-tooltip_placement-top-right{margin-bottom:8px}.kbq-tooltip.kbq-tooltip_placement-right,.kbq-tooltip.kbq-tooltip_placement-right-top,.kbq-tooltip.kbq-tooltip_placement-right-bottom{margin-left:8px}.kbq-tooltip.kbq-tooltip_placement-bottom,.kbq-tooltip.kbq-tooltip_placement-bottom-left,.kbq-tooltip.kbq-tooltip_placement-bottom-right{margin-top:8px}.kbq-tooltip.kbq-tooltip_placement-left,.kbq-tooltip.kbq-tooltip_placement-left-top,.kbq-tooltip.kbq-tooltip_placement-left-bottom{margin-right:8px}.kbq-tooltip{max-width:var(--kbq-tooltip-size-max-width)}.kbq-tooltip .kbq-tooltip__inner{padding:var(--kbq-tooltip-size-padding-vertical) var(--kbq-tooltip-size-padding-horizontal)}.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-top,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-top-left,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-top-right{margin-bottom:4px}.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-right,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-right-top,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-right-bottom{margin-left:4px}.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-bottom,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-bottom-left,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-bottom-right{margin-top:4px}.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-left,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-left-top,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-left-bottom{margin-right:4px}.kbq-tooltip.kbq-theme .kbq-tooltip__inner{color:var(--kbq-tooltip-theme-fade-off-text);background-color:var(--kbq-tooltip-theme-fade-off-background)}.kbq-tooltip.kbq-theme .kbq-tooltip__arrow{background-color:var(--kbq-tooltip-theme-fade-off-background)}.kbq-tooltip.kbq-theme.kbq-tooltip_arrowless{box-shadow:var(--kbq-tooltip-theme-fade-off-shadow)}.kbq-tooltip.kbq-contrast .kbq-tooltip__inner{color:var(--kbq-tooltip-contrast-fade-off-text);background-color:var(--kbq-tooltip-contrast-fade-off-background)}.kbq-tooltip.kbq-contrast .kbq-tooltip__arrow{background-color:var(--kbq-tooltip-contrast-fade-off-background)}.kbq-tooltip.kbq-contrast.kbq-tooltip_arrowless{box-shadow:var(--kbq-tooltip-contrast-fade-off-shadow)}.kbq-tooltip.kbq-contrast-fade .kbq-tooltip__inner{color:var(--kbq-tooltip-contrast-fade-on-text);background-color:var(--kbq-tooltip-contrast-fade-on-background)}.kbq-tooltip.kbq-contrast-fade .kbq-tooltip__arrow{background-color:var(--kbq-tooltip-contrast-fade-on-background)}.kbq-tooltip.kbq-contrast-fade.kbq-tooltip_arrowless{box-shadow:var(--kbq-tooltip-contrast-fade-on-shadow)}.kbq-tooltip.kbq-contrast-fade.kbq-tooltip,.kbq-tooltip.kbq-contrast-fade .kbq-tooltip__arrow{box-shadow:var(--kbq-shadow-popup)}.kbq-tooltip.kbq-warning .kbq-tooltip__inner{color:var(--kbq-tooltip-warning-fade-off-text);background-color:var(--kbq-tooltip-warning-fade-off-background)}.kbq-tooltip.kbq-warning .kbq-tooltip__arrow{background-color:var(--kbq-tooltip-warning-fade-off-background)}.kbq-tooltip.kbq-warning.kbq-tooltip_arrowless{box-shadow:var(--kbq-tooltip-warning-fade-off-shadow)}.kbq-tooltip.kbq-error .kbq-tooltip__inner{color:var(--kbq-tooltip-error-fade-off-text);background-color:var(--kbq-tooltip-error-fade-off-background)}.kbq-tooltip.kbq-error .kbq-tooltip__arrow{background-color:var(--kbq-tooltip-error-fade-off-background)}.kbq-tooltip.kbq-error.kbq-tooltip_arrowless{box-shadow:var(--kbq-tooltip-error-fade-off-shadow)}.kbq-tooltip,.kbq-tooltip .kbq-tooltip__header{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-tooltip__arrow{position:absolute;width:var(--kbq-tooltip-size-arrow-size);height:var(--kbq-tooltip-size-arrow-size);transform:rotate(45deg);z-index:-1}.kbq-tooltip_placement-top .kbq-tooltip__arrow{bottom:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);left:50%;margin-left:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2)}.kbq-tooltip_placement-top-left .kbq-tooltip__arrow{bottom:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);left:13px}.kbq-tooltip_placement-top-right .kbq-tooltip__arrow{bottom:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);right:13px}.kbq-tooltip_placement-right .kbq-tooltip__arrow{left:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);top:50%;margin-top:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2)}.kbq-tooltip_placement-right-top .kbq-tooltip__arrow{left:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);top:13px}.kbq-tooltip_placement-right-bottom .kbq-tooltip__arrow{left:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);bottom:13px}.kbq-tooltip_placement-left .kbq-tooltip__arrow{right:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);top:50%;margin-top:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2)}.kbq-tooltip_placement-left-top .kbq-tooltip__arrow{right:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);top:13px}.kbq-tooltip_placement-left-bottom .kbq-tooltip__arrow{right:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);bottom:13px}.kbq-tooltip_placement-bottom .kbq-tooltip__arrow{top:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);left:50%;margin-left:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2)}.kbq-tooltip_placement-bottom-left .kbq-tooltip__arrow{top:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);left:13px}.kbq-tooltip_placement-bottom-right .kbq-tooltip__arrow{top:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);right:13px}\n", ".kbq-tooltip{--kbq-tooltip-size-max-width: 300px;--kbq-tooltip-size-border-radius: var(--kbq-size-s);--kbq-tooltip-size-padding-horizontal: var(--kbq-size-m);--kbq-tooltip-size-padding-vertical: var(--kbq-size-s);--kbq-tooltip-size-arrow-size: var(--kbq-size-m);--kbq-tooltip-contrast-fade-on-background: var(--kbq-background-card);--kbq-tooltip-contrast-fade-on-text: var(--kbq-foreground-contrast);--kbq-tooltip-contrast-fade-on-shadow: var(--kbq-shadow-popup);--kbq-tooltip-contrast-fade-off-background: var(--kbq-background-night);--kbq-tooltip-contrast-fade-off-text: var(--kbq-foreground-white);--kbq-tooltip-contrast-fade-off-shadow: var(--kbq-shadow-popup);--kbq-tooltip-theme-fade-off-background: var(--kbq-background-theme);--kbq-tooltip-theme-fade-off-text: var(--kbq-foreground-white);--kbq-tooltip-theme-fade-off-shadow: var(--kbq-shadow-popup);--kbq-tooltip-warning-fade-off-background: var(--kbq-background-warning);--kbq-tooltip-warning-fade-off-text: var(--kbq-foreground-white);--kbq-tooltip-warning-fade-off-shadow: var(--kbq-shadow-popup);--kbq-tooltip-error-fade-off-background: var(--kbq-background-error);--kbq-tooltip-error-fade-off-text: var(--kbq-foreground-white);--kbq-tooltip-error-fade-off-shadow: var(--kbq-shadow-popup);--kbq-tooltip-borderless-shadow: 0 2px 8px var(--kbq-shadow-key), 0 3px 8px var(--kbq-shadow-ambient)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [kbqTooltipAnimations.tooltipState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
65
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTooltipComponent, deps: [{ token: KBQ_TOOLTIP_OPEN_TIME }], target: i0.ɵɵFactoryTarget.Component }); }
66
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: KbqTooltipComponent, isStandalone: true, selector: "kbq-tooltip-component", providers: [KBQ_TOOLTIP_OPEN_TIME_PROVIDER], viewQueries: [{ propertyName: "elementRef", first: true, predicate: ["tooltip"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n #tooltip\n class=\"kbq-tooltip\"\n [class.kbq-tooltip_arrowless]=\"!arrow\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.done)=\"animationDone($event)\"\n (@state.start)=\"animationStart()\"\n>\n <div class=\"kbq-tooltip__inner\">\n @if (arrow) {\n <div class=\"kbq-tooltip__arrow\"></div>\n }\n\n @if (header) {\n <div class=\"kbq-tooltip__header\">\n @if (isTemplateRef(header)) {\n <ng-container [ngTemplateOutlet]=\"$any(header)\" [ngTemplateOutletContext]=\"context\" />\n }\n @if (!isTemplateRef(header)) {\n <div>{{ header }}</div>\n }\n </div>\n }\n <div class=\"kbq-tooltip__content\">\n @if (isTemplateRef(content)) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\" [ngTemplateOutletContext]=\"context\" />\n }\n @if (!isTemplateRef(content)) {\n <div>{{ content }}</div>\n }\n </div>\n </div>\n</div>\n", styles: [".kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-top),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-top-left),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-top-right){margin-bottom:9px}.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-right),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-right-top),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-right-bottom){margin-left:9px}.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-bottom),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-bottom-left),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-bottom-right){margin-top:9px}.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-left),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-left-top),.kbq-tooltip-panel_horizontal-navbar:has(.kbq-tooltip_placement-left-bottom){margin-right:9px}.kbq-tooltip__inner{border-radius:var(--kbq-tooltip-size-border-radius);word-break:break-word}.kbq-tooltip{box-sizing:border-box;border-radius:var(--kbq-tooltip-size-border-radius);white-space:pre-line}.kbq-tooltip.kbq-tooltip_placement-top,.kbq-tooltip.kbq-tooltip_placement-top-left,.kbq-tooltip.kbq-tooltip_placement-top-right{margin-bottom:8px}.kbq-tooltip.kbq-tooltip_placement-right,.kbq-tooltip.kbq-tooltip_placement-right-top,.kbq-tooltip.kbq-tooltip_placement-right-bottom{margin-left:8px}.kbq-tooltip.kbq-tooltip_placement-bottom,.kbq-tooltip.kbq-tooltip_placement-bottom-left,.kbq-tooltip.kbq-tooltip_placement-bottom-right{margin-top:8px}.kbq-tooltip.kbq-tooltip_placement-left,.kbq-tooltip.kbq-tooltip_placement-left-top,.kbq-tooltip.kbq-tooltip_placement-left-bottom{margin-right:8px}.kbq-tooltip{max-width:var(--kbq-tooltip-size-max-width)}.kbq-tooltip .kbq-tooltip__inner{padding:var(--kbq-tooltip-size-padding-vertical) var(--kbq-tooltip-size-padding-horizontal)}.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-top,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-top-left,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-top-right{margin-bottom:4px}.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-right,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-right-top,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-right-bottom{margin-left:4px}.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-bottom,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-bottom-left,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-bottom-right{margin-top:4px}.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-left,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-left-top,.kbq-tooltip.kbq-tooltip_arrowless.kbq-tooltip_placement-left-bottom{margin-right:4px}.kbq-tooltip.kbq-theme .kbq-tooltip__inner{color:var(--kbq-tooltip-theme-fade-off-text);background-color:var(--kbq-tooltip-theme-fade-off-background)}.kbq-tooltip.kbq-theme .kbq-tooltip__arrow{background-color:var(--kbq-tooltip-theme-fade-off-background)}.kbq-tooltip.kbq-theme.kbq-tooltip_arrowless{box-shadow:var(--kbq-tooltip-theme-fade-off-shadow)}.kbq-tooltip.kbq-contrast .kbq-tooltip__inner{color:var(--kbq-tooltip-contrast-fade-off-text);background-color:var(--kbq-tooltip-contrast-fade-off-background)}.kbq-tooltip.kbq-contrast .kbq-tooltip__arrow{background-color:var(--kbq-tooltip-contrast-fade-off-background)}.kbq-tooltip.kbq-contrast.kbq-tooltip_arrowless{box-shadow:var(--kbq-tooltip-contrast-fade-off-shadow)}.kbq-tooltip.kbq-contrast-fade .kbq-tooltip__inner{color:var(--kbq-tooltip-contrast-fade-on-text);background-color:var(--kbq-tooltip-contrast-fade-on-background)}.kbq-tooltip.kbq-contrast-fade .kbq-tooltip__arrow{background-color:var(--kbq-tooltip-contrast-fade-on-background)}.kbq-tooltip.kbq-contrast-fade.kbq-tooltip_arrowless{box-shadow:var(--kbq-tooltip-contrast-fade-on-shadow)}.kbq-tooltip.kbq-contrast-fade.kbq-tooltip,.kbq-tooltip.kbq-contrast-fade .kbq-tooltip__arrow{box-shadow:var(--kbq-shadow-popup)}.kbq-tooltip.kbq-warning .kbq-tooltip__inner{color:var(--kbq-tooltip-warning-fade-off-text);background-color:var(--kbq-tooltip-warning-fade-off-background)}.kbq-tooltip.kbq-warning .kbq-tooltip__arrow{background-color:var(--kbq-tooltip-warning-fade-off-background)}.kbq-tooltip.kbq-warning.kbq-tooltip_arrowless{box-shadow:var(--kbq-tooltip-warning-fade-off-shadow)}.kbq-tooltip.kbq-error .kbq-tooltip__inner{color:var(--kbq-tooltip-error-fade-off-text);background-color:var(--kbq-tooltip-error-fade-off-background)}.kbq-tooltip.kbq-error .kbq-tooltip__arrow{background-color:var(--kbq-tooltip-error-fade-off-background)}.kbq-tooltip.kbq-error.kbq-tooltip_arrowless{box-shadow:var(--kbq-tooltip-error-fade-off-shadow)}.kbq-tooltip,.kbq-tooltip .kbq-tooltip__header{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-tooltip__arrow{position:absolute;width:var(--kbq-tooltip-size-arrow-size);height:var(--kbq-tooltip-size-arrow-size);transform:rotate(45deg);z-index:-1}.kbq-tooltip_placement-top .kbq-tooltip__arrow{bottom:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);left:50%;margin-left:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2)}.kbq-tooltip_placement-top-left .kbq-tooltip__arrow{bottom:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);left:13px}.kbq-tooltip_placement-top-right .kbq-tooltip__arrow{bottom:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);right:13px}.kbq-tooltip_placement-right .kbq-tooltip__arrow{left:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);top:50%;margin-top:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2)}.kbq-tooltip_placement-right-top .kbq-tooltip__arrow{left:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);top:13px}.kbq-tooltip_placement-right-bottom .kbq-tooltip__arrow{left:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);bottom:13px}.kbq-tooltip_placement-left .kbq-tooltip__arrow{right:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);top:50%;margin-top:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2)}.kbq-tooltip_placement-left-top .kbq-tooltip__arrow{right:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);top:13px}.kbq-tooltip_placement-left-bottom .kbq-tooltip__arrow{right:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);bottom:13px}.kbq-tooltip_placement-bottom .kbq-tooltip__arrow{top:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);left:50%;margin-left:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2)}.kbq-tooltip_placement-bottom-left .kbq-tooltip__arrow{top:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);left:13px}.kbq-tooltip_placement-bottom-right .kbq-tooltip__arrow{top:calc((var(--kbq-tooltip-size-arrow-size) - 1px) / -2);right:13px}\n", ".kbq-tooltip{--kbq-tooltip-size-max-width: 300px;--kbq-tooltip-size-border-radius: var(--kbq-size-s);--kbq-tooltip-size-padding-horizontal: var(--kbq-size-m);--kbq-tooltip-size-padding-vertical: var(--kbq-size-s);--kbq-tooltip-size-arrow-size: var(--kbq-size-m);--kbq-tooltip-contrast-fade-on-background: var(--kbq-background-card);--kbq-tooltip-contrast-fade-on-text: var(--kbq-foreground-contrast);--kbq-tooltip-contrast-fade-on-shadow: var(--kbq-shadow-popup);--kbq-tooltip-contrast-fade-off-background: var(--kbq-background-night);--kbq-tooltip-contrast-fade-off-text: var(--kbq-foreground-white);--kbq-tooltip-contrast-fade-off-shadow: var(--kbq-shadow-popup);--kbq-tooltip-theme-fade-off-background: var(--kbq-background-theme);--kbq-tooltip-theme-fade-off-text: var(--kbq-foreground-white);--kbq-tooltip-theme-fade-off-shadow: var(--kbq-shadow-popup);--kbq-tooltip-warning-fade-off-background: var(--kbq-background-warning);--kbq-tooltip-warning-fade-off-text: var(--kbq-foreground-white);--kbq-tooltip-warning-fade-off-shadow: var(--kbq-shadow-popup);--kbq-tooltip-error-fade-off-background: var(--kbq-background-error);--kbq-tooltip-error-fade-off-text: var(--kbq-foreground-white);--kbq-tooltip-error-fade-off-shadow: var(--kbq-shadow-popup);--kbq-tooltip-borderless-shadow: 0 2px 8px var(--kbq-shadow-key), 0 3px 8px var(--kbq-shadow-ambient)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [kbqTooltipAnimations.tooltipState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTooltipComponent, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTooltipComponent, decorators: [{
69
69
  type: Component,
70
70
  args: [{ selector: 'kbq-tooltip-component', imports: [
71
71
  NgClass,
@@ -270,10 +270,10 @@ class KbqTooltipTrigger extends KbqPopUpTrigger {
270
270
  }
271
271
  this.strategy.setOrigin(point);
272
272
  }
273
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTooltipTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
274
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.17", type: KbqTooltipTrigger, isStandalone: true, selector: "[kbqTooltip]", inputs: { hideWithTimeout: ["hideWithTimeout", "hideWithTimeout", booleanAttribute], tooltipVisible: ["kbqVisible", "tooltipVisible"], tooltipPlacement: ["kbqPlacement", "tooltipPlacement"], relativeToPointer: ["kbqRelativeToPointer", "relativeToPointer", booleanAttribute], tooltipPlacementPriority: ["kbqPlacementPriority", "tooltipPlacementPriority"], content: ["kbqTooltip", "content"], disabled: ["kbqTooltipDisabled", "disabled"], enterDelay: ["kbqEnterDelay", "enterDelay"], leaveDelay: ["kbqLeaveDelay", "leaveDelay"], trigger: ["kbqTrigger", "trigger"], customClass: ["kbqTooltipClass", "customClass"], context: ["kbqTooltipContext", "context"], color: ["kbqTooltipColor", "color"], arrow: ["kbqTooltipArrow", "arrow", booleanAttribute], offset: ["kbqTooltipOffset", "offset", numberAttribute] }, outputs: { placementChange: "kbqPlacementChange", visibleChange: "kbqVisibleChange" }, host: { listeners: { "keydown": "keydownHandler($event)", "touchend": "touchendHandler()" }, properties: { "class.kbq-tooltip_open": "isOpen" } }, exportAs: ["kbqTooltip"], usesInheritance: true, ngImport: i0 }); }
273
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTooltipTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
274
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.18", type: KbqTooltipTrigger, isStandalone: true, selector: "[kbqTooltip]", inputs: { hideWithTimeout: ["hideWithTimeout", "hideWithTimeout", booleanAttribute], tooltipVisible: ["kbqVisible", "tooltipVisible"], tooltipPlacement: ["kbqPlacement", "tooltipPlacement"], relativeToPointer: ["kbqRelativeToPointer", "relativeToPointer", booleanAttribute], tooltipPlacementPriority: ["kbqPlacementPriority", "tooltipPlacementPriority"], content: ["kbqTooltip", "content"], disabled: ["kbqTooltipDisabled", "disabled"], enterDelay: ["kbqEnterDelay", "enterDelay"], leaveDelay: ["kbqLeaveDelay", "leaveDelay"], trigger: ["kbqTrigger", "trigger"], customClass: ["kbqTooltipClass", "customClass"], context: ["kbqTooltipContext", "context"], color: ["kbqTooltipColor", "color"], arrow: ["kbqTooltipArrow", "arrow", booleanAttribute], offset: ["kbqTooltipOffset", "offset", numberAttribute] }, outputs: { placementChange: "kbqPlacementChange", visibleChange: "kbqVisibleChange" }, host: { listeners: { "keydown": "keydownHandler($event)", "touchend": "touchendHandler()" }, properties: { "class.kbq-tooltip_open": "isOpen" } }, exportAs: ["kbqTooltip"], usesInheritance: true, ngImport: i0 }); }
275
275
  }
276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTooltipTrigger, decorators: [{
276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTooltipTrigger, decorators: [{
277
277
  type: Directive,
278
278
  args: [{
279
279
  selector: '[kbqTooltip]',
@@ -348,10 +348,10 @@ class KbqWarningTooltipTrigger extends KbqTooltipTrigger {
348
348
  this._content = content;
349
349
  this.updateData();
350
350
  }
351
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqWarningTooltipTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
352
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: KbqWarningTooltipTrigger, isStandalone: true, selector: "[kbqWarningTooltip]", inputs: { content: ["kbqWarningTooltip", "content"] }, host: { listeners: { "keydown": "keydownHandler($event)", "touchend": "touchendHandler()" }, properties: { "class.kbq-tooltip_open": "isOpen" } }, exportAs: ["kbqWarningTooltip"], usesInheritance: true, ngImport: i0 }); }
351
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqWarningTooltipTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
352
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: KbqWarningTooltipTrigger, isStandalone: true, selector: "[kbqWarningTooltip]", inputs: { content: ["kbqWarningTooltip", "content"] }, host: { listeners: { "keydown": "keydownHandler($event)", "touchend": "touchendHandler()" }, properties: { "class.kbq-tooltip_open": "isOpen" } }, exportAs: ["kbqWarningTooltip"], usesInheritance: true, ngImport: i0 }); }
353
353
  }
354
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqWarningTooltipTrigger, decorators: [{
354
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqWarningTooltipTrigger, decorators: [{
355
355
  type: Directive,
356
356
  args: [{
357
357
  selector: '[kbqWarningTooltip]',
@@ -392,10 +392,10 @@ class KbqExtendedTooltipTrigger extends KbqTooltipTrigger {
392
392
  super.updateData();
393
393
  this.instance.header = this.header;
394
394
  }
395
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqExtendedTooltipTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
396
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: KbqExtendedTooltipTrigger, isStandalone: true, selector: "[kbqExtendedTooltip]", inputs: { content: ["kbqExtendedTooltip", "content"], header: ["kbqTooltipHeader", "header"] }, host: { listeners: { "keydown": "keydownHandler($event)", "touchend": "touchendHandler()" }, properties: { "class.kbq-tooltip_open": "isOpen" } }, exportAs: ["kbqExtendedTooltip"], usesInheritance: true, ngImport: i0 }); }
395
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqExtendedTooltipTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
396
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: KbqExtendedTooltipTrigger, isStandalone: true, selector: "[kbqExtendedTooltip]", inputs: { content: ["kbqExtendedTooltip", "content"], header: ["kbqTooltipHeader", "header"] }, host: { listeners: { "keydown": "keydownHandler($event)", "touchend": "touchendHandler()" }, properties: { "class.kbq-tooltip_open": "isOpen" } }, exportAs: ["kbqExtendedTooltip"], usesInheritance: true, ngImport: i0 }); }
397
397
  }
398
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqExtendedTooltipTrigger, decorators: [{
398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqExtendedTooltipTrigger, decorators: [{
399
399
  type: Directive,
400
400
  args: [{
401
401
  selector: '[kbqExtendedTooltip]',
@@ -421,20 +421,20 @@ const COMPONENTS = [
421
421
  KbqWarningTooltipTrigger
422
422
  ];
423
423
  class KbqToolTipModule {
424
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqToolTipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
425
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: KbqToolTipModule, imports: [KbqTooltipComponent,
424
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqToolTipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
425
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: KbqToolTipModule, imports: [KbqTooltipComponent,
426
426
  KbqTooltipTrigger,
427
427
  KbqExtendedTooltipTrigger,
428
428
  KbqWarningTooltipTrigger], exports: [KbqTooltipComponent,
429
429
  KbqTooltipTrigger,
430
430
  KbqExtendedTooltipTrigger,
431
431
  KbqWarningTooltipTrigger] }); }
432
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqToolTipModule, providers: [
432
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqToolTipModule, providers: [
433
433
  KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,
434
434
  KBQ_TOOLTIP_OPEN_TIME_PROVIDER
435
435
  ] }); }
436
436
  }
437
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqToolTipModule, decorators: [{
437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqToolTipModule, decorators: [{
438
438
  type: NgModule,
439
439
  args: [{
440
440
  imports: COMPONENTS,
@@ -3,10 +3,10 @@ import { Directive, input, inject, booleanAttribute, Input, ChangeDetectionStrat
3
3
  import { KbqOverflowItems } from '@koobiq/components/overflow-items';
4
4
 
5
5
  class KbqTopBarSpacer {
6
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTopBarSpacer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: KbqTopBarSpacer, isStandalone: true, selector: "[kbqTopBarSpacer]", host: { classAttribute: "kbq-top-bar-spacer" }, ngImport: i0 }); }
6
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTopBarSpacer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: KbqTopBarSpacer, isStandalone: true, selector: "[kbqTopBarSpacer]", host: { classAttribute: "kbq-top-bar-spacer" }, ngImport: i0 }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTopBarSpacer, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTopBarSpacer, decorators: [{
10
10
  type: Directive,
11
11
  args: [{
12
12
  selector: '[kbqTopBarSpacer]',
@@ -31,10 +31,10 @@ class KbqTopBarContainer {
31
31
  */
32
32
  this.overflowItems = inject(KbqOverflowItems, { optional: true, self: true });
33
33
  }
34
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTopBarContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: KbqTopBarContainer, isStandalone: true, selector: "[kbqTopBarContainer]", inputs: { placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.kbq-top-bar-container__start": "placement() === \"start\"", "class.kbq-top-bar-container__end": "placement() === \"end\"", "class.kbq-top-bar-container__with-overflow-items": "overflowItems" }, classAttribute: "kbq-top-bar-container" }, ngImport: i0 }); }
34
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTopBarContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.18", type: KbqTopBarContainer, isStandalone: true, selector: "[kbqTopBarContainer]", inputs: { placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.kbq-top-bar-container__start": "placement() === \"start\"", "class.kbq-top-bar-container__end": "placement() === \"end\"", "class.kbq-top-bar-container__with-overflow-items": "overflowItems" }, classAttribute: "kbq-top-bar-container" }, ngImport: i0 }); }
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTopBarContainer, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTopBarContainer, decorators: [{
38
38
  type: Directive,
39
39
  args: [{
40
40
  selector: '[kbqTopBarContainer]',
@@ -53,12 +53,12 @@ class KbqTopBar {
53
53
  */
54
54
  this.withShadow = false;
55
55
  }
56
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTopBar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
57
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.17", type: KbqTopBar, isStandalone: true, selector: "kbq-top-bar", inputs: { withShadow: ["withShadow", "withShadow", booleanAttribute] }, host: { properties: { "class.kbq-top-bar_with-shadow": "withShadow" }, classAttribute: "kbq-top-bar" }, ngImport: i0, template: `
56
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTopBar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
57
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.18", type: KbqTopBar, isStandalone: true, selector: "kbq-top-bar", inputs: { withShadow: ["withShadow", "withShadow", booleanAttribute] }, host: { properties: { "class.kbq-top-bar_with-shadow": "withShadow" }, classAttribute: "kbq-top-bar" }, ngImport: i0, template: `
58
58
  <ng-content />
59
59
  `, isInline: true, styles: [".kbq-top-bar{display:flex;align-items:center;justify-content:space-between;flex-direction:row;box-sizing:border-box;position:var(--kbq-top-bar-position);background-color:var(--kbq-top-bar-background);padding:var(--kbq-top-bar-padding-vertical) var(--kbq-top-bar-padding-horizontal);border-radius:var(--kbq-top-bar-border-radius)}.kbq-top-bar.kbq-top-bar_with-shadow{box-shadow:var(--kbq-top-bar-shadow-bottom);transition:box-shadow var(--kbq-top-bar-shadow-transition)}.kbq-top-bar .kbq-top-bar-spacer{height:100%;flex:0 0 var(--kbq-top-bar-spacer-min-width)}.kbq-top-bar .kbq-top-bar-container:has(>.kbq-overflow-items){gap:unset;overflow:hidden;margin-top:calc(-1 * var(--kbq-size-border-width));margin-bottom:calc(-1 * var(--kbq-size-border-width))}.kbq-top-bar .kbq-top-bar-container .kbq-overflow-items{padding:var(--kbq-size-border-width)}.kbq-top-bar .kbq-top-bar-container .kbq-overflow-items>.kbq-overflow-item:not(:last-of-type){margin-right:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container .kbq-overflow-items>.kbq-overflow-item:last-of-type:is(.kbq-overflow-item_always-visible)+.kbq-overflow-items-result{margin-left:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container .kbq-overflow-items .kbq-overflow-items-result:first-child{margin-right:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__start{display:flex;gap:var(--kbq-top-bar-container-start-gap);flex:1 0 var(--kbq-top-bar-container-start-basis);justify-content:flex-start;min-width:0}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__end{display:flex;gap:var(--kbq-top-bar-container-end-gap);justify-content:end}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__with-overflow-items{gap:unset;justify-content:unset;padding:var(--kbq-size-border-width)}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__with-overflow-items>.kbq-overflow-item:not(:last-of-type){margin-right:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__with-overflow-items>.kbq-overflow-item:last-of-type:is(.kbq-overflow-item_always-visible)+.kbq-overflow-items-result{margin-left:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar .kbq-top-bar-container.kbq-top-bar-container__with-overflow-items .kbq-overflow-items-result:first-child{margin-right:var(--kbq-top-bar-container-end-gap)}.kbq-top-bar{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ":where(.kbq-top-bar){--kbq-top-bar-position: sticky;--kbq-top-bar-background: var(--kbq-background-bg);--kbq-top-bar-spacer-min-width: 80px;--kbq-top-bar-padding-vertical: var(--kbq-size-m);--kbq-top-bar-padding-horizontal: var(--kbq-size-xxl);--kbq-top-bar-border-radius: 0;--kbq-top-bar-container-start-gap: 0;--kbq-top-bar-container-start-basis: 0;--kbq-top-bar-container-end-gap: var(--kbq-size-s);--kbq-top-bar-shadow-bottom: var(--kbq-shadow-overflow-normal-bottom);--kbq-top-bar-shadow-transition: ease-out .3s}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTopBar, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTopBar, decorators: [{
62
62
  type: Component,
63
63
  args: [{ selector: 'kbq-top-bar', template: `
64
64
  <ng-content />
@@ -77,15 +77,15 @@ const COMPONENTS = [
77
77
  KbqTopBarSpacer
78
78
  ];
79
79
  class KbqTopBarModule {
80
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTopBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
81
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: KbqTopBarModule, imports: [KbqTopBar,
80
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTopBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
81
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: KbqTopBarModule, imports: [KbqTopBar,
82
82
  KbqTopBarContainer,
83
83
  KbqTopBarSpacer], exports: [KbqTopBar,
84
84
  KbqTopBarContainer,
85
85
  KbqTopBarSpacer] }); }
86
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTopBarModule }); }
86
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTopBarModule }); }
87
87
  }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTopBarModule, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTopBarModule, decorators: [{
89
89
  type: NgModule,
90
90
  args: [{
91
91
  imports: COMPONENTS,
@@ -34,10 +34,11 @@ const kbqTreeSelectOptionsProvider = (options) => {
34
34
  };
35
35
  /** Change event object that is emitted when the select value has changed. */
36
36
  class KbqTreeSelectChange {
37
- constructor(source, value, isUserInput = false) {
37
+ constructor(source, value, isUserInput = false, values) {
38
38
  this.source = source;
39
39
  this.value = value;
40
40
  this.isUserInput = isUserInput;
41
+ this.values = values;
41
42
  }
42
43
  }
43
44
  class KbqTreeSelect extends KbqAbstractSelect {
@@ -127,22 +128,7 @@ class KbqTreeSelect extends KbqAbstractSelect {
127
128
  /** Function for handling the combination Ctrl + A (select all). By default, the internal handler is used. */
128
129
  _selectAllHandler(event, select) {
129
130
  event.preventDefault();
130
- const options = select.options.filter(({ disabled }) => !disabled);
131
- const hasUnselectedOptions = options.some((option) => !option.selected);
132
- const toUnselect = [];
133
- const toSelect = [];
134
- options.forEach((option) => {
135
- if (hasUnselectedOptions) {
136
- option.select(false);
137
- toSelect.push(option.data);
138
- }
139
- else {
140
- option.deselect();
141
- toUnselect.push(option.data);
142
- }
143
- });
144
- this.selectionModel.deselect(...toUnselect);
145
- this.selectionModel.select(...toSelect);
131
+ select.tree.selectAllOptions();
146
132
  }
147
133
  /** Whether the select is focused. */
148
134
  get focused() {
@@ -427,8 +413,7 @@ class KbqTreeSelect extends KbqAbstractSelect {
427
413
  }
428
414
  });
429
415
  this.tree.selectionChange.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {
430
- this.onChange(this.selectedValues);
431
- this.selectionChange.emit(new KbqTreeSelectChange(this, event.option));
416
+ this.selectionChange.emit(new KbqTreeSelectChange(this, event.option, false, event.options));
432
417
  if (this.search) {
433
418
  this.search.focus();
434
419
  }
@@ -894,8 +879,8 @@ class KbqTreeSelect extends KbqAbstractSelect {
894
879
  this.changeDetectorRef.markForCheck();
895
880
  });
896
881
  }
897
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTreeSelect, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.ErrorStateMatcher }, { token: KBQ_SELECT_SCROLL_STRATEGY }, { token: i2.Directionality, optional: true }, { token: i3.NgForm, optional: true }, { token: i3.FormGroupDirective, optional: true }, { token: i4.KbqFormField, host: true, optional: true }, { token: i3.NgControl, optional: true, self: true }, { token: KBQ_LOCALE_SERVICE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
898
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: KbqTreeSelect, isStandalone: true, selector: "kbq-tree-select", inputs: { hiddenItemsText: "hiddenItemsText", panelClass: "panelClass", backdropClass: "backdropClass", errorStateMatcher: "errorStateMatcher", sortComparator: "sortComparator", multiline: ["multiline", "multiline", booleanAttribute], placeholder: "placeholder", required: "required", multiple: ["multiple", "multiple", booleanAttribute], autoSelect: "autoSelect", id: "id", hasBackdrop: "hasBackdrop", tabIndex: "tabIndex", disabled: ["disabled", "disabled", booleanAttribute], selectAllHandler: "selectAllHandler", panelMinWidth: ["panelMinWidth", "panelMinWidth", numberAttribute], panelWidth: "panelWidth", searchMinOptionsThreshold: "searchMinOptionsThreshold", hiddenItemsTextFormatter: "hiddenItemsTextFormatter" }, outputs: { openedChange: "openedChange", openedStream: "opened", closedStream: "closed", selectionChange: "selectionChange", valueChange: "valueChange" }, host: { listeners: { "click": "handleClick()", "keydown": "handleKeydown($event)", "focus": "onFocus()", "blur": "onBlur()" }, properties: { "class.kbq-select_multiple": "multiple", "class.kbq-select_multiline": "multiline", "class.kbq-disabled": "disabled", "class.kbq-invalid": "errorState", "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "kbq-tree-select" }, providers: [
882
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTreeSelect, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.ErrorStateMatcher }, { token: KBQ_SELECT_SCROLL_STRATEGY }, { token: i2.Directionality, optional: true }, { token: i3.NgForm, optional: true }, { token: i3.FormGroupDirective, optional: true }, { token: i4.KbqFormField, host: true, optional: true }, { token: i3.NgControl, optional: true, self: true }, { token: KBQ_LOCALE_SERVICE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
883
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: KbqTreeSelect, isStandalone: true, selector: "kbq-tree-select", inputs: { hiddenItemsText: "hiddenItemsText", panelClass: "panelClass", backdropClass: "backdropClass", errorStateMatcher: "errorStateMatcher", sortComparator: "sortComparator", multiline: ["multiline", "multiline", booleanAttribute], placeholder: "placeholder", required: "required", multiple: ["multiple", "multiple", booleanAttribute], autoSelect: "autoSelect", id: "id", hasBackdrop: "hasBackdrop", tabIndex: "tabIndex", disabled: ["disabled", "disabled", booleanAttribute], selectAllHandler: "selectAllHandler", panelMinWidth: ["panelMinWidth", "panelMinWidth", numberAttribute], panelWidth: "panelWidth", searchMinOptionsThreshold: "searchMinOptionsThreshold", hiddenItemsTextFormatter: "hiddenItemsTextFormatter" }, outputs: { openedChange: "openedChange", openedStream: "opened", closedStream: "closed", selectionChange: "selectionChange", valueChange: "valueChange" }, host: { listeners: { "click": "handleClick()", "keydown": "handleKeydown($event)", "focus": "onFocus()", "blur": "onBlur()" }, properties: { "class.kbq-select_multiple": "multiple", "class.kbq-select_multiline": "multiline", "class.kbq-disabled": "disabled", "class.kbq-invalid": "errorState", "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "kbq-tree-select" }, providers: [
899
884
  { provide: KbqFormFieldControl, useExisting: KbqTreeSelect },
900
885
  { provide: KbqTree, useExisting: KbqTreeSelect },
901
886
  { provide: KBQ_PARENT_POPUP, useExisting: KbqTreeSelect }
@@ -904,7 +889,7 @@ class KbqTreeSelect extends KbqAbstractSelect {
904
889
  kbqSelectAnimations.fadeInContent
905
890
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
906
891
  }
907
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTreeSelect, decorators: [{
892
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTreeSelect, decorators: [{
908
893
  type: Component,
909
894
  args: [{ selector: 'kbq-tree-select', imports: [
910
895
  CdkOverlayOrigin,
@@ -1044,8 +1029,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
1044
1029
  }] } });
1045
1030
 
1046
1031
  class KbqTreeSelectModule {
1047
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTreeSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1048
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: KbqTreeSelectModule, imports: [OverlayModule,
1032
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTreeSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1033
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: KbqTreeSelectModule, imports: [OverlayModule,
1049
1034
  KbqTreeModule,
1050
1035
  KbqIconModule,
1051
1036
  KbqTagsModule,
@@ -1065,7 +1050,7 @@ class KbqTreeSelectModule {
1065
1050
  KbqSelectTrigger,
1066
1051
  KbqSelectSearchEmptyResult,
1067
1052
  KbqFormFieldModule] }); }
1068
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTreeSelectModule, providers: [KBQ_SELECT_SCROLL_STRATEGY_PROVIDER], imports: [OverlayModule,
1053
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTreeSelectModule, providers: [KBQ_SELECT_SCROLL_STRATEGY_PROVIDER], imports: [OverlayModule,
1069
1054
  KbqTreeModule,
1070
1055
  KbqIconModule,
1071
1056
  KbqTagsModule,
@@ -1073,7 +1058,7 @@ class KbqTreeSelectModule {
1073
1058
  A11yModule,
1074
1059
  KbqTreeSelect, KbqFormFieldModule] }); }
1075
1060
  }
1076
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqTreeSelectModule, decorators: [{
1061
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqTreeSelectModule, decorators: [{
1077
1062
  type: NgModule,
1078
1063
  args: [{
1079
1064
  imports: [