@konce-pt/angular 0.7.8 → 0.7.10

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.
@@ -735,6 +735,7 @@ const KPT_MESSAGES_EN = {
735
735
  min: 'min',
736
736
  max: 'max',
737
737
  editCell: 'Edit: {column}',
738
+ total: 'Total',
738
739
  },
739
740
  confirm: {
740
741
  header: 'Confirmation',
@@ -1002,6 +1003,7 @@ const KPT_MESSAGES_PL = {
1002
1003
  min: 'min',
1003
1004
  max: 'max',
1004
1005
  editCell: 'Edytuj: {column}',
1006
+ total: 'Razem',
1005
1007
  },
1006
1008
  confirm: {
1007
1009
  header: 'Potwierdzenie',
@@ -1349,7 +1351,7 @@ function KptSplitButton_ng_template_6_Template(rf, ctx) { if (rf & 1) {
1349
1351
  * Wymaga `import '@angular/cdk/overlay-prebuilt.css';`
1350
1352
  *
1351
1353
  * @example
1352
- * <kpt-split-button [items]="items" (primaryClick)="save()" (select)="onItem($event)">Zapisz</kpt-split-button>
1354
+ * <kpt-split-button [items]="items" (primaryClick)="save()" (selected)="onItem($event)">Zapisz</kpt-split-button>
1353
1355
  */
1354
1356
  class KptSplitButton {
1355
1357
  constructor() {
@@ -1359,7 +1361,7 @@ class KptSplitButton {
1359
1361
  ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
1360
1362
  this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1361
1363
  this.primaryClick = output();
1362
- this.select = output();
1364
+ this.selected = output();
1363
1365
  this.i18n = inject(KptI18n);
1364
1366
  this.open = signal(false, /* @ts-ignore */
1365
1367
  ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
@@ -1371,11 +1373,11 @@ class KptSplitButton {
1371
1373
  pick(item) {
1372
1374
  if (item.disabled)
1373
1375
  return;
1374
- this.select.emit(item);
1376
+ this.selected.emit(item);
1375
1377
  this.open.set(false);
1376
1378
  }
1377
1379
  static { this.ɵfac = function KptSplitButton_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptSplitButton)(); }; }
1378
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptSplitButton, selectors: [["kpt-split-button"]], hostAttrs: [1, "kpt-split-button-host"], inputs: { variant: [1, "variant"], items: [1, "items"], disabled: [1, "disabled"] }, outputs: { primaryClick: "primaryClick", select: "select" }, ngContentSelectors: _c0$z, decls: 7, vars: 8, consts: [["origin", "cdkOverlayOrigin"], [1, "kpt-split-button"], ["type", "button", 1, "kpt-split-button__main", 3, "click", "disabled"], ["type", "button", "cdkOverlayOrigin", "", 1, "kpt-split-button__toggle", 3, "click", "disabled"], ["name", "chevron-down"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["role", "menu", 1, "kpt-split-button__panel"], ["role", "separator", 1, "kpt-split-button__separator"], ["role", "presentation", 1, "kpt-split-button__header"], ["type", "button", 1, "kpt-split-button__item", 3, "kpt-split-button__item--danger", "disabled"], ["size", "sm", 3, "src", "name", "icon"], [3, "name"], [1, "kpt-split-button__text"], [1, "kpt-split-button__label"], [1, "kpt-split-button__description"], ["type", "button", 1, "kpt-split-button__item", 3, "click", "disabled"], [1, "kpt-split-button__badge", 3, "value", "variant"]], template: function KptSplitButton_Template(rf, ctx) { if (rf & 1) {
1380
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptSplitButton, selectors: [["kpt-split-button"]], hostAttrs: [1, "kpt-split-button-host"], inputs: { variant: [1, "variant"], items: [1, "items"], disabled: [1, "disabled"] }, outputs: { primaryClick: "primaryClick", selected: "selected" }, ngContentSelectors: _c0$z, decls: 7, vars: 8, consts: [["origin", "cdkOverlayOrigin"], [1, "kpt-split-button"], ["type", "button", 1, "kpt-split-button__main", 3, "click", "disabled"], ["type", "button", "cdkOverlayOrigin", "", 1, "kpt-split-button__toggle", 3, "click", "disabled"], ["name", "chevron-down"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["role", "menu", 1, "kpt-split-button__panel"], ["role", "separator", 1, "kpt-split-button__separator"], ["role", "presentation", 1, "kpt-split-button__header"], ["type", "button", 1, "kpt-split-button__item", 3, "kpt-split-button__item--danger", "disabled"], ["size", "sm", 3, "src", "name", "icon"], [3, "name"], [1, "kpt-split-button__text"], [1, "kpt-split-button__label"], [1, "kpt-split-button__description"], ["type", "button", 1, "kpt-split-button__item", 3, "click", "disabled"], [1, "kpt-split-button__badge", 3, "value", "variant"]], template: function KptSplitButton_Template(rf, ctx) { if (rf & 1) {
1379
1381
  i0.ɵɵprojectionDef();
1380
1382
  i0.ɵɵelementStart(0, "div", 1)(1, "button", 2);
1381
1383
  i0.ɵɵlistener("click", function KptSplitButton_Template_button_click_1_listener() { return ctx.primaryClick.emit(); });
@@ -1477,7 +1479,7 @@ class KptSplitButton {
1477
1479
  </div>
1478
1480
  </ng-template>
1479
1481
  `, host: { class: 'kpt-split-button-host' }, styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-split-button-host{display:inline-flex}.kpt-split-button{--_bg: var(--kpt-color-primary);--_fg: var(--kpt-color-on-primary);--_bg-hover: var(--kpt-color-primary-hover);display:inline-flex;border-radius:var(--kpt-button-radius, .5rem);overflow:hidden}.kpt-split-button[data-variant=tonal]{--_bg: var(--kpt-color-muted);--_fg: var(--kpt-color-on-muted);--_bg-hover: var(--kpt-color-muted-hover)}.kpt-split-button__main,.kpt-split-button__toggle{border:0;background:var(--_bg);color:var(--_fg);cursor:pointer;font:inherit;font-size:var(--kpt-font-size-sm, .875rem);font-weight:var(--kpt-font-weight-medium, 500);height:2.5rem;position:relative;isolation:isolate}.kpt-split-button__main:after,.kpt-split-button__toggle:after{content:\"\";position:absolute;inset:0;z-index:-1;background-color:var(--_bg-hover);opacity:0;pointer-events:none;transition:opacity var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-split-button__main:hover:not(:disabled):after,.kpt-split-button__toggle:hover:not(:disabled):after{opacity:1}.kpt-split-button__main:disabled,.kpt-split-button__toggle:disabled{opacity:.5;cursor:not-allowed}@media(prefers-reduced-motion:reduce){.kpt-split-button__main:after,.kpt-split-button__toggle:after{transition:none}}.kpt-split-button__main{padding-inline:var(--kpt-space-4, 1rem)}.kpt-split-button__toggle{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;border-inline-start:1px solid color-mix(in oklch,var(--_fg) 25%,transparent)}.kpt-split-button__panel{min-width:11rem;padding:.25rem;background:var(--kpt-color-surface-raised);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem);box-shadow:var(--kpt-elevation-3)}.kpt-split-button__item{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);width:100%;padding:.5rem .6rem;border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);font:inherit;font-size:var(--kpt-font-size-sm, .875rem);text-align:start;cursor:pointer}.kpt-split-button__item:hover:not(:disabled){background:var(--kpt-color-surface-variant)}.kpt-split-button__item:disabled{opacity:.45;cursor:not-allowed}.kpt-split-button__item--danger{color:var(--kpt-color-danger)}.kpt-split-button__item kpt-icon{color:var(--kpt-color-on-surface-muted)}.kpt-split-button__header{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);padding:.5rem .6rem;font-size:var(--kpt-font-size-sm, .875rem);cursor:default}.kpt-split-button__header .kpt-split-button__label{font-weight:var(--kpt-font-weight-semibold, 600)}.kpt-split-button__header kpt-icon{color:var(--kpt-color-on-surface-muted)}.kpt-split-button__text{display:flex;flex-direction:column;min-width:0}.kpt-split-button__label,.kpt-split-button__description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpt-split-button__description{color:var(--kpt-color-on-surface-muted);font-size:var(--kpt-font-size-xs, .75rem)}.kpt-split-button__badge{margin-inline-start:auto}.kpt-split-button__separator{height:1px;margin:.25rem 0;background:var(--kpt-color-border)}}\n"] }]
1480
- }], null, { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], primaryClick: [{ type: i0.Output, args: ["primaryClick"] }], select: [{ type: i0.Output, args: ["select"] }] }); })();
1482
+ }], null, { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], primaryClick: [{ type: i0.Output, args: ["primaryClick"] }], selected: [{ type: i0.Output, args: ["selected"] }] }); })();
1481
1483
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptSplitButton, { className: "KptSplitButton", filePath: "lib/split-button/split-button.component.ts", lineNumber: 101 }); })();
1482
1484
 
1483
1485
  // Do not edit directly — generated by scripts/gen-tokens.mjs
@@ -2793,6 +2795,11 @@ function KptClock_Conditional_14_Template(rf, ctx) { if (rf & 1) {
2793
2795
  const R_OUTER = 40;
2794
2796
  const R_INNER = 26;
2795
2797
  const pad$2 = (n) => String(n).padStart(2, '0');
2798
+ /** Pozycja znacznika (% tarczy) na pierścieniu o promieniu `radius`: 12 na górze, zegarowo. */
2799
+ function markPos(index, radius) {
2800
+ const theta = (index / 12) * 2 * Math.PI;
2801
+ return { x: 50 + radius * Math.sin(theta), y: 50 - radius * Math.cos(theta) };
2802
+ }
2796
2803
  /**
2797
2804
  * Tarcza zegara (wybór godziny) — dwa etapy: godziny → minuty, klik lub przeciąganie.
2798
2805
  * Format 12/24h (`hourFormat`); w 24h dodatkowy wewnętrzny pierścień 13–00, w 12h AM/PM.
@@ -2824,66 +2831,14 @@ class KptClock {
2824
2831
  ...(ngDevMode ? [{ debugName: "hourLabel" }] : /* istanbul ignore next */ []));
2825
2832
  this.minuteLabel = computed(() => pad$2(this.minute()), /* @ts-ignore */
2826
2833
  ...(ngDevMode ? [{ debugName: "minuteLabel" }] : /* istanbul ignore next */ []));
2827
- this.hourMarks = computed(() => {
2828
- const marks = [];
2829
- if (this.hourFormat() === 12) {
2830
- const ap = this.ampm();
2831
- const curH12 = this.hour12();
2832
- for (let i = 0; i < 12; i++) {
2833
- const theta = (i / 12) * 2 * Math.PI;
2834
- const h12 = i === 0 ? 12 : i;
2835
- marks.push({
2836
- label: String(h12),
2837
- hour24: this.from12h(h12, ap),
2838
- x: 50 + R_OUTER * Math.sin(theta),
2839
- y: 50 - R_OUTER * Math.cos(theta),
2840
- inner: false,
2841
- selected: curH12 === h12,
2842
- });
2843
- }
2844
- return marks;
2845
- }
2846
- const cur = this.hour();
2847
- for (let i = 0; i < 12; i++) {
2848
- const theta = (i / 12) * 2 * Math.PI;
2849
- const hour24 = i === 0 ? 12 : i;
2850
- marks.push({
2851
- label: i === 0 ? '12' : String(i),
2852
- hour24,
2853
- x: 50 + R_OUTER * Math.sin(theta),
2854
- y: 50 - R_OUTER * Math.cos(theta),
2855
- inner: false,
2856
- selected: cur === hour24,
2857
- });
2858
- }
2859
- for (let i = 0; i < 12; i++) {
2860
- const theta = (i / 12) * 2 * Math.PI;
2861
- const hour24 = i === 0 ? 0 : i + 12;
2862
- marks.push({
2863
- label: i === 0 ? '00' : String(i + 12),
2864
- hour24,
2865
- x: 50 + R_INNER * Math.sin(theta),
2866
- y: 50 - R_INNER * Math.cos(theta),
2867
- inner: true,
2868
- selected: cur === hour24,
2869
- });
2870
- }
2871
- return marks;
2872
- }, /* @ts-ignore */
2834
+ /** W 12h jeden pierścień; w 24h zewnętrzny (12, 1–11) i wewnętrzny (00, 13–23). */
2835
+ this.hourMarks = computed(() => this.hourFormat() === 12 ? this.marks12h() : [...this.marks24hOuter(), ...this.marks24hInner()], /* @ts-ignore */
2873
2836
  ...(ngDevMode ? [{ debugName: "hourMarks" }] : /* istanbul ignore next */ []));
2874
2837
  this.minuteMarks = computed(() => {
2875
2838
  const cur = this.minute();
2876
2839
  return Array.from({ length: 12 }, (_, i) => {
2877
2840
  const val = i * 5;
2878
- const theta = (i / 12) * 2 * Math.PI;
2879
- return {
2880
- label: pad$2(val),
2881
- hour24: val,
2882
- x: 50 + R_OUTER * Math.sin(theta),
2883
- y: 50 - R_OUTER * Math.cos(theta),
2884
- inner: false,
2885
- selected: cur === val,
2886
- };
2841
+ return { label: pad$2(val), hour24: val, ...markPos(i, R_OUTER), inner: false, selected: cur === val };
2887
2842
  });
2888
2843
  }, /* @ts-ignore */
2889
2844
  ...(ngDevMode ? [{ debugName: "minuteMarks" }] : /* istanbul ignore next */ []));
@@ -2909,6 +2864,31 @@ class KptClock {
2909
2864
  const base = h12 % 12; // 12 → 0
2910
2865
  return ap === 'PM' ? base + 12 : base;
2911
2866
  }
2867
+ marks12h() {
2868
+ const ap = this.ampm();
2869
+ const cur = this.hour();
2870
+ return Array.from({ length: 12 }, (_, i) => {
2871
+ const h12 = i === 0 ? 12 : i;
2872
+ // Wartość docelowa bierze bieżące AM/PM — tarcza pokazuje tylko jedną połowę doby.
2873
+ const hour24 = this.from12h(h12, ap);
2874
+ return { label: String(h12), hour24, ...markPos(i, R_OUTER), inner: false, selected: cur === hour24 };
2875
+ });
2876
+ }
2877
+ marks24hOuter() {
2878
+ const cur = this.hour();
2879
+ return Array.from({ length: 12 }, (_, i) => {
2880
+ const hour24 = i === 0 ? 12 : i;
2881
+ return { label: String(hour24), hour24, ...markPos(i, R_OUTER), inner: false, selected: cur === hour24 };
2882
+ });
2883
+ }
2884
+ marks24hInner() {
2885
+ const cur = this.hour();
2886
+ return Array.from({ length: 12 }, (_, i) => {
2887
+ const hour24 = i === 0 ? 0 : i + 12;
2888
+ // `pad` daje '00' dla północy; 13–23 są już dwucyfrowe.
2889
+ return { label: pad$2(hour24), hour24, ...markPos(i, R_INNER), inner: true, selected: cur === hour24 };
2890
+ });
2891
+ }
2912
2892
  setPhase(phase) {
2913
2893
  this.clockPhase.set(phase);
2914
2894
  }
@@ -2937,24 +2917,32 @@ class KptClock {
2937
2917
  if (deg < 0)
2938
2918
  deg += 360;
2939
2919
  if (this.clockPhase() === 'hours') {
2940
- const idx = Math.round(deg / 30) % 12;
2941
- if (this.hourFormat() === 12) {
2942
- const h12 = idx === 0 ? 12 : idx;
2943
- this.hour.set(this.from12h(h12, this.ampm()));
2944
- }
2945
- else {
2946
- const radius = Math.hypot(dx, dy) / (rect.width / 2);
2947
- const inner = radius < (R_OUTER + R_INNER) / 2 / 50;
2948
- this.hour.set(inner ? (idx === 0 ? 0 : idx + 12) : idx === 0 ? 12 : idx);
2949
- }
2920
+ this.setHourFromAngle(deg, Math.hypot(dx, dy) / (rect.width / 2));
2950
2921
  }
2951
2922
  else {
2952
- const step = Math.max(1, this.minuteStep());
2953
- const raw = Math.round(deg / 6) % 60;
2954
- this.minute.set((Math.round(raw / step) * step) % 60);
2923
+ this.setMinuteFromAngle(deg);
2955
2924
  }
2956
2925
  this.emit();
2957
2926
  }
2927
+ /** Godzina z kąta; w 24h o pierścieniu (a więc o 12–23 vs 0–11) decyduje promień kliknięcia. */
2928
+ setHourFromAngle(deg, radius) {
2929
+ const idx = Math.round(deg / 30) % 12;
2930
+ if (this.hourFormat() === 12) {
2931
+ this.hour.set(this.from12h(idx === 0 ? 12 : idx, this.ampm()));
2932
+ return;
2933
+ }
2934
+ const inner = radius < (R_OUTER + R_INNER) / 2 / 50;
2935
+ if (inner)
2936
+ this.hour.set(idx === 0 ? 0 : idx + 12);
2937
+ else
2938
+ this.hour.set(idx === 0 ? 12 : idx);
2939
+ }
2940
+ /** Minuta z kąta, dociągnięta do `minuteStep`. */
2941
+ setMinuteFromAngle(deg) {
2942
+ const step = Math.max(1, this.minuteStep());
2943
+ const raw = Math.round(deg / 6) % 60;
2944
+ this.minute.set((Math.round(raw / step) * step) % 60);
2945
+ }
2958
2946
  onDialUp() {
2959
2947
  if (this.clockPhase() === 'hours')
2960
2948
  this.clockPhase.set('minutes');
@@ -3054,7 +3042,7 @@ class KptClock {
3054
3042
  </div>
3055
3043
  `, host: { class: 'kpt-clock-host' }, styles: ["@layer kpt.components{.kpt-clock-host{display:block}.kpt-clock__time{display:flex;align-items:center;justify-content:center;gap:var(--kpt-space-1, .25rem);margin-bottom:var(--kpt-space-3, .75rem);font-variant-numeric:tabular-nums}.kpt-clock__seg{border:0;background:none;padding:.1rem .4rem;border-radius:var(--kpt-radius-sm, .25rem);font-size:var(--kpt-font-size-2xl, 1.5rem);font-weight:var(--kpt-font-weight-semibold, 600);color:var(--kpt-color-on-surface-muted);cursor:pointer}.kpt-clock__seg.is-active{color:var(--kpt-color-primary);background:var(--kpt-color-muted)}.kpt-clock__colon{font-size:var(--kpt-font-size-2xl, 1.5rem);font-weight:var(--kpt-font-weight-semibold, 600);color:var(--kpt-color-on-surface-muted)}.kpt-clock__ampm{display:flex;flex-direction:column;gap:2px;margin-inline-start:var(--kpt-space-2, .5rem)}.kpt-clock__ampm button{border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);background:none;padding:.1rem .4rem;border-radius:var(--kpt-radius-sm, .25rem);font-size:var(--kpt-font-size-xs, .75rem);font-weight:var(--kpt-font-weight-semibold, 600);color:var(--kpt-color-on-surface-muted);cursor:pointer}.kpt-clock__ampm button.is-active{background:var(--kpt-color-primary);border-color:var(--kpt-color-primary);color:var(--kpt-color-on-primary)}.kpt-clock__face{position:relative;width:13rem;max-width:100%;aspect-ratio:1;margin:0 auto;border-radius:50%;background:var(--kpt-color-surface-variant);touch-action:none;-webkit-user-select:none;user-select:none}.kpt-clock__center{position:absolute;left:50%;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);border-radius:50%;background:var(--kpt-color-primary);z-index:2}.kpt-clock__hand{position:absolute;left:50%;bottom:50%;width:2px;height:40%;margin-left:-1px;transform-origin:bottom center;background:var(--kpt-color-primary);z-index:1}.kpt-clock__hand--inner{height:26%}.kpt-clock__hand:before{content:\"\";position:absolute;top:-3px;left:50%;width:8px;height:8px;transform:translate(-50%);border-radius:50%;background:var(--kpt-color-primary)}.kpt-clock__num{position:absolute;transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:50%;background:none;color:var(--kpt-color-on-surface);font:inherit;font-size:var(--kpt-font-size-sm, .875rem);cursor:pointer;z-index:2}.kpt-clock__num:hover{background:var(--kpt-color-muted)}.kpt-clock__num--inner{width:1.6rem;height:1.6rem;font-size:var(--kpt-font-size-xs, .75rem);color:var(--kpt-color-on-surface-muted)}.kpt-clock__num--selected{background:var(--kpt-color-primary)!important;color:var(--kpt-color-on-primary)}}\n"] }]
3056
3044
  }], () => [], { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], hourFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "hourFormat", required: false }] }], minuteStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "minuteStep", required: false }] }] }); })();
3057
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptClock, { className: "KptClock", filePath: "lib/datepicker/clock.component.ts", lineNumber: 94 }); })();
3045
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptClock, { className: "KptClock", filePath: "lib/datepicker/clock.component.ts", lineNumber: 100 }); })();
3058
3046
 
3059
3047
  const _forTrack0$8 = ($index, $item) => $item.iso;
3060
3048
  const _forTrack1$2 = ($index, $item) => $item.label;
@@ -3534,42 +3522,29 @@ class KptDatepicker {
3534
3522
  return this.formatTime(t?.h ?? 0, t?.m ?? 0);
3535
3523
  }, /* @ts-ignore */
3536
3524
  ...(ngDevMode ? [{ debugName: "timeBarLabel" }] : /* istanbul ignore next */ []));
3525
+ /**
3526
+ * Tekst w triggerze. Każdy tryb ma własny format wartości, więc `display` tylko rozdziela
3527
+ * robotę — formatowanie siedzi w metodach `display*` niżej. Wartość niepasująca do formatu
3528
+ * trybu daje pusty string (trigger nie pokazuje śmieci, np. po ręcznej podmianie modelu).
3529
+ */
3537
3530
  this.display = computed(() => {
3538
3531
  const v = this.value();
3539
3532
  if (!v)
3540
3533
  return '';
3541
3534
  const iso = this.displayFormat() === 'iso';
3542
3535
  switch (this.selectionMode()) {
3543
- case 'monthYear': {
3544
- const m = /^(\d{4})-(\d{2})$/.exec(v);
3545
- return m ? (iso ? v : `${m[2]}.${m[1]}`) : '';
3546
- }
3536
+ case 'monthYear':
3537
+ return this.displayMonthYear(v, iso);
3547
3538
  case 'year':
3548
3539
  return /^\d{4}$/.test(v) ? v : '';
3549
- case 'month': {
3550
- const m = /^(\d{2})$/.exec(v);
3551
- if (!m)
3552
- return '';
3553
- return this.monthDisplay() === 'number' ? m[1] : (this.months()[+m[1] - 1] ?? '');
3554
- }
3555
- case 'time': {
3556
- const t = this.parseTime(v);
3557
- return t ? this.formatTime(t.h, t.m) : '';
3558
- }
3559
- case 'datetime': {
3560
- const dt = this.parseDateTime(v);
3561
- if (!dt)
3562
- return '';
3563
- const datePart = iso ? dt.date : `${dt.date.slice(8, 10)}.${dt.date.slice(5, 7)}.${dt.date.slice(0, 4)}`;
3564
- const sep = iso ? 'T' : ' ';
3565
- return `${datePart}${sep}${this.formatTime(dt.h, dt.m)}`;
3566
- }
3567
- default: {
3568
- const d = this.parseDate(v);
3569
- if (!d)
3570
- return '';
3571
- return iso ? toIso$1(d) : `${pad$1(d.getDate())}.${pad$1(d.getMonth() + 1)}.${d.getFullYear()}`;
3572
- }
3540
+ case 'month':
3541
+ return this.displayMonth(v);
3542
+ case 'time':
3543
+ return this.displayTime(v);
3544
+ case 'datetime':
3545
+ return this.displayDateTime(v, iso);
3546
+ default:
3547
+ return this.displayDate(v, iso);
3573
3548
  }
3574
3549
  }, /* @ts-ignore */
3575
3550
  ...(ngDevMode ? [{ debugName: "display" }] : /* istanbul ignore next */ []));
@@ -3718,6 +3693,36 @@ class KptDatepicker {
3718
3693
  }
3719
3694
  return `${pad$1(h)}:${pad$1(m)}`;
3720
3695
  }
3696
+ displayMonthYear(v, iso) {
3697
+ const m = /^(\d{4})-(\d{2})$/.exec(v);
3698
+ if (!m)
3699
+ return '';
3700
+ return iso ? v : `${m[2]}.${m[1]}`;
3701
+ }
3702
+ displayMonth(v) {
3703
+ const m = /^(\d{2})$/.exec(v);
3704
+ if (!m)
3705
+ return '';
3706
+ return this.monthDisplay() === 'number' ? m[1] : (this.months()[+m[1] - 1] ?? '');
3707
+ }
3708
+ displayTime(v) {
3709
+ const t = this.parseTime(v);
3710
+ return t ? this.formatTime(t.h, t.m) : '';
3711
+ }
3712
+ displayDateTime(v, iso) {
3713
+ const dt = this.parseDateTime(v);
3714
+ if (!dt)
3715
+ return '';
3716
+ const datePart = iso ? dt.date : `${dt.date.slice(8, 10)}.${dt.date.slice(5, 7)}.${dt.date.slice(0, 4)}`;
3717
+ const sep = iso ? 'T' : ' ';
3718
+ return `${datePart}${sep}${this.formatTime(dt.h, dt.m)}`;
3719
+ }
3720
+ displayDate(v, iso) {
3721
+ const d = this.parseDate(v);
3722
+ if (!d)
3723
+ return '';
3724
+ return iso ? toIso$1(d) : `${pad$1(d.getDate())}.${pad$1(d.getMonth() + 1)}.${d.getFullYear()}`;
3725
+ }
3721
3726
  // ── Parsowanie ──
3722
3727
  parseDate(iso) {
3723
3728
  const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(iso ?? '');
@@ -9221,6 +9226,157 @@ class KptCellEditDef {
9221
9226
  }]
9222
9227
  }], null, { kptCellEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "kptCellEdit", required: true }] }] }); })();
9223
9228
 
9229
+ /*
9230
+ * Zamiana wartości komórki na tekst dla filtrowania, sortowania i podsumowań — pure TS,
9231
+ * wydzielone żeby dało się testować `node --test` bez ciągnięcia Angulara (jak `csv-export.ts`).
9232
+ */
9233
+ /**
9234
+ * Tekst z dowolnej wartości komórki. Prymitywy, `Date` i tablice zachowują się jak `String()`,
9235
+ * natomiast zwykły obiekt daje **pusty string**, nie `'[object Object]'`: ten drugi udawałby
9236
+ * sensowną zawartość — filtr tekstowy „obj" dopasowywałby każdy wiersz z obiektem w komórce,
9237
+ * a sortowanie uznawało je wszystkie za równe.
9238
+ */
9239
+ function toText(value) {
9240
+ switch (typeof value) {
9241
+ case 'string':
9242
+ return value;
9243
+ case 'number':
9244
+ case 'boolean':
9245
+ case 'bigint':
9246
+ return String(value);
9247
+ case 'object':
9248
+ if (value === null)
9249
+ return '';
9250
+ if (value instanceof Date)
9251
+ return value.toString();
9252
+ if (Array.isArray(value))
9253
+ return value.map(toText).join(',');
9254
+ return '';
9255
+ default:
9256
+ return '';
9257
+ }
9258
+ }
9259
+
9260
+ /*
9261
+ * Agregacje wiersza podsumowania (`<tfoot>`) — pure TS, wydzielone żeby dało się
9262
+ * testować `node --test` bez ciągnięcia Angulara (jak `csv-export.ts`).
9263
+ */
9264
+ /**
9265
+ * Sumowanie liczb zmiennoprzecinkowych daje ogony (`0.1 + 0.2` → `0.30000000000000004`),
9266
+ * które bez tego przycięcia wyciekłyby wprost do komórki podsumowania.
9267
+ */
9268
+ function trimFloat(value) {
9269
+ return Math.round(value * 1e10) / 1e10;
9270
+ }
9271
+ /** Liczba z komórki: `number` bez zmian, string przez `parseFloat`, reszta → `NaN` (pomijana). */
9272
+ function toNumber(value) {
9273
+ if (typeof value === 'number')
9274
+ return value;
9275
+ if (typeof value === 'string' && value.trim() !== '')
9276
+ return Number.parseFloat(value);
9277
+ return Number.NaN;
9278
+ }
9279
+ /**
9280
+ * Agreguje jedno pole po wierszach. `count` liczy wiersze; pozostałe funkcje pomijają
9281
+ * wartości nieliczbowe. Pusty zbiór liczb: `sum` → 0, `avg`/`min`/`max` → `null`
9282
+ * (komórka renderuje się wtedy pusta).
9283
+ */
9284
+ function aggregate(rows, field, fn) {
9285
+ if (fn === 'count')
9286
+ return rows.length;
9287
+ const nums = [];
9288
+ for (const row of rows) {
9289
+ const num = toNumber(row[field]);
9290
+ if (!Number.isNaN(num))
9291
+ nums.push(num);
9292
+ }
9293
+ switch (fn) {
9294
+ case 'sum':
9295
+ return trimFloat(nums.reduce((acc, n) => acc + n, 0));
9296
+ case 'avg':
9297
+ return nums.length === 0 ? null : trimFloat(nums.reduce((acc, n) => acc + n, 0) / nums.length);
9298
+ case 'min':
9299
+ return nums.length === 0 ? null : Math.min(...nums);
9300
+ case 'max':
9301
+ return nums.length === 0 ? null : Math.max(...nums);
9302
+ default:
9303
+ return null;
9304
+ }
9305
+ }
9306
+
9307
+ /*
9308
+ * Dopasowanie wiersza do filtrów kolumn tabeli — pure TS, wydzielone żeby dało się
9309
+ * testować `node --test` bez ciągnięcia Angulara (jak `csv-export.ts` i `summary.ts`).
9310
+ * Komponent trzyma tylko stan filtrów; cała semantyka „czy komórka pasuje" jest tutaj.
9311
+ */
9312
+ /** Data komórki w formacie `YYYY-MM-DD` — do porównań leksykograficznych z granicami zakresu. */
9313
+ function toIsoDate(value) {
9314
+ if (value instanceof Date) {
9315
+ const p = (n) => String(n).padStart(2, '0');
9316
+ return `${value.getFullYear()}-${p(value.getMonth() + 1)}-${p(value.getDate())}`;
9317
+ }
9318
+ return toText(value);
9319
+ }
9320
+ /** Filtr „pusty" (nie wybrano nic) przepuszcza każdy wiersz. */
9321
+ function isEmptyFilterValue(value) {
9322
+ return value == null || value === '' || (Array.isArray(value) && value.length === 0);
9323
+ }
9324
+ const matchesText = (cell, value) => toText(cell).toLowerCase().includes(toText(value).toLowerCase());
9325
+ const matchesNumber = (cell, value) => toText(cell).includes(toText(value));
9326
+ const matchesSelect = (cell, value) => {
9327
+ const picked = Array.isArray(value) ? value : [value];
9328
+ // Komórka-tablica (np. lista tagów/członków) → dopasuj, gdy zawiera dowolną z wybranych wartości.
9329
+ if (Array.isArray(cell))
9330
+ return cell.some((c) => picked.includes(c));
9331
+ return picked.includes(cell);
9332
+ };
9333
+ const matchesNumberRange = (cell, value) => {
9334
+ const { min, max } = value ?? {};
9335
+ const lo = min == null || min === '' ? null : Number.parseFloat(min);
9336
+ const hi = max == null || max === '' ? null : Number.parseFloat(max);
9337
+ if (lo === null && hi === null)
9338
+ return true;
9339
+ const num = toNumber(cell);
9340
+ if (Number.isNaN(num))
9341
+ return false;
9342
+ if (lo !== null && num < lo)
9343
+ return false;
9344
+ if (hi !== null && num > hi)
9345
+ return false;
9346
+ return true;
9347
+ };
9348
+ const matchesSlider = (cell, value) => {
9349
+ const [lo, hi] = value;
9350
+ const num = toNumber(cell);
9351
+ if (Number.isNaN(num))
9352
+ return false;
9353
+ return num >= lo && num <= hi;
9354
+ };
9355
+ const matchesDateRange = (cell, value) => {
9356
+ const { start, end } = value ?? {};
9357
+ if (!start && !end)
9358
+ return true;
9359
+ const iso = toIsoDate(cell);
9360
+ if (start && iso < start)
9361
+ return false;
9362
+ if (end && iso > end)
9363
+ return false;
9364
+ return true;
9365
+ };
9366
+ /** Mapa zamiast `switch` — `Record` po unii typów wymusza komplet, więc nie ma martwego `default`. */
9367
+ const MATCHERS = {
9368
+ text: matchesText,
9369
+ number: matchesNumber,
9370
+ select: matchesSelect,
9371
+ numberRange: matchesNumberRange,
9372
+ slider: matchesSlider,
9373
+ dateRange: matchesDateRange,
9374
+ };
9375
+ /** Czy komórka przechodzi filtr kolumny. Wartości pustych filtrów odsiewa `isEmptyFilterValue`. */
9376
+ function matchesColumnFilter(filter, cell, value) {
9377
+ return MATCHERS[filter.type](cell, value);
9378
+ }
9379
+
9224
9380
  /*
9225
9381
  * Escapowanie komórek CSV dla `exportCsv()` — pure TS, wydzielone żeby dało się
9226
9382
  * testować `node --test` bez ciągnięcia Angulara.
@@ -9330,7 +9486,7 @@ function KptDataTable_Conditional_6_Template(rf, ctx) { if (rf & 1) {
9330
9486
  i0.ɵɵelementContainer(0, 8);
9331
9487
  } if (rf & 2) {
9332
9488
  i0.ɵɵnextContext();
9333
- const filterRowTpl_r4 = i0.ɵɵreference(22);
9489
+ const filterRowTpl_r4 = i0.ɵɵreference(23);
9334
9490
  i0.ɵɵproperty("ngTemplateOutlet", filterRowTpl_r4);
9335
9491
  } }
9336
9492
  function KptDataTable_Conditional_8_Template(rf, ctx) { if (rf & 1) {
@@ -9398,7 +9554,7 @@ function KptDataTable_Conditional_13_Template(rf, ctx) { if (rf & 1) {
9398
9554
  i0.ɵɵelementContainer(0, 8);
9399
9555
  } if (rf & 2) {
9400
9556
  i0.ɵɵnextContext();
9401
- const filterRowTpl_r4 = i0.ɵɵreference(22);
9557
+ const filterRowTpl_r4 = i0.ɵɵreference(23);
9402
9558
  i0.ɵɵproperty("ngTemplateOutlet", filterRowTpl_r4);
9403
9559
  } }
9404
9560
  function KptDataTable_Conditional_15_Template(rf, ctx) { if (rf & 1) {
@@ -9438,7 +9594,7 @@ function KptDataTable_Conditional_17_For_2_Template(rf, ctx) { if (rf & 1) {
9438
9594
  } if (rf & 2) {
9439
9595
  const row_r8 = ctx.$implicit;
9440
9596
  i0.ɵɵnextContext(2);
9441
- const rowTpl_r9 = i0.ɵɵreference(20);
9597
+ const rowTpl_r9 = i0.ɵɵreference(21);
9442
9598
  i0.ɵɵproperty("ngTemplateOutlet", rowTpl_r9)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c5, row_r8));
9443
9599
  } }
9444
9600
  function KptDataTable_Conditional_17_Conditional_3_Template(rf, ctx) { if (rf & 1) {
@@ -9468,7 +9624,7 @@ function KptDataTable_Conditional_18_For_1_Template(rf, ctx) { if (rf & 1) {
9468
9624
  } if (rf & 2) {
9469
9625
  const row_r10 = ctx.$implicit;
9470
9626
  i0.ɵɵnextContext(2);
9471
- const rowTpl_r9 = i0.ɵɵreference(20);
9627
+ const rowTpl_r9 = i0.ɵɵreference(21);
9472
9628
  i0.ɵɵproperty("ngTemplateOutlet", rowTpl_r9)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c5, row_r10));
9473
9629
  } }
9474
9630
  function KptDataTable_Conditional_18_Template(rf, ctx) { if (rf & 1) {
@@ -9477,170 +9633,214 @@ function KptDataTable_Conditional_18_Template(rf, ctx) { if (rf & 1) {
9477
9633
  const ctx_r1 = i0.ɵɵnextContext();
9478
9634
  i0.ɵɵrepeater(ctx_r1.paged());
9479
9635
  } }
9480
- function KptDataTable_ng_template_19_Conditional_1_Template(rf, ctx) { if (rf & 1) {
9481
- const _r13 = i0.ɵɵgetCurrentView();
9482
- i0.ɵɵelementStart(0, "td", 17)(1, "button", 30);
9483
- i0.ɵɵlistener("click", function KptDataTable_ng_template_19_Conditional_1_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r13); const row_r12 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); $event.stopPropagation(); return i0.ɵɵresetView(ctx_r1.toggleExpand(row_r12)); });
9484
- i0.ɵɵelement(2, "kpt-icon", 31);
9636
+ function KptDataTable_Conditional_19_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9637
+ i0.ɵɵelementStart(0, "th", 29);
9638
+ i0.ɵɵtext(1);
9639
+ i0.ɵɵelementEnd();
9640
+ } if (rf & 2) {
9641
+ const ctx_r1 = i0.ɵɵnextContext(2);
9642
+ i0.ɵɵstyleProp("left", ctx_r1.hasFrozen() ? 0 : null, "px");
9643
+ i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.hasFrozen());
9644
+ i0.ɵɵattribute("colspan", ctx_r1.summaryLabelSpan());
9645
+ i0.ɵɵadvance();
9646
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.summaryLabelText(), " ");
9647
+ } }
9648
+ function KptDataTable_Conditional_19_For_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
9649
+ i0.ɵɵelementStart(0, "td");
9650
+ i0.ɵɵtext(1);
9651
+ i0.ɵɵelementEnd();
9652
+ } if (rf & 2) {
9653
+ const col_r11 = i0.ɵɵnextContext().$implicit;
9654
+ const ctx_r1 = i0.ɵɵnextContext(2);
9655
+ i0.ɵɵstyleProp("width", col_r11.width)("left", ctx_r1.frozenLeft(col_r11.field), "px");
9656
+ i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.isFrozen(col_r11.field));
9657
+ i0.ɵɵattribute("data-align", col_r11.align ?? "end");
9658
+ i0.ɵɵadvance();
9659
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.summaryText(col_r11.field), " ");
9660
+ } }
9661
+ function KptDataTable_Conditional_19_For_4_Template(rf, ctx) { if (rf & 1) {
9662
+ i0.ɵɵconditionalCreate(0, KptDataTable_Conditional_19_For_4_Conditional_0_Template, 2, 8, "td", 30);
9663
+ } if (rf & 2) {
9664
+ const ɵ$index_89_r12 = ctx.$index;
9665
+ const ctx_r1 = i0.ɵɵnextContext(2);
9666
+ i0.ɵɵconditional(ɵ$index_89_r12 >= ctx_r1.summaryStartIndex() ? 0 : -1);
9667
+ } }
9668
+ function KptDataTable_Conditional_19_Template(rf, ctx) { if (rf & 1) {
9669
+ i0.ɵɵelementStart(0, "tfoot")(1, "tr", 27);
9670
+ i0.ɵɵconditionalCreate(2, KptDataTable_Conditional_19_Conditional_2_Template, 2, 6, "th", 28);
9671
+ i0.ɵɵrepeaterCreate(3, KptDataTable_Conditional_19_For_4_Template, 1, 1, null, null, _forTrack0$1);
9672
+ i0.ɵɵelementEnd()();
9673
+ } if (rf & 2) {
9674
+ const ctx_r1 = i0.ɵɵnextContext();
9675
+ i0.ɵɵadvance(2);
9676
+ i0.ɵɵconditional(ctx_r1.summaryLabelSpan() > 0 ? 2 : -1);
9677
+ i0.ɵɵadvance();
9678
+ i0.ɵɵrepeater(ctx_r1.visibleOrderedColumns());
9679
+ } }
9680
+ function KptDataTable_ng_template_20_Conditional_1_Template(rf, ctx) { if (rf & 1) {
9681
+ const _r15 = i0.ɵɵgetCurrentView();
9682
+ i0.ɵɵelementStart(0, "td", 17)(1, "button", 34);
9683
+ i0.ɵɵlistener("click", function KptDataTable_ng_template_20_Conditional_1_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r15); const row_r14 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); $event.stopPropagation(); return i0.ɵɵresetView(ctx_r1.toggleExpand(row_r14)); });
9684
+ i0.ɵɵelement(2, "kpt-icon", 35);
9485
9685
  i0.ɵɵelementEnd()();
9486
9686
  } if (rf & 2) {
9487
- const row_r12 = i0.ɵɵnextContext().$implicit;
9687
+ const row_r14 = i0.ɵɵnextContext().$implicit;
9488
9688
  const ctx_r1 = i0.ɵɵnextContext();
9489
9689
  i0.ɵɵstyleProp("left", ctx_r1.expanderStickyLeft(), "px");
9490
9690
  i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.hasFrozen());
9491
9691
  i0.ɵɵadvance();
9492
- i0.ɵɵclassProp("kpt-data-table__expander-btn--open", ctx_r1.isExpanded(row_r12));
9493
- i0.ɵɵattribute("aria-expanded", ctx_r1.isExpanded(row_r12))("aria-label", ctx_r1.i18n.t("dataTable.expandRow"));
9692
+ i0.ɵɵclassProp("kpt-data-table__expander-btn--open", ctx_r1.isExpanded(row_r14));
9693
+ i0.ɵɵattribute("aria-expanded", ctx_r1.isExpanded(row_r14))("aria-label", ctx_r1.i18n.t("dataTable.expandRow"));
9494
9694
  } }
9495
- function KptDataTable_ng_template_19_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9496
- const _r14 = i0.ɵɵgetCurrentView();
9497
- i0.ɵɵelementStart(0, "td", 18)(1, "input", 32);
9498
- i0.ɵɵlistener("click", function KptDataTable_ng_template_19_Conditional_2_Template_input_click_1_listener($event) { return $event.stopPropagation(); })("change", function KptDataTable_ng_template_19_Conditional_2_Template_input_change_1_listener() { i0.ɵɵrestoreView(_r14); const row_r12 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleRow(row_r12)); });
9695
+ function KptDataTable_ng_template_20_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9696
+ const _r16 = i0.ɵɵgetCurrentView();
9697
+ i0.ɵɵelementStart(0, "td", 18)(1, "input", 36);
9698
+ i0.ɵɵlistener("click", function KptDataTable_ng_template_20_Conditional_2_Template_input_click_1_listener($event) { return $event.stopPropagation(); })("change", function KptDataTable_ng_template_20_Conditional_2_Template_input_change_1_listener() { i0.ɵɵrestoreView(_r16); const row_r14 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleRow(row_r14)); });
9499
9699
  i0.ɵɵelementEnd()();
9500
9700
  } if (rf & 2) {
9501
- const row_r12 = i0.ɵɵnextContext().$implicit;
9701
+ const row_r14 = i0.ɵɵnextContext().$implicit;
9502
9702
  const ctx_r1 = i0.ɵɵnextContext();
9503
9703
  i0.ɵɵstyleProp("left", ctx_r1.checkboxStickyLeft(), "px");
9504
9704
  i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.hasFrozen());
9505
9705
  i0.ɵɵadvance();
9506
- i0.ɵɵproperty("checked", ctx_r1.isSelected(row_r12));
9706
+ i0.ɵɵproperty("checked", ctx_r1.isSelected(row_r14));
9507
9707
  i0.ɵɵattribute("aria-label", ctx_r1.i18n.t("dataTable.selectRow"));
9508
9708
  } }
9509
- function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9709
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9510
9710
  i0.ɵɵelementContainer(0, 26);
9511
9711
  } if (rf & 2) {
9512
- const row_r12 = i0.ɵɵnextContext(3).$implicit;
9712
+ const row_r14 = i0.ɵɵnextContext(3).$implicit;
9513
9713
  const ctx_r1 = i0.ɵɵnextContext();
9514
- i0.ɵɵproperty("ngTemplateOutlet", ctx)("ngTemplateOutletContext", i0.ɵɵpureFunction4(2, _c7, ctx_r1.editingValue(), row_r12, ctx_r1.commitEditValue, ctx_r1.cancelEdit));
9714
+ i0.ɵɵproperty("ngTemplateOutlet", ctx)("ngTemplateOutletContext", i0.ɵɵpureFunction4(2, _c7, ctx_r1.editingValue(), row_r14, ctx_r1.commitEditValue, ctx_r1.cancelEdit));
9515
9715
  } }
9516
- function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_0_Template(rf, ctx) { if (rf & 1) {
9517
- const _r18 = i0.ɵɵgetCurrentView();
9518
- i0.ɵɵelementStart(0, "kpt-input", 41);
9519
- i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_0_Template_kpt_input_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.editingValue.set($event)); })("keydown.enter", function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_0_Template_kpt_input_keydown_enter_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.commitEdit()); })("keydown.escape", function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_0_Template_kpt_input_keydown_escape_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.cancelEdit()); });
9716
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_0_Template(rf, ctx) { if (rf & 1) {
9717
+ const _r20 = i0.ɵɵgetCurrentView();
9718
+ i0.ɵɵelementStart(0, "kpt-input", 45);
9719
+ i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_0_Template_kpt_input_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.editingValue.set($event)); })("keydown.enter", function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_0_Template_kpt_input_keydown_enter_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.commitEdit()); })("keydown.escape", function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_0_Template_kpt_input_keydown_escape_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.cancelEdit()); });
9520
9720
  i0.ɵɵelementEnd();
9521
9721
  } if (rf & 2) {
9522
- const col_r16 = i0.ɵɵnextContext(3).$implicit;
9722
+ const col_r18 = i0.ɵɵnextContext(3).$implicit;
9523
9723
  const ctx_r1 = i0.ɵɵnextContext(2);
9524
- i0.ɵɵproperty("value", ctx_r1.editingValue() ?? "")("placeholder", col_r16.edit.placeholder ?? "");
9724
+ i0.ɵɵproperty("value", ctx_r1.editingValue() ?? "")("placeholder", col_r18.edit.placeholder ?? "");
9525
9725
  } }
9526
- function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_1_Template(rf, ctx) { if (rf & 1) {
9527
- const _r19 = i0.ɵɵgetCurrentView();
9528
- i0.ɵɵelementStart(0, "kpt-input-number", 42);
9529
- i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_1_Template_kpt_input_number_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.editingValue.set($event)); })("keydown.enter", function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_1_Template_kpt_input_number_keydown_enter_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.commitEdit()); })("keydown.escape", function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_1_Template_kpt_input_number_keydown_escape_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.cancelEdit()); });
9726
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_1_Template(rf, ctx) { if (rf & 1) {
9727
+ const _r21 = i0.ɵɵgetCurrentView();
9728
+ i0.ɵɵelementStart(0, "kpt-input-number", 46);
9729
+ i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_1_Template_kpt_input_number_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.editingValue.set($event)); })("keydown.enter", function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_1_Template_kpt_input_number_keydown_enter_0_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.commitEdit()); })("keydown.escape", function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_1_Template_kpt_input_number_keydown_escape_0_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.cancelEdit()); });
9530
9730
  i0.ɵɵelementEnd();
9531
9731
  } if (rf & 2) {
9532
- const col_r16 = i0.ɵɵnextContext(3).$implicit;
9732
+ const col_r18 = i0.ɵɵnextContext(3).$implicit;
9533
9733
  const ctx_r1 = i0.ɵɵnextContext(2);
9534
- i0.ɵɵproperty("value", ctx_r1.editingValue())("min", col_r16.edit.min)("max", col_r16.edit.max)("step", col_r16.edit.step ?? 1);
9734
+ i0.ɵɵproperty("value", ctx_r1.editingValue())("min", col_r18.edit.min)("max", col_r18.edit.max)("step", col_r18.edit.step ?? 1);
9535
9735
  } }
9536
- function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_2_Template(rf, ctx) { if (rf & 1) {
9537
- const _r20 = i0.ɵɵgetCurrentView();
9538
- i0.ɵɵelementStart(0, "kpt-datepicker", 43);
9539
- i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_2_Template_kpt_datepicker_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.editingValue.set($event)); })("openChange", function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_2_Template_kpt_datepicker_openChange_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.onEditorPanelToggle($event)); });
9736
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_2_Template(rf, ctx) { if (rf & 1) {
9737
+ const _r22 = i0.ɵɵgetCurrentView();
9738
+ i0.ɵɵelementStart(0, "kpt-datepicker", 47);
9739
+ i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_2_Template_kpt_datepicker_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.editingValue.set($event)); })("openChange", function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_2_Template_kpt_datepicker_openChange_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.onEditorPanelToggle($event)); });
9540
9740
  i0.ɵɵelementEnd();
9541
9741
  } if (rf & 2) {
9542
9742
  const ctx_r1 = i0.ɵɵnextContext(5);
9543
9743
  i0.ɵɵproperty("value", ctx_r1.editingValue() ?? "")("open", ctx_r1.editorPanelOpen());
9544
9744
  } }
9545
- function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_3_Template(rf, ctx) { if (rf & 1) {
9546
- const _r21 = i0.ɵɵgetCurrentView();
9547
- i0.ɵɵelementStart(0, "kpt-select", 44);
9548
- i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_3_Template_kpt_select_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.editingValue.set($event)); })("openChange", function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_3_Template_kpt_select_openChange_0_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.onEditorPanelToggle($event)); });
9745
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_3_Template(rf, ctx) { if (rf & 1) {
9746
+ const _r23 = i0.ɵɵgetCurrentView();
9747
+ i0.ɵɵelementStart(0, "kpt-select", 48);
9748
+ i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_3_Template_kpt_select_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.editingValue.set($event)); })("openChange", function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_3_Template_kpt_select_openChange_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.onEditorPanelToggle($event)); });
9549
9749
  i0.ɵɵelementEnd();
9550
9750
  } if (rf & 2) {
9551
- const col_r16 = i0.ɵɵnextContext(3).$implicit;
9751
+ const col_r18 = i0.ɵɵnextContext(3).$implicit;
9552
9752
  const ctx_r1 = i0.ɵɵnextContext(2);
9553
- i0.ɵɵproperty("options", col_r16.edit.options ?? i0.ɵɵpureFunction0(4, _c8))("placeholder", col_r16.edit.placeholder ?? "")("value", ctx_r1.editingValue())("open", ctx_r1.editorPanelOpen());
9753
+ i0.ɵɵproperty("options", col_r18.edit.options ?? i0.ɵɵpureFunction0(4, _c8))("placeholder", col_r18.edit.placeholder ?? "")("value", ctx_r1.editingValue())("open", ctx_r1.editorPanelOpen());
9554
9754
  } }
9555
- function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_4_Template(rf, ctx) { if (rf & 1) {
9556
- const _r22 = i0.ɵɵgetCurrentView();
9557
- i0.ɵɵelementStart(0, "kpt-select", 45);
9558
- i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_4_Template_kpt_select_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.editingValue.set($event)); })("openChange", function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_4_Template_kpt_select_openChange_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.onEditorPanelToggle($event)); });
9755
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_4_Template(rf, ctx) { if (rf & 1) {
9756
+ const _r24 = i0.ɵɵgetCurrentView();
9757
+ i0.ɵɵelementStart(0, "kpt-select", 49);
9758
+ i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_4_Template_kpt_select_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.editingValue.set($event)); })("openChange", function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_4_Template_kpt_select_openChange_0_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.onEditorPanelToggle($event)); });
9559
9759
  i0.ɵɵelementEnd();
9560
9760
  } if (rf & 2) {
9561
- const col_r16 = i0.ɵɵnextContext(3).$implicit;
9761
+ const col_r18 = i0.ɵɵnextContext(3).$implicit;
9562
9762
  const ctx_r1 = i0.ɵɵnextContext(2);
9563
- i0.ɵɵproperty("options", col_r16.edit.options ?? i0.ɵɵpureFunction0(4, _c8))("placeholder", col_r16.edit.placeholder ?? "")("value", ctx_r1.editingValue())("open", ctx_r1.editorPanelOpen());
9763
+ i0.ɵɵproperty("options", col_r18.edit.options ?? i0.ɵɵpureFunction0(4, _c8))("placeholder", col_r18.edit.placeholder ?? "")("value", ctx_r1.editingValue())("open", ctx_r1.editorPanelOpen());
9564
9764
  } }
9565
- function KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
9566
- i0.ɵɵconditionalCreate(0, KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_0_Template, 1, 2, "kpt-input", 36)(1, KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_1_Template, 1, 4, "kpt-input-number", 37)(2, KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_2_Template, 1, 2, "kpt-datepicker", 38)(3, KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_3_Template, 1, 5, "kpt-select", 39)(4, KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Case_4_Template, 1, 5, "kpt-select", 40);
9765
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
9766
+ i0.ɵɵconditionalCreate(0, KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_0_Template, 1, 2, "kpt-input", 40)(1, KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_1_Template, 1, 4, "kpt-input-number", 41)(2, KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_2_Template, 1, 2, "kpt-datepicker", 42)(3, KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_3_Template, 1, 5, "kpt-select", 43)(4, KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Case_4_Template, 1, 5, "kpt-select", 44);
9567
9767
  } if (rf & 2) {
9568
9768
  let tmp_19_0;
9569
- const col_r16 = i0.ɵɵnextContext(2).$implicit;
9570
- i0.ɵɵconditional((tmp_19_0 = col_r16.edit?.type) === "text" ? 0 : tmp_19_0 === "number" ? 1 : tmp_19_0 === "date" ? 2 : tmp_19_0 === "select" ? 3 : tmp_19_0 === "multiselect" ? 4 : -1);
9769
+ const col_r18 = i0.ɵɵnextContext(2).$implicit;
9770
+ i0.ɵɵconditional((tmp_19_0 = col_r18.edit?.type) === "text" ? 0 : tmp_19_0 === "number" ? 1 : tmp_19_0 === "date" ? 2 : tmp_19_0 === "select" ? 3 : tmp_19_0 === "multiselect" ? 4 : -1);
9571
9771
  } }
9572
- function KptDataTable_ng_template_19_For_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
9573
- const _r17 = i0.ɵɵgetCurrentView();
9574
- i0.ɵɵelementStart(0, "div", 35, 4);
9575
- i0.ɵɵlistener("click", function KptDataTable_ng_template_19_For_4_Conditional_1_Template_div_click_0_listener($event) { return $event.stopPropagation(); })("focusout", function KptDataTable_ng_template_19_For_4_Conditional_1_Template_div_focusout_0_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onEditorFocusOut($event)); });
9576
- i0.ɵɵconditionalCreate(2, KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_2_Template, 1, 7, "ng-container", 26)(3, KptDataTable_ng_template_19_For_4_Conditional_1_Conditional_3_Template, 5, 1);
9772
+ function KptDataTable_ng_template_20_For_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
9773
+ const _r19 = i0.ɵɵgetCurrentView();
9774
+ i0.ɵɵelementStart(0, "div", 39, 4);
9775
+ i0.ɵɵlistener("click", function KptDataTable_ng_template_20_For_4_Conditional_1_Template_div_click_0_listener($event) { return $event.stopPropagation(); })("focusout", function KptDataTable_ng_template_20_For_4_Conditional_1_Template_div_focusout_0_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onEditorFocusOut($event)); });
9776
+ i0.ɵɵconditionalCreate(2, KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_2_Template, 1, 7, "ng-container", 26)(3, KptDataTable_ng_template_20_For_4_Conditional_1_Conditional_3_Template, 5, 1);
9577
9777
  i0.ɵɵelementEnd();
9578
9778
  } if (rf & 2) {
9579
9779
  let tmp_18_0;
9580
- const col_r16 = i0.ɵɵnextContext().$implicit;
9780
+ const col_r18 = i0.ɵɵnextContext().$implicit;
9581
9781
  const ctx_r1 = i0.ɵɵnextContext(2);
9582
9782
  i0.ɵɵadvance(2);
9583
- i0.ɵɵconditional((tmp_18_0 = ctx_r1.cellEditTemplate(col_r16.field)) ? 2 : 3, tmp_18_0);
9783
+ i0.ɵɵconditional((tmp_18_0 = ctx_r1.cellEditTemplate(col_r18.field)) ? 2 : 3, tmp_18_0);
9584
9784
  } }
9585
- function KptDataTable_ng_template_19_For_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9785
+ function KptDataTable_ng_template_20_For_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9586
9786
  i0.ɵɵelementContainer(0, 26);
9587
9787
  } if (rf & 2) {
9588
- const col_r16 = i0.ɵɵnextContext().$implicit;
9589
- const row_r12 = i0.ɵɵnextContext().$implicit;
9788
+ const col_r18 = i0.ɵɵnextContext().$implicit;
9789
+ const row_r14 = i0.ɵɵnextContext().$implicit;
9590
9790
  const ctx_r1 = i0.ɵɵnextContext();
9591
- i0.ɵɵproperty("ngTemplateOutlet", ctx)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c9, row_r12, ctx_r1.getValue(row_r12, col_r16.field)));
9791
+ i0.ɵɵproperty("ngTemplateOutlet", ctx)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c9, row_r14, ctx_r1.getValue(row_r14, col_r18.field)));
9592
9792
  } }
9593
- function KptDataTable_ng_template_19_For_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
9793
+ function KptDataTable_ng_template_20_For_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
9594
9794
  i0.ɵɵtext(0);
9595
9795
  } if (rf & 2) {
9596
- const col_r16 = i0.ɵɵnextContext().$implicit;
9597
- const row_r12 = i0.ɵɵnextContext().$implicit;
9796
+ const col_r18 = i0.ɵɵnextContext().$implicit;
9797
+ const row_r14 = i0.ɵɵnextContext().$implicit;
9598
9798
  const ctx_r1 = i0.ɵɵnextContext();
9599
- i0.ɵɵtextInterpolate1(" ", ctx_r1.getValue(row_r12, col_r16.field), " ");
9799
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.getValue(row_r14, col_r18.field), " ");
9600
9800
  } }
9601
- function KptDataTable_ng_template_19_For_4_Template(rf, ctx) { if (rf & 1) {
9602
- const _r15 = i0.ɵɵgetCurrentView();
9603
- i0.ɵɵelementStart(0, "td", 33);
9604
- i0.ɵɵlistener("click", function KptDataTable_ng_template_19_For_4_Template_td_click_0_listener($event) { const col_r16 = i0.ɵɵrestoreView(_r15).$implicit; const row_r12 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.isEditable(col_r16) ? ctx_r1.startEdit(row_r12, col_r16, $event) : null); })("keydown.enter", function KptDataTable_ng_template_19_For_4_Template_td_keydown_enter_0_listener($event) { const col_r16 = i0.ɵɵrestoreView(_r15).$implicit; const row_r12 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.isEditable(col_r16) && !ctx_r1.isEditingCell(row_r12, col_r16.field) ? ctx_r1.startEdit(row_r12, col_r16, $event) : null); });
9605
- i0.ɵɵconditionalCreate(1, KptDataTable_ng_template_19_For_4_Conditional_1_Template, 4, 1, "div", 34)(2, KptDataTable_ng_template_19_For_4_Conditional_2_Template, 1, 5, "ng-container", 26)(3, KptDataTable_ng_template_19_For_4_Conditional_3_Template, 1, 1);
9801
+ function KptDataTable_ng_template_20_For_4_Template(rf, ctx) { if (rf & 1) {
9802
+ const _r17 = i0.ɵɵgetCurrentView();
9803
+ i0.ɵɵelementStart(0, "td", 37);
9804
+ i0.ɵɵlistener("click", function KptDataTable_ng_template_20_For_4_Template_td_click_0_listener($event) { const col_r18 = i0.ɵɵrestoreView(_r17).$implicit; const row_r14 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.isEditable(col_r18) ? ctx_r1.startEdit(row_r14, col_r18, $event) : null); })("keydown.enter", function KptDataTable_ng_template_20_For_4_Template_td_keydown_enter_0_listener($event) { const col_r18 = i0.ɵɵrestoreView(_r17).$implicit; const row_r14 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.isEditable(col_r18) && !ctx_r1.isEditingCell(row_r14, col_r18.field) ? ctx_r1.startEdit(row_r14, col_r18, $event) : null); });
9805
+ i0.ɵɵconditionalCreate(1, KptDataTable_ng_template_20_For_4_Conditional_1_Template, 4, 1, "div", 38)(2, KptDataTable_ng_template_20_For_4_Conditional_2_Template, 1, 5, "ng-container", 26)(3, KptDataTable_ng_template_20_For_4_Conditional_3_Template, 1, 1);
9606
9806
  i0.ɵɵelementEnd();
9607
9807
  } if (rf & 2) {
9608
9808
  let tmp_22_0;
9609
- const col_r16 = ctx.$implicit;
9610
- const row_r12 = i0.ɵɵnextContext().$implicit;
9809
+ const col_r18 = ctx.$implicit;
9810
+ const row_r14 = i0.ɵɵnextContext().$implicit;
9611
9811
  const ctx_r1 = i0.ɵɵnextContext();
9612
- i0.ɵɵstyleProp("left", ctx_r1.frozenLeft(col_r16.field), "px");
9613
- i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.isFrozen(col_r16.field))("kpt-data-table__cell--editable", ctx_r1.isEditable(col_r16) && !ctx_r1.isEditingCell(row_r12, col_r16.field));
9614
- i0.ɵɵattribute("data-align", col_r16.align ?? "start")("tabindex", ctx_r1.isEditable(col_r16) && !ctx_r1.isEditingCell(row_r12, col_r16.field) ? 0 : null)("aria-label", ctx_r1.isEditable(col_r16) && !ctx_r1.isEditingCell(row_r12, col_r16.field) ? ctx_r1.i18n.t("dataTable.editCell", i0.ɵɵpureFunction1(10, _c6, col_r16.header)) : null);
9812
+ i0.ɵɵstyleProp("left", ctx_r1.frozenLeft(col_r18.field), "px");
9813
+ i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.isFrozen(col_r18.field))("kpt-data-table__cell--editable", ctx_r1.isEditable(col_r18) && !ctx_r1.isEditingCell(row_r14, col_r18.field));
9814
+ i0.ɵɵattribute("data-align", col_r18.align ?? "start")("tabindex", ctx_r1.isEditable(col_r18) && !ctx_r1.isEditingCell(row_r14, col_r18.field) ? 0 : null)("aria-label", ctx_r1.isEditable(col_r18) && !ctx_r1.isEditingCell(row_r14, col_r18.field) ? ctx_r1.i18n.t("dataTable.editCell", i0.ɵɵpureFunction1(10, _c6, col_r18.header)) : null);
9615
9815
  i0.ɵɵadvance();
9616
- i0.ɵɵconditional(ctx_r1.isEditingCell(row_r12, col_r16.field) ? 1 : (tmp_22_0 = ctx_r1.cellTemplate(col_r16.field)) ? 2 : 3, tmp_22_0);
9816
+ i0.ɵɵconditional(ctx_r1.isEditingCell(row_r14, col_r18.field) ? 1 : (tmp_22_0 = ctx_r1.cellTemplate(col_r18.field)) ? 2 : 3, tmp_22_0);
9617
9817
  } }
9618
- function KptDataTable_ng_template_19_Conditional_5_Template(rf, ctx) { if (rf & 1) {
9619
- i0.ɵɵelementStart(0, "tr", 29)(1, "td", 46);
9818
+ function KptDataTable_ng_template_20_Conditional_5_Template(rf, ctx) { if (rf & 1) {
9819
+ i0.ɵɵelementStart(0, "tr", 33)(1, "td", 50);
9620
9820
  i0.ɵɵelementContainer(2, 26);
9621
9821
  i0.ɵɵelementEnd()();
9622
9822
  } if (rf & 2) {
9623
- const row_r12 = i0.ɵɵnextContext().$implicit;
9823
+ const row_r14 = i0.ɵɵnextContext().$implicit;
9624
9824
  const ctx_r1 = i0.ɵɵnextContext();
9625
9825
  i0.ɵɵadvance();
9626
9826
  i0.ɵɵattribute("colspan", ctx_r1.colspan());
9627
9827
  i0.ɵɵadvance();
9628
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.rowDetailTpl())("ngTemplateOutletContext", i0.ɵɵpureFunction1(3, _c5, row_r12));
9828
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.rowDetailTpl())("ngTemplateOutletContext", i0.ɵɵpureFunction1(3, _c5, row_r14));
9629
9829
  } }
9630
- function KptDataTable_ng_template_19_Template(rf, ctx) { if (rf & 1) {
9631
- const _r11 = i0.ɵɵgetCurrentView();
9632
- i0.ɵɵelementStart(0, "tr", 27);
9633
- i0.ɵɵlistener("click", function KptDataTable_ng_template_19_Template_tr_click_0_listener() { const row_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onRowClick(row_r12)); });
9634
- i0.ɵɵconditionalCreate(1, KptDataTable_ng_template_19_Conditional_1_Template, 3, 8, "td", 9);
9635
- i0.ɵɵconditionalCreate(2, KptDataTable_ng_template_19_Conditional_2_Template, 2, 6, "td", 10);
9636
- i0.ɵɵrepeaterCreate(3, KptDataTable_ng_template_19_For_4_Template, 4, 12, "td", 28, _forTrack0$1);
9830
+ function KptDataTable_ng_template_20_Template(rf, ctx) { if (rf & 1) {
9831
+ const _r13 = i0.ɵɵgetCurrentView();
9832
+ i0.ɵɵelementStart(0, "tr", 31);
9833
+ i0.ɵɵlistener("click", function KptDataTable_ng_template_20_Template_tr_click_0_listener() { const row_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onRowClick(row_r14)); });
9834
+ i0.ɵɵconditionalCreate(1, KptDataTable_ng_template_20_Conditional_1_Template, 3, 8, "td", 9);
9835
+ i0.ɵɵconditionalCreate(2, KptDataTable_ng_template_20_Conditional_2_Template, 2, 6, "td", 10);
9836
+ i0.ɵɵrepeaterCreate(3, KptDataTable_ng_template_20_For_4_Template, 4, 12, "td", 32, _forTrack0$1);
9637
9837
  i0.ɵɵelementEnd();
9638
- i0.ɵɵconditionalCreate(5, KptDataTable_ng_template_19_Conditional_5_Template, 3, 5, "tr", 29);
9838
+ i0.ɵɵconditionalCreate(5, KptDataTable_ng_template_20_Conditional_5_Template, 3, 5, "tr", 33);
9639
9839
  } if (rf & 2) {
9640
- const row_r12 = ctx.$implicit;
9840
+ const row_r14 = ctx.$implicit;
9641
9841
  const ctx_r1 = i0.ɵɵnextContext();
9642
9842
  i0.ɵɵstyleProp("height", ctx_r1.virtualScroll() ? ctx_r1.rowHeight() : null, "px");
9643
- i0.ɵɵclassProp("kpt-data-table__row--selected", ctx_r1.isSelected(row_r12))("kpt-data-table__row--expanded", ctx_r1.hasRowDetail() && ctx_r1.isExpanded(row_r12));
9843
+ i0.ɵɵclassProp("kpt-data-table__row--selected", ctx_r1.isSelected(row_r14))("kpt-data-table__row--expanded", ctx_r1.hasRowDetail() && ctx_r1.isExpanded(row_r14));
9644
9844
  i0.ɵɵadvance();
9645
9845
  i0.ɵɵconditional(ctx_r1.hasRowDetail() ? 1 : -1);
9646
9846
  i0.ɵɵadvance();
@@ -9648,114 +9848,114 @@ function KptDataTable_ng_template_19_Template(rf, ctx) { if (rf & 1) {
9648
9848
  i0.ɵɵadvance();
9649
9849
  i0.ɵɵrepeater(ctx_r1.visibleOrderedColumns());
9650
9850
  i0.ɵɵadvance(2);
9651
- i0.ɵɵconditional(ctx_r1.hasRowDetail() && ctx_r1.isExpanded(row_r12) && !ctx_r1.virtualScroll() ? 5 : -1);
9851
+ i0.ɵɵconditional(ctx_r1.hasRowDetail() && ctx_r1.isExpanded(row_r14) && !ctx_r1.virtualScroll() ? 5 : -1);
9652
9852
  } }
9653
- function KptDataTable_ng_template_21_Conditional_1_Template(rf, ctx) { if (rf & 1) {
9853
+ function KptDataTable_ng_template_22_Conditional_1_Template(rf, ctx) { if (rf & 1) {
9654
9854
  i0.ɵɵelement(0, "th", 17);
9655
9855
  } if (rf & 2) {
9656
9856
  const ctx_r1 = i0.ɵɵnextContext(2);
9657
9857
  i0.ɵɵstyleProp("left", ctx_r1.expanderStickyLeft(), "px");
9658
9858
  i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.hasFrozen());
9659
9859
  } }
9660
- function KptDataTable_ng_template_21_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9860
+ function KptDataTable_ng_template_22_Conditional_2_Template(rf, ctx) { if (rf & 1) {
9661
9861
  i0.ɵɵelement(0, "th", 18);
9662
9862
  } if (rf & 2) {
9663
9863
  const ctx_r1 = i0.ɵɵnextContext(2);
9664
9864
  i0.ɵɵstyleProp("left", ctx_r1.checkboxStickyLeft(), "px");
9665
9865
  i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.hasFrozen());
9666
9866
  } }
9667
- function KptDataTable_ng_template_21_For_4_Case_1_Template(rf, ctx) { if (rf & 1) {
9668
- const _r23 = i0.ɵɵgetCurrentView();
9669
- i0.ɵɵelementStart(0, "input", 55);
9670
- i0.ɵɵlistener("input", function KptDataTable_ng_template_21_For_4_Case_1_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r23); const col_r24 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setColumnFilter(col_r24.field, $event.target.value)); })("click", function KptDataTable_ng_template_21_For_4_Case_1_Template_input_click_0_listener($event) { return $event.stopPropagation(); });
9867
+ function KptDataTable_ng_template_22_For_4_Case_1_Template(rf, ctx) { if (rf & 1) {
9868
+ const _r25 = i0.ɵɵgetCurrentView();
9869
+ i0.ɵɵelementStart(0, "input", 58);
9870
+ i0.ɵɵlistener("input", function KptDataTable_ng_template_22_For_4_Case_1_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r25); const col_r26 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setColumnFilter(col_r26.field, $event.target.value)); })("click", function KptDataTable_ng_template_22_For_4_Case_1_Template_input_click_0_listener($event) { return $event.stopPropagation(); });
9671
9871
  i0.ɵɵelementEnd();
9672
9872
  } if (rf & 2) {
9673
- const col_r24 = i0.ɵɵnextContext().$implicit;
9873
+ const col_r26 = i0.ɵɵnextContext().$implicit;
9674
9874
  const ctx_r1 = i0.ɵɵnextContext(2);
9675
- i0.ɵɵproperty("value", ctx_r1.columnFilters()[col_r24.field] || "");
9676
- i0.ɵɵattribute("placeholder", col_r24.filter.placeholder || "")("aria-label", ctx_r1.i18n.t("dataTable.filter", i0.ɵɵpureFunction1(3, _c6, col_r24.header)));
9875
+ i0.ɵɵproperty("value", ctx_r1.columnFilters()[col_r26.field] || "");
9876
+ i0.ɵɵattribute("placeholder", col_r26.filter.placeholder || "")("aria-label", ctx_r1.i18n.t("dataTable.filter", i0.ɵɵpureFunction1(3, _c6, col_r26.header)));
9677
9877
  } }
9678
- function KptDataTable_ng_template_21_For_4_Case_2_Template(rf, ctx) { if (rf & 1) {
9679
- const _r25 = i0.ɵɵgetCurrentView();
9680
- i0.ɵɵelementStart(0, "input", 56);
9681
- i0.ɵɵlistener("input", function KptDataTable_ng_template_21_For_4_Case_2_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r25); const col_r24 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onNumberFilter(col_r24.field, $event)); })("click", function KptDataTable_ng_template_21_For_4_Case_2_Template_input_click_0_listener($event) { return $event.stopPropagation(); });
9878
+ function KptDataTable_ng_template_22_For_4_Case_2_Template(rf, ctx) { if (rf & 1) {
9879
+ const _r27 = i0.ɵɵgetCurrentView();
9880
+ i0.ɵɵelementStart(0, "input", 59);
9881
+ i0.ɵɵlistener("input", function KptDataTable_ng_template_22_For_4_Case_2_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r27); const col_r26 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onNumberFilter(col_r26.field, $event)); })("click", function KptDataTable_ng_template_22_For_4_Case_2_Template_input_click_0_listener($event) { return $event.stopPropagation(); });
9682
9882
  i0.ɵɵelementEnd();
9683
9883
  } if (rf & 2) {
9684
- const col_r24 = i0.ɵɵnextContext().$implicit;
9884
+ const col_r26 = i0.ɵɵnextContext().$implicit;
9685
9885
  const ctx_r1 = i0.ɵɵnextContext(2);
9686
- i0.ɵɵproperty("value", ctx_r1.columnFilters()[col_r24.field] || "");
9687
- i0.ɵɵattribute("placeholder", col_r24.filter.placeholder || "")("aria-label", ctx_r1.i18n.t("dataTable.filter", i0.ɵɵpureFunction1(3, _c6, col_r24.header)));
9886
+ i0.ɵɵproperty("value", ctx_r1.columnFilters()[col_r26.field] || "");
9887
+ i0.ɵɵattribute("placeholder", col_r26.filter.placeholder || "")("aria-label", ctx_r1.i18n.t("dataTable.filter", i0.ɵɵpureFunction1(3, _c6, col_r26.header)));
9688
9888
  } }
9689
- function KptDataTable_ng_template_21_For_4_Case_3_Template(rf, ctx) { if (rf & 1) {
9690
- const _r26 = i0.ɵɵgetCurrentView();
9691
- i0.ɵɵelementStart(0, "kpt-select", 57);
9692
- i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_21_For_4_Case_3_Template_kpt_select_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r26); const col_r24 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setColumnFilter(col_r24.field, $event)); });
9889
+ function KptDataTable_ng_template_22_For_4_Case_3_Template(rf, ctx) { if (rf & 1) {
9890
+ const _r28 = i0.ɵɵgetCurrentView();
9891
+ i0.ɵɵelementStart(0, "kpt-select", 60);
9892
+ i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_22_For_4_Case_3_Template_kpt_select_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r28); const col_r26 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setColumnFilter(col_r26.field, $event)); });
9693
9893
  i0.ɵɵelementEnd();
9694
9894
  } if (rf & 2) {
9695
- const col_r24 = i0.ɵɵnextContext().$implicit;
9895
+ const col_r26 = i0.ɵɵnextContext().$implicit;
9696
9896
  const ctx_r1 = i0.ɵɵnextContext(2);
9697
- i0.ɵɵproperty("options", col_r24.filter.options || i0.ɵɵpureFunction0(4, _c8))("multiple", !!col_r24.filter.multiple)("placeholder", col_r24.filter.placeholder || ctx_r1.i18n.t("dataTable.all"))("value", ctx_r1.columnFilters()[col_r24.field] ?? null);
9897
+ i0.ɵɵproperty("options", col_r26.filter.options || i0.ɵɵpureFunction0(4, _c8))("multiple", !!col_r26.filter.multiple)("placeholder", col_r26.filter.placeholder || ctx_r1.i18n.t("dataTable.all"))("value", ctx_r1.columnFilters()[col_r26.field] ?? null);
9698
9898
  } }
9699
- function KptDataTable_ng_template_21_For_4_Case_4_Template(rf, ctx) { if (rf & 1) {
9700
- const _r27 = i0.ɵɵgetCurrentView();
9701
- i0.ɵɵelementStart(0, "div", 52)(1, "input", 56);
9702
- i0.ɵɵlistener("input", function KptDataTable_ng_template_21_For_4_Case_4_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r27); const col_r24 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setRangeFilter(col_r24.field, "min", $event)); })("click", function KptDataTable_ng_template_21_For_4_Case_4_Template_input_click_1_listener($event) { return $event.stopPropagation(); });
9899
+ function KptDataTable_ng_template_22_For_4_Case_4_Template(rf, ctx) { if (rf & 1) {
9900
+ const _r29 = i0.ɵɵgetCurrentView();
9901
+ i0.ɵɵelementStart(0, "div", 55)(1, "input", 59);
9902
+ i0.ɵɵlistener("input", function KptDataTable_ng_template_22_For_4_Case_4_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r29); const col_r26 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setRangeFilter(col_r26.field, "min", $event)); })("click", function KptDataTable_ng_template_22_For_4_Case_4_Template_input_click_1_listener($event) { return $event.stopPropagation(); });
9703
9903
  i0.ɵɵelementEnd();
9704
- i0.ɵɵelementStart(2, "input", 56);
9705
- i0.ɵɵlistener("input", function KptDataTable_ng_template_21_For_4_Case_4_Template_input_input_2_listener($event) { i0.ɵɵrestoreView(_r27); const col_r24 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setRangeFilter(col_r24.field, "max", $event)); })("click", function KptDataTable_ng_template_21_For_4_Case_4_Template_input_click_2_listener($event) { return $event.stopPropagation(); });
9904
+ i0.ɵɵelementStart(2, "input", 59);
9905
+ i0.ɵɵlistener("input", function KptDataTable_ng_template_22_For_4_Case_4_Template_input_input_2_listener($event) { i0.ɵɵrestoreView(_r29); const col_r26 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setRangeFilter(col_r26.field, "max", $event)); })("click", function KptDataTable_ng_template_22_For_4_Case_4_Template_input_click_2_listener($event) { return $event.stopPropagation(); });
9706
9906
  i0.ɵɵelementEnd()();
9707
9907
  } if (rf & 2) {
9708
- const col_r24 = i0.ɵɵnextContext().$implicit;
9908
+ const col_r26 = i0.ɵɵnextContext().$implicit;
9709
9909
  const ctx_r1 = i0.ɵɵnextContext(2);
9710
9910
  i0.ɵɵadvance();
9711
- i0.ɵɵproperty("value", ctx_r1.rangeVal(col_r24.field).min);
9712
- i0.ɵɵattribute("placeholder", ctx_r1.i18n.t("dataTable.min"))("aria-label", ctx_r1.i18n.t("dataTable.filterMin", i0.ɵɵpureFunction1(6, _c6, col_r24.header)));
9911
+ i0.ɵɵproperty("value", ctx_r1.rangeVal(col_r26.field).min);
9912
+ i0.ɵɵattribute("placeholder", ctx_r1.i18n.t("dataTable.min"))("aria-label", ctx_r1.i18n.t("dataTable.filterMin", i0.ɵɵpureFunction1(6, _c6, col_r26.header)));
9713
9913
  i0.ɵɵadvance();
9714
- i0.ɵɵproperty("value", ctx_r1.rangeVal(col_r24.field).max);
9715
- i0.ɵɵattribute("placeholder", ctx_r1.i18n.t("dataTable.max"))("aria-label", ctx_r1.i18n.t("dataTable.filterMax", i0.ɵɵpureFunction1(8, _c6, col_r24.header)));
9914
+ i0.ɵɵproperty("value", ctx_r1.rangeVal(col_r26.field).max);
9915
+ i0.ɵɵattribute("placeholder", ctx_r1.i18n.t("dataTable.max"))("aria-label", ctx_r1.i18n.t("dataTable.filterMax", i0.ɵɵpureFunction1(8, _c6, col_r26.header)));
9716
9916
  } }
9717
- function KptDataTable_ng_template_21_For_4_Case_5_Template(rf, ctx) { if (rf & 1) {
9718
- const _r28 = i0.ɵɵgetCurrentView();
9719
- i0.ɵɵelementStart(0, "div", 58);
9720
- i0.ɵɵlistener("click", function KptDataTable_ng_template_21_For_4_Case_5_Template_div_click_0_listener($event) { return $event.stopPropagation(); });
9721
- i0.ɵɵelementStart(1, "kpt-slider", 59);
9722
- i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_21_For_4_Case_5_Template_kpt_slider_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r28); const col_r24 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setColumnFilter(col_r24.field, $event)); });
9917
+ function KptDataTable_ng_template_22_For_4_Case_5_Template(rf, ctx) { if (rf & 1) {
9918
+ const _r30 = i0.ɵɵgetCurrentView();
9919
+ i0.ɵɵelementStart(0, "div", 61);
9920
+ i0.ɵɵlistener("click", function KptDataTable_ng_template_22_For_4_Case_5_Template_div_click_0_listener($event) { return $event.stopPropagation(); });
9921
+ i0.ɵɵelementStart(1, "kpt-slider", 62);
9922
+ i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_22_For_4_Case_5_Template_kpt_slider_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r30); const col_r26 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setColumnFilter(col_r26.field, $event)); });
9723
9923
  i0.ɵɵelementEnd()();
9724
9924
  } if (rf & 2) {
9725
- const col_r24 = i0.ɵɵnextContext().$implicit;
9925
+ const col_r26 = i0.ɵɵnextContext().$implicit;
9726
9926
  const ctx_r1 = i0.ɵɵnextContext(2);
9727
9927
  i0.ɵɵadvance();
9728
- i0.ɵɵproperty("min", col_r24.filter.min ?? 0)("max", col_r24.filter.max ?? 100)("step", col_r24.filter.step ?? 1)("value", ctx_r1.sliderVal(col_r24));
9928
+ i0.ɵɵproperty("min", col_r26.filter.min ?? 0)("max", col_r26.filter.max ?? 100)("step", col_r26.filter.step ?? 1)("value", ctx_r1.sliderVal(col_r26));
9729
9929
  } }
9730
- function KptDataTable_ng_template_21_For_4_Case_6_Template(rf, ctx) { if (rf & 1) {
9731
- const _r29 = i0.ɵɵgetCurrentView();
9732
- i0.ɵɵelementStart(0, "kpt-date-range", 60);
9733
- i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_21_For_4_Case_6_Template_kpt_date_range_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r29); const col_r24 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setColumnFilter(col_r24.field, $event)); });
9930
+ function KptDataTable_ng_template_22_For_4_Case_6_Template(rf, ctx) { if (rf & 1) {
9931
+ const _r31 = i0.ɵɵgetCurrentView();
9932
+ i0.ɵɵelementStart(0, "kpt-date-range", 63);
9933
+ i0.ɵɵlistener("valueChange", function KptDataTable_ng_template_22_For_4_Case_6_Template_kpt_date_range_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r31); const col_r26 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setColumnFilter(col_r26.field, $event)); });
9734
9934
  i0.ɵɵelementEnd();
9735
9935
  } if (rf & 2) {
9736
- const col_r24 = i0.ɵɵnextContext().$implicit;
9936
+ const col_r26 = i0.ɵɵnextContext().$implicit;
9737
9937
  const ctx_r1 = i0.ɵɵnextContext(2);
9738
- i0.ɵɵproperty("placeholder", col_r24.filter.placeholder || ctx_r1.i18n.t("dataTable.dateRange"))("value", ctx_r1.columnFilters()[col_r24.field] || i0.ɵɵpureFunction0(2, _c10));
9938
+ i0.ɵɵproperty("placeholder", col_r26.filter.placeholder || ctx_r1.i18n.t("dataTable.dateRange"))("value", ctx_r1.columnFilters()[col_r26.field] || i0.ɵɵpureFunction0(2, _c10));
9739
9939
  } }
9740
- function KptDataTable_ng_template_21_For_4_Template(rf, ctx) { if (rf & 1) {
9940
+ function KptDataTable_ng_template_22_For_4_Template(rf, ctx) { if (rf & 1) {
9741
9941
  i0.ɵɵelementStart(0, "th");
9742
- i0.ɵɵconditionalCreate(1, KptDataTable_ng_template_21_For_4_Case_1_Template, 1, 5, "input", 49)(2, KptDataTable_ng_template_21_For_4_Case_2_Template, 1, 5, "input", 50)(3, KptDataTable_ng_template_21_For_4_Case_3_Template, 1, 5, "kpt-select", 51)(4, KptDataTable_ng_template_21_For_4_Case_4_Template, 3, 10, "div", 52)(5, KptDataTable_ng_template_21_For_4_Case_5_Template, 2, 4, "div", 53)(6, KptDataTable_ng_template_21_For_4_Case_6_Template, 1, 3, "kpt-date-range", 54);
9942
+ i0.ɵɵconditionalCreate(1, KptDataTable_ng_template_22_For_4_Case_1_Template, 1, 5, "input", 52)(2, KptDataTable_ng_template_22_For_4_Case_2_Template, 1, 5, "input", 53)(3, KptDataTable_ng_template_22_For_4_Case_3_Template, 1, 5, "kpt-select", 54)(4, KptDataTable_ng_template_22_For_4_Case_4_Template, 3, 10, "div", 55)(5, KptDataTable_ng_template_22_For_4_Case_5_Template, 2, 4, "div", 56)(6, KptDataTable_ng_template_22_For_4_Case_6_Template, 1, 3, "kpt-date-range", 57);
9743
9943
  i0.ɵɵelementEnd();
9744
9944
  } if (rf & 2) {
9745
9945
  let tmp_19_0;
9746
- const col_r24 = ctx.$implicit;
9946
+ const col_r26 = ctx.$implicit;
9747
9947
  const ctx_r1 = i0.ɵɵnextContext(2);
9748
- i0.ɵɵstyleProp("width", col_r24.width)("left", ctx_r1.frozenLeft(col_r24.field), "px");
9749
- i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.isFrozen(col_r24.field));
9750
- i0.ɵɵattribute("data-align", col_r24.align ?? "start");
9948
+ i0.ɵɵstyleProp("width", col_r26.width)("left", ctx_r1.frozenLeft(col_r26.field), "px");
9949
+ i0.ɵɵclassProp("kpt-data-table__cell--frozen", ctx_r1.isFrozen(col_r26.field));
9950
+ i0.ɵɵattribute("data-align", col_r26.align ?? "start");
9751
9951
  i0.ɵɵadvance();
9752
- i0.ɵɵconditional((tmp_19_0 = col_r24.filter?.type) === "text" ? 1 : tmp_19_0 === "number" ? 2 : tmp_19_0 === "select" ? 3 : tmp_19_0 === "numberRange" ? 4 : tmp_19_0 === "slider" ? 5 : tmp_19_0 === "dateRange" ? 6 : -1);
9952
+ i0.ɵɵconditional((tmp_19_0 = col_r26.filter?.type) === "text" ? 1 : tmp_19_0 === "number" ? 2 : tmp_19_0 === "select" ? 3 : tmp_19_0 === "numberRange" ? 4 : tmp_19_0 === "slider" ? 5 : tmp_19_0 === "dateRange" ? 6 : -1);
9753
9953
  } }
9754
- function KptDataTable_ng_template_21_Template(rf, ctx) { if (rf & 1) {
9755
- i0.ɵɵelementStart(0, "tr", 47);
9756
- i0.ɵɵconditionalCreate(1, KptDataTable_ng_template_21_Conditional_1_Template, 1, 4, "th", 9);
9757
- i0.ɵɵconditionalCreate(2, KptDataTable_ng_template_21_Conditional_2_Template, 1, 4, "th", 10);
9758
- i0.ɵɵrepeaterCreate(3, KptDataTable_ng_template_21_For_4_Template, 7, 8, "th", 48, _forTrack0$1);
9954
+ function KptDataTable_ng_template_22_Template(rf, ctx) { if (rf & 1) {
9955
+ i0.ɵɵelementStart(0, "tr", 51);
9956
+ i0.ɵɵconditionalCreate(1, KptDataTable_ng_template_22_Conditional_1_Template, 1, 4, "th", 9);
9957
+ i0.ɵɵconditionalCreate(2, KptDataTable_ng_template_22_Conditional_2_Template, 1, 4, "th", 10);
9958
+ i0.ɵɵrepeaterCreate(3, KptDataTable_ng_template_22_For_4_Template, 7, 8, "th", 30, _forTrack0$1);
9759
9959
  i0.ɵɵelementEnd();
9760
9960
  } if (rf & 2) {
9761
9961
  const ctx_r1 = i0.ɵɵnextContext();
@@ -9766,12 +9966,12 @@ function KptDataTable_ng_template_21_Template(rf, ctx) { if (rf & 1) {
9766
9966
  i0.ɵɵadvance();
9767
9967
  i0.ɵɵrepeater(ctx_r1.visibleOrderedColumns());
9768
9968
  } }
9769
- function KptDataTable_Conditional_23_Template(rf, ctx) { if (rf & 1) {
9770
- const _r30 = i0.ɵɵgetCurrentView();
9969
+ function KptDataTable_Conditional_24_Template(rf, ctx) { if (rf & 1) {
9970
+ const _r32 = i0.ɵɵgetCurrentView();
9771
9971
  i0.ɵɵelementStart(0, "div", 12);
9772
9972
  i0.ɵɵprojection(1);
9773
- i0.ɵɵelementStart(2, "kpt-paginator", 61);
9774
- i0.ɵɵlistener("pageIndexChange", function KptDataTable_Conditional_23_Template_kpt_paginator_pageIndexChange_2_listener($event) { i0.ɵɵrestoreView(_r30); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.pageIndex.set($event)); })("pageSizeChange", function KptDataTable_Conditional_23_Template_kpt_paginator_pageSizeChange_2_listener($event) { i0.ɵɵrestoreView(_r30); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.pageSizeState.set($event)); });
9973
+ i0.ɵɵelementStart(2, "kpt-paginator", 64);
9974
+ i0.ɵɵlistener("pageIndexChange", function KptDataTable_Conditional_24_Template_kpt_paginator_pageIndexChange_2_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.pageIndex.set($event)); })("pageSizeChange", function KptDataTable_Conditional_24_Template_kpt_paginator_pageSizeChange_2_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.pageSizeState.set($event)); });
9775
9975
  i0.ɵɵelementEnd()();
9776
9976
  } if (rf & 2) {
9777
9977
  const ctx_r1 = i0.ɵɵnextContext();
@@ -9782,7 +9982,7 @@ const REM_PX = 16;
9782
9982
  const CHECKBOX_FROZEN_W = 3; // rem
9783
9983
  const EXPANDER_FROZEN_W = 2.5; // rem
9784
9984
  /** Edytory renderujące panel w CDK Overlay — otwierane od razu i zatwierdzane na zamknięciu panelu. */
9785
- const OVERLAY_EDITORS = ['date', 'select', 'multiselect'];
9985
+ const OVERLAY_EDITORS = new Set(['date', 'select', 'multiselect']);
9786
9986
  /** Tablice (multiselect) porównujemy po zawartości, resztę po referencji. */
9787
9987
  function sameEditValue(a, b) {
9788
9988
  if (a === b)
@@ -9854,6 +10054,15 @@ class KptDataTable {
9854
10054
  this.expandable = input(false, { ...(ngDevMode ? { debugName: "expandable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
9855
10055
  /** Zezwala na rozwinięcie wielu wierszy naraz (domyślnie tak). */
9856
10056
  this.multiExpand = input(true, { ...(ngDevMode ? { debugName: "multiExpand" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
10057
+ /** Etykieta wiersza podsumowania; bez wartości używa i18n (`dataTable.total`). */
10058
+ this.summaryLabel = input(/* @ts-ignore */
10059
+ ...(ngDevMode ? [undefined, { debugName: "summaryLabel" }] : /* istanbul ignore next */ []));
10060
+ /**
10061
+ * Gotowe wartości podsumowania (pole → wartość). Nadpisują wyliczenia po stronie klienta,
10062
+ * a w trybie `lazy` są ich jedynym źródłem (tabela ma wtedy tylko bieżącą stronę).
10063
+ */
10064
+ this.summaryValues = input(null, /* @ts-ignore */
10065
+ ...(ngDevMode ? [{ debugName: "summaryValues" }] : /* istanbul ignore next */ []));
9857
10066
  // ── Model / zdarzenia ──
9858
10067
  this.selection = model([], /* @ts-ignore */
9859
10068
  ...(ngDevMode ? [{ debugName: "selection" }] : /* istanbul ignore next */ []));
@@ -9980,7 +10189,7 @@ class KptDataTable {
9980
10189
  const cols = this.columns();
9981
10190
  let rows = this.data();
9982
10191
  if (query) {
9983
- rows = rows.filter((row) => cols.some((col) => String(row[col.field] ?? '').toLowerCase().includes(query)));
10192
+ rows = rows.filter((row) => cols.some((col) => toText(row[col.field]).toLowerCase().includes(query)));
9984
10193
  }
9985
10194
  if (this.hasColumnFilters()) {
9986
10195
  rows = rows.filter((row) => this.matchesColumnFilters(row));
@@ -10004,7 +10213,7 @@ class KptDataTable {
10004
10213
  return -1;
10005
10214
  if (typeof av === 'number' && typeof bv === 'number')
10006
10215
  return (av - bv) * sign;
10007
- return String(av).localeCompare(String(bv)) * sign;
10216
+ return toText(av).localeCompare(toText(bv)) * sign;
10008
10217
  });
10009
10218
  }, /* @ts-ignore */
10010
10219
  ...(ngDevMode ? [{ debugName: "sorted" }] : /* istanbul ignore next */ []));
@@ -10021,12 +10230,66 @@ class KptDataTable {
10021
10230
  return rows.slice(start, start + size);
10022
10231
  }, /* @ts-ignore */
10023
10232
  ...(ngDevMode ? [{ debugName: "paged" }] : /* istanbul ignore next */ []));
10024
- this.colspan = computed(() => this.visibleOrderedColumns().length +
10025
- (this.selectable() !== 'none' ? 1 : 0) +
10026
- (this.hasRowDetail() ? 1 : 0), /* @ts-ignore */
10233
+ /** Wiodące kolumny systemowe (rozwijanie + zaznaczanie) — poza `visibleOrderedColumns()`. */
10234
+ this.leadingCells = computed(() => (this.selectable() !== 'none' ? 1 : 0) + (this.hasRowDetail() ? 1 : 0), /* @ts-ignore */
10235
+ ...(ngDevMode ? [{ debugName: "leadingCells" }] : /* istanbul ignore next */ []));
10236
+ this.colspan = computed(() => this.visibleOrderedColumns().length + this.leadingCells(), /* @ts-ignore */
10027
10237
  ...(ngDevMode ? [{ debugName: "colspan" }] : /* istanbul ignore next */ []));
10028
10238
  this.displayCount = computed(() => this.virtualScroll() ? this.sorted().length : this.paged().length, /* @ts-ignore */
10029
10239
  ...(ngDevMode ? [{ debugName: "displayCount" }] : /* istanbul ignore next */ []));
10240
+ // ── Wiersz podsumowania (tfoot) ──
10241
+ /** Etykieta wiersza podsumowania (input albo domyślna z i18n). */
10242
+ this.summaryLabelText = computed(() => this.summaryLabel() ?? this.i18n.t('dataTable.total'), /* @ts-ignore */
10243
+ ...(ngDevMode ? [{ debugName: "summaryLabelText" }] : /* istanbul ignore next */ []));
10244
+ /**
10245
+ * Zbiór do agregacji: wszystkie wiersze po filtrach (a więc ze wszystkich stron — `paged()`
10246
+ * tnie dopiero po tym kroku). Przy `lazy` tabela ma tylko bieżącą stronę, więc nie liczy nic
10247
+ * sama — jedynym źródłem jest wtedy `summaryValues`.
10248
+ */
10249
+ this.summarySource = computed(() => this.lazy() ? [] : this.filtered(), /* @ts-ignore */
10250
+ ...(ngDevMode ? [{ debugName: "summarySource" }] : /* istanbul ignore next */ []));
10251
+ /** Pola z podsumowaniem: kolumny z `summary` (tylko widoczne) + klucze podane w `summaryValues`. */
10252
+ this.summaryFields = computed(() => {
10253
+ const cols = this.visibleOrderedColumns();
10254
+ const overrides = this.summaryValues() ?? {};
10255
+ return cols.filter((c) => c.summary || c.field in overrides).map((c) => c.field);
10256
+ }, /* @ts-ignore */
10257
+ ...(ngDevMode ? [{ debugName: "summaryFields" }] : /* istanbul ignore next */ []));
10258
+ this.hasSummary = computed(() => this.summaryFields().length > 0, /* @ts-ignore */
10259
+ ...(ngDevMode ? [{ debugName: "hasSummary" }] : /* istanbul ignore next */ []));
10260
+ /** Indeks pierwszej podsumowywanej kolumny — do niej scala się etykieta. */
10261
+ this.summaryStartIndex = computed(() => {
10262
+ const first = this.summaryFields()[0];
10263
+ return first === undefined ? -1 : this.visibleOrderedColumns().findIndex((c) => c.field === first);
10264
+ }, /* @ts-ignore */
10265
+ ...(ngDevMode ? [{ debugName: "summaryStartIndex" }] : /* istanbul ignore next */ []));
10266
+ /**
10267
+ * Colspan komórki z etykietą: kolumny systemowe + kolumny przed pierwszą podsumowywaną.
10268
+ * Zero (pierwsza widoczna kolumna jest liczona) = etykieta nie ma się gdzie zmieścić i nie
10269
+ * renderuje się wcale.
10270
+ */
10271
+ this.summaryLabelSpan = computed(() => this.leadingCells() + this.summaryStartIndex(), /* @ts-ignore */
10272
+ ...(ngDevMode ? [{ debugName: "summaryLabelSpan" }] : /* istanbul ignore next */ []));
10273
+ /** Gotowe teksty komórek podsumowania (pole → tekst); pusty string dla braku wartości. */
10274
+ this.summaryTexts = computed(() => {
10275
+ const rows = this.summarySource();
10276
+ const overrides = this.summaryValues() ?? {};
10277
+ const map = new Map();
10278
+ for (const col of this.visibleOrderedColumns()) {
10279
+ const summary = col.summary;
10280
+ // Gotowa wartość z `summaryValues` wygrywa z wyliczeniem — i wystarcza sama w sobie.
10281
+ if (col.field in overrides) {
10282
+ map.set(col.field, this.formatSummary(overrides[col.field], summary?.format));
10283
+ continue;
10284
+ }
10285
+ if (!summary)
10286
+ continue;
10287
+ const raw = typeof summary.fn === 'function' ? summary.fn(rows) : aggregate(rows, col.field, summary.fn);
10288
+ map.set(col.field, this.formatSummary(raw, summary.format));
10289
+ }
10290
+ return map;
10291
+ }, /* @ts-ignore */
10292
+ ...(ngDevMode ? [{ debugName: "summaryTexts" }] : /* istanbul ignore next */ []));
10030
10293
  /** Mapa pole → przesunięcie left (px) dla wiodących zamrożonych kolumn. */
10031
10294
  /** Suma szerokości wiodących kolumn systemowych (rozwijanie + zaznaczanie) w px. */
10032
10295
  this.leadingStickyWidth = computed(() => {
@@ -10212,7 +10475,7 @@ class KptDataTable {
10212
10475
  // poza edytorem zamyka panel, a więc zatwierdza i zamyka edycję — bez tego edytor z zamkniętym
10213
10476
  // panelem potrafiłby zostać otwarty w nieskończoność.
10214
10477
  const type = col.edit?.type;
10215
- this.editorPanelOpen.set(!!type && OVERLAY_EDITORS.includes(type));
10478
+ this.editorPanelOpen.set(!!type && OVERLAY_EDITORS.has(type));
10216
10479
  }
10217
10480
  /**
10218
10481
  * Panel edytora zamknięty (wybór, klik poza, Esc) → zatwierdź. Celowo NIE wieszamy tego na
@@ -10299,78 +10562,31 @@ class KptDataTable {
10299
10562
  const v = this.columnFilters()[col.field];
10300
10563
  return v ?? [mn, mx];
10301
10564
  }
10302
- static toIso(value) {
10303
- if (value instanceof Date) {
10304
- const p = (n) => String(n).padStart(2, '0');
10305
- return `${value.getFullYear()}-${p(value.getMonth() + 1)}-${p(value.getDate())}`;
10306
- }
10307
- return String(value ?? '');
10308
- }
10565
+ /** Semantyka dopasowania siedzi w `./column-filter` — tu zostaje tylko spięcie ze stanem. */
10309
10566
  matchesColumnFilters(row) {
10310
10567
  const filters = this.columnFilters();
10568
+ const cells = row;
10311
10569
  return this.columns().every((col) => {
10312
- const f = col.filter;
10313
- if (!f)
10570
+ const filter = col.filter;
10571
+ if (!filter)
10314
10572
  return true;
10315
- const fv = filters[col.field];
10316
- if (fv == null || fv === '' || (Array.isArray(fv) && fv.length === 0))
10573
+ const value = filters[col.field];
10574
+ if (isEmptyFilterValue(value))
10317
10575
  return true;
10318
- const cell = row[col.field];
10319
- switch (f.type) {
10320
- case 'text':
10321
- return String(cell ?? '').toLowerCase().includes(String(fv).toLowerCase());
10322
- case 'number':
10323
- return String(cell ?? '').includes(String(fv));
10324
- case 'select': {
10325
- const vals = Array.isArray(fv) ? fv : [fv];
10326
- // Komórka-tablica (np. lista tagów/członków) → dopasuj, gdy zawiera dowolną z wybranych wartości.
10327
- if (Array.isArray(cell))
10328
- return cell.some((c) => vals.includes(c));
10329
- return vals.includes(cell);
10330
- }
10331
- case 'numberRange': {
10332
- const { min, max } = fv ?? {};
10333
- const hasMin = min != null && min !== '';
10334
- const hasMax = max != null && max !== '';
10335
- if (!hasMin && !hasMax)
10336
- return true;
10337
- const num = typeof cell === 'number' ? cell : parseFloat(String(cell ?? ''));
10338
- if (Number.isNaN(num))
10339
- return false;
10340
- if (hasMin && num < parseFloat(min))
10341
- return false;
10342
- if (hasMax && num > parseFloat(max))
10343
- return false;
10344
- return true;
10345
- }
10346
- case 'slider': {
10347
- const [lo, hi] = fv;
10348
- const num = typeof cell === 'number' ? cell : parseFloat(String(cell ?? ''));
10349
- if (Number.isNaN(num))
10350
- return false;
10351
- return num >= lo && num <= hi;
10352
- }
10353
- case 'dateRange': {
10354
- const { start, end } = fv ?? { start: '', end: '' };
10355
- if (!start && !end)
10356
- return true;
10357
- const iso = KptDataTable.toIso(cell);
10358
- if (start && iso < start)
10359
- return false;
10360
- if (end && iso > end)
10361
- return false;
10362
- return true;
10363
- }
10364
- default:
10365
- return true;
10366
- }
10576
+ return matchesColumnFilter(filter, cells[col.field], value);
10367
10577
  });
10368
10578
  }
10579
+ formatSummary(raw, format) {
10580
+ return format ? format(raw) : toText(raw);
10581
+ }
10582
+ summaryText(field) {
10583
+ return this.summaryTexts().get(field) ?? '';
10584
+ }
10369
10585
  // ── Kolumny zamrożone (sticky, wiodące) ──
10370
10586
  parseWidthPx(width) {
10371
10587
  if (!width)
10372
10588
  return 8 * REM_PX;
10373
- const n = parseFloat(width);
10589
+ const n = Number.parseFloat(width);
10374
10590
  if (Number.isNaN(n))
10375
10591
  return 8 * REM_PX;
10376
10592
  return width.trim().endsWith('px') ? n : n * REM_PX;
@@ -10462,7 +10678,7 @@ class KptDataTable {
10462
10678
  i0.ɵɵqueryAdvance(3);
10463
10679
  } }, hostAttrs: [1, "kpt-data-table"], hostVars: 2, hostBindings: function KptDataTable_HostBindings(rf, ctx) { if (rf & 2) {
10464
10680
  i0.ɵɵstyleProp("--%NS%kpt-thead-offset", ctx.theadOffset() + "px");
10465
- } }, inputs: { columns: [1, "columns"], data: [1, "data"], filterable: [1, "filterable"], filterRowPosition: [1, "filterRowPosition"], pageSize: [1, "pageSize"], pageSizeOptions: [1, "pageSizeOptions"], selectable: [1, "selectable"], loading: [1, "loading"], emptyMessage: [1, "emptyMessage"], rowKey: [1, "rowKey"], scrollHeight: [1, "scrollHeight"], virtualScroll: [1, "virtualScroll"], rowHeight: [1, "rowHeight"], reorderable: [1, "reorderable"], exportable: [1, "exportable"], exportFilename: [1, "exportFilename"], lazy: [1, "lazy"], totalRecords: [1, "totalRecords"], expandable: [1, "expandable"], multiExpand: [1, "multiExpand"], selection: [1, "selection"], expandedRows: [1, "expandedRows"], hiddenFields: [1, "hiddenFields"] }, outputs: { selection: "selectionChange", expandedRows: "expandedRowsChange", hiddenFields: "hiddenFieldsChange", rowClick: "rowClick", lazyLoad: "lazyLoad", cellEdit: "cellEdit" }, ngContentSelectors: _c4, decls: 24, vars: 13, consts: [["scrollEl", ""], ["theadEl", ""], ["rowTpl", ""], ["filterRowTpl", ""], ["editorHost", ""], [1, "kpt-data-table__toolbar"], [1, "kpt-data-table__scroll", 3, "scroll"], [1, "kpt-data-table__table"], [3, "ngTemplateOutlet"], [1, "kpt-data-table__expander", 3, "kpt-data-table__cell--frozen", "left"], [1, "kpt-data-table__checkbox", 3, "kpt-data-table__cell--frozen", "left"], [3, "width", "left", "kpt-data-table__cell--frozen", "kpt-data-table__th--sortable", "kpt-data-table__th--draggable", "kpt-data-table__th--dragover"], [1, "kpt-data-table__pager"], ["type", "search", 1, "kpt-data-table__filter", 3, "value"], ["variant", "outline", "size", "sm"], ["type", "search", 1, "kpt-data-table__filter", 3, "input", "value"], ["variant", "outline", "size", "sm", 3, "click"], [1, "kpt-data-table__expander"], [1, "kpt-data-table__checkbox"], ["type", "checkbox", 3, "change", "checked", "indeterminate"], [3, "click", "dragstart", "dragover", "drop", "dragend"], ["name", "grip-vertical", 1, "kpt-data-table__grip"], [1, "kpt-data-table__sort", 3, "kpt-data-table__sort--active", "name"], [1, "kpt-data-table__sort", 3, "name"], [1, "kpt-data-table__state"], ["aria-hidden", "true", 1, "kpt-data-table__spacer"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "click"], [3, "left", "kpt-data-table__cell--frozen", "kpt-data-table__cell--editable"], [1, "kpt-data-table__detail-row"], ["type", "button", 1, "kpt-data-table__expander-btn", 3, "click"], ["name", "chevron-right"], ["type", "checkbox", 3, "click", "change", "checked"], [3, "click", "keydown.enter"], [1, "kpt-data-table__editor"], [1, "kpt-data-table__editor", 3, "click", "focusout"], [3, "value", "placeholder"], [3, "value", "min", "max", "step"], [3, "value", "open"], [3, "options", "placeholder", "value", "open"], ["multiple", "", "filter", "", 3, "options", "placeholder", "value", "open"], [3, "valueChange", "keydown.enter", "keydown.escape", "value", "placeholder"], [3, "valueChange", "keydown.enter", "keydown.escape", "value", "min", "max", "step"], [3, "valueChange", "openChange", "value", "open"], [3, "valueChange", "openChange", "options", "placeholder", "value", "open"], ["multiple", "", "filter", "", 3, "valueChange", "openChange", "options", "placeholder", "value", "open"], [1, "kpt-data-table__detail"], [1, "kpt-data-table__filter-row"], [3, "width", "left", "kpt-data-table__cell--frozen"], ["type", "search", 1, "kpt-data-table__fcell", 3, "value"], ["type", "text", "inputmode", "numeric", 1, "kpt-data-table__fcell", 3, "value"], ["filter", "", 3, "options", "multiple", "placeholder", "value"], [1, "kpt-data-table__frange"], [1, "kpt-data-table__fslider"], [3, "placeholder", "value"], ["type", "search", 1, "kpt-data-table__fcell", 3, "input", "click", "value"], ["type", "text", "inputmode", "numeric", 1, "kpt-data-table__fcell", 3, "input", "click", "value"], ["filter", "", 3, "valueChange", "options", "multiple", "placeholder", "value"], [1, "kpt-data-table__fslider", 3, "click"], ["range", "", "showValue", "", 3, "valueChange", "min", "max", "step", "value"], [3, "valueChange", "placeholder", "value"], [3, "pageIndexChange", "pageSizeChange", "length", "pageIndex", "pageSize", "pageSizeOptions"]], template: function KptDataTable_Template(rf, ctx) { if (rf & 1) {
10681
+ } }, inputs: { columns: [1, "columns"], data: [1, "data"], filterable: [1, "filterable"], filterRowPosition: [1, "filterRowPosition"], pageSize: [1, "pageSize"], pageSizeOptions: [1, "pageSizeOptions"], selectable: [1, "selectable"], loading: [1, "loading"], emptyMessage: [1, "emptyMessage"], rowKey: [1, "rowKey"], scrollHeight: [1, "scrollHeight"], virtualScroll: [1, "virtualScroll"], rowHeight: [1, "rowHeight"], reorderable: [1, "reorderable"], exportable: [1, "exportable"], exportFilename: [1, "exportFilename"], lazy: [1, "lazy"], totalRecords: [1, "totalRecords"], expandable: [1, "expandable"], multiExpand: [1, "multiExpand"], summaryLabel: [1, "summaryLabel"], summaryValues: [1, "summaryValues"], selection: [1, "selection"], expandedRows: [1, "expandedRows"], hiddenFields: [1, "hiddenFields"] }, outputs: { selection: "selectionChange", expandedRows: "expandedRowsChange", hiddenFields: "hiddenFieldsChange", rowClick: "rowClick", lazyLoad: "lazyLoad", cellEdit: "cellEdit" }, ngContentSelectors: _c4, decls: 25, vars: 14, consts: [["scrollEl", ""], ["theadEl", ""], ["rowTpl", ""], ["filterRowTpl", ""], ["editorHost", ""], [1, "kpt-data-table__toolbar"], [1, "kpt-data-table__scroll", 3, "scroll"], [1, "kpt-data-table__table"], [3, "ngTemplateOutlet"], [1, "kpt-data-table__expander", 3, "kpt-data-table__cell--frozen", "left"], [1, "kpt-data-table__checkbox", 3, "kpt-data-table__cell--frozen", "left"], [3, "width", "left", "kpt-data-table__cell--frozen", "kpt-data-table__th--sortable", "kpt-data-table__th--draggable", "kpt-data-table__th--dragover"], [1, "kpt-data-table__pager"], ["type", "search", 1, "kpt-data-table__filter", 3, "value"], ["variant", "outline", "size", "sm"], ["type", "search", 1, "kpt-data-table__filter", 3, "input", "value"], ["variant", "outline", "size", "sm", 3, "click"], [1, "kpt-data-table__expander"], [1, "kpt-data-table__checkbox"], ["type", "checkbox", 3, "change", "checked", "indeterminate"], [3, "click", "dragstart", "dragover", "drop", "dragend"], ["name", "grip-vertical", 1, "kpt-data-table__grip"], [1, "kpt-data-table__sort", 3, "kpt-data-table__sort--active", "name"], [1, "kpt-data-table__sort", 3, "name"], [1, "kpt-data-table__state"], ["aria-hidden", "true", 1, "kpt-data-table__spacer"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "kpt-data-table__summary"], [1, "kpt-data-table__summary-label", 3, "kpt-data-table__cell--frozen", "left"], [1, "kpt-data-table__summary-label"], [3, "width", "left", "kpt-data-table__cell--frozen"], [3, "click"], [3, "left", "kpt-data-table__cell--frozen", "kpt-data-table__cell--editable"], [1, "kpt-data-table__detail-row"], ["type", "button", 1, "kpt-data-table__expander-btn", 3, "click"], ["name", "chevron-right"], ["type", "checkbox", 3, "click", "change", "checked"], [3, "click", "keydown.enter"], [1, "kpt-data-table__editor"], [1, "kpt-data-table__editor", 3, "click", "focusout"], [3, "value", "placeholder"], [3, "value", "min", "max", "step"], [3, "value", "open"], [3, "options", "placeholder", "value", "open"], ["multiple", "", "filter", "", 3, "options", "placeholder", "value", "open"], [3, "valueChange", "keydown.enter", "keydown.escape", "value", "placeholder"], [3, "valueChange", "keydown.enter", "keydown.escape", "value", "min", "max", "step"], [3, "valueChange", "openChange", "value", "open"], [3, "valueChange", "openChange", "options", "placeholder", "value", "open"], ["multiple", "", "filter", "", 3, "valueChange", "openChange", "options", "placeholder", "value", "open"], [1, "kpt-data-table__detail"], [1, "kpt-data-table__filter-row"], ["type", "search", 1, "kpt-data-table__fcell", 3, "value"], ["type", "text", "inputmode", "numeric", 1, "kpt-data-table__fcell", 3, "value"], ["filter", "", 3, "options", "multiple", "placeholder", "value"], [1, "kpt-data-table__frange"], [1, "kpt-data-table__fslider"], [3, "placeholder", "value"], ["type", "search", 1, "kpt-data-table__fcell", 3, "input", "click", "value"], ["type", "text", "inputmode", "numeric", 1, "kpt-data-table__fcell", 3, "input", "click", "value"], ["filter", "", 3, "valueChange", "options", "multiple", "placeholder", "value"], [1, "kpt-data-table__fslider", 3, "click"], ["range", "", "showValue", "", 3, "valueChange", "min", "max", "step", "value"], [3, "valueChange", "placeholder", "value"], [3, "pageIndexChange", "pageSizeChange", "length", "pageIndex", "pageSize", "pageSizeOptions"]], template: function KptDataTable_Template(rf, ctx) { if (rf & 1) {
10466
10682
  i0.ɵɵprojectionDef(_c3);
10467
10683
  i0.ɵɵconditionalCreate(0, KptDataTable_Conditional_0_Template, 3, 2, "div", 5);
10468
10684
  i0.ɵɵelementStart(1, "div", 6, 0);
@@ -10478,9 +10694,11 @@ class KptDataTable {
10478
10694
  i0.ɵɵelementEnd();
10479
10695
  i0.ɵɵelementStart(14, "tbody");
10480
10696
  i0.ɵɵconditionalCreate(15, KptDataTable_Conditional_15_Template, 3, 2, "tr")(16, KptDataTable_Conditional_16_Template, 3, 2, "tr")(17, KptDataTable_Conditional_17_Template, 4, 2)(18, KptDataTable_Conditional_18_Template, 2, 0);
10481
- i0.ɵɵelementEnd()()();
10482
- i0.ɵɵtemplate(19, KptDataTable_ng_template_19_Template, 6, 9, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(21, KptDataTable_ng_template_21_Template, 5, 2, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
10483
- i0.ɵɵconditionalCreate(23, KptDataTable_Conditional_23_Template, 3, 4, "div", 12);
10697
+ i0.ɵɵelementEnd();
10698
+ i0.ɵɵconditionalCreate(19, KptDataTable_Conditional_19_Template, 5, 1, "tfoot");
10699
+ i0.ɵɵelementEnd()();
10700
+ i0.ɵɵtemplate(20, KptDataTable_ng_template_20_Template, 6, 9, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(22, KptDataTable_ng_template_22_Template, 5, 2, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
10701
+ i0.ɵɵconditionalCreate(24, KptDataTable_Conditional_24_Template, 3, 4, "div", 12);
10484
10702
  } if (rf & 2) {
10485
10703
  i0.ɵɵconditional(ctx.filterable() || ctx.exportable() ? 0 : -1);
10486
10704
  i0.ɵɵadvance();
@@ -10499,8 +10717,10 @@ class KptDataTable {
10499
10717
  i0.ɵɵconditional(ctx.hasColumnFilters() && ctx.filterRowPosition() === "bottom" ? 13 : -1);
10500
10718
  i0.ɵɵadvance(2);
10501
10719
  i0.ɵɵconditional(ctx.loading() ? 15 : ctx.displayCount() === 0 ? 16 : ctx.virtualScroll() ? 17 : 18);
10502
- i0.ɵɵadvance(8);
10503
- i0.ɵɵconditional(ctx.pageSize() > 0 && !ctx.virtualScroll() ? 23 : -1);
10720
+ i0.ɵɵadvance(4);
10721
+ i0.ɵɵconditional(ctx.hasSummary() && !ctx.loading() && ctx.displayCount() > 0 ? 19 : -1);
10722
+ i0.ɵɵadvance(5);
10723
+ i0.ɵɵconditional(ctx.pageSize() > 0 && !ctx.virtualScroll() ? 24 : -1);
10504
10724
  } }, dependencies: [NgTemplateOutlet,
10505
10725
  KptButton,
10506
10726
  KptIcon,
@@ -10510,7 +10730,7 @@ class KptDataTable {
10510
10730
  KptSlider,
10511
10731
  KptInput,
10512
10732
  KptInputNumber,
10513
- KptDatepicker], styles: ["@layer kpt.components{.kpt-data-table{display:flex;flex-direction:column;background:var(--%NS%kpt-table-bg);color:var(--%NS%kpt-table-fg);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-table-border);border-radius:var(--%NS%kpt-table-radius, .75rem);overflow:hidden;flex-grow:1}.kpt-data-table__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--%NS%kpt-space-3, .75rem);padding:var(--%NS%kpt-space-3, .75rem);border-bottom:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-table-border)}.kpt-data-table__filter{width:100%;max-width:20rem;height:2.25rem;padding-inline:var(--%NS%kpt-space-3, .75rem);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-form-field-border);border-radius:var(--%NS%kpt-form-field-radius, .5rem);background:var(--%NS%kpt-form-field-bg);color:var(--%NS%kpt-form-field-text)}.kpt-data-table__filter:focus-visible{outline:none;border-color:var(--%NS%kpt-form-field-border-focus);box-shadow:0 0 0 2px color-mix(in oklch,var(--%NS%kpt-form-field-border-focus) 30%,transparent)}.kpt-data-table__scroll{overflow:auto}.kpt-data-table__pager{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem)}.kpt-data-table__pager [kptPaginatorActions]{margin-inline-start:.5rem}.kpt-data-table__pager kpt-paginator{flex:1 1 auto;min-width:0}.kpt-data-table__table{width:100%;border-collapse:collapse;font-size:var(--%NS%kpt-font-size-sm, .875rem)}.kpt-data-table__table--frozen{width:max-content;min-width:100%}.kpt-data-table__table th,.kpt-data-table__table td{padding:var(--%NS%kpt-table-cell-padding, .75rem);text-align:start;border-bottom:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-table-border)}.kpt-data-table__table th[data-align=center],.kpt-data-table__table td[data-align=center]{text-align:center}.kpt-data-table__table th[data-align=end],.kpt-data-table__table td[data-align=end]{text-align:end}.kpt-data-table__table thead th{position:sticky;top:0;z-index:1;background:var(--%NS%kpt-table-header-bg);color:var(--%NS%kpt-table-header-fg);font-weight:var(--%NS%kpt-font-weight-semibold, 600);white-space:nowrap;-webkit-user-select:none;user-select:none}.kpt-data-table__table thead tr:nth-child(2) th{top:var(--%NS%kpt-thead-offset, 0px)}.kpt-data-table__filter-row th{padding:var(--%NS%kpt-space-2, .5rem);font-weight:var(--%NS%kpt-font-weight-normal, 400);cursor:auto}.kpt-data-table__fcell{width:100%;height:2rem;padding-inline:var(--%NS%kpt-space-2, .5rem);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-form-field-border);border-radius:var(--%NS%kpt-form-field-radius, .5rem);background:var(--%NS%kpt-form-field-bg);color:var(--%NS%kpt-form-field-text);font:inherit}.kpt-data-table__fcell:focus-visible{outline:none;border-color:var(--%NS%kpt-form-field-border-focus);box-shadow:0 0 0 2px color-mix(in oklch,var(--%NS%kpt-form-field-border-focus) 30%,transparent)}.kpt-data-table__filter-row kpt-select,.kpt-data-table__filter-row kpt-date-range{display:block;width:100%;font-weight:var(--%NS%kpt-font-weight-normal, 400)}.kpt-data-table__frange{display:flex;gap:var(--%NS%kpt-space-2, .5rem)}.kpt-data-table__frange .kpt-data-table__fcell{min-width:0}.kpt-data-table__fslider .kpt-slider-host{width:100%}.kpt-data-table__fslider .kpt-slider__value{min-width:auto;font-size:var(--%NS%kpt-font-size-xs, .75rem);color:var(--%NS%kpt-color-on-surface-muted)}.kpt-data-table__th--sortable{cursor:pointer}.kpt-data-table__th--%NS%sortable:hover{color:var(--%NS%kpt-color-on-surface)}.kpt-data-table__cell--editable{cursor:pointer}.kpt-data-table__cell--%NS%editable:hover{background:var(--%NS%kpt-table-row-hover)}.kpt-data-table__cell--%NS%editable:focus-visible{outline:var(--%NS%kpt-border-width-medium, 2px) solid var(--%NS%kpt-color-focus-ring);outline-offset:-2px}.kpt-data-table__editor{display:block;min-width:8rem}.kpt-data-table__editor .kpt-input-number-host{max-width:6.5rem}.kpt-data-table__editor .kpt-input-number__btn{width:1.75rem}.kpt-data-table__sort{margin-inline-start:.35em;opacity:.35}.kpt-data-table__sort--active{opacity:1}.kpt-data-table__th--draggable{cursor:grab}.kpt-data-table__th--%NS%draggable:active{cursor:grabbing}.kpt-data-table__th--dragover{box-shadow:inset 2px 0 0 0 var(--%NS%kpt-color-primary)}.kpt-data-table__grip{margin-inline-end:.4em;opacity:.45}.kpt-data-table__checkbox{width:1px;white-space:nowrap;text-align:center}.kpt-data-table__checkbox input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;display:inline-block;width:1.15rem;height:1.15rem;margin:0;vertical-align:middle;cursor:pointer;border:var(--%NS%kpt-border-width-medium, 2px) solid var(--%NS%kpt-form-field-border);border-radius:var(--%NS%kpt-radius-sm, .25rem);background:var(--%NS%kpt-form-field-bg);transition:background-color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard),border-color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-data-table__checkbox input[type=checkbox]:after{content:\"\";position:absolute;inset:0;opacity:0;background-color:var(--%NS%kpt-color-on-primary);transition:opacity var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard);-webkit-mask:no-repeat center/.85rem;mask:no-repeat center/.85rem}.kpt-data-table__checkbox input[type=checkbox]:checked,.kpt-data-table__checkbox input[type=checkbox]:indeterminate{background:var(--%NS%kpt-color-primary);border-color:var(--%NS%kpt-color-primary)}.kpt-data-table__checkbox input[type=checkbox]:checked:after{opacity:1;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13 4.5 6.5 11 3 7.5' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13 4.5 6.5 11 3 7.5' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")}.kpt-data-table__checkbox input[type=checkbox]:indeterminate:after{opacity:1;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8h9' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8h9' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round'/%3E%3C/svg%3E\")}.kpt-data-table__checkbox input[type=checkbox]:focus-visible{outline:var(--%NS%kpt-border-width-medium, 2px) solid var(--%NS%kpt-color-focus-ring);outline-offset:2px}.kpt-data-table__expander{width:2.5rem;min-width:2.5rem;text-align:center;white-space:nowrap}.kpt-data-table__expander-btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border:none;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:transparent;color:var(--%NS%kpt-color-on-surface-muted);cursor:pointer;transition:background-color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard),color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-data-table__expander-btn kpt-icon{display:inline-flex;transition:transform var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-data-table__expander-btn:hover{background:var(--%NS%kpt-table-row-hover);color:var(--%NS%kpt-color-on-surface)}.kpt-data-table__expander-btn:focus-visible{outline:var(--%NS%kpt-border-width-medium, 2px) solid var(--%NS%kpt-color-focus-ring);outline-offset:2px}.kpt-data-table__expander-btn--open{color:var(--%NS%kpt-color-primary)}.kpt-data-table__expander-btn--open kpt-icon{transform:rotate(90deg)}.kpt-data-table__detail-row>.kpt-data-table__detail{padding:var(--%NS%kpt-space-4, 1rem);background:var(--%NS%kpt-table-detail-bg, var(--%NS%kpt-color-surface-variant, var(--%NS%kpt-table-row-hover)));border-bottom:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-table-border);box-shadow:inset 3px 0 0 0 var(--%NS%kpt-color-primary)}.kpt-data-table tbody tr{transition:background-color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-data-table tbody tr:hover{background:var(--%NS%kpt-table-row-hover)}.kpt-data-table tbody tr.kpt-data-table__detail-row:hover{background:transparent}.kpt-data-table__row--selected{background:var(--%NS%kpt-table-row-selected)!important}.kpt-data-table__row--expanded{background:var(--%NS%kpt-table-row-hover)}.kpt-data-table__table--frozen .kpt-data-table__checkbox{width:3rem;min-width:3rem}.kpt-data-table__table--frozen .kpt-data-table__expander{width:2.5rem;min-width:2.5rem}.kpt-data-table__cell--frozen{position:sticky;z-index:1;background:var(--%NS%kpt-table-bg);border-inline-end:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-table-border)}.kpt-data-table thead th.kpt-data-table__cell--frozen{z-index:3;background:var(--%NS%kpt-table-header-bg)}.kpt-data-table tbody tr:hover .kpt-data-table__cell--frozen{background:var(--%NS%kpt-table-row-hover)}.kpt-data-table__row--selected.kpt-data-table__row--selected .kpt-data-table__cell--frozen,.kpt-data-table tbody tr.kpt-data-table__row--selected .kpt-data-table__cell--frozen{background:var(--%NS%kpt-table-row-selected)}.kpt-data-table__state{padding:var(--%NS%kpt-space-8, 2rem)!important;text-align:center!important;color:var(--%NS%kpt-color-on-surface-muted)}.kpt-data-table__table--virtual td{padding-block:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.kpt-data-table__spacer td{padding:0!important;border:0!important}.kpt-data-table tbody tr:last-child td{border-bottom:0}}\n"], encapsulation: 2 }); }
10733
+ KptDatepicker], styles: ["@layer kpt.components{.kpt-data-table{display:flex;flex-direction:column;background:var(--%NS%kpt-table-bg);color:var(--%NS%kpt-table-fg);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-table-border);border-radius:var(--%NS%kpt-table-radius, .75rem);overflow:hidden;flex-grow:1}.kpt-data-table__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--%NS%kpt-space-3, .75rem);padding:var(--%NS%kpt-space-3, .75rem);border-bottom:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-table-border)}.kpt-data-table__filter{width:100%;max-width:20rem;height:2.25rem;padding-inline:var(--%NS%kpt-space-3, .75rem);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-form-field-border);border-radius:var(--%NS%kpt-form-field-radius, .5rem);background:var(--%NS%kpt-form-field-bg);color:var(--%NS%kpt-form-field-text)}.kpt-data-table__filter:focus-visible{outline:none;border-color:var(--%NS%kpt-form-field-border-focus);box-shadow:0 0 0 2px color-mix(in oklch,var(--%NS%kpt-form-field-border-focus) 30%,transparent)}.kpt-data-table__scroll{overflow:auto}.kpt-data-table__pager{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem)}.kpt-data-table__pager [kptPaginatorActions]{margin-inline-start:.5rem}.kpt-data-table__pager kpt-paginator{flex:1 1 auto;min-width:0}.kpt-data-table__table{width:100%;border-collapse:collapse;font-size:var(--%NS%kpt-font-size-sm, .875rem)}.kpt-data-table__table--frozen{width:max-content;min-width:100%}.kpt-data-table__table th,.kpt-data-table__table td{padding:var(--%NS%kpt-table-cell-padding, .75rem);text-align:start;border-bottom:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-table-border)}.kpt-data-table__table th[data-align=center],.kpt-data-table__table td[data-align=center]{text-align:center}.kpt-data-table__table th[data-align=end],.kpt-data-table__table td[data-align=end]{text-align:end}.kpt-data-table__table thead th{position:sticky;top:0;z-index:1;background:var(--%NS%kpt-table-header-bg);color:var(--%NS%kpt-table-header-fg);font-weight:var(--%NS%kpt-font-weight-semibold, 600);white-space:nowrap;-webkit-user-select:none;user-select:none}.kpt-data-table__table thead tr:nth-child(2) th{top:var(--%NS%kpt-thead-offset, 0px)}.kpt-data-table__table tfoot th,.kpt-data-table__table tfoot td{position:sticky;bottom:0;z-index:1;background:var(--%NS%kpt-table-summary-bg, var(--%NS%kpt-table-header-bg));color:var(--%NS%kpt-table-header-fg);font-weight:var(--%NS%kpt-font-weight-semibold, 600);white-space:nowrap;border-bottom:0;border-top:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-table-border)}.kpt-data-table__table .kpt-data-table__summary-label{text-align:end}.kpt-data-table__filter-row th{padding:var(--%NS%kpt-space-2, .5rem);font-weight:var(--%NS%kpt-font-weight-normal, 400);cursor:auto}.kpt-data-table__fcell{width:100%;height:2rem;padding-inline:var(--%NS%kpt-space-2, .5rem);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-form-field-border);border-radius:var(--%NS%kpt-form-field-radius, .5rem);background:var(--%NS%kpt-form-field-bg);color:var(--%NS%kpt-form-field-text);font:inherit}.kpt-data-table__fcell:focus-visible{outline:none;border-color:var(--%NS%kpt-form-field-border-focus);box-shadow:0 0 0 2px color-mix(in oklch,var(--%NS%kpt-form-field-border-focus) 30%,transparent)}.kpt-data-table__filter-row kpt-select,.kpt-data-table__filter-row kpt-date-range{display:block;width:100%;font-weight:var(--%NS%kpt-font-weight-normal, 400)}.kpt-data-table__frange{display:flex;gap:var(--%NS%kpt-space-2, .5rem)}.kpt-data-table__frange .kpt-data-table__fcell{min-width:0}.kpt-data-table__fslider .kpt-slider-host{width:100%}.kpt-data-table__fslider .kpt-slider__value{min-width:auto;font-size:var(--%NS%kpt-font-size-xs, .75rem);color:var(--%NS%kpt-color-on-surface-muted)}.kpt-data-table__th--sortable{cursor:pointer}.kpt-data-table__th--%NS%sortable:hover{color:var(--%NS%kpt-color-on-surface)}.kpt-data-table__cell--editable{cursor:pointer}.kpt-data-table__cell--%NS%editable:hover{background:var(--%NS%kpt-table-row-hover)}.kpt-data-table__cell--%NS%editable:focus-visible{outline:var(--%NS%kpt-border-width-medium, 2px) solid var(--%NS%kpt-color-focus-ring);outline-offset:-2px}.kpt-data-table__editor{display:block;min-width:8rem}.kpt-data-table__editor .kpt-input-number-host{max-width:6.5rem}.kpt-data-table__editor .kpt-input-number__btn{width:1.75rem}.kpt-data-table__sort{margin-inline-start:.35em;opacity:.35}.kpt-data-table__sort--active{opacity:1}.kpt-data-table__th--draggable{cursor:grab}.kpt-data-table__th--%NS%draggable:active{cursor:grabbing}.kpt-data-table__th--dragover{box-shadow:inset 2px 0 0 0 var(--%NS%kpt-color-primary)}.kpt-data-table__grip{margin-inline-end:.4em;opacity:.45}.kpt-data-table__checkbox{width:1px;white-space:nowrap;text-align:center}.kpt-data-table__checkbox input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;display:inline-block;width:1.15rem;height:1.15rem;margin:0;vertical-align:middle;cursor:pointer;border:var(--%NS%kpt-border-width-medium, 2px) solid var(--%NS%kpt-form-field-border);border-radius:var(--%NS%kpt-radius-sm, .25rem);background:var(--%NS%kpt-form-field-bg);transition:background-color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard),border-color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-data-table__checkbox input[type=checkbox]:after{content:\"\";position:absolute;inset:0;opacity:0;background-color:var(--%NS%kpt-color-on-primary);transition:opacity var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard);-webkit-mask:no-repeat center/.85rem;mask:no-repeat center/.85rem}.kpt-data-table__checkbox input[type=checkbox]:checked,.kpt-data-table__checkbox input[type=checkbox]:indeterminate{background:var(--%NS%kpt-color-primary);border-color:var(--%NS%kpt-color-primary)}.kpt-data-table__checkbox input[type=checkbox]:checked:after{opacity:1;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13 4.5 6.5 11 3 7.5' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13 4.5 6.5 11 3 7.5' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")}.kpt-data-table__checkbox input[type=checkbox]:indeterminate:after{opacity:1;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8h9' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8h9' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round'/%3E%3C/svg%3E\")}.kpt-data-table__checkbox input[type=checkbox]:focus-visible{outline:var(--%NS%kpt-border-width-medium, 2px) solid var(--%NS%kpt-color-focus-ring);outline-offset:2px}.kpt-data-table__expander{width:2.5rem;min-width:2.5rem;text-align:center;white-space:nowrap}.kpt-data-table__expander-btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border:none;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:transparent;color:var(--%NS%kpt-color-on-surface-muted);cursor:pointer;transition:background-color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard),color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-data-table__expander-btn kpt-icon{display:inline-flex;transition:transform var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-data-table__expander-btn:hover{background:var(--%NS%kpt-table-row-hover);color:var(--%NS%kpt-color-on-surface)}.kpt-data-table__expander-btn:focus-visible{outline:var(--%NS%kpt-border-width-medium, 2px) solid var(--%NS%kpt-color-focus-ring);outline-offset:2px}.kpt-data-table__expander-btn--open{color:var(--%NS%kpt-color-primary)}.kpt-data-table__expander-btn--open kpt-icon{transform:rotate(90deg)}.kpt-data-table__detail-row>.kpt-data-table__detail{padding:var(--%NS%kpt-space-4, 1rem);background:var(--%NS%kpt-table-detail-bg, var(--%NS%kpt-color-surface-variant, var(--%NS%kpt-table-row-hover)));border-bottom:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-table-border);box-shadow:inset 3px 0 0 0 var(--%NS%kpt-color-primary)}.kpt-data-table tbody tr{transition:background-color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-data-table tbody tr:hover{background:var(--%NS%kpt-table-row-hover)}.kpt-data-table tbody tr.kpt-data-table__detail-row:hover{background:transparent}.kpt-data-table__row--selected{background:var(--%NS%kpt-table-row-selected)!important}.kpt-data-table__row--expanded{background:var(--%NS%kpt-table-row-hover)}.kpt-data-table__table--frozen .kpt-data-table__checkbox{width:3rem;min-width:3rem}.kpt-data-table__table--frozen .kpt-data-table__expander{width:2.5rem;min-width:2.5rem}.kpt-data-table__cell--frozen{position:sticky;z-index:1;background:var(--%NS%kpt-table-bg);border-inline-end:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-table-border)}.kpt-data-table thead th.kpt-data-table__cell--frozen{z-index:3;background:var(--%NS%kpt-table-header-bg)}.kpt-data-table tfoot th.kpt-data-table__cell--frozen,.kpt-data-table tfoot td.kpt-data-table__cell--frozen{z-index:3;background:var(--%NS%kpt-table-summary-bg, var(--%NS%kpt-table-header-bg))}.kpt-data-table tbody tr:hover .kpt-data-table__cell--frozen{background:var(--%NS%kpt-table-row-hover)}.kpt-data-table__row--selected.kpt-data-table__row--selected .kpt-data-table__cell--frozen,.kpt-data-table tbody tr.kpt-data-table__row--selected .kpt-data-table__cell--frozen{background:var(--%NS%kpt-table-row-selected)}.kpt-data-table__state{padding:var(--%NS%kpt-space-8, 2rem)!important;text-align:center!important;color:var(--%NS%kpt-color-on-surface-muted)}.kpt-data-table__table--virtual td{padding-block:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.kpt-data-table__spacer td{padding:0!important;border:0!important}.kpt-data-table tbody tr:last-child td{border-bottom:0}}\n"], encapsulation: 2 }); }
10514
10734
  }
10515
10735
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptDataTable, [{
10516
10736
  type: Component,
@@ -10528,9 +10748,9 @@ class KptDataTable {
10528
10748
  ], host: {
10529
10749
  'class': 'kpt-data-table',
10530
10750
  '[style.--kpt-thead-offset]': "theadOffset() + 'px'",
10531
- }, template: "@if (filterable() || exportable()) {\n <div class=\"kpt-data-table__toolbar\">\n @if (filterable()) {\n <input\n class=\"kpt-data-table__filter\"\n type=\"search\"\n [attr.placeholder]=\"i18n.t('dataTable.search')\"\n [value]=\"filterText()\"\n (input)=\"onFilter($event)\"\n />\n }\n @if (exportable()) {\n <kpt-button variant=\"outline\" size=\"sm\" (click)=\"exportCsv()\">{{ i18n.t('dataTable.exportCsv') }}</kpt-button>\n }\n </div>\n}\n\n<div class=\"kpt-data-table__scroll\" #scrollEl [style.max-height]=\"scrollHeight()\" (scroll)=\"onScroll($event)\">\n <table\n class=\"kpt-data-table__table\"\n [class.kpt-data-table__table--frozen]=\"hasFrozen()\"\n [class.kpt-data-table__table--virtual]=\"virtualScroll()\"\n >\n <thead #theadEl>\n @if (hasColumnFilters() && filterRowPosition() === 'top') {\n <ng-container [ngTemplateOutlet]=\"filterRowTpl\" />\n }\n <tr>\n @if (hasRowDetail()) {\n <th class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\"></th>\n }\n @if (selectable() === 'multiple') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\">\n <input\n type=\"checkbox\"\n [checked]=\"pageAllSelected()\"\n [indeterminate]=\"pageSomeSelected()\"\n (change)=\"toggleAllOnPage()\"\n [attr.aria-label]=\"i18n.t('dataTable.selectAll')\"\n />\n </th>\n } @else if (selectable() === 'single') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\"></th>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <th\n [attr.draggable]=\"isColDraggable(col) ? true : null\"\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [attr.data-align]=\"col.align ?? 'start'\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n [class.kpt-data-table__th--sortable]=\"col.sortable\"\n [class.kpt-data-table__th--draggable]=\"isColDraggable(col)\"\n [class.kpt-data-table__th--dragover]=\"dragField() !== null && dragField() !== col.field && !col.frozen\"\n [attr.aria-sort]=\"ariaSort(col)\"\n (click)=\"toggleSort(col)\"\n (dragstart)=\"onColDragStart(col.field, $event)\"\n (dragover)=\"reorderable() ? onColDragOver(col.field, $event) : null\"\n (drop)=\"reorderable() ? onColDrop(col.field, $event) : null\"\n (dragend)=\"onColDragEnd()\"\n >\n @if (isColDraggable(col)) {\n <kpt-icon class=\"kpt-data-table__grip\" name=\"grip-vertical\" />\n }\n <span>{{ col.header }}</span>\n @if (col.sortable) {\n <kpt-icon\n class=\"kpt-data-table__sort\"\n [class.kpt-data-table__sort--active]=\"ariaSort(col) !== 'none'\"\n [name]=\"sortIconName(col)\"\n />\n }\n </th>\n }\n </tr>\n @if (hasColumnFilters() && filterRowPosition() === 'bottom') {\n <ng-container [ngTemplateOutlet]=\"filterRowTpl\" />\n }\n </thead>\n <tbody>\n @if (loading()) {\n <tr><td class=\"kpt-data-table__state\" [attr.colspan]=\"colspan()\">{{ i18n.t('dataTable.loading') }}</td></tr>\n } @else if (displayCount() === 0) {\n <tr><td class=\"kpt-data-table__state\" [attr.colspan]=\"colspan()\">{{ emptyText() }}</td></tr>\n } @else if (virtualScroll()) {\n @if (topPad() > 0) {\n <tr class=\"kpt-data-table__spacer\" aria-hidden=\"true\"><td [attr.colspan]=\"colspan()\" [style.height.px]=\"topPad()\"></td></tr>\n }\n @for (row of virtualRows(); track trackRow(row)) {\n <ng-container [ngTemplateOutlet]=\"rowTpl\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n }\n @if (bottomPad() > 0) {\n <tr class=\"kpt-data-table__spacer\" aria-hidden=\"true\"><td [attr.colspan]=\"colspan()\" [style.height.px]=\"bottomPad()\"></td></tr>\n }\n } @else {\n @for (row of paged(); track trackRow(row)) {\n <ng-container [ngTemplateOutlet]=\"rowTpl\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n }\n }\n </tbody>\n </table>\n</div>\n\n<ng-template #rowTpl let-row>\n <tr\n [class.kpt-data-table__row--selected]=\"isSelected(row)\"\n [class.kpt-data-table__row--expanded]=\"hasRowDetail() && isExpanded(row)\"\n [style.height.px]=\"virtualScroll() ? rowHeight() : null\"\n (click)=\"onRowClick(row)\"\n >\n @if (hasRowDetail()) {\n <td class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\">\n <button\n type=\"button\"\n class=\"kpt-data-table__expander-btn\"\n [class.kpt-data-table__expander-btn--open]=\"isExpanded(row)\"\n [attr.aria-expanded]=\"isExpanded(row)\"\n [attr.aria-label]=\"i18n.t('dataTable.expandRow')\"\n (click)=\"$event.stopPropagation(); toggleExpand(row)\"\n >\n <kpt-icon name=\"chevron-right\" />\n </button>\n </td>\n }\n @if (selectable() !== 'none') {\n <td class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(row)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleRow(row)\"\n [attr.aria-label]=\"i18n.t('dataTable.selectRow')\"\n />\n </td>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <td\n [attr.data-align]=\"col.align ?? 'start'\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n [class.kpt-data-table__cell--editable]=\"isEditable(col) && !isEditingCell(row, col.field)\"\n [attr.tabindex]=\"isEditable(col) && !isEditingCell(row, col.field) ? 0 : null\"\n [attr.aria-label]=\"isEditable(col) && !isEditingCell(row, col.field) ? i18n.t('dataTable.editCell', { column: col.header }) : null\"\n (click)=\"isEditable(col) ? startEdit(row, col, $event) : null\"\n (keydown.enter)=\"isEditable(col) && !isEditingCell(row, col.field) ? startEdit(row, col, $event) : null\"\n >\n @if (isEditingCell(row, col.field)) {\n <div\n class=\"kpt-data-table__editor\"\n #editorHost\n (click)=\"$event.stopPropagation()\"\n (focusout)=\"onEditorFocusOut($event)\"\n >\n @if (cellEditTemplate(col.field); as etpl) {\n <ng-container\n [ngTemplateOutlet]=\"etpl\"\n [ngTemplateOutletContext]=\"{ $implicit: editingValue(), row, commit: commitEditValue, cancel: cancelEdit }\"\n />\n } @else {\n @switch (col.edit?.type) {\n @case ('text') {\n <kpt-input\n [value]=\"$any(editingValue()) ?? ''\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n (valueChange)=\"editingValue.set($event)\"\n (keydown.enter)=\"commitEdit()\"\n (keydown.escape)=\"cancelEdit()\"\n />\n }\n @case ('number') {\n <kpt-input-number\n [value]=\"$any(editingValue())\"\n [min]=\"col.edit.min\"\n [max]=\"col.edit.max\"\n [step]=\"col.edit.step ?? 1\"\n (valueChange)=\"editingValue.set($event)\"\n (keydown.enter)=\"commitEdit()\"\n (keydown.escape)=\"cancelEdit()\"\n />\n }\n @case ('date') {\n <kpt-datepicker\n [value]=\"$any(editingValue()) ?? ''\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n @case ('select') {\n <kpt-select\n [options]=\"col.edit.options ?? []\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n [value]=\"editingValue()\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n @case ('multiselect') {\n <kpt-select\n multiple\n filter\n [options]=\"col.edit.options ?? []\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n [value]=\"editingValue()\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n }\n }\n </div>\n } @else if (cellTemplate(col.field); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: row, value: getValue(row, col.field) }\"\n />\n } @else {\n {{ getValue(row, col.field) }}\n }\n </td>\n }\n </tr>\n @if (hasRowDetail() && isExpanded(row) && !virtualScroll()) {\n <tr class=\"kpt-data-table__detail-row\">\n <td class=\"kpt-data-table__detail\" [attr.colspan]=\"colspan()\">\n <ng-container [ngTemplateOutlet]=\"rowDetailTpl()\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n </td>\n </tr>\n }\n</ng-template>\n\n<ng-template #filterRowTpl>\n <tr class=\"kpt-data-table__filter-row\">\n @if (hasRowDetail()) {\n <th class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\"></th>\n }\n @if (selectable() !== 'none') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\"></th>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <th\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [attr.data-align]=\"col.align ?? 'start'\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n >\n @switch (col.filter?.type) {\n @case ('text') {\n <input\n class=\"kpt-data-table__fcell\"\n type=\"search\"\n [attr.placeholder]=\"col.filter.placeholder || ''\"\n [attr.aria-label]=\"i18n.t('dataTable.filter', { column: col.header })\"\n [value]=\"$any(columnFilters()[col.field]) || ''\"\n (input)=\"setColumnFilter(col.field, $any($event.target).value)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n @case ('number') {\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"col.filter.placeholder || ''\"\n [attr.aria-label]=\"i18n.t('dataTable.filter', { column: col.header })\"\n [value]=\"$any(columnFilters()[col.field]) || ''\"\n (input)=\"onNumberFilter(col.field, $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n @case ('select') {\n <kpt-select\n [options]=\"col.filter.options || []\"\n [multiple]=\"!!col.filter.multiple\"\n filter\n [placeholder]=\"col.filter.placeholder || i18n.t('dataTable.all')\"\n [value]=\"columnFilters()[col.field] ?? null\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n />\n }\n @case ('numberRange') {\n <div class=\"kpt-data-table__frange\">\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"i18n.t('dataTable.min')\"\n [attr.aria-label]=\"i18n.t('dataTable.filterMin', { column: col.header })\"\n [value]=\"rangeVal(col.field).min\"\n (input)=\"setRangeFilter(col.field, 'min', $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"i18n.t('dataTable.max')\"\n [attr.aria-label]=\"i18n.t('dataTable.filterMax', { column: col.header })\"\n [value]=\"rangeVal(col.field).max\"\n (input)=\"setRangeFilter(col.field, 'max', $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n </div>\n }\n @case ('slider') {\n <div class=\"kpt-data-table__fslider\" (click)=\"$event.stopPropagation()\">\n <kpt-slider\n range\n [min]=\"col.filter.min ?? 0\"\n [max]=\"col.filter.max ?? 100\"\n [step]=\"col.filter.step ?? 1\"\n [value]=\"sliderVal(col)\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n showValue\n />\n </div>\n }\n @case ('dateRange') {\n <kpt-date-range\n [placeholder]=\"col.filter.placeholder || i18n.t('dataTable.dateRange')\"\n [value]=\"$any(columnFilters()[col.field]) || { start: '', end: '' }\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n />\n }\n }\n </th>\n }\n </tr>\n</ng-template>\n\n@if (pageSize() > 0 && !virtualScroll()) {\n <div class=\"kpt-data-table__pager\">\n <ng-content select=\"[kptPaginatorActions]\" />\n <kpt-paginator\n [length]=\"filteredCount()\"\n [pageIndex]=\"pageIndex()\"\n (pageIndexChange)=\"pageIndex.set($event)\"\n [pageSize]=\"pageSizeState()\"\n (pageSizeChange)=\"pageSizeState.set($event)\"\n [pageSizeOptions]=\"pageSizeOptions()\"\n />\n </div>\n}\n", styles: ["@layer kpt.components{.kpt-data-table{display:flex;flex-direction:column;background:var(--kpt-table-bg);color:var(--kpt-table-fg);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-table-border);border-radius:var(--kpt-table-radius, .75rem);overflow:hidden;flex-grow:1}.kpt-data-table__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--kpt-space-3, .75rem);padding:var(--kpt-space-3, .75rem);border-bottom:var(--kpt-border-width-thin, 1px) solid var(--kpt-table-border)}.kpt-data-table__filter{width:100%;max-width:20rem;height:2.25rem;padding-inline:var(--kpt-space-3, .75rem);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-form-field-border);border-radius:var(--kpt-form-field-radius, .5rem);background:var(--kpt-form-field-bg);color:var(--kpt-form-field-text)}.kpt-data-table__filter:focus-visible{outline:none;border-color:var(--kpt-form-field-border-focus);box-shadow:0 0 0 2px color-mix(in oklch,var(--kpt-form-field-border-focus) 30%,transparent)}.kpt-data-table__scroll{overflow:auto}.kpt-data-table__pager{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem)}.kpt-data-table__pager [kptPaginatorActions]{margin-inline-start:.5rem}.kpt-data-table__pager kpt-paginator{flex:1 1 auto;min-width:0}.kpt-data-table__table{width:100%;border-collapse:collapse;font-size:var(--kpt-font-size-sm, .875rem)}.kpt-data-table__table--frozen{width:max-content;min-width:100%}.kpt-data-table__table th,.kpt-data-table__table td{padding:var(--kpt-table-cell-padding, .75rem);text-align:start;border-bottom:var(--kpt-border-width-thin, 1px) solid var(--kpt-table-border)}.kpt-data-table__table th[data-align=center],.kpt-data-table__table td[data-align=center]{text-align:center}.kpt-data-table__table th[data-align=end],.kpt-data-table__table td[data-align=end]{text-align:end}.kpt-data-table__table thead th{position:sticky;top:0;z-index:1;background:var(--kpt-table-header-bg);color:var(--kpt-table-header-fg);font-weight:var(--kpt-font-weight-semibold, 600);white-space:nowrap;-webkit-user-select:none;user-select:none}.kpt-data-table__table thead tr:nth-child(2) th{top:var(--kpt-thead-offset, 0px)}.kpt-data-table__filter-row th{padding:var(--kpt-space-2, .5rem);font-weight:var(--kpt-font-weight-normal, 400);cursor:auto}.kpt-data-table__fcell{width:100%;height:2rem;padding-inline:var(--kpt-space-2, .5rem);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-form-field-border);border-radius:var(--kpt-form-field-radius, .5rem);background:var(--kpt-form-field-bg);color:var(--kpt-form-field-text);font:inherit}.kpt-data-table__fcell:focus-visible{outline:none;border-color:var(--kpt-form-field-border-focus);box-shadow:0 0 0 2px color-mix(in oklch,var(--kpt-form-field-border-focus) 30%,transparent)}.kpt-data-table__filter-row kpt-select,.kpt-data-table__filter-row kpt-date-range{display:block;width:100%;font-weight:var(--kpt-font-weight-normal, 400)}.kpt-data-table__frange{display:flex;gap:var(--kpt-space-2, .5rem)}.kpt-data-table__frange .kpt-data-table__fcell{min-width:0}.kpt-data-table__fslider .kpt-slider-host{width:100%}.kpt-data-table__fslider .kpt-slider__value{min-width:auto;font-size:var(--kpt-font-size-xs, .75rem);color:var(--kpt-color-on-surface-muted)}.kpt-data-table__th--sortable{cursor:pointer}.kpt-data-table__th--sortable:hover{color:var(--kpt-color-on-surface)}.kpt-data-table__cell--editable{cursor:pointer}.kpt-data-table__cell--editable:hover{background:var(--kpt-table-row-hover)}.kpt-data-table__cell--editable:focus-visible{outline:var(--kpt-border-width-medium, 2px) solid var(--kpt-color-focus-ring);outline-offset:-2px}.kpt-data-table__editor{display:block;min-width:8rem}.kpt-data-table__editor .kpt-input-number-host{max-width:6.5rem}.kpt-data-table__editor .kpt-input-number__btn{width:1.75rem}.kpt-data-table__sort{margin-inline-start:.35em;opacity:.35}.kpt-data-table__sort--active{opacity:1}.kpt-data-table__th--draggable{cursor:grab}.kpt-data-table__th--draggable:active{cursor:grabbing}.kpt-data-table__th--dragover{box-shadow:inset 2px 0 0 0 var(--kpt-color-primary)}.kpt-data-table__grip{margin-inline-end:.4em;opacity:.45}.kpt-data-table__checkbox{width:1px;white-space:nowrap;text-align:center}.kpt-data-table__checkbox input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;display:inline-block;width:1.15rem;height:1.15rem;margin:0;vertical-align:middle;cursor:pointer;border:var(--kpt-border-width-medium, 2px) solid var(--kpt-form-field-border);border-radius:var(--kpt-radius-sm, .25rem);background:var(--kpt-form-field-bg);transition:background-color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard),border-color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-data-table__checkbox input[type=checkbox]:after{content:\"\";position:absolute;inset:0;opacity:0;background-color:var(--kpt-color-on-primary);transition:opacity var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard);-webkit-mask:no-repeat center/.85rem;mask:no-repeat center/.85rem}.kpt-data-table__checkbox input[type=checkbox]:checked,.kpt-data-table__checkbox input[type=checkbox]:indeterminate{background:var(--kpt-color-primary);border-color:var(--kpt-color-primary)}.kpt-data-table__checkbox input[type=checkbox]:checked:after{opacity:1;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13 4.5 6.5 11 3 7.5' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13 4.5 6.5 11 3 7.5' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")}.kpt-data-table__checkbox input[type=checkbox]:indeterminate:after{opacity:1;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8h9' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8h9' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round'/%3E%3C/svg%3E\")}.kpt-data-table__checkbox input[type=checkbox]:focus-visible{outline:var(--kpt-border-width-medium, 2px) solid var(--kpt-color-focus-ring);outline-offset:2px}.kpt-data-table__expander{width:2.5rem;min-width:2.5rem;text-align:center;white-space:nowrap}.kpt-data-table__expander-btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border:none;border-radius:var(--kpt-radius-sm, .25rem);background:transparent;color:var(--kpt-color-on-surface-muted);cursor:pointer;transition:background-color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard),color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-data-table__expander-btn kpt-icon{display:inline-flex;transition:transform var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-data-table__expander-btn:hover{background:var(--kpt-table-row-hover);color:var(--kpt-color-on-surface)}.kpt-data-table__expander-btn:focus-visible{outline:var(--kpt-border-width-medium, 2px) solid var(--kpt-color-focus-ring);outline-offset:2px}.kpt-data-table__expander-btn--open{color:var(--kpt-color-primary)}.kpt-data-table__expander-btn--open kpt-icon{transform:rotate(90deg)}.kpt-data-table__detail-row>.kpt-data-table__detail{padding:var(--kpt-space-4, 1rem);background:var(--kpt-table-detail-bg, var(--kpt-color-surface-variant, var(--kpt-table-row-hover)));border-bottom:var(--kpt-border-width-thin, 1px) solid var(--kpt-table-border);box-shadow:inset 3px 0 0 0 var(--kpt-color-primary)}.kpt-data-table tbody tr{transition:background-color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-data-table tbody tr:hover{background:var(--kpt-table-row-hover)}.kpt-data-table tbody tr.kpt-data-table__detail-row:hover{background:transparent}.kpt-data-table__row--selected{background:var(--kpt-table-row-selected)!important}.kpt-data-table__row--expanded{background:var(--kpt-table-row-hover)}.kpt-data-table__table--frozen .kpt-data-table__checkbox{width:3rem;min-width:3rem}.kpt-data-table__table--frozen .kpt-data-table__expander{width:2.5rem;min-width:2.5rem}.kpt-data-table__cell--frozen{position:sticky;z-index:1;background:var(--kpt-table-bg);border-inline-end:var(--kpt-border-width-thin, 1px) solid var(--kpt-table-border)}.kpt-data-table thead th.kpt-data-table__cell--frozen{z-index:3;background:var(--kpt-table-header-bg)}.kpt-data-table tbody tr:hover .kpt-data-table__cell--frozen{background:var(--kpt-table-row-hover)}.kpt-data-table__row--selected.kpt-data-table__row--selected .kpt-data-table__cell--frozen,.kpt-data-table tbody tr.kpt-data-table__row--selected .kpt-data-table__cell--frozen{background:var(--kpt-table-row-selected)}.kpt-data-table__state{padding:var(--kpt-space-8, 2rem)!important;text-align:center!important;color:var(--kpt-color-on-surface-muted)}.kpt-data-table__table--virtual td{padding-block:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.kpt-data-table__spacer td{padding:0!important;border:0!important}.kpt-data-table tbody tr:last-child td{border-bottom:0}}\n"] }]
10532
- }], () => [], { columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: true }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], filterable: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterable", required: false }] }], filterRowPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterRowPosition", required: false }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: false }] }], pageSizeOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizeOptions", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyMessage", required: false }] }], rowKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowKey", required: false }] }], scrollHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollHeight", required: false }] }], virtualScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualScroll", required: false }] }], rowHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowHeight", required: false }] }], reorderable: [{ type: i0.Input, args: [{ isSignal: true, alias: "reorderable", required: false }] }], exportable: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportable", required: false }] }], exportFilename: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportFilename", required: false }] }], lazy: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazy", required: false }] }], totalRecords: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalRecords", required: false }] }], expandable: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandable", required: false }] }], multiExpand: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiExpand", required: false }] }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }, { type: i0.Output, args: ["selectionChange"] }], expandedRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedRows", required: false }] }, { type: i0.Output, args: ["expandedRowsChange"] }], hiddenFields: [{ type: i0.Input, args: [{ isSignal: true, alias: "hiddenFields", required: false }] }, { type: i0.Output, args: ["hiddenFieldsChange"] }], rowClick: [{ type: i0.Output, args: ["rowClick"] }], lazyLoad: [{ type: i0.Output, args: ["lazyLoad"] }], cellEdit: [{ type: i0.Output, args: ["cellEdit"] }], scrollEl: [{ type: i0.ViewChild, args: ['scrollEl', { isSignal: true }] }], theadEl: [{ type: i0.ViewChild, args: ['theadEl', { isSignal: true }] }], editorHost: [{ type: i0.ViewChild, args: ['editorHost', { isSignal: true }] }], cellDefs: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KptCellDef), { isSignal: true }] }], cellEditDefs: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KptCellEditDef), { isSignal: true }] }], rowDetailDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KptRowDetailDef), { isSignal: true }] }] }); })();
10533
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptDataTable, { className: "KptDataTable", filePath: "lib/data-table/data-table.component.ts", lineNumber: 168 }); })();
10751
+ }, template: "@if (filterable() || exportable()) {\n <div class=\"kpt-data-table__toolbar\">\n @if (filterable()) {\n <input\n class=\"kpt-data-table__filter\"\n type=\"search\"\n [attr.placeholder]=\"i18n.t('dataTable.search')\"\n [value]=\"filterText()\"\n (input)=\"onFilter($event)\"\n />\n }\n @if (exportable()) {\n <kpt-button variant=\"outline\" size=\"sm\" (click)=\"exportCsv()\">{{ i18n.t('dataTable.exportCsv') }}</kpt-button>\n }\n </div>\n}\n\n<div class=\"kpt-data-table__scroll\" #scrollEl [style.max-height]=\"scrollHeight()\" (scroll)=\"onScroll($event)\">\n <table\n class=\"kpt-data-table__table\"\n [class.kpt-data-table__table--frozen]=\"hasFrozen()\"\n [class.kpt-data-table__table--virtual]=\"virtualScroll()\"\n >\n <thead #theadEl>\n @if (hasColumnFilters() && filterRowPosition() === 'top') {\n <ng-container [ngTemplateOutlet]=\"filterRowTpl\" />\n }\n <tr>\n @if (hasRowDetail()) {\n <th class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\"></th>\n }\n @if (selectable() === 'multiple') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\">\n <input\n type=\"checkbox\"\n [checked]=\"pageAllSelected()\"\n [indeterminate]=\"pageSomeSelected()\"\n (change)=\"toggleAllOnPage()\"\n [attr.aria-label]=\"i18n.t('dataTable.selectAll')\"\n />\n </th>\n } @else if (selectable() === 'single') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\"></th>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <th\n [attr.draggable]=\"isColDraggable(col) ? true : null\"\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [attr.data-align]=\"col.align ?? 'start'\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n [class.kpt-data-table__th--sortable]=\"col.sortable\"\n [class.kpt-data-table__th--draggable]=\"isColDraggable(col)\"\n [class.kpt-data-table__th--dragover]=\"dragField() !== null && dragField() !== col.field && !col.frozen\"\n [attr.aria-sort]=\"ariaSort(col)\"\n (click)=\"toggleSort(col)\"\n (dragstart)=\"onColDragStart(col.field, $event)\"\n (dragover)=\"reorderable() ? onColDragOver(col.field, $event) : null\"\n (drop)=\"reorderable() ? onColDrop(col.field, $event) : null\"\n (dragend)=\"onColDragEnd()\"\n >\n @if (isColDraggable(col)) {\n <kpt-icon class=\"kpt-data-table__grip\" name=\"grip-vertical\" />\n }\n <span>{{ col.header }}</span>\n @if (col.sortable) {\n <kpt-icon\n class=\"kpt-data-table__sort\"\n [class.kpt-data-table__sort--active]=\"ariaSort(col) !== 'none'\"\n [name]=\"sortIconName(col)\"\n />\n }\n </th>\n }\n </tr>\n @if (hasColumnFilters() && filterRowPosition() === 'bottom') {\n <ng-container [ngTemplateOutlet]=\"filterRowTpl\" />\n }\n </thead>\n <tbody>\n @if (loading()) {\n <tr><td class=\"kpt-data-table__state\" [attr.colspan]=\"colspan()\">{{ i18n.t('dataTable.loading') }}</td></tr>\n } @else if (displayCount() === 0) {\n <tr><td class=\"kpt-data-table__state\" [attr.colspan]=\"colspan()\">{{ emptyText() }}</td></tr>\n } @else if (virtualScroll()) {\n @if (topPad() > 0) {\n <tr class=\"kpt-data-table__spacer\" aria-hidden=\"true\"><td [attr.colspan]=\"colspan()\" [style.height.px]=\"topPad()\"></td></tr>\n }\n @for (row of virtualRows(); track trackRow(row)) {\n <ng-container [ngTemplateOutlet]=\"rowTpl\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n }\n @if (bottomPad() > 0) {\n <tr class=\"kpt-data-table__spacer\" aria-hidden=\"true\"><td [attr.colspan]=\"colspan()\" [style.height.px]=\"bottomPad()\"></td></tr>\n }\n } @else {\n @for (row of paged(); track trackRow(row)) {\n <ng-container [ngTemplateOutlet]=\"rowTpl\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n }\n }\n </tbody>\n @if (hasSummary() && !loading() && displayCount() > 0) {\n <tfoot>\n <tr class=\"kpt-data-table__summary\">\n @if (summaryLabelSpan() > 0) {\n <th\n class=\"kpt-data-table__summary-label\"\n [attr.colspan]=\"summaryLabelSpan()\"\n [class.kpt-data-table__cell--frozen]=\"hasFrozen()\"\n [style.left.px]=\"hasFrozen() ? 0 : null\"\n >\n {{ summaryLabelText() }}\n </th>\n }\n @for (col of visibleOrderedColumns(); track col.field; let i = $index) {\n @if (i >= summaryStartIndex()) {\n <td\n [attr.data-align]=\"col.align ?? 'end'\"\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n >\n {{ summaryText(col.field) }}\n </td>\n }\n }\n </tr>\n </tfoot>\n }\n </table>\n</div>\n\n<ng-template #rowTpl let-row>\n <tr\n [class.kpt-data-table__row--selected]=\"isSelected(row)\"\n [class.kpt-data-table__row--expanded]=\"hasRowDetail() && isExpanded(row)\"\n [style.height.px]=\"virtualScroll() ? rowHeight() : null\"\n (click)=\"onRowClick(row)\"\n >\n @if (hasRowDetail()) {\n <td class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\">\n <button\n type=\"button\"\n class=\"kpt-data-table__expander-btn\"\n [class.kpt-data-table__expander-btn--open]=\"isExpanded(row)\"\n [attr.aria-expanded]=\"isExpanded(row)\"\n [attr.aria-label]=\"i18n.t('dataTable.expandRow')\"\n (click)=\"$event.stopPropagation(); toggleExpand(row)\"\n >\n <kpt-icon name=\"chevron-right\" />\n </button>\n </td>\n }\n @if (selectable() !== 'none') {\n <td class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(row)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleRow(row)\"\n [attr.aria-label]=\"i18n.t('dataTable.selectRow')\"\n />\n </td>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <td\n [attr.data-align]=\"col.align ?? 'start'\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n [class.kpt-data-table__cell--editable]=\"isEditable(col) && !isEditingCell(row, col.field)\"\n [attr.tabindex]=\"isEditable(col) && !isEditingCell(row, col.field) ? 0 : null\"\n [attr.aria-label]=\"isEditable(col) && !isEditingCell(row, col.field) ? i18n.t('dataTable.editCell', { column: col.header }) : null\"\n (click)=\"isEditable(col) ? startEdit(row, col, $event) : null\"\n (keydown.enter)=\"isEditable(col) && !isEditingCell(row, col.field) ? startEdit(row, col, $event) : null\"\n >\n @if (isEditingCell(row, col.field)) {\n <div\n class=\"kpt-data-table__editor\"\n #editorHost\n (click)=\"$event.stopPropagation()\"\n (focusout)=\"onEditorFocusOut($event)\"\n >\n @if (cellEditTemplate(col.field); as etpl) {\n <ng-container\n [ngTemplateOutlet]=\"etpl\"\n [ngTemplateOutletContext]=\"{ $implicit: editingValue(), row, commit: commitEditValue, cancel: cancelEdit }\"\n />\n } @else {\n @switch (col.edit?.type) {\n @case ('text') {\n <kpt-input\n [value]=\"$any(editingValue()) ?? ''\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n (valueChange)=\"editingValue.set($event)\"\n (keydown.enter)=\"commitEdit()\"\n (keydown.escape)=\"cancelEdit()\"\n />\n }\n @case ('number') {\n <kpt-input-number\n [value]=\"$any(editingValue())\"\n [min]=\"col.edit.min\"\n [max]=\"col.edit.max\"\n [step]=\"col.edit.step ?? 1\"\n (valueChange)=\"editingValue.set($event)\"\n (keydown.enter)=\"commitEdit()\"\n (keydown.escape)=\"cancelEdit()\"\n />\n }\n @case ('date') {\n <kpt-datepicker\n [value]=\"$any(editingValue()) ?? ''\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n @case ('select') {\n <kpt-select\n [options]=\"col.edit.options ?? []\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n [value]=\"editingValue()\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n @case ('multiselect') {\n <kpt-select\n multiple\n filter\n [options]=\"col.edit.options ?? []\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n [value]=\"editingValue()\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n }\n }\n </div>\n } @else if (cellTemplate(col.field); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: row, value: getValue(row, col.field) }\"\n />\n } @else {\n {{ getValue(row, col.field) }}\n }\n </td>\n }\n </tr>\n @if (hasRowDetail() && isExpanded(row) && !virtualScroll()) {\n <tr class=\"kpt-data-table__detail-row\">\n <td class=\"kpt-data-table__detail\" [attr.colspan]=\"colspan()\">\n <ng-container [ngTemplateOutlet]=\"rowDetailTpl()\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n </td>\n </tr>\n }\n</ng-template>\n\n<ng-template #filterRowTpl>\n <tr class=\"kpt-data-table__filter-row\">\n @if (hasRowDetail()) {\n <th class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\"></th>\n }\n @if (selectable() !== 'none') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\"></th>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <th\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [attr.data-align]=\"col.align ?? 'start'\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n >\n @switch (col.filter?.type) {\n @case ('text') {\n <input\n class=\"kpt-data-table__fcell\"\n type=\"search\"\n [attr.placeholder]=\"col.filter.placeholder || ''\"\n [attr.aria-label]=\"i18n.t('dataTable.filter', { column: col.header })\"\n [value]=\"$any(columnFilters()[col.field]) || ''\"\n (input)=\"setColumnFilter(col.field, $any($event.target).value)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n @case ('number') {\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"col.filter.placeholder || ''\"\n [attr.aria-label]=\"i18n.t('dataTable.filter', { column: col.header })\"\n [value]=\"$any(columnFilters()[col.field]) || ''\"\n (input)=\"onNumberFilter(col.field, $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n @case ('select') {\n <kpt-select\n [options]=\"col.filter.options || []\"\n [multiple]=\"!!col.filter.multiple\"\n filter\n [placeholder]=\"col.filter.placeholder || i18n.t('dataTable.all')\"\n [value]=\"columnFilters()[col.field] ?? null\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n />\n }\n @case ('numberRange') {\n <div class=\"kpt-data-table__frange\">\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"i18n.t('dataTable.min')\"\n [attr.aria-label]=\"i18n.t('dataTable.filterMin', { column: col.header })\"\n [value]=\"rangeVal(col.field).min\"\n (input)=\"setRangeFilter(col.field, 'min', $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"i18n.t('dataTable.max')\"\n [attr.aria-label]=\"i18n.t('dataTable.filterMax', { column: col.header })\"\n [value]=\"rangeVal(col.field).max\"\n (input)=\"setRangeFilter(col.field, 'max', $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n </div>\n }\n @case ('slider') {\n <div class=\"kpt-data-table__fslider\" (click)=\"$event.stopPropagation()\">\n <kpt-slider\n range\n [min]=\"col.filter.min ?? 0\"\n [max]=\"col.filter.max ?? 100\"\n [step]=\"col.filter.step ?? 1\"\n [value]=\"sliderVal(col)\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n showValue\n />\n </div>\n }\n @case ('dateRange') {\n <kpt-date-range\n [placeholder]=\"col.filter.placeholder || i18n.t('dataTable.dateRange')\"\n [value]=\"$any(columnFilters()[col.field]) || { start: '', end: '' }\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n />\n }\n }\n </th>\n }\n </tr>\n</ng-template>\n\n@if (pageSize() > 0 && !virtualScroll()) {\n <div class=\"kpt-data-table__pager\">\n <ng-content select=\"[kptPaginatorActions]\" />\n <kpt-paginator\n [length]=\"filteredCount()\"\n [pageIndex]=\"pageIndex()\"\n (pageIndexChange)=\"pageIndex.set($event)\"\n [pageSize]=\"pageSizeState()\"\n (pageSizeChange)=\"pageSizeState.set($event)\"\n [pageSizeOptions]=\"pageSizeOptions()\"\n />\n </div>\n}\n", styles: ["@layer kpt.components{.kpt-data-table{display:flex;flex-direction:column;background:var(--kpt-table-bg);color:var(--kpt-table-fg);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-table-border);border-radius:var(--kpt-table-radius, .75rem);overflow:hidden;flex-grow:1}.kpt-data-table__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--kpt-space-3, .75rem);padding:var(--kpt-space-3, .75rem);border-bottom:var(--kpt-border-width-thin, 1px) solid var(--kpt-table-border)}.kpt-data-table__filter{width:100%;max-width:20rem;height:2.25rem;padding-inline:var(--kpt-space-3, .75rem);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-form-field-border);border-radius:var(--kpt-form-field-radius, .5rem);background:var(--kpt-form-field-bg);color:var(--kpt-form-field-text)}.kpt-data-table__filter:focus-visible{outline:none;border-color:var(--kpt-form-field-border-focus);box-shadow:0 0 0 2px color-mix(in oklch,var(--kpt-form-field-border-focus) 30%,transparent)}.kpt-data-table__scroll{overflow:auto}.kpt-data-table__pager{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem)}.kpt-data-table__pager [kptPaginatorActions]{margin-inline-start:.5rem}.kpt-data-table__pager kpt-paginator{flex:1 1 auto;min-width:0}.kpt-data-table__table{width:100%;border-collapse:collapse;font-size:var(--kpt-font-size-sm, .875rem)}.kpt-data-table__table--frozen{width:max-content;min-width:100%}.kpt-data-table__table th,.kpt-data-table__table td{padding:var(--kpt-table-cell-padding, .75rem);text-align:start;border-bottom:var(--kpt-border-width-thin, 1px) solid var(--kpt-table-border)}.kpt-data-table__table th[data-align=center],.kpt-data-table__table td[data-align=center]{text-align:center}.kpt-data-table__table th[data-align=end],.kpt-data-table__table td[data-align=end]{text-align:end}.kpt-data-table__table thead th{position:sticky;top:0;z-index:1;background:var(--kpt-table-header-bg);color:var(--kpt-table-header-fg);font-weight:var(--kpt-font-weight-semibold, 600);white-space:nowrap;-webkit-user-select:none;user-select:none}.kpt-data-table__table thead tr:nth-child(2) th{top:var(--kpt-thead-offset, 0px)}.kpt-data-table__table tfoot th,.kpt-data-table__table tfoot td{position:sticky;bottom:0;z-index:1;background:var(--kpt-table-summary-bg, var(--kpt-table-header-bg));color:var(--kpt-table-header-fg);font-weight:var(--kpt-font-weight-semibold, 600);white-space:nowrap;border-bottom:0;border-top:var(--kpt-border-width-thin, 1px) solid var(--kpt-table-border)}.kpt-data-table__table .kpt-data-table__summary-label{text-align:end}.kpt-data-table__filter-row th{padding:var(--kpt-space-2, .5rem);font-weight:var(--kpt-font-weight-normal, 400);cursor:auto}.kpt-data-table__fcell{width:100%;height:2rem;padding-inline:var(--kpt-space-2, .5rem);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-form-field-border);border-radius:var(--kpt-form-field-radius, .5rem);background:var(--kpt-form-field-bg);color:var(--kpt-form-field-text);font:inherit}.kpt-data-table__fcell:focus-visible{outline:none;border-color:var(--kpt-form-field-border-focus);box-shadow:0 0 0 2px color-mix(in oklch,var(--kpt-form-field-border-focus) 30%,transparent)}.kpt-data-table__filter-row kpt-select,.kpt-data-table__filter-row kpt-date-range{display:block;width:100%;font-weight:var(--kpt-font-weight-normal, 400)}.kpt-data-table__frange{display:flex;gap:var(--kpt-space-2, .5rem)}.kpt-data-table__frange .kpt-data-table__fcell{min-width:0}.kpt-data-table__fslider .kpt-slider-host{width:100%}.kpt-data-table__fslider .kpt-slider__value{min-width:auto;font-size:var(--kpt-font-size-xs, .75rem);color:var(--kpt-color-on-surface-muted)}.kpt-data-table__th--sortable{cursor:pointer}.kpt-data-table__th--sortable:hover{color:var(--kpt-color-on-surface)}.kpt-data-table__cell--editable{cursor:pointer}.kpt-data-table__cell--editable:hover{background:var(--kpt-table-row-hover)}.kpt-data-table__cell--editable:focus-visible{outline:var(--kpt-border-width-medium, 2px) solid var(--kpt-color-focus-ring);outline-offset:-2px}.kpt-data-table__editor{display:block;min-width:8rem}.kpt-data-table__editor .kpt-input-number-host{max-width:6.5rem}.kpt-data-table__editor .kpt-input-number__btn{width:1.75rem}.kpt-data-table__sort{margin-inline-start:.35em;opacity:.35}.kpt-data-table__sort--active{opacity:1}.kpt-data-table__th--draggable{cursor:grab}.kpt-data-table__th--draggable:active{cursor:grabbing}.kpt-data-table__th--dragover{box-shadow:inset 2px 0 0 0 var(--kpt-color-primary)}.kpt-data-table__grip{margin-inline-end:.4em;opacity:.45}.kpt-data-table__checkbox{width:1px;white-space:nowrap;text-align:center}.kpt-data-table__checkbox input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;display:inline-block;width:1.15rem;height:1.15rem;margin:0;vertical-align:middle;cursor:pointer;border:var(--kpt-border-width-medium, 2px) solid var(--kpt-form-field-border);border-radius:var(--kpt-radius-sm, .25rem);background:var(--kpt-form-field-bg);transition:background-color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard),border-color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-data-table__checkbox input[type=checkbox]:after{content:\"\";position:absolute;inset:0;opacity:0;background-color:var(--kpt-color-on-primary);transition:opacity var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard);-webkit-mask:no-repeat center/.85rem;mask:no-repeat center/.85rem}.kpt-data-table__checkbox input[type=checkbox]:checked,.kpt-data-table__checkbox input[type=checkbox]:indeterminate{background:var(--kpt-color-primary);border-color:var(--kpt-color-primary)}.kpt-data-table__checkbox input[type=checkbox]:checked:after{opacity:1;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13 4.5 6.5 11 3 7.5' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13 4.5 6.5 11 3 7.5' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")}.kpt-data-table__checkbox input[type=checkbox]:indeterminate:after{opacity:1;-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8h9' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8h9' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round'/%3E%3C/svg%3E\")}.kpt-data-table__checkbox input[type=checkbox]:focus-visible{outline:var(--kpt-border-width-medium, 2px) solid var(--kpt-color-focus-ring);outline-offset:2px}.kpt-data-table__expander{width:2.5rem;min-width:2.5rem;text-align:center;white-space:nowrap}.kpt-data-table__expander-btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border:none;border-radius:var(--kpt-radius-sm, .25rem);background:transparent;color:var(--kpt-color-on-surface-muted);cursor:pointer;transition:background-color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard),color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-data-table__expander-btn kpt-icon{display:inline-flex;transition:transform var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-data-table__expander-btn:hover{background:var(--kpt-table-row-hover);color:var(--kpt-color-on-surface)}.kpt-data-table__expander-btn:focus-visible{outline:var(--kpt-border-width-medium, 2px) solid var(--kpt-color-focus-ring);outline-offset:2px}.kpt-data-table__expander-btn--open{color:var(--kpt-color-primary)}.kpt-data-table__expander-btn--open kpt-icon{transform:rotate(90deg)}.kpt-data-table__detail-row>.kpt-data-table__detail{padding:var(--kpt-space-4, 1rem);background:var(--kpt-table-detail-bg, var(--kpt-color-surface-variant, var(--kpt-table-row-hover)));border-bottom:var(--kpt-border-width-thin, 1px) solid var(--kpt-table-border);box-shadow:inset 3px 0 0 0 var(--kpt-color-primary)}.kpt-data-table tbody tr{transition:background-color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-data-table tbody tr:hover{background:var(--kpt-table-row-hover)}.kpt-data-table tbody tr.kpt-data-table__detail-row:hover{background:transparent}.kpt-data-table__row--selected{background:var(--kpt-table-row-selected)!important}.kpt-data-table__row--expanded{background:var(--kpt-table-row-hover)}.kpt-data-table__table--frozen .kpt-data-table__checkbox{width:3rem;min-width:3rem}.kpt-data-table__table--frozen .kpt-data-table__expander{width:2.5rem;min-width:2.5rem}.kpt-data-table__cell--frozen{position:sticky;z-index:1;background:var(--kpt-table-bg);border-inline-end:var(--kpt-border-width-thin, 1px) solid var(--kpt-table-border)}.kpt-data-table thead th.kpt-data-table__cell--frozen{z-index:3;background:var(--kpt-table-header-bg)}.kpt-data-table tfoot th.kpt-data-table__cell--frozen,.kpt-data-table tfoot td.kpt-data-table__cell--frozen{z-index:3;background:var(--kpt-table-summary-bg, var(--kpt-table-header-bg))}.kpt-data-table tbody tr:hover .kpt-data-table__cell--frozen{background:var(--kpt-table-row-hover)}.kpt-data-table__row--selected.kpt-data-table__row--selected .kpt-data-table__cell--frozen,.kpt-data-table tbody tr.kpt-data-table__row--selected .kpt-data-table__cell--frozen{background:var(--kpt-table-row-selected)}.kpt-data-table__state{padding:var(--kpt-space-8, 2rem)!important;text-align:center!important;color:var(--kpt-color-on-surface-muted)}.kpt-data-table__table--virtual td{padding-block:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.kpt-data-table__spacer td{padding:0!important;border:0!important}.kpt-data-table tbody tr:last-child td{border-bottom:0}}\n"] }]
10752
+ }], () => [], { columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: true }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], filterable: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterable", required: false }] }], filterRowPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterRowPosition", required: false }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: false }] }], pageSizeOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizeOptions", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyMessage", required: false }] }], rowKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowKey", required: false }] }], scrollHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollHeight", required: false }] }], virtualScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualScroll", required: false }] }], rowHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowHeight", required: false }] }], reorderable: [{ type: i0.Input, args: [{ isSignal: true, alias: "reorderable", required: false }] }], exportable: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportable", required: false }] }], exportFilename: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportFilename", required: false }] }], lazy: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazy", required: false }] }], totalRecords: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalRecords", required: false }] }], expandable: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandable", required: false }] }], multiExpand: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiExpand", required: false }] }], summaryLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "summaryLabel", required: false }] }], summaryValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "summaryValues", required: false }] }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }, { type: i0.Output, args: ["selectionChange"] }], expandedRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedRows", required: false }] }, { type: i0.Output, args: ["expandedRowsChange"] }], hiddenFields: [{ type: i0.Input, args: [{ isSignal: true, alias: "hiddenFields", required: false }] }, { type: i0.Output, args: ["hiddenFieldsChange"] }], rowClick: [{ type: i0.Output, args: ["rowClick"] }], lazyLoad: [{ type: i0.Output, args: ["lazyLoad"] }], cellEdit: [{ type: i0.Output, args: ["cellEdit"] }], scrollEl: [{ type: i0.ViewChild, args: ['scrollEl', { isSignal: true }] }], theadEl: [{ type: i0.ViewChild, args: ['theadEl', { isSignal: true }] }], editorHost: [{ type: i0.ViewChild, args: ['editorHost', { isSignal: true }] }], cellDefs: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KptCellDef), { isSignal: true }] }], cellEditDefs: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KptCellEditDef), { isSignal: true }] }], rowDetailDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KptRowDetailDef), { isSignal: true }] }] }); })();
10753
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptDataTable, { className: "KptDataTable", filePath: "lib/data-table/data-table.component.ts", lineNumber: 157 }); })();
10534
10754
 
10535
10755
  const _c0$d = a0 => ({ $implicit: a0, level: 0 });
10536
10756
  const _c1$4 = (a0, a1) => ({ $implicit: a0, level: a1 });
@@ -11909,7 +12129,7 @@ function KptMenu_ng_template_3_Template(rf, ctx) { if (rf & 1) {
11909
12129
  * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`
11910
12130
  *
11911
12131
  * @example
11912
- * <kpt-menu [items]="items" (select)="onSelect($event)">
12132
+ * <kpt-menu [items]="items" (selected)="onSelect($event)">
11913
12133
  * <kpt-button variant="outline">Opcje</kpt-button>
11914
12134
  * </kpt-menu>
11915
12135
  */
@@ -11917,7 +12137,7 @@ class KptMenu {
11917
12137
  constructor() {
11918
12138
  this.items = input([], /* @ts-ignore */
11919
12139
  ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
11920
- this.select = output();
12140
+ this.selected = output();
11921
12141
  this.open = signal(false, /* @ts-ignore */
11922
12142
  ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
11923
12143
  this.positions = [
@@ -11935,11 +12155,11 @@ class KptMenu {
11935
12155
  pick(item) {
11936
12156
  if (item.disabled)
11937
12157
  return;
11938
- this.select.emit(item);
12158
+ this.selected.emit(item);
11939
12159
  this.close();
11940
12160
  }
11941
12161
  static { this.ɵfac = function KptMenu_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptMenu)(); }; }
11942
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptMenu, selectors: [["kpt-menu"]], hostAttrs: [1, "kpt-menu-host"], inputs: { items: [1, "items"] }, outputs: { select: "select" }, ngContentSelectors: _c0$5, decls: 4, vars: 4, consts: [["origin", "cdkOverlayOrigin"], ["cdkOverlayOrigin", "", 1, "kpt-menu__trigger", 3, "click"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "detach", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["role", "menu", 1, "kpt-menu__panel"], ["role", "separator", 1, "kpt-menu__separator"], ["role", "presentation", 1, "kpt-menu__header"], ["type", "button", "role", "menuitem", 1, "kpt-menu__item", 3, "kpt-menu__item--danger", "disabled"], ["size", "sm", 3, "src", "name", "icon"], [3, "name"], [1, "kpt-menu__text"], [1, "kpt-menu__label"], [1, "kpt-menu__description"], ["type", "button", "role", "menuitem", 1, "kpt-menu__item", 3, "click", "disabled"], [1, "kpt-menu__badge", 3, "value", "variant"]], template: function KptMenu_Template(rf, ctx) { if (rf & 1) {
12162
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptMenu, selectors: [["kpt-menu"]], hostAttrs: [1, "kpt-menu-host"], inputs: { items: [1, "items"] }, outputs: { selected: "selected" }, ngContentSelectors: _c0$5, decls: 4, vars: 4, consts: [["origin", "cdkOverlayOrigin"], ["cdkOverlayOrigin", "", 1, "kpt-menu__trigger", 3, "click"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "detach", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["role", "menu", 1, "kpt-menu__panel"], ["role", "separator", 1, "kpt-menu__separator"], ["role", "presentation", 1, "kpt-menu__header"], ["type", "button", "role", "menuitem", 1, "kpt-menu__item", 3, "kpt-menu__item--danger", "disabled"], ["size", "sm", 3, "src", "name", "icon"], [3, "name"], [1, "kpt-menu__text"], [1, "kpt-menu__label"], [1, "kpt-menu__description"], ["type", "button", "role", "menuitem", 1, "kpt-menu__item", 3, "click", "disabled"], [1, "kpt-menu__badge", 3, "value", "variant"]], template: function KptMenu_Template(rf, ctx) { if (rf & 1) {
11943
12163
  i0.ɵɵprojectionDef();
11944
12164
  i0.ɵɵelementStart(0, "span", 1, 0);
11945
12165
  i0.ɵɵlistener("click", function KptMenu_Template_span_click_0_listener() { return ctx.toggle(); });
@@ -12014,7 +12234,7 @@ class KptMenu {
12014
12234
  </div>
12015
12235
  </ng-template>
12016
12236
  `, host: { class: 'kpt-menu-host' }, styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-menu-host{display:inline-flex}.kpt-menu__trigger{display:inline-flex;cursor:pointer}.kpt-menu__panel{min-width:11rem;padding:.25rem;background:var(--kpt-color-surface-raised);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem);box-shadow:var(--kpt-elevation-3)}.kpt-menu__item{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);width:100%;padding:.5rem .6rem;border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);font:inherit;font-size:var(--kpt-font-size-sm, .875rem);text-align:start;cursor:pointer}.kpt-menu__item:hover:not(:disabled){background:var(--kpt-color-surface-variant)}.kpt-menu__item:disabled{opacity:.45;cursor:not-allowed}.kpt-menu__item--danger{color:var(--kpt-color-danger)}.kpt-menu__item kpt-icon{color:var(--kpt-color-on-surface-muted)}.kpt-menu__item--danger kpt-icon{color:var(--kpt-color-danger)}.kpt-menu__header{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);padding:.5rem .6rem;font-size:var(--kpt-font-size-sm, .875rem);cursor:default}.kpt-menu__header .kpt-menu__label{font-weight:var(--kpt-font-weight-semibold, 600)}.kpt-menu__header kpt-icon{color:var(--kpt-color-on-surface-muted)}.kpt-menu__text{display:flex;flex-direction:column;min-width:0}.kpt-menu__label,.kpt-menu__description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpt-menu__description{color:var(--kpt-color-on-surface-muted);font-size:var(--kpt-font-size-xs, .75rem)}.kpt-menu__badge{margin-inline-start:auto}.kpt-menu__separator{height:1px;margin:.25rem 0;background:var(--kpt-color-border)}}\n"] }]
12017
- }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], select: [{ type: i0.Output, args: ["select"] }] }); })();
12237
+ }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }] }); })();
12018
12238
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptMenu, { className: "KptMenu", filePath: "lib/menu/menu.component.ts", lineNumber: 116 }); })();
12019
12239
 
12020
12240
  const _c0$4 = [[["", "kptPopoverTrigger", ""]], "*"];
@@ -12467,7 +12687,7 @@ function KptContextMenu_Conditional_2_Template(rf, ctx) { if (rf & 1) {
12467
12687
  * Menu kontekstowe (PPM) na obszarze projekcji. Panel pozycjonowany do kursora.
12468
12688
  *
12469
12689
  * @example
12470
- * <kpt-context-menu [items]="items" (select)="onSelect($event)">
12690
+ * <kpt-context-menu [items]="items" (selected)="onSelect($event)">
12471
12691
  * <div class="obszar">Kliknij prawym przyciskiem</div>
12472
12692
  * </kpt-context-menu>
12473
12693
  */
@@ -12475,7 +12695,7 @@ class KptContextMenu {
12475
12695
  constructor() {
12476
12696
  this.items = input([], /* @ts-ignore */
12477
12697
  ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
12478
- this.select = output();
12698
+ this.selected = output();
12479
12699
  this.open = signal(false, /* @ts-ignore */
12480
12700
  ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
12481
12701
  this.x = signal(0, /* @ts-ignore */
@@ -12495,11 +12715,11 @@ class KptContextMenu {
12495
12715
  pick(item) {
12496
12716
  if (item.disabled)
12497
12717
  return;
12498
- this.select.emit(item);
12718
+ this.selected.emit(item);
12499
12719
  this.close();
12500
12720
  }
12501
12721
  static { this.ɵfac = function KptContextMenu_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptContextMenu)(); }; }
12502
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptContextMenu, selectors: [["kpt-context-menu"]], hostAttrs: [1, "kpt-context-menu-host"], inputs: { items: [1, "items"] }, outputs: { select: "select" }, ngContentSelectors: _c0$2, decls: 3, vars: 1, consts: [[1, "kpt-context-menu__area", 3, "contextmenu"], [1, "kpt-context-menu__backdrop", 3, "click", "contextmenu"], ["role", "menu", 1, "kpt-context-menu__panel"], ["role", "separator", 1, "kpt-context-menu__separator"], ["role", "presentation", 1, "kpt-context-menu__header"], ["type", "button", "role", "menuitem", 1, "kpt-context-menu__item", 3, "kpt-context-menu__item--danger", "disabled"], ["size", "sm", 3, "src", "name", "icon"], [3, "name"], [1, "kpt-context-menu__text"], [1, "kpt-context-menu__label"], [1, "kpt-context-menu__description"], ["type", "button", "role", "menuitem", 1, "kpt-context-menu__item", 3, "click", "disabled"], [1, "kpt-context-menu__badge", 3, "value", "variant"]], template: function KptContextMenu_Template(rf, ctx) { if (rf & 1) {
12722
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptContextMenu, selectors: [["kpt-context-menu"]], hostAttrs: [1, "kpt-context-menu-host"], inputs: { items: [1, "items"] }, outputs: { selected: "selected" }, ngContentSelectors: _c0$2, decls: 3, vars: 1, consts: [[1, "kpt-context-menu__area", 3, "contextmenu"], [1, "kpt-context-menu__backdrop", 3, "click", "contextmenu"], ["role", "menu", 1, "kpt-context-menu__panel"], ["role", "separator", 1, "kpt-context-menu__separator"], ["role", "presentation", 1, "kpt-context-menu__header"], ["type", "button", "role", "menuitem", 1, "kpt-context-menu__item", 3, "kpt-context-menu__item--danger", "disabled"], ["size", "sm", 3, "src", "name", "icon"], [3, "name"], [1, "kpt-context-menu__text"], [1, "kpt-context-menu__label"], [1, "kpt-context-menu__description"], ["type", "button", "role", "menuitem", 1, "kpt-context-menu__item", 3, "click", "disabled"], [1, "kpt-context-menu__badge", 3, "value", "variant"]], template: function KptContextMenu_Template(rf, ctx) { if (rf & 1) {
12503
12723
  i0.ɵɵprojectionDef();
12504
12724
  i0.ɵɵelementStart(0, "div", 0);
12505
12725
  i0.ɵɵlistener("contextmenu", function KptContextMenu_Template_div_contextmenu_0_listener($event) { return ctx.onContext($event); });
@@ -12572,7 +12792,7 @@ class KptContextMenu {
12572
12792
  </div>
12573
12793
  }
12574
12794
  `, host: { class: 'kpt-context-menu-host' }, styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-context-menu-host{display:block}.kpt-context-menu__area{display:contents}.kpt-context-menu__backdrop{position:fixed;inset:0;z-index:var(--kpt-z-overlay, 1000)}.kpt-context-menu__panel{position:fixed;z-index:calc(var(--kpt-z-overlay, 1000) + 1);min-width:11rem;padding:var(--kpt-space-1, .25rem);background:var(--kpt-color-surface-raised);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem);box-shadow:var(--kpt-elevation-3)}.kpt-context-menu__item{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);width:100%;padding:var(--kpt-space-2, .5rem) var(--kpt-space-3, .75rem);border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);font-size:var(--kpt-font-size-sm, .875rem);text-align:left;cursor:pointer}.kpt-context-menu__item:hover:not(:disabled){background:var(--kpt-color-muted)}.kpt-context-menu__item:disabled{opacity:.5;cursor:not-allowed}.kpt-context-menu__item--danger{color:var(--kpt-color-danger)}.kpt-context-menu__header{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);padding:var(--kpt-space-2, .5rem) var(--kpt-space-3, .75rem);font-size:var(--kpt-font-size-sm, .875rem);cursor:default}.kpt-context-menu__header .kpt-context-menu__label{font-weight:var(--kpt-font-weight-semibold, 600)}.kpt-context-menu__header kpt-icon{color:var(--kpt-color-on-surface-muted)}.kpt-context-menu__text{display:flex;flex-direction:column;min-width:0}.kpt-context-menu__label,.kpt-context-menu__description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpt-context-menu__description{color:var(--kpt-color-on-surface-muted);font-size:var(--kpt-font-size-xs, .75rem)}.kpt-context-menu__badge{margin-inline-start:auto}.kpt-context-menu__separator{height:1px;margin:var(--kpt-space-1, .25rem) 0;background:var(--kpt-color-border)}}\n"] }]
12575
- }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], select: [{ type: i0.Output, args: ["select"] }] }); })();
12795
+ }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }] }); })();
12576
12796
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptContextMenu, { className: "KptContextMenu", filePath: "lib/context-menu/context-menu.component.ts", lineNumber: 82 }); })();
12577
12797
 
12578
12798
  function KptMenubar_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
@@ -12662,13 +12882,13 @@ function KptMenubar_For_2_Template(rf, ctx) { if (rf & 1) {
12662
12882
  * `import '@angular/cdk/overlay-prebuilt.css';`
12663
12883
  *
12664
12884
  * @example
12665
- * <kpt-menubar [items]="items" (select)="onSelect($event)" />
12885
+ * <kpt-menubar [items]="items" (selected)="onSelect($event)" />
12666
12886
  */
12667
12887
  class KptMenubar {
12668
12888
  constructor() {
12669
12889
  this.items = input([], /* @ts-ignore */
12670
12890
  ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
12671
- this.select = output();
12891
+ this.selected = output();
12672
12892
  this.openIndex = signal(null, /* @ts-ignore */
12673
12893
  ...(ngDevMode ? [{ debugName: "openIndex" }] : /* istanbul ignore next */ []));
12674
12894
  this.positions = [
@@ -12683,21 +12903,21 @@ class KptMenubar {
12683
12903
  this.openIndex.update((cur) => (cur === i ? null : i));
12684
12904
  }
12685
12905
  else {
12686
- this.select.emit(item);
12906
+ this.selected.emit(item);
12687
12907
  this.closeAll();
12688
12908
  }
12689
12909
  }
12690
12910
  pick(item) {
12691
12911
  if (item.disabled)
12692
12912
  return;
12693
- this.select.emit(item);
12913
+ this.selected.emit(item);
12694
12914
  this.closeAll();
12695
12915
  }
12696
12916
  closeAll() {
12697
12917
  this.openIndex.set(null);
12698
12918
  }
12699
12919
  static { this.ɵfac = function KptMenubar_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptMenubar)(); }; }
12700
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptMenubar, selectors: [["kpt-menubar"]], hostAttrs: [1, "kpt-menubar-host"], inputs: { items: [1, "items"] }, outputs: { select: "select" }, decls: 3, vars: 0, consts: [["origin", "cdkOverlayOrigin"], ["role", "menubar", 1, "kpt-menubar"], [1, "kpt-menubar__group"], ["type", "button", "role", "menuitem", "cdkOverlayOrigin", "", 1, "kpt-menubar__top", 3, "click", "disabled"], [3, "name"], ["name", "chevron-down", 1, "kpt-menubar__caret"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "detach", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["role", "menu", 1, "kpt-menubar__dropdown"], ["role", "separator", 1, "kpt-menubar__separator"], ["type", "button", "role", "menuitem", 1, "kpt-menubar__item", 3, "kpt-menubar__item--danger", "disabled"], ["type", "button", "role", "menuitem", 1, "kpt-menubar__item", 3, "click", "disabled"]], template: function KptMenubar_Template(rf, ctx) { if (rf & 1) {
12920
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptMenubar, selectors: [["kpt-menubar"]], hostAttrs: [1, "kpt-menubar-host"], inputs: { items: [1, "items"] }, outputs: { selected: "selected" }, decls: 3, vars: 0, consts: [["origin", "cdkOverlayOrigin"], ["role", "menubar", 1, "kpt-menubar"], [1, "kpt-menubar__group"], ["type", "button", "role", "menuitem", "cdkOverlayOrigin", "", 1, "kpt-menubar__top", 3, "click", "disabled"], [3, "name"], ["name", "chevron-down", 1, "kpt-menubar__caret"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "detach", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["role", "menu", 1, "kpt-menubar__dropdown"], ["role", "separator", 1, "kpt-menubar__separator"], ["type", "button", "role", "menuitem", 1, "kpt-menubar__item", 3, "kpt-menubar__item--danger", "disabled"], ["type", "button", "role", "menuitem", 1, "kpt-menubar__item", 3, "click", "disabled"]], template: function KptMenubar_Template(rf, ctx) { if (rf & 1) {
12701
12921
  i0.ɵɵelementStart(0, "nav", 1);
12702
12922
  i0.ɵɵrepeaterCreate(1, KptMenubar_For_2_Template, 8, 10, "div", 2, i0.ɵɵrepeaterTrackByIndex);
12703
12923
  i0.ɵɵelementEnd();
@@ -12761,7 +12981,7 @@ class KptMenubar {
12761
12981
  }
12762
12982
  </nav>
12763
12983
  `, host: { class: 'kpt-menubar-host' }, styles: ["@layer kpt.components{.kpt-menubar-host{display:block}.kpt-menubar{display:flex;align-items:center;gap:var(--kpt-space-1, .25rem);padding:var(--kpt-space-1, .25rem);background:var(--kpt-color-surface-raised);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem)}.kpt-menubar__group{display:inline-flex}.kpt-menubar__top{display:inline-flex;align-items:center;gap:var(--kpt-space-2, .5rem);padding:var(--kpt-space-2, .5rem) var(--kpt-space-3, .75rem);border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);font-size:var(--kpt-font-size-sm, .875rem);cursor:pointer}.kpt-menubar__top:hover:not(:disabled),.kpt-menubar__top.is-open{background:var(--kpt-color-muted)}.kpt-menubar__top:disabled{opacity:.5;cursor:not-allowed}.kpt-menubar__caret{opacity:.6}.kpt-menubar__dropdown{min-width:12rem;padding:var(--kpt-space-1, .25rem);background:var(--kpt-color-surface-raised);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem);box-shadow:var(--kpt-elevation-3)}.kpt-menubar__item{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);width:100%;padding:var(--kpt-space-2, .5rem) var(--kpt-space-3, .75rem);border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);font-size:var(--kpt-font-size-sm, .875rem);text-align:left;cursor:pointer}.kpt-menubar__item:hover:not(:disabled){background:var(--kpt-color-muted)}.kpt-menubar__item:disabled{opacity:.5;cursor:not-allowed}.kpt-menubar__item--danger{color:var(--kpt-color-danger)}.kpt-menubar__separator{height:1px;margin:var(--kpt-space-1, .25rem) 0;background:var(--kpt-color-border)}}\n"] }]
12764
- }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], select: [{ type: i0.Output, args: ["select"] }] }); })();
12984
+ }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }] }); })();
12765
12985
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptMenubar, { className: "KptMenubar", filePath: "lib/menubar/menubar.component.ts", lineNumber: 76 }); })();
12766
12986
 
12767
12987
  const _c0$1 = () => [];
@@ -12851,13 +13071,13 @@ function KptMegamenu_ng_template_4_Template(rf, ctx) { if (rf & 1) {
12851
13071
  * `import '@angular/cdk/overlay-prebuilt.css';`
12852
13072
  *
12853
13073
  * @example
12854
- * <kpt-megamenu [items]="items" (select)="onSelect($event)" />
13074
+ * <kpt-megamenu [items]="items" (selected)="onSelect($event)" />
12855
13075
  */
12856
13076
  class KptMegamenu {
12857
13077
  constructor() {
12858
13078
  this.items = input([], /* @ts-ignore */
12859
13079
  ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
12860
- this.select = output();
13080
+ this.selected = output();
12861
13081
  this.openIndex = signal(null, /* @ts-ignore */
12862
13082
  ...(ngDevMode ? [{ debugName: "openIndex" }] : /* istanbul ignore next */ []));
12863
13083
  this.positions = [
@@ -12875,14 +13095,14 @@ class KptMegamenu {
12875
13095
  pick(link) {
12876
13096
  if (link.disabled)
12877
13097
  return;
12878
- this.select.emit(link);
13098
+ this.selected.emit(link);
12879
13099
  this.closeAll();
12880
13100
  }
12881
13101
  closeAll() {
12882
13102
  this.openIndex.set(null);
12883
13103
  }
12884
13104
  static { this.ɵfac = function KptMegamenu_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptMegamenu)(); }; }
12885
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptMegamenu, selectors: [["kpt-megamenu"]], hostAttrs: [1, "kpt-megamenu-host"], inputs: { items: [1, "items"] }, outputs: { select: "select" }, decls: 5, vars: 4, consts: [["origin", "cdkOverlayOrigin"], ["role", "menubar", "cdkOverlayOrigin", "", 1, "kpt-megamenu"], ["type", "button", "role", "menuitem", 1, "kpt-megamenu__top", 3, "is-open"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "detach", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["type", "button", "role", "menuitem", 1, "kpt-megamenu__top", 3, "click"], [3, "name"], ["name", "chevron-down", 1, "kpt-megamenu__caret"], ["role", "menu", 1, "kpt-megamenu__panel"], [1, "kpt-megamenu__column"], [1, "kpt-megamenu__col-title"], ["type", "button", 1, "kpt-megamenu__link", 3, "disabled"], ["type", "button", 1, "kpt-megamenu__link", 3, "click", "disabled"]], template: function KptMegamenu_Template(rf, ctx) { if (rf & 1) {
13105
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptMegamenu, selectors: [["kpt-megamenu"]], hostAttrs: [1, "kpt-megamenu-host"], inputs: { items: [1, "items"] }, outputs: { selected: "selected" }, decls: 5, vars: 4, consts: [["origin", "cdkOverlayOrigin"], ["role", "menubar", "cdkOverlayOrigin", "", 1, "kpt-megamenu"], ["type", "button", "role", "menuitem", 1, "kpt-megamenu__top", 3, "is-open"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "detach", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["type", "button", "role", "menuitem", 1, "kpt-megamenu__top", 3, "click"], [3, "name"], ["name", "chevron-down", 1, "kpt-megamenu__caret"], ["role", "menu", 1, "kpt-megamenu__panel"], [1, "kpt-megamenu__column"], [1, "kpt-megamenu__col-title"], ["type", "button", 1, "kpt-megamenu__link", 3, "disabled"], ["type", "button", 1, "kpt-megamenu__link", 3, "click", "disabled"]], template: function KptMegamenu_Template(rf, ctx) { if (rf & 1) {
12886
13106
  i0.ɵɵelementStart(0, "nav", 1, 0);
12887
13107
  i0.ɵɵrepeaterCreate(2, KptMegamenu_For_3_Template, 5, 4, "button", 2, i0.ɵɵrepeaterTrackByIndex);
12888
13108
  i0.ɵɵelementEnd();
@@ -12940,7 +13160,7 @@ class KptMegamenu {
12940
13160
  </div>
12941
13161
  </ng-template>
12942
13162
  `, host: { class: 'kpt-megamenu-host' }, styles: ["@layer kpt.components{.kpt-megamenu-host{display:block}.kpt-megamenu{position:relative;display:flex;align-items:center;gap:var(--kpt-space-1, .25rem);padding:var(--kpt-space-1, .25rem);background:var(--kpt-color-surface-raised);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem)}.kpt-megamenu__top{display:inline-flex;align-items:center;gap:var(--kpt-space-2, .5rem);padding:var(--kpt-space-2, .5rem) var(--kpt-space-3, .75rem);border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);font-size:var(--kpt-font-size-sm, .875rem);cursor:pointer}.kpt-megamenu__top:hover,.kpt-megamenu__top.is-open{background:var(--kpt-color-muted)}.kpt-megamenu__caret{opacity:.6}.kpt-megamenu__panel{display:flex;gap:var(--kpt-space-6, 1.5rem);min-width:min(40rem,90vw);padding:var(--kpt-space-4, 1rem);background:var(--kpt-color-surface-raised);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem);box-shadow:var(--kpt-elevation-3)}.kpt-megamenu__column{min-width:9rem}.kpt-megamenu__col-title{margin-bottom:var(--kpt-space-2, .5rem);font-size:var(--kpt-font-size-xs, .75rem);font-weight:var(--kpt-font-weight-semibold, 600);text-transform:uppercase;letter-spacing:.04em;color:var(--kpt-color-on-surface-muted)}.kpt-megamenu__link{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);width:100%;padding:var(--kpt-space-2, .5rem);border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);font-size:var(--kpt-font-size-sm, .875rem);text-align:left;cursor:pointer}.kpt-megamenu__link:hover:not(:disabled){background:var(--kpt-color-muted)}.kpt-megamenu__link:disabled{opacity:.5;cursor:not-allowed}}\n"] }]
12943
- }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], select: [{ type: i0.Output, args: ["select"] }] }); })();
13163
+ }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }] }); })();
12944
13164
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptMegamenu, { className: "KptMegamenu", filePath: "lib/megamenu/megamenu.component.ts", lineNumber: 66 }); })();
12945
13165
 
12946
13166
  /**
@@ -13162,7 +13382,7 @@ function KptSpeedDial_Conditional_7_Template(rf, ctx) { if (rf & 1) {
13162
13382
  * Speed dial — FAB rozwijający zestaw akcji. Buduje na `kpt-fab`.
13163
13383
  *
13164
13384
  * @example
13165
- * <kpt-speed-dial [items]="actions" direction="up" (select)="onAction($event)" />
13385
+ * <kpt-speed-dial [items]="actions" direction="up" (selected)="onAction($event)" />
13166
13386
  */
13167
13387
  class KptSpeedDial {
13168
13388
  constructor() {
@@ -13175,7 +13395,7 @@ class KptSpeedDial {
13175
13395
  /** Etykieta a11y FAB (stan zamknięty); bez wartości używa i18n (`speedDial.actions`). */
13176
13396
  this.ariaLabel = input(/* @ts-ignore */
13177
13397
  ...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
13178
- this.select = output();
13398
+ this.selected = output();
13179
13399
  this.i18n = inject(KptI18n);
13180
13400
  this.effectiveAriaLabel = computed(() => this.ariaLabel() ?? this.i18n.t('speedDial.actions'), /* @ts-ignore */
13181
13401
  ...(ngDevMode ? [{ debugName: "effectiveAriaLabel" }] : /* istanbul ignore next */ []));
@@ -13191,11 +13411,11 @@ class KptSpeedDial {
13191
13411
  pick(item) {
13192
13412
  if (item.disabled)
13193
13413
  return;
13194
- this.select.emit(item);
13414
+ this.selected.emit(item);
13195
13415
  this.close();
13196
13416
  }
13197
13417
  static { this.ɵfac = function KptSpeedDial_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptSpeedDial)(); }; }
13198
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptSpeedDial, selectors: [["kpt-speed-dial"]], hostAttrs: [1, "kpt-speed-dial-host"], inputs: { items: [1, "items"], direction: [1, "direction"], icon: [1, "icon"], ariaLabel: [1, "ariaLabel"] }, outputs: { select: "select" }, decls: 8, vars: 6, consts: [[1, "kpt-speed-dial"], [1, "kpt-speed-dial__actions"], ["type", "button", 1, "kpt-speed-dial__action", 3, "disabled"], [3, "click", "ariaLabel"], [1, "kpt-speed-dial__trigger-icon"], [3, "name"], [1, "kpt-speed-dial__backdrop"], ["type", "button", 1, "kpt-speed-dial__action", 3, "click", "disabled"], [1, "kpt-speed-dial__label"], [1, "kpt-speed-dial__backdrop", 3, "click"]], template: function KptSpeedDial_Template(rf, ctx) { if (rf & 1) {
13418
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptSpeedDial, selectors: [["kpt-speed-dial"]], hostAttrs: [1, "kpt-speed-dial-host"], inputs: { items: [1, "items"], direction: [1, "direction"], icon: [1, "icon"], ariaLabel: [1, "ariaLabel"] }, outputs: { selected: "selected" }, decls: 8, vars: 6, consts: [[1, "kpt-speed-dial"], [1, "kpt-speed-dial__actions"], ["type", "button", 1, "kpt-speed-dial__action", 3, "disabled"], [3, "click", "ariaLabel"], [1, "kpt-speed-dial__trigger-icon"], [3, "name"], [1, "kpt-speed-dial__backdrop"], ["type", "button", 1, "kpt-speed-dial__action", 3, "click", "disabled"], [1, "kpt-speed-dial__label"], [1, "kpt-speed-dial__backdrop", 3, "click"]], template: function KptSpeedDial_Template(rf, ctx) { if (rf & 1) {
13199
13419
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
13200
13420
  i0.ɵɵrepeaterCreate(2, KptSpeedDial_For_3_Template, 3, 4, "button", 2, i0.ɵɵrepeaterTrackByIndex);
13201
13421
  i0.ɵɵelementEnd();
@@ -13236,7 +13456,7 @@ class KptSpeedDial {
13236
13456
  </div>
13237
13457
  @if (open()) { <div class="kpt-speed-dial__backdrop" (click)="close()"></div> }
13238
13458
  `, host: { class: 'kpt-speed-dial-host' }, styles: ["@layer kpt.components{.kpt-speed-dial-host{display:inline-block}.kpt-speed-dial{position:relative;display:inline-flex;z-index:calc(var(--kpt-z-overlay, 1000) + 1)}.kpt-speed-dial__trigger-icon{display:inline-flex;transition:transform .2s ease}.kpt-speed-dial.is-open .kpt-speed-dial__trigger-icon{transform:rotate(45deg)}.kpt-speed-dial__actions{position:absolute;display:flex;gap:var(--kpt-space-2, .5rem);opacity:0;pointer-events:none;transition:opacity .15s ease}.kpt-speed-dial.is-open .kpt-speed-dial__actions{opacity:1;pointer-events:auto}.kpt-speed-dial[data-direction=up] .kpt-speed-dial__actions{flex-direction:column-reverse;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%)}.kpt-speed-dial[data-direction=down] .kpt-speed-dial__actions{flex-direction:column;top:calc(100% + .5rem);left:50%;transform:translate(-50%)}.kpt-speed-dial[data-direction=left] .kpt-speed-dial__actions{flex-direction:row-reverse;right:calc(100% + .5rem);top:50%;transform:translateY(-50%)}.kpt-speed-dial[data-direction=right] .kpt-speed-dial__actions{flex-direction:row;left:calc(100% + .5rem);top:50%;transform:translateY(-50%)}.kpt-speed-dial__action{display:inline-flex;align-items:center;gap:var(--kpt-space-2, .5rem);height:2.5rem;padding-inline:var(--kpt-space-3, .75rem);border:0;border-radius:999px;background:var(--kpt-color-surface-raised);color:var(--kpt-color-on-surface);box-shadow:var(--kpt-elevation-2);cursor:pointer;white-space:nowrap}.kpt-speed-dial__action:hover:not(:disabled){background:var(--kpt-color-muted)}.kpt-speed-dial__action:disabled{opacity:.5;cursor:not-allowed}.kpt-speed-dial__label{font-size:var(--kpt-font-size-sm, .875rem)}.kpt-speed-dial__backdrop{position:fixed;inset:0;z-index:var(--kpt-z-overlay, 1000)}}\n"] }]
13239
- }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], select: [{ type: i0.Output, args: ["select"] }] }); })();
13459
+ }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }] }); })();
13240
13460
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptSpeedDial, { className: "KptSpeedDial", filePath: "lib/speed-dial/speed-dial.component.ts", lineNumber: 39 }); })();
13241
13461
 
13242
13462
  /*