@koobiq/components 19.3.0 → 19.4.1
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/autocomplete/autocomplete-trigger.directive.d.ts +5 -0
- package/core/animation/animation.d.ts +3 -1
- package/core/highlight/highlight.pipe.d.ts +2 -0
- package/core/option/action.d.ts +5 -6
- package/core/styles/common/_animation.scss +1 -2
- package/fesm2022/koobiq-components-app-switcher.mjs +6 -6
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +8 -1
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +2 -2
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +45 -26
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +4 -4
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +18 -18
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +8 -8
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +2 -2
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +3 -12
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +11 -1
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +4 -4
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +49 -22
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +1 -0
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +146 -41
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +23 -9
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +2 -2
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +8 -0
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +2 -2
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +2 -2
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/form-field/_form-field-theme.scss +2 -2
- package/form-field/form-field-control.d.ts +2 -0
- package/form-field/form-field.scss +0 -1
- package/icon/icon-button.scss +5 -4
- package/inline-edit/inline-edit-tokens.scss +1 -1
- package/list/list-selection.component.d.ts +1 -0
- package/package.json +4 -4
- package/schematics/ng-add/index.js +2 -2
- package/search-expandable/search-expandable.d.ts +19 -4
- package/sidepanel/_sidepanel-theme.scss +10 -0
- package/sidepanel/sidepanel-animations.d.ts +7 -1
- package/sidepanel/sidepanel-container.component.d.ts +12 -2
- package/sidepanel/sidepanel-directives.d.ts +8 -0
- package/sidepanel/sidepanel-ref.d.ts +12 -0
- package/sidepanel/sidepanel-tokens.scss +5 -3
- package/sidepanel/sidepanel.scss +78 -18
- package/sidepanel/sidepanel.service.d.ts +2 -0
- package/tags/tag-list.component.d.ts +7 -1
- package/tags/tag.component.d.ts +2 -0
- package/tooltip/tooltip.component.d.ts +8 -0
|
@@ -7,16 +7,13 @@ import * as i0 from '@angular/core';
|
|
|
7
7
|
import { output, Directive, inject, ElementRef, input, booleanAttribute, numberAttribute, contentChild, viewChild, viewChildren, signal, computed, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
|
|
8
8
|
import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
9
9
|
import { AbstractControl, NgControl } from '@angular/forms';
|
|
10
|
-
import { KbqAutocompleteTrigger } from '@koobiq/components/autocomplete';
|
|
11
10
|
import * as i1 from '@koobiq/components/button';
|
|
12
11
|
import { KbqButtonModule } from '@koobiq/components/button';
|
|
13
12
|
import { KbqAnimationDurations, KbqAnimationCurves, PopUpPlacements, KbqComponentColors } from '@koobiq/components/core';
|
|
14
13
|
import { KbqDropdownTrigger } from '@koobiq/components/dropdown';
|
|
15
14
|
import { KbqLabel, KbqFormField } from '@koobiq/components/form-field';
|
|
16
15
|
import { KbqIcon } from '@koobiq/components/icon';
|
|
17
|
-
import { KbqSelect } from '@koobiq/components/select';
|
|
18
16
|
import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
|
|
19
|
-
import { KbqTreeSelect } from '@koobiq/components/tree-select';
|
|
20
17
|
import { skip } from 'rxjs';
|
|
21
18
|
import { takeUntil } from 'rxjs/operators';
|
|
22
19
|
|
|
@@ -338,21 +335,15 @@ class KbqInlineEdit {
|
|
|
338
335
|
: this.elementRef;
|
|
339
336
|
this.overlayWidth.set(elementRef?.nativeElement.offsetWidth ?? '');
|
|
340
337
|
}
|
|
341
|
-
// @TODO refactor this (#DS-4181)
|
|
342
338
|
openPanel(formFieldRef) {
|
|
343
339
|
const control = formFieldRef.control;
|
|
344
|
-
|
|
345
|
-
control.open();
|
|
346
|
-
}
|
|
347
|
-
else if (control instanceof KbqAutocompleteTrigger) {
|
|
348
|
-
control.openPanel();
|
|
349
|
-
}
|
|
340
|
+
control?.open?.();
|
|
350
341
|
}
|
|
351
342
|
getInputNativeElement() {
|
|
352
343
|
return this.overlayDir()?.overlayRef.overlayElement.querySelector('input:not([type="file"]),textarea') ?? null;
|
|
353
344
|
}
|
|
354
345
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqInlineEdit, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
355
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: KbqInlineEdit, isStandalone: true, selector: "kbq-inline-edit", inputs: { showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, showTooltipOnError: { classPropertyName: "showTooltipOnError", publicName: "showTooltipOnError", isSignal: true, isRequired: false, transformFunction: null }, validationTooltip: { classPropertyName: "validationTooltip", publicName: "validationTooltip", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, editModeWidth: { classPropertyName: "editModeWidth", publicName: "editModeWidth", isSignal: true, isRequired: false, transformFunction: null }, tooltipPlacement: { classPropertyName: "tooltipPlacement", publicName: "tooltipPlacement", isSignal: true, isRequired: false, transformFunction: null }, getValueHandler: { classPropertyName: "getValueHandler", publicName: "getValueHandler", isSignal: true, isRequired: false, transformFunction: null }, setValueHandler: { classPropertyName: "setValueHandler", publicName: "setValueHandler", isSignal: true, isRequired: false, transformFunction: null }, canSaveOnEnter: { classPropertyName: "canSaveOnEnter", publicName: "canSaveOnEnter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { saved: "saved", canceled: "canceled", modeChange: "modeChange" }, host: { listeners: { "click": "onClick($event)", "keydown.enter": "onClick($event)", "keydown.space": "onClick($event)" }, properties: { "class": "className()", "class.kbq-inline-edit_with-label": "!!label()", "class.kbq-inline-edit_with-menu": "!!menu()", "class.kbq-inline-edit_disabled": "disabled()" }, classAttribute: "kbq-inline-edit" }, queries: [{ propertyName: "menu", first: true, predicate: KbqInlineEditMenu, descendants: true, isSignal: true }, { propertyName: "label", first: true, predicate: KbqLabel, descendants: true, isSignal: true }, { propertyName: "formFieldRef", first: true, predicate: KbqFormField, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, isSignal: true }, { propertyName: "tooltipTrigger", first: true, predicate: KbqTooltipTrigger, descendants: true, isSignal: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true, isSignal: true }, { propertyName: "regionItems", predicate: KbqFocusRegionItem, descendants: true, isSignal: true }], exportAs: ["kbqInlineEdit"], ngImport: i0, template: "@if (label()) {\n <div class=\"kbq-inline-edit__label\">\n <ng-content select=\"kbq-label\" />\n </div>\n}\n\n<div class=\"kbq-inline-edit__view-container\">\n <ng-content select=\"[kbqInlineEditViewMode]\" />\n\n <div\n #overlayOrigin\n class=\"kbq-inline-edit__focus_container kbq-inline-edit__overlay-origin\"\n cdkMonitorElementFocus\n cdkOverlayOrigin\n [tabIndex]=\"tabIndex()\"\n (keydown.enter)=\"onClick($event)\"\n ></div>\n\n @if (menu() && mode() === 'view') {\n <div class=\"kbq-inline-edit__menu-mask kbq-mask\">\n <div class=\"kbq-inline-edit__menu-mask-fade kbq-mask__fade\"></div>\n <div class=\"kbq-inline-edit__menu-mask-container kbq-mask__container\">\n <ng-content select=\"[kbqInlineEditMenu]\" />\n </div>\n </div>\n }\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOpen]=\"isEditMode()\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOffsetY]=\"-overlayOrigin.offsetHeight\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n (attach)=\"onAttach()\"\n (overlayOutsideClick)=\"save($event)\"\n (overlayKeydown)=\"onOverlayKeydown($event)\"\n >\n <div class=\"kbq-inline-edit__panel\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <div\n class=\"kbq-inline-edit__control-container\"\n kbqFocusRegionItem\n [kbqTooltipColor]=\"colors.Error\"\n [kbqTooltip]=\"validationTooltip() ?? ''\"\n [kbqTooltipArrow]=\"false\"\n [kbqTrigger]=\"'manual'\"\n [kbqPlacement]=\"tooltipPlacement() ?? placements.TopLeft\"\n >\n <ng-content select=\"[kbqInlineEditEditMode]\" />\n </div>\n\n @if (showActions()) {\n <div class=\"kbq-inline-edit__action-buttons\" role=\"group\" [@panelAnimation]>\n <button kbq-button [color]=\"'contrast'\" (click)=\"save($event)\">\n <i kbq-icon=\"kbq-check_16\"></i>\n </button>\n <button\n kbqFocusRegionItem\n kbq-button\n [color]=\"'contrast-fade'\"\n (click)=\"cancel()\"\n (keydown.enter)=\"cancel()\"\n >\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n </div>\n }\n </div>\n </ng-template>\n</div>\n", styles: [".kbq-inline-edit{display:flex;flex-direction:column;justify-content:center;border-radius:var(--kbq-size-border-radius);padding:var(--kbq-inline-edit-padding-vertical) var(--kbq-inline-edit-padding-horizontal);min-height:var(--kbq-inline-edit-height);box-sizing:border-box}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):hover{--kbq-inline-edit-background: var(--kbq-states-background-transparent-hover);--kbq-mask-background: var(--kbq-states-background-contrast-less-hover);cursor:pointer}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):active,.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):has(.kbq-inline-edit__menu.kbq-active){--kbq-inline-edit-background: var(--kbq-states-background-transparent-active);--kbq-mask-background: var(--kbq-states-background-contrast-less-active)}.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:hover,.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:has(.kbq-inline-edit__menu.kbq-active){--kbq-mask-background: var(--kbq-background-bg)}.kbq-inline-edit .kbq-label{color:var(--kbq-inline-edit-label-color)}.kbq-inline-edit .kbq-inline-edit__focus_container{background:var(--kbq-inline-edit-background);border-color:var(--kbq-inline-edit-background)}.kbq-inline-edit .kbq-inline-edit__focus_container:focus-visible{outline:none}.kbq-inline-edit .kbq-inline-edit__focus_container.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-inline-edit{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)}.kbq-inline-edit:not(.kbq-inline-edit_with-label){--kbq-inline-edit-padding-horizontal: var(--kbq-size-m)}.kbq-inline-edit.kbq-inline-edit_with-label{padding-top:var(--kbq-inline-edit-padding-vertical);padding-bottom:var(--kbq-inline-edit-padding-vertical)}.kbq-inline-edit.kbq-inline-edit_with-label.kbq-inline-edit_edit .kbq-inline-edit__view-container{position:relative}.kbq-inline-edit.kbq-inline-edit_with-label .kbq-inline-edit__label{margin-bottom:var(--kbq-size-3xs)}.kbq-inline-edit.kbq-inline-edit_view .kbq-inline-edit__view-container{text-overflow:ellipsis}.kbq-inline-edit:hover .kbq-inline-edit__menu-mask,.kbq-inline-edit.cdk-keyboard-focused .kbq-inline-edit__menu-mask{opacity:1}.kbq-inline-edit .kbq-inline-edit__placeholder{color:var(--kbq-foreground-contrast-secondary)}.kbq-inline-edit{position:relative}.kbq-inline-edit .kbq-mask{display:flex;position:absolute;top:0;right:0}.kbq-inline-edit .kbq-mask .kbq-mask__fade{background:var(--kbq-mask-background, transparent);mask-image:linear-gradient(90deg,transparent,var(--kbq-black-default))}.kbq-inline-edit .kbq-mask .kbq-mask__container{background:var(--kbq-mask-background, transparent)}.kbq-inline-edit .kbq-inline-edit__menu-mask{opacity:0;height:100%;justify-content:flex-end;border-top-right-radius:var(--kbq-size-border-radius);border-bottom-right-radius:var(--kbq-size-border-radius)}.kbq-inline-edit .kbq-inline-edit__menu-mask:has(.kbq-inline-edit__menu.kbq-pressed,.kbq-inline-edit__menu.cdk-keyboard-focused){opacity:1}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu-mask-fade{width:32px}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu-mask-container{display:flex;justify-content:flex-end;min-width:40px;border-radius:inherit}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu{display:inline-flex;align-self:flex-start;padding:var(--kbq-size-s);z-index:2}.kbq-inline-edit .kbq-inline-edit__focus_container{position:absolute;top:0;left:0;width:calc(100% - 2 * var(--kbq-size-border-width));height:calc(100% - 2 * var(--kbq-size-border-width));border:var(--kbq-size-border-width) solid transparent;border-radius:var(--kbq-size-border-radius);z-index:1}.kbq-inline-edit__panel{width:100%}.kbq-inline-edit__panel .kbq-inline-edit__control-container{border-radius:var(--kbq-size-border-radius)}.kbq-inline-edit__panel .kbq-inline-edit__action-buttons{position:absolute;left:calc(-1 * var(--kbq-inline-edit-padding-horizontal));display:inline-flex;flex-direction:row;gap:var(--kbq-size-xxs);padding:var(--kbq-size-xxs) var(--kbq-size-s) var(--kbq-size-s)}.kbq-inline-edit__panel .kbq-inline-edit__control-container,.kbq-inline-edit__panel .kbq-inline-edit__action-buttons>.kbq-button-icon{box-shadow:var(--kbq-shadow-popup)}\n", ":where(.kbq-inline-edit,.kbq-inline-edit__panel){--kbq-inline-edit-background: transparent;--kbq-inline-edit-height: var(--kbq-size-3xl);--kbq-inline-edit-padding-horizontal: var(--kbq-size-s);--kbq-inline-edit-padding-vertical: 5px;--kbq-inline-edit-panel-shadow: var(--kbq-shadow-popup);--kbq-inline-edit-label-color: var(--kbq-foreground-contrast-secondary)}\n"], dependencies: [{ kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "directive", type: KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "directive", type: KbqFocusRegionItem, selector: "[kbqFocusRegionItem]", outputs: ["tabOut"], exportAs: ["kbqFocusRegionItem"] }, { kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }], animations: [KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
346
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: KbqInlineEdit, isStandalone: true, selector: "kbq-inline-edit", inputs: { showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, showTooltipOnError: { classPropertyName: "showTooltipOnError", publicName: "showTooltipOnError", isSignal: true, isRequired: false, transformFunction: null }, validationTooltip: { classPropertyName: "validationTooltip", publicName: "validationTooltip", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, editModeWidth: { classPropertyName: "editModeWidth", publicName: "editModeWidth", isSignal: true, isRequired: false, transformFunction: null }, tooltipPlacement: { classPropertyName: "tooltipPlacement", publicName: "tooltipPlacement", isSignal: true, isRequired: false, transformFunction: null }, getValueHandler: { classPropertyName: "getValueHandler", publicName: "getValueHandler", isSignal: true, isRequired: false, transformFunction: null }, setValueHandler: { classPropertyName: "setValueHandler", publicName: "setValueHandler", isSignal: true, isRequired: false, transformFunction: null }, canSaveOnEnter: { classPropertyName: "canSaveOnEnter", publicName: "canSaveOnEnter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { saved: "saved", canceled: "canceled", modeChange: "modeChange" }, host: { listeners: { "click": "onClick($event)", "keydown.enter": "onClick($event)", "keydown.space": "onClick($event)" }, properties: { "class": "className()", "class.kbq-inline-edit_with-label": "!!label()", "class.kbq-inline-edit_with-menu": "!!menu()", "class.kbq-inline-edit_disabled": "disabled()" }, classAttribute: "kbq-inline-edit" }, queries: [{ propertyName: "menu", first: true, predicate: KbqInlineEditMenu, descendants: true, isSignal: true }, { propertyName: "label", first: true, predicate: KbqLabel, descendants: true, isSignal: true }, { propertyName: "formFieldRef", first: true, predicate: KbqFormField, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, isSignal: true }, { propertyName: "tooltipTrigger", first: true, predicate: KbqTooltipTrigger, descendants: true, isSignal: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true, isSignal: true }, { propertyName: "regionItems", predicate: KbqFocusRegionItem, descendants: true, isSignal: true }], exportAs: ["kbqInlineEdit"], ngImport: i0, template: "@if (label()) {\n <div class=\"kbq-inline-edit__label\">\n <ng-content select=\"kbq-label\" />\n </div>\n}\n\n<div class=\"kbq-inline-edit__view-container\">\n <ng-content select=\"[kbqInlineEditViewMode]\" />\n\n <div\n #overlayOrigin\n class=\"kbq-inline-edit__focus_container kbq-inline-edit__overlay-origin\"\n cdkMonitorElementFocus\n cdkOverlayOrigin\n [tabIndex]=\"tabIndex()\"\n (keydown.enter)=\"onClick($event)\"\n ></div>\n\n @if (menu() && mode() === 'view') {\n <div class=\"kbq-inline-edit__menu-mask kbq-mask\">\n <div class=\"kbq-inline-edit__menu-mask-fade kbq-mask__fade\"></div>\n <div class=\"kbq-inline-edit__menu-mask-container kbq-mask__container\">\n <ng-content select=\"[kbqInlineEditMenu]\" />\n </div>\n </div>\n }\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOpen]=\"isEditMode()\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOffsetY]=\"-overlayOrigin.offsetHeight\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n (attach)=\"onAttach()\"\n (overlayOutsideClick)=\"save($event)\"\n (overlayKeydown)=\"onOverlayKeydown($event)\"\n >\n <div class=\"kbq-inline-edit__panel\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <div\n class=\"kbq-inline-edit__control-container\"\n kbqFocusRegionItem\n [kbqTooltipColor]=\"colors.Error\"\n [kbqTooltip]=\"validationTooltip() ?? ''\"\n [kbqTooltipArrow]=\"false\"\n [kbqTrigger]=\"'manual'\"\n [kbqPlacement]=\"tooltipPlacement() ?? placements.TopLeft\"\n >\n <ng-content select=\"[kbqInlineEditEditMode]\" />\n </div>\n\n @if (showActions()) {\n <div class=\"kbq-inline-edit__action-buttons\" role=\"group\" [@panelAnimation]>\n <button kbq-button [color]=\"'contrast'\" (click)=\"save($event)\">\n <i kbq-icon=\"kbq-check_16\"></i>\n </button>\n <button\n kbqFocusRegionItem\n kbq-button\n [color]=\"'contrast-fade'\"\n (click)=\"cancel()\"\n (keydown.enter)=\"cancel()\"\n >\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n </div>\n }\n </div>\n </ng-template>\n</div>\n", styles: [".kbq-inline-edit{display:flex;flex-direction:column;justify-content:center;border-radius:var(--kbq-size-border-radius);padding:var(--kbq-inline-edit-padding-vertical) var(--kbq-inline-edit-padding-horizontal);min-height:var(--kbq-inline-edit-height);box-sizing:border-box}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):hover{--kbq-inline-edit-background: var(--kbq-states-background-transparent-hover);--kbq-mask-background: var(--kbq-states-background-contrast-less-hover);cursor:pointer}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):active,.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):has(.kbq-inline-edit__menu.kbq-active){--kbq-inline-edit-background: var(--kbq-states-background-transparent-active);--kbq-mask-background: var(--kbq-states-background-contrast-less-active)}.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:hover,.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:has(.kbq-inline-edit__menu.kbq-active){--kbq-mask-background: var(--kbq-background-bg)}.kbq-inline-edit .kbq-label{color:var(--kbq-inline-edit-label-color)}.kbq-inline-edit .kbq-inline-edit__focus_container{background:var(--kbq-inline-edit-background);border-color:var(--kbq-inline-edit-background)}.kbq-inline-edit .kbq-inline-edit__focus_container:focus-visible{outline:none}.kbq-inline-edit .kbq-inline-edit__focus_container.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-inline-edit{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)}.kbq-inline-edit:not(.kbq-inline-edit_with-label){--kbq-inline-edit-padding-horizontal: var(--kbq-size-m)}.kbq-inline-edit.kbq-inline-edit_with-label{padding-top:var(--kbq-inline-edit-padding-vertical);padding-bottom:var(--kbq-inline-edit-padding-vertical)}.kbq-inline-edit.kbq-inline-edit_with-label.kbq-inline-edit_edit .kbq-inline-edit__view-container{position:relative}.kbq-inline-edit.kbq-inline-edit_with-label .kbq-inline-edit__label{margin-bottom:var(--kbq-size-3xs)}.kbq-inline-edit.kbq-inline-edit_view .kbq-inline-edit__view-container{text-overflow:ellipsis}.kbq-inline-edit:hover .kbq-inline-edit__menu-mask,.kbq-inline-edit.cdk-keyboard-focused .kbq-inline-edit__menu-mask{opacity:1}.kbq-inline-edit .kbq-inline-edit__placeholder{color:var(--kbq-foreground-contrast-secondary)}.kbq-inline-edit{position:relative}.kbq-inline-edit .kbq-mask{display:flex;position:absolute;top:0;right:0}.kbq-inline-edit .kbq-mask .kbq-mask__fade{background:var(--kbq-mask-background, transparent);mask-image:linear-gradient(90deg,transparent,var(--kbq-black-default))}.kbq-inline-edit .kbq-mask .kbq-mask__container{background:var(--kbq-mask-background, transparent)}.kbq-inline-edit .kbq-inline-edit__menu-mask{opacity:0;height:100%;justify-content:flex-end;border-top-right-radius:var(--kbq-size-border-radius);border-bottom-right-radius:var(--kbq-size-border-radius)}.kbq-inline-edit .kbq-inline-edit__menu-mask:has(.kbq-inline-edit__menu.kbq-pressed,.kbq-inline-edit__menu.cdk-keyboard-focused){opacity:1}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu-mask-fade{width:32px}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu-mask-container{display:flex;justify-content:flex-end;min-width:40px;border-radius:inherit}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu{display:inline-flex;align-self:flex-start;padding:var(--kbq-size-s);z-index:2}.kbq-inline-edit .kbq-inline-edit__focus_container{position:absolute;top:0;left:0;width:calc(100% - 2 * var(--kbq-size-border-width));height:calc(100% - 2 * var(--kbq-size-border-width));border:var(--kbq-size-border-width) solid transparent;border-radius:var(--kbq-size-border-radius);z-index:1}.kbq-inline-edit__panel{width:100%}.kbq-inline-edit__panel .kbq-inline-edit__control-container{border-radius:var(--kbq-size-border-radius)}.kbq-inline-edit__panel .kbq-inline-edit__action-buttons{position:absolute;left:calc(-1 * var(--kbq-inline-edit-padding-horizontal));display:inline-flex;flex-direction:row;gap:var(--kbq-size-xxs);padding:var(--kbq-size-xxs) var(--kbq-size-s) var(--kbq-size-s)}.kbq-inline-edit__panel .kbq-inline-edit__control-container,.kbq-inline-edit__panel .kbq-inline-edit__action-buttons>.kbq-button-icon{box-shadow:var(--kbq-shadow-popup)}\n", ":where(.kbq-inline-edit,.kbq-inline-edit__panel){--kbq-inline-edit-background: transparent;--kbq-inline-edit-height: var(--kbq-size-3xl);--kbq-inline-edit-padding-horizontal: var(--kbq-size-s);--kbq-inline-edit-padding-vertical: var(--kbq-size-xs);--kbq-inline-edit-panel-shadow: var(--kbq-shadow-popup);--kbq-inline-edit-label-color: var(--kbq-foreground-contrast-secondary)}\n"], dependencies: [{ kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "directive", type: KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "directive", type: KbqFocusRegionItem, selector: "[kbqFocusRegionItem]", outputs: ["tabOut"], exportAs: ["kbqFocusRegionItem"] }, { kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }], animations: [KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
356
347
|
}
|
|
357
348
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqInlineEdit, decorators: [{
|
|
358
349
|
type: Component,
|
|
@@ -374,7 +365,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
|
|
|
374
365
|
'(click)': 'onClick($event)',
|
|
375
366
|
'(keydown.enter)': 'onClick($event)',
|
|
376
367
|
'(keydown.space)': 'onClick($event)'
|
|
377
|
-
}, animations: [KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION], template: "@if (label()) {\n <div class=\"kbq-inline-edit__label\">\n <ng-content select=\"kbq-label\" />\n </div>\n}\n\n<div class=\"kbq-inline-edit__view-container\">\n <ng-content select=\"[kbqInlineEditViewMode]\" />\n\n <div\n #overlayOrigin\n class=\"kbq-inline-edit__focus_container kbq-inline-edit__overlay-origin\"\n cdkMonitorElementFocus\n cdkOverlayOrigin\n [tabIndex]=\"tabIndex()\"\n (keydown.enter)=\"onClick($event)\"\n ></div>\n\n @if (menu() && mode() === 'view') {\n <div class=\"kbq-inline-edit__menu-mask kbq-mask\">\n <div class=\"kbq-inline-edit__menu-mask-fade kbq-mask__fade\"></div>\n <div class=\"kbq-inline-edit__menu-mask-container kbq-mask__container\">\n <ng-content select=\"[kbqInlineEditMenu]\" />\n </div>\n </div>\n }\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOpen]=\"isEditMode()\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOffsetY]=\"-overlayOrigin.offsetHeight\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n (attach)=\"onAttach()\"\n (overlayOutsideClick)=\"save($event)\"\n (overlayKeydown)=\"onOverlayKeydown($event)\"\n >\n <div class=\"kbq-inline-edit__panel\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <div\n class=\"kbq-inline-edit__control-container\"\n kbqFocusRegionItem\n [kbqTooltipColor]=\"colors.Error\"\n [kbqTooltip]=\"validationTooltip() ?? ''\"\n [kbqTooltipArrow]=\"false\"\n [kbqTrigger]=\"'manual'\"\n [kbqPlacement]=\"tooltipPlacement() ?? placements.TopLeft\"\n >\n <ng-content select=\"[kbqInlineEditEditMode]\" />\n </div>\n\n @if (showActions()) {\n <div class=\"kbq-inline-edit__action-buttons\" role=\"group\" [@panelAnimation]>\n <button kbq-button [color]=\"'contrast'\" (click)=\"save($event)\">\n <i kbq-icon=\"kbq-check_16\"></i>\n </button>\n <button\n kbqFocusRegionItem\n kbq-button\n [color]=\"'contrast-fade'\"\n (click)=\"cancel()\"\n (keydown.enter)=\"cancel()\"\n >\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n </div>\n }\n </div>\n </ng-template>\n</div>\n", styles: [".kbq-inline-edit{display:flex;flex-direction:column;justify-content:center;border-radius:var(--kbq-size-border-radius);padding:var(--kbq-inline-edit-padding-vertical) var(--kbq-inline-edit-padding-horizontal);min-height:var(--kbq-inline-edit-height);box-sizing:border-box}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):hover{--kbq-inline-edit-background: var(--kbq-states-background-transparent-hover);--kbq-mask-background: var(--kbq-states-background-contrast-less-hover);cursor:pointer}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):active,.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):has(.kbq-inline-edit__menu.kbq-active){--kbq-inline-edit-background: var(--kbq-states-background-transparent-active);--kbq-mask-background: var(--kbq-states-background-contrast-less-active)}.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:hover,.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:has(.kbq-inline-edit__menu.kbq-active){--kbq-mask-background: var(--kbq-background-bg)}.kbq-inline-edit .kbq-label{color:var(--kbq-inline-edit-label-color)}.kbq-inline-edit .kbq-inline-edit__focus_container{background:var(--kbq-inline-edit-background);border-color:var(--kbq-inline-edit-background)}.kbq-inline-edit .kbq-inline-edit__focus_container:focus-visible{outline:none}.kbq-inline-edit .kbq-inline-edit__focus_container.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-inline-edit{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)}.kbq-inline-edit:not(.kbq-inline-edit_with-label){--kbq-inline-edit-padding-horizontal: var(--kbq-size-m)}.kbq-inline-edit.kbq-inline-edit_with-label{padding-top:var(--kbq-inline-edit-padding-vertical);padding-bottom:var(--kbq-inline-edit-padding-vertical)}.kbq-inline-edit.kbq-inline-edit_with-label.kbq-inline-edit_edit .kbq-inline-edit__view-container{position:relative}.kbq-inline-edit.kbq-inline-edit_with-label .kbq-inline-edit__label{margin-bottom:var(--kbq-size-3xs)}.kbq-inline-edit.kbq-inline-edit_view .kbq-inline-edit__view-container{text-overflow:ellipsis}.kbq-inline-edit:hover .kbq-inline-edit__menu-mask,.kbq-inline-edit.cdk-keyboard-focused .kbq-inline-edit__menu-mask{opacity:1}.kbq-inline-edit .kbq-inline-edit__placeholder{color:var(--kbq-foreground-contrast-secondary)}.kbq-inline-edit{position:relative}.kbq-inline-edit .kbq-mask{display:flex;position:absolute;top:0;right:0}.kbq-inline-edit .kbq-mask .kbq-mask__fade{background:var(--kbq-mask-background, transparent);mask-image:linear-gradient(90deg,transparent,var(--kbq-black-default))}.kbq-inline-edit .kbq-mask .kbq-mask__container{background:var(--kbq-mask-background, transparent)}.kbq-inline-edit .kbq-inline-edit__menu-mask{opacity:0;height:100%;justify-content:flex-end;border-top-right-radius:var(--kbq-size-border-radius);border-bottom-right-radius:var(--kbq-size-border-radius)}.kbq-inline-edit .kbq-inline-edit__menu-mask:has(.kbq-inline-edit__menu.kbq-pressed,.kbq-inline-edit__menu.cdk-keyboard-focused){opacity:1}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu-mask-fade{width:32px}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu-mask-container{display:flex;justify-content:flex-end;min-width:40px;border-radius:inherit}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu{display:inline-flex;align-self:flex-start;padding:var(--kbq-size-s);z-index:2}.kbq-inline-edit .kbq-inline-edit__focus_container{position:absolute;top:0;left:0;width:calc(100% - 2 * var(--kbq-size-border-width));height:calc(100% - 2 * var(--kbq-size-border-width));border:var(--kbq-size-border-width) solid transparent;border-radius:var(--kbq-size-border-radius);z-index:1}.kbq-inline-edit__panel{width:100%}.kbq-inline-edit__panel .kbq-inline-edit__control-container{border-radius:var(--kbq-size-border-radius)}.kbq-inline-edit__panel .kbq-inline-edit__action-buttons{position:absolute;left:calc(-1 * var(--kbq-inline-edit-padding-horizontal));display:inline-flex;flex-direction:row;gap:var(--kbq-size-xxs);padding:var(--kbq-size-xxs) var(--kbq-size-s) var(--kbq-size-s)}.kbq-inline-edit__panel .kbq-inline-edit__control-container,.kbq-inline-edit__panel .kbq-inline-edit__action-buttons>.kbq-button-icon{box-shadow:var(--kbq-shadow-popup)}\n", ":where(.kbq-inline-edit,.kbq-inline-edit__panel){--kbq-inline-edit-background: transparent;--kbq-inline-edit-height: var(--kbq-size-3xl);--kbq-inline-edit-padding-horizontal: var(--kbq-size-s);--kbq-inline-edit-padding-vertical:
|
|
368
|
+
}, animations: [KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION], template: "@if (label()) {\n <div class=\"kbq-inline-edit__label\">\n <ng-content select=\"kbq-label\" />\n </div>\n}\n\n<div class=\"kbq-inline-edit__view-container\">\n <ng-content select=\"[kbqInlineEditViewMode]\" />\n\n <div\n #overlayOrigin\n class=\"kbq-inline-edit__focus_container kbq-inline-edit__overlay-origin\"\n cdkMonitorElementFocus\n cdkOverlayOrigin\n [tabIndex]=\"tabIndex()\"\n (keydown.enter)=\"onClick($event)\"\n ></div>\n\n @if (menu() && mode() === 'view') {\n <div class=\"kbq-inline-edit__menu-mask kbq-mask\">\n <div class=\"kbq-inline-edit__menu-mask-fade kbq-mask__fade\"></div>\n <div class=\"kbq-inline-edit__menu-mask-container kbq-mask__container\">\n <ng-content select=\"[kbqInlineEditMenu]\" />\n </div>\n </div>\n }\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOpen]=\"isEditMode()\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOffsetY]=\"-overlayOrigin.offsetHeight\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n (attach)=\"onAttach()\"\n (overlayOutsideClick)=\"save($event)\"\n (overlayKeydown)=\"onOverlayKeydown($event)\"\n >\n <div class=\"kbq-inline-edit__panel\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <div\n class=\"kbq-inline-edit__control-container\"\n kbqFocusRegionItem\n [kbqTooltipColor]=\"colors.Error\"\n [kbqTooltip]=\"validationTooltip() ?? ''\"\n [kbqTooltipArrow]=\"false\"\n [kbqTrigger]=\"'manual'\"\n [kbqPlacement]=\"tooltipPlacement() ?? placements.TopLeft\"\n >\n <ng-content select=\"[kbqInlineEditEditMode]\" />\n </div>\n\n @if (showActions()) {\n <div class=\"kbq-inline-edit__action-buttons\" role=\"group\" [@panelAnimation]>\n <button kbq-button [color]=\"'contrast'\" (click)=\"save($event)\">\n <i kbq-icon=\"kbq-check_16\"></i>\n </button>\n <button\n kbqFocusRegionItem\n kbq-button\n [color]=\"'contrast-fade'\"\n (click)=\"cancel()\"\n (keydown.enter)=\"cancel()\"\n >\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n </div>\n }\n </div>\n </ng-template>\n</div>\n", styles: [".kbq-inline-edit{display:flex;flex-direction:column;justify-content:center;border-radius:var(--kbq-size-border-radius);padding:var(--kbq-inline-edit-padding-vertical) var(--kbq-inline-edit-padding-horizontal);min-height:var(--kbq-inline-edit-height);box-sizing:border-box}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):hover{--kbq-inline-edit-background: var(--kbq-states-background-transparent-hover);--kbq-mask-background: var(--kbq-states-background-contrast-less-hover);cursor:pointer}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):active,.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):has(.kbq-inline-edit__menu.kbq-active){--kbq-inline-edit-background: var(--kbq-states-background-transparent-active);--kbq-mask-background: var(--kbq-states-background-contrast-less-active)}.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:hover,.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:has(.kbq-inline-edit__menu.kbq-active){--kbq-mask-background: var(--kbq-background-bg)}.kbq-inline-edit .kbq-label{color:var(--kbq-inline-edit-label-color)}.kbq-inline-edit .kbq-inline-edit__focus_container{background:var(--kbq-inline-edit-background);border-color:var(--kbq-inline-edit-background)}.kbq-inline-edit .kbq-inline-edit__focus_container:focus-visible{outline:none}.kbq-inline-edit .kbq-inline-edit__focus_container.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-inline-edit{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)}.kbq-inline-edit:not(.kbq-inline-edit_with-label){--kbq-inline-edit-padding-horizontal: var(--kbq-size-m)}.kbq-inline-edit.kbq-inline-edit_with-label{padding-top:var(--kbq-inline-edit-padding-vertical);padding-bottom:var(--kbq-inline-edit-padding-vertical)}.kbq-inline-edit.kbq-inline-edit_with-label.kbq-inline-edit_edit .kbq-inline-edit__view-container{position:relative}.kbq-inline-edit.kbq-inline-edit_with-label .kbq-inline-edit__label{margin-bottom:var(--kbq-size-3xs)}.kbq-inline-edit.kbq-inline-edit_view .kbq-inline-edit__view-container{text-overflow:ellipsis}.kbq-inline-edit:hover .kbq-inline-edit__menu-mask,.kbq-inline-edit.cdk-keyboard-focused .kbq-inline-edit__menu-mask{opacity:1}.kbq-inline-edit .kbq-inline-edit__placeholder{color:var(--kbq-foreground-contrast-secondary)}.kbq-inline-edit{position:relative}.kbq-inline-edit .kbq-mask{display:flex;position:absolute;top:0;right:0}.kbq-inline-edit .kbq-mask .kbq-mask__fade{background:var(--kbq-mask-background, transparent);mask-image:linear-gradient(90deg,transparent,var(--kbq-black-default))}.kbq-inline-edit .kbq-mask .kbq-mask__container{background:var(--kbq-mask-background, transparent)}.kbq-inline-edit .kbq-inline-edit__menu-mask{opacity:0;height:100%;justify-content:flex-end;border-top-right-radius:var(--kbq-size-border-radius);border-bottom-right-radius:var(--kbq-size-border-radius)}.kbq-inline-edit .kbq-inline-edit__menu-mask:has(.kbq-inline-edit__menu.kbq-pressed,.kbq-inline-edit__menu.cdk-keyboard-focused){opacity:1}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu-mask-fade{width:32px}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu-mask-container{display:flex;justify-content:flex-end;min-width:40px;border-radius:inherit}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu{display:inline-flex;align-self:flex-start;padding:var(--kbq-size-s);z-index:2}.kbq-inline-edit .kbq-inline-edit__focus_container{position:absolute;top:0;left:0;width:calc(100% - 2 * var(--kbq-size-border-width));height:calc(100% - 2 * var(--kbq-size-border-width));border:var(--kbq-size-border-width) solid transparent;border-radius:var(--kbq-size-border-radius);z-index:1}.kbq-inline-edit__panel{width:100%}.kbq-inline-edit__panel .kbq-inline-edit__control-container{border-radius:var(--kbq-size-border-radius)}.kbq-inline-edit__panel .kbq-inline-edit__action-buttons{position:absolute;left:calc(-1 * var(--kbq-inline-edit-padding-horizontal));display:inline-flex;flex-direction:row;gap:var(--kbq-size-xxs);padding:var(--kbq-size-xxs) var(--kbq-size-s) var(--kbq-size-s)}.kbq-inline-edit__panel .kbq-inline-edit__control-container,.kbq-inline-edit__panel .kbq-inline-edit__action-buttons>.kbq-button-icon{box-shadow:var(--kbq-shadow-popup)}\n", ":where(.kbq-inline-edit,.kbq-inline-edit__panel){--kbq-inline-edit-background: transparent;--kbq-inline-edit-height: var(--kbq-size-3xl);--kbq-inline-edit-padding-horizontal: var(--kbq-size-s);--kbq-inline-edit-padding-vertical: var(--kbq-size-xs);--kbq-inline-edit-panel-shadow: var(--kbq-shadow-popup);--kbq-inline-edit-label-color: var(--kbq-foreground-contrast-secondary)}\n"] }]
|
|
378
369
|
}], ctorParameters: () => [] });
|
|
379
370
|
|
|
380
371
|
const COMPONENTS = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-inline-edit.mjs","sources":["../../../packages/components/inline-edit/inline-edit.ts","../../../packages/components/inline-edit/inline-edit.html","../../../packages/components/inline-edit/module.ts","../../../packages/components/inline-edit/koobiq-components-inline-edit.ts"],"sourcesContent":["import { animate, style, transition, trigger } from '@angular/animations';\nimport { CdkMonitorFocus, CdkTrapFocus, FocusMonitor } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { CdkConnectedOverlay, CdkOverlayOrigin, Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n Directive,\n ElementRef,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n viewChild,\n viewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { AbstractControl, NgControl } from '@angular/forms';\nimport { KbqAutocompleteTrigger } from '@koobiq/components/autocomplete';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport {\n KbqAnimationCurves,\n KbqAnimationDurations,\n KbqComponentColors,\n PopUpPlacements\n} from '@koobiq/components/core';\nimport { KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqFormField, KbqLabel } from '@koobiq/components/form-field';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqSelect } from '@koobiq/components/select';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { KbqTreeSelect } from '@koobiq/components/tree-select';\nimport { skip } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nconst KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION = trigger('panelAnimation', [\n transition(':enter', [\n style({ transform: 'translateY(100%)', opacity: 0 }),\n animate(\n `${KbqAnimationDurations.Instant} ${KbqAnimationCurves.DecelerationCurve}`,\n style({ transform: 'translateY(0%)', opacity: 1 })\n )\n ])\n]);\n\nconst baseClass = 'kbq-inline-edit';\n\n/** @docs-private */\n@Directive({\n selector: '[kbqFocusRegionItem]',\n exportAs: 'kbqFocusRegionItem',\n host: {\n '(focusin)': 'isFocused = true',\n '(keydown.tab)': 'onTabOut($event)',\n '(keydown.shift.tab)': 'onTabOut($event)'\n }\n})\nexport class KbqFocusRegionItem {\n readonly tabOut = output<KeyboardEvent>();\n\n protected isFocused = false;\n\n protected onTabOut(event: KeyboardEvent) {\n if (this.isFocused) {\n this.tabOut.emit(event);\n }\n\n this.isFocused = !this.isFocused;\n }\n}\n\n/** Directive for easy using styles of inline edit placeholder publicly. */\n@Directive({\n selector: '[kbqInlineEditPlaceholder]',\n exportAs: 'kbqInlineEditPlaceholder',\n host: {\n class: 'kbq-inline-edit__placeholder'\n }\n})\nexport class KbqInlineEditPlaceholder {}\n\n/**\n * This directive enhances element acting as dropdown trigger,\n * visually indicating the active state with the `kbq-active` class.\n * Also, it prevents click/keydown events from being propagated to disable mode toggling of parent component.\n */\n@Directive({\n selector: '[kbqInlineEditMenu]',\n exportAs: 'kbqInlineEditMenu',\n host: {\n role: 'button',\n class: 'kbq-inline-edit__menu',\n '[class.kbq-active]': 'dropdownTrigger?.opened',\n '(click)': '$event.stopPropagation()',\n '(keydown.enter)': '$event.stopPropagation()',\n '(keydown.space)': '$event.stopPropagation()'\n }\n})\nexport class KbqInlineEditMenu {\n /** @docs-private */\n protected readonly dropdownTrigger = inject(KbqDropdownTrigger, { optional: true });\n}\n\n/**\n * Customizable component that enables edit-in-place logic for specified control and it's view.\n * This component is projecting edit/view mode templates and adds keyboard/pointer handlers.\n * Edit mode opens in a positioned overlay that matches the view mode width or can be customized.\n */\n@Component({\n selector: 'kbq-inline-edit',\n imports: [\n CdkConnectedOverlay,\n CdkOverlayOrigin,\n KbqButtonModule,\n KbqIcon,\n KbqTooltipTrigger,\n KbqFocusRegionItem,\n CdkTrapFocus,\n CdkMonitorFocus\n ],\n templateUrl: './inline-edit.html',\n styleUrls: ['./inline-edit.scss', './inline-edit-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqInlineEdit',\n host: {\n class: baseClass,\n '[class]': 'className()',\n '[class.kbq-inline-edit_with-label]': '!!label()',\n '[class.kbq-inline-edit_with-menu]': '!!menu()',\n '[class.kbq-inline-edit_disabled]': 'disabled()',\n '(click)': 'onClick($event)',\n '(keydown.enter)': 'onClick($event)',\n '(keydown.space)': 'onClick($event)'\n },\n animations: [KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION]\n})\nexport class KbqInlineEdit {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly focusMonitor = inject(FocusMonitor);\n private readonly overlay = inject(Overlay);\n private readonly document = inject(DOCUMENT);\n\n /**\n * Whether to show save/cancel action buttons in edit mode.\n * @default false\n */\n readonly showActions = input(false, { transform: booleanAttribute });\n /**\n * Whether to automatically show validation error tooltips on save attempts.\n * @default true\n */\n readonly showTooltipOnError = input(true, { transform: booleanAttribute });\n /** Custom validation tooltip message. */\n readonly validationTooltip = input<string | TemplateRef<any>>();\n /**\n * Disables the component, preventing interaction and mode switching. Only allows menu dropdown.\n * @default false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Custom width in pixels for the edit mode overlay. Auto-calculated if not set. */\n readonly editModeWidth = input(undefined, { transform: numberAttribute });\n /** User-defined tooltip placement */\n readonly tooltipPlacement = input<PopUpPlacements>();\n /** Handler function to retrieve the current value */\n readonly getValueHandler = input<() => unknown>();\n /** Handler function to update the value */\n readonly setValueHandler = input<(value: any) => void>();\n /**\n * Customizable function that checks if saving on enter available.\n */\n readonly canSaveOnEnter = input(\n (event: KeyboardEvent): boolean =>\n hasModifierKey(event, 'ctrlKey', 'metaKey') || !(event.target instanceof HTMLTextAreaElement)\n );\n\n /** Emitted when the inline edit is saved successfully. */\n protected readonly saved = output();\n /** Emitted when the inline edit is canceled and changes are discarded. */\n protected readonly canceled = output();\n /** Emitted when mode switched to edit/view */\n protected readonly modeChange = output<'view' | 'edit'>();\n\n /** @docs-private */\n protected readonly menu = contentChild(KbqInlineEditMenu);\n /** @docs-private */\n protected readonly label = contentChild(KbqLabel);\n /** @docs-private */\n protected readonly formFieldRef = contentChild(KbqFormField);\n\n /** @docs-private */\n protected readonly overlayOrigin = viewChild.required(CdkOverlayOrigin);\n /** @docs-private */\n protected readonly tooltipTrigger = viewChild(KbqTooltipTrigger);\n /** @docs-private */\n protected readonly overlayDir = viewChild(CdkConnectedOverlay);\n /** @docs-private */\n protected readonly regionItems = viewChildren(KbqFocusRegionItem);\n\n /** @docs-private */\n protected readonly mode = signal<'view' | 'edit'>('view');\n /** @docs-private */\n protected readonly overlayWidth = signal<number | string>('');\n /** @docs-private */\n protected readonly scrollStrategy = signal<ScrollStrategy>(this.overlay.scrollStrategies.reposition());\n /** @docs-private */\n readonly modeAsReadonly = computed(() => this.mode());\n\n /** @docs-private */\n protected readonly className = computed(() => `${baseClass}_${this.mode()}`);\n /** @docs-private */\n protected readonly isEditMode = computed(() => this.mode() === 'edit');\n /** @docs-private */\n protected readonly tabIndex = computed(() => (this.isEditMode() || this.disabled() ? -1 : 0));\n\n /** @docs-private */\n protected readonly placements = PopUpPlacements;\n\n /** @docs-private */\n protected readonly colors = KbqComponentColors;\n\n private initialValue: unknown;\n\n constructor() {\n toObservable(this.mode)\n .pipe(skip(1), takeUntilDestroyed())\n .subscribe((currentMode) => this.modeChange.emit(currentMode));\n }\n\n /** Manually switch mode */\n toggleMode(): void {\n this.mode.update((mode) => (mode === 'view' ? 'edit' : 'view'));\n }\n\n /** @docs-private */\n protected onClick(event: Event): void {\n if (this.disabled() || this.isEditMode()) return;\n\n event.preventDefault();\n event.stopPropagation();\n this.focusMonitor.focusVia(this.overlayOrigin().elementRef, 'program');\n\n this.toggleMode();\n }\n\n /** @docs-private */\n protected onAttach(): void {\n this.setOverlayWidth();\n this.setOverlayKeydownListener();\n\n const formFieldRef = this.formFieldRef();\n\n formFieldRef?.control.stateChanges\n .pipe(takeUntil(this.overlayDir()!.overlayRef.detachments()))\n .subscribe(() => {\n if (!this.isInvalid()) {\n const tooltipTrigger = this.tooltipTrigger();\n\n tooltipTrigger?.isOpen && tooltipTrigger?.hide();\n }\n });\n\n setTimeout(() => {\n formFieldRef?.focus();\n this.initialValue = this.getValue();\n\n const input = this.getInputNativeElement();\n\n if (this.initialValue) input?.select();\n\n if (formFieldRef) {\n this.openPanel(formFieldRef);\n }\n }, 0);\n }\n\n /** @docs-private */\n protected save($event?: Event): void {\n if (this.isInvalid()) {\n $event?.stopPropagation();\n this.showTooltipOnError() && this.tooltipTrigger()?.show();\n } else {\n this.toggleMode();\n this.saved.emit();\n }\n }\n\n /** @docs-private */\n protected cancel(): void {\n this.setValue(this.initialValue);\n\n const input = this.getInputNativeElement();\n\n if (input) {\n input.selectionStart = input.selectionEnd = null;\n }\n\n this.toggleMode();\n this.canceled.emit();\n }\n\n /** @docs-private */\n protected onOverlayKeydown(event: KeyboardEvent): void {\n this.formFieldRef()?.control.ngControl?.control?.markAsTouched();\n const canSaveOnEnter = this.canSaveOnEnter();\n\n switch (event.key) {\n case 'Escape': {\n this.cancel();\n break;\n }\n case 'Enter': {\n if (canSaveOnEnter(event)) {\n event.preventDefault();\n this.formFieldRef()?.control.ngControl?.control?.markAsTouched();\n setTimeout(() => this.save(event));\n }\n\n break;\n }\n default: {\n return;\n }\n }\n }\n\n /**\n * Sets up Tab key listeners on region items.\n * Single item: Tab moves to next edit.\n * Multiple items: Shift+Tab on first or Tab on last moves to next edit.\n */\n private setOverlayKeydownListener(): void {\n const regionItems = this.regionItems();\n\n if (regionItems.length === 0) return;\n\n const firstItem = regionItems.at(0);\n const lastItem = regionItems.at(regionItems.length - 1);\n\n if (regionItems.length === 1) {\n firstItem?.tabOut.subscribe((event) => this.saveAndFocusNextInlineEdit(event));\n } else {\n firstItem?.tabOut.subscribe(\n (event) => hasModifierKey(event, 'shiftKey') && this.saveAndFocusNextInlineEdit(event)\n );\n\n lastItem?.tabOut.subscribe(\n (event) => !hasModifierKey(event, 'shiftKey') && this.saveAndFocusNextInlineEdit(event)\n );\n }\n }\n\n private saveAndFocusNextInlineEdit(event: KeyboardEvent): void {\n this.save(event);\n if (this.isInvalid()) return;\n\n setTimeout(() => {\n const activeElement = this.document.activeElement;\n\n if (activeElement?.classList?.contains('kbq-inline-edit__focus_container')) {\n activeElement.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter' }));\n }\n });\n }\n\n private isInvalid(): boolean {\n const formFieldRef = this.formFieldRef();\n\n if (!formFieldRef) return false;\n\n return formFieldRef.invalid;\n }\n\n private getValue() {\n const getValueHandler = this.getValueHandler();\n\n if (getValueHandler) return getValueHandler();\n\n const control = this.coerceControl();\n\n return control?.value;\n }\n\n private setValue<T>(value: T): void {\n const setValue = this.setValueHandler();\n\n if (setValue) {\n setValue(this.initialValue);\n\n return;\n }\n\n const control = this.coerceControl();\n\n if (!control) return;\n\n if (control instanceof AbstractControl) {\n control.setValue(value);\n } else {\n control.value = value;\n }\n }\n\n private coerceControl() {\n const formFieldRef = this.formFieldRef();\n\n if (!formFieldRef) return null;\n\n if (formFieldRef.control.ngControl instanceof NgControl) {\n return formFieldRef.control.ngControl.control;\n }\n\n return formFieldRef.control;\n }\n\n private setOverlayWidth(): void {\n const editModeWidth = this.editModeWidth();\n\n if (editModeWidth) {\n this.overlayWidth.set(editModeWidth);\n\n return;\n }\n\n const elementRef: ElementRef<HTMLElement> | undefined = this.label()\n ? this.overlayOrigin().elementRef\n : this.elementRef;\n\n this.overlayWidth.set(elementRef?.nativeElement.offsetWidth ?? '');\n }\n\n // @TODO refactor this (#DS-4181)\n private openPanel(formFieldRef: KbqFormField) {\n const control = formFieldRef.control;\n\n if (control instanceof KbqSelect || control instanceof KbqTreeSelect) {\n control.open();\n } else if (control instanceof KbqAutocompleteTrigger) {\n control.openPanel();\n }\n }\n\n private getInputNativeElement(): HTMLInputElement | HTMLTextAreaElement | null {\n return this.overlayDir()?.overlayRef.overlayElement.querySelector('input:not([type=\"file\"]),textarea') ?? null;\n }\n}\n","@if (label()) {\n <div class=\"kbq-inline-edit__label\">\n <ng-content select=\"kbq-label\" />\n </div>\n}\n\n<div class=\"kbq-inline-edit__view-container\">\n <ng-content select=\"[kbqInlineEditViewMode]\" />\n\n <div\n #overlayOrigin\n class=\"kbq-inline-edit__focus_container kbq-inline-edit__overlay-origin\"\n cdkMonitorElementFocus\n cdkOverlayOrigin\n [tabIndex]=\"tabIndex()\"\n (keydown.enter)=\"onClick($event)\"\n ></div>\n\n @if (menu() && mode() === 'view') {\n <div class=\"kbq-inline-edit__menu-mask kbq-mask\">\n <div class=\"kbq-inline-edit__menu-mask-fade kbq-mask__fade\"></div>\n <div class=\"kbq-inline-edit__menu-mask-container kbq-mask__container\">\n <ng-content select=\"[kbqInlineEditMenu]\" />\n </div>\n </div>\n }\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOpen]=\"isEditMode()\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOffsetY]=\"-overlayOrigin.offsetHeight\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n (attach)=\"onAttach()\"\n (overlayOutsideClick)=\"save($event)\"\n (overlayKeydown)=\"onOverlayKeydown($event)\"\n >\n <div class=\"kbq-inline-edit__panel\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <div\n class=\"kbq-inline-edit__control-container\"\n kbqFocusRegionItem\n [kbqTooltipColor]=\"colors.Error\"\n [kbqTooltip]=\"validationTooltip() ?? ''\"\n [kbqTooltipArrow]=\"false\"\n [kbqTrigger]=\"'manual'\"\n [kbqPlacement]=\"tooltipPlacement() ?? placements.TopLeft\"\n >\n <ng-content select=\"[kbqInlineEditEditMode]\" />\n </div>\n\n @if (showActions()) {\n <div class=\"kbq-inline-edit__action-buttons\" role=\"group\" [@panelAnimation]>\n <button kbq-button [color]=\"'contrast'\" (click)=\"save($event)\">\n <i kbq-icon=\"kbq-check_16\"></i>\n </button>\n <button\n kbqFocusRegionItem\n kbq-button\n [color]=\"'contrast-fade'\"\n (click)=\"cancel()\"\n (keydown.enter)=\"cancel()\"\n >\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n </div>\n }\n </div>\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { KbqInlineEdit, KbqInlineEditMenu, KbqInlineEditPlaceholder } from './inline-edit';\n\nconst COMPONENTS = [\n KbqInlineEdit,\n KbqInlineEditPlaceholder,\n KbqInlineEditMenu\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqInlineEditModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"koobiq-components-inline-edit.mjs","sources":["../../../packages/components/inline-edit/inline-edit.ts","../../../packages/components/inline-edit/inline-edit.html","../../../packages/components/inline-edit/module.ts","../../../packages/components/inline-edit/koobiq-components-inline-edit.ts"],"sourcesContent":["import { animate, style, transition, trigger } from '@angular/animations';\nimport { CdkMonitorFocus, CdkTrapFocus, FocusMonitor } from '@angular/cdk/a11y';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { CdkConnectedOverlay, CdkOverlayOrigin, Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n Directive,\n ElementRef,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n viewChild,\n viewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { AbstractControl, NgControl } from '@angular/forms';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport {\n KbqAnimationCurves,\n KbqAnimationDurations,\n KbqComponentColors,\n PopUpPlacements\n} from '@koobiq/components/core';\nimport { KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqFormField, KbqLabel } from '@koobiq/components/form-field';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { skip } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nconst KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION = trigger('panelAnimation', [\n transition(':enter', [\n style({ transform: 'translateY(100%)', opacity: 0 }),\n animate(\n `${KbqAnimationDurations.Instant} ${KbqAnimationCurves.DecelerationCurve}`,\n style({ transform: 'translateY(0%)', opacity: 1 })\n )\n ])\n]);\n\nconst baseClass = 'kbq-inline-edit';\n\n/** @docs-private */\n@Directive({\n selector: '[kbqFocusRegionItem]',\n exportAs: 'kbqFocusRegionItem',\n host: {\n '(focusin)': 'isFocused = true',\n '(keydown.tab)': 'onTabOut($event)',\n '(keydown.shift.tab)': 'onTabOut($event)'\n }\n})\nexport class KbqFocusRegionItem {\n readonly tabOut = output<KeyboardEvent>();\n\n protected isFocused = false;\n\n protected onTabOut(event: KeyboardEvent) {\n if (this.isFocused) {\n this.tabOut.emit(event);\n }\n\n this.isFocused = !this.isFocused;\n }\n}\n\n/** Directive for easy using styles of inline edit placeholder publicly. */\n@Directive({\n selector: '[kbqInlineEditPlaceholder]',\n exportAs: 'kbqInlineEditPlaceholder',\n host: {\n class: 'kbq-inline-edit__placeholder'\n }\n})\nexport class KbqInlineEditPlaceholder {}\n\n/**\n * This directive enhances element acting as dropdown trigger,\n * visually indicating the active state with the `kbq-active` class.\n * Also, it prevents click/keydown events from being propagated to disable mode toggling of parent component.\n */\n@Directive({\n selector: '[kbqInlineEditMenu]',\n exportAs: 'kbqInlineEditMenu',\n host: {\n role: 'button',\n class: 'kbq-inline-edit__menu',\n '[class.kbq-active]': 'dropdownTrigger?.opened',\n '(click)': '$event.stopPropagation()',\n '(keydown.enter)': '$event.stopPropagation()',\n '(keydown.space)': '$event.stopPropagation()'\n }\n})\nexport class KbqInlineEditMenu {\n /** @docs-private */\n protected readonly dropdownTrigger = inject(KbqDropdownTrigger, { optional: true });\n}\n\n/**\n * Customizable component that enables edit-in-place logic for specified control and it's view.\n * This component is projecting edit/view mode templates and adds keyboard/pointer handlers.\n * Edit mode opens in a positioned overlay that matches the view mode width or can be customized.\n */\n@Component({\n selector: 'kbq-inline-edit',\n imports: [\n CdkConnectedOverlay,\n CdkOverlayOrigin,\n KbqButtonModule,\n KbqIcon,\n KbqTooltipTrigger,\n KbqFocusRegionItem,\n CdkTrapFocus,\n CdkMonitorFocus\n ],\n templateUrl: './inline-edit.html',\n styleUrls: ['./inline-edit.scss', './inline-edit-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqInlineEdit',\n host: {\n class: baseClass,\n '[class]': 'className()',\n '[class.kbq-inline-edit_with-label]': '!!label()',\n '[class.kbq-inline-edit_with-menu]': '!!menu()',\n '[class.kbq-inline-edit_disabled]': 'disabled()',\n '(click)': 'onClick($event)',\n '(keydown.enter)': 'onClick($event)',\n '(keydown.space)': 'onClick($event)'\n },\n animations: [KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION]\n})\nexport class KbqInlineEdit {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly focusMonitor = inject(FocusMonitor);\n private readonly overlay = inject(Overlay);\n private readonly document = inject(DOCUMENT);\n\n /**\n * Whether to show save/cancel action buttons in edit mode.\n * @default false\n */\n readonly showActions = input(false, { transform: booleanAttribute });\n /**\n * Whether to automatically show validation error tooltips on save attempts.\n * @default true\n */\n readonly showTooltipOnError = input(true, { transform: booleanAttribute });\n /** Custom validation tooltip message. */\n readonly validationTooltip = input<string | TemplateRef<any>>();\n /**\n * Disables the component, preventing interaction and mode switching. Only allows menu dropdown.\n * @default false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Custom width in pixels for the edit mode overlay. Auto-calculated if not set. */\n readonly editModeWidth = input(undefined, { transform: numberAttribute });\n /** User-defined tooltip placement */\n readonly tooltipPlacement = input<PopUpPlacements>();\n /** Handler function to retrieve the current value */\n readonly getValueHandler = input<() => unknown>();\n /** Handler function to update the value */\n readonly setValueHandler = input<(value: any) => void>();\n /**\n * Customizable function that checks if saving on enter available.\n */\n readonly canSaveOnEnter = input(\n (event: KeyboardEvent): boolean =>\n hasModifierKey(event, 'ctrlKey', 'metaKey') || !(event.target instanceof HTMLTextAreaElement)\n );\n\n /** Emitted when the inline edit is saved successfully. */\n protected readonly saved = output();\n /** Emitted when the inline edit is canceled and changes are discarded. */\n protected readonly canceled = output();\n /** Emitted when mode switched to edit/view */\n protected readonly modeChange = output<'view' | 'edit'>();\n\n /** @docs-private */\n protected readonly menu = contentChild(KbqInlineEditMenu);\n /** @docs-private */\n protected readonly label = contentChild(KbqLabel);\n /** @docs-private */\n protected readonly formFieldRef = contentChild(KbqFormField);\n\n /** @docs-private */\n protected readonly overlayOrigin = viewChild.required(CdkOverlayOrigin);\n /** @docs-private */\n protected readonly tooltipTrigger = viewChild(KbqTooltipTrigger);\n /** @docs-private */\n protected readonly overlayDir = viewChild(CdkConnectedOverlay);\n /** @docs-private */\n protected readonly regionItems = viewChildren(KbqFocusRegionItem);\n\n /** @docs-private */\n protected readonly mode = signal<'view' | 'edit'>('view');\n /** @docs-private */\n protected readonly overlayWidth = signal<number | string>('');\n /** @docs-private */\n protected readonly scrollStrategy = signal<ScrollStrategy>(this.overlay.scrollStrategies.reposition());\n /** @docs-private */\n readonly modeAsReadonly = computed(() => this.mode());\n\n /** @docs-private */\n protected readonly className = computed(() => `${baseClass}_${this.mode()}`);\n /** @docs-private */\n protected readonly isEditMode = computed(() => this.mode() === 'edit');\n /** @docs-private */\n protected readonly tabIndex = computed(() => (this.isEditMode() || this.disabled() ? -1 : 0));\n\n /** @docs-private */\n protected readonly placements = PopUpPlacements;\n\n /** @docs-private */\n protected readonly colors = KbqComponentColors;\n\n private initialValue: unknown;\n\n constructor() {\n toObservable(this.mode)\n .pipe(skip(1), takeUntilDestroyed())\n .subscribe((currentMode) => this.modeChange.emit(currentMode));\n }\n\n /** Manually switch mode */\n toggleMode(): void {\n this.mode.update((mode) => (mode === 'view' ? 'edit' : 'view'));\n }\n\n /** @docs-private */\n protected onClick(event: Event): void {\n if (this.disabled() || this.isEditMode()) return;\n\n event.preventDefault();\n event.stopPropagation();\n this.focusMonitor.focusVia(this.overlayOrigin().elementRef, 'program');\n\n this.toggleMode();\n }\n\n /** @docs-private */\n protected onAttach(): void {\n this.setOverlayWidth();\n this.setOverlayKeydownListener();\n\n const formFieldRef = this.formFieldRef();\n\n formFieldRef?.control.stateChanges\n .pipe(takeUntil(this.overlayDir()!.overlayRef.detachments()))\n .subscribe(() => {\n if (!this.isInvalid()) {\n const tooltipTrigger = this.tooltipTrigger();\n\n tooltipTrigger?.isOpen && tooltipTrigger?.hide();\n }\n });\n\n setTimeout(() => {\n formFieldRef?.focus();\n this.initialValue = this.getValue();\n\n const input = this.getInputNativeElement();\n\n if (this.initialValue) input?.select();\n\n if (formFieldRef) {\n this.openPanel(formFieldRef);\n }\n }, 0);\n }\n\n /** @docs-private */\n protected save($event?: Event): void {\n if (this.isInvalid()) {\n $event?.stopPropagation();\n this.showTooltipOnError() && this.tooltipTrigger()?.show();\n } else {\n this.toggleMode();\n this.saved.emit();\n }\n }\n\n /** @docs-private */\n protected cancel(): void {\n this.setValue(this.initialValue);\n\n const input = this.getInputNativeElement();\n\n if (input) {\n input.selectionStart = input.selectionEnd = null;\n }\n\n this.toggleMode();\n this.canceled.emit();\n }\n\n /** @docs-private */\n protected onOverlayKeydown(event: KeyboardEvent): void {\n this.formFieldRef()?.control.ngControl?.control?.markAsTouched();\n const canSaveOnEnter = this.canSaveOnEnter();\n\n switch (event.key) {\n case 'Escape': {\n this.cancel();\n break;\n }\n case 'Enter': {\n if (canSaveOnEnter(event)) {\n event.preventDefault();\n this.formFieldRef()?.control.ngControl?.control?.markAsTouched();\n setTimeout(() => this.save(event));\n }\n\n break;\n }\n default: {\n return;\n }\n }\n }\n\n /**\n * Sets up Tab key listeners on region items.\n * Single item: Tab moves to next edit.\n * Multiple items: Shift+Tab on first or Tab on last moves to next edit.\n */\n private setOverlayKeydownListener(): void {\n const regionItems = this.regionItems();\n\n if (regionItems.length === 0) return;\n\n const firstItem = regionItems.at(0);\n const lastItem = regionItems.at(regionItems.length - 1);\n\n if (regionItems.length === 1) {\n firstItem?.tabOut.subscribe((event) => this.saveAndFocusNextInlineEdit(event));\n } else {\n firstItem?.tabOut.subscribe(\n (event) => hasModifierKey(event, 'shiftKey') && this.saveAndFocusNextInlineEdit(event)\n );\n\n lastItem?.tabOut.subscribe(\n (event) => !hasModifierKey(event, 'shiftKey') && this.saveAndFocusNextInlineEdit(event)\n );\n }\n }\n\n private saveAndFocusNextInlineEdit(event: KeyboardEvent): void {\n this.save(event);\n if (this.isInvalid()) return;\n\n setTimeout(() => {\n const activeElement = this.document.activeElement;\n\n if (activeElement?.classList?.contains('kbq-inline-edit__focus_container')) {\n activeElement.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter' }));\n }\n });\n }\n\n private isInvalid(): boolean {\n const formFieldRef = this.formFieldRef();\n\n if (!formFieldRef) return false;\n\n return formFieldRef.invalid;\n }\n\n private getValue() {\n const getValueHandler = this.getValueHandler();\n\n if (getValueHandler) return getValueHandler();\n\n const control = this.coerceControl();\n\n return control?.value;\n }\n\n private setValue<T>(value: T): void {\n const setValue = this.setValueHandler();\n\n if (setValue) {\n setValue(this.initialValue);\n\n return;\n }\n\n const control = this.coerceControl();\n\n if (!control) return;\n\n if (control instanceof AbstractControl) {\n control.setValue(value);\n } else {\n control.value = value;\n }\n }\n\n private coerceControl() {\n const formFieldRef = this.formFieldRef();\n\n if (!formFieldRef) return null;\n\n if (formFieldRef.control.ngControl instanceof NgControl) {\n return formFieldRef.control.ngControl.control;\n }\n\n return formFieldRef.control;\n }\n\n private setOverlayWidth(): void {\n const editModeWidth = this.editModeWidth();\n\n if (editModeWidth) {\n this.overlayWidth.set(editModeWidth);\n\n return;\n }\n\n const elementRef: ElementRef<HTMLElement> | undefined = this.label()\n ? this.overlayOrigin().elementRef\n : this.elementRef;\n\n this.overlayWidth.set(elementRef?.nativeElement.offsetWidth ?? '');\n }\n\n private openPanel(formFieldRef: KbqFormField) {\n const control = formFieldRef.control;\n\n control?.open?.();\n }\n\n private getInputNativeElement(): HTMLInputElement | HTMLTextAreaElement | null {\n return this.overlayDir()?.overlayRef.overlayElement.querySelector('input:not([type=\"file\"]),textarea') ?? null;\n }\n}\n","@if (label()) {\n <div class=\"kbq-inline-edit__label\">\n <ng-content select=\"kbq-label\" />\n </div>\n}\n\n<div class=\"kbq-inline-edit__view-container\">\n <ng-content select=\"[kbqInlineEditViewMode]\" />\n\n <div\n #overlayOrigin\n class=\"kbq-inline-edit__focus_container kbq-inline-edit__overlay-origin\"\n cdkMonitorElementFocus\n cdkOverlayOrigin\n [tabIndex]=\"tabIndex()\"\n (keydown.enter)=\"onClick($event)\"\n ></div>\n\n @if (menu() && mode() === 'view') {\n <div class=\"kbq-inline-edit__menu-mask kbq-mask\">\n <div class=\"kbq-inline-edit__menu-mask-fade kbq-mask__fade\"></div>\n <div class=\"kbq-inline-edit__menu-mask-container kbq-mask__container\">\n <ng-content select=\"[kbqInlineEditMenu]\" />\n </div>\n </div>\n }\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOpen]=\"isEditMode()\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOffsetY]=\"-overlayOrigin.offsetHeight\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n (attach)=\"onAttach()\"\n (overlayOutsideClick)=\"save($event)\"\n (overlayKeydown)=\"onOverlayKeydown($event)\"\n >\n <div class=\"kbq-inline-edit__panel\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <div\n class=\"kbq-inline-edit__control-container\"\n kbqFocusRegionItem\n [kbqTooltipColor]=\"colors.Error\"\n [kbqTooltip]=\"validationTooltip() ?? ''\"\n [kbqTooltipArrow]=\"false\"\n [kbqTrigger]=\"'manual'\"\n [kbqPlacement]=\"tooltipPlacement() ?? placements.TopLeft\"\n >\n <ng-content select=\"[kbqInlineEditEditMode]\" />\n </div>\n\n @if (showActions()) {\n <div class=\"kbq-inline-edit__action-buttons\" role=\"group\" [@panelAnimation]>\n <button kbq-button [color]=\"'contrast'\" (click)=\"save($event)\">\n <i kbq-icon=\"kbq-check_16\"></i>\n </button>\n <button\n kbqFocusRegionItem\n kbq-button\n [color]=\"'contrast-fade'\"\n (click)=\"cancel()\"\n (keydown.enter)=\"cancel()\"\n >\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n </div>\n }\n </div>\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { KbqInlineEdit, KbqInlineEditMenu, KbqInlineEditPlaceholder } from './inline-edit';\n\nconst COMPONENTS = [\n KbqInlineEdit,\n KbqInlineEditPlaceholder,\n KbqInlineEditMenu\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqInlineEditModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -151,8 +151,8 @@ class KbqListSelection {
|
|
|
151
151
|
});
|
|
152
152
|
this.options.changes.pipe(startWith(null), takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
153
153
|
this.resetOptions();
|
|
154
|
-
// Check to see if we need to update our tab index
|
|
155
154
|
this.updateTabIndex();
|
|
155
|
+
this.initializeSelection();
|
|
156
156
|
});
|
|
157
157
|
this.updateScrollSize();
|
|
158
158
|
}
|
|
@@ -374,7 +374,17 @@ class KbqListSelection {
|
|
|
374
374
|
emitChangeEvent(option) {
|
|
375
375
|
this.selectionChange.emit(new KbqListSelectionChange(this, option));
|
|
376
376
|
}
|
|
377
|
+
initializeSelection() {
|
|
378
|
+
// Defer setting the value in order to avoid the "Expression
|
|
379
|
+
// has changed after it was checked" errors from Angular.
|
|
380
|
+
Promise.resolve().then(() => {
|
|
381
|
+
if (this._value) {
|
|
382
|
+
this.setOptionsFromValues(Array.isArray(this._value) ? this._value : [this._value]);
|
|
383
|
+
}
|
|
384
|
+
});
|
|
385
|
+
}
|
|
377
386
|
updateTabIndex() {
|
|
387
|
+
// Check to see if we need to update our tab index
|
|
378
388
|
this._tabIndex = this.userTabIndex || (this.options.length === 0 ? -1 : 0);
|
|
379
389
|
}
|
|
380
390
|
onCopyDefaultHandler() {
|